@stemy/ngx-utils 17.5.0 → 17.5.2

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.
@@ -8,16 +8,16 @@ import * as i0 from "@angular/core";
8
8
  import * as i1 from "./events.service";
9
9
  import * as i2 from "./storage.service";
10
10
  import * as i3 from "./base-http.client";
11
- const emptyDict = {};
11
+ export const EMPTY_DICT = {};
12
12
  export class StaticLanguageService {
13
13
  get defaultLanguage() {
14
14
  return this.configs.getQueryParameter("lang") || this.storage.get("language", this.getDefaultLanguage());
15
15
  }
16
16
  get dictionary() {
17
- return this.mergedTranslations[this.currentLanguage] || emptyDict;
17
+ return this.mergedTranslations[this.currentLanguage] || EMPTY_DICT;
18
18
  }
19
19
  set dictionary(value) {
20
- this.translations[this.currentLanguage] = value;
20
+ this.setDictionary(this.currentLang, value);
21
21
  this.mergeTranslations();
22
22
  }
23
23
  get languages() {
@@ -28,21 +28,27 @@ export class StaticLanguageService {
28
28
  }
29
29
  set currentLanguage(lang) {
30
30
  this.currentLang = lang;
31
- this.events.languageChanged.emit(lang);
31
+ this.events.languageChanged.next(lang);
32
32
  }
33
33
  get editLanguage() {
34
34
  return this.editLang || this.currentLanguage;
35
35
  }
36
36
  set editLanguage(lang) {
37
37
  this.editLang = lang || this.currentLanguage;
38
- this.events.editLanguageChanged.emit(this.editLang);
38
+ this.events.editLanguageChanged.next(this.editLang);
39
+ }
40
+ get enableTranslations() {
41
+ return this.enableTrans;
42
+ }
43
+ set enableTranslations(value) {
44
+ this.enableTrans = value;
45
+ this.events.translationsEnabled.next(value);
39
46
  }
40
47
  get disableTranslations() {
41
- return this.disableTrans;
48
+ return !this.enableTranslations;
42
49
  }
43
50
  set disableTranslations(value) {
44
- this.disableTrans = value;
45
- this.events.languageChanged.emit(this.currentLang);
51
+ this.enableTranslations = !value;
46
52
  }
47
53
  get httpClient() {
48
54
  return this.client;
@@ -61,7 +67,7 @@ export class StaticLanguageService {
61
67
  this.client = client;
62
68
  this.editLang = null;
63
69
  this.currentLang = null;
64
- this.disableTrans = false;
70
+ this.enableTrans = true;
65
71
  this.languageList = [];
66
72
  this.translations = {
67
73
  none: {}
@@ -78,7 +84,7 @@ export class StaticLanguageService {
78
84
  languages = Array.isArray(languages) && languages.length > 0 ? languages : this.languageList;
79
85
  this.languageList = Array.from(new Set(languages));
80
86
  this.languageList.forEach(lang => {
81
- this.translations[lang] = this.translations[lang] || emptyDict;
87
+ this.translations[lang] = this.translations[lang] || EMPTY_DICT;
82
88
  });
83
89
  }
84
90
  addLanguages(languages) {
@@ -96,12 +102,24 @@ export class StaticLanguageService {
96
102
  this.mergedTranslations = this.translations;
97
103
  }
98
104
  getTranslationSync(key, params = null) {
99
- key = String(key || "");
100
- const lowerKey = key.toLocaleLowerCase();
101
- const translation = !key ? "" : this.dictionary[lowerKey] || key;
102
- return this.interpolate(translation, params);
105
+ key = String(key ?? "");
106
+ if (!key)
107
+ return "";
108
+ try {
109
+ const lowerKey = key.toLocaleLowerCase();
110
+ const dict = this.dictionary;
111
+ if (lowerKey in dict && this.enableTranslations) {
112
+ return this.interpolate(dict[lowerKey], params);
113
+ }
114
+ return this.interpolate(key, params);
115
+ }
116
+ catch (reason) {
117
+ console.warn("ERROR IN TRANSLATIONS", reason);
118
+ return key;
119
+ }
103
120
  }
104
- async getTranslation(key, params) {
121
+ async getTranslation(key, params = null) {
122
+ await this.loadDictionary();
105
123
  return this.getTranslationSync(key, params);
106
124
  }
107
125
  getTranslations(...keys) {
@@ -123,9 +141,20 @@ export class StaticLanguageService {
123
141
  const translation = translations ? translations.find(t => t.lang == lang) : null;
124
142
  return this.interpolate(translation ? translation.translation : "", params);
125
143
  }
144
+ async loadDictionary() {
145
+ return this.dictionary;
146
+ }
147
+ setDictionary(lang, dictionary) {
148
+ this.translations[lang] = Object.keys(dictionary || {}).reduce((res, key) => {
149
+ res[key.toLocaleLowerCase()] = dictionary[key];
150
+ return res;
151
+ }, {});
152
+ return this.translations[lang];
153
+ }
126
154
  interpolate(expr, params) {
127
155
  if (typeof expr === "string") {
128
- return this.interpolateString(expr, params);
156
+ // Force single spaces to be empty strings, for labeling in forms.
157
+ return expr === " " ? "" : this.interpolateString(expr, params);
129
158
  }
130
159
  if (typeof expr === "function") {
131
160
  return expr(params);
@@ -136,7 +165,7 @@ export class StaticLanguageService {
136
165
  if (!expr || !params)
137
166
  return expr;
138
167
  return expr.replace(/{{\s?([^{}\s]*)\s?}}/g, (substring, b) => {
139
- const r = ObjectUtils.getValue(params, b);
168
+ const r = ObjectUtils.getValue(params, b, "");
140
169
  return ObjectUtils.isDefined(r) ? r : substring;
141
170
  });
142
171
  }
@@ -162,8 +191,8 @@ export class StaticLanguageService {
162
191
  ]);
163
192
  this.mergedTranslations = Array.from(languages).reduce((merged, language) => {
164
193
  merged[language] = {
165
- ...(this.translations[language] || emptyDict),
166
- ...(this.overrideTranslations[language] || emptyDict),
194
+ ...(this.translations[language] || EMPTY_DICT),
195
+ ...(this.overrideTranslations[language] || EMPTY_DICT),
167
196
  };
168
197
  return merged;
169
198
  }, {});
@@ -189,4 +218,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
189
218
  type: Inject,
190
219
  args: [BaseHttpClient]
191
220
  }] }] });
192
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGljLWxhbmd1YWdlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbmd4LXV0aWxzL3NlcnZpY2VzL3N0YXRpYy1sYW5ndWFnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFDSCxjQUFjLEVBT2QsZUFBZSxFQUNsQixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBRWpELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7QUFHbEQsTUFBTSxTQUFTLEdBQWtCLEVBQUUsQ0FBQztBQUdwQyxNQUFNLE9BQU8scUJBQXFCO0lBRTlCLElBQUksZUFBZTtRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQztJQUM3RyxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1YsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLFNBQVMsQ0FBQztJQUN0RSxDQUFDO0lBRUQsSUFBSSxVQUFVLENBQUMsS0FBb0I7UUFDL0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ2hELElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDVCxP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QkFDN0MsR0FBRyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxTQUFTLENBQUM7YUFDeEQsQ0FBQztZQUNGLE9BQU8sTUFBTSxDQUFDO1FBQ2xCLENBQUMsRUFBRSxFQUF3QixDQUFDLENBQUM7SUFDakMsQ0FBQzsrR0EvTFEscUJBQXFCLGtCQWtFVixhQUFhLGFBQ2IsY0FBYyxhQUNkLGNBQWMsYUFDZCxlQUFlLGFBQ2YsY0FBYzttSEF0RXpCLHFCQUFxQjs7NEZBQXJCLHFCQUFxQjtrQkFEakMsVUFBVTs7MEJBbUVNLE1BQU07MkJBQUMsYUFBYTs7MEJBQ3BCLE1BQU07MkJBQUMsY0FBYzs7MEJBQ3JCLE1BQU07MkJBQUMsY0FBYzs7MEJBQ3JCLE1BQU07MkJBQUMsZUFBZTs7MEJBQ3RCLE1BQU07MkJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtcbiAgICBDT05GSUdfU0VSVklDRSwgR2xvYmFsVHJhbnNsYXRpb25zLFxuICAgIElDb25maWdTZXJ2aWNlLFxuICAgIElDb25maWd1cmF0aW9uLFxuICAgIElMYW5ndWFnZVNlcnZpY2UsXG4gICAgSVByb21pc2VTZXJ2aWNlLFxuICAgIElUcmFuc2xhdGlvbixcbiAgICBJVHJhbnNsYXRpb25zLFxuICAgIFBST01JU0VfU0VSVklDRVxufSBmcm9tIFwiLi4vY29tbW9uLXR5cGVzXCI7XG5pbXBvcnQge09iamVjdFV0aWxzfSBmcm9tIFwiLi4vdXRpbHMvb2JqZWN0LnV0aWxzXCI7XG5pbXBvcnQge0V2ZW50c1NlcnZpY2V9IGZyb20gXCIuL2V2ZW50cy5zZXJ2aWNlXCI7XG5pbXBvcnQge1N0b3JhZ2VTZXJ2aWNlfSBmcm9tIFwiLi9zdG9yYWdlLnNlcnZpY2VcIjtcbmltcG9ydCB7VW5pdmVyc2FsU2VydmljZX0gZnJvbSBcIi4vdW5pdmVyc2FsLnNlcnZpY2VcIjtcbmltcG9ydCB7QmFzZUh0dHBDbGllbnR9IGZyb20gXCIuL2Jhc2UtaHR0cC5jbGllbnRcIjtcbmltcG9ydCB7SHR0cENsaWVudH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XG5cbmNvbnN0IGVtcHR5RGljdDogSVRyYW5zbGF0aW9ucyA9IHt9O1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU3RhdGljTGFuZ3VhZ2VTZXJ2aWNlIGltcGxlbWVudHMgSUxhbmd1YWdlU2VydmljZSB7XG5cbiAgICBnZXQgZGVmYXVsdExhbmd1YWdlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZ3MuZ2V0UXVlcnlQYXJhbWV0ZXIoXCJsYW5nXCIpIHx8IHRoaXMuc3RvcmFnZS5nZXQoXCJsYW5ndWFnZVwiLCB0aGlzLmdldERlZmF1bHRMYW5ndWFnZSgpKTtcbiAgICB9XG5cbiAgICBnZXQgZGljdGlvbmFyeSgpOiBJVHJhbnNsYXRpb25zIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWVyZ2VkVHJhbnNsYXRpb25zW3RoaXMuY3VycmVudExhbmd1YWdlXSB8fCBlbXB0eURpY3Q7XG4gICAgfVxuXG4gICAgc2V0IGRpY3Rpb25hcnkodmFsdWU6IElUcmFuc2xhdGlvbnMpIHtcbiAgICAgICAgdGhpcy50cmFuc2xhdGlvbnNbdGhpcy5jdXJyZW50TGFuZ3VhZ2VdID0gdmFsdWU7XG4gICAgICAgIHRoaXMubWVyZ2VUcmFuc2xhdGlvbnMoKTtcbiAgICB9XG5cbiAgICBnZXQgbGFuZ3VhZ2VzKCk6IFJlYWRvbmx5QXJyYXk8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxhbmd1YWdlTGlzdDtcbiAgICB9XG5cbiAgICBnZXQgY3VycmVudExhbmd1YWdlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRMYW5nIHx8IHRoaXMuZGVmYXVsdExhbmd1YWdlO1xuICAgIH1cblxuICAgIHNldCBjdXJyZW50TGFuZ3VhZ2UobGFuZzogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuY3VycmVudExhbmcgPSBsYW5nO1xuICAgICAgICB0aGlzLmV2ZW50cy5sYW5ndWFnZUNoYW5nZWQuZW1pdChsYW5nKTtcbiAgICB9XG5cbiAgICBnZXQgZWRpdExhbmd1YWdlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmVkaXRMYW5nIHx8IHRoaXMuY3VycmVudExhbmd1YWdlO1xuICAgIH1cblxuICAgIHNldCBlZGl0TGFuZ3VhZ2UobGFuZzogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuZWRpdExhbmcgPSBsYW5nIHx8IHRoaXMuY3VycmVudExhbmd1YWdlO1xuICAgICAgICB0aGlzLmV2ZW50cy5lZGl0TGFuZ3VhZ2VDaGFuZ2VkLmVtaXQodGhpcy5lZGl0TGFuZyk7XG4gICAgfVxuXG4gICAgZ2V0IGRpc2FibGVUcmFuc2xhdGlvbnMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpc2FibGVUcmFucztcbiAgICB9XG5cbiAgICBzZXQgZGlzYWJsZVRyYW5zbGF0aW9ucyh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmRpc2FibGVUcmFucyA9IHZhbHVlO1xuICAgICAgICB0aGlzLmV2ZW50cy5sYW5ndWFnZUNoYW5nZWQuZW1pdCh0aGlzLmN1cnJlbnRMYW5nKTtcbiAgICB9XG5cbiAgICBnZXQgaHR0cENsaWVudCgpOiBIdHRwQ2xpZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2xpZW50O1xuICAgIH1cblxuICAgIGdldCBjb25maWcoKTogSUNvbmZpZ3VyYXRpb24ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25maWdzLmNvbmZpZztcbiAgICB9XG5cbiAgICBnZXQgdW5pdmVyc2FsKCk6IFVuaXZlcnNhbFNlcnZpY2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5zdG9yYWdlLnVuaXZlcnNhbDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZWRpdExhbmc6IHN0cmluZztcbiAgICBwcm90ZWN0ZWQgY3VycmVudExhbmc6IHN0cmluZztcbiAgICBwcm90ZWN0ZWQgZGlzYWJsZVRyYW5zOiBib29sZWFuO1xuICAgIHByb3RlY3RlZCBsYW5ndWFnZUxpc3Q6IHN0cmluZ1tdO1xuICAgIHByb3RlY3RlZCByZWFkb25seSB0cmFuc2xhdGlvbnM6IEdsb2JhbFRyYW5zbGF0aW9ucztcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGVUcmFuc2xhdGlvbnM6IEdsb2JhbFRyYW5zbGF0aW9ucztcbiAgICBwcm90ZWN0ZWQgbWVyZ2VkVHJhbnNsYXRpb25zOiBHbG9iYWxUcmFuc2xhdGlvbnM7XG5cbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KEV2ZW50c1NlcnZpY2UpIHJlYWRvbmx5IGV2ZW50czogRXZlbnRzU2VydmljZSxcbiAgICAgICAgICAgICAgICBASW5qZWN0KFN0b3JhZ2VTZXJ2aWNlKSByZWFkb25seSBzdG9yYWdlOiBTdG9yYWdlU2VydmljZSxcbiAgICAgICAgICAgICAgICBASW5qZWN0KENPTkZJR19TRVJWSUNFKSByZWFkb25seSBjb25maWdzOiBJQ29uZmlnU2VydmljZSxcbiAgICAgICAgICAgICAgICBASW5qZWN0KFBST01JU0VfU0VSVklDRSkgcHJvdGVjdGVkIHByb21pc2VzOiBJUHJvbWlzZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgQEluamVjdChCYXNlSHR0cENsaWVudCkgcHJvdGVjdGVkIGNsaWVudDogQmFzZUh0dHBDbGllbnQpIHtcbiAgICAgICAgdGhpcy5lZGl0TGFuZyA9IG51bGw7XG4gICAgICAgIHRoaXMuY3VycmVudExhbmcgPSBudWxsO1xuICAgICAgICB0aGlzLmRpc2FibGVUcmFucyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmxhbmd1YWdlTGlzdCA9IFtdO1xuICAgICAgICB0aGlzLnRyYW5zbGF0aW9ucyA9IHtcbiAgICAgICAgICAgIG5vbmU6IHt9XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMub3ZlcnJpZGVUcmFuc2xhdGlvbnMgPSB7XG4gICAgICAgICAgICBub25lOiB7fVxuICAgICAgICB9O1xuICAgICAgICB0aGlzLm1lcmdlZFRyYW5zbGF0aW9ucyA9IHRoaXMudHJhbnNsYXRpb25zO1xuICAgICAgICB0aGlzLmluaXRTZXJ2aWNlKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGluaXRTZXJ2aWNlKCk6IHZvaWQge1xuXG4gICAgfVxuXG4gICAgcmVwbGFjZUxhbmd1YWdlcyhsYW5ndWFnZXM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgICAgIGxhbmd1YWdlcyA9IEFycmF5LmlzQXJyYXkobGFuZ3VhZ2VzKSAmJiBsYW5ndWFnZXMubGVuZ3RoID4gMCA/IGxhbmd1YWdlcyA6IHRoaXMubGFuZ3VhZ2VMaXN0O1xuICAgICAgICB0aGlzLmxhbmd1YWdlTGlzdCA9IEFycmF5LmZyb20obmV3IFNldDxzdHJpbmc+KGxhbmd1YWdlcykpO1xuICAgICAgICB0aGlzLmxhbmd1YWdlTGlzdC5mb3JFYWNoKGxhbmcgPT4ge1xuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGlvbnNbbGFuZ10gPSB0aGlzLnRyYW5zbGF0aW9uc1tsYW5nXSB8fCBlbXB0eURpY3Q7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGFkZExhbmd1YWdlcyhsYW5ndWFnZXM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShsYW5ndWFnZXMpIHx8IGxhbmd1YWdlcy5sZW5ndGggPT0gMCkgcmV0dXJuO1xuICAgICAgICB0aGlzLnJlcGxhY2VMYW5ndWFnZXModGhpcy5sYW5ndWFnZUxpc3QuY29uY2F0KGxhbmd1YWdlcykpO1xuICAgIH1cblxuICAgIHNldE92ZXJyaWRlVHJhbnNsYXRpb25zKHRyYW5zbGF0aW9uczogR2xvYmFsVHJhbnNsYXRpb25zKTogdm9pZCB7XG4gICAgICAgIGlmIChPYmplY3RVdGlscy5pc09iamVjdCh0cmFuc2xhdGlvbnMpKSB7XG4gICAgICAgICAgICB0aGlzLm92ZXJyaWRlVHJhbnNsYXRpb25zID0gdHJhbnNsYXRpb25zO1xuICAgICAgICAgICAgdGhpcy5tZXJnZVRyYW5zbGF0aW9ucygpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub3ZlcnJpZGVUcmFuc2xhdGlvbnMgPSB7fTtcbiAgICAgICAgdGhpcy5tZXJnZWRUcmFuc2xhdGlvbnMgPSB0aGlzLnRyYW5zbGF0aW9ucztcbiAgICB9XG5cbiAgICBnZXRUcmFuc2xhdGlvblN5bmMoa2V5OiBzdHJpbmcsIHBhcmFtczogYW55ID0gbnVsbCk6IHN0cmluZyB7XG4gICAgICAgIGtleSA9IFN0cmluZyhrZXkgfHwgXCJcIik7XG4gICAgICAgIGNvbnN0IGxvd2VyS2V5ID0ga2V5LnRvTG9jYWxlTG93ZXJDYXNlKCk7XG4gICAgICAgIGNvbnN0IHRyYW5zbGF0aW9uID0gIWtleSA/IFwiXCIgOiB0aGlzLmRpY3Rpb25hcnlbbG93ZXJLZXldIHx8IGtleTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW50ZXJwb2xhdGUodHJhbnNsYXRpb24sIHBhcmFtcyk7XG4gICAgfVxuXG4gICAgYXN5bmMgZ2V0VHJhbnNsYXRpb24oa2V5OiBzdHJpbmcsIHBhcmFtcz86IGFueSk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFRyYW5zbGF0aW9uU3luYyhrZXksIHBhcmFtcyk7XG4gICAgfVxuXG4gICAgZ2V0VHJhbnNsYXRpb25zKC4uLmtleXM6IHN0cmluZ1tdKTogUHJvbWlzZTxJVHJhbnNsYXRpb25zPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb21pc2VzLmNyZWF0ZTxJVHJhbnNsYXRpb25zPihyZXNvbHZlID0+IHtcbiAgICAgICAgICAgIHRoaXMucHJvbWlzZXMuYWxsKGtleXMubWFwKGtleSA9PiB0aGlzLmdldFRyYW5zbGF0aW9uKGtleSkpKS50aGVuKHRyYW5zbGF0aW9ucyA9PiB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZShrZXlzLnJlZHVjZSgocmVzdWx0LCBrZXksIGkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0W2tleV0gPSB0cmFuc2xhdGlvbnNbaV07XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgICAgfSwge30pKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXRUcmFuc2xhdGlvbkZyb21PYmplY3QodHJhbnNsYXRpb25zOiBJVHJhbnNsYXRpb25zLCBwYXJhbXM/OiBhbnksIGxhbmc/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBsYW5nID0gbGFuZyB8fCB0aGlzLmN1cnJlbnRMYW5ndWFnZTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW50ZXJwb2xhdGUodHJhbnNsYXRpb25zID8gKHRyYW5zbGF0aW9uc1tsYW5nXSB8fCBcIlwiKSA6IFwiXCIpXG4gICAgfVxuXG4gICAgZ2V0VHJhbnNsYXRpb25Gcm9tQXJyYXkodHJhbnNsYXRpb25zOiBJVHJhbnNsYXRpb25bXSwgcGFyYW1zPzogYW55LCBsYW5nPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgbGFuZyA9IGxhbmcgfHwgdGhpcy5jdXJyZW50TGFuZ3VhZ2U7XG4gICAgICAgIGNvbnN0IHRyYW5zbGF0aW9uID0gdHJhbnNsYXRpb25zID8gdHJhbnNsYXRpb25zLmZpbmQodCA9PiB0LmxhbmcgPT0gbGFuZykgOiBudWxsO1xuICAgICAgICByZXR1cm4gdGhpcy5pbnRlcnBvbGF0ZSh0cmFuc2xhdGlvbiA/IHRyYW5zbGF0aW9uLnRyYW5zbGF0aW9uIDogXCJcIiwgcGFyYW1zKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgaW50ZXJwb2xhdGUoZXhwcjogc3RyaW5nIHwgRnVuY3Rpb24sIHBhcmFtcz86IGFueSk6IHN0cmluZyB7XG4gICAgICAgIGlmICh0eXBlb2YgZXhwciA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaW50ZXJwb2xhdGVTdHJpbmcoZXhwciwgcGFyYW1zKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIGV4cHIgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgcmV0dXJuIGV4cHIocGFyYW1zKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZXhwciBhcyBzdHJpbmc7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGludGVycG9sYXRlU3RyaW5nKGV4cHI6IHN0cmluZywgcGFyYW1zPzogYW55KSB7XG4gICAgICAgIGlmICghZXhwciB8fCAhcGFyYW1zKSByZXR1cm4gZXhwcjtcbiAgICAgICAgcmV0dXJuIGV4cHIucmVwbGFjZSgve3tcXHM/KFtee31cXHNdKilcXHM/fX0vZywgKHN1YnN0cmluZzogc3RyaW5nLCBiOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHIgPSBPYmplY3RVdGlscy5nZXRWYWx1ZShwYXJhbXMsIGIpO1xuICAgICAgICAgICAgcmV0dXJuIE9iamVjdFV0aWxzLmlzRGVmaW5lZChyKSA/IHIgOiBzdWJzdHJpbmc7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXREZWZhdWx0TGFuZ3VhZ2UoKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKCF0aGlzLnVuaXZlcnNhbC5pc0Jyb3dzZXIgfHwgdHlwZW9mIHdpbmRvdy5uYXZpZ2F0b3IgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBcImRlXCI7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGJyb3dzZXJMYW5nOiBzdHJpbmcgPSAod2luZG93Lm5hdmlnYXRvci5sYW5ndWFnZXMgPyB3aW5kb3cubmF2aWdhdG9yLmxhbmd1YWdlc1swXSA6IG51bGwpXG4gICAgICAgICAgICB8fCB3aW5kb3cubmF2aWdhdG9yLmxhbmd1YWdlIHx8IHdpbmRvdy5uYXZpZ2F0b3JbXCJicm93c2VyTGFuZ3VhZ2VcIl0gfHwgd2luZG93Lm5hdmlnYXRvcltcInVzZXJMYW5ndWFnZVwiXSB8fCBudWxsO1xuICAgICAgICBpZiAoIWJyb3dzZXJMYW5nKSByZXR1cm4gYnJvd3Nlckxhbmc7XG5cbiAgICAgICAgW1wiLVwiLCBcIl9cIl0uZm9yRWFjaChzcGxpdHRlciA9PiB7XG4gICAgICAgICAgICBpZiAoYnJvd3NlckxhbmcuaW5kZXhPZihzcGxpdHRlcikgPj0gMCkge1xuICAgICAgICAgICAgICAgIGJyb3dzZXJMYW5nID0gYnJvd3Nlckxhbmcuc3BsaXQoc3BsaXR0ZXIpWzBdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICByZXR1cm4gYnJvd3Nlckxhbmc7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG1lcmdlVHJhbnNsYXRpb25zKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBsYW5ndWFnZXMgPSBuZXcgU2V0KFtcbiAgICAgICAgICAgIC4uLk9iamVjdC5rZXlzKHRoaXMudHJhbnNsYXRpb25zKSxcbiAgICAgICAgICAgIC4uLk9iamVjdC5rZXlzKHRoaXMub3ZlcnJpZGVUcmFuc2xhdGlvbnMpXG4gICAgICAgIF0pO1xuICAgICAgICB0aGlzLm1lcmdlZFRyYW5zbGF0aW9ucyA9IEFycmF5LmZyb20obGFuZ3VhZ2VzKS5yZWR1Y2UoKG1lcmdlZCwgbGFuZ3VhZ2UpID0+IHtcbiAgICAgICAgICAgIG1lcmdlZFtsYW5ndWFnZV0gPSB7XG4gICAgICAgICAgICAgICAgLi4uKHRoaXMudHJhbnNsYXRpb25zW2xhbmd1YWdlXSB8fCBlbXB0eURpY3QpLFxuICAgICAgICAgICAgICAgIC4uLih0aGlzLm92ZXJyaWRlVHJhbnNsYXRpb25zW2xhbmd1YWdlXSB8fCBlbXB0eURpY3QpLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJldHVybiBtZXJnZWQ7XG4gICAgICAgIH0sIHt9IGFzIEdsb2JhbFRyYW5zbGF0aW9ucyk7XG4gICAgfVxufVxuIl19
221
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGljLWxhbmd1YWdlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbmd4LXV0aWxzL3NlcnZpY2VzL3N0YXRpYy1sYW5ndWFnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFDSCxjQUFjLEVBT0MsZUFBZSxFQUNqQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBRWpELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7QUFHbEQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFrQixFQUFFLENBQUM7QUFHNUMsTUFBTSxPQUFPLHFCQUFxQjtJQUU5QixJQUFJLGVBQWU7UUFDZixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUM7SUFDN0csQ0FBQztJQUVELElBQUksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxVQUFVLENBQUM7SUFDdkUsQ0FBQztJQUVELElBQUksVUFBVSxDQUFDLEtBQW9CO1FBQy9CLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBSSxT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QVUsQ0FBQztnQkFDOUMsR0FBRyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxVQUFVLENBQUM7YUFDekQsQ0FBQztZQUNGLE9BQU8sTUFBTSxDQUFDO1FBQ2xCLENBQUMsRUFBRSxFQUF3QixDQUFDLENBQUM7SUFDakMsQ0FBQzsrR0E5TlEscUJBQXFCLGtCQTBFVixhQUFhLGFBQ2IsY0FBYyxhQUNkLGNBQWMsYUFDZCxlQUFlLGFBQ2YsY0FBYzttSEE5RXpCLHFCQUFxQjs7NEZBQXJCLHFCQUFxQjtrQkFEakMsVUFBVTs7MEJBMkVNLE1BQU07MkJBQUMsYUFBYTs7MEJBQ3BCLE1BQU07MkJBQUMsY0FBYzs7MEJBQ3JCLE1BQU07MkJBQUMsY0FBYzs7MEJBQ3JCLE1BQU07MkJBQUMsZUFBZTs7MEJBQ3RCLE1BQU07MkJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1xyXG4gICAgQ09ORklHX1NFUlZJQ0UsXHJcbiAgICBHbG9iYWxUcmFuc2xhdGlvbnMsXHJcbiAgICBJQ29uZmlnU2VydmljZSxcclxuICAgIElDb25maWd1cmF0aW9uLFxyXG4gICAgSUxhbmd1YWdlU2VydmljZSxcclxuICAgIElQcm9taXNlU2VydmljZSxcclxuICAgIElUcmFuc2xhdGlvbixcclxuICAgIElUcmFuc2xhdGlvbnMsIFBST01JU0VfU0VSVklDRVxyXG59IGZyb20gXCIuLi9jb21tb24tdHlwZXNcIjtcclxuaW1wb3J0IHtPYmplY3RVdGlsc30gZnJvbSBcIi4uL3V0aWxzL29iamVjdC51dGlsc1wiO1xyXG5pbXBvcnQge0V2ZW50c1NlcnZpY2V9IGZyb20gXCIuL2V2ZW50cy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7U3RvcmFnZVNlcnZpY2V9IGZyb20gXCIuL3N0b3JhZ2Uuc2VydmljZVwiO1xyXG5pbXBvcnQge1VuaXZlcnNhbFNlcnZpY2V9IGZyb20gXCIuL3VuaXZlcnNhbC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7QmFzZUh0dHBDbGllbnR9IGZyb20gXCIuL2Jhc2UtaHR0cC5jbGllbnRcIjtcclxuaW1wb3J0IHtIdHRwQ2xpZW50fSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBFTVBUWV9ESUNUOiBJVHJhbnNsYXRpb25zID0ge307XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBTdGF0aWNMYW5ndWFnZVNlcnZpY2UgaW1wbGVtZW50cyBJTGFuZ3VhZ2VTZXJ2aWNlIHtcclxuXHJcbiAgICBnZXQgZGVmYXVsdExhbmd1YWdlKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlncy5nZXRRdWVyeVBhcmFtZXRlcihcImxhbmdcIikgfHwgdGhpcy5zdG9yYWdlLmdldChcImxhbmd1YWdlXCIsIHRoaXMuZ2V0RGVmYXVsdExhbmd1YWdlKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBkaWN0aW9uYXJ5KCk6IElUcmFuc2xhdGlvbnMge1xyXG4gICAgICAgIHJldHVybiB0aGlzLm1lcmdlZFRyYW5zbGF0aW9uc1t0aGlzLmN1cnJlbnRMYW5ndWFnZV0gfHwgRU1QVFlfRElDVDtcclxuICAgIH1cclxuXHJcbiAgICBzZXQgZGljdGlvbmFyeSh2YWx1ZTogSVRyYW5zbGF0aW9ucykge1xyXG4gICAgICAgIHRoaXMuc2V0RGljdGlvbmFyeSh0aGlzLmN1cnJlbnRMYW5nLCB2YWx1ZSk7XHJcbiAgICAgICAgdGhpcy5tZXJnZVRyYW5zbGF0aW9ucygpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBsYW5ndWFnZXMoKTogUmVhZG9ubHlBcnJheTxzdHJpbmc+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5sYW5ndWFnZUxpc3Q7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGN1cnJlbnRMYW5ndWFnZSgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRMYW5nIHx8IHRoaXMuZGVmYXVsdExhbmd1YWdlO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBjdXJyZW50TGFuZ3VhZ2UobGFuZzogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50TGFuZyA9IGxhbmc7XHJcbiAgICAgICAgdGhpcy5ldmVudHMubGFuZ3VhZ2VDaGFuZ2VkLm5leHQobGFuZyk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGVkaXRMYW5ndWFnZSgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVkaXRMYW5nIHx8IHRoaXMuY3VycmVudExhbmd1YWdlO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBlZGl0TGFuZ3VhZ2UobGFuZzogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5lZGl0TGFuZyA9IGxhbmcgfHwgdGhpcy5jdXJyZW50TGFuZ3VhZ2U7XHJcbiAgICAgICAgdGhpcy5ldmVudHMuZWRpdExhbmd1YWdlQ2hhbmdlZC5uZXh0KHRoaXMuZWRpdExhbmcpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBlbmFibGVUcmFuc2xhdGlvbnMoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZW5hYmxlVHJhbnM7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IGVuYWJsZVRyYW5zbGF0aW9ucyh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuZW5hYmxlVHJhbnMgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLmV2ZW50cy50cmFuc2xhdGlvbnNFbmFibGVkLm5leHQodmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBkaXNhYmxlVHJhbnNsYXRpb25zKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAhdGhpcy5lbmFibGVUcmFuc2xhdGlvbnM7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IGRpc2FibGVUcmFuc2xhdGlvbnModmFsdWU6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLmVuYWJsZVRyYW5zbGF0aW9ucyA9ICF2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgaHR0cENsaWVudCgpOiBIdHRwQ2xpZW50IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jbGllbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGNvbmZpZygpOiBJQ29uZmlndXJhdGlvbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlncy5jb25maWc7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHVuaXZlcnNhbCgpOiBVbml2ZXJzYWxTZXJ2aWNlIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zdG9yYWdlLnVuaXZlcnNhbDtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgZWRpdExhbmc6IHN0cmluZztcclxuICAgIHByb3RlY3RlZCBjdXJyZW50TGFuZzogc3RyaW5nO1xyXG4gICAgcHJvdGVjdGVkIGVuYWJsZVRyYW5zOiBib29sZWFuO1xyXG4gICAgcHJvdGVjdGVkIGxhbmd1YWdlTGlzdDogc3RyaW5nW107XHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdHJhbnNsYXRpb25zOiBHbG9iYWxUcmFuc2xhdGlvbnM7XHJcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGVUcmFuc2xhdGlvbnM6IEdsb2JhbFRyYW5zbGF0aW9ucztcclxuICAgIHByb3RlY3RlZCBtZXJnZWRUcmFuc2xhdGlvbnM6IEdsb2JhbFRyYW5zbGF0aW9ucztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KEV2ZW50c1NlcnZpY2UpIHJlYWRvbmx5IGV2ZW50czogRXZlbnRzU2VydmljZSxcclxuICAgICAgICAgICAgICAgIEBJbmplY3QoU3RvcmFnZVNlcnZpY2UpIHJlYWRvbmx5IHN0b3JhZ2U6IFN0b3JhZ2VTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICAgQEluamVjdChDT05GSUdfU0VSVklDRSkgcmVhZG9ubHkgY29uZmlnczogSUNvbmZpZ1NlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICBASW5qZWN0KFBST01JU0VfU0VSVklDRSkgcHJvdGVjdGVkIHByb21pc2VzOiBJUHJvbWlzZVNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICBASW5qZWN0KEJhc2VIdHRwQ2xpZW50KSBwcm90ZWN0ZWQgY2xpZW50OiBCYXNlSHR0cENsaWVudCkge1xyXG4gICAgICAgIHRoaXMuZWRpdExhbmcgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuY3VycmVudExhbmcgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuZW5hYmxlVHJhbnMgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubGFuZ3VhZ2VMaXN0ID0gW107XHJcbiAgICAgICAgdGhpcy50cmFuc2xhdGlvbnMgPSB7XHJcbiAgICAgICAgICAgIG5vbmU6IHt9XHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLm92ZXJyaWRlVHJhbnNsYXRpb25zID0ge1xyXG4gICAgICAgICAgICBub25lOiB7fVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy5tZXJnZWRUcmFuc2xhdGlvbnMgPSB0aGlzLnRyYW5zbGF0aW9ucztcclxuICAgICAgICB0aGlzLmluaXRTZXJ2aWNlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGluaXRTZXJ2aWNlKCk6IHZvaWQge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICByZXBsYWNlTGFuZ3VhZ2VzKGxhbmd1YWdlczogc3RyaW5nW10pOiB2b2lkIHtcclxuICAgICAgICBsYW5ndWFnZXMgPSBBcnJheS5pc0FycmF5KGxhbmd1YWdlcykgJiYgbGFuZ3VhZ2VzLmxlbmd0aCA+IDAgPyBsYW5ndWFnZXMgOiB0aGlzLmxhbmd1YWdlTGlzdDtcclxuICAgICAgICB0aGlzLmxhbmd1YWdlTGlzdCA9IEFycmF5LmZyb20obmV3IFNldDxzdHJpbmc+KGxhbmd1YWdlcykpO1xyXG4gICAgICAgIHRoaXMubGFuZ3VhZ2VMaXN0LmZvckVhY2gobGFuZyA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRpb25zW2xhbmddID0gdGhpcy50cmFuc2xhdGlvbnNbbGFuZ10gfHwgRU1QVFlfRElDVDtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBhZGRMYW5ndWFnZXMobGFuZ3VhZ2VzOiBzdHJpbmdbXSk6IHZvaWQge1xyXG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShsYW5ndWFnZXMpIHx8IGxhbmd1YWdlcy5sZW5ndGggPT0gMCkgcmV0dXJuO1xyXG4gICAgICAgIHRoaXMucmVwbGFjZUxhbmd1YWdlcyh0aGlzLmxhbmd1YWdlTGlzdC5jb25jYXQobGFuZ3VhZ2VzKSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0T3ZlcnJpZGVUcmFuc2xhdGlvbnModHJhbnNsYXRpb25zOiBHbG9iYWxUcmFuc2xhdGlvbnMpOiB2b2lkIHtcclxuICAgICAgICBpZiAoT2JqZWN0VXRpbHMuaXNPYmplY3QodHJhbnNsYXRpb25zKSkge1xyXG4gICAgICAgICAgICB0aGlzLm92ZXJyaWRlVHJhbnNsYXRpb25zID0gdHJhbnNsYXRpb25zO1xyXG4gICAgICAgICAgICB0aGlzLm1lcmdlVHJhbnNsYXRpb25zKCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5vdmVycmlkZVRyYW5zbGF0aW9ucyA9IHt9O1xyXG4gICAgICAgIHRoaXMubWVyZ2VkVHJhbnNsYXRpb25zID0gdGhpcy50cmFuc2xhdGlvbnM7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0VHJhbnNsYXRpb25TeW5jKGtleTogc3RyaW5nLCBwYXJhbXM6IE9iamVjdCA9IG51bGwpOiBzdHJpbmcge1xyXG4gICAgICAgIGtleSA9IFN0cmluZyhrZXkgPz8gXCJcIik7XHJcbiAgICAgICAgaWYgKCFrZXkpIHJldHVybiBcIlwiO1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGxvd2VyS2V5ID0ga2V5LnRvTG9jYWxlTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgICAgIGNvbnN0IGRpY3QgPSB0aGlzLmRpY3Rpb25hcnk7XHJcbiAgICAgICAgICAgIGlmIChsb3dlcktleSBpbiBkaWN0ICYmIHRoaXMuZW5hYmxlVHJhbnNsYXRpb25zKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5pbnRlcnBvbGF0ZShkaWN0W2xvd2VyS2V5XSwgcGFyYW1zKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pbnRlcnBvbGF0ZShrZXksIHBhcmFtcyk7XHJcbiAgICAgICAgfSBjYXRjaCAocmVhc29uKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihcIkVSUk9SIElOIFRSQU5TTEFUSU9OU1wiLCByZWFzb24pO1xyXG4gICAgICAgICAgICByZXR1cm4ga2V5O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBnZXRUcmFuc2xhdGlvbihrZXk6IHN0cmluZywgcGFyYW1zOiBhbnkgPSBudWxsKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgICAgICBhd2FpdCB0aGlzLmxvYWREaWN0aW9uYXJ5KCk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VHJhbnNsYXRpb25TeW5jKGtleSwgcGFyYW1zKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRUcmFuc2xhdGlvbnMoLi4ua2V5czogc3RyaW5nW10pOiBQcm9taXNlPElUcmFuc2xhdGlvbnM+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wcm9taXNlcy5jcmVhdGU8SVRyYW5zbGF0aW9ucz4ocmVzb2x2ZSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMucHJvbWlzZXMuYWxsKGtleXMubWFwKGtleSA9PiB0aGlzLmdldFRyYW5zbGF0aW9uKGtleSkpKS50aGVuKHRyYW5zbGF0aW9ucyA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXNvbHZlKGtleXMucmVkdWNlKChyZXN1bHQsIGtleSwgaSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdFtrZXldID0gdHJhbnNsYXRpb25zW2ldO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgICAgICAgICB9LCB7fSkpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRUcmFuc2xhdGlvbkZyb21PYmplY3QodHJhbnNsYXRpb25zOiBJVHJhbnNsYXRpb25zLCBwYXJhbXM/OiBhbnksIGxhbmc/OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIGxhbmcgPSBsYW5nIHx8IHRoaXMuY3VycmVudExhbmd1YWdlO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmludGVycG9sYXRlKHRyYW5zbGF0aW9ucyA/ICh0cmFuc2xhdGlvbnNbbGFuZ10gfHwgXCJcIikgOiBcIlwiKVxyXG4gICAgfVxyXG5cclxuICAgIGdldFRyYW5zbGF0aW9uRnJvbUFycmF5KHRyYW5zbGF0aW9uczogSVRyYW5zbGF0aW9uW10sIHBhcmFtcz86IGFueSwgbGFuZz86IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgbGFuZyA9IGxhbmcgfHwgdGhpcy5jdXJyZW50TGFuZ3VhZ2U7XHJcbiAgICAgICAgY29uc3QgdHJhbnNsYXRpb24gPSB0cmFuc2xhdGlvbnMgPyB0cmFuc2xhdGlvbnMuZmluZCh0ID0+IHQubGFuZyA9PSBsYW5nKSA6IG51bGw7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaW50ZXJwb2xhdGUodHJhbnNsYXRpb24gPyB0cmFuc2xhdGlvbi50cmFuc2xhdGlvbiA6IFwiXCIsIHBhcmFtcyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGFzeW5jIGxvYWREaWN0aW9uYXJ5KCk6IFByb21pc2U8SVRyYW5zbGF0aW9ucz4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRpY3Rpb25hcnk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIHNldERpY3Rpb25hcnkobGFuZzogc3RyaW5nLCBkaWN0aW9uYXJ5OiBJVHJhbnNsYXRpb25zKTogSVRyYW5zbGF0aW9ucyB7XHJcbiAgICAgICAgdGhpcy50cmFuc2xhdGlvbnNbbGFuZ10gPSBPYmplY3Qua2V5cyhkaWN0aW9uYXJ5IHx8IHt9KS5yZWR1Y2UoKHJlcywga2V5KSA9PiB7XHJcbiAgICAgICAgICAgIHJlc1trZXkudG9Mb2NhbGVMb3dlckNhc2UoKV0gPSBkaWN0aW9uYXJ5W2tleV07XHJcbiAgICAgICAgICAgIHJldHVybiByZXM7XHJcbiAgICAgICAgfSwge30gYXMgSVRyYW5zbGF0aW9ucyk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRpb25zW2xhbmddO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBpbnRlcnBvbGF0ZShleHByOiBzdHJpbmcgfCBGdW5jdGlvbiwgcGFyYW1zPzogT2JqZWN0KTogc3RyaW5nIHtcclxuICAgICAgICBpZiAodHlwZW9mIGV4cHIgPT09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICAgICAgLy8gRm9yY2Ugc2luZ2xlIHNwYWNlcyB0byBiZSBlbXB0eSBzdHJpbmdzLCBmb3IgbGFiZWxpbmcgaW4gZm9ybXMuXHJcbiAgICAgICAgICAgIHJldHVybiBleHByID09PSBcIiBcIiA/IFwiXCIgOiB0aGlzLmludGVycG9sYXRlU3RyaW5nKGV4cHIsIHBhcmFtcyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0eXBlb2YgZXhwciA9PT0gXCJmdW5jdGlvblwiKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBleHByKHBhcmFtcyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBleHByIGFzIHN0cmluZztcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgaW50ZXJwb2xhdGVTdHJpbmcoZXhwcjogc3RyaW5nLCBwYXJhbXM/OiBPYmplY3QpIHtcclxuICAgICAgICBpZiAoIWV4cHIgfHwgIXBhcmFtcykgcmV0dXJuIGV4cHI7XHJcbiAgICAgICAgcmV0dXJuIGV4cHIucmVwbGFjZSgve3tcXHM/KFtee31cXHNdKilcXHM/fX0vZywgKHN1YnN0cmluZzogc3RyaW5nLCBiOiBzdHJpbmcpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgciA9IE9iamVjdFV0aWxzLmdldFZhbHVlKHBhcmFtcywgYiwgXCJcIik7XHJcbiAgICAgICAgICAgIHJldHVybiBPYmplY3RVdGlscy5pc0RlZmluZWQocikgPyByIDogc3Vic3RyaW5nO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBnZXREZWZhdWx0TGFuZ3VhZ2UoKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAoIXRoaXMudW5pdmVyc2FsLmlzQnJvd3NlciB8fCB0eXBlb2Ygd2luZG93Lm5hdmlnYXRvciA9PT0gXCJ1bmRlZmluZWRcIikge1xyXG4gICAgICAgICAgICByZXR1cm4gXCJkZVwiO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgYnJvd3Nlckxhbmc6IHN0cmluZyA9ICh3aW5kb3cubmF2aWdhdG9yLmxhbmd1YWdlcyA/IHdpbmRvdy5uYXZpZ2F0b3IubGFuZ3VhZ2VzWzBdIDogbnVsbClcclxuICAgICAgICAgICAgfHwgd2luZG93Lm5hdmlnYXRvci5sYW5ndWFnZSB8fCB3aW5kb3cubmF2aWdhdG9yW1wiYnJvd3Nlckxhbmd1YWdlXCJdIHx8IHdpbmRvdy5uYXZpZ2F0b3JbXCJ1c2VyTGFuZ3VhZ2VcIl0gfHwgbnVsbDtcclxuICAgICAgICBpZiAoIWJyb3dzZXJMYW5nKSByZXR1cm4gYnJvd3Nlckxhbmc7XHJcblxyXG4gICAgICAgIFtcIi1cIiwgXCJfXCJdLmZvckVhY2goc3BsaXR0ZXIgPT4ge1xyXG4gICAgICAgICAgICBpZiAoYnJvd3NlckxhbmcuaW5kZXhPZihzcGxpdHRlcikgPj0gMCkge1xyXG4gICAgICAgICAgICAgICAgYnJvd3NlckxhbmcgPSBicm93c2VyTGFuZy5zcGxpdChzcGxpdHRlcilbMF07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICAgIHJldHVybiBicm93c2VyTGFuZztcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgbWVyZ2VUcmFuc2xhdGlvbnMoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgbGFuZ3VhZ2VzID0gbmV3IFNldChbXHJcbiAgICAgICAgICAgIC4uLk9iamVjdC5rZXlzKHRoaXMudHJhbnNsYXRpb25zKSxcclxuICAgICAgICAgICAgLi4uT2JqZWN0LmtleXModGhpcy5vdmVycmlkZVRyYW5zbGF0aW9ucylcclxuICAgICAgICBdKTtcclxuICAgICAgICB0aGlzLm1lcmdlZFRyYW5zbGF0aW9ucyA9IEFycmF5LmZyb20obGFuZ3VhZ2VzKS5yZWR1Y2UoKG1lcmdlZCwgbGFuZ3VhZ2UpID0+IHtcclxuICAgICAgICAgICAgbWVyZ2VkW2xhbmd1YWdlXSA9IHtcclxuICAgICAgICAgICAgICAgIC4uLih0aGlzLnRyYW5zbGF0aW9uc1tsYW5ndWFnZV0gfHwgRU1QVFlfRElDVCksXHJcbiAgICAgICAgICAgICAgICAuLi4odGhpcy5vdmVycmlkZVRyYW5zbGF0aW9uc1tsYW5ndWFnZV0gfHwgRU1QVFlfRElDVCksXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIHJldHVybiBtZXJnZWQ7XHJcbiAgICAgICAgfSwge30gYXMgR2xvYmFsVHJhbnNsYXRpb25zKTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -1,55 +1,67 @@
1
1
  export class LoaderUtils {
2
- static { this.scriptPromises = {}; }
3
- static { this.stylePromises = {}; }
4
- static loadScript(src, async = false, type = "text/javascript") {
5
- this.scriptPromises[src] = this.scriptPromises[src] || new Promise((resolve, reject) => {
6
- // Load script
2
+ static { this.promises = {}; }
3
+ static loadScript(src, async = false, type = "text/javascript", parent, time = false) {
4
+ return LoaderUtils.loadElement(src, parent, time, url => {
7
5
  const script = document.createElement("script");
8
6
  script.type = type;
9
- script.src = src;
7
+ script.src = url;
10
8
  script.async = async;
11
- if (script.readyState) {
12
- // Internet explorer
13
- script.onreadystatechange = () => {
14
- if (script.readyState === "loaded" || script.readyState === "complete") {
15
- script.onreadystatechange = null;
16
- resolve(script);
17
- }
18
- };
19
- }
20
- else {
21
- // Other browsers
22
- script.onload = () => resolve(script);
23
- }
24
- script.onerror = (error) => reject(error);
25
- document.body.appendChild(script);
9
+ return script;
26
10
  });
27
- return this.scriptPromises[src];
28
11
  }
29
- static loadStyle(src) {
30
- this.stylePromises[src] = this.stylePromises[src] || new Promise((resolve, reject) => {
31
- // Load script
12
+ static loadStyle(src, parent, time = false) {
13
+ return LoaderUtils.loadElement(src, parent, time, url => {
32
14
  const link = document.createElement("link");
33
15
  link.rel = "stylesheet";
34
16
  link.type = "text/css";
35
- link.href = src;
36
- if (link.readyState) {
17
+ link.href = url;
18
+ return link;
19
+ });
20
+ }
21
+ static updateSrc(src, time) {
22
+ const srcStr = String(src || "");
23
+ if (srcStr.startsWith("data:") || !time) {
24
+ return srcStr;
25
+ }
26
+ const url = new URL(src);
27
+ url.searchParams.set("time", typeof time === "string" ? time : String(Date.now()));
28
+ return url.toString();
29
+ }
30
+ static loadElement(url, parent, time, setup) {
31
+ const promises = LoaderUtils.promises;
32
+ const src = LoaderUtils.updateSrc(url, time);
33
+ parent = parent || document;
34
+ if (parent == document) {
35
+ parent = document.body;
36
+ }
37
+ let { elem, promise } = promises[src] || {};
38
+ if (elem) {
39
+ if (parent === elem.parentElement)
40
+ return promise;
41
+ if (elem.parentElement) {
42
+ elem.remove();
43
+ }
44
+ }
45
+ elem = setup(src);
46
+ promise = new Promise((resolve, reject) => {
47
+ if (elem.readyState) {
37
48
  // Internet explorer
38
- link.onreadystatechange = () => {
39
- if (link.readyState === "loaded" || link.readyState === "complete") {
40
- link.onreadystatechange = null;
41
- resolve(link);
49
+ elem.onreadystatechange = () => {
50
+ if (elem.readyState === "loaded" || elem.readyState === "complete") {
51
+ elem.onreadystatechange = null;
52
+ resolve(elem);
42
53
  }
43
54
  };
44
55
  }
45
56
  else {
46
57
  // Other browsers
47
- link.onload = () => resolve(link);
58
+ elem.onload = () => resolve(elem);
48
59
  }
49
- link.onerror = (error) => reject(error);
50
- document.body.appendChild(link);
60
+ elem.onerror = (error) => reject(error);
51
61
  });
52
- return this.stylePromises[src];
62
+ parent.appendChild(elem);
63
+ promises[src] = { elem, promise };
64
+ return promise;
53
65
  }
54
66
  }
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL25neC11dGlscy91dGlscy9sb2FkZXIudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLFdBQVc7YUFFYixtQkFBYyxHQUFvQixFQUFFLENBQUM7YUFDckMsa0JBQWEsR0FBbUIsRUFBRSxDQUFDO0lBRTFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBVyxFQUFFLFFBQWlCLEtBQUssRUFBRSxPQUFtQixpQkFBaUI7UUFDdkYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFNLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3hGLGNBQWM7WUFDZCxNQUFNLE1BQU0sR0FBUSxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3JELE1BQU0sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1lBQ25CLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1lBQ2pCLE1BQU0sQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLElBQUksTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNwQixvQkFBb0I7Z0JBQ3BCLE1BQU0sQ0FBQyxrQkFBa0IsR0FBRyxHQUFHLEVBQUU7b0JBQzdCLElBQUksTUFBTSxDQUFDLFVBQVUsS0FBSyxRQUFRLElBQUksTUFBTSxDQUFDLFVBQVUsS0FBSyxVQUFVLEVBQUUsQ0FBQzt3QkFDckUsTUFBTSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQzt3QkFDakMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUNwQixDQUFDO2dCQUNMLENBQUMsQ0FBQztZQUNOLENBQUM7aUJBQU0sQ0FBQztnQkFDSixpQkFBaUI7Z0JBQ2pCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzFDLENBQUM7WUFDRCxNQUFNLENBQUMsT0FBTyxHQUFHLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDL0MsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEMsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBVztRQUN4QixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxPQUFPLENBQU0sQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDdEYsY0FBYztZQUNkLE1BQU0sSUFBSSxHQUFRLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDakQsSUFBSSxDQUFDLEdBQUcsR0FBRyxZQUFZLENBQUM7WUFDeEIsSUFBSSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUM7WUFDdkIsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7WUFFaEIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ2xCLG9CQUFvQjtnQkFDcEIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEdBQUcsRUFBRTtvQkFDM0IsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLFFBQVEsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLFVBQVUsRUFBRSxDQUFDO3dCQUNqRSxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO3dCQUMvQixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ2xCLENBQUM7Z0JBQ0wsQ0FBQyxDQUFDO1lBQ04sQ0FBQztpQkFBTSxDQUFDO2dCQUNKLGlCQUFpQjtnQkFDakIsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdEMsQ0FBQztZQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM3QyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtTY3JpcHRUeXBlLCBJU2NyaXB0UHJvbWlzZXMsIElTdHlsZVByb21pc2VzfSBmcm9tIFwiLi4vY29tbW9uLXR5cGVzXCI7XG5cbmV4cG9ydCBjbGFzcyBMb2FkZXJVdGlscyB7XG5cbiAgICBzdGF0aWMgc2NyaXB0UHJvbWlzZXM6IElTY3JpcHRQcm9taXNlcyA9IHt9O1xuICAgIHN0YXRpYyBzdHlsZVByb21pc2VzOiBJU3R5bGVQcm9taXNlcyA9IHt9O1xuXG4gICAgc3RhdGljIGxvYWRTY3JpcHQoc3JjOiBzdHJpbmcsIGFzeW5jOiBib29sZWFuID0gZmFsc2UsIHR5cGU6IFNjcmlwdFR5cGUgPSBcInRleHQvamF2YXNjcmlwdFwiKTogUHJvbWlzZTxIVE1MU2NyaXB0RWxlbWVudD4ge1xuICAgICAgICB0aGlzLnNjcmlwdFByb21pc2VzW3NyY10gPSB0aGlzLnNjcmlwdFByb21pc2VzW3NyY10gfHwgbmV3IFByb21pc2U8YW55PigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICAvLyBMb2FkIHNjcmlwdFxuICAgICAgICAgICAgY29uc3Qgc2NyaXB0OiBhbnkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic2NyaXB0XCIpO1xuICAgICAgICAgICAgc2NyaXB0LnR5cGUgPSB0eXBlO1xuICAgICAgICAgICAgc2NyaXB0LnNyYyA9IHNyYztcbiAgICAgICAgICAgIHNjcmlwdC5hc3luYyA9IGFzeW5jO1xuICAgICAgICAgICAgaWYgKHNjcmlwdC5yZWFkeVN0YXRlKSB7XG4gICAgICAgICAgICAgICAgLy8gSW50ZXJuZXQgZXhwbG9yZXJcbiAgICAgICAgICAgICAgICBzY3JpcHQub25yZWFkeXN0YXRlY2hhbmdlID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoc2NyaXB0LnJlYWR5U3RhdGUgPT09IFwibG9hZGVkXCIgfHwgc2NyaXB0LnJlYWR5U3RhdGUgPT09IFwiY29tcGxldGVcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2NyaXB0Lm9ucmVhZHlzdGF0ZWNoYW5nZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHNjcmlwdCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBPdGhlciBicm93c2Vyc1xuICAgICAgICAgICAgICAgIHNjcmlwdC5vbmxvYWQgPSAoKSA9PiByZXNvbHZlKHNjcmlwdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzY3JpcHQub25lcnJvciA9IChlcnJvcjogYW55KSA9PiByZWplY3QoZXJyb3IpO1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzY3JpcHQpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2NyaXB0UHJvbWlzZXNbc3JjXTtcbiAgICB9XG5cbiAgICBzdGF0aWMgbG9hZFN0eWxlKHNyYzogc3RyaW5nKTogUHJvbWlzZTxIVE1MTGlua0VsZW1lbnQ+IHtcbiAgICAgICAgdGhpcy5zdHlsZVByb21pc2VzW3NyY10gPSB0aGlzLnN0eWxlUHJvbWlzZXNbc3JjXSB8fCBuZXcgUHJvbWlzZTxhbnk+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIC8vIExvYWQgc2NyaXB0XG4gICAgICAgICAgICBjb25zdCBsaW5rOiBhbnkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwibGlua1wiKTtcbiAgICAgICAgICAgIGxpbmsucmVsID0gXCJzdHlsZXNoZWV0XCI7XG4gICAgICAgICAgICBsaW5rLnR5cGUgPSBcInRleHQvY3NzXCI7XG4gICAgICAgICAgICBsaW5rLmhyZWYgPSBzcmM7XG5cbiAgICAgICAgICAgIGlmIChsaW5rLnJlYWR5U3RhdGUpIHtcbiAgICAgICAgICAgICAgICAvLyBJbnRlcm5ldCBleHBsb3JlclxuICAgICAgICAgICAgICAgIGxpbmsub25yZWFkeXN0YXRlY2hhbmdlID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAobGluay5yZWFkeVN0YXRlID09PSBcImxvYWRlZFwiIHx8IGxpbmsucmVhZHlTdGF0ZSA9PT0gXCJjb21wbGV0ZVwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5rLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGxpbmspO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gT3RoZXIgYnJvd3NlcnNcbiAgICAgICAgICAgICAgICBsaW5rLm9ubG9hZCA9ICgpID0+IHJlc29sdmUobGluayk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsaW5rLm9uZXJyb3IgPSAoZXJyb3I6IGFueSkgPT4gcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobGluayk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdGhpcy5zdHlsZVByb21pc2VzW3NyY107XG4gICAgfVxufVxuIl19
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL25neC11dGlscy91dGlscy9sb2FkZXIudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLFdBQVc7YUFFTCxhQUFRLEdBQW9DLEVBQUUsQ0FBQztJQUU5RCxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQWlCLEVBQUUsUUFBaUIsS0FBSyxFQUFFLE9BQW1CLGlCQUFpQixFQUFFLE1BQWEsRUFBRSxPQUF5QixLQUFLO1FBQzVJLE9BQU8sV0FBVyxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRTtZQUNwRCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2hELE1BQU0sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1lBQ25CLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1lBQ2pCLE1BQU0sQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLE9BQU8sTUFBTSxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBaUIsRUFBRSxNQUFhLEVBQUUsT0FBeUIsS0FBSztRQUM3RSxPQUFPLFdBQVcsQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUU7WUFDcEQsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM1QyxJQUFJLENBQUMsR0FBRyxHQUFHLFlBQVksQ0FBQztZQUN4QixJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQztZQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztZQUNoQixPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQWlCLEVBQUUsSUFBc0I7UUFDOUQsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNqQyxJQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN0QyxPQUFPLE1BQU0sQ0FBQztRQUNsQixDQUFDO1FBQ0QsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekIsR0FBRyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLE9BQU8sSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNuRixPQUFPLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU8sTUFBTSxDQUFDLFdBQVcsQ0FBNEIsR0FBaUIsRUFBRSxNQUFZLEVBQUUsSUFBc0IsRUFBRSxLQUF5QjtRQUNwSSxNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsUUFBNkIsQ0FBQztRQUMzRCxNQUFNLEdBQUcsR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM3QyxNQUFNLEdBQUcsTUFBTSxJQUFJLFFBQVEsQ0FBQztRQUM1QixJQUFJLE1BQU0sSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNyQixNQUFNLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztRQUMzQixDQUFDO1FBQ0QsSUFBSSxFQUFDLElBQUksRUFBRSxPQUFPLEVBQUMsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzFDLElBQUksSUFBSSxFQUFFLENBQUM7WUFDUCxJQUFJLE1BQU0sS0FBSyxJQUFJLENBQUMsYUFBYTtnQkFBRSxPQUFPLE9BQU8sQ0FBQztZQUNsRCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDckIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2xCLENBQUM7UUFDTCxDQUFDO1FBQ0QsSUFBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNsQixPQUFPLEdBQUcsSUFBSSxPQUFPLENBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDekMsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ2xCLG9CQUFvQjtnQkFDcEIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEdBQUcsRUFBRTtvQkFDM0IsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLFFBQVEsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLFVBQVUsRUFBRSxDQUFDO3dCQUNqRSxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO3dCQUMvQixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ2xCLENBQUM7Z0JBQ0wsQ0FBQyxDQUFDO1lBQ04sQ0FBQztpQkFBTSxDQUFDO2dCQUNKLGlCQUFpQjtnQkFDakIsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdEMsQ0FBQztZQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRCxDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUMsSUFBSSxFQUFFLE9BQU8sRUFBQyxDQUFDO1FBQ2hDLE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0xvYWRhYmxlRWxlbWVudCwgTG9hZGVyUHJvbWlzZXMsIFNjcmlwdFR5cGV9IGZyb20gXCIuLi9jb21tb24tdHlwZXNcIjtcblxuZXhwb3J0IGNsYXNzIExvYWRlclV0aWxzIHtcblxuICAgIHByaXZhdGUgc3RhdGljIHByb21pc2VzOiBMb2FkZXJQcm9taXNlczxMb2FkYWJsZUVsZW1lbnQ+ID0ge307XG5cbiAgICBzdGF0aWMgbG9hZFNjcmlwdChzcmM6IHN0cmluZyB8IFVSTCwgYXN5bmM6IGJvb2xlYW4gPSBmYWxzZSwgdHlwZTogU2NyaXB0VHlwZSA9IFwidGV4dC9qYXZhc2NyaXB0XCIsIHBhcmVudD86IE5vZGUsIHRpbWU6IGJvb2xlYW4gfCBzdHJpbmcgPSBmYWxzZSkge1xuICAgICAgICByZXR1cm4gTG9hZGVyVXRpbHMubG9hZEVsZW1lbnQoc3JjLCBwYXJlbnQsIHRpbWUsIHVybCA9PiB7XG4gICAgICAgICAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic2NyaXB0XCIpO1xuICAgICAgICAgICAgc2NyaXB0LnR5cGUgPSB0eXBlO1xuICAgICAgICAgICAgc2NyaXB0LnNyYyA9IHVybDtcbiAgICAgICAgICAgIHNjcmlwdC5hc3luYyA9IGFzeW5jO1xuICAgICAgICAgICAgcmV0dXJuIHNjcmlwdDtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc3RhdGljIGxvYWRTdHlsZShzcmM6IHN0cmluZyB8IFVSTCwgcGFyZW50PzogTm9kZSwgdGltZTogYm9vbGVhbiB8IHN0cmluZyA9IGZhbHNlKSB7XG4gICAgICAgIHJldHVybiBMb2FkZXJVdGlscy5sb2FkRWxlbWVudChzcmMsIHBhcmVudCwgdGltZSwgdXJsID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwibGlua1wiKTtcbiAgICAgICAgICAgIGxpbmsucmVsID0gXCJzdHlsZXNoZWV0XCI7XG4gICAgICAgICAgICBsaW5rLnR5cGUgPSBcInRleHQvY3NzXCI7XG4gICAgICAgICAgICBsaW5rLmhyZWYgPSB1cmw7XG4gICAgICAgICAgICByZXR1cm4gbGluaztcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgdXBkYXRlU3JjKHNyYzogc3RyaW5nIHwgVVJMLCB0aW1lOiBib29sZWFuIHwgc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3Qgc3JjU3RyID0gU3RyaW5nKHNyYyB8fCBcIlwiKTtcbiAgICAgICAgaWYgKHNyY1N0ci5zdGFydHNXaXRoKFwiZGF0YTpcIikgfHwgIXRpbWUpIHtcbiAgICAgICAgICAgIHJldHVybiBzcmNTdHI7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdXJsID0gbmV3IFVSTChzcmMpO1xuICAgICAgICB1cmwuc2VhcmNoUGFyYW1zLnNldChcInRpbWVcIiwgdHlwZW9mIHRpbWUgPT09IFwic3RyaW5nXCIgPyB0aW1lIDogU3RyaW5nKERhdGUubm93KCkpKTtcbiAgICAgICAgcmV0dXJuIHVybC50b1N0cmluZygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGxvYWRFbGVtZW50PFQgZXh0ZW5kcyBMb2FkYWJsZUVsZW1lbnQ+KHVybDogc3RyaW5nIHwgVVJMLCBwYXJlbnQ6IE5vZGUsIHRpbWU6IGJvb2xlYW4gfCBzdHJpbmcsIHNldHVwOiAodXJsOiBzdHJpbmcpID0+IFQpOiBQcm9taXNlPFQ+IHtcbiAgICAgICAgY29uc3QgcHJvbWlzZXMgPSBMb2FkZXJVdGlscy5wcm9taXNlcyBhcyBMb2FkZXJQcm9taXNlczxUPjtcbiAgICAgICAgY29uc3Qgc3JjID0gTG9hZGVyVXRpbHMudXBkYXRlU3JjKHVybCwgdGltZSk7XG4gICAgICAgIHBhcmVudCA9IHBhcmVudCB8fCBkb2N1bWVudDtcbiAgICAgICAgaWYgKHBhcmVudCA9PSBkb2N1bWVudCkge1xuICAgICAgICAgICAgcGFyZW50ID0gZG9jdW1lbnQuYm9keTtcbiAgICAgICAgfVxuICAgICAgICBsZXQge2VsZW0sIHByb21pc2V9ID0gcHJvbWlzZXNbc3JjXSB8fCB7fTtcbiAgICAgICAgaWYgKGVsZW0pIHtcbiAgICAgICAgICAgIGlmIChwYXJlbnQgPT09IGVsZW0ucGFyZW50RWxlbWVudCkgcmV0dXJuIHByb21pc2U7XG4gICAgICAgICAgICBpZiAoZWxlbS5wYXJlbnRFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgZWxlbS5yZW1vdmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbGVtID0gc2V0dXAoc3JjKTtcbiAgICAgICAgcHJvbWlzZSA9IG5ldyBQcm9taXNlPFQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIGlmIChlbGVtLnJlYWR5U3RhdGUpIHtcbiAgICAgICAgICAgICAgICAvLyBJbnRlcm5ldCBleHBsb3JlclxuICAgICAgICAgICAgICAgIGVsZW0ub25yZWFkeXN0YXRlY2hhbmdlID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbS5yZWFkeVN0YXRlID09PSBcImxvYWRlZFwiIHx8IGVsZW0ucmVhZHlTdGF0ZSA9PT0gXCJjb21wbGV0ZVwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGVsZW0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gT3RoZXIgYnJvd3NlcnNcbiAgICAgICAgICAgICAgICBlbGVtLm9ubG9hZCA9ICgpID0+IHJlc29sdmUoZWxlbSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbGVtLm9uZXJyb3IgPSAoZXJyb3I6IGFueSkgPT4gcmVqZWN0KGVycm9yKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHBhcmVudC5hcHBlbmRDaGlsZChlbGVtKTtcbiAgICAgICAgcHJvbWlzZXNbc3JjXSA9IHtlbGVtLCBwcm9taXNlfTtcbiAgICAgICAgcmV0dXJuIHByb21pc2U7XG4gICAgfVxufVxuIl19
@@ -100,4 +100,4 @@ export { DropdownBoxComponent } from "./ngx-utils/components/dropdown-box/dropdo
100
100
  export { DynamicTableComponent } from "./ngx-utils/components/dynamic-table/dynamic-table.component";
101
101
  export { PaginationMenuComponent } from "./ngx-utils/components/pagination-menu/pagination-menu.component";
102
102
  export { NgxUtilsModule } from "./ngx-utils/ngx-utils.module";
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFLSCxhQUFhLEVBRWIsV0FBVyxFQUVYLFlBQVksRUFPWixnQkFBZ0IsRUFLaEIsWUFBWSxFQUdaLGVBQWUsRUFLZixtQkFBbUIsRUFHbkIsV0FBVyxFQUVYLGVBQWUsRUFhZixtQkFBbUIsRUFDbkIsVUFBVSxFQVFWLHFCQUFxQixFQVFyQixXQUFXLEVBRVgsZUFBZSxFQUdmLFdBQVcsRUFZWCxpQkFBaUIsRUFDakIsWUFBWSxFQUNaLGNBQWMsRUFFZCxjQUFjLEVBQ2QsV0FBVyxFQUNYLGFBQWEsRUFDYixZQUFZLEVBQ1osWUFBWSxFQUVaLGVBQWUsRUFFZixhQUFhLEVBSWIsYUFBYSxFQUNoQixNQUFNLDBCQUEwQixDQUFDO0FBRWxDLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQzFFLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDdkQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQy9ELE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0QsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDN0QsT0FBTyxFQUFtRCxlQUFlLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUNoSCxPQUFPLEVBQVMsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUMs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eUNBQXlDLENBQUM7QUFDeEUsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFDbkYsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sc0RBQXNELENBQUM7QUFDaEcsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0sMERBQTBELENBQUM7QUFFeEcsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sZ0VBQWdFLENBQUM7QUFDdEcsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sNERBQTRELENBQUM7QUFDaEcsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sOERBQThELENBQUM7QUFDbkcsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sa0VBQWtFLENBQUM7QUFFekcsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDhCQUE4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHtcbiAgICBUeXBlZEZhY3RvcnlQcm92aWRlcixcbiAgICBUeXBlZFZhbHVlUHJvdmlkZXIsXG4gICAgQ2FjaGVkUHJvdmlkZXIsXG4gICAgQ2FjaGVkRmFjdG9yeSxcbiAgICBPUFRJT05TX1RPS0VOLFxuICAgIElSZXNvbHZlRmFjdG9yeSxcbiAgICBDYW52YXNDb2xvcixcbiAgICBJSWNvblNlcnZpY2UsXG4gICAgSUNPTl9TRVJWSUNFLFxuICAgIElUcmFuc2xhdGlvbixcbiAgICBJVHJhbnNsYXRpb25zLFxuICAgIEdsb2JhbFRyYW5zbGF0aW9ucyxcbiAgICBJTGFuZ3VhZ2VTZXR0aW5nLFxuICAgIElMYW5ndWFnZVNldHRpbmdzLFxuICAgIElMYW5ndWFnZVNlcnZpY2UsXG4gICAgTEFOR1VBR0VfU0VSVklDRSxcbiAgICBJQXV0aFNlcnZpY2UsXG4gICAgUm91dGVWYWxpZGF0b3IsXG4gICAgSVJvdXRlRGF0YSxcbiAgICBJUm91dGUsXG4gICAgQVVUSF9TRVJWSUNFLFxuICAgIElBY2xDb21wb25lbnQsXG4gICAgSVByb21pc2VTZXJ2aWNlLFxuICAgIFBST01JU0VfU0VSVklDRSxcbiAgICBJV2FzaSxcbiAgICBJV2FzbUV4cG9ydHMsXG4gICAgSVdhc20sXG4gICAgSVdhc21Bc3luYyxcbiAgICBXQVNJX0lNUExFTUVOVEFUSU9OLFxuICAgIElSb3V0ZVN0YXRlSW5mbyxcbiAgICBOYXZpZ2F0aW9uVXJsUGFyYW0sXG4gICAgU3RvcmFnZU1vZGUsXG4gICAgSVRvYXN0ZXJTZXJ2aWNlLFxuICAgIFRPQVNURVJfU0VSVklDRSxcbiAgICBJQXN5bmNNZXNzYWdlLFxuICAgIEFzeW5jTWV0aG9kLFxuICAgIERyb3Bkb3duQXR0YWNoVG8sXG4gICAgVW5vcmRlcmVkTGlzdFRlbXBsYXRlLFxuICAgIFVub3JkZXJlZExpc3RUZW1wbGF0ZXMsXG4gICAgVW5vcmRlcmVkTGlzdFN0eWxlLFxuICAgIElBamF4UmVxdWVzdERldGFpbHMsXG4gICAgQWpheFJlcXVlc3RDYWxsYmFjayxcbiAgICBTY3JpcHRUeXBlLFxuICAgIElTY3JpcHRQcm9taXNlcyxcbiAgICBJU3R5bGVQcm9taXNlcyxcbiAgICBJU2VhcmNoT2JzZXJ2YWJsZSxcbiAgICBGYWN0b3J5RGVwZW5kZW5jaWVzLFxuICAgIE9iamVjdFR5cGUsXG4gICAgSVRpbWVyLFxuICAgIElFeHRyYVByb3BlcnRpZXMsXG4gICAgSUdyb3VwTWFwLFxuICAgIFRyYW5zbGF0aW9uUXVlcnksXG4gICAgSVBhZ2VJbmZvLFxuICAgIElQYWdpbmF0aW9uRGF0YSxcbiAgICBQYWdpbmF0aW9uRGF0YUxvYWRlcixcbiAgICBQYWdpbmF0aW9uSXRlbUNvbnRleHQsXG4gICAgSUh0dHBIZWFkZXJzLFxuICAgIElIdHRwUGFyYW1zLFxuICAgIElSZXF1ZXN0T3B0aW9ucyxcbiAgICBJSXNzdWVDb250ZXh0LFxuICAgIElQcm9ncmVzcyxcbiAgICBQcm9ncmVzc0xpc3RlbmVyLFxuICAgIFByb21pc2VFeGVjdXRvcixcbiAgICBIdHRwUHJvbWlzZSxcbiAgICBJSHR0cFNlcnZpY2UsXG4gICAgRVhQUkVTU19SRVFVRVNULFxuICAgIElCYXNlSHR0cENsaWVudCxcbiAgICBJQXBpU2VydmljZSxcbiAgICBBUElfU0VSVklDRSxcbiAgICBJT3BlbkFwaVNjaGVtYVByb3BlcnR5LFxuICAgIElPcGVuQXBpU2NoZW1hLFxuICAgIElPcGVuQXBpU2NoZW1hcyxcbiAgICBJVGFibGVPcmRlcnMsXG4gICAgSVRhYmxlQ29sdW1uLFxuICAgIElUYWJsZUNvbHVtbnMsXG4gICAgVGFibGVDb2x1bW5zLFxuICAgIElUYWJsZVRlbXBsYXRlLFxuICAgIElUYWJsZVRlbXBsYXRlcyxcbiAgICBJVGFibGVEYXRhUXVlcnksXG4gICAgVGFibGVEYXRhTG9hZGVyLFxuICAgIFJlc291cmNlSWZDb250ZXh0LFxuICAgIEFQUF9CQVNFX1VSTCxcbiAgICBJQ29uZmlndXJhdGlvbixcbiAgICBJQ29uZmlnU2VydmljZSxcbiAgICBDT05GSUdfU0VSVklDRSxcbiAgICBCQVNFX0NPTkZJRyxcbiAgICBTQ1JJUFRfUEFSQU1TLFxuICAgIFJPT1RfRUxFTUVOVCxcbiAgICBSRVNJWkVfREVMQVksXG4gICAgUmVzaXplRXZlbnRTdHJhdGVneSxcbiAgICBSRVNJWkVfU1RSQVRFR1ksXG4gICAgRXJyb3JIYW5kbGVyQ2FsbGJhY2ssXG4gICAgRVJST1JfSEFORExFUixcbiAgICBHbG9iYWxDb21wb25lbnRNb2RpZmllcixcbiAgICBBcHBJbml0aWFsaXplckZ1bmMsXG4gICAgSU1vZHVsZUNvbmZpZyxcbiAgICBWYWx1ZWRQcm9taXNlXG59IGZyb20gXCIuL25neC11dGlscy9jb21tb24tdHlwZXNcIjtcblxuZXhwb3J0IHtBamF4UmVxdWVzdEhhbmRsZXJ9IGZyb20gXCIuL25neC11dGlscy91dGlscy9hamF4LXJlcXVlc3QtaGFuZGxlclwiO1xuZXhwb3J0IHtBcnJheVV0aWxzfSBmcm9tIFwiLi9uZ3gtdXRpbHMvdXRpbHMvYXJyYXkudXRpbHNcIjtcbmV4cG9ydCB7QXV0aEd1YXJkfSBmcm9tIFwiLi9uZ3gtdXRpbHMvdXRpbHMvYXV0aC5ndWFyZFwiO1xuZXhwb3J0IHtjYWNoZWRGYWN0b3J5fSBmcm9tIFwiLi9uZ3gtdXRpbHMvdXRpbHMvY2FjaGVkLWZhY3RvcnlcIjtcbmV4cG9ydCB7bWQ1fSBmcm9tIFwiLi9uZ3gtdXRpbHMvdXRpbHMvY3J5cHRvLnV0aWxzXCI7XG5leHBvcnQge0NhbnZhc1V0aWxzfSBmcm9tIFwiLi9uZ3gtdXRpbHMvdXRpbHMvY2FudmFzLnV0aWxzXCI7XG5leHBvcnQge0RhdGVVdGlsc30gZnJvbSBcIi4vbmd4LXV0aWxzL3V0aWxzL2RhdGUudXRpbHNcIjtcbmV4cG9ydCB7RmlsZVV0aWxzfSBmcm9tIFwiLi9uZ3gtdXRpbHMvdXRpbHMvZmlsZS51dGlsc1wiO1xuZXhwb3J0IHtHZW5lcmljVmFsdWV9IGZyb20gXCIuL25neC11dGlscy91dGlscy9nZW5lcmljLXZhbHVlXCI7XG5leHBvcnQge0ZpbGVTeXN0ZW1FbnRyeU9wZW5SZXN1bHQsIEZpbGVTeXN0ZW1FbnRyeU9wZW5DYiwgRmlsZVN5c3RlbUVudHJ5fSBmcm9tIFwiLi9uZ3gtdXRpbHMvdXRpbHMvZmlsZS1zeXN0ZW1cIjtcbmV4cG9ydCB7SVNoYXBlLCBSZWN0LCBDaXJjbGUsIFBvaW50fSBmcm9tIFwiLi9uZ3gtdXRpbHMvdXRpbHMvZ2VvbWV0cnlcIjtcbmV4cG9ydCB7SW5pdGlhbGl6ZXJ9IGZyb20gXCIuL25neC11dGlscy91dGlscy9pbml0aWFsaXplclwiO1xuZXhwb3J0IHtzdHJpbmdpZnl9IGZyb20gXCIuL25neC11dGlscy91dGlscy9qc29uLnV0aWxzXCI7XG5leHBvcnQge1JlZmxlY3RVdGlsc30gZnJvbSBcIi4vbmd4LXV0aWxzL3V0aWxzL3JlZmxlY3QudXRpbHNcIjtcbmV4cG9ydCB7TG9hZGVyVXRpbHN9IGZyb20gXCIuL25neC11dGlscy91dGlscy9sb2FkZXIudXRpbHNcIjtcbmV4cG9ydCB7TWF0aFV0aWxzfSBmcm9tIFwiLi9uZ3gtdXRpbHMvdXRpbHMvbWF0aC51dGlsc1wiO1xuZXhwb3J0IHtnZXRDc3NWYXJpYWJsZXN9IGZyb20gXCIuL25neC11dGlscy91dGlscy9taXNjXCI7XG5leHBvcnQge09iamVjdFV0aWxzfSBmcm9tIFwiLi9uZ3gtdXRpbHMvdXRpbHMvb2JqZWN0LnV0aWxzXCI7XG5leHBvcnQge09ic2VydmFibGVVdGlscywgSVN1YnNjcmliZXJJbmZvfSBmcm9tIFwiLi9uZ3gtdXRpbHMvdXRpbHMvb2JzZXJ2YWJsZS51dGlsc1wiO1xuZXhwb3J0IHtDYW5jZWxhYmxlUHJvbWlzZSwgY2FuY2VsYWJsZVByb21pc2UsIGltcGF0aWVudFByb21pc2V9IGZyb20gXCIuL25neC11dGlscy91dGlscy9wcm9taXNlLnV0aWxzXCI7XG5leHBvcnQge1N0cmluZ1V0aWxzfSBmcm9tIFwiLi9uZ3gtdXRpbHMvdXRpbHMvc3RyaW5nLnV0aWxzXCI7XG5leHBvcnQge1NldFV0aWxzfSBmcm9tIFwiLi9uZ3gtdXRpbHMvdXRpbHMvc2V0LnV0aWxzXCI7XG5leHBvcnQge1RpbWVyVXRpbHN9IGZyb20gXCIuL25neC11dGlscy91dGlscy90aW1lci51dGlsc1wiO1xuZXhwb3J0IHtVbmlxdWVVdGlsc30gZnJvbSBcIi4vbmd4LXV0aWxzL3V0aWxzL3VuaXF1ZS51dGlsc1wiO1xuZXhwb3J0IHtWZWN0b3J9IGZyb20gXCIuL25neC11dGlscy91dGlscy92ZWN0b3JcIjtcbmV4cG9ydCB7cHJvdmlkZVdpdGhPcHRpb25zfSBmcm9tIFwiLi9uZ3gtdXRpbHMvdXRpbHMvd2l0aC1vcHRpb25zLXByb3ZpZGVyXCI7XG5cbmV4cG9ydCB7VW5pdmVyc2FsU2VydmljZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3NlcnZpY2VzL3VuaXZlcnNhbC5zZXJ2aWNlXCI7XG5leHBvcnQge1dhc21TZXJ2aWNlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvc2VydmljZXMvd2FzbS5zZXJ2aWNlXCI7XG5leHBvcnQge0FjbFNlcnZpY2V9IGZyb20gXCIuL25neC11dGlscy9zZXJ2aWNlcy9hY2wuc2VydmljZVwiO1xuZXhwb3J0IHtBcGlTZXJ2aWNlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvc2VydmljZXMvYXBpLnNlcnZpY2VcIjtcbmV4cG9ydCB7U3RhdGljQXV0aFNlcnZpY2V9IGZyb20gXCIuL25neC11dGlscy9zZXJ2aWNlcy9hdXRoLnNlcnZpY2VcIjtcbmV4cG9ydCB7QmFzZUh0dHBDbGllbnR9IGZyb20gXCIuL25neC11dGlscy9zZXJ2aWNlcy9iYXNlLWh0dHAuY2xpZW50XCI7XG5leHBvcnQge0Jhc2VIdHRwU2VydmljZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3NlcnZpY2VzL2Jhc2UtaHR0cC5zZXJ2aWNlXCI7XG5leHBvcnQge0NvbmZpZ1NlcnZpY2V9IGZyb20gXCIuL25neC11dGlscy9zZXJ2aWNlcy9jb25maWcuc2VydmljZVwiO1xuZXhwb3J0IHtFcnJvckhhbmRsZXJTZXJ2aWNlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvc2VydmljZXMvZXJyb3ItaGFuZGxlci5zZXJ2aWNlXCI7XG5leHBvcnQge0V2ZW50c1NlcnZpY2V9IGZyb20gXCIuL25neC11dGlscy9zZXJ2aWNlcy9ldmVudHMuc2VydmljZVwiO1xuZXhwb3J0IHtGb3JtYXR0ZXJTZXJ2aWNlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvc2VydmljZXMvZm9ybWF0dGVyLnNlcnZpY2VcIjtcbmV4cG9ydCB7R2xvYmFsVGVtcGxhdGVTZXJ2aWNlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvc2VydmljZXMvZ2xvYmFsLXRlbXBsYXRlLnNlcnZpY2VcIjtcbmV4cG9ydCB7SWNvblNlcnZpY2V9IGZyb20gXCIuL25neC11dGlscy9zZXJ2aWNlcy9pY29uLnNlcnZpY2VcIjtcbmV4cG9ydCB7TGFuZ3VhZ2VTZXJ2aWNlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvc2VydmljZXMvbGFuZ3VhZ2Uuc2VydmljZVwiO1xuZXhwb3J0IHtMb2NhbEh0dHBTZXJ2aWNlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvc2VydmljZXMvbG9jYWwtaHR0cC5zZXJ2aWNlXCI7XG5leHBvcnQge09wZW5BcGlTZXJ2aWNlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvc2VydmljZXMvb3Blbi1hcGkuc2VydmljZVwiO1xuZXhwb3J0IHtJU3RhdGVJbmZvLCBTdGF0ZVNlcnZpY2V9IGZyb20gXCIuL25neC11dGlscy9zZXJ2aWNlcy9zdGF0ZS5zZXJ2aWNlXCI7XG5leHBvcnQge1N0YXRpY0xhbmd1YWdlU2VydmljZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3NlcnZpY2VzL3N0YXRpYy1sYW5ndWFnZS5zZXJ2aWNlXCI7XG5leHBvcnQge1N0b3JhZ2VTZXJ2aWNlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvc2VydmljZXMvc3RvcmFnZS5zZXJ2aWNlXCI7XG5leHBvcnQge0NvbnNvbGVUb2FzdGVyU2VydmljZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3NlcnZpY2VzL3RvYXN0ZXIuc2VydmljZVwiO1xuZXhwb3J0IHtJVXJsRGljdGlvbmFyeSwgVHJhbnNsYXRlZFVybFNlcmlhbGl6ZXJ9IGZyb20gXCIuL25neC11dGlscy9zZXJ2aWNlcy90cmFuc2xhdGVkLXVybC5zZXJpYWxpemVyXCI7XG5leHBvcnQge1Byb21pc2VTZXJ2aWNlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvc2VydmljZXMvcHJvbWlzZS5zZXJ2aWNlXCI7XG5cbmV4cG9ydCB7UmVzaXplRXZlbnRQbHVnaW59IGZyb20gXCIuL25neC11dGlscy9wbHVnaW5zL3Jlc2l6ZS1ldmVudC5wbHVnaW5cIjtcbmV4cG9ydCB7U2Nyb2xsRXZlbnRQbHVnaW59IGZyb20gXCIuL25neC11dGlscy9wbHVnaW5zL3Njcm9sbC1ldmVudC5wbHVnaW5cIjtcblxuZXhwb3J0IHtDaHVua1BpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy9jaHVuay5waXBlXCI7XG5leHBvcnQge0VudHJpZXNQaXBlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGlwZXMvZW50cmllcy5waXBlXCI7XG5leHBvcnQge0V4dHJhSXRlbVByb3BlcnRpZXNQaXBlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGlwZXMvZXh0cmEtaXRlbS1wcm9wZXJ0aWVzLnBpcGVcIjtcbmV4cG9ydCB7RmlsdGVyUGlwZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3BpcGVzL2ZpbHRlci5waXBlXCI7XG5leHBvcnQge0ZpbmRQaXBlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGlwZXMvZmluZC5waXBlXCI7XG5leHBvcnQge0Zvcm1hdE51bWJlclBpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy9mb3JtYXQtbnVtYmVyLnBpcGVcIjtcbmV4cG9ydCB7R2V0T2Zmc2V0UGlwZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3BpcGVzL2dldC1vZmZzZXQucGlwZVwiO1xuZXhwb3J0IHtHZXRUeXBlUGlwZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3BpcGVzL2dldC10eXBlLnBpcGVcIjtcbmV4cG9ydCB7R2V0VmFsdWVQaXBlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGlwZXMvZ2V0LXZhbHVlLnBpcGVcIjtcbmV4cG9ydCB7R2xvYmFsVGVtcGxhdGVQaXBlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGlwZXMvZ2xvYmFsLXRlbXBsYXRlLnBpcGVcIjtcbmV4cG9ydCB7R3JvdXBCeVBpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy9ncm91cC1ieS5waXBlXCI7XG5leHBvcnQge0luY2x1ZGVzUGlwZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3BpcGVzL2luY2x1ZGVzLnBpcGVcIjtcbmV4cG9ydCB7SXNUeXBlUGlwZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3BpcGVzL2lzLXR5cGUucGlwZVwiO1xuZXhwb3J0IHtKb2luUGlwZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3BpcGVzL2pvaW4ucGlwZVwiO1xuZXhwb3J0IHtLZXlzUGlwZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3BpcGVzL2tleXMucGlwZVwiO1xuZXhwb3J0IHtNYXBQaXBlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGlwZXMvbWFwLnBpcGVcIjtcbmV4cG9ydCB7TWF4UGlwZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3BpcGVzL21heC5waXBlXCI7XG5leHBvcnQge01pblBpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy9taW4ucGlwZVwiO1xuZXhwb3J0IHtQb3BQaXBlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGlwZXMvcG9wLnBpcGVcIjtcbmV4cG9ydCB7UmVkdWNlUGlwZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3BpcGVzL3JlZHVjZS5waXBlXCI7XG5leHBvcnQge1JlbWFwUGlwZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3BpcGVzL3JlbWFwLnBpcGVcIjtcbmV4cG9ydCB7UmVwbGFjZVBpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy9yZXBsYWNlLnBpcGVcIjtcbmV4cG9ydCB7UmV2ZXJzZVBpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy9yZXZlcnNlLnBpcGVcIjtcbmV4cG9ydCB7Um91bmRQaXBlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGlwZXMvcm91bmQucGlwZVwiO1xuZXhwb3J0IHtTYWZlSHRtbFBpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy9zYWZlLWh0bWwucGlwZVwiO1xuZXhwb3J0IHtTaGlmdFBpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy9zaGlmdC5waXBlXCI7XG5leHBvcnQge1NwbGl0UGlwZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3BpcGVzL3NwbGl0LnBpcGVcIjtcbmV4cG9ydCB7VHJhbnNsYXRlUGlwZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3BpcGVzL3RyYW5zbGF0ZS5waXBlXCI7XG5leHBvcnQge1ZhbHVlc1BpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy92YWx1ZXMucGlwZVwiO1xuXG5leHBvcnQge0FzeW5jTWV0aG9kQmFzZX0gZnJvbSBcIi4vbmd4LXV0aWxzL2RpcmVjdGl2ZXMvYXN5bmMtbWV0aG9kLmJhc2VcIjtcbmV4cG9ydCB7QXN5bmNNZXRob2REaXJlY3RpdmV9IGZyb20gXCIuL25neC11dGlscy9kaXJlY3RpdmVzL2FzeW5jLW1ldGhvZC5kaXJlY3RpdmVcIjtcbmV4cG9ydCB7QmFja2dyb3VuZERpcmVjdGl2ZX0gZnJvbSBcIi4vbmd4LXV0aWxzL2RpcmVjdGl2ZXMvYmFja2dyb3VuZC5kaXJlY3RpdmVcIjtcbmV4cG9ydCB7RHJvcGRvd25EaXJlY3RpdmV9IGZyb20gXCIuL25neC11dGlscy9kaXJlY3RpdmVzL2Ryb3Bkb3duLmRpcmVjdGl2ZVwiO1xuZXhwb3J0IHtEcm9wZG93bkNvbnRlbnREaXJlY3RpdmV9IGZyb20gXCIuL25neC11dGlscy9kaXJlY3RpdmVzL2Ryb3Bkb3duLWNvbnRlbnQuZGlyZWN0aXZlXCI7XG5leHBvcnQge0Ryb3Bkb3duVG9nZ2xlRGlyZWN0aXZlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvZGlyZWN0aXZlcy9kcm9wZG93bi10b2dnbGUuZGlyZWN0aXZlXCI7XG5leHBvcnQge0R5bmFtaWNUYWJsZVRlbXBsYXRlRGlyZWN0aXZlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvZGlyZWN0aXZlcy9keW5hbWljLXRhYmxlLXRlbXBsYXRlLmRpcmVjdGl2ZVwiO1xuZXhwb3J0IHtHbG9iYWxUZW1wbGF0ZURpcmVjdGl2ZX0gZnJvbSBcIi4vbmd4LXV0aWxzL2RpcmVjdGl2ZXMvZ2xvYmFsLXRlbXBsYXRlLmRpcmVjdGl2ZVwiO1xuZXhwb3J0IHtJY29uRGlyZWN0aXZlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvZGlyZWN0aXZlcy9pY29uLmRpcmVjdGl2ZVwiO1xuZXhwb3J0IHtOZ3hUZW1wbGF0ZU91dGxldERpcmVjdGl2ZX0gZnJvbSBcIi4vbmd4LXV0aWxzL2RpcmVjdGl2ZXMvbmd4LXRlbXBsYXRlLW91dGxldC5kaXJlY3RpdmVcIjtcbmV4cG9ydCB7UGFnaW5hdGlvbkRpcmVjdGl2ZX0gZnJvbSBcIi4vbmd4LXV0aWxzL2RpcmVjdGl2ZXMvcGFnaW5hdGlvbi5kaXJlY3RpdmVcIjtcbmV4cG9ydCB7UGFnaW5hdGlvbkl0ZW1EaXJlY3RpdmV9IGZyb20gXCIuL25neC11dGlscy9kaXJlY3RpdmVzL3BhZ2luYXRpb24taXRlbS5kaXJlY3RpdmVcIjtcbmV4cG9ydCB7UmVzb3VyY2VJZkRpcmVjdGl2ZX0gZnJvbSBcIi4vbmd4LXV0aWxzL2RpcmVjdGl2ZXMvcmVzb3VyY2UtaWYuZGlyZWN0aXZlXCI7XG5leHBvcnQge1N0aWNreURpcmVjdGl2ZX0gZnJvbSBcIi4vbmd4LXV0aWxzL2RpcmVjdGl2ZXMvc3RpY2t5LmRpcmVjdGl2ZVwiO1xuZXhwb3J0IHtTdGlja3lDbGFzc0RpcmVjdGl2ZX0gZnJvbSBcIi4vbmd4LXV0aWxzL2RpcmVjdGl2ZXMvc3RpY2t5LWNsYXNzLmRpcmVjdGl2ZVwiO1xuZXhwb3J0IHtVbm9yZGVyZWRMaXN0SXRlbURpcmVjdGl2ZX0gZnJvbSBcIi4vbmd4LXV0aWxzL2RpcmVjdGl2ZXMvdW5vcmRlcmVkLWxpc3QtaXRlbS5kaXJlY3RpdmVcIjtcbmV4cG9ydCB7VW5vcmRlcmVkTGlzdFRlbXBsYXRlRGlyZWN0aXZlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvZGlyZWN0aXZlcy91bm9yZGVyZWQtbGlzdC10ZW1wbGF0ZS5kaXJlY3RpdmVcIjtcblxuZXhwb3J0IHtVbm9yZGVyZWRMaXN0Q29tcG9uZW50fSBmcm9tIFwiLi9uZ3gtdXRpbHMvY29tcG9uZW50cy91bm9yZGVyZWQtbGlzdC91bm9yZGVyZWQtbGlzdC5jb21wb25lbnRcIjtcbmV4cG9ydCB7RHJvcGRvd25Cb3hDb21wb25lbnR9IGZyb20gXCIuL25neC11dGlscy9jb21wb25lbnRzL2Ryb3Bkb3duLWJveC9kcm9wZG93bi1ib3guY29tcG9uZW50XCI7XG5leHBvcnQge0R5bmFtaWNUYWJsZUNvbXBvbmVudH0gZnJvbSBcIi4vbmd4LXV0aWxzL2NvbXBvbmVudHMvZHluYW1pYy10YWJsZS9keW5hbWljLXRhYmxlLmNvbXBvbmVudFwiO1xuZXhwb3J0IHtQYWdpbmF0aW9uTWVudUNvbXBvbmVudH0gZnJvbSBcIi4vbmd4LXV0aWxzL2NvbXBvbmVudHMvcGFnaW5hdGlvbi1tZW51L3BhZ2luYXRpb24tbWVudS5jb21wb25lbnRcIjtcblxuZXhwb3J0IHtOZ3hVdGlsc01vZHVsZX0gZnJvbSBcIi4vbmd4LXV0aWxzL25neC11dGlscy5tb2R1bGVcIjtcbiJdfQ==
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFLSCxhQUFhLEVBRWIsV0FBVyxFQUVYLFlBQVksRUFPWixnQkFBZ0IsRUFNaEIsWUFBWSxFQUdaLGVBQWUsRUFLZixtQkFBbUIsRUFHbkIsV0FBVyxFQUVYLGVBQWUsRUFhZixtQkFBbUIsRUFDbkIsVUFBVSxFQVFWLHFCQUFxQixFQVFyQixXQUFXLEVBRVgsZUFBZSxFQUdmLFdBQVcsRUFZWCxpQkFBaUIsRUFDakIsWUFBWSxFQUNaLGNBQWMsRUFFZCxjQUFjLEVBQ2QsV0FBVyxFQUNYLGFBQWEsRUFDYixZQUFZLEVBQ1osWUFBWSxFQUVaLGVBQWUsRUFFZixhQUFhLEVBSWIsYUFBYSxFQUNoQixNQUFNLDBCQUEwQixDQUFDO0FBRWxDLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQzFFLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDdkQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQy9ELE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0QsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDN0QsT0FBTyxFQUFtRCxlQUFlLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUNoSCxPQUFPLEVBQVMsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUMs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eUNBQXlDLENBQUM7QUFDeEUsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFDbkYsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sc0RBQXNELENBQUM7QUFDaEcsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0sMERBQTBELENBQUM7QUFFeEcsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sZ0VBQWdFLENBQUM7QUFDdEcsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sNERBQTRELENBQUM7QUFDaEcsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sOERBQThELENBQUM7QUFDbkcsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sa0VBQWtFLENBQUM7QUFFekcsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDhCQUE4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHtcbiAgICBUeXBlZEZhY3RvcnlQcm92aWRlcixcbiAgICBUeXBlZFZhbHVlUHJvdmlkZXIsXG4gICAgQ2FjaGVkUHJvdmlkZXIsXG4gICAgQ2FjaGVkRmFjdG9yeSxcbiAgICBPUFRJT05TX1RPS0VOLFxuICAgIElSZXNvbHZlRmFjdG9yeSxcbiAgICBDYW52YXNDb2xvcixcbiAgICBJSWNvblNlcnZpY2UsXG4gICAgSUNPTl9TRVJWSUNFLFxuICAgIElUcmFuc2xhdGlvbixcbiAgICBJVHJhbnNsYXRpb25zLFxuICAgIEdsb2JhbFRyYW5zbGF0aW9ucyxcbiAgICBJTGFuZ3VhZ2VTZXR0aW5nLFxuICAgIElMYW5ndWFnZVNldHRpbmdzLFxuICAgIElMYW5ndWFnZVNlcnZpY2UsXG4gICAgTEFOR1VBR0VfU0VSVklDRSxcbiAgICBJVXNlckRhdGEsXG4gICAgSUF1dGhTZXJ2aWNlLFxuICAgIFJvdXRlVmFsaWRhdG9yLFxuICAgIElSb3V0ZURhdGEsXG4gICAgSVJvdXRlLFxuICAgIEFVVEhfU0VSVklDRSxcbiAgICBJQWNsQ29tcG9uZW50LFxuICAgIElQcm9taXNlU2VydmljZSxcbiAgICBQUk9NSVNFX1NFUlZJQ0UsXG4gICAgSVdhc2ksXG4gICAgSVdhc21FeHBvcnRzLFxuICAgIElXYXNtLFxuICAgIElXYXNtQXN5bmMsXG4gICAgV0FTSV9JTVBMRU1FTlRBVElPTixcbiAgICBJUm91dGVTdGF0ZUluZm8sXG4gICAgTmF2aWdhdGlvblVybFBhcmFtLFxuICAgIFN0b3JhZ2VNb2RlLFxuICAgIElUb2FzdGVyU2VydmljZSxcbiAgICBUT0FTVEVSX1NFUlZJQ0UsXG4gICAgSUFzeW5jTWVzc2FnZSxcbiAgICBBc3luY01ldGhvZCxcbiAgICBEcm9wZG93bkF0dGFjaFRvLFxuICAgIFVub3JkZXJlZExpc3RUZW1wbGF0ZSxcbiAgICBVbm9yZGVyZWRMaXN0VGVtcGxhdGVzLFxuICAgIFVub3JkZXJlZExpc3RTdHlsZSxcbiAgICBJQWpheFJlcXVlc3REZXRhaWxzLFxuICAgIEFqYXhSZXF1ZXN0Q2FsbGJhY2ssXG4gICAgU2NyaXB0VHlwZSxcbiAgICBMb2FkYWJsZUVsZW1lbnQsXG4gICAgTG9hZGVyUHJvbWlzZXMsXG4gICAgSVNlYXJjaE9ic2VydmFibGUsXG4gICAgRmFjdG9yeURlcGVuZGVuY2llcyxcbiAgICBPYmplY3RUeXBlLFxuICAgIElUaW1lcixcbiAgICBJRXh0cmFQcm9wZXJ0aWVzLFxuICAgIElHcm91cE1hcCxcbiAgICBUcmFuc2xhdGlvblF1ZXJ5LFxuICAgIElQYWdlSW5mbyxcbiAgICBJUGFnaW5hdGlvbkRhdGEsXG4gICAgUGFnaW5hdGlvbkRhdGFMb2FkZXIsXG4gICAgUGFnaW5hdGlvbkl0ZW1Db250ZXh0LFxuICAgIElIdHRwSGVhZGVycyxcbiAgICBJSHR0cFBhcmFtcyxcbiAgICBJUmVxdWVzdE9wdGlvbnMsXG4gICAgSUlzc3VlQ29udGV4dCxcbiAgICBJUHJvZ3Jlc3MsXG4gICAgUHJvZ3Jlc3NMaXN0ZW5lcixcbiAgICBQcm9taXNlRXhlY3V0b3IsXG4gICAgSHR0cFByb21pc2UsXG4gICAgSUh0dHBTZXJ2aWNlLFxuICAgIEVYUFJFU1NfUkVRVUVTVCxcbiAgICBJQmFzZUh0dHBDbGllbnQsXG4gICAgSUFwaVNlcnZpY2UsXG4gICAgQVBJX1NFUlZJQ0UsXG4gICAgSU9wZW5BcGlTY2hlbWFQcm9wZXJ0eSxcbiAgICBJT3BlbkFwaVNjaGVtYSxcbiAgICBJT3BlbkFwaVNjaGVtYXMsXG4gICAgSVRhYmxlT3JkZXJzLFxuICAgIElUYWJsZUNvbHVtbixcbiAgICBJVGFibGVDb2x1bW5zLFxuICAgIFRhYmxlQ29sdW1ucyxcbiAgICBJVGFibGVUZW1wbGF0ZSxcbiAgICBJVGFibGVUZW1wbGF0ZXMsXG4gICAgSVRhYmxlRGF0YVF1ZXJ5LFxuICAgIFRhYmxlRGF0YUxvYWRlcixcbiAgICBSZXNvdXJjZUlmQ29udGV4dCxcbiAgICBBUFBfQkFTRV9VUkwsXG4gICAgSUNvbmZpZ3VyYXRpb24sXG4gICAgSUNvbmZpZ1NlcnZpY2UsXG4gICAgQ09ORklHX1NFUlZJQ0UsXG4gICAgQkFTRV9DT05GSUcsXG4gICAgU0NSSVBUX1BBUkFNUyxcbiAgICBST09UX0VMRU1FTlQsXG4gICAgUkVTSVpFX0RFTEFZLFxuICAgIFJlc2l6ZUV2ZW50U3RyYXRlZ3ksXG4gICAgUkVTSVpFX1NUUkFURUdZLFxuICAgIEVycm9ySGFuZGxlckNhbGxiYWNrLFxuICAgIEVSUk9SX0hBTkRMRVIsXG4gICAgR2xvYmFsQ29tcG9uZW50TW9kaWZpZXIsXG4gICAgQXBwSW5pdGlhbGl6ZXJGdW5jLFxuICAgIElNb2R1bGVDb25maWcsXG4gICAgVmFsdWVkUHJvbWlzZVxufSBmcm9tIFwiLi9uZ3gtdXRpbHMvY29tbW9uLXR5cGVzXCI7XG5cbmV4cG9ydCB7QWpheFJlcXVlc3RIYW5kbGVyfSBmcm9tIFwiLi9uZ3gtdXRpbHMvdXRpbHMvYWpheC1yZXF1ZXN0LWhhbmRsZXJcIjtcbmV4cG9ydCB7QXJyYXlVdGlsc30gZnJvbSBcIi4vbmd4LXV0aWxzL3V0aWxzL2FycmF5LnV0aWxzXCI7XG5leHBvcnQge0F1dGhHdWFyZH0gZnJvbSBcIi4vbmd4LXV0aWxzL3V0aWxzL2F1dGguZ3VhcmRcIjtcbmV4cG9ydCB7Y2FjaGVkRmFjdG9yeX0gZnJvbSBcIi4vbmd4LXV0aWxzL3V0aWxzL2NhY2hlZC1mYWN0b3J5XCI7XG5leHBvcnQge21kNX0gZnJvbSBcIi4vbmd4LXV0aWxzL3V0aWxzL2NyeXB0by51dGlsc1wiO1xuZXhwb3J0IHtDYW52YXNVdGlsc30gZnJvbSBcIi4vbmd4LXV0aWxzL3V0aWxzL2NhbnZhcy51dGlsc1wiO1xuZXhwb3J0IHtEYXRlVXRpbHN9IGZyb20gXCIuL25neC11dGlscy91dGlscy9kYXRlLnV0aWxzXCI7XG5leHBvcnQge0ZpbGVVdGlsc30gZnJvbSBcIi4vbmd4LXV0aWxzL3V0aWxzL2ZpbGUudXRpbHNcIjtcbmV4cG9ydCB7R2VuZXJpY1ZhbHVlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvdXRpbHMvZ2VuZXJpYy12YWx1ZVwiO1xuZXhwb3J0IHtGaWxlU3lzdGVtRW50cnlPcGVuUmVzdWx0LCBGaWxlU3lzdGVtRW50cnlPcGVuQ2IsIEZpbGVTeXN0ZW1FbnRyeX0gZnJvbSBcIi4vbmd4LXV0aWxzL3V0aWxzL2ZpbGUtc3lzdGVtXCI7XG5leHBvcnQge0lTaGFwZSwgUmVjdCwgQ2lyY2xlLCBQb2ludH0gZnJvbSBcIi4vbmd4LXV0aWxzL3V0aWxzL2dlb21ldHJ5XCI7XG5leHBvcnQge0luaXRpYWxpemVyfSBmcm9tIFwiLi9uZ3gtdXRpbHMvdXRpbHMvaW5pdGlhbGl6ZXJcIjtcbmV4cG9ydCB7c3RyaW5naWZ5fSBmcm9tIFwiLi9uZ3gtdXRpbHMvdXRpbHMvanNvbi51dGlsc1wiO1xuZXhwb3J0IHtSZWZsZWN0VXRpbHN9IGZyb20gXCIuL25neC11dGlscy91dGlscy9yZWZsZWN0LnV0aWxzXCI7XG5leHBvcnQge0xvYWRlclV0aWxzfSBmcm9tIFwiLi9uZ3gtdXRpbHMvdXRpbHMvbG9hZGVyLnV0aWxzXCI7XG5leHBvcnQge01hdGhVdGlsc30gZnJvbSBcIi4vbmd4LXV0aWxzL3V0aWxzL21hdGgudXRpbHNcIjtcbmV4cG9ydCB7Z2V0Q3NzVmFyaWFibGVzfSBmcm9tIFwiLi9uZ3gtdXRpbHMvdXRpbHMvbWlzY1wiO1xuZXhwb3J0IHtPYmplY3RVdGlsc30gZnJvbSBcIi4vbmd4LXV0aWxzL3V0aWxzL29iamVjdC51dGlsc1wiO1xuZXhwb3J0IHtPYnNlcnZhYmxlVXRpbHMsIElTdWJzY3JpYmVySW5mb30gZnJvbSBcIi4vbmd4LXV0aWxzL3V0aWxzL29ic2VydmFibGUudXRpbHNcIjtcbmV4cG9ydCB7Q2FuY2VsYWJsZVByb21pc2UsIGNhbmNlbGFibGVQcm9taXNlLCBpbXBhdGllbnRQcm9taXNlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvdXRpbHMvcHJvbWlzZS51dGlsc1wiO1xuZXhwb3J0IHtTdHJpbmdVdGlsc30gZnJvbSBcIi4vbmd4LXV0aWxzL3V0aWxzL3N0cmluZy51dGlsc1wiO1xuZXhwb3J0IHtTZXRVdGlsc30gZnJvbSBcIi4vbmd4LXV0aWxzL3V0aWxzL3NldC51dGlsc1wiO1xuZXhwb3J0IHtUaW1lclV0aWxzfSBmcm9tIFwiLi9uZ3gtdXRpbHMvdXRpbHMvdGltZXIudXRpbHNcIjtcbmV4cG9ydCB7VW5pcXVlVXRpbHN9IGZyb20gXCIuL25neC11dGlscy91dGlscy91bmlxdWUudXRpbHNcIjtcbmV4cG9ydCB7VmVjdG9yfSBmcm9tIFwiLi9uZ3gtdXRpbHMvdXRpbHMvdmVjdG9yXCI7XG5leHBvcnQge3Byb3ZpZGVXaXRoT3B0aW9uc30gZnJvbSBcIi4vbmd4LXV0aWxzL3V0aWxzL3dpdGgtb3B0aW9ucy1wcm92aWRlclwiO1xuXG5leHBvcnQge1VuaXZlcnNhbFNlcnZpY2V9IGZyb20gXCIuL25neC11dGlscy9zZXJ2aWNlcy91bml2ZXJzYWwuc2VydmljZVwiO1xuZXhwb3J0IHtXYXNtU2VydmljZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3NlcnZpY2VzL3dhc20uc2VydmljZVwiO1xuZXhwb3J0IHtBY2xTZXJ2aWNlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvc2VydmljZXMvYWNsLnNlcnZpY2VcIjtcbmV4cG9ydCB7QXBpU2VydmljZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3NlcnZpY2VzL2FwaS5zZXJ2aWNlXCI7XG5leHBvcnQge1N0YXRpY0F1dGhTZXJ2aWNlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvc2VydmljZXMvYXV0aC5zZXJ2aWNlXCI7XG5leHBvcnQge0Jhc2VIdHRwQ2xpZW50fSBmcm9tIFwiLi9uZ3gtdXRpbHMvc2VydmljZXMvYmFzZS1odHRwLmNsaWVudFwiO1xuZXhwb3J0IHtCYXNlSHR0cFNlcnZpY2V9IGZyb20gXCIuL25neC11dGlscy9zZXJ2aWNlcy9iYXNlLWh0dHAuc2VydmljZVwiO1xuZXhwb3J0IHtDb25maWdTZXJ2aWNlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvc2VydmljZXMvY29uZmlnLnNlcnZpY2VcIjtcbmV4cG9ydCB7RXJyb3JIYW5kbGVyU2VydmljZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3NlcnZpY2VzL2Vycm9yLWhhbmRsZXIuc2VydmljZVwiO1xuZXhwb3J0IHtFdmVudHNTZXJ2aWNlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvc2VydmljZXMvZXZlbnRzLnNlcnZpY2VcIjtcbmV4cG9ydCB7Rm9ybWF0dGVyU2VydmljZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3NlcnZpY2VzL2Zvcm1hdHRlci5zZXJ2aWNlXCI7XG5leHBvcnQge0dsb2JhbFRlbXBsYXRlU2VydmljZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3NlcnZpY2VzL2dsb2JhbC10ZW1wbGF0ZS5zZXJ2aWNlXCI7XG5leHBvcnQge0ljb25TZXJ2aWNlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvc2VydmljZXMvaWNvbi5zZXJ2aWNlXCI7XG5leHBvcnQge0xhbmd1YWdlU2VydmljZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3NlcnZpY2VzL2xhbmd1YWdlLnNlcnZpY2VcIjtcbmV4cG9ydCB7TG9jYWxIdHRwU2VydmljZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3NlcnZpY2VzL2xvY2FsLWh0dHAuc2VydmljZVwiO1xuZXhwb3J0IHtPcGVuQXBpU2VydmljZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3NlcnZpY2VzL29wZW4tYXBpLnNlcnZpY2VcIjtcbmV4cG9ydCB7SVN0YXRlSW5mbywgU3RhdGVTZXJ2aWNlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvc2VydmljZXMvc3RhdGUuc2VydmljZVwiO1xuZXhwb3J0IHtTdGF0aWNMYW5ndWFnZVNlcnZpY2V9IGZyb20gXCIuL25neC11dGlscy9zZXJ2aWNlcy9zdGF0aWMtbGFuZ3VhZ2Uuc2VydmljZVwiO1xuZXhwb3J0IHtTdG9yYWdlU2VydmljZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3NlcnZpY2VzL3N0b3JhZ2Uuc2VydmljZVwiO1xuZXhwb3J0IHtDb25zb2xlVG9hc3RlclNlcnZpY2V9IGZyb20gXCIuL25neC11dGlscy9zZXJ2aWNlcy90b2FzdGVyLnNlcnZpY2VcIjtcbmV4cG9ydCB7SVVybERpY3Rpb25hcnksIFRyYW5zbGF0ZWRVcmxTZXJpYWxpemVyfSBmcm9tIFwiLi9uZ3gtdXRpbHMvc2VydmljZXMvdHJhbnNsYXRlZC11cmwuc2VyaWFsaXplclwiO1xuZXhwb3J0IHtQcm9taXNlU2VydmljZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3NlcnZpY2VzL3Byb21pc2Uuc2VydmljZVwiO1xuXG5leHBvcnQge1Jlc2l6ZUV2ZW50UGx1Z2lufSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGx1Z2lucy9yZXNpemUtZXZlbnQucGx1Z2luXCI7XG5leHBvcnQge1Njcm9sbEV2ZW50UGx1Z2lufSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGx1Z2lucy9zY3JvbGwtZXZlbnQucGx1Z2luXCI7XG5cbmV4cG9ydCB7Q2h1bmtQaXBlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGlwZXMvY2h1bmsucGlwZVwiO1xuZXhwb3J0IHtFbnRyaWVzUGlwZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3BpcGVzL2VudHJpZXMucGlwZVwiO1xuZXhwb3J0IHtFeHRyYUl0ZW1Qcm9wZXJ0aWVzUGlwZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3BpcGVzL2V4dHJhLWl0ZW0tcHJvcGVydGllcy5waXBlXCI7XG5leHBvcnQge0ZpbHRlclBpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy9maWx0ZXIucGlwZVwiO1xuZXhwb3J0IHtGaW5kUGlwZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3BpcGVzL2ZpbmQucGlwZVwiO1xuZXhwb3J0IHtGb3JtYXROdW1iZXJQaXBlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGlwZXMvZm9ybWF0LW51bWJlci5waXBlXCI7XG5leHBvcnQge0dldE9mZnNldFBpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy9nZXQtb2Zmc2V0LnBpcGVcIjtcbmV4cG9ydCB7R2V0VHlwZVBpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy9nZXQtdHlwZS5waXBlXCI7XG5leHBvcnQge0dldFZhbHVlUGlwZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3BpcGVzL2dldC12YWx1ZS5waXBlXCI7XG5leHBvcnQge0dsb2JhbFRlbXBsYXRlUGlwZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3BpcGVzL2dsb2JhbC10ZW1wbGF0ZS5waXBlXCI7XG5leHBvcnQge0dyb3VwQnlQaXBlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGlwZXMvZ3JvdXAtYnkucGlwZVwiO1xuZXhwb3J0IHtJbmNsdWRlc1BpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy9pbmNsdWRlcy5waXBlXCI7XG5leHBvcnQge0lzVHlwZVBpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy9pcy10eXBlLnBpcGVcIjtcbmV4cG9ydCB7Sm9pblBpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy9qb2luLnBpcGVcIjtcbmV4cG9ydCB7S2V5c1BpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy9rZXlzLnBpcGVcIjtcbmV4cG9ydCB7TWFwUGlwZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3BpcGVzL21hcC5waXBlXCI7XG5leHBvcnQge01heFBpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy9tYXgucGlwZVwiO1xuZXhwb3J0IHtNaW5QaXBlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGlwZXMvbWluLnBpcGVcIjtcbmV4cG9ydCB7UG9wUGlwZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3BpcGVzL3BvcC5waXBlXCI7XG5leHBvcnQge1JlZHVjZVBpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy9yZWR1Y2UucGlwZVwiO1xuZXhwb3J0IHtSZW1hcFBpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy9yZW1hcC5waXBlXCI7XG5leHBvcnQge1JlcGxhY2VQaXBlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGlwZXMvcmVwbGFjZS5waXBlXCI7XG5leHBvcnQge1JldmVyc2VQaXBlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGlwZXMvcmV2ZXJzZS5waXBlXCI7XG5leHBvcnQge1JvdW5kUGlwZX0gZnJvbSBcIi4vbmd4LXV0aWxzL3BpcGVzL3JvdW5kLnBpcGVcIjtcbmV4cG9ydCB7U2FmZUh0bWxQaXBlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGlwZXMvc2FmZS1odG1sLnBpcGVcIjtcbmV4cG9ydCB7U2hpZnRQaXBlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGlwZXMvc2hpZnQucGlwZVwiO1xuZXhwb3J0IHtTcGxpdFBpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy9zcGxpdC5waXBlXCI7XG5leHBvcnQge1RyYW5zbGF0ZVBpcGV9IGZyb20gXCIuL25neC11dGlscy9waXBlcy90cmFuc2xhdGUucGlwZVwiO1xuZXhwb3J0IHtWYWx1ZXNQaXBlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvcGlwZXMvdmFsdWVzLnBpcGVcIjtcblxuZXhwb3J0IHtBc3luY01ldGhvZEJhc2V9IGZyb20gXCIuL25neC11dGlscy9kaXJlY3RpdmVzL2FzeW5jLW1ldGhvZC5iYXNlXCI7XG5leHBvcnQge0FzeW5jTWV0aG9kRGlyZWN0aXZlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvZGlyZWN0aXZlcy9hc3luYy1tZXRob2QuZGlyZWN0aXZlXCI7XG5leHBvcnQge0JhY2tncm91bmREaXJlY3RpdmV9IGZyb20gXCIuL25neC11dGlscy9kaXJlY3RpdmVzL2JhY2tncm91bmQuZGlyZWN0aXZlXCI7XG5leHBvcnQge0Ryb3Bkb3duRGlyZWN0aXZlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvZGlyZWN0aXZlcy9kcm9wZG93bi5kaXJlY3RpdmVcIjtcbmV4cG9ydCB7RHJvcGRvd25Db250ZW50RGlyZWN0aXZlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvZGlyZWN0aXZlcy9kcm9wZG93bi1jb250ZW50LmRpcmVjdGl2ZVwiO1xuZXhwb3J0IHtEcm9wZG93blRvZ2dsZURpcmVjdGl2ZX0gZnJvbSBcIi4vbmd4LXV0aWxzL2RpcmVjdGl2ZXMvZHJvcGRvd24tdG9nZ2xlLmRpcmVjdGl2ZVwiO1xuZXhwb3J0IHtEeW5hbWljVGFibGVUZW1wbGF0ZURpcmVjdGl2ZX0gZnJvbSBcIi4vbmd4LXV0aWxzL2RpcmVjdGl2ZXMvZHluYW1pYy10YWJsZS10ZW1wbGF0ZS5kaXJlY3RpdmVcIjtcbmV4cG9ydCB7R2xvYmFsVGVtcGxhdGVEaXJlY3RpdmV9IGZyb20gXCIuL25neC11dGlscy9kaXJlY3RpdmVzL2dsb2JhbC10ZW1wbGF0ZS5kaXJlY3RpdmVcIjtcbmV4cG9ydCB7SWNvbkRpcmVjdGl2ZX0gZnJvbSBcIi4vbmd4LXV0aWxzL2RpcmVjdGl2ZXMvaWNvbi5kaXJlY3RpdmVcIjtcbmV4cG9ydCB7Tmd4VGVtcGxhdGVPdXRsZXREaXJlY3RpdmV9IGZyb20gXCIuL25neC11dGlscy9kaXJlY3RpdmVzL25neC10ZW1wbGF0ZS1vdXRsZXQuZGlyZWN0aXZlXCI7XG5leHBvcnQge1BhZ2luYXRpb25EaXJlY3RpdmV9IGZyb20gXCIuL25neC11dGlscy9kaXJlY3RpdmVzL3BhZ2luYXRpb24uZGlyZWN0aXZlXCI7XG5leHBvcnQge1BhZ2luYXRpb25JdGVtRGlyZWN0aXZlfSBmcm9tIFwiLi9uZ3gtdXRpbHMvZGlyZWN0aXZlcy9wYWdpbmF0aW9uLWl0ZW0uZGlyZWN0aXZlXCI7XG5leHBvcnQge1Jlc291cmNlSWZEaXJlY3RpdmV9IGZyb20gXCIuL25neC11dGlscy9kaXJlY3RpdmVzL3Jlc291cmNlLWlmLmRpcmVjdGl2ZVwiO1xuZXhwb3J0IHtTdGlja3lEaXJlY3RpdmV9IGZyb20gXCIuL25neC11dGlscy9kaXJlY3RpdmVzL3N0aWNreS5kaXJlY3RpdmVcIjtcbmV4cG9ydCB7U3RpY2t5Q2xhc3NEaXJlY3RpdmV9IGZyb20gXCIuL25neC11dGlscy9kaXJlY3RpdmVzL3N0aWNreS1jbGFzcy5kaXJlY3RpdmVcIjtcbmV4cG9ydCB7VW5vcmRlcmVkTGlzdEl0ZW1EaXJlY3RpdmV9IGZyb20gXCIuL25neC11dGlscy9kaXJlY3RpdmVzL3Vub3JkZXJlZC1saXN0LWl0ZW0uZGlyZWN0aXZlXCI7XG5leHBvcnQge1Vub3JkZXJlZExpc3RUZW1wbGF0ZURpcmVjdGl2ZX0gZnJvbSBcIi4vbmd4LXV0aWxzL2RpcmVjdGl2ZXMvdW5vcmRlcmVkLWxpc3QtdGVtcGxhdGUuZGlyZWN0aXZlXCI7XG5cbmV4cG9ydCB7VW5vcmRlcmVkTGlzdENvbXBvbmVudH0gZnJvbSBcIi4vbmd4LXV0aWxzL2NvbXBvbmVudHMvdW5vcmRlcmVkLWxpc3QvdW5vcmRlcmVkLWxpc3QuY29tcG9uZW50XCI7XG5leHBvcnQge0Ryb3Bkb3duQm94Q29tcG9uZW50fSBmcm9tIFwiLi9uZ3gtdXRpbHMvY29tcG9uZW50cy9kcm9wZG93bi1ib3gvZHJvcGRvd24tYm94LmNvbXBvbmVudFwiO1xuZXhwb3J0IHtEeW5hbWljVGFibGVDb21wb25lbnR9IGZyb20gXCIuL25neC11dGlscy9jb21wb25lbnRzL2R5bmFtaWMtdGFibGUvZHluYW1pYy10YWJsZS5jb21wb25lbnRcIjtcbmV4cG9ydCB7UGFnaW5hdGlvbk1lbnVDb21wb25lbnR9IGZyb20gXCIuL25neC11dGlscy9jb21wb25lbnRzL3BhZ2luYXRpb24tbWVudS9wYWdpbmF0aW9uLW1lbnUuY29tcG9uZW50XCI7XG5cbmV4cG9ydCB7Tmd4VXRpbHNNb2R1bGV9IGZyb20gXCIuL25neC11dGlscy9uZ3gtdXRpbHMubW9kdWxlXCI7XG4iXX0=