@react-magma/charts 15.0.0-rc.1 → 15.0.0-rc.2

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.
@@ -24819,7 +24819,7 @@
24819
24819
  styles: "position:relative"
24820
24820
  } : {
24821
24821
  name: "bjn8wh",
24822
- styles: "position:relative/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQnVDIiwiZmlsZSI6ImluZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xyXG5pbXBvcnQgeyBhdXRvVXBkYXRlIH0gZnJvbSAnQGZsb2F0aW5nLXVpL3JlYWN0LWRvbSc7XHJcbmltcG9ydCB7IGFkZERheXMsIGVuZE9mRGF5LCBpc0FmdGVyLCBpc0JlZm9yZSwgaXNNYXRjaCwgaXNWYWxpZCwgcGFyc2UsIHNldEhvdXJzLCBzdGFydE9mRGF5LCB9IGZyb20gJ2RhdGUtZm5zJztcclxuaW1wb3J0IHsgdHJhbnNwYXJlbnRpemUgfSBmcm9tICdwb2xpc2hlZCc7XHJcbmltcG9ydCB7IEV2ZW50SWNvbiB9IGZyb20gJ3JlYWN0LW1hZ21hLWljb25zJztcclxuaW1wb3J0IHsgQ2FsZW5kYXJDb250ZXh0IH0gZnJvbSAnLi9DYWxlbmRhckNvbnRleHQnO1xyXG5pbXBvcnQgeyBDYWxlbmRhck1vbnRoIH0gZnJvbSAnLi9DYWxlbmRhck1vbnRoJztcclxuaW1wb3J0IHsgdXNlTWFnbWFGbG9hdGluZyB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZU1hZ21hRmxvYXRpbmcnO1xyXG5pbXBvcnQgeyBJMThuQ29udGV4dCB9IGZyb20gJy4uLy4uL2kxOG4nO1xyXG5pbXBvcnQgeyBJbnZlcnNlQ29udGV4dCwgdXNlSXNJbnZlcnNlIH0gZnJvbSAnLi4vLi4vaW52ZXJzZSc7XHJcbmltcG9ydCB7IFRoZW1lQ29udGV4dCB9IGZyb20gJy4uLy4uL3RoZW1lL1RoZW1lQ29udGV4dCc7XHJcbmltcG9ydCB7IEFubm91bmNlIH0gZnJvbSAnLi4vQW5ub3VuY2UnO1xyXG5pbXBvcnQgeyBJbnB1dCB9IGZyb20gJy4uL0lucHV0JztcclxuaW1wb3J0IHsgSW5wdXRUeXBlIH0gZnJvbSAnLi4vSW5wdXRCYXNlJztcclxuaW1wb3J0IHsgVmlzdWFsbHlIaWRkZW4gfSBmcm9tICcuLi9WaXN1YWxseUhpZGRlbic7XHJcbmltcG9ydCB7IERhdGVGaWVsZElucHV0IH0gZnJvbSAnLi9EYXRlRmllbGQvRGF0ZUZpZWxkSW5wdXQnO1xyXG5pbXBvcnQgeyBnZXRDYWxlbmRhck1vbnRoV2Vla3MsIGdldERhdGVGcm9tU3RyaW5nLCBnZXROZXh0TW9udGhGcm9tRGF0ZSwgZ2V0UHJldk1vbnRoRnJvbURhdGUsIGhhbmRsZUtleVByZXNzLCBzZXRNb250aEZvckRhdGUsIHNldFllYXJGb3JEYXRlLCBpMThuRm9ybWF0IGFzIGZvcm1hdCwgaW5EYXRlUmFuZ2UsIH0gZnJvbSAnLi91dGlscyc7XHJcbmltcG9ydCB7IG9taXQsIHVzZUZvcmtlZFJlZiwgdXNlR2VuZXJhdGVJZCB9IGZyb20gJy4uLy4uL3V0aWxzJztcclxuY29uc3QgRGF0ZVBpY2tlckNvbnRhaW5lciA9IHN0eWxlZC5kaXYgYFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gO1xyXG5jb25zdCBEYXRlUGlja2VyQ2FsZW5kYXIgPSBzdHlsZWQuZGl2IGBcbiAgYm9yZGVyOiAxcHggc29saWRcbiAgICAke3Byb3BzID0+IHByb3BzLmlzSW52ZXJzZVxyXG4gICAgPyB0cmFuc3BhcmVudGl6ZSgwLjUsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwKVxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDMwMH07XG4gIGJvcmRlci1yYWRpdXM6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuYm9yZGVyUmFkaXVzfTtcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgZGlzcGxheTogJHtwcm9wcyA9PiAocHJvcHMub3BlbmVkID8gJ2Jsb2NrJyA6ICdub25lJyl9O1xuICBtYXJnaW46ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDF9IDBweDtcbiAgb3BhY2l0eTogJHtwcm9wcyA9PiAocHJvcHMub3BlbmVkID8gJzEnIDogJzAnKX07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLWluLW91dCAwcztcbiAgd2lkdGg6IDMyMHB4O1xuYDtcclxuZXhwb3J0IGNvbnN0IERhdGVQaWNrZXIgPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XHJcbiAgICBjb25zdCB0aGVtZSA9IFJlYWN0LnVzZUNvbnRleHQoVGhlbWVDb250ZXh0KTtcclxuICAgIGNvbnN0IGkxOG4gPSBSZWFjdC51c2VDb250ZXh0KEkxOG5Db250ZXh0KTtcclxuICAgIGNvbnN0IGljb25SZWYgPSBSZWFjdC51c2VSZWYoKTtcclxuICAgIGNvbnN0IHByZXZpb3VzSWNvblJlZiA9IFJlYWN0LnVzZVJlZigpO1xyXG4gICAgY29uc3QgaW5wdXRSZWYgPSBSZWFjdC51c2VSZWYoKTtcclxuICAgIGNvbnN0IGxhc3RGb2N1cyA9IFJlYWN0LnVzZVJlZigpO1xyXG4gICAgY29uc3QgaWQgPSB1c2VHZW5lcmF0ZUlkKHByb3BzLmlkKTtcclxuICAgIGNvbnN0IGlzSW52ZXJzZSA9IHVzZUlzSW52ZXJzZShwcm9wcy5pc0ludmVyc2UpO1xyXG4gICAgY29uc3QgbWluRGF0ZSA9IGdldERhdGVGcm9tU3RyaW5nKHByb3BzLm1pbkRhdGUpO1xyXG4gICAgY29uc3QgbWF4RGF0ZSA9IGdldERhdGVGcm9tU3RyaW5nKHByb3BzLm1heERhdGUpO1xyXG4gICAgY29uc3QgZGF0ZUZvcm1hdCA9IGkxOG4uZGF0ZUZvcm1hdDtcclxuICAgIGNvbnN0IFtoZWxwZXJJbmZvcm1hdGlvblNob3duLCBzZXRIZWxwZXJJbmZvcm1hdGlvblNob3duXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcclxuICAgIGNvbnN0IFtjYWxlbmRhck9wZW5lZCwgc2V0Q2FsZW5kYXJPcGVuZWRdID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xyXG4gICAgY29uc3QgW2RhdGVGb2N1c2VkLCBzZXREYXRlRm9jdXNlZF0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XHJcbiAgICBjb25zdCBbZm9jdXNlZERhdGUsIHNldEZvY3VzZWREYXRlXSA9IFJlYWN0LnVzZVN0YXRlKHNldERhdGVGcm9tQ29uc3VtZXIocHJvcHMudmFsdWUgfHwgcHJvcHMuZGVmYXVsdERhdGUpIHx8XHJcbiAgICAgICAgc2V0RGVmYXVsdEZvY3VzZWREYXRlKCkpO1xyXG4gICAgY29uc3QgW2Nob3NlbkRhdGUsIHNldENob3NlbkRhdGVdID0gUmVhY3QudXNlU3RhdGUoc2V0RGF0ZUZyb21Db25zdW1lcihwcm9wcy52YWx1ZSB8fCBwcm9wcy5kZWZhdWx0RGF0ZSkpO1xyXG4gICAgY29uc3QgcmVmID0gdXNlRm9ya2VkUmVmKGZvcndhcmRlZFJlZiwgaW5wdXRSZWYpO1xyXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICBpZiAocHJvcHMuYXBpUmVmKSB7XHJcbiAgICAgICAgICAgIHByb3BzLmFwaVJlZi5jdXJyZW50ID0ge1xyXG4gICAgICAgICAgICAgICAgY2xvc2VEYXRlUGlja2VyTWFudWFsbHkoZXZlbnQpIHtcclxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVDbG9zZUJ1dHRvbkNsaWNrKGV2ZW50KTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBvcGVuRGF0ZVBpY2tlck1hbnVhbGx5KGV2ZW50KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdG9nZ2xlQ2FsZW5kYXJPcGVuZWQoKTtcclxuICAgICAgICAgICAgICAgICAgICBpbnB1dFJlZi5jdXJyZW50LmZvY3VzKCk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgIH0sIFtdKTtcclxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgaWYgKGRhdGVUaW1lUGlja2VyQ29udGVudCAmJlxyXG4gICAgICAgICAgICBjaG9zZW5EYXRlICYmXHJcbiAgICAgICAgICAgIGlucHV0UmVmLmN1cnJlbnQgIT09IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgaWYgKCFwcm9wcy5hZGRpdGlvbmFsSW5wdXRDb250ZW50ICYmIHByb3BzLnNldEFkZGl0aW9uYWxJbnB1dENvbnRlbnQpIHtcclxuICAgICAgICAgICAgICAgIHByb3BzLnNldEFkZGl0aW9uYWxJbnB1dENvbnRlbnQoJzEyOjAwIEFNJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgc2V0Rm9jdXNlZERhdGUoY2hvc2VuRGF0ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW2Nob3NlbkRhdGVdKTtcclxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgaWYgKCFjYWxlbmRhck9wZW5lZCkge1xyXG4gICAgICAgICAgICBzZXREYXRlRm9jdXNlZChmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW2NhbGVuZGFyT3BlbmVkXSk7XHJcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgIGlmIChwcm9wcy52YWx1ZSkge1xyXG4gICAgICAgICAgICBzZXRGb2N1c2VkRGF0ZShzZXREYXRlRnJvbUNvbnN1bWVyKHByb3BzLnZhbHVlKSB8fCBzZXREZWZhdWx0Rm9jdXNlZERhdGUoKSk7XHJcbiAgICAgICAgICAgIHNldENob3NlbkRhdGUoc2V0RGF0ZUZyb21Db25zdW1lcihwcm9wcy52YWx1ZSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAocHJvcHMudmFsdWUgPT09IG51bGwpXHJcbiAgICAgICAgICAgIHNldENob3NlbkRhdGUodW5kZWZpbmVkKTtcclxuICAgIH0sIFtwcm9wcy52YWx1ZV0pO1xyXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICBwcmV2aW91c0ljb25SZWYuY3VycmVudCA9IGljb25SZWYuY3VycmVudDtcclxuICAgIH0sIFtdKTtcclxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgaWYgKCFmb2N1c2VkRGF0ZSB8fCAhbWluRGF0ZSlcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIGlmIChpc0JlZm9yZShmb2N1c2VkRGF0ZSwgbWluRGF0ZSkgJiYgIWNob3NlbkRhdGUpIHtcclxuICAgICAgICAgICAgc2V0Rm9jdXNlZERhdGUobWluRGF0ZSk7XHJcbiAgICAgICAgICAgIHNldERhdGVGb2N1c2VkKHRydWUpO1xyXG4gICAgICAgIH1cclxuICAgIH0sIFtmb2N1c2VkRGF0ZSwgbWluRGF0ZSwgY2hvc2VuRGF0ZV0pO1xyXG4gICAgZnVuY3Rpb24gc2hvd0hlbHBlckluZm9ybWF0aW9uKCkge1xyXG4gICAgICAgIGxhc3RGb2N1cy5jdXJyZW50ID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcclxuICAgICAgICBzZXRIZWxwZXJJbmZvcm1hdGlvblNob3duKHRydWUpO1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gaGlkZUhlbHBlckluZm9ybWF0aW9uKCkge1xyXG4gICAgICAgIGxhc3RGb2N1cy5jdXJyZW50LmZvY3VzKCk7XHJcbiAgICAgICAgc2V0SGVscGVySW5mb3JtYXRpb25TaG93bihmYWxzZSk7XHJcbiAgICB9XHJcbiAgICBmdW5jdGlvbiBjbG9zZUhlbHBlckluZm9ybWF0aW9uKCkge1xyXG4gICAgICAgIHNldEhlbHBlckluZm9ybWF0aW9uU2hvd24oZmFsc2UpO1xyXG4gICAgICAgIGljb25SZWYuY3VycmVudC5mb2N1cygpO1xyXG4gICAgICAgIHNldENhbGVuZGFyT3BlbmVkKGZhbHNlKTtcclxuICAgIH1cclxuICAgIGNvbnN0IHNldEZvY3VzZWRUb2RheURhdGUgPSAoZXZlbnQpID0+IHtcclxuICAgICAgICBjb25zdCBpc0tleWJvYXJkRXZlbnQgPSBldmVudC50eXBlID09PSAna2V5ZG93bic7XHJcbiAgICAgICAgaWYgKChpc0tleWJvYXJkRXZlbnQgJiZcclxuICAgICAgICAgICAgKGV2ZW50LmtleSA9PT0gJyAnIHx8XHJcbiAgICAgICAgICAgICAgICBldmVudC5rZXkgPT09ICdFbnRlcicpKSB8fFxyXG4gICAgICAgICAgICBldmVudC50eXBlID09PSAnY2xpY2snKSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgIHNldEZvY3VzZWREYXRlKHNldERlZmF1bHRGb2N1c2VkRGF0ZSgpKTtcclxuICAgICAgICAgICAgc2V0RGF0ZUZvY3VzZWQodHJ1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIGZ1bmN0aW9uIHNldERhdGVGcm9tQ29uc3VtZXIoZGF0ZSkge1xyXG4gICAgICAgIGNvbnN0IGNvbnZlcnRlZERhdGUgPSBnZXREYXRlRnJvbVN0cmluZyhkYXRlKTtcclxuICAgICAgICBjb25zdCBjb252ZXJ0ZWRNaW5EYXRlID0gZ2V0RGF0ZUZyb21TdHJpbmcobWluRGF0ZSk7XHJcbiAgICAgICAgY29uc3QgY29udmVydGVkTWF4RGF0ZSA9IGdldERhdGVGcm9tU3RyaW5nKG1heERhdGUpO1xyXG4gICAgICAgIHJldHVybiBkYXRlICYmXHJcbiAgICAgICAgICAgIGluRGF0ZVJhbmdlKGNvbnZlcnRlZERhdGUsIGNvbnZlcnRlZE1pbkRhdGUsIGNvbnZlcnRlZE1heERhdGUpXHJcbiAgICAgICAgICAgID8gY29udmVydGVkRGF0ZVxyXG4gICAgICAgICAgICA6IG51bGw7XHJcbiAgICB9XHJcbiAgICBmdW5jdGlvbiBzZXREZWZhdWx0Rm9jdXNlZERhdGUoKSB7XHJcbiAgICAgICAgY29uc3QgbmV3RGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICAgICAgY29uc3QgY29udmVydGVkTWluRGF0ZSA9IGdldERhdGVGcm9tU3RyaW5nKG1pbkRhdGUpO1xyXG4gICAgICAgIGNvbnN0IGNvbnZlcnRlZE1heERhdGUgPSBnZXREYXRlRnJvbVN0cmluZyhtYXhEYXRlKTtcclxuICAgICAgICBpZiAoaW5EYXRlUmFuZ2UobmV3RGF0ZSwgY29udmVydGVkTWluRGF0ZSwgY29udmVydGVkTWF4RGF0ZSkpIHtcclxuICAgICAgICAgICAgaWYgKGlzQmVmb3JlKHN0YXJ0T2ZEYXkobmV3RGF0ZSksIGNvbnZlcnRlZE1pbkRhdGUpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYWRkRGF5cyhuZXdEYXRlLCAxKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gbmV3RGF0ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoY29udmVydGVkTWF4RGF0ZSB8fCBjb252ZXJ0ZWRNaW5EYXRlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBjb252ZXJ0ZWRNaW5EYXRlID8gY29udmVydGVkTWluRGF0ZSA6IGNvbnZlcnRlZE1heERhdGU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gYnVpbGRDYWxlbmRhck1vbnRoKGRhdGUsIGVuYWJsZU91dHNpZGVEYXRlcykge1xyXG4gICAgICAgIGNvbnN0IGRheXMgPSBbXHJcbiAgICAgICAgICAgICdzdW5kYXknLFxyXG4gICAgICAgICAgICAnbW9uZGF5JyxcclxuICAgICAgICAgICAgJ3R1ZXNkYXknLFxyXG4gICAgICAgICAgICAnd2VkbmVzZGF5JyxcclxuICAgICAgICAgICAgJ3RodXJzZGF5JyxcclxuICAgICAgICAgICAgJ2ZyaWRheScsXHJcbiAgICAgICAgICAgICdzYXR1cmRheScsXHJcbiAgICAgICAgXTtcclxuICAgICAgICBjb25zdCB7IHN0YXJ0T2ZXZWVrIH0gPSBpMThuLmRhdGVQaWNrZXI7XHJcbiAgICAgICAgcmV0dXJuIGdldENhbGVuZGFyTW9udGhXZWVrcyhkYXRlLCBlbmFibGVPdXRzaWRlRGF0ZXMsIGRheXMuaW5kZXhPZihzdGFydE9mV2VlaykpO1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gb25QcmV2TW9udGhDbGljaygpIHtcclxuICAgICAgICBjb25zdCBuZXdEYXRlID0gZ2V0UHJldk1vbnRoRnJvbURhdGUoZm9jdXNlZERhdGUpO1xyXG4gICAgICAgIHNldEZvY3VzZWREYXRlKG5ld0RhdGUpO1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gb25OZXh0TW9udGhDbGljaygpIHtcclxuICAgICAgICBjb25zdCBuZXdEYXRlID0gZ2V0TmV4dE1vbnRoRnJvbURhdGUoZm9jdXNlZERhdGUpO1xyXG4gICAgICAgIHNldEZvY3VzZWREYXRlKG5ld0RhdGUpO1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gc2V0TW9udGhGb2N1c2VkRGF0ZShtb250aE51bWJlcikge1xyXG4gICAgICAgIGNvbnN0IG5ld0RhdGUgPSBzZXRNb250aEZvckRhdGUoZm9jdXNlZERhdGUsIG1vbnRoTnVtYmVyKTtcclxuICAgICAgICBzZXRGb2N1c2VkRGF0ZShuZXdEYXRlKTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIHNldFllYXJGb2N1c2VkRGF0ZSh5ZWFyTnVtYmVyKSB7XHJcbiAgICAgICAgY29uc3QgbmV3RGF0ZSA9IHNldFllYXJGb3JEYXRlKGZvY3VzZWREYXRlLCB5ZWFyTnVtYmVyKTtcclxuICAgICAgICBzZXRGb2N1c2VkRGF0ZShuZXdEYXRlKTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIG9uRGF0ZUNoYW5nZShkYXkpIHtcclxuICAgICAgICBzZXRDaG9zZW5EYXRlKGRheSk7XHJcbiAgICAgICAgaWYgKGRhdGVUaW1lUGlja2VyQ29udGVudClcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIHNldENhbGVuZGFyT3BlbmVkKGZhbHNlKTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIHJlc2V0KCkge1xyXG4gICAgICAgIHNldEZvY3VzZWREYXRlKHNldERlZmF1bHRGb2N1c2VkRGF0ZSgpKTtcclxuICAgICAgICBzZXRDaG9zZW5EYXRlKG51bGwpO1xyXG4gICAgICAgIHNldERhdGVGb2N1c2VkKGZhbHNlKTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIGlzVmFsaWREYXRlRnJvbVN0cmluZyh2YWx1ZSkge1xyXG4gICAgICAgIGNvbnN0IGlzVmFsaWREYXRlRm9ybWF0ID0gaXNNYXRjaCh2YWx1ZSwgaTE4bi5kYXRlRm9ybWF0KTtcclxuICAgICAgICBjb25zdCBwYXJzZWREYXRlID0gcGFyc2UodmFsdWUsIGkxOG4uZGF0ZUZvcm1hdCwgbmV3IERhdGUoKSk7XHJcbiAgICAgICAgY29uc3QgaXNWYWxpZERhdGUgPSBpc1ZhbGlkKHBhcnNlZERhdGUpO1xyXG4gICAgICAgIHJldHVybiBpc1ZhbGlkRGF0ZUZvcm1hdCAmJiBpc1ZhbGlkRGF0ZTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIGhhbmRsZUlucHV0Q2hhbmdlKGV2ZW50KSB7XHJcbiAgICAgICAgY29uc3QgeyB2YWx1ZSB9ID0gZXZlbnQudGFyZ2V0O1xyXG4gICAgICAgIGNvbnN0IGRheSA9IG5ldyBEYXRlKHZhbHVlKTtcclxuICAgICAgICBzZXRDYWxlbmRhck9wZW5lZChmYWxzZSk7XHJcbiAgICAgICAgcHJvcHMub25JbnB1dENoYW5nZSAmJlxyXG4gICAgICAgICAgICB0eXBlb2YgcHJvcHMub25JbnB1dENoYW5nZSA9PT0gJ2Z1bmN0aW9uJyAmJlxyXG4gICAgICAgICAgICBwcm9wcy5vbklucHV0Q2hhbmdlKGV2ZW50KTtcclxuICAgICAgICBsZXQgaXNWYWxpZERheTtcclxuICAgICAgICBpZiAoZGF0ZVRpbWVQaWNrZXJDb250ZW50KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHNwbGl0VmFsdWUgPSB2YWx1ZS5zcGxpdCgnICcpWzBdO1xyXG4gICAgICAgICAgICBpc1ZhbGlkRGF5ID0gaXNWYWxpZERhdGVGcm9tU3RyaW5nKHNwbGl0VmFsdWUpO1xyXG4gICAgICAgICAgICBjb25zdCB2YWxpZERheSA9IG5ldyBEYXRlKHNwbGl0VmFsdWUpO1xyXG4gICAgICAgICAgICBjb25zdCBwYXR0ZXJuID0gL15cXGR7Mn1cXC9cXGR7Mn1cXC9cXGR7NH0kLztcclxuICAgICAgICAgICAgaWYgKHBhdHRlcm4udGVzdChzcGxpdFZhbHVlKSkge1xyXG4gICAgICAgICAgICAgICAgc2V0Q2hvc2VuRGF0ZSh2YWxpZERheSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcHJvcHMub25DaGFuZ2UgJiZcclxuICAgICAgICAgICAgICAgIHR5cGVvZiBwcm9wcy5vbkNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyAmJlxyXG4gICAgICAgICAgICAgICAgcHJvcHMub25DaGFuZ2UoaXNWYWxpZERheSA/IHZhbGlkRGF5LnRvSVNPU3RyaW5nKCkgOiBzcGxpdFZhbHVlLCBldmVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBpc1ZhbGlkRGF5ID0gaXNWYWxpZERhdGVGcm9tU3RyaW5nKHZhbHVlKTtcclxuICAgICAgICAgICAgcHJvcHMub25DaGFuZ2UgJiZcclxuICAgICAgICAgICAgICAgIHR5cGVvZiBwcm9wcy5vbkNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyAmJlxyXG4gICAgICAgICAgICAgICAgcHJvcHMub25DaGFuZ2UoaXNWYWxpZERheSA/IGRheS50b0lTT1N0cmluZygpIDogdmFsdWUsIGV2ZW50KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBmdW5jdGlvbiBoYW5kbGVJbnB1dEZvY3VzKGV2ZW50KSB7XHJcbiAgICAgICAgcHJvcHMub25JbnB1dEZvY3VzICYmXHJcbiAgICAgICAgICAgIHR5cGVvZiBwcm9wcy5vbklucHV0Rm9jdXMgPT09ICdmdW5jdGlvbicgJiZcclxuICAgICAgICAgICAgcHJvcHMub25JbnB1dEZvY3VzKGV2ZW50KTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIGhhbmRsZUlucHV0Qmx1cihldmVudCkge1xyXG4gICAgICAgIGNvbnN0IHsgdmFsdWUgfSA9IGlucHV0UmVmLmN1cnJlbnQ7XHJcbiAgICAgICAgY29uc3QgZGF5ID0gcGFyc2UoZGF0ZVRpbWVQaWNrZXJDb250ZW50ID8gdmFsdWUuc3BsaXQoJyAnKVswXSA6IHZhbHVlLCBpMThuLmRhdGVGb3JtYXQsIG5ldyBEYXRlKCkpO1xyXG4gICAgICAgIGxldCBpc1ZhbGlkRGF5O1xyXG4gICAgICAgIGlmIChkYXRlVGltZVBpY2tlckNvbnRlbnQpIHtcclxuICAgICAgICAgICAgY29uc3Qgc3BsaXRWYWx1ZSA9IHZhbHVlLnNwbGl0KCcgJylbMF07XHJcbiAgICAgICAgICAgIGlzVmFsaWREYXkgPSBpc1ZhbGlkRGF0ZUZyb21TdHJpbmcoc3BsaXRWYWx1ZSk7XHJcbiAgICAgICAgICAgIGNvbnN0IHZhbGlkRGF5ID0gbmV3IERhdGUoc3BsaXRWYWx1ZSk7XHJcbiAgICAgICAgICAgIGlmIChpc1ZhbGlkRGF5KSB7XHJcbiAgICAgICAgICAgICAgICBoYW5kbGVEYXRlQ2hhbmdlKHZhbGlkRGF5LCBldmVudCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGlzVmFsaWREYXkgPSBpc1ZhbGlkRGF0ZUZyb21TdHJpbmcodmFsdWUpO1xyXG4gICAgICAgICAgICBpZiAoaXNWYWxpZERheSkge1xyXG4gICAgICAgICAgICAgICAgaGFuZGxlRGF0ZUNoYW5nZShkYXksIGV2ZW50KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJlc2V0ICYmIHR5cGVvZiByZXNldCA9PT0gJ2Z1bmN0aW9uJyAmJiByZXNldCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHByb3BzLm9uSW5wdXRCbHVyICYmXHJcbiAgICAgICAgICAgIHR5cGVvZiBwcm9wcy5vbklucHV0Qmx1ciA9PT0gJ2Z1bmN0aW9uJyAmJlxyXG4gICAgICAgICAgICBwcm9wcy5vbklucHV0Qmx1cihldmVudCk7XHJcbiAgICB9XHJcbiAgICBmdW5jdGlvbiBoYW5kbGVJbnB1dEtleURvd24oZXZlbnQpIHtcclxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICBzZXRDYWxlbmRhck9wZW5lZChmYWxzZSk7XHJcbiAgICAgICAgICAgIGlucHV0UmVmLmN1cnJlbnQuZm9jdXMoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBmdW5jdGlvbiBoYW5kbGVLZXlEb3duKGV2ZW50KSB7XHJcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcclxuICAgICAgICAgICAgZXZlbnQubmF0aXZlRXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgIHNldENhbGVuZGFyT3BlbmVkKGZhbHNlKTtcclxuICAgICAgICAgICAgaWNvblJlZi5jdXJyZW50LmZvY3VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChkYXRlRm9jdXNlZCAmJiBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmNsb3Nlc3QoJ3RhYmxlJykpIHtcclxuICAgICAgICAgICAgY29uc3QgbmV3Q2hvc2VuRGF0ZSA9IGhhbmRsZUtleVByZXNzKGV2ZW50LCBmb2N1c2VkRGF0ZSwgc2V0Q2FsZW5kYXJPcGVuZWQsIHNob3dIZWxwZXJJbmZvcm1hdGlvbiwgb25EYXRlQ2hhbmdlLCBpY29uUmVmKTtcclxuICAgICAgICAgICAgaWYgKG5ld0Nob3NlbkRhdGUpIHtcclxuICAgICAgICAgICAgICAgIGlmIChtaW5EYXRlICYmIG1heERhdGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNBZnRlcihzZXRIb3VycyhuZXdDaG9zZW5EYXRlLCAxMiksIHN0YXJ0T2ZEYXkobWluRGF0ZSkpICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzQmVmb3JlKHNldEhvdXJzKG5ld0Nob3NlbkRhdGUsIDEyKSwgZW5kT2ZEYXkobWF4RGF0ZSkpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldEZvY3VzZWREYXRlKG5ld0Nob3NlbkRhdGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKG1pbkRhdGUgJiYgIW1heERhdGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNBZnRlcihzZXRIb3VycyhuZXdDaG9zZW5EYXRlLCAxMiksIHN0YXJ0T2ZEYXkobWluRGF0ZSkpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldEZvY3VzZWREYXRlKG5ld0Nob3NlbkRhdGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKG1heERhdGUgJiYgIW1pbkRhdGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNCZWZvcmUoc2V0SG91cnMobmV3Q2hvc2VuRGF0ZSwgMTIpLCBlbmRPZkRheShtYXhEYXRlKSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0Rm9jdXNlZERhdGUobmV3Q2hvc2VuRGF0ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2V0Rm9jdXNlZERhdGUobmV3Q2hvc2VuRGF0ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBmdW5jdGlvbiBoYW5kbGVEYXRlQ2hhbmdlKGRheSwgZXZlbnQpIHtcclxuICAgICAgICBwcm9wcy5vbkRhdGVDaGFuZ2UgJiZcclxuICAgICAgICAgICAgdHlwZW9mIHByb3BzLm9uRGF0ZUNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyAmJlxyXG4gICAgICAgICAgICBwcm9wcy5vbkRhdGVDaGFuZ2UoZGF5LCBldmVudCk7XHJcbiAgICAgICAgcHJvcHMub25DaGFuZ2UgJiZcclxuICAgICAgICAgICAgdHlwZW9mIHByb3BzLm9uQ2hhbmdlID09PSAnZnVuY3Rpb24nICYmXHJcbiAgICAgICAgICAgIHByb3BzLm9uQ2hhbmdlKGRheT8udG9JU09TdHJpbmcoKSwgZXZlbnQpO1xyXG4gICAgICAgIG9uRGF0ZUNoYW5nZShkYXkpO1xyXG4gICAgICAgIGlmIChkYXRlVGltZVBpY2tlckNvbnRlbnQpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICBzZXRGb2N1c2VkRGF0ZShkYXkpO1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gaGFuZGxlRGF5U2VsZWN0aW9uKGRheSwgZXZlbnQpIHtcclxuICAgICAgICBoYW5kbGVEYXRlQ2hhbmdlKGRheSwgZXZlbnQpO1xyXG4gICAgICAgIGlmIChkYXRlVGltZVBpY2tlckNvbnRlbnQpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICBpbnB1dFJlZi5jdXJyZW50LmZvY3VzKCk7XHJcbiAgICB9XHJcbiAgICBmdW5jdGlvbiBoYW5kbGVDYWxlbmRhckJsdXIoZXZlbnQpIHtcclxuICAgICAgICBjb25zdCB7IGN1cnJlbnRUYXJnZXQgfSA9IGV2ZW50O1xyXG4gICAgICAgIC8vIHRpbWVvdXQgbmVlZGVkIGZvciBhY3RpdmUgZWxlbWVudCB0byB1cGRhdGUuIEJyb3dzZXIgYmVoYXZpb3IuXHJcbiAgICAgICAgLy8gaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUyMzA3XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGlzSW5DYWxlbmRhciA9IGN1cnJlbnRUYXJnZXQuY29udGFpbnMoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCk7XHJcbiAgICAgICAgICAgIGlmICghaXNJbkNhbGVuZGFyICYmICFoZWxwZXJJbmZvcm1hdGlvblNob3duKSB7XHJcbiAgICAgICAgICAgICAgICBzZXRDYWxlbmRhck9wZW5lZChmYWxzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LCAwKTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIGhhbmRsZUNsb3NlQnV0dG9uQ2xpY2soZXZlbnQpIHtcclxuICAgICAgICBpZiAoIWljb25SZWYuY3VycmVudCAmJiBwcmV2aW91c0ljb25SZWYuY3VycmVudCkge1xyXG4gICAgICAgICAgICBpY29uUmVmLmN1cnJlbnQgPSBwcmV2aW91c0ljb25SZWYuY3VycmVudDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWNvblJlZi5jdXJyZW50LmZvY3VzKCk7XHJcbiAgICAgICAgc2V0Q2FsZW5kYXJPcGVuZWQoZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gdG9nZ2xlQ2FsZW5kYXJPcGVuZWQoKSB7XHJcbiAgICAgICAgc2V0Q2FsZW5kYXJPcGVuZWQob3BlbmVkID0+IHtcclxuICAgICAgICAgICAgLy8gRm9jdXMgb24gdG9kYXkgd2hlbiBvcGVuaW5nIGNhbGVuZGFyIHdpdGhvdXQgYSBjaG9zZW4gZGF0ZVxyXG4gICAgICAgICAgICBpZiAoIW9wZW5lZCAmJiAhY2hvc2VuRGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgc2V0Rm9jdXNlZERhdGUoc2V0RGVmYXVsdEZvY3VzZWREYXRlKCkpO1xyXG4gICAgICAgICAgICAgICAgc2V0RGF0ZUZvY3VzZWQodHJ1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuICFvcGVuZWQ7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCB7IHBsYWNlaG9sZGVyLCB0ZXN0SWQsIGRhdGVUaW1lUGlja2VyQ29udGVudCwgLi4ucmVzdCB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBvdGhlciA9IG9taXQoWydvbkRhdGVDaGFuZ2UnLCAnb25JbnB1dENoYW5nZScsICdvbklucHV0Qmx1cicsICdvbklucHV0Rm9jdXMnXSwgcmVzdCk7XHJcbiAgICBjb25zdCBkYXRlRmllbGRWYWx1ZSA9IGRhdGVGb3JtYXQgPT09ICdNTU1NIGQsIHl5eXknICYmIGNob3NlbkRhdGVcclxuICAgICAgICA/IGZvcm1hdChjaG9zZW5EYXRlLCBkYXRlRm9ybWF0KVxyXG4gICAgICAgIDogY2hvc2VuRGF0ZTtcclxuICAgIGNvbnN0IGlucHV0RGF0ZVZhbHVlID0gY2hvc2VuRGF0ZSA/IGZvcm1hdChjaG9zZW5EYXRlLCBkYXRlRm9ybWF0KSA6ICcnO1xyXG4gICAgbGV0IGlucHV0VmFsdWUgPSBwcm9wcy5pc0RhdGVGaWVsZElucHV0ID8gZGF0ZUZpZWxkVmFsdWUgOiBpbnB1dERhdGVWYWx1ZTtcclxuICAgIGlmIChpbnB1dFZhbHVlICYmIHByb3BzLmFkZGl0aW9uYWxJbnB1dENvbnRlbnQpIHtcclxuICAgICAgICBpbnB1dFZhbHVlID0gYCR7aW5wdXRWYWx1ZX0gJHtwcm9wcy5hZGRpdGlvbmFsSW5wdXRDb250ZW50fWA7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChwcm9wcy5hZGRpdGlvbmFsSW5wdXRDb250ZW50KSB7XHJcbiAgICAgICAgc2V0Q2hvc2VuRGF0ZShuZXcgRGF0ZSgpKTtcclxuICAgIH1cclxuICAgIGNvbnN0IHsgZmxvYXRpbmdTdHlsZXMsIHJlZnMsIGVsZW1lbnRzLCB1cGRhdGUgfSA9IHVzZU1hZ21hRmxvYXRpbmcoKTtcclxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgcmVmZXJlbmNlRGF0ZUlucHV0ID0gZWxlbWVudHMucmVmZXJlbmNlO1xyXG4gICAgICAgIGNvbnN0IGZsb2F0aW5nQ2FsZW5kYXIgPSBlbGVtZW50cy5mbG9hdGluZztcclxuICAgICAgICBpZiAoY2FsZW5kYXJPcGVuZWQgJiYgcmVmZXJlbmNlRGF0ZUlucHV0ICYmIGZsb2F0aW5nQ2FsZW5kYXIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGF1dG9VcGRhdGUocmVmZXJlbmNlRGF0ZUlucHV0LCBmbG9hdGluZ0NhbGVuZGFyLCB1cGRhdGUpO1xyXG4gICAgICAgIH1cclxuICAgIH0sIFtjYWxlbmRhck9wZW5lZCwgZWxlbWVudHMsIHVwZGF0ZV0pO1xyXG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KENhbGVuZGFyQ29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZToge1xyXG4gICAgICAgICAgICBjaG9zZW5EYXRlLFxyXG4gICAgICAgICAgICBmb2N1c2VkRGF0ZSxcclxuICAgICAgICAgICAgZGF0ZUZvY3VzZWQsXHJcbiAgICAgICAgICAgIG1heERhdGUsXHJcbiAgICAgICAgICAgIG1pbkRhdGUsXHJcbiAgICAgICAgICAgIGhlbHBlckluZm9ybWF0aW9uU2hvd24sXHJcbiAgICAgICAgICAgIGlzSW52ZXJzZSxcclxuICAgICAgICAgICAgYnVpbGRDYWxlbmRhck1vbnRoLFxyXG4gICAgICAgICAgICBzaG93SGVscGVySW5mb3JtYXRpb24sXHJcbiAgICAgICAgICAgIGhpZGVIZWxwZXJJbmZvcm1hdGlvbixcclxuICAgICAgICAgICAgb25LZXlEb3duOiBoYW5kbGVLZXlEb3duLFxyXG4gICAgICAgICAgICBvblByZXZNb250aENsaWNrLFxyXG4gICAgICAgICAgICBvbk5leHRNb250aENsaWNrLFxyXG4gICAgICAgICAgICBvbkRhdGVDaGFuZ2U6IGhhbmRsZURheVNlbGVjdGlvbixcclxuICAgICAgICAgICAgc2V0RGF0ZUZvY3VzZWQsXHJcbiAgICAgICAgICAgIHNldEZvY3VzZWRUb2RheURhdGUsXHJcbiAgICAgICAgICAgIHNldEZvY3VzZWREYXRlLFxyXG4gICAgICAgICAgICBzZXRNb250aEZvY3VzZWREYXRlLFxyXG4gICAgICAgICAgICBzZXRZZWFyRm9jdXNlZERhdGUsXHJcbiAgICAgICAgICAgIG9uQ2xvc2U6IGNsb3NlSGVscGVySW5mb3JtYXRpb24sXHJcbiAgICAgICAgfSB9LFxyXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRGF0ZVBpY2tlckNvbnRhaW5lciwgeyBcImRhdGEtdGVzdGlkXCI6IHRlc3RJZCwgb25CbHVyOiBoYW5kbGVDYWxlbmRhckJsdXIgfSxcclxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChBbm5vdW5jZSwgbnVsbCwgY2FsZW5kYXJPcGVuZWQgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoVmlzdWFsbHlIaWRkZW4sIG51bGwsIGkxOG4uZGF0ZVBpY2tlci5jYWxlbmRhck9wZW5Bbm5vdW5jZSkpKSxcclxuICAgICAgICAgICAgcHJvcHMuaXNEYXRlRmllbGRJbnB1dCA/IChSZWFjdC5jcmVhdGVFbGVtZW50KERhdGVGaWVsZElucHV0LCBPYmplY3QuYXNzaWduKHt9LCBvdGhlciwgeyBpZDogaWQsIGRhdGVGb3JtYXQ6IGRhdGVGb3JtYXQsIGlucHV0VmFsdWU6IGlucHV0VmFsdWUsIG9uSWNvbkNsaWNrOiB0b2dnbGVDYWxlbmRhck9wZW5lZCwgc2V0UmVmZXJlbmNlOiByZWZzLnNldFJlZmVyZW5jZSwgaWNvblJlZjogaWNvblJlZiwgaW5wdXRSZWY6IGlucHV0UmVmLCBoYW5kbGVEYXRlQ2hhbmdlOiBoYW5kbGVEYXRlQ2hhbmdlLCBvbkNsZWFyRGF0ZTogcmVzZXQsIG9uSW5wdXRCbHVyOiBwcm9wcy5vbklucHV0Qmx1ciwgb25JbnB1dEZvY3VzOiBoYW5kbGVJbnB1dEZvY3VzLCBvbkljb25LZXlEb3duOiBoYW5kbGVJbnB1dEtleURvd24gfSkpKSA6IChSZWFjdC5jcmVhdGVFbGVtZW50KElucHV0LCBPYmplY3QuYXNzaWduKHt9LCBvdGhlciwgeyBpY29uOiBSZWFjdC5jcmVhdGVFbGVtZW50KEV2ZW50SWNvbiwgbnVsbCksIGljb25BcmlhTGFiZWw6IGkxOG4uZGF0ZVBpY2tlci5jYWxlbmRhckljb25BcmlhTGFiZWwsIGljb25SZWY6IGljb25SZWYsIG9uSWNvbkNsaWNrOiB0b2dnbGVDYWxlbmRhck9wZW5lZCwgb25JY29uS2V5RG93bjogaGFuZGxlSW5wdXRLZXlEb3duLCBpZDogaWQsIGlzSW52ZXJzZTogaXNJbnZlcnNlLCByZWY6IHJlZiwgb25DaGFuZ2U6IGhhbmRsZUlucHV0Q2hhbmdlLCBvbkJsdXI6IGhhbmRsZUlucHV0Qmx1ciwgb25Gb2N1czogaGFuZGxlSW5wdXRGb2N1cywgb25LZXlEb3duOiBoYW5kbGVJbnB1dEtleURvd24sIG9uRGF0ZUNoYW5nZTogaGFuZGxlRGF0ZUNoYW5nZSwgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyID8gcGxhY2Vob2xkZXIgOiBkYXRlRm9ybWF0LnRvTG93ZXJDYXNlKCksIHR5cGU6IElucHV0VHlwZS50ZXh0LCB2YWx1ZTogaW5wdXRWYWx1ZSwgc2V0UmVmZXJlbmNlOiByZWZzLnNldFJlZmVyZW5jZSB9KSkpLFxyXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEludmVyc2VDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiB7IGlzSW52ZXJzZSB9IH0sXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgcmVmOiBlbCA9PiBjYWxlbmRhck9wZW5lZCAmJiByZWZzLnNldEZsb2F0aW5nKGVsKSwgc3R5bGU6IHsgLi4uZmxvYXRpbmdTdHlsZXMsIHpJbmRleDogJzk5OCcgfSB9LFxyXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRGF0ZVBpY2tlckNhbGVuZGFyLCB7IFwiZGF0YS10ZXN0aWRcIjogXCJjYWxlbmRhckNvbnRhaW5lclwiLCBvcGVuZWQ6IGNhbGVuZGFyT3BlbmVkLCBpc0ludmVyc2U6IGlzSW52ZXJzZSwgdGhlbWU6IHRoZW1lIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ2FsZW5kYXJNb250aCwgeyBmb2N1c09uT3BlbjogY2FsZW5kYXJPcGVuZWQgJiYgQm9vbGVhbihmb2N1c2VkRGF0ZSksIGlzSW52ZXJzZTogaXNJbnZlcnNlLCBoYW5kbGVDbG9zZUJ1dHRvbkNsaWNrOiBoYW5kbGVDbG9zZUJ1dHRvbkNsaWNrLCBjYWxlbmRhck9wZW5lZDogY2FsZW5kYXJPcGVuZWQsIHNldERhdGVGb2N1c2VkOiBzZXREYXRlRm9jdXNlZCwgZGF0ZVRpbWVQaWNrZXJDb250ZW50OiBkYXRlVGltZVBpY2tlckNvbnRlbnQgfSkpKSkpKSk7XHJcbn0pO1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXX0= */",
24822
+ styles: "position:relative/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQnVDIiwiZmlsZSI6ImluZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xyXG5pbXBvcnQgeyBhdXRvVXBkYXRlIH0gZnJvbSAnQGZsb2F0aW5nLXVpL3JlYWN0LWRvbSc7XHJcbmltcG9ydCB7IGFkZERheXMsIGVuZE9mRGF5LCBpc0FmdGVyLCBpc0JlZm9yZSwgaXNNYXRjaCwgaXNWYWxpZCwgcGFyc2UsIHNldEhvdXJzLCBzdGFydE9mRGF5LCB9IGZyb20gJ2RhdGUtZm5zJztcclxuaW1wb3J0IHsgdHJhbnNwYXJlbnRpemUgfSBmcm9tICdwb2xpc2hlZCc7XHJcbmltcG9ydCB7IEV2ZW50SWNvbiB9IGZyb20gJ3JlYWN0LW1hZ21hLWljb25zJztcclxuaW1wb3J0IHsgQ2FsZW5kYXJDb250ZXh0IH0gZnJvbSAnLi9DYWxlbmRhckNvbnRleHQnO1xyXG5pbXBvcnQgeyBDYWxlbmRhck1vbnRoIH0gZnJvbSAnLi9DYWxlbmRhck1vbnRoJztcclxuaW1wb3J0IHsgdXNlTWFnbWFGbG9hdGluZyB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZU1hZ21hRmxvYXRpbmcnO1xyXG5pbXBvcnQgeyBJMThuQ29udGV4dCB9IGZyb20gJy4uLy4uL2kxOG4nO1xyXG5pbXBvcnQgeyBJbnZlcnNlQ29udGV4dCwgdXNlSXNJbnZlcnNlIH0gZnJvbSAnLi4vLi4vaW52ZXJzZSc7XHJcbmltcG9ydCB7IFRoZW1lQ29udGV4dCB9IGZyb20gJy4uLy4uL3RoZW1lL1RoZW1lQ29udGV4dCc7XHJcbmltcG9ydCB7IEFubm91bmNlIH0gZnJvbSAnLi4vQW5ub3VuY2UnO1xyXG5pbXBvcnQgeyBJbnB1dCB9IGZyb20gJy4uL0lucHV0JztcclxuaW1wb3J0IHsgSW5wdXRUeXBlIH0gZnJvbSAnLi4vSW5wdXRCYXNlJztcclxuaW1wb3J0IHsgVmlzdWFsbHlIaWRkZW4gfSBmcm9tICcuLi9WaXN1YWxseUhpZGRlbic7XHJcbmltcG9ydCB7IERhdGVGaWVsZElucHV0IH0gZnJvbSAnLi9EYXRlRmllbGQvRGF0ZUZpZWxkSW5wdXQnO1xyXG5pbXBvcnQgeyBnZXRDYWxlbmRhck1vbnRoV2Vla3MsIGdldERhdGVGcm9tU3RyaW5nLCBnZXROZXh0TW9udGhGcm9tRGF0ZSwgZ2V0UHJldk1vbnRoRnJvbURhdGUsIGhhbmRsZUtleVByZXNzLCBzZXRNb250aEZvckRhdGUsIHNldFllYXJGb3JEYXRlLCBpMThuRm9ybWF0IGFzIGZvcm1hdCwgaW5EYXRlUmFuZ2UsIH0gZnJvbSAnLi91dGlscyc7XHJcbmltcG9ydCB7IG9taXQsIHVzZUZvcmtlZFJlZiwgdXNlR2VuZXJhdGVJZCB9IGZyb20gJy4uLy4uL3V0aWxzJztcclxuY29uc3QgRGF0ZVBpY2tlckNvbnRhaW5lciA9IHN0eWxlZC5kaXYgYFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gO1xyXG5jb25zdCBEYXRlUGlja2VyQ2FsZW5kYXIgPSBzdHlsZWQuZGl2IGBcbiAgYm9yZGVyOiAxcHggc29saWRcbiAgICAke3Byb3BzID0+IHByb3BzLmlzSW52ZXJzZVxyXG4gICAgPyB0cmFuc3BhcmVudGl6ZSgwLjUsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwKVxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDMwMH07XG4gIGJvcmRlci1yYWRpdXM6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuYm9yZGVyUmFkaXVzfTtcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgZGlzcGxheTogJHtwcm9wcyA9PiAocHJvcHMub3BlbmVkID8gJ2Jsb2NrJyA6ICdub25lJyl9O1xuICBtYXJnaW46ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDF9IDBweDtcbiAgb3BhY2l0eTogJHtwcm9wcyA9PiAocHJvcHMub3BlbmVkID8gJzEnIDogJzAnKX07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLWluLW91dCAwcztcbiAgd2lkdGg6IDMyMHB4O1xuYDtcclxuZXhwb3J0IGNvbnN0IERhdGVQaWNrZXIgPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XHJcbiAgICBjb25zdCB0aGVtZSA9IFJlYWN0LnVzZUNvbnRleHQoVGhlbWVDb250ZXh0KTtcclxuICAgIGNvbnN0IGkxOG4gPSBSZWFjdC51c2VDb250ZXh0KEkxOG5Db250ZXh0KTtcclxuICAgIGNvbnN0IGljb25SZWYgPSBSZWFjdC51c2VSZWYoKTtcclxuICAgIGNvbnN0IHByZXZpb3VzSWNvblJlZiA9IFJlYWN0LnVzZVJlZigpO1xyXG4gICAgY29uc3QgaW5wdXRSZWYgPSBSZWFjdC51c2VSZWYoKTtcclxuICAgIGNvbnN0IGxhc3RGb2N1cyA9IFJlYWN0LnVzZVJlZigpO1xyXG4gICAgY29uc3QgaWQgPSB1c2VHZW5lcmF0ZUlkKHByb3BzLmlkKTtcclxuICAgIGNvbnN0IGlzSW52ZXJzZSA9IHVzZUlzSW52ZXJzZShwcm9wcy5pc0ludmVyc2UpO1xyXG4gICAgY29uc3QgbWluRGF0ZSA9IGdldERhdGVGcm9tU3RyaW5nKHByb3BzLm1pbkRhdGUpO1xyXG4gICAgY29uc3QgbWF4RGF0ZSA9IGdldERhdGVGcm9tU3RyaW5nKHByb3BzLm1heERhdGUpO1xyXG4gICAgY29uc3QgZGF0ZUZvcm1hdCA9IGkxOG4uZGF0ZUZvcm1hdDtcclxuICAgIGNvbnN0IFtoZWxwZXJJbmZvcm1hdGlvblNob3duLCBzZXRIZWxwZXJJbmZvcm1hdGlvblNob3duXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcclxuICAgIGNvbnN0IFtjYWxlbmRhck9wZW5lZCwgc2V0Q2FsZW5kYXJPcGVuZWRdID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xyXG4gICAgY29uc3QgW2RhdGVGb2N1c2VkLCBzZXREYXRlRm9jdXNlZF0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XHJcbiAgICBjb25zdCBbZm9jdXNlZERhdGUsIHNldEZvY3VzZWREYXRlXSA9IFJlYWN0LnVzZVN0YXRlKHNldERhdGVGcm9tQ29uc3VtZXIocHJvcHMudmFsdWUgfHwgcHJvcHMuZGVmYXVsdERhdGUpIHx8XHJcbiAgICAgICAgc2V0RGVmYXVsdEZvY3VzZWREYXRlKCkpO1xyXG4gICAgY29uc3QgW2Nob3NlbkRhdGUsIHNldENob3NlbkRhdGVdID0gUmVhY3QudXNlU3RhdGUoc2V0RGF0ZUZyb21Db25zdW1lcihwcm9wcy52YWx1ZSB8fCBwcm9wcy5kZWZhdWx0RGF0ZSkpO1xyXG4gICAgY29uc3QgcmVmID0gdXNlRm9ya2VkUmVmKGZvcndhcmRlZFJlZiwgaW5wdXRSZWYpO1xyXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICBpZiAocHJvcHMuYXBpUmVmKSB7XHJcbiAgICAgICAgICAgIHByb3BzLmFwaVJlZi5jdXJyZW50ID0ge1xyXG4gICAgICAgICAgICAgICAgY2xvc2VEYXRlUGlja2VyTWFudWFsbHkoZXZlbnQpIHtcclxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVDbG9zZUJ1dHRvbkNsaWNrKGV2ZW50KTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBvcGVuRGF0ZVBpY2tlck1hbnVhbGx5KGV2ZW50KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdG9nZ2xlQ2FsZW5kYXJPcGVuZWQoKTtcclxuICAgICAgICAgICAgICAgICAgICBpbnB1dFJlZi5jdXJyZW50LmZvY3VzKCk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgIH0sIFtdKTtcclxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgaWYgKGRhdGVUaW1lUGlja2VyQ29udGVudCAmJlxyXG4gICAgICAgICAgICBjaG9zZW5EYXRlICYmXHJcbiAgICAgICAgICAgIGlucHV0UmVmLmN1cnJlbnQgIT09IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgaWYgKCFwcm9wcy5hZGRpdGlvbmFsSW5wdXRDb250ZW50ICYmIHByb3BzLnNldEFkZGl0aW9uYWxJbnB1dENvbnRlbnQpIHtcclxuICAgICAgICAgICAgICAgIHByb3BzLnNldEFkZGl0aW9uYWxJbnB1dENvbnRlbnQoJzEyOjAwIEFNJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgc2V0Rm9jdXNlZERhdGUoY2hvc2VuRGF0ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW2Nob3NlbkRhdGVdKTtcclxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgaWYgKCFjYWxlbmRhck9wZW5lZCkge1xyXG4gICAgICAgICAgICBzZXREYXRlRm9jdXNlZChmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW2NhbGVuZGFyT3BlbmVkXSk7XHJcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgIGlmIChwcm9wcy52YWx1ZSkge1xyXG4gICAgICAgICAgICBzZXRGb2N1c2VkRGF0ZShzZXREYXRlRnJvbUNvbnN1bWVyKHByb3BzLnZhbHVlKSB8fCBzZXREZWZhdWx0Rm9jdXNlZERhdGUoKSk7XHJcbiAgICAgICAgICAgIHNldENob3NlbkRhdGUoc2V0RGF0ZUZyb21Db25zdW1lcihwcm9wcy52YWx1ZSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAocHJvcHMudmFsdWUgPT09IG51bGwpXHJcbiAgICAgICAgICAgIHNldENob3NlbkRhdGUodW5kZWZpbmVkKTtcclxuICAgIH0sIFtwcm9wcy52YWx1ZV0pO1xyXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICBwcmV2aW91c0ljb25SZWYuY3VycmVudCA9IGljb25SZWYuY3VycmVudDtcclxuICAgIH0sIFtdKTtcclxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgaWYgKCFmb2N1c2VkRGF0ZSB8fCAhbWluRGF0ZSlcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIGlmIChpc0JlZm9yZShmb2N1c2VkRGF0ZSwgbWluRGF0ZSkgJiYgIWNob3NlbkRhdGUpIHtcclxuICAgICAgICAgICAgc2V0Rm9jdXNlZERhdGUobWluRGF0ZSk7XHJcbiAgICAgICAgICAgIHNldERhdGVGb2N1c2VkKHRydWUpO1xyXG4gICAgICAgIH1cclxuICAgIH0sIFtmb2N1c2VkRGF0ZSwgbWluRGF0ZSwgY2hvc2VuRGF0ZV0pO1xyXG4gICAgZnVuY3Rpb24gc2hvd0hlbHBlckluZm9ybWF0aW9uKCkge1xyXG4gICAgICAgIGxhc3RGb2N1cy5jdXJyZW50ID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcclxuICAgICAgICBzZXRIZWxwZXJJbmZvcm1hdGlvblNob3duKHRydWUpO1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gaGlkZUhlbHBlckluZm9ybWF0aW9uKCkge1xyXG4gICAgICAgIGxhc3RGb2N1cy5jdXJyZW50LmZvY3VzKCk7XHJcbiAgICAgICAgc2V0SGVscGVySW5mb3JtYXRpb25TaG93bihmYWxzZSk7XHJcbiAgICB9XHJcbiAgICBmdW5jdGlvbiBjbG9zZUhlbHBlckluZm9ybWF0aW9uKCkge1xyXG4gICAgICAgIHNldEhlbHBlckluZm9ybWF0aW9uU2hvd24oZmFsc2UpO1xyXG4gICAgICAgIGljb25SZWYuY3VycmVudC5mb2N1cygpO1xyXG4gICAgICAgIHNldENhbGVuZGFyT3BlbmVkKGZhbHNlKTtcclxuICAgIH1cclxuICAgIGNvbnN0IHNldEZvY3VzZWRUb2RheURhdGUgPSAoZXZlbnQpID0+IHtcclxuICAgICAgICBjb25zdCBpc0tleWJvYXJkRXZlbnQgPSBldmVudC50eXBlID09PSAna2V5ZG93bic7XHJcbiAgICAgICAgaWYgKChpc0tleWJvYXJkRXZlbnQgJiZcclxuICAgICAgICAgICAgKGV2ZW50LmtleSA9PT0gJyAnIHx8XHJcbiAgICAgICAgICAgICAgICBldmVudC5rZXkgPT09ICdFbnRlcicpKSB8fFxyXG4gICAgICAgICAgICBldmVudC50eXBlID09PSAnY2xpY2snKSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgIHNldEZvY3VzZWREYXRlKHNldERlZmF1bHRGb2N1c2VkRGF0ZSgpKTtcclxuICAgICAgICAgICAgc2V0RGF0ZUZvY3VzZWQodHJ1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIGZ1bmN0aW9uIHNldERhdGVGcm9tQ29uc3VtZXIoZGF0ZSkge1xyXG4gICAgICAgIGNvbnN0IGNvbnZlcnRlZERhdGUgPSBnZXREYXRlRnJvbVN0cmluZyhkYXRlKTtcclxuICAgICAgICBjb25zdCBjb252ZXJ0ZWRNaW5EYXRlID0gZ2V0RGF0ZUZyb21TdHJpbmcobWluRGF0ZSk7XHJcbiAgICAgICAgY29uc3QgY29udmVydGVkTWF4RGF0ZSA9IGdldERhdGVGcm9tU3RyaW5nKG1heERhdGUpO1xyXG4gICAgICAgIHJldHVybiBkYXRlICYmXHJcbiAgICAgICAgICAgIGluRGF0ZVJhbmdlKGNvbnZlcnRlZERhdGUsIGNvbnZlcnRlZE1pbkRhdGUsIGNvbnZlcnRlZE1heERhdGUpXHJcbiAgICAgICAgICAgID8gY29udmVydGVkRGF0ZVxyXG4gICAgICAgICAgICA6IG51bGw7XHJcbiAgICB9XHJcbiAgICBmdW5jdGlvbiBzZXREZWZhdWx0Rm9jdXNlZERhdGUoKSB7XHJcbiAgICAgICAgY29uc3QgbmV3RGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICAgICAgY29uc3QgY29udmVydGVkTWluRGF0ZSA9IGdldERhdGVGcm9tU3RyaW5nKG1pbkRhdGUpO1xyXG4gICAgICAgIGNvbnN0IGNvbnZlcnRlZE1heERhdGUgPSBnZXREYXRlRnJvbVN0cmluZyhtYXhEYXRlKTtcclxuICAgICAgICBpZiAoaW5EYXRlUmFuZ2UobmV3RGF0ZSwgY29udmVydGVkTWluRGF0ZSwgY29udmVydGVkTWF4RGF0ZSkpIHtcclxuICAgICAgICAgICAgaWYgKGlzQmVmb3JlKHN0YXJ0T2ZEYXkobmV3RGF0ZSksIGNvbnZlcnRlZE1pbkRhdGUpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYWRkRGF5cyhuZXdEYXRlLCAxKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gbmV3RGF0ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoY29udmVydGVkTWF4RGF0ZSB8fCBjb252ZXJ0ZWRNaW5EYXRlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBjb252ZXJ0ZWRNaW5EYXRlID8gY29udmVydGVkTWluRGF0ZSA6IGNvbnZlcnRlZE1heERhdGU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gYnVpbGRDYWxlbmRhck1vbnRoKGRhdGUsIGVuYWJsZU91dHNpZGVEYXRlcykge1xyXG4gICAgICAgIGNvbnN0IGRheXMgPSBbXHJcbiAgICAgICAgICAgICdzdW5kYXknLFxyXG4gICAgICAgICAgICAnbW9uZGF5JyxcclxuICAgICAgICAgICAgJ3R1ZXNkYXknLFxyXG4gICAgICAgICAgICAnd2VkbmVzZGF5JyxcclxuICAgICAgICAgICAgJ3RodXJzZGF5JyxcclxuICAgICAgICAgICAgJ2ZyaWRheScsXHJcbiAgICAgICAgICAgICdzYXR1cmRheScsXHJcbiAgICAgICAgXTtcclxuICAgICAgICBjb25zdCB7IHN0YXJ0T2ZXZWVrIH0gPSBpMThuLmRhdGVQaWNrZXI7XHJcbiAgICAgICAgcmV0dXJuIGdldENhbGVuZGFyTW9udGhXZWVrcyhkYXRlLCBlbmFibGVPdXRzaWRlRGF0ZXMsIGRheXMuaW5kZXhPZihzdGFydE9mV2VlaykpO1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gb25QcmV2TW9udGhDbGljaygpIHtcclxuICAgICAgICBjb25zdCBuZXdEYXRlID0gZ2V0UHJldk1vbnRoRnJvbURhdGUoZm9jdXNlZERhdGUpO1xyXG4gICAgICAgIHNldEZvY3VzZWREYXRlKG5ld0RhdGUpO1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gb25OZXh0TW9udGhDbGljaygpIHtcclxuICAgICAgICBjb25zdCBuZXdEYXRlID0gZ2V0TmV4dE1vbnRoRnJvbURhdGUoZm9jdXNlZERhdGUpO1xyXG4gICAgICAgIHNldEZvY3VzZWREYXRlKG5ld0RhdGUpO1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gc2V0TW9udGhGb2N1c2VkRGF0ZShtb250aE51bWJlcikge1xyXG4gICAgICAgIGNvbnN0IG5ld0RhdGUgPSBzZXRNb250aEZvckRhdGUoZm9jdXNlZERhdGUsIG1vbnRoTnVtYmVyKTtcclxuICAgICAgICBzZXRGb2N1c2VkRGF0ZShuZXdEYXRlKTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIHNldFllYXJGb2N1c2VkRGF0ZSh5ZWFyTnVtYmVyKSB7XHJcbiAgICAgICAgY29uc3QgbmV3RGF0ZSA9IHNldFllYXJGb3JEYXRlKGZvY3VzZWREYXRlLCB5ZWFyTnVtYmVyKTtcclxuICAgICAgICBzZXRGb2N1c2VkRGF0ZShuZXdEYXRlKTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIG9uRGF0ZUNoYW5nZShkYXkpIHtcclxuICAgICAgICBzZXRDaG9zZW5EYXRlKGRheSk7XHJcbiAgICAgICAgaWYgKGRhdGVUaW1lUGlja2VyQ29udGVudClcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIHNldENhbGVuZGFyT3BlbmVkKGZhbHNlKTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIHJlc2V0KCkge1xyXG4gICAgICAgIHNldEZvY3VzZWREYXRlKHNldERlZmF1bHRGb2N1c2VkRGF0ZSgpKTtcclxuICAgICAgICBzZXRDaG9zZW5EYXRlKG51bGwpO1xyXG4gICAgICAgIHNldERhdGVGb2N1c2VkKGZhbHNlKTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIGlzVmFsaWREYXRlRnJvbVN0cmluZyh2YWx1ZSkge1xyXG4gICAgICAgIGNvbnN0IGlzVmFsaWREYXRlRm9ybWF0ID0gaXNNYXRjaCh2YWx1ZSwgaTE4bi5kYXRlRm9ybWF0KTtcclxuICAgICAgICBjb25zdCBwYXJzZWREYXRlID0gcGFyc2UodmFsdWUsIGkxOG4uZGF0ZUZvcm1hdCwgbmV3IERhdGUoKSk7XHJcbiAgICAgICAgY29uc3QgaXNWYWxpZERhdGUgPSBpc1ZhbGlkKHBhcnNlZERhdGUpO1xyXG4gICAgICAgIHJldHVybiBpc1ZhbGlkRGF0ZUZvcm1hdCAmJiBpc1ZhbGlkRGF0ZTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIGhhbmRsZUlucHV0Q2hhbmdlKGV2ZW50KSB7XHJcbiAgICAgICAgY29uc3QgeyB2YWx1ZSB9ID0gZXZlbnQudGFyZ2V0O1xyXG4gICAgICAgIGNvbnN0IGRheSA9IG5ldyBEYXRlKHZhbHVlKTtcclxuICAgICAgICBzZXRDYWxlbmRhck9wZW5lZChmYWxzZSk7XHJcbiAgICAgICAgcHJvcHMub25JbnB1dENoYW5nZSAmJlxyXG4gICAgICAgICAgICB0eXBlb2YgcHJvcHMub25JbnB1dENoYW5nZSA9PT0gJ2Z1bmN0aW9uJyAmJlxyXG4gICAgICAgICAgICBwcm9wcy5vbklucHV0Q2hhbmdlKGV2ZW50KTtcclxuICAgICAgICBsZXQgaXNWYWxpZERheTtcclxuICAgICAgICBpZiAoZGF0ZVRpbWVQaWNrZXJDb250ZW50KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHNwbGl0VmFsdWUgPSB2YWx1ZS5zcGxpdCgnICcpWzBdO1xyXG4gICAgICAgICAgICBpc1ZhbGlkRGF5ID0gaXNWYWxpZERhdGVGcm9tU3RyaW5nKHNwbGl0VmFsdWUpO1xyXG4gICAgICAgICAgICBjb25zdCB2YWxpZERheSA9IG5ldyBEYXRlKHNwbGl0VmFsdWUpO1xyXG4gICAgICAgICAgICBjb25zdCBwYXR0ZXJuID0gL15cXGR7Mn1cXC9cXGR7Mn1cXC9cXGR7NH0kLztcclxuICAgICAgICAgICAgaWYgKHBhdHRlcm4udGVzdChzcGxpdFZhbHVlKSAmJiBpc1ZhbGlkKHZhbGlkRGF5KSkge1xyXG4gICAgICAgICAgICAgICAgc2V0Q2hvc2VuRGF0ZSh2YWxpZERheSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcHJvcHMub25DaGFuZ2UgJiZcclxuICAgICAgICAgICAgICAgIHR5cGVvZiBwcm9wcy5vbkNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyAmJlxyXG4gICAgICAgICAgICAgICAgcHJvcHMub25DaGFuZ2UoaXNWYWxpZERheSA/IHZhbGlkRGF5LnRvSVNPU3RyaW5nKCkgOiBzcGxpdFZhbHVlLCBldmVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBpc1ZhbGlkRGF5ID0gaXNWYWxpZERhdGVGcm9tU3RyaW5nKHZhbHVlKTtcclxuICAgICAgICAgICAgcHJvcHMub25DaGFuZ2UgJiZcclxuICAgICAgICAgICAgICAgIHR5cGVvZiBwcm9wcy5vbkNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyAmJlxyXG4gICAgICAgICAgICAgICAgcHJvcHMub25DaGFuZ2UoaXNWYWxpZERheSA/IGRheS50b0lTT1N0cmluZygpIDogdmFsdWUsIGV2ZW50KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBmdW5jdGlvbiBoYW5kbGVJbnB1dEZvY3VzKGV2ZW50KSB7XHJcbiAgICAgICAgcHJvcHMub25JbnB1dEZvY3VzICYmXHJcbiAgICAgICAgICAgIHR5cGVvZiBwcm9wcy5vbklucHV0Rm9jdXMgPT09ICdmdW5jdGlvbicgJiZcclxuICAgICAgICAgICAgcHJvcHMub25JbnB1dEZvY3VzKGV2ZW50KTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIGhhbmRsZUlucHV0Qmx1cihldmVudCkge1xyXG4gICAgICAgIGNvbnN0IHsgdmFsdWUgfSA9IGlucHV0UmVmLmN1cnJlbnQ7XHJcbiAgICAgICAgY29uc3QgZGF5ID0gcGFyc2UoZGF0ZVRpbWVQaWNrZXJDb250ZW50ID8gdmFsdWUuc3BsaXQoJyAnKVswXSA6IHZhbHVlLCBpMThuLmRhdGVGb3JtYXQsIG5ldyBEYXRlKCkpO1xyXG4gICAgICAgIGxldCBpc1ZhbGlkRGF5O1xyXG4gICAgICAgIGlmIChkYXRlVGltZVBpY2tlckNvbnRlbnQpIHtcclxuICAgICAgICAgICAgY29uc3Qgc3BsaXRWYWx1ZSA9IHZhbHVlLnNwbGl0KCcgJylbMF07XHJcbiAgICAgICAgICAgIGlzVmFsaWREYXkgPSBpc1ZhbGlkRGF0ZUZyb21TdHJpbmcoc3BsaXRWYWx1ZSk7XHJcbiAgICAgICAgICAgIGNvbnN0IHZhbGlkRGF5ID0gbmV3IERhdGUoc3BsaXRWYWx1ZSk7XHJcbiAgICAgICAgICAgIGlmIChpc1ZhbGlkRGF5KSB7XHJcbiAgICAgICAgICAgICAgICBoYW5kbGVEYXRlQ2hhbmdlKHZhbGlkRGF5LCBldmVudCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGlzVmFsaWREYXkgPSBpc1ZhbGlkRGF0ZUZyb21TdHJpbmcodmFsdWUpO1xyXG4gICAgICAgICAgICBpZiAoaXNWYWxpZERheSkge1xyXG4gICAgICAgICAgICAgICAgaGFuZGxlRGF0ZUNoYW5nZShkYXksIGV2ZW50KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJlc2V0ICYmIHR5cGVvZiByZXNldCA9PT0gJ2Z1bmN0aW9uJyAmJiByZXNldCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHByb3BzLm9uSW5wdXRCbHVyICYmXHJcbiAgICAgICAgICAgIHR5cGVvZiBwcm9wcy5vbklucHV0Qmx1ciA9PT0gJ2Z1bmN0aW9uJyAmJlxyXG4gICAgICAgICAgICBwcm9wcy5vbklucHV0Qmx1cihldmVudCk7XHJcbiAgICB9XHJcbiAgICBmdW5jdGlvbiBoYW5kbGVJbnB1dEtleURvd24oZXZlbnQpIHtcclxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICBzZXRDYWxlbmRhck9wZW5lZChmYWxzZSk7XHJcbiAgICAgICAgICAgIGlucHV0UmVmLmN1cnJlbnQuZm9jdXMoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBmdW5jdGlvbiBoYW5kbGVLZXlEb3duKGV2ZW50KSB7XHJcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcclxuICAgICAgICAgICAgZXZlbnQubmF0aXZlRXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgIHNldENhbGVuZGFyT3BlbmVkKGZhbHNlKTtcclxuICAgICAgICAgICAgaWNvblJlZi5jdXJyZW50LmZvY3VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChkYXRlRm9jdXNlZCAmJiBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmNsb3Nlc3QoJ3RhYmxlJykpIHtcclxuICAgICAgICAgICAgY29uc3QgbmV3Q2hvc2VuRGF0ZSA9IGhhbmRsZUtleVByZXNzKGV2ZW50LCBmb2N1c2VkRGF0ZSwgc2V0Q2FsZW5kYXJPcGVuZWQsIHNob3dIZWxwZXJJbmZvcm1hdGlvbiwgb25EYXRlQ2hhbmdlLCBpY29uUmVmKTtcclxuICAgICAgICAgICAgaWYgKG5ld0Nob3NlbkRhdGUpIHtcclxuICAgICAgICAgICAgICAgIGlmIChtaW5EYXRlICYmIG1heERhdGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNBZnRlcihzZXRIb3VycyhuZXdDaG9zZW5EYXRlLCAxMiksIHN0YXJ0T2ZEYXkobWluRGF0ZSkpICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzQmVmb3JlKHNldEhvdXJzKG5ld0Nob3NlbkRhdGUsIDEyKSwgZW5kT2ZEYXkobWF4RGF0ZSkpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldEZvY3VzZWREYXRlKG5ld0Nob3NlbkRhdGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKG1pbkRhdGUgJiYgIW1heERhdGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNBZnRlcihzZXRIb3VycyhuZXdDaG9zZW5EYXRlLCAxMiksIHN0YXJ0T2ZEYXkobWluRGF0ZSkpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldEZvY3VzZWREYXRlKG5ld0Nob3NlbkRhdGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKG1heERhdGUgJiYgIW1pbkRhdGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNCZWZvcmUoc2V0SG91cnMobmV3Q2hvc2VuRGF0ZSwgMTIpLCBlbmRPZkRheShtYXhEYXRlKSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0Rm9jdXNlZERhdGUobmV3Q2hvc2VuRGF0ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2V0Rm9jdXNlZERhdGUobmV3Q2hvc2VuRGF0ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBmdW5jdGlvbiBoYW5kbGVEYXRlQ2hhbmdlKGRheSwgZXZlbnQpIHtcclxuICAgICAgICBwcm9wcy5vbkRhdGVDaGFuZ2UgJiZcclxuICAgICAgICAgICAgdHlwZW9mIHByb3BzLm9uRGF0ZUNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyAmJlxyXG4gICAgICAgICAgICBwcm9wcy5vbkRhdGVDaGFuZ2UoZGF5LCBldmVudCk7XHJcbiAgICAgICAgcHJvcHMub25DaGFuZ2UgJiZcclxuICAgICAgICAgICAgdHlwZW9mIHByb3BzLm9uQ2hhbmdlID09PSAnZnVuY3Rpb24nICYmXHJcbiAgICAgICAgICAgIHByb3BzLm9uQ2hhbmdlKGRheT8udG9JU09TdHJpbmcoKSwgZXZlbnQpO1xyXG4gICAgICAgIG9uRGF0ZUNoYW5nZShkYXkpO1xyXG4gICAgICAgIGlmIChkYXRlVGltZVBpY2tlckNvbnRlbnQpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICBzZXRGb2N1c2VkRGF0ZShkYXkpO1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gaGFuZGxlRGF5U2VsZWN0aW9uKGRheSwgZXZlbnQpIHtcclxuICAgICAgICBoYW5kbGVEYXRlQ2hhbmdlKGRheSwgZXZlbnQpO1xyXG4gICAgICAgIGlmIChkYXRlVGltZVBpY2tlckNvbnRlbnQpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICBpbnB1dFJlZi5jdXJyZW50LmZvY3VzKCk7XHJcbiAgICB9XHJcbiAgICBmdW5jdGlvbiBoYW5kbGVDYWxlbmRhckJsdXIoZXZlbnQpIHtcclxuICAgICAgICBjb25zdCB7IGN1cnJlbnRUYXJnZXQgfSA9IGV2ZW50O1xyXG4gICAgICAgIC8vIHRpbWVvdXQgbmVlZGVkIGZvciBhY3RpdmUgZWxlbWVudCB0byB1cGRhdGUuIEJyb3dzZXIgYmVoYXZpb3IuXHJcbiAgICAgICAgLy8gaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUyMzA3XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGlzSW5DYWxlbmRhciA9IGN1cnJlbnRUYXJnZXQuY29udGFpbnMoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCk7XHJcbiAgICAgICAgICAgIGlmICghaXNJbkNhbGVuZGFyICYmICFoZWxwZXJJbmZvcm1hdGlvblNob3duKSB7XHJcbiAgICAgICAgICAgICAgICBzZXRDYWxlbmRhck9wZW5lZChmYWxzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LCAwKTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIGhhbmRsZUNsb3NlQnV0dG9uQ2xpY2soZXZlbnQpIHtcclxuICAgICAgICBpZiAoIWljb25SZWYuY3VycmVudCAmJiBwcmV2aW91c0ljb25SZWYuY3VycmVudCkge1xyXG4gICAgICAgICAgICBpY29uUmVmLmN1cnJlbnQgPSBwcmV2aW91c0ljb25SZWYuY3VycmVudDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWNvblJlZi5jdXJyZW50LmZvY3VzKCk7XHJcbiAgICAgICAgc2V0Q2FsZW5kYXJPcGVuZWQoZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gdG9nZ2xlQ2FsZW5kYXJPcGVuZWQoKSB7XHJcbiAgICAgICAgc2V0Q2FsZW5kYXJPcGVuZWQob3BlbmVkID0+IHtcclxuICAgICAgICAgICAgLy8gRm9jdXMgb24gdG9kYXkgd2hlbiBvcGVuaW5nIGNhbGVuZGFyIHdpdGhvdXQgYSBjaG9zZW4gZGF0ZVxyXG4gICAgICAgICAgICBpZiAoIW9wZW5lZCAmJiAhY2hvc2VuRGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgc2V0Rm9jdXNlZERhdGUoc2V0RGVmYXVsdEZvY3VzZWREYXRlKCkpO1xyXG4gICAgICAgICAgICAgICAgc2V0RGF0ZUZvY3VzZWQodHJ1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuICFvcGVuZWQ7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCB7IHBsYWNlaG9sZGVyLCB0ZXN0SWQsIGRhdGVUaW1lUGlja2VyQ29udGVudCwgLi4ucmVzdCB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBvdGhlciA9IG9taXQoWydvbkRhdGVDaGFuZ2UnLCAnb25JbnB1dENoYW5nZScsICdvbklucHV0Qmx1cicsICdvbklucHV0Rm9jdXMnXSwgcmVzdCk7XHJcbiAgICBjb25zdCBkYXRlRmllbGRWYWx1ZSA9IGRhdGVGb3JtYXQgPT09ICdNTU1NIGQsIHl5eXknICYmIGNob3NlbkRhdGVcclxuICAgICAgICA/IGZvcm1hdChjaG9zZW5EYXRlLCBkYXRlRm9ybWF0KVxyXG4gICAgICAgIDogY2hvc2VuRGF0ZTtcclxuICAgIGNvbnN0IGlucHV0RGF0ZVZhbHVlID0gY2hvc2VuRGF0ZSA/IGZvcm1hdChjaG9zZW5EYXRlLCBkYXRlRm9ybWF0KSA6ICcnO1xyXG4gICAgbGV0IGlucHV0VmFsdWUgPSBwcm9wcy5pc0RhdGVGaWVsZElucHV0ID8gZGF0ZUZpZWxkVmFsdWUgOiBpbnB1dERhdGVWYWx1ZTtcclxuICAgIGlmIChpbnB1dFZhbHVlICYmIHByb3BzLmFkZGl0aW9uYWxJbnB1dENvbnRlbnQpIHtcclxuICAgICAgICBpbnB1dFZhbHVlID0gYCR7aW5wdXRWYWx1ZX0gJHtwcm9wcy5hZGRpdGlvbmFsSW5wdXRDb250ZW50fWA7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChwcm9wcy5hZGRpdGlvbmFsSW5wdXRDb250ZW50KSB7XHJcbiAgICAgICAgc2V0Q2hvc2VuRGF0ZShuZXcgRGF0ZSgpKTtcclxuICAgIH1cclxuICAgIGNvbnN0IHsgZmxvYXRpbmdTdHlsZXMsIHJlZnMsIGVsZW1lbnRzLCB1cGRhdGUgfSA9IHVzZU1hZ21hRmxvYXRpbmcoKTtcclxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgcmVmZXJlbmNlRGF0ZUlucHV0ID0gZWxlbWVudHMucmVmZXJlbmNlO1xyXG4gICAgICAgIGNvbnN0IGZsb2F0aW5nQ2FsZW5kYXIgPSBlbGVtZW50cy5mbG9hdGluZztcclxuICAgICAgICBpZiAoY2FsZW5kYXJPcGVuZWQgJiYgcmVmZXJlbmNlRGF0ZUlucHV0ICYmIGZsb2F0aW5nQ2FsZW5kYXIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGF1dG9VcGRhdGUocmVmZXJlbmNlRGF0ZUlucHV0LCBmbG9hdGluZ0NhbGVuZGFyLCB1cGRhdGUpO1xyXG4gICAgICAgIH1cclxuICAgIH0sIFtjYWxlbmRhck9wZW5lZCwgZWxlbWVudHMsIHVwZGF0ZV0pO1xyXG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KENhbGVuZGFyQ29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZToge1xyXG4gICAgICAgICAgICBjaG9zZW5EYXRlLFxyXG4gICAgICAgICAgICBmb2N1c2VkRGF0ZSxcclxuICAgICAgICAgICAgZGF0ZUZvY3VzZWQsXHJcbiAgICAgICAgICAgIG1heERhdGUsXHJcbiAgICAgICAgICAgIG1pbkRhdGUsXHJcbiAgICAgICAgICAgIGhlbHBlckluZm9ybWF0aW9uU2hvd24sXHJcbiAgICAgICAgICAgIGlzSW52ZXJzZSxcclxuICAgICAgICAgICAgYnVpbGRDYWxlbmRhck1vbnRoLFxyXG4gICAgICAgICAgICBzaG93SGVscGVySW5mb3JtYXRpb24sXHJcbiAgICAgICAgICAgIGhpZGVIZWxwZXJJbmZvcm1hdGlvbixcclxuICAgICAgICAgICAgb25LZXlEb3duOiBoYW5kbGVLZXlEb3duLFxyXG4gICAgICAgICAgICBvblByZXZNb250aENsaWNrLFxyXG4gICAgICAgICAgICBvbk5leHRNb250aENsaWNrLFxyXG4gICAgICAgICAgICBvbkRhdGVDaGFuZ2U6IGhhbmRsZURheVNlbGVjdGlvbixcclxuICAgICAgICAgICAgc2V0RGF0ZUZvY3VzZWQsXHJcbiAgICAgICAgICAgIHNldEZvY3VzZWRUb2RheURhdGUsXHJcbiAgICAgICAgICAgIHNldEZvY3VzZWREYXRlLFxyXG4gICAgICAgICAgICBzZXRNb250aEZvY3VzZWREYXRlLFxyXG4gICAgICAgICAgICBzZXRZZWFyRm9jdXNlZERhdGUsXHJcbiAgICAgICAgICAgIG9uQ2xvc2U6IGNsb3NlSGVscGVySW5mb3JtYXRpb24sXHJcbiAgICAgICAgfSB9LFxyXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRGF0ZVBpY2tlckNvbnRhaW5lciwgeyBcImRhdGEtdGVzdGlkXCI6IHRlc3RJZCwgb25CbHVyOiBoYW5kbGVDYWxlbmRhckJsdXIgfSxcclxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChBbm5vdW5jZSwgbnVsbCwgY2FsZW5kYXJPcGVuZWQgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoVmlzdWFsbHlIaWRkZW4sIG51bGwsIGkxOG4uZGF0ZVBpY2tlci5jYWxlbmRhck9wZW5Bbm5vdW5jZSkpKSxcclxuICAgICAgICAgICAgcHJvcHMuaXNEYXRlRmllbGRJbnB1dCA/IChSZWFjdC5jcmVhdGVFbGVtZW50KERhdGVGaWVsZElucHV0LCBPYmplY3QuYXNzaWduKHt9LCBvdGhlciwgeyBpZDogaWQsIGRhdGVGb3JtYXQ6IGRhdGVGb3JtYXQsIGlucHV0VmFsdWU6IGlucHV0VmFsdWUsIG9uSWNvbkNsaWNrOiB0b2dnbGVDYWxlbmRhck9wZW5lZCwgc2V0UmVmZXJlbmNlOiByZWZzLnNldFJlZmVyZW5jZSwgaWNvblJlZjogaWNvblJlZiwgaW5wdXRSZWY6IGlucHV0UmVmLCBoYW5kbGVEYXRlQ2hhbmdlOiBoYW5kbGVEYXRlQ2hhbmdlLCBvbkNsZWFyRGF0ZTogcmVzZXQsIG9uSW5wdXRCbHVyOiBwcm9wcy5vbklucHV0Qmx1ciwgb25JbnB1dEZvY3VzOiBoYW5kbGVJbnB1dEZvY3VzLCBvbkljb25LZXlEb3duOiBoYW5kbGVJbnB1dEtleURvd24gfSkpKSA6IChSZWFjdC5jcmVhdGVFbGVtZW50KElucHV0LCBPYmplY3QuYXNzaWduKHt9LCBvdGhlciwgeyBpY29uOiBSZWFjdC5jcmVhdGVFbGVtZW50KEV2ZW50SWNvbiwgbnVsbCksIGljb25BcmlhTGFiZWw6IGkxOG4uZGF0ZVBpY2tlci5jYWxlbmRhckljb25BcmlhTGFiZWwsIGljb25SZWY6IGljb25SZWYsIG9uSWNvbkNsaWNrOiB0b2dnbGVDYWxlbmRhck9wZW5lZCwgb25JY29uS2V5RG93bjogaGFuZGxlSW5wdXRLZXlEb3duLCBpZDogaWQsIGlzSW52ZXJzZTogaXNJbnZlcnNlLCByZWY6IHJlZiwgb25DaGFuZ2U6IGhhbmRsZUlucHV0Q2hhbmdlLCBvbkJsdXI6IGhhbmRsZUlucHV0Qmx1ciwgb25Gb2N1czogaGFuZGxlSW5wdXRGb2N1cywgb25LZXlEb3duOiBoYW5kbGVJbnB1dEtleURvd24sIG9uRGF0ZUNoYW5nZTogaGFuZGxlRGF0ZUNoYW5nZSwgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyID8gcGxhY2Vob2xkZXIgOiBkYXRlRm9ybWF0LnRvTG93ZXJDYXNlKCksIHR5cGU6IElucHV0VHlwZS50ZXh0LCB2YWx1ZTogaW5wdXRWYWx1ZSwgc2V0UmVmZXJlbmNlOiByZWZzLnNldFJlZmVyZW5jZSB9KSkpLFxyXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEludmVyc2VDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiB7IGlzSW52ZXJzZSB9IH0sXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgcmVmOiBlbCA9PiBjYWxlbmRhck9wZW5lZCAmJiByZWZzLnNldEZsb2F0aW5nKGVsKSwgc3R5bGU6IHsgLi4uZmxvYXRpbmdTdHlsZXMsIHpJbmRleDogJzk5OCcgfSB9LFxyXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRGF0ZVBpY2tlckNhbGVuZGFyLCB7IFwiZGF0YS10ZXN0aWRcIjogXCJjYWxlbmRhckNvbnRhaW5lclwiLCBvcGVuZWQ6IGNhbGVuZGFyT3BlbmVkLCBpc0ludmVyc2U6IGlzSW52ZXJzZSwgdGhlbWU6IHRoZW1lIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ2FsZW5kYXJNb250aCwgeyBmb2N1c09uT3BlbjogY2FsZW5kYXJPcGVuZWQgJiYgQm9vbGVhbihmb2N1c2VkRGF0ZSksIGlzSW52ZXJzZTogaXNJbnZlcnNlLCBoYW5kbGVDbG9zZUJ1dHRvbkNsaWNrOiBoYW5kbGVDbG9zZUJ1dHRvbkNsaWNrLCBjYWxlbmRhck9wZW5lZDogY2FsZW5kYXJPcGVuZWQsIHNldERhdGVGb2N1c2VkOiBzZXREYXRlRm9jdXNlZCwgZGF0ZVRpbWVQaWNrZXJDb250ZW50OiBkYXRlVGltZVBpY2tlckNvbnRlbnQgfSkpKSkpKSk7XHJcbn0pO1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXX0= */",
24823
24823
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__$l
24824
24824
  });
