@snabcentr/client-core 2.59.3 → 2.60.1
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/catalog/dto/sc-category.d.ts +0 -6
- package/catalog/internal/sc-i-category-dto.d.ts +2 -2
- package/esm2022/catalog/dto/sc-category.mjs +2 -2
- package/esm2022/catalog/internal/sc-i-category-dto.mjs +1 -1
- package/esm2022/catalog/services/sc-catalog.service.mjs +7 -12
- package/esm2022/pagination/services/sc-pagination.service.mjs +3 -3
- package/fesm2022/snabcentr-client-core.mjs +9 -14
- package/fesm2022/snabcentr-client-core.mjs.map +1 -1
- package/package.json +1 -1
- package/release_notes.tmp +1 -18
|
@@ -34,14 +34,8 @@ export declare class ScCategory extends ScSeoResource implements ScICategoryDTO
|
|
|
34
34
|
* Список свойств. Число свойств в объекте не ограничено.
|
|
35
35
|
*/
|
|
36
36
|
properties?: ScIProperties;
|
|
37
|
-
/**
|
|
38
|
-
* Целочисленный идентификатор родительской категории.
|
|
39
|
-
*/
|
|
40
|
-
parentId?: number | string;
|
|
41
37
|
/**
|
|
42
38
|
* Объект родительской категории.
|
|
43
|
-
*
|
|
44
|
-
* @deprecated
|
|
45
39
|
*/
|
|
46
40
|
parentCategory?: ScCategory;
|
|
47
41
|
/**
|
|
@@ -30,9 +30,9 @@ export interface ScICategoryDTO extends ScISeoResourceDTO {
|
|
|
30
30
|
*/
|
|
31
31
|
properties?: ScIProperties;
|
|
32
32
|
/**
|
|
33
|
-
*
|
|
33
|
+
* Объект родительской категории.
|
|
34
34
|
*/
|
|
35
|
-
|
|
35
|
+
parentCategory?: ScICategoryDTO;
|
|
36
36
|
/**
|
|
37
37
|
* Список дочерних категорий.
|
|
38
38
|
*/
|
|
@@ -42,7 +42,7 @@ export class ScCategory extends ScSeoResource {
|
|
|
42
42
|
this.isPrimary = categoryDTO.isPrimary;
|
|
43
43
|
this.isFavoriteValue = Boolean(categoryDTO.isFavorite);
|
|
44
44
|
this.properties = categoryDTO.properties;
|
|
45
|
-
this.
|
|
45
|
+
this.parentCategory = categoryDTO.parentCategory && new ScCategory(categoryDTO.parentCategory);
|
|
46
46
|
this.hasChild = categoryDTO.hasChild;
|
|
47
47
|
this.categories = categoryDTO.categories?.map((item) => new ScCategory(item));
|
|
48
48
|
this.image = categoryDTO.properties?.image;
|
|
@@ -195,4 +195,4 @@ export class ScCategory extends ScSeoResource {
|
|
|
195
195
|
this.isFavoriteValue = isFavorite;
|
|
196
196
|
}
|
|
197
197
|
}
|
|
198
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtY2F0ZWdvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NhdGFsb2cvZHRvL3NjLWNhdGVnb3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVsRDs7R0FFRztBQUNILE1BQU0sT0FBTyxVQUFXLFNBQVEsYUFBYTtJQUN6Qzs7OztPQUlHO0lBQ0gsSUFBVyxVQUFVO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUNoQyxDQUFDO0lBaUdEOzs7O09BSUc7SUFDSCxZQUFtQixXQUEyQjtRQUMxQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUEvQ3ZCOzs7O1dBSUc7UUFDSSxjQUFTLEdBQVksS0FBSyxDQUFDO1FBaUJsQzs7OztXQUlHO1FBQ0ksV0FBTSxHQUFpQyxHQUFHLENBQUM7UUFFbEQ7Ozs7V0FJRztRQUNJLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFlL0IsSUFBSSxDQUFDLEVBQUUsR0FBRyxXQUFXLENBQUMsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxJQUFJLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUMsSUFBSSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUM7UUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxlQUFlLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsVUFBVSxHQUFHLFdBQVcsQ0FBQyxVQUFVLENBQUM7UUFDekMsSUFBSSxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUMsTUFBTSxJQUFJLFNBQVMsQ0FBQztRQUNoRCxJQUFJLENBQUMsUUFBUSxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUM7UUFDckMsSUFBSSxDQUFDLFVBQVUsR0FB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YmxlIG5vLXVzZS1iZWZvcmUtZGVmaW5lICovXG5pbXBvcnQgeyBTY0lDb25maWd1cmF0b3JTZXR0aW5nc0Jhc2UgfSBmcm9tICcuLi8uLi9jb25maWd1cmF0b3IvZHRvL3NjLWktY29uZmlndXJhdG9yLXNldHRpbmdzLWJhc2UnO1xuaW1wb3J0IHsgU2NJQ2F0ZWdvcnlEVE8gfSBmcm9tICcuLi9pbnRlcm5hbC9zYy1pLWNhdGVnb3J5LWR0byc7XG5pbXBvcnQgeyBTY0lGaWx0ZXJUcmVlQ2F0ZWdvcnkgfSBmcm9tICcuLi9pbnRlcm5hbC9zYy1pLWZpbHRlci10cmVlLWNhdGVnb3J5JztcbmltcG9ydCB7IFNjSVByb3BlcnRpZXMgfSBmcm9tICcuL3NjLWktcHJvcGVydGllcyc7XG5pbXBvcnQgeyBTY1Byb2R1Y3QgfSBmcm9tICcuL3NjLXByb2R1Y3QnO1xuaW1wb3J0IHsgU2NTZW9SZXNvdXJjZSB9IGZyb20gJy4vc2Mtc2VvLXJlc291cmNlJztcblxuLyoqXG4gKiDQnNC+0LTQtdC70Ywg0LTQsNC90L3Ri9GFINC60LDRgtC10LPQvtGA0LjQuCDRgtC+0LLQsNGA0L7Qsi5cbiAqL1xuZXhwb3J0IGNsYXNzIFNjQ2F0ZWdvcnkgZXh0ZW5kcyBTY1Nlb1Jlc291cmNlIGltcGxlbWVudHMgU2NJQ2F0ZWdvcnlEVE8ge1xuICAgIC8qKlxuICAgICAqINCf0YDQuNC30L3QsNC6LCDRh9GC0L4g0LrQsNGC0LXQs9C+0YDQuNGPINGP0LLQu9GP0LXRgtGB0Y8g0LjQt9Cx0YDQsNC90L3QvtC5INC00LvRjyDQutC70LjQtdC90YLQsC5cbiAgICAgKlxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICovXG4gICAgcHVibGljIGdldCBpc0Zhdm9yaXRlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0Zhdm9yaXRlVmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0LrQsNGC0LXQs9C+0YDQuNC4LlxuICAgICAqL1xuICAgIHB1YmxpYyBpZDogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICog0KHQuNC80LLQvtC70YzQvdC+0LUg0L7QsdC+0LfQvdCw0YfQtdC90LjQtSAoc2x1Zykg0LrQsNGC0LXQs9C+0YDQuNC4LlxuICAgICAqL1xuICAgIHB1YmxpYyBzbHVnOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDQndCw0LfQstCw0L3QuNC1INC60LDRgtC10LPQvtGA0LjQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgbmFtZTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICog0J/RgNC40LfQvdCw0Log0YLQvtCz0L4sINGH0YLQviDQutCw0YLQtdCz0L7RgNC40Y8g0Y/QstC70Y/QtdGC0YHRjyDQvtGB0L3QvtCy0L3QvtC5INC00LvRjyDQvdC10LrQvtGC0L7RgNC+0LPQviDRgtC+0LLQsNGA0LAg0LjQu9C4INGD0YHQu9GD0LPQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgaXNQcmltYXJ5PzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqINCh0L/QuNGB0L7QuiDRgdCy0L7QudGB0YLQsi4g0KfQuNGB0LvQviDRgdCy0L7QudGB0YLQsiDQsiDQvtCx0YrQtdC60YLQtSDQvdC1INC+0LPRgNCw0L3QuNGH0LXQvdC+LlxuICAgICAqL1xuICAgIHB1YmxpYyBwcm9wZXJ0aWVzPzogU2NJUHJvcGVydGllcztcblxuICAgIC8qKlxuICAgICAqINCm0LXQu9C+0YfQuNGB0LvQtdC90L3Ri9C5INC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINGA0L7QtNC40YLQtdC70YzRgdC60L7QuSDQutCw0YLQtdCz0L7RgNC40LguXG4gICAgICovXG4gICAgcHVibGljIHBhcmVudElkPzogbnVtYmVyIHwgc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICog0J7QsdGK0LXQutGCINGA0L7QtNC40YLQtdC70YzRgdC60L7QuSDQutCw0YLQtdCz0L7RgNC40LguXG4gICAgICpcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqL1xuICAgIHB1YmxpYyBwYXJlbnRDYXRlZ29yeT86IFNjQ2F0ZWdvcnk7XG5cbiAgICAvKipcbiAgICAgKiDQodC/0LjRgdC+0Log0LTQvtGH0LXRgNC90LjRhSDQutCw0YLQtdCz0L7RgNC40LkuXG4gICAgICovXG4gICAgcHVibGljIGNhdGVnb3JpZXM/OiBTY0NhdGVnb3J5W107XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiDQvdCw0LvQuNGH0LjRjyDQtNC+0YfQtdGA0L3QuNGFINC60LDRgtC10LPQvtGA0LjQuS5cbiAgICAgKi9cbiAgICBwdWJsaWMgaGFzQ2hpbGQ/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICog0JTQsNGC0LAg0LfQsNCz0YDRg9C30LrQuCDQutCw0YLQtdCz0L7RgNC40LguXG4gICAgICpcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqL1xuICAgIHB1YmxpYyBsb2FkZWRBdD86IERhdGU7XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiwg0YfRgtC+INC40L3RhNC+0YDQvNCw0YbQuNGPINC+INC60LDRgtC10LPQvtGA0LjQuCDQt9Cw0LPRgNGD0LbQsNC10YLRgdGPLlxuICAgICAqXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDQodC/0LjRgdC+0Log0YLQvtCy0LDRgNC+0LIg0LIg0LrQsNGC0LXQs9C+0YDQuNC4LlxuICAgICAqL1xuICAgIHB1YmxpYyBwcm9kdWN0cz86IFNjUHJvZHVjdFtdO1xuXG4gICAgLyoqXG4gICAgICog0J3QsNGB0YLRgNC+0LnQutC4INC60L7QvdGE0LjQs9GD0YDQsNGC0L7RgNCwLlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25maWd1cmF0b3JTZXR0aW5ncz86IFNjSUNvbmZpZ3VyYXRvclNldHRpbmdzQmFzZTtcblxuICAgIC8qKlxuICAgICAqINCf0YDQuNC30L3QsNC6LCDRh9GC0L4g0LIg0LrQsNGC0LXQs9C+0YDQuNC4INC90LXQvtCx0YXQvtC00LjQvNC+INC+0YLQvtCx0YDQsNC30LjRgtGMINC60L7QvdGE0LjQs9GD0YDQsNGC0L7RgC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2hvd0NvbmZpZ3VyYXRvcj86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiDQpNC40LvRjNGC0YDRiyDQutCw0YLQtdCz0L7RgNC40Lgg0LTRgNC10LLQvtCy0LjQtNC90L7Qs9C+INC/0YDQtdC00YHRgtCw0LLQu9C10L3QuNGPINC60LDRgtCw0LvQvtCz0LAuXG4gICAgICpcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqL1xuICAgIHB1YmxpYyBmaWx0ZXI/OiBTY0lGaWx0ZXJUcmVlQ2F0ZWdvcnkgfCAnKicgPSAnKic7XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiwg0YfRgtC+INC60LDRgtC10LPQvtGA0LjRjyDRj9Cy0LvRj9C10YLRgdGPINGB0LrQtdC70LXRgtC+0L3QvtC8LlxuICAgICAqXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgaXNTa2VsZXRvbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICog0J/RgNC40LfQvdCw0LosINGH0YLQviDQutCw0YLQtdCz0L7RgNC40Y8g0Y/QstC70Y/QtdGC0YHRjyDQuNC30LHRgNCw0L3QvdC+0Lkg0LTQu9GPINC60LvQuNC10L3RgtCwLlxuICAgICAqL1xuICAgIHByaXZhdGUgaXNGYXZvcml0ZVZhbHVlOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICog0JjQvdC40YbQuNCw0LvQuNC30LjRgNGD0LXRgiDRjdC60LfQtdC80L/Qu9GP0YAg0LrQu9Cw0YHRgdCwIHtAbGluayBTY0NhdGVnb3J5fS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjYXRlZ29yeURUTyBEVE8g0YEg0LTQsNC90L3Ri9C80Lgg0L4g0LrQsNGC0LXQs9C+0YDQuNC4INGC0L7QstCw0YDQvtCyLlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihjYXRlZ29yeURUTzogU2NJQ2F0ZWdvcnlEVE8pIHtcbiAgICAgICAgc3VwZXIoY2F0ZWdvcnlEVE8pO1xuXG4gICAgICAgIHRoaXMuaWQgPSBjYXRlZ29yeURUTy5pZDtcbiAgICAgICAgdGhpcy5zbHVnID0gY2F0ZWdvcnlEVE8uc2x1ZztcbiAgICAgICAgdGhpcy5uYW1lID0gY2F0ZWdvcnlEVE8ubmFtZTtcbiAgICAgICAgdGhpcy5pc1ByaW1hcnkgPSBjYXRlZ29yeURUTy5pc1ByaW1hcnk7XG4gICAgICAgIHRoaXMuaXNGYXZvcml0ZVZhbHVlID0gQm9vbGVhbihjYXRlZ29yeURUTy5pc0Zhdm9yaXRlKTtcbiAgICAgICAgdGhpcy5wcm9wZXJ0aWVzID0gY2F0ZWdvcnlEVE8ucHJvcGVydGllcztcbiAgICAgICAgdGhpcy5wYXJlbnRJZCA9IGNhdGVnb3J5RFRPLnBhcmVudCA/PyB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuaGFzQ2hpbGQgPSBjYXRlZ29yeURUTy5oYXNDaGlsZDtcbiAgICAgICAgdGhpcy5jYXRlZ29yaWVzID0gY2F0ZWdvcnlEVE8uY2F0ZWdvcmllcz8ubWFwKChpdGVtKSA9PiBuZXcgU2NDYXRlZ29yeShpdGVtKSk7XG4gICAgICAgIHRoaXMuaW1hZ2UgPSBjYXRlZ29yeURUTy5wcm9wZXJ0aWVzPy5pbWFnZTtcblxuICAgICAgICBpZiAodGhpcy5wcm9wZXJ0aWVzPy5lZGl0b3IpIHtcbiAgICAgICAgICAgIHRoaXMuc2hvd0NvbmZpZ3VyYXRvciA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDRgdGA0LXQtNC90Y7RjiDRgdGC0L7QuNC80L7RgdGC0Ywg0LwyLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgbTJQcmljZSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm9wZXJ0aWVzPy5tMlByaWNlICYmIGAke3RoaXMucHJvcGVydGllcy5tMlByaWNlfSDigr0v0Lw8c3VwPjI8L3N1cD5gO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCf0YDQuNC30L3QsNC6LCDRh9GC0L4g0LIg0LrQsNGC0LXQs9C+0YDQuNC4INC10YHRgtGMINGC0L7QstCw0YDRiyDQtNC70Y8g0L7RgtC+0LHRgNCw0LbQtdC90LjRjy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGlzTm90SGlkZGVuUHJvZHVjdHMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb2R1Y3RzPy5maW5kKChwcm9kdWN0KSA9PiAhcHJvZHVjdC5pc0hpZGRlbkZpbHRlcikgIT09IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiwg0YfRgtC+INCyINC60LDRgtC10LPQvtGA0LjQuCDQuNC70Lgg0LLQu9C+0LbQtdC90L3Ri9GFINC/0L7QtNC60LDRgtC10LPQvtGA0LjRj9GFINC10YHRgtGMINGC0L7QstCw0YDRiyDQtNC70Y8g0L7RgtC+0LHRgNCw0LbQtdC90LjRjy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGlzTm90SGlkZGVuUHJvZHVjdHNJbmNsdWRlU3ViY2F0ZWdvcmllcygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMucHJvZHVjdHM/LmZpbmQoKHByb2R1Y3QpID0+ICFwcm9kdWN0LmlzSGlkZGVuRmlsdGVyKSAhPT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICAgICB0aGlzLmNhdGVnb3JpZXM/LmZpbmQoKGNhdGVnb3J5KSA9PiBjYXRlZ29yeS5pc05vdEhpZGRlblByb2R1Y3RzSW5jbHVkZVN1YmNhdGVnb3JpZXMpICE9PSB1bmRlZmluZWRcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiwg0YfRgtC+INC60LDRgtC10LPQvtGA0LjRjyDRj9Cy0LvRj9C10YLRgdGPINC40LfQsdGA0LDQvdC90L7QuSDQtNC70Y8g0LrQu9C40LXQvdGC0LAuXG4gICAgICpcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqL1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYWRqYWNlbnQtb3ZlcmxvYWQtc2lnbmF0dXJlcyxncm91cGVkLWFjY2Vzc29yLXBhaXJzLHNvcnQtY2xhc3MtbWVtYmVycy9zb3J0LWNsYXNzLW1lbWJlcnNcbiAgICBwdWJsaWMgc2V0IGlzRmF2b3JpdGUoaXNGYXZvcml0ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmlzRmF2b3JpdGVWYWx1ZSA9IGlzRmF2b3JpdGU7XG5cbiAgICAgICAgdGhpcy5jYXRlZ29yaWVzPy5mb3JFYWNoKChjYXRlZ29yeSkgPT4ge1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgICAgICBjYXRlZ29yeS5pc0Zhdm9yaXRlID0gaXNGYXZvcml0ZTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucHJvZHVjdHNcbiAgICAgICAgICAgID8uZmlsdGVyKChwcm9kdWN0KSA9PiBwcm9kdWN0LnByaW1hcnlDYXRlZ29yeT8uaWQgPT09IHRoaXMuaWQpXG4gICAgICAgICAgICAuZm9yRWFjaCgocHJvZHVjdCkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICAgICAgICAgIHByb2R1Y3QuaXNGYXZvcml0ZSA9IGlzRmF2b3JpdGU7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBpZiAoIWlzRmF2b3JpdGUgJiYgdGhpcy5wYXJlbnRDYXRlZ29yeSkge1xuICAgICAgICAgICAgdGhpcy5zZXRJc0Zhdm9yaXRlRnJvbUNoaWxkKGlzRmF2b3JpdGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JTQvtCx0LDQstC70Y/QtdGCINC40L3RhNC+0YDQvNCw0YbQuNGOINC+INGA0L7QtNC40YLQtdC70LUg0Lgg0LTQvtGH0LXRgNC90LjRhSDRjdC70LXQvNC10L3RgtCw0YUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY2F0ZWdvcnkg0JrQsNGC0LXQs9C+0YDQuNGPINGB0L7QtNC10YDQttCw0YnQsNGPINC40L3RhNC+0YDQvNCw0YbQuNGOINC+INGA0L7QtNC40YLQtdC70LUg0Lgg0LTQvtGH0LXRgNC90LjRhSDRjdC70LXQvNC10L3RgtCw0YUuXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgYWRkQ2F0ZWdvcmllcyhjYXRlZ29yeTogU2NDYXRlZ29yeSk6IHRoaXMge1xuICAgICAgICB0aGlzLmNhdGVnb3JpZXMgPSBjYXRlZ29yeS5jYXRlZ29yaWVzID8/IFtdO1xuICAgICAgICB0aGlzLnByb2R1Y3RzID0gY2F0ZWdvcnkucHJvZHVjdHMgPz8gdGhpcy5wcm9kdWN0cztcbiAgICAgICAgdGhpcy5sb2FkZWRBdCA9IG5ldyBEYXRlKCk7XG4gICAgICAgIHRoaXMuY2F0ZWdvcmllcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICAgICAgICAgIGl0ZW0ucGFyZW50Q2F0ZWdvcnkgPSB0aGlzO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5wcm9kdWN0cz8uZm9yRWFjaCgocHJvZHVjdCkgPT4ge1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgICAgICBwcm9kdWN0LnBhcmVudENhdGVnb3J5ID0gdGhpcztcbiAgICAgICAgICAgIGlmIChwcm9kdWN0LnByaW1hcnlDYXRlZ29yeT8uaWQgPT09IHRoaXMuaWQpIHtcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICAgICAgICAgICAgICBwcm9kdWN0LnByaW1hcnlDYXRlZ29yeSA9IHRoaXM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnNldENoaWxkcmVuQ2F0ZWdvcmllc0ZpbHRlcnMoKTtcbiAgICAgICAgdGhpcy5zZXRQcm9kdWN0RmlsdGVycygpO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCINGE0LjQu9GM0YLRgNGLINC60LDRgtC10LPQvtGA0LjQuCDQtNGA0LXQstC+0LLQuNC00L3QvtCz0L4g0L/RgNC10LTRgdGC0LDQstC70LXQvdC40Y8g0LrQsNGC0LDQu9C+0LPQsC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBmaWx0ZXIg0KTQuNC70YzRgtGA0Ysg0LrQsNGC0LXQs9C+0YDQuNC4INC00YDQtdCy0L7QstC40LTQvdC+0LPQviDQv9GA0LXQtNGB0YLQsNCy0LvQtdC90LjRjyDQutCw0YLQsNC70L7Qs9CwLlxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICovXG4gICAgcHVibGljIHNldEZpbHRlcihmaWx0ZXI6IFNjSUZpbHRlclRyZWVDYXRlZ29yeSB8ICcqJyB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZpbHRlciA9IGZpbHRlcjtcblxuICAgICAgICB0aGlzLnNldENoaWxkcmVuQ2F0ZWdvcmllc0ZpbHRlcnMoKTtcbiAgICAgICAgdGhpcy5zZXRQcm9kdWN0RmlsdGVycygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCINGE0LjQu9GM0YLRgNGLINC60LDRgtC10LPQvtGA0LjQuCDQtNGA0LXQstC+0LLQuNC00L3QvtCz0L4g0L/RgNC10LTRgdGC0LDQstC70LXQvdC40Y8g0LrQsNGC0LDQu9C+0LPQsCDQtNC70Y8g0LTQvtGH0LXRgNC90LjRhSDQutCw0YLQtdCz0L7RgNC40LkuXG4gICAgICpcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRDaGlsZHJlbkNhdGVnb3JpZXNGaWx0ZXJzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNhdGVnb3JpZXM/LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGl0ZW0uc2V0RmlsdGVyKHRoaXMuZmlsdGVyID09PSAnKicgfHwgdGhpcy5maWx0ZXIgPT09IHVuZGVmaW5lZCA/IHRoaXMuZmlsdGVyIDogdGhpcy5maWx0ZXIuY2F0ZWdvcmllcz8uW2l0ZW0uaWRdKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIg0YTQuNC70YzRgtGA0Ysg0LrQsNGC0LXQs9C+0YDQuNC4INC00YDQtdCy0L7QstC40LTQvdC+0LPQviDQv9GA0LXQtNGB0YLQsNCy0LvQtdC90LjRjyDQutCw0YLQsNC70L7Qs9CwINC00LvRjyDRgtC+0LLQsNGA0L7Qsi5cbiAgICAgKlxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICovXG4gICAgcHVibGljIHNldFByb2R1Y3RGaWx0ZXJzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnByb2R1Y3RzPy5mb3JFYWNoKChwcm9kdWN0KSA9PiB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ24sQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1pbmNsdWRlc1xuICAgICAgICAgICAgcHJvZHVjdC5pc0hpZGRlbkZpbHRlciA9ICEodGhpcy5maWx0ZXIgPT09ICcqJyB8fCB0aGlzLmZpbHRlcj8ucHJvZHVjdHM/LmluZGV4T2YocHJvZHVjdC5pZCkgIT09IC0xKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0L/RgNC40LfQvdCw0Log0YLQvtCz0L4sINGH0YLQviDQutCw0YLQtdCz0L7RgNC40Y8g0LfQsNCz0YDRg9C20LXQvdCwINC4INGB0YDQvtC6INC20LjQt9C90Lgg0LTQsNC90L3Ri9GFINC90LUg0LjRgdGC0ZHQui5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjYXRlZ29yeURhdGEg0KHRgNC+0Log0LbQuNC30L3QuCDQuNC90YTQvtGA0LzQsNGG0LjQuCDQviDQutCw0YLQtdCz0L7RgNC40Lgg0LIgbXMuXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgY2FjaGVkRGF0YUlzQWN0dWFsKGNhdGVnb3J5RGF0YTogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRlZEF0ICE9PSB1bmRlZmluZWQgJiYgdGhpcy5sb2FkZWRBdC5nZXRUaW1lKCkgPiBEYXRlLm5vdygpIC0gY2F0ZWdvcnlEYXRhO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCf0LXRgNC10LrQu9GO0YfQsNC10YIg0L/RgNC40LfQvdCw0Log0L7RgtC+0LHRgNCw0LbQtdC90LjRjyDQutC+0L3RhNC40LPRg9GA0LDRgtC+0YDQsC5cbiAgICAgKlxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICovXG4gICAgcHVibGljIHRvZ2dsZVNob3dDb25maWd1cmF0b3IoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2hvd0NvbmZpZ3VyYXRvciA9ICF0aGlzLnNob3dDb25maWd1cmF0b3I7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLRi9C/0L7Qu9C90Y/QtdGCINGB0L7RgNGC0LjRgNC+0LLQutGDINGC0L7QstCw0YDQvtCyINC/0L4g0LfQsNC00LDQvdC90L7QuSDRhNGD0L3QutGG0LjQuCDQsiDQutCw0YLQtdCz0L7RgNC40Lgg0Lgg0LTQvtGH0LXRgNC90LjRhSDQv9C+0LTQutCw0YLQtdCz0L7RgNC40Y/RhS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzb3J0RmNuINCk0YPQvdC60YbQuNGPINGB0L7RgNGC0LjRgNC+0LLQutC4INGC0L7QstCw0YDQvtCyLlxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICovXG4gICAgcHVibGljIHNvcnRQcm9kdWN0KHNvcnRGY246ICgoYTogU2NQcm9kdWN0LCBiOiBTY1Byb2R1Y3QpID0+IG51bWJlcikgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5wcm9kdWN0cyA9IHRoaXMucHJvZHVjdHM/LnNvcnQoc29ydEZjbik7XG4gICAgICAgIHRoaXMuY2F0ZWdvcmllcz8uZm9yRWFjaCgoY2F0ZWdvcnkpID0+IHtcbiAgICAgICAgICAgIGNhdGVnb3J5LnNvcnRQcm9kdWN0KHNvcnRGY24pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiDRhNC70LDQsyDQuNC30LHRgNCw0L3QvdGL0YUg0YLQvtCy0LDRgNC+0LIg0LrQu9C40LXQvdGC0LAg0LLRgdC10Lwg0LLQu9C+0LbQtdC90L3Ri9C8INC/0L7Qt9C40YbQuNGP0Lwg0L3QsCDQvtGB0L3QvtCy0LUg0YTQu9Cw0LPQsCDQuNC3INGA0L7QtNC40YLQtdC70YzRgdC60L7QuSDQutCw0YLQtdCz0L7RgNC40LguXG4gICAgICpcbiAgICAgKiBAcGFyYW0gaXNGYXZvcml0ZSDQn9GA0LjQt9C90LDQuiwg0YfRgtC+INC60LDRgtC10LPQvtGA0LjRjyDRj9Cy0LvRj9GO0YLRgdGPINC40LfQsdGA0LDQvdC90L7QuSDQtNC70Y8g0LrQu9C40LXQvdGC0LAuXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0SXNGYXZvcml0ZUZyb21DaGlsZChpc0Zhdm9yaXRlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGFyZW50Q2F0ZWdvcnk/LnNldElzRmF2b3JpdGVGcm9tQ2hpbGQoaXNGYXZvcml0ZSk7XG4gICAgICAgIHRoaXMucHJvZHVjdHNcbiAgICAgICAgICAgID8uZmlsdGVyKChwcm9kdWN0KSA9PiBwcm9kdWN0LnByaW1hcnlDYXRlZ29yeT8uaWQgPT09IHRoaXMuaWQpXG4gICAgICAgICAgICAuZm9yRWFjaCgocHJvZHVjdCkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICAgICAgICAgIHByb2R1Y3QuaXNGYXZvcml0ZSA9IGlzRmF2b3JpdGU7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5pc0Zhdm9yaXRlVmFsdWUgPSBpc0Zhdm9yaXRlO1xuICAgIH1cbn1cbiJdfQ==
|
|
198
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtY2F0ZWdvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NhdGFsb2cvZHRvL3NjLWNhdGVnb3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVsRDs7R0FFRztBQUNILE1BQU0sT0FBTyxVQUFXLFNBQVEsYUFBYTtJQUN6Qzs7OztPQUlHO0lBQ0gsSUFBVyxVQUFVO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUNoQyxDQUFDO0lBMEZEOzs7O09BSUc7SUFDSCxZQUFtQixXQUEyQjtRQUMxQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUEvQ3ZCOzs7O1dBSUc7UUFDSSxjQUFTLEdBQVksS0FBSyxDQUFDO1FBaUJsQzs7OztXQUlHO1FBQ0ksV0FBTSxHQUFpQyxHQUFHLENBQUM7UUFFbEQ7Ozs7V0FJRztRQUNJLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFlL0IsSUFBSSxDQUFDLEVBQUUsR0FBRyxXQUFXLENBQUMsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxJQUFJLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUMsSUFBSSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUM7UUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxlQUFlLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsVUFBVSxHQUFHLFdBQVcsQ0FBQyxVQUFVLENBQUM7UUFDekMsSUFBSSxDQUFDLGNBQWMsR0FBRyxXQUFXLENBQUMsY0FBYyxJQUFJLElBQUksVUFBVSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMvRixJQUFJLENBQUMsUUFBUSxHQUFHLFdBQVcsQ0FBQyxRQUFR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dXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXVzZS1iZWZvcmUtZGVmaW5lICovXG5pbXBvcnQgeyBTY0lDb25maWd1cmF0b3JTZXR0aW5nc0Jhc2UgfSBmcm9tICcuLi8uLi9jb25maWd1cmF0b3IvZHRvL3NjLWktY29uZmlndXJhdG9yLXNldHRpbmdzLWJhc2UnO1xuaW1wb3J0IHsgU2NJQ2F0ZWdvcnlEVE8gfSBmcm9tICcuLi9pbnRlcm5hbC9zYy1pLWNhdGVnb3J5LWR0byc7XG5pbXBvcnQgeyBTY0lGaWx0ZXJUcmVlQ2F0ZWdvcnkgfSBmcm9tICcuLi9pbnRlcm5hbC9zYy1pLWZpbHRlci10cmVlLWNhdGVnb3J5JztcbmltcG9ydCB7IFNjSVByb3BlcnRpZXMgfSBmcm9tICcuL3NjLWktcHJvcGVydGllcyc7XG5pbXBvcnQgeyBTY1Byb2R1Y3QgfSBmcm9tICcuL3NjLXByb2R1Y3QnO1xuaW1wb3J0IHsgU2NTZW9SZXNvdXJjZSB9IGZyb20gJy4vc2Mtc2VvLXJlc291cmNlJztcblxuLyoqXG4gKiDQnNC+0LTQtdC70Ywg0LTQsNC90L3Ri9GFINC60LDRgtC10LPQvtGA0LjQuCDRgtC+0LLQsNGA0L7Qsi5cbiAqL1xuZXhwb3J0IGNsYXNzIFNjQ2F0ZWdvcnkgZXh0ZW5kcyBTY1Nlb1Jlc291cmNlIGltcGxlbWVudHMgU2NJQ2F0ZWdvcnlEVE8ge1xuICAgIC8qKlxuICAgICAqINCf0YDQuNC30L3QsNC6LCDRh9GC0L4g0LrQsNGC0LXQs9C+0YDQuNGPINGP0LLQu9GP0LXRgtGB0Y8g0LjQt9Cx0YDQsNC90L3QvtC5INC00LvRjyDQutC70LjQtdC90YLQsC5cbiAgICAgKlxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICovXG4gICAgcHVibGljIGdldCBpc0Zhdm9yaXRlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0Zhdm9yaXRlVmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0LrQsNGC0LXQs9C+0YDQuNC4LlxuICAgICAqL1xuICAgIHB1YmxpYyBpZDogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICog0KHQuNC80LLQvtC70YzQvdC+0LUg0L7QsdC+0LfQvdCw0YfQtdC90LjQtSAoc2x1Zykg0LrQsNGC0LXQs9C+0YDQuNC4LlxuICAgICAqL1xuICAgIHB1YmxpYyBzbHVnOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDQndCw0LfQstCw0L3QuNC1INC60LDRgtC10LPQvtGA0LjQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgbmFtZTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICog0J/RgNC40LfQvdCw0Log0YLQvtCz0L4sINGH0YLQviDQutCw0YLQtdCz0L7RgNC40Y8g0Y/QstC70Y/QtdGC0YHRjyDQvtGB0L3QvtCy0L3QvtC5INC00LvRjyDQvdC10LrQvtGC0L7RgNC+0LPQviDRgtC+0LLQsNGA0LAg0LjQu9C4INGD0YHQu9GD0LPQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgaXNQcmltYXJ5PzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqINCh0L/QuNGB0L7QuiDRgdCy0L7QudGB0YLQsi4g0KfQuNGB0LvQviDRgdCy0L7QudGB0YLQsiDQsiDQvtCx0YrQtdC60YLQtSDQvdC1INC+0LPRgNCw0L3QuNGH0LXQvdC+LlxuICAgICAqL1xuICAgIHB1YmxpYyBwcm9wZXJ0aWVzPzogU2NJUHJvcGVydGllcztcblxuICAgIC8qKlxuICAgICAqINCe0LHRitC10LrRgiDRgNC+0LTQuNGC0LXQu9GM0YHQutC+0Lkg0LrQsNGC0LXQs9C+0YDQuNC4LlxuICAgICAqL1xuICAgIHB1YmxpYyBwYXJlbnRDYXRlZ29yeT86IFNjQ2F0ZWdvcnk7XG5cbiAgICAvKipcbiAgICAgKiDQodC/0LjRgdC+0Log0LTQvtGH0LXRgNC90LjRhSDQutCw0YLQtdCz0L7RgNC40LkuXG4gICAgICovXG4gICAgcHVibGljIGNhdGVnb3JpZXM/OiBTY0NhdGVnb3J5W107XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiDQvdCw0LvQuNGH0LjRjyDQtNC+0YfQtdGA0L3QuNGFINC60LDRgtC10LPQvtGA0LjQuS5cbiAgICAgKi9cbiAgICBwdWJsaWMgaGFzQ2hpbGQ/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICog0JTQsNGC0LAg0LfQsNCz0YDRg9C30LrQuCDQutCw0YLQtdCz0L7RgNC40LguXG4gICAgICpcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqL1xuICAgIHB1YmxpYyBsb2FkZWRBdD86IERhdGU7XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiwg0YfRgtC+INC40L3RhNC+0YDQvNCw0YbQuNGPINC+INC60LDRgtC10LPQvtGA0LjQuCDQt9Cw0LPRgNGD0LbQsNC10YLRgdGPLlxuICAgICAqXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDQodC/0LjRgdC+0Log0YLQvtCy0LDRgNC+0LIg0LIg0LrQsNGC0LXQs9C+0YDQuNC4LlxuICAgICAqL1xuICAgIHB1YmxpYyBwcm9kdWN0cz86IFNjUHJvZHVjdFtdO1xuXG4gICAgLyoqXG4gICAgICog0J3QsNGB0YLRgNC+0LnQutC4INC60L7QvdGE0LjQs9GD0YDQsNGC0L7RgNCwLlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25maWd1cmF0b3JTZXR0aW5ncz86IFNjSUNvbmZpZ3VyYXRvclNldHRpbmdzQmFzZTtcblxuICAgIC8qKlxuICAgICAqINCf0YDQuNC30L3QsNC6LCDRh9GC0L4g0LIg0LrQsNGC0LXQs9C+0YDQuNC4INC90LXQvtCx0YXQvtC00LjQvNC+INC+0YLQvtCx0YDQsNC30LjRgtGMINC60L7QvdGE0LjQs9GD0YDQsNGC0L7RgC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2hvd0NvbmZpZ3VyYXRvcj86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiDQpNC40LvRjNGC0YDRiyDQutCw0YLQtdCz0L7RgNC40Lgg0LTRgNC10LLQvtCy0LjQtNC90L7Qs9C+INC/0YDQtdC00YHRgtCw0LLQu9C10L3QuNGPINC60LDRgtCw0LvQvtCz0LAuXG4gICAgICpcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqL1xuICAgIHB1YmxpYyBmaWx0ZXI/OiBTY0lGaWx0ZXJUcmVlQ2F0ZWdvcnkgfCAnKicgPSAnKic7XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiwg0YfRgtC+INC60LDRgtC10LPQvtGA0LjRjyDRj9Cy0LvRj9C10YLRgdGPINGB0LrQtdC70LXRgtC+0L3QvtC8LlxuICAgICAqXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgaXNTa2VsZXRvbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICog0J/RgNC40LfQvdCw0LosINGH0YLQviDQutCw0YLQtdCz0L7RgNC40Y8g0Y/QstC70Y/QtdGC0YHRjyDQuNC30LHRgNCw0L3QvdC+0Lkg0LTQu9GPINC60LvQuNC10L3RgtCwLlxuICAgICAqL1xuICAgIHByaXZhdGUgaXNGYXZvcml0ZVZhbHVlOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICog0JjQvdC40YbQuNCw0LvQuNC30LjRgNGD0LXRgiDRjdC60LfQtdC80L/Qu9GP0YAg0LrQu9Cw0YHRgdCwIHtAbGluayBTY0NhdGVnb3J5fS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjYXRlZ29yeURUTyBEVE8g0YEg0LTQsNC90L3Ri9C80Lgg0L4g0LrQsNGC0LXQs9C+0YDQuNC4INGC0L7QstCw0YDQvtCyLlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihjYXRlZ29yeURUTzogU2NJQ2F0ZWdvcnlEVE8pIHtcbiAgICAgICAgc3VwZXIoY2F0ZWdvcnlEVE8pO1xuXG4gICAgICAgIHRoaXMuaWQgPSBjYXRlZ29yeURUTy5pZDtcbiAgICAgICAgdGhpcy5zbHVnID0gY2F0ZWdvcnlEVE8uc2x1ZztcbiAgICAgICAgdGhpcy5uYW1lID0gY2F0ZWdvcnlEVE8ubmFtZTtcbiAgICAgICAgdGhpcy5pc1ByaW1hcnkgPSBjYXRlZ29yeURUTy5pc1ByaW1hcnk7XG4gICAgICAgIHRoaXMuaXNGYXZvcml0ZVZhbHVlID0gQm9vbGVhbihjYXRlZ29yeURUTy5pc0Zhdm9yaXRlKTtcbiAgICAgICAgdGhpcy5wcm9wZXJ0aWVzID0gY2F0ZWdvcnlEVE8ucHJvcGVydGllcztcbiAgICAgICAgdGhpcy5wYXJlbnRDYXRlZ29yeSA9IGNhdGVnb3J5RFRPLnBhcmVudENhdGVnb3J5ICYmIG5ldyBTY0NhdGVnb3J5KGNhdGVnb3J5RFRPLnBhcmVudENhdGVnb3J5KTtcbiAgICAgICAgdGhpcy5oYXNDaGlsZCA9IGNhdGVnb3J5RFRPLmhhc0NoaWxkO1xuICAgICAgICB0aGlzLmNhdGVnb3JpZXMgPSBjYXRlZ29yeURUTy5jYXRlZ29yaWVzPy5tYXAoKGl0ZW0pID0+IG5ldyBTY0NhdGVnb3J5KGl0ZW0pKTtcbiAgICAgICAgdGhpcy5pbWFnZSA9IGNhdGVnb3J5RFRPLnByb3BlcnRpZXM/LmltYWdlO1xuXG4gICAgICAgIGlmICh0aGlzLnByb3BlcnRpZXM/LmVkaXRvcikge1xuICAgICAgICAgICAgdGhpcy5zaG93Q29uZmlndXJhdG9yID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINGB0YDQtdC00L3RjtGOINGB0YLQvtC40LzQvtGB0YLRjCDQvDIuXG4gICAgICovXG4gICAgcHVibGljIGdldCBtMlByaWNlKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb3BlcnRpZXM/Lm0yUHJpY2UgJiYgYCR7dGhpcy5wcm9wZXJ0aWVzLm0yUHJpY2V9IOKCvS/QvDxzdXA+Mjwvc3VwPmA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J/RgNC40LfQvdCw0LosINGH0YLQviDQsiDQutCw0YLQtdCz0L7RgNC40Lgg0LXRgdGC0Ywg0YLQvtCy0LDRgNGLINC00LvRjyDQvtGC0L7QsdGA0LDQttC10L3QuNGPLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaXNOb3RIaWRkZW5Qcm9kdWN0cygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvZHVjdHM/LmZpbmQoKHByb2R1Y3QpID0+ICFwcm9kdWN0LmlzSGlkZGVuRmlsdGVyKSAhPT0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCf0YDQuNC30L3QsNC6LCDRh9GC0L4g0LIg0LrQsNGC0LXQs9C+0YDQuNC4INC40LvQuCDQstC70L7QttC10L3QvdGL0YUg0L/QvtC00LrQsNGC0LXQs9C+0YDQuNGP0YUg0LXRgdGC0Ywg0YLQvtCy0LDRgNGLINC00LvRjyDQvtGC0L7QsdGA0LDQttC10L3QuNGPLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaXNOb3RIaWRkZW5Qcm9kdWN0c0luY2x1ZGVTdWJjYXRlZ29yaWVzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5wcm9kdWN0cz8uZmluZCgocHJvZHVjdCkgPT4gIXByb2R1Y3QuaXNIaWRkZW5GaWx0ZXIpICE9PSB1bmRlZmluZWQgfHxcbiAgICAgICAgICAgIHRoaXMuY2F0ZWdvcmllcz8uZmluZCgoY2F0ZWdvcnkpID0+IGNhdGVnb3J5LmlzTm90SGlkZGVuUHJvZHVjdHNJbmNsdWRlU3ViY2F0ZWdvcmllcykgIT09IHVuZGVmaW5lZFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCf0YDQuNC30L3QsNC6LCDRh9GC0L4g0LrQsNGC0LXQs9C+0YDQuNGPINGP0LLQu9GP0LXRgtGB0Y8g0LjQt9Cx0YDQsNC90L3QvtC5INC00LvRjyDQutC70LjQtdC90YLQsC5cbiAgICAgKlxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICovXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9hZGphY2VudC1vdmVybG9hZC1zaWduYXR1cmVzLGdyb3VwZWQtYWNjZXNzb3ItcGFpcnMsc29ydC1jbGFzcy1tZW1iZXJzL3NvcnQtY2xhc3MtbWVtYmVyc1xuICAgIHB1YmxpYyBzZXQgaXNGYXZvcml0ZShpc0Zhdm9yaXRlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuaXNGYXZvcml0ZVZhbHVlID0gaXNGYXZvcml0ZTtcblxuICAgICAgICB0aGlzLmNhdGVnb3JpZXM/LmZvckVhY2goKGNhdGVnb3J5KSA9PiB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICAgICAgICAgIGNhdGVnb3J5LmlzRmF2b3JpdGUgPSBpc0Zhdm9yaXRlO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5wcm9kdWN0c1xuICAgICAgICAgICAgPy5maWx0ZXIoKHByb2R1Y3QpID0+IHByb2R1Y3QucHJpbWFyeUNhdGVnb3J5Py5pZCA9PT0gdGhpcy5pZClcbiAgICAgICAgICAgIC5mb3JFYWNoKChwcm9kdWN0KSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgICAgICAgICAgcHJvZHVjdC5pc0Zhdm9yaXRlID0gaXNGYXZvcml0ZTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIGlmICghaXNGYXZvcml0ZSAmJiB0aGlzLnBhcmVudENhdGVnb3J5KSB7XG4gICAgICAgICAgICB0aGlzLnNldElzRmF2b3JpdGVGcm9tQ2hpbGQoaXNGYXZvcml0ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQlNC+0LHQsNCy0LvRj9C10YIg0LjQvdGE0L7RgNC80LDRhtC40Y4g0L4g0YDQvtC00LjRgtC10LvQtSDQuCDQtNC+0YfQtdGA0L3QuNGFINGN0LvQtdC80LXQvdGC0LDRhS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjYXRlZ29yeSDQmtCw0YLQtdCz0L7RgNC40Y8g0YHQvtC00LXRgNC20LDRidCw0Y8g0LjQvdGE0L7RgNC80LDRhtC40Y4g0L4g0YDQvtC00LjRgtC10LvQtSDQuCDQtNC+0YfQtdGA0L3QuNGFINGN0LvQtdC80LXQvdGC0LDRhS5cbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqL1xuICAgIHB1YmxpYyBhZGRDYXRlZ29yaWVzKGNhdGVnb3J5OiBTY0NhdGVnb3J5KTogdGhpcyB7XG4gICAgICAgIHRoaXMuY2F0ZWdvcmllcyA9IGNhdGVnb3J5LmNhdGVnb3JpZXMgPz8gW107XG4gICAgICAgIHRoaXMucHJvZHVjdHMgPSBjYXRlZ29yeS5wcm9kdWN0cyA/PyB0aGlzLnByb2R1Y3RzO1xuICAgICAgICB0aGlzLmxvYWRlZEF0ID0gbmV3IERhdGUoKTtcbiAgICAgICAgdGhpcy5jYXRlZ29yaWVzLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICAgICAgaXRlbS5wYXJlbnRDYXRlZ29yeSA9IHRoaXM7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnByb2R1Y3RzPy5mb3JFYWNoKChwcm9kdWN0KSA9PiB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICAgICAgICAgIHByb2R1Y3QucGFyZW50Q2F0ZWdvcnkgPSB0aGlzO1xuICAgICAgICAgICAgaWYgKHByb2R1Y3QucHJpbWFyeUNhdGVnb3J5Py5pZCA9PT0gdGhpcy5pZCkge1xuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICAgICAgICAgIHByb2R1Y3QucHJpbWFyeUNhdGVnb3J5ID0gdGhpcztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc2V0Q2hpbGRyZW5DYXRlZ29yaWVzRmlsdGVycygpO1xuICAgICAgICB0aGlzLnNldFByb2R1Y3RGaWx0ZXJzKCk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIg0YTQuNC70YzRgtGA0Ysg0LrQsNGC0LXQs9C+0YDQuNC4INC00YDQtdCy0L7QstC40LTQvdC+0LPQviDQv9GA0LXQtNGB0YLQsNCy0LvQtdC90LjRjyDQutCw0YLQsNC70L7Qs9CwLlxuICAgICAqXG4gICAgICogQHBhcmFtIGZpbHRlciDQpNC40LvRjNGC0YDRiyDQutCw0YLQtdCz0L7RgNC40Lgg0LTRgNC10LLQvtCy0LjQtNC90L7Qs9C+INC/0YDQtdC00YHRgtCw0LLQu9C10L3QuNGPINC60LDRgtCw0LvQvtCz0LAuXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0RmlsdGVyKGZpbHRlcjogU2NJRmlsdGVyVHJlZUNhdGVnb3J5IHwgJyonIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmlsdGVyID0gZmlsdGVyO1xuXG4gICAgICAgIHRoaXMuc2V0Q2hpbGRyZW5DYXRlZ29yaWVzRmlsdGVycygpO1xuICAgICAgICB0aGlzLnNldFByb2R1Y3RGaWx0ZXJzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIg0YTQuNC70YzRgtGA0Ysg0LrQsNGC0LXQs9C+0YDQuNC4INC00YDQtdCy0L7QstC40LTQvdC+0LPQviDQv9GA0LXQtNGB0YLQsNCy0LvQtdC90LjRjyDQutCw0YLQsNC70L7Qs9CwINC00LvRjyDQtNC+0YfQtdGA0L3QuNGFINC60LDRgtC10LPQvtGA0LjQuS5cbiAgICAgKlxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICovXG4gICAgcHVibGljIHNldENoaWxkcmVuQ2F0ZWdvcmllc0ZpbHRlcnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2F0ZWdvcmllcz8uZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgaXRlbS5zZXRGaWx0ZXIodGhpcy5maWx0ZXIgPT09ICcqJyB8fCB0aGlzLmZpbHRlciA9PT0gdW5kZWZpbmVkID8gdGhpcy5maWx0ZXIgOiB0aGlzLmZpbHRlci5jYXRlZ29yaWVzPy5baXRlbS5pZF0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiDRhNC40LvRjNGC0YDRiyDQutCw0YLQtdCz0L7RgNC40Lgg0LTRgNC10LLQvtCy0LjQtNC90L7Qs9C+INC/0YDQtdC00YHRgtCw0LLQu9C10L3QuNGPINC60LDRgtCw0LvQvtCz0LAg0LTQu9GPINGC0L7QstCw0YDQvtCyLlxuICAgICAqXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0UHJvZHVjdEZpbHRlcnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJvZHVjdHM/LmZvckVhY2goKHByb2R1Y3QpID0+IHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnbixAdHlwZXNjcmlwdC1lc2xpbnQvcHJlZmVyLWluY2x1ZGVzXG4gICAgICAgICAgICBwcm9kdWN0LmlzSGlkZGVuRmlsdGVyID0gISh0aGlzLmZpbHRlciA9PT0gJyonIHx8IHRoaXMuZmlsdGVyPy5wcm9kdWN0cz8uaW5kZXhPZihwcm9kdWN0LmlkKSAhPT0gLTEpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDQv9GA0LjQt9C90LDQuiDRgtC+0LPQviwg0YfRgtC+INC60LDRgtC10LPQvtGA0LjRjyDQt9Cw0LPRgNGD0LbQtdC90LAg0Lgg0YHRgNC+0Log0LbQuNC30L3QuCDQtNCw0L3QvdGL0YUg0L3QtSDQuNGB0YLRkdC6LlxuICAgICAqXG4gICAgICogQHBhcmFtIGNhdGVnb3J5RGF0YSDQodGA0L7QuiDQttC40LfQvdC4INC40L3RhNC+0YDQvNCw0YbQuNC4INC+INC60LDRgtC10LPQvtGA0LjQuCDQsiBtcy5cbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqL1xuICAgIHB1YmxpYyBjYWNoZWREYXRhSXNBY3R1YWwoY2F0ZWdvcnlEYXRhOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZGVkQXQgIT09IHVuZGVmaW5lZCAmJiB0aGlzLmxvYWRlZEF0LmdldFRpbWUoKSA+IERhdGUubm93KCkgLSBjYXRlZ29yeURhdGE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J/QtdGA0LXQutC70Y7Rh9Cw0LXRgiDQv9GA0LjQt9C90LDQuiDQvtGC0L7QsdGA0LDQttC10L3QuNGPINC60L7QvdGE0LjQs9GD0YDQsNGC0L7RgNCwLlxuICAgICAqXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgdG9nZ2xlU2hvd0NvbmZpZ3VyYXRvcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zaG93Q29uZmlndXJhdG9yID0gIXRoaXMuc2hvd0NvbmZpZ3VyYXRvcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktGL0L/QvtC70L3Rj9C10YIg0YHQvtGA0YLQuNGA0L7QstC60YMg0YLQvtCy0LDRgNC+0LIg0L/QviDQt9Cw0LTQsNC90L3QvtC5INGE0YPQvdC60YbQuNC4INCyINC60LDRgtC10LPQvtGA0LjQuCDQuCDQtNC+0YfQtdGA0L3QuNGFINC/0L7QtNC60LDRgtC10LPQvtGA0LjRj9GFLlxuICAgICAqXG4gICAgICogQHBhcmFtIHNvcnRGY24g0KTRg9C90LrRhtC40Y8g0YHQvtGA0YLQuNGA0L7QstC60Lgg0YLQvtCy0LDRgNC+0LIuXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgc29ydFByb2R1Y3Qoc29ydEZjbjogKChhOiBTY1Byb2R1Y3QsIGI6IFNjUHJvZHVjdCkgPT4gbnVtYmVyKSB8IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLnByb2R1Y3RzID0gdGhpcy5wcm9kdWN0cz8uc29ydChzb3J0RmNuKTtcbiAgICAgICAgdGhpcy5jYXRlZ29yaWVzPy5mb3JFYWNoKChjYXRlZ29yeSkgPT4ge1xuICAgICAgICAgICAgY2F0ZWdvcnkuc29ydFByb2R1Y3Qoc29ydEZjbik7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCINGE0LvQsNCzINC40LfQsdGA0LDQvdC90YvRhSDRgtC+0LLQsNGA0L7QsiDQutC70LjQtdC90YLQsCDQstGB0LXQvCDQstC70L7QttC10L3QvdGL0Lwg0L/QvtC30LjRhtC40Y/QvCDQvdCwINC+0YHQvdC+0LLQtSDRhNC70LDQs9CwINC40Lcg0YDQvtC00LjRgtC10LvRjNGB0LrQvtC5INC60LDRgtC10LPQvtGA0LjQuC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBpc0Zhdm9yaXRlINCf0YDQuNC30L3QsNC6LCDRh9GC0L4g0LrQsNGC0LXQs9C+0YDQuNGPINGP0LLQu9GP0Y7RgtGB0Y8g0LjQt9Cx0YDQsNC90L3QvtC5INC00LvRjyDQutC70LjQtdC90YLQsC5cbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRJc0Zhdm9yaXRlRnJvbUNoaWxkKGlzRmF2b3JpdGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wYXJlbnRDYXRlZ29yeT8uc2V0SXNGYXZvcml0ZUZyb21DaGlsZChpc0Zhdm9yaXRlKTtcbiAgICAgICAgdGhpcy5wcm9kdWN0c1xuICAgICAgICAgICAgPy5maWx0ZXIoKHByb2R1Y3QpID0+IHByb2R1Y3QucHJpbWFyeUNhdGVnb3J5Py5pZCA9PT0gdGhpcy5pZClcbiAgICAgICAgICAgIC5mb3JFYWNoKChwcm9kdWN0KSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgICAgICAgICAgcHJvZHVjdC5pc0Zhdm9yaXRlID0gaXNGYXZvcml0ZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB0aGlzLmlzRmF2b3JpdGVWYWx1ZSA9IGlzRmF2b3JpdGU7XG4gICAgfVxufVxuIl19
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
/* TODO: Вынести в internal после переноса в библиотеку CatalogService - TASK[#6433], FavoriteService - TASK[#6435] */
|
|
2
2
|
export {};
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtaS1jYXRlZ29yeS1kdG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NhdGFsb2cvaW50ZXJuYWwvc2MtaS1jYXRlZ29yeS1kdG8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsc0hBQXNIIiwic291cmNlc0NvbnRlbnQiOlsiLyogVE9ETzog0JLRi9C90LXRgdGC0Lgg0LIgaW50ZXJuYWwg0L/QvtGB0LvQtSDQv9C10YDQtdC90L7RgdCwINCyINCx0LjQsdC70LjQvtGC0LXQutGDIENhdGFsb2dTZXJ2aWNlIC0gVEFTS1sjNjQzM10sIEZhdm9yaXRlU2VydmljZSAtIFRBU0tbIzY0MzVdICovXG5cbmltcG9ydCB7IFNjSUNvbmZpZ3VyYXRvclNlYXJjaFByb2R1Y3RCYXNlIH0gZnJvbSAnLi4vLi4vY29uZmlndXJhdG9yL2R0by9zYy1pLWNvbmZpZ3VyYXRvci1zZWFyY2gtcHJvZHVjdC1iYXNlJztcbmltcG9ydCB7IFNjSVByb3BlcnRpZXMgfSBmcm9tICcuLi9kdG8vc2MtaS1wcm9wZXJ0aWVzJztcbmltcG9ydCB7IFNjSVNlb1Jlc291cmNlRFRPIH0gZnJvbSAnLi9zYy1pLXNlby1yZXNvdXJjZS1kdG8nO1xuXG4vKipcbiAqINCc0L7QtNC10LvRjCDQtNCw0L3QvdGL0YUg0LrQsNGC0LXQs9C+0YDQuNC4INGC0L7QstCw0YDQvtCyIERUTy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTY0lDYXRlZ29yeURUTyBleHRlbmRzIFNjSVNlb1Jlc291cmNlRFRPIHtcbiAgICAvKipcbiAgICAgKiDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQutCw0YLQtdCz0L7RgNC40LguXG4gICAgICovXG4gICAgaWQ6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqINCh0LjQvNCy0L7Qu9GM0L3QvtC1INC+0LHQvtC30L3QsNGH0LXQvdC40LUgKHNsdWcpINC60LDRgtC10LPQvtGA0LjQuC5cbiAgICAgKi9cbiAgICBzbHVnOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDQndCw0LfQstCw0L3QuNC1INC60LDRgtC10LPQvtGA0LjQuC5cbiAgICAgKi9cbiAgICBuYW1lOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiDRgtC+0LPQviwg0YfRgtC+INC60LDRgtC10LPQvtGA0LjRjyDRj9Cy0LvRj9C10YLRgdGPINC+0YHQvdC+0LLQvdC+0Lkg0LTQu9GPINC90LXQutC+0YLQvtGA0L7Qs9C+INGC0L7QstCw0YDQsCDQuNC70Lgg0YPRgdC70YPQs9C4LlxuICAgICAqL1xuICAgIGlzUHJpbWFyeT86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiwg0YfRgtC+INC60LDRgtC10LPQvtGA0LjRjyDRj9Cy0LvRj9GO0YLRgdGPINC40LfQsdGA0LDQvdC90L7QuSDQtNC70Y8g0LrQu9C40LXQvdGC0LAuXG4gICAgICovXG4gICAgaXNGYXZvcml0ZT86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiDQodC/0LjRgdC+0Log0YHQstC+0LnRgdGC0LIuINCn0LjRgdC70L4g0YHQstC+
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtaS1jYXRlZ29yeS1kdG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NhdGFsb2cvaW50ZXJuYWwvc2MtaS1jYXRlZ29yeS1kdG8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsc0hBQXNIIiwic291cmNlc0NvbnRlbnQiOlsiLyogVE9ETzog0JLRi9C90LXRgdGC0Lgg0LIgaW50ZXJuYWwg0L/QvtGB0LvQtSDQv9C10YDQtdC90L7RgdCwINCyINCx0LjQsdC70LjQvtGC0LXQutGDIENhdGFsb2dTZXJ2aWNlIC0gVEFTS1sjNjQzM10sIEZhdm9yaXRlU2VydmljZSAtIFRBU0tbIzY0MzVdICovXG5cbmltcG9ydCB7IFNjSUNvbmZpZ3VyYXRvclNlYXJjaFByb2R1Y3RCYXNlIH0gZnJvbSAnLi4vLi4vY29uZmlndXJhdG9yL2R0by9zYy1pLWNvbmZpZ3VyYXRvci1zZWFyY2gtcHJvZHVjdC1iYXNlJztcbmltcG9ydCB7IFNjSVByb3BlcnRpZXMgfSBmcm9tICcuLi9kdG8vc2MtaS1wcm9wZXJ0aWVzJztcbmltcG9ydCB7IFNjSVNlb1Jlc291cmNlRFRPIH0gZnJvbSAnLi9zYy1pLXNlby1yZXNvdXJjZS1kdG8nO1xuXG4vKipcbiAqINCc0L7QtNC10LvRjCDQtNCw0L3QvdGL0YUg0LrQsNGC0LXQs9C+0YDQuNC4INGC0L7QstCw0YDQvtCyIERUTy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTY0lDYXRlZ29yeURUTyBleHRlbmRzIFNjSVNlb1Jlc291cmNlRFRPIHtcbiAgICAvKipcbiAgICAgKiDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQutCw0YLQtdCz0L7RgNC40LguXG4gICAgICovXG4gICAgaWQ6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqINCh0LjQvNCy0L7Qu9GM0L3QvtC1INC+0LHQvtC30L3QsNGH0LXQvdC40LUgKHNsdWcpINC60LDRgtC10LPQvtGA0LjQuC5cbiAgICAgKi9cbiAgICBzbHVnOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDQndCw0LfQstCw0L3QuNC1INC60LDRgtC10LPQvtGA0LjQuC5cbiAgICAgKi9cbiAgICBuYW1lOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiDRgtC+0LPQviwg0YfRgtC+INC60LDRgtC10LPQvtGA0LjRjyDRj9Cy0LvRj9C10YLRgdGPINC+0YHQvdC+0LLQvdC+0Lkg0LTQu9GPINC90LXQutC+0YLQvtGA0L7Qs9C+INGC0L7QstCw0YDQsCDQuNC70Lgg0YPRgdC70YPQs9C4LlxuICAgICAqL1xuICAgIGlzUHJpbWFyeT86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiwg0YfRgtC+INC60LDRgtC10LPQvtGA0LjRjyDRj9Cy0LvRj9GO0YLRgdGPINC40LfQsdGA0LDQvdC90L7QuSDQtNC70Y8g0LrQu9C40LXQvdGC0LAuXG4gICAgICovXG4gICAgaXNGYXZvcml0ZT86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiDQodC/0LjRgdC+0Log0YHQstC+0LnRgdGC0LIuINCn0LjRgdC70L4g0YHQstC+0LnRgdGC0LIg0LIg0L7QsdGK0LXQutGC0LUg0L3QtSDQvtCz0YDQsNC90LjRh9C10L3Qvi5cbiAgICAgKi9cbiAgICBwcm9wZXJ0aWVzPzogU2NJUHJvcGVydGllcztcblxuICAgIC8qKlxuICAgICAqINCe0LHRitC10LrRgiDRgNC+0LTQuNGC0LXQu9GM0YHQutC+0Lkg0LrQsNGC0LXQs9C+0YDQuNC4LlxuICAgICAqL1xuICAgIHBhcmVudENhdGVnb3J5PzogU2NJQ2F0ZWdvcnlEVE87XG5cbiAgICAvKipcbiAgICAgKiDQodC/0LjRgdC+0Log0LTQvtGH0LXRgNC90LjRhSDQutCw0YLQtdCz0L7RgNC40LkuXG4gICAgICovXG4gICAgY2F0ZWdvcmllcz86IFNjSUNhdGVnb3J5RFRPW107XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiDQvdCw0LvQuNGH0LjRjyDQtNC+0YfQtdGA0L3QuNGFINC60LDRgtC10LPQvtGA0LjQuS5cbiAgICAgKi9cbiAgICBoYXNDaGlsZD86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiDQn9Cw0YDQsNC80LXRgtGA0Ysg0LLQstC10LTQtdC90L3Ri9C1INCyINC60L7QvdGE0LjQs9GD0YDQsNGC0L7RgCwg0L/RgNC4INC00L7QsdCw0LLQu9C10L3QuNC4INC/0L7Qt9C40YbQuNC4INCyINC60L7RgNC30LjQvdGDLlxuICAgICAqL1xuICAgIGNvbmZpZ3VyYXRvclBhcmFtcz86IFNjSUNvbmZpZ3VyYXRvclNlYXJjaFByb2R1Y3RCYXNlO1xufVxuIl19
|
|
@@ -120,7 +120,7 @@ export class ScCatalogService {
|
|
|
120
120
|
*/
|
|
121
121
|
getCategoryFromMap(categoryIdOrSlug) {
|
|
122
122
|
const category = this.idCategoryMap.get(categoryIdOrSlug?.toString());
|
|
123
|
-
if (category && (!category.
|
|
123
|
+
if (category && (!category.parentCategory || !category.loadedAt || category.cachedDataIsActual(this.cacheLifeTime.categoryData))) {
|
|
124
124
|
return category;
|
|
125
125
|
}
|
|
126
126
|
this.idCategoryMap.delete(categoryIdOrSlug?.toString());
|
|
@@ -136,12 +136,7 @@ export class ScCatalogService {
|
|
|
136
136
|
if (categoryIdOrSlug) {
|
|
137
137
|
this.categoryIdOrSlugMap.set(typeof categoryIdOrSlug === 'string' ? category.id : category.slug, categoryIdOrSlug);
|
|
138
138
|
}
|
|
139
|
-
})
|
|
140
|
-
// eslint-disable-next-line no-param-reassign
|
|
141
|
-
tap((category) => category.categories?.forEach((subCategory) => {
|
|
142
|
-
// eslint-disable-next-line no-param-reassign
|
|
143
|
-
subCategory.parentCategory = category;
|
|
144
|
-
})));
|
|
139
|
+
}));
|
|
145
140
|
}
|
|
146
141
|
/**
|
|
147
142
|
* Возвращает {@link Observable} корневых категорий с настройками отображения, чтобы реагировать на изменения.
|
|
@@ -155,10 +150,10 @@ export class ScCatalogService {
|
|
|
155
150
|
* @param slug Символьный идентификатор виртуальной категории.
|
|
156
151
|
*/
|
|
157
152
|
getVirtualCategoryCached$(slug) {
|
|
158
|
-
let cachedItem = this.virtualCategoryMap.get(slug
|
|
153
|
+
let cachedItem = this.virtualCategoryMap.get(slug);
|
|
159
154
|
if (!cachedItem) {
|
|
160
155
|
cachedItem = new ScCachedItem(this.cacheLifeTime.categoryData, this.http.get(`${this.urls.apiUrl}/catalog/v-categories/${slug}`).pipe(map((category) => new ScVirtualCategory(category))));
|
|
161
|
-
this.virtualCategoryMap.set(slug
|
|
156
|
+
this.virtualCategoryMap.set(slug, cachedItem);
|
|
162
157
|
}
|
|
163
158
|
if (!cachedItem.cachedDataIsActual()) {
|
|
164
159
|
cachedItem.update();
|
|
@@ -204,9 +199,9 @@ export class ScCatalogService {
|
|
|
204
199
|
* @returns Возвращает список раскрытых категорий.
|
|
205
200
|
*/
|
|
206
201
|
loadCatalogTreeCached$(categoryIdOrSlug) {
|
|
207
|
-
return this.getCategoryCached$(categoryIdOrSlug).pipe(filter(tuiIsPresent), first(), expand((category) => (category.
|
|
202
|
+
return this.getCategoryCached$(categoryIdOrSlug).pipe(filter(tuiIsPresent), first(), expand((category) => (category.parentCategory ? this.getCategoryCached$(this.idOrSlugPipe.transform(category.parentCategory)) : this.getNullCategory$()).pipe(filter(tuiIsPresent), first())),
|
|
208
203
|
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition,sonarjs/different-types-comparison
|
|
209
|
-
takeWhile((parentCategory) => parentCategory.
|
|
204
|
+
takeWhile((parentCategory) => parentCategory.parentCategory !== undefined, true), toArray(),
|
|
210
205
|
// eslint-disable-next-line sonarjs/no-misleading-array-reverse
|
|
211
206
|
map((categories) => categories.reverse()));
|
|
212
207
|
}
|
|
@@ -343,4 +338,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
343
338
|
type: Inject,
|
|
344
339
|
args: [SC_CACHE_LIFETIME]
|
|
345
340
|
}] }, { type: i4.ScUserMetrikaService }] });
|
|
346
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtY2F0YWxvZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9jYXRhbG9nL3NlcnZpY2VzL3NjLWNhdGFsb2cuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFNckksT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzlGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBRTdGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDMUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWhELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMv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QUFDLEVBQ3JELEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDTCxJQUFJLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLENBQUM7Z0JBQ3pDLE1BQU0sRUFBRSxzQkFBc0IsQ0FBQyxvQkFBb0I7Z0JBQ25ELE1BQU0sRUFBRTtvQkFDSixXQUFXLEVBQUUsVUFBVSxJQUFJLE1BQU07b0JBQ2pDLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjthQUNKLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSw0QkFBNEIsQ0FBQyxlQUFnQyxFQUFFLElBQWlDO1FBQ25HLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0scUJBQXFCLGVBQWUsZUFBZSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ25ILENBQUM7K0dBOVpRLGdCQUFnQiw0Q0EyRmIsT0FBTywyRUFHUCxpQkFBaUI7bUhBOUZwQixnQkFBZ0IsY0FGYixNQUFNOzs0RkFFVCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkE0RlEsTUFBTTsyQkFBQyxPQUFPOzswQkFHZCxNQUFNOzJCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIG5vaW5zcGVjdGlvbiBUeXBlU2NyaXB0VmFsaWRhdGVUeXBlc1xuXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0LCBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHR1aUlzUHJlc2VudCB9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZXhwYW5kLCBmaWx0ZXIsIGZpcnN0LCBtYXAsIE9ic2VydmFibGUsIG9mLCBzaGFyZVJlcGxheSwgc2tpcCwgc3dpdGNoTWFwLCB0YWtlV2hpbGUsIHRhcCwgdG9BcnJheSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTY0lDYWNoZUxpZmV0aW1lIH0gZnJvbSAnLi4vLi4vY29uZmlnL3NjLWktY2FjaGUtbGlmZXRpbWUnO1xuaW1wb3J0IHsgU2NJVXJscyB9IGZyb20gJy4uLy4uL2NvbmZpZy9zYy1pLXVybHMnO1xuaW1wb3J0IHsgU2NDb252ZXJ0ZXJzU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbnZlcnRlcnMvc2VydmljZXMvc2MtY29udmVydGVycy5zZXJ2aWNlJztcbmltcG9ydCB7IFNjSVBhZ2luYXRlIH0gZnJvbSAnLi4vLi4vcGFnaW5hdGlvbi9kdG8vc2MtaS1wYWdpbmF0ZSc7XG5pbXBvcnQgeyBTY0lkT3JTbHVnUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL3NjLWlkLW9yLXNsdWcucGlwZSc7XG5pbXBvcnQgeyBTQ19DQUNIRV9MSUZFVElNRSB9IGZyb20gJy4uLy4uL3Rva2Vucy9zYy1jYWNoZS1saWZldGltZSc7XG5pbXBvcnQgeyBTQ19JU19ISURERU5fRVJST1JfQUxFUlRfSFRUUF9DT05URVhUIH0gZnJvbSAnLi4vLi4vdG9rZW5zL3NjLWlzLWhpZGRlbi1lcnJvci1hbGVydCc7XG5pbXBvcnQgeyBTQ19VUkxTIH0gZnJvbSAnLi4vLi4vdG9rZW5zL3NjLXVybHMnO1xuaW1wb3J0IHsgU2NVSVNlcnZpY2UgfSBmcm9tICcuLi8uLi91aS9zZXJ2aWNlcy9zYy11aS5zZXJ2aWNlJztcbmltcG9ydCB7IFNjVXNlclNlcnZpY2UgfSBmcm9tICcuLi8uLi91c2VyL3NlcnZpY2VzL3NjLXVzZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTQ19VU0VSX0lORk8gfSBmcm9tICcuLi8uLi91c2VyL3Rva2Vucy9zYy11c2VyLXByb3ZpZGVycyc7XG5pbXBvcnQgeyBTY1VzZXJNZXRyaWthR29hbHNFbnVtIH0gZnJvbSAnLi4vLi4vdXNlci1tZXRyaWthL2VudW1zL3NjLXVzZXItbWV0cmlrYS1nb2Fscy1lbnVtJztcbmltcG9ydCB7IFNjVXNlck1ldHJpa2FTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdXNlci1tZXRyaWthL3NlcnZpY2VzL3NjLXVzZXItbWV0cmlrYS5zZXJ2aWNlJztcbmltcG9ydCB7IFNjQ2FjaGVkSXRlbSB9IGZyb20gJy4uL2NsYXNzZXMnO1xuaW1wb3J0IHsgU2NDYXRlZ29yeSB9IGZyb20gJy4uL2R0by9zYy1jYXRlZ29yeSc7XG5pbXBvcnQgeyBTY0lQcm9kdWN0Tm90aWZ5V2hlbkluU3RvY2sgfSBmcm9tICcuLi9kdG8vc2MtaS1wcm9kdWN0LW5vdGlmeS13aGVuLWluLXN0b2NrJztcbmltcG9ydCB7IFNjUHJvZHVjdCB9IGZyb20gJy4uL2R0by9zYy1wcm9kdWN0JztcbmltcG9ydCB7IFNjVmlydHVhbENhdGVnb3J5IH0gZnJvbSAnLi4vZHRvL3NjLXZpcnR1YWwtY2F0ZWdvcnknO1xuaW1wb3J0IHsgU2NNaW1lVHlwZXMgfSBmcm9tICcuLi9lbnVtcy9zYy1taW1lLXR5cGVzJztcbmltcG9ydCB7IFNjSUNhdGVnb3J5UHJvZHVjdFBhcmFtcyB9IGZyb20gJy4uL2ludGVyZmFjZXMvc2MtaS1jYXRlZ29yeS1wcm9kdWN0LXBhcmFtcyc7XG5pbXBvcnQgeyBTY0lDYXRlZ29yeVByb2R1Y3RQYWdpbmF0aW9uUGFyYW1zIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9zYy1pLWNhdGVnb3J5LXByb2R1Y3RzLXBhZ2luYXRpb24tcGFyYW1zJztcbmltcG9ydCB7IFNjSUNhdGVnb3J5RFRPLCBTY0lQcm9kdWN0RFRPIH0gZnJvbSAnLi4vaW50ZXJuYWwnO1xuaW1wb3J0IHsgU2NJVmlydHVhbENhdGVnb3J5RFRPIH0gZnJvbSAnLi4vaW50ZXJuYWwvc2MtaS12aXJ0dWFsLWNhdGVnb3J5LWR0byc7XG5pbXBvcnQgeyBTQ19DT1VOVF9GSVJTVF9ESVNDT1VOVEVEX1BST0RVQ1RTIH0gZnJvbSAnLi4vdG9rZW5zL3NjLWNvdW50LWZpcnN0LWRpc2NvdW50ZWQtcHJvZHVjdHMnO1xuaW1wb3J0IHsgU2NQcmljZUhpc3RvcnkgfSBmcm9tICcuLi90eXBlcy9zYy1wcmljZS1oaXN0b3J5JztcblxuLyoqXG4gKiDQodC10YDQstC40YEg0LTQu9GPINGA0LDQsdC+0YLRiyDRgSDQutCw0YLQsNC70L7Qs9C+0LwuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNjQ2F0YWxvZ1NlcnZpY2Uge1xuICAgIC8qKlxuICAgICAqIHtAbGluayBNYXB9INC60L7Qu9C70LXQutGG0LjRjyDQv9Cw0YAg0LrQu9GO0Yct0LfQvdCw0YfQtdC90LjQtSDQtNC70Y8g0LrQsNGC0LXQs9C+0YDQuNC5INC60LDRgtCw0LvQvtCz0LAuXG4gICAgICpcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqL1xuICAgIHByaXZhdGUgaWRDYXRlZ29yeU1hcDogTWFwPG51bWJlciB8IHN0cmluZyB8IHVuZGVmaW5lZCwgU2NDYXRlZ29yeT4gPSBuZXcgTWFwPG51bWJlciB8IHN0cmluZyB8IHVuZGVmaW5lZCwgU2NDYXRlZ29yeT4oKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBNYXB9INC60L7Qu9C70LXQutGG0LjRjyDQv9Cw0YAg0LrQu9GO0Yct0LfQvdCw0YfQtdC90LjQtSDQtNC70Y8g0LLQuNGA0YLRg9Cw0LvRjNC90YvRhSDQutCw0YLQtdCz0L7RgNC40LkuXG4gICAgICovXG4gICAgcHJpdmF0ZSB2aXJ0dWFsQ2F0ZWdvcnlNYXA6IE1hcDxzdHJpbmcsIFNjQ2FjaGVkSXRlbTxTY1ZpcnR1YWxDYXRlZ29yeT4+ID0gbmV3IE1hcDxzdHJpbmcsIFNjQ2FjaGVkSXRlbTxTY1ZpcnR1YWxDYXRlZ29yeT4+KCk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgTWFwfSDQutC+0LvQu9C10LrRhtC40Y8g0L/QsNGAINC60LvRjtGHLdC30L3QsNGH0LXQvdC40LUg0LTQu9GPINC60Y3RiNC40YDQvtCy0LDQvdC90YvRhSDQutCw0YLQtdCz0L7RgNC40Lkg0LrQsNGC0LDQu9C+0LPQsC5cbiAgICAgKi9cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWludmFsaWQtdm9pZC10eXBlXG4gICAgcHJpdmF0ZSBjYXRlZ29yeU1hcDogTWFwPG51bWJlciB8IHN0cmluZyB8IHZvaWQsIFNjQ2FjaGVkSXRlbTxTY0NhdGVnb3J5Pj4gPSBuZXcgTWFwPG51bWJlciB8IHN0cmluZyB8IHZvaWQsIFNjQ2FjaGVkSXRlbTxTY0NhdGVnb3J5Pj4oKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBNYXB9INC60L7Qu9C70LXQutGG0LjRjyDQv9Cw0YAg0LrQu9GO0Yct0LfQvdCw0YfQtdC90LjQtSDQtNC70Y8g0L/RgNC+0LTRg9C60YLQvtCyINC60LDRgtCw0LvQvtCz0LAuXG4gICAgICovXG4gICAgcHJpdmF0ZSBwcm9kdWN0TWFwOiBNYXA8bnVtYmVyIHwgc3RyaW5nLCBTY0NhY2hlZEl0ZW08U2NQcm9kdWN0Pj4gPSBuZXcgTWFwPG51bWJlciB8IHN0cmluZywgU2NDYWNoZWRJdGVtPFNjUHJvZHVjdD4+KCk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgTWFwfSDQutC+0LvQu9C10LrRhtC40Y8g0L/QsNGAINC60LvRjtGHLdC30L3QsNGH0LXQvdC40LUg0LTQu9GPINC60Y3RiNC40YDQvtCy0LDQvdC90YvRhSDRgtC+0LLQsNGA0L7QsiDQutCw0YLQtdCz0L7RgNC40Lgg0LrQsNGC0LDQu9C+0LPQsC5cbiAgICAgKi9cbiAgICBwcml2YXRlIGNhdGVnb3J5UHJvZHVjdHNNYXA6IE1hcDxudW1iZXIgfCBzdHJpbmcsIFNjQ2FjaGVkSXRlbTxTY1Byb2R1Y3RbXT4+ID0gbmV3IE1hcDxudW1iZXIsIFNjQ2FjaGVkSXRlbTxTY1Byb2R1Y3RbXT4+KCk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgTWFwfSDQutC+0LvQu9C10LrRhtC40Y8g0L/QsNGAINC60LvRjtGHLdC30L3QsNGH0LXQvdC40LUg0LTQu9GPINC60Y3RiNC40YDQvtCy0LDQvdC40Y8g0LjRgdGC0L7RgNC40Lgg0YbQtdC9LlxuICAgICAqL1xuICAgIHByaXZhdGUgcHJvZHVjdEhpc3RvcnlNYXA6IE1hcDxudW1iZXIgfCBzdHJpbmcsIFNjQ2FjaGVkSXRlbTxTY1ByaWNlSGlzdG9yeT4+ID0gbmV3IE1hcDxudW1iZXIgfCBzdHJpbmcsIFNjQ2FjaGVkSXRlbTxTY1ByaWNlSGlzdG9yeT4+KCk7XG5cbiAgICAvKipcbiAgICAgKiDQn9Cw0LnQvywg0LLQvtC30LLRgNCw0YnQsNGO0YnQuNC5INC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINC40LvQuCDRgdC40LzQstC+0LvRjNC90L7QtSDQvtCx0L7Qt9C90LDRh9C10L3QuNC1IChzbHVnKSDQuNGB0YXQvtC00Y8g0LjQtyDQvdCw0YHRgtGA0L7QtdC6INC+0LrRgNGD0LbQtdC90LjRjy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGlkT3JTbHVnUGlwZTogU2NJZE9yU2x1Z1BpcGUgPSBpbmplY3QoU2NJZE9yU2x1Z1BpcGUpO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE1hcH0g0LrQvtC70LvQtdC60YbQuNGPINC/0LDRgCDQutC70Y7Rhy3Qt9C90LDRh9C10L3QuNC1INC00LvRjyDRgdC+0L/QvtGB0YLQsNCy0LvQtdC90LjRjyBzbHVnINC4IGlkINC60LDRgtC10LPQvtGA0LjQuSDQv9GA0Lgg0LrQtdGI0LjRgNC+0LLQsNC90LjQuCDQt9Cw0L/RgNC+0YHQvtCyLCDQtdGB0LvQuCDQuNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQvtGC0LvQuNGH0LDQtdGC0YHRjyDQvtGCINGD0YHRgtCw0L3QvtCy0LvQtdC90L3QvtCz0L4g0LIg0L/RgNC+0LXQutGC0LUgKHNsdWcvaWQpLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY2F0ZWdvcnlJZE9yU2x1Z01hcDogTWFwPG51bWJlciB8IHN0cmluZywgbnVtYmVyIHwgc3RyaW5nPiA9IG5ldyBNYXA8bnVtYmVyIHwgc3RyaW5nLCBudW1iZXIgfCBzdHJpbmc+KCk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgTWFwfSDQutC+0LvQu9C10LrRhtC40Y8g0L/QsNGAINC60LvRjtGHLdC30L3QsNGH0LXQvdC40LUg0LTQu9GPINGB0L7Qv9C+0YHRgtCw0LLQu9C10L3QuNGPIHNsdWcg0LggaWQg0YLQvtCy0LDRgNC+0LIg0L/RgNC4INC60LXRiNC40YDQvtCy0LDQvdC40Lgg0LfQsNC/0YDQvtGB0L7Qsiwg0LXRgdC70Lgg0LjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0L7RgtC70LjRh9Cw0LXRgtGB0Y8g0L7RgiDRg9GB0YLQsNC90L7QstC70LXQvdC90L7Qs9C+INCyINC/0YDQvtC10LrRgtC1IChzbHVnL2lkKS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHByb2R1Y3RJZE9yU2x1Z01hcDogTWFwPG51bWJlciB8IHN0cmluZywgbnVtYmVyIHwgc3RyaW5nPiA9IG5ldyBNYXA8bnVtYmVyIHwgc3RyaW5nLCBudW1iZXIgfCBzdHJpbmc+KCk7XG5cbiAgICAvKipcbiAgICAgKiDQp9C40YHQu9C+INC/0LXRgNCy0YvRhSDQt9Cw0L/QuNGB0LXQuSDRgtC+0LLQsNGA0L7QsiDRgdC+INGB0LrQuNC00LrQvtC5LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY291bnRGaXJzdERpc2NvdW50ZWRQcm9kdWN0czogbnVtYmVyID0gaW5qZWN0KFNDX0NPVU5UX0ZJUlNUX0RJU0NPVU5URURfUFJPRFVDVFMpO1xuXG4gICAgLyoqXG4gICAgICog0KHQtdGA0LLQuNGBINC40L3RhNC+0YDQvNCw0YbQuNC4INC+INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHVzZXJTZXJ2aWNlOiBTY1VzZXJTZXJ2aWNlID0gaW5qZWN0KFNjVXNlclNlcnZpY2UpO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INC40LfQvNC10L3QtdC90LjRjyDRgdC/0LjRgdC60LAg0YLQvtCy0LDRgNC+0LIg0YHQviDRgdC60LjQtNC60L7QuS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgZmlyc3REaXNjb3VudGVkJDogT2JzZXJ2YWJsZTxTY0lQYWdpbmF0ZTxTY1Byb2R1Y3Q+IHwgbnVsbD4gPSBpbmplY3QoU0NfVVNFUl9JTkZPKS5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKHVzZXIpID0+XG4gICAgICAgICAgICB1c2VyLmlzR3Vlc3QgPyBvZihudWxsKSA6IHRoaXMuZ2V0UHJvZHVjdHMkKHsgZmlsdGVyczogeyBvbmx5RGlzY291bnRlZDogdHJ1ZSB9LCBwYWdpbmF0ZTogdHJ1ZSwgcGFnZTogMSwgcGVyUGFnZTogdGhpcy5jb3VudEZpcnN0RGlzY291bnRlZFByb2R1Y3RzIH0pXG4gICAgICAgICksXG4gICAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBPYnNlcnZhYmxlfSDQuNC30LzQtdC90LXQvdC40Y8g0YHQv9C40YHQutCwINC40Lcg0L/QtdGA0LLRi9GFINGC0L7QstCw0YDQvtCyINGB0L4g0YHQutC40LTQutC+0LkuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGZpcnN0RGlzY291bnRlZFByb2R1Y3RzJDogT2JzZXJ2YWJsZTxTY1Byb2R1Y3RbXT4gPSB0aGlzLmZpcnN0RGlzY291bnRlZCQucGlwZShtYXAoKGRhdGEpID0+IGRhdGE/LmRhdGEgPz8gW10pKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBPYnNlcnZhYmxlfSDQuNC30LzQtdC90LXQvdC40Y8g0L7QsdGJ0LXQs9C+INC60L7Qu9C70LjRh9C10YHRgtCy0LAg0YLQvtCy0LDRgNCwINGB0L4g0YHQutC40LTQutC+0LkuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGNvdW50RGlzY291bnRlZFByb2R1Y3RzJDogT2JzZXJ2YWJsZTxudW1iZXI+ID0gdGhpcy5maXJzdERpc2NvdW50ZWQkLnBpcGUobWFwKChkYXRhKSA9PiBkYXRhPy5tZXRhLnRvdGFsID8/IDApKTtcblxuICAgIC8qKlxuICAgICAqINCY0L3QuNGG0LjQsNC70LjQt9C40YDRg9C10YIg0Y3QutC30LXQvNC/0LvRj9GAINC60LvQsNGB0YHQsCB7QGxpbmsgU2NDYXRhbG9nU2VydmljZX0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gaHR0cCDQodC10YDQstC40YEg0LTQu9GPINCy0YvQv9C+0LvQvdC10L3QuNGPIEhUVFAt0LfQsNC/0YDQvtGB0L7Qsi5cbiAgICAgKiBAcGFyYW0gdXJscyDQodC/0LjRgdC+0Log0YHRgdGL0LvQvtC6INC90LAg0YDQsNC30LTQtdC70YsgYmFja2VuZCdhLlxuICAgICAqIEBwYXJhbSB1aVNlcnZpY2Ug0KHQtdGA0LLQuNGBINC00LvRjyDRgNCw0LHQvtGC0Ysg0YEgVUkuXG4gICAgICogQHBhcmFtIGNvbnZlcnRlcnNTZXJ2aWNlINCh0LXRgNCy0LjRgSDQutC+0L3QstC10YDRgtCw0YbQuNC4INC00LDQvdC90YvRhS5cbiAgICAgKiBAcGFyYW0gY2FjaGVMaWZlVGltZSDQntCx0YrQtdC60YIg0YEg0LjQvdGE0L7RgNC80LDRhtC40LXQuSDQviDQstGA0LXQvNC10L3QuCDQttC40LfQvdC4INC00LDQvdC90YvRhS5cbiAgICAgKiBAcGFyYW0gdXNlck1ldHJpa2FTZXJ2aWNlINCh0LXRgNCy0LjRgSDQtNC70Y8g0YHQsdC+0YDQsCDQvNC10YLRgNC40Log0L4g0LTQtdC50YHRgtCy0LjRj9GFINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtdC5LlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBodHRwOiBIdHRwQ2xpZW50LFxuICAgICAgICBASW5qZWN0KFNDX1VSTFMpIHByaXZhdGUgcmVhZG9ubHkgdXJsczogU2NJVXJscyxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB1aVNlcnZpY2U6IFNjVUlTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNvbnZlcnRlcnNTZXJ2aWNlOiBTY0NvbnZlcnRlcnNTZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KFNDX0NBQ0hFX0xJRkVUSU1FKSBwcml2YXRlIHJlYWRvbmx5IGNhY2hlTGlmZVRpbWU6IFNjSUNhY2hlTGlmZXRpbWUsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdXNlck1ldHJpa2FTZXJ2aWNlOiBTY1VzZXJNZXRyaWthU2VydmljZVxuICAgICkge1xuICAgICAgICB0aGlzLnVzZXJTZXJ2aWNlXG4gICAgICAgICAgICAuZ2V0VXNlckNoYW5nZSQoKVxuICAgICAgICAgICAgLnBpcGUoc2tpcCgxKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaWRDYXRlZ29yeU1hcC5jbGVhcigpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2F0ZWdvcnlNYXAuY2xlYXIoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnByb2R1Y3RIaXN0b3J5TWFwLmNsZWFyKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9kdWN0TWFwLmNsZWFyKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jYXRlZ29yeVByb2R1Y3RzTWFwLmNsZWFyKCk7XG4gICAgICAgICAgICAgICAgdGhpcy52aXJ0dWFsQ2F0ZWdvcnlNYXAuY2xlYXIoKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINC60LDRgtC10LPQvtGA0LjRjiDQuNC3INC60L7Qu9C70LXQutGG0LjQuCDQutCw0YLQsNC70L7Qs9CwLCDQtdGB0LvQuCDQtdGRINGB0YDQvtC6INC20LjQt9C90Lgg0L3QtSDQuNGB0YLRkdC6LlxuICAgICAqXG4gICAgICogQGRlcHJlY2F0ZWQg0KPQtNCw0LvQuNGC0Ywg0LIg0YDQsNC80LrQsNGFINC30LDQtNCw0YfQuCBUQVNLWyMxMDE1M10uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY2F0ZWdvcnlJZE9yU2x1ZyDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQuNC70Lggc2x1ZyDQutCw0YLQtdCz0L7RgNC40Lgg0YLQvtCy0LDRgNC+0LIuXG4gICAgICovXG4gICAgcHVibGljIGdldENhdGVnb3J5RnJvbU1hcChjYXRlZ29yeUlkT3JTbHVnPzogbnVtYmVyIHwgc3RyaW5nKTogU2NDYXRlZ29yeSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGNvbnN0IGNhdGVnb3J5ID0gdGhpcy5pZENhdGVnb3J5TWFwLmdldChjYXRlZ29yeUlkT3JTbHVnPy50b1N0cmluZygpKTtcblxuICAgICAgICBpZiAoY2F0ZWdvcnkgJiYgKCFjYXRlZ29yeS5wYXJlbnRJZCB8fCAhY2F0ZWdvcnkubG9hZGVkQXQgfHwgY2F0ZWdvcnkuY2FjaGVkRGF0YUlzQWN0dWFsKHRoaXMuY2FjaGVMaWZlVGltZS5jYXRlZ29yeURhdGEpKSkge1xuICAgICAgICAgICAgcmV0dXJuIGNhdGVnb3J5O1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pZENhdGVnb3J5TWFwLmRlbGV0ZShjYXRlZ29yeUlkT3JTbHVnPy50b1N0cmluZygpKTtcblxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCh0L7Qt9C00LDQtdGCINC30LDQv9GA0L7RgSDQv9C+0LvRg9GH0LXQvdC40Y8g0YHQv9C40YHQutCwINC60LDRgtC10LPQvtGA0LjQuSDRgtC+0LLQsNGA0L7QsiDQuNC70Lgg0YHQv9C40YHQvtC6INC60L7RgNC90LXQstGL0YUg0LrQsNGC0LXQs9C+0YDQuNC5LCDQtdGB0LvQuCDQuNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQutCw0YLQtdCz0L7RgNC40Lgg0L3QtSDRg9C60LDQt9Cw0L0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY2F0ZWdvcnlJZE9yU2x1ZyDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQuNC70Lggc2x1ZyDQutCw0YLQtdCz0L7RgNC40Lgg0YLQvtCy0LDRgNC+0LIuXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRDYXRlZ29yeURhdGEkKGNhdGVnb3J5SWRPclNsdWc/OiBudW1iZXIgfCBzdHJpbmcpOiBPYnNlcnZhYmxlPFNjQ2F0ZWdvcnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8U2NJQ2F0ZWdvcnlEVE8+KGAke3RoaXMudXJscy5hcGlVcmx9L2NhdGFsb2cvY2F0ZWdvcmllcy8ke2NhdGVnb3J5SWRPclNsdWcgPz8gJyd9YCkucGlwZShcbiAgICAgICAgICAgIG1hcCgoY2F0ZWdvcnkpID0+IG5ldyBTY0NhdGVnb3J5KGNhdGVnb3J5KSksXG4gICAgICAgICAgICB0YXAoKGNhdGVnb3J5KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGNhdGVnb3J5SWRPclNsdWcpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jYXRlZ29yeUlkT3JTbHVnTWFwLnNldCh0eXBlb2YgY2F0ZWdvcnlJZE9yU2x1ZyA9PT0gJ3N0cmluZycgPyBjYXRlZ29yeS5pZCA6IGNhdGVnb3J5LnNsdWcsIGNhdGVnb3J5SWRPclNsdWcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgICAgICB0YXAoKGNhdGVnb3J5KSA9PlxuICAgICAgICAgICAgICAgIGNhdGVnb3J5LmNhdGVnb3JpZXM/LmZvckVhY2goKHN1YkNhdGVnb3J5KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICAgICAgICAgICAgICBzdWJDYXRlZ29yeS5wYXJlbnRDYXRlZ29yeSA9IGNhdGVnb3J5O1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INC60L7RgNC90LXQstGL0YUg0LrQsNGC0LXQs9C+0YDQuNC5INGBINC90LDRgdGC0YDQvtC50LrQsNC80Lgg0L7RgtC+0LHRgNCw0LbQtdC90LjRjywg0YfRgtC+0LHRiyDRgNC10LDQs9C40YDQvtCy0LDRgtGMINC90LAg0LjQt9C80LXQvdC10L3QuNGPLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRGaWx0ZXJlZFJvb3RDYXRlZ29yaWVzJCgpOiBPYnNlcnZhYmxlPFNjQ2F0ZWdvcnlbXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy51aVNlcnZpY2UuZ2V0SGlkZGVuQ2F0ZWdvcmllc0xpc3QkKCkucGlwZShcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoZmlsdGVycykgPT5cbiAgICAgICAgICAgICAgICB0aGlzLmdldFJvb3RDYXRlZ29yaWVzJCgpLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcih0dWlJc1ByZXNlbnQpLFxuICAgICAgICAgICAgICAgICAgICBtYXAoKGRhdGEpID0+IGRhdGEuZmlsdGVyKChjYXRlZ29yeSkgPT4gY2F0ZWdvcnkuaWQgJiYgIWZpbHRlcnMuaW5jbHVkZXMoY2F0ZWdvcnkuaWQpKSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INGB0L7QtNC10YDQttC40LzQvtCz0L4g0LLQuNGA0YLRg9Cw0LvRjNC90L7QuSDQutCw0YLQtdCz0L7RgNC40LguXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc2x1ZyDQodC40LzQstC+0LvRjNC90YvQuSDQuNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQstC40YDRgtGD0LDQu9GM0L3QvtC5INC60LDRgtC10LPQvtGA0LjQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0VmlydHVhbENhdGVnb3J5Q2FjaGVkJChzbHVnOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFNjVmlydHVhbENhdGVnb3J5IHwgbnVsbD4ge1xuICAgICAgICBsZXQgY2FjaGVkSXRlbSA9IHRoaXMudmlydHVhbENhdGVnb3J5TWFwLmdldChzbHVnLnRvU3RyaW5nKCkpO1xuXG4gICAgICAgIGlmICghY2FjaGVkSXRlbSkge1xuICAgICAgICAgICAgY2FjaGVkSXRlbSA9IG5ldyBTY0NhY2hlZEl0ZW0oXG4gICAgICAgICAgICAgICAgdGhpcy5jYWNoZUxpZmVUaW1lLmNhdGVnb3J5RGF0YSxcbiAgICAgICAgICAgICAgICB0aGlzLmh0dHAuZ2V0PFNjSVZpcnR1YWxDYXRlZ29yeURUTz4oYCR7dGhpcy51cmxzLmFwaVVybH0vY2F0YWxvZy92LWNhdGVnb3JpZXMvJHtzbHVnfWApLnBpcGUobWFwKChjYXRlZ29yeSkgPT4gbmV3IFNjVmlydHVhbENhdGVnb3J5KGNhdGVnb3J5KSkpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICB0aGlzLnZpcnR1YWxDYXRlZ29yeU1hcC5zZXQoc2x1Zy50b1N0cmluZygpLCBjYWNoZWRJdGVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghY2FjaGVkSXRlbS5jYWNoZWREYXRhSXNBY3R1YWwoKSkge1xuICAgICAgICAgICAgY2FjaGVkSXRlbS51cGRhdGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjYWNoZWRJdGVtLml0ZW0kO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDRgdC+0LTQtdGA0LbQuNC80L7Qs9C+INC60LDRgtC10LPQvtGA0LjQuC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjYXRlZ29yeUlkT3JTbHVnINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINC40LvQuCBzbHVnINC60LDRgtC10LPQvtGA0LjQuCDRgtC+0LLQsNGA0L7Qsi5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Q2F0ZWdvcnlDYWNoZWQkKGNhdGVnb3J5SWRPclNsdWc/OiBudW1iZXIgfCBzdHJpbmcpOiBPYnNlcnZhYmxlPFNjQ2F0ZWdvcnkgfCBudWxsPiB7XG4gICAgICAgIGlmIChjYXRlZ29yeUlkT3JTbHVnICYmIHRoaXMuY2F0ZWdvcnlJZE9yU2x1Z01hcC5oYXMoY2F0ZWdvcnlJZE9yU2x1ZykpIHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICAgICAgY2F0ZWdvcnlJZE9yU2x1ZyA9IHRoaXMuY2F0ZWdvcnlJZE9yU2x1Z01hcC5nZXQoY2F0ZWdvcnlJZE9yU2x1Zyk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgY2FjaGVkSXRlbSA9IHRoaXMuY2F0ZWdvcnlNYXAuZ2V0KGNhdGVnb3J5SWRPclNsdWc/LnRvU3RyaW5nKCkpO1xuXG4gICAgICAgIGlmICghY2FjaGVkSXRlbSkge1xuICAgICAgICAgICAgY2FjaGVkSXRlbSA9IG5ldyBTY0NhY2hlZEl0ZW0odGhpcy5jYWNoZUxpZmVUaW1lLmNhdGVnb3J5RGF0YSwgdGhpcy5nZXRDYXRlZ29yeURhdGEkKGNhdGVnb3J5SWRPclNsdWcpKTtcbiAgICAgICAgICAgIHRoaXMuY2F0ZWdvcnlNYXAuc2V0KGNhdGVnb3J5SWRPclNsdWc/LnRvU3RyaW5nKCksIGNhY2hlZEl0ZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFjYWNoZWRJdGVtLmNhY2hlZERhdGFJc0FjdHVhbCgpKSB7XG4gICAgICAgICAgICBjYWNoZWRJdGVtLnVwZGF0ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNhY2hlZEl0ZW0uaXRlbSQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KHQvtC30LTQsNC10YIg0LfQsNC/0YDQvtGBINC/0L7Qu9GD0YfQtdC90LjRjyDQutC+0YDQvdC10LLRi9GFINC60LDRgtC10LPQvtGA0LjQuS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0TnVsbENhdGVnb3J5JCgpOiBPYnNlcnZhYmxlPFNjQ2F0ZWdvcnkgfCBudWxsPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldENhdGVnb3J5Q2FjaGVkJCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCh0L7Qt9C00LDQtdGCINC30LDQv9GA0L7RgSDQv9C+0LvRg9GH0LXQvdC40Y8g0LrQvtGA0L3QtdCy0YvRhSDQutCw0YLQtdCz0L7RgNC40LkuXG4gICAgICovXG4gICAgcHVibGljIGdldFJvb3RDYXRlZ29yaWVzJCgpOiBPYnNlcnZhYmxlPFNjQ2F0ZWdvcnlbXSB8IG51bGw+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TnVsbENhdGVnb3J5JCgpLnBpcGUobWFwKChudWxsQ2F0ZWdvcnkpID0+IG51bGxDYXRlZ29yeT8uY2F0ZWdvcmllcyA/PyBudWxsKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KDQsNGB0LrRgNGL0LLQsNC10YIg0LrQsNGC0LDQu9C+0LMg0LTQviDRg9C60LDQt9Cw0L3QvdC+0Lkg0LrQsNGC0LXQs9C+0YDQuNC4LlxuICAgICAqXG4gICAgICogQHBhcmFtIGNhdGVnb3J5SWRPclNsdWcg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0LjQu9C4IHNsdWcg0LrQsNGC0LXQs9C+0YDQuNC4LCDQtNC+INC60L7RgtC+0YDQvtC5INC90LXQvtCx0YXQvtC00LjQvNC+INGA0LDRgdC60YDRi9GC0Ywg0LrQsNGC0LDQu9C+0LMuXG4gICAgICogQHJldHVybnMg0JLQvtC30LLRgNCw0YnQsNC10YIg0YHQv9C40YHQvtC6INGA0LDRgdC60YDRi9GC0YvRhSDQutCw0YLQtdCz0L7RgNC40LkuXG4gICAgICovXG4gICAgcHVibGljIGxvYWRDYXRhbG9nVHJlZUNhY2hlZCQoY2F0ZWdvcnlJZE9yU2x1ZzogbnVtYmVyIHwgc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldENhdGVnb3J5Q2FjaGVkJChjYXRlZ29yeUlkT3JTbHVnKS5waXBlKFxuICAgICAgICAgICAgZmlsdGVyKHR1aUlzUHJlc2VudCksXG4gICAgICAgICAgICBmaXJzdCgpLFxuICAgICAgICAgICAgZXhwYW5kKChjYXRlZ29yeSkgPT4gKGNhdGVnb3J5LnBhcmVudElkID8gdGhpcy5nZXRDYXRlZ29yeUNhY2hlZCQoY2F0ZWdvcnkucGFyZW50SWQpIDogdGhpcy5nZXROdWxsQ2F0ZWdvcnkkKCkpLnBpcGUoZmlsdGVyKHR1aUlzUHJlc2VudCksIGZpcnN0KCkpKSxcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktY29uZGl0aW9uLHNvbmFyanMvZGlmZmVyZW50LXR5cGVzLWNvbXBhcmlzb25cbiAgICAgICAgICAgIHRha2VXaGlsZSgocGFyZW50Q2F0ZWdvcnkpID0+IHBhcmVudENhdGVnb3J5LmlkICE9PSB1bmRlZmluZWQsIHRydWUpLFxuICAgICAgICAgICAgdG9BcnJheSgpLFxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHNvbmFyanMvbm8tbWlzbGVhZGluZy1hcnJheS1yZXZlcnNlXG4gICAgICAgICAgICBtYXAoKGNhdGVnb3JpZXMpID0+IGNhdGVnb3JpZXMucmV2ZXJzZSgpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDQv9C+0LvRg9GH0LXQvdC40Y8g0LjRgdGC0L7RgNC40Lgg0LjQt9C80LXQvdC10L3QuNGPINGG0LXQvSDQvdCwINC/0YDQvtC00YPQutGCINC00LvRjyDQutC70LjQtdC90YLQsC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwcm9kdWN0INCf0YDQvtC00YPQutGCLCDQtNC70Y8g0LrQvtGC0L7RgNC+0LPQviDQt9Cw0L/RgNCw0YjQuNCy0LDQtdGC0YHRjyDRhtC10L3QsC5cbiAgICAgKiBAcmV0dXJucyDQmNGB0YLQvtGA0LjRjyDQuNC30LzQtdC90LXQvdC40Y8g0YbQtdC9INC90LAg0L/RgNC+0LTRg9C60YIg0LTQu9GPINC60LvQuNC10L3RgtCwINCyINGE0L7RgNC80LDRgtC1IHtAbGluayBPYnNlcnZhYmxlfSDQuNC3INC30LDQv9GA0L7RgdCwLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRQcmljZUhpc3RvcnkkKHByb2R1Y3Q6IFNjUHJvZHVjdCk6IE9ic2VydmFibGU8U2NQcmljZUhpc3RvcnkgfCBudWxsPiB7XG4gICAgICAgIGxldCBjYWNoZWRJdGVtID0gdGhpcy5wcm9kdWN0SGlzdG9yeU1hcC5nZXQocHJvZHVjdC5pZC50b1N0cmluZygpKTtcblxuICAgICAgICBpZiAoIWNhY2hlZEl0ZW0pIHtcbiAgICAgICAgICAgIGNhY2hlZEl0ZW0gPSBuZXcgU2NDYWNoZWRJdGVtKFxuICAgICAgICAgICAgICAgIHRoaXMuY2FjaGVMaWZlVGltZS5jYXRlZ29yeURhdGEsXG4gICAgICAgICAgICAgICAgdGhpcy5odHRwXG4gICAgICAgICAgICAgICAgICAgIC5nZXQ8U2NQcmljZUhpc3Rvcnk+KGAke3RoaXMudXJscy5hcGlVcmx9L2NhdGFsb2cvcHJvZHVjdHMvJHtwcm9kdWN0LmlkfS9wcmljZS1oaXN0b3J5YCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDogU0NfSVNfSElEREVOX0VSUk9SX0FMRVJUX0hUVFBfQ09OVEVYVCxcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgLnBpcGUoY2F0Y2hFcnJvcigoKSA9PiBvZih7fSkpKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgdGhpcy5wcm9kdWN0SGlzdG9yeU1hcC5zZXQocHJvZHVjdC5pZC50b1N0cmluZygpLCBjYWNoZWRJdGVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjYWNoZWRJdGVtLml0ZW0kO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCh0L7Qt9C00LDQtdGCINC30LDQv9GA0L7RgSDQv9C+0LvRg9GH0LXQvdC40Y8g0YHQv9C40YHQutCwINGC0L7QstCw0YDQvtCyINC00LvRjyDQutC+0L3QutGA0LXRgtC90L7QuSDQutCw0YLQtdCz0L7RgNC40LguXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcGFyYW1zINCf0LDRgNCw0LzQtdGC0YDRiyDQt9Cw0L/RgNC+0YHQsCDRgtC+0LLQsNGA0L7QsiDQutCw0YLQtdCz0L7RgNC40LguXG4gICAgICovXG4gICAgcHVibGljIGdldFByb2R1Y3RzJChwYXJhbXM6IFNjSUNhdGVnb3J5UHJvZHVjdFBhcmFtcyk6IE9ic2VydmFibGU8U2NQcm9kdWN0W10+O1xuXG4gICAgLyoqXG4gICAgICog0KHQvtC30LTQsNC10YIg0LfQsNC/0YDQvtGBINC/0L7Qu9GD0YfQtdC90LjRjyDRgdC/0LjRgdC60LAg0YLQvtCy0LDRgNC+0LIg0LrQsNGC0LDQu9C+0LPQsCDRgSDQv9Cw0LPQuNC90LDRhtC40LXQuS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYXJhbXMg0J/QsNGA0LDQvNC10YLRgNGLINC/0LDQs9C40L3QsNGG0LjQuCDRgtC+0LLQsNGA0L7Qsi5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0UHJvZHVjdHMkKHBhcmFtczogU2NJQ2F0ZWdvcnlQcm9kdWN0UGFnaW5hdGlvblBhcmFtcyk6IE9ic2VydmFibGU8U2NJUGFnaW5hdGU8U2NQcm9kdWN0Pj47XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlZHVuZGFudC10eXBlLWNvbnN0aXR1ZW50c1xuICAgIHB1YmxpYyBnZXRQcm9kdWN0cyQocGFyYW1zOiBTY0lDYXRlZ29yeVByb2R1Y3RQYXJhbXMgfCBTY0lDYXRlZ29yeVByb2R1Y3RQYWdpbmF0aW9uUGFyYW1zKTogT2JzZXJ2YWJsZTxTY1Byb2R1Y3RbXSB8IFNjSVBhZ2luYXRlPFNjUHJvZHVjdD4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldDxTY0lQYWdpbmF0ZTxTY0lQcm9kdWN0RFRPPiB8IFNjSVByb2R1Y3REVE9bXT4oYCR7dGhpcy51cmxzLmFwaVVybH0vY2F0YWxvZy9wcm9kdWN0c2AsIHtcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1hcmd1bWVudFxuICAgICAgICAgICAgICAgIHBhcmFtczogdGhpcy5jb252ZXJ0ZXJzU2VydmljZS50b0h0dHBQYXJhbXMoeyAuLi5wYXJhbXMgfSwgeyBub25OdWxsYWJsZTogdHJ1ZSB9KSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc29uYXJqcy9mdW5jdGlvbi1yZXR1cm4tdHlwZVxuICAgICAgICAgICAgICAgIG1hcCgoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoJ21ldGEnIGluIGRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNsb25lRGF0YSA9IHN0cnVjdHVyZWRDbG9uZShkYXRhKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY2xvbmVEYXRhLmRhdGEgPSBjbG9uZURhdGEuZGF0YS5tYXAoKGl0ZW0pID0+IG5ldyBTY1Byb2R1Y3QoaXRlbSkpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2xvbmVEYXRhIGFzIFNjSVBhZ2luYXRlPFNjUHJvZHVjdD47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZGF0YS5tYXAoKGl0ZW0sIGluZGV4KSA9PiBuZXcgU2NQcm9kdWN0KGl0ZW0sIGluZGV4KSk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KHQvtC30LTQsNC10YIg0LfQsNC/0YDQvtGBINC/0L7Qu9GD0YfQtdC90LjRjyDRgdC/0LjRgdC60LAg0YLQvtCy0LDRgNC+0LIg0LrQsNGC0LXQs9C+0YDQuNC4INC4INC60Y3RiNC40YDRg9C10YIg0LXQs9C+LlxuICAgICAqXG4gICAgICogQHBhcmFtIHBhcmFtcyDQn9Cw0YDQsNC80LXRgtGA0Ysg0LfQsNC/0YDQvtGB0LAg0YLQvtCy0LDRgNC+0LIg0LrQsNGC0LXQs9C+0YDQuNC4LlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRQcm9kdWN0c0NhdGVnb3J5Q2FjaGVkJChwYXJhbXM6IFNjSUNhdGVnb3J5UHJvZHVjdFBhcmFtcyk6IE9ic2VydmFibGU8U2NQcm9kdWN0W10gfCBudWxsPiB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLW1lbWJlci1hY2Nlc3NcbiAgICAgICAgaWYgKCFwYXJhbXMuY2F0ZWdvcnlJZCAmJiAhcGFyYW1zLmNhdGVnb3J5U2x1Zykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCfQndC1INGD0LrQsNC30LDQvSBpZC9zbHVnINC60LDRgtC10LPQvtGA0LjQuC4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uLEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtYXNzaWdubWVudCxAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLW1lbWJlci1hY2Nlc3NcbiAgICAgICAgY29uc3QgY2FjaGVkS2V5ID0gKHBhcmFtcy5jYXRlZ29yeVNsdWcgPz8gcGFyYW1zLmNhdGVnb3J5SWQpITtcblxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1hcmd1bWVudCxAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWNhbGwsQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1tZW1iZXItYWNjZXNzXG4gICAgICAgIGxldCBjYWNoZWRJdGVtID0gdGhpcy5jYXRlZ29yeVByb2R1Y3RzTWFwLmdldChjYWNoZWRLZXkudG9TdHJpbmcoKSk7XG5cbiAgICAgICAgaWYgKCFjYWNoZWRJdGVtKSB7XG4gICAgICAgICAgICBjYWNoZWRJdGVtID0gbmV3IFNjQ2FjaGVkSXRlbSh0aGlzLmNhY2hlTGlmZVRpbWUuY2F0ZWdvcnlEYXRhLCB0aGlzLmdldFByb2R1Y3RzJChwYXJhbXMpKTtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLW1lbWJlci1hY2Nlc3MsQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1hcmd1bWVudCxAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWNhbGxcbiAgICAgICAgICAgIHRoaXMuY2F0ZWdvcnlQcm9kdWN0c01hcC5zZXQoY2FjaGVkS2V5LnRvU3RyaW5nKCksIGNhY2hlZEl0ZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFjYWNoZWRJdGVtLmNhY2hlZERhdGFJc0FjdHVhbCgpKSB7XG4gICAgICAgICAgICBjYWNoZWRJdGVtLnVwZGF0ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNhY2hlZEl0ZW0uaXRlbSQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0LjQvdGE0L7RgNC80LDRhtC40Y4g0L7QsSDRg9C60LDQt9Cw0L3QvdC+0Lwg0L/RgNC+0LTRg9C60YLQtS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwcm9kdWN0SWRPclNsdWcg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0LjQu9C4IHNsdWcg0YLQvtCy0LDRgNCwL9GD0YHQu9GD0LPQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0UHJvZHVjdERhdGEkKHByb2R1Y3RJZE9yU2x1ZzogbnVtYmVyIHwgc3RyaW5nKTogT2JzZXJ2YWJsZTxTY1Byb2R1Y3Q+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8U2NJUHJvZHVjdERUTz4oYCR7dGhpcy51cmxzLmFwaVVybH0vY2F0YWxvZy9wcm9kdWN0cy8ke3Byb2R1Y3RJZE9yU2x1Z31gKS5waXBlKFxuICAgICAgICAgICAgbWFwKChwcm9kdWN0RFRPKSA9PiBuZXcgU2NQcm9kdWN0KHByb2R1Y3REVE8pKSxcbiAgICAgICAgICAgIHRhcCgocHJvZHVjdCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChwcm9kdWN0SWRPclNsdWcpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9kdWN0SWRPclNsdWdNYXAuc2V0KHR5cGVvZiBwcm9kdWN0SWRPclNsdWcgPT09ICdzdHJpbmcnID8gcHJvZHVjdC5pZCA6IHByb2R1Y3Quc2x1ZywgcHJvZHVjdElkT3JTbHVnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRQcm9kdWN0RGF0YUNhY2hlZCQocHJvZHVjdElkT3JTbHVnOiBudW1iZXIgfCBzdHJpbmcpOiBPYnNlcnZhYmxlPFNjUHJvZHVjdCB8IG51bGw+IHtcbiAgICAgICAgY29uc3QgdmFsdWVGcm9tTWFwID0gdGhpcy5wcm9kdWN0SWRPclNsdWdNYXAuZ2V0KHByb2R1Y3RJZE9yU2x1Zyk7XG5cbiAgICAgICAgaWYgKHZhbHVlRnJvbU1hcCkge1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgICAgICBwcm9kdWN0SWRPclNsdWcgPSB2YWx1ZUZyb21NYXA7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGNhY2hlZEl0ZW0gPSB0aGlzLnByb2R1Y3RNYXAuZ2V0KHByb2R1Y3RJZE9yU2x1Zy50b1N0cmluZygpKTtcblxuICAgICAgICBpZiAoIWNhY2hlZEl0ZW0pIHtcbiAgICAgICAgICAgIGNhY2hlZEl0ZW0gPSBuZXcgU2NDYWNoZWRJdGVtKHRoaXMuY2FjaGVMaWZlVGltZS5jYXRlZ29yeURhdGEsIHRoaXMuZ2V0UHJvZHVjdERhdGEkKHByb2R1Y3RJZE9yU2x1ZykpO1xuICAgICAgICAgICAgdGhpcy5wcm9kdWN0TWFwLnNldChwcm9kdWN0SWRPclNsdWcudG9TdHJpbmcoKSwgY2FjaGVkSXRlbSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWNhY2hlZEl0ZW0uY2FjaGVkRGF0YUlzQWN0dWFsKCkpIHtcbiAgICAgICAgICAgIGNhY2hlZEl0ZW0udXBkYXRlKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY2FjaGVkSXRlbS5pdGVtJDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQodC+0LfQtNCw0ZHRgiDQt9Cw0L/RgNC+0YEg0L3QsCDQv9C+0LvRg9GH0LXQvdC40LUg0LPQtdC90LXRgNC40YDRg9C10LzQvtCz0L4g0YTQsNC50LvQsCDQv9GA0LDQudGBLdC70LjRgdGC0LAg0LIg0YTQvtGA0LzQsNGC0LUge0BsaW5rIEJsb2J9LCDQuCDQstGL0LPRgNGD0LbQsNC10YIg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GOINCyINCx0YDQsNGD0LfQtdGALlxuICAgICAqXG4gICAgICogQHBhcmFtIHR5cGUge0BsaW5rIFNjTWltZVR5cGVzfSDQt9Cw0L/RgNCw0YjQuNCy0LDQtdC80L7Qs9C+INGE0LDQudC70LAuXG4gICAgICogQHBhcmFtIGNhdGVnb3J5SWQg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0LrQsNGC0LXQs9C+0YDQuNC4LCDQtNC70Y8g0LrQvtGC0L7RgNC+0Lkg0LfQsNCz0YDRg9C20LDQtdGC0YHRjyDQv9GA0LDQudGBLdC70LjRgdGCLlxuICAgICAqL1xuICAgIHB1YmxpYyBkb3dubG9hZFByaWNlJCh0eXBlOiBTY01pbWVUeXBlcywgY2F0ZWdvcnlJZD86IG51bWJlcik6IE9ic2VydmFibGU8QmxvYj4ge1xuICAgICAgICBjb25zdCBwYXJhbXMgPSB0aGlzLmNvbnZlcnRlcnNTZXJ2aWNlLnRvSHR0cFBhcmFtcyhcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBmb3JtYXQ6IE9iamVjdC5rZXlzKFNjTWltZVR5cGVzKVtPYmplY3QudmFsdWVzKFNjTWltZVR5cGVzKS5pbmRleE9mKHR5cGUpXSxcbiAgICAgICAgICAgICAgICBjYXRlZ29yeV9pZDogY2F0ZWdvcnlJZCA/PyBudWxsLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHsgbm9uTnVsbGFibGU6IHRydWUgfVxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMudXJscy5hcGlVcmx9L2NhdGFsb2cvZG93bmxvYWRgLCB7IHJlc3BvbnNlVHlwZTogJ2Jsb2InLCBwYXJhbXM6IHBhcmFtcyB9KS5waXBlKFxuICAgICAgICAgICAgbWFwKChibG9iOiBCbG9iKSA9PiBuZXcgQmxvYihbYmxvYl0sIHsgdHlwZTogdHlwZSB9KSksXG4gICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudXNlck1ldHJpa2FTZXJ2aWNlLmVtaXRVc2VyTWV0cmlrYUV2ZW50KHtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0OiBTY1VzZXJNZXRyaWthR29hbHNFbnVtLmNhdGFsb2dQcmljZURvd25sb2FkLFxuICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5X2lkOiBjYXRlZ29yeUlkID8/ICdyb290JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByaWNlX3R5cGU6IHR5cGUsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCX0LDQv9GA0L7RgSDQvdCwINGD0LLQtdC00L7QvNC70LXQvdC40LUg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPINC+INC/0L7RgdGC0YPQv9C70LXQvdC40Lgg0L/RgNC+0LTRg9C60YLQsC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwcm9kdWN0SWRPclNsdWcg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0LjQu9C4IHNsdWcg0YLQvtCy0LDRgNCwLlxuICAgICAqIEBwYXJhbSBkYXRhINCU0LDQvdC90YvQtSDQtNC70Y8g0LfQsNC/0YDQvtGB0LAuXG4gICAgICovXG4gICAgcHVibGljIGdldFByb2R1Y3ROb3RpZnlXaGVuSW5TdG9jayQocHJvZHVjdElkT3JTbHVnOiBzdHJpbmcgfCBudW1iZXIsIGRhdGE6IFNjSVByb2R1Y3ROb3RpZnlXaGVuSW5TdG9jayk6IE9ic2VydmFibGU8dW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDx1bmRlZmluZWQ+KGAke3RoaXMudXJscy5hcGlVcmx9L2NhdGFsb2cvcHJvZHVjdHMvJHtwcm9kdWN0SWRPclNsdWd9L3N0b2NrLW5vdGlmeWAsIGRhdGEpO1xuICAgIH1cbn1cbiJdfQ==
|
|
341
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtY2F0YWxvZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9jYXRhbG9nL3NlcnZpY2VzL3NjLWNhdGFsb2cuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFNckksT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzlGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBRTdGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDMUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWhELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMv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QUFFLElBQUk7aUJBQ25CO2FBQ0osQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNOLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLDRCQUE0QixDQUFDLGVBQWdDLEVBQUUsSUFBaUM7UUFDbkcsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxxQkFBcUIsZUFBZSxlQUFlLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbkgsQ0FBQzsrR0E1WlEsZ0JBQWdCLDRDQTJGYixPQUFPLDJFQUdQLGlCQUFpQjttSEE5RnBCLGdCQUFnQixjQUZiLE1BQU07OzRGQUVULGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQTRGUSxNQUFNOzJCQUFDLE9BQU87OzBCQUdkLE1BQU07MkJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gbm9pbnNwZWN0aW9uIFR5cGVTY3JpcHRWYWxpZGF0ZVR5cGVzXG5cbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3QsIGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdHVpSXNQcmVzZW50IH0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBleHBhbmQsIGZpbHRlciwgZmlyc3QsIG1hcCwgT2JzZXJ2YWJsZSwgb2YsIHNoYXJlUmVwbGF5LCBza2lwLCBzd2l0Y2hNYXAsIHRha2VXaGlsZSwgdGFwLCB0b0FycmF5IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNjSUNhY2hlTGlmZXRpbWUgfSBmcm9tICcuLi8uLi9jb25maWcvc2MtaS1jYWNoZS1saWZldGltZSc7XG5pbXBvcnQgeyBTY0lVcmxzIH0gZnJvbSAnLi4vLi4vY29uZmlnL3NjLWktdXJscyc7XG5pbXBvcnQgeyBTY0NvbnZlcnRlcnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29udmVydGVycy9zZXJ2aWNlcy9zYy1jb252ZXJ0ZXJzLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2NJUGFnaW5hdGUgfSBmcm9tICcuLi8uLi9wYWdpbmF0aW9uL2R0by9zYy1pLXBhZ2luYXRlJztcbmltcG9ydCB7IFNjSWRPclNsdWdQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMvc2MtaWQtb3Itc2x1Zy5waXBlJztcbmltcG9ydCB7IFNDX0NBQ0hFX0xJRkVUSU1FIH0gZnJvbSAnLi4vLi4vdG9rZW5zL3NjLWNhY2hlLWxpZmV0aW1lJztcbmltcG9ydCB7IFNDX0lTX0hJRERFTl9FUlJPUl9BTEVSVF9IVFRQX0NPTlRFWFQgfSBmcm9tICcuLi8uLi90b2tlbnMvc2MtaXMtaGlkZGVuLWVycm9yLWFsZXJ0JztcbmltcG9ydCB7IFNDX1VSTFMgfSBmcm9tICcuLi8uLi90b2tlbnMvc2MtdXJscyc7XG5pbXBvcnQgeyBTY1VJU2VydmljZSB9IGZyb20gJy4uLy4uL3VpL3NlcnZpY2VzL3NjLXVpLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2NVc2VyU2VydmljZSB9IGZyb20gJy4uLy4uL3VzZXIvc2VydmljZXMvc2MtdXNlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNDX1VTRVJfSU5GTyB9IGZyb20gJy4uLy4uL3VzZXIvdG9rZW5zL3NjLXVzZXItcHJvdmlkZXJzJztcbmltcG9ydCB7IFNjVXNlck1ldHJpa2FHb2Fsc0VudW0gfSBmcm9tICcuLi8uLi91c2VyLW1ldHJpa2EvZW51bXMvc2MtdXNlci1tZXRyaWthLWdvYWxzLWVudW0nO1xuaW1wb3J0IHsgU2NVc2VyTWV0cmlrYVNlcnZpY2UgfSBmcm9tICcuLi8uLi91c2VyLW1ldHJpa2Evc2VydmljZXMvc2MtdXNlci1tZXRyaWthLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2NDYWNoZWRJdGVtIH0gZnJvbSAnLi4vY2xhc3Nlcyc7XG5pbXBvcnQgeyBTY0NhdGVnb3J5IH0gZnJvbSAnLi4vZHRvL3NjLWNhdGVnb3J5JztcbmltcG9ydCB7IFNjSVByb2R1Y3ROb3RpZnlXaGVuSW5TdG9jayB9IGZyb20gJy4uL2R0by9zYy1pLXByb2R1Y3Qtbm90aWZ5LXdoZW4taW4tc3RvY2snO1xuaW1wb3J0IHsgU2NQcm9kdWN0IH0gZnJvbSAnLi4vZHRvL3NjLXByb2R1Y3QnO1xuaW1wb3J0IHsgU2NWaXJ0dWFsQ2F0ZWdvcnkgfSBmcm9tICcuLi9kdG8vc2MtdmlydHVhbC1jYXRlZ29yeSc7XG5pbXBvcnQgeyBTY01pbWVUeXBlcyB9IGZyb20gJy4uL2VudW1zL3NjLW1pbWUtdHlwZXMnO1xuaW1wb3J0IHsgU2NJQ2F0ZWdvcnlQcm9kdWN0UGFyYW1zIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9zYy1pLWNhdGVnb3J5LXByb2R1Y3QtcGFyYW1zJztcbmltcG9ydCB7IFNjSUNhdGVnb3J5UHJvZHVjdFBhZ2luYXRpb25QYXJhbXMgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3NjLWktY2F0ZWdvcnktcHJvZHVjdHMtcGFnaW5hdGlvbi1wYXJhbXMnO1xuaW1wb3J0IHsgU2NJQ2F0ZWdvcnlEVE8sIFNjSVByb2R1Y3REVE8gfSBmcm9tICcuLi9pbnRlcm5hbCc7XG5pbXBvcnQgeyBTY0lWaXJ0dWFsQ2F0ZWdvcnlEVE8gfSBmcm9tICcuLi9pbnRlcm5hbC9zYy1pLXZpcnR1YWwtY2F0ZWdvcnktZHRvJztcbmltcG9ydCB7IFNDX0NPVU5UX0ZJUlNUX0RJU0NPVU5URURfUFJPRFVDVFMgfSBmcm9tICcuLi90b2tlbnMvc2MtY291bnQtZmlyc3QtZGlzY291bnRlZC1wcm9kdWN0cyc7XG5pbXBvcnQgeyBTY1ByaWNlSGlzdG9yeSB9IGZyb20gJy4uL3R5cGVzL3NjLXByaWNlLWhpc3RvcnknO1xuXG4vKipcbiAqINCh0LXRgNCy0LjRgSDQtNC70Y8g0YDQsNCx0L7RgtGLINGBINC60LDRgtCw0LvQvtCz0L7QvC5cbiAqL1xuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2NDYXRhbG9nU2VydmljZSB7XG4gICAgLyoqXG4gICAgICoge0BsaW5rIE1hcH0g0LrQvtC70LvQtdC60YbQuNGPINC/0LDRgCDQutC70Y7Rhy3Qt9C90LDRh9C10L3QuNC1INC00LvRjyDQutCw0YLQtdCz0L7RgNC40Lkg0LrQsNGC0LDQu9C+0LPQsC5cbiAgICAgKlxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICovXG4gICAgcHJpdmF0ZSBpZENhdGVnb3J5TWFwOiBNYXA8bnVtYmVyIHwgc3RyaW5nIHwgdW5kZWZpbmVkLCBTY0NhdGVnb3J5PiA9IG5ldyBNYXA8bnVtYmVyIHwgc3RyaW5nIHwgdW5kZWZpbmVkLCBTY0NhdGVnb3J5PigpO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE1hcH0g0LrQvtC70LvQtdC60YbQuNGPINC/0LDRgCDQutC70Y7Rhy3Qt9C90LDRh9C10L3QuNC1INC00LvRjyDQstC40YDRgtGD0LDQu9GM0L3Ri9GFINC60LDRgtC10LPQvtGA0LjQuS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHZpcnR1YWxDYXRlZ29yeU1hcDogTWFwPHN0cmluZywgU2NDYWNoZWRJdGVtPFNjVmlydHVhbENhdGVnb3J5Pj4gPSBuZXcgTWFwPHN0cmluZywgU2NDYWNoZWRJdGVtPFNjVmlydHVhbENhdGVnb3J5Pj4oKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBNYXB9INC60L7Qu9C70LXQutGG0LjRjyDQv9Cw0YAg0LrQu9GO0Yct0LfQvdCw0YfQtdC90LjQtSDQtNC70Y8g0LrRjdGI0LjRgNC+0LLQsNC90L3Ri9GFINC60LDRgtC10LPQvtGA0LjQuSDQutCw0YLQsNC70L7Qs9CwLlxuICAgICAqL1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8taW52YWxpZC12b2lkLXR5cGVcbiAgICBwcml2YXRlIGNhdGVnb3J5TWFwOiBNYXA8bnVtYmVyIHwgc3RyaW5nIHwgdm9pZCwgU2NDYWNoZWRJdGVtPFNjQ2F0ZWdvcnk+PiA9IG5ldyBNYXA8bnVtYmVyIHwgc3RyaW5nIHwgdm9pZCwgU2NDYWNoZWRJdGVtPFNjQ2F0ZWdvcnk+PigpO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE1hcH0g0LrQvtC70LvQtdC60YbQuNGPINC/0LDRgCDQutC70Y7Rhy3Qt9C90LDRh9C10L3QuNC1INC00LvRjyDQv9GA0L7QtNGD0LrRgtC+0LIg0LrQsNGC0LDQu9C+0LPQsC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHByb2R1Y3RNYXA6IE1hcDxudW1iZXIgfCBzdHJpbmcsIFNjQ2FjaGVkSXRlbTxTY1Byb2R1Y3Q+PiA9IG5ldyBNYXA8bnVtYmVyIHwgc3RyaW5nLCBTY0NhY2hlZEl0ZW08U2NQcm9kdWN0Pj4oKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBNYXB9INC60L7Qu9C70LXQutGG0LjRjyDQv9Cw0YAg0LrQu9GO0Yct0LfQvdCw0YfQtdC90LjQtSDQtNC70Y8g0LrRjdGI0LjRgNC+0LLQsNC90L3Ri9GFINGC0L7QstCw0YDQvtCyINC60LDRgtC10LPQvtGA0LjQuCDQutCw0YLQsNC70L7Qs9CwLlxuICAgICAqL1xuICAgIHByaXZhdGUgY2F0ZWdvcnlQcm9kdWN0c01hcDogTWFwPG51bWJlciB8IHN0cmluZywgU2NDYWNoZWRJdGVtPFNjUHJvZHVjdFtdPj4gPSBuZXcgTWFwPG51bWJlciwgU2NDYWNoZWRJdGVtPFNjUHJvZHVjdFtdPj4oKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBNYXB9INC60L7Qu9C70LXQutGG0LjRjyDQv9Cw0YAg0LrQu9GO0Yct0LfQvdCw0YfQtdC90LjQtSDQtNC70Y8g0LrRjdGI0LjRgNC+0LLQsNC90LjRjyDQuNGB0YLQvtGA0LjQuCDRhtC10L0uXG4gICAgICovXG4gICAgcHJpdmF0ZSBwcm9kdWN0SGlzdG9yeU1hcDogTWFwPG51bWJlciB8IHN0cmluZywgU2NDYWNoZWRJdGVtPFNjUHJpY2VIaXN0b3J5Pj4gPSBuZXcgTWFwPG51bWJlciB8IHN0cmluZywgU2NDYWNoZWRJdGVtPFNjUHJpY2VIaXN0b3J5Pj4oKTtcblxuICAgIC8qKlxuICAgICAqINCf0LDQudC/LCDQstC+0LfQstGA0LDRidCw0Y7RidC40Lkg0LjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0LjQu9C4INGB0LjQvNCy0L7Qu9GM0L3QvtC1INC+0LHQvtC30L3QsNGH0LXQvdC40LUgKHNsdWcpINC40YHRhdC+0LTRjyDQuNC3INC90LDRgdGC0YDQvtC10Log0L7QutGA0YPQttC10L3QuNGPLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaWRPclNsdWdQaXBlOiBTY0lkT3JTbHVnUGlwZSA9IGluamVjdChTY0lkT3JTbHVnUGlwZSk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgTWFwfSDQutC+0LvQu9C10LrRhtC40Y8g0L/QsNGAINC60LvRjtGHLdC30L3QsNGH0LXQvdC40LUg0LTQu9GPINGB0L7Qv9C+0YHRgtCw0LLQu9C10L3QuNGPIHNsdWcg0LggaWQg0LrQsNGC0LXQs9C+0YDQuNC5INC/0YDQuCDQutC10YjQuNGA0L7QstCw0L3QuNC4INC30LDQv9GA0L7RgdC+0LIsINC10YHQu9C4INC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINC+0YLQu9C40YfQsNC10YLRgdGPINC+0YIg0YPRgdGC0LDQvdC+0LLQu9C10L3QvdC+0LPQviDQsiDQv9GA0L7QtdC60YLQtSAoc2x1Zy9pZCkuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXRlZ29yeUlkT3JTbHVnTWFwOiBNYXA8bnVtYmVyIHwgc3RyaW5nLCBudW1iZXIgfCBzdHJpbmc+ID0gbmV3IE1hcDxudW1iZXIgfCBzdHJpbmcsIG51bWJlciB8IHN0cmluZz4oKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBNYXB9INC60L7Qu9C70LXQutGG0LjRjyDQv9Cw0YAg0LrQu9GO0Yct0LfQvdCw0YfQtdC90LjQtSDQtNC70Y8g0YHQvtC/0L7RgdGC0LDQstC70LXQvdC40Y8gc2x1ZyDQuCBpZCDRgtC+0LLQsNGA0L7QsiDQv9GA0Lgg0LrQtdGI0LjRgNC+0LLQsNC90LjQuCDQt9Cw0L/RgNC+0YHQvtCyLCDQtdGB0LvQuCDQuNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQvtGC0LvQuNGH0LDQtdGC0YHRjyDQvtGCINGD0YHRgtCw0L3QvtCy0LvQtdC90L3QvtCz0L4g0LIg0L/RgNC+0LXQutGC0LUgKHNsdWcvaWQpLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvZHVjdElkT3JTbHVnTWFwOiBNYXA8bnVtYmVyIHwgc3RyaW5nLCBudW1iZXIgfCBzdHJpbmc+ID0gbmV3IE1hcDxudW1iZXIgfCBzdHJpbmcsIG51bWJlciB8IHN0cmluZz4oKTtcblxuICAgIC8qKlxuICAgICAqINCn0LjRgdC70L4g0L/QtdGA0LLRi9GFINC30LDQv9C40YHQtdC5INGC0L7QstCw0YDQvtCyINGB0L4g0YHQutC40LTQutC+0LkuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb3VudEZpcnN0RGlzY291bnRlZFByb2R1Y3RzOiBudW1iZXIgPSBpbmplY3QoU0NfQ09VTlRfRklSU1RfRElTQ09VTlRFRF9QUk9EVUNUUyk7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0LjQvdGE0L7RgNC80LDRhtC40Lgg0L4g0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C1LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdXNlclNlcnZpY2U6IFNjVXNlclNlcnZpY2UgPSBpbmplY3QoU2NVc2VyU2VydmljZSk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LjQt9C80LXQvdC10L3QuNGPINGB0L/QuNGB0LrQsCDRgtC+0LLQsNGA0L7QsiDRgdC+INGB0LrQuNC00LrQvtC5LlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBmaXJzdERpc2NvdW50ZWQkOiBPYnNlcnZhYmxlPFNjSVBhZ2luYXRlPFNjUHJvZHVjdD4gfCBudWxsPiA9IGluamVjdChTQ19VU0VSX0lORk8pLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgodXNlcikgPT5cbiAgICAgICAgICAgIHVzZXIuaXNHdWVzdCA/IG9mKG51bGwpIDogdGhpcy5nZXRQcm9kdWN0cyQoeyBmaWx0ZXJzOiB7IG9ubHlEaXNjb3VudGVkOiB0cnVlIH0sIHBhZ2luYXRlOiB0cnVlLCBwYWdlOiAxLCBwZXJQYWdlOiB0aGlzLmNvdW50Rmlyc3REaXNjb3VudGVkUHJvZHVjdHMgfSlcbiAgICAgICAgKSxcbiAgICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INC40LfQvNC10L3QtdC90LjRjyDRgdC/0LjRgdC60LAg0LjQtyDQv9C10YDQstGL0YUg0YLQvtCy0LDRgNC+0LIg0YHQviDRgdC60LjQtNC60L7QuS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgZmlyc3REaXNjb3VudGVkUHJvZHVjdHMkOiBPYnNlcnZhYmxlPFNjUHJvZHVjdFtdPiA9IHRoaXMuZmlyc3REaXNjb3VudGVkJC5waXBlKG1hcCgoZGF0YSkgPT4gZGF0YT8uZGF0YSA/PyBbXSkpO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INC40LfQvNC10L3QtdC90LjRjyDQvtCx0YnQtdCz0L4g0LrQvtC70LvQuNGH0LXRgdGC0LLQsCDRgtC+0LLQsNGA0LAg0YHQviDRgdC60LjQtNC60L7QuS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgY291bnREaXNjb3VudGVkUHJvZHVjdHMkOiBPYnNlcnZhYmxlPG51bWJlcj4gPSB0aGlzLmZpcnN0RGlzY291bnRlZCQucGlwZShtYXAoKGRhdGEpID0+IGRhdGE/Lm1ldGEudG90YWwgPz8gMCkpO1xuXG4gICAgLyoqXG4gICAgICog0JjQvdC40YbQuNCw0LvQuNC30LjRgNGD0LXRgiDRjdC60LfQtdC80L/Qu9GP0YAg0LrQu9Cw0YHRgdCwIHtAbGluayBTY0NhdGFsb2dTZXJ2aWNlfS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBodHRwINCh0LXRgNCy0LjRgSDQtNC70Y8g0LLRi9C/0L7Qu9C90LXQvdC40Y8gSFRUUC3Qt9Cw0L/RgNC+0YHQvtCyLlxuICAgICAqIEBwYXJhbSB1cmxzINCh0L/QuNGB0L7QuiDRgdGB0YvQu9C+0Log0L3QsCDRgNCw0LfQtNC10LvRiyBiYWNrZW5kJ2EuXG4gICAgICogQHBhcmFtIHVpU2VydmljZSDQodC10YDQstC40YEg0LTQu9GPINGA0LDQsdC+0YLRiyDRgSBVSS5cbiAgICAgKiBAcGFyYW0gY29udmVydGVyc1NlcnZpY2Ug0KHQtdGA0LLQuNGBINC60L7QvdCy0LXRgNGC0LDRhtC40Lgg0LTQsNC90L3Ri9GFLlxuICAgICAqIEBwYXJhbSBjYWNoZUxpZmVUaW1lINCe0LHRitC10LrRgiDRgSDQuNC90YTQvtGA0LzQsNGG0LjQtdC5INC+INCy0YDQtdC80LXQvdC4INC20LjQt9C90Lgg0LTQsNC90L3Ri9GFLlxuICAgICAqIEBwYXJhbSB1c2VyTWV0cmlrYVNlcnZpY2Ug0KHQtdGA0LLQuNGBINC00LvRjyDRgdCx0L7RgNCwINC80LXRgtGA0LjQuiDQviDQtNC10LnRgdGC0LLQuNGP0YUg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C10LkuXG4gICAgICovXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGh0dHA6IEh0dHBDbGllbnQsXG4gICAgICAgIEBJbmplY3QoU0NfVVJMUykgcHJpdmF0ZSByZWFkb25seSB1cmxzOiBTY0lVcmxzLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHVpU2VydmljZTogU2NVSVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY29udmVydGVyc1NlcnZpY2U6IFNjQ29udmVydGVyc1NlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoU0NfQ0FDSEVfTElGRVRJTUUpIHByaXZhdGUgcmVhZG9ubHkgY2FjaGVMaWZlVGltZTogU2NJQ2FjaGVMaWZldGltZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB1c2VyTWV0cmlrYVNlcnZpY2U6IFNjVXNlck1ldHJpa2FTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHRoaXMudXNlclNlcnZpY2VcbiAgICAgICAgICAgIC5nZXRVc2VyQ2hhbmdlJCgpXG4gICAgICAgICAgICAucGlwZShza2lwKDEpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pZENhdGVnb3J5TWFwLmNsZWFyKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jYXRlZ29yeU1hcC5jbGVhcigpO1xuICAgICAgICAgICAgICAgIHRoaXMucHJvZHVjdEhpc3RvcnlNYXAuY2xlYXIoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnByb2R1Y3RNYXAuY2xlYXIoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNhdGVnb3J5UHJvZHVjdHNNYXAuY2xlYXIoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnZpcnR1YWxDYXRlZ29yeU1hcC5jbGVhcigpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0LrQsNGC0LXQs9C+0YDQuNGOINC40Lcg0LrQvtC70LvQtdC60YbQuNC4INC60LDRgtCw0LvQvtCz0LAsINC10YHQu9C4INC10ZEg0YHRgNC+0Log0LbQuNC30L3QuCDQvdC1INC40YHRgtGR0LouXG4gICAgICpcbiAgICAgKiBAZGVwcmVjYXRlZCDQo9C00LDQu9C40YLRjCDQsiDRgNCw0LzQutCw0YUg0LfQsNC00LDRh9C4IFRBU0tbIzEwMTUzXS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjYXRlZ29yeUlkT3JTbHVnINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINC40LvQuCBzbHVnINC60LDRgtC10LPQvtGA0LjQuCDRgtC+0LLQsNGA0L7Qsi5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Q2F0ZWdvcnlGcm9tTWFwKGNhdGVnb3J5SWRPclNsdWc/OiBudW1iZXIgfCBzdHJpbmcpOiBTY0NhdGVnb3J5IHwgdW5kZWZpbmVkIHtcbiAgICAgICAgY29uc3QgY2F0ZWdvcnkgPSB0aGlzLmlkQ2F0ZWdvcnlNYXAuZ2V0KGNhdGVnb3J5SWRPclNsdWc/LnRvU3RyaW5nKCkpO1xuXG4gICAgICAgIGlmIChjYXRlZ29yeSAmJiAoIWNhdGVnb3J5LnBhcmVudENhdGVnb3J5IHx8ICFjYXRlZ29yeS5sb2FkZWRBdCB8fCBjYXRlZ29yeS5jYWNoZWREYXRhSXNBY3R1YWwodGhpcy5jYWNoZUxpZmVUaW1lLmNhdGVnb3J5RGF0YSkpKSB7XG4gICAgICAgICAgICByZXR1cm4gY2F0ZWdvcnk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmlkQ2F0ZWdvcnlNYXAuZGVsZXRlKGNhdGVnb3J5SWRPclNsdWc/LnRvU3RyaW5nKCkpO1xuXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KHQvtC30LTQsNC10YIg0LfQsNC/0YDQvtGBINC/0L7Qu9GD0YfQtdC90LjRjyDRgdC/0LjRgdC60LAg0LrQsNGC0LXQs9C+0YDQuNC5INGC0L7QstCw0YDQvtCyINC40LvQuCDRgdC/0LjRgdC+0Log0LrQvtGA0L3QtdCy0YvRhSDQutCw0YLQtdCz0L7RgNC40LksINC10YHQu9C4INC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINC60LDRgtC10LPQvtGA0LjQuCDQvdC1INGD0LrQsNC30LDQvS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjYXRlZ29yeUlkT3JTbHVnINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINC40LvQuCBzbHVnINC60LDRgtC10LPQvtGA0LjQuCDRgtC+0LLQsNGA0L7Qsi5cbiAgICAgKi9cbiAgICBwcml2YXRlIGdldENhdGVnb3J5RGF0YSQoY2F0ZWdvcnlJZE9yU2x1Zz86IG51bWJlciB8IHN0cmluZyk6IE9ic2VydmFibGU8U2NDYXRlZ29yeT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxTY0lDYXRlZ29yeURUTz4oYCR7dGhpcy51cmxzLmFwaVVybH0vY2F0YWxvZy9jYXRlZ29yaWVzLyR7Y2F0ZWdvcnlJZE9yU2x1ZyA/PyAnJ31gKS5waXBlKFxuICAgICAgICAgICAgbWFwKChjYXRlZ29yeSkgPT4gbmV3IFNjQ2F0ZWdvcnkoY2F0ZWdvcnkpKSxcbiAgICAgICAgICAgIHRhcCgoY2F0ZWdvcnkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoY2F0ZWdvcnlJZE9yU2x1Zykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNhdGVnb3J5SWRPclNsdWdNYXAuc2V0KHR5cGVvZiBjYXRlZ29yeUlkT3JTbHVnID09PSAnc3RyaW5nJyA/IGNhdGVnb3J5LmlkIDogY2F0ZWdvcnkuc2x1ZywgY2F0ZWdvcnlJZE9yU2x1Zyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LrQvtGA0L3QtdCy0YvRhSDQutCw0YLQtdCz0L7RgNC40Lkg0YEg0L3QsNGB0YLRgNC+0LnQutCw0LzQuCDQvtGC0L7QsdGA0LDQttC10L3QuNGPLCDRh9GC0L7QsdGLINGA0LXQsNCz0LjRgNC+0LLQsNGC0Ywg0L3QsCDQuNC30LzQtdC90LXQvdC40Y8uXG4gICAgICovXG4gICAgcHVibGljIGdldEZpbHRlcmVkUm9vdENhdGVnb3JpZXMkKCk6IE9ic2VydmFibGU8U2NDYXRlZ29yeVtdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnVpU2VydmljZS5nZXRIaWRkZW5DYXRlZ29yaWVzTGlzdCQoKS5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwKChmaWx0ZXJzKSA9PlxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0Um9vdENhdGVnb3JpZXMkKCkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyKHR1aUlzUHJlc2VudCksXG4gICAgICAgICAgICAgICAgICAgIG1hcCgoZGF0YSkgPT4gZGF0YS5maWx0ZXIoKGNhdGVnb3J5KSA9PiBjYXRlZ29yeS5pZCAmJiAhZmlsdGVycy5pbmNsdWRlcyhjYXRlZ29yeS5pZCkpKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiB7QGxpbmsgT2JzZXJ2YWJsZX0g0YHQvtC00LXRgNC20LjQvNC+0LPQviDQstC40YDRgtGD0LDQu9GM0L3QvtC5INC60LDRgtC10LPQvtGA0LjQuC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzbHVnINCh0LjQvNCy0L7Qu9GM0L3Ri9C5INC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINCy0LjRgNGC0YPQsNC70YzQvdC+0Lkg0LrQsNGC0LXQs9C+0YDQuNC4LlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRWaXJ0dWFsQ2F0ZWdvcnlDYWNoZWQkKHNsdWc6IHN0cmluZyk6IE9ic2VydmFibGU8U2NWaXJ0dWFsQ2F0ZWdvcnkgfCBudWxsPiB7XG4gICAgICAgIGxldCBjYWNoZWRJdGVtID0gdGhpcy52aXJ0dWFsQ2F0ZWdvcnlNYXAuZ2V0KHNsdWcpO1xuXG4gICAgICAgIGlmICghY2FjaGVkSXRlbSkge1xuICAgICAgICAgICAgY2FjaGVkSXRlbSA9IG5ldyBTY0NhY2hlZEl0ZW0oXG4gICAgICAgICAgICAgICAgdGhpcy5jYWNoZUxpZmVUaW1lLmNhdGVnb3J5RGF0YSxcbiAgICAgICAgICAgICAgICB0aGlzLmh0dHAuZ2V0PFNjSVZpcnR1YWxDYXRlZ29yeURUTz4oYCR7dGhpcy51cmxzLmFwaVVybH0vY2F0YWxvZy92LWNhdGVnb3JpZXMvJHtzbHVnfWApLnBpcGUobWFwKChjYXRlZ29yeSkgPT4gbmV3IFNjVmlydHVhbENhdGVnb3J5KGNhdGVnb3J5KSkpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICB0aGlzLnZpcnR1YWxDYXRlZ29yeU1hcC5zZXQoc2x1ZywgY2FjaGVkSXRlbSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWNhY2hlZEl0ZW0uY2FjaGVkRGF0YUlzQWN0dWFsKCkpIHtcbiAgICAgICAgICAgIGNhY2hlZEl0ZW0udXBkYXRlKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY2FjaGVkSXRlbS5pdGVtJDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiB7QGxpbmsgT2JzZXJ2YWJsZX0g0YHQvtC00LXRgNC20LjQvNC+0LPQviDQutCw0YLQtdCz0L7RgNC40LguXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY2F0ZWdvcnlJZE9yU2x1ZyDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQuNC70Lggc2x1ZyDQutCw0YLQtdCz0L7RgNC40Lgg0YLQvtCy0LDRgNC+0LIuXG4gICAgICovXG4gICAgcHVibGljIGdldENhdGVnb3J5Q2FjaGVkJChjYXRlZ29yeUlkT3JTbHVnPzogbnVtYmVyIHwgc3RyaW5nKTogT2JzZXJ2YWJsZTxTY0NhdGVnb3J5IHwgbnVsbD4ge1xuICAgICAgICBpZiAoY2F0ZWdvcnlJZE9yU2x1ZyAmJiB0aGlzLmNhdGVnb3J5SWRPclNsdWdNYXAuaGFzKGNhdGVnb3J5SWRPclNsdWcpKSB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICAgICAgICAgIGNhdGVnb3J5SWRPclNsdWcgPSB0aGlzLmNhdGVnb3J5SWRPclNsdWdNYXAuZ2V0KGNhdGVnb3J5SWRPclNsdWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGNhY2hlZEl0ZW0gPSB0aGlzLmNhdGVnb3J5TWFwLmdldChjYXRlZ29yeUlkT3JTbHVnPy50b1N0cmluZygpKTtcblxuICAgICAgICBpZiAoIWNhY2hlZEl0ZW0pIHtcbiAgICAgICAgICAgIGNhY2hlZEl0ZW0gPSBuZXcgU2NDYWNoZWRJdGVtKHRoaXMuY2FjaGVMaWZlVGltZS5jYXRlZ29yeURhdGEsIHRoaXMuZ2V0Q2F0ZWdvcnlEYXRhJChjYXRlZ29yeUlkT3JTbHVnKSk7XG4gICAgICAgICAgICB0aGlzLmNhdGVnb3J5TWFwLnNldChjYXRlZ29yeUlkT3JTbHVnPy50b1N0cmluZygpLCBjYWNoZWRJdGVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghY2FjaGVkSXRlbS5jYWNoZWREYXRhSXNBY3R1YWwoKSkge1xuICAgICAgICAgICAgY2FjaGVkSXRlbS51cGRhdGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjYWNoZWRJdGVtLml0ZW0kO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCh0L7Qt9C00LDQtdGCINC30LDQv9GA0L7RgSDQv9C+0LvRg9GH0LXQvdC40Y8g0LrQvtGA0L3QtdCy0YvRhSDQutCw0YLQtdCz0L7RgNC40LkuXG4gICAgICovXG4gICAgcHVibGljIGdldE51bGxDYXRlZ29yeSQoKTogT2JzZXJ2YWJsZTxTY0NhdGVnb3J5IHwgbnVsbD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRDYXRlZ29yeUNhY2hlZCQoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQodC+0LfQtNCw0LXRgiDQt9Cw0L/RgNC+0YEg0L/QvtC70YPRh9C10L3QuNGPINC60L7RgNC90LXQstGL0YUg0LrQsNGC0LXQs9C+0YDQuNC5LlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRSb290Q2F0ZWdvcmllcyQoKTogT2JzZXJ2YWJsZTxTY0NhdGVnb3J5W10gfCBudWxsPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldE51bGxDYXRlZ29yeSQoKS5waXBlKG1hcCgobnVsbENhdGVnb3J5KSA9PiBudWxsQ2F0ZWdvcnk/LmNhdGVnb3JpZXMgPz8gbnVsbCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCg0LDRgdC60YDRi9Cy0LDQtdGCINC60LDRgtCw0LvQvtCzINC00L4g0YPQutCw0LfQsNC90L3QvtC5INC60LDRgtC10LPQvtGA0LjQuC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjYXRlZ29yeUlkT3JTbHVnINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINC40LvQuCBzbHVnINC60LDRgtC10LPQvtGA0LjQuCwg0LTQviDQutC+0YLQvtGA0L7QuSDQvdC10L7QsdGF0L7QtNC40LzQviDRgNCw0YHQutGA0YvRgtGMINC60LDRgtCw0LvQvtCzLlxuICAgICAqIEByZXR1cm5zINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINGB0L/QuNGB0L7QuiDRgNCw0YHQutGA0YvRgtGL0YUg0LrQsNGC0LXQs9C+0YDQuNC5LlxuICAgICAqL1xuICAgIHB1YmxpYyBsb2FkQ2F0YWxvZ1RyZWVDYWNoZWQkKGNhdGVnb3J5SWRPclNsdWc6IG51bWJlciB8IHN0cmluZykge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRDYXRlZ29yeUNhY2hlZCQoY2F0ZWdvcnlJZE9yU2x1ZykucGlwZShcbiAgICAgICAgICAgIGZpbHRlcih0dWlJc1ByZXNlbnQpLFxuICAgICAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgICAgIGV4cGFuZCgoY2F0ZWdvcnkpID0+XG4gICAgICAgICAgICAgICAgKGNhdGVnb3J5LnBhcmVudENhdGVnb3J5ID8gdGhpcy5nZXRDYXRlZ29yeUNhY2hlZCQodGhpcy5pZE9yU2x1Z1BpcGUudHJhbnNmb3JtKGNhdGVnb3J5LnBhcmVudENhdGVnb3J5KSkgOiB0aGlzLmdldE51bGxDYXRlZ29yeSQoKSkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyKHR1aUlzUHJlc2VudCksXG4gICAgICAgICAgICAgICAgICAgIGZpcnN0KClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bm5lY2Vzc2FyeS1jb25kaXRpb24sc29uYXJqcy9kaWZmZXJlbnQtdHlwZXMtY29tcGFyaXNvblxuICAgICAgICAgICAgdGFrZVdoaWxlKChwYXJlbnRDYXRlZ29yeSkgPT4gcGFyZW50Q2F0ZWdvcnkucGFyZW50Q2F0ZWdvcnkgIT09IHVuZGVmaW5lZCwgdHJ1ZSksXG4gICAgICAgICAgICB0b0FycmF5KCksXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc29uYXJqcy9uby1taXNsZWFkaW5nLWFycmF5LXJldmVyc2VcbiAgICAgICAgICAgIG1hcCgoY2F0ZWdvcmllcykgPT4gY2F0ZWdvcmllcy5yZXZlcnNlKCkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INC/0L7Qu9GD0YfQtdC90LjRjyDQuNGB0YLQvtGA0LjQuCDQuNC30LzQtdC90LXQvdC40Y8g0YbQtdC9INC90LAg0L/RgNC+0LTRg9C60YIg0LTQu9GPINC60LvQuNC10L3RgtCwLlxuICAgICAqXG4gICAgICogQHBhcmFtIHByb2R1Y3Qg0J/RgNC+0LTRg9C60YIsINC00LvRjyDQutC+0YLQvtGA0L7Qs9C+INC30LDQv9GA0LDRiNC40LLQsNC10YLRgdGPINGG0LXQvdCwLlxuICAgICAqIEByZXR1cm5zINCY0YHRgtC+0YDQuNGPINC40LfQvNC10L3QtdC90LjRjyDRhtC10L0g0L3QsCDQv9GA0L7QtNGD0LrRgiDQtNC70Y8g0LrQu9C40LXQvdGC0LAg0LIg0YTQvtGA0LzQsNGC0LUge0BsaW5rIE9ic2VydmFibGV9INC40Lcg0LfQsNC/0YDQvtGB0LAuXG4gICAgICovXG4gICAgcHVibGljIGdldFByaWNlSGlzdG9yeSQocHJvZHVjdDogU2NQcm9kdWN0KTogT2JzZXJ2YWJsZTxTY1ByaWNlSGlzdG9yeSB8IG51bGw+IHtcbiAgICAgICAgbGV0IGNhY2hlZEl0ZW0gPSB0aGlzLnByb2R1Y3RIaXN0b3J5TWFwLmdldChwcm9kdWN0LmlkLnRvU3RyaW5nKCkpO1xuXG4gICAgICAgIGlmICghY2FjaGVkSXRlbSkge1xuICAgICAgICAgICAgY2FjaGVkSXRlbSA9IG5ldyBTY0NhY2hlZEl0ZW0oXG4gICAgICAgICAgICAgICAgdGhpcy5jYWNoZUxpZmVUaW1lLmNhdGVnb3J5RGF0YSxcbiAgICAgICAgICAgICAgICB0aGlzLmh0dHBcbiAgICAgICAgICAgICAgICAgICAgLmdldDxTY1ByaWNlSGlzdG9yeT4oYCR7dGhpcy51cmxzLmFwaVVybH0vY2F0YWxvZy9wcm9kdWN0cy8ke3Byb2R1Y3QuaWR9L3ByaWNlLWhpc3RvcnlgLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiBTQ19JU19ISURERU5fRVJST1JfQUxFUlRfSFRUUF9DT05URVhULFxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAucGlwZShjYXRjaEVycm9yKCgpID0+IG9mKHt9KSkpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICB0aGlzLnByb2R1Y3RIaXN0b3J5TWFwLnNldChwcm9kdWN0LmlkLnRvU3RyaW5nKCksIGNhY2hlZEl0ZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNhY2hlZEl0ZW0uaXRlbSQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KHQvtC30LTQsNC10YIg0LfQsNC/0YDQvtGBINC/0L7Qu9GD0YfQtdC90LjRjyDRgdC/0LjRgdC60LAg0YLQvtCy0LDRgNC+0LIg0LTQu9GPINC60L7QvdC60YDQtdGC0L3QvtC5INC60LDRgtC10LPQvtGA0LjQuC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYXJhbXMg0J/QsNGA0LDQvNC10YLRgNGLINC30LDQv9GA0L7RgdCwINGC0L7QstCw0YDQvtCyINC60LDRgtC10LPQvtGA0LjQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0UHJvZHVjdHMkKHBhcmFtczogU2NJQ2F0ZWdvcnlQcm9kdWN0UGFyYW1zKTogT2JzZXJ2YWJsZTxTY1Byb2R1Y3RbXT47XG5cbiAgICAvKipcbiAgICAgKiDQodC+0LfQtNCw0LXRgiDQt9Cw0L/RgNC+0YEg0L/QvtC70YPRh9C10L3QuNGPINGB0L/QuNGB0LrQsCDRgtC+0LLQsNGA0L7QsiDQutCw0YLQsNC70L7Qs9CwINGBINC/0LDQs9C40L3QsNGG0LjQtdC5LlxuICAgICAqXG4gICAgICogQHBhcmFtIHBhcmFtcyDQn9Cw0YDQsNC80LXRgtGA0Ysg0L/QsNCz0LjQvdCw0YbQuNC4INGC0L7QstCw0YDQvtCyLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRQcm9kdWN0cyQocGFyYW1zOiBTY0lDYXRlZ29yeVByb2R1Y3RQYWdpbmF0aW9uUGFyYW1zKTogT2JzZXJ2YWJsZTxTY0lQYWdpbmF0ZTxTY1Byb2R1Y3Q+PjtcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVkdW5kYW50LXR5cGUtY29uc3RpdHVlbnRzXG4gICAgcHVibGljIGdldFByb2R1Y3RzJChwYXJhbXM6IFNjSUNhdGVnb3J5UHJvZHVjdFBhcmFtcyB8IFNjSUNhdGVnb3J5UHJvZHVjdFBhZ2luYXRpb25QYXJhbXMpOiBPYnNlcnZhYmxlPFNjUHJvZHVjdFtdIHwgU2NJUGFnaW5hdGU8U2NQcm9kdWN0Pj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0PFNjSVBhZ2luYXRlPFNjSVByb2R1Y3REVE8+IHwgU2NJUHJvZHVjdERUT1tdPihgJHt0aGlzLnVybHMuYXBpVXJsfS9jYXRhbG9nL3Byb2R1Y3RzYCwge1xuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFyZ3VtZW50XG4gICAgICAgICAgICAgICAgcGFyYW1zOiB0aGlzLmNvbnZlcnRlcnNTZXJ2aWNlLnRvSHR0cFBhcmFtcyh7IC4uLnBhcmFtcyB9LCB7IG5vbk51bGxhYmxlOiB0cnVlIH0pLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBzb25hcmpzL2Z1bmN0aW9uLXJldHVybi10eXBlXG4gICAgICAgICAgICAgICAgbWFwKChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICgnbWV0YScgaW4gZGF0YSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2xvbmVEYXRhID0gc3RydWN0dXJlZENsb25lKGRhdGEpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBjbG9uZURhdGEuZGF0YSA9IGNsb25lRGF0YS5kYXRhLm1hcCgoaXRlbSkgPT4gbmV3IFNjUHJvZHVjdChpdGVtKSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjbG9uZURhdGEgYXMgU2NJUGFnaW5hdGU8U2NQcm9kdWN0PjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBkYXRhLm1hcCgoaXRlbSwgaW5kZXgpID0+IG5ldyBTY1Byb2R1Y3QoaXRlbSwgaW5kZXgpKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQodC+0LfQtNCw0LXRgiDQt9Cw0L/RgNC+0YEg0L/QvtC70YPRh9C10L3QuNGPINGB0L/QuNGB0LrQsCDRgtC+0LLQsNGA0L7QsiDQutCw0YLQtdCz0L7RgNC40Lgg0Lgg0LrRjdGI0LjRgNGD0LXRgiDQtdCz0L4uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcGFyYW1zINCf0LDRgNCw0LzQtdGC0YDRiyDQt9Cw0L/RgNC+0YHQsCDRgtC+0LLQsNGA0L7QsiDQutCw0YLQtdCz0L7RgNC40LguXG4gICAgICovXG4gICAgcHVibGljIGdldFByb2R1Y3RzQ2F0ZWdvcnlDYWNoZWQkKHBhcmFtczogU2NJQ2F0ZWdvcnlQcm9kdWN0UGFyYW1zKTogT2JzZXJ2YWJsZTxTY1Byb2R1Y3RbXSB8IG51bGw+IHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtbWVtYmVyLWFjY2Vzc1xuICAgICAgICBpZiAoIXBhcmFtcy5jYXRlZ29yeUlkICYmICFwYXJhbXMuY2F0ZWdvcnlTbHVnKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ9Cd0LUg0YPQutCw0LfQsNC9IGlkL3NsdWcg0LrQsNGC0LXQs9C+0YDQuNC4LicpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb24sQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1hc3NpZ25tZW50LEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtbWVtYmVyLWFjY2Vzc1xuICAgICAgICBjb25zdCBjYWNoZWRLZXkgPSAocGFyYW1zLmNhdGVnb3J5U2x1ZyA/PyBwYXJhbXMuY2F0ZWdvcnlJZCkhO1xuXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFyZ3VtZW50LEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtY2FsbCxAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLW1lbWJlci1hY2Nlc3NcbiAgICAgICAgbGV0IGNhY2hlZEl0ZW0gPSB0aGlzLmNhdGVnb3J5UHJvZHVjdHNNYXAuZ2V0KGNhY2hlZEtleS50b1N0cmluZygpKTtcblxuICAgICAgICBpZiAoIWNhY2hlZEl0ZW0pIHtcbiAgICAgICAgICAgIGNhY2hlZEl0ZW0gPSBuZXcgU2NDYWNoZWRJdGVtKHRoaXMuY2FjaGVMaWZlVGltZS5jYXRlZ29yeURhdGEsIHRoaXMuZ2V0UHJvZHVjdHMkKHBhcmFtcykpO1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtbWVtYmVyLWFjY2VzcyxAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFyZ3VtZW50LEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtY2FsbFxuICAgICAgICAgICAgdGhpcy5jYXRlZ29yeVByb2R1Y3RzTWFwLnNldChjYWNoZWRLZXkudG9TdHJpbmcoKSwgY2FjaGVkSXRlbSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWNhY2hlZEl0ZW0uY2FjaGVkRGF0YUlzQWN0dWFsKCkpIHtcbiAgICAgICAgICAgIGNhY2hlZEl0ZW0udXBkYXRlKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY2FjaGVkSXRlbS5pdGVtJDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDQuNC90YTQvtGA0LzQsNGG0LjRjiDQvtCxINGD0LrQsNC30LDQvdC90L7QvCDQv9GA0L7QtNGD0LrRgtC1LlxuICAgICAqXG4gICAgICogQHBhcmFtIHByb2R1Y3RJZE9yU2x1ZyDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQuNC70Lggc2x1ZyDRgtC+0LLQsNGA0LAv0YPRgdC70YPQs9C4LlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRQcm9kdWN0RGF0YSQocHJvZHVjdElkT3JTbHVnOiBudW1iZXIgfCBzdHJpbmcpOiBPYnNlcnZhYmxlPFNjUHJvZHVjdD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxTY0lQcm9kdWN0RFRPPihgJHt0aGlzLnVybHMuYXBpVXJsfS9jYXRhbG9nL3Byb2R1Y3RzLyR7cHJvZHVjdElkT3JTbHVnfWApLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHByb2R1Y3REVE8pID0+IG5ldyBTY1Byb2R1Y3QocHJvZHVjdERUTykpLFxuICAgICAgICAgICAgdGFwKChwcm9kdWN0KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHByb2R1Y3RJZE9yU2x1Zykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb2R1Y3RJZE9yU2x1Z01hcC5zZXQodHlwZW9mIHByb2R1Y3RJZE9yU2x1ZyA9PT0gJ3N0cmluZycgPyBwcm9kdWN0LmlkIDogcHJvZHVjdC5zbHVnLCBwcm9kdWN0SWRPclNsdWcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFByb2R1Y3REYXRhQ2FjaGVkJChwcm9kdWN0SWRPclNsdWc6IG51bWJlciB8IHN0cmluZyk6IE9ic2VydmFibGU8U2NQcm9kdWN0IHwgbnVsbD4ge1xuICAgICAgICBjb25zdCB2YWx1ZUZyb21NYXAgPSB0aGlzLnByb2R1Y3RJZE9yU2x1Z01hcC5nZXQocHJvZHVjdElkT3JTbHVnKTtcblxuICAgICAgICBpZiAodmFsdWVGcm9tTWFwKSB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICAgICAgICAgIHByb2R1Y3RJZE9yU2x1ZyA9IHZhbHVlRnJvbU1hcDtcbiAgICAgICAgfVxuICAgICAgICBsZXQgY2FjaGVkSXRlbSA9IHRoaXMucHJvZHVjdE1hcC5nZXQocHJvZHVjdElkT3JTbHVnLnRvU3RyaW5nKCkpO1xuXG4gICAgICAgIGlmICghY2FjaGVkSXRlbSkge1xuICAgICAgICAgICAgY2FjaGVkSXRlbSA9IG5ldyBTY0NhY2hlZEl0ZW0odGhpcy5jYWNoZUxpZmVUaW1lLmNhdGVnb3J5RGF0YSwgdGhpcy5nZXRQcm9kdWN0RGF0YSQocHJvZHVjdElkT3JTbHVnKSk7XG4gICAgICAgICAgICB0aGlzLnByb2R1Y3RNYXAuc2V0KHByb2R1Y3RJZE9yU2x1Zy50b1N0cmluZygpLCBjYWNoZWRJdGVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghY2FjaGVkSXRlbS5jYWNoZWREYXRhSXNBY3R1YWwoKSkge1xuICAgICAgICAgICAgY2FjaGVkSXRlbS51cGRhdGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjYWNoZWRJdGVtLml0ZW0kO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCh0L7Qt9C00LDRkdGCINC30LDQv9GA0L7RgSDQvdCwINC/0L7Qu9GD0YfQtdC90LjQtSDQs9C10L3QtdGA0LjRgNGD0LXQvNC+0LPQviDRhNCw0LnQu9CwINC/0YDQsNC50YEt0LvQuNGB0YLQsCDQsiDRhNC+0YDQvNCw0YLQtSB7QGxpbmsgQmxvYn0sINC4INCy0YvQs9GA0YPQttCw0LXRgiDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y4g0LIg0LHRgNCw0YPQt9C10YAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdHlwZSB7QGxpbmsgU2NNaW1lVHlwZXN9INC30LDQv9GA0LDRiNC40LLQsNC10LzQvtCz0L4g0YTQsNC50LvQsC5cbiAgICAgKiBAcGFyYW0gY2F0ZWdvcnlJZCDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQutCw0YLQtdCz0L7RgNC40LgsINC00LvRjyDQutC+0YLQvtGA0L7QuSDQt9Cw0LPRgNGD0LbQsNC10YLRgdGPINC/0YDQsNC50YEt0LvQuNGB0YIuXG4gICAgICovXG4gICAgcHVibGljIGRvd25sb2FkUHJpY2UkKHR5cGU6IFNjTWltZVR5cGVzLCBjYXRlZ29yeUlkPzogbnVtYmVyKTogT2JzZXJ2YWJsZTxCbG9iPiB7XG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMuY29udmVydGVyc1NlcnZpY2UudG9IdHRwUGFyYW1zKFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGZvcm1hdDogT2JqZWN0LmtleXMoU2NNaW1lVHlwZXMpW09iamVjdC52YWx1ZXMoU2NNaW1lVHlwZXMpLmluZGV4T2YodHlwZSldLFxuICAgICAgICAgICAgICAgIGNhdGVnb3J5X2lkOiBjYXRlZ29yeUlkID8/IG51bGwsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgeyBub25OdWxsYWJsZTogdHJ1ZSB9XG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy51cmxzLmFwaVVybH0vY2F0YWxvZy9kb3dubG9hZGAsIHsgcmVzcG9uc2VUeXBlOiAnYmxvYicsIHBhcmFtczogcGFyYW1zIH0pLnBpcGUoXG4gICAgICAgICAgICBtYXAoKGJsb2I6IEJsb2IpID0+IG5ldyBCbG9iKFtibG9iXSwgeyB0eXBlOiB0eXBlIH0pKSxcbiAgICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy51c2VyTWV0cmlrYVNlcnZpY2UuZW1pdFVzZXJNZXRyaWthRXZlbnQoe1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6IFNjVXNlck1ldHJpa2FHb2Fsc0VudW0uY2F0YWxvZ1ByaWNlRG93bmxvYWQsXG4gICAgICAgICAgICAgICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnlfaWQ6IGNhdGVnb3J5SWQgPz8gJ3Jvb3QnLFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJpY2VfdHlwZTogdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JfQsNC/0YDQvtGBINC90LAg0YPQstC10LTQvtC80LvQtdC90LjQtSDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8g0L4g0L/QvtGB0YLRg9C/0LvQtdC90LjQuCDQv9GA0L7QtNGD0LrRgtCwLlxuICAgICAqXG4gICAgICogQHBhcmFtIHByb2R1Y3RJZE9yU2x1ZyDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQuNC70Lggc2x1ZyDRgtC+0LLQsNGA0LAuXG4gICAgICogQHBhcmFtIGRhdGEg0JTQsNC90L3Ri9C1INC00LvRjyDQt9Cw0L/RgNC+0YHQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0UHJvZHVjdE5vdGlmeVdoZW5JblN0b2NrJChwcm9kdWN0SWRPclNsdWc6IHN0cmluZyB8IG51bWJlciwgZGF0YTogU2NJUHJvZHVjdE5vdGlmeVdoZW5JblN0b2NrKTogT2JzZXJ2YWJsZTx1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PHVuZGVmaW5lZD4oYCR7dGhpcy51cmxzLmFwaVVybH0vY2F0YWxvZy9wcm9kdWN0cy8ke3Byb2R1Y3RJZE9yU2x1Z30vc3RvY2stbm90aWZ5YCwgZGF0YSk7XG4gICAgfVxufVxuIl19
|
|
@@ -48,9 +48,9 @@ export class ScPaginationService {
|
|
|
48
48
|
* Объект данных пагинации с сохранением предыдущих значений для "разворачивания" списка товаров.
|
|
49
49
|
* Список сохраняется при переходе по страницам, до тех пор пока не будет получен сигнал `others$`.
|
|
50
50
|
*/
|
|
51
|
-
this.dataAccumulated$ = this.others$.pipe(filter(tuiIsPresent), switchMap((params) => this.authStatus$.pipe(map(() => params))), switchMap((params) => this.
|
|
51
|
+
this.dataAccumulated$ = this.others$.pipe(filter(tuiIsPresent), switchMap((params) => this.authStatus$.pipe(map(() => params))), switchMap((params) => this.page$.pipe(
|
|
52
52
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment
|
|
53
|
-
map((page) => ({ ...params, page
|
|
53
|
+
map((page) => ({ ...params, ...page })),
|
|
54
54
|
// TODO: Заменить this.catalogService.getProducts$ на абстрактный метод сервиса по примеру `TuiTreeLoader`.
|
|
55
55
|
concatMap((paginationParams) => this.catalogService.getProducts$(paginationParams).pipe(startWith(null))),
|
|
56
56
|
// TODO: Заменить `ScProduct` на T тип.
|
|
@@ -152,4 +152,4 @@ export class ScPaginationService {
|
|
|
152
152
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScPaginationService, decorators: [{
|
|
153
153
|
type: Injectable
|
|
154
154
|
}], ctorParameters: () => [] });
|
|
155
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtcGFnaW5hdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9wYWdpbmF0aW9uL3NlcnZpY2VzL3NjLXBhZ2luYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBYyxJQUFJLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXZJLE9BQU8sRUFBRSxnQkFBZ0IsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUscUNBQXFDLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNySSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUNBQXFDLENBQUM7O0FBR25FOztHQUVHO0FBRUgsTUFBTSxPQUFPLG1CQUFtQjtJQW1GNUI7O09BRUc7SUFDSDtRQXJGQTs7V0FFRztRQUNjLFVBQUssR0FBeUMsSUFBSSxlQUFlLENBQXNCLHFDQUFxQyxDQUFDLENBQUM7UUFFL0k7O1dBRUc7UUFDYyxZQUFPLEdBQW1DLElBQUksZUFBZSxDQUFnQixTQUFTLENBQUMsQ0FBQztRQUV6Rzs7V0FFRztRQUNhLHVCQUFrQixHQUF1QixNQUFNLENBQUMsNkJBQTZCLENBQUMsQ0FBQztRQUUvRjs7V0FFRztRQUNJLGdCQUFXLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVB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RyxLQUFLLENBQUM7UUFFM0MsT0FBTyxNQUFXLENBQUM7SUFDdkIsQ0FBQzsrR0EzTFEsbUJBQW1CO21IQUFuQixtQkFBbUI7OzRGQUFuQixtQkFBbUI7a0JBRC9CLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgdHVpSXNQcmVzZW50IH0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbmNhdE1hcCwgZGVib3VuY2VUaW1lLCBmaWx0ZXIsIG1hcCwgT2JzZXJ2YWJsZSwgc2Nhbiwgc2hhcmUsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YWtlV2hpbGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2NDYXRhbG9nU2VydmljZSwgU2NQcm9kdWN0IH0gZnJvbSAnLi4vLi4vY2F0YWxvZyc7XG5pbXBvcnQgeyBTQ19ORVhUX1BBR0VfUEFHSU5BVElPTl9DTElDSywgU0NfUFJPRFVDVF9QQUdJTkFUSU9OX0RFRkFVTFRfT1BUSU9OUyB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy9zYy1wcm9kdWN0LXBhZ2luYXRpb24tb3B0aW9ucyc7XG5pbXBvcnQgeyBTQ19VU0VSX0lORk8gfSBmcm9tICcuLi8uLi91c2VyL3Rva2Vucy9zYy11c2VyLXByb3ZpZGVycyc7XG5pbXBvcnQgeyBTY0lQYWdpbmF0ZSwgU2NJUGFnaW5hdGlvblBhcmFtcyB9IGZyb20gJy4uL2R0byc7XG5cbi8qKlxuICog0KHQtdGA0LLQuNGBINC/0LDQs9C40L3QsNGG0LjQuC5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNjUGFnaW5hdGlvblNlcnZpY2U8UCBleHRlbmRzIFNjSVBhZ2luYXRpb25QYXJhbXMsIE8gZXh0ZW5kcyBvYmplY3QgPSBPbWl0PFAsIGtleW9mIFNjSVBhZ2luYXRpb25QYXJhbXM+PiB7XG4gICAgLyoqXG4gICAgICoge0BsaW5rIEJlaGF2aW9yU3ViamVjdH0g0LjQt9C80LXQvdC10L3QuNGPINC00LDQvdC90YvRhSDQviDRgdGC0YDQsNC90LjRhtC1INC/0LDQs9C40L3QsNGG0LjQuC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHBhZ2UkOiBCZWhhdmlvclN1YmplY3Q8U2NJUGFnaW5hdGlvblBhcmFtcz4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNjSVBhZ2luYXRpb25QYXJhbXM+KFNDX1BST0RVQ1RfUEFHSU5BVElPTl9ERUZBVUxUX09QVElPTlMpO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIEJlaGF2aW9yU3ViamVjdH0g0LjQt9C80LXQvdC10L3QuNGPINC+0YHRgtCw0LLRiNC40YXRgdGPINC00LDQvdC90YvRhSDQv9Cw0LPQuNC90LDRhtC40Lgg0LHQtdC3INC00LDQvdC90YvRhSDQviDRgdGC0YDQsNC90LjRhtC1INC/0LDQs9C40L3QsNGG0LjQuC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IG90aGVycyQ6IEJlaGF2aW9yU3ViamVjdDxPIHwgdW5kZWZpbmVkPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBFdmVudEVtaXR0ZXJ9INGB0L7QsdGL0YLQuNGPINC90LDQttCw0YLQuNGPINC90LAg0LrQvdC+0L/QutGDICjRgdC70LXQtNGD0Y7RidC40LUg0YLQvtCy0LDRgNGLKS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgbmV4dFBhZ2VDbGlja0V2ZW50OiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBpbmplY3QoU0NfTkVYVF9QQUdFX1BBR0lOQVRJT05fQ0xJQ0spO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INC40LfQvNC10L3QtdC90LjRjyDRgdGC0LDRgtGD0YHQsCDQsNGD0YLQtdC90YLQuNGE0LjQutCw0YbQuNC4LlxuICAgICAqL1xuICAgIHB1YmxpYyBhdXRoU3RhdHVzJCA9IGluamVjdChTQ19VU0VSX0lORk8pLnBpcGUobWFwKCh1c2VyKSA9PiB1c2VyLmlzR3Vlc3QpKTtcblxuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDRgNCw0LHQvtGC0Ysg0YEg0LrQsNGC0LDQu9C+0LPQvtC8LlxuICAgICAqL1xuICAgIHB1YmxpYyBjYXRhbG9nU2VydmljZSA9IGluamVjdChTY0NhdGFsb2dTZXJ2aWNlKTtcblxuICAgIC8qKlxuICAgICAqINCe0LHRitC10LrRgiDQtNCw0L3QvdGL0YUg0L/QsNCz0LjQvdCw0YbQuNC4LlxuICAgICAqL1xuICAgIHB1YmxpYyBkYXRhJDogT2JzZXJ2YWJsZTxTY0lQYWdpbmF0ZTxTY1Byb2R1Y3Q+IHwgbnVsbD4gPSB0aGlzLm90aGVycyQucGlwZShcbiAgICAgICAgZmlsdGVyKHR1aUlzUHJlc2VudCksXG4gICAgICAgIHN3aXRjaE1hcCgocGFyYW1zKSA9PlxuICAgICAgICAgICAgdGhpcy5wYWdlJC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcih0dWlJc1ByZXNlbnQpLFxuICAgICAgICAgICAgICAgIC8vINCY0LfQsdC10LPQsNC10Lwg0LzQvdC+0LbQtdGB0YLQstC10L3QvdGL0YUg0YHQuNCz0L3QsNC70L7QsiDQv9GA0Lgg0L7QtNC90L7QstGA0LXQvNC10L3QvdC+0Lwg0LjQt9C80LXQvdC10L3QuNC4INGE0LjQu9GM0YLRgNC+0LIgcGFnZSQg0Lggb3RoZXJzJC5cbiAgICAgICAgICAgICAgICBkZWJvdW5jZVRpbWUoMCksXG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtcmV0dXJuXG4gICAgICAgICAgICAgICAgbWFwKChwYWdlKSA9PiAoeyAuLi5wYXJhbXMsIC4uLnBhZ2UgfSkpLFxuICAgICAgICAgICAgICAgIC8vIFRPRE86INCX0LDQvNC10L3QuNGC0YwgdGhpcy5jYXRhbG9nU2VydmljZS5nZXRQcm9kdWN0cyQg0L3QsCDQsNCx0YHRgtGA0LDQutGC0L3Ri9C5INC80LXRgtC+0LQg0YHQtdGA0LLQuNGB0LAg0L/QviDQv9GA0LjQvNC10YDRgyBgVHVpVHJlZUxvYWRlcmAuXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKChwYWdpbmF0aW9uUGFyYW1zKSA9PiB0aGlzLmF1dGhTdGF0dXMkLnBpcGUoc3dpdGNoTWFwKCgpID0+IHRoaXMuY2F0YWxvZ1NlcnZpY2UuZ2V0UHJvZHVjdHMkKHBhZ2luYXRpb25QYXJhbXMpLnBpcGUoc3RhcnRXaXRoKG51bGwpKSkpKVxuICAgICAgICAgICAgKVxuICAgICAgICApLFxuICAgICAgICBzaGFyZSgpXG4gICAgKTtcblxuICAgIC8qKlxuICAgICAqINCe0LHRitC10LrRgiDQtNCw0L3QvdGL0YUg0L/QsNCz0LjQvdCw0YbQuNC4INGBINGB0L7RhdGA0LDQvdC10L3QuNC10Lwg0L/RgNC10LTRi9C00YPRidC40YUg0LfQvdCw0YfQtdC90LjQuSDQtNC70Y8gXCLRgNCw0LfQstC+0YDQsNGH0LjQstCw0L3QuNGPXCIg0YHQv9C40YHQutCwINGC0L7QstCw0YDQvtCyLlxuICAgICAqINCh0L/QuNGB0L7QuiDRgdC+0YXRgNCw0L3Rj9C10YLRgdGPINC/0YDQuCDQv9C10YDQtdGF0L7QtNC1INC/0L4g0YHRgtGA0LDQvdC40YbQsNC8LCDQtNC+INGC0LXRhSDQv9C+0YAg0L/QvtC60LAg0L3QtSDQsdGD0LTQtdGCINC/0L7Qu9GD0YfQtdC9INGB0LjQs9C90LDQuyBgb3RoZXJzJGAuXG4gICAgICovXG4gICAgcHVibGljIGRhdGFBY2N1bXVsYXRlZCQ6IE9ic2VydmFibGU8U2NJUGFnaW5hdGU8U2NQcm9kdWN0PiB8IG51bGw+ID0gdGhpcy5vdGhlcnMkLnBpcGUoXG4gICAgICAgIGZpbHRlcih0dWlJc1ByZXNlbnQpLFxuICAgICAgICBzd2l0Y2hNYXAoKHBhcmFtcykgPT4gdGhpcy5hdXRoU3RhdHVzJC5waXBlKG1hcCgoKSA9PiBwYXJhbXMpKSksXG4gICAgICAgIHN3aXRjaE1hcCgocGFyYW1zKSA9PlxuICAgICAgICAgICAgdGhpcy5uZXh0UGFnZUNsaWNrRXZlbnQucGlwZShcbiAgICAgICAgICAgICAgICBzY2FuKChhY2N1bXVsYXRvcikgPT4gYWNjdW11bGF0b3IgKyAxLCAxKSxcbiAgICAgICAgICAgICAgICBzdGFydFdpdGgoMSksXG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtbWVtYmVyLWFjY2VzcyxAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFzc2lnbm1lbnRcbiAgICAgICAgICAgICAgICBtYXAoKHBhZ2UpID0+ICh7IC4uLnBhcmFtcywgcGFnZSwgcGVyUGFnZTogdGhpcy5wYWdlJC52YWx1ZS5wZXJQYWdlIH0pKSxcbiAgICAgICAgICAgICAgICAvLyBUT0RPOiDQl9Cw0LzQtdC90LjRgtGMIHRoaXMuY2F0YWxvZ1NlcnZpY2UuZ2V0UHJvZHVjdHMkINC90LAg0LDQsdGB0YLRgNCw0LrRgtC90YvQuSDQvNC10YLQvtC0INGB0LXRgNCy0LjRgdCwINC/0L4g0L/RgNC40LzQtdGA0YMgYFR1aVRyZWVMb2FkZXJgLlxuICAgICAgICAgICAgICAgIGNvbmNhdE1hcCgocGFnaW5hdGlvblBhcmFtcykgPT4gdGhpcy5jYXRhbG9nU2VydmljZS5nZXRQcm9kdWN0cyQocGFnaW5hdGlvblBhcmFtcykucGlwZShzdGFydFdpdGgobnVsbCkpKSxcbiAgICAgICAgICAgICAgICAvLyBUT0RPOiDQl9Cw0LzQtdC90LjRgtGMIGBTY1Byb2R1Y3RgINC90LAgVCDRgtC40L8uXG4gICAgICAgICAgICAgICAgc2NhbjxTY0lQYWdpbmF0ZTxTY1Byb2R1Y3Q+IHwgbnVsbCwgW1NjSVBhZ2luYXRlPFNjUHJvZHVjdD4gfCBudWxsLCBTY0lQYWdpbmF0ZTxTY1Byb2R1Y3Q+IHwgbnVsbF0+KFxuICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgICAgICAgICAgICAgICAgIChbXywgYWNjdW11bGF0b3JdLCB2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBbdmFsdWUsIGFjY3VtdWxhdG9yXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFjY3VtdWxhdG9yICYmIHZhbHVlLm1ldGEuY3VycmVudFBhZ2UgPiAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUuZGF0YS51bnNoaWZ0KC4uLmFjY3VtdWxhdG9yLmRhdGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gW3ZhbHVlLCB2YWx1ZV07XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFtudWxsLCBudWxsXVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgbWFwKChbcGFnaW5hdGVdKSA9PiBwYWdpbmF0ZSksXG4gICAgICAgICAgICAgICAgdGFrZVdoaWxlKChwYWdpbmF0ZSkgPT4gcGFnaW5hdGUgPT09IG51bGwgfHwgcGFnaW5hdGUubWV0YS5jdXJyZW50UGFnZSA8IHBhZ2luYXRlLm1ldGEubGFzdFBhZ2UsIHRydWUpXG4gICAgICAgICAgICApXG4gICAgICAgICksXG4gICAgICAgIHNoYXJlKClcbiAgICApO1xuXG4gICAgLyoqXG4gICAgICog0JjQvdC40YbQuNCw0LvQuNC30LjRgNGD0LXRgiDRjdC60LfQtdC80L/Qu9GP0YAg0LrQu9Cw0YHRgdCwIHtAbGluayBTY1BhZ2luYXRpb25TZXJ2aWNlfS5cbiAgICAgKi9cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMub3RoZXJzJFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKHR1aUlzUHJlc2VudCksXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubmV4dFBhZ2VDbGlja0V2ZW50LnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICBzY2FuKChhY2N1bXVsYXRvcikgPT4gYWNjdW11bGF0b3IgKyAxLCAxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0V2l0aCgxKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQoKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgocGFnZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucGF0Y2hQYWdlKHsgcGFnZTogcGFnZSB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCf0L7Qu9C90L7RgdGC0YzRjiDQvtCx0L3QvtCy0LvRj9C10YIg0LfQvdCw0YfQtdC90LjRjyDRgdGC0YDQsNC90LjRhtGLINC/0LDQs9C40L3QsNGG0LjQuCB7QGxpbmsgcGFnZSR9LlxuICAgICAqXG4gICAgICogQHBhcmFtIG5ld1BhZ2VWYWx1ZSDQndC+0LLRi9C1INC00LDQvdC90YvQtSDRgdGC0YDQsNC90LjRhtGLINC/0LDQs9C40L3QsNGG0LjQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0UGFnZShuZXdQYWdlVmFsdWU6IFNjSVBhZ2luYXRpb25QYXJhbXMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wYWdlJC5uZXh0KG5ld1BhZ2VWYWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KfQsNGB0YLQuNGH0L3QviDQvtCx0L3QvtCy0LvRj9C10YIg0LfQvdCw0YfQtdC90LjRjyDRgdGC0YDQsNC90LjRhtGLINC/0LDQs9C40L3QsNGG0LjQuCB7QGxpbmsgcGFnZSR9LlxuICAgICAqXG4gICAgICogQHBhcmFtIHBhcnRpYWxQYWdlVmFsdWUg0J3QvtCy0YvQtSDQtNCw0L3QvdGL0LUg0YHRgtGA0LDQvdC40YbRiyDQv9Cw0LPQuNC90LDRhtC40LguINCc0L7QttC90L4g0L/QtdGA0LXQtNCw0YLRjCDRh9Cw0YHRgtGMINC00LDQvdC90YvRhS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcGF0Y2hQYWdlKHBhcnRpYWxQYWdlVmFsdWU6IFBhcnRpYWw8U2NJUGFnaW5hdGlvblBhcmFtcz4pOiB2b2lkIHtcbiAgICAgICAgLy8g0JfQvdCw0YfQtdC90LjRjyDQv9C+INGD0LzQvtC70YfQsNC90LjRji5cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtYXNzaWdubWVudFxuICAgICAgICBjb25zdCBjdXJyZW50UGFnZSA9IHRoaXMucGFnZSQudmFsdWU7XG5cbiAgICAgICAgLy8g0J7QsdC90L7QstC70Y/QtdC8INGC0L7Qu9GM0LrQviDRgtC1INC/0L7Qu9GPLCDQutC+0YLQvtGA0YvQtSDQv9C10YDQtdC00LDQvdGLINCyIHBhcnRpYWxQYWdlVmFsdWUuXG4gICAgICAgIGNvbnN0IHVwZGF0ZWRQYWdlOiBTY0lQYWdpbmF0aW9uUGFyYW1zID0ge1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtbWVtYmVyLWFjY2VzcyxAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFzc2lnbm1lbnRcbiAgICAgICAgICAgIHBhZ2U6IHBhcnRpYWxQYWdlVmFsdWUucGFnZSA/PyBjdXJyZW50UGFnZS5wYWdlLFxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtbWVtYmVyLWFjY2VzcyxAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFzc2lnbm1lbnRcbiAgICAgICAgICAgIHBlclBhZ2U6IHBhcnRpYWxQYWdlVmFsdWUucGVyUGFnZSA/PyBjdXJyZW50UGFnZS5wZXJQYWdlLFxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMucGFnZSQubmV4dCh1cGRhdGVkUGFnZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J/QvtC70L3QvtGB0YLRjNGOINC+0LHQvdC+0LLQu9GP0LXRgiDQvtGB0YLQsNC70YzQvdGL0LUg0L/QsNGA0LDQvNC10YLRgNGLINC/0LDQs9C40L3QsNGG0LjQuCB7QGxpbmsgb3RoZXJzJH0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbmV3T3RoZXJzVmFsdWUg0J3QvtCy0YvQtSDQv9Cw0YDQsNC80LXRgtGA0Ysg0L/QsNCz0LjQvdCw0YbQuNC4LlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRPdGhlcnMobmV3T3RoZXJzVmFsdWU6IE8pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vdGhlcnMkLm5leHQobmV3T3RoZXJzVmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCn0LDRgdGC0LjRh9C90L4g0L7QsdC90L7QstC70Y/QtdGCINC+0YHRgtCw0LvRjNC90YvQtSDQv9Cw0YDQsNC80LXRgtGA0Ysg0L/QsNCz0LjQvdCw0YbQuNC4IHtAbGluayBvdGhlcnMkfS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYXJ0aWFsT3RoZXJzVmFsdWUg0J3QvtCy0YvQtSDQv9Cw0YDQsNC80LXRgtGA0Ysg0L/QsNCz0LjQvdCw0YbQuNC4LiDQnNC+0LbQvdC+INC/0LXRgNC10LTQsNGC0Ywg0YfQsNGB0YLRjCDQtNCw0L3QvdGL0YUuXG4gICAgICovXG4gICAgcHVibGljIHBhdGNoT3RoZXJzKHBhcnRpYWxPdGhlcnNWYWx1ZTogUGFydGlhbDxPPik6IHZvaWQge1xuICAgICAgICBjb25zdCBjdXJyZW50T3RoZXJzID0gdGhpcy5vdGhlcnMkLnZhbHVlID8/ICh7fSBhcyBPKTtcblxuICAgICAgICAvLyDQmNC30LHQtdCz0LDQtdC8INC+0LHQvdC+0LLQu9C10L3QuNGPLCDQtdGB0LvQuCBwYXJ0aWFsT3RoZXJzVmFsdWUg0L/Rg9GB0YLQvtC5LlxuICAgICAgICBpZiAoT2JqZWN0LmtleXMocGFydGlhbE90aGVyc1ZhbHVlKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCB1cGRhdGVkT3RoZXJzOiBPID0geyAuLi5jdXJyZW50T3RoZXJzLCAuLi5wYXJ0aWFsT3RoZXJzVmFsdWUgfTtcbiAgICAgICAgICAgIHRoaXMub3RoZXJzJC5uZXh0KHVwZGF0ZWRPdGhlcnMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J7QsdC90L7QstC70Y/QtdGCINCy0YHQtSDQtNCw0L3QvdGL0LUg0L/QsNCz0LjQvdCw0YbQuNC4IHtAbGluayBwYWdlJH0g0Lgge0BsaW5rIG90aGVycyR9LlxuICAgICAqXG4gICAgICogQHBhcmFtIG5ld1ZhbHVlINCd0L7QstGL0LUg0L/QsNGA0LDQvNC10YLRgNGLINC/0LDQs9C40L3QsNGG0LjQuCDQtNC70Y8ge0BsaW5rIHBhZ2UkfSDQuCB7QGxpbmsgb3RoZXJzJH0uXG4gICAgICovXG4gICAgcHVibGljIHNldFBhZ2luYXRpb25QYXJhbXMobmV3VmFsdWU6IFApOiB2b2lkIHtcbiAgICAgICAgLy8g0J7QsdC90L7QstC70Y/QtdC8INC30L3QsNGH0LXQvdC40LUgcGFnZSQuXG4gICAgICAgIHRoaXMucGFnZSQubmV4dCh7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1hc3NpZ25tZW50XG4gICAgICAgICAgICBwYWdlOiBuZXdWYWx1ZS5wYWdlLFxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtYXNzaWdubWVudFxuICAgICAgICAgICAgcGVyUGFnZTogbmV3VmFsdWUucGVyUGFnZSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8g0J7QsdC90L7QstC70Y/QtdC8INC30L3QsNGH0LXQvdC40LUgb3RoZXJzJC5cbiAgICAgICAgY29uc3Qgb3RoZXJzVmFsdWUgPSB0aGlzLmV4dHJhY3RPdGhlcnMobmV3VmFsdWUpO1xuICAgICAgICB0aGlzLm90aGVycyQubmV4dChvdGhlcnNWYWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLRi9C00LXQu9GP0LXRgiDQv9Cw0YDQsNC80LXRgtGA0Ysg0L/QsNCz0LjQvdCw0YbQuNC4LCDQvdC1INC+0YLQvdC+0YHRj9GJ0LjQtdGB0Y8g0Log0YHRgtGA0LDQvdC40YbQtSDQv9Cw0LPQuNC90LDRhtC40Lgge0BsaW5rIE99INC40Lcg0L/QvtC70L3QvtCz0L4g0L7QsdGK0LXQutGC0LAg0L/QsNGA0LDQvNC10YLRgNC+0LIg0L/QsNCz0LjQvdCw0YbQuNC4IHtAbGluayBQfS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB2YWx1ZSDQntCx0YrQtdC60YLRiyDQv9Cw0YDQsNC80LXRgtGA0L7QsiDQv9Cw0LPQuNC90LDRhtC40Lgge0BsaW5rIFB9XG4gICAgICovXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNsYXNzLW1ldGhvZHMtdXNlLXRoaXNcbiAgICBwcml2YXRlIGV4dHJhY3RPdGhlcnModmFsdWU6IFApOiBPIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgICAgICBjb25zdCB7IHBhZ2UsIHBlclBhZ2UsIC4uLm90aGVycyB9ID0gdmFsdWU7XG5cbiAgICAgICAgcmV0dXJuIG90aGVycyBhcyBPO1xuICAgIH1cbn1cbiJdfQ==
|
|
155
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtcGFnaW5hdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9wYWdpbmF0aW9uL3NlcnZpY2VzL3NjLXBhZ2luYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBYyxJQUFJLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXZJLE9BQU8sRUFBRSxnQkFBZ0IsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUscUNBQXFDLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNySSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUNBQXFDLENBQUM7O0FBR25FOztHQUVHO0FBRUgsTUFBTSxPQUFPLG1CQUFtQjtJQWlGNUI7O09BRUc7SUFDSDtRQW5GQTs7V0FFRztRQUNjLFVBQUssR0FBeUMsSUFBSSxlQUFlLENBQXNCLHFDQUFxQyxDQUFDLENBQUM7UUFFL0k7O1dBRUc7UUFDYyxZQUFPLEdBQW1DLElBQUksZUFBZSxDQUFnQixTQUFTLENBQUMsQ0FBQztRQUV6Rzs7V0FFRztRQUNhLHVCQUFrQixHQUF1QixNQUFNLENBQUMsNkJBQTZCLENBQUMsQ0FBQztRQUUvRjs7V0FFRztRQUNJLGdCQUFXLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVB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amVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgdHVpSXNQcmVzZW50IH0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbmNhdE1hcCwgZGVib3VuY2VUaW1lLCBmaWx0ZXIsIG1hcCwgT2JzZXJ2YWJsZSwgc2Nhbiwgc2hhcmUsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YWtlV2hpbGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2NDYXRhbG9nU2VydmljZSwgU2NQcm9kdWN0IH0gZnJvbSAnLi4vLi4vY2F0YWxvZyc7XG5pbXBvcnQgeyBTQ19ORVhUX1BBR0VfUEFHSU5BVElPTl9DTElDSywgU0NfUFJPRFVDVF9QQUdJTkFUSU9OX0RFRkFVTFRfT1BUSU9OUyB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy9zYy1wcm9kdWN0LXBhZ2luYXRpb24tb3B0aW9ucyc7XG5pbXBvcnQgeyBTQ19VU0VSX0lORk8gfSBmcm9tICcuLi8uLi91c2VyL3Rva2Vucy9zYy11c2VyLXByb3ZpZGVycyc7XG5pbXBvcnQgeyBTY0lQYWdpbmF0ZSwgU2NJUGFnaW5hdGlvblBhcmFtcyB9IGZyb20gJy4uL2R0byc7XG5cbi8qKlxuICog0KHQtdGA0LLQuNGBINC/0LDQs9C40L3QsNGG0LjQuC5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNjUGFnaW5hdGlvblNlcnZpY2U8UCBleHRlbmRzIFNjSVBhZ2luYXRpb25QYXJhbXMsIE8gZXh0ZW5kcyBvYmplY3QgPSBPbWl0PFAsIGtleW9mIFNjSVBhZ2luYXRpb25QYXJhbXM+PiB7XG4gICAgLyoqXG4gICAgICoge0BsaW5rIEJlaGF2aW9yU3ViamVjdH0g0LjQt9C80LXQvdC10L3QuNGPINC00LDQvdC90YvRhSDQviDRgdGC0YDQsNC90LjRhtC1INC/0LDQs9C40L3QsNGG0LjQuC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHBhZ2UkOiBCZWhhdmlvclN1YmplY3Q8U2NJUGFnaW5hdGlvblBhcmFtcz4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNjSVBhZ2luYXRpb25QYXJhbXM+KFNDX1BST0RVQ1RfUEFHSU5BVElPTl9ERUZBVUxUX09QVElPTlMpO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIEJlaGF2aW9yU3ViamVjdH0g0LjQt9C80LXQvdC10L3QuNGPINC+0YHRgtCw0LLRiNC40YXRgdGPINC00LDQvdC90YvRhSDQv9Cw0LPQuNC90LDRhtC40Lgg0LHQtdC3INC00LDQvdC90YvRhSDQviDRgdGC0YDQsNC90LjRhtC1INC/0LDQs9C40L3QsNGG0LjQuC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IG90aGVycyQ6IEJlaGF2aW9yU3ViamVjdDxPIHwgdW5kZWZpbmVkPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBFdmVudEVtaXR0ZXJ9INGB0L7QsdGL0YLQuNGPINC90LDQttCw0YLQuNGPINC90LAg0LrQvdC+0L/QutGDICjRgdC70LXQtNGD0Y7RidC40LUg0YLQvtCy0LDRgNGLKS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgbmV4dFBhZ2VDbGlja0V2ZW50OiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBpbmplY3QoU0NfTkVYVF9QQUdFX1BBR0lOQVRJT05fQ0xJQ0spO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INC40LfQvNC10L3QtdC90LjRjyDRgdGC0LDRgtGD0YHQsCDQsNGD0YLQtdC90YLQuNGE0LjQutCw0YbQuNC4LlxuICAgICAqL1xuICAgIHB1YmxpYyBhdXRoU3RhdHVzJCA9IGluamVjdChTQ19VU0VSX0lORk8pLnBpcGUobWFwKCh1c2VyKSA9PiB1c2VyLmlzR3Vlc3QpKTtcblxuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDRgNCw0LHQvtGC0Ysg0YEg0LrQsNGC0LDQu9C+0LPQvtC8LlxuICAgICAqL1xuICAgIHB1YmxpYyBjYXRhbG9nU2VydmljZSA9IGluamVjdChTY0NhdGFsb2dTZXJ2aWNlKTtcblxuICAgIC8qKlxuICAgICAqINCe0LHRitC10LrRgiDQtNCw0L3QvdGL0YUg0L/QsNCz0LjQvdCw0YbQuNC4LlxuICAgICAqL1xuICAgIHB1YmxpYyBkYXRhJDogT2JzZXJ2YWJsZTxTY0lQYWdpbmF0ZTxTY1Byb2R1Y3Q+IHwgbnVsbD4gPSB0aGlzLm90aGVycyQucGlwZShcbiAgICAgICAgZmlsdGVyKHR1aUlzUHJlc2VudCksXG4gICAgICAgIHN3aXRjaE1hcCgocGFyYW1zKSA9PlxuICAgICAgICAgICAgdGhpcy5wYWdlJC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcih0dWlJc1ByZXNlbnQpLFxuICAgICAgICAgICAgICAgIC8vINCY0LfQsdC10LPQsNC10Lwg0LzQvdC+0LbQtdGB0YLQstC10L3QvdGL0YUg0YHQuNCz0L3QsNC70L7QsiDQv9GA0Lgg0L7QtNC90L7QstGA0LXQvNC10L3QvdC+0Lwg0LjQt9C80LXQvdC10L3QuNC4INGE0LjQu9GM0YLRgNC+0LIgcGFnZSQg0Lggb3RoZXJzJC5cbiAgICAgICAgICAgICAgICBkZWJvdW5jZVRpbWUoMCksXG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtcmV0dXJuXG4gICAgICAgICAgICAgICAgbWFwKChwYWdlKSA9PiAoeyAuLi5wYXJhbXMsIC4uLnBhZ2UgfSkpLFxuICAgICAgICAgICAgICAgIC8vIFRPRE86INCX0LDQvNC10L3QuNGC0YwgdGhpcy5jYXRhbG9nU2VydmljZS5nZXRQcm9kdWN0cyQg0L3QsCDQsNCx0YHRgtGA0LDQutGC0L3Ri9C5INC80LXRgtC+0LQg0YHQtdGA0LLQuNGB0LAg0L/QviDQv9GA0LjQvNC10YDRgyBgVHVpVHJlZUxvYWRlcmAuXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKChwYWdpbmF0aW9uUGFyYW1zKSA9PiB0aGlzLmF1dGhTdGF0dXMkLnBpcGUoc3dpdGNoTWFwKCgpID0+IHRoaXMuY2F0YWxvZ1NlcnZpY2UuZ2V0UHJvZHVjdHMkKHBhZ2luYXRpb25QYXJhbXMpLnBpcGUoc3RhcnRXaXRoKG51bGwpKSkpKVxuICAgICAgICAgICAgKVxuICAgICAgICApLFxuICAgICAgICBzaGFyZSgpXG4gICAgKTtcblxuICAgIC8qKlxuICAgICAqINCe0LHRitC10LrRgiDQtNCw0L3QvdGL0YUg0L/QsNCz0LjQvdCw0YbQuNC4INGBINGB0L7RhdGA0LDQvdC10L3QuNC10Lwg0L/RgNC10LTRi9C00YPRidC40YUg0LfQvdCw0YfQtdC90LjQuSDQtNC70Y8gXCLRgNCw0LfQstC+0YDQsNGH0LjQstCw0L3QuNGPXCIg0YHQv9C40YHQutCwINGC0L7QstCw0YDQvtCyLlxuICAgICAqINCh0L/QuNGB0L7QuiDRgdC+0YXRgNCw0L3Rj9C10YLRgdGPINC/0YDQuCDQv9C10YDQtdGF0L7QtNC1INC/0L4g0YHRgtGA0LDQvdC40YbQsNC8LCDQtNC+INGC0LXRhSDQv9C+0YAg0L/QvtC60LAg0L3QtSDQsdGD0LTQtdGCINC/0L7Qu9GD0YfQtdC9INGB0LjQs9C90LDQuyBgb3RoZXJzJGAuXG4gICAgICovXG4gICAgcHVibGljIGRhdGFBY2N1bXVsYXRlZCQ6IE9ic2VydmFibGU8U2NJUGFnaW5hdGU8U2NQcm9kdWN0PiB8IG51bGw+ID0gdGhpcy5vdGhlcnMkLnBpcGUoXG4gICAgICAgIGZpbHRlcih0dWlJc1ByZXNlbnQpLFxuICAgICAgICBzd2l0Y2hNYXAoKHBhcmFtcykgPT4gdGhpcy5hdXRoU3RhdHVzJC5waXBlKG1hcCgoKSA9PiBwYXJhbXMpKSksXG4gICAgICAgIHN3aXRjaE1hcCgocGFyYW1zKSA9PlxuICAgICAgICAgICAgdGhpcy5wYWdlJC5waXBlKFxuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLW1lbWJlci1hY2Nlc3MsQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1hc3NpZ25tZW50XG4gICAgICAgICAgICAgICAgbWFwKChwYWdlKSA9PiAoeyAuLi5wYXJhbXMsIC4uLnBhZ2UgfSkpLFxuICAgICAgICAgICAgICAgIC8vIFRPRE86INCX0LDQvNC10L3QuNGC0YwgdGhpcy5jYXRhbG9nU2VydmljZS5nZXRQcm9kdWN0cyQg0L3QsCDQsNCx0YHRgtGA0LDQutGC0L3Ri9C5INC80LXRgtC+0LQg0YHQtdGA0LLQuNGB0LAg0L/QviDQv9GA0LjQvNC10YDRgyBgVHVpVHJlZUxvYWRlcmAuXG4gICAgICAgICAgICAgICAgY29uY2F0TWFwKChwYWdpbmF0aW9uUGFyYW1zKSA9PiB0aGlzLmNhdGFsb2dTZXJ2aWNlLmdldFByb2R1Y3RzJChwYWdpbmF0aW9uUGFyYW1zKS5waXBlKHN0YXJ0V2l0aChudWxsKSkpLFxuICAgICAgICAgICAgICAgIC8vIFRPRE86INCX0LDQvNC10L3QuNGC0YwgYFNjUHJvZHVjdGAg0L3QsCBUINGC0LjQvy5cbiAgICAgICAgICAgICAgICBzY2FuPFNjSVBhZ2luYXRlPFNjUHJvZHVjdD4gfCBudWxsLCBbU2NJUGFnaW5hdGU8U2NQcm9kdWN0PiB8IG51bGwsIFNjSVBhZ2luYXRlPFNjUHJvZHVjdD4gfCBudWxsXT4oXG4gICAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICAgICAgICAgICAgICAgICAgKFtfLCBhY2N1bXVsYXRvcl0sIHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFt2YWx1ZSwgYWNjdW11bGF0b3JdO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWNjdW11bGF0b3IgJiYgdmFsdWUubWV0YS5jdXJyZW50UGFnZSA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZS5kYXRhLnVuc2hpZnQoLi4uYWNjdW11bGF0b3IuZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBbdmFsdWUsIHZhbHVlXTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgW251bGwsIG51bGxdXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICBtYXAoKFtwYWdpbmF0ZV0pID0+IHBhZ2luYXRlKSxcbiAgICAgICAgICAgICAgICB0YWtlV2hpbGUoKHBhZ2luYXRlKSA9PiBwYWdpbmF0ZSA9PT0gbnVsbCB8fCBwYWdpbmF0ZS5tZXRhLmN1cnJlbnRQYWdlIDwgcGFnaW5hdGUubWV0YS5sYXN0UGFnZSwgdHJ1ZSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKSxcbiAgICAgICAgc2hhcmUoKVxuICAgICk7XG5cbiAgICAvKipcbiAgICAgKiDQmNC90LjRhtC40LDQu9C40LfQuNGA0YPQtdGCINGN0LrQt9C10LzQv9C70Y/RgCDQutC70LDRgdGB0LAge0BsaW5rIFNjUGFnaW5hdGlvblNlcnZpY2V9LlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5vdGhlcnMkXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBmaWx0ZXIodHVpSXNQcmVzZW50KSxcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uZXh0UGFnZUNsaWNrRXZlbnQucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjYW4oKGFjY3VtdWxhdG9yKSA9PiBhY2N1bXVsYXRvciArIDEsIDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRXaXRoKDEpXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCgpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChwYWdlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5wYXRjaFBhZ2UoeyBwYWdlOiBwYWdlIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J/QvtC70L3QvtGB0YLRjNGOINC+0LHQvdC+0LLQu9GP0LXRgiDQt9C90LDRh9C10L3QuNGPINGB0YLRgNCw0L3QuNGG0Ysg0L/QsNCz0LjQvdCw0YbQuNC4IHtAbGluayBwYWdlJH0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbmV3UGFnZVZhbHVlINCd0L7QstGL0LUg0LTQsNC90L3Ri9C1INGB0YLRgNCw0L3QuNGG0Ysg0L/QsNCz0LjQvdCw0YbQuNC4LlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRQYWdlKG5ld1BhZ2VWYWx1ZTogU2NJUGFnaW5hdGlvblBhcmFtcyk6IHZvaWQge1xuICAgICAgICB0aGlzLnBhZ2UkLm5leHQobmV3UGFnZVZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQp9Cw0YHRgtC40YfQvdC+INC+0LHQvdC+0LLQu9GP0LXRgiDQt9C90LDRh9C10L3QuNGPINGB0YLRgNCw0L3QuNGG0Ysg0L/QsNCz0LjQvdCw0YbQuNC4IHtAbGluayBwYWdlJH0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcGFydGlhbFBhZ2VWYWx1ZSDQndC+0LLRi9C1INC00LDQvdC90YvQtSDRgdGC0YDQsNC90LjRhtGLINC/0LDQs9C40L3QsNGG0LjQuC4g0JzQvtC20L3QviDQv9C10YDQtdC00LDRgtGMINGH0LDRgdGC0Ywg0LTQsNC90L3Ri9GFLlxuICAgICAqL1xuICAgIHB1YmxpYyBwYXRjaFBhZ2UocGFydGlhbFBhZ2VWYWx1ZTogUGFydGlhbDxTY0lQYWdpbmF0aW9uUGFyYW1zPik6IHZvaWQge1xuICAgICAgICAvLyDQl9C90LDRh9C10L3QuNGPINC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOLlxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1hc3NpZ25tZW50XG4gICAgICAgIGNvbnN0IGN1cnJlbnRQYWdlID0gdGhpcy5wYWdlJC52YWx1ZTtcblxuICAgICAgICAvLyDQntCx0L3QvtCy0LvRj9C10Lwg0YLQvtC70YzQutC+INGC0LUg0L/QvtC70Y8sINC60L7RgtC+0YDRi9C1INC/0LXRgNC10LTQsNC90Ysg0LIgcGFydGlhbFBhZ2VWYWx1ZS5cbiAgICAgICAgY29uc3QgdXBkYXRlZFBhZ2U6IFNjSVBhZ2luYXRpb25QYXJhbXMgPSB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1tZW1iZXItYWNjZXNzLEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtYXNzaWdubWVudFxuICAgICAgICAgICAgcGFnZTogcGFydGlhbFBhZ2VWYWx1ZS5wYWdlID8/IGN1cnJlbnRQYWdlLnBhZ2UsXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1tZW1iZXItYWNjZXNzLEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtYXNzaWdubWVudFxuICAgICAgICAgICAgcGVyUGFnZTogcGFydGlhbFBhZ2VWYWx1ZS5wZXJQYWdlID8/IGN1cnJlbnRQYWdlLnBlclBhZ2UsXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5wYWdlJC5uZXh0KHVwZGF0ZWRQYWdlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQn9C+0LvQvdC+0YHRgtGM0Y4g0L7QsdC90L7QstC70Y/QtdGCINC+0YHRgtCw0LvRjNC90YvQtSDQv9Cw0YDQsNC80LXRgtGA0Ysg0L/QsNCz0LjQvdCw0YbQuNC4IHtAbGluayBvdGhlcnMkfS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBuZXdPdGhlcnNWYWx1ZSDQndC+0LLRi9C1INC/0LDRgNCw0LzQtdGC0YDRiyDQv9Cw0LPQuNC90LDRhtC40LguXG4gICAgICovXG4gICAgcHVibGljIHNldE90aGVycyhuZXdPdGhlcnNWYWx1ZTogTyk6IHZvaWQge1xuICAgICAgICB0aGlzLm90aGVycyQubmV4dChuZXdPdGhlcnNWYWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KfQsNGB0YLQuNGH0L3QviDQvtCx0L3QvtCy0LvRj9C10YIg0L7RgdGC0LDQu9GM0L3Ri9C1INC/0LDRgNCw0LzQtdGC0YDRiyDQv9Cw0LPQuNC90LDRhtC40Lgge0BsaW5rIG90aGVycyR9LlxuICAgICAqXG4gICAgICogQHBhcmFtIHBhcnRpYWxPdGhlcnNWYWx1ZSDQndC+0LLRi9C1INC/0LDRgNCw0LzQtdGC0YDRiyDQv9Cw0LPQuNC90LDRhtC40LguINCc0L7QttC90L4g0L/QtdGA0LXQtNCw0YLRjCDRh9Cw0YHRgtGMINC00LDQvdC90YvRhS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcGF0Y2hPdGhlcnMocGFydGlhbE90aGVyc1ZhbHVlOiBQYXJ0aWFsPE8+KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRPdGhlcnMgPSB0aGlzLm90aGVycyQudmFsdWUgPz8gKHt9IGFzIE8pO1xuXG4gICAgICAgIC8vINCY0LfQsdC10LPQsNC10Lwg0L7QsdC90L7QstC70LXQvdC40Y8sINC10YHQu9C4IHBhcnRpYWxPdGhlcnNWYWx1ZSDQv9GD0YHRgtC+0LkuXG4gICAgICAgIGlmIChPYmplY3Qua2V5cyhwYXJ0aWFsT3RoZXJzVmFsdWUpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWRPdGhlcnM6IE8gPSB7IC4uLmN1cnJlbnRPdGhlcnMsIC4uLnBhcnRpYWxPdGhlcnNWYWx1ZSB9O1xuICAgICAgICAgICAgdGhpcy5vdGhlcnMkLm5leHQodXBkYXRlZE90aGVycyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQntCx0L3QvtCy0LvRj9C10YIg0LLRgdC1INC00LDQvdC90YvQtSDQv9Cw0LPQuNC90LDRhtC40Lgge0BsaW5rIHBhZ2UkfSDQuCB7QGxpbmsgb3RoZXJzJH0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbmV3VmFsdWUg0J3QvtCy0YvQtSDQv9Cw0YDQsNC80LXRgtGA0Ysg0L/QsNCz0LjQvdCw0YbQuNC4INC00LvRjyB7QGxpbmsgcGFnZSR9INC4IHtAbGluayBvdGhlcnMkfS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0UGFnaW5hdGlvblBhcmFtcyhuZXdWYWx1ZTogUCk6IHZvaWQge1xuICAgICAgICAvLyDQntCx0L3QvtCy0LvRj9C10Lwg0LfQvdCw0YfQtdC90LjQtSBwYWdlJC5cbiAgICAgICAgdGhpcy5wYWdlJC5uZXh0KHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFzc2lnbm1lbnRcbiAgICAgICAgICAgIHBhZ2U6IG5ld1ZhbHVlLnBhZ2UsXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1hc3NpZ25tZW50XG4gICAgICAgICAgICBwZXJQYWdlOiBuZXdWYWx1ZS5wZXJQYWdlLFxuICAgICAgICB9KTtcblxuICAgICAgICAvLyDQntCx0L3QvtCy0LvRj9C10Lwg0LfQvdCw0YfQtdC90LjQtSBvdGhlcnMkLlxuICAgICAgICBjb25zdCBvdGhlcnNWYWx1ZSA9IHRoaXMuZXh0cmFjdE90aGVycyhuZXdWYWx1ZSk7XG4gICAgICAgIHRoaXMub3RoZXJzJC5uZXh0KG90aGVyc1ZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktGL0LTQtdC70Y/QtdGCINC/0LDRgNCw0LzQtdGC0YDRiyDQv9Cw0LPQuNC90LDRhtC40LgsINC90LUg0L7RgtC90L7RgdGP0YnQuNC10YHRjyDQuiDRgdGC0YDQsNC90LjRhtC1INC/0LDQs9C40L3QsNGG0LjQuCB7QGxpbmsgT30g0LjQtyDQv9C+0LvQvdC+0LPQviDQvtCx0YrQtdC60YLQsCDQv9Cw0YDQsNC80LXRgtGA0L7QsiDQv9Cw0LPQuNC90LDRhtC40Lgge0BsaW5rIFB9LlxuICAgICAqXG4gICAgICogQHBhcmFtIHZhbHVlINCe0LHRitC10LrRgtGLINC/0LDRgNCw0LzQtdGC0YDQvtCyINC/0LDQs9C40L3QsNGG0LjQuCB7QGxpbmsgUH1cbiAgICAgKi9cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY2xhc3MtbWV0aG9kcy11c2UtdGhpc1xuICAgIHByaXZhdGUgZXh0cmFjdE90aGVycyh2YWx1ZTogUCk6IE8ge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgICAgIGNvbnN0IHsgcGFnZSwgcGVyUGFnZSwgLi4ub3RoZXJzIH0gPSB2YWx1ZTtcblxuICAgICAgICByZXR1cm4gb3RoZXJzIGFzIE87XG4gICAgfVxufVxuIl19
|
|
@@ -1261,7 +1261,7 @@ class ScCategory extends ScSeoResource {
|
|
|
1261
1261
|
this.isPrimary = categoryDTO.isPrimary;
|
|
1262
1262
|
this.isFavoriteValue = Boolean(categoryDTO.isFavorite);
|
|
1263
1263
|
this.properties = categoryDTO.properties;
|
|
1264
|
-
this.
|
|
1264
|
+
this.parentCategory = categoryDTO.parentCategory && new ScCategory(categoryDTO.parentCategory);
|
|
1265
1265
|
this.hasChild = categoryDTO.hasChild;
|
|
1266
1266
|
this.categories = categoryDTO.categories?.map((item) => new ScCategory(item));
|
|
1267
1267
|
this.image = categoryDTO.properties?.image;
|
|
@@ -2975,7 +2975,7 @@ class ScCatalogService {
|
|
|
2975
2975
|
*/
|
|
2976
2976
|
getCategoryFromMap(categoryIdOrSlug) {
|
|
2977
2977
|
const category = this.idCategoryMap.get(categoryIdOrSlug?.toString());
|
|
2978
|
-
if (category && (!category.
|
|
2978
|
+
if (category && (!category.parentCategory || !category.loadedAt || category.cachedDataIsActual(this.cacheLifeTime.categoryData))) {
|
|
2979
2979
|
return category;
|
|
2980
2980
|
}
|
|
2981
2981
|
this.idCategoryMap.delete(categoryIdOrSlug?.toString());
|
|
@@ -2991,12 +2991,7 @@ class ScCatalogService {
|
|
|
2991
2991
|
if (categoryIdOrSlug) {
|
|
2992
2992
|
this.categoryIdOrSlugMap.set(typeof categoryIdOrSlug === 'string' ? category.id : category.slug, categoryIdOrSlug);
|
|
2993
2993
|
}
|
|
2994
|
-
})
|
|
2995
|
-
// eslint-disable-next-line no-param-reassign
|
|
2996
|
-
tap((category) => category.categories?.forEach((subCategory) => {
|
|
2997
|
-
// eslint-disable-next-line no-param-reassign
|
|
2998
|
-
subCategory.parentCategory = category;
|
|
2999
|
-
})));
|
|
2994
|
+
}));
|
|
3000
2995
|
}
|
|
3001
2996
|
/**
|
|
3002
2997
|
* Возвращает {@link Observable} корневых категорий с настройками отображения, чтобы реагировать на изменения.
|
|
@@ -3010,10 +3005,10 @@ class ScCatalogService {
|
|
|
3010
3005
|
* @param slug Символьный идентификатор виртуальной категории.
|
|
3011
3006
|
*/
|
|
3012
3007
|
getVirtualCategoryCached$(slug) {
|
|
3013
|
-
let cachedItem = this.virtualCategoryMap.get(slug
|
|
3008
|
+
let cachedItem = this.virtualCategoryMap.get(slug);
|
|
3014
3009
|
if (!cachedItem) {
|
|
3015
3010
|
cachedItem = new ScCachedItem(this.cacheLifeTime.categoryData, this.http.get(`${this.urls.apiUrl}/catalog/v-categories/${slug}`).pipe(map((category) => new ScVirtualCategory(category))));
|
|
3016
|
-
this.virtualCategoryMap.set(slug
|
|
3011
|
+
this.virtualCategoryMap.set(slug, cachedItem);
|
|
3017
3012
|
}
|
|
3018
3013
|
if (!cachedItem.cachedDataIsActual()) {
|
|
3019
3014
|
cachedItem.update();
|
|
@@ -3059,9 +3054,9 @@ class ScCatalogService {
|
|
|
3059
3054
|
* @returns Возвращает список раскрытых категорий.
|
|
3060
3055
|
*/
|
|
3061
3056
|
loadCatalogTreeCached$(categoryIdOrSlug) {
|
|
3062
|
-
return this.getCategoryCached$(categoryIdOrSlug).pipe(filter(tuiIsPresent), first(), expand((category) => (category.
|
|
3057
|
+
return this.getCategoryCached$(categoryIdOrSlug).pipe(filter(tuiIsPresent), first(), expand((category) => (category.parentCategory ? this.getCategoryCached$(this.idOrSlugPipe.transform(category.parentCategory)) : this.getNullCategory$()).pipe(filter(tuiIsPresent), first())),
|
|
3063
3058
|
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition,sonarjs/different-types-comparison
|
|
3064
|
-
takeWhile((parentCategory) => parentCategory.
|
|
3059
|
+
takeWhile((parentCategory) => parentCategory.parentCategory !== undefined, true), toArray(),
|
|
3065
3060
|
// eslint-disable-next-line sonarjs/no-misleading-array-reverse
|
|
3066
3061
|
map((categories) => categories.reverse()));
|
|
3067
3062
|
}
|
|
@@ -6395,9 +6390,9 @@ class ScPaginationService {
|
|
|
6395
6390
|
* Объект данных пагинации с сохранением предыдущих значений для "разворачивания" списка товаров.
|
|
6396
6391
|
* Список сохраняется при переходе по страницам, до тех пор пока не будет получен сигнал `others$`.
|
|
6397
6392
|
*/
|
|
6398
|
-
this.dataAccumulated$ = this.others$.pipe(filter(tuiIsPresent), switchMap((params) => this.authStatus$.pipe(map(() => params))), switchMap((params) => this.
|
|
6393
|
+
this.dataAccumulated$ = this.others$.pipe(filter(tuiIsPresent), switchMap((params) => this.authStatus$.pipe(map(() => params))), switchMap((params) => this.page$.pipe(
|
|
6399
6394
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment
|
|
6400
|
-
map((page) => ({ ...params, page
|
|
6395
|
+
map((page) => ({ ...params, ...page })),
|
|
6401
6396
|
// TODO: Заменить this.catalogService.getProducts$ на абстрактный метод сервиса по примеру `TuiTreeLoader`.
|
|
6402
6397
|
concatMap((paginationParams) => this.catalogService.getProducts$(paginationParams).pipe(startWith(null))),
|
|
6403
6398
|
// TODO: Заменить `ScProduct` на T тип.
|