mapa-library-ui 0.76.1 → 0.77.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -31,4 +31,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
31
31
  type: ViewChild,
32
32
  args: [MatMenuTrigger]
33
33
  }] } });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXBhLWxpYnJhcnktdWkvc3JjL2xpYi9jb21wb25lbnRzL21lbnUvc3JjL21lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwYS1saWJyYXJ5LXVpL3NyYy9saWIvY29tcG9uZW50cy9tZW51L3NyYy9tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7QUFjeEQsTUFBTSxPQUFPLGlCQUFpQjtJQUw5QjtRQU1XLFVBQUssR0FBZSxFQUFFLENBQUM7UUFFdEIsYUFBUSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO0tBVWpFO0lBUEMsVUFBVTtRQUNSLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUFjO1FBQ3RCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNsRCxDQUFDOzsrR0FaVSxpQkFBaUI7bUdBQWpCLGlCQUFpQix1S0FJakIsY0FBYyxnREN6QjNCLG1nQkFtQkE7NEZERWEsaUJBQWlCO2tCQUw3QixTQUFTOytCQUNFLFdBQVc7OEJBS1osS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDSSxRQUFRO3NCQUFqQixNQUFNO2dCQUNvQixPQUFPO3NCQUFqQyxTQUFTO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgTWF0TWVudVRyaWdnZXIgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1lbnVJdGVtIHtcbiAgaW1hZ2U/OiBzdHJpbmc7XG4gIGljb24/OiBzdHJpbmc7XG4gIHRleHQ6IHN0cmluZztcbiAgYWN0aW9uOiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJtYXBhLW1lbnVcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9tZW51LmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9tZW51LmNvbXBvbmVudC5zY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBNYXBhTWVudUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGl0ZW1zOiBNZW51SXRlbVtdID0gW107XG4gIEBJbnB1dCgpIGRhdGE/OiBhbnk7XG4gIEBPdXRwdXQoKSBlbWl0TWVudTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQFZpZXdDaGlsZChNYXRNZW51VHJpZ2dlcikgdHJpZ2dlciE6IE1hdE1lbnVUcmlnZ2VyO1xuXG4gIHRvZ2dsZU1lbnUoKTogdm9pZCB7XG4gICAgdGhpcy50cmlnZ2VyLm9wZW5NZW51KCk7XG4gIH1cblxuICBjbGlja01lbnUoYWN0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmVtaXRNZW51LmVtaXQoeyBhY3Rpb24sIGRhdGE6IHRoaXMuZGF0YSB9KTtcbiAgfVxufVxuIiwiPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiIGNsYXNzPVwibWFwYS1tZW51XCI+XG4gIDxidXR0b25cbiAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1wiXG4gICAgbWF0LW1lbnUtaXRlbVxuICAgIChjbGljayk9XCJjbGlja01lbnUoaXRlbS5hY3Rpb24pXCJcbiAgICBjbGFzcz1cIm1hcGEtbWVudV9faXRlbVwiXG4gID5cbiAgICA8bWF0LWljb24gKm5nSWY9XCJpdGVtLmljb25cIj57e2l0ZW0uaWNvbn19PC9tYXQtaWNvbj5cbiAgICA8aW1nICpuZ0lmPVwiaXRlbS5pbWFnZVwiIFtzcmNdPVwiaXRlbS5pbWFnZVwiIC8+XG4gICAgPHNwYW4+e3tpdGVtLnRleHR9fTwvc3Bhbj5cbiAgPC9idXR0b24+XG48L21hdC1tZW51PlxuXG48aW1nXG4gIGNsYXNzPVwib3V0c2lkZS1tZW51LWljb25cIlxuICBzcmM9XCJhc3NldHMvaW1hZ2VzL2ljb25zL1RocmVlUG9pbnRzLnN2Z1wiXG4gIChjbGljayk9XCJ0b2dnbGVNZW51KClcIlxuICBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiXG4vPlxuIl19
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXBhLWxpYnJhcnktdWkvc3JjL2xpYi9jb21wb25lbnRzL21lbnUvc3JjL21lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwYS1saWJyYXJ5LXVpL3NyYy9saWIvY29tcG9uZW50cy9tZW51L3NyYy9tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7QUFpQnhELE1BQU0sT0FBTyxpQkFBaUI7SUFMOUI7UUFNVyxVQUFLLEdBQWUsRUFBRSxDQUFDO1FBRXRCLGFBQVEsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztLQVVqRTtJQVBDLFVBQVU7UUFDUixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxTQUFTLENBQUMsTUFBYztRQUN0QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDbEQsQ0FBQzs7K0dBWlUsaUJBQWlCO21HQUFqQixpQkFBaUIsdUtBSWpCLGNBQWMsZ0RDNUIzQixtZ0JBbUJBOzRGREthLGlCQUFpQjtrQkFMN0IsU0FBUzsrQkFDRSxXQUFXOzhCQUtaLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0ksUUFBUTtzQkFBakIsTUFBTTtnQkFDb0IsT0FBTztzQkFBakMsU0FBUzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IE1hdE1lbnVUcmlnZ2VyIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL21lbnVcIjtcblxuZXhwb3J0IGludGVyZmFjZSBNZW51SXRlbSB7XG4gIGltYWdlPzogc3RyaW5nO1xuICBpY29uPzogc3RyaW5nO1xuICByb3V0ZT86IHN0cmluZztcbiAgc2hvd1RleHQ/OiBib29sZWFuO1xuICBzdmc/OiBzdHJpbmc7XG4gIHRleHQ6IHN0cmluZztcbiAgYWN0aW9uOiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJtYXBhLW1lbnVcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9tZW51LmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9tZW51LmNvbXBvbmVudC5zY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBNYXBhTWVudUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGl0ZW1zOiBNZW51SXRlbVtdID0gW107XG4gIEBJbnB1dCgpIGRhdGE/OiBhbnk7XG4gIEBPdXRwdXQoKSBlbWl0TWVudTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQFZpZXdDaGlsZChNYXRNZW51VHJpZ2dlcikgdHJpZ2dlciE6IE1hdE1lbnVUcmlnZ2VyO1xuXG4gIHRvZ2dsZU1lbnUoKTogdm9pZCB7XG4gICAgdGhpcy50cmlnZ2VyLm9wZW5NZW51KCk7XG4gIH1cblxuICBjbGlja01lbnUoYWN0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmVtaXRNZW51LmVtaXQoeyBhY3Rpb24sIGRhdGE6IHRoaXMuZGF0YSB9KTtcbiAgfVxufVxuIiwiPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiIGNsYXNzPVwibWFwYS1tZW51XCI+XG4gIDxidXR0b25cbiAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1wiXG4gICAgbWF0LW1lbnUtaXRlbVxuICAgIChjbGljayk9XCJjbGlja01lbnUoaXRlbS5hY3Rpb24pXCJcbiAgICBjbGFzcz1cIm1hcGEtbWVudV9faXRlbVwiXG4gID5cbiAgICA8bWF0LWljb24gKm5nSWY9XCJpdGVtLmljb25cIj57e2l0ZW0uaWNvbn19PC9tYXQtaWNvbj5cbiAgICA8aW1nICpuZ0lmPVwiaXRlbS5pbWFnZVwiIFtzcmNdPVwiaXRlbS5pbWFnZVwiIC8+XG4gICAgPHNwYW4+e3tpdGVtLnRleHR9fTwvc3Bhbj5cbiAgPC9idXR0b24+XG48L21hdC1tZW51PlxuXG48aW1nXG4gIGNsYXNzPVwib3V0c2lkZS1tZW51LWljb25cIlxuICBzcmM9XCJhc3NldHMvaW1hZ2VzL2ljb25zL1RocmVlUG9pbnRzLnN2Z1wiXG4gIChjbGljayk9XCJ0b2dnbGVNZW51KClcIlxuICBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiXG4vPlxuIl19
@@ -31,4 +31,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
31
31
  type: ViewChild,
32
32
  args: [MatMenuTrigger]
33
33
  }] } });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXBhLWxpYnJhcnktdWkvc3JjL2xpYi9jb21wb25lbnRzL21lbnUvc3JjL21lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwYS1saWJyYXJ5LXVpL3NyYy9saWIvY29tcG9uZW50cy9tZW51L3NyYy9tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7QUFjeEQsTUFBTSxPQUFPLGlCQUFpQjtJQUw5QjtRQU1XLFVBQUssR0FBZSxFQUFFLENBQUM7UUFFdEIsYUFBUSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO0tBVWpFO0lBUEMsVUFBVTtRQUNSLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUFjO1FBQ3RCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNsRCxDQUFDOzsrR0FaVSxpQkFBaUI7bUdBQWpCLGlCQUFpQix1S0FJakIsY0FBYyxnREN6QjNCLG1nQkFtQkE7NEZERWEsaUJBQWlCO2tCQUw3QixTQUFTOytCQUNFLFdBQVc7OEJBS1osS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDSSxRQUFRO3NCQUFqQixNQUFNO2dCQUNvQixPQUFPO3NCQUFqQyxTQUFTO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgTWF0TWVudVRyaWdnZXIgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1lbnVJdGVtIHtcbiAgaW1hZ2U/OiBzdHJpbmc7XG4gIGljb24/OiBzdHJpbmc7XG4gIHRleHQ6IHN0cmluZztcbiAgYWN0aW9uOiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJtYXBhLW1lbnVcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9tZW51LmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9tZW51LmNvbXBvbmVudC5zY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBNYXBhTWVudUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGl0ZW1zOiBNZW51SXRlbVtdID0gW107XG4gIEBJbnB1dCgpIGRhdGE/OiBhbnk7XG4gIEBPdXRwdXQoKSBlbWl0TWVudTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQFZpZXdDaGlsZChNYXRNZW51VHJpZ2dlcikgdHJpZ2dlciE6IE1hdE1lbnVUcmlnZ2VyO1xuXG4gIHRvZ2dsZU1lbnUoKTogdm9pZCB7XG4gICAgdGhpcy50cmlnZ2VyLm9wZW5NZW51KCk7XG4gIH1cblxuICBjbGlja01lbnUoYWN0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmVtaXRNZW51LmVtaXQoeyBhY3Rpb24sIGRhdGE6IHRoaXMuZGF0YSB9KTtcbiAgfVxufVxuIiwiPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiIGNsYXNzPVwibWFwYS1tZW51XCI+XG4gIDxidXR0b25cbiAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1wiXG4gICAgbWF0LW1lbnUtaXRlbVxuICAgIChjbGljayk9XCJjbGlja01lbnUoaXRlbS5hY3Rpb24pXCJcbiAgICBjbGFzcz1cIm1hcGEtbWVudV9faXRlbVwiXG4gID5cbiAgICA8bWF0LWljb24gKm5nSWY9XCJpdGVtLmljb25cIj57e2l0ZW0uaWNvbn19PC9tYXQtaWNvbj5cbiAgICA8aW1nICpuZ0lmPVwiaXRlbS5pbWFnZVwiIFtzcmNdPVwiaXRlbS5pbWFnZVwiIC8+XG4gICAgPHNwYW4+e3tpdGVtLnRleHR9fTwvc3Bhbj5cbiAgPC9idXR0b24+XG48L21hdC1tZW51PlxuXG48aW1nXG4gIGNsYXNzPVwib3V0c2lkZS1tZW51LWljb25cIlxuICBzcmM9XCJhc3NldHMvaW1hZ2VzL2ljb25zL1RocmVlUG9pbnRzLnN2Z1wiXG4gIChjbGljayk9XCJ0b2dnbGVNZW51KClcIlxuICBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiXG4vPlxuIl19
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXBhLWxpYnJhcnktdWkvc3JjL2xpYi9jb21wb25lbnRzL21lbnUvc3JjL21lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwYS1saWJyYXJ5LXVpL3NyYy9saWIvY29tcG9uZW50cy9tZW51L3NyYy9tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7QUFpQnhELE1BQU0sT0FBTyxpQkFBaUI7SUFMOUI7UUFNVyxVQUFLLEdBQWUsRUFBRSxDQUFDO1FBRXRCLGFBQVEsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztLQVVqRTtJQVBDLFVBQVU7UUFDUixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxTQUFTLENBQUMsTUFBYztRQUN0QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDbEQsQ0FBQzs7K0dBWlUsaUJBQWlCO21HQUFqQixpQkFBaUIsdUtBSWpCLGNBQWMsZ0RDNUIzQixtZ0JBbUJBOzRGREthLGlCQUFpQjtrQkFMN0IsU0FBUzsrQkFDRSxXQUFXOzhCQUtaLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0ksUUFBUTtzQkFBakIsTUFBTTtnQkFDb0IsT0FBTztzQkFBakMsU0FBUzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IE1hdE1lbnVUcmlnZ2VyIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL21lbnVcIjtcblxuZXhwb3J0IGludGVyZmFjZSBNZW51SXRlbSB7XG4gIGltYWdlPzogc3RyaW5nO1xuICBpY29uPzogc3RyaW5nO1xuICByb3V0ZT86IHN0cmluZztcbiAgc2hvd1RleHQ/OiBib29sZWFuO1xuICBzdmc/OiBzdHJpbmc7XG4gIHRleHQ6IHN0cmluZztcbiAgYWN0aW9uOiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJtYXBhLW1lbnVcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9tZW51LmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9tZW51LmNvbXBvbmVudC5zY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBNYXBhTWVudUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGl0ZW1zOiBNZW51SXRlbVtdID0gW107XG4gIEBJbnB1dCgpIGRhdGE/OiBhbnk7XG4gIEBPdXRwdXQoKSBlbWl0TWVudTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQFZpZXdDaGlsZChNYXRNZW51VHJpZ2dlcikgdHJpZ2dlciE6IE1hdE1lbnVUcmlnZ2VyO1xuXG4gIHRvZ2dsZU1lbnUoKTogdm9pZCB7XG4gICAgdGhpcy50cmlnZ2VyLm9wZW5NZW51KCk7XG4gIH1cblxuICBjbGlja01lbnUoYWN0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmVtaXRNZW51LmVtaXQoeyBhY3Rpb24sIGRhdGE6IHRoaXMuZGF0YSB9KTtcbiAgfVxufVxuIiwiPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiIGNsYXNzPVwibWFwYS1tZW51XCI+XG4gIDxidXR0b25cbiAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1wiXG4gICAgbWF0LW1lbnUtaXRlbVxuICAgIChjbGljayk9XCJjbGlja01lbnUoaXRlbS5hY3Rpb24pXCJcbiAgICBjbGFzcz1cIm1hcGEtbWVudV9faXRlbVwiXG4gID5cbiAgICA8bWF0LWljb24gKm5nSWY9XCJpdGVtLmljb25cIj57e2l0ZW0uaWNvbn19PC9tYXQtaWNvbj5cbiAgICA8aW1nICpuZ0lmPVwiaXRlbS5pbWFnZVwiIFtzcmNdPVwiaXRlbS5pbWFnZVwiIC8+XG4gICAgPHNwYW4+e3tpdGVtLnRleHR9fTwvc3Bhbj5cbiAgPC9idXR0b24+XG48L21hdC1tZW51PlxuXG48aW1nXG4gIGNsYXNzPVwib3V0c2lkZS1tZW51LWljb25cIlxuICBzcmM9XCJhc3NldHMvaW1hZ2VzL2ljb25zL1RocmVlUG9pbnRzLnN2Z1wiXG4gIChjbGljayk9XCJ0b2dnbGVNZW51KClcIlxuICBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiXG4vPlxuIl19
@@ -6,15 +6,16 @@ import { MatTableDataSource } from "@angular/material/table";
6
6
  import { MatMenuTrigger } from "@angular/material/menu";
7
7
  import * as i0 from "@angular/core";
8
8
  import * as i1 from "@angular/common";