24825
24825
  /*#__PURE__*/createStyled("div", {
@@ -24837,7 +24837,7 @@
24837
24837
  return props.theme.spaceScale.spacing01;
24838
24838
  }, " 0px;opacity:", function (props) {
24839
24839
  return props.opened ? '1' : '0';
24840
- }, ";overflow:hidden;transition:opacity 0.2s ease-in-out 0s;width:320px;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFzQnNDIiwiZmlsZSI6ImluZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xyXG5pbXBvcnQgeyBhdXRvVXBkYXRlIH0gZnJvbSAnQGZsb2F0aW5nLXVpL3JlYWN0LWRvbSc7XHJcbmltcG9ydCB7IGFkZERheXMsIGVuZE9mRGF5LCBpc0FmdGVyLCBpc0JlZm9yZSwgaXNNYXRjaCwgaXNWYWxpZCwgcGFyc2UsIHNldEhvdXJzLCBzdGFydE9mRGF5LCB9IGZyb20gJ2RhdGUtZm5zJztcclxuaW1wb3J0IHsgdHJhbnNwYXJlbnRpemUgfSBmcm9tICdwb2xpc2hlZCc7XHJcbmltcG9ydCB7IEV2ZW50SWNvbiB9IGZyb20gJ3JlYWN0LW1hZ21hLWljb25zJztcclxuaW1wb3J0IHsgQ2FsZW5kYXJDb250ZXh0IH0gZnJvbSAnLi9DYWxlbmRhckNvbnRleHQnO1xyXG5pbXBvcnQgeyBDYWxlbmRhck1vbnRoIH0gZnJvbSAnLi9DYWxlbmRhck1vbnRoJztcclxuaW1wb3J0IHsgdXNlTWFnbWFGbG9hdGluZyB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZU1hZ21hRmxvYXRpbmcnO1xyXG5pbXBvcnQgeyBJMThuQ29udGV4dCB9IGZyb20gJy4uLy4uL2kxOG4nO1xyXG5pbXBvcnQgeyBJbnZlcnNlQ29udGV4dCwgdXNlSXNJbnZlcnNlIH0gZnJvbSAnLi4vLi4vaW52ZXJzZSc7XHJcbmltcG9ydCB7IFRoZW1lQ29udGV4dCB9IGZyb20gJy4uLy4uL3RoZW1lL1RoZW1lQ29udGV4dCc7XHJcbmltcG9ydCB7IEFubm91bmNlIH0gZnJvbSAnLi4vQW5ub3VuY2UnO1xyXG5pbXBvcnQgeyBJbnB1dCB9IGZyb20gJy4uL0lucHV0JztcclxuaW1wb3J0IHsgSW5wdXRUeXBlIH0gZnJvbSAnLi4vSW5wdXRCYXNlJztcclxuaW1wb3J0IHsgVmlzdWFsbHlIaWRkZW4gfSBmcm9tICcuLi9WaXN1YWxseUhpZGRlbic7XHJcbmltcG9ydCB7IERhdGVGaWVsZElucHV0IH0gZnJvbSAnLi9EYXRlRmllbGQvRGF0ZUZpZWxkSW5wdXQnO1xyXG5pbXBvcnQgeyBnZXRDYWxlbmRhck1vbnRoV2Vla3MsIGdldERhdGVGcm9tU3RyaW5nLCBnZXROZXh0TW9udGhGcm9tRGF0ZSwgZ2V0UHJldk1vbnRoRnJvbURhdGUsIGhhbmRsZUtleVByZXNzLCBzZXRNb250aEZvckRhdGUsIHNldFllYXJGb3JEYXRlLCBpMThuRm9ybWF0IGFzIGZvcm1hdCwgaW5EYXRlUmFuZ2UsIH0gZnJvbSAnLi91dGlscyc7XHJcbmltcG9ydCB7IG9taXQsIHVzZUZvcmtlZFJlZiwgdXNlR2VuZXJhdGVJZCB9IGZyb20gJy4uLy4uL3V0aWxzJztcclxuY29uc3QgRGF0ZVBpY2tlckNvbnRhaW5lciA9IHN0eWxlZC5kaXYgYFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gO1xyXG5jb25zdCBEYXRlUGlja2VyQ2FsZW5kYXIgPSBzdHlsZWQuZGl2IGBcbiAgYm9yZGVyOiAxcHggc29saWRcbiAgICAke3Byb3BzID0+IHByb3BzLmlzSW52ZXJzZVxyXG4gICAgPyB0cmFuc3BhcmVudGl6ZSgwLjUsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwKVxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDMwMH07XG4gIGJvcmRlci1yYWRpdXM6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuYm9yZGVyUmFkaXVzfTtcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgZGlzcGxheTogJHtwcm9wcyA9PiAocHJvcHMub3BlbmVkID8gJ2Jsb2NrJyA6ICdub25lJyl9O1xuICBtYXJnaW46ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDF9IDBweDtcbiAgb3BhY2l0eTogJHtwcm9wcyA9PiAocHJvcHMub3BlbmVkID8gJzEnIDogJzAnKX07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLWluLW91dCAwcztcbiAgd2lkdGg6IDMyMHB4O1xuYDtcclxuZXhwb3J0IGNvbnN0IERhdGVQaWNrZXIgPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XHJcbiAgICBjb25zdCB0aGVtZSA9IFJlYWN0LnVzZUNvbnRleHQoVGhlbWVDb250ZXh0KTtcclxuICAgIGNvbnN0IGkxOG4gPSBSZWFjdC51c2VDb250ZXh0KEkxOG5Db250ZXh0KTtcclxuICAgIGNvbnN0IGljb25SZWYgPSBSZWFjdC51c2VSZWYoKTtcclxuICAgIGNvbnN0IHByZXZpb3VzSWNvblJlZiA9IFJlYWN0LnVzZVJlZigpO1xyXG4gICAgY29uc3QgaW5wdXRSZWYgPSBSZWFjdC51c2VSZWYoKTtcclxuICAgIGNvbnN0IGxhc3RGb2N1cyA9IFJlYWN0LnVzZVJlZigpO1xyXG4gICAgY29uc3QgaWQgPSB1c2VHZW5lcmF0ZUlkKHByb3BzLmlkKTtcclxuICAgIGNvbnN0IGlzSW52ZXJzZSA9IHVzZUlzSW52ZXJzZShwcm9wcy5pc0ludmVyc2UpO1xyXG4gICAgY29uc3QgbWluRGF0ZSA9IGdldERhdGVGcm9tU3RyaW5nKHByb3BzLm1pbkRhdGUpO1xyXG4gICAgY29uc3QgbWF4RGF0ZSA9IGdldERhdGVGcm9tU3RyaW5nKHByb3BzLm1heERhdGUpO1xyXG4gICAgY29uc3QgZGF0ZUZvcm1hdCA9IGkxOG4uZGF0ZUZvcm1hdDtcclxuICAgIGNvbnN0IFtoZWxwZXJJbmZvcm1hdGlvblNob3duLCBzZXRIZWxwZXJJbmZvcm1hdGlvblNob3duXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcclxuICAgIGNvbnN0IFtjYWxlbmRhck9wZW5lZCwgc2V0Q2FsZW5kYXJPcGVuZWRdID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xyXG4gICAgY29uc3QgW2RhdGVGb2N1c2VkLCBzZXREYXRlRm9jdXNlZF0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XHJcbiAgICBjb25zdCBbZm9jdXNlZERhdGUsIHNldEZvY3VzZWREYXRlXSA9IFJlYWN0LnVzZVN0YXRlKHNldERhdGVGcm9tQ29uc3VtZXIocHJvcHMudmFsdWUgfHwgcHJvcHMuZGVmYXVsdERhdGUpIHx8XHJcbiAgICAgICAgc2V0RGVmYXVsdEZvY3VzZWREYXRlKCkpO1xyXG4gICAgY29uc3QgW2Nob3NlbkRhdGUsIHNldENob3NlbkRhdGVdID0gUmVhY3QudXNlU3RhdGUoc2V0RGF0ZUZyb21Db25zdW1lcihwcm9wcy52YWx1ZSB8fCBwcm9wcy5kZWZhdWx0RGF0ZSkpO1xyXG4gICAgY29uc3QgcmVmID0gdXNlRm9ya2VkUmVmKGZvcndhcmRlZFJlZiwgaW5wdXRSZWYpO1xyXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICBpZiAocHJvcHMuYXBpUmVmKSB7XHJcbiAgICAgICAgICAgIHByb3BzLmFwaVJlZi5jdXJyZW50ID0ge1xyXG4gICAgICAgICAgICAgICAgY2xvc2VEYXRlUGlja2VyTWFudWFsbHkoZXZlbnQpIHtcclxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVDbG9zZUJ1dHRvbkNsaWNrKGV2ZW50KTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBvcGVuRGF0ZVBpY2tlck1hbnVhbGx5KGV2ZW50KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdG9nZ2xlQ2FsZW5kYXJPcGVuZWQoKTtcclxuICAgICAgICAgICAgICAgICAgICBpbnB1dFJlZi5jdXJyZW50LmZvY3VzKCk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgIH0sIFtdKTtcclxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgaWYgKGRhdGVUaW1lUGlja2VyQ29udGVudCAmJlxyXG4gICAgICAgICAgICBjaG9zZW5EYXRlICYmXHJcbiAgICAgICAgICAgIGlucHV0UmVmLmN1cnJlbnQgIT09IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgaWYgKCFwcm9wcy5hZGRpdGlvbmFsSW5wdXRDb250ZW50ICYmIHByb3BzLnNldEFkZGl0aW9uYWxJbnB1dENvbnRlbnQpIHtcclxuICAgICAgICAgICAgICAgIHByb3BzLnNldEFkZGl0aW9uYWxJbnB1dENvbnRlbnQoJzEyOjAwIEFNJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgc2V0Rm9jdXNlZERhdGUoY2hvc2VuRGF0ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW2Nob3NlbkRhdGVdKTtcclxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgaWYgKCFjYWxlbmRhck9wZW5lZCkge1xyXG4gICAgICAgICAgICBzZXREYXRlRm9jdXNlZChmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW2NhbGVuZGFyT3BlbmVkXSk7XHJcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgIGlmIChwcm9wcy52YWx1ZSkge1xyXG4gICAgICAgICAgICBzZXRGb2N1c2VkRGF0ZShzZXREYXRlRnJvbUNvbnN1bWVyKHByb3BzLnZhbHVlKSB8fCBzZXREZWZhdWx0Rm9jdXNlZERhdGUoKSk7XHJcbiAgICAgICAgICAgIHNldENob3NlbkRhdGUoc2V0RGF0ZUZyb21Db25zdW1lcihwcm9wcy52YWx1ZSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAocHJvcHMudmFsdWUgPT09IG51bGwpXHJcbiAgICAgICAgICAgIHNldENob3NlbkRhdGUodW5kZWZpbmVkKTtcclxuICAgIH0sIFtwcm9wcy52YWx1ZV0pO1xyXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICBwcmV2aW91c0ljb25SZWYuY3VycmVudCA9IGljb25SZWYuY3VycmVudDtcclxuICAgIH0sIFtdKTtcclxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgaWYgKCFmb2N1c2VkRGF0ZSB8fCAhbWluRGF0ZSlcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIGlmIChpc0JlZm9yZShmb2N1c2VkRGF0ZSwgbWluRGF0ZSkgJiYgIWNob3NlbkRhdGUpIHtcclxuICAgICAgICAgICAgc2V0Rm9jdXNlZERhdGUobWluRGF0ZSk7XHJcbiAgICAgICAgICAgIHNldERhdGVGb2N1c2VkKHRydWUpO1xyXG4gICAgICAgIH1cclxuICAgIH0sIFtmb2N1c2VkRGF0ZSwgbWluRGF0ZSwgY2hvc2VuRGF0ZV0pO1xyXG4gICAgZnVuY3Rpb24gc2hvd0hlbHBlckluZm9ybWF0aW9uKCkge1xyXG4gICAgICAgIGxhc3RGb2N1cy5jdXJyZW50ID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcclxuICAgICAgICBzZXRIZWxwZXJJbmZvcm1hdGlvblNob3duKHRydWUpO1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gaGlkZUhlbHBlckluZm9ybWF0aW9uKCkge1xyXG4gICAgICAgIGxhc3RGb2N1cy5jdXJyZW50LmZvY3VzKCk7XHJcbiAgICAgICAgc2V0SGVscGVySW5mb3JtYXRpb25TaG93bihmYWxzZSk7XHJcbiAgICB9XHJcbiAgICBmdW5jdGlvbiBjbG9zZUhlbHBlckluZm9ybWF0aW9uKCkge1xyXG4gICAgICAgIHNldEhlbHBlckluZm9ybWF0aW9uU2hvd24oZmFsc2UpO1xyXG4gICAgICAgIGljb25SZWYuY3VycmVudC5mb2N1cygpO1xyXG4gICAgICAgIHNldENhbGVuZGFyT3BlbmVkKGZhbHNlKTtcclxuICAgIH1cclxuICAgIGNvbnN0IHNldEZvY3VzZWRUb2RheURhdGUgPSAoZXZlbnQpID0+IHtcclxuICAgICAgICBjb25zdCBpc0tleWJvYXJkRXZlbnQgPSBldmVudC50eXBlID09PSAna2V5ZG93bic7XHJcbiAgICAgICAgaWYgKChpc0tleWJvYXJkRXZlbnQgJiZcclxuICAgICAgICAgICAgKGV2ZW50LmtleSA9PT0gJyAnIHx8XHJcbiAgICAgICAgICAgICAgICBldmVudC5rZXkgPT09ICdFbnRlcicpKSB8fFxyXG4gICAgICAgICAgICBldmVudC50eXBlID09PSAnY2xpY2snKSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgIHNldEZvY3VzZWREYXRlKHNldERlZmF1bHRGb2N1c2VkRGF0ZSgpKTtcclxuICAgICAgICAgICAgc2V0RGF0ZUZvY3VzZWQodHJ1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIGZ1bmN0aW9uIHNldERhdGVGcm9tQ29uc3VtZXIoZGF0ZSkge1xyXG4gICAgICAgIGNvbnN0IGNvbnZlcnRlZERhdGUgPSBnZXREYXRlRnJvbVN0cmluZyhkYXRlKTtcclxuICAgICAgICBjb25zdCBjb252ZXJ0ZWRNaW5EYXRlID0gZ2V0RGF0ZUZyb21TdHJpbmcobWluRGF0ZSk7XHJcbiAgICAgICAgY29uc3QgY29udmVydGVkTWF4RGF0ZSA9IGdldERhdGVGcm9tU3RyaW5nKG1heERhdGUpO1xyXG4gICAgICAgIHJldHVybiBkYXRlICYmXHJcbiAgICAgICAgICAgIGluRGF0ZVJhbmdlKGNvbnZlcnRlZERhdGUsIGNvbnZlcnRlZE1pbkRhdGUsIGNvbnZlcnRlZE1heERhdGUpXHJcbiAgICAgICAgICAgID8gY29udmVydGVkRGF0ZVxyXG4gICAgICAgICAgICA6IG51bGw7XHJcbiAgICB9XHJcbiAgICBmdW5jdGlvbiBzZXREZWZhdWx0Rm9jdXNlZERhdGUoKSB7XHJcbiAgICAgICAgY29uc3QgbmV3RGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICAgICAgY29uc3QgY29udmVydGVkTWluRGF0ZSA9IGdldERhdGVGcm9tU3RyaW5nKG1pbkRhdGUpO1xyXG4gICAgICAgIGNvbnN0IGNvbnZlcnRlZE1heERhdGUgPSBnZXREYXRlRnJvbVN0cmluZyhtYXhEYXRlKTtcclxuICAgICAgICBpZiAoaW5EYXRlUmFuZ2UobmV3RGF0ZSwgY29udmVydGVkTWluRGF0ZSwgY29udmVydGVkTWF4RGF0ZSkpIHtcclxuICAgICAgICAgICAgaWYgKGlzQmVmb3JlKHN0YXJ0T2ZEYXkobmV3RGF0ZSksIGNvbnZlcnRlZE1pbkRhdGUpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYWRkRGF5cyhuZXdEYXRlLCAxKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gbmV3RGF0ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoY29udmVydGVkTWF4RGF0ZSB8fCBjb252ZXJ0ZWRNaW5EYXRlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBjb252ZXJ0ZWRNaW5EYXRlID8gY29udmVydGVkTWluRGF0ZSA6IGNvbnZlcnRlZE1heERhdGU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gYnVpbGRDYWxlbmRhck1vbnRoKGRhdGUsIGVuYWJsZU91dHNpZGVEYXRlcykge1xyXG4gICAgICAgIGNvbnN0IGRheXMgPSBbXHJcbiAgICAgICAgICAgICdzdW5kYXknLFxyXG4gICAgICAgICAgICAnbW9uZGF5JyxcclxuICAgICAgICAgICAgJ3R1ZXNkYXknLFxyXG4gICAgICAgICAgICAnd2VkbmVzZGF5JyxcclxuICAgICAgICAgICAgJ3RodXJzZGF5JyxcclxuICAgICAgICAgICAgJ2ZyaWRheScsXHJcbiAgICAgICAgICAgICdzYXR1cmRheScsXHJcbiAgICAgICAgXTtcclxuICAgICAgICBjb25zdCB7IHN0YXJ0T2ZXZWVrIH0gPSBpMThuLmRhdGVQaWNrZXI7XHJcbiAgICAgICAgcmV0dXJuIGdldENhbGVuZGFyTW9udGhXZWVrcyhkYXRlLCBlbmFibGVPdXRzaWRlRGF0ZXMsIGRheXMuaW5kZXhPZihzdGFydE9mV2VlaykpO1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gb25QcmV2TW9udGhDbGljaygpIHtcclxuICAgICAgICBjb25zdCBuZXdEYXRlID0gZ2V0UHJldk1vbnRoRnJvbURhdGUoZm9jdXNlZERhdGUpO1xyXG4gICAgICAgIHNldEZvY3VzZWREYXRlKG5ld0RhdGUpO1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gb25OZXh0TW9udGhDbGljaygpIHtcclxuICAgICAgICBjb25zdCBuZXdEYXRlID0gZ2V0TmV4dE1vbnRoRnJvbURhdGUoZm9jdXNlZERhdGUpO1xyXG4gICAgICAgIHNldEZvY3VzZWREYXRlKG5ld0RhdGUpO1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gc2V0TW9udGhGb2N1c2VkRGF0ZShtb250aE51bWJlcikge1xyXG4gICAgICAgIGNvbnN0IG5ld0RhdGUgPSBzZXRNb250aEZvckRhdGUoZm9jdXNlZERhdGUsIG1vbnRoTnVtYmVyKTtcclxuICAgICAgICBzZXRGb2N1c2VkRGF0ZShuZXdEYXRlKTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIHNldFllYXJGb2N1c2VkRGF0ZSh5ZWFyTnVtYmVyKSB7XHJcbiAgICAgICAgY29uc3QgbmV3RGF0ZSA9IHNldFllYXJGb3JEYXRlKGZvY3VzZWREYXRlLCB5ZWFyTnVtYmVyKTtcclxuICAgICAgICBzZXRGb2N1c2VkRGF0ZShuZXdEYXRlKTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIG9uRGF0ZUNoYW5nZShkYXkpIHtcclxuICAgICAgICBzZXRDaG9zZW5EYXRlKGRheSk7XHJcbiAgICAgICAgaWYgKGRhdGVUaW1lUGlja2VyQ29udGVudClcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIHNldENhbGVuZGFyT3BlbmVkKGZhbHNlKTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIHJlc2V0KCkge1xyXG4gICAgICAgIHNldEZvY3VzZWREYXRlKHNldERlZmF1bHRGb2N1c2VkRGF0ZSgpKTtcclxuICAgICAgICBzZXRDaG9zZW5EYXRlKG51bGwpO1xyXG4gICAgICAgIHNldERhdGVGb2N1c2VkKGZhbHNlKTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIGlzVmFsaWREYXRlRnJvbVN0cmluZyh2YWx1ZSkge1xyXG4gICAgICAgIGNvbnN0IGlzVmFsaWREYXRlRm9ybWF0ID0gaXNNYXRjaCh2YWx1ZSwgaTE4bi5kYXRlRm9ybWF0KTtcclxuICAgICAgICBjb25zdCBwYXJzZWREYXRlID0gcGFyc2UodmFsdWUsIGkxOG4uZGF0ZUZvcm1hdCwgbmV3IERhdGUoKSk7XHJcbiAgICAgICAgY29uc3QgaXNWYWxpZERhdGUgPSBpc1ZhbGlkKHBhcnNlZERhdGUpO1xyXG4gICAgICAgIHJldHVybiBpc1ZhbGlkRGF0ZUZvcm1hdCAmJiBpc1ZhbGlkRGF0ZTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIGhhbmRsZUlucHV0Q2hhbmdlKGV2ZW50KSB7XHJcbiAgICAgICAgY29uc3QgeyB2YWx1ZSB9ID0gZXZlbnQudGFyZ2V0O1xyXG4gICAgICAgIGNvbnN0IGRheSA9IG5ldyBEYXRlKHZhbHVlKTtcclxuICAgICAgICBzZXRDYWxlbmRhck9wZW5lZChmYWxzZSk7XHJcbiAgICAgICAgcHJvcHMub25JbnB1dENoYW5nZSAmJlxyXG4gICAgICAgICAgICB0eXBlb2YgcHJvcHMub25JbnB1dENoYW5nZSA9PT0gJ2Z1bmN0aW9uJyAmJlxyXG4gICAgICAgICAgICBwcm9wcy5vbklucHV0Q2hhbmdlKGV2ZW50KTtcclxuICAgICAgICBsZXQgaXNWYWxpZERheTtcclxuICAgICAgICBpZiAoZGF0ZVRpbWVQaWNrZXJDb250ZW50KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHNwbGl0VmFsdWUgPSB2YWx1ZS5zcGxpdCgnICcpWzBdO1xyXG4gICAgICAgICAgICBpc1ZhbGlkRGF5ID0gaXNWYWxpZERhdGVGcm9tU3RyaW5nKHNwbGl0VmFsdWUpO1xyXG4gICAgICAgICAgICBjb25zdCB2YWxpZERheSA9IG5ldyBEYXRlKHNwbGl0VmFsdWUpO1xyXG4gICAgICAgICAgICBjb25zdCBwYXR0ZXJuID0gL15cXGR7Mn1cXC9cXGR7Mn1cXC9cXGR7NH0kLztcclxuICAgICAgICAgICAgaWYgKHBhdHRlcm4udGVzdChzcGxpdFZhbHVlKSkge1xyXG4gICAgICAgICAgICAgICAgc2V0Q2hvc2VuRGF0ZSh2YWxpZERheSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcHJvcHMub25DaGFuZ2UgJiZcclxuICAgICAgICAgICAgICAgIHR5cGVvZiBwcm9wcy5vbkNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyAmJlxyXG4gICAgICAgICAgICAgICAgcHJvcHMub25DaGFuZ2UoaXNWYWxpZERheSA/IHZhbGlkRGF5LnRvSVNPU3RyaW5nKCkgOiBzcGxpdFZhbHVlLCBldmVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBpc1ZhbGlkRGF5ID0gaXNWYWxpZERhdGVGcm9tU3RyaW5nKHZhbHVlKTtcclxuICAgICAgICAgICAgcHJvcHMub25DaGFuZ2UgJiZcclxuICAgICAgICAgICAgICAgIHR5cGVvZiBwcm9wcy5vbkNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyAmJlxyXG4gICAgICAgICAgICAgICAgcHJvcHMub25DaGFuZ2UoaXNWYWxpZERheSA/IGRheS50b0lTT1N0cmluZygpIDogdmFsdWUsIGV2ZW50KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBmdW5jdGlvbiBoYW5kbGVJbnB1dEZvY3VzKGV2ZW50KSB7XHJcbiAgICAgICAgcHJvcHMub25JbnB1dEZvY3VzICYmXHJcbiAgICAgICAgICAgIHR5cGVvZiBwcm9wcy5vbklucHV0Rm9jdXMgPT09ICdmdW5jdGlvbicgJiZcclxuICAgICAgICAgICAgcHJvcHMub25JbnB1dEZvY3VzKGV2ZW50KTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIGhhbmRsZUlucHV0Qmx1cihldmVudCkge1xyXG4gICAgICAgIGNvbnN0IHsgdmFsdWUgfSA9IGlucHV0UmVmLmN1cnJlbnQ7XHJcbiAgICAgICAgY29uc3QgZGF5ID0gcGFyc2UoZGF0ZVRpbWVQaWNrZXJDb250ZW50ID8gdmFsdWUuc3BsaXQoJyAnKVswXSA6IHZhbHVlLCBpMThuLmRhdGVGb3JtYXQsIG5ldyBEYXRlKCkpO1xyXG4gICAgICAgIGxldCBpc1ZhbGlkRGF5O1xyXG4gICAgICAgIGlmIChkYXRlVGltZVBpY2tlckNvbnRlbnQpIHtcclxuICAgICAgICAgICAgY29uc3Qgc3BsaXRWYWx1ZSA9IHZhbHVlLnNwbGl0KCcgJylbMF07XHJcbiAgICAgICAgICAgIGlzVmFsaWREYXkgPSBpc1ZhbGlkRGF0ZUZyb21TdHJpbmcoc3BsaXRWYWx1ZSk7XHJcbiAgICAgICAgICAgIGNvbnN0IHZhbGlkRGF5ID0gbmV3IERhdGUoc3BsaXRWYWx1ZSk7XHJcbiAgICAgICAgICAgIGlmIChpc1ZhbGlkRGF5KSB7XHJcbiAgICAgICAgICAgICAgICBoYW5kbGVEYXRlQ2hhbmdlKHZhbGlkRGF5LCBldmVudCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGlzVmFsaWREYXkgPSBpc1ZhbGlkRGF0ZUZyb21TdHJpbmcodmFsdWUpO1xyXG4gICAgICAgICAgICBpZiAoaXNWYWxpZERheSkge1xyXG4gICAgICAgICAgICAgICAgaGFuZGxlRGF0ZUNoYW5nZShkYXksIGV2ZW50KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJlc2V0ICYmIHR5cGVvZiByZXNldCA9PT0gJ2Z1bmN0aW9uJyAmJiByZXNldCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHByb3BzLm9uSW5wdXRCbHVyICYmXHJcbiAgICAgICAgICAgIHR5cGVvZiBwcm9wcy5vbklucHV0Qmx1ciA9PT0gJ2Z1bmN0aW9uJyAmJlxyXG4gICAgICAgICAgICBwcm9wcy5vbklucHV0Qmx1cihldmVudCk7XHJcbiAgICB9XHJcbiAgICBmdW5jdGlvbiBoYW5kbGVJbnB1dEtleURvd24oZXZlbnQpIHtcclxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICBzZXRDYWxlbmRhck9wZW5lZChmYWxzZSk7XHJcbiAgICAgICAgICAgIGlucHV0UmVmLmN1cnJlbnQuZm9jdXMoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBmdW5jdGlvbiBoYW5kbGVLZXlEb3duKGV2ZW50KSB7XHJcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcclxuICAgICAgICAgICAgZXZlbnQubmF0aXZlRXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgIHNldENhbGVuZGFyT3BlbmVkKGZhbHNlKTtcclxuICAgICAgICAgICAgaWNvblJlZi5jdXJyZW50LmZvY3VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChkYXRlRm9jdXNlZCAmJiBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmNsb3Nlc3QoJ3RhYmxlJykpIHtcclxuICAgICAgICAgICAgY29uc3QgbmV3Q2hvc2VuRGF0ZSA9IGhhbmRsZUtleVByZXNzKGV2ZW50LCBmb2N1c2VkRGF0ZSwgc2V0Q2FsZW5kYXJPcGVuZWQsIHNob3dIZWxwZXJJbmZvcm1hdGlvbiwgb25EYXRlQ2hhbmdlLCBpY29uUmVmKTtcclxuICAgICAgICAgICAgaWYgKG5ld0Nob3NlbkRhdGUpIHtcclxuICAgICAgICAgICAgICAgIGlmIChtaW5EYXRlICYmIG1heERhdGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNBZnRlcihzZXRIb3VycyhuZXdDaG9zZW5EYXRlLCAxMiksIHN0YXJ0T2ZEYXkobWluRGF0ZSkpICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzQmVmb3JlKHNldEhvdXJzKG5ld0Nob3NlbkRhdGUsIDEyKSwgZW5kT2ZEYXkobWF4RGF0ZSkpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldEZvY3VzZWREYXRlKG5ld0Nob3NlbkRhdGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKG1pbkRhdGUgJiYgIW1heERhdGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNBZnRlcihzZXRIb3VycyhuZXdDaG9zZW5EYXRlLCAxMiksIHN0YXJ0T2ZEYXkobWluRGF0ZSkpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldEZvY3VzZWREYXRlKG5ld0Nob3NlbkRhdGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKG1heERhdGUgJiYgIW1pbkRhdGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNCZWZvcmUoc2V0SG91cnMobmV3Q2hvc2VuRGF0ZSwgMTIpLCBlbmRPZkRheShtYXhEYXRlKSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0Rm9jdXNlZERhdGUobmV3Q2hvc2VuRGF0ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2V0Rm9jdXNlZERhdGUobmV3Q2hvc2VuRGF0ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBmdW5jdGlvbiBoYW5kbGVEYXRlQ2hhbmdlKGRheSwgZXZlbnQpIHtcclxuICAgICAgICBwcm9wcy5vbkRhdGVDaGFuZ2UgJiZcclxuICAgICAgICAgICAgdHlwZW9mIHByb3BzLm9uRGF0ZUNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyAmJlxyXG4gICAgICAgICAgICBwcm9wcy5vbkRhdGVDaGFuZ2UoZGF5LCBldmVudCk7XHJcbiAgICAgICAgcHJvcHMub25DaGFuZ2UgJiZcclxuICAgICAgICAgICAgdHlwZW9mIHByb3BzLm9uQ2hhbmdlID09PSAnZnVuY3Rpb24nICYmXHJcbiAgICAgICAgICAgIHByb3BzLm9uQ2hhbmdlKGRheT8udG9JU09TdHJpbmcoKSwgZXZlbnQpO1xyXG4gICAgICAgIG9uRGF0ZUNoYW5nZShkYXkpO1xyXG4gICAgICAgIGlmIChkYXRlVGltZVBpY2tlckNvbnRlbnQpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICBzZXRGb2N1c2VkRGF0ZShkYXkpO1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gaGFuZGxlRGF5U2VsZWN0aW9uKGRheSwgZXZlbnQpIHtcclxuICAgICAgICBoYW5kbGVEYXRlQ2hhbmdlKGRheSwgZXZlbnQpO1xyXG4gICAgICAgIGlmIChkYXRlVGltZVBpY2tlckNvbnRlbnQpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICBpbnB1dFJlZi5jdXJyZW50LmZvY3VzKCk7XHJcbiAgICB9XHJcbiAgICBmdW5jdGlvbiBoYW5kbGVDYWxlbmRhckJsdXIoZXZlbnQpIHtcclxuICAgICAgICBjb25zdCB7IGN1cnJlbnRUYXJnZXQgfSA9IGV2ZW50O1xyXG4gICAgICAgIC8vIHRpbWVvdXQgbmVlZGVkIGZvciBhY3RpdmUgZWxlbWVudCB0byB1cGRhdGUuIEJyb3dzZXIgYmVoYXZpb3IuXHJcbiAgICAgICAgLy8gaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUyMzA3XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGlzSW5DYWxlbmRhciA9IGN1cnJlbnRUYXJnZXQuY29udGFpbnMoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCk7XHJcbiAgICAgICAgICAgIGlmICghaXNJbkNhbGVuZGFyICYmICFoZWxwZXJJbmZvcm1hdGlvblNob3duKSB7XHJcbiAgICAgICAgICAgICAgICBzZXRDYWxlbmRhck9wZW5lZChmYWxzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LCAwKTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIGhhbmRsZUNsb3NlQnV0dG9uQ2xpY2soZXZlbnQpIHtcclxuICAgICAgICBpZiAoIWljb25SZWYuY3VycmVudCAmJiBwcmV2aW91c0ljb25SZWYuY3VycmVudCkge1xyXG4gICAgICAgICAgICBpY29uUmVmLmN1cnJlbnQgPSBwcmV2aW91c0ljb25SZWYuY3VycmVudDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWNvblJlZi5jdXJyZW50LmZvY3VzKCk7XHJcbiAgICAgICAgc2V0Q2FsZW5kYXJPcGVuZWQoZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gdG9nZ2xlQ2FsZW5kYXJPcGVuZWQoKSB7XHJcbiAgICAgICAgc2V0Q2FsZW5kYXJPcGVuZWQob3BlbmVkID0+IHtcclxuICAgICAgICAgICAgLy8gRm9jdXMgb24gdG9kYXkgd2hlbiBvcGVuaW5nIGNhbGVuZGFyIHdpdGhvdXQgYSBjaG9zZW4gZGF0ZVxyXG4gICAgICAgICAgICBpZiAoIW9wZW5lZCAmJiAhY2hvc2VuRGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgc2V0Rm9jdXNlZERhdGUoc2V0RGVmYXVsdEZvY3VzZWREYXRlKCkpO1xyXG4gICAgICAgICAgICAgICAgc2V0RGF0ZUZvY3VzZWQodHJ1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuICFvcGVuZWQ7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCB7IHBsYWNlaG9sZGVyLCB0ZXN0SWQsIGRhdGVUaW1lUGlja2VyQ29udGVudCwgLi4ucmVzdCB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBvdGhlciA9IG9taXQoWydvbkRhdGVDaGFuZ2UnLCAnb25JbnB1dENoYW5nZScsICdvbklucHV0Qmx1cicsICdvbklucHV0Rm9jdXMnXSwgcmVzdCk7XHJcbiAgICBjb25zdCBkYXRlRmllbGRWYWx1ZSA9IGRhdGVGb3JtYXQgPT09ICdNTU1NIGQsIHl5eXknICYmIGNob3NlbkRhdGVcclxuICAgICAgICA/IGZvcm1hdChjaG9zZW5EYXRlLCBkYXRlRm9ybWF0KVxyXG4gICAgICAgIDogY2hvc2VuRGF0ZTtcclxuICAgIGNvbnN0IGlucHV0RGF0ZVZhbHVlID0gY2hvc2VuRGF0ZSA/IGZvcm1hdChjaG9zZW5EYXRlLCBkYXRlRm9ybWF0KSA6ICcnO1xyXG4gICAgbGV0IGlucHV0VmFsdWUgPSBwcm9wcy5pc0RhdGVGaWVsZElucHV0ID8gZGF0ZUZpZWxkVmFsdWUgOiBpbnB1dERhdGVWYWx1ZTtcclxuICAgIGlmIChpbnB1dFZhbHVlICYmIHByb3BzLmFkZGl0aW9uYWxJbnB1dENvbnRlbnQpIHtcclxuICAgICAgICBpbnB1dFZhbHVlID0gYCR7aW5wdXRWYWx1ZX0gJHtwcm9wcy5hZGRpdGlvbmFsSW5wdXRDb250ZW50fWA7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChwcm9wcy5hZGRpdGlvbmFsSW5wdXRDb250ZW50KSB7XHJcbiAgICAgICAgc2V0Q2hvc2VuRGF0ZShuZXcgRGF0ZSgpKTtcclxuICAgIH1cclxuICAgIGNvbnN0IHsgZmxvYXRpbmdTdHlsZXMsIHJlZnMsIGVsZW1lbnRzLCB1cGRhdGUgfSA9IHVzZU1hZ21hRmxvYXRpbmcoKTtcclxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgcmVmZXJlbmNlRGF0ZUlucHV0ID0gZWxlbWVudHMucmVmZXJlbmNlO1xyXG4gICAgICAgIGNvbnN0IGZsb2F0aW5nQ2FsZW5kYXIgPSBlbGVtZW50cy5mbG9hdGluZztcclxuICAgICAgICBpZiAoY2FsZW5kYXJPcGVuZWQgJiYgcmVmZXJlbmNlRGF0ZUlucHV0ICYmIGZsb2F0aW5nQ2FsZW5kYXIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGF1dG9VcGRhdGUocmVmZXJlbmNlRGF0ZUlucHV0LCBmbG9hdGluZ0NhbGVuZGFyLCB1cGRhdGUpO1xyXG4gICAgICAgIH1cclxuICAgIH0sIFtjYWxlbmRhck9wZW5lZCwgZWxlbWVudHMsIHVwZGF0ZV0pO1xyXG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KENhbGVuZGFyQ29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZToge1xyXG4gICAgICAgICAgICBjaG9zZW5EYXRlLFxyXG4gICAgICAgICAgICBmb2N1c2VkRGF0ZSxcclxuICAgICAgICAgICAgZGF0ZUZvY3VzZWQsXHJcbiAgICAgICAgICAgIG1heERhdGUsXHJcbiAgICAgICAgICAgIG1pbkRhdGUsXHJcbiAgICAgICAgICAgIGhlbHBlckluZm9ybWF0aW9uU2hvd24sXHJcbiAgICAgICAgICAgIGlzSW52ZXJzZSxcclxuICAgICAgICAgICAgYnVpbGRDYWxlbmRhck1vbnRoLFxyXG4gICAgICAgICAgICBzaG93SGVscGVySW5mb3JtYXRpb24sXHJcbiAgICAgICAgICAgIGhpZGVIZWxwZXJJbmZvcm1hdGlvbixcclxuICAgICAgICAgICAgb25LZXlEb3duOiBoYW5kbGVLZXlEb3duLFxyXG4gICAgICAgICAgICBvblByZXZNb250aENsaWNrLFxyXG4gICAgICAgICAgICBvbk5leHRNb250aENsaWNrLFxyXG4gICAgICAgICAgICBvbkRhdGVDaGFuZ2U6IGhhbmRsZURheVNlbGVjdGlvbixcclxuICAgICAgICAgICAgc2V0RGF0ZUZvY3VzZWQsXHJcbiAgICAgICAgICAgIHNldEZvY3VzZWRUb2RheURhdGUsXHJcbiAgICAgICAgICAgIHNldEZvY3VzZWREYXRlLFxyXG4gICAgICAgICAgICBzZXRNb250aEZvY3VzZWREYXRlLFxyXG4gICAgICAgICAgICBzZXRZZWFyRm9jdXNlZERhdGUsXHJcbiAgICAgICAgICAgIG9uQ2xvc2U6IGNsb3NlSGVscGVySW5mb3JtYXRpb24sXHJcbiAgICAgICAgfSB9LFxyXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRGF0ZVBpY2tlckNvbnRhaW5lciwgeyBcImRhdGEtdGVzdGlkXCI6IHRlc3RJZCwgb25CbHVyOiBoYW5kbGVDYWxlbmRhckJsdXIgfSxcclxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChBbm5vdW5jZSwgbnVsbCwgY2FsZW5kYXJPcGVuZWQgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoVmlzdWFsbHlIaWRkZW4sIG51bGwsIGkxOG4uZGF0ZVBpY2tlci5jYWxlbmRhck9wZW5Bbm5vdW5jZSkpKSxcclxuICAgICAgICAgICAgcHJvcHMuaXNEYXRlRmllbGRJbnB1dCA/IChSZWFjdC5jcmVhdGVFbGVtZW50KERhdGVGaWVsZElucHV0LCBPYmplY3QuYXNzaWduKHt9LCBvdGhlciwgeyBpZDogaWQsIGRhdGVGb3JtYXQ6IGRhdGVGb3JtYXQsIGlucHV0VmFsdWU6IGlucHV0VmFsdWUsIG9uSWNvbkNsaWNrOiB0b2dnbGVDYWxlbmRhck9wZW5lZCwgc2V0UmVmZXJlbmNlOiByZWZzLnNldFJlZmVyZW5jZSwgaWNvblJlZjogaWNvblJlZiwgaW5wdXRSZWY6IGlucHV0UmVmLCBoYW5kbGVEYXRlQ2hhbmdlOiBoYW5kbGVEYXRlQ2hhbmdlLCBvbkNsZWFyRGF0ZTogcmVzZXQsIG9uSW5wdXRCbHVyOiBwcm9wcy5vbklucHV0Qmx1ciwgb25JbnB1dEZvY3VzOiBoYW5kbGVJbnB1dEZvY3VzLCBvbkljb25LZXlEb3duOiBoYW5kbGVJbnB1dEtleURvd24gfSkpKSA6IChSZWFjdC5jcmVhdGVFbGVtZW50KElucHV0LCBPYmplY3QuYXNzaWduKHt9LCBvdGhlciwgeyBpY29uOiBSZWFjdC5jcmVhdGVFbGVtZW50KEV2ZW50SWNvbiwgbnVsbCksIGljb25BcmlhTGFiZWw6IGkxOG4uZGF0ZVBpY2tlci5jYWxlbmRhckljb25BcmlhTGFiZWwsIGljb25SZWY6IGljb25SZWYsIG9uSWNvbkNsaWNrOiB0b2dnbGVDYWxlbmRhck9wZW5lZCwgb25JY29uS2V5RG93bjogaGFuZGxlSW5wdXRLZXlEb3duLCBpZDogaWQsIGlzSW52ZXJzZTogaXNJbnZlcnNlLCByZWY6IHJlZiwgb25DaGFuZ2U6IGhhbmRsZUlucHV0Q2hhbmdlLCBvbkJsdXI6IGhhbmRsZUlucHV0Qmx1ciwgb25Gb2N1czogaGFuZGxlSW5wdXRGb2N1cywgb25LZXlEb3duOiBoYW5kbGVJbnB1dEtleURvd24sIG9uRGF0ZUNoYW5nZTogaGFuZGxlRGF0ZUNoYW5nZSwgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyID8gcGxhY2Vob2xkZXIgOiBkYXRlRm9ybWF0LnRvTG93ZXJDYXNlKCksIHR5cGU6IElucHV0VHlwZS50ZXh0LCB2YWx1ZTogaW5wdXRWYWx1ZSwgc2V0UmVmZXJlbmNlOiByZWZzLnNldFJlZmVyZW5jZSB9KSkpLFxyXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEludmVyc2VDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiB7IGlzSW52ZXJzZSB9IH0sXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgcmVmOiBlbCA9PiBjYWxlbmRhck9wZW5lZCAmJiByZWZzLnNldEZsb2F0aW5nKGVsKSwgc3R5bGU6IHsgLi4uZmxvYXRpbmdTdHlsZXMsIHpJbmRleDogJzk5OCcgfSB9LFxyXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRGF0ZVBpY2tlckNhbGVuZGFyLCB7IFwiZGF0YS10ZXN0aWRcIjogXCJjYWxlbmRhckNvbnRhaW5lclwiLCBvcGVuZWQ6IGNhbGVuZGFyT3BlbmVkLCBpc0ludmVyc2U6IGlzSW52ZXJzZSwgdGhlbWU6IHRoZW1lIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ2FsZW5kYXJNb250aCwgeyBmb2N1c09uT3BlbjogY2FsZW5kYXJPcGVuZWQgJiYgQm9vbGVhbihmb2N1c2VkRGF0ZSksIGlzSW52ZXJzZTogaXNJbnZlcnNlLCBoYW5kbGVDbG9zZUJ1dHRvbkNsaWNrOiBoYW5kbGVDbG9zZUJ1dHRvbkNsaWNrLCBjYWxlbmRhck9wZW5lZDogY2FsZW5kYXJPcGVuZWQsIHNldERhdGVGb2N1c2VkOiBzZXREYXRlRm9jdXNlZCwgZGF0ZVRpbWVQaWNrZXJDb250ZW50OiBkYXRlVGltZVBpY2tlckNvbnRlbnQgfSkpKSkpKSk7XHJcbn0pO1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXX0= */"));
24840
+ }, ";overflow:hidden;transition:opacity 0.2s ease-in-out 0s;width:320px;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFzQnNDIiwiZmlsZSI6ImluZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xyXG5pbXBvcnQgeyBhdXRvVXBkYXRlIH0gZnJvbSAnQGZsb2F0aW5nLXVpL3JlYWN0LWRvbSc7XHJcbmltcG9ydCB7IGFkZERheXMsIGVuZE9mRGF5LCBpc0FmdGVyLCBpc0JlZm9yZSwgaXNNYXRjaCwgaXNWYWxpZCwgcGFyc2UsIHNldEhvdXJzLCBzdGFydE9mRGF5LCB9IGZyb20gJ2RhdGUtZm5zJztcclxuaW1wb3J0IHsgdHJhbnNwYXJlbnRpemUgfSBmcm9tICdwb2xpc2hlZCc7XHJcbmltcG9ydCB7IEV2ZW50SWNvbiB9IGZyb20gJ3JlYWN0LW1hZ21hLWljb25zJztcclxuaW1wb3J0IHsgQ2FsZW5kYXJDb250ZXh0IH0gZnJvbSAnLi9DYWxlbmRhckNvbnRleHQnO1xyXG5pbXBvcnQgeyBDYWxlbmRhck1vbnRoIH0gZnJvbSAnLi9DYWxlbmRhck1vbnRoJztcclxuaW1wb3J0IHsgdXNlTWFnbWFGbG9hdGluZyB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZU1hZ21hRmxvYXRpbmcnO1xyXG5pbXBvcnQgeyBJMThuQ29udGV4dCB9IGZyb20gJy4uLy4uL2kxOG4nO1xyXG5pbXBvcnQgeyBJbnZlcnNlQ29udGV4dCwgdXNlSXNJbnZlcnNlIH0gZnJvbSAnLi4vLi4vaW52ZXJzZSc7XHJcbmltcG9ydCB7IFRoZW1lQ29udGV4dCB9IGZyb20gJy4uLy4uL3RoZW1lL1RoZW1lQ29udGV4dCc7XHJcbmltcG9ydCB7IEFubm91bmNlIH0gZnJvbSAnLi4vQW5ub3VuY2UnO1xyXG5pbXBvcnQgeyBJbnB1dCB9IGZyb20gJy4uL0lucHV0JztcclxuaW1wb3J0IHsgSW5wdXRUeXBlIH0gZnJvbSAnLi4vSW5wdXRCYXNlJztcclxuaW1wb3J0IHsgVmlzdWFsbHlIaWRkZW4gfSBmcm9tICcuLi9WaXN1YWxseUhpZGRlbic7XHJcbmltcG9ydCB7IERhdGVGaWVsZElucHV0IH0gZnJvbSAnLi9EYXRlRmllbGQvRGF0ZUZpZWxkSW5wdXQnO1xyXG5pbXBvcnQgeyBnZXRDYWxlbmRhck1vbnRoV2Vla3MsIGdldERhdGVGcm9tU3RyaW5nLCBnZXROZXh0TW9udGhGcm9tRGF0ZSwgZ2V0UHJldk1vbnRoRnJvbURhdGUsIGhhbmRsZUtleVByZXNzLCBzZXRNb250aEZvckRhdGUsIHNldFllYXJGb3JEYXRlLCBpMThuRm9ybWF0IGFzIGZvcm1hdCwgaW5EYXRlUmFuZ2UsIH0gZnJvbSAnLi91dGlscyc7XHJcbmltcG9ydCB7IG9taXQsIHVzZUZvcmtlZFJlZiwgdXNlR2VuZXJhdGVJZCB9IGZyb20gJy4uLy4uL3V0aWxzJztcclxuY29uc3QgRGF0ZVBpY2tlckNvbnRhaW5lciA9IHN0eWxlZC5kaXYgYFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gO1xyXG5jb25zdCBEYXRlUGlja2VyQ2FsZW5kYXIgPSBzdHlsZWQuZGl2IGBcbiAgYm9yZGVyOiAxcHggc29saWRcbiAgICAke3Byb3BzID0+IHByb3BzLmlzSW52ZXJzZVxyXG4gICAgPyB0cmFuc3BhcmVudGl6ZSgwLjUsIHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwKVxyXG4gICAgOiBwcm9wcy50aGVtZS5jb2xvcnMubmV1dHJhbDMwMH07XG4gIGJvcmRlci1yYWRpdXM6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuYm9yZGVyUmFkaXVzfTtcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMuaXNJbnZlcnNlXHJcbiAgICA/IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsMTAwXHJcbiAgICA6IHByb3BzLnRoZW1lLmNvbG9ycy5uZXV0cmFsNzAwfTtcbiAgZGlzcGxheTogJHtwcm9wcyA9PiAocHJvcHMub3BlbmVkID8gJ2Jsb2NrJyA6ICdub25lJyl9O1xuICBtYXJnaW46ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3BhY2VTY2FsZS5zcGFjaW5nMDF9IDBweDtcbiAgb3BhY2l0eTogJHtwcm9wcyA9PiAocHJvcHMub3BlbmVkID8gJzEnIDogJzAnKX07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLWluLW91dCAwcztcbiAgd2lkdGg6IDMyMHB4O1xuYDtcclxuZXhwb3J0IGNvbnN0IERhdGVQaWNrZXIgPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XHJcbiAgICBjb25zdCB0aGVtZSA9IFJlYWN0LnVzZUNvbnRleHQoVGhlbWVDb250ZXh0KTtcclxuICAgIGNvbnN0IGkxOG4gPSBSZWFjdC51c2VDb250ZXh0KEkxOG5Db250ZXh0KTtcclxuICAgIGNvbnN0IGljb25SZWYgPSBSZWFjdC51c2VSZWYoKTtcclxuICAgIGNvbnN0IHByZXZpb3VzSWNvblJlZiA9IFJlYWN0LnVzZVJlZigpO1xyXG4gICAgY29uc3QgaW5wdXRSZWYgPSBSZWFjdC51c2VSZWYoKTtcclxuICAgIGNvbnN0IGxhc3RGb2N1cyA9IFJlYWN0LnVzZVJlZigpO1xyXG4gICAgY29uc3QgaWQgPSB1c2VHZW5lcmF0ZUlkKHByb3BzLmlkKTtcclxuICAgIGNvbnN0IGlzSW52ZXJzZSA9IHVzZUlzSW52ZXJzZShwcm9wcy5pc0ludmVyc2UpO1xyXG4gICAgY29uc3QgbWluRGF0ZSA9IGdldERhdGVGcm9tU3RyaW5nKHByb3BzLm1pbkRhdGUpO1xyXG4gICAgY29uc3QgbWF4RGF0ZSA9IGdldERhdGVGcm9tU3RyaW5nKHByb3BzLm1heERhdGUpO1xyXG4gICAgY29uc3QgZGF0ZUZvcm1hdCA9IGkxOG4uZGF0ZUZvcm1hdDtcclxuICAgIGNvbnN0IFtoZWxwZXJJbmZvcm1hdGlvblNob3duLCBzZXRIZWxwZXJJbmZvcm1hdGlvblNob3duXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcclxuICAgIGNvbnN0IFtjYWxlbmRhck9wZW5lZCwgc2V0Q2FsZW5kYXJPcGVuZWRdID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xyXG4gICAgY29uc3QgW2RhdGVGb2N1c2VkLCBzZXREYXRlRm9jdXNlZF0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XHJcbiAgICBjb25zdCBbZm9jdXNlZERhdGUsIHNldEZvY3VzZWREYXRlXSA9IFJlYWN0LnVzZVN0YXRlKHNldERhdGVGcm9tQ29uc3VtZXIocHJvcHMudmFsdWUgfHwgcHJvcHMuZGVmYXVsdERhdGUpIHx8XHJcbiAgICAgICAgc2V0RGVmYXVsdEZvY3VzZWREYXRlKCkpO1xyXG4gICAgY29uc3QgW2Nob3NlbkRhdGUsIHNldENob3NlbkRhdGVdID0gUmVhY3QudXNlU3RhdGUoc2V0RGF0ZUZyb21Db25zdW1lcihwcm9wcy52YWx1ZSB8fCBwcm9wcy5kZWZhdWx0RGF0ZSkpO1xyXG4gICAgY29uc3QgcmVmID0gdXNlRm9ya2VkUmVmKGZvcndhcmRlZFJlZiwgaW5wdXRSZWYpO1xyXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICBpZiAocHJvcHMuYXBpUmVmKSB7XHJcbiAgICAgICAgICAgIHByb3BzLmFwaVJlZi5jdXJyZW50ID0ge1xyXG4gICAgICAgICAgICAgICAgY2xvc2VEYXRlUGlja2VyTWFudWFsbHkoZXZlbnQpIHtcclxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVDbG9zZUJ1dHRvbkNsaWNrKGV2ZW50KTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBvcGVuRGF0ZVBpY2tlck1hbnVhbGx5KGV2ZW50KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdG9nZ2xlQ2FsZW5kYXJPcGVuZWQoKTtcclxuICAgICAgICAgICAgICAgICAgICBpbnB1dFJlZi5jdXJyZW50LmZvY3VzKCk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgIH0sIFtdKTtcclxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgaWYgKGRhdGVUaW1lUGlja2VyQ29udGVudCAmJlxyXG4gICAgICAgICAgICBjaG9zZW5EYXRlICYmXHJcbiAgICAgICAgICAgIGlucHV0UmVmLmN1cnJlbnQgIT09IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgaWYgKCFwcm9wcy5hZGRpdGlvbmFsSW5wdXRDb250ZW50ICYmIHByb3BzLnNldEFkZGl0aW9uYWxJbnB1dENvbnRlbnQpIHtcclxuICAgICAgICAgICAgICAgIHByb3BzLnNldEFkZGl0aW9uYWxJbnB1dENvbnRlbnQoJzEyOjAwIEFNJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgc2V0Rm9jdXNlZERhdGUoY2hvc2VuRGF0ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW2Nob3NlbkRhdGVdKTtcclxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgaWYgKCFjYWxlbmRhck9wZW5lZCkge1xyXG4gICAgICAgICAgICBzZXREYXRlRm9jdXNlZChmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW2NhbGVuZGFyT3BlbmVkXSk7XHJcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgIGlmIChwcm9wcy52YWx1ZSkge1xyXG4gICAgICAgICAgICBzZXRGb2N1c2VkRGF0ZShzZXREYXRlRnJvbUNvbnN1bWVyKHByb3BzLnZhbHVlKSB8fCBzZXREZWZhdWx0Rm9jdXNlZERhdGUoKSk7XHJcbiAgICAgICAgICAgIHNldENob3NlbkRhdGUoc2V0RGF0ZUZyb21Db25zdW1lcihwcm9wcy52YWx1ZSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAocHJvcHMudmFsdWUgPT09IG51bGwpXHJcbiAgICAgICAgICAgIHNldENob3NlbkRhdGUodW5kZWZpbmVkKTtcclxuICAgIH0sIFtwcm9wcy52YWx1ZV0pO1xyXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICBwcmV2aW91c0ljb25SZWYuY3VycmVudCA9IGljb25SZWYuY3VycmVudDtcclxuICAgIH0sIFtdKTtcclxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgaWYgKCFmb2N1c2VkRGF0ZSB8fCAhbWluRGF0ZSlcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIGlmIChpc0JlZm9yZShmb2N1c2VkRGF0ZSwgbWluRGF0ZSkgJiYgIWNob3NlbkRhdGUpIHtcclxuICAgICAgICAgICAgc2V0Rm9jdXNlZERhdGUobWluRGF0ZSk7XHJcbiAgICAgICAgICAgIHNldERhdGVGb2N1c2VkKHRydWUpO1xyXG4gICAgICAgIH1cclxuICAgIH0sIFtmb2N1c2VkRGF0ZSwgbWluRGF0ZSwgY2hvc2VuRGF0ZV0pO1xyXG4gICAgZnVuY3Rpb24gc2hvd0hlbHBlckluZm9ybWF0aW9uKCkge1xyXG4gICAgICAgIGxhc3RGb2N1cy5jdXJyZW50ID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcclxuICAgICAgICBzZXRIZWxwZXJJbmZvcm1hdGlvblNob3duKHRydWUpO1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gaGlkZUhlbHBlckluZm9ybWF0aW9uKCkge1xyXG4gICAgICAgIGxhc3RGb2N1cy5jdXJyZW50LmZvY3VzKCk7XHJcbiAgICAgICAgc2V0SGVscGVySW5mb3JtYXRpb25TaG93bihmYWxzZSk7XHJcbiAgICB9XHJcbiAgICBmdW5jdGlvbiBjbG9zZUhlbHBlckluZm9ybWF0aW9uKCkge1xyXG4gICAgICAgIHNldEhlbHBlckluZm9ybWF0aW9uU2hvd24oZmFsc2UpO1xyXG4gICAgICAgIGljb25SZWYuY3VycmVudC5mb2N1cygpO1xyXG4gICAgICAgIHNldENhbGVuZGFyT3BlbmVkKGZhbHNlKTtcclxuICAgIH1cclxuICAgIGNvbnN0IHNldEZvY3VzZWRUb2RheURhdGUgPSAoZXZlbnQpID0+IHtcclxuICAgICAgICBjb25zdCBpc0tleWJvYXJkRXZlbnQgPSBldmVudC50eXBlID09PSAna2V5ZG93bic7XHJcbiAgICAgICAgaWYgKChpc0tleWJvYXJkRXZlbnQgJiZcclxuICAgICAgICAgICAgKGV2ZW50LmtleSA9PT0gJyAnIHx8XHJcbiAgICAgICAgICAgICAgICBldmVudC5rZXkgPT09ICdFbnRlcicpKSB8fFxyXG4gICAgICAgICAgICBldmVudC50eXBlID09PSAnY2xpY2snKSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgIHNldEZvY3VzZWREYXRlKHNldERlZmF1bHRGb2N1c2VkRGF0ZSgpKTtcclxuICAgICAgICAgICAgc2V0RGF0ZUZvY3VzZWQodHJ1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIGZ1bmN0aW9uIHNldERhdGVGcm9tQ29uc3VtZXIoZGF0ZSkge1xyXG4gICAgICAgIGNvbnN0IGNvbnZlcnRlZERhdGUgPSBnZXREYXRlRnJvbVN0cmluZyhkYXRlKTtcclxuICAgICAgICBjb25zdCBjb252ZXJ0ZWRNaW5EYXRlID0gZ2V0RGF0ZUZyb21TdHJpbmcobWluRGF0ZSk7XHJcbiAgICAgICAgY29uc3QgY29udmVydGVkTWF4RGF0ZSA9IGdldERhdGVGcm9tU3RyaW5nKG1heERhdGUpO1xyXG4gICAgICAgIHJldHVybiBkYXRlICYmXHJcbiAgICAgICAgICAgIGluRGF0ZVJhbmdlKGNvbnZlcnRlZERhdGUsIGNvbnZlcnRlZE1pbkRhdGUsIGNvbnZlcnRlZE1heERhdGUpXHJcbiAgICAgICAgICAgID8gY29udmVydGVkRGF0ZVxyXG4gICAgICAgICAgICA6IG51bGw7XHJcbiAgICB9XHJcbiAgICBmdW5jdGlvbiBzZXREZWZhdWx0Rm9jdXNlZERhdGUoKSB7XHJcbiAgICAgICAgY29uc3QgbmV3RGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICAgICAgY29uc3QgY29udmVydGVkTWluRGF0ZSA9IGdldERhdGVGcm9tU3RyaW5nKG1pbkRhdGUpO1xyXG4gICAgICAgIGNvbnN0IGNvbnZlcnRlZE1heERhdGUgPSBnZXREYXRlRnJvbVN0cmluZyhtYXhEYXRlKTtcclxuICAgICAgICBpZiAoaW5EYXRlUmFuZ2UobmV3RGF0ZSwgY29udmVydGVkTWluRGF0ZSwgY29udmVydGVkTWF4RGF0ZSkpIHtcclxuICAgICAgICAgICAgaWYgKGlzQmVmb3JlKHN0YXJ0T2ZEYXkobmV3RGF0ZSksIGNvbnZlcnRlZE1pbkRhdGUpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYWRkRGF5cyhuZXdEYXRlLCAxKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gbmV3RGF0ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoY29udmVydGVkTWF4RGF0ZSB8fCBjb252ZXJ0ZWRNaW5EYXRlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBjb252ZXJ0ZWRNaW5EYXRlID8gY29udmVydGVkTWluRGF0ZSA6IGNvbnZlcnRlZE1heERhdGU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gYnVpbGRDYWxlbmRhck1vbnRoKGRhdGUsIGVuYWJsZU91dHNpZGVEYXRlcykge1xyXG4gICAgICAgIGNvbnN0IGRheXMgPSBbXHJcbiAgICAgICAgICAgICdzdW5kYXknLFxyXG4gICAgICAgICAgICAnbW9uZGF5JyxcclxuICAgICAgICAgICAgJ3R1ZXNkYXknLFxyXG4gICAgICAgICAgICAnd2VkbmVzZGF5JyxcclxuICAgICAgICAgICAgJ3RodXJzZGF5JyxcclxuICAgICAgICAgICAgJ2ZyaWRheScsXHJcbiAgICAgICAgICAgICdzYXR1cmRheScsXHJcbiAgICAgICAgXTtcclxuICAgICAgICBjb25zdCB7IHN0YXJ0T2ZXZWVrIH0gPSBpMThuLmRhdGVQaWNrZXI7XHJcbiAgICAgICAgcmV0dXJuIGdldENhbGVuZGFyTW9udGhXZWVrcyhkYXRlLCBlbmFibGVPdXRzaWRlRGF0ZXMsIGRheXMuaW5kZXhPZihzdGFydE9mV2VlaykpO1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gb25QcmV2TW9udGhDbGljaygpIHtcclxuICAgICAgICBjb25zdCBuZXdEYXRlID0gZ2V0UHJldk1vbnRoRnJvbURhdGUoZm9jdXNlZERhdGUpO1xyXG4gICAgICAgIHNldEZvY3VzZWREYXRlKG5ld0RhdGUpO1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gb25OZXh0TW9udGhDbGljaygpIHtcclxuICAgICAgICBjb25zdCBuZXdEYXRlID0gZ2V0TmV4dE1vbnRoRnJvbURhdGUoZm9jdXNlZERhdGUpO1xyXG4gICAgICAgIHNldEZvY3VzZWREYXRlKG5ld0RhdGUpO1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gc2V0TW9udGhGb2N1c2VkRGF0ZShtb250aE51bWJlcikge1xyXG4gICAgICAgIGNvbnN0IG5ld0RhdGUgPSBzZXRNb250aEZvckRhdGUoZm9jdXNlZERhdGUsIG1vbnRoTnVtYmVyKTtcclxuICAgICAgICBzZXRGb2N1c2VkRGF0ZShuZXdEYXRlKTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIHNldFllYXJGb2N1c2VkRGF0ZSh5ZWFyTnVtYmVyKSB7XHJcbiAgICAgICAgY29uc3QgbmV3RGF0ZSA9IHNldFllYXJGb3JEYXRlKGZvY3VzZWREYXRlLCB5ZWFyTnVtYmVyKTtcclxuICAgICAgICBzZXRGb2N1c2VkRGF0ZShuZXdEYXRlKTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIG9uRGF0ZUNoYW5nZShkYXkpIHtcclxuICAgICAgICBzZXRDaG9zZW5EYXRlKGRheSk7XHJcbiAgICAgICAgaWYgKGRhdGVUaW1lUGlja2VyQ29udGVudClcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIHNldENhbGVuZGFyT3BlbmVkKGZhbHNlKTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIHJlc2V0KCkge1xyXG4gICAgICAgIHNldEZvY3VzZWREYXRlKHNldERlZmF1bHRGb2N1c2VkRGF0ZSgpKTtcclxuICAgICAgICBzZXRDaG9zZW5EYXRlKG51bGwpO1xyXG4gICAgICAgIHNldERhdGVGb2N1c2VkKGZhbHNlKTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIGlzVmFsaWREYXRlRnJvbVN0cmluZyh2YWx1ZSkge1xyXG4gICAgICAgIGNvbnN0IGlzVmFsaWREYXRlRm9ybWF0ID0gaXNNYXRjaCh2YWx1ZSwgaTE4bi5kYXRlRm9ybWF0KTtcclxuICAgICAgICBjb25zdCBwYXJzZWREYXRlID0gcGFyc2UodmFsdWUsIGkxOG4uZGF0ZUZvcm1hdCwgbmV3IERhdGUoKSk7XHJcbiAgICAgICAgY29uc3QgaXNWYWxpZERhdGUgPSBpc1ZhbGlkKHBhcnNlZERhdGUpO1xyXG4gICAgICAgIHJldHVybiBpc1ZhbGlkRGF0ZUZvcm1hdCAmJiBpc1ZhbGlkRGF0ZTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIGhhbmRsZUlucHV0Q2hhbmdlKGV2ZW50KSB7XHJcbiAgICAgICAgY29uc3QgeyB2YWx1ZSB9ID0gZXZlbnQudGFyZ2V0O1xyXG4gICAgICAgIGNvbnN0IGRheSA9IG5ldyBEYXRlKHZhbHVlKTtcclxuICAgICAgICBzZXRDYWxlbmRhck9wZW5lZChmYWxzZSk7XHJcbiAgICAgICAgcHJvcHMub25JbnB1dENoYW5nZSAmJlxyXG4gICAgICAgICAgICB0eXBlb2YgcHJvcHMub25JbnB1dENoYW5nZSA9PT0gJ2Z1bmN0aW9uJyAmJlxyXG4gICAgICAgICAgICBwcm9wcy5vbklucHV0Q2hhbmdlKGV2ZW50KTtcclxuICAgICAgICBsZXQgaXNWYWxpZERheTtcclxuICAgICAgICBpZiAoZGF0ZVRpbWVQaWNrZXJDb250ZW50KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHNwbGl0VmFsdWUgPSB2YWx1ZS5zcGxpdCgnICcpWzBdO1xyXG4gICAgICAgICAgICBpc1ZhbGlkRGF5ID0gaXNWYWxpZERhdGVGcm9tU3RyaW5nKHNwbGl0VmFsdWUpO1xyXG4gICAgICAgICAgICBjb25zdCB2YWxpZERheSA9IG5ldyBEYXRlKHNwbGl0VmFsdWUpO1xyXG4gICAgICAgICAgICBjb25zdCBwYXR0ZXJuID0gL15cXGR7Mn1cXC9cXGR7Mn1cXC9cXGR7NH0kLztcclxuICAgICAgICAgICAgaWYgKHBhdHRlcm4udGVzdChzcGxpdFZhbHVlKSAmJiBpc1ZhbGlkKHZhbGlkRGF5KSkge1xyXG4gICAgICAgICAgICAgICAgc2V0Q2hvc2VuRGF0ZSh2YWxpZERheSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcHJvcHMub25DaGFuZ2UgJiZcclxuICAgICAgICAgICAgICAgIHR5cGVvZiBwcm9wcy5vbkNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyAmJlxyXG4gICAgICAgICAgICAgICAgcHJvcHMub25DaGFuZ2UoaXNWYWxpZERheSA/IHZhbGlkRGF5LnRvSVNPU3RyaW5nKCkgOiBzcGxpdFZhbHVlLCBldmVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBpc1ZhbGlkRGF5ID0gaXNWYWxpZERhdGVGcm9tU3RyaW5nKHZhbHVlKTtcclxuICAgICAgICAgICAgcHJvcHMub25DaGFuZ2UgJiZcclxuICAgICAgICAgICAgICAgIHR5cGVvZiBwcm9wcy5vbkNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyAmJlxyXG4gICAgICAgICAgICAgICAgcHJvcHMub25DaGFuZ2UoaXNWYWxpZERheSA/IGRheS50b0lTT1N0cmluZygpIDogdmFsdWUsIGV2ZW50KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBmdW5jdGlvbiBoYW5kbGVJbnB1dEZvY3VzKGV2ZW50KSB7XHJcbiAgICAgICAgcHJvcHMub25JbnB1dEZvY3VzICYmXHJcbiAgICAgICAgICAgIHR5cGVvZiBwcm9wcy5vbklucHV0Rm9jdXMgPT09ICdmdW5jdGlvbicgJiZcclxuICAgICAgICAgICAgcHJvcHMub25JbnB1dEZvY3VzKGV2ZW50KTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIGhhbmRsZUlucHV0Qmx1cihldmVudCkge1xyXG4gICAgICAgIGNvbnN0IHsgdmFsdWUgfSA9IGlucHV0UmVmLmN1cnJlbnQ7XHJcbiAgICAgICAgY29uc3QgZGF5ID0gcGFyc2UoZGF0ZVRpbWVQaWNrZXJDb250ZW50ID8gdmFsdWUuc3BsaXQoJyAnKVswXSA6IHZhbHVlLCBpMThuLmRhdGVGb3JtYXQsIG5ldyBEYXRlKCkpO1xyXG4gICAgICAgIGxldCBpc1ZhbGlkRGF5O1xyXG4gICAgICAgIGlmIChkYXRlVGltZVBpY2tlckNvbnRlbnQpIHtcclxuICAgICAgICAgICAgY29uc3Qgc3BsaXRWYWx1ZSA9IHZhbHVlLnNwbGl0KCcgJylbMF07XHJcbiAgICAgICAgICAgIGlzVmFsaWREYXkgPSBpc1ZhbGlkRGF0ZUZyb21TdHJpbmcoc3BsaXRWYWx1ZSk7XHJcbiAgICAgICAgICAgIGNvbnN0IHZhbGlkRGF5ID0gbmV3IERhdGUoc3BsaXRWYWx1ZSk7XHJcbiAgICAgICAgICAgIGlmIChpc1ZhbGlkRGF5KSB7XHJcbiAgICAgICAgICAgICAgICBoYW5kbGVEYXRlQ2hhbmdlKHZhbGlkRGF5LCBldmVudCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGlzVmFsaWREYXkgPSBpc1ZhbGlkRGF0ZUZyb21TdHJpbmcodmFsdWUpO1xyXG4gICAgICAgICAgICBpZiAoaXNWYWxpZERheSkge1xyXG4gICAgICAgICAgICAgICAgaGFuZGxlRGF0ZUNoYW5nZShkYXksIGV2ZW50KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJlc2V0ICYmIHR5cGVvZiByZXNldCA9PT0gJ2Z1bmN0aW9uJyAmJiByZXNldCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHByb3BzLm9uSW5wdXRCbHVyICYmXHJcbiAgICAgICAgICAgIHR5cGVvZiBwcm9wcy5vbklucHV0Qmx1ciA9PT0gJ2Z1bmN0aW9uJyAmJlxyXG4gICAgICAgICAgICBwcm9wcy5vbklucHV0Qmx1cihldmVudCk7XHJcbiAgICB9XHJcbiAgICBmdW5jdGlvbiBoYW5kbGVJbnB1dEtleURvd24oZXZlbnQpIHtcclxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICBzZXRDYWxlbmRhck9wZW5lZChmYWxzZSk7XHJcbiAgICAgICAgICAgIGlucHV0UmVmLmN1cnJlbnQuZm9jdXMoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBmdW5jdGlvbiBoYW5kbGVLZXlEb3duKGV2ZW50KSB7XHJcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcclxuICAgICAgICAgICAgZXZlbnQubmF0aXZlRXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgIHNldENhbGVuZGFyT3BlbmVkKGZhbHNlKTtcclxuICAgICAgICAgICAgaWNvblJlZi5jdXJyZW50LmZvY3VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChkYXRlRm9jdXNlZCAmJiBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmNsb3Nlc3QoJ3RhYmxlJykpIHtcclxuICAgICAgICAgICAgY29uc3QgbmV3Q2hvc2VuRGF0ZSA9IGhhbmRsZUtleVByZXNzKGV2ZW50LCBmb2N1c2VkRGF0ZSwgc2V0Q2FsZW5kYXJPcGVuZWQsIHNob3dIZWxwZXJJbmZvcm1hdGlvbiwgb25EYXRlQ2hhbmdlLCBpY29uUmVmKTtcclxuICAgICAgICAgICAgaWYgKG5ld0Nob3NlbkRhdGUpIHtcclxuICAgICAgICAgICAgICAgIGlmIChtaW5EYXRlICYmIG1heERhdGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNBZnRlcihzZXRIb3VycyhuZXdDaG9zZW5EYXRlLCAxMiksIHN0YXJ0T2ZEYXkobWluRGF0ZSkpICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzQmVmb3JlKHNldEhvdXJzKG5ld0Nob3NlbkRhdGUsIDEyKSwgZW5kT2ZEYXkobWF4RGF0ZSkpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldEZvY3VzZWREYXRlKG5ld0Nob3NlbkRhdGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKG1pbkRhdGUgJiYgIW1heERhdGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNBZnRlcihzZXRIb3VycyhuZXdDaG9zZW5EYXRlLCAxMiksIHN0YXJ0T2ZEYXkobWluRGF0ZSkpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldEZvY3VzZWREYXRlKG5ld0Nob3NlbkRhdGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKG1heERhdGUgJiYgIW1pbkRhdGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNCZWZvcmUoc2V0SG91cnMobmV3Q2hvc2VuRGF0ZSwgMTIpLCBlbmRPZkRheShtYXhEYXRlKSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0Rm9jdXNlZERhdGUobmV3Q2hvc2VuRGF0ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2V0Rm9jdXNlZERhdGUobmV3Q2hvc2VuRGF0ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBmdW5jdGlvbiBoYW5kbGVEYXRlQ2hhbmdlKGRheSwgZXZlbnQpIHtcclxuICAgICAgICBwcm9wcy5vbkRhdGVDaGFuZ2UgJiZcclxuICAgICAgICAgICAgdHlwZW9mIHByb3BzLm9uRGF0ZUNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyAmJlxyXG4gICAgICAgICAgICBwcm9wcy5vbkRhdGVDaGFuZ2UoZGF5LCBldmVudCk7XHJcbiAgICAgICAgcHJvcHMub25DaGFuZ2UgJiZcclxuICAgICAgICAgICAgdHlwZW9mIHByb3BzLm9uQ2hhbmdlID09PSAnZnVuY3Rpb24nICYmXHJcbiAgICAgICAgICAgIHByb3BzLm9uQ2hhbmdlKGRheT8udG9JU09TdHJpbmcoKSwgZXZlbnQpO1xyXG4gICAgICAgIG9uRGF0ZUNoYW5nZShkYXkpO1xyXG4gICAgICAgIGlmIChkYXRlVGltZVBpY2tlckNvbnRlbnQpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICBzZXRGb2N1c2VkRGF0ZShkYXkpO1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gaGFuZGxlRGF5U2VsZWN0aW9uKGRheSwgZXZlbnQpIHtcclxuICAgICAgICBoYW5kbGVEYXRlQ2hhbmdlKGRheSwgZXZlbnQpO1xyXG4gICAgICAgIGlmIChkYXRlVGltZVBpY2tlckNvbnRlbnQpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICBpbnB1dFJlZi5jdXJyZW50LmZvY3VzKCk7XHJcbiAgICB9XHJcbiAgICBmdW5jdGlvbiBoYW5kbGVDYWxlbmRhckJsdXIoZXZlbnQpIHtcclxuICAgICAgICBjb25zdCB7IGN1cnJlbnRUYXJnZXQgfSA9IGV2ZW50O1xyXG4gICAgICAgIC8vIHRpbWVvdXQgbmVlZGVkIGZvciBhY3RpdmUgZWxlbWVudCB0byB1cGRhdGUuIEJyb3dzZXIgYmVoYXZpb3IuXHJcbiAgICAgICAgLy8gaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUyMzA3XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGlzSW5DYWxlbmRhciA9IGN1cnJlbnRUYXJnZXQuY29udGFpbnMoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCk7XHJcbiAgICAgICAgICAgIGlmICghaXNJbkNhbGVuZGFyICYmICFoZWxwZXJJbmZvcm1hdGlvblNob3duKSB7XHJcbiAgICAgICAgICAgICAgICBzZXRDYWxlbmRhck9wZW5lZChmYWxzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LCAwKTtcclxuICAgIH1cclxuICAgIGZ1bmN0aW9uIGhhbmRsZUNsb3NlQnV0dG9uQ2xpY2soZXZlbnQpIHtcclxuICAgICAgICBpZiAoIWljb25SZWYuY3VycmVudCAmJiBwcmV2aW91c0ljb25SZWYuY3VycmVudCkge1xyXG4gICAgICAgICAgICBpY29uUmVmLmN1cnJlbnQgPSBwcmV2aW91c0ljb25SZWYuY3VycmVudDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWNvblJlZi5jdXJyZW50LmZvY3VzKCk7XHJcbiAgICAgICAgc2V0Q2FsZW5kYXJPcGVuZWQoZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gdG9nZ2xlQ2FsZW5kYXJPcGVuZWQoKSB7XHJcbiAgICAgICAgc2V0Q2FsZW5kYXJPcGVuZWQob3BlbmVkID0+IHtcclxuICAgICAgICAgICAgLy8gRm9jdXMgb24gdG9kYXkgd2hlbiBvcGVuaW5nIGNhbGVuZGFyIHdpdGhvdXQgYSBjaG9zZW4gZGF0ZVxyXG4gICAgICAgICAgICBpZiAoIW9wZW5lZCAmJiAhY2hvc2VuRGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgc2V0Rm9jdXNlZERhdGUoc2V0RGVmYXVsdEZvY3VzZWREYXRlKCkpO1xyXG4gICAgICAgICAgICAgICAgc2V0RGF0ZUZvY3VzZWQodHJ1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuICFvcGVuZWQ7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCB7IHBsYWNlaG9sZGVyLCB0ZXN0SWQsIGRhdGVUaW1lUGlja2VyQ29udGVudCwgLi4ucmVzdCB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCBvdGhlciA9IG9taXQoWydvbkRhdGVDaGFuZ2UnLCAnb25JbnB1dENoYW5nZScsICdvbklucHV0Qmx1cicsICdvbklucHV0Rm9jdXMnXSwgcmVzdCk7XHJcbiAgICBjb25zdCBkYXRlRmllbGRWYWx1ZSA9IGRhdGVGb3JtYXQgPT09ICdNTU1NIGQsIHl5eXknICYmIGNob3NlbkRhdGVcclxuICAgICAgICA/IGZvcm1hdChjaG9zZW5EYXRlLCBkYXRlRm9ybWF0KVxyXG4gICAgICAgIDogY2hvc2VuRGF0ZTtcclxuICAgIGNvbnN0IGlucHV0RGF0ZVZhbHVlID0gY2hvc2VuRGF0ZSA/IGZvcm1hdChjaG9zZW5EYXRlLCBkYXRlRm9ybWF0KSA6ICcnO1xyXG4gICAgbGV0IGlucHV0VmFsdWUgPSBwcm9wcy5pc0RhdGVGaWVsZElucHV0ID8gZGF0ZUZpZWxkVmFsdWUgOiBpbnB1dERhdGVWYWx1ZTtcclxuICAgIGlmIChpbnB1dFZhbHVlICYmIHByb3BzLmFkZGl0aW9uYWxJbnB1dENvbnRlbnQpIHtcclxuICAgICAgICBpbnB1dFZhbHVlID0gYCR7aW5wdXRWYWx1ZX0gJHtwcm9wcy5hZGRpdGlvbmFsSW5wdXRDb250ZW50fWA7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChwcm9wcy5hZGRpdGlvbmFsSW5wdXRDb250ZW50KSB7XHJcbiAgICAgICAgc2V0Q2hvc2VuRGF0ZShuZXcgRGF0ZSgpKTtcclxuICAgIH1cclxuICAgIGNvbnN0IHsgZmxvYXRpbmdTdHlsZXMsIHJlZnMsIGVsZW1lbnRzLCB1cGRhdGUgfSA9IHVzZU1hZ21hRmxvYXRpbmcoKTtcclxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgcmVmZXJlbmNlRGF0ZUlucHV0ID0gZWxlbWVudHMucmVmZXJlbmNlO1xyXG4gICAgICAgIGNvbnN0IGZsb2F0aW5nQ2FsZW5kYXIgPSBlbGVtZW50cy5mbG9hdGluZztcclxuICAgICAgICBpZiAoY2FsZW5kYXJPcGVuZWQgJiYgcmVmZXJlbmNlRGF0ZUlucHV0ICYmIGZsb2F0aW5nQ2FsZW5kYXIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGF1dG9VcGRhdGUocmVmZXJlbmNlRGF0ZUlucHV0LCBmbG9hdGluZ0NhbGVuZGFyLCB1cGRhdGUpO1xyXG4gICAgICAgIH1cclxuICAgIH0sIFtjYWxlbmRhck9wZW5lZCwgZWxlbWVudHMsIHVwZGF0ZV0pO1xyXG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KENhbGVuZGFyQ29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZToge1xyXG4gICAgICAgICAgICBjaG9zZW5EYXRlLFxyXG4gICAgICAgICAgICBmb2N1c2VkRGF0ZSxcclxuICAgICAgICAgICAgZGF0ZUZvY3VzZWQsXHJcbiAgICAgICAgICAgIG1heERhdGUsXHJcbiAgICAgICAgICAgIG1pbkRhdGUsXHJcbiAgICAgICAgICAgIGhlbHBlckluZm9ybWF0aW9uU2hvd24sXHJcbiAgICAgICAgICAgIGlzSW52ZXJzZSxcclxuICAgICAgICAgICAgYnVpbGRDYWxlbmRhck1vbnRoLFxyXG4gICAgICAgICAgICBzaG93SGVscGVySW5mb3JtYXRpb24sXHJcbiAgICAgICAgICAgIGhpZGVIZWxwZXJJbmZvcm1hdGlvbixcclxuICAgICAgICAgICAgb25LZXlEb3duOiBoYW5kbGVLZXlEb3duLFxyXG4gICAgICAgICAgICBvblByZXZNb250aENsaWNrLFxyXG4gICAgICAgICAgICBvbk5leHRNb250aENsaWNrLFxyXG4gICAgICAgICAgICBvbkRhdGVDaGFuZ2U6IGhhbmRsZURheVNlbGVjdGlvbixcclxuICAgICAgICAgICAgc2V0RGF0ZUZvY3VzZWQsXHJcbiAgICAgICAgICAgIHNldEZvY3VzZWRUb2RheURhdGUsXHJcbiAgICAgICAgICAgIHNldEZvY3VzZWREYXRlLFxyXG4gICAgICAgICAgICBzZXRNb250aEZvY3VzZWREYXRlLFxyXG4gICAgICAgICAgICBzZXRZZWFyRm9jdXNlZERhdGUsXHJcbiAgICAgICAgICAgIG9uQ2xvc2U6IGNsb3NlSGVscGVySW5mb3JtYXRpb24sXHJcbiAgICAgICAgfSB9LFxyXG4gICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRGF0ZVBpY2tlckNvbnRhaW5lciwgeyBcImRhdGEtdGVzdGlkXCI6IHRlc3RJZCwgb25CbHVyOiBoYW5kbGVDYWxlbmRhckJsdXIgfSxcclxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChBbm5vdW5jZSwgbnVsbCwgY2FsZW5kYXJPcGVuZWQgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoVmlzdWFsbHlIaWRkZW4sIG51bGwsIGkxOG4uZGF0ZVBpY2tlci5jYWxlbmRhck9wZW5Bbm5vdW5jZSkpKSxcclxuICAgICAgICAgICAgcHJvcHMuaXNEYXRlRmllbGRJbnB1dCA/IChSZWFjdC5jcmVhdGVFbGVtZW50KERhdGVGaWVsZElucHV0LCBPYmplY3QuYXNzaWduKHt9LCBvdGhlciwgeyBpZDogaWQsIGRhdGVGb3JtYXQ6IGRhdGVGb3JtYXQsIGlucHV0VmFsdWU6IGlucHV0VmFsdWUsIG9uSWNvbkNsaWNrOiB0b2dnbGVDYWxlbmRhck9wZW5lZCwgc2V0UmVmZXJlbmNlOiByZWZzLnNldFJlZmVyZW5jZSwgaWNvblJlZjogaWNvblJlZiwgaW5wdXRSZWY6IGlucHV0UmVmLCBoYW5kbGVEYXRlQ2hhbmdlOiBoYW5kbGVEYXRlQ2hhbmdlLCBvbkNsZWFyRGF0ZTogcmVzZXQsIG9uSW5wdXRCbHVyOiBwcm9wcy5vbklucHV0Qmx1ciwgb25JbnB1dEZvY3VzOiBoYW5kbGVJbnB1dEZvY3VzLCBvbkljb25LZXlEb3duOiBoYW5kbGVJbnB1dEtleURvd24gfSkpKSA6IChSZWFjdC5jcmVhdGVFbGVtZW50KElucHV0LCBPYmplY3QuYXNzaWduKHt9LCBvdGhlciwgeyBpY29uOiBSZWFjdC5jcmVhdGVFbGVtZW50KEV2ZW50SWNvbiwgbnVsbCksIGljb25BcmlhTGFiZWw6IGkxOG4uZGF0ZVBpY2tlci5jYWxlbmRhckljb25BcmlhTGFiZWwsIGljb25SZWY6IGljb25SZWYsIG9uSWNvbkNsaWNrOiB0b2dnbGVDYWxlbmRhck9wZW5lZCwgb25JY29uS2V5RG93bjogaGFuZGxlSW5wdXRLZXlEb3duLCBpZDogaWQsIGlzSW52ZXJzZTogaXNJbnZlcnNlLCByZWY6IHJlZiwgb25DaGFuZ2U6IGhhbmRsZUlucHV0Q2hhbmdlLCBvbkJsdXI6IGhhbmRsZUlucHV0Qmx1ciwgb25Gb2N1czogaGFuZGxlSW5wdXRGb2N1cywgb25LZXlEb3duOiBoYW5kbGVJbnB1dEtleURvd24sIG9uRGF0ZUNoYW5nZTogaGFuZGxlRGF0ZUNoYW5nZSwgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyID8gcGxhY2Vob2xkZXIgOiBkYXRlRm9ybWF0LnRvTG93ZXJDYXNlKCksIHR5cGU6IElucHV0VHlwZS50ZXh0LCB2YWx1ZTogaW5wdXRWYWx1ZSwgc2V0UmVmZXJlbmNlOiByZWZzLnNldFJlZmVyZW5jZSB9KSkpLFxyXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEludmVyc2VDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiB7IGlzSW52ZXJzZSB9IH0sXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgcmVmOiBlbCA9PiBjYWxlbmRhck9wZW5lZCAmJiByZWZzLnNldEZsb2F0aW5nKGVsKSwgc3R5bGU6IHsgLi4uZmxvYXRpbmdTdHlsZXMsIHpJbmRleDogJzk5OCcgfSB9LFxyXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRGF0ZVBpY2tlckNhbGVuZGFyLCB7IFwiZGF0YS10ZXN0aWRcIjogXCJjYWxlbmRhckNvbnRhaW5lclwiLCBvcGVuZWQ6IGNhbGVuZGFyT3BlbmVkLCBpc0ludmVyc2U6IGlzSW52ZXJzZSwgdGhlbWU6IHRoZW1lIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ2FsZW5kYXJNb250aCwgeyBmb2N1c09uT3BlbjogY2FsZW5kYXJPcGVuZWQgJiYgQm9vbGVhbihmb2N1c2VkRGF0ZSksIGlzSW52ZXJzZTogaXNJbnZlcnNlLCBoYW5kbGVDbG9zZUJ1dHRvbkNsaWNrOiBoYW5kbGVDbG9zZUJ1dHRvbkNsaWNrLCBjYWxlbmRhck9wZW5lZDogY2FsZW5kYXJPcGVuZWQsIHNldERhdGVGb2N1c2VkOiBzZXREYXRlRm9jdXNlZCwgZGF0ZVRpbWVQaWNrZXJDb250ZW50OiBkYXRlVGltZVBpY2tlckNvbnRlbnQgfSkpKSkpKSk7XHJcbn0pO1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXX0= */"));
24841
24841
  /*#__PURE__*/createStyled("div", {
24842
24842
  target: "e19df3bi0",
24843
24843
  label: "DoneButtonWrapper"
@@ -29764,6 +29764,7 @@
29764
29764
  downloadAsJpg: 'Download as JPG',
29765
29765
  downloadAsPng: 'Download as PNG',
29766
29766
  exitFullScreen: 'Exit full screen',
29767
+ legendInstructions: 'Checking these checkboxes will update the chart.',
29767
29768
  makeFullScreen: 'Make full screen',
29768
29769
  moreOptionsAriaLabel: 'More options',
29769
29770
  showAsTableTooltip: 'Show as table',
@@ -29774,7 +29775,7 @@
29774
29775
  * falling back to English defaults.
29775
29776
  */
29776
29777
  function useChartToolbarI18n() {
29777
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
29778
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
29778
29779
  var i18n = React__default__namespace.useContext(I18nContext);
29779
29780
  var toolbar = (_a = i18n.charts) === null || _a === void 0 ? void 0 : _a.toolbar;
29780
29781
  if (!toolbar)
@@ -29785,10 +29786,11 @@
29785
29786
  downloadAsJpg: (_d = toolbar.downloadAsJpg) !== null && _d !== void 0 ? _d : defaults.downloadAsJpg,
29786
29787
  downloadAsPng: (_e = toolbar.downloadAsPng) !== null && _e !== void 0 ? _e : defaults.downloadAsPng,
29787
29788
  exitFullScreen: (_f = toolbar.exitFullScreen) !== null && _f !== void 0 ? _f : defaults.exitFullScreen,
29788
- makeFullScreen: (_g = toolbar.makeFullScreen) !== null && _g !== void 0 ? _g : defaults.makeFullScreen,
29789
- moreOptionsAriaLabel: (_h = toolbar.moreOptionsAriaLabel) !== null && _h !== void 0 ? _h : defaults.moreOptionsAriaLabel,
29790
- showAsTableTooltip: (_j = toolbar.showAsTableTooltip) !== null && _j !== void 0 ? _j : defaults.showAsTableTooltip,
29791
- tabularRepresentationLabel: (_k = toolbar.tabularRepresentationLabel) !== null && _k !== void 0 ? _k : defaults.tabularRepresentationLabel,
29789
+ legendInstructions: (_g = toolbar.legendInstructions) !== null && _g !== void 0 ? _g : defaults.legendInstructions,
29790
+ makeFullScreen: (_h = toolbar.makeFullScreen) !== null && _h !== void 0 ? _h : defaults.makeFullScreen,
29791
+ moreOptionsAriaLabel: (_j = toolbar.moreOptionsAriaLabel) !== null && _j !== void 0 ? _j : defaults.moreOptionsAriaLabel,
29792
+ showAsTableTooltip: (_k = toolbar.showAsTableTooltip) !== null && _k !== void 0 ? _k : defaults.showAsTableTooltip,
29793
+ tabularRepresentationLabel: (_l = toolbar.tabularRepresentationLabel) !== null && _l !== void 0 ? _l : defaults.tabularRepresentationLabel,
29792
29794
  };
29793
29795
  }
29794
29796
 
@@ -29887,7 +29889,7 @@
29887
29889
  ? props.theme.colors.primary700
29888
29890
  : props.theme.colors.neutral100;
29889
29891
  });
