barsa-sap-ui 1.0.360 → 1.0.361

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.
@@ -82,12 +82,13 @@ export class BarsaTinyemceComponent extends BaseComponent {
82
82
  this.tinyMCEConfig.inline = false;
83
83
  this.tinyMCEConfig.menubar = !this.IsInline;
84
84
  this.tinyMCEConfig.theme_advanced_resizing = true;
85
- this.tinyMCEConfig.toolbar_mode = 'floating';
86
- this.tinyMCEConfig.toolbar_location = 'bottom';
85
+ this.tinyMCEConfig.toolbar_location = 'top';
86
+ // this.tinyMCEConfig.toolbar_mode = 'floating';
87
+ // this.tinyMCEConfig.toolbar_sticky = true;
88
+ // this.tinyMCEConfig.toolbar_sticky_offset = 100;
87
89
  this.tinyMCEConfig.font_family_formats =
88
90
  'BarsaFont=BarsaFont;Arial=arial,helvetica,sans-serif; Courier New=courier new,courier,monospace;';
89
91
  this.tinyMCEConfig.font_size_formats = '8pt 10pt 12pt 14pt 18pt 24pt 36pt';
90
- this.tinyMCEConfig.toolbar_mode = 'scrolling';
91
92
  this.tinyMCEConfig.plugins = [
92
93
  'advlist',
93
94
  'anchor',
@@ -123,6 +124,14 @@ export class BarsaTinyemceComponent extends BaseComponent {
123
124
  `defaultVerbs barsaImage | insert | forecolor backcolor fontfamily fontsize | bullist numlist outdent indent | removeformat` +
124
125
  ` | undo redo | copy cut paste | blocks | bold italic | alignleft aligncenter alignright alignjustify ltr rtl`
125
126
  ];
127
+ if (this.IsInline) {
128
+ this.tinyMCEConfig.toolbar = [
129
+ `defaultVerbs barsaImage | insert | forecolor backcolor fontfamily fontsize | bullist numlist` +
130
+ ` | undo redo | bold italic | ltr rtl`
131
+ ];
132
+ }
133
+ this.tinyMCEConfig.quickbars_selection_toolbar =
134
+ 'bold italic fontsize | forecolor backcolor|defaultVerbs barsaImage';
126
135
  const tinymceSettingsGlobal = window.tinymceSettings;
127
136
  let tinymceSettings = BarsaApi.Common.Util.TryGetValue(this.Setting, 'JsonExtraProp.tinymceSettings');
128
137
  tinymceSettings = BarsaApi.Common.Merger.Merge(tinymceSettingsGlobal, tinymceSettings);
@@ -409,4 +418,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
409
418
  }], tinyInit: [{
410
419
  type: Output
411
420
  }] } });
