cps-ui-kit 0.18.0 → 0.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -19,6 +19,7 @@
19
19
  - Select
20
20
  - Tag
21
21
  - Textarea
22
+ - Tree select
22
23
 
23
24
  ### License
24
25
 
@@ -256,7 +256,7 @@ export class CpsAutocompleteComponent {
256
256
  selected.scrollIntoView({
257
257
  behavior: 'instant',
258
258
  block: 'nearest',
259
- inline: 'start'
259
+ inline: 'center'
260
260
  });
261
261
  }
262
262
  }
@@ -331,7 +331,7 @@ export class CpsAutocompleteComponent {
331
331
  if (elRect.top < parentRect.top || elRect.bottom > parentRect.bottom) {
332
332
  el.scrollIntoView({
333
333
  block: 'nearest',
334
- inline: 'start'
334
+ inline: 'center'
335
335
  });
336
336
  }
337
337
  }
@@ -476,4 +476,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
476
476
  type: ViewChild,
477
477
  args: ['autocompleteContainer']
478
478
  }] } });
479
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BzLWF1dG9jb21wbGV0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcHMtdWkta2l0L3NyYy9saWIvY29tcG9uZW50cy9jcHMtYXV0b2NvbXBsZXRlL2Nwcy1hdXRvY29tcGxldGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLWF1dG9jb21wbGV0ZS9jcHMtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFDTixJQUFJLEVBQ0osU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsV0FBVyxFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUNMLGdCQUFnQixFQUdqQixNQUFNLGdDQUFnQyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdDQUF3QyxD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QTBCO3dCQUMxQixnQkFBZ0I7d0JBQ2hCLGlCQUFpQjt3QkFDakIsdUJBQXVCO3FCQUN4QixhQUNVLENBQUMsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsdUJBQXVCLENBQUMsWUFDL0Qsa0JBQWtCOzswQkF3RHpCLElBQUk7OzBCQUFJLFFBQVE7MkVBakRWLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUVVLE1BQU07c0JBQXJCLEtBQUs7dUJBQUMsT0FBTztnQkFXSixZQUFZO3NCQUFyQixNQUFNO2dCQUdQLHFCQUFxQjtzQkFEcEIsU0FBUzt1QkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgU2VsZixcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1zTW9kdWxlLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNvbnZlcnRTaXplIH0gZnJvbSAnLi4vLi4vdXRpbHMvc2l6ZS11dGlscyc7XG5pbXBvcnQge1xuICBDcHNJY29uQ29tcG9uZW50LFxuICBJY29uVHlwZSxcbiAgaWNvblNpemVUeXBlXG59IGZyb20gJy4uL2Nwcy1pY29uL2Nwcy1pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDcHNDaGlwQ29tcG9uZW50IH0gZnJvbSAnLi4vY3BzLWNoaXAvY3BzLWNoaXAuY29tcG9uZW50JztcbmltcG9ydCB7IENwc1Byb2dyZXNzTGluZWFyQ29tcG9uZW50IH0gZnJvbSAnLi4vY3BzLXByb2dyZXNzLWxpbmVhci9jcHMtcHJvZ3Jlc3MtbGluZWFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDbGlja091dHNpZGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2NsaWNrLW91dHNpZGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IExhYmVsQnlWYWx1ZVBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy9sYWJlbC1ieS12YWx1ZS5waXBlJztcbmltcG9ydCB7IENvbWJpbmVMYWJlbHNQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMvY29tYmluZS1sYWJlbHMucGlwZSc7XG5pbXBvcnQgeyBDaGVja09wdGlvblNlbGVjdGVkUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL2NoZWNrLW9wdGlvbi1zZWxlY3RlZC5waXBlJztcbmltcG9ydCB7IGZpbmQsIGlzRXF1YWwgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBDbGlja091dHNpZGVEaXJlY3RpdmUsXG4gICAgQ3BzSWNvbkNvbXBvbmVudCxcbiAgICBDcHNDaGlwQ29tcG9uZW50LFxuICAgIENwc1Byb2dyZXNzTGluZWFyQ29tcG9uZW50LFxuICAgIExhYmVsQnlWYWx1ZVBpcGUsXG4gICAgQ29tYmluZUxhYmVsc1BpcGUsXG4gICAgQ2hlY2tPcHRpb25TZWxlY3RlZFBpcGVcbiAgXSxcbiAgcHJvdmlkZXJzOiBbTGFiZWxCeVZhbHVlUGlwZSwgQ29tYmluZUxhYmVsc1BpcGUsIENoZWNrT3B0aW9uU2VsZWN0ZWRQaXBlXSxcbiAgc2VsZWN0b3I6ICdjcHMtYXV0b2NvbXBsZXRlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Nwcy1hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jcHMtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ3BzQXV0b2NvbXBsZXRlQ29tcG9uZW50XG4gIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgT25EZXN0cm95XG57XG4gIEBJbnB1dCgpIGxhYmVsID0gJyc7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJ1BsZWFzZSBlbnRlcic7XG4gIEBJbnB1dCgpIGhpbnQgPSAnJztcbiAgQElucHV0KCkgcmV0dXJuT2JqZWN0ID0gdHJ1ZTsgLy8gaWYgZmFsc2UsIHZhbHVlIHdpbGwgYmUgb3B0aW9uW29wdGlvblZhbHVlXVxuICBASW5wdXQoKSBtdWx0aXBsZSA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSB3aWR0aDogbnVtYmVyIHwgc3RyaW5nID0gJzEwMCUnO1xuICBASW5wdXQoKSBzZWxlY3RBbGwgPSB0cnVlO1xuICBASW5wdXQoKSBjaGlwcyA9IHRydWU7XG4gIEBJbnB1dCgpIGNsb3NhYmxlQ2hpcHMgPSB0cnVlO1xuICBASW5wdXQoKSBjbGVhcmFibGUgPSBmYWxzZTtcbiAgQElucHV0KCkgb3Blbk9uQ2xlYXIgPSB0cnVlO1xuICBASW5wdXQoKSBvcHRpb25zID0gW10gYXMgYW55W107XG4gIEBJbnB1dCgpIG9wdGlvbkxhYmVsID0gJ2xhYmVsJztcbiAgQElucHV0KCkgb3B0aW9uVmFsdWUgPSAndmFsdWUnOyAvLyBuZWVkZWQgb25seSBpZiByZXR1cm5PYmplY3QgPT09IGZhbHNlXG4gIEBJbnB1dCgpIG9wdGlvbkluZm8gPSAnaW5mbyc7XG4gIEBJbnB1dCgpIGhpZGVEZXRhaWxzID0gZmFsc2U7XG4gIEBJbnB1dCgpIHBlcnNpc3RlbnRDbGVhciA9IGZhbHNlO1xuICBASW5wdXQoKSBwcmVmaXhJY29uOiBJY29uVHlwZSA9ICcnO1xuICBASW5wdXQoKSBwcmVmaXhJY29uU2l6ZTogaWNvblNpemVUeXBlID0gJzE4cHgnO1xuICBASW5wdXQoKSBsb2FkaW5nID0gZmFsc2U7XG5cbiAgQElucHV0KCd2YWx1ZScpIF92YWx1ZTogYW55ID0gdW5kZWZpbmVkO1xuXG4gIGdldCB2YWx1ZSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgfVxuXG4gIHNldCB2YWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgfVxuXG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBAVmlld0NoaWxkKCdhdXRvY29tcGxldGVDb250YWluZXInKVxuICBhdXRvY29tcGxldGVDb250YWluZXIhOiBFbGVtZW50UmVmO1xuXG4gIGVycm9yID0gJyc7XG4gIGN2dFdpZHRoID0gJyc7XG4gIGlzT3BlbmVkID0gZmFsc2U7XG4gIGlucHV0VGV4dCA9ICcnO1xuICBmaWx0ZXJlZE9wdGlvbnMgPSBbXSBhcyBhbnlbXTtcbiAgYmFja3NwYWNlQ2xpY2tlZE9uY2UgPSBmYWxzZTtcbiAgYWN0aXZlU2luZ2xlID0gZmFsc2U7XG4gIG9wdGlvbkhpZ2hsaWdodGVkSW5kZXggPSAtMTtcbiAgcHJpdmF0ZSBfc3RhdHVzQ2hhbmdlc1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBTZWxmKCkgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfY29udHJvbDogTmdDb250cm9sLFxuICAgIHByaXZhdGUgX2xhYmVsQnlWYWx1ZTogTGFiZWxCeVZhbHVlUGlwZVxuICApIHtcbiAgICBpZiAodGhpcy5fY29udHJvbCkge1xuICAgICAgdGhpcy5fY29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IHRoaXMub3B0aW9ucztcbiAgICB0aGlzLmN2dFdpZHRoID0gY29udmVydFNpemUodGhpcy53aWR0aCk7XG4gICAgaWYgKHRoaXMubXVsdGlwbGUgJiYgIXRoaXMuX3ZhbHVlKSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IFtdO1xuICAgIH1cblxuICAgIHRoaXMuX3N0YXR1c0NoYW5nZXNTdWJzY3JpcHRpb24gPSB0aGlzLl9jb250cm9sPy5zdGF0dXNDaGFuZ2VzPy5zdWJzY3JpYmUoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHRoaXMuX2NoZWNrRXJyb3JzKCk7XG4gICAgICB9XG4gICAgKSBhcyBTdWJzY3JpcHRpb247XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9zdGF0dXNDaGFuZ2VzU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgc2VsZWN0KG9wdGlvbjogYW55LCBieVZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgZnVuY3Rpb24gaW5jbHVkZXMoYXJyYXk6IGFueVtdLCB2YWw6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIGFycmF5ID8gISFmaW5kKGFycmF5LCAoaXRlbSkgPT4gaXNFcXVhbChpdGVtLCB2YWwpKSA6IGZhbHNlO1xuICAgIH1cblxuICAgIHRoaXMuYmFja3NwYWNlQ2xpY2tlZE9uY2UgPSBmYWxzZTtcbiAgICBjb25zdCB2YWwgPSBieVZhbHVlXG4gICAgICA/IG9wdGlvblxuICAgICAgOiB0aGlzLnJldHVybk9iamVjdFxuICAgICAgPyBvcHRpb25cbiAgICAgIDogb3B0aW9uW3RoaXMub3B0aW9uVmFsdWVdO1xuICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICBsZXQgcmVzID0gW10gYXMgYW55O1xuICAgICAgaWYgKGluY2x1ZGVzKHRoaXMudmFsdWUsIHZhbCkpIHtcbiAgICAgICAgcmVzID0gdGhpcy52YWx1ZS5maWx0ZXIoKHY6IGFueSkgPT4gIWlzRXF1YWwodiwgdmFsKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm9wdGlvbnMuZm9yRWFjaCgobykgPT4ge1xuICAgICAgICAgIGNvbnN0IG92ID0gdGhpcy5yZXR1cm5PYmplY3QgPyBvIDogb1t0aGlzLm9wdGlvblZhbHVlXTtcbiAgICAgICAgICBpZiAodGhpcy52YWx1ZS5zb21lKCh2OiBhbnkpID0+IGlzRXF1YWwodiwgb3YpKSB8fCBpc0VxdWFsKHZhbCwgb3YpKSB7XG4gICAgICAgICAgICByZXMucHVzaChvdik7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHRoaXMudXBkYXRlVmFsdWUocmVzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy51cGRhdGVWYWx1ZSh2YWwpO1xuICAgIH1cbiAgICB0aGlzLl9jbGVhcklucHV0KCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmZvY3VzSW5wdXQoKTtcbiAgICB9LCAwKTtcbiAgfVxuXG4gIG9uT3B0aW9uQ2xpY2sob3B0aW9uOiBhbnksIGRkOiBIVE1MRWxlbWVudCkge1xuICAgIHRoaXMuX2NsaWNrT3B0aW9uKG9wdGlvbiwgZGQpO1xuICB9XG5cbiAgdG9nZ2xlQWxsKCkge1xuICAgIGxldCByZXMgPSBbXTtcbiAgICBpZiAodGhpcy52YWx1ZS5sZW5ndGggPCB0aGlzLm9wdGlvbnMubGVuZ3RoKSB7XG4gICAgICBpZiAodGhpcy5yZXR1cm5PYmplY3QpIHtcbiAgICAgICAgcmVzID0gdGhpcy5vcHRpb25zO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5vcHRpb25zLmZvckVhY2goKG8pID0+IHtcbiAgICAgICAgICByZXMucHVzaChvW3RoaXMub3B0aW9uVmFsdWVdKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMudXBkYXRlVmFsdWUocmVzKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuZm9jdXNJbnB1dCgpO1xuICAgIH0sIDApO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICBvbkNoYW5nZSA9IChldmVudDogYW55KSA9PiB7fTtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIG9uVG91Y2hlZCA9ICgpID0+IHt9O1xuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgZmlsdGVyT3B0aW9ucyhldmVudDogYW55KSB7XG4gICAgaWYgKCF0aGlzLmlzT3BlbmVkKSB7XG4gICAgICB0aGlzLl90b2dnbGVPcHRpb25zKHRoaXMuYXV0b2NvbXBsZXRlQ29udGFpbmVyPy5uYXRpdmVFbGVtZW50LCB0cnVlKTtcbiAgICB9XG4gICAgdGhpcy5iYWNrc3BhY2VDbGlja2VkT25jZSA9IGZhbHNlO1xuICAgIGNvbnN0IHNlYXJjaFZhbCA9IChldmVudD8udGFyZ2V0Py52YWx1ZSB8fCAnJykudG9Mb3dlckNhc2UoKTtcblxuICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gdGhpcy5vcHRpb25zLmZpbHRlcigobzogYW55KSA9PlxuICAgICAgb1t0aGlzLm9wdGlvbkxhYmVsXS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFZhbClcbiAgICApO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgY2xlYXIoZGQ6IEhUTUxFbGVtZW50LCBldmVudDogYW55KTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICBpZiAoXG4gICAgICAoIXRoaXMubXVsdGlwbGUgJiYgdGhpcy52YWx1ZSkgfHxcbiAgICAgICh0aGlzLm11bHRpcGxlICYmIHRoaXMudmFsdWU/Lmxlbmd0aCA+IDApXG4gICAgKSB7XG4gICAgICBpZiAodGhpcy5vcGVuT25DbGVhcikge1xuICAgICAgICB0aGlzLl90b2dnbGVPcHRpb25zKGRkLCB0cnVlKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHZhbCA9IHRoaXMubXVsdGlwbGUgPyBbXSA6IHRoaXMucmV0dXJuT2JqZWN0ID8gdW5kZWZpbmVkIDogJyc7XG4gICAgICB0aGlzLnVwZGF0ZVZhbHVlKHZhbCk7XG4gICAgfVxuICAgIHRoaXMuX2NsZWFySW5wdXQoKTtcbiAgICB0aGlzLl9kZWhpZ2hsaWdodE9wdGlvbigpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5mb2N1c0lucHV0KCk7XG4gICAgfSwgMCk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIHNldERpc2FibGVkU3RhdGUoZGlzYWJsZWQ6IGJvb2xlYW4pIHt9XG5cbiAgb25CbHVyKCkge1xuICAgIHRoaXMuX2NvbnRyb2w/LmNvbnRyb2w/Lm1hcmtBc1RvdWNoZWQoKTtcbiAgICB0aGlzLl9jaGVja0Vycm9ycygpO1xuICB9XG5cbiAgb25DbGlja091dHNpZGUoZGQ6IEhUTUxFbGVtZW50KSB7XG4gICAgdGhpcy5fY2xvc2VBbmRDbGVhcihkZCk7XG4gIH1cblxuICBvbkJveENsaWNrKCkge1xuICAgIGlmICghdGhpcy5tdWx0aXBsZSkge1xuICAgICAgdGhpcy5hY3RpdmVTaW5nbGUgPSB0cnVlO1xuICAgICAgdGhpcy5pbnB1dFRleHQgPSB0aGlzLl9nZXRWYWx1ZUxhYmVsKCk7XG4gICAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IHRoaXMub3B0aW9ucztcbiAgICB9XG4gICAgdGhpcy5mb2N1cygpO1xuICAgIHRoaXMuX2RlaGlnaGxpZ2h0T3B0aW9uKCk7XG4gIH1cblxuICBvbkNvbnRhaW5lcktleURvd24oZXZlbnQ6IGFueSwgZGQ6IEhUTUxFbGVtZW50KSB7XG4gICAgY29uc3QgY29kZSA9IGV2ZW50LmtleUNvZGU7XG4gICAgLy8gZXNjYXBlXG4gICAgaWYgKGNvZGUgPT09IDI3KSB7XG4gICAgICB0aGlzLl9jbG9zZUFuZENsZWFyKGRkKTtcbiAgICB9XG4gICAgLy8gZW50ZXJcbiAgICBlbHNlIGlmIChjb2RlID09PSAxMykge1xuICAgICAgbGV0IGlkeCA9IHRoaXMub3B0aW9uSGlnaGxpZ2h0ZWRJbmRleDtcbiAgICAgIGlmICh0aGlzLm11bHRpcGxlICYmIHRoaXMuc2VsZWN0QWxsKSB7XG4gICAgICAgIGlmIChpZHggPT09IDApIHtcbiAgICAgICAgICB0aGlzLnRvZ2dsZUFsbCgpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSBlbHNlIGlkeC0tO1xuICAgICAgfVxuICAgICAgY29uc3Qgb3B0aW9uID0gdGhpcy5maWx0ZXJlZE9wdGlvbnNbaWR4XTtcbiAgICAgIHRoaXMuX2NsaWNrT3B0aW9uKG9wdGlvbiwgZGQpO1xuICAgIH1cbiAgICAvLyB2ZXJ0aWNhbCBhcnJvd3NcbiAgICBlbHNlIGlmIChbMzgsIDQwXS5pbmNsdWRlcyhjb2RlKSkge1xuICAgICAgdGhpcy5fbmF2aWdhdGVPcHRpb25zQnlBcnJvd3MoY29kZSA9PT0gMzgpO1xuICAgIH1cbiAgfVxuXG4gIG9uSW5wdXRLZXlEb3duKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBjb2RlID0gZXZlbnQua2V5Q29kZTtcbiAgICAvLyBiYWNrc3BhY2VcbiAgICBpZiAoY29kZSA9PT0gOCkge1xuICAgICAgdGhpcy5fcmVtb3ZlTGFzdFZhbHVlKCk7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG4gICAgLy8gZW50ZXJcbiAgICBlbHNlIGlmIChjb2RlID09PSAxMykge1xuICAgICAgaWYgKHRoaXMub3B0aW9uSGlnaGxpZ2h0ZWRJbmRleCA8IDApIHtcbiAgICAgICAgdGhpcy5fY29uZmlybUlucHV0KGV2ZW50Py50YXJnZXQ/LnZhbHVlIHx8ICcnKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChbMzgsIDQwXS5pbmNsdWRlcyhjb2RlKSkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fZGVoaWdobGlnaHRPcHRpb24oKTtcbiAgICB9XG4gIH1cblxuICBmb2N1c0lucHV0KCkge1xuICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29udGFpbmVyPy5uYXRpdmVFbGVtZW50Py5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpPy5mb2N1cygpO1xuICB9XG5cbiAgZm9jdXMoKSB7XG4gICAgdGhpcy5hdXRvY29tcGxldGVDb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQ/LmZvY3VzKCk7XG4gICAgdGhpcy5mb2N1c0lucHV0KCk7XG4gICAgdGhpcy5fdG9nZ2xlT3B0aW9ucyh0aGlzLmF1dG9jb21wbGV0ZUNvbnRhaW5lcj8ubmF0aXZlRWxlbWVudCwgdHJ1ZSk7XG4gIH1cblxuICBwcml2YXRlIF90b2dnbGVPcHRpb25zKGRkOiBIVE1MRWxlbWVudCwgc2hvdz86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCAhZGQpIHJldHVybjtcbiAgICB0aGlzLmJhY2tzcGFjZUNsaWNrZWRPbmNlID0gZmFsc2U7XG4gICAgaWYgKHR5cGVvZiBzaG93ID09PSAnYm9vbGVhbicpIHtcbiAgICAgIGlmIChzaG93KSBkZC5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKTtcbiAgICAgIGVsc2UgZGQuY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJyk7XG4gICAgfSBlbHNlIGRkLmNsYXNzTGlzdC50b2dnbGUoJ2FjdGl2ZScpO1xuXG4gICAgdGhpcy5pc09wZW5lZCA9IGRkLmNsYXNzTGlzdC5jb250YWlucygnYWN0aXZlJyk7XG5cbiAgICBpZiAodGhpcy5pc09wZW5lZCkge1xuICAgICAgY29uc3Qgc2VsZWN0ZWQgPVxuICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZUNvbnRhaW5lci5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5zZWxlY3RlZCcpO1xuICAgICAgaWYgKHNlbGVjdGVkKVxuICAgICAgICBzZWxlY3RlZC5zY3JvbGxJbnRvVmlldyh7XG4gICAgICAgICAgYmVoYXZpb3I6ICdpbnN0YW50JyxcbiAgICAgICAgICBibG9jazogJ25lYXJlc3QnLFxuICAgICAgICAgIGlubGluZTogJ3N0YXJ0J1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9jbGlja09wdGlvbihvcHRpb246IGFueSwgZGQ6IEhUTUxFbGVtZW50KSB7XG4gICAgdGhpcy5zZWxlY3Qob3B0aW9uLCBmYWxzZSk7XG4gICAgaWYgKCF0aGlzLm11bHRpcGxlKSB7XG4gICAgICB0aGlzLl90b2dnbGVPcHRpb25zKGRkLCBmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY2hlY2tFcnJvcnMoKTogdm9pZCB7XG4gICAgY29uc3QgZXJyb3JzID0gdGhpcy5fY29udHJvbD8uZXJyb3JzO1xuXG4gICAgaWYgKCF0aGlzLl9jb250cm9sPy5jb250cm9sPy50b3VjaGVkIHx8ICFlcnJvcnMpIHtcbiAgICAgIHRoaXMuZXJyb3IgPSAnJztcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoJ3JlcXVpcmVkJyBpbiBlcnJvcnMpIHtcbiAgICAgIHRoaXMuZXJyb3IgPSAnRmllbGQgaXMgcmVxdWlyZWQnO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGVyckFyciA9IE9iamVjdC52YWx1ZXMoZXJyb3JzKTtcbiAgICBpZiAoZXJyQXJyLmxlbmd0aCA8IDEpIHtcbiAgICAgIHRoaXMuZXJyb3IgPSAnJztcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgbWVzc2FnZSA9IGVyckFyci5maW5kKChtc2cpID0+IHR5cGVvZiBtc2cgPT09ICdzdHJpbmcnKTtcbiAgICBjb25zb2xlLmxvZygnbWVzc2FnZScsIG1lc3NhZ2UpO1xuICAgIHRoaXMuZXJyb3IgPSBtZXNzYWdlIHx8ICdVbmtub3duIGVycm9yJztcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMud3JpdGVWYWx1ZSh2YWx1ZSk7XG4gICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gICAgdGhpcy52YWx1ZUNoYW5nZWQuZW1pdCh2YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRWYWx1ZUxhYmVsKCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlXG4gICAgICA/IHRoaXMucmV0dXJuT2JqZWN0XG4gICAgICAgID8gdGhpcy52YWx1ZVt0aGlzLm9wdGlvbkxhYmVsXVxuICAgICAgICA6IHRoaXMuX2xhYmVsQnlWYWx1ZS50cmFuc2Zvcm0oXG4gICAgICAgICAgICB0aGlzLnZhbHVlLFxuICAgICAgICAgICAgdGhpcy5vcHRpb25zLFxuICAgICAgICAgICAgdGhpcy5vcHRpb25WYWx1ZSxcbiAgICAgICAgICAgIHRoaXMub3B0aW9uTGFiZWxcbiAgICAgICAgICApXG4gICAgICA6ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2xlYXJJbnB1dCgpIHtcbiAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IHRoaXMub3B0aW9ucztcbiAgICB0aGlzLmlucHV0VGV4dCA9ICcnO1xuICAgIHRoaXMuYWN0aXZlU2luZ2xlID0gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIF9jbG9zZUFuZENsZWFyKGRkOiBIVE1MRWxlbWVudCkge1xuICAgIHRoaXMuX2NsZWFySW5wdXQoKTtcbiAgICB0aGlzLl90b2dnbGVPcHRpb25zKGRkLCBmYWxzZSk7XG4gICAgdGhpcy5fZGVoaWdobGlnaHRPcHRpb24oKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldEhUTUxPcHRpb25zKCkge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmF1dG9jb21wbGV0ZUNvbnRhaW5lcj8ubmF0aXZlRWxlbWVudD8ucXVlcnlTZWxlY3RvckFsbChcbiAgICAgICAgJy5jcHMtYXV0b2NvbXBsZXRlLW9wdGlvbnMtb3B0aW9uJ1xuICAgICAgKSB8fCBbXVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9kZWhpZ2hsaWdodE9wdGlvbihlbD86IEhUTUxFbGVtZW50KSB7XG4gICAgaWYgKGVsKSBlbC5jbGFzc0xpc3QucmVtb3ZlKCdoaWdobGlnaHRlbicpO1xuICAgIGVsc2Uge1xuICAgICAgaWYgKHRoaXMub3B0aW9uSGlnaGxpZ2h0ZWRJbmRleCA8IDApIHJldHVybjtcbiAgICAgIGNvbnN0IG9wdGlvbkl0ZW1zID0gdGhpcy5fZ2V0SFRNTE9wdGlvbnMoKTtcbiAgICAgIG9wdGlvbkl0ZW1zW3RoaXMub3B0aW9uSGlnaGxpZ2h0ZWRJbmRleF0uY2xhc3NMaXN0LnJlbW92ZSgnaGlnaGxpZ2h0ZW4nKTtcbiAgICAgIHRoaXMub3B0aW9uSGlnaGxpZ2h0ZWRJbmRleCA9IC0xO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2hpZ2hsaWdodE9wdGlvbihlbDogSFRNTEVsZW1lbnQpIHtcbiAgICBlbC5jbGFzc0xpc3QuYWRkKCdoaWdobGlnaHRlbicpO1xuICAgIGNvbnN0IHBhcmVudCA9IGVsLnBhcmVudEVsZW1lbnQ7XG4gICAgaWYgKCFwYXJlbnQpIHJldHVybjtcbiAgICBjb25zdCBwYXJlbnRSZWN0ID0gcGFyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IGVsUmVjdCA9IGVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGlmIChlbFJlY3QudG9wIDwgcGFyZW50UmVjdC50b3AgfHwgZWxSZWN0LmJvdHRvbSA+IHBhcmVudFJlY3QuYm90dG9tKSB7XG4gICAgICBlbC5zY3JvbGxJbnRvVmlldyh7XG4gICAgICAgIGJsb2NrOiAnbmVhcmVzdCcsXG4gICAgICAgIGlubGluZTogJ3N0YXJ0J1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfbmF2aWdhdGVPcHRpb25zQnlBcnJvd3ModXA6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuaXNPcGVuZWQpIHJldHVybjtcblxuICAgIGNvbnN0IG9wdGlvbkl0ZW1zID0gdGhpcy5fZ2V0SFRNTE9wdGlvbnMoKTtcbiAgICBjb25zdCBsZW4gPSBvcHRpb25JdGVtcy5sZW5ndGg7XG4gICAgaWYgKGxlbiA8IDEpIHJldHVybjtcblxuICAgIGlmIChsZW4gPT09IDEpIHtcbiAgICAgIHRoaXMuX2hpZ2hsaWdodE9wdGlvbihvcHRpb25JdGVtc1swXSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHVwKSB7XG4gICAgICB0aGlzLl9kZWhpZ2hsaWdodE9wdGlvbihvcHRpb25JdGVtc1t0aGlzLm9wdGlvbkhpZ2hsaWdodGVkSW5kZXhdKTtcbiAgICAgIHRoaXMub3B0aW9uSGlnaGxpZ2h0ZWRJbmRleCA9XG4gICAgICAgIHRoaXMub3B0aW9uSGlnaGxpZ2h0ZWRJbmRleCA8IDFcbiAgICAgICAgICA/IGxlbiAtIDFcbiAgICAgICAgICA6IHRoaXMub3B0aW9uSGlnaGxpZ2h0ZWRJbmRleCAtIDE7XG4gICAgICB0aGlzLl9oaWdobGlnaHRPcHRpb24ob3B0aW9uSXRlbXNbdGhpcy5vcHRpb25IaWdobGlnaHRlZEluZGV4XSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2RlaGlnaGxpZ2h0T3B0aW9uKG9wdGlvbkl0ZW1zW3RoaXMub3B0aW9uSGlnaGxpZ2h0ZWRJbmRleF0pO1xuICAgICAgdGhpcy5vcHRpb25IaWdobGlnaHRlZEluZGV4ID0gWy0xLCBsZW4gLSAxXS5pbmNsdWRlcyhcbiAgICAgICAgdGhpcy5vcHRpb25IaWdobGlnaHRlZEluZGV4XG4gICAgICApXG4gICAgICAgID8gMFxuICAgICAgICA6IHRoaXMub3B0aW9uSGlnaGxpZ2h0ZWRJbmRleCArIDE7XG4gICAgICB0aGlzLl9oaWdobGlnaHRPcHRpb24ob3B0aW9uSXRlbXNbdGhpcy5vcHRpb25IaWdobGlnaHRlZEluZGV4XSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY29uZmlybUlucHV0KHNlYXJjaFZhbDogc3RyaW5nKSB7XG4gICAgaWYgKCF0aGlzLmlzT3BlbmVkKSByZXR1cm47XG4gICAgc2VhcmNoVmFsID0gc2VhcmNoVmFsLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKCFzZWFyY2hWYWwpIHtcbiAgICAgIGlmICh0aGlzLm11bHRpcGxlKSByZXR1cm47XG4gICAgICBjb25zdCB2YWwgPSB0aGlzLnJldHVybk9iamVjdCA/IHVuZGVmaW5lZCA6ICcnO1xuICAgICAgdGhpcy51cGRhdGVWYWx1ZSh2YWwpO1xuICAgICAgdGhpcy5fY2xvc2VBbmRDbGVhcih0aGlzLmF1dG9jb21wbGV0ZUNvbnRhaW5lcj8ubmF0aXZlRWxlbWVudCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZm91bmQgPSB0aGlzLmZpbHRlcmVkT3B0aW9ucy5maW5kKFxuICAgICAgKG86IGFueSkgPT4gb1t0aGlzLm9wdGlvbkxhYmVsXS50b0xvd2VyQ2FzZSgpID09PSBzZWFyY2hWYWxcbiAgICApO1xuICAgIGlmIChmb3VuZCkge1xuICAgICAgdGhpcy5zZWxlY3QoZm91bmQsIGZhbHNlKTtcbiAgICAgIHRoaXMuX3RvZ2dsZU9wdGlvbnMoXG4gICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29udGFpbmVyPy5uYXRpdmVFbGVtZW50LFxuICAgICAgICB0aGlzLm11bHRpcGxlXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoIXRoaXMubXVsdGlwbGUpIHtcbiAgICAgICAgdGhpcy5pbnB1dFRleHQgPSB0aGlzLl9nZXRWYWx1ZUxhYmVsKCk7XG4gICAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gdGhpcy5vcHRpb25zO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5fY2xlYXJJbnB1dCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVtb3ZlTGFzdFZhbHVlKCkge1xuICAgIGlmICghdGhpcy5tdWx0aXBsZSB8fCB0aGlzLmlucHV0VGV4dCkgcmV0dXJuO1xuXG4gICAgaWYgKHRoaXMudmFsdWU/Lmxlbmd0aCkge1xuICAgICAgaWYgKHRoaXMuYmFja3NwYWNlQ2xpY2tlZE9uY2UpIHtcbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShcbiAgICAgICAgICB0aGlzLnZhbHVlLmZpbHRlcihcbiAgICAgICAgICAgICh2OiBhbnksIGluZGV4OiBudW1iZXIpID0+IGluZGV4ICE9PSB0aGlzLnZhbHVlLmxlbmd0aCAtIDFcbiAgICAgICAgICApXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5iYWNrc3BhY2VDbGlja2VkT25jZSA9IGZhbHNlO1xuICAgICAgfSBlbHNlIHRoaXMuYmFja3NwYWNlQ2xpY2tlZE9uY2UgPSB0cnVlO1xuICAgIH0gZWxzZSB0aGlzLmJhY2tzcGFjZUNsaWNrZWRPbmNlID0gZmFsc2U7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuZm9jdXNJbnB1dCgpO1xuICAgIH0sIDApO1xuICB9XG59XG4iLCI8ZGl2XG4gIGRhdGEtY3ktaWQ9XCJjcHMtYXV0b2NvbXBsZXRlXCJcbiAgW25nU3R5bGVdPVwieyB3aWR0aDogY3Z0V2lkdGggfVwiXG4gIGNsYXNzPVwiY3BzLWF1dG9jb21wbGV0ZVwiXG4gIHRhYmluZGV4PVwiMVwiXG4gIFtuZ0NsYXNzXT1cInsgZGlzYWJsZWQ6IGRpc2FibGVkLCBlcnJvcjogZXJyb3IgfVwiXG4gICNhdXRvY29tcGxldGVDb250YWluZXI+XG4gIDxsYWJlbCAqbmdJZj1cImxhYmVsXCIgY2xhc3M9XCJjcHMtYXV0b2NvbXBsZXRlLWxhYmVsXCI+e3sgbGFiZWwgfX08L2xhYmVsPlxuICA8ZGl2XG4gICAgKGtleWRvd24pPVwib25Db250YWluZXJLZXlEb3duKCRldmVudCwgYXV0b2NvbXBsZXRlQ29udGFpbmVyKVwiXG4gICAgY2xhc3M9XCJjcHMtYXV0b2NvbXBsZXRlLWNvbnRhaW5lclwiXG4gICAgW2NsYXNzLmZvY3VzZWRdPVwiaXNPcGVuZWRcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICdwZXJzaXN0ZW50LWNsZWFyJzogcGVyc2lzdGVudENsZWFyXG4gICAgfVwiXG4gICAgKGNsaWNrT3V0c2lkZSk9XCJvbkNsaWNrT3V0c2lkZShhdXRvY29tcGxldGVDb250YWluZXIpXCI+XG4gICAgPGRpdiBjbGFzcz1cImNwcy1hdXRvY29tcGxldGUtYm94XCIgKGNsaWNrKT1cIm9uQm94Q2xpY2soKVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNwcy1hdXRvY29tcGxldGUtYm94LWFyZWFcIj5cbiAgICAgICAgPGNwcy1pY29uXG4gICAgICAgICAgKm5nSWY9XCJwcmVmaXhJY29uXCJcbiAgICAgICAgICBbaWNvbl09XCJwcmVmaXhJY29uXCJcbiAgICAgICAgICBbc2l6ZV09XCJwcmVmaXhJY29uU2l6ZVwiXG4gICAgICAgICAgY2xhc3M9XCJwcmVmaXgtaWNvblwiPlxuICAgICAgICA8L2Nwcy1pY29uPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJjcHMtYXV0b2NvbXBsZXRlLWJveC1pdGVtc1wiXG4gICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICh2YWx1ZSAmJiAhbXVsdGlwbGUpIHx8ICh2YWx1ZT8ubGVuZ3RoID4gMCAmJiBtdWx0aXBsZSk7XG4gICAgICAgICAgICBlbHNlIGF1dG9jb21wbGV0ZUlucHV0XG4gICAgICAgICAgXCI+XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCIhbXVsdGlwbGVcIiBjbGFzcz1cInNpbmdsZS1pdGVtXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2luZ2xlLWl0ZW0tc2VsZWN0aW9uXCI+XG4gICAgICAgICAgICAgIDxzcGFuIFtzdHlsZS5vcGFjaXR5XT1cImFjdGl2ZVNpbmdsZSA/IDAgOiAxXCI+e3tcbiAgICAgICAgICAgICAgICByZXR1cm5PYmplY3RcbiAgICAgICAgICAgICAgICAgID8gdmFsdWVbb3B0aW9uTGFiZWxdXG4gICAgICAgICAgICAgICAgICA6ICh2YWx1ZSB8IGxhYmVsQnlWYWx1ZSA6IG9wdGlvbnMgOiBvcHRpb25WYWx1ZSA6IG9wdGlvbkxhYmVsKVxuICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZUlucHV0O1xuICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgIGlucHV0Q2xhc3M6ICdzaW5nbGUtaXRlbS1pbnB1dCcsXG4gICAgICAgICAgICAgICAgICBpbnB1dFN0eWxlOiBhY3RpdmVTaW5nbGUgPyAnb3BhY2l0eTogMScgOiBudWxsXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBcIj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJtdWx0aXBsZSAmJiAhY2hpcHNcIiBjbGFzcz1cInRleHQtZ3JvdXBcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHZhbCBvZiB2YWx1ZTsgbGV0IGxhc3QgPSBsYXN0XCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LWdyb3VwLWl0ZW1cIlxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdhYm91dC10by1yZW1vdmUnOiBsYXN0ICYmIGJhY2tzcGFjZUNsaWNrZWRPbmNlIH1cIj5cbiAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICByZXR1cm5PYmplY3RcbiAgICAgICAgICAgICAgICAgID8gdmFsW29wdGlvbkxhYmVsXVxuICAgICAgICAgICAgICAgICAgOiAodmFsIHwgbGFiZWxCeVZhbHVlIDogb3B0aW9ucyA6IG9wdGlvblZhbHVlIDogb3B0aW9uTGFiZWwpXG4gICAgICAgICAgICAgIH19e3sgIWxhc3QgPyAnLCcgOiAnJyB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYXV0b2NvbXBsZXRlSW5wdXRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJtdWx0aXBsZSAmJiBjaGlwc1wiIGNsYXNzPVwiY2hpcHMtZ3JvdXBcIj5cbiAgICAgICAgICAgIDxjcHMtY2hpcFxuICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgdmFsIG9mIHZhbHVlOyBsZXQgbGFzdCA9IGxhc3RcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICBbY2xvc2FibGVdPVwiY2xvc2FibGVDaGlwc1wiXG4gICAgICAgICAgICAgIChjbG9zZWQpPVwic2VsZWN0KHZhbCwgdHJ1ZSlcIlxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdhYm91dC10by1yZW1vdmUnOiBsYXN0ICYmIGJhY2tzcGFjZUNsaWNrZWRPbmNlIH1cIlxuICAgICAgICAgICAgICBbbGFiZWxdPVwiXG4gICAgICAgICAgICAgICAgcmV0dXJuT2JqZWN0XG4gICAgICAgICAgICAgICAgICA/IHZhbFtvcHRpb25MYWJlbF1cbiAgICAgICAgICAgICAgICAgIDogKHZhbCB8IGxhYmVsQnlWYWx1ZSA6IG9wdGlvbnMgOiBvcHRpb25WYWx1ZSA6IG9wdGlvbkxhYmVsKVxuICAgICAgICAgICAgICBcIj5cbiAgICAgICAgICAgIDwvY3BzLWNoaXA+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYXV0b2NvbXBsZXRlSW5wdXRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY3BzLWF1dG9jb21wbGV0ZS1ib3gtaWNvbnNcIj5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgKm5nSWY9XCJjbGVhcmFibGUgJiYgIWRpc2FibGVkXCJcbiAgICAgICAgICAgIFtzdHlsZS52aXNpYmlsaXR5XT1cIlxuICAgICAgICAgICAgICBwZXJzaXN0ZW50Q2xlYXIgfHxcbiAgICAgICAgICAgICAgKCFwZXJzaXN0ZW50Q2xlYXIgJiZcbiAgICAgICAgICAgICAgICAoKG11bHRpcGxlICYmIHZhbHVlPy5sZW5ndGgpIHx8ICghbXVsdGlwbGUgJiYgdmFsdWUpKSlcbiAgICAgICAgICAgICAgICA/ICd2aXNpYmxlJ1xuICAgICAgICAgICAgICAgIDogJ2hpZGRlbidcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBjbGFzcz1cImNwcy1hdXRvY29tcGxldGUtYm94LWNsZWFyLWljb25cIj5cbiAgICAgICAgICAgIDxjcHMtaWNvblxuICAgICAgICAgICAgICBpY29uPVwiZGVsZXRlXCJcbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNsZWFyKGF1dG9jb21wbGV0ZUNvbnRhaW5lciwgJGV2ZW50KVwiPjwvY3BzLWljb24+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3BzLWF1dG9jb21wbGV0ZS1ib3gtY2hldnJvblwiPlxuICAgICAgICAgICAgPGNwcy1pY29uXG4gICAgICAgICAgICAgIGljb249XCJjaGV2cm9uLWRvd25cIlxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICBjb2xvcj1cInRleHQtZGFya1wiPjwvY3BzLWljb24+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJjcHMtYXV0b2NvbXBsZXRlLW9wdGlvbnNcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJjcHMtYXV0b2NvbXBsZXRlLW9wdGlvbnMtb3B0aW9uIHNlbGVjdC1hbGwtb3B0aW9uXCJcbiAgICAgICAgW2NsYXNzLmFsbHNlbGVjdGVkXT1cInZhbHVlPy5sZW5ndGggPT09IG9wdGlvbnMubGVuZ3RoXCJcbiAgICAgICAgKm5nSWY9XCJtdWx0aXBsZSAmJiBzZWxlY3RBbGxcIlxuICAgICAgICAoY2xpY2spPVwidG9nZ2xlQWxsKClcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjcHMtYXV0b2NvbXBsZXRlLW9wdGlvbnMtb3B0aW9uLWxlZnRcIj5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cIm11bHRpcGxlXCIgY2xhc3M9XCJjcHMtYXV0b2NvbXBsZXRlLW9wdGlvbnMtb3B0aW9uLWNoZWNrXCI+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3BzLWF1dG9jb21wbGV0ZS1vcHRpb25zLW9wdGlvbi1sYWJlbFwiPlNlbGVjdCBhbGw8L3NwYW4+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImNwcy1hdXRvY29tcGxldGUtb3B0aW9ucy1vcHRpb25cIlxuICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGZpbHRlcmVkT3B0aW9uc1wiXG4gICAgICAgIChjbGljayk9XCJvbk9wdGlvbkNsaWNrKG9wdGlvbiwgYXV0b2NvbXBsZXRlQ29udGFpbmVyKVwiXG4gICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJcbiAgICAgICAgICBvcHRpb25cbiAgICAgICAgICAgIHwgY2hlY2tPcHRpb25TZWxlY3RlZFxuICAgICAgICAgICAgICA6IHZhbHVlXG4gICAgICAgICAgICAgIDogbXVsdGlwbGVcbiAgICAgICAgICAgICAgOiByZXR1cm5PYmplY3RcbiAgICAgICAgICAgICAgOiBvcHRpb25WYWx1ZVxuICAgICAgICBcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjcHMtYXV0b2NvbXBsZXRlLW9wdGlvbnMtb3B0aW9uLWxlZnRcIj5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cIm11bHRpcGxlXCIgY2xhc3M9XCJjcHMtYXV0b2NvbXBsZXRlLW9wdGlvbnMtb3B0aW9uLWNoZWNrXCI+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGRhdGEtY3ktaWQ9XCJjcHMtYXV0b2NvbXBsZXRlLW9wdGlvbnNcIiBjbGFzcz1cImNwcy1hdXRvY29tcGxldGUtb3B0aW9ucy1vcHRpb24tbGFiZWxcIj57e1xuICAgICAgICAgICAgb3B0aW9uW29wdGlvbkxhYmVsXVxuICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjcHMtYXV0b2NvbXBsZXRlLW9wdGlvbnMtb3B0aW9uLXJpZ2h0XCI+e3tcbiAgICAgICAgICBvcHRpb25bb3B0aW9uSW5mb11cbiAgICAgICAgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8Y3BzLXByb2dyZXNzLWxpbmVhclxuICAgICAgKm5nSWY9XCJsb2FkaW5nXCJcbiAgICAgIGhlaWdodD1cIjNcIlxuICAgICAgcmFkaXVzPVwiNFwiXG4gICAgICBvcGFjaXR5PVwiMC4zXCJcbiAgICAgIGNsYXNzPVwiYXV0b2NvbXBsZXRlLXByb2dyZXNzLWJhclwiXG4gICAgICBiZ0NvbG9yPVwidHJhbnNwYXJlbnRcIj5cbiAgICA8L2Nwcy1wcm9ncmVzcy1saW5lYXI+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwiIWVycm9yICYmICFoaWRlRGV0YWlsc1wiIGNsYXNzPVwiY3BzLWF1dG9jb21wbGV0ZS1oaW50XCI+XG4gICAge3sgaGludCB9fVxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cImVycm9yICYmICFoaWRlRGV0YWlsc1wiIGNsYXNzPVwiY3BzLWF1dG9jb21wbGV0ZS1lcnJvclwiPlxuICAgIHt7IGVycm9yIH19XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZVxuICAjYXV0b2NvbXBsZXRlSW5wdXRcbiAgbGV0LWlucHV0Q2xhc3M9XCJpbnB1dENsYXNzXCJcbiAgbGV0LWlucHV0U3R5bGU9XCJpbnB1dFN0eWxlXCI+XG4gIDxpbnB1dFxuICAgIGNsYXNzPVwiY3BzLWF1dG9jb21wbGV0ZS1ib3gtaW5wdXRcIlxuICAgIFtjbGFzc109XCJpbnB1dENsYXNzXCJcbiAgICBbc3R5bGVdPVwiaW5wdXRTdHlsZVwiXG4gICAgW3BsYWNlaG9sZGVyXT1cIlxuICAgICAgKCF2YWx1ZSAmJiAhbXVsdGlwbGUpIHx8ICh2YWx1ZT8ubGVuZ3RoIDwgMSAmJiBtdWx0aXBsZSlcbiAgICAgICAgPyBwbGFjZWhvbGRlclxuICAgICAgICA6ICcnXG4gICAgXCJcbiAgICAoaW5wdXQpPVwiZmlsdGVyT3B0aW9ucygkZXZlbnQpXCJcbiAgICAoa2V5ZG93bik9XCJvbklucHV0S2V5RG93bigkZXZlbnQpXCJcbiAgICBbKG5nTW9kZWwpXT1cImlucHV0VGV4dFwiXG4gICAgKGJsdXIpPVwib25CbHVyKClcIiAvPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
479
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BzLWF1dG9jb21wbGV0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcHMtdWkta2l0L3NyYy9saWIvY29tcG9uZW50cy9jcHMtYXV0b2NvbXBsZXRlL2Nwcy1hdXRvY29tcGxldGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLWF1dG9jb21wbGV0ZS9jcHMtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFDTixJQUFJLEVBQ0osU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsV0FBVyxFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUNMLGdCQUFnQixFQUdqQixNQUFNLGdDQUFnQyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdDQUF3QyxD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QTBCO3dCQUMxQixnQkFBZ0I7d0JBQ2hCLGlCQUFpQjt3QkFDakIsdUJBQXVCO3FCQUN4QixhQUNVLENBQUMsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsdUJBQXVCLENBQUMsWUFDL0Qsa0JBQWtCOzswQkF3RHpCLElBQUk7OzBCQUFJLFFBQVE7MkVBakRWLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUVVLE1BQU07c0JBQXJCLEtBQUs7dUJBQUMsT0FBTztnQkFXSixZQUFZO3NCQUFyQixNQUFNO2dCQUdQLHFCQUFxQjtzQkFEcEIsU0FBUzt1QkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgU2VsZixcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1zTW9kdWxlLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNvbnZlcnRTaXplIH0gZnJvbSAnLi4vLi4vdXRpbHMvc2l6ZS11dGlscyc7XG5pbXBvcnQge1xuICBDcHNJY29uQ29tcG9uZW50LFxuICBJY29uVHlwZSxcbiAgaWNvblNpemVUeXBlXG59IGZyb20gJy4uL2Nwcy1pY29uL2Nwcy1pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDcHNDaGlwQ29tcG9uZW50IH0gZnJvbSAnLi4vY3BzLWNoaXAvY3BzLWNoaXAuY29tcG9uZW50JztcbmltcG9ydCB7IENwc1Byb2dyZXNzTGluZWFyQ29tcG9uZW50IH0gZnJvbSAnLi4vY3BzLXByb2dyZXNzLWxpbmVhci9jcHMtcHJvZ3Jlc3MtbGluZWFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDbGlja091dHNpZGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2NsaWNrLW91dHNpZGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IExhYmVsQnlWYWx1ZVBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy9sYWJlbC1ieS12YWx1ZS5waXBlJztcbmltcG9ydCB7IENvbWJpbmVMYWJlbHNQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMvY29tYmluZS1sYWJlbHMucGlwZSc7XG5pbXBvcnQgeyBDaGVja09wdGlvblNlbGVjdGVkUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL2NoZWNrLW9wdGlvbi1zZWxlY3RlZC5waXBlJztcbmltcG9ydCB7IGZpbmQsIGlzRXF1YWwgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBDbGlja091dHNpZGVEaXJlY3RpdmUsXG4gICAgQ3BzSWNvbkNvbXBvbmVudCxcbiAgICBDcHNDaGlwQ29tcG9uZW50LFxuICAgIENwc1Byb2dyZXNzTGluZWFyQ29tcG9uZW50LFxuICAgIExhYmVsQnlWYWx1ZVBpcGUsXG4gICAgQ29tYmluZUxhYmVsc1BpcGUsXG4gICAgQ2hlY2tPcHRpb25TZWxlY3RlZFBpcGVcbiAgXSxcbiAgcHJvdmlkZXJzOiBbTGFiZWxCeVZhbHVlUGlwZSwgQ29tYmluZUxhYmVsc1BpcGUsIENoZWNrT3B0aW9uU2VsZWN0ZWRQaXBlXSxcbiAgc2VsZWN0b3I6ICdjcHMtYXV0b2NvbXBsZXRlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Nwcy1hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jcHMtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ3BzQXV0b2NvbXBsZXRlQ29tcG9uZW50XG4gIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgT25EZXN0cm95XG57XG4gIEBJbnB1dCgpIGxhYmVsID0gJyc7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJ1BsZWFzZSBlbnRlcic7XG4gIEBJbnB1dCgpIGhpbnQgPSAnJztcbiAgQElucHV0KCkgcmV0dXJuT2JqZWN0ID0gdHJ1ZTsgLy8gaWYgZmFsc2UsIHZhbHVlIHdpbGwgYmUgb3B0aW9uW29wdGlvblZhbHVlXVxuICBASW5wdXQoKSBtdWx0aXBsZSA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSB3aWR0aDogbnVtYmVyIHwgc3RyaW5nID0gJzEwMCUnO1xuICBASW5wdXQoKSBzZWxlY3RBbGwgPSB0cnVlO1xuICBASW5wdXQoKSBjaGlwcyA9IHRydWU7XG4gIEBJbnB1dCgpIGNsb3NhYmxlQ2hpcHMgPSB0cnVlO1xuICBASW5wdXQoKSBjbGVhcmFibGUgPSBmYWxzZTtcbiAgQElucHV0KCkgb3Blbk9uQ2xlYXIgPSB0cnVlO1xuICBASW5wdXQoKSBvcHRpb25zID0gW10gYXMgYW55W107XG4gIEBJbnB1dCgpIG9wdGlvbkxhYmVsID0gJ2xhYmVsJztcbiAgQElucHV0KCkgb3B0aW9uVmFsdWUgPSAndmFsdWUnOyAvLyBuZWVkZWQgb25seSBpZiByZXR1cm5PYmplY3QgPT09IGZhbHNlXG4gIEBJbnB1dCgpIG9wdGlvbkluZm8gPSAnaW5mbyc7XG4gIEBJbnB1dCgpIGhpZGVEZXRhaWxzID0gZmFsc2U7XG4gIEBJbnB1dCgpIHBlcnNpc3RlbnRDbGVhciA9IGZhbHNlO1xuICBASW5wdXQoKSBwcmVmaXhJY29uOiBJY29uVHlwZSA9ICcnO1xuICBASW5wdXQoKSBwcmVmaXhJY29uU2l6ZTogaWNvblNpemVUeXBlID0gJzE4cHgnO1xuICBASW5wdXQoKSBsb2FkaW5nID0gZmFsc2U7XG5cbiAgQElucHV0KCd2YWx1ZScpIF92YWx1ZTogYW55ID0gdW5kZWZpbmVkO1xuXG4gIGdldCB2YWx1ZSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgfVxuXG4gIHNldCB2YWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgfVxuXG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBAVmlld0NoaWxkKCdhdXRvY29tcGxldGVDb250YWluZXInKVxuICBhdXRvY29tcGxldGVDb250YWluZXIhOiBFbGVtZW50UmVmO1xuXG4gIGVycm9yID0gJyc7XG4gIGN2dFdpZHRoID0gJyc7XG4gIGlzT3BlbmVkID0gZmFsc2U7XG4gIGlucHV0VGV4dCA9ICcnO1xuICBmaWx0ZXJlZE9wdGlvbnMgPSBbXSBhcyBhbnlbXTtcbiAgYmFja3NwYWNlQ2xpY2tlZE9uY2UgPSBmYWxzZTtcbiAgYWN0aXZlU2luZ2xlID0gZmFsc2U7XG4gIG9wdGlvbkhpZ2hsaWdodGVkSW5kZXggPSAtMTtcbiAgcHJpdmF0ZSBfc3RhdHVzQ2hhbmdlc1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBTZWxmKCkgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfY29udHJvbDogTmdDb250cm9sLFxuICAgIHByaXZhdGUgX2xhYmVsQnlWYWx1ZTogTGFiZWxCeVZhbHVlUGlwZVxuICApIHtcbiAgICBpZiAodGhpcy5fY29udHJvbCkge1xuICAgICAgdGhpcy5fY29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IHRoaXMub3B0aW9ucztcbiAgICB0aGlzLmN2dFdpZHRoID0gY29udmVydFNpemUodGhpcy53aWR0aCk7XG4gICAgaWYgKHRoaXMubXVsdGlwbGUgJiYgIXRoaXMuX3ZhbHVlKSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IFtdO1xuICAgIH1cblxuICAgIHRoaXMuX3N0YXR1c0NoYW5nZXNTdWJzY3JpcHRpb24gPSB0aGlzLl9jb250cm9sPy5zdGF0dXNDaGFuZ2VzPy5zdWJzY3JpYmUoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHRoaXMuX2NoZWNrRXJyb3JzKCk7XG4gICAgICB9XG4gICAgKSBhcyBTdWJzY3JpcHRpb247XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9zdGF0dXNDaGFuZ2VzU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgc2VsZWN0KG9wdGlvbjogYW55LCBieVZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgZnVuY3Rpb24gaW5jbHVkZXMoYXJyYXk6IGFueVtdLCB2YWw6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIGFycmF5ID8gISFmaW5kKGFycmF5LCAoaXRlbSkgPT4gaXNFcXVhbChpdGVtLCB2YWwpKSA6IGZhbHNlO1xuICAgIH1cblxuICAgIHRoaXMuYmFja3NwYWNlQ2xpY2tlZE9uY2UgPSBmYWxzZTtcbiAgICBjb25zdCB2YWwgPSBieVZhbHVlXG4gICAgICA/IG9wdGlvblxuICAgICAgOiB0aGlzLnJldHVybk9iamVjdFxuICAgICAgPyBvcHRpb25cbiAgICAgIDogb3B0aW9uW3RoaXMub3B0aW9uVmFsdWVdO1xuICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICBsZXQgcmVzID0gW10gYXMgYW55O1xuICAgICAgaWYgKGluY2x1ZGVzKHRoaXMudmFsdWUsIHZhbCkpIHtcbiAgICAgICAgcmVzID0gdGhpcy52YWx1ZS5maWx0ZXIoKHY6IGFueSkgPT4gIWlzRXF1YWwodiwgdmFsKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm9wdGlvbnMuZm9yRWFjaCgobykgPT4ge1xuICAgICAgICAgIGNvbnN0IG92ID0gdGhpcy5yZXR1cm5PYmplY3QgPyBvIDogb1t0aGlzLm9wdGlvblZhbHVlXTtcbiAgICAgICAgICBpZiAodGhpcy52YWx1ZS5zb21lKCh2OiBhbnkpID0+IGlzRXF1YWwodiwgb3YpKSB8fCBpc0VxdWFsKHZhbCwgb3YpKSB7XG4gICAgICAgICAgICByZXMucHVzaChvdik7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHRoaXMudXBkYXRlVmFsdWUocmVzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy51cGRhdGVWYWx1ZSh2YWwpO1xuICAgIH1cbiAgICB0aGlzLl9jbGVhcklucHV0KCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmZvY3VzSW5wdXQoKTtcbiAgICB9LCAwKTtcbiAgfVxuXG4gIG9uT3B0aW9uQ2xpY2sob3B0aW9uOiBhbnksIGRkOiBIVE1MRWxlbWVudCkge1xuICAgIHRoaXMuX2NsaWNrT3B0aW9uKG9wdGlvbiwgZGQpO1xuICB9XG5cbiAgdG9nZ2xlQWxsKCkge1xuICAgIGxldCByZXMgPSBbXTtcbiAgICBpZiAodGhpcy52YWx1ZS5sZW5ndGggPCB0aGlzLm9wdGlvbnMubGVuZ3RoKSB7XG4gICAgICBpZiAodGhpcy5yZXR1cm5PYmplY3QpIHtcbiAgICAgICAgcmVzID0gdGhpcy5vcHRpb25zO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5vcHRpb25zLmZvckVhY2goKG8pID0+IHtcbiAgICAgICAgICByZXMucHVzaChvW3RoaXMub3B0aW9uVmFsdWVdKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMudXBkYXRlVmFsdWUocmVzKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuZm9jdXNJbnB1dCgpO1xuICAgIH0sIDApO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICBvbkNoYW5nZSA9IChldmVudDogYW55KSA9PiB7fTtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIG9uVG91Y2hlZCA9ICgpID0+IHt9O1xuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgZmlsdGVyT3B0aW9ucyhldmVudDogYW55KSB7XG4gICAgaWYgKCF0aGlzLmlzT3BlbmVkKSB7XG4gICAgICB0aGlzLl90b2dnbGVPcHRpb25zKHRoaXMuYXV0b2NvbXBsZXRlQ29udGFpbmVyPy5uYXRpdmVFbGVtZW50LCB0cnVlKTtcbiAgICB9XG4gICAgdGhpcy5iYWNrc3BhY2VDbGlja2VkT25jZSA9IGZhbHNlO1xuICAgIGNvbnN0IHNlYXJjaFZhbCA9IChldmVudD8udGFyZ2V0Py52YWx1ZSB8fCAnJykudG9Mb3dlckNhc2UoKTtcblxuICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gdGhpcy5vcHRpb25zLmZpbHRlcigobzogYW55KSA9PlxuICAgICAgb1t0aGlzLm9wdGlvbkxhYmVsXS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFZhbClcbiAgICApO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgY2xlYXIoZGQ6IEhUTUxFbGVtZW50LCBldmVudDogYW55KTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICBpZiAoXG4gICAgICAoIXRoaXMubXVsdGlwbGUgJiYgdGhpcy52YWx1ZSkgfHxcbiAgICAgICh0aGlzLm11bHRpcGxlICYmIHRoaXMudmFsdWU/Lmxlbmd0aCA+IDApXG4gICAgKSB7XG4gICAgICBpZiAodGhpcy5vcGVuT25DbGVhcikge1xuICAgICAgICB0aGlzLl90b2dnbGVPcHRpb25zKGRkLCB0cnVlKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHZhbCA9IHRoaXMubXVsdGlwbGUgPyBbXSA6IHRoaXMucmV0dXJuT2JqZWN0ID8gdW5kZWZpbmVkIDogJyc7XG4gICAgICB0aGlzLnVwZGF0ZVZhbHVlKHZhbCk7XG4gICAgfVxuICAgIHRoaXMuX2NsZWFySW5wdXQoKTtcbiAgICB0aGlzLl9kZWhpZ2hsaWdodE9wdGlvbigpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5mb2N1c0lucHV0KCk7XG4gICAgfSwgMCk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIHNldERpc2FibGVkU3RhdGUoZGlzYWJsZWQ6IGJvb2xlYW4pIHt9XG5cbiAgb25CbHVyKCkge1xuICAgIHRoaXMuX2NvbnRyb2w/LmNvbnRyb2w/Lm1hcmtBc1RvdWNoZWQoKTtcbiAgICB0aGlzLl9jaGVja0Vycm9ycygpO1xuICB9XG5cbiAgb25DbGlja091dHNpZGUoZGQ6IEhUTUxFbGVtZW50KSB7XG4gICAgdGhpcy5fY2xvc2VBbmRDbGVhcihkZCk7XG4gIH1cblxuICBvbkJveENsaWNrKCkge1xuICAgIGlmICghdGhpcy5tdWx0aXBsZSkge1xuICAgICAgdGhpcy5hY3RpdmVTaW5nbGUgPSB0cnVlO1xuICAgICAgdGhpcy5pbnB1dFRleHQgPSB0aGlzLl9nZXRWYWx1ZUxhYmVsKCk7XG4gICAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IHRoaXMub3B0aW9ucztcbiAgICB9XG4gICAgdGhpcy5mb2N1cygpO1xuICAgIHRoaXMuX2RlaGlnaGxpZ2h0T3B0aW9uKCk7XG4gIH1cblxuICBvbkNvbnRhaW5lcktleURvd24oZXZlbnQ6IGFueSwgZGQ6IEhUTUxFbGVtZW50KSB7XG4gICAgY29uc3QgY29kZSA9IGV2ZW50LmtleUNvZGU7XG4gICAgLy8gZXNjYXBlXG4gICAgaWYgKGNvZGUgPT09IDI3KSB7XG4gICAgICB0aGlzLl9jbG9zZUFuZENsZWFyKGRkKTtcbiAgICB9XG4gICAgLy8gZW50ZXJcbiAgICBlbHNlIGlmIChjb2RlID09PSAxMykge1xuICAgICAgbGV0IGlkeCA9IHRoaXMub3B0aW9uSGlnaGxpZ2h0ZWRJbmRleDtcbiAgICAgIGlmICh0aGlzLm11bHRpcGxlICYmIHRoaXMuc2VsZWN0QWxsKSB7XG4gICAgICAgIGlmIChpZHggPT09IDApIHtcbiAgICAgICAgICB0aGlzLnRvZ2dsZUFsbCgpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSBlbHNlIGlkeC0tO1xuICAgICAgfVxuICAgICAgY29uc3Qgb3B0aW9uID0gdGhpcy5maWx0ZXJlZE9wdGlvbnNbaWR4XTtcbiAgICAgIHRoaXMuX2NsaWNrT3B0aW9uKG9wdGlvbiwgZGQpO1xuICAgIH1cbiAgICAvLyB2ZXJ0aWNhbCBhcnJvd3NcbiAgICBlbHNlIGlmIChbMzgsIDQwXS5pbmNsdWRlcyhjb2RlKSkge1xuICAgICAgdGhpcy5fbmF2aWdhdGVPcHRpb25zQnlBcnJvd3MoY29kZSA9PT0gMzgpO1xuICAgIH1cbiAgfVxuXG4gIG9uSW5wdXRLZXlEb3duKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBjb2RlID0gZXZlbnQua2V5Q29kZTtcbiAgICAvLyBiYWNrc3BhY2VcbiAgICBpZiAoY29kZSA9PT0gOCkge1xuICAgICAgdGhpcy5fcmVtb3ZlTGFzdFZhbHVlKCk7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG4gICAgLy8gZW50ZXJcbiAgICBlbHNlIGlmIChjb2RlID09PSAxMykge1xuICAgICAgaWYgKHRoaXMub3B0aW9uSGlnaGxpZ2h0ZWRJbmRleCA8IDApIHtcbiAgICAgICAgdGhpcy5fY29uZmlybUlucHV0KGV2ZW50Py50YXJnZXQ/LnZhbHVlIHx8ICcnKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChbMzgsIDQwXS5pbmNsdWRlcyhjb2RlKSkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fZGVoaWdobGlnaHRPcHRpb24oKTtcbiAgICB9XG4gIH1cblxuICBmb2N1c0lucHV0KCkge1xuICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29udGFpbmVyPy5uYXRpdmVFbGVtZW50Py5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpPy5mb2N1cygpO1xuICB9XG5cbiAgZm9jdXMoKSB7XG4gICAgdGhpcy5hdXRvY29tcGxldGVDb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQ/LmZvY3VzKCk7XG4gICAgdGhpcy5mb2N1c0lucHV0KCk7XG4gICAgdGhpcy5fdG9nZ2xlT3B0aW9ucyh0aGlzLmF1dG9jb21wbGV0ZUNvbnRhaW5lcj8ubmF0aXZlRWxlbWVudCwgdHJ1ZSk7XG4gIH1cblxuICBwcml2YXRlIF90b2dnbGVPcHRpb25zKGRkOiBIVE1MRWxlbWVudCwgc2hvdz86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCAhZGQpIHJldHVybjtcbiAgICB0aGlzLmJhY2tzcGFjZUNsaWNrZWRPbmNlID0gZmFsc2U7XG4gICAgaWYgKHR5cGVvZiBzaG93ID09PSAnYm9vbGVhbicpIHtcbiAgICAgIGlmIChzaG93KSBkZC5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKTtcbiAgICAgIGVsc2UgZGQuY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJyk7XG4gICAgfSBlbHNlIGRkLmNsYXNzTGlzdC50b2dnbGUoJ2FjdGl2ZScpO1xuXG4gICAgdGhpcy5pc09wZW5lZCA9IGRkLmNsYXNzTGlzdC5jb250YWlucygnYWN0aXZlJyk7XG5cbiAgICBpZiAodGhpcy5pc09wZW5lZCkge1xuICAgICAgY29uc3Qgc2VsZWN0ZWQgPVxuICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZUNvbnRhaW5lci5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5zZWxlY3RlZCcpO1xuICAgICAgaWYgKHNlbGVjdGVkKVxuICAgICAgICBzZWxlY3RlZC5zY3JvbGxJbnRvVmlldyh7XG4gICAgICAgICAgYmVoYXZpb3I6ICdpbnN0YW50JyxcbiAgICAgICAgICBibG9jazogJ25lYXJlc3QnLFxuICAgICAgICAgIGlubGluZTogJ2NlbnRlcidcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY2xpY2tPcHRpb24ob3B0aW9uOiBhbnksIGRkOiBIVE1MRWxlbWVudCkge1xuICAgIHRoaXMuc2VsZWN0KG9wdGlvbiwgZmFsc2UpO1xuICAgIGlmICghdGhpcy5tdWx0aXBsZSkge1xuICAgICAgdGhpcy5fdG9nZ2xlT3B0aW9ucyhkZCwgZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2NoZWNrRXJyb3JzKCk6IHZvaWQge1xuICAgIGNvbnN0IGVycm9ycyA9IHRoaXMuX2NvbnRyb2w/LmVycm9ycztcblxuICAgIGlmICghdGhpcy5fY29udHJvbD8uY29udHJvbD8udG91Y2hlZCB8fCAhZXJyb3JzKSB7XG4gICAgICB0aGlzLmVycm9yID0gJyc7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCdyZXF1aXJlZCcgaW4gZXJyb3JzKSB7XG4gICAgICB0aGlzLmVycm9yID0gJ0ZpZWxkIGlzIHJlcXVpcmVkJztcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBlcnJBcnIgPSBPYmplY3QudmFsdWVzKGVycm9ycyk7XG4gICAgaWYgKGVyckFyci5sZW5ndGggPCAxKSB7XG4gICAgICB0aGlzLmVycm9yID0gJyc7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnJBcnIuZmluZCgobXNnKSA9PiB0eXBlb2YgbXNnID09PSAnc3RyaW5nJyk7XG4gICAgY29uc29sZS5sb2coJ21lc3NhZ2UnLCBtZXNzYWdlKTtcbiAgICB0aGlzLmVycm9yID0gbWVzc2FnZSB8fCAnVW5rbm93biBlcnJvcic7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLndyaXRlVmFsdWUodmFsdWUpO1xuICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICAgIHRoaXMudmFsdWVDaGFuZ2VkLmVtaXQodmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0VmFsdWVMYWJlbCgpIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZVxuICAgICAgPyB0aGlzLnJldHVybk9iamVjdFxuICAgICAgICA/IHRoaXMudmFsdWVbdGhpcy5vcHRpb25MYWJlbF1cbiAgICAgICAgOiB0aGlzLl9sYWJlbEJ5VmFsdWUudHJhbnNmb3JtKFxuICAgICAgICAgICAgdGhpcy52YWx1ZSxcbiAgICAgICAgICAgIHRoaXMub3B0aW9ucyxcbiAgICAgICAgICAgIHRoaXMub3B0aW9uVmFsdWUsXG4gICAgICAgICAgICB0aGlzLm9wdGlvbkxhYmVsXG4gICAgICAgICAgKVxuICAgICAgOiAnJztcbiAgfVxuXG4gIHByaXZhdGUgX2NsZWFySW5wdXQoKSB7XG4gICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7XG4gICAgdGhpcy5pbnB1dFRleHQgPSAnJztcbiAgICB0aGlzLmFjdGl2ZVNpbmdsZSA9IGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2xvc2VBbmRDbGVhcihkZDogSFRNTEVsZW1lbnQpIHtcbiAgICB0aGlzLl9jbGVhcklucHV0KCk7XG4gICAgdGhpcy5fdG9nZ2xlT3B0aW9ucyhkZCwgZmFsc2UpO1xuICAgIHRoaXMuX2RlaGlnaGxpZ2h0T3B0aW9uKCk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRIVE1MT3B0aW9ucygpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5hdXRvY29tcGxldGVDb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQ/LnF1ZXJ5U2VsZWN0b3JBbGwoXG4gICAgICAgICcuY3BzLWF1dG9jb21wbGV0ZS1vcHRpb25zLW9wdGlvbidcbiAgICAgICkgfHwgW11cbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGVoaWdobGlnaHRPcHRpb24oZWw/OiBIVE1MRWxlbWVudCkge1xuICAgIGlmIChlbCkgZWwuY2xhc3NMaXN0LnJlbW92ZSgnaGlnaGxpZ2h0ZW4nKTtcbiAgICBlbHNlIHtcbiAgICAgIGlmICh0aGlzLm9wdGlvbkhpZ2hsaWdodGVkSW5kZXggPCAwKSByZXR1cm47XG4gICAgICBjb25zdCBvcHRpb25JdGVtcyA9IHRoaXMuX2dldEhUTUxPcHRpb25zKCk7XG4gICAgICBvcHRpb25JdGVtc1t0aGlzLm9wdGlvbkhpZ2hsaWdodGVkSW5kZXhdLmNsYXNzTGlzdC5yZW1vdmUoJ2hpZ2hsaWdodGVuJyk7XG4gICAgICB0aGlzLm9wdGlvbkhpZ2hsaWdodGVkSW5kZXggPSAtMTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9oaWdobGlnaHRPcHRpb24oZWw6IEhUTUxFbGVtZW50KSB7XG4gICAgZWwuY2xhc3NMaXN0LmFkZCgnaGlnaGxpZ2h0ZW4nKTtcbiAgICBjb25zdCBwYXJlbnQgPSBlbC5wYXJlbnRFbGVtZW50O1xuICAgIGlmICghcGFyZW50KSByZXR1cm47XG4gICAgY29uc3QgcGFyZW50UmVjdCA9IHBhcmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBlbFJlY3QgPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBpZiAoZWxSZWN0LnRvcCA8IHBhcmVudFJlY3QudG9wIHx8IGVsUmVjdC5ib3R0b20gPiBwYXJlbnRSZWN0LmJvdHRvbSkge1xuICAgICAgZWwuc2Nyb2xsSW50b1ZpZXcoe1xuICAgICAgICBibG9jazogJ25lYXJlc3QnLFxuICAgICAgICBpbmxpbmU6ICdjZW50ZXInXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9uYXZpZ2F0ZU9wdGlvbnNCeUFycm93cyh1cDogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5pc09wZW5lZCkgcmV0dXJuO1xuXG4gICAgY29uc3Qgb3B0aW9uSXRlbXMgPSB0aGlzLl9nZXRIVE1MT3B0aW9ucygpO1xuICAgIGNvbnN0IGxlbiA9IG9wdGlvbkl0ZW1zLmxlbmd0aDtcbiAgICBpZiAobGVuIDwgMSkgcmV0dXJuO1xuXG4gICAgaWYgKGxlbiA9PT0gMSkge1xuICAgICAgdGhpcy5faGlnaGxpZ2h0T3B0aW9uKG9wdGlvbkl0ZW1zWzBdKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodXApIHtcbiAgICAgIHRoaXMuX2RlaGlnaGxpZ2h0T3B0aW9uKG9wdGlvbkl0ZW1zW3RoaXMub3B0aW9uSGlnaGxpZ2h0ZWRJbmRleF0pO1xuICAgICAgdGhpcy5vcHRpb25IaWdobGlnaHRlZEluZGV4ID1cbiAgICAgICAgdGhpcy5vcHRpb25IaWdobGlnaHRlZEluZGV4IDwgMVxuICAgICAgICAgID8gbGVuIC0gMVxuICAgICAgICAgIDogdGhpcy5vcHRpb25IaWdobGlnaHRlZEluZGV4IC0gMTtcbiAgICAgIHRoaXMuX2hpZ2hsaWdodE9wdGlvbihvcHRpb25JdGVtc1t0aGlzLm9wdGlvbkhpZ2hsaWdodGVkSW5kZXhdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fZGVoaWdobGlnaHRPcHRpb24ob3B0aW9uSXRlbXNbdGhpcy5vcHRpb25IaWdobGlnaHRlZEluZGV4XSk7XG4gICAgICB0aGlzLm9wdGlvbkhpZ2hsaWdodGVkSW5kZXggPSBbLTEsIGxlbiAtIDFdLmluY2x1ZGVzKFxuICAgICAgICB0aGlzLm9wdGlvbkhpZ2hsaWdodGVkSW5kZXhcbiAgICAgIClcbiAgICAgICAgPyAwXG4gICAgICAgIDogdGhpcy5vcHRpb25IaWdobGlnaHRlZEluZGV4ICsgMTtcbiAgICAgIHRoaXMuX2hpZ2hsaWdodE9wdGlvbihvcHRpb25JdGVtc1t0aGlzLm9wdGlvbkhpZ2hsaWdodGVkSW5kZXhdKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9jb25maXJtSW5wdXQoc2VhcmNoVmFsOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuaXNPcGVuZWQpIHJldHVybjtcbiAgICBzZWFyY2hWYWwgPSBzZWFyY2hWYWwudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAoIXNlYXJjaFZhbCkge1xuICAgICAgaWYgKHRoaXMubXVsdGlwbGUpIHJldHVybjtcbiAgICAgIGNvbnN0IHZhbCA9IHRoaXMucmV0dXJuT2JqZWN0ID8gdW5kZWZpbmVkIDogJyc7XG4gICAgICB0aGlzLnVwZGF0ZVZhbHVlKHZhbCk7XG4gICAgICB0aGlzLl9jbG9zZUFuZENsZWFyKHRoaXMuYXV0b2NvbXBsZXRlQ29udGFpbmVyPy5uYXRpdmVFbGVtZW50KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBmb3VuZCA9IHRoaXMuZmlsdGVyZWRPcHRpb25zLmZpbmQoXG4gICAgICAobzogYW55KSA9PiBvW3RoaXMub3B0aW9uTGFiZWxdLnRvTG93ZXJDYXNlKCkgPT09IHNlYXJjaFZhbFxuICAgICk7XG4gICAgaWYgKGZvdW5kKSB7XG4gICAgICB0aGlzLnNlbGVjdChmb3VuZCwgZmFsc2UpO1xuICAgICAgdGhpcy5fdG9nZ2xlT3B0aW9ucyhcbiAgICAgICAgdGhpcy5hdXRvY29tcGxldGVDb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgIHRoaXMubXVsdGlwbGVcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghdGhpcy5tdWx0aXBsZSkge1xuICAgICAgICB0aGlzLmlucHV0VGV4dCA9IHRoaXMuX2dldFZhbHVlTGFiZWwoKTtcbiAgICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLl9jbGVhcklucHV0KCk7XG4gIH1cblxuICBwcml2YXRlIF9yZW1vdmVMYXN0VmFsdWUoKSB7XG4gICAgaWYgKCF0aGlzLm11bHRpcGxlIHx8IHRoaXMuaW5wdXRUZXh0KSByZXR1cm47XG5cbiAgICBpZiAodGhpcy52YWx1ZT8ubGVuZ3RoKSB7XG4gICAgICBpZiAodGhpcy5iYWNrc3BhY2VDbGlja2VkT25jZSkge1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKFxuICAgICAgICAgIHRoaXMudmFsdWUuZmlsdGVyKFxuICAgICAgICAgICAgKHY6IGFueSwgaW5kZXg6IG51bWJlcikgPT4gaW5kZXggIT09IHRoaXMudmFsdWUubGVuZ3RoIC0gMVxuICAgICAgICAgIClcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmJhY2tzcGFjZUNsaWNrZWRPbmNlID0gZmFsc2U7XG4gICAgICB9IGVsc2UgdGhpcy5iYWNrc3BhY2VDbGlja2VkT25jZSA9IHRydWU7XG4gICAgfSBlbHNlIHRoaXMuYmFja3NwYWNlQ2xpY2tlZE9uY2UgPSBmYWxzZTtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5mb2N1c0lucHV0KCk7XG4gICAgfSwgMCk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgZGF0YS1jeS1pZD1cImNwcy1hdXRvY29tcGxldGVcIlxuICBbbmdTdHlsZV09XCJ7IHdpZHRoOiBjdnRXaWR0aCB9XCJcbiAgY2xhc3M9XCJjcHMtYXV0b2NvbXBsZXRlXCJcbiAgdGFiaW5kZXg9XCIxXCJcbiAgW25nQ2xhc3NdPVwieyBkaXNhYmxlZDogZGlzYWJsZWQsIGVycm9yOiBlcnJvciB9XCJcbiAgI2F1dG9jb21wbGV0ZUNvbnRhaW5lcj5cbiAgPGxhYmVsICpuZ0lmPVwibGFiZWxcIiBjbGFzcz1cImNwcy1hdXRvY29tcGxldGUtbGFiZWxcIj57eyBsYWJlbCB9fTwvbGFiZWw+XG4gIDxkaXZcbiAgICAoa2V5ZG93bik9XCJvbkNvbnRhaW5lcktleURvd24oJGV2ZW50LCBhdXRvY29tcGxldGVDb250YWluZXIpXCJcbiAgICBjbGFzcz1cImNwcy1hdXRvY29tcGxldGUtY29udGFpbmVyXCJcbiAgICBbY2xhc3MuZm9jdXNlZF09XCJpc09wZW5lZFwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ3BlcnNpc3RlbnQtY2xlYXInOiBwZXJzaXN0ZW50Q2xlYXJcbiAgICB9XCJcbiAgICAoY2xpY2tPdXRzaWRlKT1cIm9uQ2xpY2tPdXRzaWRlKGF1dG9jb21wbGV0ZUNvbnRhaW5lcilcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY3BzLWF1dG9jb21wbGV0ZS1ib3hcIiAoY2xpY2spPVwib25Cb3hDbGljaygpXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3BzLWF1dG9jb21wbGV0ZS1ib3gtYXJlYVwiPlxuICAgICAgICA8Y3BzLWljb25cbiAgICAgICAgICAqbmdJZj1cInByZWZpeEljb25cIlxuICAgICAgICAgIFtpY29uXT1cInByZWZpeEljb25cIlxuICAgICAgICAgIFtzaXplXT1cInByZWZpeEljb25TaXplXCJcbiAgICAgICAgICBjbGFzcz1cInByZWZpeC1pY29uXCI+XG4gICAgICAgIDwvY3BzLWljb24+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImNwcy1hdXRvY29tcGxldGUtYm94LWl0ZW1zXCJcbiAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgKHZhbHVlICYmICFtdWx0aXBsZSkgfHwgKHZhbHVlPy5sZW5ndGggPiAwICYmIG11bHRpcGxlKTtcbiAgICAgICAgICAgIGVsc2UgYXV0b2NvbXBsZXRlSW5wdXRcbiAgICAgICAgICBcIj5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFtdWx0aXBsZVwiIGNsYXNzPVwic2luZ2xlLWl0ZW1cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaW5nbGUtaXRlbS1zZWxlY3Rpb25cIj5cbiAgICAgICAgICAgICAgPHNwYW4gW3N0eWxlLm9wYWNpdHldPVwiYWN0aXZlU2luZ2xlID8gMCA6IDFcIj57e1xuICAgICAgICAgICAgICAgIHJldHVybk9iamVjdFxuICAgICAgICAgICAgICAgICAgPyB2YWx1ZVtvcHRpb25MYWJlbF1cbiAgICAgICAgICAgICAgICAgIDogKHZhbHVlIHwgbGFiZWxCeVZhbHVlIDogb3B0aW9ucyA6IG9wdGlvblZhbHVlIDogb3B0aW9uTGFiZWwpXG4gICAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlSW5wdXQ7XG4gICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgaW5wdXRDbGFzczogJ3NpbmdsZS1pdGVtLWlucHV0JyxcbiAgICAgICAgICAgICAgICAgIGlucHV0U3R5bGU6IGFjdGl2ZVNpbmdsZSA/ICdvcGFjaXR5OiAxJyA6IG51bGxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIFwiPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgPGRpdiAqbmdJZj1cIm11bHRpcGxlICYmICFjaGlwc1wiIGNsYXNzPVwidGV4dC1ncm91cFwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgdmFsIG9mIHZhbHVlOyBsZXQgbGFzdCA9IGxhc3RcIlxuICAgICAgICAgICAgICBjbGFzcz1cInRleHQtZ3JvdXAtaXRlbVwiXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2Fib3V0LXRvLXJlbW92ZSc6IGxhc3QgJiYgYmFja3NwYWNlQ2xpY2tlZE9uY2UgfVwiPlxuICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgIHJldHVybk9iamVjdFxuICAgICAgICAgICAgICAgICAgPyB2YWxbb3B0aW9uTGFiZWxdXG4gICAgICAgICAgICAgICAgICA6ICh2YWwgfCBsYWJlbEJ5VmFsdWUgOiBvcHRpb25zIDogb3B0aW9uVmFsdWUgOiBvcHRpb25MYWJlbClcbiAgICAgICAgICAgICAgfX17eyAhbGFzdCA/ICcsJyA6ICcnIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJhdXRvY29tcGxldGVJbnB1dFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiAqbmdJZj1cIm11bHRpcGxlICYmIGNoaXBzXCIgY2xhc3M9XCJjaGlwcy1ncm91cFwiPlxuICAgICAgICAgICAgPGNwcy1jaGlwXG4gICAgICAgICAgICAgICpuZ0Zvcj1cImxldCB2YWwgb2YgdmFsdWU7IGxldCBsYXN0ID0gbGFzdFwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgIFtjbG9zYWJsZV09XCJjbG9zYWJsZUNoaXBzXCJcbiAgICAgICAgICAgICAgKGNsb3NlZCk9XCJzZWxlY3QodmFsLCB0cnVlKVwiXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2Fib3V0LXRvLXJlbW92ZSc6IGxhc3QgJiYgYmFja3NwYWNlQ2xpY2tlZE9uY2UgfVwiXG4gICAgICAgICAgICAgIFtsYWJlbF09XCJcbiAgICAgICAgICAgICAgICByZXR1cm5PYmplY3RcbiAgICAgICAgICAgICAgICAgID8gdmFsW29wdGlvbkxhYmVsXVxuICAgICAgICAgICAgICAgICAgOiAodmFsIHwgbGFiZWxCeVZhbHVlIDogb3B0aW9ucyA6IG9wdGlvblZhbHVlIDogb3B0aW9uTGFiZWwpXG4gICAgICAgICAgICAgIFwiPlxuICAgICAgICAgICAgPC9jcHMtY2hpcD5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJhdXRvY29tcGxldGVJbnB1dFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjcHMtYXV0b2NvbXBsZXRlLWJveC1pY29uc1wiPlxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAqbmdJZj1cImNsZWFyYWJsZSAmJiAhZGlzYWJsZWRcIlxuICAgICAgICAgICAgW3N0eWxlLnZpc2liaWxpdHldPVwiXG4gICAgICAgICAgICAgIHBlcnNpc3RlbnRDbGVhciB8fFxuICAgICAgICAgICAgICAoIXBlcnNpc3RlbnRDbGVhciAmJlxuICAgICAgICAgICAgICAgICgobXVsdGlwbGUgJiYgdmFsdWU/Lmxlbmd0aCkgfHwgKCFtdWx0aXBsZSAmJiB2YWx1ZSkpKVxuICAgICAgICAgICAgICAgID8gJ3Zpc2libGUnXG4gICAgICAgICAgICAgICAgOiAnaGlkZGVuJ1xuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIGNsYXNzPVwiY3BzLWF1dG9jb21wbGV0ZS1ib3gtY2xlYXItaWNvblwiPlxuICAgICAgICAgICAgPGNwcy1pY29uXG4gICAgICAgICAgICAgIGljb249XCJkZWxldGVcIlxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiY2xlYXIoYXV0b2NvbXBsZXRlQ29udGFpbmVyLCAkZXZlbnQpXCI+PC9jcHMtaWNvbj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcHMtYXV0b2NvbXBsZXRlLWJveC1jaGV2cm9uXCI+XG4gICAgICAgICAgICA8Y3BzLWljb25cbiAgICAgICAgICAgICAgaWNvbj1cImNoZXZyb24tZG93blwiXG4gICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgIGNvbG9yPVwidGV4dC1kYXJrXCI+PC9jcHMtaWNvbj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImNwcy1hdXRvY29tcGxldGUtb3B0aW9uc1wiPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImNwcy1hdXRvY29tcGxldGUtb3B0aW9ucy1vcHRpb24gc2VsZWN0LWFsbC1vcHRpb25cIlxuICAgICAgICBbY2xhc3MuYWxsc2VsZWN0ZWRdPVwidmFsdWU/Lmxlbmd0aCA9PT0gb3B0aW9ucy5sZW5ndGhcIlxuICAgICAgICAqbmdJZj1cIm11bHRpcGxlICYmIHNlbGVjdEFsbFwiXG4gICAgICAgIChjbGljayk9XCJ0b2dnbGVBbGwoKVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImNwcy1hdXRvY29tcGxldGUtb3B0aW9ucy1vcHRpb24tbGVmdFwiPlxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwibXVsdGlwbGVcIiBjbGFzcz1cImNwcy1hdXRvY29tcGxldGUtb3B0aW9ucy1vcHRpb24tY2hlY2tcIj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcHMtYXV0b2NvbXBsZXRlLW9wdGlvbnMtb3B0aW9uLWxhYmVsXCI+U2VsZWN0IGFsbDwvc3Bhbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiY3BzLWF1dG9jb21wbGV0ZS1vcHRpb25zLW9wdGlvblwiXG4gICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgZmlsdGVyZWRPcHRpb25zXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uT3B0aW9uQ2xpY2sob3B0aW9uLCBhdXRvY29tcGxldGVDb250YWluZXIpXCJcbiAgICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cIlxuICAgICAgICAgIG9wdGlvblxuICAgICAgICAgICAgfCBjaGVja09wdGlvblNlbGVjdGVkXG4gICAgICAgICAgICAgIDogdmFsdWVcbiAgICAgICAgICAgICAgOiBtdWx0aXBsZVxuICAgICAgICAgICAgICA6IHJldHVybk9iamVjdFxuICAgICAgICAgICAgICA6IG9wdGlvblZhbHVlXG4gICAgICAgIFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImNwcy1hdXRvY29tcGxldGUtb3B0aW9ucy1vcHRpb24tbGVmdFwiPlxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwibXVsdGlwbGVcIiBjbGFzcz1cImNwcy1hdXRvY29tcGxldGUtb3B0aW9ucy1vcHRpb24tY2hlY2tcIj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gZGF0YS1jeS1pZD1cImNwcy1hdXRvY29tcGxldGUtb3B0aW9uc1wiIGNsYXNzPVwiY3BzLWF1dG9jb21wbGV0ZS1vcHRpb25zLW9wdGlvbi1sYWJlbFwiPnt7XG4gICAgICAgICAgICBvcHRpb25bb3B0aW9uTGFiZWxdXG4gICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgIDwvc3Bhbj5cblxuICAgICAgICA8c3BhbiBjbGFzcz1cImNwcy1hdXRvY29tcGxldGUtb3B0aW9ucy1vcHRpb24tcmlnaHRcIj57e1xuICAgICAgICAgIG9wdGlvbltvcHRpb25JbmZvXVxuICAgICAgICB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxjcHMtcHJvZ3Jlc3MtbGluZWFyXG4gICAgICAqbmdJZj1cImxvYWRpbmdcIlxuICAgICAgaGVpZ2h0PVwiM1wiXG4gICAgICByYWRpdXM9XCI0XCJcbiAgICAgIG9wYWNpdHk9XCIwLjNcIlxuICAgICAgY2xhc3M9XCJhdXRvY29tcGxldGUtcHJvZ3Jlc3MtYmFyXCJcbiAgICAgIGJnQ29sb3I9XCJ0cmFuc3BhcmVudFwiPlxuICAgIDwvY3BzLXByb2dyZXNzLWxpbmVhcj5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCIhZXJyb3IgJiYgIWhpZGVEZXRhaWxzXCIgY2xhc3M9XCJjcHMtYXV0b2NvbXBsZXRlLWhpbnRcIj5cbiAgICB7eyBoaW50IH19XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwiZXJyb3IgJiYgIWhpZGVEZXRhaWxzXCIgY2xhc3M9XCJjcHMtYXV0b2NvbXBsZXRlLWVycm9yXCI+XG4gICAge3sgZXJyb3IgfX1cbiAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlXG4gICNhdXRvY29tcGxldGVJbnB1dFxuICBsZXQtaW5wdXRDbGFzcz1cImlucHV0Q2xhc3NcIlxuICBsZXQtaW5wdXRTdHlsZT1cImlucHV0U3R5bGVcIj5cbiAgPGlucHV0XG4gICAgY2xhc3M9XCJjcHMtYXV0b2NvbXBsZXRlLWJveC1pbnB1dFwiXG4gICAgW2NsYXNzXT1cImlucHV0Q2xhc3NcIlxuICAgIFtzdHlsZV09XCJpbnB1dFN0eWxlXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwiXG4gICAgICAoIXZhbHVlICYmICFtdWx0aXBsZSkgfHwgKHZhbHVlPy5sZW5ndGggPCAxICYmIG11bHRpcGxlKVxuICAgICAgICA/IHBsYWNlaG9sZGVyXG4gICAgICAgIDogJydcbiAgICBcIlxuICAgIChpbnB1dCk9XCJmaWx0ZXJPcHRpb25zKCRldmVudClcIlxuICAgIChrZXlkb3duKT1cIm9uSW5wdXRLZXlEb3duKCRldmVudClcIlxuICAgIFsobmdNb2RlbCldPVwiaW5wdXRUZXh0XCJcbiAgICAoYmx1cik9XCJvbkJsdXIoKVwiIC8+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -90,7 +90,7 @@ export class CpsSelectComponent {
90
90
  selected.scrollIntoView({
91
91
  behavior: 'instant',
92
92
  block: 'nearest',
93
- inline: 'start'
93
+ inline: 'center'
94
94
  });
95
95
  }
