@glowgreen/gg-questionnaire-v2 0.0.9 → 0.0.11

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.
@@ -35,6 +35,20 @@ export class FilterService {
35
35
  }
36
36
  }
37
37
  }
38
+ if (question.fetchPath) {
39
+ /** @type {?} */
40
+ let options = additionalData[question.fetchPath];
41
+ if (question.fetchSelectors && question.fetchSelectors.length > 0) {
42
+ /** @type {?} */
43
+ const values = this.getValuesForArray(question.fetchSelectors, currentQuestionnaireForm, additionalData);
44
+ options = _.get(additionalData[question.fetchPath], values);
45
+ }
46
+ options = this.getFinalFetchArray(options);
47
+ if (!question.selectOptions) {
48
+ question.selectOptions = [];
49
+ }
50
+ question.selectOptions = question.selectOptions.concat(options);
51
+ }
38
52
  filteredQuestions.push(question);
39
53
  }
40
54
  }
@@ -44,6 +58,43 @@ export class FilterService {
44
58
  }
45
59
  return filteredSections;
46
60
  }
61
+ /**
62
+ * @private
63
+ * @param {?} items
64
+ * @return {?}
65
+ */
66
+ getFinalFetchArray(items) {
67
+ if (!items) {
68
+ return null;
69
+ }
70
+ if (!Array.isArray(items)) {
71
+ items = _.keys(items);
72
+ }
73
+ if (items.length <= 0) {
74
+ return null;
75
+ }
76
+ /** @type {?} */
77
+ const convertedArray = [];
78
+ for (const item of items) {
79
+ if (item) {
80
+ if (item instanceof Object && item.value && item.label) {
81
+ convertedArray.push(item);
82
+ }
83
+ else {
84
+ convertedArray.push({ label: this.uppercase(item), value: item });
85
+ }
86
+ }
87
+ }
88
+ return convertedArray;
89
+ }
90
+ /**
91
+ * @private
92
+ * @param {?} item
93
+ * @return {?}
94
+ */
95
+ uppercase(item) {
96
+ return item.charAt(0).toUpperCase() + item.slice(1);
97
+ }
47
98
  /**
48
99
  * Checks if each condition groups conditions have been met.
49
100
  * @author Will Poulson
@@ -267,4 +318,4 @@ FilterService.decorators = [
267
318
  /** @nocollapse */
268
319
  FilterService.ctorParameters = () => [];
269
320
  /** @nocollapse */ FilterService.ngInjectableDef = i0.defineInjectable({ factory: function FilterService_Factory() { return new FilterService(); }, token: FilterService, providedIn: "root" });