412
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtdGlueWVtY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtdGlueWVtY2UvYmFyc2EtdGlueWVtY2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtdGlueWVtY2UvYmFyc2EtdGlueWVtY2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUN2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBRU4sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBYyxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUU3RCxPQUFPLEVBQ0gsYUFBYSxFQUNiLFFBQVEsRUFDUixXQUFXLEVBQ1gsVUFBVSxFQUNWLGFBQWEsRUFFaEIsTUFBTSxzQkFBc0IsQ0FBQzs7OztBQWE5QixNQUFNLE9BQU8sc0JBQXVCLFNBQVEsYUFBYTtJQW1CckQsWUFBc0IsY0FBNkIsRUFBWSxHQUFlO1FBQzFFLEtBQUssRUFBRSxDQUFDO1FBRFUsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFBWSxRQUFHLEdBQUgsR0FBRyxDQUFZO1FBWnBFLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUN0QyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN4QyxlQUFVLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDeEMsa0JBQWEsR0FBUSxFQUFFLENBQUM7UUFpWmhCLGtCQUFhLEdBQUcsR0FBUyxFQUFFO1lBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUM5QiwyQ0FBMkM7WUFDM0MseURBQXlE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S0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRU8sZUFBZSxDQUFDLEVBQU87UUFDM0IsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDLGFBQWEsRUFBRSxlQUFlLEVBQUUsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RFLElBQUksSUFBSSxFQUFFO1lBQ04sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1NBQ2xDO0lBQ0wsQ0FBQzs7bUhBOWFRLHNCQUFzQjt1R0FBdEIsc0JBQXNCLDBPQUZwQixDQUFDLGFBQWEsQ0FBQyw2S0NsQzlCLGlZQVNBOzJGRDJCYSxzQkFBc0I7a0JBUGxDLFNBQVM7K0JBQ0ksb0JBQW9CLG1CQUdiLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxhQUFhLENBQUM7NkhBR0gsU0FBUztzQkFBL0IsU0FBUzt1QkFBQyxVQUFVO2dCQUNaLE9BQU87c0JBQWYsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZpbGVVcGxvYWRlckNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBjb25jYXRNYXAsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gICAgQmFzZUNvbXBvbmVudCxcbiAgICBCYXJzYUFwaSxcbiAgICBnZXRVbmlxdWVJZCxcbiAgICBpc0Z1bmN0aW9uLFxuICAgIFVwbG9hZFNlcnZpY2UsXG4gICAgR2VuZXJhbENvbnRyb2xJbmZvTW9kZWxcbn0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuXG5kZWNsYXJlIGNvbnN0IHdpbmRvdzogYW55O1xuZGVjbGFyZSBjb25zdCB0aW55bWNlOiBhbnk7XG5kZWNsYXJlIGNvbnN0IGhlYWQ6IGFueTtcbmRlY2xhcmUgY29uc3QgJDogYW55O1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdic3UtYmFyc2EtdGlueWVtY2UnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYXJzYS10aW55ZW1jZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYmFyc2EtdGlueWVtY2UuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtVcGxvYWRTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBCYXJzYVRpbnllbWNlQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcbiAgICBAVmlld0NoaWxkKCd1cGxvYWRlcicpIF91cGxvYWRlcjogRmlsZVVwbG9hZGVyQ29tcG9uZW50O1xuICAgIEBJbnB1dCgpIFNldHRpbmc6IEdlbmVyYWxDb250cm9sSW5mb01vZGVsO1xuICAgIEBJbnB1dCgpIGlzUmVhZG9ubHk6IGJvb2xlYW47XG4gICAgQElucHV0KCkgdmFsdWU6IGFueTtcbiAgICBASW5wdXQoKSBJc0lubGluZTogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBkZWZhdWx0VmVyYnM6IHsgVGl0bGU6IHN0cmluZzsgSHRtbDogc3RyaW5nIH1bXTtcbiAgICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgdGlueUluaXQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgdGlueUhvc3RJZCA9IHRoaXMuX2dlbmVyYXRlVGlueUhvc3RJZCgpO1xuICAgIHRpbnlNQ0VDb25maWc6IGFueSA9IHt9O1xuICAgIGVkaXRvcjogYW55O1xuICAgIHd5c2l3eWdJbnRpYWxpemVkOiBib29sZWFuO1xuICAgIGludGlhbGl6YXRpb25JblByb2dyZXNzOiBib29sZWFuO1xuICAgIGVkaXRvclZhbHVlOiBzdHJpbmc7XG5cbiAgICBpZnJhbUJvZHlJbm5lckh0bWw6IHN0cmluZztcbiAgICBoZWlnaHQ6IG51bWJlcjtcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfdXBsb2FkU2VydmljZTogVXBsb2FkU2VydmljZSwgcHJvdGVjdGVkIF9lbDogRWxlbWVudFJlZikge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cbiAgICBuZ09uQ2hhbmdlcyhzaW1wbGVDaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25DaGFuZ2VzKHNpbXBsZUNoYW5nZXMpO1xuICAgICAgICBpZiAoc2ltcGxlQ2hhbmdlcy52YWx1ZSAmJiAhc2ltcGxlQ2hhbmdlcy52YWx1ZS5maXJzdENoYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5zZXRWYWx1ZShzaW1wbGVDaGFuZ2VzLnZhbHVlLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNpbXBsZUNoYW5nZXMuZGlzYWJsZSAmJiAhc2ltcGxlQ2hhbmdlcy5kaXNhYmxlLmZpcnN0Q2hhbmdlKSB7XG4gICAgICAgICAgICBjb25zdCBkaXNiYWxlID0gc2ltcGxlQ2hhbmdlcy5kaXNhYmxlLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgICAgIGlmIChkaXNiYWxlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXREaXNhYmxlKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0RW5hYmxlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNpbXBsZUNoYW5nZXMucmVhZG9ubHkgJiYgIXNpbXBsZUNoYW5nZXMucmVhZG9ubHkuZmlyc3RDaGFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0UmVhZE9ubHkoc2ltcGxlQ2hhbmdlcy5yZWFkb25seS5jdXJyZW50VmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLmhlaWdodCA9ICh0aGlzLl9lbC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5jbGllbnRIZWlnaHQ7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcbiAgICAgICAgdGhpcy5sb2FkVGlueU1jZSgpO1xuICAgIH1cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5kZXN0cm95VGlueW1jZSgpO1xuICAgIH1cblxuICAgIG9uRmlsZVNlbGVjdGlvbihmaWxlczogRmlsZVtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBsb2FkRmlsZShmaWxlcykucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICBsb2FkVGlueU1jZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLlNldHRpbmcuSXNIdG1sVmlld2VyKSB7XG4gICAgICAgICAgICBoZWFkLmxvYWQoWydMaWIvdGlueW1jZS90aW55bWNlLm1pbi5qcyddLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcmVwYXJlKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGluaXRpbGl6ZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMudGlueU1DRUNvbmZpZy5zZXR1cCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudGlueU1DRUNvbmZpZy5oZWlnaHQgPSAnMTAwJSc7XG4gICAgICAgIHRoaXMudGlueU1DRUNvbmZpZy53aWR0aCA9ICcxMDAlJztcbiAgICAgICAgdGhpcy50aW55TUNFQ29uZmlnLnNlbGVjdG9yID0gJyMnICsgdGhpcy50aW55SG9zdElkO1xuICAgICAgICB0aGlzLnRpbnlNQ0VDb25maWcucGxhY2Vob2xkZXIgPSB0aGlzLlNldHRpbmcuQ29udHJvbEZpZWxkQ2FwdGlvblRyYW5zbGF0ZWQ7XG4gICAgICAgIHRoaXMudGlueU1DRUNvbmZpZy5jb250ZW50X2NzcyA9ICdhc3NldHMvUmVzb3VyY2VzL2ZvbnRzL0lyYW4uY3NzJztcbiAgICAgICAgdGhpcy50aW55TUNFQ29uZmlnLmRpcmVjdGlvbmFsaXR5ID0gJ3J0bCc7XG4gICAgICAgIHRoaXMudGlueU1DRUNvbmZpZy5sYW5ndWFnZSA9ICdmYV9JUic7XG4gICAgICAgIHRoaXMudGlueU1DRUNvbmZpZy5wcm9tb3Rpb24gPSBmYWxzZTtcbiAgICAgICAgdGhpcy50aW55TUNFQ29uZmlnLnBhc3RlX2RhdGFfaW1hZ2VzID0gdHJ1ZTtcbiAgICAgICAgdGhpcy50aW55TUNFQ29uZmlnLmRlZmF1bHRGb250TmFtZSA9ICdCYXJzYUZvbnQnO1xuICAgICAgICB0aGlzLnRpbnlNQ0VDb25maWcuZGVmYXVsdEZvbnRTaXplID0gJzEycHgnO1xuICAgICAgICB0aGlzLnRpbnlNQ0VDb25maWcuc3RhdHVzYmFyID0gZmFsc2U7XG4gICAgICAgIHRoaXMudGlueU1DRUNvbmZpZy5pbmxpbmUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy50aW55TUNFQ29uZmlnLm1lbnViYXIgPSAhdGhpcy5Jc0lubGluZTtcbiAgICAgICAgdGhpcy50aW55TUNFQ29uZmlnLnRoZW1lX2FkdmFuY2VkX3Jlc2l6aW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy50aW55TUNFQ29uZmlnLnRvb2xiYXJfbW9kZSA9ICdmbG9hdGluZyc7XG4gICAgICAgIHRoaXMudGlueU1DRUNvbmZpZy50b29sYmFyX2xvY2F0aW9uID0gJ2JvdHRvbSc7XG4gICAgICAgIHRoaXMudGlueU1DRUNvbmZpZy5mb250X2ZhbWlseV9mb3JtYXRzID1cbiAgICAgICAgICAgICdCYXJzYUZvbnQ9QmFyc2FGb250O0FyaWFsPWFyaWFsLGhlbHZldGljYSxzYW5zLXNlcmlmOyBDb3VyaWVyIE5ldz1jb3VyaWVyIG5ldyxjb3VyaWVyLG1vbm9zcGFjZTsnO1xuICAgICAgICB0aGlzLnRpbnlNQ0VDb25maWcuZm9udF9zaXplX2Zvcm1hdHMgPSAnOHB0IDEwcHQgMTJwdCAxNHB0IDE4cHQgMjRwdCAzNnB0JztcbiAgICAgICAgdGhpcy50aW55TUNFQ29uZmlnLnRvb2xiYXJfbW9kZSA9ICdzY3JvbGxpbmcnO1xuICAgICAgICB0aGlzLnRpbnlNQ0VDb25maWcucGx1Z2lucyA9IFtcbiAgICAgICAgICAgICdhZHZsaXN0JyxcbiAgICAgICAgICAgICdhbmNob3InLFxuICAgICAgICAgICAgJ2F1dG9saW5rJyxcbiAgICAgICAgICAgICdhdXRvc2F2ZScsXG4gICAgICAgICAgICAnY2hhcm1hcCcsXG4gICAgICAgICAgICAnY29kZScsXG4gICAgICAgICAgICAnY29kZXNhbXBsZScsXG4gICAgICAgICAgICAnZGlyZWN0aW9uYWxpdHknLFxuICAgICAgICAgICAgJ2Vtb3RpY29ucycsXG4gICAgICAgICAgICAnZnVsbHNjcmVlbicsXG4gICAgICAgICAgICAnaGVscCcsXG4gICAgICAgICAgICAnaW1hZ2UnLFxuICAgICAgICAgICAgJ2ltcG9ydGNzcycsXG4gICAgICAgICAgICAnaW5zZXJ0ZGF0ZXRpbWUnLFxuICAgICAgICAgICAgJ2xpbmsnLFxuICAgICAgICAgICAgJ2xpc3RzJyxcbiAgICAgICAgICAgICdtZWRpYScsXG4gICAgICAgICAgICAnbm9uYnJlYWtpbmcnLFxuICAgICAgICAgICAgJ3BhZ2VicmVhaycsXG4gICAgICAgICAgICAncHJldmlldycsXG4gICAgICAgICAgICAncXVpY2tiYXJzJyxcbiAgICAgICAgICAgICdzYXZlJyxcbiAgICAgICAgICAgICdzZWFyY2hyZXBsYWNlJyxcbiAgICAgICAgICAgICd0YWJsZScsXG4gICAgICAgICAgICAndGVtcGxhdGUnLFxuICAgICAgICAgICAgJ3Zpc3VhbGJsb2NrcycsXG4gICAgICAgICAgICAndmlzdWFsY2hhcnMnLFxuICAgICAgICAgICAgJ3dvcmRjb3VudCcsXG4gICAgICAgICAgICAnYXV0b3Jlc2l6ZSdcbiAgICAgICAgXTtcbiAgICAgICAgdGhpcy50aW55TUNFQ29uZmlnLnRvb2xiYXIgPSBbXG4gICAgICAgICAgICBgZGVmYXVsdFZlcmJzIGJhcnNhSW1hZ2UgfCBpbnNlcnQgfCBmb3JlY29sb3IgYmFja2NvbG9yIGZvbnRmYW1pbHkgZm9udHNpemUgfCBidWxsaXN0IG51bWxpc3Qgb3V0ZGVudCBpbmRlbnQgfCByZW1vdmVmb3JtYXRgICtcbiAgICAgICAgICAgICAgICBgIHwgdW5kbyByZWRvIHwgY29weSBjdXQgcGFzdGUgfCBibG9ja3MgfCBib2xkIGl0YWxpYyB8IGFsaWdubGVmdCBhbGlnbmNlbnRlciBhbGlnbnJpZ2h0IGFsaWduanVzdGlmeSBsdHIgcnRsYFxuICAgICAgICBdO1xuXG4gICAgICAgIGNvbnN0IHRpbnltY2VTZXR0aW5nc0dsb2JhbCA9IHdpbmRvdy50aW55bWNlU2V0dGluZ3M7XG4gICAgICAgIGxldCB0aW55bWNlU2V0dGluZ3MgPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZSh0aGlzLlNldHRpbmcsICdKc29uRXh0cmFQcm9wLnRpbnltY2VTZXR0aW5ncycpO1xuICAgICAgICB0aW55bWNlU2V0dGluZ3MgPSBCYXJzYUFwaS5Db21tb24uTWVyZ2VyLk1lcmdlKHRpbnltY2VTZXR0aW5nc0dsb2JhbCwgdGlueW1jZVNldHRpbmdzKTtcbiAgICAgICAgaWYgKCF0aW55bWNlU2V0dGluZ3MgJiYgQXJyYXkuaXNBcnJheSh0aW55bWNlU2V0dGluZ3MpKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGlueW1jZVNldHRpbmdzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50aW55TUNFQ29uZmlnW2l0ZW0ua2V5XSA9IGl0ZW0udmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pc1JlYWRvbmx5KSB7XG4gICAgICAgICAgICB0aGlzLnRpbnlNQ0VDb25maWcubWVudWJhciA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy50aW55TUNFQ29uZmlnLnN0YXR1c2JhciA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy50aW55TUNFQ29uZmlnLnBsdWdpbnMgPSBbJ2F1dG9yZXNpemUnXTtcbiAgICAgICAgICAgIC8vIHRoaXMudGlueU1DRUNvbmZpZy5wbHVnaW5zID0gW107XG4gICAgICAgICAgICB0aGlzLnRpbnlNQ0VDb25maWcudG9vbGJhciA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHVzZXJTZXR1cDogKGVkaXRvcjogYW55KSA9PiB2b2lkO1xuXG4gICAgICAgIGlmICh0aGlzLnRpbnlNQ0VDb25maWcuc2V0dXApIHtcbiAgICAgICAgICAgIHVzZXJTZXR1cCA9IHRoaXMudGlueU1DRUNvbmZpZy5zZXR1cDtcbiAgICAgICAgfVxuICAgICAgICBsZXQgZGVmYXVsdFZlcmJzTWVudTogYW55ID0gW107XG5cbiAgICAgICAgLy8gQkVHSU46IHNldHVwXG4gICAgICAgIHRoaXMudGlueU1DRUNvbmZpZy5zZXR1cCA9IChlZCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5lZGl0b3IgPSBlZDtcbiAgICAgICAgICAgIGlmICghdGhpcy5pc1JlYWRvbmx5KSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGVmYXVsdFZlcmJzKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHRWZXJic01lbnUgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZWZhdWx0VmVyYnMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdFZlcmJzTWVudS5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogaXRlbS5IdG1sLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdtZW51aXRlbScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogaXRlbS5UaXRsZSB8fCBpdGVtLkh0bWwucmVwbGFjZSgvPGJyXFxzKlxcLz8+L2dpLCAnICcpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQWN0aW9uOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVkLmV4ZWNDb21tYW5kKCdtY2VJbnNlcnRSYXdIVE1MJywgZmFsc2UsIGl0ZW0uSHRtbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVkLmluc2VydENvbnRlbnQoaXRlbS5IdG1sLCB7IGZvcm1hdDogJ3JhdycgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlZC51aS5yZWdpc3RyeS5hZGRTcGxpdEJ1dHRvbignYmFyc2FJbWFnZScsIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dDogJ2luc2VydCcsXG4gICAgICAgICAgICAgICAgICAgIGljb246ICdpbWFnZScsXG4gICAgICAgICAgICAgICAgICAgIHRvb2x0aXA6ICdJbnNlcnQgSW1hZ2UgQXMgQmFzZTY0JyxcbiAgICAgICAgICAgICAgICAgICAgb25BY3Rpb246ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEJhcnNhQXBpLkNvbW1vbi5Bc3luYy5XYXRlcmZhbGwoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1RpbmVtY2UuRW1iZWRJbWFnZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVuRmlsZURpYWxvZzogdGhpcy5TaG93T3BlbkZpbGVEaWFsb2cuYmluZCh0aGlzKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zZXJ0QmFzZTY0OiB0aGlzLkluc2VydEJhc2U2NC5iaW5kKHRoaXMpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXJyLCByZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQmFyc2FBcGkuQ29tbW9uLkFzeW5jLkZpbmFsaXplKGVyciwgcmVzdWx0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBvbkl0ZW1BY3Rpb246ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEJhcnNhQXBpLkNvbW1vbi5Bc3luYy5XYXRlcmZhbGwoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1RpbmVtY2UuVXBsb2FkVG9EYXRhYmFzZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVuRmlsZURpYWxvZzogdGhpcy5TaG93VXBsb2FkV2luZG93LmJpbmQodGhpcylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlcnIsIHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCYXJzYUFwaS5Db21tb24uQXN5bmMuRmluYWxpemUoZXJyLCByZXN1bHQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGZldGNoOiAoY2FsbGJhY2spID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW1zID0gW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2Nob2ljZWl0ZW0nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiAndXBsb2FkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogJ2ltYWdlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9vbHRpcDogJ1VwbG9hZCBJbWFnZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiAndXBsb2FkJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhpdGVtcyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIGVkLnVpLnJlZ2lzdHJ5LmFkZE1lbnVCdXR0b24oJ2RlZmF1bHRWZXJicycsIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dDogJ9i52KjYp9ix2KrZh9in24wg2b7bjNi0INmB2LHYticsXG4gICAgICAgICAgICAgICAgICAgIGZldGNoOiAoY2FsbGJhY2spID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKGRlZmF1bHRWZXJic01lbnUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKGlzRnVuY3Rpb24od2luZG93LnRpbnltY2VTZXR1cCkpIHtcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LnRpbnltY2VTZXR1cC5jYWxsKHRoaXMsIHRoaXMsIGVkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXQgaGFzSW5pdCA9IGZhbHNlO1xuICAgICAgICAgICAgZWQub24oJ2luaXQnLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy53eXNpd3lnSW50aWFsaXplZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnRpYWxpemF0aW9uSW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdGhpcy52YWx1ZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRWYWx1ZSh0aGlzLnZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudGlueU1DRUNvbmZpZy5kZWZhdWx0Rm9udE5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgZWQuZXhlY0NvbW1hbmQoJ0ZvbnROYW1lJywgZmFsc2UsIHRoaXMudGlueU1DRUNvbmZpZy5kZWZhdWx0Rm9udE5hbWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodGhpcy50aW55TUNFQ29uZmlnLmRlZmF1bHRGb250U2l6ZSkge1xuICAgICAgICAgICAgICAgICAgICBlZC5leGVjQ29tbWFuZCgnRm9udFNpemUnLCBmYWxzZSwgdGhpcy50aW55TUNFQ29uZmlnLmRlZmF1bHRGb250U2l6ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzUmVhZG9ubHkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRSZWFkT25seSh0aGlzLmlzUmVhZG9ubHkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBUaGlzIHBpZWNlIG9mIGNvZGUgc29sdmVzIHRoZSBwcm9ibGVtIG9mIGNoYW5nZSBwcm9wYWdhdGlvbiBzbyB0aGF0XG4gICAgICAgICAgICAgICAgLy8gdGhlcmUgaXMgbm8gbmVlZCB0byBjYWxsIHRyaWdnZXJTYXZlXG4gICAgICAgICAgICAgICAgY29uc3Qgc2V0Q29udGVudCA9IGVkLnNldENvbnRlbnQ7XG4gICAgICAgICAgICAgICAgZWQuc2V0Q29udGVudCA9ICguLi5hcmdzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHNldENvbnRlbnQuYXBwbHkoZWQsIGFyZ3MpO1xuICAgICAgICAgICAgICAgICAgICBlZC5kaXNwYXRjaCgnY2hhbmdlJywge30pO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgaGFzSW5pdCA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy50aW55SW5pdC5lbWl0KCk7XG4gICAgICAgICAgICAgICAgY29uc3QgaWZyYW1FbDogSFRNTElGcmFtZUVsZW1lbnQgPSBlZC5pZnJhbWVFbGVtZW50O1xuICAgICAgICAgICAgICAgIGlmIChpZnJhbUVsKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmcmFtRWwuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIHRoaXMuX29uTG9hZElmcmFtZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIC8vIENhdGNoIGFuZCBwcm9wYWdhdGUgdGhlIGNoYW5nZSBldmVudFxuICAgICAgICAgICAgbGV0IG9sZENvbnRlbnQgPSBudWxsO1xuICAgICAgICAgICAgZWQub24oJ2NoYW5nZSBrZXl1cCcsICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXd2YWwgPSBlZC5nZXRDb250ZW50KCk7XG4gICAgICAgICAgICAgICAgaWYgKG5ld3ZhbCA9PT0gb2xkQ29udGVudCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgb2xkQ29udGVudCA9IG5ld3ZhbDtcbiAgICAgICAgICAgICAgICBpZiAoIWhhc0luaXQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGVkLnNhdmUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVkaXRvclZhbHVlID0gbmV3dmFsO1xuICAgICAgICAgICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChuZXd2YWwpO1xuICAgICAgICAgICAgICAgIC8vIHRoaXMuY29udGV4dC5maXJlRXZlbnQoJ2NoYW5nZScsIHRoaXMsIG5ld3ZhbCwgb2xkdmFsLCB7fSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgZWQub24oJ2ZvY3VzJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIFRPRE9cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBpZiAodXNlclNldHVwKSB7XG4gICAgICAgICAgICAgICAgdXNlclNldHVwKGVkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBTaG93VXBsb2FkV2luZG93KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl91cGxvYWRlci5vcGVuKCk7XG4gICAgfVxuICAgIFNob3dPcGVuRmlsZURpYWxvZyhkb1JldHVybik6IHZvaWQge1xuICAgICAgICBjb25zdCBpbnB1dDogYW55ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcbiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCd0eXBlJywgJ2ZpbGUnKTtcbiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdhY2NlcHQnLCAnaW1hZ2UvKicpO1xuXG4gICAgICAgIGlucHV0Lm9uY2hhbmdlID0gKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZmlsZSA9IGlucHV0LmZpbGVzWzBdO1xuXG4gICAgICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgYmFzZTY0ID0gcmVhZGVyLnJlc3VsdCBhcyBzdHJpbmc7XG4gICAgICAgICAgICAgICAgYmFzZTY0ID0gYmFzZTY0LnNwbGl0KCcsJylbMV07XG4gICAgICAgICAgICAgICAgZG9SZXR1cm4obnVsbCwgYmFzZTY0KTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcbiAgICAgICAgfTtcblxuICAgICAgICBpbnB1dC5jbGljaygpO1xuICAgIH1cbiAgICBJbnNlcnRCYXNlNjQoYmFzZTY0LCBkb1JldHVybik6IHZvaWQge1xuICAgICAgICB0aGlzLmVkaXRvci5leGVjQ29tbWFuZCgnbWNlSW5zZXJ0Q29udGVudCcsIGZhbHNlLCAnPGltZyBzcmM9ZGF0YTppbWFnZS9wbmc7YmFzZTY0LCcgKyBiYXNlNjQgKyAnIC8+Jyk7XG4gICAgICAgIGRvUmV0dXJuKCk7XG4gICAgfVxuICAgIGdldFZhbHVlKCk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICBsZXQgcmVzID0gbnVsbDtcbiAgICAgICAgaWYgKHRoaXMud3lzaXd5Z0ludGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGVkID0gdGlueW1jZS5nZXQodGhpcy50aW55SG9zdElkKTtcbiAgICAgICAgICAgIGlmIChlZCkge1xuICAgICAgICAgICAgICAgIHJlcyA9IGVkLmdldENvbnRlbnQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuICAgIHNldFZhbHVlKHZhbHVlKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5zZXRWYWx1ZVRpbnkoKTtcbiAgICB9XG4gICAgc2V0VmFsdWVUaW55KCk6IHN0cmluZyB7XG4gICAgICAgIGlmICh0aGlzLnd5c2l3eWdJbnRpYWxpemVkKSB7XG4gICAgICAgICAgICBjb25zdCBlZCA9IHRpbnltY2UuZ2V0KHRoaXMudGlueUhvc3RJZCk7XG4gICAgICAgICAgICBpZiAoZWQpIHtcbiAgICAgICAgICAgICAgICBlZC5zZXRDb250ZW50KHRoaXMudmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICAgIH1cbiAgICBmb2N1cygpOiBhbnkge1xuICAgICAgICBpZiAodGhpcy5pc1JlYWRvbmx5KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnd5c2l3eWdJbnRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aW55bWNlLmV4ZWNDb21tYW5kKCdtY2VGb2N1cycsIGZhbHNlLCAnaWRfb2ZfdGV4dGFyZWEnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBzZXRFbmFibGUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnd5c2l3eWdJbnRpYWxpemVkKSB7XG4gICAgICAgICAgICBjb25zdCBlZCA9IHRpbnltY2UuZ2V0KHRoaXMudGlueUhvc3RJZCk7XG4gICAgICAgICAgICBlZC5nZXRCb2R5KCkuc2V0QXR0cmlidXRlKCdjb250ZW50ZWRpdGFibGUnLCB0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldERpc2FibGUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnd5c2l3eWdJbnRpYWxpemVkKSB7XG4gICAgICAgICAgICBjb25zdCBlZCA9IHRpbnltY2UuZ2V0KHRoaXMudGlueUhvc3RJZCk7XG4gICAgICAgICAgICBlZC5nZXRCb2R5KCkuc2V0QXR0cmlidXRlKCdjb250ZW50ZWRpdGFibGUnLCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc2V0UmVhZE9ubHkocmVhZE9ubHkpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMud3lzaXd5Z0ludGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGVkID0gdGlueW1jZS5nZXQodGhpcy50aW55SG9zdElkKTtcbiAgICAgICAgICAgIGVkLmdldEJvZHkoKS5zZXRBdHRyaWJ1dGUoJ2NvbnRlbnRlZGl0YWJsZScsICFyZWFkT25seSk7XG4gICAgICAgICAgICBpZiAocmVhZE9ubHkpIHtcbiAgICAgICAgICAgICAgICAkKCcudG94LWVkaXRvci1oZWFkZXInKS5oaWRlKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICQoJy50b3gtZWRpdG9yLWhlYWRlcicpLmhpZGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGRlc3Ryb3lUaW55bWNlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5TZXR0aW5nLklzSHRtbFZpZXdlcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVkID0gdGlueW1jZS5nZXQodGhpcy50aW55SG9zdElkKTtcbiAgICAgICAgaWYgKGVkKSB7XG4gICAgICAgICAgICAvLyB0aW55bWNlLmV4ZWNDb21tYW5kKCdtY2VSZW1vdmVDb250cm9sJywgdHJ1ZSwgdGhpcy50aW55SG9zdElkKTtcbiAgICAgICAgICAgIGlmIChlZC5pZnJhbWVFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgZWQuaWZyYW1lRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdsb2FkJywgdGhpcy5fb25Mb2FkSWZyYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVkLmRlc3Ryb3koZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHByaXZhdGUgdXBsb2FkRmlsZShmaWxlczogRmlsZVtdKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3VwbG9hZFNlcnZpY2UuY29tcHJlc3NGaWxlcyQoZmlsZXMpLnBpcGUoXG4gICAgICAgICAgICBjb25jYXRNYXAoKGZvcm1EYXRhOiBGb3JtRGF0YSkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLl91cGxvYWRTZXJ2aWNlLnVwbG9hZChmb3JtRGF0YSwgdGhpcy5TZXR0aW5nLlN0b3JhZ2VGaWxlRmllbGRJZCkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgdGFwKChyZXMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHJlcykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwaWN0dXJlID0gcmVzWzBdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaWN0dXJlLkVycm9yTXNnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJhcnNhQXBpLkJ3Lk1zZy5FcnJvcihwaWN0dXJlLkVycm9yTXNnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucGljdHVyZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmlsZUlkOiBwaWN0dXJlLkZpbGVJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fYWRkSW1hZ2VzKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuICAgIHByaXZhdGUgX2FkZEltYWdlcyhmaWxlOiB7IEZpbGVJZDogc3RyaW5nIH0pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdXJsID0gJy9JSC5hc2h4P3R5PVN0b3JhZ2VGaWxlJmtleT0nICsgZmlsZS5GaWxlSWQ7XG4gICAgICAgIGNvbnN0IGh0bWwgPSAnPGltZyBzcmM9JyArIHVybCArICcgLz4nO1xuXG4gICAgICAgIHRoaXMuZWRpdG9yLmV4ZWNDb21tYW5kKCdtY2VJbnNlcnRDb250ZW50JywgZmFsc2UsIGh0bWwpO1xuICAgIH1cbiAgICBwcml2YXRlIHByZXBhcmUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5pdGlsaXplKCk7XG4gICAgICAgIHRpbnltY2UuaW5pdCh0aGlzLnRpbnlNQ0VDb25maWcpO1xuICAgICAgICB0aGlzLmludGlhbGl6YXRpb25JblByb2dyZXNzID0gZmFsc2U7XG4gICAgICAgIHRoaXMud3lzaXd5Z0ludGlhbGl6ZWQgPSB0cnVlO1xuICAgIH1cbiAgICBwcml2YXRlIF9vbkxvYWRJZnJhbWUgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmVkaXRvclZhbHVlO1xuICAgICAgICAvLyBjb25zdCBlZCA9IHRpbnltY2UuZ2V0KHRoaXMudGlueUhvc3RJZCk7XG4gICAgICAgIC8vIGVkLmV4ZWNDb21tYW5kKCdtY2VJbnNlcnRDb250ZW50JywgZmFsc2UsIHRoaXMudmFsdWUpO1xuXG4gICAgICAgIC8vIGVkLmluc2VydENvbnRlbnQodGhpcy52YWx1ZSwgeyBmb3JtYXQ6ICdyYXcnIH0pO1xuICAgICAgICAvLyB0aGlzLl9yZW1vdmVPdmVyZmxvdyhlZCk7XG4gICAgICAgIHRoaXMuZGVzdHJveVRpbnltY2UoKTtcbiAgICAgICAgdGhpcy5wcmVwYXJlKCk7XG4gICAgfTtcbiAgICBwcml2YXRlIF9nZW5lcmF0ZVRpbnlIb3N0SWQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGBhXyR7Z2V0VW5pcXVlSWQoMil9YDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9yZW1vdmVPdmVyZmxvdyhlZDogYW55KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGh0bWwgPSBlZC5pZnJhbWVFbGVtZW50Py5jb250ZW50RG9jdW1lbnQ/LnF1ZXJ5U2VsZWN0b3IoJ2h0bWwnKTtcbiAgICAgICAgaWYgKGh0bWwpIHtcbiAgICAgICAgICAgIGh0bWwuc3R5bGUub3ZlcmZsb3cgPSAnaGlkZGVuJztcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmZC1pbnB1dCB0aW55d3JhcHBlclwiIFtzdHlsZS5taW4taGVpZ2h0LnB4XT1cImhlaWdodFwiIFtpZF09XCJ0aW55SG9zdElkXCI+PC9kaXY+XG48ZmQtZmlsZS11cGxvYWRlclxuICAgICN1cGxvYWRlclxuICAgIFtzdHlsZS5kaXNwbGF5XT1cIidub25lJ1wiXG4gICAgW2FjY2VwdF09XCInJ1wiXG4gICAgW211bHRpcGxlXT1cImZhbHNlXCJcbiAgICAoc2VsZWN0ZWRGaWxlc0NoYW5nZWQpPVwib25GaWxlU2VsZWN0aW9uKCRldmVudClcIlxuPjwvZmQtZmlsZS11cGxvYWRlcj5cbjwhLS0gPHRleHRhcmVhIFtpZF09XCJ0aW55SG9zdElkXCIgc3R5bGU9XCJoZWlnaHQ6IDEwMCU7IHZpc2liaWxpdHk6IGhpZGRlblwiPjwvdGV4dGFyZWE+IC0tPlxuIl19
421
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtdGlueWVtY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtdGlueWVtY2UvYmFyc2EtdGlueWVtY2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtdGlueWVtY2UvYmFyc2EtdGlueWVtY2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUN2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBRU4sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBYyxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUU3RCxPQUFPLEVBQ0gsYUFBYSxFQUNiLFFBQVEsRUFDUixXQUFXLEVBQ1gsVUFBVSxFQUNWLGFBQWEsRUFFaEIsTUFBTSxzQkFBc0IsQ0FBQzs7OztBQWE5QixNQUFNLE9BQU8sc0JBQXVCLFNBQVEsYUFBYTtJQW1CckQsWUFBc0IsY0FBNkIsRUFBWSxHQUFlO1FBQzFFLEtBQUssRUFBRSxDQUFDO1FBRFUsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFBWSxRQUFHLEdBQUgsR0FBRyxDQUFZO1FBWnBFLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUN0QyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN4QyxlQUFVLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDeEMsa0JBQWEsR0FBUSxFQUFFLENBQUM7UUEyWmhCLGtCQUFhLEdBQUcsR0FBUyxFQUFFO1lBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUM5QiwyQ0FBMkM7WUFDM0MseURBQXlE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akMsSUFBSSxDQUFDLHVCQUF1QixHQUFHLEtBQUssQ0FBQztRQUNyQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO0lBQ2xDLENBQUM7SUFXTyxtQkFBbUI7UUFDdkIsT0FBTyxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFTyxlQUFlLENBQUMsRUFBTztRQUMzQixNQUFNLElBQUksR0FBRyxFQUFFLENBQUMsYUFBYSxFQUFFLGVBQWUsRUFBRSxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEUsSUFBSSxJQUFJLEVBQUU7WUFDTixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7U0FDbEM7SUFDTCxDQUFDOzttSEF4YlEsc0JBQXNCO3VHQUF0QixzQkFBc0IsME9BRnBCLENBQUMsYUFBYSxDQUFDLDZLQ2xDOUIsaVlBU0E7MkZEMkJhLHNCQUFzQjtrQkFQbEMsU0FBUzsrQkFDSSxvQkFBb0IsbUJBR2IsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLGFBQWEsQ0FBQzs2SEFHSCxTQUFTO3NCQUEvQixTQUFTO3VCQUFDLFVBQVU7Z0JBQ1osT0FBTztzQkFBZixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3V0cHV0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmlsZVVwbG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGNvbmNhdE1hcCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtcbiAgICBCYXNlQ29tcG9uZW50LFxuICAgIEJhcnNhQXBpLFxuICAgIGdldFVuaXF1ZUlkLFxuICAgIGlzRnVuY3Rpb24sXG4gICAgVXBsb2FkU2VydmljZSxcbiAgICBHZW5lcmFsQ29udHJvbEluZm9Nb2RlbFxufSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5cbmRlY2xhcmUgY29uc3Qgd2luZG93OiBhbnk7XG5kZWNsYXJlIGNvbnN0IHRpbnltY2U6IGFueTtcbmRlY2xhcmUgY29uc3QgaGVhZDogYW55O1xuZGVjbGFyZSBjb25zdCAkOiBhbnk7XG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS1iYXJzYS10aW55ZW1jZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2JhcnNhLXRpbnllbWNlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9iYXJzYS10aW55ZW1jZS5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1VwbG9hZFNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIEJhcnNhVGlueWVtY2VDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xuICAgIEBWaWV3Q2hpbGQoJ3VwbG9hZGVyJykgX3VwbG9hZGVyOiBGaWxlVXBsb2FkZXJDb21wb25lbnQ7XG4gICAgQElucHV0KCkgU2V0dGluZzogR2VuZXJhbENvbnRyb2xJbmZvTW9kZWw7XG4gICAgQElucHV0KCkgaXNSZWFkb25seTogYm9vbGVhbjtcbiAgICBASW5wdXQoKSB2YWx1ZTogYW55O1xuICAgIEBJbnB1dCgpIElzSW5saW5lOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGRlZmF1bHRWZXJiczogeyBUaXRsZTogc3RyaW5nOyBIdG1sOiBzdHJpbmcgfVtdO1xuICAgIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSB0aW55SW5pdCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICB0aW55SG9zdElkID0gdGhpcy5fZ2VuZXJhdGVUaW55SG9zdElkKCk7XG4gICAgdGlueU1DRUNvbmZpZzogYW55ID0ge307XG4gICAgZWRpdG9yOiBhbnk7XG4gICAgd3lzaXd5Z0ludGlhbGl6ZWQ6IGJvb2xlYW47XG4gICAgaW50aWFsaXphdGlvbkluUHJvZ3Jlc3M6IGJvb2xlYW47XG4gICAgZWRpdG9yVmFsdWU6IHN0cmluZztcblxuICAgIGlmcmFtQm9keUlubmVySHRtbDogc3RyaW5nO1xuICAgIGhlaWdodDogbnVtYmVyO1xuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIF91cGxvYWRTZXJ2aWNlOiBVcGxvYWRTZXJ2aWNlLCBwcm90ZWN0ZWQgX2VsOiBFbGVtZW50UmVmKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuICAgIG5nT25DaGFuZ2VzKHNpbXBsZUNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkNoYW5nZXMoc2ltcGxlQ2hhbmdlcyk7XG4gICAgICAgIGlmIChzaW1wbGVDaGFuZ2VzLnZhbHVlICYmICFzaW1wbGVDaGFuZ2VzLnZhbHVlLmZpcnN0Q2hhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLnNldFZhbHVlKHNpbXBsZUNoYW5nZXMudmFsdWUuY3VycmVudFZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc2ltcGxlQ2hhbmdlcy5kaXNhYmxlICYmICFzaW1wbGVDaGFuZ2VzLmRpc2FibGUuZmlyc3RDaGFuZ2UpIHtcbiAgICAgICAgICAgIGNvbnN0IGRpc2JhbGUgPSBzaW1wbGVDaGFuZ2VzLmRpc2FibGUuY3VycmVudFZhbHVlO1xuICAgICAgICAgICAgaWYgKGRpc2JhbGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldERpc2FibGUoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRFbmFibGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoc2ltcGxlQ2hhbmdlcy5yZWFkb25seSAmJiAhc2ltcGxlQ2hhbmdlcy5yZWFkb25seS5maXJzdENoYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5zZXRSZWFkT25seShzaW1wbGVDaGFuZ2VzLnJlYWRvbmx5LmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMuaGVpZ2h0ID0gKHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLmNsaWVudEhlaWdodDtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuICAgICAgICB0aGlzLmxvYWRUaW55TWNlKCk7XG4gICAgfVxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgICAgICB0aGlzLmRlc3Ryb3lUaW55bWNlKCk7XG4gICAgfVxuXG4gICAgb25GaWxlU2VsZWN0aW9uKGZpbGVzOiBGaWxlW10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGxvYWRGaWxlKGZpbGVzKS5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIGxvYWRUaW55TWNlKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuU2V0dGluZy5Jc0h0bWxWaWV3ZXIpIHtcbiAgICAgICAgICAgIGhlYWQubG9hZChbJ0xpYi90aW55bWNlL3RpbnltY2UubWluLmpzJ10sICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnByZXBhcmUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaW5pdGlsaXplKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy50aW55TUNFQ29uZmlnLnNldHVwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy50aW55TUNFQ29uZmlnLmhlaWdodCA9ICcxMDAlJztcbiAgICAgICAgdGhpcy50aW55TUNFQ29uZmlnLndpZHRoID0gJzEwMCUnO1xuICAgICAgICB0aGlzLnRpbnlNQ0VDb25maWcuc2VsZWN0b3IgPSAnIycgKyB0aGlzLnRpbnlIb3N0SWQ7XG4gICAgICAgIHRoaXMudGlueU1DRUNvbmZpZy5wbGFjZWhvbGRlciA9IHRoaXMuU2V0dGluZy5Db250cm9sRmllbGRDYXB0aW9uVHJhbnNsYXRlZDtcbiAgICAgICAgdGhpcy50aW55TUNFQ29uZmlnLmNvbnRlbnRfY3NzID0gJ2Fzc2V0cy9SZXNvdXJjZXMvZm9udHMvSXJhbi5jc3MnO1xuICAgICAgICB0aGlzLnRpbnlNQ0VDb25maWcuZGlyZWN0aW9uYWxpdHkgPSAncnRsJztcbiAgICAgICAgdGhpcy50aW55TUNFQ29uZmlnLmxhbmd1YWdlID0gJ2ZhX0lSJztcbiAgICAgICAgdGhpcy50aW55TUNFQ29uZmlnLnByb21vdGlvbiA9IGZhbHNlO1xuICAgICAgICB0aGlzLnRpbnlNQ0VDb25maWcucGFzdGVfZGF0YV9pbWFnZXMgPSB0cnVlO1xuICAgICAgICB0aGlzLnRpbnlNQ0VDb25maWcuZGVmYXVsdEZvbnROYW1lID0gJ0JhcnNhRm9udCc7XG4gICAgICAgIHRoaXMudGlueU1DRUNvbmZpZy5kZWZhdWx0Rm9udFNpemUgPSAnMTJweCc7XG4gICAgICAgIHRoaXMudGlueU1DRUNvbmZpZy5zdGF0dXNiYXIgPSBmYWxzZTtcblxuICAgICAgICB0aGlzLnRpbnlNQ0VDb25maWcuaW5saW5lID0gZmFsc2U7XG4gICAgICAgIHRoaXMudGlueU1DRUNvbmZpZy5tZW51YmFyID0gIXRoaXMuSXNJbmxpbmU7XG4gICAgICAgIHRoaXMudGlueU1DRUNvbmZpZy50aGVtZV9hZHZhbmNlZF9yZXNpemluZyA9IHRydWU7XG4gICAgICAgIHRoaXMudGlueU1DRUNvbmZpZy50b29sYmFyX2xvY2F0aW9uID0gJ3RvcCc7XG4gICAgICAgIC8vIHRoaXMudGlueU1DRUNvbmZpZy50b29sYmFyX21vZGUgPSAnZmxvYXRpbmcnO1xuICAgICAgICAvLyB0aGlzLnRpbnlNQ0VDb25maWcudG9vbGJhcl9zdGlja3kgPSB0cnVlO1xuICAgICAgICAvLyB0aGlzLnRpbnlNQ0VDb25maWcudG9vbGJhcl9zdGlja3lfb2Zmc2V0ID0gMTAwO1xuICAgICAgICB0aGlzLnRpbnlNQ0VDb25maWcuZm9udF9mYW1pbHlfZm9ybWF0cyA9XG4gICAgICAgICAgICAnQmFyc2FGb250PUJhcnNhRm9udDtBcmlhbD1hcmlhbCxoZWx2ZXRpY2Esc2Fucy1zZXJpZjsgQ291cmllciBOZXc9Y291cmllciBuZXcsY291cmllcixtb25vc3BhY2U7JztcbiAgICAgICAgdGhpcy50aW55TUNFQ29uZmlnLmZvbnRfc2l6ZV9mb3JtYXRzID0gJzhwdCAxMHB0IDEycHQgMTRwdCAxOHB0IDI0cHQgMzZwdCc7XG5cbiAgICAgICAgdGhpcy50aW55TUNFQ29uZmlnLnBsdWdpbnMgPSBbXG4gICAgICAgICAgICAnYWR2bGlzdCcsXG4gICAgICAgICAgICAnYW5jaG9yJyxcbiAgICAgICAgICAgICdhdXRvbGluaycsXG4gICAgICAgICAgICAnYXV0b3NhdmUnLFxuICAgICAgICAgICAgJ2NoYXJtYXAnLFxuICAgICAgICAgICAgJ2NvZGUnLFxuICAgICAgICAgICAgJ2NvZGVzYW1wbGUnLFxuICAgICAgICAgICAgJ2RpcmVjdGlvbmFsaXR5JyxcbiAgICAgICAgICAgICdlbW90aWNvbnMnLFxuICAgICAgICAgICAgJ2Z1bGxzY3JlZW4nLFxuICAgICAgICAgICAgJ2hlbHAnLFxuICAgICAgICAgICAgJ2ltYWdlJyxcbiAgICAgICAgICAgICdpbXBvcnRjc3MnLFxuICAgICAgICAgICAgJ2luc2VydGRhdGV0aW1lJyxcbiAgICAgICAgICAgICdsaW5rJyxcbiAgICAgICAgICAgICdsaXN0cycsXG4gICAgICAgICAgICAnbWVkaWEnLFxuICAgICAgICAgICAgJ25vbmJyZWFraW5nJyxcbiAgICAgICAgICAgICdwYWdlYnJlYWsnLFxuICAgICAgICAgICAgJ3ByZXZpZXcnLFxuICAgICAgICAgICAgJ3F1aWNrYmFycycsXG4gICAgICAgICAgICAnc2F2ZScsXG4gICAgICAgICAgICAnc2VhcmNocmVwbGFjZScsXG4gICAgICAgICAgICAndGFibGUnLFxuICAgICAgICAgICAgJ3RlbXBsYXRlJyxcbiAgICAgICAgICAgICd2aXN1YWxibG9ja3MnLFxuICAgICAgICAgICAgJ3Zpc3VhbGNoYXJzJyxcbiAgICAgICAgICAgICd3b3JkY291bnQnLFxuICAgICAgICAgICAgJ2F1dG9yZXNpemUnXG4gICAgICAgIF07XG4gICAgICAgIHRoaXMudGlueU1DRUNvbmZpZy50b29sYmFyID0gW1xuICAgICAgICAgICAgYGRlZmF1bHRWZXJicyBiYXJzYUltYWdlIHwgaW5zZXJ0IHwgZm9yZWNvbG9yIGJhY2tjb2xvciBmb250ZmFtaWx5IGZvbnRzaXplIHwgYnVsbGlzdCBudW1saXN0IG91dGRlbnQgaW5kZW50IHwgcmVtb3ZlZm9ybWF0YCArXG4gICAgICAgICAgICAgICAgYCB8IHVuZG8gcmVkbyB8IGNvcHkgY3V0IHBhc3RlIHwgYmxvY2tzIHwgYm9sZCBpdGFsaWMgfCBhbGlnbmxlZnQgYWxpZ25jZW50ZXIgYWxpZ25yaWdodCBhbGlnbmp1c3RpZnkgbHRyIHJ0bGBcbiAgICAgICAgXTtcbiAgICAgICAgaWYgKHRoaXMuSXNJbmxpbmUpIHtcbiAgICAgICAgICAgIHRoaXMudGlueU1DRUNvbmZpZy50b29sYmFyID0gW1xuICAgICAgICAgICAgICAgIGBkZWZhdWx0VmVyYnMgYmFyc2FJbWFnZSB8IGluc2VydCB8IGZvcmVjb2xvciBiYWNrY29sb3IgZm9udGZhbWlseSBmb250c2l6ZSB8IGJ1bGxpc3QgbnVtbGlzdGAgK1xuICAgICAgICAgICAgICAgICAgICBgIHwgdW5kbyByZWRvIHwgYm9sZCBpdGFsaWMgfCBsdHIgcnRsYFxuICAgICAgICAgICAgXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnRpbnlNQ0VDb25maWcucXVpY2tiYXJzX3NlbGVjdGlvbl90b29sYmFyID1cbiAgICAgICAgICAgICdib2xkIGl0YWxpYyBmb250c2l6ZSB8IGZvcmVjb2xvciBiYWNrY29sb3J8ZGVmYXVsdFZlcmJzIGJhcnNhSW1hZ2UnO1xuICAgICAgICBjb25zdCB0aW55bWNlU2V0dGluZ3NHbG9iYWwgPSB3aW5kb3cudGlueW1jZVNldHRpbmdzO1xuICAgICAgICBsZXQgdGlueW1jZVNldHRpbmdzID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUodGhpcy5TZXR0aW5nLCAnSnNvbkV4dHJhUHJvcC50aW55bWNlU2V0dGluZ3MnKTtcbiAgICAgICAgdGlueW1jZVNldHRpbmdzID0gQmFyc2FBcGkuQ29tbW9uLk1lcmdlci5NZXJnZSh0aW55bWNlU2V0dGluZ3NHbG9iYWwsIHRpbnltY2VTZXR0aW5ncyk7XG4gICAgICAgIGlmICghdGlueW1jZVNldHRpbmdzICYmIEFycmF5LmlzQXJyYXkodGlueW1jZVNldHRpbmdzKSkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHRpbnltY2VTZXR0aW5ncykge1xuICAgICAgICAgICAgICAgIHRoaXMudGlueU1DRUNvbmZpZ1tpdGVtLmtleV0gPSBpdGVtLnZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXNSZWFkb25seSkge1xuICAgICAgICAgICAgdGhpcy50aW55TUNFQ29uZmlnLm1lbnViYXIgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMudGlueU1DRUNvbmZpZy5zdGF0dXNiYXIgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMudGlueU1DRUNvbmZpZy5wbHVnaW5zID0gWydhdXRvcmVzaXplJ107XG4gICAgICAgICAgICAvLyB0aGlzLnRpbnlNQ0VDb25maWcucGx1Z2lucyA9IFtdO1xuICAgICAgICAgICAgdGhpcy50aW55TUNFQ29uZmlnLnRvb2xiYXIgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCB1c2VyU2V0dXA6IChlZGl0b3I6IGFueSkgPT4gdm9pZDtcblxuICAgICAgICBpZiAodGhpcy50aW55TUNFQ29uZmlnLnNldHVwKSB7XG4gICAgICAgICAgICB1c2VyU2V0dXAgPSB0aGlzLnRpbnlNQ0VDb25maWcuc2V0dXA7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGRlZmF1bHRWZXJic01lbnU6IGFueSA9IFtdO1xuXG4gICAgICAgIC8vIEJFR0lOOiBzZXR1cFxuICAgICAgICB0aGlzLnRpbnlNQ0VDb25maWcuc2V0dXAgPSAoZWQpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZWRpdG9yID0gZWQ7XG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNSZWFkb25seSkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRlZmF1bHRWZXJicykge1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0VmVyYnNNZW51ID0gW107XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGVmYXVsdFZlcmJzLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRWZXJic01lbnUucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGl0ZW0uSHRtbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnbWVudWl0ZW0nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6IGl0ZW0uVGl0bGUgfHwgaXRlbS5IdG1sLnJlcGxhY2UoLzxiclxccypcXC8/Pi9naSwgJyAnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkFjdGlvbjogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBlZC5leGVjQ29tbWFuZCgnbWNlSW5zZXJ0UmF3SFRNTCcsIGZhbHNlLCBpdGVtLkh0bWwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlZC5pbnNlcnRDb250ZW50KGl0ZW0uSHRtbCwgeyBmb3JtYXQ6ICdyYXcnIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWQudWkucmVnaXN0cnkuYWRkU3BsaXRCdXR0b24oJ2JhcnNhSW1hZ2UnLCB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQ6ICdpbnNlcnQnLFxuICAgICAgICAgICAgICAgICAgICBpY29uOiAnaW1hZ2UnLFxuICAgICAgICAgICAgICAgICAgICB0b29sdGlwOiAnSW5zZXJ0IEltYWdlIEFzIEJhc2U2NCcsXG4gICAgICAgICAgICAgICAgICAgIG9uQWN0aW9uOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBCYXJzYUFwaS5Db21tb24uQXN5bmMuV2F0ZXJmYWxsKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdUaW5lbWNlLkVtYmVkSW1hZ2UnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlbkZpbGVEaWFsb2c6IHRoaXMuU2hvd09wZW5GaWxlRGlhbG9nLmJpbmQodGhpcyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc2VydEJhc2U2NDogdGhpcy5JbnNlcnRCYXNlNjQuYmluZCh0aGlzKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVyciwgcmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJhcnNhQXBpLkNvbW1vbi5Bc3luYy5GaW5hbGl6ZShlcnIsIHJlc3VsdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgb25JdGVtQWN0aW9uOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBCYXJzYUFwaS5Db21tb24uQXN5bmMuV2F0ZXJmYWxsKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdUaW5lbWNlLlVwbG9hZFRvRGF0YWJhc2UnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlbkZpbGVEaWFsb2c6IHRoaXMuU2hvd1VwbG9hZFdpbmRvdy5iaW5kKHRoaXMpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXJyLCByZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQmFyc2FBcGkuQ29tbW9uLkFzeW5jLkZpbmFsaXplKGVyciwgcmVzdWx0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBmZXRjaDogKGNhbGxiYWNrKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpdGVtcyA9IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdjaG9pY2VpdGVtJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogJ3VwbG9hZCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICdpbWFnZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXA6ICdVcGxvYWQgSW1hZ2UnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogJ3VwbG9hZCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soaXRlbXMpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICBlZC51aS5yZWdpc3RyeS5hZGRNZW51QnV0dG9uKCdkZWZhdWx0VmVyYnMnLCB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQ6ICfYudio2KfYsdiq2YfYp9uMINm+24zYtCDZgdix2LYnLFxuICAgICAgICAgICAgICAgICAgICBmZXRjaDogKGNhbGxiYWNrKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhkZWZhdWx0VmVyYnNNZW51KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmIChpc0Z1bmN0aW9uKHdpbmRvdy50aW55bWNlU2V0dXApKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy50aW55bWNlU2V0dXAuY2FsbCh0aGlzLCB0aGlzLCBlZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IGhhc0luaXQgPSBmYWxzZTtcbiAgICAgICAgICAgIGVkLm9uKCdpbml0JywgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMud3lzaXd5Z0ludGlhbGl6ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuaW50aWFsaXphdGlvbkluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHRoaXMudmFsdWUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0VmFsdWUodGhpcy52YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnRpbnlNQ0VDb25maWcuZGVmYXVsdEZvbnROYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIGVkLmV4ZWNDb21tYW5kKCdGb250TmFtZScsIGZhbHNlLCB0aGlzLnRpbnlNQ0VDb25maWcuZGVmYXVsdEZvbnROYW1lKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudGlueU1DRUNvbmZpZy5kZWZhdWx0Rm9udFNpemUpIHtcbiAgICAgICAgICAgICAgICAgICAgZWQuZXhlY0NvbW1hbmQoJ0ZvbnRTaXplJywgZmFsc2UsIHRoaXMudGlueU1DRUNvbmZpZy5kZWZhdWx0Rm9udFNpemUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc1JlYWRvbmx5KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0UmVhZE9ubHkodGhpcy5pc1JlYWRvbmx5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gVGhpcyBwaWVjZSBvZiBjb2RlIHNvbHZlcyB0aGUgcHJvYmxlbSBvZiBjaGFuZ2UgcHJvcGFnYXRpb24gc28gdGhhdFxuICAgICAgICAgICAgICAgIC8vIHRoZXJlIGlzIG5vIG5lZWQgdG8gY2FsbCB0cmlnZ2VyU2F2ZVxuICAgICAgICAgICAgICAgIGNvbnN0IHNldENvbnRlbnQgPSBlZC5zZXRDb250ZW50O1xuICAgICAgICAgICAgICAgIGVkLnNldENvbnRlbnQgPSAoLi4uYXJncykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzZXRDb250ZW50LmFwcGx5KGVkLCBhcmdzKTtcbiAgICAgICAgICAgICAgICAgICAgZWQuZGlzcGF0Y2goJ2NoYW5nZScsIHt9KTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGhhc0luaXQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMudGlueUluaXQuZW1pdCgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGlmcmFtRWw6IEhUTUxJRnJhbWVFbGVtZW50ID0gZWQuaWZyYW1lRWxlbWVudDtcbiAgICAgICAgICAgICAgICBpZiAoaWZyYW1FbCkge1xuICAgICAgICAgICAgICAgICAgICBpZnJhbUVsLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCB0aGlzLl9vbkxvYWRJZnJhbWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAvLyBDYXRjaCBhbmQgcHJvcGFnYXRlIHRoZSBjaGFuZ2UgZXZlbnRcbiAgICAgICAgICAgIGxldCBvbGRDb250ZW50ID0gbnVsbDtcbiAgICAgICAgICAgIGVkLm9uKCdjaGFuZ2Uga2V5dXAnLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3dmFsID0gZWQuZ2V0Q29udGVudCgpO1xuICAgICAgICAgICAgICAgIGlmIChuZXd2YWwgPT09IG9sZENvbnRlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIG9sZENvbnRlbnQgPSBuZXd2YWw7XG4gICAgICAgICAgICAgICAgaWYgKCFoYXNJbml0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBlZC5zYXZlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5lZGl0b3JWYWx1ZSA9IG5ld3ZhbDtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQobmV3dmFsKTtcbiAgICAgICAgICAgICAgICAvLyB0aGlzLmNvbnRleHQuZmlyZUV2ZW50KCdjaGFuZ2UnLCB0aGlzLCBuZXd2YWwsIG9sZHZhbCwge30pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGVkLm9uKCdmb2N1cycsICgpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBUT0RPXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKHVzZXJTZXR1cCkge1xuICAgICAgICAgICAgICAgIHVzZXJTZXR1cChlZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgU2hvd1VwbG9hZFdpbmRvdygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdXBsb2FkZXIub3BlbigpO1xuICAgIH1cbiAgICBTaG93T3BlbkZpbGVEaWFsb2coZG9SZXR1cm4pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaW5wdXQ6IGFueSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XG4gICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgndHlwZScsICdmaWxlJyk7XG4gICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnYWNjZXB0JywgJ2ltYWdlLyonKTtcblxuICAgICAgICBpbnB1dC5vbmNoYW5nZSA9ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZpbGUgPSBpbnB1dC5maWxlc1swXTtcblxuICAgICAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IGJhc2U2NCA9IHJlYWRlci5yZXN1bHQgYXMgc3RyaW5nO1xuICAgICAgICAgICAgICAgIGJhc2U2NCA9IGJhc2U2NC5zcGxpdCgnLCcpWzFdO1xuICAgICAgICAgICAgICAgIGRvUmV0dXJuKG51bGwsIGJhc2U2NCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgaW5wdXQuY2xpY2soKTtcbiAgICB9XG4gICAgSW5zZXJ0QmFzZTY0KGJhc2U2NCwgZG9SZXR1cm4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lZGl0b3IuZXhlY0NvbW1hbmQoJ21jZUluc2VydENvbnRlbnQnLCBmYWxzZSwgJzxpbWcgc3JjPWRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCwnICsgYmFzZTY0ICsgJyAvPicpO1xuICAgICAgICBkb1JldHVybigpO1xuICAgIH1cbiAgICBnZXRWYWx1ZSgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgbGV0IHJlcyA9IG51bGw7XG4gICAgICAgIGlmICh0aGlzLnd5c2l3eWdJbnRpYWxpemVkKSB7XG4gICAgICAgICAgICBjb25zdCBlZCA9IHRpbnltY2UuZ2V0KHRoaXMudGlueUhvc3RJZCk7XG4gICAgICAgICAgICBpZiAoZWQpIHtcbiAgICAgICAgICAgICAgICByZXMgPSBlZC5nZXRDb250ZW50KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cbiAgICBzZXRWYWx1ZSh2YWx1ZSk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuc2V0VmFsdWVUaW55KCk7XG4gICAgfVxuICAgIHNldFZhbHVlVGlueSgpOiBzdHJpbmcge1xuICAgICAgICBpZiAodGhpcy53eXNpd3lnSW50aWFsaXplZCkge1xuICAgICAgICAgICAgY29uc3QgZWQgPSB0aW55bWNlLmdldCh0aGlzLnRpbnlIb3N0SWQpO1xuICAgICAgICAgICAgaWYgKGVkKSB7XG4gICAgICAgICAgICAgICAgZWQuc2V0Q29udGVudCh0aGlzLnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZTtcbiAgICB9XG4gICAgZm9jdXMoKTogYW55IHtcbiAgICAgICAgaWYgKHRoaXMuaXNSZWFkb25seSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy53eXNpd3lnSW50aWFsaXplZCkge1xuICAgICAgICAgICAgdGlueW1jZS5leGVjQ29tbWFuZCgnbWNlRm9jdXMnLCBmYWxzZSwgJ2lkX29mX3RleHRhcmVhJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgc2V0RW5hYmxlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy53eXNpd3lnSW50aWFsaXplZCkge1xuICAgICAgICAgICAgY29uc3QgZWQgPSB0aW55bWNlLmdldCh0aGlzLnRpbnlIb3N0SWQpO1xuICAgICAgICAgICAgZWQuZ2V0Qm9keSgpLnNldEF0dHJpYnV0ZSgnY29udGVudGVkaXRhYmxlJywgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXREaXNhYmxlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy53eXNpd3lnSW50aWFsaXplZCkge1xuICAgICAgICAgICAgY29uc3QgZWQgPSB0aW55bWNlLmdldCh0aGlzLnRpbnlIb3N0SWQpO1xuICAgICAgICAgICAgZWQuZ2V0Qm9keSgpLnNldEF0dHJpYnV0ZSgnY29udGVudGVkaXRhYmxlJywgZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHNldFJlYWRPbmx5KHJlYWRPbmx5KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnd5c2l3eWdJbnRpYWxpemVkKSB7XG4gICAgICAgICAgICBjb25zdCBlZCA9IHRpbnltY2UuZ2V0KHRoaXMudGlueUhvc3RJZCk7XG4gICAgICAgICAgICBlZC5nZXRCb2R5KCkuc2V0QXR0cmlidXRlKCdjb250ZW50ZWRpdGFibGUnLCAhcmVhZE9ubHkpO1xuICAgICAgICAgICAgaWYgKHJlYWRPbmx5KSB7XG4gICAgICAgICAgICAgICAgJCgnLnRveC1lZGl0b3ItaGVhZGVyJykuaGlkZSgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAkKCcudG94LWVkaXRvci1oZWFkZXInKS5oaWRlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBkZXN0cm95VGlueW1jZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuU2V0dGluZy5Jc0h0bWxWaWV3ZXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlZCA9IHRpbnltY2UuZ2V0KHRoaXMudGlueUhvc3RJZCk7XG4gICAgICAgIGlmIChlZCkge1xuICAgICAgICAgICAgLy8gdGlueW1jZS5leGVjQ29tbWFuZCgnbWNlUmVtb3ZlQ29udHJvbCcsIHRydWUsIHRoaXMudGlueUhvc3RJZCk7XG4gICAgICAgICAgICBpZiAoZWQuaWZyYW1lRWxlbWVudCkge1xuICAgICAgICAgICAgICAgIGVkLmlmcmFtZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbG9hZCcsIHRoaXMuX29uTG9hZElmcmFtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlZC5kZXN0cm95KGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwcml2YXRlIHVwbG9hZEZpbGUoZmlsZXM6IEZpbGVbXSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl91cGxvYWRTZXJ2aWNlLmNvbXByZXNzRmlsZXMkKGZpbGVzKS5waXBlKFxuICAgICAgICAgICAgY29uY2F0TWFwKChmb3JtRGF0YTogRm9ybURhdGEpID0+XG4gICAgICAgICAgICAgICAgdGhpcy5fdXBsb2FkU2VydmljZS51cGxvYWQoZm9ybURhdGEsIHRoaXMuU2V0dGluZy5TdG9yYWdlRmlsZUZpZWxkSWQpLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIHRhcCgocmVzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShyZXMpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGljdHVyZSA9IHJlc1swXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGljdHVyZS5FcnJvck1zZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCYXJzYUFwaS5Cdy5Nc2cuRXJyb3IocGljdHVyZS5FcnJvck1zZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnBpY3R1cmUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpbGVJZDogcGljdHVyZS5GaWxlSWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2FkZEltYWdlcyh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cbiAgICBwcml2YXRlIF9hZGRJbWFnZXMoZmlsZTogeyBGaWxlSWQ6IHN0cmluZyB9KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHVybCA9ICcvSUguYXNoeD90eT1TdG9yYWdlRmlsZSZrZXk9JyArIGZpbGUuRmlsZUlkO1xuICAgICAgICBjb25zdCBodG1sID0gJzxpbWcgc3JjPScgKyB1cmwgKyAnIC8+JztcblxuICAgICAgICB0aGlzLmVkaXRvci5leGVjQ29tbWFuZCgnbWNlSW5zZXJ0Q29udGVudCcsIGZhbHNlLCBodG1sKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBwcmVwYXJlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmluaXRpbGl6ZSgpO1xuICAgICAgICB0aW55bWNlLmluaXQodGhpcy50aW55TUNFQ29uZmlnKTtcbiAgICAgICAgdGhpcy5pbnRpYWxpemF0aW9uSW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgICAgICB0aGlzLnd5c2l3eWdJbnRpYWxpemVkID0gdHJ1ZTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfb25Mb2FkSWZyYW1lID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5lZGl0b3JWYWx1ZTtcbiAgICAgICAgLy8gY29uc3QgZWQgPSB0aW55bWNlLmdldCh0aGlzLnRpbnlIb3N0SWQpO1xuICAgICAgICAvLyBlZC5leGVjQ29tbWFuZCgnbWNlSW5zZXJ0Q29udGVudCcsIGZhbHNlLCB0aGlzLnZhbHVlKTtcblxuICAgICAgICAvLyBlZC5pbnNlcnRDb250ZW50KHRoaXMudmFsdWUsIHsgZm9ybWF0OiAncmF3JyB9KTtcbiAgICAgICAgLy8gdGhpcy5fcmVtb3ZlT3ZlcmZsb3coZWQpO1xuICAgICAgICB0aGlzLmRlc3Ryb3lUaW55bWNlKCk7XG4gICAgICAgIHRoaXMucHJlcGFyZSgpO1xuICAgIH07XG4gICAgcHJpdmF0ZSBfZ2VuZXJhdGVUaW55SG9zdElkKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgYV8ke2dldFVuaXF1ZUlkKDIpfWA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcmVtb3ZlT3ZlcmZsb3coZWQ6IGFueSk6IHZvaWQge1xuICAgICAgICBjb25zdCBodG1sID0gZWQuaWZyYW1lRWxlbWVudD8uY29udGVudERvY3VtZW50Py5xdWVyeVNlbGVjdG9yKCdodG1sJyk7XG4gICAgICAgIGlmIChodG1sKSB7XG4gICAgICAgICAgICBodG1sLnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbic7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmQtaW5wdXQgdGlueXdyYXBwZXJcIiBbc3R5bGUubWluLWhlaWdodC5weF09XCJoZWlnaHRcIiBbaWRdPVwidGlueUhvc3RJZFwiPjwvZGl2PlxuPGZkLWZpbGUtdXBsb2FkZXJcbiAgICAjdXBsb2FkZXJcbiAgICBbc3R5bGUuZGlzcGxheV09XCInbm9uZSdcIlxuICAgIFthY2NlcHRdPVwiJydcIlxuICAgIFttdWx0aXBsZV09XCJmYWxzZVwiXG4gICAgKHNlbGVjdGVkRmlsZXNDaGFuZ2VkKT1cIm9uRmlsZVNlbGVjdGlvbigkZXZlbnQpXCJcbj48L2ZkLWZpbGUtdXBsb2FkZXI+XG48IS0tIDx0ZXh0YXJlYSBbaWRdPVwidGlueUhvc3RJZFwiIHN0eWxlPVwiaGVpZ2h0OiAxMDAlOyB2aXNpYmlsaXR5OiBoaWRkZW5cIj48L3RleHRhcmVhPiAtLT5cbiJdfQ==
@@ -172,6 +172,8 @@ import { BarsaPishnamayeshPayamComponent } from './barsa-pishnamayesh-payam/bars
172
172
  import { BarsaTextEllipsisComponent } from './barsa-text-ellipsis/barsa-text-ellipsis.component';
