ca-components 1.5.21 → 1.5.22

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.
@@ -219,4 +219,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
219
219
  }], placeholder: [{
220
220
  type: Input
221
221
  }] } });
222
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtY3VzdG9tLWRhdGV0aW1lLXBpY2tlcnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtY3VzdG9tLWRhdGV0aW1lLXBpY2tlcnMvY2EtY3VzdG9tLWRhdGV0aW1lLXBpY2tlcnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtY3VzdG9tLWRhdGV0aW1lLXBpY2tlcnMvY2EtY3VzdG9tLWRhdGV0aW1lLXBpY2tlcnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsZ0JBQWdCLEdBR2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsU0FBUztBQUNULE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUs1QixhQUFhO0FBQ2IsT0FBTyxFQUFFLDZDQUE2QyxFQUFFLE1BQU0sNEdBQTRHLENBQUM7QUFFM0ssWUFBWTtBQUNaLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBTXJHLFFBQVE7QUFDUixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUM1RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMxRixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7OztBQWF4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WUksWUFBWTtzQkFBckIsTUFBTTtnQkFHUCxZQUFZO3NCQURYLFNBQVM7dUJBQUMsNkNBQTZDO2dCQUUvQixVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVk7Z0JBQ0ssYUFBYTtzQkFBeEMsU0FBUzt1QkFBQyxlQUFlO2dCQUNELFVBQVU7c0JBQWxDLFNBQVM7dUJBQUMsWUFBWTtnQkFtQ25CLFlBQVk7c0JBRGYsS0FBSztnQkFTRixXQUFXO3NCQURkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIE9uRGVzdHJveSxcbiAgQWZ0ZXJWaWV3SW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbi8vIG1vbWVudFxuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuXG4vLyBzZXJ2aWNlc1xuaW1wb3J0IHsgQ2FsZW5kYXJEYXRlVGltZVBpY2tlclNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2NhbGVuZGFyLWRhdGV0aW1lLXBpY2tlci5zZXJ2aWNlJztcblxuLy8gY29tcG9uZW50c1xuaW1wb3J0IHsgQ2FDdXN0b21EYXRlVGltZVBpY2tlcnNEYXRlQ2FsZW5kYXJzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NhLWN1c3RvbS1kYXRldGltZS1waWNrZXJzLWRhdGUtY2FsZW5kYXJzL2NhLWN1c3RvbS1kYXRldGltZS1waWNrZXJzLWRhdGUtY2FsZW5kYXJzLmNvbXBvbmVudCc7XG5cbi8vIGNvbnN0YW50c1xuaW1wb3J0IHsgQ3VzdG9tRGF0ZXRpbWVQaWNrZXJzQ29uc3RhbnRzIH0gZnJvbSAnLi91dGlscy9jb25zdGFudHMvY3VzdG9tLWRhdGV0aW1lLXBpY2tlcnMuY29uc3RhbnRzJztcblxuLy8gbW9kZWxzXG5pbXBvcnQgeyBJQ2FJbnB1dCB9IGZyb20gJy4uL2NhLWlucHV0L2NvbmZpZy9jYS1pbnB1dC5jb25maWcnO1xuaW1wb3J0IHsgU2Nyb2xsVHlwZSB9IGZyb20gJy4vbW9kZWxzL3Njcm9sbC10eXBlLm1vZGVsJztcblxuLy8gZW51bXNcbmltcG9ydCB7IElucHV0Q29uZmlnTmFtZVN0cmluZ0VudW0gfSBmcm9tICcuLi9jYS1pbnB1dC9lbnVtcy9pbnB1dC1jb25maWctbmFtZS1zdHJpbmcuZW51bSc7XG5pbXBvcnQgeyBDYWxlbmRhclR5cGVTdHJpbmdFbnVtIH0gZnJvbSAnLi9lbnVtcy9jYWxlbmRhci10eXBlLXN0cmluZy5lbnVtJztcbmltcG9ydCB7IENhbGVuZGFyTGlzdFByZXZpZXdTdHJpbmdFbnVtIH0gZnJvbSAnLi9lbnVtcy9jYWxlbmRhci1saXN0LXByZXZpZXctc3RyaW5nLmVudW0nO1xuaW1wb3J0IHsgQ2FsZW5kYXJTY3JvbGxUeXBlU3RyaW5nRW51bSB9IGZyb20gJy4vZW51bXMvY2FsZW5kYXItc2Nyb2xsLXR5cGUtc3RyaW5nLmVudW0nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjYS1jdXN0b20tZGF0ZXRpbWUtcGlja2VycycsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYS1jdXN0b20tZGF0ZXRpbWUtcGlja2Vycy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NhLWN1c3RvbS1kYXRldGltZS1waWNrZXJzLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgQ2FDdXN0b21EYXRlVGltZVBpY2tlcnNEYXRlQ2FsZW5kYXJzQ29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDYUN1c3RvbURhdGV0aW1lUGlja2Vyc0NvbXBvbmVudFxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgZGF0ZVRpbWUhOiBEYXRlO1xuICBAVmlld0NoaWxkKCdyZWYnLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgcmVmITogVmlld0NvbnRhaW5lclJlZjtcbiAgcHVibGljIF9pbnB1dENvbmZpZyE6IElDYUlucHV0O1xuICBASW5wdXQoKSBzZXQgaW5wdXRDb25maWcoY29uZmlnOiBJQ2FJbnB1dCkge1xuICAgIHRoaXMuX2lucHV0Q29uZmlnID0gY29uZmlnO1xuICAgIGlmIChcbiAgICAgIHRoaXMuX2lucHV0Q29uZmlnLm5hbWUgPT09IElucHV0Q29uZmlnTmFtZVN0cmluZ0VudW0uREFURV9QSUNLRVJfQkFOS19DQVJEXG4gICAgKVxuICAgICAgdGhpcy5saXN0UHJldmlldyA9IENhbGVuZGFyTGlzdFByZXZpZXdTdHJpbmdFbnVtLk1PTlRIX0xJU1Q7XG5cbiAgICBpZiAodGhpcy5faW5wdXRDb25maWcubWludXRlc0dhcEZpdmUpXG4gICAgICB0aGlzLnRpbWVNaW51dGVzID0gQ3VzdG9tRGF0ZXRpbWVQaWNrZXJzQ29uc3RhbnRzLnRpbWVNaW51dGVzR2FwRml2ZTtcbiAgICBlbHNlIHRoaXMudGltZU1pbnV0ZXMgPSBDdXN0b21EYXRldGltZVBpY2tlcnNDb25zdGFudHMudGltZU1pbnV0ZXM7XG4gIH1cblxuICBAT3V0cHV0KCkgY2xvc2VQb3BvdmVyOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQFZpZXdDaGlsZChDYUN1c3RvbURhdGVUaW1lUGlja2Vyc0RhdGVDYWxlbmRhcnNDb21wb25lbnQpXG4gIGRhdGVDYWxlbmRhciE6IENhQ3VzdG9tRGF0ZVRpbWVQaWNrZXJzRGF0ZUNhbGVuZGFyc0NvbXBvbmVudDtcbiAgQFZpZXdDaGlsZCgncG1BbVNjcm9sbCcpIHBtQW1TY3JvbGwhOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdtaW51dGVzU2Nyb2xsJykgbWludXRlc1Njcm9sbCE6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ2hvdXJTY3JvbGwnKSBob3VyU2Nyb2xsITogRWxlbWVudFJlZjtcblxuICBwdWJsaWMgc2VsZWN0ZWREYXRlVGltZSE6IHN0cmluZztcbiAgcHVibGljIGNhbGVuZGFyTWFpblR5cGUhOiBzdHJpbmc7XG4gIHB1YmxpYyBvdXRwdXRUeXBlITogKHN0cmluZyB8IG51bWJlcilbXTtcbiAgcHVibGljIGN1cnJlbnRZZWFyOiBudW1iZXIgPSBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCk7XG4gIHB1YmxpYyBjdXJyZW50TW9udGg6IG51bWJlciA9IG5ldyBEYXRlKCkuZ2V0TW9udGgoKTtcbiAgcHVibGljIGN1cnJlbnREYXk6IG51bWJlciA9IG5ldyBEYXRlKCkuZ2V0RGF0ZSgpO1xuICBwdWJsaWMgbGlzdFByZXZpZXc6IHN0cmluZyA9IENhbGVuZGFyTGlzdFByZXZpZXdTdHJpbmdFbnVtLkZVTExfTElTVDtcbiAgcHVibGljIHRpbWVNaW51dGVzITogc3RyaW5nW107XG4gIHB1YmxpYyBtb250aEFycmF5OiBudW1iZXJbXSA9IG5ldyBBcnJheSgxMilcbiAgICAuZmlsbCgwKVxuICAgIC5tYXAoKF8sIGluZHgpID0+IGluZHggKyAxKTtcbiAgcHVibGljIG1vbnRoRGF5TGlzdDogbnVtYmVyW10gPSBuZXcgQXJyYXkoMzEpXG4gICAgLmZpbGwoMClcbiAgICAubWFwKChfLCBpbmR4KSA9PiBpbmR4ICsgMSk7XG4gIHB1YmxpYyB5ZWFyc0xpc3Q6IChzdHJpbmcgfCBudW1iZXIpW10gPSBuZXcgQXJyYXkoMTAwKVxuICAgIC5maWxsKDApXG4gICAgLm1hcCgoXywgaWR4KSA9PiAoaWR4IDwgMTAgPyAnMCcgKyBpZHggOiBpZHgpKTtcbiAgcHVibGljIHNjcm9sbFRpbWVyITogTm9kZUpTLlRpbWVvdXQgfCBudW1iZXI7XG4gIHB1YmxpYyBob3ZlcmVkSXRlbSE6IHN0cmluZyB8IG51bGw7XG4gIHB1YmxpYyBpc0lucHV0Rm9jdXMhOiBib29sZWFuO1xuICBwdWJsaWMgbW9udGhOYW1lczogc3RyaW5nW10gPSBDdXN0b21EYXRldGltZVBpY2tlcnNDb25zdGFudHMubW9udGhOYW1lcztcbiAgcHVibGljIGhvdXJUaW1lczogbnVtYmVyW10gPSBDdXN0b21EYXRldGltZVBpY2tlcnNDb25zdGFudHMuaG91clRpbWVzO1xuICBwdWJsaWMgc2Nyb2xsVHlwZXM6IFNjcm9sbFR5cGUgPVxuICAgIEN1c3RvbURhdGV0aW1lUGlja2Vyc0NvbnN0YW50cy5kZWZhdWx0U2Nyb2xsVHlwZXM7XG4gIHB1YmxpYyBzZWxlY3RlZFRpbWU6IHN0cmluZyA9XG4gICAgQ3VzdG9tRGF0ZXRpbWVQaWNrZXJzQ29uc3RhbnRzLmRlZmF1bHRTZWxlY3RlZFRpbWU7XG4gIHB1YmxpYyB0aW1lT2ZEYXk6IHN0cmluZ1tdID0gQ3VzdG9tRGF0ZXRpbWVQaWNrZXJzQ29uc3RhbnRzLnRpbWVPZkRheTtcblxuICBwdWJsaWMgcHJldmlvdXNSYW5nZVNpZGUhOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2FsZW5kYXJTZXJ2aWNlOiBDYWxlbmRhckRhdGVUaW1lUGlja2VyU2VydmljZSkgeyB9XG5cbiAgQElucHV0KClcbiAgc2V0IGNhbGVuZGFyVHlwZShjYWxlbmRhclR5cGU6IHN0cmluZykge1xuICAgIHRoaXMuY2FsZW5kYXJNYWluVHlwZSA9IGNhbGVuZGFyVHlwZTtcbiAgICBpZiAoY2FsZW5kYXJUeXBlID09PSBDYWxlbmRhclR5cGVTdHJpbmdFbnVtLlRJTUUpXG4gICAgICB0aGlzLm91dHB1dFR5cGUgPSBDdXN0b21EYXRldGltZVBpY2tlcnNDb25zdGFudHMuZGVmYXVsdE91dHB1dFR5cGVUaW1lO1xuICAgIGVsc2UgdGhpcy5vdXRwdXRUeXBlID0gQ3VzdG9tRGF0ZXRpbWVQaWNrZXJzQ29uc3RhbnRzLmRlZmF1bHRPdXRwdXRUeXBlRGF0ZTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBwbGFjZWhvbGRlcihwbGFjZWhvbGRlcjogc3RyaW5nKSB7XG4gICAgdGhpcy5zZWxlY3RlZERhdGVUaW1lID0gcGxhY2Vob2xkZXI7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXREYXRlQ2hhbmdlZExpc3RlbmVyKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRUaW1lVmFsdWUoKTtcbiAgICB0aGlzLmNoYW5nZU9wZW5lZCgpO1xuICB9XG5cbiAgcHVibGljIGluaXREYXRlQ2hhbmdlZExpc3RlbmVyKCk6IHZvaWQge1xuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmRhdGVDaGFuZ2VkLnN1YnNjcmliZSgoZGF0ZSkgPT4ge1xuICAgICAgaWYgKHRoaXMuY2FsZW5kYXJNYWluVHlwZSAhPT0gQ2FsZW5kYXJUeXBlU3RyaW5nRW51bS5USU1FKSB7XG4gICAgICAgIHRoaXMub3V0cHV0VHlwZVswXSA9IGRhdGVbMF07XG4gICAgICAgIHRoaXMub3V0cHV0VHlwZVsyXSA9IGRhdGVbMV07XG4gICAgICAgIHRoaXMub3V0cHV0VHlwZVs0XSA9IGRhdGVbMl07XG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlVGltZSA9IHRoaXMuY3JlYXRlU3RyaW5nRnJvbU91dHB1dCgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNldFRpbWVWYWx1ZSgpIHtcbiAgICBjb25zdCBkYXRlSW5wdXRBcnJheSA9IG1vbWVudCh0aGlzLmRhdGVUaW1lKS5mb3JtYXQoJ0gvbW0vQScpLnNwbGl0KCcvJyk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnNjcm9sbFR5cGVzLmhvdXJTY3JvbGwgPSB0aGlzLmhvdXJUaW1lcy5pbmRleE9mKFxuICAgICAgICBwYXJzZUludChkYXRlSW5wdXRBcnJheVswXSlcbiAgICAgICk7XG4gICAgICB0aGlzLnNjcm9sbFR5cGVzLm1pbnV0ZXNTY3JvbGwgPSB0aGlzLnRpbWVNaW51dGVzLmluZGV4T2YoXG4gICAgICAgIGRhdGVJbnB1dEFycmF5WzFdXG4gICAgICApO1xuXG4gICAgICB0aGlzLnNjcm9sbFR5cGVzLnBtQW1TY3JvbGwgPSBkYXRlSW5wdXRBcnJheVsyXSA9PT0gJ0FNJyA/IDAgOiAxO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNldExpc3RQcmV2aWV3KHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RQcmV2aWV3ID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgaW5wdXRJbkZvY3VzKCk6IHZvaWQge1xuICAgIHRoaXMuaXNJbnB1dEZvY3VzID0gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBpbnB1dEJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy5pc0lucHV0Rm9jdXMgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBjaGFuZ2VPcGVuZWQoKTogdm9pZCB7XG4gICAgLy8gdGhpcy5pc0lucHV0Rm9jdXMgPSBlO1xuICAgIC8vIGlmIChlKSB7XG4gICAgaWYgKHRoaXMuY2FsZW5kYXJNYWluVHlwZSA9PT0gQ2FsZW5kYXJUeXBlU3RyaW5nRW51bS5USU1FKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5ob3VyU2Nyb2xsLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wID1cbiAgICAgICAgICB0aGlzLnNjcm9sbFR5cGVzLmhvdXJTY3JvbGwgKiAyMjtcbiAgICAgICAgdGhpcy5taW51dGVzU2Nyb2xsLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wID1cbiAgICAgICAgICB0aGlzLnNjcm9sbFR5cGVzLm1pbnV0ZXNTY3JvbGwgKiAyMjtcbiAgICAgICAgdGhpcy5wbUFtU2Nyb2xsLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wID1cbiAgICAgICAgICB0aGlzLnNjcm9sbFR5cGVzLnBtQW1TY3JvbGwgKiAyMjtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgdGVzdCA9IGAke3RoaXMuZGF0ZVRpbWUuZ2V0TW9udGgoKSArIDFcbiAgICAgICAgfS8ke3RoaXMuZGF0ZVRpbWUuZ2V0RGF0ZSgpfS8ke3RoaXMuZGF0ZVRpbWUuZ2V0RnVsbFllYXIoKX1gO1xuXG4gICAgICB0aGlzLmNhbGVuZGFyU2VydmljZS5zY3JvbGxUb0RhdGUubmV4dChcbiAgICAgICAgYCR7dGhpcy5kYXRlVGltZS5nZXRNb250aCgpICsgMVxuICAgICAgICB9LyR7dGhpcy5kYXRlVGltZS5nZXREYXRlKCl9LyR7dGhpcy5kYXRlVGltZS5nZXRGdWxsWWVhcigpfWBcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNldFRpbWUoKTogdm9pZCB7XG4gICAgdGhpcy5vdXRwdXRUeXBlWzBdID0gdGhpcy5ob3VyVGltZXNbdGhpcy5zY3JvbGxUeXBlcy5ob3VyU2Nyb2xsXTtcbiAgICB0aGlzLm91dHB1dFR5cGVbMl0gPSB0aGlzLnRpbWVNaW51dGVzW3RoaXMuc2Nyb2xsVHlwZXMubWludXRlc1Njcm9sbF07XG4gICAgdGhpcy5vdXRwdXRUeXBlWzRdID0gdGhpcy50aW1lT2ZEYXlbdGhpcy5zY3JvbGxUeXBlcy5wbUFtU2Nyb2xsXTtcblxuICAgIHRoaXMuc2VsZWN0ZWREYXRlVGltZSA9IHRoaXMuY3JlYXRlU3RyaW5nRnJvbU91dHB1dCgpO1xuXG4gICAgbGV0IGN1cnJlbnREYXRlID0gbW9tZW50KCkuZm9ybWF0KCdNTS9ERC9ZWVlZJyk7XG5cbiAgICB0aGlzLmNhbGVuZGFyU2VydmljZS5kYXRlQ2hhbmdlZC5uZXh0KFxuICAgICAgbmV3IERhdGUoY3VycmVudERhdGUgKyAnICcgKyB0aGlzLnNlbGVjdGVkRGF0ZVRpbWUpXG4gICAgKTtcblxuICAgIHRoaXMuY2xvc2VQb3BvdmVyLmVtaXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXREZWZhdWx0VGltZSgpOiB2b2lkIHtcbiAgICBsZXQgY3VycmVudERhdGUgPSBtb21lbnQoKS5mb3JtYXQoJ01NL0REL1lZWVknKTtcbiAgICB0aGlzLmNhbGVuZGFyU2VydmljZS5kYXRlQ2hhbmdlZC5uZXh0KG5ldyBEYXRlKGN1cnJlbnREYXRlICsgJyAwODowMCcpKTtcblxuICAgIHRoaXMuY2xvc2VQb3BvdmVyLmVtaXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBjbG9zZVBvcHVwKCk6IHZvaWQge1xuICAgIHRoaXMuY2xvc2VQb3BvdmVyLmVtaXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBjcmVhdGVTdHJpbmdGcm9tT3V0cHV0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMub3V0cHV0VHlwZS5qb2luKCcnKTtcbiAgfVxuXG4gIHB1YmxpYyBvblNjcm9sbChcbiAgICBldmVudDogRXZlbnQsXG4gICAgdHlwZToga2V5b2YgU2Nyb2xsVHlwZSxcbiAgICBpbmRleDogbnVtYmVyIHwgbnVsbCA9IG51bGxcbiAgKTogdm9pZCB7XG4gICAgY29uc3Qgc2Nyb2xGcm9tVG9wID0gTWF0aC5mbG9vcigoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5zY3JvbGxUb3ApO1xuICAgIGNvbnN0IHNjcm9sbEluZGV4ID0gaW5kZXggPT09IG51bGwgPyBNYXRoLmZsb29yKHNjcm9sRnJvbVRvcCAvIDIyKSA6IGluZGV4O1xuICAgIGNvbnN0IHNjcm9sbFJlbWFpbmluZyA9IHNjcm9sRnJvbVRvcCAlIDIyO1xuICAgIGNsZWFySW50ZXJ2YWwodGhpcy5zY3JvbGxUaW1lcik7XG4gICAgdGhpcy5zY3JvbGxUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHNjcm9sbFJlbWFpbmluZyA8IDExICYmIGluZGV4ID09PSBudWxsKSB7XG4gICAgICAgIChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLnNjcm9sbFRvcCA9IHNjcm9sbEluZGV4ICogMjI7XG4gICAgICAgIHRoaXMuc2Nyb2xsVHlwZXNbdHlwZV0gPSBzY3JvbGxJbmRleDtcbiAgICAgIH0gZWxzZSBpZiAoaW5kZXggIT09IG51bGwpIHtcbiAgICAgICAgKDxIVE1MRWxlbWVudD4oPEhUTUxFbGVtZW50PmV2ZW50LnRhcmdldCkucGFyZW50Tm9kZSkuc2Nyb2xsVG9wID1cbiAgICAgICAgICBzY3JvbGxJbmRleCAqIDIyO1xuICAgICAgICB0aGlzLnNjcm9sbFR5cGVzW3R5cGVdID0gc2Nyb2xsSW5kZXg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5zY3JvbGxUb3AgPSAoc2Nyb2xsSW5kZXggKyAxKSAqIDIyO1xuICAgICAgICB0aGlzLnNjcm9sbFR5cGVzW3R5cGVdID0gc2Nyb2xsSW5kZXggKyAxO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmNoZWNrRm9yU2Nyb2xsZWRUeXBlKHR5cGUpO1xuICAgIH0sIDIwMCk7XG4gIH1cblxuICBwdWJsaWMgY2hlY2tGb3JTY3JvbGxlZFR5cGUodHlwZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHR5cGUgPT09IENhbGVuZGFyU2Nyb2xsVHlwZVN0cmluZ0VudW0uSE9VUlNfU0NST0xMKSB7XG4gICAgICBpZiAodGhpcy5zY3JvbGxUeXBlc1t0eXBlXSA+PSAxMikge1xuICAgICAgICB0aGlzLnBtQW1TY3JvbGwubmF0aXZlRWxlbWVudC5zY3JvbGxUb3AgPSAyMjtcbiAgICAgICAgdGhpcy5zY3JvbGxUeXBlcy5wbUFtU2Nyb2xsID0gMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucG1BbVNjcm9sbC5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcCA9IDA7XG4gICAgICAgIHRoaXMuc2Nyb2xsVHlwZXMucG1BbVNjcm9sbCA9IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHR5cGUgPT09IENhbGVuZGFyU2Nyb2xsVHlwZVN0cmluZ0VudW0uUE1fQU1fU0NST0xMKSB7XG4gICAgICBpZiAodGhpcy5zY3JvbGxUeXBlc1t0eXBlXSA9PT0gMCkge1xuICAgICAgICBpZiAodGhpcy5zY3JvbGxUeXBlcy5ob3VyU2Nyb2xsID49IDEyKSB7XG4gICAgICAgICAgdGhpcy5ob3VyU2Nyb2xsLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wID1cbiAgICAgICAgICAgICh0aGlzLnNjcm9sbFR5cGVzLmhvdXJTY3JvbGwgLSAxMikgKiAyMjtcbiAgICAgICAgICB0aGlzLnNjcm9sbFR5cGVzLmhvdXJTY3JvbGwgPSBNYXRoLmZsb29yKFxuICAgICAgICAgICAgdGhpcy5zY3JvbGxUeXBlcy5ob3VyU2Nyb2xsIC0gMTJcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAodGhpcy5zY3JvbGxUeXBlcy5ob3VyU2Nyb2xsIDwgMTIpIHtcbiAgICAgICAgICB0aGlzLmhvdXJTY3JvbGwubmF0aXZlRWxlbWVudC5zY3JvbGxUb3AgPVxuICAgICAgICAgICAgKHRoaXMuc2Nyb2xsVHlwZXMuaG91clNjcm9sbCArIDEyKSAqIDIyO1xuICAgICAgICAgIHRoaXMuc2Nyb2xsVHlwZXMuaG91clNjcm9sbCA9IE1hdGguZmxvb3IoXG4gICAgICAgICAgICB0aGlzLnNjcm9sbFR5cGVzLmhvdXJTY3JvbGwgKyAxMlxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdGVkVGltZSA9IGAke3RoaXMuaG91clRpbWVzW3RoaXMuc2Nyb2xsVHlwZXMuaG91clNjcm9sbF19OiR7dGhpcy50aW1lTWludXRlc1t0aGlzLnNjcm9sbFR5cGVzLm1pbnV0ZXNTY3JvbGxdXG4gICAgICB9ICR7dGhpcy50aW1lT2ZEYXlbdGhpcy5zY3JvbGxUeXBlcy5wbUFtU2Nyb2xsXX1gO1xuICB9XG5cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmxpc3RQcmV2aWV3ID0gQ2FsZW5kYXJMaXN0UHJldmlld1N0cmluZ0VudW0uRlVMTF9MSVNUO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwidGVtcF9pbnBfaG9sZGVyXCI+XG4gICAgPGRpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBpY2tlcnNfaG9sZGVyIGRhcmtfcGlja2VyXCI+XG4gICAgICAgICAgICBAaWYgKGNhbGVuZGFyTWFpblR5cGUgPT09ICdkYXRlJykge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXRlX3BpY2tlclwiPlxuICAgICAgICAgICAgICAgICAgICA8YXBwLWNhLWN1c3RvbS1kYXRldGltZS1waWNrZXJzLWRhdGUtY2FsZW5kYXJzXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGlzdFByZXZpZXddPVwibGlzdFByZXZpZXdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2RhdGVUaW1lXT1cImRhdGVUaW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpc01vbnRoQW5kWWVhck9ubHldPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX2lucHV0Q29uZmlnLm5hbWUgPT09ICdkYXRlcGlja2VyQmFua0NhcmQnXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKHNldExpc3RQcmV2aWV3VmFsdWUpPVwic2V0TGlzdFByZXZpZXcoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgID48L2FwcC1jYS1jdXN0b20tZGF0ZXRpbWUtcGlja2Vycy1kYXRlLWNhbGVuZGFycz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoY2FsZW5kYXJNYWluVHlwZSA9PT0gJ3RpbWUnKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpbWVfcGlja2VyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aW1lX3BpY2tlcl9oZWFkIGQtZmxleFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkX3RpbWUgdGEtZm9udC1ib2xkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgc2VsZWN0ZWRUaW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNlbF9ub3cgdGEtZm9udC1ib2xkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2V0RGVmYXVsdFRpbWUoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGltZV9waWNrZXJfYm9keVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBpY2tlcl9ib2R5X2hlYWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGEtZm9udC1ib2xkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJob3ZlcmVkSXRlbSA9PT0gJ2hvdXJzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIb3VyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRhLWZvbnQtYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiaG92ZXJlZEl0ZW0gPT09ICdtaW51dGVzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNaW51dGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGEtZm9udC1ib2xkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJob3ZlcmVkSXRlbSA9PT0gJ3RpbWVzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBTS9QTVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGlja2VyX2JvZHlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNob3VyU2Nyb2xsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb3VzZW91dCk9XCJob3ZlcmVkSXRlbSA9IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW91c2VvdmVyKT1cImhvdmVyZWRJdGVtID0gJ2hvdXJzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzY3JvbGwpPVwib25TY3JvbGwoJGV2ZW50LCAnaG91clNjcm9sbCcpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzY3JvbGxfcGlja2Vyc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvdXIgb2YgaG91clRpbWVzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGluZHggPSAkaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFjayBpbmR4XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2Nyb2xsX2l0ZW0gdGEtZm9udC1tZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FjdGl2ZV9pdGVtIHRhLWZvbnQtYm9sZCc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxUeXBlcy5ob3VyU2Nyb2xsID09PSBpbmR4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25TY3JvbGwoJGV2ZW50LCAnaG91clNjcm9sbCcsIGluZHgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBob3VyIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI21pbnV0ZXNTY3JvbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vdXNlb3V0KT1cImhvdmVyZWRJdGVtID0gbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb3VzZW92ZXIpPVwiaG92ZXJlZEl0ZW0gPSAnbWludXRlcydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2Nyb2xsKT1cIm9uU2Nyb2xsKCRldmVudCwgJ21pbnV0ZXNTY3JvbGwnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2Nyb2xsX3BpY2tlcnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW51dGVzIG9mIHRpbWVNaW51dGVzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGluZHggPSAkaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFjayBpbmR4XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2Nyb2xsX2l0ZW0gdGEtZm9udC1tZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FjdGl2ZV9pdGVtIHRhLWZvbnQtYm9sZCc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxUeXBlcy5taW51dGVzU2Nyb2xsID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5keCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uU2Nyb2xsKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGV2ZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21pbnV0ZXNTY3JvbGwnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5keFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBtaW51dGVzIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3BtQW1TY3JvbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vdXNlb3V0KT1cImhvdmVyZWRJdGVtID0gbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb3VzZW92ZXIpPVwiaG92ZXJlZEl0ZW0gPSAndGltZXMnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNjcm9sbCk9XCJvblNjcm9sbCgkZXZlbnQsICdwbUFtU2Nyb2xsJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNjcm9sbF9waWNrZXJzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hlbiBvZiB0aW1lT2ZEYXk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgaW5keCA9ICRpbmRleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrIGluZHhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzY3JvbGxfaXRlbSB0YS1mb250LW1lZGl1bVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYWN0aXZlX2l0ZW0gdGEtZm9udC1ib2xkJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbFR5cGVzLnBtQW1TY3JvbGwgPT09IGluZHgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblNjcm9sbCgkZXZlbnQsICdwbUFtU2Nyb2xsJywgaW5keClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHdoZW4gfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBpY2tlcl9saW5lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYm9yZGVyX2xpbmVcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYm9yZGVyX2xpbmUgbGluZV8yXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGlja2VyX2J1dHRvbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbG9zZVBvcHVwKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInBpY2tfYnV0dG9uIHRhLWZvbnQtYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYW5jZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZXRUaW1lKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInBpY2tfYnV0dG9uIHNldF9idXR0b24gdGEtZm9udC1ib2xkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNldFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
222
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtY3VzdG9tLWRhdGV0aW1lLXBpY2tlcnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtY3VzdG9tLWRhdGV0aW1lLXBpY2tlcnMvY2EtY3VzdG9tLWRhdGV0aW1lLXBpY2tlcnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtY3VzdG9tLWRhdGV0aW1lLXBpY2tlcnMvY2EtY3VzdG9tLWRhdGV0aW1lLXBpY2tlcnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsZ0JBQWdCLEdBR2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsU0FBUztBQUNULE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUs1QixhQUFhO0FBQ2IsT0FBTyxFQUFFLDZDQUE2QyxFQUFFLE1BQU0sNEdBQTRHLENBQUM7QUFFM0ssWUFBWTtBQUNaLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBTXJHLFFBQVE7QUFDUixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUM1RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMxRixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7OztBQWF4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WUksWUFBWTtzQkFBckIsTUFBTTtnQkFHUCxZQUFZO3NCQURYLFNBQVM7dUJBQUMsNkNBQTZDO2dCQUUvQixVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVk7Z0JBQ0ssYUFBYTtzQkFBeEMsU0FBUzt1QkFBQyxlQUFlO2dCQUNELFVBQVU7c0JBQWxDLFNBQVM7dUJBQUMsWUFBWTtnQkFtQ25CLFlBQVk7c0JBRGYsS0FBSztnQkFTRixXQUFXO3NCQURkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIE9uRGVzdHJveSxcbiAgQWZ0ZXJWaWV3SW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbi8vIG1vbWVudFxuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuXG4vLyBzZXJ2aWNlc1xuaW1wb3J0IHsgQ2FsZW5kYXJEYXRlVGltZVBpY2tlclNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2NhbGVuZGFyLWRhdGV0aW1lLXBpY2tlci5zZXJ2aWNlJztcblxuLy8gY29tcG9uZW50c1xuaW1wb3J0IHsgQ2FDdXN0b21EYXRlVGltZVBpY2tlcnNEYXRlQ2FsZW5kYXJzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NhLWN1c3RvbS1kYXRldGltZS1waWNrZXJzLWRhdGUtY2FsZW5kYXJzL2NhLWN1c3RvbS1kYXRldGltZS1waWNrZXJzLWRhdGUtY2FsZW5kYXJzLmNvbXBvbmVudCc7XG5cbi8vIGNvbnN0YW50c1xuaW1wb3J0IHsgQ3VzdG9tRGF0ZXRpbWVQaWNrZXJzQ29uc3RhbnRzIH0gZnJvbSAnLi91dGlscy9jb25zdGFudHMvY3VzdG9tLWRhdGV0aW1lLXBpY2tlcnMuY29uc3RhbnRzJztcblxuLy8gbW9kZWxzXG5pbXBvcnQgeyBJQ2FJbnB1dCB9IGZyb20gJy4uL2NhLWlucHV0L2NvbmZpZy9jYS1pbnB1dC5jb25maWcnO1xuaW1wb3J0IHsgU2Nyb2xsVHlwZSB9IGZyb20gJy4vbW9kZWxzL3Njcm9sbC10eXBlLm1vZGVsJztcblxuLy8gZW51bXNcbmltcG9ydCB7IElucHV0Q29uZmlnTmFtZVN0cmluZ0VudW0gfSBmcm9tICcuLi9jYS1pbnB1dC9lbnVtcy9pbnB1dC1jb25maWctbmFtZS1zdHJpbmcuZW51bSc7XG5pbXBvcnQgeyBDYWxlbmRhclR5cGVTdHJpbmdFbnVtIH0gZnJvbSAnLi9lbnVtcy9jYWxlbmRhci10eXBlLXN0cmluZy5lbnVtJztcbmltcG9ydCB7IENhbGVuZGFyTGlzdFByZXZpZXdTdHJpbmdFbnVtIH0gZnJvbSAnLi9lbnVtcy9jYWxlbmRhci1saXN0LXByZXZpZXctc3RyaW5nLmVudW0nO1xuaW1wb3J0IHsgQ2FsZW5kYXJTY3JvbGxUeXBlU3RyaW5nRW51bSB9IGZyb20gJy4vZW51bXMvY2FsZW5kYXItc2Nyb2xsLXR5cGUtc3RyaW5nLmVudW0nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjYS1jdXN0b20tZGF0ZXRpbWUtcGlja2VycycsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYS1jdXN0b20tZGF0ZXRpbWUtcGlja2Vycy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NhLWN1c3RvbS1kYXRldGltZS1waWNrZXJzLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgQ2FDdXN0b21EYXRlVGltZVBpY2tlcnNEYXRlQ2FsZW5kYXJzQ29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDYUN1c3RvbURhdGV0aW1lUGlja2Vyc0NvbXBvbmVudFxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgZGF0ZVRpbWUhOiBEYXRlO1xuICBAVmlld0NoaWxkKCdyZWYnLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgcmVmITogVmlld0NvbnRhaW5lclJlZjtcbiAgcHVibGljIF9pbnB1dENvbmZpZyE6IElDYUlucHV0O1xuICBASW5wdXQoKSBzZXQgaW5wdXRDb25maWcoY29uZmlnOiBJQ2FJbnB1dCkge1xuICAgIHRoaXMuX2lucHV0Q29uZmlnID0gY29uZmlnO1xuICAgIGlmIChcbiAgICAgIHRoaXMuX2lucHV0Q29uZmlnLm5hbWUgPT09IElucHV0Q29uZmlnTmFtZVN0cmluZ0VudW0uREFURV9QSUNLRVJfQkFOS19DQVJEXG4gICAgKVxuICAgICAgdGhpcy5saXN0UHJldmlldyA9IENhbGVuZGFyTGlzdFByZXZpZXdTdHJpbmdFbnVtLk1PTlRIX0xJU1Q7XG5cbiAgICBpZiAodGhpcy5faW5wdXRDb25maWcubWludXRlc0dhcEZpdmUpXG4gICAgICB0aGlzLnRpbWVNaW51dGVzID0gQ3VzdG9tRGF0ZXRpbWVQaWNrZXJzQ29uc3RhbnRzLnRpbWVNaW51dGVzR2FwRml2ZTtcbiAgICBlbHNlIHRoaXMudGltZU1pbnV0ZXMgPSBDdXN0b21EYXRldGltZVBpY2tlcnNDb25zdGFudHMudGltZU1pbnV0ZXM7XG4gIH1cblxuICBAT3V0cHV0KCkgY2xvc2VQb3BvdmVyOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQFZpZXdDaGlsZChDYUN1c3RvbURhdGVUaW1lUGlja2Vyc0RhdGVDYWxlbmRhcnNDb21wb25lbnQpXG4gIGRhdGVDYWxlbmRhciE6IENhQ3VzdG9tRGF0ZVRpbWVQaWNrZXJzRGF0ZUNhbGVuZGFyc0NvbXBvbmVudDtcbiAgQFZpZXdDaGlsZCgncG1BbVNjcm9sbCcpIHBtQW1TY3JvbGwhOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdtaW51dGVzU2Nyb2xsJykgbWludXRlc1Njcm9sbCE6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ2hvdXJTY3JvbGwnKSBob3VyU2Nyb2xsITogRWxlbWVudFJlZjtcblxuICBwdWJsaWMgc2VsZWN0ZWREYXRlVGltZSE6IHN0cmluZztcbiAgcHVibGljIGNhbGVuZGFyTWFpblR5cGUhOiBzdHJpbmc7XG4gIHB1YmxpYyBvdXRwdXRUeXBlITogKHN0cmluZyB8IG51bWJlcilbXTtcbiAgcHVibGljIGN1cnJlbnRZZWFyOiBudW1iZXIgPSBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCk7XG4gIHB1YmxpYyBjdXJyZW50TW9udGg6IG51bWJlciA9IG5ldyBEYXRlKCkuZ2V0TW9udGgoKTtcbiAgcHVibGljIGN1cnJlbnREYXk6IG51bWJlciA9IG5ldyBEYXRlKCkuZ2V0RGF0ZSgpO1xuICBwdWJsaWMgbGlzdFByZXZpZXc6IHN0cmluZyA9IENhbGVuZGFyTGlzdFByZXZpZXdTdHJpbmdFbnVtLkZVTExfTElTVDtcbiAgcHVibGljIHRpbWVNaW51dGVzITogc3RyaW5nW107XG4gIHB1YmxpYyBtb250aEFycmF5OiBudW1iZXJbXSA9IG5ldyBBcnJheSgxMilcbiAgICAuZmlsbCgwKVxuICAgIC5tYXAoKF8sIGluZHgpID0+IGluZHggKyAxKTtcbiAgcHVibGljIG1vbnRoRGF5TGlzdDogbnVtYmVyW10gPSBuZXcgQXJyYXkoMzEpXG4gICAgLmZpbGwoMClcbiAgICAubWFwKChfLCBpbmR4KSA9PiBpbmR4ICsgMSk7XG4gIHB1YmxpYyB5ZWFyc0xpc3Q6IChzdHJpbmcgfCBudW1iZXIpW10gPSBuZXcgQXJyYXkoMTAwKVxuICAgIC5maWxsKDApXG4gICAgLm1hcCgoXywgaWR4KSA9PiAoaWR4IDwgMTAgPyAnMCcgKyBpZHggOiBpZHgpKTtcbiAgcHVibGljIHNjcm9sbFRpbWVyITogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCBudW1iZXI7XG4gIHB1YmxpYyBob3ZlcmVkSXRlbSE6IHN0cmluZyB8IG51bGw7XG4gIHB1YmxpYyBpc0lucHV0Rm9jdXMhOiBib29sZWFuO1xuICBwdWJsaWMgbW9udGhOYW1lczogc3RyaW5nW10gPSBDdXN0b21EYXRldGltZVBpY2tlcnNDb25zdGFudHMubW9udGhOYW1lcztcbiAgcHVibGljIGhvdXJUaW1lczogbnVtYmVyW10gPSBDdXN0b21EYXRldGltZVBpY2tlcnNDb25zdGFudHMuaG91clRpbWVzO1xuICBwdWJsaWMgc2Nyb2xsVHlwZXM6IFNjcm9sbFR5cGUgPVxuICAgIEN1c3RvbURhdGV0aW1lUGlja2Vyc0NvbnN0YW50cy5kZWZhdWx0U2Nyb2xsVHlwZXM7XG4gIHB1YmxpYyBzZWxlY3RlZFRpbWU6IHN0cmluZyA9XG4gICAgQ3VzdG9tRGF0ZXRpbWVQaWNrZXJzQ29uc3RhbnRzLmRlZmF1bHRTZWxlY3RlZFRpbWU7XG4gIHB1YmxpYyB0aW1lT2ZEYXk6IHN0cmluZ1tdID0gQ3VzdG9tRGF0ZXRpbWVQaWNrZXJzQ29uc3RhbnRzLnRpbWVPZkRheTtcblxuICBwdWJsaWMgcHJldmlvdXNSYW5nZVNpZGUhOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2FsZW5kYXJTZXJ2aWNlOiBDYWxlbmRhckRhdGVUaW1lUGlja2VyU2VydmljZSkgeyB9XG5cbiAgQElucHV0KClcbiAgc2V0IGNhbGVuZGFyVHlwZShjYWxlbmRhclR5cGU6IHN0cmluZykge1xuICAgIHRoaXMuY2FsZW5kYXJNYWluVHlwZSA9IGNhbGVuZGFyVHlwZTtcbiAgICBpZiAoY2FsZW5kYXJUeXBlID09PSBDYWxlbmRhclR5cGVTdHJpbmdFbnVtLlRJTUUpXG4gICAgICB0aGlzLm91dHB1dFR5cGUgPSBDdXN0b21EYXRldGltZVBpY2tlcnNDb25zdGFudHMuZGVmYXVsdE91dHB1dFR5cGVUaW1lO1xuICAgIGVsc2UgdGhpcy5vdXRwdXRUeXBlID0gQ3VzdG9tRGF0ZXRpbWVQaWNrZXJzQ29uc3RhbnRzLmRlZmF1bHRPdXRwdXRUeXBlRGF0ZTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBwbGFjZWhvbGRlcihwbGFjZWhvbGRlcjogc3RyaW5nKSB7XG4gICAgdGhpcy5zZWxlY3RlZERhdGVUaW1lID0gcGxhY2Vob2xkZXI7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXREYXRlQ2hhbmdlZExpc3RlbmVyKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRUaW1lVmFsdWUoKTtcbiAgICB0aGlzLmNoYW5nZU9wZW5lZCgpO1xuICB9XG5cbiAgcHVibGljIGluaXREYXRlQ2hhbmdlZExpc3RlbmVyKCk6IHZvaWQge1xuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmRhdGVDaGFuZ2VkLnN1YnNjcmliZSgoZGF0ZSkgPT4ge1xuICAgICAgaWYgKHRoaXMuY2FsZW5kYXJNYWluVHlwZSAhPT0gQ2FsZW5kYXJUeXBlU3RyaW5nRW51bS5USU1FKSB7XG4gICAgICAgIHRoaXMub3V0cHV0VHlwZVswXSA9IGRhdGVbMF07XG4gICAgICAgIHRoaXMub3V0cHV0VHlwZVsyXSA9IGRhdGVbMV07XG4gICAgICAgIHRoaXMub3V0cHV0VHlwZVs0XSA9IGRhdGVbMl07XG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlVGltZSA9IHRoaXMuY3JlYXRlU3RyaW5nRnJvbU91dHB1dCgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNldFRpbWVWYWx1ZSgpIHtcbiAgICBjb25zdCBkYXRlSW5wdXRBcnJheSA9IG1vbWVudCh0aGlzLmRhdGVUaW1lKS5mb3JtYXQoJ0gvbW0vQScpLnNwbGl0KCcvJyk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnNjcm9sbFR5cGVzLmhvdXJTY3JvbGwgPSB0aGlzLmhvdXJUaW1lcy5pbmRleE9mKFxuICAgICAgICBwYXJzZUludChkYXRlSW5wdXRBcnJheVswXSlcbiAgICAgICk7XG4gICAgICB0aGlzLnNjcm9sbFR5cGVzLm1pbnV0ZXNTY3JvbGwgPSB0aGlzLnRpbWVNaW51dGVzLmluZGV4T2YoXG4gICAgICAgIGRhdGVJbnB1dEFycmF5WzFdXG4gICAgICApO1xuXG4gICAgICB0aGlzLnNjcm9sbFR5cGVzLnBtQW1TY3JvbGwgPSBkYXRlSW5wdXRBcnJheVsyXSA9PT0gJ0FNJyA/IDAgOiAxO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNldExpc3RQcmV2aWV3KHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RQcmV2aWV3ID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgaW5wdXRJbkZvY3VzKCk6IHZvaWQge1xuICAgIHRoaXMuaXNJbnB1dEZvY3VzID0gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBpbnB1dEJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy5pc0lucHV0Rm9jdXMgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBjaGFuZ2VPcGVuZWQoKTogdm9pZCB7XG4gICAgLy8gdGhpcy5pc0lucHV0Rm9jdXMgPSBlO1xuICAgIC8vIGlmIChlKSB7XG4gICAgaWYgKHRoaXMuY2FsZW5kYXJNYWluVHlwZSA9PT0gQ2FsZW5kYXJUeXBlU3RyaW5nRW51bS5USU1FKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5ob3VyU2Nyb2xsLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wID1cbiAgICAgICAgICB0aGlzLnNjcm9sbFR5cGVzLmhvdXJTY3JvbGwgKiAyMjtcbiAgICAgICAgdGhpcy5taW51dGVzU2Nyb2xsLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wID1cbiAgICAgICAgICB0aGlzLnNjcm9sbFR5cGVzLm1pbnV0ZXNTY3JvbGwgKiAyMjtcbiAgICAgICAgdGhpcy5wbUFtU2Nyb2xsLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wID1cbiAgICAgICAgICB0aGlzLnNjcm9sbFR5cGVzLnBtQW1TY3JvbGwgKiAyMjtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgdGVzdCA9IGAke3RoaXMuZGF0ZVRpbWUuZ2V0TW9udGgoKSArIDFcbiAgICAgICAgfS8ke3RoaXMuZGF0ZVRpbWUuZ2V0RGF0ZSgpfS8ke3RoaXMuZGF0ZVRpbWUuZ2V0RnVsbFllYXIoKX1gO1xuXG4gICAgICB0aGlzLmNhbGVuZGFyU2VydmljZS5zY3JvbGxUb0RhdGUubmV4dChcbiAgICAgICAgYCR7dGhpcy5kYXRlVGltZS5nZXRNb250aCgpICsgMVxuICAgICAgICB9LyR7dGhpcy5kYXRlVGltZS5nZXREYXRlKCl9LyR7dGhpcy5kYXRlVGltZS5nZXRGdWxsWWVhcigpfWBcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNldFRpbWUoKTogdm9pZCB7XG4gICAgdGhpcy5vdXRwdXRUeXBlWzBdID0gdGhpcy5ob3VyVGltZXNbdGhpcy5zY3JvbGxUeXBlcy5ob3VyU2Nyb2xsXTtcbiAgICB0aGlzLm91dHB1dFR5cGVbMl0gPSB0aGlzLnRpbWVNaW51dGVzW3RoaXMuc2Nyb2xsVHlwZXMubWludXRlc1Njcm9sbF07XG4gICAgdGhpcy5vdXRwdXRUeXBlWzRdID0gdGhpcy50aW1lT2ZEYXlbdGhpcy5zY3JvbGxUeXBlcy5wbUFtU2Nyb2xsXTtcblxuICAgIHRoaXMuc2VsZWN0ZWREYXRlVGltZSA9IHRoaXMuY3JlYXRlU3RyaW5nRnJvbU91dHB1dCgpO1xuXG4gICAgbGV0IGN1cnJlbnREYXRlID0gbW9tZW50KCkuZm9ybWF0KCdNTS9ERC9ZWVlZJyk7XG5cbiAgICB0aGlzLmNhbGVuZGFyU2VydmljZS5kYXRlQ2hhbmdlZC5uZXh0KFxuICAgICAgbmV3IERhdGUoY3VycmVudERhdGUgKyAnICcgKyB0aGlzLnNlbGVjdGVkRGF0ZVRpbWUpXG4gICAgKTtcblxuICAgIHRoaXMuY2xvc2VQb3BvdmVyLmVtaXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXREZWZhdWx0VGltZSgpOiB2b2lkIHtcbiAgICBsZXQgY3VycmVudERhdGUgPSBtb21lbnQoKS5mb3JtYXQoJ01NL0REL1lZWVknKTtcbiAgICB0aGlzLmNhbGVuZGFyU2VydmljZS5kYXRlQ2hhbmdlZC5uZXh0KG5ldyBEYXRlKGN1cnJlbnREYXRlICsgJyAwODowMCcpKTtcblxuICAgIHRoaXMuY2xvc2VQb3BvdmVyLmVtaXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBjbG9zZVBvcHVwKCk6IHZvaWQge1xuICAgIHRoaXMuY2xvc2VQb3BvdmVyLmVtaXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBjcmVhdGVTdHJpbmdGcm9tT3V0cHV0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMub3V0cHV0VHlwZS5qb2luKCcnKTtcbiAgfVxuXG4gIHB1YmxpYyBvblNjcm9sbChcbiAgICBldmVudDogRXZlbnQsXG4gICAgdHlwZToga2V5b2YgU2Nyb2xsVHlwZSxcbiAgICBpbmRleDogbnVtYmVyIHwgbnVsbCA9IG51bGxcbiAgKTogdm9pZCB7XG4gICAgY29uc3Qgc2Nyb2xGcm9tVG9wID0gTWF0aC5mbG9vcigoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5zY3JvbGxUb3ApO1xuICAgIGNvbnN0IHNjcm9sbEluZGV4ID0gaW5kZXggPT09IG51bGwgPyBNYXRoLmZsb29yKHNjcm9sRnJvbVRvcCAvIDIyKSA6IGluZGV4O1xuICAgIGNvbnN0IHNjcm9sbFJlbWFpbmluZyA9IHNjcm9sRnJvbVRvcCAlIDIyO1xuICAgIGNsZWFySW50ZXJ2YWwodGhpcy5zY3JvbGxUaW1lcik7XG4gICAgdGhpcy5zY3JvbGxUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHNjcm9sbFJlbWFpbmluZyA8IDExICYmIGluZGV4ID09PSBudWxsKSB7XG4gICAgICAgIChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLnNjcm9sbFRvcCA9IHNjcm9sbEluZGV4ICogMjI7XG4gICAgICAgIHRoaXMuc2Nyb2xsVHlwZXNbdHlwZV0gPSBzY3JvbGxJbmRleDtcbiAgICAgIH0gZWxzZSBpZiAoaW5kZXggIT09IG51bGwpIHtcbiAgICAgICAgKDxIVE1MRWxlbWVudD4oPEhUTUxFbGVtZW50PmV2ZW50LnRhcmdldCkucGFyZW50Tm9kZSkuc2Nyb2xsVG9wID1cbiAgICAgICAgICBzY3JvbGxJbmRleCAqIDIyO1xuICAgICAgICB0aGlzLnNjcm9sbFR5cGVzW3R5cGVdID0gc2Nyb2xsSW5kZXg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5zY3JvbGxUb3AgPSAoc2Nyb2xsSW5kZXggKyAxKSAqIDIyO1xuICAgICAgICB0aGlzLnNjcm9sbFR5cGVzW3R5cGVdID0gc2Nyb2xsSW5kZXggKyAxO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmNoZWNrRm9yU2Nyb2xsZWRUeXBlKHR5cGUpO1xuICAgIH0sIDIwMCk7XG4gIH1cblxuICBwdWJsaWMgY2hlY2tGb3JTY3JvbGxlZFR5cGUodHlwZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHR5cGUgPT09IENhbGVuZGFyU2Nyb2xsVHlwZVN0cmluZ0VudW0uSE9VUlNfU0NST0xMKSB7XG4gICAgICBpZiAodGhpcy5zY3JvbGxUeXBlc1t0eXBlXSA+PSAxMikge1xuICAgICAgICB0aGlzLnBtQW1TY3JvbGwubmF0aXZlRWxlbWVudC5zY3JvbGxUb3AgPSAyMjtcbiAgICAgICAgdGhpcy5zY3JvbGxUeXBlcy5wbUFtU2Nyb2xsID0gMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucG1BbVNjcm9sbC5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcCA9IDA7XG4gICAgICAgIHRoaXMuc2Nyb2xsVHlwZXMucG1BbVNjcm9sbCA9IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHR5cGUgPT09IENhbGVuZGFyU2Nyb2xsVHlwZVN0cmluZ0VudW0uUE1fQU1fU0NST0xMKSB7XG4gICAgICBpZiAodGhpcy5zY3JvbGxUeXBlc1t0eXBlXSA9PT0gMCkge1xuICAgICAgICBpZiAodGhpcy5zY3JvbGxUeXBlcy5ob3VyU2Nyb2xsID49IDEyKSB7XG4gICAgICAgICAgdGhpcy5ob3VyU2Nyb2xsLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wID1cbiAgICAgICAgICAgICh0aGlzLnNjcm9sbFR5cGVzLmhvdXJTY3JvbGwgLSAxMikgKiAyMjtcbiAgICAgICAgICB0aGlzLnNjcm9sbFR5cGVzLmhvdXJTY3JvbGwgPSBNYXRoLmZsb29yKFxuICAgICAgICAgICAgdGhpcy5zY3JvbGxUeXBlcy5ob3VyU2Nyb2xsIC0gMTJcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAodGhpcy5zY3JvbGxUeXBlcy5ob3VyU2Nyb2xsIDwgMTIpIHtcbiAgICAgICAgICB0aGlzLmhvdXJTY3JvbGwubmF0aXZlRWxlbWVudC5zY3JvbGxUb3AgPVxuICAgICAgICAgICAgKHRoaXMuc2Nyb2xsVHlwZXMuaG91clNjcm9sbCArIDEyKSAqIDIyO1xuICAgICAgICAgIHRoaXMuc2Nyb2xsVHlwZXMuaG91clNjcm9sbCA9IE1hdGguZmxvb3IoXG4gICAgICAgICAgICB0aGlzLnNjcm9sbFR5cGVzLmhvdXJTY3JvbGwgKyAxMlxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdGVkVGltZSA9IGAke3RoaXMuaG91clRpbWVzW3RoaXMuc2Nyb2xsVHlwZXMuaG91clNjcm9sbF19OiR7dGhpcy50aW1lTWludXRlc1t0aGlzLnNjcm9sbFR5cGVzLm1pbnV0ZXNTY3JvbGxdXG4gICAgICB9ICR7dGhpcy50aW1lT2ZEYXlbdGhpcy5zY3JvbGxUeXBlcy5wbUFtU2Nyb2xsXX1gO1xuICB9XG5cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmxpc3RQcmV2aWV3ID0gQ2FsZW5kYXJMaXN0UHJldmlld1N0cmluZ0VudW0uRlVMTF9MSVNUO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwidGVtcF9pbnBfaG9sZGVyXCI+XG4gICAgPGRpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBpY2tlcnNfaG9sZGVyIGRhcmtfcGlja2VyXCI+XG4gICAgICAgICAgICBAaWYgKGNhbGVuZGFyTWFpblR5cGUgPT09ICdkYXRlJykge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXRlX3BpY2tlclwiPlxuICAgICAgICAgICAgICAgICAgICA8YXBwLWNhLWN1c3RvbS1kYXRldGltZS1waWNrZXJzLWRhdGUtY2FsZW5kYXJzXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGlzdFByZXZpZXddPVwibGlzdFByZXZpZXdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2RhdGVUaW1lXT1cImRhdGVUaW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpc01vbnRoQW5kWWVhck9ubHldPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX2lucHV0Q29uZmlnLm5hbWUgPT09ICdkYXRlcGlja2VyQmFua0NhcmQnXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKHNldExpc3RQcmV2aWV3VmFsdWUpPVwic2V0TGlzdFByZXZpZXcoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgID48L2FwcC1jYS1jdXN0b20tZGF0ZXRpbWUtcGlja2Vycy1kYXRlLWNhbGVuZGFycz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoY2FsZW5kYXJNYWluVHlwZSA9PT0gJ3RpbWUnKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpbWVfcGlja2VyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aW1lX3BpY2tlcl9oZWFkIGQtZmxleFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkX3RpbWUgdGEtZm9udC1ib2xkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgc2VsZWN0ZWRUaW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNlbF9ub3cgdGEtZm9udC1ib2xkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2V0RGVmYXVsdFRpbWUoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGltZV9waWNrZXJfYm9keVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBpY2tlcl9ib2R5X2hlYWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGEtZm9udC1ib2xkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJob3ZlcmVkSXRlbSA9PT0gJ2hvdXJzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIb3VyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRhLWZvbnQtYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiaG92ZXJlZEl0ZW0gPT09ICdtaW51dGVzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNaW51dGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGEtZm9udC1ib2xkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJob3ZlcmVkSXRlbSA9PT0gJ3RpbWVzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBTS9QTVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGlja2VyX2JvZHlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNob3VyU2Nyb2xsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb3VzZW91dCk9XCJob3ZlcmVkSXRlbSA9IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW91c2VvdmVyKT1cImhvdmVyZWRJdGVtID0gJ2hvdXJzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzY3JvbGwpPVwib25TY3JvbGwoJGV2ZW50LCAnaG91clNjcm9sbCcpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzY3JvbGxfcGlja2Vyc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvdXIgb2YgaG91clRpbWVzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGluZHggPSAkaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFjayBpbmR4XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2Nyb2xsX2l0ZW0gdGEtZm9udC1tZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FjdGl2ZV9pdGVtIHRhLWZvbnQtYm9sZCc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxUeXBlcy5ob3VyU2Nyb2xsID09PSBpbmR4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25TY3JvbGwoJGV2ZW50LCAnaG91clNjcm9sbCcsIGluZHgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBob3VyIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI21pbnV0ZXNTY3JvbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vdXNlb3V0KT1cImhvdmVyZWRJdGVtID0gbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb3VzZW92ZXIpPVwiaG92ZXJlZEl0ZW0gPSAnbWludXRlcydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2Nyb2xsKT1cIm9uU2Nyb2xsKCRldmVudCwgJ21pbnV0ZXNTY3JvbGwnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2Nyb2xsX3BpY2tlcnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW51dGVzIG9mIHRpbWVNaW51dGVzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGluZHggPSAkaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFjayBpbmR4XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2Nyb2xsX2l0ZW0gdGEtZm9udC1tZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FjdGl2ZV9pdGVtIHRhLWZvbnQtYm9sZCc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxUeXBlcy5taW51dGVzU2Nyb2xsID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5keCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uU2Nyb2xsKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGV2ZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21pbnV0ZXNTY3JvbGwnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5keFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBtaW51dGVzIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3BtQW1TY3JvbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vdXNlb3V0KT1cImhvdmVyZWRJdGVtID0gbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb3VzZW92ZXIpPVwiaG92ZXJlZEl0ZW0gPSAndGltZXMnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNjcm9sbCk9XCJvblNjcm9sbCgkZXZlbnQsICdwbUFtU2Nyb2xsJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNjcm9sbF9waWNrZXJzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hlbiBvZiB0aW1lT2ZEYXk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgaW5keCA9ICRpbmRleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrIGluZHhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzY3JvbGxfaXRlbSB0YS1mb250LW1lZGl1bVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYWN0aXZlX2l0ZW0gdGEtZm9udC1ib2xkJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbFR5cGVzLnBtQW1TY3JvbGwgPT09IGluZHgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblNjcm9sbCgkZXZlbnQsICdwbUFtU2Nyb2xsJywgaW5keClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHdoZW4gfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBpY2tlcl9saW5lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYm9yZGVyX2xpbmVcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYm9yZGVyX2xpbmUgbGluZV8yXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGlja2VyX2J1dHRvbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbG9zZVBvcHVwKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInBpY2tfYnV0dG9uIHRhLWZvbnQtYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYW5jZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZXRUaW1lKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInBpY2tfYnV0dG9uIHNldF9idXR0b24gdGEtZm9udC1ib2xkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNldFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -234,4 +234,4 @@ export class CaInputBaseHelpersComponent {
234
234
  return array.includes(name);
235
235
  }