270
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ2xvd2dyZWVuL2dnLXF1ZXN0aW9ubmFpcmUtdjIvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvZmlsdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzdFLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDOztBQUs1QixNQUFNLE9BQU8sYUFBYTtJQUV4QixnQkFBZ0IsQ0FBQzs7Ozs7Ozs7O0lBU1YsY0FBYyxDQUFDLFFBQXdCLEVBQUUsd0JBQTBDLEVBQUUsY0FBdUI7O2NBQzNHLGdCQUFnQixHQUFHLEVBQUU7UUFDM0IsS0FBSyxNQUFNLE9BQU8sSUFBSSxRQUFRLEVBQUU7WUFDOUIsSUFBSSxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSx3QkFBd0IsRUFBRSxjQUFjLENBQUMsRUFBRTs7c0JBQzFGLGlCQUFpQixHQUFHLEVBQUU7Z0JBQzVCLEtBQUssTUFBTSxRQUFRLElBQUksT0FBTyxDQUFDLFNBQVMsRUFBRTtvQkFDeEMsSUFBSSxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLGVBQWUsRUFBRSx3QkFBd0IsRUFBRSxjQUFjLENBQUMsRUFBRTt3QkFFakcsSUFBSSxRQUFRLENBQUMsaUJBQWlCLEVBQUU7O2tDQUN4Qix5QkFBeUIsR0FBRyxFQUFFOzRCQUNwQyxLQUFLLE1BQU0sZ0JBQWdCLElBQUksUUFBUSxDQUFDLGlCQUFpQixFQUFFO2dDQUN6RCxJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLEVBQUUsd0JBQXdCLEVBQUUsY0FBYyxDQUFD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QUMsSUFBSSxDQUFDO1lBQ3ZFLE9BQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQzVDO2FBQU07WUFDTCxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN4QztJQUNILENBQUM7Ozs7Ozs7OztJQVNPLG9CQUFvQixDQUFDLElBQVk7UUFDdkMsUUFBUSxJQUFJLEVBQUU7WUFDWixLQUFLLE1BQU07Z0JBQ1QsT0FBTyxJQUFJLENBQUM7WUFDZCxLQUFLLE9BQU87Z0JBQ1YsT0FBTyxLQUFLLENBQUM7WUFDZixLQUFLLE1BQU07Z0JBQ1QsT0FBTyxJQUFJLENBQUM7WUFDZDtnQkFDRSxPQUFPLElBQUksQ0FBQztTQUNmO0lBQ0gsQ0FBQzs7O1lBNU5GLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNlY3Rpb24gfSBmcm9tICcuLi9pbnRlcmZhY2VzL3NlY3Rpb24nO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29uZGl0aW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9jb25kaXRpb24nO1xuaW1wb3J0IHsgQ29uZGl0aW9uR3JvdXAgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2NvbmRpdGlvbi1ncm91cCc7XG5pbXBvcnQgeyBDb25kaXRpb25UeXBlIH0gZnJvbSAnLi4vZW51bXMvY29uZGl0aW9uLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBDb25kaXRpb25SZWxhdGlvbnNoaXAgfSBmcm9tICcuLi9lbnVtcy9jb25kaXRpb24tcmVsYXRpb25zaGlwLmVudW0nO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBGaWx0ZXJTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXJzIGFuIGFycmF5IG9mIHNlY3Rpb25zIGJhc2VkIG9uIHRoZWlyIGNvbmRpdGlvbiBncm91cHMuXG4gICAqIEBwYXJhbSBzZWN0aW9ucyBUaGUgYXJyYXkgb2Ygc2VjdGlvbnMgdG8gZmlsdGVyLlxuICAgKiBAcGFyYW0gY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtIFRoZSBjdXJyZW50IGZvcm0gZGF0YSwgY2FuIGJlIG51bGwvdW5kZWZpbmVkLlxuICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBmaWx0ZXJlZCBzZWN0aW9ucyB3aXRoIHRoZWlyIGZpbHRlcmVkIHF1ZXN0aW9ucy5cbiAgICogQGF1dGhvciBXaWxsIFBvdWxzb25cbiAgICovXG4gIHB1YmxpYyBmaWx0ZXJTZWN0aW9ucyhzZWN0aW9uczogQXJyYXk8U2VjdGlvbj4sIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybTogRm9ybUdyb3VwIHwgbnVsbCwgYWRkaXRpb25hbERhdGE/OiBPYmplY3QpOiBBcnJheTxTZWN0aW9uPiB7XG4gICAgY29uc3QgZmlsdGVyZWRTZWN0aW9ucyA9IFtdO1xuICAgIGZvciAoY29uc3Qgc2VjdGlvbiBvZiBzZWN0aW9ucykge1xuICAgICAgaWYgKHRoaXMubWVldHNDb25kaXRpb25Hcm91cHMoc2VjdGlvbi5jb25kaXRpb25Hcm91cHMsIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSwgYWRkaXRpb25hbERhdGEpKSB7XG4gICAgICAgIGNvbnN0IGZpbHRlcmVkUXVlc3Rpb25zID0gW107XG4gICAgICAgIGZvciAoY29uc3QgcXVlc3Rpb24gb2Ygc2VjdGlvbi5xdWVzdGlvbnMpIHtcbiAgICAgICAgICBpZiAodGhpcy5tZWV0c0NvbmRpdGlvbkdyb3VwcyhxdWVzdGlvbi5jb25kaXRpb25Hcm91cHMsIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSwgYWRkaXRpb25hbERhdGEpKSB7XG5cbiAgICAgICAgICAgIGlmIChxdWVzdGlvbi5yZXBlYXRlclF1ZXN0aW9ucykge1xuICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJlZFJlcGVhdGVyUXVlc3Rpb25zID0gW107XG4gICAgICAgICAgICAgIGZvciAoY29uc3QgcmVwZWF0ZXJRdWVzdGlvbiBvZiBxdWVzdGlvbi5yZXBlYXRlclF1ZXN0aW9ucykge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLm1lZXRzQ29uZGl0aW9uR3JvdXBzKHJlcGVhdGVyUXVlc3Rpb24uY29uZGl0aW9uR3JvdXBzLCBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0sIGFkZGl0aW9uYWxEYXRhKSkge1xuICAgICAgICAgICAgICAgICAgZmlsdGVyZWRSZXBlYXRlclF1ZXN0aW9ucy5wdXNoKHJlcGVhdGVyUXVlc3Rpb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmaWx0ZXJlZFF1ZXN0aW9ucy5wdXNoKHF1ZXN0aW9uKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgc2VjdGlvbi5xdWVzdGlvbnMgPSBmaWx0ZXJlZFF1ZXN0aW9ucztcbiAgICAgICAgZmlsdGVyZWRTZWN0aW9ucy5wdXNoKHNlY3Rpb24pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmlsdGVyZWRTZWN0aW9ucztcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgZWFjaCBjb25kaXRpb24gZ3JvdXBzIGNvbmRpdGlvbnMgaGF2ZSBiZWVuIG1ldC5cbiAgICogQHBhcmFtIGNvbmRpdGlvbkdyb3VwcyBUaGUgYXJyYXkgb2YgY29uZGl0aW9uIGdyb3Vwcy5cbiAgICogQHBhcmFtIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSBUaGUgY3VycmVudCBmb3JtIGRhdGEsIGNhbiBiZSBudWxsL3VuZGVmaW5lZC5cbiAgICogQHJldHVybnMgQSBib29sZWFuIHN0YXRpbmcgaWYgdGhlIGNvbmRpdGlvbiBncm91cHMgY29uZGl0aW9ucyBoYXMgYmVlbiBtZXQuXG4gICAqIEBhdXRob3IgV2lsbCBQb3Vsc29uXG4gICAqL1xuICBwcml2YXRlIG1lZXRzQ29uZGl0aW9uR3JvdXBzKFxuICAgIGNvbmRpdGlvbkdyb3VwczogQXJyYXk8Q29uZGl0aW9uR3JvdXA+LFxuICAgIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybTogRm9ybUdyb3VwIHwgbnVsbCxcbiAgICBhZGRpdGlvbmFsRGF0YT86IE9iamVjdFxuICApOiBib29sZWFuIHtcbiAgICBpZiAoIWNvbmRpdGlvbkdyb3VwcyB8fCBjb25kaXRpb25Hcm91cHMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbmRpdGlvbkdyb3Vwcy5ldmVyeSgoeCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMubWVldHNDb25kaXRpb25Hcm91cCh4LCBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0sIGFkZGl0aW9uYWxEYXRhKSA9PT0gdHJ1ZTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYSBjb25kaXRpb24gZ3JvdXBzIGNvbmRpdGlvbnMgaGF2ZSBiZWVuIG1ldC5cbiAgICogQHBhcmFtIGNvbmRpdGlvbkdyb3VwIFRoZSBjb25kaXRpb24gZ3JvdXAgdG8gY2hlY2suXG4gICAqIEBwYXJhbSBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0gVGhlIGN1cnJlbnQgZm9ybSBkYXRhLCBjYW4gYmUgbnVsbC91bmRlZmluZWQuXG4gICAqIEByZXR1cm5zIEEgYm9vbGVhbiBzdGF0aW5nIGlmIHRoZSBjb25kaXRpb24gZ3JvdXAgY29uZGl0aW9ucyBoYXMgYmVlbiBtZXQuXG4gICAqIEBhdXRob3IgV2lsbCBQb3Vsc29uXG4gICAqL1xuICBwcml2YXRlIG1lZXRzQ29uZGl0aW9uR3JvdXAoXG4gICAgY29uZGl0aW9uR3JvdXA6IENvbmRpdGlvbkdyb3VwLFxuICAgIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybTogRm9ybUdyb3VwIHwgbnVsbCxcbiAgICBhZGRpdGlvbmFsRGF0YT86IE9iamVjdFxuICApOiBib29sZWFuIHtcbiAgICBpZiAoIWNvbmRpdGlvbkdyb3VwLmNvbmRpdGlvbnMgfHwgY29uZGl0aW9uR3JvdXAuY29uZGl0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdHMgPSBbXTtcblxuICAgIGZvciAoY29uc3QgY29uZGl0aW9uIG9mIGNvbmRpdGlvbkdyb3VwLmNvbmRpdGlvbnMpIHtcbiAgICAgIHJlc3VsdHMucHVzaCh0aGlzLm1lZXRzQ29uZGl0aW9uKGNvbmRpdGlvbiwgY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtLCBhZGRpdGlvbmFsRGF0YSkpO1xuICAgIH1cblxuICAgIHN3aXRjaCAoY29uZGl0aW9uR3JvdXAucmVsYXRpb25zaGlwKSB7XG4gICAgICBjYXNlIENvbmRpdGlvblJlbGF0aW9uc2hpcC5FdmVyeTpcbiAgICAgICAgcmV0dXJuIHJlc3VsdHMuZXZlcnkoKHgpID0+IHtcbiAgICAgICAgICByZXR1cm4geCA9PT0gdHJ1ZTtcbiAgICAgICAgfSk7XG4gICAgICBjYXNlIENvbmRpdGlvblJlbGF0aW9uc2hpcC5Bbnk6XG4gICAgICAgIHJldHVybiAhIXJlc3VsdHMuZmluZCgoeCkgPT4ge1xuICAgICAgICAgIHJldHVybiB4ID09PSB0cnVlO1xuICAgICAgICB9KTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYSBjb25kaXRpb24gaGFzIGJlZW4gbWV0LlxuICAgKiBAcGFyYW0gY29uZGl0aW9uIFRoZSBjb25kaXRpb24gdG8gY2hlY2suXG4gICAqIEBwYXJhbSBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0gVGhlIGN1cnJlbnQgZm9ybSBkYXRhLCBjYW4gYmUgbnVsbC91bmRlZmluZWQuXG4gICAqIEByZXR1cm5zIEEgYm9vbGVhbiBzdGF0aW5nIGlmIHRoZSBjb25kaXRpb24gZ3JvdXAgY29uZGl0aW9ucyBoYXMgYmVlbiBtZXQuXG4gICAqIEBhdXRob3IgV2lsbCBQb3Vsc29uXG4gICAqL1xuICBwcml2YXRlIG1lZXRzQ29uZGl0aW9uKGNvbmRpdGlvbjogQ29uZGl0aW9uLCBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm06IEZvcm1Hcm91cCwgYWRkaXRpb25hbERhdGE/OiBPYmplY3QpOiBib29sZWFuIHtcbiAgICBjb25zdCB2MXM6IEFycmF5PGFueT4gPSB0aGlzLmdldFZhbHVlc0ZvckFycmF5KGNvbmRpdGlvbi52MXMsIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSwgYWRkaXRpb25hbERhdGEpO1xuICAgIGNvbnN0IHYyczogQXJyYXk8YW55PiA9IHRoaXMuZ2V0VmFsdWVzRm9yQXJyYXkoY29uZGl0aW9uLnYycywgY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtLCBhZGRpdGlvbmFsRGF0YSk7XG5cbiAgICBsZXQgcmVzdWx0ID0gZmFsc2U7XG5cbiAgICBzd2l0Y2ggKGNvbmRpdGlvbi50eXBlKSB7XG4gICAgICBjYXNlIENvbmRpdGlvblR5cGUuRXhjbHVkZXM6XG4gICAgICAgIHJlc3VsdCA9ICB2MXMuZmlsdGVyKCh2MSkgPT4ge1xuICAgICAgICAgIHJldHVybiB2MnMuaW5kZXhPZih2MSkgPiAtMTtcbiAgICAgICAgfSkubGVuZ3RoID09PSAwO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgQ29uZGl0aW9uVHlwZS5JbmNsdWRlczpcbiAgICAgICAgcmVzdWx0ID0gdjFzLmZpbHRlcigodjEpID0+IHtcbiAgICAgICAgICByZXR1cm4gdjJzLmluZGV4T2YodjEpID4gLTE7XG4gICAgICAgIH0pLmxlbmd0aCAhPT0gMDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBmb3IgKGxldCB2MiBvZiB2MnMpIHtcbiAgICAgICAgICBmb3IgKGxldCB2MSBvZiB2MXMpIHtcbiAgICAgICAgICAgIHN3aXRjaCAoY29uZGl0aW9uLnR5cGUpIHtcbiAgICAgICAgICAgICAgY2FzZSBDb25kaXRpb25UeXBlLkVxdWFsVG86XG4gICAgICAgICAgICAgICAgdjEgPSB0aGlzLmdldFN0cmluZ0ZvclZhbHVlKHYxKTtcbiAgICAgICAgICAgICAgICB2MiA9IHRoaXMuZ2V0U3RyaW5nRm9yVmFsdWUodjIpO1xuICAgICAgICAgICAgICAgIGlmICh2MSA9PT0gdjIpIHsgcmVzdWx0ID0gdHJ1ZTsgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICBjYXNlIENvbmRpdGlvblR5cGUuTm90RXF1YWxUbzpcbiAgICAgICAgICAgICAgICB2MSA9IHRoaXMuZ2V0U3RyaW5nRm9yVmFsdWUodjEpO1xuICAgICAgICAgICAgICAgIHYyID0gdGhpcy5nZXRTdHJpbmdGb3JWYWx1ZSh2Mik7XG4gICAgICAgICAgICAgICAgaWYgKHYxICE9PSB2MikgeyByZXN1bHQgPSB0cnVlOyB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgQ29uZGl0aW9uVHlwZS5HcmVhdGVyVGhhbjpcbiAgICAgICAgICAgICAgICB2MSA9IHBhcnNlRmxvYXQodjEpO1xuICAgICAgICAgICAgICAgIHYyID0gcGFyc2VGbG9hdCh2Mik7XG4gICAgICAgICAgICAgICAgaWYgKHYxID49IHYyKSB7IHJlc3VsdCA9IHRydWU7IH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgY2FzZSBDb25kaXRpb25UeXBlLkxlc3NUaGFuOlxuICAgICAgICAgICAgICAgIHYxID0gcGFyc2VGbG9hdCh2MSk7XG4gICAgICAgICAgICAgICAgdjIgPSBwYXJzZUZsb2F0KHYyKTtcbiAgICAgICAgICAgICAgICBpZiAodjEgPD0gdjIpIHsgcmVzdWx0ID0gdHJ1ZTsgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIGdldFN0cmluZ0ZvclZhbHVlKHZhbHVlKSB7XG4gICAgc3dpdGNoICh2YWx1ZSkge1xuICAgICAgY2FzZSBudWxsOlxuICAgICAgICByZXR1cm4gJ251bGwnO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHZhbHVlLnRvU3RyaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGN1cnJlbnQgdmFsdWVzIGZvciBhbiBhcnJheSBvZiBzdHJpbmdzLlxuICAgKiBAcGFyYW0gcGF0aHMgVGhlIGFycmF5IG9mIHN0cmluZ3MgdG8gY2hlY2suXG4gICAqIEBwYXJhbSBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0gVGhlIGN1cnJlbnQgZm9ybSBkYXRhLCBjYW4gYmUgbnVsbC91bmRlZmluZWQuXG4gICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHN0cmluZ3MvdmFsdWVzXG4gICAqIEBhdXRob3IgV2lsbCBQb3Vsc29uXG4gICAqL1xuICBwcml2YXRlIGdldFZhbHVlc0ZvckFycmF5KHBhdGhzOiBBcnJheTxzdHJpbmc+LCBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm06IEZvcm1Hcm91cCwgYWRkaXRpb25hbERhdGE/OiBPYmplY3QpOiBBcnJheTxhbnk+IHtcbiAgICBpZiAoY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtKSB7XG4gICAgICBjb25zdCB2YWx1ZXMgPSBbXTtcbiAgICAgIGZvciAoY29uc3QgcGF0aCBvZiBwYXRocykge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZ2V0VmFsdWVGb3JTdHJpbmcocGF0aCwgY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtLCBhZGRpdGlvbmFsRGF0YSk7XG4gICAgICAgIHZhbHVlcy5wdXNoKHZhbHVlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2YWx1ZXM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBwYXRocztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhIGN1cnJlbnQgdmFsdWUgZm9yIGEgc3RyaW5nLlxuICAgKiBAcGFyYW0gcGF0aCBUaGUgc3RyaW5nIHZhbHVlIHRvIGNoZWNrLlxuICAgKiBAcGFyYW0gY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtIFRoZSBjdXJyZW50IGZvcm0gZGF0YSwgY2FuIGJlIG51bGwvdW5kZWZpbmVkLlxuICAgKiBAcmV0dXJucyBBIHN0cmluZy92YWx1ZS5cbiAgICogQGF1dGhvciBXaWxsIFBvdWxzb25cbiAgICovXG4gIHByaXZhdGUgZ2V0VmFsdWVGb3JTdHJpbmcocGF0aDogc3RyaW5nLCBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm06IEZvcm1Hcm91cCwgYWRkaXRpb25hbERhdGE/OiBPYmplY3QpIHtcbiAgICBpZiAoY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtKSB7XG4gICAgICBpZiAoIWFkZGl0aW9uYWxEYXRhKSB7XG4gICAgICAgIGFkZGl0aW9uYWxEYXRhID0ge307XG4gICAgICB9XG4gICAgICBjb25zdCBjb250cm9sID0gY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtLmdldChwYXRoKTtcbiAgICAgIGNvbnN0IHZhbHVlID0gY29udHJvbCA/IGNvbnRyb2wudmFsdWUgOiB0aGlzLmNvbnZlcnRTdHJpbmdUb1ZhbHVlKHBhdGgpO1xuICAgICAgcmV0dXJuICBfLmdldChhZGRpdGlvbmFsRGF0YSwgcGF0aCwgdmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5jb252ZXJ0U3RyaW5nVG9WYWx1ZShwYXRoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgYSBzdHJpbmcgdG8gYSB2YWx1ZS5cbiAgICogRWcuIHRydWUvZmFsc2UuXG4gICAqIEBwYXJhbSBwYXRoIFRoZSBzdHJpbmcgdmFsdWUgdG8gY2hlY2sgZm9yIGNvbnZlcnNpb247XG4gICAqIEByZXR1cm5zIEVpdGhlciBhIHN0cmluZyBvciB0aGUgY29udmVydGVkIHZhbHVlLlxuICAgKiBAYXV0aG9yIFdpbGwgUG91bHNvblxuICAgKi9cbiAgcHJpdmF0ZSBjb252ZXJ0U3RyaW5nVG9WYWx1ZShwYXRoOiBzdHJpbmcpIHtcbiAgICBzd2l0Y2ggKHBhdGgpIHtcbiAgICAgIGNhc2UgJ3RydWUnOlxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIGNhc2UgJ2ZhbHNlJzpcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgY2FzZSAnbnVsbCc6XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHBhdGg7XG4gICAgfVxuICB9XG59XG4iXX0=
321
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ2xvd2dyZWVuL2dnLXF1ZXN0aW9ubmFpcmUtdjIvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvZmlsdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzdFLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDOztBQUs1QixNQUFNLE9BQU8sYUFBYTtJQUV4QixnQkFBZ0IsQ0FBQzs7Ozs7Ozs7O0lBU1YsY0FBYyxDQUFDLFFBQXdCLEVBQUUsd0JBQTBDLEVBQUUsY0FBdUI7O2NBQzNHLGdCQUFnQixHQUFHLEVBQUU7UUFDM0IsS0FBSyxNQUFNLE9BQU8sSUFBSSxRQUFRLEVBQUU7WUFDOUIsSUFBSSxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSx3QkFBd0IsRUFBRSxjQUFjLENBQUMsRUFBRTs7c0JBQzFGLGlCQUFpQixHQUFHLEVBQUU7Z0JBQzVCLEtBQUssTUFBTSxRQUFRLElBQUksT0FBTyxDQUFDLFNBQVMsRUFBRTtvQkFDeEMsSUFBSSxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLGVBQWUsRUFBRSx3QkFBd0IsRUFBRSxjQUFjLENBQUMsRUFBRTt3QkFFakcsSUFBSSxRQUFRLENBQUMsaUJBQWlCLEVBQUU7O2tDQUN4Qix5QkFBeUIsR0FBRyxFQUFFOzRCQUNwQyxLQUFLLE1BQU0sZ0JBQWdCLElBQUksUUFBUSxDQUFDLGlCQUFpQixFQUFFO2dDQUN6RCxJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLEVBQUUsd0JBQXdCLEVBQUUsY0FBYyxDQUFDLEVBQUU7b0NBQ3pHLHlCQUF5QixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO2lDQUNsRDs2QkFDRjt5QkFDRjt3QkFFRCxJQUFJLFFBQVEsQ0FBQyxTQUFTLEVBQUU7O2dDQUNsQixPQUFPLEdBQUcsY0FBYyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUM7NEJBQ2hELElBQUksUUFBUSxDQUFDLGNBQWMsSUFBSSxRQUFRLENBQUMsY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7O3NDQUMzRCxNQUFNLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxjQUFjLEVBQUUsd0JBQXdCLEVBQUUsY0FBYyxDQUFDO2dDQUN4RyxPQUFPLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDOzZCQUM3RDs0QkFDRCxPQUFPLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDOzRCQUUzQyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRTtnQ0FDM0IsUUFBUSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7NkJBQzdCOzRCQUVELFFBQVEsQ0FBQyxhQUFhLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7eUJBQ2pFO3dCQUVELGlCQUFpQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztxQkFDbEM7aUJBQ0Y7Z0JBQ0QsT0FBTyxDQUFDLFNBQVMsR0FBRyxpQkFBaUIsQ0FBQztnQkFDdEMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ2hDO1NBQ0Y7UUFDRCxPQUFPLGdCQUFnQixDQUFDO0lBQzFCLENBQUM7Ozs7OztJQUVPLGtCQUFrQixDQUFDLEtBQVU7UUFDbkMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNWLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN6QixLQUFLLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN2QjtRQUNELElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7WUFDckIsT0FBTyxJQUFJLENBQUM7U0FDYjs7Y0FDSyxjQUFjLEdBQWtCLEVBQUU7UUFDeEMsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUU7WUFDeEIsSUFBSSxJQUFJLEVBQUU7Z0JBQ1IsSUFBSSxJQUFJLFlBQVksTUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtvQkFDdEQsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDM0I7cUJBQU07b0JBQ0wsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO2lCQUNqRTthQUNGO1NBQ0Y7UUFDRCxPQUFPLGNBQWMsQ0FBQztJQUN4QixDQUFDOzs7Ozs7SUFFTyxTQUFTLENBQUMsSUFBUztRQUN6QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0RCxDQUFDOzs7Ozs7Ozs7O0lBVU8sb0JBQW9CLENBQzFCLGVBQXNDLEVBQ3RDLHdCQUEwQyxFQUMxQyxjQUF1QjtRQUV2QixJQUFJLENBQUMsZUFBZSxJQUFJLGVBQWUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3BELE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxPQUFPLGVBQWUsQ0FBQyxLQUFLOzs7O1FBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNqQyxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLEVBQUUsd0JBQXdCLEVBQUUsY0FBYyxDQUFDLEtBQUssSUFBSSxDQUFDO1FBQ3hGLENBQUMsRUFBQyxDQUFDO0lBQ0wsQ0FBQzs7Ozs7Ozs7OztJQVNPLG1CQUFtQixDQUN6QixjQUE4QixFQUM5Qix3QkFBMEMsRUFDMUMsY0FBdUI7UUFFdkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLElBQUksY0FBYyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3hFLE9BQU8sSUFBSSxDQUFDO1NBQ2I7O2NBRUssT0FBTyxHQUFHLEVBQUU7UUFFbEIsS0FBSyxNQUFNLFNBQVMsSUFBSSxjQUFjLENBQUMsVUFBVSxFQUFFO1lBQ2pELE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsd0JBQXdCLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQztTQUN4RjtRQUVELFFBQVEsY0FBYyxDQUFDLFlBQVksRUFBRTtZQUNuQyxLQUFLLHFCQUFxQixDQUFDLEtBQUs7Z0JBQzlCLE9BQU8sT0FBTyxDQUFDLEtBQUs7Ozs7Z0JBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtvQkFDekIsT0FBTyxDQUFDLEtBQUssSUFBSSxDQUFDO2dCQUNwQixDQUFDLEVBQUMsQ0FBQztZQUNMLEtBQUsscUJBQXFCLENBQUMsR0FBRztnQkFDNUIsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUk7Ozs7Z0JBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtvQkFDMUIsT0FBTyxDQUFDLEtBQUssSUFBSSxDQUFDO2dCQUNwQixDQUFDLEVBQUMsQ0FBQztZQUNMO2dCQUNFLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7SUFDSCxDQUFDOzs7Ozs7Ozs7O0lBU08sY0FBYyxDQUFDLFNBQW9CLEVBQUUsd0JBQW1DLEVBQUUsY0FBdUI7O2NBQ2pHLEdBQUcsR0FBZSxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSx3QkFBd0IsRUFBRSxjQUFjLENBQUM7O2NBQ2pHLEdBQUcsR0FBZSxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSx3QkFBd0IsRUFBRSxjQUFjLENBQUM7O1lBRW5HLE1BQU0sR0FBRyxLQUFLO1FBRWxCLFFBQVEsU0FBUyxDQUFDLElBQUksRUFBRTtZQUN0QixLQUFLLGFBQWEsQ0FBQyxRQUFRO2dCQUN6QixNQUFNLEdBQUksR0FBRyxDQUFDLE1BQU07Ozs7Z0JBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRTtvQkFDMUIsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUM5QixDQUFDLEVBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO2dCQUNoQixNQUFNO1lBQ1IsS0FBSyxhQUFhLENBQUMsUUFBUTtnQkFDekIsTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNOzs7O2dCQUFDLENBQUMsRUFBRSxFQUFFLEVBQUU7b0JBQ3pCLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDOUIsQ0FBQyxFQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztnQkFDaEIsTUFBTTtZQUNSO2dCQUNFLEtBQUssSUFBSSxFQUFFLElBQUksR0FBRyxFQUFFO29CQUNsQixLQUFLLElBQUksRUFBRSxJQUFJLEdBQUcsRUFBRTt3QkFDbEIsUUFBUSxTQUFTLENBQUMsSUFBSSxFQUFFOzRCQUN0QixLQUFLLGFBQWEsQ0FBQyxPQUFPO2dDQUN4QixFQUFFLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxDQUFDO2dDQUNoQyxFQUFFLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxDQUFDO2dDQUNoQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7b0NBQUUsTUFBTSxHQUFHLElBQUksQ0FBQztpQ0FBRTtnQ0FDakMsTUFBTTs0QkFDUixLQUFLLGFBQWEsQ0FBQyxVQUFVO2dDQUMzQixFQUFFLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxDQUFDO2dDQUNoQyxFQUFFLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxDQUFDO2dDQUNoQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7b0NBQUUsTUFBTSxHQUFHLElBQUksQ0FBQztpQ0FBRTtnQ0FDakMsTUFBTTs0QkFDUixLQUFLLGFBQWEsQ0FBQyxXQUFXO2dDQUM1QixFQUFFLEdBQUcsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dDQUNwQixFQUFFLEdBQUcsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dDQUNwQixJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUU7b0NBQUUsTUFBTSxHQUFHLElBQUksQ0FBQztpQ0FBRTtnQ0FDaEMsTUFBTTs0QkFDUixLQUFLLGFBQWEsQ0FBQyxRQUFRO2dDQUN6QixFQUFFLEdBQUcsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dDQUNwQixFQUFFLEdBQUcsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dDQUNwQixJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUU7b0NBQUUsTUFBTSxHQUFHLElBQUksQ0FBQztpQ0FBRTtnQ0FDaEMsTUFBTTt5QkFDVDtxQkFDRjtpQkFDRjtTQUNKO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzs7Ozs7O0lBRU8saUJBQWlCLENBQUMsS0FBSztRQUM3QixRQUFRLEtBQUssRUFBRTtZQUNiLEtBQUssSUFBSTtnQkFDUCxPQUFPLE1BQU0sQ0FBQztZQUNoQjtnQkFDRSxPQUFPLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUMzQjtJQUNILENBQUM7Ozs7Ozs7Ozs7SUFTTyxpQkFBaUIsQ0FBQyxLQUFvQixFQUFFLHdCQUFtQyxFQUFFLGNBQXVCO1FBQzFHLElBQUksd0JBQXdCLEVBQUU7O2tCQUN0QixNQUFNLEdBQUcsRUFBRTtZQUNqQixLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRTs7c0JBQ2xCLEtBQUssR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLHdCQUF3QixFQUFFLGNBQWMsQ0FBQztnQkFDcEYsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNwQjtZQUNELE9BQU8sTUFBTSxDQUFDO1NBQ2Y7YUFBTTtZQUNMLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7SUFDSCxDQUFDOzs7Ozs7Ozs7O0lBU08saUJBQWlCLENBQUMsSUFBWSxFQUFFLHdCQUFtQyxFQUFFLGNBQXVCO1FBQ2xHLElBQUksd0JBQXdCLEVBQUU7WUFDNUIsSUFBSSxDQUFDLGNBQWMsRUFBRTtnQkFDbkIsY0FBYyxHQUFHLEVBQUUsQ0FBQzthQUNyQjs7a0JBQ0ssT0FBTyxHQUFHLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7O2tCQUM1QyxLQUFLLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDO1lBQ3ZFLE9BQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQzVDO2FBQU07WUFDTCxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN4QztJQUNILENBQUM7Ozs7Ozs7OztJQVNPLG9CQUFvQixDQUFDLElBQVk7UUFDdkMsUUFBUSxJQUFJLEVBQUU7WUFDWixLQUFLLE1BQU07Z0JBQ1QsT0FBTyxJQUFJLENBQUM7WUFDZCxLQUFLLE9BQU87Z0JBQ1YsT0FBTyxLQUFLLENBQUM7WUFDZixLQUFLLE1BQU07Z0JBQ1QsT0FBTyxJQUFJLENBQUM7WUFDZDtnQkFDRSxPQUFPLElBQUksQ0FBQztTQUNmO0lBQ0gsQ0FBQzs7O1lBdlFGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNlY3Rpb24gfSBmcm9tICcuLi9pbnRlcmZhY2VzL3NlY3Rpb24nO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29uZGl0aW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9jb25kaXRpb24nO1xuaW1wb3J0IHsgQ29uZGl0aW9uR3JvdXAgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2NvbmRpdGlvbi1ncm91cCc7XG5pbXBvcnQgeyBDb25kaXRpb25UeXBlIH0gZnJvbSAnLi4vZW51bXMvY29uZGl0aW9uLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBDb25kaXRpb25SZWxhdGlvbnNoaXAgfSBmcm9tICcuLi9lbnVtcy9jb25kaXRpb24tcmVsYXRpb25zaGlwLmVudW0nO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBGaWx0ZXJTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXJzIGFuIGFycmF5IG9mIHNlY3Rpb25zIGJhc2VkIG9uIHRoZWlyIGNvbmRpdGlvbiBncm91cHMuXG4gICAqIEBwYXJhbSBzZWN0aW9ucyBUaGUgYXJyYXkgb2Ygc2VjdGlvbnMgdG8gZmlsdGVyLlxuICAgKiBAcGFyYW0gY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtIFRoZSBjdXJyZW50IGZvcm0gZGF0YSwgY2FuIGJlIG51bGwvdW5kZWZpbmVkLlxuICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBmaWx0ZXJlZCBzZWN0aW9ucyB3aXRoIHRoZWlyIGZpbHRlcmVkIHF1ZXN0aW9ucy5cbiAgICogQGF1dGhvciBXaWxsIFBvdWxzb25cbiAgICovXG4gIHB1YmxpYyBmaWx0ZXJTZWN0aW9ucyhzZWN0aW9uczogQXJyYXk8U2VjdGlvbj4sIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybTogRm9ybUdyb3VwIHwgbnVsbCwgYWRkaXRpb25hbERhdGE/OiBPYmplY3QpOiBBcnJheTxTZWN0aW9uPiB7XG4gICAgY29uc3QgZmlsdGVyZWRTZWN0aW9ucyA9IFtdO1xuICAgIGZvciAoY29uc3Qgc2VjdGlvbiBvZiBzZWN0aW9ucykge1xuICAgICAgaWYgKHRoaXMubWVldHNDb25kaXRpb25Hcm91cHMoc2VjdGlvbi5jb25kaXRpb25Hcm91cHMsIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSwgYWRkaXRpb25hbERhdGEpKSB7XG4gICAgICAgIGNvbnN0IGZpbHRlcmVkUXVlc3Rpb25zID0gW107XG4gICAgICAgIGZvciAoY29uc3QgcXVlc3Rpb24gb2Ygc2VjdGlvbi5xdWVzdGlvbnMpIHtcbiAgICAgICAgICBpZiAodGhpcy5tZWV0c0NvbmRpdGlvbkdyb3VwcyhxdWVzdGlvbi5jb25kaXRpb25Hcm91cHMsIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSwgYWRkaXRpb25hbERhdGEpKSB7XG5cbiAgICAgICAgICAgIGlmIChxdWVzdGlvbi5yZXBlYXRlclF1ZXN0aW9ucykge1xuICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJlZFJlcGVhdGVyUXVlc3Rpb25zID0gW107XG4gICAgICAgICAgICAgIGZvciAoY29uc3QgcmVwZWF0ZXJRdWVzdGlvbiBvZiBxdWVzdGlvbi5yZXBlYXRlclF1ZXN0aW9ucykge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLm1lZXRzQ29uZGl0aW9uR3JvdXBzKHJlcGVhdGVyUXVlc3Rpb24uY29uZGl0aW9uR3JvdXBzLCBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0sIGFkZGl0aW9uYWxEYXRhKSkge1xuICAgICAgICAgICAgICAgICAgZmlsdGVyZWRSZXBlYXRlclF1ZXN0aW9ucy5wdXNoKHJlcGVhdGVyUXVlc3Rpb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAocXVlc3Rpb24uZmV0Y2hQYXRoKSB7XG4gICAgICAgICAgICAgIGxldCBvcHRpb25zID0gYWRkaXRpb25hbERhdGFbcXVlc3Rpb24uZmV0Y2hQYXRoXTtcbiAgICAgICAgICAgICAgaWYgKHF1ZXN0aW9uLmZldGNoU2VsZWN0b3JzICYmIHF1ZXN0aW9uLmZldGNoU2VsZWN0b3JzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLmdldFZhbHVlc0ZvckFycmF5KHF1ZXN0aW9uLmZldGNoU2VsZWN0b3JzLCBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0sIGFkZGl0aW9uYWxEYXRhKTtcbiAgICAgICAgICAgICAgICBvcHRpb25zID0gXy5nZXQoYWRkaXRpb25hbERhdGFbcXVlc3Rpb24uZmV0Y2hQYXRoXSwgdmFsdWVzKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBvcHRpb25zID0gdGhpcy5nZXRGaW5hbEZldGNoQXJyYXkob3B0aW9ucyk7XG5cbiAgICAgICAgICAgICAgaWYgKCFxdWVzdGlvbi5zZWxlY3RPcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgcXVlc3Rpb24uc2VsZWN0T3B0aW9ucyA9IFtdO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgcXVlc3Rpb24uc2VsZWN0T3B0aW9ucyA9IHF1ZXN0aW9uLnNlbGVjdE9wdGlvbnMuY29uY2F0KG9wdGlvbnMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmaWx0ZXJlZFF1ZXN0aW9ucy5wdXNoKHF1ZXN0aW9uKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgc2VjdGlvbi5xdWVzdGlvbnMgPSBmaWx0ZXJlZFF1ZXN0aW9ucztcbiAgICAgICAgZmlsdGVyZWRTZWN0aW9ucy5wdXNoKHNlY3Rpb24pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmlsdGVyZWRTZWN0aW9ucztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RmluYWxGZXRjaEFycmF5KGl0ZW1zOiBhbnkpOiBBcnJheTxPYmplY3Q+IHtcbiAgICBpZiAoIWl0ZW1zKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGl0ZW1zKSkge1xuICAgICAgaXRlbXMgPSBfLmtleXMoaXRlbXMpO1xuICAgIH1cbiAgICBpZiAoaXRlbXMubGVuZ3RoIDw9IDApIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCBjb252ZXJ0ZWRBcnJheTogQXJyYXk8T2JqZWN0PiA9IFtdO1xuICAgIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykge1xuICAgICAgaWYgKGl0ZW0pIHtcbiAgICAgICAgaWYgKGl0ZW0gaW5zdGFuY2VvZiBPYmplY3QgJiYgaXRlbS52YWx1ZSAmJiBpdGVtLmxhYmVsKSB7XG4gICAgICAgICAgY29udmVydGVkQXJyYXkucHVzaChpdGVtKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb252ZXJ0ZWRBcnJheS5wdXNoKHtsYWJlbDogdGhpcy51cHBlcmNhc2UoaXRlbSksIHZhbHVlOiBpdGVtfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGNvbnZlcnRlZEFycmF5O1xuICB9XG5cbiAgcHJpdmF0ZSB1cHBlcmNhc2UoaXRlbTogYW55KSB7XG4gICAgcmV0dXJuIGl0ZW0uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBpdGVtLnNsaWNlKDEpO1xuICB9XG5cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIGVhY2ggY29uZGl0aW9uIGdyb3VwcyBjb25kaXRpb25zIGhhdmUgYmVlbiBtZXQuXG4gICAqIEBwYXJhbSBjb25kaXRpb25Hcm91cHMgVGhlIGFycmF5IG9mIGNvbmRpdGlvbiBncm91cHMuXG4gICAqIEBwYXJhbSBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0gVGhlIGN1cnJlbnQgZm9ybSBkYXRhLCBjYW4gYmUgbnVsbC91bmRlZmluZWQuXG4gICAqIEByZXR1cm5zIEEgYm9vbGVhbiBzdGF0aW5nIGlmIHRoZSBjb25kaXRpb24gZ3JvdXBzIGNvbmRpdGlvbnMgaGFzIGJlZW4gbWV0LlxuICAgKiBAYXV0aG9yIFdpbGwgUG91bHNvblxuICAgKi9cbiAgcHJpdmF0ZSBtZWV0c0NvbmRpdGlvbkdyb3VwcyhcbiAgICBjb25kaXRpb25Hcm91cHM6IEFycmF5PENvbmRpdGlvbkdyb3VwPixcbiAgICBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm06IEZvcm1Hcm91cCB8IG51bGwsXG4gICAgYWRkaXRpb25hbERhdGE/OiBPYmplY3RcbiAgKTogYm9vbGVhbiB7XG4gICAgaWYgKCFjb25kaXRpb25Hcm91cHMgfHwgY29uZGl0aW9uR3JvdXBzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBjb25kaXRpb25Hcm91cHMuZXZlcnkoKHgpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLm1lZXRzQ29uZGl0aW9uR3JvdXAoeCwgY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtLCBhZGRpdGlvbmFsRGF0YSkgPT09IHRydWU7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIGEgY29uZGl0aW9uIGdyb3VwcyBjb25kaXRpb25zIGhhdmUgYmVlbiBtZXQuXG4gICAqIEBwYXJhbSBjb25kaXRpb25Hcm91cCBUaGUgY29uZGl0aW9uIGdyb3VwIHRvIGNoZWNrLlxuICAgKiBAcGFyYW0gY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtIFRoZSBjdXJyZW50IGZvcm0gZGF0YSwgY2FuIGJlIG51bGwvdW5kZWZpbmVkLlxuICAgKiBAcmV0dXJucyBBIGJvb2xlYW4gc3RhdGluZyBpZiB0aGUgY29uZGl0aW9uIGdyb3VwIGNvbmRpdGlvbnMgaGFzIGJlZW4gbWV0LlxuICAgKiBAYXV0aG9yIFdpbGwgUG91bHNvblxuICAgKi9cbiAgcHJpdmF0ZSBtZWV0c0NvbmRpdGlvbkdyb3VwKFxuICAgIGNvbmRpdGlvbkdyb3VwOiBDb25kaXRpb25Hcm91cCxcbiAgICBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm06IEZvcm1Hcm91cCB8IG51bGwsXG4gICAgYWRkaXRpb25hbERhdGE/OiBPYmplY3RcbiAgKTogYm9vbGVhbiB7XG4gICAgaWYgKCFjb25kaXRpb25Hcm91cC5jb25kaXRpb25zIHx8IGNvbmRpdGlvbkdyb3VwLmNvbmRpdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHRzID0gW107XG5cbiAgICBmb3IgKGNvbnN0IGNvbmRpdGlvbiBvZiBjb25kaXRpb25Hcm91cC5jb25kaXRpb25zKSB7XG4gICAgICByZXN1bHRzLnB1c2godGhpcy5tZWV0c0NvbmRpdGlvbihjb25kaXRpb24sIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSwgYWRkaXRpb25hbERhdGEpKTtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKGNvbmRpdGlvbkdyb3VwLnJlbGF0aW9uc2hpcCkge1xuICAgICAgY2FzZSBDb25kaXRpb25SZWxhdGlvbnNoaXAuRXZlcnk6XG4gICAgICAgIHJldHVybiByZXN1bHRzLmV2ZXJ5KCh4KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHggPT09IHRydWU7XG4gICAgICAgIH0pO1xuICAgICAgY2FzZSBDb25kaXRpb25SZWxhdGlvbnNoaXAuQW55OlxuICAgICAgICByZXR1cm4gISFyZXN1bHRzLmZpbmQoKHgpID0+IHtcbiAgICAgICAgICByZXR1cm4geCA9PT0gdHJ1ZTtcbiAgICAgICAgfSk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIGEgY29uZGl0aW9uIGhhcyBiZWVuIG1ldC5cbiAgICogQHBhcmFtIGNvbmRpdGlvbiBUaGUgY29uZGl0aW9uIHRvIGNoZWNrLlxuICAgKiBAcGFyYW0gY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtIFRoZSBjdXJyZW50IGZvcm0gZGF0YSwgY2FuIGJlIG51bGwvdW5kZWZpbmVkLlxuICAgKiBAcmV0dXJucyBBIGJvb2xlYW4gc3RhdGluZyBpZiB0aGUgY29uZGl0aW9uIGdyb3VwIGNvbmRpdGlvbnMgaGFzIGJlZW4gbWV0LlxuICAgKiBAYXV0aG9yIFdpbGwgUG91bHNvblxuICAgKi9cbiAgcHJpdmF0ZSBtZWV0c0NvbmRpdGlvbihjb25kaXRpb246IENvbmRpdGlvbiwgY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtOiBGb3JtR3JvdXAsIGFkZGl0aW9uYWxEYXRhPzogT2JqZWN0KTogYm9vbGVhbiB7XG4gICAgY29uc3QgdjFzOiBBcnJheTxhbnk+ID0gdGhpcy5nZXRWYWx1ZXNGb3JBcnJheShjb25kaXRpb24udjFzLCBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0sIGFkZGl0aW9uYWxEYXRhKTtcbiAgICBjb25zdCB2MnM6IEFycmF5PGFueT4gPSB0aGlzLmdldFZhbHVlc0ZvckFycmF5KGNvbmRpdGlvbi52MnMsIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSwgYWRkaXRpb25hbERhdGEpO1xuXG4gICAgbGV0IHJlc3VsdCA9IGZhbHNlO1xuXG4gICAgc3dpdGNoIChjb25kaXRpb24udHlwZSkge1xuICAgICAgY2FzZSBDb25kaXRpb25UeXBlLkV4Y2x1ZGVzOlxuICAgICAgICByZXN1bHQgPSAgdjFzLmZpbHRlcigodjEpID0+IHtcbiAgICAgICAgICByZXR1cm4gdjJzLmluZGV4T2YodjEpID4gLTE7XG4gICAgICAgIH0pLmxlbmd0aCA9PT0gMDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIENvbmRpdGlvblR5cGUuSW5jbHVkZXM6XG4gICAgICAgIHJlc3VsdCA9IHYxcy5maWx0ZXIoKHYxKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHYycy5pbmRleE9mKHYxKSA+IC0xO1xuICAgICAgICB9KS5sZW5ndGggIT09IDA7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgZm9yIChsZXQgdjIgb2YgdjJzKSB7XG4gICAgICAgICAgZm9yIChsZXQgdjEgb2YgdjFzKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKGNvbmRpdGlvbi50eXBlKSB7XG4gICAgICAgICAgICAgIGNhc2UgQ29uZGl0aW9uVHlwZS5FcXVhbFRvOlxuICAgICAgICAgICAgICAgIHYxID0gdGhpcy5nZXRTdHJpbmdGb3JWYWx1ZSh2MSk7XG4gICAgICAgICAgICAgICAgdjIgPSB0aGlzLmdldFN0cmluZ0ZvclZhbHVlKHYyKTtcbiAgICAgICAgICAgICAgICBpZiAodjEgPT09IHYyKSB7IHJlc3VsdCA9IHRydWU7IH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgY2FzZSBDb25kaXRpb25UeXBlLk5vdEVxdWFsVG86XG4gICAgICAgICAgICAgICAgdjEgPSB0aGlzLmdldFN0cmluZ0ZvclZhbHVlKHYxKTtcbiAgICAgICAgICAgICAgICB2MiA9IHRoaXMuZ2V0U3RyaW5nRm9yVmFsdWUodjIpO1xuICAgICAgICAgICAgICAgIGlmICh2MSAhPT0gdjIpIHsgcmVzdWx0ID0gdHJ1ZTsgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICBjYXNlIENvbmRpdGlvblR5cGUuR3JlYXRlclRoYW46XG4gICAgICAgICAgICAgICAgdjEgPSBwYXJzZUZsb2F0KHYxKTtcbiAgICAgICAgICAgICAgICB2MiA9IHBhcnNlRmxvYXQodjIpO1xuICAgICAgICAgICAgICAgIGlmICh2MSA+PSB2MikgeyByZXN1bHQgPSB0cnVlOyB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgQ29uZGl0aW9uVHlwZS5MZXNzVGhhbjpcbiAgICAgICAgICAgICAgICB2MSA9IHBhcnNlRmxvYXQodjEpO1xuICAgICAgICAgICAgICAgIHYyID0gcGFyc2VGbG9hdCh2Mik7XG4gICAgICAgICAgICAgICAgaWYgKHYxIDw9IHYyKSB7IHJlc3VsdCA9IHRydWU7IH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTdHJpbmdGb3JWYWx1ZSh2YWx1ZSkge1xuICAgIHN3aXRjaCAodmFsdWUpIHtcbiAgICAgIGNhc2UgbnVsbDpcbiAgICAgICAgcmV0dXJuICdudWxsJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB2YWx1ZS50b1N0cmluZygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBjdXJyZW50IHZhbHVlcyBmb3IgYW4gYXJyYXkgb2Ygc3RyaW5ncy5cbiAgICogQHBhcmFtIHBhdGhzIFRoZSBhcnJheSBvZiBzdHJpbmdzIHRvIGNoZWNrLlxuICAgKiBAcGFyYW0gY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtIFRoZSBjdXJyZW50IGZvcm0gZGF0YSwgY2FuIGJlIG51bGwvdW5kZWZpbmVkLlxuICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBzdHJpbmdzL3ZhbHVlc1xuICAgKiBAYXV0aG9yIFdpbGwgUG91bHNvblxuICAgKi9cbiAgcHJpdmF0ZSBnZXRWYWx1ZXNGb3JBcnJheShwYXRoczogQXJyYXk8c3RyaW5nPiwgY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtOiBGb3JtR3JvdXAsIGFkZGl0aW9uYWxEYXRhPzogT2JqZWN0KTogQXJyYXk8YW55PiB7XG4gICAgaWYgKGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSkge1xuICAgICAgY29uc3QgdmFsdWVzID0gW107XG4gICAgICBmb3IgKGNvbnN0IHBhdGggb2YgcGF0aHMpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldFZhbHVlRm9yU3RyaW5nKHBhdGgsIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSwgYWRkaXRpb25hbERhdGEpO1xuICAgICAgICB2YWx1ZXMucHVzaCh2YWx1ZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdmFsdWVzO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gcGF0aHM7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgYSBjdXJyZW50IHZhbHVlIGZvciBhIHN0cmluZy5cbiAgICogQHBhcmFtIHBhdGggVGhlIHN0cmluZyB2YWx1ZSB0byBjaGVjay5cbiAgICogQHBhcmFtIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSBUaGUgY3VycmVudCBmb3JtIGRhdGEsIGNhbiBiZSBudWxsL3VuZGVmaW5lZC5cbiAgICogQHJldHVybnMgQSBzdHJpbmcvdmFsdWUuXG4gICAqIEBhdXRob3IgV2lsbCBQb3Vsc29uXG4gICAqL1xuICBwcml2YXRlIGdldFZhbHVlRm9yU3RyaW5nKHBhdGg6IHN0cmluZywgY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtOiBGb3JtR3JvdXAsIGFkZGl0aW9uYWxEYXRhPzogT2JqZWN0KSB7XG4gICAgaWYgKGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSkge1xuICAgICAgaWYgKCFhZGRpdGlvbmFsRGF0YSkge1xuICAgICAgICBhZGRpdGlvbmFsRGF0YSA9IHt9O1xuICAgICAgfVxuICAgICAgY29uc3QgY29udHJvbCA9IGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybS5nZXQocGF0aCk7XG4gICAgICBjb25zdCB2YWx1ZSA9IGNvbnRyb2wgPyBjb250cm9sLnZhbHVlIDogdGhpcy5jb252ZXJ0U3RyaW5nVG9WYWx1ZShwYXRoKTtcbiAgICAgIHJldHVybiAgXy5nZXQoYWRkaXRpb25hbERhdGEsIHBhdGgsIHZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuY29udmVydFN0cmluZ1RvVmFsdWUocGF0aCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIGEgc3RyaW5nIHRvIGEgdmFsdWUuXG4gICAqIEVnLiB0cnVlL2ZhbHNlLlxuICAgKiBAcGFyYW0gcGF0aCBUaGUgc3RyaW5nIHZhbHVlIHRvIGNoZWNrIGZvciBjb252ZXJzaW9uO1xuICAgKiBAcmV0dXJucyBFaXRoZXIgYSBzdHJpbmcgb3IgdGhlIGNvbnZlcnRlZCB2YWx1ZS5cbiAgICogQGF1dGhvciBXaWxsIFBvdWxzb25cbiAgICovXG4gIHByaXZhdGUgY29udmVydFN0cmluZ1RvVmFsdWUocGF0aDogc3RyaW5nKSB7XG4gICAgc3dpdGNoIChwYXRoKSB7XG4gICAgICBjYXNlICd0cnVlJzpcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICBjYXNlICdmYWxzZSc6XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIGNhc2UgJ251bGwnOlxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBwYXRoO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -21,6 +21,10 @@ if (false) {
21
21
  Question.prototype.attachment_mime_type;
22
22
  /** @type {?|undefined} */
23
23
  Question.prototype.defaultValue;
24
+ /** @type {?} */
25
+ Question.prototype.fetchPath;
26
+ /** @type {?} */
27
+ Question.prototype.fetchSelectors;
24
28
  /** @type {?|undefined} */
25
29
  Question.prototype.conditionGroups;
26
30
  /** @type {?|undefined} */
@@ -38,4 +42,4 @@ if (false) {
38
42
  /** @type {?|undefined} */
39
43
  Question.prototype.clearfields;
40
44
  }
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ2xvd2dyZWVuL2dnLXF1ZXN0aW9ubmFpcmUtdjIvIiwic291cmNlcyI6WyJsaWIvaW50ZXJmYWNlcy9xdWVzdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBU0EsOEJBZ0JDOzs7SUFmRyx5QkFBYzs7SUFDZCx3QkFBYTs7SUFDYix3QkFBbUI7O0lBQ25CLDZCQUFzQjs7SUFDdEIsbUNBQXlCOztJQUN6Qix3Q0FBOEI7O0lBQzlCLGdDQUFtQjs7SUFDbkIsbUNBQXdDOztJQUN4QyxxQ0FBNEM7O0lBQzVDLHFDQUEyQjs7SUFDM0IsdUNBQTZCOztJQUM3QixpQ0FBb0M7O0lBQ3BDLGtDQUFzQzs7SUFDdEMsOEJBQThCOztJQUM5QiwrQkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBRdWVzdGlvblR5cGUgfSBmcm9tICcuLi9lbnVtcy9xdWVzdGlvbi10eXBlLmVudW0nO1xuaW1wb3J0IHsgQ29uZGl0aW9uR3JvdXAgfSBmcm9tICcuL2NvbmRpdGlvbi1ncm91cCc7XG5pbXBvcnQgeyBWYWxpZGF0b3IgfSBmcm9tICcuL3ZhbGlkYXRvcic7XG5pbXBvcnQgeyBSZXBlYXRlclF1ZXN0aW9uIH0gZnJvbSAnLi9yZXBlYXRlci1xdWVzdGlvbic7XG5pbXBvcnQgeyBTZWxlY3RPcHRpb24gfSBmcm9tICcuL3NlbGVjdC1vcHRpb24nO1xuaW1wb3J0IHsgSW5wdXRUeXBlIH0gZnJvbSAnLi4vZW51bXMvaW5wdXQtdHlwZS5lbnVtJztcbmltcG9ydCB7IENoZWNrbGlzdEl0ZW0gfSBmcm9tICcuL2NoZWNrbGlzdC1pdGVtJztcbmltcG9ydCB7IEF0dGFjaG1lbnQgfSBmcm9tICcuL2F0dGFjaG1lbnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFF1ZXN0aW9uIHtcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB0eXBlOiBRdWVzdGlvblR5cGU7XG4gICAgaW5wdXRUeXBlPzogSW5wdXRUeXBlO1xuICAgIGF0dGFjaG1lbnRfcGF0aD86IHN0cmluZztcbiAgICBhdHRhY2htZW50X21pbWVfdHlwZT86IHN0cmluZztcbiAgICBkZWZhdWx0VmFsdWU/OiBhbnk7XG4gICAgY29uZGl0aW9uR3JvdXBzPzogQXJyYXk8Q29uZGl0aW9uR3JvdXA+O1xuICAgIHJlcGVhdGVyUXVlc3Rpb25zPzogQXJyYXk8UmVwZWF0ZXJRdWVzdGlvbj47XG4gICAgcmVwZWF0ZXJJdGVtTGFiZWw/OiBzdHJpbmc7XG4gICAgcmVwZWF0ZXJEaXNwbGF5TmFtZT86IHN0cmluZztcbiAgICBzZWxlY3RPcHRpb25zPzogQXJyYXk8U2VsZWN0T3B0aW9uPjtcbiAgICBjaGVja2xpc3RJdGVtcz86IEFycmF5PENoZWNrbGlzdEl0ZW0+O1xuICAgIHZhbGlkYXRvcnM/OiBBcnJheTxWYWxpZGF0b3I+O1xuICAgIGNsZWFyZmllbGRzPzogQXJyYXk8c3RyaW5nPjtcbn1cbiJdfQ==
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ2xvd2dyZWVuL2dnLXF1ZXN0aW9ubmFpcmUtdjIvIiwic291cmNlcyI6WyJsaWIvaW50ZXJmYWNlcy9xdWVzdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBU0EsOEJBa0JDOzs7SUFqQkcseUJBQWM7O0lBQ2Qsd0JBQWE7O0lBQ2Isd0JBQW1COztJQUNuQiw2QkFBc0I7O0lBQ3RCLG1DQUF5Qjs7SUFDekIsd0NBQThCOztJQUM5QixnQ0FBbUI7O0lBQ25CLDZCQUFrQjs7SUFDbEIsa0NBQThCOztJQUM5QixtQ0FBd0M7O0lBQ3hDLHFDQUE0Qzs7SUFDNUMscUNBQTJCOztJQUMzQix1Q0FBNkI7O0lBQzdCLGlDQUFvQzs7SUFDcEMsa0NBQXNDOztJQUN0Qyw4QkFBOEI7O0lBQzlCLCtCQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFF1ZXN0aW9uVHlwZSB9IGZyb20gJy4uL2VudW1zL3F1ZXN0aW9uLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBDb25kaXRpb25Hcm91cCB9IGZyb20gJy4vY29uZGl0aW9uLWdyb3VwJztcbmltcG9ydCB7IFZhbGlkYXRvciB9IGZyb20gJy4vdmFsaWRhdG9yJztcbmltcG9ydCB7IFJlcGVhdGVyUXVlc3Rpb24gfSBmcm9tICcuL3JlcGVhdGVyLXF1ZXN0aW9uJztcbmltcG9ydCB7IFNlbGVjdE9wdGlvbiB9IGZyb20gJy4vc2VsZWN0LW9wdGlvbic7XG5pbXBvcnQgeyBJbnB1dFR5cGUgfSBmcm9tICcuLi9lbnVtcy9pbnB1dC10eXBlLmVudW0nO1xuaW1wb3J0IHsgQ2hlY2tsaXN0SXRlbSB9IGZyb20gJy4vY2hlY2tsaXN0LWl0ZW0nO1xuaW1wb3J0IHsgQXR0YWNobWVudCB9IGZyb20gJy4vYXR0YWNobWVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUXVlc3Rpb24ge1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHR5cGU6IFF1ZXN0aW9uVHlwZTtcbiAgICBpbnB1dFR5cGU/OiBJbnB1dFR5cGU7XG4gICAgYXR0YWNobWVudF9wYXRoPzogc3RyaW5nO1xuICAgIGF0dGFjaG1lbnRfbWltZV90eXBlPzogc3RyaW5nO1xuICAgIGRlZmF1bHRWYWx1ZT86IGFueTtcbiAgICBmZXRjaFBhdGg6IHN0cmluZztcbiAgICBmZXRjaFNlbGVjdG9yczogQXJyYXk8c3RyaW5nPjtcbiAgICBjb25kaXRpb25Hcm91cHM/OiBBcnJheTxDb25kaXRpb25Hcm91cD47XG4gICAgcmVwZWF0ZXJRdWVzdGlvbnM/OiBBcnJheTxSZXBlYXRlclF1ZXN0aW9uPjtcbiAgICByZXBlYXRlckl0ZW1MYWJlbD86IHN0cmluZztcbiAgICByZXBlYXRlckRpc3BsYXlOYW1lPzogc3RyaW5nO1xuICAgIHNlbGVjdE9wdGlvbnM/OiBBcnJheTxTZWxlY3RPcHRpb24+O1xuICAgIGNoZWNrbGlzdEl0ZW1zPzogQXJyYXk8Q2hlY2tsaXN0SXRlbT47XG4gICAgdmFsaWRhdG9ycz86IEFycmF5PFZhbGlkYXRvcj47XG4gICAgY2xlYXJmaWVsZHM/OiBBcnJheTxzdHJpbmc+O1xufVxuIl19
@@ -67,6 +67,20 @@ var FilterService = /** @class */ (function () {
67
67
  finally { if (e_3) throw e_3.error; }
68
68
  }
69
69
  }
70
+ if (question.fetchPath) {
71
+ /** @type {?} */
72
+ var options = additionalData[question.fetchPath];
73
+ if (question.fetchSelectors && question.fetchSelectors.length > 0) {
74
+ /** @type {?} */
75
+ var values = this.getValuesForArray(question.fetchSelectors, currentQuestionnaireForm, additionalData);
76
+ options = _.get(additionalData[question.fetchPath], values);
77
+ }
78
+ options = this.getFinalFetchArray(options);
79
+ if (!question.selectOptions) {
80
+ question.selectOptions = [];
81
+ }
82
+ question.selectOptions = question.selectOptions.concat(options);
83
+ }
70
84
  filteredQuestions.push(question);
71
85
  }
