@kando-env/kando-ui 1.2.418-alpha.0 → 1.2.418-alpha.10

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.
@@ -50,6 +50,8 @@ var bubbleForWWTP = function bubbleForWWTP(args) {
50
50
  });
51
51
  pointCustomIcon['kando_object_id'] = args.wwtpPoint.id;
52
52
  pointCustomIcon['kando_object'] = 'Point';
53
+ pointCustomIcon['kando_has_device'] = args.wwtpPoint.has_device;
54
+ pointCustomIcon['kando_has_sampler'] = args.wwtpPoint.has_sampler;
53
55
  return pointCustomIcon;
54
56
  };
55
57
  exports.bubbleForWWTP = bubbleForWWTP;
@@ -57,8 +59,9 @@ var createBubblePoint = function createBubblePoint(markerLocation, point, map, h
57
59
  var flow_rate_unit = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 'gd_us';
58
60
  var handleClick = arguments.length > 6 ? arguments[6] : undefined;
59
61
  var subtitle = pointIsFactory(point) ? point.group.sector_name : '';
62
+ var type = point.has_device ? point.group.type : 'Groups::default';
60
63
  var pointCustomIcon = _leaflet.default.marker(markerLocation, {
61
- icon: (0, _PointIcon.getPointIconByType)(point.group.type, point.name, subtitle, false, true, false, point.has_sampler),
64
+ icon: (0, _PointIcon.getPointIconByType)(type, point.name, subtitle, false, true, false, point.has_sampler),
62
65
  riseOnHover: true
63
66
  });
64
67
  // @ts-ignore
@@ -66,6 +69,7 @@ var createBubblePoint = function createBubblePoint(markerLocation, point, map, h
66
69
  pointCustomIcon['kando_object_id'] = point.id;
67
70
  pointCustomIcon['kando_object'] = 'Point';
68
71
  pointCustomIcon['kando_has_device'] = point.has_device;
72
+ pointCustomIcon['kando_has_sampler'] = point.has_sampler;
69
73
  if (hovered) pointCustomIcon['kando_object'] = 'PointHovered';
70
74
  var markerOnMap = layerGroup.getLayers().find(function (layer) {
71
75
  return layer.kando_object_id === point.id;
@@ -82,6 +86,7 @@ var createBubblePoint = function createBubblePoint(markerLocation, point, map, h
82
86
  pointCustomIcon['kando_object_id'] = point.id;
83
87
  pointCustomIcon['kando_object'] = 'Point';
84
88
  pointCustomIcon['kando_has_device'] = point.has_device;
89
+ pointCustomIcon['kando_has_sampler'] = point.has_sampler;
85
90
  if (hovered) pointCustomIcon['kando_object'] = 'PointHovered';
86
91
  layerGroup.addLayer(pointCustomIcon);
87
92
  if (pointIsFactory(point)) {
@@ -121,6 +126,8 @@ var createManholePoint = function createManholePoint(markerLocation, point, map,
121
126
  manholeIcon['kando_object_id'] = point.id;
122
127
  manholeIcon['kando_object'] = 'Point';
123
128
  manholeIcon['kando_point_type'] = 'Manhole';
129
+ manholeIcon['kando_has_device'] = point.has_device;
130
+ manholeIcon['kando_has_sampler'] = point.has_sampler;
124
131
  if (hovered) manholeIcon['kando_object'] = 'PointHovered';
125
132
  layerGroup.addLayer(manholeIcon);
126
133
  };
@@ -372,7 +379,8 @@ var getIcon = function getIcon(point, clicked, subtitle) {
372
379
  }
373
380
  return (0, _PointIcon.getPointIconByType)(type, point.name, subtitleText, clicked, !clicked, false, point.has_sampler);
374
381
  };
375
- var setIcon = function setIcon(element, clicked, point, subtitle) {
382
+ var setIcon = function setIcon(element, clicked, point) {
383
+ var subtitle = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';
376
384
  element.setIcon(getIcon(point, clicked, subtitle));
377
385
  };
378
386
 
@@ -504,4 +512,4 @@ var isFactoryType = function isFactoryType(type) {
504
512
  return type === 'Groups::Factory';
505
513
  };
506
514
  exports.isFactoryType = isFactoryType;
507
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbGVhZmxldCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2kxOG4iLCJfYmx1ZUNpcmNsZSIsIl9zYW1wbGluZ0ljb24iLCJfcGlua0NpcmNsZSIsIl9vYnNlcnZhdGlvbkljb24iLCJfcmVkUGluUmVkU2hhZG93IiwiX3doaXRlUGluUmVkU2hhZG93IiwiX3doaXRlUGluQmxhY2tTaGFkb3ciLCJfeWVsbG93Q2lyY2xlIiwiX2ZhY3RvcnlJY29uIiwiX2dyZWVuQ2lyY2xlIiwiX3B1bXBTdGF0aW9uSWNvbiIsIl9waW5XYXRlciIsIl9icmlnaHRCbHVlQ2lyY2xlIiwiX1dXVFBJY29uIiwiX3dhdGVyTm9CYWNrZ3JvdW5kIiwiX3doaXRlUG9pbnQiLCJfTWFwVXRpbHMiLCJfUG9pbnRJY29uIiwiX3dhdGVyX3JldXNlIiwiX3V0aWxzIiwiaXNDb2xsZWN0b3JGb2N1c2VkIiwicG9pbnQiLCJldmVudCIsIl9ldmVudCRvYnNlcnZhdGlvbnMiLCJvYnNlcnZhdGlvbnMiLCJsZW5ndGgiLCJpZCIsInBvaW50X2lkIiwiZXhwb3J0cyIsImJ1aWxkTWFuaG9sZVRvb2x0aXBTdHJpbmciLCJzdHJpbmciLCJjb25jYXQiLCJncm91cCIsIm5hbWUiLCJwb2ludElzRmFjdG9yeSIsInNlY3Rvcl9uYW1lIiwid2F0ZXJfZGlzY2hhcmdlIiwiYnViYmxlRm9yV1dUUCIsImFyZ3MiLCJwb2ludEN1c3RvbUljb24iLCJMIiwibWFya2VyIiwibWFya2VyTG9jYXRpb24iLCJpY29uIiwiZ2V0SWNvbiIsInd3dHBQb2ludCIsInJpc2VPbkhvdmVyIiwiY3JlYXRlQnViYmxlUG9pbnQiLCJtYXAiLCJob3ZlcmVkIiwibGF5ZXJHcm91cCIsImZsb3dfcmF0ZV91bml0IiwiYXJndW1lbnRzIiwidW5kZWZpbmVkIiwiaGFuZGxlQ2xpY2siLCJzdWJ0aXRsZSIsImdldFBvaW50SWNvbkJ5VHlwZSIsInR5cGUiLCJoYXNfc2FtcGxlciIsImhhc19kZXZpY2UiLCJtYXJrZXJPbk1hcCIsImdldExheWVycyIsImZpbmQiLCJsYXllciIsImthbmRvX29iamVjdF9pZCIsImFkZExheWVyIiwiYmluZFBvcHVwVG9NYXJrZXIiLCJoYW5kbGVNYXJrZXJFdmVudHMiLCJyZWxhdGVkRXZlbnRzQW1vdW50IiwiZGl2SWNvbiIsImNsYXNzTmFtZSIsImh0bWwiLCJpY29uQW5jaG9yIiwiZXZlbnRzQ291bnRJY29uIiwiX3pvb20iLCJvcGFjaXR5IiwiY3JlYXRlTWFuaG9sZVBvaW50IiwicG9pbnRJY29uIiwiSWNvbiIsImljb25VcmwiLCJ3aGl0ZVBvaW50IiwiaWNvblNpemUiLCJtYW5ob2xlSWNvbiIsIk1hcmtlciIsImJpbmRUb29sdGlwIiwibWF0Y2hJY29uVG9Qb2ludCIsImNvbWJpbmVkRmFjdG9yeUljb24iLCJtYXJrZXJCZWxvbmdzVG9TZWxlY3RlZFNvdXJjZSIsInVuc2hpZnQiLCJzZWxlY3RlZEJhY2tncm91bmQiLCJtYXJrZXJCZWxvbmdzVG9Tb3VyY2UiLCJiZWxvbmdzVG9Tb3VyY2VCYWNrZ3JvdW5kIiwic3RhbmRhcmRCYWNrZ3JvdW5kIiwiY29tYmluZWRQdW1wU3RhdGlvbkljb24iLCJjb21iaW5lZFdXVFBJY29uIiwicmVkUGluUmVkU2hhZG93Iiwid2F0ZXJJY29uTm9CYWNrZ3JvdW5kIiwicG9wdXBBbmNob3IiLCJjb21iaW5lZENvbGxlY3RvcnNJY29uIiwic2Vjb25kYXJ5IiwidGhpcmQiLCJ3aGl0ZVBpbkJsYWNrU2hhZG93IiwieWVsbG93Q2lyY2xlVVJMIiwicGxhbnRJY29uVVJMIiwiZ3JlZW5DaXJjbGVVUkwiLCJwdW1wU3RhdGlvbkljb25VUkwiLCJjb2xsZWN0b3JJY29uIiwiYnJpZ2h0Qmx1ZUNpcmNsZVVSTCIsIldXVFBJY29uVVJMIiwid2hpdGVQaW5SZWRTaGFkb3ciLCJzb3VyY2UiLCJzb3VyY2VzIiwiZmlsdGVyIiwic2VsZWN0ZWRfc291cmNlIiwiY3JlYXRlU2FtcGxpbmdJY29uUG9pbnQiLCJzZWNvbmRhcnlJY29uIiwic2FtcGxpbmdJY29uIiwiYmx1ZUNpcmNsZVVSTCIsInNhbXBsaW5nSWNvblVSTCIsInRoaXJkSWNvbiIsImZvckVhY2giLCJpbmRleCIsImNyZWF0ZU9ic2VydmF0aW9uSWNvblBvaW50Iiwib2JzZXJ2YXRpb25JY29uIiwicGlua0NpcmNsZVVSTCIsIm9ic2VydmF0aW9uSWNvblVSTCIsImNyZWF0ZVNhbXBsaW5nSWNvbnMiLCJzYW1wbGVkUG9pbnRJZHMiLCJzYW1wbGluZ3MiLCJzIiwiaW5jbHVkZXMiLCJwb3B1cENvbnRlbnQiLCJvYnMiLCJHcmFwaEljb24iLCJpMThuIiwidCIsInNldmVyaXR5IiwiY2xpY2tlZCIsImlzV1dUUCIsInN1YnRpdGxlVGV4dCIsInNldEljb24iLCJlbGVtZW50IiwiY2FsY3VsYXRlV2F0ZXJDb25zdW1wdGlvbiIsIndhdGVyQ29uc3VtcHRpb24iLCJyb3VuZF90b19uZWFyZXN0X2siLCJjYWxjdWxhdGVkIiwidG9GaXhlZCIsInJvdW5kVG9OZWFyZXN0VGhvdXNhbmQiLCJwYXJzZUZsb2F0IiwidG9Mb2NhbGVTdHJpbmciLCJNYXRoIiwicm91bmQiLCJudW1iZXIiLCJyb3VuZGVkVGhvdXNhbmRzIiwicm91bmRlZFZhbHVlIiwidHJhbnNsYXRlRmxvd1JhdGUiLCJ0b29sdGlwVmlzaWJsZSIsIm9uIiwiY2xvc2VQb3B1cCIsImlzUG9wdXBPcGVuIiwic2VuZEFuYWx5dGljc0V2ZW50IiwicG9pbnRfbmFtZSIsImNvbnRlbnQiLCJ3YXRlclJldXNlSWNvbiIsImdldEZsb3dSYXRlIiwiYmluZFBvcHVwIiwibWluV2lkdGgiLCJtYXhXaWR0aCIsImNsb3NlQnV0dG9uIiwiZmxvd1JhdGVVbml0IiwiaXNSb3VuZCIsInJlbW92ZUxheWVyR3JvdXAiLCJoYXNMYXllciIsInJlbW92ZUxheWVyIiwiYWRkTGF5ZXJHcm91cCIsInBvaW50SXNXV1RQIiwiaXNGYWN0b3J5VHlwZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9wb2ludHMvUG9pbnRVdGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgR3JhcGhJY29uIGZyb20gJy4uLy4uLy4uL2Fzc2V0cy9saW5lLWNoYXJ0LnN2Zyc7XG5pbXBvcnQgTCwgeyBMYXRMbmdUdXBsZSB9IGZyb20gJ2xlYWZsZXQnO1xuaW1wb3J0IGkxOG4gZnJvbSAnLi4vLi4vLi4vdXRpbGl0aWVzL2kxOG4nO1xuaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvcG9pbnRzL21vZGVscy9JUG9pbnQnO1xuaW1wb3J0IGJsdWVDaXJjbGVVUkwgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL3BvaW50X2ljb25zL2JsdWUtY2lyY2xlLnN2Zyc7XG5pbXBvcnQgc2FtcGxpbmdJY29uVVJMIGZyb20gJy4uLy4uLy4uL2Fzc2V0cy9wb2ludF9pY29ucy9zYW1wbGluZy1pY29uLnN2Zyc7XG5pbXBvcnQgcGlua0NpcmNsZVVSTCBmcm9tICcuLi8uLi8uLi9hc3NldHMvcG9pbnRfaWNvbnMvcGluay1jaXJjbGUuc3ZnJztcbmltcG9ydCBvYnNlcnZhdGlvbkljb25VUkwgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL3BvaW50X2ljb25zL29ic2VydmF0aW9uLWljb24uc3ZnJztcbmltcG9ydCB7IElFdmVudCB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL2V2ZW50cy9tb2RlbHMvSUV2ZW50JztcbmltcG9ydCByZWRQaW5SZWRTaGFkb3cgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL3BvaW50X2ljb25zL3JlZC1waW4tcmVkLXNoYWRvdy5wbmcnO1xuaW1wb3J0IHdoaXRlUGluUmVkU2hhZG93IGZyb20gJy4uLy4uLy4uL2Fzc2V0cy9wb2ludF9pY29ucy93aGl0ZS1waW4tcmVkLXNoYWRvdy5wbmcnO1xuaW1wb3J0IHdoaXRlUGluQmxhY2tTaGFkb3cgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL3BvaW50X2ljb25zL3doaXRlLXBpbi1ibGFjay1zaGFkb3cucG5nJztcbmltcG9ydCB5ZWxsb3dDaXJjbGVVUkwgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL3BvaW50X2ljb25zL3llbGxvdy1jaXJjbGUuc3ZnJztcbmltcG9ydCBwbGFudEljb25VUkwgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL3BvaW50X2ljb25zL2ZhY3RvcnktaWNvbi5zdmcnO1xuaW1wb3J0IGdyZWVuQ2lyY2xlVVJMIGZyb20gJy4uLy4uLy4uL2Fzc2V0cy9wb2ludF9pY29ucy9ncmVlbi1jaXJjbGUuc3ZnJztcbmltcG9ydCBwdW1wU3RhdGlvbkljb25VUkwgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL3BvaW50X2ljb25zL3B1bXAtc3RhdGlvbi1pY29uLnN2Zyc7XG5pbXBvcnQgY29sbGVjdG9ySWNvbiBmcm9tICcuLi8uLi8uLi9hc3NldHMvbWFwL3Bpbi13YXRlci5zdmcnO1xuaW1wb3J0IGJyaWdodEJsdWVDaXJjbGVVUkwgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL3BvaW50X2ljb25zL2JyaWdodC1ibHVlLWNpcmNsZS5zdmcnO1xuaW1wb3J0IFdXVFBJY29uVVJMIGZyb20gJy4uLy4uLy4uL2Fzc2V0cy9wb2ludF9pY29ucy9XV1RQLWljb24uc3ZnJztcbmltcG9ydCB3YXRlckljb25Ob0JhY2tncm91bmQgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL3BvaW50X2ljb25zL3dhdGVyLW5vLWJhY2tncm91bmQuc3ZnJztcbmltcG9ydCB3aGl0ZVBvaW50IGZyb20gJy4uLy4uLy4uL2Fzc2V0cy93aGl0ZS1wb2ludC5wbmcnO1xuaW1wb3J0IHsgZXZlbnRzQ291bnRJY29uIH0gZnJvbSAnLi4vTWFwVXRpbHMnO1xuaW1wb3J0IHsgZ2V0UG9pbnRJY29uQnlUeXBlIH0gZnJvbSAnLi9Qb2ludEljb24nO1xuaW1wb3J0IHdhdGVyUmV1c2VJY29uIGZyb20gJy4uLy4uLy4uL2Fzc2V0cy9pY29ucy93YXRlcl9yZXVzZS5zdmcnO1xuaW1wb3J0IHsgc2VuZEFuYWx5dGljc0V2ZW50IH0gZnJvbSAnc3JjL3BhZ2VzL0Rhc2hib2FyZE1hcC91dGlscyc7XG5cbmV4cG9ydCBjb25zdCBpc0NvbGxlY3RvckZvY3VzZWQgPSAocG9pbnQ6IElQb2ludCwgZXZlbnQ6IElFdmVudCkgPT4ge1xuICByZXR1cm4gKFxuICAgIGV2ZW50Py5vYnNlcnZhdGlvbnM/Lmxlbmd0aCA9PT0gMSAmJlxuICAgIHBvaW50LmlkID09PSBldmVudC5vYnNlcnZhdGlvbnNbMF0ucG9pbnRfaWRcbiAgKTtcbn07XG5cbmNvbnN0IGJ1aWxkTWFuaG9sZVRvb2x0aXBTdHJpbmcgPSAocG9pbnQ6IElQb2ludCkgPT4ge1xuICBsZXQgc3RyaW5nID0gYCR7cG9pbnQuZ3JvdXAubmFtZX0gYDtcblxuICBpZiAocG9pbnRJc0ZhY3RvcnkocG9pbnQpKSB7XG4gICAgc3RyaW5nICs9IGA8YnIvPlNlY3RvcjogJHtwb2ludC5ncm91cC5zZWN0b3JfbmFtZX1gO1xuICAgIHN0cmluZyArPSBgPGJyLz5XYXRlciBDb25zdW1wdGlvbjogJHtwb2ludC5ncm91cC53YXRlcl9kaXNjaGFyZ2V9YDtcbiAgfSBlbHNlIHtcbiAgICBzdHJpbmcgPSBgJHtwb2ludC5uYW1lfWA7XG4gIH1cblxuICByZXR1cm4gc3RyaW5nO1xufTtcblxuZXhwb3J0IGNvbnN0IGJ1YmJsZUZvcldXVFAgPSAoYXJncykgPT4ge1xuICBjb25zdCBwb2ludEN1c3RvbUljb246IEwuTWFya2VyID0gTC5tYXJrZXIoYXJncy5tYXJrZXJMb2NhdGlvbiwge1xuICAgIGljb246IGdldEljb24oYXJncy53d3RwUG9pbnQsIGZhbHNlKSxcbiAgICByaXNlT25Ib3ZlcjogdHJ1ZSxcbiAgfSk7XG4gIHBvaW50Q3VzdG9tSWNvblsna2FuZG9fb2JqZWN0X2lkJ10gPSBhcmdzLnd3dHBQb2ludC5pZDtcbiAgcG9pbnRDdXN0b21JY29uWydrYW5kb19vYmplY3QnXSA9ICdQb2ludCc7XG5cbiAgcmV0dXJuIHBvaW50Q3VzdG9tSWNvbjtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVCdWJibGVQb2ludCA9IChcbiAgbWFya2VyTG9jYXRpb246IExhdExuZ1R1cGxlLFxuICBwb2ludDogSVBvaW50LFxuICBtYXAsXG4gIGhvdmVyZWQ/LFxuICBsYXllckdyb3VwPyxcbiAgZmxvd19yYXRlX3VuaXQgPSAnZ2RfdXMnLFxuICBoYW5kbGVDbGljaz8sXG4pID0+IHtcbiAgY29uc3Qgc3VidGl0bGUgPSBwb2ludElzRmFjdG9yeShwb2ludCkgPyBwb2ludC5ncm91cC5zZWN0b3JfbmFtZSA6ICcnO1xuICBsZXQgcG9pbnRDdXN0b21JY29uOiBMLk1hcmtlciA9IEwubWFya2VyKG1hcmtlckxvY2F0aW9uLCB7XG4gICAgaWNvbjogZ2V0UG9pbnRJY29uQnlUeXBlKFxuICAgICAgcG9pbnQuZ3JvdXAudHlwZSxcbiAgICAgIHBvaW50Lm5hbWUsXG4gICAgICBzdWJ0aXRsZSxcbiAgICAgIGZhbHNlLFxuICAgICAgdHJ1ZSxcbiAgICAgIGZhbHNlLFxuICAgICAgcG9pbnQuaGFzX3NhbXBsZXIsXG4gICAgKSxcbiAgICByaXNlT25Ib3ZlcjogdHJ1ZSxcbiAgfSk7XG4gIC8vIEB0cy1pZ25vcmVcbiAgLy8gcG9pbnRDdXN0b21JY29uLmJpbmRUb29sdGlwKGJ1aWxkTWFuaG9sZVRvb3RpcFN0cmluZyhwb2ludCkpO1xuICBwb2ludEN1c3RvbUljb25bJ2thbmRvX29iamVjdF9pZCddID0gcG9pbnQuaWQ7XG4gIHBvaW50Q3VzdG9tSWNvblsna2FuZG9fb2JqZWN0J10gPSAnUG9pbnQnO1xuICBwb2ludEN1c3RvbUljb25bJ2thbmRvX2hhc19kZXZpY2UnXSA9IHBvaW50Lmhhc19kZXZpY2U7XG4gIGlmIChob3ZlcmVkKSBwb2ludEN1c3RvbUljb25bJ2thbmRvX29iamVjdCddID0gJ1BvaW50SG92ZXJlZCc7XG4gIGNvbnN0IG1hcmtlck9uTWFwID0gbGF5ZXJHcm91cFxuICAgIC5nZXRMYXllcnMoKVxuICAgIC5maW5kKChsYXllcikgPT4gbGF5ZXIua2FuZG9fb2JqZWN0X2lkID09PSBwb2ludC5pZCk7XG5cbiAgLy8gbGV0IHBvaW50Q3VzdG9tSWNvbjogTC5NYXJrZXIgPSBtYXJrZXJPbk1hcFxuICAvLyAgID8gbWFya2VyT25NYXBcbiAgLy8gICA6IEwubWFya2VyKG1hcmtlckxvY2F0aW9uLCB7XG4gIC8vICAgICAgIGljb246IGdldEljb24ocG9pbnQsIGZhbHNlLCBzdWJ0aXRsZSksXG4gIC8vICAgICAgIHJpc2VPbkhvdmVyOiB0cnVlLFxuICAvLyAgICAgfSk7XG5cbiAgaWYgKCFtYXJrZXJPbk1hcCkge1xuICAgIHBvaW50Q3VzdG9tSWNvblsna2FuZG9fb2JqZWN0X2lkJ10gPSBwb2ludC5pZDtcbiAgICBwb2ludEN1c3RvbUljb25bJ2thbmRvX29iamVjdCddID0gJ1BvaW50JztcbiAgICBwb2ludEN1c3RvbUljb25bJ2thbmRvX2hhc19kZXZpY2UnXSA9IHBvaW50Lmhhc19kZXZpY2U7XG4gICAgaWYgKGhvdmVyZWQpIHBvaW50Q3VzdG9tSWNvblsna2FuZG9fb2JqZWN0J10gPSAnUG9pbnRIb3ZlcmVkJztcblxuICAgIGxheWVyR3JvdXAuYWRkTGF5ZXIocG9pbnRDdXN0b21JY29uKTtcbiAgICBpZiAocG9pbnRJc0ZhY3RvcnkocG9pbnQpKSB7XG4gICAgICBiaW5kUG9wdXBUb01hcmtlcihwb2ludCwgcG9pbnRDdXN0b21JY29uLCBmbG93X3JhdGVfdW5pdCk7XG4gICAgfVxuXG4gICAgaGFuZGxlTWFya2VyRXZlbnRzKG1hcCwgcG9pbnQsIHBvaW50Q3VzdG9tSWNvbiwgaGFuZGxlQ2xpY2spO1xuICB9XG5cbiAgLy8gQ29uc2lkZXIgcmVtb3ZpbmcgdGhpcywgaXQncyBub3QgZnVuY3Rpb25hbCBhbmQgbm90dXNlZCBhbnl3aGVyZVxuICBpZiAocG9pbnQucmVsYXRlZEV2ZW50c0Ftb3VudCkge1xuICAgIGxldCBwb2ludEN1c3RvbUljb24gPSBMLm1hcmtlcihtYXJrZXJMb2NhdGlvbiwge1xuICAgICAgaWNvbjogTC5kaXZJY29uKHtcbiAgICAgICAgY2xhc3NOYW1lOiBgXG4gICAgICAgICAgJHtcbiAgICAgICAgICAgIHBvaW50LnJlbGF0ZWRFdmVudHNBbW91bnQgPj0gMTAwXG4gICAgICAgICAgICAgID8gJ2NpcmNsZS1ldmVudHMtYW1vdW50IGNpcmNsZS1ldmVudHMtYW1vdW50LS10cmlkaWdpdCdcbiAgICAgICAgICAgICAgOiAnY2lyY2xlLWV2ZW50cy1hbW91bnQnXG4gICAgICAgICAgfSBcbiAgICAgICAgICAke3BvaW50LnJlbGF0ZWRFdmVudHNBbW91bnQgPiAyID8gJ2FsZXJ0LWNvbG9yJyA6ICcnfVxuICAgICAgICAgICAgYCxcbiAgICAgICAgaHRtbDogYDxwPiR7cG9pbnQucmVsYXRlZEV2ZW50c0Ftb3VudH08L3A+YCxcbiAgICAgICAgaWNvbkFuY2hvcjogZXZlbnRzQ291bnRJY29uKG1hcC5fem9vbSkuaWNvbkFuY2hvcixcbiAgICAgIH0pLFxuICAgICAgcmlzZU9uSG92ZXI6IGZhbHNlLFxuICAgICAgb3BhY2l0eTogaG92ZXJlZCA/IDEgOiAwLFxuICAgIH0pO1xuXG4gICAgcG9pbnRDdXN0b21JY29uWydrYW5kb19vYmplY3RfaWQnXSA9IHBvaW50LmlkO1xuICAgIHBvaW50Q3VzdG9tSWNvblsna2FuZG9fb2JqZWN0J10gPSAnSWNvbk51bWJlcic7XG4gICAgaWYgKGhvdmVyZWQpIHBvaW50Q3VzdG9tSWNvblsna2FuZG9fb2JqZWN0J10gPSAnSWNvbk51bWJlckhvdmVyZWQnO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlTWFuaG9sZVBvaW50ID0gKFxuICBtYXJrZXJMb2NhdGlvbjogTGF0TG5nVHVwbGUsXG4gIHBvaW50OiBJUG9pbnQsXG4gIG1hcCxcbiAgaG92ZXJlZD8sXG4gIGxheWVyR3JvdXA/LFxuKSA9PiB7XG4gIGxldCBwb2ludEljb24gPSBuZXcgTC5JY29uKHtcbiAgICBpY29uVXJsOiB3aGl0ZVBvaW50LFxuICAgIGljb25TaXplOiBbOSwgOV0sXG4gICAgaWNvbkFuY2hvcjogWzQuNSwgNC41XSxcbiAgfSk7XG4gIGxldCBtYW5ob2xlSWNvbjogYW55ID0gbmV3IEwuTWFya2VyKG1hcmtlckxvY2F0aW9uLCB7XG4gICAgaWNvbjogcG9pbnRJY29uLFxuICAgIHJpc2VPbkhvdmVyOiB0cnVlLFxuICB9KTtcbiAgbWFuaG9sZUljb24uYmluZFRvb2x0aXAoYnVpbGRNYW5ob2xlVG9vbHRpcFN0cmluZyhwb2ludCkpO1xuICBtYW5ob2xlSWNvblsna2FuZG9fb2JqZWN0X2lkJ10gPSBwb2ludC5pZDtcbiAgbWFuaG9sZUljb25bJ2thbmRvX29iamVjdCddID0gJ1BvaW50JztcbiAgbWFuaG9sZUljb25bJ2thbmRvX3BvaW50X3R5cGUnXSA9ICdNYW5ob2xlJztcbiAgaWYgKGhvdmVyZWQpIG1hbmhvbGVJY29uWydrYW5kb19vYmplY3QnXSA9ICdQb2ludEhvdmVyZWQnO1xuICBsYXllckdyb3VwLmFkZExheWVyKG1hbmhvbGVJY29uKTtcbn07XG5cbmV4cG9ydCBjb25zdCBtYXRjaEljb25Ub1BvaW50ID0gKHBvaW50OiBJUG9pbnQsIGV2ZW50OiBJRXZlbnQpID0+IHtcbiAgc3dpdGNoIChwb2ludC5ncm91cC50eXBlKSB7XG4gICAgY2FzZSAnR3JvdXBzOjpGYWN0b3J5JzpcbiAgICAgIGlmIChjb21iaW5lZEZhY3RvcnlJY29uLmxlbmd0aCA9PT0gMikge1xuICAgICAgICBpZiAobWFya2VyQmVsb25nc1RvU2VsZWN0ZWRTb3VyY2UoZXZlbnQsIHBvaW50KSkge1xuICAgICAgICAgIGNvbWJpbmVkRmFjdG9yeUljb24udW5zaGlmdChzZWxlY3RlZEJhY2tncm91bmQoKSk7XG4gICAgICAgIH0gZWxzZSBpZiAobWFya2VyQmVsb25nc1RvU291cmNlKGV2ZW50LCBwb2ludCkpIHtcbiAgICAgICAgICBjb21iaW5lZEZhY3RvcnlJY29uLnVuc2hpZnQoYmVsb25nc1RvU291cmNlQmFja2dyb3VuZCgpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb21iaW5lZEZhY3RvcnlJY29uLnVuc2hpZnQoc3RhbmRhcmRCYWNrZ3JvdW5kKCkpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjb21iaW5lZEZhY3RvcnlJY29uO1xuICAgIGNhc2UgJ0dyb3Vwczo6UHVtcFN0YXRpb24nOlxuICAgICAgaWYgKGNvbWJpbmVkUHVtcFN0YXRpb25JY29uLmxlbmd0aCA9PT0gMikge1xuICAgICAgICBpZiAobWFya2VyQmVsb25nc1RvU2VsZWN0ZWRTb3VyY2UoZXZlbnQsIHBvaW50KSkge1xuICAgICAgICAgIGNvbWJpbmVkUHVtcFN0YXRpb25JY29uLnVuc2hpZnQoc2VsZWN0ZWRCYWNrZ3JvdW5kKCkpO1xuICAgICAgICB9IGVsc2UgaWYgKG1hcmtlckJlbG9uZ3NUb1NvdXJjZShldmVudCwgcG9pbnQpKSB7XG4gICAgICAgICAgY29tYmluZWRQdW1wU3RhdGlvbkljb24udW5zaGlmdChiZWxvbmdzVG9Tb3VyY2VCYWNrZ3JvdW5kKCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbWJpbmVkUHVtcFN0YXRpb25JY29uLnVuc2hpZnQoc3RhbmRhcmRCYWNrZ3JvdW5kKCkpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjb21iaW5lZFB1bXBTdGF0aW9uSWNvbjtcbiAgICBjYXNlICdHcm91cHM6Oldhc3Rld2F0ZXJUcmVhdG1lbnRQbGFudCc6XG4gICAgICBpZiAoY29tYmluZWRXV1RQSWNvbi5sZW5ndGggPT09IDIpIHtcbiAgICAgICAgaWYgKG1hcmtlckJlbG9uZ3NUb1NlbGVjdGVkU291cmNlKGV2ZW50LCBwb2ludCkpIHtcbiAgICAgICAgICBjb21iaW5lZFdXVFBJY29uLnVuc2hpZnQoc2VsZWN0ZWRCYWNrZ3JvdW5kKCkpO1xuICAgICAgICB9IGVsc2UgaWYgKG1hcmtlckJlbG9uZ3NUb1NvdXJjZShldmVudCwgcG9pbnQpKSB7XG4gICAgICAgICAgY29tYmluZWRXV1RQSWNvbi51bnNoaWZ0KGJlbG9uZ3NUb1NvdXJjZUJhY2tncm91bmQoKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29tYmluZWRXV1RQSWNvbi51bnNoaWZ0KHN0YW5kYXJkQmFja2dyb3VuZCgpKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gY29tYmluZWRXV1RQSWNvbjtcblxuICAgIGNhc2UgJ0dyb3Vwczo6Q29sbGVjdG9ycyc6XG4gICAgICBpZiAoaXNDb2xsZWN0b3JGb2N1c2VkKHBvaW50LCBldmVudCkpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICBMLmljb24oe1xuICAgICAgICAgICAgaWNvblVybDogcmVkUGluUmVkU2hhZG93LFxuICAgICAgICAgICAgaWNvblNpemU6IFswLCAwXSxcbiAgICAgICAgICAgIGljb25BbmNob3I6IFszMCwgNTJdLFxuICAgICAgICAgIH0pLFxuXG4gICAgICAgICAgTC5pY29uKHtcbiAgICAgICAgICAgIGljb25Vcmw6IHdhdGVySWNvbk5vQmFja2dyb3VuZCxcbiAgICAgICAgICAgIGljb25TaXplOiBbMCwgMF0sXG5cbiAgICAgICAgICAgIGljb25BbmNob3I6IFsyMiwgNDRdLFxuICAgICAgICAgICAgcG9wdXBBbmNob3I6IFswLCAtMzBdLFxuICAgICAgICAgIH0pLFxuICAgICAgICBdO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gY29tYmluZWRDb2xsZWN0b3JzSWNvbjtcblxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gbnVsbDtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHN0YW5kYXJkQmFja2dyb3VuZCA9IChcbiAgc2Vjb25kYXJ5OiBib29sZWFuID0gZmFsc2UsXG4gIHRoaXJkOiBib29sZWFuID0gZmFsc2UsXG4pID0+IHtcbiAgcmV0dXJuIEwuaWNvbih7XG4gICAgaWNvblVybDogd2hpdGVQaW5CbGFja1NoYWRvdyxcbiAgICBpY29uU2l6ZTogc2Vjb25kYXJ5ID8gWzAsIDBdIDogWzAsIDBdLFxuICAgIGljb25BbmNob3I6IHNlY29uZGFyeSAmJiB0aGlyZCA/IFstMiwgMTldIDogc2Vjb25kYXJ5ID8gWy0yLCA0NF0gOiBbMjAsIDQyXSxcbiAgICBwb3B1cEFuY2hvcjogWzAsIC0zMF0sXG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGNvbWJpbmVkRmFjdG9yeUljb24gPSBbXG4gIEwuaWNvbih7XG4gICAgaWNvblVybDogeWVsbG93Q2lyY2xlVVJMLFxuICAgIGljb25TaXplOiBbMCwgMF0sXG4gICAgaWNvbkFuY2hvcjogWzEwLjcsIDMzLjddLFxuICAgIHBvcHVwQW5jaG9yOiBbMCwgLTMwXSxcbiAgfSksXG4gIEwuaWNvbih7XG4gICAgaWNvblVybDogcGxhbnRJY29uVVJMLFxuICAgIGljb25TaXplOiBbMCwgMF0sXG4gICAgaWNvbkFuY2hvcjogWzUsIDMwXSxcbiAgICBwb3B1cEFuY2hvcjogWzAsIC0zMF0sXG4gIH0pLFxuXTtcblxuZXhwb3J0IGNvbnN0IGNvbWJpbmVkUHVtcFN0YXRpb25JY29uID0gW1xuICBMLmljb24oe1xuICAgIGljb25Vcmw6IGdyZWVuQ2lyY2xlVVJMLFxuICAgIGljb25TaXplOiBbMCwgMF0sXG4gICAgaWNvbkFuY2hvcjogWzEwLjcsIDMzLjddLFxuICAgIHBvcHVwQW5jaG9yOiBbMCwgLTMwXSxcbiAgfSksXG4gIEwuaWNvbih7XG4gICAgaWNvblVybDogcHVtcFN0YXRpb25JY29uVVJMLFxuICAgIGljb25TaXplOiBbMCwgMF0sXG4gICAgaWNvbkFuY2hvcjogWzcsIDMyXSxcbiAgICBwb3B1cEFuY2hvcjogWzAsIC0zMF0sXG4gIH0pLFxuXTtcblxuZXhwb3J0IGNvbnN0IGNvbWJpbmVkQ29sbGVjdG9yc0ljb24gPSBbXG4gIEwuaWNvbih7XG4gICAgaWNvblVybDogY29sbGVjdG9ySWNvbixcbiAgICBpY29uU2l6ZTogWzAsIDBdLFxuXG4gICAgaWNvbkFuY2hvcjogWzI1LCA1MF0sXG4gICAgcG9wdXBBbmNob3I6IFswLCAtMzBdLFxuICB9KSxcbl07XG5cbmV4cG9ydCBjb25zdCBjb21iaW5lZFdXVFBJY29uID0gW1xuICBMLmljb24oe1xuICAgIGljb25Vcmw6IGJyaWdodEJsdWVDaXJjbGVVUkwsXG4gICAgaWNvblNpemU6IFswLCAwXSxcbiAgICBpY29uQW5jaG9yOiBbMTAuNywgMzMuN10sXG4gICAgcG9wdXBBbmNob3I6IFswLCAtMzBdLFxuICB9KSxcbiAgTC5pY29uKHtcbiAgICBpY29uVXJsOiBXV1RQSWNvblVSTCxcbiAgICBpY29uU2l6ZTogWzAsIDBdLFxuICAgIGljb25BbmNob3I6IFs4LCAzMV0sXG4gICAgcG9wdXBBbmNob3I6IFswLCAtMzBdLFxuICB9KSxcbl07XG5cbmV4cG9ydCBjb25zdCBzZWxlY3RlZEJhY2tncm91bmQgPSAoKSA9PiB7XG4gIHJldHVybiBMLmljb24oe1xuICAgIGljb25Vcmw6IHJlZFBpblJlZFNoYWRvdyxcbiAgICBpY29uU2l6ZTogWzAsIDBdLFxuICAgIGljb25BbmNob3I6IFszMiwgNTRdLFxuICAgIHBvcHVwQW5jaG9yOiBbMCwgLTMwXSxcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgYmVsb25nc1RvU291cmNlQmFja2dyb3VuZCA9ICgpID0+IHtcbiAgcmV0dXJuIEwuaWNvbih7XG4gICAgaWNvblVybDogd2hpdGVQaW5SZWRTaGFkb3csXG4gICAgaWNvblNpemU6IFswLCAwXSxcbiAgICBpY29uQW5jaG9yOiBbMzIsIDU0XSxcbiAgICBwb3B1cEFuY2hvcjogWzAsIC0zMF0sXG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IG1hcmtlckJlbG9uZ3NUb1NlbGVjdGVkU291cmNlID0gKGV2ZW50OiBJRXZlbnQsIHBvaW50OiBJUG9pbnQpID0+IHtcbiAgbGV0IHNvdXJjZTtcblxuICBpZiAoZXZlbnQgIT09IG51bGwgJiYgZXZlbnQgIT09IHVuZGVmaW5lZCkge1xuICAgIHNvdXJjZSA9IGV2ZW50LnNvdXJjZXMuZmlsdGVyKChzb3VyY2UpID0+IHNvdXJjZS5wb2ludF9pZCA9PT0gcG9pbnQuaWQpWzBdO1xuICB9XG5cbiAgcmV0dXJuIGV2ZW50ICE9PSBudWxsICYmIHNvdXJjZSAmJiBldmVudC5zZWxlY3RlZF9zb3VyY2UgPT09IHNvdXJjZS5wb2ludF9pZDtcbn07XG5cbmV4cG9ydCBjb25zdCBtYXJrZXJCZWxvbmdzVG9Tb3VyY2UgPSAoZXZlbnQ6IElFdmVudCwgcG9pbnQ6IElQb2ludCkgPT4ge1xuICBpZiAoZXZlbnQgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xuICByZXR1cm4gKFxuICAgIGV2ZW50ICE9PSBudWxsICYmXG4gICAgZXZlbnQuc291cmNlcy5maWx0ZXIoKHNvdXJjZSkgPT4gc291cmNlLnBvaW50X2lkID09PSBwb2ludC5pZClbMF1cbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVTYW1wbGluZ0ljb25Qb2ludCA9IChcbiAgbWFya2VyTG9jYXRpb246IExhdExuZ1R1cGxlLFxuICBzZWNvbmRhcnlJY29uOiBib29sZWFuLFxuICBtYXAsXG4gIHBvaW50OiBJUG9pbnQsXG4gIGV2ZW50OiBJRXZlbnQsXG4gIGhvdmVyZWQ/LFxuICBsYXllckdyb3VwPyxcbikgPT4ge1xuICAvLyBpY29uU2l6ZTogW3dpZHRoLCBoZWlnaHRdLFxuICAvLyBJY29uIEFuY2hvcjogWygtcmlnaHQpKCtsZWZ0KSwgKC1kb3duKSgrdXApXVxuICBsZXQgc2FtcGxpbmdJY29uID0gW1xuICAgIEwuaWNvbih7XG4gICAgICBpY29uVXJsOiBibHVlQ2lyY2xlVVJMLFxuICAgICAgaWNvblNpemU6IHNlY29uZGFyeUljb24gPyBbMCwgMF0gOiBbMCwgMF0sXG4gICAgICBpY29uQW5jaG9yOiBzZWNvbmRhcnlJY29uID8gWy03LCAxNV0gOiBbMTAuNywgMzMuN10sXG4gICAgICBwb3B1cEFuY2hvcjogWzAsIC0zMF0sXG4gICAgfSksXG4gICAgTC5pY29uKHtcbiAgICAgIGljb25Vcmw6IHNhbXBsaW5nSWNvblVSTCxcbiAgICAgIGljb25TaXplOiBzZWNvbmRhcnlJY29uID8gWzAsIDBdIDogWzAsIDBdLFxuICAgICAgaWNvbkFuY2hvcjogc2Vjb25kYXJ5SWNvbiA/IFstOCwgMTNdIDogWzUsIDMwXSxcbiAgICAgIHBvcHVwQW5jaG9yOiBbMCwgLTMwXSxcbiAgICB9KSxcbiAgXTtcblxuICBsZXQgdGhpcmRJY29uID0gZmFsc2U7XG4gIGlmIChtYXJrZXJCZWxvbmdzVG9TZWxlY3RlZFNvdXJjZShldmVudCwgcG9pbnQpICYmICFzZWNvbmRhcnlJY29uKSB7XG4gICAgc2FtcGxpbmdJY29uLnVuc2hpZnQoc2VsZWN0ZWRCYWNrZ3JvdW5kKCkpO1xuICB9IGVsc2UgaWYgKG1hcmtlckJlbG9uZ3NUb1NvdXJjZShldmVudCwgcG9pbnQpICYmICFzZWNvbmRhcnlJY29uKSB7XG4gICAgc2FtcGxpbmdJY29uLnVuc2hpZnQoYmVsb25nc1RvU291cmNlQmFja2dyb3VuZCgpKTtcbiAgfSBlbHNlIHtcbiAgICB0aGlyZEljb24gPSB0cnVlO1xuICAgIHNhbXBsaW5nSWNvbi51bnNoaWZ0KHN0YW5kYXJkQmFja2dyb3VuZChzZWNvbmRhcnlJY29uLCB0aGlyZEljb24pKTtcbiAgfVxuXG4gIHNhbXBsaW5nSWNvbi5mb3JFYWNoKChpY29uLCBpbmRleCkgPT4ge1xuICAgIGxldCBwb2ludEN1c3RvbUljb246IGFueSA9IEwubWFya2VyKG1hcmtlckxvY2F0aW9uLCB7XG4gICAgICBpY29uOiBpY29uLFxuICAgICAgcmlzZU9uSG92ZXI6IGZhbHNlLFxuICAgIH0pO1xuICAgIHBvaW50Q3VzdG9tSWNvbi5iaW5kVG9vbHRpcChidWlsZE1hbmhvbGVUb29sdGlwU3RyaW5nKHBvaW50KSk7XG4gICAgcG9pbnRDdXN0b21JY29uWydrYW5kb19pbmRleF9vYmplY3QnXSA9IGluZGV4O1xuICAgIHBvaW50Q3VzdG9tSWNvblsna2FuZG9fZmV3X2xheWVyX2ljb24nXSA9IHRydWU7XG4gICAgcG9pbnRDdXN0b21JY29uWydrYW5kb19zZWNvbmRhcnknXSA9IHRoaXJkSWNvbiA/IGZhbHNlIDogc2Vjb25kYXJ5SWNvbjtcbiAgICBwb2ludEN1c3RvbUljb25bJ2thbmRvX3RoaXJkJ10gPSB0aGlyZEljb247XG4gICAgcG9pbnRDdXN0b21JY29uWydrYW5kb19vYmplY3RfaWQnXSA9IHBvaW50LmlkO1xuICAgIHBvaW50Q3VzdG9tSWNvblsna2FuZG9fb2JqZWN0J10gPSAnU2FtcGxpbmcnO1xuICAgIGlmIChob3ZlcmVkKSBwb2ludEN1c3RvbUljb25bJ2thbmRvX29iamVjdCddID0gJ1NhbXBsaW5nSG92ZXJlZCc7XG4gICAgbGF5ZXJHcm91cC5hZGRMYXllcihwb2ludEN1c3RvbUljb24pO1xuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVPYnNlcnZhdGlvbkljb25Qb2ludCA9IChcbiAgbWFya2VyTG9jYXRpb246IExhdExuZ1R1cGxlLFxuICBzZWNvbmRhcnlJY29uOiBib29sZWFuLFxuICBtYXAsXG4gIHBvaW50OiBJUG9pbnQsXG4gIGV2ZW50OiBJRXZlbnQsXG4gIGhvdmVyZWQ/LFxuICBsYXllckdyb3VwPyxcbikgPT4ge1xuICAvLyBpY29uU2l6ZTogW3dpZHRoLCBoZWlnaHRdLFxuICAvLyBJY29uIEFuY2hvcjogWygtcmlnaHQpKCtsZWZ0KSwgKC1kb3duKSgrdXApXVxuICBsZXQgb2JzZXJ2YXRpb25JY29uID0gW1xuICAgIEwuaWNvbih7XG4gICAgICBpY29uVXJsOiBwaW5rQ2lyY2xlVVJMLFxuICAgICAgaWNvblNpemU6IHNlY29uZGFyeUljb24gPyBbMCwgMF0gOiBbMCwgMF0sXG4gICAgICBpY29uQW5jaG9yOiBzZWNvbmRhcnlJY29uID8gWy03LCA0MF0gOiBbMTAuNywgMzMuN10sXG4gICAgICBwb3B1cEFuY2hvcjogWzAsIC0zMF0sXG4gICAgfSksXG4gICAgTC5pY29uKHtcbiAgICAgIGljb25Vcmw6IG9ic2VydmF0aW9uSWNvblVSTCxcbiAgICAgIGljb25TaXplOiBzZWNvbmRhcnlJY29uID8gWzAsIDBdIDogWzAsIDBdLFxuICAgICAgaWNvbkFuY2hvcjogc2Vjb25kYXJ5SWNvbiA/IFstOCwgMzhdIDogWzUsIDMwXSxcbiAgICAgIHBvcHVwQW5jaG9yOiBbMCwgLTMwXSxcbiAgICB9KSxcbiAgXTtcblxuICBpZiAobWFya2VyQmVsb25nc1RvU2VsZWN0ZWRTb3VyY2UoZXZlbnQsIHBvaW50KSAmJiAhc2Vjb25kYXJ5SWNvbikge1xuICAgIG9ic2VydmF0aW9uSWNvbi51bnNoaWZ0KHNlbGVjdGVkQmFja2dyb3VuZCgpKTtcbiAgfSBlbHNlIGlmIChtYXJrZXJCZWxvbmdzVG9Tb3VyY2UoZXZlbnQsIHBvaW50KSAmJiAhc2Vjb25kYXJ5SWNvbikge1xuICAgIG9ic2VydmF0aW9uSWNvbi51bnNoaWZ0KGJlbG9uZ3NUb1NvdXJjZUJhY2tncm91bmQoKSk7XG4gIH0gZWxzZSB7XG4gICAgb2JzZXJ2YXRpb25JY29uLnVuc2hpZnQoc3RhbmRhcmRCYWNrZ3JvdW5kKHNlY29uZGFyeUljb24pKTtcbiAgfVxuXG4gIG9ic2VydmF0aW9uSWNvbi5mb3JFYWNoKChpY29uLCBpbmRleCkgPT4ge1xuICAgIGxldCBwb2ludEN1c3RvbUljb246IGFueSA9IEwubWFya2VyKG1hcmtlckxvY2F0aW9uLCB7XG4gICAgICBpY29uOiBpY29uLFxuICAgICAgcmlzZU9uSG92ZXI6IGZhbHNlLFxuICAgIH0pO1xuICAgIHBvaW50Q3VzdG9tSWNvbi5iaW5kVG9vbHRpcChidWlsZE1hbmhvbGVUb29sdGlwU3RyaW5nKHBvaW50KSk7XG4gICAgcG9pbnRDdXN0b21JY29uWydrYW5kb19pbmRleF9vYmplY3QnXSA9IGluZGV4O1xuICAgIHBvaW50Q3VzdG9tSWNvblsna2FuZG9fZmV3X2xheWVyX2ljb24nXSA9IHRydWU7XG4gICAgcG9pbnRDdXN0b21JY29uWydrYW5kb19zZWNvbmRhcnknXSA9IHNlY29uZGFyeUljb247XG4gICAgcG9pbnRDdXN0b21JY29uWydrYW5kb190aGlyZCddID0gZmFsc2U7XG4gICAgcG9pbnRDdXN0b21JY29uWydrYW5kb19vYmplY3RfaWQnXSA9IHBvaW50LmlkO1xuICAgIHBvaW50Q3VzdG9tSWNvblsna2FuZG9fb2JqZWN0J10gPSAnT2JzZXJ2YXRpb24nO1xuICAgIGlmIChob3ZlcmVkKSBwb2ludEN1c3RvbUljb25bJ2thbmRvX29iamVjdCddID0gJ09ic2VydmF0aW9uSG92ZXJlZCc7XG4gICAgbGF5ZXJHcm91cC5hZGRMYXllcihwb2ludEN1c3RvbUljb24pO1xuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVTYW1wbGluZ0ljb25zID0gKFxuICBtYXJrZXJMb2NhdGlvbjogTGF0TG5nVHVwbGUsXG4gIGV2ZW50OiBJRXZlbnQsXG4gIHBvaW50OiBJUG9pbnQsXG4gIG1hcCxcbiAgaG92ZXJlZCxcbiAgbGF5ZXJHcm91cD8sXG4pID0+IHtcbiAgbGV0IHNhbXBsZWRQb2ludElkcyA9IGV2ZW50LnNhbXBsaW5ncy5tYXAoKHMpID0+IHMucG9pbnRfaWQpO1xuICBpZiAoXG4gICAgZXZlbnQgIT09IG51bGwgJiZcbiAgICBldmVudC5zYW1wbGluZ3MubGVuZ3RoICE9PSAwICYmXG4gICAgc2FtcGxlZFBvaW50SWRzLmluY2x1ZGVzKHBvaW50LmlkKVxuICApIHtcbiAgICBjcmVhdGVTYW1wbGluZ0ljb25Qb2ludChcbiAgICAgIG1hcmtlckxvY2F0aW9uLFxuICAgICAgbWF0Y2hJY29uVG9Qb2ludChwb2ludCwgZXZlbnQpICE9PSBudWxsLFxuICAgICAgbWFwLFxuICAgICAgcG9pbnQsXG4gICAgICBldmVudCxcbiAgICAgIGhvdmVyZWQsXG4gICAgICBsYXllckdyb3VwLFxuICAgICk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBwb3B1cENvbnRlbnQgPSAob2JzOiBhbnksIHBvaW50OiBJUG9pbnQpID0+IHtcbiAgaWYgKG9icyA9PT0gbnVsbCkge1xuICAgIHJldHVybiBgXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXZlbnQtcG9wdXBcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9wdXAtZ3JhcGgtaWNvbiBwb3B1cC1ncmFwaC1pY29uLSR7cG9pbnQuaWR9XCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiJHtHcmFwaEljb259XCIvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3B1cC1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgIDxoNSBjbGFzcz1cInBvcHVwLWNvbnRlbnRfX3NpdGUtbmFtZVwiPjxiPiR7cG9pbnQuZ3JvdXAubmFtZX08L2I+PC9oNT5cbiAgICAgICAgICAgICAgICAgICAgPGhyLz5cbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJzZWN0b3JcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgYDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gYFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV2ZW50LXBvcHVwXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvcHVwLWdyYXBoLWljb24gcG9wdXAtZ3JhcGgtaWNvbi0ke29icy5pZH1cIj5cbiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIke0dyYXBoSWNvbn1cIi8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvcHVwLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGg1IGNsYXNzPVwicG9wdXAtY29udGVudF9fc2l0ZS1uYW1lXCI+PGI+JHtcbiAgICAgICAgICAgICAgICAgICAgICBwb2ludC5ncm91cC5uYW1lXG4gICAgICAgICAgICAgICAgICAgIH08L2I+PC9oNT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvcHVwLWNvbnRlbnRfX3NldmVyaXR5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInBvcHVwLWNvbnRlbnRfX3NldmVyaXR5LXBcIj4ke2kxOG4udChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYGV2ZW50c19vdmVydmlldy5zZXZlcml0eWAsXG4gICAgICAgICAgICAgICAgICAgICAgICApfTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiJHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BvcHVwLWNvbnRlbnRfX3NldmVyaXR5LS0nICsgb2JzLnNldmVyaXR5XG4gICAgICAgICAgICAgICAgICAgICAgICB9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGIgY2xhc3M9XCJwb3B1cC1jb250ZW50X19zZXZlcml0eS1iXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7aTE4bi50KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBldmVudHNfb3ZlcnZpZXcuc2V2ZXJpdGllcy4ke29icy5zZXZlcml0eX1gLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICA8aHIgY2xhc3M9XCJwb3B1cC1jb250ZW50X19oclwiIC8+XG5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvcHVwLWNvbnRlbnRfX2Rpc2NoYXJnZS10aW1lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwicG9wdXAtY29udGVudF9fc2V2ZXJpdHktcFwiPiR7aTE4bi50KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGV2ZW50c19vdmVydmlldy5maXJzdF9zZWVuYCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApfTo8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PGIgaWQ9XCJmaXJzdC1zZWVuLXBvcHVwXCI+PC9iPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInBvcHVwLWNvbnRlbnRfX3NldmVyaXR5LXBcIj4ke2kxOG4udChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBldmVudHNfb3ZlcnZpZXcubGFzdF9zZWVuYCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApfTo8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PGIgaWQ9XCJsYXN0LXNlZW4tcG9wdXBcIj48L2I+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIGA7XG4gIH1cbn07XG5cbmNvbnN0IGdldEljb24gPSAocG9pbnQ6IElQb2ludCwgY2xpY2tlZDogYm9vbGVhbiwgc3VidGl0bGU/OiBzdHJpbmcpID0+IHtcbiAgY29uc3QgaXNXV1RQID0gcG9pbnQuZ3JvdXAudHlwZSA9PT0gJ0dyb3Vwczo6V2FzdGV3YXRlclRyZWF0bWVudFBsYW50JztcbiAgY29uc3QgdHlwZSA9XG4gICAgcG9pbnQuaGFzX2RldmljZSB8fCBpc1dXVFAgPyBwb2ludC5ncm91cC50eXBlIDogJ0dyb3Vwczo6ZGVmYXVsdCc7XG4gIGxldCBzdWJ0aXRsZVRleHQgPSBzdWJ0aXRsZSA/IHN1YnRpdGxlIDogcG9pbnQuZ3JvdXAuc2VjdG9yX25hbWU7XG4gIGlmIChpc1dXVFAgJiYgIXBvaW50Lmhhc19kZXZpY2UpIHtcbiAgICBzdWJ0aXRsZVRleHQgKz0gYCAoJHtpMThuLnQoXG4gICAgICAnZGFzaGJvYXJkX3YyLnV0aWxpdHlfZGFzaGJvYXJkLnRvcGJhci5xdWFsaXR5LXN1bW1hcnkudW5tb25pdG9yZWQnLFxuICAgICl9KWA7XG4gIH1cbiAgcmV0dXJuIGdldFBvaW50SWNvbkJ5VHlwZShcbiAgICB0eXBlLFxuICAgIHBvaW50Lm5hbWUsXG4gICAgc3VidGl0bGVUZXh0LFxuICAgIGNsaWNrZWQsXG4gICAgIWNsaWNrZWQsXG4gICAgZmFsc2UsXG4gICAgcG9pbnQuaGFzX3NhbXBsZXIsXG4gICk7XG59O1xuXG5leHBvcnQgY29uc3Qgc2V0SWNvbiA9IChlbGVtZW50LCBjbGlja2VkLCBwb2ludCwgc3VidGl0bGUpID0+IHtcbiAgZWxlbWVudC5zZXRJY29uKGdldEljb24ocG9pbnQsIGNsaWNrZWQsIHN1YnRpdGxlKSk7XG59O1xuXG4vLyByb3VuZCB0byBuZWFyZXN0IHRob3VzYW5kIGlzIHVzZWQgd2hlbiB5b3Ugd2FudCB0byByb3VuZCB0aGUgd2F0ZXIgY29uc3VtcHRpb24gdG8gdGhlIG5lYXJlc3QgdGhvdXNhbmRcbi8vIGZvciBleGFtcGxlOiAyMzQsNTY3IC0+IDIzNSwwMDBcbmV4cG9ydCBjb25zdCBjYWxjdWxhdGVXYXRlckNvbnN1bXB0aW9uID0gKFxuICBmbG93X3JhdGVfdW5pdDogc3RyaW5nLFxuICB3YXRlckNvbnN1bXB0aW9uOiBudW1iZXIsXG4gIHJvdW5kX3RvX25lYXJlc3RfazogYm9vbGVhbiA9IGZhbHNlLFxuKSA9PiB7XG4gIGxldCBjYWxjdWxhdGVkID0gJzAnO1xuXG4gIGlmICh3YXRlckNvbnN1bXB0aW9uID4gMCkge1xuICAgIHN3aXRjaCAoZmxvd19yYXRlX3VuaXQpIHtcbiAgICAgIGNhc2UgJ20zZCc6XG4gICAgICAgIGNhbGN1bGF0ZWQgPSB3YXRlckNvbnN1bXB0aW9uLnRvRml4ZWQoMik7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZ2RfdXMnOlxuICAgICAgICBjYWxjdWxhdGVkID0gKHdhdGVyQ29uc3VtcHRpb24gKiAyNjQuMTcyKS50b0ZpeGVkKDIpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2dkX3VrJzpcbiAgICAgICAgY2FsY3VsYXRlZCA9ICh3YXRlckNvbnN1bXB0aW9uICogMjE5Ljk2OSkudG9GaXhlZCgyKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIGlmIChyb3VuZF90b19uZWFyZXN0X2spIHtcbiAgICByZXR1cm4gcm91bmRUb05lYXJlc3RUaG91c2FuZChwYXJzZUZsb2F0KGNhbGN1bGF0ZWQpKS50b0xvY2FsZVN0cmluZygpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBNYXRoLnJvdW5kKHBhcnNlRmxvYXQoY2FsY3VsYXRlZCkpLnRvTG9jYWxlU3RyaW5nKCk7XG4gIH1cbn07XG5cbmNvbnN0IHJvdW5kVG9OZWFyZXN0VGhvdXNhbmQgPSAobnVtYmVyKSA9PiB7XG4gIC8vIGlmKGlzQWxyZWFkeVJvdW5kZWQobnVtYmVyKSkge1xuICAvLyAgIHJldHVybiBudW1iZXI7XG4gIC8vIH1cblxuICBpZiAobnVtYmVyIDwgMTAwMCkge1xuICAgIHJldHVybiBNYXRoLnJvdW5kKG51bWJlcik7XG4gIH1cblxuICBjb25zdCByb3VuZGVkVGhvdXNhbmRzID0gTWF0aC5yb3VuZChudW1iZXIgLyAxMDAwKTtcbiAgY29uc3Qgcm91bmRlZFZhbHVlID0gcm91bmRlZFRob3VzYW5kcyAqIDEwMDA7XG5cbiAgcmV0dXJuIHJvdW5kZWRWYWx1ZTtcbn07XG5cbi8vIGNvbnN0IGlzQWxyZWFkeVJvdW5kZWQgPSAobnVtYmVyKSA9PiB7XG4vLyAgIHJldHVybiBudW1iZXIgPT09IE1hdGgucm91bmQobnVtYmVyKTtcbi8vIH1cblxuZXhwb3J0IGNvbnN0IHRyYW5zbGF0ZUZsb3dSYXRlID0gKGZsb3dfcmF0ZV91bml0KSA9PiB7XG4gIHJldHVybiBpMThuLnQoXG4gICAgYGRhc2hib2FyZF92Mi5wcm9maWxlLmZsb3dfcmF0ZV91bml0X29wdGlvbnMuJHtcbiAgICAgIGZsb3dfcmF0ZV91bml0LmluY2x1ZGVzKCdnZCcpID8gJ2dkJyA6IGZsb3dfcmF0ZV91bml0XG4gICAgfWAsXG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgaGFuZGxlTWFya2VyRXZlbnRzID0gKFxuICBtYXAsXG4gIHBvaW50LFxuICBwb2ludEN1c3RvbUljb24sXG4gIGhhbmRsZUNsaWNrLFxuKSA9PiB7XG4gIGxldCB0b29sdGlwVmlzaWJsZSA9IGZhbHNlO1xuXG4gIG1hcC5vbignem9vbXN0YXJ0JywgZnVuY3Rpb24gKCkge1xuICAgIG1hcC5jbG9zZVBvcHVwKCk7XG4gIH0pO1xuXG4gIHBvaW50Q3VzdG9tSWNvbi5vbigncG9wdXBjbG9zZScsICgpID0+IHtcbiAgICAvLyBzZXRJY29uKHBvaW50Q3VzdG9tSWNvbiwgZmFsc2UsIHBvaW50KTtcbiAgICB0b29sdGlwVmlzaWJsZSA9IGZhbHNlO1xuICB9KTtcblxuICBwb2ludEN1c3RvbUljb24ub24oJ3BvcHVwb3BlbicsICgpID0+IHtcbiAgICAvLyBzZXRJY29uKHBvaW50Q3VzdG9tSWNvbiwgdHJ1ZSwgcG9pbnQpO1xuICAgIHRvb2x0aXBWaXNpYmxlID0gdHJ1ZTtcbiAgfSk7XG5cbiAgcG9pbnRDdXN0b21JY29uLm9uKCdtb3VzZW92ZXInLCAoKSA9PiB7XG4gICAgaWYgKHRvb2x0aXBWaXNpYmxlKSByZXR1cm47XG5cbiAgICBzZXRJY29uKHBvaW50Q3VzdG9tSWNvbiwgdHJ1ZSwgcG9pbnQpO1xuICAgIHRvb2x0aXBWaXNpYmxlID0gdHJ1ZTtcbiAgfSk7XG5cbiAgcG9pbnRDdXN0b21JY29uLm9uKCdtb3VzZW91dCcsICgpID0+IHtcbiAgICBpZiAocG9pbnRDdXN0b21JY29uLmlzUG9wdXBPcGVuKCkpIHJldHVybjtcblxuICAgIHNldEljb24ocG9pbnRDdXN0b21JY29uLCBmYWxzZSwgcG9pbnQpO1xuICAgIHRvb2x0aXBWaXNpYmxlID0gZmFsc2U7XG4gIH0pO1xuXG4gIGlmICh0eXBlb2YgaGFuZGxlQ2xpY2sgPT09ICdmdW5jdGlvbicpIHtcbiAgICBwb2ludEN1c3RvbUljb24ub24oJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgaGFuZGxlQ2xpY2socG9pbnRDdXN0b21JY29uLmthbmRvX29iamVjdF9pZCk7XG5cbiAgICAgIGlmIChwb2ludElzRmFjdG9yeShwb2ludCkpIHtcbiAgICAgICAgc2VuZEFuYWx5dGljc0V2ZW50KCdNYXAgVmlldyAtIEZhY3RvcnkgY2xpY2tlZCcsICdtYXAnLCB7XG4gICAgICAgICAgcG9pbnRfaWQ6IHBvaW50LmlkLFxuICAgICAgICAgIHBvaW50X25hbWU6IHBvaW50Lm5hbWUsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgYmluZFBvcHVwVG9NYXJrZXIgPSAocG9pbnQsIGxheWVyR3JvdXAsIGZsb3dfcmF0ZV91bml0KSA9PiB7XG4gIGxldCBjb250ZW50ID0gYFxuICAgIDxkaXYgY2xhc3M9J21haW4tY29udGVudCc+XG4gICAgICAgIDxkaXYgY2xhc3M9J21haW4tY29udGVudF9faGVhZGVyJz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYWluLWNvbnRlbnRfX2hlYWRlcl9fdGl0bGVzXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nbWFpbi1jb250ZW50X19oZWFkZXJfX3RpdGxlc19fdGl0bGUnPiR7XG4gICAgICAgICAgICAgICAgICBwb2ludC5uYW1lXG4gICAgICAgICAgICAgICAgfTwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9J21haW4tY29udGVudF9faGVhZGVyX190aXRsZXNfX3N1YnRpdGxlJz4ke1xuICAgICAgICAgICAgICAgICAgcG9pbnQuZ3JvdXAuc2VjdG9yX25hbWVcbiAgICAgICAgICAgICAgICB9PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgXG4gICAgICAgIDxkaXYgY2xhc3M9J21haW4tY29udGVudF9fYm9keSc+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPSdtYWluLWNvbnRlbnRfX2JvZHlfX2l0ZW0nPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9J21haW4tY29udGVudF9fYm9keV9faXRlbV9faWNvbic+XG4gICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPScke3dhdGVyUmV1c2VJY29ufScgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdtYWluLWNvbnRlbnRfX2JvZHlfX2l0ZW1fX3RpdGxlcyc+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdtYWluLWNvbnRlbnRfX2JvZHlfX2l0ZW1fX3RpdGxlc19fdGl0bGUnPlxuICAgICAgICAgICAgICAgICAgICAke2dldEZsb3dSYXRlKHBvaW50Lmdyb3VwLndhdGVyX2Rpc2NoYXJnZSwgZmxvd19yYXRlX3VuaXQpfVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdtYWluLWNvbnRlbnRfX2JvZHlfX2l0ZW1fX3RpdGxlc19fc3VidGl0bGUnPiR7aTE4bi50KFxuICAgICAgICAgICAgICAgICAgICAnd2F0ZXJfZGlzY2hhcmdlJyxcbiAgICAgICAgICAgICAgICAgICl9PC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgYDtcblxuICBsYXllckdyb3VwLmJpbmRQb3B1cChjb250ZW50LCB7XG4gICAgY2xhc3NOYW1lOiAncG9pbnQtbWFya2VyLXBvcHVwJyxcbiAgICBtaW5XaWR0aDogJzIxNHB4JyxcbiAgICBtYXhXaWR0aDogJzIxNHB4JyxcbiAgICBjbG9zZUJ1dHRvbjogdHJ1ZSxcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Rmxvd1JhdGUgPSAoXG4gIHdhdGVyQ29uc3VtcHRpb246IG51bWJlcixcbiAgZmxvd1JhdGVVbml0OiBzdHJpbmcsXG4gIGlzUm91bmQ6IGJvb2xlYW4gPSBmYWxzZSxcbikgPT4ge1xuICBpZiAod2F0ZXJDb25zdW1wdGlvbiA+IDApIHtcbiAgICByZXR1cm4gKFxuICAgICAgY2FsY3VsYXRlV2F0ZXJDb25zdW1wdGlvbihmbG93UmF0ZVVuaXQsIHdhdGVyQ29uc3VtcHRpb24sIGlzUm91bmQpICtcbiAgICAgICcgJyArXG4gICAgICB0cmFuc2xhdGVGbG93UmF0ZShmbG93UmF0ZVVuaXQpXG4gICAgKTtcbiAgfVxuICByZXR1cm4gaTE4bi50KCdldmVudHNfb3ZlcnZpZXcuc2V2ZXJpdGllcy51bmtub3duJyk7XG59O1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlTGF5ZXJHcm91cCA9IChtYXAsIGxheWVyR3JvdXApID0+IHtcbiAgaWYgKG1hcC5oYXNMYXllcihsYXllckdyb3VwKSkge1xuICAgIG1hcC5yZW1vdmVMYXllcihsYXllckdyb3VwKTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGFkZExheWVyR3JvdXAgPSAobWFwLCBsYXllckdyb3VwKSA9PiB7XG4gIGlmICghbWFwLmhhc0xheWVyKGxheWVyR3JvdXApKSB7XG4gICAgbWFwLmFkZExheWVyKGxheWVyR3JvdXApO1xuICB9IGVsc2Uge1xuICAgIHJlbW92ZUxheWVyR3JvdXAobWFwLCBsYXllckdyb3VwKTtcbiAgICBhZGRMYXllckdyb3VwKG1hcCwgbGF5ZXJHcm91cCk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBwb2ludElzV1dUUCA9IChwb2ludDogSVBvaW50KSA9PiB7XG4gIHJldHVybiBwb2ludC5ncm91cC50eXBlID09PSAnR3JvdXBzOjpXYXN0ZXdhdGVyVHJlYXRtZW50UGxhbnQnO1xufTtcblxuZXhwb3J0IGNvbnN0IHBvaW50SXNGYWN0b3J5ID0gKHBvaW50OiBJUG9pbnQpID0+IHtcbiAgcmV0dXJuIGlzRmFjdG9yeVR5cGUocG9pbnQuZ3JvdXAudHlwZSk7XG59O1xuXG5leHBvcnQgY29uc3QgaXNGYWN0b3J5VHlwZSA9ICh0eXBlOiBzdHJpbmcpID0+IHtcbiAg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
515
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbGVhZmxldCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2kxOG4iLCJfYmx1ZUNpcmNsZSIsIl9zYW1wbGluZ0ljb24iLCJfcGlua0NpcmNsZSIsIl9vYnNlcnZhdGlvbkljb24iLCJfcmVkUGluUmVkU2hhZG93IiwiX3doaXRlUGluUmVkU2hhZG93IiwiX3doaXRlUGluQmxhY2tTaGFkb3ciLCJfeWVsbG93Q2lyY2xlIiwiX2ZhY3RvcnlJY29uIiwiX2dyZWVuQ2lyY2xlIiwiX3B1bXBTdGF0aW9uSWNvbiIsIl9waW5XYXRlciIsIl9icmlnaHRCbHVlQ2lyY2xlIiwiX1dXVFBJY29uIiwiX3dhdGVyTm9CYWNrZ3JvdW5kIiwiX3doaXRlUG9pbnQiLCJfTWFwVXRpbHMiLCJfUG9pbnRJY29uIiwiX3dhdGVyX3JldXNlIiwiX3V0aWxzIiwiaXNDb2xsZWN0b3JGb2N1c2VkIiwicG9pbnQiLCJldmVudCIsIl9ldmVudCRvYnNlcnZhdGlvbnMiLCJvYnNlcnZhdGlvbnMiLCJsZW5ndGgiLCJpZCIsInBvaW50X2lkIiwiZXhwb3J0cyIsImJ1aWxkTWFuaG9sZVRvb2x0aXBTdHJpbmciLCJzdHJpbmciLCJjb25jYXQiLCJncm91cCIsIm5hbWUiLCJwb2ludElzRmFjdG9yeSIsInNlY3Rvcl9uYW1lIiwid2F0ZXJfZGlzY2hhcmdlIiwiYnViYmxlRm9yV1dUUCIsImFyZ3MiLCJwb2ludEN1c3RvbUljb24iLCJMIiwibWFya2VyIiwibWFya2VyTG9jYXRpb24iLCJpY29uIiwiZ2V0SWNvbiIsInd3dHBQb2ludCIsInJpc2VPbkhvdmVyIiwiaGFzX2RldmljZSIsImhhc19zYW1wbGVyIiwiY3JlYXRlQnViYmxlUG9pbnQiLCJtYXAiLCJob3ZlcmVkIiwibGF5ZXJHcm91cCIsImZsb3dfcmF0ZV91bml0IiwiYXJndW1lbnRzIiwidW5kZWZpbmVkIiwiaGFuZGxlQ2xpY2siLCJzdWJ0aXRsZSIsInR5cGUiLCJnZXRQb2ludEljb25CeVR5cGUiLCJtYXJrZXJPbk1hcCIsImdldExheWVycyIsImZpbmQiLCJsYXllciIsImthbmRvX29iamVjdF9pZCIsImFkZExheWVyIiwiYmluZFBvcHVwVG9NYXJrZXIiLCJoYW5kbGVNYXJrZXJFdmVudHMiLCJyZWxhdGVkRXZlbnRzQW1vdW50IiwiZGl2SWNvbiIsImNsYXNzTmFtZSIsImh0bWwiLCJpY29uQW5jaG9yIiwiZXZlbnRzQ291bnRJY29uIiwiX3pvb20iLCJvcGFjaXR5IiwiY3JlYXRlTWFuaG9sZVBvaW50IiwicG9pbnRJY29uIiwiSWNvbiIsImljb25VcmwiLCJ3aGl0ZVBvaW50IiwiaWNvblNpemUiLCJtYW5ob2xlSWNvbiIsIk1hcmtlciIsImJpbmRUb29sdGlwIiwibWF0Y2hJY29uVG9Qb2ludCIsImNvbWJpbmVkRmFjdG9yeUljb24iLCJtYXJrZXJCZWxvbmdzVG9TZWxlY3RlZFNvdXJjZSIsInVuc2hpZnQiLCJzZWxlY3RlZEJhY2tncm91bmQiLCJtYXJrZXJCZWxvbmdzVG9Tb3VyY2UiLCJiZWxvbmdzVG9Tb3VyY2VCYWNrZ3JvdW5kIiwic3RhbmRhcmRCYWNrZ3JvdW5kIiwiY29tYmluZWRQdW1wU3RhdGlvbkljb24iLCJjb21iaW5lZFdXVFBJY29uIiwicmVkUGluUmVkU2hhZG93Iiwid2F0ZXJJY29uTm9CYWNrZ3JvdW5kIiwicG9wdXBBbmNob3IiLCJjb21iaW5lZENvbGxlY3RvcnNJY29uIiwic2Vjb25kYXJ5IiwidGhpcmQiLCJ3aGl0ZVBpbkJsYWNrU2hhZG93IiwieWVsbG93Q2lyY2xlVVJMIiwicGxhbnRJY29uVVJMIiwiZ3JlZW5DaXJjbGVVUkwiLCJwdW1wU3RhdGlvbkljb25VUkwiLCJjb2xsZWN0b3JJY29uIiwiYnJpZ2h0Qmx1ZUNpcmNsZVVSTCIsIldXVFBJY29uVVJMIiwid2hpdGVQaW5SZWRTaGFkb3ciLCJzb3VyY2UiLCJzb3VyY2VzIiwiZmlsdGVyIiwic2VsZWN0ZWRfc291cmNlIiwiY3JlYXRlU2FtcGxpbmdJY29uUG9pbnQiLCJzZWNvbmRhcnlJY29uIiwic2FtcGxpbmdJY29uIiwiYmx1ZUNpcmNsZVVSTCIsInNhbXBsaW5nSWNvblVSTCIsInRoaXJkSWNvbiIsImZvckVhY2giLCJpbmRleCIsImNyZWF0ZU9ic2VydmF0aW9uSWNvblBvaW50Iiwib2JzZXJ2YXRpb25JY29uIiwicGlua0NpcmNsZVVSTCIsIm9ic2VydmF0aW9uSWNvblVSTCIsImNyZWF0ZVNhbXBsaW5nSWNvbnMiLCJzYW1wbGVkUG9pbnRJZHMiLCJzYW1wbGluZ3MiLCJzIiwiaW5jbHVkZXMiLCJwb3B1cENvbnRlbnQiLCJvYnMiLCJHcmFwaEljb24iLCJpMThuIiwidCIsInNldmVyaXR5IiwiY2xpY2tlZCIsImlzV1dUUCIsInN1YnRpdGxlVGV4dCIsInNldEljb24iLCJlbGVtZW50IiwiY2FsY3VsYXRlV2F0ZXJDb25zdW1wdGlvbiIsIndhdGVyQ29uc3VtcHRpb24iLCJyb3VuZF90b19uZWFyZXN0X2siLCJjYWxjdWxhdGVkIiwidG9GaXhlZCIsInJvdW5kVG9OZWFyZXN0VGhvdXNhbmQiLCJwYXJzZUZsb2F0IiwidG9Mb2NhbGVTdHJpbmciLCJNYXRoIiwicm91bmQiLCJudW1iZXIiLCJyb3VuZGVkVGhvdXNhbmRzIiwicm91bmRlZFZhbHVlIiwidHJhbnNsYXRlRmxvd1JhdGUiLCJ0b29sdGlwVmlzaWJsZSIsIm9uIiwiY2xvc2VQb3B1cCIsImlzUG9wdXBPcGVuIiwic2VuZEFuYWx5dGljc0V2ZW50IiwicG9pbnRfbmFtZSIsImNvbnRlbnQiLCJ3YXRlclJldXNlSWNvbiIsImdldEZsb3dSYXRlIiwiYmluZFBvcHVwIiwibWluV2lkdGgiLCJtYXhXaWR0aCIsImNsb3NlQnV0dG9uIiwiZmxvd1JhdGVVbml0IiwiaXNSb3VuZCIsInJlbW92ZUxheWVyR3JvdXAiLCJoYXNMYXllciIsInJlbW92ZUxheWVyIiwiYWRkTGF5ZXJHcm91cCIsInBvaW50SXNXV1RQIiwiaXNGYWN0b3J5VHlwZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9wb2ludHMvUG9pbnRVdGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgR3JhcGhJY29uIGZyb20gJy4uLy4uLy4uL2Fzc2V0cy9saW5lLWNoYXJ0LnN2Zyc7XG5pbXBvcnQgTCwgeyBMYXRMbmdUdXBsZSB9IGZyb20gJ2xlYWZsZXQnO1xuaW1wb3J0IGkxOG4gZnJvbSAnLi4vLi4vLi4vdXRpbGl0aWVzL2kxOG4nO1xuaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvcG9pbnRzL21vZGVscy9JUG9pbnQnO1xuaW1wb3J0IGJsdWVDaXJjbGVVUkwgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL3BvaW50X2ljb25zL2JsdWUtY2lyY2xlLnN2Zyc7XG5pbXBvcnQgc2FtcGxpbmdJY29uVVJMIGZyb20gJy4uLy4uLy4uL2Fzc2V0cy9wb2ludF9pY29ucy9zYW1wbGluZy1pY29uLnN2Zyc7XG5pbXBvcnQgcGlua0NpcmNsZVVSTCBmcm9tICcuLi8uLi8uLi9hc3NldHMvcG9pbnRfaWNvbnMvcGluay1jaXJjbGUuc3ZnJztcbmltcG9ydCBvYnNlcnZhdGlvbkljb25VUkwgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL3BvaW50X2ljb25zL29ic2VydmF0aW9uLWljb24uc3ZnJztcbmltcG9ydCB7IElFdmVudCB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL2V2ZW50cy9tb2RlbHMvSUV2ZW50JztcbmltcG9ydCByZWRQaW5SZWRTaGFkb3cgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL3BvaW50X2ljb25zL3JlZC1waW4tcmVkLXNoYWRvdy5wbmcnO1xuaW1wb3J0IHdoaXRlUGluUmVkU2hhZG93IGZyb20gJy4uLy4uLy4uL2Fzc2V0cy9wb2ludF9pY29ucy93aGl0ZS1waW4tcmVkLXNoYWRvdy5wbmcnO1xuaW1wb3J0IHdoaXRlUGluQmxhY2tTaGFkb3cgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL3BvaW50X2ljb25zL3doaXRlLXBpbi1ibGFjay1zaGFkb3cucG5nJztcbmltcG9ydCB5ZWxsb3dDaXJjbGVVUkwgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL3BvaW50X2ljb25zL3llbGxvdy1jaXJjbGUuc3ZnJztcbmltcG9ydCBwbGFudEljb25VUkwgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL3BvaW50X2ljb25zL2ZhY3RvcnktaWNvbi5zdmcnO1xuaW1wb3J0IGdyZWVuQ2lyY2xlVVJMIGZyb20gJy4uLy4uLy4uL2Fzc2V0cy9wb2ludF9pY29ucy9ncmVlbi1jaXJjbGUuc3ZnJztcbmltcG9ydCBwdW1wU3RhdGlvbkljb25VUkwgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL3BvaW50X2ljb25zL3B1bXAtc3RhdGlvbi1pY29uLnN2Zyc7XG5pbXBvcnQgY29sbGVjdG9ySWNvbiBmcm9tICcuLi8uLi8uLi9hc3NldHMvbWFwL3Bpbi13YXRlci5zdmcnO1xuaW1wb3J0IGJyaWdodEJsdWVDaXJjbGVVUkwgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL3BvaW50X2ljb25zL2JyaWdodC1ibHVlLWNpcmNsZS5zdmcnO1xuaW1wb3J0IFdXVFBJY29uVVJMIGZyb20gJy4uLy4uLy4uL2Fzc2V0cy9wb2ludF9pY29ucy9XV1RQLWljb24uc3ZnJztcbmltcG9ydCB3YXRlckljb25Ob0JhY2tncm91bmQgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL3BvaW50X2ljb25zL3dhdGVyLW5vLWJhY2tncm91bmQuc3ZnJztcbmltcG9ydCB3aGl0ZVBvaW50IGZyb20gJy4uLy4uLy4uL2Fzc2V0cy93aGl0ZS1wb2ludC5wbmcnO1xuaW1wb3J0IHsgZXZlbnRzQ291bnRJY29uIH0gZnJvbSAnLi4vTWFwVXRpbHMnO1xuaW1wb3J0IHsgZ2V0UG9pbnRJY29uQnlUeXBlIH0gZnJvbSAnLi9Qb2ludEljb24nO1xuaW1wb3J0IHdhdGVyUmV1c2VJY29uIGZyb20gJy4uLy4uLy4uL2Fzc2V0cy9pY29ucy93YXRlcl9yZXVzZS5zdmcnO1xuaW1wb3J0IHsgc2VuZEFuYWx5dGljc0V2ZW50IH0gZnJvbSAnc3JjL3BhZ2VzL0Rhc2hib2FyZE1hcC91dGlscyc7XG5cbmV4cG9ydCBjb25zdCBpc0NvbGxlY3RvckZvY3VzZWQgPSAocG9pbnQ6IElQb2ludCwgZXZlbnQ6IElFdmVudCkgPT4ge1xuICByZXR1cm4gKFxuICAgIGV2ZW50Py5vYnNlcnZhdGlvbnM/Lmxlbmd0aCA9PT0gMSAmJlxuICAgIHBvaW50LmlkID09PSBldmVudC5vYnNlcnZhdGlvbnNbMF0ucG9pbnRfaWRcbiAgKTtcbn07XG5cbmNvbnN0IGJ1aWxkTWFuaG9sZVRvb2x0aXBTdHJpbmcgPSAocG9pbnQ6IElQb2ludCkgPT4ge1xuICBsZXQgc3RyaW5nID0gYCR7cG9pbnQuZ3JvdXAubmFtZX0gYDtcblxuICBpZiAocG9pbnRJc0ZhY3RvcnkocG9pbnQpKSB7XG4gICAgc3RyaW5nICs9IGA8YnIvPlNlY3RvcjogJHtwb2ludC5ncm91cC5zZWN0b3JfbmFtZX1gO1xuICAgIHN0cmluZyArPSBgPGJyLz5XYXRlciBDb25zdW1wdGlvbjogJHtwb2ludC5ncm91cC53YXRlcl9kaXNjaGFyZ2V9YDtcbiAgfSBlbHNlIHtcbiAgICBzdHJpbmcgPSBgJHtwb2ludC5uYW1lfWA7XG4gIH1cblxuICByZXR1cm4gc3RyaW5nO1xufTtcblxuZXhwb3J0IGNvbnN0IGJ1YmJsZUZvcldXVFAgPSAoYXJncykgPT4ge1xuICBjb25zdCBwb2ludEN1c3RvbUljb246IEwuTWFya2VyID0gTC5tYXJrZXIoYXJncy5tYXJrZXJMb2NhdGlvbiwge1xuICAgIGljb246IGdldEljb24oYXJncy53d3RwUG9pbnQsIGZhbHNlKSxcbiAgICByaXNlT25Ib3ZlcjogdHJ1ZSxcbiAgfSk7XG4gIHBvaW50Q3VzdG9tSWNvblsna2FuZG9fb2JqZWN0X2lkJ10gPSBhcmdzLnd3dHBQb2ludC5pZDtcbiAgcG9pbnRDdXN0b21JY29uWydrYW5kb19vYmplY3QnXSA9ICdQb2ludCc7XG4gIHBvaW50Q3VzdG9tSWNvblsna2FuZG9faGFzX2RldmljZSddID0gYXJncy53d3RwUG9pbnQuaGFzX2RldmljZTtcbiAgcG9pbnRDdXN0b21JY29uWydrYW5kb19oYXNfc2FtcGxlciddID0gYXJncy53d3RwUG9pbnQuaGFzX3NhbXBsZXI7XG5cbiAgcmV0dXJuIHBvaW50Q3VzdG9tSWNvbjtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVCdWJibGVQb2ludCA9IChcbiAgbWFya2VyTG9jYXRpb246IExhdExuZ1R1cGxlLFxuICBwb2ludDogSVBvaW50LFxuICBtYXAsXG4gIGhvdmVyZWQ/LFxuICBsYXllckdyb3VwPyxcbiAgZmxvd19yYXRlX3VuaXQgPSAnZ2RfdXMnLFxuICBoYW5kbGVDbGljaz8sXG4pID0+IHtcbiAgY29uc3Qgc3VidGl0bGUgPSBwb2ludElzRmFjdG9yeShwb2ludCkgPyBwb2ludC5ncm91cC5zZWN0b3JfbmFtZSA6ICcnO1xuICBjb25zdCB0eXBlID0gcG9pbnQuaGFzX2RldmljZSA/IHBvaW50Lmdyb3VwLnR5cGUgOiAnR3JvdXBzOjpkZWZhdWx0JztcbiAgbGV0IHBvaW50Q3VzdG9tSWNvbjogTC5NYXJrZXIgPSBMLm1hcmtlcihtYXJrZXJMb2NhdGlvbiwge1xuICAgIGljb246IGdldFBvaW50SWNvbkJ5VHlwZShcbiAgICAgIHR5cGUsXG4gICAgICBwb2ludC5uYW1lLFxuICAgICAgc3VidGl0bGUsXG4gICAgICBmYWxzZSxcbiAgICAgIHRydWUsXG4gICAgICBmYWxzZSxcbiAgICAgIHBvaW50Lmhhc19zYW1wbGVyLFxuICAgICksXG4gICAgcmlzZU9uSG92ZXI6IHRydWUsXG4gIH0pO1xuICAvLyBAdHMtaWdub3JlXG4gIC8vIHBvaW50Q3VzdG9tSWNvbi5iaW5kVG9vbHRpcChidWlsZE1hbmhvbGVUb290aXBTdHJpbmcocG9pbnQpKTtcbiAgcG9pbnRDdXN0b21JY29uWydrYW5kb19vYmplY3RfaWQnXSA9IHBvaW50LmlkO1xuICBwb2ludEN1c3RvbUljb25bJ2thbmRvX29iamVjdCddID0gJ1BvaW50JztcbiAgcG9pbnRDdXN0b21JY29uWydrYW5kb19oYXNfZGV2aWNlJ10gPSBwb2ludC5oYXNfZGV2aWNlO1xuICBwb2ludEN1c3RvbUljb25bJ2thbmRvX2hhc19zYW1wbGVyJ10gPSBwb2ludC5oYXNfc2FtcGxlcjtcbiAgaWYgKGhvdmVyZWQpIHBvaW50Q3VzdG9tSWNvblsna2FuZG9fb2JqZWN0J10gPSAnUG9pbnRIb3ZlcmVkJztcbiAgY29uc3QgbWFya2VyT25NYXAgPSBsYXllckdyb3VwXG4gICAgLmdldExheWVycygpXG4gICAgLmZpbmQoKGxheWVyKSA9PiBsYXllci5rYW5kb19vYmplY3RfaWQgPT09IHBvaW50LmlkKTtcblxuICAvLyBsZXQgcG9pbnRDdXN0b21JY29uOiBMLk1hcmtlciA9IG1hcmtlck9uTWFwXG4gIC8vICAgPyBtYXJrZXJPbk1hcFxuICAvLyAgIDogTC5tYXJrZXIobWFya2VyTG9jYXRpb24sIHtcbiAgLy8gICAgICAgaWNvbjogZ2V0SWNvbihwb2ludCwgZmFsc2UsIHN1YnRpdGxlKSxcbiAgLy8gICAgICAgcmlzZU9uSG92ZXI6IHRydWUsXG4gIC8vICAgICB9KTtcblxuICBpZiAoIW1hcmtlck9uTWFwKSB7XG4gICAgcG9pbnRDdXN0b21JY29uWydrYW5kb19vYmplY3RfaWQnXSA9IHBvaW50LmlkO1xuICAgIHBvaW50Q3VzdG9tSWNvblsna2FuZG9fb2JqZWN0J10gPSAnUG9pbnQnO1xuICAgIHBvaW50Q3VzdG9tSWNvblsna2FuZG9faGFzX2RldmljZSddID0gcG9pbnQuaGFzX2RldmljZTtcbiAgICBwb2ludEN1c3RvbUljb25bJ2thbmRvX2hhc19zYW1wbGVyJ10gPSBwb2ludC5oYXNfc2FtcGxlcjtcbiAgICBpZiAoaG92ZXJlZCkgcG9pbnRDdXN0b21JY29uWydrYW5kb19vYmplY3QnXSA9ICdQb2ludEhvdmVyZWQnO1xuXG4gICAgbGF5ZXJHcm91cC5hZGRMYXllcihwb2ludEN1c3RvbUljb24pO1xuICAgIGlmIChwb2ludElzRmFjdG9yeShwb2ludCkpIHtcbiAgICAgIGJpbmRQb3B1cFRvTWFya2VyKHBvaW50LCBwb2ludEN1c3RvbUljb24sIGZsb3dfcmF0ZV91bml0KTtcbiAgICB9XG5cbiAgICBoYW5kbGVNYXJrZXJFdmVudHMobWFwLCBwb2ludCwgcG9pbnRDdXN0b21JY29uLCBoYW5kbGVDbGljayk7XG4gIH1cblxuICAvLyBDb25zaWRlciByZW1vdmluZyB0aGlzLCBpdCdzIG5vdCBmdW5jdGlvbmFsIGFuZCBub3R1c2VkIGFueXdoZXJlXG4gIGlmIChwb2ludC5yZWxhdGVkRXZlbnRzQW1vdW50KSB7XG4gICAgbGV0IHBvaW50Q3VzdG9tSWNvbiA9IEwubWFya2VyKG1hcmtlckxvY2F0aW9uLCB7XG4gICAgICBpY29uOiBMLmRpdkljb24oe1xuICAgICAgICBjbGFzc05hbWU6IGBcbiAgICAgICAgICAke1xuICAgICAgICAgICAgcG9pbnQucmVsYXRlZEV2ZW50c0Ftb3VudCA+PSAxMDBcbiAgICAgICAgICAgICAgPyAnY2lyY2xlLWV2ZW50cy1hbW91bnQgY2lyY2xlLWV2ZW50cy1hbW91bnQtLXRyaWRpZ2l0J1xuICAgICAgICAgICAgICA6ICdjaXJjbGUtZXZlbnRzLWFtb3VudCdcbiAgICAgICAgICB9IFxuICAgICAgICAgICR7cG9pbnQucmVsYXRlZEV2ZW50c0Ftb3VudCA+IDIgPyAnYWxlcnQtY29sb3InIDogJyd9XG4gICAgICAgICAgICBgLFxuICAgICAgICBodG1sOiBgPHA+JHtwb2ludC5yZWxhdGVkRXZlbnRzQW1vdW50fTwvcD5gLFxuICAgICAgICBpY29uQW5jaG9yOiBldmVudHNDb3VudEljb24obWFwLl96b29tKS5pY29uQW5jaG9yLFxuICAgICAgfSksXG4gICAgICByaXNlT25Ib3ZlcjogZmFsc2UsXG4gICAgICBvcGFjaXR5OiBob3ZlcmVkID8gMSA6IDAsXG4gICAgfSk7XG5cbiAgICBwb2ludEN1c3RvbUljb25bJ2thbmRvX29iamVjdF9pZCddID0gcG9pbnQuaWQ7XG4gICAgcG9pbnRDdXN0b21JY29uWydrYW5kb19vYmplY3QnXSA9ICdJY29uTnVtYmVyJztcbiAgICBpZiAoaG92ZXJlZCkgcG9pbnRDdXN0b21JY29uWydrYW5kb19vYmplY3QnXSA9ICdJY29uTnVtYmVySG92ZXJlZCc7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVNYW5ob2xlUG9pbnQgPSAoXG4gIG1hcmtlckxvY2F0aW9uOiBMYXRMbmdUdXBsZSxcbiAgcG9pbnQ6IElQb2ludCxcbiAgbWFwLFxuICBob3ZlcmVkPyxcbiAgbGF5ZXJHcm91cD8sXG4pID0+IHtcbiAgbGV0IHBvaW50SWNvbiA9IG5ldyBMLkljb24oe1xuICAgIGljb25Vcmw6IHdoaXRlUG9pbnQsXG4gICAgaWNvblNpemU6IFs5LCA5XSxcbiAgICBpY29uQW5jaG9yOiBbNC41LCA0LjVdLFxuICB9KTtcbiAgbGV0IG1hbmhvbGVJY29uOiBhbnkgPSBuZXcgTC5NYXJrZXIobWFya2VyTG9jYXRpb24sIHtcbiAgICBpY29uOiBwb2ludEljb24sXG4gICAgcmlzZU9uSG92ZXI6IHRydWUsXG4gIH0pO1xuICBtYW5ob2xlSWNvbi5iaW5kVG9vbHRpcChidWlsZE1hbmhvbGVUb29sdGlwU3RyaW5nKHBvaW50KSk7XG4gIG1hbmhvbGVJY29uWydrYW5kb19vYmplY3RfaWQnXSA9IHBvaW50LmlkO1xuICBtYW5ob2xlSWNvblsna2FuZG9fb2JqZWN0J10gPSAnUG9pbnQnO1xuICBtYW5ob2xlSWNvblsna2FuZG9fcG9pbnRfdHlwZSddID0gJ01hbmhvbGUnO1xuICBtYW5ob2xlSWNvblsna2FuZG9faGFzX2RldmljZSddID0gcG9pbnQuaGFzX2RldmljZTtcbiAgbWFuaG9sZUljb25bJ2thbmRvX2hhc19zYW1wbGVyJ10gPSBwb2ludC5oYXNfc2FtcGxlcjtcbiAgaWYgKGhvdmVyZWQpIG1hbmhvbGVJY29uWydrYW5kb19vYmplY3QnXSA9ICdQb2ludEhvdmVyZWQnO1xuICBsYXllckdyb3VwLmFkZExheWVyKG1hbmhvbGVJY29uKTtcbn07XG5cbmV4cG9ydCBjb25zdCBtYXRjaEljb25Ub1BvaW50ID0gKHBvaW50OiBJUG9pbnQsIGV2ZW50OiBJRXZlbnQpID0+IHtcbiAgc3dpdGNoIChwb2ludC5ncm91cC50eXBlKSB7XG4gICAgY2FzZSAnR3JvdXBzOjpGYWN0b3J5JzpcbiAgICAgIGlmIChjb21iaW5lZEZhY3RvcnlJY29uLmxlbmd0aCA9PT0gMikge1xuICAgICAgICBpZiAobWFya2VyQmVsb25nc1RvU2VsZWN0ZWRTb3VyY2UoZXZlbnQsIHBvaW50KSkge1xuICAgICAgICAgIGNvbWJpbmVkRmFjdG9yeUljb24udW5zaGlmdChzZWxlY3RlZEJhY2tncm91bmQoKSk7XG4gICAgICAgIH0gZWxzZSBpZiAobWFya2VyQmVsb25nc1RvU291cmNlKGV2ZW50LCBwb2ludCkpIHtcbiAgICAgICAgICBjb21iaW5lZEZhY3RvcnlJY29uLnVuc2hpZnQoYmVsb25nc1RvU291cmNlQmFja2dyb3VuZCgpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb21iaW5lZEZhY3RvcnlJY29uLnVuc2hpZnQoc3RhbmRhcmRCYWNrZ3JvdW5kKCkpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjb21iaW5lZEZhY3RvcnlJY29uO1xuICAgIGNhc2UgJ0dyb3Vwczo6UHVtcFN0YXRpb24nOlxuICAgICAgaWYgKGNvbWJpbmVkUHVtcFN0YXRpb25JY29uLmxlbmd0aCA9PT0gMikge1xuICAgICAgICBpZiAobWFya2VyQmVsb25nc1RvU2VsZWN0ZWRTb3VyY2UoZXZlbnQsIHBvaW50KSkge1xuICAgICAgICAgIGNvbWJpbmVkUHVtcFN0YXRpb25JY29uLnVuc2hpZnQoc2VsZWN0ZWRCYWNrZ3JvdW5kKCkpO1xuICAgICAgICB9IGVsc2UgaWYgKG1hcmtlckJlbG9uZ3NUb1NvdXJjZShldmVudCwgcG9pbnQpKSB7XG4gICAgICAgICAgY29tYmluZWRQdW1wU3RhdGlvbkljb24udW5zaGlmdChiZWxvbmdzVG9Tb3VyY2VCYWNrZ3JvdW5kKCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbWJpbmVkUHVtcFN0YXRpb25JY29uLnVuc2hpZnQoc3RhbmRhcmRCYWNrZ3JvdW5kKCkpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjb21iaW5lZFB1bXBTdGF0aW9uSWNvbjtcbiAgICBjYXNlICdHcm91cHM6Oldhc3Rld2F0ZXJUcmVhdG1lbnRQbGFudCc6XG4gICAgICBpZiAoY29tYmluZWRXV1RQSWNvbi5sZW5ndGggPT09IDIpIHtcbiAgICAgICAgaWYgKG1hcmtlckJlbG9uZ3NUb1NlbGVjdGVkU291cmNlKGV2ZW50LCBwb2ludCkpIHtcbiAgICAgICAgICBjb21iaW5lZFdXVFBJY29uLnVuc2hpZnQoc2VsZWN0ZWRCYWNrZ3JvdW5kKCkpO1xuICAgICAgICB9IGVsc2UgaWYgKG1hcmtlckJlbG9uZ3NUb1NvdXJjZShldmVudCwgcG9pbnQpKSB7XG4gICAgICAgICAgY29tYmluZWRXV1RQSWNvbi51bnNoaWZ0KGJlbG9uZ3NUb1NvdXJjZUJhY2tncm91bmQoKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29tYmluZWRXV1RQSWNvbi51bnNoaWZ0KHN0YW5kYXJkQmFja2dyb3VuZCgpKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gY29tYmluZWRXV1RQSWNvbjtcblxuICAgIGNhc2UgJ0dyb3Vwczo6Q29sbGVjdG9ycyc6XG4gICAgICBpZiAoaXNDb2xsZWN0b3JGb2N1c2VkKHBvaW50LCBldmVudCkpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICBMLmljb24oe1xuICAgICAgICAgICAgaWNvblVybDogcmVkUGluUmVkU2hhZG93LFxuICAgICAgICAgICAgaWNvblNpemU6IFswLCAwXSxcbiAgICAgICAgICAgIGljb25BbmNob3I6IFszMCwgNTJdLFxuICAgICAgICAgIH0pLFxuXG4gICAgICAgICAgTC5pY29uKHtcbiAgICAgICAgICAgIGljb25Vcmw6IHdhdGVySWNvbk5vQmFja2dyb3VuZCxcbiAgICAgICAgICAgIGljb25TaXplOiBbMCwgMF0sXG5cbiAgICAgICAgICAgIGljb25BbmNob3I6IFsyMiwgNDRdLFxuICAgICAgICAgICAgcG9wdXBBbmNob3I6IFswLCAtMzBdLFxuICAgICAgICAgIH0pLFxuICAgICAgICBdO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gY29tYmluZWRDb2xsZWN0b3JzSWNvbjtcblxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gbnVsbDtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHN0YW5kYXJkQmFja2dyb3VuZCA9IChcbiAgc2Vjb25kYXJ5OiBib29sZWFuID0gZmFsc2UsXG4gIHRoaXJkOiBib29sZWFuID0gZmFsc2UsXG4pID0+IHtcbiAgcmV0dXJuIEwuaWNvbih7XG4gICAgaWNvblVybDogd2hpdGVQaW5CbGFja1NoYWRvdyxcbiAgICBpY29uU2l6ZTogc2Vjb25kYXJ5ID8gWzAsIDBdIDogWzAsIDBdLFxuICAgIGljb25BbmNob3I6IHNlY29uZGFyeSAmJiB0aGlyZCA/IFstMiwgMTldIDogc2Vjb25kYXJ5ID8gWy0yLCA0NF0gOiBbMjAsIDQyXSxcbiAgICBwb3B1cEFuY2hvcjogWzAsIC0zMF0sXG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGNvbWJpbmVkRmFjdG9yeUljb24gPSBbXG4gIEwuaWNvbih7XG4gICAgaWNvblVybDogeWVsbG93Q2lyY2xlVVJMLFxuICAgIGljb25TaXplOiBbMCwgMF0sXG4gICAgaWNvbkFuY2hvcjogWzEwLjcsIDMzLjddLFxuICAgIHBvcHVwQW5jaG9yOiBbMCwgLTMwXSxcbiAgfSksXG4gIEwuaWNvbih7XG4gICAgaWNvblVybDogcGxhbnRJY29uVVJMLFxuICAgIGljb25TaXplOiBbMCwgMF0sXG4gICAgaWNvbkFuY2hvcjogWzUsIDMwXSxcbiAgICBwb3B1cEFuY2hvcjogWzAsIC0zMF0sXG4gIH0pLFxuXTtcblxuZXhwb3J0IGNvbnN0IGNvbWJpbmVkUHVtcFN0YXRpb25JY29uID0gW1xuICBMLmljb24oe1xuICAgIGljb25Vcmw6IGdyZWVuQ2lyY2xlVVJMLFxuICAgIGljb25TaXplOiBbMCwgMF0sXG4gICAgaWNvbkFuY2hvcjogWzEwLjcsIDMzLjddLFxuICAgIHBvcHVwQW5jaG9yOiBbMCwgLTMwXSxcbiAgfSksXG4gIEwuaWNvbih7XG4gICAgaWNvblVybDogcHVtcFN0YXRpb25JY29uVVJMLFxuICAgIGljb25TaXplOiBbMCwgMF0sXG4gICAgaWNvbkFuY2hvcjogWzcsIDMyXSxcbiAgICBwb3B1cEFuY2hvcjogWzAsIC0zMF0sXG4gIH0pLFxuXTtcblxuZXhwb3J0IGNvbnN0IGNvbWJpbmVkQ29sbGVjdG9yc0ljb24gPSBbXG4gIEwuaWNvbih7XG4gICAgaWNvblVybDogY29sbGVjdG9ySWNvbixcbiAgICBpY29uU2l6ZTogWzAsIDBdLFxuXG4gICAgaWNvbkFuY2hvcjogWzI1LCA1MF0sXG4gICAgcG9wdXBBbmNob3I6IFswLCAtMzBdLFxuICB9KSxcbl07XG5cbmV4cG9ydCBjb25zdCBjb21iaW5lZFdXVFBJY29uID0gW1xuICBMLmljb24oe1xuICAgIGljb25Vcmw6IGJyaWdodEJsdWVDaXJjbGVVUkwsXG4gICAgaWNvblNpemU6IFswLCAwXSxcbiAgICBpY29uQW5jaG9yOiBbMTAuNywgMzMuN10sXG4gICAgcG9wdXBBbmNob3I6IFswLCAtMzBdLFxuICB9KSxcbiAgTC5pY29uKHtcbiAgICBpY29uVXJsOiBXV1RQSWNvblVSTCxcbiAgICBpY29uU2l6ZTogWzAsIDBdLFxuICAgIGljb25BbmNob3I6IFs4LCAzMV0sXG4gICAgcG9wdXBBbmNob3I6IFswLCAtMzBdLFxuICB9KSxcbl07XG5cbmV4cG9ydCBjb25zdCBzZWxlY3RlZEJhY2tncm91bmQgPSAoKSA9PiB7XG4gIHJldHVybiBMLmljb24oe1xuICAgIGljb25Vcmw6IHJlZFBpblJlZFNoYWRvdyxcbiAgICBpY29uU2l6ZTogWzAsIDBdLFxuICAgIGljb25BbmNob3I6IFszMiwgNTRdLFxuICAgIHBvcHVwQW5jaG9yOiBbMCwgLTMwXSxcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgYmVsb25nc1RvU291cmNlQmFja2dyb3VuZCA9ICgpID0+IHtcbiAgcmV0dXJuIEwuaWNvbih7XG4gICAgaWNvblVybDogd2hpdGVQaW5SZWRTaGFkb3csXG4gICAgaWNvblNpemU6IFswLCAwXSxcbiAgICBpY29uQW5jaG9yOiBbMzIsIDU0XSxcbiAgICBwb3B1cEFuY2hvcjogWzAsIC0zMF0sXG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IG1hcmtlckJlbG9uZ3NUb1NlbGVjdGVkU291cmNlID0gKGV2ZW50OiBJRXZlbnQsIHBvaW50OiBJUG9pbnQpID0+IHtcbiAgbGV0IHNvdXJjZTtcblxuICBpZiAoZXZlbnQgIT09IG51bGwgJiYgZXZlbnQgIT09IHVuZGVmaW5lZCkge1xuICAgIHNvdXJjZSA9IGV2ZW50LnNvdXJjZXMuZmlsdGVyKChzb3VyY2UpID0+IHNvdXJjZS5wb2ludF9pZCA9PT0gcG9pbnQuaWQpWzBdO1xuICB9XG5cbiAgcmV0dXJuIGV2ZW50ICE9PSBudWxsICYmIHNvdXJjZSAmJiBldmVudC5zZWxlY3RlZF9zb3VyY2UgPT09IHNvdXJjZS5wb2ludF9pZDtcbn07XG5cbmV4cG9ydCBjb25zdCBtYXJrZXJCZWxvbmdzVG9Tb3VyY2UgPSAoZXZlbnQ6IElFdmVudCwgcG9pbnQ6IElQb2ludCkgPT4ge1xuICBpZiAoZXZlbnQgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xuICByZXR1cm4gKFxuICAgIGV2ZW50ICE9PSBudWxsICYmXG4gICAgZXZlbnQuc291cmNlcy5maWx0ZXIoKHNvdXJjZSkgPT4gc291cmNlLnBvaW50X2lkID09PSBwb2ludC5pZClbMF1cbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVTYW1wbGluZ0ljb25Qb2ludCA9IChcbiAgbWFya2VyTG9jYXRpb246IExhdExuZ1R1cGxlLFxuICBzZWNvbmRhcnlJY29uOiBib29sZWFuLFxuICBtYXAsXG4gIHBvaW50OiBJUG9pbnQsXG4gIGV2ZW50OiBJRXZlbnQsXG4gIGhvdmVyZWQ/LFxuICBsYXllckdyb3VwPyxcbikgPT4ge1xuICAvLyBpY29uU2l6ZTogW3dpZHRoLCBoZWlnaHRdLFxuICAvLyBJY29uIEFuY2hvcjogWygtcmlnaHQpKCtsZWZ0KSwgKC1kb3duKSgrdXApXVxuICBsZXQgc2FtcGxpbmdJY29uID0gW1xuICAgIEwuaWNvbih7XG4gICAgICBpY29uVXJsOiBibHVlQ2lyY2xlVVJMLFxuICAgICAgaWNvblNpemU6IHNlY29uZGFyeUljb24gPyBbMCwgMF0gOiBbMCwgMF0sXG4gICAgICBpY29uQW5jaG9yOiBzZWNvbmRhcnlJY29uID8gWy03LCAxNV0gOiBbMTAuNywgMzMuN10sXG4gICAgICBwb3B1cEFuY2hvcjogWzAsIC0zMF0sXG4gICAgfSksXG4gICAgTC5pY29uKHtcbiAgICAgIGljb25Vcmw6IHNhbXBsaW5nSWNvblVSTCxcbiAgICAgIGljb25TaXplOiBzZWNvbmRhcnlJY29uID8gWzAsIDBdIDogWzAsIDBdLFxuICAgICAgaWNvbkFuY2hvcjogc2Vjb25kYXJ5SWNvbiA/IFstOCwgMTNdIDogWzUsIDMwXSxcbiAgICAgIHBvcHVwQW5jaG9yOiBbMCwgLTMwXSxcbiAgICB9KSxcbiAgXTtcblxuICBsZXQgdGhpcmRJY29uID0gZmFsc2U7XG4gIGlmIChtYXJrZXJCZWxvbmdzVG9TZWxlY3RlZFNvdXJjZShldmVudCwgcG9pbnQpICYmICFzZWNvbmRhcnlJY29uKSB7XG4gICAgc2FtcGxpbmdJY29uLnVuc2hpZnQoc2VsZWN0ZWRCYWNrZ3JvdW5kKCkpO1xuICB9IGVsc2UgaWYgKG1hcmtlckJlbG9uZ3NUb1NvdXJjZShldmVudCwgcG9pbnQpICYmICFzZWNvbmRhcnlJY29uKSB7XG4gICAgc2FtcGxpbmdJY29uLnVuc2hpZnQoYmVsb25nc1RvU291cmNlQmFja2dyb3VuZCgpKTtcbiAgfSBlbHNlIHtcbiAgICB0aGlyZEljb24gPSB0cnVlO1xuICAgIHNhbXBsaW5nSWNvbi51bnNoaWZ0KHN0YW5kYXJkQmFja2dyb3VuZChzZWNvbmRhcnlJY29uLCB0aGlyZEljb24pKTtcbiAgfVxuXG4gIHNhbXBsaW5nSWNvbi5mb3JFYWNoKChpY29uLCBpbmRleCkgPT4ge1xuICAgIGxldCBwb2ludEN1c3RvbUljb246IGFueSA9IEwubWFya2VyKG1hcmtlckxvY2F0aW9uLCB7XG4gICAgICBpY29uOiBpY29uLFxuICAgICAgcmlzZU9uSG92ZXI6IGZhbHNlLFxuICAgIH0pO1xuICAgIHBvaW50Q3VzdG9tSWNvbi5iaW5kVG9vbHRpcChidWlsZE1hbmhvbGVUb29sdGlwU3RyaW5nKHBvaW50KSk7XG4gICAgcG9pbnRDdXN0b21JY29uWydrYW5kb19pbmRleF9vYmplY3QnXSA9IGluZGV4O1xuICAgIHBvaW50Q3VzdG9tSWNvblsna2FuZG9fZmV3X2xheWVyX2ljb24nXSA9IHRydWU7XG4gICAgcG9pbnRDdXN0b21JY29uWydrYW5kb19zZWNvbmRhcnknXSA9IHRoaXJkSWNvbiA/IGZhbHNlIDogc2Vjb25kYXJ5SWNvbjtcbiAgICBwb2ludEN1c3RvbUljb25bJ2thbmRvX3RoaXJkJ10gPSB0aGlyZEljb247XG4gICAgcG9pbnRDdXN0b21JY29uWydrYW5kb19vYmplY3RfaWQnXSA9IHBvaW50LmlkO1xuICAgIHBvaW50Q3VzdG9tSWNvblsna2FuZG9fb2JqZWN0J10gPSAnU2FtcGxpbmcnO1xuICAgIGlmIChob3ZlcmVkKSBwb2ludEN1c3RvbUljb25bJ2thbmRvX29iamVjdCddID0gJ1NhbXBsaW5nSG92ZXJlZCc7XG4gICAgbGF5ZXJHcm91cC5hZGRMYXllcihwb2ludEN1c3RvbUljb24pO1xuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVPYnNlcnZhdGlvbkljb25Qb2ludCA9IChcbiAgbWFya2VyTG9jYXRpb246IExhdExuZ1R1cGxlLFxuICBzZWNvbmRhcnlJY29uOiBib29sZWFuLFxuICBtYXAsXG4gIHBvaW50OiBJUG9pbnQsXG4gIGV2ZW50OiBJRXZlbnQsXG4gIGhvdmVyZWQ/LFxuICBsYXllckdyb3VwPyxcbikgPT4ge1xuICAvLyBpY29uU2l6ZTogW3dpZHRoLCBoZWlnaHRdLFxuICAvLyBJY29uIEFuY2hvcjogWygtcmlnaHQpKCtsZWZ0KSwgKC1kb3duKSgrdXApXVxuICBsZXQgb2JzZXJ2YXRpb25JY29uID0gW1xuICAgIEwuaWNvbih7XG4gICAgICBpY29uVXJsOiBwaW5rQ2lyY2xlVVJMLFxuICAgICAgaWNvblNpemU6IHNlY29uZGFyeUljb24gPyBbMCwgMF0gOiBbMCwgMF0sXG4gICAgICBpY29uQW5jaG9yOiBzZWNvbmRhcnlJY29uID8gWy03LCA0MF0gOiBbMTAuNywgMzMuN10sXG4gICAgICBwb3B1cEFuY2hvcjogWzAsIC0zMF0sXG4gICAgfSksXG4gICAgTC5pY29uKHtcbiAgICAgIGljb25Vcmw6IG9ic2VydmF0aW9uSWNvblVSTCxcbiAgICAgIGljb25TaXplOiBzZWNvbmRhcnlJY29uID8gWzAsIDBdIDogWzAsIDBdLFxuICAgICAgaWNvbkFuY2hvcjogc2Vjb25kYXJ5SWNvbiA/IFstOCwgMzhdIDogWzUsIDMwXSxcbiAgICAgIHBvcHVwQW5jaG9yOiBbMCwgLTMwXSxcbiAgICB9KSxcbiAgXTtcblxuICBpZiAobWFya2VyQmVsb25nc1RvU2VsZWN0ZWRTb3VyY2UoZXZlbnQsIHBvaW50KSAmJiAhc2Vjb25kYXJ5SWNvbikge1xuICAgIG9ic2VydmF0aW9uSWNvbi51bnNoaWZ0KHNlbGVjdGVkQmFja2dyb3VuZCgpKTtcbiAgfSBlbHNlIGlmIChtYXJrZXJCZWxvbmdzVG9Tb3VyY2UoZXZlbnQsIHBvaW50KSAmJiAhc2Vjb25kYXJ5SWNvbikge1xuICAgIG9ic2VydmF0aW9uSWNvbi51bnNoaWZ0KGJlbG9uZ3NUb1NvdXJjZUJhY2tncm91bmQoKSk7XG4gIH0gZWxzZSB7XG4gICAgb2JzZXJ2YXRpb25JY29uLnVuc2hpZnQoc3RhbmRhcmRCYWNrZ3JvdW5kKHNlY29uZGFyeUljb24pKTtcbiAgfVxuXG4gIG9ic2VydmF0aW9uSWNvbi5mb3JFYWNoKChpY29uLCBpbmRleCkgPT4ge1xuICAgIGxldCBwb2ludEN1c3RvbUljb246IGFueSA9IEwubWFya2VyKG1hcmtlckxvY2F0aW9uLCB7XG4gICAgICBpY29uOiBpY29uLFxuICAgICAgcmlzZU9uSG92ZXI6IGZhbHNlLFxuICAgIH0pO1xuICAgIHBvaW50Q3VzdG9tSWNvbi5iaW5kVG9vbHRpcChidWlsZE1hbmhvbGVUb29sdGlwU3RyaW5nKHBvaW50KSk7XG4gICAgcG9pbnRDdXN0b21JY29uWydrYW5kb19pbmRleF9vYmplY3QnXSA9IGluZGV4O1xuICAgIHBvaW50Q3VzdG9tSWNvblsna2FuZG9fZmV3X2xheWVyX2ljb24nXSA9IHRydWU7XG4gICAgcG9pbnRDdXN0b21JY29uWydrYW5kb19zZWNvbmRhcnknXSA9IHNlY29uZGFyeUljb247XG4gICAgcG9pbnRDdXN0b21JY29uWydrYW5kb190aGlyZCddID0gZmFsc2U7XG4gICAgcG9pbnRDdXN0b21JY29uWydrYW5kb19vYmplY3RfaWQnXSA9IHBvaW50LmlkO1xuICAgIHBvaW50Q3VzdG9tSWNvblsna2FuZG9fb2JqZWN0J10gPSAnT2JzZXJ2YXRpb24nO1xuICAgIGlmIChob3ZlcmVkKSBwb2ludEN1c3RvbUljb25bJ2thbmRvX29iamVjdCddID0gJ09ic2VydmF0aW9uSG92ZXJlZCc7XG4gICAgbGF5ZXJHcm91cC5hZGRMYXllcihwb2ludEN1c3RvbUljb24pO1xuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVTYW1wbGluZ0ljb25zID0gKFxuICBtYXJrZXJMb2NhdGlvbjogTGF0TG5nVHVwbGUsXG4gIGV2ZW50OiBJRXZlbnQsXG4gIHBvaW50OiBJUG9pbnQsXG4gIG1hcCxcbiAgaG92ZXJlZCxcbiAgbGF5ZXJHcm91cD8sXG4pID0+IHtcbiAgbGV0IHNhbXBsZWRQb2ludElkcyA9IGV2ZW50LnNhbXBsaW5ncy5tYXAoKHMpID0+IHMucG9pbnRfaWQpO1xuICBpZiAoXG4gICAgZXZlbnQgIT09IG51bGwgJiZcbiAgICBldmVudC5zYW1wbGluZ3MubGVuZ3RoICE9PSAwICYmXG4gICAgc2FtcGxlZFBvaW50SWRzLmluY2x1ZGVzKHBvaW50LmlkKVxuICApIHtcbiAgICBjcmVhdGVTYW1wbGluZ0ljb25Qb2ludChcbiAgICAgIG1hcmtlckxvY2F0aW9uLFxuICAgICAgbWF0Y2hJY29uVG9Qb2ludChwb2ludCwgZXZlbnQpICE9PSBudWxsLFxuICAgICAgbWFwLFxuICAgICAgcG9pbnQsXG4gICAgICBldmVudCxcbiAgICAgIGhvdmVyZWQsXG4gICAgICBsYXllckdyb3VwLFxuICAgICk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBwb3B1cENvbnRlbnQgPSAob2JzOiBhbnksIHBvaW50OiBJUG9pbnQpID0+IHtcbiAgaWYgKG9icyA9PT0gbnVsbCkge1xuICAgIHJldHVybiBgXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXZlbnQtcG9wdXBcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9wdXAtZ3JhcGgtaWNvbiBwb3B1cC1ncmFwaC1pY29uLSR7cG9pbnQuaWR9XCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiJHtHcmFwaEljb259XCIvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3B1cC1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgIDxoNSBjbGFzcz1cInBvcHVwLWNvbnRlbnRfX3NpdGUtbmFtZVwiPjxiPiR7cG9pbnQuZ3JvdXAubmFtZX08L2I+PC9oNT5cbiAgICAgICAgICAgICAgICAgICAgPGhyLz5cbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJzZWN0b3JcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgYDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gYFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV2ZW50LXBvcHVwXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvcHVwLWdyYXBoLWljb24gcG9wdXAtZ3JhcGgtaWNvbi0ke29icy5pZH1cIj5cbiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIke0dyYXBoSWNvbn1cIi8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvcHVwLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGg1IGNsYXNzPVwicG9wdXAtY29udGVudF9fc2l0ZS1uYW1lXCI+PGI+JHtcbiAgICAgICAgICAgICAgICAgICAgICBwb2ludC5ncm91cC5uYW1lXG4gICAgICAgICAgICAgICAgICAgIH08L2I+PC9oNT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvcHVwLWNvbnRlbnRfX3NldmVyaXR5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInBvcHVwLWNvbnRlbnRfX3NldmVyaXR5LXBcIj4ke2kxOG4udChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYGV2ZW50c19vdmVydmlldy5zZXZlcml0eWAsXG4gICAgICAgICAgICAgICAgICAgICAgICApfTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiJHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BvcHVwLWNvbnRlbnRfX3NldmVyaXR5LS0nICsgb2JzLnNldmVyaXR5XG4gICAgICAgICAgICAgICAgICAgICAgICB9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGIgY2xhc3M9XCJwb3B1cC1jb250ZW50X19zZXZlcml0eS1iXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7aTE4bi50KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBldmVudHNfb3ZlcnZpZXcuc2V2ZXJpdGllcy4ke29icy5zZXZlcml0eX1gLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICA8aHIgY2xhc3M9XCJwb3B1cC1jb250ZW50X19oclwiIC8+XG5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvcHVwLWNvbnRlbnRfX2Rpc2NoYXJnZS10aW1lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwicG9wdXAtY29udGVudF9fc2V2ZXJpdHktcFwiPiR7aTE4bi50KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGV2ZW50c19vdmVydmlldy5maXJzdF9zZWVuYCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApfTo8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PGIgaWQ9XCJmaXJzdC1zZWVuLXBvcHVwXCI+PC9iPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInBvcHVwLWNvbnRlbnRfX3NldmVyaXR5LXBcIj4ke2kxOG4udChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBldmVudHNfb3ZlcnZpZXcubGFzdF9zZWVuYCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApfTo8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PGIgaWQ9XCJsYXN0LXNlZW4tcG9wdXBcIj48L2I+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIGA7XG4gIH1cbn07XG5cbmNvbnN0IGdldEljb24gPSAocG9pbnQ6IElQb2ludCwgY2xpY2tlZDogYm9vbGVhbiwgc3VidGl0bGU/OiBzdHJpbmcpID0+IHtcbiAgY29uc3QgaXNXV1RQID0gcG9pbnQuZ3JvdXAudHlwZSA9PT0gJ0dyb3Vwczo6V2FzdGV3YXRlclRyZWF0bWVudFBsYW50JztcbiAgY29uc3QgdHlwZSA9XG4gICAgcG9pbnQuaGFzX2RldmljZSB8fCBpc1dXVFAgPyBwb2ludC5ncm91cC50eXBlIDogJ0dyb3Vwczo6ZGVmYXVsdCc7XG4gIGxldCBzdWJ0aXRsZVRleHQgPSBzdWJ0aXRsZSA/IHN1YnRpdGxlIDogcG9pbnQuZ3JvdXAuc2VjdG9yX25hbWU7XG4gIGlmIChpc1dXVFAgJiYgIXBvaW50Lmhhc19kZXZpY2UpIHtcbiAgICBzdWJ0aXRsZVRleHQgKz0gYCAoJHtpMThuLnQoXG4gICAgICAnZGFzaGJvYXJkX3YyLnV0aWxpdHlfZGFzaGJvYXJkLnRvcGJhci5xdWFsaXR5LXN1bW1hcnkudW5tb25pdG9yZWQnLFxuICAgICl9KWA7XG4gIH1cbiAgcmV0dXJuIGdldFBvaW50SWNvbkJ5VHlwZShcbiAgICB0eXBlLFxuICAgIHBvaW50Lm5hbWUsXG4gICAgc3VidGl0bGVUZXh0LFxuICAgIGNsaWNrZWQsXG4gICAgIWNsaWNrZWQsXG4gICAgZmFsc2UsXG4gICAgcG9pbnQuaGFzX3NhbXBsZXIsXG4gICk7XG59O1xuXG5leHBvcnQgY29uc3Qgc2V0SWNvbiA9IChlbGVtZW50LCBjbGlja2VkLCBwb2ludCwgc3VidGl0bGUgPSAnJykgPT4ge1xuICBlbGVtZW50LnNldEljb24oZ2V0SWNvbihwb2ludCwgY2xpY2tlZCwgc3VidGl0bGUpKTtcbn07XG5cbi8vIHJvdW5kIHRvIG5lYXJlc3QgdGhvdXNhbmQgaXMgdXNlZCB3aGVuIHlvdSB3YW50IHRvIHJvdW5kIHRoZSB3YXRlciBjb25zdW1wdGlvbiB0byB0aGUgbmVhcmVzdCB0aG91c2FuZFxuLy8gZm9yIGV4YW1wbGU6IDIzNCw1NjcgLT4gMjM1LDAwMFxuZXhwb3J0IGNvbnN0IGNhbGN1bGF0ZVdhdGVyQ29uc3VtcHRpb24gPSAoXG4gIGZsb3dfcmF0ZV91bml0OiBzdHJpbmcsXG4gIHdhdGVyQ29uc3VtcHRpb246IG51bWJlcixcbiAgcm91bmRfdG9fbmVhcmVzdF9rOiBib29sZWFuID0gZmFsc2UsXG4pID0+IHtcbiAgbGV0IGNhbGN1bGF0ZWQgPSAnMCc7XG5cbiAgaWYgKHdhdGVyQ29uc3VtcHRpb24gPiAwKSB7XG4gICAgc3dpdGNoIChmbG93X3JhdGVfdW5pdCkge1xuICAgICAgY2FzZSAnbTNkJzpcbiAgICAgICAgY2FsY3VsYXRlZCA9IHdhdGVyQ29uc3VtcHRpb24udG9GaXhlZCgyKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdnZF91cyc6XG4gICAgICAgIGNhbGN1bGF0ZWQgPSAod2F0ZXJDb25zdW1wdGlvbiAqIDI2NC4xNzIpLnRvRml4ZWQoMik7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZ2RfdWsnOlxuICAgICAgICBjYWxjdWxhdGVkID0gKHdhdGVyQ29uc3VtcHRpb24gKiAyMTkuOTY5KS50b0ZpeGVkKDIpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgaWYgKHJvdW5kX3RvX25lYXJlc3Rfaykge1xuICAgIHJldHVybiByb3VuZFRvTmVhcmVzdFRob3VzYW5kKHBhcnNlRmxvYXQoY2FsY3VsYXRlZCkpLnRvTG9jYWxlU3RyaW5nKCk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIE1hdGgucm91bmQocGFyc2VGbG9hdChjYWxjdWxhdGVkKSkudG9Mb2NhbGVTdHJpbmcoKTtcbiAgfVxufTtcblxuY29uc3Qgcm91bmRUb05lYXJlc3RUaG91c2FuZCA9IChudW1iZXIpID0+IHtcbiAgLy8gaWYoaXNBbHJlYWR5Um91bmRlZChudW1iZXIpKSB7XG4gIC8vICAgcmV0dXJuIG51bWJlcjtcbiAgLy8gfVxuXG4gIGlmIChudW1iZXIgPCAxMDAwKSB7XG4gICAgcmV0dXJuIE1hdGgucm91bmQobnVtYmVyKTtcbiAgfVxuXG4gIGNvbnN0IHJvdW5kZWRUaG91c2FuZHMgPSBNYXRoLnJvdW5kKG51bWJlciAvIDEwMDApO1xuICBjb25zdCByb3VuZGVkVmFsdWUgPSByb3VuZGVkVGhvdXNhbmRzICogMTAwMDtcblxuICByZXR1cm4gcm91bmRlZFZhbHVlO1xufTtcblxuLy8gY29uc3QgaXNBbHJlYWR5Um91bmRlZCA9IChudW1iZXIpID0+IHtcbi8vICAgcmV0dXJuIG51bWJlciA9PT0gTWF0aC5yb3VuZChudW1iZXIpO1xuLy8gfVxuXG5leHBvcnQgY29uc3QgdHJhbnNsYXRlRmxvd1JhdGUgPSAoZmxvd19yYXRlX3VuaXQpID0+IHtcbiAgcmV0dXJuIGkxOG4udChcbiAgICBgZGFzaGJvYXJkX3YyLnByb2ZpbGUuZmxvd19yYXRlX3VuaXRfb3B0aW9ucy4ke1xuICAgICAgZmxvd19yYXRlX3VuaXQuaW5jbHVkZXMoJ2dkJykgPyAnZ2QnIDogZmxvd19yYXRlX3VuaXRcbiAgICB9YCxcbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBoYW5kbGVNYXJrZXJFdmVudHMgPSAoXG4gIG1hcCxcbiAgcG9pbnQsXG4gIHBvaW50Q3VzdG9tSWNvbixcbiAgaGFuZGxlQ2xpY2ssXG4pID0+IHtcbiAgbGV0IHRvb2x0aXBWaXNpYmxlID0gZmFsc2U7XG5cbiAgbWFwLm9uKCd6b29tc3RhcnQnLCBmdW5jdGlvbiAoKSB7XG4gICAgbWFwLmNsb3NlUG9wdXAoKTtcbiAgfSk7XG5cbiAgcG9pbnRDdXN0b21JY29uLm9uKCdwb3B1cGNsb3NlJywgKCkgPT4ge1xuICAgIC8vIHNldEljb24ocG9pbnRDdXN0b21JY29uLCBmYWxzZSwgcG9pbnQpO1xuICAgIHRvb2x0aXBWaXNpYmxlID0gZmFsc2U7XG4gIH0pO1xuXG4gIHBvaW50Q3VzdG9tSWNvbi5vbigncG9wdXBvcGVuJywgKCkgPT4ge1xuICAgIC8vIHNldEljb24ocG9pbnRDdXN0b21JY29uLCB0cnVlLCBwb2ludCk7XG4gICAgdG9vbHRpcFZpc2libGUgPSB0cnVlO1xuICB9KTtcblxuICBwb2ludEN1c3RvbUljb24ub24oJ21vdXNlb3ZlcicsICgpID0+IHtcbiAgICBpZiAodG9vbHRpcFZpc2libGUpIHJldHVybjtcblxuICAgIHNldEljb24ocG9pbnRDdXN0b21JY29uLCB0cnVlLCBwb2ludCk7XG4gICAgdG9vbHRpcFZpc2libGUgPSB0cnVlO1xuICB9KTtcblxuICBwb2ludEN1c3RvbUljb24ub24oJ21vdXNlb3V0JywgKCkgPT4ge1xuICAgIGlmIChwb2ludEN1c3RvbUljb24uaXNQb3B1cE9wZW4oKSkgcmV0dXJuO1xuXG4gICAgc2V0SWNvbihwb2ludEN1c3RvbUljb24sIGZhbHNlLCBwb2ludCk7XG4gICAgdG9vbHRpcFZpc2libGUgPSBmYWxzZTtcbiAgfSk7XG5cbiAgaWYgKHR5cGVvZiBoYW5kbGVDbGljayA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHBvaW50Q3VzdG9tSWNvbi5vbignY2xpY2snLCAoKSA9PiB7XG4gICAgICBoYW5kbGVDbGljayhwb2ludEN1c3RvbUljb24ua2FuZG9fb2JqZWN0X2lkKTtcblxuICAgICAgaWYgKHBvaW50SXNGYWN0b3J5KHBvaW50KSkge1xuICAgICAgICBzZW5kQW5hbHl0aWNzRXZlbnQoJ01hcCBWaWV3IC0gRmFjdG9yeSBjbGlja2VkJywgJ21hcCcsIHtcbiAgICAgICAgICBwb2ludF9pZDogcG9pbnQuaWQsXG4gICAgICAgICAgcG9pbnRfbmFtZTogcG9pbnQubmFtZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBiaW5kUG9wdXBUb01hcmtlciA9IChwb2ludCwgbGF5ZXJHcm91cCwgZmxvd19yYXRlX3VuaXQpID0+IHtcbiAgbGV0IGNvbnRlbnQgPSBgXG4gICAgPGRpdiBjbGFzcz0nbWFpbi1jb250ZW50Jz5cbiAgICAgICAgPGRpdiBjbGFzcz0nbWFpbi1jb250ZW50X19oZWFkZXInPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1haW4tY29udGVudF9faGVhZGVyX190aXRsZXNcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdtYWluLWNvbnRlbnRfX2hlYWRlcl9fdGl0bGVzX190aXRsZSc+JHtcbiAgICAgICAgICAgICAgICAgIHBvaW50Lm5hbWVcbiAgICAgICAgICAgICAgICB9PC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nbWFpbi1jb250ZW50X19oZWFkZXJfX3RpdGxlc19fc3VidGl0bGUnPiR7XG4gICAgICAgICAgICAgICAgICBwb2ludC5ncm91cC5zZWN0b3JfbmFtZVxuICAgICAgICAgICAgICAgIH08L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICBcbiAgICAgICAgPGRpdiBjbGFzcz0nbWFpbi1jb250ZW50X19ib2R5Jz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9J21haW4tY29udGVudF9fYm9keV9faXRlbSc+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nbWFpbi1jb250ZW50X19ib2R5X19pdGVtX19pY29uJz5cbiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9JyR7d2F0ZXJSZXVzZUljb259JyAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9J21haW4tY29udGVudF9fYm9keV9faXRlbV9fdGl0bGVzJz5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9J21haW4tY29udGVudF9fYm9keV9faXRlbV9fdGl0bGVzX190aXRsZSc+XG4gICAgICAgICAgICAgICAgICAgICR7Z2V0Rmxvd1JhdGUocG9pbnQuZ3JvdXAud2F0ZXJfZGlzY2hhcmdlLCBmbG93X3JhdGVfdW5pdCl9XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9J21haW4tY29udGVudF9fYm9keV9faXRlbV9fdGl0bGVzX19zdWJ0aXRsZSc+JHtpMThuLnQoXG4gICAgICAgICAgICAgICAgICAgICd3YXRlcl9kaXNjaGFyZ2UnLFxuICAgICAgICAgICAgICAgICAgKX08L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICBgO1xuXG4gIGxheWVyR3JvdXAuYmluZFBvcHVwKGNvbnRlbnQsIHtcbiAgICBjbGFzc05hbWU6ICdwb2ludC1tYXJrZXItcG9wdXAnLFxuICAgIG1pbldpZHRoOiAnMjE0cHgnLFxuICAgIG1heFdpZHRoOiAnMjE0cHgnLFxuICAgIGNsb3NlQnV0dG9uOiB0cnVlLFxuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRGbG93UmF0ZSA9IChcbiAgd2F0ZXJDb25zdW1wdGlvbjogbnVtYmVyLFxuICBmbG93UmF0ZVVuaXQ6IHN0cmluZyxcbiAgaXNSb3VuZDogYm9vbGVhbiA9IGZhbHNlLFxuKSA9PiB7XG4gIGlmICh3YXRlckNvbnN1bXB0aW9uID4gMCkge1xuICAgIHJldHVybiAoXG4gICAgICBjYWxjdWxhdGVXYXRlckNvbnN1bXB0aW9uKGZsb3dSYXRlVW5pdCwgd2F0ZXJDb25zdW1wdGlvbiwgaXNSb3VuZCkgK1xuICAgICAgJyAnICtcbiAgICAgIHRyYW5zbGF0ZUZsb3dSYXRlKGZsb3dSYXRlVW5pdClcbiAgICApO1xuICB9XG4gIHJldHVybiBpMThuLnQoJ2V2ZW50c19vdmVydmlldy5zZXZlcml0aWVzLnVua25vd24nKTtcbn07XG5cbmV4cG9ydCBjb25zdCByZW1vdmVMYXllckdyb3VwID0gKG1hcCwgbGF5ZXJHcm91cCkgPT4ge1xuICBpZiAobWFwLmhhc0xheWVyKGxheWVyR3JvdXApKSB7XG4gICAgbWFwLnJlbW92ZUxheWVyKGxheWVyR3JvdXApO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgYWRkTGF5ZXJHcm91cCA9IChtYXAsIGxheWVyR3JvdXApID0+IHtcbiAgaWYgKCFtYXAuaGFzTGF5ZXIobGF5ZXJHcm91cCkpIHtcbiAgICBtYXAuYWRkTGF5ZXIobGF5ZXJHcm91cCk7XG4gIH0gZWxzZSB7XG4gICAgcmVtb3ZlTGF5ZXJHcm91cChtYXAsIGxheWVyR3JvdXApO1xuICAgIGFkZExheWVyR3JvdXAobWFwLCBsYXllckdyb3VwKTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHBvaW50SXNXV1RQID0gKHBvaW50OiBJUG9pbnQpID0+IHtcbiAgcmV0dXJuIHBvaW50Lmdyb3VwLnR5cGUgPT09ICdHcm91cHM6Oldhc3Rld2F0ZXJUcmVhdG1lbnRQbGFudCc7XG59O1xuXG5leHBvcnQgY29uc3QgcG9pbnRJc0ZhY3RvcnkgPSAocG9pbnQ6IElQb2ludCkgPT4ge1xuICByZXR1cm4gaXNGYWN0b3J5VHlwZShwb2ludC5ncm91cC50eXBlKTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc0ZhY3RvcnlUeXBlID0gKHR5cGU6IHN0cmluZykgPT4ge1xuICByZXR1cm4gdHlwZSA9PT0gJ0dyb3Vwczo6RmFjdG9yeSc7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUNBLElBQUFBLFFBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLEtBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUEyQyxJQUFBRSxXQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFBQSxJQUFBRyxhQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFBQSxJQUFBSSxXQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFBQSxJQUFBSyxnQkFBQSxHQUFBTixzQkFBQSxDQUFBQyxPQUFBO0FBTzNDLElBQUFNLGdCQUFBLEdBQUFQLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTyxrQkFBQSxHQUFBUixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVEsb0JBQUEsR0FBQVQsc0JBQUEsQ0FBQUMsT0FBQTtBQUF5RixJQUFBUyxhQUFBLEdBQUFWLHNCQUFBLENBQUFDLE9BQUE7QUFBQSxJQUFBVSxZQUFBLEdBQUFYLHNCQUFBLENBQUFDLE9BQUE7QUFBQSxJQUFBVyxZQUFBLEdBQUFaLHNCQUFBLENBQUFDLE9BQUE7QUFBQSxJQUFBWSxnQkFBQSxHQUFBYixzQkFBQSxDQUFBQyxPQUFBO0FBQUEsSUFBQWEsU0FBQSxHQUFBZCxzQkFBQSxDQUFBQyxPQUFBO0FBQUEsSUFBQWMsaUJBQUEsR0FBQWYsc0JBQUEsQ0FBQUMsT0FBQTtBQUFBLElBQUFlLFNBQUEsR0FBQWhCLHNCQUFBLENBQUFDLE9BQUE7QUFBQSxJQUFBZ0Isa0JBQUEsR0FBQWpCLHNCQUFBLENBQUFDLE9BQUE7QUFTekYsSUFBQWlCLFdBQUEsR0FBQWxCLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBa0IsU0FBQSxHQUFBbEIsT0FBQTtBQUNBLElBQUFtQixVQUFBLEdBQUFuQixPQUFBO0FBQWlELElBQUFvQixZQUFBLEdBQUFyQixzQkFBQSxDQUFBQyxPQUFBO0FBRWpELElBQUFxQixNQUFBLEdBQUFyQixPQUFBO0FBRU8sSUFBTXNCLGtCQUFrQixHQUFHLFNBQXJCQSxrQkFBa0JBLENBQUlDLEtBQWEsRUFBRUMsS0FBYSxFQUFLO0VBQUEsSUFBQUMsbUJBQUE7RUFDbEUsT0FDRSxDQUFBRCxLQUFLLGFBQUxBLEtBQUssd0JBQUFDLG1CQUFBLEdBQUxELEtBQUssQ0FBRUUsWUFBWSxjQUFBRCxtQkFBQSx1QkFBbkJBLG1CQUFBLENBQXFCRSxNQUFNLE1BQUssQ0FBQyxJQUNqQ0osS0FBSyxDQUFDSyxFQUFFLEtBQUtKLEtBQUssQ0FBQ0UsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDRyxRQUFRO0FBRS9DLENBQUM7QUFBQ0MsT0FBQSxDQUFBUixrQkFBQSxHQUFBQSxrQkFBQTtBQUVGLElBQU1TLHlCQUF5QixHQUFHLFNBQTVCQSx5QkFBeUJBLENBQUlSLEtBQWEsRUFBSztFQUNuRCxJQUFJUyxNQUFNLE1BQUFDLE1BQUEsQ0FBTVYsS0FBSyxDQUFDVyxLQUFLLENBQUNDLElBQUksTUFBRztFQUVuQyxJQUFJQyxjQUFjLENBQUNiLEtBQUssQ0FBQyxFQUFFO0lBQ3pCUyxNQUFNLG9CQUFBQyxNQUFBLENBQW9CVixLQUFLLENBQUNXLEtBQUssQ0FBQ0csV0FBVyxDQUFFO0lBQ25ETCxNQUFNLCtCQUFBQyxNQUFBLENBQStCVixLQUFLLENBQUNXLEtBQUssQ0FBQ0ksZUFBZSxDQUFFO0VBQ3BFLENBQUMsTUFBTTtJQUNMTixNQUFNLE1BQUFDLE1BQUEsQ0FBTVYsS0FBSyxDQUFDWSxJQUFJLENBQUU7RUFDMUI7RUFFQSxPQUFPSCxNQUFNO0FBQ2YsQ0FBQztBQUVNLElBQU1PLGFBQWEsR0FBRyxTQUFoQkEsYUFBYUEsQ0FBSUMsSUFBSSxFQUFLO0VBQ3JDLElBQU1DLGVBQXlCLEdBQUdDLGdCQUFDLENBQUNDLE1BQU0sQ0FBQ0gsSUFBSSxDQUFDSSxjQUFjLEVBQUU7SUFDOURDLElBQUksRUFBRUMsT0FBTyxDQUFDTixJQUFJLENBQUNPLFNBQVMsRUFBRSxLQUFLLENBQUM7SUFDcENDLFdBQVcsRUFBRTtFQUNmLENBQUMsQ0FBQztFQUNGUCxlQUFlLENBQUMsaUJBQWlCLENBQUMsR0FBR0QsSUFBSSxDQUFDTyxTQUFTLENBQUNuQixFQUFFO0VBQ3REYSxlQUFlLENBQUMsY0FBYyxDQUFDLEdBQUcsT0FBTztFQUN6Q0EsZUFBZSxDQUFDLGtCQUFrQixDQUFDLEdBQUdELElBQUksQ0FBQ08sU0FBUyxDQUFDRSxVQUFVO0VBQy9EUixlQUFlLENBQUMsbUJBQW1CLENBQUMsR0FBR0QsSUFBSSxDQUFDTyxTQUFTLENBQUNHLFdBQVc7RUFFakUsT0FBT1QsZUFBZTtBQUN4QixDQUFDO0FBQUNYLE9BQUEsQ0FBQVMsYUFBQSxHQUFBQSxhQUFBO0FBRUssSUFBTVksaUJBQWlCLEdBQUcsU0FBcEJBLGlCQUFpQkEsQ0FDNUJQLGNBQTJCLEVBQzNCckIsS0FBYSxFQUNiNkIsR0FBRyxFQUNIQyxPQUFRLEVBQ1JDLFVBQVcsRUFHUjtFQUFBLElBRkhDLGNBQWMsR0FBQUMsU0FBQSxDQUFBN0IsTUFBQSxRQUFBNkIsU0FBQSxRQUFBQyxTQUFBLEdBQUFELFNBQUEsTUFBRyxPQUFPO0VBQUEsSUFDeEJFLFdBQVksR0FBQUYsU0FBQSxDQUFBN0IsTUFBQSxPQUFBNkIsU0FBQSxNQUFBQyxTQUFBO0VBRVosSUFBTUUsUUFBUSxHQUFHdkIsY0FBYyxDQUFDYixLQUFLLENBQUMsR0FBR0EsS0FBSyxDQUFDVyxLQUFLLENBQUNHLFdBQVcsR0FBRyxFQUFFO0VBQ3JFLElBQU11QixJQUFJLEdBQUdyQyxLQUFLLENBQUMwQixVQUFVLEdBQUcxQixLQUFLLENBQUNXLEtBQUssQ0FBQzBCLElBQUksR0FBRyxpQkFBaUI7RUFDcEUsSUFBSW5CLGVBQXlCLEdBQUdDLGdCQUFDLENBQUNDLE1BQU0sQ0FBQ0MsY0FBYyxFQUFFO0lBQ3ZEQyxJQUFJLEVBQUUsSUFBQWdCLDZCQUFrQixFQUN0QkQsSUFBSSxFQUNKckMsS0FBSyxDQUFDWSxJQUFJLEVBQ1Z3QixRQUFRLEVBQ1IsS0FBSyxFQUNMLElBQUksRUFDSixLQUFLLEVBQ0xwQyxLQUFLLENBQUMyQixXQUNSLENBQUM7SUFDREYsV0FBVyxFQUFFO0VBQ2YsQ0FBQyxDQUFDO0VBQ0Y7RUFDQTtFQUNBUCxlQUFlLENBQUMsaUJBQWlCLENBQUMsR0FBR2xCLEtBQUssQ0FBQ0ssRUFBRTtFQUM3Q2EsZUFBZSxDQUFDLGNBQWMsQ0FBQyxHQUFHLE9BQU87RUFDekNBLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHbEIsS0FBSyxDQUFDMEIsVUFBVTtFQUN0RFIsZUFBZSxDQUFDLG1CQUFtQixDQUFDLEdBQUdsQixLQUFLLENBQUMyQixXQUFXO0VBQ3hELElBQUlHLE9BQU8sRUFBRVosZUFBZSxDQUFDLGNBQWMsQ0FBQyxHQUFHLGNBQWM7RUFDN0QsSUFBTXFCLFdBQVcsR0FBR1IsVUFBVSxDQUMzQlMsU0FBUyxDQUFDLENBQUMsQ0FDWEMsSUFBSSxDQUFDLFVBQUNDLEtBQUs7SUFBQSxPQUFLQSxLQUFLLENBQUNDLGVBQWUsS0FBSzNDLEtBQUssQ0FBQ0ssRUFBRTtFQUFBLEVBQUM7O0VBRXREO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7RUFFQSxJQUFJLENBQUNrQyxXQUFXLEVBQUU7SUFDaEJyQixlQUFlLENBQUMsaUJBQWlCLENBQUMsR0FBR2xCLEtBQUssQ0FBQ0ssRUFBRTtJQUM3Q2EsZUFBZSxDQUFDLGNBQWMsQ0FBQyxHQUFHLE9BQU87SUFDekNBLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHbEIsS0FBSyxDQUFDMEIsVUFBVTtJQUN0RFIsZUFBZSxDQUFDLG1CQUFtQixDQUFDLEdBQUdsQixLQUFLLENBQUMyQixXQUFXO0lBQ3hELElBQUlHLE9BQU8sRUFBRVosZUFBZSxDQUFDLGNBQWMsQ0FBQyxHQUFHLGNBQWM7SUFFN0RhLFVBQVUsQ0FBQ2EsUUFBUSxDQUFDMUIsZUFBZSxDQUFDO0lBQ3BDLElBQUlMLGNBQWMsQ0FBQ2IsS0FBSyxDQUFDLEVBQUU7TUFDekI2QyxpQkFBaUIsQ0FBQzdDLEtBQUssRUFBRWtCLGVBQWUsRUFBRWMsY0FBYyxDQUFDO0lBQzNEO0lBRUFjLGtCQUFrQixDQUFDakIsR0FBRyxFQUFFN0IsS0FBSyxFQUFFa0IsZUFBZSxFQUFFaUIsV0FBVyxDQUFDO0VBQzlEOztFQUVBO0VBQ0EsSUFBSW5DLEtBQUssQ0FBQytDLG1CQUFtQixFQUFFO0lBQzdCLElBQUk3QixnQkFBZSxHQUFHQyxnQkFBQyxDQUFDQyxNQUFNLENBQUNDLGNBQWMsRUFBRTtNQUM3Q0MsSUFBSSxFQUFFSCxnQkFBQyxDQUFDNkIsT0FBTyxDQUFDO1FBQ2RDLFNBQVMsaUJBQUF2QyxNQUFBLENBRUxWLEtBQUssQ0FBQytDLG1CQUFtQixJQUFJLEdBQUcsR0FDNUIscURBQXFELEdBQ3JELHNCQUFzQixtQkFBQXJDLE1BQUEsQ0FFMUJWLEtBQUssQ0FBQytDLG1CQUFtQixHQUFHLENBQUMsR0FBRyxhQUFhLEdBQUcsRUFBRSxtQkFDakQ7UUFDTEcsSUFBSSxRQUFBeEMsTUFBQSxDQUFRVixLQUFLLENBQUMrQyxtQkFBbUIsU0FBTTtRQUMzQ0ksVUFBVSxFQUFFLElBQUFDLHlCQUFlLEVBQUN2QixHQUFHLENBQUN3QixLQUFLLENBQUMsQ0FBQ0Y7TUFDekMsQ0FBQyxDQUFDO01BQ0YxQixXQUFXLEVBQUUsS0FBSztNQUNsQjZCLE9BQU8sRUFBRXhCLE9BQU8sR0FBRyxDQUFDLEdBQUc7SUFDekIsQ0FBQyxDQUFDO0lBRUZaLGdCQUFlLENBQUMsaUJBQWlCLENBQUMsR0FBR2xCLEtBQUssQ0FBQ0ssRUFBRTtJQUM3Q2EsZ0JBQWUsQ0FBQyxjQUFjLENBQUMsR0FBRyxZQUFZO0lBQzlDLElBQUlZLE9BQU8sRUFBRVosZ0JBQWUsQ0FBQyxjQUFjLENBQUMsR0FBRyxtQkFBbUI7RUFDcEU7QUFDRixDQUFDO0FBQUNYLE9BQUEsQ0FBQXFCLGlCQUFBLEdBQUFBLGlCQUFBO0FBRUssSUFBTTJCLGtCQUFrQixHQUFHLFNBQXJCQSxrQkFBa0JBLENBQzdCbEMsY0FBMkIsRUFDM0JyQixLQUFhLEVBQ2I2QixHQUFHLEVBQ0hDLE9BQVEsRUFDUkMsVUFBVyxFQUNSO0VBQ0gsSUFBSXlCLFNBQVMsR0FBRyxJQUFJckMsZ0JBQUMsQ0FBQ3NDLElBQUksQ0FBQztJQUN6QkMsT0FBTyxFQUFFQyxtQkFBVTtJQUNuQkMsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNoQlQsVUFBVSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUc7RUFDdkIsQ0FBQyxDQUFDO0VBQ0YsSUFBSVUsV0FBZ0IsR0FBRyxJQUFJMUMsZ0JBQUMsQ0FBQzJDLE1BQU0sQ0FBQ3pDLGNBQWMsRUFBRTtJQUNsREMsSUFBSSxFQUFFa0MsU0FBUztJQUNmL0IsV0FBVyxFQUFFO0VBQ2YsQ0FBQyxDQUFDO0VBQ0ZvQyxXQUFXLENBQUNFLFdBQVcsQ0FBQ3ZELHlCQUF5QixDQUFDUixLQUFLLENBQUMsQ0FBQztFQUN6RDZELFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHN0QsS0FBSyxDQUFDSyxFQUFFO0VBQ3pDd0QsV0FBVyxDQUFDLGNBQWMsQ0FBQyxHQUFHLE9BQU87RUFDckNBLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLFNBQVM7RUFDM0NBLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHN0QsS0FBSyxDQUFDMEIsVUFBVTtFQUNsRG1DLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHN0QsS0FBSyxDQUFDMkIsV0FBVztFQUNwRCxJQUFJRyxPQUFPLEVBQUUrQixXQUFXLENBQUMsY0FBYyxDQUFDLEdBQUcsY0FBYztFQUN6RDlCLFVBQVUsQ0FBQ2EsUUFBUSxDQUFDaUIsV0FBVyxDQUFDO0FBQ2xDLENBQUM7QUFBQ3RELE9BQUEsQ0FBQWdELGtCQUFBLEdBQUFBLGtCQUFBO0FBRUssSUFBTVMsZ0JBQWdCLEdBQUcsU0FBbkJBLGdCQUFnQkEsQ0FBSWhFLEtBQWEsRUFBRUMsS0FBYSxFQUFLO0VBQ2hFLFFBQVFELEtBQUssQ0FBQ1csS0FBSyxDQUFDMEIsSUFBSTtJQUN0QixLQUFLLGlCQUFpQjtNQUNwQixJQUFJNEIsbUJBQW1CLENBQUM3RCxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQ3BDLElBQUk4RCw2QkFBNkIsQ0FBQ2pFLEtBQUssRUFBRUQsS0FBSyxDQUFDLEVBQUU7VUFDL0NpRSxtQkFBbUIsQ0FBQ0UsT0FBTyxDQUFDQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7UUFDbkQsQ0FBQyxNQUFNLElBQUlDLHFCQUFxQixDQUFDcEUsS0FBSyxFQUFFRCxLQUFLLENBQUMsRUFBRTtVQUM5Q2lFLG1CQUFtQixDQUFDRSxPQUFPLENBQUNHLHlCQUF5QixDQUFDLENBQUMsQ0FBQztRQUMxRCxDQUFDLE1BQU07VUFDTEwsbUJBQW1CLENBQUNFLE9BQU8sQ0FBQ0ksa0JBQWtCLENBQUMsQ0FBQyxDQUFDO1FBQ25EO01BQ0Y7TUFFQSxPQUFPTixtQkFBbUI7SUFDNUIsS0FBSyxxQkFBcUI7TUFDeEIsSUFBSU8sdUJBQXVCLENBQUNwRSxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQ3hDLElBQUk4RCw2QkFBNkIsQ0FBQ2pFLEtBQUssRUFBRUQsS0FBSyxDQUFDLEVBQUU7VUFDL0N3RSx1QkFBdUIsQ0FBQ0wsT0FBTyxDQUFDQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7UUFDdkQsQ0FBQyxNQUFNLElBQUlDLHFCQUFxQixDQUFDcEUsS0FBSyxFQUFFRCxLQUFLLENBQUMsRUFBRTtVQUM5Q3dFLHVCQUF1QixDQUFDTCxPQUFPLENBQUNHLHlCQUF5QixDQUFDLENBQUMsQ0FBQztRQUM5RCxDQUFDLE1BQU07VUFDTEUsdUJBQXVCLENBQUNMLE9BQU8sQ0FBQ0ksa0JBQWtCLENBQUMsQ0FBQyxDQUFDO1FBQ3ZEO01BQ0Y7TUFFQSxPQUFPQyx1QkFBdUI7SUFDaEMsS0FBSyxrQ0FBa0M7TUFDckMsSUFBSUMsZ0JBQWdCLENBQUNyRSxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQ2pDLElBQUk4RCw2QkFBNkIsQ0FBQ2pFLEtBQUssRUFBRUQsS0FBSyxDQUFDLEVBQUU7VUFDL0N5RSxnQkFBZ0IsQ0FBQ04sT0FBTyxDQUFDQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7UUFDaEQsQ0FBQyxNQUFNLElBQUlDLHFCQUFxQixDQUFDcEUsS0FBSyxFQUFFRCxLQUFLLENBQUMsRUFBRTtVQUM5Q3lFLGdCQUFnQixDQUFDTixPQUFPLENBQUNHLHlCQUF5QixDQUFDLENBQUMsQ0FBQztRQUN2RCxDQUFDLE1BQU07VUFDTEcsZ0JBQWdCLENBQUNOLE9BQU8sQ0FBQ0ksa0JBQWtCLENBQUMsQ0FBQyxDQUFDO1FBQ2hEO01BQ0Y7TUFFQSxPQUFPRSxnQkFBZ0I7SUFFekIsS0FBSyxvQkFBb0I7TUFDdkIsSUFBSTFFLGtCQUFrQixDQUFDQyxLQUFLLEVBQUVDLEtBQUssQ0FBQyxFQUFFO1FBQ3BDLE9BQU8sQ0FDTGtCLGdCQUFDLENBQUNHLElBQUksQ0FBQztVQUNMb0MsT0FBTyxFQUFFZ0Isd0JBQWU7VUFDeEJkLFFBQVEsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7VUFDaEJULFVBQVUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFO1FBQ3JCLENBQUMsQ0FBQyxFQUVGaEMsZ0JBQUMsQ0FBQ0csSUFBSSxDQUFDO1VBQ0xvQyxPQUFPLEVBQUVpQiwwQkFBcUI7VUFDOUJmLFFBQVEsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7VUFFaEJULFVBQVUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7VUFDcEJ5QixXQUFXLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1FBQ3RCLENBQUMsQ0FBQyxDQUNIO01BQ0g7TUFFQSxPQUFPQyxzQkFBc0I7SUFFL0I7TUFDRSxPQUFPLElBQUk7RUFDZjtBQUNGLENBQUM7QUFBQ3RFLE9BQUEsQ0FBQXlELGdCQUFBLEdBQUFBLGdCQUFBO0FBRUssSUFBTU8sa0JBQWtCLEdBQUcsU0FBckJBLGtCQUFrQkEsQ0FBQSxFQUcxQjtFQUFBLElBRkhPLFNBQWtCLEdBQUE3QyxTQUFBLENBQUE3QixNQUFBLFFBQUE2QixTQUFBLFFBQUFDLFNBQUEsR0FBQUQsU0FBQSxNQUFHLEtBQUs7RUFBQSxJQUMxQjhDLEtBQWMsR0FBQTlDLFNBQUEsQ0FBQTdCLE1BQUEsUUFBQTZCLFNBQUEsUUFBQUMsU0FBQSxHQUFBRCxTQUFBLE1BQUcsS0FBSztFQUV0QixPQUFPZCxnQkFBQyxDQUFDRyxJQUFJLENBQUM7SUFDWm9DLE9BQU8sRUFBRXNCLDRCQUFtQjtJQUM1QnBCLFFBQVEsRUFBRWtCLFNBQVMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDckMzQixVQUFVLEVBQUUyQixTQUFTLElBQUlDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHRCxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDM0VGLFdBQVcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUU7RUFDdEIsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUFDckUsT0FBQSxDQUFBZ0Usa0JBQUEsR0FBQUEsa0JBQUE7QUFFSyxJQUFNTixtQkFBbUIsR0FBRyxDQUNqQzlDLGdCQUFDLENBQUNHLElBQUksQ0FBQztFQUNMb0MsT0FBTyxFQUFFdUIscUJBQWU7RUFDeEJyQixRQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0VBQ2hCVCxVQUFVLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDO0VBQ3hCeUIsV0FBVyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRTtBQUN0QixDQUFDLENBQUMsRUFDRnpELGdCQUFDLENBQUNHLElBQUksQ0FBQztFQUNMb0MsT0FBTyxFQUFFd0Isb0JBQVk7RUFDckJ0QixRQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0VBQ2hCVCxVQUFVLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO0VBQ25CeUIsV0FBVyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRTtBQUN0QixDQUFDLENBQUMsQ0FDSDtBQUFDckUsT0FBQSxDQUFBMEQsbUJBQUEsR0FBQUEsbUJBQUE7QUFFSyxJQUFNTyx1QkFBdUIsR0FBRyxDQUNyQ3JELGdCQUFDLENBQUNHLElBQUksQ0FBQztFQUNMb0MsT0FBTyxFQUFFeUIsb0JBQWM7RUFDdkJ2QixRQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0VBQ2hCVCxVQUFVLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDO0VBQ3hCeUIsV0FBVyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRTtBQUN0QixDQUFDLENBQUMsRUFDRnpELGdCQUFDLENBQUNHLElBQUksQ0FBQztFQUNMb0MsT0FBTyxFQUFFMEIsd0JBQWtCO0VBQzNCeEIsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztFQUNoQlQsVUFBVSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztFQUNuQnlCLFdBQVcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUU7QUFDdEIsQ0FBQyxDQUFDLENBQ0g7QUFBQ3JFLE9BQUEsQ0FBQWlFLHVCQUFBLEdBQUFBLHVCQUFBO0FBRUssSUFBTUssc0JBQXNCLEdBQUcsQ0FDcEMxRCxnQkFBQyxDQUFDRyxJQUFJLENBQUM7RUFDTG9DLE9BQU8sRUFBRTJCLGlCQUFhO0VBQ3RCekIsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztFQUVoQlQsVUFBVSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQztFQUNwQnlCLFdBQVcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUU7QUFDdEIsQ0FBQyxDQUFDLENBQ0g7QUFBQ3JFLE9BQUEsQ0FBQXNFLHNCQUFBLEdBQUFBLHNCQUFBO0FBRUssSUFBTUosZ0JBQWdCLEdBQUcsQ0FDOUJ0RCxnQkFBQyxDQUFDRyxJQUFJLENBQUM7RUFDTG9DLE9BQU8sRUFBRTRCLHlCQUFtQjtFQUM1QjFCLFFBQVEsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7RUFDaEJULFVBQVUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUM7RUFDeEJ5QixXQUFXLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFO0FBQ3RCLENBQUMsQ0FBQyxFQUNGekQsZ0JBQUMsQ0FBQ0csSUFBSSxDQUFDO0VBQ0xvQyxPQUFPLEVBQUU2QixpQkFBVztFQUNwQjNCLFFBQVEsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7RUFDaEJULFVBQVUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7RUFDbkJ5QixXQUFXLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFO0FBQ3RCLENBQUMsQ0FBQyxDQUNIO0FBQUNyRSxPQUFBLENBQUFrRSxnQkFBQSxHQUFBQSxnQkFBQTtBQUVLLElBQU1MLGtCQUFrQixHQUFHLFNBQXJCQSxrQkFBa0JBLENBQUEsRUFBUztFQUN0QyxPQUFPakQsZ0JBQUMsQ0FBQ0csSUFBSSxDQUFDO0lBQ1pvQyxPQUFPLEVBQUVnQix3QkFBZTtJQUN4QmQsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNoQlQsVUFBVSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUNwQnlCLFdBQVcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUU7RUFDdEIsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUFDckUsT0FBQSxDQUFBNkQsa0JBQUEsR0FBQUEsa0JBQUE7QUFFSyxJQUFNRSx5QkFBeUIsR0FBRyxTQUE1QkEseUJBQXlCQSxDQUFBLEVBQVM7RUFDN0MsT0FBT25ELGdCQUFDLENBQUNHLElBQUksQ0FBQztJQUNab0MsT0FBTyxFQUFFOEIsMEJBQWlCO0lBQzFCNUIsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNoQlQsVUFBVSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUNwQnlCLFdBQVcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUU7RUFDdEIsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUFDckUsT0FBQSxDQUFBK0QseUJBQUEsR0FBQUEseUJBQUE7QUFFSyxJQUFNSiw2QkFBNkIsR0FBRyxTQUFoQ0EsNkJBQTZCQSxDQUFJakUsS0FBYSxFQUFFRCxLQUFhLEVBQUs7RUFDN0UsSUFBSXlGLE1BQU07RUFFVixJQUFJeEYsS0FBSyxLQUFLLElBQUksSUFBSUEsS0FBSyxLQUFLaUMsU0FBUyxFQUFFO0lBQ3pDdUQsTUFBTSxHQUFHeEYsS0FBSyxDQUFDeUYsT0FBTyxDQUFDQyxNQUFNLENBQUMsVUFBQ0YsTUFBTTtNQUFBLE9BQUtBLE1BQU0sQ0FBQ25GLFFBQVEsS0FBS04sS0FBSyxDQUFDSyxFQUFFO0lBQUEsRUFBQyxDQUFDLENBQUMsQ0FBQztFQUM1RTtFQUVBLE9BQU9KLEtBQUssS0FBSyxJQUFJLElBQUl3RixNQUFNLElBQUl4RixLQUFLLENBQUMyRixlQUFlLEtBQUtILE1BQU0sQ0FBQ25GLFFBQVE7QUFDOUUsQ0FBQztBQUFDQyxPQUFBLENBQUEyRCw2QkFBQSxHQUFBQSw2QkFBQTtBQUVLLElBQU1HLHFCQUFxQixHQUFHLFNBQXhCQSxxQkFBcUJBLENBQUlwRSxLQUFhLEVBQUVELEtBQWEsRUFBSztFQUNyRSxJQUFJQyxLQUFLLEtBQUtpQyxTQUFTLEVBQUU7RUFDekIsT0FDRWpDLEtBQUssS0FBSyxJQUFJLElBQ2RBLEtBQUssQ0FBQ3lGLE9BQU8sQ0FBQ0MsTUFBTSxDQUFDLFVBQUNGLE1BQU07SUFBQSxPQUFLQSxNQUFNLENBQUNuRixRQUFRLEtBQUtOLEtBQUssQ0FBQ0ssRUFBRTtFQUFBLEVBQUMsQ0FBQyxDQUFDLENBQUM7QUFFckUsQ0FBQztBQUFDRSxPQUFBLENBQUE4RCxxQkFBQSxHQUFBQSxxQkFBQTtBQUVLLElBQU13Qix1QkFBdUIsR0FBRyxTQUExQkEsdUJBQXVCQSxDQUNsQ3hFLGNBQTJCLEVBQzNCeUUsYUFBc0IsRUFDdEJqRSxHQUFHLEVBQ0g3QixLQUFhLEVBQ2JDLEtBQWEsRUFDYjZCLE9BQVEsRUFDUkMsVUFBVyxFQUNSO0VBQ0g7RUFDQTtFQUNBLElBQUlnRSxZQUFZLEdBQUcsQ0FDakI1RSxnQkFBQyxDQUFDRyxJQUFJLENBQUM7SUFDTG9DLE9BQU8sRUFBRXNDLG1CQUFhO0lBQ3RCcEMsUUFBUSxFQUFFa0MsYUFBYSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN6QzNDLFVBQVUsRUFBRTJDLGFBQWEsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQztJQUNuRGxCLFdBQVcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUU7RUFDdEIsQ0FBQyxDQUFDLEVBQ0Z6RCxnQkFBQyxDQUFDRyxJQUFJLENBQUM7SUFDTG9DLE9BQU8sRUFBRXVDLHFCQUFlO0lBQ3hCckMsUUFBUSxFQUFFa0MsYUFBYSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN6QzNDLFVBQVUsRUFBRTJDLGFBQWEsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUM5Q2xCLFdBQVcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUU7RUFDdEIsQ0FBQyxDQUFDLENBQ0g7RUFFRCxJQUFJc0IsU0FBUyxHQUFHLEtBQUs7RUFDckIsSUFBSWhDLDZCQUE2QixDQUFDakUsS0FBSyxFQUFFRCxLQUFLLENBQUMsSUFBSSxDQUFDOEYsYUFBYSxFQUFFO0lBQ2pFQyxZQUFZLENBQUM1QixPQUFPLENBQUNDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztFQUM1QyxDQUFDLE1BQU0sSUFBSUMscUJBQXFCLENBQUNwRSxLQUFLLEVBQUVELEtBQUssQ0FBQyxJQUFJLENBQUM4RixhQUFhLEVBQUU7SUFDaEVDLFlBQVksQ0FBQzVCLE9BQU8sQ0FBQ0cseUJBQXlCLENBQUMsQ0FBQyxDQUFDO0VBQ25ELENBQUMsTUFBTTtJQUNMNEIsU0FBUyxHQUFHLElBQUk7SUFDaEJILFlBQVksQ0FBQzVCLE9BQU8sQ0FBQ0ksa0JBQWtCLENBQUN1QixhQUFhLEVBQUVJLFNBQVMsQ0FBQyxDQUFDO0VBQ3BFO0VBRUFILFlBQVksQ0FBQ0ksT0FBTyxDQUFDLFVBQUM3RSxJQUFJLEVBQUU4RSxLQUFLLEVBQUs7SUFDcEMsSUFBSWxGLGVBQW9CLEdBQUdDLGdCQUFDLENBQUNDLE1BQU0sQ0FBQ0MsY0FBYyxFQUFFO01BQ2xEQyxJQUFJLEVBQUVBLElBQUk7TUFDVkcsV0FBVyxFQUFFO0lBQ2YsQ0FBQyxDQUFDO0lBQ0ZQLGVBQWUsQ0FBQzZDLFdBQVcsQ0FBQ3ZELHlCQUF5QixDQUFDUixLQUFLLENBQUMsQ0FBQztJQUM3RGtCLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHa0YsS0FBSztJQUM3Q2xGLGVBQWUsQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLElBQUk7SUFDOUNBLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHZ0YsU0FBUyxHQUFHLEtBQUssR0FBR0osYUFBYTtJQUN0RTVFLGVBQWUsQ0FBQyxhQUFhLENBQUMsR0FBR2dGLFNBQVM7SUFDMUNoRixlQUFlLENBQUMsaUJBQWlCLENBQUMsR0FBR2xCLEtBQUssQ0FBQ0ssRUFBRTtJQUM3Q2EsZUFBZSxDQUFDLGNBQWMsQ0FBQyxHQUFHLFVBQVU7SUFDNUMsSUFBSVksT0FBTyxFQUFFWixlQUFlLENBQUMsY0FBYyxDQUFDLEdBQUcsaUJBQWlCO0lBQ2hFYSxVQUFVLENBQUNhLFFBQVEsQ0FBQzFCLGVBQWUsQ0FBQztFQUN0QyxDQUFDLENBQUM7QUFDSixDQUFDO0FBQUNYLE9BQUEsQ0FBQXNGLHVCQUFBLEdBQUFBLHVCQUFBO0FBRUssSUFBTVEsMEJBQTBCLEdBQUcsU0FBN0JBLDBCQUEwQkEsQ0FDckNoRixjQUEyQixFQUMzQnlFLGFBQXNCLEVBQ3RCakUsR0FBRyxFQUNIN0IsS0FBYSxFQUNiQyxLQUFhLEVBQ2I2QixPQUFRLEVBQ1JDLFVBQVcsRUFDUjtFQUNIO0VBQ0E7RUFDQSxJQUFJdUUsZUFBZSxHQUFHLENBQ3BCbkYsZ0JBQUMsQ0FBQ0csSUFBSSxDQUFDO0lBQ0xvQyxPQUFPLEVBQUU2QyxtQkFBYTtJQUN0QjNDLFFBQVEsRUFBRWtDLGFBQWEsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDekMzQyxVQUFVLEVBQUUyQyxhQUFhLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUM7SUFDbkRsQixXQUFXLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFO0VBQ3RCLENBQUMsQ0FBQyxFQUNGekQsZ0JBQUMsQ0FBQ0csSUFBSSxDQUFDO0lBQ0xvQyxPQUFPLEVBQUU4Qyx3QkFBa0I7SUFDM0I1QyxRQUFRLEVBQUVrQyxhQUFhLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDM0MsVUFBVSxFQUFFMkMsYUFBYSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQzlDbEIsV0FBVyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRTtFQUN0QixDQUFDLENBQUMsQ0FDSDtFQUVELElBQUlWLDZCQUE2QixDQUFDakUsS0FBSyxFQUFFRCxLQUFLLENBQUMsSUFBSSxDQUFDOEYsYUFBYSxFQUFFO0lBQ2pFUSxlQUFlLENBQUNuQyxPQUFPLENBQUNDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztFQUMvQyxDQUFDLE1BQU0sSUFBSUMscUJBQXFCLENBQUNwRSxLQUFLLEVBQUVELEtBQUssQ0FBQyxJQUFJLENBQUM4RixhQUFhLEVBQUU7SUFDaEVRLGVBQWUsQ0FBQ25DLE9BQU8sQ0FBQ0cseUJBQXlCLENBQUMsQ0FBQyxDQUFDO0VBQ3RELENBQUMsTUFBTTtJQUNMZ0MsZUFBZSxDQUFDbkMsT0FBTyxDQUFDSSxrQkFBa0IsQ0FBQ3VCLGFBQWEsQ0FBQyxDQUFDO0VBQzVEO0VBRUFRLGVBQWUsQ0FBQ0gsT0FBTyxDQUFDLFVBQUM3RSxJQUFJLEVBQUU4RSxLQUFLLEVBQUs7SUFDdkMsSUFBSWxGLGVBQW9CLEdBQUdDLGdCQUFDLENBQUNDLE1BQU0sQ0FBQ0MsY0FBYyxFQUFFO01BQ2xEQyxJQUFJLEVBQUVBLElBQUk7TUFDVkcsV0FBVyxFQUFFO0lBQ2YsQ0FBQyxDQUFDO0lBQ0ZQLGVBQWUsQ0FBQzZDLFdBQVcsQ0FBQ3ZELHlCQUF5QixDQUFDUixLQUFLLENBQUMsQ0FBQztJQUM3RGtCLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHa0YsS0FBSztJQUM3Q2xGLGVBQWUsQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLElBQUk7SUFDOUNBLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHNEUsYUFBYTtJQUNsRDVFLGVBQWUsQ0FBQyxhQUFhLENBQUMsR0FBRyxLQUFLO0lBQ3RDQSxlQUFlLENBQUMsaUJBQWlCLENBQUMsR0FBR2xCLEtBQUssQ0FBQ0ssRUFBRTtJQUM3Q2EsZUFBZSxDQUFDLGNBQWMsQ0FBQyxHQUFHLGFBQWE7SUFDL0MsSUFBSVksT0FBTyxFQUFFWixlQUFlLENBQUMsY0FBYyxDQUFDLEdBQUcsb0JBQW9CO0lBQ25FYSxVQUFVLENBQUNhLFFBQVEsQ0FBQzFCLGVBQWUsQ0FBQztFQUN0QyxDQUFDLENBQUM7QUFDSixDQUFDO0FBQUNYLE9BQUEsQ0FBQThGLDBCQUFBLEdBQUFBLDBCQUFBO0FBRUssSUFBTUksbUJBQW1CLEdBQUcsU0FBdEJBLG1CQUFtQkEsQ0FDOUJwRixjQUEyQixFQUMzQnBCLEtBQWEsRUFDYkQsS0FBYSxFQUNiNkIsR0FBRyxFQUNIQyxPQUFPLEVBQ1BDLFVBQVcsRUFDUjtFQUNILElBQUkyRSxlQUFlLEdBQUd6RyxLQUFLLENBQUMwRyxTQUFTLENBQUM5RSxHQUFHLENBQUMsVUFBQytFLENBQUM7SUFBQSxPQUFLQSxDQUFDLENBQUN0RyxRQUFRO0VBQUEsRUFBQztFQUM1RCxJQUNFTCxLQUFLLEtBQUssSUFBSSxJQUNkQSxLQUFLLENBQUMwRyxTQUFTLENBQUN2RyxNQUFNLEtBQUssQ0FBQyxJQUM1QnNHLGVBQWUsQ0FBQ0csUUFBUSxDQUFDN0csS0FBSyxDQUFDSyxFQUFFLENBQUMsRUFDbEM7SUFDQXdGLHVCQUF1QixDQUNyQnhFLGNBQWMsRUFDZDJDLGdCQUFnQixDQUFDaEUsS0FBSyxFQUFFQyxLQUFLLENBQUMsS0FBSyxJQUFJLEVBQ3ZDNEIsR0FBRyxFQUNIN0IsS0FBSyxFQUNMQyxLQUFLLEVBQ0w2QixPQUFPLEVBQ1BDLFVBQ0YsQ0FBQztFQUNIO0FBQ0YsQ0FBQztBQUFDeEIsT0FBQSxDQUFBa0csbUJBQUEsR0FBQUEsbUJBQUE7QUFFSyxJQUFNSyxZQUFZLEdBQUcsU0FBZkEsWUFBWUEsQ0FBSUMsR0FBUSxFQUFFL0csS0FBYSxFQUFLO0VBQ3ZELElBQUkrRyxHQUFHLEtBQUssSUFBSSxFQUFFO0lBQ2hCLG9IQUFBckcsTUFBQSxDQUU0RFYsS0FBSyxDQUFDSyxFQUFFLDBDQUFBSyxNQUFBLENBQ3hDc0csa0JBQVMsaUpBQUF0RyxNQUFBLENBR3FCVixLQUFLLENBQUNXLEtBQUssQ0FBQ0MsSUFBSTtFQU81RSxDQUFDLE1BQU07SUFDTCxvSEFBQUYsTUFBQSxDQUU0RHFHLEdBQUcsQ0FBQzFHLEVBQUUsMENBQUFLLE1BQUEsQ0FDdENzRyxrQkFBUyxpSkFBQXRHLE1BQUEsQ0FJbkJWLEtBQUssQ0FBQ1csS0FBSyxDQUFDQyxJQUFJLDZJQUFBRixNQUFBLENBR3lCdUcsYUFBSSxDQUFDQyxDQUFDLDJCQUU3QyxDQUFDLGtEQUFBeEcsTUFBQSxDQUVDLDJCQUEyQixHQUFHcUcsR0FBRyxDQUFDSSxRQUFRLGdIQUFBekcsTUFBQSxDQUdsQ3VHLGFBQUksQ0FBQ0MsQ0FBQywrQkFBQXhHLE1BQUEsQ0FDd0JxRyxHQUFHLENBQUNJLFFBQVEsQ0FDNUMsQ0FBQyw0VkFBQXpHLE1BQUEsQ0FTa0N1RyxhQUFJLENBQUNDLENBQUMsNkJBRTdDLENBQUMseU5BQUF4RyxNQUFBLENBSXNDdUcsYUFBSSxDQUFDQyxDQUFDLDRCQUU3QyxDQUFDO0VBTzNCO0FBQ0YsQ0FBQztBQUFDM0csT0FBQSxDQUFBdUcsWUFBQSxHQUFBQSxZQUFBO0FBRUYsSUFBTXZGLE9BQU8sR0FBRyxTQUFWQSxPQUFPQSxDQUFJdkIsS0FBYSxFQUFFb0gsT0FBZ0IsRUFBRWhGLFFBQWlCLEVBQUs7RUFDdEUsSUFBTWlGLE1BQU0sR0FBR3JILEtBQUssQ0FBQ1csS0FBSyxDQUFDMEIsSUFBSSxLQUFLLGtDQUFrQztFQUN0RSxJQUFNQSxJQUFJLEdBQ1JyQyxLQUFLLENBQUMwQixVQUFVLElBQUkyRixNQUFNLEdBQUdySCxLQUFLLENBQUNXLEtBQUssQ0FBQzBCLElBQUksR0FBRyxpQkFBaUI7RUFDbkUsSUFBSWlGLFlBQVksR0FBR2xGLFFBQVEsR0FBR0EsUUFBUSxHQUFHcEMsS0FBSyxDQUFDVyxLQUFLLENBQUNHLFdBQVc7RUFDaEUsSUFBSXVHLE1BQU0sSUFBSSxDQUFDckgsS0FBSyxDQUFDMEIsVUFBVSxFQUFFO0lBQy9CNEYsWUFBWSxTQUFBNUcsTUFBQSxDQUFTdUcsYUFBSSxDQUFDQyxDQUFDLENBQ3pCLG1FQUNGLENBQUMsTUFBRztFQUNOO0VBQ0EsT0FBTyxJQUFBNUUsNkJBQWtCLEVBQ3ZCRCxJQUFJLEVBQ0pyQyxLQUFLLENBQUNZLElBQUksRUFDVjBHLFlBQVksRUFDWkYsT0FBTyxFQUNQLENBQUNBLE9BQU8sRUFDUixLQUFLLEVBQ0xwSCxLQUFLLENBQUMyQixXQUNSLENBQUM7QUFDSCxDQUFDO0FBRU0sSUFBTTRGLE9BQU8sR0FBRyxTQUFWQSxPQUFPQSxDQUFJQyxPQUFPLEVBQUVKLE9BQU8sRUFBRXBILEtBQUssRUFBb0I7RUFBQSxJQUFsQm9DLFFBQVEsR0FBQUgsU0FBQSxDQUFBN0IsTUFBQSxRQUFBNkIsU0FBQSxRQUFBQyxTQUFBLEdBQUFELFNBQUEsTUFBRyxFQUFFO0VBQzVEdUYsT0FBTyxDQUFDRCxPQUFPLENBQUNoRyxPQUFPLENBQUN2QixLQUFLLEVBQUVvSCxPQUFPLEVBQUVoRixRQUFRLENBQUMsQ0FBQztBQUNwRCxDQUFDOztBQUVEO0FBQ0E7QUFBQTdCLE9BQUEsQ0FBQWdILE9BQUEsR0FBQUEsT0FBQTtBQUNPLElBQU1FLHlCQUF5QixHQUFHLFNBQTVCQSx5QkFBeUJBLENBQ3BDekYsY0FBc0IsRUFDdEIwRixnQkFBd0IsRUFFckI7RUFBQSxJQURIQyxrQkFBMkIsR0FBQTFGLFNBQUEsQ0FBQTdCLE1BQUEsUUFBQTZCLFNBQUEsUUFBQUMsU0FBQSxHQUFBRCxTQUFBLE1BQUcsS0FBSztFQUVuQyxJQUFJMkYsVUFBVSxHQUFHLEdBQUc7RUFFcEIsSUFBSUYsZ0JBQWdCLEdBQUcsQ0FBQyxFQUFFO0lBQ3hCLFFBQVExRixjQUFjO01BQ3BCLEtBQUssS0FBSztRQUNSNEYsVUFBVSxHQUFHRixnQkFBZ0IsQ0FBQ0csT0FBTyxDQUFDLENBQUMsQ0FBQztRQUN4QztNQUNGLEtBQUssT0FBTztRQUNWRCxVQUFVLEdBQUcsQ0FBQ0YsZ0JBQWdCLEdBQUcsT0FBTyxFQUFFRyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ3BEO01BQ0YsS0FBSyxPQUFPO1FBQ1ZELFVBQVUsR0FBRyxDQUFDRixnQkFBZ0IsR0FBRyxPQUFPLEVBQUVHLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDcEQ7SUFDSjtFQUNGO0VBQ0EsSUFBSUYsa0JBQWtCLEVBQUU7SUFDdEIsT0FBT0csc0JBQXNCLENBQUNDLFVBQVUsQ0FBQ0gsVUFBVSxDQUFDLENBQUMsQ0FBQ0ksY0FBYyxDQUFDLENBQUM7RUFDeEUsQ0FBQyxNQUFNO0lBQ0wsT0FBT0MsSUFBSSxDQUFDQyxLQUFLLENBQUNILFVBQVUsQ0FBQ0gsVUFBVSxDQUFDLENBQUMsQ0FBQ0ksY0FBYyxDQUFDLENBQUM7RUFDNUQ7QUFDRixDQUFDO0FBQUN6SCxPQUFBLENBQUFrSCx5QkFBQSxHQUFBQSx5QkFBQTtBQUVGLElBQU1LLHNCQUFzQixHQUFHLFNBQXpCQSxzQkFBc0JBLENBQUlLLE1BQU0sRUFBSztFQUN6QztFQUNBO0VBQ0E7O0VBRUEsSUFBSUEsTUFBTSxHQUFHLElBQUksRUFBRTtJQUNqQixPQUFPRixJQUFJLENBQUNDLEtBQUssQ0FBQ0MsTUFBTSxDQUFDO0VBQzNCO0VBRUEsSUFBTUMsZ0JBQWdCLEdBQUdILElBQUksQ0FBQ0MsS0FBSyxDQUFDQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0VBQ2xELElBQU1FLFlBQVksR0FBR0QsZ0JBQWdCLEdBQUcsSUFBSTtFQUU1QyxPQUFPQyxZQUFZO0FBQ3JCLENBQUM7O0FBRUQ7QUFDQTtBQUNBOztBQUVPLElBQU1DLGlCQUFpQixHQUFHLFNBQXBCQSxpQkFBaUJBLENBQUl0RyxjQUFjLEVBQUs7RUFDbkQsT0FBT2lGLGFBQUksQ0FBQ0MsQ0FBQyxnREFBQXhHLE1BQUEsQ0FFVHNCLGNBQWMsQ0FBQzZFLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLEdBQUc3RSxjQUFjLENBRXpELENBQUM7QUFDSCxDQUFDO0FBQUN6QixPQUFBLENBQUErSCxpQkFBQSxHQUFBQSxpQkFBQTtBQUVLLElBQU14RixrQkFBa0IsR0FBRyxTQUFyQkEsa0JBQWtCQSxDQUM3QmpCLEdBQUcsRUFDSDdCLEtBQUssRUFDTGtCLGVBQWUsRUFDZmlCLFdBQVcsRUFDUjtFQUNILElBQUlvRyxjQUFjLEdBQUcsS0FBSztFQUUxQjFHLEdBQUcsQ0FBQzJHLEVBQUUsQ0FBQyxXQUFXLEVBQUUsWUFBWTtJQUM5QjNHLEdBQUcsQ0FBQzRHLFVBQVUsQ0FBQyxDQUFDO0VBQ2xCLENBQUMsQ0FBQztFQUVGdkgsZUFBZSxDQUFDc0gsRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFNO0lBQ3JDO0lBQ0FELGNBQWMsR0FBRyxLQUFLO0VBQ3hCLENBQUMsQ0FBQztFQUVGckgsZUFBZSxDQUFDc0gsRUFBRSxDQUFDLFdBQVcsRUFBRSxZQUFNO0lBQ3BDO0lBQ0FELGNBQWMsR0FBRyxJQUFJO0VBQ3ZCLENBQUMsQ0FBQztFQUVGckgsZUFBZSxDQUFDc0gsRUFBRSxDQUFDLFdBQVcsRUFBRSxZQUFNO0lBQ3BDLElBQUlELGNBQWMsRUFBRTtJQUVwQmhCLE9BQU8sQ0FBQ3JHLGVBQWUsRUFBRSxJQUFJLEVBQUVsQixLQUFLLENBQUM7SUFDckN1SSxjQUFjLEdBQUcsSUFBSTtFQUN2QixDQUFDLENBQUM7RUFFRnJILGVBQWUsQ0FBQ3NILEVBQUUsQ0FBQyxVQUFVLEVBQUUsWUFBTTtJQUNuQyxJQUFJdEgsZUFBZSxDQUFDd0gsV0FBVyxDQUFDLENBQUMsRUFBRTtJQUVuQ25CLE9BQU8sQ0FBQ3JHLGVBQWUsRUFBRSxLQUFLLEVBQUVsQixLQUFLLENBQUM7SUFDdEN1SSxjQUFjLEdBQUcsS0FBSztFQUN4QixDQUFDLENBQUM7RUFFRixJQUFJLE9BQU9wRyxXQUFXLEtBQUssVUFBVSxFQUFFO0lBQ3JDakIsZUFBZSxDQUFDc0gsRUFBRSxDQUFDLE9BQU8sRUFBRSxZQUFNO01BQ2hDckcsV0FBVyxDQUFDakIsZUFBZSxDQUFDeUIsZUFBZSxDQUFDO01BRTVDLElBQUk5QixjQUFjLENBQUNiLEtBQUssQ0FBQyxFQUFFO1FBQ3pCLElBQUEySSx5QkFBa0IsRUFBQyw0QkFBNEIsRUFBRSxLQUFLLEVBQUU7VUFDdERySSxRQUFRLEVBQUVOLEtBQUssQ0FBQ0ssRUFBRTtVQUNsQnVJLFVBQVUsRUFBRTVJLEtBQUssQ0FBQ1k7UUFDcEIsQ0FBQyxDQUFDO01BQ0o7SUFDRixDQUFDLENBQUM7RUFDSjtBQUNGLENBQUM7QUFBQ0wsT0FBQSxDQUFBdUMsa0JBQUEsR0FBQUEsa0JBQUE7QUFFSyxJQUFNRCxpQkFBaUIsR0FBRyxTQUFwQkEsaUJBQWlCQSxDQUFJN0MsS0FBSyxFQUFFK0IsVUFBVSxFQUFFQyxjQUFjLEVBQUs7RUFDdEUsSUFBSTZHLE9BQU8sK01BQUFuSSxNQUFBLENBS0tWLEtBQUssQ0FBQ1ksSUFBSSxrRkFBQUYsTUFBQSxDQUdWVixLQUFLLENBQUNXLEtBQUssQ0FBQ0csV0FBVyxxUEFBQUosTUFBQSxDQVFUb0ksb0JBQWMsaU1BQUFwSSxNQUFBLENBSXhCcUksV0FBVyxDQUFDL0ksS0FBSyxDQUFDVyxLQUFLLENBQUNJLGVBQWUsRUFBRWlCLGNBQWMsQ0FBQyw0R0FBQXRCLE1BQUEsQ0FFRnVHLGFBQUksQ0FBQ0MsQ0FBQyxDQUM5RCxpQkFDRixDQUFDLHlGQUtkO0VBRUhuRixVQUFVLENBQUNpSCxTQUFTLENBQUNILE9BQU8sRUFBRTtJQUM1QjVGLFNBQVMsRUFBRSxvQkFBb0I7SUFDL0JnRyxRQUFRLEVBQUUsT0FBTztJQUNqQkMsUUFBUSxFQUFFLE9BQU87SUFDakJDLFdBQVcsRUFBRTtFQUNmLENBQUMsQ0FBQztBQUNKLENBQUM7QUFBQzVJLE9BQUEsQ0FBQXNDLGlCQUFBLEdBQUFBLGlCQUFBO0FBRUssSUFBTWtHLFdBQVcsR0FBRyxTQUFkQSxXQUFXQSxDQUN0QnJCLGdCQUF3QixFQUN4QjBCLFlBQW9CLEVBRWpCO0VBQUEsSUFESEMsT0FBZ0IsR0FBQXBILFNBQUEsQ0FBQTdCLE1BQUEsUUFBQTZCLFNBQUEsUUFBQUMsU0FBQSxHQUFBRCxTQUFBLE1BQUcsS0FBSztFQUV4QixJQUFJeUYsZ0JBQWdCLEdBQUcsQ0FBQyxFQUFFO0lBQ3hCLE9BQ0VELHlCQUF5QixDQUFDMkIsWUFBWSxFQUFFMUIsZ0JBQWdCLEVBQUUyQixPQUFPLENBQUMsR0FDbEUsR0FBRyxHQUNIZixpQkFBaUIsQ0FBQ2MsWUFBWSxDQUFDO0VBRW5DO0VBQ0EsT0FBT25DLGFBQUksQ0FBQ0MsQ0FBQyxDQUFDLG9DQUFvQyxDQUFDO0FBQ3JELENBQUM7QUFBQzNHLE9BQUEsQ0FBQXdJLFdBQUEsR0FBQUEsV0FBQTtBQUVLLElBQU1PLGdCQUFnQixHQUFHLFNBQW5CQSxnQkFBZ0JBLENBQUl6SCxHQUFHLEVBQUVFLFVBQVUsRUFBSztFQUNuRCxJQUFJRixHQUFHLENBQUMwSCxRQUFRLENBQUN4SCxVQUFVLENBQUMsRUFBRTtJQUM1QkYsR0FBRyxDQUFDMkgsV0FBVyxDQUFDekgsVUFBVSxDQUFDO0VBQzdCO0FBQ0YsQ0FBQztBQUFDeEIsT0FBQSxDQUFBK0ksZ0JBQUEsR0FBQUEsZ0JBQUE7QUFFSyxJQUFNRyxhQUFhLEdBQUcsU0FBaEJBLGFBQWFBLENBQUk1SCxHQUFHLEVBQUVFLFVBQVUsRUFBSztFQUNoRCxJQUFJLENBQUNGLEdBQUcsQ0FBQzBILFFBQVEsQ0FBQ3hILFVBQVUsQ0FBQyxFQUFFO0lBQzdCRixHQUFHLENBQUNlLFFBQVEsQ0FBQ2IsVUFBVSxDQUFDO0VBQzFCLENBQUMsTUFBTTtJQUNMdUgsZ0JBQWdCLENBQUN6SCxHQUFHLEVBQUVFLFVBQVUsQ0FBQztJQUNqQzBILGFBQWEsQ0FBQzVILEdBQUcsRUFBRUUsVUFBVSxDQUFDO0VBQ2hDO0FBQ0YsQ0FBQztBQUFDeEIsT0FBQSxDQUFBa0osYUFBQSxHQUFBQSxhQUFBO0FBRUssSUFBTUMsV0FBVyxHQUFHLFNBQWRBLFdBQVdBLENBQUkxSixLQUFhLEVBQUs7RUFDNUMsT0FBT0EsS0FBSyxDQUFDVyxLQUFLLENBQUMwQixJQUFJLEtBQUssa0NBQWtDO0FBQ2hFLENBQUM7QUFBQzlCLE9BQUEsQ0FBQW1KLFdBQUEsR0FBQUEsV0FBQTtBQUVLLElBQU03SSxjQUFjLEdBQUcsU0FBakJBLGNBQWNBLENBQUliLEtBQWEsRUFBSztFQUMvQyxPQUFPMkosYUFBYSxDQUFDM0osS0FBSyxDQUFDVyxLQUFLLENBQUMwQixJQUFJLENBQUM7QUFDeEMsQ0FBQztBQUFDOUIsT0FBQSxDQUFBTSxjQUFBLEdBQUFBLGNBQUE7QUFFSyxJQUFNOEksYUFBYSxHQUFHLFNBQWhCQSxhQUFhQSxDQUFJdEgsSUFBWSxFQUFLO0VBQzdDLE9BQU9BLElBQUksS0FBSyxpQkFBaUI7QUFDbkMsQ0FBQztBQUFDOUIsT0FBQSxDQUFBb0osYUFBQSxHQUFBQSxhQUFBIn0=
@@ -14,12 +14,29 @@ var _jquery = _interopRequireDefault(require("jquery"));
14
14
  var _react = _interopRequireWildcard(require("react"));
15
15
  var _highchartsReactOfficial = _interopRequireDefault(require("highcharts-react-official"));
16
16
  var _highstock = _interopRequireDefault(require("highcharts/highstock"));
17
+ var _noDataToDisplay = _interopRequireDefault(require("highcharts/modules/no-data-to-display"));
17
18
  var _ContentLoader = require("../ContentLoader");
18
19
  var _i18n = _interopRequireDefault(require("../../utilities/i18n"));
19
20
  var _styledComponents = _interopRequireDefault(require("styled-components"));
20
21
  var _reactRedux = require("react-redux");
21
22
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
22
23
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
24
+ // Initialize no-data-to-display module with Highcharts
25
+ (0, _noDataToDisplay.default)(_highstock.default);
26
+
27
+ // Set global options for noData message and style
28
+ _highstock.default.setOptions({
29
+ lang: {
30
+ noData: _i18n.default.t('general.no_data_available')
31
+ },
32
+ noData: {
33
+ style: {
34
+ fontWeight: 'bold',
35
+ fontSize: '14px',
36
+ color: '#666'
37
+ }
38
+ }
39
+ });
23
40
  function addHours(hours) {
24
41
  var hoursAgo = new Date();
25
42
  hoursAgo.setHours(hoursAgo.getHours() + hours);
@@ -229,4 +246,4 @@ var Graph = function Graph(_ref5) {
229
246
  };
230
247
  var _default = Graph;
231
248
  exports.default = _default;
232
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfanF1ZXJ5IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9oaWdoY2hhcnRzUmVhY3RPZmZpY2lhbCIsIl9oaWdoc3RvY2siLCJfQ29udGVudExvYWRlciIsIl9pMThuIiwiX3N0eWxlZENvbXBvbmVudHMiLCJfcmVhY3RSZWR1eCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mMyIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsImFkZEhvdXJzIiwiaG91cnMiLCJob3Vyc0FnbyIsIkRhdGUiLCJzZXRIb3VycyIsImdldEhvdXJzIiwiZ2V0VGltZSIsIlJlc2V0Wm9vbUJ1dHRvbiIsInN0eWxlZCIsImJ1dHRvbiIsIndpdGhDb25maWciLCJkaXNwbGF5TmFtZSIsImNvbXBvbmVudElkIiwiX3JlZiIsImlzUnRsIiwiX3JlZjIiLCJfcmVmMyIsInRoZW1lIiwiY29sb3JTY2hlbWUiLCJuYXR1cmFsIiwibjMwIiwiX3JlZjQiLCJuMjAiLCJHcmFwaCIsIl9yZWY1IiwicG9pbnRJZCIsInRpdGxlIiwic3RhcnRUaW1lIiwiZW5kVGltZSIsInBsb3RGcm9tIiwicGxvdFRvIiwibm9PYnNlcnZhdGlvbiIsIl9yZWY1JGN1c3RvbUhpZ2hDaGFydCIsImN1c3RvbUhpZ2hDaGFydE9wdGlvbnMiLCJfcmVmNSRkaXNwbGF5UmVzZXRab28iLCJkaXNwbGF5UmVzZXRab29tQnV0dG9uIiwiY2hhcnRDb21wb25lbnQiLCJ1c2VSZWYiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsInRleHQiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwiZ3JhcGhPcHRpb25zIiwic2V0R3JhcGhPcHRpb25zIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJpc0ZldGNoaW5nIiwic2V0SXNGZXRjaGluZyIsIm9iamVjdENsb25lIiwiX29iamVjdFNwcmVhZDIiLCJjcmVkaXRzIiwiZW5hYmxlZCIsInNlcmllcyIsImNoYXJ0Iiwic3BhY2luZ0JvdHRvbSIsInNwYWNpbmdMZWZ0Iiwic3BhY2luZ1JpZ2h0Iiwic3BhY2luZ1RvcCIsImJhY2tncm91bmRDb2xvciIsImhlaWdodCIsInpvb21UeXBlIiwieUF4aXMiLCJ4QXhpcyIsInR5cGUiLCJwbG90QmFuZHMiLCJ0aW1lIiwidGltZXpvbmVPZmZzZXQiLCJjcmVhdGVTZXJpZXMiLCJzRGF0YSIsImRhdGFzZXRzIiwieERhdGFzIiwiX2l0ZXJhdG9yIiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIyIiwiX3N0ZXAiLCJfbG9vcCIsImRhdGFzZXQiLCJ2YWx1ZSIsImRhdGEiLCJtYXAiLCJ2YWwiLCJqIiwicG9pbnRfaWQiLCJ1bml0IiwidG9vbHRpcCIsInBvaW50Rm9ybWF0dGVyIiwiYnVsbGV0IiwiY29uY2F0IiwiY29sb3IiLCJuYW1lIiwieSIsInRvRml4ZWQiLCJzIiwibiIsImRvbmUiLCJlcnIiLCJlIiwiZiIsIml0ZXJhdGVBbmRFdmFsIiwiY29sb3JzIiwia2V5cyIsImkiLCJsZW5ndGgiLCJfdHlwZW9mMiIsInRvU3RyaW5nIiwibWF0Y2giLCJmdW5jdGlvblN0ciIsInN1YnN0cmluZyIsImZ1bmMiLCJGdW5jdGlvbiIsImNyZWF0ZVlBeGlzIiwicmVzdWx0IiwiSGlnaGNoYXJ0cyIsImdldE9wdGlvbnMiLCIkIiwiZWFjaCIsInlBeGlzZXMiLCJpbmRleCIsInB1c2giLCJzaG93RW1wdHkiLCJnZXREYXRhIiwidXJsIiwiZmV0Y2giLCJ0aGVuIiwicmVzcG9uc2UiLCJqc29uIiwicGFyc2VJbnQiLCJ0aW1lem9uZSIsInR6X29mZnNldCIsImZyb20iLCJ0byIsInVzZUVmZmVjdCIsImNsZWFudXAiLCJyZXNldFpvb20iLCJfY2hhcnRDb21wb25lbnQkY3VycmUiLCJjdXJyZW50IiwiX2NoYXJ0Q29tcG9uZW50JGN1cnJlMiIsInNldEV4dHJlbWVzIiwibmF2Q29udGV4dCIsInVzZVNlbGVjdG9yIiwic3RhdGUiLCJuYXZfY29udGV4dF9kYXRhIiwibG9jYWxlIiwiY3JlYXRlRWxlbWVudCIsIlJvd0xvYWRlciIsIndpZHRoIiwiZmdDb2xvciIsImJnQ29sb3IiLCJGcmFnbWVudCIsInJlZiIsImhpZ2hjaGFydHMiLCJvcHRpb25zIiwib25DbGljayIsImkxOG4iLCJ0IiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvR3JhcGgvR3JhcGgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5pbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IEhpZ2hjaGFydHNSZWFjdCBmcm9tICdoaWdoY2hhcnRzLXJlYWN0LW9mZmljaWFsJztcbmltcG9ydCBIaWdoY2hhcnRzIGZyb20gJ2hpZ2hjaGFydHMvaGlnaHN0b2NrJztcbmltcG9ydCB7IFJvd0xvYWRlciB9IGZyb20gJy4uL0NvbnRlbnRMb2FkZXInO1xuaW1wb3J0IGkxOG4gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2kxOG4nO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgeyB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IGFwcFJlZHVjZXIgfSBmcm9tICcuLi8uLi9zdG9yZS9yb290UmVkdWNlcic7XG5cbnR5cGUgSVByb3BzID0ge1xuICBwb2ludElkOiBudW1iZXIgfCBudWxsO1xuICB0aXRsZT86IHN0cmluZyB8IG51bGw7XG4gIHN0YXJ0VGltZT86IG51bWJlcjtcbiAgZW5kVGltZT86IG51bWJlcjtcbiAgcGxvdEZyb20/OiBudW1iZXI7XG4gIHBsb3RUbz86IG51bWJlcjtcbiAgbm9PYnNlcnZhdGlvbj86IGJvb2xlYW47XG4gIGRpc3BsYXlSZXNldFpvb21CdXR0b24/OiBib29sZWFuO1xuICBjdXN0b21IaWdoQ2hhcnRPcHRpb25zPzogb2JqZWN0O1xufTtcblxuZnVuY3Rpb24gYWRkSG91cnMoaG91cnM6IG51bWJlcikge1xuICBsZXQgaG91cnNBZ28gPSBuZXcgRGF0ZSgpO1xuICBob3Vyc0Fnby5zZXRIb3Vycyhob3Vyc0Fnby5nZXRIb3VycygpICsgaG91cnMpO1xuICByZXR1cm4gaG91cnNBZ28uZ2V0VGltZSgpIC8gMTAwMDtcbn1cbmNvbnN0IFJlc2V0Wm9vbUJ1dHRvbiA9IHN0eWxlZC5idXR0b248eyBpc1J0bDogYm9vbGVhbiB9PmBcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDUwMHB4KSB7XG4gICAgcmlnaHQ6ICR7KHsgaXNSdGwgfSkgPT4gKGlzUnRsID8gJzE1cHgnIDogJ3Vuc2V0Jyl9IWltcG9ydGFudDtcbiAgICBsZWZ0OiAkeyh7IGlzUnRsIH0pID0+IChpc1J0bCA/ICd1bnNldCcgOiAnMTVweCcpfSAhaW1wb3J0YW50O1xuICAgIHRvcDogNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDY1cHg7XG4gIHJpZ2h0OiAxNXB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yU2NoZW1lLm5hdHVyYWwubjMwfTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBwYWRkaW5nOiAwIDVweDtcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yU2NoZW1lLm5hdHVyYWwubjIwfTtcbiAgfVxuYDtcbmNvbnN0IEdyYXBoID0gKHtcbiAgcG9pbnRJZCxcbiAgdGl0bGUsXG4gIHN0YXJ0VGltZSxcbiAgZW5kVGltZSxcbiAgcGxvdEZyb20sXG4gIHBsb3RUbyxcbiAgbm9PYnNlcnZhdGlvbixcbiAgY3VzdG9tSGlnaENoYXJ0T3B0aW9ucyA9IHt9LFxuICBkaXNwbGF5UmVzZXRab29tQnV0dG9uID0gZmFsc2UsXG59OiBJUHJvcHMpID0+IHtcbiAgY29uc3QgY2hhcnRDb21wb25lbnQgPSB1c2VSZWY8YW55PihudWxsKTtcbiAgY29uc3QgW2dyYXBoT3B0aW9ucywgc2V0R3JhcGhPcHRpb25zXSA9IHVzZVN0YXRlKHtcbiAgICB0aXRsZTogeyB0ZXh0OiAnUGxlYXNlIFdhaXQgLi4uJyB9LFxuICB9KTtcbiAgY29uc3QgW2lzRmV0Y2hpbmcsIHNldElzRmV0Y2hpbmddID0gdXNlU3RhdGU8Ym9vbGVhbj4odHJ1ZSk7XG4gIGxldCBvYmplY3RDbG9uZSA9IHtcbiAgICB0aXRsZToge1xuICAgICAgdGV4dDogdGl0bGUsXG4gICAgfSxcbiAgICBjcmVkaXRzOiB7XG4gICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICB9LFxuICAgIHNlcmllczogW10sXG4gICAgY2hhcnQ6IHtcbiAgICAgIHNwYWNpbmdCb3R0b206IDIwLFxuICAgICAgc3BhY2luZ0xlZnQ6IDAsXG4gICAgICBzcGFjaW5nUmlnaHQ6IDAsXG4gICAgICBzcGFjaW5nVG9wOiAyMCxcbiAgICAgIGJhY2tncm91bmRDb2xvcjogJ3JnYmEoMCwwLDAsMCknLFxuICAgICAgaGVpZ2h0OiAyNTAsXG4gICAgICB6b29tVHlwZTogJ3gnLFxuICAgIH0sXG4gICAgeUF4aXM6IFtdLFxuICAgIHhBeGlzOiB7XG4gICAgICB0eXBlOiAnZGF0ZXRpbWUnLFxuICAgICAgcGxvdEJhbmRzOiBbXSxcbiAgICB9LFxuICAgIHRpbWU6IHtcbiAgICAgIHRpbWV6b25lT2Zmc2V0OiAwLFxuICAgIH0sXG4gICAgLi4uY3VzdG9tSGlnaENoYXJ0T3B0aW9ucyxcbiAgfTtcbiAgY29uc3QgY3JlYXRlU2VyaWVzID0gKHNEYXRhOiBhbnkpID0+IHtcbiAgICBsZXQgZGF0YXNldHMgPSBzRGF0YS5kYXRhc2V0cztcbiAgICBsZXQgeERhdGFzID0gc0RhdGEueERhdGFzO1xuICAgIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cykge1xuICAgICAgZGF0YXNldC5kYXRhID0gZGF0YXNldC5kYXRhLm1hcCgodmFsOiBudW1iZXIsIGo6IG51bWJlcikgPT4gW1xuICAgICAgICB4RGF0YXNbZGF0YXNldC5wb2ludF9pZF1bal0sXG4gICAgICAgIHZhbCxcbiAgICAgIF0pO1xuXG4gICAgICBpZiAoZGF0YXNldD8udW5pdCkge1xuICAgICAgICBkYXRhc2V0LnRvb2x0aXAgPSB7XG4gICAgICAgICAgcG9pbnRGb3JtYXR0ZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGNvbnN0IGJ1bGxldCA9IGA8dHNwYW4gc3R5bGU9XCJmaWxsOiR7ZGF0YXNldC5jb2xvcn1cIiB4PVwiOFwiIGR5PVwiMTVcIj7il488L3RzcGFuPiBgO1xuICAgICAgICAgICAgcmV0dXJuIGA8dHNwYW4+JHtidWxsZXR9JHtcbiAgICAgICAgICAgICAgZGF0YXNldC5uYW1lXG4gICAgICAgICAgICB9OjwvdHNwYW4+IDxiPiR7dGhpcy55LnRvRml4ZWQoMil9IMKwJHtkYXRhc2V0LnVuaXR9PC9iPmA7XG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGRhdGFzZXRzO1xuICB9O1xuXG4gIGNvbnN0IGl0ZXJhdGVBbmRFdmFsID0gKGRhdGE6IGFueSwgY29sb3JzOiBhbnkpID0+IHtcbiAgICBpZiAoZGF0YSkge1xuICAgICAgbGV0IGtleXMgPSBPYmplY3Qua2V5cyhkYXRhKTtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xuICAgICAgICBsZXQga2V5ID0ga2V5c1tpXSxcbiAgICAgICAgICB2YWx1ZSA9IGRhdGFba2V5XTtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PSAnb2JqZWN0Jykge1xuICAgICAgICAgIGl0ZXJhdGVBbmRFdmFsKHZhbHVlLCBjb2xvcnMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZS50b1N0cmluZygpLm1hdGNoKC9mdW5jdGlvbjo6LykpIHtcbiAgICAgICAgICAgIGxldCBmdW5jdGlvblN0ciA9IHZhbHVlLnN1YnN0cmluZygxMCksXG4gICAgICAgICAgICAgIGZ1bmMgPSBuZXcgRnVuY3Rpb24oZnVuY3Rpb25TdHIpO1xuICAgICAgICAgICAgZGF0YVtrZXldID0gZnVuYygpO1xuICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWUgJiYgdmFsdWUudG9TdHJpbmcoKS5tYXRjaCgvY29sb3JzXFxbKC4qPylcXF0vKSkge1xuICAgICAgICAgICAgZGF0YVtrZXldID0gY29sb3JzW3ZhbHVlLnRvU3RyaW5nKCkubWF0Y2goL2NvbG9yc1xcWyguKj8pXFxdLylbMV1dO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICBjb25zdCBjcmVhdGVZQXhpcyA9IChzRGF0YTogYW55KSA9PiB7XG4gICAgdmFyIHJlc3VsdDogYW55W10gPSBbXSxcbiAgICAgIGNvbG9ycyA9IEhpZ2hjaGFydHMuZ2V0T3B0aW9ucygpLmNvbG9ycztcbiAgICBpZiAoc0RhdGEpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgICAgJC5lYWNoKHNEYXRhLnlBeGlzZXMsIGZ1bmN0aW9uIChpbmRleCwgeUF4aXMpIHtcbiAgICAgICAgaXRlcmF0ZUFuZEV2YWwoeUF4aXMsIGNvbG9ycyk7XG4gICAgICAgIHJlc3VsdC5wdXNoKHlBeGlzKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAocmVzdWx0Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmVzdWx0LnB1c2goe1xuICAgICAgICBzaG93RW1wdHk6IGZhbHNlLFxuICAgICAgICB0aXRsZToge1xuICAgICAgICAgIHRleHQ6ICcnLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfTtcblxuICBjb25zdCBnZXREYXRhID0gKCkgPT4ge1xuICAgIHN0YXJ0VGltZSA9IHN0YXJ0VGltZSB8fCBhZGRIb3VycygtMyk7XG4gICAgZW5kVGltZSA9IGVuZFRpbWUgfHwgYWRkSG91cnMoMyk7XG4gICAgbGV0IHVybCA9IGAvY29udHJvbF9yb29tL3BvaW50X2NoYXJ0X2RhdGEuanNvbj9wb2ludF9pZD0ke3BvaW50SWR9YDtcbiAgICB1cmwgKz0gc3RhcnRUaW1lID8gYCZzdGFydD0ke3N0YXJ0VGltZX1gIDogJyc7XG4gICAgdXJsICs9IGVuZFRpbWUgPyBgJnN0b3A9JHtlbmRUaW1lfWAgOiAnJztcbiAgICB1cmwgKz0gbm9PYnNlcnZhdGlvbiA/IGAmbm9fb2JzZXJ2YXRpb249JHtub09ic2VydmF0aW9ufWAgOiAnJztcbiAgICBzZXRJc0ZldGNoaW5nKHRydWUpO1xuICAgIGZldGNoKHVybClcbiAgICAgIC50aGVuKChyZXNwb25zZSkgPT4gcmVzcG9uc2UuanNvbigpKVxuICAgICAgLnRoZW4oKGpzb24pID0+IHtcbiAgICAgICAgLy9AdHMtaWdub3JlXG4gICAgICAgIG9iamVjdENsb25lLnNlcmllcyA9IGNyZWF0ZVNlcmllcyhqc29uKTtcbiAgICAgICAgLy9AdHMtaWdub3JlXG4gICAgICAgIG9iamVjdENsb25lLnlBeGlzID0gY3JlYXRlWUF4aXMoanNvbik7XG4gICAgICAgIG9iamVjdENsb25lLnRpbWUudGltZXpvbmVPZmZzZXQgPVxuICAgICAgICAgIHBhcnNlSW50KGpzb24udGltZXpvbmUudHpfb2Zmc2V0KSAqIDYwO1xuICAgICAgICBpZiAocGxvdEZyb20gJiYgcGxvdFRvKSB7XG4gICAgICAgICAgb2JqZWN0Q2xvbmUueEF4aXMucGxvdEJhbmRzID0gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAvL0B0cy1pZ25vcmVcbiAgICAgICAgICAgICAgY29sb3I6ICdyZ2JhKDIzMCwyMywxNDgsMC4xKScsXG4gICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxuICAgICAgICAgICAgICBmcm9tOiBwbG90RnJvbSAqIDEwMDAsXG4gICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxuICAgICAgICAgICAgICB0bzogcGxvdFRvICogMTAwMCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXTtcbiAgICAgICAgfVxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHNldEdyYXBoT3B0aW9ucyhvYmplY3RDbG9uZSk7XG4gICAgICAgIHNldElzRmV0Y2hpbmcoZmFsc2UpO1xuICAgICAgfSk7XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBnZXREYXRhKCk7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIGNsZWFudXAoKSB7fTtcbiAgfSwgW3BvaW50SWRdKTtcbiAgY29uc3QgcmVzZXRab29tID0gKCkgPT4ge1xuICAgIGlmIChjaGFydENvbXBvbmVudC5jdXJyZW50Py5jaGFydCkge1xuICAgICAgY29uc3QgeyB4QXhpcywgeUF4aXMgfSA9IGNoYXJ0Q29tcG9uZW50LmN1cnJlbnQuY2hhcnQ7XG4gICAgICBpZiAoeEF4aXM/Lmxlbmd0aCAmJiB5QXhpcz8ubGVuZ3RoKSB7XG4gICAgICAgIHhBeGlzWzBdLnNldEV4dHJlbWVzKCk7XG4gICAgICAgIHlBeGlzWzBdLnNldEV4dHJlbWVzKCk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuICBjb25zdCBuYXZDb250ZXh0ID0gdXNlU2VsZWN0b3IoXG4gICAgKHN0YXRlOiBSZXR1cm5UeXBlPHR5cGVvZiBhcHBSZWR1Y2VyPikgPT4gc3RhdGUubmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0LFxuICApO1xuICBjb25zdCBpc1J0bDogYm9vbGVhbiA9IG5hdkNvbnRleHQubG9jYWxlID09PSAnaGUnID8gdHJ1ZSA6IGZhbHNlO1xuICByZXR1cm4gaXNGZXRjaGluZyA/IChcbiAgICA8Um93TG9hZGVyIHdpZHRoPVwiMTAwJVwiIGhlaWdodD17MTkwfSBmZ0NvbG9yPVwiI2VlZVwiIGJnQ29sb3I9XCIjZmZmXCIgLz5cbiAgKSA6IChcbiAgICA8PlxuICAgICAgPEhpZ2hjaGFydHNSZWFjdFxuICAgICAgICByZWY9e2NoYXJ0Q29tcG9uZW50fVxuICAgICAgICBoaWdoY2hhcnRzPXtIaWdoY2hhcnRzfVxuICAgICAgICBvcHRpb25zPXtncmFwaE9wdGlvbnN9XG4gICAgICAvPlxuICAgICAge2Rpc3BsYXlSZXNldFpvb21CdXR0b24gJiYgKFxuICAgICAgICA8UmVzZXRab29tQnV0dG9uIG9uQ2xpY2s9e3Jlc2V0Wm9vbX0gaXNSdGw9e2lzUnRsfT5cbiAgICAgICAgICB7aTE4bi50KCdldmVudHNfb3ZlcnZpZXcuZmxvYXRpbmdfZ3JhcGgucmVzZXRfem9vbScpfVxuICAgICAgICA8L1Jlc2V0Wm9vbUJ1dHRvbj5cbiAgICAgICl9XG4gICAgPC8+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBHcmFwaDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsT0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBQyx1QkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsd0JBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFJLFVBQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLGNBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLEtBQUEsR0FBQVAsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFPLGlCQUFBLEdBQUFSLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBUSxXQUFBLEdBQUFSLE9BQUE7QUFBMEMsU0FBQVMseUJBQUFDLFdBQUEsZUFBQUMsT0FBQSxrQ0FBQUMsaUJBQUEsT0FBQUQs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
249
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfanF1ZXJ5IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9oaWdoY2hhcnRzUmVhY3RPZmZpY2lhbCIsIl9oaWdoc3RvY2siLCJfbm9EYXRhVG9EaXNwbGF5IiwiX0NvbnRlbnRMb2FkZXIiLCJfaTE4biIsIl9zdHlsZWRDb21wb25lbnRzIiwiX3JlYWN0UmVkdXgiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZjMiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJOb0RhdGFUb0Rpc3BsYXkiLCJIaWdoY2hhcnRzIiwic2V0T3B0aW9ucyIsImxhbmciLCJub0RhdGEiLCJpMThuIiwidCIsInN0eWxlIiwiZm9udFdlaWdodCIsImZvbnRTaXplIiwiY29sb3IiLCJhZGRIb3VycyIsImhvdXJzIiwiaG91cnNBZ28iLCJEYXRlIiwic2V0SG91cnMiLCJnZXRIb3VycyIsImdldFRpbWUiLCJSZXNldFpvb21CdXR0b24iLCJzdHlsZWQiLCJidXR0b24iLCJ3aXRoQ29uZmlnIiwiZGlzcGxheU5hbWUiLCJjb21wb25lbnRJZCIsIl9yZWYiLCJpc1J0bCIsIl9yZWYyIiwiX3JlZjMiLCJ0aGVtZSIsImNvbG9yU2NoZW1lIiwibmF0dXJhbCIsIm4zMCIsIl9yZWY0IiwibjIwIiwiR3JhcGgiLCJfcmVmNSIsInBvaW50SWQiLCJ0aXRsZSIsInN0YXJ0VGltZSIsImVuZFRpbWUiLCJwbG90RnJvbSIsInBsb3RUbyIsIm5vT2JzZXJ2YXRpb24iLCJfcmVmNSRjdXN0b21IaWdoQ2hhcnQiLCJjdXN0b21IaWdoQ2hhcnRPcHRpb25zIiwiX3JlZjUkZGlzcGxheVJlc2V0Wm9vIiwiZGlzcGxheVJlc2V0Wm9vbUJ1dHRvbiIsImNoYXJ0Q29tcG9uZW50IiwidXNlUmVmIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJ0ZXh0IiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsImdyYXBoT3B0aW9ucyIsInNldEdyYXBoT3B0aW9ucyIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiaXNGZXRjaGluZyIsInNldElzRmV0Y2hpbmciLCJvYmplY3RDbG9uZSIsIl9vYmplY3RTcHJlYWQyIiwiY3JlZGl0cyIsImVuYWJsZWQiLCJzZXJpZXMiLCJjaGFydCIsInNwYWNpbmdCb3R0b20iLCJzcGFjaW5nTGVmdCIsInNwYWNpbmdSaWdodCIsInNwYWNpbmdUb3AiLCJiYWNrZ3JvdW5kQ29sb3IiLCJoZWlnaHQiLCJ6b29tVHlwZSIsInlBeGlzIiwieEF4aXMiLCJ0eXBlIiwicGxvdEJhbmRzIiwidGltZSIsInRpbWV6b25lT2Zmc2V0IiwiY3JlYXRlU2VyaWVzIiwic0RhdGEiLCJkYXRhc2V0cyIsInhEYXRhcyIsIl9pdGVyYXRvciIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyMiIsIl9zdGVwIiwiX2xvb3AiLCJkYXRhc2V0IiwidmFsdWUiLCJkYXRhIiwibWFwIiwidmFsIiwiaiIsInBvaW50X2lkIiwidW5pdCIsInRvb2x0aXAiLCJwb2ludEZvcm1hdHRlciIsImJ1bGxldCIsImNvbmNhdCIsIm5hbWUiLCJ5IiwidG9GaXhlZCIsInMiLCJuIiwiZG9uZSIsImVyciIsImUiLCJmIiwiaXRlcmF0ZUFuZEV2YWwiLCJjb2xvcnMiLCJrZXlzIiwiaSIsImxlbmd0aCIsIl90eXBlb2YyIiwidG9TdHJpbmciLCJtYXRjaCIsImZ1bmN0aW9uU3RyIiwic3Vic3RyaW5nIiwiZnVuYyIsIkZ1bmN0aW9uIiwiY3JlYXRlWUF4aXMiLCJyZXN1bHQiLCJnZXRPcHRpb25zIiwiJCIsImVhY2giLCJ5QXhpc2VzIiwiaW5kZXgiLCJwdXNoIiwic2hvd0VtcHR5IiwiZ2V0RGF0YSIsInVybCIsImZldGNoIiwidGhlbiIsInJlc3BvbnNlIiwianNvbiIsInBhcnNlSW50IiwidGltZXpvbmUiLCJ0el9vZmZzZXQiLCJmcm9tIiwidG8iLCJ1c2VFZmZlY3QiLCJjbGVhbnVwIiwicmVzZXRab29tIiwiX2NoYXJ0Q29tcG9uZW50JGN1cnJlIiwiY3VycmVudCIsIl9jaGFydENvbXBvbmVudCRjdXJyZTIiLCJzZXRFeHRyZW1lcyIsIm5hdkNvbnRleHQiLCJ1c2VTZWxlY3RvciIsInN0YXRlIiwibmF2X2NvbnRleHRfZGF0YSIsImxvY2FsZSIsImNyZWF0ZUVsZW1lbnQiLCJSb3dMb2FkZXIiLCJ3aWR0aCIsImZnQ29sb3IiLCJiZ0NvbG9yIiwiRnJhZ21lbnQiLCJyZWYiLCJoaWdoY2hhcnRzIiwib3B0aW9ucyIsIm9uQ2xpY2siLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9HcmFwaC9HcmFwaC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgSGlnaGNoYXJ0c1JlYWN0IGZyb20gJ2hpZ2hjaGFydHMtcmVhY3Qtb2ZmaWNpYWwnO1xuaW1wb3J0IEhpZ2hjaGFydHMgZnJvbSAnaGlnaGNoYXJ0cy9oaWdoc3RvY2snO1xuaW1wb3J0IE5vRGF0YVRvRGlzcGxheSBmcm9tICdoaWdoY2hhcnRzL21vZHVsZXMvbm8tZGF0YS10by1kaXNwbGF5JztcbmltcG9ydCB7IFJvd0xvYWRlciB9IGZyb20gJy4uL0NvbnRlbnRMb2FkZXInO1xuaW1wb3J0IGkxOG4gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2kxOG4nO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgeyB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IGFwcFJlZHVjZXIgfSBmcm9tICcuLi8uLi9zdG9yZS9yb290UmVkdWNlcic7XG5cbi8vIEluaXRpYWxpemUgbm8tZGF0YS10by1kaXNwbGF5IG1vZHVsZSB3aXRoIEhpZ2hjaGFydHNcbk5vRGF0YVRvRGlzcGxheShIaWdoY2hhcnRzKTtcblxuLy8gU2V0IGdsb2JhbCBvcHRpb25zIGZvciBub0RhdGEgbWVzc2FnZSBhbmQgc3R5bGVcbkhpZ2hjaGFydHMuc2V0T3B0aW9ucyh7XG4gIGxhbmc6IHtcbiAgICBub0RhdGE6IGkxOG4udCgnZ2VuZXJhbC5ub19kYXRhX2F2YWlsYWJsZScpLFxuICB9LFxuICBub0RhdGE6IHtcbiAgICBzdHlsZToge1xuICAgICAgZm9udFdlaWdodDogJ2JvbGQnLFxuICAgICAgZm9udFNpemU6ICcxNHB4JyxcbiAgICAgIGNvbG9yOiAnIzY2NicsXG4gICAgfSxcbiAgfSxcbn0pO1xuXG50eXBlIElQcm9wcyA9IHtcbiAgcG9pbnRJZDogbnVtYmVyIHwgbnVsbDtcbiAgdGl0bGU/OiBzdHJpbmcgfCBudWxsO1xuICBzdGFydFRpbWU/OiBudW1iZXI7XG4gIGVuZFRpbWU/OiBudW1iZXI7XG4gIHBsb3RGcm9tPzogbnVtYmVyO1xuICBwbG90VG8/OiBudW1iZXI7XG4gIG5vT2JzZXJ2YXRpb24/OiBib29sZWFuO1xuICBkaXNwbGF5UmVzZXRab29tQnV0dG9uPzogYm9vbGVhbjtcbiAgY3VzdG9tSGlnaENoYXJ0T3B0aW9ucz86IG9iamVjdDtcbn07XG5cbmZ1bmN0aW9uIGFkZEhvdXJzKGhvdXJzOiBudW1iZXIpIHtcbiAgbGV0IGhvdXJzQWdvID0gbmV3IERhdGUoKTtcbiAgaG91cnNBZ28uc2V0SG91cnMoaG91cnNBZ28uZ2V0SG91cnMoKSArIGhvdXJzKTtcbiAgcmV0dXJuIGhvdXJzQWdvLmdldFRpbWUoKSAvIDEwMDA7XG59XG5jb25zdCBSZXNldFpvb21CdXR0b24gPSBzdHlsZWQuYnV0dG9uPHsgaXNSdGw6IGJvb2xlYW4gfT5gXG4gIEBtZWRpYSAobWF4LXdpZHRoOiA1MDBweCkge1xuICAgIHJpZ2h0OiAkeyh7IGlzUnRsIH0pID0+IChpc1J0bCA/ICcxNXB4JyA6ICd1bnNldCcpfSFpbXBvcnRhbnQ7XG4gICAgbGVmdDogJHsoeyBpc1J0bCB9KSA9PiAoaXNSdGwgPyAndW5zZXQnIDogJzE1cHgnKX0gIWltcG9ydGFudDtcbiAgICB0b3A6IDZweCAhaW1wb3J0YW50O1xuICB9XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA2NXB4O1xuICByaWdodDogMTVweDtcbiAgYm9yZGVyOiAxcHggc29saWQgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvclNjaGVtZS5uYXR1cmFsLm4zMH07XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgcGFkZGluZzogMCA1cHg7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvclNjaGVtZS5uYXR1cmFsLm4yMH07XG4gIH1cbmA7XG5jb25zdCBHcmFwaCA9ICh7XG4gIHBvaW50SWQsXG4gIHRpdGxlLFxuICBzdGFydFRpbWUsXG4gIGVuZFRpbWUsXG4gIHBsb3RGcm9tLFxuICBwbG90VG8sXG4gIG5vT2JzZXJ2YXRpb24sXG4gIGN1c3RvbUhpZ2hDaGFydE9wdGlvbnMgPSB7fSxcbiAgZGlzcGxheVJlc2V0Wm9vbUJ1dHRvbiA9IGZhbHNlLFxufTogSVByb3BzKSA9PiB7XG4gIGNvbnN0IGNoYXJ0Q29tcG9uZW50ID0gdXNlUmVmPGFueT4obnVsbCk7XG4gIGNvbnN0IFtncmFwaE9wdGlvbnMsIHNldEdyYXBoT3B0aW9uc10gPSB1c2VTdGF0ZSh7XG4gICAgdGl0bGU6IHsgdGV4dDogJ1BsZWFzZSBXYWl0IC4uLicgfSxcbiAgfSk7XG4gIGNvbnN0IFtpc0ZldGNoaW5nLCBzZXRJc0ZldGNoaW5nXSA9IHVzZVN0YXRlPGJvb2xlYW4+KHRydWUpO1xuICBsZXQgb2JqZWN0Q2xvbmUgPSB7XG4gICAgdGl0bGU6IHtcbiAgICAgIHRleHQ6IHRpdGxlLFxuICAgIH0sXG4gICAgY3JlZGl0czoge1xuICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgfSxcbiAgICBzZXJpZXM6IFtdLFxuICAgIGNoYXJ0OiB7XG4gICAgICBzcGFjaW5nQm90dG9tOiAyMCxcbiAgICAgIHNwYWNpbmdMZWZ0OiAwLFxuICAgICAgc3BhY2luZ1JpZ2h0OiAwLFxuICAgICAgc3BhY2luZ1RvcDogMjAsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6ICdyZ2JhKDAsMCwwLDApJyxcbiAgICAgIGhlaWdodDogMjUwLFxuICAgICAgem9vbVR5cGU6ICd4JyxcbiAgICB9LFxuICAgIHlBeGlzOiBbXSxcbiAgICB4QXhpczoge1xuICAgICAgdHlwZTogJ2RhdGV0aW1lJyxcbiAgICAgIHBsb3RCYW5kczogW10sXG4gICAgfSxcbiAgICB0aW1lOiB7XG4gICAgICB0aW1lem9uZU9mZnNldDogMCxcbiAgICB9LFxuICAgIC4uLmN1c3RvbUhpZ2hDaGFydE9wdGlvbnMsXG4gIH07XG4gIGNvbnN0IGNyZWF0ZVNlcmllcyA9IChzRGF0YTogYW55KSA9PiB7XG4gICAgbGV0IGRhdGFzZXRzID0gc0RhdGEuZGF0YXNldHM7XG4gICAgbGV0IHhEYXRhcyA9IHNEYXRhLnhEYXRhcztcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMpIHtcbiAgICAgIGRhdGFzZXQuZGF0YSA9IGRhdGFzZXQuZGF0YS5tYXAoKHZhbDogbnVtYmVyLCBqOiBudW1iZXIpID0+IFtcbiAgICAgICAgeERhdGFzW2RhdGFzZXQucG9pbnRfaWRdW2pdLFxuICAgICAgICB2YWwsXG4gICAgICBdKTtcblxuICAgICAgaWYgKGRhdGFzZXQ/LnVuaXQpIHtcbiAgICAgICAgZGF0YXNldC50b29sdGlwID0ge1xuICAgICAgICAgIHBvaW50Rm9ybWF0dGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBjb25zdCBidWxsZXQgPSBgPHRzcGFuIHN0eWxlPVwiZmlsbDoke2RhdGFzZXQuY29sb3J9XCIgeD1cIjhcIiBkeT1cIjE1XCI+4pePPC90c3Bhbj4gYDtcbiAgICAgICAgICAgIHJldHVybiBgPHRzcGFuPiR7YnVsbGV0fSR7XG4gICAgICAgICAgICAgIGRhdGFzZXQubmFtZVxuICAgICAgICAgICAgfTo8L3RzcGFuPiA8Yj4ke3RoaXMueS50b0ZpeGVkKDIpfSDCsCR7ZGF0YXNldC51bml0fTwvYj5gO1xuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBkYXRhc2V0cztcbiAgfTtcblxuICBjb25zdCBpdGVyYXRlQW5kRXZhbCA9IChkYXRhOiBhbnksIGNvbG9yczogYW55KSA9PiB7XG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIGxldCBrZXlzID0gT2JqZWN0LmtleXMoZGF0YSk7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgbGV0IGtleSA9IGtleXNbaV0sXG4gICAgICAgICAgdmFsdWUgPSBkYXRhW2tleV07XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBpdGVyYXRlQW5kRXZhbCh2YWx1ZSwgY29sb3JzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAodmFsdWUgJiYgdmFsdWUudG9TdHJpbmcoKS5tYXRjaCgvZnVuY3Rpb246Oi8pKSB7XG4gICAgICAgICAgICBsZXQgZnVuY3Rpb25TdHIgPSB2YWx1ZS5zdWJzdHJpbmcoMTApLFxuICAgICAgICAgICAgICBmdW5jID0gbmV3IEZ1bmN0aW9uKGZ1bmN0aW9uU3RyKTtcbiAgICAgICAgICAgIGRhdGFba2V5XSA9IGZ1bmMoKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHZhbHVlICYmIHZhbHVlLnRvU3RyaW5nKCkubWF0Y2goL2NvbG9yc1xcWyguKj8pXFxdLykpIHtcbiAgICAgICAgICAgIGRhdGFba2V5XSA9IGNvbG9yc1t2YWx1ZS50b1N0cmluZygpLm1hdGNoKC9jb2xvcnNcXFsoLio/KVxcXS8pWzFdXTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgY29uc3QgY3JlYXRlWUF4aXMgPSAoc0RhdGE6IGFueSkgPT4ge1xuICAgIHZhciByZXN1bHQ6IGFueVtdID0gW10sXG4gICAgICBjb2xvcnMgPSBIaWdoY2hhcnRzLmdldE9wdGlvbnMoKS5jb2xvcnM7XG4gICAgaWYgKHNEYXRhKSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICAgICQuZWFjaChzRGF0YS55QXhpc2VzLCBmdW5jdGlvbiAoaW5kZXgsIHlBeGlzKSB7XG4gICAgICAgIGl0ZXJhdGVBbmRFdmFsKHlBeGlzLCBjb2xvcnMpO1xuICAgICAgICByZXN1bHQucHVzaCh5QXhpcyk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKHJlc3VsdC5sZW5ndGggPT09IDApIHtcbiAgICAgIHJlc3VsdC5wdXNoKHtcbiAgICAgICAgc2hvd0VtcHR5OiBmYWxzZSxcbiAgICAgICAgdGl0bGU6IHtcbiAgICAgICAgICB0ZXh0OiAnJyxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH07XG5cbiAgY29uc3QgZ2V0RGF0YSA9ICgpID0+IHtcbiAgICBzdGFydFRpbWUgPSBzdGFydFRpbWUgfHwgYWRkSG91cnMoLTMpO1xuICAgIGVuZFRpbWUgPSBlbmRUaW1lIHx8IGFkZEhvdXJzKDMpO1xuICAgIGxldCB1cmwgPSBgL2NvbnRyb2xfcm9vbS9wb2ludF9jaGFydF9kYXRhLmpzb24/cG9pbnRfaWQ9JHtwb2ludElkfWA7XG4gICAgdXJsICs9IHN0YXJ0VGltZSA/IGAmc3RhcnQ9JHtzdGFydFRpbWV9YCA6ICcnO1xuICAgIHVybCArPSBlbmRUaW1lID8gYCZzdG9wPSR7ZW5kVGltZX1gIDogJyc7XG4gICAgdXJsICs9IG5vT2JzZXJ2YXRpb24gPyBgJm5vX29ic2VydmF0aW9uPSR7bm9PYnNlcnZhdGlvbn1gIDogJyc7XG4gICAgc2V0SXNGZXRjaGluZyh0cnVlKTtcbiAgICBmZXRjaCh1cmwpXG4gICAgICAudGhlbigocmVzcG9uc2UpID0+IHJlc3BvbnNlLmpzb24oKSlcbiAgICAgIC50aGVuKChqc29uKSA9PiB7XG4gICAgICAgIC8vQHRzLWlnbm9yZVxuICAgICAgICBvYmplY3RDbG9uZS5zZXJpZXMgPSBjcmVhdGVTZXJpZXMoanNvbik7XG4gICAgICAgIC8vQHRzLWlnbm9yZVxuICAgICAgICBvYmplY3RDbG9uZS55QXhpcyA9IGNyZWF0ZVlBeGlzKGpzb24pO1xuICAgICAgICBvYmplY3RDbG9uZS50aW1lLnRpbWV6b25lT2Zmc2V0ID1cbiAgICAgICAgICBwYXJzZUludChqc29uLnRpbWV6b25lLnR6X29mZnNldCkgKiA2MDtcbiAgICAgICAgaWYgKHBsb3RGcm9tICYmIHBsb3RUbykge1xuICAgICAgICAgIG9iamVjdENsb25lLnhBeGlzLnBsb3RCYW5kcyA9IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXG4gICAgICAgICAgICAgIGNvbG9yOiAncmdiYSgyMzAsMjMsMTQ4LDAuMSknLFxuICAgICAgICAgICAgICAvL0B0cy1pZ25vcmVcbiAgICAgICAgICAgICAgZnJvbTogcGxvdEZyb20gKiAxMDAwLFxuICAgICAgICAgICAgICAvL0B0cy1pZ25vcmVcbiAgICAgICAgICAgICAgdG86IHBsb3RUbyAqIDEwMDAsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF07XG4gICAgICAgIH1cbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBzZXRHcmFwaE9wdGlvbnMob2JqZWN0Q2xvbmUpO1xuICAgICAgICBzZXRJc0ZldGNoaW5nKGZhbHNlKTtcbiAgICAgIH0pO1xuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZ2V0RGF0YSgpO1xuICAgIHJldHVybiBmdW5jdGlvbiBjbGVhbnVwKCkge307XG4gIH0sIFtwb2ludElkXSk7XG4gIGNvbnN0IHJlc2V0Wm9vbSA9ICgpID0+IHtcbiAgICBpZiAoY2hhcnRDb21wb25lbnQuY3VycmVudD8uY2hhcnQpIHtcbiAgICAgIGNvbnN0IHsgeEF4aXMsIHlBeGlzIH0gPSBjaGFydENvbXBvbmVudC5jdXJyZW50LmNoYXJ0O1xuICAgICAgaWYgKHhBeGlzPy5sZW5ndGggJiYgeUF4aXM/Lmxlbmd0aCkge1xuICAgICAgICB4QXhpc1swXS5zZXRFeHRyZW1lcygpO1xuICAgICAgICB5QXhpc1swXS5zZXRFeHRyZW1lcygpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcbiAgY29uc3QgbmF2Q29udGV4dCA9IHVzZVNlbGVjdG9yKFxuICAgIChzdGF0ZTogUmV0dXJuVHlwZTx0eXBlb2YgYXBwUmVkdWNlcj4pID0+IHN0YXRlLm5hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dCxcbiAgKTtcbiAgY29uc3QgaXNSdGw6IGJvb2xlYW4gPSBuYXZDb250ZXh0LmxvY2FsZSA9PT0gJ2hlJyA/IHRydWUgOiBmYWxzZTtcbiAgcmV0dXJuIGlzRmV0Y2hpbmcgPyAoXG4gICAgPFJvd0xvYWRlciB3aWR0aD1cIjEwMCVcIiBoZWlnaHQ9ezE5MH0gZmdDb2xvcj1cIiNlZWVcIiBiZ0NvbG9yPVwiI2ZmZlwiIC8+XG4gICkgOiAoXG4gICAgPD5cbiAgICAgIDxIaWdoY2hhcnRzUmVhY3RcbiAgICAgICAgcmVmPXtjaGFydENvbXBvbmVudH1cbiAgICAgICAgaGlnaGNoYXJ0cz17SGlnaGNoYXJ0c31cbiAgICAgICAgb3B0aW9ucz17Z3JhcGhPcHRpb25zfVxuICAgICAgLz5cbiAgICAgIHtkaXNwbGF5UmVzZXRab29tQnV0dG9uICYmIChcbiAgICAgICAgPFJlc2V0Wm9vbUJ1dHRvbiBvbkNsaWNrPXtyZXNldFpvb219IGlzUnRsPXtpc1J0bH0+XG4gICAgICAgICAge2kxOG4udCgnZXZlbnRzX292ZXJ2aWV3LmZsb2F0aW5nX2dyYXBoLnJlc2V0X3pvb20nKX1cbiAgICAgICAgPC9SZXNldFpvb21CdXR0b24+XG4gICAgICApfVxuICAgIDwvPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgR3JhcGg7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLHdCQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSSxVQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSyxnQkFBQSxHQUFBTixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU0sY0FBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sS0FBQSxHQUFBUixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVEsaUJBQUEsR0FBQVQsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFTLFdBQUEsR0FBQVQsT0FBQTtBQUEwQyxTQUFBVSx5QkFBQUMsV0FBQSxlQUFBQyxPQUFBLGtDQUFBQyxpQkFBQSxPQUFBRCxPQUFBLFFBQUFFLGdCQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLFdBQUEsV0FBQUEsV0FBQSxHQUFBRyxnQkFBQSxHQUFBRCxpQkFBQSxLQUFBRixXQUFBO0FBQUEsU0FBQVQsd0JBQUFhLEdBQUEsRUFBQUosV0FBQSxTQUFBQSxXQUFBLElBQUFJLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLFdBQUFELEdBQUEsUUFBQUEsR0FBQSxhQUFBRSxRQUFBLENBQUFGLEdBQUEseUJBQUFBLEdBQUEsNEJBQUFHLE9BQUEsRUFBQUgsR0FBQSxVQUFBSSxLQUFBLEdBQUFULHdCQUFBLENBQUFDLFdBQUEsT0FBQVEsS0FBQSxJQUFBQSxLQUFBLENBQUFDLEdBQUEsQ0FBQUwsR0FB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
package/lib/i18n/en.json CHANGED
@@ -4082,7 +4082,8 @@
4082
4082
  "water_consumption": "Water Consumption",
4083
4083
  "diameter": "Diameter",
4084
4084
  "address": "No address found",
4085
- "sector": "Default sector"
4085
+ "sector": "Default sector",
4086
+ "should_install": "Should install"
4086
4087
  }
4087
4088
  }
4088
4089
  }
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
 
3
- var packageJsonVersion = "1.2.418-alpha.0";
3
+ var packageJsonVersion = "1.2.418-alpha.10";
4
4
  if (typeof packageJsonVersion === 'string') {
5
5
  // eslint-disable-next-line no-console
6
6
  console.log("%c Kando UI %c v".concat(packageJsonVersion, " "), 'font-size: 15px; background-color: #fff; color: #e20f53;', 'font-weight: bold; font-size: 15px; background-color: #e20f53; color: #fff;', "with NODE_ENV=".concat(process.env.NODE_ENV));
7
7
  } else {
8
8
  console.error('getVersion.js got bad version from package.json, expected string.');
9
9
  }
10
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwYWNrYWdlSnNvblZlcnNpb24iLCJjb25zb2xlIiwibG9nIiwiY29uY2F0IiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiZXJyb3IiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbWFjcm9zL2dldFZlcnNpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHByZXZhbCBmcm9tICdwcmV2YWwubWFjcm8nO1xuXG5jb25zdCBwYWNrYWdlSnNvblZlcnNpb24gPSBwcmV2YWxgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi8uLi9iaW4vZ2V0VmVyc2lvbkZyb21QYWNrYWdlSnNvbi5qcycpYDtcbmlmICh0eXBlb2YgcGFja2FnZUpzb25WZXJzaW9uID09PSAnc3RyaW5nJykge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICBjb25zb2xlLmxvZyhcbiAgICBgJWMgS2FuZG8gVUkgJWMgdiR7cGFja2FnZUpzb25WZXJzaW9ufSBgLFxuICAgICdmb250LXNpemU6IDE1cHg7IGJhY2tncm91bmQtY29sb3I6ICNmZmY7IGNvbG9yOiAjZTIwZjUzOycsXG4gICAgJ2ZvbnQtd2VpZ2h0OiBib2xkOyBmb250LXNpemU6IDE1cHg7IGJhY2tncm91bmQtY29sb3I6ICNlMjBmNTM7IGNvbG9yOiAjZmZmOycsXG4gICAgYHdpdGggTk9ERV9FTlY9JHtwcm9jZXNzLmVudi5OT0RFX0VOVn1gLFxuICApO1xufSBlbHNlIHtcbiAgY29uc29sZS5lcnJvcihcbiAgICAnZ2V0VmVyc2lvbi5qcyBnb3QgYmFkIHZlcnNpb24gZnJvbSBwYWNrYWdlLmpzb24sIGV4cGVjdGVkIHN0cmluZy4nLFxuICApO1xufVxuIl0sIm1hcHBpbmdzIjoiOztBQUVBLElBQU1BLGtCQUFrQixvQkFBNkU7QUFDckcsSUFBSSxPQUFPQSxrQkFBa0IsS0FBSyxRQUFRLEVBQUU7RUFDMUM7RUFDQUMsT0FBTyxDQUFDQyxHQUFHLG9CQUFBQyxNQUFBLENBQ1VILGtCQUFrQixRQUNyQywwREFBMEQsRUFDMUQsNkVBQTZFLG1CQUFBRyxNQUFBLENBQzVEQyxPQUFPLENBQUNDLEdBQUcsQ0FBQ0MsUUFBUSxDQUN2QyxDQUFDO0FBQ0gsQ0FBQyxNQUFNO0VBQ0xMLE9BQU8sQ0FBQ00sS0FBSyxDQUNYLG1FQUNGLENBQUM7QUFDSCJ9
10
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwYWNrYWdlSnNvblZlcnNpb24iLCJjb25zb2xlIiwibG9nIiwiY29uY2F0IiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiZXJyb3IiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbWFjcm9zL2dldFZlcnNpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHByZXZhbCBmcm9tICdwcmV2YWwubWFjcm8nO1xuXG5jb25zdCBwYWNrYWdlSnNvblZlcnNpb24gPSBwcmV2YWxgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi8uLi9iaW4vZ2V0VmVyc2lvbkZyb21QYWNrYWdlSnNvbi5qcycpYDtcbmlmICh0eXBlb2YgcGFja2FnZUpzb25WZXJzaW9uID09PSAnc3RyaW5nJykge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICBjb25zb2xlLmxvZyhcbiAgICBgJWMgS2FuZG8gVUkgJWMgdiR7cGFja2FnZUpzb25WZXJzaW9ufSBgLFxuICAgICdmb250LXNpemU6IDE1cHg7IGJhY2tncm91bmQtY29sb3I6ICNmZmY7IGNvbG9yOiAjZTIwZjUzOycsXG4gICAgJ2ZvbnQtd2VpZ2h0OiBib2xkOyBmb250LXNpemU6IDE1cHg7IGJhY2tncm91bmQtY29sb3I6ICNlMjBmNTM7IGNvbG9yOiAjZmZmOycsXG4gICAgYHdpdGggTk9ERV9FTlY9JHtwcm9jZXNzLmVudi5OT0RFX0VOVn1gLFxuICApO1xufSBlbHNlIHtcbiAgY29uc29sZS5lcnJvcihcbiAgICAnZ2V0VmVyc2lvbi5qcyBnb3QgYmFkIHZlcnNpb24gZnJvbSBwYWNrYWdlLmpzb24sIGV4cGVjdGVkIHN0cmluZy4nLFxuICApO1xufVxuIl0sIm1hcHBpbmdzIjoiOztBQUVBLElBQU1BLGtCQUFrQixxQkFBNkU7QUFDckcsSUFBSSxPQUFPQSxrQkFBa0IsS0FBSyxRQUFRLEVBQUU7RUFDMUM7RUFDQUMsT0FBTyxDQUFDQyxHQUFHLG9CQUFBQyxNQUFBLENBQ1VILGtCQUFrQixRQUNyQywwREFBMEQsRUFDMUQsNkVBQTZFLG1CQUFBRyxNQUFBLENBQzVEQyxPQUFPLENBQUNDLEdBQUcsQ0FBQ0MsUUFBUSxDQUN2QyxDQUFDO0FBQ0gsQ0FBQyxNQUFNO0VBQ0xMLE9BQU8sQ0FBQ00sS0FBSyxDQUNYLG1FQUNGLENBQUM7QUFDSCJ9