29890
- var CarbonChartWrapper = styled.div(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n &:fullscreen,\n &:-webkit-full-screen {\n background: ", ";\n\n .cds--chart-holder {\n height: 100vh !important;\n }\n }\n\n .cds--data-table thead tr th {\n background: ", " !important;\n }\n .cds--data-table td,\n .cds--data-table tbody th {\n color: ", ";\n }\n .cds--data-table tbody tr,\n .cds--data-table tbody tr td,\n .cds--data-table tbody tr th {\n color: ", ";\n }\n .cds--data-table tr {\n block-size: 2.5rem;\n }\n\n .cds--cc--tooltip .content-box .datapoint-tooltip p {\n font-size: ", ";\n padding: ", ";\n color: ", ";\n max-width: 142px;\n white-space: normal;\n }\n\n .cds--modal-container {\n clip-path: inset(0% 0% 0% 0% round ", ");\n background: ", ";\n .cds--data-table th {\n background: ", ";\n }\n .cds--data-table td {\n border-top: 1px solid\n ", ";\n border-bottom: 1px solid\n ", ";\n background: ", ";\n }\n .cds--data-table tr:hover td {\n background: ", ";\n }\n }\n\n .chart-holder p,\n .chart-holder div,\n .chart-holder text,\n .cds--cc--axes g.axis .axis-title,\n .cds--cc--title p.title,\n .cds--cc--axes g.axis g.tick text {\n font-family: ", " !important;\n color: ", ";\n }\n\n .cds--cc--axes {\n overflow: visible;\n }\n\n div.cds--cc--legend {\n div.legend-item {\n div.checkbox {\n background: ", ";\n border: none;\n width: ", ";\n height: ", ";\n svg {\n left: 2px;\n position: relative;\n }\n }\n p {\n font-size: ", ";\n margin: 0 ", " 0 0;\n }\n }\n }\n div.cds--cc--legend.has-deactivated-items {\n div.legend-item {\n div.checkbox {\n border: 1px solid\n ", ";\n }\n div.checkbox.active {\n border: 1px solid transparent;\n }\n }\n }\n .chart-holder {\n .cds--cc--axes g.axis g.tick text {\n fill: ", ";\n }\n .cds--cc--axes g.axis path.domain {\n stroke: ", ";\n }\n .cds--cc--grid g.x.grid g.tick line,\n .cds--cc--grid g.y.grid g.tick line {\n stroke: ", ";\n }\n .cds--cc--grid rect.chart-grid-backdrop.stroked {\n stroke: ", ";\n }\n .cds--cc--skeleton .shimmer-effect-lines {\n filter: ", ";\n }\n /* .chart-holder.cds--chart-holder.filled,\n .cds--cc--skeleton rect.chart-skeleton-backdrop,\n .cds--cc--grid rect.chart-grid-backdrop {\n } */\n\n .cds--cc--grid rect.chart-grid-backdrop {\n fill: transparent;\n }\n .cds--cc--scatter circle.dot,\n .cds--cc--scatter circle.dot.hovered {\n padding: 10px;\n }\n .cds--cc--scatter-stacked circle.dot.hovered,\n .cds--cc--scatter-stacked circle.dot.unfilled,\n .cds--cc--scatter circle.dot.unfilled {\n stroke-width: 6px;\n transition: 0.1s all linear;\n }\n .cds--cc--scatter circle.dot {\n filter: drop-shadow(\n 1px 0px 0px\n ", "\n )\n drop-shadow(\n -1px 0px 0px\n ", "\n )\n drop-shadow(\n 0px 1px 0px\n ", "\n )\n drop-shadow(\n 0px -1px 0px\n ", "\n );\n }\n .cds--cc--scatter circle.dot.hovered {\n stroke-width: 0.5em;\n transition: 0.1s all linear;\n filter: drop-shadow(\n 1px 0px 0px\n ", "\n )\n drop-shadow(\n -1px 0px 0px\n ", "\n )\n drop-shadow(\n 0px 1px 0px\n ", "\n )\n drop-shadow(\n 0px -1px 0px\n ", "\n );\n }\n .cds--cc--lollipop circle.dot,\n .cds--cc--lollipop circle.dot.filled,\n .cds--cc--lollipop circle.dot.hovered {\n stroke-width: 15px;\n }\n .cds--cc--scatter-stacked circle.dot,\n .cds--cc--scatter-stacked circle.dot.hovered,\n .cds--cc--scatter-stacked circle.dot.unfilled,\n .cds--cc--scatter circle.dot.unfilled,\n .cds--cc--lollipop circle.dot.filled,\n .cds--cc--lollipop circle.dot,\n .cds--cc--lollipop circle.dot.hovered {\n transition: 0.1s all linear;\n filter: drop-shadow(\n 1px 0px 0px\n ", "\n )\n drop-shadow(\n -1px 0px 0px\n ", "\n )\n drop-shadow(\n 0px 1px 0px\n ", "\n )\n drop-shadow(\n 0px -1px 0px\n ", "\n );\n }\n .cds--cc--lollipop .cds--cc--scatter circle.dot.hovered {\n transition: 0.1s all linear;\n stroke-width: 1.1em;\n }\n\n .cds--cc--tooltip {\n ", "\n }\n\n .cds--overflow-menu-options__btn:focus {\n outline-color: ", ";\n }\n\n .cds--btn {\n min-height: auto;\n display: flex;\n flex: 0 auto;\n align-items: center;\n text-align: center;\n padding: 20px;\n margin: 0;\n line-height: ", ";\n margin: 0;\n min-width: ", ";\n overflow: hidden;\n position: relative;\n right: ", ";\n text-align: center;\n height: 40px;\n font-family: ", ";\n font-size: ", ";\n border-radius: ", ";\n font-weight: 500;\n }\n\n .cds--btn--primary {\n background: ", ";\n color: ", ";\n }\n\n *:focus {\n outline: 2px solid\n ", " !important;\n outline-offset: 0;\n }\n .cds--overflow-menu-options__btn:focus,\n .cds--overflow-menu:focus,\n .cds--overflow-menu__trigger:focus,\n .toolbar-control:focus {\n outline: 2px solid\n ", " !important;\n }\n div.cds--cc--legend.clickable\n div.legend-item:not(.additional):focus\n div.checkbox,\n div.cds--cc--legend.clickable\n div.legend-item:not(.additional):hover\n div.checkbox {\n border: ", ";\n }\n div.cds--cc--legend.clickable\n div.legend-item:not(.additional):hover\n div.checkbox {\n box-shadow: 0 0 0 2px\n ", " !important;\n }\n\n .cds--btn--primary {\n &:focus {\n outline: 2px solid\n ", ";\n }\n outline-offset: 2px;\n border: none;\n box-shadow: none;\n }\n .cds--modal-header {\n background: ", ";\n margin-bottom: 0;\n border-bottom: 1px solid\n ", ";\n }\n .cds--modal-header__heading {\n font-weight: 600;\n }\n\n .cds--modal-close {\n position: absolute;\n top: 0;\n right: 0;\n &:focus {\n outline: 2px solid\n ", ";\n border-color: none;\n }\n outline-offset: 0;\n border: none;\n }\n }\n\n .cds--modal-footer.cds--modal-footer {\n display: flex;\n align-items: center;\n border-top: 1px solid\n ", ";\n background: ", " !important;\n }\n .layout-child.header {\n height: auto !important;\n p {\n text-overflow: inherit;\n overflow: auto;\n white-space: normal;\n }\n }\n\n &.has-magma-toolbar .cds--cc--title p.title {\n visibility: hidden;\n }\n\n svg:not(:root) {\n overflow: visible;\n }\n\n .cds--cc--chart-wrapper text {\n font-size: ", ";\n }\n\n g.center text,\n .pie-label {\n fill: ", ";\n }\n\n // Zoom responsive tweaks\n\n @media screen and (max-width: 760px) {\n .cds--modal-container {\n overflow-y: auto;\n }\n .cds--chart-holder .cds--modal .cds--modal-container .cds--modal-content {\n overflow: visible;\n }\n .cds--chart-holder\n .cds--modal\n .cds--modal-container\n .cds--modal-content\n table\n th {\n position: relative;\n }\n }\n"], ["\n &:fullscreen,\n &:-webkit-full-screen {\n background: ", ";\n\n .cds--chart-holder {\n height: 100vh !important;\n }\n }\n\n .cds--data-table thead tr th {\n background: ", " !important;\n }\n .cds--data-table td,\n .cds--data-table tbody th {\n color: ", ";\n }\n .cds--data-table tbody tr,\n .cds--data-table tbody tr td,\n .cds--data-table tbody tr th {\n color: ", ";\n }\n .cds--data-table tr {\n block-size: 2.5rem;\n }\n\n .cds--cc--tooltip .content-box .datapoint-tooltip p {\n font-size: ", ";\n padding: ", ";\n color: ", ";\n max-width: 142px;\n white-space: normal;\n }\n\n .cds--modal-container {\n clip-path: inset(0% 0% 0% 0% round ", ");\n background: ", ";\n .cds--data-table th {\n background: ", ";\n }\n .cds--data-table td {\n border-top: 1px solid\n ", ";\n border-bottom: 1px solid\n ", ";\n background: ", ";\n }\n .cds--data-table tr:hover td {\n background: ", ";\n }\n }\n\n .chart-holder p,\n .chart-holder div,\n .chart-holder text,\n .cds--cc--axes g.axis .axis-title,\n .cds--cc--title p.title,\n .cds--cc--axes g.axis g.tick text {\n font-family: ", " !important;\n color: ", ";\n }\n\n .cds--cc--axes {\n overflow: visible;\n }\n\n div.cds--cc--legend {\n div.legend-item {\n div.checkbox {\n background: ", ";\n border: none;\n width: ", ";\n height: ", ";\n svg {\n left: 2px;\n position: relative;\n }\n }\n p {\n font-size: ", ";\n margin: 0 ", " 0 0;\n }\n }\n }\n div.cds--cc--legend.has-deactivated-items {\n div.legend-item {\n div.checkbox {\n border: 1px solid\n ", ";\n }\n div.checkbox.active {\n border: 1px solid transparent;\n }\n }\n }\n .chart-holder {\n .cds--cc--axes g.axis g.tick text {\n fill: ", ";\n }\n .cds--cc--axes g.axis path.domain {\n stroke: ", ";\n }\n .cds--cc--grid g.x.grid g.tick line,\n .cds--cc--grid g.y.grid g.tick line {\n stroke: ", ";\n }\n .cds--cc--grid rect.chart-grid-backdrop.stroked {\n stroke: ", ";\n }\n .cds--cc--skeleton .shimmer-effect-lines {\n filter: ", ";\n }\n /* .chart-holder.cds--chart-holder.filled,\n .cds--cc--skeleton rect.chart-skeleton-backdrop,\n .cds--cc--grid rect.chart-grid-backdrop {\n } */\n\n .cds--cc--grid rect.chart-grid-backdrop {\n fill: transparent;\n }\n .cds--cc--scatter circle.dot,\n .cds--cc--scatter circle.dot.hovered {\n padding: 10px;\n }\n .cds--cc--scatter-stacked circle.dot.hovered,\n .cds--cc--scatter-stacked circle.dot.unfilled,\n .cds--cc--scatter circle.dot.unfilled {\n stroke-width: 6px;\n transition: 0.1s all linear;\n }\n .cds--cc--scatter circle.dot {\n filter: drop-shadow(\n 1px 0px 0px\n ", "\n )\n drop-shadow(\n -1px 0px 0px\n ", "\n )\n drop-shadow(\n 0px 1px 0px\n ", "\n )\n drop-shadow(\n 0px -1px 0px\n ", "\n );\n }\n .cds--cc--scatter circle.dot.hovered {\n stroke-width: 0.5em;\n transition: 0.1s all linear;\n filter: drop-shadow(\n 1px 0px 0px\n ", "\n )\n drop-shadow(\n -1px 0px 0px\n ", "\n )\n drop-shadow(\n 0px 1px 0px\n ", "\n )\n drop-shadow(\n 0px -1px 0px\n ", "\n );\n }\n .cds--cc--lollipop circle.dot,\n .cds--cc--lollipop circle.dot.filled,\n .cds--cc--lollipop circle.dot.hovered {\n stroke-width: 15px;\n }\n .cds--cc--scatter-stacked circle.dot,\n .cds--cc--scatter-stacked circle.dot.hovered,\n .cds--cc--scatter-stacked circle.dot.unfilled,\n .cds--cc--scatter circle.dot.unfilled,\n .cds--cc--lollipop circle.dot.filled,\n .cds--cc--lollipop circle.dot,\n .cds--cc--lollipop circle.dot.hovered {\n transition: 0.1s all linear;\n filter: drop-shadow(\n 1px 0px 0px\n ", "\n )\n drop-shadow(\n -1px 0px 0px\n ", "\n )\n drop-shadow(\n 0px 1px 0px\n ", "\n )\n drop-shadow(\n 0px -1px 0px\n ", "\n );\n }\n .cds--cc--lollipop .cds--cc--scatter circle.dot.hovered {\n transition: 0.1s all linear;\n stroke-width: 1.1em;\n }\n\n .cds--cc--tooltip {\n ", "\n }\n\n .cds--overflow-menu-options__btn:focus {\n outline-color: ", ";\n }\n\n .cds--btn {\n min-height: auto;\n display: flex;\n flex: 0 auto;\n align-items: center;\n text-align: center;\n padding: 20px;\n margin: 0;\n line-height: ", ";\n margin: 0;\n min-width: ", ";\n overflow: hidden;\n position: relative;\n right: ", ";\n text-align: center;\n height: 40px;\n font-family: ", ";\n font-size: ", ";\n border-radius: ", ";\n font-weight: 500;\n }\n\n .cds--btn--primary {\n background: ", ";\n color: ", ";\n }\n\n *:focus {\n outline: 2px solid\n ", " !important;\n outline-offset: 0;\n }\n .cds--overflow-menu-options__btn:focus,\n .cds--overflow-menu:focus,\n .cds--overflow-menu__trigger:focus,\n .toolbar-control:focus {\n outline: 2px solid\n ", " !important;\n }\n div.cds--cc--legend.clickable\n div.legend-item:not(.additional):focus\n div.checkbox,\n div.cds--cc--legend.clickable\n div.legend-item:not(.additional):hover\n div.checkbox {\n border: ", ";\n }\n div.cds--cc--legend.clickable\n div.legend-item:not(.additional):hover\n div.checkbox {\n box-shadow: 0 0 0 2px\n ", " !important;\n }\n\n .cds--btn--primary {\n &:focus {\n outline: 2px solid\n ", ";\n }\n outline-offset: 2px;\n border: none;\n box-shadow: none;\n }\n .cds--modal-header {\n background: ", ";\n margin-bottom: 0;\n border-bottom: 1px solid\n ", ";\n }\n .cds--modal-header__heading {\n font-weight: 600;\n }\n\n .cds--modal-close {\n position: absolute;\n top: 0;\n right: 0;\n &:focus {\n outline: 2px solid\n ", ";\n border-color: none;\n }\n outline-offset: 0;\n border: none;\n }\n }\n\n .cds--modal-footer.cds--modal-footer {\n display: flex;\n align-items: center;\n border-top: 1px solid\n ", ";\n background: ", " !important;\n }\n .layout-child.header {\n height: auto !important;\n p {\n text-overflow: inherit;\n overflow: auto;\n white-space: normal;\n }\n }\n\n &.has-magma-toolbar .cds--cc--title p.title {\n visibility: hidden;\n }\n\n svg:not(:root) {\n overflow: visible;\n }\n\n .cds--cc--chart-wrapper text {\n font-size: ", ";\n }\n\n g.center text,\n .pie-label {\n fill: ", ";\n }\n\n // Zoom responsive tweaks\n\n @media screen and (max-width: 760px) {\n .cds--modal-container {\n overflow-y: auto;\n }\n .cds--chart-holder .cds--modal .cds--modal-container .cds--modal-content {\n overflow: visible;\n }\n .cds--chart-holder\n .cds--modal\n .cds--modal-container\n .cds--modal-content\n table\n th {\n position: relative;\n }\n }\n"])), function (props) {
29892
+ var CarbonChartWrapper = styled.div(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n .cds--cc--legend-fieldset {\n border: 0;\n margin: 0;\n min-inline-size: 0;\n padding: 0;\n }\n\n .cds--cc--legend-fieldset > legend {\n clip: rect(1px, 1px, 1px, 1px);\n height: 1px;\n overflow: hidden;\n position: absolute;\n top: auto;\n white-space: nowrap;\n width: 1px;\n }\n\n &:fullscreen,\n &:-webkit-full-screen {\n background: ", ";\n\n .cds--chart-holder {\n height: 100vh !important;\n }\n }\n\n .cds--data-table thead tr th {\n background: ", " !important;\n }\n .cds--data-table td,\n .cds--data-table tbody th {\n color: ", ";\n }\n .cds--data-table tbody tr,\n .cds--data-table tbody tr td,\n .cds--data-table tbody tr th {\n color: ", ";\n }\n .cds--data-table tr {\n block-size: 2.5rem;\n }\n\n .cds--cc--tooltip .content-box .datapoint-tooltip p {\n font-size: ", ";\n padding: ", ";\n color: ", ";\n max-width: 142px;\n white-space: normal;\n }\n\n .cds--modal-container {\n clip-path: inset(0% 0% 0% 0% round ", ");\n background: ", ";\n .cds--data-table th {\n background: ", ";\n }\n .cds--data-table td {\n border-top: 1px solid\n ", ";\n border-bottom: 1px solid\n ", ";\n background: ", ";\n }\n .cds--data-table tr:hover td {\n background: ", ";\n }\n }\n\n .chart-holder p,\n .chart-holder div,\n .chart-holder text,\n .cds--cc--axes g.axis .axis-title,\n .cds--cc--title p.title,\n .cds--cc--axes g.axis g.tick text {\n font-family: ", " !important;\n color: ", ";\n }\n\n .cds--cc--axes {\n overflow: visible;\n }\n\n div.cds--cc--legend {\n div.legend-item {\n div.checkbox {\n background: ", ";\n border: none;\n width: ", ";\n height: ", ";\n svg {\n left: 2px;\n position: relative;\n }\n }\n p {\n font-size: ", ";\n margin: 0 ", " 0 0;\n }\n }\n }\n div.cds--cc--legend.has-deactivated-items {\n div.legend-item {\n div.checkbox {\n border: 1px solid\n ", ";\n }\n div.checkbox.active {\n border: 1px solid transparent;\n }\n }\n }\n .chart-holder {\n .cds--cc--axes g.axis g.tick text {\n fill: ", ";\n }\n .cds--cc--axes g.axis path.domain {\n stroke: ", ";\n }\n .cds--cc--grid g.x.grid g.tick line,\n .cds--cc--grid g.y.grid g.tick line {\n stroke: ", ";\n }\n .cds--cc--grid rect.chart-grid-backdrop.stroked {\n stroke: ", ";\n }\n .cds--cc--skeleton .shimmer-effect-lines {\n filter: ", ";\n }\n /* .chart-holder.cds--chart-holder.filled,\n .cds--cc--skeleton rect.chart-skeleton-backdrop,\n .cds--cc--grid rect.chart-grid-backdrop {\n } */\n\n .cds--cc--grid rect.chart-grid-backdrop {\n fill: transparent;\n }\n .cds--cc--scatter circle.dot,\n .cds--cc--scatter circle.dot.hovered {\n padding: 10px;\n }\n .cds--cc--scatter-stacked circle.dot.hovered,\n .cds--cc--scatter-stacked circle.dot.unfilled,\n .cds--cc--scatter circle.dot.unfilled {\n stroke-width: 6px;\n transition: 0.1s all linear;\n }\n .cds--cc--scatter circle.dot {\n filter: drop-shadow(\n 1px 0px 0px\n ", "\n )\n drop-shadow(\n -1px 0px 0px\n ", "\n )\n drop-shadow(\n 0px 1px 0px\n ", "\n )\n drop-shadow(\n 0px -1px 0px\n ", "\n );\n }\n .cds--cc--scatter circle.dot.hovered {\n stroke-width: 0.5em;\n transition: 0.1s all linear;\n filter: drop-shadow(\n 1px 0px 0px\n ", "\n )\n drop-shadow(\n -1px 0px 0px\n ", "\n )\n drop-shadow(\n 0px 1px 0px\n ", "\n )\n drop-shadow(\n 0px -1px 0px\n ", "\n );\n }\n .cds--cc--lollipop circle.dot,\n .cds--cc--lollipop circle.dot.filled,\n .cds--cc--lollipop circle.dot.hovered {\n stroke-width: 15px;\n }\n .cds--cc--scatter-stacked circle.dot,\n .cds--cc--scatter-stacked circle.dot.hovered,\n .cds--cc--scatter-stacked circle.dot.unfilled,\n .cds--cc--scatter circle.dot.unfilled,\n .cds--cc--lollipop circle.dot.filled,\n .cds--cc--lollipop circle.dot,\n .cds--cc--lollipop circle.dot.hovered {\n transition: 0.1s all linear;\n filter: drop-shadow(\n 1px 0px 0px\n ", "\n )\n drop-shadow(\n -1px 0px 0px\n ", "\n )\n drop-shadow(\n 0px 1px 0px\n ", "\n )\n drop-shadow(\n 0px -1px 0px\n ", "\n );\n }\n .cds--cc--lollipop .cds--cc--scatter circle.dot.hovered {\n transition: 0.1s all linear;\n stroke-width: 1.1em;\n }\n\n .cds--cc--tooltip {\n ", "\n }\n\n .cds--overflow-menu-options__btn:focus {\n outline-color: ", ";\n }\n\n .cds--btn {\n min-height: auto;\n display: flex;\n flex: 0 auto;\n align-items: center;\n text-align: center;\n padding: 20px;\n margin: 0;\n line-height: ", ";\n margin: 0;\n min-width: ", ";\n overflow: hidden;\n position: relative;\n right: ", ";\n text-align: center;\n height: 40px;\n font-family: ", ";\n font-size: ", ";\n border-radius: ", ";\n font-weight: 500;\n }\n\n .cds--btn--primary {\n background: ", ";\n color: ", ";\n }\n\n *:focus {\n outline: 2px solid\n ", " !important;\n outline-offset: 0;\n }\n .cds--overflow-menu-options__btn:focus,\n .cds--overflow-menu:focus,\n .cds--overflow-menu__trigger:focus,\n .toolbar-control:focus {\n outline: 2px solid\n ", " !important;\n }\n div.cds--cc--legend.clickable\n div.legend-item:not(.additional):focus\n div.checkbox,\n div.cds--cc--legend.clickable\n div.legend-item:not(.additional):hover\n div.checkbox {\n border: ", ";\n }\n div.cds--cc--legend.clickable\n div.legend-item:not(.additional):hover\n div.checkbox {\n box-shadow: 0 0 0 2px\n ", " !important;\n }\n\n .cds--btn--primary {\n &:focus {\n outline: 2px solid\n ", ";\n }\n outline-offset: 2px;\n border: none;\n box-shadow: none;\n }\n .cds--modal-header {\n background: ", ";\n margin-bottom: 0;\n border-bottom: 1px solid\n ", ";\n }\n .cds--modal-header__heading {\n font-weight: 600;\n }\n\n .cds--modal-close {\n position: absolute;\n top: 0;\n right: 0;\n &:focus {\n outline: 2px solid\n ", ";\n border-color: none;\n }\n outline-offset: 0;\n border: none;\n }\n }\n\n .cds--modal-footer.cds--modal-footer {\n display: flex;\n align-items: center;\n border-top: 1px solid\n ", ";\n background: ", " !important;\n }\n .layout-child.header {\n height: auto !important;\n p {\n text-overflow: inherit;\n overflow: auto;\n white-space: normal;\n }\n }\n\n &.has-magma-toolbar .cds--cc--title p.title {\n visibility: hidden;\n }\n\n svg:not(:root) {\n overflow: visible;\n }\n\n .cds--cc--chart-wrapper text {\n font-size: ", ";\n }\n\n g.center text,\n .pie-label {\n fill: ", ";\n }\n\n // Zoom responsive tweaks\n\n @media screen and (max-width: 760px) {\n .cds--modal-container {\n overflow-y: auto;\n }\n .cds--chart-holder .cds--modal .cds--modal-container .cds--modal-content {\n overflow: visible;\n }\n .cds--chart-holder\n .cds--modal\n .cds--modal-container\n .cds--modal-content\n table\n th {\n position: relative;\n }\n }\n"], ["\n .cds--cc--legend-fieldset {\n border: 0;\n margin: 0;\n min-inline-size: 0;\n padding: 0;\n }\n\n .cds--cc--legend-fieldset > legend {\n clip: rect(1px, 1px, 1px, 1px);\n height: 1px;\n overflow: hidden;\n position: absolute;\n top: auto;\n white-space: nowrap;\n width: 1px;\n }\n\n &:fullscreen,\n &:-webkit-full-screen {\n background: ", ";\n\n .cds--chart-holder {\n height: 100vh !important;\n }\n }\n\n .cds--data-table thead tr th {\n background: ", " !important;\n }\n .cds--data-table td,\n .cds--data-table tbody th {\n color: ", ";\n }\n .cds--data-table tbody tr,\n .cds--data-table tbody tr td,\n .cds--data-table tbody tr th {\n color: ", ";\n }\n .cds--data-table tr {\n block-size: 2.5rem;\n }\n\n .cds--cc--tooltip .content-box .datapoint-tooltip p {\n font-size: ", ";\n padding: ", ";\n color: ", ";\n max-width: 142px;\n white-space: normal;\n }\n\n .cds--modal-container {\n clip-path: inset(0% 0% 0% 0% round ", ");\n background: ", ";\n .cds--data-table th {\n background: ", ";\n }\n .cds--data-table td {\n border-top: 1px solid\n ", ";\n border-bottom: 1px solid\n ", ";\n background: ", ";\n }\n .cds--data-table tr:hover td {\n background: ", ";\n }\n }\n\n .chart-holder p,\n .chart-holder div,\n .chart-holder text,\n .cds--cc--axes g.axis .axis-title,\n .cds--cc--title p.title,\n .cds--cc--axes g.axis g.tick text {\n font-family: ", " !important;\n color: ", ";\n }\n\n .cds--cc--axes {\n overflow: visible;\n }\n\n div.cds--cc--legend {\n div.legend-item {\n div.checkbox {\n background: ", ";\n border: none;\n width: ", ";\n height: ", ";\n svg {\n left: 2px;\n position: relative;\n }\n }\n p {\n font-size: ", ";\n margin: 0 ", " 0 0;\n }\n }\n }\n div.cds--cc--legend.has-deactivated-items {\n div.legend-item {\n div.checkbox {\n border: 1px solid\n ", ";\n }\n div.checkbox.active {\n border: 1px solid transparent;\n }\n }\n }\n .chart-holder {\n .cds--cc--axes g.axis g.tick text {\n fill: ", ";\n }\n .cds--cc--axes g.axis path.domain {\n stroke: ", ";\n }\n .cds--cc--grid g.x.grid g.tick line,\n .cds--cc--grid g.y.grid g.tick line {\n stroke: ", ";\n }\n .cds--cc--grid rect.chart-grid-backdrop.stroked {\n stroke: ", ";\n }\n .cds--cc--skeleton .shimmer-effect-lines {\n filter: ", ";\n }\n /* .chart-holder.cds--chart-holder.filled,\n .cds--cc--skeleton rect.chart-skeleton-backdrop,\n .cds--cc--grid rect.chart-grid-backdrop {\n } */\n\n .cds--cc--grid rect.chart-grid-backdrop {\n fill: transparent;\n }\n .cds--cc--scatter circle.dot,\n .cds--cc--scatter circle.dot.hovered {\n padding: 10px;\n }\n .cds--cc--scatter-stacked circle.dot.hovered,\n .cds--cc--scatter-stacked circle.dot.unfilled,\n .cds--cc--scatter circle.dot.unfilled {\n stroke-width: 6px;\n transition: 0.1s all linear;\n }\n .cds--cc--scatter circle.dot {\n filter: drop-shadow(\n 1px 0px 0px\n ", "\n )\n drop-shadow(\n -1px 0px 0px\n ", "\n )\n drop-shadow(\n 0px 1px 0px\n ", "\n )\n drop-shadow(\n 0px -1px 0px\n ", "\n );\n }\n .cds--cc--scatter circle.dot.hovered {\n stroke-width: 0.5em;\n transition: 0.1s all linear;\n filter: drop-shadow(\n 1px 0px 0px\n ", "\n )\n drop-shadow(\n -1px 0px 0px\n ", "\n )\n drop-shadow(\n 0px 1px 0px\n ", "\n )\n drop-shadow(\n 0px -1px 0px\n ", "\n );\n }\n .cds--cc--lollipop circle.dot,\n .cds--cc--lollipop circle.dot.filled,\n .cds--cc--lollipop circle.dot.hovered {\n stroke-width: 15px;\n }\n .cds--cc--scatter-stacked circle.dot,\n .cds--cc--scatter-stacked circle.dot.hovered,\n .cds--cc--scatter-stacked circle.dot.unfilled,\n .cds--cc--scatter circle.dot.unfilled,\n .cds--cc--lollipop circle.dot.filled,\n .cds--cc--lollipop circle.dot,\n .cds--cc--lollipop circle.dot.hovered {\n transition: 0.1s all linear;\n filter: drop-shadow(\n 1px 0px 0px\n ", "\n )\n drop-shadow(\n -1px 0px 0px\n ", "\n )\n drop-shadow(\n 0px 1px 0px\n ", "\n )\n drop-shadow(\n 0px -1px 0px\n ", "\n );\n }\n .cds--cc--lollipop .cds--cc--scatter circle.dot.hovered {\n transition: 0.1s all linear;\n stroke-width: 1.1em;\n }\n\n .cds--cc--tooltip {\n ", "\n }\n\n .cds--overflow-menu-options__btn:focus {\n outline-color: ", ";\n }\n\n .cds--btn {\n min-height: auto;\n display: flex;\n flex: 0 auto;\n align-items: center;\n text-align: center;\n padding: 20px;\n margin: 0;\n line-height: ", ";\n margin: 0;\n min-width: ", ";\n overflow: hidden;\n position: relative;\n right: ", ";\n text-align: center;\n height: 40px;\n font-family: ", ";\n font-size: ", ";\n border-radius: ", ";\n font-weight: 500;\n }\n\n .cds--btn--primary {\n background: ", ";\n color: ", ";\n }\n\n *:focus {\n outline: 2px solid\n ", " !important;\n outline-offset: 0;\n }\n .cds--overflow-menu-options__btn:focus,\n .cds--overflow-menu:focus,\n .cds--overflow-menu__trigger:focus,\n .toolbar-control:focus {\n outline: 2px solid\n ", " !important;\n }\n div.cds--cc--legend.clickable\n div.legend-item:not(.additional):focus\n div.checkbox,\n div.cds--cc--legend.clickable\n div.legend-item:not(.additional):hover\n div.checkbox {\n border: ", ";\n }\n div.cds--cc--legend.clickable\n div.legend-item:not(.additional):hover\n div.checkbox {\n box-shadow: 0 0 0 2px\n ", " !important;\n }\n\n .cds--btn--primary {\n &:focus {\n outline: 2px solid\n ", ";\n }\n outline-offset: 2px;\n border: none;\n box-shadow: none;\n }\n .cds--modal-header {\n background: ", ";\n margin-bottom: 0;\n border-bottom: 1px solid\n ", ";\n }\n .cds--modal-header__heading {\n font-weight: 600;\n }\n\n .cds--modal-close {\n position: absolute;\n top: 0;\n right: 0;\n &:focus {\n outline: 2px solid\n ", ";\n border-color: none;\n }\n outline-offset: 0;\n border: none;\n }\n }\n\n .cds--modal-footer.cds--modal-footer {\n display: flex;\n align-items: center;\n border-top: 1px solid\n ", ";\n background: ", " !important;\n }\n .layout-child.header {\n height: auto !important;\n p {\n text-overflow: inherit;\n overflow: auto;\n white-space: normal;\n }\n }\n\n &.has-magma-toolbar .cds--cc--title p.title {\n visibility: hidden;\n }\n\n svg:not(:root) {\n overflow: visible;\n }\n\n .cds--cc--chart-wrapper text {\n font-size: ", ";\n }\n\n g.center text,\n .pie-label {\n fill: ", ";\n }\n\n // Zoom responsive tweaks\n\n @media screen and (max-width: 760px) {\n .cds--modal-container {\n overflow-y: auto;\n }\n .cds--chart-holder .cds--modal .cds--modal-container .cds--modal-content {\n overflow: visible;\n }\n .cds--chart-holder\n .cds--modal\n .cds--modal-container\n .cds--modal-content\n table\n th {\n position: relative;\n }\n }\n"])), function (props) {
29891
29893
  return props.isInverse
29892
29894
  ? props.theme.colors.primary700
29893
29895
  : props.theme.colors.neutral100;
@@ -30322,6 +30324,42 @@
30322
30324
  }
30323
30325
  }, []);
