@kando-env/kando-ui 1.2.418-alpha.1 → 1.2.418-alpha.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -278,12 +278,12 @@ var Map = function Map(_ref) {
278
278
  dispatch((0, _actions.clearAreas)());
279
279
  wwtpsLayerGroup.clearLayers();
280
280
  areasLayerGroup.clearLayers();
281
+ unmonitoredFactoriesGroup.clearLayers();
282
+ monitoredFactoriesGroup.clearLayers();
283
+ factoriesParentGroup.clearLayers();
281
284
  monitoredEdgesGroup.clearLayers();
282
285
  collectorsLayerGroup.clearLayers();
283
286
  unmonitoredEdgesGroup.clearLayers();
284
- monitoredFactoriesGroup.clearLayers();
285
- unmonitoredFactoriesGroup.clearLayers();
286
- factoriesParentGroup.clearLayers();
287
287
  mapRef.current.removeLayer(unmonitoredEdgesGroup);
288
288
  mapRef.current.removeLayer(monitoredEdgesGroup);
289
289
  mapRef.current.removeLayer(wwtpsLayerGroup);
@@ -358,7 +358,7 @@ var Map = function Map(_ref) {
358
358
  className: " map-container ".concat(global_data.sidenavExpanded ? '' : 'map-container--sidenav-collapsed')
359
359
  }, /*#__PURE__*/_react.default.createElement(_ErrorBoundary.default, null, /*#__PURE__*/_react.default.createElement("div", {
360
360
  id: "map"
361
- }, renderAreas(), (0, _MapUtils.shoudLoadDependentMapObjects)(edges, areas, global_data, mapRef, points) && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, memoizedEvent(), memoizedZoomControl(), children)))));
361
+ }), renderAreas(), (0, _MapUtils.shoudLoadDependentMapObjects)(edges, areas, global_data, mapRef, points) && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, memoizedEvent(), memoizedZoomControl(), children))));
362
362
  };
363
363
  exports.Map = Map;