173
173
  import { BarsaListFileLinearGmailComponent } from './barsa-list-file-linear-gmail/barsa-list-file-linear-gmail.component';
174
174
  import { BarsaLinkableItemsPanelComponent } from './barsa-linkable-items-panel/barsa-linkable-items-panel.component';
175
+ import { BarsaEnumMenuButtonComponent } from './barsa-enum-menu-button/barsa-enum-menu-button.component';
176
+ import { BarsaCardLayoutPanelComponent } from './barsa-card-layout-panel/barsa-card-layout-panel.component';
175
177
  export const components = [
176
178
  UiTextFieldComponent,
177
179
  LyLayoutFieldLabelComponent,
@@ -331,7 +333,9 @@ export const components = [
331
333
  BarsaPishnamayeshPayamComponent,
332
334
  BarsaTextEllipsisComponent,
333
335
  BarsaListFileLinearGmailComponent,
334
- BarsaLinkableItemsPanelComponent
336
+ BarsaLinkableItemsPanelComponent,
337
+ BarsaEnumMenuButtonComponent,
338
+ BarsaCardLayoutPanelComponent
335
339
  ];
336
340
  export const pipes = [
337
341
  UploadFileStatusPipe,
@@ -447,4 +451,4 @@ export const INIT_SAPFIORI = (rtlService, contentDensityService, themeService, p
447
451
  }
448
452
  });
449
453
  };