9
- import * as i2 from "../../menu/src/menu.component";
10
- import * as i3 from "../../svg-icon/src/svg-icon.component";
11
- import * as i4 from "@angular/material/button";
12
- import * as i5 from "@angular/material/checkbox";
13
- import * as i6 from "@angular/material/icon";
14
- import * as i7 from "@angular/material/paginator";
15
- import * as i8 from "@angular/material/table";
16
- import * as i9 from "@angular/material/sort";
17
- import * as i10 from "../../../core/directives/custom-paginator-legacy.directive";
9
+ import * as i2 from "@angular/router";
10
+ import * as i3 from "../../menu/src/menu.component";
11
+ import * as i4 from "../../svg-icon/src/svg-icon.component";
12
+ import * as i5 from "@angular/material/button";
13
+ import * as i6 from "@angular/material/checkbox";
14
+ import * as i7 from "@angular/material/icon";
15
+ import * as i8 from "@angular/material/paginator";
16
+ import * as i9 from "@angular/material/table";
17
+ import * as i10 from "@angular/material/sort";
18
+ import * as i11 from "../../../core/directives/custom-paginator-legacy.directive";
18
19
  export class MapaTableComponent {
19
20
  constructor(cdr) {
20
21
  this.cdr = cdr;
@@ -265,6 +266,11 @@ export class MapaTableComponent {
265
266
  return row.menu;
266
267
  return [];
267
268
  }
269
+ getContentFromColumn(row, key) {
270
+ if (row && row[key])
271
+ return row[key];
272
+ return [];
273
+ }
268
274
  hasActionsColumn() {
269
275
  return this.columns.some((column) => column.key.includes('actions'));
270
276
  }
@@ -276,10 +282,10 @@ export class MapaTableComponent {
276
282
  }
277
283
  }
278
284
  MapaTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapaTableComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
279
- MapaTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MapaTableComponent, selector: "mapa-table", inputs: { columns: "columns", data: "data", pageIndex: "pageIndex", pageSize: "pageSize", totalCount: "totalCount", totalPages: "totalPages", checkbox: "checkbox", selection: "selection", actions: "actions", filterControl: "filterControl", menuItems: "menuItems", menu: "menu", showPaginator: "showPaginator" }, outputs: { rowClick: "rowClick", selectedRows: "selectedRows", onChangePage: "onChangePage", onSortChange: "onSortChange" }, viewQueries: [{ propertyName: "trigger", first: true, predicate: MatMenuTrigger, descendants: true }, { propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true, read: true }, { propertyName: "sort", first: true, predicate: MatSort, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<section class=\"mapa-table\" *ngIf=\"dataSource && dataSource.data && dataSource.data.length > 0\">\n <div class=\"mapa-table--show-on-mobile\">\n <div *ngIf=\"checkbox\" class=\"mapa-table__select-all\">\n <mat-checkbox\n *ngIf=\"selection\"\n (change)=\"$event ? toggleAllRows() : null\"\n [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\"\n (click)=\"$event.stopPropagation()\"\n color=\"primary\"\n >Selecionar todos</mat-checkbox>\n </div>\n <div *ngFor=\"let row of dataSource.data.values(); let i = index\">\n <div class=\"mapa-table__card mapa__card\">\n <div *ngFor=\"let column of columns; let j = index; let isFirst = first\" [ngClass]=\"'mapa-table__card--column-' + column.key\">\n <strong\n class=\"mapa-table__card--header\"\n [class.mapa-table__checkbox--header]=\"isFirst && checkbox\"\n *ngIf=\"column.key !== 'actions' && column.key !== 'menu'\">\n <div\n [ngTemplateOutlet]=\"tableHeader\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox: false }\"\n class=\"hidden\"\n ></div>\n </strong>\n <div\n class=\"mapa-table__card--column\"\n [class.mapa-table__column--center-cell]=\"column?.align === 'center'\"\n >\n <ng-container\n *ngIf=\"column.key !== 'actions' && column.key !== 'menu'; else columnActionsOrMenu\"\n >\n <div class=\"mapa-table__content\">\n <div\n [style.width]=\"column?.width\"\n [class.mapa-table__column--ellipsis]=\"column?.collapse === 'overflow'\"\n [class.mapa-table__column--no-wrap]=\"column?.collapse === 'no-wrap'\"\n [class.mapa-table__column--wrap]=\"column?.collapse === 'wrap'\"\n [ngClass]=\"[hasCustomClass(column, row, column.key) ? getCustomClass(column, row, column.key) : '']\"\n >\n <div\n *ngIf=\"column?.status?.color; else commonColumn\"\n class=\"mapa-table__column--status\"\n [style.backgroundColor]=\"getBackgroundColor(column, row)\"\n [style.color]=\"getTextColor(column, row)\"\n [class.mapa-table__column--status-round]=\"column.status?.style == 'round'\"\n >\n <div\n [ngTemplateOutlet]=\"tableContent\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox, row }\"\n ></div>\n </div>\n <ng-template #commonColumn>\n <div\n [ngTemplateOutlet]=\"tableContent\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox, row }\"\n ></div>\n </ng-template>\n </div>\n </div>\n </ng-container>\n <ng-template #columnActionsOrMenu>\n <div *ngIf=\"column.key === 'actions' && actions\">\n <button\n *ngFor=\"let item of actions\"\n (click)=\"handleMenu({data: row, action: item.action})\"\n class=\"mapa-table__column--actions-item\"\n [title]=\"item.text\"\n mat-icon-button\n >\n <mat-icon *ngIf=\"item.icon\">{{ item.icon }}</mat-icon>\n <img *ngIf=\"item.image\" [src]=\"item.image\" />\n </button>\n </div>\n \n <div *ngIf=\"column.key === 'menu'\">\n <div *ngIf=\"hasIndividualMenu(row); else generalMenu\" class=\"mapa-table__column--menu\">\n <button\n *ngFor=\"let item of getMenuItems(row)\"\n (click)=\"handleMenu({data: row, action: item.action})\"\n class=\"mapa-table__column--menu-item\"\n [title]=\"item.text\"\n mat-icon-button\n >\n <mat-icon *ngIf=\"item.icon\">{{ item.icon }}</mat-icon>\n <img *ngIf=\"item.image\" [src]=\"item.image\" />\n <span class=\"mapa-table__column--menu-item-text\">{{ item.text }}</span>\n </button>\n </div>\n <ng-template #generalMenu>\n <div class=\"mapa-table__column--menu\">\n <button\n *ngFor=\"let item of menuItems\"\n (click)=\"handleMenu({data: row, action: item.action})\"\n class=\"mapa-table__column--menu-item\"\n [title]=\"item.text\"\n mat-icon-button\n >\n <mat-icon *ngIf=\"item.icon\">{{ item.icon }}</mat-icon>\n <mapa-svg-icon *ngIf=\"item.image\" [name]=\"setSvgName(item.image)\" [color]=\"'#ea561d'\"></mapa-svg-icon>\n <span class=\"mapa-table__column--menu-item-text\">{{ item.text }}</span>\n </button>\n </div>\n </ng-template>\n </div>\n </ng-template>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"mapa-table--show-on-desktop\">\n <table\n mat-table\n [dataSource]=\"dataSource\"\n matSort\n (matSortChange)=\"sortDataFunction($event)\"\n >\n <ng-container\n *ngFor=\"let column of columns; let isFirst = first\"\n [matColumnDef]=\"column.key\"\n >\n <th\n mat-header-cell\n *matHeaderCellDef\n mat-sort-header\n [disabled]=\"!(column.key !== 'actions' ? column.sort : null)\"\n >\n <div\n [ngTemplateOutlet]=\"tableHeader\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox }\"\n ></div>\n </th>\n <td mat-cell *matCellDef=\"let row\" [style.width]=\"column?.width\">\n <div\n class=\"mapa-table__column\"\n (click)=\"emitRowClick(row, '')\"\n [class.mapa-table__column--center-cell]=\"column?.align === 'center'\"\n >\n <ng-container\n *ngIf=\"column.key !== 'actions' && column.key !== 'menu'; else columnActionsOrMenu\"\n >\n <div class=\"mapa-table__content\">\n <div\n [style.width]=\"column?.width\"\n [class.mapa-table__column--ellipsis]=\"column?.collapse === 'overflow'\"\n [class.mapa-table__column--no-wrap]=\"column?.collapse === 'no-wrap'\"\n [class.mapa-table__column--wrap]=\"column?.collapse === 'wrap'\"\n [ngClass]=\"[hasCustomClass(column, row, column.key) ? getCustomClass(column, row, column.key) : '']\"\n >\n <div\n *ngIf=\"column?.status?.color; else commonColumn\"\n class=\"mapa-table__column--status\"\n [style.backgroundColor]=\"getBackgroundColor(column, row)\"\n [style.color]=\"getTextColor(column, row)\"\n [class.mapa-table__column--status-round]=\"column.status?.style == 'round'\"\n >\n <div\n [ngTemplateOutlet]=\"tableContent\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox, row }\"\n ></div>\n </div>\n <ng-template #commonColumn>\n <div\n [ngTemplateOutlet]=\"tableContent\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox, row }\"\n ></div>\n </ng-template>\n </div>\n </div>\n </ng-container>\n <ng-template #columnActionsOrMenu>\n <div\n class=\"mapa-table__column--actions\"\n *ngIf=\"column.key === 'actions' && actions\"\n >\n <button\n *ngFor=\"let item of actions\"\n (click)=\"handleMenu({data: row, action: item.action})\"\n class=\"mapa-table__column--actions-item\"\n [title]=\"item.text\"\n mat-icon-button\n >\n <mat-icon *ngIf=\"item.icon\">{{item.icon}}</mat-icon>\n <img *ngIf=\"item.image\" [src]=\"item.image\" />\n </button>\n </div>\n <div class=\"mapa-table__column--menu\" *ngIf=\"column.key === 'menu'\">\n <mapa-menu\n *ngIf=\"hasIndividualMenu(row); else generalMenu\"\n [items]=\"row?.menu\"\n [data]=\"row\"\n (emitMenu)=\"handleMenu($event)\"\n ></mapa-menu>\n <ng-template #generalMenu>\n <mapa-menu\n *ngIf=\"menuItems && menuItems.length > 0\"\n [items]=\"menuItems\"\n [data]=\"row\"\n (emitMenu)=\"handleMenu($event)\"\n ></mapa-menu>\n </ng-template>\n </div>\n </ng-template>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr\n mat-row\n *matRowDef=\"let row; columns: displayedColumns;\"\n class=\"row-hover\"\n ></tr>\n </table>\n </div>\n <section *ngIf=\"showPaginator\">\n <mat-paginator\n class=\"mapa-table__paginator-legacy\"\n itemsPerPageLabel=\"Item por p\u00E1gina\"\n appStylePaginatorMv\n [length]=\"totalCount\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"[5, 10, 25, 100]\"\n (page)=\"changePage($event)\"\n ></mat-paginator>\n </section>\n</section>\n\n<ng-template\n #tableHeader\n let-selection=\"selection\"\n let-column=\"column\"\n let-isFirst=\"isFirst\"\n let-checkbox=\"checkbox\"\n>\n <ng-container *ngIf=\"isFirst && checkbox\">\n <mat-checkbox\n *ngIf=\"selection\"\n (change)=\"$event ? toggleAllRows() : null\"\n [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\"\n (click)=\"$event.stopPropagation()\"\n color=\"primary\"\n ></mat-checkbox>\n </ng-container>\n <div>\n <span [innerHTML]=\"column.label\"></span>\n </div>\n <div\n *ngIf=\"column.key !== 'actions' && column.key !== 'menu' && column.sort\"\n class=\"mapa-table--show-on-desktop\">\n <mat-icon>filter_list</mat-icon>\n </div>\n</ng-template>\n\n<ng-template\n #tableContent\n let-selection=\"selection\"\n let-column=\"column\"\n let-isFirst=\"isFirst\"\n let-checkbox=\"checkbox\"\n let-row=\"row\"\n>\n <ng-container *ngIf=\"isFirst && checkbox\">\n <mat-checkbox\n (click)=\"$event.stopPropagation()\"\n (change)=\"$event ? selection?.toggle(row) : null; getSelectedValues()\"\n [checked]=\"selection?.isSelected(row)\"\n color=\"primary\"\n class=\"mapa-table__checkbox\"\n >\n </mat-checkbox>\n </ng-container>\n <!-- POR FAVOR, N\u00C3O QUEBRE LINHA ENTRE NG-CONTAINER/TEMPLATE E O VALOR CONTE\u00DADO -->\n <ng-container *ngIf=\"isMaskedData(column, row); else statusContent\"\n >{{ getValueAsDate(column, row) | date: column.mask }}</ng-container\n >\n <ng-template #statusContent>\n <ng-container *ngIf=\"column.status; else commonContent\">\n <ng-container *ngIf=\"isBoolean(column, row); else commonStatus\"\n ><span [innerHTML]=\"column.status.label[row[column.key] ? 1 : 0]\"></span\n ></ng-container>\n <ng-template #commonStatus\n ><span [innerHTML]=\"column.status.label[row[column.key]] || '-' \"></span\n ></ng-template>\n </ng-container>\n <ng-template #commonContent\n ><span [innerHTML]=\"row[column.key]\"></span\n ></ng-template>\n </ng-template>\n <ng-template #statusContent>\n <ng-template #commonContent\n ><span [innerHTML]=\"row[column.key]\"></span\n ></ng-template>\n </ng-template>\n</ng-template>\n", styles: [".mapa-table .mat-table{font-family:Inter,Arial,Helvetica,sans-serif;width:100%}.mapa-table .mat-table .mat-checkbox{margin:6px 8px 0 0;padding:0}.mapa-table td.mat-cell{padding:16px 0}.mapa-table .mat-table .mat-row .mat-cell{font-family:Inter,Arial,Helvetica,sans-serif;font-size:16px;font-style:normal;font-weight:400;color:#50575e}.mapa-table .row-hover:hover{box-shadow:0 2px 4px #00000021;outline:1px solid rgba(238,238,238,.93);cursor:pointer}.mapa-table .mat-table .mat-header-cell{border:none;border-bottom:1px solid #eee;font-family:Inter,Arial,Helvetica,sans-serif;font-size:16px;font-style:normal;font-weight:600;color:#50575e}.mapa-table .mat-mdc-row,.mapa-table .mdc-data-table__content,.mapa-table .mat-mdc-header-cell{--mat-table-row-item-label-text-font: \"Inter\", Arial, Helvetica, sans-serif}.mapa-table .mat-checkbox.mat-accent .mat-checkbox-frame{border-color:#b6b6b6}.mapa-table .mat-checkbox.mat-accent.mat-checkbox-checked .mat-checkbox-frame{border-color:#ea561d}.mapa-table .mat-checkbox.mat-accent .mat-checkbox-background{background-color:transparent}.mapa-table .mat-checkbox.mat-accent.mat-checkbox-checked .mat-checkbox-background{background-color:#ea561d}.mapa-table .mat-mdc-paginator-container{display:flex;justify-content:space-between}.mapa-table ::ng-deep .mat-mdc-paginator-page-size-label{display:none}.mapa-table__paginator-legacy .mat-paginator-container{font-family:Inter!important;justify-content:flex-start}.mapa-table__paginator-legacy .mat-paginator-page-size{margin-right:10vw}.mapa-table__paginator-legacy .custom-paginator-container{justify-content:flex-end}.mapa-table__paginator-legacy .custom-paginator-counter{white-space:nowrap;margin:0 4px 0 10px!important}.mapa-table__paginator-legacy .custom-paginator-page{border-radius:4px;outline:none;border:none;margin:.4em;font-size:14px;min-width:24px;width:auto;min-height:24px;max-height:24px;padding:1px 6px}.mapa-table__paginator-legacy .custom-paginator-page-enabled{color:#50575e;background:transparent;cursor:pointer}.mapa-table__paginator-legacy .custom-paginator-page-enabled:hover{background-color:#dfe3e6}.mapa-table__paginator-legacy .custom-paginator-page-disabled{background-color:#ea561d;color:#fff}.mapa-table__paginator-legacy .custom-paginator-arrow-disabled{color:#dfe3e6}.mapa-table__paginator-legacy .custom-paginator-arrow-enabled{color:#999}.hidden{display:none}.mapa-table{width:100%;white-space:nowrap}@media (min-width: 1201px){.mapa-table--show-on-mobile{display:none}.mapa-table--show-on-desktop{display:block}}@media (max-width: 1200px){.mapa-table--show-on-mobile{padding:20px}.mapa-table--show-on-mobile .mapa__card{width:unset!important}.mapa-table--show-on-desktop{display:none}}.mapa-table__select-all{display:flex;align-items:center;padding:16px 24px;font-size:12px;text-transform:uppercase}@media (max-width: 1200px){.mapa-table__checkbox{margin-right:8px}.mapa-table__checkbox--header{padding-left:24px}}.mapa-table__card{position:relative;padding:24px;display:flex;flex-direction:row;flex-wrap:wrap;gap:16px}.mapa-table__card--floating-content{display:flex;align-items:center;flex-direction:row;flex-wrap:wrap;gap:8px}.mapa-table__card--floating-actions{position:absolute;bottom:16px;right:16px;color:#ea561d}.mapa-table__card--header{display:flex;flex-direction:row;flex-wrap:wrap;gap:8px;font-size:12px;text-transform:uppercase}.mapa-table__card--header mat-icon{height:16px;width:16px;font-size:16px}.mapa-table__card--column{padding:16px 0}.mapa-table__label{margin-top:4px}.mapa-table__column{padding:15px;align-items:center;display:flex}.mapa-table__column--actions{display:flex}.mapa-table__column--actions .mat-icon{color:#ea561d!important}.mapa-table__column--actions-item{display:flex;align-items:center}.mapa-table__column--actions-item img{margin-right:8px}.mapa-table__column--menu{display:flex;align-items:center;justify-content:center;gap:8px}.mapa-table__column--menu .mapa-table__column--menu-item-text{display:flex;align-items:center;justify-content:center;font-size:12px;line-height:16px!important}.mapa-table__column--menu-item{display:flex;align-items:center;width:unset!important;height:unset!important}.mapa-table__column--menu-item img{margin-right:8px}.mapa-table__column--menu-item button{color:#ea561d!important}.mapa-table__column--menu-item button span{font-size:12px;text-transform:uppercase;display:flex}.mapa-table__column--header{width:100%}.mapa-table__column--header .mat-icon{cursor:pointer;position:relative;bottom:-3px;margin:0 7px;font-size:14px;height:14px;width:14px}.mapa-table__column--status{margin:auto;text-align:center;width:min-content;border-radius:4px;padding:4px 8px}.mapa-table__column--status-round{border-radius:50px}.mapa-table__column--ellipsis{display:inline-block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mapa-table__column--no-wrap{white-space:nowrap}.mapa-table__column--wrap{white-space:pre-wrap}.mapa-table__column--center-cell{display:flex;align-items:center;justify-content:center;width:100%}.mapa-table--column-actions,.mapa-table--column-menu{width:100%}.mapa-table__content--value{color:#fff;font-weight:500}.mapa-table .mat-sort-header-arrow{color:transparent}.mapa-table .mat-sort-header-content{width:100%!important}.mapa-table .mat-cell,.mapa-table .mat-header-cell{padding:0 10px!important}.mapa-table .mat-table{width:100%;overflow-x:auto}@media (max-width: 1000px){.mapa-table .mat-paginator-range-actions{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}.mapa-table .mat-paginator-range-label{padding:16px 0;text-align:center;width:100%}.mapa-table .mat-paginator-container{justify-content:center}}.mapa-table .classification{width:40px;height:40px;border-radius:24px;display:flex;justify-content:center;align-items:center}.mapa-table .roundCell{border-radius:10px}.mapa-table .general{border-radius:24px;border:1px solid #dcdcde;display:flex;justify-content:center;align-items:center;width:48px;height:48px}.mapa-table .name{color:#181818;text-align:left;font-family:Inter,Arial,Helvetica,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:20px}.mapa-table .cpf{color:#77838f;text-align:left;font-family:Inter,Arial,Helvetica,sans-serif;font-size:12px;font-style:normal;font-weight:400;line-height:16px}.mapa-table .label_report{color:#181818;text-align:center;font-family:Inter,Arial,Helvetica,sans-serif;font-size:12px;font-style:normal;font-weight:400;line-height:16px}\n", ".classification-1{background-color:#073e92;color:#fff}.classification-2{background-color:#0e6ece;color:#fff}.classification-3{background-color:#2d9ced;color:#000}.classification-4{background-color:#68ceee;color:#000}.classification-5{background-color:#96f2ee;color:#000}.classification-6{background-color:#f598a7;color:#000}.classification-7{background-color:#f56580;color:#000}.classification-8{background-color:#f4284e;color:#fff}.classification-9{background-color:#c11c2f;color:#fff}.small-dot{width:12px;height:12px;border-radius:12px;padding:0;margin:0}.dot{width:16px;height:16px;border-radius:16px;padding:0;margin:0}.indicator{display:flex;padding:2px 4px 2px 16px;justify-content:space-between;align-items:center;border-radius:8px;font-family:Inter,Arial,Helvetica,sans-serif;font-size:16px;font-style:normal;font-weight:400}.display-S{font-family:Inter,Arial,Helvetica,sans-serif;font-size:20px;font-style:normal;font-weight:400}.display-L{font-family:Inter,Arial,Helvetica,sans-serif;font-size:32px;font-style:normal;font-weight:400}.display-XG{font-family:Inter,Arial,Helvetica,sans-serif;font-size:48px;font-style:normal;font-weight:400}*{transition:opacity .4s ease-out,max-height .4s ease-out}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.MapaMenuComponent, selector: "mapa-menu", inputs: ["items", "data"], outputs: ["emitMenu"] }, { kind: "component", type: i3.MapaSvgIconComponent, selector: "mapa-svg-icon", inputs: ["name", "color"] }, { kind: "component", type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i7.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }, { kind: "component", type: i8.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i8.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i8.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i8.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i8.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i8.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i8.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i8.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i8.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i8.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i9.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i9.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "mat-sort-header", "arrowPosition", "start", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "directive", type: i10.PaginatorLegacyDirective, selector: "[appStylePaginatorMv]" }, { kind: "pipe", type: i1.DatePipe, name: "date" }], encapsulation: i0.ViewEncapsulation.None });
285
+ MapaTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MapaTableComponent, selector: "mapa-table", inputs: { columns: "columns", data: "data", pageIndex: "pageIndex", pageSize: "pageSize", totalCount: "totalCount", totalPages: "totalPages", checkbox: "checkbox", selection: "selection", actions: "actions", filterControl: "filterControl", menuItems: "menuItems", menu: "menu", showPaginator: "showPaginator" }, outputs: { rowClick: "rowClick", selectedRows: "selectedRows", onChangePage: "onChangePage", onSortChange: "onSortChange" }, viewQueries: [{ propertyName: "trigger", first: true, predicate: MatMenuTrigger, descendants: true }, { propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true, read: true }, { propertyName: "sort", first: true, predicate: MatSort, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<section class=\"mapa-table\" *ngIf=\"dataSource && dataSource.data && dataSource.data.length > 0\">\n <div class=\"mapa-table--show-on-mobile\">\n <div *ngIf=\"checkbox\" class=\"mapa-table__select-all\">\n <mat-checkbox\n *ngIf=\"selection\"\n (change)=\"$event ? toggleAllRows() : null\"\n [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\"\n (click)=\"$event.stopPropagation()\"\n color=\"primary\"\n >Selecionar todos</mat-checkbox>\n </div>\n <div *ngFor=\"let row of dataSource.data.values(); let i = index\">\n <div class=\"mapa-table__card mapa__card\">\n <div *ngFor=\"let column of columns; let j = index; let isFirst = first\" [ngClass]=\"'mapa-table__card--column-' + column.key\">\n <strong\n class=\"mapa-table__card--header\"\n [class.mapa-table__checkbox--header]=\"isFirst && checkbox\"\n *ngIf=\"column.key !== 'actions' && column.key !== 'menu'\">\n <div\n [ngTemplateOutlet]=\"tableHeader\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox: false }\"\n class=\"hidden\"\n ></div>\n </strong>\n <div\n class=\"mapa-table__card--column\"\n [class.mapa-table__column--center-cell]=\"column?.align === 'center'\"\n >\n <ng-container\n *ngIf=\"column.key !== 'actions' && column.key !== 'menu'; else columnActionsOrMenu\"\n >\n <div class=\"mapa-table__content\">\n <div\n [style.width]=\"column?.width\"\n [class.mapa-table__column--ellipsis]=\"column?.collapse === 'overflow'\"\n [class.mapa-table__column--no-wrap]=\"column?.collapse === 'no-wrap'\"\n [class.mapa-table__column--wrap]=\"column?.collapse === 'wrap'\"\n [ngClass]=\"[hasCustomClass(column, row, column.key) ? getCustomClass(column, row, column.key) : '']\"\n >\n <div\n *ngIf=\"column?.status?.color; else commonColumn\"\n class=\"mapa-table__column--status\"\n [style.backgroundColor]=\"getBackgroundColor(column, row)\"\n [style.color]=\"getTextColor(column, row)\"\n [class.mapa-table__column--status-round]=\"column.status?.style == 'round'\"\n >\n <div\n [ngTemplateOutlet]=\"tableContent\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox, row }\"\n ></div>\n </div>\n <ng-template #commonColumn>\n <div\n [ngTemplateOutlet]=\"tableContent\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox, row }\"\n ></div>\n </ng-template>\n </div>\n </div>\n </ng-container>\n <ng-template #columnActionsOrMenu>\n <div *ngIf=\"column.key === 'actions' && actions\">\n <div *ngFor=\"let item of getContentFromColumn(row, 'actions') || actions\">\n <a *ngIf=\"item.route; else commonClickAction\" [href]=\"item.route\" [routerLink]=\"item.route\">\n <button\n class=\"mapa-table__column--actions-item\"\n [title]=\"item.text\"\n mat-icon-button\n >\n <mat-icon *ngIf=\"item.icon\">{{ item.icon }}</mat-icon>\n <img *ngIf=\"item.image\" [src]=\"item.image\" />\n <mapa-svg-icon *ngIf=\"item.svg\" [name]=\"setSvgName(item.svg)\"></mapa-svg-icon>\n <span *ngIf=\"item.showText\">{{ item.text }}</span>\n </button>\n </a>\n <ng-template #commonClickAction>\n <button\n (click)=\"handleMenu({data: row, action: item.action})\"\n class=\"mapa-table__column--actions-item\"\n [title]=\"item.text\"\n mat-icon-button\n >\n <mat-icon *ngIf=\"item.icon\">{{ item.icon }}</mat-icon>\n <img *ngIf=\"item.image\" [src]=\"item.image\" />\n <mapa-svg-icon *ngIf=\"item.svg\" [name]=\"setSvgName(item.svg)\"></mapa-svg-icon>\n <span *ngIf=\"item.showText\">{{ item.text }}</span>\n </button>\n </ng-template>\n </div>\n </div>\n \n <div *ngIf=\"column.key === 'menu'\">\n <div *ngIf=\"hasIndividualMenu(row); else generalMenu\" class=\"mapa-table__column--menu\">\n <button\n *ngFor=\"let item of getMenuItems(row)\"\n (click)=\"handleMenu({data: row, action: item.action})\"\n class=\"mapa-table__column--menu-item\"\n [title]=\"item.text\"\n mat-icon-button\n >\n <mat-icon *ngIf=\"item.icon\">{{ item.icon }}</mat-icon>\n <img *ngIf=\"item.image\" [src]=\"item.image\" />\n <span class=\"mapa-table__column--menu-item-text\">{{ item.text }}</span>\n </button>\n </div>\n <ng-template #generalMenu>\n <div class=\"mapa-table__column--menu\">\n <button\n *ngFor=\"let item of menuItems\"\n (click)=\"handleMenu({data: row, action: item.action})\"\n class=\"mapa-table__column--menu-item\"\n [title]=\"item.text\"\n mat-icon-button\n >\n <mat-icon *ngIf=\"item.icon\">{{ item.icon }}</mat-icon>\n <mapa-svg-icon *ngIf=\"item.image\" [name]=\"setSvgName(item.image)\"></mapa-svg-icon>\n <span class=\"mapa-table__column--menu-item-text\">{{ item.text }}</span>\n </button>\n </div>\n </ng-template>\n </div>\n </ng-template>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"mapa-table--show-on-desktop\">\n <table\n mat-table\n [dataSource]=\"dataSource\"\n matSort\n (matSortChange)=\"sortDataFunction($event)\"\n >\n <ng-container\n *ngFor=\"let column of columns; let isFirst = first\"\n [matColumnDef]=\"column.key\"\n >\n <th\n mat-header-cell\n *matHeaderCellDef\n mat-sort-header\n [disabled]=\"!(column.key !== 'actions' ? column.sort : null)\"\n >\n <div\n [ngTemplateOutlet]=\"tableHeader\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox }\"\n ></div>\n </th>\n <td mat-cell *matCellDef=\"let row\" [style.width]=\"column?.width\">\n <div\n class=\"mapa-table__column\"\n (click)=\"emitRowClick(row, '')\"\n [class.mapa-table__column--center-cell]=\"column?.align === 'center'\"\n >\n <ng-container\n *ngIf=\"column.key !== 'actions' && column.key !== 'menu'; else columnActionsOrMenu\"\n >\n <div class=\"mapa-table__content\">\n <div\n [style.width]=\"column?.width\"\n [class.mapa-table__column--ellipsis]=\"column?.collapse === 'overflow'\"\n [class.mapa-table__column--no-wrap]=\"column?.collapse === 'no-wrap'\"\n [class.mapa-table__column--wrap]=\"column?.collapse === 'wrap'\"\n [ngClass]=\"[hasCustomClass(column, row, column.key) ? getCustomClass(column, row, column.key) : '']\"\n >\n <div\n *ngIf=\"column?.status?.color; else commonColumn\"\n class=\"mapa-table__column--status\"\n [style.backgroundColor]=\"getBackgroundColor(column, row)\"\n [style.color]=\"getTextColor(column, row)\"\n [class.mapa-table__column--status-round]=\"column.status?.style == 'round'\"\n >\n <div\n [ngTemplateOutlet]=\"tableContent\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox, row }\"\n ></div>\n </div>\n <ng-template #commonColumn>\n <div\n [ngTemplateOutlet]=\"tableContent\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox, row }\"\n ></div>\n </ng-template>\n </div>\n </div>\n </ng-container>\n <ng-template #columnActionsOrMenu>\n <div\n class=\"mapa-table__column--actions\"\n *ngIf=\"column.key === 'actions' && actions\"\n >\n <div *ngFor=\"let item of row['actions'] || actions\">\n <a *ngIf=\"item.route; else commonClickAction\" [href]=\"item.route\" [routerLink]=\"item.route\">\n <button\n class=\"mapa-table__column--actions-item\"\n [title]=\"item.text\"\n mat-icon-button\n >\n <mat-icon *ngIf=\"item.icon\">{{item.icon}}</mat-icon>\n <img *ngIf=\"item.image\" [src]=\"item.image\" />\n <mapa-svg-icon *ngIf=\"item.svg\" [name]=\"setSvgName(item.svg)\"></mapa-svg-icon>\n <span *ngIf=\"item.showText\">{{ item.text }}</span>\n </button>\n </a>\n <ng-template #commonClickAction>\n <button\n (click)=\"handleMenu({data: row, action: item.action})\"\n class=\"mapa-table__column--actions-item\"\n [title]=\"item.text\"\n mat-icon-button\n >\n <mat-icon *ngIf=\"item.icon\">{{item.icon}}</mat-icon>\n <img *ngIf=\"item.image\" [src]=\"item.image\" />\n <mapa-svg-icon *ngIf=\"item.svg\" [name]=\"setSvgName(item.svg)\"></mapa-svg-icon>\n <span *ngIf=\"item.showText\">{{ item.text }}</span>\n </button>\n </ng-template>\n </div>\n </div>\n <div class=\"mapa-table__column--menu\" *ngIf=\"column.key === 'menu'\">\n <mapa-menu\n *ngIf=\"hasIndividualMenu(row); else generalMenu\"\n [items]=\"row?.menu\"\n [data]=\"row\"\n (emitMenu)=\"handleMenu($event)\"\n ></mapa-menu>\n <ng-template #generalMenu>\n <mapa-menu\n *ngIf=\"menuItems && menuItems.length > 0\"\n [items]=\"menuItems\"\n [data]=\"row\"\n (emitMenu)=\"handleMenu($event)\"\n ></mapa-menu>\n </ng-template>\n </div>\n </ng-template>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr\n mat-row\n *matRowDef=\"let row; columns: displayedColumns;\"\n class=\"row-hover\"\n ></tr>\n </table>\n </div>\n <section *ngIf=\"showPaginator\">\n <mat-paginator\n class=\"mapa-table__paginator-legacy\"\n itemsPerPageLabel=\"Item por p\u00E1gina\"\n appStylePaginatorMv\n [length]=\"totalCount\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"[5, 10, 25, 100]\"\n (page)=\"changePage($event)\"\n ></mat-paginator>\n </section>\n</section>\n\n<ng-template\n #tableHeader\n let-selection=\"selection\"\n let-column=\"column\"\n let-isFirst=\"isFirst\"\n let-checkbox=\"checkbox\"\n>\n <ng-container *ngIf=\"isFirst && checkbox\">\n <mat-checkbox\n *ngIf=\"selection\"\n (change)=\"$event ? toggleAllRows() : null\"\n [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\"\n (click)=\"$event.stopPropagation()\"\n color=\"primary\"\n ></mat-checkbox>\n </ng-container>\n <div>\n <span [innerHTML]=\"column.label\"></span>\n </div>\n <div\n *ngIf=\"column.key !== 'actions' && column.key !== 'menu' && column.sort\"\n class=\"mapa-table--show-on-desktop\">\n <mat-icon>filter_list</mat-icon>\n </div>\n</ng-template>\n\n<ng-template\n #tableContent\n let-selection=\"selection\"\n let-column=\"column\"\n let-isFirst=\"isFirst\"\n let-checkbox=\"checkbox\"\n let-row=\"row\"\n>\n <ng-container *ngIf=\"isFirst && checkbox\">\n <mat-checkbox\n (click)=\"$event.stopPropagation()\"\n (change)=\"$event ? selection?.toggle(row) : null; getSelectedValues()\"\n [checked]=\"selection?.isSelected(row)\"\n color=\"primary\"\n class=\"mapa-table__checkbox\"\n >\n </mat-checkbox>\n </ng-container>\n <!-- POR FAVOR, N\u00C3O QUEBRE LINHA ENTRE NG-CONTAINER/TEMPLATE E O VALOR CONTE\u00DADO -->\n <ng-container *ngIf=\"isMaskedData(column, row); else statusContent\"\n >{{ getValueAsDate(column, row) | date: column.mask }}</ng-container\n >\n <ng-template #statusContent>\n <ng-container *ngIf=\"column.status; else commonContent\">\n <ng-container *ngIf=\"isBoolean(column, row); else commonStatus\"\n ><span [innerHTML]=\"column.status.label[row[column.key] ? 1 : 0]\"></span\n ></ng-container>\n <ng-template #commonStatus\n ><span [innerHTML]=\"column.status.label[row[column.key]] || '-' \"></span\n ></ng-template>\n </ng-container>\n <ng-template #commonContent\n ><span [innerHTML]=\"row[column.key]\"></span\n ></ng-template>\n </ng-template>\n <ng-template #statusContent>\n <ng-template #commonContent\n ><span [innerHTML]=\"row[column.key]\"></span\n ></ng-template>\n </ng-template>\n</ng-template>\n", styles: [".mapa-table .mat-table{font-family:Inter,Arial,Helvetica,sans-serif;width:100%}.mapa-table .mat-table .mat-checkbox{margin:6px 8px 0 0;padding:0}.mapa-table td.mat-cell{padding:16px 0}.mapa-table .mat-table .mat-row .mat-cell{font-family:Inter,Arial,Helvetica,sans-serif;font-size:16px;font-style:normal;font-weight:400;color:#50575e}.mapa-table .row-hover:hover{box-shadow:0 2px 4px #00000021;outline:1px solid rgba(238,238,238,.93);cursor:pointer}.mapa-table .mat-table .mat-header-cell{border:none;border-bottom:1px solid #eee;font-family:Inter,Arial,Helvetica,sans-serif;font-size:16px;font-style:normal;font-weight:600;color:#50575e}.mapa-table .mat-mdc-row,.mapa-table .mdc-data-table__content,.mapa-table .mat-mdc-header-cell{--mat-table-row-item-label-text-font: \"Inter\", Arial, Helvetica, sans-serif}.mapa-table .mat-checkbox.mat-accent .mat-checkbox-frame{border-color:#b6b6b6}.mapa-table .mat-checkbox.mat-accent.mat-checkbox-checked .mat-checkbox-frame{border-color:#ea561d}.mapa-table .mat-checkbox.mat-accent .mat-checkbox-background{background-color:transparent}.mapa-table .mat-checkbox.mat-accent.mat-checkbox-checked .mat-checkbox-background{background-color:#ea561d}.mapa-table .mat-mdc-paginator-container{display:flex;justify-content:space-between}.mapa-table ::ng-deep .mat-mdc-paginator-page-size-label{display:none}.mapa-table__paginator-legacy .mat-paginator-container{font-family:Inter!important;justify-content:flex-start}.mapa-table__paginator-legacy .mat-paginator-page-size{margin-right:10vw}.mapa-table__paginator-legacy .custom-paginator-container{justify-content:flex-end}.mapa-table__paginator-legacy .custom-paginator-counter{white-space:nowrap;margin:0 4px 0 10px!important}.mapa-table__paginator-legacy .custom-paginator-page{border-radius:4px;outline:none;border:none;margin:.4em;font-size:14px;min-width:24px;width:auto;min-height:24px;max-height:24px;padding:1px 6px}.mapa-table__paginator-legacy .custom-paginator-page-enabled{color:#50575e;background:transparent;cursor:pointer}.mapa-table__paginator-legacy .custom-paginator-page-enabled:hover{background-color:#dfe3e6}.mapa-table__paginator-legacy .custom-paginator-page-disabled{background-color:#ea561d;color:#fff}.mapa-table__paginator-legacy .custom-paginator-arrow-disabled{color:#dfe3e6}.mapa-table__paginator-legacy .custom-paginator-arrow-enabled{color:#999}.hidden{display:none}.mapa-table{width:100%;white-space:nowrap}.mapa-table .mat-icon-button{width:unset!important;height:unset!important;line-height:unset!important}.mapa-table .mat-icon-button .mat-button-wrapper{display:flex;align-items:center;justify-content:flex-start;gap:8px;width:100%!important}@media (min-width: 1201px){.mapa-table--show-on-mobile{display:none}.mapa-table--show-on-desktop{display:block}}@media (max-width: 1200px){.mapa-table--show-on-mobile{padding:20px}.mapa-table--show-on-mobile .mapa__card{width:unset!important}.mapa-table--show-on-desktop{display:none}}.mapa-table__select-all{display:flex;align-items:center;padding:16px 24px;font-size:12px;text-transform:uppercase}@media (max-width: 1200px){.mapa-table__checkbox{margin-right:8px}.mapa-table__checkbox--header{padding-left:24px}}.mapa-table__card{position:relative;padding:24px;display:flex;flex-direction:row;flex-wrap:wrap;gap:16px}.mapa-table__card--floating-content{display:flex;align-items:center;flex-direction:row;flex-wrap:wrap;gap:8px}.mapa-table__card--floating-actions{position:absolute;bottom:16px;right:16px;color:#ea561d}.mapa-table__card--header{display:flex;flex-direction:row;flex-wrap:wrap;gap:8px;font-size:12px;text-transform:uppercase}.mapa-table__card--header mat-icon{height:16px;width:16px;font-size:16px}.mapa-table__card--column{padding:16px 0}.mapa-table__label{margin-top:4px}.mapa-table__column{padding:15px;align-items:center;display:flex}.mapa-table__column--actions{display:flex}.mapa-table__column--actions .mat-icon{color:#ea561d!important}.mapa-table__column--actions-item{display:flex!important;align-items:center;gap:8px}.mapa-table__column--menu{display:flex;align-items:center;justify-content:center;gap:8px}.mapa-table__column--menu .mapa-table__column--menu-item-text{display:flex;align-items:center;justify-content:center;font-size:12px;line-height:16px!important}.mapa-table__column--menu-item{display:flex;align-items:center;width:unset!important;height:unset!important}.mapa-table__column--menu-item img{margin-right:8px}.mapa-table__column--menu-item button{color:#ea561d!important}.mapa-table__column--menu-item button span{font-size:12px;text-transform:uppercase;display:flex}.mapa-table__column--header{width:100%}.mapa-table__column--header .mat-icon{cursor:pointer;position:relative;bottom:-3px;margin:0 7px;font-size:14px;height:14px;width:14px}.mapa-table__column--status{margin:auto;text-align:center;width:min-content;border-radius:4px;padding:4px 8px}.mapa-table__column--status-round{border-radius:50px}.mapa-table__column--ellipsis{display:inline-block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mapa-table__column--no-wrap{white-space:nowrap}.mapa-table__column--wrap{white-space:pre-wrap}.mapa-table__column--center-cell{display:flex;align-items:center;justify-content:center;width:100%}.mapa-table--column-actions,.mapa-table--column-menu{width:100%}.mapa-table__content--value{color:#fff;font-weight:500}.mapa-table .mat-sort-header-arrow{color:transparent}.mapa-table .mat-sort-header-content{width:100%!important}.mapa-table .mat-cell,.mapa-table .mat-header-cell{padding:0 10px!important}.mapa-table .mat-table{width:100%;overflow-x:auto}@media (max-width: 1000px){.mapa-table .mat-paginator-range-actions{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}.mapa-table .mat-paginator-range-label{padding:16px 0;text-align:center;width:100%}.mapa-table .mat-paginator-container{justify-content:center}}.mapa-table .classification{width:40px;height:40px;border-radius:24px;display:flex;justify-content:center;align-items:center}.mapa-table .roundCell{border-radius:10px}.mapa-table .general{border-radius:24px;border:1px solid #dcdcde;display:flex;justify-content:center;align-items:center;width:48px;height:48px}.mapa-table .name{color:#181818;text-align:left;font-family:Inter,Arial,Helvetica,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:20px}.mapa-table .cpf{color:#77838f;text-align:left;font-family:Inter,Arial,Helvetica,sans-serif;font-size:12px;font-style:normal;font-weight:400;line-height:16px}.mapa-table .label_report{color:#181818;text-align:center;font-family:Inter,Arial,Helvetica,sans-serif;font-size:12px;font-style:normal;font-weight:400;line-height:16px}\n", ".classification-1{background-color:#073e92;color:#fff}.classification-2{background-color:#0e6ece;color:#fff}.classification-3{background-color:#2d9ced;color:#000}.classification-4{background-color:#68ceee;color:#000}.classification-5{background-color:#96f2ee;color:#000}.classification-6{background-color:#f598a7;color:#000}.classification-7{background-color:#f56580;color:#000}.classification-8{background-color:#f4284e;color:#fff}.classification-9{background-color:#c11c2f;color:#fff}.small-dot{width:12px;height:12px;border-radius:12px;padding:0;margin:0}.dot{width:16px;height:16px;border-radius:16px;padding:0;margin:0}.indicator{display:flex;padding:2px 4px 2px 16px;justify-content:space-between;align-items:center;border-radius:8px;font-family:Inter,Arial,Helvetica,sans-serif;font-size:16px;font-style:normal;font-weight:400}.display-S{font-family:Inter,Arial,Helvetica,sans-serif;font-size:20px;font-style:normal;font-weight:400}.display-L{font-family:Inter,Arial,Helvetica,sans-serif;font-size:32px;font-style:normal;font-weight:400}.display-XG{font-family:Inter,Arial,Helvetica,sans-serif;font-size:48px;font-style:normal;font-weight:400}*{transition:opacity .4s ease-out,max-height .4s ease-out}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i3.MapaMenuComponent, selector: "mapa-menu", inputs: ["items", "data"], outputs: ["emitMenu"] }, { kind: "component", type: i4.MapaSvgIconComponent, selector: "mapa-svg-icon", inputs: ["name", "color"] }, { kind: "component", type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i8.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }, { kind: "component", type: i9.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i9.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i9.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i9.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i9.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i9.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i9.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i9.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i9.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i9.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i10.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i10.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "mat-sort-header", "arrowPosition", "start", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "directive", type: i11.PaginatorLegacyDirective, selector: "[appStylePaginatorMv]" }, { kind: "pipe", type: i1.DatePipe, name: "date" }], encapsulation: i0.ViewEncapsulation.None });
280
286
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapaTableComponent, decorators: [{
281
287
  type: Component,
282
- args: [{ selector: "mapa-table", encapsulation: ViewEncapsulation.None, template: "<section class=\"mapa-table\" *ngIf=\"dataSource && dataSource.data && dataSource.data.length > 0\">\n <div class=\"mapa-table--show-on-mobile\">\n <div *ngIf=\"checkbox\" class=\"mapa-table__select-all\">\n <mat-checkbox\n *ngIf=\"selection\"\n (change)=\"$event ? toggleAllRows() : null\"\n [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\"\n (click)=\"$event.stopPropagation()\"\n color=\"primary\"\n >Selecionar todos</mat-checkbox>\n </div>\n <div *ngFor=\"let row of dataSource.data.values(); let i = index\">\n <div class=\"mapa-table__card mapa__card\">\n <div *ngFor=\"let column of columns; let j = index; let isFirst = first\" [ngClass]=\"'mapa-table__card--column-' + column.key\">\n <strong\n class=\"mapa-table__card--header\"\n [class.mapa-table__checkbox--header]=\"isFirst && checkbox\"\n *ngIf=\"column.key !== 'actions' && column.key !== 'menu'\">\n <div\n [ngTemplateOutlet]=\"tableHeader\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox: false }\"\n class=\"hidden\"\n ></div>\n </strong>\n <div\n class=\"mapa-table__card--column\"\n [class.mapa-table__column--center-cell]=\"column?.align === 'center'\"\n >\n <ng-container\n *ngIf=\"column.key !== 'actions' && column.key !== 'menu'; else columnActionsOrMenu\"\n >\n <div class=\"mapa-table__content\">\n <div\n [style.width]=\"column?.width\"\n [class.mapa-table__column--ellipsis]=\"column?.collapse === 'overflow'\"\n [class.mapa-table__column--no-wrap]=\"column?.collapse === 'no-wrap'\"\n [class.mapa-table__column--wrap]=\"column?.collapse === 'wrap'\"\n [ngClass]=\"[hasCustomClass(column, row, column.key) ? getCustomClass(column, row, column.key) : '']\"\n >\n <div\n *ngIf=\"column?.status?.color; else commonColumn\"\n class=\"mapa-table__column--status\"\n [style.backgroundColor]=\"getBackgroundColor(column, row)\"\n [style.color]=\"getTextColor(column, row)\"\n [class.mapa-table__column--status-round]=\"column.status?.style == 'round'\"\n >\n <div\n [ngTemplateOutlet]=\"tableContent\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox, row }\"\n ></div>\n </div>\n <ng-template #commonColumn>\n <div\n [ngTemplateOutlet]=\"tableContent\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox, row }\"\n ></div>\n </ng-template>\n </div>\n </div>\n </ng-container>\n <ng-template #columnActionsOrMenu>\n <div *ngIf=\"column.key === 'actions' && actions\">\n <button\n *ngFor=\"let item of actions\"\n (click)=\"handleMenu({data: row, action: item.action})\"\n class=\"mapa-table__column--actions-item\"\n [title]=\"item.text\"\n mat-icon-button\n >\n <mat-icon *ngIf=\"item.icon\">{{ item.icon }}</mat-icon>\n <img *ngIf=\"item.image\" [src]=\"item.image\" />\n </button>\n </div>\n \n <div *ngIf=\"column.key === 'menu'\">\n <div *ngIf=\"hasIndividualMenu(row); else generalMenu\" class=\"mapa-table__column--menu\">\n <button\n *ngFor=\"let item of getMenuItems(row)\"\n (click)=\"handleMenu({data: row, action: item.action})\"\n class=\"mapa-table__column--menu-item\"\n [title]=\"item.text\"\n mat-icon-button\n >\n <mat-icon *ngIf=\"item.icon\">{{ item.icon }}</mat-icon>\n <img *ngIf=\"item.image\" [src]=\"item.image\" />\n <span class=\"mapa-table__column--menu-item-text\">{{ item.text }}</span>\n </button>\n </div>\n <ng-template #generalMenu>\n <div class=\"mapa-table__column--menu\">\n <button\n *ngFor=\"let item of menuItems\"\n (click)=\"handleMenu({data: row, action: item.action})\"\n class=\"mapa-table__column--menu-item\"\n [title]=\"item.text\"\n mat-icon-button\n >\n <mat-icon *ngIf=\"item.icon\">{{ item.icon }}</mat-icon>\n <mapa-svg-icon *ngIf=\"item.image\" [name]=\"setSvgName(item.image)\" [color]=\"'#ea561d'\"></mapa-svg-icon>\n <span class=\"mapa-table__column--menu-item-text\">{{ item.text }}</span>\n </button>\n </div>\n </ng-template>\n </div>\n </ng-template>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"mapa-table--show-on-desktop\">\n <table\n mat-table\n [dataSource]=\"dataSource\"\n matSort\n (matSortChange)=\"sortDataFunction($event)\"\n >\n <ng-container\n *ngFor=\"let column of columns; let isFirst = first\"\n [matColumnDef]=\"column.key\"\n >\n <th\n mat-header-cell\n *matHeaderCellDef\n mat-sort-header\n [disabled]=\"!(column.key !== 'actions' ? column.sort : null)\"\n >\n <div\n [ngTemplateOutlet]=\"tableHeader\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox }\"\n ></div>\n </th>\n <td mat-cell *matCellDef=\"let row\" [style.width]=\"column?.width\">\n <div\n class=\"mapa-table__column\"\n (click)=\"emitRowClick(row, '')\"\n [class.mapa-table__column--center-cell]=\"column?.align === 'center'\"\n >\n <ng-container\n *ngIf=\"column.key !== 'actions' && column.key !== 'menu'; else columnActionsOrMenu\"\n >\n <div class=\"mapa-table__content\">\n <div\n [style.width]=\"column?.width\"\n [class.mapa-table__column--ellipsis]=\"column?.collapse === 'overflow'\"\n [class.mapa-table__column--no-wrap]=\"column?.collapse === 'no-wrap'\"\n [class.mapa-table__column--wrap]=\"column?.collapse === 'wrap'\"\n [ngClass]=\"[hasCustomClass(column, row, column.key) ? getCustomClass(column, row, column.key) : '']\"\n >\n <div\n *ngIf=\"column?.status?.color; else commonColumn\"\n class=\"mapa-table__column--status\"\n [style.backgroundColor]=\"getBackgroundColor(column, row)\"\n [style.color]=\"getTextColor(column, row)\"\n [class.mapa-table__column--status-round]=\"column.status?.style == 'round'\"\n >\n <div\n [ngTemplateOutlet]=\"tableContent\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox, row }\"\n ></div>\n </div>\n <ng-template #commonColumn>\n <div\n [ngTemplateOutlet]=\"tableContent\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox, row }\"\n ></div>\n </ng-template>\n </div>\n </div>\n </ng-container>\n <ng-template #columnActionsOrMenu>\n <div\n class=\"mapa-table__column--actions\"\n *ngIf=\"column.key === 'actions' && actions\"\n >\n <button\n *ngFor=\"let item of actions\"\n (click)=\"handleMenu({data: row, action: item.action})\"\n class=\"mapa-table__column--actions-item\"\n [title]=\"item.text\"\n mat-icon-button\n >\n <mat-icon *ngIf=\"item.icon\">{{item.icon}}</mat-icon>\n <img *ngIf=\"item.image\" [src]=\"item.image\" />\n </button>\n </div>\n <div class=\"mapa-table__column--menu\" *ngIf=\"column.key === 'menu'\">\n <mapa-menu\n *ngIf=\"hasIndividualMenu(row); else generalMenu\"\n [items]=\"row?.menu\"\n [data]=\"row\"\n (emitMenu)=\"handleMenu($event)\"\n ></mapa-menu>\n <ng-template #generalMenu>\n <mapa-menu\n *ngIf=\"menuItems && menuItems.length > 0\"\n [items]=\"menuItems\"\n [data]=\"row\"\n (emitMenu)=\"handleMenu($event)\"\n ></mapa-menu>\n </ng-template>\n </div>\n </ng-template>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr\n mat-row\n *matRowDef=\"let row; columns: displayedColumns;\"\n class=\"row-hover\"\n ></tr>\n </table>\n </div>\n <section *ngIf=\"showPaginator\">\n <mat-paginator\n class=\"mapa-table__paginator-legacy\"\n itemsPerPageLabel=\"Item por p\u00E1gina\"\n appStylePaginatorMv\n [length]=\"totalCount\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"[5, 10, 25, 100]\"\n (page)=\"changePage($event)\"\n ></mat-paginator>\n </section>\n</section>\n\n<ng-template\n #tableHeader\n let-selection=\"selection\"\n let-column=\"column\"\n let-isFirst=\"isFirst\"\n let-checkbox=\"checkbox\"\n>\n <ng-container *ngIf=\"isFirst && checkbox\">\n <mat-checkbox\n *ngIf=\"selection\"\n (change)=\"$event ? toggleAllRows() : null\"\n [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\"\n (click)=\"$event.stopPropagation()\"\n color=\"primary\"\n ></mat-checkbox>\n </ng-container>\n <div>\n <span [innerHTML]=\"column.label\"></span>\n </div>\n <div\n *ngIf=\"column.key !== 'actions' && column.key !== 'menu' && column.sort\"\n class=\"mapa-table--show-on-desktop\">\n <mat-icon>filter_list</mat-icon>\n </div>\n</ng-template>\n\n<ng-template\n #tableContent\n let-selection=\"selection\"\n let-column=\"column\"\n let-isFirst=\"isFirst\"\n let-checkbox=\"checkbox\"\n let-row=\"row\"\n>\n <ng-container *ngIf=\"isFirst && checkbox\">\n <mat-checkbox\n (click)=\"$event.stopPropagation()\"\n (change)=\"$event ? selection?.toggle(row) : null; getSelectedValues()\"\n [checked]=\"selection?.isSelected(row)\"\n color=\"primary\"\n class=\"mapa-table__checkbox\"\n >\n </mat-checkbox>\n </ng-container>\n <!-- POR FAVOR, N\u00C3O QUEBRE LINHA ENTRE NG-CONTAINER/TEMPLATE E O VALOR CONTE\u00DADO -->\n <ng-container *ngIf=\"isMaskedData(column, row); else statusContent\"\n >{{ getValueAsDate(column, row) | date: column.mask }}</ng-container\n >\n <ng-template #statusContent>\n <ng-container *ngIf=\"column.status; else commonContent\">\n <ng-container *ngIf=\"isBoolean(column, row); else commonStatus\"\n ><span [innerHTML]=\"column.status.label[row[column.key] ? 1 : 0]\"></span\n ></ng-container>\n <ng-template #commonStatus\n ><span [innerHTML]=\"column.status.label[row[column.key]] || '-' \"></span\n ></ng-template>\n </ng-container>\n <ng-template #commonContent\n ><span [innerHTML]=\"row[column.key]\"></span\n ></ng-template>\n </ng-template>\n <ng-template #statusContent>\n <ng-template #commonContent\n ><span [innerHTML]=\"row[column.key]\"></span\n ></ng-template>\n </ng-template>\n</ng-template>\n", styles: [".mapa-table .mat-table{font-family:Inter,Arial,Helvetica,sans-serif;width:100%}.mapa-table .mat-table .mat-checkbox{margin:6px 8px 0 0;padding:0}.mapa-table td.mat-cell{padding:16px 0}.mapa-table .mat-table .mat-row .mat-cell{font-family:Inter,Arial,Helvetica,sans-serif;font-size:16px;font-style:normal;font-weight:400;color:#50575e}.mapa-table .row-hover:hover{box-shadow:0 2px 4px #00000021;outline:1px solid rgba(238,238,238,.93);cursor:pointer}.mapa-table .mat-table .mat-header-cell{border:none;border-bottom:1px solid #eee;font-family:Inter,Arial,Helvetica,sans-serif;font-size:16px;font-style:normal;font-weight:600;color:#50575e}.mapa-table .mat-mdc-row,.mapa-table .mdc-data-table__content,.mapa-table .mat-mdc-header-cell{--mat-table-row-item-label-text-font: \"Inter\", Arial, Helvetica, sans-serif}.mapa-table .mat-checkbox.mat-accent .mat-checkbox-frame{border-color:#b6b6b6}.mapa-table .mat-checkbox.mat-accent.mat-checkbox-checked .mat-checkbox-frame{border-color:#ea561d}.mapa-table .mat-checkbox.mat-accent .mat-checkbox-background{background-color:transparent}.mapa-table .mat-checkbox.mat-accent.mat-checkbox-checked .mat-checkbox-background{background-color:#ea561d}.mapa-table .mat-mdc-paginator-container{display:flex;justify-content:space-between}.mapa-table ::ng-deep .mat-mdc-paginator-page-size-label{display:none}.mapa-table__paginator-legacy .mat-paginator-container{font-family:Inter!important;justify-content:flex-start}.mapa-table__paginator-legacy .mat-paginator-page-size{margin-right:10vw}.mapa-table__paginator-legacy .custom-paginator-container{justify-content:flex-end}.mapa-table__paginator-legacy .custom-paginator-counter{white-space:nowrap;margin:0 4px 0 10px!important}.mapa-table__paginator-legacy .custom-paginator-page{border-radius:4px;outline:none;border:none;margin:.4em;font-size:14px;min-width:24px;width:auto;min-height:24px;max-height:24px;padding:1px 6px}.mapa-table__paginator-legacy .custom-paginator-page-enabled{color:#50575e;background:transparent;cursor:pointer}.mapa-table__paginator-legacy .custom-paginator-page-enabled:hover{background-color:#dfe3e6}.mapa-table__paginator-legacy .custom-paginator-page-disabled{background-color:#ea561d;color:#fff}.mapa-table__paginator-legacy .custom-paginator-arrow-disabled{color:#dfe3e6}.mapa-table__paginator-legacy .custom-paginator-arrow-enabled{color:#999}.hidden{display:none}.mapa-table{width:100%;white-space:nowrap}@media (min-width: 1201px){.mapa-table--show-on-mobile{display:none}.mapa-table--show-on-desktop{display:block}}@media (max-width: 1200px){.mapa-table--show-on-mobile{padding:20px}.mapa-table--show-on-mobile .mapa__card{width:unset!important}.mapa-table--show-on-desktop{display:none}}.mapa-table__select-all{display:flex;align-items:center;padding:16px 24px;font-size:12px;text-transform:uppercase}@media (max-width: 1200px){.mapa-table__checkbox{margin-right:8px}.mapa-table__checkbox--header{padding-left:24px}}.mapa-table__card{position:relative;padding:24px;display:flex;flex-direction:row;flex-wrap:wrap;gap:16px}.mapa-table__card--floating-content{display:flex;align-items:center;flex-direction:row;flex-wrap:wrap;gap:8px}.mapa-table__card--floating-actions{position:absolute;bottom:16px;right:16px;color:#ea561d}.mapa-table__card--header{display:flex;flex-direction:row;flex-wrap:wrap;gap:8px;font-size:12px;text-transform:uppercase}.mapa-table__card--header mat-icon{height:16px;width:16px;font-size:16px}.mapa-table__card--column{padding:16px 0}.mapa-table__label{margin-top:4px}.mapa-table__column{padding:15px;align-items:center;display:flex}.mapa-table__column--actions{display:flex}.mapa-table__column--actions .mat-icon{color:#ea561d!important}.mapa-table__column--actions-item{display:flex;align-items:center}.mapa-table__column--actions-item img{margin-right:8px}.mapa-table__column--menu{display:flex;align-items:center;justify-content:center;gap:8px}.mapa-table__column--menu .mapa-table__column--menu-item-text{display:flex;align-items:center;justify-content:center;font-size:12px;line-height:16px!important}.mapa-table__column--menu-item{display:flex;align-items:center;width:unset!important;height:unset!important}.mapa-table__column--menu-item img{margin-right:8px}.mapa-table__column--menu-item button{color:#ea561d!important}.mapa-table__column--menu-item button span{font-size:12px;text-transform:uppercase;display:flex}.mapa-table__column--header{width:100%}.mapa-table__column--header .mat-icon{cursor:pointer;position:relative;bottom:-3px;margin:0 7px;font-size:14px;height:14px;width:14px}.mapa-table__column--status{margin:auto;text-align:center;width:min-content;border-radius:4px;padding:4px 8px}.mapa-table__column--status-round{border-radius:50px}.mapa-table__column--ellipsis{display:inline-block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mapa-table__column--no-wrap{white-space:nowrap}.mapa-table__column--wrap{white-space:pre-wrap}.mapa-table__column--center-cell{display:flex;align-items:center;justify-content:center;width:100%}.mapa-table--column-actions,.mapa-table--column-menu{width:100%}.mapa-table__content--value{color:#fff;font-weight:500}.mapa-table .mat-sort-header-arrow{color:transparent}.mapa-table .mat-sort-header-content{width:100%!important}.mapa-table .mat-cell,.mapa-table .mat-header-cell{padding:0 10px!important}.mapa-table .mat-table{width:100%;overflow-x:auto}@media (max-width: 1000px){.mapa-table .mat-paginator-range-actions{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}.mapa-table .mat-paginator-range-label{padding:16px 0;text-align:center;width:100%}.mapa-table .mat-paginator-container{justify-content:center}}.mapa-table .classification{width:40px;height:40px;border-radius:24px;display:flex;justify-content:center;align-items:center}.mapa-table .roundCell{border-radius:10px}.mapa-table .general{border-radius:24px;border:1px solid #dcdcde;display:flex;justify-content:center;align-items:center;width:48px;height:48px}.mapa-table .name{color:#181818;text-align:left;font-family:Inter,Arial,Helvetica,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:20px}.mapa-table .cpf{color:#77838f;text-align:left;font-family:Inter,Arial,Helvetica,sans-serif;font-size:12px;font-style:normal;font-weight:400;line-height:16px}.mapa-table .label_report{color:#181818;text-align:center;font-family:Inter,Arial,Helvetica,sans-serif;font-size:12px;font-style:normal;font-weight:400;line-height:16px}\n", ".classification-1{background-color:#073e92;color:#fff}.classification-2{background-color:#0e6ece;color:#fff}.classification-3{background-color:#2d9ced;color:#000}.classification-4{background-color:#68ceee;color:#000}.classification-5{background-color:#96f2ee;color:#000}.classification-6{background-color:#f598a7;color:#000}.classification-7{background-color:#f56580;color:#000}.classification-8{background-color:#f4284e;color:#fff}.classification-9{background-color:#c11c2f;color:#fff}.small-dot{width:12px;height:12px;border-radius:12px;padding:0;margin:0}.dot{width:16px;height:16px;border-radius:16px;padding:0;margin:0}.indicator{display:flex;padding:2px 4px 2px 16px;justify-content:space-between;align-items:center;border-radius:8px;font-family:Inter,Arial,Helvetica,sans-serif;font-size:16px;font-style:normal;font-weight:400}.display-S{font-family:Inter,Arial,Helvetica,sans-serif;font-size:20px;font-style:normal;font-weight:400}.display-L{font-family:Inter,Arial,Helvetica,sans-serif;font-size:32px;font-style:normal;font-weight:400}.display-XG{font-family:Inter,Arial,Helvetica,sans-serif;font-size:48px;font-style:normal;font-weight:400}*{transition:opacity .4s ease-out,max-height .4s ease-out}\n"] }]
288
+ args: [{ selector: "mapa-table", encapsulation: ViewEncapsulation.None, template: "<section class=\"mapa-table\" *ngIf=\"dataSource && dataSource.data && dataSource.data.length > 0\">\n <div class=\"mapa-table--show-on-mobile\">\n <div *ngIf=\"checkbox\" class=\"mapa-table__select-all\">\n <mat-checkbox\n *ngIf=\"selection\"\n (change)=\"$event ? toggleAllRows() : null\"\n [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\"\n (click)=\"$event.stopPropagation()\"\n color=\"primary\"\n >Selecionar todos</mat-checkbox>\n </div>\n <div *ngFor=\"let row of dataSource.data.values(); let i = index\">\n <div class=\"mapa-table__card mapa__card\">\n <div *ngFor=\"let column of columns; let j = index; let isFirst = first\" [ngClass]=\"'mapa-table__card--column-' + column.key\">\n <strong\n class=\"mapa-table__card--header\"\n [class.mapa-table__checkbox--header]=\"isFirst && checkbox\"\n *ngIf=\"column.key !== 'actions' && column.key !== 'menu'\">\n <div\n [ngTemplateOutlet]=\"tableHeader\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox: false }\"\n class=\"hidden\"\n ></div>\n </strong>\n <div\n class=\"mapa-table__card--column\"\n [class.mapa-table__column--center-cell]=\"column?.align === 'center'\"\n >\n <ng-container\n *ngIf=\"column.key !== 'actions' && column.key !== 'menu'; else columnActionsOrMenu\"\n >\n <div class=\"mapa-table__content\">\n <div\n [style.width]=\"column?.width\"\n [class.mapa-table__column--ellipsis]=\"column?.collapse === 'overflow'\"\n [class.mapa-table__column--no-wrap]=\"column?.collapse === 'no-wrap'\"\n [class.mapa-table__column--wrap]=\"column?.collapse === 'wrap'\"\n [ngClass]=\"[hasCustomClass(column, row, column.key) ? getCustomClass(column, row, column.key) : '']\"\n >\n <div\n *ngIf=\"column?.status?.color; else commonColumn\"\n class=\"mapa-table__column--status\"\n [style.backgroundColor]=\"getBackgroundColor(column, row)\"\n [style.color]=\"getTextColor(column, row)\"\n [class.mapa-table__column--status-round]=\"column.status?.style == 'round'\"\n >\n <div\n [ngTemplateOutlet]=\"tableContent\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox, row }\"\n ></div>\n </div>\n <ng-template #commonColumn>\n <div\n [ngTemplateOutlet]=\"tableContent\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox, row }\"\n ></div>\n </ng-template>\n </div>\n </div>\n </ng-container>\n <ng-template #columnActionsOrMenu>\n <div *ngIf=\"column.key === 'actions' && actions\">\n <div *ngFor=\"let item of getContentFromColumn(row, 'actions') || actions\">\n <a *ngIf=\"item.route; else commonClickAction\" [href]=\"item.route\" [routerLink]=\"item.route\">\n <button\n class=\"mapa-table__column--actions-item\"\n [title]=\"item.text\"\n mat-icon-button\n >\n <mat-icon *ngIf=\"item.icon\">{{ item.icon }}</mat-icon>\n <img *ngIf=\"item.image\" [src]=\"item.image\" />\n <mapa-svg-icon *ngIf=\"item.svg\" [name]=\"setSvgName(item.svg)\"></mapa-svg-icon>\n <span *ngIf=\"item.showText\">{{ item.text }}</span>\n </button>\n </a>\n <ng-template #commonClickAction>\n <button\n (click)=\"handleMenu({data: row, action: item.action})\"\n class=\"mapa-table__column--actions-item\"\n [title]=\"item.text\"\n mat-icon-button\n >\n <mat-icon *ngIf=\"item.icon\">{{ item.icon }}</mat-icon>\n <img *ngIf=\"item.image\" [src]=\"item.image\" />\n <mapa-svg-icon *ngIf=\"item.svg\" [name]=\"setSvgName(item.svg)\"></mapa-svg-icon>\n <span *ngIf=\"item.showText\">{{ item.text }}</span>\n </button>\n </ng-template>\n </div>\n </div>\n \n <div *ngIf=\"column.key === 'menu'\">\n <div *ngIf=\"hasIndividualMenu(row); else generalMenu\" class=\"mapa-table__column--menu\">\n <button\n *ngFor=\"let item of getMenuItems(row)\"\n (click)=\"handleMenu({data: row, action: item.action})\"\n class=\"mapa-table__column--menu-item\"\n [title]=\"item.text\"\n mat-icon-button\n >\n <mat-icon *ngIf=\"item.icon\">{{ item.icon }}</mat-icon>\n <img *ngIf=\"item.image\" [src]=\"item.image\" />\n <span class=\"mapa-table__column--menu-item-text\">{{ item.text }}</span>\n </button>\n </div>\n <ng-template #generalMenu>\n <div class=\"mapa-table__column--menu\">\n <button\n *ngFor=\"let item of menuItems\"\n (click)=\"handleMenu({data: row, action: item.action})\"\n class=\"mapa-table__column--menu-item\"\n [title]=\"item.text\"\n mat-icon-button\n >\n <mat-icon *ngIf=\"item.icon\">{{ item.icon }}</mat-icon>\n <mapa-svg-icon *ngIf=\"item.image\" [name]=\"setSvgName(item.image)\"></mapa-svg-icon>\n <span class=\"mapa-table__column--menu-item-text\">{{ item.text }}</span>\n </button>\n </div>\n </ng-template>\n </div>\n </ng-template>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"mapa-table--show-on-desktop\">\n <table\n mat-table\n [dataSource]=\"dataSource\"\n matSort\n (matSortChange)=\"sortDataFunction($event)\"\n >\n <ng-container\n *ngFor=\"let column of columns; let isFirst = first\"\n [matColumnDef]=\"column.key\"\n >\n <th\n mat-header-cell\n *matHeaderCellDef\n mat-sort-header\n [disabled]=\"!(column.key !== 'actions' ? column.sort : null)\"\n >\n <div\n [ngTemplateOutlet]=\"tableHeader\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox }\"\n ></div>\n </th>\n <td mat-cell *matCellDef=\"let row\" [style.width]=\"column?.width\">\n <div\n class=\"mapa-table__column\"\n (click)=\"emitRowClick(row, '')\"\n [class.mapa-table__column--center-cell]=\"column?.align === 'center'\"\n >\n <ng-container\n *ngIf=\"column.key !== 'actions' && column.key !== 'menu'; else columnActionsOrMenu\"\n >\n <div class=\"mapa-table__content\">\n <div\n [style.width]=\"column?.width\"\n [class.mapa-table__column--ellipsis]=\"column?.collapse === 'overflow'\"\n [class.mapa-table__column--no-wrap]=\"column?.collapse === 'no-wrap'\"\n [class.mapa-table__column--wrap]=\"column?.collapse === 'wrap'\"\n [ngClass]=\"[hasCustomClass(column, row, column.key) ? getCustomClass(column, row, column.key) : '']\"\n >\n <div\n *ngIf=\"column?.status?.color; else commonColumn\"\n class=\"mapa-table__column--status\"\n [style.backgroundColor]=\"getBackgroundColor(column, row)\"\n [style.color]=\"getTextColor(column, row)\"\n [class.mapa-table__column--status-round]=\"column.status?.style == 'round'\"\n >\n <div\n [ngTemplateOutlet]=\"tableContent\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox, row }\"\n ></div>\n </div>\n <ng-template #commonColumn>\n <div\n [ngTemplateOutlet]=\"tableContent\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox, row }\"\n ></div>\n </ng-template>\n </div>\n </div>\n </ng-container>\n <ng-template #columnActionsOrMenu>\n <div\n class=\"mapa-table__column--actions\"\n *ngIf=\"column.key === 'actions' && actions\"\n >\n <div *ngFor=\"let item of row['actions'] || actions\">\n <a *ngIf=\"item.route; else commonClickAction\" [href]=\"item.route\" [routerLink]=\"item.route\">\n <button\n class=\"mapa-table__column--actions-item\"\n [title]=\"item.text\"\n mat-icon-button\n >\n <mat-icon *ngIf=\"item.icon\">{{item.icon}}</mat-icon>\n <img *ngIf=\"item.image\" [src]=\"item.image\" />\n <mapa-svg-icon *ngIf=\"item.svg\" [name]=\"setSvgName(item.svg)\"></mapa-svg-icon>\n <span *ngIf=\"item.showText\">{{ item.text }}</span>\n </button>\n </a>\n <ng-template #commonClickAction>\n <button\n (click)=\"handleMenu({data: row, action: item.action})\"\n class=\"mapa-table__column--actions-item\"\n [title]=\"item.text\"\n mat-icon-button\n >\n <mat-icon *ngIf=\"item.icon\">{{item.icon}}</mat-icon>\n <img *ngIf=\"item.image\" [src]=\"item.image\" />\n <mapa-svg-icon *ngIf=\"item.svg\" [name]=\"setSvgName(item.svg)\"></mapa-svg-icon>\n <span *ngIf=\"item.showText\">{{ item.text }}</span>\n </button>\n </ng-template>\n </div>\n </div>\n <div class=\"mapa-table__column--menu\" *ngIf=\"column.key === 'menu'\">\n <mapa-menu\n *ngIf=\"hasIndividualMenu(row); else generalMenu\"\n [items]=\"row?.menu\"\n [data]=\"row\"\n (emitMenu)=\"handleMenu($event)\"\n ></mapa-menu>\n <ng-template #generalMenu>\n <mapa-menu\n *ngIf=\"menuItems && menuItems.length > 0\"\n [items]=\"menuItems\"\n [data]=\"row\"\n (emitMenu)=\"handleMenu($event)\"\n ></mapa-menu>\n </ng-template>\n </div>\n </ng-template>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr\n mat-row\n *matRowDef=\"let row; columns: displayedColumns;\"\n class=\"row-hover\"\n ></tr>\n </table>\n </div>\n <section *ngIf=\"showPaginator\">\n <mat-paginator\n class=\"mapa-table__paginator-legacy\"\n itemsPerPageLabel=\"Item por p\u00E1gina\"\n appStylePaginatorMv\n [length]=\"totalCount\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"[5, 10, 25, 100]\"\n (page)=\"changePage($event)\"\n ></mat-paginator>\n </section>\n</section>\n\n<ng-template\n #tableHeader\n let-selection=\"selection\"\n let-column=\"column\"\n let-isFirst=\"isFirst\"\n let-checkbox=\"checkbox\"\n>\n <ng-container *ngIf=\"isFirst && checkbox\">\n <mat-checkbox\n *ngIf=\"selection\"\n (change)=\"$event ? toggleAllRows() : null\"\n [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\"\n (click)=\"$event.stopPropagation()\"\n color=\"primary\"\n ></mat-checkbox>\n </ng-container>\n <div>\n <span [innerHTML]=\"column.label\"></span>\n </div>\n <div\n *ngIf=\"column.key !== 'actions' && column.key !== 'menu' && column.sort\"\n class=\"mapa-table--show-on-desktop\">\n <mat-icon>filter_list</mat-icon>\n </div>\n</ng-template>\n\n<ng-template\n #tableContent\n let-selection=\"selection\"\n let-column=\"column\"\n let-isFirst=\"isFirst\"\n let-checkbox=\"checkbox\"\n let-row=\"row\"\n>\n <ng-container *ngIf=\"isFirst && checkbox\">\n <mat-checkbox\n (click)=\"$event.stopPropagation()\"\n (change)=\"$event ? selection?.toggle(row) : null; getSelectedValues()\"\n [checked]=\"selection?.isSelected(row)\"\n color=\"primary\"\n class=\"mapa-table__checkbox\"\n >\n </mat-checkbox>\n </ng-container>\n <!-- POR FAVOR, N\u00C3O QUEBRE LINHA ENTRE NG-CONTAINER/TEMPLATE E O VALOR CONTE\u00DADO -->\n <ng-container *ngIf=\"isMaskedData(column, row); else statusContent\"\n >{{ getValueAsDate(column, row) | date: column.mask }}</ng-container\n >\n <ng-template #statusContent>\n <ng-container *ngIf=\"column.status; else commonContent\">\n <ng-container *ngIf=\"isBoolean(column, row); else commonStatus\"\n ><span [innerHTML]=\"column.status.label[row[column.key] ? 1 : 0]\"></span\n ></ng-container>\n <ng-template #commonStatus\n ><span [innerHTML]=\"column.status.label[row[column.key]] || '-' \"></span\n ></ng-template>\n </ng-container>\n <ng-template #commonContent\n ><span [innerHTML]=\"row[column.key]\"></span\n ></ng-template>\n </ng-template>\n <ng-template #statusContent>\n <ng-template #commonContent\n ><span [innerHTML]=\"row[column.key]\"></span\n ></ng-template>\n </ng-template>\n</ng-template>\n", styles: [".mapa-table .mat-table{font-family:Inter,Arial,Helvetica,sans-serif;width:100%}.mapa-table .mat-table .mat-checkbox{margin:6px 8px 0 0;padding:0}.mapa-table td.mat-cell{padding:16px 0}.mapa-table .mat-table .mat-row .mat-cell{font-family:Inter,Arial,Helvetica,sans-serif;font-size:16px;font-style:normal;font-weight:400;color:#50575e}.mapa-table .row-hover:hover{box-shadow:0 2px 4px #00000021;outline:1px solid rgba(238,238,238,.93);cursor:pointer}.mapa-table .mat-table .mat-header-cell{border:none;border-bottom:1px solid #eee;font-family:Inter,Arial,Helvetica,sans-serif;font-size:16px;font-style:normal;font-weight:600;color:#50575e}.mapa-table .mat-mdc-row,.mapa-table .mdc-data-table__content,.mapa-table .mat-mdc-header-cell{--mat-table-row-item-label-text-font: \"Inter\", Arial, Helvetica, sans-serif}.mapa-table .mat-checkbox.mat-accent .mat-checkbox-frame{border-color:#b6b6b6}.mapa-table .mat-checkbox.mat-accent.mat-checkbox-checked .mat-checkbox-frame{border-color:#ea561d}.mapa-table .mat-checkbox.mat-accent .mat-checkbox-background{background-color:transparent}.mapa-table .mat-checkbox.mat-accent.mat-checkbox-checked .mat-checkbox-background{background-color:#ea561d}.mapa-table .mat-mdc-paginator-container{display:flex;justify-content:space-between}.mapa-table ::ng-deep .mat-mdc-paginator-page-size-label{display:none}.mapa-table__paginator-legacy .mat-paginator-container{font-family:Inter!important;justify-content:flex-start}.mapa-table__paginator-legacy .mat-paginator-page-size{margin-right:10vw}.mapa-table__paginator-legacy .custom-paginator-container{justify-content:flex-end}.mapa-table__paginator-legacy .custom-paginator-counter{white-space:nowrap;margin:0 4px 0 10px!important}.mapa-table__paginator-legacy .custom-paginator-page{border-radius:4px;outline:none;border:none;margin:.4em;font-size:14px;min-width:24px;width:auto;min-height:24px;max-height:24px;padding:1px 6px}.mapa-table__paginator-legacy .custom-paginator-page-enabled{color:#50575e;background:transparent;cursor:pointer}.mapa-table__paginator-legacy .custom-paginator-page-enabled:hover{background-color:#dfe3e6}.mapa-table__paginator-legacy .custom-paginator-page-disabled{background-color:#ea561d;color:#fff}.mapa-table__paginator-legacy .custom-paginator-arrow-disabled{color:#dfe3e6}.mapa-table__paginator-legacy .custom-paginator-arrow-enabled{color:#999}.hidden{display:none}.mapa-table{width:100%;white-space:nowrap}.mapa-table .mat-icon-button{width:unset!important;height:unset!important;line-height:unset!important}.mapa-table .mat-icon-button .mat-button-wrapper{display:flex;align-items:center;justify-content:flex-start;gap:8px;width:100%!important}@media (min-width: 1201px){.mapa-table--show-on-mobile{display:none}.mapa-table--show-on-desktop{display:block}}@media (max-width: 1200px){.mapa-table--show-on-mobile{padding:20px}.mapa-table--show-on-mobile .mapa__card{width:unset!important}.mapa-table--show-on-desktop{display:none}}.mapa-table__select-all{display:flex;align-items:center;padding:16px 24px;font-size:12px;text-transform:uppercase}@media (max-width: 1200px){.mapa-table__checkbox{margin-right:8px}.mapa-table__checkbox--header{padding-left:24px}}.mapa-table__card{position:relative;padding:24px;display:flex;flex-direction:row;flex-wrap:wrap;gap:16px}.mapa-table__card--floating-content{display:flex;align-items:center;flex-direction:row;flex-wrap:wrap;gap:8px}.mapa-table__card--floating-actions{position:absolute;bottom:16px;right:16px;color:#ea561d}.mapa-table__card--header{display:flex;flex-direction:row;flex-wrap:wrap;gap:8px;font-size:12px;text-transform:uppercase}.mapa-table__card--header mat-icon{height:16px;width:16px;font-size:16px}.mapa-table__card--column{padding:16px 0}.mapa-table__label{margin-top:4px}.mapa-table__column{padding:15px;align-items:center;display:flex}.mapa-table__column--actions{display:flex}.mapa-table__column--actions .mat-icon{color:#ea561d!important}.mapa-table__column--actions-item{display:flex!important;align-items:center;gap:8px}.mapa-table__column--menu{display:flex;align-items:center;justify-content:center;gap:8px}.mapa-table__column--menu .mapa-table__column--menu-item-text{display:flex;align-items:center;justify-content:center;font-size:12px;line-height:16px!important}.mapa-table__column--menu-item{display:flex;align-items:center;width:unset!important;height:unset!important}.mapa-table__column--menu-item img{margin-right:8px}.mapa-table__column--menu-item button{color:#ea561d!important}.mapa-table__column--menu-item button span{font-size:12px;text-transform:uppercase;display:flex}.mapa-table__column--header{width:100%}.mapa-table__column--header .mat-icon{cursor:pointer;position:relative;bottom:-3px;margin:0 7px;font-size:14px;height:14px;width:14px}.mapa-table__column--status{margin:auto;text-align:center;width:min-content;border-radius:4px;padding:4px 8px}.mapa-table__column--status-round{border-radius:50px}.mapa-table__column--ellipsis{display:inline-block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mapa-table__column--no-wrap{white-space:nowrap}.mapa-table__column--wrap{white-space:pre-wrap}.mapa-table__column--center-cell{display:flex;align-items:center;justify-content:center;width:100%}.mapa-table--column-actions,.mapa-table--column-menu{width:100%}.mapa-table__content--value{color:#fff;font-weight:500}.mapa-table .mat-sort-header-arrow{color:transparent}.mapa-table .mat-sort-header-content{width:100%!important}.mapa-table .mat-cell,.mapa-table .mat-header-cell{padding:0 10px!important}.mapa-table .mat-table{width:100%;overflow-x:auto}@media (max-width: 1000px){.mapa-table .mat-paginator-range-actions{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}.mapa-table .mat-paginator-range-label{padding:16px 0;text-align:center;width:100%}.mapa-table .mat-paginator-container{justify-content:center}}.mapa-table .classification{width:40px;height:40px;border-radius:24px;display:flex;justify-content:center;align-items:center}.mapa-table .roundCell{border-radius:10px}.mapa-table .general{border-radius:24px;border:1px solid #dcdcde;display:flex;justify-content:center;align-items:center;width:48px;height:48px}.mapa-table .name{color:#181818;text-align:left;font-family:Inter,Arial,Helvetica,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:20px}.mapa-table .cpf{color:#77838f;text-align:left;font-family:Inter,Arial,Helvetica,sans-serif;font-size:12px;font-style:normal;font-weight:400;line-height:16px}.mapa-table .label_report{color:#181818;text-align:center;font-family:Inter,Arial,Helvetica,sans-serif;font-size:12px;font-style:normal;font-weight:400;line-height:16px}\n", ".classification-1{background-color:#073e92;color:#fff}.classification-2{background-color:#0e6ece;color:#fff}.classification-3{background-color:#2d9ced;color:#000}.classification-4{background-color:#68ceee;color:#000}.classification-5{background-color:#96f2ee;color:#000}.classification-6{background-color:#f598a7;color:#000}.classification-7{background-color:#f56580;color:#000}.classification-8{background-color:#f4284e;color:#fff}.classification-9{background-color:#c11c2f;color:#fff}.small-dot{width:12px;height:12px;border-radius:12px;padding:0;margin:0}.dot{width:16px;height:16px;border-radius:16px;padding:0;margin:0}.indicator{display:flex;padding:2px 4px 2px 16px;justify-content:space-between;align-items:center;border-radius:8px;font-family:Inter,Arial,Helvetica,sans-serif;font-size:16px;font-style:normal;font-weight:400}.display-S{font-family:Inter,Arial,Helvetica,sans-serif;font-size:20px;font-style:normal;font-weight:400}.display-L{font-family:Inter,Arial,Helvetica,sans-serif;font-size:32px;font-style:normal;font-weight:400}.display-XG{font-family:Inter,Arial,Helvetica,sans-serif;font-size:48px;font-style:normal;font-weight:400}*{transition:opacity .4s ease-out,max-height .4s ease-out}\n"] }]
283
289
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { columns: [{
284
290
  type: Input
285
291
  }], data: [{
@@ -324,4 +330,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
324
330
  type: ViewChild,
325
331
  args: [MatSort]
326
332
  }] } });
327
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwYS1saWJyYXJ5LXVpL3NyYy9saWIvY29tcG9uZW50cy90YWJsZS9zcmMvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwYS1saWJyYXJ5LXVpL3NyYy9saWIvY29tcG9uZW50cy90YWJsZS9zcmMvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUdMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLEVBQUUsWUFBWSxFQUFhLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUFFLE9BQU8sRUFBUSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBSTdELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7O0FBWXhELE1BQU0sT0FBTyxrQkFBa0I7SUFnQzdCLFlBQW9CLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBL0JqQyxZQUFPLEdBQWtCLEVBQUUsQ0FBQztRQUM1QixTQUFJLEdBQWEsRUFBRSxDQUFDO1FBQ3BCLGNBQVMsR0FBVyxDQUFDLENBQUM7UUFDdEIsYUFBUSxHQUFXLENBQUMsQ0FBQztRQUNyQixlQUFVLEdBQVcsQ0FBQyxDQUFDO1FBQ3ZCLGVBQVUsR0FBVyxDQUFDLENBQUM7UUFLdkIsY0FBUyxHQUFlLEVBQUUsQ0FBQztRQUUzQixrQkFBYSxHQUFZLElBQUksQ0FBQztR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QWYsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRXFCLE9BQU87c0JBQWpDLFNBQVM7dUJBQUMsY0FBYztnQkFFZixRQUFRO3NCQUFqQixNQUFNO2dCQUdHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUVrQyxTQUFTO3NCQUFqRCxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUU7Z0JBQ25CLElBQUk7c0JBQXZCLFNBQVM7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlbGVjdGlvbk1vZGVsIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9jb2xsZWN0aW9uc1wiO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1Db250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgbW9tZW50IGZyb20gXCJtb21lbnRcIjtcblxuaW1wb3J0IHsgTWF0UGFnaW5hdG9yLCBQYWdlRXZlbnQgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yXCI7XG5pbXBvcnQgeyBNYXRTb3J0LCBTb3J0IH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3NvcnRcIjtcbmltcG9ydCB7IE1hdFRhYmxlRGF0YVNvdXJjZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC90YWJsZVwiO1xuXG5pbXBvcnQgeyBSb3dDbGlja0V2ZW50IH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvaW50ZXJmYWNlcy90YWJsZS1yb3ctY2xpY2stZXZlbnQuaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBUYWJsZUNvbHVtbiB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL2ludGVyZmFjZXMvdGFibGUtY29sdW1uLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgTWF0TWVudVRyaWdnZXIgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudVwiO1xuaW1wb3J0IHsgTWVudUl0ZW0gfSBmcm9tIFwiLi4vLi4vbWVudS9wdWJsaWMtYXBpXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJtYXBhLXRhYmxlXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vdGFibGUuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXG4gICAgXCIuL3RhYmxlLmNvbXBvbmVudC5zY3NzXCIsXG4gICAgXCIuLy4uLy4uL2NhcGFiaWxpdHkvc3R5bGVzL2NhcGFiaWxpdHkuc2Nzc1wiLFxuICBdLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBNYXBhVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgY29sdW1uczogVGFibGVDb2x1bW5bXSA9IFtdO1xuICBASW5wdXQoKSBkYXRhOiBPYmplY3RbXSA9IFtdO1xuICBASW5wdXQoKSBwYWdlSW5kZXg6IG51bWJlciA9IDE7XG4gIEBJbnB1dCgpIHBhZ2VTaXplOiBudW1iZXIgPSA1O1xuICBASW5wdXQoKSB0b3RhbENvdW50OiBudW1iZXIgPSAwO1xuICBASW5wdXQoKSB0b3RhbFBhZ2VzOiBudW1iZXIgPSAwO1xuICBASW5wdXQoKSBjaGVja2JveDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgc2VsZWN0aW9uOiBTZWxlY3Rpb25Nb2RlbDxhbnk+IHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBhY3Rpb25zPzogTWVudUl0ZW1bXSB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgZmlsdGVyQ29udHJvbDogRm9ybUNvbnRyb2wgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIG1lbnVJdGVtczogTWVudUl0ZW1bXSA9IFtdO1xuICBASW5wdXQoKSBtZW51OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBzaG93UGFnaW5hdG9yOiBib29sZWFuID0gdHJ1ZTtcblxuICBAVmlld0NoaWxkKE1hdE1lbnVUcmlnZ2VyKSB0cmlnZ2VyITogTWF0TWVudVRyaWdnZXI7XG5cbiAgQE91dHB1dCgpIHJvd0NsaWNrOiBFdmVudEVtaXR0ZXI8Um93Q2xpY2tFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPFxuICAgIFJvd0NsaWNrRXZlbnRcbiAgPigpO1xuICBAT3V0cHV0KCkgc2VsZWN0ZWRSb3dzOiBFdmVudEVtaXR0ZXI8YW55W10+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnlbXT4oKTtcbiAgQE91dHB1dCgpIG9uQ2hhbmdlUGFnZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIG9uU29ydENoYW5nZTogRXZlbnRFbWl0dGVyPFNvcnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxTb3J0PigpO1xuXG4gIEBWaWV3Q2hpbGQoTWF0UGFnaW5hdG9yLCB7IHJlYWQ6IHRydWUgfSkgcGFnaW5hdG9yITogTWF0UGFnaW5hdG9yO1xuICBAVmlld0NoaWxkKE1hdFNvcnQpIHNvcnQhOiBNYXRTb3J0O1xuXG4gIGNoZWNrYm94R3JvdXAhOiBGb3JtR3JvdXA7XG4gIGRhdGFTb3VyY2UhOiBNYXRUYWJsZURhdGFTb3VyY2U8T2JqZWN0PjtcbiAgZGlzcGxheWVkQ29sdW1uczogc3RyaW5nW10gPSBbXTtcbiAgY3VycmVudFNvcnQ6IFNvcnQgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7IH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5kYXRhU291cmNlID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZSh0aGlzLmRhdGEpO1xuICAgIHRoaXMuZGF0YVNvdXJjZS5zb3J0ID0gdGhpcy5zb3J0O1xuICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucyA9IHRoaXMuY29sdW1ucy5tYXAoKGNvbHVtbikgPT4gY29sdW1uLmtleSk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzW1wiZGF0YVwiXSkge1xuICAgICAgaWYgKHRoaXMuZGF0YVNvdXJjZSkge1xuICAgICAgICB0aGlzLmRhdGEgPSBjaGFuZ2VzW1wiZGF0YVwiXS5jdXJyZW50VmFsdWU7XG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZSA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2UodGhpcy5kYXRhKTtcbiAgICAgICAgdGhpcy5kYXRhU291cmNlLnNvcnQgPSB0aGlzLnNvcnQ7XG4gICAgICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucyA9IHRoaXMuY29sdW1ucy5tYXAoKGNvbHVtbikgPT4gY29sdW1uLmtleSk7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlc1tcImZpbHRlckNvbnRyb2xcIl0gJiYgdGhpcy5maWx0ZXJDb250cm9sKSB7XG4gICAgICB0aGlzLnNldHVwRmlsdGVyKCk7XG4gICAgfVxuICB9XG5cbiAgc2V0dXBGaWx0ZXIoKSB7XG4gICAgaWYgKHRoaXMuZGF0YVNvdXJjZSkge1xuICAgICAgdGhpcy5maWx0ZXJDb250cm9sIS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZS5maWx0ZXIgPSB2YWx1ZS50cmltKCkudG9Mb3dlckNhc2UoKTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmRhdGFTb3VyY2UuZmlsdGVyUHJlZGljYXRlID0gKGRhdGE6IGFueSwgZmlsdGVyOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgZGF0YVN0ciA9IE9iamVjdC5rZXlzKGRhdGEpXG4gICAgICAgICAgLnJlZHVjZSgoY3VycmVudFRlcm0sIGtleSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgY3VycmVudFRlcm0gK1xuICAgICAgICAgICAgICAoKGRhdGFba2V5XSAmJiBkYXRhW2tleV0udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpKSB8fCBcIlwiKSArXG4gICAgICAgICAgICAgIFwiIFwiXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0sIFwiXCIpXG4gICAgICAgICAgLnRyaW0oKVxuICAgICAgICAgIC50b0xvd2VyQ2FzZSgpO1xuXG4gICAgICAgIHJldHVybiBkYXRhU3RyLmluZGV4T2YoZmlsdGVyKSAhPT0gLTE7XG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIGlzQWxsU2VsZWN0ZWQoKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uKSB7XG4gICAgICBjb25zdCBudW1TZWxlY3RlZCA9IHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkLmxlbmd0aDtcbiAgICAgIGNvbnN0IG51bVJvd3MgPSB0aGlzLmRhdGFTb3VyY2UuZGF0YS5sZW5ndGg7XG4gICAgICByZXR1cm4gbnVtU2VsZWN0ZWQgPT09IG51bVJvd3M7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHRvZ2dsZUFsbFJvd3MoKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uKSB7XG4gICAgICBpZiAodGhpcy5pc0FsbFNlbGVjdGVkKCkpIHtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24uY2xlYXIoKTtcbiAgICAgICAgdGhpcy5nZXRTZWxlY3RlZFZhbHVlcygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgZGF0YUFzUGVyaW9kaWNFbGVtZW50cyA9IHRoaXMuZGF0YVNvdXJjZS5kYXRhIGFzIGFueVtdO1xuICAgICAgICBkYXRhQXNQZXJpb2RpY0VsZW1lbnRzLmZvckVhY2goKHJvdykgPT4gdGhpcy5zZWxlY3Rpb24/LnNlbGVjdChyb3cpKTtcbiAgICAgICAgdGhpcy5nZXRTZWxlY3RlZFZhbHVlcygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNoZWNrYm94TGFiZWwocm93PzogYW55KTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5zZWxlY3Rpb24pIHtcbiAgICAgIGlmICghcm93KSB7XG4gICAgICAgIHJldHVybiBgJHt0aGlzLmlzQWxsU2VsZWN0ZWQoKSA/IFwiZGVzZWxlY3RcIiA6IFwic2VsZWN0XCJ9IGFsbGA7XG4gICAgICB9XG4gICAgICByZXR1cm4gYCR7dGhpcy5zZWxlY3Rpb24uaXNTZWxlY3RlZChyb3cpID8gXCJkZXNlbGVjdFwiIDogXCJzZWxlY3RcIn0gcm93ICR7cm93LnBvc2l0aW9uICsgMVxuICAgICAgICB9YDtcbiAgICB9XG4gICAgcmV0dXJuIFwiXCI7XG4gIH1cblxuICBzb3J0RGF0YShjb2x1bW46IFRhYmxlQ29sdW1uKTogdm9pZCB7XG4gICAgaWYgKGNvbHVtbi5zb3J0KSB7XG4gICAgICBjb25zdCBzb3J0OiBTb3J0ID0geyBhY3RpdmU6IGNvbHVtbi5rZXksIGRpcmVjdGlvbjogXCJhc2NcIiB9O1xuXG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuY3VycmVudFNvcnQgJiZcbiAgICAgICAgdGhpcy5jdXJyZW50U29ydC5hY3RpdmUgPT09IGNvbHVtbi5rZXkgJiZcbiAgICAgICAgdGhpcy5jdXJyZW50U29ydC5kaXJlY3Rpb24gPT09IFwiYXNjXCJcbiAgICAgICkge1xuICAgICAgICBzb3J0LmRpcmVjdGlvbiA9IFwiZGVzY1wiO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmN1cnJlbnRTb3J0ID0gc29ydDtcbiAgICAgIHRoaXMuc29ydERhdGFGdW5jdGlvbihzb3J0KTtcbiAgICB9XG4gIH1cblxuICBzb3J0RGF0YUZ1bmN0aW9uKHNvcnQ6IFNvcnQpIHtcbiAgICB0aGlzLm9uU29ydENoYW5nZS5lbWl0KHNvcnQpO1xuICB9XG5cbiAgZW1pdFJvd0NsaWNrKHJvdzogc3RyaW5nLCBhY3Rpb246IHN0cmluZykge1xuICAgIGNvbnN0IHJvd0RhdGE6IFJvd0NsaWNrRXZlbnQgPSB7IHJvdywgYWN0aW9uIH07XG4gICAgdGhpcy5yb3dDbGljay5lbWl0KHJvd0RhdGEpO1xuICB9XG5cbiAgdG9nZ2xlU2VsZWN0aW9uKHJvdzogYW55KSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uKSB7XG4gICAgICBpZiAodGhpcy5zZWxlY3Rpb24uaXNTZWxlY3RlZChyb3cpKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uLmRlc2VsZWN0KHJvdyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNlbGVjdGlvbi5zZWxlY3Qocm93KTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZ2V0U2VsZWN0ZWRWYWx1ZXMoKTtcbiAgICB9XG4gIH1cblxuICBnZXRTZWxlY3RlZFZhbHVlcygpIHtcbiAgICBpZiAodGhpcy5zZWxlY3Rpb24pIHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkUm93cyA9IHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkLm1hcCgocm93KSA9PiB7XG4gICAgICAgIHJldHVybiB7IHJvdyB9O1xuICAgICAgfSk7XG4gICAgICB0aGlzLnNlbGVjdGVkUm93cy5lbWl0KHNlbGVjdGVkUm93cyk7XG4gICAgfVxuICB9XG5cbiAgZ2VuZXJhdGVDb2x1bW5zKCkge1xuICAgIGxldCBjb2x1bW5zOiBUYWJsZUNvbHVtbltdID0gW3sga2V5OiBcIm5hbWVcIiwgbGFiZWw6IFwiXCIsIHNvcnQ6IGZhbHNlIH1dO1xuXG4gICAgdGhpcy5jb2x1bW5zID0gY29sdW1ucztcbiAgfVxuXG4gIGNvbHVtbkV4aXN0cyhjb2x1bW5zOiBUYWJsZUNvbHVtbltdLCBrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBjb2x1bW5zLnNvbWUoKGNvbHVtbikgPT4gY29sdW1uLmtleSA9PT0ga2V5KTtcbiAgfVxuXG4gIGdlbmVyYXRlR3JvdXBEYXRhKCkge1xuICAgIGNvbnN0IHJlc3VsdDogeyBba2V5OiBzdHJpbmddOiBhbnkgfVtdID0gW107XG5cbiAgICB0aGlzLmRhdGEgPSByZXN1bHQ7XG4gIH1cblxuICBpc0Jvb2xlYW4oY29sdW1uOiBUYWJsZUNvbHVtbiwgcm93OiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHlwZW9mIHJvd1tjb2x1bW4ua2V5XSA9PT0gXCJib29sZWFuXCI7XG4gIH1cblxuICBpc01hc2tlZERhdGEoY29sdW1uOiBUYWJsZUNvbHVtbiwgcm93OiBhbnkpOiBib29sZWFuIHtcbiAgICBjb25zdCBmb3JtYXRzID0gW21vbWVudC5JU09fODYwMSwgXCJNTS9ERC9ZWVlZICA6KSAgSEgqbW0qc3NcIl07XG4gICAgY29uc3QgaXNEYXRlID0gbW9tZW50KHJvd1tjb2x1bW4ua2V5XSwgZm9ybWF0cywgdHJ1ZSkuaXNWYWxpZCgpO1xuICAgIHJldHVybiAoY29sdW1uLm1hc2sgJiYgaXNEYXRlKSB8fCBmYWxzZTtcbiAgfVxuXG4gIGdldFZhbHVlQXNEYXRlKGNvbHVtbjogVGFibGVDb2x1bW4sIHJvdzogYW55KTogRGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKHJvd1tjb2x1bW4ua2V5XSk7XG4gIH1cblxuICBnZXRDZWxsQ2xhc3MoY29sdW1uOiBUYWJsZUNvbHVtbiwgcm93OiBhbnkpOiBzdHJpbmcge1xuICAgIGlmIChcbiAgICAgIGNvbHVtbi5rZXkgPT09IFwibmFtZVwiIHx8XG4gICAgICBjb2x1bW4ua2V5ID09PSBcImNwZlwiIHx8XG4gICAgICBjb2x1bW4ua2V5ID09PSBcImdlbmVyYWxcIlxuICAgICkge1xuICAgICAgcmV0dXJuIFwiXCI7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYGNsYXNzaWZpY2F0aW9uYDtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBcIlwiO1xuICAgIH1cbiAgfVxuXG4gIGdldENlbGxCZyhjb2x1bW46IFRhYmxlQ29sdW1uLCByb3c6IGFueSk6IHN0cmluZyB7XG4gICAgaWYgKFxuICAgICAgY29sdW1uLmtleSA9PT0gXCJuYW1lXCIgfHxcbiAgICAgIGNvbHVtbi5rZXkgPT09IFwiY3BmXCIgfHxcbiAgICAgIGNvbHVtbi5rZXkgPT09IFwiZ2VuZXJhbFwiXG4gICAgKSB7XG4gICAgICByZXR1cm4gXCJcIjtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGJnID0gcm93W2NvbHVtbi5rZXldPy5jbGFzc2lmaWNhdGlvbkNvbG9yO1xuICAgICAgcmV0dXJuIGJnO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIFwiXCI7XG4gICAgfVxuICB9XG5cbiAgZ2V0Q2VsbFRleHRDb2xvcihjb2x1bW46IFRhYmxlQ29sdW1uLCByb3c6IGFueSk6IHN0cmluZyB7XG4gICAgaWYgKFxuICAgICAgY29sdW1uLmtleSA9PT0gXCJuYW1lXCIgfHxcbiAgICAgIGNvbHVtbi5rZXkgPT09IFwiY3BmXCIgfHxcbiAgICAgIGNvbHVtbi5rZXkgPT09IFwiZ2VuZXJhbFwiXG4gICAgKSB7XG4gICAgICByZXR1cm4gXCJcIjtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNvbG9yID0gcm93W2NvbHVtbi5rZXldPy5jbGFzc2lmaWNhdGlvblRleHRDb2xvciE7XG4gICAgICByZXR1cm4gY29sb3I7XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gXCJcIjtcbiAgICB9XG4gIH1cblxuICBnZXRWYWx1ZShyb3c6IHsgdmFsdWU6IHN0cmluZyB9KTogc3RyaW5nIHtcbiAgICB0cnkge1xuICAgICAgaWYgKHJvdy52YWx1ZSkge1xuICAgICAgICByZXR1cm4gcm93LnZhbHVlICsgXCIlXCI7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gXCItXCI7XG4gICAgICB9XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gXCItXCI7XG4gICAgfVxuICB9XG5cbiAgY2hhbmdlUGFnZShldmVudD86IFBhZ2VFdmVudCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2VQYWdlLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgdG9nZ2xlTWVudSgpIHtcbiAgICB0aGlzLnRyaWdnZXIub3Blbk1lbnUoKTtcbiAgfVxuXG4gIGdldEJhY2tncm91bmRDb2xvcihjb2x1bW46IFRhYmxlQ29sdW1uLCByb3c6IGFueSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGNvbHVtbi5zdGF0dXM/LmNvbG9yPy5bcm93W2NvbHVtbi5rZXldIHx8IDBdIHx8IFwiXCI7XG4gIH1cblxuICBnZXRUZXh0Q29sb3IoY29sdW1uOiBUYWJsZUNvbHVtbiwgcm93OiBhbnkpOiBzdHJpbmcge1xuICAgIHJldHVybiBjb2x1bW4uc3RhdHVzPy50ZXh0Q29sb3I/Lltyb3dbY29sdW1uLmtleV0gfHwgMF0gfHwgXCJcIjtcbiAgfVxuXG5cbiAgaGFzQ3VzdG9tQ2xhc3MoY29sdW1uOiBUYWJsZUNvbHVtbiwgcm93OiBhbnksIGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKFxuICAgICAgY29sdW1uPy5jbGFzcyB8fFxuICAgICAgcm93Py5yb3dTdHlsZUNsYXNzIHx8XG4gICAgICB0aGlzLmhhc0NlbGxTdHlsZUNsYXNzKHJvdywga2V5KVxuICAgICkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGdldEN1c3RvbUNsYXNzKGNvbHVtbjogVGFibGVDb2x1bW4sIHJvdzogYW55LCBrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuaGFzQ2VsbFN0eWxlQ2xhc3Mocm93LCBrZXkpKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRDZWxsU3R5bGVDbGFzcyhyb3csIGNvbHVtbi5rZXkpO1xuICAgIH0gZWxzZSBpZiAoY29sdW1uPy5jbGFzcykge1xuICAgICAgcmV0dXJuIGNvbHVtbi5jbGFzcztcbiAgICB9IGVsc2UgaWYgKHJvdz8ucm93U3R5bGVDbGFzcykge1xuICAgICAgcmV0dXJuIHJvdy5yb3dTdHlsZUNsYXNzO1xuICAgIH1cbiAgICByZXR1cm4gXCJcIjtcbiAgfVxuXG4gIGhhc0NlbGxTdHlsZUNsYXNzKHJvdzogYW55LCBrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiByb3cuc3R5bGVDbGFzcz8ua2V5ID09PSBrZXk7XG4gIH1cblxuICBnZXRDZWxsU3R5bGVDbGFzcyhyb3c6IGFueSwga2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiByb3cuc3R5bGVDbGFzcz8ua2V5ID09PSBrZXkgPyByb3cuc3R5bGVDbGFzcz8uY2xhc3MgOiBcIlwiO1xuICB9XG5cbiAgaGFuZGxlTWVudShzZWxlY3RlZDogYW55KSB7XG4gICAgdGhpcy5lbWl0Um93Q2xpY2soc2VsZWN0ZWQuZGF0YSwgc2VsZWN0ZWQuYWN0aW9uKTtcbiAgfVxuXG4gIGhhc0luZGl2aWR1YWxNZW51KHJvdzogT2JqZWN0IHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gICAgaWYgKHJvdyAmJiAocm93IGFzIGFueSkubWVudSAmJiAocm93IGFzIGFueSkubWVudS5sZW5ndGggPiAwKSByZXR1cm4gdHJ1ZTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBnZXRNZW51SXRlbXMocm93OiBPYmplY3QgfCB1bmRlZmluZWQpOiBNZW51SXRlbVtdIHtcbiAgICBpZiAocm93ICYmIChyb3cgYXMgYW55KS5tZW51ICYmIChyb3cgYXMgYW55KS5tZW51Lmxlbmd0aCA+IDApIHJldHVybiAocm93IGFzIGFueSkubWVudTtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBoYXNBY3Rpb25zQ29sdW1uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNvbHVtbnMuc29tZSgoY29sdW1uKSA9PiBjb2x1bW4ua2V5LmluY2x1ZGVzKCdhY3Rpb25zJykpO1xuICB9XG5cbiAgaGFzTWVudUNvbHVtbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jb2x1bW5zLnNvbWUoKGNvbHVtbikgPT4gY29sdW1uLmtleS5pbmNsdWRlcygnbWVudScpKTtcbiAgfVxuXG4gIHNldFN2Z05hbWUoaW1hZ2U6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGltYWdlLnNwbGl0KCcvJykucG9wKCk/LnNwbGl0KCcuJylbMF0gfHwgJyc7XG4gIH1cbn1cbiIsIjxzZWN0aW9uIGNsYXNzPVwibWFwYS10YWJsZVwiICpuZ0lmPVwiZGF0YVNvdXJjZSAmJiBkYXRhU291cmNlLmRhdGEgJiYgZGF0YVNvdXJjZS5kYXRhLmxlbmd0aCA+IDBcIj5cbiAgPGRpdiBjbGFzcz1cIm1hcGEtdGFibGUtLXNob3ctb24tbW9iaWxlXCI+XG4gICAgPGRpdiAqbmdJZj1cImNoZWNrYm94XCIgY2xhc3M9XCJtYXBhLXRhYmxlX19zZWxlY3QtYWxsXCI+XG4gICAgICA8bWF0LWNoZWNrYm94XG4gICAgICAgICpuZ0lmPVwic2VsZWN0aW9uXCJcbiAgICAgICAgKGNoYW5nZSk9XCIkZXZlbnQgPyB0b2dnbGVBbGxSb3dzKCkgOiBudWxsXCJcbiAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0aW9uLmhhc1ZhbHVlKCkgJiYgaXNBbGxTZWxlY3RlZCgpXCJcbiAgICAgICAgW2luZGV0ZXJtaW5hdGVdPVwic2VsZWN0aW9uLmhhc1ZhbHVlKCkgJiYgIWlzQWxsU2VsZWN0ZWQoKVwiXG4gICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgPlNlbGVjaW9uYXIgdG9kb3M8L21hdC1jaGVja2JveD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0Zvcj1cImxldCByb3cgb2YgZGF0YVNvdXJjZS5kYXRhLnZhbHVlcygpOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibWFwYS10YWJsZV9fY2FyZCBtYXBhX19jYXJkXCI+XG4gICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2x1bW5zOyBsZXQgaiA9IGluZGV4OyBsZXQgaXNGaXJzdCA9IGZpcnN0XCIgW25nQ2xhc3NdPVwiJ21hcGEtdGFibGVfX2NhcmQtLWNvbHVtbi0nICsgY29sdW1uLmtleVwiPlxuICAgICAgICAgIDxzdHJvbmdcbiAgICAgICAgICAgIGNsYXNzPVwibWFwYS10YWJsZV9fY2FyZC0taGVhZGVyXCJcbiAgICAgICAgICAgIFtjbGFzcy5tYXBhLXRhYmxlX19jaGVja2JveC0taGVhZGVyXT1cImlzRmlyc3QgJiYgY2hlY2tib3hcIlxuICAgICAgICAgICAgKm5nSWY9XCJjb2x1bW4ua2V5ICE9PSAnYWN0aW9ucycgJiYgY29sdW1uLmtleSAhPT0gJ21lbnUnXCI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRhYmxlSGVhZGVyXCJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgc2VsZWN0aW9uLCBjb2x1bW4sIGlzRmlyc3QsIGNoZWNrYm94OiBmYWxzZSB9XCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJoaWRkZW5cIlxuICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgIDwvc3Ryb25nPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwibWFwYS10YWJsZV9fY2FyZC0tY29sdW1uXCJcbiAgICAgICAgICAgIFtjbGFzcy5tYXBhLXRhYmxlX19jb2x1bW4tLWNlbnRlci1jZWxsXT1cImNvbHVtbj8uYWxpZ24gPT09ICdjZW50ZXInXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICpuZ0lmPVwiY29sdW1uLmtleSAhPT0gJ2FjdGlvbnMnICYmIGNvbHVtbi5rZXkgIT09ICdtZW51JzsgZWxzZSBjb2x1bW5BY3Rpb25zT3JNZW51XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1hcGEtdGFibGVfX2NvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBbc3R5bGUud2lkdGhdPVwiY29sdW1uPy53aWR0aFwiXG4gICAgICAgICAgICAgICAgICBbY2xhc3MubWFwYS10YWJsZV9fY29sdW1uLS1lbGxpcHNpc109XCJjb2x1bW4/LmNvbGxhcHNlID09PSAnb3ZlcmZsb3cnXCJcbiAgICAgICAgICAgICAgICAgIFtjbGFzcy5tYXBhLXRhYmxlX19jb2x1bW4tLW5vLXdyYXBdPVwiY29sdW1uPy5jb2xsYXBzZSA9PT0gJ25vLXdyYXAnXCJcbiAgICAgICAgICAgICAgICAgIFtjbGFzcy5tYXBhLXRhYmxlX19jb2x1bW4tLXdyYXBdPVwiY29sdW1uPy5jb2xsYXBzZSA9PT0gJ3dyYXAnXCJcbiAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIltoYXNDdXN0b21DbGFzcyhjb2x1bW4sIHJvdywgY29sdW1uLmtleSkgPyBnZXRDdXN0b21DbGFzcyhjb2x1bW4sIHJvdywgY29sdW1uLmtleSkgOiAnJ11cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjb2x1bW4/LnN0YXR1cz8uY29sb3I7IGVsc2UgY29tbW9uQ29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYXBhLXRhYmxlX19jb2x1bW4tLXN0YXR1c1wiXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kQ29sb3JdPVwiZ2V0QmFja2dyb3VuZENvbG9yKGNvbHVtbiwgcm93KVwiXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJnZXRUZXh0Q29sb3IoY29sdW1uLCByb3cpXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLm1hcGEtdGFibGVfX2NvbHVtbi0tc3RhdHVzLXJvdW5kXT1cImNvbHVtbi5zdGF0dXM/LnN0eWxlID09ICdyb3VuZCdcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwidGFibGVDb250ZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBzZWxlY3Rpb24sIGNvbHVtbiwgaXNGaXJzdCwgY2hlY2tib3gsIHJvdyB9XCJcbiAgICAgICAgICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2NvbW1vbkNvbHVtbj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRhYmxlQ29udGVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgc2VsZWN0aW9uLCBjb2x1bW4sIGlzRmlyc3QsIGNoZWNrYm94LCByb3cgfVwiXG4gICAgICAgICAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2NvbHVtbkFjdGlvbnNPck1lbnU+XG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb2x1bW4ua2V5ID09PSAnYWN0aW9ucycgJiYgYWN0aW9uc1wiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGFjdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZU1lbnUoe2RhdGE6IHJvdywgYWN0aW9uOiBpdGVtLmFjdGlvbn0pXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWFwYS10YWJsZV9fY29sdW1uLS1hY3Rpb25zLWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIml0ZW0udGV4dFwiXG4gICAgICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJpdGVtLmljb25cIj57eyBpdGVtLmljb24gfX08L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgPGltZyAqbmdJZj1cIml0ZW0uaW1hZ2VcIiBbc3JjXT1cIml0ZW0uaW1hZ2VcIiAvPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbHVtbi5rZXkgPT09ICdtZW51J1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJoYXNJbmRpdmlkdWFsTWVudShyb3cpOyBlbHNlIGdlbmVyYWxNZW51XCIgY2xhc3M9XCJtYXBhLXRhYmxlX19jb2x1bW4tLW1lbnVcIj5cbiAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZ2V0TWVudUl0ZW1zKHJvdylcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlTWVudSh7ZGF0YTogcm93LCBhY3Rpb246IGl0ZW0uYWN0aW9ufSlcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1hcGEtdGFibGVfX2NvbHVtbi0tbWVudS1pdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIml0ZW0udGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJpdGVtLmljb25cIj57eyBpdGVtLmljb24gfX08L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8aW1nICpuZ0lmPVwiaXRlbS5pbWFnZVwiIFtzcmNdPVwiaXRlbS5pbWFnZVwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWFwYS10YWJsZV9fY29sdW1uLS1tZW51LWl0ZW0tdGV4dFwiPnt7IGl0ZW0udGV4dCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZ2VuZXJhbE1lbnU+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFwYS10YWJsZV9fY29sdW1uLS1tZW51XCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBtZW51SXRlbXNcIlxuICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVNZW51KHtkYXRhOiByb3csIGFjdGlvbjogaXRlbS5hY3Rpb259KVwiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYXBhLXRhYmxlX19jb2x1bW4tLW1lbnUtaXRlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIml0ZW0udGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJpdGVtLmljb25cIj57eyBpdGVtLmljb24gfX08L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXBhLXN2Zy1pY29uICpuZ0lmPVwiaXRlbS5pbWFnZVwiIFtuYW1lXT1cInNldFN2Z05hbWUoaXRlbS5pbWFnZSlcIiBbY29sb3JdPVwiJyNlYTU2MWQnXCI+PC9tYXBhLXN2Zy1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWFwYS10YWJsZV9fY29sdW1uLS1tZW51LWl0ZW0tdGV4dFwiPnt7IGl0ZW0udGV4dCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibWFwYS10YWJsZS0tc2hvdy1vbi1kZXNrdG9wXCI+XG4gICAgPHRhYmxlXG4gICAgICBtYXQtdGFibGVcbiAgICAgIFtkYXRhU291cmNlXT1cImRhdGFTb3VyY2VcIlxuICAgICAgbWF0U29ydFxuICAgICAgKG1hdFNvcnRDaGFuZ2UpPVwic29ydERhdGFGdW5jdGlvbigkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uczsgbGV0IGlzRmlyc3QgPSBmaXJzdFwiXG4gICAgICAgIFttYXRDb2x1bW5EZWZdPVwiY29sdW1uLmtleVwiXG4gICAgICA+XG4gICAgICAgIDx0aFxuICAgICAgICAgIG1hdC1oZWFkZXItY2VsbFxuICAgICAgICAgICptYXRIZWFkZXJDZWxsRGVmXG4gICAgICAgICAgbWF0LXNvcnQtaGVhZGVyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiEoY29sdW1uLmtleSAhPT0gJ2FjdGlvbnMnID8gY29sdW1uLnNvcnQgOiBudWxsKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJ0YWJsZUhlYWRlclwiXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBzZWxlY3Rpb24sIGNvbHVtbiwgaXNGaXJzdCwgY2hlY2tib3ggfVwiXG4gICAgICAgICAgPjwvZGl2PlxuICAgICAgICA8L3RoPlxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgcm93XCIgW3N0eWxlLndpZHRoXT1cImNvbHVtbj8ud2lkdGhcIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cIm1hcGEtdGFibGVfX2NvbHVtblwiXG4gICAgICAgICAgICAoY2xpY2spPVwiZW1pdFJvd0NsaWNrKHJvdywgJycpXCJcbiAgICAgICAgICAgIFtjbGFzcy5tYXBhLXRhYmxlX19jb2x1bW4tLWNlbnRlci1jZWxsXT1cImNvbHVtbj8uYWxpZ24gPT09ICdjZW50ZXInXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICpuZ0lmPVwiY29sdW1uLmtleSAhPT0gJ2FjdGlvbnMnICYmIGNvbHVtbi5rZXkgIT09ICdtZW51JzsgZWxzZSBjb2x1bW5BY3Rpb25zT3JNZW51XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1hcGEtdGFibGVfX2NvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBbc3R5bGUud2lkdGhdPVwiY29sdW1uPy53aWR0aFwiXG4gICAgICAgICAgICAgICAgICBbY2xhc3MubWFwYS10YWJsZV9fY29sdW1uLS1lbGxpcHNpc109XCJjb2x1bW4/LmNvbGxhcHNlID09PSAnb3ZlcmZsb3cnXCJcbiAgICAgICAgICAgICAgICAgIFtjbGFzcy5tYXBhLXRhYmxlX19jb2x1bW4tLW5vLXdyYXBdPVwiY29sdW1uPy5jb2xsYXBzZSA9PT0gJ25vLXdyYXAnXCJcbiAgICAgICAgICAgICAgICAgIFtjbGFzcy5tYXBhLXRhYmxlX19jb2x1bW4tLXdyYXBdPVwiY29sdW1uPy5jb2xsYXBzZSA9PT0gJ3dyYXAnXCJcbiAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIltoYXNDdXN0b21DbGFzcyhjb2x1bW4sIHJvdywgY29sdW1uLmtleSkgPyBnZXRDdXN0b21DbGFzcyhjb2x1bW4sIHJvdywgY29sdW1uLmtleSkgOiAnJ11cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjb2x1bW4/LnN0YXR1cz8uY29sb3I7IGVsc2UgY29tbW9uQ29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYXBhLXRhYmxlX19jb2x1bW4tLXN0YXR1c1wiXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kQ29sb3JdPVwiZ2V0QmFja2dyb3VuZENvbG9yKGNvbHVtbiwgcm93KVwiXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJnZXRUZXh0Q29sb3IoY29sdW1uLCByb3cpXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLm1hcGEtdGFibGVfX2NvbHVtbi0tc3RhdHVzLXJvdW5kXT1cImNvbHVtbi5zdGF0dXM/LnN0eWxlID09ICdyb3VuZCdcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwidGFibGVDb250ZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBzZWxlY3Rpb24sIGNvbHVtbiwgaXNGaXJzdCwgY2hlY2tib3gsIHJvdyB9XCJcbiAgICAgICAgICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2NvbW1vbkNvbHVtbj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRhYmxlQ29udGVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgc2VsZWN0aW9uLCBjb2x1bW4sIGlzRmlyc3QsIGNoZWNrYm94LCByb3cgfVwiXG4gICAgICAgICAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2NvbHVtbkFjdGlvbnNPck1lbnU+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1hcGEtdGFibGVfX2NvbHVtbi0tYWN0aW9uc1wiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJjb2x1bW4ua2V5ID09PSAnYWN0aW9ucycgJiYgYWN0aW9uc1wiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBhY3Rpb25zXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVNZW51KHtkYXRhOiByb3csIGFjdGlvbjogaXRlbS5hY3Rpb259KVwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cIm1hcGEtdGFibGVfX2NvbHVtbi0tYWN0aW9ucy1pdGVtXCJcbiAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJpdGVtLnRleHRcIlxuICAgICAgICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiaXRlbS5pY29uXCI+e3tpdGVtLmljb259fTwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICA8aW1nICpuZ0lmPVwiaXRlbS5pbWFnZVwiIFtzcmNdPVwiaXRlbS5pbWFnZVwiIC8+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFwYS10YWJsZV9fY29sdW1uLS1tZW51XCIgKm5nSWY9XCJjb2x1bW4ua2V5ID09PSAnbWVudSdcIj5cbiAgICAgICAgICAgICAgICA8bWFwYS1tZW51XG4gICAgICAgICAgICAgICAgICAqbmdJZj1cImhhc0luZGl2aWR1YWxNZW51KHJvdyk7IGVsc2UgZ2VuZXJhbE1lbnVcIlxuICAgICAgICAgICAgICAgICAgW2l0ZW1zXT1cInJvdz8ubWVudVwiXG4gICAgICAgICAgICAgICAgICBbZGF0YV09XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgKGVtaXRNZW51KT1cImhhbmRsZU1lbnUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgPjwvbWFwYS1tZW51PlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZ2VuZXJhbE1lbnU+XG4gICAgICAgICAgICAgICAgICA8bWFwYS1tZW51XG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwibWVudUl0ZW1zICYmIG1lbnVJdGVtcy5sZW5ndGggPiAwXCJcbiAgICAgICAgICAgICAgICAgICAgW2l0ZW1zXT1cIm1lbnVJdGVtc1wiXG4gICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgIChlbWl0TWVudSk9XCJoYW5kbGVNZW51KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgPjwvbWFwYS1tZW51PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImRpc3BsYXllZENvbHVtbnNcIj48L3RyPlxuICAgICAgPHRyXG4gICAgICAgIG1hdC1yb3dcbiAgICAgICAgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGRpc3BsYXllZENvbHVtbnM7XCJcbiAgICAgICAgY2xhc3M9XCJyb3ctaG92ZXJcIlxuICAgICAgPjwvdHI+XG4gICAgPC90YWJsZT5cbiAgPC9kaXY+XG4gIDxzZWN0aW9uICpuZ0lmPVwic2hvd1BhZ2luYXRvclwiPlxuICAgIDxtYXQtcGFnaW5hdG9yXG4gICAgICBjbGFzcz1cIm1hcGEtdGFibGVfX3BhZ2luYXRvci1sZWdhY3lcIlxuICAgICAgaXRlbXNQZXJQYWdlTGFiZWw9XCJJdGVtIHBvciBww6FnaW5hXCJcbiAgICAgIGFwcFN0eWxlUGFnaW5hdG9yTXZcbiAgICAgIFtsZW5ndGhdPVwidG90YWxDb3VudFwiXG4gICAgICBbcGFnZVNpemVdPVwicGFnZVNpemVcIlxuICAgICAgW3BhZ2VTaXplT3B0aW9uc109XCJbNSwgMTAsIDI1LCAxMDBdXCJcbiAgICAgIChwYWdlKT1cImNoYW5nZVBhZ2UoJGV2ZW50KVwiXG4gICAgPjwvbWF0LXBhZ2luYXRvcj5cbiAgPC9zZWN0aW9uPlxuPC9zZWN0aW9uPlxuXG48bmctdGVtcGxhdGVcbiAgI3RhYmxlSGVhZGVyXG4gIGxldC1zZWxlY3Rpb249XCJzZWxlY3Rpb25cIlxuICBsZXQtY29sdW1uPVwiY29sdW1uXCJcbiAgbGV0LWlzRmlyc3Q9XCJpc0ZpcnN0XCJcbiAgbGV0LWNoZWNrYm94PVwiY2hlY2tib3hcIlxuPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNGaXJzdCAmJiBjaGVja2JveFwiPlxuICAgIDxtYXQtY2hlY2tib3hcbiAgICAgICpuZ0lmPVwic2VsZWN0aW9uXCJcbiAgICAgIChjaGFuZ2UpPVwiJGV2ZW50ID8gdG9nZ2xlQWxsUm93cygpIDogbnVsbFwiXG4gICAgICBbY2hlY2tlZF09XCJzZWxlY3Rpb24uaGFzVmFsdWUoKSAmJiBpc0FsbFNlbGVjdGVkKClcIlxuICAgICAgW2luZGV0ZXJtaW5hdGVdPVwic2VsZWN0aW9uLmhhc1ZhbHVlKCkgJiYgIWlzQWxsU2VsZWN0ZWQoKVwiXG4gICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgPjwvbWF0LWNoZWNrYm94PlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPGRpdj5cbiAgICA8c3BhbiBbaW5uZXJIVE1MXT1cImNvbHVtbi5sYWJlbFwiPjwvc3Bhbj5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICAqbmdJZj1cImNvbHVtbi5rZXkgIT09ICdhY3Rpb25zJyAmJiBjb2x1bW4ua2V5ICE9PSAnbWVudScgJiYgY29sdW1uLnNvcnRcIlxuICAgIGNsYXNzPVwibWFwYS10YWJsZS0tc2hvdy1vbi1kZXNrdG9wXCI+XG4gICAgPG1hdC1pY29uPmZpbHRlcl9saXN0PC9tYXQtaWNvbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGVcbiAgI3RhYmxlQ29udGVudFxuICBsZXQtc2VsZWN0aW9uPVwic2VsZWN0aW9uXCJcbiAgbGV0LWNvbHVtbj1cImNvbHVtblwiXG4gIGxldC1pc0ZpcnN0PVwiaXNGaXJzdFwiXG4gIGxldC1jaGVja2JveD1cImNoZWNrYm94XCJcbiAgbGV0LXJvdz1cInJvd1wiXG4+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0ZpcnN0ICYmIGNoZWNrYm94XCI+XG4gICAgPG1hdC1jaGVja2JveFxuICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAoY2hhbmdlKT1cIiRldmVudCA/IHNlbGVjdGlvbj8udG9nZ2xlKHJvdykgOiBudWxsOyBnZXRTZWxlY3RlZFZhbHVlcygpXCJcbiAgICAgIFtjaGVja2VkXT1cInNlbGVjdGlvbj8uaXNTZWxlY3RlZChyb3cpXCJcbiAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICBjbGFzcz1cIm1hcGEtdGFibGVfX2NoZWNrYm94XCJcbiAgICA+XG4gICAgPC9tYXQtY2hlY2tib3g+XG4gIDwvbmctY29udGFpbmVyPlxuICA8IS0tIFBPUiBGQVZPUiwgTsODTyBRVUVCUkUgTElOSEEgRU5UUkUgTkctQ09OVEFJTkVSL1RFTVBMQVRFIEUgTyBWQUxPUiBDT05URcOaRE8gIC0tPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNNYXNrZWREYXRhKGNvbHVtbiwgcm93KTsgZWxzZSBzdGF0dXNDb250ZW50XCJcbiAgICA+e3sgZ2V0VmFsdWVBc0RhdGUoY29sdW1uLCByb3cpIHwgZGF0ZTogY29sdW1uLm1hc2sgfX08L25nLWNvbnRhaW5lclxuICA+XG4gIDxuZy10ZW1wbGF0ZSAjc3RhdHVzQ29udGVudD5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLnN0YXR1czsgZWxzZSBjb21tb25Db250ZW50XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNCb29sZWFuKGNvbHVtbiwgcm93KTsgZWxzZSBjb21tb25TdGF0dXNcIlxuICAgICAgICA+PHNwYW4gW2lubmVySFRNTF09XCJjb2x1bW4uc3RhdHVzLmxhYmVsW3Jvd1tjb2x1bW4ua2V5XSA/IDEgOiAwXVwiPjwvc3BhblxuICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICNjb21tb25TdGF0dXNcbiAgICAgICAgPjxzcGFuIFtpbm5lckhUTUxdPVwiY29sdW1uLnN0YXR1cy5sYWJlbFtyb3dbY29sdW1uLmtleV1dIHx8ICctJyBcIj48L3NwYW5cbiAgICAgID48L25nLXRlbXBsYXRlPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjY29tbW9uQ29udGVudFxuICAgICAgPjxzcGFuIFtpbm5lckhUTUxdPVwicm93W2NvbHVtbi5rZXldXCI+PC9zcGFuXG4gICAgPjwvbmctdGVtcGxhdGU+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxuZy10ZW1wbGF0ZSAjc3RhdHVzQ29udGVudD5cbiAgICA8bmctdGVtcGxhdGUgI2NvbW1vbkNvbnRlbnRcbiAgICAgID48c3BhbiBbaW5uZXJIVE1MXT1cInJvd1tjb2x1bW4ua2V5XVwiPjwvc3BhblxuICAgID48L25nLXRlbXBsYXRlPlxuICA8L25nLXRlbXBsYXRlPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
333
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwYS1saWJyYXJ5LXVpL3NyYy9saWIvY29tcG9uZW50cy90YWJsZS9zcmMvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwYS1saWJyYXJ5LXVpL3NyYy9saWIvY29tcG9uZW50cy90YWJsZS9zcmMvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUdMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLEVBQUUsWUFBWSxFQUFhLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUFFLE9BQU8sRUFBUSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBSTdELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVl4RCxNQUFNLE9BQU8sa0JBQWtCO0lBZ0M3QixZQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQS9CakMsWUFBTyxHQUFrQixFQUFFLENBQUM7UUFDNUIsU0FBSSxHQUFhLEVBQUUsQ0FBQztRQUNwQixjQUFTLEdBQVcsQ0FBQyxDQUFDO1FBQ3RCLGFBQVEsR0FBVyxDQUFDLENBQUM7UUFDckIsZUFBVSxHQUFXLENBQUMsQ0FBQztRQUN2QixlQUFVLEdBQVcsQ0FBQyxDQUFDO1FBS3ZCLGNBQVMsR0FBZSxFQUFFLENBQUM7UUFFM0Isa0JBQWEsR0FBWSxJQUFJLENBQUM7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c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRXFCLE9BQU87c0JBQWpDLFNBQVM7dUJBQUMsY0FBYztnQkFFZixRQUFRO3NCQUFqQixNQUFNO2dCQUdHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUVrQyxTQUFTO3NCQUFqRCxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUU7Z0JBQ25CLElBQUk7c0JBQXZCLFNBQVM7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlbGVjdGlvbk1vZGVsIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9jb2xsZWN0aW9uc1wiO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1Db250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgbW9tZW50IGZyb20gXCJtb21lbnRcIjtcblxuaW1wb3J0IHsgTWF0UGFnaW5hdG9yLCBQYWdlRXZlbnQgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yXCI7XG5pbXBvcnQgeyBNYXRTb3J0LCBTb3J0IH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3NvcnRcIjtcbmltcG9ydCB7IE1hdFRhYmxlRGF0YVNvdXJjZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC90YWJsZVwiO1xuXG5pbXBvcnQgeyBSb3dDbGlja0V2ZW50IH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvaW50ZXJmYWNlcy90YWJsZS1yb3ctY2xpY2stZXZlbnQuaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBUYWJsZUNvbHVtbiB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL2ludGVyZmFjZXMvdGFibGUtY29sdW1uLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgTWF0TWVudVRyaWdnZXIgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudVwiO1xuaW1wb3J0IHsgTWVudUl0ZW0gfSBmcm9tIFwiLi4vLi4vbWVudS9wdWJsaWMtYXBpXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJtYXBhLXRhYmxlXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vdGFibGUuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXG4gICAgXCIuL3RhYmxlLmNvbXBvbmVudC5zY3NzXCIsXG4gICAgXCIuLy4uLy4uL2NhcGFiaWxpdHkvc3R5bGVzL2NhcGFiaWxpdHkuc2Nzc1wiLFxuICBdLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBNYXBhVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgY29sdW1uczogVGFibGVDb2x1bW5bXSA9IFtdO1xuICBASW5wdXQoKSBkYXRhOiBPYmplY3RbXSA9IFtdO1xuICBASW5wdXQoKSBwYWdlSW5kZXg6IG51bWJlciA9IDE7XG4gIEBJbnB1dCgpIHBhZ2VTaXplOiBudW1iZXIgPSA1O1xuICBASW5wdXQoKSB0b3RhbENvdW50OiBudW1iZXIgPSAwO1xuICBASW5wdXQoKSB0b3RhbFBhZ2VzOiBudW1iZXIgPSAwO1xuICBASW5wdXQoKSBjaGVja2JveDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgc2VsZWN0aW9uOiBTZWxlY3Rpb25Nb2RlbDxhbnk+IHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBhY3Rpb25zPzogTWVudUl0ZW1bXSB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgZmlsdGVyQ29udHJvbDogRm9ybUNvbnRyb2wgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIG1lbnVJdGVtczogTWVudUl0ZW1bXSA9IFtdO1xuICBASW5wdXQoKSBtZW51OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBzaG93UGFnaW5hdG9yOiBib29sZWFuID0gdHJ1ZTtcblxuICBAVmlld0NoaWxkKE1hdE1lbnVUcmlnZ2VyKSB0cmlnZ2VyITogTWF0TWVudVRyaWdnZXI7XG5cbiAgQE91dHB1dCgpIHJvd0NsaWNrOiBFdmVudEVtaXR0ZXI8Um93Q2xpY2tFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPFxuICAgIFJvd0NsaWNrRXZlbnRcbiAgPigpO1xuICBAT3V0cHV0KCkgc2VsZWN0ZWRSb3dzOiBFdmVudEVtaXR0ZXI8YW55W10+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnlbXT4oKTtcbiAgQE91dHB1dCgpIG9uQ2hhbmdlUGFnZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIG9uU29ydENoYW5nZTogRXZlbnRFbWl0dGVyPFNvcnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxTb3J0PigpO1xuXG4gIEBWaWV3Q2hpbGQoTWF0UGFnaW5hdG9yLCB7IHJlYWQ6IHRydWUgfSkgcGFnaW5hdG9yITogTWF0UGFnaW5hdG9yO1xuICBAVmlld0NoaWxkKE1hdFNvcnQpIHNvcnQhOiBNYXRTb3J0O1xuXG4gIGNoZWNrYm94R3JvdXAhOiBGb3JtR3JvdXA7XG4gIGRhdGFTb3VyY2UhOiBNYXRUYWJsZURhdGFTb3VyY2U8T2JqZWN0PjtcbiAgZGlzcGxheWVkQ29sdW1uczogc3RyaW5nW10gPSBbXTtcbiAgY3VycmVudFNvcnQ6IFNvcnQgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7IH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5kYXRhU291cmNlID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZSh0aGlzLmRhdGEpO1xuICAgIHRoaXMuZGF0YVNvdXJjZS5zb3J0ID0gdGhpcy5zb3J0O1xuICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucyA9IHRoaXMuY29sdW1ucy5tYXAoKGNvbHVtbikgPT4gY29sdW1uLmtleSk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzW1wiZGF0YVwiXSkge1xuICAgICAgaWYgKHRoaXMuZGF0YVNvdXJjZSkge1xuICAgICAgICB0aGlzLmRhdGEgPSBjaGFuZ2VzW1wiZGF0YVwiXS5jdXJyZW50VmFsdWU7XG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZSA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2UodGhpcy5kYXRhKTtcbiAgICAgICAgdGhpcy5kYXRhU291cmNlLnNvcnQgPSB0aGlzLnNvcnQ7XG4gICAgICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucyA9IHRoaXMuY29sdW1ucy5tYXAoKGNvbHVtbikgPT4gY29sdW1uLmtleSk7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlc1tcImZpbHRlckNvbnRyb2xcIl0gJiYgdGhpcy5maWx0ZXJDb250cm9sKSB7XG4gICAgICB0aGlzLnNldHVwRmlsdGVyKCk7XG4gICAgfVxuICB9XG5cbiAgc2V0dXBGaWx0ZXIoKSB7XG4gICAgaWYgKHRoaXMuZGF0YVNvdXJjZSkge1xuICAgICAgdGhpcy5maWx0ZXJDb250cm9sIS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZS5maWx0ZXIgPSB2YWx1ZS50cmltKCkudG9Mb3dlckNhc2UoKTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmRhdGFTb3VyY2UuZmlsdGVyUHJlZGljYXRlID0gKGRhdGE6IGFueSwgZmlsdGVyOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgZGF0YVN0ciA9IE9iamVjdC5rZXlzKGRhdGEpXG4gICAgICAgICAgLnJlZHVjZSgoY3VycmVudFRlcm0sIGtleSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgY3VycmVudFRlcm0gK1xuICAgICAgICAgICAgICAoKGRhdGFba2V5XSAmJiBkYXRhW2tleV0udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpKSB8fCBcIlwiKSArXG4gICAgICAgICAgICAgIFwiIFwiXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0sIFwiXCIpXG4gICAgICAgICAgLnRyaW0oKVxuICAgICAgICAgIC50b0xvd2VyQ2FzZSgpO1xuXG4gICAgICAgIHJldHVybiBkYXRhU3RyLmluZGV4T2YoZmlsdGVyKSAhPT0gLTE7XG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIGlzQWxsU2VsZWN0ZWQoKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uKSB7XG4gICAgICBjb25zdCBudW1TZWxlY3RlZCA9IHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkLmxlbmd0aDtcbiAgICAgIGNvbnN0IG51bVJvd3MgPSB0aGlzLmRhdGFTb3VyY2UuZGF0YS5sZW5ndGg7XG4gICAgICByZXR1cm4gbnVtU2VsZWN0ZWQgPT09IG51bVJvd3M7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHRvZ2dsZUFsbFJvd3MoKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uKSB7XG4gICAgICBpZiAodGhpcy5pc0FsbFNlbGVjdGVkKCkpIHtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24uY2xlYXIoKTtcbiAgICAgICAgdGhpcy5nZXRTZWxlY3RlZFZhbHVlcygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgZGF0YUFzUGVyaW9kaWNFbGVtZW50cyA9IHRoaXMuZGF0YVNvdXJjZS5kYXRhIGFzIGFueVtdO1xuICAgICAgICBkYXRhQXNQZXJpb2RpY0VsZW1lbnRzLmZvckVhY2goKHJvdykgPT4gdGhpcy5zZWxlY3Rpb24/LnNlbGVjdChyb3cpKTtcbiAgICAgICAgdGhpcy5nZXRTZWxlY3RlZFZhbHVlcygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNoZWNrYm94TGFiZWwocm93PzogYW55KTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5zZWxlY3Rpb24pIHtcbiAgICAgIGlmICghcm93KSB7XG4gICAgICAgIHJldHVybiBgJHt0aGlzLmlzQWxsU2VsZWN0ZWQoKSA/IFwiZGVzZWxlY3RcIiA6IFwic2VsZWN0XCJ9IGFsbGA7XG4gICAgICB9XG4gICAgICByZXR1cm4gYCR7dGhpcy5zZWxlY3Rpb24uaXNTZWxlY3RlZChyb3cpID8gXCJkZXNlbGVjdFwiIDogXCJzZWxlY3RcIn0gcm93ICR7cm93LnBvc2l0aW9uICsgMVxuICAgICAgICB9YDtcbiAgICB9XG4gICAgcmV0dXJuIFwiXCI7XG4gIH1cblxuICBzb3J0RGF0YShjb2x1bW46IFRhYmxlQ29sdW1uKTogdm9pZCB7XG4gICAgaWYgKGNvbHVtbi5zb3J0KSB7XG4gICAgICBjb25zdCBzb3J0OiBTb3J0ID0geyBhY3RpdmU6IGNvbHVtbi5rZXksIGRpcmVjdGlvbjogXCJhc2NcIiB9O1xuXG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuY3VycmVudFNvcnQgJiZcbiAgICAgICAgdGhpcy5jdXJyZW50U29ydC5hY3RpdmUgPT09IGNvbHVtbi5rZXkgJiZcbiAgICAgICAgdGhpcy5jdXJyZW50U29ydC5kaXJlY3Rpb24gPT09IFwiYXNjXCJcbiAgICAgICkge1xuICAgICAgICBzb3J0LmRpcmVjdGlvbiA9IFwiZGVzY1wiO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmN1cnJlbnRTb3J0ID0gc29ydDtcbiAgICAgIHRoaXMuc29ydERhdGFGdW5jdGlvbihzb3J0KTtcbiAgICB9XG4gIH1cblxuICBzb3J0RGF0YUZ1bmN0aW9uKHNvcnQ6IFNvcnQpIHtcbiAgICB0aGlzLm9uU29ydENoYW5nZS5lbWl0KHNvcnQpO1xuICB9XG5cbiAgZW1pdFJvd0NsaWNrKHJvdzogc3RyaW5nLCBhY3Rpb246IHN0cmluZykge1xuICAgIGNvbnN0IHJvd0RhdGE6IFJvd0NsaWNrRXZlbnQgPSB7IHJvdywgYWN0aW9uIH07XG4gICAgdGhpcy5yb3dDbGljay5lbWl0KHJvd0RhdGEpO1xuICB9XG5cbiAgdG9nZ2xlU2VsZWN0aW9uKHJvdzogYW55KSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uKSB7XG4gICAgICBpZiAodGhpcy5zZWxlY3Rpb24uaXNTZWxlY3RlZChyb3cpKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uLmRlc2VsZWN0KHJvdyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNlbGVjdGlvbi5zZWxlY3Qocm93KTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZ2V0U2VsZWN0ZWRWYWx1ZXMoKTtcbiAgICB9XG4gIH1cblxuICBnZXRTZWxlY3RlZFZhbHVlcygpIHtcbiAgICBpZiAodGhpcy5zZWxlY3Rpb24pIHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkUm93cyA9IHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkLm1hcCgocm93KSA9PiB7XG4gICAgICAgIHJldHVybiB7IHJvdyB9O1xuICAgICAgfSk7XG4gICAgICB0aGlzLnNlbGVjdGVkUm93cy5lbWl0KHNlbGVjdGVkUm93cyk7XG4gICAgfVxuICB9XG5cbiAgZ2VuZXJhdGVDb2x1bW5zKCkge1xuICAgIGxldCBjb2x1bW5zOiBUYWJsZUNvbHVtbltdID0gW3sga2V5OiBcIm5hbWVcIiwgbGFiZWw6IFwiXCIsIHNvcnQ6IGZhbHNlIH1dO1xuXG4gICAgdGhpcy5jb2x1bW5zID0gY29sdW1ucztcbiAgfVxuXG4gIGNvbHVtbkV4aXN0cyhjb2x1bW5zOiBUYWJsZUNvbHVtbltdLCBrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBjb2x1bW5zLnNvbWUoKGNvbHVtbikgPT4gY29sdW1uLmtleSA9PT0ga2V5KTtcbiAgfVxuXG4gIGdlbmVyYXRlR3JvdXBEYXRhKCkge1xuICAgIGNvbnN0IHJlc3VsdDogeyBba2V5OiBzdHJpbmddOiBhbnkgfVtdID0gW107XG5cbiAgICB0aGlzLmRhdGEgPSByZXN1bHQ7XG4gIH1cblxuICBpc0Jvb2xlYW4oY29sdW1uOiBUYWJsZUNvbHVtbiwgcm93OiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHlwZW9mIHJvd1tjb2x1bW4ua2V5XSA9PT0gXCJib29sZWFuXCI7XG4gIH1cblxuICBpc01hc2tlZERhdGEoY29sdW1uOiBUYWJsZUNvbHVtbiwgcm93OiBhbnkpOiBib29sZWFuIHtcbiAgICBjb25zdCBmb3JtYXRzID0gW21vbWVudC5JU09fODYwMSwgXCJNTS9ERC9ZWVlZICA6KSAgSEgqbW0qc3NcIl07XG4gICAgY29uc3QgaXNEYXRlID0gbW9tZW50KHJvd1tjb2x1bW4ua2V5XSwgZm9ybWF0cywgdHJ1ZSkuaXNWYWxpZCgpO1xuICAgIHJldHVybiAoY29sdW1uLm1hc2sgJiYgaXNEYXRlKSB8fCBmYWxzZTtcbiAgfVxuXG4gIGdldFZhbHVlQXNEYXRlKGNvbHVtbjogVGFibGVDb2x1bW4sIHJvdzogYW55KTogRGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKHJvd1tjb2x1bW4ua2V5XSk7XG4gIH1cblxuICBnZXRDZWxsQ2xhc3MoY29sdW1uOiBUYWJsZUNvbHVtbiwgcm93OiBhbnkpOiBzdHJpbmcge1xuICAgIGlmIChcbiAgICAgIGNvbHVtbi5rZXkgPT09IFwibmFtZVwiIHx8XG4gICAgICBjb2x1bW4ua2V5ID09PSBcImNwZlwiIHx8XG4gICAgICBjb2x1bW4ua2V5ID09PSBcImdlbmVyYWxcIlxuICAgICkge1xuICAgICAgcmV0dXJuIFwiXCI7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYGNsYXNzaWZpY2F0aW9uYDtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBcIlwiO1xuICAgIH1cbiAgfVxuXG4gIGdldENlbGxCZyhjb2x1bW46IFRhYmxlQ29sdW1uLCByb3c6IGFueSk6IHN0cmluZyB7XG4gICAgaWYgKFxuICAgICAgY29sdW1uLmtleSA9PT0gXCJuYW1lXCIgfHxcbiAgICAgIGNvbHVtbi5rZXkgPT09IFwiY3BmXCIgfHxcbiAgICAgIGNvbHVtbi5rZXkgPT09IFwiZ2VuZXJhbFwiXG4gICAgKSB7XG4gICAgICByZXR1cm4gXCJcIjtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGJnID0gcm93W2NvbHVtbi5rZXldPy5jbGFzc2lmaWNhdGlvbkNvbG9yO1xuICAgICAgcmV0dXJuIGJnO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIFwiXCI7XG4gICAgfVxuICB9XG5cbiAgZ2V0Q2VsbFRleHRDb2xvcihjb2x1bW46IFRhYmxlQ29sdW1uLCByb3c6IGFueSk6IHN0cmluZyB7XG4gICAgaWYgKFxuICAgICAgY29sdW1uLmtleSA9PT0gXCJuYW1lXCIgfHxcbiAgICAgIGNvbHVtbi5rZXkgPT09IFwiY3BmXCIgfHxcbiAgICAgIGNvbHVtbi5rZXkgPT09IFwiZ2VuZXJhbFwiXG4gICAgKSB7XG4gICAgICByZXR1cm4gXCJcIjtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNvbG9yID0gcm93W2NvbHVtbi5rZXldPy5jbGFzc2lmaWNhdGlvblRleHRDb2xvciE7XG4gICAgICByZXR1cm4gY29sb3I7XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gXCJcIjtcbiAgICB9XG4gIH1cblxuICBnZXRWYWx1ZShyb3c6IHsgdmFsdWU6IHN0cmluZyB9KTogc3RyaW5nIHtcbiAgICB0cnkge1xuICAgICAgaWYgKHJvdy52YWx1ZSkge1xuICAgICAgICByZXR1cm4gcm93LnZhbHVlICsgXCIlXCI7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gXCItXCI7XG4gICAgICB9XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gXCItXCI7XG4gICAgfVxuICB9XG5cbiAgY2hhbmdlUGFnZShldmVudD86IFBhZ2VFdmVudCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2VQYWdlLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgdG9nZ2xlTWVudSgpIHtcbiAgICB0aGlzLnRyaWdnZXIub3Blbk1lbnUoKTtcbiAgfVxuXG4gIGdldEJhY2tncm91bmRDb2xvcihjb2x1bW46IFRhYmxlQ29sdW1uLCByb3c6IGFueSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGNvbHVtbi5zdGF0dXM/LmNvbG9yPy5bcm93W2NvbHVtbi5rZXldIHx8IDBdIHx8IFwiXCI7XG4gIH1cblxuICBnZXRUZXh0Q29sb3IoY29sdW1uOiBUYWJsZUNvbHVtbiwgcm93OiBhbnkpOiBzdHJpbmcge1xuICAgIHJldHVybiBjb2x1bW4uc3RhdHVzPy50ZXh0Q29sb3I/Lltyb3dbY29sdW1uLmtleV0gfHwgMF0gfHwgXCJcIjtcbiAgfVxuXG5cbiAgaGFzQ3VzdG9tQ2xhc3MoY29sdW1uOiBUYWJsZUNvbHVtbiwgcm93OiBhbnksIGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKFxuICAgICAgY29sdW1uPy5jbGFzcyB8fFxuICAgICAgcm93Py5yb3dTdHlsZUNsYXNzIHx8XG4gICAgICB0aGlzLmhhc0NlbGxTdHlsZUNsYXNzKHJvdywga2V5KVxuICAgICkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGdldEN1c3RvbUNsYXNzKGNvbHVtbjogVGFibGVDb2x1bW4sIHJvdzogYW55LCBrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuaGFzQ2VsbFN0eWxlQ2xhc3Mocm93LCBrZXkpKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRDZWxsU3R5bGVDbGFzcyhyb3csIGNvbHVtbi5rZXkpO1xuICAgIH0gZWxzZSBpZiAoY29sdW1uPy5jbGFzcykge1xuICAgICAgcmV0dXJuIGNvbHVtbi5jbGFzcztcbiAgICB9IGVsc2UgaWYgKHJvdz8ucm93U3R5bGVDbGFzcykge1xuICAgICAgcmV0dXJuIHJvdy5yb3dTdHlsZUNsYXNzO1xuICAgIH1cbiAgICByZXR1cm4gXCJcIjtcbiAgfVxuXG4gIGhhc0NlbGxTdHlsZUNsYXNzKHJvdzogYW55LCBrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiByb3cuc3R5bGVDbGFzcz8ua2V5ID09PSBrZXk7XG4gIH1cblxuICBnZXRDZWxsU3R5bGVDbGFzcyhyb3c6IGFueSwga2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiByb3cuc3R5bGVDbGFzcz8ua2V5ID09PSBrZXkgPyByb3cuc3R5bGVDbGFzcz8uY2xhc3MgOiBcIlwiO1xuICB9XG5cbiAgaGFuZGxlTWVudShzZWxlY3RlZDogYW55KSB7XG4gICAgdGhpcy5lbWl0Um93Q2xpY2soc2VsZWN0ZWQuZGF0YSwgc2VsZWN0ZWQuYWN0aW9uKTtcbiAgfVxuXG4gIGhhc0luZGl2aWR1YWxNZW51KHJvdzogT2JqZWN0IHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gICAgaWYgKHJvdyAmJiAocm93IGFzIGFueSkubWVudSAmJiAocm93IGFzIGFueSkubWVudS5sZW5ndGggPiAwKSByZXR1cm4gdHJ1ZTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBnZXRNZW51SXRlbXMocm93OiBPYmplY3QgfCB1bmRlZmluZWQpOiBNZW51SXRlbVtdIHtcbiAgICBpZiAocm93ICYmIChyb3cgYXMgYW55KS5tZW51ICYmIChyb3cgYXMgYW55KS5tZW51Lmxlbmd0aCA+IDApIHJldHVybiAocm93IGFzIGFueSkubWVudTtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBnZXRDb250ZW50RnJvbUNvbHVtbihyb3c6IE9iamVjdCB8IHVuZGVmaW5lZCwga2V5OiBzdHJpbmcpOiBhbnlbXSB7XG4gICAgaWYgKHJvdyAmJiAocm93IGFzIGFueSlba2V5XSkgcmV0dXJuIChyb3cgYXMgYW55KVtrZXldO1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGhhc0FjdGlvbnNDb2x1bW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY29sdW1ucy5zb21lKChjb2x1bW4pID0+IGNvbHVtbi5rZXkuaW5jbHVkZXMoJ2FjdGlvbnMnKSk7XG4gIH1cblxuICBoYXNNZW51Q29sdW1uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNvbHVtbnMuc29tZSgoY29sdW1uKSA9PiBjb2x1bW4ua2V5LmluY2x1ZGVzKCdtZW51JykpO1xuICB9XG5cbiAgc2V0U3ZnTmFtZShpbWFnZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gaW1hZ2Uuc3BsaXQoJy8nKS5wb3AoKT8uc3BsaXQoJy4nKVswXSB8fCAnJztcbiAgfVxufVxuIiwiPHNlY3Rpb24gY2xhc3M9XCJtYXBhLXRhYmxlXCIgKm5nSWY9XCJkYXRhU291cmNlICYmIGRhdGFTb3VyY2UuZGF0YSAmJiBkYXRhU291cmNlLmRhdGEubGVuZ3RoID4gMFwiPlxuICA8ZGl2IGNsYXNzPVwibWFwYS10YWJsZS0tc2hvdy1vbi1tb2JpbGVcIj5cbiAgICA8ZGl2ICpuZ0lmPVwiY2hlY2tib3hcIiBjbGFzcz1cIm1hcGEtdGFibGVfX3NlbGVjdC1hbGxcIj5cbiAgICAgIDxtYXQtY2hlY2tib3hcbiAgICAgICAgKm5nSWY9XCJzZWxlY3Rpb25cIlxuICAgICAgICAoY2hhbmdlKT1cIiRldmVudCA/IHRvZ2dsZUFsbFJvd3MoKSA6IG51bGxcIlxuICAgICAgICBbY2hlY2tlZF09XCJzZWxlY3Rpb24uaGFzVmFsdWUoKSAmJiBpc0FsbFNlbGVjdGVkKClcIlxuICAgICAgICBbaW5kZXRlcm1pbmF0ZV09XCJzZWxlY3Rpb24uaGFzVmFsdWUoKSAmJiAhaXNBbGxTZWxlY3RlZCgpXCJcbiAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICA+U2VsZWNpb25hciB0b2RvczwvbWF0LWNoZWNrYm94PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nRm9yPVwibGV0IHJvdyBvZiBkYXRhU291cmNlLmRhdGEudmFsdWVzKCk7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtYXBhLXRhYmxlX19jYXJkIG1hcGFfX2NhcmRcIj5cbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnM7IGxldCBqID0gaW5kZXg7IGxldCBpc0ZpcnN0ID0gZmlyc3RcIiBbbmdDbGFzc109XCInbWFwYS10YWJsZV9fY2FyZC0tY29sdW1uLScgKyBjb2x1bW4ua2V5XCI+XG4gICAgICAgICAgPHN0cm9uZ1xuICAgICAgICAgICAgY2xhc3M9XCJtYXBhLXRhYmxlX19jYXJkLS1oZWFkZXJcIlxuICAgICAgICAgICAgW2NsYXNzLm1hcGEtdGFibGVfX2NoZWNrYm94LS1oZWFkZXJdPVwiaXNGaXJzdCAmJiBjaGVja2JveFwiXG4gICAgICAgICAgICAqbmdJZj1cImNvbHVtbi5rZXkgIT09ICdhY3Rpb25zJyAmJiBjb2x1bW4ua2V5ICE9PSAnbWVudSdcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwidGFibGVIZWFkZXJcIlxuICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBzZWxlY3Rpb24sIGNvbHVtbiwgaXNGaXJzdCwgY2hlY2tib3g6IGZhbHNlIH1cIlxuICAgICAgICAgICAgICBjbGFzcz1cImhpZGRlblwiXG4gICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgPC9zdHJvbmc+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJtYXBhLXRhYmxlX19jYXJkLS1jb2x1bW5cIlxuICAgICAgICAgICAgW2NsYXNzLm1hcGEtdGFibGVfX2NvbHVtbi0tY2VudGVyLWNlbGxdPVwiY29sdW1uPy5hbGlnbiA9PT0gJ2NlbnRlcidcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgKm5nSWY9XCJjb2x1bW4ua2V5ICE9PSAnYWN0aW9ucycgJiYgY29sdW1uLmtleSAhPT0gJ21lbnUnOyBlbHNlIGNvbHVtbkFjdGlvbnNPck1lbnVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFwYS10YWJsZV9fY29udGVudFwiPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJjb2x1bW4/LndpZHRoXCJcbiAgICAgICAgICAgICAgICAgIFtjbGFzcy5tYXBhLXRhYmxlX19jb2x1bW4tLWVsbGlwc2lzXT1cImNvbHVtbj8uY29sbGFwc2UgPT09ICdvdmVyZmxvdydcIlxuICAgICAgICAgICAgICAgICAgW2NsYXNzLm1hcGEtdGFibGVfX2NvbHVtbi0tbm8td3JhcF09XCJjb2x1bW4/LmNvbGxhcHNlID09PSAnbm8td3JhcCdcIlxuICAgICAgICAgICAgICAgICAgW2NsYXNzLm1hcGEtdGFibGVfX2NvbHVtbi0td3JhcF09XCJjb2x1bW4/LmNvbGxhcHNlID09PSAnd3JhcCdcIlxuICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiW2hhc0N1c3RvbUNsYXNzKGNvbHVtbiwgcm93LCBjb2x1bW4ua2V5KSA/IGdldEN1c3RvbUNsYXNzKGNvbHVtbiwgcm93LCBjb2x1bW4ua2V5KSA6ICcnXVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbHVtbj8uc3RhdHVzPy5jb2xvcjsgZWxzZSBjb21tb25Db2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1hcGEtdGFibGVfX2NvbHVtbi0tc3RhdHVzXCJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09XCJnZXRCYWNrZ3JvdW5kQ29sb3IoY29sdW1uLCByb3cpXCJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImdldFRleHRDb2xvcihjb2x1bW4sIHJvdylcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MubWFwYS10YWJsZV9fY29sdW1uLS1zdGF0dXMtcm91bmRdPVwiY29sdW1uLnN0YXR1cz8uc3R5bGUgPT0gJ3JvdW5kJ1wiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJ0YWJsZUNvbnRlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHNlbGVjdGlvbiwgY29sdW1uLCBpc0ZpcnN0LCBjaGVja2JveCwgcm93IH1cIlxuICAgICAgICAgICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY29tbW9uQ29sdW1uPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwidGFibGVDb250ZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBzZWxlY3Rpb24sIGNvbHVtbiwgaXNGaXJzdCwgY2hlY2tib3gsIHJvdyB9XCJcbiAgICAgICAgICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY29sdW1uQWN0aW9uc09yTWVudT5cbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbHVtbi5rZXkgPT09ICdhY3Rpb25zJyAmJiBhY3Rpb25zXCI+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBnZXRDb250ZW50RnJvbUNvbHVtbihyb3csICdhY3Rpb25zJykgfHwgYWN0aW9uc1wiPlxuICAgICAgICAgICAgICAgICAgPGEgKm5nSWY9XCJpdGVtLnJvdXRlOyBlbHNlIGNvbW1vbkNsaWNrQWN0aW9uXCIgW2hyZWZdPVwiaXRlbS5yb3V0ZVwiIFtyb3V0ZXJMaW5rXT1cIml0ZW0ucm91dGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWFwYS10YWJsZV9fY29sdW1uLS1hY3Rpb25zLWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJpdGVtLnRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiaXRlbS5pY29uXCI+e3sgaXRlbS5pY29uIH19PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8aW1nICpuZ0lmPVwiaXRlbS5pbWFnZVwiIFtzcmNdPVwiaXRlbS5pbWFnZVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPG1hcGEtc3ZnLWljb24gKm5nSWY9XCJpdGVtLnN2Z1wiIFtuYW1lXT1cInNldFN2Z05hbWUoaXRlbS5zdmcpXCI+PC9tYXBhLXN2Zy1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiaXRlbS5zaG93VGV4dFwiPnt7IGl0ZW0udGV4dCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2NvbW1vbkNsaWNrQWN0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZU1lbnUoe2RhdGE6IHJvdywgYWN0aW9uOiBpdGVtLmFjdGlvbn0pXCJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1hcGEtdGFibGVfX2NvbHVtbi0tYWN0aW9ucy1pdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiaXRlbS50ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cIml0ZW0uaWNvblwiPnt7IGl0ZW0uaWNvbiB9fTwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgPGltZyAqbmdJZj1cIml0ZW0uaW1hZ2VcIiBbc3JjXT1cIml0ZW0uaW1hZ2VcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXBhLXN2Zy1pY29uICpuZ0lmPVwiaXRlbS5zdmdcIiBbbmFtZV09XCJzZXRTdmdOYW1lKGl0ZW0uc3ZnKVwiPjwvbWFwYS1zdmctaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIml0ZW0uc2hvd1RleHRcIj57eyBpdGVtLnRleHQgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb2x1bW4ua2V5ID09PSAnbWVudSdcIj5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaGFzSW5kaXZpZHVhbE1lbnUocm93KTsgZWxzZSBnZW5lcmFsTWVudVwiIGNsYXNzPVwibWFwYS10YWJsZV9fY29sdW1uLS1tZW51XCI+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGdldE1lbnVJdGVtcyhyb3cpXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZU1lbnUoe2RhdGE6IHJvdywgYWN0aW9uOiBpdGVtLmFjdGlvbn0pXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYXBhLXRhYmxlX19jb2x1bW4tLW1lbnUtaXRlbVwiXG4gICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJpdGVtLnRleHRcIlxuICAgICAgICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiaXRlbS5pY29uXCI+e3sgaXRlbS5pY29uIH19PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPGltZyAqbmdJZj1cIml0ZW0uaW1hZ2VcIiBbc3JjXT1cIml0ZW0uaW1hZ2VcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hcGEtdGFibGVfX2NvbHVtbi0tbWVudS1pdGVtLXRleHRcIj57eyBpdGVtLnRleHQgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2dlbmVyYWxNZW51PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1hcGEtdGFibGVfX2NvbHVtbi0tbWVudVwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbWVudUl0ZW1zXCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlTWVudSh7ZGF0YTogcm93LCBhY3Rpb246IGl0ZW0uYWN0aW9ufSlcIlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWFwYS10YWJsZV9fY29sdW1uLS1tZW51LWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJpdGVtLnRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiaXRlbS5pY29uXCI+e3sgaXRlbS5pY29uIH19PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8bWFwYS1zdmctaWNvbiAqbmdJZj1cIml0ZW0uaW1hZ2VcIiBbbmFtZV09XCJzZXRTdmdOYW1lKGl0ZW0uaW1hZ2UpXCI+PC9tYXBhLXN2Zy1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWFwYS10YWJsZV9fY29sdW1uLS1tZW51LWl0ZW0tdGV4dFwiPnt7IGl0ZW0udGV4dCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibWFwYS10YWJsZS0tc2hvdy1vbi1kZXNrdG9wXCI+XG4gICAgPHRhYmxlXG4gICAgICBtYXQtdGFibGVcbiAgICAgIFtkYXRhU291cmNlXT1cImRhdGFTb3VyY2VcIlxuICAgICAgbWF0U29ydFxuICAgICAgKG1hdFNvcnRDaGFuZ2UpPVwic29ydERhdGFGdW5jdGlvbigkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uczsgbGV0IGlzRmlyc3QgPSBmaXJzdFwiXG4gICAgICAgIFttYXRDb2x1bW5EZWZdPVwiY29sdW1uLmtleVwiXG4gICAgICA+XG4gICAgICAgIDx0aFxuICAgICAgICAgIG1hdC1oZWFkZXItY2VsbFxuICAgICAgICAgICptYXRIZWFkZXJDZWxsRGVmXG4gICAgICAgICAgbWF0LXNvcnQtaGVhZGVyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiEoY29sdW1uLmtleSAhPT0gJ2FjdGlvbnMnID8gY29sdW1uLnNvcnQgOiBudWxsKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJ0YWJsZUhlYWRlclwiXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBzZWxlY3Rpb24sIGNvbHVtbiwgaXNGaXJzdCwgY2hlY2tib3ggfVwiXG4gICAgICAgICAgPjwvZGl2PlxuICAgICAgICA8L3RoPlxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgcm93XCIgW3N0eWxlLndpZHRoXT1cImNvbHVtbj8ud2lkdGhcIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cIm1hcGEtdGFibGVfX2NvbHVtblwiXG4gICAgICAgICAgICAoY2xpY2spPVwiZW1pdFJvd0NsaWNrKHJvdywgJycpXCJcbiAgICAgICAgICAgIFtjbGFzcy5tYXBhLXRhYmxlX19jb2x1bW4tLWNlbnRlci1jZWxsXT1cImNvbHVtbj8uYWxpZ24gPT09ICdjZW50ZXInXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICpuZ0lmPVwiY29sdW1uLmtleSAhPT0gJ2FjdGlvbnMnICYmIGNvbHVtbi5rZXkgIT09ICdtZW51JzsgZWxzZSBjb2x1bW5BY3Rpb25zT3JNZW51XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1hcGEtdGFibGVfX2NvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBbc3R5bGUud2lkdGhdPVwiY29sdW1uPy53aWR0aFwiXG4gICAgICAgICAgICAgICAgICBbY2xhc3MubWFwYS10YWJsZV9fY29sdW1uLS1lbGxpcHNpc109XCJjb2x1bW4/LmNvbGxhcHNlID09PSAnb3ZlcmZsb3cnXCJcbiAgICAgICAgICAgICAgICAgIFtjbGFzcy5tYXBhLXRhYmxlX19jb2x1bW4tLW5vLXdyYXBdPVwiY29sdW1uPy5jb2xsYXBzZSA9PT0gJ25vLXdyYXAnXCJcbiAgICAgICAgICAgICAgICAgIFtjbGFzcy5tYXBhLXRhYmxlX19jb2x1bW4tLXdyYXBdPVwiY29sdW1uPy5jb2xsYXBzZSA9PT0gJ3dyYXAnXCJcbiAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIltoYXNDdXN0b21DbGFzcyhjb2x1bW4sIHJvdywgY29sdW1uLmtleSkgPyBnZXRDdXN0b21DbGFzcyhjb2x1bW4sIHJvdywgY29sdW1uLmtleSkgOiAnJ11cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjb2x1bW4/LnN0YXR1cz8uY29sb3I7IGVsc2UgY29tbW9uQ29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYXBhLXRhYmxlX19jb2x1bW4tLXN0YXR1c1wiXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kQ29sb3JdPVwiZ2V0QmFja2dyb3VuZENvbG9yKGNvbHVtbiwgcm93KVwiXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJnZXRUZXh0Q29sb3IoY29sdW1uLCByb3cpXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLm1hcGEtdGFibGVfX2NvbHVtbi0tc3RhdHVzLXJvdW5kXT1cImNvbHVtbi5zdGF0dXM/LnN0eWxlID09ICdyb3VuZCdcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwidGFibGVDb250ZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBzZWxlY3Rpb24sIGNvbHVtbiwgaXNGaXJzdCwgY2hlY2tib3gsIHJvdyB9XCJcbiAgICAgICAgICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2NvbW1vbkNvbHVtbj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRhYmxlQ29udGVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgc2VsZWN0aW9uLCBjb2x1bW4sIGlzRmlyc3QsIGNoZWNrYm94LCByb3cgfVwiXG4gICAgICAgICAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2NvbHVtbkFjdGlvbnNPck1lbnU+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1hcGEtdGFibGVfX2NvbHVtbi0tYWN0aW9uc1wiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJjb2x1bW4ua2V5ID09PSAnYWN0aW9ucycgJiYgYWN0aW9uc1wiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIHJvd1snYWN0aW9ucyddIHx8IGFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgICAgIDxhICpuZ0lmPVwiaXRlbS5yb3V0ZTsgZWxzZSBjb21tb25DbGlja0FjdGlvblwiIFtocmVmXT1cIml0ZW0ucm91dGVcIiBbcm91dGVyTGlua109XCJpdGVtLnJvdXRlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1hcGEtdGFibGVfX2NvbHVtbi0tYWN0aW9ucy1pdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiaXRlbS50ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cIml0ZW0uaWNvblwiPnt7aXRlbS5pY29ufX08L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgIDxpbWcgKm5nSWY9XCJpdGVtLmltYWdlXCIgW3NyY109XCJpdGVtLmltYWdlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8bWFwYS1zdmctaWNvbiAqbmdJZj1cIml0ZW0uc3ZnXCIgW25hbWVdPVwic2V0U3ZnTmFtZShpdGVtLnN2ZylcIj48L21hcGEtc3ZnLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJpdGVtLnNob3dUZXh0XCI+e3sgaXRlbS50ZXh0IH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY29tbW9uQ2xpY2tBY3Rpb24+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlTWVudSh7ZGF0YTogcm93LCBhY3Rpb246IGl0ZW0uYWN0aW9ufSlcIlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWFwYS10YWJsZV9fY29sdW1uLS1hY3Rpb25zLWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJpdGVtLnRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiaXRlbS5pY29uXCI+e3tpdGVtLmljb259fTwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgPGltZyAqbmdJZj1cIml0ZW0uaW1hZ2VcIiBbc3JjXT1cIml0ZW0uaW1hZ2VcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXBhLXN2Zy1pY29uICpuZ0lmPVwiaXRlbS5zdmdcIiBbbmFtZV09XCJzZXRTdmdOYW1lKGl0ZW0uc3ZnKVwiPjwvbWFwYS1zdmctaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIml0ZW0uc2hvd1RleHRcIj57eyBpdGVtLnRleHQgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYXBhLXRhYmxlX19jb2x1bW4tLW1lbnVcIiAqbmdJZj1cImNvbHVtbi5rZXkgPT09ICdtZW51J1wiPlxuICAgICAgICAgICAgICAgIDxtYXBhLW1lbnVcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaGFzSW5kaXZpZHVhbE1lbnUocm93KTsgZWxzZSBnZW5lcmFsTWVudVwiXG4gICAgICAgICAgICAgICAgICBbaXRlbXNdPVwicm93Py5tZW51XCJcbiAgICAgICAgICAgICAgICAgIFtkYXRhXT1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAoZW1pdE1lbnUpPVwiaGFuZGxlTWVudSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICA+PC9tYXBhLW1lbnU+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNnZW5lcmFsTWVudT5cbiAgICAgICAgICAgICAgICAgIDxtYXBhLW1lbnVcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJtZW51SXRlbXMgJiYgbWVudUl0ZW1zLmxlbmd0aCA+IDBcIlxuICAgICAgICAgICAgICAgICAgICBbaXRlbXNdPVwibWVudUl0ZW1zXCJcbiAgICAgICAgICAgICAgICAgICAgW2RhdGFdPVwicm93XCJcbiAgICAgICAgICAgICAgICAgICAgKGVtaXRNZW51KT1cImhhbmRsZU1lbnUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICA+PC9tYXBhLW1lbnU+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3RkPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDx0ciBtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwiZGlzcGxheWVkQ29sdW1uc1wiPjwvdHI+XG4gICAgICA8dHJcbiAgICAgICAgbWF0LXJvd1xuICAgICAgICAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogZGlzcGxheWVkQ29sdW1ucztcIlxuICAgICAgICBjbGFzcz1cInJvdy1ob3ZlclwiXG4gICAgICA+PC90cj5cbiAgICA8L3RhYmxlPlxuICA8L2Rpdj5cbiAgPHNlY3Rpb24gKm5nSWY9XCJzaG93UGFnaW5hdG9yXCI+XG4gICAgPG1hdC1wYWdpbmF0b3JcbiAgICAgIGNsYXNzPVwibWFwYS10YWJsZV9fcGFnaW5hdG9yLWxlZ2FjeVwiXG4gICAgICBpdGVtc1BlclBhZ2VMYWJlbD1cIkl0ZW0gcG9yIHDDoWdpbmFcIlxuICAgICAgYXBwU3R5bGVQYWdpbmF0b3JNdlxuICAgICAgW2xlbmd0aF09XCJ0b3RhbENvdW50XCJcbiAgICAgIFtwYWdlU2l6ZV09XCJwYWdlU2l6ZVwiXG4gICAgICBbcGFnZVNpemVPcHRpb25zXT1cIls1LCAxMCwgMjUsIDEwMF1cIlxuICAgICAgKHBhZ2UpPVwiY2hhbmdlUGFnZSgkZXZlbnQpXCJcbiAgICA+PC9tYXQtcGFnaW5hdG9yPlxuICA8L3NlY3Rpb24+XG48L3NlY3Rpb24+XG5cbjxuZy10ZW1wbGF0ZVxuICAjdGFibGVIZWFkZXJcbiAgbGV0LXNlbGVjdGlvbj1cInNlbGVjdGlvblwiXG4gIGxldC1jb2x1bW49XCJjb2x1bW5cIlxuICBsZXQtaXNGaXJzdD1cImlzRmlyc3RcIlxuICBsZXQtY2hlY2tib3g9XCJjaGVja2JveFwiXG4+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0ZpcnN0ICYmIGNoZWNrYm94XCI+XG4gICAgPG1hdC1jaGVja2JveFxuICAgICAgKm5nSWY9XCJzZWxlY3Rpb25cIlxuICAgICAgKGNoYW5nZSk9XCIkZXZlbnQgPyB0b2dnbGVBbGxSb3dzKCkgOiBudWxsXCJcbiAgICAgIFtjaGVja2VkXT1cInNlbGVjdGlvbi5oYXNWYWx1ZSgpICYmIGlzQWxsU2VsZWN0ZWQoKVwiXG4gICAgICBbaW5kZXRlcm1pbmF0ZV09XCJzZWxlY3Rpb24uaGFzVmFsdWUoKSAmJiAhaXNBbGxTZWxlY3RlZCgpXCJcbiAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICA+PC9tYXQtY2hlY2tib3g+XG4gIDwvbmctY29udGFpbmVyPlxuICA8ZGl2PlxuICAgIDxzcGFuIFtpbm5lckhUTUxdPVwiY29sdW1uLmxhYmVsXCI+PC9zcGFuPlxuICA8L2Rpdj5cbiAgPGRpdlxuICAgICpuZ0lmPVwiY29sdW1uLmtleSAhPT0gJ2FjdGlvbnMnICYmIGNvbHVtbi5rZXkgIT09ICdtZW51JyAmJiBjb2x1bW4uc29ydFwiXG4gICAgY2xhc3M9XCJtYXBhLXRhYmxlLS1zaG93LW9uLWRlc2t0b3BcIj5cbiAgICA8bWF0LWljb24+ZmlsdGVyX2xpc3Q8L21hdC1pY29uPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZVxuICAjdGFibGVDb250ZW50XG4gIGxldC1zZWxlY3Rpb249XCJzZWxlY3Rpb25cIlxuICBsZXQtY29sdW1uPVwiY29sdW1uXCJcbiAgbGV0LWlzRmlyc3Q9XCJpc0ZpcnN0XCJcbiAgbGV0LWNoZWNrYm94PVwiY2hlY2tib3hcIlxuICBsZXQtcm93PVwicm93XCJcbj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzRmlyc3QgJiYgY2hlY2tib3hcIj5cbiAgICA8bWF0LWNoZWNrYm94XG4gICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgIChjaGFuZ2UpPVwiJGV2ZW50ID8gc2VsZWN0aW9uPy50b2dnbGUocm93KSA6IG51bGw7IGdldFNlbGVjdGVkVmFsdWVzKClcIlxuICAgICAgW2NoZWNrZWRdPVwic2VsZWN0aW9uPy5pc1NlbGVjdGVkKHJvdylcIlxuICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgIGNsYXNzPVwibWFwYS10YWJsZV9fY2hlY2tib3hcIlxuICAgID5cbiAgICA8L21hdC1jaGVja2JveD5cbiAgPC9uZy1jb250YWluZXI+XG4gIDwhLS0gUE9SIEZBVk9SLCBOw4NPIFFVRUJSRSBMSU5IQSBFTlRSRSBORy1DT05UQUlORVIvVEVNUExBVEUgRSBPIFZBTE9SIENPTlRFw5pETyAgLS0+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc01hc2tlZERhdGEoY29sdW1uLCByb3cpOyBlbHNlIHN0YXR1c0NvbnRlbnRcIlxuICAgID57eyBnZXRWYWx1ZUFzRGF0ZShjb2x1bW4sIHJvdykgfCBkYXRlOiBjb2x1bW4ubWFzayB9fTwvbmctY29udGFpbmVyXG4gID5cbiAgPG5nLXRlbXBsYXRlICNzdGF0dXNDb250ZW50PlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4uc3RhdHVzOyBlbHNlIGNvbW1vbkNvbnRlbnRcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0Jvb2xlYW4oY29sdW1uLCByb3cpOyBlbHNlIGNvbW1vblN0YXR1c1wiXG4gICAgICAgID48c3BhbiBbaW5uZXJIVE1MXT1cImNvbHVtbi5zdGF0dXMubGFiZWxbcm93W2NvbHVtbi5rZXldID8gMSA6IDBdXCI+PC9zcGFuXG4gICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICA8bmctdGVtcGxhdGUgI2NvbW1vblN0YXR1c1xuICAgICAgICA+PHNwYW4gW2lubmVySFRNTF09XCJjb2x1bW4uc3RhdHVzLmxhYmVsW3Jvd1tjb2x1bW4ua2V5XV0gfHwgJy0nIFwiPjwvc3BhblxuICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNjb21tb25Db250ZW50XG4gICAgICA+PHNwYW4gW2lubmVySFRNTF09XCJyb3dbY29sdW1uLmtleV1cIj48L3NwYW5cbiAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPG5nLXRlbXBsYXRlICNzdGF0dXNDb250ZW50PlxuICAgIDxuZy10ZW1wbGF0ZSAjY29tbW9uQ29udGVudFxuICAgICAgPjxzcGFuIFtpbm5lckhUTUxdPVwicm93W2NvbHVtbi5rZXldXCI+PC9zcGFuXG4gICAgPjwvbmctdGVtcGxhdGU+XG4gIDwvbmctdGVtcGxhdGU+XG48L25nLXRlbXBsYXRlPlxuIl19