364
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX3JlYWN0UmVkdXgiLCJfRXJyb3JCb3VuZGFyeSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfQXJlYVBvbHlnb25zIiwiX0VkZ2VzIiwiX1BvaW50TWFya2VycyIsIl9FdmVudCIsIl9NYXBVdGlscyIsIl90aGVtZSIsIl9MaXN0Q29udGV4dCIsIl9hY3Rpb25zIiwiX2FjdGlvbnMyIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJNYXAiLCJfcmVmIiwiYXJlYXMiLCJlZGdlcyIsInBvaW50cyIsImdsb2JhbF9kYXRhIiwiYXJlYVRvQ2VudGVyQnkiLCJmb2N1c2VkRXZlbnQiLCJob3ZlcmVkRXZlbnQiLCJfcmVmJGhpZGVFZGdlcyIsImhpZGVFZGdlcyIsIl9yZWYkbWFwQm94U3R5bGUiLCJtYXBCb3hTdHlsZSIsImxlYWZsZXRNYXAiLCJtYXBEZWZhdWx0IiwiY2hpbGRyZW4iLCJfcmVmJGluY2x1ZGVVbm1vbml0b3IiLCJpbmNsdWRlVW5tb25pdG9yZWRQb2ludHMiLCJfcmVmJGluY2x1ZGVVbm1vbml0b3IyIiwiaW5jbHVkZVVubW9uaXRvcmVkRGVzY2VuZGFudHNGb3JFZGdlcyIsIl9yZWYkZm9yRXZlbnRzVmlldyIsImZvckV2ZW50c1ZpZXciLCJfcmVmJHN0eWxlIiwic3R5bGUiLCJfcmVmJGZvcldXVFBEYXNoYm9hcmQiLCJmb3JXV1RQRGFzaGJvYXJkIiwibWFwIiwibWFwUmVmIiwidXNlUmVmIiwiZGlzcGF0Y2giLCJ1c2VEaXNwYXRjaCIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsIm1hcFpvb21MZXZlbCIsInNldE1hcFpvb21MZXZlbCIsIl91c2VTZWxlY3RlZEl0ZW0iLCJ1c2VTZWxlY3RlZEl0ZW0iLCJzZWxlY3RlZEl0ZW0iLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImVkZ2VzQ2hlY2tib3giLCJzZXRFZGdlc0NoZWNrYm94IiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJvbmx5TW9uaXRvcmVkUG9pbnRzIiwic2V0T25seU1vbml0b3JlZFBvaW50cyIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4Iiwib25seVdpdGhTYW1wbGVyUG9pbnRzIiwic2V0T25seVdpdGhTYW1wbGVyUG9pbnRzIiwiZWRnZXNDaGVja2JveFJlZiIsImhvdmVyZWRFdmVudFByZXNlbnQiLCJ1c2VNZW1vIiwidW5kZWZpbmVkIiwiZm9jdXNlZEV2ZW50UHJlc2VudCIsIl91c2VTdGF0ZTkiLCJsYXllckdyb3VwIiwiX3VzZVN0YXRlMTAiLCJmYWN0b3JpZXNQYXJlbnRHcm91cCIsIl91c2VTdGF0ZTExIiwiX3VzZVN0YXRlMTIiLCJ1bm1vbml0b3JlZEZhY3Rvcmllc0dyb3VwIiwiX3VzZVN0YXRlMTMiLCJfdXNlU3RhdGUxNCIsIm1vbml0b3JlZEZhY3Rvcmllc0dyb3VwIiwiX3VzZVN0YXRlMTUiLCJfdXNlU3RhdGUxNiIsInVubW9uaXRvcmVkRWRnZXNHcm91cCIsIl91c2VTdGF0ZTE3IiwiX3VzZVN0YXRlMTgiLCJtb25pdG9yZWRFZGdlc0dyb3VwIiwiX3VzZVN0YXRlMTkiLCJfdXNlU3RhdGUyMCIsInd3dHBzTGF5ZXJHcm91cCIsIl91c2VTdGF0ZTIxIiwiX3VzZVN0YXRlMjIiLCJjb2xsZWN0b3JzTGF5ZXJHcm91cCIsIl91c2VTdGF0ZTIzIiwiRmVhdHVyZUdyb3VwIiwiX3VzZVN0YXRlMjQiLCJhcmVhc0xheWVyR3JvdXAiLCJyZW5kZXJQb2ludE1hcmtlcnMiLCJmaWx0ZXJlZFBvaW50cyIsInByb3BzIiwiY3VycmVudCIsImNyZWF0ZUVsZW1lbnQiLCJQb2ludE1hcmtlcnMiLCJhc3NpZ24iLCJtZW1vaXplZE1vbml0b3JlZFBvaW50cyIsIm1vbml0b3JlZFBvaW50cyIsImZpbHRlclBvaW50cyIsIm9ubHlNb25pdG9yZWQiLCJyZXJlbmRlciIsInpvb21MZXZlbHMiLCJmYWN0b3JpZXNHcm91cCIsInd3dHBzR3JvdXAiLCJjb2xsZWN0b3JzR3JvdXAiLCJtZW1vaXplZFVubW9uaXRvcmVkUG9pbnRzIiwidW5tb25pdG9yZWRQb2ludHMiLCJyZW5kZXJFZGdlcyIsImZpbHRlcmVkRWRnZXMiLCJtZW1vaXplZEVkZ2VzIiwibW9uaXRvcmVkRWRnZXMiLCJmaWx0ZXJFZGdlcyIsImhpZGVBcnJvd3MiLCJhbGxvd1VubW9uaXRvcmVkRGVzY2VuZGFudHMiLCJncm91cCIsIm1lbW9pemVkVW5tb25pdG9yZWRFZGdlcyIsInVubW9uaXRvcmVkRWRnZXMiLCJoYW5kbGVFZGdlc0NoZWNrYm94Q2hhbmdlIiwiaXNDaGVja2VkIiwiZWRnZXNab29tTGV2ZWxzIiwiaGFuZGxlUG9pbnRzQ2hlY2tib3hDaGFuZ2UiLCJ6b29tIiwiZ2V0Wm9vbSIsInJlbW92ZUxheWVyIiwicmVtb3ZlRnJvbSIsImFkZExheWVyIiwiaW5jbHVkZXMiLCJhZGRUbyIsImhhbmRsZVBvaW50c1dpdGhTYW1wbGVyQ2hlY2tib3hDaGFuZ2UiLCJyZW1vdmVQb2ludHNXaXRoTm9TYW1wbGVyIiwiZWFjaExheWVyIiwibGF5ZXIiLCJ0cmFja0xheWVyYm94Iiwic2V0dXBDaGVja2JveExpc3RlbmVyIiwiem9vbVJ1bGVzRm9yRXZlbnRzVmlldyIsInBheWxvYWQiLCJGcmFnbWVudCIsInpvb21SdWxlc0ZvckRhc2hhYm9hcmRNYXBzIiwibWVtb2l6ZWRab29tQ29udHJvbCIsIm1lbW9pemVkRXZlbnQiLCJmb2N1c2VkIiwiaG92ZXJlZCIsIkV2ZW50IiwiZXZlbnQiLCJpbmNsdWRlTmV0d29yayIsInVzZUVmZmVjdCIsImNsZWFudXAiLCJfbWFwUmVmJGN1cnJlbnQiLCJjbGVhckxheWVycyIsImV2ZW50RmlsdGVyUGFyYW0iLCJjbGVhclBvaW50cyIsImNsZWFyQXJlYXMiLCJUaWxlTGF5ZXIiLCJ3YXRlckF1dGhvcml0eUlkIiwiaW5pdGlhbGl6ZU1hcCIsInNhdGVsbGl0ZSIsImlzVmFsaWRBcmVhIiwiYXJlYSIsInNoYXBlX2RhdGEiLCJmbGF0IiwiYXJlYUZvY3VzTG9naWMiLCJfbWFwUmVmJGN1cnJlbnQyIiwiY2xpY2tlZCIsImthbmRvX29iamVjdF9pZCIsImlzUG9wdXBPcGVuIiwiTWFya2VyIiwiZmlyZSIsIlBvbHlnb24iLCJyZW5kZXJBcmVhcyIsInNob3VsZExvYWRNYXBPYmplY3RzIiwiQXJlYVBvbHlnb25zIiwibWFwWm9vbSIsImZlYXR1cmVHcm91cCIsImNsYXNzTmFtZSIsImNvbmNhdCIsInNpZGVuYXZFeHBhbmRlZCIsImlkIiwic2hvdWRMb2FkRGVwZW5kZW50TWFwT2JqZWN0cyIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvV2lkZ2V0cy9NYXAvTWFwLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtaWdub3JlXG5pbXBvcnQgKiBhcyBMIGZyb20gJ2xlYWZsZXQnO1xuaW1wb3J0ICdzcmMvdXRpbGl0aWVzL3BvbHlsaW5lZGVjb3JhdG9yJztcbmltcG9ydCAnbGVhZmxldC5tYXJrZXJjbHVzdGVyJztcbmltcG9ydCAnbGVhZmxldC5wYXR0ZXJuJztcbmltcG9ydCAnbGVhZmxldC5oZWF0JztcbmltcG9ydCBSZWFjdCwge1xuICBDU1NQcm9wZXJ0aWVzLFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZixcbiAgdXNlU3RhdGUsXG59IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZURpc3BhdGNoIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgSUFyZWEgfSBmcm9tICdzcmMvc3RvcmUvYXJlYXMvbW9kZWxzL0lBcmVhJztcbmltcG9ydCB7IElFZGdlIH0gZnJvbSAnc3JjL3N0b3JlL2VkZ2VzL21vZGVscy9JRWRnZSc7XG5pbXBvcnQgeyBJRXZlbnQgfSBmcm9tICdzcmMvc3RvcmUvZXZlbnRzL21vZGVscy9JRXZlbnQnO1xuaW1wb3J0IHsgSUdsb2JhbFN0YXRlIH0gZnJvbSAnc3JjL3N0b3JlL2dsb2JhbC9tb2RlbHMvSUdsb2JhbFN0YXRlJztcbmltcG9ydCB7IElQb2ludCB9IGZyb20gJ3NyYy9zdG9yZS9wb2ludHMvbW9kZWxzL0lQb2ludCc7XG5pbXBvcnQgRXJyb3JCb3VuZGFyeSBmcm9tICdzcmMvdXRpbGl0aWVzL0Vycm9yQm91bmRhcnknO1xuaW1wb3J0IHsgQXJlYVBvbHlnb25zIH0gZnJvbSAnLi9hcmVhcy9BcmVhUG9seWdvbnMnO1xuaW1wb3J0IEVkZ2VzIGZyb20gJy4vZWRnZXMvRWRnZXMnO1xuaW1wb3J0ICcuL01hcC5zY3NzJztcbmltcG9ydCAnLi9wb2ludHMvUG9pbnRJY29uLnNjc3MnO1xuaW1wb3J0IHsgUG9pbnRNYXJrZXJzIH0gZnJvbSAnLi9wb2ludHMvUG9pbnRNYXJrZXJzJztcbmltcG9ydCB7IEV2ZW50IH0gZnJvbSAnLi9ldmVudHMvRXZlbnQnO1xuaW1wb3J0IHtcbiAgYXJlYUZvY3VzTG9naWMsXG4gIGZpbHRlckVkZ2VzLFxuICBmaWx0ZXJQb2ludHMsXG4gIGluaXRpYWxpemVNYXAsXG4gIGlzVmFsaWRBcmVhLFxuICBzZXR1cENoZWNrYm94TGlzdGVuZXIsXG4gIHNob3VkTG9hZERlcGVuZGVudE1hcE9iamVjdHMsXG4gIHNob3VsZExvYWRNYXBPYmplY3RzLFxuICB6b29tTGV2ZWxzLFxufSBmcm9tICcuL01hcFV0aWxzJztcbmltcG9ydCB7IGxlYWZsZXRNYXAgfSBmcm9tICcuLi8uLi9zdHlsZXMvdGhlbWUvdGhlbWUnO1xuaW1wb3J0IHsgdXNlU2VsZWN0ZWRJdGVtIH0gZnJvbSAnc3JjL3BhZ2VzL0Rhc2hib2FyZE1hcC9MaXN0Q29udGV4dCc7XG5pbXBvcnQgeyBjbGVhckFyZWFzIH0gZnJvbSAnc3JjL3N0b3JlL2FyZWFzL2FjdGlvbnMnO1xuaW1wb3J0IHsgY2xlYXJQb2ludHMgfSBmcm9tICdzcmMvc3RvcmUvcG9pbnRzL2FjdGlvbnMnO1xucmVxdWlyZSgnbGVhZmxldC5tYXJrZXJjbHVzdGVyJyk7XG5cbmludGVyZmFjZSBNYXBQcm9wcyB7XG4gIGFyZWFzOiBJQXJlYVtdO1xuICBlZGdlcz86IElFZGdlW107XG4gIHBvaW50cz86IElQb2ludFtdO1xuICBnbG9iYWxfZGF0YTogSUdsb2JhbFN0YXRlO1xuICBhcmVhVG9DZW50ZXJCeT86IGFueTtcbiAgZm9jdXNlZEV2ZW50PzogSUV2ZW50IHwgbnVsbDtcbiAgaG92ZXJlZEV2ZW50PzogSUV2ZW50IHwgbnVsbDtcbiAgaGlkZUVkZ2VzPzogYm9vbGVhbjtcbiAgbWFwQm94U3R5bGU/OiBzdHJpbmc7XG4gIGNoaWxkcmVuPzogYW55O1xuICBzdHlsZT86IENTU1Byb3BlcnRpZXM7XG4gIGluY2x1ZGVVbm1vbml0b3JlZFBvaW50cz86IGJvb2xlYW47XG4gIGluY2x1ZGVVbm1vbml0b3JlZERlc2NlbmRhbnRzRm9yRWRnZXM/OiBib29sZWFuO1xuICBmb3JFdmVudHNWaWV3OiBib29sZWFuO1xuICBmb3JXV1RQRGFzaGJvYXJkPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IE1hcDogUmVhY3QuRkM8TWFwUHJvcHM+ID0gKHtcbiAgYXJlYXMsXG4gIGVkZ2VzLFxuICBwb2ludHMsXG4gIGdsb2JhbF9kYXRhLFxuICBhcmVhVG9DZW50ZXJCeSxcbiAgZm9jdXNlZEV2ZW50LFxuICBob3ZlcmVkRXZlbnQsXG4gIGhpZGVFZGdlcyA9IGZhbHNlLFxuICBtYXBCb3hTdHlsZSA9IGxlYWZsZXRNYXAubWFwRGVmYXVsdCxcbiAgY2hpbGRyZW4sXG4gIGluY2x1ZGVVbm1vbml0b3JlZFBvaW50cyA9IHRydWUsXG4gIGluY2x1ZGVVbm1vbml0b3JlZERlc2NlbmRhbnRzRm9yRWRnZXMgPSBmYWxzZSxcbiAgZm9yRXZlbnRzVmlldyA9IGZhbHNlLFxuICBzdHlsZSA9IHt9LFxuICBmb3JXV1RQRGFzaGJvYXJkID0gZmFsc2UsXG59KSA9PiB7XG4gIGNvbnN0IHsgbWFwIH0gPSBnbG9iYWxfZGF0YTtcbiAgY29uc3QgbWFwUmVmID0gdXNlUmVmPEwuTWFwIHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgW21hcFpvb21MZXZlbCwgc2V0TWFwWm9vbUxldmVsXSA9IHVzZVN0YXRlKDIpO1xuICBjb25zdCB7IHNlbGVjdGVkSXRlbSB9ID0gdXNlU2VsZWN0ZWRJdGVtKCk7XG4gIGNvbnN0IFtlZGdlc0NoZWNrYm94LCBzZXRFZGdlc0NoZWNrYm94XSA9IHVzZVN0YXRlKHRydWUpO1xuICBjb25zdCBbb25seU1vbml0b3JlZFBvaW50cywgc2V0T25seU1vbml0b3JlZFBvaW50c10gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtvbmx5V2l0aFNhbXBsZXJQb2ludHMsIHNldE9ubHlXaXRoU2FtcGxlclBvaW50c10gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IGVkZ2VzQ2hlY2tib3hSZWYgPSB1c2VSZWYoZWRnZXNDaGVja2JveCk7XG5cbiAgY29uc3QgaG92ZXJlZEV2ZW50UHJlc2VudCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBob3ZlcmVkRXZlbnQgIT09IG51bGwgJiYgaG92ZXJlZEV2ZW50ICE9PSB1bmRlZmluZWQ7XG4gIH0sIFtob3ZlcmVkRXZlbnRdKTtcblxuICBjb25zdCBmb2N1c2VkRXZlbnRQcmVzZW50ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIGZvY3VzZWRFdmVudCAhPT0gbnVsbCAmJiBmb2N1c2VkRXZlbnQgIT09IHVuZGVmaW5lZDtcbiAgfSwgW2ZvY3VzZWRFdmVudF0pO1xuXG4gIC8vIEFkZCBwYXJlbnQgbGF5ZXIgZ3JvdXAgZm9yIGFsbCBmYWN0b3JpZXNcbiAgY29uc3QgW2ZhY3Rvcmllc1BhcmVudEdyb3VwXSA9IHVzZVN0YXRlKEwubGF5ZXJHcm91cCgpKTtcbiAgY29uc3QgW3VubW9uaXRvcmVkRmFjdG9yaWVzR3JvdXBdID0gdXNlU3RhdGUoTC5sYXllckdyb3VwKCkpO1xuICBjb25zdCBbbW9uaXRvcmVkRmFjdG9yaWVzR3JvdXBdID0gdXNlU3RhdGUoTC5sYXllckdyb3VwKCkpO1xuICBjb25zdCBbdW5tb25pdG9yZWRFZGdlc0dyb3VwXSA9IHVzZVN0YXRlKEwubGF5ZXJHcm91cCgpKTtcbiAgY29uc3QgW21vbml0b3JlZEVkZ2VzR3JvdXBdID0gdXNlU3RhdGUoTC5sYXllckdyb3VwKCkpO1xuICBjb25zdCBbd3d0cHNMYXllckdyb3VwXSA9IHVzZVN0YXRlKEwubGF5ZXJHcm91cCgpKTtcbiAgY29uc3QgW2NvbGxlY3RvcnNMYXllckdyb3VwXSA9IHVzZVN0YXRlKEwubGF5ZXJHcm91cCgpKTtcbiAgY29uc3QgW2FyZWFzTGF5ZXJHcm91cF0gPSB1c2VTdGF0ZShuZXcgTC5GZWF0dXJlR3JvdXAoKSk7XG5cbiAgY29uc3QgcmVuZGVyUG9pbnRNYXJrZXJzID0gKGZpbHRlcmVkUG9pbnRzLCBtYXBSZWYsIHByb3BzKSA9PlxuICAgIG1hcFJlZi5jdXJyZW50ICE9PSBudWxsICYmXG4gICAgcG9pbnRzICYmIChcbiAgICAgIDxQb2ludE1hcmtlcnMgbWFwPXttYXBSZWYuY3VycmVudH0gcG9pbnRzPXtmaWx0ZXJlZFBvaW50c30gey4uLnByb3BzfSAvPlxuICAgICk7XG5cbiAgY29uc3QgbWVtb2l6ZWRNb25pdG9yZWRQb2ludHMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBtb25pdG9yZWRQb2ludHMgPSBmaWx0ZXJQb2ludHMocG9pbnRzLCB7IG9ubHlNb25pdG9yZWQ6IHRydWUgfSk7XG5cbiAgICByZW5kZXJQb2ludE1hcmtlcnMoW10sIG1hcFJlZiwge30pO1xuICAgIHJldHVybiByZW5kZXJQb2ludE1hcmtlcnMobW9uaXRvcmVkUG9pbnRzLCBtYXBSZWYsIHtcbiAgICAgIGluY2x1ZGVVbm1vbml0b3JlZFBvaW50czogdHJ1ZSxcbiAgICAgIHJlcmVuZGVyOiB6b29tTGV2ZWxzW21hcFpvb21MZXZlbF0sXG4gICAgICBmYWN0b3JpZXNHcm91cDogbW9uaXRvcmVkRmFjdG9yaWVzR3JvdXAsXG4gICAgICB3d3Rwc0dyb3VwOiB3d3Rwc0xheWVyR3JvdXAsXG4gICAgICBjb2xsZWN0b3JzR3JvdXA6IGNvbGxlY3RvcnNMYXllckdyb3VwLFxuICAgICAgZm9yRXZlbnRzVmlldzogZm9yRXZlbnRzVmlldyxcbiAgICB9KTtcbiAgfSwgW3BvaW50cywgbWFwWm9vbUxldmVsLCBvbmx5V2l0aFNhbXBsZXJQb2ludHNdKTtcblxuICBjb25zdCBtZW1vaXplZFVubW9uaXRvcmVkUG9pbnRzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgdW5tb25pdG9yZWRQb2ludHMgPSBmaWx0ZXJQb2ludHMocG9pbnRzLCB7IG9ubHlNb25pdG9yZWQ6IGZhbHNlIH0pO1xuICAgIHJldHVybiByZW5kZXJQb2ludE1hcmtlcnModW5tb25pdG9yZWRQb2ludHMsIG1hcFJlZiwge1xuICAgICAgaW5jbHVkZVVubW9uaXRvcmVkUG9pbnRzOiB0cnVlLFxuICAgICAgcmVyZW5kZXI6IHpvb21MZXZlbHNbbWFwWm9vbUxldmVsXSxcbiAgICAgIGZhY3Rvcmllc0dyb3VwOiB1bm1vbml0b3JlZEZhY3Rvcmllc0dyb3VwLFxuICAgICAgd3d0cHNHcm91cDogd3d0cHNMYXllckdyb3VwLFxuICAgICAgY29sbGVjdG9yc0dyb3VwOiBjb2xsZWN0b3JzTGF5ZXJHcm91cCxcbiAgICAgIGZvckV2ZW50c1ZpZXc6IGZvckV2ZW50c1ZpZXcsXG4gICAgfSk7XG4gIH0sIFtwb2ludHMsIG1hcFpvb21MZXZlbF0pO1xuXG4gIGNvbnN0IHJlbmRlckVkZ2VzID0gKGZpbHRlcmVkRWRnZXMsIG1hcFJlZiwgZWRnZXNDaGVja2JveCwgcHJvcHMpID0+XG4gICAgbWFwUmVmLmN1cnJlbnQgIT09IG51bGwgJiZcbiAgICBlZGdlc0NoZWNrYm94ICYmIChcbiAgICAgIDxFZGdlcyBlZGdlcz17ZmlsdGVyZWRFZGdlc30gbWFwPXttYXBSZWYuY3VycmVudH0gey4uLnByb3BzfSAvPlxuICAgICk7XG5cbiAgY29uc3QgbWVtb2l6ZWRFZGdlcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IG1vbml0b3JlZEVkZ2VzID0gZmlsdGVyRWRnZXMoZWRnZXMsIHBvaW50cywgdHJ1ZSk7XG4gICAgcmV0dXJuIHJlbmRlckVkZ2VzKG1vbml0b3JlZEVkZ2VzLCBtYXBSZWYsIGVkZ2VzQ2hlY2tib3gsIHtcbiAgICAgIEwsXG4gICAgICBwb2ludHMsXG4gICAgICBoaWRlRWRnZXM6IGZhbHNlLFxuICAgICAgaGlkZUFycm93czogdHJ1ZSxcbiAgICAgIGFsbG93VW5tb25pdG9yZWREZXNjZW5kYW50czogaW5jbHVkZVVubW9uaXRvcmVkRGVzY2VuZGFudHNGb3JFZGdlcyxcbiAgICAgIGdyb3VwOiBtb25pdG9yZWRFZGdlc0dyb3VwLFxuICAgIH0pO1xuICB9LCBbcG9pbnRzLCBlZGdlc0NoZWNrYm94LCBtYXBab29tTGV2ZWxdKTtcblxuICBjb25zdCBtZW1vaXplZFVubW9uaXRvcmVkRWRnZXMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAob25seU1vbml0b3JlZFBvaW50cyB8fCBvbmx5V2l0aFNhbXBsZXJQb2ludHMpIHJldHVybiBudWxsO1xuXG4gICAgY29uc3QgdW5tb25pdG9yZWRFZGdlcyA9IGZpbHRlckVkZ2VzKGVkZ2VzLCBwb2ludHMsIGZhbHNlKTtcbiAgICByZXR1cm4gcmVuZGVyRWRnZXModW5tb25pdG9yZWRFZGdlcywgbWFwUmVmLCBlZGdlc0NoZWNrYm94LCB7XG4gICAgICBMLFxuICAgICAgcG9pbnRzLFxuICAgICAgaGlkZUVkZ2VzOiBmYWxzZSxcbiAgICAgIGhpZGVBcnJvd3M6IHRydWUsXG4gICAgICBhbGxvd1VubW9uaXRvcmVkRGVzY2VuZGFudHM6IGluY2x1ZGVVbm1vbml0b3JlZERlc2NlbmRhbnRzRm9yRWRnZXMsXG4gICAgICBncm91cDogdW5tb25pdG9yZWRFZGdlc0dyb3VwLFxuICAgIH0pO1xuICB9LCBbcG9pbnRzLCBlZGdlc0NoZWNrYm94LCBtYXBab29tTGV2ZWxdKTtcblxuICBjb25zdCBoYW5kbGVFZGdlc0NoZWNrYm94Q2hhbmdlID0gKGlzQ2hlY2tlZCkgPT4ge1xuICAgIHNldEVkZ2VzQ2hlY2tib3goaXNDaGVja2VkKTtcbiAgfTtcblxuICAvLyBUaGlzIHZhcmlhYmxlIHN0b3JlcyB0aGUgem9vbSBsZXZlbHMgdGhlIGVkZ2VzIGFyZSBkaXNwbGF5ZWRcbiAgLy8gSXQgaXMgdXNlZCBpbiB0d28gcGxhY2VzIGluIHRoZSBjb2RlLCBzbyBpdCBpcyBiZXR0ZXIgdG8gc3RvcmUgaXQgaW4gb25lIHBsYWNlXG4gIGNvbnN0IGVkZ2VzWm9vbUxldmVscyA9IFsnU21hbGwnLCAnTWVkaXVtJywgJ01MYXJnZScsICdMYXJnZSddO1xuXG4gIGNvbnN0IGhhbmRsZVBvaW50c0NoZWNrYm94Q2hhbmdlID0gKGlzQ2hlY2tlZCkgPT4ge1xuICAgIHNldE9ubHlNb25pdG9yZWRQb2ludHMoaXNDaGVja2VkKTtcbiAgICBpZiAobWFwUmVmLmN1cnJlbnQgIT09IG51bGwpIHtcbiAgICAgIGxldCB6b29tID0gem9vbUxldmVsc1ttYXBSZWYuY3VycmVudC5nZXRab29tKCldO1xuXG4gICAgICBpZiAoaXNDaGVja2VkKSB7XG4gICAgICAgIC8vIEhpZGUgdW5tb25pdG9yZWQgcG9pbnRzIHdoZW4gXCJzaG93IG9ubHkgbW9uaXRvcmVkXCIgaXMgY2hlY2tlZFxuICAgICAgICBmYWN0b3JpZXNQYXJlbnRHcm91cC5yZW1vdmVMYXllcih1bm1vbml0b3JlZEZhY3Rvcmllc0dyb3VwKTtcbiAgICAgICAgdW5tb25pdG9yZWRFZGdlc0dyb3VwLnJlbW92ZUZyb20obWFwUmVmLmN1cnJlbnQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gU2hvdyBhbGwgcG9pbnRzIHdoZW4gXCJzaG93IG9ubHkgbW9uaXRvcmVkXCIgaXMgdW5jaGVja2VkXG4gICAgICAgIGZhY3Rvcmllc1BhcmVudEdyb3VwLmFkZExheWVyKHVubW9uaXRvcmVkRmFjdG9yaWVzR3JvdXApO1xuXG4gICAgICAgIC8vIFNob3cgdW5tb25pdG9yZWQgZWRnZXMgaWYgYXQgYXBwcm9wcmlhdGUgem9vbSBsZXZlbFxuICAgICAgICBpZiAoZWRnZXNDaGVja2JveFJlZi5jdXJyZW50ICYmIGVkZ2VzWm9vbUxldmVscy5pbmNsdWRlcyh6b29tKSkge1xuICAgICAgICAgIHVubW9uaXRvcmVkRWRnZXNHcm91cC5hZGRUbyhtYXBSZWYuY3VycmVudCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlUG9pbnRzV2l0aFNhbXBsZXJDaGVja2JveENoYW5nZSA9IChpc0NoZWNrZWQpID0+IHtcbiAgICBzZXRPbmx5V2l0aFNhbXBsZXJQb2ludHMoaXNDaGVja2VkKTtcblxuICAgIGNvbnN0IHJlbW92ZVBvaW50c1dpdGhOb1NhbXBsZXIgPSAoZ3JvdXApID0+IHtcbiAgICAgIGdyb3VwLmVhY2hMYXllcigobGF5ZXIpID0+IHtcbiAgICAgICAgaWYgKGxheWVyWydrYW5kb19oYXNfc2FtcGxlciddID09PSBmYWxzZSkge1xuICAgICAgICAgIGdyb3VwLnJlbW92ZUxheWVyKGxheWVyKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIGlmIChtYXBSZWYuY3VycmVudCAhPT0gbnVsbCkge1xuICAgICAgaWYgKGlzQ2hlY2tlZCkge1xuICAgICAgICBmYWN0b3JpZXNQYXJlbnRHcm91cC5yZW1vdmVMYXllcih1bm1vbml0b3JlZEZhY3Rvcmllc0dyb3VwKTtcbiAgICAgICAgdW5tb25pdG9yZWRFZGdlc0dyb3VwLnJlbW92ZUZyb20obWFwUmVmLmN1cnJlbnQpO1xuICAgICAgICByZW1vdmVQb2ludHNXaXRoTm9TYW1wbGVyKG1vbml0b3JlZEZhY3Rvcmllc0dyb3VwKTtcbiAgICAgICAgcmVtb3ZlUG9pbnRzV2l0aE5vU2FtcGxlcih3d3Rwc0xheWVyR3JvdXApO1xuICAgICAgICByZW1vdmVQb2ludHNXaXRoTm9TYW1wbGVyKGNvbGxlY3RvcnNMYXllckdyb3VwKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldCB6b29tID0gem9vbUxldmVsc1ttYXBSZWYuY3VycmVudC5nZXRab29tKCldO1xuICAgICAgICBmYWN0b3JpZXNQYXJlbnRHcm91cC5hZGRMYXllcih1bm1vbml0b3JlZEZhY3Rvcmllc0dyb3VwKTtcblxuICAgICAgICAvLyBTaG93IHVubW9uaXRvcmVkIGVkZ2VzIGlmIGF0IGFwcHJvcHJpYXRlIHpvb20gbGV2ZWxcbiAgICAgICAgaWYgKGVkZ2VzQ2hlY2tib3hSZWYuY3VycmVudCAmJiBlZGdlc1pvb21MZXZlbHMuaW5jbHVkZXMoem9vbSkpIHtcbiAgICAgICAgICB1bm1vbml0b3JlZEVkZ2VzR3JvdXAuYWRkVG8obWFwUmVmLmN1cnJlbnQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IHRyYWNrTGF5ZXJib3ggPSAoKSA9PiB7XG4gICAgc2V0dXBDaGVja2JveExpc3RlbmVyKCcjZWRnZXMtY2hlY2tib3gnLCBoYW5kbGVFZGdlc0NoZWNrYm94Q2hhbmdlKTtcbiAgICBzZXR1cENoZWNrYm94TGlzdGVuZXIoXG4gICAgICAnI21vbml0b3JlZC1wb2ludHMtY2hlY2tib3gnLFxuICAgICAgaGFuZGxlUG9pbnRzQ2hlY2tib3hDaGFuZ2UsXG4gICAgKTtcbiAgICBzZXR1cENoZWNrYm94TGlzdGVuZXIoXG4gICAgICAnI21vbml0b3JlZC1wb2ludHMtd2l0aC1zYW1wbGVyLWNoZWNrYm94JyxcbiAgICAgIGhhbmRsZVBvaW50c1dpdGhTYW1wbGVyQ2hlY2tib3hDaGFuZ2UsXG4gICAgKTtcbiAgfTtcblxuICBjb25zdCB6b29tUnVsZXNGb3JFdmVudHNWaWV3ID0gKCkgPT4ge1xuICAgIGNvbnN0IHBheWxvYWQgPSAoXG4gICAgICA8PlxuICAgICAgICB7bWVtb2l6ZWRFZGdlc31cbiAgICAgICAge21lbW9pemVkVW5tb25pdG9yZWRFZGdlc31cbiAgICAgICAge21lbW9pemVkVW5tb25pdG9yZWRQb2ludHN9XG4gICAgICAgIHttZW1vaXplZE1vbml0b3JlZFBvaW50c31cbiAgICAgIDwvPlxuICAgICk7XG5cbiAgICByZXR1cm4gcGF5bG9hZDtcbiAgfTtcblxuICBjb25zdCB6b29tUnVsZXNGb3JEYXNoYWJvYXJkTWFwcyA9ICgpID0+IHtcbiAgICBsZXQgcGF5bG9hZCA9IChcbiAgICAgIDw+XG4gICAgICAgIHttZW1vaXplZFVubW9uaXRvcmVkUG9pbnRzfVxuICAgICAgICB7bWVtb2l6ZWRNb25pdG9yZWRQb2ludHN9XG4gICAgICA8Lz5cbiAgICApO1xuXG4gICAgaWYgKGVkZ2VzWm9vbUxldmVscy5pbmNsdWRlcyh6b29tTGV2ZWxzW21hcFpvb21MZXZlbF0pKSB7XG4gICAgICBwYXlsb2FkID0gem9vbVJ1bGVzRm9yRXZlbnRzVmlldygpO1xuICAgIH1cblxuICAgIHJldHVybiBwYXlsb2FkO1xuICB9O1xuXG4gIGNvbnN0IG1lbW9pemVkWm9vbUNvbnRyb2wgPSAoKSA9PiB7XG4gICAgY29uc3QgcGF5bG9hZCA9IGZvckV2ZW50c1ZpZXdcbiAgICAgID8gem9vbVJ1bGVzRm9yRXZlbnRzVmlldygpXG4gICAgICA6IHpvb21SdWxlc0ZvckRhc2hhYm9hcmRNYXBzKCk7XG4gICAgcmV0dXJuIHBheWxvYWQ7XG4gIH07XG5cbiAgY29uc3QgbWVtb2l6ZWRFdmVudCA9ICgpID0+IHtcbiAgICBpZiAoZm9jdXNlZEV2ZW50UHJlc2VudCkge1xuICAgICAgZm9jdXNlZEV2ZW50IS5mb2N1c2VkID0gZm9jdXNlZEV2ZW50UHJlc2VudDtcbiAgICAgIGZvY3VzZWRFdmVudCEuaG92ZXJlZCA9ICFmb2N1c2VkRXZlbnRQcmVzZW50O1xuICAgIH1cblxuICAgIGlmIChob3ZlcmVkRXZlbnRQcmVzZW50KSB7XG4gICAgICBob3ZlcmVkRXZlbnQhLmhvdmVyZWQgPSBob3ZlcmVkRXZlbnRQcmVzZW50O1xuICAgICAgaG92ZXJlZEV2ZW50IS5mb2N1c2VkID0gIWhvdmVyZWRFdmVudFByZXNlbnQ7XG4gICAgfVxuXG4gICAgaWYgKCFob3ZlcmVkRXZlbnRQcmVzZW50ICYmICFmb2N1c2VkRXZlbnRQcmVzZW50KSByZXR1cm4gPD48Lz47XG4gICAgcmV0dXJuIChcbiAgICAgIDxFdmVudFxuICAgICAgICBldmVudD17Zm9jdXNlZEV2ZW50ISB8fCBob3ZlcmVkRXZlbnQhfVxuICAgICAgICBtYXA9e21hcH1cbiAgICAgICAgZWRnZXM9e2VkZ2VzIX1cbiAgICAgICAgcG9pbnRzPXtwb2ludHMhfVxuICAgICAgICBpbmNsdWRlTmV0d29yaz17IWhvdmVyZWRFdmVudFByZXNlbnR9XG4gICAgICAvPlxuICAgICk7XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBlZGdlc0NoZWNrYm94UmVmLmN1cnJlbnQgPSBlZGdlc0NoZWNrYm94O1xuICB9LCBbZWRnZXNDaGVja2JveF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIGNsZWFudXAoKSB7XG4gICAgICBjb2xsZWN0b3JzTGF5ZXJHcm91cC5jbGVhckxheWVycygpO1xuICAgICAgbWFwUmVmLmN1cnJlbnQ/LnJlbW92ZUxheWVyKGNvbGxlY3RvcnNMYXllckdyb3VwKTtcbiAgICB9O1xuICB9LCBbZm9jdXNlZEV2ZW50LCBob3ZlcmVkRXZlbnQsIGdsb2JhbF9kYXRhLmV2ZW50RmlsdGVyUGFyYW1dKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJldHVybiBmdW5jdGlvbiBjbGVhbnVwKCkge1xuICAgICAgaWYgKGZvckV2ZW50c1ZpZXcgJiYgbWFwUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgZGlzcGF0Y2goY2xlYXJQb2ludHMoKSk7XG4gICAgICAgIGRpc3BhdGNoKGNsZWFyQXJlYXMoKSk7XG4gICAgICAgIHd3dHBzTGF5ZXJHcm91cC5jbGVhckxheWVycygpO1xuICAgICAgICBhcmVhc0xheWVyR3JvdXAuY2xlYXJMYXllcnMoKTtcbiAgICAgICAgbW9uaXRvcmVkRWRnZXNHcm91cC5jbGVhckxheWVycygpO1xuICAgICAgICBjb2xsZWN0b3JzTGF5ZXJHcm91cC5jbGVhckxheWVycygpO1xuICAgICAgICB1bm1vbml0b3JlZEVkZ2VzR3JvdXAuY2xlYXJMYXllcnMoKTtcbiAgICAgICAgbW9uaXRvcmVkRmFjdG9yaWVzR3JvdXAuY2xlYXJMYXllcnMoKTtcbiAgICAgICAgdW5tb25pdG9yZWRGYWN0b3JpZXNHcm91cC5jbGVhckxheWVycygpO1xuICAgICAgICBmYWN0b3JpZXNQYXJlbnRHcm91cC5jbGVhckxheWVycygpO1xuICAgICAgICBtYXBSZWYuY3VycmVudC5yZW1vdmVMYXllcih1bm1vbml0b3JlZEVkZ2VzR3JvdXApO1xuICAgICAgICBtYXBSZWYuY3VycmVudC5yZW1vdmVMYXllcihtb25pdG9yZWRFZGdlc0dyb3VwKTtcbiAgICAgICAgbWFwUmVmLmN1cnJlbnQucmVtb3ZlTGF5ZXIod3d0cHNMYXllckdyb3VwKTtcbiAgICAgICAgbWFwUmVmLmN1cnJlbnQucmVtb3ZlTGF5ZXIoY29sbGVjdG9yc0xheWVyR3JvdXApO1xuICAgICAgICBtYXBSZWYuY3VycmVudC5yZW1vdmVMYXllcihhcmVhc0xheWVyR3JvdXApO1xuICAgICAgICBtYXBSZWYuY3VycmVudC5yZW1vdmVMYXllcihmYWN0b3JpZXNQYXJlbnRHcm91cCk7XG5cbiAgICAgICAgbWFwUmVmLmN1cnJlbnQuZWFjaExheWVyKChsYXllcikgPT4ge1xuICAgICAgICAgIGlmIChsYXllciBpbnN0YW5jZW9mIEwuVGlsZUxheWVyKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIG1hcFJlZi5jdXJyZW50LnJlbW92ZUxheWVyKGxheWVyKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfTtcbiAgfSwgW2dsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWRdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghbWFwUmVmLmN1cnJlbnQpIHtcbiAgICAgIGluaXRpYWxpemVNYXAoXG4gICAgICAgIG1hcFpvb21MZXZlbCxcbiAgICAgICAgbWFwQm94U3R5bGUsXG4gICAgICAgIGxlYWZsZXRNYXAuc2F0ZWxsaXRlLFxuICAgICAgICBtYXBSZWYsXG4gICAgICAgIGRpc3BhdGNoLFxuICAgICAgICBpc1ZhbGlkQXJlYSxcbiAgICAgICAgYXJlYVRvQ2VudGVyQnksXG4gICAgICAgIHNldE1hcFpvb21MZXZlbCxcbiAgICAgICAgZm9yV1dUUERhc2hib2FyZCxcbiAgICAgICAgdHJ1ZSxcbiAgICAgICAgZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZCxcbiAgICAgICk7XG5cbiAgICAgIC8vIEluaXRpYWxpemUgcGFyZW50IGZhY3RvcnkgZ3JvdXBcbiAgICAgIGlmIChtYXBSZWYuY3VycmVudCkge1xuICAgICAgICBmYWN0b3JpZXNQYXJlbnRHcm91cC5hZGRUbyhtYXBSZWYuY3VycmVudCk7XG4gICAgICAgIGZhY3Rvcmllc1BhcmVudEdyb3VwLmFkZExheWVyKG1vbml0b3JlZEZhY3Rvcmllc0dyb3VwKTtcbiAgICAgICAgZmFjdG9yaWVzUGFyZW50R3JvdXAuYWRkTGF5ZXIodW5tb25pdG9yZWRGYWN0b3JpZXNHcm91cCk7XG4gICAgICB9XG5cbiAgICAgIHRyYWNrTGF5ZXJib3goKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0TWFwWm9vbUxldmVsKG1hcFJlZi5jdXJyZW50LmdldFpvb20oKSk7XG4gICAgICBpZiAoIWFyZWFUb0NlbnRlckJ5KSB7XG4gICAgICAgIGFyZWFUb0NlbnRlckJ5ID0gYXJlYXMubWFwKChhcmVhKSA9PiBhcmVhLnNoYXBlX2RhdGEpLmZsYXQoKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFmb3JFdmVudHNWaWV3IHx8ICFmb2N1c2VkRXZlbnQpIHtcbiAgICAgICAgYXJlYUZvY3VzTG9naWMobWFwUmVmLCBpc1ZhbGlkQXJlYSwgYXJlYVRvQ2VudGVyQnkpO1xuICAgICAgfVxuICAgIH1cbiAgfSwgW2FyZWFUb0NlbnRlckJ5XSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBsZXQgY2xpY2tlZCA9IGZhbHNlO1xuXG4gICAgbWFwUmVmLmN1cnJlbnQ/LmVhY2hMYXllcigobGF5ZXIpID0+IHtcbiAgICAgIGlmIChjbGlja2VkKSByZXR1cm47XG5cbiAgICAgIGlmIChcbiAgICAgICAgbGF5ZXI/LmthbmRvX29iamVjdF9pZCA9PT0gc2VsZWN0ZWRJdGVtICYmXG4gICAgICAgIGxheWVyLmlzUG9wdXBPcGVuKCkgPT09IGZhbHNlXG4gICAgICApIHtcbiAgICAgICAgaWYgKGxheWVyIGluc3RhbmNlb2YgTC5NYXJrZXIpIHtcbiAgICAgICAgICBsYXllci5maXJlKCdjbGljaycpO1xuICAgICAgICB9IGVsc2UgaWYgKGxheWVyIGluc3RhbmNlb2YgTC5Qb2x5Z29uKSB7XG4gICAgICAgICAgbGF5ZXIuZmlyZSgnY2xpY2stZXZlbnQnKTtcbiAgICAgICAgfVxuICAgICAgICBjbGlja2VkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSwgW3NlbGVjdGVkSXRlbV0pO1xuXG4gIGNvbnN0IHJlbmRlckFyZWFzID0gKCkgPT4ge1xuICAgIGlmICghc2hvdWxkTG9hZE1hcE9iamVjdHMoZ2xvYmFsX2RhdGEsIG1hcFJlZiwgZWRnZXMsIHBvaW50cykpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8QXJlYVBvbHlnb25zXG4gICAgICAgIGFyZWFzPXthcmVhc31cbiAgICAgICAgbWFwPXttYXBSZWYuY3VycmVudH1cbiAgICAgICAgTD17TH1cbiAgICAgICAgYXJlYVRvQ2VudGVyQnk9e2FyZWFUb0NlbnRlckJ5fVxuICAgICAgICBtYXBab29tPXttYXBab29tTGV2ZWx9XG4gICAgICAgIGdsb2JhbF9kYXRhPXtnbG9iYWxfZGF0YX1cbiAgICAgICAgZmVhdHVyZUdyb3VwPXthcmVhc0xheWVyR3JvdXB9XG4gICAgICAvPlxuICAgICk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImtkLW1hcC1jb250YWluZXJcIiBzdHlsZT17c3R5bGV9PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzc05hbWU9e2AgbWFwLWNvbnRhaW5lciAke1xuICAgICAgICAgIGdsb2JhbF9kYXRhLnNpZGVuYXZFeHBhbmRlZCA/ICcnIDogJ21hcC1jb250YWluZXItLXNpZGVuYXYtY29sbGFwc2VkJ1xuICAgICAgICB9YH1cbiAgICAgID5cbiAgICAgICAgPEVycm9yQm91bmRhcnk+XG4gICAgICAgICAgPGRpdiBpZD1cIm1hcFwiPlxuICAgICAgICAgICAge3JlbmRlckFyZWFzKCl9XG4gICAgICAgICAgICB7c2hvdWRMb2FkRGVwZW5kZW50TWFwT2JqZWN0cyhcbiAgICAgICAgICAgICAgZWRnZXMsXG4gICAgICAgICAgICAgIGFyZWFzLFxuICAgICAgICAgICAgICBnbG9iYWxfZGF0YSxcbiAgICAgICAgICAgICAgbWFwUmVmLFxuICAgICAgICAgICAgICBwb2ludHMsXG4gICAgICAgICAgICApICYmIChcbiAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICB7bWVtb2l6ZWRFdmVudCgpfVxuICAgICAgICAgICAgICAgIHttZW1vaXplZFpvb21Db250cm9sKCl9XG4gICAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvRXJyb3JCb3VuZGFyeT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufTtcbiJd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
364
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX3JlYWN0UmVkdXgiLCJfRXJyb3JCb3VuZGFyeSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfQXJlYVBvbHlnb25zIiwiX0VkZ2VzIiwiX1BvaW50TWFya2VycyIsIl9FdmVudCIsIl9NYXBVdGlscyIsIl90aGVtZSIsIl9MaXN0Q29udGV4dCIsIl9hY3Rpb25zIiwiX2FjdGlvbnMyIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJNYXAiLCJfcmVmIiwiYXJlYXMiLCJlZGdlcyIsInBvaW50cyIsImdsb2JhbF9kYXRhIiwiYXJlYVRvQ2VudGVyQnkiLCJmb2N1c2VkRXZlbnQiLCJob3ZlcmVkRXZlbnQiLCJfcmVmJGhpZGVFZGdlcyIsImhpZGVFZGdlcyIsIl9yZWYkbWFwQm94U3R5bGUiLCJtYXBCb3hTdHlsZSIsImxlYWZsZXRNYXAiLCJtYXBEZWZhdWx0IiwiY2hpbGRyZW4iLCJfcmVmJGluY2x1ZGVVbm1vbml0b3IiLCJpbmNsdWRlVW5tb25pdG9yZWRQb2ludHMiLCJfcmVmJGluY2x1ZGVVbm1vbml0b3IyIiwiaW5jbHVkZVVubW9uaXRvcmVkRGVzY2VuZGFudHNGb3JFZGdlcyIsIl9yZWYkZm9yRXZlbnRzVmlldyIsImZvckV2ZW50c1ZpZXciLCJfcmVmJHN0eWxlIiwic3R5bGUiLCJfcmVmJGZvcldXVFBEYXNoYm9hcmQiLCJmb3JXV1RQRGFzaGJvYXJkIiwibWFwIiwibWFwUmVmIiwidXNlUmVmIiwiZGlzcGF0Y2giLCJ1c2VEaXNwYXRjaCIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsIm1hcFpvb21MZXZlbCIsInNldE1hcFpvb21MZXZlbCIsIl91c2VTZWxlY3RlZEl0ZW0iLCJ1c2VTZWxlY3RlZEl0ZW0iLCJzZWxlY3RlZEl0ZW0iLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImVkZ2VzQ2hlY2tib3giLCJzZXRFZGdlc0NoZWNrYm94IiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJvbmx5TW9uaXRvcmVkUG9pbnRzIiwic2V0T25seU1vbml0b3JlZFBvaW50cyIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4Iiwib25seVdpdGhTYW1wbGVyUG9pbnRzIiwic2V0T25seVdpdGhTYW1wbGVyUG9pbnRzIiwiZWRnZXNDaGVja2JveFJlZiIsImhvdmVyZWRFdmVudFByZXNlbnQiLCJ1c2VNZW1vIiwidW5kZWZpbmVkIiwiZm9jdXNlZEV2ZW50UHJlc2VudCIsIl91c2VTdGF0ZTkiLCJsYXllckdyb3VwIiwiX3VzZVN0YXRlMTAiLCJmYWN0b3JpZXNQYXJlbnRHcm91cCIsIl91c2VTdGF0ZTExIiwiX3VzZVN0YXRlMTIiLCJ1bm1vbml0b3JlZEZhY3Rvcmllc0dyb3VwIiwiX3VzZVN0YXRlMTMiLCJfdXNlU3RhdGUxNCIsIm1vbml0b3JlZEZhY3Rvcmllc0dyb3VwIiwiX3VzZVN0YXRlMTUiLCJfdXNlU3RhdGUxNiIsInVubW9uaXRvcmVkRWRnZXNHcm91cCIsIl91c2VTdGF0ZTE3IiwiX3VzZVN0YXRlMTgiLCJtb25pdG9yZWRFZGdlc0dyb3VwIiwiX3VzZVN0YXRlMTkiLCJfdXNlU3RhdGUyMCIsInd3dHBzTGF5ZXJHcm91cCIsIl91c2VTdGF0ZTIxIiwiX3VzZVN0YXRlMjIiLCJjb2xsZWN0b3JzTGF5ZXJHcm91cCIsIl91c2VTdGF0ZTIzIiwiRmVhdHVyZUdyb3VwIiwiX3VzZVN0YXRlMjQiLCJhcmVhc0xheWVyR3JvdXAiLCJyZW5kZXJQb2ludE1hcmtlcnMiLCJmaWx0ZXJlZFBvaW50cyIsInByb3BzIiwiY3VycmVudCIsImNyZWF0ZUVsZW1lbnQiLCJQb2ludE1hcmtlcnMiLCJhc3NpZ24iLCJtZW1vaXplZE1vbml0b3JlZFBvaW50cyIsIm1vbml0b3JlZFBvaW50cyIsImZpbHRlclBvaW50cyIsIm9ubHlNb25pdG9yZWQiLCJyZXJlbmRlciIsInpvb21MZXZlbHMiLCJmYWN0b3JpZXNHcm91cCIsInd3dHBzR3JvdXAiLCJjb2xsZWN0b3JzR3JvdXAiLCJtZW1vaXplZFVubW9uaXRvcmVkUG9pbnRzIiwidW5tb25pdG9yZWRQb2ludHMiLCJyZW5kZXJFZGdlcyIsImZpbHRlcmVkRWRnZXMiLCJtZW1vaXplZEVkZ2VzIiwibW9uaXRvcmVkRWRnZXMiLCJmaWx0ZXJFZGdlcyIsImhpZGVBcnJvd3MiLCJhbGxvd1VubW9uaXRvcmVkRGVzY2VuZGFudHMiLCJncm91cCIsIm1lbW9pemVkVW5tb25pdG9yZWRFZGdlcyIsInVubW9uaXRvcmVkRWRnZXMiLCJoYW5kbGVFZGdlc0NoZWNrYm94Q2hhbmdlIiwiaXNDaGVja2VkIiwiZWRnZXNab29tTGV2ZWxzIiwiaGFuZGxlUG9pbnRzQ2hlY2tib3hDaGFuZ2UiLCJ6b29tIiwiZ2V0Wm9vbSIsInJlbW92ZUxheWVyIiwicmVtb3ZlRnJvbSIsImFkZExheWVyIiwiaW5jbHVkZXMiLCJhZGRUbyIsImhhbmRsZVBvaW50c1dpdGhTYW1wbGVyQ2hlY2tib3hDaGFuZ2UiLCJyZW1vdmVQb2ludHNXaXRoTm9TYW1wbGVyIiwiZWFjaExheWVyIiwibGF5ZXIiLCJ0cmFja0xheWVyYm94Iiwic2V0dXBDaGVja2JveExpc3RlbmVyIiwiem9vbVJ1bGVzRm9yRXZlbnRzVmlldyIsInBheWxvYWQiLCJGcmFnbWVudCIsInpvb21SdWxlc0ZvckRhc2hhYm9hcmRNYXBzIiwibWVtb2l6ZWRab29tQ29udHJvbCIsIm1lbW9pemVkRXZlbnQiLCJmb2N1c2VkIiwiaG92ZXJlZCIsIkV2ZW50IiwiZXZlbnQiLCJpbmNsdWRlTmV0d29yayIsInVzZUVmZmVjdCIsImNsZWFudXAiLCJfbWFwUmVmJGN1cnJlbnQiLCJjbGVhckxheWVycyIsImV2ZW50RmlsdGVyUGFyYW0iLCJjbGVhclBvaW50cyIsImNsZWFyQXJlYXMiLCJUaWxlTGF5ZXIiLCJ3YXRlckF1dGhvcml0eUlkIiwiaW5pdGlhbGl6ZU1hcCIsInNhdGVsbGl0ZSIsImlzVmFsaWRBcmVhIiwiYXJlYSIsInNoYXBlX2RhdGEiLCJmbGF0IiwiYXJlYUZvY3VzTG9naWMiLCJfbWFwUmVmJGN1cnJlbnQyIiwiY2xpY2tlZCIsImthbmRvX29iamVjdF9pZCIsImlzUG9wdXBPcGVuIiwiTWFya2VyIiwiZmlyZSIsIlBvbHlnb24iLCJyZW5kZXJBcmVhcyIsInNob3VsZExvYWRNYXBPYmplY3RzIiwiQXJlYVBvbHlnb25zIiwibWFwWm9vbSIsImZlYXR1cmVHcm91cCIsImNsYXNzTmFtZSIsImNvbmNhdCIsInNpZGVuYXZFeHBhbmRlZCIsImlkIiwic2hvdWRMb2FkRGVwZW5kZW50TWFwT2JqZWN0cyIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvV2lkZ2V0cy9NYXAvTWFwLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtaWdub3JlXG5pbXBvcnQgKiBhcyBMIGZyb20gJ2xlYWZsZXQnO1xuaW1wb3J0ICdzcmMvdXRpbGl0aWVzL3BvbHlsaW5lZGVjb3JhdG9yJztcbmltcG9ydCAnbGVhZmxldC5tYXJrZXJjbHVzdGVyJztcbmltcG9ydCAnbGVhZmxldC5wYXR0ZXJuJztcbmltcG9ydCAnbGVhZmxldC5oZWF0JztcbmltcG9ydCBSZWFjdCwge1xuICBDU1NQcm9wZXJ0aWVzLFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZixcbiAgdXNlU3RhdGUsXG59IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZURpc3BhdGNoIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgSUFyZWEgfSBmcm9tICdzcmMvc3RvcmUvYXJlYXMvbW9kZWxzL0lBcmVhJztcbmltcG9ydCB7IElFZGdlIH0gZnJvbSAnc3JjL3N0b3JlL2VkZ2VzL21vZGVscy9JRWRnZSc7XG5pbXBvcnQgeyBJRXZlbnQgfSBmcm9tICdzcmMvc3RvcmUvZXZlbnRzL21vZGVscy9JRXZlbnQnO1xuaW1wb3J0IHsgSUdsb2JhbFN0YXRlIH0gZnJvbSAnc3JjL3N0b3JlL2dsb2JhbC9tb2RlbHMvSUdsb2JhbFN0YXRlJztcbmltcG9ydCB7IElQb2ludCB9IGZyb20gJ3NyYy9zdG9yZS9wb2ludHMvbW9kZWxzL0lQb2ludCc7XG5pbXBvcnQgRXJyb3JCb3VuZGFyeSBmcm9tICdzcmMvdXRpbGl0aWVzL0Vycm9yQm91bmRhcnknO1xuaW1wb3J0IHsgQXJlYVBvbHlnb25zIH0gZnJvbSAnLi9hcmVhcy9BcmVhUG9seWdvbnMnO1xuaW1wb3J0IEVkZ2VzIGZyb20gJy4vZWRnZXMvRWRnZXMnO1xuaW1wb3J0ICcuL01hcC5zY3NzJztcbmltcG9ydCAnLi9wb2ludHMvUG9pbnRJY29uLnNjc3MnO1xuaW1wb3J0IHsgUG9pbnRNYXJrZXJzIH0gZnJvbSAnLi9wb2ludHMvUG9pbnRNYXJrZXJzJztcbmltcG9ydCB7IEV2ZW50IH0gZnJvbSAnLi9ldmVudHMvRXZlbnQnO1xuaW1wb3J0IHtcbiAgYXJlYUZvY3VzTG9naWMsXG4gIGZpbHRlckVkZ2VzLFxuICBmaWx0ZXJQb2ludHMsXG4gIGluaXRpYWxpemVNYXAsXG4gIGlzVmFsaWRBcmVhLFxuICBzZXR1cENoZWNrYm94TGlzdGVuZXIsXG4gIHNob3VkTG9hZERlcGVuZGVudE1hcE9iamVjdHMsXG4gIHNob3VsZExvYWRNYXBPYmplY3RzLFxuICB6b29tTGV2ZWxzLFxufSBmcm9tICcuL01hcFV0aWxzJztcbmltcG9ydCB7IGxlYWZsZXRNYXAgfSBmcm9tICcuLi8uLi9zdHlsZXMvdGhlbWUvdGhlbWUnO1xuaW1wb3J0IHsgdXNlU2VsZWN0ZWRJdGVtIH0gZnJvbSAnc3JjL3BhZ2VzL0Rhc2hib2FyZE1hcC9MaXN0Q29udGV4dCc7XG5pbXBvcnQgeyBjbGVhckFyZWFzIH0gZnJvbSAnc3JjL3N0b3JlL2FyZWFzL2FjdGlvbnMnO1xuaW1wb3J0IHsgY2xlYXJQb2ludHMgfSBmcm9tICdzcmMvc3RvcmUvcG9pbnRzL2FjdGlvbnMnO1xucmVxdWlyZSgnbGVhZmxldC5tYXJrZXJjbHVzdGVyJyk7XG5cbmludGVyZmFjZSBNYXBQcm9wcyB7XG4gIGFyZWFzOiBJQXJlYVtdO1xuICBlZGdlcz86IElFZGdlW107XG4gIHBvaW50cz86IElQb2ludFtdO1xuICBnbG9iYWxfZGF0YTogSUdsb2JhbFN0YXRlO1xuICBhcmVhVG9DZW50ZXJCeT86IGFueTtcbiAgZm9jdXNlZEV2ZW50PzogSUV2ZW50IHwgbnVsbDtcbiAgaG92ZXJlZEV2ZW50PzogSUV2ZW50IHwgbnVsbDtcbiAgaGlkZUVkZ2VzPzogYm9vbGVhbjtcbiAgbWFwQm94U3R5bGU/OiBzdHJpbmc7XG4gIGNoaWxkcmVuPzogYW55O1xuICBzdHlsZT86IENTU1Byb3BlcnRpZXM7XG4gIGluY2x1ZGVVbm1vbml0b3JlZFBvaW50cz86IGJvb2xlYW47XG4gIGluY2x1ZGVVbm1vbml0b3JlZERlc2NlbmRhbnRzRm9yRWRnZXM/OiBib29sZWFuO1xuICBmb3JFdmVudHNWaWV3OiBib29sZWFuO1xuICBmb3JXV1RQRGFzaGJvYXJkPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IE1hcDogUmVhY3QuRkM8TWFwUHJvcHM+ID0gKHtcbiAgYXJlYXMsXG4gIGVkZ2VzLFxuICBwb2ludHMsXG4gIGdsb2JhbF9kYXRhLFxuICBhcmVhVG9DZW50ZXJCeSxcbiAgZm9jdXNlZEV2ZW50LFxuICBob3ZlcmVkRXZlbnQsXG4gIGhpZGVFZGdlcyA9IGZhbHNlLFxuICBtYXBCb3hTdHlsZSA9IGxlYWZsZXRNYXAubWFwRGVmYXVsdCxcbiAgY2hpbGRyZW4sXG4gIGluY2x1ZGVVbm1vbml0b3JlZFBvaW50cyA9IHRydWUsXG4gIGluY2x1ZGVVbm1vbml0b3JlZERlc2NlbmRhbnRzRm9yRWRnZXMgPSBmYWxzZSxcbiAgZm9yRXZlbnRzVmlldyA9IGZhbHNlLFxuICBzdHlsZSA9IHt9LFxuICBmb3JXV1RQRGFzaGJvYXJkID0gZmFsc2UsXG59KSA9PiB7XG4gIGNvbnN0IHsgbWFwIH0gPSBnbG9iYWxfZGF0YTtcbiAgY29uc3QgbWFwUmVmID0gdXNlUmVmPEwuTWFwIHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgW21hcFpvb21MZXZlbCwgc2V0TWFwWm9vbUxldmVsXSA9IHVzZVN0YXRlKDIpO1xuICBjb25zdCB7IHNlbGVjdGVkSXRlbSB9ID0gdXNlU2VsZWN0ZWRJdGVtKCk7XG4gIGNvbnN0IFtlZGdlc0NoZWNrYm94LCBzZXRFZGdlc0NoZWNrYm94XSA9IHVzZVN0YXRlKHRydWUpO1xuICBjb25zdCBbb25seU1vbml0b3JlZFBvaW50cywgc2V0T25seU1vbml0b3JlZFBvaW50c10gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtvbmx5V2l0aFNhbXBsZXJQb2ludHMsIHNldE9ubHlXaXRoU2FtcGxlclBvaW50c10gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IGVkZ2VzQ2hlY2tib3hSZWYgPSB1c2VSZWYoZWRnZXNDaGVja2JveCk7XG5cbiAgY29uc3QgaG92ZXJlZEV2ZW50UHJlc2VudCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBob3ZlcmVkRXZlbnQgIT09IG51bGwgJiYgaG92ZXJlZEV2ZW50ICE9PSB1bmRlZmluZWQ7XG4gIH0sIFtob3ZlcmVkRXZlbnRdKTtcblxuICBjb25zdCBmb2N1c2VkRXZlbnRQcmVzZW50ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIGZvY3VzZWRFdmVudCAhPT0gbnVsbCAmJiBmb2N1c2VkRXZlbnQgIT09IHVuZGVmaW5lZDtcbiAgfSwgW2ZvY3VzZWRFdmVudF0pO1xuXG4gIC8vIEFkZCBwYXJlbnQgbGF5ZXIgZ3JvdXAgZm9yIGFsbCBmYWN0b3JpZXNcbiAgY29uc3QgW2ZhY3Rvcmllc1BhcmVudEdyb3VwXSA9IHVzZVN0YXRlKEwubGF5ZXJHcm91cCgpKTtcbiAgY29uc3QgW3VubW9uaXRvcmVkRmFjdG9yaWVzR3JvdXBdID0gdXNlU3RhdGUoTC5sYXllckdyb3VwKCkpO1xuICBjb25zdCBbbW9uaXRvcmVkRmFjdG9yaWVzR3JvdXBdID0gdXNlU3RhdGUoTC5sYXllckdyb3VwKCkpO1xuICBjb25zdCBbdW5tb25pdG9yZWRFZGdlc0dyb3VwXSA9IHVzZVN0YXRlKEwubGF5ZXJHcm91cCgpKTtcbiAgY29uc3QgW21vbml0b3JlZEVkZ2VzR3JvdXBdID0gdXNlU3RhdGUoTC5sYXllckdyb3VwKCkpO1xuICBjb25zdCBbd3d0cHNMYXllckdyb3VwXSA9IHVzZVN0YXRlKEwubGF5ZXJHcm91cCgpKTtcbiAgY29uc3QgW2NvbGxlY3RvcnNMYXllckdyb3VwXSA9IHVzZVN0YXRlKEwubGF5ZXJHcm91cCgpKTtcbiAgY29uc3QgW2FyZWFzTGF5ZXJHcm91cF0gPSB1c2VTdGF0ZShuZXcgTC5GZWF0dXJlR3JvdXAoKSk7XG5cbiAgY29uc3QgcmVuZGVyUG9pbnRNYXJrZXJzID0gKGZpbHRlcmVkUG9pbnRzLCBtYXBSZWYsIHByb3BzKSA9PlxuICAgIG1hcFJlZi5jdXJyZW50ICE9PSBudWxsICYmXG4gICAgcG9pbnRzICYmIChcbiAgICAgIDxQb2ludE1hcmtlcnMgbWFwPXttYXBSZWYuY3VycmVudH0gcG9pbnRzPXtmaWx0ZXJlZFBvaW50c30gey4uLnByb3BzfSAvPlxuICAgICk7XG5cbiAgY29uc3QgbWVtb2l6ZWRNb25pdG9yZWRQb2ludHMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBtb25pdG9yZWRQb2ludHMgPSBmaWx0ZXJQb2ludHMocG9pbnRzLCB7IG9ubHlNb25pdG9yZWQ6IHRydWUgfSk7XG5cbiAgICByZW5kZXJQb2ludE1hcmtlcnMoW10sIG1hcFJlZiwge30pO1xuICAgIHJldHVybiByZW5kZXJQb2ludE1hcmtlcnMobW9uaXRvcmVkUG9pbnRzLCBtYXBSZWYsIHtcbiAgICAgIGluY2x1ZGVVbm1vbml0b3JlZFBvaW50czogdHJ1ZSxcbiAgICAgIHJlcmVuZGVyOiB6b29tTGV2ZWxzW21hcFpvb21MZXZlbF0sXG4gICAgICBmYWN0b3JpZXNHcm91cDogbW9uaXRvcmVkRmFjdG9yaWVzR3JvdXAsXG4gICAgICB3d3Rwc0dyb3VwOiB3d3Rwc0xheWVyR3JvdXAsXG4gICAgICBjb2xsZWN0b3JzR3JvdXA6IGNvbGxlY3RvcnNMYXllckdyb3VwLFxuICAgICAgZm9yRXZlbnRzVmlldzogZm9yRXZlbnRzVmlldyxcbiAgICB9KTtcbiAgfSwgW3BvaW50cywgbWFwWm9vbUxldmVsLCBvbmx5V2l0aFNhbXBsZXJQb2ludHNdKTtcblxuICBjb25zdCBtZW1vaXplZFVubW9uaXRvcmVkUG9pbnRzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgdW5tb25pdG9yZWRQb2ludHMgPSBmaWx0ZXJQb2ludHMocG9pbnRzLCB7IG9ubHlNb25pdG9yZWQ6IGZhbHNlIH0pO1xuICAgIHJldHVybiByZW5kZXJQb2ludE1hcmtlcnModW5tb25pdG9yZWRQb2ludHMsIG1hcFJlZiwge1xuICAgICAgaW5jbHVkZVVubW9uaXRvcmVkUG9pbnRzOiB0cnVlLFxuICAgICAgcmVyZW5kZXI6IHpvb21MZXZlbHNbbWFwWm9vbUxldmVsXSxcbiAgICAgIGZhY3Rvcmllc0dyb3VwOiB1bm1vbml0b3JlZEZhY3Rvcmllc0dyb3VwLFxuICAgICAgd3d0cHNHcm91cDogd3d0cHNMYXllckdyb3VwLFxuICAgICAgY29sbGVjdG9yc0dyb3VwOiBjb2xsZWN0b3JzTGF5ZXJHcm91cCxcbiAgICAgIGZvckV2ZW50c1ZpZXc6IGZvckV2ZW50c1ZpZXcsXG4gICAgfSk7XG4gIH0sIFtwb2ludHMsIG1hcFpvb21MZXZlbF0pO1xuXG4gIGNvbnN0IHJlbmRlckVkZ2VzID0gKGZpbHRlcmVkRWRnZXMsIG1hcFJlZiwgZWRnZXNDaGVja2JveCwgcHJvcHMpID0+XG4gICAgbWFwUmVmLmN1cnJlbnQgIT09IG51bGwgJiZcbiAgICBlZGdlc0NoZWNrYm94ICYmIChcbiAgICAgIDxFZGdlcyBlZGdlcz17ZmlsdGVyZWRFZGdlc30gbWFwPXttYXBSZWYuY3VycmVudH0gey4uLnByb3BzfSAvPlxuICAgICk7XG5cbiAgY29uc3QgbWVtb2l6ZWRFZGdlcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IG1vbml0b3JlZEVkZ2VzID0gZmlsdGVyRWRnZXMoZWRnZXMsIHBvaW50cywgdHJ1ZSk7XG4gICAgcmV0dXJuIHJlbmRlckVkZ2VzKG1vbml0b3JlZEVkZ2VzLCBtYXBSZWYsIGVkZ2VzQ2hlY2tib3gsIHtcbiAgICAgIEwsXG4gICAgICBwb2ludHMsXG4gICAgICBoaWRlRWRnZXM6IGZhbHNlLFxuICAgICAgaGlkZUFycm93czogdHJ1ZSxcbiAgICAgIGFsbG93VW5tb25pdG9yZWREZXNjZW5kYW50czogaW5jbHVkZVVubW9uaXRvcmVkRGVzY2VuZGFudHNGb3JFZGdlcyxcbiAgICAgIGdyb3VwOiBtb25pdG9yZWRFZGdlc0dyb3VwLFxuICAgIH0pO1xuICB9LCBbcG9pbnRzLCBlZGdlc0NoZWNrYm94LCBtYXBab29tTGV2ZWxdKTtcblxuICBjb25zdCBtZW1vaXplZFVubW9uaXRvcmVkRWRnZXMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAob25seU1vbml0b3JlZFBvaW50cyB8fCBvbmx5V2l0aFNhbXBsZXJQb2ludHMpIHJldHVybiBudWxsO1xuXG4gICAgY29uc3QgdW5tb25pdG9yZWRFZGdlcyA9IGZpbHRlckVkZ2VzKGVkZ2VzLCBwb2ludHMsIGZhbHNlKTtcbiAgICByZXR1cm4gcmVuZGVyRWRnZXModW5tb25pdG9yZWRFZGdlcywgbWFwUmVmLCBlZGdlc0NoZWNrYm94LCB7XG4gICAgICBMLFxuICAgICAgcG9pbnRzLFxuICAgICAgaGlkZUVkZ2VzOiBmYWxzZSxcbiAgICAgIGhpZGVBcnJvd3M6IHRydWUsXG4gICAgICBhbGxvd1VubW9uaXRvcmVkRGVzY2VuZGFudHM6IGluY2x1ZGVVbm1vbml0b3JlZERlc2NlbmRhbnRzRm9yRWRnZXMsXG4gICAgICBncm91cDogdW5tb25pdG9yZWRFZGdlc0dyb3VwLFxuICAgIH0pO1xuICB9LCBbcG9pbnRzLCBlZGdlc0NoZWNrYm94LCBtYXBab29tTGV2ZWxdKTtcblxuICBjb25zdCBoYW5kbGVFZGdlc0NoZWNrYm94Q2hhbmdlID0gKGlzQ2hlY2tlZCkgPT4ge1xuICAgIHNldEVkZ2VzQ2hlY2tib3goaXNDaGVja2VkKTtcbiAgfTtcblxuICAvLyBUaGlzIHZhcmlhYmxlIHN0b3JlcyB0aGUgem9vbSBsZXZlbHMgdGhlIGVkZ2VzIGFyZSBkaXNwbGF5ZWRcbiAgLy8gSXQgaXMgdXNlZCBpbiB0d28gcGxhY2VzIGluIHRoZSBjb2RlLCBzbyBpdCBpcyBiZXR0ZXIgdG8gc3RvcmUgaXQgaW4gb25lIHBsYWNlXG4gIGNvbnN0IGVkZ2VzWm9vbUxldmVscyA9IFsnU21hbGwnLCAnTWVkaXVtJywgJ01MYXJnZScsICdMYXJnZSddO1xuXG4gIGNvbnN0IGhhbmRsZVBvaW50c0NoZWNrYm94Q2hhbmdlID0gKGlzQ2hlY2tlZCkgPT4ge1xuICAgIHNldE9ubHlNb25pdG9yZWRQb2ludHMoaXNDaGVja2VkKTtcbiAgICBpZiAobWFwUmVmLmN1cnJlbnQgIT09IG51bGwpIHtcbiAgICAgIGxldCB6b29tID0gem9vbUxldmVsc1ttYXBSZWYuY3VycmVudC5nZXRab29tKCldO1xuXG4gICAgICBpZiAoaXNDaGVja2VkKSB7XG4gICAgICAgIC8vIEhpZGUgdW5tb25pdG9yZWQgcG9pbnRzIHdoZW4gXCJzaG93IG9ubHkgbW9uaXRvcmVkXCIgaXMgY2hlY2tlZFxuICAgICAgICBmYWN0b3JpZXNQYXJlbnRHcm91cC5yZW1vdmVMYXllcih1bm1vbml0b3JlZEZhY3Rvcmllc0dyb3VwKTtcbiAgICAgICAgdW5tb25pdG9yZWRFZGdlc0dyb3VwLnJlbW92ZUZyb20obWFwUmVmLmN1cnJlbnQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gU2hvdyBhbGwgcG9pbnRzIHdoZW4gXCJzaG93IG9ubHkgbW9uaXRvcmVkXCIgaXMgdW5jaGVja2VkXG4gICAgICAgIGZhY3Rvcmllc1BhcmVudEdyb3VwLmFkZExheWVyKHVubW9uaXRvcmVkRmFjdG9yaWVzR3JvdXApO1xuXG4gICAgICAgIC8vIFNob3cgdW5tb25pdG9yZWQgZWRnZXMgaWYgYXQgYXBwcm9wcmlhdGUgem9vbSBsZXZlbFxuICAgICAgICBpZiAoZWRnZXNDaGVja2JveFJlZi5jdXJyZW50ICYmIGVkZ2VzWm9vbUxldmVscy5pbmNsdWRlcyh6b29tKSkge1xuICAgICAgICAgIHVubW9uaXRvcmVkRWRnZXNHcm91cC5hZGRUbyhtYXBSZWYuY3VycmVudCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlUG9pbnRzV2l0aFNhbXBsZXJDaGVja2JveENoYW5nZSA9IChpc0NoZWNrZWQpID0+IHtcbiAgICBzZXRPbmx5V2l0aFNhbXBsZXJQb2ludHMoaXNDaGVja2VkKTtcblxuICAgIGNvbnN0IHJlbW92ZVBvaW50c1dpdGhOb1NhbXBsZXIgPSAoZ3JvdXApID0+IHtcbiAgICAgIGdyb3VwLmVhY2hMYXllcigobGF5ZXIpID0+IHtcbiAgICAgICAgaWYgKGxheWVyWydrYW5kb19oYXNfc2FtcGxlciddID09PSBmYWxzZSkge1xuICAgICAgICAgIGdyb3VwLnJlbW92ZUxheWVyKGxheWVyKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIGlmIChtYXBSZWYuY3VycmVudCAhPT0gbnVsbCkge1xuICAgICAgaWYgKGlzQ2hlY2tlZCkge1xuICAgICAgICBmYWN0b3JpZXNQYXJlbnRHcm91cC5yZW1vdmVMYXllcih1bm1vbml0b3JlZEZhY3Rvcmllc0dyb3VwKTtcbiAgICAgICAgdW5tb25pdG9yZWRFZGdlc0dyb3VwLnJlbW92ZUZyb20obWFwUmVmLmN1cnJlbnQpO1xuICAgICAgICByZW1vdmVQb2ludHNXaXRoTm9TYW1wbGVyKG1vbml0b3JlZEZhY3Rvcmllc0dyb3VwKTtcbiAgICAgICAgcmVtb3ZlUG9pbnRzV2l0aE5vU2FtcGxlcih3d3Rwc0xheWVyR3JvdXApO1xuICAgICAgICByZW1vdmVQb2ludHNXaXRoTm9TYW1wbGVyKGNvbGxlY3RvcnNMYXllckdyb3VwKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldCB6b29tID0gem9vbUxldmVsc1ttYXBSZWYuY3VycmVudC5nZXRab29tKCldO1xuICAgICAgICBmYWN0b3JpZXNQYXJlbnRHcm91cC5hZGRMYXllcih1bm1vbml0b3JlZEZhY3Rvcmllc0dyb3VwKTtcblxuICAgICAgICAvLyBTaG93IHVubW9uaXRvcmVkIGVkZ2VzIGlmIGF0IGFwcHJvcHJpYXRlIHpvb20gbGV2ZWxcbiAgICAgICAgaWYgKGVkZ2VzQ2hlY2tib3hSZWYuY3VycmVudCAmJiBlZGdlc1pvb21MZXZlbHMuaW5jbHVkZXMoem9vbSkpIHtcbiAgICAgICAgICB1bm1vbml0b3JlZEVkZ2VzR3JvdXAuYWRkVG8obWFwUmVmLmN1cnJlbnQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IHRyYWNrTGF5ZXJib3ggPSAoKSA9PiB7XG4gICAgc2V0dXBDaGVja2JveExpc3RlbmVyKCcjZWRnZXMtY2hlY2tib3gnLCBoYW5kbGVFZGdlc0NoZWNrYm94Q2hhbmdlKTtcbiAgICBzZXR1cENoZWNrYm94TGlzdGVuZXIoXG4gICAgICAnI21vbml0b3JlZC1wb2ludHMtY2hlY2tib3gnLFxuICAgICAgaGFuZGxlUG9pbnRzQ2hlY2tib3hDaGFuZ2UsXG4gICAgKTtcbiAgICBzZXR1cENoZWNrYm94TGlzdGVuZXIoXG4gICAgICAnI21vbml0b3JlZC1wb2ludHMtd2l0aC1zYW1wbGVyLWNoZWNrYm94JyxcbiAgICAgIGhhbmRsZVBvaW50c1dpdGhTYW1wbGVyQ2hlY2tib3hDaGFuZ2UsXG4gICAgKTtcbiAgfTtcblxuICBjb25zdCB6b29tUnVsZXNGb3JFdmVudHNWaWV3ID0gKCkgPT4ge1xuICAgIGNvbnN0IHBheWxvYWQgPSAoXG4gICAgICA8PlxuICAgICAgICB7bWVtb2l6ZWRFZGdlc31cbiAgICAgICAge21lbW9pemVkVW5tb25pdG9yZWRFZGdlc31cbiAgICAgICAge21lbW9pemVkVW5tb25pdG9yZWRQb2ludHN9XG4gICAgICAgIHttZW1vaXplZE1vbml0b3JlZFBvaW50c31cbiAgICAgIDwvPlxuICAgICk7XG5cbiAgICByZXR1cm4gcGF5bG9hZDtcbiAgfTtcblxuICBjb25zdCB6b29tUnVsZXNGb3JEYXNoYWJvYXJkTWFwcyA9ICgpID0+IHtcbiAgICBsZXQgcGF5bG9hZCA9IChcbiAgICAgIDw+XG4gICAgICAgIHttZW1vaXplZFVubW9uaXRvcmVkUG9pbnRzfVxuICAgICAgICB7bWVtb2l6ZWRNb25pdG9yZWRQb2ludHN9XG4gICAgICA8Lz5cbiAgICApO1xuXG4gICAgaWYgKGVkZ2VzWm9vbUxldmVscy5pbmNsdWRlcyh6b29tTGV2ZWxzW21hcFpvb21MZXZlbF0pKSB7XG4gICAgICBwYXlsb2FkID0gem9vbVJ1bGVzRm9yRXZlbnRzVmlldygpO1xuICAgIH1cblxuICAgIHJldHVybiBwYXlsb2FkO1xuICB9O1xuXG4gIGNvbnN0IG1lbW9pemVkWm9vbUNvbnRyb2wgPSAoKSA9PiB7XG4gICAgY29uc3QgcGF5bG9hZCA9IGZvckV2ZW50c1ZpZXdcbiAgICAgID8gem9vbVJ1bGVzRm9yRXZlbnRzVmlldygpXG4gICAgICA6IHpvb21SdWxlc0ZvckRhc2hhYm9hcmRNYXBzKCk7XG4gICAgcmV0dXJuIHBheWxvYWQ7XG4gIH07XG5cbiAgY29uc3QgbWVtb2l6ZWRFdmVudCA9ICgpID0+IHtcbiAgICBpZiAoZm9jdXNlZEV2ZW50UHJlc2VudCkge1xuICAgICAgZm9jdXNlZEV2ZW50IS5mb2N1c2VkID0gZm9jdXNlZEV2ZW50UHJlc2VudDtcbiAgICAgIGZvY3VzZWRFdmVudCEuaG92ZXJlZCA9ICFmb2N1c2VkRXZlbnRQcmVzZW50O1xuICAgIH1cblxuICAgIGlmIChob3ZlcmVkRXZlbnRQcmVzZW50KSB7XG4gICAgICBob3ZlcmVkRXZlbnQhLmhvdmVyZWQgPSBob3ZlcmVkRXZlbnRQcmVzZW50O1xuICAgICAgaG92ZXJlZEV2ZW50IS5mb2N1c2VkID0gIWhvdmVyZWRFdmVudFByZXNlbnQ7XG4gICAgfVxuXG4gICAgaWYgKCFob3ZlcmVkRXZlbnRQcmVzZW50ICYmICFmb2N1c2VkRXZlbnRQcmVzZW50KSByZXR1cm4gPD48Lz47XG4gICAgcmV0dXJuIChcbiAgICAgIDxFdmVudFxuICAgICAgICBldmVudD17Zm9jdXNlZEV2ZW50ISB8fCBob3ZlcmVkRXZlbnQhfVxuICAgICAgICBtYXA9e21hcH1cbiAgICAgICAgZWRnZXM9e2VkZ2VzIX1cbiAgICAgICAgcG9pbnRzPXtwb2ludHMhfVxuICAgICAgICBpbmNsdWRlTmV0d29yaz17IWhvdmVyZWRFdmVudFByZXNlbnR9XG4gICAgICAvPlxuICAgICk7XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBlZGdlc0NoZWNrYm94UmVmLmN1cnJlbnQgPSBlZGdlc0NoZWNrYm94O1xuICB9LCBbZWRnZXNDaGVja2JveF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIGNsZWFudXAoKSB7XG4gICAgICBjb2xsZWN0b3JzTGF5ZXJHcm91cC5jbGVhckxheWVycygpO1xuICAgICAgbWFwUmVmLmN1cnJlbnQ/LnJlbW92ZUxheWVyKGNvbGxlY3RvcnNMYXllckdyb3VwKTtcbiAgICB9O1xuICB9LCBbZm9jdXNlZEV2ZW50LCBob3ZlcmVkRXZlbnQsIGdsb2JhbF9kYXRhLmV2ZW50RmlsdGVyUGFyYW1dKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJldHVybiBmdW5jdGlvbiBjbGVhbnVwKCkge1xuICAgICAgaWYgKGZvckV2ZW50c1ZpZXcgJiYgbWFwUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgZGlzcGF0Y2goY2xlYXJQb2ludHMoKSk7XG4gICAgICAgIGRpc3BhdGNoKGNsZWFyQXJlYXMoKSk7XG4gICAgICAgIHd3dHBzTGF5ZXJHcm91cC5jbGVhckxheWVycygpO1xuICAgICAgICBhcmVhc0xheWVyR3JvdXAuY2xlYXJMYXllcnMoKTtcbiAgICAgICAgdW5tb25pdG9yZWRGYWN0b3JpZXNHcm91cC5jbGVhckxheWVycygpO1xuICAgICAgICBtb25pdG9yZWRGYWN0b3JpZXNHcm91cC5jbGVhckxheWVycygpO1xuICAgICAgICBmYWN0b3JpZXNQYXJlbnRHcm91cC5jbGVhckxheWVycygpO1xuICAgICAgICBtb25pdG9yZWRFZGdlc0dyb3VwLmNsZWFyTGF5ZXJzKCk7XG4gICAgICAgIGNvbGxlY3RvcnNMYXllckdyb3VwLmNsZWFyTGF5ZXJzKCk7XG4gICAgICAgIHVubW9uaXRvcmVkRWRnZXNHcm91cC5jbGVhckxheWVycygpO1xuICAgICAgICBtYXBSZWYuY3VycmVudC5yZW1vdmVMYXllcih1bm1vbml0b3JlZEVkZ2VzR3JvdXApO1xuICAgICAgICBtYXBSZWYuY3VycmVudC5yZW1vdmVMYXllcihtb25pdG9yZWRFZGdlc0dyb3VwKTtcbiAgICAgICAgbWFwUmVmLmN1cnJlbnQucmVtb3ZlTGF5ZXIod3d0cHNMYXllckdyb3VwKTtcbiAgICAgICAgbWFwUmVmLmN1cnJlbnQucmVtb3ZlTGF5ZXIoY29sbGVjdG9yc0xheWVyR3JvdXApO1xuICAgICAgICBtYXBSZWYuY3VycmVudC5yZW1vdmVMYXllcihhcmVhc0xheWVyR3JvdXApO1xuICAgICAgICBtYXBSZWYuY3VycmVudC5yZW1vdmVMYXllcihmYWN0b3JpZXNQYXJlbnRHcm91cCk7XG5cbiAgICAgICAgbWFwUmVmLmN1cnJlbnQuZWFjaExheWVyKChsYXllcikgPT4ge1xuICAgICAgICAgIGlmIChsYXllciBpbnN0YW5jZW9mIEwuVGlsZUxheWVyKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIG1hcFJlZi5jdXJyZW50LnJlbW92ZUxheWVyKGxheWVyKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfTtcbiAgfSwgW2dsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWRdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghbWFwUmVmLmN1cnJlbnQpIHtcbiAgICAgIGluaXRpYWxpemVNYXAoXG4gICAgICAgIG1hcFpvb21MZXZlbCxcbiAgICAgICAgbWFwQm94U3R5bGUsXG4gICAgICAgIGxlYWZsZXRNYXAuc2F0ZWxsaXRlLFxuICAgICAgICBtYXBSZWYsXG4gICAgICAgIGRpc3BhdGNoLFxuICAgICAgICBpc1ZhbGlkQXJlYSxcbiAgICAgICAgYXJlYVRvQ2VudGVyQnksXG4gICAgICAgIHNldE1hcFpvb21MZXZlbCxcbiAgICAgICAgZm9yV1dUUERhc2hib2FyZCxcbiAgICAgICAgdHJ1ZSxcbiAgICAgICAgZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZCxcbiAgICAgICk7XG5cbiAgICAgIC8vIEluaXRpYWxpemUgcGFyZW50IGZhY3RvcnkgZ3JvdXBcbiAgICAgIGlmIChtYXBSZWYuY3VycmVudCkge1xuICAgICAgICBmYWN0b3JpZXNQYXJlbnRHcm91cC5hZGRUbyhtYXBSZWYuY3VycmVudCk7XG4gICAgICAgIGZhY3Rvcmllc1BhcmVudEdyb3VwLmFkZExheWVyKG1vbml0b3JlZEZhY3Rvcmllc0dyb3VwKTtcbiAgICAgICAgZmFjdG9yaWVzUGFyZW50R3JvdXAuYWRkTGF5ZXIodW5tb25pdG9yZWRGYWN0b3JpZXNHcm91cCk7XG4gICAgICB9XG5cbiAgICAgIHRyYWNrTGF5ZXJib3goKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0TWFwWm9vbUxldmVsKG1hcFJlZi5jdXJyZW50LmdldFpvb20oKSk7XG4gICAgICBpZiAoIWFyZWFUb0NlbnRlckJ5KSB7XG4gICAgICAgIGFyZWFUb0NlbnRlckJ5ID0gYXJlYXMubWFwKChhcmVhKSA9PiBhcmVhLnNoYXBlX2RhdGEpLmZsYXQoKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFmb3JFdmVudHNWaWV3IHx8ICFmb2N1c2VkRXZlbnQpIHtcbiAgICAgICAgYXJlYUZvY3VzTG9naWMobWFwUmVmLCBpc1ZhbGlkQXJlYSwgYXJlYVRvQ2VudGVyQnkpO1xuICAgICAgfVxuICAgIH1cbiAgfSwgW2FyZWFUb0NlbnRlckJ5XSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBsZXQgY2xpY2tlZCA9IGZhbHNlO1xuXG4gICAgbWFwUmVmLmN1cnJlbnQ/LmVhY2hMYXllcigobGF5ZXIpID0+IHtcbiAgICAgIGlmIChjbGlja2VkKSByZXR1cm47XG5cbiAgICAgIGlmIChcbiAgICAgICAgbGF5ZXI/LmthbmRvX29iamVjdF9pZCA9PT0gc2VsZWN0ZWRJdGVtICYmXG4gICAgICAgIGxheWVyLmlzUG9wdXBPcGVuKCkgPT09IGZhbHNlXG4gICAgICApIHtcbiAgICAgICAgaWYgKGxheWVyIGluc3RhbmNlb2YgTC5NYXJrZXIpIHtcbiAgICAgICAgICBsYXllci5maXJlKCdjbGljaycpO1xuICAgICAgICB9IGVsc2UgaWYgKGxheWVyIGluc3RhbmNlb2YgTC5Qb2x5Z29uKSB7XG4gICAgICAgICAgbGF5ZXIuZmlyZSgnY2xpY2stZXZlbnQnKTtcbiAgICAgICAgfVxuICAgICAgICBjbGlja2VkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSwgW3NlbGVjdGVkSXRlbV0pO1xuXG4gIGNvbnN0IHJlbmRlckFyZWFzID0gKCkgPT4ge1xuICAgIGlmICghc2hvdWxkTG9hZE1hcE9iamVjdHMoZ2xvYmFsX2RhdGEsIG1hcFJlZiwgZWRnZXMsIHBvaW50cykpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8QXJlYVBvbHlnb25zXG4gICAgICAgIGFyZWFzPXthcmVhc31cbiAgICAgICAgbWFwPXttYXBSZWYuY3VycmVudH1cbiAgICAgICAgTD17TH1cbiAgICAgICAgYXJlYVRvQ2VudGVyQnk9e2FyZWFUb0NlbnRlckJ5fVxuICAgICAgICBtYXBab29tPXttYXBab29tTGV2ZWx9XG4gICAgICAgIGdsb2JhbF9kYXRhPXtnbG9iYWxfZGF0YX1cbiAgICAgICAgZmVhdHVyZUdyb3VwPXthcmVhc0xheWVyR3JvdXB9XG4gICAgICAvPlxuICAgICk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImtkLW1hcC1jb250YWluZXJcIiBzdHlsZT17c3R5bGV9PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzc05hbWU9e2AgbWFwLWNvbnRhaW5lciAke1xuICAgICAgICAgIGdsb2JhbF9kYXRhLnNpZGVuYXZFeHBhbmRlZCA/ICcnIDogJ21hcC1jb250YWluZXItLXNpZGVuYXYtY29sbGFwc2VkJ1xuICAgICAgICB9YH1cbiAgICAgID5cbiAgICAgICAgPEVycm9yQm91bmRhcnk+XG4gICAgICAgICAgPGRpdiBpZD1cIm1hcFwiPjwvZGl2PlxuICAgICAgICAgIHtyZW5kZXJBcmVhcygpfVxuICAgICAgICAgIHtzaG91ZExvYWREZXBlbmRlbnRNYXBPYmplY3RzKFxuICAgICAgICAgICAgZWRnZXMsXG4gICAgICAgICAgICBhcmVhcyxcbiAgICAgICAgICAgIGdsb2JhbF9kYXRhLFxuICAgICAgICAgICAgbWFwUmVmLFxuICAgICAgICAgICAgcG9pbnRzLFxuICAgICAgICAgICkgJiYgKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAge21lbW9pemVkRXZlbnQoKX1cbiAgICAgICAgICAgICAge21lbW9pemVkWm9vbUNvbnRyb2woKX1cbiAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9FcnJvckJvdW5kYXJ5PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFDQSxJQUFBQSxDQUFBLEdB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
@@ -41,7 +41,6 @@ var shouldLoadMapObjects = function shouldLoadMapObjects(global_data, mapRef, po
41
41
  };
