@reusa/ngx-reusa-app-lib 0.0.1363 → 0.0.1365

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.
Files changed (30) hide show
  1. package/esm2022/lib/components/add-employer/add-employer.component.mjs +1 -1
  2. package/esm2022/lib/components/mfa/mfa.component.mjs +2 -1
  3. package/esm2022/lib/components/questionnaire/dynamic-form-question.component.mjs +24 -12
  4. package/esm2022/lib/components/user-login/user-login.component.mjs +4 -1
  5. package/esm2022/lib/components/weekly-cert-employer/weekly-cert-employer.component.mjs +253 -171
  6. package/esm2022/lib/models/OtpAuthModel.mjs +1 -1
  7. package/esm2022/lib/models/UserModel.mjs +1 -1
  8. package/esm2022/lib/models/questionnaire/QuestionnaireSaveModel.mjs +1 -1
  9. package/esm2022/lib/pages/common/login/login.component.mjs +3 -1
  10. package/esm2022/lib/services/login/login.service.mjs +4 -1
  11. package/esm2022/lib/validations/AppValidators.mjs +9 -9
  12. package/fesm2022/reusa-ngx-reusa-app-lib.mjs +292 -189
  13. package/fesm2022/reusa-ngx-reusa-app-lib.mjs.map +1 -1
  14. package/lib/components/add-employer/add-employer.component.d.ts.map +1 -1
  15. package/lib/components/mfa/mfa.component.d.ts.map +1 -1
  16. package/lib/components/questionnaire/dynamic-form-question.component.d.ts +1 -0
  17. package/lib/components/questionnaire/dynamic-form-question.component.d.ts.map +1 -1
  18. package/lib/components/user-login/user-login.component.d.ts.map +1 -1
  19. package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts.map +1 -1
  20. package/lib/models/OtpAuthModel.d.ts +1 -0
  21. package/lib/models/OtpAuthModel.d.ts.map +1 -1
  22. package/lib/models/UserModel.d.ts +1 -0
  23. package/lib/models/UserModel.d.ts.map +1 -1
  24. package/lib/models/questionnaire/QuestionnaireSaveModel.d.ts +1 -0
  25. package/lib/models/questionnaire/QuestionnaireSaveModel.d.ts.map +1 -1
  26. package/lib/pages/common/login/login.component.d.ts.map +1 -1
  27. package/lib/services/login/login.service.d.ts.map +1 -1
  28. package/lib/validations/AppValidators.d.ts +8 -8
  29. package/lib/validations/AppValidators.d.ts.map +1 -1
  30. package/package.json +1 -1
@@ -454,6 +454,7 @@ export class MfaComponent {
454
454
  auth.userId = this.user.username;
455
455
  auth.password = this.user.password;
456
456
  auth.otp = this.otp.value;
457
+ auth.language = localStorage.getItem("language");
457
458
  auth.istrustedDevice = this.checked.value + "";
458
459
  this.blocked = true;
459
460
  this.successDtls = null;
@@ -570,4 +571,4 @@ export class MfaComponent {
570
571
  type: Output
571
572
  }] }); })();
