@agilemotion/oui-react-js 2.0.18 → 2.0.20

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.
@@ -229,7 +229,7 @@ const Window = props => {
229
229
  paper.style.overflow = 'hidden';
230
230
  } else {
231
231
  paper.style.width = '322px';
232
- paper.style.height = 'calc(100% - 80px)';
232
+ paper.style.height = 'calc(100% - 68px)';
233
233
  paper.style.boxShadow = 'unset';
234
234
  paper.style.borderRadius = '4px';
235
235
  paper.style.left = 'unset';
@@ -428,4 +428,4 @@ const Window = props => {
428
428
  }))))))), children)))));
429
429
  };
430
430
  var _default = exports.default = Window;
431
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3REcmFnZ2FibGUiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX1BhcGVyIiwiX0ljb24iLCJfSWNvbkJ1dHRvbiIsIl9BcHBsaWNhdGlvbk1hbmFnZXIiLCJfV2luZG93RGlhbG9nIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwidCIsIldlYWtNYXAiLCJyIiwibiIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsImhhcyIsImdldCIsInNldCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiX2V4dGVuZHMiLCJhc3NpZ24iLCJiaW5kIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiYXBwbHkiLCJtaW5pbWl6ZVdpZHRoIiwiTU9CSUxFX0JSRUFLUE9JTlQiLCJpc01vYmlsZVdpZHRoIiwid2luZG93IiwiaW5uZXJXaWR0aCIsIlBhcGVyQ29tcG9uZW50IiwicHJvcHMiLCJub2RlUmVmIiwidXNlUmVmIiwiYm91bmRzIiwic2V0Qm91bmRzIiwidXNlU3RhdGUiLCJsZWZ0IiwicmlnaHQiLCJ0b3AiLCJib3R0b20iLCJoYW5kbGVTdGFydCIsImRhdGEiLCJjb25zb2xlIiwibG9nIiwibm9kZSIsIm9mZnNldFRvcCIsImlubmVySGVpZ2h0IiwiY3JlYXRlRWxlbWVudCIsInJlZiIsIldpbmRvdyIsImNoaWxkcmVuIiwib3BlbiIsIm1pbmltaXphYmxlIiwiZGlzcGxheVN0YXRlIiwic2V0RGlzcGxheVN0YXRlIiwid2luZG93VHJhbnNmb3JtVmFsdWUiLCJzZXRXaW5kb3dUcmFuc2Zvcm1WYWx1ZSIsImlzTW9iaWxlIiwic2V0SXNNb2JpbGUiLCJ1c2VFZmZlY3QiLCJvblJlc2l6ZSIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiY29sbGFwc2VkIiwibGVmdE9mZnNldFJlZiIsImxlZnRPZmZzZXQiLCJjdXJyZW50IiwiZGlzcGxheVN0YXRlUmVmIiwiYXBwbGljYXRpb25NYW5hZ2VyIiwidXBkYXRlQ29udGV4dCIsIndpbmRvd0Rpc3BsYXlTdGF0ZSIsImFkZEFwcGxpY2F0aW9uQ29udGV4dFN1YnNjcmlwdGlvbiIsImhhbmRsZXIiLCJpZCIsIm9uQ29udGV4dENoYW5nZSIsImNvbnRleHQiLCJuZXdWYWx1ZXMiLCJrZXlzIiwiZmluZCIsImtleSIsIm1heGltaXplVmlldyIsIm1pbmltaXplVmlldyIsInBpblZpZXciLCJ0aGVuIiwiaW5pdGlhbENvbnRleHQiLCJyYWYiLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJkaXNwYXRjaEV2ZW50IiwiRXZlbnQiLCJjYW5jZWxBbmltYXRpb25GcmFtZSIsImdldE1pbmltaXplZFN0eWxlIiwidHJhbnNmb3JtIiwiYmFja2dyb3VuZENvbG9yIiwid2lkdGgiLCJtYXhXaWR0aCIsImhlaWdodCIsIm1hcmdpbiIsImdldE1heGltaXplZFN0eWxlIiwicG9zaXRpb24iLCJnZXRDb2xsYXBzZWRTdHlsZSIsIm1pbldpZHRoIiwiYm9yZGVyUmFkaXVzIiwib3ZlcmZsb3ciLCJib3hTaGFkb3ciLCJnZXRQaW5uZWRTdHlsZSIsInVuZGVmaW5lZCIsInBpbm5hYmxlIiwicGFwZXIiLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwic3R5bGUiLCJoZWFkZXIiLCJnZXRFbGVtZW50c0J5Q2xhc3NOYW1lIiwiZ2V0RWxlbWVudHNCeVRhZ05hbWUiLCJjb2xvciIsIm9uUGlubmVkIiwicmVtb3ZlUHJvcGVydHkiLCJib3JkZXIiLCJjdXJzb3IiLCJGcmFnbWVudCIsIm1heEhlaWdodCIsIm92ZXJmbG93WCIsIm92ZXJmbG93WSIsImRpc3BsYXkiLCJkaXNhYmxlRW5mb3JjZUZvY3VzIiwib25DbG9zZSIsImtlZXBNb3VudGVkIiwiaGlkZUJhY2tkcm9wIiwiY2xhc3NOYW1lIiwiY29udGFpbmVyQ2xhc3NOYW1lIiwiUGFwZXJQcm9wcyIsImRpc2FibGVkIiwiY29uY2F0Iiwib25DbGljayIsIm9uUGluIiwibWFyZ2luVG9wIiwibWFyZ2luUmlnaHQiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbGF5b3V0L1dpbmRvdy5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7dXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgJy4vV2luZG93LmNzcyc7XG5pbXBvcnQgRHJhZ2dhYmxlIGZyb20gJ3JlYWN0LWRyYWdnYWJsZSc7XG5pbXBvcnQgUGFwZXIgZnJvbSAnQG11aS9tYXRlcmlhbC9QYXBlcic7XG5pbXBvcnQgSWNvbiBmcm9tICcuLi9JY29uJztcbmltcG9ydCBJY29uQnV0dG9uIGZyb20gJ0BtdWkvbWF0ZXJpYWwvSWNvbkJ1dHRvbic7XG5pbXBvcnQgYXBwbGljYXRpb25NYW5hZ2VyIGZyb20gJy4uLy4uL0FwcGxpY2F0aW9uTWFuYWdlcic7XG5pbXBvcnQgV2luZG93RGlhbG9nIGZyb20gXCIuL1dpbmRvd0RpYWxvZ1wiO1xuXG5jb25zdCBtaW5pbWl6ZVdpZHRoID0gJzg0OCc7XG4vLyBCZWxvdyB0aGlzIHZpZXdwb3J0IHdpZHRoIGEgMzIwcHggcGlubmVkIHdpbmRvdyBzd2FsbG93cyB0aGUgd2hvbGUgcGhvbmVcbi8vIHNjcmVlbiwgc28gcGlubmluZyBjb2xsYXBzZXMgdG8gYSBzbWFsbCBmbG9hdGluZyBwaWxsICh1bnBpbiBpY29uIG9ubHkpLlxuY29uc3QgTU9CSUxFX0JSRUFLUE9JTlQgPSA2MDA7XG5jb25zdCBpc01vYmlsZVdpZHRoID0gKCkgPT4gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93LmlubmVyV2lkdGggPCBNT0JJTEVfQlJFQUtQT0lOVDtcbmNvbnN0IFBhcGVyQ29tcG9uZW50ID0gKHByb3BzKSA9PiB7XG5cbiAgICBjb25zdCBub2RlUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IFtib3VuZHMsIHNldEJvdW5kc10gPSB1c2VTdGF0ZSh7XG4gICAgICAgIGxlZnQ6IDAsXG4gICAgICAgIHJpZ2h0OiAwLFxuICAgICAgICB0b3A6IDAsXG4gICAgICAgIGJvdHRvbTogMFxuICAgIH0pO1xuXG4gICAgY29uc3QgaGFuZGxlU3RhcnQgPSAoZSwgZGF0YSkgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZyhcIkRSQUcgU1RBUlRcIik7XG4gICAgICAgIGlmICghZGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy9jb25zdCB4ID0gZGF0YS5ub2RlLm9mZnNldExlZnQgLSBkYXRhLm5vZGUub2Zmc2V0V2lkdGg7XG4gICAgICAgIGNvbnN0IHRvcCA9IC1kYXRhLm5vZGUub2Zmc2V0VG9wICsgNjQ7XG4gICAgICAgIGNvbnN0IGJvdHRvbSA9IHdpbmRvdy5pbm5lckhlaWdodCAtIChkYXRhLm5vZGUub2Zmc2V0VG9wICsgNjQpO1xuXG4gICAgICAgIHNldEJvdW5kcyh7XG4gICAgICAgICAgICBsZWZ0OiAwLFxuICAgICAgICAgICAgcmlnaHQ6IDAsXG4gICAgICAgICAgICB0b3A6IHRvcCxcbiAgICAgICAgICAgIGJvdHRvbTogYm90dG9tXG4gICAgICAgIH0pO1xuXG4gICAgfTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxQYXBlciB7Li4ucHJvcHN9IHJlZj17bm9kZVJlZn0vPlxuICAgICAgICAvKjxEcmFnZ2FibGVcbiAgICAgICAgICAgIGRpc2FibGVkPXtwcm9wcy5kaXNhYmxlZH1cbiAgICAgICAgICAgIGJvdW5kcz17Ym91bmRzfVxuICAgICAgICAgICAgb25TdGFydD17aGFuZGxlU3RhcnR9XG4gICAgICAgICAgICBoYW5kbGU9XCIjbWVldGluZy13aW5kb3ctaGVhZGVyXCJcbiAgICAgICAgICAgIGNhbmNlbD17J1tjbGFzcyo9XCJNdWlEaWFsb2dDb250ZW50LXJvb3RcIl0nfVxuICAgICAgICAgICAgbm9kZVJlZj17bm9kZVJlZn1cbiAgICAgICAgPlxuICAgICAgICAgICAgPFBhcGVyIHsuLi5wcm9wc30gcmVmPXtub2RlUmVmfSBzdHlsZT17e21pbldpZHRoOiAnMzIwcHgnfX0vPlxuICAgICAgICA8L0RyYWdnYWJsZT4qL1xuICAgICk7XG59O1xuXG5jb25zdCBXaW5kb3cgPSAocHJvcHMpID0+IHtcblxuICAgIGNvbnN0IHtcbiAgICAgICAgY2hpbGRyZW4sXG4gICAgICAgIG9wZW4sXG4gICAgICAgIG1pbmltaXphYmxlXG4gICAgfSA9IHByb3BzO1xuICAgIGNvbnN0IFtkaXNwbGF5U3RhdGUsIHNldERpc3BsYXlTdGF0ZV0gPSB1c2VTdGF0ZShwcm9wcy5kaXNwbGF5U3RhdGUpO1xuICAgIGNvbnN0IFt3aW5kb3dUcmFuc2Zvcm1WYWx1ZSwgc2V0V2luZG93VHJhbnNmb3JtVmFsdWVdID0gdXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3QgW2lzTW9iaWxlLCBzZXRJc01vYmlsZV0gPSB1c2VTdGF0ZShpc01vYmlsZVdpZHRoKCkpO1xuXG4gICAgLy8gVHJhY2sgdmlld3BvcnQgd2lkdGggc28gYSBwaW5uZWQgd2luZG93IGNvbGxhcHNlcy9leHBhbmRzIG9uIHJvdGF0ZS9yZXNpemUuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgY29uc3Qgb25SZXNpemUgPSAoKSA9PiBzZXRJc01vYmlsZShpc01vYmlsZVdpZHRoKCkpO1xuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgb25SZXNpemUpO1xuICAgICAgICByZXR1cm4gKCkgPT4gd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIG9uUmVzaXplKTtcbiAgICB9LCBbXSk7XG5cbiAgICAvLyBDb2xsYXBzZWQgPSBwaW5uZWQgb24gYSBwaG9uZTogc2hyaW5rIHRvIGEgcGlsbCwga2VlcCBldmVyeXRoaW5nIG1vdW50ZWQuXG4gICAgY29uc3QgY29sbGFwc2VkID0gaXNNb2JpbGUgJiYgZGlzcGxheVN0YXRlID09PSAnUElOTkVEJztcblxuICAgIC8vIFRoZSBjb250ZXh0IHN1YnNjcmlwdGlvbiBiZWxvdyBpcyByZWdpc3RlcmVkIE9OQ0Ugb24gbW91bnQsIHNvIHRoZVxuICAgIC8vIG1heGltaXplL21pbmltaXplL3BpbiBjbG9zdXJlcyBpdCBjYWxscyB3b3VsZCBvdGhlcndpc2UgY2FwdHVyZSBtb3VudC10aW1lXG4gICAgLy8gcHJvcHMvc3RhdGUuIE1pcnJvciB0aGUgbGl2ZSB2YWx1ZXMgaW50byByZWZzIHNvIHRob3NlIGltcGVyYXRpdmUgaGFuZGxlcnNcbiAgICAvLyBhbHdheXMgcmVhZCB0aGUgQ1VSUkVOVCBkcmF3ZXIgb2Zmc2V0ICsgZGlzcGxheSBzdGF0ZS4gKFdpdGhvdXQgdGhpcyxcbiAgICAvLyBwaW4gLT4gY2xvc2UgZHJhd2VyIC0+IHVucGluIHJlc3RvcmVzIHRoZSB3aW5kb3cgdG8gdGhlIHN0YWxlIG9wZW4tZHJhd2VyXG4gICAgLy8gbGVmdCBvZmZzZXQgaW5zdGVhZCBvZiB0aGUgY29sbGFwc2VkIG1pbmktZHJhd2VyIHBvc2l0aW9uLilcbiAgICBjb25zdCBsZWZ0T2Zmc2V0UmVmID0gdXNlUmVmKHByb3BzLmxlZnRPZmZzZXQpO1xuICAgIGxlZnRPZmZzZXRSZWYuY3VycmVudCA9IHByb3BzLmxlZnRPZmZzZXQ7XG4gICAgY29uc3QgZGlzcGxheVN0YXRlUmVmID0gdXNlUmVmKGRpc3BsYXlTdGF0ZSk7XG4gICAgZGlzcGxheVN0YXRlUmVmLmN1cnJlbnQgPSBkaXNwbGF5U3RhdGU7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAocHJvcHMuZGlzcGxheVN0YXRlKSB7XG4gICAgICAgICAgICBzZXREaXNwbGF5U3RhdGUocHJvcHMuZGlzcGxheVN0YXRlKTtcbiAgICAgICAgICAgIGFwcGxpY2F0aW9uTWFuYWdlci51cGRhdGVDb250ZXh0KHt3aW5kb3dEaXNwbGF5U3RhdGU6IHByb3BzLmRpc3BsYXlTdGF0ZX0pO1xuICAgICAgICB9XG4gICAgfSwgW3Byb3BzLmRpc3BsYXlTdGF0ZV0pO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLmFkZEFwcGxpY2F0aW9uQ29udGV4dFN1YnNjcmlwdGlvbih7XG4gICAgICAgICAgICBoYW5kbGVyOiB7XG4gICAgICAgICAgICAgICAgZ2V0IGlkKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3dpbmRvdyc7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBvbkNvbnRleHRDaGFuZ2U6IChjb250ZXh0LCBuZXdWYWx1ZXMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKE9iamVjdC5rZXlzKG5ld1ZhbHVlcylcbiAgICAgICAgICAgICAgICAgICAgICAgIC5maW5kKChrZXkpID0+IGtleSA9PT0gJ3dpbmRvd0Rpc3BsYXlTdGF0ZScpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnTUlOIDogJyArIG5ld1ZhbHVlcy53aW5kb3dEaXNwbGF5U3RhdGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5ld1ZhbHVlcy53aW5kb3dEaXNwbGF5U3RhdGUgPT09ICdNQVhJTUlaRUQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4aW1pemVWaWV3KG51bGwsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobmV3VmFsdWVzLndpbmRvd0Rpc3BsYXlTdGF0ZSA9PT0gJ01JTklNSVpFRCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5pbWl6ZVZpZXcobnVsbCwgZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChuZXdWYWx1ZXMud2luZG93RGlzcGxheVN0YXRlID09PSAnUElOTkVEJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpblZpZXcobnVsbCwgZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KS50aGVuKChpbml0aWFsQ29udGV4dCkgPT4ge1xuICAgICAgICAgICAgc2V0RGlzcGxheVN0YXRlKGluaXRpYWxDb250ZXh0ID8gaW5pdGlhbENvbnRleHQud2luZG93RGlzcGxheVN0YXRlIDogJ01BWElNSVpFRCcpO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICB9O1xuICAgIH0sIFtdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChkaXNwbGF5U3RhdGUgPT09ICdNQVhJTUlaRUQnKSB7XG4gICAgICAgICAgICBtYXhpbWl6ZVZpZXcobnVsbCk7XG4gICAgICAgIH0gZWxzZSBpZiAoZGlzcGxheVN0YXRlID09PSAnTUlOSU1JWkVEJykge1xuICAgICAgICAgICAgbWluaW1pemVWaWV3KG51bGwpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGluVmlldyhudWxsKVxuICAgICAgICB9XG4gICAgICAgIC8vIEFmdGVyIHRoZSBQYXBlciByZXNpemVzLCBudWRnZSB0aGUgY29udGVudCB0byByZS1tZWFzdXJlLiBUaGUgQ0RVSVxuICAgICAgICAvLyB2aWV3IGxheXMgb3V0IGFnYWluc3QgdGhlIGF2YWlsYWJsZSB3aWR0aCBvbmNlIGFuZCBvbmx5IHJlY29tcHV0ZXMgb25cbiAgICAgICAgLy8gYSB3aW5kb3cgcmVzaXplIOKAlCBzbyBNSU7ihpJNQVggKG9yIGEgZHJhd2VyIGZvbGQpIG90aGVyd2lzZSBsZWF2ZXMgaXRcbiAgICAgICAgLy8gc2l6ZWQgdG8gdGhlIHByZXZpb3VzIGRpbWVuc2lvbnMuIHJBRiBsZXRzIHRoZSBuZXcgc2l6ZSBzZXR0bGUgZmlyc3QuXG4gICAgICAgIGNvbnN0IHJhZiA9IHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ3Jlc2l6ZScpKSk7XG4gICAgICAgIHJldHVybiAoKSA9PiBjYW5jZWxBbmltYXRpb25GcmFtZShyYWYpO1xuICAgICAgICAvLyBSZS1ydW4gb24gbGVmdE9mZnNldCB0b28gc28gYSBtYXhpbWl6ZWQgd2luZG93IHJlLWFsaWducyB3aGVuIHRoZVxuICAgICAgICAvLyBtZW51IGRyYXdlciBmb2xkcy9leHBhbmRzIChkcmF3ZXIgd2lkdGggY2hhbmdlcyDihpIgcmVwb3NpdGlvbikuXG4gICAgfSwgW2Rpc3BsYXlTdGF0ZSwgcHJvcHMubGVmdE9mZnNldF0pO1xuXG4gICAgY29uc3QgZ2V0TWluaW1pemVkU3R5bGUgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGUoMCwgMCknLFxuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnI0ZGRkZGRicsXG4gICAgICAgICAgICB3aWR0aDogbWluaW1pemVXaWR0aCArICdweCcsXG4gICAgICAgICAgICBtYXhXaWR0aDogJ3Vuc2V0JyxcbiAgICAgICAgICAgIGhlaWdodDogJzUwMHB4JyxcbiAgICAgICAgICAgIG1hcmdpbjogJzAgMTZweCAxNnB4IDE2cHgnXG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIGNvbnN0IGdldE1heGltaXplZFN0eWxlID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiAndHJhbnNsYXRlKDAsIDApJyxcbiAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJyNGRkZGRkYnLFxuICAgICAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgICAgICAvLyBTaXQganVzdCBiZWxvdyB0aGUgZml4ZWQgZGFzaGJvYXJkIGhlYWRlciAoNjRweCkgc28gdGhlIHdpbmRvd1xuICAgICAgICAgICAgLy8gZG9lc24ndCBlbmNyb2FjaCBvbiBpdC4gRGVjbGFyZWQgaGVyZSBiZWNhdXNlIGdldE1heGltaXplZFN0eWxlIGlzXG4gICAgICAgICAgICAvLyB0aGUgYXV0aG9yaXRhdGl2ZSBpbmxpbmUgc3R5bGUg4oCUIGEgcmVuZGVyIHdpdGggbm8gYHRvcGAgd291bGQgY2xlYXJcbiAgICAgICAgICAgIC8vIGFueSBpbXBlcmF0aXZlbHktc2V0IHZhbHVlIGFuZCBmYWxsIGJhY2sgdG8gdGhlIDQwcHggY2xhc3MuXG4gICAgICAgICAgICB0b3A6ICc2NHB4JyxcbiAgICAgICAgICAgIGxlZnQ6IHByb3BzLmxlZnRPZmZzZXQsXG4gICAgICAgICAgICByaWdodDogJ3Vuc2V0JyxcbiAgICAgICAgICAgIC8vIE1pcnJvciB0aGUgbWFpbiBWaWV3UG9ydDogc3RhcnQgYXQgdGhlIGRyYXdlciB3aWR0aCwgbGVhdmUgYSAxMnB4XG4gICAgICAgICAgICAvLyByaWdodCBnYXAuIEV4cGxpY2l0IHdpZHRoIChub3QgJ3Vuc2V0Jykgc28gdGhlIGNvbnRlbnQgYWx3YXlzXG4gICAgICAgICAgICAvLyByZWZsb3dzIHRvIGZ1bGwgc2l6ZSDigJQgZml4ZXMgdGhlIE1JTuKGkk1BWCBcInN0dWNrIHNocnVua1wiIGJ1Zy5cbiAgICAgICAgICAgIHdpZHRoOiAnY2FsYygxMDAlIC0gJyArIHByb3BzLmxlZnRPZmZzZXQgKyAnIC0gMTJweCknLFxuICAgICAgICAgICAgbWF4V2lkdGg6ICd1bnNldCcsXG4gICAgICAgICAgICBoZWlnaHQ6ICdjYWxjKDEwMCUgLSA4OHB4KScsXG4gICAgICAgICAgICBtYXJnaW46ICcwJ1xuICAgICAgICB9O1xuICAgIH07XG5cbiAgICAvLyBBIHNtYWxsIGZsb2F0aW5nIHBpbGwgaW4gdGhlIGJvdHRvbS1yaWdodCB0aGF0IHNob3dzIG9ubHkgdGhlIHVucGluIGljb24uXG4gICAgLy8gTm90aGluZyBpcyB1bm1vdW50ZWQg4oCUIHRoZSBtZWV0aW5nIGNvbnRlbnQgKGFuZCBpdHMgbWVkaWEgc3RyZWFtcyArIGV2ZW50XG4gICAgLy8gc3Vic2NyaXB0aW9ucykgc3RheXMgaW4gdGhlIERPTSBiZWhpbmQgaXQsIGp1c3QgaGlkZGVuIHZpYSBkaXNwbGF5Om5vbmUuXG4gICAgY29uc3QgZ2V0Q29sbGFwc2VkU3R5bGUgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGUoMCwgMCknLFxuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnI0ZGRkZGRicsXG4gICAgICAgICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgICAgICAgIHRvcDogJ3Vuc2V0JyxcbiAgICAgICAgICAgIGxlZnQ6ICd1bnNldCcsXG4gICAgICAgICAgICByaWdodDogJzEycHgnLFxuICAgICAgICAgICAgYm90dG9tOiAnMTJweCcsXG4gICAgICAgICAgICB3aWR0aDogJzU2cHgnLFxuICAgICAgICAgICAgbWluV2lkdGg6ICc1NnB4JyxcbiAgICAgICAgICAgIG1heFdpZHRoOiAnNTZweCcsXG4gICAgICAgICAgICBoZWlnaHQ6ICc1NnB4JyxcbiAgICAgICAgICAgIGJvcmRlclJhZGl1czogJzI4cHgnLFxuICAgICAgICAgICAgbWFyZ2luOiAnMCcsXG4gICAgICAgICAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgICAgICAgICBib3hTaGFkb3c6ICcwIDRweCAxNnB4IHJnYmEoMCwwLDAsMC4zMiknXG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIGNvbnN0IGdldFBpbm5lZFN0eWxlID0gKCkgPT4ge1xuICAgICAgICBpZiAoaXNNb2JpbGUpIHtcbiAgICAgICAgICAgIHJldHVybiBnZXRDb2xsYXBzZWRTdHlsZSgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGUoMCwgMCknLFxuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnI0ZGRkZGRicsXG4gICAgICAgICAgICB3aWR0aDogJzMyMHB4JyxcbiAgICAgICAgICAgIGhlaWdodDogJ2NhbGMoMTAwJSAtIDg4cHgpJyxcbiAgICAgICAgICAgIG1hcmdpbjogJzAgOHB4J1xuICAgICAgICB9O1xuICAgIH07XG5cbiAgICBjb25zdCBwaW5WaWV3ID0gKGUsIHVwZGF0ZUNvbnRleHQgPSB0cnVlKSA9PiB7XG4gICAgICAgIGlmIChwcm9wcy5waW5uYWJsZSkge1xuICAgICAgICAgICAgbGV0IHBhcGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21lZXRpbmdEaWFsb2dQYXBlcicpO1xuICAgICAgICAgICAgaWYgKHBhcGVyKSB7XG4gICAgICAgICAgICAgICAgaWYgKHdpbmRvd1RyYW5zZm9ybVZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhcGVyLnN0eWxlLnRyYW5zZm9ybSA9IHdpbmRvd1RyYW5zZm9ybVZhbHVlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChpc01vYmlsZVdpZHRoKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gQ29sbGFwc2UgdG8gYSBib3R0b20tcmlnaHQgcGlsbC4gQ29udGVudCBzdGF5cyBtb3VudGVkIChoaWRkZW5cbiAgICAgICAgICAgICAgICAgICAgLy8gdmlhIGRpc3BsYXk6bm9uZSBpbiByZW5kZXIpLCBzbyBzdHJlYW1zL2xpc3RlbmVycyBhcmUgdW50b3VjaGVkLlxuICAgICAgICAgICAgICAgICAgICBwYXBlci5zdHlsZS53aWR0aCA9ICc1NnB4JztcbiAgICAgICAgICAgICAgICAgICAgcGFwZXIuc3R5bGUubWluV2lkdGggPSAnNTZweCc7XG4gICAgICAgICAgICAgICAgICAgIHBhcGVyLnN0eWxlLm1heFdpZHRoID0gJzU2cHgnO1xuICAgICAgICAgICAgICAgICAgICBwYXBlci5zdHlsZS5oZWlnaHQgPSAnNTZweCc7XG4gICAgICAgICAgICAgICAgICAgIHBhcGVyLnN0eWxlLmJvcmRlclJhZGl1cyA9ICcyOHB4JztcbiAgICAgICAgICAgICAgICAgICAgcGFwZXIuc3R5bGUuYm94U2hhZG93ID0gJzAgNHB4IDE2cHggcmdiYSgwLDAsMCwwLjMyKSc7XG4gICAgICAgICAgICAgICAgICAgIHBhcGVyLnN0eWxlLmxlZnQgPSAndW5zZXQnO1xuICAgICAgICAgICAgICAgICAgICBwYXBlci5zdHlsZS5yaWdodCA9ICcxMnB4JztcbiAgICAgICAgICAgICAgICAgICAgcGFwZXIuc3R5bGUudG9wID0gJ3Vuc2V0JztcbiAgICAgICAgICAgICAgICAgICAgcGFwZXIuc3R5bGUuYm90dG9tID0gJzEycHgnO1xuICAgICAgICAgICAgICAgICAgICBwYXBlci5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XG4gICAgICAgICAgICAgICAgICAgIHBhcGVyLnN0eWxlLm1hcmdpbiA9ICcwJztcbiAgICAgICAgICAgICAgICAgICAgcGFwZXIuc3R5bGUub3ZlcmZsb3cgPSAnaGlkZGVuJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBwYXBlci5zdHlsZS53aWR0aCA9ICczMjJweCc7XG4gICAgICAgICAgICAgICAgICAgIHBhcGVyLnN0eWxlLmhlaWdodCA9ICdjYWxjKDEwMCUgLSA4MHB4KSc7XG4gICAgICAgICAgICAgICAgICAgIHBhcGVyLnN0eWxlLmJveFNoYWRvdyA9ICd1bnNldCc7XG4gICAgICAgICAgICAgICAgICAgIHBhcGVyLnN0eWxlLmJvcmRlclJhZGl1cyA9ICc0cHgnO1xuICAgICAgICAgICAgICAgICAgICBwYXBlci5zdHlsZS5sZWZ0ID0gJ3Vuc2V0JztcbiAgICAgICAgICAgICAgICAgICAgcGFwZXIuc3R5bGUucmlnaHQgPSAnNHB4JztcbiAgICAgICAgICAgICAgICAgICAgcGFwZXIuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICAgICAgICAgICAgICAgICAgICBwYXBlci5zdHlsZS50b3AgPSAnMzJweCc7XG4gICAgICAgICAgICAgICAgICAgIHBhcGVyLnN0eWxlLmJvdHRvbSA9ICd1bnNldCc7XG4gICAgICAgICAgICAgICAgICAgIHBhcGVyLnN0eWxlLm1hcmdpbiA9ICczMnB4IDAnO1xuICAgICAgICAgICAgICAgICAgICBwYXBlci5zdHlsZS5tYXhXaWR0aCA9ICd1bnNldCc7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgbGV0IGhlYWRlciA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2RpYWxvZ0hlYWRlcicpWzBdO1xuICAgICAgICAgICAgICAgIGhlYWRlci5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYnV0dG9uJylbMF0uc3R5bGUuY29sb3IgPSAnIzAwMDAwMCc7XG5cbiAgICAgICAgICAgICAgICBpZiAoZGlzcGxheVN0YXRlUmVmLmN1cnJlbnQgIT09ICdQSU5ORUQnKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldERpc3BsYXlTdGF0ZSgnUElOTkVEJyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHVwZGF0ZUNvbnRleHQpIHtcbiAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLnVwZGF0ZUNvbnRleHQoe3dpbmRvd0Rpc3BsYXlTdGF0ZTogJ1BJTk5FRCd9LCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcHJvcHMub25QaW5uZWQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBtaW5pbWl6ZVZpZXcgPSAoZSwgdXBkYXRlQ29udGV4dCA9IHRydWUpID0+IHtcbiAgICAgICAgaWYgKG1pbmltaXphYmxlKSB7XG4gICAgICAgICAgICBsZXQgcGFwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWVldGluZ0RpYWxvZ1BhcGVyJyk7XG4gICAgICAgICAgICBpZiAocGFwZXIpIHtcbiAgICAgICAgICAgICAgICBpZiAod2luZG93VHJhbnNmb3JtVmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFwZXIuc3R5bGUudHJhbnNmb3JtID0gd2luZG93VHJhbnNmb3JtVmFsdWU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcGFwZXIuc3R5bGUucmVtb3ZlUHJvcGVydHkoJy0tUGFwZXItc2hhZG93Jyk7XG4gICAgICAgICAgICAgICAgcGFwZXIuc3R5bGUuYm94U2hhZG93ID0gJ3Vuc2V0JztcbiAgICAgICAgICAgICAgICBwYXBlci5zdHlsZS53aWR0aCA9IG1pbmltaXplV2lkdGggKyAncHgnO1xuICAgICAgICAgICAgICAgIHBhcGVyLnN0eWxlLmhlaWdodCA9ICc1MDBweCc7XG4gICAgICAgICAgICAgICAgcGFwZXIuc3R5bGUubWFyZ2luID0gJzAgMTZweCAxNnB4IDE2cHgnO1xuICAgICAgICAgICAgICAgIHBhcGVyLnN0eWxlLnBvc2l0aW9uID0gJ3JlbGF0aXZlJztcbiAgICAgICAgICAgICAgICBwYXBlci5zdHlsZS5ib3JkZXIgPSAndW5zZXQnO1xuICAgICAgICAgICAgICAgIC8vIENsZWFyIGxlZnRvdmVyIG1vYmlsZSBjb2xsYXBzZWQtcGlsbCBzdHlsZXMuXG4gICAgICAgICAgICAgICAgcGFwZXIuc3R5bGUucmVtb3ZlUHJvcGVydHkoJ21pbi13aWR0aCcpO1xuICAgICAgICAgICAgICAgIHBhcGVyLnN0eWxlLnJlbW92ZVByb3BlcnR5KCdib3JkZXItcmFkaXVzJyk7XG4gICAgICAgICAgICAgICAgcGFwZXIuc3R5bGUucmVtb3ZlUHJvcGVydHkoJ2JvdHRvbScpO1xuXG4gICAgICAgICAgICAgICAgbGV0IGhlYWRlciA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2RpYWxvZ0hlYWRlcicpWzBdO1xuICAgICAgICAgICAgICAgIGhlYWRlci5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYnV0dG9uJylbMF0uc3R5bGUuY29sb3IgPSAnIzAwMDAwMCc7XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21lZXRpbmctd2luZG93LWhlYWRlcicpLnN0eWxlLmN1cnNvciA9ICdtb3ZlJztcblxuICAgICAgICAgICAgICAgIGlmIChkaXNwbGF5U3RhdGVSZWYuY3VycmVudCAhPT0gJ01JTklNSVpFRCcpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0RGlzcGxheVN0YXRlKCdNSU5JTUlaRUQnKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAodXBkYXRlQ29udGV4dCkge1xuICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIudXBkYXRlQ29udGV4dCh7d2luZG93RGlzcGxheVN0YXRlOiAnTUlOSU1JWkVEJ30sIGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgbWF4aW1pemVWaWV3ID0gKGUsIHVwZGF0ZUNvbnRleHQgPSB0cnVlKSA9PiB7XG4gICAgICAgIGxldCBwYXBlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtZWV0aW5nRGlhbG9nUGFwZXInKTtcbiAgICAgICAgaWYgKHBhcGVyKSB7XG4gICAgICAgICAgICBzZXRXaW5kb3dUcmFuc2Zvcm1WYWx1ZShwYXBlci5zdHlsZS50cmFuc2Zvcm0pO1xuICAgICAgICAgICAgcGFwZXIuc3R5bGUucmVtb3ZlUHJvcGVydHkoJy0tUGFwZXItc2hhZG93Jyk7XG4gICAgICAgICAgICBwYXBlci5zdHlsZS5ib3hTaGFkb3cgPSAndW5zZXQnO1xuICAgICAgICAgICAgcGFwZXIuc3R5bGUudHJhbnNmb3JtID0gJ3RyYW5zbGF0ZSgwLCAwKSc7XG4gICAgICAgICAgICBwYXBlci5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAnI0ZGRkZGRic7XG4gICAgICAgICAgICAvLyBFeHBsaWNpdCB3aWR0aCB0aWVkIHRvIHRoZSBkcmF3ZXIgb2Zmc2V0IChtaXJyb3JzIHRoZSBtYWluXG4gICAgICAgICAgICAvLyBWaWV3UG9ydCkuIE5PVCAndW5zZXQnIOKAlCBhIGNvbnRlbnQtc2l6ZWQgYXV0byB3aWR0aCBpcyB3aGF0IGtlZXBzXG4gICAgICAgICAgICAvLyB0aGUgd2luZG93IHNocnVuayBhZnRlciBNSU7ihpJNQVguXG4gICAgICAgICAgICBwYXBlci5zdHlsZS53aWR0aCA9ICdjYWxjKDEwMCUgLSAnICsgbGVmdE9mZnNldFJlZi5jdXJyZW50ICsgJyAtIDEycHgpJztcbiAgICAgICAgICAgIHBhcGVyLnN0eWxlLm1heFdpZHRoID0gJ3Vuc2V0JztcbiAgICAgICAgICAgIHBhcGVyLnN0eWxlLmhlaWdodCA9ICdjYWxjKDEwMCUgLSA4OHB4KSc7XG4gICAgICAgICAgICBwYXBlci5zdHlsZS5tYXJnaW4gPSAnMCc7XG4gICAgICAgICAgICBwYXBlci5zdHlsZS5yaWdodCA9ICd1bnNldCc7XG4gICAgICAgICAgICBwYXBlci5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XG4gICAgICAgICAgICBwYXBlci5zdHlsZS50b3AgPSAnNjRweCc7XG4gICAgICAgICAgICAvLyBMZWZ0IGVkZ2UgPSB0aGUgbWVudSBkcmF3ZXIgd2lkdGggKGZvbGRzIGluIHJlYWwgdGltZSwgcmVhZCBmcm9tIGFcbiAgICAgICAgICAgIC8vIHJlZiBzbyB0aGUgb25jZS1yZWdpc3RlcmVkIGNvbnRleHQgc3Vic2NyaXB0aW9uIGlzbid0IHN0YWxlKSwgbm90XG4gICAgICAgICAgICAvLyB0aGUgc3RhdGljIC5zaWRlYmFyIGxvb2t1cC5cbiAgICAgICAgICAgIHBhcGVyLnN0eWxlLmxlZnQgPSBsZWZ0T2Zmc2V0UmVmLmN1cnJlbnQ7XG4gICAgICAgICAgICAvLyBDbGVhciBhbnkgbGVmdG92ZXIgc3R5bGVzIGZyb20gdGhlIG1vYmlsZSBjb2xsYXBzZWQgcGlsbCBzbyB0aGVcbiAgICAgICAgICAgIC8vIHJlc3RvcmVkIHdpbmRvdyBpc24ndCBzdHVjayByb3VuZGVkL3RpbnkuXG4gICAgICAgICAgICBwYXBlci5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnbWluLXdpZHRoJyk7XG4gICAgICAgICAgICBwYXBlci5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnYm9yZGVyLXJhZGl1cycpO1xuICAgICAgICAgICAgcGFwZXIuc3R5bGUucmVtb3ZlUHJvcGVydHkoJ2JvdHRvbScpO1xuXG4gICAgICAgICAgICBsZXQgaGVhZGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnZGlhbG9nSGVhZGVyJylbMF07XG4gICAgICAgICAgICBoZWFkZXIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2J1dHRvbicpWzBdLnN0eWxlLmNvbG9yID0gJ3JnYmEoMCwgMCwgMCwgMC41NCknO1xuICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21lZXRpbmctd2luZG93LWhlYWRlcicpLnN0eWxlLmN1cnNvciA9ICdkZWZhdWx0JztcblxuICAgICAgICAgICAgaWYgKGRpc3BsYXlTdGF0ZVJlZi5jdXJyZW50ICE9PSAnTUFYSU1JWkVEJykge1xuICAgICAgICAgICAgICAgIHNldERpc3BsYXlTdGF0ZSgnTUFYSU1JWkVEJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh1cGRhdGVDb250ZXh0KSB7XG4gICAgICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLnVwZGF0ZUNvbnRleHQoe3dpbmRvd0Rpc3BsYXlTdGF0ZTogJ01BWElNSVpFRCd9LCBmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICAgIDxkaXYgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgICAgICAgIGhlaWdodDogJzEwMCUnLFxuICAgICAgICAgICAgICAgIG1heEhlaWdodDogJzEwMCUnLFxuICAgICAgICAgICAgICAgIG92ZXJmbG93WDogJ2hpZGRlbicsXG4gICAgICAgICAgICAgICAgb3ZlcmZsb3dZOiAnYXV0bycsXG4gICAgICAgICAgICAgICAgZGlzcGxheTogJ25vbmUnLFxuICAgICAgICAgICAgICAgIGNvbG9yOiAnIzAwMDAwMCdcbiAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgIDxXaW5kb3dEaWFsb2dcbiAgICAgICAgICAgICAgICAgICAgbGVmdE9mZnNldD17cHJvcHMubGVmdE9mZnNldH1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZUVuZm9yY2VGb2N1c1xuICAgICAgICAgICAgICAgICAgICBvcGVuPXt0cnVlfVxuICAgICAgICAgICAgICAgICAgICBvbkNsb3NlPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMub25DbG9zZSgpO1xuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICBrZWVwTW91bnRlZFxuICAgICAgICAgICAgICAgICAgICBoaWRlQmFja2Ryb3A9e3RydWV9XG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT1cIm1lZXRpbmctd2luZG93LXRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1kZXNjcmliZWRieT1cIm1lZXRpbmctd2luZG93LWRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtwcm9wcy5jb250YWluZXJDbGFzc05hbWV9XG4gICAgICAgICAgICAgICAgICAgIFBhcGVyQ29tcG9uZW50PXtQYXBlckNvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgUGFwZXJQcm9wcz17e1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICdtZWV0aW5nRGlhbG9nUGFwZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBkaXNwbGF5U3RhdGUgPT09ICdNSU5JTUlaRUQnID8gJ3dpbmRvdy1wYXBlci1taW4nIDogZGlzcGxheVN0YXRlID09PSAnTUFYSU1JWkVEJyA/ICd3aW5kb3ctcGFwZXItbWF4JyA6ICd3aW5kb3ctcGFwZXItcGlubmVkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiBkaXNwbGF5U3RhdGUgPT09ICdNQVhJTUlaRUQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IGRpc3BsYXlTdGF0ZSA9PT0gJ01JTklNSVpFRCcgPyBnZXRNaW5pbWl6ZWRTdHlsZSgpIDogZGlzcGxheVN0YXRlID09PSAnTUFYSU1JWkVEJyA/IGdldE1heGltaXplZFN0eWxlKCkgOiBnZXRQaW5uZWRTdHlsZSgpXG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPXsnd2luZG93LWNvbnRlbnQnfSBzdHlsZT17e292ZXJmbG93OiAnaGlkZGVuJ319XG4gICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHsoZGlzcGxheVN0YXRlID09PSAnUElOTkVEJyA/ICd3aW5kb3ctcGlubmVkICcgOiAnJykgKyAndy0xMDAgaC0xMDAnfWB9PlxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIENvbGxhcHNlZCBwaWxsOiB0aGUgT05MWSB2aXNpYmxlIGNvbnRyb2wgaXMgdW5waW4gKHJlc3RvcmVzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHdpbmRvdykuIEV2ZXJ5dGhpbmcgZWxzZSBzdGF5cyBtb3VudGVkIGJlbG93LCBoaWRkZW4uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sbGFwc2VkICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IHByb3BzLm9uUGluKCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJVbnBpbiBtZWV0aW5nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3t3aWR0aDogJzU2cHgnLCBoZWlnaHQ6ICc1NnB4JywgY29sb3I6ICcjMDAwMDAwJ319XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SWNvbiBpZD17J01BWElNSVpFJ30vPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSWNvbkJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3t3aWR0aDogJzEwMCUnLCBoZWlnaHQ6ICcxMDAlJywgZGlzcGxheTogY29sbGFwc2VkID8gJ25vbmUnIDogJ2Jsb2NrJ319PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydtZWV0aW5nLXdpbmRvdy1oZWFkZXInfSBpZD1cIm1lZXRpbmctd2luZG93LWhlYWRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlTdGF0ZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnNDhweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnNDhweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAnLTJweCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnZGlhbG9nSGVhZGVyIHJvdyd9IHN0eWxlPXt7bWFyZ2luVG9wOiAnMjRweCd9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluaW1pemFibGUgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5U3RhdGUgPT09ICdNQVhJTUlaRUQnID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluaW1pemVWaWV3KGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luUmlnaHQ6ICc0cHgnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SWNvbiBpZD17J01JTklNSVpFJ30vPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhpbWl6ZVZpZXcoZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5SaWdodDogJzRweCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uIGlkPXsnTUFYSU1JWkUnfS8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMucGlubmFibGUgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLm9uUGluKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5SaWdodDogJzRweCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uIGlkPXsnTUFYSU1JWkUnfS8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlblxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvV2luZG93RGlhbG9nPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvPlxuICAgICk7XG59O1xuXG5l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QU07RUFBRSxHQUV2RG5GLFdBQVcsaUJBQ1gvRCxNQUFBLENBQUFZLE9BQUEsQ0FBQThDLGFBQUEsY0FFUU0sWUFBWSxLQUFLLFdBQVcsZ0JBQ3hCaEUsTUFBQSxDQUFBWSxPQUFBLENBQUE4QyxhQUFBLENBQUNuRCxXQUFBLENBQUFLLE9BQVU7SUFDUG9JLE9BQU8sRUFBR3RJLENBQUMsSUFBSztNQUNaa0YsWUFBWSxDQUFDbEYsQ0FBQyxDQUFDO0lBQ25CLENBQUU7SUFDRitHLEtBQUssRUFBRTtNQUNIMEIsV0FBVyxFQUFFO0lBQ2pCO0VBQUUsZ0JBRUZuSixNQUFBLENBQUFZLE9BQUEsQ0FBQThDLGFBQUEsQ0FBQ3BELEtBQUEsQ0FBQU0sT0FBSTtJQUFDd0UsRUFBRSxFQUFFO0VBQVcsQ0FBQyxDQUNkLENBQUMsZ0JBRWJwRixNQUFBLENBQUFZLE9BQUEsQ0FBQThDLGFBQUEsQ0FBQ25ELFdBQUEsQ0FBQUssT0FBVTtJQUNQb0ksT0FBTyxFQUFHdEksQ0FBQyxJQUFLO01BQ1ppRixZQUFZLENBQUNqRixDQUFDLENBQUM7SUFDbkIsQ0FBRTtJQUNGK0csS0FBSyxFQUFFO01BQ0gwQixXQUFXLEVBQUU7SUFDakI7RUFBRSxnQkFFRm5KLE1BQUEsQ0FBQVksT0FBQSxDQUFBOEMsYUFBQSxDQUFDcEQsS0FBQSxDQUFBTSxPQUFJO0lBQUN3RSxFQUFFLEVBQUU7RUFBVyxDQUFDLENBQ2QsQ0FFbkIsQ0FBQyxFQUdOM0MsS0FBSyxDQUFDNEUsUUFBUSxpQkFDZHJILE1BQUEsQ0FBQVksT0FBQSxDQUFBOEMsYUFBQSwyQkFDSTFELE1BQUEsQ0FBQVksT0FBQSxDQUFBOEMsYUFBQSxDQUFDbkQsV0FBQSxDQUFBSyxPQUFVO0lBQ1BvSSxPQUFPLEVBQUd0SSxDQUFDLElBQUs7TUFDWitCLEtBQUssQ0FBQ3dHLEtBQUssQ0FBQyxDQUFDO0lBQ2pCLENBQUU7SUFDRnhCLEtBQUssRUFBRTtNQUNIMEIsV0FBVyxFQUFFO0lBQ2pCO0VBQUUsZ0JBRUZuSixNQUFBLENBQUFZLE9BQUEsQ0FBQThDLGFBQUEsQ0FBQ3BELEtBQUEsQ0FBQU0sT0FBSTtJQUFDd0UsRUFBRSxFQUFFO0VBQVcsQ0FBQyxDQUNkLENBQ1gsQ0FFUixDQUNKLENBRVIsQ0FDSixDQUFDLEVBRUZ2QixRQUVDLENBQ0osQ0FDSyxDQUNiLENBQ1AsQ0FBQztBQUVYLENBQUM7QUFBQyxJQUFBdUYsUUFBQSxHQUFBQyxPQUFBLENBQUF6SSxPQUFBLEdBRWFnRCxNQUFNIiwiaWdub3JlTGlzdCI6W119
431
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3REcmFnZ2FibGUiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX1BhcGVyIiwiX0ljb24iLCJfSWNvbkJ1dHRvbiIsIl9BcHBsaWNhdGlvbk1hbmFnZXIiLCJfV2luZG93RGlhbG9nIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwidCIsIldlYWtNYXAiLCJyIiwibiIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsImhhcyIsImdldCIsInNldCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiX2V4dGVuZHMiLCJhc3NpZ24iLCJiaW5kIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiYXBwbHkiLCJtaW5pbWl6ZVdpZHRoIiwiTU9CSUxFX0JSRUFLUE9JTlQiLCJpc01vYmlsZVdpZHRoIiwid2luZG93IiwiaW5uZXJXaWR0aCIsIlBhcGVyQ29tcG9uZW50IiwicHJvcHMiLCJub2RlUmVmIiwidXNlUmVmIiwiYm91bmRzIiwic2V0Qm91bmRzIiwidXNlU3RhdGUiLCJsZWZ0IiwicmlnaHQiLCJ0b3AiLCJib3R0b20iLCJoYW5kbGVTdGFydCIsImRhdGEiLCJjb25zb2xlIiwibG9nIiwibm9kZSIsIm9mZnNldFRvcCIsImlubmVySGVpZ2h0IiwiY3JlYXRlRWxlbWVudCIsInJlZiIsIldpbmRvdyIsImNoaWxkcmVuIiwib3BlbiIsIm1pbmltaXphYmxlIiwiZGlzcGxheVN0YXRlIiwic2V0RGlzcGxheVN0YXRlIiwid2luZG93VHJhbnNmb3JtVmFsdWUiLCJzZXRXaW5kb3dUcmFuc2Zvcm1WYWx1ZSIsImlzTW9iaWxlIiwic2V0SXNNb2JpbGUiLCJ1c2VFZmZlY3QiLCJvblJlc2l6ZSIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiY29sbGFwc2VkIiwibGVmdE9mZnNldFJlZiIsImxlZnRPZmZzZXQiLCJjdXJyZW50IiwiZGlzcGxheVN0YXRlUmVmIiwiYXBwbGljYXRpb25NYW5hZ2VyIiwidXBkYXRlQ29udGV4dCIsIndpbmRvd0Rpc3BsYXlTdGF0ZSIsImFkZEFwcGxpY2F0aW9uQ29udGV4dFN1YnNjcmlwdGlvbiIsImhhbmRsZXIiLCJpZCIsIm9uQ29udGV4dENoYW5nZSIsImNvbnRleHQiLCJuZXdWYWx1ZXMiLCJrZXlzIiwiZmluZCIsImtleSIsIm1heGltaXplVmlldyIsIm1pbmltaXplVmlldyIsInBpblZpZXciLCJ0aGVuIiwiaW5pdGlhbENvbnRleHQiLCJyYWYiLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJkaXNwYXRjaEV2ZW50IiwiRXZlbnQiLCJjYW5jZWxBbmltYXRpb25GcmFtZSIsImdldE1pbmltaXplZFN0eWxlIiwidHJhbnNmb3JtIiwiYmFja2dyb3VuZENvbG9yIiwid2lkdGgiLCJtYXhXaWR0aCIsImhlaWdodCIsIm1hcmdpbiIsImdldE1heGltaXplZFN0eWxlIiwicG9zaXRpb24iLCJnZXRDb2xsYXBzZWRTdHlsZSIsIm1pbldpZHRoIiwiYm9yZGVyUmFkaXVzIiwib3ZlcmZsb3ciLCJib3hTaGFkb3ciLCJnZXRQaW5uZWRTdHlsZSIsInVuZGVmaW5lZCIsInBpbm5hYmxlIiwicGFwZXIiLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwic3R5bGUiLCJoZWFkZXIiLCJnZXRFbGVtZW50c0J5Q2xhc3NOYW1lIiwiZ2V0RWxlbWVudHNCeVRhZ05hbWUiLCJjb2xvciIsIm9uUGlubmVkIiwicmVtb3ZlUHJvcGVydHkiLCJib3JkZXIiLCJjdXJzb3IiLCJGcmFnbWVudCIsIm1heEhlaWdodCIsIm92ZXJmbG93WCIsIm92ZXJmbG93WSIsImRpc3BsYXkiLCJkaXNhYmxlRW5mb3JjZUZvY3VzIiwib25DbG9zZSIsImtlZXBNb3VudGVkIiwiaGlkZUJhY2tkcm9wIiwiY2xhc3NOYW1lIiwiY29udGFpbmVyQ2xhc3NOYW1lIiwiUGFwZXJQcm9wcyIsImRpc2FibGVkIiwiY29uY2F0Iiwib25DbGljayIsIm9uUGluIiwibWFyZ2luVG9wIiwibWFyZ2luUmlnaHQiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbGF5b3V0L1dpbmRvdy5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7dXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgJy4vV2luZG93LmNzcyc7XG5pbXBvcnQgRHJhZ2dhYmxlIGZyb20gJ3JlYWN0LWRyYWdnYWJsZSc7XG5pbXBvcnQgUGFwZXIgZnJvbSAnQG11aS9tYXRlcmlhbC9QYXBlcic7XG5pbXBvcnQgSWNvbiBmcm9tICcuLi9JY29uJztcbmltcG9ydCBJY29uQnV0dG9uIGZyb20gJ0BtdWkvbWF0ZXJpYWwvSWNvbkJ1dHRvbic7XG5pbXBvcnQgYXBwbGljYXRpb25NYW5hZ2VyIGZyb20gJy4uLy4uL0FwcGxpY2F0aW9uTWFuYWdlcic7XG5pbXBvcnQgV2luZG93RGlhbG9nIGZyb20gXCIuL1dpbmRvd0RpYWxvZ1wiO1xuXG5jb25zdCBtaW5pbWl6ZVdpZHRoID0gJzg0OCc7XG4vLyBCZWxvdyB0aGlzIHZpZXdwb3J0IHdpZHRoIGEgMzIwcHggcGlubmVkIHdpbmRvdyBzd2FsbG93cyB0aGUgd2hvbGUgcGhvbmVcbi8vIHNjcmVlbiwgc28gcGlubmluZyBjb2xsYXBzZXMgdG8gYSBzbWFsbCBmbG9hdGluZyBwaWxsICh1bnBpbiBpY29uIG9ubHkpLlxuY29uc3QgTU9CSUxFX0JSRUFLUE9JTlQgPSA2MDA7XG5jb25zdCBpc01vYmlsZVdpZHRoID0gKCkgPT4gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93LmlubmVyV2lkdGggPCBNT0JJTEVfQlJFQUtQT0lOVDtcbmNvbnN0IFBhcGVyQ29tcG9uZW50ID0gKHByb3BzKSA9PiB7XG5cbiAgICBjb25zdCBub2RlUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IFtib3VuZHMsIHNldEJvdW5kc10gPSB1c2VTdGF0ZSh7XG4gICAgICAgIGxlZnQ6IDAsXG4gICAgICAgIHJpZ2h0OiAwLFxuICAgICAgICB0b3A6IDAsXG4gICAgICAgIGJvdHRvbTogMFxuICAgIH0pO1xuXG4gICAgY29uc3QgaGFuZGxlU3RhcnQgPSAoZSwgZGF0YSkgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZyhcIkRSQUcgU1RBUlRcIik7XG4gICAgICAgIGlmICghZGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy9jb25zdCB4ID0gZGF0YS5ub2RlLm9mZnNldExlZnQgLSBkYXRhLm5vZGUub2Zmc2V0V2lkdGg7XG4gICAgICAgIGNvbnN0IHRvcCA9IC1kYXRhLm5vZGUub2Zmc2V0VG9wICsgNjQ7XG4gICAgICAgIGNvbnN0IGJvdHRvbSA9IHdpbmRvdy5pbm5lckhlaWdodCAtIChkYXRhLm5vZGUub2Zmc2V0VG9wICsgNjQpO1xuXG4gICAgICAgIHNldEJvdW5kcyh7XG4gICAgICAgICAgICBsZWZ0OiAwLFxuICAgICAgICAgICAgcmlnaHQ6IDAsXG4gICAgICAgICAgICB0b3A6IHRvcCxcbiAgICAgICAgICAgIGJvdHRvbTogYm90dG9tXG4gICAgICAgIH0pO1xuXG4gICAgfTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxQYXBlciB7Li4ucHJvcHN9IHJlZj17bm9kZVJlZn0vPlxuICAgICAgICAvKjxEcmFnZ2FibGVcbiAgICAgICAgICAgIGRpc2FibGVkPXtwcm9wcy5kaXNhYmxlZH1cbiAgICAgICAgICAgIGJvdW5kcz17Ym91bmRzfVxuICAgICAgICAgICAgb25TdGFydD17aGFuZGxlU3RhcnR9XG4gICAgICAgICAgICBoYW5kbGU9XCIjbWVldGluZy13aW5kb3ctaGVhZGVyXCJcbiAgICAgICAgICAgIGNhbmNlbD17J1tjbGFzcyo9XCJNdWlEaWFsb2dDb250ZW50LXJvb3RcIl0nfVxuICAgICAgICAgICAgbm9kZVJlZj17bm9kZVJlZn1cbiAgICAgICAgPlxuICAgICAgICAgICAgPFBhcGVyIHsuLi5wcm9wc30gcmVmPXtub2RlUmVmfSBzdHlsZT17e21pbldpZHRoOiAnMzIwcHgnfX0vPlxuICAgICAgICA8L0RyYWdnYWJsZT4qL1xuICAgICk7XG59O1xuXG5jb25zdCBXaW5kb3cgPSAocHJvcHMpID0+IHtcblxuICAgIGNvbnN0IHtcbiAgICAgICAgY2hpbGRyZW4sXG4gICAgICAgIG9wZW4sXG4gICAgICAgIG1pbmltaXphYmxlXG4gICAgfSA9IHByb3BzO1xuICAgIGNvbnN0IFtkaXNwbGF5U3RhdGUsIHNldERpc3BsYXlTdGF0ZV0gPSB1c2VTdGF0ZShwcm9wcy5kaXNwbGF5U3RhdGUpO1xuICAgIGNvbnN0IFt3aW5kb3dUcmFuc2Zvcm1WYWx1ZSwgc2V0V2luZG93VHJhbnNmb3JtVmFsdWVdID0gdXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3QgW2lzTW9iaWxlLCBzZXRJc01vYmlsZV0gPSB1c2VTdGF0ZShpc01vYmlsZVdpZHRoKCkpO1xuXG4gICAgLy8gVHJhY2sgdmlld3BvcnQgd2lkdGggc28gYSBwaW5uZWQgd2luZG93IGNvbGxhcHNlcy9leHBhbmRzIG9uIHJvdGF0ZS9yZXNpemUuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgY29uc3Qgb25SZXNpemUgPSAoKSA9PiBzZXRJc01vYmlsZShpc01vYmlsZVdpZHRoKCkpO1xuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgb25SZXNpemUpO1xuICAgICAgICByZXR1cm4gKCkgPT4gd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIG9uUmVzaXplKTtcbiAgICB9LCBbXSk7XG5cbiAgICAvLyBDb2xsYXBzZWQgPSBwaW5uZWQgb24gYSBwaG9uZTogc2hyaW5rIHRvIGEgcGlsbCwga2VlcCBldmVyeXRoaW5nIG1vdW50ZWQuXG4gICAgY29uc3QgY29sbGFwc2VkID0gaXNNb2JpbGUgJiYgZGlzcGxheVN0YXRlID09PSAnUElOTkVEJztcblxuICAgIC8vIFRoZSBjb250ZXh0IHN1YnNjcmlwdGlvbiBiZWxvdyBpcyByZWdpc3RlcmVkIE9OQ0Ugb24gbW91bnQsIHNvIHRoZVxuICAgIC8vIG1heGltaXplL21pbmltaXplL3BpbiBjbG9zdXJlcyBpdCBjYWxscyB3b3VsZCBvdGhlcndpc2UgY2FwdHVyZSBtb3VudC10aW1lXG4gICAgLy8gcHJvcHMvc3RhdGUuIE1pcnJvciB0aGUgbGl2ZSB2YWx1ZXMgaW50byByZWZzIHNvIHRob3NlIGltcGVyYXRpdmUgaGFuZGxlcnNcbiAgICAvLyBhbHdheXMgcmVhZCB0aGUgQ1VSUkVOVCBkcmF3ZXIgb2Zmc2V0ICsgZGlzcGxheSBzdGF0ZS4gKFdpdGhvdXQgdGhpcyxcbiAgICAvLyBwaW4gLT4gY2xvc2UgZHJhd2VyIC0+IHVucGluIHJlc3RvcmVzIHRoZSB3aW5kb3cgdG8gdGhlIHN0YWxlIG9wZW4tZHJhd2VyXG4gICAgLy8gbGVmdCBvZmZzZXQgaW5zdGVhZCBvZiB0aGUgY29sbGFwc2VkIG1pbmktZHJhd2VyIHBvc2l0aW9uLilcbiAgICBjb25zdCBsZWZ0T2Zmc2V0UmVmID0gdXNlUmVmKHByb3BzLmxlZnRPZmZzZXQpO1xuICAgIGxlZnRPZmZzZXRSZWYuY3VycmVudCA9IHByb3BzLmxlZnRPZmZzZXQ7XG4gICAgY29uc3QgZGlzcGxheVN0YXRlUmVmID0gdXNlUmVmKGRpc3BsYXlTdGF0ZSk7XG4gICAgZGlzcGxheVN0YXRlUmVmLmN1cnJlbnQgPSBkaXNwbGF5U3RhdGU7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAocHJvcHMuZGlzcGxheVN0YXRlKSB7XG4gICAgICAgICAgICBzZXREaXNwbGF5U3RhdGUocHJvcHMuZGlzcGxheVN0YXRlKTtcbiAgICAgICAgICAgIGFwcGxpY2F0aW9uTWFuYWdlci51cGRhdGVDb250ZXh0KHt3aW5kb3dEaXNwbGF5U3RhdGU6IHByb3BzLmRpc3BsYXlTdGF0ZX0pO1xuICAgICAgICB9XG4gICAgfSwgW3Byb3BzLmRpc3BsYXlTdGF0ZV0pO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLmFkZEFwcGxpY2F0aW9uQ29udGV4dFN1YnNjcmlwdGlvbih7XG4gICAgICAgICAgICBoYW5kbGVyOiB7XG4gICAgICAgICAgICAgICAgZ2V0IGlkKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3dpbmRvdyc7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBvbkNvbnRleHRDaGFuZ2U6IChjb250ZXh0LCBuZXdWYWx1ZXMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKE9iamVjdC5rZXlzKG5ld1ZhbHVlcylcbiAgICAgICAgICAgICAgICAgICAgICAgIC5maW5kKChrZXkpID0+IGtleSA9PT0gJ3dpbmRvd0Rpc3BsYXlTdGF0ZScpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnTUlOIDogJyArIG5ld1ZhbHVlcy53aW5kb3dEaXNwbGF5U3RhdGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5ld1ZhbHVlcy53aW5kb3dEaXNwbGF5U3RhdGUgPT09ICdNQVhJTUlaRUQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4aW1pemVWaWV3KG51bGwsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobmV3VmFsdWVzLndpbmRvd0Rpc3BsYXlTdGF0ZSA9PT0gJ01JTklNSVpFRCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5pbWl6ZVZpZXcobnVsbCwgZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChuZXdWYWx1ZXMud2luZG93RGlzcGxheVN0YXRlID09PSAnUElOTkVEJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpblZpZXcobnVsbCwgZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KS50aGVuKChpbml0aWFsQ29udGV4dCkgPT4ge1xuICAgICAgICAgICAgc2V0RGlzcGxheVN0YXRlKGluaXRpYWxDb250ZXh0ID8gaW5pdGlhbENvbnRleHQud2luZG93RGlzcGxheVN0YXRlIDogJ01BWElNSVpFRCcpO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICB9O1xuICAgIH0sIFtdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChkaXNwbGF5U3RhdGUgPT09ICdNQVhJTUlaRUQnKSB7XG4gICAgICAgICAgICBtYXhpbWl6ZVZpZXcobnVsbCk7XG4gICAgICAgIH0gZWxzZSBpZiAoZGlzcGxheVN0YXRlID09PSAnTUlOSU1JWkVEJykge1xuICAgICAgICAgICAgbWluaW1pemVWaWV3KG51bGwpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGluVmlldyhudWxsKVxuICAgICAgICB9XG4gICAgICAgIC8vIEFmdGVyIHRoZSBQYXBlciByZXNpemVzLCBudWRnZSB0aGUgY29udGVudCB0byByZS1tZWFzdXJlLiBUaGUgQ0RVSVxuICAgICAgICAvLyB2aWV3IGxheXMgb3V0IGFnYWluc3QgdGhlIGF2YWlsYWJsZSB3aWR0aCBvbmNlIGFuZCBvbmx5IHJlY29tcHV0ZXMgb25cbiAgICAgICAgLy8gYSB3aW5kb3cgcmVzaXplIOKAlCBzbyBNSU7ihpJNQVggKG9yIGEgZHJhd2VyIGZvbGQpIG90aGVyd2lzZSBsZWF2ZXMgaXRcbiAgICAgICAgLy8gc2l6ZWQgdG8gdGhlIHByZXZpb3VzIGRpbWVuc2lvbnMuIHJBRiBsZXRzIHRoZSBuZXcgc2l6ZSBzZXR0bGUgZmlyc3QuXG4gICAgICAgIGNvbnN0IHJhZiA9IHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ3Jlc2l6ZScpKSk7XG4gICAgICAgIHJldHVybiAoKSA9PiBjYW5jZWxBbmltYXRpb25GcmFtZShyYWYpO1xuICAgICAgICAvLyBSZS1ydW4gb24gbGVmdE9mZnNldCB0b28gc28gYSBtYXhpbWl6ZWQgd2luZG93IHJlLWFsaWducyB3aGVuIHRoZVxuICAgICAgICAvLyBtZW51IGRyYXdlciBmb2xkcy9leHBhbmRzIChkcmF3ZXIgd2lkdGggY2hhbmdlcyDihpIgcmVwb3NpdGlvbikuXG4gICAgfSwgW2Rpc3BsYXlTdGF0ZSwgcHJvcHMubGVmdE9mZnNldF0pO1xuXG4gICAgY29uc3QgZ2V0TWluaW1pemVkU3R5bGUgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGUoMCwgMCknLFxuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnI0ZGRkZGRicsXG4gICAgICAgICAgICB3aWR0aDogbWluaW1pemVXaWR0aCArICdweCcsXG4gICAgICAgICAgICBtYXhXaWR0aDogJ3Vuc2V0JyxcbiAgICAgICAgICAgIGhlaWdodDogJzUwMHB4JyxcbiAgICAgICAgICAgIG1hcmdpbjogJzAgMTZweCAxNnB4IDE2cHgnXG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIGNvbnN0IGdldE1heGltaXplZFN0eWxlID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiAndHJhbnNsYXRlKDAsIDApJyxcbiAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJyNGRkZGRkYnLFxuICAgICAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgICAgICAvLyBTaXQganVzdCBiZWxvdyB0aGUgZml4ZWQgZGFzaGJvYXJkIGhlYWRlciAoNjRweCkgc28gdGhlIHdpbmRvd1xuICAgICAgICAgICAgLy8gZG9lc24ndCBlbmNyb2FjaCBvbiBpdC4gRGVjbGFyZWQgaGVyZSBiZWNhdXNlIGdldE1heGltaXplZFN0eWxlIGlzXG4gICAgICAgICAgICAvLyB0aGUgYXV0aG9yaXRhdGl2ZSBpbmxpbmUgc3R5bGUg4oCUIGEgcmVuZGVyIHdpdGggbm8gYHRvcGAgd291bGQgY2xlYXJcbiAgICAgICAgICAgIC8vIGFueSBpbXBlcmF0aXZlbHktc2V0IHZhbHVlIGFuZCBmYWxsIGJhY2sgdG8gdGhlIDQwcHggY2xhc3MuXG4gICAgICAgICAgICB0b3A6ICc2NHB4JyxcbiAgICAgICAgICAgIGxlZnQ6IHByb3BzLmxlZnRPZmZzZXQsXG4gICAgICAgICAgICByaWdodDogJ3Vuc2V0JyxcbiAgICAgICAgICAgIC8vIE1pcnJvciB0aGUgbWFpbiBWaWV3UG9ydDogc3RhcnQgYXQgdGhlIGRyYXdlciB3aWR0aCwgbGVhdmUgYSAxMnB4XG4gICAgICAgICAgICAvLyByaWdodCBnYXAuIEV4cGxpY2l0IHdpZHRoIChub3QgJ3Vuc2V0Jykgc28gdGhlIGNvbnRlbnQgYWx3YXlzXG4gICAgICAgICAgICAvLyByZWZsb3dzIHRvIGZ1bGwgc2l6ZSDigJQgZml4ZXMgdGhlIE1JTuKGkk1BWCBcInN0dWNrIHNocnVua1wiIGJ1Zy5cbiAgICAgICAgICAgIHdpZHRoOiAnY2FsYygxMDAlIC0gJyArIHByb3BzLmxlZnRPZmZzZXQgKyAnIC0gMTJweCknLFxuICAgICAgICAgICAgbWF4V2lkdGg6ICd1bnNldCcsXG4gICAgICAgICAgICBoZWlnaHQ6ICdjYWxjKDEwMCUgLSA4OHB4KScsXG4gICAgICAgICAgICBtYXJnaW46ICcwJ1xuICAgICAgICB9O1xuICAgIH07XG5cbiAgICAvLyBBIHNtYWxsIGZsb2F0aW5nIHBpbGwgaW4gdGhlIGJvdHRvbS1yaWdodCB0aGF0IHNob3dzIG9ubHkgdGhlIHVucGluIGljb24uXG4gICAgLy8gTm90aGluZyBpcyB1bm1vdW50ZWQg4oCUIHRoZSBtZWV0aW5nIGNvbnRlbnQgKGFuZCBpdHMgbWVkaWEgc3RyZWFtcyArIGV2ZW50XG4gICAgLy8gc3Vic2NyaXB0aW9ucykgc3RheXMgaW4gdGhlIERPTSBiZWhpbmQgaXQsIGp1c3QgaGlkZGVuIHZpYSBkaXNwbGF5Om5vbmUuXG4gICAgY29uc3QgZ2V0Q29sbGFwc2VkU3R5bGUgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGUoMCwgMCknLFxuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnI0ZGRkZGRicsXG4gICAgICAgICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgICAgICAgIHRvcDogJ3Vuc2V0JyxcbiAgICAgICAgICAgIGxlZnQ6ICd1bnNldCcsXG4gICAgICAgICAgICByaWdodDogJzEycHgnLFxuICAgICAgICAgICAgYm90dG9tOiAnMTJweCcsXG4gICAgICAgICAgICB3aWR0aDogJzU2cHgnLFxuICAgICAgICAgICAgbWluV2lkdGg6ICc1NnB4JyxcbiAgICAgICAgICAgIG1heFdpZHRoOiAnNTZweCcsXG4gICAgICAgICAgICBoZWlnaHQ6ICc1NnB4JyxcbiAgICAgICAgICAgIGJvcmRlclJhZGl1czogJzI4cHgnLFxuICAgICAgICAgICAgbWFyZ2luOiAnMCcsXG4gICAgICAgICAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgICAgICAgICBib3hTaGFkb3c6ICcwIDRweCAxNnB4IHJnYmEoMCwwLDAsMC4zMiknXG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIGNvbnN0IGdldFBpbm5lZFN0eWxlID0gKCkgPT4ge1xuICAgICAgICBpZiAoaXNNb2JpbGUpIHtcbiAgICAgICAgICAgIHJldHVybiBnZXRDb2xsYXBzZWRTdHlsZSgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGUoMCwgMCknLFxuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnI0ZGRkZGRicsXG4gICAgICAgICAgICB3aWR0aDogJzMyMHB4JyxcbiAgICAgICAgICAgIGhlaWdodDogJ2NhbGMoMTAwJSAtIDg4cHgpJyxcbiAgICAgICAgICAgIG1hcmdpbjogJzAgOHB4J1xuICAgICAgICB9O1xuICAgIH07XG5cbiAgICBjb25zdCBwaW5WaWV3ID0gKGUsIHVwZGF0ZUNvbnRleHQgPSB0cnVlKSA9PiB7XG4gICAgICAgIGlmIChwcm9wcy5waW5uYWJsZSkge1xuICAgICAgICAgICAgbGV0IHBhcGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21lZXRpbmdEaWFsb2dQYXBlcicpO1xuICAgICAgICAgICAgaWYgKHBhcGVyKSB7XG4gICAgICAgICAgICAgICAgaWYgKHdpbmRvd1RyYW5zZm9ybVZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhcGVyLnN0eWxlLnRyYW5zZm9ybSA9IHdpbmRvd1RyYW5zZm9ybVZhbHVlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChpc01vYmlsZVdpZHRoKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gQ29sbGFwc2UgdG8gYSBib3R0b20tcmlnaHQgcGlsbC4gQ29udGVudCBzdGF5cyBtb3VudGVkIChoaWRkZW5cbiAgICAgICAgICAgICAgICAgICAgLy8gdmlhIGRpc3BsYXk6bm9uZSBpbiByZW5kZXIpLCBzbyBzdHJlYW1zL2xpc3RlbmVycyBhcmUgdW50b3VjaGVkLlxuICAgICAgICAgICAgICAgICAgICBwYXBlci5zdHlsZS53aWR0aCA9ICc1NnB4JztcbiAgICAgICAgICAgICAgICAgICAgcGFwZXIuc3R5bGUubWluV2lkdGggPSAnNTZweCc7XG4gICAgICAgICAgICAgICAgICAgIHBhcGVyLnN0eWxlLm1heFdpZHRoID0gJzU2cHgnO1xuICAgICAgICAgICAgICAgICAgICBwYXBlci5zdHlsZS5oZWlnaHQgPSAnNTZweCc7XG4gICAgICAgICAgICAgICAgICAgIHBhcGVyLnN0eWxlLmJvcmRlclJhZGl1cyA9ICcyOHB4JztcbiAgICAgICAgICAgICAgICAgICAgcGFwZXIuc3R5bGUuYm94U2hhZG93ID0gJzAgNHB4IDE2cHggcmdiYSgwLDAsMCwwLjMyKSc7XG4gICAgICAgICAgICAgICAgICAgIHBhcGVyLnN0eWxlLmxlZnQgPSAndW5zZXQnO1xuICAgICAgICAgICAgICAgICAgICBwYXBlci5zdHlsZS5yaWdodCA9ICcxMnB4JztcbiAgICAgICAgICAgICAgICAgICAgcGFwZXIuc3R5bGUudG9wID0gJ3Vuc2V0JztcbiAgICAgICAgICAgICAgICAgICAgcGFwZXIuc3R5bGUuYm90dG9tID0gJzEycHgnO1xuICAgICAgICAgICAgICAgICAgICBwYXBlci5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XG4gICAgICAgICAgICAgICAgICAgIHBhcGVyLnN0eWxlLm1hcmdpbiA9ICcwJztcbiAgICAgICAgICAgICAgICAgICAgcGFwZXIuc3R5bGUub3ZlcmZsb3cgPSAnaGlkZGVuJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBwYXBlci5zdHlsZS53aWR0aCA9ICczMjJweCc7XG4gICAgICAgICAgICAgICAgICAgIHBhcGVyLnN0eWxlLmhlaWdodCA9ICdjYWxjKDEwMCUgLSA2OHB4KSc7XG4gICAgICAgICAgICAgICAgICAgIHBhcGVyLnN0eWxlLmJveFNoYWRvdyA9ICd1bnNldCc7XG4gICAgICAgICAgICAgICAgICAgIHBhcGVyLnN0eWxlLmJvcmRlclJhZGl1cyA9ICc0cHgnO1xuICAgICAgICAgICAgICAgICAgICBwYXBlci5zdHlsZS5sZWZ0ID0gJ3Vuc2V0JztcbiAgICAgICAgICAgICAgICAgICAgcGFwZXIuc3R5bGUucmlnaHQgPSAnNHB4JztcbiAgICAgICAgICAgICAgICAgICAgcGFwZXIuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICAgICAgICAgICAgICAgICAgICBwYXBlci5zdHlsZS50b3AgPSAnMzJweCc7XG4gICAgICAgICAgICAgICAgICAgIHBhcGVyLnN0eWxlLmJvdHRvbSA9ICd1bnNldCc7XG4gICAgICAgICAgICAgICAgICAgIHBhcGVyLnN0eWxlLm1hcmdpbiA9ICczMnB4IDAnO1xuICAgICAgICAgICAgICAgICAgICBwYXBlci5zdHlsZS5tYXhXaWR0aCA9ICd1bnNldCc7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgbGV0IGhlYWRlciA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2RpYWxvZ0hlYWRlcicpWzBdO1xuICAgICAgICAgICAgICAgIGhlYWRlci5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYnV0dG9uJylbMF0uc3R5bGUuY29sb3IgPSAnIzAwMDAwMCc7XG5cbiAgICAgICAgICAgICAgICBpZiAoZGlzcGxheVN0YXRlUmVmLmN1cnJlbnQgIT09ICdQSU5ORUQnKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldERpc3BsYXlTdGF0ZSgnUElOTkVEJyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHVwZGF0ZUNvbnRleHQpIHtcbiAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLnVwZGF0ZUNvbnRleHQoe3dpbmRvd0Rpc3BsYXlTdGF0ZTogJ1BJTk5FRCd9LCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcHJvcHMub25QaW5uZWQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBtaW5pbWl6ZVZpZXcgPSAoZSwgdXBkYXRlQ29udGV4dCA9IHRydWUpID0+IHtcbiAgICAgICAgaWYgKG1pbmltaXphYmxlKSB7XG4gICAgICAgICAgICBsZXQgcGFwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWVldGluZ0RpYWxvZ1BhcGVyJyk7XG4gICAgICAgICAgICBpZiAocGFwZXIpIHtcbiAgICAgICAgICAgICAgICBpZiAod2luZG93VHJhbnNmb3JtVmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFwZXIuc3R5bGUudHJhbnNmb3JtID0gd2luZG93VHJhbnNmb3JtVmFsdWU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcGFwZXIuc3R5bGUucmVtb3ZlUHJvcGVydHkoJy0tUGFwZXItc2hhZG93Jyk7XG4gICAgICAgICAgICAgICAgcGFwZXIuc3R5bGUuYm94U2hhZG93ID0gJ3Vuc2V0JztcbiAgICAgICAgICAgICAgICBwYXBlci5zdHlsZS53aWR0aCA9IG1pbmltaXplV2lkdGggKyAncHgnO1xuICAgICAgICAgICAgICAgIHBhcGVyLnN0eWxlLmhlaWdodCA9ICc1MDBweCc7XG4gICAgICAgICAgICAgICAgcGFwZXIuc3R5bGUubWFyZ2luID0gJzAgMTZweCAxNnB4IDE2cHgnO1xuICAgICAgICAgICAgICAgIHBhcGVyLnN0eWxlLnBvc2l0aW9uID0gJ3JlbGF0aXZlJztcbiAgICAgICAgICAgICAgICBwYXBlci5zdHlsZS5ib3JkZXIgPSAndW5zZXQnO1xuICAgICAgICAgICAgICAgIC8vIENsZWFyIGxlZnRvdmVyIG1vYmlsZSBjb2xsYXBzZWQtcGlsbCBzdHlsZXMuXG4gICAgICAgICAgICAgICAgcGFwZXIuc3R5bGUucmVtb3ZlUHJvcGVydHkoJ21pbi13aWR0aCcpO1xuICAgICAgICAgICAgICAgIHBhcGVyLnN0eWxlLnJlbW92ZVByb3BlcnR5KCdib3JkZXItcmFkaXVzJyk7XG4gICAgICAgICAgICAgICAgcGFwZXIuc3R5bGUucmVtb3ZlUHJvcGVydHkoJ2JvdHRvbScpO1xuXG4gICAgICAgICAgICAgICAgbGV0IGhlYWRlciA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2RpYWxvZ0hlYWRlcicpWzBdO1xuICAgICAgICAgICAgICAgIGhlYWRlci5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYnV0dG9uJylbMF0uc3R5bGUuY29sb3IgPSAnIzAwMDAwMCc7XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21lZXRpbmctd2luZG93LWhlYWRlcicpLnN0eWxlLmN1cnNvciA9ICdtb3ZlJztcblxuICAgICAgICAgICAgICAgIGlmIChkaXNwbGF5U3RhdGVSZWYuY3VycmVudCAhPT0gJ01JTklNSVpFRCcpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0RGlzcGxheVN0YXRlKCdNSU5JTUlaRUQnKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAodXBkYXRlQ29udGV4dCkge1xuICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIudXBkYXRlQ29udGV4dCh7d2luZG93RGlzcGxheVN0YXRlOiAnTUlOSU1JWkVEJ30sIGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgbWF4aW1pemVWaWV3ID0gKGUsIHVwZGF0ZUNvbnRleHQgPSB0cnVlKSA9PiB7XG4gICAgICAgIGxldCBwYXBlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtZWV0aW5nRGlhbG9nUGFwZXInKTtcbiAgICAgICAgaWYgKHBhcGVyKSB7XG4gICAgICAgICAgICBzZXRXaW5kb3dUcmFuc2Zvcm1WYWx1ZShwYXBlci5zdHlsZS50cmFuc2Zvcm0pO1xuICAgICAgICAgICAgcGFwZXIuc3R5bGUucmVtb3ZlUHJvcGVydHkoJy0tUGFwZXItc2hhZG93Jyk7XG4gICAgICAgICAgICBwYXBlci5zdHlsZS5ib3hTaGFkb3cgPSAndW5zZXQnO1xuICAgICAgICAgICAgcGFwZXIuc3R5bGUudHJhbnNmb3JtID0gJ3RyYW5zbGF0ZSgwLCAwKSc7XG4gICAgICAgICAgICBwYXBlci5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAnI0ZGRkZGRic7XG4gICAgICAgICAgICAvLyBFeHBsaWNpdCB3aWR0aCB0aWVkIHRvIHRoZSBkcmF3ZXIgb2Zmc2V0IChtaXJyb3JzIHRoZSBtYWluXG4gICAgICAgICAgICAvLyBWaWV3UG9ydCkuIE5PVCAndW5zZXQnIOKAlCBhIGNvbnRlbnQtc2l6ZWQgYXV0byB3aWR0aCBpcyB3aGF0IGtlZXBzXG4gICAgICAgICAgICAvLyB0aGUgd2luZG93IHNocnVuayBhZnRlciBNSU7ihpJNQVguXG4gICAgICAgICAgICBwYXBlci5zdHlsZS53aWR0aCA9ICdjYWxjKDEwMCUgLSAnICsgbGVmdE9mZnNldFJlZi5jdXJyZW50ICsgJyAtIDEycHgpJztcbiAgICAgICAgICAgIHBhcGVyLnN0eWxlLm1heFdpZHRoID0gJ3Vuc2V0JztcbiAgICAgICAgICAgIHBhcGVyLnN0eWxlLmhlaWdodCA9ICdjYWxjKDEwMCUgLSA4OHB4KSc7XG4gICAgICAgICAgICBwYXBlci5zdHlsZS5tYXJnaW4gPSAnMCc7XG4gICAgICAgICAgICBwYXBlci5zdHlsZS5yaWdodCA9ICd1bnNldCc7XG4gICAgICAgICAgICBwYXBlci5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XG4gICAgICAgICAgICBwYXBlci5zdHlsZS50b3AgPSAnNjRweCc7XG4gICAgICAgICAgICAvLyBMZWZ0IGVkZ2UgPSB0aGUgbWVudSBkcmF3ZXIgd2lkdGggKGZvbGRzIGluIHJlYWwgdGltZSwgcmVhZCBmcm9tIGFcbiAgICAgICAgICAgIC8vIHJlZiBzbyB0aGUgb25jZS1yZWdpc3RlcmVkIGNvbnRleHQgc3Vic2NyaXB0aW9uIGlzbid0IHN0YWxlKSwgbm90XG4gICAgICAgICAgICAvLyB0aGUgc3RhdGljIC5zaWRlYmFyIGxvb2t1cC5cbiAgICAgICAgICAgIHBhcGVyLnN0eWxlLmxlZnQgPSBsZWZ0T2Zmc2V0UmVmLmN1cnJlbnQ7XG4gICAgICAgICAgICAvLyBDbGVhciBhbnkgbGVmdG92ZXIgc3R5bGVzIGZyb20gdGhlIG1vYmlsZSBjb2xsYXBzZWQgcGlsbCBzbyB0aGVcbiAgICAgICAgICAgIC8vIHJlc3RvcmVkIHdpbmRvdyBpc24ndCBzdHVjayByb3VuZGVkL3RpbnkuXG4gICAgICAgICAgICBwYXBlci5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnbWluLXdpZHRoJyk7XG4gICAgICAgICAgICBwYXBlci5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnYm9yZGVyLXJhZGl1cycpO1xuICAgICAgICAgICAgcGFwZXIuc3R5bGUucmVtb3ZlUHJvcGVydHkoJ2JvdHRvbScpO1xuXG4gICAgICAgICAgICBsZXQgaGVhZGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnZGlhbG9nSGVhZGVyJylbMF07XG4gICAgICAgICAgICBoZWFkZXIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2J1dHRvbicpWzBdLnN0eWxlLmNvbG9yID0gJ3JnYmEoMCwgMCwgMCwgMC41NCknO1xuICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21lZXRpbmctd2luZG93LWhlYWRlcicpLnN0eWxlLmN1cnNvciA9ICdkZWZhdWx0JztcblxuICAgICAgICAgICAgaWYgKGRpc3BsYXlTdGF0ZVJlZi5jdXJyZW50ICE9PSAnTUFYSU1JWkVEJykge1xuICAgICAgICAgICAgICAgIHNldERpc3BsYXlTdGF0ZSgnTUFYSU1JWkVEJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh1cGRhdGVDb250ZXh0KSB7XG4gICAgICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLnVwZGF0ZUNvbnRleHQoe3dpbmRvd0Rpc3BsYXlTdGF0ZTogJ01BWElNSVpFRCd9LCBmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICAgIDxkaXYgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgICAgICAgIGhlaWdodDogJzEwMCUnLFxuICAgICAgICAgICAgICAgIG1heEhlaWdodDogJzEwMCUnLFxuICAgICAgICAgICAgICAgIG92ZXJmbG93WDogJ2hpZGRlbicsXG4gICAgICAgICAgICAgICAgb3ZlcmZsb3dZOiAnYXV0bycsXG4gICAgICAgICAgICAgICAgZGlzcGxheTogJ25vbmUnLFxuICAgICAgICAgICAgICAgIGNvbG9yOiAnIzAwMDAwMCdcbiAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgIDxXaW5kb3dEaWFsb2dcbiAgICAgICAgICAgICAgICAgICAgbGVmdE9mZnNldD17cHJvcHMubGVmdE9mZnNldH1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZUVuZm9yY2VGb2N1c1xuICAgICAgICAgICAgICAgICAgICBvcGVuPXt0cnVlfVxuICAgICAgICAgICAgICAgICAgICBvbkNsb3NlPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMub25DbG9zZSgpO1xuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICBrZWVwTW91bnRlZFxuICAgICAgICAgICAgICAgICAgICBoaWRlQmFja2Ryb3A9e3RydWV9XG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT1cIm1lZXRpbmctd2luZG93LXRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1kZXNjcmliZWRieT1cIm1lZXRpbmctd2luZG93LWRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtwcm9wcy5jb250YWluZXJDbGFzc05hbWV9XG4gICAgICAgICAgICAgICAgICAgIFBhcGVyQ29tcG9uZW50PXtQYXBlckNvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgUGFwZXJQcm9wcz17e1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICdtZWV0aW5nRGlhbG9nUGFwZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBkaXNwbGF5U3RhdGUgPT09ICdNSU5JTUlaRUQnID8gJ3dpbmRvdy1wYXBlci1taW4nIDogZGlzcGxheVN0YXRlID09PSAnTUFYSU1JWkVEJyA/ICd3aW5kb3ctcGFwZXItbWF4JyA6ICd3aW5kb3ctcGFwZXItcGlubmVkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiBkaXNwbGF5U3RhdGUgPT09ICdNQVhJTUlaRUQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IGRpc3BsYXlTdGF0ZSA9PT0gJ01JTklNSVpFRCcgPyBnZXRNaW5pbWl6ZWRTdHlsZSgpIDogZGlzcGxheVN0YXRlID09PSAnTUFYSU1JWkVEJyA/IGdldE1heGltaXplZFN0eWxlKCkgOiBnZXRQaW5uZWRTdHlsZSgpXG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPXsnd2luZG93LWNvbnRlbnQnfSBzdHlsZT17e292ZXJmbG93OiAnaGlkZGVuJ319XG4gICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHsoZGlzcGxheVN0YXRlID09PSAnUElOTkVEJyA/ICd3aW5kb3ctcGlubmVkICcgOiAnJykgKyAndy0xMDAgaC0xMDAnfWB9PlxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIENvbGxhcHNlZCBwaWxsOiB0aGUgT05MWSB2aXNpYmxlIGNvbnRyb2wgaXMgdW5waW4gKHJlc3RvcmVzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHdpbmRvdykuIEV2ZXJ5dGhpbmcgZWxzZSBzdGF5cyBtb3VudGVkIGJlbG93LCBoaWRkZW4uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sbGFwc2VkICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IHByb3BzLm9uUGluKCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJVbnBpbiBtZWV0aW5nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3t3aWR0aDogJzU2cHgnLCBoZWlnaHQ6ICc1NnB4JywgY29sb3I6ICcjMDAwMDAwJ319XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SWNvbiBpZD17J01BWElNSVpFJ30vPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSWNvbkJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3t3aWR0aDogJzEwMCUnLCBoZWlnaHQ6ICcxMDAlJywgZGlzcGxheTogY29sbGFwc2VkID8gJ25vbmUnIDogJ2Jsb2NrJ319PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydtZWV0aW5nLXdpbmRvdy1oZWFkZXInfSBpZD1cIm1lZXRpbmctd2luZG93LWhlYWRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlTdGF0ZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnNDhweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnNDhweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAnLTJweCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnZGlhbG9nSGVhZGVyIHJvdyd9IHN0eWxlPXt7bWFyZ2luVG9wOiAnMjRweCd9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluaW1pemFibGUgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5U3RhdGUgPT09ICdNQVhJTUlaRUQnID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluaW1pemVWaWV3KGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luUmlnaHQ6ICc0cHgnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SWNvbiBpZD17J01JTklNSVpFJ30vPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhpbWl6ZVZpZXcoZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5SaWdodDogJzRweCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uIGlkPXsnTUFYSU1JWkUnfS8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMucGlubmFibGUgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLm9uUGluKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5SaWdodDogJzRweCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uIGlkPXsnTUFYSU1JWkUnfS8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlblxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvV2luZG93RGlhbG9nPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvPlxuICAgICk7XG59O1xuXG5l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QU07RUFBRSxHQUV2RG5GLFdBQVcsaUJBQ1gvRCxNQUFBLENBQUFZLE9BQUEsQ0FBQThDLGFBQUEsY0FFUU0sWUFBWSxLQUFLLFdBQVcsZ0JBQ3hCaEUsTUFBQSxDQUFBWSxPQUFBLENBQUE4QyxhQUFBLENBQUNuRCxXQUFBLENBQUFLLE9BQVU7SUFDUG9JLE9BQU8sRUFBR3RJLENBQUMsSUFBSztNQUNaa0YsWUFBWSxDQUFDbEYsQ0FBQyxDQUFDO0lBQ25CLENBQUU7SUFDRitHLEtBQUssRUFBRTtNQUNIMEIsV0FBVyxFQUFFO0lBQ2pCO0VBQUUsZ0JBRUZuSixNQUFBLENBQUFZLE9BQUEsQ0FBQThDLGFBQUEsQ0FBQ3BELEtBQUEsQ0FBQU0sT0FBSTtJQUFDd0UsRUFBRSxFQUFFO0VBQVcsQ0FBQyxDQUNkLENBQUMsZ0JBRWJwRixNQUFBLENBQUFZLE9BQUEsQ0FBQThDLGFBQUEsQ0FBQ25ELFdBQUEsQ0FBQUssT0FBVTtJQUNQb0ksT0FBTyxFQUFHdEksQ0FBQyxJQUFLO01BQ1ppRixZQUFZLENBQUNqRixDQUFDLENBQUM7SUFDbkIsQ0FBRTtJQUNGK0csS0FBSyxFQUFFO01BQ0gwQixXQUFXLEVBQUU7SUFDakI7RUFBRSxnQkFFRm5KLE1BQUEsQ0FBQVksT0FBQSxDQUFBOEMsYUFBQSxDQUFDcEQsS0FBQSxDQUFBTSxPQUFJO0lBQUN3RSxFQUFFLEVBQUU7RUFBVyxDQUFDLENBQ2QsQ0FFbkIsQ0FBQyxFQUdOM0MsS0FBSyxDQUFDNEUsUUFBUSxpQkFDZHJILE1BQUEsQ0FBQVksT0FBQSxDQUFBOEMsYUFBQSwyQkFDSTFELE1BQUEsQ0FBQVksT0FBQSxDQUFBOEMsYUFBQSxDQUFDbkQsV0FBQSxDQUFBSyxPQUFVO0lBQ1BvSSxPQUFPLEVBQUd0SSxDQUFDLElBQUs7TUFDWitCLEtBQUssQ0FBQ3dHLEtBQUssQ0FBQyxDQUFDO0lBQ2pCLENBQUU7SUFDRnhCLEtBQUssRUFBRTtNQUNIMEIsV0FBVyxFQUFFO0lBQ2pCO0VBQUUsZ0JBRUZuSixNQUFBLENBQUFZLE9BQUEsQ0FBQThDLGFBQUEsQ0FBQ3BELEtBQUEsQ0FBQU0sT0FBSTtJQUFDd0UsRUFBRSxFQUFFO0VBQVcsQ0FBQyxDQUNkLENBQ1gsQ0FFUixDQUNKLENBRVIsQ0FDSixDQUFDLEVBRUZ2QixRQUVDLENBQ0osQ0FDSyxDQUNiLENBQ1AsQ0FBQztBQUVYLENBQUM7QUFBQyxJQUFBdUYsUUFBQSxHQUFBQyxPQUFBLENBQUF6SSxPQUFBLEdBRWFnRCxNQUFNIiwiaWdub3JlTGlzdCI6W119
@@ -75,7 +75,8 @@ class MediaSoupHelper {
75
75
  });