42
42
  exports.shouldLoadMapObjects = shouldLoadMapObjects;
43
43
  var shoudLoadDependentMapObjects = function shoudLoadDependentMapObjects(edges, areas, global, mapRef, points) {
44
- console.warn('shoudLoadDependentMapObjects - return', global.map !== undefined && mapRef.current !== null && edges.length >= 0 && areas.length >= 0 && points.length >= 0);
45
44
  return global.map !== undefined && mapRef.current !== null && edges.length >= 0 && areas.length >= 0 && points.length >= 0;
46
45
  };
47
46
  exports.shoudLoadDependentMapObjects = shoudLoadDependentMapObjects;
@@ -386,14 +385,14 @@ var zoomLevels = {
386
385
  exports.zoomLevels = zoomLevels;
387
386
  var filterPoints = function filterPoints() {
388
387
  var points = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
389
- var _ref2 = arguments.length > 1 ? arguments[1] : undefined,
390
- _ref2$onlyMonitored = _ref2.onlyMonitored,
391
- onlyMonitored = _ref2$onlyMonitored === void 0 ? false : _ref2$onlyMonitored,
392
- _ref2$withSampler = _ref2.withSampler,
393
- withSampler = _ref2$withSampler === void 0 ? false : _ref2$withSampler;
388
+ var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
389
+ onlyMonitored = _ref2.onlyMonitored,
390
+ withSampler = _ref2.withSampler;
394
391
  return points.filter(function (point) {
395
- if (onlyMonitored && !point.has_device) return false;
396
- if (withSampler && !point.has_sampler) return false;
392
+ if (onlyMonitored === true && !point.has_device) return false;
393
+ if (onlyMonitored === false && point.has_device) return false;
394
+ if (withSampler === true && !point.has_sampler) return false;
395
+ if (withSampler === false && point.has_sampler) return false;
397
396
  return true;
398
397
  });
399
398
  };
@@ -424,4 +423,4 @@ var setupCheckboxListener = function setupCheckboxListener(selector, onChange) {
424
423
  });
425
424
  };
426
425
  exports.setupCheckboxListener = setupCheckboxListener;