30324
30326
  var chartTitle = options.title || toolbarI18n.defaultTitle;
30327
+ var legendLabel = "".concat(ariaLabel || chartTitle, ". ").concat(toolbarI18n.legendInstructions);
30328
+ React__default__namespace.useEffect(function () {
30329
+ var container = internalRef.current;
30330
+ if (!container)
30331
+ return;
30332
+ var applyListSemantics = function (legend) {
30333
+ legend.removeAttribute('aria-label');
30334
+ legend.setAttribute('role', 'list');
30335
+ legend
30336
+ .querySelectorAll('.legend-item')
30337
+ .forEach(function (item) { return item.setAttribute('role', 'listitem'); });
30338
+ };
30339
+ var wrapLegend = function () {
30340
+ var legend = container.querySelector('.cds--cc--legend');
30341
+ if (!legend)
30342
+ return;
30343
+ applyListSemantics(legend);
30344
+ var parent = legend.parentElement;
30345
+ if ((parent === null || parent === void 0 ? void 0 : parent.tagName) === 'FIELDSET') {
30346
+ var existingCaption = parent.querySelector('legend');
30347
+ if (existingCaption)
30348
+ existingCaption.textContent = legendLabel;
30349
+ return;
30350
+ }
30351
+ var fieldset = document.createElement('fieldset');
30352
+ var caption = document.createElement('legend');
30353
+ fieldset.className = 'cds--cc--legend-fieldset';
30354
+ caption.textContent = legendLabel;
30355
+ legend.before(fieldset);
30356
+ fieldset.append(caption, legend);
30357
+ };
30358
+ wrapLegend();
30359
+ var observer = new MutationObserver(wrapLegend);
30360
+ observer.observe(container, { childList: true, subtree: true });
30361
+ return function () { return observer.disconnect(); };
30362
+ }, [legendLabel]);
30325
30363
  var handleModalDownloadCsv = React__default__namespace.useCallback(function () {
30326
30364
  downloadCsv(dataSet, chartTitle);
30327
30365
  }, [dataSet, chartTitle]);
