@wavemaker/app-ng-runtime 11.11.0-rc.6109 → 11.11.0-rc.6112
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/components/base/bundles/index.umd.js +3 -1
- package/components/base/esm2022/widgets/common/base/base-field-validations.mjs +4 -2
- package/components/base/fesm2022/index.mjs +3 -1
- package/components/base/fesm2022/index.mjs.map +1 -1
- package/components/containers/tabs/bundles/index.umd.js +28 -4
- package/components/containers/tabs/esm2022/tabs.component.mjs +27 -6
- package/components/containers/tabs/esm2022/tabs.props.mjs +2 -1
- package/components/containers/tabs/fesm2022/index.mjs +27 -5
- package/components/containers/tabs/fesm2022/index.mjs.map +1 -1
- package/components/containers/tabs/tabs.component.d.ts +2 -0
- package/components/containers/wizard/bundles/index.umd.js +7 -10
- package/components/containers/wizard/esm2022/wizard.component.mjs +8 -11
- package/components/containers/wizard/fesm2022/index.mjs +7 -10
- package/components/containers/wizard/fesm2022/index.mjs.map +1 -1
- package/components/containers/wizard/wizard.component.d.ts +2 -2
- package/components/data/table/bundles/index.umd.js +8 -7
- package/components/data/table/esm2022/table.component.mjs +6 -4
- package/components/data/table/fesm2022/index.mjs +5 -3
- package/components/data/table/fesm2022/index.mjs.map +1 -1
- package/components/input/calendar/bundles/index.umd.js +3 -0
- package/components/input/calendar/esm2022/calendar.component.mjs +4 -1
- package/components/input/calendar/fesm2022/index.mjs +3 -0
- package/components/input/calendar/fesm2022/index.mjs.map +1 -1
- package/components/input/color-picker/bundles/index.umd.js +5 -3
- package/components/input/color-picker/esm2022/color-picker.component.mjs +7 -5
- package/components/input/color-picker/fesm2022/index.mjs +6 -4
- package/components/input/color-picker/fesm2022/index.mjs.map +1 -1
- package/npm-shrinkwrap.json +2 -2
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/runtime/base/bundles/index.umd.js +1 -0
- package/runtime/base/esm2022/services/i18n.service.mjs +2 -1
- package/runtime/base/fesm2022/index.mjs +1 -0
- package/runtime/base/fesm2022/index.mjs.map +1 -1
- package/runtime/dynamic/app/app.config.d.ts +5 -0
- package/runtime/dynamic/bundles/index.umd.js +165 -56
- package/runtime/dynamic/esm2022/app/app.config.mjs +136 -0
- package/runtime/dynamic/esm2022/app/services/component-ref-provider.service.mjs +2 -4
- package/runtime/dynamic/esm2022/main.mjs +10 -10
- package/runtime/dynamic/fesm2022/index.mjs +189 -78
- package/runtime/dynamic/fesm2022/index.mjs.map +1 -1
|
@@ -134,6 +134,7 @@ export class I18nServiceImpl extends AbstractI18nService {
|
|
|
134
134
|
loadMomentTimeZoneBundle(locale, compInstance) {
|
|
135
135
|
return new Promise(resolve => {
|
|
136
136
|
const _cdnUrl = _WM_APP_PROJECT.cdnUrl || _WM_APP_PROJECT.ngDest;
|
|
137
|
+
window['moment'] = moment; //moment-timezone-with-data.js need moment as require('moment') to be available in window
|
|
137
138
|
const path = _cdnUrl + `locales/moment-timezone/moment-timezone-with-data.js`;
|
|
138
139
|
loadScripts([path], true).then(() => {
|
|
139
140
|
/**
|
|
@@ -298,4 +299,4 @@ export class I18nServiceImpl extends AbstractI18nService {
|
|
|
298
299
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(I18nServiceImpl, [{
|
|
299
300
|
type: Injectable
|
|
300
301
|
}], () => [{ type: i1.HttpClient }, { type: i2.BsLocaleService }, { type: i3.AppDefaults }, { type: i0.Injector }], null); })();
|
|
301
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcnVudGltZS1iYXNlL3NyYy9zZXJ2aWNlcy9pMThuLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0QsT0FBTyxFQUNILGVBQWUsRUFDZixtQkFBbUIsRUFDbkIsV0FBVyxFQUNYLHFCQUFxQixFQUNyQixzQkFBc0IsRUFFdEIsV0FBVyxFQUNYLE9BQU8sRUFDUCxNQUFNLEVBQ04scUJBQXFCLEVBQ3JCLEdBQUcsRUFDTixNQUFNLFVBQVUsQ0FBQztBQUVsQixPQUFPLEVBQUMsSUFBSSxFQUFXLEdBQUcsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBRTdGLE9BQU8sS0FBSyxTQUFTLE1BQU0saUNBQWlDLENBQUM7Ozs7O0FBQzdELE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxPQUFPLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBRXJELE1BQU0sb0JBQW9CLEdBQUcsZ0JBQWdCLENBQUM7QUFDOUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPO0lBQ3ZILE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSztJQUNySCxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBRzVELE1BQU0sT0FBTyxlQUFnQixTQUFRLG1CQUFtQjtJQVNwRCxJQUFZLEdBQUcsS0FBSyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQztJQUFBLENBQUM7SUFJL0MsWUFDWSxLQUFpQixFQUNqQixlQUFnQyxFQUNoQyxXQUF3QixFQUN4QixHQUFhO1FBRXJCLEtBQUssRUFBRSxDQUFDO1FBTEEsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUNqQixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsUUFBRyxHQUFILEdBQUcsQ0FBVTtRQWRqQiwyQkFBc0IsR0FBRyxJQUFJLENBQUM7UUFJOUIsMkJBQXNCLEdBQUcsS0FBSyxDQUFDO1FBQy9CLG9CQUFlLEdBQUcsRUFBQyxVQUFVLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUMsQ0FBQztRQUdqRCxpQkFBWSxHQUF3QixFQUFFLENBQUM7UUFTM0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFTyxxQkFBcUI7UUFDekIsSUFBSSxTQUFTLEdBQWtCLEtBQUssQ0FBQztRQUNyQyxJQUFJLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztZQUNuRCxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLENBQUM7UUFFRCxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVPLElBQUk7UUFDUixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUVuQixNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFTSxpQkFBaUI7UUFDcEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQy9CLENBQUM7SUFFTSx5QkFBeUI7UUFDNUIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUM7SUFDdkMsQ0FBQztJQUVNLFlBQVk7UUFDZixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQUVNLHFCQUFxQixDQUFDLFVBQWtCO1FBQzNDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ3JFLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxRQUFhO1FBQ3RDLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDM0IsT0FBTztRQUNYLENBQUM7UUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFrQixFQUFFLEVBQUU7WUFDaEUsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDL0MsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNWLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDdkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzlDLENBQUM7WUFDRCxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDL0QsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sY0FBYyxDQUFDLFFBQWE7UUFDaEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFTyxZQUFZLENBQUMsSUFBSTtRQUNyQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQzthQUN0QixTQUFTLEVBQUU7YUFDWCxLQUFLLENBQUMsR0FBRyxFQUFFO1lBQ1IsT0FBTyxDQUFDLElBQUksQ0FBQyxzQ0FBc0MsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUMzRCxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVTLG1CQUFtQjtRQUN6QixNQUFNLFFBQVEsR0FBRyxlQUFlLENBQUMsU0FBUyxJQUFLLE1BQWMsQ0FBQyxrQkFBa0IsRUFBRSxxQkFBcUIsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUUsZUFBZSxDQUFDLE1BQU0sQ0FBQTtRQUNwSixJQUFJLENBQUMsWUFBWSxDQUFFLFFBQVEsR0FBRyxHQUFHLG9CQUFvQixJQUFJLElBQUksQ0FBQyxjQUFjLE9BQU8sQ0FBQzthQUMvRSxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDWCxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNyQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQztZQUM3QixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFUyxzQkFBc0IsQ0FBQyxZQUFZO1FBQ3pDLElBQUksSUFBSSxDQUFDLGNBQWMsS0FBSyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUN0RCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1lBQzNDLE9BQU87UUFDWCxDQUFDO1FBQ0QsSUFBSSxlQUFlLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDNUIsTUFBTSxJQUFJLEdBQUcsR0FBRyxlQUFlLENBQUMsTUFBTSxrQkFBa0IsWUFBWSxLQUFLLENBQUM7WUFDMUUsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUUsRUFBRTtnQkFDL0IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzNDLENBQUMsQ0FBQyxDQUFBO1FBQ04sQ0FBQzthQUNHLENBQUM7WUFDRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDM0MsQ0FBQztJQUNMLENBQUM7SUFFUyxtQkFBbUIsQ0FBQyxZQUFZO1FBQ2xDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ25DLHdFQUF3RTtRQUN4RSw2R0FBNkc7UUFDN0csSUFBSSxPQUFPLEdBQVEsTUFBTSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNuRCxPQUFPLEdBQUcsT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDckMsWUFBWSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLElBQUksSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDbEYsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFUyx1QkFBdUIsQ0FBQyxTQUFTO1FBQ3ZDLE9BQU8sSUFBSSxPQUFPLENBQU8sT0FBTyxDQUFDLEVBQUU7WUFDL0IsTUFBTSxPQUFPLEdBQUcsZUFBZSxDQUFDLE1BQU0sSUFBSSxlQUFlLENBQUMsTUFBTSxDQUFDO1lBQ2pFLElBQUksSUFBSSxDQUFDLGNBQWMsS0FBSyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztnQkFDdEQsT0FBTyxFQUFFLENBQUM7Z0JBQ1YsT0FBTztZQUNYLENBQUM7WUFDRCxNQUFNLElBQUksR0FBRyxPQUFPLEdBQUcsMEJBQTBCLFNBQVMsS0FBSyxDQUFDO1lBRWhFLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFFLEVBQUU7Z0JBQy9CLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUM7Z0JBQ25DLE9BQU8sRUFBRSxDQUFDO1lBQ2QsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVTLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxZQUFhO1FBQ3BELE9BQU8sSUFBSSxPQUFPLENBQU8sT0FBTyxDQUFDLEVBQUU7WUFDL0IsTUFBTSxPQUFPLEdBQUcsZUFBZSxDQUFDLE1BQU0sSUFBSSxlQUFlLENBQUMsTUFBTSxDQUFDO1lBQ2pFLE1BQU0sSUFBSSxHQUFHLE9BQU8sR0FBRyxzREFBc0QsQ0FBQztZQUM5RSxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRSxFQUFFO2dCQUMvQjs7O21CQUdHO2dCQUVILElBQUksU0FBUyxHQUFHLE1BQU0sQ0FBQztnQkFDdkIsTUFBTSxHQUFHLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDL0IsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDeEMsSUFBSSxXQUFXLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDbkIsSUFBSSxXQUFXLEdBQUcsQ0FBQyxFQUFFLENBQUM7d0JBQ2xCLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO29CQUN4QyxDQUFDO29CQUNELFNBQVMsQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUUsTUFBYyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLFlBQVksRUFBRSxFQUFFO3dCQUN0RSxPQUFPLE1BQU0sS0FBTSxNQUFjLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDbkUsQ0FBQyxDQUFDLENBQUM7Z0JBQ1AsQ0FBQztnQkFDQSxNQUFjLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDdEMsTUFBTSxVQUFVLEdBQUksWUFBWSxJQUFJLFlBQVksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUM7Z0JBQ3ZILE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDO2dCQUNyQyxPQUFPLEVBQUUsQ0FBQztZQUNkLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFUyxpQkFBaUIsQ0FBQyxTQUFTO1FBQ2pDLElBQUksU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEQsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLGNBQWMsS0FBSyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUM3RCxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztZQUNsRixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDcEMsQ0FBQztRQUNELElBQUksU0FBUyxDQUFDLFlBQVksSUFBSSxNQUFNLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztZQUMvQyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7WUFDdEMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDbkMsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDMUMsQ0FBQztRQUNELElBQUksU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQy9CLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVNLFdBQVcsQ0FBQyxNQUFNLEVBQUUsWUFBYTtRQUNwQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFTSxXQUFXLENBQUMsWUFBYTtRQUM1QixNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxxQ0FBcUMsQ0FBQyxDQUFDO1FBQ3hFLE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQyxZQUFZLEVBQUUsMEJBQTBCLENBQUMsQ0FBQztRQUNqRSxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2IsT0FBTyxVQUFVLENBQUM7UUFDdEIsQ0FBQzthQUFNLElBQUksVUFBVSxFQUFFLENBQUM7WUFDcEIsT0FBTyxVQUFVLENBQUM7UUFDdEIsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDNUMsQ0FBQztJQUNMLENBQUM7SUFFTSxrQkFBa0I7UUFDckIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQ2hDLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxNQUFNO1FBRTNCLHNFQUFzRTtRQUN0RSxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ25CLGFBQWE7WUFDYixNQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUM5QixDQUFDO1FBRUQsTUFBTSxTQUFTLEdBQUcsc0JBQXNCLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN0RSxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUVqRixJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3JDLE9BQU8sT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzdCLENBQUM7UUFFRCxJQUFJLENBQUMsTUFBTSxJQUFJLE1BQU0sS0FBSyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDNUMsT0FBTyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDN0IsQ0FBQztRQUVELHFCQUFxQixDQUFDLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRWhELElBQUksQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDO1FBRTdCLDhCQUE4QjtRQUM5QixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFWixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDakMsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQztRQUM5QixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDbEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBRXhDLGlEQUFpRDtRQUNqRCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQy9DLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUNqQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxlQUFlO1FBQ25CLHlDQUF5QztRQUN6QyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUNoRCxNQUFNLGdCQUFnQixHQUFHLHNCQUFzQixFQUFFLENBQUMsZUFBZSxDQUFDO1FBQ2xFLFdBQVcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUVuQyxzR0FBc0c7UUFDdEcsSUFBSSxpQkFBaUIsR0FBRyxzQkFBc0IsRUFBRSxDQUFDLGlCQUFpQixDQUFDO1FBQ25FLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUMsa0VBQWtFO1lBQ3hGLGlCQUFpQixHQUFJLElBQUksQ0FBQztRQUM5QixDQUFDO2FBQU0sQ0FBQyxDQUFDLGtFQUFrRTtZQUN2RSxpQkFBaUIsR0FBRSxDQUFDLGlCQUFpQixLQUFLLE1BQU0sSUFBSSxpQkFBaUIsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDbkcsQ0FBQztRQUVELElBQUksY0FBYyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFFL0csbUdBQW1HO1FBQ25HLElBQUksb0JBQW9CLEdBQUcsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUM7UUFFNUUsSUFBSSxpQkFBaUIsQ0FBQztRQUV0QixpRUFBaUU7UUFDakUsTUFBTSxZQUFZLEdBQUcscUJBQXFCLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxvQkFBb0IsSUFBSSxpQkFBaUIsSUFBSSxZQUFZLENBQUMsV0FBVyxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxzQkFBc0IsQ0FBQztRQUN6TCxrRUFBa0U7UUFDbEUsY0FBYyxHQUFHLGNBQWMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRWxELE1BQU0sZUFBZSxHQUFHLFlBQVksSUFBSSxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUQsT0FBTyxlQUFlLENBQUM7SUFDM0IsQ0FBQztJQUVNLGlCQUFpQjtRQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDO1FBQ2xELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN0QyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRU0sbUJBQW1CLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSTtRQUN2QyxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxvREFBb0Q7SUFDN0Msb0JBQW9CO1FBQ3ZCLElBQUksU0FBUyxDQUFDO1FBRWQsU0FBUyxHQUFHLGtCQUFrQixDQUFDLHNCQUFzQixFQUFFLENBQUMsaUJBQWlCLElBQUksRUFBRSxDQUFDLENBQUM7UUFDakY7Ozs7OztXQU1HO1FBQ0gsU0FBUyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVMsTUFBTTtZQUNoRCxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEMsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLEdBQUcsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVNLGtCQUFrQjtRQUNyQixPQUFPLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRU0scUJBQXFCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDO0lBQ3ZDLENBQUM7SUFFTSxlQUFlLENBQUMsTUFBTTtRQUN6QixJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRU0sZUFBZTtRQUNsQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDaEMsQ0FBQztJQUVPLG1CQUFtQjtRQUN2QixJQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDbEgsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUcsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNyRSxDQUFDO0lBQ0wsQ0FBQztnSEF4VVEsZUFBZTt1RUFBZixlQUFlLFdBQWYsZUFBZTs7aUZBQWYsZUFBZTtjQUQzQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBkZWZpbmVMb2NhbGUgfSBmcm9tICduZ3gtYm9vdHN0cmFwL2Nocm9ub3MnO1xuaW1wb3J0IHsgQnNMb2NhbGVTZXJ2aWNlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9kYXRlcGlja2VyJztcblxuaW1wb3J0IHtcbiAgICBfV01fQVBQX1BST0pFQ1QsXG4gICAgQWJzdHJhY3RJMThuU2VydmljZSxcbiAgICBBcHBEZWZhdWx0cyxcbiAgICBnZXRTZXNzaW9uU3RvcmFnZUl0ZW0sXG4gICAgZ2V0V21Qcm9qZWN0UHJvcGVydGllcyxcbiAgICBpc01vYmlsZSxcbiAgICBsb2FkU2NyaXB0cyxcbiAgICByZXBsYWNlLFxuICAgIHNldENTUyxcbiAgICBzZXRTZXNzaW9uU3RvcmFnZUl0ZW0sXG4gICAgQXBwXG59IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7IENPTlNUQU5UUyB9IGZyb20gJ0B3bS92YXJpYWJsZXMnO1xuaW1wb3J0IHtmaW5kLCBmb3JFYWNoLCBnZXQsIGluY2x1ZGVzLCBpbnRlcnNlY3Rpb24sIGlzT2JqZWN0LCBtYXAsIHRvTG93ZXJ9IGZyb20gXCJsb2Rhc2gtZXNcIjtcblxuaW1wb3J0ICogYXMgbW9tZW50TGliIGZyb20gJ21vbWVudC10aW1lem9uZS9tb21lbnQtdGltZXpvbmUnO1xuY29uc3QgbW9tZW50ID0gbW9tZW50TGliLmRlZmF1bHQgfHwgd2luZG93Wydtb21lbnQnXTtcblxuY29uc3QgQVBQX0xPQ0FMRV9ST09UX1BBVEggPSAncmVzb3VyY2VzL2kxOG4nO1xuY29uc3QgUlRMX0xBTkdVQUdFX0NPREVTID0gWydhcicsICdhci0wMDEnLCAnYXItYWUnLCAnYXItYmgnLCAnYXItZHonLCAnYXItZWcnLCAnYXItaXEnLCAnYXItam8nLCAnYXIta3cnLCAnYXItbGInLCAnYXItbHknLFxuICAgICdhci1tYScsICdhci1vbScsICdhci1xYScsICdhci1zYScsICdhci1zZCcsICdhci1zeScsICdhci10bicsICdhci15ZScsICdhcmMnLCAnYmNjJywgJ2JxaScsICdja2InLCAnZHYnLCAnZmEnLCAnZ2xrJyxcbiAgICAnaGUnLCAna3UnLCAnbXpuJywgJ3BuYicsICdwcycsICdzZCcsICd1ZycsICd1cicsICd5aSddO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSTE4blNlcnZpY2VJbXBsIGV4dGVuZHMgQWJzdHJhY3RJMThuU2VydmljZSB7XG5cbiAgICBwcml2YXRlIHNlbGVjdGVkTG9jYWxlOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBkZWZhdWx0U3VwcG9ydGVkTG9jYWxlID0gJ2VuJztcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFwcExvY2FsZTogYW55O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJlZmFiTG9jYWxlOiBNYXA8U3RyaW5nLCBhbnk+O1xuICAgIHByaXZhdGUgbWVzc2FnZXM6IGFueTtcbiAgICBwcml2YXRlIF9pc0FuZ3VsYXJMb2NhbGVMb2FkZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIGZvcm1hdHNCeUxvY2FsZSA9IHsndGltZXpvbmUnOiAnJywgJ251bWJlcic6ICcnfTtcbiAgICBwcml2YXRlIGdldCBhcHAoKSB7IHJldHVybiB0aGlzLmluai5nZXQoQXBwKSB9O1xuXG4gICAgcHJpdmF0ZSBidW5kbGVMb2FkZWQ6e1trZXk6c3RyaW5nXSA6IGFueX0gPSB7fTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlICRodHRwOiBIdHRwQ2xpZW50LFxuICAgICAgICBwcml2YXRlIGJzTG9jYWxlU2VydmljZTogQnNMb2NhbGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGFwcERlZmF1bHRzOiBBcHBEZWZhdWx0cyxcbiAgICAgICAgcHJpdmF0ZSBpbmo6IEluamVjdG9yXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuYXBwTG9jYWxlID0ge307XG4gICAgICAgIHRoaXMucHJlZmFiTG9jYWxlID0gbmV3IE1hcCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlTG9jYWxlRGlyZWN0aW9uKCkge1xuICAgICAgICBsZXQgZGlyZWN0aW9uOiAnbHRyJyB8ICdydGwnID0gJ2x0cic7XG4gICAgICAgIGlmIChSVExfTEFOR1VBR0VfQ09ERVMuaW5jbHVkZXModGhpcy5zZWxlY3RlZExvY2FsZSkpIHtcbiAgICAgICAgICAgIGRpcmVjdGlvbiA9ICdydGwnO1xuICAgICAgICB9XG5cbiAgICAgICAgc2V0Q1NTKGRvY3VtZW50LmJvZHksICdkaXJlY3Rpb24nLCBkaXJlY3Rpb24pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdCgpIHtcbiAgICAgICAgdGhpcy5tZXNzYWdlcyA9IHt9O1xuXG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLmFwcExvY2FsZSwgdGhpcy5tZXNzYWdlcyk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFNlbGVjdGVkTG9jYWxlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkTG9jYWxlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXREZWZhdWx0U3VwcG9ydGVkTG9jYWxlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmRlZmF1bHRTdXBwb3J0ZWRMb2NhbGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEFwcExvY2FsZSgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5hcHBMb2NhbGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFByZWZhYkxvY2FsZUJ1bmRsZShwcmVmYWJOYW1lOiBzdHJpbmcpOiBhbnkge1xuICAgICAgICBpZiAoIXRoaXMucHJlZmFiTG9jYWxlLmhhcyhwcmVmYWJOYW1lKSkge1xuICAgICAgICAgICAgdGhpcy5wcmVmYWJMb2NhbGUuc2V0KHByZWZhYk5hbWUsIE9iamVjdC5jcmVhdGUodGhpcy5hcHBMb2NhbGUpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5wcmVmYWJMb2NhbGUuZ2V0KHByZWZhYk5hbWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZXh0ZW5kUHJlZmFiTWVzc2FnZXMobWVzc2FnZXM6IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAoIW1lc3NhZ2VzLnByZWZhYk1lc3NhZ2VzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBPYmplY3Qua2V5cyhtZXNzYWdlcy5wcmVmYWJNZXNzYWdlcykuZm9yRWFjaCgocHJlZmFiTmFtZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICBsZXQgYnVuZGxlID0gdGhpcy5wcmVmYWJMb2NhbGUuZ2V0KHByZWZhYk5hbWUpO1xuICAgICAgICAgICAgaWYgKCFidW5kbGUpIHtcbiAgICAgICAgICAgICAgICBidW5kbGUgPSBPYmplY3QuY3JlYXRlKHRoaXMuYXBwTG9jYWxlKTtcbiAgICAgICAgICAgICAgICB0aGlzLnByZWZhYkxvY2FsZS5zZXQocHJlZmFiTmFtZSwgYnVuZGxlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oYnVuZGxlLCBtZXNzYWdlcy5wcmVmYWJNZXNzYWdlc1twcmVmYWJOYW1lXSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZXh0ZW5kTWVzc2FnZXMobWVzc2FnZXM6IGFueSk6IHZvaWQge1xuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMubWVzc2FnZXMsIG1lc3NhZ2VzKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGxvYWRSZXNvdXJjZShwYXRoKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuJGh0dHAuZ2V0KHBhdGgpXG4gICAgICAgICAgICAudG9Qcm9taXNlKClcbiAgICAgICAgICAgIC5jYXRjaCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBlcnJvciBsb2FkaW5nIGxvY2FsZSByZXNvdXJjZSBmcm9tICR7cGF0aH1gKTtcbiAgICAgICAgICAgICAgICBQcm9taXNlLnJlc29sdmUoe30pO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGxvYWRBcHBMb2NhbGVCdW5kbGUoKSB7XG4gICAgICAgIGNvbnN0IGJhc2VQYXRoID0gX1dNX0FQUF9QUk9KRUNULmlzUHJldmlldyB8fCAod2luZG93IGFzIGFueSkuX1dNX0FQUF9QUk9QRVJUSUVTPy5sYW5ndWFnZUJ1bmRsZVNvdXJjZXMgPT09ICdEWU5BTUlDJyA/ICcnIDogIF9XTV9BUFBfUFJPSkVDVC5jZG5VcmxcbiAgICAgICAgdGhpcy5sb2FkUmVzb3VyY2UoIGJhc2VQYXRoICsgYCR7QVBQX0xPQ0FMRV9ST09UX1BBVEh9LyR7dGhpcy5zZWxlY3RlZExvY2FsZX0uanNvbmApXG4gICAgICAgICAgICAudGhlbihidW5kbGUgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZXh0ZW5kTWVzc2FnZXMoYnVuZGxlLm1lc3NhZ2VzKTtcbiAgICAgICAgICAgICAgICB0aGlzLmV4dGVuZFByZWZhYk1lc3NhZ2VzKGJ1bmRsZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5hcHBEZWZhdWx0cy5zZXRGb3JtYXRzKGJ1bmRsZS5mb3JtYXRzKTtcbiAgICAgICAgICAgICAgICB0aGlzLmJ1bmRsZUxvYWRlZC5hcHAgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMubm90aWZ5TG9jYWxlQ2hhbmdlZCgpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGxvYWRNb21lbnRMb2NhbGVCdW5kbGUobW9tZW50TG9jYWxlKSB7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkTG9jYWxlID09PSB0aGlzLmRlZmF1bHRTdXBwb3J0ZWRMb2NhbGUpIHtcbiAgICAgICAgICAgIG1vbWVudC5sb2NhbGUodGhpcy5kZWZhdWx0U3VwcG9ydGVkTG9jYWxlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoX1dNX0FQUF9QUk9KRUNULmlzUHJldmlldykge1xuICAgICAgICAgICAgY29uc3QgcGF0aCA9IGAke19XTV9BUFBfUFJPSkVDVC5jZG5Vcmx9bG9jYWxlcy9tb21lbnQvJHttb21lbnRMb2NhbGV9LmpzYDtcbiAgICAgICAgICAgIGxvYWRTY3JpcHRzKFtwYXRoXSwgdHJ1ZSkudGhlbigoKT0+e1xuICAgICAgICAgICAgICAgIHRoaXMubG9hZFNjcmlwdEZvck1vbWVudChtb21lbnRMb2NhbGUpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgICBlbHNle1xuICAgICAgICAgICAgdGhpcy5sb2FkU2NyaXB0Rm9yTW9tZW50KG1vbWVudExvY2FsZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgcHJvdGVjdGVkIGxvYWRTY3JpcHRGb3JNb21lbnQobW9tZW50TG9jYWxlKXtcbiAgICAgICAgICAgIG1vbWVudC5sb2NhbGUodGhpcy5zZWxlY3RlZExvY2FsZSk7XG4gICAgICAgICAgICAvLyBGb3Igbmd4IGJvb3RzdHJhcCBsb2NhbGUsIGdldCB0aGUgY29uZmlnIGZyb20gc2NyaXB0IGFuZCBhcHBseSBsb2NhbGVcbiAgICAgICAgICAgIC8vIG1vbWVudC5sb2NhbGVEYXRhKG1vbWVudExvY2FsZSkgd2lsbCByZXR1cm4gbW9tZW50IGxvY2FsZSBpbnN0YW5jZS4gX2NvbmZpZyBpbnNpZGUgd2lsbCBoYXZlIGFjdHVhbCBjb25maWdcbiAgICAgICAgICAgIGxldCBfY29uZmlnOiBhbnkgPSBtb21lbnQubG9jYWxlRGF0YShtb21lbnRMb2NhbGUpO1xuICAgICAgICAgICAgX2NvbmZpZyA9IF9jb25maWcgJiYgX2NvbmZpZy5fY29uZmlnO1xuICAgICAgICAgICAgZGVmaW5lTG9jYWxlKHRoaXMuc2VsZWN0ZWRMb2NhbGUsIF9jb25maWcpO1xuICAgICAgICAgICAgdGhpcy5ic0xvY2FsZVNlcnZpY2UudXNlKHRoaXMuZ2V0U2VsZWN0ZWRMb2NhbGUoKSB8fCB0aGlzLmRlZmF1bHRTdXBwb3J0ZWRMb2NhbGUpO1xuICAgICAgICAgICAgdGhpcy5idW5kbGVMb2FkZWQubW9tZW50ID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMubm90aWZ5TG9jYWxlQ2hhbmdlZCgpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBsb2FkQW5ndWxhckxvY2FsZUJ1bmRsZShhbmdMb2NhbGUpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KHJlc29sdmUgPT4ge1xuICAgICAgICAgICAgY29uc3QgX2NkblVybCA9IF9XTV9BUFBfUFJPSkVDVC5jZG5VcmwgfHwgX1dNX0FQUF9QUk9KRUNULm5nRGVzdDtcbiAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGVkTG9jYWxlID09PSB0aGlzLmRlZmF1bHRTdXBwb3J0ZWRMb2NhbGUpIHtcbiAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgcGF0aCA9IF9jZG5VcmwgKyBgbG9jYWxlcy9hbmd1bGFyL2dsb2JhbC8ke2FuZ0xvY2FsZX0uanNgO1xuXG4gICAgICAgICAgICBsb2FkU2NyaXB0cyhbcGF0aF0sIHRydWUpLnRoZW4oKCk9PntcbiAgICAgICAgICAgICAgICB0aGlzLl9pc0FuZ3VsYXJMb2NhbGVMb2FkZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgIH0sIHJlc29sdmUpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgbG9hZE1vbWVudFRpbWVab25lQnVuZGxlKGxvY2FsZSwgY29tcEluc3RhbmNlPykge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4ocmVzb2x2ZSA9PiB7XG4gICAgICAgICAgICBjb25zdCBfY2RuVXJsID0gX1dNX0FQUF9QUk9KRUNULmNkblVybCB8fCBfV01fQVBQX1BST0pFQ1QubmdEZXN0O1xuICAgICAgICAgICAgY29uc3QgcGF0aCA9IF9jZG5VcmwgKyBgbG9jYWxlcy9tb21lbnQtdGltZXpvbmUvbW9tZW50LXRpbWV6b25lLXdpdGgtZGF0YS5qc2A7XG4gICAgICAgICAgICBsb2FkU2NyaXB0cyhbcGF0aF0sIHRydWUpLnRoZW4oKCk9PntcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBJZiBsb2NhbGUgaXMgcHJvdmlkZWQgaW4gdGhlIGZvcm0gb2Ygb2Zmc2V0IGFuZCBub3QgdGltZXpvbmUgbmFtZSwgZGVkdWNlIHRoZSBuYW1lLlxuICAgICAgICAgICAgICAgICAqIElmIGxvY2FsZSBpcyBwcm92aWRlZCBhcyBHTVQrOSwgbmFtZSB3aWxsIGJlIGRlZHVjZWQgYXMgQXNpYS9Ub2t5b1xuICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgbGV0IGxvY2FsZU9iaiA9IGxvY2FsZTtcbiAgICAgICAgICAgICAgICBsb2NhbGUgPSBsb2NhbGVPYmpbJ3RpbWV6b25lJ107XG4gICAgICAgICAgICAgICAgY29uc3QgbG9jYWxlSW5kZXggPSBsb2NhbGUuaW5kZXhPZignKycpO1xuICAgICAgICAgICAgICAgIGlmIChsb2NhbGVJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChsb2NhbGVJbmRleCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsZSA9IGxvY2FsZS5zdWJzdHIobG9jYWxlSW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGxvY2FsZU9ialsndGltZXpvbmUnXSA9IGZpbmQoKG1vbWVudCBhcyBhbnkpLnR6Lm5hbWVzKCksICh0aW1lem9uZU5hbWUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBsb2NhbGUgPT09IChtb21lbnQgYXMgYW55KS50eih0aW1lem9uZU5hbWUpLmZvcm1hdCgnWicpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKG1vbWVudCBhcyBhbnkpLnR6LnNldERlZmF1bHQobG9jYWxlKTtcbiAgICAgICAgICAgICAgICBjb25zdCBsb2NhbGVEYXRhID0gIGNvbXBJbnN0YW5jZSAmJiBjb21wSW5zdGFuY2UuZm9ybWF0c0J5TG9jYWxlID8gY29tcEluc3RhbmNlLmZvcm1hdHNCeUxvY2FsZSA6IHRoaXMuZm9ybWF0c0J5TG9jYWxlO1xuICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24obG9jYWxlRGF0YSwgbG9jYWxlT2JqKTtcbiAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICB9LCByZXNvbHZlKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGxvYWRMb2NhbGVCdW5kbGVzKGxpYkxvY2FsZSkge1xuICAgICAgICBpZiAobGliTG9jYWxlLm1vbWVudCkge1xuICAgICAgICAgICAgdGhpcy5sb2FkTW9tZW50TG9jYWxlQnVuZGxlKGxpYkxvY2FsZS5tb21lbnQpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWRMb2NhbGUgPT09IHRoaXMuZGVmYXVsdFN1cHBvcnRlZExvY2FsZSkge1xuICAgICAgICAgICAgdGhpcy5ic0xvY2FsZVNlcnZpY2UudXNlKHRoaXMuZ2V0U2VsZWN0ZWRMb2NhbGUoKSB8fCB0aGlzLmRlZmF1bHRTdXBwb3J0ZWRMb2NhbGUpO1xuICAgICAgICAgICAgdGhpcy5idW5kbGVMb2FkZWQubW9tZW50ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobGliTG9jYWxlLmZ1bGxDYWxlbmRhciAmJiB3aW5kb3dbJ0Z1bGxDYWxlbmRhciddKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5idW5kbGVMb2FkZWQuZnVsbENhbGVuZGFyID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLm5vdGlmeUxvY2FsZUNoYW5nZWQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuYnVuZGxlTG9hZGVkLmZ1bGxDYWxlbmRhciA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxpYkxvY2FsZS5hbmd1bGFyKSB7XG4gICAgICAgICAgICB0aGlzLmxvYWRBcHBMb2NhbGVCdW5kbGUoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5sb2FkQW5ndWxhckxvY2FsZUJ1bmRsZShsaWJMb2NhbGUuYW5ndWxhcik7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFRpbWV6b25lKGxvY2FsZSwgY29tcEluc3RhbmNlPykge1xuICAgICAgICB0aGlzLmxvYWRNb21lbnRUaW1lWm9uZUJ1bmRsZShsb2NhbGUsIGNvbXBJbnN0YW5jZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFRpbWV6b25lKGNvbXBJbnN0YW5jZT8pIHtcbiAgICAgICAgY29uc3QgcGFnZUNvbmZpZyA9IGdldCh0aGlzLmFwcCwgJ2FjdGl2ZVBhZ2UuZm9ybWF0c0J5TG9jYWxlLnRpbWV6b25lJyk7XG4gICAgICAgIGNvbnN0IGNvbXBDb25maWcgPSBnZXQoY29tcEluc3RhbmNlLCAnZm9ybWF0c0J5TG9jYWxlLnRpbWV6b25lJyk7XG4gICAgICAgIGlmIChjb21wQ29uZmlnKSB7XG4gICAgICAgICAgICByZXR1cm4gY29tcENvbmZpZztcbiAgICAgICAgfSBlbHNlIGlmIChwYWdlQ29uZmlnKSB7XG4gICAgICAgICAgICByZXR1cm4gcGFnZUNvbmZpZztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZvcm1hdHNCeUxvY2FsZVsndGltZXpvbmUnXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXRGb3JtYXRzQnlMb2NhbGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1hdHNCeUxvY2FsZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0U2VsZWN0ZWRMb2NhbGUobG9jYWxlKSB7XG5cbiAgICAgICAgLy8gY2hlY2sgaWYgdGhlIGV2ZW50IGlzIHByb3BhZ2F0ZWQgZnJvbSB0aGUgc2VsZWN0IG9yIGFueSBzdWNoIHdpZGdldFxuICAgICAgICBpZiAoaXNPYmplY3QobG9jYWxlKSkge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgbG9jYWxlID0gbG9jYWxlLmRhdGF2YWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGxpYkxvY2FsZSA9IGdldFdtUHJvamVjdFByb3BlcnRpZXMoKS5zdXBwb3J0ZWRMYW5ndWFnZXNbbG9jYWxlXTtcbiAgICAgICAgY29uc3Qgc3VwcG9ydGVkTG9jYWxlID0gT2JqZWN0LmtleXMoZ2V0V21Qcm9qZWN0UHJvcGVydGllcygpLnN1cHBvcnRlZExhbmd1YWdlcyk7XG5cbiAgICAgICAgaWYgKCFpbmNsdWRlcyhzdXBwb3J0ZWRMb2NhbGUsIGxvY2FsZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghbG9jYWxlIHx8IGxvY2FsZSA9PT0gdGhpcy5zZWxlY3RlZExvY2FsZSkge1xuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgc2V0U2Vzc2lvblN0b3JhZ2VJdGVtKCdzZWxlY3RlZExvY2FsZScsIGxvY2FsZSk7XG5cbiAgICAgICAgdGhpcy5zZWxlY3RlZExvY2FsZSA9IGxvY2FsZTtcblxuICAgICAgICAvLyByZXNldCB0aGUgbG9jYWxlRGF0YSBvYmplY3RcbiAgICAgICAgdGhpcy5pbml0KCk7XG5cbiAgICAgICAgdGhpcy5idW5kbGVMb2FkZWQubW9tZW50ID0gZmFsc2U7XG4gICAgICAgIHRoaXMuYnVuZGxlTG9hZGVkLmZ1bGxDYWxlbmRhciA9IGZhbHNlO1xuICAgICAgICB0aGlzLmJ1bmRsZUxvYWRlZC5hcHAgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5idW5kbGVMb2FkZWQuYW5ndWxhciA9IGZhbHNlO1xuICAgICAgICB0aGlzLmJ1bmRsZUxvYWRlZC5saWJMb2NhbGUgPSBsaWJMb2NhbGU7XG5cbiAgICAgICAgLy8gbG9hZCB0aGUgbG9jYWxlIGJ1bmRsZXMgb2YgdGhlIHNlbGVjdGVkIGxvY2FsZVxuICAgICAgICByZXR1cm4gdGhpcy5sb2FkTG9jYWxlQnVuZGxlcyhsaWJMb2NhbGUpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVMb2NhbGVEaXJlY3Rpb24oKTtcbiAgICAgICAgICAgIHRoaXMuYnVuZGxlTG9hZGVkLmFuZ3VsYXIgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5ub3RpZnlMb2NhbGVDaGFuZ2VkKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVkdWNlQXBwTG9jYWxlKCkge1xuICAgICAgICAvLyBjb21wdXRhdGlvbiB0byBmaW5kIGFwcCBkZWZhdWx0IGxvY2FsZVxuICAgICAgICBjb25zdCBfYWNjZXB0TGFuZyA9IHRoaXMuZ2V0QWNjZXB0ZWRMYW5ndWFnZXMoKTtcbiAgICAgICAgY29uc3QgX2RlZmF1bHRMYW5ndWFnZSA9IGdldFdtUHJvamVjdFByb3BlcnRpZXMoKS5kZWZhdWx0TGFuZ3VhZ2U7XG4gICAgICAgIF9hY2NlcHRMYW5nLnB1c2goX2RlZmF1bHRMYW5ndWFnZSk7XG5cbiAgICAgICAgLy8gY2hlY2tzIHdoZXRoZXIgdXNlciBwcmVmZXJlbmNlIGlzIGJhc2VkIG9uIGJyb3dzZXIgc2V0IGxhbmd1YWdlcyBvciBkZWZhdWx0IGxhbmd1YWdlIHNldCBpbiBwcm9qZWN0XG4gICAgICAgIGxldCBwcmVmZXJCcm93c2VyTGFuZyA9IGdldFdtUHJvamVjdFByb3BlcnRpZXMoKS5wcmVmZXJCcm93c2VyTGFuZztcbiAgICAgICAgaWYgKCFwcmVmZXJCcm93c2VyTGFuZykgeyAvLyB3aGVuIHByZWZlckJyb3dzZXJMYW5nIGlzIG5vdCBkZWZpbmVkLCBzZXQgdG8gaXRzIGRlZmF1bHQgdmFsdWVcbiAgICAgICAgICAgIHByZWZlckJyb3dzZXJMYW5nICA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7IC8vIGNvbnZlcnQgc3RyaW5naWZpZWQgYm9vbGVhbiB2YWx1ZXMgcmVjaWV2ZWQgZnJvbSBCRSB0byBib29sZWFuc1xuICAgICAgICAgICAgcHJlZmVyQnJvd3Nlckxhbmc9IChwcmVmZXJCcm93c2VyTGFuZyA9PT0gJ3RydWUnIHx8IHByZWZlckJyb3dzZXJMYW5nID09PSB0cnVlKSA/IHRydWUgOiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBfc3VwcG9ydGVkTGFuZyA9IE9iamVjdC5rZXlzKGdldFdtUHJvamVjdFByb3BlcnRpZXMoKS5zdXBwb3J0ZWRMYW5ndWFnZXMpIHx8IFt0aGlzLmRlZmF1bHRTdXBwb3J0ZWRMb2NhbGVdO1xuXG4gICAgICAgIC8vIHdoZW4gcHJlZmVyZW5jZSBpcyBnaXZlbiB0byBicm93c2VyIHNldCBsYW5ndWFnZXMsIGRvIG5vdCBwb3B1bGF0ZSBfc2VsZWN0ZWREZWZhdWx0TGFuZyB2YXJpYWJsZVxuICAgICAgICBsZXQgX3NlbGVjdGVkRGVmYXVsdExhbmcgPSBwcmVmZXJCcm93c2VyTGFuZyA/IHVuZGVmaW5lZCA6IF9kZWZhdWx0TGFuZ3VhZ2U7XG5cbiAgICAgICAgbGV0IF9hcHBTdXBwb3J0ZWRMYW5nO1xuICAgICAgICBcbiAgICAgICAgLy8gY2hlY2sgZm9yIHRoZSBzZXNzaW9uIHN0b3JhZ2UgdG8gbG9hZCBhbnkgcHJlLXJlcXVlc3RlZCBsb2NhbGVcbiAgICAgICAgY29uc3QgX2RlZmF1bHRMYW5nID0gZ2V0U2Vzc2lvblN0b3JhZ2VJdGVtKCdzZWxlY3RlZExvY2FsZScpIHx8IF9zZWxlY3RlZERlZmF1bHRMYW5nIHx8IF9hcHBTdXBwb3J0ZWRMYW5nIHx8IGludGVyc2VjdGlvbihfYWNjZXB0TGFuZywgX3N1cHBvcnRlZExhbmcpWzBdIHx8IHRoaXMuZGVmYXVsdFN1cHBvcnRlZExvY2FsZTtcbiAgICAgICAgLy8gaWYgdGhlIHN1cHBvcnRlZExvY2FsZSBpcyBub3QgYXZhaWxhYmxlIHNldCBpdCB0byBkZWZhdWx0TG9jYWxlXG4gICAgICAgIF9zdXBwb3J0ZWRMYW5nID0gX3N1cHBvcnRlZExhbmcgfHwgW19kZWZhdWx0TGFuZ107XG5cbiAgICAgICAgY29uc3QgZGVmYXVsdExhbmd1YWdlID0gX2RlZmF1bHRMYW5nIHx8IF9zdXBwb3J0ZWRMYW5nWzBdO1xuICAgICAgICByZXR1cm4gZGVmYXVsdExhbmd1YWdlO1xuICAgIH1cblxuICAgIHB1YmxpYyBsb2FkRGVmYXVsdExvY2FsZSgpIHtcbiAgICAgICAgRGF0ZS5wcm90b3R5cGVbXCJtb250aFwiXSA9IERhdGUucHJvdG90eXBlLmdldE1vbnRoO1xuICAgICAgICBjb25zdCBsb2NhbGUgPSB0aGlzLmRlZHVjZUFwcExvY2FsZSgpO1xuICAgICAgICByZXR1cm4gdGhpcy5zZXRTZWxlY3RlZExvY2FsZShsb2NhbGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRMb2NhbGl6ZWRNZXNzYWdlKG1lc3NhZ2UsIC4uLmFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIHJlcGxhY2UodGhpcy5hcHBMb2NhbGVbbWVzc2FnZV0sIGFyZ3MpO1xuICAgIH1cblxuICAgIC8vIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgYWNjZXB0ZWQgbGFuZ3VhZ2VzIGxpc3RcbiAgICBwdWJsaWMgZ2V0QWNjZXB0ZWRMYW5ndWFnZXMoKSB7XG4gICAgICAgIGxldCBsYW5ndWFnZXM7XG4gICAgICAgXG4gICAgICAgIGxhbmd1YWdlcyA9IGRlY29kZVVSSUNvbXBvbmVudChnZXRXbVByb2plY3RQcm9wZXJ0aWVzKCkucHJlZmVycmVkTGFuZ3VhZ2UgfHwgJycpO1xuICAgICAgICAvKipcbiAgICAgICAgICogQWNjZXB0LUxhbmd1YWdlIEhlYWRlciB3aWxsIGNvbnRhaW4gc2V0IG9mIHN1cHBvcnRlZCBsb2NhbGUsIHNvIHRyeSBzcGxpdHRpbmcgdGhlIHN0cmluZyB0byBwcm9wZXIgbG9jYWxlIHNldFxuICAgICAgICAgKiBFeDogZW4sZW4tVVM7cT0wLjksZGU7cT0wLjYsYXI7cT0wLjIsaGlcbiAgICAgICAgICpcbiAgICAgICAgICogU3BsaXQgdGhlIGFib3ZlIGludG8gW2VuLGVuLXVzLGRlLGFyLGhpXVxuICAgICAgICAgKiBAdHlwZSB7QXJyYXl9XG4gICAgICAgICAqL1xuICAgICAgICBsYW5ndWFnZXMgPSBsYW5ndWFnZXMuc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24obG9jYWxlKSB7XG4gICAgICAgICAgICByZXR1cm4gbG9jYWxlLnNwbGl0KCc7JylbMF07XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gbWFwKGxhbmd1YWdlcywgdG9Mb3dlcik7XG4gICAgfVxuXG4gICAgcHVibGljIGluaXRDYWxlbmRhckxvY2FsZSgpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzQW5ndWxhckxvY2FsZUxvYWRlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzQW5ndWxhckxvY2FsZUxvYWRlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0d2lkZ2V0TG9jYWxlKGxvY2FsZSkge1xuICAgICAgICB0aGlzLmZvcm1hdHNCeUxvY2FsZVsnbnVtYmVyJ10gPSBsb2NhbGVbJ251bWJlciddO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXR3aWRnZXRMb2NhbGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1hdHNCeUxvY2FsZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG5vdGlmeUxvY2FsZUNoYW5nZWQoKSB7XG4gICAgICAgIGlmKHRoaXMuYnVuZGxlTG9hZGVkLm1vbWVudCAmJiB0aGlzLmJ1bmRsZUxvYWRlZC5mdWxsQ2FsZW5kYXIgJiYgdGhpcy5idW5kbGVMb2FkZWQuYW5ndWxhciAmJiB0aGlzLmJ1bmRsZUxvYWRlZC5hcHApIHtcbiAgICAgICAgICAgIHRoaXMuYXBwLm5vdGlmeSggICdsb2NhbGUtY2hhbmdlZCcsIHRoaXMuYnVuZGxlTG9hZGVkLmxpYkxvY2FsZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbn1cbiJdfQ==
|
|
302
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcnVudGltZS1iYXNlL3NyYy9zZXJ2aWNlcy9pMThuLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0QsT0FBTyxFQUNILGVBQWUsRUFDZixtQkFBbUIsRUFDbkIsV0FBVyxFQUNYLHFCQUFxQixFQUNyQixzQkFBc0IsRUFFdEIsV0FBVyxFQUNYLE9BQU8sRUFDUCxNQUFNLEVBQ04scUJBQXFCLEVBQ3JCLEdBQUcsRUFDTixNQUFNLFVBQVUsQ0FBQztBQUVsQixPQUFPLEVBQUMsSUFBSSxFQUFXLEdBQUcsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBRTdGLE9BQU8sS0FBSyxTQUFTLE1BQU0saUNBQWlDLENBQUM7Ozs7O0FBQzdELE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxPQUFPLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBRXJELE1BQU0sb0JBQW9CLEdBQUcsZ0JBQWdCLENBQUM7QUFDOUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPO0lBQ3ZILE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFB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SCxTQUFTLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBUyxNQUFNO1lBQ2hELE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sR0FBRyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRU0sa0JBQWtCO1FBQ3JCLE9BQU8sT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFTSxxQkFBcUI7UUFDeEIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUM7SUFDdkMsQ0FBQztJQUVNLGVBQWUsQ0FBQyxNQUFNO1FBQ3pCLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFTSxlQUFlO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUNoQyxDQUFDO0lBRU8sbUJBQW1CO1FBQ3ZCLElBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNsSCxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBRyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3JFLENBQUM7SUFDTCxDQUFDO2dIQXpVUSxlQUFlO3VFQUFmLGVBQWUsV0FBZixlQUFlOztpRkFBZixlQUFlO2NBRDNCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IGRlZmluZUxvY2FsZSB9IGZyb20gJ25neC1ib290c3RyYXAvY2hyb25vcyc7XG5pbXBvcnQgeyBCc0xvY2FsZVNlcnZpY2UgfSBmcm9tICduZ3gtYm9vdHN0cmFwL2RhdGVwaWNrZXInO1xuXG5pbXBvcnQge1xuICAgIF9XTV9BUFBfUFJPSkVDVCxcbiAgICBBYnN0cmFjdEkxOG5TZXJ2aWNlLFxuICAgIEFwcERlZmF1bHRzLFxuICAgIGdldFNlc3Npb25TdG9yYWdlSXRlbSxcbiAgICBnZXRXbVByb2plY3RQcm9wZXJ0aWVzLFxuICAgIGlzTW9iaWxlLFxuICAgIGxvYWRTY3JpcHRzLFxuICAgIHJlcGxhY2UsXG4gICAgc2V0Q1NTLFxuICAgIHNldFNlc3Npb25TdG9yYWdlSXRlbSxcbiAgICBBcHBcbn0gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHsgQ09OU1RBTlRTIH0gZnJvbSAnQHdtL3ZhcmlhYmxlcyc7XG5pbXBvcnQge2ZpbmQsIGZvckVhY2gsIGdldCwgaW5jbHVkZXMsIGludGVyc2VjdGlvbiwgaXNPYmplY3QsIG1hcCwgdG9Mb3dlcn0gZnJvbSBcImxvZGFzaC1lc1wiO1xuXG5pbXBvcnQgKiBhcyBtb21lbnRMaWIgZnJvbSAnbW9tZW50LXRpbWV6b25lL21vbWVudC10aW1lem9uZSc7XG5jb25zdCBtb21lbnQgPSBtb21lbnRMaWIuZGVmYXVsdCB8fCB3aW5kb3dbJ21vbWVudCddO1xuXG5jb25zdCBBUFBfTE9DQUxFX1JPT1RfUEFUSCA9ICdyZXNvdXJjZXMvaTE4bic7XG5jb25zdCBSVExfTEFOR1VBR0VfQ09ERVMgPSBbJ2FyJywgJ2FyLTAwMScsICdhci1hZScsICdhci1iaCcsICdhci1keicsICdhci1lZycsICdhci1pcScsICdhci1qbycsICdhci1rdycsICdhci1sYicsICdhci1seScsXG4gICAgJ2FyLW1hJywgJ2FyLW9tJywgJ2FyLXFhJywgJ2FyLXNhJywgJ2FyLXNkJywgJ2FyLXN5JywgJ2FyLXRuJywgJ2FyLXllJywgJ2FyYycsICdiY2MnLCAnYnFpJywgJ2NrYicsICdkdicsICdmYScsICdnbGsnLFxuICAgICdoZScsICdrdScsICdtem4nLCAncG5iJywgJ3BzJywgJ3NkJywgJ3VnJywgJ3VyJywgJ3lpJ107XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBJMThuU2VydmljZUltcGwgZXh0ZW5kcyBBYnN0cmFjdEkxOG5TZXJ2aWNlIHtcblxuICAgIHByaXZhdGUgc2VsZWN0ZWRMb2NhbGU6IHN0cmluZztcbiAgICBwcml2YXRlIGRlZmF1bHRTdXBwb3J0ZWRMb2NhbGUgPSAnZW4nO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgYXBwTG9jYWxlOiBhbnk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBwcmVmYWJMb2NhbGU6IE1hcDxTdHJpbmcsIGFueT47XG4gICAgcHJpdmF0ZSBtZXNzYWdlczogYW55O1xuICAgIHByaXZhdGUgX2lzQW5ndWxhckxvY2FsZUxvYWRlZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgZm9ybWF0c0J5TG9jYWxlID0geyd0aW1lem9uZSc6ICcnLCAnbnVtYmVyJzogJyd9O1xuICAgIHByaXZhdGUgZ2V0IGFwcCgpIHsgcmV0dXJuIHRoaXMuaW5qLmdldChBcHApIH07XG5cbiAgICBwcml2YXRlIGJ1bmRsZUxvYWRlZDp7W2tleTpzdHJpbmddIDogYW55fSA9IHt9O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgJGh0dHA6IEh0dHBDbGllbnQsXG4gICAgICAgIHByaXZhdGUgYnNMb2NhbGVTZXJ2aWNlOiBCc0xvY2FsZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgYXBwRGVmYXVsdHM6IEFwcERlZmF1bHRzLFxuICAgICAgICBwcml2YXRlIGluajogSW5qZWN0b3JcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5hcHBMb2NhbGUgPSB7fTtcbiAgICAgICAgdGhpcy5wcmVmYWJMb2NhbGUgPSBuZXcgTWFwKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVMb2NhbGVEaXJlY3Rpb24oKSB7XG4gICAgICAgIGxldCBkaXJlY3Rpb246ICdsdHInIHwgJ3J0bCcgPSAnbHRyJztcbiAgICAgICAgaWYgKFJUTF9MQU5HVUFHRV9DT0RFUy5pbmNsdWRlcyh0aGlzLnNlbGVjdGVkTG9jYWxlKSkge1xuICAgICAgICAgICAgZGlyZWN0aW9uID0gJ3J0bCc7XG4gICAgICAgIH1cblxuICAgICAgICBzZXRDU1MoZG9jdW1lbnQuYm9keSwgJ2RpcmVjdGlvbicsIGRpcmVjdGlvbik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0KCkge1xuICAgICAgICB0aGlzLm1lc3NhZ2VzID0ge307XG5cbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMuYXBwTG9jYWxlLCB0aGlzLm1lc3NhZ2VzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0U2VsZWN0ZWRMb2NhbGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRMb2NhbGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldERlZmF1bHRTdXBwb3J0ZWRMb2NhbGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGVmYXVsdFN1cHBvcnRlZExvY2FsZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0QXBwTG9jYWxlKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwcExvY2FsZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UHJlZmFiTG9jYWxlQnVuZGxlKHByZWZhYk5hbWU6IHN0cmluZyk6IGFueSB7XG4gICAgICAgIGlmICghdGhpcy5wcmVmYWJMb2NhbGUuaGFzKHByZWZhYk5hbWUpKSB7XG4gICAgICAgICAgICB0aGlzLnByZWZhYkxvY2FsZS5zZXQocHJlZmFiTmFtZSwgT2JqZWN0LmNyZWF0ZSh0aGlzLmFwcExvY2FsZSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnByZWZhYkxvY2FsZS5nZXQocHJlZmFiTmFtZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBleHRlbmRQcmVmYWJNZXNzYWdlcyhtZXNzYWdlczogYW55KTogdm9pZCB7XG4gICAgICAgIGlmICghbWVzc2FnZXMucHJlZmFiTWVzc2FnZXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIE9iamVjdC5rZXlzKG1lc3NhZ2VzLnByZWZhYk1lc3NhZ2VzKS5mb3JFYWNoKChwcmVmYWJOYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGxldCBidW5kbGUgPSB0aGlzLnByZWZhYkxvY2FsZS5nZXQocHJlZmFiTmFtZSk7XG4gICAgICAgICAgICBpZiAoIWJ1bmRsZSkge1xuICAgICAgICAgICAgICAgIGJ1bmRsZSA9IE9iamVjdC5jcmVhdGUodGhpcy5hcHBMb2NhbGUpO1xuICAgICAgICAgICAgICAgIHRoaXMucHJlZmFiTG9jYWxlLnNldChwcmVmYWJOYW1lLCBidW5kbGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihidW5kbGUsIG1lc3NhZ2VzLnByZWZhYk1lc3NhZ2VzW3ByZWZhYk5hbWVdKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBleHRlbmRNZXNzYWdlcyhtZXNzYWdlczogYW55KTogdm9pZCB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5tZXNzYWdlcywgbWVzc2FnZXMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgbG9hZFJlc291cmNlKHBhdGgpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy4kaHR0cC5nZXQocGF0aClcbiAgICAgICAgICAgIC50b1Byb21pc2UoKVxuICAgICAgICAgICAgLmNhdGNoKCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYGVycm9yIGxvYWRpbmcgbG9jYWxlIHJlc291cmNlIGZyb20gJHtwYXRofWApO1xuICAgICAgICAgICAgICAgIFByb21pc2UucmVzb2x2ZSh7fSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgbG9hZEFwcExvY2FsZUJ1bmRsZSgpIHtcbiAgICAgICAgY29uc3QgYmFzZVBhdGggPSBfV01fQVBQX1BST0pFQ1QuaXNQcmV2aWV3IHx8ICh3aW5kb3cgYXMgYW55KS5fV01fQVBQX1BST1BFUlRJRVM/Lmxhbmd1YWdlQnVuZGxlU291cmNlcyA9PT0gJ0RZTkFNSUMnID8gJycgOiAgX1dNX0FQUF9QUk9KRUNULmNkblVybFxuICAgICAgICB0aGlzLmxvYWRSZXNvdXJjZSggYmFzZVBhdGggKyBgJHtBUFBfTE9DQUxFX1JPT1RfUEFUSH0vJHt0aGlzLnNlbGVjdGVkTG9jYWxlfS5qc29uYClcbiAgICAgICAgICAgIC50aGVuKGJ1bmRsZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5leHRlbmRNZXNzYWdlcyhidW5kbGUubWVzc2FnZXMpO1xuICAgICAgICAgICAgICAgIHRoaXMuZXh0ZW5kUHJlZmFiTWVzc2FnZXMoYnVuZGxlKTtcbiAgICAgICAgICAgICAgICB0aGlzLmFwcERlZmF1bHRzLnNldEZvcm1hdHMoYnVuZGxlLmZvcm1hdHMpO1xuICAgICAgICAgICAgICAgIHRoaXMuYnVuZGxlTG9hZGVkLmFwcCA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5ub3RpZnlMb2NhbGVDaGFuZ2VkKCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgbG9hZE1vbWVudExvY2FsZUJ1bmRsZShtb21lbnRMb2NhbGUpIHtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRMb2NhbGUgPT09IHRoaXMuZGVmYXVsdFN1cHBvcnRlZExvY2FsZSkge1xuICAgICAgICAgICAgbW9tZW50LmxvY2FsZSh0aGlzLmRlZmF1bHRTdXBwb3J0ZWRMb2NhbGUpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChfV01fQVBQX1BST0pFQ1QuaXNQcmV2aWV3KSB7XG4gICAgICAgICAgICBjb25zdCBwYXRoID0gYCR7X1dNX0FQUF9QUk9KRUNULmNkblVybH1sb2NhbGVzL21vbWVudC8ke21vbWVudExvY2FsZX0uanNgO1xuICAgICAgICAgICAgbG9hZFNjcmlwdHMoW3BhdGhdLCB0cnVlKS50aGVuKCgpPT57XG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkU2NyaXB0Rm9yTW9tZW50KG1vbWVudExvY2FsZSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICAgIGVsc2V7XG4gICAgICAgICAgICB0aGlzLmxvYWRTY3JpcHRGb3JNb21lbnQobW9tZW50TG9jYWxlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBcbiAgICBwcm90ZWN0ZWQgbG9hZFNjcmlwdEZvck1vbWVudChtb21lbnRMb2NhbGUpe1xuICAgICAgICAgICAgbW9tZW50LmxvY2FsZSh0aGlzLnNlbGVjdGVkTG9jYWxlKTtcbiAgICAgICAgICAgIC8vIEZvciBuZ3ggYm9vdHN0cmFwIGxvY2FsZSwgZ2V0IHRoZSBjb25maWcgZnJvbSBzY3JpcHQgYW5kIGFwcGx5IGxvY2FsZVxuICAgICAgICAgICAgLy8gbW9tZW50LmxvY2FsZURhdGEobW9tZW50TG9jYWxlKSB3aWxsIHJldHVybiBtb21lbnQgbG9jYWxlIGluc3RhbmNlLiBfY29uZmlnIGluc2lkZSB3aWxsIGhhdmUgYWN0dWFsIGNvbmZpZ1xuICAgICAgICAgICAgbGV0IF9jb25maWc6IGFueSA9IG1vbWVudC5sb2NhbGVEYXRhKG1vbWVudExvY2FsZSk7XG4gICAgICAgICAgICBfY29uZmlnID0gX2NvbmZpZyAmJiBfY29uZmlnLl9jb25maWc7XG4gICAgICAgICAgICBkZWZpbmVMb2NhbGUodGhpcy5zZWxlY3RlZExvY2FsZSwgX2NvbmZpZyk7XG4gICAgICAgICAgICB0aGlzLmJzTG9jYWxlU2VydmljZS51c2UodGhpcy5nZXRTZWxlY3RlZExvY2FsZSgpIHx8IHRoaXMuZGVmYXVsdFN1cHBvcnRlZExvY2FsZSk7XG4gICAgICAgICAgICB0aGlzLmJ1bmRsZUxvYWRlZC5tb21lbnQgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5ub3RpZnlMb2NhbGVDaGFuZ2VkKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGxvYWRBbmd1bGFyTG9jYWxlQnVuZGxlKGFuZ0xvY2FsZSkge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4ocmVzb2x2ZSA9PiB7XG4gICAgICAgICAgICBjb25zdCBfY2RuVXJsID0gX1dNX0FQUF9QUk9KRUNULmNkblVybCB8fCBfV01fQVBQX1BST0pFQ1QubmdEZXN0O1xuICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRMb2NhbGUgPT09IHRoaXMuZGVmYXVsdFN1cHBvcnRlZExvY2FsZSkge1xuICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBwYXRoID0gX2NkblVybCArIGBsb2NhbGVzL2FuZ3VsYXIvZ2xvYmFsLyR7YW5nTG9jYWxlfS5qc2A7XG5cbiAgICAgICAgICAgIGxvYWRTY3JpcHRzKFtwYXRoXSwgdHJ1ZSkudGhlbigoKT0+e1xuICAgICAgICAgICAgICAgIHRoaXMuX2lzQW5ndWxhckxvY2FsZUxvYWRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgfSwgcmVzb2x2ZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBsb2FkTW9tZW50VGltZVpvbmVCdW5kbGUobG9jYWxlLCBjb21wSW5zdGFuY2U/KSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPihyZXNvbHZlID0+IHtcbiAgICAgICAgICAgIGNvbnN0IF9jZG5VcmwgPSBfV01fQVBQX1BST0pFQ1QuY2RuVXJsIHx8IF9XTV9BUFBfUFJPSkVDVC5uZ0Rlc3Q7XG4gICAgICAgICAgICB3aW5kb3dbJ21vbWVudCddID0gbW9tZW50OyAvL21vbWVudC10aW1lem9uZS13aXRoLWRhdGEuanMgbmVlZCBtb21lbnQgYXMgcmVxdWlyZSgnbW9tZW50JykgdG8gYmUgYXZhaWxhYmxlIGluIHdpbmRvd1xuICAgICAgICAgICAgY29uc3QgcGF0aCA9IF9jZG5VcmwgKyBgbG9jYWxlcy9tb21lbnQtdGltZXpvbmUvbW9tZW50LXRpbWV6b25lLXdpdGgtZGF0YS5qc2A7XG4gICAgICAgICAgICBsb2FkU2NyaXB0cyhbcGF0aF0sIHRydWUpLnRoZW4oKCk9PntcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBJZiBsb2NhbGUgaXMgcHJvdmlkZWQgaW4gdGhlIGZvcm0gb2Ygb2Zmc2V0IGFuZCBub3QgdGltZXpvbmUgbmFtZSwgZGVkdWNlIHRoZSBuYW1lLlxuICAgICAgICAgICAgICAgICAqIElmIGxvY2FsZSBpcyBwcm92aWRlZCBhcyBHTVQrOSwgbmFtZSB3aWxsIGJlIGRlZHVjZWQgYXMgQXNpYS9Ub2t5b1xuICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgbGV0IGxvY2FsZU9iaiA9IGxvY2FsZTtcbiAgICAgICAgICAgICAgICBsb2NhbGUgPSBsb2NhbGVPYmpbJ3RpbWV6b25lJ107XG4gICAgICAgICAgICAgICAgY29uc3QgbG9jYWxlSW5kZXggPSBsb2NhbGUuaW5kZXhPZignKycpO1xuICAgICAgICAgICAgICAgIGlmIChsb2NhbGVJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChsb2NhbGVJbmRleCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsZSA9IGxvY2FsZS5zdWJzdHIobG9jYWxlSW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGxvY2FsZU9ialsndGltZXpvbmUnXSA9IGZpbmQoKG1vbWVudCBhcyBhbnkpLnR6Lm5hbWVzKCksICh0aW1lem9uZU5hbWUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBsb2NhbGUgPT09IChtb21lbnQgYXMgYW55KS50eih0aW1lem9uZU5hbWUpLmZvcm1hdCgnWicpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKG1vbWVudCBhcyBhbnkpLnR6LnNldERlZmF1bHQobG9jYWxlKTtcbiAgICAgICAgICAgICAgICBjb25zdCBsb2NhbGVEYXRhID0gIGNvbXBJbnN0YW5jZSAmJiBjb21wSW5zdGFuY2UuZm9ybWF0c0J5TG9jYWxlID8gY29tcEluc3RhbmNlLmZvcm1hdHNCeUxvY2FsZSA6IHRoaXMuZm9ybWF0c0J5TG9jYWxlO1xuICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24obG9jYWxlRGF0YSwgbG9jYWxlT2JqKTtcbiAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICB9LCByZXNvbHZlKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGxvYWRMb2NhbGVCdW5kbGVzKGxpYkxvY2FsZSkge1xuICAgICAgICBpZiAobGliTG9jYWxlLm1vbWVudCkge1xuICAgICAgICAgICAgdGhpcy5sb2FkTW9tZW50TG9jYWxlQnVuZGxlKGxpYkxvY2FsZS5tb21lbnQpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWRMb2NhbGUgPT09IHRoaXMuZGVmYXVsdFN1cHBvcnRlZExvY2FsZSkge1xuICAgICAgICAgICAgdGhpcy5ic0xvY2FsZVNlcnZpY2UudXNlKHRoaXMuZ2V0U2VsZWN0ZWRMb2NhbGUoKSB8fCB0aGlzLmRlZmF1bHRTdXBwb3J0ZWRMb2NhbGUpO1xuICAgICAgICAgICAgdGhpcy5idW5kbGVMb2FkZWQubW9tZW50ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobGliTG9jYWxlLmZ1bGxDYWxlbmRhciAmJiB3aW5kb3dbJ0Z1bGxDYWxlbmRhciddKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5idW5kbGVMb2FkZWQuZnVsbENhbGVuZGFyID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLm5vdGlmeUxvY2FsZUNoYW5nZWQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuYnVuZGxlTG9hZGVkLmZ1bGxDYWxlbmRhciA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxpYkxvY2FsZS5hbmd1bGFyKSB7XG4gICAgICAgICAgICB0aGlzLmxvYWRBcHBMb2NhbGVCdW5kbGUoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5sb2FkQW5ndWxhckxvY2FsZUJ1bmRsZShsaWJMb2NhbGUuYW5ndWxhcik7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFRpbWV6b25lKGxvY2FsZSwgY29tcEluc3RhbmNlPykge1xuICAgICAgICB0aGlzLmxvYWRNb21lbnRUaW1lWm9uZUJ1bmRsZShsb2NhbGUsIGNvbXBJbnN0YW5jZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFRpbWV6b25lKGNvbXBJbnN0YW5jZT8pIHtcbiAgICAgICAgY29uc3QgcGFnZUNvbmZpZyA9IGdldCh0aGlzLmFwcCwgJ2FjdGl2ZVBhZ2UuZm9ybWF0c0J5TG9jYWxlLnRpbWV6b25lJyk7XG4gICAgICAgIGNvbnN0IGNvbXBDb25maWcgPSBnZXQoY29tcEluc3RhbmNlLCAnZm9ybWF0c0J5TG9jYWxlLnRpbWV6b25lJyk7XG4gICAgICAgIGlmIChjb21wQ29uZmlnKSB7XG4gICAgICAgICAgICByZXR1cm4gY29tcENvbmZpZztcbiAgICAgICAgfSBlbHNlIGlmIChwYWdlQ29uZmlnKSB7XG4gICAgICAgICAgICByZXR1cm4gcGFnZUNvbmZpZztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZvcm1hdHNCeUxvY2FsZVsndGltZXpvbmUnXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXRGb3JtYXRzQnlMb2NhbGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1hdHNCeUxvY2FsZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0U2VsZWN0ZWRMb2NhbGUobG9jYWxlKSB7XG5cbiAgICAgICAgLy8gY2hlY2sgaWYgdGhlIGV2ZW50IGlzIHByb3BhZ2F0ZWQgZnJvbSB0aGUgc2VsZWN0IG9yIGFueSBzdWNoIHdpZGdldFxuICAgICAgICBpZiAoaXNPYmplY3QobG9jYWxlKSkge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgbG9jYWxlID0gbG9jYWxlLmRhdGF2YWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGxpYkxvY2FsZSA9IGdldFdtUHJvamVjdFByb3BlcnRpZXMoKS5zdXBwb3J0ZWRMYW5ndWFnZXNbbG9jYWxlXTtcbiAgICAgICAgY29uc3Qgc3VwcG9ydGVkTG9jYWxlID0gT2JqZWN0LmtleXMoZ2V0V21Qcm9qZWN0UHJvcGVydGllcygpLnN1cHBvcnRlZExhbmd1YWdlcyk7XG5cbiAgICAgICAgaWYgKCFpbmNsdWRlcyhzdXBwb3J0ZWRMb2NhbGUsIGxvY2FsZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghbG9jYWxlIHx8IGxvY2FsZSA9PT0gdGhpcy5zZWxlY3RlZExvY2FsZSkge1xuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgc2V0U2Vzc2lvblN0b3JhZ2VJdGVtKCdzZWxlY3RlZExvY2FsZScsIGxvY2FsZSk7XG5cbiAgICAgICAgdGhpcy5zZWxlY3RlZExvY2FsZSA9IGxvY2FsZTtcblxuICAgICAgICAvLyByZXNldCB0aGUgbG9jYWxlRGF0YSBvYmplY3RcbiAgICAgICAgdGhpcy5pbml0KCk7XG5cbiAgICAgICAgdGhpcy5idW5kbGVMb2FkZWQubW9tZW50ID0gZmFsc2U7XG4gICAgICAgIHRoaXMuYnVuZGxlTG9hZGVkLmZ1bGxDYWxlbmRhciA9IGZhbHNlO1xuICAgICAgICB0aGlzLmJ1bmRsZUxvYWRlZC5hcHAgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5idW5kbGVMb2FkZWQuYW5ndWxhciA9IGZhbHNlO1xuICAgICAgICB0aGlzLmJ1bmRsZUxvYWRlZC5saWJMb2NhbGUgPSBsaWJMb2NhbGU7XG5cbiAgICAgICAgLy8gbG9hZCB0aGUgbG9jYWxlIGJ1bmRsZXMgb2YgdGhlIHNlbGVjdGVkIGxvY2FsZVxuICAgICAgICByZXR1cm4gdGhpcy5sb2FkTG9jYWxlQnVuZGxlcyhsaWJMb2NhbGUpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVMb2NhbGVEaXJlY3Rpb24oKTtcbiAgICAgICAgICAgIHRoaXMuYnVuZGxlTG9hZGVkLmFuZ3VsYXIgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5ub3RpZnlMb2NhbGVDaGFuZ2VkKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVkdWNlQXBwTG9jYWxlKCkge1xuICAgICAgICAvLyBjb21wdXRhdGlvbiB0byBmaW5kIGFwcCBkZWZhdWx0IGxvY2FsZVxuICAgICAgICBjb25zdCBfYWNjZXB0TGFuZyA9IHRoaXMuZ2V0QWNjZXB0ZWRMYW5ndWFnZXMoKTtcbiAgICAgICAgY29uc3QgX2RlZmF1bHRMYW5ndWFnZSA9IGdldFdtUHJvamVjdFByb3BlcnRpZXMoKS5kZWZhdWx0TGFuZ3VhZ2U7XG4gICAgICAgIF9hY2NlcHRMYW5nLnB1c2goX2RlZmF1bHRMYW5ndWFnZSk7XG5cbiAgICAgICAgLy8gY2hlY2tzIHdoZXRoZXIgdXNlciBwcmVmZXJlbmNlIGlzIGJhc2VkIG9uIGJyb3dzZXIgc2V0IGxhbmd1YWdlcyBvciBkZWZhdWx0IGxhbmd1YWdlIHNldCBpbiBwcm9qZWN0XG4gICAgICAgIGxldCBwcmVmZXJCcm93c2VyTGFuZyA9IGdldFdtUHJvamVjdFByb3BlcnRpZXMoKS5wcmVmZXJCcm93c2VyTGFuZztcbiAgICAgICAgaWYgKCFwcmVmZXJCcm93c2VyTGFuZykgeyAvLyB3aGVuIHByZWZlckJyb3dzZXJMYW5nIGlzIG5vdCBkZWZpbmVkLCBzZXQgdG8gaXRzIGRlZmF1bHQgdmFsdWVcbiAgICAgICAgICAgIHByZWZlckJyb3dzZXJMYW5nICA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7IC8vIGNvbnZlcnQgc3RyaW5naWZpZWQgYm9vbGVhbiB2YWx1ZXMgcmVjaWV2ZWQgZnJvbSBCRSB0byBib29sZWFuc1xuICAgICAgICAgICAgcHJlZmVyQnJvd3Nlckxhbmc9IChwcmVmZXJCcm93c2VyTGFuZyA9PT0gJ3RydWUnIHx8IHByZWZlckJyb3dzZXJMYW5nID09PSB0cnVlKSA/IHRydWUgOiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBfc3VwcG9ydGVkTGFuZyA9IE9iamVjdC5rZXlzKGdldFdtUHJvamVjdFByb3BlcnRpZXMoKS5zdXBwb3J0ZWRMYW5ndWFnZXMpIHx8IFt0aGlzLmRlZmF1bHRTdXBwb3J0ZWRMb2NhbGVdO1xuXG4gICAgICAgIC8vIHdoZW4gcHJlZmVyZW5jZSBpcyBnaXZlbiB0byBicm93c2VyIHNldCBsYW5ndWFnZXMsIGRvIG5vdCBwb3B1bGF0ZSBfc2VsZWN0ZWREZWZhdWx0TGFuZyB2YXJpYWJsZVxuICAgICAgICBsZXQgX3NlbGVjdGVkRGVmYXVsdExhbmcgPSBwcmVmZXJCcm93c2VyTGFuZyA/IHVuZGVmaW5lZCA6IF9kZWZhdWx0TGFuZ3VhZ2U7XG5cbiAgICAgICAgbGV0IF9hcHBTdXBwb3J0ZWRMYW5nO1xuICAgICAgICBcbiAgICAgICAgLy8gY2hlY2sgZm9yIHRoZSBzZXNzaW9uIHN0b3JhZ2UgdG8gbG9hZCBhbnkgcHJlLXJlcXVlc3RlZCBsb2NhbGVcbiAgICAgICAgY29uc3QgX2RlZmF1bHRMYW5nID0gZ2V0U2Vzc2lvblN0b3JhZ2VJdGVtKCdzZWxlY3RlZExvY2FsZScpIHx8IF9zZWxlY3RlZERlZmF1bHRMYW5nIHx8IF9hcHBTdXBwb3J0ZWRMYW5nIHx8IGludGVyc2VjdGlvbihfYWNjZXB0TGFuZywgX3N1cHBvcnRlZExhbmcpWzBdIHx8IHRoaXMuZGVmYXVsdFN1cHBvcnRlZExvY2FsZTtcbiAgICAgICAgLy8gaWYgdGhlIHN1cHBvcnRlZExvY2FsZSBpcyBub3QgYXZhaWxhYmxlIHNldCBpdCB0byBkZWZhdWx0TG9jYWxlXG4gICAgICAgIF9zdXBwb3J0ZWRMYW5nID0gX3N1cHBvcnRlZExhbmcgfHwgW19kZWZhdWx0TGFuZ107XG5cbiAgICAgICAgY29uc3QgZGVmYXVsdExhbmd1YWdlID0gX2RlZmF1bHRMYW5nIHx8IF9zdXBwb3J0ZWRMYW5nWzBdO1xuICAgICAgICByZXR1cm4gZGVmYXVsdExhbmd1YWdlO1xuICAgIH1cblxuICAgIHB1YmxpYyBsb2FkRGVmYXVsdExvY2FsZSgpIHtcbiAgICAgICAgRGF0ZS5wcm90b3R5cGVbXCJtb250aFwiXSA9IERhdGUucHJvdG90eXBlLmdldE1vbnRoO1xuICAgICAgICBjb25zdCBsb2NhbGUgPSB0aGlzLmRlZHVjZUFwcExvY2FsZSgpO1xuICAgICAgICByZXR1cm4gdGhpcy5zZXRTZWxlY3RlZExvY2FsZShsb2NhbGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRMb2NhbGl6ZWRNZXNzYWdlKG1lc3NhZ2UsIC4uLmFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIHJlcGxhY2UodGhpcy5hcHBMb2NhbGVbbWVzc2FnZV0sIGFyZ3MpO1xuICAgIH1cblxuICAgIC8vIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgYWNjZXB0ZWQgbGFuZ3VhZ2VzIGxpc3RcbiAgICBwdWJsaWMgZ2V0QWNjZXB0ZWRMYW5ndWFnZXMoKSB7XG4gICAgICAgIGxldCBsYW5ndWFnZXM7XG4gICAgICAgXG4gICAgICAgIGxhbmd1YWdlcyA9IGRlY29kZVVSSUNvbXBvbmVudChnZXRXbVByb2plY3RQcm9wZXJ0aWVzKCkucHJlZmVycmVkTGFuZ3VhZ2UgfHwgJycpO1xuICAgICAgICAvKipcbiAgICAgICAgICogQWNjZXB0LUxhbmd1YWdlIEhlYWRlciB3aWxsIGNvbnRhaW4gc2V0IG9mIHN1cHBvcnRlZCBsb2NhbGUsIHNvIHRyeSBzcGxpdHRpbmcgdGhlIHN0cmluZyB0byBwcm9wZXIgbG9jYWxlIHNldFxuICAgICAgICAgKiBFeDogZW4sZW4tVVM7cT0wLjksZGU7cT0wLjYsYXI7cT0wLjIsaGlcbiAgICAgICAgICpcbiAgICAgICAgICogU3BsaXQgdGhlIGFib3ZlIGludG8gW2VuLGVuLXVzLGRlLGFyLGhpXVxuICAgICAgICAgKiBAdHlwZSB7QXJyYXl9XG4gICAgICAgICAqL1xuICAgICAgICBsYW5ndWFnZXMgPSBsYW5ndWFnZXMuc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24obG9jYWxlKSB7XG4gICAgICAgICAgICByZXR1cm4gbG9jYWxlLnNwbGl0KCc7JylbMF07XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gbWFwKGxhbmd1YWdlcywgdG9Mb3dlcik7XG4gICAgfVxuXG4gICAgcHVibGljIGluaXRDYWxlbmRhckxvY2FsZSgpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzQW5ndWxhckxvY2FsZUxvYWRlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzQW5ndWxhckxvY2FsZUxvYWRlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0d2lkZ2V0TG9jYWxlKGxvY2FsZSkge1xuICAgICAgICB0aGlzLmZvcm1hdHNCeUxvY2FsZVsnbnVtYmVyJ10gPSBsb2NhbGVbJ251bWJlciddO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXR3aWRnZXRMb2NhbGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1hdHNCeUxvY2FsZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG5vdGlmeUxvY2FsZUNoYW5nZWQoKSB7XG4gICAgICAgIGlmKHRoaXMuYnVuZGxlTG9hZGVkLm1vbWVudCAmJiB0aGlzLmJ1bmRsZUxvYWRlZC5mdWxsQ2FsZW5kYXIgJiYgdGhpcy5idW5kbGVMb2FkZWQuYW5ndWxhciAmJiB0aGlzLmJ1bmRsZUxvYWRlZC5hcHApIHtcbiAgICAgICAgICAgIHRoaXMuYXBwLm5vdGlmeSggICdsb2NhbGUtY2hhbmdlZCcsIHRoaXMuYnVuZGxlTG9hZGVkLmxpYkxvY2FsZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbn1cbiJdfQ==
|
|
@@ -3150,6 +3150,7 @@ class I18nServiceImpl extends AbstractI18nService {
|
|
|
3150
3150
|
loadMomentTimeZoneBundle(locale, compInstance) {
|
|
3151
3151
|
return new Promise(resolve => {
|
|
3152
3152
|
const _cdnUrl = _WM_APP_PROJECT.cdnUrl || _WM_APP_PROJECT.ngDest;
|
|
3153
|
+
window['moment'] = moment; //moment-timezone-with-data.js need moment as require('moment') to be available in window
|
|
3153
3154
|
const path = _cdnUrl + `locales/moment-timezone/moment-timezone-with-data.js`;
|
|
3154
3155
|
loadScripts([path], true).then(() => {
|
|
3155
3156
|
/**
|