@theseam/ui-common 0.3.5 → 0.3.8

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.
Files changed (37) hide show
  1. package/breadcrumbs/_breadcrumbs-theme.scss +3 -3
  2. package/breadcrumbs/breadcrumbs/breadcrumbs.component.scss +10 -10
  3. package/bundles/theseam-ui-common-dynamic.umd.js +1 -1
  4. package/bundles/theseam-ui-common-dynamic.umd.js.map +1 -1
  5. package/bundles/theseam-ui-common-google-maps.umd.js +39 -7
  6. package/bundles/theseam-ui-common-google-maps.umd.js.map +1 -1
  7. package/bundles/theseam-ui-common-utils.umd.js +83 -5
  8. package/bundles/theseam-ui-common-utils.umd.js.map +1 -1
  9. package/esm2015/dynamic/evaluators/jexl-evaluator/jexl-evaluator.js +2 -2
  10. package/esm2015/google-maps/google-maps-feature-helpers.js +12 -3
  11. package/esm2015/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.component.js +2 -2
  12. package/esm2015/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.directive.js +1 -1
  13. package/esm2015/google-maps/google-maps.service.js +15 -5
  14. package/esm2015/utils/geo-json/coerce-feature-collection.js +1 -1
  15. package/esm2015/utils/geo-json/geo-json-to-area.js +1 -1
  16. package/esm2015/utils/geo-json/is-feature-collection.validator.js +1 -1
  17. package/esm2015/utils/geo-json/is-only-geometry-types.js +1 -1
  18. package/esm2015/utils/geo-json/is-only-geometry-types.validator.js +1 -1
  19. package/esm2015/utils/geo-json/merge-polygons.js +1 -1
  20. package/esm2015/utils/geo-json/min-max-points.validator.js +56 -0
  21. package/esm2015/utils/geo-json/no-inner-rings.validator.js +1 -1
  22. package/esm2015/utils/geo-json/no-kinks.validator.js +2 -2
  23. package/esm2015/utils/geo-json/split-multi-polygons.js +1 -1
  24. package/esm2015/utils/public-api.js +2 -1
  25. package/fesm2015/theseam-ui-common-dynamic.js +1 -1
  26. package/fesm2015/theseam-ui-common-dynamic.js.map +1 -1
  27. package/fesm2015/theseam-ui-common-google-maps.js +26 -7
  28. package/fesm2015/theseam-ui-common-google-maps.js.map +1 -1
  29. package/fesm2015/theseam-ui-common-utils.js +59 -6
  30. package/fesm2015/theseam-ui-common-utils.js.map +1 -1
  31. package/framework/top-bar/_top-bar-theme.scss +5 -5
  32. package/google-maps/google-maps-feature-helpers.d.ts +1 -0
  33. package/google-maps/theseam-ui-common-google-maps.metadata.json +1 -1
  34. package/package.json +1 -1
  35. package/utils/geo-json/min-max-points.validator.d.ts +3 -0
  36. package/utils/public-api.d.ts +1 -0
  37. package/utils/theseam-ui-common-utils.metadata.json +1 -1
@@ -77,6 +77,15 @@ export function fixPathDifferentStartingAndEndingPoint(coordinates) {
77
77
  }
78
78
  coordinates.push(coordinates[0]);
79
79
  }
