@1money/component-ui 0.0.64-alpha.2 → 0.0.64-alpha.4

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.
@@ -67,6 +67,7 @@ export var Select = function Select(props) {
67
67
  prefix = props.prefix,
68
68
  _props$emptyContent = props.emptyContent,
69
69
  emptyContent = _props$emptyContent === void 0 ? 'No options' : _props$emptyContent,
70
+ panelHeader = props.panelHeader,
70
71
  panelFooter = props.panelFooter,
71
72
  open = props.open,
72
73
  _props$defaultOpen = props.defaultOpen,
@@ -475,7 +476,10 @@ export var Select = function Select(props) {
475
476
  className: joinCls(classes('panel'), panelClassName),
476
477
  style: Object.assign(Object.assign({}, floatingStyles), transitionStyles)
477
478
  }), {
478
- children: [searchable && _jsx(SelectSearchControl, {
479
+ children: [panelHeader != null && _jsx("div", {
480
+ className: classes('panel-header'),
481
+ children: panelHeader
482
+ }), searchable && _jsx(SelectSearchControl, {
479
483
  ref: setSearchInputRef,
480
484
  classes: classes,
481
485
  // size={normalizedSize}
@@ -567,4 +571,4 @@ export var Select = function Select(props) {
567
571
  };
568
572
  Select.displayName = 'Select';
569
573
  export default /*#__PURE__*/memo(Select);
570
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC50c3giXSwibmFtZXMiOlsianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkZsb2F0aW5nRm9jdXNNYW5hZ2VyIiwiRmxvYXRpbmdQb3J0YWwiLCJ1c2VJbnRlcmFjdGlvbnMiLCJ1c2VMaXN0TmF2aWdhdGlvbiIsInVzZVR5cGVhaGVhZCIsIm1lbW8iLCJ1c2VFZmZlY3QiLCJ1c2VJZCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZUNvbnRyb2xsZWRTdGF0ZSIsInVzZUV2ZW50Q2FsbGJhY2siLCJJY29ucyIsIlNwaW5uZXIiLCJUeXBvZ3JhcGh5Qm9keSIsIlR5cG9ncmFwaHlMYWJlbCIsImpvaW5DbHMiLCJkZWZhdWx0Iiwicm9vdENsYXNzbmFtZXMiLCJTZWxlY3RGaWVsZFNoZWxsIiwiU2VsZWN0T3B0aW9uQ29udGVudCIsIlNlbGVjdFNlYXJjaENvbnRyb2wiLCJTZWxlY3RWYWx1ZUNvbnRlbnQiLCJ1c2VTZWxlY3RTaGVsbCIsIktFWUJPQVJEIiwiU0VMRUNUX1RZUE9HUkFQSFkiLCJleHRyYWN0T3B0aW9uVGV4dCIsImZpbHRlck9wdGlvbkdyb3VwcyIsImZsYXR0ZW5PcHRpb25Hcm91cHMiLCJnZXRNdWx0aXBsZVZhbHVlIiwiZ2V0Rm9udFNpemUiLCJnZXRPcHRpb25zQnlWYWx1ZXMiLCJnZXRTZWxlY3RlZE9wdGlvbnMiLCJpc09wdGlvblNlbGVjdGVkIiwibm9ybWFsaXplU2l6ZSIsIm5vcm1hbGl6ZU9wdGlvbkdyb3VwcyIsInJlbW92ZU11bHRpcGxlVmFsdWUiLCJ0b2dnbGVNdWx0aXBsZVZhbHVlIiwiREVGQVVMVF9NQVhfSEVJR0hUIiwiU2VsZWN0IiwicHJvcHMiLCJfcHJvcHMkY2xhc3NOYW1lIiwiY2xhc3NOYW1lIiwiX3Byb3BzJHByZWZpeENscyIsInByZWZpeENscyIsInN0eWxlIiwiaWQiLCJuYW1lIiwiYXJpYUxhYmVsIiwiYXJpYUxhYmVsbGVkQnkiLCJfcHJvcHMkcGxhY2Vob2xkZXIiLCJwbGFjZWhvbGRlciIsIl9wcm9wcyRvcHRpb25zIiwib3B0aW9ucyIsInZhbHVlIiwiZGVmYXVsdFZhbHVlIiwiX3Byb3BzJHNpemUiLCJzaXplIiwiX3Byb3BzJHN0YXR1cyIsInN0YXR1cyIsIl9wcm9wcyR2YXJpYW50IiwidmFyaWFudCIsIl9wcm9wcyRkaXNhYmxlZCIsImRpc2FibGVkIiwiZGlzYWJsZWRQcm9wIiwiX3Byb3BzJHJlYWRPbmx5IiwicmVhZE9ubHkiLCJfcHJvcHMkbG9hZGluZyIsImxvYWRpbmciLCJfcHJvcHMkbXVsdGlwbGUiLCJtdWx0aXBsZSIsIm1heFZpc2libGVWYWx1ZXMiLCJfcHJvcHMkc2VhcmNoYWJsZSIsInNlYXJjaGFibGUiLCJfcHJvcHMkc2VhcmNoUGxhY2Vob2wiLCJzZWFyY2hQbGFjZWhvbGRlciIsInNlYXJjaFZhbHVlIiwiX3Byb3BzJGRlZmF1bHRTZWFyY2hWIiwiZGVmYXVsdFNlYXJjaFZhbHVlIiwiX3Byb3BzJGZpbHRlcklucHV0QXV0IiwiZmlsdGVySW5wdXRBdXRvRm9jdXMiLCJsYWJlbCIsImxhYmVsQ2xhc3NOYW1lIiwiaW5mbyIsImRlc2NyaXB0aW9uIiwiZmVlZGJhY2siLCJfcHJvcHMkcmVxdWlyZWQiLCJyZXF1aXJlZCIsInByZWZpeCIsIl9wcm9wcyRlbXB0eUNvbnRlbnQiLCJlbXB0eUNvbnRlbnQiLCJwYW5lbEZvb3RlciIsIm9wZW4iLCJfcHJvcHMkZGVmYXVsdE9wZW4iLCJkZWZhdWx0T3BlbiIsIl9wcm9wcyRwb3J0YWwiLCJwb3J0YWwiLCJfcHJvcHMkYWxsb3dEZXNlbGVjdCIsImFsbG93RGVzZWxlY3QiLCJwYW5lbENsYXNzTmFtZSIsIm9wdGlvbkNsYXNzTmFtZSIsIl9wcm9wcyRsaXN0TWF4SGVpZ2h0IiwibGlzdE1heEhlaWdodCIsIm9mZnNldCIsImFuaW1hdGlvbiIsIm9uQ2hhbmdlIiwib25PcGVuQ2hhbmdlIiwib25TZWFyY2hDaGFuZ2UiLCJvbkJsdXIiLCJmaWx0ZXJPcHRpb24iLCJyZW5kZXJPcHRpb24iLCJyZW5kZXJPcHRpb25Db250ZW50IiwicmVuZGVyVmFsdWUiLCJyZWYiLCJpbnRlcmFjdGl2ZSIsImNsYXNzZXMiLCJhdXRvSWQiLCJ0cmlnZ2VySWQiLCJsYWJlbElkIiwiZGVzY3JpcHRpb25JZCIsImZlZWRiYWNrSWQiLCJvcHRpb25JZFByZWZpeCIsIl91c2VDb250cm9sbGVkU3RhdGUiLCJ1bmRlZmluZWQiLCJfdXNlQ29udHJvbGxlZFN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiaW5uZXJWYWx1ZSIsInNldElubmVyVmFsdWUiLCJfdXNlQ29udHJvbGxlZFN0YXRlMyIsIl91c2VDb250cm9sbGVkU3RhdGU0IiwiaW5uZXJTZWFyY2hWYWx1ZSIsInNldElubmVyU2VhcmNoVmFsdWUiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiYWN0aXZlSW5kZXgiLCJzZXRBY3RpdmVJbmRleCIsIm5vcm1hbGl6ZWRTaXplIiwiYWxsT3B0aW9uR3JvdXBzIiwiYWxsRmxhdE9wdGlvbnMiLCJ2aXNpYmxlT3B0aW9uR3JvdXBzIiwidmlzaWJsZUZsYXRPcHRpb25zIiwic2VsZWN0ZWRPcHRpb25zIiwic2VsZWN0ZWRJbmRleCIsImxlbmd0aCIsIm1hdGNoZWRJbmRleCIsImZpbmRJbmRleCIsIm9wdGlvbiIsImhhc1NlbGVjdGlvbiIsImxpc3RSZWYiLCJsaXN0Q29udGVudFJlZiIsImZsb2F0aW5nUmVmIiwidHJpZ2dlclJlZiIsInNlYXJjaElucHV0UmVmIiwiaGFuZGxlVHJpZ2dlclJlZiIsIm5vZGUiLCJjdXJyZW50IiwiX3VzZVNlbGVjdFNoZWxsIiwiaW5uZXJPcGVuIiwiaXNPcGVuIiwiaGFuZGxlT3BlbkNoYW5nZSIsInNldE9wZW4iLCJyZWZzIiwiY29udGV4dCIsImZsb2F0aW5nU3R5bGVzIiwidHJhbnNpdGlvblN0eWxlcyIsImlzTW91bnRlZCIsImJhc2VJbnRlcmFjdGlvbnMiLCJzZXRSZWZlcmVuY2UiLCJzZXRGbG9hdGluZyIsImxpc3ROYXZpZ2F0aW9uIiwib25OYXZpZ2F0ZSIsImVuYWJsZWQiLCJsb29wIiwidmlydHVhbCIsInR5cGVhaGVhZCIsIm9uTWF0Y2giLCJfdXNlSW50ZXJhY3Rpb25zIiwiY29uY2F0IiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiZ2V0UmVmZXJlbmNlUHJvcHMiLCJnZXRGbG9hdGluZ1Byb3BzIiwiZ2V0SXRlbVByb3BzIiwiZmlyc3RFbmFibGVkSW5kZXgiLCJwcmV2IiwiX2EiLCJmb2N1cyIsInByZXZlbnRTY3JvbGwiLCJzbGljZSIsInNldFNlYXJjaElucHV0UmVmIiwibm90aWZ5Qmx1cklmT3V0c2lkZSIsInJlbGF0ZWRUYXJnZXQiLCJldmVudCIsIl9iIiwibmV4dFRhcmdldCIsIndpdGhpblRyaWdnZXIiLCJjb250YWlucyIsIndpdGhpbkZsb2F0aW5nIiwiaGFuZGxlVHJpZ2dlckJsdXIiLCJoYW5kbGVPcHRpb25CbHVyIiwiY29tbWl0Q2hhbmdlIiwibmV4dFZhbHVlIiwibmV4dE9wdGlvbiIsImhhbmRsZVNlbGVjdE9wdGlvbiIsIm5leHRPcHRpb25zIiwiaGFuZGxlUmVtb3ZlU2VsZWN0ZWRWYWx1ZSIsIm9wdGlvblZhbHVlIiwiaW5jbHVkZXMiLCJoYW5kbGVUcmlnZ2VyS2V5RG93biIsImtleSIsIkVOVEVSIiwiU1BBQ0UiLCJwcmV2ZW50RGVmYXVsdCIsIkFSUk9XX0RPV04iLCJBUlJPV19VUCIsImhhbmRsZUl0ZW1Nb3VzZUVudGVyIiwiaW5kZXgiLCJoYW5kbGVUYWdSZW1vdmVNb3VzZURvd24iLCJzdG9wUHJvcGFnYXRpb24iLCJoYW5kbGVUYWdSZW1vdmVDbGljayIsImhhbmRsZVNlYXJjaEJsdXIiLCJoYW5kbGVTZWFyY2hDaGFuZ2UiLCJfZXZlbnQiLCJmaW5kRW5hYmxlZEluZGV4IiwiZGlyZWN0aW9uIiwic3RhcnQiLCJzdGVwIiwiY2FuZGlkYXRlIiwiaGFuZGxlU2VhcmNoS2V5RG93biIsIm5leHQiLCJFU0NBUEUiLCJyZW5kZXJWYWx1ZU1ldGEiLCJmb250U2l6ZSIsInZhbHVlTGFiZWxDbGFzcyIsImlzTXVsdGlwbGVWYWx1ZUZpbGxlZCIsInRyaWdnZXJDbGFzc05hbWUiLCJpY29uU2l6ZSIsImFjdGl2ZU9wdGlvbklkIiwiZmxvYXRpbmdBcmlhTGFiZWxsZWRCeSIsImRlc2NyaWJlZEJ5SWRzIiwiZmlsdGVyIiwiQm9vbGVhbiIsImpvaW4iLCJjaGlsZHJlbiIsIk9iamVjdCIsImFzc2lnbiIsInR5cGUiLCJvbktleURvd24iLCJvblJlbW92ZSIsIm9uUmVtb3ZlQ2xpY2siLCJvblJlbW92ZU1vdXNlRG93biIsInN0cm9rZVdpZHRoIiwiY29sb3IiLCJwYW5lbE5vZGUiLCJtb2RhbCIsImluaXRpYWxGb2N1cyIsInJldHVybkZvY3VzIiwiYWN0aXZlRGVzY2VuZGFudCIsImVtcHR5IiwiZmxhdEluZGV4IiwibWFwIiwiZ3JvdXAiLCJncm91cExhYmVsIiwic3Ryb25nIiwib3B0aW9uRmxhdEluZGV4Iiwic2VsZWN0ZWQiLCJhY3RpdmUiLCJvcHRpb25NZXRhIiwicm9sZSIsIm9uQ2xpY2siLCJvbk1vdXNlRW50ZXIiLCJjb250ZW50IiwiZGlzcGxheU5hbWUiXSwibWFwcGluZ3MiOiI7O0FBQUEsU0FBU0EsR0FBRyxJQUFJQyxJQUFJLEVBQUVDLElBQUksSUFBSUMsS0FBSyxRQUFRLG1CQUFtQjtBQ0E5RCxTQUNFQyxvQkFBb0IsRUFDcEJDLGNBQWMsRUFDZEMsZUFBZSxFQUNmQyxpQkFBaUIsRUFDakJDLFlBQVksUUFDUCxvQkFBb0I7QUFDM0IsU0FBU0MsSUFBSSxFQUFFQyxTQUFTLEVBQUVDLEtBQUssRUFBRUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLFFBQVEsUUFBUSxPQUFPO0FBQ3pFLFNBQVNDLGtCQUFrQixFQUFFQyxnQkFBZ0IsUUFBUSxlQUFlO0FBQ3BFLFNBQVNDLEtBQUssUUFBUSxVQUFVO0FBQ2hDLFNBQVNDLE9BQU8sUUFBUSxZQUFZO0FBQ3BDLFNBQVNDLGNBQWMsRUFBRUMsZUFBZSxRQUFRLGVBQWU7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QztZQUFBK0gsUUFBQSxFQUFHdko7VUFBVyxDQUFBLENBQ3REO1FBQUEsQ0FBQSxDQUFBO01BQ0csQ0FBQSxDQUVUO01BRUQsT0FBT0ssTUFBTSxHQUFHcEcsSUFBQSxDQUFDSSxjQUFjLEVBQUE7UUFBQWtQLFFBQUEsRUFBRVU7TUFBUyxDQUFBLENBQWtCLEdBQUdBLFNBQVM7SUFDMUUsQ0FBQyxDQUFDLENBQUU7RUFBQSxDQUFBLENBQ2E7QUFFdkIsQ0FBQztBQUVEck4sTUFBTSxDQUFDd08sV0FBVyxHQUFHLFFBQVE7QUFFN0IsNEJBQWUzUSxJQUFJLENBQUNtQyxNQUFNLENBQUMiLCJmaWxlIjoiY29tcG9uZW50cy9TZWxlY3QvU2VsZWN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IEZsb2F0aW5nRm9jdXNNYW5hZ2VyLCBGbG9hdGluZ1BvcnRhbCwgdXNlSW50ZXJhY3Rpb25zLCB1c2VMaXN0TmF2aWdhdGlvbiwgdXNlVHlwZWFoZWFkLCB9IGZyb20gJ0BmbG9hdGluZy11aS9yZWFjdCc7XG5pbXBvcnQgeyBtZW1vLCB1c2VFZmZlY3QsIHVzZUlkLCB1c2VNZW1vLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlQ29udHJvbGxlZFN0YXRlLCB1c2VFdmVudENhbGxiYWNrIH0gZnJvbSAnQDFtb25leS9ob29rcyc7XG5pbXBvcnQgeyBJY29ucyB9IGZyb20gJy4uL0ljb25zJztcbmltcG9ydCB7IFNwaW5uZXIgfSBmcm9tICcuLi9TcGlubmVyJztcbmltcG9ydCB7IFR5cG9ncmFwaHlCb2R5LCBUeXBvZ3JhcGh5TGFiZWwgfSBmcm9tICcuLi9UeXBvZ3JhcGh5JztcbmltcG9ydCB7IGpvaW5DbHMsIGRlZmF1bHQgYXMgcm9vdENsYXNzbmFtZXMgfSBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCBTZWxlY3RGaWVsZFNoZWxsIGZyb20gJy4vU2VsZWN0RmllbGRTaGVsbCc7XG5pbXBvcnQgU2VsZWN0T3B0aW9uQ29udGVudCBmcm9tICcuL1NlbGVjdE9wdGlvbkNvbnRlbnQnO1xuaW1wb3J0IFNlbGVjdFNlYXJjaENvbnRyb2wgZnJvbSAnLi9TZWxlY3RTZWFyY2hDb250cm9sJztcbmltcG9ydCBTZWxlY3RWYWx1ZUNvbnRlbnQgZnJvbSAnLi9TZWxlY3RWYWx1ZUNvbnRlbnQnO1xuaW1wb3J0IHsgdXNlU2VsZWN0U2hlbGwgfSBmcm9tICcuL3VzZVNlbGVjdFNoZWxsJztcbmltcG9ydCB7IEtFWUJPQVJELCBTRUxFQ1RfVFlQT0dSQVBIWSB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IGV4dHJhY3RPcHRpb25UZXh0LCBmaWx0ZXJPcHRpb25Hcm91cHMsIGZsYXR0ZW5PcHRpb25Hcm91cHMsIGdldE11bHRpcGxlVmFsdWUsIGdldEZvbnRTaXplLCBnZXRPcHRpb25zQnlWYWx1ZXMsIGdldFNlbGVjdGVkT3B0aW9ucywgaXNPcHRpb25TZWxlY3RlZCwgbm9ybWFsaXplU2l6ZSwgbm9ybWFsaXplT3B0aW9uR3JvdXBzLCByZW1vdmVNdWx0aXBsZVZhbHVlLCB0b2dnbGVNdWx0aXBsZVZhbHVlLCB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0ICcuL3N0eWxlJztcbmNvbnN0IERFRkFVTFRfTUFYX0hFSUdIVCA9IDMyMDtcbmV4cG9ydCBjb25zdCBTZWxlY3QgPSAocHJvcHMpID0+IHtcbiAgICBjb25zdCB7IGNsYXNzTmFtZSA9ICcnLCBwcmVmaXhDbHMgPSAnc2VsZWN0Jywgc3R5bGUsIGlkLCBuYW1lLCAnYXJpYS1sYWJlbCc6IGFyaWFMYWJlbCwgJ2FyaWEtbGFiZWxsZWRieSc6IGFyaWFMYWJlbGxlZEJ5LCBwbGFjZWhvbGRlciA9ICdWYWx1ZScsIG9wdGlvbnMgPSBbXSwgdmFsdWUsIGRlZmF1bHRWYWx1ZSwgc2l6ZSA9ICdsYXJnZScsIHN0YXR1cyA9ICdkZWZhdWx0JywgdmFyaWFudCA9ICdmaWxsJywgZGlzYWJsZWQ6IGRpc2FibGVkUHJvcCA9IGZhbHNlLCByZWFkT25seSA9IGZhbHNlLCBsb2FkaW5nID0gZmFsc2UsIG11bHRpcGxlID0gZmFsc2UsIG1heFZpc2libGVWYWx1ZXMsIHNlYXJjaGFibGUgPSBmYWxzZSwgc2VhcmNoUGxhY2Vob2xkZXIgPSAnU2VhcmNoJywgc2VhcmNoVmFsdWUsIGRlZmF1bHRTZWFyY2hWYWx1ZSA9ICcnLCBmaWx0ZXJJbnB1dEF1dG9Gb2N1cyA9IHRydWUsIGxhYmVsLCBsYWJlbENsYXNzTmFtZSwgaW5mbywgZGVzY3JpcHRpb24sIGZlZWRiYWNrLCByZXF1aXJlZCA9IHRydWUsIHByZWZpeCwgZW1wdHlDb250ZW50ID0gJ05vIG9wdGlvbnMnLCBwYW5lbEZvb3Rlciwgb3BlbiwgZGVmYXVsdE9wZW4gPSBmYWxzZSwgcG9ydGFsID0gdHJ1ZSwgYWxsb3dEZXNlbGVjdCA9IGZhbHNlLCBwYW5lbENsYXNzTmFtZSwgb3B0aW9uQ2xhc3NOYW1lLCBsaXN0TWF4SGVpZ2h0ID0gREVGQVVMVF9NQVhfSEVJR0hULCBvZmZzZXQsIGFuaW1hdGlvbiwgb25DaGFuZ2UsIG9uT3BlbkNoYW5nZSwgb25TZWFyY2hDaGFuZ2UsIG9uQmx1ciwgZmlsdGVyT3B0aW9uLCByZW5kZXJPcHRpb24sIHJlbmRlck9wdGlvbkNvbnRlbnQsIHJlbmRlclZhbHVlLCByZWYsIH0gPSBwcm9wcztcbiAgICBjb25zdCBkaXNhYmxlZCA9IGRpc2FibGVkUHJvcCB8fCBsb2FkaW5nO1xuICAgIGNvbnN0IGludGVyYWN0aXZlID0gIWRpc2FibGVkICYmICFyZWFkT25seTtcbiAgICBjb25zdCBjbGFzc2VzID0gcm9vdENsYXNzbmFtZXMocHJlZml4Q2xzKTtcbiAgICBjb25zdCBhdXRvSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IHRyaWdnZXJJZCA9IGlkICE9PSBudWxsICYmIGlkICE9PSB2b2lkIDAgPyBpZCA6IGF1dG9JZDtcbiAgICBjb25zdCBsYWJlbElkID0gdXNlSWQoKTtcbiAgICBjb25zdCBkZXNjcmlwdGlvbklkID0gdXNlSWQoKTtcbiAgICBjb25zdCBmZWVkYmFja0lkID0gdXNlSWQoKTtcbiAgICBjb25zdCBvcHRpb25JZFByZWZpeCA9IHVzZUlkKCk7XG4gICAgY29uc3QgW2lubmVyVmFsdWUsIHNldElubmVyVmFsdWVdID0gdXNlQ29udHJvbGxlZFN0YXRlKGRlZmF1bHRWYWx1ZSAhPT0gbnVsbCAmJiBkZWZhdWx0VmFsdWUgIT09IHZvaWQgMCA/IGRlZmF1bHRWYWx1ZSA6IChtdWx0aXBsZSA/IFtdIDogdW5kZWZpbmVkKSwgdmFsdWUpO1xuICAgIGNvbnN0IFtpbm5lclNlYXJjaFZhbHVlLCBzZXRJbm5lclNlYXJjaFZhbHVlXSA9IHVzZUNvbnRyb2xsZWRTdGF0ZShkZWZhdWx0U2VhcmNoVmFsdWUsIHNlYXJjaFZhbHVlKTtcbiAgICBjb25zdCBbYWN0aXZlSW5kZXgsIHNldEFjdGl2ZUluZGV4XSA9IHVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRTaXplID0gbm9ybWFsaXplU2l6ZShzaXplKTtcbiAgICBjb25zdCBhbGxPcHRpb25Hcm91cHMgPSB1c2VNZW1vKCgpID0+IG5vcm1hbGl6ZU9wdGlvbkdyb3VwcyhvcHRpb25zKSwgW29wdGlvbnNdKTtcbiAgICBjb25zdCBhbGxGbGF0T3B0aW9ucyA9IHVzZU1lbW8oKCkgPT4gZmxhdHRlbk9wdGlvbkdyb3VwcyhhbGxPcHRpb25Hcm91cHMpLCBbYWxsT3B0aW9uR3JvdXBzXSk7XG4gICAgY29uc3QgdmlzaWJsZU9wdGlvbkdyb3VwcyA9IHVzZU1lbW8oKCkgPT4gKHNlYXJjaGFibGVcbiAgICAgICAgPyBmaWx0ZXJPcHRpb25Hcm91cHMoYWxsT3B0aW9uR3JvdXBzLCBpbm5lclNlYXJjaFZhbHVlLCBmaWx0ZXJPcHRpb24pXG4gICAgICAgIDogYWxsT3B0aW9uR3JvdXBzKSwgW2FsbE9wdGlvbkdyb3VwcywgZmlsdGVyT3B0aW9uLCBpbm5lclNlYXJjaFZhbHVlLCBzZWFyY2hhYmxlXSk7XG4gICAgY29uc3QgdmlzaWJsZUZsYXRPcHRpb25zID0gdXNlTWVtbygoKSA9PiBmbGF0dGVuT3B0aW9uR3JvdXBzKHZpc2libGVPcHRpb25Hcm91cHMpLCBbdmlzaWJsZU9wdGlvbkdyb3Vwc10pO1xuICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9ucyA9IHVzZU1lbW8oKCkgPT4gZ2V0U2VsZWN0ZWRPcHRpb25zKGFsbEZsYXRPcHRpb25zLCBpbm5lclZhbHVlLCBtdWx0aXBsZSksIFthbGxGbGF0T3B0aW9ucywgaW5uZXJWYWx1ZSwgbXVsdGlwbGVdKTtcbiAgICBjb25zdCBzZWxlY3RlZEluZGV4ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGlmIChzZWxlY3RlZE9wdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBtYXRjaGVkSW5kZXggPSB2aXNpYmxlRmxhdE9wdGlvbnMuZmluZEluZGV4KChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSA9PT0gc2VsZWN0ZWRPcHRpb25zWzBdLnZhbHVlKTtcbiAgICAgICAgcmV0dXJuIG1hdGNoZWRJbmRleCA+PSAwID8gbWF0Y2hlZEluZGV4IDogbnVsbDtcbiAgICB9LCBbc2VsZWN0ZWRPcHRpb25zLCB2aXNpYmxlRmxhdE9wdGlvbnNdKTtcbiAgICBjb25zdCBoYXNTZWxlY3Rpb24gPSBzZWxlY3RlZE9wdGlvbnMubGVuZ3RoID4gMDtcbiAgICBjb25zdCBsaXN0UmVmID0gdXNlUmVmKFtdKTtcbiAgICBjb25zdCBsaXN0Q29udGVudFJlZiA9IHVzZVJlZihbXSk7XG4gICAgY29uc3QgZmxvYXRpbmdSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgdHJpZ2dlclJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBzZWFyY2hJbnB1dFJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBoYW5kbGVUcmlnZ2VyUmVmID0gdXNlRXZlbnRDYWxsYmFjaygobm9kZSkgPT4ge1xuICAgICAgICB0cmlnZ2VyUmVmLmN1cnJlbnQgPSBub2RlO1xuICAgICAgICBpZiAocmVmKSB7XG4gICAgICAgICAgICByZWYuY3VycmVudCA9IG5vZGU7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCB7IGlzT3BlbjogaW5uZXJPcGVuLCBzZXRPcGVuOiBoYW5kbGVPcGVuQ2hhbmdlLCByZWZzLCBjb250ZXh0LCBmbG9hdGluZ1N0eWxlcywgdHJhbnNpdGlvblN0eWxlcywgaXNNb3VudGVkLCBiYXNlSW50ZXJhY3Rpb25zLCB9ID0gdXNlU2VsZWN0U2hlbGwoe1xuICAgICAgICBvcGVuLFxuICAgICAgICBkZWZhdWx0T3BlbixcbiAgICAgICAgb25PcGVuQ2hhbmdlLFxuICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgcmVhZE9ubHksXG4gICAgICAgIGxpc3RNYXhIZWlnaHQsXG4gICAgICAgIGFuaW1hdGlvbixcbiAgICAgICAgb2Zmc2V0LFxuICAgIH0pO1xuICAgIGNvbnN0IHNldFJlZmVyZW5jZSA9IHVzZUV2ZW50Q2FsbGJhY2soKG5vZGUpID0+IHtcbiAgICAgICAgcmVmcy5zZXRSZWZlcmVuY2Uobm9kZSk7XG4gICAgICAgIGhhbmRsZVRyaWdnZXJSZWYobm9kZSk7XG4gICAgfSk7XG4gICAgY29uc3Qgc2V0RmxvYXRpbmcgPSB1c2VFdmVudENhbGxiYWNrKChub2RlKSA9PiB7XG4gICAgICAgIHJlZnMuc2V0RmxvYXRpbmcobm9kZSk7XG4gICAgICAgIGZsb2F0aW5nUmVmLmN1cnJlbnQgPSBub2RlO1xuICAgIH0pO1xuICAgIGNvbnN0IGxpc3ROYXZpZ2F0aW9uID0gdXNlTGlzdE5hdmlnYXRpb24oY29udGV4dCwge1xuICAgICAgICBsaXN0UmVmLFxuICAgICAgICBhY3RpdmVJbmRleCxcbiAgICAgICAgc2VsZWN0ZWRJbmRleCxcbiAgICAgICAgb25OYXZpZ2F0ZTogc2V0QWN0aXZlSW5kZXgsXG4gICAgICAgIGVuYWJsZWQ6IGlubmVyT3BlbixcbiAgICAgICAgbG9vcDogdHJ1ZSxcbiAgICAgICAgdmlydHVhbDogc2VhcmNoYWJsZSxcbiAgICB9KTtcbiAgICBjb25zdCB0eXBlYWhlYWQgPSB1c2VUeXBlYWhlYWQoY29udGV4dCwge1xuICAgICAgICBsaXN0UmVmOiBsaXN0Q29udGVudFJlZixcbiAgICAgICAgYWN0aXZlSW5kZXgsXG4gICAgICAgIHNlbGVjdGVkSW5kZXgsXG4gICAgICAgIGVuYWJsZWQ6IGlubmVyT3BlbiAmJiAhc2VhcmNoYWJsZSxcbiAgICAgICAgb25NYXRjaDogc2V0QWN0aXZlSW5kZXgsXG4gICAgfSk7XG4gICAgY29uc3QgeyBnZXRSZWZlcmVuY2VQcm9wcywgZ2V0RmxvYXRpbmdQcm9wcywgZ2V0SXRlbVByb3BzIH0gPSB1c2VJbnRlcmFjdGlvbnMoW1xuICAgICAgICAuLi5iYXNlSW50ZXJhY3Rpb25zLFxuICAgICAgICBsaXN0TmF2aWdhdGlvbixcbiAgICAgICAgdHlwZWFoZWFkLFxuICAgIF0pO1xuICAgIGNvbnN0IGZpcnN0RW5hYmxlZEluZGV4ID0gdXNlTWVtbygoKSA9PiB2aXNpYmxlRmxhdE9wdGlvbnMuZmluZEluZGV4KChvcHRpb24pID0+ICFvcHRpb24uZGlzYWJsZWQpLCBbdmlzaWJsZUZsYXRPcHRpb25zXSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKCFpbm5lck9wZW4pIHtcbiAgICAgICAgICAgIHNldEFjdGl2ZUluZGV4KHNlbGVjdGVkSW5kZXgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHNldEFjdGl2ZUluZGV4KChwcmV2KSA9PiB7XG4gICAgICAgICAgICBpZiAocHJldiAhPT0gbnVsbCAmJiB2aXNpYmxlRmxhdE9wdGlvbnNbcHJldl0gJiYgIXZpc2libGVGbGF0T3B0aW9uc1twcmV2XS5kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBwcmV2O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHNlbGVjdGVkSW5kZXggIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgICB2aXNpYmxlRmxhdE9wdGlvbnNbc2VsZWN0ZWRJbmRleF0gJiZcbiAgICAgICAgICAgICAgICAhdmlzaWJsZUZsYXRPcHRpb25zW3NlbGVjdGVkSW5kZXhdLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNlbGVjdGVkSW5kZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZmlyc3RFbmFibGVkSW5kZXggPj0gMCA/IGZpcnN0RW5hYmxlZEluZGV4IDogbnVsbDtcbiAgICAgICAgfSk7XG4gICAgfSwgW2ZpcnN0RW5hYmxlZEluZGV4LCBpbm5lck9wZW4sIHNlbGVjdGVkSW5kZXgsIHZpc2libGVGbGF0T3B0aW9uc10pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKCFpbm5lck9wZW4gfHwgYWN0aXZlSW5kZXggPT09IG51bGwgfHwgc2VhcmNoYWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIChfYSA9IGxpc3RSZWYuY3VycmVudFthY3RpdmVJbmRleF0pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgfSwgW2FjdGl2ZUluZGV4LCBpbm5lck9wZW4sIHNlYXJjaGFibGVdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBsaXN0UmVmLmN1cnJlbnQgPSBsaXN0UmVmLmN1cnJlbnQuc2xpY2UoMCwgdmlzaWJsZUZsYXRPcHRpb25zLmxlbmd0aCk7XG4gICAgICAgIGxpc3RDb250ZW50UmVmLmN1cnJlbnQgPSBsaXN0Q29udGVudFJlZi5jdXJyZW50LnNsaWNlKDAsIHZpc2libGVGbGF0T3B0aW9ucy5sZW5ndGgpO1xuICAgIH0sIFt2aXNpYmxlRmxhdE9wdGlvbnMubGVuZ3RoXSk7XG4gICAgY29uc3Qgc2V0U2VhcmNoSW5wdXRSZWYgPSB1c2VFdmVudENhbGxiYWNrKChub2RlKSA9PiB7XG4gICAgICAgIHNlYXJjaElucHV0UmVmLmN1cnJlbnQgPSBub2RlO1xuICAgICAgICBpZiAobm9kZSAmJiBpbm5lck9wZW4gJiYgZmlsdGVySW5wdXRBdXRvRm9jdXMpIHtcbiAgICAgICAgICAgIG5vZGUuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3Qgbm90aWZ5Qmx1cklmT3V0c2lkZSA9IHVzZUV2ZW50Q2FsbGJhY2soKHJlbGF0ZWRUYXJnZXQsIGV2ZW50KSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGNvbnN0IG5leHRUYXJnZXQgPSByZWxhdGVkVGFyZ2V0O1xuICAgICAgICBjb25zdCB3aXRoaW5UcmlnZ2VyID0gISEobmV4dFRhcmdldCAmJiAoKF9hID0gdHJpZ2dlclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY29udGFpbnMobmV4dFRhcmdldCkpKTtcbiAgICAgICAgY29uc3Qgd2l0aGluRmxvYXRpbmcgPSAhIShuZXh0VGFyZ2V0ICYmICgoX2IgPSBmbG9hdGluZ1JlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY29udGFpbnMobmV4dFRhcmdldCkpKTtcbiAgICAgICAgaWYgKCF3aXRoaW5UcmlnZ2VyICYmICF3aXRoaW5GbG9hdGluZykge1xuICAgICAgICAgICAgb25CbHVyID09PSBudWxsIHx8IG9uQmx1ciA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25CbHVyKGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVRyaWdnZXJCbHVyID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgbm90aWZ5Qmx1cklmT3V0c2lkZShldmVudC5yZWxhdGVkVGFyZ2V0LCBldmVudCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlT3B0aW9uQmx1ciA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIG5vdGlmeUJsdXJJZk91dHNpZGUoZXZlbnQucmVsYXRlZFRhcmdldCwgZXZlbnQpO1xuICAgIH0pO1xuICAgIGNvbnN0IGNvbW1pdENoYW5nZSA9IHVzZUV2ZW50Q2FsbGJhY2soKG5leHRWYWx1ZSwgbmV4dE9wdGlvbikgPT4ge1xuICAgICAgICBzZXRJbm5lclZhbHVlKG5leHRWYWx1ZSk7XG4gICAgICAgIG9uQ2hhbmdlID09PSBudWxsIHx8IG9uQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNoYW5nZShuZXh0VmFsdWUsIG5leHRPcHRpb24sIG5hbWUpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVNlbGVjdE9wdGlvbiA9IHVzZUV2ZW50Q2FsbGJhY2soKG9wdGlvbikgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBpZiAob3B0aW9uLmRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG11bHRpcGxlKSB7XG4gICAgICAgICAgICBjb25zdCBuZXh0VmFsdWUgPSB0b2dnbGVNdWx0aXBsZVZhbHVlKGlubmVyVmFsdWUsIG9wdGlvbi52YWx1ZSk7XG4gICAgICAgICAgICBjb25zdCBuZXh0T3B0aW9ucyA9IGdldE9wdGlvbnNCeVZhbHVlcyhhbGxGbGF0T3B0aW9ucywgbmV4dFZhbHVlKTtcbiAgICAgICAgICAgIGNvbW1pdENoYW5nZShuZXh0VmFsdWUsIG5leHRPcHRpb25zKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYWxsb3dEZXNlbGVjdCAmJiBpbm5lclZhbHVlID09PSBvcHRpb24udmFsdWUpIHtcbiAgICAgICAgICAgIGNvbW1pdENoYW5nZSh1bmRlZmluZWQsIHVuZGVmaW5lZCk7XG4gICAgICAgICAgICBoYW5kbGVPcGVuQ2hhbmdlKGZhbHNlKTtcbiAgICAgICAgICAgIG9uQmx1ciA9PT0gbnVsbCB8fCBvbkJsdXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQmx1cigpO1xuICAgICAgICAgICAgKF9hID0gdHJpZ2dlclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbW1pdENoYW5nZShvcHRpb24udmFsdWUsIG9wdGlvbik7XG4gICAgICAgIGhhbmRsZU9wZW5DaGFuZ2UoZmFsc2UpO1xuICAgICAgICBvbkJsdXIgPT09IG51bGwgfHwgb25CbHVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkJsdXIoKTtcbiAgICAgICAgKF9iID0gdHJpZ2dlclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVJlbW92ZVNlbGVjdGVkVmFsdWUgPSB1c2VFdmVudENhbGxiYWNrKChvcHRpb25WYWx1ZSkgPT4ge1xuICAgICAgICBpZiAoIW11bHRpcGxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFnZXRNdWx0aXBsZVZhbHVlKGlubmVyVmFsdWUpLmluY2x1ZGVzKG9wdGlvblZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5leHRWYWx1ZSA9IHJlbW92ZU11bHRpcGxlVmFsdWUoaW5uZXJWYWx1ZSwgb3B0aW9uVmFsdWUpO1xuICAgICAgICBjb25zdCBuZXh0T3B0aW9ucyA9IGdldE9wdGlvbnNCeVZhbHVlcyhhbGxGbGF0T3B0aW9ucywgbmV4dFZhbHVlKTtcbiAgICAgICAgY29tbWl0Q2hhbmdlKG5leHRWYWx1ZSwgbmV4dE9wdGlvbnMpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVRyaWdnZXJLZXlEb3duID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKCFpbnRlcmFjdGl2ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09IEtFWUJPQVJELkVOVEVSIHx8IGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuU1BBQ0UpIHtcbiAgICAgICAgICAgIGlmIChpbm5lck9wZW4gJiZcbiAgICAgICAgICAgICAgICBhY3RpdmVJbmRleCAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgICAgIHZpc2libGVGbGF0T3B0aW9uc1thY3RpdmVJbmRleF0gJiZcbiAgICAgICAgICAgICAgICAhdmlzaWJsZUZsYXRPcHRpb25zW2FjdGl2ZUluZGV4XS5kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0T3B0aW9uKHZpc2libGVGbGF0T3B0aW9uc1thY3RpdmVJbmRleF0pO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBoYW5kbGVPcGVuQ2hhbmdlKCFpbm5lck9wZW4pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09IEtFWUJPQVJELkFSUk9XX0RPV04gfHwgZXZlbnQua2V5ID09PSBLRVlCT0FSRC5BUlJPV19VUCkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmICghaW5uZXJPcGVuKSB7XG4gICAgICAgICAgICAgICAgaGFuZGxlT3BlbkNoYW5nZSh0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZUl0ZW1Nb3VzZUVudGVyID0gdXNlRXZlbnRDYWxsYmFjaygoaW5kZXgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoISgoX2EgPSB2aXNpYmxlRmxhdE9wdGlvbnNbaW5kZXhdKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZGlzYWJsZWQpKSB7XG4gICAgICAgICAgICBzZXRBY3RpdmVJbmRleChpbmRleCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVUYWdSZW1vdmVNb3VzZURvd24gPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVUYWdSZW1vdmVDbGljayA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVNlYXJjaEJsdXIgPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBub3RpZnlCbHVySWZPdXRzaWRlKGV2ZW50LnJlbGF0ZWRUYXJnZXQsIGV2ZW50KTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVTZWFyY2hDaGFuZ2UgPSB1c2VFdmVudENhbGxiYWNrKChuZXh0VmFsdWUsIF9ldmVudCkgPT4ge1xuICAgICAgICBzZXRJbm5lclNlYXJjaFZhbHVlKG5leHRWYWx1ZSk7XG4gICAgICAgIG9uU2VhcmNoQ2hhbmdlID09PSBudWxsIHx8IG9uU2VhcmNoQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvblNlYXJjaENoYW5nZShuZXh0VmFsdWUpO1xuICAgIH0pO1xuICAgIGNvbnN0IGZpbmRFbmFibGVkSW5kZXggPSB1c2VFdmVudENhbGxiYWNrKChjdXJyZW50LCBkaXJlY3Rpb24pID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBjb25zdCBsZW5ndGggPSB2aXNpYmxlRmxhdE9wdGlvbnMubGVuZ3RoO1xuICAgICAgICBpZiAobGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzdGFydCA9IGN1cnJlbnQgIT09IG51bGwgJiYgY3VycmVudCAhPT0gdm9pZCAwID8gY3VycmVudCA6IChkaXJlY3Rpb24gPT09IDEgPyAtMSA6IGxlbmd0aCk7XG4gICAgICAgIGZvciAobGV0IHN0ZXAgPSAxOyBzdGVwIDw9IGxlbmd0aDsgc3RlcCArPSAxKSB7XG4gICAgICAgICAgICBjb25zdCBjYW5kaWRhdGUgPSAoKHN0YXJ0ICsgZGlyZWN0aW9uICogc3RlcCkgJSBsZW5ndGggKyBsZW5ndGgpICUgbGVuZ3RoO1xuICAgICAgICAgICAgaWYgKCEoKF9hID0gdmlzaWJsZUZsYXRPcHRpb25zW2NhbmRpZGF0ZV0pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5kaXNhYmxlZCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY2FuZGlkYXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVNlYXJjaEtleURvd24gPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09IEtFWUJPQVJELkFSUk9XX0RPV04pIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBjb25zdCBuZXh0ID0gZmluZEVuYWJsZWRJbmRleChhY3RpdmVJbmRleCwgMSk7XG4gICAgICAgICAgICBpZiAobmV4dCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHNldEFjdGl2ZUluZGV4KG5leHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09IEtFWUJPQVJELkFSUk9XX1VQKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgY29uc3QgcHJldiA9IGZpbmRFbmFibGVkSW5kZXgoYWN0aXZlSW5kZXgsIC0xKTtcbiAgICAgICAgICAgIGlmIChwcmV2ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgc2V0QWN0aXZlSW5kZXgocHJldik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuRU5URVIpIHtcbiAgICAgICAgICAgIGlmIChhY3RpdmVJbmRleCAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgICAgIHZpc2libGVGbGF0T3B0aW9uc1thY3RpdmVJbmRleF0gJiZcbiAgICAgICAgICAgICAgICAhdmlzaWJsZUZsYXRPcHRpb25zW2FjdGl2ZUluZGV4XS5kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0T3B0aW9uKHZpc2libGVGbGF0T3B0aW9uc1thY3RpdmVJbmRleF0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09IEtFWUJPQVJELkVTQ0FQRSkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGhhbmRsZU9wZW5DaGFuZ2UoZmFsc2UpO1xuICAgICAgICAgICAgKF9hID0gdHJpZ2dlclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgcmVuZGVyVmFsdWVNZXRhID0ge1xuICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgcmVhZE9ubHksXG4gICAgICAgIG11bHRpcGxlLFxuICAgICAgICBtYXhWaXNpYmxlVmFsdWVzLFxuICAgICAgICBvcGVuOiBpbm5lck9wZW4sXG4gICAgICAgIHBsYWNlaG9sZGVyOiAhaGFzU2VsZWN0aW9uLFxuICAgICAgICBzZWxlY3RlZE9wdGlvbnMsXG4gICAgICAgIHNpemU6IG5vcm1hbGl6ZWRTaXplLFxuICAgICAgICBmb250U2l6ZTogZ2V0Rm9udFNpemUobm9ybWFsaXplZFNpemUpLFxuICAgIH07XG4gICAgY29uc3QgdmFsdWVMYWJlbENsYXNzID0gaGFzU2VsZWN0aW9uID8gJ3ZhbHVlJyA6ICdwbGFjZWhvbGRlcic7XG4gICAgY29uc3QgaXNNdWx0aXBsZVZhbHVlRmlsbGVkID0gKG11bHRpcGxlICYmXG4gICAgICAgIGhhc1NlbGVjdGlvbiAmJlxuICAgICAgICBtYXhWaXNpYmxlVmFsdWVzID09PSB1bmRlZmluZWQpO1xuICAgIGNvbnN0IHRyaWdnZXJDbGFzc05hbWUgPSBjbGFzc2VzKCd0cmlnZ2VyJywgam9pbkNscyhjbGFzc2VzKGB0cmlnZ2VyLSR7bm9ybWFsaXplZFNpemV9YCksIGNsYXNzZXMoYHRyaWdnZXItJHt2YXJpYW50fWApLCBpbm5lck9wZW4gJiYgY2xhc3NlcygndHJpZ2dlci1vcGVuJyksIGlzTXVsdGlwbGVWYWx1ZUZpbGxlZCAmJiBjbGFzc2VzKCd0cmlnZ2VyLW11bHRpcGxlLWZpbGxlZCcpLCBoYXNTZWxlY3Rpb24gPyBjbGFzc2VzKCd0cmlnZ2VyLWZpbGxlZCcpIDogY2xhc3NlcygndHJpZ2dlci1wbGFjZWhvbGRlcicpLCBzdGF0dXMgIT09ICdkZWZhdWx0JyAmJiBjbGFzc2VzKGB0cmlnZ2VyLSR7c3RhdHVzfWApLCBkaXNhYmxlZCAmJiBjbGFzc2VzKCd0cmlnZ2VyLWRpc2FibGVkJyksIHJlYWRPbmx5ICYmICFkaXNhYmxlZCAmJiBjbGFzc2VzKCd0cmlnZ2VyLXJlYWRvbmx5JykpKTtcbiAgICBjb25zdCBpY29uU2l6ZSA9IG5vcm1hbGl6ZWRTaXplID09PSAnc21hbGwnID8gMTYgOiAyMDtcbiAgICBjb25zdCBhY3RpdmVPcHRpb25JZCA9IHNlYXJjaGFibGUgJiYgaW5uZXJPcGVuICYmIGFjdGl2ZUluZGV4ICE9PSBudWxsXG4gICAgICAgID8gYCR7b3B0aW9uSWRQcmVmaXh9LSR7YWN0aXZlSW5kZXh9YFxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBmbG9hdGluZ0FyaWFMYWJlbGxlZEJ5ID0gYXJpYUxhYmVsbGVkQnkgIT09IG51bGwgJiYgYXJpYUxhYmVsbGVkQnkgIT09IHZvaWQgMCA/IGFyaWFMYWJlbGxlZEJ5IDogKGxhYmVsID8gbGFiZWxJZCA6IHVuZGVmaW5lZCk7XG4gICAgY29uc3QgZGVzY3JpYmVkQnlJZHMgPSBbXG4gICAgICAgIGRlc2NyaXB0aW9uID8gZGVzY3JpcHRpb25JZCA6IG51bGwsXG4gICAgICAgIGZlZWRiYWNrID8gZmVlZGJhY2tJZCA6IG51bGwsXG4gICAgXS5maWx0ZXIoQm9vbGVhbikuam9pbignICcpIHx8IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gKF9qc3hzKFNlbGVjdEZpZWxkU2hlbGwsIHsgY2xhc3NlczogY2xhc3NlcywgY2xhc3NOYW1lOiBjbGFzc05hbWUsIHNpemU6IG5vcm1hbGl6ZWRTaXplLCB2YXJpYW50OiB2YXJpYW50LCBzdGF0dXM6IHN0YXR1cywgZGlzYWJsZWQ6IGRpc2FibGVkLCByZWFkT25seTogcmVhZE9ubHksIGxvYWRpbmc6IGxvYWRpbmcsIGxhYmVsOiBsYWJlbCwgbGFiZWxDbGFzc05hbWU6IGxhYmVsQ2xhc3NOYW1lLCBpbmZvOiBpbmZvLCBkZXNjcmlwdGlvbjogZGVzY3JpcHRpb24sIGZlZWRiYWNrOiBmZWVkYmFjaywgcmVxdWlyZWQ6IHJlcXVpcmVkLCBsYWJlbElkOiBsYWJlbElkLCBkZXNjcmlwdGlvbklkOiBkZXNjcmlwdGlvbklkLCBmZWVkYmFja0lkOiBmZWVkYmFja0lkLCBjaGlsZHJlbjogW19qc3hzKFwiYnV0dG9uXCIsIE9iamVjdC5hc3NpZ24oe30sIGdldFJlZmVyZW5jZVByb3BzKHtcbiAgICAgICAgICAgICAgICByZWY6IHNldFJlZmVyZW5jZSxcbiAgICAgICAgICAgICAgICBpZDogdHJpZ2dlcklkLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdidXR0b24nLFxuICAgICAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgJ2FyaWEtcmVhZG9ubHknOiByZWFkT25seSB8fCB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiB0cmlnZ2VyQ2xhc3NOYW1lLFxuICAgICAgICAgICAgICAgIG9uS2V5RG93bjogaGFuZGxlVHJpZ2dlcktleURvd24sXG4gICAgICAgICAgICAgICAgb25CbHVyOiBoYW5kbGVUcmlnZ2VyQmx1cixcbiAgICAgICAgICAgICAgICAnYXJpYS1sYWJlbCc6IGFyaWFMYWJlbCxcbiAgICAgICAgICAgICAgICAnYXJpYS1sYWJlbGxlZGJ5JzogZmxvYXRpbmdBcmlhTGFiZWxsZWRCeSxcbiAgICAgICAgICAgICAgICAnYXJpYS1kZXNjcmliZWRieSc6IGRlc2NyaWJlZEJ5SWRzLFxuICAgICAgICAgICAgfSksIHsgY2hpbGRyZW46IFtfanN4cyhcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2NvbnRlbnQnKSwgY2hpbGRyZW46IFtwcmVmaXggJiYgX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3ByZWZpeCcpLCBjaGlsZHJlbjogcHJlZml4IH0pLCBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcyh2YWx1ZUxhYmVsQ2xhc3MsIGpvaW5DbHMoY2xhc3NlcyhgJHt2YWx1ZUxhYmVsQ2xhc3N9LSR7bm9ybWFsaXplZFNpemV9YCksIGlzTXVsdGlwbGVWYWx1ZUZpbGxlZCAmJiBjbGFzc2VzKGAke3ZhbHVlTGFiZWxDbGFzc30tbXVsdGlwbGVgKSwgZGlzYWJsZWQgJiYgY2xhc3NlcyhgJHt2YWx1ZUxhYmVsQ2xhc3N9LWRpc2FibGVkYCkpKSwgY2hpbGRyZW46IF9qc3goU2VsZWN0VmFsdWVDb250ZW50LCB7IGNsYXNzZXM6IGNsYXNzZXMsIGhhc1NlbGVjdGlvbjogaGFzU2VsZWN0aW9uLCBtdWx0aXBsZTogbXVsdGlwbGUsIHBsYWNlaG9sZGVyOiBwbGFjZWhvbGRlciwgcmVuZGVyVmFsdWU6IHJlbmRlclZhbHVlLCByZW5kZXJWYWx1ZU1ldGE6IHJlbmRlclZhbHVlTWV0YSwgc2VsZWN0ZWRPcHRpb25zOiBzZWxlY3RlZE9wdGlvbnMsIG1heFZpc2libGVWYWx1ZXM6IG1heFZpc2libGVWYWx1ZXMsIG9uUmVtb3ZlOiBoYW5kbGVSZW1vdmVTZWxlY3RlZFZhbHVlLCBvblJlbW92ZUNsaWNrOiBoYW5kbGVUYWdSZW1vdmVDbGljaywgb25SZW1vdmVNb3VzZURvd246IGhhbmRsZVRhZ1JlbW92ZU1vdXNlRG93biB9KSB9KV0gfSksIF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdpY29uJyksIGNoaWxkcmVuOiBsb2FkaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBfanN4KFNwaW5uZXIsIHsgc2l6ZTogaWNvblNpemUsIHN0cm9rZVdpZHRoOiAyIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiByZWFkT25seVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBfanN4KEljb25zLCB7IG5hbWU6IGlubmVyT3BlbiA/ICdjaGV2cm9uVXAnIDogJ2NoZXZyb25Eb3duJywgc2l6ZTogaWNvblNpemUsIGNvbG9yOiBcImN1cnJlbnRDb2xvclwiIH0pIH0pXSB9KSksIGlzTW91bnRlZCAmJiBpbnRlcmFjdGl2ZSAmJiAoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhbmVsTm9kZSA9IChfanN4KEZsb2F0aW5nRm9jdXNNYW5hZ2VyLCB7IGNvbnRleHQ6IGNvbnRleHQsIG1vZGFsOiBmYWxzZSwgaW5pdGlhbEZvY3VzOiAtMSwgcmV0dXJuRm9jdXM6IGZhbHNlLCBjaGlsZHJlbjogX2pzeHMoXCJkaXZcIiwgT2JqZWN0LmFzc2lnbih7fSwgZ2V0RmxvYXRpbmdQcm9wcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWY6IHNldEZsb2F0aW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBqb2luQ2xzKGNsYXNzZXMoJ3BhbmVsJyksIHBhbmVsQ2xhc3NOYW1lKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGZsb2F0aW5nU3R5bGVzKSwgdHJhbnNpdGlvblN0eWxlcyksXG4gICAgICAgICAgICAgICAgICAgIH0pLCB7IGNoaWxkcmVuOiBbc2VhcmNoYWJsZSAmJiAoX2pzeChTZWxlY3RTZWFyY2hDb250cm9sLCB7IHJlZjogc2V0U2VhcmNoSW5wdXRSZWYsIGNsYXNzZXM6IGNsYXNzZXMsIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzaXplPXtub3JtYWxpemVkU2l6ZX0gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6IFwic21hbGxcIiwgcGxhY2Vob2xkZXI6IHNlYXJjaFBsYWNlaG9sZGVyLCB2YWx1ZTogaW5uZXJTZWFyY2hWYWx1ZSwgYWN0aXZlRGVzY2VuZGFudDogYWN0aXZlT3B0aW9uSWQsIG9uQmx1cjogaGFuZGxlU2VhcmNoQmx1ciwgb25DaGFuZ2U6IGhhbmRsZVNlYXJjaENoYW5nZSwgb25LZXlEb3duOiBoYW5kbGVTZWFyY2hLZXlEb3duIH0pKSwgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygncGFuZWwtYm9keScpLCBjaGlsZHJlbjogdmlzaWJsZUZsYXRPcHRpb25zLmxlbmd0aCA9PT0gMCA/IChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdlbXB0eScpLCBjaGlsZHJlbjogX2pzeChUeXBvZ3JhcGh5Qm9keSwgeyBzaXplOiBTRUxFQ1RfVFlQT0dSQVBIWS5lbXB0eS5zaXplLCBjb2xvcjogU0VMRUNUX1RZUE9HUkFQSFkuZW1wdHkuY29sb3IsIGNoaWxkcmVuOiBlbXB0eUNvbnRlbnQgfSkgfSkpIDogKCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZmxhdEluZGV4ID0gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2aXNpYmxlT3B0aW9uR3JvdXBzLm1hcCgoZ3JvdXApID0+IChfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnZ3JvdXAnKSwgY2hpbGRyZW46IFtncm91cC5sYWJlbCAmJiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnZ3JvdXAtbGFiZWwnKSwgY2hpbGRyZW46IF9qc3goVHlwb2dyYXBoeUxhYmVsLCB7IHNpemU6IFNFTEVDVF9UWVBPR1JBUEhZLmdyb3VwTGFiZWwuc2l6ZSwgc3Ryb25nOiB0cnVlLCBjaGlsZHJlbjogZ3JvdXAubGFiZWwgfSkgfSkpLCBncm91cC5vcHRpb25zLm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25GbGF0SW5kZXggPSBmbGF0SW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGF0SW5kZXggKz0gMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkID0gaXNPcHRpb25TZWxlY3RlZChpbm5lclZhbHVlLCBtdWx0aXBsZSwgb3B0aW9uLnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGFjdGl2ZSA9IGFjdGl2ZUluZGV4ID09PSBvcHRpb25GbGF0SW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25NZXRhID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZDogISFvcHRpb24uZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IG9wdGlvbkZsYXRJbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVuOiBpbm5lck9wZW4sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNpemU6IGdldEZvbnRTaXplKG5vcm1hbGl6ZWRTaXplKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0Q29udGVudFJlZi5jdXJyZW50W29wdGlvbkZsYXRJbmRleF0gPSBleHRyYWN0T3B0aW9uVGV4dChvcHRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChfanN4KFwiYnV0dG9uXCIsIE9iamVjdC5hc3NpZ24oe30sIGdldEl0ZW1Qcm9wcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmKG5vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdFJlZi5jdXJyZW50W29wdGlvbkZsYXRJbmRleF0gPSBub2RlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGAke29wdGlvbklkUHJlZml4fS0ke29wdGlvbkZsYXRJbmRleH1gLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdidXR0b24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU6ICdvcHRpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogY2xhc3Nlcygnb3B0aW9uJywgam9pbkNscyhhY3RpdmUgJiYgY2xhc3Nlcygnb3B0aW9uLWFjdGl2ZScpLCBzZWxlY3RlZCAmJiBjbGFzc2VzKCdvcHRpb24tc2VsZWN0ZWQnKSwgb3B0aW9uLmRpc2FibGVkICYmIGNsYXNzZXMoJ29wdGlvbi1kaXNhYmxlZCcpLCBvcHRpb25DbGFzc05hbWUpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZDogb3B0aW9uLmRpc2FibGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhcmlhLXNlbGVjdGVkJzogc2VsZWN0ZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljazogKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZVNlbGVjdE9wdGlvbihvcHRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Nb3VzZUVudGVyOiAoKSA9PiBoYW5kbGVJdGVtTW91c2VFbnRlcihvcHRpb25GbGF0SW5kZXgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQmx1cjogaGFuZGxlT3B0aW9uQmx1cixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLCB7IGNoaWxkcmVuOiByZW5kZXJPcHRpb24gPyAocmVuZGVyT3B0aW9uKG9wdGlvbiwgb3B0aW9uTWV0YSkpIDogKF9qc3goU2VsZWN0T3B0aW9uQ29udGVudCwgeyBjbGFzc2VzOiBjbGFzc2VzLCBvcHRpb246IG9wdGlvbiwgc2VsZWN0ZWQ6IHNlbGVjdGVkLCBzaXplOiBub3JtYWxpemVkU2l6ZSwgY29udGVudDogcmVuZGVyT3B0aW9uQ29udGVudCA9PT0gbnVsbCB8fCByZW5kZXJPcHRpb25Db250ZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiByZW5kZXJPcHRpb25Db250ZW50KG9wdGlvbiwgb3B0aW9uTWV0YSkgfSkpIH0pLCBgJHtncm91cC5rZXl9LSR7b3B0aW9uLnZhbHVlfWApKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSldIH0sIGdyb3VwLmtleSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkoKSkgfSksIHBhbmVsRm9vdGVyICE9IG51bGwgJiYgKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3BhbmVsLWZvb3RlcicpLCBjaGlsZHJlbjogcGFuZWxGb290ZXIgfSkpXSB9KSkgfSkpO1xuICAgICAgICAgICAgICAgIHJldHVybiBwb3J0YWwgPyBfanN4KEZsb2F0aW5nUG9ydGFsLCB7IGNoaWxkcmVuOiBwYW5lbE5vZGUgfSkgOiBwYW5lbE5vZGU7XG4gICAgICAgICAgICB9KSgpXSB9KSk7XG59O1xuU2VsZWN0LmRpc3BsYXlOYW1lID0gJ1NlbGVjdCc7XG5leHBvcnQgZGVmYXVsdCBtZW1vKFNlbGVjdCk7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
574
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC50c3giXSwibmFtZXMiOlsianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkZsb2F0aW5nRm9jdXNNYW5hZ2VyIiwiRmxvYXRpbmdQb3J0YWwiLCJ1c2VJbnRlcmFjdGlvbnMiLCJ1c2VMaXN0TmF2aWdhdGlvbiIsInVzZVR5cGVhaGVhZCIsIm1lbW8iLCJ1c2VFZmZlY3QiLCJ1c2VJZCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZUNvbnRyb2xsZWRTdGF0ZSIsInVzZUV2ZW50Q2FsbGJhY2siLCJJY29ucyIsIlNwaW5uZXIiLCJUeXBvZ3JhcGh5Qm9keSIsIlR5cG9ncmFwaHlMYWJlbCIsImpvaW5DbHMiLCJkZWZhdWx0Iiwicm9vdENsYXNzbmFtZXMiLCJTZWxlY3RGaWVsZFNoZWxsIiwiU2VsZWN0T3B0aW9uQ29udGVudCIsIlNlbGVjdFNlYXJjaENvbnRyb2wiLCJTZWxlY3RWYWx1ZUNvbnRlbnQiLCJ1c2VTZWxlY3RTaGVsbCIsIktFWUJPQVJEIiwiU0VMRUNUX1RZUE9HUkFQSFkiLCJleHRyYWN0T3B0aW9uVGV4dCIsImZpbHRlck9wdGlvbkdyb3VwcyIsImZsYXR0ZW5PcHRpb25Hcm91cHMiLCJnZXRNdWx0aXBsZVZhbHVlIiwiZ2V0Rm9udFNpemUiLCJnZXRPcHRpb25zQnlWYWx1ZXMiLCJnZXRTZWxlY3RlZE9wdGlvbnMiLCJpc09wdGlvblNlbGVjdGVkIiwibm9ybWFsaXplU2l6ZSIsIm5vcm1hbGl6ZU9wdGlvbkdyb3VwcyIsInJlbW92ZU11bHRpcGxlVmFsdWUiLCJ0b2dnbGVNdWx0aXBsZVZhbHVlIiwiREVGQVVMVF9NQVhfSEVJR0hUIiwiU2VsZWN0IiwicHJvcHMiLCJfcHJvcHMkY2xhc3NOYW1lIiwiY2xhc3NOYW1lIiwiX3Byb3BzJHByZWZpeENscyIsInByZWZpeENscyIsInN0eWxlIiwiaWQiLCJuYW1lIiwiYXJpYUxhYmVsIiwiYXJpYUxhYmVsbGVkQnkiLCJfcHJvcHMkcGxhY2Vob2xkZXIiLCJwbGFjZWhvbGRlciIsIl9wcm9wcyRvcHRpb25zIiwib3B0aW9ucyIsInZhbHVlIiwiZGVmYXVsdFZhbHVlIiwiX3Byb3BzJHNpemUiLCJzaXplIiwiX3Byb3BzJHN0YXR1cyIsInN0YXR1cyIsIl9wcm9wcyR2YXJpYW50IiwidmFyaWFudCIsIl9wcm9wcyRkaXNhYmxlZCIsImRpc2FibGVkIiwiZGlzYWJsZWRQcm9wIiwiX3Byb3BzJHJlYWRPbmx5IiwicmVhZE9ubHkiLCJfcHJvcHMkbG9hZGluZyIsImxvYWRpbmciLCJfcHJvcHMkbXVsdGlwbGUiLCJtdWx0aXBsZSIsIm1heFZpc2libGVWYWx1ZXMiLCJfcHJvcHMkc2VhcmNoYWJsZSIsInNlYXJjaGFibGUiLCJfcHJvcHMkc2VhcmNoUGxhY2Vob2wiLCJzZWFyY2hQbGFjZWhvbGRlciIsInNlYXJjaFZhbHVlIiwiX3Byb3BzJGRlZmF1bHRTZWFyY2hWIiwiZGVmYXVsdFNlYXJjaFZhbHVlIiwiX3Byb3BzJGZpbHRlcklucHV0QXV0IiwiZmlsdGVySW5wdXRBdXRvRm9jdXMiLCJsYWJlbCIsImxhYmVsQ2xhc3NOYW1lIiwiaW5mbyIsImRlc2NyaXB0aW9uIiwiZmVlZGJhY2siLCJfcHJvcHMkcmVxdWlyZWQiLCJyZXF1aXJlZCIsInByZWZpeCIsIl9wcm9wcyRlbXB0eUNvbnRlbnQiLCJlbXB0eUNvbnRlbnQiLCJwYW5lbEhlYWRlciIsInBhbmVsRm9vdGVyIiwib3BlbiIsIl9wcm9wcyRkZWZhdWx0T3BlbiIsImRlZmF1bHRPcGVuIiwiX3Byb3BzJHBvcnRhbCIsInBvcnRhbCIsIl9wcm9wcyRhbGxvd0Rlc2VsZWN0IiwiYWxsb3dEZXNlbGVjdCIsInBhbmVsQ2xhc3NOYW1lIiwib3B0aW9uQ2xhc3NOYW1lIiwiX3Byb3BzJGxpc3RNYXhIZWlnaHQiLCJsaXN0TWF4SGVpZ2h0Iiwib2Zmc2V0IiwiYW5pbWF0aW9uIiwib25DaGFuZ2UiLCJvbk9wZW5DaGFuZ2UiLCJvblNlYXJjaENoYW5nZSIsIm9uQmx1ciIsImZpbHRlck9wdGlvbiIsInJlbmRlck9wdGlvbiIsInJlbmRlck9wdGlvbkNvbnRlbnQiLCJyZW5kZXJWYWx1ZSIsInJlZiIsImludGVyYWN0aXZlIiwiY2xhc3NlcyIsImF1dG9JZCIsInRyaWdnZXJJZCIsImxhYmVsSWQiLCJkZXNjcmlwdGlvbklkIiwiZmVlZGJhY2tJZCIsIm9wdGlvbklkUHJlZml4IiwiX3VzZUNvbnRyb2xsZWRTdGF0ZSIsInVuZGVmaW5lZCIsIl91c2VDb250cm9sbGVkU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJpbm5lclZhbHVlIiwic2V0SW5uZXJWYWx1ZSIsIl91c2VDb250cm9sbGVkU3RhdGUzIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTQiLCJpbm5lclNlYXJjaFZhbHVlIiwic2V0SW5uZXJTZWFyY2hWYWx1ZSIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJhY3RpdmVJbmRleCIsInNldEFjdGl2ZUluZGV4Iiwibm9ybWFsaXplZFNpemUiLCJhbGxPcHRpb25Hcm91cHMiLCJhbGxGbGF0T3B0aW9ucyIsInZpc2libGVPcHRpb25Hcm91cHMiLCJ2aXNpYmxlRmxhdE9wdGlvbnMiLCJzZWxlY3RlZE9wdGlvbnMiLCJzZWxlY3RlZEluZGV4IiwibGVuZ3RoIiwibWF0Y2hlZEluZGV4IiwiZmluZEluZGV4Iiwib3B0aW9uIiwiaGFzU2VsZWN0aW9uIiwibGlzdFJlZiIsImxpc3RDb250ZW50UmVmIiwiZmxvYXRpbmdSZWYiLCJ0cmlnZ2VyUmVmIiwic2VhcmNoSW5wdXRSZWYiLCJoYW5kbGVUcmlnZ2VyUmVmIiwibm9kZSIsImN1cnJlbnQiLCJfdXNlU2VsZWN0U2hlbGwiLCJpbm5lck9wZW4iLCJpc09wZW4iLCJoYW5kbGVPcGVuQ2hhbmdlIiwic2V0T3BlbiIsInJlZnMiLCJjb250ZXh0IiwiZmxvYXRpbmdTdHlsZXMiLCJ0cmFuc2l0aW9uU3R5bGVzIiwiaXNNb3VudGVkIiwiYmFzZUludGVyYWN0aW9ucyIsInNldFJlZmVyZW5jZSIsInNldEZsb2F0aW5nIiwibGlzdE5hdmlnYXRpb24iLCJvbk5hdmlnYXRlIiwiZW5hYmxlZCIsImxvb3AiLCJ2aXJ0dWFsIiwidHlwZWFoZWFkIiwib25NYXRjaCIsIl91c2VJbnRlcmFjdGlvbnMiLCJjb25jYXQiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJnZXRSZWZlcmVuY2VQcm9wcyIsImdldEZsb2F0aW5nUHJvcHMiLCJnZXRJdGVtUHJvcHMiLCJmaXJzdEVuYWJsZWRJbmRleCIsInByZXYiLCJfYSIsImZvY3VzIiwicHJldmVudFNjcm9sbCIsInNsaWNlIiwic2V0U2VhcmNoSW5wdXRSZWYiLCJub3RpZnlCbHVySWZPdXRzaWRlIiwicmVsYXRlZFRhcmdldCIsImV2ZW50IiwiX2IiLCJuZXh0VGFyZ2V0Iiwid2l0aGluVHJpZ2dlciIsImNvbnRhaW5zIiwid2l0aGluRmxvYXRpbmciLCJoYW5kbGVUcmlnZ2VyQmx1ciIsImhhbmRsZU9wdGlvbkJsdXIiLCJjb21taXRDaGFuZ2UiLCJuZXh0VmFsdWUiLCJuZXh0T3B0aW9uIiwiaGFuZGxlU2VsZWN0T3B0aW9uIiwibmV4dE9wdGlvbnMiLCJoYW5kbGVSZW1vdmVTZWxlY3RlZFZhbHVlIiwib3B0aW9uVmFsdWUiLCJpbmNsdWRlcyIsImhhbmRsZVRyaWdnZXJLZXlEb3duIiwia2V5IiwiRU5URVIiLCJTUEFDRSIsInByZXZlbnREZWZhdWx0IiwiQVJST1dfRE9XTiIsIkFSUk9XX1VQIiwiaGFuZGxlSXRlbU1vdXNlRW50ZXIiLCJpbmRleCIsImhhbmRsZVRhZ1JlbW92ZU1vdXNlRG93biIsInN0b3BQcm9wYWdhdGlvbiIsImhhbmRsZVRhZ1JlbW92ZUNsaWNrIiwiaGFuZGxlU2VhcmNoQmx1ciIsImhhbmRsZVNlYXJjaENoYW5nZSIsIl9ldmVudCIsImZpbmRFbmFibGVkSW5kZXgiLCJkaXJlY3Rpb24iLCJzdGFydCIsInN0ZXAiLCJjYW5kaWRhdGUiLCJoYW5kbGVTZWFyY2hLZXlEb3duIiwibmV4dCIsIkVTQ0FQRSIsInJlbmRlclZhbHVlTWV0YSIsImZvbnRTaXplIiwidmFsdWVMYWJlbENsYXNzIiwiaXNNdWx0aXBsZVZhbHVlRmlsbGVkIiwidHJpZ2dlckNsYXNzTmFtZSIsImljb25TaXplIiwiYWN0aXZlT3B0aW9uSWQiLCJmbG9hdGluZ0FyaWFMYWJlbGxlZEJ5IiwiZGVzY3JpYmVkQnlJZHMiLCJmaWx0ZXIiLCJCb29sZWFuIiwiam9pbiIsImNoaWxkcmVuIiwiT2JqZWN0IiwiYXNzaWduIiwidHlwZSIsIm9uS2V5RG93biIsIm9uUmVtb3ZlIiwib25SZW1vdmVDbGljayIsIm9uUmVtb3ZlTW91c2VEb3duIiwic3Ryb2tlV2lkdGgiLCJjb2xvciIsInBhbmVsTm9kZSIsIm1vZGFsIiwiaW5pdGlhbEZvY3VzIiwicmV0dXJuRm9jdXMiLCJhY3RpdmVEZXNjZW5kYW50IiwiZW1wdHkiLCJmbGF0SW5kZXgiLCJtYXAiLCJncm91cCIsImdyb3VwTGFiZWwiLCJzdHJvbmciLCJvcHRpb25GbGF0SW5kZXgiLCJzZWxlY3RlZCIsImFjdGl2ZSIsIm9wdGlvbk1ldGEiLCJyb2xlIiwib25DbGljayIsIm9uTW91c2VFbnRlciIsImNvbnRlbnQiLCJkaXNwbGF5TmFtZSJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxTQUFTQSxHQUFHLElBQUlDLElBQUksRUFBRUMsSUFBSSxJQUFJQyxLQUFLLFFBQVEsbUJBQW1CO0FDQTlELFNBQ0VDLG9CQUFvQixFQUNwQkMsY0FBYyxFQUNkQyxlQUFlLEVBQ2ZDLGlCQUFpQixFQUNqQkMsWUFBWSxRQUNQLG9CQUFvQjtBQUMzQixTQUFTQyxJQUFJLEVBQUVDLFNBQVMsRUFBRUMsS0FBSyxFQUFFQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFDekUsU0FBU0Msa0JBQWtCLEVBQUVDLGdCQUFnQixRQUFRLGVBQWU7QUFDcEUsU0FBU0MsS0FBSyxRQUFRLFVBQVU7QUFDaEMsU0FBU0MsT0FBTyxRQUFRLFlBQVk7QUFDcEMsU0FBU0MsY0FBYyxFQUFFQyxl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O2dCQUFBLENBQUEsRUFsRU0rTSxLQUFLLENBQUNwRCxHQUFHLENBbUViO2NBQUEsQ0FDUCxDQUFDO1lBQ0osQ0FBQyxDQUFDO1VBQ0gsQ0FBQSxDQUNHLEVBQ0xySCxXQUFXLElBQUksSUFBSSxJQUNsQmhHLElBQUEsQ0FBQSxLQUFBLEVBQUE7WUFBSzhDLFNBQVMsRUFBRTBFLE9BQU8sQ0FBQyxjQUFjLENBQUM7WUFBQStILFFBQUEsRUFBR3ZKO1VBQVcsQ0FBQSxDQUN0RDtRQUFBLENBQUEsQ0FBQTtNQUNHLENBQUEsQ0FFVDtNQUVELE9BQU9LLE1BQU0sR0FBR3JHLElBQUEsQ0FBQ0ksY0FBYyxFQUFBO1FBQUFtUCxRQUFBLEVBQUVVO01BQVMsQ0FBQSxDQUFrQixHQUFHQSxTQUFTO0lBQzFFLENBQUMsQ0FBQyxDQUFFO0VBQUEsQ0FBQSxDQUNhO0FBRXZCLENBQUM7QUFFRHROLE1BQU0sQ0FBQ3lPLFdBQVcsR0FBRyxRQUFRO0FBRTdCLDRCQUFlNVEsSUFBSSxDQUFDbUMsTUFBTSxDQUFDIiwiZmlsZSI6ImNvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBGbG9hdGluZ0ZvY3VzTWFuYWdlciwgRmxvYXRpbmdQb3J0YWwsIHVzZUludGVyYWN0aW9ucywgdXNlTGlzdE5hdmlnYXRpb24sIHVzZVR5cGVhaGVhZCwgfSBmcm9tICdAZmxvYXRpbmctdWkvcmVhY3QnO1xuaW1wb3J0IHsgbWVtbywgdXNlRWZmZWN0LCB1c2VJZCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUNvbnRyb2xsZWRTdGF0ZSwgdXNlRXZlbnRDYWxsYmFjayB9IGZyb20gJ0AxbW9uZXkvaG9va3MnO1xuaW1wb3J0IHsgSWNvbnMgfSBmcm9tICcuLi9JY29ucyc7XG5pbXBvcnQgeyBTcGlubmVyIH0gZnJvbSAnLi4vU3Bpbm5lcic7XG5pbXBvcnQgeyBUeXBvZ3JhcGh5Qm9keSwgVHlwb2dyYXBoeUxhYmVsIH0gZnJvbSAnLi4vVHlwb2dyYXBoeSc7XG5pbXBvcnQgeyBqb2luQ2xzLCBkZWZhdWx0IGFzIHJvb3RDbGFzc25hbWVzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgU2VsZWN0RmllbGRTaGVsbCBmcm9tICcuL1NlbGVjdEZpZWxkU2hlbGwnO1xuaW1wb3J0IFNlbGVjdE9wdGlvbkNvbnRlbnQgZnJvbSAnLi9TZWxlY3RPcHRpb25Db250ZW50JztcbmltcG9ydCBTZWxlY3RTZWFyY2hDb250cm9sIGZyb20gJy4vU2VsZWN0U2VhcmNoQ29udHJvbCc7XG5pbXBvcnQgU2VsZWN0VmFsdWVDb250ZW50IGZyb20gJy4vU2VsZWN0VmFsdWVDb250ZW50JztcbmltcG9ydCB7IHVzZVNlbGVjdFNoZWxsIH0gZnJvbSAnLi91c2VTZWxlY3RTaGVsbCc7XG5pbXBvcnQgeyBLRVlCT0FSRCwgU0VMRUNUX1RZUE9HUkFQSFkgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBleHRyYWN0T3B0aW9uVGV4dCwgZmlsdGVyT3B0aW9uR3JvdXBzLCBmbGF0dGVuT3B0aW9uR3JvdXBzLCBnZXRNdWx0aXBsZVZhbHVlLCBnZXRGb250U2l6ZSwgZ2V0T3B0aW9uc0J5VmFsdWVzLCBnZXRTZWxlY3RlZE9wdGlvbnMsIGlzT3B0aW9uU2VsZWN0ZWQsIG5vcm1hbGl6ZVNpemUsIG5vcm1hbGl6ZU9wdGlvbkdyb3VwcywgcmVtb3ZlTXVsdGlwbGVWYWx1ZSwgdG9nZ2xlTXVsdGlwbGVWYWx1ZSwgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCAnLi9zdHlsZSc7XG5jb25zdCBERUZBVUxUX01BWF9IRUlHSFQgPSAzMjA7XG5leHBvcnQgY29uc3QgU2VsZWN0ID0gKHByb3BzKSA9PiB7XG4gICAgY29uc3QgeyBjbGFzc05hbWUgPSAnJywgcHJlZml4Q2xzID0gJ3NlbGVjdCcsIHN0eWxlLCBpZCwgbmFtZSwgJ2FyaWEtbGFiZWwnOiBhcmlhTGFiZWwsICdhcmlhLWxhYmVsbGVkYnknOiBhcmlhTGFiZWxsZWRCeSwgcGxhY2Vob2xkZXIgPSAnVmFsdWUnLCBvcHRpb25zID0gW10sIHZhbHVlLCBkZWZhdWx0VmFsdWUsIHNpemUgPSAnbGFyZ2UnLCBzdGF0dXMgPSAnZGVmYXVsdCcsIHZhcmlhbnQgPSAnZmlsbCcsIGRpc2FibGVkOiBkaXNhYmxlZFByb3AgPSBmYWxzZSwgcmVhZE9ubHkgPSBmYWxzZSwgbG9hZGluZyA9IGZhbHNlLCBtdWx0aXBsZSA9IGZhbHNlLCBtYXhWaXNpYmxlVmFsdWVzLCBzZWFyY2hhYmxlID0gZmFsc2UsIHNlYXJjaFBsYWNlaG9sZGVyID0gJ1NlYXJjaCcsIHNlYXJjaFZhbHVlLCBkZWZhdWx0U2VhcmNoVmFsdWUgPSAnJywgZmlsdGVySW5wdXRBdXRvRm9jdXMgPSB0cnVlLCBsYWJlbCwgbGFiZWxDbGFzc05hbWUsIGluZm8sIGRlc2NyaXB0aW9uLCBmZWVkYmFjaywgcmVxdWlyZWQgPSB0cnVlLCBwcmVmaXgsIGVtcHR5Q29udGVudCA9ICdObyBvcHRpb25zJywgcGFuZWxIZWFkZXIsIHBhbmVsRm9vdGVyLCBvcGVuLCBkZWZhdWx0T3BlbiA9IGZhbHNlLCBwb3J0YWwgPSB0cnVlLCBhbGxvd0Rlc2VsZWN0ID0gZmFsc2UsIHBhbmVsQ2xhc3NOYW1lLCBvcHRpb25DbGFzc05hbWUsIGxpc3RNYXhIZWlnaHQgPSBERUZBVUxUX01BWF9IRUlHSFQsIG9mZnNldCwgYW5pbWF0aW9uLCBvbkNoYW5nZSwgb25PcGVuQ2hhbmdlLCBvblNlYXJjaENoYW5nZSwgb25CbHVyLCBmaWx0ZXJPcHRpb24sIHJlbmRlck9wdGlvbiwgcmVuZGVyT3B0aW9uQ29udGVudCwgcmVuZGVyVmFsdWUsIHJlZiwgfSA9IHByb3BzO1xuICAgIGNvbnN0IGRpc2FibGVkID0gZGlzYWJsZWRQcm9wIHx8IGxvYWRpbmc7XG4gICAgY29uc3QgaW50ZXJhY3RpdmUgPSAhZGlzYWJsZWQgJiYgIXJlYWRPbmx5O1xuICAgIGNvbnN0IGNsYXNzZXMgPSByb290Q2xhc3NuYW1lcyhwcmVmaXhDbHMpO1xuICAgIGNvbnN0IGF1dG9JZCA9IHVzZUlkKCk7XG4gICAgY29uc3QgdHJpZ2dlcklkID0gaWQgIT09IG51bGwgJiYgaWQgIT09IHZvaWQgMCA/IGlkIDogYXV0b0lkO1xuICAgIGNvbnN0IGxhYmVsSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IGRlc2NyaXB0aW9uSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IGZlZWRiYWNrSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IG9wdGlvbklkUHJlZml4ID0gdXNlSWQoKTtcbiAgICBjb25zdCBbaW5uZXJWYWx1ZSwgc2V0SW5uZXJWYWx1ZV0gPSB1c2VDb250cm9sbGVkU3RhdGUoZGVmYXVsdFZhbHVlICE9PSBudWxsICYmIGRlZmF1bHRWYWx1ZSAhPT0gdm9pZCAwID8gZGVmYXVsdFZhbHVlIDogKG11bHRpcGxlID8gW10gOiB1bmRlZmluZWQpLCB2YWx1ZSk7XG4gICAgY29uc3QgW2lubmVyU2VhcmNoVmFsdWUsIHNldElubmVyU2VhcmNoVmFsdWVdID0gdXNlQ29udHJvbGxlZFN0YXRlKGRlZmF1bHRTZWFyY2hWYWx1ZSwgc2VhcmNoVmFsdWUpO1xuICAgIGNvbnN0IFthY3RpdmVJbmRleCwgc2V0QWN0aXZlSW5kZXhdID0gdXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3Qgbm9ybWFsaXplZFNpemUgPSBub3JtYWxpemVTaXplKHNpemUpO1xuICAgIGNvbnN0IGFsbE9wdGlvbkdyb3VwcyA9IHVzZU1lbW8oKCkgPT4gbm9ybWFsaXplT3B0aW9uR3JvdXBzKG9wdGlvbnMpLCBbb3B0aW9uc10pO1xuICAgIGNvbnN0IGFsbEZsYXRPcHRpb25zID0gdXNlTWVtbygoKSA9PiBmbGF0dGVuT3B0aW9uR3JvdXBzKGFsbE9wdGlvbkdyb3VwcyksIFthbGxPcHRpb25Hcm91cHNdKTtcbiAgICBjb25zdCB2aXNpYmxlT3B0aW9uR3JvdXBzID0gdXNlTWVtbygoKSA9PiAoc2VhcmNoYWJsZVxuICAgICAgICA/IGZpbHRlck9wdGlvbkdyb3VwcyhhbGxPcHRpb25Hcm91cHMsIGlubmVyU2VhcmNoVmFsdWUsIGZpbHRlck9wdGlvbilcbiAgICAgICAgOiBhbGxPcHRpb25Hcm91cHMpLCBbYWxsT3B0aW9uR3JvdXBzLCBmaWx0ZXJPcHRpb24sIGlubmVyU2VhcmNoVmFsdWUsIHNlYXJjaGFibGVdKTtcbiAgICBjb25zdCB2aXNpYmxlRmxhdE9wdGlvbnMgPSB1c2VNZW1vKCgpID0+IGZsYXR0ZW5PcHRpb25Hcm91cHModmlzaWJsZU9wdGlvbkdyb3VwcyksIFt2aXNpYmxlT3B0aW9uR3JvdXBzXSk7XG4gICAgY29uc3Qgc2VsZWN0ZWRPcHRpb25zID0gdXNlTWVtbygoKSA9PiBnZXRTZWxlY3RlZE9wdGlvbnMoYWxsRmxhdE9wdGlvbnMsIGlubmVyVmFsdWUsIG11bHRpcGxlKSwgW2FsbEZsYXRPcHRpb25zLCBpbm5lclZhbHVlLCBtdWx0aXBsZV0pO1xuICAgIGNvbnN0IHNlbGVjdGVkSW5kZXggPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgaWYgKHNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1hdGNoZWRJbmRleCA9IHZpc2libGVGbGF0T3B0aW9ucy5maW5kSW5kZXgoKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSBzZWxlY3RlZE9wdGlvbnNbMF0udmFsdWUpO1xuICAgICAgICByZXR1cm4gbWF0Y2hlZEluZGV4ID49IDAgPyBtYXRjaGVkSW5kZXggOiBudWxsO1xuICAgIH0sIFtzZWxlY3RlZE9wdGlvbnMsIHZpc2libGVGbGF0T3B0aW9uc10pO1xuICAgIGNvbnN0IGhhc1NlbGVjdGlvbiA9IHNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPiAwO1xuICAgIGNvbnN0IGxpc3RSZWYgPSB1c2VSZWYoW10pO1xuICAgIGNvbnN0IGxpc3RDb250ZW50UmVmID0gdXNlUmVmKFtdKTtcbiAgICBjb25zdCBmbG9hdGluZ1JlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCB0cmlnZ2VyUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHNlYXJjaElucHV0UmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGhhbmRsZVRyaWdnZXJSZWYgPSB1c2VFdmVudENhbGxiYWNrKChub2RlKSA9PiB7XG4gICAgICAgIHRyaWdnZXJSZWYuY3VycmVudCA9IG5vZGU7XG4gICAgICAgIGlmIChyZWYpIHtcbiAgICAgICAgICAgIHJlZi5jdXJyZW50ID0gbm9kZTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IHsgaXNPcGVuOiBpbm5lck9wZW4sIHNldE9wZW46IGhhbmRsZU9wZW5DaGFuZ2UsIHJlZnMsIGNvbnRleHQsIGZsb2F0aW5nU3R5bGVzLCB0cmFuc2l0aW9uU3R5bGVzLCBpc01vdW50ZWQsIGJhc2VJbnRlcmFjdGlvbnMsIH0gPSB1c2VTZWxlY3RTaGVsbCh7XG4gICAgICAgIG9wZW4sXG4gICAgICAgIGRlZmF1bHRPcGVuLFxuICAgICAgICBvbk9wZW5DaGFuZ2UsXG4gICAgICAgIGRpc2FibGVkLFxuICAgICAgICByZWFkT25seSxcbiAgICAgICAgbGlzdE1heEhlaWdodCxcbiAgICAgICAgYW5pbWF0aW9uLFxuICAgICAgICBvZmZzZXQsXG4gICAgfSk7XG4gICAgY29uc3Qgc2V0UmVmZXJlbmNlID0gdXNlRXZlbnRDYWxsYmFjaygobm9kZSkgPT4ge1xuICAgICAgICByZWZzLnNldFJlZmVyZW5jZShub2RlKTtcbiAgICAgICAgaGFuZGxlVHJpZ2dlclJlZihub2RlKTtcbiAgICB9KTtcbiAgICBjb25zdCBzZXRGbG9hdGluZyA9IHVzZUV2ZW50Q2FsbGJhY2soKG5vZGUpID0+IHtcbiAgICAgICAgcmVmcy5zZXRGbG9hdGluZyhub2RlKTtcbiAgICAgICAgZmxvYXRpbmdSZWYuY3VycmVudCA9IG5vZGU7XG4gICAgfSk7XG4gICAgY29uc3QgbGlzdE5hdmlnYXRpb24gPSB1c2VMaXN0TmF2aWdhdGlvbihjb250ZXh0LCB7XG4gICAgICAgIGxpc3RSZWYsXG4gICAgICAgIGFjdGl2ZUluZGV4LFxuICAgICAgICBzZWxlY3RlZEluZGV4LFxuICAgICAgICBvbk5hdmlnYXRlOiBzZXRBY3RpdmVJbmRleCxcbiAgICAgICAgZW5hYmxlZDogaW5uZXJPcGVuLFxuICAgICAgICBsb29wOiB0cnVlLFxuICAgICAgICB2aXJ0dWFsOiBzZWFyY2hhYmxlLFxuICAgIH0pO1xuICAgIGNvbnN0IHR5cGVhaGVhZCA9IHVzZVR5cGVhaGVhZChjb250ZXh0LCB7XG4gICAgICAgIGxpc3RSZWY6IGxpc3RDb250ZW50UmVmLFxuICAgICAgICBhY3RpdmVJbmRleCxcbiAgICAgICAgc2VsZWN0ZWRJbmRleCxcbiAgICAgICAgZW5hYmxlZDogaW5uZXJPcGVuICYmICFzZWFyY2hhYmxlLFxuICAgICAgICBvbk1hdGNoOiBzZXRBY3RpdmVJbmRleCxcbiAgICB9KTtcbiAgICBjb25zdCB7IGdldFJlZmVyZW5jZVByb3BzLCBnZXRGbG9hdGluZ1Byb3BzLCBnZXRJdGVtUHJvcHMgfSA9IHVzZUludGVyYWN0aW9ucyhbXG4gICAgICAgIC4uLmJhc2VJbnRlcmFjdGlvbnMsXG4gICAgICAgIGxpc3ROYXZpZ2F0aW9uLFxuICAgICAgICB0eXBlYWhlYWQsXG4gICAgXSk7XG4gICAgY29uc3QgZmlyc3RFbmFibGVkSW5kZXggPSB1c2VNZW1vKCgpID0+IHZpc2libGVGbGF0T3B0aW9ucy5maW5kSW5kZXgoKG9wdGlvbikgPT4gIW9wdGlvbi5kaXNhYmxlZCksIFt2aXNpYmxlRmxhdE9wdGlvbnNdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIWlubmVyT3Blbikge1xuICAgICAgICAgICAgc2V0QWN0aXZlSW5kZXgoc2VsZWN0ZWRJbmRleCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc2V0QWN0aXZlSW5kZXgoKHByZXYpID0+IHtcbiAgICAgICAgICAgIGlmIChwcmV2ICE9PSBudWxsICYmIHZpc2libGVGbGF0T3B0aW9uc1twcmV2XSAmJiAhdmlzaWJsZUZsYXRPcHRpb25zW3ByZXZdLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHByZXY7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgICAgIHZpc2libGVGbGF0T3B0aW9uc1tzZWxlY3RlZEluZGV4XSAmJlxuICAgICAgICAgICAgICAgICF2aXNpYmxlRmxhdE9wdGlvbnNbc2VsZWN0ZWRJbmRleF0uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZWN0ZWRJbmRleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmaXJzdEVuYWJsZWRJbmRleCA+PSAwID8gZmlyc3RFbmFibGVkSW5kZXggOiBudWxsO1xuICAgICAgICB9KTtcbiAgICB9LCBbZmlyc3RFbmFibGVkSW5kZXgsIGlubmVyT3Blbiwgc2VsZWN0ZWRJbmRleCwgdmlzaWJsZUZsYXRPcHRpb25zXSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoIWlubmVyT3BlbiB8fCBhY3RpdmVJbmRleCA9PT0gbnVsbCB8fCBzZWFyY2hhYmxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgKF9hID0gbGlzdFJlZi5jdXJyZW50W2FjdGl2ZUluZGV4XSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICB9LCBbYWN0aXZlSW5kZXgsIGlubmVyT3Blbiwgc2VhcmNoYWJsZV0pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGxpc3RSZWYuY3VycmVudCA9IGxpc3RSZWYuY3VycmVudC5zbGljZSgwLCB2aXNpYmxlRmxhdE9wdGlvbnMubGVuZ3RoKTtcbiAgICAgICAgbGlzdENvbnRlbnRSZWYuY3VycmVudCA9IGxpc3RDb250ZW50UmVmLmN1cnJlbnQuc2xpY2UoMCwgdmlzaWJsZUZsYXRPcHRpb25zLmxlbmd0aCk7XG4gICAgfSwgW3Zpc2libGVGbGF0T3B0aW9ucy5sZW5ndGhdKTtcbiAgICBjb25zdCBzZXRTZWFyY2hJbnB1dFJlZiA9IHVzZUV2ZW50Q2FsbGJhY2soKG5vZGUpID0+IHtcbiAgICAgICAgc2VhcmNoSW5wdXRSZWYuY3VycmVudCA9IG5vZGU7XG4gICAgICAgIGlmIChub2RlICYmIGlubmVyT3BlbiAmJiBmaWx0ZXJJbnB1dEF1dG9Gb2N1cykge1xuICAgICAgICAgICAgbm9kZS5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBub3RpZnlCbHVySWZPdXRzaWRlID0gdXNlRXZlbnRDYWxsYmFjaygocmVsYXRlZFRhcmdldCwgZXZlbnQpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgY29uc3QgbmV4dFRhcmdldCA9IHJlbGF0ZWRUYXJnZXQ7XG4gICAgICAgIGNvbnN0IHdpdGhpblRyaWdnZXIgPSAhIShuZXh0VGFyZ2V0ICYmICgoX2EgPSB0cmlnZ2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jb250YWlucyhuZXh0VGFyZ2V0KSkpO1xuICAgICAgICBjb25zdCB3aXRoaW5GbG9hdGluZyA9ICEhKG5leHRUYXJnZXQgJiYgKChfYiA9IGZsb2F0aW5nUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jb250YWlucyhuZXh0VGFyZ2V0KSkpO1xuICAgICAgICBpZiAoIXdpdGhpblRyaWdnZXIgJiYgIXdpdGhpbkZsb2F0aW5nKSB7XG4gICAgICAgICAgICBvbkJsdXIgPT09IG51bGwgfHwgb25CbHVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkJsdXIoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlVHJpZ2dlckJsdXIgPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBub3RpZnlCbHVySWZPdXRzaWRlKGV2ZW50LnJlbGF0ZWRUYXJnZXQsIGV2ZW50KTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVPcHRpb25CbHVyID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgbm90aWZ5Qmx1cklmT3V0c2lkZShldmVudC5yZWxhdGVkVGFyZ2V0LCBldmVudCk7XG4gICAgfSk7XG4gICAgY29uc3QgY29tbWl0Q2hhbmdlID0gdXNlRXZlbnRDYWxsYmFjaygobmV4dFZhbHVlLCBuZXh0T3B0aW9uKSA9PiB7XG4gICAgICAgIHNldElubmVyVmFsdWUobmV4dFZhbHVlKTtcbiAgICAgICAgb25DaGFuZ2UgPT09IG51bGwgfHwgb25DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ2hhbmdlKG5leHRWYWx1ZSwgbmV4dE9wdGlvbiwgbmFtZSk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlU2VsZWN0T3B0aW9uID0gdXNlRXZlbnRDYWxsYmFjaygob3B0aW9uKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGlmIChvcHRpb24uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAobXVsdGlwbGUpIHtcbiAgICAgICAgICAgIGNvbnN0IG5leHRWYWx1ZSA9IHRvZ2dsZU11bHRpcGxlVmFsdWUoaW5uZXJWYWx1ZSwgb3B0aW9uLnZhbHVlKTtcbiAgICAgICAgICAgIGNvbnN0IG5leHRPcHRpb25zID0gZ2V0T3B0aW9uc0J5VmFsdWVzKGFsbEZsYXRPcHRpb25zLCBuZXh0VmFsdWUpO1xuICAgICAgICAgICAgY29tbWl0Q2hhbmdlKG5leHRWYWx1ZSwgbmV4dE9wdGlvbnMpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhbGxvd0Rlc2VsZWN0ICYmIGlubmVyVmFsdWUgPT09IG9wdGlvbi52YWx1ZSkge1xuICAgICAgICAgICAgY29tbWl0Q2hhbmdlKHVuZGVmaW5lZCwgdW5kZWZpbmVkKTtcbiAgICAgICAgICAgIGhhbmRsZU9wZW5DaGFuZ2UoZmFsc2UpO1xuICAgICAgICAgICAgb25CbHVyID09PSBudWxsIHx8IG9uQmx1ciA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25CbHVyKCk7XG4gICAgICAgICAgICAoX2EgPSB0cmlnZ2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29tbWl0Q2hhbmdlKG9wdGlvbi52YWx1ZSwgb3B0aW9uKTtcbiAgICAgICAgaGFuZGxlT3BlbkNoYW5nZShmYWxzZSk7XG4gICAgICAgIG9uQmx1ciA9PT0gbnVsbCB8fCBvbkJsdXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQmx1cigpO1xuICAgICAgICAoX2IgPSB0cmlnZ2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlUmVtb3ZlU2VsZWN0ZWRWYWx1ZSA9IHVzZUV2ZW50Q2FsbGJhY2soKG9wdGlvblZhbHVlKSA9PiB7XG4gICAgICAgIGlmICghbXVsdGlwbGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWdldE11bHRpcGxlVmFsdWUoaW5uZXJWYWx1ZSkuaW5jbHVkZXMob3B0aW9uVmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmV4dFZhbHVlID0gcmVtb3ZlTXVsdGlwbGVWYWx1ZShpbm5lclZhbHVlLCBvcHRpb25WYWx1ZSk7XG4gICAgICAgIGNvbnN0IG5leHRPcHRpb25zID0gZ2V0T3B0aW9uc0J5VmFsdWVzKGFsbEZsYXRPcHRpb25zLCBuZXh0VmFsdWUpO1xuICAgICAgICBjb21taXRDaGFuZ2UobmV4dFZhbHVlLCBuZXh0T3B0aW9ucyk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlVHJpZ2dlcktleURvd24gPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBpZiAoIWludGVyYWN0aXZlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuRU5URVIgfHwgZXZlbnQua2V5ID09PSBLRVlCT0FSRC5TUEFDRSkge1xuICAgICAgICAgICAgaWYgKGlubmVyT3BlbiAmJlxuICAgICAgICAgICAgICAgIGFjdGl2ZUluZGV4ICE9PSBudWxsICYmXG4gICAgICAgICAgICAgICAgdmlzaWJsZUZsYXRPcHRpb25zW2FjdGl2ZUluZGV4XSAmJlxuICAgICAgICAgICAgICAgICF2aXNpYmxlRmxhdE9wdGlvbnNbYWN0aXZlSW5kZXhdLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RPcHRpb24odmlzaWJsZUZsYXRPcHRpb25zW2FjdGl2ZUluZGV4XSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGhhbmRsZU9wZW5DaGFuZ2UoIWlubmVyT3Blbik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuQVJST1dfRE9XTiB8fCBldmVudC5rZXkgPT09IEtFWUJPQVJELkFSUk9XX1VQKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKCFpbm5lck9wZW4pIHtcbiAgICAgICAgICAgICAgICBoYW5kbGVPcGVuQ2hhbmdlKHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlSXRlbU1vdXNlRW50ZXIgPSB1c2VFdmVudENhbGxiYWNrKChpbmRleCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmICghKChfYSA9IHZpc2libGVGbGF0T3B0aW9uc1tpbmRleF0pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5kaXNhYmxlZCkpIHtcbiAgICAgICAgICAgIHNldEFjdGl2ZUluZGV4KGluZGV4KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVRhZ1JlbW92ZU1vdXNlRG93biA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVRhZ1JlbW92ZUNsaWNrID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlU2VhcmNoQmx1ciA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIG5vdGlmeUJsdXJJZk91dHNpZGUoZXZlbnQucmVsYXRlZFRhcmdldCwgZXZlbnQpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVNlYXJjaENoYW5nZSA9IHVzZUV2ZW50Q2FsbGJhY2soKG5leHRWYWx1ZSwgX2V2ZW50KSA9PiB7XG4gICAgICAgIHNldElubmVyU2VhcmNoVmFsdWUobmV4dFZhbHVlKTtcbiAgICAgICAgb25TZWFyY2hDaGFuZ2UgPT09IG51bGwgfHwgb25TZWFyY2hDaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uU2VhcmNoQ2hhbmdlKG5leHRWYWx1ZSk7XG4gICAgfSk7XG4gICAgY29uc3QgZmluZEVuYWJsZWRJbmRleCA9IHVzZUV2ZW50Q2FsbGJhY2soKGN1cnJlbnQsIGRpcmVjdGlvbikgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGNvbnN0IGxlbmd0aCA9IHZpc2libGVGbGF0T3B0aW9ucy5sZW5ndGg7XG4gICAgICAgIGlmIChsZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gY3VycmVudCAhPT0gbnVsbCAmJiBjdXJyZW50ICE9PSB2b2lkIDAgPyBjdXJyZW50IDogKGRpcmVjdGlvbiA9PT0gMSA/IC0xIDogbGVuZ3RoKTtcbiAgICAgICAgZm9yIChsZXQgc3RlcCA9IDE7IHN0ZXAgPD0gbGVuZ3RoOyBzdGVwICs9IDEpIHtcbiAgICAgICAgICAgIGNvbnN0IGNhbmRpZGF0ZSA9ICgoc3RhcnQgKyBkaXJlY3Rpb24gKiBzdGVwKSAlIGxlbmd0aCArIGxlbmd0aCkgJSBsZW5ndGg7XG4gICAgICAgICAgICBpZiAoISgoX2EgPSB2aXNpYmxlRmxhdE9wdGlvbnNbY2FuZGlkYXRlXSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmRpc2FibGVkKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjYW5kaWRhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlU2VhcmNoS2V5RG93biA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuQVJST1dfRE9XTikge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGNvbnN0IG5leHQgPSBmaW5kRW5hYmxlZEluZGV4KGFjdGl2ZUluZGV4LCAxKTtcbiAgICAgICAgICAgIGlmIChuZXh0ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgc2V0QWN0aXZlSW5kZXgobmV4dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuQVJST1dfVVApIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBjb25zdCBwcmV2ID0gZmluZEVuYWJsZWRJbmRleChhY3RpdmVJbmRleCwgLTEpO1xuICAgICAgICAgICAgaWYgKHByZXYgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBzZXRBY3RpdmVJbmRleChwcmV2KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBLRVlCT0FSRC5FTlRFUikge1xuICAgICAgICAgICAgaWYgKGFjdGl2ZUluZGV4ICE9PSBudWxsICYmXG4gICAgICAgICAgICAgICAgdmlzaWJsZUZsYXRPcHRpb25zW2FjdGl2ZUluZGV4XSAmJlxuICAgICAgICAgICAgICAgICF2aXNpYmxlRmxhdE9wdGlvbnNbYWN0aXZlSW5kZXhdLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RPcHRpb24odmlzaWJsZUZsYXRPcHRpb25zW2FjdGl2ZUluZGV4XSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuRVNDQVBFKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaGFuZGxlT3BlbkNoYW5nZShmYWxzZSk7XG4gICAgICAgICAgICAoX2EgPSB0cmlnZ2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCByZW5kZXJWYWx1ZU1ldGEgPSB7XG4gICAgICAgIGRpc2FibGVkLFxuICAgICAgICByZWFkT25seSxcbiAgICAgICAgbXVsdGlwbGUsXG4gICAgICAgIG1heFZpc2libGVWYWx1ZXMsXG4gICAgICAgIG9wZW46IGlubmVyT3BlbixcbiAgICAgICAgcGxhY2Vob2xkZXI6ICFoYXNTZWxlY3Rpb24sXG4gICAgICAgIHNlbGVjdGVkT3B0aW9ucyxcbiAgICAgICAgc2l6ZTogbm9ybWFsaXplZFNpemUsXG4gICAgICAgIGZvbnRTaXplOiBnZXRGb250U2l6ZShub3JtYWxpemVkU2l6ZSksXG4gICAgfTtcbiAgICBjb25zdCB2YWx1ZUxhYmVsQ2xhc3MgPSBoYXNTZWxlY3Rpb24gPyAndmFsdWUnIDogJ3BsYWNlaG9sZGVyJztcbiAgICBjb25zdCBpc011bHRpcGxlVmFsdWVGaWxsZWQgPSAobXVsdGlwbGUgJiZcbiAgICAgICAgaGFzU2VsZWN0aW9uICYmXG4gICAgICAgIG1heFZpc2libGVWYWx1ZXMgPT09IHVuZGVmaW5lZCk7XG4gICAgY29uc3QgdHJpZ2dlckNsYXNzTmFtZSA9IGNsYXNzZXMoJ3RyaWdnZXInLCBqb2luQ2xzKGNsYXNzZXMoYHRyaWdnZXItJHtub3JtYWxpemVkU2l6ZX1gKSwgY2xhc3NlcyhgdHJpZ2dlci0ke3ZhcmlhbnR9YCksIGlubmVyT3BlbiAmJiBjbGFzc2VzKCd0cmlnZ2VyLW9wZW4nKSwgaXNNdWx0aXBsZVZhbHVlRmlsbGVkICYmIGNsYXNzZXMoJ3RyaWdnZXItbXVsdGlwbGUtZmlsbGVkJyksIGhhc1NlbGVjdGlvbiA/IGNsYXNzZXMoJ3RyaWdnZXItZmlsbGVkJykgOiBjbGFzc2VzKCd0cmlnZ2VyLXBsYWNlaG9sZGVyJyksIHN0YXR1cyAhPT0gJ2RlZmF1bHQnICYmIGNsYXNzZXMoYHRyaWdnZXItJHtzdGF0dXN9YCksIGRpc2FibGVkICYmIGNsYXNzZXMoJ3RyaWdnZXItZGlzYWJsZWQnKSwgcmVhZE9ubHkgJiYgIWRpc2FibGVkICYmIGNsYXNzZXMoJ3RyaWdnZXItcmVhZG9ubHknKSkpO1xuICAgIGNvbnN0IGljb25TaXplID0gbm9ybWFsaXplZFNpemUgPT09ICdzbWFsbCcgPyAxNiA6IDIwO1xuICAgIGNvbnN0IGFjdGl2ZU9wdGlvbklkID0gc2VhcmNoYWJsZSAmJiBpbm5lck9wZW4gJiYgYWN0aXZlSW5kZXggIT09IG51bGxcbiAgICAgICAgPyBgJHtvcHRpb25JZFByZWZpeH0tJHthY3RpdmVJbmRleH1gXG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IGZsb2F0aW5nQXJpYUxhYmVsbGVkQnkgPSBhcmlhTGFiZWxsZWRCeSAhPT0gbnVsbCAmJiBhcmlhTGFiZWxsZWRCeSAhPT0gdm9pZCAwID8gYXJpYUxhYmVsbGVkQnkgOiAobGFiZWwgPyBsYWJlbElkIDogdW5kZWZpbmVkKTtcbiAgICBjb25zdCBkZXNjcmliZWRCeUlkcyA9IFtcbiAgICAgICAgZGVzY3JpcHRpb24gPyBkZXNjcmlwdGlvbklkIDogbnVsbCxcbiAgICAgICAgZmVlZGJhY2sgPyBmZWVkYmFja0lkIDogbnVsbCxcbiAgICBdLmZpbHRlcihCb29sZWFuKS5qb2luKCcgJykgfHwgdW5kZWZpbmVkO1xuICAgIHJldHVybiAoX2pzeHMoU2VsZWN0RmllbGRTaGVsbCwgeyBjbGFzc2VzOiBjbGFzc2VzLCBjbGFzc05hbWU6IGNsYXNzTmFtZSwgc2l6ZTogbm9ybWFsaXplZFNpemUsIHZhcmlhbnQ6IHZhcmlhbnQsIHN0YXR1czogc3RhdHVzLCBkaXNhYmxlZDogZGlzYWJsZWQsIHJlYWRPbmx5OiByZWFkT25seSwgbG9hZGluZzogbG9hZGluZywgbGFiZWw6IGxhYmVsLCBsYWJlbENsYXNzTmFtZTogbGFiZWxDbGFzc05hbWUsIGluZm86IGluZm8sIGRlc2NyaXB0aW9uOiBkZXNjcmlwdGlvbiwgZmVlZGJhY2s6IGZlZWRiYWNrLCByZXF1aXJlZDogcmVxdWlyZWQsIGxhYmVsSWQ6IGxhYmVsSWQsIGRlc2NyaXB0aW9uSWQ6IGRlc2NyaXB0aW9uSWQsIGZlZWRiYWNrSWQ6IGZlZWRiYWNrSWQsIGNoaWxkcmVuOiBbX2pzeHMoXCJidXR0b25cIiwgT2JqZWN0LmFzc2lnbih7fSwgZ2V0UmVmZXJlbmNlUHJvcHMoe1xuICAgICAgICAgICAgICAgIHJlZjogc2V0UmVmZXJlbmNlLFxuICAgICAgICAgICAgICAgIGlkOiB0cmlnZ2VySWQsXG4gICAgICAgICAgICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgICAgICAgICAnYXJpYS1yZWFkb25seSc6IHJlYWRPbmx5IHx8IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6IHRyaWdnZXJDbGFzc05hbWUsXG4gICAgICAgICAgICAgICAgb25LZXlEb3duOiBoYW5kbGVUcmlnZ2VyS2V5RG93bixcbiAgICAgICAgICAgICAgICBvbkJsdXI6IGhhbmRsZVRyaWdnZXJCbHVyLFxuICAgICAgICAgICAgICAgICdhcmlhLWxhYmVsJzogYXJpYUxhYmVsLFxuICAgICAgICAgICAgICAgICdhcmlhLWxhYmVsbGVkYnknOiBmbG9hdGluZ0FyaWFMYWJlbGxlZEJ5LFxuICAgICAgICAgICAgICAgICdhcmlhLWRlc2NyaWJlZGJ5JzogZGVzY3JpYmVkQnlJZHMsXG4gICAgICAgICAgICB9KSwgeyBjaGlsZHJlbjogW19qc3hzKFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnY29udGVudCcpLCBjaGlsZHJlbjogW3ByZWZpeCAmJiBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygncHJlZml4JyksIGNoaWxkcmVuOiBwcmVmaXggfSksIF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKHZhbHVlTGFiZWxDbGFzcywgam9pbkNscyhjbGFzc2VzKGAke3ZhbHVlTGFiZWxDbGFzc30tJHtub3JtYWxpemVkU2l6ZX1gKSwgaXNNdWx0aXBsZVZhbHVlRmlsbGVkICYmIGNsYXNzZXMoYCR7dmFsdWVMYWJlbENsYXNzfS1tdWx0aXBsZWApLCBkaXNhYmxlZCAmJiBjbGFzc2VzKGAke3ZhbHVlTGFiZWxDbGFzc30tZGlzYWJsZWRgKSkpLCBjaGlsZHJlbjogX2pzeChTZWxlY3RWYWx1ZUNvbnRlbnQsIHsgY2xhc3NlczogY2xhc3NlcywgaGFzU2VsZWN0aW9uOiBoYXNTZWxlY3Rpb24sIG11bHRpcGxlOiBtdWx0aXBsZSwgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyLCByZW5kZXJWYWx1ZTogcmVuZGVyVmFsdWUsIHJlbmRlclZhbHVlTWV0YTogcmVuZGVyVmFsdWVNZXRhLCBzZWxlY3RlZE9wdGlvbnM6IHNlbGVjdGVkT3B0aW9ucywgbWF4VmlzaWJsZVZhbHVlczogbWF4VmlzaWJsZVZhbHVlcywgb25SZW1vdmU6IGhhbmRsZVJlbW92ZVNlbGVjdGVkVmFsdWUsIG9uUmVtb3ZlQ2xpY2s6IGhhbmRsZVRhZ1JlbW92ZUNsaWNrLCBvblJlbW92ZU1vdXNlRG93bjogaGFuZGxlVGFnUmVtb3ZlTW91c2VEb3duIH0pIH0pXSB9KSwgX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2ljb24nKSwgY2hpbGRyZW46IGxvYWRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IF9qc3goU3Bpbm5lciwgeyBzaXplOiBpY29uU2l6ZSwgc3Ryb2tlV2lkdGg6IDIgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHJlYWRPbmx5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IF9qc3goSWNvbnMsIHsgbmFtZTogaW5uZXJPcGVuID8gJ2NoZXZyb25VcCcgOiAnY2hldnJvbkRvd24nLCBzaXplOiBpY29uU2l6ZSwgY29sb3I6IFwiY3VycmVudENvbG9yXCIgfSkgfSldIH0pKSwgaXNNb3VudGVkICYmIGludGVyYWN0aXZlICYmICgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFuZWxOb2RlID0gKF9qc3goRmxvYXRpbmdGb2N1c01hbmFnZXIsIHsgY29udGV4dDogY29udGV4dCwgbW9kYWw6IGZhbHNlLCBpbml0aWFsRm9jdXM6IC0xLCByZXR1cm5Gb2N1czogZmFsc2UsIGNoaWxkcmVuOiBfanN4cyhcImRpdlwiLCBPYmplY3QuYXNzaWduKHt9LCBnZXRGbG9hdGluZ1Byb3BzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZjogc2V0RmxvYXRpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IGpvaW5DbHMoY2xhc3NlcygncGFuZWwnKSwgcGFuZWxDbGFzc05hbWUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZmxvYXRpbmdTdHlsZXMpLCB0cmFuc2l0aW9uU3R5bGVzKSxcbiAgICAgICAgICAgICAgICAgICAgfSksIHsgY2hpbGRyZW46IFtwYW5lbEhlYWRlciAhPSBudWxsICYmIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdwYW5lbC1oZWFkZXInKSwgY2hpbGRyZW46IHBhbmVsSGVhZGVyIH0pKSwgc2VhcmNoYWJsZSAmJiAoX2pzeChTZWxlY3RTZWFyY2hDb250cm9sLCB7IHJlZjogc2V0U2VhcmNoSW5wdXRSZWYsIGNsYXNzZXM6IGNsYXNzZXMsIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzaXplPXtub3JtYWxpemVkU2l6ZX0gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6IFwic21hbGxcIiwgcGxhY2Vob2xkZXI6IHNlYXJjaFBsYWNlaG9sZGVyLCB2YWx1ZTogaW5uZXJTZWFyY2hWYWx1ZSwgYWN0aXZlRGVzY2VuZGFudDogYWN0aXZlT3B0aW9uSWQsIG9uQmx1cjogaGFuZGxlU2VhcmNoQmx1ciwgb25DaGFuZ2U6IGhhbmRsZVNlYXJjaENoYW5nZSwgb25LZXlEb3duOiBoYW5kbGVTZWFyY2hLZXlEb3duIH0pKSwgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygncGFuZWwtYm9keScpLCBjaGlsZHJlbjogdmlzaWJsZUZsYXRPcHRpb25zLmxlbmd0aCA9PT0gMCA/IChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdlbXB0eScpLCBjaGlsZHJlbjogX2pzeChUeXBvZ3JhcGh5Qm9keSwgeyBzaXplOiBTRUxFQ1RfVFlQT0dSQVBIWS5lbXB0eS5zaXplLCBjb2xvcjogU0VMRUNUX1RZUE9HUkFQSFkuZW1wdHkuY29sb3IsIGNoaWxkcmVuOiBlbXB0eUNvbnRlbnQgfSkgfSkpIDogKCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZmxhdEluZGV4ID0gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2aXNpYmxlT3B0aW9uR3JvdXBzLm1hcCgoZ3JvdXApID0+IChfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnZ3JvdXAnKSwgY2hpbGRyZW46IFtncm91cC5sYWJlbCAmJiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnZ3JvdXAtbGFiZWwnKSwgY2hpbGRyZW46IF9qc3goVHlwb2dyYXBoeUxhYmVsLCB7IHNpemU6IFNFTEVDVF9UWVBPR1JBUEhZLmdyb3VwTGFiZWwuc2l6ZSwgc3Ryb25nOiB0cnVlLCBjaGlsZHJlbjogZ3JvdXAubGFiZWwgfSkgfSkpLCBncm91cC5vcHRpb25zLm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25GbGF0SW5kZXggPSBmbGF0SW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGF0SW5kZXggKz0gMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkID0gaXNPcHRpb25TZWxlY3RlZChpbm5lclZhbHVlLCBtdWx0aXBsZSwgb3B0aW9uLnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGFjdGl2ZSA9IGFjdGl2ZUluZGV4ID09PSBvcHRpb25GbGF0SW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25NZXRhID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZDogISFvcHRpb24uZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IG9wdGlvbkZsYXRJbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVuOiBpbm5lck9wZW4sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNpemU6IGdldEZvbnRTaXplKG5vcm1hbGl6ZWRTaXplKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0Q29udGVudFJlZi5jdXJyZW50W29wdGlvbkZsYXRJbmRleF0gPSBleHRyYWN0T3B0aW9uVGV4dChvcHRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChfanN4KFwiYnV0dG9uXCIsIE9iamVjdC5hc3NpZ24oe30sIGdldEl0ZW1Qcm9wcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmKG5vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdFJlZi5jdXJyZW50W29wdGlvbkZsYXRJbmRleF0gPSBub2RlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGAke29wdGlvbklkUHJlZml4fS0ke29wdGlvbkZsYXRJbmRleH1gLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdidXR0b24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU6ICdvcHRpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogY2xhc3Nlcygnb3B0aW9uJywgam9pbkNscyhhY3RpdmUgJiYgY2xhc3Nlcygnb3B0aW9uLWFjdGl2ZScpLCBzZWxlY3RlZCAmJiBjbGFzc2VzKCdvcHRpb24tc2VsZWN0ZWQnKSwgb3B0aW9uLmRpc2FibGVkICYmIGNsYXNzZXMoJ29wdGlvbi1kaXNhYmxlZCcpLCBvcHRpb25DbGFzc05hbWUpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZDogb3B0aW9uLmRpc2FibGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhcmlhLXNlbGVjdGVkJzogc2VsZWN0ZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljazogKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZVNlbGVjdE9wdGlvbihvcHRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Nb3VzZUVudGVyOiAoKSA9PiBoYW5kbGVJdGVtTW91c2VFbnRlcihvcHRpb25GbGF0SW5kZXgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQmx1cjogaGFuZGxlT3B0aW9uQmx1cixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLCB7IGNoaWxkcmVuOiByZW5kZXJPcHRpb24gPyAocmVuZGVyT3B0aW9uKG9wdGlvbiwgb3B0aW9uTWV0YSkpIDogKF9qc3goU2VsZWN0T3B0aW9uQ29udGVudCwgeyBjbGFzc2VzOiBjbGFzc2VzLCBvcHRpb246IG9wdGlvbiwgc2VsZWN0ZWQ6IHNlbGVjdGVkLCBzaXplOiBub3JtYWxpemVkU2l6ZSwgY29udGVudDogcmVuZGVyT3B0aW9uQ29udGVudCA9PT0gbnVsbCB8fCByZW5kZXJPcHRpb25Db250ZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiByZW5kZXJPcHRpb25Db250ZW50KG9wdGlvbiwgb3B0aW9uTWV0YSkgfSkpIH0pLCBgJHtncm91cC5rZXl9LSR7b3B0aW9uLnZhbHVlfWApKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSldIH0sIGdyb3VwLmtleSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkoKSkgfSksIHBhbmVsRm9vdGVyICE9IG51bGwgJiYgKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3BhbmVsLWZvb3RlcicpLCBjaGlsZHJlbjogcGFuZWxGb290ZXIgfSkpXSB9KSkgfSkpO1xuICAgICAgICAgICAgICAgIHJldHVybiBwb3J0YWwgPyBfanN4KEZsb2F0aW5nUG9ydGFsLCB7IGNoaWxkcmVuOiBwYW5lbE5vZGUgfSkgOiBwYW5lbE5vZGU7XG4gICAgICAgICAgICB9KSgpXSB9KSk7XG59O1xuU2VsZWN0LmRpc3BsYXlOYW1lID0gJ1NlbGVjdCc7XG5leHBvcnQgZGVmYXVsdCBtZW1vKFNlbGVjdCk7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -114,6 +114,12 @@ export interface SelectProps extends Omit<HTMLAttributes<HTMLDivElement>, 'defau
114
114
  required?: boolean;
115
115
  prefix?: ReactNode;
116
116
  emptyContent?: ReactNode;
117
+ /**
118
+ * Content rendered at the top of the panel, above the search box and the
119
+ * option list (e.g. a banner or callout). Stays fixed while the list
120
+ * scrolls — mirror of `panelFooter`.
121
+ */
122
+ panelHeader?: ReactNode;
117
123
  panelFooter?: ReactNode;
118
124
  open?: boolean;
119
125
  defaultOpen?: boolean;
@@ -354,6 +354,11 @@
354
354
  .om-component-ui-select-search-input::placeholder {
355
355
  color: var(--om-text-neutral-secondary, #9fa3a3);
356
356
  }
357
+ .om-component-ui-select-panel-header {
358
+ flex-shrink: 0;
359
+ width: 100%;
360
+ margin-bottom: var(--om-spacing-200, 8px);
361
+ }
357
362
  .om-component-ui-select-panel-body {
358
363
  display: flex;
359
364
  flex: 1 1 auto;