76
76
  }
77
77
  async initConsumerTransport(device, roomId, userId) {
78
- console.log("CREATING CONSUMER TRANSPORT FOR : " + userId + " ROOM " + roomId);
78
+ let label = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';
79
+ console.log("CREATING " + (label ? label.toUpperCase() + " " : "") + "CONSUMER TRANSPORT FOR : " + userId + " ROOM " + roomId);
79
80
  let data = null;
80
81
  try {
81
82
  data = await _SocketManager.default.emitEvent(_VCEventType.VCEventType.CREATE_WEBRTC_TRANSPORT, {
@@ -202,4 +203,4 @@ class MediaSoupHelper {
202
203
  const instance = new MediaSoupHelper();
203
204
  Object.freeze(instance);
204
205
  var _default = exports.default = instance;
205
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbWVkaWFzb3VwQ2xpZW50IiwicmVxdWlyZSIsIl9WQ0V2ZW50VHlwZSIsIl9Tb2NrZXRNYW5hZ2VyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9WQ0V2ZW50TWFuYWdlciIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIl9kZWZpbmVQcm9wZXJ0eSIsInIiLCJ0IiwiX3RvUHJvcGVydHlLZXkiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsInZhbHVlIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiaSIsIl90b1ByaW1pdGl2ZSIsIlN5bWJvbCIsInRvUHJpbWl0aXZlIiwiY2FsbCIsIlR5cGVFcnJvciIsIlN0cmluZyIsIk51bWJlciIsIk1lZGlhU291cEhlbHBlciIsImNvbnN0cnVjdG9yIiwicm91dGVyUnRwQ2FwYWJpbGl0aWVzIiwiZGV2aWNlIiwiRGV2aWNlIiwiZXJyb3IiLCJjb25zb2xlIiwiRXJyb3IiLCJsb2FkIiwicHJvZHVjZXJJZCIsInJ0cENhcGFiaWxpdGllcyIsImNvbnN1bWVyVHJhbnNwb3J0Iiwicm9vbUlkIiwidXNlcklkIiwidHlwZSIsImxvZyIsImRhdGEiLCJzb2NrZXRNYW5hZ2VyIiwiZW1pdEV2ZW50IiwiVkNFdmVudFR5cGUiLCJDT05TVU1FIiwiY29uc3VtZXJUcmFuc3BvcnRJZCIsImlkIiwia2luZCIsInBhcmFtcyIsInJ0cFBhcmFtZXRlcnMiLCJjb2RlY09wdGlvbnMiLCJjb25zdW1lciIsImNvbnN1bWUiLCJzdHJlYW0iLCJNZWRpYVN0cmVhbSIsImFkZFRyYWNrIiwidHJhY2siLCJpbml0Q29uc3VtZXJUcmFuc3BvcnQiLCJDUkVBVEVfV0VCUlRDX1RSQU5TUE9SVCIsImZvcmNlVGNwIiwidmNBcHBNYW5hZ2VyIiwiZmlyZUV2ZW50IiwiQ1JFQVRFX1RSQU5TUE9SVF9GQUlMRUQiLCJzdGF0dXMiLCJjcmVhdGVSZWN2VHJhbnNwb3J0Iiwib24iLCJfcmVmIiwiY2FsbGJhY2siLCJlcnJiYWNrIiwiZHRsc1BhcmFtZXRlcnMiLCJDT05ORUNUX1RSQU5TUE9SVCIsInRyYW5zcG9ydElkIiwidGhlbiIsImNhdGNoIiwiYmluZCIsInN0YXRlIiwiQ09OU1VNRVJfVFJBTlNQT1JUX0ZBSUxFRCIsImluaXRQcm9kdWNlclRyYW5zcG9ydCIsInByb2R1Y2VyVHJhbnNwb3J0IiwiY3JlYXRlU2VuZFRyYW5zcG9ydCIsIl9yZWYyIiwiX3JlZjMiLCJhcHBEYXRhIiwiUFJPRFVDRSIsInByb2R1Y2VyVHJhbnNwb3J0SWQiLCJlcnIiLCJQUk9EVUNFUl9UUkFOU1BPUlRfRkFJTEVEIiwiY2xvc2UiLCJpbnN0YW5jZSIsImZyZWV6ZSIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tZWRpYS9NZWRpYVNvdXBIZWxwZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEZXZpY2V9IGZyb20gXCJtZWRpYXNvdXAtY2xpZW50XCI7XG5pbXBvcnQge1ZDRXZlbnRUeXBlfSBmcm9tIFwiLi9WQ0V2ZW50VHlwZVwiO1xuaW1wb3J0IHNvY2tldE1hbmFnZXIgZnJvbSBcIi4uL1NvY2tldE1hbmFnZXJcIjtcbmltcG9ydCB2Y0FwcE1hbmFnZXIgZnJvbSBcIi4vVkNFdmVudE1hbmFnZXJcIjtcblxuY2xhc3MgTWVkaWFTb3VwSGVscGVyIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICB9XG5cbiAgICBnZXRQYXJ0aWNpcGFudERldmljZSA9IGFzeW5jIChyb3V0ZXJSdHBDYXBhYmlsaXRpZXMpID0+IHtcbiAgICAgICAgbGV0IGRldmljZTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgZGV2aWNlID0gbmV3IERldmljZSgpXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gbmV3IERldmljZSgpIHRocm93cyBvbiB1bnN1cHBvcnRlZCBicm93c2VycyDigJQgYmFpbCB3aXRoIGEgY2xlYXIgZXJyb3JcbiAgICAgICAgLy8gaW5zdGVhZCBvZiBkZXJlZmVyZW5jaW5nIHVuZGVmaW5lZCBvbiB0aGUgbmV4dCBsaW5lLlxuICAgICAgICBpZiAoIWRldmljZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdtZWRpYXNvdXAgRGV2aWNlIGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBicm93c2VyJyk7XG4gICAgICAgIH1cblxuICAgICAgICBhd2FpdCBkZXZpY2UubG9hZCh7XG4gICAgICAgICAgICByb3V0ZXJSdHBDYXBhYmlsaXRpZXNcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIGRldmljZVxuICAgIH07XG5cbiAgICBhc3luYyBpbml0Q29uc3VtZXJUcmFuc3BvcnQoZGV2aWNlLCByb29tSWQsIHVzZXJJZCkge1xuICAgICAgICBjb25zb2xlLmxvZyhcIkNSRUFUSU5HIENPTlNVTUVSIFRSQU5TUE9SVCBGT1IgOiBcIiArIHVzZXJJZCArIFwiIFJPT00gXCIgKyByb29tSWQpO1xuICAgICAgICBsZXQgZGF0YSA9IG51bGw7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBkYXRhID0gYXdhaXQgc29ja2V0TWFuYWdlci5lbWl0RXZlbnQoVkNFdmVudFR5cGUuQ1JFQVRFX1dFQlJUQ19UUkFOU1BPUlQsIHtcbiAgICAgICAgICAgICAgICBmb3JjZVRjcDogZmFsc2UsXG4gICAgICAgICAgICAgICAgdXNlcklkLFxuICAgICAgICAgICAgICAgIHJvb21JZFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHZjQXBwTWFuYWdlci5maXJlRXZlbnQoVkNFdmVudFR5cGUuQ1JFQVRFX1RSQU5TUE9SVF9GQUlMRUQsIHt9KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghZGF0YSB8fCBkYXRhLnN0YXR1cyA9PT0gJ0VSUk9SJykge1xuICAgICAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGRhdGEuZXJyb3IpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2Y0FwcE1hbmFnZXIuZmlyZUV2ZW50KFZDRXZlbnRUeXBlLkNSRUFURV9UUkFOU1BPUlRfRkFJTEVELCB7fSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgY29uc3VtZXJUcmFuc3BvcnQgPSBkZXZpY2UuY3JlYXRlUmVjdlRyYW5zcG9ydChkYXRhLnBhcmFtcyk7XG4gICAgICAgIGNvbnN1bWVyVHJhbnNwb3J0Lm9uKFxuICAgICAgICAgICAgJ2Nvbm5lY3QnLFxuICAgICAgICAgICAgZnVuY3Rpb24gKHtkdGxzUGFyYW1ldGVyc30sIGNhbGxiYWNrLCBlcnJiYWNrKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJDT05TVU1FUiBDT05ORUNUIERUTFMgUEFSQU1TIDogXCIsIGR0bHNQYXJhbWV0ZXJzKTtcbiAgICAgICAgICAgICAgICBzb2NrZXRNYW5hZ2VyLmVtaXRFdmVudChWQ0V2ZW50VHlwZS5DT05ORUNUX1RSQU5TUE9SVCwge1xuICAgICAgICAgICAgICAgICAgICBkdGxzUGFyYW1ldGVycyxcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNwb3J0SWQ6IGRhdGEucGFyYW1zLmlkLFxuICAgICAgICAgICAgICAgICAgICB1c2VySWQsXG4gICAgICAgICAgICAgICAgICAgIHJvb21JZFxuICAgICAgICAgICAgICAgIH0pLnRoZW4oY2FsbGJhY2spXG4gICAgICAgICAgICAgICAgICAgIC5jYXRjaChlcnJiYWNrKTtcbiAgICAgICAgICAgIH0uYmluZCh0aGlzKVxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN1bWVyVHJhbnNwb3J0Lm9uKFxuICAgICAgICAgICAgJ2Nvbm5lY3Rpb25zdGF0ZWNoYW5nZScsXG4gICAgICAgICAgICBhc3luYyBmdW5jdGlvbiAoc3RhdGUpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHN0YXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2Nvbm5lY3RpbmcnOlxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2Nvbm5lY3RlZCc6XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnZmFpbGVkJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHZjQXBwTWFuYWdlci5maXJlRXZlbnQoVkNFdmVudFR5cGUuQ09OU1VNRVJfVFJBTlNQT1JUX0ZBSUxFRCwge30pO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0uYmluZCh0aGlzKVxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiBjb25zdW1lclRyYW5zcG9ydDtcbiAgICB9XG5cbiAgICBhc3luYyBpbml0UHJvZHVjZXJUcmFuc3BvcnQoZGV2aWNlLCByb29tSWQsIHVzZXJJZCkge1xuICAgICAgICBjb25zb2xlLmxvZyhcIkNSRUFUSU5HIFBST0RVQ0VSIFRSQU5TUE9SVCBGT1IgOiBcIiArIHVzZXJJZCArIFwiIFJPT00gOiBcIiArIHJvb21JZCk7XG4gICAgICAgIGxldCBkYXRhID0gbnVsbDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGRhdGEgPSBhd2FpdCBzb2NrZXRNYW5hZ2VyLmVtaXRFdmVudChWQ0V2ZW50VHlwZS5DUkVBVEVfV0VCUlRDX1RSQU5TUE9SVCwge1xuICAgICAgICAgICAgICAgIGZvcmNlVGNwOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBydHBDYXBhYmlsaXRpZXM6IGRldmljZS5ydHBDYXBhYmlsaXRpZXMsXG4gICAgICAgICAgICAgICAgcm9vbUlkLFxuICAgICAgICAgICAgICAgIHVzZXJJZFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHZjQXBwTWFuYWdlci5maXJlRXZlbnQoVkNFdmVudFR5cGUuQ1JFQVRFX1RSQU5TUE9SVF9GQUlMRUQsIHt9KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghZGF0YSB8fCBkYXRhLnN0YXR1cyA9PT0gJ0VSUk9SJykge1xuICAgICAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGRhdGEuZXJyb3IpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2Y0FwcE1hbmFnZXIuZmlyZUV2ZW50KFZDRXZlbnRUeXBlLkNSRUFURV9UUkFOU1BPUlRfRkFJTEVELCB7fSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgcHJvZHVjZXJUcmFuc3BvcnQgPSBkZXZpY2UuY3JlYXRlU2VuZFRyYW5zcG9ydChkYXRhLnBhcmFtcyk7XG4gICAgICAgIHByb2R1Y2VyVHJhbnNwb3J0Lm9uKFxuICAgICAgICAgICAgJ2Nvbm5lY3QnLFxuICAgICAgICAgICAgYXN5bmMgZnVuY3Rpb24gKHtkdGxzUGFyYW1ldGVyc30sIGNhbGxiYWNrLCBlcnJiYWNrKSB7XG4gICAgICAgICAgICAgICAgc29ja2V0TWFuYWdlci5lbWl0RXZlbnQoVkNFdmVudFR5cGUuQ09OTkVDVF9UUkFOU1BPUlQsIHtcbiAgICAgICAgICAgICAgICAgICAgZHRsc1BhcmFtZXRlcnMsXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zcG9ydElkOiBkYXRhLnBhcmFtcy5pZCxcbiAgICAgICAgICAgICAgICAgICAgcm9vbUlkLFxuICAgICAgICAgICAgICAgICAgICB1c2VySWRcbiAgICAgICAgICAgICAgICB9KS50aGVuKGNhbGxiYWNrKVxuICAgICAgICAgICAgICAgICAgICAuY2F0Y2goZXJyYmFjayk7XG4gICAgICAgICAgICB9LmJpbmQodGhpcylcbiAgICAgICAgKTtcblxuICAgICAgICBwcm9kdWNlclRyYW5zcG9ydC5vbihcbiAgICAgICAgICAgICdwcm9kdWNlJyxcbiAgICAgICAgICAgIGFzeW5jIGZ1bmN0aW9uICh7a2luZCwgcnRwUGFyYW1ldGVycywgYXBwRGF0YX0sIGNhbGxiYWNrLCBlcnJiYWNrKSB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qge3Byb2R1Y2VySWR9ID0gYXdhaXQgc29ja2V0TWFuYWdlci5lbWl0RXZlbnQoVkNFdmVudFR5cGUuUFJPRFVDRSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjZXJUcmFuc3BvcnRJZDogcHJvZHVjZXJUcmFuc3BvcnQuaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBraW5kLFxuICAgICAgICAgICAgICAgICAgICAgICAgcnRwUGFyYW1ldGVycyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvb21JZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcERhdGFcbiAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soe1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IHByb2R1Y2VySWRcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgZXJyYmFjayhlcnIpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfS5iaW5kKHRoaXMpXG4gICAgICAgICk7XG5cbiAgICAgICAgcHJvZHVjZXJUcmFuc3BvcnQub24oXG4gICAgICAgICAgICAnY29ubmVjdGlvbnN0YXRlY2hhbmdlJyxcbiAgICAgICAgICAgIGZ1bmN0aW9uIChzdGF0ZSkge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAoc3RhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnY29ubmVjdGluZyc6XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnY29ubmVjdGVkJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdmYWlsZWQnOlxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gTWlycm9yIHRoZSBjb25zdW1lciB0cmFuc3BvcnQ6IHN1cmZhY2UgdGhlIGZhaWx1cmUgKHNvIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gcm9vbSBjYW4gcmVhY3QvcmVjb3ZlcikgaW5zdGVhZCBvZiBjbG9zaW5nIHNpbGVudGx5LlxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignUFJPRFVDRVIgVFJBTlNQT1JUIEZBSUxFRCBmb3IgJyArIHVzZXJJZCArICcgcm9vbSAnICsgcm9vbUlkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZjQXBwTWFuYWdlci5maXJlRXZlbnQoVkNFdmVudFR5cGUuUFJPRFVDRVJfVFJBTlNQT1JUX0ZBSUxFRCwge30pO1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjZXJUcmFuc3BvcnQuY2xvc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LmJpbmQodGhpcylcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gcHJvZHVjZXJUcmFuc3BvcnQ7XG4gICAgfVxuXG4gICAgZ2V0Q29uc3VtZVN0cmVhbSA9IGFzeW5jIChwcm9kdWNlcklkLCBydHBDYXBhYmlsaXRpZXMsIGNvbnN1bWVyVHJhbnNwb3J0LCByb29tSWQsIHVzZXJJZCwgdHlwZSkgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZyhcIkNPTlNVTUlORyBGUk9NIDogXCIgKyBwcm9kdWNlcklkICsgXCIgUk9PTSA6IFwiICsgcm9vbUlkKTtcblxuICAgICAgICBpZiAoY29uc3VtZXJUcmFuc3BvcnQpIHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBzb2NrZXRNYW5hZ2VyLmVtaXRFdmVudChWQ0V2ZW50VHlwZS5DT05TVU1FLCB7XG4gICAgICAgICAgICAgICAgcnRwQ2FwYWJpbGl0aWVzLFxuICAgICAgICAgICAgICAgIGNvbnN1bWVyVHJhbnNwb3J0SWQ6IGNvbnN1bWVyVHJhbnNwb3J0LmlkLFxuICAgICAgICAgICAgICAgIHByb2R1Y2VySWQsXG4gICAgICAgICAgICAgICAgcm9vbUlkLFxuICAgICAgICAgICAgICAgIHVzZXJJZCxcbiAgICAgICAgICAgICAgICBraW5kOiB0eXBlXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKGRhdGEucGFyYW1zKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qge2lkLCBraW5kLCBydHBQYXJhbWV0ZXJzfSA9IGRhdGEucGFyYW1zO1xuXG4gICAgICAgICAgICAgICAgbGV0IGNvZGVjT3B0aW9ucyA9IHt9O1xuXG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29uc3VtZXIgPSBhd2FpdCBjb25zdW1lclRyYW5zcG9ydC5jb25zdW1lKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjZXJJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGtpbmQsXG4gICAgICAgICAgICAgICAgICAgICAgICBydHBQYXJhbWV0ZXJzLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29kZWNPcHRpb25zXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGNvbnN1bWVyKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RyZWFtID0gbmV3IE1lZGlhU3RyZWFtKCk7XG4gICAgICAgICAgICAgICAgICAgIHN0cmVhbS5hZGRUcmFjayhjb25zdW1lci50cmFjayk7XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN1bWVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtLFxuICAgICAgICAgICAgICAgICAgICAgICAga2luZFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7fTtcbiAgICB9XG59XG5cbmNvbnN0IGluc3RhbmNlID0gbmV3IE1lZGlhU291cEhlbHBlcigpO1xuT2JqZWN0LmZyZWV6ZShpbnN0YW5jZSk7XG5leHBvcnQgZGVmYXVsdCBpbnN0YW5jZTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsZ0JBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLFlBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLGNBQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFJLGVBQUEsR0FBQUQsc0JBQUEsQ0FBQUgsT0FBQTtBQUE0QyxTQUFBRyx1QkFBQUUsQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQUFBLFNBQUFHLGdCQUFBSCxDQUFBLEVBQUFJLENBQUEsRUFBQUMsQ0FBQSxZQUFBRCxDQUFBLEdBQUFFLGNBQUEsQ0FBQUYsQ0FBQSxNQUFBSixDQUFBLEdBQUFPLE1BQUEsQ0FB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
206
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbWVkaWFzb3VwQ2xpZW50IiwicmVxdWlyZSIsIl9WQ0V2ZW50VHlwZSIsIl9Tb2NrZXRNYW5hZ2VyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9WQ0V2ZW50TWFuYWdlciIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIl9kZWZpbmVQcm9wZXJ0eSIsInIiLCJ0IiwiX3RvUHJvcGVydHlLZXkiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsInZhbHVlIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiaSIsIl90b1ByaW1pdGl2ZSIsIlN5bWJvbCIsInRvUHJpbWl0aXZlIiwiY2FsbCIsIlR5cGVFcnJvciIsIlN0cmluZyIsIk51bWJlciIsIk1lZGlhU291cEhlbHBlciIsImNvbnN0cnVjdG9yIiwicm91dGVyUnRwQ2FwYWJpbGl0aWVzIiwiZGV2aWNlIiwiRGV2aWNlIiwiZXJyb3IiLCJjb25zb2xlIiwiRXJyb3IiLCJsb2FkIiwicHJvZHVjZXJJZCIsInJ0cENhcGFiaWxpdGllcyIsImNvbnN1bWVyVHJhbnNwb3J0Iiwicm9vbUlkIiwidXNlcklkIiwidHlwZSIsImxvZyIsImRhdGEiLCJzb2NrZXRNYW5hZ2VyIiwiZW1pdEV2ZW50IiwiVkNFdmVudFR5cGUiLCJDT05TVU1FIiwiY29uc3VtZXJUcmFuc3BvcnRJZCIsImlkIiwia2luZCIsInBhcmFtcyIsInJ0cFBhcmFtZXRlcnMiLCJjb2RlY09wdGlvbnMiLCJjb25zdW1lciIsImNvbnN1bWUiLCJzdHJlYW0iLCJNZWRpYVN0cmVhbSIsImFkZFRyYWNrIiwidHJhY2siLCJpbml0Q29uc3VtZXJUcmFuc3BvcnQiLCJsYWJlbCIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsInRvVXBwZXJDYXNlIiwiQ1JFQVRFX1dFQlJUQ19UUkFOU1BPUlQiLCJmb3JjZVRjcCIsInZjQXBwTWFuYWdlciIsImZpcmVFdmVudCIsIkNSRUFURV9UUkFOU1BPUlRfRkFJTEVEIiwic3RhdHVzIiwiY3JlYXRlUmVjdlRyYW5zcG9ydCIsIm9uIiwiX3JlZiIsImNhbGxiYWNrIiwiZXJyYmFjayIsImR0bHNQYXJhbWV0ZXJzIiwiQ09OTkVDVF9UUkFOU1BPUlQiLCJ0cmFuc3BvcnRJZCIsInRoZW4iLCJjYXRjaCIsImJpbmQiLCJzdGF0ZSIsIkNPTlNVTUVSX1RSQU5TUE9SVF9GQUlMRUQiLCJpbml0UHJvZHVjZXJUcmFuc3BvcnQiLCJwcm9kdWNlclRyYW5zcG9ydCIsImNyZWF0ZVNlbmRUcmFuc3BvcnQiLCJfcmVmMiIsIl9yZWYzIiwiYXBwRGF0YSIsIlBST0RVQ0UiLCJwcm9kdWNlclRyYW5zcG9ydElkIiwiZXJyIiwiUFJPRFVDRVJfVFJBTlNQT1JUX0ZBSUxFRCIsImNsb3NlIiwiaW5zdGFuY2UiLCJmcmVlemUiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbWVkaWEvTWVkaWFTb3VwSGVscGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGV2aWNlfSBmcm9tIFwibWVkaWFzb3VwLWNsaWVudFwiO1xuaW1wb3J0IHtWQ0V2ZW50VHlwZX0gZnJvbSBcIi4vVkNFdmVudFR5cGVcIjtcbmltcG9ydCBzb2NrZXRNYW5hZ2VyIGZyb20gXCIuLi9Tb2NrZXRNYW5hZ2VyXCI7XG5pbXBvcnQgdmNBcHBNYW5hZ2VyIGZyb20gXCIuL1ZDRXZlbnRNYW5hZ2VyXCI7XG5cbmNsYXNzIE1lZGlhU291cEhlbHBlciB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgfVxuXG4gICAgZ2V0UGFydGljaXBhbnREZXZpY2UgPSBhc3luYyAocm91dGVyUnRwQ2FwYWJpbGl0aWVzKSA9PiB7XG4gICAgICAgIGxldCBkZXZpY2U7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGRldmljZSA9IG5ldyBEZXZpY2UoKVxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcilcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIG5ldyBEZXZpY2UoKSB0aHJvd3Mgb24gdW5zdXBwb3J0ZWQgYnJvd3NlcnMg4oCUIGJhaWwgd2l0aCBhIGNsZWFyIGVycm9yXG4gICAgICAgIC8vIGluc3RlYWQgb2YgZGVyZWZlcmVuY2luZyB1bmRlZmluZWQgb24gdGhlIG5leHQgbGluZS5cbiAgICAgICAgaWYgKCFkZXZpY2UpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignbWVkaWFzb3VwIERldmljZSBpcyBub3Qgc3VwcG9ydGVkIGluIHRoaXMgYnJvd3NlcicpO1xuICAgICAgICB9XG5cbiAgICAgICAgYXdhaXQgZGV2aWNlLmxvYWQoe1xuICAgICAgICAgICAgcm91dGVyUnRwQ2FwYWJpbGl0aWVzXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBkZXZpY2VcbiAgICB9O1xuXG4gICAgYXN5bmMgaW5pdENvbnN1bWVyVHJhbnNwb3J0KGRldmljZSwgcm9vbUlkLCB1c2VySWQsIGxhYmVsID0gJycpIHtcbiAgICAgICAgY29uc29sZS5sb2coXCJDUkVBVElORyBcIiArIChsYWJlbCA/IGxhYmVsLnRvVXBwZXJDYXNlKCkgKyBcIiBcIiA6IFwiXCIpICsgXCJDT05TVU1FUiBUUkFOU1BPUlQgRk9SIDogXCIgKyB1c2VySWQgKyBcIiBST09NIFwiICsgcm9vbUlkKTtcbiAgICAgICAgbGV0IGRhdGEgPSBudWxsO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgZGF0YSA9IGF3YWl0IHNvY2tldE1hbmFnZXIuZW1pdEV2ZW50KFZDRXZlbnRUeXBlLkNSRUFURV9XRUJSVENfVFJBTlNQT1JULCB7XG4gICAgICAgICAgICAgICAgZm9yY2VUY3A6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHVzZXJJZCxcbiAgICAgICAgICAgICAgICByb29tSWRcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICB2Y0FwcE1hbmFnZXIuZmlyZUV2ZW50KFZDRXZlbnRUeXBlLkNSRUFURV9UUkFOU1BPUlRfRkFJTEVELCB7fSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWRhdGEgfHwgZGF0YS5zdGF0dXMgPT09ICdFUlJPUicpIHtcbiAgICAgICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihkYXRhLmVycm9yKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdmNBcHBNYW5hZ2VyLmZpcmVFdmVudChWQ0V2ZW50VHlwZS5DUkVBVEVfVFJBTlNQT1JUX0ZBSUxFRCwge30pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGNvbnN1bWVyVHJhbnNwb3J0ID0gZGV2aWNlLmNyZWF0ZVJlY3ZUcmFuc3BvcnQoZGF0YS5wYXJhbXMpO1xuICAgICAgICBjb25zdW1lclRyYW5zcG9ydC5vbihcbiAgICAgICAgICAgICdjb25uZWN0JyxcbiAgICAgICAgICAgIGZ1bmN0aW9uICh7ZHRsc1BhcmFtZXRlcnN9LCBjYWxsYmFjaywgZXJyYmFjaykge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiQ09OU1VNRVIgQ09OTkVDVCBEVExTIFBBUkFNUyA6IFwiLCBkdGxzUGFyYW1ldGVycyk7XG4gICAgICAgICAgICAgICAgc29ja2V0TWFuYWdlci5lbWl0RXZlbnQoVkNFdmVudFR5cGUuQ09OTkVDVF9UUkFOU1BPUlQsIHtcbiAgICAgICAgICAgICAgICAgICAgZHRsc1BhcmFtZXRlcnMsXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zcG9ydElkOiBkYXRhLnBhcmFtcy5pZCxcbiAgICAgICAgICAgICAgICAgICAgdXNlcklkLFxuICAgICAgICAgICAgICAgICAgICByb29tSWRcbiAgICAgICAgICAgICAgICB9KS50aGVuKGNhbGxiYWNrKVxuICAgICAgICAgICAgICAgICAgICAuY2F0Y2goZXJyYmFjayk7XG4gICAgICAgICAgICB9LmJpbmQodGhpcylcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdW1lclRyYW5zcG9ydC5vbihcbiAgICAgICAgICAgICdjb25uZWN0aW9uc3RhdGVjaGFuZ2UnLFxuICAgICAgICAgICAgYXN5bmMgZnVuY3Rpb24gKHN0YXRlKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChzdGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdjb25uZWN0aW5nJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdjb25uZWN0ZWQnOlxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2ZhaWxlZCc6XG4gICAgICAgICAgICAgICAgICAgICAgICB2Y0FwcE1hbmFnZXIuZmlyZUV2ZW50KFZDRXZlbnRUeXBlLkNPTlNVTUVSX1RSQU5TUE9SVF9GQUlMRUQsIHt9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LmJpbmQodGhpcylcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gY29uc3VtZXJUcmFuc3BvcnQ7XG4gICAgfVxuXG4gICAgYXN5bmMgaW5pdFByb2R1Y2VyVHJhbnNwb3J0KGRldmljZSwgcm9vbUlkLCB1c2VySWQpIHtcbiAgICAgICAgY29uc29sZS5sb2coXCJDUkVBVElORyBQUk9EVUNFUiBUUkFOU1BPUlQgRk9SIDogXCIgKyB1c2VySWQgKyBcIiBST09NIDogXCIgKyByb29tSWQpO1xuICAgICAgICBsZXQgZGF0YSA9IG51bGw7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBkYXRhID0gYXdhaXQgc29ja2V0TWFuYWdlci5lbWl0RXZlbnQoVkNFdmVudFR5cGUuQ1JFQVRFX1dFQlJUQ19UUkFOU1BPUlQsIHtcbiAgICAgICAgICAgICAgICBmb3JjZVRjcDogZmFsc2UsXG4gICAgICAgICAgICAgICAgcnRwQ2FwYWJpbGl0aWVzOiBkZXZpY2UucnRwQ2FwYWJpbGl0aWVzLFxuICAgICAgICAgICAgICAgIHJvb21JZCxcbiAgICAgICAgICAgICAgICB1c2VySWRcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICB2Y0FwcE1hbmFnZXIuZmlyZUV2ZW50KFZDRXZlbnRUeXBlLkNSRUFURV9UUkFOU1BPUlRfRkFJTEVELCB7fSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWRhdGEgfHwgZGF0YS5zdGF0dXMgPT09ICdFUlJPUicpIHtcbiAgICAgICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihkYXRhLmVycm9yKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdmNBcHBNYW5hZ2VyLmZpcmVFdmVudChWQ0V2ZW50VHlwZS5DUkVBVEVfVFJBTlNQT1JUX0ZBSUxFRCwge30pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHByb2R1Y2VyVHJhbnNwb3J0ID0gZGV2aWNlLmNyZWF0ZVNlbmRUcmFuc3BvcnQoZGF0YS5wYXJhbXMpO1xuICAgICAgICBwcm9kdWNlclRyYW5zcG9ydC5vbihcbiAgICAgICAgICAgICdjb25uZWN0JyxcbiAgICAgICAgICAgIGFzeW5jIGZ1bmN0aW9uICh7ZHRsc1BhcmFtZXRlcnN9LCBjYWxsYmFjaywgZXJyYmFjaykge1xuICAgICAgICAgICAgICAgIHNvY2tldE1hbmFnZXIuZW1pdEV2ZW50KFZDRXZlbnRUeXBlLkNPTk5FQ1RfVFJBTlNQT1JULCB7XG4gICAgICAgICAgICAgICAgICAgIGR0bHNQYXJhbWV0ZXJzLFxuICAgICAgICAgICAgICAgICAgICB0cmFuc3BvcnRJZDogZGF0YS5wYXJhbXMuaWQsXG4gICAgICAgICAgICAgICAgICAgIHJvb21JZCxcbiAgICAgICAgICAgICAgICAgICAgdXNlcklkXG4gICAgICAgICAgICAgICAgfSkudGhlbihjYWxsYmFjaylcbiAgICAgICAgICAgICAgICAgICAgLmNhdGNoKGVycmJhY2spO1xuICAgICAgICAgICAgfS5iaW5kKHRoaXMpXG4gICAgICAgICk7XG5cbiAgICAgICAgcHJvZHVjZXJUcmFuc3BvcnQub24oXG4gICAgICAgICAgICAncHJvZHVjZScsXG4gICAgICAgICAgICBhc3luYyBmdW5jdGlvbiAoe2tpbmQsIHJ0cFBhcmFtZXRlcnMsIGFwcERhdGF9LCBjYWxsYmFjaywgZXJyYmFjaykge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHtwcm9kdWNlcklkfSA9IGF3YWl0IHNvY2tldE1hbmFnZXIuZW1pdEV2ZW50KFZDRXZlbnRUeXBlLlBST0RVQ0UsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y2VyVHJhbnNwb3J0SWQ6IHByb2R1Y2VyVHJhbnNwb3J0LmlkLFxuICAgICAgICAgICAgICAgICAgICAgICAga2luZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJ0cFBhcmFtZXRlcnMsXG4gICAgICAgICAgICAgICAgICAgICAgICByb29tSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICB1c2VySWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBhcHBEYXRhXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBwcm9kdWNlcklkXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIGVycmJhY2soZXJyKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0uYmluZCh0aGlzKVxuICAgICAgICApO1xuXG4gICAgICAgIHByb2R1Y2VyVHJhbnNwb3J0Lm9uKFxuICAgICAgICAgICAgJ2Nvbm5lY3Rpb25zdGF0ZWNoYW5nZScsXG4gICAgICAgICAgICBmdW5jdGlvbiAoc3RhdGUpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHN0YXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2Nvbm5lY3RpbmcnOlxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2Nvbm5lY3RlZCc6XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnZmFpbGVkJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIE1pcnJvciB0aGUgY29uc3VtZXIgdHJhbnNwb3J0OiBzdXJmYWNlIHRoZSBmYWlsdXJlIChzbyB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJvb20gY2FuIHJlYWN0L3JlY292ZXIpIGluc3RlYWQgb2YgY2xvc2luZyBzaWxlbnRseS5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1BST0RVQ0VSIFRSQU5TUE9SVCBGQUlMRUQgZm9yICcgKyB1c2VySWQgKyAnIHJvb20gJyArIHJvb21JZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB2Y0FwcE1hbmFnZXIuZmlyZUV2ZW50KFZDRXZlbnRUeXBlLlBST0RVQ0VSX1RSQU5TUE9SVF9GQUlMRUQsIHt9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y2VyVHJhbnNwb3J0LmNsb3NlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfS5iaW5kKHRoaXMpXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIHByb2R1Y2VyVHJhbnNwb3J0O1xuICAgIH1cblxuICAgIGdldENvbnN1bWVTdHJlYW0gPSBhc3luYyAocHJvZHVjZXJJZCwgcnRwQ2FwYWJpbGl0aWVzLCBjb25zdW1lclRyYW5zcG9ydCwgcm9vbUlkLCB1c2VySWQsIHR5cGUpID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coXCJDT05TVU1JTkcgRlJPTSA6IFwiICsgcHJvZHVjZXJJZCArIFwiIFJPT00gOiBcIiArIHJvb21JZCk7XG5cbiAgICAgICAgaWYgKGNvbnN1bWVyVHJhbnNwb3J0KSB7XG4gICAgICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgc29ja2V0TWFuYWdlci5lbWl0RXZlbnQoVkNFdmVudFR5cGUuQ09OU1VNRSwge1xuICAgICAgICAgICAgICAgIHJ0cENhcGFiaWxpdGllcyxcbiAgICAgICAgICAgICAgICBjb25zdW1lclRyYW5zcG9ydElkOiBjb25zdW1lclRyYW5zcG9ydC5pZCxcbiAgICAgICAgICAgICAgICBwcm9kdWNlcklkLFxuICAgICAgICAgICAgICAgIHJvb21JZCxcbiAgICAgICAgICAgICAgICB1c2VySWQsXG4gICAgICAgICAgICAgICAga2luZDogdHlwZVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLnBhcmFtcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHtpZCwga2luZCwgcnRwUGFyYW1ldGVyc30gPSBkYXRhLnBhcmFtcztcblxuICAgICAgICAgICAgICAgIGxldCBjb2RlY09wdGlvbnMgPSB7fTtcblxuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbnN1bWVyID0gYXdhaXQgY29uc3VtZXJUcmFuc3BvcnQuY29uc3VtZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y2VySWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBraW5kLFxuICAgICAgICAgICAgICAgICAgICAgICAgcnRwUGFyYW1ldGVycyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGVjT3B0aW9uc1xuICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhjb25zdW1lcik7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cmVhbSA9IG5ldyBNZWRpYVN0cmVhbSgpO1xuICAgICAgICAgICAgICAgICAgICBzdHJlYW0uYWRkVHJhY2soY29uc3VtZXIudHJhY2spO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdW1lcixcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVhbSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGtpbmRcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge307XG4gICAgfVxufVxuXG5jb25zdCBpbnN0YW5jZSA9IG5ldyBNZWRpYVNvdXBIZWxwZXIoKTtcbk9iamVjdC5mcmVlemUoaW5zdGFuY2UpO1xuZXhwb3J0IGRlZmF1bHQgaW5zdGFuY2U7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLGdCQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxZQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxjQUFBLEdBQUFDLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSSxlQUFBLEdBQUFELHNCQUFBLENBQUFILE9BQUE7QUFBNEMsU0FBQUcsdUJBQUFFLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFBQSxTQUFBRyxnQkFBQUgsQ0FBQSxFQUFBSSxDQUFBLEVBQUFDLENBQUEsWUFBQUQsQ0FBQSxHQUFBRSxjQUFBLENBQUFGLENBQUEsTUFBQUosQ0FBQSxHQUFBTyxNQUFBLENBQUFDLGNBQUEsQ0FBQVIsQ0FBQSxFQUFBSSxDQUFBLElBQUFLLEtBQUEsRUFBQUosQ0FBQSxFQUFBSyxVQUFBLE1BQUFDLFlBQUEsTUFBQUMsUUFBQSxVQUFBWixDQUFBLENBQUFJLENBQUEsSUFBQUMsQ0FBQSxFQUFBTCxDQUFBO0FBQUEsU0FBQU0sZUFBQUQsQ0FBQSxRQUFBUSxDQUFBLEdBQUFDLFlBQUEsQ0FBQVQsQ0FBQSx1Q0FBQVEsQ0FBQSxHQUFBQSxDQUFBLEdBQUFBLENBQUE7QUFBQSxTQUFBQyxhQUFBVCxDQUFBLEVBQUFELENBQUEsMkJBQUFDLENBQUEsS0FBQUEsQ0FBQSxTQUFBQSxDQUFBLE1BQUFMLENBQUEsR0FBQUssQ0FBQSxDQUFBVSxNQUFBLENBQUFDLFdBQUEsa0JBQUFoQixDQUFBLFFBQUFhLENBQUEsR0FBQWIsQ0FBQSxDQUFBaUIsSUFBQSxDQUFBWixDQUFBLEVBQUFELENBQUEsdUNBQUFTLENBQUEsU0FBQUEsQ0FBQSxZQUFBSyxTQUFBLHlFQUFBZCxDQUFBLEdBQUFlLE1BQUEsR0FBQUMsTUFBQSxFQUFBZixDQUFBO0FBRTVDLE1BQU1nQixlQUFlLENBQUM7RUFDbEJDLFdBQVdBLENBQUEsRUFBRztJQUFBbkIsZUFBQSwrQkFHUyxNQUFPb0IscUJBQXFCLElBQUs7TUFDcEQsSUFBSUMsTUFBTTtNQUVWLElBQUk7UUFDQUEsTUFBTSxHQUFHLElBQUlDLHVCQUFNLENBQUMsQ0FBQztNQUN6QixDQUFDLENBQUMsT0FBT0MsS0FBSyxFQUFFO1FBQ1pDLE9BQU8sQ0FBQ0QsS0FBSyxDQUFDQSxLQUFLLENBQUM7TUFDeEI7O01BRUE7TUFDQTtNQUNBLElBQUksQ0FBQ0YsTUFBTSxFQUFFO1FBQ1QsTUFBTSxJQUFJSSxLQUFLLENBQUMsbURBQW1ELENBQUM7TUFDeEU7TUFFQSxNQUFNSixNQUFNLENBQUNLLElBQUksQ0FBQztRQUNkTjtNQUNKLENBQUMsQ0FBQztNQUVGLE9BQU9DLE1BQU07SUFDakIsQ0FBQztJQUFBckIsZUFBQSwyQkFnSmtCLE9BQU8yQixVQUFVLEVBQUVDLGVBQWUsRUFBRUMsaUJBQWlCLEVBQUVDLE1BQU0sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEtBQUs7TUFDL0ZSLE9BQU8sQ0FBQ1MsR0FBRyxDQUFDLG1CQUFtQixHQUFHTixVQUFVLEdBQUcsVUFBVSxHQUFHRyxNQUFNLENBQUM7TUFFbkUsSUFBSUQsaUJBQWlCLEVBQUU7UUFDbkIsTUFBTUssSUFBSSxHQUFHLE1BQU1DLHNCQUFhLENBQUNDLFNBQVMsQ0FBQ0Msd0JBQVcsQ0FBQ0MsT0FBTyxFQUFFO1VBQzVEVixlQUFlO1VBQ2ZXLG1CQUFtQixFQUFFVixpQkFBaUIsQ0FBQ1csRUFBRTtVQUN6Q2IsVUFBVTtVQUNWRyxNQUFNO1VBQ05DLE1BQU07VUFDTlUsSUFBSSxFQUFFVDtRQUNWLENBQUMsQ0FBQztRQUVGLElBQUlFLElBQUksQ0FBQ1EsTUFBTSxFQUFFO1VBQ2IsTUFBTTtZQUFDRixFQUFFO1lBQUVDLElBQUk7WUFBRUU7VUFBYSxDQUFDLEdBQUdULElBQUksQ0FBQ1EsTUFBTTtVQUU3QyxJQUFJRSxZQUFZLEdBQUcsQ0FBQyxDQUFDO1VBRXJCLElBQUk7WUFDQSxNQUFNQyxRQUFRLEdBQUcsTUFBTWhCLGlCQUFpQixDQUFDaUIsT0FBTyxDQUFDO2NBQzdDTixFQUFFO2NBQ0ZiLFVBQVU7Y0FDVmMsSUFBSTtjQUNKRSxhQUFhO2NBQ2JDO1lBQ0osQ0FBQyxDQUFDO1lBRUZwQixPQUFPLENBQUNTLEdBQUcsQ0FBQ1ksUUFBUSxDQUFDO1lBQ3JCLE1BQU1FLE1BQU0sR0FBRyxJQUFJQyxXQUFXLENBQUMsQ0FBQztZQUNoQ0QsTUFBTSxDQUFDRSxRQUFRLENBQUNKLFFBQVEsQ0FBQ0ssS0FBSyxDQUFDO1lBRS9CLE9BQU87Y0FDSEwsUUFBUTtjQUNSRSxNQUFNO2NBQ05OO1lBQ0osQ0FBQztVQUNMLENBQUMsQ0FBQyxPQUFPNUMsQ0FBQyxFQUFFO1lBQ1IyQixPQUFPLENBQUNELEtBQUssQ0FBQzFCLENBQUMsQ0FBQztVQUNwQjtRQUNKO01BQ0o7TUFFQSxPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7RUFqTkQ7RUF3QkEsTUFBTXNELHFCQUFxQkEsQ0FBQzlCLE1BQU0sRUFBRVMsTUFBTSxFQUFFQyxNQUFNLEVBQWM7SUFBQSxJQUFacUIsS0FBSyxHQUFBQyxTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBRSxTQUFBLEdBQUFGLFNBQUEsTUFBRyxFQUFFO0lBQzFEN0IsT0FBTyxDQUFDUyxHQUFHLENBQUMsV0FBVyxJQUFJbUIsS0FBSyxHQUFHQSxLQUFLLENBQUNJLFdBQVcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLDJCQUEyQixHQUFHekIsTUFBTSxHQUFHLFFBQVEsR0FBR0QsTUFBTSxDQUFDO0lBQzlILElBQUlJLElBQUksR0FBRyxJQUFJO0lBQ2YsSUFBSTtNQUNBQSxJQUFJLEdBQUcsTUFBTUMsc0JBQWEsQ0FBQ0MsU0FBUyxDQUFDQyx3QkFBVyxDQUFDb0IsdUJBQXVCLEVBQUU7UUFDdEVDLFFBQVEsRUFBRSxLQUFLO1FBQ2YzQixNQUFNO1FBQ05EO01BQ0osQ0FBQyxDQUFDO0lBQ04sQ0FBQyxDQUFDLE9BQU9qQyxDQUFDLEVBQUU7TUFDUjhELHVCQUFZLENBQUNDLFNBQVMsQ0FBQ3ZCLHdCQUFXLENBQUN3Qix1QkFBdUIsRUFBRSxDQUFDLENBQUMsQ0FBQztNQUMvRDtJQUNKO0lBRUEsSUFBSSxDQUFDM0IsSUFBSSxJQUFJQSxJQUFJLENBQUM0QixNQUFNLEtBQUssT0FBTyxFQUFFO01BQ2xDLElBQUk1QixJQUFJLEVBQUU7UUFDTlYsT0FBTyxDQUFDRCxLQUFLLENBQUNXLElBQUksQ0FBQ1gsS0FBSyxDQUFDO01BQzdCO01BRUFvQyx1QkFBWSxDQUFDQyxTQUFTLENBQUN2Qix3QkFBVyxDQUFDd0IsdUJBQXVCLEVBQUUsQ0FBQyxDQUFDLENBQUM7TUFDL0Q7SUFDSjtJQUVBLElBQUloQyxpQkFBaUIsR0FBR1IsTUFBTSxDQUFDMEMsbUJBQW1CLENBQUM3QixJQUFJLENBQUNRLE1BQU0sQ0FBQztJQUMvRGIsaUJBQWlCLENBQUNtQyxFQUFFLENBQ2hCLFNBQVMsRUFDVCxVQUFBQyxJQUFBLEVBQTRCQyxRQUFRLEVBQUVDLE9BQU8sRUFBRTtNQUFBLElBQXJDO1FBQUNDO01BQWMsQ0FBQyxHQUFBSCxJQUFBO01BQ3RCekMsT0FBTyxDQUFDUyxHQUFHLENBQUMsaUNBQWlDLEVBQUVtQyxjQUFjLENBQUM7TUFDOURqQyxzQkFBYSxDQUFDQyxTQUFTLENBQUNDLHdCQUFXLENBQUNnQyxpQkFBaUIsRUFBRTtRQUNuREQsY0FBYztRQUNkRSxXQUFXLEVBQUVwQyxJQUFJLENBQUNRLE1BQU0sQ0FBQ0YsRUFBRTtRQUMzQlQsTUFBTTtRQUNORDtNQUNKLENBQUMsQ0FBQyxDQUFDeUMsSUFBSSxDQUFDTCxRQUFRLENBQUMsQ0FDWk0sS0FBSyxDQUFDTCxPQUFPLENBQUM7SUFDdkIsQ0FBQyxDQUFDTSxJQUFJLENBQUMsSUFBSSxDQUNmLENBQUM7SUFFRDVDLGlCQUFpQixDQUFDbUMsRUFBRSxDQUNoQix1QkFBdUIsRUFDdkIsZ0JBQWdCVSxLQUFLLEVBQUU7TUFDbkIsUUFBUUEsS0FBSztRQUNULEtBQUssWUFBWTtVQUNiO1FBQ0osS0FBSyxXQUFXO1VBQ1o7UUFDSixLQUFLLFFBQVE7VUFDVGYsdUJBQVksQ0FBQ0MsU0FBUyxDQUFDdkIsd0JBQVcsQ0FBQ3NDLHlCQUF5QixFQUFFLENBQUMsQ0FBQyxDQUFDO1VBQ2pFO1FBQ0o7VUFDSTtNQUNSO0lBQ0osQ0FBQyxDQUFDRixJQUFJLENBQUMsSUFBSSxDQUNmLENBQUM7SUFFRCxPQUFPNUMsaUJBQWlCO0VBQzVCO0VBRUEsTUFBTStDLHFCQUFxQkEsQ0FBQ3ZELE1BQU0sRUFBRVMsTUFBTSxFQUFFQyxNQUFNLEVBQUU7SUFDaERQLE9BQU8sQ0FBQ1MsR0FBRyxDQUFDLG9DQUFvQyxHQUFHRixNQUFNLEdBQUcsVUFBVSxHQUFHRCxNQUFNLENBQUM7SUFDaEYsSUFBSUksSUFBSSxHQUFHLElBQUk7SUFDZixJQUFJO01BQ0FBLElBQUksR0FBRyxNQUFNQyxzQkFBYSxDQUFDQyxTQUFTLENBQUNDLHdCQUFXLENBQUNvQix1QkFBdUIsRUFBRTtRQUN0RUMsUUFBUSxFQUFFLEtBQUs7UUFDZjlCLGVBQWUsRUFBRVAsTUFBTSxDQUFDTyxlQUFlO1FBQ3ZDRSxNQUFNO1FBQ05DO01BQ0osQ0FBQyxDQUFDO0lBQ04sQ0FBQyxDQUFDLE9BQU9sQyxDQUFDLEVBQUU7TUFDUjhELHVCQUFZLENBQUNDLFNBQVMsQ0FBQ3ZCLHdCQUFXLENBQUN3Qix1QkFBdUIsRUFBRSxDQUFDLENBQUMsQ0FBQztNQUMvRDtJQUNKO0lBRUEsSUFBSSxDQUFDM0IsSUFBSSxJQUFJQSxJQUFJLENBQUM0QixNQUFNLEtBQUssT0FBTyxFQUFFO01BQ2xDLElBQUk1QixJQUFJLEVBQUU7UUFDTlYsT0FBTyxDQUFDRCxLQUFLLENBQUNXLElBQUksQ0FBQ1gsS0FBSyxDQUFDO01BQzdCO01BRUFvQyx1QkFBWSxDQUFDQyxTQUFTLENBQUN2Qix3QkFBVyxDQUFDd0IsdUJBQXVCLEVBQUUsQ0FBQyxDQUFDLENBQUM7TUFDL0Q7SUFDSjtJQUVBLElBQUlnQixpQkFBaUIsR0FBR3hELE1BQU0sQ0FBQ3lELG1CQUFtQixDQUFDNUMsSUFBSSxDQUFDUSxNQUFNLENBQUM7SUFDL0RtQyxpQkFBaUIsQ0FBQ2IsRUFBRSxDQUNoQixTQUFTLEVBQ1QsZ0JBQUFlLEtBQUEsRUFBa0NiLFFBQVEsRUFBRUMsT0FBTyxFQUFFO01BQUEsSUFBckM7UUFBQ0M7TUFBYyxDQUFDLEdBQUFXLEtBQUE7TUFDNUI1QyxzQkFBYSxDQUFDQyxTQUFTLENBQUNDLHdCQUFXLENBQUNnQyxpQkFBaUIsRUFBRTtRQUNuREQsY0FBYztRQUNkRSxXQUFXLEVBQUVwQyxJQUFJLENBQUNRLE1BQU0sQ0FBQ0YsRUFBRTtRQUMzQlYsTUFBTTtRQUNOQztNQUNKLENBQUMsQ0FBQyxDQUFDd0MsSUFBSSxDQUFDTCxRQUFRLENBQUMsQ0FDWk0sS0FBSyxDQUFDTCxPQUFPLENBQUM7SUFDdkIsQ0FBQyxDQUFDTSxJQUFJLENBQUMsSUFBSSxDQUNmLENBQUM7SUFFREksaUJBQWlCLENBQUNiLEVBQUUsQ0FDaEIsU0FBUyxFQUNULGdCQUFBZ0IsS0FBQSxFQUFnRGQsUUFBUSxFQUFFQyxPQUFPLEVBQUU7TUFBQSxJQUFuRDtRQUFDMUIsSUFBSTtRQUFFRSxhQUFhO1FBQUVzQztNQUFPLENBQUMsR0FBQUQsS0FBQTtNQUMxQyxJQUFJO1FBQ0EsTUFBTTtVQUFDckQ7UUFBVSxDQUFDLEdBQUcsTUFBTVEsc0JBQWEsQ0FBQ0MsU0FBUyxDQUFDQyx3QkFBVyxDQUFDNkMsT0FBTyxFQUFFO1VBQ3BFQyxtQkFBbUIsRUFBRU4saUJBQWlCLENBQUNyQyxFQUFFO1VBQ3pDQyxJQUFJO1VBQ0pFLGFBQWE7VUFDYmIsTUFBTTtVQUNOQyxNQUFNO1VBQ05rRDtRQUNKLENBQUMsQ0FBQztRQUVGZixRQUFRLENBQUM7VUFDTDFCLEVBQUUsRUFBRWI7UUFDUixDQUFDLENBQUM7TUFDTixDQUFDLENBQUMsT0FBT3lELEdBQUcsRUFBRTtRQUNWakIsT0FBTyxDQUFDaUIsR0FBRyxDQUFDO01BQ2hCO0lBQ0osQ0FBQyxDQUFDWCxJQUFJLENBQUMsSUFBSSxDQUNmLENBQUM7SUFFREksaUJBQWlCLENBQUNiLEVBQUUsQ0FDaEIsdUJBQXVCLEVBQ3ZCLFVBQVVVLEtBQUssRUFBRTtNQUNiLFFBQVFBLEtBQUs7UUFDVCxLQUFLLFlBQVk7VUFDYjtRQUNKLEtBQUssV0FBVztVQUNaO1FBQ0osS0FBSyxRQUFRO1VBQ1Q7VUFDQTtVQUNBbEQsT0FBTyxDQUFDRCxLQUFLLENBQUMsZ0NBQWdDLEdBQUdRLE1BQU0sR0FBRyxRQUFRLEdBQUdELE1BQU0sQ0FBQztVQUM1RTZCLHVCQUFZLENBQUNDLFNBQVMsQ0FBQ3ZCLHdCQUFXLENBQUNnRCx5QkFBeUIsRUFBRSxDQUFDLENBQUMsQ0FBQztVQUNqRVIsaUJBQWlCLENBQUNTLEtBQUssQ0FBQyxDQUFDO1VBQ3pCO1FBQ0o7VUFDSTtNQUNSO0lBQ0osQ0FBQyxDQUFDYixJQUFJLENBQUMsSUFBSSxDQUNmLENBQUM7SUFFRCxPQUFPSSxpQkFBaUI7RUFDNUI7QUE4Q0o7QUFFQSxNQUFNVSxRQUFRLEdBQUcsSUFBSXJFLGVBQWUsQ0FBQyxDQUFDO0FBQ3RDZCxNQUFNLENBQUNvRixNQUFNLENBQUNELFFBQVEsQ0FBQztBQUFDLElBQUFFLFFBQUEsR0FBQUMsT0FBQSxDQUFBM0YsT0FBQSxHQUNUd0YsUUFBUSIsImlnbm9yZUxpc3QiOltdfQ==
@@ -17,15 +17,26 @@ class Transports {
17
17
  _defineProperty(this, "setProducerTransport", producerTransport => {
18
18
  this.producerTransport = producerTransport;
19
19
  });
20
- _defineProperty(this, "closeConsumerTransport", () => {
21
- if (this.consumerTransport) {
22
- this.consumerTransport.close();
23
- }
20
+ // Recv transports are split by kind (audio / video) so that closing a
21
+ // consumer of one kind can never recycle its m-section into a consumer of
22
+ // another kind — the cause of the "RTP extension ID reassignment" collision.
23
+ // They are created just-in-time (see VCRoomWorkspace.getRecvTransport), so a
24
+ // session only ever holds the transports it actually needs.
25
+ _defineProperty(this, "setAudioConsumerTransport", transport => {
26
+ this.audioConsumerTransport = transport;
27
+ });
28
+ _defineProperty(this, "setVideoConsumerTransport", transport => {
29
+ this.videoConsumerTransport = transport;
24
30
  });
25
- _defineProperty(this, "setConsumerTransport", consumerTransport => {
26
- this.consumerTransport = consumerTransport;
31
+ _defineProperty(this, "closeRecvTransports", () => {
32
+ if (this.audioConsumerTransport) {
33
+ this.audioConsumerTransport.close();
34
+ }
35
+ if (this.videoConsumerTransport) {
36
+ this.videoConsumerTransport.close();
37
+ }
27
38
  });
28
39
  }
29
40
  }
30
41
  exports.default = Transports;
31
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUcmFuc3BvcnRzIiwiY29uc3RydWN0b3IiLCJfZGVmaW5lUHJvcGVydHkiLCJwcm9kdWNlclRyYW5zcG9ydCIsImNsb3NlIiwiY29uc3VtZXJUcmFuc3BvcnQiLCJleHBvcnRzIiwiZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tZWRpYS9UcmFuc3BvcnRzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGNsYXNzIFRyYW5zcG9ydHMge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxuXG4gIGNsb3NlUHJvZHVjZXJUcmFuc3BvcnQgPSAoKSA9PiB7XG4gICAgaWYodGhpcy5wcm9kdWNlclRyYW5zcG9ydCkge1xuICAgICAgdGhpcy5wcm9kdWNlclRyYW5zcG9ydC5jbG9zZSgpO1xuICAgIH1cbiAgfTtcblxuICBzZXRQcm9kdWNlclRyYW5zcG9ydCA9IChwcm9kdWNlclRyYW5zcG9ydCkgPT4ge1xuICAgIHRoaXMucHJvZHVjZXJUcmFuc3BvcnQgPSBwcm9kdWNlclRyYW5zcG9ydDtcbiAgfTtcblxuICBjbG9zZUNvbnN1bWVyVHJhbnNwb3J0ID0gKCkgPT4ge1xuICAgIGlmKHRoaXMuY29uc3VtZXJUcmFuc3BvcnQpIHtcbiAgICAgIHRoaXMuY29uc3VtZXJUcmFuc3BvcnQuY2xvc2UoKTtcbiAgICB9XG4gIH07XG5cbiAgc2V0Q29uc3VtZXJUcmFuc3BvcnQgPSAoY29uc3VtZXJUcmFuc3BvcnQpID0+IHtcbiAgICB0aGlzLmNvbnN1bWVyVHJhbnNwb3J0ID0gY29uc3VtZXJUcmFuc3BvcnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQWUsTUFBTUEsVUFBVSxDQUFDO0VBQzlCQyxXQUFXQSxDQUFBLEVBQUc7SUFBQUMsZUFBQSxpQ0FHVyxNQUFNO01BQzdCLElBQUcsSUFBSSxDQUFDQyxpQkFBaUIsRUFBRTtRQUN6QixJQUFJLENBQUNBLGlCQUFpQixDQUFDQyxLQUFLLENBQUMsQ0FBQztNQUNoQztJQUNGLENBQUM7SUFBQUYsZUFBQSwrQkFFdUJDLGlCQUFpQixJQUFLO01BQzVDLElBQUksQ0FBQ0EsaUJBQWlCLEdBQUdBLGlCQUFpQjtJQUM1QyxDQUFDO0lBQUFELGVBQUEsaUNBRXdCLE1BQU07TUFDN0IsSUFBRyxJQUFJLENBQUNHLGlCQUFpQixFQUFFO1FBQ3pCLElBQUksQ0FBQ0EsaUJBQWlCLENBQUNELEtBQUssQ0FBQyxDQUFDO01BQ2hDO0lBQ0YsQ0FBQztJQUFBRixlQUFBLCtCQUV1QkcsaUJBQWlCLElBQUs7TUFDNUMsSUFBSSxDQUFDQSxpQkFBaUIsR0FBR0EsaUJBQWlCO0lBQzVDLENBQUM7RUFwQkQ7QUFxQkY7QUFBQ0MsT0FBQSxDQUFBQyxPQUFBLEdBQUFQLFVBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
42
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUcmFuc3BvcnRzIiwiY29uc3RydWN0b3IiLCJfZGVmaW5lUHJvcGVydHkiLCJwcm9kdWNlclRyYW5zcG9ydCIsImNsb3NlIiwidHJhbnNwb3J0IiwiYXVkaW9Db25zdW1lclRyYW5zcG9ydCIsInZpZGVvQ29uc3VtZXJUcmFuc3BvcnQiLCJleHBvcnRzIiwiZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tZWRpYS9UcmFuc3BvcnRzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGNsYXNzIFRyYW5zcG9ydHMge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxuXG4gIGNsb3NlUHJvZHVjZXJUcmFuc3BvcnQgPSAoKSA9PiB7XG4gICAgaWYodGhpcy5wcm9kdWNlclRyYW5zcG9ydCkge1xuICAgICAgdGhpcy5wcm9kdWNlclRyYW5zcG9ydC5jbG9zZSgpO1xuICAgIH1cbiAgfTtcblxuICBzZXRQcm9kdWNlclRyYW5zcG9ydCA9IChwcm9kdWNlclRyYW5zcG9ydCkgPT4ge1xuICAgIHRoaXMucHJvZHVjZXJUcmFuc3BvcnQgPSBwcm9kdWNlclRyYW5zcG9ydDtcbiAgfTtcblxuICAvLyBSZWN2IHRyYW5zcG9ydHMgYXJlIHNwbGl0IGJ5IGtpbmQgKGF1ZGlvIC8gdmlkZW8pIHNvIHRoYXQgY2xvc2luZyBhXG4gIC8vIGNvbnN1bWVyIG9mIG9uZSBraW5kIGNhbiBuZXZlciByZWN5Y2xlIGl0cyBtLXNlY3Rpb24gaW50byBhIGNvbnN1bWVyIG9mXG4gIC8vIGFub3RoZXIga2luZCDigJQgdGhlIGNhdXNlIG9mIHRoZSBcIlJUUCBleHRlbnNpb24gSUQgcmVhc3NpZ25tZW50XCIgY29sbGlzaW9uLlxuICAvLyBUaGV5IGFyZSBjcmVhdGVkIGp1c3QtaW4tdGltZSAoc2VlIFZDUm9vbVdvcmtzcGFjZS5nZXRSZWN2VHJhbnNwb3J0KSwgc28gYVxuICAvLyBzZXNzaW9uIG9ubHkgZXZlciBob2xkcyB0aGUgdHJhbnNwb3J0cyBpdCBhY3R1YWxseSBuZWVkcy5cbiAgc2V0QXVkaW9Db25zdW1lclRyYW5zcG9ydCA9ICh0cmFuc3BvcnQpID0+IHtcbiAgICB0aGlzLmF1ZGlvQ29uc3VtZXJUcmFuc3BvcnQgPSB0cmFuc3BvcnQ7XG4gIH07XG5cbiAgc2V0VmlkZW9Db25zdW1lclRyYW5zcG9ydCA9ICh0cmFuc3BvcnQpID0+IHtcbiAgICB0aGlzLnZpZGVvQ29uc3VtZXJUcmFuc3BvcnQgPSB0cmFuc3BvcnQ7XG4gIH07XG5cbiAgY2xvc2VSZWN2VHJhbnNwb3J0cyA9ICgpID0+IHtcbiAgICBpZiAodGhpcy5hdWRpb0NvbnN1bWVyVHJhbnNwb3J0KSB7XG4gICAgICB0aGlzLmF1ZGlvQ29uc3VtZXJUcmFuc3BvcnQuY2xvc2UoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMudmlkZW9Db25zdW1lclRyYW5zcG9ydCkge1xuICAgICAgdGhpcy52aWRlb0NvbnN1bWVyVHJhbnNwb3J0LmNsb3NlKCk7XG4gICAgfVxuICB9O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBZSxNQUFNQSxVQUFVLENBQUM7RUFDOUJDLFdBQVdBLENBQUEsRUFBRztJQUFBQyxlQUFBLGlDQUdXLE1BQU07TUFDN0IsSUFBRyxJQUFJLENBQUNDLGlCQUFpQixFQUFFO1FBQ3pCLElBQUksQ0FBQ0EsaUJBQWlCLENBQUNDLEtBQUssQ0FBQyxDQUFDO01BQ2hDO0lBQ0YsQ0FBQztJQUFBRixlQUFBLCtCQUV1QkMsaUJBQWlCLElBQUs7TUFDNUMsSUFBSSxDQUFDQSxpQkFBaUIsR0FBR0EsaUJBQWlCO0lBQzVDLENBQUM7SUFFRDtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQUFELGVBQUEsb0NBQzZCRyxTQUFTLElBQUs7TUFDekMsSUFBSSxDQUFDQyxzQkFBc0IsR0FBR0QsU0FBUztJQUN6QyxDQUFDO0lBQUFILGVBQUEsb0NBRTRCRyxTQUFTLElBQUs7TUFDekMsSUFBSSxDQUFDRSxzQkFBc0IsR0FBR0YsU0FBUztJQUN6QyxDQUFDO0lBQUFILGVBQUEsOEJBRXFCLE1BQU07TUFDMUIsSUFBSSxJQUFJLENBQUNJLHNCQUFzQixFQUFFO1FBQy9CLElBQUksQ0FBQ0Esc0JBQXNCLENBQUNGLEtBQUssQ0FBQyxDQUFDO01BQ3JDO01BQ0EsSUFBSSxJQUFJLENBQUNHLHNCQUFzQixFQUFFO1FBQy9CLElBQUksQ0FBQ0Esc0JBQXNCLENBQUNILEtBQUssQ0FBQyxDQUFDO01BQ3JDO0lBQ0YsQ0FBQztFQWhDRDtBQWlDRjtBQUFDSSxPQUFBLENBQUFDLE9BQUEsR0FBQVQsVUFBQSIsImlnbm9yZUxpc3QiOltdfQ==