572
573
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MfaComponent, { className: "MfaComponent", filePath: "lib\\components\\mfa\\mfa.component.ts", lineNumber: 21 }); })();
573
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWZhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9tZmEvbWZhLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9tZmEvbWZhLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBZ0MsTUFBTSxFQUFpQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0gsT0FBTyxFQUF3QyxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRixPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBZ0IsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNEcEMsOEJBQXlFLGFBQUEsYUFBQSxlQUFBO0lBRzlDLFlBQTRCOztJQUFBLGlCQUFRO0lBQ3pELDBDQUErSDtJQUE3Qiw2S0FBWSxlQUFBLHNCQUFlLENBQUEsSUFBQztJQUFDLGlCQUFpQixFQUFBLEVBQUEsRUFBQTs7O0lBRDNILGVBQTRCO0lBQTVCLDBEQUE0QjtJQUNqQyxlQUFtQjtJQUFuQix3Q0FBbUIsOEJBQUE7OztJQVFuQyw0QkFBd0Q7SUFBQSxZQUEyQzs7SUFBQSx5QkFBRztJQUFBLFlBQTZCOztJQUFBLGlCQUFJLEVBQUE7OztJQUEvRSxlQUEyQztJQUEzQyxrRkFBMkM7SUFBRyxlQUE2QjtJQUE3Qiw0RkFBNkI7OztJQUNuSSw0QkFBdUQ7SUFBQSxZQUF5Qzs7SUFBQSx5QkFBRztJQUFBLFlBQWlDOztJQUFBLGlCQUFJLEVBQUE7OztJQUFqRixlQUF5QztJQUF6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LENBQUMsR0FBRyxDQUFDO1FBQzNCLENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQzs2RUFwUFUsWUFBWTtvRUFBWixZQUFZOzs7Ozs7WUNwQnpCLGtDQUF1RCxZQUFBO1lBQ0wsWUFBc0M7WUFBQSxpQkFBSztZQUUzRiw2REFPTSxrREFBQTtZQW9ETixnQ0FBVTtZQUNSLDZEQUVNLGdEQUFBO1lBWVIsaUJBQVcsRUFBQTs7WUE3RVAsdUNBQXFCO1lBQ3VCLGVBQXNDO1lBQXRDLG1FQUFzQztZQUVwRCxlQUFxQztZQUFyQyw4REFBcUM7WUFTckMsZUFBa0I7WUFBbEIsdUNBQWtCO1lBbUQ1QyxlQUFhO1lBQWIsa0NBQWE7WUFHNkIsZUFBOEI7WUFBOUIsdURBQThCOzs7aUZEOUNyRSxZQUFZO2NBTHhCLFNBQVM7MkJBQ0UsU0FBUzttUEFNSSxRQUFRO2tCQUE5QixTQUFTO21CQUFDLFVBQVU7WUFhckIsSUFBSTtrQkFESCxLQUFLO1lBSUcsT0FBTztrQkFBZixLQUFLO1lBSU4sV0FBVztrQkFEVixLQUFLO1lBS04sSUFBSTtrQkFESCxLQUFLO1lBSU4sUUFBUTtrQkFEUCxLQUFLO1lBSU4sV0FBVztrQkFEVixLQUFLO1lBSU4sYUFBYTtrQkFEWixLQUFLO1lBR04sT0FBTztrQkFETixLQUFLO1lBR0ksS0FBSztrQkFBZCxNQUFNO1lBRUcsT0FBTztrQkFBaEIsTUFBTTtZQUVHLEtBQUs7a0JBQWQsTUFBTTs7a0ZBM0NJLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFVudHlwZWRGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTmF2Q29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBpbnRlcnZhbCwgU3Vic2NyaXB0aW9uLCB0aW1lciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBFcnJvck1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL0Vycm9yTW9kZWwnO1xyXG5pbXBvcnQgeyBDb21ib09wdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL0NvbWJvTW9kZWwnO1xyXG5pbXBvcnQgeyBVc2VyTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvVXNlck1vZGVsJztcclxuaW1wb3J0IHsgQ2FwdGNoYVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jYXB0Y2hhL2NhcHRjaGEuc2VydmljZSc7XHJcbmltcG9ydCB7IExvZ2luU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xvZ2luL2xvZ2luLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVdGlsU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3V0aWwvdXRpbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2VjdXJpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2VjdXJpdHktc2VydmljZS9zZWN1cml0eS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtbWZhJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbWZhLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9tZmEuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWZhQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkNoYW5nZXMsIE9uSW5pdCB7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJvdHBGaWVsZFwiKSBvdHBGaWVsZDtcclxuICBwcml2YXRlIFJFU0VORF9DT0RFX0FDVElPTl9OQU1FID0gXCJNRkFfUkVTRU5EX0NPREVcIjtcclxuICBcclxuICBwdWJsaWMgc3VjY2Vzc0R0bHM7XHJcblxyXG4gIHB1YmxpYyBibG9ja2VkOiBib29sZWFuO1xyXG5cclxuICBwdWJsaWMgaXNDaGVja2VkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBzaG93SGVscDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgaGlkZU9wdFZhbGlkYXRvciA9IHRydWU7XHJcbiAgQElucHV0KClcclxuICB1c2VyIDogVXNlck1vZGVsO1xyXG5cclxuICAvL0lmIHNwZWNpZmllZCwgaXQgd2lsbCBjaGFuZ2UgdGhlIGRlZmF1bHQgaGVhZGluZyBvbiB0aGUgY29tcG9uZW50IHdpdGggdGhlIG9uY2Ugc3BlY2lmaWVkIGluIHRoaXMgZmllbGQuXHJcbiAgQElucHV0KCkgaGVhZGluZyA6IHN0cmluZztcclxuXHJcbiAgLy9SZXF1ZXN0IG5ldyBhdXRoY29kZSB3aGVuIGNvbXBvbmVudHMgbG9hZC5cclxuICBASW5wdXQoKVxyXG4gIHJlcXVlc3RDb2RlIDogYm9vbGVhbjtcclxuXHJcbiAgLy9QYXNzIHRoaXMgZGF0YSBhbG9uZyB3aXRoIG91dHB1dCBzbyB0aGF0IGNhbGxpbmcgY29tcG9uZW50IGNhbiB0YWtlIGNhcmUgb2YgaXQuXHJcbiAgQElucHV0KClcclxuICBkYXRhIDogYW55O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIG1mYUVycm9yIDogRXJyb3JNb2RlbDtcclxuXHJcbiAgQElucHV0KClcclxuICBoaWRlQnV0dG9ucyA6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICByZXR1cm5pbmdVc2VyOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpXHJcbiAgZGlzcGxheSA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KCkgY2xlYXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAT3V0cHV0KCkgc3VjY2VzczogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBPdXRwdXQoKSBlcnJvcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIHB1YmxpYyBvdHBGb3JtIDogVW50eXBlZEZvcm1Hcm91cDtcclxuXHJcbiAgcHVibGljIGVycm9yRHRscztcclxuXHJcbiAgcHVibGljIHRpbWUgPSA2MFxyXG4gIHB1YmxpYyB0aW1lckludGVydmFsID0gaW50ZXJ2YWwoMTAwMCk7IC8vMXNcclxuICBwdWJsaWMgdGltZXIgPSB0aW1lcig2MDAwMCk7IC8vOTBzXHJcbiAgcHVibGljIGNvdW50RG93biA9IHRoaXMudGltZXJJbnRlcnZhbC5waXBlKHRha2UodGhpcy50aW1lKSk7XHJcbiAgcHVibGljIGNvdW50ZXIgOiBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoMCk7XHJcbiAgY291bnRlclN1YnNjcmlwdGlvbiA6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgcHVibGljIG9wdGlvbnMgOiBDb21ib09wdGlvbltdID0gW1xyXG4gICAge3ZhbHVlIDogJ3RleHQnLCB0ZXh0IDogJ3RleHQnfSxcclxuICAgIHt2YWx1ZSA6ICdlbWFpbCcsIHRleHQgOiAnZW1haWwnfVxyXG4gIF07XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbHM6IExvZ2luU2VydmljZSwgcHVibGljIGZiIDogVW50eXBlZEZvcm1CdWlsZGVyLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgdXRpbDogVXRpbFNlcnZpY2UsIHB1YmxpYyBuYXYgOiBOYXZDb250cm9sbGVyLCBwcml2YXRlIGNzOiBDYXB0Y2hhU2VydmljZSxcclxuICAgICAgICAgICAgICAgcHJpdmF0ZSBzczogU2VjdXJpdHlTZXJ2aWNlLCBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgICAgICAgICAgICBwdWJsaWMgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSkgeyBcclxuICAgICAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS51c2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJsYW5ndWFnZVwiKSk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZihjaGFuZ2VzLm1mYUVycm9yPy5jdXJyZW50VmFsdWUpe1xyXG4gICAgICB0aGlzLmVycm9yRHRscyA9IHRoaXMubWZhRXJyb3IubXNnO1xyXG4gICAgICB0aGlzLnN1Y2Nlc3NEdGxzID0gbnVsbDtcclxuICAgIH1cclxuICAgIGlmIChjaGFuZ2VzLmRpc3BsYXkuY3VycmVudFZhbHVlKSB7ICAvLyB3aW5kb3cgb3BlblxyXG4gICAgICB0aGlzLm5nT25Jbml0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG4gIFxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgaWYodGhpcy5jb3VudGVyU3Vic2NyaXB0aW9uKXtcclxuICAgICAgdGhpcy5jb3VudGVyU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS51c2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJsYW5ndWFnZVwiKSk7XHJcbiAgICB0aGlzLmluaXRpbGl6ZUZvcm0oKTtcclxuICAgIC8vdGhpcy5zZXRDb3VudGRvd24oKTtcclxuICAgIGlmKHRoaXMucmVxdWVzdENvZGUpe1xyXG4gICAgICBsZXQgbWZhT3B0aW9ucyA9IHRoaXMudXNlcj8uc3VwcG9ydGVkTWZhVHlwZXM/LnNwbGl0KFwiLFwiKSB8fCBbJ2VtYWlsJ107XHJcbiAgICAgIGlmKG1mYU9wdGlvbnMubGVuZ3RoID4gMSl7XHJcbiAgICAgICAgLy9hbGxvdyB1c2VyIHRvIGNob29zZSBvdHAgb3B0aW9uXHJcbiAgICAgIH0gZWxzZXtcclxuICAgICAgICB0aGlzLnJlcXVlc3ROZXdBdXRoQ29kZSgnZW1haWwnKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZXRDb3VudGRvd24oKTtcclxuICAgIH1cclxuICAgIHNldFRpbWVvdXQoXyA9PiB7XHJcbiAgICAgIHRoaXMub3RwRmllbGQuaW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgfSwgMTAwKVxyXG4gIH1cclxuXHJcbiAgcmVxdWVzdE5ld0F1dGhDb2RlKG90cFR5cGUgOiBzdHJpbmcpe1xyXG4gICAgdGhpcy5ibG9ja2VkID0gdHJ1ZTtcclxuICAgIHRoaXMubHMuZ2V0TmV3QXV0aENvZGUob3RwVHlwZSlcclxuICAgICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgICB0aGlzLmJsb2NrZWQgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuc3VjY2Vzc0R0bHMgPSBcIkFjY2VzcyBjb2RlIHNlbnQgc3VjY2Vzc2Z1bGx5LlwiO1xyXG4gICAgICAgICAgdGhpcy5jb3VudGVyLm5leHQoNjApO1xyXG4gICAgICAgICAgdGhpcy5zZXRDb3VudGRvd24oKTtcclxuICAgICAgICB9LCBlcnIgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zdWNjZXNzRHRscyA9IG51bGw7XHJcbiAgICAgICAgICB0aGlzLmJsb2NrZWQgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuZXJyb3JEdGxzID0gZXJyLm1zZztcclxuICAgICAgICB9KVxyXG4gIH1cclxuXHJcbiAgc2V0Q291bnRkb3duKCl7XHJcbiAgICBpZih0aGlzLmNvdW50ZXJTdWJzY3JpcHRpb24pe1xyXG4gICAgICB0aGlzLmNvdW50ZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICAgIHRoaXMuY291bnRlclN1YnNjcmlwdGlvbiA9IHRoaXMuY291bnREb3duLnN1YnNjcmliZSh2YWwgPT57XHJcbiAgICAgIGxldCB2YWx1ZSA9IHRoaXMudGltZSAtIHZhbDtcclxuICAgICAgdGhpcy5jb3VudGVyLm5leHQodmFsdWUpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBpbml0aWxpemVGb3JtKCl7XHJcbiAgICBsZXQgbWZhT3B0aW9ucyA9IHRoaXMudXNlcj8uc3VwcG9ydGVkTWZhVHlwZXM/LnNwbGl0KFwiLFwiKSB8fCBbJ2VtYWlsJ107XHJcbiAgICB0aGlzLm90cEZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgJ290cCcgOiBbbnVsbCAsIFZhbGlkYXRvcnMuY29tcG9zZShbVmFsaWRhdG9ycy5yZXF1aXJlZCwgIFZhbGlkYXRvcnMubWluKDEwMF8wMDApLFZhbGlkYXRvcnMubWF4KDk5OV85OTkpXSldLFxyXG4gICAgICAnY2hlY2tlZCcgOiBbZmFsc2VdLFxyXG4gICAgICAnb3B0aW9uJyA6IFsgbWZhT3B0aW9ucyAmJiBtZmFPcHRpb25zLmxlbmd0aCA+IDEgPyBudWxsIDogbWZhT3B0aW9uc1swXV1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG90cCgpe1xyXG4gICAgcmV0dXJuIHRoaXMub3RwRm9ybS5nZXQoJ290cCcpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG9wdGlvbigpe1xyXG4gICAgcmV0dXJuIHRoaXMub3RwRm9ybS5nZXQoJ29wdGlvbicpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNoZWNrZWQoKXtcclxuICAgIHJldHVybiB0aGlzLm90cEZvcm0uZ2V0KCdjaGVja2VkJyk7XHJcbiAgfVxyXG5cclxuICBjbG9zZSh0cmlnZ2VyRXhpdEFQSSA9IHRydWUpe1xyXG4gICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jbGVhci5lbWl0KHRyaWdnZXJFeGl0QVBJKSwgMTAwMCk7XHJcbiAgfVxyXG5cclxuICBzdWJtaXQoKXtcclxuICAgIHRoaXMuaGlkZU9wdFZhbGlkYXRvciA9IGZhbHNlO1xyXG4gICAgaWYodGhpcy5vdHBGb3JtLmludmFsaWQpe1xyXG4gICAgICBjb25zb2xlLmxvZyh0aGlzLm90cEZvcm0pO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmxzLnNldEF1dGhDb2RlKHRoaXMub3RwLnZhbHVlKTtcclxuICAgIHRoaXMuc3VjY2Vzcy5lbWl0KHRoaXMuZGF0YSk7XHJcbiAgfVxyXG4gIFxyXG4gIHNpZ25Jbigpe1xyXG4gICAgdGhpcy5oaWRlT3B0VmFsaWRhdG9yID0gZmFsc2U7XHJcbiAgICBpZih0aGlzLm90cEZvcm0uaW52YWxpZCl7XHJcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMub3RwRm9ybSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGxldCBhdXRoIDogYW55ID0ge307XHJcbiAgICBhdXRoLnVzZXJJZCA9IHRoaXMudXNlci51c2VybmFtZTtcclxuICAgIGF1dGgucGFzc3dvcmQgPSB0aGlzLnVzZXIucGFzc3dvcmQ7XHJcbiAgICBhdXRoLm90cCA9IHRoaXMub3RwLnZhbHVlO1xyXG4gICAgYXV0aC5pc3RydXN0ZWREZXZpY2UgPSB0aGlzLmNoZWNrZWQudmFsdWUgKyBcIlwiO1xyXG4gICAgdGhpcy5ibG9ja2VkID0gdHJ1ZTtcclxuICAgIHRoaXMuc3VjY2Vzc0R0bHMgPSBudWxsO1xyXG4gICAgdGhpcy5lcnJvckR0bHMgPSBudWxsO1xyXG4gICAgdGhpcy51dGlsXHJcbiAgICAgICAgLnNob3dMb2FkZXIoKVxyXG4gICAgICAgIC50aGVuKFxyXG4gICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmxzLmxvZ2luQW5kQ2hlY2tGb3JNRkEoYXV0aClcclxuICAgICAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgICAgICByZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgbGV0IHVzZXJNb2RlbCA6IFVzZXJNb2RlbCA9IHJlcztcclxuICAgICAgICAgICAgICAgIHRoaXMubHMuc2V0VXNlcih1c2VyTW9kZWwpLnRoZW4oXHJcbiAgICAgICAgICAgICAgICAgIHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdWNjZXNzLmVtaXQoKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2NrZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgZXJyID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZXJyb3IuZW1pdChlcnIpO1xyXG4gICAgICAgICAgICAgICAgaWYoZXJyLm1zZ1swXS5pbmNsdWRlcyhcIkNsYWltYW50IEFjY291bnQgaXMgTG9ja2VkIC0gT1RQIGF0dGVtcHRzIGV4Y2VlZGVkXCIpKXtcclxuICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJSZWRpcmVjdGluZyB0byBpZGVudGl0eSBwcm9vZmluZy5cIik7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudXRpbC5zaG93RXJyb3IoJ0NsYWltYW50IEFjY291bnQgaXMgTG9ja2VkIC0gT1RQIGF0dGVtcHRzIGhhcyBleGNlZWRlZCcpO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmVycm9yRHRscyA9IGVyci5tc2c7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ibG9ja2VkID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgfVxyXG5cclxuICBzZW5kT3RwKGV2ZW50KXtcclxuICAgIHRoaXMucmVzZW5kQXV0aENvZGUoZXZlbnQudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IEFjY2Vzc1ZlcmlmeSgpe1xyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdtZmEuYWNjZXNzLnZlcmlmeS5zaXgnKTtcclxuICB9XHJcbiAgZ2V0IEFjY2Vzc1JlcXVpcmVkKCl7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ21mYS5hY2Nlc3MucmVxdWlyZWQnKTtcclxuICB9XHJcblxyXG4gIGdldCBBY2Nlc3NDb25maXJtKCl7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ21mYS5hY2Nlc3MuY29uZmlybScpO1xyXG4gIH1cclxuICByZXNlbmRBdXRoQ29kZShvdHBUeXBlIDogc3RyaW5nKXtcclxuICAgIHRoaXMuc3VjY2Vzc0R0bHMgPSBudWxsO1xyXG4gICAgdGhpcy5lcnJvckR0bHMgPSBudWxsO1xyXG4gICAgb3RwVHlwZSA9IFwiVEVYXCI7IC8vVGhpcyBoYXMgdG8gYmUgY2hhbmdlZCBpbiB0aGUgYmFja2VuZCBvbmNlIG1mYVByZWZlcmVuY2UgaXMgc2F2ZWRcclxuICAgIHRoaXMubHMuZ2VuZXJhdGVPdHAodGhpcy51c2VyLnVzZXJuYW1lLCBvdHBUeXBlKS5zdWJzY3JpYmUoXHJcbiAgICAgIChyZXMpID0+IHtcclxuICAgICAgICB0aGlzLmJsb2NrZWQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnN1Y2Nlc3NEdGxzID0gJ0FjY2VzcyBjb2RlIHNlbnQgc3VjY2Vzc2Z1bGx5Lic7XHJcbiAgICAgICAgdGhpcy5jb3VudGVyLm5leHQoNjApO1xyXG4gICAgICAgIHRoaXMuc2V0Q291bnRkb3duKCk7XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnIpID0+IHtcclxuICAgICAgICB0aGlzLnN1Y2Nlc3NEdGxzID0gbnVsbDtcclxuICAgICAgICB0aGlzLmJsb2NrZWQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmVycm9yRHRscyA9IGVyci5tc2c7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwib3RwRm9ybVwiICNvdHBGb3JtRGlyZWN0aXZlPVwibmdGb3JtXCI+XHJcbiAgPGg0IHN0eWxlPVwicGFkZGluZy1sZWZ0OiAxMHB4O1wiIGNsYXNzPVwiaGVhZGluZ1wiPnt7IGhlYWRpbmcgPyBoZWFkaW5nIDogQWNjZXNzQ29uZmlybX19PC9oND5cclxuXHJcbiAgPGRpdiBzdHlsZT1cInBhZGRpbmctbGVmdDogMTBweDtcIiAqbmdJZj1cIiFvcHRpb24udmFsdWUgJiYgIXJldHVybmluZ1VzZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJpb24tcGFkZGluZy10b3AgcC1mb3JtZ3JpZCBwLWdyaWRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGlvbi10ZXh0LWxlZnRcIj5cclxuICAgICAgICA8bGFiZWwgZm9yPVwib3RwVHlwZVwiPnt7J21mYS5ob3cuc2VuZCd8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgIDxwLXNlbGVjdEJ1dHRvbiBbb3B0aW9uc109XCJvcHRpb25zXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiIFtmb3JtQ29udHJvbF09XCJvcHRpb25cIiAob25DaGFuZ2UpPVwic2VuZE90cCgkZXZlbnQpXCI+PC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBzdHlsZT1cInBhZGRpbmctbGVmdDogMTBweDtcIiAqbmdJZj1cIm9wdGlvbi52YWx1ZVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImlvbi1wYWRkaW5nLXRvcFwiPlxyXG4gICAgICA8aW9uLWxhYmVsPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwib3B0aW9uLnZhbHVlID09ICdlbWFpbCcgJiYgIXJldHVybmluZ1VzZXJcIj57eydtZmEuY29kZS5zZW50LmVtYWlsJ3x0cmFuc2xhdGV9fTombmJzcDsgPGI+e3t1c2VyPy5lbWFpbElkIHwgbWFza0VtYWlsfX08L2I+PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwib3B0aW9uLnZhbHVlID09ICd0ZXh0JyAmJiAhcmV0dXJuaW5nVXNlclwiPnt7J21mYS5jb2RlLnNlbnQuY2VsbCd8dHJhbnNsYXRlfX0mbmJzcDsgPGI+e3t1c2VyPy5jZWxscGhvbmVObyB8IG1hc2tFbWFpbH19PC9iPjwvc3Bhbj5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cInJldHVybmluZ1VzZXJcIj57eydtZmEuY29kZS5zZW50LmNlbGwnfHRyYW5zbGF0ZX19Jm5ic3A7IDxiPnt7dXNlcj8uY2VsbHBob25lTm8gfCBtYXNrRW1haWx9fTwvYj48L3NwYW4+XHJcbiAgICAgIDwvaW9uLWxhYmVsPjxici8+PGJyLz5cclxuICAgICAgPGlvbi1sYWJlbCAqbmdJZj1cIm9wdGlvbi52YWx1ZSA9PSAnZW1haWwnICYmICFyZXR1cm5pbmdVc2VyXCI+XHJcbiAgICAgICAge3snbWZhLmNvZGUuc2VudC5qdW5rJ3x0cmFuc2xhdGV9fVxyXG4gICAgICA8L2lvbi1sYWJlbD5cclxuICAgICAgPHNwYW4gKm5nSWY9XCJvcHRpb24udmFsdWUgPT0gJ2VtYWlsJyAmJiAhcmV0dXJuaW5nVXNlclwiPjxici8+PGJyLz48L3NwYW4+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBpb24tdGV4dC1sZWZ0XCI+XHJcbiAgICAgICAgPGxhYmVsIGZvcj1cImF1dGhDb2RlXCIgKm5nSWY9XCIhcmV0dXJuaW5nVXNlclwiPnt7J21mYS5lbnRlci5jb2RlJ3x0cmFuc2xhdGV9fTwvbGFiZWw+PGJyLz5cclxuICAgICAgICA8bGFiZWwgZm9yPVwiYXV0aENvZGVcIiAqbmdJZj1cInJldHVybmluZ1VzZXJcIj57eydtZmEuZW50ZXIuY29kZS5yZWNlaXZlZCd8dHJhbnNsYXRlfX08L2xhYmVsPjxici8+XHJcbiAgICAgICAgPHAtaW5wdXROdW1iZXIgKGNsaWNrKT1cImhpZGVPcHRWYWxpZGF0b3I9ZmFsc2VcIiAoa2V5dXApPVwiaGlkZU9wdFZhbGlkYXRvcj1mYWxzZVwiICNvdHBGaWVsZCBmb3JtQ29udHJvbE5hbWU9XCJvdHBcIiBtYXhsZW5ndGg9XCI2XCIgbWlubGVuZ3RoPVwiNlwiIG1vZGU9XCJkZWNpbWFsXCIgW3VzZUdyb3VwaW5nXT1cImZhbHNlXCIgc2l6ZT1cIjZcIiBbaW5wdXRJZF09XCInYXV0aENvZGUnXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgKGtleXVwLmVudGVyKT1cIighcmVxdWVzdENvZGUgJiYgb3B0aW9uLnZhbHVlKSA/IHNpZ25JbigpIDogc3VibWl0KClcIj5cclxuICAgICAgICA8L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgPGFwcC1lcnJvciAqbmdJZj1cIiFoaWRlT3B0VmFsaWRhdG9yXCIgW2ZpZWxkXT0nb3RwJyBbZm9ybV09XCJvdHBGb3JtXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgcmVxdWlyZWQ6IEFjY2Vzc1JlcXVpcmVkLFxyXG4gICAgICAgICAgbWluOiBBY2Nlc3NWZXJpZnksXHJcbiAgICAgICAgICBtYXg6IEFjY2Vzc1ZlcmlmeVxyXG4gICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxpb24taXRlbSBsaW5lcz1cIm5vbmVcIiAqbmdJZj1cImZhbHNlXCI+XHJcbiAgICAgICAgPGlvbi1jaGVja2JveCBzbG90PVwic3RhcnRcIiBmb3JtQ29udHJvbE5hbWU9XCJjaGVja2VkXCI+PC9pb24tY2hlY2tib3g+XHJcbiAgICAgICAgPGlvbi1sYWJlbCBjbGFzcz1cImlvbi10ZXh0LXdyYXBcIj57eydtZmEuYnJvd3Nlci50cnVzdCd8dHJhbnNsYXRlfX08L2lvbi1sYWJlbD5cclxuICAgICAgPC9pb24taXRlbT5cclxuICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICA8bWF0LWVycm9yICpuZ0lmPVwiZXJyb3JEdGxzXCI+e3tlcnJvckR0bHN9fTxiciAvPjxiciAvPjwvbWF0LWVycm9yPlxyXG4gICAgPGlvbi1sYWJlbCAqbmdJZj1cInN1Y2Nlc3NEdGxzXCIgc3R5bGU9XCJjb2xvcjogdmFyKC0taW9uLWNvbG9yLWdyZWVuKVwiPnt7c3VjY2Vzc0R0bHN9fTxici8+PGJyIC8+PC9pb24tbGFiZWw+XHJcbiAgICA8aW9uLWxhYmVsICpuZ0lmPVwiIWJsb2NrZWRcIj5cclxuICAgICAgPHNwYW4gKm5nSWY9XCJjb3VudGVyLmdldFZhbHVlKCkgIT0gMSAmJiAhcmV0dXJuaW5nVXNlclwiPlxyXG4gICAgICAgIHt7J21mYS5jb2RlLm5vdC5yZWNlaXZlZCd8dHJhbnNsYXRlfX0gPGI+e3tjb3VudGVyLmdldFZhbHVlKCl9fSBzZWNvbmQocyk8L2I+LlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICAgIDxzcGFuICpuZ0lmPVwiY291bnRlci5nZXRWYWx1ZSgpID09IDEgJiYgIXJldHVybmluZ1VzZXJcIj5cclxuICAgICAgICAgPGEgdGFiaW5kZXg9XCIwXCIgKGtleXVwLmVudGVyKT1cInJlc2VuZEF1dGhDb2RlKG9wdGlvbi52YWx1ZSlcIiAoY2xpY2spPVwicmVzZW5kQXV0aENvZGUob3B0aW9uLnZhbHVlKVwiIGNsYXNzPVwibGlua1wiPnt7J21mYS5nZXQubmV3LmNvZGUnfHRyYW5zbGF0ZX19PC9hPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICAgIDxzcGFuICpuZ0lmPVwiY291bnRlci5nZXRWYWx1ZSgpID09IDEgJiYgcmV0dXJuaW5nVXNlclwiPlxyXG4gICAgICAgIDxhIHRhYmluZGV4PVwiMFwiIChrZXl1cC5lbnRlcik9XCJyZXNlbmRBdXRoQ29kZShvcHRpb24udmFsdWUpXCIgKGNsaWNrKT1cInJlc2VuZEF1dGhDb2RlKG9wdGlvbi52YWx1ZSlcIiBjbGFzcz1cImxpbmtcIj4ge3snbWZhLnJlc2VuZC52ZXJpZmljYXRpb24uY29kZSd8dHJhbnNsYXRlfX08L2E+XHJcbiAgICAgPC9zcGFuPlxyXG4gICAgPC9pb24tbGFiZWw+XHJcbiAgICA8cCAqbmdJZj1cIiFyZXR1cm5pbmdVc2VyXCI+PGEgdGFiaW5kZXg9XCIwXCIgY2xhc3M9XCJsaW5rXCIgKGtleXVwLmVudGVyKT1cInNob3dIZWxwID0gIXNob3dIZWxwOyAkZXZlbnQucHJldmVudERlZmF1bHQoKVwiIChjbGljayk9XCJzaG93SGVscCA9ICFzaG93SGVscDsgJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIj5DYW4ndCBnZXQgdG8geW91ciB7e29wdGlvbi52YWx1ZSA9PSAndGV4dCcgPyAnY2VsbHBob25lJyA6ICdlbWFpbCd9fT88L2E+PC9wPlxyXG4gICAgPCEtLSA8cCAqbmdJZj1cInJldHVybmluZ1VzZXJcIj48YSB0YWJpbmRleD1cIjBcIiBjbGFzcz1cImxpbmtcIiAoa2V5dXAuZW50ZXIpPVwiY2xvc2UoKVwiIChjbGljayk9XCJjbG9zZSgpXCI+VW5hYmxlIHRvIHZlcmlmeTwvYT48L3A+IC0tPlxyXG4gICAgPHAgKm5nSWY9XCJzaG93SGVscCAmJiAhcmV0dXJuaW5nVXNlclwiPlxyXG4gICAgICB7eydtZmEuZ29vZC5mb3IudGltZSd8dHJhbnNsYXRlfX08YnIvPlxyXG4gICAgICBvcjxici8+XHJcbiAgICAgIElmIHlvdXIge3tvcHRpb24udmFsdWUgPT0gJ3RleHQnID8gJ2NlbGxwaG9uZSBudW1iZXInIDogJ2VtYWlsIGFkZHJlc3MnfX0gaGFzIGNoYW5nZWQgY2FsbCBLRE9MIGF0IDc4NS01NzUtMTQ2MCwgTW9uZGF5IHRocm91Z2ggRnJpZGF5IGZyb20gOCBhbSB0byA0OjMwIHBtLlxyXG4gICAgPC9wPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8cC1mb290ZXI+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiYmxvY2tlZFwiIGNsYXNzPVwiaW9uLXRleHQtY2VudGVyXCI+XHJcbiAgICAgIDxpb24tc3Bpbm5lciBuYW1lPVwiZG90c1wiPjwvaW9uLXNwaW5uZXI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJpb24tdGV4dC1yaWdodCBpb24tcGFkZGluZy1ib3R0b21cIiAqbmdJZj1cIiFibG9ja2VkICYmICFoaWRlQnV0dG9uc1wiPlxyXG4gICAgICA8aW9uLWJ1dHRvbiB0YWJpbmRleD1cIjBcIiBzaGFwZT1cInJvdW5kXCIgdHlwZT1cInJlc2V0XCIgKGtleXVwLmVudGVyKT1cImNsb3NlKGZhbHNlKVwiIChjbGljayk9XCJjbG9zZShmYWxzZSlcIiBjb2xvcj1cInN1Y2Nlc3NcIiBmaWxsPVwib3V0bGluZVwiPlxyXG4gICAgICAgIHt7J2NvbW1vbi5jbG9zZSd8dHJhbnNsYXRlfX1cclxuICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICA8aW9uLWJ1dHRvbiAgdGFiaW5kZXg9XCIwXCIgc2hhcGU9XCJyb3VuZFwiIHR5cGU9XCJzdWJtaXRcIiAoa2V5dXAuZW50ZXIpPVwic2lnbkluKClcIiAoY2xpY2spPVwic2lnbkluKClcIiBjb2xvcj1cInN1Y2Nlc3NcIiAqbmdJZj1cIiFyZXF1ZXN0Q29kZSAmJiBvcHRpb24udmFsdWVcIj5cclxuICAgICAgICB7eydjb21tb24uc3VibWl0J3x0cmFuc2xhdGV9fVxyXG4gICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgIDxpb24tYnV0dG9uIHRhYmluZGV4PVwiMFwiIHNoYXBlPVwicm91bmRcIiB0eXBlPVwic3VibWl0XCIgKGtleXVwLmVudGVyKT1cInN1Ym1pdCgpXCIgKGNsaWNrKT1cInN1Ym1pdCgpXCIgY29sb3I9XCJzdWNjZXNzXCIgKm5nSWY9XCJyZXF1ZXN0Q29kZSAmJiBvcHRpb24udmFsdWVcIj5cclxuICAgICAgICB7eydjb21tb24uc3VibWl0J3x0cmFuc2xhdGV9fVxyXG4gICAgICA8L2lvbi1idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L3AtZm9vdGVyPlxyXG48L2Zvcm0+Il19
574
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWZhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9tZmEvbWZhLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9tZmEvbWZhLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBZ0MsTUFBTSxFQUFpQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0gsT0FBTyxFQUF3QyxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRixPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBZ0IsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNEcEMsOEJBQXlFLGFBQUEsYUFBQSxlQUFBO0lBRzlDLFlBQTRCOztJQUFBLGlCQUFRO0lBQ3pELDBDQUErSDtJQUE3Qiw2S0FBWSxlQUFBLHNCQUFlLENBQUEsSUFBQztJQUFDLGlCQUFpQixFQUFBLEVBQUEsRUFBQTs7O0lBRDNILGVBQTRCO0lBQTVCLDBEQUE0QjtJQUNqQyxlQUFtQjtJQUFuQix3Q0FBbUIsOEJBQUE7OztJQVFuQyw0QkFBd0Q7SUFBQSxZQUEyQzs7SUFBQSx5QkFBRztJQUFBLFlBQTZCOztJQUFBLGlCQUFJLEVBQUE7OztJQUEvRSxlQUEyQztJQUEzQyxrRkFBMkM7SUFBRyxlQUE2QjtJQUE3Qiw0RkFBNkI7OztJQUNuSSw0QkFBdUQ7SUFBQSxZQUF5Qzs7SUFBQSx5QkFBRztJQUFBLFlBQWlDOztJQUFBLGlCQUFJLEVBQUE7OztJQUFqRixlQUF5QztJQUF6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LElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQztRQUMzQixDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7NkVBclBVLFlBQVk7b0VBQVosWUFBWTs7Ozs7O1lDcEJ6QixrQ0FBdUQsWUFBQTtZQUNMLFlBQXNDO1lBQUEsaUJBQUs7WUFFM0YsNkRBT00sa0RBQUE7WUFvRE4sZ0NBQVU7WUFDUiw2REFFTSxnREFBQTtZQVlSLGlCQUFXLEVBQUE7O1lBN0VQLHVDQUFxQjtZQUN1QixlQUFzQztZQUF0QyxtRUFBc0M7WUFFcEQsZUFBcUM7WUFBckMsOERBQXFDO1lBU3JDLGVBQWtCO1lBQWxCLHVDQUFrQjtZQW1ENUMsZUFBYTtZQUFiLGtDQUFhO1lBRzZCLGVBQThCO1lBQTlCLHVEQUE4Qjs7O2lGRDlDckUsWUFBWTtjQUx4QixTQUFTOzJCQUNFLFNBQVM7bVBBTUksUUFBUTtrQkFBOUIsU0FBUzttQkFBQyxVQUFVO1lBYXJCLElBQUk7a0JBREgsS0FBSztZQUlHLE9BQU87a0JBQWYsS0FBSztZQUlOLFdBQVc7a0JBRFYsS0FBSztZQUtOLElBQUk7a0JBREgsS0FBSztZQUlOLFFBQVE7a0JBRFAsS0FBSztZQUlOLFdBQVc7a0JBRFYsS0FBSztZQUlOLGFBQWE7a0JBRFosS0FBSztZQUdOLE9BQU87a0JBRE4sS0FBSztZQUdJLEtBQUs7a0JBQWQsTUFBTTtZQUVHLE9BQU87a0JBQWhCLE1BQU07WUFFRyxLQUFLO2tCQUFkLE1BQU07O2tGQTNDSSxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBVbnR5cGVkRm9ybUJ1aWxkZXIsIFVudHlwZWRGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE5hdkNvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgaW50ZXJ2YWwsIFN1YnNjcmlwdGlvbiwgdGltZXIgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRXJyb3JNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9FcnJvck1vZGVsJztcclxuaW1wb3J0IHsgQ29tYm9PcHRpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvcXVlc3Rpb25uYWlyZS9Db21ib01vZGVsJztcclxuaW1wb3J0IHsgVXNlck1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL1VzZXJNb2RlbCc7XHJcbmltcG9ydCB7IENhcHRjaGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2FwdGNoYS9jYXB0Y2hhLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMb2dpblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sb2dpbi9sb2dpbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlsL3V0aWwuc2VydmljZSc7XHJcbmltcG9ydCB7IFNlY3VyaXR5U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3NlY3VyaXR5LXNlcnZpY2Uvc2VjdXJpdHkuc2VydmljZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLW1mYScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL21mYS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbWZhLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIE1mYUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25DaGFuZ2VzLCBPbkluaXQge1xyXG5cclxuICBAVmlld0NoaWxkKFwib3RwRmllbGRcIikgb3RwRmllbGQ7XHJcbiAgcHJpdmF0ZSBSRVNFTkRfQ09ERV9BQ1RJT05fTkFNRSA9IFwiTUZBX1JFU0VORF9DT0RFXCI7XHJcbiAgXHJcbiAgcHVibGljIHN1Y2Nlc3NEdGxzO1xyXG5cclxuICBwdWJsaWMgYmxvY2tlZDogYm9vbGVhbjtcclxuXHJcbiAgcHVibGljIGlzQ2hlY2tlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgc2hvd0hlbHA6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHVibGljIGhpZGVPcHRWYWxpZGF0b3IgPSB0cnVlO1xyXG4gIEBJbnB1dCgpXHJcbiAgdXNlciA6IFVzZXJNb2RlbDtcclxuXHJcbiAgLy9JZiBzcGVjaWZpZWQsIGl0IHdpbGwgY2hhbmdlIHRoZSBkZWZhdWx0IGhlYWRpbmcgb24gdGhlIGNvbXBvbmVudCB3aXRoIHRoZSBvbmNlIHNwZWNpZmllZCBpbiB0aGlzIGZpZWxkLlxyXG4gIEBJbnB1dCgpIGhlYWRpbmcgOiBzdHJpbmc7XHJcblxyXG4gIC8vUmVxdWVzdCBuZXcgYXV0aGNvZGUgd2hlbiBjb21wb25lbnRzIGxvYWQuXHJcbiAgQElucHV0KClcclxuICByZXF1ZXN0Q29kZSA6IGJvb2xlYW47XHJcblxyXG4gIC8vUGFzcyB0aGlzIGRhdGEgYWxvbmcgd2l0aCBvdXRwdXQgc28gdGhhdCBjYWxsaW5nIGNvbXBvbmVudCBjYW4gdGFrZSBjYXJlIG9mIGl0LlxyXG4gIEBJbnB1dCgpXHJcbiAgZGF0YSA6IGFueTtcclxuXHJcbiAgQElucHV0KClcclxuICBtZmFFcnJvciA6IEVycm9yTW9kZWw7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgaGlkZUJ1dHRvbnMgOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcmV0dXJuaW5nVXNlcjogYm9vbGVhbjtcclxuICBASW5wdXQoKVxyXG4gIGRpc3BsYXkgPSBmYWxzZTtcclxuXHJcbiAgQE91dHB1dCgpIGNsZWFyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQE91dHB1dCgpIHN1Y2Nlc3M6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAT3V0cHV0KCkgZXJyb3I6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBwdWJsaWMgb3RwRm9ybSA6IFVudHlwZWRGb3JtR3JvdXA7XHJcblxyXG4gIHB1YmxpYyBlcnJvckR0bHM7XHJcblxyXG4gIHB1YmxpYyB0aW1lID0gNjBcclxuICBwdWJsaWMgdGltZXJJbnRlcnZhbCA9IGludGVydmFsKDEwMDApOyAvLzFzXHJcbiAgcHVibGljIHRpbWVyID0gdGltZXIoNjAwMDApOyAvLzkwc1xyXG4gIHB1YmxpYyBjb3VudERvd24gPSB0aGlzLnRpbWVySW50ZXJ2YWwucGlwZSh0YWtlKHRoaXMudGltZSkpO1xyXG4gIHB1YmxpYyBjb3VudGVyIDogQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KDApO1xyXG4gIGNvdW50ZXJTdWJzY3JpcHRpb24gOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIHB1YmxpYyBvcHRpb25zIDogQ29tYm9PcHRpb25bXSA9IFtcclxuICAgIHt2YWx1ZSA6ICd0ZXh0JywgdGV4dCA6ICd0ZXh0J30sXHJcbiAgICB7dmFsdWUgOiAnZW1haWwnLCB0ZXh0IDogJ2VtYWlsJ31cclxuICBdO1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGxzOiBMb2dpblNlcnZpY2UsIHB1YmxpYyBmYiA6IFVudHlwZWRGb3JtQnVpbGRlcixcclxuICAgICAgICAgICAgICBwcml2YXRlIHV0aWw6IFV0aWxTZXJ2aWNlLCBwdWJsaWMgbmF2IDogTmF2Q29udHJvbGxlciwgcHJpdmF0ZSBjczogQ2FwdGNoYVNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgIHByaXZhdGUgc3M6IFNlY3VyaXR5U2VydmljZSwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgICAgICAgICAgICAgcHVibGljIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UpIHsgXHJcbiAgICAgICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudXNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwibGFuZ3VhZ2VcIikpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYoY2hhbmdlcy5tZmFFcnJvcj8uY3VycmVudFZhbHVlKXtcclxuICAgICAgdGhpcy5lcnJvckR0bHMgPSB0aGlzLm1mYUVycm9yLm1zZztcclxuICAgICAgdGhpcy5zdWNjZXNzRHRscyA9IG51bGw7XHJcbiAgICB9XHJcbiAgICBpZiAoY2hhbmdlcy5kaXNwbGF5LmN1cnJlbnRWYWx1ZSkgeyAgLy8gd2luZG93IG9wZW5cclxuICAgICAgdGhpcy5uZ09uSW5pdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICBcclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGlmKHRoaXMuY291bnRlclN1YnNjcmlwdGlvbil7XHJcbiAgICAgIHRoaXMuY291bnRlclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudXNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwibGFuZ3VhZ2VcIikpO1xyXG4gICAgdGhpcy5pbml0aWxpemVGb3JtKCk7XHJcbiAgICAvL3RoaXMuc2V0Q291bnRkb3duKCk7XHJcbiAgICBpZih0aGlzLnJlcXVlc3RDb2RlKXtcclxuICAgICAgbGV0IG1mYU9wdGlvbnMgPSB0aGlzLnVzZXI/LnN1cHBvcnRlZE1mYVR5cGVzPy5zcGxpdChcIixcIikgfHwgWydlbWFpbCddO1xyXG4gICAgICBpZihtZmFPcHRpb25zLmxlbmd0aCA+IDEpe1xyXG4gICAgICAgIC8vYWxsb3cgdXNlciB0byBjaG9vc2Ugb3RwIG9wdGlvblxyXG4gICAgICB9IGVsc2V7XHJcbiAgICAgICAgdGhpcy5yZXF1ZXN0TmV3QXV0aENvZGUoJ2VtYWlsJyk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2V0Q291bnRkb3duKCk7XHJcbiAgICB9XHJcbiAgICBzZXRUaW1lb3V0KF8gPT4ge1xyXG4gICAgICB0aGlzLm90cEZpZWxkLmlucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgIH0sIDEwMClcclxuICB9XHJcblxyXG4gIHJlcXVlc3ROZXdBdXRoQ29kZShvdHBUeXBlIDogc3RyaW5nKXtcclxuICAgIHRoaXMuYmxvY2tlZCA9IHRydWU7XHJcbiAgICB0aGlzLmxzLmdldE5ld0F1dGhDb2RlKG90cFR5cGUpXHJcbiAgICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgICAgdGhpcy5ibG9ja2VkID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnN1Y2Nlc3NEdGxzID0gXCJBY2Nlc3MgY29kZSBzZW50IHN1Y2Nlc3NmdWxseS5cIjtcclxuICAgICAgICAgIHRoaXMuY291bnRlci5uZXh0KDYwKTtcclxuICAgICAgICAgIHRoaXMuc2V0Q291bnRkb3duKCk7XHJcbiAgICAgICAgfSwgZXJyID0+IHtcclxuICAgICAgICAgIHRoaXMuc3VjY2Vzc0R0bHMgPSBudWxsO1xyXG4gICAgICAgICAgdGhpcy5ibG9ja2VkID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmVycm9yRHRscyA9IGVyci5tc2c7XHJcbiAgICAgICAgfSlcclxuICB9XHJcblxyXG4gIHNldENvdW50ZG93bigpe1xyXG4gICAgaWYodGhpcy5jb3VudGVyU3Vic2NyaXB0aW9uKXtcclxuICAgICAgdGhpcy5jb3VudGVyU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvdW50ZXJTdWJzY3JpcHRpb24gPSB0aGlzLmNvdW50RG93bi5zdWJzY3JpYmUodmFsID0+e1xyXG4gICAgICBsZXQgdmFsdWUgPSB0aGlzLnRpbWUgLSB2YWw7XHJcbiAgICAgIHRoaXMuY291bnRlci5uZXh0KHZhbHVlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgaW5pdGlsaXplRm9ybSgpe1xyXG4gICAgbGV0IG1mYU9wdGlvbnMgPSB0aGlzLnVzZXI/LnN1cHBvcnRlZE1mYVR5cGVzPy5zcGxpdChcIixcIikgfHwgWydlbWFpbCddO1xyXG4gICAgdGhpcy5vdHBGb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICdvdHAnIDogW251bGwgLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1ZhbGlkYXRvcnMucmVxdWlyZWQsICBWYWxpZGF0b3JzLm1pbigxMDBfMDAwKSxWYWxpZGF0b3JzLm1heCg5OTlfOTk5KV0pXSxcclxuICAgICAgJ2NoZWNrZWQnIDogW2ZhbHNlXSxcclxuICAgICAgJ29wdGlvbicgOiBbIG1mYU9wdGlvbnMgJiYgbWZhT3B0aW9ucy5sZW5ndGggPiAxID8gbnVsbCA6IG1mYU9wdGlvbnNbMF1dXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldCBvdHAoKXtcclxuICAgIHJldHVybiB0aGlzLm90cEZvcm0uZ2V0KCdvdHAnKTtcclxuICB9XHJcblxyXG4gIGdldCBvcHRpb24oKXtcclxuICAgIHJldHVybiB0aGlzLm90cEZvcm0uZ2V0KCdvcHRpb24nKTtcclxuICB9XHJcblxyXG4gIGdldCBjaGVja2VkKCl7XHJcbiAgICByZXR1cm4gdGhpcy5vdHBGb3JtLmdldCgnY2hlY2tlZCcpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2UodHJpZ2dlckV4aXRBUEkgPSB0cnVlKXtcclxuICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2xlYXIuZW1pdCh0cmlnZ2VyRXhpdEFQSSksIDEwMDApO1xyXG4gIH1cclxuXHJcbiAgc3VibWl0KCl7XHJcbiAgICB0aGlzLmhpZGVPcHRWYWxpZGF0b3IgPSBmYWxzZTtcclxuICAgIGlmKHRoaXMub3RwRm9ybS5pbnZhbGlkKXtcclxuICAgICAgY29uc29sZS5sb2codGhpcy5vdHBGb3JtKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5scy5zZXRBdXRoQ29kZSh0aGlzLm90cC52YWx1ZSk7XHJcbiAgICB0aGlzLnN1Y2Nlc3MuZW1pdCh0aGlzLmRhdGEpO1xyXG4gIH1cclxuICBcclxuICBzaWduSW4oKXtcclxuICAgIHRoaXMuaGlkZU9wdFZhbGlkYXRvciA9IGZhbHNlO1xyXG4gICAgaWYodGhpcy5vdHBGb3JtLmludmFsaWQpe1xyXG4gICAgICBjb25zb2xlLmxvZyh0aGlzLm90cEZvcm0pO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBsZXQgYXV0aCA6IGFueSA9IHt9O1xyXG4gICAgYXV0aC51c2VySWQgPSB0aGlzLnVzZXIudXNlcm5hbWU7XHJcbiAgICBhdXRoLnBhc3N3b3JkID0gdGhpcy51c2VyLnBhc3N3b3JkO1xyXG4gICAgYXV0aC5vdHAgPSB0aGlzLm90cC52YWx1ZTtcclxuICAgIGF1dGgubGFuZ3VhZ2U9bG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJsYW5ndWFnZVwiKTtcclxuICAgIGF1dGguaXN0cnVzdGVkRGV2aWNlID0gdGhpcy5jaGVja2VkLnZhbHVlICsgXCJcIjtcclxuICAgIHRoaXMuYmxvY2tlZCA9IHRydWU7XHJcbiAgICB0aGlzLnN1Y2Nlc3NEdGxzID0gbnVsbDtcclxuICAgIHRoaXMuZXJyb3JEdGxzID0gbnVsbDtcclxuICAgIHRoaXMudXRpbFxyXG4gICAgICAgIC5zaG93TG9hZGVyKClcclxuICAgICAgICAudGhlbihcclxuICAgICAgICAgICgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5scy5sb2dpbkFuZENoZWNrRm9yTUZBKGF1dGgpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgcmVzID0+IHtcclxuICAgICAgICAgICAgICAgIGxldCB1c2VyTW9kZWwgOiBVc2VyTW9kZWwgPSByZXM7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxzLnNldFVzZXIodXNlck1vZGVsKS50aGVuKFxyXG4gICAgICAgICAgICAgICAgICByZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3VjY2Vzcy5lbWl0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja2VkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmVycm9yLmVtaXQoZXJyKTtcclxuICAgICAgICAgICAgICAgIGlmKGVyci5tc2dbMF0uaW5jbHVkZXMoXCJDbGFpbWFudCBBY2NvdW50IGlzIExvY2tlZCAtIE9UUCBhdHRlbXB0cyBleGNlZWRlZFwiKSl7XHJcbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiUmVkaXJlY3RpbmcgdG8gaWRlbnRpdHkgcHJvb2ZpbmcuXCIpO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnV0aWwuc2hvd0Vycm9yKCdDbGFpbWFudCBBY2NvdW50IGlzIExvY2tlZCAtIE9UUCBhdHRlbXB0cyBoYXMgZXhjZWVkZWQnKTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5lcnJvckR0bHMgPSBlcnIubXNnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICApO1xyXG4gIH1cclxuXHJcbiAgc2VuZE90cChldmVudCl7XHJcbiAgICB0aGlzLnJlc2VuZEF1dGhDb2RlKGV2ZW50LnZhbHVlKTtcclxuICB9XHJcblxyXG4gIGdldCBBY2Nlc3NWZXJpZnkoKXtcclxuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnbWZhLmFjY2Vzcy52ZXJpZnkuc2l4Jyk7XHJcbiAgfVxyXG4gIGdldCBBY2Nlc3NSZXF1aXJlZCgpe1xyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdtZmEuYWNjZXNzLnJlcXVpcmVkJyk7XHJcbiAgfVxyXG5cclxuICBnZXQgQWNjZXNzQ29uZmlybSgpe1xyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdtZmEuYWNjZXNzLmNvbmZpcm0nKTtcclxuICB9XHJcbiAgcmVzZW5kQXV0aENvZGUob3RwVHlwZSA6IHN0cmluZyl7XHJcbiAgICB0aGlzLnN1Y2Nlc3NEdGxzID0gbnVsbDtcclxuICAgIHRoaXMuZXJyb3JEdGxzID0gbnVsbDtcclxuICAgIG90cFR5cGUgPSBcIlRFWFwiOyAvL1RoaXMgaGFzIHRvIGJlIGNoYW5nZWQgaW4gdGhlIGJhY2tlbmQgb25jZSBtZmFQcmVmZXJlbmNlIGlzIHNhdmVkXHJcbiAgICB0aGlzLmxzLmdlbmVyYXRlT3RwKHRoaXMudXNlci51c2VybmFtZSwgb3RwVHlwZSkuc3Vic2NyaWJlKFxyXG4gICAgICAocmVzKSA9PiB7XHJcbiAgICAgICAgdGhpcy5ibG9ja2VkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zdWNjZXNzRHRscyA9ICdBY2Nlc3MgY29kZSBzZW50IHN1Y2Nlc3NmdWxseS4nO1xyXG4gICAgICAgIHRoaXMuY291bnRlci5uZXh0KDYwKTtcclxuICAgICAgICB0aGlzLnNldENvdW50ZG93bigpO1xyXG4gICAgICB9LFxyXG4gICAgICAoZXJyKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zdWNjZXNzRHRscyA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5ibG9ja2VkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5lcnJvckR0bHMgPSBlcnIubXNnO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cIm90cEZvcm1cIiAjb3RwRm9ybURpcmVjdGl2ZT1cIm5nRm9ybVwiPlxyXG4gIDxoNCBzdHlsZT1cInBhZGRpbmctbGVmdDogMTBweDtcIiBjbGFzcz1cImhlYWRpbmdcIj57eyBoZWFkaW5nID8gaGVhZGluZyA6IEFjY2Vzc0NvbmZpcm19fTwvaDQ+XHJcblxyXG4gIDxkaXYgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDEwcHg7XCIgKm5nSWY9XCIhb3B0aW9uLnZhbHVlICYmICFyZXR1cm5pbmdVc2VyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaW9uLXBhZGRpbmctdG9wIHAtZm9ybWdyaWQgcC1ncmlkXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBpb24tdGV4dC1sZWZ0XCI+XHJcbiAgICAgICAgPGxhYmVsIGZvcj1cIm90cFR5cGVcIj57eydtZmEuaG93LnNlbmQnfHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICA8cC1zZWxlY3RCdXR0b24gW29wdGlvbnNdPVwib3B0aW9uc1wiIG9wdGlvbkxhYmVsPVwidGV4dFwiIG9wdGlvblZhbHVlPVwidmFsdWVcIiBbZm9ybUNvbnRyb2xdPVwib3B0aW9uXCIgKG9uQ2hhbmdlKT1cInNlbmRPdHAoJGV2ZW50KVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDEwcHg7XCIgKm5nSWY9XCJvcHRpb24udmFsdWVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJpb24tcGFkZGluZy10b3BcIj5cclxuICAgICAgPGlvbi1sYWJlbD5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cIm9wdGlvbi52YWx1ZSA9PSAnZW1haWwnICYmICFyZXR1cm5pbmdVc2VyXCI+e3snbWZhLmNvZGUuc2VudC5lbWFpbCd8dHJhbnNsYXRlfX06Jm5ic3A7IDxiPnt7dXNlcj8uZW1haWxJZCB8IG1hc2tFbWFpbH19PC9iPjwvc3Bhbj5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cIm9wdGlvbi52YWx1ZSA9PSAndGV4dCcgJiYgIXJldHVybmluZ1VzZXJcIj57eydtZmEuY29kZS5zZW50LmNlbGwnfHRyYW5zbGF0ZX19Jm5ic3A7IDxiPnt7dXNlcj8uY2VsbHBob25lTm8gfCBtYXNrRW1haWx9fTwvYj48L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJyZXR1cm5pbmdVc2VyXCI+e3snbWZhLmNvZGUuc2VudC5jZWxsJ3x0cmFuc2xhdGV9fSZuYnNwOyA8Yj57e3VzZXI/LmNlbGxwaG9uZU5vIHwgbWFza0VtYWlsfX08L2I+PC9zcGFuPlxyXG4gICAgICA8L2lvbi1sYWJlbD48YnIvPjxici8+XHJcbiAgICAgIDxpb24tbGFiZWwgKm5nSWY9XCJvcHRpb24udmFsdWUgPT0gJ2VtYWlsJyAmJiAhcmV0dXJuaW5nVXNlclwiPlxyXG4gICAgICAgIHt7J21mYS5jb2RlLnNlbnQuanVuayd8dHJhbnNsYXRlfX1cclxuICAgICAgPC9pb24tbGFiZWw+XHJcbiAgICAgIDxzcGFuICpuZ0lmPVwib3B0aW9uLnZhbHVlID09ICdlbWFpbCcgJiYgIXJldHVybmluZ1VzZXJcIj48YnIvPjxici8+PC9zcGFuPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgaW9uLXRleHQtbGVmdFwiPlxyXG4gICAgICAgIDxsYWJlbCBmb3I9XCJhdXRoQ29kZVwiICpuZ0lmPVwiIXJldHVybmluZ1VzZXJcIj57eydtZmEuZW50ZXIuY29kZSd8dHJhbnNsYXRlfX08L2xhYmVsPjxici8+XHJcbiAgICAgICAgPGxhYmVsIGZvcj1cImF1dGhDb2RlXCIgKm5nSWY9XCJyZXR1cm5pbmdVc2VyXCI+e3snbWZhLmVudGVyLmNvZGUucmVjZWl2ZWQnfHRyYW5zbGF0ZX19PC9sYWJlbD48YnIvPlxyXG4gICAgICAgIDxwLWlucHV0TnVtYmVyIChjbGljayk9XCJoaWRlT3B0VmFsaWRhdG9yPWZhbHNlXCIgKGtleXVwKT1cImhpZGVPcHRWYWxpZGF0b3I9ZmFsc2VcIiAjb3RwRmllbGQgZm9ybUNvbnRyb2xOYW1lPVwib3RwXCIgbWF4bGVuZ3RoPVwiNlwiIG1pbmxlbmd0aD1cIjZcIiBtb2RlPVwiZGVjaW1hbFwiIFt1c2VHcm91cGluZ109XCJmYWxzZVwiIHNpemU9XCI2XCIgW2lucHV0SWRdPVwiJ2F1dGhDb2RlJ1wiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIChrZXl1cC5lbnRlcik9XCIoIXJlcXVlc3RDb2RlICYmIG9wdGlvbi52YWx1ZSkgPyBzaWduSW4oKSA6IHN1Ym1pdCgpXCI+XHJcbiAgICAgICAgPC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgIDxhcHAtZXJyb3IgKm5nSWY9XCIhaGlkZU9wdFZhbGlkYXRvclwiIFtmaWVsZF09J290cCcgW2Zvcm1dPVwib3RwRm9ybVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgIHJlcXVpcmVkOiBBY2Nlc3NSZXF1aXJlZCxcclxuICAgICAgICAgIG1pbjogQWNjZXNzVmVyaWZ5LFxyXG4gICAgICAgICAgbWF4OiBBY2Nlc3NWZXJpZnlcclxuICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8aW9uLWl0ZW0gbGluZXM9XCJub25lXCIgKm5nSWY9XCJmYWxzZVwiPlxyXG4gICAgICAgIDxpb24tY2hlY2tib3ggc2xvdD1cInN0YXJ0XCIgZm9ybUNvbnRyb2xOYW1lPVwiY2hlY2tlZFwiPjwvaW9uLWNoZWNrYm94PlxyXG4gICAgICAgIDxpb24tbGFiZWwgY2xhc3M9XCJpb24tdGV4dC13cmFwXCI+e3snbWZhLmJyb3dzZXIudHJ1c3QnfHRyYW5zbGF0ZX19PC9pb24tbGFiZWw+XHJcbiAgICAgIDwvaW9uLWl0ZW0+XHJcbiAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgPG1hdC1lcnJvciAqbmdJZj1cImVycm9yRHRsc1wiPnt7ZXJyb3JEdGxzfX08YnIgLz48YnIgLz48L21hdC1lcnJvcj5cclxuICAgIDxpb24tbGFiZWwgKm5nSWY9XCJzdWNjZXNzRHRsc1wiIHN0eWxlPVwiY29sb3I6IHZhcigtLWlvbi1jb2xvci1ncmVlbilcIj57e3N1Y2Nlc3NEdGxzfX08YnIvPjxiciAvPjwvaW9uLWxhYmVsPlxyXG4gICAgPGlvbi1sYWJlbCAqbmdJZj1cIiFibG9ja2VkXCI+XHJcbiAgICAgIDxzcGFuICpuZ0lmPVwiY291bnRlci5nZXRWYWx1ZSgpICE9IDEgJiYgIXJldHVybmluZ1VzZXJcIj5cclxuICAgICAgICB7eydtZmEuY29kZS5ub3QucmVjZWl2ZWQnfHRyYW5zbGF0ZX19IDxiPnt7Y291bnRlci5nZXRWYWx1ZSgpfX0gc2Vjb25kKHMpPC9iPi5cclxuICAgICAgPC9zcGFuPlxyXG4gICAgICA8c3BhbiAqbmdJZj1cImNvdW50ZXIuZ2V0VmFsdWUoKSA9PSAxICYmICFyZXR1cm5pbmdVc2VyXCI+XHJcbiAgICAgICAgIDxhIHRhYmluZGV4PVwiMFwiIChrZXl1cC5lbnRlcik9XCJyZXNlbmRBdXRoQ29kZShvcHRpb24udmFsdWUpXCIgKGNsaWNrKT1cInJlc2VuZEF1dGhDb2RlKG9wdGlvbi52YWx1ZSlcIiBjbGFzcz1cImxpbmtcIj57eydtZmEuZ2V0Lm5ldy5jb2RlJ3x0cmFuc2xhdGV9fTwvYT5cclxuICAgICAgPC9zcGFuPlxyXG4gICAgICA8c3BhbiAqbmdJZj1cImNvdW50ZXIuZ2V0VmFsdWUoKSA9PSAxICYmIHJldHVybmluZ1VzZXJcIj5cclxuICAgICAgICA8YSB0YWJpbmRleD1cIjBcIiAoa2V5dXAuZW50ZXIpPVwicmVzZW5kQXV0aENvZGUob3B0aW9uLnZhbHVlKVwiIChjbGljayk9XCJyZXNlbmRBdXRoQ29kZShvcHRpb24udmFsdWUpXCIgY2xhc3M9XCJsaW5rXCI+IHt7J21mYS5yZXNlbmQudmVyaWZpY2F0aW9uLmNvZGUnfHRyYW5zbGF0ZX19PC9hPlxyXG4gICAgIDwvc3Bhbj5cclxuICAgIDwvaW9uLWxhYmVsPlxyXG4gICAgPHAgKm5nSWY9XCIhcmV0dXJuaW5nVXNlclwiPjxhIHRhYmluZGV4PVwiMFwiIGNsYXNzPVwibGlua1wiIChrZXl1cC5lbnRlcik9XCJzaG93SGVscCA9ICFzaG93SGVscDsgJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIiAoY2xpY2spPVwic2hvd0hlbHAgPSAhc2hvd0hlbHA7ICRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCI+Q2FuJ3QgZ2V0IHRvIHlvdXIge3tvcHRpb24udmFsdWUgPT0gJ3RleHQnID8gJ2NlbGxwaG9uZScgOiAnZW1haWwnfX0/PC9hPjwvcD5cclxuICAgIDwhLS0gPHAgKm5nSWY9XCJyZXR1cm5pbmdVc2VyXCI+PGEgdGFiaW5kZXg9XCIwXCIgY2xhc3M9XCJsaW5rXCIgKGtleXVwLmVudGVyKT1cImNsb3NlKClcIiAoY2xpY2spPVwiY2xvc2UoKVwiPlVuYWJsZSB0byB2ZXJpZnk8L2E+PC9wPiAtLT5cclxuICAgIDxwICpuZ0lmPVwic2hvd0hlbHAgJiYgIXJldHVybmluZ1VzZXJcIj5cclxuICAgICAge3snbWZhLmdvb2QuZm9yLnRpbWUnfHRyYW5zbGF0ZX19PGJyLz5cclxuICAgICAgb3I8YnIvPlxyXG4gICAgICBJZiB5b3VyIHt7b3B0aW9uLnZhbHVlID09ICd0ZXh0JyA/ICdjZWxscGhvbmUgbnVtYmVyJyA6ICdlbWFpbCBhZGRyZXNzJ319IGhhcyBjaGFuZ2VkIGNhbGwgS0RPTCBhdCA3ODUtNTc1LTE0NjAsIE1vbmRheSB0aHJvdWdoIEZyaWRheSBmcm9tIDggYW0gdG8gNDozMCBwbS5cclxuICAgIDwvcD5cclxuICA8L2Rpdj5cclxuXHJcbiAgPHAtZm9vdGVyPlxyXG4gICAgPGRpdiAqbmdJZj1cImJsb2NrZWRcIiBjbGFzcz1cImlvbi10ZXh0LWNlbnRlclwiPlxyXG4gICAgICA8aW9uLXNwaW5uZXIgbmFtZT1cImRvdHNcIj48L2lvbi1zcGlubmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaW9uLXRleHQtcmlnaHQgaW9uLXBhZGRpbmctYm90dG9tXCIgKm5nSWY9XCIhYmxvY2tlZCAmJiAhaGlkZUJ1dHRvbnNcIj5cclxuICAgICAgPGlvbi1idXR0b24gdGFiaW5kZXg9XCIwXCIgc2hhcGU9XCJyb3VuZFwiIHR5cGU9XCJyZXNldFwiIChrZXl1cC5lbnRlcik9XCJjbG9zZShmYWxzZSlcIiAoY2xpY2spPVwiY2xvc2UoZmFsc2UpXCIgY29sb3I9XCJzdWNjZXNzXCIgZmlsbD1cIm91dGxpbmVcIj5cclxuICAgICAgICB7eydjb21tb24uY2xvc2UnfHRyYW5zbGF0ZX19XHJcbiAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgPGlvbi1idXR0b24gIHRhYmluZGV4PVwiMFwiIHNoYXBlPVwicm91bmRcIiB0eXBlPVwic3VibWl0XCIgKGtleXVwLmVudGVyKT1cInNpZ25JbigpXCIgKGNsaWNrKT1cInNpZ25JbigpXCIgY29sb3I9XCJzdWNjZXNzXCIgKm5nSWY9XCIhcmVxdWVzdENvZGUgJiYgb3B0aW9uLnZhbHVlXCI+XHJcbiAgICAgICAge3snY29tbW9uLnN1Ym1pdCd8dHJhbnNsYXRlfX1cclxuICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICA8aW9uLWJ1dHRvbiB0YWJpbmRleD1cIjBcIiBzaGFwZT1cInJvdW5kXCIgdHlwZT1cInN1Ym1pdFwiIChrZXl1cC5lbnRlcik9XCJzdWJtaXQoKVwiIChjbGljayk9XCJzdWJtaXQoKVwiIGNvbG9yPVwic3VjY2Vzc1wiICpuZ0lmPVwicmVxdWVzdENvZGUgJiYgb3B0aW9uLnZhbHVlXCI+XHJcbiAgICAgICAge3snY29tbW9uLnN1Ym1pdCd8dHJhbnNsYXRlfX1cclxuICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9wLWZvb3Rlcj5cclxuPC9mb3JtPiJdfQ==