236
236
  }
237
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtaW5wdXQtYmFzZS1oZWxwcmVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtaW5wdXQvYmFzZS1jbGFzc2VzL2NhLWlucHV0LWJhc2UtaGVscHJlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsbUJBQW1CLEVBQW1CLE1BQU0sVUFBVSxDQUFDO0FBRWhFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBRS9GLE1BQU0sT0FBZ0IsMkJBQTJCO0lBQWpEO1FBU0ksbUJBQW1CO1FBQ1osZ0NBQTJCLEdBQVcsQ0FBQyxDQUFDO1FBQ3hDLG1CQUFjLEdBQVcsQ0FBQyxDQUFDO1FBQzNCLHdCQUFtQixHQUFXLENBQUMsQ0FBQztRQW1VdkMsYUFBYTtJQUNqQixDQUFDO0lBaFVHLHFDQUFxQztJQUM5QiwwQkFBMEIsQ0FBQyxLQUFVO1FBQ3hDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBaUMsQ0FBQztRQUVsRSxzQkFBc0I7UUFDdEIsTUFBTSxjQUFjLEdBQUcsWUFBWSxDQUFDLGNBQXdCLENBQUM7UUFFN0QseURBQXlEO1FBQ3pELElBQ0ksY0FBYyxHQUFHLENBQUM7WUFDbEIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ2xELENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQ2hELENBQUM7WUFDQyxPQUFPO1FBQ1gsQ0FBQztRQUVELG9HQUFvRztRQUNwRyxJQUNJLEtBQUssQ0FBQyxHQUFHLEtBQUssR0FBRztZQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsY0FBYyxH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LFlBQVksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDO1lBQzVDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQ2YsQ0FBQztJQUNOLENBQUM7SUFFRCxhQUFhO0lBRWIsVUFBVTtJQUNILGNBQWM7UUFDakIsSUFBSSxDQUFDLG9CQUFvQixHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDeEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFTLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUMzQyxvQ0FBb0M7WUFDcEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDL0IsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1osQ0FBQztJQUNELGFBQWE7SUFFYix5QkFBeUI7SUFDbEIsY0FBYyxDQUFDLEtBQWUsRUFBRSxJQUFZO1FBQy9DLE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBa0IsSUFBSSxDQUFDLENBQUM7SUFDakQsQ0FBQztDQUVKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElucHV0Q29tbWFuZHNBY3Rpb24sIElucHV0U3RyaW5nRW51bSB9IGZyb20gJy4uL2VudW1zJztcbmltcG9ydCB7IElDYUlucHV0IH0gZnJvbSAnLi4vY29uZmlnJztcbmltcG9ydCB7IE1ldGhvZHNDYWxjdWxhdGlvbnNIZWxwZXIgfSBmcm9tICcuLi8uLi8uLi91dGlscy9oZWxwZXJzL21ldGhvZHMtY2FsY3VsYXRpb25zLmhlbHBlcic7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDYUlucHV0QmFzZUhlbHBlcnNDb21wb25lbnQge1xuICAgIGFic3RyYWN0IGlucHV0OiBFbGVtZW50UmVmO1xuXG4gICAgYWJzdHJhY3QgbGFzdEN1cnNvclNwYWNlUG9zaXRpb246IG51bWJlcjtcbiAgICBhYnN0cmFjdCBzdXBlckNvbnRyb2w6IE5nQ29udHJvbDtcbiAgICBhYnN0cmFjdCBfaW5wdXRDb25maWc6IElDYUlucHV0O1xuXG4gICAgYWJzdHJhY3QgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmO1xuXG4gICAgLy8gTnVtYmVyIG9mIHBvaW50c1xuICAgIHB1YmxpYyBudW1iZXJPZkNvbnNlY3V0aXZlbHlQb2ludHM6IG51bWJlciA9IDA7XG4gICAgcHVibGljIG51bWJlck9mUG9pbnRzOiBudW1iZXIgPSAwO1xuICAgIHB1YmxpYyBvbmVTcGFjZU9ubHlDb3VudGVyOiBudW1iZXIgPSAwO1xuXG4gICAgcHVibGljIGlucHV0Q29tbWFuZHNUaW1lb3V0ITogTm9kZUpTLlRpbWVvdXQgfCBudW1iZXI7XG5cbiAgICAvLyAjcmVnaW9uIERpc2FibGVDb25zZWN1dGl2ZWx5U3BhY2VzXG4gICAgcHVibGljIGRpc2FibGVDb25zZWN1dGl2ZWx5U3BhY2VzKGV2ZW50OiBhbnkpIHtcbiAgICAgICAgY29uc3QgaW5wdXRFbGVtZW50ID0gdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG5cbiAgICAgICAgLy8gR2V0IGN1cnNvciBwb3NpdGlvblxuICAgICAgICBjb25zdCBjdXJzb3JQb3NpdGlvbiA9IGlucHV0RWxlbWVudC5zZWxlY3Rpb25TdGFydCBhcyBudW1iZXI7XG5cbiAgICAgICAgLy8gSWYgdGhlIGN1cnNvciBpcyBpbiB0aGUgbWlkZGxlIG9mIGEgd29yZCwgYWxsb3cgc3BhY2VzXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGN1cnNvclBvc2l0aW9uID4gMCAmJlxuICAgICAgICAgICAgIS9cXHMvLnRlc3QoaW5wdXRFbGVtZW50LnZhbHVlW2N1cnNvclBvc2l0aW9uIC0gMV0pICYmXG4gICAgICAgICAgICAhL1xccy8udGVzdChpbnB1dEVsZW1lbnQudmFsdWVbY3Vyc29yUG9zaXRpb25dKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIHRoZSB1c2VyIGlzIHR5cGluZyBhIHNwYWNlIGFuZCB0aGUgcHJldmlvdXMgY2hhcmFjdGVyIGlzIGEgc3BhY2UsIHByZXZlbnQgdGhlIGRlZmF1bHQgYmVoYXZpb3JcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgZXZlbnQua2V5ID09PSAnICcgJiZcbiAgICAgICAgICAgIC9cXHMvLnRlc3QoaW5wdXRFbGVtZW50LnZhbHVlW2N1cnNvclBvc2l0aW9uIC0gMV0pXG4gICAgICAgICkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFNhdmUgdGhlIGN1cnNvciBwb3NpdGlvbiBmb3IgdGhlIG5leHQgaW5wdXQgZXZlbnRcbiAgICAgICAgdGhpcy5sYXN0Q3Vyc29yU3BhY2VQb3NpdGlvbiA9IGN1cnNvclBvc2l0aW9uO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb25cblxuICAgIC8vICNyZWdpb24gRGlzYWJsZUNvbnNlY3V0aXZlbHlQb2ludHNcblxuICAgIHB1YmxpYyBkaXNhYmxlQ29uc2VjdXRpdmVseVBvaW50cyhldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQgfCBib29sZWFuIHtcbiAgICAgICAgaWYgKC9eWy5dKiQvLnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZShldmVudC5jaGFyQ29kZSkpKSB7XG4gICAgICAgICAgICB0aGlzLm51bWJlck9mQ29uc2VjdXRpdmVseVBvaW50cysrO1xuICAgICAgICAgICAgaWYgKHRoaXMubnVtYmVyT2ZDb25zZWN1dGl2ZWx5UG9pbnRzID4gMSkge1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5udW1iZXJPZkNvbnNlY3V0aXZlbHlQb2ludHMgPSAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvblxuXG4gICAgLy8gI3JlZ2lvbiBEaXNhYmxlTXVsdGlwbGVQb2ludHNcblxuICAgIHB1YmxpYyBkaXNhYmxlTXVsdGlwbGVQb2ludHMoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHwgYm9vbGVhbiB7XG4gICAgICAgIGlmICgvXlsuXSokLy50ZXN0KFN0cmluZy5mcm9tQ2hhckNvZGUoZXZlbnQuY2hhckNvZGUpKSkge1xuICAgICAgICAgICAgaWYgKCF0aGlzLnN1cGVyQ29udHJvbC5jb250cm9sPy52YWx1ZSkge1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodGhpcy5zdXBlckNvbnRyb2wuY29udHJvbD8udmFsdWU/LnRvU3RyaW5nKCkuaW5jbHVkZXMoJy4nKSkge1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLm51bWJlck9mUG9pbnRzKys7XG4gICAgICAgICAgICBpZiAodGhpcy5udW1iZXJPZlBvaW50cyA+IDEpIHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubnVtYmVyT2ZQb2ludHMgPSAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gZW5kcmVnaW9uXG5cbiAgICAvLyAjcmVnaW9uIEVuYWJsZU9uZVNwYWNlT25seVxuICAgIHB1YmxpYyBlbmFibGVPbmVTcGFjZU9ubHkoZXZlbnQ6IGFueSkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICAvXlxccyokLy50ZXN0KFN0cmluZy5mcm9tQ2hhckNvZGUoZXZlbnQuY2hhckNvZGUpKSB8fFxuICAgICAgICAgICAgdGhpcy5zdXBlckNvbnRyb2wuY29udHJvbD8udmFsdWU/LmluY2x1ZGVzKCcgJylcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLm9uZVNwYWNlT25seUNvdW50ZXIrKztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMub25lU3BhY2VPbmx5Q291bnRlciA+IDEgJiZcbiAgICAgICAgICAgIC9eXFxzKiQvLnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZShldmVudC5jaGFyQ29kZSkpXG4gICAgICAgICkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb25cblxuICAgIC8vICNyZWdpb24gSGFuZGxlUG1JbmNyZW1lbnREZWNyZW1lbnRcbiAgICBwdWJsaWMgaGFuZGxlUG1JbmNyZW1lbnREZWNyZW1lbnQoYWN0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBNZXRob2RzQ2FsY3VsYXRpb25zSGVscGVyLmNvbnZlcnRUaG91c2FuU2VwSW5OdW1iZXIoXG4gICAgICAgICAgICB0aGlzLnN1cGVyQ29udHJvbC5jb250cm9sPy52YWx1ZVxuICAgICAgICApO1xuXG4gICAgICAgIHN3aXRjaCAoYWN0aW9uKSB7XG4gICAgICAgICAgICBjYXNlIElucHV0Q29tbWFuZHNBY3Rpb24uREVDUkVNRU5UOlxuICAgICAgICAgICAgICAgIHRoaXMuZGVjcmVtZW50UG1WYWx1ZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIElucHV0Q29tbWFuZHNBY3Rpb24uSU5DUkVNRU5UOlxuICAgICAgICAgICAgICAgIHRoaXMuaW5jcmVtZW50UG1WYWx1ZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIElucHV0Q29tbWFuZHNBY3Rpb24uUkVTRVQ6XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNldFBtVmFsdWUoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNldElucHV0Q3Vyc29yQXRUaGVFbmQodGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uXG5cbiAgICAvLyAjcmVnaW9uIERlY3JlbWVudFBtVmFsdWVcbiAgICBwcml2YXRlIGRlY3JlbWVudFBtVmFsdWUodmFsdWU6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAodmFsdWUgPj0gMTAwMDAgJiYgdmFsdWUgPCAyMDAwMCkge1xuICAgICAgICAgICAgdGhpcy5zdXBlckNvbnRyb2wuY29udHJvbD8ucGF0Y2hWYWx1ZShcbiAgICAgICAgICAgICAgICBNZXRob2RzQ2FsY3VsYXRpb25zSGVscGVyLmNvbnZlcnROdW1iZXJJblRob3VzYW5kU2VwKFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZSAtIDEwMDBcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2UgaWYgKHZhbHVlID49IDIwMDAxICYmIHZhbHVlIDwgNTAwMDApIHtcbiAgICAgICAgICAgIHRoaXMuc3VwZXJDb250cm9sLmNvbnRyb2w/LnBhdGNoVmFsdWUoXG4gICAgICAgICAgICAgICAgTWV0aG9kc0NhbGN1bGF0aW9uc0hlbHBlci5jb252ZXJ0TnVtYmVySW5UaG91c2FuZFNlcChcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgLSAzMDAwXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZSA+PSA1MDAwMSAmJiB2YWx1ZSA8IDEwMDAwMCkge1xuICAgICAgICAgICAgdGhpcy5zdXBlckNvbnRyb2wuY29udHJvbD8ucGF0Y2hWYWx1ZShcbiAgICAgICAgICAgICAgICBNZXRob2RzQ2FsY3VsYXRpb25zSGVscGVyLmNvbnZlcnROdW1iZXJJblRob3VzYW5kU2VwKFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZSAtIDUwMDBcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2UgaWYgKHZhbHVlID49IDEwMDAwKSB7XG4gICAgICAgICAgICB0aGlzLnN1cGVyQ29udHJvbC5jb250cm9sPy5wYXRjaFZhbHVlKFxuICAgICAgICAgICAgICAgIE1ldGhvZHNDYWxjdWxhdGlvbnNIZWxwZXIuY29udmVydE51bWJlckluVGhvdXNhbmRTZXAoXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlIC0gMTAwMDBcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2UgaWYgKHZhbHVlID49IDEwMDApIHtcbiAgICAgICAgICAgIHRoaXMuc3VwZXJDb250cm9sLmNvbnRyb2w/LnBhdGNoVmFsdWUoXG4gICAgICAgICAgICAgICAgTWV0aG9kc0NhbGN1bGF0aW9uc0hlbHBlci5jb252ZXJ0TnVtYmVySW5UaG91c2FuZFNlcChcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgLSA1MDBcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vICNlbmRyZWdpb25cblxuICAgIC8vICNyZWdpb24gUmVzZXRQbVZhbHVlXG4gICAgcHJpdmF0ZSByZXNldFBtVmFsdWUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9pbnB1dENvbmZpZz8uZGVmYXVsdFZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnN1cGVyQ29udHJvbC5jb250cm9sPy5wYXRjaFZhbHVlKFxuICAgICAgICAgICAgICAgIHRoaXMuX2lucHV0Q29uZmlnPy5kZWZhdWx0VmFsdWVcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uXG5cbiAgICAvLyAjcmVnaW9uIFJlc2V0UG1WYWx1ZVxuICAgIHByaXZhdGUgaW5jcmVtZW50UG1WYWx1ZSh2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmICh2YWx1ZSA+IDEwMDAwICYmIHZhbHVlIDwgMjAwMDApIHtcbiAgICAgICAgICAgIHRoaXMuc3VwZXJDb250cm9sLmNvbnRyb2w/LnBhdGNoVmFsdWUoXG4gICAgICAgICAgICAgICAgTWV0aG9kc0NhbGN1bGF0aW9uc0hlbHBlci5jb252ZXJ0TnVtYmVySW5UaG91c2FuZFNlcChcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgKyAxMDAwXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZSA+PSAyMDAwMSAmJiB2YWx1ZSA8IDUwMDAwKSB7XG4gICAgICAgICAgICB0aGlzLnN1cGVyQ29udHJvbC5jb250cm9sPy5wYXRjaFZhbHVlKFxuICAgICAgICAgICAgICAgIE1ldGhvZHNDYWxjdWxhdGlvbnNIZWxwZXIuY29udmVydE51bWJlckluVGhvdXNhbmRTZXAoXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlICsgMzAwMFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSBpZiAodmFsdWUgPj0gNTAwMDEgJiYgdmFsdWUgPCAxMDAwMDApIHtcbiAgICAgICAgICAgIHRoaXMuc3VwZXJDb250cm9sLmNvbnRyb2w/LnBhdGNoVmFsdWUoXG4gICAgICAgICAgICAgICAgTWV0aG9kc0NhbGN1bGF0aW9uc0hlbHBlci5jb252ZXJ0TnVtYmVySW5UaG91c2FuZFNlcChcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgKyA1MDAwXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZSA+PSAxMDAwMCkge1xuICAgICAgICAgICAgdGhpcy5zdXBlckNvbnRyb2wuY29udHJvbD8ucGF0Y2hWYWx1ZShcbiAgICAgICAgICAgICAgICBNZXRob2RzQ2FsY3VsYXRpb25zSGVscGVyLmNvbnZlcnROdW1iZXJJblRob3VzYW5kU2VwKFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZSArIDEwMDAwXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3VwZXJDb250cm9sLmNvbnRyb2w/LnBhdGNoVmFsdWUoXG4gICAgICAgICAgICAgICAgTWV0aG9kc0NhbGN1bGF0aW9uc0hlbHBlci5jb252ZXJ0TnVtYmVySW5UaG91c2FuZFNlcChcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgKyA1MDBcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vICNlbmRyZWdpb25cblxuICAgIC8vICNyZWdpb24gU2V0SW5wdXRDdXJzb3JBdFRoZUVuZFxuICAgIHB1YmxpYyBzZXRJbnB1dEN1cnNvckF0VGhlRW5kKGlucHV0OiBhbnksIHRpbWU6IG51bWJlciA9IDEyMCk6IHZvaWQge1xuICAgICAgICBjb25zdCBzZWxlY3Rpb25FbmQgPSBpbnB1dC5zZWxlY3Rpb25FbmQ7XG4gICAgICAgIGlmIChpbnB1dC5zZXRTZWxlY3Rpb25SYW5nZSkge1xuICAgICAgICAgICAgaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2Uoc2VsZWN0aW9uRW5kLCBzZWxlY3Rpb25FbmQpO1xuICAgICAgICB9XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgaW5wdXQuZm9jdXMoKTtcbiAgICAgICAgfSwgdGltZSk7XG4gICAgfVxuICAgIC8vICNlbmRyZWdpb25cblxuICAgIC8vICNyZWdpb24gSGFuZGxlSW5jcmVtZW50RGVjcmVtZW50XG4gICAgcHVibGljIGhhbmRsZUluY3JlbWVudERlY3JlbWVudChhY3Rpb246IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5pbnB1dENvbW1hbmRzVGltZW91dCk7XG4gICAgICAgIHN3aXRjaCAoYWN0aW9uKSB7XG4gICAgICAgICAgICBjYXNlIElucHV0Q29tbWFuZHNBY3Rpb24uREVDUkVNRU5UOlxuICAgICAgICAgICAgICAgIHRoaXMuc3VwZXJDb250cm9sLmNvbnRyb2w/LnBhdGNoVmFsdWUoXG4gICAgICAgICAgICAgICAgICAgICh0aGlzLnN1cGVyQ29udHJvbC5jb250cm9sPy52YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgPyBwYXJzZUludCh0aGlzLnN1cGVyQ29udHJvbC5jb250cm9sPy52YWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIDogMCkgLSAxXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgSW5wdXRDb21tYW5kc0FjdGlvbi5JTkNSRU1FTlQ6XG4gICAgICAgICAgICAgICAgdGhpcy5zdXBlckNvbnRyb2wuY29udHJvbD8ucGF0Y2hWYWx1ZShcbiAgICAgICAgICAgICAgICAgICAgKHRoaXMuc3VwZXJDb250cm9sLmNvbnRyb2w/LnZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHBhcnNlSW50KHRoaXMuc3VwZXJDb250cm9sLmNvbnRyb2w/LnZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiAwKSArIDFcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2V0SW5wdXRDdXJzb3JBdFRoZUVuZCh0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cbiAgICAvLyAjZW5kcmVnaW9uXG5cbiAgICAvLyAjcmVnaW9uXG5cbiAgICBwdWJsaWMgaGFuZGxlTW9udGhzKGFjdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLmlucHV0Q29tbWFuZHNUaW1lb3V0KTtcblxuICAgICAgICBzd2l0Y2ggKGFjdGlvbikge1xuICAgICAgICAgICAgY2FzZSBJbnB1dENvbW1hbmRzQWN0aW9uLk1JTlVTOlxuICAgICAgICAgICAgICAgIHRoaXMuZGVjcmVtZW50TW9udGgoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgSW5wdXRDb21tYW5kc0FjdGlvbi5QTFVTOlxuICAgICAgICAgICAgICAgIHRoaXMuaW5jcmVtZW50TW9udGgoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBwYXJzZUludCh0aGlzLnN1cGVyQ29udHJvbC5jb250cm9sPy52YWx1ZSkgPCAxIHx8XG4gICAgICAgICAgICBwYXJzZUludCh0aGlzLnN1cGVyQ29udHJvbC5jb250cm9sPy52YWx1ZSkgPiAxMlxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuc3VwZXJDb250cm9sLmNvbnRyb2w/LnNldEVycm9ycyh7IGludmFsaWQ6IHRydWUgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnN1cGVyQ29udHJvbC5jb250cm9sPy5zZXRFcnJvcnMobnVsbCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNldElucHV0Q3Vyc29yQXRUaGVFbmQodGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG4gICAgLy8gI2VuZHJlZ2lvblxuXG4gICAgLy8gI3JlZ2lvbiBEZWNyZW1lbnRNb250aFxuICAgIHByaXZhdGUgZGVjcmVtZW50TW9udGgoKTogdm9pZCB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHBhcnNlSW50KHRoaXMuc3VwZXJDb250cm9sLmNvbnRyb2w/LnZhbHVlKSA9PT0gMSB8fFxuICAgICAgICAgICAgIXRoaXMuc3VwZXJDb250cm9sLmNvbnRyb2w/LnZhbHVlXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5ibHVyT25Db21tYW5kcygpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zdXBlckNvbnRyb2wuY29udHJvbD8ucGF0Y2hWYWx1ZShcbiAgICAgICAgICAgICh0aGlzLnN1cGVyQ29udHJvbC5jb250cm9sPy52YWx1ZVxuICAgICAgICAgICAgICAgID8gcGFyc2VJbnQodGhpcy5zdXBlckNvbnRyb2wuY29udHJvbD8udmFsdWUpXG4gICAgICAgICAgICAgICAgOiAwKSAtIDFcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uXG5cbiAgICAvLyAjcmVnaW9uIEluY3JlbWVudE1vbnRoXG4gICAgcHJpdmF0ZSBpbmNyZW1lbnRNb250aCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHBhcnNlSW50KHRoaXMuc3VwZXJDb250cm9sLmNvbnRyb2w/LnZhbHVlKSA9PT0gMTIpIHtcbiAgICAgICAgICAgIHRoaXMuYmx1ck9uQ29tbWFuZHMoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc3VwZXJDb250cm9sLmNvbnRyb2w/LnBhdGNoVmFsdWUoXG4gICAgICAgICAgICAodGhpcy5zdXBlckNvbnRyb2wuY29udHJvbD8udmFsdWVcbiAgICAgICAgICAgICAgICA/IHBhcnNlSW50KHRoaXMuc3VwZXJDb250cm9sLmNvbnRyb2w/LnZhbHVlKVxuICAgICAgICAgICAgICAgIDogMCkgKyAxXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvblxuXG4gICAgLy8gI3JlZ2lvblxuICAgIHB1YmxpYyBibHVyT25Db21tYW5kcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnB1dENvbW1hbmRzVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5faW5wdXRDb25maWcuY29tbWFuZHMhLmFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICAgICAgLy8gdGhpcy5zZXRJc1Zpc2libGVDb21tYW5kcyhmYWxzZSk7XG4gICAgICAgICAgICB0aGlzLl9pbnB1dENvbmZpZy5ibGFja0lucHV0ID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfSwgMjAwKTtcbiAgICB9XG4gICAgLy8gI2VuZHJlZ2lvblxuXG4gICAgLy8gI3JlZ2lvbiBDaGVja05hbWVBcnJheVxuICAgIHB1YmxpYyBjaGVja05hbWVBcnJheShhcnJheTogc3RyaW5nW10sIG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gYXJyYXkuaW5jbHVkZXMoPElucHV0U3RyaW5nRW51bT5uYW1lKTtcbiAgICB9XG4gICAgLy8gI2VuZHJlZ2lvblxufVxuIl19
237
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtaW5wdXQtYmFzZS1oZWxwcmVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtaW5wdXQvYmFzZS1jbGFzc2VzL2NhLWlucHV0LWJhc2UtaGVscHJlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsbUJBQW1CLEVBQW1CLE1BQU0sVUFBVSxDQUFDO0FBRWhFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBRS9GLE1BQU0sT0FBZ0IsMkJBQTJCO0lBQWpEO1FBU0ksbUJBQW1CO1FBQ1osZ0NBQTJCLEdBQVcsQ0FBQyxDQUFDO1FBQ3hDLG1CQUFjLEdBQVcsQ0FBQyxDQUFDO1FBQzNCLHdCQUFtQixHQUFXLENBQUMsQ0FBQztRQW1VdkMsYUFBYTtJQUNqQixDQUFDO0lBaFVHLHFDQUFxQztJQUM5QiwwQkFBMEIsQ0FBQyxLQUFVO1FBQ3hDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBaUMsQ0FBQztRQUVsRSxzQkFBc0I7UUFDdEIsTUFBTSxjQUFjLEdBQUcsWUFBWSxDQUFDLGNBQXdCLENBQUM7UUFFN0QseURBQXlEO1FBQ3pELElBQ0ksY0FBYyxHQUFHLENBQUM7WUFDbEIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ2xELENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQ2hELENBQUM7WUFDQyxPQUFPO1FBQ1gsQ0FBQztRQUVELG9HQUFvRztRQUNwRyxJQUNJLEtBQUssQ0FBQyxHQUFHLEtBQUssR0FBRztZQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsY0FBYyxH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LFlBQVksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDO1lBQzVDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQ2YsQ0FBQztJQUNOLENBQUM7SUFFRCxhQUFhO0lBRWIsVUFBVTtJQUNILGNBQWM7UUFDakIsSUFBSSxDQUFDLG9CQUFvQixHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDeEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFTLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUMzQyxvQ0FBb0M7WUFDcEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDL0IsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1osQ0FBQztJQUNELGFBQWE7SUFFYix5QkFBeUI7SUFDbEIsY0FBYyxDQUFDLEtBQWUsRUFBRSxJQUFZO1FBQy9DLE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBa0IsSUFBSSxDQUFDLENBQUM7SUFDakQsQ0FBQztDQUVKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElucHV0Q29tbWFuZHNBY3Rpb24sIElucHV0U3RyaW5nRW51bSB9IGZyb20gJy4uL2VudW1zJztcbmltcG9ydCB7IElDYUlucHV0IH0gZnJvbSAnLi4vY29uZmlnJztcbmltcG9ydCB7IE1ldGhvZHNDYWxjdWxhdGlvbnNIZWxwZXIgfSBmcm9tICcuLi8uLi8uLi91dGlscy9oZWxwZXJzL21ldGhvZHMtY2FsY3VsYXRpb25zLmhlbHBlcic7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDYUlucHV0QmFzZUhlbHBlcnNDb21wb25lbnQge1xuICAgIGFic3RyYWN0IGlucHV0OiBFbGVtZW50UmVmO1xuXG4gICAgYWJzdHJhY3QgbGFzdEN1cnNvclNwYWNlUG9zaXRpb246IG51bWJlcjtcbiAgICBhYnN0cmFjdCBzdXBlckNvbnRyb2w6IE5nQ29udHJvbDtcbiAgICBhYnN0cmFjdCBfaW5wdXRDb25maWc6IElDYUlucHV0O1xuXG4gICAgYWJzdHJhY3QgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmO1xuXG4gICAgLy8gTnVtYmVyIG9mIHBvaW50c1xuICAgIHB1YmxpYyBudW1iZXJPZkNvbnNlY3V0aXZlbHlQb2ludHM6IG51bWJlciA9IDA7XG4gICAgcHVibGljIG51bWJlck9mUG9pbnRzOiBudW1iZXIgPSAwO1xuICAgIHB1YmxpYyBvbmVTcGFjZU9ubHlDb3VudGVyOiBudW1iZXIgPSAwO1xuXG4gICAgcHVibGljIGlucHV0Q29tbWFuZHNUaW1lb3V0ITogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCBudW1iZXI7XG5cbiAgICAvLyAjcmVnaW9uIERpc2FibGVDb25zZWN1dGl2ZWx5U3BhY2VzXG4gICAgcHVibGljIGRpc2FibGVDb25zZWN1dGl2ZWx5U3BhY2VzKGV2ZW50OiBhbnkpIHtcbiAgICAgICAgY29uc3QgaW5wdXRFbGVtZW50ID0gdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG5cbiAgICAgICAgLy8gR2V0IGN1cnNvciBwb3NpdGlvblxuICAgICAgICBjb25zdCBjdXJzb3JQb3NpdGlvbiA9IGlucHV0RWxlbWVudC5zZWxlY3Rpb25TdGFydCBhcyBudW1iZXI7XG5cbiAgICAgICAgLy8gSWYgdGhlIGN1cnNvciBpcyBpbiB0aGUgbWlkZGxlIG9mIGEgd29yZCwgYWxsb3cgc3BhY2VzXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGN1cnNvclBvc2l0aW9uID4gMCAmJlxuICAgICAgICAgICAgIS9cXHMvLnRlc3QoaW5wdXRFbGVtZW50LnZhbHVlW2N1cnNvclBvc2l0aW9uIC0gMV0pICYmXG4gICAgICAgICAgICAhL1xccy8udGVzdChpbnB1dEVsZW1lbnQudmFsdWVbY3Vyc29yUG9zaXRpb25dKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIHRoZSB1c2VyIGlzIHR5cGluZyBhIHNwYWNlIGFuZCB0aGUgcHJldmlvdXMgY2hhcmFjdGVyIGlzIGEgc3BhY2UsIHByZXZlbnQgdGhlIGRlZmF1bHQgYmVoYXZpb3JcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgZXZlbnQua2V5ID09PSAnICcgJiZcbiAgICAgICAgICAgIC9cXHMvLnRlc3QoaW5wdXRFbGVtZW50LnZhbHVlW2N1cnNvclBvc2l0aW9uIC0gMV0pXG4gICAgICAgICkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFNhdmUgdGhlIGN1cnNvciBwb3NpdGlvbiBmb3IgdGhlIG5leHQgaW5wdXQgZXZlbnRcbiAgICAgICAgdGhpcy5sYXN0Q3Vyc29yU3BhY2VQb3NpdGlvbiA9IGN1cnNvclBvc2l0aW9uO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb25cblxuICAgIC8vICNyZWdpb24gRGlzYWJsZUNvbnNlY3V0aXZlbHlQb2ludHNcblxuICAgIHB1YmxpYyBkaXNhYmxlQ29uc2VjdXRpdmVseVBvaW50cyhldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQgfCBib29sZWFuIHtcbiAgICAgICAgaWYgKC9eWy5dKiQvLnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZShldmVudC5jaGFyQ29kZSkpKSB7XG4gICAgICAgICAgICB0aGlzLm51bWJlck9mQ29uc2VjdXRpdmVseVBvaW50cysrO1xuICAgICAgICAgICAgaWYgKHRoaXMubnVtYmVyT2ZDb25zZWN1dGl2ZWx5UG9pbnRzID4gMSkge1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5udW1iZXJPZkNvbnNlY3V0aXZlbHlQb2ludHMgPSAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvblxuXG4gICAgLy8gI3JlZ2lvbiBEaXNhYmxlTXVsdGlwbGVQb2ludHNcblxuICAgIHB1YmxpYyBkaXNhYmxlTXVsdGlwbGVQb2ludHMoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHwgYm9vbGVhbiB7XG4gICAgICAgIGlmICgvXlsuXSokLy50ZXN0KFN0cmluZy5mcm9tQ2hhckNvZGUoZXZlbnQuY2hhckNvZGUpKSkge1xuICAgICAgICAgICAgaWYgKCF0aGlzLnN1cGVyQ29udHJvbC5jb250cm9sPy52YWx1ZSkge1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodGhpcy5zdXBlckNvbnRyb2wuY29udHJvbD8udmFsdWU/LnRvU3RyaW5nKCkuaW5jbHVkZXMoJy4nKSkge1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLm51bWJlck9mUG9pbnRzKys7XG4gICAgICAgICAgICBpZiAodGhpcy5udW1iZXJPZlBvaW50cyA+IDEpIHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubnVtYmVyT2ZQb2ludHMgPSAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gZW5kcmVnaW9uXG5cbiAgICAvLyAjcmVnaW9uIEVuYWJsZU9uZVNwYWNlT25seVxuICAgIHB1YmxpYyBlbmFibGVPbmVTcGFjZU9ubHkoZXZlbnQ6IGFueSkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICAvXlxccyokLy50ZXN0KFN0cmluZy5mcm9tQ2hhckNvZGUoZXZlbnQuY2hhckNvZGUpKSB8fFxuICAgICAgICAgICAgdGhpcy5zdXBlckNvbnRyb2wuY29udHJvbD8udmFsdWU/LmluY2x1ZGVzKCcgJylcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLm9uZVNwYWNlT25seUNvdW50ZXIrKztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMub25lU3BhY2VPbmx5Q291bnRlciA+IDEgJiZcbiAgICAgICAgICAgIC9eXFxzKiQvLnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZShldmVudC5jaGFyQ29kZSkpXG4gICAgICAgICkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb25cblxuICAgIC8vICNyZWdpb24gSGFuZGxlUG1JbmNyZW1lbnREZWNyZW1lbnRcbiAgICBwdWJsaWMgaGFuZGxlUG1JbmNyZW1lbnREZWNyZW1lbnQoYWN0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBNZXRob2RzQ2FsY3VsYXRpb25zSGVscGVyLmNvbnZlcnRUaG91c2FuU2VwSW5OdW1iZXIoXG4gICAgICAgICAgICB0aGlzLnN1cGVyQ29udHJvbC5jb250cm9sPy52YWx1ZVxuICAgICAgICApO1xuXG4gICAgICAgIHN3aXRjaCAoYWN0aW9uKSB7XG4gICAgICAgICAgICBjYXNlIElucHV0Q29tbWFuZHNBY3Rpb24uREVDUkVNRU5UOlxuICAgICAgICAgICAgICAgIHRoaXMuZGVjcmVtZW50UG1WYWx1ZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIElucHV0Q29tbWFuZHNBY3Rpb24uSU5DUkVNRU5UOlxuICAgICAgICAgICAgICAgIHRoaXMuaW5jcmVtZW50UG1WYWx1ZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIElucHV0Q29tbWFuZHNBY3Rpb24uUkVTRVQ6XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNldFBtVmFsdWUoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNldElucHV0Q3Vyc29yQXRUaGVFbmQodGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uXG5cbiAgICAvLyAjcmVnaW9uIERlY3JlbWVudFBtVmFsdWVcbiAgICBwcml2YXRlIGRlY3JlbWVudFBtVmFsdWUodmFsdWU6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAodmFsdWUgPj0gMTAwMDAgJiYgdmFsdWUgPCAyMDAwMCkge1xuICAgICAgICAgICAgdGhpcy5zdXBlckNvbnRyb2wuY29udHJvbD8ucGF0Y2hWYWx1ZShcbiAgICAgICAgICAgICAgICBNZXRob2RzQ2FsY3VsYXRpb25zSGVscGVyLmNvbnZlcnROdW1iZXJJblRob3VzYW5kU2VwKFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZSAtIDEwMDBcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2UgaWYgKHZhbHVlID49IDIwMDAxICYmIHZhbHVlIDwgNTAwMDApIHtcbiAgICAgICAgICAgIHRoaXMuc3VwZXJDb250cm9sLmNvbnRyb2w/LnBhdGNoVmFsdWUoXG4gICAgICAgICAgICAgICAgTWV0aG9kc0NhbGN1bGF0aW9uc0hlbHBlci5jb252ZXJ0TnVtYmVySW5UaG91c2FuZFNlcChcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgLSAzMDAwXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZSA+PSA1MDAwMSAmJiB2YWx1ZSA8IDEwMDAwMCkge1xuICAgICAgICAgICAgdGhpcy5zdXBlckNvbnRyb2wuY29udHJvbD8ucGF0Y2hWYWx1ZShcbiAgICAgICAgICAgICAgICBNZXRob2RzQ2FsY3VsYXRpb25zSGVscGVyLmNvbnZlcnROdW1iZXJJblRob3VzYW5kU2VwKFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZSAtIDUwMDBcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2UgaWYgKHZhbHVlID49IDEwMDAwKSB7XG4gICAgICAgICAgICB0aGlzLnN1cGVyQ29udHJvbC5jb250cm9sPy5wYXRjaFZhbHVlKFxuICAgICAgICAgICAgICAgIE1ldGhvZHNDYWxjdWxhdGlvbnNIZWxwZXIuY29udmVydE51bWJlckluVGhvdXNhbmRTZXAoXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlIC0gMTAwMDBcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2UgaWYgKHZhbHVlID49IDEwMDApIHtcbiAgICAgICAgICAgIHRoaXMuc3VwZXJDb250cm9sLmNvbnRyb2w/LnBhdGNoVmFsdWUoXG4gICAgICAgICAgICAgICAgTWV0aG9kc0NhbGN1bGF0aW9uc0hlbHBlci5jb252ZXJ0TnVtYmVySW5UaG91c2FuZFNlcChcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgLSA1MDBcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vICNlbmRyZWdpb25cblxuICAgIC8vICNyZWdpb24gUmVzZXRQbVZhbHVlXG4gICAgcHJpdmF0ZSByZXNldFBtVmFsdWUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9pbnB1dENvbmZpZz8uZGVmYXVsdFZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnN1cGVyQ29udHJvbC5jb250cm9sPy5wYXRjaFZhbHVlKFxuICAgICAgICAgICAgICAgIHRoaXMuX2lucHV0Q29uZmlnPy5kZWZhdWx0VmFsdWVcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uXG5cbiAgICAvLyAjcmVnaW9uIFJlc2V0UG1WYWx1ZVxuICAgIHByaXZhdGUgaW5jcmVtZW50UG1WYWx1ZSh2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmICh2YWx1ZSA+IDEwMDAwICYmIHZhbHVlIDwgMjAwMDApIHtcbiAgICAgICAgICAgIHRoaXMuc3VwZXJDb250cm9sLmNvbnRyb2w/LnBhdGNoVmFsdWUoXG4gICAgICAgICAgICAgICAgTWV0aG9kc0NhbGN1bGF0aW9uc0hlbHBlci5jb252ZXJ0TnVtYmVySW5UaG91c2FuZFNlcChcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgKyAxMDAwXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZSA+PSAyMDAwMSAmJiB2YWx1ZSA8IDUwMDAwKSB7XG4gICAgICAgICAgICB0aGlzLnN1cGVyQ29udHJvbC5jb250cm9sPy5wYXRjaFZhbHVlKFxuICAgICAgICAgICAgICAgIE1ldGhvZHNDYWxjdWxhdGlvbnNIZWxwZXIuY29udmVydE51bWJlckluVGhvdXNhbmRTZXAoXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlICsgMzAwMFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSBpZiAodmFsdWUgPj0gNTAwMDEgJiYgdmFsdWUgPCAxMDAwMDApIHtcbiAgICAgICAgICAgIHRoaXMuc3VwZXJDb250cm9sLmNvbnRyb2w/LnBhdGNoVmFsdWUoXG4gICAgICAgICAgICAgICAgTWV0aG9kc0NhbGN1bGF0aW9uc0hlbHBlci5jb252ZXJ0TnVtYmVySW5UaG91c2FuZFNlcChcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgKyA1MDAwXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZSA+PSAxMDAwMCkge1xuICAgICAgICAgICAgdGhpcy5zdXBlckNvbnRyb2wuY29udHJvbD8ucGF0Y2hWYWx1ZShcbiAgICAgICAgICAgICAgICBNZXRob2RzQ2FsY3VsYXRpb25zSGVscGVyLmNvbnZlcnROdW1iZXJJblRob3VzYW5kU2VwKFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZSArIDEwMDAwXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3VwZXJDb250cm9sLmNvbnRyb2w/LnBhdGNoVmFsdWUoXG4gICAgICAgICAgICAgICAgTWV0aG9kc0NhbGN1bGF0aW9uc0hlbHBlci5jb252ZXJ0TnVtYmVySW5UaG91c2FuZFNlcChcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgKyA1MDBcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vICNlbmRyZWdpb25cblxuICAgIC8vICNyZWdpb24gU2V0SW5wdXRDdXJzb3JBdFRoZUVuZFxuICAgIHB1YmxpYyBzZXRJbnB1dEN1cnNvckF0VGhlRW5kKGlucHV0OiBhbnksIHRpbWU6IG51bWJlciA9IDEyMCk6IHZvaWQge1xuICAgICAgICBjb25zdCBzZWxlY3Rpb25FbmQgPSBpbnB1dC5zZWxlY3Rpb25FbmQ7XG4gICAgICAgIGlmIChpbnB1dC5zZXRTZWxlY3Rpb25SYW5nZSkge1xuICAgICAgICAgICAgaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2Uoc2VsZWN0aW9uRW5kLCBzZWxlY3Rpb25FbmQpO1xuICAgICAgICB9XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgaW5wdXQuZm9jdXMoKTtcbiAgICAgICAgfSwgdGltZSk7XG4gICAgfVxuICAgIC8vICNlbmRyZWdpb25cblxuICAgIC8vICNyZWdpb24gSGFuZGxlSW5jcmVtZW50RGVjcmVtZW50XG4gICAgcHVibGljIGhhbmRsZUluY3JlbWVudERlY3JlbWVudChhY3Rpb246IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5pbnB1dENvbW1hbmRzVGltZW91dCk7XG4gICAgICAgIHN3aXRjaCAoYWN0aW9uKSB7XG4gICAgICAgICAgICBjYXNlIElucHV0Q29tbWFuZHNBY3Rpb24uREVDUkVNRU5UOlxuICAgICAgICAgICAgICAgIHRoaXMuc3VwZXJDb250cm9sLmNvbnRyb2w/LnBhdGNoVmFsdWUoXG4gICAgICAgICAgICAgICAgICAgICh0aGlzLnN1cGVyQ29udHJvbC5jb250cm9sPy52YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgPyBwYXJzZUludCh0aGlzLnN1cGVyQ29udHJvbC5jb250cm9sPy52YWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIDogMCkgLSAxXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgSW5wdXRDb21tYW5kc0FjdGlvbi5JTkNSRU1FTlQ6XG4gICAgICAgICAgICAgICAgdGhpcy5zdXBlckNvbnRyb2wuY29udHJvbD8ucGF0Y2hWYWx1ZShcbiAgICAgICAgICAgICAgICAgICAgKHRoaXMuc3VwZXJDb250cm9sLmNvbnRyb2w/LnZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHBhcnNlSW50KHRoaXMuc3VwZXJDb250cm9sLmNvbnRyb2w/LnZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiAwKSArIDFcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2V0SW5wdXRDdXJzb3JBdFRoZUVuZCh0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cbiAgICAvLyAjZW5kcmVnaW9uXG5cbiAgICAvLyAjcmVnaW9uXG5cbiAgICBwdWJsaWMgaGFuZGxlTW9udGhzKGFjdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLmlucHV0Q29tbWFuZHNUaW1lb3V0KTtcblxuICAgICAgICBzd2l0Y2ggKGFjdGlvbikge1xuICAgICAgICAgICAgY2FzZSBJbnB1dENvbW1hbmRzQWN0aW9uLk1JTlVTOlxuICAgICAgICAgICAgICAgIHRoaXMuZGVjcmVtZW50TW9udGgoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgSW5wdXRDb21tYW5kc0FjdGlvbi5QTFVTOlxuICAgICAgICAgICAgICAgIHRoaXMuaW5jcmVtZW50TW9udGgoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBwYXJzZUludCh0aGlzLnN1cGVyQ29udHJvbC5jb250cm9sPy52YWx1ZSkgPCAxIHx8XG4gICAgICAgICAgICBwYXJzZUludCh0aGlzLnN1cGVyQ29udHJvbC5jb250cm9sPy52YWx1ZSkgPiAxMlxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuc3VwZXJDb250cm9sLmNvbnRyb2w/LnNldEVycm9ycyh7IGludmFsaWQ6IHRydWUgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnN1cGVyQ29udHJvbC5jb250cm9sPy5zZXRFcnJvcnMobnVsbCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNldElucHV0Q3Vyc29yQXRUaGVFbmQodGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG4gICAgLy8gI2VuZHJlZ2lvblxuXG4gICAgLy8gI3JlZ2lvbiBEZWNyZW1lbnRNb250aFxuICAgIHByaXZhdGUgZGVjcmVtZW50TW9udGgoKTogdm9pZCB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHBhcnNlSW50KHRoaXMuc3VwZXJDb250cm9sLmNvbnRyb2w/LnZhbHVlKSA9PT0gMSB8fFxuICAgICAgICAgICAgIXRoaXMuc3VwZXJDb250cm9sLmNvbnRyb2w/LnZhbHVlXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5ibHVyT25Db21tYW5kcygpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zdXBlckNvbnRyb2wuY29udHJvbD8ucGF0Y2hWYWx1ZShcbiAgICAgICAgICAgICh0aGlzLnN1cGVyQ29udHJvbC5jb250cm9sPy52YWx1ZVxuICAgICAgICAgICAgICAgID8gcGFyc2VJbnQodGhpcy5zdXBlckNvbnRyb2wuY29udHJvbD8udmFsdWUpXG4gICAgICAgICAgICAgICAgOiAwKSAtIDFcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uXG5cbiAgICAvLyAjcmVnaW9uIEluY3JlbWVudE1vbnRoXG4gICAgcHJpdmF0ZSBpbmNyZW1lbnRNb250aCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHBhcnNlSW50KHRoaXMuc3VwZXJDb250cm9sLmNvbnRyb2w/LnZhbHVlKSA9PT0gMTIpIHtcbiAgICAgICAgICAgIHRoaXMuYmx1ck9uQ29tbWFuZHMoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc3VwZXJDb250cm9sLmNvbnRyb2w/LnBhdGNoVmFsdWUoXG4gICAgICAgICAgICAodGhpcy5zdXBlckNvbnRyb2wuY29udHJvbD8udmFsdWVcbiAgICAgICAgICAgICAgICA/IHBhcnNlSW50KHRoaXMuc3VwZXJDb250cm9sLmNvbnRyb2w/LnZhbHVlKVxuICAgICAgICAgICAgICAgIDogMCkgKyAxXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvblxuXG4gICAgLy8gI3JlZ2lvblxuICAgIHB1YmxpYyBibHVyT25Db21tYW5kcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnB1dENvbW1hbmRzVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5faW5wdXRDb25maWcuY29tbWFuZHMhLmFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICAgICAgLy8gdGhpcy5zZXRJc1Zpc2libGVDb21tYW5kcyhmYWxzZSk7XG4gICAgICAgICAgICB0aGlzLl9pbnB1dENvbmZpZy5ibGFja0lucHV0ID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfSwgMjAwKTtcbiAgICB9XG4gICAgLy8gI2VuZHJlZ2lvblxuXG4gICAgLy8gI3JlZ2lvbiBDaGVja05hbWVBcnJheVxuICAgIHB1YmxpYyBjaGVja05hbWVBcnJheShhcnJheTogc3RyaW5nW10sIG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gYXJyYXkuaW5jbHVkZXMoPElucHV0U3RyaW5nRW51bT5uYW1lKTtcbiAgICB9XG4gICAgLy8gI2VuZHJlZ2lvblxufVxuIl19