427
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbGVhZmxldCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2FjdGlvbnMiLCJfaTE4biIsIl9XV1RQRGFzaGJvYXJkU2xpY2UiLCJhcmVhRm9jdXNMb2dpYyIsIm1hcFJlZiIsImlzVmFsaWRBcmVhIiwiYXJlYVRvQ2VudGVyQnkiLCJtYXBJbnN0YW5jZSIsImN1cnJlbnQiLCJmaXRCb3VuZHMiLCJwYWRkaW5nIiwiZ3JvdXAiLCJwcm9wZXJ0eSIsIl9sYXllcnMiLCJrYW5kb19vYmplY3QiLCJwdXNoIiwiT2JqZWN0Iiwia2V5cyIsIkwiLCJmZWF0dXJlR3JvdXAiLCJnZXRCb3VuZHMiLCJsZW5ndGgiLCJleHBvcnRzIiwiYXJlYSIsInNob3VsZExvYWRNYXBPYmplY3RzIiwiZ2xvYmFsX2RhdGEiLCJwb2ludHMiLCJlZGdlcyIsIm1hcCIsInVuZGVmaW5lZCIsInNob3VkTG9hZERlcGVuZGVudE1hcE9iamVjdHMiLCJhcmVhcyIsImdsb2JhbCIsImNvbnNvbGUiLCJ3YXJuIiwiZmluZFNwZWNpZmljTGF5ZXJzRnJvbU1hcCIsImxheWVyc1RvRmluZCIsImN1cnJlbnRMYXllciIsImluY2x1ZGVzIiwia2FuZG9fcG9pbnRfdHlwZSIsImV2ZW50c0NvdW50ZXJJY29ucyIsImxheWVyIiwiem9vbUxldmVsIiwiaWNvbiIsIm9wdGlvbnMiLCJpY29uU2l6ZSIsImV2ZW50c0NvdW50SWNvbiIsImljb25BbmNob3IiLCJzZXRJY29uIiwic2V0T3BhY2l0eSIsIm11bHRpcGxlTGF5ZXJlZEljb25zIiwiaXNBRmV3TGF5ZXJJY29uIiwia2FuZG9fZmV3X2xheWVyX2ljb24iLCJtaW5pSWNvbiIsInByZXNlbnQiLCJrYW5kb19zZWNvbmRhcnkiLCJrYW5kb190aGlyZCIsInNlY29uZGFyeSIsInRoaXJkIiwia2FuZG9faW5kZXhfb2JqZWN0IiwiYnViYmxlSWNvbk9wdGlvbnMiLCJvbmVMYXllckljb25PcHRpb25zIiwibWlkZGxlSWNvbk9wdGlvbnMiLCJ0b3BJY29uT3B0aW9ucyIsImljb25ab29tQ29udHJvbCIsImxheWVycyIsIl96b29tIiwibWFwU3R5bGUiLCJtYXBCb3hTdHlsZSIsInRpbGVMYXllciIsImNvbmNhdCIsImF0dHJpYnV0aW9uIiwibWF4Wm9vbSIsIm1pblpvb20iLCJpZCIsInRpbGVTaXplIiwiem9vbU9mZnNldCIsInVwZGF0ZVdoZW5ab29taW5nIiwidXBkYXRlV2hlbklkbGUiLCJiYXNlTWFwcyIsIm1hcEJveFNhdGVsbGl0ZVN0eWxlIiwiX3JlZiIsImRlZmF1bHRNYXAiLCJpMThuIiwidCIsInNhdGVsbGl0ZSIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJkZWZhdWx0IiwidG9nZ2xlRWRnZXNWaXNpYmlsaXR5IiwidmlzaWJsZSIsImVhY2hMYXllciIsIlBvbHlsaW5lIiwiU3ltYm9sIiwiYXJyb3dIZWFkIiwic2V0U3R5bGUiLCJvcGFjaXR5IiwiZWRnZXNTcGVjaWZpY0xvZ2ljIiwiZGVmYXVsdE9uIiwiY2hlY2tib3giLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3IiLCJjaGVja2VkIiwiY3VzdG9tQ29udHJvbHMiLCJsYWJlbCIsImlucHV0VHlwZSIsImRlbnlGb3JXYSIsIm9uQ2hhbmdlIiwiaXNDaGVja2VkIiwiYXBwZW5kQ3VzdG9tQ2hlY2tib3hUb0xlYWZsZXRzTGF5ZXJCb3giLCJsZWFmbGV0c0NvbnRhaW5lciIsImN1c3RvbUNvbnRhaW5lciIsIkRvbUV2ZW50Iiwib24iLCJzdHlsZSIsImRpc3BsYXkiLCJjcmVhdGVDdXN0b21Db250cm9sIiwiY29udHJvbCIsImNvbnRhaW5lciIsImNvbnRyb2xDb250YWluZXIiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwiaW5uZXJIVE1MIiwiYWRkRXZlbnRMaXN0ZW5lciIsImUiLCJ0YXJnZXQiLCJhcHBlbmRDaGlsZCIsImN1c3RvbUZ1bmN0aW9uYWxpdHlGb3JNYXBMYXllcnMiLCJtYXBUeXBlcyIsImFyZ3VtZW50cyIsIndhSWQiLCJmb3JXV1RQRGFzaGJvYXJkIiwiY29udHJvbGxlciIsInBvc2l0aW9uIiwiYWRkVG8iLCJnZXRDb250YWluZXIiLCJmb3JFYWNoIiwiaW5pdGlhbGl6ZU1hcCIsIm1hcFpvb21MZXZlbCIsImRpc3BhdGNoIiwic2V0TWFwWm9vbUxldmVsIiwic2hvd0VkZ2VzQnlEZWZhdWx0IiwiTWFwIiwiY2VudGVyIiwiem9vbVNuYXAiLCJ6b29tIiwiYXR0cmlidXRpb25Db250cm9sIiwicHJlZmVyQ2FudmFzIiwic2V0TWFwIiwid2hlblJlYWR5IiwidmFsdWVzIiwic2V0VGltZW91dCIsImludmFsaWRhdGVTaXplIiwiZXJyIiwiZXJyb3IiLCJzdG9yZU1hcCIsInNpZGVOYXZFeHBhbmRlZCIsImV2ZW50Iiwib3JpZ2luYWxFdmVudCIsImtleSIsImNsb3NlUG9wdXAiLCJib2R5IiwiZm9jdXMiLCJnZXRab29tIiwiY2x1c3Rlckdyb3VwT3B0aW9ucyIsInNwaWRlcmZ5T25NYXhab29tIiwic2hvd0NvdmVyYWdlT25Ib3ZlciIsInpvb21Ub0JvdW5kc09uQ2xpY2siLCJhbmltYXRlIiwiZGlzYWJsZUNsdXN0ZXJpbmdBdFpvb20iLCJyZW1vdmVPdXRzaWRlVmlzaWJsZUJvdW5kcyIsImNodW5rZWRMb2FkaW5nIiwiaWNvbkNyZWF0ZUZ1bmN0aW9uIiwiY2x1c3RlciIsIkRpdkljb24iLCJodG1sIiwiX2NoaWxkQ291bnQiLCJQb2ludCIsInpvb21MZXZlbHMiLCJmaWx0ZXJQb2ludHMiLCJfcmVmMiIsIl9yZWYyJG9ubHlNb25pdG9yZWQiLCJvbmx5TW9uaXRvcmVkIiwiX3JlZjIkd2l0aFNhbXBsZXIiLCJ3aXRoU2FtcGxlciIsImZpbHRlciIsInBvaW50IiwiaGFzX2RldmljZSIsImhhc19zYW1wbGVyIiwiZmluZFBvaW50IiwicG9pbnRJZCIsImhhc0RldmljZUNoZWNrIiwiZmluZCIsImZpbHRlckVkZ2VzIiwiaXNNb25pdG9yZWQiLCJlZGdlIiwic291cmNlUG9pbnQiLCJzb3VyY2VfcG9pbnRfaWQiLCJkZXNjZW5kYW50c19oYXNfZGV2aWNlIiwicGFyZW50UG9pbnQiLCJ0YXJnZXRfcG9pbnRfaWQiLCJzZXR1cENoZWNrYm94TGlzdGVuZXIiLCJzZWxlY3RvciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9NYXBVdGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTCwgeyBQb2ludFR1cGxlIH0gZnJvbSAnbGVhZmxldCc7XG5pbXBvcnQgeyBzaWRlTmF2RXhwYW5kZWQsIHN0b3JlTWFwIH0gZnJvbSAnLi4vLi4vc3RvcmUvZ2xvYmFsL2FjdGlvbnMnO1xuaW1wb3J0IGkxOG4gZnJvbSAnc3JjL3V0aWxpdGllcy9pMThuJztcbmltcG9ydCB7IHNldE1hcCB9IGZyb20gJy4uLy4uL3N0b3JlL1dXVFBEYXNoYm9hcmQvV1dUUERhc2hib2FyZFNsaWNlJztcbmltcG9ydCB7IElQb2ludCB9IGZyb20gJ3NyYy9zdG9yZS9wb2ludHMvbW9kZWxzL0lQb2ludCc7XG5cbmV4cG9ydCBjb25zdCBhcmVhRm9jdXNMb2dpYyA9IChtYXBSZWYsIGlzVmFsaWRBcmVhLCBhcmVhVG9DZW50ZXJCeSkgPT4ge1xuICBsZXQgbWFwSW5zdGFuY2U6IGFueSA9IG1hcFJlZi5jdXJyZW50O1xuICBpZiAoaXNWYWxpZEFyZWEoYXJlYVRvQ2VudGVyQnkpKSB7XG4gICAgbWFwSW5zdGFuY2UuZml0Qm91bmRzKGFyZWFUb0NlbnRlckJ5LCB7IHBhZGRpbmc6IFswLCAwXSB9KTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBncm91cDogYW55W10gPSBbXTtcblxuICAgIGZvciAoY29uc3QgcHJvcGVydHkgaW4gbWFwSW5zdGFuY2UuX2xheWVycykge1xuICAgICAgaWYgKFxuICAgICAgICBtYXBJbnN0YW5jZS5fbGF5ZXJzW3Byb3BlcnR5XS5rYW5kb19vYmplY3QgPT09ICdBcmVhJyB8fFxuICAgICAgICBtYXBJbnN0YW5jZS5fbGF5ZXJzW3Byb3BlcnR5XS5rYW5kb19vYmplY3QgPT09ICdQb2ludCdcbiAgICAgICkge1xuICAgICAgICBncm91cC5wdXNoKG1hcEluc3RhbmNlLl9sYXllcnNbcHJvcGVydHldKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoT2JqZWN0LmtleXMoTC5mZWF0dXJlR3JvdXAoZ3JvdXApLmdldEJvdW5kcygpKS5sZW5ndGggIT09IDApIHtcbiAgICAgIG1hcEluc3RhbmNlLmZpdEJvdW5kcyhMLmZlYXR1cmVHcm91cChncm91cCkuZ2V0Qm91bmRzKCksIHtcbiAgICAgICAgcGFkZGluZzogWzEwMCwgMTAwXSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICAvLyBtYXBJbnN0YW5jZS5pbnZhbGlkYXRlU2l6ZSh0cnVlKTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc1ZhbGlkQXJlYSA9IChhcmVhKSA9PiB7XG4gIHJldHVybiBhcmVhICYmIGFyZWEubGVuZ3RoID4gMCAmJiBPYmplY3Qua2V5cyhhcmVhWzBdKS5sZW5ndGggPiAwO1xufTtcblxuZXhwb3J0IGNvbnN0IHNob3VsZExvYWRNYXBPYmplY3RzID0gKGdsb2JhbF9kYXRhLCBtYXBSZWYsIHBvaW50cywgZWRnZXMpID0+IHtcbiAgcmV0dXJuIChcbiAgICBnbG9iYWxfZGF0YS5tYXAgIT09IHVuZGVmaW5lZCAmJlxuICAgIG1hcFJlZi5jdXJyZW50ICE9PSBudWxsICYmXG4gICAgZWRnZXMgIT09IHVuZGVmaW5lZCAmJlxuICAgIHBvaW50cyAhPT0gdW5kZWZpbmVkXG4gICk7XG59O1xuXG5leHBvcnQgY29uc3Qgc2hvdWRMb2FkRGVwZW5kZW50TWFwT2JqZWN0cyA9IChcbiAgZWRnZXMsXG4gIGFyZWFzLFxuICBnbG9iYWwsXG4gIG1hcFJlZixcbiAgcG9pbnRzLFxuKSA9PiB7XG4gIGNvbnNvbGUud2FybihcbiAgICAnc2hvdWRMb2FkRGVwZW5kZW50TWFwT2JqZWN0cyAtIHJldHVybicsXG4gICAgZ2xvYmFsLm1hcCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICBtYXBSZWYuY3VycmVudCAhPT0gbnVsbCAmJlxuICAgICAgZWRnZXMubGVuZ3RoID49IDAgJiZcbiAgICAgIGFyZWFzLmxlbmd0aCA+PSAwICYmXG4gICAgICBwb2ludHMubGVuZ3RoID49IDAsXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICBnbG9iYWwubWFwICE9PSB1bmRlZmluZWQgJiZcbiAgICBtYXBSZWYuY3VycmVudCAhPT0gbnVsbCAmJlxuICAgIGVkZ2VzLmxlbmd0aCA+PSAwICYmXG4gICAgYXJlYXMubGVuZ3RoID49IDAgJiZcbiAgICBwb2ludHMubGVuZ3RoID49IDBcbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBmaW5kU3BlY2lmaWNMYXllcnNGcm9tTWFwID0gKFxuICBsYXllcnNUb0ZpbmQ6IHN0cmluZ1tdLFxuICBjdXJyZW50TGF5ZXIsXG4pID0+IHtcbiAgcmV0dXJuIChcbiAgICBsYXllcnNUb0ZpbmQuaW5jbHVkZXMoY3VycmVudExheWVyLmthbmRvX29iamVjdCkgJiZcbiAgICBjdXJyZW50TGF5ZXIua2FuZG9fcG9pbnRfdHlwZSAhPT0gJ01hbmhvbGUnXG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgZXZlbnRzQ291bnRlckljb25zID0gKGxheWVyLCB6b29tTGV2ZWwpID0+IHtcbiAgbGV0IGljb24gPSBsYXllci5vcHRpb25zLmljb247XG4gIGljb24ub3B0aW9ucy5pY29uU2l6ZSA9IGV2ZW50c0NvdW50SWNvbih6b29tTGV2ZWwpLmljb25TaXplO1xuICBpY29uLm9wdGlvbnMuaWNvbkFuY2hvciA9IGV2ZW50c0NvdW50SWNvbih6b29tTGV2ZWwpLmljb25BbmNob3I7XG4gIGxheWVyLnNldEljb24oaWNvbik7XG4gIGxheWVyLnNldE9wYWNpdHkoMSk7XG59O1xuXG5leHBvcnQgY29uc3QgbXVsdGlwbGVMYXllcmVkSWNvbnMgPSAobGF5ZXIsIHpvb21MZXZlbCkgPT4ge1xuICBsZXQgaWNvbiA9IGxheWVyLm9wdGlvbnMuaWNvbjtcbiAgbGV0IGlzQUZld0xheWVySWNvbiA9IGxheWVyLmthbmRvX2Zld19sYXllcl9pY29uO1xuICBsZXQgbWluaUljb24gPSB7XG4gICAgcHJlc2VudDogbGF5ZXIua2FuZG9fc2Vjb25kYXJ5IHx8IGxheWVyLmthbmRvX3RoaXJkLFxuICAgIHNlY29uZGFyeTogbGF5ZXIua2FuZG9fc2Vjb25kYXJ5LFxuICAgIHRoaXJkOiBsYXllci5rYW5kb190aGlyZCxcbiAgfTtcblxuICBpZiAobGF5ZXIua2FuZG9faW5kZXhfb2JqZWN0ID09PSAwKSB7XG4gICAgaWYgKGlzQUZld0xheWVySWNvbikge1xuICAgICAgaWNvbi5vcHRpb25zLmljb25TaXplID0gYnViYmxlSWNvbk9wdGlvbnMoem9vbUxldmVsLCBtaW5pSWNvbikuaWNvblNpemU7XG4gICAgICBpY29uLm9wdGlvbnMuaWNvbkFuY2hvciA9IGJ1YmJsZUljb25PcHRpb25zKFxuICAgICAgICB6b29tTGV2ZWwsXG4gICAgICAgIG1pbmlJY29uLFxuICAgICAgKS5pY29uQW5jaG9yO1xuICAgIH0gZWxzZSB7XG4gICAgICBpY29uLm9wdGlvbnMuaWNvblNpemUgPSBvbmVMYXllckljb25PcHRpb25zKHpvb21MZXZlbCkuaWNvblNpemU7XG4gICAgICBpY29uLm9wdGlvbnMuaWNvbkFuY2hvciA9IG9uZUxheWVySWNvbk9wdGlvbnMoem9vbUxldmVsKS5pY29uQW5jaG9yO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBpZiAobGF5ZXIua2FuZG9faW5kZXhfb2JqZWN0ID09PSAxKSB7XG4gICAgICBpY29uLm9wdGlvbnMuaWNvblNpemUgPSBtaWRkbGVJY29uT3B0aW9ucyh6b29tTGV2ZWwsIG1pbmlJY29uKS5pY29uU2l6ZTtcbiAgICAgIGljb24ub3B0aW9ucy5pY29uQW5jaG9yID0gbWlkZGxlSWNvbk9wdGlvbnMoXG4gICAgICAgIHpvb21MZXZlbCxcbiAgICAgICAgbWluaUljb24sXG4gICAgICApLmljb25BbmNob3I7XG4gICAgfSBlbHNlIHtcbiAgICAgIGljb24ub3B0aW9ucy5pY29uU2l6ZSA9IHRvcEljb25PcHRpb25zKHpvb21MZXZlbCwgbWluaUljb24pLmljb25TaXplO1xuICAgICAgaWNvbi5vcHRpb25zLmljb25BbmNob3IgPSB0b3BJY29uT3B0aW9ucyh6b29tTGV2ZWwsIG1pbmlJY29uKS5pY29uQW5jaG9yO1xuICAgIH1cbiAgfVxuXG4gIGxheWVyLnNldEljb24oaWNvbik7XG59O1xuXG5jb25zdCBvbmVMYXllckljb25PcHRpb25zID0gKHpvb21MZXZlbCkgPT4ge1xuICByZXR1cm4ge1xuICAgIGljb25TaXplOiBbem9vbUxldmVsICogMy4zLCB6b29tTGV2ZWwgKiAzLjNdIGFzIFBvaW50VHVwbGUsXG4gICAgaWNvbkFuY2hvcjogW3pvb21MZXZlbCAqIDEuNywgem9vbUxldmVsICogMy43XSBhcyBQb2ludFR1cGxlLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGV2ZW50c0NvdW50SWNvbiA9ICh6b29tTGV2ZWwpID0+IHtcbiAgcmV0dXJuIHtcbiAgICBpY29uU2l6ZTogW3pvb21MZXZlbCAqIDIuNSwgem9vbUxldmVsICogMi41XSBhcyBQb2ludFR1cGxlLFxuICAgIGljb25BbmNob3I6IFt6b29tTGV2ZWwgKiAwLCB6b29tTGV2ZWwgKiA0XSBhcyBQb2ludFR1cGxlLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGJ1YmJsZUljb25PcHRpb25zID0gKHpvb21MZXZlbCwgbWluaUljb24pID0+IHtcbiAgaWYgKG1pbmlJY29uLnByZXNlbnQpIHtcbiAgICBpZiAobWluaUljb24uc2Vjb25kYXJ5KSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpY29uU2l6ZTogW3pvb21MZXZlbCAqIDEuOTgsIHpvb21MZXZlbCAqIDIuM10gYXMgUG9pbnRUdXBsZSxcbiAgICAgICAgaWNvbkFuY2hvcjogW3pvb21MZXZlbCAqIDAsIHpvb21MZXZlbCAqIDRdIGFzIFBvaW50VHVwbGUsXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpY29uU2l6ZTogW3pvb21MZXZlbCAqIDEuOTgsIHpvb21MZXZlbCAqIDIuM10gYXMgUG9pbnRUdXBsZSxcbiAgICAgICAgaWNvbkFuY2hvcjogW3pvb21MZXZlbCAqIDAsIHpvb21MZXZlbCAqIDJdIGFzIFBvaW50VHVwbGUsXG4gICAgICB9O1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICByZXR1cm4ge1xuICAgICAgaWNvblNpemU6IFt6b29tTGV2ZWwgKiAzLjk4LCB6b29tTGV2ZWwgKiA0LjNdIGFzIFBvaW50VHVwbGUsXG4gICAgICBpY29uQW5jaG9yOiBbem9vbUxldmVsICogMiwgem9vbUxldmVsICogNF0gYXMgUG9pbnRUdXBsZSxcbiAgICB9O1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgbWlkZGxlSWNvbk9wdGlvbnMgPSAoem9vbUxldmVsLCBtaW5pSWNvbikgPT4ge1xuICBpZiAobWluaUljb24ucHJlc2VudCkge1xuICAgIGlmIChtaW5pSWNvbi5zZWNvbmRhcnkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGljb25TaXplOiBbem9vbUxldmVsICogMS4xLCB6b29tTGV2ZWwgKiAxLjFdLFxuICAgICAgICBpY29uQW5jaG9yOiBbem9vbUxldmVsICogLTAuNDUsIHpvb21MZXZlbCAqIDMuNV0sXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpY29uU2l6ZTogW3pvb21MZXZlbCAqIDEuMSwgem9vbUxldmVsICogMS4xXSxcbiAgICAgICAgaWNvbkFuY2hvcjogW3pvb21MZXZlbCAqIC0wLjQ1LCB6b29tTGV2ZWwgKiAxLjVdLFxuICAgICAgfTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGljb25TaXplOiBbem9vbUxldmVsICogMi41LCB6b29tTGV2ZWwgKiAyLjVdLFxuICAgICAgaWNvbkFuY2hvcjogW3pvb21MZXZlbCAqIDEuMjk1LCB6b29tTGV2ZWwgKiAzLjM1XSxcbiAgICB9O1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgdG9wSWNvbk9wdGlvbnMgPSAoem9vbUxldmVsLCBtaW5pSWNvbikgPT4ge1xuICBpZiAobWluaUljb24ucHJlc2VudCkge1xuICAgIGlmIChtaW5pSWNvbi5zZWNvbmRhcnkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGljb25TaXplOiBbem9vbUxldmVsICogMC45LCB6b29tTGV2ZWwgKiAxLjhdLFxuICAgICAgICBpY29uQW5jaG9yOiBbem9vbUxldmVsICogLTAuNSwgem9vbUxldmVsICogMy44XSxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGljb25TaXplOiBbem9vbUxldmVsICogMS42LCB6b29tTGV2ZWwgKiAyLjVdLFxuICAgICAgICBpY29uQW5jaG9yOiBbem9vbUxldmVsICogLTAuMiwgem9vbUxldmVsICogMi4xXSxcbiAgICAgIH07XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHJldHVybiB7XG4gICAgICBpY29uU2l6ZTogW3pvb21MZXZlbCAqIDMuOSwgem9vbUxldmVsICogMy44XSxcbiAgICAgIGljb25BbmNob3I6IFt6b29tTGV2ZWwgKiAyLCB6b29tTGV2ZWwgKiAzLjhdLFxuICAgIH07XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBpY29uWm9vbUNvbnRyb2wgPSAobWFwKSA9PiB7XG4gIGxldCBsYXllcnMgPSBtYXAuX2xheWVycztcbiAgbGV0IHpvb21MZXZlbCA9IG1hcC5fem9vbTtcblxuICBmb3IgKGNvbnN0IHByb3BlcnR5IGluIGxheWVycykge1xuICAgIGlmIChmaW5kU3BlY2lmaWNMYXllcnNGcm9tTWFwKFsnSWNvbk51bWJlciddLCBsYXllcnNbcHJvcGVydHldKSkge1xuICAgICAgZXZlbnRzQ291bnRlckljb25zKGxheWVyc1twcm9wZXJ0eV0sIHpvb21MZXZlbCk7XG4gICAgfVxuXG4gICAgaWYgKGZpbmRTcGVjaWZpY0xheWVyc0Zyb21NYXAoWydQb2ludCcsICdJY29uJ10sIGxheWVyc1twcm9wZXJ0eV0pKSB7XG4gICAgICBtdWx0aXBsZUxheWVyZWRJY29ucyhsYXllcnNbcHJvcGVydHldLCB6b29tTGV2ZWwpO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIGZpbmRTcGVjaWZpY0xheWVyc0Zyb21NYXAoWydTYW1wbGluZycsICdPYnNlcnZhdGlvbiddLCBsYXllcnNbcHJvcGVydHldKVxuICAgICkge1xuICAgICAgbXVsdGlwbGVMYXllcmVkSWNvbnMobGF5ZXJzW3Byb3BlcnR5XSwgem9vbUxldmVsKTtcbiAgICB9XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBtYXBTdHlsZSA9IChtYXBCb3hTdHlsZSkgPT4ge1xuICByZXR1cm4gTC50aWxlTGF5ZXIoXG4gICAgYGh0dHBzOi8vYXBpLm1hcGJveC5jb20vc3R5bGVzL3YxL25hZGF2LWthbmRvLyR7bWFwQm94U3R5bGV9L3RpbGVzLzI1Ni97en0ve3h9L3t5fUAyeD9hY2Nlc3NfdG9rZW49cGsuZXlKMUlqb2libUZrWVhZdGEyRnVaRzhpTENKaElqb2lZMnB2ZUhwcmRHUnhNSGxtZERONGJEZzBkekp4T1hjNGRTSjkuSi0yb2hxN2o0eUtOYm00Tl8tUDZxd2AsXG4gICAge1xuICAgICAgYXR0cmlidXRpb246XG4gICAgICAgICdNYXAgZGF0YSAmY29weTsgPGEgaHJlZj1cImh0dHBzOi8vd3d3Lm9wZW5zdHJlZXRtYXAub3JnL1wiPk9wZW5TdHJlZXRNYXA8L2E+IGNvbnRyaWJ1dG9ycywgPGEgaHJlZj1cImh0dHBzOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS1zYS8yLjAvXCI+Q0MtQlktU0E8L2E+LCBJbWFnZXJ5IMKpIDxhIGhyZWY9XCJodHRwczovL3d3dy5tYXBib3guY29tL1wiPk1hcGJveDwvYT4nLFxuICAgICAgbWF4Wm9vbTogMTgsXG4gICAgICBtaW5ab29tOiAyLFxuICAgICAgaWQ6ICdtYXBib3gvc3RyZWV0cy12MTEnLFxuICAgICAgdGlsZVNpemU6IDUxMixcbiAgICAgIHpvb21PZmZzZXQ6IC0xLFxuICAgICAgdXBkYXRlV2hlblpvb21pbmc6IGZhbHNlLFxuICAgICAgdXBkYXRlV2hlbklkbGU6IGZhbHNlLFxuICAgIH0sXG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgYmFzZU1hcHMgPSAobWFwQm94U3R5bGUsIG1hcEJveFNhdGVsbGl0ZVN0eWxlKSA9PiB7XG4gIGxldCBkZWZhdWx0TWFwID0gaTE4bi50KCdtYXAubGF5ZXJzLmRlZmF1bHQnKTtcbiAgbGV0IHNhdGVsbGl0ZSA9IGkxOG4udCgnbWFwLmxheWVycy5zYXRlbGxpdGUnKTtcbiAgcmV0dXJuIHtcbiAgICBbZGVmYXVsdE1hcF06IG1hcFN0eWxlKG1hcEJveFN0eWxlKSxcbiAgICBbc2F0ZWxsaXRlXTogbWFwU3R5bGUobWFwQm94U2F0ZWxsaXRlU3R5bGUpLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHRvZ2dsZUVkZ2VzVmlzaWJpbGl0eSA9ICh2aXNpYmxlLCBtYXApID0+IHtcbiAgbWFwLmVhY2hMYXllcigobGF5ZXIpID0+IHtcbiAgICBpZiAoXG4gICAgICAobGF5ZXIgaW5zdGFuY2VvZiBMLlBvbHlsaW5lICYmIGxheWVyLmthbmRvX29iamVjdCAhPT0gJ0FyZWEnKSB8fFxuICAgICAgbGF5ZXIgaW5zdGFuY2VvZiBMLlN5bWJvbC5hcnJvd0hlYWRcbiAgICApIHtcbiAgICAgIGxheWVyLnNldFN0eWxlKHsgb3BhY2l0eTogdmlzaWJsZSA/IDEgOiAwIH0pO1xuICAgIH1cbiAgfSk7XG59O1xuXG4vLyBleHBvcnQgY29uc3QgdG9nZ2xlTW9uaXRvcmVkUG9pbnRzVmlzaWJpbGl0eSA9ICh2aXNpYmxlKSA9PiB7XG4vLyAgIGNvbnNvbGUud2FybigndG9nZ2xlTW9uaXRvcmVkUG9pbnRzVmlzaWJpbGl0eScsIHZpc2libGUpO1xuLy8gfTtcblxuLy8gZXhwb3J0IGNvbnN0IHRvZ2dsZU1vbml0b3JlZFBvaW50c1dpdGhTYW1wbGVyVmlzaWJpbGl0eSA9ICh2aXNpYmxlKSA9PiB7XG4vLyAgIGNvbnNvbGUud2FybigndG9nZ2xlTW9uaXRvcmVkUG9pbnRzV2l0aFNhbXBsZXJWaXNpYmlsaXR5JywgdmlzaWJsZSk7XG4vLyB9O1xuXG5leHBvcnQgY29uc3QgZWRnZXNTcGVjaWZpY0xvZ2ljID0gKGRlZmF1bHRPbiwgbWFwKSA9PiB7XG4gIGxldCBjaGVja2JveCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNlZGdlcy1jaGVja2JveCcpO1xuICBpZiAoY2hlY2tib3ggPT0gbnVsbCkgcmV0dXJuO1xuICBjaGVja2JveC5jaGVja2VkID0gZGVmYXVsdE9uO1xufTtcblxuY29uc3QgY3VzdG9tQ29udHJvbHMgPSAobWFwKSA9PiB7XG4gIHJldHVybiBbXG4gICAge1xuICAgICAgbGFiZWw6IGkxOG4udCgnbWFwLmxheWVycy5uZXR3b3JrX2xpbmVzJyksXG4gICAgICBpZDogJ2VkZ2VzLWNoZWNrYm94JyxcbiAgICAgIGlucHV0VHlwZTogJ2NoZWNrYm94JyxcbiAgICAgIGRlbnlGb3JXYTogWzUxOF0sXG4gICAgICBvbkNoYW5nZTogKGlzQ2hlY2tlZCkgPT4gdG9nZ2xlRWRnZXNWaXNpYmlsaXR5KGlzQ2hlY2tlZCwgbWFwKSxcbiAgICB9LFxuXG4gICAge1xuICAgICAgbGFiZWw6ICdTaG93IG9ubHkgbW9uaXRvcmVkIHBvaW50cycsXG4gICAgICBpZDogJ21vbml0b3JlZC1wb2ludHMtY2hlY2tib3gnLFxuICAgICAgaW5wdXRUeXBlOiAnY2hlY2tib3gnLFxuICAgICAgb25DaGFuZ2U6IChpc0NoZWNrZWQpID0+ICgpID0+IHt9LFxuICAgIH0sXG5cbiAgICB7XG4gICAgICBsYWJlbDogJ1Nob3cgb25seSBwb2ludHMgd2l0aCBzYW1wbGVyJyxcbiAgICAgIGlkOiAnbW9uaXRvcmVkLXBvaW50cy13aXRoLXNhbXBsZXItY2hlY2tib3gnLFxuICAgICAgaW5wdXRUeXBlOiAnY2hlY2tib3gnLFxuICAgICAgb25DaGFuZ2U6IChpc0NoZWNrZWQpID0+ICgpID0+IHt9LFxuICAgIH0sXG5cbiAgICAvLyB7XG4gICAgLy8gICBsYWJlbDogJ0Fub3RoZXIgY3VzdG9tIGZlYXR1cmUnLFxuICAgIC8vICAgaWQ6ICdjdXN0b20tZmVhdHVyZS1jaGVja2JveCcsXG4gICAgLy8gICBpbnB1dFR5cGU6ICdjaGVja2JveCcsXG4gICAgLy8gICBvbkNoYW5nZTogKGlzQ2hlY2tlZCkgPT4gY29uc29sZS5sb2coYEFub3RoZXIgZmVhdHVyZSBpcyBub3cgJHtpc0NoZWNrZWQgPyAnZW5hYmxlZCcgOiAnZGlzYWJsZWQnfWApLFxuICAgIC8vIH0sXG4gIF07XG59O1xuXG5jb25zdCBhcHBlbmRDdXN0b21DaGVja2JveFRvTGVhZmxldHNMYXllckJveCA9IChcbiAgbGVhZmxldHNDb250YWluZXIsXG4gIGN1c3RvbUNvbnRhaW5lcixcbikgPT4ge1xuICBMLkRvbUV2ZW50Lm9uKGxlYWZsZXRzQ29udGFpbmVyLCAnbW91c2VvdmVyJywgZnVuY3Rpb24gKCkge1xuICAgIGN1c3RvbUNvbnRhaW5lci5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcbiAgfSk7XG5cbiAgTC5Eb21FdmVudC5vbihsZWFmbGV0c0NvbnRhaW5lciwgJ21vdXNlb3V0JywgZnVuY3Rpb24gKCkge1xuICAgIGN1c3RvbUNvbnRhaW5lci5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICB9KTtcbn07XG5cbmNvbnN0IGNyZWF0ZUN1c3RvbUNvbnRyb2wgPSAoY29udHJvbCwgY29udGFpbmVyKSA9PiB7XG4gIGxldCBjb250cm9sQ29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gIGNvbnRyb2xDb250YWluZXIuY2xhc3NOYW1lID0gJ2xlYWZsZXQtY29udHJvbC1sYXllcnMtb3ZlcmxheXMnO1xuICBjb250cm9sQ29udGFpbmVyLmlubmVySFRNTCA9IGBcbiAgICAgIDxsYWJlbD5cbiAgICAgICAgPGlucHV0IHR5cGU9XCIke2NvbnRyb2wuaW5wdXRUeXBlfVwiIGlkPVwiJHtjb250cm9sLmlkfVwiIC8+ICR7Y29udHJvbC5sYWJlbH1cbiAgICAgIDwvbGFiZWw+XG4gICAgYDtcblxuICBjb250cm9sQ29udGFpbmVyXG4gICAgLnF1ZXJ5U2VsZWN0b3IoYCMke2NvbnRyb2wuaWR9YClcbiAgICAuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgIGNvbnN0IGlzQ2hlY2tlZCA9IGUudGFyZ2V0LmNoZWNrZWQ7XG4gICAgICBjb250cm9sLm9uQ2hhbmdlKGlzQ2hlY2tlZCk7XG4gICAgfSk7XG5cbiAgY29udHJvbENvbnRhaW5lci5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICBjb250YWluZXI/LmFwcGVuZENoaWxkKGNvbnRyb2xDb250YWluZXIpO1xuXG4gIGFwcGVuZEN1c3RvbUNoZWNrYm94VG9MZWFmbGV0c0xheWVyQm94KGNvbnRhaW5lciwgY29udHJvbENvbnRhaW5lcik7XG59O1xuXG5leHBvcnQgY29uc3QgY3VzdG9tRnVuY3Rpb25hbGl0eUZvck1hcExheWVycyA9IChcbiAgbWFwLFxuICBtYXBUeXBlcyxcbiAgZGVmYXVsdE9uID0gdHJ1ZSxcbiAgd2FJZCxcbiAgZm9yV1dUUERhc2hib2FyZCxcbikgPT4ge1xuICBsZXQgY29udHJvbGxlciA9IEwuY29udHJvbFxuICAgIC5sYXllcnMobWFwVHlwZXMsIHt9LCB7IHBvc2l0aW9uOiAnYm90dG9tcmlnaHQnIH0pXG4gICAgLmFkZFRvKG1hcCk7XG4gIGxldCBjb250YWluZXIgPSBjb250cm9sbGVyLmdldENvbnRhaW5lcigpO1xuXG4gIGlmIChmb3JXV1RQRGFzaGJvYXJkKSB7XG4gICAgY3VzdG9tQ29udHJvbHMobWFwKS5mb3JFYWNoKChjb250cm9sKSA9PiB7XG4gICAgICBpZiAoY29udHJvbC5kZW55Rm9yV2EgJiYgY29udHJvbC5kZW55Rm9yV2EuaW5jbHVkZXMod2FJZCkpIHJldHVybjtcblxuICAgICAgY3JlYXRlQ3VzdG9tQ29udHJvbChjb250cm9sLCBjb250YWluZXIpO1xuICAgICAgZWRnZXNTcGVjaWZpY0xvZ2ljKGRlZmF1bHRPbiwgbWFwKTtcbiAgICB9KTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGluaXRpYWxpemVNYXAgPSAoXG4gIG1hcFpvb21MZXZlbCxcbiAgbWFwQm94U3R5bGUsXG4gIG1hcEJveFNhdGVsbGl0ZVN0eWxlLFxuICBtYXBSZWYsXG4gIGRpc3BhdGNoLFxuICBpc1ZhbGlkQXJlYSxcbiAgYXJlYVRvQ2VudGVyQnksXG4gIHNldE1hcFpvb21MZXZlbCxcbiAgZm9yV1dUUERhc2hib2FyZCxcbiAgc2hvd0VkZ2VzQnlEZWZhdWx0LFxuICB3YUlkID0gMCxcbikgPT4ge1xuICAvLyBAdHMtaWdub3JlXG4gIG1hcFJlZi5jdXJyZW50ID0gbmV3IEwuTWFwKCdtYXAnLCB7XG4gICAgY2VudGVyOiBbMCwgMF0sXG4gICAgem9vbVNuYXA6IDEsXG4gICAgem9vbTogbWFwWm9vbUxldmVsLFxuICAgIGF0dHJpYnV0aW9uQ29udHJvbDogZmFsc2UsXG4gICAgcHJlZmVyQ2FudmFzOiBmYWxzZSxcbiAgfSk7XG5cbiAgaWYgKGZvcldXVFBEYXNoYm9hcmQpIGRpc3BhdGNoKHNldE1hcChtYXBSZWYuY3VycmVudCkpO1xuXG4gIG1hcFJlZi5jdXJyZW50LndoZW5SZWFkeSgoKSA9PiB7XG4gICAgbGV0IG1hcCA9IG1hcFJlZi5jdXJyZW50O1xuICAgIGNvbnN0IG1hcFR5cGVzID0gYmFzZU1hcHMobWFwQm94U3R5bGUsIG1hcEJveFNhdGVsbGl0ZVN0eWxlKTtcblxuICAgIGN1c3RvbUZ1bmN0aW9uYWxpdHlGb3JNYXBMYXllcnMoXG4gICAgICBtYXAsXG4gICAgICBtYXBUeXBlcyxcbiAgICAgIHNob3dFZGdlc0J5RGVmYXVsdCxcbiAgICAgIHdhSWQsXG4gICAgICBmb3JXV1RQRGFzaGJvYXJkLFxuICAgICk7XG5cbiAgICAvLyBUaGUgbmFtZSBvZiB0aGUgbGF5ZXIgY2hhbmdlcyBiZXR3ZWVuIGxhbmd1YWdlcyBzbyB0aGVyZSB3YXMgYSBuZWVkIHRvIGdldCB0byB0aGUgZmlyc3QgbGF5ZXJcbiAgICBPYmplY3QudmFsdWVzKG1hcFR5cGVzKVswXS5hZGRUbyhtYXApO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoIW1hcFJlZi5jdXJyZW50KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdHJ5IHtcbiAgICAgICAgbWFwUmVmLmN1cnJlbnQuaW52YWxpZGF0ZVNpemUodHJ1ZSk7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignZXJyJywgZXJyKTtcbiAgICAgIH1cblxuICAgICAgZGlzcGF0Y2goc3RvcmVNYXAobWFwUmVmLmN1cnJlbnQpKTtcbiAgICAgIGRpc3BhdGNoKHNpZGVOYXZFeHBhbmRlZCh0cnVlKSk7XG5cbiAgICAgIG1hcC5vbigna2V5ZG93bicsIChldmVudCkgPT4ge1xuICAgICAgICBpZiAoZXZlbnQub3JpZ2luYWxFdmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICAgICAgbWFwLmNsb3NlUG9wdXAoKTtcbiAgICAgICAgICBkb2N1bWVudC5ib2R5LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0sIDApO1xuICAgIGlmIChtYXBSZWYuY3VycmVudCAmJiBpc1ZhbGlkQXJlYShhcmVhVG9DZW50ZXJCeSkpIHtcbiAgICAgIG1hcFJlZi5jdXJyZW50LmZpdEJvdW5kcyhhcmVhVG9DZW50ZXJCeSk7XG4gICAgfVxuICB9KTtcblxuICBtYXBSZWYuY3VycmVudC5vbignem9vbWVuZCcsIGZ1bmN0aW9uIChlKSB7XG4gICAgaWYgKCFtYXBSZWYuY3VycmVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBsZXQgem9vbSA9IG1hcFJlZi5jdXJyZW50LmdldFpvb20oKTtcbiAgICBzZXRNYXBab29tTGV2ZWwoem9vbSk7XG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGNsdXN0ZXJHcm91cE9wdGlvbnMgPSB7XG4gIHNwaWRlcmZ5T25NYXhab29tOiBmYWxzZSxcbiAgc2hvd0NvdmVyYWdlT25Ib3ZlcjogZmFsc2UsXG4gIHpvb21Ub0JvdW5kc09uQ2xpY2s6IHRydWUsXG4gIGFuaW1hdGU6IHRydWUsXG4gIGRpc2FibGVDbHVzdGVyaW5nQXRab29tOiAxMCxcbiAgcmVtb3ZlT3V0c2lkZVZpc2libGVCb3VuZHM6IGZhbHNlLFxuICBjaHVua2VkTG9hZGluZzogdHJ1ZSxcbiAgaWNvbkNyZWF0ZUZ1bmN0aW9uOiAoY2x1c3RlcikgPT4ge1xuICAgIHJldHVybiBuZXcgTC5EaXZJY29uKHtcbiAgICAgIGh0bWw6IGA8ZGl2PjxzcGFuPiR7Y2x1c3Rlci5fY2hpbGRDb3VudH08L3NwYW4+PC9kaXY+XG4gICAgICAgICAgICAgPGRpdiBjbGFzcz0nbWFya2VyLWNsdXN0ZXItbmFtZSc+JHtpMThuLnQoJ2luZHVzdHJpZXMnKX08L2Rpdj5gLFxuICAgICAgY2xhc3NOYW1lOiAnbWFya2VyLWNsdXN0ZXInLFxuICAgICAgaWNvblNpemU6IG5ldyBMLlBvaW50KDQwLCA0MCksXG4gICAgfSk7XG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3Qgem9vbUxldmVscyA9IHtcbiAgMTogJ1hMYXJnZScsXG4gIDI6ICdYTGFyZ2UnLFxuICAzOiAnWExhcmdlJyxcbiAgNDogJ1hMYXJnZScsXG4gIDU6ICdYTGFyZ2UnLFxuICA2OiAnWExhcmdlJyxcbiAgNzogJ0xhcmdlJyxcbiAgODogJ0xhcmdlJyxcbiAgOTogJ0xhcmdlJyxcbiAgMTA6ICdMYXJnZScsXG4gIDExOiAnTUxhcmdlJyxcbiAgMTI6ICdNTGFyZ2UnLFxuICAxMzogJ01MYXJnZScsXG4gIDE0OiAnTUxhcmdlJyxcbiAgMTU6ICdNZWRpdW0nLFxuICAxNjogJ01lZGl1bScsXG4gIDE3OiAnU21hbGwnLFxuICAxODogJ1NtYWxsJyxcbn07XG5cbi8vIGV4cG9ydCBjb25zdCBmaWx0ZXJQb2ludHMgPSAocG9pbnRzLCBoYXNEZXZpY2UpID0+XG4vLyAgIHBvaW50cy5maWx0ZXIoKHBvaW50KSA9PiBwb2ludC5oYXNfZGV2aWNlID09PSBoYXNEZXZpY2UpO1xuXG4vLyBVdGlsaXR5IGZ1bmN0aW9uIGZvciBmaWx0ZXJpbmcgcG9pbnRzIGJhc2VkIG9uIG9wdGlvbnNcbmV4cG9ydCBjb25zdCBmaWx0ZXJQb2ludHMgPSAoXG4gIHBvaW50czogSVBvaW50W10gPSBbXSxcbiAge1xuICAgIG9ubHlNb25pdG9yZWQgPSBmYWxzZSxcbiAgICB3aXRoU2FtcGxlciA9IGZhbHNlLFxuICB9OiB7IG9ubHlNb25pdG9yZWQ/OiBib29sZWFuOyB3aXRoU2FtcGxlcj86IGJvb2xlYW4gfSxcbik6IElQb2ludFtdID0+IHtcbiAgcmV0dXJuIHBvaW50cy5maWx0ZXIoKHBvaW50KSA9PiB7XG4gICAgaWYgKG9ubHlNb25pdG9yZWQgJiYgIXBvaW50Lmhhc19kZXZpY2UpIHJldHVybiBmYWxzZTtcbiAgICBpZiAod2l0aFNhbXBsZXIgJiYgIXBvaW50Lmhhc19zYW1wbGVyKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGZpbmRQb2ludCA9IChwb2ludHMsIHBvaW50SWQsIGhhc0RldmljZUNoZWNrKSA9PlxuICBwb2ludHMuZmluZCgocG9pbnQpID0+IHBvaW50LmlkID09PSBwb2ludElkICYmIGhhc0RldmljZUNoZWNrKHBvaW50KSk7XG5cbmV4cG9ydCBjb25zdCBmaWx0ZXJFZGdlcyA9IChlZGdlcywgcG9pbnRzLCBpc01vbml0b3JlZCkgPT5cbiAgZWRnZXMuZmlsdGVyKChlZGdlKSA9PiB7XG4gICAgY29uc3Qgc291cmNlUG9pbnQgPSBmaW5kUG9pbnQocG9pbnRzLCBlZGdlLnNvdXJjZV9wb2ludF9pZCwgKHBvaW50KSA9PlxuICAgICAgaXNNb25pdG9yZWRcbiAgICAgICAgPyBwb2ludC5oYXNfZGV2aWNlIHx8IGVkZ2UuZGVzY2VuZGFudHNfaGFzX2RldmljZVxuICAgICAgICA6ICFwb2ludC5kZXNjZW5kYW50c19oYXNfZGV2aWNlLFxuICAgICk7XG5cbiAgICBjb25zdCBwYXJlbnRQb2ludCA9IGZpbmRQb2ludChwb2ludHMsIGVkZ2UudGFyZ2V0X3BvaW50X2lkLCAocG9pbnQpID0+XG4gICAgICBpc01vbml0b3JlZFxuICAgICAgICA/IGVkZ2UuZGVzY2VuZGFudHNfaGFzX2RldmljZSB8fCBzb3VyY2VQb2ludCAhPT0gdW5kZWZpbmVkXG4gICAgICAgIDogIXBvaW50LmRlc2NlbmRhbnRzX2hhc19kZXZpY2UsXG4gICAgKTtcblxuICAgIHJldHVybiBzb3VyY2VQb2ludCAmJiBwYXJlbnRQb2ludDtcbiAgfSk7XG5cbmV4cG9ydCBjb25zdCBzZXR1cENoZWNrYm94TGlzdGVuZXIgPSAoc2VsZWN0b3IsIG9uQ2hhbmdlKSA9PiB7XG4gIGNvbnN0IGNoZWNrYm94ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihzZWxlY3Rvcik7XG4gIGlmIChjaGVja2JveCA9PT0gbnVsbCkgcmV0dXJuO1xuICBjaGVja2JveC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCAoKSA9PiBvbkNoYW5nZShjaGVja2JveC5jaGVja2VkKSk7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLFFBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFFBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLEtBQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLG1CQUFBLEdBQUFILE9BQUE7QUFHTyxJQUFNSSxjQUFjLEdBQUcsU0FBakJBLGNBQWNBLENBQUlDLE1BQU0sRUFBRUMsV0FBVyxFQUFFQyxjQUFjLEVBQUs7RUFDckUsSUFBSUMsV0FBZ0IsR0FBR0gsTUFBTSxDQUFDSSxPQUFPO0VBQ3JDLElBQUlILFdBQVcsQ0FBQ0MsY0FBYyxDQUFDLEVBQUU7SUFDL0JDLFdBQVcsQ0FBQ0UsU0FBUyxDQUFDSCxjQUFjLEVBQUU7TUFBRUksT0FBTyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFBRSxDQUFDLENBQUM7RUFDNUQsQ0FBQyxNQUFNO0lBQ0wsSUFBTUMsS0FBWSxHQUFHLEVBQUU7SUFF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
426
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbGVhZmxldCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2FjdGlvbnMiLCJfaTE4biIsIl9XV1RQRGFzaGJvYXJkU2xpY2UiLCJhcmVhRm9jdXNMb2dpYyIsIm1hcFJlZiIsImlzVmFsaWRBcmVhIiwiYXJlYVRvQ2VudGVyQnkiLCJtYXBJbnN0YW5jZSIsImN1cnJlbnQiLCJmaXRCb3VuZHMiLCJwYWRkaW5nIiwiZ3JvdXAiLCJwcm9wZXJ0eSIsIl9sYXllcnMiLCJrYW5kb19vYmplY3QiLCJwdXNoIiwiT2JqZWN0Iiwia2V5cyIsIkwiLCJmZWF0dXJlR3JvdXAiLCJnZXRCb3VuZHMiLCJsZW5ndGgiLCJleHBvcnRzIiwiYXJlYSIsInNob3VsZExvYWRNYXBPYmplY3RzIiwiZ2xvYmFsX2RhdGEiLCJwb2ludHMiLCJlZGdlcyIsIm1hcCIsInVuZGVmaW5lZCIsInNob3VkTG9hZERlcGVuZGVudE1hcE9iamVjdHMiLCJhcmVhcyIsImdsb2JhbCIsImZpbmRTcGVjaWZpY0xheWVyc0Zyb21NYXAiLCJsYXllcnNUb0ZpbmQiLCJjdXJyZW50TGF5ZXIiLCJpbmNsdWRlcyIsImthbmRvX3BvaW50X3R5cGUiLCJldmVudHNDb3VudGVySWNvbnMiLCJsYXllciIsInpvb21MZXZlbCIsImljb24iLCJvcHRpb25zIiwiaWNvblNpemUiLCJldmVudHNDb3VudEljb24iLCJpY29uQW5jaG9yIiwic2V0SWNvbiIsInNldE9wYWNpdHkiLCJtdWx0aXBsZUxheWVyZWRJY29ucyIsImlzQUZld0xheWVySWNvbiIsImthbmRvX2Zld19sYXllcl9pY29uIiwibWluaUljb24iLCJwcmVzZW50Iiwia2FuZG9fc2Vjb25kYXJ5Iiwia2FuZG9fdGhpcmQiLCJzZWNvbmRhcnkiLCJ0aGlyZCIsImthbmRvX2luZGV4X29iamVjdCIsImJ1YmJsZUljb25PcHRpb25zIiwib25lTGF5ZXJJY29uT3B0aW9ucyIsIm1pZGRsZUljb25PcHRpb25zIiwidG9wSWNvbk9wdGlvbnMiLCJpY29uWm9vbUNvbnRyb2wiLCJsYXllcnMiLCJfem9vbSIsIm1hcFN0eWxlIiwibWFwQm94U3R5bGUiLCJ0aWxlTGF5ZXIiLCJjb25jYXQiLCJhdHRyaWJ1dGlvbiIsIm1heFpvb20iLCJtaW5ab29tIiwiaWQiLCJ0aWxlU2l6ZSIsInpvb21PZmZzZXQiLCJ1cGRhdGVXaGVuWm9vbWluZyIsInVwZGF0ZVdoZW5JZGxlIiwiYmFzZU1hcHMiLCJtYXBCb3hTYXRlbGxpdGVTdHlsZSIsIl9yZWYiLCJkZWZhdWx0TWFwIiwiaTE4biIsInQiLCJzYXRlbGxpdGUiLCJfZGVmaW5lUHJvcGVydHkyIiwiZGVmYXVsdCIsInRvZ2dsZUVkZ2VzVmlzaWJpbGl0eSIsInZpc2libGUiLCJlYWNoTGF5ZXIiLCJQb2x5bGluZSIsIlN5bWJvbCIsImFycm93SGVhZCIsInNldFN0eWxlIiwib3BhY2l0eSIsImVkZ2VzU3BlY2lmaWNMb2dpYyIsImRlZmF1bHRPbiIsImNoZWNrYm94IiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yIiwiY2hlY2tlZCIsImN1c3RvbUNvbnRyb2xzIiwibGFiZWwiLCJpbnB1dFR5cGUiLCJkZW55Rm9yV2EiLCJvbkNoYW5nZSIsImlzQ2hlY2tlZCIsImFwcGVuZEN1c3RvbUNoZWNrYm94VG9MZWFmbGV0c0xheWVyQm94IiwibGVhZmxldHNDb250YWluZXIiLCJjdXN0b21Db250YWluZXIiLCJEb21FdmVudCIsIm9uIiwic3R5bGUiLCJkaXNwbGF5IiwiY3JlYXRlQ3VzdG9tQ29udHJvbCIsImNvbnRyb2wiLCJjb250YWluZXIiLCJjb250cm9sQ29udGFpbmVyIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsImlubmVySFRNTCIsImFkZEV2ZW50TGlzdGVuZXIiLCJlIiwidGFyZ2V0IiwiYXBwZW5kQ2hpbGQiLCJjdXN0b21GdW5jdGlvbmFsaXR5Rm9yTWFwTGF5ZXJzIiwibWFwVHlwZXMiLCJhcmd1bWVudHMiLCJ3YUlkIiwiZm9yV1dUUERhc2hib2FyZCIsImNvbnRyb2xsZXIiLCJwb3NpdGlvbiIsImFkZFRvIiwiZ2V0Q29udGFpbmVyIiwiZm9yRWFjaCIsImluaXRpYWxpemVNYXAiLCJtYXBab29tTGV2ZWwiLCJkaXNwYXRjaCIsInNldE1hcFpvb21MZXZlbCIsInNob3dFZGdlc0J5RGVmYXVsdCIsIk1hcCIsImNlbnRlciIsInpvb21TbmFwIiwiem9vbSIsImF0dHJpYnV0aW9uQ29udHJvbCIsInByZWZlckNhbnZhcyIsInNldE1hcCIsIndoZW5SZWFkeSIsInZhbHVlcyIsInNldFRpbWVvdXQiLCJpbnZhbGlkYXRlU2l6ZSIsImVyciIsImNvbnNvbGUiLCJlcnJvciIsInN0b3JlTWFwIiwic2lkZU5hdkV4cGFuZGVkIiwiZXZlbnQiLCJvcmlnaW5hbEV2ZW50Iiwia2V5IiwiY2xvc2VQb3B1cCIsImJvZHkiLCJmb2N1cyIsImdldFpvb20iLCJjbHVzdGVyR3JvdXBPcHRpb25zIiwic3BpZGVyZnlPbk1heFpvb20iLCJzaG93Q292ZXJhZ2VPbkhvdmVyIiwiem9vbVRvQm91bmRzT25DbGljayIsImFuaW1hdGUiLCJkaXNhYmxlQ2x1c3RlcmluZ0F0Wm9vbSIsInJlbW92ZU91dHNpZGVWaXNpYmxlQm91bmRzIiwiY2h1bmtlZExvYWRpbmciLCJpY29uQ3JlYXRlRnVuY3Rpb24iLCJjbHVzdGVyIiwiRGl2SWNvbiIsImh0bWwiLCJfY2hpbGRDb3VudCIsIlBvaW50Iiwiem9vbUxldmVscyIsImZpbHRlclBvaW50cyIsIl9yZWYyIiwib25seU1vbml0b3JlZCIsIndpdGhTYW1wbGVyIiwiZmlsdGVyIiwicG9pbnQiLCJoYXNfZGV2aWNlIiwiaGFzX3NhbXBsZXIiLCJmaW5kUG9pbnQiLCJwb2ludElkIiwiaGFzRGV2aWNlQ2hlY2siLCJmaW5kIiwiZmlsdGVyRWRnZXMiLCJpc01vbml0b3JlZCIsImVkZ2UiLCJzb3VyY2VQb2ludCIsInNvdXJjZV9wb2ludF9pZCIsImRlc2NlbmRhbnRzX2hhc19kZXZpY2UiLCJwYXJlbnRQb2ludCIsInRhcmdldF9wb2ludF9pZCIsInNldHVwQ2hlY2tib3hMaXN0ZW5lciIsInNlbGVjdG9yIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL1dpZGdldHMvTWFwL01hcFV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMLCB7IFBvaW50VHVwbGUgfSBmcm9tICdsZWFmbGV0JztcbmltcG9ydCB7IHNpZGVOYXZFeHBhbmRlZCwgc3RvcmVNYXAgfSBmcm9tICcuLi8uLi9zdG9yZS9nbG9iYWwvYWN0aW9ucyc7XG5pbXBvcnQgaTE4biBmcm9tICdzcmMvdXRpbGl0aWVzL2kxOG4nO1xuaW1wb3J0IHsgc2V0TWFwIH0gZnJvbSAnLi4vLi4vc3RvcmUvV1dUUERhc2hib2FyZC9XV1RQRGFzaGJvYXJkU2xpY2UnO1xuaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnc3JjL3N0b3JlL3BvaW50cy9tb2RlbHMvSVBvaW50JztcblxuZXhwb3J0IGNvbnN0IGFyZWFGb2N1c0xvZ2ljID0gKG1hcFJlZiwgaXNWYWxpZEFyZWEsIGFyZWFUb0NlbnRlckJ5KSA9PiB7XG4gIGxldCBtYXBJbnN0YW5jZTogYW55ID0gbWFwUmVmLmN1cnJlbnQ7XG4gIGlmIChpc1ZhbGlkQXJlYShhcmVhVG9DZW50ZXJCeSkpIHtcbiAgICBtYXBJbnN0YW5jZS5maXRCb3VuZHMoYXJlYVRvQ2VudGVyQnksIHsgcGFkZGluZzogWzAsIDBdIH0pO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IGdyb3VwOiBhbnlbXSA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiBtYXBJbnN0YW5jZS5fbGF5ZXJzKSB7XG4gICAgICBpZiAoXG4gICAgICAgIG1hcEluc3RhbmNlLl9sYXllcnNbcHJvcGVydHldLmthbmRvX29iamVjdCA9PT0gJ0FyZWEnIHx8XG4gICAgICAgIG1hcEluc3RhbmNlLl9sYXllcnNbcHJvcGVydHldLmthbmRvX29iamVjdCA9PT0gJ1BvaW50J1xuICAgICAgKSB7XG4gICAgICAgIGdyb3VwLnB1c2gobWFwSW5zdGFuY2UuX2xheWVyc1twcm9wZXJ0eV0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChPYmplY3Qua2V5cyhMLmZlYXR1cmVHcm91cChncm91cCkuZ2V0Qm91bmRzKCkpLmxlbmd0aCAhPT0gMCkge1xuICAgICAgbWFwSW5zdGFuY2UuZml0Qm91bmRzKEwuZmVhdHVyZUdyb3VwKGdyb3VwKS5nZXRCb3VuZHMoKSwge1xuICAgICAgICBwYWRkaW5nOiBbMTAwLCAxMDBdLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIC8vIG1hcEluc3RhbmNlLmludmFsaWRhdGVTaXplKHRydWUpO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzVmFsaWRBcmVhID0gKGFyZWEpID0+IHtcbiAgcmV0dXJuIGFyZWEgJiYgYXJlYS5sZW5ndGggPiAwICYmIE9iamVjdC5rZXlzKGFyZWFbMF0pLmxlbmd0aCA+IDA7XG59O1xuXG5leHBvcnQgY29uc3Qgc2hvdWxkTG9hZE1hcE9iamVjdHMgPSAoZ2xvYmFsX2RhdGEsIG1hcFJlZiwgcG9pbnRzLCBlZGdlcykgPT4ge1xuICByZXR1cm4gKFxuICAgIGdsb2JhbF9kYXRhLm1hcCAhPT0gdW5kZWZpbmVkICYmXG4gICAgbWFwUmVmLmN1cnJlbnQgIT09IG51bGwgJiZcbiAgICBlZGdlcyAhPT0gdW5kZWZpbmVkICYmXG4gICAgcG9pbnRzICE9PSB1bmRlZmluZWRcbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBzaG91ZExvYWREZXBlbmRlbnRNYXBPYmplY3RzID0gKFxuICBlZGdlcyxcbiAgYXJlYXMsXG4gIGdsb2JhbCxcbiAgbWFwUmVmLFxuICBwb2ludHMsXG4pID0+IHtcbiAgcmV0dXJuIChcbiAgICBnbG9iYWwubWFwICE9PSB1bmRlZmluZWQgJiZcbiAgICBtYXBSZWYuY3VycmVudCAhPT0gbnVsbCAmJlxuICAgIGVkZ2VzLmxlbmd0aCA+PSAwICYmXG4gICAgYXJlYXMubGVuZ3RoID49IDAgJiZcbiAgICBwb2ludHMubGVuZ3RoID49IDBcbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBmaW5kU3BlY2lmaWNMYXllcnNGcm9tTWFwID0gKFxuICBsYXllcnNUb0ZpbmQ6IHN0cmluZ1tdLFxuICBjdXJyZW50TGF5ZXIsXG4pID0+IHtcbiAgcmV0dXJuIChcbiAgICBsYXllcnNUb0ZpbmQuaW5jbHVkZXMoY3VycmVudExheWVyLmthbmRvX29iamVjdCkgJiZcbiAgICBjdXJyZW50TGF5ZXIua2FuZG9fcG9pbnRfdHlwZSAhPT0gJ01hbmhvbGUnXG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgZXZlbnRzQ291bnRlckljb25zID0gKGxheWVyLCB6b29tTGV2ZWwpID0+IHtcbiAgbGV0IGljb24gPSBsYXllci5vcHRpb25zLmljb247XG4gIGljb24ub3B0aW9ucy5pY29uU2l6ZSA9IGV2ZW50c0NvdW50SWNvbih6b29tTGV2ZWwpLmljb25TaXplO1xuICBpY29uLm9wdGlvbnMuaWNvbkFuY2hvciA9IGV2ZW50c0NvdW50SWNvbih6b29tTGV2ZWwpLmljb25BbmNob3I7XG4gIGxheWVyLnNldEljb24oaWNvbik7XG4gIGxheWVyLnNldE9wYWNpdHkoMSk7XG59O1xuXG5leHBvcnQgY29uc3QgbXVsdGlwbGVMYXllcmVkSWNvbnMgPSAobGF5ZXIsIHpvb21MZXZlbCkgPT4ge1xuICBsZXQgaWNvbiA9IGxheWVyLm9wdGlvbnMuaWNvbjtcbiAgbGV0IGlzQUZld0xheWVySWNvbiA9IGxheWVyLmthbmRvX2Zld19sYXllcl9pY29uO1xuICBsZXQgbWluaUljb24gPSB7XG4gICAgcHJlc2VudDogbGF5ZXIua2FuZG9fc2Vjb25kYXJ5IHx8IGxheWVyLmthbmRvX3RoaXJkLFxuICAgIHNlY29uZGFyeTogbGF5ZXIua2FuZG9fc2Vjb25kYXJ5LFxuICAgIHRoaXJkOiBsYXllci5rYW5kb190aGlyZCxcbiAgfTtcblxuICBpZiAobGF5ZXIua2FuZG9faW5kZXhfb2JqZWN0ID09PSAwKSB7XG4gICAgaWYgKGlzQUZld0xheWVySWNvbikge1xuICAgICAgaWNvbi5vcHRpb25zLmljb25TaXplID0gYnViYmxlSWNvbk9wdGlvbnMoem9vbUxldmVsLCBtaW5pSWNvbikuaWNvblNpemU7XG4gICAgICBpY29uLm9wdGlvbnMuaWNvbkFuY2hvciA9IGJ1YmJsZUljb25PcHRpb25zKFxuICAgICAgICB6b29tTGV2ZWwsXG4gICAgICAgIG1pbmlJY29uLFxuICAgICAgKS5pY29uQW5jaG9yO1xuICAgIH0gZWxzZSB7XG4gICAgICBpY29uLm9wdGlvbnMuaWNvblNpemUgPSBvbmVMYXllckljb25PcHRpb25zKHpvb21MZXZlbCkuaWNvblNpemU7XG4gICAgICBpY29uLm9wdGlvbnMuaWNvbkFuY2hvciA9IG9uZUxheWVySWNvbk9wdGlvbnMoem9vbUxldmVsKS5pY29uQW5jaG9yO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBpZiAobGF5ZXIua2FuZG9faW5kZXhfb2JqZWN0ID09PSAxKSB7XG4gICAgICBpY29uLm9wdGlvbnMuaWNvblNpemUgPSBtaWRkbGVJY29uT3B0aW9ucyh6b29tTGV2ZWwsIG1pbmlJY29uKS5pY29uU2l6ZTtcbiAgICAgIGljb24ub3B0aW9ucy5pY29uQW5jaG9yID0gbWlkZGxlSWNvbk9wdGlvbnMoXG4gICAgICAgIHpvb21MZXZlbCxcbiAgICAgICAgbWluaUljb24sXG4gICAgICApLmljb25BbmNob3I7XG4gICAgfSBlbHNlIHtcbiAgICAgIGljb24ub3B0aW9ucy5pY29uU2l6ZSA9IHRvcEljb25PcHRpb25zKHpvb21MZXZlbCwgbWluaUljb24pLmljb25TaXplO1xuICAgICAgaWNvbi5vcHRpb25zLmljb25BbmNob3IgPSB0b3BJY29uT3B0aW9ucyh6b29tTGV2ZWwsIG1pbmlJY29uKS5pY29uQW5jaG9yO1xuICAgIH1cbiAgfVxuXG4gIGxheWVyLnNldEljb24oaWNvbik7XG59O1xuXG5jb25zdCBvbmVMYXllckljb25PcHRpb25zID0gKHpvb21MZXZlbCkgPT4ge1xuICByZXR1cm4ge1xuICAgIGljb25TaXplOiBbem9vbUxldmVsICogMy4zLCB6b29tTGV2ZWwgKiAzLjNdIGFzIFBvaW50VHVwbGUsXG4gICAgaWNvbkFuY2hvcjogW3pvb21MZXZlbCAqIDEuNywgem9vbUxldmVsICogMy43XSBhcyBQb2ludFR1cGxlLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGV2ZW50c0NvdW50SWNvbiA9ICh6b29tTGV2ZWwpID0+IHtcbiAgcmV0dXJuIHtcbiAgICBpY29uU2l6ZTogW3pvb21MZXZlbCAqIDIuNSwgem9vbUxldmVsICogMi41XSBhcyBQb2ludFR1cGxlLFxuICAgIGljb25BbmNob3I6IFt6b29tTGV2ZWwgKiAwLCB6b29tTGV2ZWwgKiA0XSBhcyBQb2ludFR1cGxlLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGJ1YmJsZUljb25PcHRpb25zID0gKHpvb21MZXZlbCwgbWluaUljb24pID0+IHtcbiAgaWYgKG1pbmlJY29uLnByZXNlbnQpIHtcbiAgICBpZiAobWluaUljb24uc2Vjb25kYXJ5KSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpY29uU2l6ZTogW3pvb21MZXZlbCAqIDEuOTgsIHpvb21MZXZlbCAqIDIuM10gYXMgUG9pbnRUdXBsZSxcbiAgICAgICAgaWNvbkFuY2hvcjogW3pvb21MZXZlbCAqIDAsIHpvb21MZXZlbCAqIDRdIGFzIFBvaW50VHVwbGUsXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpY29uU2l6ZTogW3pvb21MZXZlbCAqIDEuOTgsIHpvb21MZXZlbCAqIDIuM10gYXMgUG9pbnRUdXBsZSxcbiAgICAgICAgaWNvbkFuY2hvcjogW3pvb21MZXZlbCAqIDAsIHpvb21MZXZlbCAqIDJdIGFzIFBvaW50VHVwbGUsXG4gICAgICB9O1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICByZXR1cm4ge1xuICAgICAgaWNvblNpemU6IFt6b29tTGV2ZWwgKiAzLjk4LCB6b29tTGV2ZWwgKiA0LjNdIGFzIFBvaW50VHVwbGUsXG4gICAgICBpY29uQW5jaG9yOiBbem9vbUxldmVsICogMiwgem9vbUxldmVsICogNF0gYXMgUG9pbnRUdXBsZSxcbiAgICB9O1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgbWlkZGxlSWNvbk9wdGlvbnMgPSAoem9vbUxldmVsLCBtaW5pSWNvbikgPT4ge1xuICBpZiAobWluaUljb24ucHJlc2VudCkge1xuICAgIGlmIChtaW5pSWNvbi5zZWNvbmRhcnkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGljb25TaXplOiBbem9vbUxldmVsICogMS4xLCB6b29tTGV2ZWwgKiAxLjFdLFxuICAgICAgICBpY29uQW5jaG9yOiBbem9vbUxldmVsICogLTAuNDUsIHpvb21MZXZlbCAqIDMuNV0sXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpY29uU2l6ZTogW3pvb21MZXZlbCAqIDEuMSwgem9vbUxldmVsICogMS4xXSxcbiAgICAgICAgaWNvbkFuY2hvcjogW3pvb21MZXZlbCAqIC0wLjQ1LCB6b29tTGV2ZWwgKiAxLjVdLFxuICAgICAgfTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGljb25TaXplOiBbem9vbUxldmVsICogMi41LCB6b29tTGV2ZWwgKiAyLjVdLFxuICAgICAgaWNvbkFuY2hvcjogW3pvb21MZXZlbCAqIDEuMjk1LCB6b29tTGV2ZWwgKiAzLjM1XSxcbiAgICB9O1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgdG9wSWNvbk9wdGlvbnMgPSAoem9vbUxldmVsLCBtaW5pSWNvbikgPT4ge1xuICBpZiAobWluaUljb24ucHJlc2VudCkge1xuICAgIGlmIChtaW5pSWNvbi5zZWNvbmRhcnkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGljb25TaXplOiBbem9vbUxldmVsICogMC45LCB6b29tTGV2ZWwgKiAxLjhdLFxuICAgICAgICBpY29uQW5jaG9yOiBbem9vbUxldmVsICogLTAuNSwgem9vbUxldmVsICogMy44XSxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGljb25TaXplOiBbem9vbUxldmVsICogMS42LCB6b29tTGV2ZWwgKiAyLjVdLFxuICAgICAgICBpY29uQW5jaG9yOiBbem9vbUxldmVsICogLTAuMiwgem9vbUxldmVsICogMi4xXSxcbiAgICAgIH07XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHJldHVybiB7XG4gICAgICBpY29uU2l6ZTogW3pvb21MZXZlbCAqIDMuOSwgem9vbUxldmVsICogMy44XSxcbiAgICAgIGljb25BbmNob3I6IFt6b29tTGV2ZWwgKiAyLCB6b29tTGV2ZWwgKiAzLjhdLFxuICAgIH07XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBpY29uWm9vbUNvbnRyb2wgPSAobWFwKSA9PiB7XG4gIGxldCBsYXllcnMgPSBtYXAuX2xheWVycztcbiAgbGV0IHpvb21MZXZlbCA9IG1hcC5fem9vbTtcblxuICBmb3IgKGNvbnN0IHByb3BlcnR5IGluIGxheWVycykge1xuICAgIGlmIChmaW5kU3BlY2lmaWNMYXllcnNGcm9tTWFwKFsnSWNvbk51bWJlciddLCBsYXllcnNbcHJvcGVydHldKSkge1xuICAgICAgZXZlbnRzQ291bnRlckljb25zKGxheWVyc1twcm9wZXJ0eV0sIHpvb21MZXZlbCk7XG4gICAgfVxuXG4gICAgaWYgKGZpbmRTcGVjaWZpY0xheWVyc0Zyb21NYXAoWydQb2ludCcsICdJY29uJ10sIGxheWVyc1twcm9wZXJ0eV0pKSB7XG4gICAgICBtdWx0aXBsZUxheWVyZWRJY29ucyhsYXllcnNbcHJvcGVydHldLCB6b29tTGV2ZWwpO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIGZpbmRTcGVjaWZpY0xheWVyc0Zyb21NYXAoWydTYW1wbGluZycsICdPYnNlcnZhdGlvbiddLCBsYXllcnNbcHJvcGVydHldKVxuICAgICkge1xuICAgICAgbXVsdGlwbGVMYXllcmVkSWNvbnMobGF5ZXJzW3Byb3BlcnR5XSwgem9vbUxldmVsKTtcbiAgICB9XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBtYXBTdHlsZSA9IChtYXBCb3hTdHlsZSkgPT4ge1xuICByZXR1cm4gTC50aWxlTGF5ZXIoXG4gICAgYGh0dHBzOi8vYXBpLm1hcGJveC5jb20vc3R5bGVzL3YxL25hZGF2LWthbmRvLyR7bWFwQm94U3R5bGV9L3RpbGVzLzI1Ni97en0ve3h9L3t5fUAyeD9hY2Nlc3NfdG9rZW49cGsuZXlKMUlqb2libUZrWVhZdGEyRnVaRzhpTENKaElqb2lZMnB2ZUhwcmRHUnhNSGxtZERONGJEZzBkekp4T1hjNGRTSjkuSi0yb2hxN2o0eUtOYm00Tl8tUDZxd2AsXG4gICAge1xuICAgICAgYXR0cmlidXRpb246XG4gICAgICAgICdNYXAgZGF0YSAmY29weTsgPGEgaHJlZj1cImh0dHBzOi8vd3d3Lm9wZW5zdHJlZXRtYXAub3JnL1wiPk9wZW5TdHJlZXRNYXA8L2E+IGNvbnRyaWJ1dG9ycywgPGEgaHJlZj1cImh0dHBzOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS1zYS8yLjAvXCI+Q0MtQlktU0E8L2E+LCBJbWFnZXJ5IMKpIDxhIGhyZWY9XCJodHRwczovL3d3dy5tYXBib3guY29tL1wiPk1hcGJveDwvYT4nLFxuICAgICAgbWF4Wm9vbTogMTgsXG4gICAgICBtaW5ab29tOiAyLFxuICAgICAgaWQ6ICdtYXBib3gvc3RyZWV0cy12MTEnLFxuICAgICAgdGlsZVNpemU6IDUxMixcbiAgICAgIHpvb21PZmZzZXQ6IC0xLFxuICAgICAgdXBkYXRlV2hlblpvb21pbmc6IGZhbHNlLFxuICAgICAgdXBkYXRlV2hlbklkbGU6IGZhbHNlLFxuICAgIH0sXG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgYmFzZU1hcHMgPSAobWFwQm94U3R5bGUsIG1hcEJveFNhdGVsbGl0ZVN0eWxlKSA9PiB7XG4gIGxldCBkZWZhdWx0TWFwID0gaTE4bi50KCdtYXAubGF5ZXJzLmRlZmF1bHQnKTtcbiAgbGV0IHNhdGVsbGl0ZSA9IGkxOG4udCgnbWFwLmxheWVycy5zYXRlbGxpdGUnKTtcbiAgcmV0dXJuIHtcbiAgICBbZGVmYXVsdE1hcF06IG1hcFN0eWxlKG1hcEJveFN0eWxlKSxcbiAgICBbc2F0ZWxsaXRlXTogbWFwU3R5bGUobWFwQm94U2F0ZWxsaXRlU3R5bGUpLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHRvZ2dsZUVkZ2VzVmlzaWJpbGl0eSA9ICh2aXNpYmxlLCBtYXApID0+IHtcbiAgbWFwLmVhY2hMYXllcigobGF5ZXIpID0+IHtcbiAgICBpZiAoXG4gICAgICAobGF5ZXIgaW5zdGFuY2VvZiBMLlBvbHlsaW5lICYmIGxheWVyLmthbmRvX29iamVjdCAhPT0gJ0FyZWEnKSB8fFxuICAgICAgbGF5ZXIgaW5zdGFuY2VvZiBMLlN5bWJvbC5hcnJvd0hlYWRcbiAgICApIHtcbiAgICAgIGxheWVyLnNldFN0eWxlKHsgb3BhY2l0eTogdmlzaWJsZSA/IDEgOiAwIH0pO1xuICAgIH1cbiAgfSk7XG59O1xuXG4vLyBleHBvcnQgY29uc3QgdG9nZ2xlTW9uaXRvcmVkUG9pbnRzVmlzaWJpbGl0eSA9ICh2aXNpYmxlKSA9PiB7XG4vLyAgIGNvbnNvbGUud2FybigndG9nZ2xlTW9uaXRvcmVkUG9pbnRzVmlzaWJpbGl0eScsIHZpc2libGUpO1xuLy8gfTtcblxuLy8gZXhwb3J0IGNvbnN0IHRvZ2dsZU1vbml0b3JlZFBvaW50c1dpdGhTYW1wbGVyVmlzaWJpbGl0eSA9ICh2aXNpYmxlKSA9PiB7XG4vLyAgIGNvbnNvbGUud2FybigndG9nZ2xlTW9uaXRvcmVkUG9pbnRzV2l0aFNhbXBsZXJWaXNpYmlsaXR5JywgdmlzaWJsZSk7XG4vLyB9O1xuXG5leHBvcnQgY29uc3QgZWRnZXNTcGVjaWZpY0xvZ2ljID0gKGRlZmF1bHRPbiwgbWFwKSA9PiB7XG4gIGxldCBjaGVja2JveCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNlZGdlcy1jaGVja2JveCcpO1xuICBpZiAoY2hlY2tib3ggPT0gbnVsbCkgcmV0dXJuO1xuICBjaGVja2JveC5jaGVja2VkID0gZGVmYXVsdE9uO1xufTtcblxuY29uc3QgY3VzdG9tQ29udHJvbHMgPSAobWFwKSA9PiB7XG4gIHJldHVybiBbXG4gICAge1xuICAgICAgbGFiZWw6IGkxOG4udCgnbWFwLmxheWVycy5uZXR3b3JrX2xpbmVzJyksXG4gICAgICBpZDogJ2VkZ2VzLWNoZWNrYm94JyxcbiAgICAgIGlucHV0VHlwZTogJ2NoZWNrYm94JyxcbiAgICAgIGRlbnlGb3JXYTogWzUxOF0sXG4gICAgICBvbkNoYW5nZTogKGlzQ2hlY2tlZCkgPT4gdG9nZ2xlRWRnZXNWaXNpYmlsaXR5KGlzQ2hlY2tlZCwgbWFwKSxcbiAgICB9LFxuXG4gICAge1xuICAgICAgbGFiZWw6ICdTaG93IG9ubHkgbW9uaXRvcmVkIHBvaW50cycsXG4gICAgICBpZDogJ21vbml0b3JlZC1wb2ludHMtY2hlY2tib3gnLFxuICAgICAgaW5wdXRUeXBlOiAnY2hlY2tib3gnLFxuICAgICAgb25DaGFuZ2U6IChpc0NoZWNrZWQpID0+ICgpID0+IHt9LFxuICAgIH0sXG5cbiAgICB7XG4gICAgICBsYWJlbDogJ1Nob3cgb25seSBwb2ludHMgd2l0aCBzYW1wbGVyJyxcbiAgICAgIGlkOiAnbW9uaXRvcmVkLXBvaW50cy13aXRoLXNhbXBsZXItY2hlY2tib3gnLFxuICAgICAgaW5wdXRUeXBlOiAnY2hlY2tib3gnLFxuICAgICAgb25DaGFuZ2U6IChpc0NoZWNrZWQpID0+ICgpID0+IHt9LFxuICAgIH0sXG5cbiAgICAvLyB7XG4gICAgLy8gICBsYWJlbDogJ0Fub3RoZXIgY3VzdG9tIGZlYXR1cmUnLFxuICAgIC8vICAgaWQ6ICdjdXN0b20tZmVhdHVyZS1jaGVja2JveCcsXG4gICAgLy8gICBpbnB1dFR5cGU6ICdjaGVja2JveCcsXG4gICAgLy8gICBvbkNoYW5nZTogKGlzQ2hlY2tlZCkgPT4gY29uc29sZS5sb2coYEFub3RoZXIgZmVhdHVyZSBpcyBub3cgJHtpc0NoZWNrZWQgPyAnZW5hYmxlZCcgOiAnZGlzYWJsZWQnfWApLFxuICAgIC8vIH0sXG4gIF07XG59O1xuXG5jb25zdCBhcHBlbmRDdXN0b21DaGVja2JveFRvTGVhZmxldHNMYXllckJveCA9IChcbiAgbGVhZmxldHNDb250YWluZXIsXG4gIGN1c3RvbUNvbnRhaW5lcixcbikgPT4ge1xuICBMLkRvbUV2ZW50Lm9uKGxlYWZsZXRzQ29udGFpbmVyLCAnbW91c2VvdmVyJywgZnVuY3Rpb24gKCkge1xuICAgIGN1c3RvbUNvbnRhaW5lci5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcbiAgfSk7XG5cbiAgTC5Eb21FdmVudC5vbihsZWFmbGV0c0NvbnRhaW5lciwgJ21vdXNlb3V0JywgZnVuY3Rpb24gKCkge1xuICAgIGN1c3RvbUNvbnRhaW5lci5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICB9KTtcbn07XG5cbmNvbnN0IGNyZWF0ZUN1c3RvbUNvbnRyb2wgPSAoY29udHJvbCwgY29udGFpbmVyKSA9PiB7XG4gIGxldCBjb250cm9sQ29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gIGNvbnRyb2xDb250YWluZXIuY2xhc3NOYW1lID0gJ2xlYWZsZXQtY29udHJvbC1sYXllcnMtb3ZlcmxheXMnO1xuICBjb250cm9sQ29udGFpbmVyLmlubmVySFRNTCA9IGBcbiAgICAgIDxsYWJlbD5cbiAgICAgICAgPGlucHV0IHR5cGU9XCIke2NvbnRyb2wuaW5wdXRUeXBlfVwiIGlkPVwiJHtjb250cm9sLmlkfVwiIC8+ICR7Y29udHJvbC5sYWJlbH1cbiAgICAgIDwvbGFiZWw+XG4gICAgYDtcblxuICBjb250cm9sQ29udGFpbmVyXG4gICAgLnF1ZXJ5U2VsZWN0b3IoYCMke2NvbnRyb2wuaWR9YClcbiAgICAuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgIGNvbnN0IGlzQ2hlY2tlZCA9IGUudGFyZ2V0LmNoZWNrZWQ7XG4gICAgICBjb250cm9sLm9uQ2hhbmdlKGlzQ2hlY2tlZCk7XG4gICAgfSk7XG5cbiAgY29udHJvbENvbnRhaW5lci5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICBjb250YWluZXI/LmFwcGVuZENoaWxkKGNvbnRyb2xDb250YWluZXIpO1xuXG4gIGFwcGVuZEN1c3RvbUNoZWNrYm94VG9MZWFmbGV0c0xheWVyQm94KGNvbnRhaW5lciwgY29udHJvbENvbnRhaW5lcik7XG59O1xuXG5leHBvcnQgY29uc3QgY3VzdG9tRnVuY3Rpb25hbGl0eUZvck1hcExheWVycyA9IChcbiAgbWFwLFxuICBtYXBUeXBlcyxcbiAgZGVmYXVsdE9uID0gdHJ1ZSxcbiAgd2FJZCxcbiAgZm9yV1dUUERhc2hib2FyZCxcbikgPT4ge1xuICBsZXQgY29udHJvbGxlciA9IEwuY29udHJvbFxuICAgIC5sYXllcnMobWFwVHlwZXMsIHt9LCB7IHBvc2l0aW9uOiAnYm90dG9tcmlnaHQnIH0pXG4gICAgLmFkZFRvKG1hcCk7XG4gIGxldCBjb250YWluZXIgPSBjb250cm9sbGVyLmdldENvbnRhaW5lcigpO1xuXG4gIGlmIChmb3JXV1RQRGFzaGJvYXJkKSB7XG4gICAgY3VzdG9tQ29udHJvbHMobWFwKS5mb3JFYWNoKChjb250cm9sKSA9PiB7XG4gICAgICBpZiAoY29udHJvbC5kZW55Rm9yV2EgJiYgY29udHJvbC5kZW55Rm9yV2EuaW5jbHVkZXMod2FJZCkpIHJldHVybjtcblxuICAgICAgY3JlYXRlQ3VzdG9tQ29udHJvbChjb250cm9sLCBjb250YWluZXIpO1xuICAgICAgZWRnZXNTcGVjaWZpY0xvZ2ljKGRlZmF1bHRPbiwgbWFwKTtcbiAgICB9KTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGluaXRpYWxpemVNYXAgPSAoXG4gIG1hcFpvb21MZXZlbCxcbiAgbWFwQm94U3R5bGUsXG4gIG1hcEJveFNhdGVsbGl0ZVN0eWxlLFxuICBtYXBSZWYsXG4gIGRpc3BhdGNoLFxuICBpc1ZhbGlkQXJlYSxcbiAgYXJlYVRvQ2VudGVyQnksXG4gIHNldE1hcFpvb21MZXZlbCxcbiAgZm9yV1dUUERhc2hib2FyZCxcbiAgc2hvd0VkZ2VzQnlEZWZhdWx0LFxuICB3YUlkID0gMCxcbikgPT4ge1xuICAvLyBAdHMtaWdub3JlXG4gIG1hcFJlZi5jdXJyZW50ID0gbmV3IEwuTWFwKCdtYXAnLCB7XG4gICAgY2VudGVyOiBbMCwgMF0sXG4gICAgem9vbVNuYXA6IDEsXG4gICAgem9vbTogbWFwWm9vbUxldmVsLFxuICAgIGF0dHJpYnV0aW9uQ29udHJvbDogZmFsc2UsXG4gICAgcHJlZmVyQ2FudmFzOiBmYWxzZSxcbiAgfSk7XG5cbiAgaWYgKGZvcldXVFBEYXNoYm9hcmQpIGRpc3BhdGNoKHNldE1hcChtYXBSZWYuY3VycmVudCkpO1xuXG4gIG1hcFJlZi5jdXJyZW50LndoZW5SZWFkeSgoKSA9PiB7XG4gICAgbGV0IG1hcCA9IG1hcFJlZi5jdXJyZW50O1xuICAgIGNvbnN0IG1hcFR5cGVzID0gYmFzZU1hcHMobWFwQm94U3R5bGUsIG1hcEJveFNhdGVsbGl0ZVN0eWxlKTtcblxuICAgIGN1c3RvbUZ1bmN0aW9uYWxpdHlGb3JNYXBMYXllcnMoXG4gICAgICBtYXAsXG4gICAgICBtYXBUeXBlcyxcbiAgICAgIHNob3dFZGdlc0J5RGVmYXVsdCxcbiAgICAgIHdhSWQsXG4gICAgICBmb3JXV1RQRGFzaGJvYXJkLFxuICAgICk7XG5cbiAgICAvLyBUaGUgbmFtZSBvZiB0aGUgbGF5ZXIgY2hhbmdlcyBiZXR3ZWVuIGxhbmd1YWdlcyBzbyB0aGVyZSB3YXMgYSBuZWVkIHRvIGdldCB0byB0aGUgZmlyc3QgbGF5ZXJcbiAgICBPYmplY3QudmFsdWVzKG1hcFR5cGVzKVswXS5hZGRUbyhtYXApO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoIW1hcFJlZi5jdXJyZW50KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdHJ5IHtcbiAgICAgICAgbWFwUmVmLmN1cnJlbnQuaW52YWxpZGF0ZVNpemUodHJ1ZSk7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignZXJyJywgZXJyKTtcbiAgICAgIH1cblxuICAgICAgZGlzcGF0Y2goc3RvcmVNYXAobWFwUmVmLmN1cnJlbnQpKTtcbiAgICAgIGRpc3BhdGNoKHNpZGVOYXZFeHBhbmRlZCh0cnVlKSk7XG5cbiAgICAgIG1hcC5vbigna2V5ZG93bicsIChldmVudCkgPT4ge1xuICAgICAgICBpZiAoZXZlbnQub3JpZ2luYWxFdmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICAgICAgbWFwLmNsb3NlUG9wdXAoKTtcbiAgICAgICAgICBkb2N1bWVudC5ib2R5LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0sIDApO1xuICAgIGlmIChtYXBSZWYuY3VycmVudCAmJiBpc1ZhbGlkQXJlYShhcmVhVG9DZW50ZXJCeSkpIHtcbiAgICAgIG1hcFJlZi5jdXJyZW50LmZpdEJvdW5kcyhhcmVhVG9DZW50ZXJCeSk7XG4gICAgfVxuICB9KTtcblxuICBtYXBSZWYuY3VycmVudC5vbignem9vbWVuZCcsIGZ1bmN0aW9uIChlKSB7XG4gICAgaWYgKCFtYXBSZWYuY3VycmVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBsZXQgem9vbSA9IG1hcFJlZi5jdXJyZW50LmdldFpvb20oKTtcbiAgICBzZXRNYXBab29tTGV2ZWwoem9vbSk7XG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGNsdXN0ZXJHcm91cE9wdGlvbnMgPSB7XG4gIHNwaWRlcmZ5T25NYXhab29tOiBmYWxzZSxcbiAgc2hvd0NvdmVyYWdlT25Ib3ZlcjogZmFsc2UsXG4gIHpvb21Ub0JvdW5kc09uQ2xpY2s6IHRydWUsXG4gIGFuaW1hdGU6IHRydWUsXG4gIGRpc2FibGVDbHVzdGVyaW5nQXRab29tOiAxMCxcbiAgcmVtb3ZlT3V0c2lkZVZpc2libGVCb3VuZHM6IGZhbHNlLFxuICBjaHVua2VkTG9hZGluZzogdHJ1ZSxcbiAgaWNvbkNyZWF0ZUZ1bmN0aW9uOiAoY2x1c3RlcikgPT4ge1xuICAgIHJldHVybiBuZXcgTC5EaXZJY29uKHtcbiAgICAgIGh0bWw6IGA8ZGl2PjxzcGFuPiR7Y2x1c3Rlci5fY2hpbGRDb3VudH08L3NwYW4+PC9kaXY+XG4gICAgICAgICAgICAgPGRpdiBjbGFzcz0nbWFya2VyLWNsdXN0ZXItbmFtZSc+JHtpMThuLnQoJ2luZHVzdHJpZXMnKX08L2Rpdj5gLFxuICAgICAgY2xhc3NOYW1lOiAnbWFya2VyLWNsdXN0ZXInLFxuICAgICAgaWNvblNpemU6IG5ldyBMLlBvaW50KDQwLCA0MCksXG4gICAgfSk7XG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3Qgem9vbUxldmVscyA9IHtcbiAgMTogJ1hMYXJnZScsXG4gIDI6ICdYTGFyZ2UnLFxuICAzOiAnWExhcmdlJyxcbiAgNDogJ1hMYXJnZScsXG4gIDU6ICdYTGFyZ2UnLFxuICA2OiAnWExhcmdlJyxcbiAgNzogJ0xhcmdlJyxcbiAgODogJ0xhcmdlJyxcbiAgOTogJ0xhcmdlJyxcbiAgMTA6ICdMYXJnZScsXG4gIDExOiAnTUxhcmdlJyxcbiAgMTI6ICdNTGFyZ2UnLFxuICAxMzogJ01MYXJnZScsXG4gIDE0OiAnTUxhcmdlJyxcbiAgMTU6ICdNZWRpdW0nLFxuICAxNjogJ01lZGl1bScsXG4gIDE3OiAnU21hbGwnLFxuICAxODogJ1NtYWxsJyxcbn07XG5cbi8vIGV4cG9ydCBjb25zdCBmaWx0ZXJQb2ludHMgPSAocG9pbnRzLCBoYXNEZXZpY2UpID0+XG4vLyAgIHBvaW50cy5maWx0ZXIoKHBvaW50KSA9PiBwb2ludC5oYXNfZGV2aWNlID09PSBoYXNEZXZpY2UpO1xuXG4vLyBVdGlsaXR5IGZ1bmN0aW9uIGZvciBmaWx0ZXJpbmcgcG9pbnRzIGJhc2VkIG9uIG9wdGlvbnNcbmV4cG9ydCBjb25zdCBmaWx0ZXJQb2ludHMgPSAoXG4gIHBvaW50czogSVBvaW50W10gPSBbXSxcbiAge1xuICAgIG9ubHlNb25pdG9yZWQsXG4gICAgd2l0aFNhbXBsZXIsXG4gIH06IHsgb25seU1vbml0b3JlZD86IGJvb2xlYW47IHdpdGhTYW1wbGVyPzogYm9vbGVhbiB9ID0ge30sXG4pOiBJUG9pbnRbXSA9PiB7XG4gIHJldHVybiBwb2ludHMuZmlsdGVyKChwb2ludCkgPT4ge1xuICAgIGlmIChvbmx5TW9uaXRvcmVkID09PSB0cnVlICYmICFwb2ludC5oYXNfZGV2aWNlKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKG9ubHlNb25pdG9yZWQgPT09IGZhbHNlICYmIHBvaW50Lmhhc19kZXZpY2UpIHJldHVybiBmYWxzZTtcbiAgICBpZiAod2l0aFNhbXBsZXIgPT09IHRydWUgJiYgIXBvaW50Lmhhc19zYW1wbGVyKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKHdpdGhTYW1wbGVyID09PSBmYWxzZSAmJiBwb2ludC5oYXNfc2FtcGxlcikgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiB0cnVlO1xuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBmaW5kUG9pbnQgPSAocG9pbnRzLCBwb2ludElkLCBoYXNEZXZpY2VDaGVjaykgPT5cbiAgcG9pbnRzLmZpbmQoKHBvaW50KSA9PiBwb2ludC5pZCA9PT0gcG9pbnRJZCAmJiBoYXNEZXZpY2VDaGVjayhwb2ludCkpO1xuXG5leHBvcnQgY29uc3QgZmlsdGVyRWRnZXMgPSAoZWRnZXMsIHBvaW50cywgaXNNb25pdG9yZWQpID0+XG4gIGVkZ2VzLmZpbHRlcigoZWRnZSkgPT4ge1xuICAgIGNvbnN0IHNvdXJjZVBvaW50ID0gZmluZFBvaW50KHBvaW50cywgZWRnZS5zb3VyY2VfcG9pbnRfaWQsIChwb2ludCkgPT5cbiAgICAgIGlzTW9uaXRvcmVkXG4gICAgICAgID8gcG9pbnQuaGFzX2RldmljZSB8fCBlZGdlLmRlc2NlbmRhbnRzX2hhc19kZXZpY2VcbiAgICAgICAgOiAhcG9pbnQuZGVzY2VuZGFudHNfaGFzX2RldmljZSxcbiAgICApO1xuXG4gICAgY29uc3QgcGFyZW50UG9pbnQgPSBmaW5kUG9pbnQocG9pbnRzLCBlZGdlLnRhcmdldF9wb2ludF9pZCwgKHBvaW50KSA9PlxuICAgICAgaXNNb25pdG9yZWRcbiAgICAgICAgPyBlZGdlLmRlc2NlbmRhbnRzX2hhc19kZXZpY2UgfHwgc291cmNlUG9pbnQgIT09IHVuZGVmaW5lZFxuICAgICAgICA6ICFwb2ludC5kZXNjZW5kYW50c19oYXNfZGV2aWNlLFxuICAgICk7XG5cbiAgICByZXR1cm4gc291cmNlUG9pbnQgJiYgcGFyZW50UG9pbnQ7XG4gIH0pO1xuXG5leHBvcnQgY29uc3Qgc2V0dXBDaGVja2JveExpc3RlbmVyID0gKHNlbGVjdG9yLCBvbkNoYW5nZSkgPT4ge1xuICBjb25zdCBjaGVja2JveCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IpO1xuICBpZiAoY2hlY2tib3ggPT09IG51bGwpIHJldHVybjtcbiAgY2hlY2tib3guYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKCkgPT4gb25DaGFuZ2UoY2hlY2tib3guY2hlY2tlZCkpO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBQSxRQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxRQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxLQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxtQkFBQSxHQUFBSCxPQUFBO0FBR08sSUFBTUksY0FBYyxHQUFHLFNBQWpCQSxjQUFjQSxDQUFJQyxNQUFNLEVBQUVDLFdBQVcsRUFBRUMsY0FBYyxFQUFLO0VBQ3JFLElBQUlDLFdBQWdCLEdBQUdILE1BQU0sQ0FBQ0ksT0FBTztFQUNyQyxJQUFJSCxXQUFXLENBQUNDLGNBQWMsQ0FBQyxFQUFFO0lBQy9CQyxXQUFXLENBQUNFLFNBQVMsQ0FBQ0gsY0FBYyxFQUFFO01BQUVJLE9BQU8sRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQUUsQ0FBQyxDQUFDO0VBQzVELENBQUMsTUFBTTtJQUNMLElBQU1DLEtBQVksR0FBRyxFQUFFO0lBRXZCLEtBQUssSUFBTUMsUUFBUSxJQUFJTCxXQUFXLENBQUNNLE9BQU8sRUFBRTtNQUMxQyxJQUNFTixXQUFXLENBQUNNLE9BQU8sQ0FBQ0QsUUFBUSxDQUFDLENBQUNFLFlBQVksS0FBSyxNQUFNLElBQ3JEUCxXQUFXLENBQUNNLE9BQU8sQ0FBQ0QsUUFBUSxDQUFDLENBQUNFLFlBQVksS0FBSyxPQUFPLEVBQ3REO1FBQ0FILEtBQUssQ0FBQ0ksSUFBSSxDQUFDUixXQUFXLENBQUNNLE9BQU8sQ0FBQ0QsUUFBUSxDQUFDLENBQUM7TUFDM0M7SUFDRjtJQUVBLElBQUlJLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDQyxnQkFBQyxDQUFDQyxZQUFZLENBQUNSLEtBQUssQ0FBQyxDQUFDUyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUNDLE1BQU0sS0FBSyxDQUFDLEVBQUU7TUFDL0RkLFdBQVcsQ0FBQ0UsU0FBUyxDQUFDUyxnQkFBQyxDQUFDQyxZQUFZLENBQUNSLEtBQUssQ0FBQyxDQUFDUyxTQUFTLENBQUMsQ0FBQyxFQUFFO1FBQ3ZEVixPQUFPLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRztNQUNwQixDQUFDLENBQUM7SUFDSjtFQUNGO0VBQ0E7QUFDRixDQUFDO0FBQUNZLE9BQUEsQ0FBQW5CLGNBQUEsR0FBQUEsY0FBQTtBQUVLLElBQU1FLFdBQVcsR0FBRyxTQUFkQSxXQUFXQSxDQUFJa0IsSUFBSSxFQUFLO0VBQ25DLE9BQU9BLElBQUksSUFBSUEsSUFBSSxDQUFDRixNQUFNLEdBQUcsQ0FBQyxJQUFJTCxNQUFNLENBQUNDLElBQUksQ0FBQ00sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUNGLE1BQU0sR0FBRyxDQUFDO0FBQ25FLENBQUM7QUFBQ0MsT0FBQSxDQUFBakIsV0FBQSxHQUFBQSxXQUFBO0FBRUssSUFBTW1CLG9CQUFvQixHQUFHLFNBQXZCQSxvQkFBb0JBLENBQUlDLFdBQVcsRUFBRXJCLE1BQU0sRUFBRXNCLE1BQU0sRUFBRUMsS0FBSyxFQUFLO0VBQzFFLE9BQ0VGLFdBQVcsQ0FBQ0csR0FBRyxLQUFLQyxTQUFTLElBQzdCekIsTUFBTSxDQUFDSSxPQUFPLEtBQUssSUFBSSxJQUN2Qm1CLEtBQUssS0FBS0UsU0FBUyxJQUNuQkgsTUFBTSxLQUFLRyxTQUFTO0FBRXhCLENBQUM7QUFBQ1AsT0FBQSxDQUFBRSxvQkFBQSxHQUFBQSxvQkFBQTtBQUVLLElBQU1NLDRCQUE0QixHQUFHLFNBQS9CQSw0QkFBNEJBLENBQ3ZDSCxLQUFLLEVBQ0xJLEtBQUssRUFDTEMsTUFBTSxFQUNONUIsTUFBTSxFQUNOc0IsTUFBTSxFQUNIO0VBQ0gsT0FDRU0sTUFBTSxDQUFDSixHQUFHLEtBQUtDLFNBQVMsSUFDeEJ6QixNQUFNLENBQUNJLE9BQU8sS0FBSyxJQUFJLElBQ3ZCbUIsS0FBSyxDQUFDTixNQUFNLElBQUksQ0FBQyxJQUNqQlUsS0FBSyxDQUFDVixNQUFNLElBQUksQ0FBQyxJQUNqQkssTUFBTSxDQUFDTCxNQUFNLElBQUksQ0FBQztBQUV0QixDQUFDO0FBQUNDLE9BQUEsQ0FBQVEsNEJBQUEsR0FBQUEsNEJBQUE7QUFFSyxJQUFNRyx5QkFBeUIsR0FBRyxTQUE1QkEseUJBQXlCQSxDQUNwQ0MsWUFBc0IsRUFDdEJDLFlBQVksRUFDVDtFQUNILE9BQ0VELFlBQVksQ0FBQ0UsUUFBUSxDQUFDRCxZQUFZLENBQUNyQixZQUFZLENBQUMsSUFDaERxQixZQUFZLENBQUNFLGdCQUFnQixLQUFLLFNBQVM7QUFFL0MsQ0FBQztBQUFDZixPQUFBLENBQUFXLHlCQUFBLEdBQUFBLHlCQUFBO0FBRUssSUFBTUssa0JBQWtCLEdBQUcsU0FBckJBLGtCQUFrQkEsQ0FBSUMsS0FBSyxFQUFFQyxTQUFTLEVBQUs7RUFDdEQsSUFBSUMsSUFBSSxHQUFHRixLQUFLLENBQUNHLE9BQU8sQ0FBQ0QsSUFBSTtFQUM3QkEsSUFBSSxDQUFDQyxPQUFPLENBQUNDLFFBQVEsR0FBR0MsZUFBZSxDQUFDSixTQUFTLENBQUMsQ0FBQ0csUUFBUTtFQUMzREYsSUFBSSxDQUFDQyxPQUFPLENBQUNHLFVBQVUsR0FBR0QsZUFBZSxDQUFDSixTQUFTLENBQUMsQ0FBQ0ssVUFBVTtFQUMvRE4sS0FBSyxDQUFDTyxPQUFPLENBQUNMLElBQUksQ0FBQztFQUNuQkYsS0FBSyxDQUFDUSxVQUFVLENBQUMsQ0FBQyxDQUFDO0FBQ3JCLENBQUM7QUFBQ3pCLE9BQUEsQ0FBQWdCLGtCQUFBLEdBQUFBLGtCQUFBO0FBRUssSUFBTVUsb0JBQW9CLEdBQUcsU0FBdkJBLG9CQUFvQkEsQ0FBSVQsS0FBSyxFQUFFQyxTQUFTLEVBQUs7RUFDeEQsSUFBSUMsSUFBSSxHQUFHRixLQUFLLENBQUNHLE9BQU8sQ0FBQ0QsSUFBSTtFQUM3QixJQUFJUSxlQUFlLEdBQUdWLEtBQUssQ0FBQ1csb0JBQW9CO0VBQ2hELElBQUlDLFFBQVEsR0FBRztJQUNiQyxPQUFPLEVBQUViLEtBQUssQ0FBQ2MsZUFBZSxJQUFJZCxLQUFLLENBQUNlLFdBQVc7SUFDbkRDLFNBQVMsRUFBRWhCLEtBQUssQ0FBQ2MsZUFBZTtJQUNoQ0csS0FBSyxFQUFFakIsS0FBSyxDQUFDZTtFQUNmLENBQUM7RUFFRCxJQUFJZixLQUFLLENBQUNrQixrQkFBa0IsS0FBSyxDQUFDLEVBQUU7SUFDbEMsSUFBSVIsZUFBZSxFQUFFO01BQ25CUixJQUFJLENBQUNDLE9BQU8sQ0FBQ0MsUUFBUSxHQUFHZSxpQkFBaUIsQ0FBQ2xCLFNBQVMsRUFBRVcsUUFBUSxDQUFDLENBQUNSLFFBQVE7TUFDdkVGLElBQUksQ0FBQ0MsT0FBTyxDQUFDRyxVQUFVLEdBQUdhLGlCQUFpQixDQUN6Q2xCLFNBQVMsRUFDVFcsUUFDRixDQUFDLENBQUNOLFVBQVU7SUFDZCxDQUFDLE1BQU07TUFDTEosSUFBSSxDQUFDQyxPQUFPLENBQUNDLFFBQVEsR0FBR2dCLG1CQUFtQixDQUFDbkIsU0FBUyxDQUFDLENBQUNHLFFBQVE7TUFDL0RGLElBQUksQ0FBQ0MsT0FBTyxDQUFDRyxVQUFVLEdBQUdjLG1CQUFtQixDQUFDbkIsU0FBUyxDQUFDLENBQUNLLFVBQVU7SUFDckU7RUFDRixDQUFDLE1BQU07SUFDTCxJQUFJTixLQUFLLENBQUNrQixrQkFBa0IsS0FBSyxDQUFDLEVBQUU7TUFDbENoQixJQUFJLENBQUNDLE9BQU8sQ0FBQ0MsUUFBUSxHQUFHaUIsaUJBQWlCLENBQUNwQixTQUFTLEVBQUVXLFFBQVEsQ0FBQyxDQUFDUixRQUFRO01BQ3ZFRixJQUFJLENBQUNDLE9BQU8sQ0FBQ0csVUFBVSxHQUFHZSxpQkFBaUIsQ0FDekNwQixTQUFTLEVBQ1RXLFFBQ0YsQ0FBQyxDQUFDTixVQUFVO0lBQ2QsQ0FBQyxNQUFNO01BQ0xKLElBQUksQ0FBQ0MsT0FBTyxDQUFDQyxRQUFRLEdBQUdrQixjQUFjLENBQUNyQixTQUFTLEVBQUVXLFFBQVEsQ0FBQyxDQUFDUixRQUFRO01BQ3BFRixJQUFJLENBQUNDLE9BQU8sQ0FBQ0csVUFBVSxHQUFHZ0IsY0FBYyxDQUFDckIsU0FBUyxFQUFFVyxRQUFRLENBQUMsQ0FBQ04sVUFBVTtJQUMxRTtFQUNGO0VBRUFOLEtBQUssQ0FBQ08sT0FBTyxDQUFDTCxJQUFJLENBQUM7QUFDckIsQ0FBQztBQUFDbkIsT0FBQSxDQUFBMEIsb0JBQUEsR0FBQUEsb0JBQUE7QUFFRixJQUFNVyxtQkFBbUIsR0FBRyxTQUF0QkEsbUJBQW1CQSxDQUFJbkIsU0FBUyxFQUFLO0VBQ3pDLE9BQU87SUFDTEcsUUFBUSxFQUFFLENBQUNILFNBQVMsR0FBRyxHQUFHLEVBQUVBLFNBQVMsR0FBRyxHQUFHLENBQWU7SUFDMURLLFVBQVUsRUFBRSxDQUFDTCxTQUFTLEdBQUcsR0FBRyxFQUFFQSxTQUFTLEdBQUcsR0FBRztFQUMvQyxDQUFDO0FBQ0gsQ0FBQztBQUVNLElBQU1JLGVBQWUsR0FBRyxTQUFsQkEsZUFBZUEsQ0FBSUosU0FBUyxFQUFLO0VBQzVDLE9BQU87SUFDTEcsUUFBUSxFQUFFLENBQUNILFNBQVMsR0FBRyxHQUFHLEVBQUVBLFNBQVMsR0FBRyxHQUFHLENBQWU7SUFDMURLLFVBQVUsRUFBRSxDQUFDTCxTQUFTLEdBQUcsQ0FBQyxFQUFFQSxTQUFTLEdBQUcsQ0FBQztFQUMzQyxDQUFDO0FBQ0gsQ0FBQztBQUFDbEIsT0FBQSxDQUFBc0IsZUFBQSxHQUFBQSxlQUFBO0FBRUssSUFBTWMsaUJBQWlCLEdBQUcsU0FBcEJBLGlCQUFpQkEsQ0FBSWxCLFNBQVMsRUFBRVcsUUFBUSxFQUFLO0VBQ3hELElBQUlBLFFBQVEsQ0FBQ0MsT0FBTyxFQUFFO0lBQ3BCLElBQUlELFFBQVEsQ0FBQ0ksU0FBUyxFQUFFO01BQ3RCLE9BQU87UUFDTFosUUFBUSxFQUFFLENBQUNILFNBQVMsR0FBRyxJQUFJLEVBQUVBLFNBQVMsR0FBRyxHQUFHLENBQWU7UUFDM0RLLFVBQVUsRUFBRSxDQUFDTCxTQUFTLEdBQUcsQ0FBQyxFQUFFQSxTQUFTLEdBQUcsQ0FBQztNQUMzQyxDQUFDO0lBQ0gsQ0FBQyxNQUFNO01BQ0wsT0FBTztRQUNMRyxRQUFRLEVBQUUsQ0FBQ0gsU0FBUyxHQUFHLElBQUksRUFBRUEsU0FBUyxHQUFHLEdBQUcsQ0FBZTtRQUMzREssVUFBVSxFQUFFLENBQUNMLFNBQVMsR0FBRyxDQUFDLEVBQUVBLFNBQVMsR0FBRyxDQUFDO01BQzNDLENBQUM7SUFDSDtFQUNGLENBQUMsTUFBTTtJQUNMLE9BQU87TUFDTEcsUUFBUSxFQUFFLENBQUNILFNBQVMsR0FBRyxJQUFJLEVBQUVBLFNBQVMsR0FBRyxHQUFHLENBQWU7TUFDM0RLLFVBQVUsRUFBRSxDQUFDTCxTQUFTLEdBQUcsQ0FBQyxFQUFFQSxTQUFTLEdBQUcsQ0FBQztJQUMzQyxDQUFDO0VBQ0g7QUFDRixDQUFDO0FBQUNsQixPQUFBLENBQUFvQyxpQkFBQSxHQUFBQSxpQkFBQTtBQUVLLElBQU1FLGlCQUFpQixHQUFHLFNBQXBCQSxpQkFBaUJBLENBQUlwQixTQUFTLEVBQUVXLFFBQVEsRUFBSztFQUN4RCxJQUFJQSxRQUFRLENBQUNDLE9BQU8sRUFBRTtJQUNwQixJQUFJRCxRQUFRLENBQUNJLFNBQVMsRUFBRTtNQUN0QixPQUFPO1FBQ0xaLFFBQVEsRUFBRSxDQUFDSCxTQUFTLEdBQUcsR0FBRyxFQUFFQSxTQUFTLEdBQUcsR0FBRyxDQUFDO1FBQzVDSyxVQUFVLEVBQUUsQ0FBQ0wsU0FBUyxHQUFHLENBQUMsSUFBSSxFQUFFQSxTQUFTLEdBQUcsR0FBRztNQUNqRCxDQUFDO0lBQ0gsQ0FBQyxNQUFNO01BQ0wsT0FBTztRQUNMRyxRQUFRLEVBQUUsQ0FBQ0gsU0FBUyxHQUFHLEdBQUcsRUFBRUEsU0FBUyxHQUFHLEdBQUcsQ0FBQztRQUM1Q0ssVUFBVSxFQUFFLENBQUNMLFNBQVMsR0FBRyxDQUFDLElBQUksRUFBRUEsU0FBUyxHQUFHLEdBQUc7TUFDakQsQ0FBQztJQUNIO0VBQ0YsQ0FBQyxNQUFNO0lBQ0wsT0FBTztNQUNMRyxRQUFRLEVBQUUsQ0FBQ0gsU0FBUyxHQUFHLEdBQUcsRUFBRUEsU0FBUyxHQUFHLEdBQUcsQ0FBQztNQUM1Q0ssVUFBVSxFQUFFLENBQUNMLFNBQVMsR0FBRyxLQUFLLEVBQUVBLFNBQVMsR0FBRyxJQUFJO0lBQ2xELENBQUM7RUFDSDtBQUNGLENBQUM7QUFBQ2xCLE9BQUEsQ0FBQXNDLGlCQUFBLEdBQUFBLGlCQUFBO0FBRUssSUFBTUMsY0FBYyxHQUFHLFNBQWpCQSxjQUFjQSxDQUFJckIsU0FBUyxFQUFFVyxRQUFRLEVBQUs7RUFDckQsSUFBSUEsUUFBUSxDQUFDQyxPQUFPLEVBQUU7SUFDcEIsSUFBSUQsUUFBUSxDQUFDSSxTQUFTLEVBQUU7TUFDdEIsT0FBTztRQUNMWixRQUFRLEVBQUUsQ0FBQ0gsU0FBUyxHQUFHLEdBQUcsRUFBRUEsU0FBUyxHQUFHLEdBQUcsQ0FBQztRQUM1Q0ssVUFBVSxFQUFFLENBQUNMLFNBQVMsR0FBRyxDQUFDLEdBQUcsRUFBRUEsU0FBUyxHQUFHLEdBQUc7TUFDaEQsQ0FBQztJQUNILENBQUMsTUFBTTtNQUNMLE9BQU87UUFDTEcsUUFBUSxFQUFFLENBQUNILFNBQVMsR0FBRyxHQUFHLEVBQUVBLFNBQVMsR0FBRyxHQUFHLENBQUM7UUFDNUNLLFVBQVUsRUFBRSxDQUFDTCxTQUFTLEdBQUcsQ0FBQyxHQUFHLEVBQUVBLFNBQVMsR0FBRyxHQUFHO01BQ2hELENBQUM7SUFDSDtFQUNGLENBQUMsTUFBTTtJQUNMLE9BQU87TUFDTEcsUUFBUSxFQUFFLENBQUNILFNBQVMsR0FBRyxHQUFHLEVBQUVBLFNBQVMsR0FBRyxHQUFHLENBQUM7TUFDNUNLLFVBQVUsRUFBRSxDQUFDTCxTQUFTLEdBQUcsQ0FBQyxFQUFFQSxTQUFTLEdBQUcsR0FBRztJQUM3QyxDQUFDO0VBQ0g7QUFDRixDQUFDO0FBQUNsQixPQUFBLENBQUF1QyxjQUFBLEdBQUFBLGNBQUE7QUFFSyxJQUFNQyxlQUFlLEdBQUcsU0FBbEJBLGVBQWVBLENBQUlsQyxHQUFHLEVBQUs7RUFDdEMsSUFBSW1DLE1BQU0sR0FBR25DLEdBQUcsQ0FBQ2YsT0FBTztFQUN4QixJQUFJMkIsU0FBUyxHQUFHWixHQUFHLENBQUNvQyxLQUFLO0VBRXpCLEtBQUssSUFBTXBELFFBQVEsSUFBSW1ELE1BQU0sRUFBRTtJQUM3QixJQUFJOUIseUJBQXlCLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRThCLE1BQU0sQ0FBQ25ELFFBQVEsQ0FBQyxDQUFDLEVBQUU7TUFDL0QwQixrQkFBa0IsQ0FBQ3lCLE1BQU0sQ0FBQ25ELFFBQVEsQ0FBQyxFQUFFNEIsU0FBUyxDQUFDO0lBQ2pEO0lBRUEsSUFBSVAseUJBQXlCLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLEVBQUU4QixNQUFNLENBQUNuRCxRQUFRLENBQUMsQ0FBQyxFQUFFO01BQ2xFb0Msb0JBQW9CLENBQUNlLE1BQU0sQ0FBQ25ELFFBQVEsQ0FBQyxFQUFFNEIsU0FBUyxDQUFDO0lBQ25EO0lBRUEsSUFDRVAseUJBQXlCLENBQUMsQ0FBQyxVQUFVLEVBQUUsYUFBYSxDQUFDLEVBQUU4QixNQUFNLENBQUNuRCxRQUFRLENBQUMsQ0FBQyxFQUN4RTtNQUNBb0Msb0JBQW9CLENBQUNlLE1BQU0sQ0FBQ25ELFFBQVEsQ0FBQyxFQUFFNEIsU0FBUyxDQUFDO0lBQ25EO0VBQ0Y7QUFDRixDQUFDO0FBQUNsQixPQUFBLENBQUF3QyxlQUFBLEdBQUFBLGVBQUE7QUFFSyxJQUFNRyxRQUFRLEdBQUcsU0FBWEEsUUFBUUEsQ0FBSUMsV0FBVyxFQUFLO0VBQ3ZDLE9BQU9oRCxnQkFBQyxDQUFDaUQsU0FBUyxpREFBQUMsTUFBQSxDQUNnQ0YsV0FBVyw0SUFDM0Q7SUFDRUcsV0FBVyxFQUNULHlOQUF5TjtJQUMzTkMsT0FBTyxFQUFFLEVBQUU7SUFDWEMsT0FBTyxFQUFFLENBQUM7SUFDVkMsRUFBRSxFQUFFLG9CQUFvQjtJQUN4QkMsUUFBUSxFQUFFLEdBQUc7SUFDYkMsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUNkQyxpQkFBaUIsRUFBRSxLQUFLO0lBQ3hCQyxjQUFjLEVBQUU7RUFDbEIsQ0FDRixDQUFDO0FBQ0gsQ0FBQztBQUFDdEQsT0FBQSxDQUFBMkMsUUFBQSxHQUFBQSxRQUFBO0FBRUssSUFBTVksUUFBUSxHQUFHLFNBQVhBLFFBQVFBLENBQUlYLFdBQVcsRUFBRVksb0JBQW9CLEVBQUs7RUFBQSxJQUFBQyxJQUFBO0VBQzdELElBQUlDLFVBQVUsR0FBR0MsYUFBSSxDQUFDQyxDQUFDLENBQUMsb0JBQW9CLENBQUM7RUFDN0MsSUFBSUMsU0FBUyxHQUFHRixhQUFJLENBQUNDLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQztFQUM5QyxPQUFBSCxJQUFBLFdBQUFLLGdCQUFBLENBQUFDLE9BQUEsRUFBQU4sSUFBQSxFQUNHQyxVQUFVLEVBQUdmLFFBQVEsQ0FBQ0MsV0FBVyxDQUFDLE9BQUFrQixnQkFBQSxDQUFBQyxPQUFBLEVBQUFOLElBQUEsRUFDbENJLFNBQVMsRUFBR2xCLFFBQVEsQ0FBQ2Esb0JBQW9CLENBQUMsR0FBQUMsSUFBQTtBQUUvQyxDQUFDO0FBQUN6RCxPQUFBLENBQUF1RCxRQUFBLEdBQUFBLFFBQUE7QUFFSyxJQUFNUyxxQkFBcUIsR0FBRyxTQUF4QkEscUJBQXFCQSxDQUFJQyxPQUFPLEVBQUUzRCxHQUFHLEVBQUs7RUFDckRBLEdBQUcsQ0FBQzRELFNBQVMsQ0FBQyxVQUFDakQsS0FBSyxFQUFLO0lBQ3ZCLElBQ0dBLEtBQUssWUFBWXJCLGdCQUFDLENBQUN1RSxRQUFRLElBQUlsRCxLQUFLLENBQUN6QixZQUFZLEtBQUssTUFBTSxJQUM3RHlCLEtBQUssWUFBWXJCLGdCQUFDLENBQUN3RSxNQUFNLENBQUNDLFNBQVMsRUFDbkM7TUFDQXBELEtBQUssQ0FBQ3FELFFBQVEsQ0FBQztRQUFFQyxPQUFPLEVBQUVOLE9BQU8sR0FBRyxDQUFDLEdBQUc7TUFBRSxDQUFDLENBQUM7SUFDOUM7RUFDRixDQUFDLENBQUM7QUFDSixDQUFDOztBQUVEO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFBQWpFLE9BQUEsQ0FBQWdFLHFCQUFBLEdBQUFBLHFCQUFBO0FBRU8sSUFBTVEsa0JBQWtCLEdBQUcsU0FBckJBLGtCQUFrQkEsQ0FBSUMsU0FBUyxFQUFFbkUsR0FBRyxFQUFLO0VBQ3BELElBQUlvRSxRQUFRLEdBQUdDLFFBQVEsQ0FBQ0MsYUFBYSxDQUFDLGlCQUFpQixDQUFDO0VBQ3hELElBQUlGLFFBQVEsSUFBSSxJQUFJLEVBQUU7RUFDdEJBLFFBQVEsQ0FBQ0csT0FBTyxHQUFHSixTQUFTO0FBQzlCLENBQUM7QUFBQ3pFLE9BQUEsQ0FBQXdFLGtCQUFBLEdBQUFBLGtCQUFBO0FBRUYsSUFBTU0sY0FBYyxHQUFHLFNBQWpCQSxjQUFjQSxDQUFJeEUsR0FBRyxFQUFLO0VBQzlCLE9BQU8sQ0FDTDtJQUNFeUUsS0FBSyxFQUFFcEIsYUFBSSxDQUFDQyxDQUFDLENBQUMsMEJBQTBCLENBQUM7SUFDekNWLEVBQUUsRUFBRSxnQkFBZ0I7SUFDcEI4QixTQUFTLEVBQUUsVUFBVTtJQUNyQkMsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDO0lBQ2hCQyxRQUFRLEVBQUUsU0FBQUEsU0FBQ0MsU0FBUztNQUFBLE9BQUtuQixxQkFBcUIsQ0FBQ21CLFNBQVMsRUFBRTdFLEdBQUcsQ0FBQztJQUFBO0VBQ2hFLENBQUMsRUFFRDtJQUNFeUUsS0FBSyxFQUFFLDRCQUE0QjtJQUNuQzdCLEVBQUUsRUFBRSwyQkFBMkI7SUFDL0I4QixTQUFTLEVBQUUsVUFBVTtJQUNyQkUsUUFBUSxFQUFFLFNBQUFBLFNBQUNDLFNBQVM7TUFBQSxPQUFLLFlBQU0sQ0FBQyxDQUFDO0lBQUE7RUFDbkMsQ0FBQyxFQUVEO0lBQ0VKLEtBQUssRUFBRSwrQkFBK0I7SUFDdEM3QixFQUFFLEVBQUUsd0NBQXdDO0lBQzVDOEIsU0FBUyxFQUFFLFVBQVU7SUFDckJFLFFBQVEsRUFBRSxTQUFBQSxTQUFDQyxTQUFTO01BQUEsT0FBSyxZQUFNLENBQUMsQ0FBQztJQUFBO0VBQ25DOztFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUFBLENBQ0Q7QUFDSCxDQUFDOztBQUVELElBQU1DLHNDQUFzQyxHQUFHLFNBQXpDQSxzQ0FBc0NBLENBQzFDQyxpQkFBaUIsRUFDakJDLGVBQWUsRUFDWjtFQUNIMUYsZ0JBQUMsQ0FBQzJGLFFBQVEsQ0FBQ0MsRUFBRSxDQUFDSCxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsWUFBWTtJQUN4REMsZUFBZSxDQUFDRyxLQUFLLENBQUNDLE9BQU8sR0FBRyxPQUFPO0VBQ3pDLENBQUMsQ0FBQztFQUVGOUYsZ0JBQUMsQ0FBQzJGLFFBQVEsQ0FBQ0MsRUFBRSxDQUFDSCxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsWUFBWTtJQUN2REMsZUFBZSxDQUFDRyxLQUFLLENBQUNDLE9BQU8sR0FBRyxNQUFNO0VBQ3hDLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxJQUFNQyxtQkFBbUIsR0FBRyxTQUF0QkEsbUJBQW1CQSxDQUFJQyxPQUFPLEVBQUVDLFNBQVMsRUFBSztFQUNsRCxJQUFJQyxnQkFBZ0IsR0FBR25CLFFBQVEsQ0FBQ29CLGFBQWEsQ0FBQyxLQUFLLENBQUM7RUFDcERELGdCQUFnQixDQUFDRSxTQUFTLEdBQUcsaUNBQWlDO0VBQzlERixnQkFBZ0IsQ0FBQ0csU0FBUyw2Q0FBQW5ELE1BQUEsQ0FFTDhDLE9BQU8sQ0FBQ1osU0FBUyxjQUFBbEMsTUFBQSxDQUFTOEMsT0FBTyxDQUFDMUMsRUFBRSxZQUFBSixNQUFBLENBQVE4QyxPQUFPLENBQUNiLEtBQUssMkJBRTNFO0VBRUhlLGdCQUFnQixDQUNibEIsYUFBYSxLQUFBOUIsTUFBQSxDQUFLOEMsT0FBTyxDQUFDMUMsRUFBRSxDQUFFLENBQUMsQ0FDL0JnRCxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsVUFBVUMsQ0FBQyxFQUFFO0lBQ3ZDLElBQU1oQixTQUFTLEdBQUdnQixDQUFDLENBQUNDLE1BQU0sQ0FBQ3ZCLE9BQU87SUFDbENlLE9BQU8sQ0FBQ1YsUUFBUSxDQUFDQyxTQUFTLENBQUM7RUFDN0IsQ0FBQyxDQUFDO0VBRUpXLGdCQUFnQixDQUFDTCxLQUFLLENBQUNDLE9BQU8sR0FBRyxNQUFNO0VBQ3ZDRyxTQUFTLGFBQVRBLFNBQVMsdUJBQVRBLFNBQVMsQ0FBRVEsV0FBVyxDQUFDUCxnQkFBZ0IsQ0FBQztFQUV4Q1Ysc0NBQXNDLENBQUNTLFNBQVMsRUFBRUMsZ0JBQWdCLENBQUM7QUFDckUsQ0FBQztBQUVNLElBQU1RLCtCQUErQixHQUFHLFNBQWxDQSwrQkFBK0JBLENBQzFDaEcsR0FBRyxFQUNIaUcsUUFBUSxFQUlMO0VBQUEsSUFISDlCLFNBQVMsR0FBQStCLFNBQUEsQ0FBQXpHLE1BQUEsUUFBQXlHLFNBQUEsUUFBQWpHLFNBQUEsR0FBQWlHLFNBQUEsTUFBRyxJQUFJO0VBQUEsSUFDaEJDLElBQUksR0FBQUQsU0FBQSxDQUFBekcsTUFBQSxPQUFBeUcsU0FBQSxNQUFBakcsU0FBQTtFQUFBLElBQ0ptRyxnQkFBZ0IsR0FBQUYsU0FBQSxDQUFBekcsTUFBQSxPQUFBeUcsU0FBQSxNQUFBakcsU0FBQTtFQUVoQixJQUFJb0csVUFBVSxHQUFHL0csZ0JBQUMsQ0FBQ2dHLE9BQU8sQ0FDdkJuRCxNQUFNLENBQUM4RCxRQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQUU7SUFBRUssUUFBUSxFQUFFO0VBQWMsQ0FBQyxDQUFDLENBQ2pEQyxLQUFLLENBQUN2RyxHQUFHLENBQUM7RUFDYixJQUFJdUYsU0FBUyxHQUFHYyxVQUFVLENBQUNHLFlBQVksQ0FBQyxDQUFDO0VBRXpDLElBQUlKLGdCQUFnQixFQUFFO0lBQ3BCNUIsY0FBYyxDQUFDeEUsR0FBRyxDQUFDLENBQUN5RyxPQUFPLENBQUMsVUFBQ25CLE9BQU8sRUFBSztNQUN2QyxJQUFJQSxPQUFPLENBQUNYLFNBQVMsSUFBSVcsT0FBTyxDQUFDWCxTQUFTLENBQUNuRSxRQUFRLENBQUMyRixJQUFJLENBQUMsRUFBRTtNQUUzRGQsbUJBQW1CLENBQUNDLE9BQU8sRUFBRUMsU0FBUyxDQUFDO01BQ3ZDckIsa0JBQWtCLENBQUNDLFNBQVMsRUFBRW5FLEdBQUcsQ0FBQztJQUNwQyxDQUFDLENBQUM7RUFDSjtBQUNGLENBQUM7QUFBQ04sT0FBQSxDQUFBc0csK0JBQUEsR0FBQUEsK0JBQUE7QUFFSyxJQUFNVSxhQUFhLEdBQUcsU0FBaEJBLGFBQWFBLENBQ3hCQyxZQUFZLEVBQ1pyRSxXQUFXLEVBQ1hZLG9CQUFvQixFQUNwQjFFLE1BQU0sRUFDTm9JLFFBQVEsRUFDUm5JLFdBQVcsRUFDWEMsY0FBYyxFQUNkbUksZUFBZSxFQUNmVCxnQkFBZ0IsRUFDaEJVLGtCQUFrQixFQUVmO0VBQUEsSUFESFgsSUFBSSxHQUFBRCxTQUFBLENBQUF6RyxNQUFBLFNBQUF5RyxTQUFBLFNBQUFqRyxTQUFBLEdBQUFpRyxTQUFBLE9BQUcsQ0FBQztFQUVSO0VBQ0ExSCxNQUFNLENBQUNJLE9BQU8sR0FBRyxJQUFJVSxnQkFBQyxDQUFDeUgsR0FBRyxDQUFDLEtBQUssRUFBRTtJQUNoQ0MsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNkQyxRQUFRLEVBQUUsQ0FBQztJQUNYQyxJQUFJLEVBQUVQLFlBQVk7SUFDbEJRLGtCQUFrQixFQUFFLEtBQUs7SUFDekJDLFlBQVksRUFBRTtFQUNoQixDQUFDLENBQUM7RUFFRixJQUFJaEIsZ0JBQWdCLEVBQUVRLFFBQVEsQ0FBQyxJQUFBUywwQkFBTSxFQUFDN0ksTUFBTSxDQUFDSSxPQUFPLENBQUMsQ0FBQztFQUV0REosTUFBTSxDQUFDSSxPQUFPLENBQUMwSSxTQUFTLENBQUMsWUFBTTtJQUM3QixJQUFJdEgsR0FBRyxHQUFHeEIsTUFBTSxDQUFDSSxPQUFPO0lBQ3hCLElBQU1xSCxRQUFRLEdBQUdoRCxRQUFRLENBQUNYLFdBQVcsRUFBRVksb0JBQW9CLENBQUM7SUFFNUQ4QywrQkFBK0IsQ0FDN0JoRyxHQUFHLEVBQ0hpRyxRQUFRLEVBQ1JhLGtCQUFrQixFQUNsQlgsSUFBSSxFQUNKQyxnQkFDRixDQUFDOztJQUVEO0lBQ0FoSCxNQUFNLENBQUNtSSxNQUFNLENBQUN0QixRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQ00sS0FBSyxDQUFDdkcsR0FBRyxDQUFDO0lBRXJDd0gsVUFBVSxDQUFDLFlBQU07TUFDZixJQUFJLENBQUNoSixNQUFNLENBQUNJLE9BQU8sRUFBRTtRQUNuQjtNQUNGO01BRUEsSUFBSTtRQUNGSixNQUFNLENBQUNJLE9BQU8sQ0FBQzZJLGNBQWMsQ0FBQyxJQUFJLENBQUM7TUFDckMsQ0FBQyxDQUFDLE9BQU9DLEdBQUcsRUFBRTtRQUNaQyxPQUFPLENBQUNDLEtBQUssQ0FBQyxLQUFLLEVBQUVGLEdBQUcsQ0FBQztNQUMzQjtNQUVBZCxRQUFRLENBQUMsSUFBQWlCLGlCQUFRLEVBQUNySixNQUFNLENBQUNJLE9BQU8sQ0FBQyxDQUFDO01BQ2xDZ0ksUUFBUSxDQUFDLElBQUFrQix3QkFBZSxFQUFDLElBQUksQ0FBQyxDQUFDO01BRS9COUgsR0FBRyxDQUFDa0YsRUFBRSxDQUFDLFNBQVMsRUFBRSxVQUFDNkMsS0FBSyxFQUFLO1FBQzNCLElBQUlBLEtBQUssQ0FBQ0MsYUFBYSxDQUFDQyxHQUFHLEtBQUssUUFBUSxFQUFFO1VBQ3hDakksR0FBRyxDQUFDa0ksVUFBVSxDQUFDLENBQUM7VUFDaEI3RCxRQUFRLENBQUM4RCxJQUFJLENBQUNDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCO01BQ0YsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNMLElBQUk1SixNQUFNLENBQUNJLE9BQU8sSUFBSUgsV0FBVyxDQUFDQyxjQUFjLENBQUMsRUFBRTtNQUNqREYsTUFBTSxDQUFDSSxPQUFPLENBQUNDLFNBQVMsQ0FBQ0gsY0FBYyxDQUFDO0lBQzFDO0VBQ0YsQ0FBQyxDQUFDO0VBRUZGLE1BQU0sQ0FBQ0ksT0FBTyxDQUFDc0csRUFBRSxDQUFDLFNBQVMsRUFBRSxVQUFVVyxDQUFDLEVBQUU7SUFDeEMsSUFBSSxDQUFDckgsTUFBTSxDQUFDSSxPQUFPLEVBQUU7TUFDbkI7SUFDRjtJQUNBLElBQUlzSSxJQUFJLEdBQUcxSSxNQUFNLENBQUNJLE9BQU8sQ0FBQ3lKLE9BQU8sQ0FBQyxDQUFDO0lBQ25DeEIsZUFBZSxDQUFDSyxJQUFJLENBQUM7RUFDdkIsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUFDeEgsT0FBQSxDQUFBZ0gsYUFBQSxHQUFBQSxhQUFBO0FBRUssSUFBTTRCLG1CQUFtQixHQUFHO0VBQ2pDQyxpQkFBaUIsRUFBRSxLQUFLO0VBQ3hCQyxtQkFBbUIsRUFBRSxLQUFLO0VBQzFCQyxtQkFBbUIsRUFBRSxJQUFJO0VBQ3pCQyxPQUFPLEVBQUUsSUFBSTtFQUNiQyx1QkFBdUIsRUFBRSxFQUFFO0VBQzNCQywwQkFBMEIsRUFBRSxLQUFLO0VBQ2pDQyxjQUFjLEVBQUUsSUFBSTtFQUNwQkMsa0JBQWtCLEVBQUUsU0FBQUEsbUJBQUNDLE9BQU8sRUFBSztJQUMvQixPQUFPLElBQUl6SixnQkFBQyxDQUFDMEosT0FBTyxDQUFDO01BQ25CQyxJQUFJLGdCQUFBekcsTUFBQSxDQUFnQnVHLE9BQU8sQ0FBQ0csV0FBVyxtRUFBQTFHLE1BQUEsQ0FDR2EsYUFBSSxDQUFDQyxDQUFDLENBQUMsWUFBWSxDQUFDLFdBQVE7TUFDdEVvQyxTQUFTLEVBQUUsZ0JBQWdCO01BQzNCM0UsUUFBUSxFQUFFLElBQUl6QixnQkFBQyxDQUFDNkosS0FBSyxDQUFDLEVBQUUsRUFBRSxFQUFFO0lBQzlCLENBQUMsQ0FBQztFQUNKO0FBQ0YsQ0FBQztBQUFDekosT0FBQSxDQUFBNEksbUJBQUEsR0FBQUEsbUJBQUE7QUFFSyxJQUFNYyxVQUFVLEdBQUc7RUFDeEIsQ0FBQyxFQUFFLFFBQVE7RUFDWCxDQUFDLEVBQUUsUUFBUTtFQUNYLENBQUMsRUFBRSxRQUFRO0VBQ1gsQ0FBQyxFQUFFLFFBQVE7RUFDWCxDQUFDLEVBQUUsUUFBUTtFQUNYLENBQUMsRUFBRSxRQUFRO0VBQ1gsQ0FBQyxFQUFFLE9BQU87RUFDVixDQUFDLEVBQUUsT0FBTztFQUNWLENBQUMsRUFBRSxPQUFPO0VBQ1YsRUFBRSxFQUFFLE9BQU87RUFDWCxFQUFFLEVBQUUsUUFBUTtFQUNaLEVBQUUsRUFBRSxRQUFRO0VBQ1osRUFBRSxFQUFFLFFBQVE7RUFDWixFQUFFLEVBQUUsUUFBUTtFQUNaLEVBQUUsRUFBRSxRQUFRO0VBQ1osRUFBRSxFQUFFLFFBQVE7RUFDWixFQUFFLEVBQUUsT0FBTztFQUNYLEVBQUUsRUFBRTtBQUNOLENBQUM7O0FBRUQ7QUFDQTs7QUFFQTtBQUFBMUosT0FBQSxDQUFBMEosVUFBQSxHQUFBQSxVQUFBO0FBQ08sSUFBTUMsWUFBWSxHQUFHLFNBQWZBLFlBQVlBLENBQUEsRUFNVjtFQUFBLElBTGJ2SixNQUFnQixHQUFBb0csU0FBQSxDQUFBekcsTUFBQSxRQUFBeUcsU0FBQSxRQUFBakcsU0FBQSxHQUFBaUcsU0FBQSxNQUFHLEVBQUU7RUFBQSxJQUFBb0QsS0FBQSxHQUFBcEQsU0FBQSxDQUFBekcsTUFBQSxRQUFBeUcsU0FBQSxRQUFBakcsU0FBQSxHQUFBaUcsU0FBQSxNQUltQyxDQUFDLENBQUM7SUFGeERxRCxhQUFhLEdBQUFELEtBQUEsQ0FBYkMsYUFBYTtJQUNiQyxXQUFXLEdBQUFGLEtBQUEsQ0FBWEUsV0FBVztFQUdiLE9BQU8xSixNQUFNLENBQUMySixNQUFNLENBQUMsVUFBQ0MsS0FBSyxFQUFLO0lBQzlCLElBQUlILGFBQWEsS0FBSyxJQUFJLElBQUksQ0FBQ0csS0FBSyxDQUFDQyxVQUFVLEVBQUUsT0FBTyxLQUFLO0lBQzdELElBQUlKLGFBQWEsS0FBSyxLQUFLLElBQUlHLEtBQUssQ0FBQ0MsVUFBVSxFQUFFLE9BQU8sS0FBSztJQUM3RCxJQUFJSCxXQUFXLEtBQUssSUFBSSxJQUFJLENBQUNFLEtBQUssQ0FBQ0UsV0FBVyxFQUFFLE9BQU8sS0FBSztJQUM1RCxJQUFJSixXQUFXLEtBQUssS0FBSyxJQUFJRSxLQUFLLENBQUNFLFdBQVcsRUFBRSxPQUFPLEtBQUs7SUFDNUQsT0FBTyxJQUFJO0VBQ2IsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUFDbEssT0FBQSxDQUFBMkosWUFBQSxHQUFBQSxZQUFBO0FBRUssSUFBTVEsU0FBUyxHQUFHLFNBQVpBLFNBQVNBLENBQUkvSixNQUFNLEVBQUVnSyxPQUFPLEVBQUVDLGNBQWM7RUFBQSxPQUN2RGpLLE1BQU0sQ0FBQ2tLLElBQUksQ0FBQyxVQUFDTixLQUFLO0lBQUEsT0FBS0EsS0FBSyxDQUFDOUcsRUFBRSxLQUFLa0gsT0FBTyxJQUFJQyxjQUFjLENBQUNMLEtBQUssQ0FBQztFQUFBLEVBQUM7QUFBQTtBQUFDaEssT0FBQSxDQUFBbUssU0FBQSxHQUFBQSxTQUFBO0FBRWpFLElBQU1JLFdBQVcsR0FBRyxTQUFkQSxXQUFXQSxDQUFJbEssS0FBSyxFQUFFRCxNQUFNLEVBQUVvSyxXQUFXO0VBQUEsT0FDcERuSyxLQUFLLENBQUMwSixNQUFNLENBQUMsVUFBQ1UsSUFBSSxFQUFLO0lBQ3JCLElBQU1DLFdBQVcsR0FBR1AsU0FBUyxDQUFDL0osTUFBTSxFQUFFcUssSUFBSSxDQUFDRSxlQUFlLEVBQUUsVUFBQ1gsS0FBSztNQUFBLE9BQ2hFUSxXQUFXLEdBQ1BSLEtBQUssQ0FBQ0MsVUFBVSxJQUFJUSxJQUFJLENBQUNHLHNCQUFzQixHQUMvQyxDQUFDWixLQUFLLENBQUNZLHNCQUFzQjtJQUFBLENBQ25DLENBQUM7SUFFRCxJQUFNQyxXQUFXLEdBQUdWLFNBQVMsQ0FBQy9KLE1BQU0sRUFBRXFLLElBQUksQ0FBQ0ssZUFBZSxFQUFFLFVBQUNkLEtBQUs7TUFBQSxPQUNoRVEsV0FBVyxHQUNQQyxJQUFJLENBQUNHLHNCQUFzQixJQUFJRixXQUFXLEtBQUtuSyxTQUFTLEdBQ3hELENBQUN5SixLQUFLLENBQUNZLHNCQUFzQjtJQUFBLENBQ25DLENBQUM7SUFFRCxPQUFPRixXQUFXLElBQUlHLFdBQVc7RUFDbkMsQ0FBQyxDQUFDO0FBQUE7QUFBQzdLLE9BQUEsQ0FBQXVLLFdBQUEsR0FBQUEsV0FBQTtBQUVFLElBQU1RLHFCQUFxQixHQUFHLFNBQXhCQSxxQkFBcUJBLENBQUlDLFFBQVEsRUFBRTlGLFFBQVEsRUFBSztFQUMzRCxJQUFNUixRQUFRLEdBQUdDLFFBQVEsQ0FBQ0MsYUFBYSxDQUFDb0csUUFBUSxDQUFDO0VBQ2pELElBQUl0RyxRQUFRLEtBQUssSUFBSSxFQUFFO0VBQ3ZCQSxRQUFRLENBQUN3QixnQkFBZ0IsQ0FBQyxRQUFRLEVBQUU7SUFBQSxPQUFNaEIsUUFBUSxDQUFDUixRQUFRLENBQUNHLE9BQU8sQ0FBQztFQUFBLEVBQUM7QUFDdkUsQ0FBQztBQUFDN0UsT0FBQSxDQUFBK0sscUJBQUEsR0FBQUEscUJBQUEifQ==
@@ -87,8 +87,8 @@ var EventPath = function EventPath(_ref) {
87
87
  renderEventPath(event, event.hovered);
88
88
  }