@@ -30371,6 +30409,24 @@
30371
30409
  type: 'none',
30372
30410
  } }) }), (chartToolbar ? { toolbar: { enabled: false } } : {}));
30373
30411
  var ChartType = allCharts[type];
30412
+ React__default__namespace.useEffect(function () {
30413
+ var timer = setTimeout(function () {
30414
+ if (internalRef.current) {
30415
+ internalRef.current
30416
+ .querySelectorAll('g[aria-label]')
30417
+ .forEach(function (g) {
30418
+ var role = g.getAttribute('role');
30419
+ if (!role) {
30420
+ g.setAttribute('role', 'img');
30421
+ }
30422
+ else if (role === 'graphics-object group') {
30423
+ g.setAttribute('role', 'graphics-object');
30424
+ }
30425
+ });
30426
+ }
30427
+ }, 0);
30428
+ return function () { return clearTimeout(timer); };
30429
+ }, [type, dataSet]);
30374
30430
  var groupsLength = Object.keys(buildColors()).length;
30375
30431
  var showTable = (chartToolbar === null || chartToolbar === void 0 ? void 0 : chartToolbar.showAsTable) !== false;
30376
30432
  return (React__default__namespace.createElement(FullscreenRoot, { ref: mergedRef, isInverse: isInverse, theme: theme },