72
86
  }
@@ -92,6 +106,64 @@ var FilterService = /** @class */ (function () {
92
106
  }
93
107
  return filteredSections;
94
108
  };
109
+ /**
110
+ * @private
111
+ * @param {?} items
112
+ * @return {?}
113
+ */
114
+ FilterService.prototype.getFinalFetchArray = /**
115
+ * @private
116
+ * @param {?} items
117
+ * @return {?}
118
+ */
119
+ function (items) {
120
+ var e_4, _a;
121
+ if (!items) {
122
+ return null;
123
+ }
124
+ if (!Array.isArray(items)) {
125
+ items = _.keys(items);
126
+ }
127
+ if (items.length <= 0) {
128
+ return null;
129
+ }
130
+ /** @type {?} */
131
+ var convertedArray = [];
132
+ try {
133
+ for (var items_1 = tslib_1.__values(items), items_1_1 = items_1.next(); !items_1_1.done; items_1_1 = items_1.next()) {
134
+ var item = items_1_1.value;
135
+ if (item) {
136
+ if (item instanceof Object && item.value && item.label) {
137
+ convertedArray.push(item);
138
+ }
139
+ else {
140
+ convertedArray.push({ label: this.uppercase(item), value: item });
141
+ }
142
+ }
143
+ }
144
+ }
145
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
146
+ finally {
147
+ try {
148
+ if (items_1_1 && !items_1_1.done && (_a = items_1.return)) _a.call(items_1);
149
+ }
150
+ finally { if (e_4) throw e_4.error; }
151
+ }
152
+ return convertedArray;
153
+ };
154
+ /**
155
+ * @private
156
+ * @param {?} item
157
+ * @return {?}
158
+ */
159
+ FilterService.prototype.uppercase = /**
160
+ * @private
161
+ * @param {?} item
162
+ * @return {?}
163
+ */
164
+ function (item) {
165
+ return item.charAt(0).toUpperCase() + item.slice(1);
166
+ };
95
167
  /**
96
168
  * Checks if each condition groups conditions have been met.
97
169
  * @param conditionGroups The array of condition groups.
@@ -156,7 +228,7 @@ var FilterService = /** @class */ (function () {
156
228
  * @return {?} A boolean stating if the condition group conditions has been met.
157
229
  */
158
230
  function (conditionGroup, currentQuestionnaireForm, additionalData) {
159
- var e_4, _a;
231
+ var e_5, _a;
160
232
  if (!conditionGroup.conditions || conditionGroup.conditions.length === 0) {
161
233
  return true;
162
234
  }
@@ -168,12 +240,12 @@ var FilterService = /** @class */ (function () {
168
240
  results.push(this.meetsCondition(condition, currentQuestionnaireForm, additionalData));
169
241
  }
170
242
  }
171
- catch (e_4_1) { e_4 = { error: e_4_1 }; }
243
+ catch (e_5_1) { e_5 = { error: e_5_1 }; }
172
244
  finally {
173
245
  try {
174
246
  if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
175
247
  }
176
- finally { if (e_4) throw e_4.error; }
248
+ finally { if (e_5) throw e_5.error; }
177
249
  }
178
250
  switch (conditionGroup.relationship) {
179
251
  case ConditionRelationship.Every:
@@ -222,7 +294,7 @@ var FilterService = /** @class */ (function () {
222
294
  * @return {?} A boolean stating if the condition group conditions has been met.
223
295
  */
224
296
  function (condition, currentQuestionnaireForm, additionalData) {
225
- var e_5, _a, e_6, _b;
297
+ var e_6, _a, e_7, _b;
226
298
  /** @type {?} */
227
299
  var v1s = this.getValuesForArray(condition.v1s, currentQuestionnaireForm, additionalData);
228
300
  /** @type {?} */
@@ -286,21 +358,21 @@ var FilterService = /** @class */ (function () {
286
358
  }
287
359
  }
288
360
  }
289
- catch (e_6_1) { e_6 = { error: e_6_1 }; }
361
+ catch (e_7_1) { e_7 = { error: e_7_1 }; }
290
362
  finally {
291
363
  try {
292
364
  if (v1s_1_1 && !v1s_1_1.done && (_b = v1s_1.return)) _b.call(v1s_1);
293
365
  }
294
- finally { if (e_6) throw e_6.error; }
366
+ finally { if (e_7) throw e_7.error; }
295
367
  }
296
368
  }
297
369
  }
298
- catch (e_5_1) { e_5 = { error: e_5_1 }; }
370
+ catch (e_6_1) { e_6 = { error: e_6_1 }; }
299
371
  finally {
300
372
  try {
301
373
  if (v2s_1_1 && !v2s_1_1.done && (_a = v2s_1.return)) _a.call(v2s_1);
302
374
  }
303
- finally { if (e_5) throw e_5.error; }
375
+ finally { if (e_6) throw e_6.error; }
304
376
  }
305
377
  }
306
378
  return result;
@@ -349,7 +421,7 @@ var FilterService = /** @class */ (function () {
349
421
  * @return {?} An array of strings/values
350
422
  */
351
423
  function (paths, currentQuestionnaireForm, additionalData) {
352
- var e_7, _a;
424
+ var e_8, _a;
353
425
  if (currentQuestionnaireForm) {
354
426
  /** @type {?} */
355
427
  var values = [];
@@ -361,12 +433,12 @@ var FilterService = /** @class */ (function () {
361
433
  values.push(value);
362
434
  }
363
435
  }
364
- catch (e_7_1) { e_7 = { error: e_7_1 }; }
436
+ catch (e_8_1) { e_8 = { error: e_8_1 }; }
365
437
  finally {
366
438
  try {
367
439
  if (paths_1_1 && !paths_1_1.done && (_a = paths_1.return)) _a.call(paths_1);
368
440
  }
369
- finally { if (e_7) throw e_7.error; }
441
+ finally { if (e_8) throw e_8.error; }
370
442
  }
371
443
  return values;
372
444
  }
@@ -460,4 +532,4 @@ var FilterService = /** @class */ (function () {
460
532
  return FilterService;
461
533
  }());
462
534
  export { FilterService };
463
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ2xvd2dyZWVuL2dnLXF1ZXN0aW9ubmFpcmUtdjIvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvZmlsdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM3RSxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQzs7QUFFNUI7SUFLRTtJQUFnQixDQUFDO0lBRWpCOzs7Ozs7T0FNRzs7Ozs7Ozs7O0lBQ0ksc0NBQWM7Ozs7Ozs7O0lBQXJCLFVBQXNCLFFBQXdCLEVBQUUsd0JBQTBDLEVBQUUsY0FBdUI7OztZQUMzRyxnQkFBZ0IsR0FBRyxFQUFFOztZQUMzQixLQUFzQixJQUFBLGFBQUEsaUJBQUEsUUFBUSxDQUFBLGtDQUFBLHdEQUFFO2dCQUEzQixJQUFNLE9BQU8scUJBQUE7Z0JBQ2hCLElBQUksSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsd0JBQXdCLEVBQUUsY0FBYyxDQUFDLEVBQUU7O3dCQUMxRixpQkFBaUIsR0FBRyxFQUFFOzt3QkFDNUIsS0FBdUIsSUFBQSxLQUFBLGlCQUFBLE9BQU8sQ0FBQyxTQUFTLENBQUEsZ0JBQUEsNEJBQUU7NEJBQXJDLElBQU0sUUFBUSxXQUFBOzRCQUNqQixJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFLHdCQUF3QixFQUFFLGNBQWMsQ0FBQyxFQUFFO2dDQUVqRyxJQUFJLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRTs7d0NBQ3hCLHlCQUF5QixHQUFHLEVBQUU7O3dDQUNwQyxLQUErQixJQUFBLEtBQUEsaUJBQUEsUUFBUSxD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d0JBWEQ7Q0FzT0MsQUE3TkQsSUE2TkM7U0ExTlksYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNlY3Rpb24gfSBmcm9tICcuLi9pbnRlcmZhY2VzL3NlY3Rpb24nO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29uZGl0aW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9jb25kaXRpb24nO1xuaW1wb3J0IHsgQ29uZGl0aW9uR3JvdXAgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2NvbmRpdGlvbi1ncm91cCc7XG5pbXBvcnQgeyBDb25kaXRpb25UeXBlIH0gZnJvbSAnLi4vZW51bXMvY29uZGl0aW9uLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBDb25kaXRpb25SZWxhdGlvbnNoaXAgfSBmcm9tICcuLi9lbnVtcy9jb25kaXRpb24tcmVsYXRpb25zaGlwLmVudW0nO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBGaWx0ZXJTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXJzIGFuIGFycmF5IG9mIHNlY3Rpb25zIGJhc2VkIG9uIHRoZWlyIGNvbmRpdGlvbiBncm91cHMuXG4gICAqIEBwYXJhbSBzZWN0aW9ucyBUaGUgYXJyYXkgb2Ygc2VjdGlvbnMgdG8gZmlsdGVyLlxuICAgKiBAcGFyYW0gY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtIFRoZSBjdXJyZW50IGZvcm0gZGF0YSwgY2FuIGJlIG51bGwvdW5kZWZpbmVkLlxuICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBmaWx0ZXJlZCBzZWN0aW9ucyB3aXRoIHRoZWlyIGZpbHRlcmVkIHF1ZXN0aW9ucy5cbiAgICogQGF1dGhvciBXaWxsIFBvdWxzb25cbiAgICovXG4gIHB1YmxpYyBmaWx0ZXJTZWN0aW9ucyhzZWN0aW9uczogQXJyYXk8U2VjdGlvbj4sIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybTogRm9ybUdyb3VwIHwgbnVsbCwgYWRkaXRpb25hbERhdGE/OiBPYmplY3QpOiBBcnJheTxTZWN0aW9uPiB7XG4gICAgY29uc3QgZmlsdGVyZWRTZWN0aW9ucyA9IFtdO1xuICAgIGZvciAoY29uc3Qgc2VjdGlvbiBvZiBzZWN0aW9ucykge1xuICAgICAgaWYgKHRoaXMubWVldHNDb25kaXRpb25Hcm91cHMoc2VjdGlvbi5jb25kaXRpb25Hcm91cHMsIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSwgYWRkaXRpb25hbERhdGEpKSB7XG4gICAgICAgIGNvbnN0IGZpbHRlcmVkUXVlc3Rpb25zID0gW107XG4gICAgICAgIGZvciAoY29uc3QgcXVlc3Rpb24gb2Ygc2VjdGlvbi5xdWVzdGlvbnMpIHtcbiAgICAgICAgICBpZiAodGhpcy5tZWV0c0NvbmRpdGlvbkdyb3VwcyhxdWVzdGlvbi5jb25kaXRpb25Hcm91cHMsIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSwgYWRkaXRpb25hbERhdGEpKSB7XG5cbiAgICAgICAgICAgIGlmIChxdWVzdGlvbi5yZXBlYXRlclF1ZXN0aW9ucykge1xuICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJlZFJlcGVhdGVyUXVlc3Rpb25zID0gW107XG4gICAgICAgICAgICAgIGZvciAoY29uc3QgcmVwZWF0ZXJRdWVzdGlvbiBvZiBxdWVzdGlvbi5yZXBlYXRlclF1ZXN0aW9ucykge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLm1lZXRzQ29uZGl0aW9uR3JvdXBzKHJlcGVhdGVyUXVlc3Rpb24uY29uZGl0aW9uR3JvdXBzLCBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0sIGFkZGl0aW9uYWxEYXRhKSkge1xuICAgICAgICAgICAgICAgICAgZmlsdGVyZWRSZXBlYXRlclF1ZXN0aW9ucy5wdXNoKHJlcGVhdGVyUXVlc3Rpb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmaWx0ZXJlZFF1ZXN0aW9ucy5wdXNoKHF1ZXN0aW9uKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgc2VjdGlvbi5xdWVzdGlvbnMgPSBmaWx0ZXJlZFF1ZXN0aW9ucztcbiAgICAgICAgZmlsdGVyZWRTZWN0aW9ucy5wdXNoKHNlY3Rpb24pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmlsdGVyZWRTZWN0aW9ucztcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgZWFjaCBjb25kaXRpb24gZ3JvdXBzIGNvbmRpdGlvbnMgaGF2ZSBiZWVuIG1ldC5cbiAgICogQHBhcmFtIGNvbmRpdGlvbkdyb3VwcyBUaGUgYXJyYXkgb2YgY29uZGl0aW9uIGdyb3Vwcy5cbiAgICogQHBhcmFtIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSBUaGUgY3VycmVudCBmb3JtIGRhdGEsIGNhbiBiZSBudWxsL3VuZGVmaW5lZC5cbiAgICogQHJldHVybnMgQSBib29sZWFuIHN0YXRpbmcgaWYgdGhlIGNvbmRpdGlvbiBncm91cHMgY29uZGl0aW9ucyBoYXMgYmVlbiBtZXQuXG4gICAqIEBhdXRob3IgV2lsbCBQb3Vsc29uXG4gICAqL1xuICBwcml2YXRlIG1lZXRzQ29uZGl0aW9uR3JvdXBzKFxuICAgIGNvbmRpdGlvbkdyb3VwczogQXJyYXk8Q29uZGl0aW9uR3JvdXA+LFxuICAgIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybTogRm9ybUdyb3VwIHwgbnVsbCxcbiAgICBhZGRpdGlvbmFsRGF0YT86IE9iamVjdFxuICApOiBib29sZWFuIHtcbiAgICBpZiAoIWNvbmRpdGlvbkdyb3VwcyB8fCBjb25kaXRpb25Hcm91cHMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbmRpdGlvbkdyb3Vwcy5ldmVyeSgoeCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMubWVldHNDb25kaXRpb25Hcm91cCh4LCBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0sIGFkZGl0aW9uYWxEYXRhKSA9PT0gdHJ1ZTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYSBjb25kaXRpb24gZ3JvdXBzIGNvbmRpdGlvbnMgaGF2ZSBiZWVuIG1ldC5cbiAgICogQHBhcmFtIGNvbmRpdGlvbkdyb3VwIFRoZSBjb25kaXRpb24gZ3JvdXAgdG8gY2hlY2suXG4gICAqIEBwYXJhbSBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0gVGhlIGN1cnJlbnQgZm9ybSBkYXRhLCBjYW4gYmUgbnVsbC91bmRlZmluZWQuXG4gICAqIEByZXR1cm5zIEEgYm9vbGVhbiBzdGF0aW5nIGlmIHRoZSBjb25kaXRpb24gZ3JvdXAgY29uZGl0aW9ucyBoYXMgYmVlbiBtZXQuXG4gICAqIEBhdXRob3IgV2lsbCBQb3Vsc29uXG4gICAqL1xuICBwcml2YXRlIG1lZXRzQ29uZGl0aW9uR3JvdXAoXG4gICAgY29uZGl0aW9uR3JvdXA6IENvbmRpdGlvbkdyb3VwLFxuICAgIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybTogRm9ybUdyb3VwIHwgbnVsbCxcbiAgICBhZGRpdGlvbmFsRGF0YT86IE9iamVjdFxuICApOiBib29sZWFuIHtcbiAgICBpZiAoIWNvbmRpdGlvbkdyb3VwLmNvbmRpdGlvbnMgfHwgY29uZGl0aW9uR3JvdXAuY29uZGl0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdHMgPSBbXTtcblxuICAgIGZvciAoY29uc3QgY29uZGl0aW9uIG9mIGNvbmRpdGlvbkdyb3VwLmNvbmRpdGlvbnMpIHtcbiAgICAgIHJlc3VsdHMucHVzaCh0aGlzLm1lZXRzQ29uZGl0aW9uKGNvbmRpdGlvbiwgY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtLCBhZGRpdGlvbmFsRGF0YSkpO1xuICAgIH1cblxuICAgIHN3aXRjaCAoY29uZGl0aW9uR3JvdXAucmVsYXRpb25zaGlwKSB7XG4gICAgICBjYXNlIENvbmRpdGlvblJlbGF0aW9uc2hpcC5FdmVyeTpcbiAgICAgICAgcmV0dXJuIHJlc3VsdHMuZXZlcnkoKHgpID0+IHtcbiAgICAgICAgICByZXR1cm4geCA9PT0gdHJ1ZTtcbiAgICAgICAgfSk7XG4gICAgICBjYXNlIENvbmRpdGlvblJlbGF0aW9uc2hpcC5Bbnk6XG4gICAgICAgIHJldHVybiAhIXJlc3VsdHMuZmluZCgoeCkgPT4ge1xuICAgICAgICAgIHJldHVybiB4ID09PSB0cnVlO1xuICAgICAgICB9KTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYSBjb25kaXRpb24gaGFzIGJlZW4gbWV0LlxuICAgKiBAcGFyYW0gY29uZGl0aW9uIFRoZSBjb25kaXRpb24gdG8gY2hlY2suXG4gICAqIEBwYXJhbSBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0gVGhlIGN1cnJlbnQgZm9ybSBkYXRhLCBjYW4gYmUgbnVsbC91bmRlZmluZWQuXG4gICAqIEByZXR1cm5zIEEgYm9vbGVhbiBzdGF0aW5nIGlmIHRoZSBjb25kaXRpb24gZ3JvdXAgY29uZGl0aW9ucyBoYXMgYmVlbiBtZXQuXG4gICAqIEBhdXRob3IgV2lsbCBQb3Vsc29uXG4gICAqL1xuICBwcml2YXRlIG1lZXRzQ29uZGl0aW9uKGNvbmRpdGlvbjogQ29uZGl0aW9uLCBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm06IEZvcm1Hcm91cCwgYWRkaXRpb25hbERhdGE/OiBPYmplY3QpOiBib29sZWFuIHtcbiAgICBjb25zdCB2MXM6IEFycmF5PGFueT4gPSB0aGlzLmdldFZhbHVlc0ZvckFycmF5KGNvbmRpdGlvbi52MXMsIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSwgYWRkaXRpb25hbERhdGEpO1xuICAgIGNvbnN0IHYyczogQXJyYXk8YW55PiA9IHRoaXMuZ2V0VmFsdWVzRm9yQXJyYXkoY29uZGl0aW9uLnYycywgY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtLCBhZGRpdGlvbmFsRGF0YSk7XG5cbiAgICBsZXQgcmVzdWx0ID0gZmFsc2U7XG5cbiAgICBzd2l0Y2ggKGNvbmRpdGlvbi50eXBlKSB7XG4gICAgICBjYXNlIENvbmRpdGlvblR5cGUuRXhjbHVkZXM6XG4gICAgICAgIHJlc3VsdCA9ICB2MXMuZmlsdGVyKCh2MSkgPT4ge1xuICAgICAgICAgIHJldHVybiB2MnMuaW5kZXhPZih2MSkgPiAtMTtcbiAgICAgICAgfSkubGVuZ3RoID09PSAwO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgQ29uZGl0aW9uVHlwZS5JbmNsdWRlczpcbiAgICAgICAgcmVzdWx0ID0gdjFzLmZpbHRlcigodjEpID0+IHtcbiAgICAgICAgICByZXR1cm4gdjJzLmluZGV4T2YodjEpID4gLTE7XG4gICAgICAgIH0pLmxlbmd0aCAhPT0gMDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBmb3IgKGxldCB2MiBvZiB2MnMpIHtcbiAgICAgICAgICBmb3IgKGxldCB2MSBvZiB2MXMpIHtcbiAgICAgICAgICAgIHN3aXRjaCAoY29uZGl0aW9uLnR5cGUpIHtcbiAgICAgICAgICAgICAgY2FzZSBDb25kaXRpb25UeXBlLkVxdWFsVG86XG4gICAgICAgICAgICAgICAgdjEgPSB0aGlzLmdldFN0cmluZ0ZvclZhbHVlKHYxKTtcbiAgICAgICAgICAgICAgICB2MiA9IHRoaXMuZ2V0U3RyaW5nRm9yVmFsdWUodjIpO1xuICAgICAgICAgICAgICAgIGlmICh2MSA9PT0gdjIpIHsgcmVzdWx0ID0gdHJ1ZTsgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICBjYXNlIENvbmRpdGlvblR5cGUuTm90RXF1YWxUbzpcbiAgICAgICAgICAgICAgICB2MSA9IHRoaXMuZ2V0U3RyaW5nRm9yVmFsdWUodjEpO1xuICAgICAgICAgICAgICAgIHYyID0gdGhpcy5nZXRTdHJpbmdGb3JWYWx1ZSh2Mik7XG4gICAgICAgICAgICAgICAgaWYgKHYxICE9PSB2MikgeyByZXN1bHQgPSB0cnVlOyB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgQ29uZGl0aW9uVHlwZS5HcmVhdGVyVGhhbjpcbiAgICAgICAgICAgICAgICB2MSA9IHBhcnNlRmxvYXQodjEpO1xuICAgICAgICAgICAgICAgIHYyID0gcGFyc2VGbG9hdCh2Mik7XG4gICAgICAgICAgICAgICAgaWYgKHYxID49IHYyKSB7IHJlc3VsdCA9IHRydWU7IH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgY2FzZSBDb25kaXRpb25UeXBlLkxlc3NUaGFuOlxuICAgICAgICAgICAgICAgIHYxID0gcGFyc2VGbG9hdCh2MSk7XG4gICAgICAgICAgICAgICAgdjIgPSBwYXJzZUZsb2F0KHYyKTtcbiAgICAgICAgICAgICAgICBpZiAodjEgPD0gdjIpIHsgcmVzdWx0ID0gdHJ1ZTsgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIGdldFN0cmluZ0ZvclZhbHVlKHZhbHVlKSB7XG4gICAgc3dpdGNoICh2YWx1ZSkge1xuICAgICAgY2FzZSBudWxsOlxuICAgICAgICByZXR1cm4gJ251bGwnO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHZhbHVlLnRvU3RyaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGN1cnJlbnQgdmFsdWVzIGZvciBhbiBhcnJheSBvZiBzdHJpbmdzLlxuICAgKiBAcGFyYW0gcGF0aHMgVGhlIGFycmF5IG9mIHN0cmluZ3MgdG8gY2hlY2suXG4gICAqIEBwYXJhbSBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0gVGhlIGN1cnJlbnQgZm9ybSBkYXRhLCBjYW4gYmUgbnVsbC91bmRlZmluZWQuXG4gICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHN0cmluZ3MvdmFsdWVzXG4gICAqIEBhdXRob3IgV2lsbCBQb3Vsc29uXG4gICAqL1xuICBwcml2YXRlIGdldFZhbHVlc0ZvckFycmF5KHBhdGhzOiBBcnJheTxzdHJpbmc+LCBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm06IEZvcm1Hcm91cCwgYWRkaXRpb25hbERhdGE/OiBPYmplY3QpOiBBcnJheTxhbnk+IHtcbiAgICBpZiAoY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtKSB7XG4gICAgICBjb25zdCB2YWx1ZXMgPSBbXTtcbiAgICAgIGZvciAoY29uc3QgcGF0aCBvZiBwYXRocykge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZ2V0VmFsdWVGb3JTdHJpbmcocGF0aCwgY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtLCBhZGRpdGlvbmFsRGF0YSk7XG4gICAgICAgIHZhbHVlcy5wdXNoKHZhbHVlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2YWx1ZXM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBwYXRocztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhIGN1cnJlbnQgdmFsdWUgZm9yIGEgc3RyaW5nLlxuICAgKiBAcGFyYW0gcGF0aCBUaGUgc3RyaW5nIHZhbHVlIHRvIGNoZWNrLlxuICAgKiBAcGFyYW0gY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtIFRoZSBjdXJyZW50IGZvcm0gZGF0YSwgY2FuIGJlIG51bGwvdW5kZWZpbmVkLlxuICAgKiBAcmV0dXJucyBBIHN0cmluZy92YWx1ZS5cbiAgICogQGF1dGhvciBXaWxsIFBvdWxzb25cbiAgICovXG4gIHByaXZhdGUgZ2V0VmFsdWVGb3JTdHJpbmcocGF0aDogc3RyaW5nLCBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm06IEZvcm1Hcm91cCwgYWRkaXRpb25hbERhdGE/OiBPYmplY3QpIHtcbiAgICBpZiAoY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtKSB7XG4gICAgICBpZiAoIWFkZGl0aW9uYWxEYXRhKSB7XG4gICAgICAgIGFkZGl0aW9uYWxEYXRhID0ge307XG4gICAgICB9XG4gICAgICBjb25zdCBjb250cm9sID0gY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtLmdldChwYXRoKTtcbiAgICAgIGNvbnN0IHZhbHVlID0gY29udHJvbCA/IGNvbnRyb2wudmFsdWUgOiB0aGlzLmNvbnZlcnRTdHJpbmdUb1ZhbHVlKHBhdGgpO1xuICAgICAgcmV0dXJuICBfLmdldChhZGRpdGlvbmFsRGF0YSwgcGF0aCwgdmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5jb252ZXJ0U3RyaW5nVG9WYWx1ZShwYXRoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgYSBzdHJpbmcgdG8gYSB2YWx1ZS5cbiAgICogRWcuIHRydWUvZmFsc2UuXG4gICAqIEBwYXJhbSBwYXRoIFRoZSBzdHJpbmcgdmFsdWUgdG8gY2hlY2sgZm9yIGNvbnZlcnNpb247XG4gICAqIEByZXR1cm5zIEVpdGhlciBhIHN0cmluZyBvciB0aGUgY29udmVydGVkIHZhbHVlLlxuICAgKiBAYXV0aG9yIFdpbGwgUG91bHNvblxuICAgKi9cbiAgcHJpdmF0ZSBjb252ZXJ0U3RyaW5nVG9WYWx1ZShwYXRoOiBzdHJpbmcpIHtcbiAgICBzd2l0Y2ggKHBhdGgpIHtcbiAgICAgIGNhc2UgJ3RydWUnOlxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIGNhc2UgJ2ZhbHNlJzpcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgY2FzZSAnbnVsbCc6XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHBhdGg7XG4gICAgfVxuICB9XG59XG4iXX0=
535
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ2xvd2dyZWVuL2dnLXF1ZXN0aW9ubmFpcmUtdjIvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvZmlsdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM3RSxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQzs7QUFFNUI7SUFLRTtJQUFnQixDQUFDO0lBRWpCOzs7Ozs7T0FNRzs7Ozs7Ozs7O0lBQ0ksc0NBQWM7Ozs7Ozs7O0lBQXJCLFVBQXNCLFFBQXdCLEVBQUUsd0JBQTBDLEVBQUUsY0FBdUI7OztZQUMzRyxnQkFBZ0IsR0FBRyxFQUFFOztZQUMzQixLQUFzQixJQUFBLGFBQUEsaUJBQUEsUUFBUSxDQUFBLGtDQUFBLHdEQUFFO2dCQUEzQixJQUFNLE9BQU8scUJBQUE7Z0JBQ2hCLElBQUksSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsd0JBQXdCLEVBQUUsY0FBYyxDQUFDLEVBQUU7O3dCQUMxRixpQkFBaUIsR0FBRyxFQUFFOzt3QkFDNUIsS0FBdUIsSUFBQSxLQUFBLGlCQUFBLE9BQU8sQ0FBQyxTQUFTLENBQUEsZ0JBQUEsNEJBQUU7NEJBQXJDLElBQU0sUUFBUSxXQUFBOzRCQUNqQixJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFLHdCQUF3QixFQUFFLGNBQWMsQ0FBQyxFQUFFO2dDQUVqRyxJQUFJLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRTs7d0NBQ3hCLHlCQUF5QixHQUFHLEVBQUU7O3dDQUNwQyxLQUErQixJQUFBLEtBQUEsaUJBQUEsUUFBUSxD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LElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUM7WUFDdkUsT0FBUSxDQUFDLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDNUM7YUFBTTtZQUNMLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3hDO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7T0FNRzs7Ozs7Ozs7O0lBQ0ssNENBQW9COzs7Ozs7OztJQUE1QixVQUE2QixJQUFZO1FBQ3ZDLFFBQVEsSUFBSSxFQUFFO1lBQ1osS0FBSyxNQUFNO2dCQUNULE9BQU8sSUFBSSxDQUFDO1lBQ2QsS0FBSyxPQUFPO2dCQUNWLE9BQU8sS0FBSyxDQUFDO1lBQ2YsS0FBSyxNQUFNO2dCQUNULE9BQU8sSUFBSSxDQUFDO1lBQ2Q7Z0JBQ0UsT0FBTyxJQUFJLENBQUM7U0FDZjtJQUNILENBQUM7O2dCQXZRRixVQUFVLFNBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzs7Ozt3QkFYRDtDQWlSQyxBQXhRRCxJQXdRQztTQXJRWSxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2VjdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvc2VjdGlvbic7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb25kaXRpb24gfSBmcm9tICcuLi9pbnRlcmZhY2VzL2NvbmRpdGlvbic7XG5pbXBvcnQgeyBDb25kaXRpb25Hcm91cCB9IGZyb20gJy4uL2ludGVyZmFjZXMvY29uZGl0aW9uLWdyb3VwJztcbmltcG9ydCB7IENvbmRpdGlvblR5cGUgfSBmcm9tICcuLi9lbnVtcy9jb25kaXRpb24tdHlwZS5lbnVtJztcbmltcG9ydCB7IENvbmRpdGlvblJlbGF0aW9uc2hpcCB9IGZyb20gJy4uL2VudW1zL2NvbmRpdGlvbi1yZWxhdGlvbnNoaXAuZW51bSc7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEZpbHRlclNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgLyoqXG4gICAqIEZpbHRlcnMgYW4gYXJyYXkgb2Ygc2VjdGlvbnMgYmFzZWQgb24gdGhlaXIgY29uZGl0aW9uIGdyb3Vwcy5cbiAgICogQHBhcmFtIHNlY3Rpb25zIFRoZSBhcnJheSBvZiBzZWN0aW9ucyB0byBmaWx0ZXIuXG4gICAqIEBwYXJhbSBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0gVGhlIGN1cnJlbnQgZm9ybSBkYXRhLCBjYW4gYmUgbnVsbC91bmRlZmluZWQuXG4gICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIGZpbHRlcmVkIHNlY3Rpb25zIHdpdGggdGhlaXIgZmlsdGVyZWQgcXVlc3Rpb25zLlxuICAgKiBAYXV0aG9yIFdpbGwgUG91bHNvblxuICAgKi9cbiAgcHVibGljIGZpbHRlclNlY3Rpb25zKHNlY3Rpb25zOiBBcnJheTxTZWN0aW9uPiwgY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtOiBGb3JtR3JvdXAgfCBudWxsLCBhZGRpdGlvbmFsRGF0YT86IE9iamVjdCk6IEFycmF5PFNlY3Rpb24+IHtcbiAgICBjb25zdCBmaWx0ZXJlZFNlY3Rpb25zID0gW107XG4gICAgZm9yIChjb25zdCBzZWN0aW9uIG9mIHNlY3Rpb25zKSB7XG4gICAgICBpZiAodGhpcy5tZWV0c0NvbmRpdGlvbkdyb3VwcyhzZWN0aW9uLmNvbmRpdGlvbkdyb3VwcywgY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtLCBhZGRpdGlvbmFsRGF0YSkpIHtcbiAgICAgICAgY29uc3QgZmlsdGVyZWRRdWVzdGlvbnMgPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBxdWVzdGlvbiBvZiBzZWN0aW9uLnF1ZXN0aW9ucykge1xuICAgICAgICAgIGlmICh0aGlzLm1lZXRzQ29uZGl0aW9uR3JvdXBzKHF1ZXN0aW9uLmNvbmRpdGlvbkdyb3VwcywgY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtLCBhZGRpdGlvbmFsRGF0YSkpIHtcblxuICAgICAgICAgICAgaWYgKHF1ZXN0aW9uLnJlcGVhdGVyUXVlc3Rpb25zKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGZpbHRlcmVkUmVwZWF0ZXJRdWVzdGlvbnMgPSBbXTtcbiAgICAgICAgICAgICAgZm9yIChjb25zdCByZXBlYXRlclF1ZXN0aW9uIG9mIHF1ZXN0aW9uLnJlcGVhdGVyUXVlc3Rpb25zKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubWVldHNDb25kaXRpb25Hcm91cHMocmVwZWF0ZXJRdWVzdGlvbi5jb25kaXRpb25Hcm91cHMsIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSwgYWRkaXRpb25hbERhdGEpKSB7XG4gICAgICAgICAgICAgICAgICBmaWx0ZXJlZFJlcGVhdGVyUXVlc3Rpb25zLnB1c2gocmVwZWF0ZXJRdWVzdGlvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChxdWVzdGlvbi5mZXRjaFBhdGgpIHtcbiAgICAgICAgICAgICAgbGV0IG9wdGlvbnMgPSBhZGRpdGlvbmFsRGF0YVtxdWVzdGlvbi5mZXRjaFBhdGhdO1xuICAgICAgICAgICAgICBpZiAocXVlc3Rpb24uZmV0Y2hTZWxlY3RvcnMgJiYgcXVlc3Rpb24uZmV0Y2hTZWxlY3RvcnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMuZ2V0VmFsdWVzRm9yQXJyYXkocXVlc3Rpb24uZmV0Y2hTZWxlY3RvcnMsIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSwgYWRkaXRpb25hbERhdGEpO1xuICAgICAgICAgICAgICAgIG9wdGlvbnMgPSBfLmdldChhZGRpdGlvbmFsRGF0YVtxdWVzdGlvbi5mZXRjaFBhdGhdLCB2YWx1ZXMpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIG9wdGlvbnMgPSB0aGlzLmdldEZpbmFsRmV0Y2hBcnJheShvcHRpb25zKTtcblxuICAgICAgICAgICAgICBpZiAoIXF1ZXN0aW9uLnNlbGVjdE9wdGlvbnMpIHtcbiAgICAgICAgICAgICAgICBxdWVzdGlvbi5zZWxlY3RPcHRpb25zID0gW107XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBxdWVzdGlvbi5zZWxlY3RPcHRpb25zID0gcXVlc3Rpb24uc2VsZWN0T3B0aW9ucy5jb25jYXQob3B0aW9ucyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGZpbHRlcmVkUXVlc3Rpb25zLnB1c2gocXVlc3Rpb24pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBzZWN0aW9uLnF1ZXN0aW9ucyA9IGZpbHRlcmVkUXVlc3Rpb25zO1xuICAgICAgICBmaWx0ZXJlZFNlY3Rpb25zLnB1c2goc2VjdGlvbik7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmaWx0ZXJlZFNlY3Rpb25zO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGaW5hbEZldGNoQXJyYXkoaXRlbXM6IGFueSk6IEFycmF5PE9iamVjdD4ge1xuICAgIGlmICghaXRlbXMpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoaXRlbXMpKSB7XG4gICAgICBpdGVtcyA9IF8ua2V5cyhpdGVtcyk7XG4gICAgfVxuICAgIGlmIChpdGVtcy5sZW5ndGggPD0gMCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvbnN0IGNvbnZlcnRlZEFycmF5OiBBcnJheTxPYmplY3Q+ID0gW107XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7XG4gICAgICBpZiAoaXRlbSkge1xuICAgICAgICBpZiAoaXRlbSBpbnN0YW5jZW9mIE9iamVjdCAmJiBpdGVtLnZhbHVlICYmIGl0ZW0ubGFiZWwpIHtcbiAgICAgICAgICBjb252ZXJ0ZWRBcnJheS5wdXNoKGl0ZW0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnZlcnRlZEFycmF5LnB1c2goe2xhYmVsOiB0aGlzLnVwcGVyY2FzZShpdGVtKSwgdmFsdWU6IGl0ZW19KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY29udmVydGVkQXJyYXk7XG4gIH1cblxuICBwcml2YXRlIHVwcGVyY2FzZShpdGVtOiBhbnkpIHtcbiAgICByZXR1cm4gaXRlbS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGl0ZW0uc2xpY2UoMSk7XG4gIH1cblxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgZWFjaCBjb25kaXRpb24gZ3JvdXBzIGNvbmRpdGlvbnMgaGF2ZSBiZWVuIG1ldC5cbiAgICogQHBhcmFtIGNvbmRpdGlvbkdyb3VwcyBUaGUgYXJyYXkgb2YgY29uZGl0aW9uIGdyb3Vwcy5cbiAgICogQHBhcmFtIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSBUaGUgY3VycmVudCBmb3JtIGRhdGEsIGNhbiBiZSBudWxsL3VuZGVmaW5lZC5cbiAgICogQHJldHVybnMgQSBib29sZWFuIHN0YXRpbmcgaWYgdGhlIGNvbmRpdGlvbiBncm91cHMgY29uZGl0aW9ucyBoYXMgYmVlbiBtZXQuXG4gICAqIEBhdXRob3IgV2lsbCBQb3Vsc29uXG4gICAqL1xuICBwcml2YXRlIG1lZXRzQ29uZGl0aW9uR3JvdXBzKFxuICAgIGNvbmRpdGlvbkdyb3VwczogQXJyYXk8Q29uZGl0aW9uR3JvdXA+LFxuICAgIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybTogRm9ybUdyb3VwIHwgbnVsbCxcbiAgICBhZGRpdGlvbmFsRGF0YT86IE9iamVjdFxuICApOiBib29sZWFuIHtcbiAgICBpZiAoIWNvbmRpdGlvbkdyb3VwcyB8fCBjb25kaXRpb25Hcm91cHMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbmRpdGlvbkdyb3Vwcy5ldmVyeSgoeCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMubWVldHNDb25kaXRpb25Hcm91cCh4LCBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0sIGFkZGl0aW9uYWxEYXRhKSA9PT0gdHJ1ZTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYSBjb25kaXRpb24gZ3JvdXBzIGNvbmRpdGlvbnMgaGF2ZSBiZWVuIG1ldC5cbiAgICogQHBhcmFtIGNvbmRpdGlvbkdyb3VwIFRoZSBjb25kaXRpb24gZ3JvdXAgdG8gY2hlY2suXG4gICAqIEBwYXJhbSBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0gVGhlIGN1cnJlbnQgZm9ybSBkYXRhLCBjYW4gYmUgbnVsbC91bmRlZmluZWQuXG4gICAqIEByZXR1cm5zIEEgYm9vbGVhbiBzdGF0aW5nIGlmIHRoZSBjb25kaXRpb24gZ3JvdXAgY29uZGl0aW9ucyBoYXMgYmVlbiBtZXQuXG4gICAqIEBhdXRob3IgV2lsbCBQb3Vsc29uXG4gICAqL1xuICBwcml2YXRlIG1lZXRzQ29uZGl0aW9uR3JvdXAoXG4gICAgY29uZGl0aW9uR3JvdXA6IENvbmRpdGlvbkdyb3VwLFxuICAgIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybTogRm9ybUdyb3VwIHwgbnVsbCxcbiAgICBhZGRpdGlvbmFsRGF0YT86IE9iamVjdFxuICApOiBib29sZWFuIHtcbiAgICBpZiAoIWNvbmRpdGlvbkdyb3VwLmNvbmRpdGlvbnMgfHwgY29uZGl0aW9uR3JvdXAuY29uZGl0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdHMgPSBbXTtcblxuICAgIGZvciAoY29uc3QgY29uZGl0aW9uIG9mIGNvbmRpdGlvbkdyb3VwLmNvbmRpdGlvbnMpIHtcbiAgICAgIHJlc3VsdHMucHVzaCh0aGlzLm1lZXRzQ29uZGl0aW9uKGNvbmRpdGlvbiwgY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtLCBhZGRpdGlvbmFsRGF0YSkpO1xuICAgIH1cblxuICAgIHN3aXRjaCAoY29uZGl0aW9uR3JvdXAucmVsYXRpb25zaGlwKSB7XG4gICAgICBjYXNlIENvbmRpdGlvblJlbGF0aW9uc2hpcC5FdmVyeTpcbiAgICAgICAgcmV0dXJuIHJlc3VsdHMuZXZlcnkoKHgpID0+IHtcbiAgICAgICAgICByZXR1cm4geCA9PT0gdHJ1ZTtcbiAgICAgICAgfSk7XG4gICAgICBjYXNlIENvbmRpdGlvblJlbGF0aW9uc2hpcC5Bbnk6XG4gICAgICAgIHJldHVybiAhIXJlc3VsdHMuZmluZCgoeCkgPT4ge1xuICAgICAgICAgIHJldHVybiB4ID09PSB0cnVlO1xuICAgICAgICB9KTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYSBjb25kaXRpb24gaGFzIGJlZW4gbWV0LlxuICAgKiBAcGFyYW0gY29uZGl0aW9uIFRoZSBjb25kaXRpb24gdG8gY2hlY2suXG4gICAqIEBwYXJhbSBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0gVGhlIGN1cnJlbnQgZm9ybSBkYXRhLCBjYW4gYmUgbnVsbC91bmRlZmluZWQuXG4gICAqIEByZXR1cm5zIEEgYm9vbGVhbiBzdGF0aW5nIGlmIHRoZSBjb25kaXRpb24gZ3JvdXAgY29uZGl0aW9ucyBoYXMgYmVlbiBtZXQuXG4gICAqIEBhdXRob3IgV2lsbCBQb3Vsc29uXG4gICAqL1xuICBwcml2YXRlIG1lZXRzQ29uZGl0aW9uKGNvbmRpdGlvbjogQ29uZGl0aW9uLCBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm06IEZvcm1Hcm91cCwgYWRkaXRpb25hbERhdGE/OiBPYmplY3QpOiBib29sZWFuIHtcbiAgICBjb25zdCB2MXM6IEFycmF5PGFueT4gPSB0aGlzLmdldFZhbHVlc0ZvckFycmF5KGNvbmRpdGlvbi52MXMsIGN1cnJlbnRRdWVzdGlvbm5haXJlRm9ybSwgYWRkaXRpb25hbERhdGEpO1xuICAgIGNvbnN0IHYyczogQXJyYXk8YW55PiA9IHRoaXMuZ2V0VmFsdWVzRm9yQXJyYXkoY29uZGl0aW9uLnYycywgY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtLCBhZGRpdGlvbmFsRGF0YSk7XG5cbiAgICBsZXQgcmVzdWx0ID0gZmFsc2U7XG5cbiAgICBzd2l0Y2ggKGNvbmRpdGlvbi50eXBlKSB7XG4gICAgICBjYXNlIENvbmRpdGlvblR5cGUuRXhjbHVkZXM6XG4gICAgICAgIHJlc3VsdCA9ICB2MXMuZmlsdGVyKCh2MSkgPT4ge1xuICAgICAgICAgIHJldHVybiB2MnMuaW5kZXhPZih2MSkgPiAtMTtcbiAgICAgICAgfSkubGVuZ3RoID09PSAwO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgQ29uZGl0aW9uVHlwZS5JbmNsdWRlczpcbiAgICAgICAgcmVzdWx0ID0gdjFzLmZpbHRlcigodjEpID0+IHtcbiAgICAgICAgICByZXR1cm4gdjJzLmluZGV4T2YodjEpID4gLTE7XG4gICAgICAgIH0pLmxlbmd0aCAhPT0gMDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBmb3IgKGxldCB2MiBvZiB2MnMpIHtcbiAgICAgICAgICBmb3IgKGxldCB2MSBvZiB2MXMpIHtcbiAgICAgICAgICAgIHN3aXRjaCAoY29uZGl0aW9uLnR5cGUpIHtcbiAgICAgICAgICAgICAgY2FzZSBDb25kaXRpb25UeXBlLkVxdWFsVG86XG4gICAgICAgICAgICAgICAgdjEgPSB0aGlzLmdldFN0cmluZ0ZvclZhbHVlKHYxKTtcbiAgICAgICAgICAgICAgICB2MiA9IHRoaXMuZ2V0U3RyaW5nRm9yVmFsdWUodjIpO1xuICAgICAgICAgICAgICAgIGlmICh2MSA9PT0gdjIpIHsgcmVzdWx0ID0gdHJ1ZTsgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICBjYXNlIENvbmRpdGlvblR5cGUuTm90RXF1YWxUbzpcbiAgICAgICAgICAgICAgICB2MSA9IHRoaXMuZ2V0U3RyaW5nRm9yVmFsdWUodjEpO1xuICAgICAgICAgICAgICAgIHYyID0gdGhpcy5nZXRTdHJpbmdGb3JWYWx1ZSh2Mik7XG4gICAgICAgICAgICAgICAgaWYgKHYxICE9PSB2MikgeyByZXN1bHQgPSB0cnVlOyB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgQ29uZGl0aW9uVHlwZS5HcmVhdGVyVGhhbjpcbiAgICAgICAgICAgICAgICB2MSA9IHBhcnNlRmxvYXQodjEpO1xuICAgICAgICAgICAgICAgIHYyID0gcGFyc2VGbG9hdCh2Mik7XG4gICAgICAgICAgICAgICAgaWYgKHYxID49IHYyKSB7IHJlc3VsdCA9IHRydWU7IH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgY2FzZSBDb25kaXRpb25UeXBlLkxlc3NUaGFuOlxuICAgICAgICAgICAgICAgIHYxID0gcGFyc2VGbG9hdCh2MSk7XG4gICAgICAgICAgICAgICAgdjIgPSBwYXJzZUZsb2F0KHYyKTtcbiAgICAgICAgICAgICAgICBpZiAodjEgPD0gdjIpIHsgcmVzdWx0ID0gdHJ1ZTsgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIGdldFN0cmluZ0ZvclZhbHVlKHZhbHVlKSB7XG4gICAgc3dpdGNoICh2YWx1ZSkge1xuICAgICAgY2FzZSBudWxsOlxuICAgICAgICByZXR1cm4gJ251bGwnO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHZhbHVlLnRvU3RyaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGN1cnJlbnQgdmFsdWVzIGZvciBhbiBhcnJheSBvZiBzdHJpbmdzLlxuICAgKiBAcGFyYW0gcGF0aHMgVGhlIGFycmF5IG9mIHN0cmluZ3MgdG8gY2hlY2suXG4gICAqIEBwYXJhbSBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm0gVGhlIGN1cnJlbnQgZm9ybSBkYXRhLCBjYW4gYmUgbnVsbC91bmRlZmluZWQuXG4gICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHN0cmluZ3MvdmFsdWVzXG4gICAqIEBhdXRob3IgV2lsbCBQb3Vsc29uXG4gICAqL1xuICBwcml2YXRlIGdldFZhbHVlc0ZvckFycmF5KHBhdGhzOiBBcnJheTxzdHJpbmc+LCBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm06IEZvcm1Hcm91cCwgYWRkaXRpb25hbERhdGE/OiBPYmplY3QpOiBBcnJheTxhbnk+IHtcbiAgICBpZiAoY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtKSB7XG4gICAgICBjb25zdCB2YWx1ZXMgPSBbXTtcbiAgICAgIGZvciAoY29uc3QgcGF0aCBvZiBwYXRocykge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZ2V0VmFsdWVGb3JTdHJpbmcocGF0aCwgY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtLCBhZGRpdGlvbmFsRGF0YSk7XG4gICAgICAgIHZhbHVlcy5wdXNoKHZhbHVlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2YWx1ZXM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBwYXRocztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhIGN1cnJlbnQgdmFsdWUgZm9yIGEgc3RyaW5nLlxuICAgKiBAcGFyYW0gcGF0aCBUaGUgc3RyaW5nIHZhbHVlIHRvIGNoZWNrLlxuICAgKiBAcGFyYW0gY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtIFRoZSBjdXJyZW50IGZvcm0gZGF0YSwgY2FuIGJlIG51bGwvdW5kZWZpbmVkLlxuICAgKiBAcmV0dXJucyBBIHN0cmluZy92YWx1ZS5cbiAgICogQGF1dGhvciBXaWxsIFBvdWxzb25cbiAgICovXG4gIHByaXZhdGUgZ2V0VmFsdWVGb3JTdHJpbmcocGF0aDogc3RyaW5nLCBjdXJyZW50UXVlc3Rpb25uYWlyZUZvcm06IEZvcm1Hcm91cCwgYWRkaXRpb25hbERhdGE/OiBPYmplY3QpIHtcbiAgICBpZiAoY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtKSB7XG4gICAgICBpZiAoIWFkZGl0aW9uYWxEYXRhKSB7XG4gICAgICAgIGFkZGl0aW9uYWxEYXRhID0ge307XG4gICAgICB9XG4gICAgICBjb25zdCBjb250cm9sID0gY3VycmVudFF1ZXN0aW9ubmFpcmVGb3JtLmdldChwYXRoKTtcbiAgICAgIGNvbnN0IHZhbHVlID0gY29udHJvbCA/IGNvbnRyb2wudmFsdWUgOiB0aGlzLmNvbnZlcnRTdHJpbmdUb1ZhbHVlKHBhdGgpO1xuICAgICAgcmV0dXJuICBfLmdldChhZGRpdGlvbmFsRGF0YSwgcGF0aCwgdmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5jb252ZXJ0U3RyaW5nVG9WYWx1ZShwYXRoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgYSBzdHJpbmcgdG8gYSB2YWx1ZS5cbiAgICogRWcuIHRydWUvZmFsc2UuXG4gICAqIEBwYXJhbSBwYXRoIFRoZSBzdHJpbmcgdmFsdWUgdG8gY2hlY2sgZm9yIGNvbnZlcnNpb247XG4gICAqIEByZXR1cm5zIEVpdGhlciBhIHN0cmluZyBvciB0aGUgY29udmVydGVkIHZhbHVlLlxuICAgKiBAYXV0aG9yIFdpbGwgUG91bHNvblxuICAgKi9cbiAgcHJpdmF0ZSBjb252ZXJ0U3RyaW5nVG9WYWx1ZShwYXRoOiBzdHJpbmcpIHtcbiAgICBzd2l0Y2ggKHBhdGgpIHtcbiAgICAgIGNhc2UgJ3RydWUnOlxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIGNhc2UgJ2ZhbHNlJzpcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgY2FzZSAnbnVsbCc6XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHBhdGg7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  import { __awaiter } from 'tslib';
2
- import { get, cloneDeep } from 'lodash';
2
+ import { get, keys, cloneDeep } from 'lodash';
3
3
  import { Injectable, NgModule, defineInjectable, inject, EventEmitter, Inject } from '@angular/core';
4
4
  import { FormBuilder, Validators, FormsModule, ReactiveFormsModule, FormArray } from '@angular/forms';
5
5
 
@@ -71,6 +71,20 @@ class FilterService {
71
71
  if (this.meetsConditionGroups(repeaterQuestion.conditionGroups, currentQuestionnaireForm, additionalData)) ;
72
72
  }
73
73
  }
74
+ if (question.fetchPath) {
75
+ /** @type {?} */
76
+ let options = additionalData[question.fetchPath];
77
+ if (question.fetchSelectors && question.fetchSelectors.length > 0) {
78
+ /** @type {?} */
79
+ const values = this.getValuesForArray(question.fetchSelectors, currentQuestionnaireForm, additionalData);
80
+ options = get(additionalData[question.fetchPath], values);
81
+ }
82
+ options = this.getFinalFetchArray(options);
83
+ if (!question.selectOptions) {
84
+ question.selectOptions = [];
85
+ }
86
+ question.selectOptions = question.selectOptions.concat(options);
87
+ }
74
88
  filteredQuestions.push(question);
75
89
  }
76
90
  }
@@ -80,6 +94,43 @@ class FilterService {
80
94
  }
81
95
  return filteredSections;
82
96
  }
97
+ /**
98
+ * @private
99
+ * @param {?} items
100
+ * @return {?}
101
+ */
102
+ getFinalFetchArray(items) {
103
+ if (!items) {
104
+ return null;
105
+ }
106
+ if (!Array.isArray(items)) {
107
+ items = keys(items);
108
+ }
109
+ if (items.length <= 0) {
110
+ return null;
111
+ }
112
+ /** @type {?} */
113
+ const convertedArray = [];
114
+ for (const item of items) {
115
+ if (item) {
116
+ if (item instanceof Object && item.value && item.label) {
117
+ convertedArray.push(item);
118
+ }
119
+ else {
120
+ convertedArray.push({ label: this.uppercase(item), value: item });
121
+ }
122
+ }
123
+ }
124
+ return convertedArray;
125
+ }
126
+ /**
127
+ * @private
128
+ * @param {?} item
129
+ * @return {?}
130
+ */
131
+ uppercase(item) {
132
+ return item.charAt(0).toUpperCase() + item.slice(1);
133
+ }
83
134
  /**
84
135
  * Checks if each condition groups conditions have been met.
85
136
  * @author Will Poulson