80
+ export function polygonHasValidPathsLengths(polygon, minPointsInValidPath = 3) {
81
+ const paths = polygon.getPaths().getArray();
82
+ for (const path of paths) {
83
+ if (path.getLength() < minPointsInValidPath) {
84
+ return false;
85
+ }
86
+ }
87
+ return true;
88
+ }
80
89
  export function polygonCoordinates(polygon) {
81
90
  return polygon.getArray().map(linRing => {
82
91
  const coords = linRing.getArray().map(x => [x.lng(), x.lat()]);
@@ -108,9 +117,9 @@ export function featureContains(featureA, featureB) {
108
117
  return booleanContains(polygonA, polygonB);
109
118
  }
110
119
  export function createDataFeatureFromPolygon(polygon) {
111
- const arr = polygon.getPath().getArray();
120
+ const arr = polygon.getPaths().getArray().map(x => x.getArray());
112
121
  return new google.maps.Data.Feature({
113
- geometry: new google.maps.Data.Polygon([arr])
122
+ geometry: new google.maps.Data.Polygon(arr)
114
123
  });
115
124
  }
116
125
  export function getBoundsWithAllFeatures(data) {
@@ -174,4 +183,4 @@ export function createFeatureChangeObservable(data, ngZone) {
174
183
  };
175
184
  });
176
185
  }
177
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLW1hcHMtZmVhdHVyZS1oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2dvb2dsZS1tYXBzL2dvb2dsZS1tYXBzLWZlYXR1cmUtaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUU3RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBRWpDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBQzdELE9BQU8sZUFBZSxNQUFNLHdCQUF3QixDQUFBO0FBQ3BELE9BQU8sRUFDTCxZQUFZLElBQUksa0JBQWtCLEVBQ2xDLE9BQU8sSUFBSSxhQUFhLEdBQ3pCLE1BQU0sZUFBZSxDQUFBO0FBRXRCLE1BQU0sQ0FBTixJQUFZLHNCQUVYO0FBRkQsV0FBWSxzQkFBc0I7SUFDaEMsMERBQWdDLENBQUE7QUFDbEMsQ0FBQyxFQUZXLHNCQUFzQixLQUF0QixzQkFBc0IsUUFFakM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsWUFBb0I7SUFDdkQsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLHNCQUFzQixDQUFDO1NBQ3pDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssS0FBSyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtBQUN0RCxDQUFDO0FBRUQsTUFBTSxVQUFVLGlCQUFpQixDQUFDLE9BQWlDO0lBQ2pFLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsc0JBQXNCLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDekUsT0FBTyxxQkFBcUIsQ0FBQyxVQUFVLENBQUMsQ0FBQTtBQUMxQyxDQUFDO0FBRUQsTUFBTSxVQUFVLGtCQUFrQixDQUFDLE9BQWlDLEVBQUUsVUFBbUI7SUFDdkYsT0FBTyxDQUFDLFdBQVcs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QyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQ3JDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFBO2lCQUNqRDtZQUNILENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDTCxDQUFDLENBQUMsQ0FBQTtRQUVGLE9BQU8sR0FBRyxFQUFFO1lBQ1YsU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQTtRQUNyRCxDQUFDLENBQUE7SUFDSCxDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nXG5pbXBvcnQgeyBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnXG5cbmltcG9ydCB7IG5vdE51bGxPclVuZGVmaW5lZCB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi91dGlscydcbmltcG9ydCBib29sZWFuQ29udGFpbnMgZnJvbSAnQHR1cmYvYm9vbGVhbi1jb250YWlucydcbmltcG9ydCB7XG4gIG11bHRpUG9seWdvbiBhcyB0dXJmanNNdWx0aVBvbHlnb24sXG4gIHBvbHlnb24gYXMgdHVyZmpzUG9seWdvbixcbn0gZnJvbSAnQHR1cmYvaGVscGVycydcblxuZXhwb3J0IGVudW0gQXBwRmVhdHVyZVByb3BlcnR5TmFtZSB7XG4gIElzU2VsZWN0ZWQgPSBgX19hcHBfX2lzU2VsZWN0ZWRgXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0FwcEZlYXR1cmVQcm9wZXJ0eShwcm9wZXJ0eU5hbWU6IHN0cmluZyk6IHByb3BlcnR5TmFtZSBpcyBBcHBGZWF0dXJlUHJvcGVydHlOYW1lIHtcbiAgcmV0dXJuIE9iamVjdC52YWx1ZXMoQXBwRmVhdHVyZVByb3BlcnR5TmFtZSlcbiAgICAuZmluZEluZGV4KHZhbHVlID0+IHZhbHVlID09PSBwcm9wZXJ0eU5hbWUpICE9PSAtMVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNGZWF0dXJlU2VsZWN0ZWQoZmVhdHVyZTogZ29vZ2xlLm1hcHMuRGF0YS5GZWF0dXJlKTogYm9vbGVhbiB7XG4gIGNvbnN0IGlzU2VsZWN0ZWQgPSBmZWF0dXJlLmdldFByb3BlcnR5KEFwcEZlYXR1cmVQcm9wZXJ0eU5hbWUuSXNTZWxlY3RlZClcbiAgcmV0dXJuIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShpc1NlbGVjdGVkKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0RmVhdHVyZVNlbGVjdGVkKGZlYXR1cmU6IGdvb2dsZS5tYXBzLkRhdGEuRmVhdHVyZSwgaXNTZWxlY3RlZDogYm9vbGVhbik6IHZvaWQge1xuICBmZWF0dXJlLnNldFByb3BlcnR5KEFwcEZlYXR1cmVQcm9wZXJ0eU5hbWUuSXNTZWxlY3RlZCwgaXNTZWxlY3RlZClcbn1cblxuLy8gVE9ETzogQ2hlY2sgcGVyZm9ybWFuY2Ugb2YgY2xvbmluZyBhIGdvb2dsZS5tYXBzLkRhdGEgaW5zdGFuY2UsIHNvIHRoZVxuLy8gcHJvcGVydGllcyBjYW4gYmUgcmVtb3ZlZCB3aXRoIHRoZSBnb29nbGUgbWFwcyBhcGksIGluc3RlYWQgb2Ygb24gdGhlXG4vLyByZXN1bHRpbmcganNvbi5cbmV4cG9ydCBmdW5jdGlvbiBzdHJpcEFwcEZlYXR1cmVQcm9wZXJ0aWVzRnJvbUpzb24oanNvbjogYW55KSB7XG4gIGlmIChub3ROdWxsT3JVbmRlZmluZWQoanNvbikgJiYgQXJyYXkuaXNBcnJheShqc29uPy5mZWF0dXJlcykpIHtcbiAgICBmb3IgKGNvbnN0IGZlYXR1cmUgb2YganNvbi5mZWF0dXJlcykge1xuICAgICAgaWYgKG5vdE51bGxPclVuZGVmaW5lZChmZWF0dXJlPy5wcm9wZXJ0aWVzKSkge1xuICAgICAgICBmb3IgKGNvbnN0IGsgb2YgT2JqZWN0LmtleXMoZmVhdHVyZS5wcm9wZXJ0aWVzKSkge1xuICAgICAgICAgIGlmIChpc0FwcEZlYXR1cmVQcm9wZXJ0eShrKSkge1xuICAgICAgICAgICAgZmVhdHVyZS5wcm9wZXJ0aWVzW2tdID0gdW5kZWZpbmVkXG4gICAgICAgICAgICBkZWxldGUgZmVhdHVyZS5wcm9wZXJ0aWVzW2tdXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogU2VhcmNoZXMgZm9yIGEgRmVhdHVyZSBpbiBEYXRhIHRoYXQgY29udGFpbnMgdGhlIHByb3ZpZGVkIEZlYXR1cmUgYW5kIGNhbiB1c2VcbiAqIGl0IGFzIGEgY3V0b3V0IGFyZWEuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRQb3NzaWJsZUV4dGVyaW9yRmVhdHVyZShcbiAgZGF0YTogZ29vZ2xlLm1hcHMuRGF0YSxcbiAgZmVhdHVyZTogZ29vZ2xlLm1hcHMuRGF0YS5GZWF0dXJlXG4pOiBnb29nbGUubWFwcy5EYXRhLkZlYXR1cmUgfCB1bmRlZmluZWQge1xuICBsZXQgZXh0ZXJpb3JQb2x5Z29uRmVhdHVyZTogZ29vZ2xlLm1hcHMuRGF0YS5GZWF0dXJlIHwgdW5kZWZpbmVkXG4gIGRhdGEuZm9yRWFjaChmID0+IHtcbiAgICBpZiAoZiAhPT0gZmVhdHVyZSAmJiAoZi5nZXRHZW9tZXRyeSgpLmdldFR5cGUoKSA9PT0gJ1BvbHlnb24nICYmIGZlYXR1cmVDb250YWlucyhmLCBmZWF0dXJlKSkpIHtcbiAgICAgIGV4dGVyaW9yUG9seWdvbkZlYXR1cmUgPSBmXG4gICAgfVxuICB9KVxuICByZXR1cm4gZXh0ZXJpb3JQb2x5Z29uRmVhdHVyZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYWRkSW5uZXJGZWF0dXJlQ3V0b3V0VG9FeHRlcmlvckZlYXR1cmUoXG4gIGV4dGVyaW9yRmVhdHVyZTogZ29vZ2xlLm1hcHMuRGF0YS5GZWF0dXJlLFxuICBpbm5lckZlYXR1cmU6IGdvb2dsZS5tYXBzLkRhdGEuRmVhdHVyZVxuKTogdm9pZCB7XG4gIC8vIE5PVEU6IE90aGVyIGdlb21ldHJpZXMgbWF5IHN1cHBvcnQgY3V0b3V0cywgYnV0IG91ciBtYXAgc2hhcGVzIGVkaXRvciBvbmx5XG4gIC8vIHN1cHBvcnRzIHBvbHlnb25zIGN1cnJlbnRseSwgc28gd2Ugd2lsbCBuZWVkIHRvIGhhbmRsZSBvdGhlciBnZW9tZXRyeSB0eXBlc1xuICAvLyBoZXJlIGlmIHdlIHN0YXJ0IGFsbG93aW5nIHVzZXJzIHRvIGRyYXcgc2hhcGVzIG90aGVyIHRoYW4gcG9seWdvbi5cbiAgaWYgKGV4dGVyaW9yRmVhdHVyZS5nZXRHZW9tZXRyeSgpLmdldFR5cGUoKSAhPT0gJ1BvbHlnb24nIHx8IGlubmVyRmVhdHVyZS5nZXRHZW9tZXRyeSgpLmdldFR5cGUoKSAhPT0gJ1BvbHlnb24nKSB7XG4gICAgdGhyb3cgRXJyb3IoYElubmVyIGN1dG91dCBpcyBvbmx5IHN1cHBvcnRlZCBieSBQb2x5Z29uIGdlbW9ldHJ5LmApXG4gIH1cblxuICBjb25zdCBmZWF0dXJlUG9seWdvbiA9IGlubmVyRmVhdHVyZS5nZXRHZW9tZXRyeSgpIGFzIGdvb2dsZS5tYXBzLkRhdGEuUG9seWdvblxuICBjb25zdCBleHRlcmlvclBvbHlnb24gPSBleHRlcmlvckZlYXR1cmUuZ2V0R2VvbWV0cnkoKSBhcyBnb29nbGUubWFwcy5EYXRhLlBvbHlnb25cbiAgZXh0ZXJpb3JGZWF0dXJlLnNldEdlb21ldHJ5KG5ldyBnb29nbGUubWFwcy5EYXRhLlBvbHlnb24oW1xuICAgIC4uLmV4dGVyaW9yUG9seWdvbi5nZXRBcnJheSgpLFxuICAgIGZlYXR1cmVQb2x5Z29uLmdldEF0KDApLmdldEFycmF5KCkucmV2ZXJzZSgpXG4gIF0pKVxufVxuXG4vKipcbiAqIEdvb2dsZSBtYXBzIHBhdGhzIGRvbid0IGFsd2F5cyBzdGFydCBhbmQgc3RvcCBhdCB0aGUgZXhhY3Qgc2FtZSBwb3NpdGlvbiwgc29cbiAqIHRoaXMgd2lsbCBmaXggdGhhdCBmb3IgdHVyZmpzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZml4UGF0aERpZmZlcmVudFN0YXJ0aW5nQW5kRW5kaW5nUG9pbnQoY29vcmRpbmF0ZXM6IG51bWJlcltdW10pOiB2b2lkIHtcbiAgaWYgKGNvb3JkaW5hdGVzLmxlbmd0aCA8PSAxKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICBjb25zdCBzdGFydCA9IGNvb3JkaW5hdGVzWzBdXG4gIGNvbnN0IGVuZCA9IGNvb3JkaW5hdGVzW2Nvb3JkaW5hdGVzLmxlbmd0aCAtIDFdXG4gIGlmIChzdGFydFswXSA9PT0gZW5kWzBdICYmIHN0YXJ0WzFdID09PSBlbmRbMV0pIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIGNvb3JkaW5hdGVzLnB1c2goY29vcmRpbmF0ZXNbMF0pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwb2x5Z29uQ29vcmRpbmF0ZXMocG9seWdvbjogZ29vZ2xlLm1hcHMuRGF0YS5Qb2x5Z29uKTogbnVtYmVyW11bXVtdIHtcbiAgcmV0dXJuIHBvbHlnb24uZ2V0QXJyYXkoKS5tYXAobGluUmluZyA9PiB7XG4gICAgY29uc3QgY29vcmRzID0gbGluUmluZy5nZXRBcnJheSgpLm1hcCh4ID0+IFsgeC5sbmcoKSwgeC5sYXQoKSBdKVxuICAgIGZpeFBhdGhEaWZmZXJlbnRTdGFydGluZ0FuZEVuZGluZ1BvaW50KGNvb3JkcylcbiAgICByZXR1cm4gY29vcmRzXG4gIH0pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtdWx0aVBvbHlnb25Db29yZGluYXRlcyhtdWx0aVBvbHlnb246IGdvb2dsZS5tYXBzLkRhdGEuTXVsdGlQb2x5Z29uKTogbnVtYmVyW11bXVtdW10ge1xuICByZXR1cm4gbXVsdGlQb2x5Z29uLmdldEFycmF5KCkubWFwKHggPT4gcG9seWdvbkNvb3JkaW5hdGVzKHgpKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9UdXJmSnNQb2x5Z29uKHBvbHlnb246IGdvb2dsZS5tYXBzLkRhdGEuUG9seWdvbikge1xuICByZXR1cm4gdHVyZmpzUG9seWdvbihwb2x5Z29uQ29vcmRpbmF0ZXMocG9seWdvbikpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b1R1cmZKc011bHRpUG9seWdvbihtdWx0aVBvbHlnb246IGdvb2dsZS5tYXBzLkRhdGEuTXVsdGlQb2x5Z29uKSB7XG4gIHJldHVybiB0dXJmanNNdWx0aVBvbHlnb24obXVsdGlQb2x5Z29uQ29vcmRpbmF0ZXMobXVsdGlQb2x5Z29uKSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvVHVyZkpzRmVhdHVyZShnb29nbGVGZWF0dXJlOiBnb29nbGUubWFwcy5EYXRhLkZlYXR1cmUpIHtcbiAgaWYgKGdvb2dsZUZlYXR1cmUuZ2V0R2VvbWV0cnkoKS5nZXRUeXBlKCkgPT09ICdQb2x5Z29uJykge1xuICAgIHJldHVybiB0b1R1cmZKc1BvbHlnb24oZ29vZ2xlRmVhdHVyZS5nZXRHZW9tZXRyeSgpIGFzIGdvb2dsZS5tYXBzLkRhdGEuUG9seWdvbilcbiAgfSBlbHNlIGlmIChnb29nbGVGZWF0dXJlLmdldEdlb21ldHJ5KCkuZ2V0VHlwZSgpID09PSAnTXVsdGlQb2x5Z29uJykge1xuICAgIHJldHVybiB0b1R1cmZKc011bHRpUG9seWdvbihnb29nbGVGZWF0dXJlLmdldEdlb21ldHJ5KCkgYXMgZ29vZ2xlLm1hcHMuRGF0YS5NdWx0aVBvbHlnb24pXG4gIH1cblxuICB0aHJvdyBFcnJvcihgVW5leHBlY3RlZCBnZW9tZXRyeS5gKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZmVhdHVyZUNvbnRhaW5zKGZlYXR1cmVBOiBnb29nbGUubWFwcy5EYXRhLkZlYXR1cmUsIGZlYXR1cmVCOiBnb29nbGUubWFwcy5EYXRhLkZlYXR1cmUpOiBib29sZWFuIHtcbiAgY29uc3QgcG9seWdvbkEgPSB0b1R1cmZKc0ZlYXR1cmUoZmVhdHVyZUEpXG4gIGNvbnN0IHBvbHlnb25CID0gdG9UdXJmSnNGZWF0dXJlKGZlYXR1cmVCKVxuICByZXR1cm4gYm9vbGVhbkNvbnRhaW5zKHBvbHlnb25BLCBwb2x5Z29uQilcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURhdGFGZWF0dXJlRnJvbVBvbHlnb24ocG9seWdvbjogZ29vZ2xlLm1hcHMuUG9seWdvbik6IGdvb2dsZS5tYXBzLkRhdGEuRmVhdHVyZSB7XG4gIGNvbnN0IGFyciA9IHBvbHlnb24uZ2V0UGF0aCgpLmdldEFycmF5KClcbiAgcmV0dXJuIG5ldyBnb29nbGUubWFwcy5EYXRhLkZlYXR1cmUoe1xuICAgIGdlb21ldHJ5OiBuZXcgZ29vZ2xlLm1hcHMuRGF0YS5Qb2x5Z29uKFsgYXJyIF0pXG4gIH0pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRCb3VuZHNXaXRoQWxsRmVhdHVyZXMoZGF0YTogZ29vZ2xlLm1hcHMuRGF0YSk6IGdvb2dsZS5tYXBzLkxhdExuZ0JvdW5kcyB7XG4gIGNvbnN0IGJvdW5kcyA9IG5ldyBnb29nbGUubWFwcy5MYXRMbmdCb3VuZHMoKVxuXG4gIGRhdGEuZm9yRWFjaChmZWF0dXJlID0+IHtcbiAgICBjb25zdCBnZW9tZXRyeSA9IGZlYXR1cmUuZ2V0R2VvbWV0cnkoKVxuICAgIGdlb21ldHJ5LmZvckVhY2hMYXRMbmcobGF0TG5nID0+IHtcbiAgICAgIGJvdW5kcy5leHRlbmQobGF0TG5nKVxuICAgIH0pXG4gIH0pXG5cbiAgcmV0dXJuIGJvdW5kc1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RmVhdHVyZUJvdW5kcyhmZWF0dXJlOiBnb29nbGUubWFwcy5EYXRhLkZlYXR1cmUpOiBnb29nbGUubWFwcy5MYXRMbmdCb3VuZHMge1xuICBjb25zdCBib3VuZHMgPSBuZXcgZ29vZ2xlLm1hcHMuTGF0TG5nQm91bmRzKClcblxuICBjb25zdCBnZW9tZXRyeSA9IGZlYXR1cmUuZ2V0R2VvbWV0cnkoKVxuICBnZW9tZXRyeS5mb3JFYWNoTGF0TG5nKGxhdExuZyA9PiB7XG4gICAgYm91bmRzLmV4dGVuZChsYXRMbmcpXG4gIH0pXG5cbiAgcmV0dXJuIGJvdW5kc1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RmVhdHVyZUNlbnRlcihmZWF0dXJlOiBnb29nbGUubWFwcy5EYXRhLkZlYXR1cmUpOiBnb29nbGUubWFwcy5MYXRMbmcge1xuICByZXR1cm4gZ2V0RmVhdHVyZUJvdW5kcyhmZWF0dXJlKS5nZXRDZW50ZXIoKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlQWxsRmVhdHVyZXMoZGF0YTogZ29vZ2xlLm1hcHMuRGF0YSk6IHZvaWQge1xuICBkYXRhLmZvckVhY2goZiA9PiBkYXRhLnJlbW92ZShmKSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZlYXR1cmVzQ291bnQoZGF0YTogZ29vZ2xlLm1hcHMuRGF0YSk6IG51bWJlciB7XG4gIGxldCBjb3VudCA9IDBcbiAgZGF0YS5mb3JFYWNoKCgpID0+IGNvdW50KyspXG4gIHJldHVybiBjb3VudFxufVxuXG4vKipcbiAqIE5PVEU6IE9yaWdpbmFsIGV2ZW50cyBhcmUgbm90IGVtaXR0ZWQsIGJlY2F1c2UgZmlsdGVyaW5nIG1heSBvbWl0IGV2ZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUZlYXR1cmVDaGFuZ2VPYnNlcnZhYmxlKGRhdGE6IGdvb2dsZS5tYXBzLkRhdGEsIG5nWm9uZTogTmdab25lKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gIHJldHVybiBuZXcgT2JzZXJ2YWJsZTx2b2lkPihzdWJzY3JpYmVyID0+IHtcbiAgICBjb25zdCBsaXN0ZW5lcnM6IGdvb2dsZS5tYXBzLk1hcHNFdmVudExpc3RlbmVyW10gPSBbXVxuXG4gICAgbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGxpc3RlbmVycy5wdXNoKGRhdGEuYWRkTGlzdGVuZXIoJ3NldGdlb21ldHJ5JywgKGV2ZW50OiBnb29nbGUubWFwcy5EYXRhLlNldEdlb21ldHJ5RXZlbnQpID0+IHtcbiAgICAgICAgbmdab25lLnJ1bigoKSA9PiB7IHN1YnNjcmliZXIubmV4dCh1bmRlZmluZWQpIH0pXG4gICAgICB9KSlcblxuICAgICAgbGlzdGVuZXJzLnB1c2goZGF0YS5hZGRMaXN0ZW5lcignYWRkZmVhdHVyZScsIChldmVudDogZ29vZ2xlLm1hcHMuRGF0YS5BZGRGZWF0dXJlRXZlbnQpID0+IHtcbiAgICAgICAgbmdab25lLnJ1bigoKSA9PiB7IHN1YnNjcmliZXIubmV4dCh1bmRlZmluZWQpIH0pXG4gICAgICB9KSlcblxuICAgICAgbGlzdGVuZXJzLnB1c2goZGF0YS5hZGRMaXN0ZW5lcigncmVtb3ZlZmVhdHVyZScsIChldmVudDogZ29vZ2xlLm1hcHMuRGF0YS5SZW1vdmVGZWF0dXJlRXZlbnQpID0+IHtcbiAgICAgICAgbmdab25lLnJ1bigoKSA9PiB7IHN1YnNjcmliZXIubmV4dCh1bmRlZmluZWQpIH0pXG4gICAgICB9KSlcblxuICAgICAgbGlzdGVuZXJzLnB1c2goZGF0YS5hZGRMaXN0ZW5lcignc2V0cHJvcGVydHknLCAoZXZlbnQ6IGdvb2dsZS5tYXBzLkRhdGEuU2V0UHJvcGVydHlFdmVudCkgPT4ge1xuICAgICAgICBpZiAoIWlzQXBwRmVhdHVyZVByb3BlcnR5KGV2ZW50Lm5hbWUpKSB7XG4gICAgICAgICAgbmdab25lLnJ1bigoKSA9PiB7IHN1YnNjcmliZXIubmV4dCh1bmRlZmluZWQpIH0pXG4gICAgICAgIH1cbiAgICAgIH0pKVxuXG4gICAgICBsaXN0ZW5lcnMucHVzaChkYXRhLmFkZExpc3RlbmVyKCdyZW1vdmVwcm9wZXJ0eScsIChldmVudDogZ29vZ2xlLm1hcHMuRGF0YS5SZW1vdmVQcm9wZXJ0eUV2ZW50KSA9PiB7XG4gICAgICAgIGlmICghaXNBcHBGZWF0dXJlUHJvcGVydHkoZXZlbnQubmFtZSkpIHtcbiAgICAgICAgICBuZ1pvbmUucnVuKCgpID0+IHsgc3Vic2NyaWJlci5uZXh0KHVuZGVmaW5lZCkgfSlcbiAgICAgICAgfVxuICAgICAgfSkpXG4gICAgfSlcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBsaXN0ZW5lcnMuZm9yRWFjaChnb29nbGUubWFwcy5ldmVudC5yZW1vdmVMaXN0ZW5lcilcbiAgICB9XG4gIH0pXG59XG4iXX0=
186
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLW1hcHMtZmVhdHVyZS1oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2dvb2dsZS1tYXBzL2dvb2dsZS1tYXBzLWZlYXR1cmUtaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUU3RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBRWpDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBQzdELE9BQU8sZUFBZSxNQUFNLHdCQUF3QixDQUFBO0FBQ3BELE9BQU8sRUFDTCxZQUFZLElBQUksa0JBQWtCLEVBQ2xDLE9BQU8sSUFBSSxhQUFhLEdBQ3pCLE1BQU0sZUFBZSxDQUFBO0FBRXRCLE1BQU0sQ0FBTixJQUFZLHNCQUVYO0FBRkQsV0FBWSxzQkFBc0I7SUFDaEMsMERBQWdDLENBQUE7QUFDbEMsQ0FBQyxFQUZXLHNCQUFzQixLQUF0QixzQkFBc0IsUUFFakM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsWUFBb0I7SUFDdkQsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLHNCQUFzQixDQUFDO1NBQ3pDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssS0FBSyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtBQUN0RCxDQUFDO0FBRUQsTUFBTSxVQUFVLGlCQUFpQixDQUFDLE9BQWlDO0lBQ2pFLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsc0JBQXNCLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDekUsT0FBTyxxQkFBcUIsQ0FBQyxVQUFVLENBQUMsQ0FBQTtBQUMxQyxDQUFDO0FBRUQsTUFBTSxVQUFVLGtCQUFrQixDQUFDLE9BQWlDLEVBQUUsVUFBbUI7SUFDdkYsT0FBTyxDQUFDLFdBQVcs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QyxLQUF3QyxFQUFFLEVBQUU7Z0JBQzFGLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQ3JDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFBO2lCQUNqRDtZQUNILENBQUMsQ0FBQyxDQUFDLENBQUE7WUFFSCxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxLQUEyQyxFQUFFLEVBQUU7Z0JBQ2hHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQ3JDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFBO2lCQUNqRDtZQUNILENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDTCxDQUFDLENBQUMsQ0FBQTtRQUVGLE9BQU8sR0FBRyxFQUFFO1lBQ1YsU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQTtRQUNyRCxDQUFDLENBQUE7SUFDSCxDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nXG5pbXBvcnQgeyBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnXG5cbmltcG9ydCB7IG5vdE51bGxPclVuZGVmaW5lZCB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi91dGlscydcbmltcG9ydCBib29sZWFuQ29udGFpbnMgZnJvbSAnQHR1cmYvYm9vbGVhbi1jb250YWlucydcbmltcG9ydCB7XG4gIG11bHRpUG9seWdvbiBhcyB0dXJmanNNdWx0aVBvbHlnb24sXG4gIHBvbHlnb24gYXMgdHVyZmpzUG9seWdvbixcbn0gZnJvbSAnQHR1cmYvaGVscGVycydcblxuZXhwb3J0IGVudW0gQXBwRmVhdHVyZVByb3BlcnR5TmFtZSB7XG4gIElzU2VsZWN0ZWQgPSBgX19hcHBfX2lzU2VsZWN0ZWRgXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0FwcEZlYXR1cmVQcm9wZXJ0eShwcm9wZXJ0eU5hbWU6IHN0cmluZyk6IHByb3BlcnR5TmFtZSBpcyBBcHBGZWF0dXJlUHJvcGVydHlOYW1lIHtcbiAgcmV0dXJuIE9iamVjdC52YWx1ZXMoQXBwRmVhdHVyZVByb3BlcnR5TmFtZSlcbiAgICAuZmluZEluZGV4KHZhbHVlID0+IHZhbHVlID09PSBwcm9wZXJ0eU5hbWUpICE9PSAtMVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNGZWF0dXJlU2VsZWN0ZWQoZmVhdHVyZTogZ29vZ2xlLm1hcHMuRGF0YS5GZWF0dXJlKTogYm9vbGVhbiB7XG4gIGNvbnN0IGlzU2VsZWN0ZWQgPSBmZWF0dXJlLmdldFByb3BlcnR5KEFwcEZlYXR1cmVQcm9wZXJ0eU5hbWUuSXNTZWxlY3RlZClcbiAgcmV0dXJuIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShpc1NlbGVjdGVkKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0RmVhdHVyZVNlbGVjdGVkKGZlYXR1cmU6IGdvb2dsZS5tYXBzLkRhdGEuRmVhdHVyZSwgaXNTZWxlY3RlZDogYm9vbGVhbik6IHZvaWQge1xuICBmZWF0dXJlLnNldFByb3BlcnR5KEFwcEZlYXR1cmVQcm9wZXJ0eU5hbWUuSXNTZWxlY3RlZCwgaXNTZWxlY3RlZClcbn1cblxuLy8gVE9ETzogQ2hlY2sgcGVyZm9ybWFuY2Ugb2YgY2xvbmluZyBhIGdvb2dsZS5tYXBzLkRhdGEgaW5zdGFuY2UsIHNvIHRoZVxuLy8gcHJvcGVydGllcyBjYW4gYmUgcmVtb3ZlZCB3aXRoIHRoZSBnb29nbGUgbWFwcyBhcGksIGluc3RlYWQgb2Ygb24gdGhlXG4vLyByZXN1bHRpbmcganNvbi5cbmV4cG9ydCBmdW5jdGlvbiBzdHJpcEFwcEZlYXR1cmVQcm9wZXJ0aWVzRnJvbUpzb24oanNvbjogYW55KSB7XG4gIGlmIChub3ROdWxsT3JVbmRlZmluZWQoanNvbikgJiYgQXJyYXkuaXNBcnJheShqc29uPy5mZWF0dXJlcykpIHtcbiAgICBmb3IgKGNvbnN0IGZlYXR1cmUgb2YganNvbi5mZWF0dXJlcykge1xuICAgICAgaWYgKG5vdE51bGxPclVuZGVmaW5lZChmZWF0dXJlPy5wcm9wZXJ0aWVzKSkge1xuICAgICAgICBmb3IgKGNvbnN0IGsgb2YgT2JqZWN0LmtleXMoZmVhdHVyZS5wcm9wZXJ0aWVzKSkge1xuICAgICAgICAgIGlmIChpc0FwcEZlYXR1cmVQcm9wZXJ0eShrKSkge1xuICAgICAgICAgICAgZmVhdHVyZS5wcm9wZXJ0aWVzW2tdID0gdW5kZWZpbmVkXG4gICAgICAgICAgICBkZWxldGUgZmVhdHVyZS5wcm9wZXJ0aWVzW2tdXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogU2VhcmNoZXMgZm9yIGEgRmVhdHVyZSBpbiBEYXRhIHRoYXQgY29udGFpbnMgdGhlIHByb3ZpZGVkIEZlYXR1cmUgYW5kIGNhbiB1c2VcbiAqIGl0IGFzIGEgY3V0b3V0IGFyZWEuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRQb3NzaWJsZUV4dGVyaW9yRmVhdHVyZShcbiAgZGF0YTogZ29vZ2xlLm1hcHMuRGF0YSxcbiAgZmVhdHVyZTogZ29vZ2xlLm1hcHMuRGF0YS5GZWF0dXJlXG4pOiBnb29nbGUubWFwcy5EYXRhLkZlYXR1cmUgfCB1bmRlZmluZWQge1xuICBsZXQgZXh0ZXJpb3JQb2x5Z29uRmVhdHVyZTogZ29vZ2xlLm1hcHMuRGF0YS5GZWF0dXJlIHwgdW5kZWZpbmVkXG4gIGRhdGEuZm9yRWFjaChmID0+IHtcbiAgICBpZiAoZiAhPT0gZmVhdHVyZSAmJiAoZi5nZXRHZW9tZXRyeSgpLmdldFR5cGUoKSA9PT0gJ1BvbHlnb24nICYmIGZlYXR1cmVDb250YWlucyhmLCBmZWF0dXJlKSkpIHtcbiAgICAgIGV4dGVyaW9yUG9seWdvbkZlYXR1cmUgPSBmXG4gICAgfVxuICB9KVxuICByZXR1cm4gZXh0ZXJpb3JQb2x5Z29uRmVhdHVyZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYWRkSW5uZXJGZWF0dXJlQ3V0b3V0VG9FeHRlcmlvckZlYXR1cmUoXG4gIGV4dGVyaW9yRmVhdHVyZTogZ29vZ2xlLm1hcHMuRGF0YS5GZWF0dXJlLFxuICBpbm5lckZlYXR1cmU6IGdvb2dsZS5tYXBzLkRhdGEuRmVhdHVyZVxuKTogdm9pZCB7XG4gIC8vIE5PVEU6IE90aGVyIGdlb21ldHJpZXMgbWF5IHN1cHBvcnQgY3V0b3V0cywgYnV0IG91ciBtYXAgc2hhcGVzIGVkaXRvciBvbmx5XG4gIC8vIHN1cHBvcnRzIHBvbHlnb25zIGN1cnJlbnRseSwgc28gd2Ugd2lsbCBuZWVkIHRvIGhhbmRsZSBvdGhlciBnZW9tZXRyeSB0eXBlc1xuICAvLyBoZXJlIGlmIHdlIHN0YXJ0IGFsbG93aW5nIHVzZXJzIHRvIGRyYXcgc2hhcGVzIG90aGVyIHRoYW4gcG9seWdvbi5cbiAgaWYgKGV4dGVyaW9yRmVhdHVyZS5nZXRHZW9tZXRyeSgpLmdldFR5cGUoKSAhPT0gJ1BvbHlnb24nIHx8IGlubmVyRmVhdHVyZS5nZXRHZW9tZXRyeSgpLmdldFR5cGUoKSAhPT0gJ1BvbHlnb24nKSB7XG4gICAgdGhyb3cgRXJyb3IoYElubmVyIGN1dG91dCBpcyBvbmx5IHN1cHBvcnRlZCBieSBQb2x5Z29uIGdlbW9ldHJ5LmApXG4gIH1cblxuICBjb25zdCBmZWF0dXJlUG9seWdvbiA9IGlubmVyRmVhdHVyZS5nZXRHZW9tZXRyeSgpIGFzIGdvb2dsZS5tYXBzLkRhdGEuUG9seWdvblxuICBjb25zdCBleHRlcmlvclBvbHlnb24gPSBleHRlcmlvckZlYXR1cmUuZ2V0R2VvbWV0cnkoKSBhcyBnb29nbGUubWFwcy5EYXRhLlBvbHlnb25cbiAgZXh0ZXJpb3JGZWF0dXJlLnNldEdlb21ldHJ5KG5ldyBnb29nbGUubWFwcy5EYXRhLlBvbHlnb24oW1xuICAgIC4uLmV4dGVyaW9yUG9seWdvbi5nZXRBcnJheSgpLFxuICAgIGZlYXR1cmVQb2x5Z29uLmdldEF0KDApLmdldEFycmF5KCkucmV2ZXJzZSgpXG4gIF0pKVxufVxuXG4vKipcbiAqIEdvb2dsZSBtYXBzIHBhdGhzIGRvbid0IGFsd2F5cyBzdGFydCBhbmQgc3RvcCBhdCB0aGUgZXhhY3Qgc2FtZSBwb3NpdGlvbiwgc29cbiAqIHRoaXMgd2lsbCBmaXggdGhhdCBmb3IgdHVyZmpzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZml4UGF0aERpZmZlcmVudFN0YXJ0aW5nQW5kRW5kaW5nUG9pbnQoY29vcmRpbmF0ZXM6IG51bWJlcltdW10pOiB2b2lkIHtcbiAgaWYgKGNvb3JkaW5hdGVzLmxlbmd0aCA8PSAxKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICBjb25zdCBzdGFydCA9IGNvb3JkaW5hdGVzWzBdXG4gIGNvbnN0IGVuZCA9IGNvb3JkaW5hdGVzW2Nvb3JkaW5hdGVzLmxlbmd0aCAtIDFdXG4gIGlmIChzdGFydFswXSA9PT0gZW5kWzBdICYmIHN0YXJ0WzFdID09PSBlbmRbMV0pIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIGNvb3JkaW5hdGVzLnB1c2goY29vcmRpbmF0ZXNbMF0pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwb2x5Z29uSGFzVmFsaWRQYXRoc0xlbmd0aHMocG9seWdvbjogZ29vZ2xlLm1hcHMuUG9seWdvbiwgbWluUG9pbnRzSW5WYWxpZFBhdGg6IG51bWJlciA9IDMpOiBib29sZWFuIHtcbiAgY29uc3QgcGF0aHMgPSBwb2x5Z29uLmdldFBhdGhzKCkuZ2V0QXJyYXkoKVxuICBmb3IgKGNvbnN0IHBhdGggb2YgcGF0aHMpIHtcbiAgICBpZiAocGF0aC5nZXRMZW5ndGgoKSA8IG1pblBvaW50c0luVmFsaWRQYXRoKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBvbHlnb25Db29yZGluYXRlcyhwb2x5Z29uOiBnb29nbGUubWFwcy5EYXRhLlBvbHlnb24pOiBudW1iZXJbXVtdW10ge1xuICByZXR1cm4gcG9seWdvbi5nZXRBcnJheSgpLm1hcChsaW5SaW5nID0+IHtcbiAgICBjb25zdCBjb29yZHMgPSBsaW5SaW5nLmdldEFycmF5KCkubWFwKHggPT4gWyB4LmxuZygpLCB4LmxhdCgpIF0pXG4gICAgZml4UGF0aERpZmZlcmVudFN0YXJ0aW5nQW5kRW5kaW5nUG9pbnQoY29vcmRzKVxuICAgIHJldHVybiBjb29yZHNcbiAgfSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG11bHRpUG9seWdvbkNvb3JkaW5hdGVzKG11bHRpUG9seWdvbjogZ29vZ2xlLm1hcHMuRGF0YS5NdWx0aVBvbHlnb24pOiBudW1iZXJbXVtdW11bXSB7XG4gIHJldHVybiBtdWx0aVBvbHlnb24uZ2V0QXJyYXkoKS5tYXAoeCA9PiBwb2x5Z29uQ29vcmRpbmF0ZXMoeCkpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b1R1cmZKc1BvbHlnb24ocG9seWdvbjogZ29vZ2xlLm1hcHMuRGF0YS5Qb2x5Z29uKSB7XG4gIHJldHVybiB0dXJmanNQb2x5Z29uKHBvbHlnb25Db29yZGluYXRlcyhwb2x5Z29uKSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvVHVyZkpzTXVsdGlQb2x5Z29uKG11bHRpUG9seWdvbjogZ29vZ2xlLm1hcHMuRGF0YS5NdWx0aVBvbHlnb24pIHtcbiAgcmV0dXJuIHR1cmZqc011bHRpUG9seWdvbihtdWx0aVBvbHlnb25Db29yZGluYXRlcyhtdWx0aVBvbHlnb24pKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9UdXJmSnNGZWF0dXJlKGdvb2dsZUZlYXR1cmU6IGdvb2dsZS5tYXBzLkRhdGEuRmVhdHVyZSkge1xuICBpZiAoZ29vZ2xlRmVhdHVyZS5nZXRHZW9tZXRyeSgpLmdldFR5cGUoKSA9PT0gJ1BvbHlnb24nKSB7XG4gICAgcmV0dXJuIHRvVHVyZkpzUG9seWdvbihnb29nbGVGZWF0dXJlLmdldEdlb21ldHJ5KCkgYXMgZ29vZ2xlLm1hcHMuRGF0YS5Qb2x5Z29uKVxuICB9IGVsc2UgaWYgKGdvb2dsZUZlYXR1cmUuZ2V0R2VvbWV0cnkoKS5nZXRUeXBlKCkgPT09ICdNdWx0aVBvbHlnb24nKSB7XG4gICAgcmV0dXJuIHRvVHVyZkpzTXVsdGlQb2x5Z29uKGdvb2dsZUZlYXR1cmUuZ2V0R2VvbWV0cnkoKSBhcyBnb29nbGUubWFwcy5EYXRhLk11bHRpUG9seWdvbilcbiAgfVxuXG4gIHRocm93IEVycm9yKGBVbmV4cGVjdGVkIGdlb21ldHJ5LmApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmZWF0dXJlQ29udGFpbnMoZmVhdHVyZUE6IGdvb2dsZS5tYXBzLkRhdGEuRmVhdHVyZSwgZmVhdHVyZUI6IGdvb2dsZS5tYXBzLkRhdGEuRmVhdHVyZSk6IGJvb2xlYW4ge1xuICBjb25zdCBwb2x5Z29uQSA9IHRvVHVyZkpzRmVhdHVyZShmZWF0dXJlQSlcbiAgY29uc3QgcG9seWdvbkIgPSB0b1R1cmZKc0ZlYXR1cmUoZmVhdHVyZUIpXG4gIHJldHVybiBib29sZWFuQ29udGFpbnMocG9seWdvbkEsIHBvbHlnb25CKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRGF0YUZlYXR1cmVGcm9tUG9seWdvbihwb2x5Z29uOiBnb29nbGUubWFwcy5Qb2x5Z29uKTogZ29vZ2xlLm1hcHMuRGF0YS5GZWF0dXJlIHtcbiAgY29uc3QgYXJyID0gcG9seWdvbi5nZXRQYXRocygpLmdldEFycmF5KCkubWFwKHggPT4geC5nZXRBcnJheSgpKVxuICByZXR1cm4gbmV3IGdvb2dsZS5tYXBzLkRhdGEuRmVhdHVyZSh7XG4gICAgZ2VvbWV0cnk6IG5ldyBnb29nbGUubWFwcy5EYXRhLlBvbHlnb24oYXJyKVxuICB9KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Qm91bmRzV2l0aEFsbEZlYXR1cmVzKGRhdGE6IGdvb2dsZS5tYXBzLkRhdGEpOiBnb29nbGUubWFwcy5MYXRMbmdCb3VuZHMge1xuICBjb25zdCBib3VuZHMgPSBuZXcgZ29vZ2xlLm1hcHMuTGF0TG5nQm91bmRzKClcblxuICBkYXRhLmZvckVhY2goZmVhdHVyZSA9PiB7XG4gICAgY29uc3QgZ2VvbWV0cnkgPSBmZWF0dXJlLmdldEdlb21ldHJ5KClcbiAgICBnZW9tZXRyeS5mb3JFYWNoTGF0TG5nKGxhdExuZyA9PiB7XG4gICAgICBib3VuZHMuZXh0ZW5kKGxhdExuZylcbiAgICB9KVxuICB9KVxuXG4gIHJldHVybiBib3VuZHNcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZlYXR1cmVCb3VuZHMoZmVhdHVyZTogZ29vZ2xlLm1hcHMuRGF0YS5GZWF0dXJlKTogZ29vZ2xlLm1hcHMuTGF0TG5nQm91bmRzIHtcbiAgY29uc3QgYm91bmRzID0gbmV3IGdvb2dsZS5tYXBzLkxhdExuZ0JvdW5kcygpXG5cbiAgY29uc3QgZ2VvbWV0cnkgPSBmZWF0dXJlLmdldEdlb21ldHJ5KClcbiAgZ2VvbWV0cnkuZm9yRWFjaExhdExuZyhsYXRMbmcgPT4ge1xuICAgIGJvdW5kcy5leHRlbmQobGF0TG5nKVxuICB9KVxuXG4gIHJldHVybiBib3VuZHNcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZlYXR1cmVDZW50ZXIoZmVhdHVyZTogZ29vZ2xlLm1hcHMuRGF0YS5GZWF0dXJlKTogZ29vZ2xlLm1hcHMuTGF0TG5nIHtcbiAgcmV0dXJuIGdldEZlYXR1cmVCb3VuZHMoZmVhdHVyZSkuZ2V0Q2VudGVyKClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUFsbEZlYXR1cmVzKGRhdGE6IGdvb2dsZS5tYXBzLkRhdGEpOiB2b2lkIHtcbiAgZGF0YS5mb3JFYWNoKGYgPT4gZGF0YS5yZW1vdmUoZikpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGZWF0dXJlc0NvdW50KGRhdGE6IGdvb2dsZS5tYXBzLkRhdGEpOiBudW1iZXIge1xuICBsZXQgY291bnQgPSAwXG4gIGRhdGEuZm9yRWFjaCgoKSA9PiBjb3VudCsrKVxuICByZXR1cm4gY291bnRcbn1cblxuLyoqXG4gKiBOT1RFOiBPcmlnaW5hbCBldmVudHMgYXJlIG5vdCBlbWl0dGVkLCBiZWNhdXNlIGZpbHRlcmluZyBtYXkgb21pdCBldmVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVGZWF0dXJlQ2hhbmdlT2JzZXJ2YWJsZShkYXRhOiBnb29nbGUubWFwcy5EYXRhLCBuZ1pvbmU6IE5nWm9uZSk6IE9ic2VydmFibGU8dm9pZD4ge1xuICByZXR1cm4gbmV3IE9ic2VydmFibGU8dm9pZD4oc3Vic2NyaWJlciA9PiB7XG4gICAgY29uc3QgbGlzdGVuZXJzOiBnb29nbGUubWFwcy5NYXBzRXZlbnRMaXN0ZW5lcltdID0gW11cblxuICAgIG5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBsaXN0ZW5lcnMucHVzaChkYXRhLmFkZExpc3RlbmVyKCdzZXRnZW9tZXRyeScsIChldmVudDogZ29vZ2xlLm1hcHMuRGF0YS5TZXRHZW9tZXRyeUV2ZW50KSA9PiB7XG4gICAgICAgIG5nWm9uZS5ydW4oKCkgPT4geyBzdWJzY3JpYmVyLm5leHQodW5kZWZpbmVkKSB9KVxuICAgICAgfSkpXG5cbiAgICAgIGxpc3RlbmVycy5wdXNoKGRhdGEuYWRkTGlzdGVuZXIoJ2FkZGZlYXR1cmUnLCAoZXZlbnQ6IGdvb2dsZS5tYXBzLkRhdGEuQWRkRmVhdHVyZUV2ZW50KSA9PiB7XG4gICAgICAgIG5nWm9uZS5ydW4oKCkgPT4geyBzdWJzY3JpYmVyLm5leHQodW5kZWZpbmVkKSB9KVxuICAgICAgfSkpXG5cbiAgICAgIGxpc3RlbmVycy5wdXNoKGRhdGEuYWRkTGlzdGVuZXIoJ3JlbW92ZWZlYXR1cmUnLCAoZXZlbnQ6IGdvb2dsZS5tYXBzLkRhdGEuUmVtb3ZlRmVhdHVyZUV2ZW50KSA9PiB7XG4gICAgICAgIG5nWm9uZS5ydW4oKCkgPT4geyBzdWJzY3JpYmVyLm5leHQodW5kZWZpbmVkKSB9KVxuICAgICAgfSkpXG5cbiAgICAgIGxpc3RlbmVycy5wdXNoKGRhdGEuYWRkTGlzdGVuZXIoJ3NldHByb3BlcnR5JywgKGV2ZW50OiBnb29nbGUubWFwcy5EYXRhLlNldFByb3BlcnR5RXZlbnQpID0+IHtcbiAgICAgICAgaWYgKCFpc0FwcEZlYXR1cmVQcm9wZXJ0eShldmVudC5uYW1lKSkge1xuICAgICAgICAgIG5nWm9uZS5ydW4oKCkgPT4geyBzdWJzY3JpYmVyLm5leHQodW5kZWZpbmVkKSB9KVxuICAgICAgICB9XG4gICAgICB9KSlcblxuICAgICAgbGlzdGVuZXJzLnB1c2goZGF0YS5hZGRMaXN0ZW5lcigncmVtb3ZlcHJvcGVydHknLCAoZXZlbnQ6IGdvb2dsZS5tYXBzLkRhdGEuUmVtb3ZlUHJvcGVydHlFdmVudCkgPT4ge1xuICAgICAgICBpZiAoIWlzQXBwRmVhdHVyZVByb3BlcnR5KGV2ZW50Lm5hbWUpKSB7XG4gICAgICAgICAgbmdab25lLnJ1bigoKSA9PiB7IHN1YnNjcmliZXIubmV4dCh1bmRlZmluZWQpIH0pXG4gICAgICAgIH1cbiAgICAgIH0pKVxuICAgIH0pXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgbGlzdGVuZXJzLmZvckVhY2goZ29vZ2xlLm1hcHMuZXZlbnQucmVtb3ZlTGlzdGVuZXIpXG4gICAgfVxuICB9KVxufVxuIl19
@@ -164,7 +164,7 @@ export class TheSeamGoogleMapsPlacesAutoCompleteComponent {
164
164
  TheSeamGoogleMapsPlacesAutoCompleteComponent.decorators = [
165
165
  { type: Component, args: [{
166
166
  selector: 'seam-google-maps-places-autocomplete',
167
- template: "<div *ngIf=\"icon\" class=\"search-container--icon-wrapper\">\r\n <seam-icon [icon]=\"icon\" class=\"text-muted\" size=\"lg\"></seam-icon>\r\n</div>\r\n<label *ngIf=\"label || placeholder\" [attr.for]=\"inp.id\" class=\"sr-only\">{{ label || placeholder }}</label>\r\n<input #inp=\"seamInput\"\r\n seamInput\r\n seamGoogleMapsPlacesAutocomplete\r\n [disabled]=\"disabled\"\r\n [attr.placeholder]=\"placeholder\"\r\n [attr.autocorrect]=\"autocorrect\"\r\n [attr.autocapitalize]=\"autocapitalize\"\r\n [options]=\"_options\"\r\n/>\r\n",
167
+ template: "<div *ngIf=\"icon\" class=\"search-container--icon-wrapper\">\n <seam-icon [icon]=\"icon\" class=\"text-muted\" size=\"lg\"></seam-icon>\n</div>\n<label *ngIf=\"label || placeholder\" [attr.for]=\"inp.id\" class=\"sr-only\">{{ label || placeholder }}</label>\n<input #inp=\"seamInput\"\n seamInput\n seamGoogleMapsPlacesAutocomplete\n [disabled]=\"disabled\"\n [attr.placeholder]=\"placeholder\"\n [attr.autocorrect]=\"autocorrect\"\n [attr.autocapitalize]=\"autocapitalize\"\n [options]=\"_options\"\n/>\n",
168
168
  changeDetection: ChangeDetectionStrategy.OnPush,
169
169
  exportAs: 'seamGoogleMapsPlacesAutoComplete',
170
170
  styles: [":host{position:relative;width:100%}:host>input{padding-left:40px}:host .search-container--icon-wrapper{position:absolute;top:6px;left:10px;bottom:0px}:host .search-container--icon-wrapper ::ng-deep .svg-inline--fa{vertical-align:middle}\n"]
@@ -192,4 +192,4 @@ TheSeamGoogleMapsPlacesAutoCompleteComponent.propDecorators = {
192
192
  __decorate([
193
193
  InputBoolean()
194
194
  ], TheSeamGoogleMapsPlacesAutoCompleteComponent.prototype, "disabled", void 0);
195
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLW1hcHMtcGxhY2VzLWF1dG9jb21wbGV0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZ29vZ2xlLW1hcHMvZ29vZ2xlLW1hcHMtcGxhY2VzLWF1dG9jb21wbGV0ZS9nb29nbGUtbWFwcy1wbGFjZXMtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFnQixvQkFBb0IsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQzFFLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFNLE9BQU8sRUFBYyxNQUFNLE1BQU0sQ0FBQTtBQUNwRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUVyRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUNwRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLCtCQUErQixDQUFBO0FBRzlELE9BQU8sRUFBRSwrQ0FBK0MsRUFBRSw0Q0FBNEMsRUFBRSxNQUFNLDZDQUE2QyxDQUFBO0FBSzNKOztHQUVHO0FBUUgsTUFBTSxPQUFPLDRDQUE0QztJQTJFdkQsWUFDbUIsV0FBdUI7UUFBdkIsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUF6RXpCLG1CQUFjLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQTtRQUNwQyw4QkFBeUIsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFB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QWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2dCQUMvQyxRQUFRLEVBQUUsa0NBQWtDOzthQUM3Qzs7O1lBL0JDLFVBQVU7OztvQkEwQ1QsS0FBSzttQkFFTCxLQUFLO3VCQUVMLEtBQUs7MEJBRUwsS0FBSzswQkFFTCxLQUFLOzZCQUVMLEtBQUs7dUJBT0osS0FBSztzQkFLTixLQUFLOzJCQWVMLE1BQU07OEJBRU4sU0FBUyxTQUFDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtzQ0FFdkQsU0FBUyxTQUFDLDRDQUE0QyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTs0QkFXeEUsV0FBVyxTQUFDLGVBQWU7dUJBRzNCLFlBQVksU0FBQyxPQUFPLEVBQUUsQ0FBRSxPQUFPLENBQUU7dUJBS2pDLFlBQVksU0FBQyxPQUFPLEVBQUUsQ0FBRSxRQUFRLENBQUU7O0FBeERWO0lBQWYsWUFBWSxFQUFFOzhFQUErQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlTnVtYmVyUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nXHJcbmltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBpbnRlcnZhbCwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QsIFN1YnNjcmliZXIgfSBmcm9tICdyeGpzJ1xyXG5pbXBvcnQgeyBmaWx0ZXIsIG1hcFRvLCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFrZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXHJcblxyXG5pbXBvcnQgeyBmYVNlYXJjaExvY2F0aW9uIH0gZnJvbSAnQGZvcnRhd2Vzb21lL2ZyZWUtc29saWQtc3ZnLWljb25zJ1xyXG5pbXBvcnQgeyBJbnB1dEJvb2xlYW4gfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vY29yZSdcclxuaW1wb3J0IHsgSW5wdXREaXJlY3RpdmUgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vZm9ybS1maWVsZCdcclxuaW1wb3J0IHsgU2VhbUljb24gfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vaWNvbidcclxuXHJcbmltcG9ydCB7IFNFQU1fR09PR0xFX1BMQUNFU19BVVRPQ09NUExFVEVfREVGQVVMVF9PUFRJT05TLCBUaGVTZWFtR29vZ2xlTWFwc1BsYWNlc0F1dG9jb21wbGV0ZURpcmVjdGl2ZSB9IGZyb20gJy4vZ29vZ2xlLW1hcHMtcGxhY2VzLWF1dG9jb21wbGV0ZS5kaXJlY3RpdmUnXHJcblxyXG5kZWNsYXJlIGNvbnN0IG5nRGV2TW9kZTogYm9vbGVhbiB8IHVuZGVmaW5lZFxyXG50eXBlIFdpdGhSZXF1aXJlZDxULCBLIGV4dGVuZHMga2V5b2YgVD4gPSBUICYgeyBbUCBpbiBLXS0/OiBUW1BdIH1cclxuXHJcbi8qKlxyXG4gKlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzZWFtLWdvb2dsZS1tYXBzLXBsYWNlcy1hdXRvY29tcGxldGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9nb29nbGUtbWFwcy1wbGFjZXMtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9nb29nbGUtbWFwcy1wbGFjZXMtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgZXhwb3J0QXM6ICdzZWFtR29vZ2xlTWFwc1BsYWNlc0F1dG9Db21wbGV0ZSdcclxufSlcclxuZXhwb3J0IGNsYXNzIFRoZVNlYW1Hb29nbGVNYXBzUGxhY2VzQXV0b0NvbXBsZXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9kaXNhYmxlZDogQm9vbGVhbklucHV0XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpXHJcbiAgcHJpdmF0ZSByZWFkb25seSBfYXV0b0NvbXBsZXRlUmVhZHlTdWJqZWN0ID0gbmV3IFN1YmplY3QoKVxyXG5cclxuICBwcml2YXRlIF9wbGFjZUNoYW5nZWRQZW5kaW5nOiB7IG9ic2VydmFibGU6IE9ic2VydmFibGU8YW55Piwgc3Vic2NyaWJlcjogU3Vic2NyaWJlcjxhbnk+IH1bXSA9IFtdXHJcblxyXG4gIHB1YmxpYyBhdXRvQ29tcGxldGU/OiBnb29nbGUubWFwcy5wbGFjZXMuQXV0b2NvbXBsZXRlXHJcblxyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsID0gJ1NlYXJjaCBieSBhZGRyZXNzLCBwbGFjZSBvciBuYW1lJ1xyXG5cclxuICBASW5wdXQoKSBpY29uOiBTZWFtSWNvbiB8IHVuZGVmaW5lZCB8IG51bGwgPSBmYVNlYXJjaExvY2F0aW9uXHJcblxyXG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBkaXNhYmxlZDogQm9vbGVhbklucHV0ID0gZmFsc2VcclxuXHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwgPSAnRW50ZXIgYWRkcmVzcywgcGxhY2Ugb3IgbmFtZSdcclxuXHJcbiAgQElucHV0KCkgYXV0b2NvcnJlY3Q6ICdvZmYnIHwgJ29uJyB8IHVuZGVmaW5lZCB8IG51bGwgPSAnb2ZmJ1xyXG5cclxuICBASW5wdXQoKSBhdXRvY2FwaXRhbGl6ZTogJ29mZicgfCAnb24nIHwgdW5kZWZpbmVkIHwgbnVsbCA9ICdvZmYnXHJcblxyXG4gIC8qKlxyXG4gICAqIFNldCB0aGUgdGFiIGluZGV4IHRvIGAtMWAgdG8gYWxsb3cgdGhlIHJvb3QgZWxlbWVudCBvZiB0aGVcclxuICAgKiBjb21wb25lbnQgdG8gcmVjZWl2ZSBgZm9jdXNgIGV2ZW50IGZyb20gamF2YXNjcmlwdCwgYnV0IG5vdCBnZXQgZm9jdXNlZCBieVxyXG4gICAqIGtleWJvYXJkIG5hdmlnYXRpb24uXHJcbiAgICovXHJcbiAgIEBJbnB1dCgpXHJcbiAgIHNldCB0YWJJbmRleCh2YWx1ZTogbnVtYmVyKSB7IHRoaXMuX3RhYkluZGV4ID0gY29lcmNlTnVtYmVyUHJvcGVydHkodmFsdWUpIH1cclxuICAgZ2V0IHRhYkluZGV4KCk6IG51bWJlciB7IHJldHVybiB0aGlzLl90YWJJbmRleCB9XHJcbiAgIHByaXZhdGUgX3RhYkluZGV4ID0gLTFcclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgb3B0aW9ucyh2YWx1ZTogZ29vZ2xlLm1hcHMucGxhY2VzLkF1dG9jb21wbGV0ZU9wdGlvbnMgfCB1bmRlZmluZWQgfCBudWxsKSB7XHJcbiAgICB0aGlzLl9vcHRpb25zID0gdmFsdWUgfHwgU0VBTV9HT09HTEVfUExBQ0VTX0FVVE9DT01QTEVURV9ERUZBVUxUX09QVElPTlNcclxuICB9XHJcbiAgX29wdGlvbnM6IGdvb2dsZS5tYXBzLnBsYWNlcy5BdXRvY29tcGxldGVPcHRpb25zID0gU0VBTV9HT09HTEVfUExBQ0VTX0FVVE9DT01QTEVURV9ERUZBVUxUX09QVElPTlNcclxuXHJcbiAgLyoqXHJcbiAgICogVGhpcyBldmVudCBpcyBmaXJlZCB3aGVuIGEgUGxhY2VSZXN1bHQgaXMgbWFkZSBhdmFpbGFibGUgZm9yIGEgUGxhY2UgdGhlXHJcbiAgICogdXNlciBoYXMgc2VsZWN0ZWQuIElmIHRoZSB1c2VyIGVudGVycyB0aGUgbmFtZSBvZiBhIFBsYWNlIHRoYXQgd2FzIG5vdFxyXG4gICAqIHN1Z2dlc3RlZCBieSB0aGUgY29udHJvbCBhbmQgcHJlc3NlcyB0aGUgRW50ZXIga2V5LCBvciBpZiBhIFBsYWNlIERldGFpbHNcclxuICAgKiByZXF1ZXN0IGZhaWxzLCB0aGUgUGxhY2VSZXN1bHQgY29udGFpbnMgdGhlIHVzZXIgaW5wdXQgaW4gdGhlIG5hbWVcclxuICAgKiBwcm9wZXJ0eSwgd2l0aCBubyBvdGhlciBwcm9wZXJ0aWVzIGRlZmluZWQuXHJcbiAgICpcclxuICAgKiBTZWU6IGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL21hcHMvZG9jdW1lbnRhdGlvbi9qYXZhc2NyaXB0L3JlZmVyZW5jZS9wbGFjZXMtd2lkZ2V0I0F1dG9jb21wbGV0ZS5wbGFjZV9jaGFuZ2VkXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHJlYWRvbmx5IHBsYWNlQ2hhbmdlZDogT2JzZXJ2YWJsZTx2b2lkPlxyXG5cclxuICBAVmlld0NoaWxkKCdpbnAnLCB7IHJlYWQ6IElucHV0RGlyZWN0aXZlLCBzdGF0aWM6IHRydWUgfSkgX2lucHV0RGlyZWN0aXZlITogSW5wdXREaXJlY3RpdmVcclxuXHJcbiAgQFZpZXdDaGlsZChUaGVTZWFtR29vZ2xlTWFwc1BsYWNlc0F1dG9jb21wbGV0ZURpcmVjdGl2ZSwgeyBzdGF0aWM6IHRydWUgfSlcclxuICBzZXQgX19hdXRvY29tcGxldGVEaXJlY3RpdmUodmFsdWU6IFRoZVNlYW1Hb29nbGVNYXBzUGxhY2VzQXV0b2NvbXBsZXRlRGlyZWN0aXZlKSB7XHJcbiAgICB0aGlzLl9hdXRvQ29tcGxldGVEaXJlY3RpdmUgPSB2YWx1ZVxyXG4gICAgdGhpcy5fdW50aWxBdXRvQ29tcGxldGVSZWFkeSgpLnBpcGUodGFrZVVudGlsKHRoaXMuX25nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLmF1dG9Db21wbGV0ZSA9IHRoaXMuX2F1dG9Db21wbGV0ZURpcmVjdGl2ZS5hdXRvQ29tcGxldGVcclxuICAgICAgdGhpcy5fcGxhY2VDaGFuZ2VkUGVuZGluZy5mb3JFYWNoKHBlbmRpbmcgPT4gcGVuZGluZy5vYnNlcnZhYmxlLnN1YnNjcmliZShwZW5kaW5nLnN1YnNjcmliZXIpKVxyXG4gICAgICB0aGlzLl9wbGFjZUNoYW5nZWRQZW5kaW5nID0gW11cclxuICAgIH0pXHJcbiAgfVxyXG4gIF9hdXRvQ29tcGxldGVEaXJlY3RpdmUhOiBUaGVTZWFtR29vZ2xlTWFwc1BsYWNlc0F1dG9jb21wbGV0ZURpcmVjdGl2ZVxyXG5cclxuICBASG9zdEJpbmRpbmcoJ2F0dHIudGFiaW5kZXgnKVxyXG4gIGdldCBfYXR0clRhYkluZGV4KCkgeyByZXR1cm4gdGhpcy5kaXNhYmxlZCA/IC0xIDogKHRoaXMudGFiSW5kZXggfHwgMCkgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsgJ2V2ZW50JyBdKVxyXG4gIF9vbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICB0aGlzLl9pbnB1dERpcmVjdGl2ZS5mb2N1cygpXHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdmb2N1cycsIFsgJyRldmVudCcgXSlcclxuICBfb25Gb2N1cygpIHtcclxuICAgIHRoaXMuX2lucHV0RGlyZWN0aXZlPy5mb2N1cygpXHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgKSB7XHJcbiAgICB0aGlzLnBsYWNlQ2hhbmdlZCA9IHRoaXMuX2F1dG9Db21wbGV0ZVJlYWR5U3ViamVjdC5waXBlKFxyXG4gICAgICBzdGFydFdpdGgodW5kZWZpbmVkKSxcclxuICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuX2NyZWF0ZVBsYWNlQ2hhbmdlZE9ic2VydmFibGU8YW55PigpKVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7IH1cclxuXHJcbiAgLyoqIEBpZ25vcmUgKi9cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuX25nVW5zdWJzY3JpYmUubmV4dCgpXHJcbiAgICB0aGlzLl9uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKClcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3VudGlsQXV0b0NvbXBsZXRlUmVhZHkoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XHJcbiAgICByZXR1cm4gaW50ZXJ2YWwoNTAwKS5waXBlKFxyXG4gICAgICBmaWx0ZXIoKCkgPT4gISF0aGlzLl9hdXRvQ29tcGxldGVEaXJlY3RpdmUuYXV0b0NvbXBsZXRlKSxcclxuICAgICAgdGFrZSgxKSxcclxuICAgICAgbWFwVG8odW5kZWZpbmVkKSxcclxuICAgIClcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIGJvdW5kcyB0byB3aGljaCBwcmVkaWN0aW9ucyBhcmUgYmlhc2VkLlxyXG4gICAqL1xyXG4gICBwdWJsaWMgZ2V0Qm91bmRzKCk6IGdvb2dsZS5tYXBzLkxhdExuZ0JvdW5kcyB8IHVuZGVmaW5lZCB7XHJcbiAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpXHJcbiAgICByZXR1cm4gdGhpcy5hdXRvQ29tcGxldGUuZ2V0Qm91bmRzKClcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIGZpZWxkcyB0byBiZSBpbmNsdWRlZCBmb3IgdGhlIFBsYWNlIGluIHRoZSBkZXRhaWxzIHJlc3BvbnNlXHJcbiAgICogd2hlbiB0aGUgZGV0YWlscyBhcmUgc3VjY2Vzc2Z1bGx5IHJldHJpZXZlZC4gRm9yIGEgbGlzdCBvZiBmaWVsZHMgc2VlXHJcbiAgICogW1BsYWNlUmVzdWx0XShodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9tYXBzL2RvY3VtZW50YXRpb24vamF2YXNjcmlwdC9yZWZlcmVuY2UvcGxhY2VzLXNlcnZpY2UjUGxhY2VSZXN1bHQpLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRGaWVsZHMoKTogc3RyaW5nW10gfCB1bmRlZmluZWQge1xyXG4gICAgdGhpcy5fYXNzZXJ0SW5pdGlhbGl6ZWQoKVxyXG4gICAgcmV0dXJuICh0aGlzLmF1dG9Db21wbGV0ZSBhcyBhbnkpLmdldEZpZWxkcygpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBkZXRhaWxzIG9mIHRoZSBQbGFjZSBzZWxlY3RlZCBieSB1c2VyIGlmIHRoZSBkZXRhaWxzIHdlcmVcclxuICAgKiBzdWNjZXNzZnVsbHkgcmV0cmlldmVkLiBPdGhlcndpc2UgcmV0dXJucyBhIHN0dWIgUGxhY2Ugb2JqZWN0LCB3aXRoIHRoZVxyXG4gICAqIG5hbWUgcHJvcGVydHkgc2V0IHRvIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBpbnB1dCBmaWVsZC5cclxuICAgKi9cclxuICAgcHVibGljIGdldFBsYWNlKCk6IGdvb2dsZS5tYXBzLnBsYWNlcy5QbGFjZVJlc3VsdCB7XHJcbiAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpXHJcbiAgICByZXR1cm4gdGhpcy5hdXRvQ29tcGxldGUuZ2V0UGxhY2UoKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgcHJlZmVycmVkIGFyZWEgd2l0aGluIHdoaWNoIHRvIHJldHVybiBQbGFjZSByZXN1bHRzLiBSZXN1bHRzIGFyZVxyXG4gICAqIGJpYXNlZCB0b3dhcmRzLCBidXQgbm90IHJlc3RyaWN0ZWQgdG8sIHRoaXMgYXJlYS5cclxuICAgKi9cclxuICBwdWJsaWMgc2V0Qm91bmRzKGJvdW5kcz86IGdvb2dsZS5tYXBzLkxhdExuZ0JvdW5kcyB8IGdvb2dsZS5tYXBzLkxhdExuZ0JvdW5kc0xpdGVyYWwpOiB2b2lkIHtcclxuICAgIHRoaXMuX2Fzc2VydEluaXRpYWxpemVkKClcclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tbm9uLW51bGwtYXNzZXJ0aW9uXHJcbiAgICByZXR1cm4gdGhpcy5hdXRvQ29tcGxldGUuc2V0Qm91bmRzKGJvdW5kcyEpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSBjb21wb25lbnQgcmVzdHJpY3Rpb25zLiBDb21wb25lbnQgcmVzdHJpY3Rpb25zIGFyZSB1c2VkIHRvXHJcbiAgICogcmVzdHJpY3QgcHJlZGljdGlvbnMgdG8gb25seSB0aG9zZSB3aXRoaW4gdGhlIHBhcmVudCBjb21wb25lbnQuIEZvclxyXG4gICAqIGV4YW1wbGUsIHRoZSBjb3VudHJ5LlxyXG4gICAqL1xyXG4gIHB1YmxpYyBzZXRDb21wb25lbnRSZXN0cmljdGlvbnMocmVzdHJpY3Rpb25zPzogZ29vZ2xlLm1hcHMucGxhY2VzLkNvbXBvbmVudFJlc3RyaWN0aW9ucyk6IHZvaWQge1xyXG4gICAgdGhpcy5fYXNzZXJ0SW5pdGlhbGl6ZWQoKVxyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1ub24tbnVsbC1hc3NlcnRpb25cclxuICAgIHJldHVybiB0aGlzLmF1dG9Db21wbGV0ZS5zZXRDb21wb25lbnRSZXN0cmljdGlvbnMocmVzdHJpY3Rpb25zISlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIGZpZWxkcyB0byBiZSBpbmNsdWRlZCBmb3IgdGhlIFBsYWNlIGluIHRoZSBkZXRhaWxzIHJlc3BvbnNlIHdoZW5cclxuICAgKiB0aGUgZGV0YWlscyBhcmUgc3VjY2Vzc2Z1bGx5IHJldHJpZXZlZC4gRm9yIGEgbGlzdCBvZiBmaWVsZHMgc2VlXHJcbiAgICogW1BsYWNlUmVzdWx0XShodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9tYXBzL2RvY3VtZW50YXRpb24vamF2YXNjcmlwdC9yZWZlcmVuY2UvcGxhY2VzLXNlcnZpY2UjUGxhY2VSZXN1bHQpLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBzZXRGaWVsZHMoZmllbGRzPzogc3RyaW5nW10pOiB2b2lkIHtcclxuICAgIHRoaXMuX2Fzc2VydEluaXRpYWxpemVkKClcclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tbm9uLW51bGwtYXNzZXJ0aW9uXHJcbiAgICByZXR1cm4gdGhpcy5hdXRvQ29tcGxldGUuc2V0RmllbGRzKGZpZWxkcyEpXHJcbiAgfVxyXG5cclxuICAvKiogKi9cclxuICBwdWJsaWMgc2V0T3B0aW9ucyhvcHRpb25zPzogZ29vZ2xlLm1hcHMucGxhY2VzLkF1dG9jb21wbGV0ZU9wdGlvbnMpOiB2b2lkIHtcclxuICAgIHRoaXMuX2Fzc2VydEluaXRpYWxpemVkKClcclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tbm9uLW51bGwtYXNzZXJ0aW9uXHJcbiAgICByZXR1cm4gdGhpcy5hdXRvQ29tcGxldGUuc2V0T3B0aW9ucyhvcHRpb25zISlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIHR5cGVzIG9mIHByZWRpY3Rpb25zIHRvIGJlIHJldHVybmVkLiBGb3Igc3VwcG9ydGVkIHR5cGVzLCBzZWUgdGhlXHJcbiAgICogW2RldmVsb3BlcidzIGd1aWRlXShodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9tYXBzL2RvY3VtZW50YXRpb24vamF2YXNjcmlwdC9wbGFjZXMtYXV0b2NvbXBsZXRlI2NvbnN0cmFpbi1wbGFjZS10eXBlcykuXHJcbiAgICogSWYgbm8gdHlwZXMgYXJlIHNwZWNpZmllZCwgYWxsIHR5cGVzIHdpbGwgYmUgcmV0dXJuZWQuXHJcbiAgICovXHJcbiAgcHVibGljIHNldFR5cGVzKHR5cGVzPzogc3RyaW5nW10pOiB2b2lkIHtcclxuICAgIHRoaXMuX2Fzc2VydEluaXRpYWxpemVkKClcclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tbm9uLW51bGwtYXNzZXJ0aW9uXHJcbiAgICByZXR1cm4gdGhpcy5hdXRvQ29tcGxldGUuc2V0VHlwZXModHlwZXMhKVxyXG4gIH1cclxuXHJcbiAgLyoqIEZvY3VzZXMgdGhlIGlucHV0LiAqL1xyXG4gIHB1YmxpYyBmb2N1cygpOiB2b2lkIHtcclxuICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpXHJcbiAgfVxyXG5cclxuICAvKiogVW5mb2N1c2VzIHRoZSBpbnB1dC4gKi9cclxuICBwdWJsaWMgYmx1cigpOiB2b2lkIHtcclxuICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5ibHVyKClcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRIb3N0RWxlbWVudCgpOiBIVE1MSW5wdXRFbGVtZW50IHtcclxuICAgIHJldHVybiB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnRcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2NyZWF0ZVBsYWNlQ2hhbmdlZE9ic2VydmFibGU8VD4oKTogT2JzZXJ2YWJsZTxUPiB7XHJcbiAgICBjb25zdCBvYnNlcnZhYmxlID0gbmV3IE9ic2VydmFibGU8VD4oc3Vic2NyaWJlciA9PiB7XHJcbiAgICAgIGlmICghdGhpcy5hdXRvQ29tcGxldGUpIHtcclxuICAgICAgICB0aGlzLl9wbGFjZUNoYW5nZWRQZW5kaW5nLnB1c2goeyBvYnNlcnZhYmxlLCBzdWJzY3JpYmVyIH0pXHJcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBzdWIgPSB0aGlzLl9hdXRvQ29tcGxldGVEaXJlY3RpdmUucGxhY2VDaGFuZ2VkLnN1YnNjcmliZShzdWJzY3JpYmVyKVxyXG5cclxuICAgICAgcmV0dXJuICgpID0+IHN1Yi51bnN1YnNjcmliZSgpXHJcbiAgICB9KVxyXG4gICAgcmV0dXJuIG9ic2VydmFibGVcclxuICB9XHJcblxyXG4gIC8qKiBBc3NlcnRzIHRoYXQgdGhlIG1hcCBoYXMgYmVlbiBpbml0aWFsaXplZC4gKi9cclxuICBwcml2YXRlIF9hc3NlcnRJbml0aWFsaXplZCgpOiBhc3NlcnRzIHRoaXMgaXMgV2l0aFJlcXVpcmVkPFRoZVNlYW1Hb29nbGVNYXBzUGxhY2VzQXV0b0NvbXBsZXRlQ29tcG9uZW50LCAnYXV0b0NvbXBsZXRlJz4ge1xyXG4gICAgaWYgKCF0aGlzLmF1dG9Db21wbGV0ZSAmJiAodHlwZW9mIG5nRGV2TW9kZSA9PT0gJ3VuZGVmaW5lZCcgfHwgbmdEZXZNb2RlKSkge1xyXG4gICAgICB0aHJvdyBFcnJvcihcclxuICAgICAgICAnQ2Fubm90IGFjY2VzcyBHb29nbGUgTWFwIFBsYWNlcyBpbmZvcm1hdGlvbiBiZWZvcmUgdGhlIEFQSSBoYXMgYmVlbiBpbml0aWFsaXplZC4gJyArXHJcbiAgICAgICAgICAnUGxlYXNlIHdhaXQgZm9yIHRoZSBBUEkgdG8gbG9hZCBiZWZvcmUgdHJ5aW5nIHRvIGludGVyYWN0IHdpdGggaXQuJyxcclxuICAgICAgKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIl19
195
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLW1hcHMtcGxhY2VzLWF1dG9jb21wbGV0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZ29vZ2xlLW1hcHMvZ29vZ2xlLW1hcHMtcGxhY2VzLWF1dG9jb21wbGV0ZS9nb29nbGUtbWFwcy1wbGFjZXMtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFnQixvQkFBb0IsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQzFFLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFNLE9BQU8sRUFBYyxNQUFNLE1BQU0sQ0FBQTtBQUNwRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUVyRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUNwRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLCtCQUErQixDQUFBO0FBRzlELE9BQU8sRUFBRSwrQ0FBK0MsRUFBRSw0Q0FBNEMsRUFBRSxNQUFNLDZDQUE2QyxDQUFBO0FBSzNKOztHQUVHO0FBUUgsTUFBTSxPQUFPLDRDQUE0QztJQTJFdkQsWUFDbUIsV0FBdUI7UUFBdkIsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUF6RXpCLG1CQUFjLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQTtRQUNwQyw4QkFBeUIsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFB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QWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2dCQUMvQyxRQUFRLEVBQUUsa0NBQWtDOzthQUM3Qzs7O1lBL0JDLFVBQVU7OztvQkEwQ1QsS0FBSzttQkFFTCxLQUFLO3VCQUVMLEtBQUs7MEJBRUwsS0FBSzswQkFFTCxLQUFLOzZCQUVMLEtBQUs7dUJBT0osS0FBSztzQkFLTixLQUFLOzJCQWVMLE1BQU07OEJBRU4sU0FBUyxTQUFDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtzQ0FFdkQsU0FBUyxTQUFDLDRDQUE0QyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTs0QkFXeEUsV0FBVyxTQUFDLGVBQWU7dUJBRzNCLFlBQVksU0FBQyxPQUFPLEVBQUUsQ0FBRSxPQUFPLENBQUU7dUJBS2pDLFlBQVksU0FBQyxPQUFPLEVBQUUsQ0FBRSxRQUFRLENBQUU7O0FBeERWO0lBQWYsWUFBWSxFQUFFOzhFQUErQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlTnVtYmVyUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0QmluZGluZyxcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgaW50ZXJ2YWwsIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0LCBTdWJzY3JpYmVyIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IGZpbHRlciwgbWFwVG8sIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcblxuaW1wb3J0IHsgZmFTZWFyY2hMb2NhdGlvbiB9IGZyb20gJ0Bmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29ucydcbmltcG9ydCB7IElucHV0Qm9vbGVhbiB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9jb3JlJ1xuaW1wb3J0IHsgSW5wdXREaXJlY3RpdmUgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vZm9ybS1maWVsZCdcbmltcG9ydCB7IFNlYW1JY29uIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL2ljb24nXG5cbmltcG9ydCB7IFNFQU1fR09PR0xFX1BMQUNFU19BVVRPQ09NUExFVEVfREVGQVVMVF9PUFRJT05TLCBUaGVTZWFtR29vZ2xlTWFwc1BsYWNlc0F1dG9jb21wbGV0ZURpcmVjdGl2ZSB9IGZyb20gJy4vZ29vZ2xlLW1hcHMtcGxhY2VzLWF1dG9jb21wbGV0ZS5kaXJlY3RpdmUnXG5cbmRlY2xhcmUgY29uc3QgbmdEZXZNb2RlOiBib29sZWFuIHwgdW5kZWZpbmVkXG50eXBlIFdpdGhSZXF1aXJlZDxULCBLIGV4dGVuZHMga2V5b2YgVD4gPSBUICYgeyBbUCBpbiBLXS0/OiBUW1BdIH1cblxuLyoqXG4gKlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZWFtLWdvb2dsZS1tYXBzLXBsYWNlcy1hdXRvY29tcGxldGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZ29vZ2xlLW1hcHMtcGxhY2VzLWF1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2dvb2dsZS1tYXBzLXBsYWNlcy1hdXRvY29tcGxldGUuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGV4cG9ydEFzOiAnc2VhbUdvb2dsZU1hcHNQbGFjZXNBdXRvQ29tcGxldGUnXG59KVxuZXhwb3J0IGNsYXNzIFRoZVNlYW1Hb29nbGVNYXBzUGxhY2VzQXV0b0NvbXBsZXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfZGlzYWJsZWQ6IEJvb2xlYW5JbnB1dFxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpXG4gIHByaXZhdGUgcmVhZG9ubHkgX2F1dG9Db21wbGV0ZVJlYWR5U3ViamVjdCA9IG5ldyBTdWJqZWN0KClcblxuICBwcml2YXRlIF9wbGFjZUNoYW5nZWRQZW5kaW5nOiB7IG9ic2VydmFibGU6IE9ic2VydmFibGU8YW55Piwgc3Vic2NyaWJlcjogU3Vic2NyaWJlcjxhbnk+IH1bXSA9IFtdXG5cbiAgcHVibGljIGF1dG9Db21wbGV0ZT86IGdvb2dsZS5tYXBzLnBsYWNlcy5BdXRvY29tcGxldGVcblxuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbCA9ICdTZWFyY2ggYnkgYWRkcmVzcywgcGxhY2Ugb3IgbmFtZSdcblxuICBASW5wdXQoKSBpY29uOiBTZWFtSWNvbiB8IHVuZGVmaW5lZCB8IG51bGwgPSBmYVNlYXJjaExvY2F0aW9uXG5cbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIGRpc2FibGVkOiBCb29sZWFuSW5wdXQgPSBmYWxzZVxuXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsID0gJ0VudGVyIGFkZHJlc3MsIHBsYWNlIG9yIG5hbWUnXG5cbiAgQElucHV0KCkgYXV0b2NvcnJlY3Q6ICdvZmYnIHwgJ29uJyB8IHVuZGVmaW5lZCB8IG51bGwgPSAnb2ZmJ1xuXG4gIEBJbnB1dCgpIGF1dG9jYXBpdGFsaXplOiAnb2ZmJyB8ICdvbicgfCB1bmRlZmluZWQgfCBudWxsID0gJ29mZidcblxuICAvKipcbiAgICogU2V0IHRoZSB0YWIgaW5kZXggdG8gYC0xYCB0byBhbGxvdyB0aGUgcm9vdCBlbGVtZW50IG9mIHRoZVxuICAgKiBjb21wb25lbnQgdG8gcmVjZWl2ZSBgZm9jdXNgIGV2ZW50IGZyb20gamF2YXNjcmlwdCwgYnV0IG5vdCBnZXQgZm9jdXNlZCBieVxuICAgKiBrZXlib2FyZCBuYXZpZ2F0aW9uLlxuICAgKi9cbiAgIEBJbnB1dCgpXG4gICBzZXQgdGFiSW5kZXgodmFsdWU6IG51bWJlcikgeyB0aGlzLl90YWJJbmRleCA9IGNvZXJjZU51bWJlclByb3BlcnR5KHZhbHVlKSB9XG4gICBnZXQgdGFiSW5kZXgoKTogbnVtYmVyIHsgcmV0dXJuIHRoaXMuX3RhYkluZGV4IH1cbiAgIHByaXZhdGUgX3RhYkluZGV4ID0gLTFcblxuICBASW5wdXQoKVxuICBzZXQgb3B0aW9ucyh2YWx1ZTogZ29vZ2xlLm1hcHMucGxhY2VzLkF1dG9jb21wbGV0ZU9wdGlvbnMgfCB1bmRlZmluZWQgfCBudWxsKSB7XG4gICAgdGhpcy5fb3B0aW9ucyA9IHZhbHVlIHx8IFNFQU1fR09PR0xFX1BMQUNFU19BVVRPQ09NUExFVEVfREVGQVVMVF9PUFRJT05TXG4gIH1cbiAgX29wdGlvbnM6IGdvb2dsZS5tYXBzLnBsYWNlcy5BdXRvY29tcGxldGVPcHRpb25zID0gU0VBTV9HT09HTEVfUExBQ0VTX0FVVE9DT01QTEVURV9ERUZBVUxUX09QVElPTlNcblxuICAvKipcbiAgICogVGhpcyBldmVudCBpcyBmaXJlZCB3aGVuIGEgUGxhY2VSZXN1bHQgaXMgbWFkZSBhdmFpbGFibGUgZm9yIGEgUGxhY2UgdGhlXG4gICAqIHVzZXIgaGFzIHNlbGVjdGVkLiBJZiB0aGUgdXNlciBlbnRlcnMgdGhlIG5hbWUgb2YgYSBQbGFjZSB0aGF0IHdhcyBub3RcbiAgICogc3VnZ2VzdGVkIGJ5IHRoZSBjb250cm9sIGFuZCBwcmVzc2VzIHRoZSBFbnRlciBrZXksIG9yIGlmIGEgUGxhY2UgRGV0YWlsc1xuICAgKiByZXF1ZXN0IGZhaWxzLCB0aGUgUGxhY2VSZXN1bHQgY29udGFpbnMgdGhlIHVzZXIgaW5wdXQgaW4gdGhlIG5hbWVcbiAgICogcHJvcGVydHksIHdpdGggbm8gb3RoZXIgcHJvcGVydGllcyBkZWZpbmVkLlxuICAgKlxuICAgKiBTZWU6IGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL21hcHMvZG9jdW1lbnRhdGlvbi9qYXZhc2NyaXB0L3JlZmVyZW5jZS9wbGFjZXMtd2lkZ2V0I0F1dG9jb21wbGV0ZS5wbGFjZV9jaGFuZ2VkXG4gICAqL1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgcGxhY2VDaGFuZ2VkOiBPYnNlcnZhYmxlPHZvaWQ+XG5cbiAgQFZpZXdDaGlsZCgnaW5wJywgeyByZWFkOiBJbnB1dERpcmVjdGl2ZSwgc3RhdGljOiB0cnVlIH0pIF9pbnB1dERpcmVjdGl2ZSE6IElucHV0RGlyZWN0aXZlXG5cbiAgQFZpZXdDaGlsZChUaGVTZWFtR29vZ2xlTWFwc1BsYWNlc0F1dG9jb21wbGV0ZURpcmVjdGl2ZSwgeyBzdGF0aWM6IHRydWUgfSlcbiAgc2V0IF9fYXV0b2NvbXBsZXRlRGlyZWN0aXZlKHZhbHVlOiBUaGVTZWFtR29vZ2xlTWFwc1BsYWNlc0F1dG9jb21wbGV0ZURpcmVjdGl2ZSkge1xuICAgIHRoaXMuX2F1dG9Db21wbGV0ZURpcmVjdGl2ZSA9IHZhbHVlXG4gICAgdGhpcy5fdW50aWxBdXRvQ29tcGxldGVSZWFkeSgpLnBpcGUodGFrZVVudGlsKHRoaXMuX25nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5hdXRvQ29tcGxldGUgPSB0aGlzLl9hdXRvQ29tcGxldGVEaXJlY3RpdmUuYXV0b0NvbXBsZXRlXG4gICAgICB0aGlzLl9wbGFjZUNoYW5nZWRQZW5kaW5nLmZvckVhY2gocGVuZGluZyA9PiBwZW5kaW5nLm9ic2VydmFibGUuc3Vic2NyaWJlKHBlbmRpbmcuc3Vic2NyaWJlcikpXG4gICAgICB0aGlzLl9wbGFjZUNoYW5nZWRQZW5kaW5nID0gW11cbiAgICB9KVxuICB9XG4gIF9hdXRvQ29tcGxldGVEaXJlY3RpdmUhOiBUaGVTZWFtR29vZ2xlTWFwc1BsYWNlc0F1dG9jb21wbGV0ZURpcmVjdGl2ZVxuXG4gIEBIb3N0QmluZGluZygnYXR0ci50YWJpbmRleCcpXG4gIGdldCBfYXR0clRhYkluZGV4KCkgeyByZXR1cm4gdGhpcy5kaXNhYmxlZCA/IC0xIDogKHRoaXMudGFiSW5kZXggfHwgMCkgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyAnZXZlbnQnIF0pXG4gIF9vbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5faW5wdXREaXJlY3RpdmUuZm9jdXMoKVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZm9jdXMnLCBbICckZXZlbnQnIF0pXG4gIF9vbkZvY3VzKCkge1xuICAgIHRoaXMuX2lucHV0RGlyZWN0aXZlPy5mb2N1cygpXG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICApIHtcbiAgICB0aGlzLnBsYWNlQ2hhbmdlZCA9IHRoaXMuX2F1dG9Db21wbGV0ZVJlYWR5U3ViamVjdC5waXBlKFxuICAgICAgc3RhcnRXaXRoKHVuZGVmaW5lZCksXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5fY3JlYXRlUGxhY2VDaGFuZ2VkT2JzZXJ2YWJsZTxhbnk+KCkpXG4gICAgKVxuICB9XG5cbiAgbmdPbkluaXQoKSB7IH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9uZ1Vuc3Vic2NyaWJlLm5leHQoKVxuICAgIHRoaXMuX25nVW5zdWJzY3JpYmUuY29tcGxldGUoKVxuICB9XG5cbiAgcHJpdmF0ZSBfdW50aWxBdXRvQ29tcGxldGVSZWFkeSgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gaW50ZXJ2YWwoNTAwKS5waXBlKFxuICAgICAgZmlsdGVyKCgpID0+ICEhdGhpcy5fYXV0b0NvbXBsZXRlRGlyZWN0aXZlLmF1dG9Db21wbGV0ZSksXG4gICAgICB0YWtlKDEpLFxuICAgICAgbWFwVG8odW5kZWZpbmVkKSxcbiAgICApXG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgYm91bmRzIHRvIHdoaWNoIHByZWRpY3Rpb25zIGFyZSBiaWFzZWQuXG4gICAqL1xuICAgcHVibGljIGdldEJvdW5kcygpOiBnb29nbGUubWFwcy5MYXRMbmdCb3VuZHMgfCB1bmRlZmluZWQge1xuICAgIHRoaXMuX2Fzc2VydEluaXRpYWxpemVkKClcbiAgICByZXR1cm4gdGhpcy5hdXRvQ29tcGxldGUuZ2V0Qm91bmRzKClcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBmaWVsZHMgdG8gYmUgaW5jbHVkZWQgZm9yIHRoZSBQbGFjZSBpbiB0aGUgZGV0YWlscyByZXNwb25zZVxuICAgKiB3aGVuIHRoZSBkZXRhaWxzIGFyZSBzdWNjZXNzZnVsbHkgcmV0cmlldmVkLiBGb3IgYSBsaXN0IG9mIGZpZWxkcyBzZWVcbiAgICogW1BsYWNlUmVzdWx0XShodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9tYXBzL2RvY3VtZW50YXRpb24vamF2YXNjcmlwdC9yZWZlcmVuY2UvcGxhY2VzLXNlcnZpY2UjUGxhY2VSZXN1bHQpLlxuICAgKi9cbiAgcHVibGljIGdldEZpZWxkcygpOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCB7XG4gICAgdGhpcy5fYXNzZXJ0SW5pdGlhbGl6ZWQoKVxuICAgIHJldHVybiAodGhpcy5hdXRvQ29tcGxldGUgYXMgYW55KS5nZXRGaWVsZHMoKVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGRldGFpbHMgb2YgdGhlIFBsYWNlIHNlbGVjdGVkIGJ5IHVzZXIgaWYgdGhlIGRldGFpbHMgd2VyZVxuICAgKiBzdWNjZXNzZnVsbHkgcmV0cmlldmVkLiBPdGhlcndpc2UgcmV0dXJucyBhIHN0dWIgUGxhY2Ugb2JqZWN0LCB3aXRoIHRoZVxuICAgKiBuYW1lIHByb3BlcnR5IHNldCB0byB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgaW5wdXQgZmllbGQuXG4gICAqL1xuICAgcHVibGljIGdldFBsYWNlKCk6IGdvb2dsZS5tYXBzLnBsYWNlcy5QbGFjZVJlc3VsdCB7XG4gICAgdGhpcy5fYXNzZXJ0SW5pdGlhbGl6ZWQoKVxuICAgIHJldHVybiB0aGlzLmF1dG9Db21wbGV0ZS5nZXRQbGFjZSgpXG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgcHJlZmVycmVkIGFyZWEgd2l0aGluIHdoaWNoIHRvIHJldHVybiBQbGFjZSByZXN1bHRzLiBSZXN1bHRzIGFyZVxuICAgKiBiaWFzZWQgdG93YXJkcywgYnV0IG5vdCByZXN0cmljdGVkIHRvLCB0aGlzIGFyZWEuXG4gICAqL1xuICBwdWJsaWMgc2V0Qm91bmRzKGJvdW5kcz86IGdvb2dsZS5tYXBzLkxhdExuZ0JvdW5kcyB8IGdvb2dsZS5tYXBzLkxhdExuZ0JvdW5kc0xpdGVyYWwpOiB2b2lkIHtcbiAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1ub24tbnVsbC1hc3NlcnRpb25cbiAgICByZXR1cm4gdGhpcy5hdXRvQ29tcGxldGUuc2V0Qm91bmRzKGJvdW5kcyEpXG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgY29tcG9uZW50IHJlc3RyaWN0aW9ucy4gQ29tcG9uZW50IHJlc3RyaWN0aW9ucyBhcmUgdXNlZCB0b1xuICAgKiByZXN0cmljdCBwcmVkaWN0aW9ucyB0byBvbmx5IHRob3NlIHdpdGhpbiB0aGUgcGFyZW50IGNvbXBvbmVudC4gRm9yXG4gICAqIGV4YW1wbGUsIHRoZSBjb3VudHJ5LlxuICAgKi9cbiAgcHVibGljIHNldENvbXBvbmVudFJlc3RyaWN0aW9ucyhyZXN0cmljdGlvbnM/OiBnb29nbGUubWFwcy5wbGFjZXMuQ29tcG9uZW50UmVzdHJpY3Rpb25zKTogdm9pZCB7XG4gICAgdGhpcy5fYXNzZXJ0SW5pdGlhbGl6ZWQoKVxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tbm9uLW51bGwtYXNzZXJ0aW9uXG4gICAgcmV0dXJuIHRoaXMuYXV0b0NvbXBsZXRlLnNldENvbXBvbmVudFJlc3RyaWN0aW9ucyhyZXN0cmljdGlvbnMhKVxuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGZpZWxkcyB0byBiZSBpbmNsdWRlZCBmb3IgdGhlIFBsYWNlIGluIHRoZSBkZXRhaWxzIHJlc3BvbnNlIHdoZW5cbiAgICogdGhlIGRldGFpbHMgYXJlIHN1Y2Nlc3NmdWxseSByZXRyaWV2ZWQuIEZvciBhIGxpc3Qgb2YgZmllbGRzIHNlZVxuICAgKiBbUGxhY2VSZXN1bHRdKGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL21hcHMvZG9jdW1lbnRhdGlvbi9qYXZhc2NyaXB0L3JlZmVyZW5jZS9wbGFjZXMtc2VydmljZSNQbGFjZVJlc3VsdCkuXG4gICAqL1xuICBwdWJsaWMgc2V0RmllbGRzKGZpZWxkcz86IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgdGhpcy5fYXNzZXJ0SW5pdGlhbGl6ZWQoKVxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tbm9uLW51bGwtYXNzZXJ0aW9uXG4gICAgcmV0dXJuIHRoaXMuYXV0b0NvbXBsZXRlLnNldEZpZWxkcyhmaWVsZHMhKVxuICB9XG5cbiAgLyoqICovXG4gIHB1YmxpYyBzZXRPcHRpb25zKG9wdGlvbnM/OiBnb29nbGUubWFwcy5wbGFjZXMuQXV0b2NvbXBsZXRlT3B0aW9ucyk6IHZvaWQge1xuICAgIHRoaXMuX2Fzc2VydEluaXRpYWxpemVkKClcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLW5vbi1udWxsLWFzc2VydGlvblxuICAgIHJldHVybiB0aGlzLmF1dG9Db21wbGV0ZS5zZXRPcHRpb25zKG9wdGlvbnMhKVxuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHR5cGVzIG9mIHByZWRpY3Rpb25zIHRvIGJlIHJldHVybmVkLiBGb3Igc3VwcG9ydGVkIHR5cGVzLCBzZWUgdGhlXG4gICAqIFtkZXZlbG9wZXIncyBndWlkZV0oaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vbWFwcy9kb2N1bWVudGF0aW9uL2phdmFzY3JpcHQvcGxhY2VzLWF1dG9jb21wbGV0ZSNjb25zdHJhaW4tcGxhY2UtdHlwZXMpLlxuICAgKiBJZiBubyB0eXBlcyBhcmUgc3BlY2lmaWVkLCBhbGwgdHlwZXMgd2lsbCBiZSByZXR1cm5lZC5cbiAgICovXG4gIHB1YmxpYyBzZXRUeXBlcyh0eXBlcz86IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgdGhpcy5fYXNzZXJ0SW5pdGlhbGl6ZWQoKVxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tbm9uLW51bGwtYXNzZXJ0aW9uXG4gICAgcmV0dXJuIHRoaXMuYXV0b0NvbXBsZXRlLnNldFR5cGVzKHR5cGVzISlcbiAgfVxuXG4gIC8qKiBGb2N1c2VzIHRoZSBpbnB1dC4gKi9cbiAgcHVibGljIGZvY3VzKCk6IHZvaWQge1xuICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpXG4gIH1cblxuICAvKiogVW5mb2N1c2VzIHRoZSBpbnB1dC4gKi9cbiAgcHVibGljIGJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmJsdXIoKVxuICB9XG5cbiAgcHVibGljIGdldEhvc3RFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnRcbiAgfVxuXG4gIHByaXZhdGUgX2NyZWF0ZVBsYWNlQ2hhbmdlZE9ic2VydmFibGU8VD4oKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgY29uc3Qgb2JzZXJ2YWJsZSA9IG5ldyBPYnNlcnZhYmxlPFQ+KHN1YnNjcmliZXIgPT4ge1xuICAgICAgaWYgKCF0aGlzLmF1dG9Db21wbGV0ZSkge1xuICAgICAgICB0aGlzLl9wbGFjZUNoYW5nZWRQZW5kaW5nLnB1c2goeyBvYnNlcnZhYmxlLCBzdWJzY3JpYmVyIH0pXG4gICAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICAgIH1cblxuICAgICAgY29uc3Qgc3ViID0gdGhpcy5fYXV0b0NvbXBsZXRlRGlyZWN0aXZlLnBsYWNlQ2hhbmdlZC5zdWJzY3JpYmUoc3Vic2NyaWJlcilcblxuICAgICAgcmV0dXJuICgpID0+IHN1Yi51bnN1YnNjcmliZSgpXG4gICAgfSlcbiAgICByZXR1cm4gb2JzZXJ2YWJsZVxuICB9XG5cbiAgLyoqIEFzc2VydHMgdGhhdCB0aGUgbWFwIGhhcyBiZWVuIGluaXRpYWxpemVkLiAqL1xuICBwcml2YXRlIF9hc3NlcnRJbml0aWFsaXplZCgpOiBhc3NlcnRzIHRoaXMgaXMgV2l0aFJlcXVpcmVkPFRoZVNlYW1Hb29nbGVNYXBzUGxhY2VzQXV0b0NvbXBsZXRlQ29tcG9uZW50LCAnYXV0b0NvbXBsZXRlJz4ge1xuICAgIGlmICghdGhpcy5hdXRvQ29tcGxldGUgJiYgKHR5cGVvZiBuZ0Rldk1vZGUgPT09ICd1bmRlZmluZWQnIHx8IG5nRGV2TW9kZSkpIHtcbiAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAnQ2Fubm90IGFjY2VzcyBHb29nbGUgTWFwIFBsYWNlcyBpbmZvcm1hdGlvbiBiZWZvcmUgdGhlIEFQSSBoYXMgYmVlbiBpbml0aWFsaXplZC4gJyArXG4gICAgICAgICAgJ1BsZWFzZSB3YWl0IGZvciB0aGUgQVBJIHRvIGxvYWQgYmVmb3JlIHRyeWluZyB0byBpbnRlcmFjdCB3aXRoIGl0LicsXG4gICAgICApXG4gICAgfVxuICB9XG5cbn1cbiJdfQ==
@@ -160,4 +160,4 @@ TheSeamGoogleMapsPlacesAutocompleteDirective.propDecorators = {
160
160
  placeChanged: [{ type: Output }],
161
161
  _attrType: [{ type: HostBinding, args: ['attr.type',] }]
162
162
  };
163
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLW1hcHMtcGxhY2VzLWF1dG9jb21wbGV0ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZ29vZ2xlLW1hcHMvZ29vZ2xlLW1hcHMtcGxhY2VzLWF1dG9jb21wbGV0ZS9nb29nbGUtbWFwcy1wbGFjZXMtYXV0b2NvbXBsZXRlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBZ0MsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQTtBQUN0SSxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQWMsTUFBTSxNQUFNLENBQUE7QUFDaEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFLckYsTUFBTSxDQUFDLE1BQU0sK0NBQStDLEdBQTJDO0lBQ3JHLHFCQUFxQixFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRTtDQUN6QyxDQUFBO0FBTUQsTUFBTSxPQUFPLDRDQUE0QztJQTRCdkQsWUFDbUIsV0FBeUMsRUFDekMsT0FBZTtRQURmLGdCQUFXLEdBQVgsV0FBVyxDQUE4QjtRQUN6QyxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBN0JqQiw4QkFBeUIsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFBO1FBQ3pDLG1CQUFjLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQTtRQUV2Qyx5QkFBb0IsR0FBbUUsRUFBRSxDQUFBO1FBQ3pGLGVBQVUsR0FBb0MsRUFBRSxDQUFBO1FBUWhELGFBQVEsR0FBMkMsK0NBQStDLENBQUE7UUFhaEYsY0FBUyxHQUFHLE1BQU0sQ0FBQTtRQU0xQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUks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SSxVQUFVLENBQUMsRUFBRTtZQUNoRCxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDdEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFBO2dCQUMxRCxPQUFPLFNBQVMsQ0FBQTthQUNqQjtZQUNELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFBRSxDQUFDLEtBQVEsRUFBRSxFQUFFO2dCQUMzRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7WUFDaEQsQ0FBQyxDQUFDLENBQUE7WUFDRixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtZQUU5QixPQUFPLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQTtRQUNoQyxDQUFDLENBQUMsQ0FBQTtRQUNGLE9BQU8sVUFBVSxDQUFBO0lBQ25CLENBQUM7SUFFRCxpREFBaUQ7SUFDekMsa0JBQWtCO1FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsT0FBTyxTQUFTLEtBQUssV0FBVyxJQUFJLFNBQVMsQ0FBQyxFQUFFO1lBQ3pFLE1BQU0sS0FBSyxDQUNULG1GQUFtRjtnQkFDakYsb0VBQW9FLENBQ3ZFLENBQUE7U0FDRjtJQUNILENBQUM7OztZQWhNRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHlDQUF5QztnQkFDbkQsUUFBUSxFQUFFLGtDQUFrQzthQUM3Qzs7O1lBZG1CLFVBQVU7WUFBc0IsTUFBTTs7O3NCQXdCdkQsS0FBSzsyQkFlTCxNQUFNO3dCQUVOLFdBQVcsU0FBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSW5wdXQsIE5nWm9uZSwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgaW50ZXJ2YWwsIE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmliZXIgfSBmcm9tICdyeGpzJ1xyXG5pbXBvcnQgeyBmaWx0ZXIsIG1hcFRvLCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFrZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXHJcblxyXG5kZWNsYXJlIGNvbnN0IG5nRGV2TW9kZTogYm9vbGVhbiB8IHVuZGVmaW5lZFxyXG50eXBlIFdpdGhSZXF1aXJlZDxULCBLIGV4dGVuZHMga2V5b2YgVD4gPSBUICYgeyBbUCBpbiBLXS0/OiBUW1BdIH1cclxuXHJcbmV4cG9ydCBjb25zdCBTRUFNX0dPT0dMRV9QTEFDRVNfQVVUT0NPTVBMRVRFX0RFRkFVTFRfT1BUSU9OUzogZ29vZ2xlLm1hcHMucGxhY2VzLkF1dG9jb21wbGV0ZU9wdGlvbnMgPSB7XHJcbiAgY29tcG9uZW50UmVzdHJpY3Rpb25zOiB7IGNvdW50cnk6ICdVUycgfVxyXG59XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ2lucHV0W3NlYW1Hb29nbGVNYXBzUGxhY2VzQXV0b2NvbXBsZXRlXScsXHJcbiAgZXhwb3J0QXM6ICdzZWFtR29vZ2xlTWFwc1BsYWNlc0F1dG9jb21wbGV0ZSdcclxufSlcclxuZXhwb3J0IGNsYXNzIFRoZVNlYW1Hb29nbGVNYXBzUGxhY2VzQXV0b2NvbXBsZXRlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfYXV0b0NvbXBsZXRlUmVhZHlTdWJqZWN0ID0gbmV3IFN1YmplY3QoKVxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpXHJcblxyXG4gIHByaXZhdGUgX3BsYWNlQ2hhbmdlZFBlbmRpbmc6IHsgb2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxhbnk+LCBzdWJzY3JpYmVyOiBTdWJzY3JpYmVyPGFueT4gfVtdID0gW11cclxuICBwcml2YXRlIF9saXN0ZW5lcnM6IGdvb2dsZS5tYXBzLk1hcHNFdmVudExpc3RlbmVyW10gPSBbXVxyXG5cclxuICBwdWJsaWMgYXV0b0NvbXBsZXRlPzogZ29vZ2xlLm1hcHMucGxhY2VzLkF1dG9jb21wbGV0ZVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBvcHRpb25zKHZhbHVlOiBnb29nbGUubWFwcy5wbGFjZXMuQXV0b2NvbXBsZXRlT3B0aW9ucyB8IHVuZGVmaW5lZCB8IG51bGwpIHtcclxuICAgIHRoaXMuX29wdGlvbnMgPSB2YWx1ZSB8fCBTRUFNX0dPT0dMRV9QTEFDRVNfQVVUT0NPTVBMRVRFX0RFRkFVTFRfT1BUSU9OU1xyXG4gIH1cclxuICBwcml2YXRlIF9vcHRpb25zOiBnb29nbGUubWFwcy5wbGFjZXMuQXV0b2NvbXBsZXRlT3B0aW9ucyA9IFNFQU1fR09PR0xFX1BMQUNFU19BVVRPQ09NUExFVEVfREVGQVVMVF9PUFRJT05TXHJcblxyXG4gIC8qKlxyXG4gICAqIFRoaXMgZXZlbnQgaXMgZmlyZWQgd2hlbiBhIFBsYWNlUmVzdWx0IGlzIG1hZGUgYXZhaWxhYmxlIGZvciBhIFBsYWNlIHRoZVxyXG4gICAqIHVzZXIgaGFzIHNlbGVjdGVkLiBJZiB0aGUgdXNlciBlbnRlcnMgdGhlIG5hbWUgb2YgYSBQbGFjZSB0aGF0IHdhcyBub3RcclxuICAgKiBzdWdnZXN0ZWQgYnkgdGhlIGNvbnRyb2wgYW5kIHByZXNzZXMgdGhlIEVudGVyIGtleSwgb3IgaWYgYSBQbGFjZSBEZXRhaWxzXHJcbiAgICogcmVxdWVzdCBmYWlscywgdGhlIFBsYWNlUmVzdWx0IGNvbnRhaW5zIHRoZSB1c2VyIGlucHV0IGluIHRoZSBuYW1lXHJcbiAgICogcHJvcGVydHksIHdpdGggbm8gb3RoZXIgcHJvcGVydGllcyBkZWZpbmVkLlxyXG4gICAqXHJcbiAgICogU2VlOiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9tYXBzL2RvY3VtZW50YXRpb24vamF2YXNjcmlwdC9yZWZlcmVuY2UvcGxhY2VzLXdpZGdldCNBdXRvY29tcGxldGUucGxhY2VfY2hhbmdlZFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSByZWFkb25seSBwbGFjZUNoYW5nZWQ6IE9ic2VydmFibGU8YW55PlxyXG5cclxuICBASG9zdEJpbmRpbmcoJ2F0dHIudHlwZScpIF9hdHRyVHlwZSA9ICd0ZXh0J1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4sXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9uZ1pvbmU6IE5nWm9uZSxcclxuICApIHtcclxuICAgIHRoaXMucGxhY2VDaGFuZ2VkID0gdGhpcy5fYXV0b0NvbXBsZXRlUmVhZHlTdWJqZWN0LnBpcGUoXHJcbiAgICAgIHN0YXJ0V2l0aCh1bmRlZmluZWQpLFxyXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5fY3JlYXRlUGxhY2VDaGFuZ2VkT2JzZXJ2YWJsZTxhbnk+KCkpXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XHJcbiAgICAgIHRoaXMuX3VudGlsR29vZ2xlTWFwc0FwaUxvYWRlZCgpLnBpcGUodGFrZVVudGlsKHRoaXMuX25nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuYXV0b0NvbXBsZXRlID0gbmV3IGdvb2dsZS5tYXBzLnBsYWNlcy5BdXRvY29tcGxldGUodGhpcy5nZXRIb3N0RWxlbWVudCgpLCB0aGlzLl9vcHRpb25zKVxyXG5cclxuICAgICAgICB0aGlzLl9wbGFjZUNoYW5nZWRQZW5kaW5nLmZvckVhY2gocGVuZGluZyA9PiBwZW5kaW5nLm9ic2VydmFibGUuc3Vic2NyaWJlKHBlbmRpbmcuc3Vic2NyaWJlcikpXHJcblxyXG4gICAgICAgIHRoaXMuX2F1dG9Db21wbGV0ZVJlYWR5U3ViamVjdC5uZXh0KClcclxuICAgICAgfSlcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2xpc3RlbmVycy5mb3JFYWNoKGwgPT4gbC5yZW1vdmUoKSlcclxuICAgIHRoaXMuX2xpc3RlbmVycyA9IFtdXHJcblxyXG4gICAgdGhpcy5fbmdVbnN1YnNjcmliZS5uZXh0KClcclxuICAgIHRoaXMuX25nVW5zdWJzY3JpYmUuY29tcGxldGUoKVxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuYXV0b0NvbXBsZXRlICYmIGNoYW5nZXNbJ29wdGlvbnMnXSkge1xyXG4gICAgICB0aGlzLmF1dG9Db21wbGV0ZS5zZXRPcHRpb25zKHRoaXMuX29wdGlvbnMpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF91bnRpbEdvb2dsZU1hcHNBcGlMb2FkZWQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XHJcbiAgICByZXR1cm4gaW50ZXJ2YWwoNTAwKS5waXBlKFxyXG4gICAgICBmaWx0ZXIoKCkgPT4gISEod2luZG93Lmdvb2dsZSAmJiB3aW5kb3cuZ29vZ2xlLm1hcHMgJiYgd2luZG93Lmdvb2dsZS5tYXBzLnZlcnNpb24pKSxcclxuICAgICAgdGFrZSgxKSxcclxuICAgICAgbWFwVG8odW5kZWZpbmVkKSxcclxuICAgIClcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIGJvdW5kcyB0byB3aGljaCBwcmVkaWN0aW9ucyBhcmUgYmlhc2VkLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRCb3VuZHMoKTogZ29vZ2xlLm1hcHMuTGF0TG5nQm91bmRzIHwgdW5kZWZpbmVkIHtcclxuICAgIHRoaXMuX2Fzc2VydEluaXRpYWxpemVkKClcclxuICAgIHJldHVybiB0aGlzLmF1dG9Db21wbGV0ZS5nZXRCb3VuZHMoKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgZmllbGRzIHRvIGJlIGluY2x1ZGVkIGZvciB0aGUgUGxhY2UgaW4gdGhlIGRldGFpbHMgcmVzcG9uc2VcclxuICAgKiB3aGVuIHRoZSBkZXRhaWxzIGFyZSBzdWNjZXNzZnVsbHkgcmV0cmlldmVkLiBGb3IgYSBsaXN0IG9mIGZpZWxkcyBzZWVcclxuICAgKiBbUGxhY2VSZXN1bHRdKGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL21hcHMvZG9jdW1lbnRhdGlvbi9qYXZhc2NyaXB0L3JlZmVyZW5jZS9wbGFjZXMtc2VydmljZSNQbGFjZVJlc3VsdCkuXHJcbiAgICovXHJcbiAgcHVibGljIGdldEZpZWxkcygpOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCB7XHJcbiAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpXHJcbiAgICByZXR1cm4gKHRoaXMuYXV0b0NvbXBsZXRlIGFzIGFueSkuZ2V0RmllbGRzKClcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIGRldGFpbHMgb2YgdGhlIFBsYWNlIHNlbGVjdGVkIGJ5IHVzZXIgaWYgdGhlIGRldGFpbHMgd2VyZVxyXG4gICAqIHN1Y2Nlc3NmdWxseSByZXRyaWV2ZWQuIE90aGVyd2lzZSByZXR1cm5zIGEgc3R1YiBQbGFjZSBvYmplY3QsIHdpdGggdGhlXHJcbiAgICogbmFtZSBwcm9wZXJ0eSBzZXQgdG8gdGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIGlucHV0IGZpZWxkLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRQbGFjZSgpOiBnb29nbGUubWFwcy5wbGFjZXMuUGxhY2VSZXN1bHQge1xyXG4gICAgdGhpcy5fYXNzZXJ0SW5pdGlhbGl6ZWQoKVxyXG4gICAgcmV0dXJuIHRoaXMuYXV0b0NvbXBsZXRlLmdldFBsYWNlKClcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIHByZWZlcnJlZCBhcmVhIHdpdGhpbiB3aGljaCB0byByZXR1cm4gUGxhY2UgcmVzdWx0cy4gUmVzdWx0cyBhcmVcclxuICAgKiBiaWFzZWQgdG93YXJkcywgYnV0IG5vdCByZXN0cmljdGVkIHRvLCB0aGlzIGFyZWEuXHJcbiAgICovXHJcbiAgcHVibGljIHNldEJvdW5kcyhib3VuZHM/OiBnb29nbGUubWFwcy5MYXRMbmdCb3VuZHMgfCBnb29nbGUubWFwcy5MYXRMbmdCb3VuZHNMaXRlcmFsKTogdm9pZCB7XHJcbiAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpXHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLW5vbi1udWxsLWFzc2VydGlvblxyXG4gICAgcmV0dXJuIHRoaXMuYXV0b0NvbXBsZXRlLnNldEJvdW5kcyhib3VuZHMhKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgY29tcG9uZW50IHJlc3RyaWN0aW9ucy4gQ29tcG9uZW50IHJlc3RyaWN0aW9ucyBhcmUgdXNlZCB0b1xyXG4gICAqIHJlc3RyaWN0IHByZWRpY3Rpb25zIHRvIG9ubHkgdGhvc2Ugd2l0aGluIHRoZSBwYXJlbnQgY29tcG9uZW50LiBGb3JcclxuICAgKiBleGFtcGxlLCB0aGUgY291bnRyeS5cclxuICAgKi9cclxuICBwdWJsaWMgc2V0Q29tcG9uZW50UmVzdHJpY3Rpb25zKHJlc3RyaWN0aW9ucz86IGdvb2dsZS5tYXBzLnBsYWNlcy5Db21wb25lbnRSZXN0cmljdGlvbnMpOiB2b2lkIHtcclxuICAgIHRoaXMuX2Fzc2VydEluaXRpYWxpemVkKClcclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tbm9uLW51bGwtYXNzZXJ0aW9uXHJcbiAgICByZXR1cm4gdGhpcy5hdXRvQ29tcGxldGUuc2V0Q29tcG9uZW50UmVzdHJpY3Rpb25zKHJlc3RyaWN0aW9ucyEpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSBmaWVsZHMgdG8gYmUgaW5jbHVkZWQgZm9yIHRoZSBQbGFjZSBpbiB0aGUgZGV0YWlscyByZXNwb25zZSB3aGVuXHJcbiAgICogdGhlIGRldGFpbHMgYXJlIHN1Y2Nlc3NmdWxseSByZXRyaWV2ZWQuIEZvciBhIGxpc3Qgb2YgZmllbGRzIHNlZVxyXG4gICAqIFtQbGFjZVJlc3VsdF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vbWFwcy9kb2N1bWVudGF0aW9uL2phdmFzY3JpcHQvcmVmZXJlbmNlL3BsYWNlcy1zZXJ2aWNlI1BsYWNlUmVzdWx0KS5cclxuICAgKi9cclxuICBwdWJsaWMgc2V0RmllbGRzKGZpZWxkcz86IHN0cmluZ1tdKTogdm9pZCB7XHJcbiAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpXHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLW5vbi1udWxsLWFzc2VydGlvblxyXG4gICAgcmV0dXJuIHRoaXMuYXV0b0NvbXBsZXRlLnNldEZpZWxkcyhmaWVsZHMhKVxyXG4gIH1cclxuXHJcbiAgLyoqICovXHJcbiAgcHVibGljIHNldE9wdGlvbnMob3B0aW9ucz86IGdvb2dsZS5tYXBzLnBsYWNlcy5BdXRvY29tcGxldGVPcHRpb25zKTogdm9pZCB7XHJcbiAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpXHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLW5vbi1udWxsLWFzc2VydGlvblxyXG4gICAgcmV0dXJuIHRoaXMuYXV0b0NvbXBsZXRlLnNldE9wdGlvbnMob3B0aW9ucyEpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSB0eXBlcyBvZiBwcmVkaWN0aW9ucyB0byBiZSByZXR1cm5lZC4gRm9yIHN1cHBvcnRlZCB0eXBlcywgc2VlIHRoZVxyXG4gICAqIFtkZXZlbG9wZXIncyBndWlkZV0oaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vbWFwcy9kb2N1bWVudGF0aW9uL2phdmFzY3JpcHQvcGxhY2VzLWF1dG9jb21wbGV0ZSNjb25zdHJhaW4tcGxhY2UtdHlwZXMpLlxyXG4gICAqIElmIG5vIHR5cGVzIGFyZSBzcGVjaWZpZWQsIGFsbCB0eXBlcyB3aWxsIGJlIHJldHVybmVkLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBzZXRUeXBlcyh0eXBlcz86IHN0cmluZ1tdKTogdm9pZCB7XHJcbiAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpXHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLW5vbi1udWxsLWFzc2VydGlvblxyXG4gICAgcmV0dXJuIHRoaXMuYXV0b0NvbXBsZXRlLnNldFR5cGVzKHR5cGVzISlcclxuICB9XHJcblxyXG4gIC8qKiBGb2N1c2VzIHRoZSBpbnB1dC4gKi9cclxuICBwdWJsaWMgZm9jdXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKVxyXG4gIH1cclxuXHJcbiAgLyoqIFVuZm9jdXNlcyB0aGUgaW5wdXQuICovXHJcbiAgcHVibGljIGJsdXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuYmx1cigpXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0SG9zdEVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB7XHJcbiAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jcmVhdGVQbGFjZUNoYW5nZWRPYnNlcnZhYmxlPFQ+KCk6IE9ic2VydmFibGU8VD4ge1xyXG4gICAgY29uc3Qgb2JzZXJ2YWJsZSA9IG5ldyBPYnNlcnZhYmxlPFQ+KHN1YnNjcmliZXIgPT4ge1xyXG4gICAgICBpZiAoIXRoaXMuYXV0b0NvbXBsZXRlKSB7XHJcbiAgICAgICAgdGhpcy5fcGxhY2VDaGFuZ2VkUGVuZGluZy5wdXNoKHsgb2JzZXJ2YWJsZSwgc3Vic2NyaWJlciB9KVxyXG4gICAgICAgIHJldHVybiB1bmRlZmluZWRcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBsaXN0ZW5lciA9IHRoaXMuYXV0b0NvbXBsZXRlLmFkZExpc3RlbmVyKCdwbGFjZV9jaGFuZ2VkJywgKGV2ZW50OiBUKSA9PiB7XHJcbiAgICAgICAgdGhpcy5fbmdab25lLnJ1bigoKSA9PiBzdWJzY3JpYmVyLm5leHQoZXZlbnQpKVxyXG4gICAgICB9KVxyXG4gICAgICB0aGlzLl9saXN0ZW5lcnMucHVzaChsaXN0ZW5lcilcclxuXHJcbiAgICAgIHJldHVybiAoKSA9PiBsaXN0ZW5lci5yZW1vdmUoKVxyXG4gICAgfSlcclxuICAgIHJldHVybiBvYnNlcnZhYmxlXHJcbiAgfVxyXG5cclxuICAvKiogQXNzZXJ0cyB0aGF0IHRoZSBtYXAgaGFzIGJlZW4gaW5pdGlhbGl6ZWQuICovXHJcbiAgcHJpdmF0ZSBfYXNzZXJ0SW5pdGlhbGl6ZWQoKTogYXNzZXJ0cyB0aGlzIGlzIFdpdGhSZXF1aXJlZDxUaGVTZWFtR29vZ2xlTWFwc1BsYWNlc0F1dG9jb21wbGV0ZURpcmVjdGl2ZSwgJ2F1dG9Db21wbGV0ZSc+IHtcclxuICAgIGlmICghdGhpcy5hdXRvQ29tcGxldGUgJiYgKHR5cGVvZiBuZ0Rldk1vZGUgPT09ICd1bmRlZmluZWQnIHx8IG5nRGV2TW9kZSkpIHtcclxuICAgICAgdGhyb3cgRXJyb3IoXHJcbiAgICAgICAgJ0Nhbm5vdCBhY2Nlc3MgR29vZ2xlIE1hcCBQbGFjZXMgaW5mb3JtYXRpb24gYmVmb3JlIHRoZSBBUEkgaGFzIGJlZW4gaW5pdGlhbGl6ZWQuICcgK1xyXG4gICAgICAgICAgJ1BsZWFzZSB3YWl0IGZvciB0aGUgQVBJIHRvIGxvYWQgYmVmb3JlIHRyeWluZyB0byBpbnRlcmFjdCB3aXRoIGl0LicsXHJcbiAgICAgIClcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
163
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLW1hcHMtcGxhY2VzLWF1dG9jb21wbGV0ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZ29vZ2xlLW1hcHMvZ29vZ2xlLW1hcHMtcGxhY2VzLWF1dG9jb21wbGV0ZS9nb29nbGUtbWFwcy1wbGFjZXMtYXV0b2NvbXBsZXRlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBZ0MsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQTtBQUN0SSxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQWMsTUFBTSxNQUFNLENBQUE7QUFDaEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFLckYsTUFBTSxDQUFDLE1BQU0sK0NBQStDLEdBQTJDO0lBQ3JHLHFCQUFxQixFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRTtDQUN6QyxDQUFBO0FBTUQsTUFBTSxPQUFPLDRDQUE0QztJQTRCdkQsWUFDbUIsV0FBeUMsRUFDekMsT0FBZTtRQURmLGdCQUFXLEdBQVgsV0FBVyxDQUE4QjtRQUN6QyxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBN0JqQiw4QkFBeUIsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFBO1FBQ3pDLG1CQUFjLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQTtRQUV2Qyx5QkFBb0IsR0FBbUUsRUFBRSxDQUFBO1FBQ3pGLGVBQVUsR0FBb0MsRUFBRSxDQUFBO1FBUWhELGFBQVEsR0FBMkMsK0NBQStDLENBQUE7UUFhaEYsY0FBUyxHQUFHLE1BQU0sQ0FBQTtRQU0xQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUks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SSxVQUFVLENBQUMsRUFBRTtZQUNoRCxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDdEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFBO2dCQUMxRCxPQUFPLFNBQVMsQ0FBQTthQUNqQjtZQUNELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFBRSxDQUFDLEtBQVEsRUFBRSxFQUFFO2dCQUMzRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7WUFDaEQsQ0FBQyxDQUFDLENBQUE7WUFDRixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtZQUU5QixPQUFPLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQTtRQUNoQyxDQUFDLENBQUMsQ0FBQTtRQUNGLE9BQU8sVUFBVSxDQUFBO0lBQ25CLENBQUM7SUFFRCxpREFBaUQ7SUFDekMsa0JBQWtCO1FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsT0FBTyxTQUFTLEtBQUssV0FBVyxJQUFJLFNBQVMsQ0FBQyxFQUFFO1lBQ3pFLE1BQU0sS0FBSyxDQUNULG1GQUFtRjtnQkFDakYsb0VBQW9FLENBQ3ZFLENBQUE7U0FDRjtJQUNILENBQUM7OztZQWhNRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHlDQUF5QztnQkFDbkQsUUFBUSxFQUFFLGtDQUFrQzthQUM3Qzs7O1lBZG1CLFVBQVU7WUFBc0IsTUFBTTs7O3NCQXdCdkQsS0FBSzsyQkFlTCxNQUFNO3dCQUVOLFdBQVcsU0FBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSW5wdXQsIE5nWm9uZSwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IGludGVydmFsLCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpYmVyIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IGZpbHRlciwgbWFwVG8sIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcblxuZGVjbGFyZSBjb25zdCBuZ0Rldk1vZGU6IGJvb2xlYW4gfCB1bmRlZmluZWRcbnR5cGUgV2l0aFJlcXVpcmVkPFQsIEsgZXh0ZW5kcyBrZXlvZiBUPiA9IFQgJiB7IFtQIGluIEtdLT86IFRbUF0gfVxuXG5leHBvcnQgY29uc3QgU0VBTV9HT09HTEVfUExBQ0VTX0FVVE9DT01QTEVURV9ERUZBVUxUX09QVElPTlM6IGdvb2dsZS5tYXBzLnBsYWNlcy5BdXRvY29tcGxldGVPcHRpb25zID0ge1xuICBjb21wb25lbnRSZXN0cmljdGlvbnM6IHsgY291bnRyeTogJ1VTJyB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ2lucHV0W3NlYW1Hb29nbGVNYXBzUGxhY2VzQXV0b2NvbXBsZXRlXScsXG4gIGV4cG9ydEFzOiAnc2VhbUdvb2dsZU1hcHNQbGFjZXNBdXRvY29tcGxldGUnXG59KVxuZXhwb3J0IGNsYXNzIFRoZVNlYW1Hb29nbGVNYXBzUGxhY2VzQXV0b2NvbXBsZXRlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2F1dG9Db21wbGV0ZVJlYWR5U3ViamVjdCA9IG5ldyBTdWJqZWN0KClcbiAgcHJpdmF0ZSByZWFkb25seSBfbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0KClcblxuICBwcml2YXRlIF9wbGFjZUNoYW5nZWRQZW5kaW5nOiB7IG9ic2VydmFibGU6IE9ic2VydmFibGU8YW55Piwgc3Vic2NyaWJlcjogU3Vic2NyaWJlcjxhbnk+IH1bXSA9IFtdXG4gIHByaXZhdGUgX2xpc3RlbmVyczogZ29vZ2xlLm1hcHMuTWFwc0V2ZW50TGlzdGVuZXJbXSA9IFtdXG5cbiAgcHVibGljIGF1dG9Db21wbGV0ZT86IGdvb2dsZS5tYXBzLnBsYWNlcy5BdXRvY29tcGxldGVcblxuICBASW5wdXQoKVxuICBzZXQgb3B0aW9ucyh2YWx1ZTogZ29vZ2xlLm1hcHMucGxhY2VzLkF1dG9jb21wbGV0ZU9wdGlvbnMgfCB1bmRlZmluZWQgfCBudWxsKSB7XG4gICAgdGhpcy5fb3B0aW9ucyA9IHZhbHVlIHx8IFNFQU1fR09PR0xFX1BMQUNFU19BVVRPQ09NUExFVEVfREVGQVVMVF9PUFRJT05TXG4gIH1cbiAgcHJpdmF0ZSBfb3B0aW9uczogZ29vZ2xlLm1hcHMucGxhY2VzLkF1dG9jb21wbGV0ZU9wdGlvbnMgPSBTRUFNX0dPT0dMRV9QTEFDRVNfQVVUT0NPTVBMRVRFX0RFRkFVTFRfT1BUSU9OU1xuXG4gIC8qKlxuICAgKiBUaGlzIGV2ZW50IGlzIGZpcmVkIHdoZW4gYSBQbGFjZVJlc3VsdCBpcyBtYWRlIGF2YWlsYWJsZSBmb3IgYSBQbGFjZSB0aGVcbiAgICogdXNlciBoYXMgc2VsZWN0ZWQuIElmIHRoZSB1c2VyIGVudGVycyB0aGUgbmFtZSBvZiBhIFBsYWNlIHRoYXQgd2FzIG5vdFxuICAgKiBzdWdnZXN0ZWQgYnkgdGhlIGNvbnRyb2wgYW5kIHByZXNzZXMgdGhlIEVudGVyIGtleSwgb3IgaWYgYSBQbGFjZSBEZXRhaWxzXG4gICAqIHJlcXVlc3QgZmFpbHMsIHRoZSBQbGFjZVJlc3VsdCBjb250YWlucyB0aGUgdXNlciBpbnB1dCBpbiB0aGUgbmFtZVxuICAgKiBwcm9wZXJ0eSwgd2l0aCBubyBvdGhlciBwcm9wZXJ0aWVzIGRlZmluZWQuXG4gICAqXG4gICAqIFNlZTogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vbWFwcy9kb2N1bWVudGF0aW9uL2phdmFzY3JpcHQvcmVmZXJlbmNlL3BsYWNlcy13aWRnZXQjQXV0b2NvbXBsZXRlLnBsYWNlX2NoYW5nZWRcbiAgICovXG4gIEBPdXRwdXQoKSByZWFkb25seSBwbGFjZUNoYW5nZWQ6IE9ic2VydmFibGU8YW55PlxuXG4gIEBIb3N0QmluZGluZygnYXR0ci50eXBlJykgX2F0dHJUeXBlID0gJ3RleHQnXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PixcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9uZ1pvbmU6IE5nWm9uZSxcbiAgKSB7XG4gICAgdGhpcy5wbGFjZUNoYW5nZWQgPSB0aGlzLl9hdXRvQ29tcGxldGVSZWFkeVN1YmplY3QucGlwZShcbiAgICAgIHN0YXJ0V2l0aCh1bmRlZmluZWQpLFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuX2NyZWF0ZVBsYWNlQ2hhbmdlZE9ic2VydmFibGU8YW55PigpKVxuICAgIClcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICB0aGlzLl91bnRpbEdvb2dsZU1hcHNBcGlMb2FkZWQoKS5waXBlKHRha2VVbnRpbCh0aGlzLl9uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5hdXRvQ29tcGxldGUgPSBuZXcgZ29vZ2xlLm1hcHMucGxhY2VzLkF1dG9jb21wbGV0ZSh0aGlzLmdldEhvc3RFbGVtZW50KCksIHRoaXMuX29wdGlvbnMpXG5cbiAgICAgICAgdGhpcy5fcGxhY2VDaGFuZ2VkUGVuZGluZy5mb3JFYWNoKHBlbmRpbmcgPT4gcGVuZGluZy5vYnNlcnZhYmxlLnN1YnNjcmliZShwZW5kaW5nLnN1YnNjcmliZXIpKVxuXG4gICAgICAgIHRoaXMuX2F1dG9Db21wbGV0ZVJlYWR5U3ViamVjdC5uZXh0KClcbiAgICAgIH0pXG4gICAgfSlcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2xpc3RlbmVycy5mb3JFYWNoKGwgPT4gbC5yZW1vdmUoKSlcbiAgICB0aGlzLl9saXN0ZW5lcnMgPSBbXVxuXG4gICAgdGhpcy5fbmdVbnN1YnNjcmliZS5uZXh0KClcbiAgICB0aGlzLl9uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKClcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hdXRvQ29tcGxldGUgJiYgY2hhbmdlc1snb3B0aW9ucyddKSB7XG4gICAgICB0aGlzLmF1dG9Db21wbGV0ZS5zZXRPcHRpb25zKHRoaXMuX29wdGlvbnMpXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfdW50aWxHb29nbGVNYXBzQXBpTG9hZGVkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiBpbnRlcnZhbCg1MDApLnBpcGUoXG4gICAgICBmaWx0ZXIoKCkgPT4gISEod2luZG93Lmdvb2dsZSAmJiB3aW5kb3cuZ29vZ2xlLm1hcHMgJiYgd2luZG93Lmdvb2dsZS5tYXBzLnZlcnNpb24pKSxcbiAgICAgIHRha2UoMSksXG4gICAgICBtYXBUbyh1bmRlZmluZWQpLFxuICAgIClcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBib3VuZHMgdG8gd2hpY2ggcHJlZGljdGlvbnMgYXJlIGJpYXNlZC5cbiAgICovXG4gIHB1YmxpYyBnZXRCb3VuZHMoKTogZ29vZ2xlLm1hcHMuTGF0TG5nQm91bmRzIHwgdW5kZWZpbmVkIHtcbiAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpXG4gICAgcmV0dXJuIHRoaXMuYXV0b0NvbXBsZXRlLmdldEJvdW5kcygpXG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZmllbGRzIHRvIGJlIGluY2x1ZGVkIGZvciB0aGUgUGxhY2UgaW4gdGhlIGRldGFpbHMgcmVzcG9uc2VcbiAgICogd2hlbiB0aGUgZGV0YWlscyBhcmUgc3VjY2Vzc2Z1bGx5IHJldHJpZXZlZC4gRm9yIGEgbGlzdCBvZiBmaWVsZHMgc2VlXG4gICAqIFtQbGFjZVJlc3VsdF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vbWFwcy9kb2N1bWVudGF0aW9uL2phdmFzY3JpcHQvcmVmZXJlbmNlL3BsYWNlcy1zZXJ2aWNlI1BsYWNlUmVzdWx0KS5cbiAgICovXG4gIHB1YmxpYyBnZXRGaWVsZHMoKTogc3RyaW5nW10gfCB1bmRlZmluZWQge1xuICAgIHRoaXMuX2Fzc2VydEluaXRpYWxpemVkKClcbiAgICByZXR1cm4gKHRoaXMuYXV0b0NvbXBsZXRlIGFzIGFueSkuZ2V0RmllbGRzKClcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBkZXRhaWxzIG9mIHRoZSBQbGFjZSBzZWxlY3RlZCBieSB1c2VyIGlmIHRoZSBkZXRhaWxzIHdlcmVcbiAgICogc3VjY2Vzc2Z1bGx5IHJldHJpZXZlZC4gT3RoZXJ3aXNlIHJldHVybnMgYSBzdHViIFBsYWNlIG9iamVjdCwgd2l0aCB0aGVcbiAgICogbmFtZSBwcm9wZXJ0eSBzZXQgdG8gdGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIGlucHV0IGZpZWxkLlxuICAgKi9cbiAgcHVibGljIGdldFBsYWNlKCk6IGdvb2dsZS5tYXBzLnBsYWNlcy5QbGFjZVJlc3VsdCB7XG4gICAgdGhpcy5fYXNzZXJ0SW5pdGlhbGl6ZWQoKVxuICAgIHJldHVybiB0aGlzLmF1dG9Db21wbGV0ZS5nZXRQbGFjZSgpXG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgcHJlZmVycmVkIGFyZWEgd2l0aGluIHdoaWNoIHRvIHJldHVybiBQbGFjZSByZXN1bHRzLiBSZXN1bHRzIGFyZVxuICAgKiBiaWFzZWQgdG93YXJkcywgYnV0IG5vdCByZXN0cmljdGVkIHRvLCB0aGlzIGFyZWEuXG4gICAqL1xuICBwdWJsaWMgc2V0Qm91bmRzKGJvdW5kcz86IGdvb2dsZS5tYXBzLkxhdExuZ0JvdW5kcyB8IGdvb2dsZS5tYXBzLkxhdExuZ0JvdW5kc0xpdGVyYWwpOiB2b2lkIHtcbiAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1ub24tbnVsbC1hc3NlcnRpb25cbiAgICByZXR1cm4gdGhpcy5hdXRvQ29tcGxldGUuc2V0Qm91bmRzKGJvdW5kcyEpXG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgY29tcG9uZW50IHJlc3RyaWN0aW9ucy4gQ29tcG9uZW50IHJlc3RyaWN0aW9ucyBhcmUgdXNlZCB0b1xuICAgKiByZXN0cmljdCBwcmVkaWN0aW9ucyB0byBvbmx5IHRob3NlIHdpdGhpbiB0aGUgcGFyZW50IGNvbXBvbmVudC4gRm9yXG4gICAqIGV4YW1wbGUsIHRoZSBjb3VudHJ5LlxuICAgKi9cbiAgcHVibGljIHNldENvbXBvbmVudFJlc3RyaWN0aW9ucyhyZXN0cmljdGlvbnM/OiBnb29nbGUubWFwcy5wbGFjZXMuQ29tcG9uZW50UmVzdHJpY3Rpb25zKTogdm9pZCB7XG4gICAgdGhpcy5fYXNzZXJ0SW5pdGlhbGl6ZWQoKVxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tbm9uLW51bGwtYXNzZXJ0aW9uXG4gICAgcmV0dXJuIHRoaXMuYXV0b0NvbXBsZXRlLnNldENvbXBvbmVudFJlc3RyaWN0aW9ucyhyZXN0cmljdGlvbnMhKVxuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGZpZWxkcyB0byBiZSBpbmNsdWRlZCBmb3IgdGhlIFBsYWNlIGluIHRoZSBkZXRhaWxzIHJlc3BvbnNlIHdoZW5cbiAgICogdGhlIGRldGFpbHMgYXJlIHN1Y2Nlc3NmdWxseSByZXRyaWV2ZWQuIEZvciBhIGxpc3Qgb2YgZmllbGRzIHNlZVxuICAgKiBbUGxhY2VSZXN1bHRdKGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL21hcHMvZG9jdW1lbnRhdGlvbi9qYXZhc2NyaXB0L3JlZmVyZW5jZS9wbGFjZXMtc2VydmljZSNQbGFjZVJlc3VsdCkuXG4gICAqL1xuICBwdWJsaWMgc2V0RmllbGRzKGZpZWxkcz86IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgdGhpcy5fYXNzZXJ0SW5pdGlhbGl6ZWQoKVxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tbm9uLW51bGwtYXNzZXJ0aW9uXG4gICAgcmV0dXJuIHRoaXMuYXV0b0NvbXBsZXRlLnNldEZpZWxkcyhmaWVsZHMhKVxuICB9XG5cbiAgLyoqICovXG4gIHB1YmxpYyBzZXRPcHRpb25zKG9wdGlvbnM/OiBnb29nbGUubWFwcy5wbGFjZXMuQXV0b2NvbXBsZXRlT3B0aW9ucyk6IHZvaWQge1xuICAgIHRoaXMuX2Fzc2VydEluaXRpYWxpemVkKClcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLW5vbi1udWxsLWFzc2VydGlvblxuICAgIHJldHVybiB0aGlzLmF1dG9Db21wbGV0ZS5zZXRPcHRpb25zKG9wdGlvbnMhKVxuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHR5cGVzIG9mIHByZWRpY3Rpb25zIHRvIGJlIHJldHVybmVkLiBGb3Igc3VwcG9ydGVkIHR5cGVzLCBzZWUgdGhlXG4gICAqIFtkZXZlbG9wZXIncyBndWlkZV0oaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vbWFwcy9kb2N1bWVudGF0aW9uL2phdmFzY3JpcHQvcGxhY2VzLWF1dG9jb21wbGV0ZSNjb25zdHJhaW4tcGxhY2UtdHlwZXMpLlxuICAgKiBJZiBubyB0eXBlcyBhcmUgc3BlY2lmaWVkLCBhbGwgdHlwZXMgd2lsbCBiZSByZXR1cm5lZC5cbiAgICovXG4gIHB1YmxpYyBzZXRUeXBlcyh0eXBlcz86IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgdGhpcy5fYXNzZXJ0SW5pdGlhbGl6ZWQoKVxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tbm9uLW51bGwtYXNzZXJ0aW9uXG4gICAgcmV0dXJuIHRoaXMuYXV0b0NvbXBsZXRlLnNldFR5cGVzKHR5cGVzISlcbiAgfVxuXG4gIC8qKiBGb2N1c2VzIHRoZSBpbnB1dC4gKi9cbiAgcHVibGljIGZvY3VzKCk6IHZvaWQge1xuICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpXG4gIH1cblxuICAvKiogVW5mb2N1c2VzIHRoZSBpbnB1dC4gKi9cbiAgcHVibGljIGJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmJsdXIoKVxuICB9XG5cbiAgcHVibGljIGdldEhvc3RFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnRcbiAgfVxuXG4gIHByaXZhdGUgX2NyZWF0ZVBsYWNlQ2hhbmdlZE9ic2VydmFibGU8VD4oKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgY29uc3Qgb2JzZXJ2YWJsZSA9IG5ldyBPYnNlcnZhYmxlPFQ+KHN1YnNjcmliZXIgPT4ge1xuICAgICAgaWYgKCF0aGlzLmF1dG9Db21wbGV0ZSkge1xuICAgICAgICB0aGlzLl9wbGFjZUNoYW5nZWRQZW5kaW5nLnB1c2goeyBvYnNlcnZhYmxlLCBzdWJzY3JpYmVyIH0pXG4gICAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICAgIH1cbiAgICAgIGNvbnN0IGxpc3RlbmVyID0gdGhpcy5hdXRvQ29tcGxldGUuYWRkTGlzdGVuZXIoJ3BsYWNlX2NoYW5nZWQnLCAoZXZlbnQ6IFQpID0+IHtcbiAgICAgICAgdGhpcy5fbmdab25lLnJ1bigoKSA9PiBzdWJzY3JpYmVyLm5leHQoZXZlbnQpKVxuICAgICAgfSlcbiAgICAgIHRoaXMuX2xpc3RlbmVycy5wdXNoKGxpc3RlbmVyKVxuXG4gICAgICByZXR1cm4gKCkgPT4gbGlzdGVuZXIucmVtb3ZlKClcbiAgICB9KVxuICAgIHJldHVybiBvYnNlcnZhYmxlXG4gIH1cblxuICAvKiogQXNzZXJ0cyB0aGF0IHRoZSBtYXAgaGFzIGJlZW4gaW5pdGlhbGl6ZWQuICovXG4gIHByaXZhdGUgX2Fzc2VydEluaXRpYWxpemVkKCk6IGFzc2VydHMgdGhpcyBpcyBXaXRoUmVxdWlyZWQ8VGhlU2VhbUdvb2dsZU1hcHNQbGFjZXNBdXRvY29tcGxldGVEaXJlY3RpdmUsICdhdXRvQ29tcGxldGUnPiB7XG4gICAgaWYgKCF0aGlzLmF1dG9Db21wbGV0ZSAmJiAodHlwZW9mIG5nRGV2TW9kZSA9PT0gJ3VuZGVmaW5lZCcgfHwgbmdEZXZNb2RlKSkge1xuICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICdDYW5ub3QgYWNjZXNzIEdvb2dsZSBNYXAgUGxhY2VzIGluZm9ybWF0aW9uIGJlZm9yZSB0aGUgQVBJIGhhcyBiZWVuIGluaXRpYWxpemVkLiAnICtcbiAgICAgICAgICAnUGxlYXNlIHdhaXQgZm9yIHRoZSBBUEkgdG8gbG9hZCBiZWZvcmUgdHJ5aW5nIHRvIGludGVyYWN0IHdpdGggaXQuJyxcbiAgICAgIClcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -4,7 +4,7 @@ import { BehaviorSubject, from, Subject } from 'rxjs';
4
4
  import { switchMap, takeUntil, tap } from 'rxjs/operators';
5
5
  import { isNullOrUndefined, notNullOrUndefined } from '@theseam/ui-common/utils';
6
6
  import { GoogleMapsContextMenu } from './google-maps-contextmenu';
7
- import { addInnerFeatureCutoutToExteriorFeature, createDataFeatureFromPolygon, createFeatureChangeObservable, getBoundsWithAllFeatures, getFeatureCenter, getFeaturesCount, getPossibleExteriorFeature, isFeatureSelected, removeAllFeatures, setFeatureSelected, stripAppFeaturePropertiesFromJson, } from './google-maps-feature-helpers';
7
+ import { addInnerFeatureCutoutToExteriorFeature, createDataFeatureFromPolygon, createFeatureChangeObservable, getBoundsWithAllFeatures, getFeatureCenter, getFeaturesCount, getPossibleExteriorFeature, isFeatureSelected, polygonHasValidPathsLengths, removeAllFeatures, setFeatureSelected, stripAppFeaturePropertiesFromJson, } from './google-maps-feature-helpers';
8
8
  import { MapValueManagerService, MapValueSource } from './map-value-manager.service';
9
9
  const DEFAULT_POLYGON_OPTIONS = {
10
10
  clickable: true,
@@ -173,7 +173,7 @@ export class GoogleMapsService {
173
173
  this._allowDrawingHoleInPolygon = allow;
174
174
  }
175
175
  setFileInputHandler(handler) {
176
- this._fileInputHandler;
176
+ this._fileInputHandler = handler;
177
177
  }
178
178
  getFileInputHandler() {
179
179
  return this._fileInputHandler;
@@ -231,7 +231,7 @@ export class GoogleMapsService {
231
231
  });
232
232
  if (notNullOrUndefined(this._drawingManager)) {
233
233
  google.maps.event.addListener(this._drawingManager, 'polygoncomplete', (polygon) => {
234
- var _a;
234
+ var _a, _b;
235
235
  // The DrawingManager doesn't seem to have a way to access the overlays,
236
236
  // so if the map is not set then it shouldn'y be considered a successful
237
237
  // completion. I am canceling the active drawing by disabling drawing
@@ -241,12 +241,22 @@ export class GoogleMapsService {
241
241
  return;
242
242
  }
243
243
  this._assertInitialized();
244
+ // TODO: See if there is a way to prevent the polygon from completing
245
+ // without enough points. This is very low priority, because starting
246
+ // over after adding a single point isn't a major inconvenience.
247
+ if (!polygonHasValidPathsLengths(polygon)) {
248
+ // Remove the drawn polygon.
249
+ polygon.setMap(null);
250
+ // Stop drawing.
251
+ (_a = this._drawingManager) === null || _a === void 0 ? void 0 : _a.setDrawingMode(null);
252
+ return;
253
+ }
244
254
  // Create a map feature of the drawn polygon.
245
255
  const feature = createDataFeatureFromPolygon(polygon);
246
256
  // Remove the drawn polygon.
247
257
  polygon.setMap(null);
248
258
  // Stop drawing.
249
- (_a = this._drawingManager) === null || _a === void 0 ? void 0 : _a.setDrawingMode(null);
259
+ (_b = this._drawingManager) === null || _b === void 0 ? void 0 : _b.setDrawingMode(null);
250
260
  // Check if the feature should be used as a cutout to an existing
251
261
  // feature or added as it's own feature.
252
262
  const exteriorPolygonFeature = this._allowDrawingHoleInPolygon
@@ -341,4 +351,4 @@ GoogleMapsService.ctorParameters = () => [
341
351
  { type: ViewContainerRef }
342
352
  ];
343
353
  export { ɵ0 };
344
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLW1hcHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9nb29nbGUtbWFwcy9nb29nbGUtbWFwcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBYSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMvRSxPQUFPLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDakUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFHMUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFFaEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDakUsT0FBTyxFQUNMLHNDQUFzQyxFQUN0Qyw0QkFBNEIsRUFDNUIsNkJBQTZCLEVBQzdCLHdCQUF3QixFQUN4QixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLDBCQUEwQixFQUMxQixpQkFBaUIsRUFDakIsaUJBQWlCLEVBQ2pCLGtCQUFrQixFQUNsQixpQ0FBaUMsR0FDbEMsTUFBTSwrQkFBK0IsQ0FBQTtBQUN0QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkJBQTZCLENBQUE7QUFJcEYsTUFBTSx1QkFBdUIsR0FBK0I7SUFDMUQsU0FBUyxFQUFFLElBQUk7SUFDZixTQUFTLEVBQUUsSUFBSTtJQUNmLFFBQVEsRUFBRSxJQUFJO0lBQ2Qsa0NBQWtDO0lBQ2xDLG1DQUFtQztDQUNwQyxDQUFBO0FBRUQsTUFBTSwrQkFBK0IsR0FBc0QsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUNoRyxjQUFjLEVBQUUsSUFBSTtJQUNwQixxQkFBcUIsRUFBRTtRQUNyQixZQUFZLEVB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U0FDRjtJQUNILENBQUM7SUFFTSxVQUFVLENBQUMsc0JBQStCLElBQUk7UUFDbkQsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNyQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQTtZQUN6QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ2hDLElBQUksbUJBQW1CLEVBQUU7b0JBQ3ZCLGlDQUFpQyxDQUFDLENBQUMsQ0FBQyxDQUFBO2lCQUNyQztnQkFDRCxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDWixDQUFDLENBQUMsQ0FBQTtRQUNKLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELGlEQUFpRDtJQUN6QyxrQkFBa0I7UUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxPQUFPLFNBQVMsS0FBSyxXQUFXLElBQUksU0FBUyxDQUFDLEVBQUU7WUFDdEUsTUFBTSxLQUFLLENBQ1QsNEVBQTRFO2dCQUMxRSxvRUFBb0UsQ0FDdkUsQ0FBQTtTQUNGO0lBQ0gsQ0FBQzs7O1lBdlhGLFVBQVU7OztZQW5ERixzQkFBc0I7WUFyQlYsTUFBTTtZQUFhLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE5nWm9uZSwgT25EZXN0cm95LCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZnJvbSwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5cbmltcG9ydCB7IE1lbnVDb21wb25lbnQgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vbWVudSdcbmltcG9ydCB7IGlzTnVsbE9yVW5kZWZpbmVkLCBub3ROdWxsT3JVbmRlZmluZWQgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vdXRpbHMnXG5cbmltcG9ydCB7IEdvb2dsZU1hcHNDb250ZXh0TWVudSB9IGZyb20gJy4vZ29vZ2xlLW1hcHMtY29udGV4dG1lbnUnXG5pbXBvcnQge1xuICBhZGRJbm5lckZlYXR1cmVDdXRvdXRUb0V4dGVyaW9yRmVhdHVyZSxcbiAgY3JlYXRlRGF0YUZlYXR1cmVGcm9tUG9seWdvbixcbiAgY3JlYXRlRmVhdHVyZUNoYW5nZU9ic2VydmFibGUsXG4gIGdldEJvdW5kc1dpdGhBbGxGZWF0dXJlcyxcbiAgZ2V0RmVhdHVyZUNlbnRlcixcbiAgZ2V0RmVhdHVyZXNDb3VudCxcbiAgZ2V0UG9zc2libGVFeHRlcmlvckZlYXR1cmUsXG4gIGlzRmVhdHVyZVNlbGVjdGVkLFxuICByZW1vdmVBbGxGZWF0dXJlcyxcbiAgc2V0RmVhdHVyZVNlbGVjdGVkLFxuICBzdHJpcEFwcEZlYXR1cmVQcm9wZXJ0aWVzRnJvbUpzb24sXG59IGZyb20gJy4vZ29vZ2xlLW1hcHMtZmVhdHVyZS1oZWxwZXJzJ1xuaW1wb3J0IHsgTWFwVmFsdWVNYW5hZ2VyU2VydmljZSwgTWFwVmFsdWVTb3VyY2UgfSBmcm9tICcuL21hcC12YWx1ZS1tYW5hZ2VyLnNlcnZpY2UnXG5cbmRlY2xhcmUgY29uc3QgbmdEZXZNb2RlOiBib29sZWFuIHwgdW5kZWZpbmVkXG5cbmNvbnN0IERFRkFVTFRfUE9MWUdPTl9PUFRJT05TOiBnb29nbGUubWFwcy5Qb2x5Z29uT3B0aW9ucyA9IHtcbiAgY2xpY2thYmxlOiB0cnVlLFxuICBkcmFnZ2FibGU6IHRydWUsXG4gIGVkaXRhYmxlOiB0cnVlLFxuICAvLyBmaWxsQ29sb3I6ICdyZ2JhKDYwLDE1MCw2MCwxKScsXG4gIC8vIHN0cm9rZUNvbG9yOiAncmdiYSgxNTUsMjU1LDAsMSknXG59XG5cbmNvbnN0IERFRkFVTFRfRFJBV0lOR19NQU5BR0VSX09QVElPTlM6ICgoKSA9PiBnb29nbGUubWFwcy5kcmF3aW5nLkRyYXdpbmdNYW5hZ2VyT3B0aW9ucykgPSAoKSA9PiAoe1xuICBkcmF3aW5nQ29udHJvbDogdHJ1ZSxcbiAgZHJhd2luZ0NvbnRyb2xPcHRpb25zOiB7XG4gICAgZHJhd2luZ01vZGVzOiBbXG4gICAgICBnb29nbGUubWFwcy5kcmF3aW5nLk92ZXJsYXlUeXBlLlBPTFlHT05cbiAgICBdXG4gIH0sXG4gIHBvbHlnb25PcHRpb25zOiBERUZBVUxUX1BPTFlHT05fT1BUSU9OUyxcbiAgZHJhd2luZ01vZGU6IG51bGxcbn0pXG5cbmNvbnN0IEZFQVRVUkVfU1RZTEVfT1BUSU9OU19ERUZBVUxUOiBnb29nbGUubWFwcy5EYXRhLlN0eWxlT3B0aW9ucyA9IHtcbiAgY2xpY2thYmxlOiB0cnVlLFxuICB2aXNpYmxlOiB0cnVlLFxuICAvLyB6SW5kZXg/OiBudW1iZXI7XG5cbiAgLy8gY3Vyc29yPzogc3RyaW5nO1xuICBkcmFnZ2FibGU6IGZhbHNlLFxuICBlZGl0YWJsZTogZmFsc2UsXG4gIGZpbGxDb2xvcjogJ3RlYWwnLFxuICBmaWxsT3BhY2l0eTogMC4zLFxuICBzdHJva2VDb2xvcjogJ2JsdWUnLFxuICBzdHJva2VPcGFjaXR5OiAxLFxuICBzdHJva2VXZWlnaHQ6IDIsXG59XG5cbmNvbnN0IEZFQVRVUkVfU1RZTEVfT1BUSU9OU19TRUxFQ1RFRDogZ29vZ2xlLm1hcHMuRGF0YS5TdHlsZU9wdGlvbnMgPSB7XG4gIC4uLkZFQVRVUkVfU1RZTEVfT1BUSU9OU19ERUZBVUxULFxuICBkcmFnZ2FibGU6IHRydWUsXG4gIGVkaXRhYmxlOiB0cnVlLFxuICBmaWxsQ29sb3I6ICdncmVlbicsXG4gIGZpbGxPcGFjaXR5OiAwLjcsXG4gIHN0cm9rZUNvbG9yOiAnbGltZWdyZWVuJyxcbiAgc3Ryb2tlT3BhY2l0eTogMSxcbiAgc3Ryb2tlV2VpZ2h0OiAyLFxufVxuXG50eXBlIFdpdGhSZXF1aXJlZDxULCBLIGV4dGVuZHMga2V5b2YgVD4gPSBUICYgeyBbUCBpbiBLXS0/OiBUW1BdIH1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEdvb2dsZU1hcHNTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KClcblxuICBwcml2YXRlIHJlYWRvbmx5IF9tYXBSZWFkeVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKVxuXG4gIHByaXZhdGUgX2RyYXdpbmdNYW5hZ2VyPzogZ29vZ2xlLm1hcHMuZHJhd2luZy5EcmF3aW5nTWFuYWdlclxuICBwcml2YXRlIF9mZWF0dXJlQ29udGV4dE1lbnU6IE1lbnVDb21wb25lbnQgfCBudWxsID0gbnVsbFxuICBwcml2YXRlIF9hY3RpdmVDb250ZXh0TWVudTogR29vZ2xlTWFwc0NvbnRleHRNZW51IHwgbnVsbCA9IG51bGxcbiAgcHJpdmF0ZSBfYmFzZUxhdExuZz86IGdvb2dsZS5tYXBzLkxhdExuZ0xpdGVyYWxcblxuICBwcml2YXRlIF9hbGxvd0RyYXdpbmdIb2xlSW5Qb2x5Z29uOiBib29sZWFuID0gZmFsc2VcblxuICAvLyBUT0RPOiBNb3ZlIHRvIGEgYmV0dGVyIHBsYWNlIHRoYW4gdGhlIG1hcCB3cmFwcGVyIHNlcnZpY2UuXG4gIHByaXZhdGUgX2ZpbGVJbnB1dEhhbmRsZXI6ICgoZmlsZTogRmlsZSkgPT4gdm9pZCkgfCB1bmRlZmluZWQgfCBudWxsXG5cbiAgcHVibGljIGdvb2dsZU1hcD86IGdvb2dsZS5tYXBzLk1hcFxuXG4gIHB1YmxpYyByZWFkb25seSBtYXBSZWFkeSQ6IE9ic2VydmFibGU8Ym9vbGVhbj5cblxuICBwdWJsaWMgZ2V0IG1hcFJlYWR5KCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5fbWFwUmVhZHlTdWJqZWN0LnZhbHVlIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9tYXBWYWx1ZU1hbmFnZXI6IE1hcFZhbHVlTWFuYWdlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBfbmdab25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSByZWFkb25seSBfdmNyOiBWaWV3Q29udGFpbmVyUmVmLFxuICApIHtcbiAgICB0aGlzLm1hcFJlYWR5JCA9IHRoaXMuX21hcFJlYWR5U3ViamVjdC5hc09ic2VydmFibGUoKVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fbmdVbnN1YnNjcmliZS5uZXh0KClcbiAgICB0aGlzLl9uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKClcbiAgfVxuXG4gIHB1YmxpYyBzZXRNYXAobWFwOiBnb29nbGUubWFwcy5NYXApOiB2b2lkIHtcbiAgICB0aGlzLmdvb2dsZU1hcCA9IG1hcFxuICAgIHRoaXMuX21hcFJlYWR5U3ViamVjdC5uZXh0KHRydWUpXG4gICAgdGhpcy5faW5pdERyYXdpbmdNYW5hZ2VyKClcbiAgICB0aGlzLl9pbml0RmVhdHVyZVN0eWxpbmcoKVxuICAgIHRoaXMuX2luaXRGZWF0dXJlQ2hhbmdlTGlzdGVuZXJzKClcbiAgfVxuXG4gIHB1YmxpYyBzZXRCYXNlTGF0TG5nKGxhdDogbnVtYmVyLCBsbmc6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuX2Jhc2VMYXRMbmcgPSB7IGxhdCwgbG5nIH1cbiAgfVxuXG4gIC8vIFRPRE86IFJlZmFjdG9yIG91dCBvZiB0aGUgc2VydmljZSBtZWFudCB0byBqdXN0IHdyYXAgdGhlIGdvb2dsZSBtYXBzIGFwaS5cbiAgcHVibGljIHNldEZlYXR1cmVDb250ZXh0TWVudShtZW51OiBNZW51Q29tcG9uZW50IHwgbnVsbCk6IHZvaWQge1xuICAgIHRoaXMuX2ZlYXR1cmVDb250ZXh0TWVudSA9IG1lbnVcbiAgfVxuXG4gIHB1YmxpYyBnZXREaXYoKTogSFRNTERpdkVsZW1lbnQge1xuICAgIHRoaXMuX2Fzc2VydEluaXRpYWxpemVkKClcbiAgICByZXR1cm4gdGhpcy5nb29nbGVNYXAuZ2V0RGl2KCkgYXMgSFRNTERpdkVsZW1lbnRcbiAgfVxuXG4gIHB1YmxpYyBmaXRCb3VuZHMoYm91bmRzOiBnb29nbGUubWFwcy5MYXRMbmdCb3VuZHMgfCBnb29nbGUubWFwcy5MYXRMbmdCb3VuZHNMaXRlcmFsLCBwYWRkaW5nPzogbnVtYmVyIHwgZ29vZ2xlLm1hcHMuUGFkZGluZyk6IHZvaWQge1xuICAgIHRoaXMuX2Fzc2VydEluaXRpYWxpemVkKClcbiAgICB0aGlzLmdvb2dsZU1hcC5maXRCb3VuZHMoYm91bmRzLCBwYWRkaW5nKVxuICB9XG5cbiAgLyoqXG4gICAqIEl0ZXJhdGVzIHRoZSBtYXAncyBmZWF0dXJlcyBhbmQgcmVtb3ZlcyBhbnkgdGhhdCBhcmUgc2VsZWN0ZWQuXG4gICAqL1xuICBwdWJsaWMgZGVsZXRlU2VsZWN0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuX2Fzc2VydEluaXRpYWxpemVkKClcbiAgICBjb25zdCBtYXBEYXRhID0gdGhpcy5nb29nbGVNYXAuZGF0YVxuICAgIG1hcERhdGEuZm9yRWFjaChmID0+IHtcbiAgICAgIGlmIChpc0ZlYXR1cmVTZWxlY3RlZChmKSkge1xuICAgICAgICBtYXBEYXRhLnJlbW92ZShmKVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogU3RvcHMgdGhlIGN1cnJlbnQgZHJhd2luZy5cbiAgICovXG4gIHB1YmxpYyBzdG9wRHJhd2luZygpOiB2b2lkIHtcbiAgICB0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgaWYgKGlzTnVsbE9yVW5kZWZpbmVkKHRoaXMuX2RyYXdpbmdNYW5hZ2VyKSB8fCB0aGlzLl9kcmF3aW5nTWFuYWdlci5nZXREcmF3aW5nTW9kZSgpID09PSBudWxsKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICAvLyBMaXN0ZW5pbmcgZm9yIHRoZSBjb21wbGV0aW9uIGV2ZW50IG9mIHRoZSBvdmVybGF5IGN1cnJlbnRseSBiZWluZyBkcmF3blxuICAgICAgLy8gYW5kIHJlbW92aW5nIGl0LiBJIGhhdmVuJ3QgZm91bmQgYSB3YXkgdG8gY2FuY2VsIHRoZSBjdXJyZW50IGRyYXdpbmcsXG4gICAgICAvLyB3aXRob3V0IHRoaXMgaGFjayB0aGF0IGFzc3VtZXMgb3VyIGxpc3RlbmVycyB3aWxsIG5vdCBydW4gaW50byBhIHJhY2VcbiAgICAgIC8vIGNvbmRpdGlvbi5cbiAgICAgIGNvbnN0IGxpc3RlbmVyID0gZ29vZ2xlLm1hcHMuZXZlbnQuYWRkTGlzdGVuZXIoXG4gICAgICAgIHRoaXMuX2RyYXdpbmdNYW5hZ2VyLFxuICAgICAgICAnb3ZlcmxheWNvbXBsZXRlJyxcbiAgICAgICAgKGV2ZW50OiBnb29nbGUubWFwcy5kcmF3aW5nLk92ZXJsYXlDb21wbGV0ZUV2ZW50KSA9PiB7XG4gICAgICAgICAgZXZlbnQub3ZlcmxheS5zZXRNYXAobnVsbClcbiAgICAgICAgICBsaXN0ZW5lci5yZW1vdmUoKVxuICAgICAgICB9XG4gICAgICApXG5cbiAgICAgIC8vIFRvIGZha2UgY2FuY2VsaW5nIHRoZSBjdXJyZW50IGRyYXdpbmcsIHdpdGhvdXQgZGlzYWJsaW5nIHRoZSBkcmF3aW5nXG4gICAgICAvLyBtb2RlLCB0aGUgZHJhd2luIG1vZGUgaXMgYmVpbmcgdW5zZXQgdGhlbiBpbW1lZGlhdGVseSBzZXQgYmFjay4gV2hlblxuICAgICAgLy8gdGhlIG1vZGUgaXMgdW5zZXQgdGhlICdvdmVybGF5Y29tcGxldGUnIGV2ZW50IHdpbGwgZmlyZSwgd2hpY2ggd2lsbFxuICAgICAgLy8gZ2l2ZSBhIHJlZmVyZW5jZSB0byB0aGUgY3VycmVudCBvdmVybGF5IHRvIHJlbW92ZSwgdGhlbiBpdCBpcyBzZXQgYmFja1xuICAgICAgLy8gdG8gdGhlIG1vZGUgdGhlIHVzZXIgd2FzIHVzaW5nLiBUbyB0aGUgdXNlciBpcyBzaG91bGQganVzdCBzZWVtIGxpa2VcbiAgICAgIC8vIHRoZSBjdXJyZW50IGRyYXdpbmcgd2FzIGNhbmNlbGVkIGFuZCB0aGV5IGNhbiBzdGFydCBkcmF3aW5nIGFnYWluLlxuICAgICAgY29uc3QgbW9kZSA9IHRoaXMuX2RyYXdpbmdNYW5hZ2VyLmdldERyYXdpbmdNb2RlKClcbiAgICAgIHRoaXMuX2RyYXdpbmdNYW5hZ2VyLnNldERyYXdpbmdNb2RlKG51bGwpXG4gICAgICB0aGlzLl9kcmF3aW5nTWFuYWdlci5zZXREcmF3aW5nTW9kZShtb2RlKVxuXG4gICAgICAvLyAnb3ZlcmxheWNvbXBsZXRlJyBzaG91bGQgZmlyZSBpbW1lZGlhdGVseSwgdW5sZXNzIGFuIG92ZXJsYXkgaGFkbid0XG4gICAgICAvLyBzdGFydGVkIGRyYXdpbmcuIFRoaXMgdGltZW91dCB3aWxsIG1ha2Ugc3VyZSB0aGUgbGlzdGVuZXIgZ2V0cyByZW1vdmVkLlxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGxpc3RlbmVyLnJlbW92ZSgpXG4gICAgICB9KVxuXG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgX2luaXREcmF3aW5nTWFuYWdlcigpOiB2b2lkIHtcbiAgICBpZiAobm90TnVsbE9yVW5kZWZpbmVkKHRoaXMuX2RyYXdpbmdNYW5hZ2VyKSkge1xuICAgICAgdGhyb3cgRXJyb3IoYERyYXdpbmdNYW5hZ2VyIGlzIGFscmVhZHkgaW5pdGlhbGl6ZWQuYClcbiAgICB9XG5cbiAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpXG5cbiAgICBjb25zdCBvcHRpb25zID0gREVGQVVMVF9EUkFXSU5HX01BTkFHRVJfT1BUSU9OUygpXG5cbiAgICBjb25zdCBkcmF3aW5nTWFuYWdlciA9IG5ldyBnb29nbGUubWFwcy5kcmF3aW5nLkRyYXdpbmdNYW5hZ2VyKG9wdGlvbnMpXG4gICAgZHJhd2luZ01hbmFnZXIuc2V0TWFwKHRoaXMuZ29vZ2xlTWFwKVxuXG4gICAgdGhpcy5fZHJhd2luZ01hbmFnZXIgPSBkcmF3aW5nTWFuYWdlclxuXG4gICAgdGhpcy5fZHJhd2luZ01hbmFnZXIuYWRkTGlzdGVuZXIoJ2RyYXdpbmdtb2RlX2NoYW5nZWQnLCBldmVudCA9PiB7XG4gICAgICBpZiAodGhpcy5fZHJhd2luZ01hbmFnZXI/LmdldERyYXdpbmdNb2RlKCkgIT09IG51bGwpIHtcbiAgICAgICAgdGhpcy5fYXNzZXJ0SW5pdGlhbGl6ZWQoKVxuICAgICAgICB0aGlzLmdvb2dsZU1hcC5kYXRhLmZvckVhY2goZiA9PiB7XG4gICAgICAgICAgaWYgKGlzRmVhdHVyZVNlbGVjdGVkKGYpKSB7XG4gICAgICAgICAgICBzZXRGZWF0dXJlU2VsZWN0ZWQoZiwgZmFsc2UpXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBwdWJsaWMgYWRkQ29udHJvbChlbGVtZW50OiBIVE1MRWxlbWVudCwgcG9zaXRpb246IGdvb2dsZS5tYXBzLkNvbnRyb2xQb3NpdGlvbik6IHZvaWQge1xuICAgIHRoaXMuX2Fzc2VydEluaXRpYWxpemVkKClcbiAgICB0aGlzLmdvb2dsZU1hcC5jb250cm9sc1twb3NpdGlvbl0ucHVzaChlbGVtZW50KVxuICB9XG5cbiAgcHVibGljIGFzeW5jIHNldERhdGEoZGF0YTogYW55KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5fYXNzZXJ0SW5pdGlhbGl6ZWQoKVxuICAgIHJlbW92ZUFsbEZlYXR1cmVzKHRoaXMuZ29vZ2xlTWFwLmRhdGEpXG4gICAgdGhpcy5nb29nbGVNYXAuZGF0YS5hZGRHZW9Kc29uKGRhdGEpXG4gICAgdGhpcy5nb29nbGVNYXAuZml0Qm91bmRzKGdldEJvdW5kc1dpdGhBbGxGZWF0dXJlcyh0aGlzLmdvb2dsZU1hcC5kYXRhKSlcbiAgfVxuXG4gIC8vIFRPRE86IFJlZmFjdG9yIG91dCBvZiB0aGUgc2VydmljZSBtZWFudCB0byBqdXN0IHdyYXAgdGhlIGdvb2dsZSBtYXBzIGFwaS5cbiAgcHVibGljIHJlQ2VudGVyT25GZWF0dXJlcygpOiB2b2lkIHtcbiAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpXG4gICAgaWYgKGdldEZlYXR1cmVzQ291bnQodGhpcy5nb29nbGVNYXAuZGF0YSkgPT09IDApIHtcbiAgICAgIGlmICghdGhpcy5fYmFzZUxhdExuZykge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgdGhpcy5nb29nbGVNYXAucGFuVG8odGhpcy5fYmFzZUxhdExuZylcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICB0aGlzLmdvb2dsZU1hcC5maXRCb3VuZHMoZ2V0Qm91bmRzV2l0aEFsbEZlYXR1cmVzKHRoaXMuZ29vZ2xlTWFwLmRhdGEpKVxuXG4gICAgLy8gVE9ETzogRml4IHRvIHBhbiB0byBjZW50ZXIuIEN1cnJlbnRseSBmaXRCb3VuZHMgcmVzdWx0cyBpbiB0aGUgZXhwZWN0ZWRcbiAgICAvLyByZXN1bHQsIGJ1dCBwYW50VG9Cb3VuZHMgYW5pbWF0ZXMuXG4gICAgLy8gdGhpcy5nb29nbGVNYXAucGFuVG9Cb3VuZHMoZ2V0Qm91bmRzV2l0aEFsbEZlYXR1cmVzKHRoaXMuZ29vZ2xlTWFwLmRhdGEpKVxuICB9XG5cbiAgcHVibGljIGFsbG93RHJhd2luZ0hvbGVJblBvbHlnb24oYWxsb3c6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLl9hbGxvd0RyYXdpbmdIb2xlSW5Qb2x5Z29uID0gYWxsb3dcbiAgfVxuXG4gIHB1YmxpYyBzZXRGaWxlSW5wdXRIYW5kbGVyKGhhbmRsZXI6ICgoZmlsZTogRmlsZSkgPT4gdm9pZCkgfCB1bmRlZmluZWQgfCBudWxsKTogdm9pZCB7XG4gICAgdGhpcy5fZmlsZUlucHV0SGFuZGxlclxuICB9XG5cbiAgcHVibGljIGdldEZpbGVJbnB1dEhhbmRsZXIoKTogKChmaWxlOiBGaWxlKSA9PiB2b2lkKSB8IHVuZGVmaW5lZCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9maWxlSW5wdXRIYW5kbGVyXG4gIH1cblxuICBwcml2YXRlIF9pbml0RmVhdHVyZVN0eWxpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5fYXNzZXJ0SW5pdGlhbGl6ZWQoKVxuXG4gICAgLy8gRGlzYWJsZSBhbnkgc2VsZWN0aW9uIHdoZW4gY2xpY2tpbmcgdGhlIG1hcC5cbiAgICAvL1xuICAgIC8vIFRPRE86IFRoZXJlIG1heSBiZSBhIGJldHRlciB3YXkgdG8gZG8gdGhpcyB0aGF0IHdvdWxkIGJlIG1vcmUgYWNjdXJhdGUgb3JcbiAgICAvLyBhZGRpdGlvbmFsIGV2ZW50cyB0aGF0IHNob3VsZCBiZSBsaXN0ZW5lZCB0bywgc3VjaCBhcyB0aGUgZGlzYWJsaW5nXG4gICAgLy8gc2VsZWN0aW9uIHdoZW4gdGhlIG1hcCBsb29zZXMgZm9jdXMuXG4gICAgdGhpcy5nb29nbGVNYXAuYWRkTGlzdGVuZXIoJ2NsaWNrJywgKGV2ZW46IGdvb2dsZS5tYXBzLk1hcE1vdXNlRXZlbnQgfCBnb29nbGUubWFwcy5JY29uTW91c2VFdmVudCkgPT4ge1xuICAgICAgdGhpcy5fYXNzZXJ0SW5pdGlhbGl6ZWQoKVxuICAgICAgdGhpcy5nb29nbGVNYXAuZGF0YS5mb3JFYWNoKGYgPT4gc2V0RmVhdHVyZVNlbGVjdGVkKGYsIGZhbHNlKSlcbiAgICB9KVxuXG4gICAgLy8gRGV0ZXJtaW5lIHdoYXQgdGhlIHN0eWxlIG9mIHRoZSBmZWF0dXJlcyBhcmUuXG4gICAgdGhpcy5nb29nbGVNYXAuZGF0YS5zZXRTdHlsZSgoZmVhdHVyZSkgPT4ge1xuICAgICAgaWYgKGlzRmVhdHVyZVNlbGVjdGVkKGZlYXR1cmUpKSB7XG4gICAgICAgIHJldHVybiBGRUFUVVJFX1NUWUxFX09QVElPTlNfU0VMRUNURURcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIEZFQVRVUkVfU1RZTEVfT1BUSU9OU19ERUZBVUxUXG4gICAgfSlcblxuICAgIC8vIFNlbGVjdCBhIGZlYXR1cmUgd2hlbiBjbGlja2VkLlxuICAgIHRoaXMuZ29vZ2xlTWFwLmRhdGEuYWRkTGlzdGVuZXIoJ2NsaWNrJywgKGV2ZW50OiBnb29nbGUubWFwcy5EYXRhLk1vdXNlRXZlbnQpID0+IHtcbiAgICAgIHRoaXMuX2Fzc2VydEluaXRpYWxpemVkKClcblxuICAgICAgc2V0RmVhdHVyZVNlbGVjdGVkKGV2ZW50LmZlYXR1cmUsIHRydWUpXG4gICAgICB0aGlzLmdvb2dsZU1hcC5kYXRhLmZvckVhY2goZiA9PiB7XG4gICAgICAgIGlmIChmICE9PSBldmVudC5mZWF0dXJlICYmIGlzRmVhdHVyZVNlbGVjdGVkKGYpKSB7XG4gICAgICAgICAgc2V0RmVhdHVyZVNlbGVjdGVkKGYsIGZhbHNlKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH0pXG5cbiAgICAvLyBTZXQgYSBzdHlsZSBvbiBob3ZlcmVkIGZlYXR1cmVzIHRoYXQgY2FuIGJlIHNlbGVjdGVkLlxuICAgIHRoaXMuZ29vZ2xlTWFwLmRhdGEuYWRkTGlzdGVuZXIoJ21vdXNlb3ZlcicsIChldmVudDogZ29vZ2xlLm1hcHMuRGF0YS5Nb3VzZUV2ZW50KSA9PiB7XG4gICAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpXG4gICAgICB0aGlzLmdvb2dsZU1hcC5kYXRhLnJldmVydFN0eWxlKClcbiAgICAgIGlmICghdGhpcy5pc0RyYXdpbmcoKSAmJiAhaXNGZWF0dXJlU2VsZWN0ZWQoZXZlbnQuZmVhdHVyZSkpIHtcbiAgICAgICAgdGhpcy5nb29nbGVNYXAuZGF0YS5vdmVycmlkZVN0eWxlKGV2ZW50LmZlYXR1cmUsIHsgc3Ryb2tlV2VpZ2h0OiA0IH0pXG4gICAgICB9XG4gICAgfSlcblxuICAgIC8vIFJlbW92ZSBhbnkgaG92ZXIgc3R5bGVzIHdoZW4gbW91c2UgbW92ZXMgYXdheS5cbiAgICB0aGlzLmdvb2dsZU1hcC5kYXRhLmFkZExpc3RlbmVyKCdtb3VzZW91dCcsIChldmVudDogZ29vZ2xlLm1hcHMuRGF0YS5Nb3VzZUV2ZW50KSA9PiB7XG4gICAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpXG4gICAgICB0aGlzLmdvb2dsZU1hcC5kYXRhLnJldmVydFN0eWxlKClcbiAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdEZlYXR1cmVDaGFuZ2VMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgdGhpcy5fYXNzZXJ0SW5pdGlhbGl6ZWQoKVxuXG4gICAgY3JlYXRlRmVhdHVyZUNoYW5nZU9ic2VydmFibGUodGhpcy5nb29nbGVNYXAuZGF0YSwgdGhpcy5fbmdab25lKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKCgpID0+IGZyb20odGhpcy5nZXRHZW9Kc29uKCkpLnBpcGUoXG4gICAgICAgIHRhcChnZW9Kc29uID0+IHRoaXMuX21hcFZhbHVlTWFuYWdlci5zZXRWYWx1ZShnZW9Kc29uLCBNYXBWYWx1ZVNvdXJjZS5GZWF0dXJlQ2hhbmdlKSksXG4gICAgICApKSxcbiAgICAgIHRha2VVbnRpbCh0aGlzLl9uZ1Vuc3Vic2NyaWJlKSxcbiAgICApLnN1YnNjcmliZSgpXG5cbiAgICB0aGlzLmdvb2dsZU1hcC5kYXRhLmFkZExpc3RlbmVyKCdjb250ZXh0bWVudScsIChldmVudDogZ29vZ2xlLm1hcHMuRGF0YS5Nb3VzZUV2ZW50KSA9PiB7XG4gICAgICBpZiAoIWlzRmVhdHVyZVNlbGVjdGVkKGV2ZW50LmZlYXR1cmUpKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICB0aGlzLl9vcGVuQ29udGV4dE1lbnVGb3JGZWF0dXJlKGV2ZW50LmZlYXR1cmUsIGV2ZW50LmxhdExuZylcbiAgICB9KVxuXG4gICAgaWYgKG5vdE51bGxPclVuZGVmaW5lZCh0aGlzLl9kcmF3aW5nTWFuYWdlcikpIHtcbiAgICAgIGdvb2dsZS5tYXBzLmV2ZW50LmFkZExpc3RlbmVyKHRoaXMuX2RyYXdpbmdNYW5hZ2VyLCAncG9seWdvbmNvbXBsZXRlJywgKHBvbHlnb246IGdvb2dsZS5tYXBzLlBvbHlnb24pID0+IHtcbiAgICAgICAgLy8gVGhlIERyYXdpbmdNYW5hZ2VyIGRvZXNuJ3Qgc2VlbSB0byBoYXZlIGEgd2F5IHRvIGFjY2VzcyB0aGUgb3ZlcmxheXMsXG4gICAgICAgIC8vIHNvIGlmIHRoZSBtYXAgaXMgbm90IHNldCB0aGVuIGl0IHNob3VsZG4neSBiZSBjb25zaWRlcmVkIGEgc3VjY2Vzc2Z1bFxuICAgICAgICAvLyBjb21wbGV0aW9uLiBJIGFtIGNhbmNlbGluZyB0aGUgYWN0aXZlIGRyYXdpbmcgYnkgZGlzYWJsaW5nIGRyYXdpbmdcbiAgICAgICAgLy8gbW9kZSBhbmQgc2V0dGluZyB0aGUgbWFwIG51bGwgaW4gdGhlICdvdmVybGF5Y29tcGxldGUnIGV2ZW50LCB3aGljaFxuICAgICAgICAvLyBmaXJlcyBiZWZvcmUgdGhlICdwb2x5Z29uY29tcGxldGUnIGV2ZW50LlxuICAgICAgICBpZiAoaXNOdWxsT3JVbmRlZmluZWQocG9seWdvbi5nZXRNYXAoKSkpIHtcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2Fzc2VydEluaXRpYWxpemVkKClcblxuICAgICAgICAvLyBDcmVhdGUgYSBtYXAgZmVhdHVyZSBvZiB0aGUgZHJhd24gcG9seWdvbi5cbiAgICAgICAgY29uc3QgZmVhdHVyZSA9IGNyZWF0ZURhdGFGZWF0dXJlRnJvbVBvbHlnb24ocG9seWdvbilcbiAgICAgICAgLy8gUmVtb3ZlIHRoZSBkcmF3biBwb2x5Z29uLlxuICAgICAgICBwb2x5Z29uLnNldE1hcChudWxsKVxuXG4gICAgICAgIC8vIFN0b3AgZHJhd2luZy5cbiAgICAgICAgdGhpcy5fZHJhd2luZ01hbmFnZXI/LnNldERyYXdpbmdNb2RlKG51bGwpXG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGZlYXR1cmUgc2hvdWxkIGJlIHVzZWQgYXMgYSBjdXRvdXQgdG8gYW4gZXhpc3RpbmdcbiAgICAgICAgLy8gZmVhdHVyZSBvciBhZGRlZCBhcyBpdCdzIG93biBmZWF0dXJlLlxuICAgICAgICBjb25zdCBleHRlcmlvclBvbHlnb25GZWF0dXJlID0gdGhpcy5fYWxsb3dEcmF3aW5nSG9sZUluUG9seWdvblxuICAgICAgICAgID8gZ2V0UG9zc2libGVFeHRlcmlvckZlYXR1cmUodGhpcy5nb29nbGVNYXAuZGF0YSwgZmVhdHVyZSlcbiAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgICBpZiAoZXh0ZXJpb3JQb2x5Z29uRmVhdHVyZSkge1xuICAgICAgICAgIGFkZElubmVyRmVhdHVyZUN1dG91dFRvRXh0ZXJpb3JGZWF0dXJlKGV4dGVyaW9yUG9seWdvbkZlYXR1cmUsIGZlYXR1cmUpXG4gICAgICAgICAgc2V0RmVhdHVyZVNlbGVjdGVkKGV4dGVyaW9yUG9seWdvbkZlYXR1cmUsIHRydWUpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5nb29nbGVNYXAuZGF0YS5hZGQoZmVhdHVyZSlcbiAgICAgICAgICBzZXRGZWF0dXJlU2VsZWN0ZWQoZmVhdHVyZSwgdHJ1ZSlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaXNEcmF3aW5nKCk6IGJvb2xlYW4ge1xuICAgIGlmIChpc051bGxPclVuZGVmaW5lZCh0aGlzLl9kcmF3aW5nTWFuYWdlcikpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX2RyYXdpbmdNYW5hZ2VyLmdldERyYXdpbmdNb2RlKCkgIT09IG51bGxcbiAgfVxuXG4gIC8vIFRPRE86IFJlZmFjdG9yIG91dCBvZiB0aGUgc2VydmljZSBtZWFudCB0byBqdXN0IHdyYXAgdGhlIGdvb2dsZSBtYXBzIGFwaS5cbiAgcHVibGljIGhhc1NlbGVjdGVkRmVhdHVyZSgpOiBib29sZWFuIHtcbiAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpXG4gICAgbGV0IGlzU2VsZWN0ZWQgPSBmYWxzZVxuICAgIHRoaXMuZ29vZ2xlTWFwLmRhdGEuZm9yRWFjaChmID0+IHtcbiAgICAgIGlmIChpc0ZlYXR1cmVTZWxlY3RlZChmKSkge1xuICAgICAgICBpc1NlbGVjdGVkID0gdHJ1ZVxuICAgICAgfVxuICAgIH0pXG4gICAgcmV0dXJuIGlzU2VsZWN0ZWRcbiAgfVxuXG4gIC8vIFRPRE86IFJlZmFjdG9yIG91dCBvZiB0aGUgc2VydmljZSBtZWFudCB0byBqdXN0IHdyYXAgdGhlIGdvb2dsZSBtYXBzIGFwaS5cbiAgcHVibGljIGdldFNlbGVjdGVkRmVhdHVyZSgpOiBnb29nbGUubWFwcy5EYXRhLkZlYXR1cmUgfCBudWxsIHtcbiAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpXG4gICAgbGV0IGZlYXR1cmU6IGdvb2dsZS5tYXBzLkRhdGEuRmVhdHVyZSB8IG51bGwgPSBudWxsXG4gICAgdGhpcy5nb29nbGVNYXAuZGF0YS5mb3JFYWNoKGYgPT4ge1xuICAgICAgaWYgKGlzRmVhdHVyZVNlbGVjdGVkKGYpKSB7XG4gICAgICAgIGZlYXR1cmUgPSBmXG4gICAgICB9XG4gICAgfSlcbiAgICByZXR1cm4gZmVhdHVyZVxuICB9XG5cbiAgLy8gVE9ETzogUmVmYWN0b3Igb3V0IG9mIHRoZSBzZXJ2aWNlIG1lYW50IHRvIGp1c3Qgd3JhcCB0aGUgZ29vZ2xlIG1hcHMgYXBpLlxuICBwdWJsaWMgb3BlbkNvbnRleHRNZW51KCk6IHZvaWQge1xuICAgIGNvbnN0IGZlYXR1cmUgPSB0aGlzLmdldFNlbGVjdGVkRmVhdHVyZSgpXG4gICAgaWYgKGZlYXR1cmUpIHtcbiAgICAgIHRoaXMuX29wZW5Db250ZXh0TWVudUZvckZlYXR1cmUoZmVhdHVyZSlcbiAgICB9XG4gIH1cblxuICAvLyBUT0RPOiBSZWZhY3RvciBvdXQgb2YgdGhlIHNlcnZpY2UgbWVhbnQgdG8ganVzdCB3cmFwIHRoZSBnb29nbGUgbWFwcyBhcGkuXG4gIHByaXZhdGUgX29wZW5Db250ZXh0TWVudUZvckZlYXR1cmUoZmVhdHVyZTogZ29vZ2xlLm1hcHMuRGF0YS5GZWF0dXJlLCBwb3NpdGlvbj86IGdvb2dsZS5tYXBzLkxhdExuZykge1xuICAgIGlmICh0aGlzLl9hY3RpdmVDb250ZXh0TWVudSkge1xuICAgICAgdGhpcy5fYWN0aXZlQ29udGV4dE1lbnUuY2xvc2UoKVxuICAgICAgdGhpcy5fYWN0aXZlQ29udGV4dE1lbnUgPSBudWxsXG4gICAgfVxuXG4gICAgdGhpcy5fYXNzZXJ0SW5pdGlhbGl6ZWQoKVxuXG4gICAgbGV0IF9wb3NpdGlvbiA9IHBvc2l0aW9uXG4gICAgaWYgKCFfcG9zaXRpb24pIHtcbiAgICAgIF9wb3NpdGlvbiA9IGdldEZlYXR1cmVDZW50ZXIoZmVhdHVyZSlcbiAgICB9XG4gICAgaWYgKHRoaXMuX2ZlYXR1cmVDb250ZXh0TWVudSkge1xuICAgICAgdGhpcy5fYWN0aXZlQ29udGV4dE1lbnUgPSBuZXcgR29vZ2xlTWFwc0NvbnRleHRNZW51KFxuICAgICAgICB0aGlzLmdvb2dsZU1hcCxcbiAgICAgICAgdGhpcy5fZmVhdHVyZUNvbnRleHRNZW51LFxuICAgICAgICBfcG9zaXRpb24sXG4gICAgICAgIHRoaXMuX3ZjcixcbiAgICAgICAgdGhpcy5fbmdab25lLFxuICAgICAgICB0aGlzLmdvb2dsZU1hcC5kYXRhLFxuICAgICAgICBmZWF0dXJlLFxuICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRHZW9Kc29uKHJlbW92ZUFwcFByb3BlcnRpZXM6IGJvb2xlYW4gPSB0cnVlKTogUHJvbWlzZTxvYmplY3Q+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5fYXNzZXJ0SW5pdGlhbGl6ZWQoKVxuICAgICAgdGhpcy5nb29nbGVNYXAuZGF0YS50b0dlb0pzb24oZiA9PiB7XG4gICAgICAgIGlmIChyZW1vdmVBcHBQcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgc3RyaXBBcHBGZWF0dXJlUHJvcGVydGllc0Zyb21Kc29uKGYpXG4gICAgICAgIH1cbiAgICAgICAgcmVzb2x2ZShmKVxuICAgICAgfSlcbiAgICB9KVxuICB9XG5cbiAgLyoqIEFzc2VydHMgdGhhdCB0aGUgbWFwIGhhcyBiZWVuIGluaXRpYWxpemVkLiAqL1xuICBwcml2YXRlIF9hc3NlcnRJbml0aWFsaXplZCgpOiBhc3NlcnRzIHRoaXMgaXMgV2l0aFJlcXVpcmVkPEdvb2dsZU1hcHNTZXJ2aWNlLCAnZ29vZ2xlTWFwJz4ge1xuICAgIGlmICghdGhpcy5nb29nbGVNYXAgJiYgKHR5cGVvZiBuZ0Rldk1vZGUgPT09ICd1bmRlZmluZWQnIHx8IG5nRGV2TW9kZSkpIHtcbiAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAnQ2Fubm90IGFjY2VzcyBHb29nbGUgTWFwIGluZm9ybWF0aW9uIGJlZm9yZSB0aGUgQVBJIGhhcyBiZWVuIGluaXRpYWxpemVkLiAnICtcbiAgICAgICAgICAnUGxlYXNlIHdhaXQgZm9yIHRoZSBBUEkgdG8gbG9hZCBiZWZvcmUgdHJ5aW5nIHRvIGludGVyYWN0IHdpdGggaXQuJyxcbiAgICAgIClcbiAgICB9XG4gIH1cbn1cbiJdfQ==
354
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLW1hcHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9nb29nbGUtbWFwcy9nb29nbGUtbWFwcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBYSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMvRSxPQUFPLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDakUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFHMUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFFaEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDakUsT0FBTyxFQUNMLHNDQUFzQyxFQUN0Qyw0QkFBNEIsRUFDNUIsNkJBQTZCLEVBQzdCLHdCQUF3QixFQUN4QixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLDBCQUEwQixFQUMxQixpQkFBaUIsRUFDakIsMkJBQTJCLEVBQzNCLGlCQUFpQixFQUNqQixrQkFBa0IsRUFDbEIsaUNBQWlDLEdBQ2xDLE1BQU0sK0JBQStCLENBQUE7QUFDdEMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFBO0FBSXBGLE1BQU0sdUJBQXVCLEdBQStCO0lBQzFELFNBQVMsRUFBRSxJQUFJO0lBQ2YsU0FBUyxFQUFFLElBQUk7SUFDZixRQUFRLEVBQUUsSUFBSTtJQUNkLGtDQUFrQztJQUNsQyxtQ0FBbUM7Q0FDcEMsQ0FBQTtBQUVELE1BQU0sK0JBQStCLEdBQXNELEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDaEcsY0FBYyxFQUFFLElBQUk7SUFDcEIscUJBQXFCLEVBQUU7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QUFHLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFBO1NBQ3RDO1FBQ0QsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUU7WUFDNUIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUkscUJBQXFCLENBQ2pELElBQUksQ0FBQyxTQUFTLEVBQ2QsSUFBSSxDQUFDLG1CQUFtQixFQUN4QixTQUFTLEVBQ1QsSUFBSSxDQUFDLElBQUksRUFDVCxJQUFJLENBQUMsT0FBTyxFQUNaLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUNuQixPQUFPLENBQ1IsQ0FBQTtTQUNGO0lBQ0gsQ0FBQztJQUVNLFVBQVUsQ0FBQyxzQkFBK0IsSUFBSTtRQUNuRCxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFBO1lBQ3pCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDaEMsSUFBSSxtQkFBbUIsRUFBRTtvQkFDdkIsaUNBQWlDLENBQUMsQ0FBQyxDQUFDLENBQUE7aUJBQ3JDO2dCQUNELE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUNaLENBQUMsQ0FBQyxDQUFBO1FBQ0osQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsaURBQWlEO0lBQ3pDLGtCQUFrQjtRQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLE9BQU8sU0FBUyxLQUFLLFdBQVcsSUFBSSxTQUFTLENBQUMsRUFBRTtZQUN0RSxNQUFNLEtBQUssQ0FDVCw0RUFBNEU7Z0JBQzFFLG9FQUFvRSxDQUN2RSxDQUFBO1NBQ0Y7SUFDSCxDQUFDOzs7WUFsWUYsVUFBVTs7O1lBbkRGLHNCQUFzQjtZQXRCVixNQUFNO1lBQWEsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdab25lLCBPbkRlc3Ryb3ksIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmcm9tLCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcydcbmltcG9ydCB7IHN3aXRjaE1hcCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcblxuaW1wb3J0IHsgTWVudUNvbXBvbmVudCB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9tZW51J1xuaW1wb3J0IHsgaXNOdWxsT3JVbmRlZmluZWQsIG5vdE51bGxPclVuZGVmaW5lZCB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi91dGlscydcblxuaW1wb3J0IHsgR29vZ2xlTWFwc0NvbnRleHRNZW51IH0gZnJvbSAnLi9nb29nbGUtbWFwcy1jb250ZXh0bWVudSdcbmltcG9ydCB7XG4gIGFkZElubmVyRmVhdHVyZUN1dG91dFRvRXh0ZXJpb3JGZWF0dXJlLFxuICBjcmVhdGVEYXRhRmVhdHVyZUZyb21Qb2x5Z29uLFxuICBjcmVhdGVGZWF0dXJlQ2hhbmdlT2JzZXJ2YWJsZSxcbiAgZ2V0Qm91bmRzV2l0aEFsbEZlYXR1cmVzLFxuICBnZXRGZWF0dXJlQ2VudGVyLFxuICBnZXRGZWF0dXJlc0NvdW50LFxuICBnZXRQb3NzaWJsZUV4dGVyaW9yRmVhdHVyZSxcbiAgaXNGZWF0dXJlU2VsZWN0ZWQsXG4gIHBvbHlnb25IYXNWYWxpZFBhdGhzTGVuZ3RocyxcbiAgcmVtb3ZlQWxsRmVhdHVyZXMsXG4gIHNldEZlYXR1cmVTZWxlY3RlZCxcbiAgc3RyaXBBcHBGZWF0dXJlUHJvcGVydGllc0Zyb21Kc29uLFxufSBmcm9tICcuL2dvb2dsZS1tYXBzLWZlYXR1cmUtaGVscGVycydcbmltcG9ydCB7IE1hcFZhbHVlTWFuYWdlclNlcnZpY2UsIE1hcFZhbHVlU291cmNlIH0gZnJvbSAnLi9tYXAtdmFsdWUtbWFuYWdlci5zZXJ2aWNlJ1xuXG5kZWNsYXJlIGNvbnN0IG5nRGV2TW9kZTogYm9vbGVhbiB8IHVuZGVmaW5lZFxuXG5jb25zdCBERUZBVUxUX1BPTFlHT05fT1BUSU9OUzogZ29vZ2xlLm1hcHMuUG9seWdvbk9wdGlvbnMgPSB7XG4gIGNsaWNrYWJsZTogdHJ1ZSxcbiAgZHJhZ2dhYmxlOiB0cnVlLFxuICBlZGl0YWJsZTogdHJ1ZSxcbiAgLy8gZmlsbENvbG9yOiAncmdiYSg2MCwxNTAsNjAsMSknLFxuICAvLyBzdHJva2VDb2xvcjogJ3JnYmEoMTU1LDI1NSwwLDEpJ1xufVxuXG5jb25zdCBERUZBVUxUX0RSQVdJTkdfTUFOQUdFUl9PUFRJT05TOiAoKCkgPT4gZ29vZ2xlLm1hcHMuZHJhd2luZy5EcmF3aW5nTWFuYWdlck9wdGlvbnMpID0gKCkgPT4gKHtcbiAgZHJhd2luZ0NvbnRyb2w6IHRydWUsXG4gIGRyYXdpbmdDb250cm9sT3B0aW9uczoge1xuICAgIGRyYXdpbmdNb2RlczogW1xuICAgICAgZ29vZ2xlLm1hcHMuZHJhd2luZy5PdmVybGF5VHlwZS5QT0xZR09OXG4gICAgXVxuICB9LFxuICBwb2x5Z29uT3B0aW9uczogREVGQVVMVF9QT0xZR09OX09QVElPTlMsXG4gIGRyYXdpbmdNb2RlOiBudWxsXG59KVxuXG5jb25zdCBGRUFUVVJFX1NUWUxFX09QVElPTlNfREVGQVVMVDogZ29vZ2xlLm1hcHMuRGF0YS5TdHlsZU9wdGlvbnMgPSB7XG4gIGNsaWNrYWJsZTogdHJ1ZSxcbiAgdmlzaWJsZTogdHJ1ZSxcbiAgLy8gekluZGV4PzogbnVtYmVyO1xuXG4gIC8vIGN1cnNvcj86IHN0cmluZztcbiAgZHJhZ2dhYmxlOiBmYWxzZSxcbiAgZWRpdGFibGU6IGZhbHNlLFxuICBmaWxsQ29sb3I6ICd0ZWFsJyxcbiAgZmlsbE9wYWNpdHk6IDAuMyxcbiAgc3Ryb2tlQ29sb3I6ICdibHVlJyxcbiAgc3Ryb2tlT3BhY2l0eTogMSxcbiAgc3Ryb2tlV2VpZ2h0OiAyLFxufVxuXG5jb25zdCBGRUFUVVJFX1NUWUxFX09QVElPTlNfU0VMRUNURUQ6IGdvb2dsZS5tYXBzLkRhdGEuU3R5bGVPcHRpb25zID0ge1xuICAuLi5GRUFUVVJFX1NUWUxFX09QVElPTlNfREVGQVVMVCxcbiAgZHJhZ2dhYmxlOiB0cnVlLFxuICBlZGl0YWJsZTogdHJ1ZSxcbiAgZmlsbENvbG9yOiAnZ3JlZW4nLFxuICBmaWxsT3BhY2l0eTogMC43LFxuICBzdHJva2VDb2xvcjogJ2xpbWVncmVlbicsXG4gIHN0cm9rZU9wYWNpdHk6IDEsXG4gIHN0cm9rZVdlaWdodDogMixcbn1cblxudHlwZSBXaXRoUmVxdWlyZWQ8VCwgSyBleHRlbmRzIGtleW9mIFQ+ID0gVCAmIHsgW1AgaW4gS10tPzogVFtQXSB9XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBHb29nbGVNYXBzU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpXG5cbiAgcHJpdmF0ZSByZWFkb25seSBfbWFwUmVhZHlTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSlcblxuICBwcml2YXRlIF9kcmF3aW5nTWFuYWdlcj86IGdvb2dsZS5tYXBzLmRyYXdpbmcuRHJhd2luZ01hbmFnZXJcbiAgcHJpdmF0ZSBfZmVhdHVyZUNvbnRleHRNZW51OiBNZW51Q29tcG9uZW50IHwgbnVsbCA9IG51bGxcbiAgcHJpdmF0ZSBfYWN0aXZlQ29udGV4dE1lbnU6IEdvb2dsZU1hcHNDb250ZXh0TWVudSB8IG51bGwgPSBudWxsXG4gIHByaXZhdGUgX2Jhc2VMYXRMbmc/OiBnb29nbGUubWFwcy5MYXRMbmdMaXRlcmFsXG5cbiAgcHJpdmF0ZSBfYWxsb3dEcmF3aW5nSG9sZUluUG9seWdvbjogYm9vbGVhbiA9IGZhbHNlXG5cbiAgLy8gVE9ETzogTW92ZSB0byBhIGJldHRlciBwbGFjZSB0aGFuIHRoZSBtYXAgd3JhcHBlciBzZXJ2aWNlLlxuICBwcml2YXRlIF9maWxlSW5wdXRIYW5kbGVyOiAoKGZpbGU6IEZpbGUpID0+IHZvaWQpIHwgdW5kZWZpbmVkIHwgbnVsbFxuXG4gIHB1YmxpYyBnb29nbGVNYXA/OiBnb29nbGUubWFwcy5NYXBcblxuICBwdWJsaWMgcmVhZG9ubHkgbWFwUmVhZHkkOiBPYnNlcnZhYmxlPGJvb2xlYW4+XG5cbiAgcHVibGljIGdldCBtYXBSZWFkeSgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX21hcFJlYWR5U3ViamVjdC52YWx1ZSB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBfbWFwVmFsdWVNYW5hZ2VyOiBNYXBWYWx1ZU1hbmFnZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX25nWm9uZTogTmdab25lLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3ZjcjogVmlld0NvbnRhaW5lclJlZixcbiAgKSB7XG4gICAgdGhpcy5tYXBSZWFkeSQgPSB0aGlzLl9tYXBSZWFkeVN1YmplY3QuYXNPYnNlcnZhYmxlKClcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX25nVW5zdWJzY3JpYmUubmV4dCgpXG4gICAgdGhpcy5fbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpXG4gIH1cblxuICBwdWJsaWMgc2V0TWFwKG1hcDogZ29vZ2xlLm1hcHMuTWFwKTogdm9pZCB7XG4gICAgdGhpcy5nb29nbGVNYXAgPSBtYXBcbiAgICB0aGlzLl9tYXBSZWFkeVN1YmplY3QubmV4dCh0cnVlKVxuICAgIHRoaXMuX2luaXREcmF3aW5nTWFuYWdlcigpXG4gICAgdGhpcy5faW5pdEZlYXR1cmVTdHlsaW5nKClcbiAgICB0aGlzLl9pbml0RmVhdHVyZUNoYW5nZUxpc3RlbmVycygpXG4gIH1cblxuICBwdWJsaWMgc2V0QmFzZUxhdExuZyhsYXQ6IG51bWJlciwgbG5nOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLl9iYXNlTGF0TG5nID0geyBsYXQsIGxuZyB9XG4gIH1cblxuICAvLyBUT0RPOiBSZWZhY3RvciBvdXQgb2YgdGhlIHNlcnZpY2UgbWVhbnQgdG8ganVzdCB3cmFwIHRoZSBnb29nbGUgbWFwcyBhcGkuXG4gIHB1YmxpYyBzZXRGZWF0dXJlQ29udGV4dE1lbnUobWVudTogTWVudUNvbXBvbmVudCB8IG51bGwpOiB2b2lkIHtcbiAgICB0aGlzLl9mZWF0dXJlQ29udGV4dE1lbnUgPSBtZW51XG4gIH1cblxuICBwdWJsaWMgZ2V0RGl2KCk6IEhUTUxEaXZFbGVtZW50IHtcbiAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpXG4gICAgcmV0dXJuIHRoaXMuZ29vZ2xlTWFwLmdldERpdigpIGFzIEhUTUxEaXZFbGVtZW50XG4gIH1cblxuICBwdWJsaWMgZml0Qm91bmRzKGJvdW5kczogZ29vZ2xlLm1hcHMuTGF0TG5nQm91bmRzIHwgZ29vZ2xlLm1hcHMuTGF0TG5nQm91bmRzTGl0ZXJhbCwgcGFkZGluZz86IG51bWJlciB8IGdvb2dsZS5tYXBzLlBhZGRpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpXG4gICAgdGhpcy5nb29nbGVNYXAuZml0Qm91bmRzKGJvdW5kcywgcGFkZGluZylcbiAgfVxuXG4gIC8qKlxuICAgKiBJdGVyYXRlcyB0aGUgbWFwJ3MgZmVhdHVyZXMgYW5kIHJlbW92ZXMgYW55IHRoYXQgYXJlIHNlbGVjdGVkLlxuICAgKi9cbiAgcHVibGljIGRlbGV0ZVNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpXG4gICAgY29uc3QgbWFwRGF0YSA9IHRoaXMuZ29vZ2xlTWFwLmRhdGFcbiAgICBtYXBEYXRhLmZvckVhY2goZiA9PiB7XG4gICAgICBpZiAoaXNGZWF0dXJlU2VsZWN0ZWQoZikpIHtcbiAgICAgICAgbWFwRGF0YS5yZW1vdmUoZilcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIFN0b3BzIHRoZSBjdXJyZW50IGRyYXdpbmcuXG4gICAqL1xuICBwdWJsaWMgc3RvcERyYXdpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGlmIChpc051bGxPclVuZGVmaW5lZCh0aGlzLl9kcmF3aW5nTWFuYWdlcikgfHwgdGhpcy5fZHJhd2luZ01hbmFnZXIuZ2V0RHJhd2luZ01vZGUoKSA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgLy8gTGlzdGVuaW5nIGZvciB0aGUgY29tcGxldGlvbiBldmVudCBvZiB0aGUgb3ZlcmxheSBjdXJyZW50bHkgYmVpbmcgZHJhd25cbiAgICAgIC8vIGFuZCByZW1vdmluZyBpdC4gSSBoYXZlbid0IGZvdW5kIGEgd2F5IHRvIGNhbmNlbCB0aGUgY3VycmVudCBkcmF3aW5nLFxuICAgICAgLy8gd2l0aG91dCB0aGlzIGhhY2sgdGhhdCBhc3N1bWVzIG91ciBsaXN0ZW5lcnMgd2lsbCBub3QgcnVuIGludG8gYSByYWNlXG4gICAgICAvLyBjb25kaXRpb24uXG4gICAgICBjb25zdCBsaXN0ZW5lciA9IGdvb2dsZS5tYXBzLmV2ZW50LmFkZExpc3RlbmVyKFxuICAgICAgICB0aGlzLl9kcmF3aW5nTWFuYWdlcixcbiAgICAgICAgJ292ZXJsYXljb21wbGV0ZScsXG4gICAgICAgIChldmVudDogZ29vZ2xlLm1hcHMuZHJhd2luZy5PdmVybGF5Q29tcGxldGVFdmVudCkgPT4ge1xuICAgICAgICAgIGV2ZW50Lm92ZXJsYXkuc2V0TWFwKG51bGwpXG4gICAgICAgICAgbGlzdGVuZXIucmVtb3ZlKClcbiAgICAgICAgfVxuICAgICAgKVxuXG4gICAgICAvLyBUbyBmYWtlIGNhbmNlbGluZyB0aGUgY3VycmVudCBkcmF3aW5nLCB3aXRob3V0IGRpc2FibGluZyB0aGUgZHJhd2luZ1xuICAgICAgLy8gbW9kZSwgdGhlIGRyYXdpbiBtb2RlIGlzIGJlaW5nIHVuc2V0IHRoZW4gaW1tZWRpYXRlbHkgc2V0IGJhY2suIFdoZW5cbiAgICAgIC8vIHRoZSBtb2RlIGlzIHVuc2V0IHRoZSAnb3ZlcmxheWNvbXBsZXRlJyBldmVudCB3aWxsIGZpcmUsIHdoaWNoIHdpbGxcbiAgICAgIC8vIGdpdmUgYSByZWZlcmVuY2UgdG8gdGhlIGN1cnJlbnQgb3ZlcmxheSB0byByZW1vdmUsIHRoZW4gaXQgaXMgc2V0IGJhY2tcbiAgICAgIC8vIHRvIHRoZSBtb2RlIHRoZSB1c2VyIHdhcyB1c2luZy4gVG8gdGhlIHVzZXIgaXMgc2hvdWxkIGp1c3Qgc2VlbSBsaWtlXG4gICAgICAvLyB0aGUgY3VycmVudCBkcmF3aW5nIHdhcyBjYW5jZWxlZCBhbmQgdGhleSBjYW4gc3RhcnQgZHJhd2luZyBhZ2Fpbi5cbiAgICAgIGNvbnN0IG1vZGUgPSB0aGlzLl9kcmF3aW5nTWFuYWdlci5nZXREcmF3aW5nTW9kZSgpXG4gICAgICB0aGlzLl9kcmF3aW5nTWFuYWdlci5zZXREcmF3aW5nTW9kZShudWxsKVxuICAgICAgdGhpcy5fZHJhd2luZ01hbmFnZXIuc2V0RHJhd2luZ01vZGUobW9kZSlcblxuICAgICAgLy8gJ292ZXJsYXljb21wbGV0ZScgc2hvdWxkIGZpcmUgaW1tZWRpYXRlbHksIHVubGVzcyBhbiBvdmVybGF5IGhhZG4ndFxuICAgICAgLy8gc3RhcnRlZCBkcmF3aW5nLiBUaGlzIHRpbWVvdXQgd2lsbCBtYWtlIHN1cmUgdGhlIGxpc3RlbmVyIGdldHMgcmVtb3ZlZC5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBsaXN0ZW5lci5yZW1vdmUoKVxuICAgICAgfSlcblxuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIF9pbml0RHJhd2luZ01hbmFnZXIoKTogdm9pZCB7XG4gICAgaWYgKG5vdE51bGxPclVuZGVmaW5lZCh0aGlzLl9kcmF3aW5nTWFuYWdlcikpIHtcbiAgICAgIHRocm93IEVycm9yKGBEcmF3aW5nTWFuYWdlciBpcyBhbHJlYWR5IGluaXRpYWxpemVkLmApXG4gICAgfVxuXG4gICAgdGhpcy5fYXNzZXJ0SW5pdGlhbGl6ZWQoKVxuXG4gICAgY29uc3Qgb3B0aW9ucyA9IERFRkFVTFRfRFJBV0lOR19NQU5BR0VSX09QVElPTlMoKVxuXG4gICAgY29uc3QgZHJhd2luZ01hbmFnZXIgPSBuZXcgZ29vZ2xlLm1hcHMuZHJhd2luZy5EcmF3aW5nTWFuYWdlcihvcHRpb25zKVxuICAgIGRyYXdpbmdNYW5hZ2VyLnNldE1hcCh0aGlzLmdvb2dsZU1hcClcblxuICAgIHRoaXMuX2RyYXdpbmdNYW5hZ2VyID0gZHJhd2luZ01hbmFnZXJcblxuICAgIHRoaXMuX2RyYXdpbmdNYW5hZ2VyLmFkZExpc3RlbmVyKCdkcmF3aW5nbW9kZV9jaGFuZ2VkJywgZXZlbnQgPT4ge1xuICAgICAgaWYgKHRoaXMuX2RyYXdpbmdNYW5hZ2VyPy5nZXREcmF3aW5nTW9kZSgpICE9PSBudWxsKSB7XG4gICAgICAgIHRoaXMuX2Fzc2VydEluaXRpYWxpemVkKClcbiAgICAgICAgdGhpcy5nb29nbGVNYXAuZGF0YS5mb3JFYWNoKGYgPT4ge1xuICAgICAgICAgIGlmIChpc0ZlYXR1cmVTZWxlY3RlZChmKSkge1xuICAgICAgICAgICAgc2V0RmVhdHVyZVNlbGVjdGVkKGYsIGZhbHNlKVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgcHVibGljIGFkZENvbnRyb2woZWxlbWVudDogSFRNTEVsZW1lbnQsIHBvc2l0aW9uOiBnb29nbGUubWFwcy5Db250cm9sUG9zaXRpb24pOiB2b2lkIHtcbiAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpXG4gICAgdGhpcy5nb29nbGVNYXAuY29udHJvbHNbcG9zaXRpb25dLnB1c2goZWxlbWVudClcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzZXREYXRhKGRhdGE6IGFueSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuX2Fzc2VydEluaXRpYWxpemVkKClcbiAgICByZW1vdmVBbGxGZWF0dXJlcyh0aGlzLmdvb2dsZU1hcC5kYXRhKVxuICAgIHRoaXMuZ29vZ2xlTWFwLmRhdGEuYWRkR2VvSnNvbihkYXRhKVxuICAgIHRoaXMuZ29vZ2xlTWFwLmZpdEJvdW5kcyhnZXRCb3VuZHNXaXRoQWxsRmVhdHVyZXModGhpcy5nb29nbGVNYXAuZGF0YSkpXG4gIH1cblxuICAvLyBUT0RPOiBSZWZhY3RvciBvdXQgb2YgdGhlIHNlcnZpY2UgbWVhbnQgdG8ganVzdCB3cmFwIHRoZSBnb29nbGUgbWFwcyBhcGkuXG4gIHB1YmxpYyByZUNlbnRlck9uRmVhdHVyZXMoKTogdm9pZCB7XG4gICAgdGhpcy5fYXNzZXJ0SW5pdGlhbGl6ZWQoKVxuICAgIGlmIChnZXRGZWF0dXJlc0NvdW50KHRoaXMuZ29vZ2xlTWFwLmRhdGEpID09PSAwKSB7XG4gICAgICBpZiAoIXRoaXMuX2Jhc2VMYXRMbmcpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIHRoaXMuZ29vZ2xlTWFwLnBhblRvKHRoaXMuX2Jhc2VMYXRMbmcpXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgdGhpcy5nb29nbGVNYXAuZml0Qm91bmRzKGdldEJvdW5kc1dpdGhBbGxGZWF0dXJlcyh0aGlzLmdvb2dsZU1hcC5kYXRhKSlcblxuICAgIC8vIFRPRE86IEZpeCB0byBwYW4gdG8gY2VudGVyLiBDdXJyZW50bHkgZml0Qm91bmRzIHJlc3VsdHMgaW4gdGhlIGV4cGVjdGVkXG4gICAgLy8gcmVzdWx0LCBidXQgcGFudFRvQm91bmRzIGFuaW1hdGVzLlxuICAgIC8vIHRoaXMuZ29vZ2xlTWFwLnBhblRvQm91bmRzKGdldEJvdW5kc1dpdGhBbGxGZWF0dXJlcyh0aGlzLmdvb2dsZU1hcC5kYXRhKSlcbiAgfVxuXG4gIHB1YmxpYyBhbGxvd0RyYXdpbmdIb2xlSW5Qb2x5Z29uKGFsbG93OiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5fYWxsb3dEcmF3aW5nSG9sZUluUG9seWdvbiA9IGFsbG93XG4gIH1cblxuICBwdWJsaWMgc2V0RmlsZUlucHV0SGFuZGxlcihoYW5kbGVyOiAoKGZpbGU6IEZpbGUpID0+IHZvaWQpIHwgdW5kZWZpbmVkIHwgbnVsbCk6IHZvaWQge1xuICAgIHRoaXMuX2ZpbGVJbnB1dEhhbmRsZXIgPSBoYW5kbGVyXG4gIH1cblxuICBwdWJsaWMgZ2V0RmlsZUlucHV0SGFuZGxlcigpOiAoKGZpbGU6IEZpbGUpID0+IHZvaWQpIHwgdW5kZWZpbmVkIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbGVJbnB1dEhhbmRsZXJcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRGZWF0dXJlU3R5bGluZygpOiB2b2lkIHtcbiAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpXG5cbiAgICAvLyBEaXNhYmxlIGFueSBzZWxlY3Rpb24gd2hlbiBjbGlja2luZyB0aGUgbWFwLlxuICAgIC8vXG4gICAgLy8gVE9ETzogVGhlcmUgbWF5IGJlIGEgYmV0dGVyIHdheSB0byBkbyB0aGlzIHRoYXQgd291bGQgYmUgbW9yZSBhY2N1cmF0ZSBvclxuICAgIC8vIGFkZGl0aW9uYWwgZXZlbnRzIHRoYXQgc2hvdWxkIGJlIGxpc3RlbmVkIHRvLCBzdWNoIGFzIHRoZSBkaXNhYmxpbmdcbiAgICAvLyBzZWxlY3Rpb24gd2hlbiB0aGUgbWFwIGxvb3NlcyBmb2N1cy5cbiAgICB0aGlzLmdvb2dsZU1hcC5hZGRMaXN0ZW5lcignY2xpY2snLCAoZXZlbjogZ29vZ2xlLm1hcHMuTWFwTW91c2VFdmVudCB8IGdvb2dsZS5tYXBzLkljb25Nb3VzZUV2ZW50KSA9PiB7XG4gICAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpXG4gICAgICB0aGlzLmdvb2dsZU1hcC5kYXRhLmZvckVhY2goZiA9PiBzZXRGZWF0dXJlU2VsZWN0ZWQoZiwgZmFsc2UpKVxuICAgIH0pXG5cbiAgICAvLyBEZXRlcm1pbmUgd2hhdCB0aGUgc3R5bGUgb2YgdGhlIGZlYXR1cmVzIGFyZS5cbiAgICB0aGlzLmdvb2dsZU1hcC5kYXRhLnNldFN0eWxlKChmZWF0dXJlKSA9PiB7XG4gICAgICBpZiAoaXNGZWF0dXJlU2VsZWN0ZWQoZmVhdHVyZSkpIHtcbiAgICAgICAgcmV0dXJuIEZFQVRVUkVfU1RZTEVfT1BUSU9OU19TRUxFQ1RFRFxuICAgICAgfVxuXG4gICAgICByZXR1cm4gRkVBVFVSRV9TVFlMRV9PUFRJT05TX0RFRkFVTFRcbiAgICB9KVxuXG4gICAgLy8gU2VsZWN0IGEgZmVhdHVyZSB3aGVuIGNsaWNrZWQuXG4gICAgdGhpcy5nb29nbGVNYXAuZGF0YS5hZGRMaXN0ZW5lcignY2xpY2snLCAoZXZlbnQ6IGdvb2dsZS5tYXBzLkRhdGEuTW91c2VFdmVudCkgPT4ge1xuICAgICAgdGhpcy5fYXNzZXJ0SW5pdGlhbGl6ZWQoKVxuXG4gICAgICBzZXRGZWF0dXJlU2VsZWN0ZWQoZXZlbnQuZmVhdHVyZSwgdHJ1ZSlcbiAgICAgIHRoaXMuZ29vZ2xlTWFwLmRhdGEuZm9yRWFjaChmID0+IHtcbiAgICAgICAgaWYgKGYgIT09IGV2ZW50LmZlYXR1cmUgJiYgaXNGZWF0dXJlU2VsZWN0ZWQoZikpIHtcbiAgICAgICAgICBzZXRGZWF0dXJlU2VsZWN0ZWQoZiwgZmFsc2UpXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfSlcblxuICAgIC8vIFNldCBhIHN0eWxlIG9uIGhvdmVyZWQgZmVhdHVyZXMgdGhhdCBjYW4gYmUgc2VsZWN0ZWQuXG4gICAgdGhpcy5nb29nbGVNYXAuZGF0YS5hZGRMaXN0ZW5lcignbW91c2VvdmVyJywgKGV2ZW50OiBnb29nbGUubWFwcy5EYXRhLk1vdXNlRXZlbnQpID0+IHtcbiAgICAgIHRoaXMuX2Fzc2VydEluaXRpYWxpemVkKClcbiAgICAgIHRoaXMuZ29vZ2xlTWFwLmRhdGEucmV2ZXJ0U3R5bGUoKVxuICAgICAgaWYgKCF0aGlzLmlzRHJhd2luZygpICYmICFpc0ZlYXR1cmVTZWxlY3RlZChldmVudC5mZWF0dXJlKSkge1xuICAgICAgICB0aGlzLmdvb2dsZU1hcC5kYXRhLm92ZXJyaWRlU3R5bGUoZXZlbnQuZmVhdHVyZSwgeyBzdHJva2VXZWlnaHQ6IDQgfSlcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgLy8gUmVtb3ZlIGFueSBob3ZlciBzdHlsZXMgd2hlbiBtb3VzZSBtb3ZlcyBhd2F5LlxuICAgIHRoaXMuZ29vZ2xlTWFwLmRhdGEuYWRkTGlzdGVuZXIoJ21vdXNlb3V0JywgKGV2ZW50OiBnb29nbGUubWFwcy5EYXRhLk1vdXNlRXZlbnQpID0+IHtcbiAgICAgIHRoaXMuX2Fzc2VydEluaXRpYWxpemVkKClcbiAgICAgIHRoaXMuZ29vZ2xlTWFwLmRhdGEucmV2ZXJ0U3R5bGUoKVxuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIF9pbml0RmVhdHVyZUNoYW5nZUxpc3RlbmVycygpOiB2b2lkIHtcbiAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpXG5cbiAgICBjcmVhdGVGZWF0dXJlQ2hhbmdlT2JzZXJ2YWJsZSh0aGlzLmdvb2dsZU1hcC5kYXRhLCB0aGlzLl9uZ1pvbmUpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4gZnJvbSh0aGlzLmdldEdlb0pzb24oKSkucGlwZShcbiAgICAgICAgdGFwKGdlb0pzb24gPT4gdGhpcy5fbWFwVmFsdWVNYW5hZ2VyLnNldFZhbHVlKGdlb0pzb24sIE1hcFZhbHVlU291cmNlLkZlYXR1cmVDaGFuZ2UpKSxcbiAgICAgICkpLFxuICAgICAgdGFrZVVudGlsKHRoaXMuX25nVW5zdWJzY3JpYmUpLFxuICAgICkuc3Vic2NyaWJlKClcblxuICAgIHRoaXMuZ29vZ2xlTWFwLmRhdGEuYWRkTGlzdGVuZXIoJ2NvbnRleHRtZW51JywgKGV2ZW50OiBnb29nbGUubWFwcy5EYXRhLk1vdXNlRXZlbnQpID0+IHtcbiAgICAgIGlmICghaXNGZWF0dXJlU2VsZWN0ZWQoZXZlbnQuZmVhdHVyZSkpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIHRoaXMuX29wZW5Db250ZXh0TWVudUZvckZlYXR1cmUoZXZlbnQuZmVhdHVyZSwgZXZlbnQubGF0TG5nKVxuICAgIH0pXG5cbiAgICBpZiAobm90TnVsbE9yVW5kZWZpbmVkKHRoaXMuX2RyYXdpbmdNYW5hZ2VyKSkge1xuICAgICAgZ29vZ2xlLm1hcHMuZXZlbnQuYWRkTGlzdGVuZXIodGhpcy5fZHJhd2luZ01hbmFnZXIsICdwb2x5Z29uY29tcGxldGUnLCAocG9seWdvbjogZ29vZ2xlLm1hcHMuUG9seWdvbikgPT4ge1xuICAgICAgICAvLyBUaGUgRHJhd2luZ01hbmFnZXIgZG9lc24ndCBzZWVtIHRvIGhhdmUgYSB3YXkgdG8gYWNjZXNzIHRoZSBvdmVybGF5cyxcbiAgICAgICAgLy8gc28gaWYgdGhlIG1hcCBpcyBub3Qgc2V0IHRoZW4gaXQgc2hvdWxkbid5IGJlIGNvbnNpZGVyZWQgYSBzdWNjZXNzZnVsXG4gICAgICAgIC8vIGNvbXBsZXRpb24uIEkgYW0gY2FuY2VsaW5nIHRoZSBhY3RpdmUgZHJhd2luZyBieSBkaXNhYmxpbmcgZHJhd2luZ1xuICAgICAgICAvLyBtb2RlIGFuZCBzZXR0aW5nIHRoZSBtYXAgbnVsbCBpbiB0aGUgJ292ZXJsYXljb21wbGV0ZScgZXZlbnQsIHdoaWNoXG4gICAgICAgIC8vIGZpcmVzIGJlZm9yZSB0aGUgJ3BvbHlnb25jb21wbGV0ZScgZXZlbnQuXG4gICAgICAgIGlmIChpc051bGxPclVuZGVmaW5lZChwb2x5Z29uLmdldE1hcCgpKSkge1xuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fYXNzZXJ0SW5pdGlhbGl6ZWQoKVxuXG4gICAgICAgIC8vIFRPRE86IFNlZSBpZiB0aGVyZSBpcyBhIHdheSB0byBwcmV2ZW50IHRoZSBwb2x5Z29uIGZyb20gY29tcGxldGluZ1xuICAgICAgICAvLyB3aXRob3V0IGVub3VnaCBwb2ludHMuIFRoaXMgaXMgdmVyeSBsb3cgcHJpb3JpdHksIGJlY2F1c2Ugc3RhcnRpbmdcbiAgICAgICAgLy8gb3ZlciBhZnRlciBhZGRpbmcgYSBzaW5nbGUgcG9pbnQgaXNuJ3QgYSBtYWpvciBpbmNvbnZlbmllbmNlLlxuICAgICAgICBpZiAoIXBvbHlnb25IYXNWYWxpZFBhdGhzTGVuZ3Rocyhwb2x5Z29uKSkge1xuICAgICAgICAgIC8vIFJlbW92ZSB0aGUgZHJhd24gcG9seWdvbi5cbiAgICAgICAgICBwb2x5Z29uLnNldE1hcChudWxsKVxuICAgICAgICAgIC8vIFN0b3AgZHJhd2luZy5cbiAgICAgICAgICB0aGlzLl9kcmF3aW5nTWFuYWdlcj8uc2V0RHJhd2luZ01vZGUobnVsbClcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENyZWF0ZSBhIG1hcCBmZWF0dXJlIG9mIHRoZSBkcmF3biBwb2x5Z29uLlxuICAgICAgICBjb25zdCBmZWF0dXJlID0gY3JlYXRlRGF0YUZlYXR1cmVGcm9tUG9seWdvbihwb2x5Z29uKVxuICAgICAgICAvLyBSZW1vdmUgdGhlIGRyYXduIHBvbHlnb24uXG4gICAgICAgIHBvbHlnb24uc2V0TWFwKG51bGwpXG5cbiAgICAgICAgLy8gU3RvcCBkcmF3aW5nLlxuICAgICAgICB0aGlzLl9kcmF3aW5nTWFuYWdlcj8uc2V0RHJhd2luZ01vZGUobnVsbClcblxuICAgICAgICAvLyBDaGVjayBpZiB0aGUgZmVhdHVyZSBzaG91bGQgYmUgdXNlZCBhcyBhIGN1dG91dCB0byBhbiBleGlzdGluZ1xuICAgICAgICAvLyBmZWF0dXJlIG9yIGFkZGVkIGFzIGl0J3Mgb3duIGZlYXR1cmUuXG4gICAgICAgIGNvbnN0IGV4dGVyaW9yUG9seWdvbkZlYXR1cmUgPSB0aGlzLl9hbGxvd0RyYXdpbmdIb2xlSW5Qb2x5Z29uXG4gICAgICAgICAgPyBnZXRQb3NzaWJsZUV4dGVyaW9yRmVhdHVyZSh0aGlzLmdvb2dsZU1hcC5kYXRhLCBmZWF0dXJlKVxuICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICAgIGlmIChleHRlcmlvclBvbHlnb25GZWF0dXJlKSB7XG4gICAgICAgICAgYWRkSW5uZXJGZWF0dXJlQ3V0b3V0VG9FeHRlcmlvckZlYXR1cmUoZXh0ZXJpb3JQb2x5Z29uRmVhdHVyZSwgZmVhdHVyZSlcbiAgICAgICAgICBzZXRGZWF0dXJlU2VsZWN0ZWQoZXh0ZXJpb3JQb2x5Z29uRmVhdHVyZSwgdHJ1ZSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmdvb2dsZU1hcC5kYXRhLmFkZChmZWF0dXJlKVxuICAgICAgICAgIHNldEZlYXR1cmVTZWxlY3RlZChmZWF0dXJlLCB0cnVlKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBpc0RyYXdpbmcoKTogYm9vbGVhbiB7XG4gICAgaWYgKGlzTnVsbE9yVW5kZWZpbmVkKHRoaXMuX2RyYXdpbmdNYW5hZ2VyKSkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fZHJhd2luZ01hbmFnZXIuZ2V0RHJhd2luZ01vZGUoKSAhPT0gbnVsbFxuICB9XG5cbiAgLy8gVE9ETzogUmVmYWN0b3Igb3V0IG9mIHRoZSBzZXJ2aWNlIG1lYW50IHRvIGp1c3Qgd3JhcCB0aGUgZ29vZ2xlIG1hcHMgYXBpLlxuICBwdWJsaWMgaGFzU2VsZWN0ZWRGZWF0dXJlKCk6IGJvb2xlYW4ge1xuICAgIHRoaXMuX2Fzc2VydEluaXRpYWxpemVkKClcbiAgICBsZXQgaXNTZWxlY3RlZCA9IGZhbHNlXG4gICAgdGhpcy5nb29nbGVNYXAuZGF0YS5mb3JFYWNoKGYgPT4ge1xuICAgICAgaWYgKGlzRmVhdHVyZVNlbGVjdGVkKGYpKSB7XG4gICAgICAgIGlzU2VsZWN0ZWQgPSB0cnVlXG4gICAgICB9XG4gICAgfSlcbiAgICByZXR1cm4gaXNTZWxlY3RlZFxuICB9XG5cbiAgLy8gVE9ETzogUmVmYWN0b3Igb3V0IG9mIHRoZSBzZXJ2aWNlIG1lYW50IHRvIGp1c3Qgd3JhcCB0aGUgZ29vZ2xlIG1hcHMgYXBpLlxuICBwdWJsaWMgZ2V0U2VsZWN0ZWRGZWF0dXJlKCk6IGdvb2dsZS5tYXBzLkRhdGEuRmVhdHVyZSB8IG51bGwge1xuICAgIHRoaXMuX2Fzc2VydEluaXRpYWxpemVkKClcbiAgICBsZXQgZmVhdHVyZTogZ29vZ2xlLm1hcHMuRGF0YS5GZWF0dXJlIHwgbnVsbCA9IG51bGxcbiAgICB0aGlzLmdvb2dsZU1hcC5kYXRhLmZvckVhY2goZiA9PiB7XG4gICAgICBpZiAoaXNGZWF0dXJlU2VsZWN0ZWQoZikpIHtcbiAgICAgICAgZmVhdHVyZSA9IGZcbiAgICAgIH1cbiAgICB9KVxuICAgIHJldHVybiBmZWF0dXJlXG4gIH1cblxuICAvLyBUT0RPOiBSZWZhY3RvciBvdXQgb2YgdGhlIHNlcnZpY2UgbWVhbnQgdG8ganVzdCB3cmFwIHRoZSBnb29nbGUgbWFwcyBhcGkuXG4gIHB1YmxpYyBvcGVuQ29udGV4dE1lbnUoKTogdm9pZCB7XG4gICAgY29uc3QgZmVhdHVyZSA9IHRoaXMuZ2V0U2VsZWN0ZWRGZWF0dXJlKClcbiAgICBpZiAoZmVhdHVyZSkge1xuICAgICAgdGhpcy5fb3BlbkNvbnRleHRNZW51Rm9yRmVhdHVyZShmZWF0dXJlKVxuICAgIH1cbiAgfVxuXG4gIC8vIFRPRE86IFJlZmFjdG9yIG91dCBvZiB0aGUgc2VydmljZSBtZWFudCB0byBqdXN0IHdyYXAgdGhlIGdvb2dsZSBtYXBzIGFwaS5cbiAgcHJpdmF0ZSBfb3BlbkNvbnRleHRNZW51Rm9yRmVhdHVyZShmZWF0dXJlOiBnb29nbGUubWFwcy5EYXRhLkZlYXR1cmUsIHBvc2l0aW9uPzogZ29vZ2xlLm1hcHMuTGF0TG5nKSB7XG4gICAgaWYgKHRoaXMuX2FjdGl2ZUNvbnRleHRNZW51KSB7XG4gICAgICB0aGlzLl9hY3RpdmVDb250ZXh0TWVudS5jbG9zZSgpXG4gICAgICB0aGlzLl9hY3RpdmVDb250ZXh0TWVudSA9IG51bGxcbiAgICB9XG5cbiAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpXG5cbiAgICBsZXQgX3Bvc2l0aW9uID0gcG9zaXRpb25cbiAgICBpZiAoIV9wb3NpdGlvbikge1xuICAgICAgX3Bvc2l0aW9uID0gZ2V0RmVhdHVyZUNlbnRlcihmZWF0dXJlKVxuICAgIH1cbiAgICBpZiAodGhpcy5fZmVhdHVyZUNvbnRleHRNZW51KSB7XG4gICAgICB0aGlzLl9hY3RpdmVDb250ZXh0TWVudSA9IG5ldyBHb29nbGVNYXBzQ29udGV4dE1lbnUoXG4gICAgICAgIHRoaXMuZ29vZ2xlTWFwLFxuICAgICAgICB0aGlzLl9mZWF0dXJlQ29udGV4dE1lbnUsXG4gICAgICAgIF9wb3NpdGlvbixcbiAgICAgICAgdGhpcy5fdmNyLFxuICAgICAgICB0aGlzLl9uZ1pvbmUsXG4gICAgICAgIHRoaXMuZ29vZ2xlTWFwLmRhdGEsXG4gICAgICAgIGZlYXR1cmUsXG4gICAgICApXG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldEdlb0pzb24ocmVtb3ZlQXBwUHJvcGVydGllczogYm9vbGVhbiA9IHRydWUpOiBQcm9taXNlPG9iamVjdD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLl9hc3NlcnRJbml0aWFsaXplZCgpXG4gICAgICB0aGlzLmdvb2dsZU1hcC5kYXRhLnRvR2VvSnNvbihmID0+IHtcbiAgICAgICAgaWYgKHJlbW92ZUFwcFByb3BlcnRpZXMpIHtcbiAgICAgICAgICBzdHJpcEFwcEZlYXR1cmVQcm9wZXJ0aWVzRnJvbUpzb24oZilcbiAgICAgICAgfVxuICAgICAgICByZXNvbHZlKGYpXG4gICAgICB9KVxuICAgIH0pXG4gIH1cblxuICAvKiogQXNzZXJ0cyB0aGF0IHRoZSBtYXAgaGFzIGJlZW4gaW5pdGlhbGl6ZWQuICovXG4gIHByaXZhdGUgX2Fzc2VydEluaXRpYWxpemVkKCk6IGFzc2VydHMgdGhpcyBpcyBXaXRoUmVxdWlyZWQ8R29vZ2xlTWFwc1NlcnZpY2UsICdnb29nbGVNYXAnPiB7XG4gICAgaWYgKCF0aGlzLmdvb2dsZU1hcCAmJiAodHlwZW9mIG5nRGV2TW9kZSA9PT0gJ3VuZGVmaW5lZCcgfHwgbmdEZXZNb2RlKSkge1xuICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICdDYW5ub3QgYWNjZXNzIEdvb2dsZSBNYXAgaW5mb3JtYXRpb24gYmVmb3JlIHRoZSBBUEkgaGFzIGJlZW4gaW5pdGlhbGl6ZWQuICcgK1xuICAgICAgICAgICdQbGVhc2Ugd2FpdCBmb3IgdGhlIEFQSSB0byBsb2FkIGJlZm9yZSB0cnlpbmcgdG8gaW50ZXJhY3Qgd2l0aCBpdC4nLFxuICAgICAgKVxuICAgIH1cbiAgfVxufVxuIl19
@@ -41,4 +41,4 @@ function isFeatureCollectionValue(value) {
41
41
  }
42
42
  return value.type === 'FeatureCollection' && Array.isArray(value.features);
43
43
  }
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29lcmNlLWZlYXR1cmUtY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi91dGlscy9nZW8tanNvbi9jb2VyY2UtZmVhdHVyZS1jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLGlFQUFpRTtBQUNqRSxNQUFNLFVBQVUsdUJBQXVCLENBQUMsS0FBVTtJQUNoRCxPQUFPLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQTtBQUMxQixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBUyxVQUFVLENBQUMsS0FBVTtJQUM1QixNQUFNLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUN0QyxJQUFJLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQ3BDLE9BQU8sTUFBTSxDQUFBO0tBQ2Q7SUFDRCxPQUFPLElBQUksQ0FBQTtBQUNiLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFTLGdCQUFnQixDQUFDLEtBQVU7SUFDbEMsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7UUFDN0IsSUFBSTtZQUNGLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQTtTQUN6QjtRQUFDLFdBQU07WUFDTixPQUFPLElBQUksQ0FBQTtTQUNaO0tBQ0Y7SUFFRCxPQUFPLEtBQUssQ0FBQTtBQUNkLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxTQUFTLHdCQUF3QixDQUFDLEtBQVU7SUFDMUMsSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUU7UUFDekMsT0FBTyxLQUFLLENBQUE7S0FDYjtJQUNELE9BQU8sS0FBSyxDQUFDLElBQUksS0FBSyxtQkFBbUIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQTtBQUM1RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmVhdHVyZUNvbGxlY3Rpb24gfSBmcm9tICdnZW9qc29uJ1xyXG5cclxuLy8gVE9ETzogTWFrZSB0aGlzIG1vcmUgdGhvcm91Z2ggYW5kIG1heWJlIGVycm9yIG9uIHVucmVjb2duaXplZC5cclxuZXhwb3J0IGZ1bmN0aW9uIGNvZXJjZUZlYXR1cmVDb2xsZWN0aW9uKHZhbHVlOiBhbnkpOiBGZWF0dXJlQ29sbGVjdGlvbiB8IG51bGwge1xyXG4gIHJldHVybiBwYXJzZVZhbHVlKHZhbHVlKVxyXG59XHJcblxyXG4vKipcclxuICogUGFyc2VzIHRoZSB2YWx1ZSB0byBhIEZlYXR1cmVDb2xsZWN0aW9uIG9iamVjdCBvciBudWxsIGlmIGl0IGlzIG5vdCBhXHJcbiAqIEZlYXR1cmVDb2xsZWN0aW9uLlxyXG4gKi9cclxuZnVuY3Rpb24gcGFyc2VWYWx1ZSh2YWx1ZTogYW55KTogRmVhdHVyZUNvbGxlY3Rpb24gfCBudWxsIHtcclxuICBjb25zdCBfdmFsdWUgPSBwYXJzZVN0cmluZ1ZhbHVlKHZhbHVlKVxyXG4gIGlmIChpc0ZlYXR1cmVDb2xsZWN0aW9uVmFsdWUoX3ZhbHVlKSkge1xyXG4gICAgcmV0dXJuIF92YWx1ZVxyXG4gIH1cclxuICByZXR1cm4gbnVsbFxyXG59XHJcblxyXG4vKipcclxuICogVHJpZXMgdG8gcGFyc2UgdGhlIHZhbHVlIHRvIGFuIG9iamVjdCwgaW4gY2FzZSB0aGUgdmFsdWUgaXMgYSBzdHJpbmdpZmllZFxyXG4gKiBqc29uLlxyXG4gKi9cclxuZnVuY3Rpb24gcGFyc2VTdHJpbmdWYWx1ZSh2YWx1ZTogYW55KTogYW55IHtcclxuICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xyXG4gICAgdHJ5IHtcclxuICAgICAgcmV0dXJuIEpTT04ucGFyc2UodmFsdWUpXHJcbiAgICB9IGNhdGNoIHtcclxuICAgICAgcmV0dXJuIG51bGxcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJldHVybiB2YWx1ZVxyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2tzIGlmIHRoZSB2YWx1ZSBpcyBhIEZlYXR1cmVDb2xsZWN0aW9uLlxyXG4gKlxyXG4gKiBOT1RFOiBUaGlzIGlzIG5vdCBhIHRob3JvdWdoIEZlYXR1cmVDb2xsZWN0aW9uIGNoZWNrLiBJdCBvbmx5IGNoZWNrcyB0aGF0IHRoZVxyXG4gKiB2YWx1ZSBpcyBhbiBvYmplY3QgcmVzZW1ibGluZyBhIEdlb0pTT04uRmVhdHVyZUNvbGxlY3Rpb24sIGVub3VnaCBmb3IgdGhlXHJcbiAqIHZhbGlkYXRvci5cclxuICovXHJcbmZ1bmN0aW9uIGlzRmVhdHVyZUNvbGxlY3Rpb25WYWx1ZSh2YWx1ZTogYW55KTogdmFsdWUgaXMgRmVhdHVyZUNvbGxlY3Rpb24ge1xyXG4gIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBudWxsKSB7XHJcbiAgICByZXR1cm4gZmFsc2VcclxuICB9XHJcbiAgcmV0dXJuIHZhbHVlLnR5cGUgPT09ICdGZWF0dXJlQ29sbGVjdGlvbicgJiYgQXJyYXkuaXNBcnJheSh2YWx1ZS5mZWF0dXJlcylcclxufVxyXG4iXX0=
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29lcmNlLWZlYXR1cmUtY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi91dGlscy9nZW8tanNvbi9jb2VyY2UtZmVhdHVyZS1jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLGlFQUFpRTtBQUNqRSxNQUFNLFVBQVUsdUJBQXVCLENBQUMsS0FBVTtJQUNoRCxPQUFPLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQTtBQUMxQixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBUyxVQUFVLENBQUMsS0FBVTtJQUM1QixNQUFNLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUN0QyxJQUFJLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQ3BDLE9BQU8sTUFBTSxDQUFBO0tBQ2Q7SUFDRCxPQUFPLElBQUksQ0FBQTtBQUNiLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFTLGdCQUFnQixDQUFDLEtBQVU7SUFDbEMsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7UUFDN0IsSUFBSTtZQUNGLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQTtTQUN6QjtRQUFDLFdBQU07WUFDTixPQUFPLElBQUksQ0FBQTtTQUNaO0tBQ0Y7SUFFRCxPQUFPLEtBQUssQ0FBQTtBQUNkLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxTQUFTLHdCQUF3QixDQUFDLEtBQVU7SUFDMUMsSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUU7UUFDekMsT0FBTyxLQUFLLENBQUE7S0FDYjtJQUNELE9BQU8sS0FBSyxDQUFDLElBQUksS0FBSyxtQkFBbUIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQTtBQUM1RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmVhdHVyZUNvbGxlY3Rpb24gfSBmcm9tICdnZW9qc29uJ1xuXG4vLyBUT0RPOiBNYWtlIHRoaXMgbW9yZSB0aG9yb3VnaCBhbmQgbWF5YmUgZXJyb3Igb24gdW5yZWNvZ25pemVkLlxuZXhwb3J0IGZ1bmN0aW9uIGNvZXJjZUZlYXR1cmVDb2xsZWN0aW9uKHZhbHVlOiBhbnkpOiBGZWF0dXJlQ29sbGVjdGlvbiB8IG51bGwge1xuICByZXR1cm4gcGFyc2VWYWx1ZSh2YWx1ZSlcbn1cblxuLyoqXG4gKiBQYXJzZXMgdGhlIHZhbHVlIHRvIGEgRmVhdHVyZUNvbGxlY3Rpb24gb2JqZWN0IG9yIG51bGwgaWYgaXQgaXMgbm90IGFcbiAqIEZlYXR1cmVDb2xsZWN0aW9uLlxuICovXG5mdW5jdGlvbiBwYXJzZVZhbHVlKHZhbHVlOiBhbnkpOiBGZWF0dXJlQ29sbGVjdGlvbiB8IG51bGwge1xuICBjb25zdCBfdmFsdWUgPSBwYXJzZVN0cmluZ1ZhbHVlKHZhbHVlKVxuICBpZiAoaXNGZWF0dXJlQ29sbGVjdGlvblZhbHVlKF92YWx1ZSkpIHtcbiAgICByZXR1cm4gX3ZhbHVlXG4gIH1cbiAgcmV0dXJuIG51bGxcbn1cblxuLyoqXG4gKiBUcmllcyB0byBwYXJzZSB0aGUgdmFsdWUgdG8gYW4gb2JqZWN0LCBpbiBjYXNlIHRoZSB2YWx1ZSBpcyBhIHN0cmluZ2lmaWVkXG4gKiBqc29uLlxuICovXG5mdW5jdGlvbiBwYXJzZVN0cmluZ1ZhbHVlKHZhbHVlOiBhbnkpOiBhbnkge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gSlNPTi5wYXJzZSh2YWx1ZSlcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHZhbHVlXG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIHRoZSB2YWx1ZSBpcyBhIEZlYXR1cmVDb2xsZWN0aW9uLlxuICpcbiAqIE5PVEU6IFRoaXMgaXMgbm90IGEgdGhvcm91Z2ggRmVhdHVyZUNvbGxlY3Rpb24gY2hlY2suIEl0IG9ubHkgY2hlY2tzIHRoYXQgdGhlXG4gKiB2YWx1ZSBpcyBhbiBvYmplY3QgcmVzZW1ibGluZyBhIEdlb0pTT04uRmVhdHVyZUNvbGxlY3Rpb24sIGVub3VnaCBmb3IgdGhlXG4gKiB2YWxpZGF0b3IuXG4gKi9cbmZ1bmN0aW9uIGlzRmVhdHVyZUNvbGxlY3Rpb25WYWx1ZSh2YWx1ZTogYW55KTogdmFsdWUgaXMgRmVhdHVyZUNvbGxlY3Rpb24ge1xuICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbCkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG4gIHJldHVybiB2YWx1ZS50eXBlID09PSAnRmVhdHVyZUNvbGxlY3Rpb24nICYmIEFycmF5LmlzQXJyYXkodmFsdWUuZmVhdHVyZXMpXG59XG4iXX0=
@@ -8,4 +8,4 @@ export function geoJsonToArea(geoJson, units = 'acres') {
8
8
  const acres = convertArea(area_mSqr, 'meters', units);
9
9
  return acres;
10
10
  }
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLWpzb24tdG8tYXJlYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi91dGlscy9nZW8tanNvbi9nZW8tanNvbi10by1hcmVhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sSUFBSSxNQUFNLFlBQVksQ0FBQTtBQUM3QixPQUFPLEVBQUUsV0FBVyxFQUEyRCxNQUFNLGVBQWUsQ0FBQTtBQUdwRzs7R0FFRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQzNCLE9BQTJGLEVBQzNGLFFBQWUsT0FBTztJQUV0QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBYyxDQUFDLENBQUE7SUFDdEMsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUE7SUFDckQsT0FBTyxLQUFLLENBQUE7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFyZWEgZnJvbSAnQHR1cmYvYXJlYSdcclxuaW1wb3J0IHsgY29udmVydEFyZWEsIEZlYXR1cmUsIEZlYXR1cmVDb2xsZWN0aW9uLCBHZW9tZXRyeSwgUHJvcGVydGllcywgVW5pdHMgfSBmcm9tICdAdHVyZi9oZWxwZXJzJ1xyXG5pbXBvcnQgeyBHZW9KU09OIH0gZnJvbSAnZ2VvanNvbidcclxuXHJcbi8qKlxyXG4gKlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdlb0pzb25Ub0FyZWEoXHJcbiAgZ2VvSnNvbjogR2VvSlNPTiB8IEZlYXR1cmU8YW55LCBQcm9wZXJ0aWVzPiB8IEZlYXR1cmVDb2xsZWN0aW9uPGFueSwgUHJvcGVydGllcz4gfCBHZW9tZXRyeSxcclxuICB1bml0czogVW5pdHMgPSAnYWNyZXMnXHJcbik6IG51bWJlciB7XHJcbiAgY29uc3QgYXJlYV9tU3FyID0gYXJlYShnZW9Kc29uIGFzIGFueSlcclxuICBjb25zdCBhY3JlcyA9IGNvbnZlcnRBcmVhKGFyZWFfbVNxciwgJ21ldGVycycsIHVuaXRzKVxyXG4gIHJldHVybiBhY3Jlc1xyXG59XHJcbiJdfQ==
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLWpzb24tdG8tYXJlYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi91dGlscy9nZW8tanNvbi9nZW8tanNvbi10by1hcmVhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sSUFBSSxNQUFNLFlBQVksQ0FBQTtBQUM3QixPQUFPLEVBQUUsV0FBVyxFQUEyRCxNQUFNLGVBQWUsQ0FBQTtBQUdwRzs7R0FFRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQzNCLE9BQTJGLEVBQzNGLFFBQWUsT0FBTztJQUV0QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBYyxDQUFDLENBQUE7SUFDdEMsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUE7SUFDckQsT0FBTyxLQUFLLENBQUE7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFyZWEgZnJvbSAnQHR1cmYvYXJlYSdcbmltcG9ydCB7IGNvbnZlcnRBcmVhLCBGZWF0dXJlLCBGZWF0dXJlQ29sbGVjdGlvbiwgR2VvbWV0cnksIFByb3BlcnRpZXMsIFVuaXRzIH0gZnJvbSAnQHR1cmYvaGVscGVycydcbmltcG9ydCB7IEdlb0pTT04gfSBmcm9tICdnZW9qc29uJ1xuXG4vKipcbiAqXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW9Kc29uVG9BcmVhKFxuICBnZW9Kc29uOiBHZW9KU09OIHwgRmVhdHVyZTxhbnksIFByb3BlcnRpZXM+IHwgRmVhdHVyZUNvbGxlY3Rpb248YW55LCBQcm9wZXJ0aWVzPiB8IEdlb21ldHJ5LFxuICB1bml0czogVW5pdHMgPSAnYWNyZXMnXG4pOiBudW1iZXIge1xuICBjb25zdCBhcmVhX21TcXIgPSBhcmVhKGdlb0pzb24gYXMgYW55KVxuICBjb25zdCBhY3JlcyA9IGNvbnZlcnRBcmVhKGFyZWFfbVNxciwgJ21ldGVycycsIHVuaXRzKVxuICByZXR1cm4gYWNyZXNcbn1cbiJdfQ==
@@ -18,4 +18,4 @@ export function isFeatureCollectionValidator() {
18
18
  return null;
19
19
  };
20
20
  }
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtZmVhdHVyZS1jb2xsZWN0aW9uLnZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi91dGlscy9nZW8tanNvbi9pcy1mZWF0dXJlLWNvbGxlY3Rpb24udmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFBO0FBQ2hFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFBO0FBRXJFLE1BQU0sQ0FBQyxNQUFNLG9DQUFvQyxHQUFHLHVCQUF1QixDQUFBO0FBRTNFLE1BQU0sVUFBVSw0QkFBNEI7SUFDMUMsT0FBTyxDQUFDLE9BQXdCLEVBQUUsRUFBRTtRQUNsQyxxRkFBcUY7UUFDckYsSUFBSSxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDcEMsT0FBTyxJQUFJLENBQUEsQ0FBQyx5REFBeUQ7U0FDdEU7UUFFRCxNQUFNLEtBQUssR0FBRyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7UUFFcEQsSUFBSSxLQUFLLEtBQUssSUFBSSxFQUFFO1lBQ2xCLE9BQU87Z0JBQ0wsQ0FBQyxvQ0FBb0MsQ0FBQyxFQUFFO29CQUN0QyxNQUFNLEVBQUUsOEJBQThCO2lCQUN2QzthQUNGLENBQUE7U0FDRjtRQUVELE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQyxDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3JtcydcclxuXHJcbmltcG9ydCB7IGlzRW1wdHlJbnB1dFZhbHVlIH0gZnJvbSAnLi4vZm9ybS9pcy1lbXB0eS1pbnB1dC12YWx1ZSdcclxuaW1wb3J0IHsgY29lcmNlRmVhdHVyZUNvbGxlY3Rpb24gfSBmcm9tICcuL2NvZXJjZS1mZWF0dXJlLWNvbGxlY3Rpb24nXHJcblxyXG5leHBvcnQgY29uc3QgSVNfRkVBVFVSRV9DT0xMRUNUSU9OX1ZBTElEQVRPUl9OQU1FID0gJ2lzLWZlYXR1cmUtY29sbGVjdGlvbidcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0ZlYXR1cmVDb2xsZWN0aW9uVmFsaWRhdG9yKCk6IFZhbGlkYXRvckZuIHtcclxuICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkgPT4ge1xyXG4gICAgLy8gRG9uJ3QgbmVlZCB0byB2YWxpZGF0ZSBpZiB0aGVyZSBpc24ndCBhIHZhbHVlLiBVc2UgYFZhbGlkYXRvcnMucmVxdWlyZWRgIGZvciB0aGF0LlxyXG4gICAgaWYgKGlzRW1wdHlJbnB1dFZhbHVlKGNvbnRyb2wudmFsdWUpKSB7XHJcbiAgICAgIHJldHVybiBudWxsIC8vIGRvbid0IHZhbGlkYXRlIGVtcHR5IHZhbHVlcyB0byBhbGxvdyBvcHRpb25hbCBjb250cm9sc1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHZhbHVlID0gY29lcmNlRmVhdHVyZUNvbGxlY3Rpb24oY29udHJvbC52YWx1ZSlcclxuXHJcbiAgICBpZiAodmFsdWUgPT09IG51bGwpIHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBbSVNfRkVBVFVSRV9DT0xMRUNUSU9OX1ZBTElEQVRPUl9OQU1FXToge1xyXG4gICAgICAgICAgcmVhc29uOiBgTXVzdCBiZSBhIEZlYXR1cmVDb2xsZWN0aW9uLmAsXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG51bGxcclxuICB9XHJcbn1cclxuIl19
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtZmVhdHVyZS1jb2xsZWN0aW9uLnZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi91dGlscy9nZW8tanNvbi9pcy1mZWF0dXJlLWNvbGxlY3Rpb24udmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFBO0FBQ2hFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFBO0FBRXJFLE1BQU0sQ0FBQyxNQUFNLG9DQUFvQyxHQUFHLHVCQUF1QixDQUFBO0FBRTNFLE1BQU0sVUFBVSw0QkFBNEI7SUFDMUMsT0FBTyxDQUFDLE9BQXdCLEVBQUUsRUFBRTtRQUNsQyxxRkFBcUY7UUFDckYsSUFBSSxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDcEMsT0FBTyxJQUFJLENBQUEsQ0FBQyx5REFBeUQ7U0FDdEU7UUFFRCxNQUFNLEtBQUssR0FBRyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7UUFFcEQsSUFBSSxLQUFLLEtBQUssSUFBSSxFQUFFO1lBQ2xCLE9BQU87Z0JBQ0wsQ0FBQyxvQ0FBb0MsQ0FBQyxFQUFFO29CQUN0QyxNQUFNLEVBQUUsOEJBQThCO2lCQUN2QzthQUNGLENBQUE7U0FDRjtRQUVELE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQyxDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3JtcydcblxuaW1wb3J0IHsgaXNFbXB0eUlucHV0VmFsdWUgfSBmcm9tICcuLi9mb3JtL2lzLWVtcHR5LWlucHV0LXZhbHVlJ1xuaW1wb3J0IHsgY29lcmNlRmVhdHVyZUNvbGxlY3Rpb24gfSBmcm9tICcuL2NvZXJjZS1mZWF0dXJlLWNvbGxlY3Rpb24nXG5cbmV4cG9ydCBjb25zdCBJU19GRUFUVVJFX0NPTExFQ1RJT05fVkFMSURBVE9SX05BTUUgPSAnaXMtZmVhdHVyZS1jb2xsZWN0aW9uJ1xuXG5leHBvcnQgZnVuY3Rpb24gaXNGZWF0dXJlQ29sbGVjdGlvblZhbGlkYXRvcigpOiBWYWxpZGF0b3JGbiB7XG4gIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiB7XG4gICAgLy8gRG9uJ3QgbmVlZCB0byB2YWxpZGF0ZSBpZiB0aGVyZSBpc24ndCBhIHZhbHVlLiBVc2UgYFZhbGlkYXRvcnMucmVxdWlyZWRgIGZvciB0aGF0LlxuICAgIGlmIChpc0VtcHR5SW5wdXRWYWx1ZShjb250cm9sLnZhbHVlKSkge1xuICAgICAgcmV0dXJuIG51bGwgLy8gZG9uJ3QgdmFsaWRhdGUgZW1wdHkgdmFsdWVzIHRvIGFsbG93IG9wdGlvbmFsIGNvbnRyb2xzXG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWUgPSBjb2VyY2VGZWF0dXJlQ29sbGVjdGlvbihjb250cm9sLnZhbHVlKVxuXG4gICAgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBbSVNfRkVBVFVSRV9DT0xMRUNUSU9OX1ZBTElEQVRPUl9OQU1FXToge1xuICAgICAgICAgIHJlYXNvbjogYE11c3QgYmUgYSBGZWF0dXJlQ29sbGVjdGlvbi5gLFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGxcbiAgfVxufVxuIl19
@@ -20,4 +20,4 @@ export function isOnlyGeometryTypes(featureCollection, types) {
20
20
  }
21
21
  return true;
22
22
  }
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtb25seS1nZW9tZXRyeS10eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi91dGlscy9nZW8tanNvbi9pcy1vbmx5LWdlb21ldHJ5LXR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOztHQUVHO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQixDQUFDLGlCQUFvQyxFQUFFLEtBQXlCO0lBQ2pHLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDdEIsSUFBSSxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN6QywyRUFBMkU7WUFDM0UsT0FBTyxLQUFLLENBQUE7U0FDYjthQUFNO1lBQ0wsb0VBQW9FO1lBQ3BFLCtDQUErQztZQUMvQyxPQUFPLElBQUksQ0FBQTtTQUNaO0tBQ0Y7SUFFRCxLQUFLLE1BQU0sQ0FBQyxJQUFJLGlCQUFpQixDQUFDLFFBQVEsRUFBRTtRQUMxQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtZQUN6QyxPQUFPLEtBQUssQ0FBQTtTQUNiO0tBQ0Y7SUFFRCxPQUFPLElBQUksQ0FBQTtBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGZWF0dXJlQ29sbGVjdGlvbiwgR2VvbWV0cnkgfSBmcm9tICdnZW9qc29uJ1xyXG5cclxuLyoqXHJcbiAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgR2VvSlNPTiBpcyBvbmx5IHNwZWNpZmllcyBnZW9tZXRyaWVzLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzT25seUdlb21ldHJ5VHlwZXMoZmVhdHVyZUNvbGxlY3Rpb246IEZlYXR1cmVDb2xsZWN0aW9uLCB0eXBlczogR2VvbWV0cnlbJ3R5cGUnXVtdKTogYm9vbGVhbiB7XHJcbiAgaWYgKHR5cGVzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgaWYgKGZlYXR1cmVDb2xsZWN0aW9uLmZlYXR1cmVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgLy8gSWYgbm8gdHlwZXMgYXJlIHNwZWNpZmllZCB0aGVuIHRoZXJlIGNhbid0IGJlIGFueSBzcGVjaWZpZWQgdHlwZXMgZm91bmQuXHJcbiAgICAgIHJldHVybiBmYWxzZVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gSWYgbm8gdHlwZXMgYXJlIHNwZWNpZmllZCBhbmQgdGhlcmUgYXJlIG5vIGZlYXR1cmVzIHRoZW4gdGhlcmUgaXNcclxuICAgICAgLy8gbm90aGluZyB0byBzYXkgYSBzcGVjaWZpZWQgdHlwZSBpc24ndCBmb3VuZC5cclxuICAgICAgcmV0dXJuIHRydWVcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZvciAoY29uc3QgZiBvZiBmZWF0dXJlQ29sbGVjdGlvbi5mZWF0dXJlcykge1xyXG4gICAgaWYgKHR5cGVzLmluZGV4T2YoZi5nZW9tZXRyeS50eXBlKSA9PT0gLTEpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXR1cm4gdHJ1ZVxyXG59XHJcbiJdfQ==
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtb25seS1nZW9tZXRyeS10eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi91dGlscy9nZW8tanNvbi9pcy1vbmx5LWdlb21ldHJ5LXR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOztHQUVHO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQixDQUFDLGlCQUFvQyxFQUFFLEtBQXlCO0lBQ2pHLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDdEIsSUFBSSxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN6QywyRUFBMkU7WUFDM0UsT0FBTyxLQUFLLENBQUE7U0FDYjthQUFNO1lBQ0wsb0VBQW9FO1lBQ3BFLCtDQUErQztZQUMvQyxPQUFPLElBQUksQ0FBQTtTQUNaO0tBQ0Y7SUFFRCxLQUFLLE1BQU0sQ0FBQyxJQUFJLGlCQUFpQixDQUFDLFFBQVEsRUFBRTtRQUMxQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtZQUN6QyxPQUFPLEtBQUssQ0FBQTtTQUNiO0tBQ0Y7SUFFRCxPQUFPLElBQUksQ0FBQTtBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGZWF0dXJlQ29sbGVjdGlvbiwgR2VvbWV0cnkgfSBmcm9tICdnZW9qc29uJ1xuXG4vKipcbiAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgR2VvSlNPTiBpcyBvbmx5IHNwZWNpZmllcyBnZW9tZXRyaWVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNPbmx5R2VvbWV0cnlUeXBlcyhmZWF0dXJlQ29sbGVjdGlvbjogRmVhdHVyZUNvbGxlY3Rpb24sIHR5cGVzOiBHZW9tZXRyeVsndHlwZSddW10pOiBib29sZWFuIHtcbiAgaWYgKHR5cGVzLmxlbmd0aCA9PT0gMCkge1xuICAgIGlmIChmZWF0dXJlQ29sbGVjdGlvbi5mZWF0dXJlcy5sZW5ndGggPiAwKSB7XG4gICAgICAvLyBJZiBubyB0eXBlcyBhcmUgc3BlY2lmaWVkIHRoZW4gdGhlcmUgY2FuJ3QgYmUgYW55IHNwZWNpZmllZCB0eXBlcyBmb3VuZC5cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBJZiBubyB0eXBlcyBhcmUgc3BlY2lmaWVkIGFuZCB0aGVyZSBhcmUgbm8gZmVhdHVyZXMgdGhlbiB0aGVyZSBpc1xuICAgICAgLy8gbm90aGluZyB0byBzYXkgYSBzcGVjaWZpZWQgdHlwZSBpc24ndCBmb3VuZC5cbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICB9XG5cbiAgZm9yIChjb25zdCBmIG9mIGZlYXR1cmVDb2xsZWN0aW9uLmZlYXR1cmVzKSB7XG4gICAgaWYgKHR5cGVzLmluZGV4T2YoZi5nZW9tZXRyeS50eXBlKSA9PT0gLTEpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG4iXX0=