89
89
  }, [event]);
90
- return /*#__PURE__*/_react.default.createElement("div", null);
90
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
91
91
  };
92
92
  var _default = EventPath;
93
93
  exports.default = _default;
94
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbGVhZmxldCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfcmVhY3RSZWR1eCIsIl9hY3Rpb25zIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJFdmVudFBhdGgiLCJfcmVmIiwiZXZlbnQiLCJnbG9iYWxfZGF0YSIsIl9yZWYkZXZlbnRQYXRocyIsImV2ZW50UGF0aHMiLCJtYXAiLCJkaXNwYXRjaCIsInVzZURpc3BhdGNoIiwiZHJhd1BvbHlsaW5lIiwibGF5ZXJMYXRsbmdzIiwiZXZlbnRQYXRoc0FzTWFwT2JqZWN0cyIsImV2ZW50UGF0aCIsIkwiLCJwb2x5bGluZSIsImNvbG9yIiwid2VpZ2h0IiwiY2xhc3NOYW1lIiwic3Ryb2tlIiwiYWRkVG8iLCJwdXNoIiwiaWQiLCJ0YWlsRGFzaCIsIndpbmRvdyIsIlN5bWJvbCIsInVuZGVmaW5lZCIsInBvbHlsaW5lRGVjb3JhdG9yIiwiX2xhdGxuZ3MiLCJwYXR0ZXJucyIsIm9mZnNldCIsInJlcGVhdCIsInN5bWJvbCIsImFycm93SGVhZCIsInBpeGVsU2l6ZSIsInBvbHlnb24iLCJwYXRoT3B0aW9ucyIsIm9wYWNpdHkiLCJob3ZlcmVkIiwic2V0SG92ZXJlZEV2ZW50UGF0aHMiLCJzZXRGb2N1c2VkRXZlbnRQYXRocyIsInJlbmRlckV2ZW50UGF0aCIsImlzSG92ZXIiLCJsYXllcnMiLCJfbGF5ZXJzIiwicGF0aCIsImZvckVhY2giLCJwcm9wZXJ0eSIsImthbmRvX29iamVjdF9pZCIsImVkZ2VfaWQiLCJrYW5kb19vYmplY3QiLCJnZXRMYXRMbmdzIiwibGVuZ3RoIiwic2V0VGltZW91dCIsImZpdEJvdW5kcyIsImZlYXR1cmVHcm91cCIsImdldEJvdW5kcyIsInBhZCIsInVzZUVmZmVjdCIsInJlbW92ZUxheWVyIiwiY3JlYXRlRWxlbWVudCIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9ldmVudHMvRXZlbnRQYXRoLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtaWdub3JlXG5pbXBvcnQgTCBmcm9tICdsZWFmbGV0JztcbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7XG4gIHNldEZvY3VzZWRFdmVudFBhdGhzLFxuICBzZXRIb3ZlcmVkRXZlbnRQYXRocyxcbn0gZnJvbSAnc3JjL3N0b3JlL2V2ZW50cy9hY3Rpb25zJztcbmltcG9ydCB7IElFdmVudCB9IGZyb20gJ3NyYy9zdG9yZS9ldmVudHMvbW9kZWxzL0lFdmVudCc7XG5pbXBvcnQgeyBJR2xvYmFsU3RhdGUgfSBmcm9tICdzcmMvc3RvcmUvZ2xvYmFsL21vZGVscy9JR2xvYmFsU3RhdGUnO1xuXG50eXBlIElQcm9wcyA9IHtcbiAgZXZlbnQ6IElFdmVudDtcbiAgZ2xvYmFsX2RhdGE6IElHbG9iYWxTdGF0ZTtcbiAgZXZlbnRQYXRocz86IGFueVtdO1xufTtcblxuY29uc3QgRXZlbnRQYXRoOiBSZWFjdC5GQzxJUHJvcHM+ID0gKHtcbiAgZXZlbnQsXG4gIGdsb2JhbF9kYXRhLFxuICBldmVudFBhdGhzID0gW10sXG59KSA9PiB7XG4gIGNvbnN0IHsgbWFwIH0gPSBnbG9iYWxfZGF0YTtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuXG4gIGNvbnN0IGRyYXdQb2x5bGluZSA9IChcbiAgICBldmVudDogSUV2ZW50LFxuICAgIGxheWVyTGF0bG5nczogYW55LFxuICAgIGV2ZW50UGF0aHNBc01hcE9iamVjdHM6IGFueSxcbiAgKSA9PiB7XG4gICAgbGV0IGV2ZW50UGF0aCA9IEwucG9seWxpbmUobGF5ZXJMYXRsbmdzLCB7XG4gICAgICBjb2xvcjogJ3JnYigyMzYsMTE5LDE1NiknLFxuICAgICAgd2VpZ2h0OiAxMCxcbiAgICAgIGNsYXNzTmFtZTogJ2V2ZW50LXBhdGgnLFxuICAgICAgc3Ryb2tlOiB0cnVlLFxuICAgIH0pLmFkZFRvKG1hcCk7XG5cbiAgICBldmVudFBhdGhzQXNNYXBPYmplY3RzLnB1c2goZXZlbnRQYXRoKTtcbiAgICBldmVudFBhdGhbJ2thbmRvX29iamVjdF9pZCddID0gZXZlbnQuaWQ7XG4gICAgZXZlbnRQYXRoWydrYW5kb19vYmplY3QnXSA9ICdFdmVudFBhdGgnO1xuXG4gICAgbGV0IHRhaWxEYXNoOiBhbnk7XG4gICAgaWYgKHdpbmRvdy5MLlN5bWJvbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0YWlsRGFzaCA9IHdpbmRvdy5MLnBvbHlsaW5lRGVjb3JhdG9yKGV2ZW50UGF0aC5fbGF0bG5ncywge1xuICAgICAgICBwYXR0ZXJuczogW1xuICAgICAgICAgIC8vIGRlZmluZXMgYSBwYXR0ZXJuIG9mIDEwcHgtd2lkZSBkYXNoZXMsIHJlcGVhdGVkIGV2ZXJ5IDIwcHggb24gdGhlIGxpbmVcbiAgICAgICAgICB7XG4gICAgICAgICAgICBvZmZzZXQ6IDIwLFxuICAgICAgICAgICAgcmVwZWF0OiA2MCxcbiAgICAgICAgICAgIHN5bWJvbDogd2luZG93LkwuU3ltYm9sLmFycm93SGVhZCh7XG4gICAgICAgICAgICAgIHBpeGVsU2l6ZTogMyxcbiAgICAgICAgICAgICAgcG9seWdvbjogZmFsc2UsXG4gICAgICAgICAgICAgIHBhdGhPcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgc3Ryb2tlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNvbG9yOiAncmdiKDI1NSwyNTUsMjU1KScsXG4gICAgICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSkuYWRkVG8obWFwKTtcbiAgICAgIHRhaWxEYXNoWydrYW5kb19vYmplY3QnXSA9ICdBcnJvdyc7XG4gICAgfVxuXG4gICAgZXZlbnRQYXRoc0FzTWFwT2JqZWN0cy5wdXNoKHRhaWxEYXNoKTtcbiAgICBpZiAoZXZlbnQuaG92ZXJlZCkge1xuICAgICAgZGlzcGF0Y2goc2V0SG92ZXJlZEV2ZW50UGF0aHMoZXZlbnRQYXRoc0FzTWFwT2JqZWN0cykpO1xuICAgIH0gZWxzZSB7XG4gICAgICBkaXNwYXRjaChzZXRGb2N1c2VkRXZlbnRQYXRocyhldmVudFBhdGhzQXNNYXBPYmplY3RzKSk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IHJlbmRlckV2ZW50UGF0aCA9IChldmVudDogSUV2ZW50LCBpc0hvdmVyOiBib29sZWFuKSA9PiB7XG4gICAgaWYgKG1hcCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBsZXQgZXZlbnRQYXRoc0FzTWFwT2JqZWN0czogYW55W10gPSBbXTtcbiAgICAgIGxldCBsYXllcnMgPSBtYXAuX2xheWVycztcbiAgICAgIGV2ZW50LnBhdGguZm9yRWFjaCgocGF0aDogYW55KSA9PiB7XG4gICAgICAgIGZvciAoY29uc3QgcHJvcGVydHkgaW4gbGF5ZXJzKSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgbGF5ZXJzW3Byb3BlcnR5XS5rYW5kb19vYmplY3RfaWQgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgbGF5ZXJzW3Byb3BlcnR5XS5rYW5kb19vYmplY3RfaWQgPT09IHBhdGguZWRnZV9pZCAmJlxuICAgICAgICAgICAgbGF5ZXJzW3Byb3BlcnR5XS5rYW5kb19vYmplY3QgPT09ICdFZGdlJ1xuICAgICAgICAgICkge1xuICAgICAgICAgICAgbGV0IGxheWVyTGF0bG5ncyA9IGxheWVyc1twcm9wZXJ0eV0uZ2V0TGF0TG5ncygpO1xuICAgICAgICAgICAgZHJhd1BvbHlsaW5lKGV2ZW50LCBsYXllckxhdGxuZ3MsIGV2ZW50UGF0aHNBc01hcE9iamVjdHMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIGlmICghaXNIb3ZlciAmJiBldmVudFBhdGhzQXNNYXBPYmplY3RzLmxlbmd0aCAhPT0gMCkge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBtYXAuZml0Qm91bmRzKFxuICAgICAgICAgICAgTC5mZWF0dXJlR3JvdXAoZXZlbnRQYXRoc0FzTWFwT2JqZWN0cykuZ2V0Qm91bmRzKCkucGFkKDAuMSksXG4gICAgICAgICAgKTtcbiAgICAgICAgfSwgMTAwMCk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGV2ZW50UGF0aHMpIHtcbiAgICAgIGV2ZW50UGF0aHMuZm9yRWFjaCgocGF0aCkgPT4ge1xuICAgICAgICBtYXAucmVtb3ZlTGF5ZXIocGF0aCk7XG4gICAgICB9KTtcblxuICAgICAgcmVuZGVyRXZlbnRQYXRoKGV2ZW50LCBldmVudC5ob3ZlcmVkKTtcbiAgICB9XG4gIH0sIFtldmVudF0pO1xuXG4gIHJldHVybiA8ZGl2PjwvZGl2Pjtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEV2ZW50UGF0aDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFDQSxJQUFBQSxRQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFDLHVCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxXQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxRQUFBLEdBQUFK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
94
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbGVhZmxldCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfcmVhY3RSZWR1eCIsIl9hY3Rpb25zIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJFdmVudFBhdGgiLCJfcmVmIiwiZXZlbnQiLCJnbG9iYWxfZGF0YSIsIl9yZWYkZXZlbnRQYXRocyIsImV2ZW50UGF0aHMiLCJtYXAiLCJkaXNwYXRjaCIsInVzZURpc3BhdGNoIiwiZHJhd1BvbHlsaW5lIiwibGF5ZXJMYXRsbmdzIiwiZXZlbnRQYXRoc0FzTWFwT2JqZWN0cyIsImV2ZW50UGF0aCIsIkwiLCJwb2x5bGluZSIsImNvbG9yIiwid2VpZ2h0IiwiY2xhc3NOYW1lIiwic3Ryb2tlIiwiYWRkVG8iLCJwdXNoIiwiaWQiLCJ0YWlsRGFzaCIsIndpbmRvdyIsIlN5bWJvbCIsInVuZGVmaW5lZCIsInBvbHlsaW5lRGVjb3JhdG9yIiwiX2xhdGxuZ3MiLCJwYXR0ZXJucyIsIm9mZnNldCIsInJlcGVhdCIsInN5bWJvbCIsImFycm93SGVhZCIsInBpeGVsU2l6ZSIsInBvbHlnb24iLCJwYXRoT3B0aW9ucyIsIm9wYWNpdHkiLCJob3ZlcmVkIiwic2V0SG92ZXJlZEV2ZW50UGF0aHMiLCJzZXRGb2N1c2VkRXZlbnRQYXRocyIsInJlbmRlckV2ZW50UGF0aCIsImlzSG92ZXIiLCJsYXllcnMiLCJfbGF5ZXJzIiwicGF0aCIsImZvckVhY2giLCJwcm9wZXJ0eSIsImthbmRvX29iamVjdF9pZCIsImVkZ2VfaWQiLCJrYW5kb19vYmplY3QiLCJnZXRMYXRMbmdzIiwibGVuZ3RoIiwic2V0VGltZW91dCIsImZpdEJvdW5kcyIsImZlYXR1cmVHcm91cCIsImdldEJvdW5kcyIsInBhZCIsInVzZUVmZmVjdCIsInJlbW92ZUxheWVyIiwiY3JlYXRlRWxlbWVudCIsIkZyYWdtZW50IiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL1dpZGdldHMvTWFwL2V2ZW50cy9FdmVudFBhdGgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1pZ25vcmVcbmltcG9ydCBMIGZyb20gJ2xlYWZsZXQnO1xuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZURpc3BhdGNoIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHtcbiAgc2V0Rm9jdXNlZEV2ZW50UGF0aHMsXG4gIHNldEhvdmVyZWRFdmVudFBhdGhzLFxufSBmcm9tICdzcmMvc3RvcmUvZXZlbnRzL2FjdGlvbnMnO1xuaW1wb3J0IHsgSUV2ZW50IH0gZnJvbSAnc3JjL3N0b3JlL2V2ZW50cy9tb2RlbHMvSUV2ZW50JztcbmltcG9ydCB7IElHbG9iYWxTdGF0ZSB9IGZyb20gJ3NyYy9zdG9yZS9nbG9iYWwvbW9kZWxzL0lHbG9iYWxTdGF0ZSc7XG5cbnR5cGUgSVByb3BzID0ge1xuICBldmVudDogSUV2ZW50O1xuICBnbG9iYWxfZGF0YTogSUdsb2JhbFN0YXRlO1xuICBldmVudFBhdGhzPzogYW55W107XG59O1xuXG5jb25zdCBFdmVudFBhdGg6IFJlYWN0LkZDPElQcm9wcz4gPSAoe1xuICBldmVudCxcbiAgZ2xvYmFsX2RhdGEsXG4gIGV2ZW50UGF0aHMgPSBbXSxcbn0pID0+IHtcbiAgY29uc3QgeyBtYXAgfSA9IGdsb2JhbF9kYXRhO1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG5cbiAgY29uc3QgZHJhd1BvbHlsaW5lID0gKFxuICAgIGV2ZW50OiBJRXZlbnQsXG4gICAgbGF5ZXJMYXRsbmdzOiBhbnksXG4gICAgZXZlbnRQYXRoc0FzTWFwT2JqZWN0czogYW55LFxuICApID0+IHtcbiAgICBsZXQgZXZlbnRQYXRoID0gTC5wb2x5bGluZShsYXllckxhdGxuZ3MsIHtcbiAgICAgIGNvbG9yOiAncmdiKDIzNiwxMTksMTU2KScsXG4gICAgICB3ZWlnaHQ6IDEwLFxuICAgICAgY2xhc3NOYW1lOiAnZXZlbnQtcGF0aCcsXG4gICAgICBzdHJva2U6IHRydWUsXG4gICAgfSkuYWRkVG8obWFwKTtcblxuICAgIGV2ZW50UGF0aHNBc01hcE9iamVjdHMucHVzaChldmVudFBhdGgpO1xuICAgIGV2ZW50UGF0aFsna2FuZG9fb2JqZWN0X2lkJ10gPSBldmVudC5pZDtcbiAgICBldmVudFBhdGhbJ2thbmRvX29iamVjdCddID0gJ0V2ZW50UGF0aCc7XG5cbiAgICBsZXQgdGFpbERhc2g6IGFueTtcbiAgICBpZiAod2luZG93LkwuU3ltYm9sICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRhaWxEYXNoID0gd2luZG93LkwucG9seWxpbmVEZWNvcmF0b3IoZXZlbnRQYXRoLl9sYXRsbmdzLCB7XG4gICAgICAgIHBhdHRlcm5zOiBbXG4gICAgICAgICAgLy8gZGVmaW5lcyBhIHBhdHRlcm4gb2YgMTBweC13aWRlIGRhc2hlcywgcmVwZWF0ZWQgZXZlcnkgMjBweCBvbiB0aGUgbGluZVxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9mZnNldDogMjAsXG4gICAgICAgICAgICByZXBlYXQ6IDYwLFxuICAgICAgICAgICAgc3ltYm9sOiB3aW5kb3cuTC5TeW1ib2wuYXJyb3dIZWFkKHtcbiAgICAgICAgICAgICAgcGl4ZWxTaXplOiAzLFxuICAgICAgICAgICAgICBwb2x5Z29uOiBmYWxzZSxcbiAgICAgICAgICAgICAgcGF0aE9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBzdHJva2U6IHRydWUsXG4gICAgICAgICAgICAgICAgY29sb3I6ICdyZ2IoMjU1LDI1NSwyNTUpJyxcbiAgICAgICAgICAgICAgICB3ZWlnaHQ6IDEsXG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KS5hZGRUbyhtYXApO1xuICAgICAgdGFpbERhc2hbJ2thbmRvX29iamVjdCddID0gJ0Fycm93JztcbiAgICB9XG5cbiAgICBldmVudFBhdGhzQXNNYXBPYmplY3RzLnB1c2godGFpbERhc2gpO1xuICAgIGlmIChldmVudC5ob3ZlcmVkKSB7XG4gICAgICBkaXNwYXRjaChzZXRIb3ZlcmVkRXZlbnRQYXRocyhldmVudFBhdGhzQXNNYXBPYmplY3RzKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRpc3BhdGNoKHNldEZvY3VzZWRFdmVudFBhdGhzKGV2ZW50UGF0aHNBc01hcE9iamVjdHMpKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgcmVuZGVyRXZlbnRQYXRoID0gKGV2ZW50OiBJRXZlbnQsIGlzSG92ZXI6IGJvb2xlYW4pID0+IHtcbiAgICBpZiAobWFwICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGxldCBldmVudFBhdGhzQXNNYXBPYmplY3RzOiBhbnlbXSA9IFtdO1xuICAgICAgbGV0IGxheWVycyA9IG1hcC5fbGF5ZXJzO1xuICAgICAgZXZlbnQucGF0aC5mb3JFYWNoKChwYXRoOiBhbnkpID0+IHtcbiAgICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiBsYXllcnMpIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBsYXllcnNbcHJvcGVydHldLmthbmRvX29iamVjdF9pZCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICBsYXllcnNbcHJvcGVydHldLmthbmRvX29iamVjdF9pZCA9PT0gcGF0aC5lZGdlX2lkICYmXG4gICAgICAgICAgICBsYXllcnNbcHJvcGVydHldLmthbmRvX29iamVjdCA9PT0gJ0VkZ2UnXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBsZXQgbGF5ZXJMYXRsbmdzID0gbGF5ZXJzW3Byb3BlcnR5XS5nZXRMYXRMbmdzKCk7XG4gICAgICAgICAgICBkcmF3UG9seWxpbmUoZXZlbnQsIGxheWVyTGF0bG5ncywgZXZlbnRQYXRoc0FzTWFwT2JqZWN0cyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgaWYgKCFpc0hvdmVyICYmIGV2ZW50UGF0aHNBc01hcE9iamVjdHMubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIG1hcC5maXRCb3VuZHMoXG4gICAgICAgICAgICBMLmZlYXR1cmVHcm91cChldmVudFBhdGhzQXNNYXBPYmplY3RzKS5nZXRCb3VuZHMoKS5wYWQoMC4xKSxcbiAgICAgICAgICApO1xuICAgICAgICB9LCAxMDAwKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZXZlbnRQYXRocykge1xuICAgICAgZXZlbnRQYXRocy5mb3JFYWNoKChwYXRoKSA9PiB7XG4gICAgICAgIG1hcC5yZW1vdmVMYXllcihwYXRoKTtcbiAgICAgIH0pO1xuXG4gICAgICByZW5kZXJFdmVudFBhdGgoZXZlbnQsIGV2ZW50LmhvdmVyZWQpO1xuICAgIH1cbiAgfSwgW2V2ZW50XSk7XG5cbiAgcmV0dXJuIDw+PC8+O1xufTtcblxuZXhwb3J0IGRlZmF1bHQgRXZlbnRQYXRoO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUNBLElBQUFBLFFBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLFdBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLFFBQUEsR0FBQUosT0FBQTtBQUdrQyxTQUFBSyx5QkFBQUMsV0FBQSxlQUFBQyxPQUFBLGtDQUFBQyxpQkFBQSxPQUFBRCxPQUFBLFFBQUFFLGdCQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLFdBQUEsV0FBQUEsV0FBQSxHQUFBRyxnQkFBQSxHQUFBRCxpQkFBQSxLQUFBRixXQUFBO0FBQUEsU0FBQUosd0JBQUFRLEdBQUEsRUFBQUosV0FBQSxTQUFBQSxXQUFBLElBQUFJLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLFdBQUFELEdBQUEsUUFBQUEsR0FBQSxhQUFBRSxPQUFBLENBQUFGLEdBQUEseUJBQUFBLEdBQUEsNEJBQUFHLE9BQUEsRUFBQUgsR0FBQSxVQUFBSSxLQUFBLEdBQUFULHdCQUFBLENBQUFDLFdBQUEsT0FBQVEsS0FBQSxJQUFBQSxLQUFBLENBQUFDLEdBQUEsQ0FBQUwsR0FBQSxZQUFBSSxLQUFBLENBQUFFLEdBQUEsQ0FBQU4sR0FBQSxTQUFBTyxNQUFBLFdBQUFDLHFCQUFBLEdBQUFDLE1BQUEsQ0FBQUMsY0FBQSxJQUFBRCxNQUFBLENBQUFFLHdCQUFBLFdBQUFDLEdBQUEsSUFBQVosR0FBQSxRQUFBWSxHQUFBLGtCQUFBSCxNQUFBLENBQUFJLFNBQUEsQ0FBQUMsY0FBQSxDQUFBQyxJQUFBLENBQUFmLEdBQUEsRUFBQVksR0FBQSxTQUFBSSxJQUFBLEdBQUFSLHFCQUFBLEdBQUFDLE1BQUEsQ0FBQUUsd0JBQUEsQ0FBQVgsR0FBQSxFQUFBWSxHQUFBLGNBQUFJLElBQUEsS0FBQUEsSUFBQSxDQUFBVixHQUFBLElBQUFVLElBQUEsQ0FBQUMsR0FBQSxLQUFBUixNQUFBLENBQUFDLGNBQUEsQ0FBQUgsTUFBQSxFQUFBSyxHQUFBLEVBQUFJLElBQUEsWUFBQVQsTUFBQSxDQUFBSyxHQUFBLElBQUFaLEdBQUEsQ0FBQVksR0FBQSxTQUFBTCxNQUFBLENBQUFKLE9BQUEsR0FBQUgsR0FBQSxNQUFBSSxLQUFBLElBQUFBLEtBQUEsQ0FBQWEsR0FBQSxDQUFBakIsR0FBQSxFQUFBTyxNQUFBLFlBQUFBLE1BQUE7QUFQbEM7O0FBaUJBLElBQU1XLFNBQTJCLEdBQUcsU0FBOUJBLFNBQTJCQSxDQUFBQyxJQUFBLEVBSTNCO0VBQUEsSUFISkMsS0FBSyxHQUFBRCxJQUFBLENBQUxDLEtBQUs7SUFDTEMsV0FBVyxHQUFBRixJQUFBLENBQVhFLFdBQVc7SUFBQUMsZUFBQSxHQUFBSCxJQUFBLENBQ1hJLFVBQVU7SUFBVkEsVUFBVSxHQUFBRCxlQUFBLGNBQUcsRUFBRSxHQUFBQSxlQUFBO0VBRWYsSUFBUUUsR0FBRyxHQUFLSCxXQUFXLENBQW5CRyxHQUFHO0VBQ1gsSUFBTUMsUUFBUSxHQUFHLElBQUFDLHVCQUFXLEVBQUMsQ0FBQztFQUU5QixJQUFNQyxZQUFZLEdBQUcsU0FBZkEsWUFBWUEsQ0FDaEJQLEtBQWEsRUFDYlEsWUFBaUIsRUFDakJDLHNCQUEyQixFQUN4QjtJQUNILElBQUlDLFNBQVMsR0FBR0MsZ0JBQUMsQ0FBQ0MsUUFBUSxDQUFDSixZQUFZLEVBQUU7TUFDdkNLLEtBQUssRUFBRSxrQkFBa0I7TUFDekJDLE1BQU0sRUFBRSxFQUFFO01BQ1ZDLFNBQVMsRUFBRSxZQUFZO01BQ3ZCQyxNQUFNLEVBQUU7SUFDVixDQUFDLENBQUMsQ0FBQ0MsS0FBSyxDQUFDYixHQUFHLENBQUM7SUFFYkssc0JBQXNCLENBQUNTLElBQUksQ0FBQ1IsU0FBUyxDQUFDO0lBQ3RDQSxTQUFTLENBQUMsaUJBQWlCLENBQUMsR0FBR1YsS0FBSyxDQUFDbUIsRUFBRTtJQUN2Q1QsU0FBUyxDQUFDLGNBQWMsQ0FBQyxHQUFHLFdBQVc7SUFFdkMsSUFBSVUsUUFBYTtJQUNqQixJQUFJQyxNQUFNLENBQUNWLENBQUMsQ0FBQ1csTUFBTSxLQUFLQyxTQUFTLEVBQUU7TUFDakNILFFBQVEsR0FBR0MsTUFBTSxDQUFDVixDQUFDLENBQUNhLGlCQUFpQixDQUFDZCxTQUFTLENBQUNlLFFBQVEsRUFBRTtRQUN4REMsUUFBUSxFQUFFO1FBQ1I7UUFDQTtVQUNFQyxNQUFNLEVBQUUsRUFBRTtVQUNWQyxNQUFNLEVBQUUsRUFBRTtVQUNWQyxNQUFNLEVBQUVSLE1BQU0sQ0FBQ1YsQ0FBQyxDQUFDVyxNQUFNLENBQUNRLFNBQVMsQ0FBQztZQUNoQ0MsU0FBUyxFQUFFLENBQUM7WUFDWkMsT0FBTyxFQUFFLEtBQUs7WUFDZEMsV0FBVyxFQUFFO2NBQ1hqQixNQUFNLEVBQUUsSUFBSTtjQUNaSCxLQUFLLEVBQUUsa0JBQWtCO2NBQ3pCQyxNQUFNLEVBQUUsQ0FBQztjQUNUb0IsT0FBTyxFQUFFO1lBQ1g7VUFDRixDQUFDO1FBQ0gsQ0FBQztNQUVMLENBQUMsQ0FBQyxDQUFDakIsS0FBSyxDQUFDYixHQUFHLENBQUM7TUFDYmdCLFFBQVEsQ0FBQyxjQUFjLENBQUMsR0FBRyxPQUFPO0lBQ3BDO0lBRUFYLHNCQUFzQixDQUFDUyxJQUFJLENBQUNFLFFBQVEsQ0FBQztJQUNyQyxJQUFJcEIsS0FBSyxDQUFDbUMsT0FBTyxFQUFFO01BQ2pCOUIsUUFBUSxDQUFDLElBQUErQiw2QkFBb0IsRUFBQzNCLHNCQUFzQixDQUFDLENBQUM7SUFDeEQsQ0FBQyxNQUFNO01BQ0xKLFFBQVEsQ0FBQyxJQUFBZ0MsNkJBQW9CLEVBQUM1QixzQkFBc0IsQ0FBQyxDQUFDO0lBQ3hEO0VBQ0YsQ0FBQztFQUVELElBQU02QixlQUFlLEdBQUcsU0FBbEJBLGVBQWVBLENBQUl0QyxLQUFhLEVBQUV1QyxPQUFnQixFQUFLO0lBQzNELElBQUluQyxHQUFHLEtBQUttQixTQUFTLEVBQUU7TUFDckIsSUFBSWQsc0JBQTZCLEdBQUcsRUFBRTtNQUN0QyxJQUFJK0IsTUFBTSxHQUFHcEMsR0FBRyxDQUFDcUMsT0FBTztNQUN4QnpDLEtBQUssQ0FBQzBDLElBQUksQ0FBQ0MsT0FBTyxDQUFDLFVBQUNELElBQVMsRUFBSztRQUNoQyxLQUFLLElBQU1FLFFBQVEsSUFBSUosTUFBTSxFQUFFO1VBQzdCLElBQ0VBLE1BQU0sQ0FBQ0ksUUFBUSxDQUFDLENBQUNDLGVBQWUsS0FBS3RCLFNBQVMsSUFDOUNpQixNQUFNLENBQUNJLFFBQVEsQ0FBQyxDQUFDQyxlQUFlLEtBQUtILElBQUksQ0FBQ0ksT0FBTyxJQUNqRE4sTUFBTSxDQUFDSSxRQUFRLENBQUMsQ0FBQ0csWUFBWSxLQUFLLE1BQU0sRUFDeEM7WUFDQSxJQUFJdkMsWUFBWSxHQUFHZ0MsTUFBTSxDQUFDSSxRQUFRLENBQUMsQ0FBQ0ksVUFBVSxDQUFDLENBQUM7WUFDaER6QyxZQUFZLENBQUNQLEtBQUssRUFBRVEsWUFBWSxFQUFFQyxzQkFBc0IsQ0FBQztVQUMzRDtRQUNGO01BQ0YsQ0FBQyxDQUFDO01BRUYsSUFBSSxDQUFDOEIsT0FBTyxJQUFJOUIsc0JBQXNCLENBQUN3QyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQ25EQyxVQUFVLENBQUMsWUFBTTtVQUNmOUMsR0FBRyxDQUFDK0MsU0FBUyxDQUNYeEMsZ0JBQUMsQ0FBQ3lDLFlBQVksQ0FBQzNDLHNCQUFzQixDQUFDLENBQUM0QyxTQUFTLENBQUMsQ0FBQyxDQUFDQyxHQUFHLENBQUMsR0FBRyxDQUM1RCxDQUFDO1FBQ0gsQ0FBQyxFQUFFLElBQUksQ0FBQztNQUNWO0lBQ0Y7RUFDRixDQUFDO0VBRUQsSUFBQUMsZ0JBQVMsRUFBQyxZQUFNO0lBQ2QsSUFBSXBELFVBQVUsRUFBRTtNQUNkQSxVQUFVLENBQUN3QyxPQUFPLENBQUMsVUFBQ0QsSUFBSSxFQUFLO1FBQzNCdEMsR0FBRyxDQUFDb0QsV0FBVyxDQUFDZCxJQUFJLENBQUM7TUFDdkIsQ0FBQyxDQUFDO01BRUZKLGVBQWUsQ0FBQ3RDLEtBQUssRUFBRUEsS0FBSyxDQUFDbUMsT0FBTyxDQUFDO0lBQ3ZDO0VBQ0YsQ0FBQyxFQUFFLENBQUNuQyxLQUFLLENBQUMsQ0FBQztFQUVYLG9CQUFPN0IsTUFBQSxDQUFBWSxPQUFBLENBQUEwRSxhQUFBLENBQUF0RixNQUFBLENBQUFZLE9BQUEsQ0FBQTJFLFFBQUEsTUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUFDLElBQUFDLFFBQUEsR0FFYTdELFNBQVM7QUFBQThELE9BQUEsQ0FBQTdFLE9BQUEsR0FBQTRFLFFBQUEifQ==