@kontur.candy/tools 2.123.0 → 2.124.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ <a name="2.124.0"></a>
2
+ # [2.124.0](https://git.skbkontur.ru/ke/candy-utils/compare/release/tools/v2.123.0...release/tools/v2.124.0) (2021-11-28)
3
+
4
+
5
+ ### Bug Fixes
6
+
7
+ * **Tools:** Обновление библиотек ([74245a6](https://git.skbkontur.ru/ke/candy-utils/commit/74245a6))
8
+
9
+
10
+ ### Features
11
+
12
+ * Теперь обязательный элемент или нет решается по schema rng ([c59fbb7](https://git.skbkontur.ru/ke/candy-utils/commit/c59fbb7)), see [#6120](https://yt.skbkontur.ru/issue/FS-6120)
13
+ * **Tools:** Forms helper использует Lab Grotesque K ([c023afd](https://git.skbkontur.ru/ke/candy-utils/commit/c023afd))
14
+
1
15
  <a name="2.123.0"></a>
2
16
  # [2.123.0](https://git.skbkontur.ru/ke/candy-utils/compare/release/tools/v2.116.0...release/tools/v2.123.0) (2021-11-22)
3
17
 
@@ -3,4 +3,13 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbXX0=
6
+ exports.truePredicate = exports.falsePredicate = void 0;
7
+
8
+ const truePredicate = () => true;
9
+
10
+ exports.truePredicate = truePredicate;
11
+
12
+ const falsePredicate = () => false;
13
+
14
+ exports.falsePredicate = falsePredicate;
15
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL0NvbW1vbi9GdW5jcy50cyJdLCJuYW1lcyI6WyJ0cnVlUHJlZGljYXRlIiwiZmFsc2VQcmVkaWNhdGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFFTyxNQUFNQSxhQUFhLEdBQUcsTUFBTSxJQUE1Qjs7OztBQUNBLE1BQU1DLGNBQWMsR0FBRyxNQUFNLEtBQTdCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgUHJlZGljYXRlPFQ+ID0gKHZhbHVlOiBUKSA9PiBib29sZWFuO1xuXG5leHBvcnQgY29uc3QgdHJ1ZVByZWRpY2F0ZSA9ICgpID0+IHRydWU7XG5leHBvcnQgY29uc3QgZmFsc2VQcmVkaWNhdGUgPSAoKSA9PiBmYWxzZTtcblxuZXhwb3J0IHR5cGUgQWN0aW9uPFQ+ID0gKHZhbHVlOiBUKSA9PiB2b2lkO1xuIl19
@@ -412,6 +412,10 @@ class ModelPath {
412
412
  return new ModelPath(this.tokens.map(x => x === PathTokens.each ? PathTokens.current : x), this.isAbsolute());
413
413
  }
414
414
 
415
+ toEachIteration() {
416
+ return new ModelPath(this.tokens.map(x => x === PathTokens.current ? PathTokens.each : x), this.isAbsolute());
417
+ }
418
+
415
419
  toAbsolute() {
416
420
  if (!this.absolute) {
417
421
  throw new Error(`Path '${this.toLegacyPath()} is not absolute'`);
@@ -538,4 +542,4 @@ class AbsoluteModelPath extends ModelPath {
538
542
  }
539
543
 
540
544
  exports.AbsoluteModelPath = AbsoluteModelPath;
541
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL0NvbW1vbi9Nb2RlbFBhdGgvTW9kZWxQYXRoLnRzIl0sIm5hbWVzIjpbIkVhY2hTeW1ib2wiLCJTeW1ib2wiLCJmb3IiLCJDdXJyZW50U3ltYm9sIiwiUGF0aFRva2VucyIsImlzTXVsdGlUb2tlbiIsInBhcnQiLCJlYWNoIiwiY3VycmVudCIsImlzU2ltcGxlVG9rZW4iLCJpc0luc3RhbmNlVG9rZW4iLCJ0ZXN0IiwiaXNNb2RlbFBhdGgiLCJwYXRoIiwiY29udmVydFRvTGVnYWN5UGF0aCIsInRvTGVnYWN5UGF0aCIsImNvbnZlcnRUb0Fic29sdXRNb2RlbFBhdGgiLCJBYnNvbHV0ZU1vZGVsUGF0aCIsImNyZWF0ZUFic29sdXRlRnJvbU1hc2siLCJBYnNvbHV0ZU1vZGVsRmllbGRQYXRoIiwiY29uc3RydWN0b3IiLCJmaWVsZE5hbWUiLCJmaWVsZCIsImlzRXF1YWxzIiwibW9kZWxQYXRoIiwiZWFjaEN1cnJlbnRDb2xsaXNpb24iLCJFYWNoQ3VycmVudENvbGxpc2lvbiIsIkFyZVNhbWUiLCJjcmVhdGVGcm9tU3RyaW5nIiwicGF0aFdpdGhGaWVsZE5hbWUiLCJlbmRzV2l0aCIsImNyZWF0ZUFic29sdXRlIiwicmVwbGFjZSIsImNyZWF0ZUZyb21NYXNrIiwibXVsdGlwbGljaXR5U3ltYm9sIiwiTW9kZWxQYXRoIiwicGF0aFBhcnRzIiwiYWJzb2x1dGUiLCJ0b2tlbnMiLCJsZWdhY3lQYXRoIiwiZmlsdGVyIiwieCIsImVtcHR5IiwiYnVpbGRlciIsImZvcmNlQWJzb2x1dGUiLCJNb2RlbFBhdGhCdWlsZGVyIiwicGFydFBhcnRTdHJpbmdzIiwic3BsaXQiLCJlbnN1cmVQbGFpblBhdGhQYXJ0c0RvZXNOb3RDb250YWluTXVsdGlwbGljaXR5Iiwic3RhcnRzV2l0aCIsInNsaWNlIiwibWFwIiwiam9pbiIsInBhcnRzIiwicmVzdWx0UGFydHMiLCJqb2luSXRlbSIsInB1c2giLCJpc0Fic29sdXRlIiwiQXJyYXkiLCJpc0FycmF5Iiwic29tZSIsIkVycm9yIiwiZ2V0UGF0aFBhcnRzIiwiZ2V0UGF0aFBhcnRzQXNBcnJheSIsImdldFNpbXBsZVRva2Vuc1N0cmljdCIsInRva2VuIiwiZ2V0U2ltcGxlVG9rZW5zQXNBcnJheVN0cmljdCIsImpvaW5XaXRoIiwiaXNSZXNvbHZlZCIsImV2ZXJ5IiwicmVzb2x2ZUFsbCIsImluc3RhbmNlIiwiaXNDb250YWluSXRlcmF0aW9uIiwiaXNDb250YWluQ3VycmVudEl0ZXJhdGlvbiIsInRvU3RyaW5nIiwibGVuZ3RoIiwicGF0aFBhcnRUb1N0cmluZyIsIkl0ZXJhdG9yIiwiZnJvbSIsIkl0ZXJVdGlscyIsInppcCIsInQxIiwidDIiLCJnZXRIYXNoIiwiaGFzaCIsImN1cnJlbnRTdHIiLCJBcmVEaWZmZXJlbnQiLCJzdHJpbmdJbmRleCIsImNoYXJDb2RlQXQiLCJpc0luY2x1ZGVzIiwiaSIsImxlZnRQYXJ0IiwicmlnaHRQYXJ0IiwiaXNGaW5pdGUiLCJOdW1iZXIiLCJnZXRJdGVyYXRpb25SYW5rIiwiaXNFbXB0eSIsIm1hdGNoRm9yIiwiUGF0aE1hdGNoZXIiLCJtYXRjaCIsInNwbGl0QnlNdWx0aXBsaWNpdHkiLCJsYXN0U2ltcGxlUGFydHMiLCJhcHBlbmQiLCJ0b1BhdGgiLCJub3JtYWxpemUiLCJyZXN1bHRUb2tlbnMiLCJwYXRoUGFydCIsInBvcCIsInRvQ3VycmVudEl0ZXJhdGlvbiIsInRvQWJzb2x1dGUiLCJnZXRBbGxQYXJlbnRQYXRocyIsInJlc3VsdCIsInNraXBMYXN0IiwidHJpbUxhc3RTdGFySWZMYXN0VG9rZW4iLCJsYXN0SXRlbSIsImxhc3QiLCJ1bmRlZmluZWQiLCJnZXRQYXJlbnRQYXRoIiwidG9BYnNvbHV0ZVBhdGgiLCJhcHBseUluc3RhbmNlc0RpcnR5IiwiaW5zdGFuY2VzIiwiaW5zdGFuY2VDb3VudGVyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBR0EsTUFBTUEsVUFBVSxHQUFHQyxNQUFNLENB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Q0FBdEIsQ0FBdEIsQ0FBUDtBQUNIOztBQUNELFdBQU8sSUFBSWpDLGlCQUFKLENBQXNCNkIsZUFBdEIsQ0FBUDtBQUNIOztBQUUyQixTQUFkZixjQUFjLENBQUNsQixJQUFELEVBQWtDO0FBQzFELFVBQU1pQyxlQUFlLEdBQUdqQyxJQUFJLENBQUNrQyxLQUFMLENBQVcsR0FBWCxDQUF4QjtBQUNBLFNBQUtDLDhDQUFMLENBQW9ERixlQUFwRDs7QUFDQSxRQUFJakMsSUFBSSxDQUFDb0MsVUFBTCxDQUFnQixHQUFoQixDQUFKLEVBQTBCO0FBQ3RCLGFBQU8sSUFBSWhDLGlCQUFKLENBQXNCNkIsZUFBZSxDQUFDSSxLQUFoQixDQUFzQixDQUF0QixDQUF0QixDQUFQO0FBQ0g7O0FBQ0QsV0FBTyxJQUFJakMsaUJBQUosQ0FBc0I2QixlQUF0QixDQUFQO0FBQ0g7O0FBRU1xQixFQUFBQSxRQUFRLENBQUN0RCxJQUFELEVBQWlEO0FBQzVELFdBQU8sTUFBTXNELFFBQU4sQ0FBZXRELElBQWYsRUFBcUJnRyxVQUFyQixFQUFQO0FBQ0g7O0FBRU1RLEVBQUFBLGFBQWEsR0FBc0I7QUFDdEMsVUFBTU4sTUFBTSxHQUFHNUUsU0FBUyxDQUFDUSxPQUFWLENBQWtCLElBQWxCLENBQWY7O0FBQ0EsU0FBSyxNQUFNc0IsS0FBWCxJQUFvQmMseUJBQVVpQyxRQUFWLENBQW1CLEtBQUtsRCxZQUFMLEVBQW5CLEVBQXdDLENBQXhDLENBQXBCLEVBQWdFO0FBQzVEaUQsTUFBQUEsTUFBTSxDQUFDVCxNQUFQLENBQWNyQyxLQUFkO0FBQ0g7O0FBQ0QsV0FBTzhDLE1BQU0sQ0FBQ08sY0FBUCxFQUFQO0FBQ0g7O0FBRU1DLEVBQUFBLG1CQUFtQixDQUFDQyxTQUFELEVBQWtEO0FBQ3hFLFdBQU8sTUFBTUQsbUJBQU4sQ0FBMEJDLFNBQTFCLEVBQXFDWCxVQUFyQyxFQUFQO0FBQ0g7O0FBcEM0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJpbmRpbmdQYXRoLCBWaWV3TW9kZWxGaWVsZE5hbWUgfSBmcm9tIFwiLi4vLi4vRW5naW5lL3NyYy9FbmdpbmUvQ29yZS9Db3JlVHlwZXNcIjtcbmltcG9ydCB7IGNvdW50LCBJdGVyVXRpbHMsIHJldmVyc2VBcnJheSB9IGZyb20gXCIuLi9JdGVyYWJsZVV0aWxzXCI7XG5pbXBvcnQgeyBlbnN1cmVBbmRHZXRTdHJpbmcsIHJlamVjdCB9IGZyb20gXCIuLi9UeXBpbmdVdGlsc1wiO1xuXG5pbXBvcnQgeyBFYWNoQ3VycmVudENvbGxpc2lvbiB9IGZyb20gXCIuL0VhY2hDdXJyZW50Q29sbGlzaW9uXCI7XG5pbXBvcnQgeyBNb2RlbFBhdGhCdWlsZGVyIH0gZnJvbSBcIi4vTW9kZWxQYXRoQnVpbGRlclwiO1xuaW1wb3J0IHsgUGF0aE1hdGNoZXIsIFBhdGhNYXRjaGluZyB9IGZyb20gXCIuL1BhdGhNYXRjaGVyXCI7XG5pbXBvcnQgeyBJRXF1YXRhYmxlIH0gZnJvbSBcIi4vSUVxdWF0YWJsZVwiO1xuXG5jb25zdCBFYWNoU3ltYm9sID0gU3ltYm9sLmZvcihcIl9fRUFDSF9fXCIpO1xuY29uc3QgQ3VycmVudFN5bWJvbCA9IFN5bWJvbC5mb3IoXCJfX0NVUlJFTlRfX1wiKTtcblxuZXhwb3J0IGNsYXNzIFBhdGhUb2tlbnMge1xuICAgIHB1YmxpYyBzdGF0aWMgZWFjaDogdHlwZW9mIEVhY2hTeW1ib2wgPSBFYWNoU3ltYm9sO1xuICAgIHB1YmxpYyBzdGF0aWMgY3VycmVudDogdHlwZW9mIEN1cnJlbnRTeW1ib2wgPSBDdXJyZW50U3ltYm9sO1xuXG4gICAgcHVibGljIHN0YXRpYyBpc011bHRpVG9rZW4ocGFydDogdW5kZWZpbmVkIHwgUGF0aFRva2VuKTogcGFydCBpcyB0eXBlb2YgRWFjaFN5bWJvbCB8IHR5cGVvZiBDdXJyZW50U3ltYm9sIHtcbiAgICAgICAgcmV0dXJuIHBhcnQgPT09IFBhdGhUb2tlbnMuZWFjaCB8fCBwYXJ0ID09PSBQYXRoVG9rZW5zLmN1cnJlbnQ7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBpc1NpbXBsZVRva2VuKHBhcnQ6IHVuZGVmaW5lZCB8IFBhdGhUb2tlbik6IHBhcnQgaXMgc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiBwYXJ0ID09PSBcInN0cmluZ1wiO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgaXNJbnN0YW5jZVRva2VuKHBhcnQ6IHVuZGVmaW5lZCB8IFBhdGhUb2tlbik6IHBhcnQgaXMgc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiBwYXJ0ID09PSBcInN0cmluZ1wiICYmIC9eXFxkKyQvaS50ZXN0KHBhcnQpO1xuICAgIH1cbn1cblxuZXhwb3J0IHR5cGUgU2ltcGxlUGF0aFRva2VuID0gc3RyaW5nO1xuXG5leHBvcnQgdHlwZSBQYXRoVG9rZW4gPSBTaW1wbGVQYXRoVG9rZW4gfCB0eXBlb2YgRWFjaFN5bWJvbCB8IHR5cGVvZiBDdXJyZW50U3ltYm9sO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNNb2RlbFBhdGgocGF0aDogQmluZGluZ1BhdGggfCBNb2RlbFBhdGgpOiBwYXRoIGlzIE1vZGVsUGF0aCB7XG4gICAgcmV0dXJuIHR5cGVvZiBwYXRoICE9PSBcInN0cmluZ1wiO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udmVydFRvTGVnYWN5UGF0aChwYXRoOiBCaW5kaW5nUGF0aCB8IE1vZGVsUGF0aCk6IEJpbmRpbmdQYXRoIHtcbiAgICByZXR1cm4gaXNNb2RlbFBhdGgocGF0aCkgPyBwYXRoLnRvTGVnYWN5UGF0aCgpIDogcGF0aDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRUb0Fic29sdXRNb2RlbFBhdGgocGF0aDogQmluZGluZ1BhdGggfCBBYnNvbHV0ZU1vZGVsUGF0aCk6IEFic29sdXRlTW9kZWxQYXRoIHtcbiAgICByZXR1cm4gaXNNb2RlbFBhdGgocGF0aCkgPyBwYXRoIDogQWJzb2x1dGVNb2RlbFBhdGguY3JlYXRlQWJzb2x1dGVGcm9tTWFzayhwYXRoLCBQYXRoVG9rZW5zLmVhY2gpO1xufVxuXG5leHBvcnQgY2xhc3MgQWJzb2x1dGVNb2RlbEZpZWxkUGF0aCB7XG4gICAgcHVibGljIHJlYWRvbmx5IHBhdGg6IEFic29sdXRlTW9kZWxQYXRoO1xuICAgIHB1YmxpYyByZWFkb25seSBmaWVsZDogVmlld01vZGVsRmllbGROYW1lIHwgXCIkZXJyb3JDb3VudFwiIHwgXCIkd2FybmluZ0NvdW50XCI7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocGF0aDogQWJzb2x1dGVNb2RlbFBhdGgsIGZpZWxkTmFtZTogVmlld01vZGVsRmllbGROYW1lIHwgXCIkZXJyb3JDb3VudFwiIHwgXCIkd2FybmluZ0NvdW50XCIpIHtcbiAgICAgICAgdGhpcy5wYXRoID0gcGF0aDtcbiAgICAgICAgdGhpcy5maWVsZCA9IGZpZWxkTmFtZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNFcXVhbHMoXG4gICAgICAgIG1vZGVsUGF0aDogQWJzb2x1dGVNb2RlbEZpZWxkUGF0aCxcbiAgICAgICAgZWFjaEN1cnJlbnRDb2xsaXNpb246IEVhY2hDdXJyZW50Q29sbGlzaW9uID0gRWFjaEN1cnJlbnRDb2xsaXNpb24uQXJlU2FtZVxuICAgICk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wYXRoLmlzRXF1YWxzKG1vZGVsUGF0aC5wYXRoLCBlYWNoQ3VycmVudENvbGxpc2lvbikgJiYgdGhpcy5maWVsZCA9PT0gbW9kZWxQYXRoLmZpZWxkO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlRnJvbVN0cmluZyhwYXRoV2l0aEZpZWxkTmFtZTogc3RyaW5nKTogQWJzb2x1dGVNb2RlbEZpZWxkUGF0aCB7XG4gICAgICAgIGlmIChwYXRoV2l0aEZpZWxkTmFtZS5lbmRzV2l0aChcIi4kZXJyb3JDb3VudFwiKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBBYnNvbHV0ZU1vZGVsRmllbGRQYXRoKFxuICAgICAgICAgICAgICAgIEFic29sdXRlTW9kZWxQYXRoLmNyZWF0ZUFic29sdXRlKHBhdGhXaXRoRmllbGROYW1lLnJlcGxhY2UoXCIuJGVycm9yQ291bnRcIiwgXCJcIikpLFxuICAgICAgICAgICAgICAgIFwiJGVycm9yQ291bnRcIlxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGF0aFdpdGhGaWVsZE5hbWUuZW5kc1dpdGgoXCIuJHdhcm5pbmdDb3VudFwiKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBBYnNvbHV0ZU1vZGVsRmllbGRQYXRoKFxuICAgICAgICAgICAgICAgIEFic29sdXRlTW9kZWxQYXRoLmNyZWF0ZUFic29sdXRlKHBhdGhXaXRoRmllbGROYW1lLnJlcGxhY2UoXCIuJHdhcm5pbmdDb3VudFwiLCBcIlwiKSksXG4gICAgICAgICAgICAgICAgXCIkd2FybmluZ0NvdW50XCJcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBBYnNvbHV0ZU1vZGVsRmllbGRQYXRoKEFic29sdXRlTW9kZWxQYXRoLmNyZWF0ZUFic29sdXRlKHBhdGhXaXRoRmllbGROYW1lKSwgXCJ2YWx1ZVwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGNyZWF0ZUZyb21NYXNrKHBhdGhXaXRoRmllbGROYW1lOiBzdHJpbmcsIG11bHRpcGxpY2l0eVN5bWJvbDogUGF0aFRva2VuKTogQWJzb2x1dGVNb2RlbEZpZWxkUGF0aCB7XG4gICAgICAgIGlmIChwYXRoV2l0aEZpZWxkTmFtZS5lbmRzV2l0aChcIi4kZXJyb3JDb3VudFwiKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBBYnNvbHV0ZU1vZGVsRmllbGRQYXRoKFxuICAgICAgICAgICAgICAgIEFic29sdXRlTW9kZWxQYXRoLmNyZWF0ZUFic29sdXRlRnJvbU1hc2soXG4gICAgICAgICAgICAgICAgICAgIHBhdGhXaXRoRmllbGROYW1lLnJlcGxhY2UoXCIuJGVycm9yQ291bnRcIiwgXCJcIiksXG4gICAgICAgICAgICAgICAgICAgIG11bHRpcGxpY2l0eVN5bWJvbFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgXCIkZXJyb3JDb3VudFwiXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYXRoV2l0aEZpZWxkTmFtZS5lbmRzV2l0aChcIi4kd2FybmluZ0NvdW50XCIpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEFic29sdXRlTW9kZWxGaWVsZFBhdGgoXG4gICAgICAgICAgICAgICAgQWJzb2x1dGVNb2RlbFBhdGguY3JlYXRlQWJzb2x1dGVGcm9tTWFzayhcbiAgICAgICAgICAgICAgICAgICAgcGF0aFdpdGhGaWVsZE5hbWUucmVwbGFjZShcIi4kd2FybmluZ0NvdW50XCIsIFwiXCIpLFxuICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWNpdHlTeW1ib2xcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIFwiJHdhcm5pbmdDb3VudFwiXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgQWJzb2x1dGVNb2RlbEZpZWxkUGF0aChcbiAgICAgICAgICAgIEFic29sdXRlTW9kZWxQYXRoLmNyZWF0ZUFic29sdXRlRnJvbU1hc2socGF0aFdpdGhGaWVsZE5hbWUsIG11bHRpcGxpY2l0eVN5bWJvbCksXG4gICAgICAgICAgICBcInZhbHVlXCJcbiAgICAgICAgKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBNb2RlbFBhdGggaW1wbGVtZW50cyBJRXF1YXRhYmxlPE1vZGVsUGF0aD4ge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdG9rZW5zOiByZWFkb25seSBQYXRoVG9rZW5bXTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFic29sdXRlOiBib29sZWFuO1xuICAgIHByaXZhdGUgbGVnYWN5UGF0aDogdW5kZWZpbmVkIHwgc3RyaW5nO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHBhdGhQYXJ0czogcmVhZG9ubHkgUGF0aFRva2VuW10sIGFic29sdXRlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudG9rZW5zID0gcGF0aFBhcnRzLmZpbHRlcih4ID0+IHggIT09IFwiXCIpO1xuICAgICAgICB0aGlzLmFic29sdXRlID0gYWJzb2x1dGU7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBlbXB0eSgpOiBNb2RlbFBhdGgge1xuICAgICAgICByZXR1cm4gbmV3IE1vZGVsUGF0aChbXSwgZmFsc2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgYnVpbGRlcihmb3JjZUFic29sdXRlOiBib29sZWFuID0gZmFsc2UpOiBNb2RlbFBhdGhCdWlsZGVyIHtcbiAgICAgICAgcmV0dXJuIG5ldyBNb2RlbFBhdGhCdWlsZGVyKGZvcmNlQWJzb2x1dGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlRnJvbVN0cmluZyhwYXRoOiBzdHJpbmcsIGFic29sdXRlOiBib29sZWFuIHwgXCJhdXRvXCIpOiBNb2RlbFBhdGgge1xuICAgICAgICBjb25zdCBwYXJ0UGFydFN0cmluZ3MgPSBwYXRoLnNwbGl0KFwiL1wiKTtcbiAgICAgICAgdGhpcy5lbnN1cmVQbGFpblBhdGhQYXJ0c0RvZXNOb3RDb250YWluTXVsdGlwbGljaXR5KHBhcnRQYXJ0U3RyaW5ncyk7XG4gICAgICAgIGlmIChhYnNvbHV0ZSA9PT0gXCJhdXRvXCIpIHtcbiAgICAgICAgICAgIGlmIChwYXRoLnN0YXJ0c1dpdGgoXCIvXCIpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBNb2RlbFBhdGgocGFydFBhcnRTdHJpbmdzLnNsaWNlKDEpLCB0cnVlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBNb2RlbFBhdGgocGFydFBhcnRTdHJpbmdzLCBmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFic29sdXRlICYmIHBhdGguc3RhcnRzV2l0aChcIi9cIikpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgTW9kZWxQYXRoKHBhcnRQYXJ0U3RyaW5ncy5zbGljZSgxKSwgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBNb2RlbFBhdGgocGFydFBhcnRTdHJpbmdzLCBhYnNvbHV0ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBjcmVhdGVGcm9tTWFzayhwYXRoOiBzdHJpbmcsIGFic29sdXRlOiBib29sZWFuIHwgXCJhdXRvXCIsIG11bHRpcGxpY2l0eVN5bWJvbDogUGF0aFRva2VuKTogTW9kZWxQYXRoIHtcbiAgICAgICAgY29uc3QgcGFydFBhcnRTdHJpbmdzID0gcGF0aC5zcGxpdChcIi9cIikubWFwKHggPT4gKHggPT09IFwiKlwiID8gbXVsdGlwbGljaXR5U3ltYm9sIDogeCkpO1xuICAgICAgICBpZiAoYWJzb2x1dGUgPT09IFwiYXV0b1wiKSB7XG4gICAgICAgICAgICBpZiAocGF0aC5zdGFydHNXaXRoKFwiL1wiKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTW9kZWxQYXRoKHBhcnRQYXJ0U3RyaW5ncy5zbGljZSgxKSwgdHJ1ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTW9kZWxQYXRoKHBhcnRQYXJ0U3RyaW5ncywgZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChhYnNvbHV0ZSAmJiBwYXRoLnN0YXJ0c1dpdGgoXCIvXCIpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IE1vZGVsUGF0aChwYXJ0UGFydFN0cmluZ3Muc2xpY2UoMSksIHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgTW9kZWxQYXRoKHBhcnRQYXJ0U3RyaW5ncywgYWJzb2x1dGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgam9pbiguLi5wYXJ0czogQXJyYXk8TW9kZWxQYXRoIHwgUGF0aFRva2VuIHwgUGF0aFRva2VuW10+KTogTW9kZWxQYXRoIHtcbiAgICAgICAgbGV0IGFic29sdXRlID0gZmFsc2U7XG4gICAgICAgIGxldCByZXN1bHRQYXJ0czogUGF0aFRva2VuW10gPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBqb2luSXRlbSBvZiBwYXJ0cykge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBqb2luSXRlbSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgIHJlc3VsdFBhcnRzLnB1c2goam9pbkl0ZW0pO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChqb2luSXRlbSBpbnN0YW5jZW9mIE1vZGVsUGF0aCkge1xuICAgICAgICAgICAgICAgIGlmIChqb2luSXRlbS5pc0Fic29sdXRlKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgYWJzb2x1dGUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICByZXN1bHRQYXJ0cyA9IFsuLi5qb2luSXRlbS50b2tlbnNdO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdFBhcnRzLnB1c2goLi4uam9pbkl0ZW0udG9rZW5zKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoam9pbkl0ZW0pKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0UGFydHMucHVzaCguLi5qb2luSXRlbSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKFBhdGhUb2tlbnMuaXNNdWx0aVRva2VuKGpvaW5JdGVtKSkge1xuICAgICAgICAgICAgICAgIHJlc3VsdFBhcnRzLnB1c2goam9pbkl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5ldyBNb2RlbFBhdGgocmVzdWx0UGFydHMsIGFic29sdXRlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc3RhdGljIGVuc3VyZVBsYWluUGF0aFBhcnRzRG9lc05vdENvbnRhaW5NdWx0aXBsaWNpdHkocGFydHM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgICAgIGlmIChwYXJ0cy5zb21lKHggPT4geCA9PT0gXCIqXCIpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJQYXRoIG11c3Qgbm90IGNvbnRhaW4gKiBzeW1ib2xcIik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UGF0aFBhcnRzKCk6IEl0ZXJhYmxlPFBhdGhUb2tlbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy50b2tlbnM7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFBhdGhQYXJ0c0FzQXJyYXkoKTogcmVhZG9ubHkgUGF0aFRva2VuW10ge1xuICAgICAgICByZXR1cm4gdGhpcy50b2tlbnM7XG4gICAgfVxuXG4gICAgcHVibGljICpnZXRTaW1wbGVUb2tlbnNTdHJpY3QoKTogSXRlcmFibGU8U2ltcGxlUGF0aFRva2VuPiB7XG4gICAgICAgIGZvciAoY29uc3QgdG9rZW4gb2YgdGhpcy50b2tlbnMpIHtcbiAgICAgICAgICAgIGlmICghUGF0aFRva2Vucy5pc1NpbXBsZVRva2VuKHRva2VuKSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlBhdGggbXVzdCBub3QgY29udGFpbiBzcGVjIHRva2Vuc1wiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHlpZWxkIHRva2VuO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldFNpbXBsZVRva2Vuc0FzQXJyYXlTdHJpY3QoKTogcmVhZG9ubHkgU2ltcGxlUGF0aFRva2VuW10ge1xuICAgICAgICBmb3IgKGNvbnN0IHRva2VuIG9mIHRoaXMudG9rZW5zKSB7XG4gICAgICAgICAgICBpZiAoIVBhdGhUb2tlbnMuaXNTaW1wbGVUb2tlbih0b2tlbikpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJQYXRoIG11c3Qgbm90IGNvbnRhaW4gc3BlYyB0b2tlbnNcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8g0J/RgNC+0LLQtdGA0LrQsCDQstGL0YjQtSDQs9Cw0YDQsNC10L3RgtC40YDRg9C10YIg0YfRgtC+INCx0YPQtNGD0YIg0YLQvtC70YzQutC+IFNpbXBsZVBhdGhUb2tlbi5cbiAgICAgICAgLy8g0JLRgdC1IG1hcCDQuCBmaWx0ZXIg0YPQsdGA0LDQvdGLINC00LvRjyDQv9GA0L7QuNC30LLQvtC00LjRgtC10LvRjNC90L7RgdGC0LhcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICByZXR1cm4gdGhpcy50b2tlbnM7XG4gICAgfVxuXG4gICAgcHVibGljIGpvaW5XaXRoKC4uLnBhdGg6IEFycmF5PE1vZGVsUGF0aCB8IFBhdGhUb2tlbj4pOiBNb2RlbFBhdGgge1xuICAgICAgICByZXR1cm4gTW9kZWxQYXRoLmpvaW4odGhpcywgLi4ucGF0aCk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzUmVzb2x2ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRva2Vucy5ldmVyeShQYXRoVG9rZW5zLmlzU2ltcGxlVG9rZW4pO1xuICAgIH1cblxuICAgIHB1YmxpYyByZXNvbHZlQWxsKGluc3RhbmNlOiBzdHJpbmcpOiBNb2RlbFBhdGgge1xuICAgICAgICBjb25zdCB0b2tlbnMgPSB0aGlzLnRva2Vucy5tYXAodG9rZW4gPT4ge1xuICAgICAgICAgICAgaWYgKFBhdGhUb2tlbnMuaXNTaW1wbGVUb2tlbih0b2tlbikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBpbnN0YW5jZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBNb2RlbFBhdGgodG9rZW5zLCB0aGlzLmFic29sdXRlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNDb250YWluSXRlcmF0aW9uKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy50b2tlbnMuc29tZSh4ID0+IHggPT09IFBhdGhUb2tlbnMuZWFjaCk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzQ29udGFpbkN1cnJlbnRJdGVyYXRpb24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRva2Vucy5zb21lKHggPT4geCA9PT0gUGF0aFRva2Vucy5jdXJyZW50KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNBYnNvbHV0ZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWJzb2x1dGU7XG4gICAgfVxuXG4gICAgcHVibGljIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgICAgIGlmICh0aGlzLnRva2Vucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAodGhpcy5hYnNvbHV0ZSA/IFwiL1wiIDogXCJcIikgKyB0aGlzLnRva2Vucy5tYXAoeCA9PiB0aGlzLnBhdGhQYXJ0VG9TdHJpbmcoeCkpLmpvaW4oXCIvXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyB0b0xlZ2FjeVBhdGgoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubGVnYWN5UGF0aCA/PyAodGhpcy5sZWdhY3lQYXRoID0gdGhpcy50b2tlbnMubWFwKHggPT4gdGhpcy5wYXRoUGFydFRvU3RyaW5nKHgpKS5qb2luKFwiL1wiKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzRXF1YWxzKFxuICAgICAgICBtb2RlbFBhdGg6IE1vZGVsUGF0aCxcbiAgICAgICAgZWFjaEN1cnJlbnRDb2xsaXNpb246IEVhY2hDdXJyZW50Q29sbGlzaW9uID0gRWFjaEN1cnJlbnRDb2xsaXNpb24uQXJlU2FtZVxuICAgICk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoZWFjaEN1cnJlbnRDb2xsaXNpb24gPT09IEVhY2hDdXJyZW50Q29sbGlzaW9uLkFyZVNhbWUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRvTGVnYWN5UGF0aCgpID09PSBtb2RlbFBhdGgudG9MZWdhY3lQYXRoKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIHRoaXMuaXNBYnNvbHV0ZSgpID09PSBtb2RlbFBhdGguaXNBYnNvbHV0ZSgpICYmXG4gICAgICAgICAgICAgICAgSXRlcmF0b3IuZnJvbShJdGVyVXRpbHMuemlwKHRoaXMuZ2V0UGF0aFBhcnRzKCksIG1vZGVsUGF0aC5nZXRQYXRoUGFydHMoKSkpLmV2ZXJ5KFxuICAgICAgICAgICAgICAgICAgICAoW3QxLCB0Ml0pID0+IHQxID09PSB0MlxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktGB0LXQs9C00LAg0YbQtdC70L7QtSDQv9C+0LvQvtC20LjRgtC10LvRjNC90L7QtSDQsdC10LfQt9C90LDQutC+0LLQvtC1IDMyLdCx0LjRgtC90L7QtSDRh9C40YHQu9C+XG4gICAgICovXG4gICAgcHVibGljIGdldEhhc2goZWFjaEN1cnJlbnRDb2xsaXNpb246IEVhY2hDdXJyZW50Q29sbGlzaW9uID0gRWFjaEN1cnJlbnRDb2xsaXNpb24uQXJlU2FtZSk6IG51bWJlciB7XG4gICAgICAgIGxldCBoYXNoID0gNTM4MTtcbiAgICAgICAgZm9yIChjb25zdCB0b2tlbiBvZiByZXZlcnNlQXJyYXkodGhpcy50b2tlbnMpKSB7XG4gICAgICAgICAgICBsZXQgY3VycmVudFN0cjogc3RyaW5nO1xuICAgICAgICAgICAgaWYgKFBhdGhUb2tlbnMuaXNTaW1wbGVUb2tlbih0b2tlbikpIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50U3RyID0gdG9rZW47XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChlYWNoQ3VycmVudENvbGxpc2lvbiA9PT0gRWFjaEN1cnJlbnRDb2xsaXNpb24uQXJlRGlmZmVyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTdHIgPSB0b2tlbiA9PT0gUGF0aFRva2Vucy5lYWNoID8gXCIqXCIgOiBcIiFcIjtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjdXJyZW50U3RyID0gXCIqXCI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IHN0cmluZ0luZGV4ID0gY3VycmVudFN0ci5sZW5ndGg7XG4gICAgICAgICAgICB3aGlsZSAoc3RyaW5nSW5kZXgpIHtcbiAgICAgICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYml0d2lzZVxuICAgICAgICAgICAgICAgIGhhc2ggPSAoaGFzaCAqIDMzKSBeIGN1cnJlbnRTdHIuY2hhckNvZGVBdCgtLXN0cmluZ0luZGV4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8qXG4gICAgICAgICAgICB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYml0d2lzZVxuICAgICAgICAgICAgSmF2YVNjcmlwdCBkb2VzIGJpdHdpc2Ugb3BlcmF0aW9ucyAobGlrZSBYT1IsIGFib3ZlKSBvbiAzMi1iaXQgc2lnbmVkXG4gICAgICAgICAgICBpbnRlZ2Vycy4gU2luY2Ugd2Ugd2FudCB0aGUgcmVzdWx0cyB0byBiZSBhbHdheXMgcG9zaXRpdmUsIGNvbnZlcnQgdGhlXG4gICAgICAgICAgICBzaWduZWQgaW50IHRvIGFuIHVuc2lnbmVkIGJ5IGRvaW5nIGFuIHVuc2lnbmVkIGJpdHNoaWZ0LlxuICAgICAgKi9cbiAgICAgICAgcmV0dXJuIGhhc2ggPj4+IDA7XG4gICAgfVxuXG4gICAgcHVibGljIGlzSW5jbHVkZXMobW9kZWxQYXRoOiBNb2RlbFBhdGgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMudG9rZW5zLmxlbmd0aCAhPT0gbW9kZWxQYXRoLnRva2Vucy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudG9rZW5zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBsZWZ0UGFydCA9IHRoaXMudG9rZW5zW2ldO1xuICAgICAgICAgICAgY29uc3QgcmlnaHRQYXJ0ID0gbW9kZWxQYXRoLnRva2Vuc1tpXTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgbGVmdFBhcnQgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHJpZ2h0UGFydCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgICAgICBpZiAobGVmdFBhcnQgIT09IHJpZ2h0UGFydCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGxlZnRQYXJ0ID09PSBQYXRoVG9rZW5zLmN1cnJlbnQgfHwgbGVmdFBhcnQgPT09IFBhdGhUb2tlbnMuZWFjaCkge1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgcmlnaHRQYXJ0ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghaXNGaW5pdGUoTnVtYmVyKHJpZ2h0UGFydCkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJpZ2h0UGFydCAhPT0gUGF0aFRva2Vucy5jdXJyZW50ICYmIHJpZ2h0UGFydCAhPT0gUGF0aFRva2Vucy5lYWNoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRJdGVyYXRpb25SYW5rKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBjb3VudChJdGVyYXRvci5mcm9tKHRoaXMudG9rZW5zKS5maWx0ZXIoeCA9PiB4ID09PSBQYXRoVG9rZW5zLmVhY2gpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNFbXB0eSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9rZW5zLmxlbmd0aCA9PT0gMDtcbiAgICB9XG5cbiAgICBwdWJsaWMgbWF0Y2hGb3IobW9kZWxQYXRoOiBNb2RlbFBhdGgpOiBQYXRoTWF0Y2hpbmcge1xuICAgICAgICBpZiAoIXRoaXMuaXNBYnNvbHV0ZSgpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBtYXRjaCBub24gYWJzb2x1dGUgcGF0aCAnJHt0aGlzLnRvU3RyaW5nKCl9J2ApO1xuICAgICAgICB9XG4gICAgICAgIGlmICghbW9kZWxQYXRoLmlzQWJzb2x1dGUoKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgbWF0Y2ggbm9uIGFic29sdXRlIHBhdGggJyR7bW9kZWxQYXRoLnRvU3RyaW5nKCl9J2ApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBQYXRoTWF0Y2hlci5tYXRjaCh0aGlzLnRva2VucywgbW9kZWxQYXRoLnRva2Vucyk7XG4gICAgfVxuXG4gICAgcHVibGljICpzcGxpdEJ5TXVsdGlwbGljaXR5KCk6IEl0ZXJhYmxlPE1vZGVsUGF0aCB8IHR5cGVvZiBFYWNoU3ltYm9sIHwgdHlwZW9mIEN1cnJlbnRTeW1ib2w+IHtcbiAgICAgICAgbGV0IGxhc3RTaW1wbGVQYXJ0cyA9IE1vZGVsUGF0aC5idWlsZGVyKHRoaXMuaXNBYnNvbHV0ZSgpKTtcbiAgICAgICAgZm9yIChjb25zdCB0b2tlbiBvZiB0aGlzLnRva2Vucykge1xuICAgICAgICAgICAgaWYgKFBhdGhUb2tlbnMuaXNTaW1wbGVUb2tlbih0b2tlbikpIHtcbiAgICAgICAgICAgICAgICBsYXN0U2ltcGxlUGFydHMuYXBwZW5kKHRva2VuKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKCFsYXN0U2ltcGxlUGFydHMuZW1wdHkpIHtcbiAgICAgICAgICAgICAgICAgICAgeWllbGQgbGFzdFNpbXBsZVBhcnRzLnRvUGF0aCgpO1xuICAgICAgICAgICAgICAgICAgICBsYXN0U2ltcGxlUGFydHMgPSBNb2RlbFBhdGguYnVpbGRlcigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB5aWVsZCB0b2tlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIWxhc3RTaW1wbGVQYXJ0cy5lbXB0eSkge1xuICAgICAgICAgICAgeWllbGQgbGFzdFNpbXBsZVBhcnRzLnRvUGF0aCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG5vcm1hbGl6ZSgpOiBNb2RlbFBhdGgge1xuICAgICAgICBjb25zdCByZXN1bHRUb2tlbnM6IFBhdGhUb2tlbltdID0gW107XG4gICAgICAgIGZvciAoY29uc3QgcGF0aFBhcnQgb2YgdGhpcy50b2tlbnMpIHtcbiAgICAgICAgICAgIGlmIChwYXRoUGFydCA9PT0gXCIuLlwiKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFyZXN1bHRUb2tlbnMucG9wKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNBYnNvbHV0ZSgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFBhdGggaXMgaW52YWxpZCAnJHt0aGlzLnRvU3RyaW5nKCl9J2ApO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0VG9rZW5zLnB1c2goXCIuLlwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHBhdGhQYXJ0ID09PSBcIi5cIikge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVzdWx0VG9rZW5zLnB1c2gocGF0aFBhcnQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgTW9kZWxQYXRoKHJlc3VsdFRva2VucywgdGhpcy5pc0Fic29sdXRlKCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBzdW1tYXJ5INCh0L/QtdGG0LjRhNC40LrQsNGC0L7RgNGLINC80L3QvtC20LXRgdGC0LLQtdC90L3QvtGB0YLQuCBFYWNoINC30LDQvNC10L3Rj9C10YIg0L3QsCBDdXJyZW50XG4gICAgICovXG4gICAgcHVibGljIHRvQ3VycmVudEl0ZXJhdGlvbigpOiBNb2RlbFBhdGgge1xuICAgICAgICByZXR1cm4gbmV3IE1vZGVsUGF0aChcbiAgICAgICAgICAgIHRoaXMudG9rZW5zLm1hcCh4ID0+ICh4ID09PSBQYXRoVG9rZW5zLmVhY2ggPyBQYXRoVG9rZW5zLmN1cnJlbnQgOiB4KSksXG4gICAgICAgICAgICB0aGlzLmlzQWJzb2x1dGUoKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyB0b0Fic29sdXRlKCk6IEFic29sdXRlTW9kZWxQYXRoIHtcbiAgICAgICAgaWYgKCF0aGlzLmFic29sdXRlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFBhdGggJyR7dGhpcy50b0xlZ2FjeVBhdGgoKX0gaXMgbm90IGFic29sdXRlJ2ApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgQWJzb2x1dGVNb2RlbFBhdGgodGhpcy50b2tlbnMpO1xuICAgIH1cblxuICAgIHB1YmxpYyAqZ2V0QWxsUGFyZW50UGF0aHMoKTogSXRlcmFibGU8TW9kZWxQYXRoPiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IE1vZGVsUGF0aC5idWlsZGVyKHRoaXMuaXNBYnNvbHV0ZSgpKTtcbiAgICAgICAgZm9yIChjb25zdCB0b2tlbiBvZiBJdGVyVXRpbHMuc2tpcExhc3QodGhpcy5nZXRQYXRoUGFydHMoKSwgMSkpIHtcbiAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQodG9rZW4pO1xuICAgICAgICAgICAgeWllbGQgcmVzdWx0LnRvUGF0aCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHRyaW1MYXN0U3RhcklmTGFzdFRva2VuKCk6IE1vZGVsUGF0aCB7XG4gICAgICAgIGNvbnN0IGxhc3RJdGVtID0gSXRlclV0aWxzLmxhc3QodGhpcy50b2tlbnMpO1xuICAgICAgICBpZiAobGFzdEl0ZW0gIT0gdW5kZWZpbmVkICYmIFBhdGhUb2tlbnMuaXNNdWx0aVRva2VuKGxhc3RJdGVtKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBNb2RlbFBhdGgodGhpcy50b2tlbnMuc2xpY2UoMCwgLTEpLCB0aGlzLmFic29sdXRlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UGFyZW50UGF0aCgpOiBNb2RlbFBhdGgge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBNb2RlbFBhdGguYnVpbGRlcih0aGlzLmlzQWJzb2x1dGUoKSk7XG4gICAgICAgIGZvciAoY29uc3QgdG9rZW4gb2YgSXRlclV0aWxzLnNraXBMYXN0KHRoaXMuZ2V0UGF0aFBhcnRzKCksIDEpKSB7XG4gICAgICAgICAgICByZXN1bHQuYXBwZW5kKHRva2VuKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0LnRvQWJzb2x1dGVQYXRoKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFwcGx5SW5zdGFuY2VzRGlydHkoaW5zdGFuY2VzOiBTaW1wbGVQYXRoVG9rZW5bXSk6IE1vZGVsUGF0aCB7XG4gICAgICAgIGlmICh0aGlzLmlzUmVzb2x2ZWQoKSB8fCBpbnN0YW5jZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuICAgICAgICBsZXQgaW5zdGFuY2VDb3VudGVyID0gMDtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gTW9kZWxQYXRoLmJ1aWxkZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCB0b2tlbiBvZiB0aGlzLmdldFBhdGhQYXJ0cygpKSB7XG4gICAgICAgICAgICBpZiAoUGF0aFRva2Vucy5pc011bHRpVG9rZW4odG9rZW4pICYmIGluc3RhbmNlQ291bnRlciA8IGluc3RhbmNlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGluc3RhbmNlc1tpbnN0YW5jZUNvdW50ZXJdID8/IHJlamVjdCgpKTtcbiAgICAgICAgICAgICAgICBpbnN0YW5jZUNvdW50ZXIrKztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCh0b2tlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdC50b0Fic29sdXRlUGF0aCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcGF0aFBhcnRUb1N0cmluZyhwYXRoUGFydDogUGF0aFRva2VuKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHR5cGVvZiBwYXRoUGFydCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcmV0dXJuIHBhdGhQYXJ0O1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYXRoUGFydCA9PT0gUGF0aFRva2Vucy5lYWNoKSB7XG4gICAgICAgICAgICByZXR1cm4gXCIqXCI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhdGhQYXJ0ID09PSBQYXRoVG9rZW5zLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIHJldHVybiBcIipcIjtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gcGF0aCBwYXJ0IHNwZWNpZmllZDogJHtlbnN1cmVBbmRHZXRTdHJpbmcocGF0aFBhcnQpfWApO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFic29sdXRlTW9kZWxQYXRoIGV4dGVuZHMgTW9kZWxQYXRoIHtcbiAgICBwdWJsaWMgY29uc3RydWN0b3IocGF0aFBhcnRzOiByZWFkb25seSBQYXRoVG9rZW5bXSkge1xuICAgICAgICBzdXBlcihwYXRoUGFydHMsIHRydWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlQWJzb2x1dGVGcm9tTWFzayhwYXRoOiBzdHJpbmcsIG11bHRpcGxpY2l0eVN5bWJvbDogUGF0aFRva2VuKTogTW9kZWxQYXRoIHtcbiAgICAgICAgY29uc3QgcGFydFBhcnRTdHJpbmdzID0gcGF0aC5zcGxpdChcIi9cIikubWFwKHggPT4gKHggPT09IFwiKlwiID8gbXVsdGlwbGljaXR5U3ltYm9sIDogeCkpO1xuICAgICAgICBpZiAocGF0aC5zdGFydHNXaXRoKFwiL1wiKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBBYnNvbHV0ZU1vZGVsUGF0aChwYXJ0UGFydFN0cmluZ3Muc2xpY2UoMSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgQWJzb2x1dGVNb2RlbFBhdGgocGFydFBhcnRTdHJpbmdzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGNyZWF0ZUFic29sdXRlKHBhdGg6IHN0cmluZyk6IEFic29sdXRlTW9kZWxQYXRoIHtcbiAgICAgICAgY29uc3QgcGFydFBhcnRTdHJpbmdzID0gcGF0aC5zcGxpdChcIi9cIik7XG4gICAgICAgIHRoaXMuZW5zdXJlUGxhaW5QYXRoUGFydHNEb2VzTm90Q29udGFpbk11bHRpcGxpY2l0eShwYXJ0UGFydFN0cmluZ3MpO1xuICAgICAgICBpZiAocGF0aC5zdGFydHNXaXRoKFwiL1wiKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBBYnNvbHV0ZU1vZGVsUGF0aChwYXJ0UGFydFN0cmluZ3Muc2xpY2UoMSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgQWJzb2x1dGVNb2RlbFBhdGgocGFydFBhcnRTdHJpbmdzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgam9pbldpdGgocGF0aDogTW9kZWxQYXRoIHwgUGF0aFRva2VuKTogQWJzb2x1dGVNb2RlbFBhdGgge1xuICAgICAgICByZXR1cm4gc3VwZXIuam9pbldpdGgocGF0aCkudG9BYnNvbHV0ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRQYXJlbnRQYXRoKCk6IEFic29sdXRlTW9kZWxQYXRoIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gTW9kZWxQYXRoLmJ1aWxkZXIodHJ1ZSk7XG4gICAgICAgIGZvciAoY29uc3QgdG9rZW4gb2YgSXRlclV0aWxzLnNraXBMYXN0KHRoaXMuZ2V0UGF0aFBhcnRzKCksIDEpKSB7XG4gICAgICAgICAgICByZXN1bHQuYXBwZW5kKHRva2VuKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0LnRvQWJzb2x1dGVQYXRoKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFwcGx5SW5zdGFuY2VzRGlydHkoaW5zdGFuY2VzOiBTaW1wbGVQYXRoVG9rZW5bXSk6IEFic29sdXRlTW9kZWxQYXRoIHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLmFwcGx5SW5zdGFuY2VzRGlydHkoaW5zdGFuY2VzKS50b0Fic29sdXRlKCk7XG4gICAgfVxufVxuIl19
545
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL0NvbW1vbi9Nb2RlbFBhdGgvTW9kZWxQYXRoLnRzIl0sIm5hbWVzIjpbIkVhY2hTeW1ib2wiLCJTeW1ib2wiLCJmb3IiLCJDdXJyZW50U3ltYm9sIiwiUGF0aFRva2VucyIsImlzTXVsdGlUb2tlbiIsInBhcnQiLCJlYWNoIiwiY3VycmVudCIsImlzU2ltcGxlVG9rZW4iLCJpc0luc3RhbmNlVG9rZW4iLCJ0ZXN0IiwiaXNNb2RlbFBhdGgiLCJwYXRoIiwiY29udmVydFRvTGVnYWN5UGF0aCIsInRvTGVnYWN5UGF0aCIsImNvbnZlcnRUb0Fic29sdXRNb2RlbFBhdGgiLCJBYnNvbHV0ZU1vZGVsUGF0aCIsImNyZWF0ZUFic29sdXRlRnJvbU1hc2siLCJBYnNvbHV0ZU1vZGVsRmllbGRQYXRoIiwiY29uc3RydWN0b3IiLCJmaWVsZE5hbWUiLCJmaWVsZCIsImlzRXF1YWxzIiwibW9kZWxQYXRoIiwiZWFjaEN1cnJlbnRDb2xsaXNpb24iLCJFYWNoQ3VycmVudENvbGxpc2lvbiIsIkFyZVNhbWUiLCJjcmVhdGVGcm9tU3RyaW5nIiwicGF0aFdpdGhGaWVsZE5hbWUiLCJlbmRzV2l0aCIsImNyZWF0ZUFic29sdXRlIiwicmVwbGFjZSIsImNyZWF0ZUZyb21NYXNrIiwibXVsdGlwbGljaXR5U3ltYm9sIiwiTW9kZWxQYXRoIiwicGF0aFBhcnRzIiwiYWJzb2x1dGUiLCJ0b2tlbnMiLCJsZWdhY3lQYXRoIiwiZmlsdGVyIiwieCIsImVtcHR5IiwiYnVpbGRlciIsImZvcmNlQWJzb2x1dGUiLCJNb2RlbFBhdGhCdWlsZGVyIiwicGFydFBhcnRTdHJpbmdzIiwic3BsaXQiLCJlbnN1cmVQbGFpblBhdGhQYXJ0c0RvZXNOb3RDb250YWluTXVsdGlwbGljaXR5Iiwic3RhcnRzV2l0aCIsInNsaWNlIiwibWFwIiwiam9pbiIsInBhcnRzIiwicmVzdWx0UGFydHMiLCJqb2luSXRlbSIsInB1c2giLCJpc0Fic29sdXRlIiwiQXJyYXkiLCJpc0FycmF5Iiwic29tZSIsIkVycm9yIiwiZ2V0UGF0aFBhcnRzIiwiZ2V0UGF0aFBhcnRzQXNBcnJheSIsImdldFNpbXBsZVRva2Vuc1N0cmljdCIsInRva2VuIiwiZ2V0U2ltcGxlVG9rZW5zQXNBcnJheVN0cmljdCIsImpvaW5XaXRoIiwiaXNSZXNvbHZlZCIsImV2ZXJ5IiwicmVzb2x2ZUFsbCIsImluc3RhbmNlIiwiaXNDb250YWluSXRlcmF0aW9uIiwiaXNDb250YWluQ3VycmVudEl0ZXJhdGlvbiIsInRvU3RyaW5nIiwibGVuZ3RoIiwicGF0aFBhcnRUb1N0cmluZyIsIkl0ZXJhdG9yIiwiZnJvbSIsIkl0ZXJVdGlscyIsInppcCIsInQxIiwidDIiLCJnZXRIYXNoIiwiaGFzaCIsImN1cnJlbnRTdHIiLCJBcmVEaWZmZXJlbnQiLCJzdHJpbmdJbmRleCIsImNoYXJDb2RlQXQiLCJpc0luY2x1ZGVzIiwiaSIsImxlZnRQYXJ0IiwicmlnaHRQYXJ0IiwiaXNGaW5pdGUiLCJOdW1iZXIiLCJnZXRJdGVyYXRpb25SYW5rIiwiaXNFbXB0eSIsIm1hdGNoRm9yIiwiUGF0aE1hdGNoZXIiLCJtYXRjaCIsInNwbGl0QnlNdWx0aXBsaWNpdHkiLCJsYXN0U2ltcGxlUGFydHMiLCJhcHBlbmQiLCJ0b1BhdGgiLCJub3JtYWxpemUiLCJyZXN1bHRUb2tlbnMiLCJwYXRoUGFydCIsInBvcCIsInRvQ3VycmVudEl0ZXJhdGlvbiIsInRvRWFjaEl0ZXJhdGlvbiIsInRvQWJzb2x1dGUiLCJnZXRBbGxQYXJlbnRQYXRocyIsInJlc3VsdCIsInNraXBMYXN0IiwidHJpbUxhc3RTdGFySWZMYXN0VG9rZW4iLCJsYXN0SXRlbSIsImxhc3QiLCJ1bmRlZmluZWQiLCJnZXRQYXJlbnRQYXRoIiwidG9BYnNvbHV0ZVBhdGgiLCJhcHBseUluc3RhbmNlc0RpcnR5IiwiaW5zdGFuY2VzIiwiaW5zdGFuY2VDb3VudGVyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBR0EsTUFBTUEs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OztBQUNELFdBQU8rQyxNQUFNLENBQUNPLGNBQVAsRUFBUDtBQUNIOztBQUVNQyxFQUFBQSxtQkFBbUIsQ0FBQ0MsU0FBRCxFQUFrRDtBQUN4RSxXQUFPLE1BQU1ELG1CQUFOLENBQTBCQyxTQUExQixFQUFxQ1gsVUFBckMsRUFBUDtBQUNIOztBQXBDNEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCaW5kaW5nUGF0aCwgVmlld01vZGVsRmllbGROYW1lIH0gZnJvbSBcIi4uLy4uL0VuZ2luZS9zcmMvRW5naW5lL0NvcmUvQ29yZVR5cGVzXCI7XG5pbXBvcnQgeyBjb3VudCwgSXRlclV0aWxzLCByZXZlcnNlQXJyYXkgfSBmcm9tIFwiLi4vSXRlcmFibGVVdGlsc1wiO1xuaW1wb3J0IHsgZW5zdXJlQW5kR2V0U3RyaW5nLCByZWplY3QgfSBmcm9tIFwiLi4vVHlwaW5nVXRpbHNcIjtcblxuaW1wb3J0IHsgRWFjaEN1cnJlbnRDb2xsaXNpb24gfSBmcm9tIFwiLi9FYWNoQ3VycmVudENvbGxpc2lvblwiO1xuaW1wb3J0IHsgTW9kZWxQYXRoQnVpbGRlciB9IGZyb20gXCIuL01vZGVsUGF0aEJ1aWxkZXJcIjtcbmltcG9ydCB7IFBhdGhNYXRjaGVyLCBQYXRoTWF0Y2hpbmcgfSBmcm9tIFwiLi9QYXRoTWF0Y2hlclwiO1xuaW1wb3J0IHsgSUVxdWF0YWJsZSB9IGZyb20gXCIuL0lFcXVhdGFibGVcIjtcblxuY29uc3QgRWFjaFN5bWJvbCA9IFN5bWJvbC5mb3IoXCJfX0VBQ0hfX1wiKTtcbmNvbnN0IEN1cnJlbnRTeW1ib2wgPSBTeW1ib2wuZm9yKFwiX19DVVJSRU5UX19cIik7XG5cbmV4cG9ydCBjbGFzcyBQYXRoVG9rZW5zIHtcbiAgICBwdWJsaWMgc3RhdGljIGVhY2g6IHR5cGVvZiBFYWNoU3ltYm9sID0gRWFjaFN5bWJvbDtcbiAgICBwdWJsaWMgc3RhdGljIGN1cnJlbnQ6IHR5cGVvZiBDdXJyZW50U3ltYm9sID0gQ3VycmVudFN5bWJvbDtcblxuICAgIHB1YmxpYyBzdGF0aWMgaXNNdWx0aVRva2VuKHBhcnQ6IHVuZGVmaW5lZCB8IFBhdGhUb2tlbik6IHBhcnQgaXMgdHlwZW9mIEVhY2hTeW1ib2wgfCB0eXBlb2YgQ3VycmVudFN5bWJvbCB7XG4gICAgICAgIHJldHVybiBwYXJ0ID09PSBQYXRoVG9rZW5zLmVhY2ggfHwgcGFydCA9PT0gUGF0aFRva2Vucy5jdXJyZW50O1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgaXNTaW1wbGVUb2tlbihwYXJ0OiB1bmRlZmluZWQgfCBQYXRoVG9rZW4pOiBwYXJ0IGlzIHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgcGFydCA9PT0gXCJzdHJpbmdcIjtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGlzSW5zdGFuY2VUb2tlbihwYXJ0OiB1bmRlZmluZWQgfCBQYXRoVG9rZW4pOiBwYXJ0IGlzIHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgcGFydCA9PT0gXCJzdHJpbmdcIiAmJiAvXlxcZCskL2kudGVzdChwYXJ0KTtcbiAgICB9XG59XG5cbmV4cG9ydCB0eXBlIFNpbXBsZVBhdGhUb2tlbiA9IHN0cmluZztcblxuZXhwb3J0IHR5cGUgUGF0aFRva2VuID0gU2ltcGxlUGF0aFRva2VuIHwgdHlwZW9mIEVhY2hTeW1ib2wgfCB0eXBlb2YgQ3VycmVudFN5bWJvbDtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzTW9kZWxQYXRoKHBhdGg6IEJpbmRpbmdQYXRoIHwgTW9kZWxQYXRoKTogcGF0aCBpcyBNb2RlbFBhdGgge1xuICAgIHJldHVybiB0eXBlb2YgcGF0aCAhPT0gXCJzdHJpbmdcIjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRUb0xlZ2FjeVBhdGgocGF0aDogQmluZGluZ1BhdGggfCBNb2RlbFBhdGgpOiBCaW5kaW5nUGF0aCB7XG4gICAgcmV0dXJuIGlzTW9kZWxQYXRoKHBhdGgpID8gcGF0aC50b0xlZ2FjeVBhdGgoKSA6IHBhdGg7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0VG9BYnNvbHV0TW9kZWxQYXRoKHBhdGg6IEJpbmRpbmdQYXRoIHwgQWJzb2x1dGVNb2RlbFBhdGgpOiBBYnNvbHV0ZU1vZGVsUGF0aCB7XG4gICAgcmV0dXJuIGlzTW9kZWxQYXRoKHBhdGgpID8gcGF0aCA6IEFic29sdXRlTW9kZWxQYXRoLmNyZWF0ZUFic29sdXRlRnJvbU1hc2socGF0aCwgUGF0aFRva2Vucy5lYWNoKTtcbn1cblxuZXhwb3J0IGNsYXNzIEFic29sdXRlTW9kZWxGaWVsZFBhdGgge1xuICAgIHB1YmxpYyByZWFkb25seSBwYXRoOiBBYnNvbHV0ZU1vZGVsUGF0aDtcbiAgICBwdWJsaWMgcmVhZG9ubHkgZmllbGQ6IFZpZXdNb2RlbEZpZWxkTmFtZSB8IFwiJGVycm9yQ291bnRcIiB8IFwiJHdhcm5pbmdDb3VudFwiO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHBhdGg6IEFic29sdXRlTW9kZWxQYXRoLCBmaWVsZE5hbWU6IFZpZXdNb2RlbEZpZWxkTmFtZSB8IFwiJGVycm9yQ291bnRcIiB8IFwiJHdhcm5pbmdDb3VudFwiKSB7XG4gICAgICAgIHRoaXMucGF0aCA9IHBhdGg7XG4gICAgICAgIHRoaXMuZmllbGQgPSBmaWVsZE5hbWU7XG4gICAgfVxuXG4gICAgcHVibGljIGlzRXF1YWxzKFxuICAgICAgICBtb2RlbFBhdGg6IEFic29sdXRlTW9kZWxGaWVsZFBhdGgsXG4gICAgICAgIGVhY2hDdXJyZW50Q29sbGlzaW9uOiBFYWNoQ3VycmVudENvbGxpc2lvbiA9IEVhY2hDdXJyZW50Q29sbGlzaW9uLkFyZVNhbWVcbiAgICApOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGF0aC5pc0VxdWFscyhtb2RlbFBhdGgucGF0aCwgZWFjaEN1cnJlbnRDb2xsaXNpb24pICYmIHRoaXMuZmllbGQgPT09IG1vZGVsUGF0aC5maWVsZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGNyZWF0ZUZyb21TdHJpbmcocGF0aFdpdGhGaWVsZE5hbWU6IHN0cmluZyk6IEFic29sdXRlTW9kZWxGaWVsZFBhdGgge1xuICAgICAgICBpZiAocGF0aFdpdGhGaWVsZE5hbWUuZW5kc1dpdGgoXCIuJGVycm9yQ291bnRcIikpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgQWJzb2x1dGVNb2RlbEZpZWxkUGF0aChcbiAgICAgICAgICAgICAgICBBYnNvbHV0ZU1vZGVsUGF0aC5jcmVhdGVBYnNvbHV0ZShwYXRoV2l0aEZpZWxkTmFtZS5yZXBsYWNlKFwiLiRlcnJvckNvdW50XCIsIFwiXCIpKSxcbiAgICAgICAgICAgICAgICBcIiRlcnJvckNvdW50XCJcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhdGhXaXRoRmllbGROYW1lLmVuZHNXaXRoKFwiLiR3YXJuaW5nQ291bnRcIikpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgQWJzb2x1dGVNb2RlbEZpZWxkUGF0aChcbiAgICAgICAgICAgICAgICBBYnNvbHV0ZU1vZGVsUGF0aC5jcmVhdGVBYnNvbHV0ZShwYXRoV2l0aEZpZWxkTmFtZS5yZXBsYWNlKFwiLiR3YXJuaW5nQ291bnRcIiwgXCJcIikpLFxuICAgICAgICAgICAgICAgIFwiJHdhcm5pbmdDb3VudFwiXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgQWJzb2x1dGVNb2RlbEZpZWxkUGF0aChBYnNvbHV0ZU1vZGVsUGF0aC5jcmVhdGVBYnNvbHV0ZShwYXRoV2l0aEZpZWxkTmFtZSksIFwidmFsdWVcIik7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBjcmVhdGVGcm9tTWFzayhwYXRoV2l0aEZpZWxkTmFtZTogc3RyaW5nLCBtdWx0aXBsaWNpdHlTeW1ib2w6IFBhdGhUb2tlbik6IEFic29sdXRlTW9kZWxGaWVsZFBhdGgge1xuICAgICAgICBpZiAocGF0aFdpdGhGaWVsZE5hbWUuZW5kc1dpdGgoXCIuJGVycm9yQ291bnRcIikpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgQWJzb2x1dGVNb2RlbEZpZWxkUGF0aChcbiAgICAgICAgICAgICAgICBBYnNvbHV0ZU1vZGVsUGF0aC5jcmVhdGVBYnNvbHV0ZUZyb21NYXNrKFxuICAgICAgICAgICAgICAgICAgICBwYXRoV2l0aEZpZWxkTmFtZS5yZXBsYWNlKFwiLiRlcnJvckNvdW50XCIsIFwiXCIpLFxuICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWNpdHlTeW1ib2xcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIFwiJGVycm9yQ291bnRcIlxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGF0aFdpdGhGaWVsZE5hbWUuZW5kc1dpdGgoXCIuJHdhcm5pbmdDb3VudFwiKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBBYnNvbHV0ZU1vZGVsRmllbGRQYXRoKFxuICAgICAgICAgICAgICAgIEFic29sdXRlTW9kZWxQYXRoLmNyZWF0ZUFic29sdXRlRnJvbU1hc2soXG4gICAgICAgICAgICAgICAgICAgIHBhdGhXaXRoRmllbGROYW1lLnJlcGxhY2UoXCIuJHdhcm5pbmdDb3VudFwiLCBcIlwiKSxcbiAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGljaXR5U3ltYm9sXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICBcIiR3YXJuaW5nQ291bnRcIlxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IEFic29sdXRlTW9kZWxGaWVsZFBhdGgoXG4gICAgICAgICAgICBBYnNvbHV0ZU1vZGVsUGF0aC5jcmVhdGVBYnNvbHV0ZUZyb21NYXNrKHBhdGhXaXRoRmllbGROYW1lLCBtdWx0aXBsaWNpdHlTeW1ib2wpLFxuICAgICAgICAgICAgXCJ2YWx1ZVwiXG4gICAgICAgICk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgTW9kZWxQYXRoIGltcGxlbWVudHMgSUVxdWF0YWJsZTxNb2RlbFBhdGg+IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRva2VuczogcmVhZG9ubHkgUGF0aFRva2VuW107XG4gICAgcHJpdmF0ZSByZWFkb25seSBhYnNvbHV0ZTogYm9vbGVhbjtcbiAgICBwcml2YXRlIGxlZ2FjeVBhdGg6IHVuZGVmaW5lZCB8IHN0cmluZztcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihwYXRoUGFydHM6IHJlYWRvbmx5IFBhdGhUb2tlbltdLCBhYnNvbHV0ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnRva2VucyA9IHBhdGhQYXJ0cy5maWx0ZXIoeCA9PiB4ICE9PSBcIlwiKTtcbiAgICAgICAgdGhpcy5hYnNvbHV0ZSA9IGFic29sdXRlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZW1wdHkoKTogTW9kZWxQYXRoIHtcbiAgICAgICAgcmV0dXJuIG5ldyBNb2RlbFBhdGgoW10sIGZhbHNlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGJ1aWxkZXIoZm9yY2VBYnNvbHV0ZTogYm9vbGVhbiA9IGZhbHNlKTogTW9kZWxQYXRoQnVpbGRlciB7XG4gICAgICAgIHJldHVybiBuZXcgTW9kZWxQYXRoQnVpbGRlcihmb3JjZUFic29sdXRlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGNyZWF0ZUZyb21TdHJpbmcocGF0aDogc3RyaW5nLCBhYnNvbHV0ZTogYm9vbGVhbiB8IFwiYXV0b1wiKTogTW9kZWxQYXRoIHtcbiAgICAgICAgY29uc3QgcGFydFBhcnRTdHJpbmdzID0gcGF0aC5zcGxpdChcIi9cIik7XG4gICAgICAgIHRoaXMuZW5zdXJlUGxhaW5QYXRoUGFydHNEb2VzTm90Q29udGFpbk11bHRpcGxpY2l0eShwYXJ0UGFydFN0cmluZ3MpO1xuICAgICAgICBpZiAoYWJzb2x1dGUgPT09IFwiYXV0b1wiKSB7XG4gICAgICAgICAgICBpZiAocGF0aC5zdGFydHNXaXRoKFwiL1wiKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTW9kZWxQYXRoKHBhcnRQYXJ0U3RyaW5ncy5zbGljZSgxKSwgdHJ1ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTW9kZWxQYXRoKHBhcnRQYXJ0U3RyaW5ncywgZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChhYnNvbHV0ZSAmJiBwYXRoLnN0YXJ0c1dpdGgoXCIvXCIpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IE1vZGVsUGF0aChwYXJ0UGFydFN0cmluZ3Muc2xpY2UoMSksIHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgTW9kZWxQYXRoKHBhcnRQYXJ0U3RyaW5ncywgYWJzb2x1dGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlRnJvbU1hc2socGF0aDogc3RyaW5nLCBhYnNvbHV0ZTogYm9vbGVhbiB8IFwiYXV0b1wiLCBtdWx0aXBsaWNpdHlTeW1ib2w6IFBhdGhUb2tlbik6IE1vZGVsUGF0aCB7XG4gICAgICAgIGNvbnN0IHBhcnRQYXJ0U3RyaW5ncyA9IHBhdGguc3BsaXQoXCIvXCIpLm1hcCh4ID0+ICh4ID09PSBcIipcIiA/IG11bHRpcGxpY2l0eVN5bWJvbCA6IHgpKTtcbiAgICAgICAgaWYgKGFic29sdXRlID09PSBcImF1dG9cIikge1xuICAgICAgICAgICAgaWYgKHBhdGguc3RhcnRzV2l0aChcIi9cIikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IE1vZGVsUGF0aChwYXJ0UGFydFN0cmluZ3Muc2xpY2UoMSksIHRydWUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IE1vZGVsUGF0aChwYXJ0UGFydFN0cmluZ3MsIGZhbHNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoYWJzb2x1dGUgJiYgcGF0aC5zdGFydHNXaXRoKFwiL1wiKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBNb2RlbFBhdGgocGFydFBhcnRTdHJpbmdzLnNsaWNlKDEpLCB0cnVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IE1vZGVsUGF0aChwYXJ0UGFydFN0cmluZ3MsIGFic29sdXRlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGpvaW4oLi4ucGFydHM6IEFycmF5PE1vZGVsUGF0aCB8IFBhdGhUb2tlbiB8IFBhdGhUb2tlbltdPik6IE1vZGVsUGF0aCB7XG4gICAgICAgIGxldCBhYnNvbHV0ZSA9IGZhbHNlO1xuICAgICAgICBsZXQgcmVzdWx0UGFydHM6IFBhdGhUb2tlbltdID0gW107XG4gICAgICAgIGZvciAoY29uc3Qgam9pbkl0ZW0gb2YgcGFydHMpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygam9pbkl0ZW0gPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICByZXN1bHRQYXJ0cy5wdXNoKGpvaW5JdGVtKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoam9pbkl0ZW0gaW5zdGFuY2VvZiBNb2RlbFBhdGgpIHtcbiAgICAgICAgICAgICAgICBpZiAoam9pbkl0ZW0uaXNBYnNvbHV0ZSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGFic29sdXRlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0UGFydHMgPSBbLi4uam9pbkl0ZW0udG9rZW5zXTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHRQYXJ0cy5wdXNoKC4uLmpvaW5JdGVtLnRva2Vucyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGpvaW5JdGVtKSkge1xuICAgICAgICAgICAgICAgIHJlc3VsdFBhcnRzLnB1c2goLi4uam9pbkl0ZW0pO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChQYXRoVG9rZW5zLmlzTXVsdGlUb2tlbihqb2luSXRlbSkpIHtcbiAgICAgICAgICAgICAgICByZXN1bHRQYXJ0cy5wdXNoKGpvaW5JdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuZXcgTW9kZWxQYXRoKHJlc3VsdFBhcnRzLCBhYnNvbHV0ZSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHN0YXRpYyBlbnN1cmVQbGFpblBhdGhQYXJ0c0RvZXNOb3RDb250YWluTXVsdGlwbGljaXR5KHBhcnRzOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgICAgICBpZiAocGFydHMuc29tZSh4ID0+IHggPT09IFwiKlwiKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUGF0aCBtdXN0IG5vdCBjb250YWluICogc3ltYm9sXCIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldFBhdGhQYXJ0cygpOiBJdGVyYWJsZTxQYXRoVG9rZW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9rZW5zO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRQYXRoUGFydHNBc0FycmF5KCk6IHJlYWRvbmx5IFBhdGhUb2tlbltdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9rZW5zO1xuICAgIH1cblxuICAgIHB1YmxpYyAqZ2V0U2ltcGxlVG9rZW5zU3RyaWN0KCk6IEl0ZXJhYmxlPFNpbXBsZVBhdGhUb2tlbj4ge1xuICAgICAgICBmb3IgKGNvbnN0IHRva2VuIG9mIHRoaXMudG9rZW5zKSB7XG4gICAgICAgICAgICBpZiAoIVBhdGhUb2tlbnMuaXNTaW1wbGVUb2tlbih0b2tlbikpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJQYXRoIG11c3Qgbm90IGNvbnRhaW4gc3BlYyB0b2tlbnNcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB5aWVsZCB0b2tlbjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXRTaW1wbGVUb2tlbnNBc0FycmF5U3RyaWN0KCk6IHJlYWRvbmx5IFNpbXBsZVBhdGhUb2tlbltdIHtcbiAgICAgICAgZm9yIChjb25zdCB0b2tlbiBvZiB0aGlzLnRva2Vucykge1xuICAgICAgICAgICAgaWYgKCFQYXRoVG9rZW5zLmlzU2ltcGxlVG9rZW4odG9rZW4pKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUGF0aCBtdXN0IG5vdCBjb250YWluIHNwZWMgdG9rZW5zXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vINCf0YDQvtCy0LXRgNC60LAg0LLRi9GI0LUg0LPQsNGA0LDQtdC90YLQuNGA0YPQtdGCINGH0YLQviDQsdGD0LTRg9GCINGC0L7Qu9GM0LrQviBTaW1wbGVQYXRoVG9rZW4uXG4gICAgICAgIC8vINCS0YHQtSBtYXAg0LggZmlsdGVyINGD0LHRgNCw0L3RiyDQtNC70Y8g0L/RgNC+0LjQt9Cy0L7QtNC40YLQtdC70YzQvdC+0YHRgtC4XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgcmV0dXJuIHRoaXMudG9rZW5zO1xuICAgIH1cblxuICAgIHB1YmxpYyBqb2luV2l0aCguLi5wYXRoOiBBcnJheTxNb2RlbFBhdGggfCBQYXRoVG9rZW4+KTogTW9kZWxQYXRoIHtcbiAgICAgICAgcmV0dXJuIE1vZGVsUGF0aC5qb2luKHRoaXMsIC4uLnBhdGgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc1Jlc29sdmVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy50b2tlbnMuZXZlcnkoUGF0aFRva2Vucy5pc1NpbXBsZVRva2VuKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVzb2x2ZUFsbChpbnN0YW5jZTogc3RyaW5nKTogTW9kZWxQYXRoIHtcbiAgICAgICAgY29uc3QgdG9rZW5zID0gdGhpcy50b2tlbnMubWFwKHRva2VuID0+IHtcbiAgICAgICAgICAgIGlmIChQYXRoVG9rZW5zLmlzU2ltcGxlVG9rZW4odG9rZW4pKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaW5zdGFuY2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBuZXcgTW9kZWxQYXRoKHRva2VucywgdGhpcy5hYnNvbHV0ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzQ29udGFpbkl0ZXJhdGlvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9rZW5zLnNvbWUoeCA9PiB4ID09PSBQYXRoVG9rZW5zLmVhY2gpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0NvbnRhaW5DdXJyZW50SXRlcmF0aW9uKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy50b2tlbnMuc29tZSh4ID0+IHggPT09IFBhdGhUb2tlbnMuY3VycmVudCk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzQWJzb2x1dGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmFic29sdXRlO1xuICAgIH1cblxuICAgIHB1YmxpYyB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgICAgICBpZiAodGhpcy50b2tlbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJcIjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKHRoaXMuYWJzb2x1dGUgPyBcIi9cIiA6IFwiXCIpICsgdGhpcy50b2tlbnMubWFwKHggPT4gdGhpcy5wYXRoUGFydFRvU3RyaW5nKHgpKS5qb2luKFwiL1wiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdG9MZWdhY3lQYXRoKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmxlZ2FjeVBhdGggPz8gKHRoaXMubGVnYWN5UGF0aCA9IHRoaXMudG9rZW5zLm1hcCh4ID0+IHRoaXMucGF0aFBhcnRUb1N0cmluZyh4KSkuam9pbihcIi9cIikpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0VxdWFscyhcbiAgICAgICAgbW9kZWxQYXRoOiBNb2RlbFBhdGgsXG4gICAgICAgIGVhY2hDdXJyZW50Q29sbGlzaW9uOiBFYWNoQ3VycmVudENvbGxpc2lvbiA9IEVhY2hDdXJyZW50Q29sbGlzaW9uLkFyZVNhbWVcbiAgICApOiBib29sZWFuIHtcbiAgICAgICAgaWYgKGVhY2hDdXJyZW50Q29sbGlzaW9uID09PSBFYWNoQ3VycmVudENvbGxpc2lvbi5BcmVTYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy50b0xlZ2FjeVBhdGgoKSA9PT0gbW9kZWxQYXRoLnRvTGVnYWN5UGF0aCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICB0aGlzLmlzQWJzb2x1dGUoKSA9PT0gbW9kZWxQYXRoLmlzQWJzb2x1dGUoKSAmJlxuICAgICAgICAgICAgICAgIEl0ZXJhdG9yLmZyb20oSXRlclV0aWxzLnppcCh0aGlzLmdldFBhdGhQYXJ0cygpLCBtb2RlbFBhdGguZ2V0UGF0aFBhcnRzKCkpKS5ldmVyeShcbiAgICAgICAgICAgICAgICAgICAgKFt0MSwgdDJdKSA9PiB0MSA9PT0gdDJcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLRgdC10LPQtNCwINGG0LXQu9C+0LUg0L/QvtC70L7QttC40YLQtdC70YzQvdC+0LUg0LHQtdC30LfQvdCw0LrQvtCy0L7QtSAzMi3QsdC40YLQvdC+0LUg0YfQuNGB0LvQvlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRIYXNoKGVhY2hDdXJyZW50Q29sbGlzaW9uOiBFYWNoQ3VycmVudENvbGxpc2lvbiA9IEVhY2hDdXJyZW50Q29sbGlzaW9uLkFyZVNhbWUpOiBudW1iZXIge1xuICAgICAgICBsZXQgaGFzaCA9IDUzODE7XG4gICAgICAgIGZvciAoY29uc3QgdG9rZW4gb2YgcmV2ZXJzZUFycmF5KHRoaXMudG9rZW5zKSkge1xuICAgICAgICAgICAgbGV0IGN1cnJlbnRTdHI6IHN0cmluZztcbiAgICAgICAgICAgIGlmIChQYXRoVG9rZW5zLmlzU2ltcGxlVG9rZW4odG9rZW4pKSB7XG4gICAgICAgICAgICAgICAgY3VycmVudFN0ciA9IHRva2VuO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAoZWFjaEN1cnJlbnRDb2xsaXNpb24gPT09IEVhY2hDdXJyZW50Q29sbGlzaW9uLkFyZURpZmZlcmVudCkge1xuICAgICAgICAgICAgICAgICAgICBjdXJyZW50U3RyID0gdG9rZW4gPT09IFBhdGhUb2tlbnMuZWFjaCA/IFwiKlwiIDogXCIhXCI7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudFN0ciA9IFwiKlwiO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBzdHJpbmdJbmRleCA9IGN1cnJlbnRTdHIubGVuZ3RoO1xuICAgICAgICAgICAgd2hpbGUgKHN0cmluZ0luZGV4KSB7XG4gICAgICAgICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWJpdHdpc2VcbiAgICAgICAgICAgICAgICBoYXNoID0gKGhhc2ggKiAzMykgXiBjdXJyZW50U3RyLmNoYXJDb2RlQXQoLS1zdHJpbmdJbmRleCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvKlxuICAgICAgICAgICAgdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWJpdHdpc2VcbiAgICAgICAgICAgIEphdmFTY3JpcHQgZG9lcyBiaXR3aXNlIG9wZXJhdGlvbnMgKGxpa2UgWE9SLCBhYm92ZSkgb24gMzItYml0IHNpZ25lZFxuICAgICAgICAgICAgaW50ZWdlcnMuIFNpbmNlIHdlIHdhbnQgdGhlIHJlc3VsdHMgdG8gYmUgYWx3YXlzIHBvc2l0aXZlLCBjb252ZXJ0IHRoZVxuICAgICAgICAgICAgc2lnbmVkIGludCB0byBhbiB1bnNpZ25lZCBieSBkb2luZyBhbiB1bnNpZ25lZCBiaXRzaGlmdC5cbiAgICAgICovXG4gICAgICAgIHJldHVybiBoYXNoID4+PiAwO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0luY2x1ZGVzKG1vZGVsUGF0aDogTW9kZWxQYXRoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLnRva2Vucy5sZW5ndGggIT09IG1vZGVsUGF0aC50b2tlbnMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnRva2Vucy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgbGVmdFBhcnQgPSB0aGlzLnRva2Vuc1tpXTtcbiAgICAgICAgICAgIGNvbnN0IHJpZ2h0UGFydCA9IG1vZGVsUGF0aC50b2tlbnNbaV07XG4gICAgICAgICAgICBpZiAodHlwZW9mIGxlZnRQYXJ0ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiByaWdodFBhcnQgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGxlZnRQYXJ0ICE9PSByaWdodFBhcnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChsZWZ0UGFydCA9PT0gUGF0aFRva2Vucy5jdXJyZW50IHx8IGxlZnRQYXJ0ID09PSBQYXRoVG9rZW5zLmVhY2gpIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHJpZ2h0UGFydCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWlzRmluaXRlKE51bWJlcihyaWdodFBhcnQpKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyaWdodFBhcnQgIT09IFBhdGhUb2tlbnMuY3VycmVudCAmJiByaWdodFBhcnQgIT09IFBhdGhUb2tlbnMuZWFjaCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0SXRlcmF0aW9uUmFuaygpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gY291bnQoSXRlcmF0b3IuZnJvbSh0aGlzLnRva2VucykuZmlsdGVyKHggPT4geCA9PT0gUGF0aFRva2Vucy5lYWNoKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRva2Vucy5sZW5ndGggPT09IDA7XG4gICAgfVxuXG4gICAgcHVibGljIG1hdGNoRm9yKG1vZGVsUGF0aDogTW9kZWxQYXRoKTogUGF0aE1hdGNoaW5nIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzQWJzb2x1dGUoKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgbWF0Y2ggbm9uIGFic29sdXRlIHBhdGggJyR7dGhpcy50b1N0cmluZygpfSdgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIW1vZGVsUGF0aC5pc0Fic29sdXRlKCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IG1hdGNoIG5vbiBhYnNvbHV0ZSBwYXRoICcke21vZGVsUGF0aC50b1N0cmluZygpfSdgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gUGF0aE1hdGNoZXIubWF0Y2godGhpcy50b2tlbnMsIG1vZGVsUGF0aC50b2tlbnMpO1xuICAgIH1cblxuICAgIHB1YmxpYyAqc3BsaXRCeU11bHRpcGxpY2l0eSgpOiBJdGVyYWJsZTxNb2RlbFBhdGggfCB0eXBlb2YgRWFjaFN5bWJvbCB8IHR5cGVvZiBDdXJyZW50U3ltYm9sPiB7XG4gICAgICAgIGxldCBsYXN0U2ltcGxlUGFydHMgPSBNb2RlbFBhdGguYnVpbGRlcih0aGlzLmlzQWJzb2x1dGUoKSk7XG4gICAgICAgIGZvciAoY29uc3QgdG9rZW4gb2YgdGhpcy50b2tlbnMpIHtcbiAgICAgICAgICAgIGlmIChQYXRoVG9rZW5zLmlzU2ltcGxlVG9rZW4odG9rZW4pKSB7XG4gICAgICAgICAgICAgICAgbGFzdFNpbXBsZVBhcnRzLmFwcGVuZCh0b2tlbik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICghbGFzdFNpbXBsZVBhcnRzLmVtcHR5KSB7XG4gICAgICAgICAgICAgICAgICAgIHlpZWxkIGxhc3RTaW1wbGVQYXJ0cy50b1BhdGgoKTtcbiAgICAgICAgICAgICAgICAgICAgbGFzdFNpbXBsZVBhcnRzID0gTW9kZWxQYXRoLmJ1aWxkZXIoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgeWllbGQgdG9rZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFsYXN0U2ltcGxlUGFydHMuZW1wdHkpIHtcbiAgICAgICAgICAgIHlpZWxkIGxhc3RTaW1wbGVQYXJ0cy50b1BhdGgoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBub3JtYWxpemUoKTogTW9kZWxQYXRoIHtcbiAgICAgICAgY29uc3QgcmVzdWx0VG9rZW5zOiBQYXRoVG9rZW5bXSA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IHBhdGhQYXJ0IG9mIHRoaXMudG9rZW5zKSB7XG4gICAgICAgICAgICBpZiAocGF0aFBhcnQgPT09IFwiLi5cIikge1xuICAgICAgICAgICAgICAgIGlmICghcmVzdWx0VG9rZW5zLnBvcCgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzQWJzb2x1dGUoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQYXRoIGlzIGludmFsaWQgJyR7dGhpcy50b1N0cmluZygpfSdgKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdFRva2Vucy5wdXNoKFwiLi5cIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChwYXRoUGFydCA9PT0gXCIuXCIpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlc3VsdFRva2Vucy5wdXNoKHBhdGhQYXJ0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IE1vZGVsUGF0aChyZXN1bHRUb2tlbnMsIHRoaXMuaXNBYnNvbHV0ZSgpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAc3VtbWFyeSDQodC/0LXRhtC40YTQuNC60LDRgtC+0YDRiyDQvNC90L7QttC10YHRgtCy0LXQvdC90L7RgdGC0LggRWFjaCDQt9Cw0LzQtdC90Y/QtdGCINC90LAgQ3VycmVudFxuICAgICAqL1xuICAgIHB1YmxpYyB0b0N1cnJlbnRJdGVyYXRpb24oKTogTW9kZWxQYXRoIHtcbiAgICAgICAgcmV0dXJuIG5ldyBNb2RlbFBhdGgoXG4gICAgICAgICAgICB0aGlzLnRva2Vucy5tYXAoeCA9PiAoeCA9PT0gUGF0aFRva2Vucy5lYWNoID8gUGF0aFRva2Vucy5jdXJyZW50IDogeCkpLFxuICAgICAgICAgICAgdGhpcy5pc0Fic29sdXRlKClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdG9FYWNoSXRlcmF0aW9uKCk6IE1vZGVsUGF0aCB7XG4gICAgICAgIHJldHVybiBuZXcgTW9kZWxQYXRoKFxuICAgICAgICAgICAgdGhpcy50b2tlbnMubWFwKHggPT4gKHggPT09IFBhdGhUb2tlbnMuY3VycmVudCA/IFBhdGhUb2tlbnMuZWFjaCA6IHgpKSxcbiAgICAgICAgICAgIHRoaXMuaXNBYnNvbHV0ZSgpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIHRvQWJzb2x1dGUoKTogQWJzb2x1dGVNb2RlbFBhdGgge1xuICAgICAgICBpZiAoIXRoaXMuYWJzb2x1dGUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgUGF0aCAnJHt0aGlzLnRvTGVnYWN5UGF0aCgpfSBpcyBub3QgYWJzb2x1dGUnYCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBBYnNvbHV0ZU1vZGVsUGF0aCh0aGlzLnRva2Vucyk7XG4gICAgfVxuXG4gICAgcHVibGljICpnZXRBbGxQYXJlbnRQYXRocygpOiBJdGVyYWJsZTxNb2RlbFBhdGg+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gTW9kZWxQYXRoLmJ1aWxkZXIodGhpcy5pc0Fic29sdXRlKCkpO1xuICAgICAgICBmb3IgKGNvbnN0IHRva2VuIG9mIEl0ZXJVdGlscy5za2lwTGFzdCh0aGlzLmdldFBhdGhQYXJ0cygpLCAxKSkge1xuICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCh0b2tlbik7XG4gICAgICAgICAgICB5aWVsZCByZXN1bHQudG9QYXRoKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgdHJpbUxhc3RTdGFySWZMYXN0VG9rZW4oKTogTW9kZWxQYXRoIHtcbiAgICAgICAgY29uc3QgbGFzdEl0ZW0gPSBJdGVyVXRpbHMubGFzdCh0aGlzLnRva2Vucyk7XG4gICAgICAgIGlmIChsYXN0SXRlbSAhPSB1bmRlZmluZWQgJiYgUGF0aFRva2Vucy5pc011bHRpVG9rZW4obGFzdEl0ZW0pKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IE1vZGVsUGF0aCh0aGlzLnRva2Vucy5zbGljZSgwLCAtMSksIHRoaXMuYWJzb2x1dGUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRQYXJlbnRQYXRoKCk6IE1vZGVsUGF0aCB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IE1vZGVsUGF0aC5idWlsZGVyKHRoaXMuaXNBYnNvbHV0ZSgpKTtcbiAgICAgICAgZm9yIChjb25zdCB0b2tlbiBvZiBJdGVyVXRpbHMuc2tpcExhc3QodGhpcy5nZXRQYXRoUGFydHMoKSwgMSkpIHtcbiAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQodG9rZW4pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQudG9BYnNvbHV0ZVBhdGgoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXBwbHlJbnN0YW5jZXNEaXJ0eShpbnN0YW5jZXM6IFNpbXBsZVBhdGhUb2tlbltdKTogTW9kZWxQYXRoIHtcbiAgICAgICAgaWYgKHRoaXMuaXNSZXNvbHZlZCgpIHx8IGluc3RhbmNlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG4gICAgICAgIGxldCBpbnN0YW5jZUNvdW50ZXIgPSAwO1xuICAgICAgICBjb25zdCByZXN1bHQgPSBNb2RlbFBhdGguYnVpbGRlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IHRva2VuIG9mIHRoaXMuZ2V0UGF0aFBhcnRzKCkpIHtcbiAgICAgICAgICAgIGlmIChQYXRoVG9rZW5zLmlzTXVsdGlUb2tlbih0b2tlbikgJiYgaW5zdGFuY2VDb3VudGVyIDwgaW5zdGFuY2VzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoaW5zdGFuY2VzW2luc3RhbmNlQ291bnRlcl0gPz8gcmVqZWN0KCkpO1xuICAgICAgICAgICAgICAgIGluc3RhbmNlQ291bnRlcisrO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHRva2VuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0LnRvQWJzb2x1dGVQYXRoKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwYXRoUGFydFRvU3RyaW5nKHBhdGhQYXJ0OiBQYXRoVG9rZW4pOiBzdHJpbmcge1xuICAgICAgICBpZiAodHlwZW9mIHBhdGhQYXJ0ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICByZXR1cm4gcGF0aFBhcnQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhdGhQYXJ0ID09PSBQYXRoVG9rZW5zLmVhY2gpIHtcbiAgICAgICAgICAgIHJldHVybiBcIipcIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGF0aFBhcnQgPT09IFBhdGhUb2tlbnMuY3VycmVudCkge1xuICAgICAgICAgICAgcmV0dXJuIFwiKlwiO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBwYXRoIHBhcnQgc3BlY2lmaWVkOiAke2Vuc3VyZUFuZEdldFN0cmluZyhwYXRoUGFydCl9YCk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQWJzb2x1dGVNb2RlbFBhdGggZXh0ZW5kcyBNb2RlbFBhdGgge1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihwYXRoUGFydHM6IHJlYWRvbmx5IFBhdGhUb2tlbltdKSB7XG4gICAgICAgIHN1cGVyKHBhdGhQYXJ0cywgdHJ1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBjcmVhdGVBYnNvbHV0ZUZyb21NYXNrKHBhdGg6IHN0cmluZywgbXVsdGlwbGljaXR5U3ltYm9sOiBQYXRoVG9rZW4pOiBNb2RlbFBhdGgge1xuICAgICAgICBjb25zdCBwYXJ0UGFydFN0cmluZ3MgPSBwYXRoLnNwbGl0KFwiL1wiKS5tYXAoeCA9PiAoeCA9PT0gXCIqXCIgPyBtdWx0aXBsaWNpdHlTeW1ib2wgOiB4KSk7XG4gICAgICAgIGlmIChwYXRoLnN0YXJ0c1dpdGgoXCIvXCIpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEFic29sdXRlTW9kZWxQYXRoKHBhcnRQYXJ0U3RyaW5ncy5zbGljZSgxKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBBYnNvbHV0ZU1vZGVsUGF0aChwYXJ0UGFydFN0cmluZ3MpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlQWJzb2x1dGUocGF0aDogc3RyaW5nKTogQWJzb2x1dGVNb2RlbFBhdGgge1xuICAgICAgICBjb25zdCBwYXJ0UGFydFN0cmluZ3MgPSBwYXRoLnNwbGl0KFwiL1wiKTtcbiAgICAgICAgdGhpcy5lbnN1cmVQbGFpblBhdGhQYXJ0c0RvZXNOb3RDb250YWluTXVsdGlwbGljaXR5KHBhcnRQYXJ0U3RyaW5ncyk7XG4gICAgICAgIGlmIChwYXRoLnN0YXJ0c1dpdGgoXCIvXCIpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEFic29sdXRlTW9kZWxQYXRoKHBhcnRQYXJ0U3RyaW5ncy5zbGljZSgxKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBBYnNvbHV0ZU1vZGVsUGF0aChwYXJ0UGFydFN0cmluZ3MpO1xuICAgIH1cblxuICAgIHB1YmxpYyBqb2luV2l0aChwYXRoOiBNb2RlbFBhdGggfCBQYXRoVG9rZW4pOiBBYnNvbHV0ZU1vZGVsUGF0aCB7XG4gICAgICAgIHJldHVybiBzdXBlci5qb2luV2l0aChwYXRoKS50b0Fic29sdXRlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFBhcmVudFBhdGgoKTogQWJzb2x1dGVNb2RlbFBhdGgge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBNb2RlbFBhdGguYnVpbGRlcih0cnVlKTtcbiAgICAgICAgZm9yIChjb25zdCB0b2tlbiBvZiBJdGVyVXRpbHMuc2tpcExhc3QodGhpcy5nZXRQYXRoUGFydHMoKSwgMSkpIHtcbiAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQodG9rZW4pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQudG9BYnNvbHV0ZVBhdGgoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXBwbHlJbnN0YW5jZXNEaXJ0eShpbnN0YW5jZXM6IFNpbXBsZVBhdGhUb2tlbltdKTogQWJzb2x1dGVNb2RlbFBhdGgge1xuICAgICAgICByZXR1cm4gc3VwZXIuYXBwbHlJbnN0YW5jZXNEaXJ0eShpbnN0YW5jZXMpLnRvQWJzb2x1dGUoKTtcbiAgICB9XG59XG4iXX0=
@@ -44,7 +44,7 @@ let FormsHelperController = (_dec = (0, _Methods.httpGet)("/forms-helper", _Resu
44
44
 
45
45
  async setupMiddleware(expressApplication) {
46
46
  if (this.options.frontEndDevMode) {
47
- expressApplication.use(["/forms-helper/*.js", "/forms-helper/*.css", "/forms-helper/*.map"], (0, _httpProxyMiddleware.createProxyMiddleware)({
47
+ expressApplication.use(["/forms-helper/*.js", "/forms-helper/*.css", "/forms-helper/*.map", "/forms-helper/*.ico", "/forms-helper/*.png"], (0, _httpProxyMiddleware.createProxyMiddleware)({
48
48
  target: this.options.devServerUrl,
49
49
  changeOrigin: true
50
50
  }));
@@ -63,4 +63,4 @@ let FormsHelperController = (_dec = (0, _Methods.httpGet)("/forms-helper", _Resu
63
63
 
64
64
  }, (_applyDecoratedDescriptor(_class.prototype, "getRunnerView", [_dec], Object.getOwnPropertyDescriptor(_class.prototype, "getRunnerView"), _class.prototype)), _class));
65
65
  exports.FormsHelperController = FormsHelperController;
66
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9Gb3Jtc0hlbHBlci9Gb3Jtc0hlbHBlckNvbnRyb2xsZXIudHMiXSwibmFtZXMiOlsiZGVmYXVsdE9wdGlvbnMiLCJmcm9udEVuZERldk1vZGUiLCJkZXZTZXJ2ZXJVcmwiLCJGb3Jtc0hlbHBlckNvbnRyb2xsZXIiLCJodHRwUmV0dXJuIiwiU3RyZWFtV2l0aE1pbWUiLCJTaW5nbGV0b25Db250cm9sbGVyIiwiY29uc3RydWN0b3IiLCJvcHRpb25zIiwic2V0dXBNaWRkbGV3YXJlIiwiZXhwcmVzc0FwcGxpY2F0aW9uIiwidXNlIiwidGFyZ2V0IiwiY2hhbmdlT3JpZ2luIiwiZXhwcmVzcyIsInN0YXRpYyIsInBhdGgiLCJqb2luIiwiX19kaXJuYW1lIiwiZ2V0UnVubmVyVmlldyIsIlByb3h5R2V0UmVxdWVzdFRvUmVzdWx0IiwiRmlsZVN0cmVhbVJlc3VsdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUVBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQUtBOzs7Ozs7Ozs7Ozs7QUFPQSxNQUFNQSxjQUE2QyxHQUFHO0FBQ2xEQyxFQUFBQSxlQUFlLEVBQUUsS0FEaUM7QUFFbERDLEVBQUFBLFlBQVksRUFBRTtBQUZvQyxDQUF0RDtJQUthQyxxQixXQXlCUixzQkFBUSxlQUFSLEVBQXlCQyxvQkFBV0MsY0FBWCxDQUEwQixXQUExQixDQUF6QixDLFlBekJFLE1BQU1GLHFCQUFOLFNBQW9DRyx3Q0FBcEMsQ0FBd0Q7QUFHcERDLEVBQUFBLFdBQVcsQ0FBQ0MsT0FBRCxFQUFrRDtBQUNoRTtBQURnRSxTQUZuREEsT0FFbUQ7QUFFaEUsU0FBS0EsT0FBTCxHQUFlLEVBQ1gsR0FBR1IsY0FEUTtBQUVYLFNBQUdRO0FBRlEsS0FBZjtBQUlIOztBQUUyQixRQUFmQyxlQUFlLENBQUNDLGtCQUFELEVBQTZDO0FBQ3JFLFFBQUksS0FBS0YsT0FBTCxDQUFhUCxlQUFqQixFQUFrQztBQUM5QlMsTUFBQUEsa0JBQWtCLENBQUNDLEdBQW5CLENBQ0ksQ0FBQyxvQkFBRCxFQUF1QixxQkFBdkIsRUFBOEMscUJBQTlDLENBREosRUFFSSxnREFBc0I7QUFBRUMsUUFBQUEsTUFBTSxFQUFFLEtBQUtKLE9BQUwsQ0FBYU4sWUFBdkI7QUFBcUNXLFFBQUFBLFlBQVksRUFBRTtBQUFuRCxPQUF0QixDQUZKO0FBSUgsS0FMRCxNQUtPO0FBQ0hILE1BQUFBLGtCQUFrQixDQUFDQyxHQUFuQixDQUNJLGdCQURKLEVBRUlHLGlCQUFRQyxNQUFSLENBQWVDLElBQUksQ0FBQ0MsSUFBTCxDQUFVQyxTQUFWLEVBQXFCLElBQXJCLEVBQTJCLElBQTNCLEVBQWlDLHlCQUFqQyxDQUFmLENBRko7QUFJSDtBQUNKOztBQUd5QixRQUFiQyxhQUFhLEdBQWdDO0FBQ3RELFFBQUksS0FBS1gsT0FBTCxDQUFhUCxlQUFqQixFQUFrQztBQUM5QixhQUFPLElBQUltQiw0Q0FBSixDQUE2QixHQUFFLEtBQUtaLE9BQUwsQ0FBYU4sWUFBYSwwQkFBekQsQ0FBUDtBQUNILEtBRkQsTUFFTztBQUNILGFBQU8sSUFBSW1CLHFDQUFKLENBQXFCTCxJQUFJLENBQUNDLElBQUwsQ0FBVUMsU0FBVixFQUFxQixJQUFyQixFQUEyQixJQUEzQixFQUFpQyx5QkFBakMsRUFBNEQsWUFBNUQsQ0FBckIsQ0FBUDtBQUNIO0FBQ0o7O0FBaEMwRCxDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgZXhwcmVzcywgeyBFeHByZXNzIH0gZnJvbSBcImV4cHJlc3NcIjtcbmltcG9ydCB7IGNyZWF0ZVByb3h5TWlkZGxld2FyZSB9IGZyb20gXCJodHRwLXByb3h5LW1pZGRsZXdhcmVcIjtcblxuaW1wb3J0IHsgaHR0cEdldCB9IGZyb20gXCIuLi8uLi9Db21tb25zL0h0dHBTZXJ2ZXIvQXR0cmlidXRlUm91dGluZy9NZXRob2RzXCI7XG5pbXBvcnQgeyBodHRwUmV0dXJuIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvSHR0cFNlcnZlci9BdHRyaWJ1dGVSb3V0aW5nL1Jlc3VsdHNcIjtcbmltcG9ydCB7XG4gICAgRmlsZVN0cmVhbVJlc3VsdCxcbiAgICBQcm94eUdldFJlcXVlc3RUb1Jlc3VsdCxcbiAgICBTdHJlYW1SZXR1cm5SZXN1bHQsXG59IGZyb20gXCIuLi8uLi9Db21tb25zL0h0dHBTZXJ2ZXIvQXR0cmlidXRlUm91dGluZy9SZXN1bHRzL1N0cmVhbVJlc3VsdEhhbmRsZXJcIjtcbmltcG9ydCB7IFNpbmdsZXRvbkNvbnRyb2xsZXIgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9IdHRwU2VydmVyL0V4cHJlc3NXcmFwcGVyL1NpbmdsZXRvbkNvbnRyb2xsZXJcIjtcblxuZXhwb3J0IGludGVyZmFjZSBGb3Jtc1Rlc3RpbmdDb250cm9sbGVyT3B0aW9ucyB7XG4gICAgZnJvbnRFbmREZXZNb2RlOiBib29sZWFuO1xuICAgIGRldlNlcnZlclVybDogc3RyaW5nO1xufVxuXG5jb25zdCBkZWZhdWx0T3B0aW9uczogRm9ybXNUZXN0aW5nQ29udHJvbGxlck9wdGlvbnMgPSB7XG4gICAgZnJvbnRFbmREZXZNb2RlOiBmYWxzZSxcbiAgICBkZXZTZXJ2ZXJVcmw6IFwiaHR0cDovL2xvY2FsaG9zdDo4MDgxXCIsXG59O1xuXG5leHBvcnQgY2xhc3MgRm9ybXNIZWxwZXJDb250cm9sbGVyIGV4dGVuZHMgU2luZ2xldG9uQ29udHJvbGxlciB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBGb3Jtc1Rlc3RpbmdDb250cm9sbGVyT3B0aW9ucztcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihvcHRpb25zOiBQYXJ0aWFsPEZvcm1zVGVzdGluZ0NvbnRyb2xsZXJPcHRpb25zPikge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICAgICAgICAuLi5kZWZhdWx0T3B0aW9ucyxcbiAgICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHNldHVwTWlkZGxld2FyZShleHByZXNzQXBwbGljYXRpb246IEV4cHJlc3MpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5mcm9udEVuZERldk1vZGUpIHtcbiAgICAgICAgICAgIGV4cHJlc3NBcHBsaWNhdGlvbi51c2UoXG4gICAgICAgICAgICAgICAgW1wiL2Zvcm1zLWhlbHBlci8qLmpzXCIsIFwiL2Zvcm1zLWhlbHBlci8qLmNzc1wiLCBcIi9mb3Jtcy1oZWxwZXIvKi5tYXBcIl0sXG4gICAgICAgICAgICAgICAgY3JlYXRlUHJveHlNaWRkbGV3YXJlKHsgdGFyZ2V0OiB0aGlzLm9wdGlvbnMuZGV2U2VydmVyVXJsLCBjaGFuZ2VPcmlnaW46IHRydWUgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBleHByZXNzQXBwbGljYXRpb24udXNlKFxuICAgICAgICAgICAgICAgIFwiL2Zvcm1zLWhlbHBlci9cIixcbiAgICAgICAgICAgICAgICBleHByZXNzLnN0YXRpYyhwYXRoLmpvaW4oX19kaXJuYW1lLCBcIi4uXCIsIFwiLi5cIiwgXCJMb2NhbFNlcnZlckZyb250RW5kRGlzdFwiKSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaHR0cEdldChcIi9mb3Jtcy1oZWxwZXJcIiwgaHR0cFJldHVybi5TdHJlYW1XaXRoTWltZShcInRleHQvaHRtbFwiKSlcbiAgICBwdWJsaWMgYXN5bmMgZ2V0UnVubmVyVmlldygpOiBQcm9taXNlPFN0cmVhbVJldHVyblJlc3VsdD4ge1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmZyb250RW5kRGV2TW9kZSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm94eUdldFJlcXVlc3RUb1Jlc3VsdChgJHt0aGlzLm9wdGlvbnMuZGV2U2VydmVyVXJsfS9mb3Jtcy1oZWxwZXIvaW5kZXguaHRtbGApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBGaWxlU3RyZWFtUmVzdWx0KHBhdGguam9pbihfX2Rpcm5hbWUsIFwiLi5cIiwgXCIuLlwiLCBcIkxvY2FsU2VydmVyRnJvbnRFbmREaXN0XCIsIFwiaW5kZXguaHRtbFwiKSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
66
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9Gb3Jtc0hlbHBlci9Gb3Jtc0hlbHBlckNvbnRyb2xsZXIudHMiXSwibmFtZXMiOlsiZGVmYXVsdE9wdGlvbnMiLCJmcm9udEVuZERldk1vZGUiLCJkZXZTZXJ2ZXJVcmwiLCJGb3Jtc0hlbHBlckNvbnRyb2xsZXIiLCJodHRwUmV0dXJuIiwiU3RyZWFtV2l0aE1pbWUiLCJTaW5nbGV0b25Db250cm9sbGVyIiwiY29uc3RydWN0b3IiLCJvcHRpb25zIiwic2V0dXBNaWRkbGV3YXJlIiwiZXhwcmVzc0FwcGxpY2F0aW9uIiwidXNlIiwidGFyZ2V0IiwiY2hhbmdlT3JpZ2luIiwiZXhwcmVzcyIsInN0YXRpYyIsInBhdGgiLCJqb2luIiwiX19kaXJuYW1lIiwiZ2V0UnVubmVyVmlldyIsIlByb3h5R2V0UmVxdWVzdFRvUmVzdWx0IiwiRmlsZVN0cmVhbVJlc3VsdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUVBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQUtBOzs7Ozs7Ozs7Ozs7QUFPQSxNQUFNQSxjQUE2QyxHQUFHO0FBQ2xEQyxFQUFBQSxlQUFlLEVBQUUsS0FEaUM7QUFFbERDLEVBQUFBLFlBQVksRUFBRTtBQUZvQyxDQUF0RDtJQUthQyxxQixXQStCUixzQkFBUSxlQUFSLEVBQXlCQyxvQkFBV0MsY0FBWCxDQUEwQixXQUExQixDQUF6QixDLFlBL0JFLE1BQU1GLHFCQUFOLFNBQW9DRyx3Q0FBcEMsQ0FBd0Q7QUFHcERDLEVBQUFBLFdBQVcsQ0FBQ0MsT0FBRCxFQUFrRDtBQUNoRTtBQURnRSxTQUZuREEsT0FFbUQ7QUFFaEUsU0FBS0EsT0FBTCxHQUFlLEVBQ1gsR0FBR1IsY0FEUTtBQUVYLFNBQUdRO0FBRlEsS0FBZjtBQUlIOztBQUUyQixRQUFmQyxlQUFlLENBQUNDLGtCQUFELEVBQTZDO0FBQ3JFLFFBQUksS0FBS0YsT0FBTCxDQUFhUCxlQUFqQixFQUFrQztBQUM5QlMsTUFBQUEsa0JBQWtCLENBQUNDLEdBQW5CLENBQ0ksQ0FDSSxvQkFESixFQUVJLHFCQUZKLEVBR0kscUJBSEosRUFJSSxxQkFKSixFQUtJLHFCQUxKLENBREosRUFRSSxnREFBc0I7QUFBRUMsUUFBQUEsTUFBTSxFQUFFLEtBQUtKLE9BQUwsQ0FBYU4sWUFBdkI7QUFBcUNXLFFBQUFBLFlBQVksRUFBRTtBQUFuRCxPQUF0QixDQVJKO0FBVUgsS0FYRCxNQVdPO0FBQ0hILE1BQUFBLGtCQUFrQixDQUFDQyxHQUFuQixDQUNJLGdCQURKLEVBRUlHLGlCQUFRQyxNQUFSLENBQWVDLElBQUksQ0FBQ0MsSUFBTCxDQUFVQyxTQUFWLEVBQXFCLElBQXJCLEVBQTJCLElBQTNCLEVBQWlDLHlCQUFqQyxDQUFmLENBRko7QUFJSDtBQUNKOztBQUd5QixRQUFiQyxhQUFhLEdBQWdDO0FBQ3RELFFBQUksS0FBS1gsT0FBTCxDQUFhUCxlQUFqQixFQUFrQztBQUM5QixhQUFPLElBQUltQiw0Q0FBSixDQUE2QixHQUFFLEtBQUtaLE9BQUwsQ0FBYU4sWUFBYSwwQkFBekQsQ0FBUDtBQUNILEtBRkQsTUFFTztBQUNILGFBQU8sSUFBSW1CLHFDQUFKLENBQXFCTCxJQUFJLENBQUNDLElBQUwsQ0FBVUMsU0FBVixFQUFxQixJQUFyQixFQUEyQixJQUEzQixFQUFpQyx5QkFBakMsRUFBNEQsWUFBNUQsQ0FBckIsQ0FBUDtBQUNIO0FBQ0o7O0FBdEMwRCxDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgZXhwcmVzcywgeyBFeHByZXNzIH0gZnJvbSBcImV4cHJlc3NcIjtcbmltcG9ydCB7IGNyZWF0ZVByb3h5TWlkZGxld2FyZSB9IGZyb20gXCJodHRwLXByb3h5LW1pZGRsZXdhcmVcIjtcblxuaW1wb3J0IHsgaHR0cEdldCB9IGZyb20gXCIuLi8uLi9Db21tb25zL0h0dHBTZXJ2ZXIvQXR0cmlidXRlUm91dGluZy9NZXRob2RzXCI7XG5pbXBvcnQgeyBodHRwUmV0dXJuIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvSHR0cFNlcnZlci9BdHRyaWJ1dGVSb3V0aW5nL1Jlc3VsdHNcIjtcbmltcG9ydCB7XG4gICAgRmlsZVN0cmVhbVJlc3VsdCxcbiAgICBQcm94eUdldFJlcXVlc3RUb1Jlc3VsdCxcbiAgICBTdHJlYW1SZXR1cm5SZXN1bHQsXG59IGZyb20gXCIuLi8uLi9Db21tb25zL0h0dHBTZXJ2ZXIvQXR0cmlidXRlUm91dGluZy9SZXN1bHRzL1N0cmVhbVJlc3VsdEhhbmRsZXJcIjtcbmltcG9ydCB7IFNpbmdsZXRvbkNvbnRyb2xsZXIgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9IdHRwU2VydmVyL0V4cHJlc3NXcmFwcGVyL1NpbmdsZXRvbkNvbnRyb2xsZXJcIjtcblxuZXhwb3J0IGludGVyZmFjZSBGb3Jtc1Rlc3RpbmdDb250cm9sbGVyT3B0aW9ucyB7XG4gICAgZnJvbnRFbmREZXZNb2RlOiBib29sZWFuO1xuICAgIGRldlNlcnZlclVybDogc3RyaW5nO1xufVxuXG5jb25zdCBkZWZhdWx0T3B0aW9uczogRm9ybXNUZXN0aW5nQ29udHJvbGxlck9wdGlvbnMgPSB7XG4gICAgZnJvbnRFbmREZXZNb2RlOiBmYWxzZSxcbiAgICBkZXZTZXJ2ZXJVcmw6IFwiaHR0cDovL2xvY2FsaG9zdDo4MDgxXCIsXG59O1xuXG5leHBvcnQgY2xhc3MgRm9ybXNIZWxwZXJDb250cm9sbGVyIGV4dGVuZHMgU2luZ2xldG9uQ29udHJvbGxlciB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBGb3Jtc1Rlc3RpbmdDb250cm9sbGVyT3B0aW9ucztcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihvcHRpb25zOiBQYXJ0aWFsPEZvcm1zVGVzdGluZ0NvbnRyb2xsZXJPcHRpb25zPikge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICAgICAgICAuLi5kZWZhdWx0T3B0aW9ucyxcbiAgICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHNldHVwTWlkZGxld2FyZShleHByZXNzQXBwbGljYXRpb246IEV4cHJlc3MpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5mcm9udEVuZERldk1vZGUpIHtcbiAgICAgICAgICAgIGV4cHJlc3NBcHBsaWNhdGlvbi51c2UoXG4gICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICBcIi9mb3Jtcy1oZWxwZXIvKi5qc1wiLFxuICAgICAgICAgICAgICAgICAgICBcIi9mb3Jtcy1oZWxwZXIvKi5jc3NcIixcbiAgICAgICAgICAgICAgICAgICAgXCIvZm9ybXMtaGVscGVyLyoubWFwXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiL2Zvcm1zLWhlbHBlci8qLmljb1wiLFxuICAgICAgICAgICAgICAgICAgICBcIi9mb3Jtcy1oZWxwZXIvKi5wbmdcIixcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIGNyZWF0ZVByb3h5TWlkZGxld2FyZSh7IHRhcmdldDogdGhpcy5vcHRpb25zLmRldlNlcnZlclVybCwgY2hhbmdlT3JpZ2luOiB0cnVlIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXhwcmVzc0FwcGxpY2F0aW9uLnVzZShcbiAgICAgICAgICAgICAgICBcIi9mb3Jtcy1oZWxwZXIvXCIsXG4gICAgICAgICAgICAgICAgZXhwcmVzcy5zdGF0aWMocGF0aC5qb2luKF9fZGlybmFtZSwgXCIuLlwiLCBcIi4uXCIsIFwiTG9jYWxTZXJ2ZXJGcm9udEVuZERpc3RcIikpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGh0dHBHZXQoXCIvZm9ybXMtaGVscGVyXCIsIGh0dHBSZXR1cm4uU3RyZWFtV2l0aE1pbWUoXCJ0ZXh0L2h0bWxcIikpXG4gICAgcHVibGljIGFzeW5jIGdldFJ1bm5lclZpZXcoKTogUHJvbWlzZTxTdHJlYW1SZXR1cm5SZXN1bHQ+IHtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5mcm9udEVuZERldk1vZGUpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgUHJveHlHZXRSZXF1ZXN0VG9SZXN1bHQoYCR7dGhpcy5vcHRpb25zLmRldlNlcnZlclVybH0vZm9ybXMtaGVscGVyL2luZGV4Lmh0bWxgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgRmlsZVN0cmVhbVJlc3VsdChwYXRoLmpvaW4oX19kaXJuYW1lLCBcIi4uXCIsIFwiLi5cIiwgXCJMb2NhbFNlcnZlckZyb250RW5kRGlzdFwiLCBcImluZGV4Lmh0bWxcIikpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -1,10 +1,9 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <title>Empty project</title>
6
- <script defer src="/forms-helper/index.js"></script><script defer src="/forms-helper/enhancedClient.js"></script></head>
7
- <body>
8
- <div id="root"></div>
9
- </body>
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>Forms helper</title>
6
+ <meta name="viewport" content="width=device-width, initial-scale=1"><link rel="icon" href="/forms-helper/favicon.ico"><link href="/forms-helper/favicon-16x16.png" rel="icon" sizes="16x16" type="image/png"><link href="/forms-helper/favicon-32x32.png" rel="icon" sizes="32x32" type="image/png"></head>
7
+ <body>
8
+ <script defer src="/forms-helper/index.js"></script><script defer src="/forms-helper/enhancedClient.js"></script></body>
10
9
  </html>
@@ -1520,25 +1520,18 @@ __webpack_require__.r(__webpack_exports__);
1520
1520
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1521
1521
  /* harmony export */ "SvgIcon": function() { return /* binding */ SvgIcon; }
1522
1522
  /* harmony export */ });
1523
- /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! tslib */ "./node_modules/@skbkontur/react-icons/node_modules/tslib/tslib.es6.js");
1523
+ /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tslib */ "./node_modules/@skbkontur/react-icons/node_modules/tslib/tslib.es6.js");
1524
1524
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
1525
- /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! classnames */ "./node_modules/classnames/index.js");
1526
- /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);
1527
- /* harmony import */ var _SvgIcon_module_css__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./SvgIcon.module.css */ "./node_modules/@skbkontur/react-icons/esm/icons/internal/SvgIcon.module.css");
1528
-
1525
+ /* harmony import */ var _SvgIcon_module_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./SvgIcon.module.css */ "./node_modules/@skbkontur/react-icons/esm/icons/internal/SvgIcon.module.css");
1529
1526
 
1530
1527
 
1531
1528
 
1532
1529
  var SvgIcon = function (_a) {
1533
- var _b;
1534
- var color = _a.color, size = _a.size, style = _a.style, children = _a.children, rest = (0,tslib__WEBPACK_IMPORTED_MODULE_2__.__rest)(_a, ["color", "size", "style", "children"]);
1535
- return (react__WEBPACK_IMPORTED_MODULE_0__.createElement("span", (0,tslib__WEBPACK_IMPORTED_MODULE_2__.__assign)({ className: _SvgIcon_module_css__WEBPACK_IMPORTED_MODULE_3__["default"].root, style: (0,tslib__WEBPACK_IMPORTED_MODULE_2__.__assign)((0,tslib__WEBPACK_IMPORTED_MODULE_2__.__assign)({}, style), { fontSize: size, color: color }) }, rest), react__WEBPACK_IMPORTED_MODULE_0__.cloneElement(children, {
1536
- className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_b = {},
1537
- _b[_SvgIcon_module_css__WEBPACK_IMPORTED_MODULE_3__["default"].icon] = true,
1538
- _b[_SvgIcon_module_css__WEBPACK_IMPORTED_MODULE_3__["default"].iconWithSize] = typeof size !== 'undefined',
1539
- _b)),
1530
+ var color = _a.color, size = _a.size, style = _a.style, children = _a.children, rest = (0,tslib__WEBPACK_IMPORTED_MODULE_1__.__rest)(_a, ["color", "size", "style", "children"]);
1531
+ return (react__WEBPACK_IMPORTED_MODULE_0__.createElement("span", (0,tslib__WEBPACK_IMPORTED_MODULE_1__.__assign)({ className: _SvgIcon_module_css__WEBPACK_IMPORTED_MODULE_2__["default"].root, style: (0,tslib__WEBPACK_IMPORTED_MODULE_1__.__assign)((0,tslib__WEBPACK_IMPORTED_MODULE_1__.__assign)({}, style), { fontSize: size, color: color }) }, rest), react__WEBPACK_IMPORTED_MODULE_0__.cloneElement(children, {
1532
+ className: [_SvgIcon_module_css__WEBPACK_IMPORTED_MODULE_2__["default"].icon, typeof size !== 'undefined' && _SvgIcon_module_css__WEBPACK_IMPORTED_MODULE_2__["default"].iconWithSize].filter(Boolean).join(' '),
1540
1533
  fill: 'currentColor',
1541
- focusable: 'false'
1534
+ focusable: 'false',
1542
1535
  })));
1543
1536
  };
1544
1537
 
@@ -21412,14 +21405,23 @@ function FormsHelperApplication() {
21412
21405
  block: true,
21413
21406
  stretch: true,
21414
21407
  gap: 4
21415
- }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(_skbkontur_react_stack_layout__WEBPACK_IMPORTED_MODULE_0__.Fit, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement("h1", null, "Forms helper")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(_skbkontur_react_stack_layout__WEBPACK_IMPORTED_MODULE_0__.Fit, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(_skbkontur_react_ui__WEBPACK_IMPORTED_MODULE_17__.Input, {
21408
+ }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(_skbkontur_react_stack_layout__WEBPACK_IMPORTED_MODULE_0__.Fit, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement("h1", null, "Forms helper")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(_skbkontur_react_stack_layout__WEBPACK_IMPORTED_MODULE_0__.Fit, {
21409
+ style: {
21410
+ marginLeft: -12
21411
+ }
21412
+ }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(_skbkontur_react_ui__WEBPACK_IMPORTED_MODULE_17__.Input, {
21416
21413
  placeholder: "\u0424\u0438\u043B\u044C\u0442\u0440 \u043F\u043E GFV",
21417
21414
  value: searchText,
21418
21415
  onValueChange: setSearchText,
21419
- size: "large",
21416
+ size: "medium",
21420
21417
  autoFocus: true,
21421
21418
  width: "100%"
21422
- }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement("div", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(_skbkontur_react_ui__WEBPACK_IMPORTED_MODULE_18__.Button, {
21419
+ }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement("div", {
21420
+ style: {
21421
+ marginLeft: 12,
21422
+ marginTop: 4
21423
+ }
21424
+ }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(_skbkontur_react_ui__WEBPACK_IMPORTED_MODULE_18__.Button, {
21423
21425
  use: "link",
21424
21426
  onClick: function onClick() {
21425
21427
  return setSearchText("");
@@ -21472,7 +21474,11 @@ function FormsHelperApplication() {
21472
21474
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(_skbkontur_react_stack_layout__WEBPACK_IMPORTED_MODULE_0__.Fit, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement("h2", null, "\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(_skbkontur_react_stack_layout__WEBPACK_IMPORTED_MODULE_0__.Fit, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(_skbkontur_react_ui__WEBPACK_IMPORTED_MODULE_21__.Toggle, {
21473
21475
  checked: embeddedLogEnabled,
21474
21476
  onValueChange: setEmbeddedLogEnabled
21475
- }), " ", "\u041E\u0442\u043A\u0440\u044B\u0432\u0430\u0442\u044C \u0441 \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u044B\u043C \u043F\u0440\u043E\u0442\u043E\u043A\u043E\u043B\u043E\u043C"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(_skbkontur_react_stack_layout__WEBPACK_IMPORTED_MODULE_0__.Fit, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement("h2", null, "\u041D\u0435\u0434\u0430\u0432\u043D\u0438\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(_skbkontur_react_stack_layout__WEBPACK_IMPORTED_MODULE_0__.ColumnStack, {
21477
+ }), " ", "\u041E\u0442\u043A\u0440\u044B\u0432\u0430\u0442\u044C \u0441 \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u044B\u043C \u043F\u0440\u043E\u0442\u043E\u043A\u043E\u043B\u043E\u043C"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(_skbkontur_react_stack_layout__WEBPACK_IMPORTED_MODULE_0__.Fit, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement("h2", {
21478
+ style: {
21479
+ marginBottom: 8
21480
+ }
21481
+ }, "\u041D\u0435\u0434\u0430\u0432\u043D\u0438\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(_skbkontur_react_stack_layout__WEBPACK_IMPORTED_MODULE_0__.ColumnStack, {
21476
21482
  block: true,
21477
21483
  stretch: true,
21478
21484
  gap: 2
@@ -23901,12 +23907,8 @@ __webpack_require__.r(__webpack_exports__);
23901
23907
 
23902
23908
 
23903
23909
  var api = new _Common_CandyApiClient_CandyApiClient__WEBPACK_IMPORTED_MODULE_2__.CandyApiClient(_Common_HttpClient_FetchImplementation_NativeBrowserFetch__WEBPACK_IMPORTED_MODULE_3__.nativeBrowserFetch, "//localhost.testkontur.ru:11090", undefined, undefined);
23904
- var targetElement = document.querySelector("#root");
23905
-
23906
- if (targetElement == undefined) {
23907
- throw new Error("Root element not found");
23908
- }
23909
-
23910
+ var targetElement = document.createElement("div");
23911
+ document.body.append(targetElement);
23910
23912
  react_dom__WEBPACK_IMPORTED_MODULE_1__.render( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_skbkontur_react_ui__WEBPACK_IMPORTED_MODULE_6__.ThemeContext.Provider, {
23911
23913
  value: _skbkontur_react_ui__WEBPACK_IMPORTED_MODULE_7__.FLAT_THEME
23912
23914
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_Common_CandyApiClient_CandyApiClientContext__WEBPACK_IMPORTED_MODULE_4__.CandyApiClientProvider, {
@@ -23971,67 +23973,6 @@ var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
23971
23973
  }());
23972
23974
 
23973
23975
 
23974
- /***/ }),
23975
-
23976
- /***/ "./node_modules/classnames/index.js":
23977
- /*!******************************************!*\
23978
- !*** ./node_modules/classnames/index.js ***!
23979
- \******************************************/
23980
- /***/ (function(module, exports) {
23981
-
23982
- var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
23983
- Copyright (c) 2017 Jed Watson.
23984
- Licensed under the MIT License (MIT), see
23985
- http://jedwatson.github.io/classnames
23986
- */
23987
- /* global define */
23988
-
23989
- (function () {
23990
- 'use strict';
23991
-
23992
- var hasOwn = {}.hasOwnProperty;
23993
-
23994
- function classNames () {
23995
- var classes = [];
23996
-
23997
- for (var i = 0; i < arguments.length; i++) {
23998
- var arg = arguments[i];
23999
- if (!arg) continue;
24000
-
24001
- var argType = typeof arg;
24002
-
24003
- if (argType === 'string' || argType === 'number') {
24004
- classes.push(arg);
24005
- } else if (Array.isArray(arg) && arg.length) {
24006
- var inner = classNames.apply(null, arg);
24007
- if (inner) {
24008
- classes.push(inner);
24009
- }
24010
- } else if (argType === 'object') {
24011
- for (var key in arg) {
24012
- if (hasOwn.call(arg, key) && arg[key]) {
24013
- classes.push(key);
24014
- }
24015
- }
24016
- }
24017
- }
24018
-
24019
- return classes.join(' ');
24020
- }
24021
-
24022
- if ( true && module.exports) {
24023
- classNames.default = classNames;
24024
- module.exports = classNames;
24025
- } else if (true) {
24026
- // register as 'classnames', consistent with npm package name
24027
- !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () {
24028
- return classNames;
24029
- }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
24030
- __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
24031
- } else {}
24032
- }());
24033
-
24034
-
24035
23976
  /***/ }),
24036
23977
 
24037
23978
  /***/ "./node_modules/core-js/internals/a-callable.js":
@@ -40594,7 +40535,7 @@ __webpack_require__.r(__webpack_exports__);
40594
40535
 
40595
40536
  var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
40596
40537
  // Module
40597
- ___CSS_LOADER_EXPORT___.push([module.id, "/* http://meyerweb.com/eric/tools/css/reset/\n v2.0 | 20110126\n License: none (public domain)\n*/\nhtml,\nbody,\ndiv,\nspan,\napplet,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\npre,\na,\nabbr,\nacronym,\naddress,\nbig,\ncite,\ncode,\ndel,\ndfn,\nem,\nimg,\nins,\nkbd,\nq,\ns,\nsamp,\nsmall,\nstrike,\nstrong,\nsub,\nsup,\ntt,\nvar,\nb,\nu,\ni,\ncenter,\ndl,\ndt,\ndd,\nol,\nul,\nli,\nfieldset,\nform,\nlabel,\nlegend,\ntable,\ncaption,\ntbody,\ntfoot,\nthead,\ntr,\nth,\ntd,\narticle,\naside,\ncanvas,\ndetails,\nembed,\nfigure,\nfigcaption,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\noutput,\nruby,\nsection,\nsummary,\ntime,\nmark,\naudio,\nvideo {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font: inherit;\n vertical-align: baseline;\n}\n/* HTML5 display-role reset for older browsers */\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\nsection {\n display: block;\n}\nbody {\n line-height: 1;\n}\nol,\nul {\n list-style: none;\n}\nblockquote,\nq {\n quotes: none;\n}\nblockquote:before,\nblockquote:after,\nq:before,\nq:after {\n content: \"\";\n content: none;\n}\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\nbody,\nhtml {\n font-family: Segoe UI, Arial, sans-serif;\n font-size: 14px;\n color: #333333;\n line-height: 20px;\n}\nh1 {\n font-size: 32px;\n line-height: 48px;\n}\nh2 {\n font-size: 18px;\n line-height: 28px;\n font-weight: 600;\n}\nh3 {\n font-size: 16px;\n font-weight: 600;\n line-height: 24px;\n}\nhtml {\n overflow-y: scroll;\n}\n.FormsHelperApplication-app-Ops {\n max-width: 1000px;\n min-width: 800px;\n margin: 0 auto;\n}\n.FormsHelperApplication-last-actions-JsB {\n width: 300px;\n border-left: 1px #d9d9d9 solid;\n padding-left: 20px;\n}\n.FormsHelperApplication-last-actions-JsB .FormsHelperApplication-gfv-nr4 {\n font-weight: 600;\n}\n.FormsHelperApplication-gfv-list-ePQ {\n margin-left: -5px;\n margin-right: -5px;\n}\n.FormsHelperApplication-date-string-Lj1 {\n font-size: 12px;\n color: #a0a0a0;\n}\n", "",{"version":3,"sources":["webpack://./src/Components/App/FormsHelperApplication.less","webpack://./src/Components/App/Reset.less","webpack://./src/Components/App/Typography.less"],"names":[],"mappings":"AAAA;;;CAGC;ACED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiFI,SAAA;EACA,UAAA;EACA,SAAA;EACA,eAAA;EAEA,aAAA;EACA,wBAAA;ADDJ;AACA,gDAAgD;ACGhD;;;;;;;;;;;EAWI,cAAA;ADDJ;ACGA;EACI,cAAA;ADDJ;ACGA;;EAEI,gBAAA;ADDJ;ACGA;;EAEI,YAAA;ADDJ;ACGA;;;;EAII,WAAA;EACA,aAAA;ADDJ;ACGA;EACI,yBAAA;EACA,iBAAA;ADDJ;AE/HA;;EAEI,wCAAA;EACA,eAAA;EACA,cAAA;EACA,iBAAA;AFiIJ;AE9HA;EACI,eAAA;EACA,iBAAA;AFgIJ;AE7HA;EACI,eAAA;EACA,iBAAA;EACA,gBAAA;AF+HJ;AE5HA;EACI,eAAA;EACA,gBAAA;EACA,iBAAA;AF8HJ;AAjJA;EACI,kBAAA;AAmJJ;AAhJA;EACI,iBAAA;EACA,gBAAA;EACA,cAAA;AAkJJ;AA/IA;EACI,YAAA;EACA,8BAAA;EACA,kBAAA;AAiJJ;AApJA;EAMQ,gBAAA;AAiJR;AA7IA;EACI,iBAAA;EACA,kBAAA;AA+IJ;AA5IA;EACI,eAAA;EACA,cAAA;AA8IJ","sourcesContent":["@import \"~./Reset.less\";\n@import \"~./Typography.less\";\n\nhtml {\n overflow-y: scroll;\n}\n\n.app {\n max-width: 1000px;\n min-width: 800px;\n margin: 0 auto;\n}\n\n.last-actions {\n width: 300px;\n border-left: 1px #d9d9d9 solid;\n padding-left: 20px;\n\n .gfv {\n font-weight: 600;\n }\n}\n\n.gfv-list {\n margin-left: -5px;\n margin-right: -5px;\n}\n\n.date-string {\n font-size: 12px;\n color: #a0a0a0;\n}\n","/* http://meyerweb.com/eric/tools/css/reset/\n v2.0 | 20110126\n License: none (public domain)\n*/\n\nhtml,\nbody,\ndiv,\nspan,\napplet,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\npre,\na,\nabbr,\nacronym,\naddress,\nbig,\ncite,\ncode,\ndel,\ndfn,\nem,\nimg,\nins,\nkbd,\nq,\ns,\nsamp,\nsmall,\nstrike,\nstrong,\nsub,\nsup,\ntt,\nvar,\nb,\nu,\ni,\ncenter,\ndl,\ndt,\ndd,\nol,\nul,\nli,\nfieldset,\nform,\nlabel,\nlegend,\ntable,\ncaption,\ntbody,\ntfoot,\nthead,\ntr,\nth,\ntd,\narticle,\naside,\ncanvas,\ndetails,\nembed,\nfigure,\nfigcaption,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\noutput,\nruby,\nsection,\nsummary,\ntime,\nmark,\naudio,\nvideo {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n // stylelint-disable-next-line declaration-block-no-shorthand-property-overrides\n font: inherit;\n vertical-align: baseline;\n}\n/* HTML5 display-role reset for older browsers */\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\nsection {\n display: block;\n}\nbody {\n line-height: 1;\n}\nol,\nul {\n list-style: none;\n}\nblockquote,\nq {\n quotes: none;\n}\nblockquote:before,\nblockquote:after,\nq:before,\nq:after {\n content: \"\";\n content: none;\n}\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n","body,\nhtml {\n font-family: Segoe UI, Arial, sans-serif;\n font-size: 14px;\n color: #333333;\n line-height: 20px;\n}\n\nh1 {\n font-size: 32px;\n line-height: 48px;\n}\n\nh2 {\n font-size: 18px;\n line-height: 28px;\n font-weight: 600;\n}\n\nh3 {\n font-size: 16px;\n font-weight: 600;\n line-height: 24px;\n}\n"],"sourceRoot":""}]);
40538
+ ___CSS_LOADER_EXPORT___.push([module.id, "/* http://meyerweb.com/eric/tools/css/reset/\n v2.0 | 20110126\n License: none (public domain)\n*/\nhtml,\nbody,\ndiv,\nspan,\napplet,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\npre,\na,\nabbr,\nacronym,\naddress,\nbig,\ncite,\ncode,\ndel,\ndfn,\nem,\nimg,\nins,\nkbd,\nq,\ns,\nsamp,\nsmall,\nstrike,\nstrong,\nsub,\nsup,\ntt,\nvar,\nb,\nu,\ni,\ncenter,\ndl,\ndt,\ndd,\nol,\nul,\nli,\nfieldset,\nform,\nlabel,\nlegend,\ntable,\ncaption,\ntbody,\ntfoot,\nthead,\ntr,\nth,\ntd,\narticle,\naside,\ncanvas,\ndetails,\nembed,\nfigure,\nfigcaption,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\noutput,\nruby,\nsection,\nsummary,\ntime,\nmark,\naudio,\nvideo {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font: inherit;\n vertical-align: baseline;\n}\n/* HTML5 display-role reset for older browsers */\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\nsection {\n display: block;\n}\nbody {\n line-height: 1;\n}\nol,\nul {\n list-style: none;\n}\nblockquote,\nq {\n quotes: none;\n}\nblockquote:before,\nblockquote:after,\nq:before,\nq:after {\n content: \"\";\n content: none;\n}\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n@font-face {\n font-family: \"Lab Grotesque\";\n font-style: normal;\n font-weight: 100;\n src: url(https://s.kontur.ru/common-v2/fonts/LabGrotesque/LabGrotesque-Thin.woff2) format(\"woff2\"), url(https://s.kontur.ru/common-v2/fonts/LabGrotesque/LabGrotesque-Thin.woff) format(\"woff\");\n}\n@font-face {\n font-family: \"Lab Grotesque\";\n font-style: normal;\n font-weight: 300;\n src: url(https://s.kontur.ru/common-v2/fonts/LabGrotesque/LabGrotesque-Light.woff2) format(\"woff2\"), url(https://s.kontur.ru/common-v2/fonts/LabGrotesque/LabGrotesque-Light.woff) format(\"woff\");\n}\n@font-face {\n font-family: \"Lab Grotesque\";\n font-style: normal;\n font-weight: 400;\n src: url(https://s.kontur.ru/common-v2/fonts/LabGrotesque/LabGrotesque-Regular.woff2) format(\"woff2\"), url(https://s.kontur.ru/common-v2/fonts/LabGrotesque/LabGrotesque-Regular.woff) format(\"woff\");\n}\n@font-face {\n font-family: \"Lab Grotesque\";\n font-style: normal;\n font-weight: 500;\n src: url(https://s.kontur.ru/common-v2/fonts/LabGrotesque/LabGrotesque-Medium.woff2) format(\"woff2\"), url(https://s.kontur.ru/common-v2/fonts/LabGrotesque/LabGrotesque-Medium.woff) format(\"woff\");\n}\n@font-face {\n font-family: \"Lab Grotesque\";\n font-style: normal;\n font-weight: 600;\n src: url(https://s.kontur.ru/common-v2/fonts/LabGrotesque/LabGrotesque-Medium.woff2) format(\"woff2\"), url(https://s.kontur.ru/common-v2/fonts/LabGrotesque/LabGrotesque-Medium.woff) format(\"woff\");\n}\n@font-face {\n font-family: \"Lab Grotesque\";\n font-style: normal;\n font-weight: 700;\n src: url(https://s.kontur.ru/common-v2/fonts/LabGrotesque/LabGrotesque-Bold.woff2) format(\"woff2\"), url(https://s.kontur.ru/common-v2/fonts/LabGrotesque/LabGrotesque-Bold.woff) format(\"woff\");\n}\n@font-face {\n font-family: \"Lab Grotesque\";\n font-style: italic;\n font-weight: 100;\n src: url(https://s.kontur.ru/common-v2/fonts/LabGrotesque/LabGrotesque-ThinItalic.woff2) format(\"woff2\"), url(https://s.kontur.ru/common-v2/fonts/LabGrotesque/LabGrotesque-ThinItalic.woff) format(\"woff\");\n}\n@font-face {\n font-family: \"Lab Grotesque\";\n font-style: italic;\n font-weight: 300;\n src: url(https://s.kontur.ru/common-v2/fonts/LabGrotesque/LabGrotesque-LightItalic.woff2) format(\"woff2\"), url(https://s.kontur.ru/common-v2/fonts/LabGrotesque/LabGrotesque-LightItalic.woff) format(\"woff\");\n}\n@font-face {\n font-family: \"Lab Grotesque\";\n font-style: italic;\n font-weight: 400;\n src: url(https://s.kontur.ru/common-v2/fonts/LabGrotesque/LabGrotesque-Italic.woff2) format(\"woff2\"), url(https://s.kontur.ru/common-v2/fonts/LabGrotesque/LabGrotesque-Italic.woff) format(\"woff\");\n}\n@font-face {\n font-family: \"Lab Grotesque\";\n font-style: italic;\n font-weight: 700;\n src: url(https://s.kontur.ru/common-v2/fonts/LabGrotesque/LabGrotesque-BoldItalic.woff2) format(\"woff2\"), url(https://s.kontur.ru/common-v2/fonts/LabGrotesque/LabGrotesque-BoldItalic.woff) format(\"woff\");\n}\nbody,\nhtml {\n font-family: Lab Grotesque, -apple-system, BlinkMacSystemFont, Arial, Liberation Sans, Nimbus Sans L, sans-serif;\n font-size: 14px;\n color: #222222;\n line-height: 20px;\n}\nh1 {\n font-size: 36px;\n line-height: 44px;\n font-weight: 700;\n}\nh2 {\n font-size: 20px;\n line-height: 28px;\n font-weight: 700;\n}\nh3 {\n font-size: 16px;\n font-weight: 400;\n line-height: 22px;\n}\nhtml {\n overflow-y: scroll;\n}\n.FormsHelperApplication-app-Ops {\n max-width: 1000px;\n min-width: 800px;\n margin: 24px auto 0 auto;\n}\n.FormsHelperApplication-last-actions-JsB {\n width: 300px;\n border-left: 1px #d9d9d9 solid;\n padding-left: 20px;\n}\n.FormsHelperApplication-last-actions-JsB .FormsHelperApplication-gfv-nr4 {\n font-weight: 600;\n}\n.FormsHelperApplication-gfv-list-ePQ {\n margin-left: -5px;\n margin-right: -5px;\n}\n.FormsHelperApplication-date-string-Lj1 {\n font-size: 12px;\n line-height: 16px;\n color: #a0a0a0;\n}\n", "",{"version":3,"sources":["webpack://./src/Components/App/FormsHelperApplication.less","webpack://./src/Components/App/Reset.less","webpack://./src/Components/App/Typography.less"],"names":[],"mappings":"AAAA;;;CAGC;ACED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiFI,SAAA;EACA,UAAA;EACA,SAAA;EACA,eAAA;EAEA,aAAA;EACA,wBAAA;ADDJ;AACA,gDAAgD;ACGhD;;;;;;;;;;;EAWI,cAAA;ADDJ;ACGA;EACI,cAAA;ADDJ;ACGA;;EAEI,gBAAA;ADDJ;ACGA;;EAEI,YAAA;ADDJ;ACGA;;;;EAII,WAAA;EACA,aAAA;ADDJ;ACGA;EACI,yBAAA;EACA,iBAAA;ADDJ;AE/HA;EACI,4BAAA;EACA,kBAAA;EACA,gBAAA;EACA,+LAAA;AFiIJ;AE7HA;EACI,4BAAA;EACA,kBAAA;EACA,gBAAA;EACA,iMAAA;AF+HJ;AE3HA;EACI,4BAAA;EACA,kBAAA;EACA,gBAAA;EACA,qMAAA;AF6HJ;AEzHA;EACI,4BAAA;EACA,kBAAA;EACA,gBAAA;EACA,mMAAA;AF2HJ;AEvHA;EACI,4BAAA;EACA,kBAAA;EACA,gBAAA;EACA,mMAAA;AFyHJ;AErHA;EACI,4BAAA;EACA,kBAAA;EACA,gBAAA;EACA,+LAAA;AFuHJ;AEnHA;EACI,4BAAA;EACA,kBAAA;EACA,gBAAA;EACA,2MAAA;AFqHJ;AEjHA;EACI,4BAAA;EACA,kBAAA;EACA,gBAAA;EACA,6MAAA;AFmHJ;AE/GA;EACI,4BAAA;EACA,kBAAA;EACA,gBAAA;EACA,mMAAA;AFiHJ;AE7GA;EACI,4BAAA;EACA,kBAAA;EACA,gBAAA;EACA,2MAAA;AF+GJ;AE3GA;;EAEI,gHAAA;EACA,eAAA;EACA,cAAA;EACA,iBAAA;AF6GJ;AE1GA;EACI,eAAA;EACA,iBAAA;EACA,gBAAA;AF4GJ;AEzGA;EACI,eAAA;EACA,iBAAA;EACA,gBAAA;AF2GJ;AExGA;EACI,eAAA;EACA,gBAAA;EACA,iBAAA;AF0GJ;AA9MA;EACI,kBAAA;AAgNJ;AA7MA;EACI,iBAAA;EACA,gBAAA;EACA,wBAAA;AA+MJ;AA5MA;EACI,YAAA;EACA,8BAAA;EACA,kBAAA;AA8MJ;AAjNA;EAMQ,gBAAA;AA8MR;AA1MA;EACI,iBAAA;EACA,kBAAA;AA4MJ;AAzMA;EACI,eAAA;EACA,iBAAA;EACA,cAAA;AA2MJ","sourcesContent":["@import \"~./Reset.less\";\n@import \"~./Typography.less\";\n\nhtml {\n overflow-y: scroll;\n}\n\n.app {\n max-width: 1000px;\n min-width: 800px;\n margin: 24px auto 0 auto;\n}\n\n.last-actions {\n width: 300px;\n border-left: 1px #d9d9d9 solid;\n padding-left: 20px;\n\n .gfv {\n font-weight: 600;\n }\n}\n\n.gfv-list {\n margin-left: -5px;\n margin-right: -5px;\n}\n\n.date-string {\n font-size: 12px;\n line-height: 16px;\n color: #a0a0a0;\n}\n","/* http://meyerweb.com/eric/tools/css/reset/\n v2.0 | 20110126\n License: none (public domain)\n*/\n\nhtml,\nbody,\ndiv,\nspan,\napplet,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\npre,\na,\nabbr,\nacronym,\naddress,\nbig,\ncite,\ncode,\ndel,\ndfn,\nem,\nimg,\nins,\nkbd,\nq,\ns,\nsamp,\nsmall,\nstrike,\nstrong,\nsub,\nsup,\ntt,\nvar,\nb,\nu,\ni,\ncenter,\ndl,\ndt,\ndd,\nol,\nul,\nli,\nfieldset,\nform,\nlabel,\nlegend,\ntable,\ncaption,\ntbody,\ntfoot,\nthead,\ntr,\nth,\ntd,\narticle,\naside,\ncanvas,\ndetails,\nembed,\nfigure,\nfigcaption,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\noutput,\nruby,\nsection,\nsummary,\ntime,\nmark,\naudio,\nvideo {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n // stylelint-disable-next-line declaration-block-no-shorthand-property-overrides\n font: inherit;\n vertical-align: baseline;\n}\n/* HTML5 display-role reset for older browsers */\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\nsection {\n display: block;\n}\nbody {\n line-height: 1;\n}\nol,\nul {\n list-style: none;\n}\nblockquote,\nq {\n quotes: none;\n}\nblockquote:before,\nblockquote:after,\nq:before,\nq:after {\n content: \"\";\n content: none;\n}\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n","@font-face {\n font-family: \"Lab Grotesque\";\n font-style: normal;\n font-weight: 100;\n src: url(https://s.kontur.ru/common-v2/fonts/LabGrotesque/LabGrotesque-Thin.woff2) format(\"woff2\"),\n url(https://s.kontur.ru/common-v2/fonts/LabGrotesque/LabGrotesque-Thin.woff) format(\"woff\");\n}\n\n@font-face {\n font-family: \"Lab Grotesque\";\n font-style: normal;\n font-weight: 300;\n src: url(https://s.kontur.ru/common-v2/fonts/LabGrotesque/LabGrotesque-Light.woff2) format(\"woff2\"),\n url(https://s.kontur.ru/common-v2/fonts/LabGrotesque/LabGrotesque-Light.woff) format(\"woff\");\n}\n\n@font-face {\n font-family: \"Lab Grotesque\";\n font-style: normal;\n font-weight: 400;\n src: url(https://s.kontur.ru/common-v2/fonts/LabGrotesque/LabGrotesque-Regular.woff2) format(\"woff2\"),\n url(https://s.kontur.ru/common-v2/fonts/LabGrotesque/LabGrotesque-Regular.woff) format(\"woff\");\n}\n\n@font-face {\n font-family: \"Lab Grotesque\";\n font-style: normal;\n font-weight: 500;\n src: url(https://s.kontur.ru/common-v2/fonts/LabGrotesque/LabGrotesque-Medium.woff2) format(\"woff2\"),\n url(https://s.kontur.ru/common-v2/fonts/LabGrotesque/LabGrotesque-Medium.woff) format(\"woff\");\n}\n\n@font-face {\n font-family: \"Lab Grotesque\";\n font-style: normal;\n font-weight: 600;\n src: url(https://s.kontur.ru/common-v2/fonts/LabGrotesque/LabGrotesque-Medium.woff2) format(\"woff2\"),\n url(https://s.kontur.ru/common-v2/fonts/LabGrotesque/LabGrotesque-Medium.woff) format(\"woff\");\n}\n\n@font-face {\n font-family: \"Lab Grotesque\";\n font-style: normal;\n font-weight: 700;\n src: url(https://s.kontur.ru/common-v2/fonts/LabGrotesque/LabGrotesque-Bold.woff2) format(\"woff2\"),\n url(https://s.kontur.ru/common-v2/fonts/LabGrotesque/LabGrotesque-Bold.woff) format(\"woff\");\n}\n\n@font-face {\n font-family: \"Lab Grotesque\";\n font-style: italic;\n font-weight: 100;\n src: url(https://s.kontur.ru/common-v2/fonts/LabGrotesque/LabGrotesque-ThinItalic.woff2) format(\"woff2\"),\n url(https://s.kontur.ru/common-v2/fonts/LabGrotesque/LabGrotesque-ThinItalic.woff) format(\"woff\");\n}\n\n@font-face {\n font-family: \"Lab Grotesque\";\n font-style: italic;\n font-weight: 300;\n src: url(https://s.kontur.ru/common-v2/fonts/LabGrotesque/LabGrotesque-LightItalic.woff2) format(\"woff2\"),\n url(https://s.kontur.ru/common-v2/fonts/LabGrotesque/LabGrotesque-LightItalic.woff) format(\"woff\");\n}\n\n@font-face {\n font-family: \"Lab Grotesque\";\n font-style: italic;\n font-weight: 400;\n src: url(https://s.kontur.ru/common-v2/fonts/LabGrotesque/LabGrotesque-Italic.woff2) format(\"woff2\"),\n url(https://s.kontur.ru/common-v2/fonts/LabGrotesque/LabGrotesque-Italic.woff) format(\"woff\");\n}\n\n@font-face {\n font-family: \"Lab Grotesque\";\n font-style: italic;\n font-weight: 700;\n src: url(https://s.kontur.ru/common-v2/fonts/LabGrotesque/LabGrotesque-BoldItalic.woff2) format(\"woff2\"),\n url(https://s.kontur.ru/common-v2/fonts/LabGrotesque/LabGrotesque-BoldItalic.woff) format(\"woff\");\n}\n\nbody,\nhtml {\n font-family: Lab Grotesque, -apple-system, BlinkMacSystemFont, Arial, Liberation Sans, Nimbus Sans L, sans-serif;\n font-size: 14px;\n color: #222222;\n line-height: 20px;\n}\n\nh1 {\n font-size: 36px;\n line-height: 44px;\n font-weight: 700;\n}\n\nh2 {\n font-size: 20px;\n line-height: 28px;\n font-weight: 700;\n}\n\nh3 {\n font-size: 16px;\n font-weight: 400;\n line-height: 22px;\n}\n"],"sourceRoot":""}]);
40598
40539
  // Exports
40599
40540
  ___CSS_LOADER_EXPORT___.locals = {
40600
40541
  "app": "FormsHelperApplication-app-Ops",
@@ -40681,7 +40622,7 @@ __webpack_require__.r(__webpack_exports__);
40681
40622
 
40682
40623
  var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
40683
40624
  // Module
40684
- ___CSS_LOADER_EXPORT___.push([module.id, ".GfvItem-root-Be4 {\n padding: 5px;\n}\n.GfvItem-root-Be4 .GfvItem-description-GuN {\n font-size: 12px;\n color: #a0a0a0;\n}\n.GfvItem-root-Be4 .GfvItem-gfv-mOI {\n font-weight: 600;\n}\n.GfvItem-root-Be4 .GfvItem-edit-YyD {\n display: none;\n}\n.GfvItem-root-Be4:hover {\n background-color: #f8f8f8;\n}\n.GfvItem-root-Be4:hover .GfvItem-edit-YyD {\n display: inline-block;\n}\n.GfvItem-root-Be4:hover .GfvItem-edit-YyD * {\n color: #a0a0a0;\n}\n.GfvItem-root-Be4:hover .GfvItem-edit-YyD:hover * {\n color: #3072c4;\n}\n", "",{"version":3,"sources":["webpack://./src/Components/GfvItem/GfvItem.less"],"names":[],"mappings":"AAAA;EACI,YAAA;AACJ;AAFA;EAIQ,eAAA;EACA,cAAA;AACR;AANA;EASQ,gBAAA;AAAR;AATA;EAaQ,aAAA;AADR;AAII;EACI,yBAAA;AAFR;AACI;EAIQ,qBAAA;AAFZ;AAFI;EAMY,cAAA;AADhB;AAIY;EAEQ,cAAA;AAHpB","sourcesContent":[".root {\n padding: 5px;\n\n .description {\n font-size: 12px;\n color: #a0a0a0;\n }\n\n .gfv {\n font-weight: 600;\n }\n\n .edit {\n display: none;\n }\n\n &:hover {\n background-color: #f8f8f8;\n\n .edit {\n display: inline-block;\n * {\n color: #a0a0a0;\n }\n\n &:hover {\n * {\n color: #3072c4;\n }\n }\n }\n }\n}\n"],"sourceRoot":""}]);
40625
+ ___CSS_LOADER_EXPORT___.push([module.id, ".GfvItem-root-Be4 {\n padding: 5px;\n}\n.GfvItem-root-Be4 .GfvItem-description-GuN {\n font-size: 12px;\n line-height: 16px;\n color: #a0a0a0;\n}\n.GfvItem-root-Be4 .GfvItem-gfv-mOI {\n font-weight: 700;\n}\n.GfvItem-root-Be4 .GfvItem-edit-YyD {\n display: none;\n}\n.GfvItem-root-Be4:hover {\n background-color: #f8f8f8;\n}\n.GfvItem-root-Be4:hover .GfvItem-edit-YyD {\n display: inline-block;\n}\n.GfvItem-root-Be4:hover .GfvItem-edit-YyD * {\n color: #a0a0a0;\n}\n.GfvItem-root-Be4:hover .GfvItem-edit-YyD:hover * {\n color: #3072c4;\n}\n", "",{"version":3,"sources":["webpack://./src/Components/GfvItem/GfvItem.less"],"names":[],"mappings":"AAAA;EACI,YAAA;AACJ;AAFA;EAIQ,eAAA;EACA,iBAAA;EACA,cAAA;AACR;AAPA;EAUQ,gBAAA;AAAR;AAVA;EAcQ,aAAA;AADR;AAII;EACI,yBAAA;AAFR;AACI;EAIQ,qBAAA;AAFZ;AAFI;EAMY,cAAA;AADhB;AAIY;EAEQ,cAAA;AAHpB","sourcesContent":[".root {\n padding: 5px;\n\n .description {\n font-size: 12px;\n line-height: 16px;\n color: #a0a0a0;\n }\n\n .gfv {\n font-weight: 700;\n }\n\n .edit {\n display: none;\n }\n\n &:hover {\n background-color: #f8f8f8;\n\n .edit {\n display: inline-block;\n * {\n color: #a0a0a0;\n }\n\n &:hover {\n * {\n color: #3072c4;\n }\n }\n }\n }\n}\n"],"sourceRoot":""}]);
40685
40626
  // Exports
40686
40627
  ___CSS_LOADER_EXPORT___.locals = {
40687
40628
  "root": "GfvItem-root-Be4",