450
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTBELGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkgsT0FBTyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBaUIsTUFBTSxzQkFBc0IsQ0FBQztBQUN2SCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTlCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxxRUFBcUUsQ0FBQztBQUN2SCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNyRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUM3RixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUMvRyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNyRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNsRyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUN0RyxPQUFPLEVBQUUs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NEJBQzVDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7eUJBQ3hDO3dCQUNELElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO3dCQUNyQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO3FCQUM3QztvQkFDRCxNQUFNO2FBQ2I7U0FDSjtRQUNELElBQUksS0FBSyxFQUFFO1lBQ1AsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO2dCQUM1QixRQUFRLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLE1BQU0sQ0FBQyxDQUFDO2FBQ3RFO2lCQUFNO2dCQUNILFFBQVEsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUM7YUFDdkU7WUFDRCxhQUFhLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUN4RDtJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUnRsU2VydmljZSwgVGhlbWVzU2VydmljZSwgR2xvYmFsQ29udGVudERlbnNpdHlTZXJ2aWNlLCBDb250ZW50RGVuc2l0eU1vZGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xuaW1wb3J0IHsgQmFyc2FBcGksIGdldERldmljZUlzTW9iaWxlLCBnZXREZXZpY2VJc1Bob25lLCBnZXREZXZpY2VJc1RhYmxldCwgUG9ydGFsU2VydmljZSB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBVaVRleHRGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vdWktdGV4dC1maWVsZC91aS10ZXh0LWZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMeUxheW91dEZpZWxkTGFiZWxDb21wb25lbnQgfSBmcm9tICcuL2x5LWxheW91dC1maWVsZC1sYWJlbC9seS1sYXlvdXQtZmllbGQtbGFiZWwuY29tcG9uZW50JztcbmltcG9ydCB7IFVpQ2hlY2tCb3hDb21wb25lbnQgfSBmcm9tICcuL3VpLWNoZWNrLWJveC91aS1jaGVjay1ib3guY29tcG9uZW50JztcbmltcG9ydCB7IFVpU2ltcGxlQ29tYm9Db21wb25lbnQgfSBmcm9tICcuL3VpLXNpbXBsZS1jb21iby91aS1zaW1wbGUtY29tYm8uY29tcG9uZW50JztcbmltcG9ydCB7IFVpUmFkaW9Hcm91cENvbXBvbmVudCB9IGZyb20gJy4vdWktcmFkaW8tZ3JvdXAvdWktcmFkaW8tZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IFVpR3JpZENvbXBvbmVudCB9IGZyb20gJy4vdWktZ3JpZC91aS1ncmlkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMeUxheW91dENvbnRhaW5lck9mUm9vdENvbXBvbmVudCB9IGZyb20gJy4vbHktbGF5b3V0LWNvbnRhaW5lci1vZi1yb290L2x5LWxheW91dC1jb250YWluZXItb2Ytcm9vdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTHlMYXlvdXRQYW5lbENvbXBvbmVudCB9IGZyb20gJy4vbHktbGF5b3V0LXBhbmVsL2x5LWxheW91dC1wYW5lbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVWlSZWFkT25seUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi91aS1yZWFkLW9ubHktZmllbGQvdWktcmVhZC1vbmx5LWZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVaUNvbnRhaW5lcldpdGhCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL3VpLWNvbnRhaW5lci13aXRoLWJ1dHRvbi91aS1jb250YWluZXItd2l0aC1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IFVpUGljdHVyZUZpbGVDb21wb25lbnQgfSBmcm9tICcuL3VpLXBpY3R1cmUtZmlsZS91aS1waWN0dXJlLWZpbGUuY29tcG9uZW50JztcbmltcG9ydCB7IFVpTW9JbmZvVWx2Q29tYm9Db21wb25lbnQgfSBmcm9tICcuL3VpLW1vLWluZm8tdWx2LWNvbWJvL3VpLW1vLWluZm8tdWx2LWNvbWJvLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVaU11bHRpU2VsZWN0Q29tYm9Db21wb25lbnQgfSBmcm9tICcuL3VpLW11bHRpLXNlbGVjdC1jb21iby91aS1tdWx0aS1zZWxlY3QtY29tYm8uY29tcG9uZW50JztcbmltcG9ydCB7IFVpTnVtRGVjaW1hbFVpQ29tcG9uZW50IH0gZnJvbSAnLi91aS1udW0tZGVjaW1hbC11aS91aS1udW0tZGVjaW1hbC11aS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVWlOdW1JbnRVaUNvbXBvbmVudCB9IGZyb20gJy4vdWktbnVtLWludC11aS91aS1udW0taW50LXVpLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVaVRpbWVTcGFuQ29tcG9uZW50IH0gZnJvbSAnLi91aS10aW1lLXNwYW4vdWktdGltZS1zcGFuLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVaUZpbGVMaW5lYXJMaXN0Qm94Q29tcG9uZW50IH0gZnJvbSAnLi91aS1maWxlLWxpbmVhci1saXN0LWJveC91aS1maWxlLWxpbmVhci1saXN0LWJveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTHlFbXB0eVNwYWNlQ29tcG9uZW50IH0gZnJvbSAnLi9seS1lbXB0eS1zcGFjZS9seS1lbXB0eS1zcGFjZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVWlTaW5nbGVQaWN0dXJlQ29tcG9uZW50IH0gZnJvbSAnLi91aS1zaW5nbGUtcGljdHVyZS91aS1zaW5nbGUtcGljdHVyZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVWx2U2VsZWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi91bHYtc2VsZWN0aW9uL3Vsdi1zZWxlY3Rpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFVsdlRvb2xiYXJDb21wb25lbnQgfSBmcm9tICcuL3Vsdi10b29sYmFyL3Vsdi10b29sYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVbHZQYWdpbmdDb21wb25lbnQgfSBmcm9tICcuL3Vsdi1wYWdpbmcvdWx2LXBhZ2luZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgVWlHcmlkU29ydFNldHRpbmdDb21wb25lbnQgfSBmcm9tICcuL3VpLWdyaWQtc29ydC1zZXR0aW5nL3VpLWdyaWQtc29ydC1zZXR0aW5nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVaUdyaWRTb3J0SXRlbUNvbXBvbmVudCB9IGZyb20gJy4vdWktZ3JpZC1zb3J0LWl0ZW0vdWktZ3JpZC1zb3J0LWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IFVpR3JpZENvbHVtbnNDb21wb25lbnQgfSBmcm9tICcuL3VpLWdyaWQtY29sdW1ucy91aS1ncmlkLWNvbHVtbnMuY29tcG9uZW50JztcbmltcG9ydCB7IE1hc2tDb21wb25lbnQgfSBmcm9tICcuL21hc2svbWFzay5jb21wb25lbnQnO1xuaW1wb3J0IHsgVWlJbmZvQmFyUGFuZWxDb21wb25lbnQgfSBmcm9tICcuL3VpLWluZm8tYmFyLXBhbmVsL3VpLWluZm8tYmFyLXBhbmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVaUZvcm1QYW5lbFRvb2xiYXJDb21wb25lbnQgfSBmcm9tICcuL3VpLWZvcm0tcGFuZWwtdG9vbGJhci91aS1mb3JtLXBhbmVsLXRvb2xiYXIuY29tcG9uZW50JztcbmltcG9ydCB7IFVpRm9ybVBhbmVsQ29tcG9uZW50IH0gZnJvbSAnLi91aS1mb3JtLXBhbmVsL3VpLWZvcm0tcGFuZWwuY29tcG9uZW50JztcbmltcG9ydCB7IFVpU2VhcmNoQ29tbWFuZEluZm9VaUNvbXBvbmVudCB9IGZyb20gJy4vdWktc2VhcmNoLWNvbW1hbmQtaW5mby11aS91aS1zZWFyY2gtY29tbWFuZC1pbmZvLXVpLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVbHZTZXR0aW5nc0NvbXBvbmVudCB9IGZyb20gJy4vdWx2LXNldHRpbmdzL3Vsdi1zZXR0aW5ncy5jb21wb25lbnQnO1xuaW1wb3J0IHsgVWlUaW55bWNlQ29tcG9uZW50IH0gZnJvbSAnLi91aS10aW55bWNlL3VpLXRpbnltY2UuY29tcG9uZW50JztcbmltcG9ydCB7IFVpQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi91aS1idXR0b24vdWktYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVaURhdGVUaW1lQ29tcG9uZW50IH0gZnJvbSAnLi91aS1kYXRlLXRpbWUvdWktZGF0ZS10aW1lLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtLWRpYWxvZy9mb3JtLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgSGVhZGVyRmFjZXRLZXlWYWx1ZUNvbXBvbmVudCB9IGZyb20gJy4vaGVhZGVyLWZhY2V0LWtleS12YWx1ZS9oZWFkZXItZmFjZXQta2V5LXZhbHVlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIZWFkZXJGYWNldEZvcm1Db21wb25lbnQgfSBmcm9tICcuL2hlYWRlci1mYWNldC1mb3JtL2hlYWRlci1mYWNldC1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIZWFkZXJGYWNldFJhdGVDb21wb25lbnQgfSBmcm9tICcuL2hlYWRlci1mYWNldC1yYXRlL2hlYWRlci1mYWNldC1yYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIZWFkZXJGYWNldFByb2dyZXNzQ29tcG9uZW50IH0gZnJvbSAnLi9oZWFkZXItZmFjZXQtcHJvZ3Jlc3MvaGVhZGVyLWZhY2V0LXByb2dyZXNzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIZWFkZXJGYWNldE1pY3JvY2hhcnRDb21wb25lbnQgfSBmcm9tICcuL2hlYWRlci1mYWNldC1taWNyb2NoYXJ0L2hlYWRlci1mYWNldC1taWNyb2NoYXJ0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIZWFkZXJGYWNldFBsYWluVGV4dENvbXBvbmVudCB9IGZyb20gJy4vaGVhZGVyLWZhY2V0LXBsYWluLXRleHQvaGVhZGVyLWZhY2V0LXBsYWluLXRleHQuY29tcG9uZW50JztcbmltcG9ydCB7IFVpTW9JbmZvU3ViRm9ybVVpQ29tcG9uZW50IH0gZnJvbSAnLi91aS1tby1pbmZvLXN1Yi1mb3JtLXVpL3VpLW1vLWluZm8tc3ViLWZvcm0tdWkuY29tcG9uZW50JztcbmltcG9ydCB7IFJlc3BvbnNpdmVUb29sYmFyQ29tcG9uZW50IH0gZnJvbSAnLi9yZXNwb25zaXZlLXRvb2xiYXIvcmVzcG9uc2l2ZS10b29sYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZXNwb25zaXZlVG9vbGJhclJlbmRlcmVyQ29tcG9uZW50IH0gZnJvbSAnLi9yZXNwb25zaXZlLXRvb2xiYXItcmVuZGVyZXIvcmVzcG9uc2l2ZS10b29sYmFyLXJlbmRlcmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVaVRleHRBcmVhQ29tcG9uZW50IH0gZnJvbSAnLi91aS10ZXh0LWFyZWEvdWktdGV4dC1hcmVhLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMYXlvdXRDb250cm9sQ29tcG9uZW50IH0gZnJvbSAnLi9sYXlvdXQtY29udHJvbC9sYXlvdXQtY29udHJvbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGF5b3V0V2l6YXJkQ29tcG9uZW50IH0gZnJvbSAnLi9sYXlvdXQtd2l6YXJkL2xheW91dC13aXphcmQuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1XaXphcmRDb21wb25lbnQgfSBmcm9tICcuL2Zvcm0td2l6YXJkL2Zvcm0td2l6YXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBXaXphcmRMYXlvdXREaXJlY3RpdmUgfSBmcm9tICcuL3dpemFyZC1sYXlvdXQuZGlyZWN0aXZlJztcbmltcG9ydCB7IEZvcm1EaWFsb2dMZXNzQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtLWRpYWxvZy1sZXNzL2Zvcm0tZGlhbG9nLWxlc3MuY29tcG9uZW50JztcbmltcG9ydCB7IFJpY2hUZXh0U3RhdGljQ29tcG9uZW50IH0gZnJvbSAnLi9yaWNoLXRleHQtc3RhdGljL3JpY2gtdGV4dC1zdGF0aWMuY29tcG9uZW50JztcbmltcG9ydCB7IFVpUGljdHVyZXNJbmZvQ29tcG9uZW50IH0gZnJvbSAnLi91aS1waWN0dXJlcy1pbmZvL3VpLXBpY3R1cmVzLWluZm8uY29tcG9uZW50JztcbmltcG9ydCB7IEx5SG9yaXpvbnRhbExheW91dENvbXBvbmVudCB9IGZyb20gJy4vbHktaG9yaXpvbnRhbC1sYXlvdXQvbHktaG9yaXpvbnRhbC1sYXlvdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEx5VmVydGljYWxMYXlvdXRDb21wb25lbnQgfSBmcm9tICcuL2x5LXZlcnRpY2FsLWxheW91dC9seS12ZXJ0aWNhbC1sYXlvdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEx5VGFiQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9seS10YWItY29udGFpbmVyL2x5LXRhYi1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEx5VGFiUGFnZUNvbXBvbmVudCB9IGZyb20gJy4vbHktdGFiLXBhZ2UvbHktdGFiLXBhZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IEx5TGFiZWxDb21wb25lbnQgfSBmcm9tICcuL2x5LWxhYmVsL2x5LWxhYmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb2xSZW5kZXJlckRpcmVjdGl2ZSB9IGZyb20gJy4vY29sLXJlbmRlcmVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBVaU1vSW5mb0NvbWJvVmlld2VyQ29tcG9uZW50IH0gZnJvbSAnLi91aS1tby1pbmZvLWNvbWJvLXZpZXdlci91aS1tby1pbmZvLWNvbWJvLXZpZXdlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVWxNc2dCb3hBZGFwdGVyQ29tcG9uZW50IH0gZnJvbSAnLi91bC1tc2ctYm94LWFkYXB0ZXIvdWwtbXNnLWJveC1hZGFwdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIZWFkZXJBdmF0YXJDb21wb25lbnQgfSBmcm9tICcuL2hlYWRlci1hdmF0YXIvaGVhZGVyLWF2YXRhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXBwbHlDb25kaXRpb25hbEZvcm1hdHNEaXJlY3RpdmUgfSBmcm9tICcuL2FwcGx5LWNvbmRpdGlvbmFsLWZvcm1tYXRpbmdzLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBVaVdvcmtmbG93UGFuZWxVaUNvbXBvbmVudCB9IGZyb20gJy4vdWktd29ya2Zsb3ctcGFuZWwtdWkvdWktd29ya2Zsb3ctcGFuZWwtdWkuY29tcG9uZW50JztcbmltcG9ydCB7IFVsdkNvbnRleHRNZW51Q29tcG9uZW50IH0gZnJvbSAnLi91bHYtY29udGV4dC1tZW51L3Vsdi1jb250ZXh0LW1lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IFVsTG9hZGluZ01hc2tVaUNvbXBvbmVudCB9IGZyb20gJy4vdWwtbG9hZGluZy1tYXNrLXVpL3VsLWxvYWRpbmctbWFzay11aS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVWlUZXh0RmllbGRBdXRvQ29tcGxldGVDb21wb25lbnQgfSBmcm9tICcuL3VpLXRleHQtZmllbGQtYXV0by1jb21wbGV0ZS91aS10ZXh0LWZpZWxkLWF1dG8tY29tcGxldGUuY29tcG9uZW50JztcbmltcG9ydCB7IENhcHRjaGFGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vY2FwdGNoYS1maWVsZC9jYXB0Y2hhLWZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMeVNpbXBsZUxhYmVsQ29tcG9uZW50IH0gZnJvbSAnLi9seS1zaW1wbGUtbGFiZWwvbHktc2ltcGxlLWxhYmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHbG9iYWxTZWFyY2hQYW5lbENvbXBvbmVudCB9IGZyb20gJy4vZ2xvYmFsLXNlYXJjaC1wYW5lbC9nbG9iYWwtc2VhcmNoLXBhbmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHbG9iYWxTZWFyY2hNb2R1bGVDb21wb25lbnQgfSBmcm9tICcuL2dsb2JhbC1zZWFyY2gtbW9kdWxlL2dsb2JhbC1zZWFyY2gtbW9kdWxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHbG9iYWxTZWFyY2hDb21wb25lbnQgfSBmcm9tICcuL2dsb2JhbC1zZWFyY2gvZ2xvYmFsLXNlYXJjaC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSHlwZXJsaW5rQ29tcG9uZW50IH0gZnJvbSAnLi9oeXBlcmxpbmsvaHlwZXJsaW5rLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdGF0aWNUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi9zdGF0aWMtdGV4dC9zdGF0aWMtdGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVWxUb2FzdEFkYXB0ZXJDb21wb25lbnQgfSBmcm9tICcuL3VsLXRvYXN0LWFkYXB0ZXIvdWwtdG9hc3QtYWRhcHRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWVzc2FnZVN0cmlwQ29tcG9uZW50IH0gZnJvbSAnLi9tZXNzYWdlLXN0cmlwL21lc3NhZ2Utc3RyaXAuY29tcG9uZW50JztcbmltcG9ydCB7IFVpTGluZWFyTGlzdENvbnRhaW5lcldpdGhCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL3VpLWxpbmVhci1saXN0LWNvbnRhaW5lci13aXRoLWJ1dHRvbi91aS1saW5lYXItbGlzdC1jb250YWluZXItd2l0aC1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IEZ1bmRhbWVudGFsRHluYW1pY0Zvcm1Db21wb25lbnQgfSBmcm9tICcuL2Z1bmRhbWVudGFsLWR5bmFtaWMtZm9ybS9mdW5kYW1lbnRhbC1keW5hbWljLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IExheW91dEFjdGlvbnNDb21wb25lbnQgfSBmcm9tICcuL2xheW91dC1hY3Rpb25zL2xheW91dC1hY3Rpb25zLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMeUxheW91dENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vbHktbGF5b3V0LWNvbnRhaW5lci9seS1sYXlvdXQtY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVaVVsdkZvcm1NdWx0aVNlbGVjdFVpQ29tcG9uZW50IH0gZnJvbSAnLi91aS11bHYtZm9ybS1tdWx0aS1zZWxlY3QtdWkvdWktdWx2LWZvcm0tbXVsdGktc2VsZWN0LXVpLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVbHZGb3JtTXVsdGlTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL3Vsdi1mb3JtLW11bHRpLXNlbGVjdC91bHYtZm9ybS1tdWx0aS1zZWxlY3QuY29tcG9uZW50JztcbmltcG9ydCB7IFVsdkNvbHVtblNldHRpbmdzQ29tcG9uZW50IH0gZnJvbSAnLi91bHYtY29sdW1uLXNldHRpbmdzL3Vsdi1jb2x1bW4tc2V0dGluZ3MuY29tcG9uZW50JztcbmltcG9ydCB7IFVsdkZpbHRlclNldHRpbmdzQ29tcG9uZW50IH0gZnJvbSAnLi91bHYtZmlsdGVyLXNldHRpbmdzL3Vsdi1maWx0ZXItc2V0dGluZ3MuY29tcG9uZW50JztcbmltcG9ydCB7IFVsdlNvcnRTZXR0aW5nc0NvbXBvbmVudCB9IGZyb20gJy4vdWx2LXNvcnQtc2V0dGluZ3MvdWx2LXNvcnQtc2V0dGluZ3MuY29tcG9uZW50JztcbmltcG9ydCB7IFVsdkdyb3VwYnlTZXR0aW5nc0NvbXBvbmVudCB9IGZyb20gJy4vdWx2LWdyb3VwYnktc2V0dGluZ3MvdWx2LWdyb3VwYnktc2V0dGluZ3MuY29tcG9uZW50JztcbmltcG9ydCB7IEJhcnNhTGlzdEZpbGVMaW5lYXJDb21wb25lbnQgfSBmcm9tICcuL2JhcnNhLWxpc3QtZmlsZS1saW5lYXIvYmFyc2EtbGlzdC1maWxlLWxpbmVhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVWlQZGZWaWV3ZXJDb21wb25lbnQgfSBmcm9tICcuL3VpLXBkZi12aWV3ZXIvdWktcGRmLXZpZXdlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFyc2FUaW55ZW1jZUNvbXBvbmVudCB9IGZyb20gJy4vYmFyc2EtdGlueWVtY2UvYmFyc2EtdGlueWVtY2UuY29tcG9uZW50JztcbmltcG9ydCB7IFVpTW9uYWNvRWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi91aS1tb25hY28tZWRpdG9yL3VpLW1vbmFjby1lZGl0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IEJhcnNhTW9uYWNvRWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9iYXJzYS1tb25hY28tZWRpdG9yL2JhcnNhLW1vbmFjby1lZGl0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IEJhcnNhRGF0ZVRpbWVQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL2JhcnNhLWRhdGUtdGltZS1waWNrZXIvYmFyc2EtZGF0ZS10aW1lLXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFyc2FUcmVlSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vYmFyc2EtdHJlZS1pdGVtL2JhcnNhLXRyZWUtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVXBsb2FkRmlsZVN0YXR1c1BpcGUgfSBmcm9tICcuL3VwbG9hZC1maWxlLXN0YXR1cy5waXBlJztcbmltcG9ydCB7IFVpU3dpdGNoQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi91aS1zd2l0Y2gtYnV0dG9uL3VpLXN3aXRjaC1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IFVpQ29sb3JVaUNvbXBvbmVudCB9IGZyb20gJy4vdWktY29sb3ItdWkvdWktY29sb3ItdWkuY29tcG9uZW50JztcbmltcG9ydCB7IEx5TGluZUNvbXBvbmVudCB9IGZyb20gJy4vbHktbGluZS9seS1saW5lLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVaVVsdk1haW5VaUNvbXBvbmVudCB9IGZyb20gJy4vdWktdWx2LW1haW4tdWkvdWktdWx2LW1haW4tdWkuY29tcG9uZW50JztcbmltcG9ydCB7IFJlcG9ydE5hdmlnYXRvckNvbXBvbmVudCB9IGZyb20gJy4vcmVwb3J0LW5hdmlnYXRvci9yZXBvcnQtbmF2aWdhdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYW5hZ2VGaWx0ZXJzUmVwb3J0Q29tcG9uZW50IH0gZnJvbSAnLi9tYW5hZ2UtZmlsdGVycy1yZXBvcnQvbWFuYWdlLWZpbHRlcnMtcmVwb3J0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZXBvcnRTZWFyY2hGaWVsZHNNYW5hZ2VDb21wb25lbnQgfSBmcm9tICcuL3JlcG9ydC1zZWFyY2gtZmllbGRzLW1hbmFnZS9yZXBvcnQtc2VhcmNoLWZpZWxkcy1tYW5hZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IFJlcG9ydFNlYXJjaEZpZWxkc0hpZGRlblNldHRpbmdzQ29tcG9uZW50IH0gZnJvbSAnLi9yZXBvcnQtc2VhcmNoLWZpZWxkcy1oaWRkZW4tc2V0dGluZ3MvcmVwb3J0LXNlYXJjaC1maWVsZHMtaGlkZGVuLXNldHRpbmdzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWFyY2hQYW5lbENvbXBvbmVudCB9IGZyb20gJy4vc2VhcmNoLXBhbmVsL3NlYXJjaC1wYW5lbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVwb3J0U2VhcmNoUGFuZWxTYXZlQ29tcG9uZW50IH0gZnJvbSAnLi9yZXBvcnQtc2VhcmNoLXBhbmVsLXNhdmUvcmVwb3J0LXNlYXJjaC1wYW5lbC1zYXZlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVaUdyaWRGaWx0ZXJTZXR0aW5nc0NvbXBvbmVudCB9IGZyb20gJy4vdWktZ3JpZC1maWx0ZXItc2V0dGluZ3MvdWktZ3JpZC1maWx0ZXItc2V0dGluZ3MuY29tcG9uZW50JztcbmltcG9ydCB7IFVpR3JpZEZpbHRlckl0ZW1Db21wb25lbnQgfSBmcm9tICcuL3VpLWdyaWQtZmlsdGVyLWl0ZW0vdWktZ3JpZC1maWx0ZXItaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2FwRm9udFBpcGUgfSBmcm9tICcuL3NhcC1mb250LnBpcGUnO1xuaW1wb3J0IHsgU2FwRm9udENsYXNzUGlwZSB9IGZyb20gJy4vc2FwLWZvbnQtY2xhc3MucGlwZSc7XG5pbXBvcnQgeyBVaURhdGVSYW5nZUV4Q29tcG9uZW50IH0gZnJvbSAnLi91aS1kYXRlLXJhbmdlLWV4L3VpLWRhdGUtcmFuZ2UtZXguY29tcG9uZW50JztcbmltcG9ydCB7IFVsTm90aWZ5UG9wdXBDb21wb25lbnQgfSBmcm9tICcuL3VsLW5vdGlmeS1wb3B1cC91bC1ub3RpZnktcG9wdXAuY29tcG9uZW50JztcbmltcG9ydCB7IFVpVGFibGVWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi91aS10YWJsZS12aWV3L3VpLXRhYmxlLXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IFVpTGlzdFZpZXdDb21wb25lbnQgfSBmcm9tICcuL3VpLWxpc3Qtdmlldy91aS1saXN0LXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IFN0cmluZ1RvQXJyYXlQaXBlLCBVaUNhcmRWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi91aS1jYXJkLXZpZXcvdWktY2FyZC12aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVaVJlcG9ydENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vdWktcmVwb3J0LWNvbnRhaW5lci91aS1yZXBvcnQtY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOb0RhdGFDb21wb25lbnQgfSBmcm9tICcuL25vLWRhdGEvbm8tZGF0YS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29sdW1uUmVuZGVyZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbHVtbi1yZW5kZXJlci9jb2x1bW4tcmVuZGVyZXIuY29tcG9uZW50JztcbmltcG9ydCB7IElubGluZVNhdmVBbmRDYW5jZWxDb21wb25lbnQgfSBmcm9tICcuL2lubGluZS1zYXZlLWFuZC1jYW5jZWwvaW5saW5lLXNhdmUtYW5kLWNhbmNlbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVWlUcmVlVmlld0NvbXBvbmVudCB9IGZyb20gJy4vdWktdHJlZS12aWV3L3VpLXRyZWUtdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgVWlUcmVlQ29tcG9uZW50IH0gZnJvbSAnLi91aS10cmVlL3VpLXRyZWUuY29tcG9uZW50JztcbmltcG9ydCB7IFVpQ2FsZW5kYXJDb21wb25lbnQgfSBmcm9tICcuL3VpLWNhbGVuZGFyL3VpLWNhbGVuZGFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOb2RlSGFzT25lRGVwdGhMZXZlbFBpcGUgfSBmcm9tICcuL2JhcnNhLXRyZWUtaXRlbS9ub2RlLWhhcy1vbmUtZGVwdGgtbGV2ZWwucGlwZSc7XG5pbXBvcnQgeyBVaUFzcFJlcG9ydFZpZXdlckNvbXBvbmVudCB9IGZyb20gJy4vdWktYXNwLXJlcG9ydC12aWV3ZXIvdWktYXNwLXJlcG9ydC12aWV3ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFVpR3JhcGhDb21wb25lbnQgfSBmcm9tICcuL3VpLWdyYXBoL3VpLWdyYXBoLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVaUV4Y2VwdGlvbkZvcm1Db21wb25lbnQgfSBmcm9tICcuL3VpLWV4Y2VwdGlvbi1mb3JtL3VpLWV4Y2VwdGlvbi1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVaUVkaXRhYmxlR3JpZENvbXBvbmVudCB9IGZyb20gJy4vdWktZWRpdGFibGUtZ3JpZC91aS1lZGl0YWJsZS1ncmlkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb2x1bW5NYXRyaXhSZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJy4vY29sdW1uLW1hdHJpeC1yZW5kZXJlci9jb2x1bW4tbWF0cml4LXJlbmRlcmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVaU1hdHJpeFZpZXdDb21wb25lbnQgfSBmcm9tICcuL3VpLW1hdHJpeC12aWV3L3VpLW1hdHJpeC12aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDdXN0b21EYXRlVGltZUNvbXBvbmVudCB9IGZyb20gJy4vY3VzdG9tLWRhdGUtdGltZS9jdXN0b20tZGF0ZS10aW1lLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRyaXhWYWx1ZVBpcGUgfSBmcm9tICcuL2NvbHVtbi1tYXRyaXgtcmVuZGVyZXIvbWF0cml4LXZhbHVlLnBpcGUnO1xuaW1wb3J0IHsgQmFyc2FBc3BWaWV3ZXJDb21wb25lbnQgfSBmcm9tICcuL2JhcnNhLWFzcC12aWV3ZXIvYmFyc2EtYXNwLXZpZXdlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmlsZUluRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9maWxlLWluLWRpYWxvZy9maWxlLWluLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRHluYW1pY1BhZ2VTaXplUGlwZSB9IGZyb20gJy4vZHluYW1pYy1wYWdlLXNpemUucGlwZSc7XG5pbXBvcnQgeyBSZXBvcnRWaWV3UmVuZGVyZXJEaXJlY3RpdmUgfSBmcm9tICcuL3JlcG9ydC12aWV3LXJlbmRlcmVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBVaU1vSW5mb0dlbmVyYWxPYmplY3RVaUNvbXBvbmVudCB9IGZyb20gJy4vdWktbW8taW5mby1nZW5lcmFsLW9iamVjdC11aS91aS1tby1pbmZvLWdlbmVyYWwtb2JqZWN0LXVpLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVaUdhbnR0Q2hhcnRDb21wb25lbnQgfSBmcm9tICcuL3VpLWdhbnR0LWNoYXJ0L3VpLWdhbnR0LWNoYXJ0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHYW50dERodG1sQ2hhcnRWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9nYW50dC1kaHRtbC1jaGFydC12aWV3L2dhbnR0LWRodG1sLWNoYXJ0LXZpZXcuY29tcG9uZW50JztcblxuaW1wb3J0IHsgRnVsbHNjcmVlbkRpYWxvZ0RpcmVjdGl2ZSB9IGZyb20gJy4vZnVsbHNjcmVlbi1kaWFsb2cuZGlyZWN0aXZlJztcbmltcG9ydCB7IFByb2dyZXNzSW5kaWNhdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9wcm9ncmVzcy1pbmRpY2F0b3IvcHJvZ3Jlc3MtaW5kaWNhdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYXJkVmlld0NvbnRlbnRDb21wb25lbnQgfSBmcm9tICcuL2NhcmQtdmlldy1jb250ZW50L2NhcmQtdmlldy1jb250ZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYXJkSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vY2FyZC1pdGVtL2NhcmQtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVWlDYXJkVmlld0hvcml6b250YWxHcm91cENvbXBvbmVudCB9IGZyb20gJy4vdWktY2FyZC12aWV3LWhvcml6b250YWwtZ3JvdXAvdWktY2FyZC12aWV3LWhvcml6b250YWwtZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IFRpdGxlQ29tcG9uZW50IH0gZnJvbSAnLi90aXRsZS90aXRsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFyc2FVbHZNYWluQ29tcG9uZW50IH0gZnJvbSAnLi9iYXJzYS11bHYtbWFpbi9iYXJzYS11bHYtbWFpbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGlzdEl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2xpc3QtaXRlbS9saXN0LWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IEh0cmVlQ3JlYXRlTmV3Q29tcG9uZW50IH0gZnJvbSAnLi9odHJlZS1jcmVhdGUtbmV3L2h0cmVlLWNyZWF0ZS1uZXcuY29tcG9uZW50JztcbmltcG9ydCB7IEJhcnNhVGFibGVSb3dDb21wb25lbnQgfSBmcm9tICcuL2JhcnNhLXRhYmxlLXJvdy9iYXJzYS10YWJsZS1yb3cuY29tcG9uZW50JztcbmltcG9ydCB7IEJhcnNhVGFibGVDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuL2JhcnNhLXRhYmxlLWNvbHVtbi9iYXJzYS10YWJsZS1jb2x1bW4uY29tcG9uZW50JztcbmltcG9ydCB7IEJhcnNhVGFibGVIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL2JhcnNhLXRhYmxlLWhlYWRlci9iYXJzYS10YWJsZS1oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEJyZWFkY3J1bWJDb21wb25lbnQgfSBmcm9tICcuL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVWlMYWJlbENvbXBvbmVudCB9IGZyb20gJy4vdWktbGFiZWwvdWktbGFiZWwuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1Ub29sYmFyQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtLXRvb2xiYXItYnV0dG9uL2Zvcm0tdG9vbGJhci1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IEJhcnNhU2VhcmNoRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vYmFyc2Etc2VhcmNoLWZvcm0vYmFyc2Etc2VhcmNoLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IFJlcG9ydE5ld1RvcEZvcm1Db21wb25lbnQgfSBmcm9tICcuL3JlcG9ydC1uZXctdG9wLWZvcm0vcmVwb3J0LW5ldy10b3AtZm9ybS5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBCYXJzYU5ldHdvcmtPZmZsaW5lQ29tcG9uZW50IH0gZnJvbSAnLi9iYXJzYS1uZXR3b3JrLW9mZmxpbmUvYmFyc2EtbmV0d29yay1vZmZsaW5lLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCbG9iVmlld2VyQ29tcG9uZW50IH0gZnJvbSAnLi9ibG9iLXZpZXdlci9ibG9iLXZpZXdlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmlsZVZpZXdlckNvbXBvbmVudCB9IGZyb20gJy4vZmlsZS12aWV3ZXIvZmlsZS12aWV3ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEZpbGVWaWV3ZXJDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi9maWxlLXZpZXdlci1jb250ZW50L2ZpbGUtdmlld2VyLWNvbnRlbnQuY29tcG9uZW50JztcbmltcG9ydCB7IEZpbGVWaWV3ZXJQb3BvdmVyQ29tcG9uZW50IH0gZnJvbSAnLi9maWxlLXZpZXdlci1wb3BvdmVyL2ZpbGUtdmlld2VyLXBvcG92ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IERvd25sb2FkRmlsZXNEaXJlY3RpdmUgfSBmcm9tICcuL2Rvd25sb2FkLWZpbGVzLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGdWxsc2NyZWVuRmlsZXNEaXJlY3RpdmUgfSBmcm9tICcuL2Z1bGxzY3JlZW4tZmlsZXMuZGlyZWN0aXZlJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvbkl0ZW1Db21wb25lbnQgfSBmcm9tICcuL25vdGlmaWNhdGlvbi1pdGVtL25vdGlmaWNhdGlvbi1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCYXJzYUNhcnRhYmxlVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2JhcnNhLWNhcnRhYmxlLXRlbXBsYXRlL2JhcnNhLWNhcnRhYmxlLXRlbXBsYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCYXJzYUNhcnRhYmxlR3JvdXBDb21wb25lbnQgfSBmcm9tICcuL2JhcnNhLWdyb3VwLWNhcnRhYmxlL2JhcnNhLWNhcnRhYmxlLWdyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCYXJzYUNhcnRhYmxlRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vYmFyc2EtY2FydGFibGUtZm9ybS9iYXJzYS1jYXJ0YWJsZS1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCYXJzYUNvbHVtbkluZGljYXRvckNvbXBvbmVudCB9IGZyb20gJy4vYmFyc2EtY29sdW1uLWluZGljYXRvci9iYXJzYS1jb2x1bW4taW5kaWNhdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCYXJzYUZpZWxkS2V5VmFsdWVDb21wb25lbnQgfSBmcm9tICcuL2JhcnNhLWZpZWxkLWtleS12YWx1ZS9iYXJzYS1maWVsZC1rZXktdmFsdWUuY29tcG9uZW50JztcbmltcG9ydCB7IEJhcnNhVG9vbGJhcml0ZW1TZWFyY2hDb21wb25lbnQgfSBmcm9tICcuL2JhcnNhLXRvb2xiYXJpdGVtLXNlYXJjaC9iYXJzYS10b29sYmFyaXRlbS1zZWFyY2guY29tcG9uZW50JztcbmltcG9ydCB7IFVpSHRtbFZpZXdlckNvbXBvbmVudCB9IGZyb20gJy4vdWktaHRtbC12aWV3ZXIvdWktaHRtbC12aWV3ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEJhcnNhUGlzaG5hbWF5ZXNoUGF5YW1Db21wb25lbnQgfSBmcm9tICcuL2JhcnNhLXBpc2huYW1heWVzaC1wYXlhbS9iYXJzYS1waXNobmFtYXllc2gtcGF5YW0uY29tcG9uZW50JztcbmltcG9ydCB7IEJhcnNhVGV4dEVsbGlwc2lzQ29tcG9uZW50IH0gZnJvbSAnLi9iYXJzYS10ZXh0LWVsbGlwc2lzL2JhcnNhLXRleHQtZWxsaXBzaXMuY29tcG9uZW50JztcbmltcG9ydCB7IEJhcnNhTGlzdEZpbGVMaW5lYXJHbWFpbENvbXBvbmVudCB9IGZyb20gJy4vYmFyc2EtbGlzdC1maWxlLWxpbmVhci1nbWFpbC9iYXJzYS1saXN0LWZpbGUtbGluZWFyLWdtYWlsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCYXJzYUxpbmthYmxlSXRlbXNQYW5lbENvbXBvbmVudCB9IGZyb20gJy4vYmFyc2EtbGlua2FibGUtaXRlbXMtcGFuZWwvYmFyc2EtbGlua2FibGUtaXRlbXMtcGFuZWwuY29tcG9uZW50JztcblxuZXhwb3J0IGNvbnN0IGNvbXBvbmVudHMgPSBbXG4gICAgVWlUZXh0RmllbGRDb21wb25lbnQsXG4gICAgTHlMYXlvdXRGaWVsZExhYmVsQ29tcG9uZW50LFxuICAgIFVpQ2hlY2tCb3hDb21wb25lbnQsXG4gICAgVWlTaW1wbGVDb21ib0NvbXBvbmVudCxcbiAgICBVaVJhZGlvR3JvdXBDb21wb25lbnQsXG4gICAgVWlHcmlkQ29tcG9uZW50LFxuICAgIEx5TGF5b3V0Q29udGFpbmVyT2ZSb290Q29tcG9uZW50LFxuICAgIEx5TGF5b3V0UGFuZWxDb21wb25lbnQsXG4gICAgVWlSZWFkT25seUZpZWxkQ29tcG9uZW50LFxuICAgIFVpQ29udGFpbmVyV2l0aEJ1dHRvbkNvbXBvbmVudCxcbiAgICBVaVBpY3R1cmVGaWxlQ29tcG9uZW50LFxuICAgIFVpTW9JbmZvVWx2Q29tYm9Db21wb25lbnQsXG4gICAgVWlNdWx0aVNlbGVjdENvbWJvQ29tcG9uZW50LFxuICAgIFVpTnVtRGVjaW1hbFVpQ29tcG9uZW50LFxuICAgIFVpTnVtSW50VWlDb21wb25lbnQsXG4gICAgVWlUaW1lU3BhbkNvbXBvbmVudCxcbiAgICBVaUZpbGVMaW5lYXJMaXN0Qm94Q29tcG9uZW50LFxuICAgIEx5RW1wdHlTcGFjZUNvbXBvbmVudCxcbiAgICBVaVNpbmdsZVBpY3R1cmVDb21wb25lbnQsXG4gICAgVWx2U2VsZWN0aW9uQ29tcG9uZW50LFxuICAgIFVsdlRvb2xiYXJDb21wb25lbnQsXG4gICAgVWx2UGFnaW5nQ29tcG9uZW50LFxuICAgIFVpR3JpZFNvcnRTZXR0aW5nQ29tcG9uZW50LFxuICAgIFVpR3JpZFNvcnRJdGVtQ29tcG9uZW50LFxuICAgIFVpR3JpZENvbHVtbnNDb21wb25lbnQsXG4gICAgTWFza0NvbXBvbmVudCxcbiAgICBVaUluZm9CYXJQYW5lbENvbXBvbmVudCxcbiAgICBVaUZvcm1QYW5lbFRvb2xiYXJDb21wb25lbnQsXG4gICAgVWlGb3JtUGFuZWxDb21wb25lbnQsXG4gICAgVWlTZWFyY2hDb21tYW5kSW5mb1VpQ29tcG9uZW50LFxuICAgIFVsdlNldHRpbmdzQ29tcG9uZW50LFxuICAgIFVpVGlueW1jZUNvbXBvbmVudCxcbiAgICBVaUJ1dHRvbkNvbXBvbmVudCxcbiAgICBVaURhdGVUaW1lQ29tcG9uZW50LFxuICAgIEZvcm1EaWFsb2dDb21wb25lbnQsXG4gICAgSGVhZGVyRmFjZXRLZXlWYWx1ZUNvbXBvbmVudCxcbiAgICBIZWFkZXJGYWNldEZvcm1Db21wb25lbnQsXG4gICAgSGVhZGVyRmFjZXRSYXRlQ29tcG9uZW50LFxuICAgIEhlYWRlckZhY2V0UHJvZ3Jlc3NDb21wb25lbnQsXG4gICAgSGVhZGVyRmFjZXRNaWNyb2NoYXJ0Q29tcG9uZW50LFxuICAgIEhlYWRlckZhY2V0UGxhaW5UZXh0Q29tcG9uZW50LFxuICAgIFVpTW9JbmZvU3ViRm9ybVVpQ29tcG9uZW50LFxuICAgIFJlc3BvbnNpdmVUb29sYmFyQ29tcG9uZW50LFxuICAgIFJlc3BvbnNpdmVUb29sYmFyUmVuZGVyZXJDb21wb25lbnQsXG4gICAgVWlUZXh0QXJlYUNvbXBvbmVudCxcbiAgICBMYXlvdXRDb250cm9sQ29tcG9uZW50LFxuICAgIExheW91dFdpemFyZENvbXBvbmVudCxcbiAgICBGb3JtV2l6YXJkQ29tcG9uZW50LFxuICAgIEZvcm1EaWFsb2dMZXNzQ29tcG9uZW50LFxuICAgIFJpY2hUZXh0U3RhdGljQ29tcG9uZW50LFxuICAgIFVpUGljdHVyZXNJbmZvQ29tcG9uZW50LFxuICAgIEx5SG9yaXpvbnRhbExheW91dENvbXBvbmVudCxcbiAgICBMeVZlcnRpY2FsTGF5b3V0Q29tcG9uZW50LFxuICAgIEx5VGFiQ29udGFpbmVyQ29tcG9uZW50LFxuICAgIEx5VGFiUGFnZUNvbXBvbmVudCxcbiAgICBMeUxhYmVsQ29tcG9uZW50LFxuICAgIFVpTW9JbmZvQ29tYm9WaWV3ZXJDb21wb25lbnQsXG4gICAgVWxNc2dCb3hBZGFwdGVyQ29tcG9uZW50LFxuICAgIFVpVHJlZUNvbXBvbmVudCxcbiAgICBIZWFkZXJBdmF0YXJDb21wb25lbnQsXG4gICAgVWlXb3JrZmxvd1BhbmVsVWlDb21wb25lbnQsXG4gICAgVWx2Q29udGV4dE1lbnVDb21wb25lbnQsXG4gICAgVWxMb2FkaW5nTWFza1VpQ29tcG9uZW50LFxuICAgIFVpVGV4dEZpZWxkQXV0b0NvbXBsZXRlQ29tcG9uZW50LFxuICAgIENhcHRjaGFGaWVsZENvbXBvbmVudCxcbiAgICBMeVNpbXBsZUxhYmVsQ29tcG9uZW50LFxuICAgIEdsb2JhbFNlYXJjaFBhbmVsQ29tcG9uZW50LFxuICAgIEdsb2JhbFNlYXJjaE1vZHVsZUNvbXBvbmVudCxcbiAgICBHbG9iYWxTZWFyY2hDb21wb25lbnQsXG4gICAgSHlwZXJsaW5rQ29tcG9uZW50LFxuICAgIFN0YXRpY1RleHRDb21wb25lbnQsXG4gICAgVWxUb2FzdEFkYXB0ZXJDb21wb25lbnQsXG4gICAgTWVzc2FnZVN0cmlwQ29tcG9uZW50LFxuICAgIFVpTGluZWFyTGlzdENvbnRhaW5lcldpdGhCdXR0b25Db21wb25lbnQsXG4gICAgRnVuZGFtZW50YWxEeW5hbWljRm9ybUNvbXBvbmVudCxcbiAgICBMYXlvdXRBY3Rpb25zQ29tcG9uZW50LFxuICAgIEx5TGF5b3V0Q29udGFpbmVyQ29tcG9uZW50LFxuICAgIFVpVWx2Rm9ybU11bHRpU2VsZWN0VWlDb21wb25lbnQsXG4gICAgVWx2Rm9ybU11bHRpU2VsZWN0Q29tcG9uZW50LFxuICAgIFVsdkNvbHVtblNldHRpbmdzQ29tcG9uZW50LFxuICAgIFVsdkZpbHRlclNldHRpbmdzQ29tcG9uZW50LFxuICAgIFVsdlNvcnRTZXR0aW5nc0NvbXBvbmVudCxcbiAgICBVbHZHcm91cGJ5U2V0dGluZ3NDb21wb25lbnQsXG4gICAgQmFyc2FMaXN0RmlsZUxpbmVhckNvbXBvbmVudCxcbiAgICBVaVBkZlZpZXdlckNvbXBvbmVudCxcbiAgICBCYXJzYVRpbnllbWNlQ29tcG9uZW50LFxuICAgIFVpTW9uYWNvRWRpdG9yQ29tcG9uZW50LFxuICAgIEJhcnNhTW9uYWNvRWRpdG9yQ29tcG9uZW50LFxuICAgIEJhcnNhRGF0ZVRpbWVQaWNrZXJDb21wb25lbnQsXG4gICAgQmFyc2FUcmVlSXRlbUNvbXBvbmVudCxcbiAgICBVaVN3aXRjaEJ1dHRvbkNvbXBvbmVudCxcbiAgICBVaUNvbG9yVWlDb21wb25lbnQsXG4gICAgTHlMaW5lQ29tcG9uZW50LFxuICAgIFVpVWx2TWFpblVpQ29tcG9uZW50LFxuICAgIFJlcG9ydE5hdmlnYXRvckNvbXBvbmVudCxcbiAgICBNYW5hZ2VGaWx0ZXJzUmVwb3J0Q29tcG9uZW50LFxuICAgIFJlcG9ydFNlYXJjaEZpZWxkc01hbmFnZUNvbXBvbmVudCxcbiAgICBSZXBvcnRTZWFyY2hGaWVsZHNIaWRkZW5TZXR0aW5nc0NvbXBvbmVudCxcbiAgICBTZWFyY2hQYW5lbENvbXBvbmVudCxcbiAgICBSZXBvcnRTZWFyY2hQYW5lbFNhdmVDb21wb25lbnQsXG4gICAgVWlHcmlkRmlsdGVyU2V0dGluZ3NDb21wb25lbnQsXG4gICAgVWlHcmlkRmlsdGVySXRlbUNvbXBvbmVudCxcbiAgICBVaURhdGVSYW5nZUV4Q29tcG9uZW50LFxuICAgIFVsTm90aWZ5UG9wdXBDb21wb25lbnQsXG4gICAgVWlUYWJsZVZpZXdDb21wb25lbnQsXG4gICAgVWlMaXN0Vmlld0NvbXBvbmVudCxcbiAgICBVaUNhcmRWaWV3Q29tcG9uZW50LFxuICAgIFVpUmVwb3J0Q29udGFpbmVyQ29tcG9uZW50LFxuICAgIE5vRGF0YUNvbXBvbmVudCxcbiAgICBDb2x1bW5SZW5kZXJlckNvbXBvbmVudCxcbiAgICBJbmxpbmVTYXZlQW5kQ2FuY2VsQ29tcG9uZW50LFxuICAgIFVpVHJlZVZpZXdDb21wb25lbnQsXG4gICAgSW5saW5lU2F2ZUFuZENhbmNlbENvbXBvbmVudCxcbiAgICBVaUNhbGVuZGFyQ29tcG9uZW50LFxuICAgIFVpQXNwUmVwb3J0Vmlld2VyQ29tcG9uZW50LFxuICAgIFVpR3JhcGhDb21wb25lbnQsXG4gICAgVWlFeGNlcHRpb25Gb3JtQ29tcG9uZW50LFxuICAgIFVpRWRpdGFibGVHcmlkQ29tcG9uZW50LFxuICAgIENvbHVtbk1hdHJpeFJlbmRlcmVyQ29tcG9uZW50LFxuICAgIFVpTWF0cml4Vmlld0NvbXBvbmVudCxcbiAgICBDdXN0b21EYXRlVGltZUNvbXBvbmVudCxcbiAgICBCYXJzYUFzcFZpZXdlckNvbXBvbmVudCxcbiAgICBGaWxlSW5EaWFsb2dDb21wb25lbnQsXG4gICAgVWlNb0luZm9HZW5lcmFsT2JqZWN0VWlDb21wb25lbnQsXG4gICAgVWlHYW50dENoYXJ0Q29tcG9uZW50LFxuICAgIEdhbnR0RGh0bWxDaGFydFZpZXdDb21wb25lbnQsXG4gICAgUHJvZ3Jlc3NJbmRpY2F0b3JDb21wb25lbnQsXG4gICAgQ2FyZFZpZXdDb250ZW50Q29tcG9uZW50LFxuICAgIENhcmRJdGVtQ29tcG9uZW50LFxuICAgIFVpQ2FyZFZpZXdIb3Jpem9udGFsR3JvdXBDb21wb25lbnQsXG4gICAgVGl0bGVDb21wb25lbnQsXG4gICAgQmFyc2FVbHZNYWluQ29tcG9uZW50LFxuICAgIExpc3RJdGVtQ29tcG9uZW50LFxuICAgIEh0cmVlQ3JlYXRlTmV3Q29tcG9uZW50LFxuICAgIEJhcnNhVGFibGVIZWFkZXJDb21wb25lbnQsXG4gICAgQmFyc2FUYWJsZVJvd0NvbXBvbmVudCxcbiAgICBCYXJzYVRhYmxlQ29sdW1uQ29tcG9uZW50LFxuICAgIEJyZWFkY3J1bWJDb21wb25lbnQsXG4gICAgVWlMYWJlbENvbXBvbmVudCxcbiAgICBGb3JtVG9vbGJhckJ1dHRvbkNvbXBvbmVudCxcbiAgICBCYXJzYVNlYXJjaEZvcm1Db21wb25lbnQsXG4gICAgUmVwb3J0TmV3VG9wRm9ybUNvbXBvbmVudCxcbiAgICBCYXJzYU5ldHdvcmtPZmZsaW5lQ29tcG9uZW50LFxuICAgIEZpbGVWaWV3ZXJDb250ZW50Q29tcG9uZW50LFxuICAgIEZpbGVWaWV3ZXJQb3BvdmVyQ29tcG9uZW50LFxuICAgIEZpbGVWaWV3ZXJDb21wb25lbnQsXG4gICAgQmxvYlZpZXdlckNvbXBvbmVudCxcbiAgICBOb3RpZmljYXRpb25JdGVtQ29tcG9uZW50LFxuICAgIEJhcnNhQ2FydGFibGVUZW1wbGF0ZUNvbXBvbmVudCxcbiAgICBCYXJzYUNhcnRhYmxlR3JvdXBDb21wb25lbnQsXG4gICAgQmFyc2FDYXJ0YWJsZUZvcm1Db21wb25lbnQsXG4gICAgQmFyc2FDb2x1bW5JbmRpY2F0b3JDb21wb25lbnQsXG4gICAgQmFyc2FGaWVsZEtleVZhbHVlQ29tcG9uZW50LFxuICAgIEJhcnNhVG9vbGJhcml0ZW1TZWFyY2hDb21wb25lbnQsXG4gICAgVWlIdG1sVmlld2VyQ29tcG9uZW50LFxuICAgIEJhcnNhUGlzaG5hbWF5ZXNoUGF5YW1Db21wb25lbnQsXG4gICAgQmFyc2FUZXh0RWxsaXBzaXNDb21wb25lbnQsXG4gICAgQmFyc2FMaXN0RmlsZUxpbmVhckdtYWlsQ29tcG9uZW50LFxuICAgIEJhcnNhTGlua2FibGVJdGVtc1BhbmVsQ29tcG9uZW50XG5dO1xuZXhwb3J0IGNvbnN0IHBpcGVzID0gW1xuICAgIFVwbG9hZEZpbGVTdGF0dXNQaXBlLFxuICAgIFNhcEZvbnRQaXBlLFxuICAgIFNhcEZvbnRDbGFzc1BpcGUsXG4gICAgU3RyaW5nVG9BcnJheVBpcGUsXG4gICAgTm9kZUhhc09uZURlcHRoTGV2ZWxQaXBlLFxuICAgIE1hdHJpeFZhbHVlUGlwZSxcbiAgICBEeW5hbWljUGFnZVNpemVQaXBlXG5dO1xuZXhwb3J0IGNvbnN0IGRpcmVjdGl2ZXMgPSBbXG4gICAgV2l6YXJkTGF5b3V0RGlyZWN0aXZlLFxuICAgIENvbFJlbmRlcmVyRGlyZWN0aXZlLFxuICAgIEFwcGx5Q29uZGl0aW9uYWxGb3JtYXRzRGlyZWN0aXZlLFxuICAgIFJlcG9ydFZpZXdSZW5kZXJlckRpcmVjdGl2ZSxcbiAgICBGdWxsc2NyZWVuRGlhbG9nRGlyZWN0aXZlLFxuICAgIEZ1bGxzY3JlZW5GaWxlc0RpcmVjdGl2ZSxcbiAgICBEb3dubG9hZEZpbGVzRGlyZWN0aXZlXG5dO1xuXG5leHBvcnQgY29uc3QgSU5JVF9TQVBGSU9SSSA9XG4gICAgKFxuICAgICAgICBydGxTZXJ2aWNlOiBSdGxTZXJ2aWNlLFxuICAgICAgICBjb250ZW50RGVuc2l0eVNlcnZpY2U6IEdsb2JhbENvbnRlbnREZW5zaXR5U2VydmljZSxcbiAgICAgICAgdGhlbWVTZXJ2aWNlOiBUaGVtZXNTZXJ2aWNlLFxuICAgICAgICBwb3J0YWxTZXJ2aWNlOiBQb3J0YWxTZXJ2aWNlXG4gICAgKSA9PlxuICAgICgpID0+IHtcbiAgICAgICAgcnRsU2VydmljZS5ydGwubmV4dChCYXJzYUFwaS5Mb2dpbkZvcm1EYXRhLklzUnRsKTtcbiAgICAgICAgbGV0IGZvbnRGYW1pbHkgPSAnSVJBTllla2FuRGlnaXRzJztcbiAgICAgICAgaWYgKEJhcnNhQXBpLkxvZ2luRm9ybURhdGEuQ3VsdHVyZSA9PT0gJ2VuLVVTJykge1xuICAgICAgICAgICAgZm9udEZhbWlseSA9ICdJUkFOU2Fuc1dlYic7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjc3MgPSBgKiB7XG4gICAgLS1mZER5bmFtaWNQYWdlX1RpdGxlX0ZvbnRfRmFtaWx5OiAnJHtmb250RmFtaWx5fSc7XG4gICAgLS1zYXBGb250RmFtaWx5OiAnJHtmb250RmFtaWx5fSc7XG4gICAgLS1mZFdpemFyZF9MYWJlbF9Gb250X0ZhbWlseTogJyR7Zm9udEZhbWlseX0nO1xuICAgIC0tc2FwRm9udExpZ2h0RmFtaWx5OiAnJHtmb250RmFtaWx5fSc7XG4gICAgLS1zYXBGb250SGVhZGVyRmFtaWx5OiAnJHtmb250RmFtaWx5fSc7XG4gICAgLS1fdWk1X2lucHV0X2NvbXBhY3RfaGVpZ2h0OiAxLjYyNXJlbTtcbiAgICAtLXNhcEZvbnRTaXplOiAwLjg4NXJlbTtcbiAgICAvKiAtLXNhcENvbnRlbnRfSGVhZGVyU2hhZG93OiBub25lOyAqL1xufWAsXG4gICAgICAgICAgICBoZWFkID0gZG9jdW1lbnQuaGVhZCB8fCBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdLFxuICAgICAgICAgICAgc3R5bGU6IGFueSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG5cbiAgICAgICAgaGVhZC5hcHBlbmRDaGlsZChzdHlsZSk7XG5cbiAgICAgICAgc3R5bGUudHlwZSA9ICd0ZXh0L2Nzcyc7XG4gICAgICAgIGlmIChzdHlsZS5zdHlsZVNoZWV0KSB7XG4gICAgICAgICAgICAvLyBUaGlzIGlzIHJlcXVpcmVkIGZvciBJRTggYW5kIGJlbG93LlxuICAgICAgICAgICAgc3R5bGUuc3R5bGVTaGVldC5jc3NUZXh0ID0gY3NzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3R5bGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY3NzKSk7XG4gICAgICAgIH1cblxuICAgICAgICBwb3J0YWxTZXJ2aWNlLnVzZXJQb3J0YWxTZXR0aW5ncyQucGlwZShmaWx0ZXIoKGMpID0+IGMgIT0gbnVsbCkpLnN1YnNjcmliZSgodXNlclNldHRpbmdzKSA9PiB7XG4gICAgICAgICAgICBsZXQgY29udGVudERlbnNpdHk6IGFueTtcbiAgICAgICAgICAgIGxldCB0aGVtZTogYW55O1xuICAgICAgICAgICAgaWYgKCF1c2VyU2V0dGluZ3MpIHtcbiAgICAgICAgICAgICAgICBpZiAoZ2V0RGV2aWNlSXNNb2JpbGUoKSB8fCBnZXREZXZpY2VJc1Bob25lKCkgfHwgZ2V0RGV2aWNlSXNUYWJsZXQoKSkge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50RGVuc2l0eSA9IENvbnRlbnREZW5zaXR5TW9kZS5DT1pZO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnREZW5zaXR5ID0gQ29udGVudERlbnNpdHlNb2RlLkNPTVBBQ1Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IENvbnRlbnREZW5zaXR5JENhcHRpb24sIFRoZW1lJENhcHRpb24gfSA9IHVzZXJTZXR0aW5ncztcbiAgICAgICAgICAgICAgICBjb250ZW50RGVuc2l0eSA9IENvbnRlbnREZW5zaXR5JENhcHRpb247XG4gICAgICAgICAgICAgICAgdGhlbWUgPSBUaGVtZSRDYXB0aW9uO1xuICAgICAgICAgICAgICAgIGlmICghY29udGVudERlbnNpdHkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudERlbnNpdHkgPSBDb250ZW50RGVuc2l0eU1vZGUuQ09NUEFDVDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZ2V0RGV2aWNlSXNNb2JpbGUoKSB8fCBnZXREZXZpY2VJc1Bob25lKCkpIHtcbiAgICAgICAgICAgICAgICBjb250ZW50RGVuc2l0eSA9IENvbnRlbnREZW5zaXR5TW9kZS5DT1pZO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGNvbnRlbnREZW5zaXR5KSB7XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50RGVuc2l0eVNlcnZpY2UudXBkYXRlQ29udGVudERlbnNpdHkoY29udGVudERlbnNpdHkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBib2R5Q2xhc3NDb21wYWN0ID0gJ3VpNS1jb250ZW50LWRlbnNpdHktY29tcGFjdCc7XG4gICAgICAgICAgICAgICAgY29uc3QgYm9keUNsYXNzQ29uZGVuc2VkID0gJ3VpNS1jb250ZW50LWRlbnNpdHktY29uZGVuc2VkJztcbiAgICAgICAgICAgICAgICBjb25zdCBib2R5Q2xhc3NDb3p5ID0gJ3VpNS1jb250ZW50LWRlbnNpdHktY296eSc7XG4gICAgICAgICAgICAgICAgY29uc3QgYm9keSA9IGRvY3VtZW50Py5ib2R5O1xuICAgICAgICAgICAgICAgIHN3aXRjaCAoY29udGVudERlbnNpdHkpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnY29uZGVuc2VkJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWJvZHkuY2xhc3NMaXN0LmNvbnRhaW5zKGJvZHlDbGFzc0NvbmRlbnNlZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9keS5jbGFzc0xpc3QuYWRkKGJvZHlDbGFzc0NvbmRlbnNlZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvZHkuY2xhc3NMaXN0LnJlbW92ZShib2R5Q2xhc3NDb21wYWN0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib2R5LmNsYXNzTGlzdC5yZW1vdmUoYm9keUNsYXNzQ296eSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdjb3p5JzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWJvZHkuY2xhc3NMaXN0LmNvbnRhaW5zKGJvZHlDbGFzc0NvenkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvZHkuY2xhc3NMaXN0LmFkZChib2R5Q2xhc3NDb3p5KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9keS5jbGFzc0xpc3QucmVtb3ZlKGJvZHlDbGFzc0NvbXBhY3QpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvZHkuY2xhc3NMaXN0LnJlbW92ZShib2R5Q2xhc3NDb25kZW5zZWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2NvbXBhY3QnOlxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghYm9keS5jbGFzc0xpc3QuY29udGFpbnMoYm9keUNsYXNzQ29tcGFjdCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9keS5jbGFzc0xpc3QuYWRkKGJvZHlDbGFzc0NvbXBhY3QpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib2R5LmNsYXNzTGlzdC5yZW1vdmUoYm9keUNsYXNzQ296eSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9keS5jbGFzc0xpc3QucmVtb3ZlKGJvZHlDbGFzc0NvbmRlbnNlZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhlbWUpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhlbWUuaW5kZXhPZignZGFyaycpID4gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCdjb2xvci1zY2hlbWUnLCAnZGFyaycpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnY29sb3Itc2NoZW1lJywgJ2xpZ2h0Jyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHBvcnRhbFNlcnZpY2Uuc2V0VGhlbWUodGhlbWVTZXJ2aWNlLnNldFRoZW1lKHRoZW1lKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH07XG4iXX0=
454
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTBELGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkgsT0FBTyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBaUIsTUFBTSxzQkFBc0IsQ0FBQztBQUN2SCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTlCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxxRUFBcUUsQ0FBQztBQUN2SCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNyRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUM3RixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUMvRyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNyRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNsRyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUN0RyxPQUFPLEVBQUUs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a0IsQ0FBQyxDQUFDO3FCQUM3QztvQkFDRCxNQUFNO2dCQUNWLEtBQUssU0FBUztvQkFDVjt3QkFDSSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsRUFBRTs0QkFDNUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQzt5QkFDeEM7d0JBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7d0JBQ3JDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7cUJBQzdDO29CQUNELE1BQU07YUFDYjtTQUNKO1FBQ0QsSUFBSSxLQUFLLEVBQUU7WUFDUCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQzVCLFFBQVEsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsTUFBTSxDQUFDLENBQUM7YUFDdEU7aUJBQU07Z0JBQ0gsUUFBUSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxPQUFPLENBQUMsQ0FBQzthQUN2RTtZQUNELGFBQWEsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1NBQ3hEO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSdGxTZXJ2aWNlLCBUaGVtZXNTZXJ2aWNlLCBHbG9iYWxDb250ZW50RGVuc2l0eVNlcnZpY2UsIENvbnRlbnREZW5zaXR5TW9kZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZSc7XG5pbXBvcnQgeyBCYXJzYUFwaSwgZ2V0RGV2aWNlSXNNb2JpbGUsIGdldERldmljZUlzUGhvbmUsIGdldERldmljZUlzVGFibGV0LCBQb3J0YWxTZXJ2aWNlIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFVpVGV4dEZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi91aS10ZXh0LWZpZWxkL3VpLXRleHQtZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IEx5TGF5b3V0RmllbGRMYWJlbENvbXBvbmVudCB9IGZyb20gJy4vbHktbGF5b3V0LWZpZWxkLWxhYmVsL2x5LWxheW91dC1maWVsZC1sYWJlbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVWlDaGVja0JveENvbXBvbmVudCB9IGZyb20gJy4vdWktY2hlY2stYm94L3VpLWNoZWNrLWJveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVWlTaW1wbGVDb21ib0NvbXBvbmVudCB9IGZyb20gJy4vdWktc2ltcGxlLWNvbWJvL3VpLXNpbXBsZS1jb21iby5jb21wb25lbnQnO1xuaW1wb3J0IHsgVWlSYWRpb0dyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi91aS1yYWRpby1ncm91cC91aS1yYWRpby1ncm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVWlHcmlkQ29tcG9uZW50IH0gZnJvbSAnLi91aS1ncmlkL3VpLWdyaWQuY29tcG9uZW50JztcbmltcG9ydCB7IEx5TGF5b3V0Q29udGFpbmVyT2ZSb290Q29tcG9uZW50IH0gZnJvbSAnLi9seS1sYXlvdXQtY29udGFpbmVyLW9mLXJvb3QvbHktbGF5b3V0LWNvbnRhaW5lci1vZi1yb290LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMeUxheW91dFBhbmVsQ29tcG9uZW50IH0gZnJvbSAnLi9seS1sYXlvdXQtcGFuZWwvbHktbGF5b3V0LXBhbmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVaVJlYWRPbmx5RmllbGRDb21wb25lbnQgfSBmcm9tICcuL3VpLXJlYWQtb25seS1maWVsZC91aS1yZWFkLW9ubHktZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IFVpQ29udGFpbmVyV2l0aEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vdWktY29udGFpbmVyLXdpdGgtYnV0dG9uL3VpLWNvbnRhaW5lci13aXRoLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVWlQaWN0dXJlRmlsZUNvbXBvbmVudCB9IGZyb20gJy4vdWktcGljdHVyZS1maWxlL3VpLXBpY3R1cmUtZmlsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVWlNb0luZm9VbHZDb21ib0NvbXBvbmVudCB9IGZyb20gJy4vdWktbW8taW5mby11bHYtY29tYm8vdWktbW8taW5mby11bHYtY29tYm8uY29tcG9uZW50JztcbmltcG9ydCB7IFVpTXVsdGlTZWxlY3RDb21ib0NvbXBvbmVudCB9IGZyb20gJy4vdWktbXVsdGktc2VsZWN0LWNvbWJvL3VpLW11bHRpLXNlbGVjdC1jb21iby5jb21wb25lbnQnO1xuaW1wb3J0IHsgVWlOdW1EZWNpbWFsVWlDb21wb25lbnQgfSBmcm9tICcuL3VpLW51bS1kZWNpbWFsLXVpL3VpLW51bS1kZWNpbWFsLXVpLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVaU51bUludFVpQ29tcG9uZW50IH0gZnJvbSAnLi91aS1udW0taW50LXVpL3VpLW51bS1pbnQtdWkuY29tcG9uZW50JztcbmltcG9ydCB7IFVpVGltZVNwYW5Db21wb25lbnQgfSBmcm9tICcuL3VpLXRpbWUtc3Bhbi91aS10aW1lLXNwYW4uY29tcG9uZW50JztcbmltcG9ydCB7IFVpRmlsZUxpbmVhckxpc3RCb3hDb21wb25lbnQgfSBmcm9tICcuL3VpLWZpbGUtbGluZWFyLWxpc3QtYm94L3VpLWZpbGUtbGluZWFyLWxpc3QtYm94LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMeUVtcHR5U3BhY2VDb21wb25lbnQgfSBmcm9tICcuL2x5LWVtcHR5LXNwYWNlL2x5LWVtcHR5LXNwYWNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVaVNpbmdsZVBpY3R1cmVDb21wb25lbnQgfSBmcm9tICcuL3VpLXNpbmdsZS1waWN0dXJlL3VpLXNpbmdsZS1waWN0dXJlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVbHZTZWxlY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL3Vsdi1zZWxlY3Rpb24vdWx2LXNlbGVjdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVWx2VG9vbGJhckNvbXBvbmVudCB9IGZyb20gJy4vdWx2LXRvb2xiYXIvdWx2LXRvb2xiYXIuY29tcG9uZW50JztcbmltcG9ydCB7IFVsdlBhZ2luZ0NvbXBvbmVudCB9IGZyb20gJy4vdWx2LXBhZ2luZy91bHYtcGFnaW5nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVaUdyaWRTb3J0U2V0dGluZ0NvbXBvbmVudCB9IGZyb20gJy4vdWktZ3JpZC1zb3J0LXNldHRpbmcvdWktZ3JpZC1zb3J0LXNldHRpbmcuY29tcG9uZW50JztcbmltcG9ydCB7IFVpR3JpZFNvcnRJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi91aS1ncmlkLXNvcnQtaXRlbS91aS1ncmlkLXNvcnQtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVWlHcmlkQ29sdW1uc0NvbXBvbmVudCB9IGZyb20gJy4vdWktZ3JpZC1jb2x1bW5zL3VpLWdyaWQtY29sdW1ucy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWFza0NvbXBvbmVudCB9IGZyb20gJy4vbWFzay9tYXNrLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVaUluZm9CYXJQYW5lbENvbXBvbmVudCB9IGZyb20gJy4vdWktaW5mby1iYXItcGFuZWwvdWktaW5mby1iYXItcGFuZWwuY29tcG9uZW50JztcbmltcG9ydCB7IFVpRm9ybVBhbmVsVG9vbGJhckNvbXBvbmVudCB9IGZyb20gJy4vdWktZm9ybS1wYW5lbC10b29sYmFyL3VpLWZvcm0tcGFuZWwtdG9vbGJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVWlGb3JtUGFuZWxDb21wb25lbnQgfSBmcm9tICcuL3VpLWZvcm0tcGFuZWwvdWktZm9ybS1wYW5lbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVWlTZWFyY2hDb21tYW5kSW5mb1VpQ29tcG9uZW50IH0gZnJvbSAnLi91aS1zZWFyY2gtY29tbWFuZC1pbmZvLXVpL3VpLXNlYXJjaC1jb21tYW5kLWluZm8tdWkuY29tcG9uZW50JztcbmltcG9ydCB7IFVsdlNldHRpbmdzQ29tcG9uZW50IH0gZnJvbSAnLi91bHYtc2V0dGluZ3MvdWx2LXNldHRpbmdzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVaVRpbnltY2VDb21wb25lbnQgfSBmcm9tICcuL3VpLXRpbnltY2UvdWktdGlueW1jZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVWlCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL3VpLWJ1dHRvbi91aS1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IFVpRGF0ZVRpbWVDb21wb25lbnQgfSBmcm9tICcuL3VpLWRhdGUtdGltZS91aS1kYXRlLXRpbWUuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1EaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2Zvcm0tZGlhbG9nL2Zvcm0tZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIZWFkZXJGYWNldEtleVZhbHVlQ29tcG9uZW50IH0gZnJvbSAnLi9oZWFkZXItZmFjZXQta2V5LXZhbHVlL2hlYWRlci1mYWNldC1rZXktdmFsdWUuY29tcG9uZW50JztcbmltcG9ydCB7IEhlYWRlckZhY2V0Rm9ybUNvbXBvbmVudCB9IGZyb20gJy4vaGVhZGVyLWZhY2V0LWZvcm0vaGVhZGVyLWZhY2V0LWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IEhlYWRlckZhY2V0UmF0ZUNvbXBvbmVudCB9IGZyb20gJy4vaGVhZGVyLWZhY2V0LXJhdGUvaGVhZGVyLWZhY2V0LXJhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IEhlYWRlckZhY2V0UHJvZ3Jlc3NDb21wb25lbnQgfSBmcm9tICcuL2hlYWRlci1mYWNldC1wcm9ncmVzcy9oZWFkZXItZmFjZXQtcHJvZ3Jlc3MuY29tcG9uZW50JztcbmltcG9ydCB7IEhlYWRlckZhY2V0TWljcm9jaGFydENvbXBvbmVudCB9IGZyb20gJy4vaGVhZGVyLWZhY2V0LW1pY3JvY2hhcnQvaGVhZGVyLWZhY2V0LW1pY3JvY2hhcnQuY29tcG9uZW50JztcbmltcG9ydCB7IEhlYWRlckZhY2V0UGxhaW5UZXh0Q29tcG9uZW50IH0gZnJvbSAnLi9oZWFkZXItZmFjZXQtcGxhaW4tdGV4dC9oZWFkZXItZmFjZXQtcGxhaW4tdGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVWlNb0luZm9TdWJGb3JtVWlDb21wb25lbnQgfSBmcm9tICcuL3VpLW1vLWluZm8tc3ViLWZvcm0tdWkvdWktbW8taW5mby1zdWItZm9ybS11aS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVzcG9uc2l2ZVRvb2xiYXJDb21wb25lbnQgfSBmcm9tICcuL3Jlc3BvbnNpdmUtdG9vbGJhci9yZXNwb25zaXZlLXRvb2xiYXIuY29tcG9uZW50JztcbmltcG9ydCB7IFJlc3BvbnNpdmVUb29sYmFyUmVuZGVyZXJDb21wb25lbnQgfSBmcm9tICcuL3Jlc3BvbnNpdmUtdG9vbGJhci1yZW5kZXJlci9yZXNwb25zaXZlLXRvb2xiYXItcmVuZGVyZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFVpVGV4dEFyZWFDb21wb25lbnQgfSBmcm9tICcuL3VpLXRleHQtYXJlYS91aS10ZXh0LWFyZWEuY29tcG9uZW50JztcbmltcG9ydCB7IExheW91dENvbnRyb2xDb21wb25lbnQgfSBmcm9tICcuL2xheW91dC1jb250cm9sL2xheW91dC1jb250cm9sLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMYXlvdXRXaXphcmRDb21wb25lbnQgfSBmcm9tICcuL2xheW91dC13aXphcmQvbGF5b3V0LXdpemFyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybVdpemFyZENvbXBvbmVudCB9IGZyb20gJy4vZm9ybS13aXphcmQvZm9ybS13aXphcmQuY29tcG9uZW50JztcbmltcG9ydCB7IFdpemFyZExheW91dERpcmVjdGl2ZSB9IGZyb20gJy4vd2l6YXJkLWxheW91dC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRm9ybURpYWxvZ0xlc3NDb21wb25lbnQgfSBmcm9tICcuL2Zvcm0tZGlhbG9nLWxlc3MvZm9ybS1kaWFsb2ctbGVzcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmljaFRleHRTdGF0aWNDb21wb25lbnQgfSBmcm9tICcuL3JpY2gtdGV4dC1zdGF0aWMvcmljaC10ZXh0LXN0YXRpYy5jb21wb25lbnQnO1xuaW1wb3J0IHsgVWlQaWN0dXJlc0luZm9Db21wb25lbnQgfSBmcm9tICcuL3VpLXBpY3R1cmVzLWluZm8vdWktcGljdHVyZXMtaW5mby5jb21wb25lbnQnO1xuaW1wb3J0IHsgTHlIb3Jpem9udGFsTGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnLi9seS1ob3Jpem9udGFsLWxheW91dC9seS1ob3Jpem9udGFsLWxheW91dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTHlWZXJ0aWNhbExheW91dENvbXBvbmVudCB9IGZyb20gJy4vbHktdmVydGljYWwtbGF5b3V0L2x5LXZlcnRpY2FsLWxheW91dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTHlUYWJDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuL2x5LXRhYi1jb250YWluZXIvbHktdGFiLWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTHlUYWJQYWdlQ29tcG9uZW50IH0gZnJvbSAnLi9seS10YWItcGFnZS9seS10YWItcGFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTHlMYWJlbENvbXBvbmVudCB9IGZyb20gJy4vbHktbGFiZWwvbHktbGFiZWwuY29tcG9uZW50JztcbmltcG9ydCB7IENvbFJlbmRlcmVyRGlyZWN0aXZlIH0gZnJvbSAnLi9jb2wtcmVuZGVyZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IFVpTW9JbmZvQ29tYm9WaWV3ZXJDb21wb25lbnQgfSBmcm9tICcuL3VpLW1vLWluZm8tY29tYm8tdmlld2VyL3VpLW1vLWluZm8tY29tYm8tdmlld2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVbE1zZ0JveEFkYXB0ZXJDb21wb25lbnQgfSBmcm9tICcuL3VsLW1zZy1ib3gtYWRhcHRlci91bC1tc2ctYm94LWFkYXB0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEhlYWRlckF2YXRhckNvbXBvbmVudCB9IGZyb20gJy4vaGVhZGVyLWF2YXRhci9oZWFkZXItYXZhdGFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBcHBseUNvbmRpdGlvbmFsRm9ybWF0c0RpcmVjdGl2ZSB9IGZyb20gJy4vYXBwbHktY29uZGl0aW9uYWwtZm9ybW1hdGluZ3MuZGlyZWN0aXZlJztcbmltcG9ydCB7IFVpV29ya2Zsb3dQYW5lbFVpQ29tcG9uZW50IH0gZnJvbSAnLi91aS13b3JrZmxvdy1wYW5lbC11aS91aS13b3JrZmxvdy1wYW5lbC11aS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVWx2Q29udGV4dE1lbnVDb21wb25lbnQgfSBmcm9tICcuL3Vsdi1jb250ZXh0LW1lbnUvdWx2LWNvbnRleHQtbWVudS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVWxMb2FkaW5nTWFza1VpQ29tcG9uZW50IH0gZnJvbSAnLi91bC1sb2FkaW5nLW1hc2stdWkvdWwtbG9hZGluZy1tYXNrLXVpLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVaVRleHRGaWVsZEF1dG9Db21wbGV0ZUNvbXBvbmVudCB9IGZyb20gJy4vdWktdGV4dC1maWVsZC1hdXRvLWNvbXBsZXRlL3VpLXRleHQtZmllbGQtYXV0by1jb21wbGV0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FwdGNoYUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9jYXB0Y2hhLWZpZWxkL2NhcHRjaGEtZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IEx5U2ltcGxlTGFiZWxDb21wb25lbnQgfSBmcm9tICcuL2x5LXNpbXBsZS1sYWJlbC9seS1zaW1wbGUtbGFiZWwuY29tcG9uZW50JztcbmltcG9ydCB7IEdsb2JhbFNlYXJjaFBhbmVsQ29tcG9uZW50IH0gZnJvbSAnLi9nbG9iYWwtc2VhcmNoLXBhbmVsL2dsb2JhbC1zZWFyY2gtcGFuZWwuY29tcG9uZW50JztcbmltcG9ydCB7IEdsb2JhbFNlYXJjaE1vZHVsZUNvbXBvbmVudCB9IGZyb20gJy4vZ2xvYmFsLXNlYXJjaC1tb2R1bGUvZ2xvYmFsLXNlYXJjaC1tb2R1bGUuY29tcG9uZW50JztcbmltcG9ydCB7IEdsb2JhbFNlYXJjaENvbXBvbmVudCB9IGZyb20gJy4vZ2xvYmFsLXNlYXJjaC9nbG9iYWwtc2VhcmNoLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIeXBlcmxpbmtDb21wb25lbnQgfSBmcm9tICcuL2h5cGVybGluay9oeXBlcmxpbmsuY29tcG9uZW50JztcbmltcG9ydCB7IFN0YXRpY1RleHRDb21wb25lbnQgfSBmcm9tICcuL3N0YXRpYy10ZXh0L3N0YXRpYy10ZXh0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVbFRvYXN0QWRhcHRlckNvbXBvbmVudCB9IGZyb20gJy4vdWwtdG9hc3QtYWRhcHRlci91bC10b2FzdC1hZGFwdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNZXNzYWdlU3RyaXBDb21wb25lbnQgfSBmcm9tICcuL21lc3NhZ2Utc3RyaXAvbWVzc2FnZS1zdHJpcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVWlMaW5lYXJMaXN0Q29udGFpbmVyV2l0aEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vdWktbGluZWFyLWxpc3QtY29udGFpbmVyLXdpdGgtYnV0dG9uL3VpLWxpbmVhci1saXN0LWNvbnRhaW5lci13aXRoLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRnVuZGFtZW50YWxEeW5hbWljRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vZnVuZGFtZW50YWwtZHluYW1pYy1mb3JtL2Z1bmRhbWVudGFsLWR5bmFtaWMtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGF5b3V0QWN0aW9uc0NvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0LWFjdGlvbnMvbGF5b3V0LWFjdGlvbnMuY29tcG9uZW50JztcbmltcG9ydCB7IEx5TGF5b3V0Q29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9seS1sYXlvdXQtY29udGFpbmVyL2x5LWxheW91dC1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFVpVWx2Rm9ybU11bHRpU2VsZWN0VWlDb21wb25lbnQgfSBmcm9tICcuL3VpLXVsdi1mb3JtLW11bHRpLXNlbGVjdC11aS91aS11bHYtZm9ybS1tdWx0aS1zZWxlY3QtdWkuY29tcG9uZW50JztcbmltcG9ydCB7IFVsdkZvcm1NdWx0aVNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vdWx2LWZvcm0tbXVsdGktc2VsZWN0L3Vsdi1mb3JtLW11bHRpLXNlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVWx2Q29sdW1uU2V0dGluZ3NDb21wb25lbnQgfSBmcm9tICcuL3Vsdi1jb2x1bW4tc2V0dGluZ3MvdWx2LWNvbHVtbi1zZXR0aW5ncy5jb21wb25lbnQnO1xuaW1wb3J0IHsgVWx2RmlsdGVyU2V0dGluZ3NDb21wb25lbnQgfSBmcm9tICcuL3Vsdi1maWx0ZXItc2V0dGluZ3MvdWx2LWZpbHRlci1zZXR0aW5ncy5jb21wb25lbnQnO1xuaW1wb3J0IHsgVWx2U29ydFNldHRpbmdzQ29tcG9uZW50IH0gZnJvbSAnLi91bHYtc29ydC1zZXR0aW5ncy91bHYtc29ydC1zZXR0aW5ncy5jb21wb25lbnQnO1xuaW1wb3J0IHsgVWx2R3JvdXBieVNldHRpbmdzQ29tcG9uZW50IH0gZnJvbSAnLi91bHYtZ3JvdXBieS1zZXR0aW5ncy91bHYtZ3JvdXBieS1zZXR0aW5ncy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFyc2FMaXN0RmlsZUxpbmVhckNvbXBvbmVudCB9IGZyb20gJy4vYmFyc2EtbGlzdC1maWxlLWxpbmVhci9iYXJzYS1saXN0LWZpbGUtbGluZWFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVaVBkZlZpZXdlckNvbXBvbmVudCB9IGZyb20gJy4vdWktcGRmLXZpZXdlci91aS1wZGYtdmlld2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCYXJzYVRpbnllbWNlQ29tcG9uZW50IH0gZnJvbSAnLi9iYXJzYS10aW55ZW1jZS9iYXJzYS10aW55ZW1jZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVWlNb25hY29FZGl0b3JDb21wb25lbnQgfSBmcm9tICcuL3VpLW1vbmFjby1lZGl0b3IvdWktbW9uYWNvLWVkaXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFyc2FNb25hY29FZGl0b3JDb21wb25lbnQgfSBmcm9tICcuL2JhcnNhLW1vbmFjby1lZGl0b3IvYmFyc2EtbW9uYWNvLWVkaXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFyc2FEYXRlVGltZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vYmFyc2EtZGF0ZS10aW1lLXBpY2tlci9iYXJzYS1kYXRlLXRpbWUtcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCYXJzYVRyZWVJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9iYXJzYS10cmVlLWl0ZW0vYmFyc2EtdHJlZS1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVcGxvYWRGaWxlU3RhdHVzUGlwZSB9IGZyb20gJy4vdXBsb2FkLWZpbGUtc3RhdHVzLnBpcGUnO1xuaW1wb3J0IHsgVWlTd2l0Y2hCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL3VpLXN3aXRjaC1idXR0b24vdWktc3dpdGNoLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVWlDb2xvclVpQ29tcG9uZW50IH0gZnJvbSAnLi91aS1jb2xvci11aS91aS1jb2xvci11aS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTHlMaW5lQ29tcG9uZW50IH0gZnJvbSAnLi9seS1saW5lL2x5LWxpbmUuY29tcG9uZW50JztcbmltcG9ydCB7IFVpVWx2TWFpblVpQ29tcG9uZW50IH0gZnJvbSAnLi91aS11bHYtbWFpbi11aS91aS11bHYtbWFpbi11aS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVwb3J0TmF2aWdhdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9yZXBvcnQtbmF2aWdhdG9yL3JlcG9ydC1uYXZpZ2F0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IE1hbmFnZUZpbHRlcnNSZXBvcnRDb21wb25lbnQgfSBmcm9tICcuL21hbmFnZS1maWx0ZXJzLXJlcG9ydC9tYW5hZ2UtZmlsdGVycy1yZXBvcnQuY29tcG9uZW50JztcbmltcG9ydCB7IFJlcG9ydFNlYXJjaEZpZWxkc01hbmFnZUNvbXBvbmVudCB9IGZyb20gJy4vcmVwb3J0LXNlYXJjaC1maWVsZHMtbWFuYWdlL3JlcG9ydC1zZWFyY2gtZmllbGRzLW1hbmFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVwb3J0U2VhcmNoRmllbGRzSGlkZGVuU2V0dGluZ3NDb21wb25lbnQgfSBmcm9tICcuL3JlcG9ydC1zZWFyY2gtZmllbGRzLWhpZGRlbi1zZXR0aW5ncy9yZXBvcnQtc2VhcmNoLWZpZWxkcy1oaWRkZW4tc2V0dGluZ3MuY29tcG9uZW50JztcbmltcG9ydCB7IFNlYXJjaFBhbmVsQ29tcG9uZW50IH0gZnJvbSAnLi9zZWFyY2gtcGFuZWwvc2VhcmNoLXBhbmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZXBvcnRTZWFyY2hQYW5lbFNhdmVDb21wb25lbnQgfSBmcm9tICcuL3JlcG9ydC1zZWFyY2gtcGFuZWwtc2F2ZS9yZXBvcnQtc2VhcmNoLXBhbmVsLXNhdmUuY29tcG9uZW50JztcbmltcG9ydCB7IFVpR3JpZEZpbHRlclNldHRpbmdzQ29tcG9uZW50IH0gZnJvbSAnLi91aS1ncmlkLWZpbHRlci1zZXR0aW5ncy91aS1ncmlkLWZpbHRlci1zZXR0aW5ncy5jb21wb25lbnQnO1xuaW1wb3J0IHsgVWlHcmlkRmlsdGVySXRlbUNvbXBvbmVudCB9IGZyb20gJy4vdWktZ3JpZC1maWx0ZXItaXRlbS91aS1ncmlkLWZpbHRlci1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTYXBGb250UGlwZSB9IGZyb20gJy4vc2FwLWZvbnQucGlwZSc7XG5pbXBvcnQgeyBTYXBGb250Q2xhc3NQaXBlIH0gZnJvbSAnLi9zYXAtZm9udC1jbGFzcy5waXBlJztcbmltcG9ydCB7IFVpRGF0ZVJhbmdlRXhDb21wb25lbnQgfSBmcm9tICcuL3VpLWRhdGUtcmFuZ2UtZXgvdWktZGF0ZS1yYW5nZS1leC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVWxOb3RpZnlQb3B1cENvbXBvbmVudCB9IGZyb20gJy4vdWwtbm90aWZ5LXBvcHVwL3VsLW5vdGlmeS1wb3B1cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVWlUYWJsZVZpZXdDb21wb25lbnQgfSBmcm9tICcuL3VpLXRhYmxlLXZpZXcvdWktdGFibGUtdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgVWlMaXN0Vmlld0NvbXBvbmVudCB9IGZyb20gJy4vdWktbGlzdC12aWV3L3VpLWxpc3Qtdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3RyaW5nVG9BcnJheVBpcGUsIFVpQ2FyZFZpZXdDb21wb25lbnQgfSBmcm9tICcuL3VpLWNhcmQtdmlldy91aS1jYXJkLXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IFVpUmVwb3J0Q29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi91aS1yZXBvcnQtY29udGFpbmVyL3VpLXJlcG9ydC1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IE5vRGF0YUNvbXBvbmVudCB9IGZyb20gJy4vbm8tZGF0YS9uby1kYXRhLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb2x1bW5SZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJy4vY29sdW1uLXJlbmRlcmVyL2NvbHVtbi1yZW5kZXJlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5saW5lU2F2ZUFuZENhbmNlbENvbXBvbmVudCB9IGZyb20gJy4vaW5saW5lLXNhdmUtYW5kLWNhbmNlbC9pbmxpbmUtc2F2ZS1hbmQtY2FuY2VsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVaVRyZWVWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi91aS10cmVlLXZpZXcvdWktdHJlZS12aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVaVRyZWVDb21wb25lbnQgfSBmcm9tICcuL3VpLXRyZWUvdWktdHJlZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVWlDYWxlbmRhckNvbXBvbmVudCB9IGZyb20gJy4vdWktY2FsZW5kYXIvdWktY2FsZW5kYXIuY29tcG9uZW50JztcbmltcG9ydCB7IE5vZGVIYXNPbmVEZXB0aExldmVsUGlwZSB9IGZyb20gJy4vYmFyc2EtdHJlZS1pdGVtL25vZGUtaGFzLW9uZS1kZXB0aC1sZXZlbC5waXBlJztcbmltcG9ydCB7IFVpQXNwUmVwb3J0Vmlld2VyQ29tcG9uZW50IH0gZnJvbSAnLi91aS1hc3AtcmVwb3J0LXZpZXdlci91aS1hc3AtcmVwb3J0LXZpZXdlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVWlHcmFwaENvbXBvbmVudCB9IGZyb20gJy4vdWktZ3JhcGgvdWktZ3JhcGguY29tcG9uZW50JztcbmltcG9ydCB7IFVpRXhjZXB0aW9uRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vdWktZXhjZXB0aW9uLWZvcm0vdWktZXhjZXB0aW9uLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IFVpRWRpdGFibGVHcmlkQ29tcG9uZW50IH0gZnJvbSAnLi91aS1lZGl0YWJsZS1ncmlkL3VpLWVkaXRhYmxlLWdyaWQuY29tcG9uZW50JztcbmltcG9ydCB7IENvbHVtbk1hdHJpeFJlbmRlcmVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb2x1bW4tbWF0cml4LXJlbmRlcmVyL2NvbHVtbi1tYXRyaXgtcmVuZGVyZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFVpTWF0cml4Vmlld0NvbXBvbmVudCB9IGZyb20gJy4vdWktbWF0cml4LXZpZXcvdWktbWF0cml4LXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IEN1c3RvbURhdGVUaW1lQ29tcG9uZW50IH0gZnJvbSAnLi9jdXN0b20tZGF0ZS10aW1lL2N1c3RvbS1kYXRlLXRpbWUuY29tcG9uZW50JztcbmltcG9ydCB7IE1hdHJpeFZhbHVlUGlwZSB9IGZyb20gJy4vY29sdW1uLW1hdHJpeC1yZW5kZXJlci9tYXRyaXgtdmFsdWUucGlwZSc7XG5pbXBvcnQgeyBCYXJzYUFzcFZpZXdlckNvbXBvbmVudCB9IGZyb20gJy4vYmFyc2EtYXNwLXZpZXdlci9iYXJzYS1hc3Atdmlld2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaWxlSW5EaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2ZpbGUtaW4tZGlhbG9nL2ZpbGUtaW4tZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEeW5hbWljUGFnZVNpemVQaXBlIH0gZnJvbSAnLi9keW5hbWljLXBhZ2Utc2l6ZS5waXBlJztcbmltcG9ydCB7IFJlcG9ydFZpZXdSZW5kZXJlckRpcmVjdGl2ZSB9IGZyb20gJy4vcmVwb3J0LXZpZXctcmVuZGVyZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IFVpTW9JbmZvR2VuZXJhbE9iamVjdFVpQ29tcG9uZW50IH0gZnJvbSAnLi91aS1tby1pbmZvLWdlbmVyYWwtb2JqZWN0LXVpL3VpLW1vLWluZm8tZ2VuZXJhbC1vYmplY3QtdWkuY29tcG9uZW50JztcbmltcG9ydCB7IFVpR2FudHRDaGFydENvbXBvbmVudCB9IGZyb20gJy4vdWktZ2FudHQtY2hhcnQvdWktZ2FudHQtY2hhcnQuY29tcG9uZW50JztcbmltcG9ydCB7IEdhbnR0RGh0bWxDaGFydFZpZXdDb21wb25lbnQgfSBmcm9tICcuL2dhbnR0LWRodG1sLWNoYXJ0LXZpZXcvZ2FudHQtZGh0bWwtY2hhcnQtdmlldy5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBGdWxsc2NyZWVuRGlhbG9nRGlyZWN0aXZlIH0gZnJvbSAnLi9mdWxsc2NyZWVuLWRpYWxvZy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUHJvZ3Jlc3NJbmRpY2F0b3JDb21wb25lbnQgfSBmcm9tICcuL3Byb2dyZXNzLWluZGljYXRvci9wcm9ncmVzcy1pbmRpY2F0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IENhcmRWaWV3Q29udGVudENvbXBvbmVudCB9IGZyb20gJy4vY2FyZC12aWV3LWNvbnRlbnQvY2FyZC12aWV3LWNvbnRlbnQuY29tcG9uZW50JztcbmltcG9ydCB7IENhcmRJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9jYXJkLWl0ZW0vY2FyZC1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVaUNhcmRWaWV3SG9yaXpvbnRhbEdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi91aS1jYXJkLXZpZXctaG9yaXpvbnRhbC1ncm91cC91aS1jYXJkLXZpZXctaG9yaXpvbnRhbC1ncm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGl0bGVDb21wb25lbnQgfSBmcm9tICcuL3RpdGxlL3RpdGxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCYXJzYVVsdk1haW5Db21wb25lbnQgfSBmcm9tICcuL2JhcnNhLXVsdi1tYWluL2JhcnNhLXVsdi1tYWluLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMaXN0SXRlbUNvbXBvbmVudCB9IGZyb20gJy4vbGlzdC1pdGVtL2xpc3QtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSHRyZWVDcmVhdGVOZXdDb21wb25lbnQgfSBmcm9tICcuL2h0cmVlLWNyZWF0ZS1uZXcvaHRyZWUtY3JlYXRlLW5ldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFyc2FUYWJsZVJvd0NvbXBvbmVudCB9IGZyb20gJy4vYmFyc2EtdGFibGUtcm93L2JhcnNhLXRhYmxlLXJvdy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFyc2FUYWJsZUNvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4vYmFyc2EtdGFibGUtY29sdW1uL2JhcnNhLXRhYmxlLWNvbHVtbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFyc2FUYWJsZUhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vYmFyc2EtdGFibGUtaGVhZGVyL2JhcnNhLXRhYmxlLWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnJlYWRjcnVtYkNvbXBvbmVudCB9IGZyb20gJy4vYnJlYWRjcnVtYi9icmVhZGNydW1iLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVaUxhYmVsQ29tcG9uZW50IH0gZnJvbSAnLi91aS1sYWJlbC91aS1sYWJlbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybVRvb2xiYXJCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2Zvcm0tdG9vbGJhci1idXR0b24vZm9ybS10b29sYmFyLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFyc2FTZWFyY2hGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9iYXJzYS1zZWFyY2gtZm9ybS9iYXJzYS1zZWFyY2gtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVwb3J0TmV3VG9wRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vcmVwb3J0LW5ldy10b3AtZm9ybS9yZXBvcnQtbmV3LXRvcC1mb3JtLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IEJhcnNhTmV0d29ya09mZmxpbmVDb21wb25lbnQgfSBmcm9tICcuL2JhcnNhLW5ldHdvcmstb2ZmbGluZS9iYXJzYS1uZXR3b3JrLW9mZmxpbmUuY29tcG9uZW50JztcbmltcG9ydCB7IEJsb2JWaWV3ZXJDb21wb25lbnQgfSBmcm9tICcuL2Jsb2Itdmlld2VyL2Jsb2Itdmlld2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaWxlVmlld2VyQ29tcG9uZW50IH0gZnJvbSAnLi9maWxlLXZpZXdlci9maWxlLXZpZXdlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmlsZVZpZXdlckNvbnRlbnRDb21wb25lbnQgfSBmcm9tICcuL2ZpbGUtdmlld2VyLWNvbnRlbnQvZmlsZS12aWV3ZXItY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmlsZVZpZXdlclBvcG92ZXJDb21wb25lbnQgfSBmcm9tICcuL2ZpbGUtdmlld2VyLXBvcG92ZXIvZmlsZS12aWV3ZXItcG9wb3Zlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRG93bmxvYWRGaWxlc0RpcmVjdGl2ZSB9IGZyb20gJy4vZG93bmxvYWQtZmlsZXMuZGlyZWN0aXZlJztcbmltcG9ydCB7IEZ1bGxzY3JlZW5GaWxlc0RpcmVjdGl2ZSB9IGZyb20gJy4vZnVsbHNjcmVlbi1maWxlcy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vbm90aWZpY2F0aW9uLWl0ZW0vbm90aWZpY2F0aW9uLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IEJhcnNhQ2FydGFibGVUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vYmFyc2EtY2FydGFibGUtdGVtcGxhdGUvYmFyc2EtY2FydGFibGUtdGVtcGxhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IEJhcnNhQ2FydGFibGVHcm91cENvbXBvbmVudCB9IGZyb20gJy4vYmFyc2EtZ3JvdXAtY2FydGFibGUvYmFyc2EtY2FydGFibGUtZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IEJhcnNhQ2FydGFibGVGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9iYXJzYS1jYXJ0YWJsZS1mb3JtL2JhcnNhLWNhcnRhYmxlLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IEJhcnNhQ29sdW1uSW5kaWNhdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9iYXJzYS1jb2x1bW4taW5kaWNhdG9yL2JhcnNhLWNvbHVtbi1pbmRpY2F0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IEJhcnNhRmllbGRLZXlWYWx1ZUNvbXBvbmVudCB9IGZyb20gJy4vYmFyc2EtZmllbGQta2V5LXZhbHVlL2JhcnNhLWZpZWxkLWtleS12YWx1ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFyc2FUb29sYmFyaXRlbVNlYXJjaENvbXBvbmVudCB9IGZyb20gJy4vYmFyc2EtdG9vbGJhcml0ZW0tc2VhcmNoL2JhcnNhLXRvb2xiYXJpdGVtLXNlYXJjaC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVWlIdG1sVmlld2VyQ29tcG9uZW50IH0gZnJvbSAnLi91aS1odG1sLXZpZXdlci91aS1odG1sLXZpZXdlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFyc2FQaXNobmFtYXllc2hQYXlhbUNvbXBvbmVudCB9IGZyb20gJy4vYmFyc2EtcGlzaG5hbWF5ZXNoLXBheWFtL2JhcnNhLXBpc2huYW1heWVzaC1wYXlhbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFyc2FUZXh0RWxsaXBzaXNDb21wb25lbnQgfSBmcm9tICcuL2JhcnNhLXRleHQtZWxsaXBzaXMvYmFyc2EtdGV4dC1lbGxpcHNpcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFyc2FMaXN0RmlsZUxpbmVhckdtYWlsQ29tcG9uZW50IH0gZnJvbSAnLi9iYXJzYS1saXN0LWZpbGUtbGluZWFyLWdtYWlsL2JhcnNhLWxpc3QtZmlsZS1saW5lYXItZ21haWwuY29tcG9uZW50JztcbmltcG9ydCB7IEJhcnNhTGlua2FibGVJdGVtc1BhbmVsQ29tcG9uZW50IH0gZnJvbSAnLi9iYXJzYS1saW5rYWJsZS1pdGVtcy1wYW5lbC9iYXJzYS1saW5rYWJsZS1pdGVtcy1wYW5lbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFyc2FFbnVtTWVudUJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vYmFyc2EtZW51bS1tZW51LWJ1dHRvbi9iYXJzYS1lbnVtLW1lbnUtYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCYXJzYUNhcmRMYXlvdXRQYW5lbENvbXBvbmVudCB9IGZyb20gJy4vYmFyc2EtY2FyZC1sYXlvdXQtcGFuZWwvYmFyc2EtY2FyZC1sYXlvdXQtcGFuZWwuY29tcG9uZW50JztcblxuZXhwb3J0IGNvbnN0IGNvbXBvbmVudHMgPSBbXG4gICAgVWlUZXh0RmllbGRDb21wb25lbnQsXG4gICAgTHlMYXlvdXRGaWVsZExhYmVsQ29tcG9uZW50LFxuICAgIFVpQ2hlY2tCb3hDb21wb25lbnQsXG4gICAgVWlTaW1wbGVDb21ib0NvbXBvbmVudCxcbiAgICBVaVJhZGlvR3JvdXBDb21wb25lbnQsXG4gICAgVWlHcmlkQ29tcG9uZW50LFxuICAgIEx5TGF5b3V0Q29udGFpbmVyT2ZSb290Q29tcG9uZW50LFxuICAgIEx5TGF5b3V0UGFuZWxDb21wb25lbnQsXG4gICAgVWlSZWFkT25seUZpZWxkQ29tcG9uZW50LFxuICAgIFVpQ29udGFpbmVyV2l0aEJ1dHRvbkNvbXBvbmVudCxcbiAgICBVaVBpY3R1cmVGaWxlQ29tcG9uZW50LFxuICAgIFVpTW9JbmZvVWx2Q29tYm9Db21wb25lbnQsXG4gICAgVWlNdWx0aVNlbGVjdENvbWJvQ29tcG9uZW50LFxuICAgIFVpTnVtRGVjaW1hbFVpQ29tcG9uZW50LFxuICAgIFVpTnVtSW50VWlDb21wb25lbnQsXG4gICAgVWlUaW1lU3BhbkNvbXBvbmVudCxcbiAgICBVaUZpbGVMaW5lYXJMaXN0Qm94Q29tcG9uZW50LFxuICAgIEx5RW1wdHlTcGFjZUNvbXBvbmVudCxcbiAgICBVaVNpbmdsZVBpY3R1cmVDb21wb25lbnQsXG4gICAgVWx2U2VsZWN0aW9uQ29tcG9uZW50LFxuICAgIFVsdlRvb2xiYXJDb21wb25lbnQsXG4gICAgVWx2UGFnaW5nQ29tcG9uZW50LFxuICAgIFVpR3JpZFNvcnRTZXR0aW5nQ29tcG9uZW50LFxuICAgIFVpR3JpZFNvcnRJdGVtQ29tcG9uZW50LFxuICAgIFVpR3JpZENvbHVtbnNDb21wb25lbnQsXG4gICAgTWFza0NvbXBvbmVudCxcbiAgICBVaUluZm9CYXJQYW5lbENvbXBvbmVudCxcbiAgICBVaUZvcm1QYW5lbFRvb2xiYXJDb21wb25lbnQsXG4gICAgVWlGb3JtUGFuZWxDb21wb25lbnQsXG4gICAgVWlTZWFyY2hDb21tYW5kSW5mb1VpQ29tcG9uZW50LFxuICAgIFVsdlNldHRpbmdzQ29tcG9uZW50LFxuICAgIFVpVGlueW1jZUNvbXBvbmVudCxcbiAgICBVaUJ1dHRvbkNvbXBvbmVudCxcbiAgICBVaURhdGVUaW1lQ29tcG9uZW50LFxuICAgIEZvcm1EaWFsb2dDb21wb25lbnQsXG4gICAgSGVhZGVyRmFjZXRLZXlWYWx1ZUNvbXBvbmVudCxcbiAgICBIZWFkZXJGYWNldEZvcm1Db21wb25lbnQsXG4gICAgSGVhZGVyRmFjZXRSYXRlQ29tcG9uZW50LFxuICAgIEhlYWRlckZhY2V0UHJvZ3Jlc3NDb21wb25lbnQsXG4gICAgSGVhZGVyRmFjZXRNaWNyb2NoYXJ0Q29tcG9uZW50LFxuICAgIEhlYWRlckZhY2V0UGxhaW5UZXh0Q29tcG9uZW50LFxuICAgIFVpTW9JbmZvU3ViRm9ybVVpQ29tcG9uZW50LFxuICAgIFJlc3BvbnNpdmVUb29sYmFyQ29tcG9uZW50LFxuICAgIFJlc3BvbnNpdmVUb29sYmFyUmVuZGVyZXJDb21wb25lbnQsXG4gICAgVWlUZXh0QXJlYUNvbXBvbmVudCxcbiAgICBMYXlvdXRDb250cm9sQ29tcG9uZW50LFxuICAgIExheW91dFdpemFyZENvbXBvbmVudCxcbiAgICBGb3JtV2l6YXJkQ29tcG9uZW50LFxuICAgIEZvcm1EaWFsb2dMZXNzQ29tcG9uZW50LFxuICAgIFJpY2hUZXh0U3RhdGljQ29tcG9uZW50LFxuICAgIFVpUGljdHVyZXNJbmZvQ29tcG9uZW50LFxuICAgIEx5SG9yaXpvbnRhbExheW91dENvbXBvbmVudCxcbiAgICBMeVZlcnRpY2FsTGF5b3V0Q29tcG9uZW50LFxuICAgIEx5VGFiQ29udGFpbmVyQ29tcG9uZW50LFxuICAgIEx5VGFiUGFnZUNvbXBvbmVudCxcbiAgICBMeUxhYmVsQ29tcG9uZW50LFxuICAgIFVpTW9JbmZvQ29tYm9WaWV3ZXJDb21wb25lbnQsXG4gICAgVWxNc2dCb3hBZGFwdGVyQ29tcG9uZW50LFxuICAgIFVpVHJlZUNvbXBvbmVudCxcbiAgICBIZWFkZXJBdmF0YXJDb21wb25lbnQsXG4gICAgVWlXb3JrZmxvd1BhbmVsVWlDb21wb25lbnQsXG4gICAgVWx2Q29udGV4dE1lbnVDb21wb25lbnQsXG4gICAgVWxMb2FkaW5nTWFza1VpQ29tcG9uZW50LFxuICAgIFVpVGV4dEZpZWxkQXV0b0NvbXBsZXRlQ29tcG9uZW50LFxuICAgIENhcHRjaGFGaWVsZENvbXBvbmVudCxcbiAgICBMeVNpbXBsZUxhYmVsQ29tcG9uZW50LFxuICAgIEdsb2JhbFNlYXJjaFBhbmVsQ29tcG9uZW50LFxuICAgIEdsb2JhbFNlYXJjaE1vZHVsZUNvbXBvbmVudCxcbiAgICBHbG9iYWxTZWFyY2hDb21wb25lbnQsXG4gICAgSHlwZXJsaW5rQ29tcG9uZW50LFxuICAgIFN0YXRpY1RleHRDb21wb25lbnQsXG4gICAgVWxUb2FzdEFkYXB0ZXJDb21wb25lbnQsXG4gICAgTWVzc2FnZVN0cmlwQ29tcG9uZW50LFxuICAgIFVpTGluZWFyTGlzdENvbnRhaW5lcldpdGhCdXR0b25Db21wb25lbnQsXG4gICAgRnVuZGFtZW50YWxEeW5hbWljRm9ybUNvbXBvbmVudCxcbiAgICBMYXlvdXRBY3Rpb25zQ29tcG9uZW50LFxuICAgIEx5TGF5b3V0Q29udGFpbmVyQ29tcG9uZW50LFxuICAgIFVpVWx2Rm9ybU11bHRpU2VsZWN0VWlDb21wb25lbnQsXG4gICAgVWx2Rm9ybU11bHRpU2VsZWN0Q29tcG9uZW50LFxuICAgIFVsdkNvbHVtblNldHRpbmdzQ29tcG9uZW50LFxuICAgIFVsdkZpbHRlclNldHRpbmdzQ29tcG9uZW50LFxuICAgIFVsdlNvcnRTZXR0aW5nc0NvbXBvbmVudCxcbiAgICBVbHZHcm91cGJ5U2V0dGluZ3NDb21wb25lbnQsXG4gICAgQmFyc2FMaXN0RmlsZUxpbmVhckNvbXBvbmVudCxcbiAgICBVaVBkZlZpZXdlckNvbXBvbmVudCxcbiAgICBCYXJzYVRpbnllbWNlQ29tcG9uZW50LFxuICAgIFVpTW9uYWNvRWRpdG9yQ29tcG9uZW50LFxuICAgIEJhcnNhTW9uYWNvRWRpdG9yQ29tcG9uZW50LFxuICAgIEJhcnNhRGF0ZVRpbWVQaWNrZXJDb21wb25lbnQsXG4gICAgQmFyc2FUcmVlSXRlbUNvbXBvbmVudCxcbiAgICBVaVN3aXRjaEJ1dHRvbkNvbXBvbmVudCxcbiAgICBVaUNvbG9yVWlDb21wb25lbnQsXG4gICAgTHlMaW5lQ29tcG9uZW50LFxuICAgIFVpVWx2TWFpblVpQ29tcG9uZW50LFxuICAgIFJlcG9ydE5hdmlnYXRvckNvbXBvbmVudCxcbiAgICBNYW5hZ2VGaWx0ZXJzUmVwb3J0Q29tcG9uZW50LFxuICAgIFJlcG9ydFNlYXJjaEZpZWxkc01hbmFnZUNvbXBvbmVudCxcbiAgICBSZXBvcnRTZWFyY2hGaWVsZHNIaWRkZW5TZXR0aW5nc0NvbXBvbmVudCxcbiAgICBTZWFyY2hQYW5lbENvbXBvbmVudCxcbiAgICBSZXBvcnRTZWFyY2hQYW5lbFNhdmVDb21wb25lbnQsXG4gICAgVWlHcmlkRmlsdGVyU2V0dGluZ3NDb21wb25lbnQsXG4gICAgVWlHcmlkRmlsdGVySXRlbUNvbXBvbmVudCxcbiAgICBVaURhdGVSYW5nZUV4Q29tcG9uZW50LFxuICAgIFVsTm90aWZ5UG9wdXBDb21wb25lbnQsXG4gICAgVWlUYWJsZVZpZXdDb21wb25lbnQsXG4gICAgVWlMaXN0Vmlld0NvbXBvbmVudCxcbiAgICBVaUNhcmRWaWV3Q29tcG9uZW50LFxuICAgIFVpUmVwb3J0Q29udGFpbmVyQ29tcG9uZW50LFxuICAgIE5vRGF0YUNvbXBvbmVudCxcbiAgICBDb2x1bW5SZW5kZXJlckNvbXBvbmVudCxcbiAgICBJbmxpbmVTYXZlQW5kQ2FuY2VsQ29tcG9uZW50LFxuICAgIFVpVHJlZVZpZXdDb21wb25lbnQsXG4gICAgSW5saW5lU2F2ZUFuZENhbmNlbENvbXBvbmVudCxcbiAgICBVaUNhbGVuZGFyQ29tcG9uZW50LFxuICAgIFVpQXNwUmVwb3J0Vmlld2VyQ29tcG9uZW50LFxuICAgIFVpR3JhcGhDb21wb25lbnQsXG4gICAgVWlFeGNlcHRpb25Gb3JtQ29tcG9uZW50LFxuICAgIFVpRWRpdGFibGVHcmlkQ29tcG9uZW50LFxuICAgIENvbHVtbk1hdHJpeFJlbmRlcmVyQ29tcG9uZW50LFxuICAgIFVpTWF0cml4Vmlld0NvbXBvbmVudCxcbiAgICBDdXN0b21EYXRlVGltZUNvbXBvbmVudCxcbiAgICBCYXJzYUFzcFZpZXdlckNvbXBvbmVudCxcbiAgICBGaWxlSW5EaWFsb2dDb21wb25lbnQsXG4gICAgVWlNb0luZm9HZW5lcmFsT2JqZWN0VWlDb21wb25lbnQsXG4gICAgVWlHYW50dENoYXJ0Q29tcG9uZW50LFxuICAgIEdhbnR0RGh0bWxDaGFydFZpZXdDb21wb25lbnQsXG4gICAgUHJvZ3Jlc3NJbmRpY2F0b3JDb21wb25lbnQsXG4gICAgQ2FyZFZpZXdDb250ZW50Q29tcG9uZW50LFxuICAgIENhcmRJdGVtQ29tcG9uZW50LFxuICAgIFVpQ2FyZFZpZXdIb3Jpem9udGFsR3JvdXBDb21wb25lbnQsXG4gICAgVGl0bGVDb21wb25lbnQsXG4gICAgQmFyc2FVbHZNYWluQ29tcG9uZW50LFxuICAgIExpc3RJdGVtQ29tcG9uZW50LFxuICAgIEh0cmVlQ3JlYXRlTmV3Q29tcG9uZW50LFxuICAgIEJhcnNhVGFibGVIZWFkZXJDb21wb25lbnQsXG4gICAgQmFyc2FUYWJsZVJvd0NvbXBvbmVudCxcbiAgICBCYXJzYVRhYmxlQ29sdW1uQ29tcG9uZW50LFxuICAgIEJyZWFkY3J1bWJDb21wb25lbnQsXG4gICAgVWlMYWJlbENvbXBvbmVudCxcbiAgICBGb3JtVG9vbGJhckJ1dHRvbkNvbXBvbmVudCxcbiAgICBCYXJzYVNlYXJjaEZvcm1Db21wb25lbnQsXG4gICAgUmVwb3J0TmV3VG9wRm9ybUNvbXBvbmVudCxcbiAgICBCYXJzYU5ldHdvcmtPZmZsaW5lQ29tcG9uZW50LFxuICAgIEZpbGVWaWV3ZXJDb250ZW50Q29tcG9uZW50LFxuICAgIEZpbGVWaWV3ZXJQb3BvdmVyQ29tcG9uZW50LFxuICAgIEZpbGVWaWV3ZXJDb21wb25lbnQsXG4gICAgQmxvYlZpZXdlckNvbXBvbmVudCxcbiAgICBOb3RpZmljYXRpb25JdGVtQ29tcG9uZW50LFxuICAgIEJhcnNhQ2FydGFibGVUZW1wbGF0ZUNvbXBvbmVudCxcbiAgICBCYXJzYUNhcnRhYmxlR3JvdXBDb21wb25lbnQsXG4gICAgQmFyc2FDYXJ0YWJsZUZvcm1Db21wb25lbnQsXG4gICAgQmFyc2FDb2x1bW5JbmRpY2F0b3JDb21wb25lbnQsXG4gICAgQmFyc2FGaWVsZEtleVZhbHVlQ29tcG9uZW50LFxuICAgIEJhcnNhVG9vbGJhcml0ZW1TZWFyY2hDb21wb25lbnQsXG4gICAgVWlIdG1sVmlld2VyQ29tcG9uZW50LFxuICAgIEJhcnNhUGlzaG5hbWF5ZXNoUGF5YW1Db21wb25lbnQsXG4gICAgQmFyc2FUZXh0RWxsaXBzaXNDb21wb25lbnQsXG4gICAgQmFyc2FMaXN0RmlsZUxpbmVhckdtYWlsQ29tcG9uZW50LFxuICAgIEJhcnNhTGlua2FibGVJdGVtc1BhbmVsQ29tcG9uZW50LFxuICAgIEJhcnNhRW51bU1lbnVCdXR0b25Db21wb25lbnQsXG4gICAgQmFyc2FDYXJkTGF5b3V0UGFuZWxDb21wb25lbnRcbl07XG5leHBvcnQgY29uc3QgcGlwZXMgPSBbXG4gICAgVXBsb2FkRmlsZVN0YXR1c1BpcGUsXG4gICAgU2FwRm9udFBpcGUsXG4gICAgU2FwRm9udENsYXNzUGlwZSxcbiAgICBTdHJpbmdUb0FycmF5UGlwZSxcbiAgICBOb2RlSGFzT25lRGVwdGhMZXZlbFBpcGUsXG4gICAgTWF0cml4VmFsdWVQaXBlLFxuICAgIER5bmFtaWNQYWdlU2l6ZVBpcGVcbl07XG5leHBvcnQgY29uc3QgZGlyZWN0aXZlcyA9IFtcbiAgICBXaXphcmRMYXlvdXREaXJlY3RpdmUsXG4gICAgQ29sUmVuZGVyZXJEaXJlY3RpdmUsXG4gICAgQXBwbHlDb25kaXRpb25hbEZvcm1hdHNEaXJlY3RpdmUsXG4gICAgUmVwb3J0Vmlld1JlbmRlcmVyRGlyZWN0aXZlLFxuICAgIEZ1bGxzY3JlZW5EaWFsb2dEaXJlY3RpdmUsXG4gICAgRnVsbHNjcmVlbkZpbGVzRGlyZWN0aXZlLFxuICAgIERvd25sb2FkRmlsZXNEaXJlY3RpdmVcbl07XG5cbmV4cG9ydCBjb25zdCBJTklUX1NBUEZJT1JJID1cbiAgICAoXG4gICAgICAgIHJ0bFNlcnZpY2U6IFJ0bFNlcnZpY2UsXG4gICAgICAgIGNvbnRlbnREZW5zaXR5U2VydmljZTogR2xvYmFsQ29udGVudERlbnNpdHlTZXJ2aWNlLFxuICAgICAgICB0aGVtZVNlcnZpY2U6IFRoZW1lc1NlcnZpY2UsXG4gICAgICAgIHBvcnRhbFNlcnZpY2U6IFBvcnRhbFNlcnZpY2VcbiAgICApID0+XG4gICAgKCkgPT4ge1xuICAgICAgICBydGxTZXJ2aWNlLnJ0bC5uZXh0KEJhcnNhQXBpLkxvZ2luRm9ybURhdGEuSXNSdGwpO1xuICAgICAgICBsZXQgZm9udEZhbWlseSA9ICdJUkFOWWVrYW5EaWdpdHMnO1xuICAgICAgICBpZiAoQmFyc2FBcGkuTG9naW5Gb3JtRGF0YS5DdWx0dXJlID09PSAnZW4tVVMnKSB7XG4gICAgICAgICAgICBmb250RmFtaWx5ID0gJ0lSQU5TYW5zV2ViJztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNzcyA9IGAqIHtcbiAgICAtLWZkRHluYW1pY1BhZ2VfVGl0bGVfRm9udF9GYW1pbHk6ICcke2ZvbnRGYW1pbHl9JztcbiAgICAtLXNhcEZvbnRGYW1pbHk6ICcke2ZvbnRGYW1pbHl9JztcbiAgICAtLWZkV2l6YXJkX0xhYmVsX0ZvbnRfRmFtaWx5OiAnJHtmb250RmFtaWx5fSc7XG4gICAgLS1zYXBGb250TGlnaHRGYW1pbHk6ICcke2ZvbnRGYW1pbHl9JztcbiAgICAtLXNhcEZvbnRIZWFkZXJGYW1pbHk6ICcke2ZvbnRGYW1pbHl9JztcbiAgICAtLV91aTVfaW5wdXRfY29tcGFjdF9oZWlnaHQ6IDEuNjI1cmVtO1xuICAgIC0tc2FwRm9udFNpemU6IDAuODg1cmVtO1xuICAgIC8qIC0tc2FwQ29udGVudF9IZWFkZXJTaGFkb3c6IG5vbmU7ICovXG59YCxcbiAgICAgICAgICAgIGhlYWQgPSBkb2N1bWVudC5oZWFkIHx8IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF0sXG4gICAgICAgICAgICBzdHlsZTogYW55ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcblxuICAgICAgICBoZWFkLmFwcGVuZENoaWxkKHN0eWxlKTtcblxuICAgICAgICBzdHlsZS50eXBlID0gJ3RleHQvY3NzJztcbiAgICAgICAgaWYgKHN0eWxlLnN0eWxlU2hlZXQpIHtcbiAgICAgICAgICAgIC8vIFRoaXMgaXMgcmVxdWlyZWQgZm9yIElFOCBhbmQgYmVsb3cuXG4gICAgICAgICAgICBzdHlsZS5zdHlsZVNoZWV0LmNzc1RleHQgPSBjc3M7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdHlsZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShjc3MpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHBvcnRhbFNlcnZpY2UudXNlclBvcnRhbFNldHRpbmdzJC5waXBlKGZpbHRlcigoYykgPT4gYyAhPSBudWxsKSkuc3Vic2NyaWJlKCh1c2VyU2V0dGluZ3MpID0+IHtcbiAgICAgICAgICAgIGxldCBjb250ZW50RGVuc2l0eTogYW55O1xuICAgICAgICAgICAgbGV0IHRoZW1lOiBhbnk7XG4gICAgICAgICAgICBpZiAoIXVzZXJTZXR0aW5ncykge1xuICAgICAgICAgICAgICAgIGlmIChnZXREZXZpY2VJc01vYmlsZSgpIHx8IGdldERldmljZUlzUGhvbmUoKSB8fCBnZXREZXZpY2VJc1RhYmxldCgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnREZW5zaXR5ID0gQ29udGVudERlbnNpdHlNb2RlLkNPWlk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudERlbnNpdHkgPSBDb250ZW50RGVuc2l0eU1vZGUuQ09NUEFDVDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgQ29udGVudERlbnNpdHkkQ2FwdGlvbiwgVGhlbWUkQ2FwdGlvbiB9ID0gdXNlclNldHRpbmdzO1xuICAgICAgICAgICAgICAgIGNvbnRlbnREZW5zaXR5ID0gQ29udGVudERlbnNpdHkkQ2FwdGlvbjtcbiAgICAgICAgICAgICAgICB0aGVtZSA9IFRoZW1lJENhcHRpb247XG4gICAgICAgICAgICAgICAgaWYgKCFjb250ZW50RGVuc2l0eSkge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50RGVuc2l0eSA9IENvbnRlbnREZW5zaXR5TW9kZS5DT01QQUNUO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChnZXREZXZpY2VJc01vYmlsZSgpIHx8IGdldERldmljZUlzUGhvbmUoKSkge1xuICAgICAgICAgICAgICAgIGNvbnRlbnREZW5zaXR5ID0gQ29udGVudERlbnNpdHlNb2RlLkNPWlk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoY29udGVudERlbnNpdHkpIHtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnREZW5zaXR5U2VydmljZS51cGRhdGVDb250ZW50RGVuc2l0eShjb250ZW50RGVuc2l0eSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IGJvZHlDbGFzc0NvbXBhY3QgPSAndWk1LWNvbnRlbnQtZGVuc2l0eS1jb21wYWN0JztcbiAgICAgICAgICAgICAgICBjb25zdCBib2R5Q2xhc3NDb25kZW5zZWQgPSAndWk1LWNvbnRlbnQtZGVuc2l0eS1jb25kZW5zZWQnO1xuICAgICAgICAgICAgICAgIGNvbnN0IGJvZHlDbGFzc0NvenkgPSAndWk1LWNvbnRlbnQtZGVuc2l0eS1jb3p5JztcbiAgICAgICAgICAgICAgICBjb25zdCBib2R5ID0gZG9jdW1lbnQ/LmJvZHk7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChjb250ZW50RGVuc2l0eSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdjb25kZW5zZWQnOlxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghYm9keS5jbGFzc0xpc3QuY29udGFpbnMoYm9keUNsYXNzQ29uZGVuc2VkKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib2R5LmNsYXNzTGlzdC5hZGQoYm9keUNsYXNzQ29uZGVuc2VkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9keS5jbGFzc0xpc3QucmVtb3ZlKGJvZHlDbGFzc0NvbXBhY3QpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvZHkuY2xhc3NMaXN0LnJlbW92ZShib2R5Q2xhc3NDb3p5KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2NvenknOlxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghYm9keS5jbGFzc0xpc3QuY29udGFpbnMoYm9keUNsYXNzQ296eSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9keS5jbGFzc0xpc3QuYWRkKGJvZHlDbGFzc0NvenkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib2R5LmNsYXNzTGlzdC5yZW1vdmUoYm9keUNsYXNzQ29tcGFjdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9keS5jbGFzc0xpc3QucmVtb3ZlKGJvZHlDbGFzc0NvbmRlbnNlZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnY29tcGFjdCc6XG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFib2R5LmNsYXNzTGlzdC5jb250YWlucyhib2R5Q2xhc3NDb21wYWN0KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib2R5LmNsYXNzTGlzdC5hZGQoYm9keUNsYXNzQ29tcGFjdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvZHkuY2xhc3NMaXN0LnJlbW92ZShib2R5Q2xhc3NDb3p5KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib2R5LmNsYXNzTGlzdC5yZW1vdmUoYm9keUNsYXNzQ29uZGVuc2VkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGVtZSkge1xuICAgICAgICAgICAgICAgIGlmICh0aGVtZS5pbmRleE9mKCdkYXJrJykgPiAtMSkge1xuICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ2NvbG9yLXNjaGVtZScsICdkYXJrJyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCdjb2xvci1zY2hlbWUnLCAnbGlnaHQnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcG9ydGFsU2VydmljZS5zZXRUaGVtZSh0aGVtZVNlcnZpY2Uuc2V0VGhlbWUodGhlbWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfTtcbiJdfQ==