@po-ui/ng-templates 17.20.0 → 18.0.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/po-modal-password-recovery/po-modal-password-recovery-base.component.mjs +1 -1
- package/esm2022/lib/components/po-modal-password-recovery/po-modal-password-recovery-error-message/po-modal-password-recovery-error-message.component.mjs +2 -2
- package/esm2022/lib/components/po-modal-password-recovery/po-modal-password-recovery.component.mjs +69 -69
- package/esm2022/lib/components/po-page-background/po-page-background.component.mjs +15 -15
- package/esm2022/lib/components/po-page-blocked-user/po-page-blocked-user-base.component.mjs +2 -2
- package/esm2022/lib/components/po-page-blocked-user/po-page-blocked-user-contacts/po-page-blocked-user-contacts.component.mjs +8 -8
- package/esm2022/lib/components/po-page-blocked-user/po-page-blocked-user-reason/po-page-blocked-user-reason.component.mjs +2 -2
- package/esm2022/lib/components/po-page-blocked-user/po-page-blocked-user.component.mjs +2 -2
- package/esm2022/lib/components/po-page-change-password/po-page-change-password-base.component.mjs +2 -2
- package/esm2022/lib/components/po-page-change-password/po-page-change-password.component.mjs +41 -40
- package/esm2022/lib/components/po-page-dynamic-detail/po-page-dynamic-detail-actions.service.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-detail/po-page-dynamic-detail.component.mjs +12 -12
- package/esm2022/lib/components/po-page-dynamic-edit/po-page-dynamic-edit-actions.service.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-edit/po-page-dynamic-edit.component.mjs +27 -27
- package/esm2022/lib/components/po-page-dynamic-search/po-advanced-filter/po-advanced-filter-base.component.mjs +2 -2
- package/esm2022/lib/components/po-page-dynamic-search/po-advanced-filter/po-advanced-filter.component.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-search/po-page-dynamic-search-base.component.mjs +2 -2
- package/esm2022/lib/components/po-page-dynamic-search/po-page-dynamic-search.component.mjs +5 -4
- package/esm2022/lib/components/po-page-dynamic-table/po-page-dynamic-list-base.component.mjs +2 -2
- package/esm2022/lib/components/po-page-dynamic-table/po-page-dynamic-table-actions.service.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-table/po-page-dynamic-table.component.mjs +2 -2
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-base.component.mjs +2 -2
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-execution/po-page-job-scheduler-execution.component.mjs +82 -81
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-parameters/po-job-scheduler-parameters-template/po-job-scheduler-parameters-template.directive.mjs +1 -1
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-parameters/po-page-job-scheduler-parameters.component.mjs +14 -14
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-summary/po-page-job-scheduler-summary.component.mjs +9 -9
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler.component.mjs +19 -18
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler.service.mjs +1 -1
- package/esm2022/lib/components/po-page-login/po-page-login-base.component.mjs +2 -2
- package/esm2022/lib/components/po-page-login/po-page-login-popover/po-page-login-popover.component.mjs +12 -12
- package/esm2022/lib/components/po-page-login/po-page-login.component.mjs +74 -74
- package/esm2022/lib/components/po-page-login/po-page-login.service.mjs +1 -1
- package/esm2022/lib/services/po-page-customization/po-page-customization.service.mjs +1 -1
- package/esm2022/lib/services/po-page-dynamic/po-page-dynamic.service.mjs +1 -1
- package/esm2022/lib/utils/util.mjs +1 -1
- package/fesm2022/po-ui-ng-templates.mjs +388 -384
- package/fesm2022/po-ui-ng-templates.mjs.map +1 -1
- package/package.json +12 -12
- package/po-ui-ng-templates-18.0.0-rc.0.tgz +0 -0
- package/schematics/ng-add/index.js +1 -1
- package/schematics/ng-add/index.js.map +1 -1
- package/po-ui-ng-templates-17.20.0.tgz +0 -0
|
@@ -103,4 +103,4 @@ export class PoPageDynamicService {
|
|
|
103
103
|
providedIn: 'root'
|
|
104
104
|
}]
|
|
105
105
|
}], () => [{ type: i1.HttpClient }, { type: i2.PoNotificationService }, { type: i2.PoLanguageService }], null); })();
|
|
106
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tcGFnZS1keW5hbWljLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZW1wbGF0ZXMvc3JjL2xpYi9zZXJ2aWNlcy9wby1wYWdlLWR5bmFtaWMvcG8tcGFnZS1keW5hbWljLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWlDLFdBQVcsRUFBYyxNQUFNLHNCQUFzQixDQUFDO0FBRTlGLE9BQU8sRUFBRSxLQUFLLEVBQWMsRUFBRSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN6RCxPQUFPLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBTWpELE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUE2QztJQUM3RSxFQUFFLEVBQUU7UUFDRixlQUFlLEVBQUUsb0JBQW9CO1FBQ3JDLDJCQUEyQixFQUFFLHVDQUF1QztLQUNyRTtJQUNELEVBQUUsRUFBRTtRQUNGLGVBQWUsRUFBRSwyQkFBMkI7UUFDNUMsMkJBQTJCLEVBQUUsbURBQW1EO0tBQ2pGO0lBQ0QsRUFBRSxFQUFFO1FBQ0YsZUFBZSxFQUFFLDJCQUEyQjtRQUM1QywyQkFBMkIsRUFBRSxrREFBa0Q7S0FDaEY7SUFDRCxFQUFFLEVBQUU7UUFDRixlQUFlLEVBQUUsMEJBQTBCO1FBQzNDLDJCQUEyQixFQUFFLDBDQUEwQztLQUN4RTtDQUNGLENBQUM7QUFLRixNQUFNLE9BQU8sb0JBQW9CO0lBVXJCO0lBQ0E7SUFWRCxPQUFPLEdBQWdCLElBQUksV0FBVyxDQUFDO1FBQzlDLGtCQUFrQixFQUFFLE1BQU07S0FDM0IsQ0FBQyxDQUFDO0lBRUssUUFBUSxHQUFHLEdBQUcsQ0FBQztJQUNmLFFBQVEsQ0FBUztJQUNqQixRQUFRLENBQVM7SUFFekIsWUFDVSxJQUFnQixFQUNoQixZ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O0lBQzlHLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxRQUFpQixFQUFFLGNBQWMsR0FBRyxLQUFLO1FBQ2hFLFFBQVEsR0FBRyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUNyQyxJQUFJLGNBQWMsRUFBRTtZQUNsQixRQUFRLEdBQUcsUUFBUSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7U0FDN0M7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDOzhFQTNGVSxvQkFBb0I7Z0VBQXBCLG9CQUFvQixXQUFwQixvQkFBb0IsbUJBRm5CLE1BQU07O2lGQUVQLG9CQUFvQjtjQUhoQyxVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXJyb3JSZXNwb25zZSwgSHR0cEhlYWRlcnMsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cbmltcG9ydCB7IG1lcmdlLCBPYnNlcnZhYmxlLCBvZiwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBQb0xhbmd1YWdlU2VydmljZSwgUG9Ob3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnQHBvLXVpL25nLWNvbXBvbmVudHMnO1xuXG5pbXBvcnQgeyBQb1BhZ2VEeW5hbWljTGl0ZXJhbHMgfSBmcm9tICcuL3BvLXBhZ2UtZHluYW1pYy1saXRlcmFscy5pbnRlcmZhY2UnO1xuXG5leHBvcnQgY29uc3QgcG9QYWdlRHluYW1pY0xpdGVyYWxzOiB7IFtrZXk6IHN0cmluZ106IFBvUGFnZUR5bmFtaWNMaXRlcmFscyB9ID0ge1xuICBlbjoge1xuICAgIGVycm9yUmVuZGVyUGFnZTogJ0Vycm9yIGxvYWRpbmcgcGFnZScsXG4gICAgbm90UG9zc2libGVMb2FkTWV0YWRhdGFQYWdlOiAnVGhlIHBhZ2UgbWV0YWRhdGEgY291bGQgbm90IGJlIGxvYWRlZCdcbiAgfSxcbiAgZXM6IHtcbiAgICBlcnJvclJlbmRlclBhZ2U6ICdFcnJvciBhbCBjYXJnYXIgbGEgcMOhZ2luYScsXG4gICAgbm90UG9zc2libGVMb2FkTWV0YWRhdGFQYWdlOiAnTm8gc2UgcHVkaWVyb24gY2FyZ2FyIGxvcyBtZXRhZGF0b3MgZGUgbGEgcMOhZ2luYS4nXG4gIH0sXG4gIHB0OiB7XG4gICAgZXJyb3JSZW5kZXJQYWdlOiAnRXJybyBhbyBjYXJyZWdhciBhIHDDoWdpbmEnLFxuICAgIG5vdFBvc3NpYmxlTG9hZE1ldGFkYXRhUGFnZTogJ07Do28gZm9pIHBvc3PDrXZlbCBjYXJyZWdhciBvcyBtZXRhZGFkb3MgZGEgcMOhZ2luYSdcbiAgfSxcbiAgcnU6IHtcbiAgICBlcnJvclJlbmRlclBhZ2U6ICfQntGI0LjQsdC60LAg0LfQsNCz0YDRg9C30LrQuCDRgdGC0YDQsNC90LjRhtGLJyxcbiAgICBub3RQb3NzaWJsZUxvYWRNZXRhZGF0YVBhZ2U6ICfQndC1INGD0LTQsNC70L7RgdGMINC30LDQs9GA0YPQt9C40YLRjCDQvNC10YLQsNC00LDQvdC90YvQtSDRgdGC0YDQsNC90LjRhtGLJ1xuICB9XG59O1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBQb1BhZ2VEeW5hbWljU2VydmljZSB7XG4gIHJlYWRvbmx5IGhlYWRlcnM6IEh0dHBIZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKHtcbiAgICAnWC1QTy1TQ1JFRU4tTE9DSyc6ICd0cnVlJ1xuICB9KTtcblxuICBwcml2YXRlIGVuZHBvaW50ID0gJy8nO1xuICBwcml2YXRlIGxhbmd1YWdlOiBzdHJpbmc7XG4gIHByaXZhdGUgbWV0YWRhdGE6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBub3RpZmljYXRpb246IFBvTm90aWZpY2F0aW9uU2VydmljZSxcbiAgICBsYW5ndWFnZVNlcnZpY2U6IFBvTGFuZ3VhZ2VTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMubGFuZ3VhZ2UgPSBsYW5ndWFnZVNlcnZpY2UuZ2V0U2hvcnRMYW5ndWFnZSgpO1xuICB9XG5cbiAgY29uZmlnU2VydmljZUFwaShjb25maWc6IHsgZW5kcG9pbnQ/OiBzdHJpbmc7IG1ldGFkYXRhPzogc3RyaW5nIH0gPSB7fSkge1xuICAgIHRoaXMuZW5kcG9pbnQgPSBjb25maWcuZW5kcG9pbnQ7XG4gICAgdGhpcy5tZXRhZGF0YSA9IGNvbmZpZy5tZXRhZGF0YSB8fCB0aGlzLm1ldGFkYXRhO1xuICB9XG5cbiAgZ2V0TWV0YWRhdGE8VD4odHlwZTogc3RyaW5nID0gJ2xpc3QnKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgY29uc3Qga2V5ID0gYCR7dGhpcy5lbmRwb2ludH0tJHt0eXBlfS1tZXRhZGF0YWA7XG4gICAgY29uc3QgY2FjaGUgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKGtleSkpIHx8IHt9O1xuICAgIGNvbnN0IG1ldGFkYXRhVXJsQmFzZSA9IHRoaXMubWV0YWRhdGEgfHwgYCR7dGhpcy5lbmRwb2ludH0vbWV0YWRhdGFgO1xuXG4gICAgY29uc3QgdXJsID0gYCR7bWV0YWRhdGFVcmxCYXNlfT90eXBlPSR7dHlwZX0mdmVyc2lvbj0ke2NhY2hlLnZlcnNpb24gfHwgJyd9YDtcblxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFQ+KHVybCkucGlwZShcbiAgICAgIG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICBpZiAocmVzcG9uc2UudmVyc2lvbiAhPT0gdW5kZWZpbmVkICYmIHJlc3BvbnNlLnZlcnNpb24gPT09IGNhY2hlLnZlcnNpb24pIHtcbiAgICAgICAgICByZXR1cm4gY2FjaGU7XG4gICAgICAgIH1cblxuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShrZXksIEpTT04uc3RyaW5naWZ5KHJlc3BvbnNlKSk7XG5cbiAgICAgICAgcmV0dXJuIHsgLi4uY2FjaGUsIC4uLnJlc3BvbnNlIH07XG4gICAgICB9KSxcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xuICAgICAgICBpZiAoT2JqZWN0LmtleXMoY2FjaGUpLmxlbmd0aCkge1xuICAgICAgICAgIHJldHVybiBvZihjYWNoZSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB7IGVycm9yUmVuZGVyUGFnZSwgbm90UG9zc2libGVMb2FkTWV0YWRhdGFQYWdlIH0gPSBwb1BhZ2VEeW5hbWljTGl0ZXJhbHNbdGhpcy5sYW5ndWFnZV07XG5cbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb24ud2FybmluZyhub3RQb3NzaWJsZUxvYWRNZXRhZGF0YVBhZ2UpO1xuXG4gICAgICAgIHJldHVybiBtZXJnZShvZih7IHRpdGxlOiBlcnJvclJlbmRlclBhZ2UgfSksIHRocm93RXJyb3IoZXJyb3IpKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8vIERlbGV0YSB1bSDDum5pY28gcmVjdXJzb1xuICBkZWxldGVSZXNvdXJjZShpZD8sIGVuZHBvaW50Pzogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBsb2NhbEVuZFBvaW50ID0gdGhpcy5nZXRMb2NhbEVuZFBvaW50KGVuZHBvaW50LCB0cnVlKTtcbiAgICBjb25zdCB1cmwgPSBpZCA/IGAke2xvY2FsRW5kUG9pbnR9LyR7aWR9YCA6IGxvY2FsRW5kUG9pbnQ7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUodXJsLCB7IGhlYWRlcnM6IHRoaXMuaGVhZGVycyB9KTtcbiAgfVxuXG4gIC8vIERlbGV0YSByZWN1cnNvcyBlbSBsb3RlXG4gIGRlbGV0ZVJlc291cmNlcyhpZHM6IEFycmF5PGFueT4sIGVuZHBvaW50Pzogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnJlcXVlc3QoJ2RlbGV0ZScsIGAke3RoaXMuZ2V0TG9jYWxFbmRQb2ludChlbmRwb2ludCl9YCwgeyBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsIGJvZHk6IGlkcyB9KTtcbiAgfVxuXG4gIC8vIEJ1c2NhIHVtYSBsaXN0YSBkZSByZWN1cnNvc1xuICBnZXRSZXNvdXJjZXMocGFyYW1zPzogSHR0cFBhcmFtcywgZW5kcG9pbnQ/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuZ2V0TG9jYWxFbmRQb2ludChlbmRwb2ludCksIHsgaGVhZGVyczogdGhpcy5oZWFkZXJzLCBwYXJhbXMgfSk7XG4gIH1cblxuICAvLyBCdXNjYSB1bSDDum5pY28gcmVjdXJzb1xuICBnZXRSZXNvdXJjZShpZCwgZW5kcG9pbnQ/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZ2V0TG9jYWxFbmRQb2ludChlbmRwb2ludCwgdHJ1ZSl9LyR7aWR9YCwgeyBoZWFkZXJzOiB0aGlzLmhlYWRlcnMgfSk7XG4gIH1cblxuICAvLyBDcmlhIHVtIHJlY3Vyc29cbiAgY3JlYXRlUmVzb3VyY2UocmVzb3VyY2UsIGVuZHBvaW50Pzogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5nZXRMb2NhbEVuZFBvaW50KGVuZHBvaW50KX1gLCByZXNvdXJjZSwgeyBoZWFkZXJzOiB0aGlzLmhlYWRlcnMgfSk7XG4gIH1cblxuICAvLyBBdHVhbGl6YSB1bSByZWN1cnNvXG4gIHVwZGF0ZVJlc291cmNlKGlkLCByZXNvdXJjZSwgZW5kcG9pbnQ/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMuZ2V0TG9jYWxFbmRQb2ludChlbmRwb2ludCwgdHJ1ZSl9LyR7aWR9YCwgcmVzb3VyY2UsIHsgaGVhZGVyczogdGhpcy5oZWFkZXJzIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRMb2NhbEVuZFBvaW50KGVuZHBvaW50Pzogc3RyaW5nLCBjaGVja1NpbmdsZUJhciA9IGZhbHNlKSB7XG4gICAgZW5kcG9pbnQgPSBlbmRwb2ludCA/PyB0aGlzLmVuZHBvaW50O1xuICAgIGlmIChjaGVja1NpbmdsZUJhcikge1xuICAgICAgZW5kcG9pbnQgPSBlbmRwb2ludCA9PT0gJy8nID8gJycgOiBlbmRwb2ludDtcbiAgICB9XG4gICAgcmV0dXJuIGVuZHBvaW50O1xuICB9XG59XG4iXX0=
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tcGFnZS1keW5hbWljLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZW1wbGF0ZXMvc3JjL2xpYi9zZXJ2aWNlcy9wby1wYWdlLWR5bmFtaWMvcG8tcGFnZS1keW5hbWljLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWlDLFdBQVcsRUFBYyxNQUFNLHNCQUFzQixDQUFDO0FBRTlGLE9BQU8sRUFBRSxLQUFLLEVBQWMsRUFBRSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN6RCxPQUFPLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBTWpELE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUE2QztJQUM3RSxFQUFFLEVBQUU7UUFDRixlQUFlLEVBQUUsb0JBQW9CO1FBQ3JDLDJCQUEyQixFQUFFLHVDQUF1QztLQUNyRTtJQUNELEVBQUUsRUFBRTtRQUNGLGVBQWUsRUFBRSwyQkFBMkI7UUFDNUMsMkJBQTJCLEVBQUUsbURBQW1EO0tBQ2pGO0lBQ0QsRUFBRSxFQUFFO1FBQ0YsZUFBZSxFQUFFLDJCQUEyQjtRQUM1QywyQkFBMkIsRUFBRSxrREFBa0Q7S0FDaEY7SUFDRCxFQUFFLEVBQUU7UUFDRixlQUFlLEVBQUUsMEJBQTBCO1FBQzNDLDJCQUEyQixFQUFFLDBDQUEwQztLQUN4RTtDQUNGLENBQUM7QUFLRixNQUFNLE9BQU8sb0JBQW9CO0lBVXJCO0lBQ0E7SUFWRCxPQUFPLEdBQWdCLElBQUksV0FBVyxDQUFDO1FBQzlDLGtCQUFrQixFQUFFLE1BQU07S0FDM0IsQ0FBQyxDQUFDO0lBRUssUUFBUSxHQUFHLEdBQUcsQ0FBQztJQUNmLFFBQVEsQ0FBUztJQUNqQixRQUFRLENBQVM7SUFFekIsWUFDVSxJQUFnQixFQUNoQixZ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LE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDOUcsQ0FBQztJQUVPLGdCQUFnQixDQUFDLFFBQWlCLEVBQUUsY0FBYyxHQUFHLEtBQUs7UUFDaEUsUUFBUSxHQUFHLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3JDLElBQUksY0FBYyxFQUFFLENBQUM7WUFDbkIsUUFBUSxHQUFHLFFBQVEsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO1FBQzlDLENBQUM7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDOzhFQTNGVSxvQkFBb0I7Z0VBQXBCLG9CQUFvQixXQUFwQixvQkFBb0IsbUJBRm5CLE1BQU07O2lGQUVQLG9CQUFvQjtjQUhoQyxVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXJyb3JSZXNwb25zZSwgSHR0cEhlYWRlcnMsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cbmltcG9ydCB7IG1lcmdlLCBPYnNlcnZhYmxlLCBvZiwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBQb0xhbmd1YWdlU2VydmljZSwgUG9Ob3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnQHBvLXVpL25nLWNvbXBvbmVudHMnO1xuXG5pbXBvcnQgeyBQb1BhZ2VEeW5hbWljTGl0ZXJhbHMgfSBmcm9tICcuL3BvLXBhZ2UtZHluYW1pYy1saXRlcmFscy5pbnRlcmZhY2UnO1xuXG5leHBvcnQgY29uc3QgcG9QYWdlRHluYW1pY0xpdGVyYWxzOiB7IFtrZXk6IHN0cmluZ106IFBvUGFnZUR5bmFtaWNMaXRlcmFscyB9ID0ge1xuICBlbjoge1xuICAgIGVycm9yUmVuZGVyUGFnZTogJ0Vycm9yIGxvYWRpbmcgcGFnZScsXG4gICAgbm90UG9zc2libGVMb2FkTWV0YWRhdGFQYWdlOiAnVGhlIHBhZ2UgbWV0YWRhdGEgY291bGQgbm90IGJlIGxvYWRlZCdcbiAgfSxcbiAgZXM6IHtcbiAgICBlcnJvclJlbmRlclBhZ2U6ICdFcnJvciBhbCBjYXJnYXIgbGEgcMOhZ2luYScsXG4gICAgbm90UG9zc2libGVMb2FkTWV0YWRhdGFQYWdlOiAnTm8gc2UgcHVkaWVyb24gY2FyZ2FyIGxvcyBtZXRhZGF0b3MgZGUgbGEgcMOhZ2luYS4nXG4gIH0sXG4gIHB0OiB7XG4gICAgZXJyb3JSZW5kZXJQYWdlOiAnRXJybyBhbyBjYXJyZWdhciBhIHDDoWdpbmEnLFxuICAgIG5vdFBvc3NpYmxlTG9hZE1ldGFkYXRhUGFnZTogJ07Do28gZm9pIHBvc3PDrXZlbCBjYXJyZWdhciBvcyBtZXRhZGFkb3MgZGEgcMOhZ2luYSdcbiAgfSxcbiAgcnU6IHtcbiAgICBlcnJvclJlbmRlclBhZ2U6ICfQntGI0LjQsdC60LAg0LfQsNCz0YDRg9C30LrQuCDRgdGC0YDQsNC90LjRhtGLJyxcbiAgICBub3RQb3NzaWJsZUxvYWRNZXRhZGF0YVBhZ2U6ICfQndC1INGD0LTQsNC70L7RgdGMINC30LDQs9GA0YPQt9C40YLRjCDQvNC10YLQsNC00LDQvdC90YvQtSDRgdGC0YDQsNC90LjRhtGLJ1xuICB9XG59O1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBQb1BhZ2VEeW5hbWljU2VydmljZSB7XG4gIHJlYWRvbmx5IGhlYWRlcnM6IEh0dHBIZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKHtcbiAgICAnWC1QTy1TQ1JFRU4tTE9DSyc6ICd0cnVlJ1xuICB9KTtcblxuICBwcml2YXRlIGVuZHBvaW50ID0gJy8nO1xuICBwcml2YXRlIGxhbmd1YWdlOiBzdHJpbmc7XG4gIHByaXZhdGUgbWV0YWRhdGE6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBub3RpZmljYXRpb246IFBvTm90aWZpY2F0aW9uU2VydmljZSxcbiAgICBsYW5ndWFnZVNlcnZpY2U6IFBvTGFuZ3VhZ2VTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMubGFuZ3VhZ2UgPSBsYW5ndWFnZVNlcnZpY2UuZ2V0U2hvcnRMYW5ndWFnZSgpO1xuICB9XG5cbiAgY29uZmlnU2VydmljZUFwaShjb25maWc6IHsgZW5kcG9pbnQ/OiBzdHJpbmc7IG1ldGFkYXRhPzogc3RyaW5nIH0gPSB7fSkge1xuICAgIHRoaXMuZW5kcG9pbnQgPSBjb25maWcuZW5kcG9pbnQ7XG4gICAgdGhpcy5tZXRhZGF0YSA9IGNvbmZpZy5tZXRhZGF0YSB8fCB0aGlzLm1ldGFkYXRhO1xuICB9XG5cbiAgZ2V0TWV0YWRhdGE8VD4odHlwZTogc3RyaW5nID0gJ2xpc3QnKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgY29uc3Qga2V5ID0gYCR7dGhpcy5lbmRwb2ludH0tJHt0eXBlfS1tZXRhZGF0YWA7XG4gICAgY29uc3QgY2FjaGUgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKGtleSkpIHx8IHt9O1xuICAgIGNvbnN0IG1ldGFkYXRhVXJsQmFzZSA9IHRoaXMubWV0YWRhdGEgfHwgYCR7dGhpcy5lbmRwb2ludH0vbWV0YWRhdGFgO1xuXG4gICAgY29uc3QgdXJsID0gYCR7bWV0YWRhdGFVcmxCYXNlfT90eXBlPSR7dHlwZX0mdmVyc2lvbj0ke2NhY2hlLnZlcnNpb24gfHwgJyd9YDtcblxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFQ+KHVybCkucGlwZShcbiAgICAgIG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICBpZiAocmVzcG9uc2UudmVyc2lvbiAhPT0gdW5kZWZpbmVkICYmIHJlc3BvbnNlLnZlcnNpb24gPT09IGNhY2hlLnZlcnNpb24pIHtcbiAgICAgICAgICByZXR1cm4gY2FjaGU7XG4gICAgICAgIH1cblxuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShrZXksIEpTT04uc3RyaW5naWZ5KHJlc3BvbnNlKSk7XG5cbiAgICAgICAgcmV0dXJuIHsgLi4uY2FjaGUsIC4uLnJlc3BvbnNlIH07XG4gICAgICB9KSxcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xuICAgICAgICBpZiAoT2JqZWN0LmtleXMoY2FjaGUpLmxlbmd0aCkge1xuICAgICAgICAgIHJldHVybiBvZihjYWNoZSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB7IGVycm9yUmVuZGVyUGFnZSwgbm90UG9zc2libGVMb2FkTWV0YWRhdGFQYWdlIH0gPSBwb1BhZ2VEeW5hbWljTGl0ZXJhbHNbdGhpcy5sYW5ndWFnZV07XG5cbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb24ud2FybmluZyhub3RQb3NzaWJsZUxvYWRNZXRhZGF0YVBhZ2UpO1xuXG4gICAgICAgIHJldHVybiBtZXJnZShvZih7IHRpdGxlOiBlcnJvclJlbmRlclBhZ2UgfSksIHRocm93RXJyb3IoZXJyb3IpKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8vIERlbGV0YSB1bSDDum5pY28gcmVjdXJzb1xuICBkZWxldGVSZXNvdXJjZShpZD8sIGVuZHBvaW50Pzogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBsb2NhbEVuZFBvaW50ID0gdGhpcy5nZXRMb2NhbEVuZFBvaW50KGVuZHBvaW50LCB0cnVlKTtcbiAgICBjb25zdCB1cmwgPSBpZCA/IGAke2xvY2FsRW5kUG9pbnR9LyR7aWR9YCA6IGxvY2FsRW5kUG9pbnQ7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUodXJsLCB7IGhlYWRlcnM6IHRoaXMuaGVhZGVycyB9KTtcbiAgfVxuXG4gIC8vIERlbGV0YSByZWN1cnNvcyBlbSBsb3RlXG4gIGRlbGV0ZVJlc291cmNlcyhpZHM6IEFycmF5PGFueT4sIGVuZHBvaW50Pzogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnJlcXVlc3QoJ2RlbGV0ZScsIGAke3RoaXMuZ2V0TG9jYWxFbmRQb2ludChlbmRwb2ludCl9YCwgeyBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsIGJvZHk6IGlkcyB9KTtcbiAgfVxuXG4gIC8vIEJ1c2NhIHVtYSBsaXN0YSBkZSByZWN1cnNvc1xuICBnZXRSZXNvdXJjZXMocGFyYW1zPzogSHR0cFBhcmFtcywgZW5kcG9pbnQ/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuZ2V0TG9jYWxFbmRQb2ludChlbmRwb2ludCksIHsgaGVhZGVyczogdGhpcy5oZWFkZXJzLCBwYXJhbXMgfSk7XG4gIH1cblxuICAvLyBCdXNjYSB1bSDDum5pY28gcmVjdXJzb1xuICBnZXRSZXNvdXJjZShpZCwgZW5kcG9pbnQ/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZ2V0TG9jYWxFbmRQb2ludChlbmRwb2ludCwgdHJ1ZSl9LyR7aWR9YCwgeyBoZWFkZXJzOiB0aGlzLmhlYWRlcnMgfSk7XG4gIH1cblxuICAvLyBDcmlhIHVtIHJlY3Vyc29cbiAgY3JlYXRlUmVzb3VyY2UocmVzb3VyY2UsIGVuZHBvaW50Pzogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5nZXRMb2NhbEVuZFBvaW50KGVuZHBvaW50KX1gLCByZXNvdXJjZSwgeyBoZWFkZXJzOiB0aGlzLmhlYWRlcnMgfSk7XG4gIH1cblxuICAvLyBBdHVhbGl6YSB1bSByZWN1cnNvXG4gIHVwZGF0ZVJlc291cmNlKGlkLCByZXNvdXJjZSwgZW5kcG9pbnQ/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMuZ2V0TG9jYWxFbmRQb2ludChlbmRwb2ludCwgdHJ1ZSl9LyR7aWR9YCwgcmVzb3VyY2UsIHsgaGVhZGVyczogdGhpcy5oZWFkZXJzIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRMb2NhbEVuZFBvaW50KGVuZHBvaW50Pzogc3RyaW5nLCBjaGVja1NpbmdsZUJhciA9IGZhbHNlKSB7XG4gICAgZW5kcG9pbnQgPSBlbmRwb2ludCA/PyB0aGlzLmVuZHBvaW50O1xuICAgIGlmIChjaGVja1NpbmdsZUJhcikge1xuICAgICAgZW5kcG9pbnQgPSBlbmRwb2ludCA9PT0gJy8nID8gJycgOiBlbmRwb2ludDtcbiAgICB9XG4gICAgcmV0dXJuIGVuZHBvaW50O1xuICB9XG59XG4iXX0=
|
|
@@ -425,4 +425,4 @@ export function sortArrayOfObjects(items, key, isAscendingOrder) {
|
|
|
425
425
|
}
|
|
426
426
|
});
|
|
427
427
|
}
|
|
428
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RlbXBsYXRlcy9zcmMvbGliL3V0aWxzL3V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVsRTs7R0FFRztBQUNILE1BQU0sVUFBVSxrQkFBa0I7SUFDaEMsK0NBQStDO0lBQy9DLE9BQU8sU0FBUyxDQUFDLFFBQVEsSUFBSSxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDekQsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLHVCQUF1QjtJQUNyQyxNQUFNLFFBQVEsR0FBRyxDQUFDLGtCQUFrQixFQUFFLElBQUksZUFBZSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUV6RixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRTtRQUNqQyxPQUFPLGVBQWUsQ0FBQztLQUN4QjtJQUVELE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsR0FBUTtJQUN2QyxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRTtRQUMzQixHQUFHLEdBQUcsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQy9CLE9BQU8sR0FBRyxLQUFLLE1BQU0sSUFBSSxHQUFHLEtBQUssSUFBSSxJQUFJLEdBQUcsS0FBSyxFQUFFLENBQUM7S0FDckQ7SUFFRCxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRTtRQUMzQixPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUM7S0FDbEI7SUFFRCxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUM7QUFDZixDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxLQUFV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QkFBZ0IsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQztTQUMxRDtJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHBvTG9jYWxlcywgcG9Mb2NhbGVEZWZhdWx0IH0gZnJvbSAnQHBvLXVpL25nLWNvbXBvbmVudHMnO1xuXG4vKipcbiAqIFJldG9ybmEgbyBpZGlvbWEgYXR1YWwgZG8gbmF2ZWdhZG9yXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRCcm93c2VyTGFuZ3VhZ2UoKTogc3RyaW5nIHtcbiAgLy8gbmF2aWdhdG9yLnVzZXJMYW5ndWFnZSBpcyB0aGUgdmFsdWUgZm9yIElFMTBcbiAgcmV0dXJuIG5hdmlnYXRvci5sYW5ndWFnZSB8fCBuYXZpZ2F0b3JbJ3VzZXJMYW5ndWFnZSddO1xufVxuXG4vKipcbiAqIFJldG9ybmEgbyBpZGlvbWEgZG8gbmF2ZWdhZG9yLCBjb20gc29tZW50ZSBhcyBkdWFzIHByaW1laXJhcyBsZXRyYXMuIFBvciBleGVtcGxvOiBcInB0XCIgb3UgXCJlc1wiLlxuICpcbiAqIENhc28gbyB2YWxvciByZXRvcm5hZG8gcGVsbyBuYXZlZ2Fkb3IgbsOjbyBlc3RpdmVyIGRlbnRybyBkb3MgaWRpb21hcyBzdXBvcnRhZG9zIHBlbG8gUE8sXG4gKiBzZXLDoSByZXRvcm5hZG8gYSBsaW5ndWFnZW0gcGFkcsOjbyAocG9Mb2NhbGVEZWZhdWx0KS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNob3J0QnJvd3Nlckxhbmd1YWdlKCk6IHN0cmluZyB7XG4gIGNvbnN0IGxhbmd1YWdlID0gKGdldEJyb3dzZXJMYW5ndWFnZSgpIHx8IHBvTG9jYWxlRGVmYXVsdCkudG9Mb3dlckNhc2UoKS5zdWJzdHJpbmcoMCwgMik7XG5cbiAgaWYgKCFwb0xvY2FsZXMuaW5jbHVkZXMobGFuZ3VhZ2UpKSB7XG4gICAgcmV0dXJuIHBvTG9jYWxlRGVmYXVsdDtcbiAgfVxuXG4gIHJldHVybiBsYW5ndWFnZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRUb0Jvb2xlYW4odmFsOiBhbnkpOiBib29sZWFuIHtcbiAgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnKSB7XG4gICAgdmFsID0gdmFsLnRvTG93ZXJDYXNlKCkudHJpbSgpO1xuICAgIHJldHVybiB2YWwgPT09ICd0cnVlJyB8fCB2YWwgPT09ICdvbicgfHwgdmFsID09PSAnJztcbiAgfVxuXG4gIGlmICh0eXBlb2YgdmFsID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiB2YWwgPT09IDE7XG4gIH1cblxuICByZXR1cm4gISF2YWw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0VG9JbnQodmFsdWU6IGFueSwgdmFsdWVEZWZhdWx0PzogYW55KTogbnVtYmVyIHtcbiAgY29uc3QgdmFsaWROdW1iZXIgPSBwYXJzZUludCh2YWx1ZSwgMTApO1xuICBjb25zdCB2YWxpZERlZmF1bHRWYWx1ZSA9IHBhcnNlSW50KHZhbHVlRGVmYXVsdCwgMTApO1xuICBjb25zdCBkZWZhdWx0VmFsdWUgPSB2YWxpZERlZmF1bHRWYWx1ZSB8fCB2YWxpZERlZmF1bHRWYWx1ZSA9PT0gMCA/IHZhbGlkRGVmYXVsdFZhbHVlIDogdW5kZWZpbmVkO1xuXG4gIHJldHVybiB2YWxpZE51bWJlciB8fCB2YWxpZE51bWJlciA9PT0gMCA/IHZhbGlkTnVtYmVyIDogZGVmYXVsdFZhbHVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNUeXBlb2Yob2JqZWN0OiBhbnksIHR5cGU6IGFueSkge1xuICByZXR1cm4gdHlwZW9mIG9iamVjdCA9PT0gdHlwZTtcbn1cblxuLyoqXG4gKlxuICogQHBhcmFtIGZuIEZ1bsOnw6NvIHF1ZSBzZXLDoSBleGVjdXRhZGEgZGVudHJvIGRvIGNvbnRleHRvLiBQb2RlbmRvIHNlciBvIG5vbWUgZGEgZnVuw6fDo29cbiAqIG91IGEgcmVmZXLDqm5jaWEgZGEgbWVzbWEuXG4gKlxuICogQHBhcmFtIGNvbnRleHQgQ29udGV4dG8gZG8gcXVhbCBhIGZ1bsOnw6NvIHNlcsOhIGV4ZWN1dGFkYS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhbGxGdW5jdGlvbihmbjogYW55LCBjb250ZXh0OiBhbnksIHBhcmFtPyk6IHZvaWQge1xuICBpZiAoaXNUeXBlb2YoZm4sICdmdW5jdGlvbicpKSB7XG4gICAgZm4uY2FsbChjb250ZXh0LCBwYXJhbSk7XG4gIH0gZWxzZSB7XG4gICAgY29udGV4dFtmbl0ocGFyYW0pO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0SXNvVG9EYXRlKHZhbHVlOiBzdHJpbmcsIHN0YXJ0OiBib29sZWFuLCBlbmQ6IGJvb2xlYW4pIHtcbiAgaWYgKHZhbHVlKSB7XG4gICAgY29uc3QgZGF5ID0gcGFyc2VJbnQodmFsdWUuc3Vic3RyaW5nKDgsIDEwKSwgMTApO1xuICAgIGNvbnN0IG1vbnRoID0gcGFyc2VJbnQodmFsdWUuc3Vic3RyaW5nKDUsIDcpLCAxMCk7XG4gICAgY29uc3QgeWVhciA9IHBhcnNlSW50KHZhbHVlLnN1YnN0cmluZygwLCA0KSwgMTApO1xuICAgIGlmIChzdGFydCkge1xuICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHllYXIsIG1vbnRoIC0gMSwgZGF5LCAwLCAwLCAwKTtcblxuICAgICAgc2V0WWVhckZyb20wVG8xMDAoZGF0ZSwgeWVhcik7XG5cbiAgICAgIHJldHVybiBkYXRlO1xuICAgIH0gZWxzZSBpZiAoZW5kKSB7XG4gICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoeWVhciwgbW9udGggLSAxLCBkYXksIDIzLCA1OSwgNTkpO1xuXG4gICAgICBzZXRZZWFyRnJvbTBUbzEwMChkYXRlLCB5ZWFyKTtcblxuICAgICAgcmV0dXJuIGRhdGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG1pbGxpc2Vjb25kcyA9IERhdGUucGFyc2UodmFsdWUpO1xuICAgICAgY29uc3QgdGltZXpvbmUgPSBuZXcgRGF0ZSgpLmdldFRpbWV6b25lT2Zmc2V0KCkgKiA2MDAwMDtcbiAgICAgIHJldHVybiBuZXcgRGF0ZShtaWxsaXNlY29uZHMgKyB0aW1lem9uZSk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0RGF0ZVRvSVNPRXh0ZW5kZWQoZGF0ZTogRGF0ZSwgdGltZT86IHN0cmluZykge1xuICBpZiAoZGF0ZSkge1xuICAgIGNvbnN0IGdldE1vbnRoID0gZGF0ZS5nZXRNb250aCgpICsgMTtcbiAgICBjb25zdCBkYXkgPSBkYXRlLmdldERhdGUoKSA8IDEwID8gJzAnICsgZGF0ZS5nZXREYXRlKCkgOiBkYXRlLmdldERhdGUoKTtcbiAgICBjb25zdCBtb250aCA9IGdldE1vbnRoIDwgMTAgPyAnMCcgKyBnZXRNb250aCA6IGdldE1vbnRoO1xuICAgIGNvbnN0IHllYXIgPSBmb3JtYXRZZWFyKGRhdGUuZ2V0RnVsbFllYXIoKSk7XG5cbiAgICBjb25zdCBkYXRlU3RyaW5nID0gZGF0ZS50b1N0cmluZygpO1xuXG4gICAgaWYgKHRpbWUpIHtcbiAgICAgIHJldHVybiB5ZWFyICsgJy0nICsgbW9udGggKyAnLScgKyBkYXkgKyB0aW1lO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICB5ZWFyICtcbiAgICAgICAgJy0nICtcbiAgICAgICAgbW9udGggK1xuICAgICAgICAnLScgK1xuICAgICAgICBkYXkgK1xuICAgICAgICAnVCcgK1xuICAgICAgICBkYXRlU3RyaW5nLnN1YnN0cmluZygxNiwgMjQpICtcbiAgICAgICAgZGF0ZVN0cmluZy5zdWJzdHJpbmcoMjgsIDMxKSArXG4gICAgICAgICc6JyArXG4gICAgICAgIGRhdGVTdHJpbmcuc3Vic3RyaW5nKDMxLCAzMylcbiAgICAgICk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbi8qKlxuICogVHJhbnNmb3JtYSBvIGFubyBlbSB1bWEgc3RyaW5nIG5vIGZvcm1hdG8geXl5eSBlIGNhc28gbyBhbm8gc2VqYSBtZW5vciBxdWUgMTAwMCBwcmVlbmNoZSBjb20gemVyb3MgYSBlc3F1ZXJkYS5cbiAqXG4gKiBAcGFyYW0geWVhciBBbm9cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFllYXIoeWVhcjogbnVtYmVyKSB7XG4gIGlmICh5ZWFyID49IDEwMDApIHtcbiAgICByZXR1cm4geWVhci50b1N0cmluZygpO1xuICB9XG5cbiAgaWYgKHllYXIgPiA5OSAmJiB5ZWFyIDwgMTAwMCkge1xuICAgIHJldHVybiBgMCR7eWVhcn1gO1xuICB9XG5cbiAgaWYgKHllYXIgPiA5ICYmIHllYXIgPCAxMDApIHtcbiAgICByZXR1cm4gYDAwJHt5ZWFyfWA7XG4gIH1cblxuICBpZiAoeWVhciA+PSAwICYmIHllYXIgPCAxMCkge1xuICAgIHJldHVybiBgMDAwJHt5ZWFyfWA7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRXF1YWxzKHZhbHVlLCBjb21wYXJlZFZhbHVlKSB7XG4gIHJldHVybiBKU09OLnN0cmluZ2lmeSh2YWx1ZSkgPT09IEpTT04uc3RyaW5naWZ5KGNvbXBhcmVkVmFsdWUpO1xufVxuXG4vKipcbiAqIENhc28gbyBhbm8gb3JpZ2luYWwgZGEgZGF0YSBzZWphIGVudHJlIDAgZSAxMDAgYXRyaWJ1aSBlc3NlIHZhbG9yIGFvIGFubywgcG9pcyBvIGBuZXcgRGF0ZWAgZG8gamF2YXNjcmlwdCB0cmFuc2Zvcm1hIG8gYW5vIHBhcmEgMTkwWC5cbiAqXG4gKiBAcGFyYW0gZGF0ZSBEYXRhXG4gKiBAcGFyYW0geWVhciBBbm8gb3JpZ2luYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldFllYXJGcm9tMFRvMTAwKGRhdGU6IERhdGUsIHllYXI6IG51bWJlcikge1xuICBpZiAoeWVhciA+PSAwICYmIHllYXIgPCAxMDApIHtcbiAgICBkYXRlLnNldEZ1bGxZZWFyKHllYXIpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzb3J0T3B0aW9uc0J5UHJvcGVydHkob3B0aW9uczogQXJyYXk8YW55PiwgcHJvcGVydHk6IHN0cmluZykge1xuICBvcHRpb25zLnNvcnQoKG9wdGlvbkEsIG9wdGlvbkIpID0+IHtcbiAgICBvcHRpb25BID0gb3B0aW9uQVtwcm9wZXJ0eV0udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpO1xuICAgIG9wdGlvbkIgPSBvcHRpb25CW3Byb3BlcnR5XS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCk7XG5cbiAgICBpZiAob3B0aW9uQSA8IG9wdGlvbkIpIHtcbiAgICAgIHJldHVybiAtMTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbkEgPiBvcHRpb25CKSB7XG4gICAgICByZXR1cm4gMTtcbiAgICB9XG4gICAgcmV0dXJuIDA7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlRHVwbGljYXRlZE9wdGlvbnMobGlzdDogQXJyYXk8YW55Pikge1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoaSA9PT0gMCkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKGxpc3QuZmluZEluZGV4KG9wID0+IG9wLnZhbHVlID09PSBsaXN0W2ldLnZhbHVlKSAhPT0gaSkge1xuICAgICAgbGlzdC5zcGxpY2UoaSwgMSk7XG4gICAgICBpLS07XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVVbmRlZmluZWRBbmROdWxsT3B0aW9ucyhsaXN0OiBBcnJheTxhbnk+KSB7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykge1xuICAgIGlmIChsaXN0W2ldLnZhbHVlID09PSB1bmRlZmluZWQgfHwgbGlzdFtpXS52YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgbGlzdC5zcGxpY2UoaSwgMSk7XG4gICAgICBpLS07XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZFZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgcmV0dXJuICh2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSAnJykgfHwgdmFsdWUgPT09IGZhbHNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNFeHRlcm5hbExpbmsodXJsKTogYm9vbGVhbiB7XG4gIHJldHVybiB1cmwgPyB1cmwuc3RhcnRzV2l0aCgnaHR0cCcpIDogZmFsc2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBvcGVuRXh0ZXJuYWxMaW5rKHVybCk6IHZvaWQge1xuICB3aW5kb3cub3Blbih1cmwsICdfYmxhbmsnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZvcm1hdHRlZExpbmsobGluazogc3RyaW5nKTogc3RyaW5nIHtcbiAgbGV0IGZvcm1hdHRlZExpbmsgPSAnJztcbiAgLy8gUmV0aXJhIHRvZG9zIG9zIHBvbnRvcyBubyBjb21lw6dvIGRhIFVSTC5cbiAgaWYgKGxpbmspIHtcbiAgICBmb3JtYXR0ZWRMaW5rID0gbGluay5yZXBsYWNlKC9eKFxcLikrL2csICcnKTtcbiAgfVxuICAvLyBWZXJpZmljYSBzZSBmb2kgdXRpbGl6YWRvIHVtYSByb3RhIHF1ZSBuw6NvIGNvbWVjZSBjb20gYmFycmEuXG4gIGlmICghZm9ybWF0dGVkTGluay5zdGFydHNXaXRoKCcvJykpIHtcbiAgICBmb3JtYXR0ZWRMaW5rID0gJy8nLmNvbmNhdChmb3JtYXR0ZWRMaW5rKTtcbiAgfVxuICByZXR1cm4gZm9ybWF0dGVkTGluaztcbn1cblxuLyoqXG4gKiBNw6l0b2RvIHJlc3BvbnPDoXZlbCBwb3Igb3JkZW5hciBkb2lzIHZhbG9yZXMuXG4gKlxuICogQHBhcmFtIGxlZnRTaWRlIFByaW1laXJvIHZhbG9yIGEgc2VyIGNvbXBhcmFkby5cbiAqIEBwYXJhbSByaWdodFNpZGUgU2VndW5kbyB2YWxvciBhIHNlciBjb21wYXJhZG8uXG4gKiBAcGFyYW0gYXNjZW5kaW5nIERldGVybWluYSBzZSBzZXLDoSBlbSBvcmRlbSBhc2NlbmRlbnRlIG91IGRlc2NlbmRlbnRlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc29ydFZhbHVlcyhsZWZ0U2lkZTogc3RyaW5nLCByaWdodFNpZGU6IHN0cmluZywgYXNjZW5kaW5nOiBib29sZWFuID0gdHJ1ZSk6IG51bWJlciB7XG4gIGlmIChhc2NlbmRpbmcpIHtcbiAgICBpZiAobGVmdFNpZGUgPCByaWdodFNpZGUpIHtcbiAgICAgIHJldHVybiAtMTtcbiAgICB9IGVsc2UgaWYgKGxlZnRTaWRlID4gcmlnaHRTaWRlKSB7XG4gICAgICByZXR1cm4gMTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoYXNjZW5kaW5nID09PSBmYWxzZSkge1xuICAgIGlmIChsZWZ0U2lkZSA8IHJpZ2h0U2lkZSkge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfSBlbHNlIGlmIChsZWZ0U2lkZSA+IHJpZ2h0U2lkZSkge1xuICAgICAgcmV0dXJuIC0xO1xuICAgIH1cbiAgfVxuICByZXR1cm4gMDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlRGF0ZVJhbmdlKGRhdGU6IERhdGUsIGRhdGVTdGFydDogRGF0ZSwgZGF0ZUVuZDogRGF0ZSkge1xuICBpZiAoZGF0ZVN0YXJ0ICYmIGRhdGVFbmQpIHtcbiAgICByZXR1cm4gZGF0ZSA+PSBkYXRlU3RhcnQgJiYgZGF0ZSA8PSBkYXRlRW5kO1xuICB9IGVsc2UgaWYgKGRhdGVTdGFydCAmJiAhZGF0ZUVuZCkge1xuICAgIHJldHVybiBkYXRlID49IGRhdGVTdGFydDtcbiAgfSBlbHNlIGlmICghZGF0ZVN0YXJ0ICYmIGRhdGVFbmQpIHtcbiAgICByZXR1cm4gZGF0ZSA8PSBkYXRlRW5kO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjYXBpdGFsaXplRmlyc3RMZXR0ZXIodGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGAke3RleHQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCl9JHt0ZXh0LnNsaWNlKDEpfWA7XG59XG5cbi8qKlxuICogTWFwZWlhIHVtIG5vdm8gYXJyYXkgYXBlbmFzIGNvbSBhcyBwcm9wcmllZGFkZXMgZGVmaW5pZGFzIHBlbG8gZGVzZW52b2x2ZWRvciBiYXNlYWRvIGVtIHVtIGFycmF5IGRlXG4gKiBvcmlnZW0uXG4gKlxuICogRXhlbXBsbzpcbiAqXG4gKiBgYGBcbiAqIGNvbnN0IHBlb3BsZSA9IFtcbiAqICB7IGlkOiAxLCBuYW1lOiAnRnVsYW5vJywgYmlydGhkYXRlOiAnMTk4MC0xMS0wMScsIGdlbnJlOiAnTWFsZScsIGNpdHk6ICdTw6NvIFBhdWxvJywgZGVwZW5kZW50czogMiB9LFxuICogIHsgaWQ6IDIsIG5hbWU6ICdCZWx0cmFubycsIGJpcnRoZGF0ZTogJzE5OTctMDEtMjEnLCBnZW5yZTogJ0ZlbWFsZScsIGNpdHk6ICdKb2ludmlsbGUnLCBkZXBlbmRlbnRzOiAwIH0sXG4gKiAgeyBpZDogMywgbmFtZTogJ1NpY2xhbm8nLCBiaXJ0aGRhdGU6ICcxOTk1LTA3LTE1JywgZ2VucmU6ICdNYWxlJywgY2l0eTogJ0pvaW52aWxsZScsIGRlcGVuZGVudHM6IDAgfVxuICogXTtcbiAqXG4gKiBjb25zdCBwcm9wZXJ0aWVzID0gWydpZCcsICduYW1lJ107XG4gKlxuICogY29uc3QgaWRBbmROYW1lID0gbWFwQXJyYXlCeVByb3BlcnRpZXMocGVvcGxlLCBwcm9wZXJ0aWVzKTtcbiAqXG4gKiBjb25zb2xlLmxvZyhpZEFuZE5hbWUpOyAvLyBbeyBpZDogMSwgbmFtZTogJ0Z1bGFubycgfSwgeyBpZDogMiwgbmFtZTogJ0JlbHRyYW5vJyB9LCB7IGlkOiAzLCBuYW1lOiAnU2ljbGFubycgfV1cbiAqIGBgYFxuICpcbiAqIFVtIG91dHJvIHVzbyBwYXJhIG8gbcOpdG9kbyDDqSBcInBhcmVhclwiIHRvZG9zIG9zIG9iamV0b3MgZG8gYXJyYXkgY29tIGFzIG1lc21hcyBwcm9wcmllZGFkZXMuXG4gKlxuICogYGBgXG4gKiBjb25zdCBjdXN0b21lcnMgPSBbXG4gKiAgeyBpZDogMSwgbmFtZTogJ0Z1bGFubycsIGNpdHk6ICdTw6NvIFBhdWxvJywgZGVwZW5kZW50czogMiB9LCAvLyBzZW0gZ2VucmVcbiAqICB7IGlkOiAyLCBuYW1lOiAnQmVsdHJhbm8nLCBnZW5yZTogJ0ZlbWFsZScsIGNpdHk6ICdKb2ludmlsbGUnIH0sIC8vIHNlbSBkZXBlbmRlbnRzXG4gKiAgeyBpZDogMywgbmFtZTogJ1NpY2xhbm8nLCBnZW5yZTogJ01hbGUnLCBjaXR5OiAnSm9pbnZpbGxlJywgZGVwZW5kZW50czogMCB9XG4gKiBdO1xuICogY29uc3QgcHJvcGVydGllcyA9IFsnaWQnLCAnbmFtZScsICdjaXR5JywgJ2dlbnJlJywgJ2RlcGVuZGVudHMnXTtcbiAqXG4gKiBjb25zdCBwYXR0ZXJuID0gbWFwQXJyYXlCeVByb3BlcnRpZXMoY3VzdG9tZXJzLCBwcm9wZXJ0aWVzKTtcbiAqIGNvbnNvbGUubG9nKHBhdHRlcm4pO1xuICpcbiAqIC8vIFtcbiAqIC8vICAgeyBpZDogMSwgbmFtZTogJ0Z1bGFubycsIGNpdHk6ICdTw6NvIFBhdWxvJywgZ2VucmU6IHVuZGVmaW5lZCwgZGVwZW5kZW50czogMiB9LFxuICogLy8gICB7IGlkOiAyLCBuYW1lOiAnQmVsdHJhbm8nLCBjaXR5OiAnSm9pbnZpbGxlJywgZ2VucmU6ICdGZW1hbGUnLCBkZXBlbmRlbnRzOiB1bmRlZmluZWQgfSxcbiAqIC8vICAgeyBpZDogMywgbmFtZTogJ1NpY2xhbm8nLCBjaXR5OiAnSm9pbnZpbGxlJywgZ2VucmU6ICdNYWxlJywgZGVwZW5kZW50czogMCB9XG4gKiAvLyBdXG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gaXRlbXMge0FycmF5PGFueT59IEFycmF5IGRlIGl0ZW1zIG9yaWdpbmFsLlxuICogQHBhcmFtIHByb3BlcnRpZXMge0FycmF5PHN0cmluZz59IEFycmF5IGRlIHN0cmluZyBjb20gYSBsaXN0YSBkZSBwcm9wcmllZGFkZXMgcXVlIGRldmVtIHNlciByZXRvcm5hZGFzLlxuICpcbiAqIEByZXR1cm5zIEFycmF5PGFueT5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1hcEFycmF5QnlQcm9wZXJ0aWVzKGl0ZW1zOiBBcnJheTxhbnk+ID0gW10sIHByb3BlcnRpZXM6IEFycmF5PHN0cmluZz4gPSBbXSk6IEFycmF5PGFueT4ge1xuICByZXR1cm4gaXRlbXMubWFwKGl0ZW0gPT4gbWFwT2JqZWN0QnlQcm9wZXJ0aWVzKGl0ZW0sIHByb3BlcnRpZXMpKTtcbn1cblxuLyoqXG4gKiBNYXBlaWEgdW0gbm92byBvYmpldG8gYXBlbmFzIGNvbSBhcyBwcm9wcmllZGFkZXMgZGVmaW5pZGFzIHBlbG8gZGVzZW52b2x2ZWRvci5cbiAqXG4gKiBFeGVtcGxvOlxuICpcbiAqIGBgYFxuICogY29uc3QgcGVyc29uID0geyBpZDogMSwgbmFtZTogJ0Z1bGFubycsIGJpcnRoZGF0ZTogJzE5ODAtMTEtMDEnLCBnZW5yZTogJ01hbGUnLCBjaXR5OiAnU8OjbyBQYXVsbycsIGRlcGVuZGVudHM6IDIgfTtcbiAqXG4gKiBjb25zdCBwcm9wZXJ0aWVzID0gWydpZCcsICduYW1lJ107XG4gKlxuICogY29uc3QgaWRBbmROYW1lID0gbWFwT2JqZWN0QnlQcm9wZXJ0aWVzKHBlcnNvbiwgcHJvcGVydGllcyk7XG4gKlxuICogY29uc29sZS5sb2coaWRBbmROYW1lKTsgLy8geyBpZDogMSwgbmFtZTogJ0Z1bGFubycgfVxuICogYGBgXG4gKlxuICogQHBhcmFtIG9iamVjdCB7QXJyYXk8YW55Pn0gQXJyYXkgZGUgaXRlbXMgb3JpZ2luYWwuXG4gKiBAcGFyYW0gcHJvcGVydGllcyB7QXJyYXk8c3RyaW5nPn0gQXJyYXkgZGUgc3RyaW5nIGNvbSBhIGxpc3RhIGRlIHByb3ByaWVkYWRlcyBxdWUgZGV2ZW0gc2VyIHJldG9ybmFkYXMuXG4gKlxuICogQHJldHVybnMgQXJyYXk8YW55PlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWFwT2JqZWN0QnlQcm9wZXJ0aWVzKG9iamVjdDogYW55ID0ge30sIHByb3BlcnRpZXM6IEFycmF5PHN0cmluZz4gPSBbXSkge1xuICBjb25zdCBnZXRTZWxlY3RlZFByb3BlcnRpZXMgPSAoc2VsZWN0ZWRQcm9wZXJ0aWVzLCBwcm9wZXJ0eSkgPT4gKHtcbiAgICAuLi5zZWxlY3RlZFByb3BlcnRpZXMsXG4gICAgW3Byb3BlcnR5XTogb2JqZWN0W3Byb3BlcnR5XVxuICB9KTtcblxuICByZXR1cm4gcHJvcGVydGllcy5yZWR1Y2UoZ2V0U2VsZWN0ZWRQcm9wZXJ0aWVzLCB7fSk7XG59XG5cbi8qKlxuICogUmV0b3JuYSBvcyB2YWxvcmVzIGRlIHVtIG9iamV0byBkZW50cm8gZGUgdW0gYXJyYXkuXG4gKlxuICogPiBTaW11bGEgbyBPYmplY3QudmFsdWVzKG9iaiksIG8gbWVzbW8gZGV2ZSBzZXIgcmVtb3ZpZG8gYXNzaW0gcXVlIGEgdmVyc8OjbyB0eXBlc2NyaXQgZm9yIGF0dWFsaXphZGEuXG4gKlxuICogQHBhcmFtIG9iamVjdCBPYmpldG8gZGUgb25kZSBzZXLDoSBwZWdvIG9zIHZhbG9yZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWx1ZXNGcm9tT2JqZWN0KG9iamVjdDogYW55ID0ge30pOiBBcnJheTxhbnk+IHtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKG9iamVjdCkubWFwKHByb3BlcnR5ID0+IG9iamVjdFtwcm9wZXJ0eV0pO1xufVxuXG4vKipcbiAqIGFkaWNpb25hIDAgbm8gdGVtcG8gaW5mb3JtYWRvLCBjYXNvIG1lbm9yIHEgMTBcbiAqXG4gKiBAcGFyYW0gdGltZVxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRkWmVybyh0aW1lOiBudW1iZXIpIHtcbiAgaWYgKCF0aW1lKSB7XG4gICAgcmV0dXJuICcwMCc7XG4gIH1cblxuICBpZiAodGltZSA8IDEwKSB7XG4gICAgcmV0dXJuIGAwJHt0aW1lfWA7XG4gIH1cblxuICByZXR1cm4gdGltZTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgZG8gb2JqZXRvIGFzIHByb3ByaWVkYWRlcyBlc3BlY2lmaWNhZGFzLlxuICpcbiAqIEV4ZW1wbG86XG4gKlxuICogYGBgXG4gKiBrZXk6IFsnaWQnLCAnY3BmJ11cbiAqIG5ld0l0ZW1WYWx1ZTogeyBpZDogJzEyMycsIGNwZjogJzQ1NicsIG5hbWU6ICdUZXN0JyB9XG4gKiBSZXN1bHRhZG86IHsgbmFtZTogJ1Rlc3QnIH1cbiAqIGBgYFxuICpcbiAqIEBwYXJhbSBrZXlzIGxpc3RhIGRlIHByb3ByaWVkYWRlcyBwYXJhIHNlciByZW1vdmlkYSBkbyBvYmpldG8uXG4gKiBAcGFyYW0gbmV3SXRlbVZhbHVlIG9iamV0byBxdWUgc2UgZGVzZWphIHJlbW92ZXIgYXMgcHJvcHJpZWRhZGVzLlxuICogQHJldHVybnMgb2JqZXRvIHNlbSBhcyBwcm9wcmllZGFkZXMgZXNwZWNpZmljYWRhcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUtleXNQcm9wZXJ0aWVzKGtleXM6IEFycmF5PGFueT4sIG5ld0l0ZW1WYWx1ZTogYW55KSB7XG4gIGtleXMuZm9yRWFjaChrZXkgPT4gZGVsZXRlIG5ld0l0ZW1WYWx1ZVtrZXldKTtcbiAgcmV0dXJuIG5ld0l0ZW1WYWx1ZTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgb2JqZXRvcyBkdXBsaWNhZG9zLlxuICpcbiAqIEV4ZW1wbG86XG4gKlxuICogYGBgXG4gKiBpdGVtOiBbe2NvdW50cnk6ICdqYXBhbyd9LCB7Y291bnRyeTogJ2JyYXNpbCd9ICwge2NvdW50cnk6ICdjaGluYSd9XVxuICogaXRlbTI6IFt7Y291bnRyeTogJ2NoaWxlJ30sIHtjb3VudHJ5OiAnYnJhc2lsJ30sIHtjb3VudHJ5OiAnY2FuYWRhJ31dXG4gKiBrZXk6ICdjb3VudHJ5J1xuICogUmVzdWx0YWRvOlxuICogICAgaXRlbTIgPSBbe2NvdW50cnk6ICdjaGlsZSd9LCB7Y291bnRyeTogJ2NhbmFkYSd9IF1cbiAqIGBgYFxuICpcbiAqIEBwYXJhbSBpdGVtIGxpc3RhIGNvbXBhcmFkYS5cbiAqIEBwYXJhbSBpdGVtMiBsaXN0YSBwYXJhIHJlbW92ZXIgaXRlbXMgZHVwbGljYWRvcy5cbiAqIEBwYXJhbSBrZXkgcHJvcHJpZWRhZGUgcXVlIHNlcsOhIHV0aWxpemFkYSBwYXJhIHJlYWxpemFyIGEgY29tcGFyYcOnw6NvLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlRHVwbGljYXRlSXRlbXMoaXRlbSwgaXRlbTIsIGtleSkge1xuICBjb25zdCB1bmlxdWVWYWx1ZXMgPSBuZXcgU2V0KGl0ZW0ubWFwKGVudHJ5ID0+IGVudHJ5W2tleV0pKTtcbiAgaXRlbTIuc3BsaWNlKDAsIGl0ZW0yLmxlbmd0aCwgLi4uaXRlbTIuZmlsdGVyKGVudHJ5ID0+ICF1bmlxdWVWYWx1ZXMuaGFzKGVudHJ5W2tleV0pKSk7XG59XG5cbi8qKlxuICogUmVjZWJlIGRvaXMgYXJyYXlzIGRlIG9iamV0b3MgZSByZW1vdmUgb3MgaXRlbnMgZHVwbGljYWRvcyB1dGlsaXphbmRvIHVtYSBwcm9wcmllZGFkZShrZXkpIHBhcmEgY29tcGFyYcOnw6NvLlxuICpcbiAqIEV4ZW1wbG86XG4gKlxuICogYGBgXG4gKiBpdGVtOiBbe2NvdW50cnk6ICdqYXBhbyd9LCB7Y291bnRyeTogJ2JyYXNpbCd9ICwge2NvdW50cnk6ICdjaGluYSd9XVxuICogaXRlbTI6IFt7Y291bnRyeTogJ2NoaWxlJ30sIHtjb3VudHJ5OiAnYnJhc2lsJ30sIHtjb3VudHJ5OiAnY2FuYWRhJ31dXG4gKiBrZXk6ICdbY291bnRyeV0nXG4gKiBSZXN1bHRhZG8gZG8gcmV0b3JubzpcbiAqICAgIFt7Y291bnRyeTogJ2NoaWxlJ30sIHtjb3VudHJ5OiAnY2FuYWRhJ30sIHtjb3VudHJ5OiAnamFwYW8nfSwge2NvdW50cnk6ICdjaGluYSd9XVxuICogYGBgXG4gKlxuICpcbiAqIEBwYXJhbSBpdGVtIDogcHJpbWVpcmEgbGlzdGEgZGUgaXRlbnMuXG4gKiBAcGFyYW0gaXRlbTIgOiBzZWd1bmRhIGxpc3RhIGRlIGl0ZW5zLlxuICogQHBhcmFtIGtleSA6IHVtIGFycmF5IGRlIHByb3ByaWVkYWRlcyBxdWUgdsOjbyBzZXIgdXRpbGl6YWRhcyBwYXJhIGEgY29tcGFyYcOnw6NvLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlRHVwbGljYXRlSXRlbXNXaXRoQXJyYXlLZXkoaXRlbSwgaXRlbTIsIGtleXMpIHtcbiAgY29uc3QgbmV3S2V5ID0ga2V5cy5sZW5ndGggPyBrZXlzIDogWydpZCddO1xuXG4gIGNvbnN0IGNvbWJpbmVkQXJyYXkgPSBpdGVtLmNvbmNhdChpdGVtMik7XG4gIHJldHVybiBjb21iaW5lZEFycmF5LmZpbHRlcihcbiAgICAob2JqLCBpbmRleCkgPT4gaW5kZXggPT09IGNvbWJpbmVkQXJyYXkuZmluZEluZGV4KGlubmVyT2JqID0+IG5ld0tleS5ldmVyeShrZXkgPT4gaW5uZXJPYmpba2V5XSA9PT0gb2JqW2tleV0pKVxuICApO1xufVxuXG4vKipcbiAqIFJlY2ViZSB1bSBhcnJheSBkZSBvYmpldG9zIHBhcmEgb3JkZW5hw6fDo28gdXRpbGl6YW5kbyBjaGF2ZSBjb21vIGNvbXBhcmF0aXZvIGVcbiAqIHNlIGEgb3JkZXIgw6kgY3Jlc2NlbnRlKHRydWUpIG91IGRlc2NyZXNjZW50ZShmYWxzZSlcbiAqXG4gKiBFeGVtcGxvOlxuICpcbiAqIGBgYFxuICogaXRlbXM6IFt7Y291bnRyeTogJ2phcGFvJ30sIHtjb3VudHJ5OiAnYnJhc2lsJ30gLCB7Y291bnRyeTogJ2NoaW5hJ31dXG4gKiBrZXk6ICdjb3VudHJ5J1xuICogaXNBc2NlbmRpbmdPcmRlcjogdHJ1ZVxuICogUmVzdWx0YWRvIGRvIHJldG9ybm86XG4gKiAgICBbe2NvdW50cnk6ICdicmFzaWwnfSwge2NvdW50cnk6ICdjaGluYSd9ICwge2NvdW50cnk6ICdqYXBhbyd9XVxuICogYGBgXG4gKlxuICpcbiAqIEBwYXJhbSBpdGVtcyA6IGxpc3RhIGRlIGl0ZW5zLlxuICogQHBhcmFtIGtleSA6IHByb3ByaWVkYWRlIHV0aWxpemFkYSBuYSBjb21wYXJhw6fDo28uXG4gKiBAcGFyYW0gaXNBc2NlbmRpbmdPcmRlciA6IG9yZGVuYcOnw6NvIGNyZXNjZW50ZSBvdSBkZXNjcmVzY2VudGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzb3J0QXJyYXlPZk9iamVjdHMoaXRlbXMsIGtleSwgaXNBc2NlbmRpbmdPcmRlcikge1xuICByZXR1cm4gaXRlbXMuc29ydCgoYSwgYikgPT4ge1xuICAgIGNvbnN0IHZhbHVlQSA9IGFba2V5XTtcbiAgICBjb25zdCB2YWx1ZUIgPSBiW2tleV07XG5cbiAgICBpZiAodHlwZW9mIHZhbHVlQSA9PT0gJ251bWJlcicgJiYgdHlwZW9mIHZhbHVlQiA9PT0gJ251bWJlcicpIHtcbiAgICAgIHJldHVybiBpc0FzY2VuZGluZ09yZGVyID8gdmFsdWVBIC0gdmFsdWVCIDogdmFsdWVCIC0gdmFsdWVBO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBjb21wYXJlUmVzdWx0ID0gdmFsdWVBLnRvU3RyaW5nKCkubG9jYWxlQ29tcGFyZSh2YWx1ZUIudG9TdHJpbmcoKSk7XG4gICAgICByZXR1cm4gaXNBc2NlbmRpbmdPcmRlciA/IGNvbXBhcmVSZXN1bHQgOiAtY29tcGFyZVJlc3VsdDtcbiAgICB9XG4gIH0pO1xufVxuIl19
|
|
428
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RlbXBsYXRlcy9zcmMvbGliL3V0aWxzL3V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVsRTs7R0FFRztBQUNILE1BQU0sVUFBVSxrQkFBa0I7SUFDaEMsK0NBQStDO0lBQy9DLE9BQU8sU0FBUyxDQUFDLFFBQVEsSUFBSSxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDekQsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLHVCQUF1QjtJQUNyQyxNQUFNLFFBQVEsR0FBRyxDQUFDLGtCQUFrQixFQUFFLElBQUksZUFBZSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUV6RixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ2xDLE9BQU8sZUFBZSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBRUQsTUFBTSxVQUFVLGdCQUFnQixDQUFDLEdBQVE7SUFDdkMsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUM1QixHQUFHLEdBQUcsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQy9CLE9BQU8sR0FBRyxLQUFLLE1BQU0sSUFBSSxHQUFHLEtBQUssSUFBSSxJQUFJLEdBQUcsS0FBSyxFQUFFLENBQUM7SUFDdEQsQ0FBQztJQUVELElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDNUIsT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDO0lBQ25CLENBQUM7SUFFRCxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUM7QUFDZixDQUFD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Q0QsSUFBSSxPQUFPLEdBQUcsT0FBTyxFQUFFLENBQUM7WUFDdEIsT0FBTyxDQUFDLENBQUM7UUFDWCxDQUFDO1FBQ0QsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsdUJBQXVCLENBQUMsSUFBZ0I7SUFDdEQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNyQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNaLFNBQVM7UUFDWCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDM0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDbEIsQ0FBQyxFQUFFLENBQUM7UUFDTixDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsNkJBQTZCLENBQUMsSUFBZ0I7SUFDNUQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNyQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDMUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDbEIsQ0FBQyxFQUFFLENBQUM7UUFDTixDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsVUFBVSxDQUFDLEtBQVU7SUFDbkMsT0FBTyxDQUFDLEtBQUssS0FBSyxJ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LENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ3pCLE1BQU0sTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QixNQUFNLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFdEIsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDN0QsT0FBTyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUM5RCxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDekUsT0FBTyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUMzRCxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgcG9Mb2NhbGVzLCBwb0xvY2FsZURlZmF1bHQgfSBmcm9tICdAcG8tdWkvbmctY29tcG9uZW50cyc7XG5cbi8qKlxuICogUmV0b3JuYSBvIGlkaW9tYSBhdHVhbCBkbyBuYXZlZ2Fkb3JcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEJyb3dzZXJMYW5ndWFnZSgpOiBzdHJpbmcge1xuICAvLyBuYXZpZ2F0b3IudXNlckxhbmd1YWdlIGlzIHRoZSB2YWx1ZSBmb3IgSUUxMFxuICByZXR1cm4gbmF2aWdhdG9yLmxhbmd1YWdlIHx8IG5hdmlnYXRvclsndXNlckxhbmd1YWdlJ107XG59XG5cbi8qKlxuICogUmV0b3JuYSBvIGlkaW9tYSBkbyBuYXZlZ2Fkb3IsIGNvbSBzb21lbnRlIGFzIGR1YXMgcHJpbWVpcmFzIGxldHJhcy4gUG9yIGV4ZW1wbG86IFwicHRcIiBvdSBcImVzXCIuXG4gKlxuICogQ2FzbyBvIHZhbG9yIHJldG9ybmFkbyBwZWxvIG5hdmVnYWRvciBuw6NvIGVzdGl2ZXIgZGVudHJvIGRvcyBpZGlvbWFzIHN1cG9ydGFkb3MgcGVsbyBQTyxcbiAqIHNlcsOhIHJldG9ybmFkbyBhIGxpbmd1YWdlbSBwYWRyw6NvIChwb0xvY2FsZURlZmF1bHQpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2hvcnRCcm93c2VyTGFuZ3VhZ2UoKTogc3RyaW5nIHtcbiAgY29uc3QgbGFuZ3VhZ2UgPSAoZ2V0QnJvd3Nlckxhbmd1YWdlKCkgfHwgcG9Mb2NhbGVEZWZhdWx0KS50b0xvd2VyQ2FzZSgpLnN1YnN0cmluZygwLCAyKTtcblxuICBpZiAoIXBvTG9jYWxlcy5pbmNsdWRlcyhsYW5ndWFnZSkpIHtcbiAgICByZXR1cm4gcG9Mb2NhbGVEZWZhdWx0O1xuICB9XG5cbiAgcmV0dXJuIGxhbmd1YWdlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udmVydFRvQm9vbGVhbih2YWw6IGFueSk6IGJvb2xlYW4ge1xuICBpZiAodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycpIHtcbiAgICB2YWwgPSB2YWwudG9Mb3dlckNhc2UoKS50cmltKCk7XG4gICAgcmV0dXJuIHZhbCA9PT0gJ3RydWUnIHx8IHZhbCA9PT0gJ29uJyB8fCB2YWwgPT09ICcnO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB2YWwgPT09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIHZhbCA9PT0gMTtcbiAgfVxuXG4gIHJldHVybiAhIXZhbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRUb0ludCh2YWx1ZTogYW55LCB2YWx1ZURlZmF1bHQ/OiBhbnkpOiBudW1iZXIge1xuICBjb25zdCB2YWxpZE51bWJlciA9IHBhcnNlSW50KHZhbHVlLCAxMCk7XG4gIGNvbnN0IHZhbGlkRGVmYXVsdFZhbHVlID0gcGFyc2VJbnQodmFsdWVEZWZhdWx0LCAxMCk7XG4gIGNvbnN0IGRlZmF1bHRWYWx1ZSA9IHZhbGlkRGVmYXVsdFZhbHVlIHx8IHZhbGlkRGVmYXVsdFZhbHVlID09PSAwID8gdmFsaWREZWZhdWx0VmFsdWUgOiB1bmRlZmluZWQ7XG5cbiAgcmV0dXJuIHZhbGlkTnVtYmVyIHx8IHZhbGlkTnVtYmVyID09PSAwID8gdmFsaWROdW1iZXIgOiBkZWZhdWx0VmFsdWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1R5cGVvZihvYmplY3Q6IGFueSwgdHlwZTogYW55KSB7XG4gIHJldHVybiB0eXBlb2Ygb2JqZWN0ID09PSB0eXBlO1xufVxuXG4vKipcbiAqXG4gKiBAcGFyYW0gZm4gRnVuw6fDo28gcXVlIHNlcsOhIGV4ZWN1dGFkYSBkZW50cm8gZG8gY29udGV4dG8uIFBvZGVuZG8gc2VyIG8gbm9tZSBkYSBmdW7Dp8Ojb1xuICogb3UgYSByZWZlcsOqbmNpYSBkYSBtZXNtYS5cbiAqXG4gKiBAcGFyYW0gY29udGV4dCBDb250ZXh0byBkbyBxdWFsIGEgZnVuw6fDo28gc2Vyw6EgZXhlY3V0YWRhLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2FsbEZ1bmN0aW9uKGZuOiBhbnksIGNvbnRleHQ6IGFueSwgcGFyYW0/KTogdm9pZCB7XG4gIGlmIChpc1R5cGVvZihmbiwgJ2Z1bmN0aW9uJykpIHtcbiAgICBmbi5jYWxsKGNvbnRleHQsIHBhcmFtKTtcbiAgfSBlbHNlIHtcbiAgICBjb250ZXh0W2ZuXShwYXJhbSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRJc29Ub0RhdGUodmFsdWU6IHN0cmluZywgc3RhcnQ6IGJvb2xlYW4sIGVuZDogYm9vbGVhbikge1xuICBpZiAodmFsdWUpIHtcbiAgICBjb25zdCBkYXkgPSBwYXJzZUludCh2YWx1ZS5zdWJzdHJpbmcoOCwgMTApLCAxMCk7XG4gICAgY29uc3QgbW9udGggPSBwYXJzZUludCh2YWx1ZS5zdWJzdHJpbmcoNSwgNyksIDEwKTtcbiAgICBjb25zdCB5ZWFyID0gcGFyc2VJbnQodmFsdWUuc3Vic3RyaW5nKDAsIDQpLCAxMCk7XG4gICAgaWYgKHN0YXJ0KSB7XG4gICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoeWVhciwgbW9udGggLSAxLCBkYXksIDAsIDAsIDApO1xuXG4gICAgICBzZXRZZWFyRnJvbTBUbzEwMChkYXRlLCB5ZWFyKTtcblxuICAgICAgcmV0dXJuIGRhdGU7XG4gICAgfSBlbHNlIGlmIChlbmQpIHtcbiAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh5ZWFyLCBtb250aCAtIDEsIGRheSwgMjMsIDU5LCA1OSk7XG5cbiAgICAgIHNldFllYXJGcm9tMFRvMTAwKGRhdGUsIHllYXIpO1xuXG4gICAgICByZXR1cm4gZGF0ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgbWlsbGlzZWNvbmRzID0gRGF0ZS5wYXJzZSh2YWx1ZSk7XG4gICAgICBjb25zdCB0aW1lem9uZSA9IG5ldyBEYXRlKCkuZ2V0VGltZXpvbmVPZmZzZXQoKSAqIDYwMDAwO1xuICAgICAgcmV0dXJuIG5ldyBEYXRlKG1pbGxpc2Vjb25kcyArIHRpbWV6b25lKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnREYXRlVG9JU09FeHRlbmRlZChkYXRlOiBEYXRlLCB0aW1lPzogc3RyaW5nKSB7XG4gIGlmIChkYXRlKSB7XG4gICAgY29uc3QgZ2V0TW9udGggPSBkYXRlLmdldE1vbnRoKCkgKyAxO1xuICAgIGNvbnN0IGRheSA9IGRhdGUuZ2V0RGF0ZSgpIDwgMTAgPyAnMCcgKyBkYXRlLmdldERhdGUoKSA6IGRhdGUuZ2V0RGF0ZSgpO1xuICAgIGNvbnN0IG1vbnRoID0gZ2V0TW9udGggPCAxMCA/ICcwJyArIGdldE1vbnRoIDogZ2V0TW9udGg7XG4gICAgY29uc3QgeWVhciA9IGZvcm1hdFllYXIoZGF0ZS5nZXRGdWxsWWVhcigpKTtcblxuICAgIGNvbnN0IGRhdGVTdHJpbmcgPSBkYXRlLnRvU3RyaW5nKCk7XG5cbiAgICBpZiAodGltZSkge1xuICAgICAgcmV0dXJuIHllYXIgKyAnLScgKyBtb250aCArICctJyArIGRheSArIHRpbWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIHllYXIgK1xuICAgICAgICAnLScgK1xuICAgICAgICBtb250aCArXG4gICAgICAgICctJyArXG4gICAgICAgIGRheSArXG4gICAgICAgICdUJyArXG4gICAgICAgIGRhdGVTdHJpbmcuc3Vic3RyaW5nKDE2LCAyNCkgK1xuICAgICAgICBkYXRlU3RyaW5nLnN1YnN0cmluZygyOCwgMzEpICtcbiAgICAgICAgJzonICtcbiAgICAgICAgZGF0ZVN0cmluZy5zdWJzdHJpbmcoMzEsIDMzKVxuICAgICAgKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cblxuLyoqXG4gKiBUcmFuc2Zvcm1hIG8gYW5vIGVtIHVtYSBzdHJpbmcgbm8gZm9ybWF0byB5eXl5IGUgY2FzbyBvIGFubyBzZWphIG1lbm9yIHF1ZSAxMDAwIHByZWVuY2hlIGNvbSB6ZXJvcyBhIGVzcXVlcmRhLlxuICpcbiAqIEBwYXJhbSB5ZWFyIEFub1xuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0WWVhcih5ZWFyOiBudW1iZXIpIHtcbiAgaWYgKHllYXIgPj0gMTAwMCkge1xuICAgIHJldHVybiB5ZWFyLnRvU3RyaW5nKCk7XG4gIH1cblxuICBpZiAoeWVhciA+IDk5ICYmIHllYXIgPCAxMDAwKSB7XG4gICAgcmV0dXJuIGAwJHt5ZWFyfWA7XG4gIH1cblxuICBpZiAoeWVhciA+IDkgJiYgeWVhciA8IDEwMCkge1xuICAgIHJldHVybiBgMDAke3llYXJ9YDtcbiAgfVxuXG4gIGlmICh5ZWFyID49IDAgJiYgeWVhciA8IDEwKSB7XG4gICAgcmV0dXJuIGAwMDAke3llYXJ9YDtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNFcXVhbHModmFsdWUsIGNvbXBhcmVkVmFsdWUpIHtcbiAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHZhbHVlKSA9PT0gSlNPTi5zdHJpbmdpZnkoY29tcGFyZWRWYWx1ZSk7XG59XG5cbi8qKlxuICogQ2FzbyBvIGFubyBvcmlnaW5hbCBkYSBkYXRhIHNlamEgZW50cmUgMCBlIDEwMCBhdHJpYnVpIGVzc2UgdmFsb3IgYW8gYW5vLCBwb2lzIG8gYG5ldyBEYXRlYCBkbyBqYXZhc2NyaXB0IHRyYW5zZm9ybWEgbyBhbm8gcGFyYSAxOTBYLlxuICpcbiAqIEBwYXJhbSBkYXRlIERhdGFcbiAqIEBwYXJhbSB5ZWFyIEFubyBvcmlnaW5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0WWVhckZyb20wVG8xMDAoZGF0ZTogRGF0ZSwgeWVhcjogbnVtYmVyKSB7XG4gIGlmICh5ZWFyID49IDAgJiYgeWVhciA8IDEwMCkge1xuICAgIGRhdGUuc2V0RnVsbFllYXIoeWVhcik7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNvcnRPcHRpb25zQnlQcm9wZXJ0eShvcHRpb25zOiBBcnJheTxhbnk+LCBwcm9wZXJ0eTogc3RyaW5nKSB7XG4gIG9wdGlvbnMuc29ydCgob3B0aW9uQSwgb3B0aW9uQikgPT4ge1xuICAgIG9wdGlvbkEgPSBvcHRpb25BW3Byb3BlcnR5XS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCk7XG4gICAgb3B0aW9uQiA9IG9wdGlvbkJbcHJvcGVydHldLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKTtcblxuICAgIGlmIChvcHRpb25BIDwgb3B0aW9uQikge1xuICAgICAgcmV0dXJuIC0xO1xuICAgIH1cbiAgICBpZiAob3B0aW9uQSA+IG9wdGlvbkIpIHtcbiAgICAgIHJldHVybiAxO1xuICAgIH1cbiAgICByZXR1cm4gMDtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVEdXBsaWNhdGVkT3B0aW9ucyhsaXN0OiBBcnJheTxhbnk+KSB7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykge1xuICAgIGlmIChpID09PSAwKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAobGlzdC5maW5kSW5kZXgob3AgPT4gb3AudmFsdWUgPT09IGxpc3RbaV0udmFsdWUpICE9PSBpKSB7XG4gICAgICBsaXN0LnNwbGljZShpLCAxKTtcbiAgICAgIGktLTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZVVuZGVmaW5lZEFuZE51bGxPcHRpb25zKGxpc3Q6IEFycmF5PGFueT4pIHtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGxpc3RbaV0udmFsdWUgPT09IHVuZGVmaW5lZCB8fCBsaXN0W2ldLnZhbHVlID09PSBudWxsKSB7XG4gICAgICBsaXN0LnNwbGljZShpLCAxKTtcbiAgICAgIGktLTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkVmFsdWUodmFsdWU6IGFueSkge1xuICByZXR1cm4gKHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09ICcnKSB8fCB2YWx1ZSA9PT0gZmFsc2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0V4dGVybmFsTGluayh1cmwpOiBib29sZWFuIHtcbiAgcmV0dXJuIHVybCA/IHVybC5zdGFydHNXaXRoKCdodHRwJykgOiBmYWxzZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG9wZW5FeHRlcm5hbExpbmsodXJsKTogdm9pZCB7XG4gIHdpbmRvdy5vcGVuKHVybCwgJ19ibGFuaycpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9ybWF0dGVkTGluayhsaW5rOiBzdHJpbmcpOiBzdHJpbmcge1xuICBsZXQgZm9ybWF0dGVkTGluayA9ICcnO1xuICAvLyBSZXRpcmEgdG9kb3Mgb3MgcG9udG9zIG5vIGNvbWXDp28gZGEgVVJMLlxuICBpZiAobGluaykge1xuICAgIGZvcm1hdHRlZExpbmsgPSBsaW5rLnJlcGxhY2UoL14oXFwuKSsvZywgJycpO1xuICB9XG4gIC8vIFZlcmlmaWNhIHNlIGZvaSB1dGlsaXphZG8gdW1hIHJvdGEgcXVlIG7Do28gY29tZWNlIGNvbSBiYXJyYS5cbiAgaWYgKCFmb3JtYXR0ZWRMaW5rLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgIGZvcm1hdHRlZExpbmsgPSAnLycuY29uY2F0KGZvcm1hdHRlZExpbmspO1xuICB9XG4gIHJldHVybiBmb3JtYXR0ZWRMaW5rO1xufVxuXG4vKipcbiAqIE3DqXRvZG8gcmVzcG9uc8OhdmVsIHBvciBvcmRlbmFyIGRvaXMgdmFsb3Jlcy5cbiAqXG4gKiBAcGFyYW0gbGVmdFNpZGUgUHJpbWVpcm8gdmFsb3IgYSBzZXIgY29tcGFyYWRvLlxuICogQHBhcmFtIHJpZ2h0U2lkZSBTZWd1bmRvIHZhbG9yIGEgc2VyIGNvbXBhcmFkby5cbiAqIEBwYXJhbSBhc2NlbmRpbmcgRGV0ZXJtaW5hIHNlIHNlcsOhIGVtIG9yZGVtIGFzY2VuZGVudGUgb3UgZGVzY2VuZGVudGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzb3J0VmFsdWVzKGxlZnRTaWRlOiBzdHJpbmcsIHJpZ2h0U2lkZTogc3RyaW5nLCBhc2NlbmRpbmc6IGJvb2xlYW4gPSB0cnVlKTogbnVtYmVyIHtcbiAgaWYgKGFzY2VuZGluZykge1xuICAgIGlmIChsZWZ0U2lkZSA8IHJpZ2h0U2lkZSkge1xuICAgICAgcmV0dXJuIC0xO1xuICAgIH0gZWxzZSBpZiAobGVmdFNpZGUgPiByaWdodFNpZGUpIHtcbiAgICAgIHJldHVybiAxO1xuICAgIH1cbiAgfSBlbHNlIGlmIChhc2NlbmRpbmcgPT09IGZhbHNlKSB7XG4gICAgaWYgKGxlZnRTaWRlIDwgcmlnaHRTaWRlKSB7XG4gICAgICByZXR1cm4gMTtcbiAgICB9IGVsc2UgaWYgKGxlZnRTaWRlID4gcmlnaHRTaWRlKSB7XG4gICAgICByZXR1cm4gLTE7XG4gICAgfVxuICB9XG4gIHJldHVybiAwO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVEYXRlUmFuZ2UoZGF0ZTogRGF0ZSwgZGF0ZVN0YXJ0OiBEYXRlLCBkYXRlRW5kOiBEYXRlKSB7XG4gIGlmIChkYXRlU3RhcnQgJiYgZGF0ZUVuZCkge1xuICAgIHJldHVybiBkYXRlID49IGRhdGVTdGFydCAmJiBkYXRlIDw9IGRhdGVFbmQ7XG4gIH0gZWxzZSBpZiAoZGF0ZVN0YXJ0ICYmICFkYXRlRW5kKSB7XG4gICAgcmV0dXJuIGRhdGUgPj0gZGF0ZVN0YXJ0O1xuICB9IGVsc2UgaWYgKCFkYXRlU3RhcnQgJiYgZGF0ZUVuZCkge1xuICAgIHJldHVybiBkYXRlIDw9IGRhdGVFbmQ7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNhcGl0YWxpemVGaXJzdExldHRlcih0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYCR7dGV4dC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKX0ke3RleHQuc2xpY2UoMSl9YDtcbn1cblxuLyoqXG4gKiBNYXBlaWEgdW0gbm92byBhcnJheSBhcGVuYXMgY29tIGFzIHByb3ByaWVkYWRlcyBkZWZpbmlkYXMgcGVsbyBkZXNlbnZvbHZlZG9yIGJhc2VhZG8gZW0gdW0gYXJyYXkgZGVcbiAqIG9yaWdlbS5cbiAqXG4gKiBFeGVtcGxvOlxuICpcbiAqIGBgYFxuICogY29uc3QgcGVvcGxlID0gW1xuICogIHsgaWQ6IDEsIG5hbWU6ICdGdWxhbm8nLCBiaXJ0aGRhdGU6ICcxOTgwLTExLTAxJywgZ2VucmU6ICdNYWxlJywgY2l0eTogJ1PDo28gUGF1bG8nLCBkZXBlbmRlbnRzOiAyIH0sXG4gKiAgeyBpZDogMiwgbmFtZTogJ0JlbHRyYW5vJywgYmlydGhkYXRlOiAnMTk5Ny0wMS0yMScsIGdlbnJlOiAnRmVtYWxlJywgY2l0eTogJ0pvaW52aWxsZScsIGRlcGVuZGVudHM6IDAgfSxcbiAqICB7IGlkOiAzLCBuYW1lOiAnU2ljbGFubycsIGJpcnRoZGF0ZTogJzE5OTUtMDctMTUnLCBnZW5yZTogJ01hbGUnLCBjaXR5OiAnSm9pbnZpbGxlJywgZGVwZW5kZW50czogMCB9XG4gKiBdO1xuICpcbiAqIGNvbnN0IHByb3BlcnRpZXMgPSBbJ2lkJywgJ25hbWUnXTtcbiAqXG4gKiBjb25zdCBpZEFuZE5hbWUgPSBtYXBBcnJheUJ5UHJvcGVydGllcyhwZW9wbGUsIHByb3BlcnRpZXMpO1xuICpcbiAqIGNvbnNvbGUubG9nKGlkQW5kTmFtZSk7IC8vIFt7IGlkOiAxLCBuYW1lOiAnRnVsYW5vJyB9LCB7IGlkOiAyLCBuYW1lOiAnQmVsdHJhbm8nIH0sIHsgaWQ6IDMsIG5hbWU6ICdTaWNsYW5vJyB9XVxuICogYGBgXG4gKlxuICogVW0gb3V0cm8gdXNvIHBhcmEgbyBtw6l0b2RvIMOpIFwicGFyZWFyXCIgdG9kb3Mgb3Mgb2JqZXRvcyBkbyBhcnJheSBjb20gYXMgbWVzbWFzIHByb3ByaWVkYWRlcy5cbiAqXG4gKiBgYGBcbiAqIGNvbnN0IGN1c3RvbWVycyA9IFtcbiAqICB7IGlkOiAxLCBuYW1lOiAnRnVsYW5vJywgY2l0eTogJ1PDo28gUGF1bG8nLCBkZXBlbmRlbnRzOiAyIH0sIC8vIHNlbSBnZW5yZVxuICogIHsgaWQ6IDIsIG5hbWU6ICdCZWx0cmFubycsIGdlbnJlOiAnRmVtYWxlJywgY2l0eTogJ0pvaW52aWxsZScgfSwgLy8gc2VtIGRlcGVuZGVudHNcbiAqICB7IGlkOiAzLCBuYW1lOiAnU2ljbGFubycsIGdlbnJlOiAnTWFsZScsIGNpdHk6ICdKb2ludmlsbGUnLCBkZXBlbmRlbnRzOiAwIH1cbiAqIF07XG4gKiBjb25zdCBwcm9wZXJ0aWVzID0gWydpZCcsICduYW1lJywgJ2NpdHknLCAnZ2VucmUnLCAnZGVwZW5kZW50cyddO1xuICpcbiAqIGNvbnN0IHBhdHRlcm4gPSBtYXBBcnJheUJ5UHJvcGVydGllcyhjdXN0b21lcnMsIHByb3BlcnRpZXMpO1xuICogY29uc29sZS5sb2cocGF0dGVybik7XG4gKlxuICogLy8gW1xuICogLy8gICB7IGlkOiAxLCBuYW1lOiAnRnVsYW5vJywgY2l0eTogJ1PDo28gUGF1bG8nLCBnZW5yZTogdW5kZWZpbmVkLCBkZXBlbmRlbnRzOiAyIH0sXG4gKiAvLyAgIHsgaWQ6IDIsIG5hbWU6ICdCZWx0cmFubycsIGNpdHk6ICdKb2ludmlsbGUnLCBnZW5yZTogJ0ZlbWFsZScsIGRlcGVuZGVudHM6IHVuZGVmaW5lZCB9LFxuICogLy8gICB7IGlkOiAzLCBuYW1lOiAnU2ljbGFubycsIGNpdHk6ICdKb2ludmlsbGUnLCBnZW5yZTogJ01hbGUnLCBkZXBlbmRlbnRzOiAwIH1cbiAqIC8vIF1cbiAqIGBgYFxuICpcbiAqIEBwYXJhbSBpdGVtcyB7QXJyYXk8YW55Pn0gQXJyYXkgZGUgaXRlbXMgb3JpZ2luYWwuXG4gKiBAcGFyYW0gcHJvcGVydGllcyB7QXJyYXk8c3RyaW5nPn0gQXJyYXkgZGUgc3RyaW5nIGNvbSBhIGxpc3RhIGRlIHByb3ByaWVkYWRlcyBxdWUgZGV2ZW0gc2VyIHJldG9ybmFkYXMuXG4gKlxuICogQHJldHVybnMgQXJyYXk8YW55PlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWFwQXJyYXlCeVByb3BlcnRpZXMoaXRlbXM6IEFycmF5PGFueT4gPSBbXSwgcHJvcGVydGllczogQXJyYXk8c3RyaW5nPiA9IFtdKTogQXJyYXk8YW55PiB7XG4gIHJldHVybiBpdGVtcy5tYXAoaXRlbSA9PiBtYXBPYmplY3RCeVByb3BlcnRpZXMoaXRlbSwgcHJvcGVydGllcykpO1xufVxuXG4vKipcbiAqIE1hcGVpYSB1bSBub3ZvIG9iamV0byBhcGVuYXMgY29tIGFzIHByb3ByaWVkYWRlcyBkZWZpbmlkYXMgcGVsbyBkZXNlbnZvbHZlZG9yLlxuICpcbiAqIEV4ZW1wbG86XG4gKlxuICogYGBgXG4gKiBjb25zdCBwZXJzb24gPSB7IGlkOiAxLCBuYW1lOiAnRnVsYW5vJywgYmlydGhkYXRlOiAnMTk4MC0xMS0wMScsIGdlbnJlOiAnTWFsZScsIGNpdHk6ICdTw6NvIFBhdWxvJywgZGVwZW5kZW50czogMiB9O1xuICpcbiAqIGNvbnN0IHByb3BlcnRpZXMgPSBbJ2lkJywgJ25hbWUnXTtcbiAqXG4gKiBjb25zdCBpZEFuZE5hbWUgPSBtYXBPYmplY3RCeVByb3BlcnRpZXMocGVyc29uLCBwcm9wZXJ0aWVzKTtcbiAqXG4gKiBjb25zb2xlLmxvZyhpZEFuZE5hbWUpOyAvLyB7IGlkOiAxLCBuYW1lOiAnRnVsYW5vJyB9XG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gb2JqZWN0IHtBcnJheTxhbnk+fSBBcnJheSBkZSBpdGVtcyBvcmlnaW5hbC5cbiAqIEBwYXJhbSBwcm9wZXJ0aWVzIHtBcnJheTxzdHJpbmc+fSBBcnJheSBkZSBzdHJpbmcgY29tIGEgbGlzdGEgZGUgcHJvcHJpZWRhZGVzIHF1ZSBkZXZlbSBzZXIgcmV0b3JuYWRhcy5cbiAqXG4gKiBAcmV0dXJucyBBcnJheTxhbnk+XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYXBPYmplY3RCeVByb3BlcnRpZXMob2JqZWN0OiBhbnkgPSB7fSwgcHJvcGVydGllczogQXJyYXk8c3RyaW5nPiA9IFtdKSB7XG4gIGNvbnN0IGdldFNlbGVjdGVkUHJvcGVydGllcyA9IChzZWxlY3RlZFByb3BlcnRpZXMsIHByb3BlcnR5KSA9PiAoe1xuICAgIC4uLnNlbGVjdGVkUHJvcGVydGllcyxcbiAgICBbcHJvcGVydHldOiBvYmplY3RbcHJvcGVydHldXG4gIH0pO1xuXG4gIHJldHVybiBwcm9wZXJ0aWVzLnJlZHVjZShnZXRTZWxlY3RlZFByb3BlcnRpZXMsIHt9KTtcbn1cblxuLyoqXG4gKiBSZXRvcm5hIG9zIHZhbG9yZXMgZGUgdW0gb2JqZXRvIGRlbnRybyBkZSB1bSBhcnJheS5cbiAqXG4gKiA+IFNpbXVsYSBvIE9iamVjdC52YWx1ZXMob2JqKSwgbyBtZXNtbyBkZXZlIHNlciByZW1vdmlkbyBhc3NpbSBxdWUgYSB2ZXJzw6NvIHR5cGVzY3JpdCBmb3IgYXR1YWxpemFkYS5cbiAqXG4gKiBAcGFyYW0gb2JqZWN0IE9iamV0byBkZSBvbmRlIHNlcsOhIHBlZ28gb3MgdmFsb3Jlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbHVlc0Zyb21PYmplY3Qob2JqZWN0OiBhbnkgPSB7fSk6IEFycmF5PGFueT4ge1xuICByZXR1cm4gT2JqZWN0LmtleXMob2JqZWN0KS5tYXAocHJvcGVydHkgPT4gb2JqZWN0W3Byb3BlcnR5XSk7XG59XG5cbi8qKlxuICogYWRpY2lvbmEgMCBubyB0ZW1wbyBpbmZvcm1hZG8sIGNhc28gbWVub3IgcSAxMFxuICpcbiAqIEBwYXJhbSB0aW1lXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRaZXJvKHRpbWU6IG51bWJlcikge1xuICBpZiAoIXRpbWUpIHtcbiAgICByZXR1cm4gJzAwJztcbiAgfVxuXG4gIGlmICh0aW1lIDwgMTApIHtcbiAgICByZXR1cm4gYDAke3RpbWV9YDtcbiAgfVxuXG4gIHJldHVybiB0aW1lO1xufVxuXG4vKipcbiAqIFJlbW92ZSBkbyBvYmpldG8gYXMgcHJvcHJpZWRhZGVzIGVzcGVjaWZpY2FkYXMuXG4gKlxuICogRXhlbXBsbzpcbiAqXG4gKiBgYGBcbiAqIGtleTogWydpZCcsICdjcGYnXVxuICogbmV3SXRlbVZhbHVlOiB7IGlkOiAnMTIzJywgY3BmOiAnNDU2JywgbmFtZTogJ1Rlc3QnIH1cbiAqIFJlc3VsdGFkbzogeyBuYW1lOiAnVGVzdCcgfVxuICogYGBgXG4gKlxuICogQHBhcmFtIGtleXMgbGlzdGEgZGUgcHJvcHJpZWRhZGVzIHBhcmEgc2VyIHJlbW92aWRhIGRvIG9iamV0by5cbiAqIEBwYXJhbSBuZXdJdGVtVmFsdWUgb2JqZXRvIHF1ZSBzZSBkZXNlamEgcmVtb3ZlciBhcyBwcm9wcmllZGFkZXMuXG4gKiBAcmV0dXJucyBvYmpldG8gc2VtIGFzIHByb3ByaWVkYWRlcyBlc3BlY2lmaWNhZGFzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlS2V5c1Byb3BlcnRpZXMoa2V5czogQXJyYXk8YW55PiwgbmV3SXRlbVZhbHVlOiBhbnkpIHtcbiAga2V5cy5mb3JFYWNoKGtleSA9PiBkZWxldGUgbmV3SXRlbVZhbHVlW2tleV0pO1xuICByZXR1cm4gbmV3SXRlbVZhbHVlO1xufVxuXG4vKipcbiAqIFJlbW92ZSBvYmpldG9zIGR1cGxpY2Fkb3MuXG4gKlxuICogRXhlbXBsbzpcbiAqXG4gKiBgYGBcbiAqIGl0ZW06IFt7Y291bnRyeTogJ2phcGFvJ30sIHtjb3VudHJ5OiAnYnJhc2lsJ30gLCB7Y291bnRyeTogJ2NoaW5hJ31dXG4gKiBpdGVtMjogW3tjb3VudHJ5OiAnY2hpbGUnfSwge2NvdW50cnk6ICdicmFzaWwnfSwge2NvdW50cnk6ICdjYW5hZGEnfV1cbiAqIGtleTogJ2NvdW50cnknXG4gKiBSZXN1bHRhZG86XG4gKiAgICBpdGVtMiA9IFt7Y291bnRyeTogJ2NoaWxlJ30sIHtjb3VudHJ5OiAnY2FuYWRhJ30gXVxuICogYGBgXG4gKlxuICogQHBhcmFtIGl0ZW0gbGlzdGEgY29tcGFyYWRhLlxuICogQHBhcmFtIGl0ZW0yIGxpc3RhIHBhcmEgcmVtb3ZlciBpdGVtcyBkdXBsaWNhZG9zLlxuICogQHBhcmFtIGtleSBwcm9wcmllZGFkZSBxdWUgc2Vyw6EgdXRpbGl6YWRhIHBhcmEgcmVhbGl6YXIgYSBjb21wYXJhw6fDo28uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVEdXBsaWNhdGVJdGVtcyhpdGVtLCBpdGVtMiwga2V5KSB7XG4gIGNvbnN0IHVuaXF1ZVZhbHVlcyA9IG5ldyBTZXQoaXRlbS5tYXAoZW50cnkgPT4gZW50cnlba2V5XSkpO1xuICBpdGVtMi5zcGxpY2UoMCwgaXRlbTIubGVuZ3RoLCAuLi5pdGVtMi5maWx0ZXIoZW50cnkgPT4gIXVuaXF1ZVZhbHVlcy5oYXMoZW50cnlba2V5XSkpKTtcbn1cblxuLyoqXG4gKiBSZWNlYmUgZG9pcyBhcnJheXMgZGUgb2JqZXRvcyBlIHJlbW92ZSBvcyBpdGVucyBkdXBsaWNhZG9zIHV0aWxpemFuZG8gdW1hIHByb3ByaWVkYWRlKGtleSkgcGFyYSBjb21wYXJhw6fDo28uXG4gKlxuICogRXhlbXBsbzpcbiAqXG4gKiBgYGBcbiAqIGl0ZW06IFt7Y291bnRyeTogJ2phcGFvJ30sIHtjb3VudHJ5OiAnYnJhc2lsJ30gLCB7Y291bnRyeTogJ2NoaW5hJ31dXG4gKiBpdGVtMjogW3tjb3VudHJ5OiAnY2hpbGUnfSwge2NvdW50cnk6ICdicmFzaWwnfSwge2NvdW50cnk6ICdjYW5hZGEnfV1cbiAqIGtleTogJ1tjb3VudHJ5XSdcbiAqIFJlc3VsdGFkbyBkbyByZXRvcm5vOlxuICogICAgW3tjb3VudHJ5OiAnY2hpbGUnfSwge2NvdW50cnk6ICdjYW5hZGEnfSwge2NvdW50cnk6ICdqYXBhbyd9LCB7Y291bnRyeTogJ2NoaW5hJ31dXG4gKiBgYGBcbiAqXG4gKlxuICogQHBhcmFtIGl0ZW0gOiBwcmltZWlyYSBsaXN0YSBkZSBpdGVucy5cbiAqIEBwYXJhbSBpdGVtMiA6IHNlZ3VuZGEgbGlzdGEgZGUgaXRlbnMuXG4gKiBAcGFyYW0ga2V5IDogdW0gYXJyYXkgZGUgcHJvcHJpZWRhZGVzIHF1ZSB2w6NvIHNlciB1dGlsaXphZGFzIHBhcmEgYSBjb21wYXJhw6fDo28uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVEdXBsaWNhdGVJdGVtc1dpdGhBcnJheUtleShpdGVtLCBpdGVtMiwga2V5cykge1xuICBjb25zdCBuZXdLZXkgPSBrZXlzLmxlbmd0aCA/IGtleXMgOiBbJ2lkJ107XG5cbiAgY29uc3QgY29tYmluZWRBcnJheSA9IGl0ZW0uY29uY2F0KGl0ZW0yKTtcbiAgcmV0dXJuIGNvbWJpbmVkQXJyYXkuZmlsdGVyKFxuICAgIChvYmosIGluZGV4KSA9PiBpbmRleCA9PT0gY29tYmluZWRBcnJheS5maW5kSW5kZXgoaW5uZXJPYmogPT4gbmV3S2V5LmV2ZXJ5KGtleSA9PiBpbm5lck9ialtrZXldID09PSBvYmpba2V5XSkpXG4gICk7XG59XG5cbi8qKlxuICogUmVjZWJlIHVtIGFycmF5IGRlIG9iamV0b3MgcGFyYSBvcmRlbmHDp8OjbyB1dGlsaXphbmRvIGNoYXZlIGNvbW8gY29tcGFyYXRpdm8gZVxuICogc2UgYSBvcmRlciDDqSBjcmVzY2VudGUodHJ1ZSkgb3UgZGVzY3Jlc2NlbnRlKGZhbHNlKVxuICpcbiAqIEV4ZW1wbG86XG4gKlxuICogYGBgXG4gKiBpdGVtczogW3tjb3VudHJ5OiAnamFwYW8nfSwge2NvdW50cnk6ICdicmFzaWwnfSAsIHtjb3VudHJ5OiAnY2hpbmEnfV1cbiAqIGtleTogJ2NvdW50cnknXG4gKiBpc0FzY2VuZGluZ09yZGVyOiB0cnVlXG4gKiBSZXN1bHRhZG8gZG8gcmV0b3JubzpcbiAqICAgIFt7Y291bnRyeTogJ2JyYXNpbCd9LCB7Y291bnRyeTogJ2NoaW5hJ30gLCB7Y291bnRyeTogJ2phcGFvJ31dXG4gKiBgYGBcbiAqXG4gKlxuICogQHBhcmFtIGl0ZW1zIDogbGlzdGEgZGUgaXRlbnMuXG4gKiBAcGFyYW0ga2V5IDogcHJvcHJpZWRhZGUgdXRpbGl6YWRhIG5hIGNvbXBhcmHDp8Ojby5cbiAqIEBwYXJhbSBpc0FzY2VuZGluZ09yZGVyIDogb3JkZW5hw6fDo28gY3Jlc2NlbnRlIG91IGRlc2NyZXNjZW50ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNvcnRBcnJheU9mT2JqZWN0cyhpdGVtcywga2V5LCBpc0FzY2VuZGluZ09yZGVyKSB7XG4gIHJldHVybiBpdGVtcy5zb3J0KChhLCBiKSA9PiB7XG4gICAgY29uc3QgdmFsdWVBID0gYVtrZXldO1xuICAgIGNvbnN0IHZhbHVlQiA9IGJba2V5XTtcblxuICAgIGlmICh0eXBlb2YgdmFsdWVBID09PSAnbnVtYmVyJyAmJiB0eXBlb2YgdmFsdWVCID09PSAnbnVtYmVyJykge1xuICAgICAgcmV0dXJuIGlzQXNjZW5kaW5nT3JkZXIgPyB2YWx1ZUEgLSB2YWx1ZUIgOiB2YWx1ZUIgLSB2YWx1ZUE7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGNvbXBhcmVSZXN1bHQgPSB2YWx1ZUEudG9TdHJpbmcoKS5sb2NhbGVDb21wYXJlKHZhbHVlQi50b1N0cmluZygpKTtcbiAgICAgIHJldHVybiBpc0FzY2VuZGluZ09yZGVyID8gY29tcGFyZVJlc3VsdCA6IC1jb21wYXJlUmVzdWx0O1xuICAgIH1cbiAgfSk7XG59XG4iXX0=
|