96
96
  }
@@ -164,7 +164,7 @@ export class CpsSelectComponent {
164
164
  if (elRect.top < parentRect.top || elRect.bottom > parentRect.bottom) {
165
165
  el.scrollIntoView({
166
166
  block: 'nearest',
167
- inline: 'start'
167
+ inline: 'center'
168
168
  });
169
169
  }
170
170
  }
@@ -370,4 +370,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
370
370
  type: ViewChild,
371
371
  args: ['selectContainer']
372
372
  }] } });
373
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BzLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcHMtdWkta2l0L3NyYy9saWIvY29tcG9uZW50cy9jcHMtc2VsZWN0L2Nwcy1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLXNlbGVjdC9jcHMtc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFDTixJQUFJLEVBQ0osU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsV0FBVyxFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUNMLGdCQUFnQixFQUdqQixNQUFNLGdDQUFnQyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxJQUFJLEVBQUUs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QkFBdUI7cUJBQ3hCLGFBQ1UsQ0FBQyxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSx1QkFBdUIsQ0FBQyxZQUMvRCxZQUFZOzswQkFzRFQsSUFBSTs7MEJBQUksUUFBUTs0Q0EvQ3BCLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUVVLE1BQU07c0JBQXJCLEtBQUs7dUJBQUMsT0FBTztnQkFXSixZQUFZO3NCQUFyQixNQUFNO2dCQUdQLGVBQWU7c0JBRGQsU0FBUzt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgU2VsZixcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1zTW9kdWxlLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNvbnZlcnRTaXplIH0gZnJvbSAnLi4vLi4vdXRpbHMvc2l6ZS11dGlscyc7XG5pbXBvcnQge1xuICBDcHNJY29uQ29tcG9uZW50LFxuICBpY29uU2l6ZVR5cGUsXG4gIEljb25UeXBlXG59IGZyb20gJy4uL2Nwcy1pY29uL2Nwcy1pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDcHNDaGlwQ29tcG9uZW50IH0gZnJvbSAnLi4vY3BzLWNoaXAvY3BzLWNoaXAuY29tcG9uZW50JztcbmltcG9ydCB7IENwc1Byb2dyZXNzTGluZWFyQ29tcG9uZW50IH0gZnJvbSAnLi4vY3BzLXByb2dyZXNzLWxpbmVhci9jcHMtcHJvZ3Jlc3MtbGluZWFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDbGlja091dHNpZGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2NsaWNrLW91dHNpZGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IExhYmVsQnlWYWx1ZVBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy9sYWJlbC1ieS12YWx1ZS5waXBlJztcbmltcG9ydCB7IENvbWJpbmVMYWJlbHNQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMvY29tYmluZS1sYWJlbHMucGlwZSc7XG5pbXBvcnQgeyBDaGVja09wdGlvblNlbGVjdGVkUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL2NoZWNrLW9wdGlvbi1zZWxlY3RlZC5waXBlJztcbmltcG9ydCB7IGZpbmQsIGlzRXF1YWwgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBDbGlja091dHNpZGVEaXJlY3RpdmUsXG4gICAgQ3BzSWNvbkNvbXBvbmVudCxcbiAgICBDcHNDaGlwQ29tcG9uZW50LFxuICAgIENwc1Byb2dyZXNzTGluZWFyQ29tcG9uZW50LFxuICAgIExhYmVsQnlWYWx1ZVBpcGUsXG4gICAgQ29tYmluZUxhYmVsc1BpcGUsXG4gICAgQ2hlY2tPcHRpb25TZWxlY3RlZFBpcGVcbiAgXSxcbiAgcHJvdmlkZXJzOiBbTGFiZWxCeVZhbHVlUGlwZSwgQ29tYmluZUxhYmVsc1BpcGUsIENoZWNrT3B0aW9uU2VsZWN0ZWRQaXBlXSxcbiAgc2VsZWN0b3I6ICdjcHMtc2VsZWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Nwcy1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jcHMtc2VsZWN0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ3BzU2VsZWN0Q29tcG9uZW50XG4gIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgT25EZXN0cm95XG57XG4gIEBJbnB1dCgpIGxhYmVsID0gJyc7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJ1BsZWFzZSBzZWxlY3QnO1xuICBASW5wdXQoKSBoaW50ID0gJyc7XG4gIEBJbnB1dCgpIHJldHVybk9iamVjdCA9IHRydWU7IC8vIGlmIGZhbHNlLCB2YWx1ZSB3aWxsIGJlIG9wdGlvbltvcHRpb25WYWx1ZV1cbiAgQElucHV0KCkgbXVsdGlwbGUgPSBmYWxzZTtcbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgd2lkdGg6IG51bWJlciB8IHN0cmluZyA9ICcxMDAlJztcbiAgQElucHV0KCkgc2VsZWN0QWxsID0gdHJ1ZTtcbiAgQElucHV0KCkgY2hpcHMgPSB0cnVlO1xuICBASW5wdXQoKSBjbG9zYWJsZUNoaXBzID0gdHJ1ZTtcbiAgQElucHV0KCkgY2xlYXJhYmxlID0gZmFsc2U7XG4gIEBJbnB1dCgpIG9wZW5PbkNsZWFyID0gdHJ1ZTtcbiAgQElucHV0KCkgb3B0aW9ucyA9IFtdIGFzIGFueVtdO1xuICBASW5wdXQoKSBvcHRpb25MYWJlbCA9ICdsYWJlbCc7XG4gIEBJbnB1dCgpIG9wdGlvblZhbHVlID0gJ3ZhbHVlJzsgLy8gbmVlZGVkIG9ubHkgaWYgcmV0dXJuT2JqZWN0ID09PSBmYWxzZVxuICBASW5wdXQoKSBvcHRpb25JbmZvID0gJ2luZm8nO1xuICBASW5wdXQoKSBoaWRlRGV0YWlscyA9IGZhbHNlO1xuICBASW5wdXQoKSBwZXJzaXN0ZW50Q2xlYXIgPSBmYWxzZTtcbiAgQElucHV0KCkgcHJlZml4SWNvbjogSWNvblR5cGUgPSAnJztcbiAgQElucHV0KCkgcHJlZml4SWNvblNpemU6IGljb25TaXplVHlwZSA9ICcxOHB4JztcbiAgQElucHV0KCkgbG9hZGluZyA9IGZhbHNlO1xuXG4gIEBJbnB1dCgndmFsdWUnKSBfdmFsdWU6IGFueSA9IHVuZGVmaW5lZDtcblxuICBzZXQgdmFsdWUodmFsdWU6IGFueSkge1xuICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gIH1cblxuICBnZXQgdmFsdWUoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH1cblxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgQFZpZXdDaGlsZCgnc2VsZWN0Q29udGFpbmVyJylcbiAgc2VsZWN0Q29udGFpbmVyITogRWxlbWVudFJlZjtcblxuICBwcml2YXRlIF9zdGF0dXNDaGFuZ2VzU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgZXJyb3IgPSAnJztcbiAgY3Z0V2lkdGggPSAnJztcblxuICBpc09wZW5lZCA9IGZhbHNlO1xuXG4gIG9wdGlvbkhpZ2hsaWdodGVkSW5kZXggPSAtMTtcblxuICBjb25zdHJ1Y3RvcihAU2VsZigpIEBPcHRpb25hbCgpIHByaXZhdGUgX2NvbnRyb2w6IE5nQ29udHJvbCkge1xuICAgIGlmICh0aGlzLl9jb250cm9sKSB7XG4gICAgICB0aGlzLl9jb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY3Z0V2lkdGggPSBjb252ZXJ0U2l6ZSh0aGlzLndpZHRoKTtcbiAgICBpZiAodGhpcy5tdWx0aXBsZSAmJiAhdGhpcy5fdmFsdWUpIHtcbiAgICAgIHRoaXMuX3ZhbHVlID0gW107XG4gICAgfVxuXG4gICAgdGhpcy5fc3RhdHVzQ2hhbmdlc1N1YnNjcmlwdGlvbiA9IHRoaXMuX2NvbnRyb2w/LnN0YXR1c0NoYW5nZXM/LnN1YnNjcmliZShcbiAgICAgICgpID0+IHtcbiAgICAgICAgdGhpcy5fY2hlY2tFcnJvcnMoKTtcbiAgICAgIH1cbiAgICApIGFzIFN1YnNjcmlwdGlvbjtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX3N0YXR1c0NoYW5nZXNTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIF90b2dnbGVPcHRpb25zKGRkOiBIVE1MRWxlbWVudCwgc2hvdz86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCAhZGQpIHJldHVybjtcbiAgICBpZiAodHlwZW9mIHNob3cgPT09ICdib29sZWFuJykge1xuICAgICAgaWYgKHNob3cpIGRkLmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpO1xuICAgICAgZWxzZSBkZC5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKTtcbiAgICB9IGVsc2UgZGQuY2xhc3NMaXN0LnRvZ2dsZSgnYWN0aXZlJyk7XG5cbiAgICB0aGlzLmlzT3BlbmVkID0gZGQuY2xhc3NMaXN0LmNvbnRhaW5zKCdhY3RpdmUnKTtcblxuICAgIGlmICh0aGlzLmlzT3BlbmVkKSB7XG4gICAgICBjb25zdCBzZWxlY3RlZCA9XG4gICAgICAgIHRoaXMuc2VsZWN0Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLnNlbGVjdGVkJyk7XG4gICAgICBpZiAoc2VsZWN0ZWQpXG4gICAgICAgIHNlbGVjdGVkLnNjcm9sbEludG9WaWV3KHtcbiAgICAgICAgICBiZWhhdmlvcjogJ2luc3RhbnQnLFxuICAgICAgICAgIGJsb2NrOiAnbmVhcmVzdCcsXG4gICAgICAgICAgaW5saW5lOiAnc3RhcnQnXG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8vIHByaXZhdGUgX2ZpbHRlck9wdGlvbnMoKSB7XG4gIC8vICAgaWYgKCF0aGlzLm9wdGlvbnNGaWx0ZXIgfHwgIXRoaXMubXVsdGlwbGUpIHJldHVybjtcbiAgLy8gICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IHRoaXMub3B0aW9ucy5maWx0ZXIoKG8pID0+IHtcbiAgLy8gICAgIGlmICh0aGlzLnJldHVybk9iamVjdCkge1xuICAvLyAgICAgICByZXR1cm4gIXRoaXMudmFsdWUuZmluZCgodjogYW55KSA9PiB2ID09PSBvKTtcbiAgLy8gICAgIH1cbiAgLy8gICAgIHJldHVybiAhdGhpcy52YWx1ZS5maW5kKCh2OiBhbnkpID0+IHYgPT09IG9bdGhpcy5vcHRpb25WYWx1ZV0pO1xuICAvLyAgIH0pO1xuICAvLyB9XG5cbiAgc2VsZWN0KG9wdGlvbjogYW55LCBieVZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgZnVuY3Rpb24gaW5jbHVkZXMoYXJyYXk6IGFueVtdLCB2YWw6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIGFycmF5ID8gISFmaW5kKGFycmF5LCAoaXRlbSkgPT4gaXNFcXVhbChpdGVtLCB2YWwpKSA6IGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCB2YWwgPSBieVZhbHVlXG4gICAgICA/IG9wdGlvblxuICAgICAgOiB0aGlzLnJldHVybk9iamVjdFxuICAgICAgPyBvcHRpb25cbiAgICAgIDogb3B0aW9uW3RoaXMub3B0aW9uVmFsdWVdO1xuICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICBsZXQgcmVzID0gW10gYXMgYW55O1xuICAgICAgaWYgKGluY2x1ZGVzKHRoaXMudmFsdWUsIHZhbCkpIHtcbiAgICAgICAgcmVzID0gdGhpcy52YWx1ZS5maWx0ZXIoKHY6IGFueSkgPT4gIWlzRXF1YWwodiwgdmFsKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm9wdGlvbnMuZm9yRWFjaCgobykgPT4ge1xuICAgICAgICAgIGNvbnN0IG92ID0gdGhpcy5yZXR1cm5PYmplY3QgPyBvIDogb1t0aGlzLm9wdGlvblZhbHVlXTtcbiAgICAgICAgICBpZiAodGhpcy52YWx1ZS5zb21lKCh2OiBhbnkpID0+IGlzRXF1YWwodiwgb3YpKSB8fCBpc0VxdWFsKHZhbCwgb3YpKSB7XG4gICAgICAgICAgICByZXMucHVzaChvdik7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHRoaXMudXBkYXRlVmFsdWUocmVzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy51cGRhdGVWYWx1ZSh2YWwpO1xuICAgIH1cbiAgfVxuXG4gIG9uT3B0aW9uQ2xpY2sob3B0aW9uOiBhbnksIGRkOiBIVE1MRWxlbWVudCkge1xuICAgIHRoaXMuX2NsaWNrT3B0aW9uKG9wdGlvbiwgZGQpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2xpY2tPcHRpb24ob3B0aW9uOiBhbnksIGRkOiBIVE1MRWxlbWVudCkge1xuICAgIHRoaXMuc2VsZWN0KG9wdGlvbiwgZmFsc2UpO1xuICAgIGlmICghdGhpcy5tdWx0aXBsZSkge1xuICAgICAgdGhpcy5fdG9nZ2xlT3B0aW9ucyhkZCwgZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2dldEhUTUxPcHRpb25zKCkge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLnNlbGVjdENvbnRhaW5lcj8ubmF0aXZlRWxlbWVudD8ucXVlcnlTZWxlY3RvckFsbChcbiAgICAgICAgJy5jcHMtc2VsZWN0LW9wdGlvbnMtb3B0aW9uJ1xuICAgICAgKSB8fCBbXVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9kZWhpZ2hsaWdodE9wdGlvbihlbD86IEhUTUxFbGVtZW50KSB7XG4gICAgaWYgKGVsKSBlbC5jbGFzc0xpc3QucmVtb3ZlKCdoaWdobGlnaHRlbicpO1xuICAgIGVsc2Uge1xuICAgICAgaWYgKHRoaXMub3B0aW9uSGlnaGxpZ2h0ZWRJbmRleCA8IDApIHJldHVybjtcbiAgICAgIGNvbnN0IG9wdGlvbkl0ZW1zID0gdGhpcy5fZ2V0SFRNTE9wdGlvbnMoKTtcbiAgICAgIG9wdGlvbkl0ZW1zW3RoaXMub3B0aW9uSGlnaGxpZ2h0ZWRJbmRleF0uY2xhc3NMaXN0LnJlbW92ZSgnaGlnaGxpZ2h0ZW4nKTtcbiAgICAgIHRoaXMub3B0aW9uSGlnaGxpZ2h0ZWRJbmRleCA9IC0xO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2hpZ2hsaWdodE9wdGlvbihlbDogSFRNTEVsZW1lbnQpIHtcbiAgICBlbC5jbGFzc0xpc3QuYWRkKCdoaWdobGlnaHRlbicpO1xuICAgIGNvbnN0IHBhcmVudCA9IGVsLnBhcmVudEVsZW1lbnQ7XG4gICAgaWYgKCFwYXJlbnQpIHJldHVybjtcbiAgICBjb25zdCBwYXJlbnRSZWN0ID0gcGFyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IGVsUmVjdCA9IGVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGlmIChlbFJlY3QudG9wIDwgcGFyZW50UmVjdC50b3AgfHwgZWxSZWN0LmJvdHRvbSA+IHBhcmVudFJlY3QuYm90dG9tKSB7XG4gICAgICBlbC5zY3JvbGxJbnRvVmlldyh7XG4gICAgICAgIGJsb2NrOiAnbmVhcmVzdCcsXG4gICAgICAgIGlubGluZTogJ3N0YXJ0J1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfbmF2aWdhdGVPcHRpb25zQnlBcnJvd3ModXA6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuaXNPcGVuZWQpIHJldHVybjtcblxuICAgIGNvbnN0IG9wdGlvbkl0ZW1zID0gdGhpcy5fZ2V0SFRNTE9wdGlvbnMoKTtcbiAgICBjb25zdCBsZW4gPSBvcHRpb25JdGVtcy5sZW5ndGg7XG4gICAgaWYgKGxlbiA8IDEpIHJldHVybjtcblxuICAgIGlmIChsZW4gPT09IDEpIHtcbiAgICAgIHRoaXMuX2hpZ2hsaWdodE9wdGlvbihvcHRpb25JdGVtc1swXSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHVwKSB7XG4gICAgICB0aGlzLl9kZWhpZ2hsaWdodE9wdGlvbihvcHRpb25JdGVtc1t0aGlzLm9wdGlvbkhpZ2hsaWdodGVkSW5kZXhdKTtcbiAgICAgIHRoaXMub3B0aW9uSGlnaGxpZ2h0ZWRJbmRleCA9XG4gICAgICAgIHRoaXMub3B0aW9uSGlnaGxpZ2h0ZWRJbmRleCA8IDFcbiAgICAgICAgICA/IGxlbiAtIDFcbiAgICAgICAgICA6IHRoaXMub3B0aW9uSGlnaGxpZ2h0ZWRJbmRleCAtIDE7XG4gICAgICB0aGlzLl9oaWdobGlnaHRPcHRpb24ob3B0aW9uSXRlbXNbdGhpcy5vcHRpb25IaWdobGlnaHRlZEluZGV4XSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2RlaGlnaGxpZ2h0T3B0aW9uKG9wdGlvbkl0ZW1zW3RoaXMub3B0aW9uSGlnaGxpZ2h0ZWRJbmRleF0pO1xuICAgICAgdGhpcy5vcHRpb25IaWdobGlnaHRlZEluZGV4ID0gWy0xLCBsZW4gLSAxXS5pbmNsdWRlcyhcbiAgICAgICAgdGhpcy5vcHRpb25IaWdobGlnaHRlZEluZGV4XG4gICAgICApXG4gICAgICAgID8gMFxuICAgICAgICA6IHRoaXMub3B0aW9uSGlnaGxpZ2h0ZWRJbmRleCArIDE7XG4gICAgICB0aGlzLl9oaWdobGlnaHRPcHRpb24ob3B0aW9uSXRlbXNbdGhpcy5vcHRpb25IaWdobGlnaHRlZEluZGV4XSk7XG4gICAgfVxuICB9XG5cbiAgb25DbGlja091dHNpZGUoZGQ6IEhUTUxFbGVtZW50KSB7XG4gICAgdGhpcy5fdG9nZ2xlT3B0aW9ucyhkZCwgZmFsc2UpO1xuICAgIHRoaXMuX2RlaGlnaGxpZ2h0T3B0aW9uKCk7XG4gIH1cblxuICBvbkJveENsaWNrKGRkOiBIVE1MRWxlbWVudCkge1xuICAgIHRoaXMuX3RvZ2dsZU9wdGlvbnMoZGQpO1xuICAgIHRoaXMuX2RlaGlnaGxpZ2h0T3B0aW9uKCk7XG4gIH1cblxuICBvbktleURvd24oZXZlbnQ6IGFueSwgZGQ6IEhUTUxFbGVtZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBjb25zdCBjb2RlID0gZXZlbnQua2V5Q29kZTtcbiAgICAvLyBlc2NhcGVcbiAgICBpZiAoY29kZSA9PT0gMjcpIHtcbiAgICAgIHRoaXMuX3RvZ2dsZU9wdGlvbnMoZGQsIGZhbHNlKTtcbiAgICAgIHRoaXMuX2RlaGlnaGxpZ2h0T3B0aW9uKCk7XG4gICAgfVxuICAgIC8vIGVudGVyXG4gICAgZWxzZSBpZiAoY29kZSA9PT0gMTMpIHtcbiAgICAgIGxldCBpZHggPSB0aGlzLm9wdGlvbkhpZ2hsaWdodGVkSW5kZXg7XG4gICAgICBpZiAoaWR4IDwgMCkgcmV0dXJuO1xuICAgICAgaWYgKHRoaXMubXVsdGlwbGUgJiYgdGhpcy5zZWxlY3RBbGwpIHtcbiAgICAgICAgaWYgKGlkeCA9PT0gMCkge1xuICAgICAgICAgIHRoaXMudG9nZ2xlQWxsKCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2UgaWR4LS07XG4gICAgICB9XG5cbiAgICAgIHRoaXMuX2NsaWNrT3B0aW9uKHRoaXMub3B0aW9uc1tpZHhdLCBkZCk7XG4gICAgfVxuICAgIC8vIHZlcnRpY2FsIGFycm93c1xuICAgIGVsc2UgaWYgKFszOCwgNDBdLmluY2x1ZGVzKGNvZGUpKSB7XG4gICAgICB0aGlzLl9uYXZpZ2F0ZU9wdGlvbnNCeUFycm93cyhjb2RlID09PSAzOCk7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlQWxsKCkge1xuICAgIGxldCByZXMgPSBbXTtcbiAgICBpZiAodGhpcy52YWx1ZS5sZW5ndGggPCB0aGlzLm9wdGlvbnMubGVuZ3RoKSB7XG4gICAgICBpZiAodGhpcy5yZXR1cm5PYmplY3QpIHtcbiAgICAgICAgcmVzID0gdGhpcy5vcHRpb25zO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5vcHRpb25zLmZvckVhY2goKG8pID0+IHtcbiAgICAgICAgICByZXMucHVzaChvW3RoaXMub3B0aW9uVmFsdWVdKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMudXBkYXRlVmFsdWUocmVzKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NoZWNrRXJyb3JzKCk6IHZvaWQge1xuICAgIGNvbnN0IGVycm9ycyA9IHRoaXMuX2NvbnRyb2w/LmVycm9ycztcblxuICAgIGlmICghdGhpcy5fY29udHJvbD8uY29udHJvbD8udG91Y2hlZCB8fCAhZXJyb3JzKSB7XG4gICAgICB0aGlzLmVycm9yID0gJyc7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCdyZXF1aXJlZCcgaW4gZXJyb3JzKSB7XG4gICAgICB0aGlzLmVycm9yID0gJ0ZpZWxkIGlzIHJlcXVpcmVkJztcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBlcnJBcnIgPSBPYmplY3QudmFsdWVzKGVycm9ycyk7XG4gICAgaWYgKGVyckFyci5sZW5ndGggPCAxKSB7XG4gICAgICB0aGlzLmVycm9yID0gJyc7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnJBcnIuZmluZCgobXNnKSA9PiB0eXBlb2YgbXNnID09PSAnc3RyaW5nJyk7XG5cbiAgICB0aGlzLmVycm9yID0gbWVzc2FnZSB8fCAnVW5rbm93biBlcnJvcic7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIG9uQ2hhbmdlID0gKGV2ZW50OiBhbnkpID0+IHt9O1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIG9uVG91Y2hlZCA9ICgpID0+IHt9O1xuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy53cml0ZVZhbHVlKHZhbHVlKTtcbiAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgICB0aGlzLnZhbHVlQ2hhbmdlZC5lbWl0KHZhbHVlKTtcbiAgfVxuXG4gIGNsZWFyKGRkOiBIVE1MRWxlbWVudCwgZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgaWYgKFxuICAgICAgKCF0aGlzLm11bHRpcGxlICYmIHRoaXMudmFsdWUpIHx8XG4gICAgICAodGhpcy5tdWx0aXBsZSAmJiB0aGlzLnZhbHVlPy5sZW5ndGggPiAwKVxuICAgICkge1xuICAgICAgaWYgKHRoaXMub3Blbk9uQ2xlYXIpIHtcbiAgICAgICAgdGhpcy5fdG9nZ2xlT3B0aW9ucyhkZCwgdHJ1ZSk7XG4gICAgICB9XG4gICAgICBjb25zdCB2YWwgPSB0aGlzLm11bHRpcGxlID8gW10gOiB0aGlzLnJldHVybk9iamVjdCA/IHVuZGVmaW5lZCA6ICcnO1xuICAgICAgdGhpcy51cGRhdGVWYWx1ZSh2YWwpO1xuICAgIH1cbiAgICB0aGlzLl9kZWhpZ2hsaWdodE9wdGlvbigpO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICBzZXREaXNhYmxlZFN0YXRlKGRpc2FibGVkOiBib29sZWFuKSB7fVxuXG4gIG9uQmx1cigpIHtcbiAgICB0aGlzLl9jb250cm9sPy5jb250cm9sPy5tYXJrQXNUb3VjaGVkKCk7XG4gICAgdGhpcy5fY2hlY2tFcnJvcnMoKTtcbiAgfVxuXG4gIGZvY3VzKCkge1xuICAgIHRoaXMuc2VsZWN0Q29udGFpbmVyPy5uYXRpdmVFbGVtZW50Py5mb2N1cygpO1xuICAgIHRoaXMuX3RvZ2dsZU9wdGlvbnModGhpcy5zZWxlY3RDb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQsIHRydWUpO1xuICB9XG59XG4iLCI8ZGl2XG4gIFtuZ1N0eWxlXT1cInsgd2lkdGg6IGN2dFdpZHRoIH1cIlxuICBjbGFzcz1cImNwcy1zZWxlY3RcIlxuICB0YWJpbmRleD1cIjBcIlxuICBbbmdDbGFzc109XCJ7IGRpc2FibGVkOiBkaXNhYmxlZCwgZXJyb3I6IGVycm9yIH1cIlxuICAjc2VsZWN0Q29udGFpbmVyXG4gIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQsIHNlbGVjdENvbnRhaW5lcilcIlxuICAoYmx1cik9XCJvbkJsdXIoKVwiPlxuICA8bGFiZWwgKm5nSWY9XCJsYWJlbFwiIGNsYXNzPVwiY3BzLXNlbGVjdC1sYWJlbFwiPnt7IGxhYmVsIH19IDwvbGFiZWw+XG4gIDxkaXZcbiAgICBjbGFzcz1cImNwcy1zZWxlY3QtY29udGFpbmVyXCJcbiAgICBbY2xhc3MuZm9jdXNlZF09XCJpc09wZW5lZFwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ3BlcnNpc3RlbnQtY2xlYXInOiBwZXJzaXN0ZW50Q2xlYXJcbiAgICB9XCJcbiAgICAoY2xpY2tPdXRzaWRlKT1cIm9uQ2xpY2tPdXRzaWRlKHNlbGVjdENvbnRhaW5lcilcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY3BzLXNlbGVjdC1ib3hcIiAoY2xpY2spPVwib25Cb3hDbGljayhzZWxlY3RDb250YWluZXIpXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3BzLXNlbGVjdC1ib3gtbGVmdFwiPlxuICAgICAgICA8Y3BzLWljb25cbiAgICAgICAgICAqbmdJZj1cInByZWZpeEljb25cIlxuICAgICAgICAgIFtpY29uXT1cInByZWZpeEljb25cIlxuICAgICAgICAgIFtzaXplXT1cInByZWZpeEljb25TaXplXCJcbiAgICAgICAgICBjbGFzcz1cInByZWZpeC1pY29uXCI+XG4gICAgICAgIDwvY3BzLWljb24+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImNwcy1zZWxlY3QtYm94LXBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAqbmdJZj1cIighdmFsdWUgJiYgIW11bHRpcGxlKSB8fCAodmFsdWU/Lmxlbmd0aCA8IDEgJiYgbXVsdGlwbGUpXCI+XG4gICAgICAgICAge3sgcGxhY2Vob2xkZXIgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImNwcy1zZWxlY3QtYm94LWl0ZW1zXCJcbiAgICAgICAgICAqbmdJZj1cIih2YWx1ZSAmJiAhbXVsdGlwbGUpIHx8ICh2YWx1ZT8ubGVuZ3RoID4gMCAmJiBtdWx0aXBsZSlcIj5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFtdWx0aXBsZVwiIGNsYXNzPVwic2luZ2xlLWl0ZW1cIj5cbiAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgIHJldHVybk9iamVjdFxuICAgICAgICAgICAgICAgID8gdmFsdWVbb3B0aW9uTGFiZWxdXG4gICAgICAgICAgICAgICAgOiAodmFsdWUgfCBsYWJlbEJ5VmFsdWUgOiBvcHRpb25zIDogb3B0aW9uVmFsdWUgOiBvcHRpb25MYWJlbClcbiAgICAgICAgICAgIH19PC9zcGFuXG4gICAgICAgICAgPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJtdWx0aXBsZSAmJiAhY2hpcHNcIiBjbGFzcz1cInRleHQtZ3JvdXBcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1ncm91cC1pdGVtXCI+XG4gICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgICAgICAgICAgIHwgY29tYmluZUxhYmVsc1xuICAgICAgICAgICAgICAgICAgICA6IG9wdGlvbnNcbiAgICAgICAgICAgICAgICAgICAgOiBvcHRpb25WYWx1ZVxuICAgICAgICAgICAgICAgICAgICA6IG9wdGlvbkxhYmVsXG4gICAgICAgICAgICAgICAgICAgIDogcmV0dXJuT2JqZWN0XG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwibXVsdGlwbGUgJiYgY2hpcHNcIiBjbGFzcz1cImNoaXBzLWdyb3VwXCI+XG4gICAgICAgICAgICA8Y3BzLWNoaXBcbiAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHZhbCBvZiB2YWx1ZVwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgIFtjbG9zYWJsZV09XCJjbG9zYWJsZUNoaXBzXCJcbiAgICAgICAgICAgICAgKGNsb3NlZCk9XCJzZWxlY3QodmFsLCB0cnVlKVwiXG4gICAgICAgICAgICAgIFtsYWJlbF09XCJcbiAgICAgICAgICAgICAgICByZXR1cm5PYmplY3RcbiAgICAgICAgICAgICAgICAgID8gdmFsW29wdGlvbkxhYmVsXVxuICAgICAgICAgICAgICAgICAgOiAodmFsIHwgbGFiZWxCeVZhbHVlIDogb3B0aW9ucyA6IG9wdGlvblZhbHVlIDogb3B0aW9uTGFiZWwpXG4gICAgICAgICAgICAgIFwiPlxuICAgICAgICAgICAgPC9jcHMtY2hpcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiY3BzLXNlbGVjdC1ib3gtaWNvbnNcIj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAqbmdJZj1cImNsZWFyYWJsZSAmJiAhZGlzYWJsZWRcIlxuICAgICAgICAgIFtzdHlsZS52aXNpYmlsaXR5XT1cIlxuICAgICAgICAgICAgcGVyc2lzdGVudENsZWFyIHx8XG4gICAgICAgICAgICAoIXBlcnNpc3RlbnRDbGVhciAmJlxuICAgICAgICAgICAgICAoKG11bHRpcGxlICYmIHZhbHVlPy5sZW5ndGgpIHx8ICghbXVsdGlwbGUgJiYgdmFsdWUpKSlcbiAgICAgICAgICAgICAgPyAndmlzaWJsZSdcbiAgICAgICAgICAgICAgOiAnaGlkZGVuJ1xuICAgICAgICAgIFwiXG4gICAgICAgICAgY2xhc3M9XCJjcHMtc2VsZWN0LWJveC1jbGVhci1pY29uXCI+XG4gICAgICAgICAgPGNwcy1pY29uXG4gICAgICAgICAgICBpY29uPVwiZGVsZXRlXCJcbiAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY2xlYXIoc2VsZWN0Q29udGFpbmVyLCAkZXZlbnQpXCI+PC9jcHMtaWNvbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImNwcy1zZWxlY3QtYm94LWNoZXZyb25cIj5cbiAgICAgICAgICA8Y3BzLWljb25cbiAgICAgICAgICAgIGljb249XCJjaGV2cm9uLWRvd25cIlxuICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgIGNvbG9yPVwidGV4dC1kYXJrXCI+PC9jcHMtaWNvbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImNwcy1zZWxlY3Qtb3B0aW9uc1wiPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImNwcy1zZWxlY3Qtb3B0aW9ucy1vcHRpb24gc2VsZWN0LWFsbC1vcHRpb25cIlxuICAgICAgICBbY2xhc3MuYWxsc2VsZWN0ZWRdPVwidmFsdWU/Lmxlbmd0aCA9PT0gb3B0aW9ucy5sZW5ndGhcIlxuICAgICAgICAqbmdJZj1cIm11bHRpcGxlICYmIHNlbGVjdEFsbFwiXG4gICAgICAgIChjbGljayk9XCJ0b2dnbGVBbGwoKVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImNwcy1zZWxlY3Qtb3B0aW9ucy1vcHRpb24tbGVmdFwiPlxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwibXVsdGlwbGVcIiBjbGFzcz1cImNwcy1zZWxlY3Qtb3B0aW9ucy1vcHRpb24tY2hlY2tcIj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcHMtc2VsZWN0LW9wdGlvbnMtb3B0aW9uLWxhYmVsXCI+U2VsZWN0IGFsbDwvc3Bhbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiY3BzLXNlbGVjdC1vcHRpb25zLW9wdGlvblwiXG4gICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uc1wiXG4gICAgICAgIChjbGljayk9XCJvbk9wdGlvbkNsaWNrKG9wdGlvbiwgc2VsZWN0Q29udGFpbmVyKVwiXG4gICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJcbiAgICAgICAgICBvcHRpb25cbiAgICAgICAgICAgIHwgY2hlY2tPcHRpb25TZWxlY3RlZFxuICAgICAgICAgICAgICA6IHZhbHVlXG4gICAgICAgICAgICAgIDogbXVsdGlwbGVcbiAgICAgICAgICAgICAgOiByZXR1cm5PYmplY3RcbiAgICAgICAgICAgICAgOiBvcHRpb25WYWx1ZVxuICAgICAgICBcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjcHMtc2VsZWN0LW9wdGlvbnMtb3B0aW9uLWxlZnRcIj5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cIm11bHRpcGxlXCIgY2xhc3M9XCJjcHMtc2VsZWN0LW9wdGlvbnMtb3B0aW9uLWNoZWNrXCI+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3BzLXNlbGVjdC1vcHRpb25zLW9wdGlvbi1sYWJlbFwiPnt7XG4gICAgICAgICAgICBvcHRpb25bb3B0aW9uTGFiZWxdXG4gICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgIDwvc3Bhbj5cblxuICAgICAgICA8c3BhbiBjbGFzcz1cImNwcy1zZWxlY3Qtb3B0aW9ucy1vcHRpb24tcmlnaHRcIj57e1xuICAgICAgICAgIG9wdGlvbltvcHRpb25JbmZvXVxuICAgICAgICB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxjcHMtcHJvZ3Jlc3MtbGluZWFyXG4gICAgICAqbmdJZj1cImxvYWRpbmdcIlxuICAgICAgaGVpZ2h0PVwiM1wiXG4gICAgICByYWRpdXM9XCI0XCJcbiAgICAgIG9wYWNpdHk9XCIwLjNcIlxuICAgICAgY2xhc3M9XCJzZWxlY3QtcHJvZ3Jlc3MtYmFyXCJcbiAgICAgIGJnQ29sb3I9XCJ0cmFuc3BhcmVudFwiPlxuICAgIDwvY3BzLXByb2dyZXNzLWxpbmVhcj5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCIhZXJyb3IgJiYgIWhpZGVEZXRhaWxzXCIgY2xhc3M9XCJjcHMtc2VsZWN0LWhpbnRcIj57eyBoaW50IH19PC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJlcnJvciAmJiAhaGlkZURldGFpbHNcIiBjbGFzcz1cImNwcy1zZWxlY3QtZXJyb3JcIj57eyBlcnJvciB9fTwvZGl2PlxuPC9kaXY+XG4iXX0=
373
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BzLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcHMtdWkta2l0L3NyYy9saWIvY29tcG9uZW50cy9jcHMtc2VsZWN0L2Nwcy1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLXNlbGVjdC9jcHMtc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFDTixJQUFJLEVBQ0osU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsV0FBVyxFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUNMLGdCQUFnQixFQUdqQixNQUFNLGdDQUFnQyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxJQUFJLEVBQUUs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QkFBdUI7cUJBQ3hCLGFBQ1UsQ0FBQyxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSx1QkFBdUIsQ0FBQyxZQUMvRCxZQUFZOzswQkFzRFQsSUFBSTs7MEJBQUksUUFBUTs0Q0EvQ3BCLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUVVLE1BQU07c0JBQXJCLEtBQUs7dUJBQUMsT0FBTztnQkFXSixZQUFZO3NCQUFyQixNQUFNO2dCQUdQLGVBQWU7c0JBRGQsU0FBUzt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgU2VsZixcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1zTW9kdWxlLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNvbnZlcnRTaXplIH0gZnJvbSAnLi4vLi4vdXRpbHMvc2l6ZS11dGlscyc7XG5pbXBvcnQge1xuICBDcHNJY29uQ29tcG9uZW50LFxuICBpY29uU2l6ZVR5cGUsXG4gIEljb25UeXBlXG59IGZyb20gJy4uL2Nwcy1pY29uL2Nwcy1pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDcHNDaGlwQ29tcG9uZW50IH0gZnJvbSAnLi4vY3BzLWNoaXAvY3BzLWNoaXAuY29tcG9uZW50JztcbmltcG9ydCB7IENwc1Byb2dyZXNzTGluZWFyQ29tcG9uZW50IH0gZnJvbSAnLi4vY3BzLXByb2dyZXNzLWxpbmVhci9jcHMtcHJvZ3Jlc3MtbGluZWFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDbGlja091dHNpZGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2NsaWNrLW91dHNpZGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IExhYmVsQnlWYWx1ZVBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy9sYWJlbC1ieS12YWx1ZS5waXBlJztcbmltcG9ydCB7IENvbWJpbmVMYWJlbHNQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMvY29tYmluZS1sYWJlbHMucGlwZSc7XG5pbXBvcnQgeyBDaGVja09wdGlvblNlbGVjdGVkUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL2NoZWNrLW9wdGlvbi1zZWxlY3RlZC5waXBlJztcbmltcG9ydCB7IGZpbmQsIGlzRXF1YWwgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBDbGlja091dHNpZGVEaXJlY3RpdmUsXG4gICAgQ3BzSWNvbkNvbXBvbmVudCxcbiAgICBDcHNDaGlwQ29tcG9uZW50LFxuICAgIENwc1Byb2dyZXNzTGluZWFyQ29tcG9uZW50LFxuICAgIExhYmVsQnlWYWx1ZVBpcGUsXG4gICAgQ29tYmluZUxhYmVsc1BpcGUsXG4gICAgQ2hlY2tPcHRpb25TZWxlY3RlZFBpcGVcbiAgXSxcbiAgcHJvdmlkZXJzOiBbTGFiZWxCeVZhbHVlUGlwZSwgQ29tYmluZUxhYmVsc1BpcGUsIENoZWNrT3B0aW9uU2VsZWN0ZWRQaXBlXSxcbiAgc2VsZWN0b3I6ICdjcHMtc2VsZWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Nwcy1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jcHMtc2VsZWN0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ3BzU2VsZWN0Q29tcG9uZW50XG4gIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgT25EZXN0cm95XG57XG4gIEBJbnB1dCgpIGxhYmVsID0gJyc7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJ1BsZWFzZSBzZWxlY3QnO1xuICBASW5wdXQoKSBoaW50ID0gJyc7XG4gIEBJbnB1dCgpIHJldHVybk9iamVjdCA9IHRydWU7IC8vIGlmIGZhbHNlLCB2YWx1ZSB3aWxsIGJlIG9wdGlvbltvcHRpb25WYWx1ZV1cbiAgQElucHV0KCkgbXVsdGlwbGUgPSBmYWxzZTtcbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgd2lkdGg6IG51bWJlciB8IHN0cmluZyA9ICcxMDAlJztcbiAgQElucHV0KCkgc2VsZWN0QWxsID0gdHJ1ZTtcbiAgQElucHV0KCkgY2hpcHMgPSB0cnVlO1xuICBASW5wdXQoKSBjbG9zYWJsZUNoaXBzID0gdHJ1ZTtcbiAgQElucHV0KCkgY2xlYXJhYmxlID0gZmFsc2U7XG4gIEBJbnB1dCgpIG9wZW5PbkNsZWFyID0gdHJ1ZTtcbiAgQElucHV0KCkgb3B0aW9ucyA9IFtdIGFzIGFueVtdO1xuICBASW5wdXQoKSBvcHRpb25MYWJlbCA9ICdsYWJlbCc7XG4gIEBJbnB1dCgpIG9wdGlvblZhbHVlID0gJ3ZhbHVlJzsgLy8gbmVlZGVkIG9ubHkgaWYgcmV0dXJuT2JqZWN0ID09PSBmYWxzZVxuICBASW5wdXQoKSBvcHRpb25JbmZvID0gJ2luZm8nO1xuICBASW5wdXQoKSBoaWRlRGV0YWlscyA9IGZhbHNlO1xuICBASW5wdXQoKSBwZXJzaXN0ZW50Q2xlYXIgPSBmYWxzZTtcbiAgQElucHV0KCkgcHJlZml4SWNvbjogSWNvblR5cGUgPSAnJztcbiAgQElucHV0KCkgcHJlZml4SWNvblNpemU6IGljb25TaXplVHlwZSA9ICcxOHB4JztcbiAgQElucHV0KCkgbG9hZGluZyA9IGZhbHNlO1xuXG4gIEBJbnB1dCgndmFsdWUnKSBfdmFsdWU6IGFueSA9IHVuZGVmaW5lZDtcblxuICBzZXQgdmFsdWUodmFsdWU6IGFueSkge1xuICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gIH1cblxuICBnZXQgdmFsdWUoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH1cblxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgQFZpZXdDaGlsZCgnc2VsZWN0Q29udGFpbmVyJylcbiAgc2VsZWN0Q29udGFpbmVyITogRWxlbWVudFJlZjtcblxuICBwcml2YXRlIF9zdGF0dXNDaGFuZ2VzU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgZXJyb3IgPSAnJztcbiAgY3Z0V2lkdGggPSAnJztcblxuICBpc09wZW5lZCA9IGZhbHNlO1xuXG4gIG9wdGlvbkhpZ2hsaWdodGVkSW5kZXggPSAtMTtcblxuICBjb25zdHJ1Y3RvcihAU2VsZigpIEBPcHRpb25hbCgpIHByaXZhdGUgX2NvbnRyb2w6IE5nQ29udHJvbCkge1xuICAgIGlmICh0aGlzLl9jb250cm9sKSB7XG4gICAgICB0aGlzLl9jb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY3Z0V2lkdGggPSBjb252ZXJ0U2l6ZSh0aGlzLndpZHRoKTtcbiAgICBpZiAodGhpcy5tdWx0aXBsZSAmJiAhdGhpcy5fdmFsdWUpIHtcbiAgICAgIHRoaXMuX3ZhbHVlID0gW107XG4gICAgfVxuXG4gICAgdGhpcy5fc3RhdHVzQ2hhbmdlc1N1YnNjcmlwdGlvbiA9IHRoaXMuX2NvbnRyb2w/LnN0YXR1c0NoYW5nZXM/LnN1YnNjcmliZShcbiAgICAgICgpID0+IHtcbiAgICAgICAgdGhpcy5fY2hlY2tFcnJvcnMoKTtcbiAgICAgIH1cbiAgICApIGFzIFN1YnNjcmlwdGlvbjtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX3N0YXR1c0NoYW5nZXNTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIF90b2dnbGVPcHRpb25zKGRkOiBIVE1MRWxlbWVudCwgc2hvdz86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCAhZGQpIHJldHVybjtcbiAgICBpZiAodHlwZW9mIHNob3cgPT09ICdib29sZWFuJykge1xuICAgICAgaWYgKHNob3cpIGRkLmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpO1xuICAgICAgZWxzZSBkZC5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKTtcbiAgICB9IGVsc2UgZGQuY2xhc3NMaXN0LnRvZ2dsZSgnYWN0aXZlJyk7XG5cbiAgICB0aGlzLmlzT3BlbmVkID0gZGQuY2xhc3NMaXN0LmNvbnRhaW5zKCdhY3RpdmUnKTtcblxuICAgIGlmICh0aGlzLmlzT3BlbmVkKSB7XG4gICAgICBjb25zdCBzZWxlY3RlZCA9XG4gICAgICAgIHRoaXMuc2VsZWN0Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLnNlbGVjdGVkJyk7XG4gICAgICBpZiAoc2VsZWN0ZWQpXG4gICAgICAgIHNlbGVjdGVkLnNjcm9sbEludG9WaWV3KHtcbiAgICAgICAgICBiZWhhdmlvcjogJ2luc3RhbnQnLFxuICAgICAgICAgIGJsb2NrOiAnbmVhcmVzdCcsXG4gICAgICAgICAgaW5saW5lOiAnY2VudGVyJ1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvLyBwcml2YXRlIF9maWx0ZXJPcHRpb25zKCkge1xuICAvLyAgIGlmICghdGhpcy5vcHRpb25zRmlsdGVyIHx8ICF0aGlzLm11bHRpcGxlKSByZXR1cm47XG4gIC8vICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSB0aGlzLm9wdGlvbnMuZmlsdGVyKChvKSA9PiB7XG4gIC8vICAgICBpZiAodGhpcy5yZXR1cm5PYmplY3QpIHtcbiAgLy8gICAgICAgcmV0dXJuICF0aGlzLnZhbHVlLmZpbmQoKHY6IGFueSkgPT4gdiA9PT0gbyk7XG4gIC8vICAgICB9XG4gIC8vICAgICByZXR1cm4gIXRoaXMudmFsdWUuZmluZCgodjogYW55KSA9PiB2ID09PSBvW3RoaXMub3B0aW9uVmFsdWVdKTtcbiAgLy8gICB9KTtcbiAgLy8gfVxuXG4gIHNlbGVjdChvcHRpb246IGFueSwgYnlWYWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIGZ1bmN0aW9uIGluY2x1ZGVzKGFycmF5OiBhbnlbXSwgdmFsOiBhbnkpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiBhcnJheSA/ICEhZmluZChhcnJheSwgKGl0ZW0pID0+IGlzRXF1YWwoaXRlbSwgdmFsKSkgOiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgdmFsID0gYnlWYWx1ZVxuICAgICAgPyBvcHRpb25cbiAgICAgIDogdGhpcy5yZXR1cm5PYmplY3RcbiAgICAgID8gb3B0aW9uXG4gICAgICA6IG9wdGlvblt0aGlzLm9wdGlvblZhbHVlXTtcbiAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xuICAgICAgbGV0IHJlcyA9IFtdIGFzIGFueTtcbiAgICAgIGlmIChpbmNsdWRlcyh0aGlzLnZhbHVlLCB2YWwpKSB7XG4gICAgICAgIHJlcyA9IHRoaXMudmFsdWUuZmlsdGVyKCh2OiBhbnkpID0+ICFpc0VxdWFsKHYsIHZhbCkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5vcHRpb25zLmZvckVhY2goKG8pID0+IHtcbiAgICAgICAgICBjb25zdCBvdiA9IHRoaXMucmV0dXJuT2JqZWN0ID8gbyA6IG9bdGhpcy5vcHRpb25WYWx1ZV07XG4gICAgICAgICAgaWYgKHRoaXMudmFsdWUuc29tZSgodjogYW55KSA9PiBpc0VxdWFsKHYsIG92KSkgfHwgaXNFcXVhbCh2YWwsIG92KSkge1xuICAgICAgICAgICAgcmVzLnB1c2gob3YpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICB0aGlzLnVwZGF0ZVZhbHVlKHJlcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudXBkYXRlVmFsdWUodmFsKTtcbiAgICB9XG4gIH1cblxuICBvbk9wdGlvbkNsaWNrKG9wdGlvbjogYW55LCBkZDogSFRNTEVsZW1lbnQpIHtcbiAgICB0aGlzLl9jbGlja09wdGlvbihvcHRpb24sIGRkKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NsaWNrT3B0aW9uKG9wdGlvbjogYW55LCBkZDogSFRNTEVsZW1lbnQpIHtcbiAgICB0aGlzLnNlbGVjdChvcHRpb24sIGZhbHNlKTtcbiAgICBpZiAoIXRoaXMubXVsdGlwbGUpIHtcbiAgICAgIHRoaXMuX3RvZ2dsZU9wdGlvbnMoZGQsIGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9nZXRIVE1MT3B0aW9ucygpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5zZWxlY3RDb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQ/LnF1ZXJ5U2VsZWN0b3JBbGwoXG4gICAgICAgICcuY3BzLXNlbGVjdC1vcHRpb25zLW9wdGlvbidcbiAgICAgICkgfHwgW11cbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGVoaWdobGlnaHRPcHRpb24oZWw/OiBIVE1MRWxlbWVudCkge1xuICAgIGlmIChlbCkgZWwuY2xhc3NMaXN0LnJlbW92ZSgnaGlnaGxpZ2h0ZW4nKTtcbiAgICBlbHNlIHtcbiAgICAgIGlmICh0aGlzLm9wdGlvbkhpZ2hsaWdodGVkSW5kZXggPCAwKSByZXR1cm47XG4gICAgICBjb25zdCBvcHRpb25JdGVtcyA9IHRoaXMuX2dldEhUTUxPcHRpb25zKCk7XG4gICAgICBvcHRpb25JdGVtc1t0aGlzLm9wdGlvbkhpZ2hsaWdodGVkSW5kZXhdLmNsYXNzTGlzdC5yZW1vdmUoJ2hpZ2hsaWdodGVuJyk7XG4gICAgICB0aGlzLm9wdGlvbkhpZ2hsaWdodGVkSW5kZXggPSAtMTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9oaWdobGlnaHRPcHRpb24oZWw6IEhUTUxFbGVtZW50KSB7XG4gICAgZWwuY2xhc3NMaXN0LmFkZCgnaGlnaGxpZ2h0ZW4nKTtcbiAgICBjb25zdCBwYXJlbnQgPSBlbC5wYXJlbnRFbGVtZW50O1xuICAgIGlmICghcGFyZW50KSByZXR1cm47XG4gICAgY29uc3QgcGFyZW50UmVjdCA9IHBhcmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBlbFJlY3QgPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBpZiAoZWxSZWN0LnRvcCA8IHBhcmVudFJlY3QudG9wIHx8IGVsUmVjdC5ib3R0b20gPiBwYXJlbnRSZWN0LmJvdHRvbSkge1xuICAgICAgZWwuc2Nyb2xsSW50b1ZpZXcoe1xuICAgICAgICBibG9jazogJ25lYXJlc3QnLFxuICAgICAgICBpbmxpbmU6ICdjZW50ZXInXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9uYXZpZ2F0ZU9wdGlvbnNCeUFycm93cyh1cDogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5pc09wZW5lZCkgcmV0dXJuO1xuXG4gICAgY29uc3Qgb3B0aW9uSXRlbXMgPSB0aGlzLl9nZXRIVE1MT3B0aW9ucygpO1xuICAgIGNvbnN0IGxlbiA9IG9wdGlvbkl0ZW1zLmxlbmd0aDtcbiAgICBpZiAobGVuIDwgMSkgcmV0dXJuO1xuXG4gICAgaWYgKGxlbiA9PT0gMSkge1xuICAgICAgdGhpcy5faGlnaGxpZ2h0T3B0aW9uKG9wdGlvbkl0ZW1zWzBdKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodXApIHtcbiAgICAgIHRoaXMuX2RlaGlnaGxpZ2h0T3B0aW9uKG9wdGlvbkl0ZW1zW3RoaXMub3B0aW9uSGlnaGxpZ2h0ZWRJbmRleF0pO1xuICAgICAgdGhpcy5vcHRpb25IaWdobGlnaHRlZEluZGV4ID1cbiAgICAgICAgdGhpcy5vcHRpb25IaWdobGlnaHRlZEluZGV4IDwgMVxuICAgICAgICAgID8gbGVuIC0gMVxuICAgICAgICAgIDogdGhpcy5vcHRpb25IaWdobGlnaHRlZEluZGV4IC0gMTtcbiAgICAgIHRoaXMuX2hpZ2hsaWdodE9wdGlvbihvcHRpb25JdGVtc1t0aGlzLm9wdGlvbkhpZ2hsaWdodGVkSW5kZXhdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fZGVoaWdobGlnaHRPcHRpb24ob3B0aW9uSXRlbXNbdGhpcy5vcHRpb25IaWdobGlnaHRlZEluZGV4XSk7XG4gICAgICB0aGlzLm9wdGlvbkhpZ2hsaWdodGVkSW5kZXggPSBbLTEsIGxlbiAtIDFdLmluY2x1ZGVzKFxuICAgICAgICB0aGlzLm9wdGlvbkhpZ2hsaWdodGVkSW5kZXhcbiAgICAgIClcbiAgICAgICAgPyAwXG4gICAgICAgIDogdGhpcy5vcHRpb25IaWdobGlnaHRlZEluZGV4ICsgMTtcbiAgICAgIHRoaXMuX2hpZ2hsaWdodE9wdGlvbihvcHRpb25JdGVtc1t0aGlzLm9wdGlvbkhpZ2hsaWdodGVkSW5kZXhdKTtcbiAgICB9XG4gIH1cblxuICBvbkNsaWNrT3V0c2lkZShkZDogSFRNTEVsZW1lbnQpIHtcbiAgICB0aGlzLl90b2dnbGVPcHRpb25zKGRkLCBmYWxzZSk7XG4gICAgdGhpcy5fZGVoaWdobGlnaHRPcHRpb24oKTtcbiAgfVxuXG4gIG9uQm94Q2xpY2soZGQ6IEhUTUxFbGVtZW50KSB7XG4gICAgdGhpcy5fdG9nZ2xlT3B0aW9ucyhkZCk7XG4gICAgdGhpcy5fZGVoaWdobGlnaHRPcHRpb24oKTtcbiAgfVxuXG4gIG9uS2V5RG93bihldmVudDogYW55LCBkZDogSFRNTEVsZW1lbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGNvbnN0IGNvZGUgPSBldmVudC5rZXlDb2RlO1xuICAgIC8vIGVzY2FwZVxuICAgIGlmIChjb2RlID09PSAyNykge1xuICAgICAgdGhpcy5fdG9nZ2xlT3B0aW9ucyhkZCwgZmFsc2UpO1xuICAgICAgdGhpcy5fZGVoaWdobGlnaHRPcHRpb24oKTtcbiAgICB9XG4gICAgLy8gZW50ZXJcbiAgICBlbHNlIGlmIChjb2RlID09PSAxMykge1xuICAgICAgbGV0IGlkeCA9IHRoaXMub3B0aW9uSGlnaGxpZ2h0ZWRJbmRleDtcbiAgICAgIGlmIChpZHggPCAwKSByZXR1cm47XG4gICAgICBpZiAodGhpcy5tdWx0aXBsZSAmJiB0aGlzLnNlbGVjdEFsbCkge1xuICAgICAgICBpZiAoaWR4ID09PSAwKSB7XG4gICAgICAgICAgdGhpcy50b2dnbGVBbGwoKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH0gZWxzZSBpZHgtLTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5fY2xpY2tPcHRpb24odGhpcy5vcHRpb25zW2lkeF0sIGRkKTtcbiAgICB9XG4gICAgLy8gdmVydGljYWwgYXJyb3dzXG4gICAgZWxzZSBpZiAoWzM4LCA0MF0uaW5jbHVkZXMoY29kZSkpIHtcbiAgICAgIHRoaXMuX25hdmlnYXRlT3B0aW9uc0J5QXJyb3dzKGNvZGUgPT09IDM4KTtcbiAgICB9XG4gIH1cblxuICB0b2dnbGVBbGwoKSB7XG4gICAgbGV0IHJlcyA9IFtdO1xuICAgIGlmICh0aGlzLnZhbHVlLmxlbmd0aCA8IHRoaXMub3B0aW9ucy5sZW5ndGgpIHtcbiAgICAgIGlmICh0aGlzLnJldHVybk9iamVjdCkge1xuICAgICAgICByZXMgPSB0aGlzLm9wdGlvbnM7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm9wdGlvbnMuZm9yRWFjaCgobykgPT4ge1xuICAgICAgICAgIHJlcy5wdXNoKG9bdGhpcy5vcHRpb25WYWx1ZV0pO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy51cGRhdGVWYWx1ZShyZXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2hlY2tFcnJvcnMoKTogdm9pZCB7XG4gICAgY29uc3QgZXJyb3JzID0gdGhpcy5fY29udHJvbD8uZXJyb3JzO1xuXG4gICAgaWYgKCF0aGlzLl9jb250cm9sPy5jb250cm9sPy50b3VjaGVkIHx8ICFlcnJvcnMpIHtcbiAgICAgIHRoaXMuZXJyb3IgPSAnJztcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoJ3JlcXVpcmVkJyBpbiBlcnJvcnMpIHtcbiAgICAgIHRoaXMuZXJyb3IgPSAnRmllbGQgaXMgcmVxdWlyZWQnO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGVyckFyciA9IE9iamVjdC52YWx1ZXMoZXJyb3JzKTtcbiAgICBpZiAoZXJyQXJyLmxlbmd0aCA8IDEpIHtcbiAgICAgIHRoaXMuZXJyb3IgPSAnJztcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgbWVzc2FnZSA9IGVyckFyci5maW5kKChtc2cpID0+IHR5cGVvZiBtc2cgPT09ICdzdHJpbmcnKTtcblxuICAgIHRoaXMuZXJyb3IgPSBtZXNzYWdlIHx8ICdVbmtub3duIGVycm9yJztcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgb25DaGFuZ2UgPSAoZXZlbnQ6IGFueSkgPT4ge307XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgb25Ub3VjaGVkID0gKCkgPT4ge307XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLndyaXRlVmFsdWUodmFsdWUpO1xuICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICAgIHRoaXMudmFsdWVDaGFuZ2VkLmVtaXQodmFsdWUpO1xuICB9XG5cbiAgY2xlYXIoZGQ6IEhUTUxFbGVtZW50LCBldmVudDogYW55KTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICBpZiAoXG4gICAgICAoIXRoaXMubXVsdGlwbGUgJiYgdGhpcy52YWx1ZSkgfHxcbiAgICAgICh0aGlzLm11bHRpcGxlICYmIHRoaXMudmFsdWU/Lmxlbmd0aCA+IDApXG4gICAgKSB7XG4gICAgICBpZiAodGhpcy5vcGVuT25DbGVhcikge1xuICAgICAgICB0aGlzLl90b2dnbGVPcHRpb25zKGRkLCB0cnVlKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHZhbCA9IHRoaXMubXVsdGlwbGUgPyBbXSA6IHRoaXMucmV0dXJuT2JqZWN0ID8gdW5kZWZpbmVkIDogJyc7XG4gICAgICB0aGlzLnVwZGF0ZVZhbHVlKHZhbCk7XG4gICAgfVxuICAgIHRoaXMuX2RlaGlnaGxpZ2h0T3B0aW9uKCk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIHNldERpc2FibGVkU3RhdGUoZGlzYWJsZWQ6IGJvb2xlYW4pIHt9XG5cbiAgb25CbHVyKCkge1xuICAgIHRoaXMuX2NvbnRyb2w/LmNvbnRyb2w/Lm1hcmtBc1RvdWNoZWQoKTtcbiAgICB0aGlzLl9jaGVja0Vycm9ycygpO1xuICB9XG5cbiAgZm9jdXMoKSB7XG4gICAgdGhpcy5zZWxlY3RDb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQ/LmZvY3VzKCk7XG4gICAgdGhpcy5fdG9nZ2xlT3B0aW9ucyh0aGlzLnNlbGVjdENvbnRhaW5lcj8ubmF0aXZlRWxlbWVudCwgdHJ1ZSk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgW25nU3R5bGVdPVwieyB3aWR0aDogY3Z0V2lkdGggfVwiXG4gIGNsYXNzPVwiY3BzLXNlbGVjdFwiXG4gIHRhYmluZGV4PVwiMFwiXG4gIFtuZ0NsYXNzXT1cInsgZGlzYWJsZWQ6IGRpc2FibGVkLCBlcnJvcjogZXJyb3IgfVwiXG4gICNzZWxlY3RDb250YWluZXJcbiAgKGtleWRvd24pPVwib25LZXlEb3duKCRldmVudCwgc2VsZWN0Q29udGFpbmVyKVwiXG4gIChibHVyKT1cIm9uQmx1cigpXCI+XG4gIDxsYWJlbCAqbmdJZj1cImxhYmVsXCIgY2xhc3M9XCJjcHMtc2VsZWN0LWxhYmVsXCI+e3sgbGFiZWwgfX0gPC9sYWJlbD5cbiAgPGRpdlxuICAgIGNsYXNzPVwiY3BzLXNlbGVjdC1jb250YWluZXJcIlxuICAgIFtjbGFzcy5mb2N1c2VkXT1cImlzT3BlbmVkXCJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAncGVyc2lzdGVudC1jbGVhcic6IHBlcnNpc3RlbnRDbGVhclxuICAgIH1cIlxuICAgIChjbGlja091dHNpZGUpPVwib25DbGlja091dHNpZGUoc2VsZWN0Q29udGFpbmVyKVwiPlxuICAgIDxkaXYgY2xhc3M9XCJjcHMtc2VsZWN0LWJveFwiIChjbGljayk9XCJvbkJveENsaWNrKHNlbGVjdENvbnRhaW5lcilcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcHMtc2VsZWN0LWJveC1sZWZ0XCI+XG4gICAgICAgIDxjcHMtaWNvblxuICAgICAgICAgICpuZ0lmPVwicHJlZml4SWNvblwiXG4gICAgICAgICAgW2ljb25dPVwicHJlZml4SWNvblwiXG4gICAgICAgICAgW3NpemVdPVwicHJlZml4SWNvblNpemVcIlxuICAgICAgICAgIGNsYXNzPVwicHJlZml4LWljb25cIj5cbiAgICAgICAgPC9jcHMtaWNvbj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiY3BzLXNlbGVjdC1ib3gtcGxhY2Vob2xkZXJcIlxuICAgICAgICAgICpuZ0lmPVwiKCF2YWx1ZSAmJiAhbXVsdGlwbGUpIHx8ICh2YWx1ZT8ubGVuZ3RoIDwgMSAmJiBtdWx0aXBsZSlcIj5cbiAgICAgICAgICB7eyBwbGFjZWhvbGRlciB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiY3BzLXNlbGVjdC1ib3gtaXRlbXNcIlxuICAgICAgICAgICpuZ0lmPVwiKHZhbHVlICYmICFtdWx0aXBsZSkgfHwgKHZhbHVlPy5sZW5ndGggPiAwICYmIG11bHRpcGxlKVwiPlxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIW11bHRpcGxlXCIgY2xhc3M9XCJzaW5nbGUtaXRlbVwiPlxuICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgcmV0dXJuT2JqZWN0XG4gICAgICAgICAgICAgICAgPyB2YWx1ZVtvcHRpb25MYWJlbF1cbiAgICAgICAgICAgICAgICA6ICh2YWx1ZSB8IGxhYmVsQnlWYWx1ZSA6IG9wdGlvbnMgOiBvcHRpb25WYWx1ZSA6IG9wdGlvbkxhYmVsKVxuICAgICAgICAgICAgfX08L3NwYW5cbiAgICAgICAgICA+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cIm11bHRpcGxlICYmICFjaGlwc1wiIGNsYXNzPVwidGV4dC1ncm91cFwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWdyb3VwLWl0ZW1cIj5cbiAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgICAgICAgICAgfCBjb21iaW5lTGFiZWxzXG4gICAgICAgICAgICAgICAgICAgIDogb3B0aW9uc1xuICAgICAgICAgICAgICAgICAgICA6IG9wdGlvblZhbHVlXG4gICAgICAgICAgICAgICAgICAgIDogb3B0aW9uTGFiZWxcbiAgICAgICAgICAgICAgICAgICAgOiByZXR1cm5PYmplY3RcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJtdWx0aXBsZSAmJiBjaGlwc1wiIGNsYXNzPVwiY2hpcHMtZ3JvdXBcIj5cbiAgICAgICAgICAgIDxjcHMtY2hpcFxuICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgdmFsIG9mIHZhbHVlXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgICAgW2Nsb3NhYmxlXT1cImNsb3NhYmxlQ2hpcHNcIlxuICAgICAgICAgICAgICAoY2xvc2VkKT1cInNlbGVjdCh2YWwsIHRydWUpXCJcbiAgICAgICAgICAgICAgW2xhYmVsXT1cIlxuICAgICAgICAgICAgICAgIHJldHVybk9iamVjdFxuICAgICAgICAgICAgICAgICAgPyB2YWxbb3B0aW9uTGFiZWxdXG4gICAgICAgICAgICAgICAgICA6ICh2YWwgfCBsYWJlbEJ5VmFsdWUgOiBvcHRpb25zIDogb3B0aW9uVmFsdWUgOiBvcHRpb25MYWJlbClcbiAgICAgICAgICAgICAgXCI+XG4gICAgICAgICAgICA8L2Nwcy1jaGlwPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPHNwYW4gY2xhc3M9XCJjcHMtc2VsZWN0LWJveC1pY29uc1wiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICpuZ0lmPVwiY2xlYXJhYmxlICYmICFkaXNhYmxlZFwiXG4gICAgICAgICAgW3N0eWxlLnZpc2liaWxpdHldPVwiXG4gICAgICAgICAgICBwZXJzaXN0ZW50Q2xlYXIgfHxcbiAgICAgICAgICAgICghcGVyc2lzdGVudENsZWFyICYmXG4gICAgICAgICAgICAgICgobXVsdGlwbGUgJiYgdmFsdWU/Lmxlbmd0aCkgfHwgKCFtdWx0aXBsZSAmJiB2YWx1ZSkpKVxuICAgICAgICAgICAgICA/ICd2aXNpYmxlJ1xuICAgICAgICAgICAgICA6ICdoaWRkZW4nXG4gICAgICAgICAgXCJcbiAgICAgICAgICBjbGFzcz1cImNwcy1zZWxlY3QtYm94LWNsZWFyLWljb25cIj5cbiAgICAgICAgICA8Y3BzLWljb25cbiAgICAgICAgICAgIGljb249XCJkZWxldGVcIlxuICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgIChjbGljayk9XCJjbGVhcihzZWxlY3RDb250YWluZXIsICRldmVudClcIj48L2Nwcy1pY29uPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY3BzLXNlbGVjdC1ib3gtY2hldnJvblwiPlxuICAgICAgICAgIDxjcHMtaWNvblxuICAgICAgICAgICAgaWNvbj1cImNoZXZyb24tZG93blwiXG4gICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgY29sb3I9XCJ0ZXh0LWRhcmtcIj48L2Nwcy1pY29uPlxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiY3BzLXNlbGVjdC1vcHRpb25zXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiY3BzLXNlbGVjdC1vcHRpb25zLW9wdGlvbiBzZWxlY3QtYWxsLW9wdGlvblwiXG4gICAgICAgIFtjbGFzcy5hbGxzZWxlY3RlZF09XCJ2YWx1ZT8ubGVuZ3RoID09PSBvcHRpb25zLmxlbmd0aFwiXG4gICAgICAgICpuZ0lmPVwibXVsdGlwbGUgJiYgc2VsZWN0QWxsXCJcbiAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUFsbCgpXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY3BzLXNlbGVjdC1vcHRpb25zLW9wdGlvbi1sZWZ0XCI+XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJtdWx0aXBsZVwiIGNsYXNzPVwiY3BzLXNlbGVjdC1vcHRpb25zLW9wdGlvbi1jaGVja1wiPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImNwcy1zZWxlY3Qtb3B0aW9ucy1vcHRpb24tbGFiZWxcIj5TZWxlY3QgYWxsPC9zcGFuPlxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJjcHMtc2VsZWN0LW9wdGlvbnMtb3B0aW9uXCJcbiAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uT3B0aW9uQ2xpY2sob3B0aW9uLCBzZWxlY3RDb250YWluZXIpXCJcbiAgICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cIlxuICAgICAgICAgIG9wdGlvblxuICAgICAgICAgICAgfCBjaGVja09wdGlvblNlbGVjdGVkXG4gICAgICAgICAgICAgIDogdmFsdWVcbiAgICAgICAgICAgICAgOiBtdWx0aXBsZVxuICAgICAgICAgICAgICA6IHJldHVybk9iamVjdFxuICAgICAgICAgICAgICA6IG9wdGlvblZhbHVlXG4gICAgICAgIFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImNwcy1zZWxlY3Qtb3B0aW9ucy1vcHRpb24tbGVmdFwiPlxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwibXVsdGlwbGVcIiBjbGFzcz1cImNwcy1zZWxlY3Qtb3B0aW9ucy1vcHRpb24tY2hlY2tcIj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcHMtc2VsZWN0LW9wdGlvbnMtb3B0aW9uLWxhYmVsXCI+e3tcbiAgICAgICAgICAgIG9wdGlvbltvcHRpb25MYWJlbF1cbiAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY3BzLXNlbGVjdC1vcHRpb25zLW9wdGlvbi1yaWdodFwiPnt7XG4gICAgICAgICAgb3B0aW9uW29wdGlvbkluZm9dXG4gICAgICAgIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGNwcy1wcm9ncmVzcy1saW5lYXJcbiAgICAgICpuZ0lmPVwibG9hZGluZ1wiXG4gICAgICBoZWlnaHQ9XCIzXCJcbiAgICAgIHJhZGl1cz1cIjRcIlxuICAgICAgb3BhY2l0eT1cIjAuM1wiXG4gICAgICBjbGFzcz1cInNlbGVjdC1wcm9ncmVzcy1iYXJcIlxuICAgICAgYmdDb2xvcj1cInRyYW5zcGFyZW50XCI+XG4gICAgPC9jcHMtcHJvZ3Jlc3MtbGluZWFyPlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cIiFlcnJvciAmJiAhaGlkZURldGFpbHNcIiBjbGFzcz1cImNwcy1zZWxlY3QtaGludFwiPnt7IGhpbnQgfX08L2Rpdj5cbiAgPGRpdiAqbmdJZj1cImVycm9yICYmICFoaWRlRGV0YWlsc1wiIGNsYXNzPVwiY3BzLXNlbGVjdC1lcnJvclwiPnt7IGVycm9yIH19PC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -121,10 +121,10 @@ export class CpsTextareaComponent {
121
121
  }
122
122
  }
123
123
  CpsTextareaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CpsTextareaComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
124
- CpsTextareaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: CpsTextareaComponent, isStandalone: true, selector: "cps-textarea", inputs: { label: "label", placeholder: "placeholder", rows: "rows", cols: "cols", autofocus: "autofocus", hint: "hint", disabled: "disabled", width: "width", clearable: "clearable", hideDetails: "hideDetails", persistentClear: "persistentClear", error: "error", resizable: "resizable", value: "value" }, outputs: { valueChanged: "valueChanged", focused: "focused", prefixIconClicked: "prefixIconClicked", blurred: "blurred" }, ngImport: i0, template: "<div class=\"cps-textarea-container\" [ngStyle]=\"{ width: cvtWidth }\">\n <label\n class=\"cps-textarea-label-text\"\n [ngClass]=\"{ 'cps-textarea-label-text-disabled': disabled }\"\n >{{ label }}</label\n >\n\n <div\n class=\"cps-textarea-wrap\"\n [ngClass]=\"{\n 'cps-textarea-wrap-error': error,\n clearable: clearable,\n 'persistent-clear': persistentClear\n }\">\n <textarea\n [cols]=\"cols\"\n [rows]=\"rows\"\n [autofocus]=\"autofocus\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [value]=\"value\"\n [ngStyle]=\"{\n width: cvtWidth,\n resize: resizable\n }\"\n (blur)=\"onBlur()\"\n (focus)=\"onFocus()\"\n (input)=\"updateValueEvent($event)\"></textarea>\n\n <span\n *ngIf=\"clearable && !disabled\"\n [style.visibility]=\"\n persistentClear || (!persistentClear && value) ? 'visible' : 'hidden'\n \"\n class=\"clear-btn\">\n <cps-icon icon=\"delete\" size=\"small\" (click)=\"clear()\"></cps-icon>\n </span>\n <div *ngIf=\"!error && !hideDetails\" class=\"cps-textarea-hint-text\">\n {{ hint }}\n </div>\n <div *ngIf=\"error && !hideDetails\" class=\"cps-textarea-error-text\">\n {{ error }}\n </div>\n </div>\n</div>\n", styles: [":host{display:flex}:host .cps-textarea-container{width:100%;gap:.2rem!important;display:flex!important;flex-direction:column!important;font-family:Source Sans Pro,sans-serif}:host .cps-textarea-container .cps-textarea-wrap{position:relative;overflow:hidden}:host .cps-textarea-container .cps-textarea-wrap:hover textarea:enabled{border:1px solid var(--cps-color-calm)}:host .cps-textarea-container .cps-textarea-wrap-error textarea{border-color:#c33!important}:host .cps-textarea-container .cps-textarea-wrap-error textarea:not(:focus){background:#fef3f2!important}:host .cps-textarea-container .cps-textarea-wrap textarea{font-family:Source Sans Pro,sans-serif;font-size:1rem;color:var(--cps-color-text-dark);background:#ffffff;padding:.375rem .75rem;line-height:1.5;min-height:38px;border:1px solid var(--cps-color-text-lightest);transition-property:border-color;transition-duration:.2s;-webkit-appearance:none;appearance:none;border-radius:4px;width:100%}:host .cps-textarea-container .cps-textarea-wrap textarea:focus{border:1px solid var(--cps-color-calm);outline:0}:host .cps-textarea-container .cps-textarea-wrap textarea:disabled{color:var(--cps-color-text-light);background-color:#f7f7f7;opacity:1;pointer-events:none}:host .cps-textarea-container .cps-textarea-wrap textarea:focus+.clear-btn cps-icon{opacity:.5}:host .cps-textarea-container .cps-textarea-wrap:hover .clear-btn cps-icon{opacity:.5}:host .cps-textarea-container .cps-textarea-wrap .clear-btn{position:absolute;top:.75rem;right:.75rem;cursor:pointer;color:var(--cps-color-calm)}:host .cps-textarea-container .cps-textarea-wrap .clear-btn cps-icon{opacity:0;transition-duration:.2s}:host .cps-textarea-container .cps-textarea-wrap .clear-btn cps-icon:hover{opacity:1!important}:host .cps-textarea-container .persistent-clear .clear-btn cps-icon{opacity:.5}:host .cps-textarea-container .clearable>textarea{padding-right:2.2rem}:host .cps-textarea-container .cps-textarea-hint-text{color:var(--cps-color-text-mild);font-size:.75rem;min-height:1.125rem;cursor:default}:host .cps-textarea-container .cps-textarea-error-text{color:#c33;font-weight:700;font-size:.75rem;min-height:1.125rem;cursor:default}:host .cps-textarea-container .cps-textarea-label-text{color:var(--cps-color-text-dark);font-size:.875rem}:host .cps-textarea-container .cps-textarea-label-text-disabled{color:var(--cps-color-text-mild)}:host .cps-textarea-container ::placeholder{font-family:Source Sans Pro,sans-serif;color:var(--cps-color-text-lightest);font-style:italic;opacity:1}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: CpsIconComponent, selector: "cps-icon", inputs: ["icon", "size", "color"] }] });
124
+ CpsTextareaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: CpsTextareaComponent, isStandalone: true, selector: "cps-textarea", inputs: { label: "label", placeholder: "placeholder", rows: "rows", cols: "cols", autofocus: "autofocus", hint: "hint", disabled: "disabled", width: "width", clearable: "clearable", hideDetails: "hideDetails", persistentClear: "persistentClear", error: "error", resizable: "resizable", value: "value" }, outputs: { valueChanged: "valueChanged", focused: "focused", prefixIconClicked: "prefixIconClicked", blurred: "blurred" }, ngImport: i0, template: "<div class=\"cps-textarea-container\" [ngStyle]=\"{ width: cvtWidth }\">\n <label\n class=\"cps-textarea-label-text\"\n [ngClass]=\"{ 'cps-textarea-label-text-disabled': disabled }\"\n >{{ label }}</label\n >\n\n <div\n class=\"cps-textarea-wrap\"\n [ngClass]=\"{\n 'cps-textarea-wrap-error': error,\n clearable: clearable,\n 'persistent-clear': persistentClear\n }\">\n <textarea\n [cols]=\"cols\"\n [rows]=\"rows\"\n [autofocus]=\"autofocus\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [value]=\"value\"\n [ngStyle]=\"{\n width: cvtWidth,\n resize: resizable\n }\"\n (blur)=\"onBlur()\"\n (focus)=\"onFocus()\"\n (input)=\"updateValueEvent($event)\"></textarea>\n\n <span\n *ngIf=\"clearable && !disabled\"\n [style.visibility]=\"\n persistentClear || (!persistentClear && value) ? 'visible' : 'hidden'\n \"\n class=\"clear-btn\">\n <cps-icon icon=\"delete\" size=\"small\" (click)=\"clear()\"></cps-icon>\n </span>\n </div>\n <div *ngIf=\"!error && !hideDetails\" class=\"cps-textarea-hint-text\">\n {{ hint }}\n </div>\n <div *ngIf=\"error && !hideDetails\" class=\"cps-textarea-error-text\">\n {{ error }}\n </div>\n</div>\n", styles: [":host{display:flex}:host .cps-textarea-container{width:100%;gap:.2rem!important;display:flex!important;flex-direction:column!important;font-family:Source Sans Pro,sans-serif}:host .cps-textarea-container .cps-textarea-wrap{position:relative;overflow:hidden}:host .cps-textarea-container .cps-textarea-wrap:hover textarea:enabled{border:1px solid var(--cps-color-calm)}:host .cps-textarea-container .cps-textarea-wrap-error textarea{border-color:#c33!important}:host .cps-textarea-container .cps-textarea-wrap-error textarea:not(:focus){background:#fef3f2!important}:host .cps-textarea-container .cps-textarea-wrap textarea{display:block;font-family:Source Sans Pro,sans-serif;font-size:1rem;color:var(--cps-color-text-dark);background:#ffffff;padding:.375rem .75rem;line-height:1.5;min-height:38px;border:1px solid var(--cps-color-text-lightest);transition-property:border-color;transition-duration:.2s;-webkit-appearance:none;appearance:none;border-radius:4px;width:100%}:host .cps-textarea-container .cps-textarea-wrap textarea:focus{border:1px solid var(--cps-color-calm);outline:0}:host .cps-textarea-container .cps-textarea-wrap textarea:disabled{color:var(--cps-color-text-light);background-color:#f7f7f7;opacity:1;pointer-events:none}:host .cps-textarea-container .cps-textarea-wrap textarea:focus+.clear-btn cps-icon{opacity:.5}:host .cps-textarea-container .cps-textarea-wrap:hover .clear-btn cps-icon{opacity:.5}:host .cps-textarea-container .cps-textarea-wrap .clear-btn{position:absolute;top:.75rem;right:.75rem;cursor:pointer;color:var(--cps-color-calm)}:host .cps-textarea-container .cps-textarea-wrap .clear-btn cps-icon{opacity:0;transition-duration:.2s}:host .cps-textarea-container .cps-textarea-wrap .clear-btn cps-icon:hover{opacity:1!important}:host .cps-textarea-container .persistent-clear .clear-btn cps-icon{opacity:.5}:host .cps-textarea-container .clearable>textarea{padding-right:2.2rem}:host .cps-textarea-container .cps-textarea-hint-text{color:var(--cps-color-text-mild);font-size:.75rem;min-height:1.125rem;cursor:default}:host .cps-textarea-container .cps-textarea-error-text{color:#c33;font-weight:700;font-size:.75rem;min-height:1.125rem;cursor:default}:host .cps-textarea-container .cps-textarea-label-text{color:var(--cps-color-text-dark);font-size:.875rem}:host .cps-textarea-container .cps-textarea-label-text-disabled{color:var(--cps-color-text-mild)}:host .cps-textarea-container ::placeholder{font-family:Source Sans Pro,sans-serif;color:var(--cps-color-text-lightest);font-style:italic;opacity:1}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: CpsIconComponent, selector: "cps-icon", inputs: ["icon", "size", "color"] }] });
125
125
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CpsTextareaComponent, decorators: [{
126
126
  type: Component,
127
- args: [{ standalone: true, selector: 'cps-textarea', imports: [CommonModule, CpsIconComponent], template: "<div class=\"cps-textarea-container\" [ngStyle]=\"{ width: cvtWidth }\">\n <label\n class=\"cps-textarea-label-text\"\n [ngClass]=\"{ 'cps-textarea-label-text-disabled': disabled }\"\n >{{ label }}</label\n >\n\n <div\n class=\"cps-textarea-wrap\"\n [ngClass]=\"{\n 'cps-textarea-wrap-error': error,\n clearable: clearable,\n 'persistent-clear': persistentClear\n }\">\n <textarea\n [cols]=\"cols\"\n [rows]=\"rows\"\n [autofocus]=\"autofocus\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [value]=\"value\"\n [ngStyle]=\"{\n width: cvtWidth,\n resize: resizable\n }\"\n (blur)=\"onBlur()\"\n (focus)=\"onFocus()\"\n (input)=\"updateValueEvent($event)\"></textarea>\n\n <span\n *ngIf=\"clearable && !disabled\"\n [style.visibility]=\"\n persistentClear || (!persistentClear && value) ? 'visible' : 'hidden'\n \"\n class=\"clear-btn\">\n <cps-icon icon=\"delete\" size=\"small\" (click)=\"clear()\"></cps-icon>\n </span>\n <div *ngIf=\"!error && !hideDetails\" class=\"cps-textarea-hint-text\">\n {{ hint }}\n </div>\n <div *ngIf=\"error && !hideDetails\" class=\"cps-textarea-error-text\">\n {{ error }}\n </div>\n </div>\n</div>\n", styles: [":host{display:flex}:host .cps-textarea-container{width:100%;gap:.2rem!important;display:flex!important;flex-direction:column!important;font-family:Source Sans Pro,sans-serif}:host .cps-textarea-container .cps-textarea-wrap{position:relative;overflow:hidden}:host .cps-textarea-container .cps-textarea-wrap:hover textarea:enabled{border:1px solid var(--cps-color-calm)}:host .cps-textarea-container .cps-textarea-wrap-error textarea{border-color:#c33!important}:host .cps-textarea-container .cps-textarea-wrap-error textarea:not(:focus){background:#fef3f2!important}:host .cps-textarea-container .cps-textarea-wrap textarea{font-family:Source Sans Pro,sans-serif;font-size:1rem;color:var(--cps-color-text-dark);background:#ffffff;padding:.375rem .75rem;line-height:1.5;min-height:38px;border:1px solid var(--cps-color-text-lightest);transition-property:border-color;transition-duration:.2s;-webkit-appearance:none;appearance:none;border-radius:4px;width:100%}:host .cps-textarea-container .cps-textarea-wrap textarea:focus{border:1px solid var(--cps-color-calm);outline:0}:host .cps-textarea-container .cps-textarea-wrap textarea:disabled{color:var(--cps-color-text-light);background-color:#f7f7f7;opacity:1;pointer-events:none}:host .cps-textarea-container .cps-textarea-wrap textarea:focus+.clear-btn cps-icon{opacity:.5}:host .cps-textarea-container .cps-textarea-wrap:hover .clear-btn cps-icon{opacity:.5}:host .cps-textarea-container .cps-textarea-wrap .clear-btn{position:absolute;top:.75rem;right:.75rem;cursor:pointer;color:var(--cps-color-calm)}:host .cps-textarea-container .cps-textarea-wrap .clear-btn cps-icon{opacity:0;transition-duration:.2s}:host .cps-textarea-container .cps-textarea-wrap .clear-btn cps-icon:hover{opacity:1!important}:host .cps-textarea-container .persistent-clear .clear-btn cps-icon{opacity:.5}:host .cps-textarea-container .clearable>textarea{padding-right:2.2rem}:host .cps-textarea-container .cps-textarea-hint-text{color:var(--cps-color-text-mild);font-size:.75rem;min-height:1.125rem;cursor:default}:host .cps-textarea-container .cps-textarea-error-text{color:#c33;font-weight:700;font-size:.75rem;min-height:1.125rem;cursor:default}:host .cps-textarea-container .cps-textarea-label-text{color:var(--cps-color-text-dark);font-size:.875rem}:host .cps-textarea-container .cps-textarea-label-text-disabled{color:var(--cps-color-text-mild)}:host .cps-textarea-container ::placeholder{font-family:Source Sans Pro,sans-serif;color:var(--cps-color-text-lightest);font-style:italic;opacity:1}\n"] }]
127
+ args: [{ standalone: true, selector: 'cps-textarea', imports: [CommonModule, CpsIconComponent], template: "<div class=\"cps-textarea-container\" [ngStyle]=\"{ width: cvtWidth }\">\n <label\n class=\"cps-textarea-label-text\"\n [ngClass]=\"{ 'cps-textarea-label-text-disabled': disabled }\"\n >{{ label }}</label\n >\n\n <div\n class=\"cps-textarea-wrap\"\n [ngClass]=\"{\n 'cps-textarea-wrap-error': error,\n clearable: clearable,\n 'persistent-clear': persistentClear\n }\">\n <textarea\n [cols]=\"cols\"\n [rows]=\"rows\"\n [autofocus]=\"autofocus\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [value]=\"value\"\n [ngStyle]=\"{\n width: cvtWidth,\n resize: resizable\n }\"\n (blur)=\"onBlur()\"\n (focus)=\"onFocus()\"\n (input)=\"updateValueEvent($event)\"></textarea>\n\n <span\n *ngIf=\"clearable && !disabled\"\n [style.visibility]=\"\n persistentClear || (!persistentClear && value) ? 'visible' : 'hidden'\n \"\n class=\"clear-btn\">\n <cps-icon icon=\"delete\" size=\"small\" (click)=\"clear()\"></cps-icon>\n </span>\n </div>\n <div *ngIf=\"!error && !hideDetails\" class=\"cps-textarea-hint-text\">\n {{ hint }}\n </div>\n <div *ngIf=\"error && !hideDetails\" class=\"cps-textarea-error-text\">\n {{ error }}\n </div>\n</div>\n", styles: [":host{display:flex}:host .cps-textarea-container{width:100%;gap:.2rem!important;display:flex!important;flex-direction:column!important;font-family:Source Sans Pro,sans-serif}:host .cps-textarea-container .cps-textarea-wrap{position:relative;overflow:hidden}:host .cps-textarea-container .cps-textarea-wrap:hover textarea:enabled{border:1px solid var(--cps-color-calm)}:host .cps-textarea-container .cps-textarea-wrap-error textarea{border-color:#c33!important}:host .cps-textarea-container .cps-textarea-wrap-error textarea:not(:focus){background:#fef3f2!important}:host .cps-textarea-container .cps-textarea-wrap textarea{display:block;font-family:Source Sans Pro,sans-serif;font-size:1rem;color:var(--cps-color-text-dark);background:#ffffff;padding:.375rem .75rem;line-height:1.5;min-height:38px;border:1px solid var(--cps-color-text-lightest);transition-property:border-color;transition-duration:.2s;-webkit-appearance:none;appearance:none;border-radius:4px;width:100%}:host .cps-textarea-container .cps-textarea-wrap textarea:focus{border:1px solid var(--cps-color-calm);outline:0}:host .cps-textarea-container .cps-textarea-wrap textarea:disabled{color:var(--cps-color-text-light);background-color:#f7f7f7;opacity:1;pointer-events:none}:host .cps-textarea-container .cps-textarea-wrap textarea:focus+.clear-btn cps-icon{opacity:.5}:host .cps-textarea-container .cps-textarea-wrap:hover .clear-btn cps-icon{opacity:.5}:host .cps-textarea-container .cps-textarea-wrap .clear-btn{position:absolute;top:.75rem;right:.75rem;cursor:pointer;color:var(--cps-color-calm)}:host .cps-textarea-container .cps-textarea-wrap .clear-btn cps-icon{opacity:0;transition-duration:.2s}:host .cps-textarea-container .cps-textarea-wrap .clear-btn cps-icon:hover{opacity:1!important}:host .cps-textarea-container .persistent-clear .clear-btn cps-icon{opacity:.5}:host .cps-textarea-container .clearable>textarea{padding-right:2.2rem}:host .cps-textarea-container .cps-textarea-hint-text{color:var(--cps-color-text-mild);font-size:.75rem;min-height:1.125rem;cursor:default}:host .cps-textarea-container .cps-textarea-error-text{color:#c33;font-weight:700;font-size:.75rem;min-height:1.125rem;cursor:default}:host .cps-textarea-container .cps-textarea-label-text{color:var(--cps-color-text-dark);font-size:.875rem}:host .cps-textarea-container .cps-textarea-label-text-disabled{color:var(--cps-color-text-mild)}:host .cps-textarea-container ::placeholder{font-family:Source Sans Pro,sans-serif;color:var(--cps-color-text-lightest);font-style:italic;opacity:1}\n"] }]
128
128
  }], ctorParameters: function () { return [{ type: i1.NgControl, decorators: [{
129
129
  type: Self
130
130
  }, {
@@ -166,4 +166,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
166
166
  }], blurred: [{
167
167
  type: Output
168
168
  }] } });
169
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BzLXRleHRhcmVhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nwcy11aS1raXQvc3JjL2xpYi9jb21wb25lbnRzL2Nwcy10ZXh0YXJlYS9jcHMtdGV4dGFyZWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLXRleHRhcmVhL2Nwcy10ZXh0YXJlYS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFDTixJQUFJLEVBQ0wsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7O0FBUy9DLE1BQU0sT0FBTyxvQkFBb0I7SUFjL0IsSUFBYSxLQUFLLENBQUMsS0FBYTtRQUM5QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQVlELFlBQzhCLFFBQW1CLEVBQ3ZDLFdBQW9DO1FBRGhCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDdkMsZ0JBQVcsR0FBWCxXQUFXLENBQXlCO1FBbENyQyxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsZ0JBQVcsR0FBRyxjQUFjLENBQUM7UUFDN0IsU0FB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LElBQUksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFdBQVcsRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ3RFLENBQUM7O2lIQTVJVSxvQkFBb0I7cUdBQXBCLG9CQUFvQixtZkN4QmpDLHF5Q0E2Q0Esd2hGRHpCWSxZQUFZLHNUQUFFLGdCQUFnQjsyRkFJN0Isb0JBQW9CO2tCQVBoQyxTQUFTO2lDQUNJLElBQUksWUFDTixjQUFjLFdBQ2YsQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLENBQUM7OzBCQXNDdEMsSUFBSTs7MEJBQUksUUFBUTtxRUFqQ1YsS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDTyxLQUFLO3NCQUFqQixLQUFLO2dCQVNJLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ0csT0FBTztzQkFBaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFNlbGZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNvbnZlcnRTaXplIH0gZnJvbSAnLi4vLi4vdXRpbHMvc2l6ZS11dGlscyc7XG5pbXBvcnQgeyBDcHNJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vY3BzLWljb24vY3BzLWljb24uY29tcG9uZW50JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ2Nwcy10ZXh0YXJlYScsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIENwc0ljb25Db21wb25lbnRdLFxuICB0ZW1wbGF0ZVVybDogJy4vY3BzLXRleHRhcmVhLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY3BzLXRleHRhcmVhLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ3BzVGV4dGFyZWFDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGxhYmVsID0gJyc7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJ1BsZWFzZSBlbnRlcic7XG4gIEBJbnB1dCgpIHJvd3MgPSA1O1xuICBASW5wdXQoKSBjb2xzID0gMjA7XG4gIEBJbnB1dCgpIGF1dG9mb2N1cyA9IGZhbHNlO1xuICBASW5wdXQoKSBoaW50ID0gJyc7XG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIHdpZHRoOiBudW1iZXIgfCBzdHJpbmcgPSAnMTAwJSc7XG4gIEBJbnB1dCgpIGNsZWFyYWJsZSA9IGZhbHNlO1xuICBASW5wdXQoKSBoaWRlRGV0YWlscyA9IGZhbHNlO1xuICBASW5wdXQoKSBwZXJzaXN0ZW50Q2xlYXIgPSBmYWxzZTtcbiAgQElucHV0KCkgZXJyb3IgPSAnJztcbiAgQElucHV0KCkgcmVzaXphYmxlOiAndmVydGljYWwnIHwgJ25vbmUnID0gJ3ZlcnRpY2FsJztcbiAgQElucHV0KCkgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICB9XG5cbiAgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG5cbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAT3V0cHV0KCkgZm9jdXNlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHByZWZpeEljb25DbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgYmx1cnJlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwcml2YXRlIF9zdGF0dXNDaGFuZ2VzU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gIHByaXZhdGUgX3ZhbHVlID0gJyc7XG5cbiAgY3Z0V2lkdGggPSAnJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAU2VsZigpIEBPcHRpb25hbCgpIHByaXZhdGUgX2NvbnRyb2w6IE5nQ29udHJvbCxcbiAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PlxuICApIHtcbiAgICBpZiAodGhpcy5fY29udHJvbCkge1xuICAgICAgdGhpcy5fY29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmN2dFdpZHRoID0gY29udmVydFNpemUodGhpcy53aWR0aCk7XG5cbiAgICB0aGlzLl9zdGF0dXNDaGFuZ2VzU3Vic2NyaXB0aW9uID0gdGhpcy5fY29udHJvbD8uc3RhdHVzQ2hhbmdlcz8uc3Vic2NyaWJlKFxuICAgICAgKCkgPT4ge1xuICAgICAgICB0aGlzLl9jaGVja0Vycm9ycygpO1xuICAgICAgfVxuICAgICkgYXMgU3Vic2NyaXB0aW9uO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fc3RhdHVzQ2hhbmdlc1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NoZWNrRXJyb3JzKCkge1xuICAgIGlmICghdGhpcy5fY29udHJvbCkgcmV0dXJuO1xuICAgIGNvbnN0IGVycm9ycyA9IHRoaXMuX2NvbnRyb2w/LmVycm9ycztcblxuICAgIGlmICghdGhpcy5fY29udHJvbD8uY29udHJvbD8udG91Y2hlZCB8fCAhZXJyb3JzKSB7XG4gICAgICB0aGlzLmVycm9yID0gJyc7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCdyZXF1aXJlZCcgaW4gZXJyb3JzKSB7XG4gICAgICB0aGlzLmVycm9yID0gJ0ZpZWxkIGlzIHJlcXVpcmVkJztcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoJ21pbmxlbmd0aCcgaW4gZXJyb3JzKSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZG90LW5vdGF0aW9uXG4gICAgICB0aGlzLmVycm9yID0gYEZpZWxkIG11c3QgY29udGFpbiBhdCBsZWFzdCAke2Vycm9yc1snbWlubGVuZ3RoJ10ucmVxdWlyZWRMZW5ndGh9IGNoYXJhY3RlcnNgO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICgnbWF4bGVuZ3RoJyBpbiBlcnJvcnMpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBkb3Qtbm90YXRpb25cbiAgICAgIHRoaXMuZXJyb3IgPSBgRmllbGQgbXVzdCBjb250YWluICR7ZXJyb3JzWydtYXhsZW5ndGgnXS5yZXF1aXJlZExlbmd0aH0gY2hhcmFjdGVycyBtYXhpbXVtYDtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBlcnJBcnIgPSBPYmplY3QudmFsdWVzKGVycm9ycyk7XG4gICAgaWYgKGVyckFyci5sZW5ndGggPCAxKSB7XG4gICAgICB0aGlzLmVycm9yID0gJyc7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnJBcnIuZmluZCgobXNnKSA9PiB0eXBlb2YgbXNnID09PSAnc3RyaW5nJyk7XG5cbiAgICB0aGlzLmVycm9yID0gbWVzc2FnZSB8fCAnVW5rbm93biBlcnJvcic7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIG9uQ2hhbmdlID0gKGV2ZW50OiBhbnkpID0+IHt9O1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgb25Ub3VjaGVkID0gKCkgPT4ge307XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cblxuICB1cGRhdGVWYWx1ZUV2ZW50KGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCB2YWx1ZSA9IGV2ZW50Py50YXJnZXQ/LnZhbHVlIHx8ICcnO1xuICAgIHRoaXMuX3VwZGF0ZVZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLndyaXRlVmFsdWUodmFsdWUpO1xuICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICAgIHRoaXMudmFsdWVDaGFuZ2VkLmVtaXQodmFsdWUpO1xuICB9XG5cbiAgY2xlYXIoKSB7XG4gICAgaWYgKHRoaXMudmFsdWUgIT09ICcnKSB0aGlzLl91cGRhdGVWYWx1ZSgnJyk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIHNldERpc2FibGVkU3RhdGUoZGlzYWJsZWQ6IGJvb2xlYW4pIHt9XG5cbiAgb25CbHVyKCkge1xuICAgIHRoaXMuX2NvbnRyb2w/LmNvbnRyb2w/Lm1hcmtBc1RvdWNoZWQoKTtcbiAgICB0aGlzLl9jaGVja0Vycm9ycygpO1xuICAgIHRoaXMuYmx1cnJlZC5lbWl0KCk7XG4gIH1cblxuICBvbkZvY3VzKCkge1xuICAgIHRoaXMuZm9jdXNlZC5lbWl0KCk7XG4gIH1cblxuICBmb2N1cygpIHtcbiAgICB0aGlzLl9lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50Py5xdWVyeVNlbGVjdG9yKCd0ZXh0YXJlYScpPy5mb2N1cygpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY3BzLXRleHRhcmVhLWNvbnRhaW5lclwiIFtuZ1N0eWxlXT1cInsgd2lkdGg6IGN2dFdpZHRoIH1cIj5cbiAgPGxhYmVsXG4gICAgY2xhc3M9XCJjcHMtdGV4dGFyZWEtbGFiZWwtdGV4dFwiXG4gICAgW25nQ2xhc3NdPVwieyAnY3BzLXRleHRhcmVhLWxhYmVsLXRleHQtZGlzYWJsZWQnOiBkaXNhYmxlZCB9XCJcbiAgICA+e3sgbGFiZWwgfX08L2xhYmVsXG4gID5cblxuICA8ZGl2XG4gICAgY2xhc3M9XCJjcHMtdGV4dGFyZWEtd3JhcFwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ2Nwcy10ZXh0YXJlYS13cmFwLWVycm9yJzogZXJyb3IsXG4gICAgICBjbGVhcmFibGU6IGNsZWFyYWJsZSxcbiAgICAgICdwZXJzaXN0ZW50LWNsZWFyJzogcGVyc2lzdGVudENsZWFyXG4gICAgfVwiPlxuICAgIDx0ZXh0YXJlYVxuICAgICAgW2NvbHNdPVwiY29sc1wiXG4gICAgICBbcm93c109XCJyb3dzXCJcbiAgICAgIFthdXRvZm9jdXNdPVwiYXV0b2ZvY3VzXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgd2lkdGg6IGN2dFdpZHRoLFxuICAgICAgICByZXNpemU6IHJlc2l6YWJsZVxuICAgICAgfVwiXG4gICAgICAoYmx1cik9XCJvbkJsdXIoKVwiXG4gICAgICAoZm9jdXMpPVwib25Gb2N1cygpXCJcbiAgICAgIChpbnB1dCk9XCJ1cGRhdGVWYWx1ZUV2ZW50KCRldmVudClcIj48L3RleHRhcmVhPlxuXG4gICAgPHNwYW5cbiAgICAgICpuZ0lmPVwiY2xlYXJhYmxlICYmICFkaXNhYmxlZFwiXG4gICAgICBbc3R5bGUudmlzaWJpbGl0eV09XCJcbiAgICAgICAgcGVyc2lzdGVudENsZWFyIHx8ICghcGVyc2lzdGVudENsZWFyICYmIHZhbHVlKSA/ICd2aXNpYmxlJyA6ICdoaWRkZW4nXG4gICAgICBcIlxuICAgICAgY2xhc3M9XCJjbGVhci1idG5cIj5cbiAgICAgIDxjcHMtaWNvbiBpY29uPVwiZGVsZXRlXCIgc2l6ZT1cInNtYWxsXCIgKGNsaWNrKT1cImNsZWFyKClcIj48L2Nwcy1pY29uPlxuICAgIDwvc3Bhbj5cbiAgICA8ZGl2ICpuZ0lmPVwiIWVycm9yICYmICFoaWRlRGV0YWlsc1wiIGNsYXNzPVwiY3BzLXRleHRhcmVhLWhpbnQtdGV4dFwiPlxuICAgICAge3sgaGludCB9fVxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJlcnJvciAmJiAhaGlkZURldGFpbHNcIiBjbGFzcz1cImNwcy10ZXh0YXJlYS1lcnJvci10ZXh0XCI+XG4gICAgICB7eyBlcnJvciB9fVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
169
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BzLXRleHRhcmVhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nwcy11aS1raXQvc3JjL2xpYi9jb21wb25lbnRzL2Nwcy10ZXh0YXJlYS9jcHMtdGV4dGFyZWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLXRleHRhcmVhL2Nwcy10ZXh0YXJlYS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFDTixJQUFJLEVBQ0wsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7O0FBUy9DLE1BQU0sT0FBTyxvQkFBb0I7SUFjL0IsSUFBYSxLQUFLLENBQUMsS0FBYTtRQUM5QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQVlELFlBQzhCLFFBQW1CLEVBQ3ZDLFdBQW9DO1FBRGhCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDdkMsZ0JBQVcsR0FBWCxXQUFXLENBQXlCO1FBbENyQyxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsZ0JBQVcsR0FBRyxjQUFjLENBQUM7UUFDN0IsU0FB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LElBQUksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFdBQVcsRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ3RFLENBQUM7O2lIQTVJVSxvQkFBb0I7cUdBQXBCLG9CQUFvQixtZkN4QmpDLHl4Q0E2Q0Esc2lGRHpCWSxZQUFZLHNUQUFFLGdCQUFnQjsyRkFJN0Isb0JBQW9CO2tCQVBoQyxTQUFTO2lDQUNJLElBQUksWUFDTixjQUFjLFdBQ2YsQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLENBQUM7OzBCQXNDdEMsSUFBSTs7MEJBQUksUUFBUTtxRUFqQ1YsS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDTyxLQUFLO3NCQUFqQixLQUFLO2dCQVNJLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ0csT0FBTztzQkFBaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFNlbGZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNvbnZlcnRTaXplIH0gZnJvbSAnLi4vLi4vdXRpbHMvc2l6ZS11dGlscyc7XG5pbXBvcnQgeyBDcHNJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vY3BzLWljb24vY3BzLWljb24uY29tcG9uZW50JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ2Nwcy10ZXh0YXJlYScsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIENwc0ljb25Db21wb25lbnRdLFxuICB0ZW1wbGF0ZVVybDogJy4vY3BzLXRleHRhcmVhLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY3BzLXRleHRhcmVhLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ3BzVGV4dGFyZWFDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGxhYmVsID0gJyc7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJ1BsZWFzZSBlbnRlcic7XG4gIEBJbnB1dCgpIHJvd3MgPSA1O1xuICBASW5wdXQoKSBjb2xzID0gMjA7XG4gIEBJbnB1dCgpIGF1dG9mb2N1cyA9IGZhbHNlO1xuICBASW5wdXQoKSBoaW50ID0gJyc7XG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIHdpZHRoOiBudW1iZXIgfCBzdHJpbmcgPSAnMTAwJSc7XG4gIEBJbnB1dCgpIGNsZWFyYWJsZSA9IGZhbHNlO1xuICBASW5wdXQoKSBoaWRlRGV0YWlscyA9IGZhbHNlO1xuICBASW5wdXQoKSBwZXJzaXN0ZW50Q2xlYXIgPSBmYWxzZTtcbiAgQElucHV0KCkgZXJyb3IgPSAnJztcbiAgQElucHV0KCkgcmVzaXphYmxlOiAndmVydGljYWwnIHwgJ25vbmUnID0gJ3ZlcnRpY2FsJztcbiAgQElucHV0KCkgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICB9XG5cbiAgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG5cbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAT3V0cHV0KCkgZm9jdXNlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHByZWZpeEljb25DbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgYmx1cnJlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwcml2YXRlIF9zdGF0dXNDaGFuZ2VzU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gIHByaXZhdGUgX3ZhbHVlID0gJyc7XG5cbiAgY3Z0V2lkdGggPSAnJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAU2VsZigpIEBPcHRpb25hbCgpIHByaXZhdGUgX2NvbnRyb2w6IE5nQ29udHJvbCxcbiAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PlxuICApIHtcbiAgICBpZiAodGhpcy5fY29udHJvbCkge1xuICAgICAgdGhpcy5fY29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmN2dFdpZHRoID0gY29udmVydFNpemUodGhpcy53aWR0aCk7XG5cbiAgICB0aGlzLl9zdGF0dXNDaGFuZ2VzU3Vic2NyaXB0aW9uID0gdGhpcy5fY29udHJvbD8uc3RhdHVzQ2hhbmdlcz8uc3Vic2NyaWJlKFxuICAgICAgKCkgPT4ge1xuICAgICAgICB0aGlzLl9jaGVja0Vycm9ycygpO1xuICAgICAgfVxuICAgICkgYXMgU3Vic2NyaXB0aW9uO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fc3RhdHVzQ2hhbmdlc1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NoZWNrRXJyb3JzKCkge1xuICAgIGlmICghdGhpcy5fY29udHJvbCkgcmV0dXJuO1xuICAgIGNvbnN0IGVycm9ycyA9IHRoaXMuX2NvbnRyb2w/LmVycm9ycztcblxuICAgIGlmICghdGhpcy5fY29udHJvbD8uY29udHJvbD8udG91Y2hlZCB8fCAhZXJyb3JzKSB7XG4gICAgICB0aGlzLmVycm9yID0gJyc7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCdyZXF1aXJlZCcgaW4gZXJyb3JzKSB7XG4gICAgICB0aGlzLmVycm9yID0gJ0ZpZWxkIGlzIHJlcXVpcmVkJztcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoJ21pbmxlbmd0aCcgaW4gZXJyb3JzKSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZG90LW5vdGF0aW9uXG4gICAgICB0aGlzLmVycm9yID0gYEZpZWxkIG11c3QgY29udGFpbiBhdCBsZWFzdCAke2Vycm9yc1snbWlubGVuZ3RoJ10ucmVxdWlyZWRMZW5ndGh9IGNoYXJhY3RlcnNgO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICgnbWF4bGVuZ3RoJyBpbiBlcnJvcnMpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBkb3Qtbm90YXRpb25cbiAgICAgIHRoaXMuZXJyb3IgPSBgRmllbGQgbXVzdCBjb250YWluICR7ZXJyb3JzWydtYXhsZW5ndGgnXS5yZXF1aXJlZExlbmd0aH0gY2hhcmFjdGVycyBtYXhpbXVtYDtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBlcnJBcnIgPSBPYmplY3QudmFsdWVzKGVycm9ycyk7XG4gICAgaWYgKGVyckFyci5sZW5ndGggPCAxKSB7XG4gICAgICB0aGlzLmVycm9yID0gJyc7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnJBcnIuZmluZCgobXNnKSA9PiB0eXBlb2YgbXNnID09PSAnc3RyaW5nJyk7XG5cbiAgICB0aGlzLmVycm9yID0gbWVzc2FnZSB8fCAnVW5rbm93biBlcnJvcic7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIG9uQ2hhbmdlID0gKGV2ZW50OiBhbnkpID0+IHt9O1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgb25Ub3VjaGVkID0gKCkgPT4ge307XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cblxuICB1cGRhdGVWYWx1ZUV2ZW50KGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCB2YWx1ZSA9IGV2ZW50Py50YXJnZXQ/LnZhbHVlIHx8ICcnO1xuICAgIHRoaXMuX3VwZGF0ZVZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLndyaXRlVmFsdWUodmFsdWUpO1xuICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICAgIHRoaXMudmFsdWVDaGFuZ2VkLmVtaXQodmFsdWUpO1xuICB9XG5cbiAgY2xlYXIoKSB7XG4gICAgaWYgKHRoaXMudmFsdWUgIT09ICcnKSB0aGlzLl91cGRhdGVWYWx1ZSgnJyk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIHNldERpc2FibGVkU3RhdGUoZGlzYWJsZWQ6IGJvb2xlYW4pIHt9XG5cbiAgb25CbHVyKCkge1xuICAgIHRoaXMuX2NvbnRyb2w/LmNvbnRyb2w/Lm1hcmtBc1RvdWNoZWQoKTtcbiAgICB0aGlzLl9jaGVja0Vycm9ycygpO1xuICAgIHRoaXMuYmx1cnJlZC5lbWl0KCk7XG4gIH1cblxuICBvbkZvY3VzKCkge1xuICAgIHRoaXMuZm9jdXNlZC5lbWl0KCk7XG4gIH1cblxuICBmb2N1cygpIHtcbiAgICB0aGlzLl9lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50Py5xdWVyeVNlbGVjdG9yKCd0ZXh0YXJlYScpPy5mb2N1cygpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY3BzLXRleHRhcmVhLWNvbnRhaW5lclwiIFtuZ1N0eWxlXT1cInsgd2lkdGg6IGN2dFdpZHRoIH1cIj5cbiAgPGxhYmVsXG4gICAgY2xhc3M9XCJjcHMtdGV4dGFyZWEtbGFiZWwtdGV4dFwiXG4gICAgW25nQ2xhc3NdPVwieyAnY3BzLXRleHRhcmVhLWxhYmVsLXRleHQtZGlzYWJsZWQnOiBkaXNhYmxlZCB9XCJcbiAgICA+e3sgbGFiZWwgfX08L2xhYmVsXG4gID5cblxuICA8ZGl2XG4gICAgY2xhc3M9XCJjcHMtdGV4dGFyZWEtd3JhcFwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ2Nwcy10ZXh0YXJlYS13cmFwLWVycm9yJzogZXJyb3IsXG4gICAgICBjbGVhcmFibGU6IGNsZWFyYWJsZSxcbiAgICAgICdwZXJzaXN0ZW50LWNsZWFyJzogcGVyc2lzdGVudENsZWFyXG4gICAgfVwiPlxuICAgIDx0ZXh0YXJlYVxuICAgICAgW2NvbHNdPVwiY29sc1wiXG4gICAgICBbcm93c109XCJyb3dzXCJcbiAgICAgIFthdXRvZm9jdXNdPVwiYXV0b2ZvY3VzXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgd2lkdGg6IGN2dFdpZHRoLFxuICAgICAgICByZXNpemU6IHJlc2l6YWJsZVxuICAgICAgfVwiXG4gICAgICAoYmx1cik9XCJvbkJsdXIoKVwiXG4gICAgICAoZm9jdXMpPVwib25Gb2N1cygpXCJcbiAgICAgIChpbnB1dCk9XCJ1cGRhdGVWYWx1ZUV2ZW50KCRldmVudClcIj48L3RleHRhcmVhPlxuXG4gICAgPHNwYW5cbiAgICAgICpuZ0lmPVwiY2xlYXJhYmxlICYmICFkaXNhYmxlZFwiXG4gICAgICBbc3R5bGUudmlzaWJpbGl0eV09XCJcbiAgICAgICAgcGVyc2lzdGVudENsZWFyIHx8ICghcGVyc2lzdGVudENsZWFyICYmIHZhbHVlKSA/ICd2aXNpYmxlJyA6ICdoaWRkZW4nXG4gICAgICBcIlxuICAgICAgY2xhc3M9XCJjbGVhci1idG5cIj5cbiAgICAgIDxjcHMtaWNvbiBpY29uPVwiZGVsZXRlXCIgc2l6ZT1cInNtYWxsXCIgKGNsaWNrKT1cImNsZWFyKClcIj48L2Nwcy1pY29uPlxuICAgIDwvc3Bhbj5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCIhZXJyb3IgJiYgIWhpZGVEZXRhaWxzXCIgY2xhc3M9XCJjcHMtdGV4dGFyZWEtaGludC10ZXh0XCI+XG4gICAge3sgaGludCB9fVxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cImVycm9yICYmICFoaWRlRGV0YWlsc1wiIGNsYXNzPVwiY3BzLXRleHRhcmVhLWVycm9yLXRleHRcIj5cbiAgICB7eyBlcnJvciB9fVxuICA8L2Rpdj5cbjwvZGl2PlxuIl19