@norwegian/core-components 6.58.0 → 6.59.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/airport-select-new/airport-select-new.component.mjs +2 -2
- package/esm2022/lib/components/alert/alert.component.mjs +3 -8
- package/esm2022/lib/components/alert/models/alert.model.mjs +1 -1
- package/esm2022/lib/components/datepicker-combo-new/datepicker-combo-new.component.mjs +2 -2
- package/esm2022/lib/components/filter-new/filter-new.component.mjs +4 -5
- package/esm2022/lib/components/info/info.component.mjs +2 -2
- package/esm2022/lib/components/page-header/wallet/wallet.component.mjs +1 -1
- package/esm2022/lib/components/status-box/status-box.component.mjs +2 -2
- package/fesm2022/norwegian-core-components.mjs +11 -17
- package/fesm2022/norwegian-core-components.mjs.map +1 -1
- package/lib/components/alert/alert.component.d.ts +1 -7
- package/lib/components/alert/models/alert.model.d.ts +0 -1
- package/lib/components/info/info.component.d.ts +1 -1
- package/package.json +1 -1
|
@@ -274,7 +274,7 @@ export class AirportSelectNewComponent extends NasComponentBase {
|
|
|
274
274
|
if (!this.container && !this.container?.nativeElement) {
|
|
275
275
|
return;
|
|
276
276
|
}
|
|
277
|
-
this.inlineFlex = this.container.nativeElement.offsetWidth >
|
|
277
|
+
this.inlineFlex = this.container.nativeElement.offsetWidth > 788;
|
|
278
278
|
}
|
|
279
279
|
getAirportsDestinations() {
|
|
280
280
|
const allowedDestinationAirports = this.allowedDestinationAirports;
|
|
@@ -474,4 +474,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImpor
|
|
|
474
474
|
type: HostListener,
|
|
475
475
|
args: ["window:resize", ["$event"]]
|
|
476
476
|
}] } });
|
|
477
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWlycG9ydC1zZWxlY3QtbmV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYWlycG9ydC1zZWxlY3QtbmV3L2FpcnBvcnQtc2VsZWN0LW5ldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2FpcnBvcnQtc2VsZWN0LW5ldy9haXJwb3J0LXNlbGVjdC1uZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixpQkFBaUIsRUFDakIsU0FBUyxFQUlULFlBQVksRUFDYixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7Ozs7OztBQUk5Qzs7O0dBR0c7QUFPSCxNQUFNLE9BQU8seUJBQTBCLFNBQVEsZ0JBQWdCO0lBcU83RDs7OztPQUlHO0lBQ0gsSUFDSSxpQkFBaUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUM7SUFDckMsQ0FBQztJQUNELElBQUksaUJBQWlCLENBQUMsSUFBWTtRQUNoQyxJQUFJLElBQUksRUFBRTtZQUNSLElBQUksSUFBSSxLQUFLLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtnQkFDeEMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQztnQkFDbkMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2FBQ2xCO1NBQ0Y7YUFBTTtZQUNMLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3BCO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUNJLHNCQUFz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RUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBOb3J3ZWdpYW4gQWlyIFNodXR0bGUuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKi9cblxuaW1wb3J0IHsgQWlycG9ydE1vZGVsIH0gZnJvbSAnLi9tb2RlbHMvYWlycG9ydC5tb2RlbCc7XG5pbXBvcnQgeyBDbGFzc01vZGVsIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbHMvY2xhc3MubW9kZWwnO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBWaWV3Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIE9uSW5pdCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgSG9zdExpc3RlbmVyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTmFzQ29tcG9uZW50QmFzZSB9IGZyb20gJy4uLy4uL2NvcmUnO1xuaW1wb3J0IHsgUmVzdWx0c0xhYmVsc01vZGVsIH0gZnJvbSAnLi9tb2RlbHMvcmVzdWx0cy1sYWJlbHMubW9kZWwnO1xuaW1wb3J0IHsgQWlycG9ydFNlbGVjdERyb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnLi9haXJwb3J0LXNlbGVjdC1kcm9wZG93bi9haXJwb3J0LXNlbGVjdC1kcm9wZG93bi5jb21wb25lbnQnO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICogTm9yd2VnaWFuIEFpcnBvcnQgU2VsZWN0IENvbXBvbmVudCB8IE5ldyBkZXNpZ24gfCBCZXRhXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25hcy1haXJwb3J0LXNlbGVjdC1uZXcnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWlycG9ydC1zZWxlY3QtbmV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYWlycG9ydC1zZWxlY3QtbmV3LmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgQWlycG9ydFNlbGVjdE5ld0NvbXBvbmVudCBleHRlbmRzIE5hc0NvbXBvbmVudEJhc2UgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICBhaXJwb3J0c09yaWdpbjogQXJyYXk8QWlycG9ydE1vZGVsPjtcbiAgYWlycG9ydHNEZXN0aW5hdGlvbiA9IG5ldyBBcnJheTxBaXJwb3J0TW9kZWw+KCk7XG4gIGN1cnJlbnRMYXRlc3RTZWFyY2hlc0Rlc3RpbmF0aW9uOiBBcnJheTxBaXJwb3J0TW9kZWw+O1xuICBjbG9zZXN0QWlycG9ydHNEZXN0aW5hdGlvbjogQXJyYXk8QWlycG9ydE1vZGVsPjtcbiAgZm9jdXNEZXN0aW5hdGlvbiA9IGZhbHNlO1xuICB0ZXh0U2VsZWN0T3JpZ2luRmlyc3Q6IHN0cmluZztcbiAgZm9jdXNlZExhdGVzdFNlYXJjaGVzQWlycG9ydENvZGVEZXN0aW5hdGlvbjogc3RyaW5nO1xuICBmb2N1c2VkQWlycG9ydENvZGVEZXN0aW5hdGlvbjogc3RyaW5nO1xuICBmb2N1c2VkTGF0ZXN0U2VhcmNoZXNJbmRleERlc3RpbmF0aW9uID0gLTE7XG4gIGZvY3VzZWRBaXJwb3J0SW5kZXhEZXN0aW5hdGlvbiA9IC0xO1xuICBzd2l0Y2hUeXBlID0gJ3N3aXRjaCc7XG4gIGlzRGVzdGluYXRpb25WYWxpZDogYm9vbGVhbjtcbiAgaW5saW5lRmxleCA9IGZhbHNlO1xuXG4gIHJlc3VsdHNMYWJlbHM6IFJlc3VsdHNMYWJlbHNNb2RlbCA9IHtcbiAgICBhbGxBaXJwb3J0czogJycsXG4gICAgY2xvc2VzdEFpcnBvcnRzOiAnJyxcbiAgICBsYXRlc3RTZWFyY2hlczogJycsXG4gICAgZ2VvbG9jYXRpb246ICcnLFxuICAgIGdlb2xvY2F0aW9uRGVuaWVkOiAnJ1xuICB9O1xuXG4gIG9yaWdpbk9wZW4gPSBmYWxzZTtcbiAgZGVzdGluYXRpb25PcGVuID0gZmFsc2U7XG4gIGNsZWFyZWQgPSBmYWxzZTtcblxuICBAVmlld0NoaWxkKCdjb250YWluZXInKSBjb250YWluZXI6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ3N3aXRjaEJ1dHRvbicpIHN3aXRjaEJ1dHRvbjogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnYWlycG9ydFNlbGVjdERyb3Bkb3duT3JpZ2luJykgYWlycG9ydFNlbGVjdERyb3Bkb3duT3JpZ2luOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdhaXJwb3J0U2VsZWN0RHJvcGRvd25EZXN0aW5hdGlvbicpIGFpcnBvcnRTZWxlY3REcm9wZG93bkRlc3RpbmF0aW9uOiBBaXJwb3J0U2VsZWN0RHJvcGRvd25Db21wb25lbnQ7XG5cbiAgb3JpZ2luOiBBaXJwb3J0TW9kZWw7XG4gIGRlc3RpbmF0aW9uOiBBaXJwb3J0TW9kZWw7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAcmVxdWlyZWRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFsbCBhaXJwb3J0cyB0aGF0IHdpbGwgYmUgcG9wdWxhdGVkIGludG8gdGhlIGRyb3Bkb3duIGxpc3RzLlxuICAgKi9cbiAgQElucHV0KCkgYWlycG9ydHM6IEFycmF5PEFpcnBvcnRNb2RlbD47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSByZWNvcmQgY29udGFpbmluZyBrZXlzIHdpdGggYWxsIGFpcnBvcnQgY29kZXMgd2l0aCBjb3JyZXNwb25kaW5nIGFycmF5IG9mIGFpcnBvcnQgY29kZXMgY29ubmVjdGVkIHRvIHRoZSBrZXkuXG4gICAqL1xuICBASW5wdXQoKSBhaXJwb3J0UmVsYXRpb25zOiBSZWNvcmQ8c3RyaW5nLCBBcnJheTxzdHJpbmc+PjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBbiBhcnJheSBvZiBvcmlnaW4gYWlycG9ydHMgdGhhdCB0aGUgdXNlciBoYXMgYWxscmVhZHkgc2VhcmNoIGZvci5cbiAgICovXG4gIEBJbnB1dCgpIGxhdGVzdFNlYXJjaGVzT3JpZ2luOiBBcnJheTxBaXJwb3J0TW9kZWw+O1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFuIGFycmF5IG9mIGRlc3RpbmF0aW9uIGFpcnBvcnRzIHRoYXQgdGhlIHVzZXIgaGFzIGFsbHJlYWR5IHNlYXJjaCBmb3IuXG4gICAqL1xuICBASW5wdXQoKSBsYXRlc3RTZWFyY2hlc0Rlc3RpbmF0aW9uOiBBcnJheTxBaXJwb3J0TW9kZWw+O1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFuIGFycmF5IG9mIGFpcnBvcnRzIHRoYXQgYXJlIGNsb3NlIHRvIHRoZSB1c2VyLlxuICAgKi9cbiAgQElucHV0KCkgY2xvc2VzdEFpcnBvcnRzOiBBcnJheTxBaXJwb3J0TW9kZWw+O1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgbGlzdCBvZiBhaXJwb3J0cyB0aGF0IHNob3VsZCBiZSBkaXNwbGF5ZWQgaW4gdGhlIG9yaWdpbiBkcm9wZG93bi5cbiAgICogSWYgbm90IGluY2x1ZGVkLCBhbGwgYWlycG9ydHMgd2lsbCBiZSBkaXNwbGF5ZWQuXG4gICAqL1xuICBASW5wdXQoKSBhbGxvd2VkT3JpZ2luQWlwb3J0czogQXJyYXk8QWlycG9ydE1vZGVsPjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBbiBhcnJheSBvZiBhaXJwb3J0cyB0aGF0IGFyZSByZXN0cmljdGVkIGZvciBkZXN0aW5hdGlvbiBhaXJwb3J0cy4gSXQgd2lsbCBkZWZhdWx0IHRvIGFpcnBvcnRzIGlmIG5vdCBzZXQuXG4gICAqL1xuICBASW5wdXQoKSBhbGxvd2VkRGVzdGluYXRpb25BaXJwb3J0czogQXJyYXk8QWlycG9ydE1vZGVsPjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBIGJvb2xlYW4gaW5kaWNhdGluZyBpZiBhaXJwb3J0cyB0aGF0IHRoZSB1c2VyIGFsbHJlYWR5IGhhcyBzZWFyaCBmb3Igc2hvdWxkIGJlIGRpc3BsYXllZC5cbiAgICovXG4gIEBJbnB1dCgpIGRpc3BsYXlMYXRlc3RTZWFyY2hlcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSBib29sZWFuIGluZGljYXRpbmcgaWYgYWlycG9ydHMgdGhhdCBhcmUgY2xvc2UgdG8gdGhlIHVzZXIgc2hvdWxkIGJlIGRpc3BsYXllZC5cbiAgICovXG4gIEBJbnB1dCgpIGRpc3BsYXlDbG9zZXN0QWlycG9ydHM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIERpc3BsYXkgYm90aCBvcmdpbiBhbmQgZGVzdGluYXRpb24gYWlycG9ydCBzZWxlY3Rvci5cbiAgICovXG4gIEBJbnB1dCgpIGNvbWJvPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBEaXNwbGF5IHN3aXRjaCBVSSB0byBpbnRlcmNoYW5nZSBvcmlnaW4gYW5kIGRlc3RpbmF0aW9uIGFpcnBvcnQuXG4gICAqL1xuICBASW5wdXQoKSB1c2VTd2l0Y2g/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgbGFiZWwgdGhhdCB3aWxsIGFwcGVhciBvbiB0b3Agb2YgYWxsIGFpcnBvcnRzIGluIHRoZSBkcm9wIGRvd24gbGlzdC5cbiAgICovXG4gIEBJbnB1dCgpIGFsbEFpcnBvcnRzTGFiZWw6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBIGxhYmVsIHRoYXQgd2lsbCBhcHBlYXIgb24gdG9wIG9mIHRoZSBsYXRlc3Qgc2VhcmNoZXMgaW4gdGhlIGRyb3AgZG93biBsaXN0LlxuICAgKi9cbiAgQElucHV0KCkgbGF0ZXN0U2VhcmNoZXNMYWJlbDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgbGFiZWwgdGhhdCB3aWxsIGFwcGVhciBvbiB0b3Agb2YgdGhlIGNsb3Nlc3QgYWlycG9ydHMgaW4gdGhlIGRyb3AgZG93biBsaXN0LlxuICAgKi9cbiAgQElucHV0KCkgY2xvc2VzdEFpcnBvcnRzTGFiZWw6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBIGxhYmVsIHRoYXQgd2lsbCBhcHBlYXIgaW4gbXkgbG9jYXRpb24gaW4gdGhlIGRyb3AgZG93biBsaXN0LlxuICAgKi9cbiAgQElucHV0KCkgZ2VvbG9jYXRpb25MYWJlbDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgbGFiZWwgdGhhdCB3aWxsIGFwcGVhciBpbiBteSBsb2NhdGlvbiwgaW4gdGhlIGRyb3AgZG93biBsaXN0IGlmIHVzZXIgaGFzIGRlbmllZCBnZW9sb2NhdGlvbi5cbiAgICovXG4gIEBJbnB1dCgpIGdlb2xvY2F0aW9uQmxvY2tlZExhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSBsYWJlbCB0aGF0IHdpbGwgYXBwZWFyIGluIHRoZSBkZXN0aW5hdGlvbiBpbnB1dCBmaWVsZCBpZiB0aGVcbiAgICogdXNlciB0cmllcyB0byBzZWxlY3QgYSBkZXN0aW5hdGlvbiBhaXJwb3J0IHdpdGhvdXQgc2VsZWN0aW5nIGFuIG9yaWdpbiBhaXJwb3J0LlxuICAgKi9cbiAgQElucHV0KCkgc2VsZWN0T3JpZ2luRmlyc3RMYWJlbDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgdGV4dCB0aGF0IGFwcGVhcnMgaW4gdGhlIGRlc3RpbmF0aW9ucyBkcm9wZG93biBsaXN0IHdoZW4gb3JpZ2luIGFpcnBvcnQgaXMgbm90IHNldC5cbiAgICovXG4gIEBJbnB1dCgpIGludmFsaWREZXN0aW5hdGlvblRleHQ6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEByZXF1aXJlZFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSBsYWJlbCB0aGF0IHdpbGwgYXBwZWFyIG9uIHRvcCBvZiB0aGUgb3JpZ2luIGFpcnBvcnQgaW5wdXQgZmllbGQuXG4gICAqL1xuICBASW5wdXQoKSBsYWJlbE9yaWdpbiA9ICcnO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgcGxhY2Vob2xkZXIgdGhhdCB3aWxsIGFwcGVhciBvbiB0aGUgb3JpZ2luIGFpcnBvcnQgaW5wdXQgZmllbGQuXG4gICAqL1xuICBASW5wdXQoKSBwbGFjZWhvbGRlck9yaWdpbiA9ICcnO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgbGFiZWwgdGhhdCB3aWxsIGFwcGVhciBvbiB0b3Agb2YgdGhlIGRlc3RpbmF0aW9uIGFpcnBvcnQgaW5wdXQgZmllbGQuXG4gICAqL1xuICBASW5wdXQoKSBsYWJlbERlc3RpbmF0aW9uID0gJyc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSBwbGFjZWhvbGRlciB0aGF0IHdpbGwgYXBwZWFyIG9uIHRoZSBkZXN0aW5hdGlvbiBhaXJwb3J0IGlucHV0IGZpZWxkLlxuICAgKi9cbiAgQElucHV0KCkgcGxhY2Vob2xkZXJEZXN0aW5hdGlvbiA9ICcnO1xuXG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSBtb2RpZmllciB0aGF0IHdpbGwgYWxsb3cgYWx3YXlzIGtlZXBpbmcgdGhlIHNlbGVjdGVkIGFpcnBvcnQuXG4gICAqIFRoZSBsYXN0IHNlbGVjdGVkIGFpcnBvcnQgd2lsbCBiZSBzaG93biBvbmNlIHVzZXIgY2xlYXJzIHRoZSBzZWxlY3Rpb24gYW5kIGJsdXIuXG4gICAqL1xuICBASW5wdXQoKSBrZWVwU2VsZWN0aW9uOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgYSBmb3JtQ29udHJvbE5hbWUgZGlyZWN0aXZlIHRvIHRoZSBpbnB1dC5cbiAgICogSXQgcmVxdWlyZXMgdGhhdCB0aGUgY29uc3VtZXIgaW5jbHVkZWQgUmVhY3RpdmVGb3Jtc01vZHVsZSBpbiBpdCdzIG1vZHVsZS5cbiAgICogSXQgcmVxdWllcnMgdGhhdCB0aGUgbmFzRm9ybUdyb3VwIGlucHV0IGlzIGZpbGxlZC5cbiAgICovXG4gIEBJbnB1dCgpIG5hc0Zvcm1Db250cm9sTmFtZU9yaWdpbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgYSBmb3JtQ29udHJvbE5hbWUgZGlyZWN0aXZlIHRvIHRoZSBpbnB1dC5cbiAgICogSXQgcmVxdWlyZXMgdGhhdCB0aGUgY29uc3VtZXIgaW5jbHVkZWQgUmVhY3RpdmVGb3Jtc01vZHVsZSBpbiBpdCdzIG1vZHVsZS5cbiAgICogSXQgcmVxdWllcnMgdGhhdCB0aGUgbmFzRm9ybUdyb3VwIGlucHV0IGlzIGZpbGxlZC5cbiAgICovXG4gIEBJbnB1dCgpIG5hc0Zvcm1Db250cm9sTmFtZURlc3RpbmF0aW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQWRkcyB0aGUgcGFyZW50J3MgZm9ybSBncm91cC5cbiAgICogSXQgcmVxdWlyZXMgdGhhdCB0aGUgY29uc3VtZXIgaW5jbHVkZWQgUmVhY3RpdmVGb3Jtc01vZHVsZSBpbiBpdCdzIG1vZHVsZS5cbiAgICogSXQgaXMgcmVxdWllcmVkIHRvIGJlIGZpbGxlZCBpZiBuYXNGb3JtQ29udHJvbE5hbWUgYWRkZWQuXG4gICAqL1xuICBASW5wdXQoKSBuYXNGb3JtR3JvdXA6IEZvcm1Hcm91cDtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGUgYWlycG9ydCBjb2RlIG9mIHRoZSBvcmlnaW4gYWlycG9ydC4gSXQgd2lsbCBzZXQgdGhlIHNlbGVjdGVkIG9yaWdpbiBhaXJwb3J0IGJhc2VkIG9uIHRoaXMgdmFsdWUuXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgb3JpZ2luQWlycG9ydENvZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMub3JpZ2luQWlycG9ydENvZGVWYWx1ZTtcbiAgfVxuICBzZXQgb3JpZ2luQWlycG9ydENvZGUoY29kZTogc3RyaW5nKSB7XG4gICAgaWYgKGNvZGUpIHtcbiAgICAgIGlmIChjb2RlICE9PSB0aGlzLm9yaWdpbkFpcnBvcnRDb2RlVmFsdWUpIHtcbiAgICAgICAgdGhpcy5vcmlnaW5BaXJwb3J0Q29kZVZhbHVlID0gY29kZTtcbiAgICAgICAgdGhpcy5zZXRPcmlnaW4oKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vcmlnaW5BaXJwb3J0Q29kZVZhbHVlID0gJyc7XG4gICAgICB0aGlzLmNsZWFyT3JpZ2luKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVGhlIGFpcnBvcnQgY29kZSBvZiB0aGUgZGVzdGluYXRpb24gYWlycG9ydC4gSXQgd2lsbCBzZXQgdGhlIHNlbGVjdGVkIGRlc3RpbmF0aW9uIGFpcnBvcnQgYmFzZWQgb24gdGhpcyB2YWx1ZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCBkZXN0aW5hdGlvbkFpcnBvcnRDb2RlKCkge1xuICAgIHJldHVybiB0aGlzLmRlc3RpbmF0aW9uQWlycG9ydENvZGVWYWx1ZTtcbiAgfVxuICBzZXQgZGVzdGluYXRpb25BaXJwb3J0Q29kZShjb2RlOiBzdHJpbmcpIHtcbiAgICBpZiAoY29kZSkge1xuICAgICAgaWYgKGNvZGUgIT09IHRoaXMuZGVzdGluYXRpb25BaXJwb3J0Q29kZVZhbHVlKSB7XG4gICAgICAgIHRoaXMuZGVzdGluYXRpb25BaXJwb3J0Q29kZVZhbHVlID0gY29kZTtcbiAgICAgICAgdGhpcy5zZXREZXN0aW5hdGlvbigpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRlc3RpbmF0aW9uQWlycG9ydENvZGVWYWx1ZSA9ICcnO1xuICAgICAgdGhpcy5jbGVhckRlc3RpbmF0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQWRkcyAnYXJpYS1sYWJlbCcgb24gdGhlIGNsZWFyIGJ1dHRvbiBpbnNpZGUgdGhlIGFpcnBvcnQgc2VsZWN0IGlucHV0cy5cbiAgICovXG4gIEBJbnB1dCgpIGFyaWFMYWJlbENsZWFyOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQWRkcyAnYXJpYS1sYWJlbCcgdG8gdGhlIGJhY2tkcm9wcy5cbiAgICovXG4gIEBJbnB1dCgpIGFyaWFMYWJlbEJhY2tkcm9wOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBPdXRwdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFuIGV2ZW50IHRoYXQgaXMgZmlyZWQgZXZlcnkgdGltZSB0aGUgc2VsZWN0ZWQgb3JpZ2luIGFpcnBvcnQgY2hhbmdlcy5cbiAgICovXG4gIEBPdXRwdXQoKSBvcmlnaW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEFpcnBvcnRNb2RlbD4oKTtcblxuICAvKipcbiAgICogQHByb3BlcnR5IE91dHB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQW4gZXZlbnQgdGhhdCBpcyBmaXJlZCBldmVyeSB0aW1lIHRoZSBvcmlnaW4gZHJvcGRvd24gc2VsZWN0b3Igb3BlbnMgb3IgY2xvc2VzLlxuICAgKi9cbiAgQE91dHB1dCgpIG9yaWdpbk9wZW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgLyoqXG4gICogQHByb3BlcnR5IE91dHB1dFxuICAqIEBkZXNjcmlwdGlvblxuICAqIEFuIGV2ZW50IHRoYXQgaXMgZmlyZWQgZXZlcnkgdGltZSB0aGUgb3JpZ2luIGRyb3Bkb3duIHNlbGVjdG9yIG9wZW5zIG9yIGNsb3Nlcy5cbiAgKi9cbiAgQE91dHB1dCgpIGRlc3RpbmF0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxBaXJwb3J0TW9kZWw+KCk7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBPdXRwdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFuIGV2ZW50IHRoYXQgaXMgZmlyZWQgZXZlcnkgdGltZSB0aGUgZGVzdGluYXRpb24gZHJvcGRvd24gc2VsZWN0b3Igb3BlbnMgb3IgY2xvc2VzLlxuICAgKi9cbiAgQE91dHB1dCgpIGRlc3RpbmF0aW9uT3BlbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAvKipcbiAgICogQHByb3BlcnR5IE91dHB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQW4gZXZlbnQgdGhhdCBpcyBmaXJlZCB3aGVuIHRoZSBkZXN0aW5hdGlvbiBkcm9wZG93biBjbG9zZXMuXG4gICAqL1xuICBAT3V0cHV0KCkgZm9jdXNPbk5leHQgPSBuZXcgRXZlbnRFbWl0dGVyPEtleWJvYXJkRXZlbnQ+KCk7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBPdXRwdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFuIGV2ZW50IHRoYXQgaXMgZmlyZWQgd2hlbiBnZW9sb2NhdGlvbiBwb3NpdGlvbiBoYXMgY2hhbmdlZC5cbiAgICovXG4gIEBPdXRwdXQoKSBwb3NpdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8R2VvbG9jYXRpb25Qb3NpdGlvbj4oKTtcblxuICBwcml2YXRlIG9yaWdpbkFpcnBvcnRDb2RlVmFsdWU6IHN0cmluZztcbiAgcHJpdmF0ZSBkZXN0aW5hdGlvbkFpcnBvcnRDb2RlVmFsdWU6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcignbmFzLWFpcnBvcnQtc2VsZWN0LW5ldycpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcihcIndpbmRvdzpyZXNpemVcIiwgW1wiJGV2ZW50XCJdKVxuICBvblJlc2l6ZSgpIHtcbiAgICB0aGlzLnNldElubGluZUZsZXgoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5haXJwb3J0cykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIGlucHV0OiBbYWlycG9ydHNdJyk7XG4gICAgfVxuXG4gICAgdGhpcy5yZXN1bHRzTGFiZWxzID0ge1xuICAgICAgYWxsQWlycG9ydHM6IHRoaXMuYWxsQWlycG9ydHNMYWJlbCB8fCAnJyxcbiAgICAgIGNsb3Nlc3RBaXJwb3J0czogdGhpcy5jbG9zZXN0QWlycG9ydHNMYWJlbCB8fCAnJyxcbiAgICAgIGxhdGVzdFNlYXJjaGVzOiB0aGlzLmxhdGVzdFNlYXJjaGVzTGFiZWwgfHwgJycsXG4gICAgICBnZW9sb2NhdGlvbjogdGhpcy5nZW9sb2NhdGlvbkxhYmVsIHx8ICcnLFxuICAgICAgZ2VvbG9jYXRpb25EZW5pZWQ6IHRoaXMuZ2VvbG9jYXRpb25CbG9ja2VkTGFiZWwgfHwgJydcbiAgICB9O1xuXG4gICAgdGhpcy50ZXh0U2VsZWN0T3JpZ2luRmlyc3QgPSB0aGlzLnNlbGVjdE9yaWdpbkZpcnN0TGFiZWw7XG4gICAgdGhpcy5haXJwb3J0c09yaWdpbiA9IHRoaXMuYWxsb3dlZE9yaWdpbkFpcG9ydHMgJiYgdGhpcy5hbGxvd2VkT3JpZ2luQWlwb3J0cy5sZW5ndGggPiAwID8gdGhpcy5hbGxvd2VkT3JpZ2luQWlwb3J0cyA6IHRoaXMuYWlycG9ydHM7XG5cbiAgICB0aGlzLmFpcnBvcnRzRGVzdGluYXRpb24gPSB0aGlzLmdldEFpcnBvcnRzRGVzdGluYXRpb25zKCk7XG5cbiAgICBpZiAodGhpcy5uYXNGb3JtR3JvdXApIHtcbiAgICAgIGlmICh0aGlzLm5hc0Zvcm1Db250cm9sTmFtZU9yaWdpbikge1xuICAgICAgICBjb25zdCBvcmlnaW5Db250cm9sID0gdGhpcy5uYXNGb3JtR3JvdXAuZ2V0KHRoaXMubmFzRm9ybUNvbnRyb2xOYW1lT3JpZ2luKTtcblxuICAgICAgICBpZiAob3JpZ2luQ29udHJvbCkge1xuICAgICAgICAgIGNvbnN0IG9yaWdpbiA9IHRoaXMuYWlycG9ydHNPcmlnaW4uZmluZCh4ID0+IHgubmFtZSA9PT0gb3JpZ2luQ29udHJvbC52YWx1ZSk7XG5cbiAgICAgICAgICBpZiAob3JpZ2luKSB7XG4gICAgICAgICAgICB0aGlzLm9yaWdpbkFpcnBvcnRDb2RlID0gb3JpZ2luLmNvZGU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLm5hc0Zvcm1Db250cm9sTmFtZURlc3RpbmF0aW9uKSB7XG4gICAgICAgIGNvbnN0IGRlc3RpbmF0aW9uQ29udHJvbCA9IHRoaXMubmFzRm9ybUdyb3VwLmdldCh0aGlzLm5hc0Zvcm1Db250cm9sTmFtZURlc3RpbmF0aW9uKTtcblxuICAgICAgICBpZiAoZGVzdGluYXRpb25Db250cm9sKSB7XG4gICAgICAgICAgY29uc3QgZGVzdGluYXRpb24gPSB0aGlzLmFpcnBvcnRzRGVzdGluYXRpb24uZmluZCh4ID0+IHgubmFtZSA9PT0gZGVzdGluYXRpb25Db250cm9sLnZhbHVlKTtcblxuICAgICAgICAgIGlmIChkZXN0aW5hdGlvbikge1xuICAgICAgICAgICAgdGhpcy5kZXN0aW5hdGlvbkFpcnBvcnRDb2RlID0gZGVzdGluYXRpb24uY29kZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghdGhpcy5kZXN0aW5hdGlvbikge1xuICAgICAgdGhpcy5jbGVhckRlc3RpbmF0aW9uKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5kZXN0aW5hdGlvbkNoYW5nZS5lbWl0KHRoaXMuZGVzdGluYXRpb24pO1xuICAgIHRoaXMub3JpZ2luQ2hhbmdlLmVtaXQodGhpcy5vcmlnaW4pO1xuXG5cbiAgICBpZiAodGhpcy5vcmlnaW5BaXJwb3J0Q29kZSkge1xuICAgICAgdGhpcy5zZXRPcmlnaW4oKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kZXN0aW5hdGlvbkFpcnBvcnRDb2RlKSB7XG4gICAgICB0aGlzLnNldERlc3RpbmF0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0SW5saW5lRmxleCgpO1xuICB9XG5cbiAgZ2V0QWlycG9ydFNlbGVjdENvbWJvQ2xhc3MoZWxlbWVudD86IHN0cmluZywgbW9kaWZpZXJzSW5wdXQ/OiBhbnkpOiBDbGFzc01vZGVsIHtcbiAgICBsZXQgbW9kaWZpZXJzID0gbW9kaWZpZXJzSW5wdXQ7XG5cbiAgICBpZiAodHlwZW9mIG1vZGlmaWVyc0lucHV0ID09PSAnc3RyaW5nJyB8fCBtb2RpZmllcnNJbnB1dCBpbnN0YW5jZW9mIFN0cmluZykge1xuICAgICAgbW9kaWZpZXJzID0gW21vZGlmaWVyc0lucHV0XTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgYmxvY2s6ICduYXMtYWlycG9ydC1zZWxlY3QtbmV3LWNvbWJvJyxcbiAgICAgIGVsZW1lbnQ6IGVsZW1lbnQsXG4gICAgICBtb2RpZmllcnM6IG1vZGlmaWVyc1xuICAgIH07XG4gIH1cblxuICBvbk9yaWdpbk9wZW4ob3BlbjogYm9vbGVhbik6IHZvaWQge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5vcmlnaW5PcGVuID0gb3BlbjtcbiAgICB9KTtcbiAgICB0aGlzLmRlc3RpbmF0aW9uT3BlbiA9IGZhbHNlO1xuICAgIHRoaXMub3JpZ2luT3BlbkNoYW5nZS5lbWl0KG9wZW4pO1xuICB9XG5cbiAgb25EZXN0aW5hdGlvbk9wZW4ob3BlbjogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGVzdGluYXRpb25PcGVuID0gb3BlbjtcbiAgICB0aGlzLm9yaWdpbk9wZW4gPSBmYWxzZTtcbiAgICB0aGlzLmRlc3RpbmF0aW9uT3BlbkNoYW5nZS5lbWl0KG9wZW4pO1xuICB9XG5cbiAgb25TZWxlY3Rpb25DbGVhcmVkKCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXJlZCA9IHRydWU7XG4gIH1cblxuICBzZXRTZWxlY3RlZE9yaWdpbihhaXJwb3J0OiBBaXJwb3J0TW9kZWwpOiB2b2lkIHtcbiAgICBpZiAoIWFpcnBvcnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLm9yaWdpbiA9IGFpcnBvcnQ7XG4gICAgdGhpcy5vcmlnaW5BaXJwb3J0Q29kZVZhbHVlID0gYWlycG9ydC5jb2RlO1xuICAgIHRoaXMuaXNEZXN0aW5hdGlvblZhbGlkID0gYWlycG9ydC5jb2RlID8gdHJ1ZSA6IGZhbHNlO1xuXG4gICAgaWYgKHRoaXMuYWlycG9ydFJlbGF0aW9ucyAmJiB0aGlzLmhhc1ZhbGlkRGVzdGluYXRpb25zKGFpcnBvcnQpKSB7XG4gICAgICB0aGlzLnVwZGF0ZVZhbGlkQWlycG9ydERlc3RpbmF0aW9ucyhhaXJwb3J0KTtcbiAgICAgIHRoaXMuc2V0Q3VycmVudExhdGVzdFNlYXJjaGVzRGVzdGluYXRpb24oKTtcbiAgICB9XG4gICAgdGhpcy5jbGVhcmVkID0gZmFsc2U7XG4gICAgdGhpcy5vcmlnaW5DaGFuZ2UuZW1pdChhaXJwb3J0KTtcbiAgfVxuXG4gIHNldFNlbGVjdGVkRGVzdGluYXRpb24oYWlycG9ydDogQWlycG9ydE1vZGVsKTogdm9pZCB7XG4gICAgaWYgKCFhaXJwb3J0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5kZXN0aW5hdGlvbiA9IGFpcnBvcnQ7XG4gICAgdGhpcy5kZXN0aW5hdGlvbkFpcnBvcnRDb2RlVmFsdWUgPSBhaXJwb3J0LmNvZGU7XG4gICAgdGhpcy5jbGVhcmVkID0gZmFsc2U7XG4gICAgdGhpcy5kZXN0aW5hdGlvbkNoYW5nZS5lbWl0KGFpcnBvcnQpO1xuICB9XG5cbiAgc2V0Rm9jdXNPbk5leHQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmZvY3VzT25OZXh0LmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgb25PcmlnaW5Gb2N1cygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5haXJwb3J0U2VsZWN0RHJvcGRvd25PcmlnaW4pIHtcbiAgICAgIHRoaXMub25PcmlnaW5PcGVuKHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIGNoYW5nZVN3aXRjaEljb24oKTogdm9pZCB7XG4gICAgdGhpcy5zd2l0Y2hUeXBlID0gdGhpcy5zd2l0Y2hUeXBlID09PSAnc3dpdGNoJyA/ICdzd2l0Y2gtLXNlY29uZGFyeScgOiAnc3dpdGNoJztcbiAgfVxuXG4gIHN3YXBBaXJwb3J0cygpOiB2b2lkIHtcbiAgICBjb25zdCBkZXN0aW5hdGlvbiA9IHsgLi4udGhpcy5kZXN0aW5hdGlvbiB9O1xuICAgIGNvbnN0IG9yaWdpbiA9IHsgLi4udGhpcy5vcmlnaW4gfTtcbiAgICB0aGlzLmRlc3RpbmF0aW9uID0gb3JpZ2luO1xuICAgIHRoaXMub3JpZ2luID0gZGVzdGluYXRpb247XG5cbiAgICB0aGlzLnNldFNlbGVjdGVkRGVzdGluYXRpb24odGhpcy5kZXN0aW5hdGlvbik7XG4gICAgdGhpcy5zZXRTZWxlY3RlZE9yaWdpbih0aGlzLm9yaWdpbik7XG4gIH1cblxuICBzd2FwS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICBjYXNlICdFbnRlcic6XG4gICAgICAgIHRoaXMuc3dhcEFpcnBvcnRzKCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHNldERlc3RpbmF0aW9uT3BlbihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmV4aXN0cyh0aGlzLmNvbWJvKSkge1xuICAgICAgdGhpcy5kZXN0aW5hdGlvbk9wZW4gPSB0cnVlO1xuICAgICAgdGhpcy5vcmlnaW5PcGVuID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0Rm9jdXNPbk5leHQoZXZlbnQpO1xuICAgIH1cbiAgfVxuXG4gIGdldENsb3Nlc3RBaXJwb3J0cyhwb3NpdGlvbjogR2VvbG9jYXRpb25Qb3NpdGlvbik6IHZvaWQge1xuICAgIHRoaXMucG9zaXRpb25DaGFuZ2UuZW1pdChwb3NpdGlvbik7XG4gIH1cblxuICBzZXRJbmxpbmVGbGV4KCk6IHZvaWQge1xuICAgIGlmKCF0aGlzLmNvbnRhaW5lciAmJiAhdGhpcy5jb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pbmxpbmVGbGV4ID0gdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCA+IDcwMDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QWlycG9ydHNEZXN0aW5hdGlvbnMoKTogQXJyYXk8QWlycG9ydE1vZGVsPiB7XG4gICAgY29uc3QgYWxsb3dlZERlc3RpbmF0aW9uQWlycG9ydHMgPSB0aGlzLmFsbG93ZWREZXN0aW5hdGlvbkFpcnBvcnRzO1xuXG4gICAgcmV0dXJuIGFsbG93ZWREZXN0aW5hdGlvbkFpcnBvcnRzICYmIGFsbG93ZWREZXN0aW5hdGlvbkFpcnBvcnRzLmxlbmd0aCA+IDBcbiAgICAgID8gYWxsb3dlZERlc3RpbmF0aW9uQWlycG9ydHNcbiAgICAgIDogdGhpcy5haXJwb3J0cztcbiAgfVxuXG4gIHByaXZhdGUgc2V0T3JpZ2luKCk6IHZvaWQge1xuICAgIGNvbnN0IGFpcnBvcnQgPSB0aGlzLmFpcnBvcnRzLmZpbmQoeCA9PiB4LmNvZGUgPT09IHRoaXMub3JpZ2luQWlycG9ydENvZGUpO1xuXG4gICAgaWYgKGFpcnBvcnQpIHtcbiAgICAgIHRoaXMuc2V0U2VsZWN0ZWRPcmlnaW4oYWlycG9ydCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXREZXN0aW5hdGlvbigpOiB2b2lkIHtcbiAgICBjb25zdCBhaXJwb3J0ID0gdGhpcy5haXJwb3J0cy5maW5kKHggPT4geC5jb2RlID09PSB0aGlzLmRlc3RpbmF0aW9uQWlycG9ydENvZGUpO1xuXG4gICAgaWYgKGFpcnBvcnQpIHtcbiAgICAgIHRoaXMuc2V0U2VsZWN0ZWREZXN0aW5hdGlvbihhaXJwb3J0KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVZhbGlkQWlycG9ydERlc3RpbmF0aW9ucyhhaXJwb3J0OiBBaXJwb3J0TW9kZWwpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuYWlycG9ydFJlbGF0aW9ucykge1xuICAgICAgdGhpcy5haXJwb3J0c0Rlc3RpbmF0aW9uID0gdGhpcy5haXJwb3J0c09yaWdpbjtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdmFsaWREZXN0aW5hdGlvbnMgPSB0aGlzLmdldEFpcnBvcnRSZWxhdGlvbnMoYWlycG9ydCk7XG5cbiAgICAgIGlmICghdmFsaWREZXN0aW5hdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodmFsaWREZXN0aW5hdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRoaXMuY2xlYXJEZXN0aW5hdGlvbnMoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldCBpc0Rlc3RpbmF0aW9uVmFsaWQ6IGJvb2xlYW47XG4gICAgICAgIGlmICh0aGlzLmRlc3RpbmF0aW9uICYmIHRoaXMuZGVzdGluYXRpb24uY29kZSkge1xuICAgICAgICAgIGlzRGVzdGluYXRpb25WYWxpZCA9IHZhbGlkRGVzdGluYXRpb25zLnNvbWUoeCA9PiB4ICYmIHgudG9Mb3dlckNhc2UoKSA9PT0gdGhpcy5kZXN0aW5hdGlvbi5jb2RlLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNEZXN0aW5hdGlvblZhbGlkKSB7XG4gICAgICAgICAgdGhpcy5jbGVhckRlc3RpbmF0aW9uKCk7XG4gICAgICAgICAgdGhpcy5kZXN0aW5hdGlvbkNoYW5nZS5lbWl0KG51bGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuYWlycG9ydHMpIHtcbiAgICAgICAgICB0aGlzLmFpcnBvcnRzRGVzdGluYXRpb24gPSB0aGlzLmFpcnBvcnRzXG4gICAgICAgICAgICAuZmlsdGVyKGFpcnBvcnRJdGVtID0+IGFpcnBvcnRJdGVtXG4gICAgICAgICAgICAgICYmIGFpcnBvcnRJdGVtLmNvZGVcbiAgICAgICAgICAgICAgJiYgdmFsaWREZXN0aW5hdGlvbnMuc29tZSh4ID0+IHggJiYgYWlycG9ydEl0ZW0uY29kZS50b0xvd2VyQ2FzZSgpID09PSB4LnRvTG93ZXJDYXNlKCkpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFzVmFsaWREZXN0aW5hdGlvbnMob3JpZ2luOiBBaXJwb3J0TW9kZWwpOiBib29sZWFuIHtcbiAgICBpZiAoIW9yaWdpbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHJlbGF0aW9ucyA9IHRoaXMuZ2V0QWlycG9ydFJlbGF0aW9ucyhvcmlnaW4pO1xuXG4gICAgcmV0dXJuIHJlbGF0aW9ucyAmJiByZWxhdGlvbnMubGVuZ3RoID4gMDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QWlycG9ydFJlbGF0aW9ucyhhaXJwb3J0OiBBaXJwb3J0TW9kZWwpOiBBcnJheTxzdHJpbmc+IHtcbiAgICBpZiAoIXRoaXMuYWlycG9ydHMpIHtcbiAgICAgIHJldHVybiBuZXcgQXJyYXk8c3RyaW5nPigpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFpcnBvcnRSZWxhdGlvbnNbYWlycG9ydC5jb2RlLnRvTG93ZXJDYXNlKCldIHx8IHRoaXMuYWlycG9ydFJlbGF0aW9uc1thaXJwb3J0LmNvZGUudG9VcHBlckNhc2UoKV07XG4gIH1cblxuICBwcml2YXRlIGNsZWFyT3JpZ2luKCkge1xuICAgIHRoaXMuc2V0U2VsZWN0ZWRPcmlnaW4oe1xuICAgICAgY29kZTogJycsXG4gICAgICBjb3VudHJ5TmFtZTogJycsXG4gICAgICBuYW1lOiAnJyxcbiAgICAgIGFpcnBvcnROYW1lOiAnJyxcbiAgICAgIGRpc3BsYXlOYW1lOiAnJyxcbiAgICAgIG5vcm1hbGl6ZWRBaXJwb3J0TmFtZTogJydcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJEZXN0aW5hdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLnNldFNlbGVjdGVkRGVzdGluYXRpb24oe1xuICAgICAgY29kZTogJycsXG4gICAgICBjb3VudHJ5TmFtZTogJycsXG4gICAgICBuYW1lOiAnJyxcbiAgICAgIGFpcnBvcnROYW1lOiAnJyxcbiAgICAgIGRpc3BsYXlOYW1lOiAnJyxcbiAgICAgIG5vcm1hbGl6ZWRBaXJwb3J0TmFtZTogJydcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJEZXN0aW5hdGlvbnMoKTogdm9pZCB7XG4gICAgdGhpcy5haXJwb3J0c0Rlc3RpbmF0aW9uID0gbmV3IEFycmF5PEFpcnBvcnRNb2RlbD4oKTtcblxuICAgIGNvbnN0IG1vZGVsID0ge1xuICAgICAgbmFtZTogdGhpcy50ZXh0U2VsZWN0T3JpZ2luRmlyc3QsXG4gICAgICBjb3VudHJ5TmFtZTogJycsXG4gICAgICBjb2RlOiAnJyxcbiAgICAgIGFpcnBvcnROYW1lOiAnJyxcbiAgICAgIGRpc3BsYXlOYW1lOiAnJyxcbiAgICAgIG5vcm1hbGl6ZWRBaXJwb3J0TmFtZTogJydcbiAgICB9O1xuXG4gICAgdGhpcy5haXJwb3J0c0Rlc3RpbmF0aW9uLnB1c2gobW9kZWwpO1xuICAgIHRoaXMuY2xlYXJEZXN0aW5hdGlvbigpO1xuICAgIHRoaXMuZGVzdGluYXRpb25DaGFuZ2UuZW1pdChtb2RlbCk7XG4gIH1cblxuICBwcml2YXRlIHNldEN1cnJlbnRMYXRlc3RTZWFyY2hlc0Rlc3RpbmF0aW9uKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFpcnBvcnRzRGVzdGluYXRpb24pIHtcbiAgICAgIHRoaXMuY3VycmVudExhdGVzdFNlYXJjaGVzRGVzdGluYXRpb24gPSB0aGlzLmFpcnBvcnRzRGVzdGluYXRpb24uZmlsdGVyKGFpcnBvcnQgPT4ge1xuICAgICAgICBpZiAodGhpcy5sYXRlc3RTZWFyY2hlc0Rlc3RpbmF0aW9uKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMubGF0ZXN0U2VhcmNoZXNEZXN0aW5hdGlvbi5zb21lKHggPT4geC5jb2RlICYmIHguY29kZS50b0xvd2VyQ2FzZSgpID09PSBhaXJwb3J0LmNvZGUudG9Mb3dlckNhc2UoKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cImV4aXN0cyhjb21ibyk7IGVsc2UgYWlycG9ydFNlbGVjdFRlbXBsYXRlXCJcbiAgW25hc0NsYXNzXT1cImdldEFpcnBvcnRTZWxlY3RDb21ib0NsYXNzKCcnLCBbaW5saW5lRmxleCAmJiAnaW5saW5lJ10pXCIgI2NvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImFpcnBvcnRTZWxlY3RUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuPC9kaXY+XG48bmctdGVtcGxhdGUgI2FpcnBvcnRTZWxlY3RUZW1wbGF0ZT5cbiAgPGRpdiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJycsIGV4aXN0cyh1c2VTd2l0Y2gpICYmICdwYWRkaW5nLW9yaWdpbicpXCJcbiAgICAqbmdJZj1cImFpcnBvcnRzT3JpZ2luXCI+XG4gICAgPG5hcy1haXJwb3J0LXNlbGVjdC1kcm9wZG93biAjYWlycG9ydFNlbGVjdERyb3Bkb3duT3JpZ2luXG4gICAgICBkaXNwbGF5TGF0ZXN0U2VhcmNoZXNcbiAgICAgIFtlbmFibGVHZW9sb2NhdGlvbl09XCJkaXNwbGF5Q2xvc2VzdEFpcnBvcnRzXCJcbiAgICAgIFtkaXNwbGF5Q2xvc2VzdEFpcnBvcnRzXT1cImRpc3BsYXlDbG9zZXN0QWlycG9ydHNcIlxuICAgICAgW2FpcnBvcnRTZWxlY3RMYWJlbF09XCJsYWJlbE9yaWdpblwiXG4gICAgICBbbGF0ZXN0U2VhcmNoZXNdPVwibGF0ZXN0U2VhcmNoZXNPcmlnaW5cIlxuICAgICAgW2Nsb3Nlc3RBaXJwb3J0c109XCJjbG9zZXN0QWlycG9ydHNcIlxuICAgICAgW2FpcnBvcnRdPVwib3JpZ2luXCJcbiAgICAgIFthaXJwb3J0c109XCJhaXJwb3J0c09yaWdpblwiXG4gICAgICBbcmVzdWx0c0xhYmVsc109XCJyZXN1bHRzTGFiZWxzXCJcbiAgICAgIFthaXJwb3J0U2VsZWN0UGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJPcmlnaW5cIlxuICAgICAgW29wZW5dPVwib3JpZ2luT3BlblwiXG4gICAgICBba2VlcFNlbGVjdGlvbl09XCJrZWVwU2VsZWN0aW9uXCJcbiAgICAgIFthaXJwb3J0U2VsZWN0SWNvbk1vZGlmaWVyXT1cIidmbGlnaHQtZGVwYXJ0dXJlJ1wiXG4gICAgICBbbmFzRm9ybUNvbnRyb2xOYW1lXT1cIm5hc0Zvcm1Db250cm9sTmFtZU9yaWdpblwiXG4gICAgICBbbmFzRm9ybUdyb3VwXT1cIm5hc0Zvcm1Hcm91cFwiXG4gICAgICBbYXJpYUxhYmVsQ2xlYXJdPVwiYXJpYUxhYmVsQ2xlYXJcIlxuICAgICAgW2FyaWFMYWJlbEJhY2tkcm9wXT1cImFyaWFMYWJlbEJhY2tkcm9wXCJcbiAgICAgIChjbGVhcmVkU2VsZWN0aW9uKT1cIm9uU2VsZWN0aW9uQ2xlYXJlZCgpXCJcbiAgICAgIChzZWxlY3RlZCk9XCJzZXRTZWxlY3RlZE9yaWdpbigkZXZlbnQpXCJcbiAgICAgIChvcGVuQ2hhbmdlKT1cIm9uT3JpZ2luT3BlbigkZXZlbnQpXCJcbiAgICAgIChmb2N1c09uTmV4dCk9XCJzZXREZXN0aW5hdGlvbk9wZW4oJGV2ZW50KVwiXG4gICAgICAocG9zaXRpb25DaGFuZ2UpPVwiZ2V0Q2xvc2VzdEFpcnBvcnRzKCRldmVudClcIj48L25hcy1haXJwb3J0LXNlbGVjdC1kcm9wZG93bj5cbiAgPC9kaXY+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJleGlzdHMoY29tYm8pXCI+XG4gICAgPGRpdiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJycsIGV4aXN0cyh1c2VTd2l0Y2gpICYmICdwYWRkaW5nLWRlc3RpbmF0aW9uJylcIlxuICAgICAgKm5nSWY9XCJhaXJwb3J0c0Rlc3RpbmF0aW9uICYmIGFpcnBvcnRzRGVzdGluYXRpb24ubGVuZ3RoID4gMFwiPlxuICAgICAgPG5hcy1haXJwb3J0LXNlbGVjdC1kcm9wZG93biAjYWlycG9ydFNlbGVjdERyb3Bkb3duRGVzdGluYXRpb25cbiAgICAgICAgZGlzcGxheUxhdGVzdFNlYXJjaGVzXG4gICAgICAgIFthaXJwb3J0U2VsZWN0TGFiZWxdPVwibGFiZWxEZXN0aW5hdGlvblwiXG4gICAgICAgIFtkaXNwbGF5Q2xvc2VzdEFpcnBvcnRzXT1cImZhbHNlXCJcbiAgICAgICAgW2xhdGVzdFNlYXJjaGVzXT1cImN1cnJlbnRMYXRlc3RTZWFyY2hlc0Rlc3RpbmF0aW9uXCJcbiAgICAgICAgW2FpcnBvcnRzXT1cImFpcnBvcnRzRGVzdGluYXRpb25cIlxuICAgICAgICBbcmVzdWx0c0xhYmVsc109XCJyZXN1bHRzTGFiZWxzXCJcbiAgICAgICAgW2FpcnBvcnRdPVwiZGVzdGluYXRpb25cIlxuICAgICAgICBbYWlycG9ydFNlbGVjdFBsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyRGVzdGluYXRpb25cIlxuICAgICAgICBbb3Blbl09XCJkZXN0aW5hdGlvbk9wZW5cIlxuICAgICAgICBba2VlcFNlbGVjdGlvbl09XCJrZWVwU2VsZWN0aW9uXCJcbiAgICAgICAgW2FpcnBvcnRTZWxlY3RJY29uTW9kaWZpZXJdPVwiJ2ZsaWdodC1hcnJpdmFsJ1wiXG4gICAgICAgIFtuYXNGb3JtQ29udHJvbE5hbWVdPVwibmFzRm9ybUNvbnRyb2xOYW1lRGVzdGluYXRpb25cIlxuICAgICAgICBbbmFzRm9ybUdyb3VwXT1cIm5hc0Zvcm1Hcm91cFwiXG4gICAgICAgIFthcmlhTGFiZWxDbGVhcl09XCJhcmlhTGFiZWxDbGVhclwiXG4gICAgICAgIFthcmlhTGFiZWxCYWNrZHJvcF09XCJhcmlhTGFiZWxCYWNrZHJvcFwiXG4gICAgICAgIFtpc1ZhbGlkXT1cImlzRGVzdGluYXRpb25WYWxpZFwiXG4gICAgICAgIFtpbnZhbGlkVGV4dF09XCJpbnZhbGlkRGVzdGluYXRpb25UZXh0XCJcbiAgICAgICAgKGNsZWFyZWRTZWxlY3Rpb24pPVwib25TZWxlY3Rpb25DbGVhcmVkKClcIlxuICAgICAgICAoc2VsZWN0ZWQpPVwic2V0U2VsZWN0ZWREZXN0aW5hdGlvbigkZXZlbnQpXCJcbiAgICAgICAgKG9wZW5DaGFuZ2UpPVwib25EZXN0aW5hdGlvbk9wZW4oJGV2ZW50KVwiXG4gICAgICAgIChmb2N1c09uTmV4dCk9XCJzZXRGb2N1c09uTmV4dCgkZXZlbnQpXCJcbiAgICAgICAgKGZvY3VzT25QcmV2aW91cyk9XCJvbk9yaWdpbkZvY3VzKClcIj48L25hcy1haXJwb3J0LXNlbGVjdC1kcm9wZG93bj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiZXhpc3RzKHVzZVN3aXRjaCkgJiYgIShvcmlnaW5PcGVuIHx8IGRlc3RpbmF0aW9uT3BlbiB8fCBjbGVhcmVkKVwiXG4gICAgICAjc3dpdGNoQnV0dG9uXG4gICAgICBbbmFzQ2xhc3NdPVwiZ2V0QWlycG9ydFNlbGVjdENvbWJvQ2xhc3MoJ3N3aXRjaGVyJywgKG9yaWdpbkFpcnBvcnRDb2RlVmFsdWUgJiYgZGVzdGluYXRpb25BaXJwb3J0Q29kZVZhbHVlKSAmJiAnZmlsbGVkJylcIlxuICAgICAgKG1vdXNlb3Zlcik9XCJjaGFuZ2VTd2l0Y2hJY29uKClcIlxuICAgICAgKG1vdXNlbGVhdmUpPVwiY2hhbmdlU3dpdGNoSWNvbigpXCJcbiAgICAgIChrZXlkb3duKT1cInN3YXBLZXlEb3duKCRldmVudClcIlxuICAgICAgKGNsaWNrKT1cInN3YXBBaXJwb3J0cygpXCI+XG4gICAgICA8bmFzLWljb24gW3R5cGVdPVwiKHRoaXMuZGVzdGluYXRpb25BaXJwb3J0Q29kZVZhbHVlICYmIHRoaXMub3JpZ2luQWlycG9ydENvZGVWYWx1ZSkgPyAndmVjdG9yLS1zZWNvbmRhcnknIDogJ3ZlY3RvcidcIj48L25hcy1pY29uPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+Il19
|
|
477
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWlycG9ydC1zZWxlY3QtbmV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYWlycG9ydC1zZWxlY3QtbmV3L2FpcnBvcnQtc2VsZWN0LW5ldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2FpcnBvcnQtc2VsZWN0LW5ldy9haXJwb3J0LXNlbGVjdC1uZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixpQkFBaUIsRUFDakIsU0FBUyxFQUlULFlBQVksRUFDYixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7Ozs7OztBQUk5Qzs7O0dBR0c7QUFPSCxNQUFNLE9BQU8seUJBQTBCLFNBQVEsZ0JBQWdCO0lBcU83RDs7OztPQUlHO0lBQ0gsSUFDSSxpQkFBaUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUM7SUFDckMsQ0FBQztJQUNELElBQUksaUJBQWlCLENBQUMsSUFBWTtRQUNoQyxJQUFJLElBQUksRUFBRTtZQUNSLElBQUksSUFBSSxLQUFLLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtnQkFDeEMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQztnQkFDbkMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2FBQ2xCO1NBQ0Y7YUFBTTtZQUNMLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3BCO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUNJLHNCQUFz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RUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBOb3J3ZWdpYW4gQWlyIFNodXR0bGUuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKi9cblxuaW1wb3J0IHsgQWlycG9ydE1vZGVsIH0gZnJvbSAnLi9tb2RlbHMvYWlycG9ydC5tb2RlbCc7XG5pbXBvcnQgeyBDbGFzc01vZGVsIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbHMvY2xhc3MubW9kZWwnO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBWaWV3Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIE9uSW5pdCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgSG9zdExpc3RlbmVyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTmFzQ29tcG9uZW50QmFzZSB9IGZyb20gJy4uLy4uL2NvcmUnO1xuaW1wb3J0IHsgUmVzdWx0c0xhYmVsc01vZGVsIH0gZnJvbSAnLi9tb2RlbHMvcmVzdWx0cy1sYWJlbHMubW9kZWwnO1xuaW1wb3J0IHsgQWlycG9ydFNlbGVjdERyb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnLi9haXJwb3J0LXNlbGVjdC1kcm9wZG93bi9haXJwb3J0LXNlbGVjdC1kcm9wZG93bi5jb21wb25lbnQnO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICogTm9yd2VnaWFuIEFpcnBvcnQgU2VsZWN0IENvbXBvbmVudCB8IE5ldyBkZXNpZ24gfCBCZXRhXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25hcy1haXJwb3J0LXNlbGVjdC1uZXcnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWlycG9ydC1zZWxlY3QtbmV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYWlycG9ydC1zZWxlY3QtbmV3LmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgQWlycG9ydFNlbGVjdE5ld0NvbXBvbmVudCBleHRlbmRzIE5hc0NvbXBvbmVudEJhc2UgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICBhaXJwb3J0c09yaWdpbjogQXJyYXk8QWlycG9ydE1vZGVsPjtcbiAgYWlycG9ydHNEZXN0aW5hdGlvbiA9IG5ldyBBcnJheTxBaXJwb3J0TW9kZWw+KCk7XG4gIGN1cnJlbnRMYXRlc3RTZWFyY2hlc0Rlc3RpbmF0aW9uOiBBcnJheTxBaXJwb3J0TW9kZWw+O1xuICBjbG9zZXN0QWlycG9ydHNEZXN0aW5hdGlvbjogQXJyYXk8QWlycG9ydE1vZGVsPjtcbiAgZm9jdXNEZXN0aW5hdGlvbiA9IGZhbHNlO1xuICB0ZXh0U2VsZWN0T3JpZ2luRmlyc3Q6IHN0cmluZztcbiAgZm9jdXNlZExhdGVzdFNlYXJjaGVzQWlycG9ydENvZGVEZXN0aW5hdGlvbjogc3RyaW5nO1xuICBmb2N1c2VkQWlycG9ydENvZGVEZXN0aW5hdGlvbjogc3RyaW5nO1xuICBmb2N1c2VkTGF0ZXN0U2VhcmNoZXNJbmRleERlc3RpbmF0aW9uID0gLTE7XG4gIGZvY3VzZWRBaXJwb3J0SW5kZXhEZXN0aW5hdGlvbiA9IC0xO1xuICBzd2l0Y2hUeXBlID0gJ3N3aXRjaCc7XG4gIGlzRGVzdGluYXRpb25WYWxpZDogYm9vbGVhbjtcbiAgaW5saW5lRmxleCA9IGZhbHNlO1xuXG4gIHJlc3VsdHNMYWJlbHM6IFJlc3VsdHNMYWJlbHNNb2RlbCA9IHtcbiAgICBhbGxBaXJwb3J0czogJycsXG4gICAgY2xvc2VzdEFpcnBvcnRzOiAnJyxcbiAgICBsYXRlc3RTZWFyY2hlczogJycsXG4gICAgZ2VvbG9jYXRpb246ICcnLFxuICAgIGdlb2xvY2F0aW9uRGVuaWVkOiAnJ1xuICB9O1xuXG4gIG9yaWdpbk9wZW4gPSBmYWxzZTtcbiAgZGVzdGluYXRpb25PcGVuID0gZmFsc2U7XG4gIGNsZWFyZWQgPSBmYWxzZTtcblxuICBAVmlld0NoaWxkKCdjb250YWluZXInKSBjb250YWluZXI6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ3N3aXRjaEJ1dHRvbicpIHN3aXRjaEJ1dHRvbjogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnYWlycG9ydFNlbGVjdERyb3Bkb3duT3JpZ2luJykgYWlycG9ydFNlbGVjdERyb3Bkb3duT3JpZ2luOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdhaXJwb3J0U2VsZWN0RHJvcGRvd25EZXN0aW5hdGlvbicpIGFpcnBvcnRTZWxlY3REcm9wZG93bkRlc3RpbmF0aW9uOiBBaXJwb3J0U2VsZWN0RHJvcGRvd25Db21wb25lbnQ7XG5cbiAgb3JpZ2luOiBBaXJwb3J0TW9kZWw7XG4gIGRlc3RpbmF0aW9uOiBBaXJwb3J0TW9kZWw7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAcmVxdWlyZWRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFsbCBhaXJwb3J0cyB0aGF0IHdpbGwgYmUgcG9wdWxhdGVkIGludG8gdGhlIGRyb3Bkb3duIGxpc3RzLlxuICAgKi9cbiAgQElucHV0KCkgYWlycG9ydHM6IEFycmF5PEFpcnBvcnRNb2RlbD47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSByZWNvcmQgY29udGFpbmluZyBrZXlzIHdpdGggYWxsIGFpcnBvcnQgY29kZXMgd2l0aCBjb3JyZXNwb25kaW5nIGFycmF5IG9mIGFpcnBvcnQgY29kZXMgY29ubmVjdGVkIHRvIHRoZSBrZXkuXG4gICAqL1xuICBASW5wdXQoKSBhaXJwb3J0UmVsYXRpb25zOiBSZWNvcmQ8c3RyaW5nLCBBcnJheTxzdHJpbmc+PjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBbiBhcnJheSBvZiBvcmlnaW4gYWlycG9ydHMgdGhhdCB0aGUgdXNlciBoYXMgYWxscmVhZHkgc2VhcmNoIGZvci5cbiAgICovXG4gIEBJbnB1dCgpIGxhdGVzdFNlYXJjaGVzT3JpZ2luOiBBcnJheTxBaXJwb3J0TW9kZWw+O1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFuIGFycmF5IG9mIGRlc3RpbmF0aW9uIGFpcnBvcnRzIHRoYXQgdGhlIHVzZXIgaGFzIGFsbHJlYWR5IHNlYXJjaCBmb3IuXG4gICAqL1xuICBASW5wdXQoKSBsYXRlc3RTZWFyY2hlc0Rlc3RpbmF0aW9uOiBBcnJheTxBaXJwb3J0TW9kZWw+O1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFuIGFycmF5IG9mIGFpcnBvcnRzIHRoYXQgYXJlIGNsb3NlIHRvIHRoZSB1c2VyLlxuICAgKi9cbiAgQElucHV0KCkgY2xvc2VzdEFpcnBvcnRzOiBBcnJheTxBaXJwb3J0TW9kZWw+O1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgbGlzdCBvZiBhaXJwb3J0cyB0aGF0IHNob3VsZCBiZSBkaXNwbGF5ZWQgaW4gdGhlIG9yaWdpbiBkcm9wZG93bi5cbiAgICogSWYgbm90IGluY2x1ZGVkLCBhbGwgYWlycG9ydHMgd2lsbCBiZSBkaXNwbGF5ZWQuXG4gICAqL1xuICBASW5wdXQoKSBhbGxvd2VkT3JpZ2luQWlwb3J0czogQXJyYXk8QWlycG9ydE1vZGVsPjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBbiBhcnJheSBvZiBhaXJwb3J0cyB0aGF0IGFyZSByZXN0cmljdGVkIGZvciBkZXN0aW5hdGlvbiBhaXJwb3J0cy4gSXQgd2lsbCBkZWZhdWx0IHRvIGFpcnBvcnRzIGlmIG5vdCBzZXQuXG4gICAqL1xuICBASW5wdXQoKSBhbGxvd2VkRGVzdGluYXRpb25BaXJwb3J0czogQXJyYXk8QWlycG9ydE1vZGVsPjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBIGJvb2xlYW4gaW5kaWNhdGluZyBpZiBhaXJwb3J0cyB0aGF0IHRoZSB1c2VyIGFsbHJlYWR5IGhhcyBzZWFyaCBmb3Igc2hvdWxkIGJlIGRpc3BsYXllZC5cbiAgICovXG4gIEBJbnB1dCgpIGRpc3BsYXlMYXRlc3RTZWFyY2hlcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSBib29sZWFuIGluZGljYXRpbmcgaWYgYWlycG9ydHMgdGhhdCBhcmUgY2xvc2UgdG8gdGhlIHVzZXIgc2hvdWxkIGJlIGRpc3BsYXllZC5cbiAgICovXG4gIEBJbnB1dCgpIGRpc3BsYXlDbG9zZXN0QWlycG9ydHM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIERpc3BsYXkgYm90aCBvcmdpbiBhbmQgZGVzdGluYXRpb24gYWlycG9ydCBzZWxlY3Rvci5cbiAgICovXG4gIEBJbnB1dCgpIGNvbWJvPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBEaXNwbGF5IHN3aXRjaCBVSSB0byBpbnRlcmNoYW5nZSBvcmlnaW4gYW5kIGRlc3RpbmF0aW9uIGFpcnBvcnQuXG4gICAqL1xuICBASW5wdXQoKSB1c2VTd2l0Y2g/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgbGFiZWwgdGhhdCB3aWxsIGFwcGVhciBvbiB0b3Agb2YgYWxsIGFpcnBvcnRzIGluIHRoZSBkcm9wIGRvd24gbGlzdC5cbiAgICovXG4gIEBJbnB1dCgpIGFsbEFpcnBvcnRzTGFiZWw6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBIGxhYmVsIHRoYXQgd2lsbCBhcHBlYXIgb24gdG9wIG9mIHRoZSBsYXRlc3Qgc2VhcmNoZXMgaW4gdGhlIGRyb3AgZG93biBsaXN0LlxuICAgKi9cbiAgQElucHV0KCkgbGF0ZXN0U2VhcmNoZXNMYWJlbDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgbGFiZWwgdGhhdCB3aWxsIGFwcGVhciBvbiB0b3Agb2YgdGhlIGNsb3Nlc3QgYWlycG9ydHMgaW4gdGhlIGRyb3AgZG93biBsaXN0LlxuICAgKi9cbiAgQElucHV0KCkgY2xvc2VzdEFpcnBvcnRzTGFiZWw6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBIGxhYmVsIHRoYXQgd2lsbCBhcHBlYXIgaW4gbXkgbG9jYXRpb24gaW4gdGhlIGRyb3AgZG93biBsaXN0LlxuICAgKi9cbiAgQElucHV0KCkgZ2VvbG9jYXRpb25MYWJlbDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgbGFiZWwgdGhhdCB3aWxsIGFwcGVhciBpbiBteSBsb2NhdGlvbiwgaW4gdGhlIGRyb3AgZG93biBsaXN0IGlmIHVzZXIgaGFzIGRlbmllZCBnZW9sb2NhdGlvbi5cbiAgICovXG4gIEBJbnB1dCgpIGdlb2xvY2F0aW9uQmxvY2tlZExhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSBsYWJlbCB0aGF0IHdpbGwgYXBwZWFyIGluIHRoZSBkZXN0aW5hdGlvbiBpbnB1dCBmaWVsZCBpZiB0aGVcbiAgICogdXNlciB0cmllcyB0byBzZWxlY3QgYSBkZXN0aW5hdGlvbiBhaXJwb3J0IHdpdGhvdXQgc2VsZWN0aW5nIGFuIG9yaWdpbiBhaXJwb3J0LlxuICAgKi9cbiAgQElucHV0KCkgc2VsZWN0T3JpZ2luRmlyc3RMYWJlbDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgdGV4dCB0aGF0IGFwcGVhcnMgaW4gdGhlIGRlc3RpbmF0aW9ucyBkcm9wZG93biBsaXN0IHdoZW4gb3JpZ2luIGFpcnBvcnQgaXMgbm90IHNldC5cbiAgICovXG4gIEBJbnB1dCgpIGludmFsaWREZXN0aW5hdGlvblRleHQ6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEByZXF1aXJlZFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSBsYWJlbCB0aGF0IHdpbGwgYXBwZWFyIG9uIHRvcCBvZiB0aGUgb3JpZ2luIGFpcnBvcnQgaW5wdXQgZmllbGQuXG4gICAqL1xuICBASW5wdXQoKSBsYWJlbE9yaWdpbiA9ICcnO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgcGxhY2Vob2xkZXIgdGhhdCB3aWxsIGFwcGVhciBvbiB0aGUgb3JpZ2luIGFpcnBvcnQgaW5wdXQgZmllbGQuXG4gICAqL1xuICBASW5wdXQoKSBwbGFjZWhvbGRlck9yaWdpbiA9ICcnO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgbGFiZWwgdGhhdCB3aWxsIGFwcGVhciBvbiB0b3Agb2YgdGhlIGRlc3RpbmF0aW9uIGFpcnBvcnQgaW5wdXQgZmllbGQuXG4gICAqL1xuICBASW5wdXQoKSBsYWJlbERlc3RpbmF0aW9uID0gJyc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSBwbGFjZWhvbGRlciB0aGF0IHdpbGwgYXBwZWFyIG9uIHRoZSBkZXN0aW5hdGlvbiBhaXJwb3J0IGlucHV0IGZpZWxkLlxuICAgKi9cbiAgQElucHV0KCkgcGxhY2Vob2xkZXJEZXN0aW5hdGlvbiA9ICcnO1xuXG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSBtb2RpZmllciB0aGF0IHdpbGwgYWxsb3cgYWx3YXlzIGtlZXBpbmcgdGhlIHNlbGVjdGVkIGFpcnBvcnQuXG4gICAqIFRoZSBsYXN0IHNlbGVjdGVkIGFpcnBvcnQgd2lsbCBiZSBzaG93biBvbmNlIHVzZXIgY2xlYXJzIHRoZSBzZWxlY3Rpb24gYW5kIGJsdXIuXG4gICAqL1xuICBASW5wdXQoKSBrZWVwU2VsZWN0aW9uOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgYSBmb3JtQ29udHJvbE5hbWUgZGlyZWN0aXZlIHRvIHRoZSBpbnB1dC5cbiAgICogSXQgcmVxdWlyZXMgdGhhdCB0aGUgY29uc3VtZXIgaW5jbHVkZWQgUmVhY3RpdmVGb3Jtc01vZHVsZSBpbiBpdCdzIG1vZHVsZS5cbiAgICogSXQgcmVxdWllcnMgdGhhdCB0aGUgbmFzRm9ybUdyb3VwIGlucHV0IGlzIGZpbGxlZC5cbiAgICovXG4gIEBJbnB1dCgpIG5hc0Zvcm1Db250cm9sTmFtZU9yaWdpbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgYSBmb3JtQ29udHJvbE5hbWUgZGlyZWN0aXZlIHRvIHRoZSBpbnB1dC5cbiAgICogSXQgcmVxdWlyZXMgdGhhdCB0aGUgY29uc3VtZXIgaW5jbHVkZWQgUmVhY3RpdmVGb3Jtc01vZHVsZSBpbiBpdCdzIG1vZHVsZS5cbiAgICogSXQgcmVxdWllcnMgdGhhdCB0aGUgbmFzRm9ybUdyb3VwIGlucHV0IGlzIGZpbGxlZC5cbiAgICovXG4gIEBJbnB1dCgpIG5hc0Zvcm1Db250cm9sTmFtZURlc3RpbmF0aW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQWRkcyB0aGUgcGFyZW50J3MgZm9ybSBncm91cC5cbiAgICogSXQgcmVxdWlyZXMgdGhhdCB0aGUgY29uc3VtZXIgaW5jbHVkZWQgUmVhY3RpdmVGb3Jtc01vZHVsZSBpbiBpdCdzIG1vZHVsZS5cbiAgICogSXQgaXMgcmVxdWllcmVkIHRvIGJlIGZpbGxlZCBpZiBuYXNGb3JtQ29udHJvbE5hbWUgYWRkZWQuXG4gICAqL1xuICBASW5wdXQoKSBuYXNGb3JtR3JvdXA6IEZvcm1Hcm91cDtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGUgYWlycG9ydCBjb2RlIG9mIHRoZSBvcmlnaW4gYWlycG9ydC4gSXQgd2lsbCBzZXQgdGhlIHNlbGVjdGVkIG9yaWdpbiBhaXJwb3J0IGJhc2VkIG9uIHRoaXMgdmFsdWUuXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgb3JpZ2luQWlycG9ydENvZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMub3JpZ2luQWlycG9ydENvZGVWYWx1ZTtcbiAgfVxuICBzZXQgb3JpZ2luQWlycG9ydENvZGUoY29kZTogc3RyaW5nKSB7XG4gICAgaWYgKGNvZGUpIHtcbiAgICAgIGlmIChjb2RlICE9PSB0aGlzLm9yaWdpbkFpcnBvcnRDb2RlVmFsdWUpIHtcbiAgICAgICAgdGhpcy5vcmlnaW5BaXJwb3J0Q29kZVZhbHVlID0gY29kZTtcbiAgICAgICAgdGhpcy5zZXRPcmlnaW4oKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vcmlnaW5BaXJwb3J0Q29kZVZhbHVlID0gJyc7XG4gICAgICB0aGlzLmNsZWFyT3JpZ2luKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVGhlIGFpcnBvcnQgY29kZSBvZiB0aGUgZGVzdGluYXRpb24gYWlycG9ydC4gSXQgd2lsbCBzZXQgdGhlIHNlbGVjdGVkIGRlc3RpbmF0aW9uIGFpcnBvcnQgYmFzZWQgb24gdGhpcyB2YWx1ZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCBkZXN0aW5hdGlvbkFpcnBvcnRDb2RlKCkge1xuICAgIHJldHVybiB0aGlzLmRlc3RpbmF0aW9uQWlycG9ydENvZGVWYWx1ZTtcbiAgfVxuICBzZXQgZGVzdGluYXRpb25BaXJwb3J0Q29kZShjb2RlOiBzdHJpbmcpIHtcbiAgICBpZiAoY29kZSkge1xuICAgICAgaWYgKGNvZGUgIT09IHRoaXMuZGVzdGluYXRpb25BaXJwb3J0Q29kZVZhbHVlKSB7XG4gICAgICAgIHRoaXMuZGVzdGluYXRpb25BaXJwb3J0Q29kZVZhbHVlID0gY29kZTtcbiAgICAgICAgdGhpcy5zZXREZXN0aW5hdGlvbigpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRlc3RpbmF0aW9uQWlycG9ydENvZGVWYWx1ZSA9ICcnO1xuICAgICAgdGhpcy5jbGVhckRlc3RpbmF0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQWRkcyAnYXJpYS1sYWJlbCcgb24gdGhlIGNsZWFyIGJ1dHRvbiBpbnNpZGUgdGhlIGFpcnBvcnQgc2VsZWN0IGlucHV0cy5cbiAgICovXG4gIEBJbnB1dCgpIGFyaWFMYWJlbENsZWFyOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQWRkcyAnYXJpYS1sYWJlbCcgdG8gdGhlIGJhY2tkcm9wcy5cbiAgICovXG4gIEBJbnB1dCgpIGFyaWFMYWJlbEJhY2tkcm9wOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBPdXRwdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFuIGV2ZW50IHRoYXQgaXMgZmlyZWQgZXZlcnkgdGltZSB0aGUgc2VsZWN0ZWQgb3JpZ2luIGFpcnBvcnQgY2hhbmdlcy5cbiAgICovXG4gIEBPdXRwdXQoKSBvcmlnaW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEFpcnBvcnRNb2RlbD4oKTtcblxuICAvKipcbiAgICogQHByb3BlcnR5IE91dHB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQW4gZXZlbnQgdGhhdCBpcyBmaXJlZCBldmVyeSB0aW1lIHRoZSBvcmlnaW4gZHJvcGRvd24gc2VsZWN0b3Igb3BlbnMgb3IgY2xvc2VzLlxuICAgKi9cbiAgQE91dHB1dCgpIG9yaWdpbk9wZW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgLyoqXG4gICogQHByb3BlcnR5IE91dHB1dFxuICAqIEBkZXNjcmlwdGlvblxuICAqIEFuIGV2ZW50IHRoYXQgaXMgZmlyZWQgZXZlcnkgdGltZSB0aGUgb3JpZ2luIGRyb3Bkb3duIHNlbGVjdG9yIG9wZW5zIG9yIGNsb3Nlcy5cbiAgKi9cbiAgQE91dHB1dCgpIGRlc3RpbmF0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxBaXJwb3J0TW9kZWw+KCk7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBPdXRwdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFuIGV2ZW50IHRoYXQgaXMgZmlyZWQgZXZlcnkgdGltZSB0aGUgZGVzdGluYXRpb24gZHJvcGRvd24gc2VsZWN0b3Igb3BlbnMgb3IgY2xvc2VzLlxuICAgKi9cbiAgQE91dHB1dCgpIGRlc3RpbmF0aW9uT3BlbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAvKipcbiAgICogQHByb3BlcnR5IE91dHB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQW4gZXZlbnQgdGhhdCBpcyBmaXJlZCB3aGVuIHRoZSBkZXN0aW5hdGlvbiBkcm9wZG93biBjbG9zZXMuXG4gICAqL1xuICBAT3V0cHV0KCkgZm9jdXNPbk5leHQgPSBuZXcgRXZlbnRFbWl0dGVyPEtleWJvYXJkRXZlbnQ+KCk7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBPdXRwdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFuIGV2ZW50IHRoYXQgaXMgZmlyZWQgd2hlbiBnZW9sb2NhdGlvbiBwb3NpdGlvbiBoYXMgY2hhbmdlZC5cbiAgICovXG4gIEBPdXRwdXQoKSBwb3NpdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8R2VvbG9jYXRpb25Qb3NpdGlvbj4oKTtcblxuICBwcml2YXRlIG9yaWdpbkFpcnBvcnRDb2RlVmFsdWU6IHN0cmluZztcbiAgcHJpdmF0ZSBkZXN0aW5hdGlvbkFpcnBvcnRDb2RlVmFsdWU6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcignbmFzLWFpcnBvcnQtc2VsZWN0LW5ldycpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcihcIndpbmRvdzpyZXNpemVcIiwgW1wiJGV2ZW50XCJdKVxuICBvblJlc2l6ZSgpIHtcbiAgICB0aGlzLnNldElubGluZUZsZXgoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5haXJwb3J0cykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIGlucHV0OiBbYWlycG9ydHNdJyk7XG4gICAgfVxuXG4gICAgdGhpcy5yZXN1bHRzTGFiZWxzID0ge1xuICAgICAgYWxsQWlycG9ydHM6IHRoaXMuYWxsQWlycG9ydHNMYWJlbCB8fCAnJyxcbiAgICAgIGNsb3Nlc3RBaXJwb3J0czogdGhpcy5jbG9zZXN0QWlycG9ydHNMYWJlbCB8fCAnJyxcbiAgICAgIGxhdGVzdFNlYXJjaGVzOiB0aGlzLmxhdGVzdFNlYXJjaGVzTGFiZWwgfHwgJycsXG4gICAgICBnZW9sb2NhdGlvbjogdGhpcy5nZW9sb2NhdGlvbkxhYmVsIHx8ICcnLFxuICAgICAgZ2VvbG9jYXRpb25EZW5pZWQ6IHRoaXMuZ2VvbG9jYXRpb25CbG9ja2VkTGFiZWwgfHwgJydcbiAgICB9O1xuXG4gICAgdGhpcy50ZXh0U2VsZWN0T3JpZ2luRmlyc3QgPSB0aGlzLnNlbGVjdE9yaWdpbkZpcnN0TGFiZWw7XG4gICAgdGhpcy5haXJwb3J0c09yaWdpbiA9IHRoaXMuYWxsb3dlZE9yaWdpbkFpcG9ydHMgJiYgdGhpcy5hbGxvd2VkT3JpZ2luQWlwb3J0cy5sZW5ndGggPiAwID8gdGhpcy5hbGxvd2VkT3JpZ2luQWlwb3J0cyA6IHRoaXMuYWlycG9ydHM7XG5cbiAgICB0aGlzLmFpcnBvcnRzRGVzdGluYXRpb24gPSB0aGlzLmdldEFpcnBvcnRzRGVzdGluYXRpb25zKCk7XG5cbiAgICBpZiAodGhpcy5uYXNGb3JtR3JvdXApIHtcbiAgICAgIGlmICh0aGlzLm5hc0Zvcm1Db250cm9sTmFtZU9yaWdpbikge1xuICAgICAgICBjb25zdCBvcmlnaW5Db250cm9sID0gdGhpcy5uYXNGb3JtR3JvdXAuZ2V0KHRoaXMubmFzRm9ybUNvbnRyb2xOYW1lT3JpZ2luKTtcblxuICAgICAgICBpZiAob3JpZ2luQ29udHJvbCkge1xuICAgICAgICAgIGNvbnN0IG9yaWdpbiA9IHRoaXMuYWlycG9ydHNPcmlnaW4uZmluZCh4ID0+IHgubmFtZSA9PT0gb3JpZ2luQ29udHJvbC52YWx1ZSk7XG5cbiAgICAgICAgICBpZiAob3JpZ2luKSB7XG4gICAgICAgICAgICB0aGlzLm9yaWdpbkFpcnBvcnRDb2RlID0gb3JpZ2luLmNvZGU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLm5hc0Zvcm1Db250cm9sTmFtZURlc3RpbmF0aW9uKSB7XG4gICAgICAgIGNvbnN0IGRlc3RpbmF0aW9uQ29udHJvbCA9IHRoaXMubmFzRm9ybUdyb3VwLmdldCh0aGlzLm5hc0Zvcm1Db250cm9sTmFtZURlc3RpbmF0aW9uKTtcblxuICAgICAgICBpZiAoZGVzdGluYXRpb25Db250cm9sKSB7XG4gICAgICAgICAgY29uc3QgZGVzdGluYXRpb24gPSB0aGlzLmFpcnBvcnRzRGVzdGluYXRpb24uZmluZCh4ID0+IHgubmFtZSA9PT0gZGVzdGluYXRpb25Db250cm9sLnZhbHVlKTtcblxuICAgICAgICAgIGlmIChkZXN0aW5hdGlvbikge1xuICAgICAgICAgICAgdGhpcy5kZXN0aW5hdGlvbkFpcnBvcnRDb2RlID0gZGVzdGluYXRpb24uY29kZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghdGhpcy5kZXN0aW5hdGlvbikge1xuICAgICAgdGhpcy5jbGVhckRlc3RpbmF0aW9uKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5kZXN0aW5hdGlvbkNoYW5nZS5lbWl0KHRoaXMuZGVzdGluYXRpb24pO1xuICAgIHRoaXMub3JpZ2luQ2hhbmdlLmVtaXQodGhpcy5vcmlnaW4pO1xuXG5cbiAgICBpZiAodGhpcy5vcmlnaW5BaXJwb3J0Q29kZSkge1xuICAgICAgdGhpcy5zZXRPcmlnaW4oKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kZXN0aW5hdGlvbkFpcnBvcnRDb2RlKSB7XG4gICAgICB0aGlzLnNldERlc3RpbmF0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0SW5saW5lRmxleCgpO1xuICB9XG5cbiAgZ2V0QWlycG9ydFNlbGVjdENvbWJvQ2xhc3MoZWxlbWVudD86IHN0cmluZywgbW9kaWZpZXJzSW5wdXQ/OiBhbnkpOiBDbGFzc01vZGVsIHtcbiAgICBsZXQgbW9kaWZpZXJzID0gbW9kaWZpZXJzSW5wdXQ7XG5cbiAgICBpZiAodHlwZW9mIG1vZGlmaWVyc0lucHV0ID09PSAnc3RyaW5nJyB8fCBtb2RpZmllcnNJbnB1dCBpbnN0YW5jZW9mIFN0cmluZykge1xuICAgICAgbW9kaWZpZXJzID0gW21vZGlmaWVyc0lucHV0XTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgYmxvY2s6ICduYXMtYWlycG9ydC1zZWxlY3QtbmV3LWNvbWJvJyxcbiAgICAgIGVsZW1lbnQ6IGVsZW1lbnQsXG4gICAgICBtb2RpZmllcnM6IG1vZGlmaWVyc1xuICAgIH07XG4gIH1cblxuICBvbk9yaWdpbk9wZW4ob3BlbjogYm9vbGVhbik6IHZvaWQge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5vcmlnaW5PcGVuID0gb3BlbjtcbiAgICB9KTtcbiAgICB0aGlzLmRlc3RpbmF0aW9uT3BlbiA9IGZhbHNlO1xuICAgIHRoaXMub3JpZ2luT3BlbkNoYW5nZS5lbWl0KG9wZW4pO1xuICB9XG5cbiAgb25EZXN0aW5hdGlvbk9wZW4ob3BlbjogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGVzdGluYXRpb25PcGVuID0gb3BlbjtcbiAgICB0aGlzLm9yaWdpbk9wZW4gPSBmYWxzZTtcbiAgICB0aGlzLmRlc3RpbmF0aW9uT3BlbkNoYW5nZS5lbWl0KG9wZW4pO1xuICB9XG5cbiAgb25TZWxlY3Rpb25DbGVhcmVkKCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXJlZCA9IHRydWU7XG4gIH1cblxuICBzZXRTZWxlY3RlZE9yaWdpbihhaXJwb3J0OiBBaXJwb3J0TW9kZWwpOiB2b2lkIHtcbiAgICBpZiAoIWFpcnBvcnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLm9yaWdpbiA9IGFpcnBvcnQ7XG4gICAgdGhpcy5vcmlnaW5BaXJwb3J0Q29kZVZhbHVlID0gYWlycG9ydC5jb2RlO1xuICAgIHRoaXMuaXNEZXN0aW5hdGlvblZhbGlkID0gYWlycG9ydC5jb2RlID8gdHJ1ZSA6IGZhbHNlO1xuXG4gICAgaWYgKHRoaXMuYWlycG9ydFJlbGF0aW9ucyAmJiB0aGlzLmhhc1ZhbGlkRGVzdGluYXRpb25zKGFpcnBvcnQpKSB7XG4gICAgICB0aGlzLnVwZGF0ZVZhbGlkQWlycG9ydERlc3RpbmF0aW9ucyhhaXJwb3J0KTtcbiAgICAgIHRoaXMuc2V0Q3VycmVudExhdGVzdFNlYXJjaGVzRGVzdGluYXRpb24oKTtcbiAgICB9XG4gICAgdGhpcy5jbGVhcmVkID0gZmFsc2U7XG4gICAgdGhpcy5vcmlnaW5DaGFuZ2UuZW1pdChhaXJwb3J0KTtcbiAgfVxuXG4gIHNldFNlbGVjdGVkRGVzdGluYXRpb24oYWlycG9ydDogQWlycG9ydE1vZGVsKTogdm9pZCB7XG4gICAgaWYgKCFhaXJwb3J0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5kZXN0aW5hdGlvbiA9IGFpcnBvcnQ7XG4gICAgdGhpcy5kZXN0aW5hdGlvbkFpcnBvcnRDb2RlVmFsdWUgPSBhaXJwb3J0LmNvZGU7XG4gICAgdGhpcy5jbGVhcmVkID0gZmFsc2U7XG4gICAgdGhpcy5kZXN0aW5hdGlvbkNoYW5nZS5lbWl0KGFpcnBvcnQpO1xuICB9XG5cbiAgc2V0Rm9jdXNPbk5leHQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmZvY3VzT25OZXh0LmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgb25PcmlnaW5Gb2N1cygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5haXJwb3J0U2VsZWN0RHJvcGRvd25PcmlnaW4pIHtcbiAgICAgIHRoaXMub25PcmlnaW5PcGVuKHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIGNoYW5nZVN3aXRjaEljb24oKTogdm9pZCB7XG4gICAgdGhpcy5zd2l0Y2hUeXBlID0gdGhpcy5zd2l0Y2hUeXBlID09PSAnc3dpdGNoJyA/ICdzd2l0Y2gtLXNlY29uZGFyeScgOiAnc3dpdGNoJztcbiAgfVxuXG4gIHN3YXBBaXJwb3J0cygpOiB2b2lkIHtcbiAgICBjb25zdCBkZXN0aW5hdGlvbiA9IHsgLi4udGhpcy5kZXN0aW5hdGlvbiB9O1xuICAgIGNvbnN0IG9yaWdpbiA9IHsgLi4udGhpcy5vcmlnaW4gfTtcbiAgICB0aGlzLmRlc3RpbmF0aW9uID0gb3JpZ2luO1xuICAgIHRoaXMub3JpZ2luID0gZGVzdGluYXRpb247XG5cbiAgICB0aGlzLnNldFNlbGVjdGVkRGVzdGluYXRpb24odGhpcy5kZXN0aW5hdGlvbik7XG4gICAgdGhpcy5zZXRTZWxlY3RlZE9yaWdpbih0aGlzLm9yaWdpbik7XG4gIH1cblxuICBzd2FwS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICBjYXNlICdFbnRlcic6XG4gICAgICAgIHRoaXMuc3dhcEFpcnBvcnRzKCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHNldERlc3RpbmF0aW9uT3BlbihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmV4aXN0cyh0aGlzLmNvbWJvKSkge1xuICAgICAgdGhpcy5kZXN0aW5hdGlvbk9wZW4gPSB0cnVlO1xuICAgICAgdGhpcy5vcmlnaW5PcGVuID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0Rm9jdXNPbk5leHQoZXZlbnQpO1xuICAgIH1cbiAgfVxuXG4gIGdldENsb3Nlc3RBaXJwb3J0cyhwb3NpdGlvbjogR2VvbG9jYXRpb25Qb3NpdGlvbik6IHZvaWQge1xuICAgIHRoaXMucG9zaXRpb25DaGFuZ2UuZW1pdChwb3NpdGlvbik7XG4gIH1cblxuICBzZXRJbmxpbmVGbGV4KCk6IHZvaWQge1xuICAgIGlmKCF0aGlzLmNvbnRhaW5lciAmJiAhdGhpcy5jb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pbmxpbmVGbGV4ID0gdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCA+IDc4ODtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QWlycG9ydHNEZXN0aW5hdGlvbnMoKTogQXJyYXk8QWlycG9ydE1vZGVsPiB7XG4gICAgY29uc3QgYWxsb3dlZERlc3RpbmF0aW9uQWlycG9ydHMgPSB0aGlzLmFsbG93ZWREZXN0aW5hdGlvbkFpcnBvcnRzO1xuXG4gICAgcmV0dXJuIGFsbG93ZWREZXN0aW5hdGlvbkFpcnBvcnRzICYmIGFsbG93ZWREZXN0aW5hdGlvbkFpcnBvcnRzLmxlbmd0aCA+IDBcbiAgICAgID8gYWxsb3dlZERlc3RpbmF0aW9uQWlycG9ydHNcbiAgICAgIDogdGhpcy5haXJwb3J0cztcbiAgfVxuXG4gIHByaXZhdGUgc2V0T3JpZ2luKCk6IHZvaWQge1xuICAgIGNvbnN0IGFpcnBvcnQgPSB0aGlzLmFpcnBvcnRzLmZpbmQoeCA9PiB4LmNvZGUgPT09IHRoaXMub3JpZ2luQWlycG9ydENvZGUpO1xuXG4gICAgaWYgKGFpcnBvcnQpIHtcbiAgICAgIHRoaXMuc2V0U2VsZWN0ZWRPcmlnaW4oYWlycG9ydCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXREZXN0aW5hdGlvbigpOiB2b2lkIHtcbiAgICBjb25zdCBhaXJwb3J0ID0gdGhpcy5haXJwb3J0cy5maW5kKHggPT4geC5jb2RlID09PSB0aGlzLmRlc3RpbmF0aW9uQWlycG9ydENvZGUpO1xuXG4gICAgaWYgKGFpcnBvcnQpIHtcbiAgICAgIHRoaXMuc2V0U2VsZWN0ZWREZXN0aW5hdGlvbihhaXJwb3J0KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVZhbGlkQWlycG9ydERlc3RpbmF0aW9ucyhhaXJwb3J0OiBBaXJwb3J0TW9kZWwpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuYWlycG9ydFJlbGF0aW9ucykge1xuICAgICAgdGhpcy5haXJwb3J0c0Rlc3RpbmF0aW9uID0gdGhpcy5haXJwb3J0c09yaWdpbjtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdmFsaWREZXN0aW5hdGlvbnMgPSB0aGlzLmdldEFpcnBvcnRSZWxhdGlvbnMoYWlycG9ydCk7XG5cbiAgICAgIGlmICghdmFsaWREZXN0aW5hdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodmFsaWREZXN0aW5hdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRoaXMuY2xlYXJEZXN0aW5hdGlvbnMoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldCBpc0Rlc3RpbmF0aW9uVmFsaWQ6IGJvb2xlYW47XG4gICAgICAgIGlmICh0aGlzLmRlc3RpbmF0aW9uICYmIHRoaXMuZGVzdGluYXRpb24uY29kZSkge1xuICAgICAgICAgIGlzRGVzdGluYXRpb25WYWxpZCA9IHZhbGlkRGVzdGluYXRpb25zLnNvbWUoeCA9PiB4ICYmIHgudG9Mb3dlckNhc2UoKSA9PT0gdGhpcy5kZXN0aW5hdGlvbi5jb2RlLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNEZXN0aW5hdGlvblZhbGlkKSB7XG4gICAgICAgICAgdGhpcy5jbGVhckRlc3RpbmF0aW9uKCk7XG4gICAgICAgICAgdGhpcy5kZXN0aW5hdGlvbkNoYW5nZS5lbWl0KG51bGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuYWlycG9ydHMpIHtcbiAgICAgICAgICB0aGlzLmFpcnBvcnRzRGVzdGluYXRpb24gPSB0aGlzLmFpcnBvcnRzXG4gICAgICAgICAgICAuZmlsdGVyKGFpcnBvcnRJdGVtID0+IGFpcnBvcnRJdGVtXG4gICAgICAgICAgICAgICYmIGFpcnBvcnRJdGVtLmNvZGVcbiAgICAgICAgICAgICAgJiYgdmFsaWREZXN0aW5hdGlvbnMuc29tZSh4ID0+IHggJiYgYWlycG9ydEl0ZW0uY29kZS50b0xvd2VyQ2FzZSgpID09PSB4LnRvTG93ZXJDYXNlKCkpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFzVmFsaWREZXN0aW5hdGlvbnMob3JpZ2luOiBBaXJwb3J0TW9kZWwpOiBib29sZWFuIHtcbiAgICBpZiAoIW9yaWdpbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHJlbGF0aW9ucyA9IHRoaXMuZ2V0QWlycG9ydFJlbGF0aW9ucyhvcmlnaW4pO1xuXG4gICAgcmV0dXJuIHJlbGF0aW9ucyAmJiByZWxhdGlvbnMubGVuZ3RoID4gMDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QWlycG9ydFJlbGF0aW9ucyhhaXJwb3J0OiBBaXJwb3J0TW9kZWwpOiBBcnJheTxzdHJpbmc+IHtcbiAgICBpZiAoIXRoaXMuYWlycG9ydHMpIHtcbiAgICAgIHJldHVybiBuZXcgQXJyYXk8c3RyaW5nPigpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFpcnBvcnRSZWxhdGlvbnNbYWlycG9ydC5jb2RlLnRvTG93ZXJDYXNlKCldIHx8IHRoaXMuYWlycG9ydFJlbGF0aW9uc1thaXJwb3J0LmNvZGUudG9VcHBlckNhc2UoKV07XG4gIH1cblxuICBwcml2YXRlIGNsZWFyT3JpZ2luKCkge1xuICAgIHRoaXMuc2V0U2VsZWN0ZWRPcmlnaW4oe1xuICAgICAgY29kZTogJycsXG4gICAgICBjb3VudHJ5TmFtZTogJycsXG4gICAgICBuYW1lOiAnJyxcbiAgICAgIGFpcnBvcnROYW1lOiAnJyxcbiAgICAgIGRpc3BsYXlOYW1lOiAnJyxcbiAgICAgIG5vcm1hbGl6ZWRBaXJwb3J0TmFtZTogJydcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJEZXN0aW5hdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLnNldFNlbGVjdGVkRGVzdGluYXRpb24oe1xuICAgICAgY29kZTogJycsXG4gICAgICBjb3VudHJ5TmFtZTogJycsXG4gICAgICBuYW1lOiAnJyxcbiAgICAgIGFpcnBvcnROYW1lOiAnJyxcbiAgICAgIGRpc3BsYXlOYW1lOiAnJyxcbiAgICAgIG5vcm1hbGl6ZWRBaXJwb3J0TmFtZTogJydcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJEZXN0aW5hdGlvbnMoKTogdm9pZCB7XG4gICAgdGhpcy5haXJwb3J0c0Rlc3RpbmF0aW9uID0gbmV3IEFycmF5PEFpcnBvcnRNb2RlbD4oKTtcblxuICAgIGNvbnN0IG1vZGVsID0ge1xuICAgICAgbmFtZTogdGhpcy50ZXh0U2VsZWN0T3JpZ2luRmlyc3QsXG4gICAgICBjb3VudHJ5TmFtZTogJycsXG4gICAgICBjb2RlOiAnJyxcbiAgICAgIGFpcnBvcnROYW1lOiAnJyxcbiAgICAgIGRpc3BsYXlOYW1lOiAnJyxcbiAgICAgIG5vcm1hbGl6ZWRBaXJwb3J0TmFtZTogJydcbiAgICB9O1xuXG4gICAgdGhpcy5haXJwb3J0c0Rlc3RpbmF0aW9uLnB1c2gobW9kZWwpO1xuICAgIHRoaXMuY2xlYXJEZXN0aW5hdGlvbigpO1xuICAgIHRoaXMuZGVzdGluYXRpb25DaGFuZ2UuZW1pdChtb2RlbCk7XG4gIH1cblxuICBwcml2YXRlIHNldEN1cnJlbnRMYXRlc3RTZWFyY2hlc0Rlc3RpbmF0aW9uKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFpcnBvcnRzRGVzdGluYXRpb24pIHtcbiAgICAgIHRoaXMuY3VycmVudExhdGVzdFNlYXJjaGVzRGVzdGluYXRpb24gPSB0aGlzLmFpcnBvcnRzRGVzdGluYXRpb24uZmlsdGVyKGFpcnBvcnQgPT4ge1xuICAgICAgICBpZiAodGhpcy5sYXRlc3RTZWFyY2hlc0Rlc3RpbmF0aW9uKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMubGF0ZXN0U2VhcmNoZXNEZXN0aW5hdGlvbi5zb21lKHggPT4geC5jb2RlICYmIHguY29kZS50b0xvd2VyQ2FzZSgpID09PSBhaXJwb3J0LmNvZGUudG9Mb3dlckNhc2UoKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cImV4aXN0cyhjb21ibyk7IGVsc2UgYWlycG9ydFNlbGVjdFRlbXBsYXRlXCJcbiAgW25hc0NsYXNzXT1cImdldEFpcnBvcnRTZWxlY3RDb21ib0NsYXNzKCcnLCBbaW5saW5lRmxleCAmJiAnaW5saW5lJ10pXCIgI2NvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImFpcnBvcnRTZWxlY3RUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuPC9kaXY+XG48bmctdGVtcGxhdGUgI2FpcnBvcnRTZWxlY3RUZW1wbGF0ZT5cbiAgPGRpdiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJycsIGV4aXN0cyh1c2VTd2l0Y2gpICYmICdwYWRkaW5nLW9yaWdpbicpXCJcbiAgICAqbmdJZj1cImFpcnBvcnRzT3JpZ2luXCI+XG4gICAgPG5hcy1haXJwb3J0LXNlbGVjdC1kcm9wZG93biAjYWlycG9ydFNlbGVjdERyb3Bkb3duT3JpZ2luXG4gICAgICBkaXNwbGF5TGF0ZXN0U2VhcmNoZXNcbiAgICAgIFtlbmFibGVHZW9sb2NhdGlvbl09XCJkaXNwbGF5Q2xvc2VzdEFpcnBvcnRzXCJcbiAgICAgIFtkaXNwbGF5Q2xvc2VzdEFpcnBvcnRzXT1cImRpc3BsYXlDbG9zZXN0QWlycG9ydHNcIlxuICAgICAgW2FpcnBvcnRTZWxlY3RMYWJlbF09XCJsYWJlbE9yaWdpblwiXG4gICAgICBbbGF0ZXN0U2VhcmNoZXNdPVwibGF0ZXN0U2VhcmNoZXNPcmlnaW5cIlxuICAgICAgW2Nsb3Nlc3RBaXJwb3J0c109XCJjbG9zZXN0QWlycG9ydHNcIlxuICAgICAgW2FpcnBvcnRdPVwib3JpZ2luXCJcbiAgICAgIFthaXJwb3J0c109XCJhaXJwb3J0c09yaWdpblwiXG4gICAgICBbcmVzdWx0c0xhYmVsc109XCJyZXN1bHRzTGFiZWxzXCJcbiAgICAgIFthaXJwb3J0U2VsZWN0UGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJPcmlnaW5cIlxuICAgICAgW29wZW5dPVwib3JpZ2luT3BlblwiXG4gICAgICBba2VlcFNlbGVjdGlvbl09XCJrZWVwU2VsZWN0aW9uXCJcbiAgICAgIFthaXJwb3J0U2VsZWN0SWNvbk1vZGlmaWVyXT1cIidmbGlnaHQtZGVwYXJ0dXJlJ1wiXG4gICAgICBbbmFzRm9ybUNvbnRyb2xOYW1lXT1cIm5hc0Zvcm1Db250cm9sTmFtZU9yaWdpblwiXG4gICAgICBbbmFzRm9ybUdyb3VwXT1cIm5hc0Zvcm1Hcm91cFwiXG4gICAgICBbYXJpYUxhYmVsQ2xlYXJdPVwiYXJpYUxhYmVsQ2xlYXJcIlxuICAgICAgW2FyaWFMYWJlbEJhY2tkcm9wXT1cImFyaWFMYWJlbEJhY2tkcm9wXCJcbiAgICAgIChjbGVhcmVkU2VsZWN0aW9uKT1cIm9uU2VsZWN0aW9uQ2xlYXJlZCgpXCJcbiAgICAgIChzZWxlY3RlZCk9XCJzZXRTZWxlY3RlZE9yaWdpbigkZXZlbnQpXCJcbiAgICAgIChvcGVuQ2hhbmdlKT1cIm9uT3JpZ2luT3BlbigkZXZlbnQpXCJcbiAgICAgIChmb2N1c09uTmV4dCk9XCJzZXREZXN0aW5hdGlvbk9wZW4oJGV2ZW50KVwiXG4gICAgICAocG9zaXRpb25DaGFuZ2UpPVwiZ2V0Q2xvc2VzdEFpcnBvcnRzKCRldmVudClcIj48L25hcy1haXJwb3J0LXNlbGVjdC1kcm9wZG93bj5cbiAgPC9kaXY+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJleGlzdHMoY29tYm8pXCI+XG4gICAgPGRpdiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJycsIGV4aXN0cyh1c2VTd2l0Y2gpICYmICdwYWRkaW5nLWRlc3RpbmF0aW9uJylcIlxuICAgICAgKm5nSWY9XCJhaXJwb3J0c0Rlc3RpbmF0aW9uICYmIGFpcnBvcnRzRGVzdGluYXRpb24ubGVuZ3RoID4gMFwiPlxuICAgICAgPG5hcy1haXJwb3J0LXNlbGVjdC1kcm9wZG93biAjYWlycG9ydFNlbGVjdERyb3Bkb3duRGVzdGluYXRpb25cbiAgICAgICAgZGlzcGxheUxhdGVzdFNlYXJjaGVzXG4gICAgICAgIFthaXJwb3J0U2VsZWN0TGFiZWxdPVwibGFiZWxEZXN0aW5hdGlvblwiXG4gICAgICAgIFtkaXNwbGF5Q2xvc2VzdEFpcnBvcnRzXT1cImZhbHNlXCJcbiAgICAgICAgW2xhdGVzdFNlYXJjaGVzXT1cImN1cnJlbnRMYXRlc3RTZWFyY2hlc0Rlc3RpbmF0aW9uXCJcbiAgICAgICAgW2FpcnBvcnRzXT1cImFpcnBvcnRzRGVzdGluYXRpb25cIlxuICAgICAgICBbcmVzdWx0c0xhYmVsc109XCJyZXN1bHRzTGFiZWxzXCJcbiAgICAgICAgW2FpcnBvcnRdPVwiZGVzdGluYXRpb25cIlxuICAgICAgICBbYWlycG9ydFNlbGVjdFBsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyRGVzdGluYXRpb25cIlxuICAgICAgICBbb3Blbl09XCJkZXN0aW5hdGlvbk9wZW5cIlxuICAgICAgICBba2VlcFNlbGVjdGlvbl09XCJrZWVwU2VsZWN0aW9uXCJcbiAgICAgICAgW2FpcnBvcnRTZWxlY3RJY29uTW9kaWZpZXJdPVwiJ2ZsaWdodC1hcnJpdmFsJ1wiXG4gICAgICAgIFtuYXNGb3JtQ29udHJvbE5hbWVdPVwibmFzRm9ybUNvbnRyb2xOYW1lRGVzdGluYXRpb25cIlxuICAgICAgICBbbmFzRm9ybUdyb3VwXT1cIm5hc0Zvcm1Hcm91cFwiXG4gICAgICAgIFthcmlhTGFiZWxDbGVhcl09XCJhcmlhTGFiZWxDbGVhclwiXG4gICAgICAgIFthcmlhTGFiZWxCYWNrZHJvcF09XCJhcmlhTGFiZWxCYWNrZHJvcFwiXG4gICAgICAgIFtpc1ZhbGlkXT1cImlzRGVzdGluYXRpb25WYWxpZFwiXG4gICAgICAgIFtpbnZhbGlkVGV4dF09XCJpbnZhbGlkRGVzdGluYXRpb25UZXh0XCJcbiAgICAgICAgKGNsZWFyZWRTZWxlY3Rpb24pPVwib25TZWxlY3Rpb25DbGVhcmVkKClcIlxuICAgICAgICAoc2VsZWN0ZWQpPVwic2V0U2VsZWN0ZWREZXN0aW5hdGlvbigkZXZlbnQpXCJcbiAgICAgICAgKG9wZW5DaGFuZ2UpPVwib25EZXN0aW5hdGlvbk9wZW4oJGV2ZW50KVwiXG4gICAgICAgIChmb2N1c09uTmV4dCk9XCJzZXRGb2N1c09uTmV4dCgkZXZlbnQpXCJcbiAgICAgICAgKGZvY3VzT25QcmV2aW91cyk9XCJvbk9yaWdpbkZvY3VzKClcIj48L25hcy1haXJwb3J0LXNlbGVjdC1kcm9wZG93bj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiZXhpc3RzKHVzZVN3aXRjaCkgJiYgIShvcmlnaW5PcGVuIHx8IGRlc3RpbmF0aW9uT3BlbiB8fCBjbGVhcmVkKVwiXG4gICAgICAjc3dpdGNoQnV0dG9uXG4gICAgICBbbmFzQ2xhc3NdPVwiZ2V0QWlycG9ydFNlbGVjdENvbWJvQ2xhc3MoJ3N3aXRjaGVyJywgKG9yaWdpbkFpcnBvcnRDb2RlVmFsdWUgJiYgZGVzdGluYXRpb25BaXJwb3J0Q29kZVZhbHVlKSAmJiAnZmlsbGVkJylcIlxuICAgICAgKG1vdXNlb3Zlcik9XCJjaGFuZ2VTd2l0Y2hJY29uKClcIlxuICAgICAgKG1vdXNlbGVhdmUpPVwiY2hhbmdlU3dpdGNoSWNvbigpXCJcbiAgICAgIChrZXlkb3duKT1cInN3YXBLZXlEb3duKCRldmVudClcIlxuICAgICAgKGNsaWNrKT1cInN3YXBBaXJwb3J0cygpXCI+XG4gICAgICA8bmFzLWljb24gW3R5cGVdPVwiKHRoaXMuZGVzdGluYXRpb25BaXJwb3J0Q29kZVZhbHVlICYmIHRoaXMub3JpZ2luQWlycG9ydENvZGVWYWx1ZSkgPyAndmVjdG9yLS1zZWNvbmRhcnknIDogJ3ZlY3RvcidcIj48L25hcy1pY29uPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+Il19
|
|
@@ -118,16 +118,13 @@ export class AlertComponent extends NasComponentBase {
|
|
|
118
118
|
if (alert.removeIcon) {
|
|
119
119
|
this.removeIcon = alert.removeIcon;
|
|
120
120
|
}
|
|
121
|
-
if (alert.correlation) {
|
|
122
|
-
this.correlation = alert.correlation;
|
|
123
|
-
}
|
|
124
121
|
}
|
|
125
122
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: AlertComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
126
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: AlertComponent, selector: "nas-alert", inputs: { timestamp: "timestamp", title: "title", info: "info", warning: "warning", error: "error", success: "success", neutral: "neutral", text: "text", show: "show", removable: "removable", removeIcon: "removeIcon", trustTextHtml: "trustTextHtml", allowAutoScroll: "allowAutoScroll", server: "server",
|
|
123
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: AlertComponent, selector: "nas-alert", inputs: { timestamp: "timestamp", title: "title", info: "info", warning: "warning", error: "error", success: "success", neutral: "neutral", text: "text", show: "show", removable: "removable", removeIcon: "removeIcon", trustTextHtml: "trustTextHtml", allowAutoScroll: "allowAutoScroll", server: "server", alert: "alert" }, outputs: { showChange: "showChange" }, viewQueries: [{ propertyName: "alertContainer", first: true, predicate: ["alertContainer"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div #alertContainer *ngIf=\"exists(showValue)\" [nasClass]=\"getClasses('', modifiers)\" tabindex=\"0\">\n <div [nasClass]=\"getClass('content')\">\n <nas-icon *ngIf=\"!removeIcon\" [icon]=\"getIcon()\"></nas-icon>\n <div [nasClass]=\"getClass('remove-alert')\" *ngIf=\"exists(removable);\">\n <nas-icon type=\"remove\" (click)=\"removeAlertBox()\"></nas-icon>\n </div>\n <div [nasClass]=\"getClass('text-container')\">\n <div *ngIf=\"timestamp || server\" [nasClass]=\"getClass('text--internal-info')\">\n <span *ngIf=\"timestamp\">{{timestamp | date:'full'}}</span>\n <span *ngIf=\"server\">{{server}}</span>\n </div>\n <div *ngIf=\"exists(title)\" [nasClass]=\"getClass('text')\">{{title}}</div>\n <span *ngIf=\"text && !trustTextHtml\" [nasClass]=\"getClass('text--small')\">{{text}}</span>\n <span *ngIf=\"text && trustTextHtml\" [nasClass]=\"getClass('text--small')\" [innerHTML]=\"text\"></span>\n <ng-content></ng-content>\n </div>\n </div>\n</div>", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}.nas-alert{position:relative;padding:16px 12px;width:100%;height:100%;border:1px solid #15273f;background-color:#ebf4ff}.nas-alert--info{background-color:#ebf4ff;border:1px solid #15273f}.nas-alert--info img{width:24px;height:24px}.nas-alert--info:focus-visible{outline:2px solid #0978E8;outline-offset:2px}.nas-alert--success{background-color:#f4faf2;border:1px solid #2EB004}.nas-alert--success img{width:24px;height:24px}.nas-alert--success:focus-visible{outline:2px solid #0978E8;outline-offset:2px}.nas-alert--warning{background-color:#fff6ec;border:1px solid #FC9E12}.nas-alert--warning img{width:24px;height:24px}.nas-alert--warning:focus-visible{outline:2px solid #0978E8;outline-offset:2px}.nas-alert--error{background-color:#fff5f3;border:1px solid #CC3A19}.nas-alert--error img{width:24px;height:24px}.nas-alert--error:focus-visible{outline:2px solid #0978E8;outline-offset:2px}.nas-alert--neutral{background-color:#f9f9f9;border:1px solid #eaeaea}.nas-alert--neutral img{width:24px;height:24px}.nas-alert--neutral:focus-visible{outline:2px solid #0978E8;outline-offset:2px}.nas-alert__content{display:inline-flex}.nas-alert__remove-alert{position:absolute;right:10px;top:10px;cursor:pointer}.nas-alert__text-container{display:flex;flex-direction:column;margin-left:6px}.nas-alert__text,.nas-alert__text--internal-info,.nas-alert__text--small{color:#15273f;font-size:14px;font-weight:700;line-height:20px;margin-bottom:4px}.nas-alert__text--small{font-weight:400;margin-top:-1px}.nas-alert__text--internal-info{display:flex;flex-direction:row;font-weight:500;font-size:12px;line-height:16px;margin-bottom:9px;gap:3px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NasClassDirective, selector: "[nasClass]", inputs: ["nasClass", "attr.class"] }, { kind: "component", type: i3.IconComponent, selector: "nas-icon", inputs: ["icon", "type", "isIndicator", "lightCircularBackground", "cssClass"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
127
124
|
}
|
|
128
125
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: AlertComponent, decorators: [{
|
|
129
126
|
type: Component,
|
|
130
|
-
args: [{ selector: 'nas-alert', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div #alertContainer *ngIf=\"exists(showValue)\" [nasClass]=\"getClasses('', modifiers)\" tabindex=\"0\">\n <div [nasClass]=\"getClass('content')\">\n <nas-icon *ngIf=\"!removeIcon\" [icon]=\"getIcon()\"></nas-icon>\n
|
|
127
|
+
args: [{ selector: 'nas-alert', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div #alertContainer *ngIf=\"exists(showValue)\" [nasClass]=\"getClasses('', modifiers)\" tabindex=\"0\">\n <div [nasClass]=\"getClass('content')\">\n <nas-icon *ngIf=\"!removeIcon\" [icon]=\"getIcon()\"></nas-icon>\n <div [nasClass]=\"getClass('remove-alert')\" *ngIf=\"exists(removable);\">\n <nas-icon type=\"remove\" (click)=\"removeAlertBox()\"></nas-icon>\n </div>\n <div [nasClass]=\"getClass('text-container')\">\n <div *ngIf=\"timestamp || server\" [nasClass]=\"getClass('text--internal-info')\">\n <span *ngIf=\"timestamp\">{{timestamp | date:'full'}}</span>\n <span *ngIf=\"server\">{{server}}</span>\n </div>\n <div *ngIf=\"exists(title)\" [nasClass]=\"getClass('text')\">{{title}}</div>\n <span *ngIf=\"text && !trustTextHtml\" [nasClass]=\"getClass('text--small')\">{{text}}</span>\n <span *ngIf=\"text && trustTextHtml\" [nasClass]=\"getClass('text--small')\" [innerHTML]=\"text\"></span>\n <ng-content></ng-content>\n </div>\n </div>\n</div>", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}.nas-alert{position:relative;padding:16px 12px;width:100%;height:100%;border:1px solid #15273f;background-color:#ebf4ff}.nas-alert--info{background-color:#ebf4ff;border:1px solid #15273f}.nas-alert--info img{width:24px;height:24px}.nas-alert--info:focus-visible{outline:2px solid #0978E8;outline-offset:2px}.nas-alert--success{background-color:#f4faf2;border:1px solid #2EB004}.nas-alert--success img{width:24px;height:24px}.nas-alert--success:focus-visible{outline:2px solid #0978E8;outline-offset:2px}.nas-alert--warning{background-color:#fff6ec;border:1px solid #FC9E12}.nas-alert--warning img{width:24px;height:24px}.nas-alert--warning:focus-visible{outline:2px solid #0978E8;outline-offset:2px}.nas-alert--error{background-color:#fff5f3;border:1px solid #CC3A19}.nas-alert--error img{width:24px;height:24px}.nas-alert--error:focus-visible{outline:2px solid #0978E8;outline-offset:2px}.nas-alert--neutral{background-color:#f9f9f9;border:1px solid #eaeaea}.nas-alert--neutral img{width:24px;height:24px}.nas-alert--neutral:focus-visible{outline:2px solid #0978E8;outline-offset:2px}.nas-alert__content{display:inline-flex}.nas-alert__remove-alert{position:absolute;right:10px;top:10px;cursor:pointer}.nas-alert__text-container{display:flex;flex-direction:column;margin-left:6px}.nas-alert__text,.nas-alert__text--internal-info,.nas-alert__text--small{color:#15273f;font-size:14px;font-weight:700;line-height:20px;margin-bottom:4px}.nas-alert__text--small{font-weight:400;margin-top:-1px}.nas-alert__text--internal-info{display:flex;flex-direction:row;font-weight:500;font-size:12px;line-height:16px;margin-bottom:9px;gap:3px}\n"] }]
|
|
131
128
|
}], ctorParameters: function () { return []; }, propDecorators: { showChange: [{
|
|
132
129
|
type: Output
|
|
133
130
|
}], alertContainer: [{
|
|
@@ -161,9 +158,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImpor
|
|
|
161
158
|
type: Input
|
|
162
159
|
}], server: [{
|
|
163
160
|
type: Input
|
|
164
|
-
}], correlation: [{
|
|
165
|
-
type: Input
|
|
166
161
|
}], alert: [{
|
|
167
162
|
type: Input
|
|
168
163
|
}] } });
|
|
169
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9hbGVydC9hbGVydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2FsZXJ0L2FsZXJ0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUVILE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQzs7Ozs7QUFJOUM7OztHQUdHO0FBT0gsTUFBTSxPQUFPLGNBQWUsU0FBUSxnQkFBZ0I7SUFnRWxEOzs7O09BSUc7SUFDSCxJQUNJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUNELElBQUksSUFBSSxDQUFDLEtBQWM7UUFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUE0Q0Q7Ozs7T0FJRztJQUNELElBQ0ksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsS0FBaUI7UUFDekIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDeEIsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzVCO1FBQ0QsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFSDtRQUNFLEtBQUssQ0FB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LElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQztTQUNsQztRQUNELElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNoQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7U0FDNUI7UUFDRCxJQUFJLEtBQUssQ0FBQyxVQUFVLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDO1NBQ3BDO1FBQ0QsSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQztTQUN0QztJQUNILENBQUM7OEdBMU5VLGNBQWM7a0dBQWQsY0FBYywrakJDcEIzQixpaUNBa0JNOzsyRkRFTyxjQUFjO2tCQU4xQixTQUFTOytCQUNFLFdBQVcsbUJBR0osdUJBQXVCLENBQUMsTUFBTTswRUFJckMsVUFBVTtzQkFBbkIsTUFBTTtnQkFDc0IsY0FBYztzQkFBMUMsU0FBUzt1QkFBQyxnQkFBZ0I7Z0JBQ2xCLFNBQVM7c0JBQWpCLEtBQUs7Z0JBZ0JHLEtBQUs7c0JBQWIsS0FBSztnQkFPRyxJQUFJO3NCQUFaLEtBQUs7Z0JBT0csT0FBTztzQkFBZixLQUFLO2dCQU9HLEtBQUs7c0JBQWIsS0FBSztnQkFPRyxPQUFPO3NCQUFmLEtBQUs7Z0JBT0csT0FBTztzQkFBZixLQUFLO2dCQU9HLElBQUk7c0JBQVosS0FBSztnQkFRRixJQUFJO3NCQURQLEtBQUs7Z0JBY0csU0FBUztzQkFBakIsS0FBSztnQkFPSyxVQUFVO3NCQUFsQixLQUFLO2dCQU9DLGFBQWE7c0JBQXJCLEtBQUs7Z0JBT0csZUFBZTtzQkFBdkIsS0FBSztnQkFPRyxNQUFNO3NCQUFkLEtBQUs7Z0JBT0ssV0FBVztzQkFBbkIsS0FBSztnQkFRRixLQUFLO3NCQURSLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgTm9yd2VnaWFuIEFpciBTaHV0dGxlLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICovXG5cbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXNDb21wb25lbnRCYXNlIH0gZnJvbSAnLi4vLi4vY29yZSc7XG5pbXBvcnQgeyBDbGFzc01vZGVsIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbHMvY2xhc3MubW9kZWwnO1xuaW1wb3J0IHsgQWxlcnRNb2RlbCB9IGZyb20gJy4vbW9kZWxzL2FsZXJ0Lm1vZGVsJztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqIE5vcndlZ2lhbiBhbGVydCBDb21wb25lbnQgfCBEaWFsb2dzIGFuZCBNb2RhbHNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmFzLWFsZXJ0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FsZXJ0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYWxlcnQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQWxlcnRDb21wb25lbnQgZXh0ZW5kcyBOYXNDb21wb25lbnRCYXNlIHtcbiAgcHJpdmF0ZSBhbGVydE1vZGVsOiBBbGVydE1vZGVsO1xuICBAT3V0cHV0KCkgc2hvd0NoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBAVmlld0NoaWxkKCdhbGVydENvbnRhaW5lcicpIGFsZXJ0Q29udGFpbmVyOiBFbGVtZW50UmVmO1xuICBASW5wdXQoKSB0aW1lc3RhbXA6IERhdGU7XG4gIHB1YmxpYyBzaG93VmFsdWUgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBAdGV4dFxuICAgKiBVc2VkIHRvIGRldGVybWluZSB0aGF0IHlvdSB3YW50IHRvIHNob3cgYW4gZXJyb3JcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1hbGVydCBlcnJvcj5UcnkgYWdhaW4sIHdlIHdlcmVudCBhYmxlIHRvIGZldGNoLi4uPC9uYXMtYWxlcnQ+XG4gICAqXG4gICAqL1xuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBCb29sZWFuIHRvIGdpdmUgdGhlIGFsZXJ0IGluZm8uXG4gICAqL1xuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEJvb2xlYW4gdG8gZ2l2ZSB0aGUgYWxlcnQgaW5mby5cbiAgICovXG4gIEBJbnB1dCgpIGluZm86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQm9vbGVhbiB0byBnaXZlIHRoZSBhbGVydCBhIHdhcm5pbmcuXG4gICAqL1xuICBASW5wdXQoKSB3YXJuaW5nOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEJvb2xlYW4gdG8gZ2l2ZSB0aGUgYWxlcnQgYW4gZXJyb3IuXG4gICAqL1xuICBASW5wdXQoKSBlcnJvcjogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBCb29sZWFuIHRvIGdpdmUgdGhlIGFsZXJ0IGEgc3VjY2Vzcy5cbiAgICovXG4gIEBJbnB1dCgpIHN1Y2Nlc3M6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQm9vbGVhbiB0byBnaXZlIHRoZSBhbGVydCBhIHN1Y2Nlc3MuXG4gICAqL1xuICBASW5wdXQoKSBuZXV0cmFsOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgdGV4dCBvbiB0aGUgYWxlcnQuIElmIHNldCB0byBmYWxzZSB0aGUgYWxlcnQgd2lsbCBub3QgZGlzcGxheSBhbnkgdGV4dC5cbiAgICovXG4gIEBJbnB1dCgpIHRleHQ6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBGbGFnIGZvciBzaG93aW5nL2hpZGluZyBlbGVtZW50LiBEZWZhdWx0cyB0byB0cnVlLlxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IHNob3coKSB7XG4gICAgcmV0dXJuIHRoaXMuc2hvd1ZhbHVlO1xuICB9XG4gIHNldCBzaG93KHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5zaG93VmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLnNjcm9sbFRvQWxlcnQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEJvb2xlYW4gdG8gZ2l2ZSBvcHBvcnR1bml0eSB0byBjbG9zZSB0aGUgYWxlcnQgYm94XG4gICAqL1xuICBASW5wdXQoKSByZW1vdmFibGU6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQm9vbGVhbiB0byBnaXZlIG9wcG9ydHVuaXR5IHRvIHJlbW92ZSB0aGUgaWNvblxuICAgKi9cbiAgICBASW5wdXQoKSByZW1vdmVJY29uPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBHZXQgb3Igc2V0cyBib29sZWFuIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciB0ZXh0IHNob3VsZCBiZSB0cnVzdGVkIGFzIEhUTUwuIERlZmF1bHRzIHRvIGZhbHNlXG4gICAqL1xuICBASW5wdXQoKSB0cnVzdFRleHRIdG1sOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEZsYWcgZm9yIGFsbG93aW5nIGF1dG9zY3JvbGwgdG8gdG9wIHdoZW4gc2hvd2luZy4gRGVmYXVsdCBmYWxzZS5cbiAgICovXG4gIEBJbnB1dCgpIGFsbG93QXV0b1Njcm9sbCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgdGhlIHNlcnZlciBzdHJpbmcgdmFsdWVcbiAgICovXG4gIEBJbnB1dCgpIHNlcnZlcjogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2V0cyB0aGUgY29ycmVsYXRpb24gc3RyaW5nIHZhbHVlXG4gICAqL1xuICAgIEBJbnB1dCgpIGNvcnJlbGF0aW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogRmxhZyBmb3Igc2hvd2luZy9oaWRpbmcgZWxlbWVudC4gRGVmYXVsdHMgdG8gdHJ1ZS5cbiAgICovXG4gICAgQElucHV0KClcbiAgICBnZXQgYWxlcnQoKSB7XG4gICAgICByZXR1cm4gdGhpcy5hbGVydE1vZGVsO1xuICAgIH1cbiAgICBzZXQgYWxlcnQoYWxlcnQ6IEFsZXJ0TW9kZWwpIHtcbiAgICAgIHRoaXMuYWxlcnRNb2RlbCA9IGFsZXJ0O1xuICAgICAgaWYgKGFsZXJ0KSB7XG4gICAgICAgIHRoaXMuc2V0QWxlcnRWYWx1ZXMoYWxlcnQpO1xuICAgICAgfVxuICAgICAgdGhpcy5zY3JvbGxUb0FsZXJ0KCk7XG4gICAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCduYXMtYWxlcnQnKTtcbiAgfVxuXG4gIGdldENsYXNzZXMoZWxlbWVudD86IHN0cmluZywgbW9kaWZpZXJzPzogQXJyYXk8c3RyaW5nPik6IEFycmF5PENsYXNzTW9kZWw+IHtcbiAgICBjb25zdCBjbGFzc2VzOiBBcnJheTxDbGFzc01vZGVsPiA9IFtcbiAgICAgIHRoaXMuZ2V0Q2xhc3MoZWxlbWVudCwgbW9kaWZpZXJzKVxuICAgIF07XG4gICAgcmV0dXJuIGNsYXNzZXM7XG4gIH1cblxuICBnZXQgbW9kaWZpZXJzKCk6IEFycmF5PHN0cmluZz4ge1xuICAgIHJldHVybiBbXG4gICAgICB0aGlzLmV4aXN0cyh0aGlzLmluZm8pICYmICdpbmZvJyxcbiAgICAgIHRoaXMuZXhpc3RzKHRoaXMud2FybmluZykgJiYgJ3dhcm5pbmcnLFxuICAgICAgdGhpcy5leGlzdHModGhpcy5zdWNjZXNzKSAmJiAnc3VjY2VzcycsXG4gICAgICB0aGlzLmV4aXN0cyh0aGlzLmVycm9yKSAmJiAnZXJyb3InLFxuICAgICAgdGhpcy5leGlzdHModGhpcy5uZXV0cmFsKSAmJiAnbmV1dHJhbCcsXG4gICAgXTtcbiAgfVxuXG4gIGdldEljb24oKTogc3RyaW5nIHtcbiAgICBjb25zdCBpY29uTWFwID0ge1xuICAgICAgd2FybmluZzogJ3dhcm5pbmcnLFxuICAgICAgc3VjY2VzczogJ3N1Y2Nlc3MnLFxuICAgICAgZXJyb3I6ICdlcnJvcicsXG4gICAgICBuZXV0cmFsOiAnaW5mbycsXG4gICAgICBpbmZvOiAnaW5mbydcbiAgICB9O1xuXG4gICAgZm9yIChjb25zdCBpY29uIG9mIE9iamVjdC5rZXlzKGljb25NYXApKSB7XG4gICAgICBpZiAodGhpcy5leGlzdHMoKHRoaXMgYXMgYW55KVtpY29uXSkpIHtcbiAgICAgICAgcmV0dXJuIGljb25NYXBbaWNvbl07XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuICdpbmZvJztcbiAgfVxuXG4gIHJlbW92ZUFsZXJ0Qm94KCk6IHZvaWQge1xuICAgIHRoaXMuc2hvdyA9IGZhbHNlO1xuICAgIHRoaXMuc2hvd0NoYW5nZS5lbWl0KHRoaXMuc2hvdyk7XG4gIH1cblxuICBwcml2YXRlIHNjcm9sbFRvQWxlcnQoKTogdm9pZCB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5hbGxvd0F1dG9TY3JvbGwgJiYgdGhpcy5zaG93KSB7XG4gICAgICAgIGNvbnN0IHNjcm9sbGVkUGl4ZWxDb3VudCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgfHwgZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AgfHwgMDtcbiAgICAgICAgaWYgKHRoaXMuYWxlcnRDb250YWluZXIpIHtcbiAgICAgICAgICBjb25zdCBvZmZzZXRUb3AgPSB0aGlzLmFsZXJ0Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0VG9wO1xuICAgICAgICAgIGlmICgodGhpcy50ZXh0IHx8IHRoaXMudGl0bGUpICYmIHNjcm9sbGVkUGl4ZWxDb3VudCA+IG9mZnNldFRvcCkge1xuICAgICAgICAgICAgd2luZG93LnNjcm9sbFRvKHtcbiAgICAgICAgICAgICAgYmVoYXZpb3I6ICdzbW9vdGgnLFxuICAgICAgICAgICAgICBsZWZ0OiAwLFxuICAgICAgICAgICAgICB0b3A6IG9mZnNldFRvcFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgMTAwKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0QWxlcnRWYWx1ZXMoYWxlcnQ6IEFsZXJ0TW9kZWwpOiB2b2lkIHtcbiAgICBpZiAoYWxlcnQudGl0bGUpIHtcbiAgICAgIHRoaXMudGl0bGUgPSBhbGVydC50aXRsZTtcbiAgICB9XG4gICAgaWYgKGFsZXJ0LnRleHQpIHtcbiAgICAgIHRoaXMudGV4dCA9IGFsZXJ0LnRleHQ7XG4gICAgfVxuICAgIGlmIChhbGVydC50aW1lc3RhbXApIHtcbiAgICAgIHRoaXMudGltZXN0YW1wID0gYWxlcnQudGltZXN0YW1wO1xuICAgIH1cbiAgICBpZiAoYWxlcnQuc2VydmVyKSB7XG4gICAgICB0aGlzLnNlcnZlciA9IGFsZXJ0LnNlcnZlcjtcbiAgICB9XG4gICAgaWYgKGFsZXJ0LnJlbW92ZUljb24pIHtcbiAgICAgIHRoaXMucmVtb3ZlSWNvbiA9IGFsZXJ0LnJlbW92ZUljb247XG4gICAgfVxuICAgIGlmIChhbGVydC5jb3JyZWxhdGlvbikge1xuICAgICAgdGhpcy5jb3JyZWxhdGlvbiA9IGFsZXJ0LmNvcnJlbGF0aW9uO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiAjYWxlcnRDb250YWluZXIgKm5nSWY9XCJleGlzdHMoc2hvd1ZhbHVlKVwiIFtuYXNDbGFzc109XCJnZXRDbGFzc2VzKCcnLCBtb2RpZmllcnMpXCIgdGFiaW5kZXg9XCIwXCI+XG4gIDxkaXYgW25hc0NsYXNzXT1cImdldENsYXNzKCdjb250ZW50JylcIj5cbiAgICAgIDxuYXMtaWNvbiAqbmdJZj1cIiFyZW1vdmVJY29uXCIgW2ljb25dPVwiZ2V0SWNvbigpXCI+PC9uYXMtaWNvbj5cbiAgICA8ZGl2IFtuYXNDbGFzc109XCJnZXRDbGFzcygncmVtb3ZlLWFsZXJ0JylcIiAqbmdJZj1cImV4aXN0cyhyZW1vdmFibGUpO1wiPlxuICAgICAgPG5hcy1pY29uIHR5cGU9XCJyZW1vdmVcIiAoY2xpY2spPVwicmVtb3ZlQWxlcnRCb3goKVwiPjwvbmFzLWljb24+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ3RleHQtY29udGFpbmVyJylcIj5cbiAgICAgIDxkaXYgKm5nSWY9XCJleGlzdHModGl0bGUpXCIgW25hc0NsYXNzXT1cImdldENsYXNzKCd0ZXh0JylcIj57e3RpdGxlfX08L2Rpdj5cbiAgICAgIDxkaXYgW25hc0NsYXNzXT1cImdldENsYXNzKCd0ZXh0LS1pbnRlcm5hbC1pbmZvJylcIj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJ0aW1lc3RhbXBcIj57e3RpbWVzdGFtcCB8IGRhdGU6J2Z1bGwnfX08L3NwYW4+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwic2VydmVyXCI+e3tzZXJ2ZXJ9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJjb3JyZWxhdGlvblwiPnt7Y29ycmVsYXRpb259fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPHNwYW4gKm5nSWY9XCJ0ZXh0ICYmICF0cnVzdFRleHRIdG1sXCIgW25hc0NsYXNzXT1cImdldENsYXNzKCd0ZXh0LS1zbWFsbCcpXCI+e3t0ZXh0fX08L3NwYW4+XG4gICAgICA8c3BhbiAqbmdJZj1cInRleHQgJiYgdHJ1c3RUZXh0SHRtbFwiIFtuYXNDbGFzc109XCJnZXRDbGFzcygndGV4dC0tc21hbGwnKVwiIFtpbm5lckhUTUxdPVwidGV4dFwiPjwvc3Bhbj5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=
|
|
164
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9hbGVydC9hbGVydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2FsZXJ0L2FsZXJ0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUVILE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQzs7Ozs7QUFJOUM7OztHQUdHO0FBT0gsTUFBTSxPQUFPLGNBQWUsU0FBUSxnQkFBZ0I7SUFnRWxEOzs7O09BSUc7SUFDSCxJQUNJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUNELElBQUksSUFBSSxDQUFDLEtBQWM7UUFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFxQ0Q7Ozs7T0FJRztJQUNELElBQ0ksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsS0FBaUI7UUFDekIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDeEIsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzVCO1FBQ0QsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFSDtRQUNFLEtBQUssQ0FB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LElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQztTQUNsQztRQUNELElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNoQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7U0FDNUI7UUFDRCxJQUFJLEtBQUssQ0FBQyxVQUFVLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDO1NBQ3BDO0lBQ0gsQ0FBQzs4R0FoTlUsY0FBYztrR0FBZCxjQUFjLG1pQkNwQjNCLHFnQ0FpQk07OzJGREdPLGNBQWM7a0JBTjFCLFNBQVM7K0JBQ0UsV0FBVyxtQkFHSix1QkFBdUIsQ0FBQyxNQUFNOzBFQUlyQyxVQUFVO3NCQUFuQixNQUFNO2dCQUNzQixjQUFjO3NCQUExQyxTQUFTO3VCQUFDLGdCQUFnQjtnQkFDbEIsU0FBUztzQkFBakIsS0FBSztnQkFnQkcsS0FBSztzQkFBYixLQUFLO2dCQU9HLElBQUk7c0JBQVosS0FBSztnQkFPRyxPQUFPO3NCQUFmLEtBQUs7Z0JBT0csS0FBSztzQkFBYixLQUFLO2dCQU9HLE9BQU87c0JBQWYsS0FBSztnQkFPRyxPQUFPO3NCQUFmLEtBQUs7Z0JBT0csSUFBSTtzQkFBWixLQUFLO2dCQVFGLElBQUk7c0JBRFAsS0FBSztnQkFjRyxTQUFTO3NCQUFqQixLQUFLO2dCQU9LLFVBQVU7c0JBQWxCLEtBQUs7Z0JBT0MsYUFBYTtzQkFBckIsS0FBSztnQkFPRyxlQUFlO3NCQUF2QixLQUFLO2dCQU9HLE1BQU07c0JBQWQsS0FBSztnQkFRQSxLQUFLO3NCQURSLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgTm9yd2VnaWFuIEFpciBTaHV0dGxlLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICovXG5cbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXNDb21wb25lbnRCYXNlIH0gZnJvbSAnLi4vLi4vY29yZSc7XG5pbXBvcnQgeyBDbGFzc01vZGVsIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbHMvY2xhc3MubW9kZWwnO1xuaW1wb3J0IHsgQWxlcnRNb2RlbCB9IGZyb20gJy4vbW9kZWxzL2FsZXJ0Lm1vZGVsJztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqIE5vcndlZ2lhbiBhbGVydCBDb21wb25lbnQgfCBEaWFsb2dzIGFuZCBNb2RhbHNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmFzLWFsZXJ0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FsZXJ0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYWxlcnQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQWxlcnRDb21wb25lbnQgZXh0ZW5kcyBOYXNDb21wb25lbnRCYXNlIHtcbiAgcHJpdmF0ZSBhbGVydE1vZGVsOiBBbGVydE1vZGVsO1xuICBAT3V0cHV0KCkgc2hvd0NoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBAVmlld0NoaWxkKCdhbGVydENvbnRhaW5lcicpIGFsZXJ0Q29udGFpbmVyOiBFbGVtZW50UmVmO1xuICBASW5wdXQoKSB0aW1lc3RhbXA6IERhdGU7XG4gIHB1YmxpYyBzaG93VmFsdWUgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBAdGV4dFxuICAgKiBVc2VkIHRvIGRldGVybWluZSB0aGF0IHlvdSB3YW50IHRvIHNob3cgYW4gZXJyb3JcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1hbGVydCBlcnJvcj5UcnkgYWdhaW4sIHdlIHdlcmVudCBhYmxlIHRvIGZldGNoLi4uPC9uYXMtYWxlcnQ+XG4gICAqXG4gICAqL1xuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBCb29sZWFuIHRvIGdpdmUgdGhlIGFsZXJ0IGluZm8uXG4gICAqL1xuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEJvb2xlYW4gdG8gZ2l2ZSB0aGUgYWxlcnQgaW5mby5cbiAgICovXG4gIEBJbnB1dCgpIGluZm86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQm9vbGVhbiB0byBnaXZlIHRoZSBhbGVydCBhIHdhcm5pbmcuXG4gICAqL1xuICBASW5wdXQoKSB3YXJuaW5nOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEJvb2xlYW4gdG8gZ2l2ZSB0aGUgYWxlcnQgYW4gZXJyb3IuXG4gICAqL1xuICBASW5wdXQoKSBlcnJvcjogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBCb29sZWFuIHRvIGdpdmUgdGhlIGFsZXJ0IGEgc3VjY2Vzcy5cbiAgICovXG4gIEBJbnB1dCgpIHN1Y2Nlc3M6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQm9vbGVhbiB0byBnaXZlIHRoZSBhbGVydCBhIHN1Y2Nlc3MuXG4gICAqL1xuICBASW5wdXQoKSBuZXV0cmFsOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgdGV4dCBvbiB0aGUgYWxlcnQuIElmIHNldCB0byBmYWxzZSB0aGUgYWxlcnQgd2lsbCBub3QgZGlzcGxheSBhbnkgdGV4dC5cbiAgICovXG4gIEBJbnB1dCgpIHRleHQ6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBGbGFnIGZvciBzaG93aW5nL2hpZGluZyBlbGVtZW50LiBEZWZhdWx0cyB0byB0cnVlLlxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IHNob3coKSB7XG4gICAgcmV0dXJuIHRoaXMuc2hvd1ZhbHVlO1xuICB9XG4gIHNldCBzaG93KHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5zaG93VmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLnNjcm9sbFRvQWxlcnQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEJvb2xlYW4gdG8gZ2l2ZSBvcHBvcnR1bml0eSB0byBjbG9zZSB0aGUgYWxlcnQgYm94XG4gICAqL1xuICBASW5wdXQoKSByZW1vdmFibGU6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQm9vbGVhbiB0byBnaXZlIG9wcG9ydHVuaXR5IHRvIHJlbW92ZSB0aGUgaWNvblxuICAgKi9cbiAgICBASW5wdXQoKSByZW1vdmVJY29uPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBHZXQgb3Igc2V0cyBib29sZWFuIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciB0ZXh0IHNob3VsZCBiZSB0cnVzdGVkIGFzIEhUTUwuIERlZmF1bHRzIHRvIGZhbHNlXG4gICAqL1xuICBASW5wdXQoKSB0cnVzdFRleHRIdG1sOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEZsYWcgZm9yIGFsbG93aW5nIGF1dG9zY3JvbGwgdG8gdG9wIHdoZW4gc2hvd2luZy4gRGVmYXVsdCBmYWxzZS5cbiAgICovXG4gIEBJbnB1dCgpIGFsbG93QXV0b1Njcm9sbCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgdGhlIHNlcnZlciBzdHJpbmcgdmFsdWVcbiAgICovXG4gIEBJbnB1dCgpIHNlcnZlcjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEZsYWcgZm9yIHNob3dpbmcvaGlkaW5nIGVsZW1lbnQuIERlZmF1bHRzIHRvIHRydWUuXG4gICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGFsZXJ0KCkge1xuICAgICAgcmV0dXJuIHRoaXMuYWxlcnRNb2RlbDtcbiAgICB9XG4gICAgc2V0IGFsZXJ0KGFsZXJ0OiBBbGVydE1vZGVsKSB7XG4gICAgICB0aGlzLmFsZXJ0TW9kZWwgPSBhbGVydDtcbiAgICAgIGlmIChhbGVydCkge1xuICAgICAgICB0aGlzLnNldEFsZXJ0VmFsdWVzKGFsZXJ0KTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2Nyb2xsVG9BbGVydCgpO1xuICAgIH1cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcignbmFzLWFsZXJ0Jyk7XG4gIH1cblxuICBnZXRDbGFzc2VzKGVsZW1lbnQ/OiBzdHJpbmcsIG1vZGlmaWVycz86IEFycmF5PHN0cmluZz4pOiBBcnJheTxDbGFzc01vZGVsPiB7XG4gICAgY29uc3QgY2xhc3NlczogQXJyYXk8Q2xhc3NNb2RlbD4gPSBbXG4gICAgICB0aGlzLmdldENsYXNzKGVsZW1lbnQsIG1vZGlmaWVycylcbiAgICBdO1xuICAgIHJldHVybiBjbGFzc2VzO1xuICB9XG5cbiAgZ2V0IG1vZGlmaWVycygpOiBBcnJheTxzdHJpbmc+IHtcbiAgICByZXR1cm4gW1xuICAgICAgdGhpcy5leGlzdHModGhpcy5pbmZvKSAmJiAnaW5mbycsXG4gICAgICB0aGlzLmV4aXN0cyh0aGlzLndhcm5pbmcpICYmICd3YXJuaW5nJyxcbiAgICAgIHRoaXMuZXhpc3RzKHRoaXMuc3VjY2VzcykgJiYgJ3N1Y2Nlc3MnLFxuICAgICAgdGhpcy5leGlzdHModGhpcy5lcnJvcikgJiYgJ2Vycm9yJyxcbiAgICAgIHRoaXMuZXhpc3RzKHRoaXMubmV1dHJhbCkgJiYgJ25ldXRyYWwnLFxuICAgIF07XG4gIH1cblxuICBnZXRJY29uKCk6IHN0cmluZyB7XG4gICAgY29uc3QgaWNvbk1hcCA9IHtcbiAgICAgIHdhcm5pbmc6ICd3YXJuaW5nJyxcbiAgICAgIHN1Y2Nlc3M6ICdzdWNjZXNzJyxcbiAgICAgIGVycm9yOiAnZXJyb3InLFxuICAgICAgbmV1dHJhbDogJ2luZm8nLFxuICAgICAgaW5mbzogJ2luZm8nXG4gICAgfTtcblxuICAgIGZvciAoY29uc3QgaWNvbiBvZiBPYmplY3Qua2V5cyhpY29uTWFwKSkge1xuICAgICAgaWYgKHRoaXMuZXhpc3RzKCh0aGlzIGFzIGFueSlbaWNvbl0pKSB7XG4gICAgICAgIHJldHVybiBpY29uTWFwW2ljb25dO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiAnaW5mbyc7XG4gIH1cblxuICByZW1vdmVBbGVydEJveCgpOiB2b2lkIHtcbiAgICB0aGlzLnNob3cgPSBmYWxzZTtcbiAgICB0aGlzLnNob3dDaGFuZ2UuZW1pdCh0aGlzLnNob3cpO1xuICB9XG5cbiAgcHJpdmF0ZSBzY3JvbGxUb0FsZXJ0KCk6IHZvaWQge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuYWxsb3dBdXRvU2Nyb2xsICYmIHRoaXMuc2hvdykge1xuICAgICAgICBjb25zdCBzY3JvbGxlZFBpeGVsQ291bnQgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wIHx8IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wIHx8IDA7XG4gICAgICAgIGlmICh0aGlzLmFsZXJ0Q29udGFpbmVyKSB7XG4gICAgICAgICAgY29uc3Qgb2Zmc2V0VG9wID0gdGhpcy5hbGVydENvbnRhaW5lci5uYXRpdmVFbGVtZW50Lm9mZnNldFRvcDtcbiAgICAgICAgICBpZiAoKHRoaXMudGV4dCB8fCB0aGlzLnRpdGxlKSAmJiBzY3JvbGxlZFBpeGVsQ291bnQgPiBvZmZzZXRUb3ApIHtcbiAgICAgICAgICAgIHdpbmRvdy5zY3JvbGxUbyh7XG4gICAgICAgICAgICAgIGJlaGF2aW9yOiAnc21vb3RoJyxcbiAgICAgICAgICAgICAgbGVmdDogMCxcbiAgICAgICAgICAgICAgdG9wOiBvZmZzZXRUb3BcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sIDEwMCk7XG4gIH1cblxuICBwcml2YXRlIHNldEFsZXJ0VmFsdWVzKGFsZXJ0OiBBbGVydE1vZGVsKTogdm9pZCB7XG4gICAgaWYgKGFsZXJ0LnRpdGxlKSB7XG4gICAgICB0aGlzLnRpdGxlID0gYWxlcnQudGl0bGU7XG4gICAgfVxuICAgIGlmIChhbGVydC50ZXh0KSB7XG4gICAgICB0aGlzLnRleHQgPSBhbGVydC50ZXh0O1xuICAgIH1cbiAgICBpZiAoYWxlcnQudGltZXN0YW1wKSB7XG4gICAgICB0aGlzLnRpbWVzdGFtcCA9IGFsZXJ0LnRpbWVzdGFtcDtcbiAgICB9XG4gICAgaWYgKGFsZXJ0LnNlcnZlcikge1xuICAgICAgdGhpcy5zZXJ2ZXIgPSBhbGVydC5zZXJ2ZXI7XG4gICAgfVxuICAgIGlmIChhbGVydC5yZW1vdmVJY29uKSB7XG4gICAgICB0aGlzLnJlbW92ZUljb24gPSBhbGVydC5yZW1vdmVJY29uO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiAjYWxlcnRDb250YWluZXIgKm5nSWY9XCJleGlzdHMoc2hvd1ZhbHVlKVwiIFtuYXNDbGFzc109XCJnZXRDbGFzc2VzKCcnLCBtb2RpZmllcnMpXCIgdGFiaW5kZXg9XCIwXCI+XG4gIDxkaXYgW25hc0NsYXNzXT1cImdldENsYXNzKCdjb250ZW50JylcIj5cbiAgICAgIDxuYXMtaWNvbiAqbmdJZj1cIiFyZW1vdmVJY29uXCIgW2ljb25dPVwiZ2V0SWNvbigpXCI+PC9uYXMtaWNvbj5cbiAgICAgIDxkaXYgW25hc0NsYXNzXT1cImdldENsYXNzKCdyZW1vdmUtYWxlcnQnKVwiICpuZ0lmPVwiZXhpc3RzKHJlbW92YWJsZSk7XCI+XG4gICAgICA8bmFzLWljb24gdHlwZT1cInJlbW92ZVwiIChjbGljayk9XCJyZW1vdmVBbGVydEJveCgpXCI+PC9uYXMtaWNvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IFtuYXNDbGFzc109XCJnZXRDbGFzcygndGV4dC1jb250YWluZXInKVwiPlxuICAgICAgPGRpdiAqbmdJZj1cInRpbWVzdGFtcCB8fCBzZXJ2ZXJcIiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ3RleHQtLWludGVybmFsLWluZm8nKVwiPlxuICAgICAgICA8c3BhbiAqbmdJZj1cInRpbWVzdGFtcFwiPnt7dGltZXN0YW1wIHwgZGF0ZTonZnVsbCd9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJzZXJ2ZXJcIj57e3NlcnZlcn19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiZXhpc3RzKHRpdGxlKVwiIFtuYXNDbGFzc109XCJnZXRDbGFzcygndGV4dCcpXCI+e3t0aXRsZX19PC9kaXY+XG4gICAgICA8c3BhbiAqbmdJZj1cInRleHQgJiYgIXRydXN0VGV4dEh0bWxcIiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ3RleHQtLXNtYWxsJylcIj57e3RleHR9fTwvc3Bhbj5cbiAgICAgIDxzcGFuICpuZ0lmPVwidGV4dCAmJiB0cnVzdFRleHRIdG1sXCIgW25hc0NsYXNzXT1cImdldENsYXNzKCd0ZXh0LS1zbWFsbCcpXCIgW2lubmVySFRNTF09XCJ0ZXh0XCI+PC9zcGFuPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2FsZXJ0L21vZGVscy9hbGVydC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBBbGVydE1vZGVsIHtcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIHRleHQ/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2FsZXJ0L21vZGVscy9hbGVydC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBBbGVydE1vZGVsIHtcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIHRleHQ/OiBzdHJpbmc7XG4gIHRpbWVzdGFtcD86IERhdGU7XG4gIHNlcnZlcj86IHN0cmluZztcbiAgcmVtb3ZlSWNvbj86IGJvb2xlYW47XG59XG4iXX0=
|
|
@@ -290,7 +290,7 @@ export class DatepickerComboNewComponent extends NasComponentBase {
|
|
|
290
290
|
if (!this.container && !this.container.nativeElement) {
|
|
291
291
|
return;
|
|
292
292
|
}
|
|
293
|
-
this.isInlineFlexOnView = this.container.nativeElement.offsetWidth >
|
|
293
|
+
this.isInlineFlexOnView = this.container.nativeElement.offsetWidth > 788;
|
|
294
294
|
}
|
|
295
295
|
datePickerFloating() {
|
|
296
296
|
if (!this.container && !this.container?.nativeElement) {
|
|
@@ -394,4 +394,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImpor
|
|
|
394
394
|
}], focusOnPreviousChange: [{
|
|
395
395
|
type: Output
|
|
396
396
|
}] } });
|
|
397
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci1jb21iby1uZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9kYXRlcGlja2VyLWNvbWJvLW5ldy9kYXRlcGlja2VyLWNvbWJvLW5ldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2RhdGVwaWNrZXItY29tYm8tbmV3L2RhdGVwaWNrZXItY29tYm8tbmV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUVILE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04saUJBQWlCLEVBQ2pCLFNBQVMsRUFLVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUV0RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFHM0QsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7QUFHckQ7OztHQUdHO0FBT0gsTUFBTSxPQUFPLDJCQUE0QixTQUFRLGdCQUFnQjtJQWMvRDs7OztPQUlHO0lBQ0gsSUFDSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDaEMsQ0FBQztJQUNELElBQUksWUFBWSxDQUFDLEtBQWM7UUFDN0IsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUM3RCxPQUFPO1NBQ1I7UUFFRCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztZQUMvQixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRXBDLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQzdCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO2FBQzFCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQ0ksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQy9CLENBQUM7SUFDRCxJQUFJLFdBQVcsQ0FBQyxLQUFjO1FBQzVCLElBQUksSUFBSSxDQUFDLGVBQWUsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQzNELE9BQU87U0FDUjtRQUVELElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNyQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDOUIsT0FBTztTQUNSO1FBRUQsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7WUFDOUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUVuQyxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO2dCQUM5QixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQzthQUMzQjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQXNKRDs7OztPQUlHO0lBQ0gsSUFDSSxvQkFBb0I7UUFDdEIsT0FBTyxJQUFJLENBQUMseUJBQXlCLENBQUM7SUFDeEMsQ0FBQztJQUNELElBQUksb0JBQW9CLENBQUMsSUFBYTtRQUNwQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1QsT0FBTztTQUNSO1FBRUQsSUFBSSxJQUFJLENBQUMseUJBQXlCLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLHlCQUF5QixFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ3ZHLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyx5QkFBeUIsR0FBRyxJQUFJLENBQUM7UUFFdEMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFFakYsSUFBSSxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQ0ksbUJBQW1CO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLHdCQUF3QixDQUFDO0lBQ3ZDLENBQUM7SUFDRCxJQUFJLG1CQUFtQixDQUFDLElBQWE7UUFDbkMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNULE9BQU87U0FDUjtRQUVELElBQUksSUFBSSxDQUFDLHdCQUF3QixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxJQUFJLENBQUMsRUFBRTtZQUNyRyxPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsd0JBQXdCLEdBQUcsSUFBSSxDQUFDO1FBQ3JDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQWlIRCxJQUFJLG9CQUFvQjtRQUN0QixPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FBQztJQUN4QyxDQUFDO0lBQ0QsSUFBSSxvQkFBb0IsQ0FBQyxLQUFjO1FBQ3JDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixPQUFPO1NBQ1I7UUFFRCxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMseUJBQXlCLENBQUMsRUFBRTtZQUN2RSxPQUFPO1NBQ1I7UUFFRCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLHlCQUF5QixHQUFHLEtBQUssQ0FBQztZQUN2QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQVlELFlBQ1UsV0FBdUIsRUFDdkIsWUFBMEI7UUFDbEMsS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFGMUIsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDdkIsaUJBQVksR0FBWixZQUFZLENBQWM7UUF0UHBDOzs7OztXQUtHO1FBQ00sc0JBQWlCLEdBQUcsbUJBQW1CLENBQUM7UUFFakQ7Ozs7V0FJRztRQUNNLHNCQUFpQixHQUFHLE9BQU8sQ0FBQztRQUVyQzs7Ozs7V0FLRztRQUNNLFdBQU0sR0FBRyxPQUFPLENBQUM7UUF1SDFCOzs7Ozs7Ozs7V0FTRztRQUNNLGdDQUEyQixHQUFHLENBQUMsQ0FBQztRQVN6Qzs7OztXQUlHO1FBQ08sK0JBQTBCLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUVuRTs7OztXQUlHO1FBQ08sOEJBQXlCLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUdsRTs7OztXQUlHO1FBQ08sdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUUzRDs7OztXQUlHO1FBQ08sc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUUxRDs7OztXQUlHO1FBQ08sd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUU1RDs7OztXQUlHO1FBQ08sdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUUzRDs7OztXQUlHO1FBQ08sc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVqRDs7OztXQUlHO1FBQ08sMEJBQXFCLEdBQUcsSUFBSSxZQUFZLEVBQThCLENBQUM7UUF1QnpFLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUN6QixzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDMUIsbUJBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBUyxDQUFDLENBQUMsQ0FBQztRQVV0RCxNQUFNLENBQUMsUUFBUSxHQUFHLEdBQUcsRUFBRTtZQUNyQixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUM5QixDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNyQixJQUFJLElBQUksQ0FBQywwQkFBMEIsRUFBRTtnQkFDbkMsSUFBSSxDQUFDLGdDQUFnQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQztxQkFDM0YsWUFBWTtxQkFDWixTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUU7b0JBQ3BCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxRQUFRLEVBQUUsSUFBSSxDQUFDO2dCQUM3QyxDQUFDLENBQUMsQ0FBQzthQUNOO1lBQ0QsSUFBSSxJQUFJLENBQUMseUJBQXlCLEVBQUU7Z0JBQ2xDLElBQUksQ0FBQywrQkFBK0IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUM7cUJBQ3pGLFlBQVk7cUJBQ1osU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFO29CQUNuQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsT0FBTyxFQUFFLElBQUksQ0FBQztnQkFDM0MsQ0FBQyxDQUFDLENBQUM7YUFDTjtTQUNGO0lBQ0gsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsOEJBQThCLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQWlDO1FBQzdDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQW9CO1FBQ3BDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELHdCQUF3QjtRQUN0QixJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3ZDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsTUFBTSxFQUFFLGFBQTRCLENBQUM7WUFFakcsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxhQUFhLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDekIsQ0FBQyxDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3BDO2FBQU07WUFDTCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztTQUMxQjtJQUNILENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxJQUFhO1FBQ2pDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQztJQUN4QyxDQUFDO0lBRUQsWUFBWTtRQUNWLE1BQU0sTUFBTSxHQUFHO1lBQ2IsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLElBQUk7WUFDdkUsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLElBQUk7U0FDekUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFbEIsTUFBTSxPQUFPLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDO1FBRTVCLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDN0IsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUN6QjtRQUVELElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQzNELE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7WUFFNUIsSUFBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsRUFBRTtnQkFDNUIsT0FBTyxDQUFDLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO2FBQzlDO1NBQ0Y7UUFFRCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELGlCQUFpQjtRQUNmLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRUQsb0JBQW9CO1FBQ2xCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7ZUFDeEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsK0JBQStCLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDcEQsSUFBSSxDQUFDLGdDQUFnQyxFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQ3ZELENBQUM7SUFFTyxvQkFBb0I7UUFDMUIsTUFBTSxvQkFBb0IsR0FBSSxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQTZCLENBQUMsV0FBVyxDQUFDO1FBQ3ZGLElBQUksb0JBQW9CLEdBQUcsQ0FBQyxFQUFFO1lBQzVCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7U0FDaEQ7SUFDSCxDQUFDO0lBRUEsOEJBQThCO1FBQzdCLElBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDL0IsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztZQUNoQyxPQUFPO1NBQ1I7UUFFRCxJQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFO1lBQ25ELE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDO0lBQzNFLENBQUM7SUFHRCxrQkFBa0I7UUFDaEIsSUFBRyxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLGFBQWEsRUFBRTtZQUNwRCxPQUFPO1NBQ1I7UUFDRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLFdBQVcsSUFBSSxHQUFHLENBQUM7SUFDekQsQ0FBQzs4R0E3Z0JVLDJCQUEyQjtrR0FBM0IsMkJBQTJCLDQvRENwQ3hDLHl0RkEwRE07OzJGRHRCTywyQkFBMkI7a0JBTnZDLFNBQVM7K0JBQ0UsMEJBQTBCLGlCQUdyQixpQkFBaUIsQ0FBQyxRQUFROzRIQUtSLGtCQUFrQjtzQkFBbEQsU0FBUzt1QkFBQyxvQkFBb0I7Z0JBQ0MsaUJBQWlCO3NCQUFoRCxTQUFTO3VCQUFDLG1CQUFtQjtnQkFDTixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVc7Z0JBT2IsaUJBQWlCO3NCQUF6QixLQUFLO2dCQVFGLFlBQVk7c0JBRGYsS0FBSztnQkF5QkYsV0FBVztzQkFEZCxLQUFLO2dCQTZCRyx1QkFBdUI7c0JBQS9CLEtBQUs7Z0JBT0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQU9HLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFPRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBT0csZUFBZTtzQkFBdkIsS0FBSztnQkFPRyxZQUFZO3NCQUFwQixLQUFLO2dCQU9HLGFBQWE7c0JBQXJCLEtBQUs7Z0JBT0csWUFBWTtzQkFBcEIsS0FBSztnQkFPRyxlQUFlO3NCQUF2QixLQUFLO2dCQU9HLFlBQVk7c0JBQXBCLEtBQUs7Z0JBT0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQU9HLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFPRyxLQUFLO3NCQUFiLEtBQUs7Z0JBUUcsaUJBQWlCO3NCQUF6QixLQUFLO2dCQU9HLGlCQUFpQjtzQkFBekIsS0FBSztnQkFRRyxNQUFNO3NCQUFkLEtBQUs7Z0JBT0csT0FBTztzQkFBZixLQUFLO2dCQVNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBU0csMEJBQTBCO3NCQUFsQyxLQUFLO2dCQVNHLHlCQUF5QjtzQkFBakMsS0FBSztnQkFRRixvQkFBb0I7c0JBRHZCLEtBQUs7Z0JBMkJGLG1CQUFtQjtzQkFEdEIsS0FBSztnQkFzQkcsZUFBZTtzQkFBdkIsS0FBSztnQkFPRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBT0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQU9HLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFPRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBWUcsMkJBQTJCO3NCQUFuQyxLQUFLO2dCQU9HLFVBQVU7c0JBQWxCLEtBQUs7Z0JBT0ksMEJBQTBCO3NCQUFuQyxNQUFNO2dCQU9HLHlCQUF5QjtzQkFBbEMsTUFBTTtnQkFRRyxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBT0csaUJBQWlCO3NCQUExQixNQUFNO2dCQU9HLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFPRyxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBT0csaUJBQWlCO3NCQUExQixNQUFNO2dCQU9HLHFCQUFxQjtzQkFBOUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBOb3J3ZWdpYW4gQWlyIFNodXR0bGUuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKi9cblxuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBWaWV3Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIEFmdGVyVmlld0NoZWNrZWQsXG4gIE9uSW5pdCxcbiAgT25EZXN0cm95XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTmFzQ29tcG9uZW50QmFzZSB9IGZyb20gJy4uLy4uL2NvcmUvYmFzZS9uYXMtY29tcG9uZW50LmJhc2UnO1xuaW1wb3J0IHsgQ2xhc3NNb2RlbCB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWxzL2NsYXNzLm1vZGVsJztcbmltcG9ydCB7IFV0Y0RhdGUgfSBmcm9tICcuLi8uLi9jb3JlL21vZGVscy91dGMtZGF0ZS5tb2RlbCc7XG5pbXBvcnQgeyBEYXRlSGVscGVyIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9kYXRlL2RhdGUtaGVscGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGV2aWNlSGVscGVyIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9kZXZpY2UvZGV2aWNlLWhlbHBlci5zZXJ2aWNlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEYXRlcGlja2VyTmV3Q29tcG9uZW50IH0gZnJvbSAnLi4vZGF0ZXBpY2tlci1uZXcnO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICogTm9yd2VnaWFuIERhdGVwaWNrZXIgQ29tYm8gQ29tcG9uZW50IHwgTmV3IGRlc2lnbiB8IEJldGFcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmFzLWRhdGVwaWNrZXItY29tYm8tbmV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGVwaWNrZXItY29tYm8tbmV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0ZXBpY2tlci1jb21iby1uZXcuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uRW11bGF0ZWRcbn0pXG5leHBvcnQgY2xhc3MgRGF0ZXBpY2tlckNvbWJvTmV3Q29tcG9uZW50IGV4dGVuZHMgTmFzQ29tcG9uZW50QmFzZSBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3Q2hlY2tlZCwgT25EZXN0cm95IHtcbiAgaW5ib3VuZExvd2VyTGltaXREYXRlOiBVdGNEYXRlO1xuXG4gIEBWaWV3Q2hpbGQoJ2RhdGVwaWNrZXJPdXRib3VuZCcpIGRhdGVwaWNrZXJPdXRib3VuZDogRGF0ZXBpY2tlck5ld0NvbXBvbmVudDtcbiAgQFZpZXdDaGlsZCgnZGF0ZXBpY2tlckluYm91bmQnKSBkYXRlcGlja2VySW5ib3VuZDogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnY29udGFpbmVyJykgY29udGFpbmVyOiBFbGVtZW50UmVmO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFkZHMgJ2FyaWEtbGFiZWwnIHRvIHRoZSBiYWNrZHJvcHMuXG4gICAqL1xuICBASW5wdXQoKSBhcmlhTGFiZWxCYWNrZHJvcDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgb3V0Ym91bmQgZGF0ZXBpY2tlciBvcGVuLlxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IG91dGJvdW5kT3BlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5vdXRib3VuZE9wZW5WYWx1ZTtcbiAgfVxuICBzZXQgb3V0Ym91bmRPcGVuKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKHRoaXMub3V0Ym91bmREaXNhYmxlZCB8fCB2YWx1ZSA9PT0gdGhpcy5vdXRib3VuZE9wZW5WYWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5vdXRib3VuZE9wZW5WYWx1ZSA9IHZhbHVlO1xuICAgICAgdGhpcy5vdXRib3VuZE9wZW5DaGFuZ2UuZW1pdCh2YWx1ZSk7XG5cbiAgICAgIGlmICh2YWx1ZSAmJiB0aGlzLmluYm91bmRPcGVuKSB7XG4gICAgICAgIHRoaXMuaW5ib3VuZE9wZW4gPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgaW5ib3VuZCBkYXRlcGlja2VyIG9wZW4uXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgaW5ib3VuZE9wZW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaW5ib3VuZE9wZW5WYWx1ZTtcbiAgfVxuICBzZXQgaW5ib3VuZE9wZW4odmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodGhpcy5pbmJvdW5kRGlzYWJsZWQgfHwgdmFsdWUgPT09IHRoaXMuaW5ib3VuZE9wZW5WYWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm91dGJvdW5kT25seSkge1xuICAgICAgdGhpcy5mb2N1c09uTmV4dENoYW5nZS5lbWl0KCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmluYm91bmRPcGVuVmFsdWUgPSB2YWx1ZTtcbiAgICAgIHRoaXMuaW5ib3VuZE9wZW5DaGFuZ2UuZW1pdCh2YWx1ZSk7XG5cbiAgICAgIGlmICh2YWx1ZSAmJiB0aGlzLm91dGJvdW5kT3Blbikge1xuICAgICAgICB0aGlzLm91dGJvdW5kT3BlbiA9IGZhbHNlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogTGFiZWwgZm9yIG5vIGF2YWlsYWJsZSBmbGlnaHRzLlxuICAgKi9cbiAgQElucHV0KCkgbm9BdmFpbGFibGVGbGlnaHRzTGFiZWw6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBMYWJlbCBmb3IgYXZhaWxhYmxlIGZsaWdodHMuXG4gICAqL1xuICBASW5wdXQoKSBhdmFpbGFibGVGbGlnaHRzTGFiZWw6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBEaXNhYmxlIHBvc3NpYmlsaXR5IHRvIHNlbGVjdCBkYXRlcyBpbiB0aGUgcGFzdC5cbiAgICovXG4gIEBJbnB1dCgpIGRpc2FibGVQYXN0U2VsZWN0aW9uOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIERpc2FibGUgcG9zc2liaWxpdHkgdG8gc2VsZWN0IG91dGJvdW5kIGRhdGVzLlxuICAgKi9cbiAgQElucHV0KCkgb3V0Ym91bmREaXNhYmxlZDogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBEaXNhYmxlIHBvc3NpYmlsaXR5IHRvIHNlbGVjdCBpbmJvdW5kIGRhdGVzLlxuICAgKi9cbiAgQElucHV0KCkgaW5ib3VuZERpc2FibGVkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFJlbW92ZSB0aGUgaW5ib3VuZCBkYXRlcGlja2VyIGlmIHNldC5cbiAgICovXG4gIEBJbnB1dCgpIG91dGJvdW5kT25seTogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBMYWJlbCBmb3Igb3V0Ym91bmQgZGF0ZXBpY2tlci5cbiAgICovXG4gIEBJbnB1dCgpIG91dGJvdW5kTGFiZWw6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBMYWJlbCBmb3IgaW5ib3VuZCBkYXRlcGlja2VyLlxuICAgKi9cbiAgQElucHV0KCkgaW5ib3VuZExhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogTGFiZWwgZm9yIHRpbWVwaWNrZXIuXG4gICAqL1xuICBASW5wdXQoKSB0aW1lcGlja2VyTGFiZWw6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIHRoZSBkYXRlcGlja2VycyBpbiBhdmFpbGFiaWxpdHkgbW9kZSB3aGVyZSBhdmFpbGFibGUgZGF0ZXMgY2FuIGJlIGFkZGVkLlxuICAgKi9cbiAgQElucHV0KCkgYXZhaWxhYmlsaXR5OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEF2YWlsYWJsZSBkYXRlcyBmb3Igb3V0Ym91bmQgY2FsZW5kYXIuXG4gICAqL1xuICBASW5wdXQoKSBvdXRib3VuZEF2YWlsYWJsZURhdGVzOiBBcnJheTxVdGNEYXRlPjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBdmFpbGFibGUgZGF0ZXMgZm9yIGluYm91bmQgY2FsZW5kYXIuXG4gICAqL1xuICBASW5wdXQoKSBpbmJvdW5kQXZhaWxhYmxlRGF0ZXM6IEFycmF5PFV0Y0RhdGU+O1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIElmIHNldCwgRW5hYmxlcyB0aGUgdGltZSBkcm9wZG93biBzZWxlY3RvciBhbG9uZ3NpZGUgZGF0ZXBpY2tlci5cbiAgICovXG4gIEBJbnB1dCgpIHRpbWVzOiBBcnJheTxVdGNEYXRlPjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGUgZGlzcGxheSBmb3JtYXQgb2YgdGhlIGRhdGUgd2hlbiB1c2VyIGhhcyBzZWxlY3RlZCB0aGUgZGF0ZSBhbmQgaXQgaXMgYmVpbmcgc2hvd24gaW4gdGhlIGlucHV0IGJveCBmb3IgdGhlIGRhdGUgcGlja2VyLlxuICAgKiBQbGVhc2UgbG9vayBhdCB0aGUgYW5ndWxhciBEYXRlIHBpcGUgZm9yIHZhbGlkIGZvcm1hdHMgYW5kIHZhcmlhdGlvbnMuXG4gICAqL1xuICBASW5wdXQoKSBkYXRlRGlzcGxheUZvcm1hdCA9ICdFRUVFIGQsIE1NTU0geXl5eSc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVGhlIHRpbWUgZGlzcGxheSBmb3JtYXQuXG4gICAqL1xuICBASW5wdXQoKSB0aW1lRGlzcGxheUZvcm1hdCA9ICdISDptbSc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSBsb2NhbGUgY29kZSBmb3IgdGhlIGxvY2FsZSBmb3JtYXQgcnVsZXMgdG8gdXNlLiBXaGVuIG5vdCBzdXBwbGllZCwgdXNlcyB0aGUgdmFsdWUgb2YgTE9DQUxFX0lELCB3aGljaCBpcyBlbi1VUyBieSBkZWZhdWx0LlxuICAgKiBUaGlzIHJlcXVpcmVzIHRoYXQgcmVnaXN0ZXJMb2NhbGVEYXRhIGlzIGNhbGxlZCB3aXRoIHRoZSByZXNwZWN0aXZlIGxvY2FsZS5cbiAgICovXG4gIEBJbnB1dCgpIGxvY2FsZSA9ICdlbi1VUyc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSBtb2RpZmllciB0byByZW1vdmUgdGhlIHBhZGRpbmcgYW5kIG1hcmdpbnMgYXJvdW5kIHRoZSBlbGVtZW50LlxuICAgKi9cbiAgQElucHV0KCkgY29tcGFjdDogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBZGRzIHRoZSBwYXJlbnQncyBmb3JtIGdyb3VwLlxuICAgKiBJdCByZXF1aXJlcyB0aGF0IHRoZSBjb25zdW1lciBpbmNsdWRlZCBSZWFjdGl2ZUZvcm1zTW9kdWxlIGluIGl0J3MgbW9kdWxlLlxuICAgKiBJdCBpcyByZXF1aWVyZWQgdG8gYmUgZmlsbGVkIGlmIG5hc0Zvcm1Db250cm9sTmFtZSBhZGRlZC5cbiAgICovXG4gIEBJbnB1dCgpIG5hc0Zvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgYSBmb3JtQ29udHJvbE5hbWUgZGlyZWN0aXZlIHRvIHRoZSBpbnB1dC5cbiAgICogSXQgcmVxdWlyZXMgdGhhdCB0aGUgY29uc3VtZXIgaW5jbHVkZWQgUmVhY3RpdmVGb3Jtc01vZHVsZSBpbiBpdCdzIG1vZHVsZS5cbiAgICogSXQgcmVxdWllcnMgdGhhdCB0aGUgbmFzRm9ybUdyb3VwIGlucHV0IGlzIGZpbGxlZC5cbiAgICovXG4gIEBJbnB1dCgpIG5hc0Zvcm1Db250cm9sTmFtZU91dGJvdW5kOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2V0cyBhIGZvcm1Db250cm9sTmFtZSBkaXJlY3RpdmUgdG8gdGhlIGlucHV0LlxuICAgKiBJdCByZXF1aXJlcyB0aGF0IHRoZSBjb25zdW1lciBpbmNsdWRlZCBSZWFjdGl2ZUZvcm1zTW9kdWxlIGluIGl0J3MgbW9kdWxlLlxuICAgKiBJdCByZXF1aWVycyB0aGF0IHRoZSBuYXNGb3JtR3JvdXAgaW5wdXQgaXMgZmlsbGVkLlxuICAgKi9cbiAgQElucHV0KCkgbmFzRm9ybUNvbnRyb2xOYW1lSW5ib3VuZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNlbGVjdGVkIGRhdGVmb3Igb3V0Ym91bmQgY2FsZW5kYXIuXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgb3V0Ym91bmRTZWxlY3RlZERhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMub3V0Ym91bmRTZWxlY3RlZERhdGVWYWx1ZTtcbiAgfVxuICBzZXQgb3V0Ym91bmRTZWxlY3RlZERhdGUoZGF0ZTogVXRjRGF0ZSkge1xuICAgIGlmICghZGF0ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm91dGJvdW5kU2VsZWN0ZWREYXRlVmFsdWUgJiYgdGhpcy5kYXRlU2VydmljZS5pc1NhbWVEYXRlKHRoaXMub3V0Ym91bmRTZWxlY3RlZERhdGVWYWx1ZSwgZGF0ZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLm91dGJvdW5kU2VsZWN0ZWREYXRlVmFsdWUgPSBkYXRlO1xuXG4gICAgdGhpcy5pbmJvdW5kTG93ZXJMaW1pdERhdGUgPSBuZXcgVXRjRGF0ZShkYXRlLnllYXIsIGRhdGUubW9udGgsIDEpO1xuICAgIHRoaXMuaW5ib3VuZExvd2VyTGltaXREYXRlLnNldERhdGUoZGF0ZS5kYXRlICsgdGhpcy5pbmJvdW5kTG93ZXJMaW1pdERhdGVPZmZzZXQpO1xuXG4gICAgdGhpcy5vdXRib3VuZFNlbGVjdGVkRGF0ZUNoYW5nZS5lbWl0KGRhdGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2VsZWN0ZWQgZGF0ZWZvciBpbmJvdW5kIGNhbGVuZGFyLlxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IGluYm91bmRTZWxlY3RlZERhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuaW5ib3VuZFNlbGVjdGVkRGF0ZVZhbHVlO1xuICB9XG4gIHNldCBpbmJvdW5kU2VsZWN0ZWREYXRlKGRhdGU6IFV0Y0RhdGUpIHtcbiAgICBpZiAoIWRhdGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pbmJvdW5kU2VsZWN0ZWREYXRlVmFsdWUgJiYgdGhpcy5kYXRlU2VydmljZS5pc1NhbWVEYXRlKHRoaXMuaW5ib3VuZFNlbGVjdGVkRGF0ZVZhbHVlLCBkYXRlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaW5ib3VuZFNlbGVjdGVkRGF0ZVZhbHVlID0gZGF0ZTtcbiAgICB0aGlzLmluYm91bmRTZWxlY3RlZERhdGVDaGFuZ2UuZW1pdChkYXRlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIGVuYWJsZSB0byBkaXNhYmxlIGJhY2tkcm9wLlxuICAgKi9cbiAgQElucHV0KCkgZGlzYWJsZUJhY2tkcm9wOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgdGhlIG91dGJvdW5kIHNlbGVjdGVkIHRpbWUgaW4gdGhlIHRpbWUgc2VsZWN0b3IuXG4gICAqL1xuICBASW5wdXQoKSBvdXRib3VuZFNlbGVjdGVkVGltZTogVXRjRGF0ZTtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIHRoZSBpbmJvdW5kIHNlbGVjdGVkIHRpbWUgaW4gdGhlIHRpbWUgc2VsZWN0b3IuXG4gICAqL1xuICBASW5wdXQoKSBpbmJvdW5kU2VsZWN0ZWRUaW1lOiBVdGNEYXRlO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFSSUEgbGFiZWwgZm9yIHRoZSBwcmV2aW91cyBtb250aCBidXR0b24gaW4gdGhlIGNhbGVuZGFyLlxuICAgKi9cbiAgQElucHV0KCkgYXJpYUxhYmVsUHJldmlvdXNNb250aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFSSUEgbGFiZWwgZm9yIHRoZSBuZXh0IG1vbnRoIGJ1dHRvbiBpbiB0aGUgY2FsZW5kYXIuXG4gICAqL1xuICBASW5wdXQoKSBhcmlhTGFiZWxOZXh0TW9udGg6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIGEgcmVsYXRpdmUgbnVtYmVyIHRvIGRlY2lkZSB3aGVuIHRoZSBpbmJvdW5kIGxvd2VyIGxpbWl0IGRhdGUgc2hvdWxkIGJlIGJhc2VkIG9uIHNlbGVjdGVkIG91dGJvdW5kIGRhdGUuXG4gICAqXG4gICAqIFRoZSBsb3dlciBsaW1pdCBkYXRlIGZvciBpbmJvdW5kIGlzIHNldCBieSBkZWZhdWx0IGVxdWFsIHRvIHRoZSBzZWxlY3RlZCBvdXRib3VuZCBkYXRlLlxuICAgKlxuICAgKiBJZiB0aGlzIG51bWJlciBpcyBwb3NpdGl2ZSwgdGhlIGluYm91bmQgbG93ZXIgbGltaXQgZGF0ZSB3aWxsIGFkZCB0aGUgbnVtYmVyIG9mIGRheXMgdG8gdGhlIHNlbGVjdGVkIG91dGJvdW5kIGRhdGUuXG4gICAqIElmIHRoaXMgbnVtYmVyIGlzIG5lZ2F0aXZlLCB0aGUgaW5ib3VuZCBsb3dlciBsaW1pdCBkYXRlIHdpbGwgc3VidHJhY3QgdGhlIG51bWJlciBvZiBkYXlzIHRvIHRoZSBzZWxlY3RlZCBvdXRib3VuZCBkYXRlLlxuICAgKi9cbiAgQElucHV0KCkgaW5ib3VuZExvd2VyTGltaXREYXRlT2Zmc2V0ID0gMDtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBPdXRib3VuZCBhbmQgaW5ib3VuZCBkYXRlcyBrZWVwIHRoZSBpbmxpbmUgZmxleC5cbiAgICovXG4gIEBJbnB1dCgpIGlubGluZUZsZXg6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBPdXRwdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFdoZW4gc2VsZWN0ZWQgZGF0ZWhhcyBiZWVuIGNoYW5nZWQgb24gdGhlIG91dGJvdW5kIGNhbGVuZGFyLlxuICAgKi9cbiAgQE91dHB1dCgpIG91dGJvdW5kU2VsZWN0ZWREYXRlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxVdGNEYXRlPigpO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgT3V0cHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBXaGVuIHNlbGVjdGVkIGRhdGVoYXMgYmVlbiBjaGFuZ2VkIG9uIHRoZSBpbmJvdW5kIGNhbGVuZGFyLlxuICAgKi9cbiAgQE91dHB1dCgpIGluYm91bmRTZWxlY3RlZERhdGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFV0Y0RhdGU+KCk7XG5cblxuICAvKipcbiAgICogQHByb3BlcnR5IE91dHB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogT3V0Ym91bmQgZGF0ZXBpY2tlciBpcyBvcGVuIG9yIGNsb3NlZC5cbiAgICovXG4gIEBPdXRwdXQoKSBvdXRib3VuZE9wZW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBPdXRwdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEluYm91bmQgZGF0ZXBpY2tlciBpcyBvcGVuIG9yIGNsb3NlZC5cbiAgICovXG4gIEBPdXRwdXQoKSBpbmJvdW5kT3BlbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAvKipcbiAgICogQHByb3BlcnR5IE91dHB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogT3V0Ym91bmQgY2FsZW5kYXIgY2hhbmdlcyBtb250aC5cbiAgICovXG4gIEBPdXRwdXQoKSBvdXRib3VuZE1vbnRoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxVdGNEYXRlPigpO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgT3V0cHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBJbmJvdW5kIGNhbGVuZGFyIGNoYW5nZXMgbW9udGguXG4gICAqL1xuICBAT3V0cHV0KCkgaW5ib3VuZE1vbnRoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxVdGNEYXRlPigpO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgT3V0cHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBXaGVuIGEgdXNlciBoYXMgYWN0aXZlbHkgY2hhbmdlZCB0aGUgZGF0ZS5cbiAgICovXG4gIEBPdXRwdXQoKSBmb2N1c09uTmV4dENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogQHByb3BlcnR5IE91dHB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogV2hlbiBhIHVzZXIgaGFzIHByZXNzZWQgc2hpZnQgKyB0YWIgdG8gZ28gdG8gcHJldmlvdXMgY29udHJvbC5cbiAgICovXG4gIEBPdXRwdXQoKSBmb2N1c09uUHJldmlvdXNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEtleWJvYXJkRXZlbnQgfCBNb3VzZUV2ZW50PigpO1xuXG4gIGdldCBpbmJvdW5kU2VsZWN0ZWRNb250aCgpOiBVdGNEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5pbmJvdW5kU2VsZWN0ZWRNb250aFZhbHVlO1xuICB9XG4gIHNldCBpbmJvdW5kU2VsZWN0ZWRNb250aChtb250aDogVXRjRGF0ZSkge1xuICAgIGlmICghbW9udGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kYXRlU2VydmljZS5pc1NhbWVNb250aChtb250aCwgdGhpcy5pbmJvdW5kU2VsZWN0ZWRNb250aFZhbHVlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5pbmJvdW5kU2VsZWN0ZWRNb250aFZhbHVlID0gbW9udGg7XG4gICAgICB0aGlzLmluYm91bmRNb250aENoYW5nZS5lbWl0KG1vbnRoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgb3V0Ym91bmRTZWxlY3RlZERhdGVWYWx1ZTogVXRjRGF0ZTtcbiAgcHJpdmF0ZSBpbmJvdW5kU2VsZWN0ZWREYXRlVmFsdWU6IFV0Y0RhdGU7XG4gIHByaXZhdGUgaW5ib3VuZFNlbGVjdGVkTW9udGhWYWx1ZTogVXRjRGF0ZTtcbiAgcHJpdmF0ZSBpbmJvdW5kT3BlblZhbHVlID0gZmFsc2U7XG4gIHByaXZhdGUgb3V0Ym91bmRPcGVuVmFsdWUgPSBmYWxzZTtcbiAgcHJpdmF0ZSBjb250YWluZXJXaWR0aCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKTtcbiAgcHJpdmF0ZSBpbmJvdW5kVmFsdWVDaGFuZ2VzU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgb3V0Ym91bmRWYWx1ZUNoYW5nZXNTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBpc0lubGluZUZsZXhPblZpZXc6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBkYXRlU2VydmljZTogRGF0ZUhlbHBlcixcbiAgICBwcml2YXRlIGRldmljZUhlbHBlcjogRGV2aWNlSGVscGVyKSB7XG4gICAgc3VwZXIoJ25hcy1kYXRlcGlja2VyLWNvbWJvLW5ldycpO1xuXG4gICAgd2luZG93Lm9ucmVzaXplID0gKCkgPT4ge1xuICAgICAgdGhpcy51cGRhdGVDb250YWluZXJXaWR0aCgpO1xuICAgIH07XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5uYXNGb3JtR3JvdXApIHtcbiAgICAgIGlmICh0aGlzLm5hc0Zvcm1Db250cm9sTmFtZU91dGJvdW5kKSB7XG4gICAgICAgIHRoaXMub3V0Ym91bmRWYWx1ZUNoYW5nZXNTdWJzY3JpcHRpb24gPSB0aGlzLm5hc0Zvcm1Hcm91cC5nZXQodGhpcy5uYXNGb3JtQ29udHJvbE5hbWVPdXRib3VuZClcbiAgICAgICAgICAudmFsdWVDaGFuZ2VzXG4gICAgICAgICAgLnN1YnNjcmliZShvdXRib3VuZCA9PiB7XG4gICAgICAgICAgICB0aGlzLm91dGJvdW5kU2VsZWN0ZWREYXRlID0gb3V0Ym91bmQ/LmRhdGU7XG4gICAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5uYXNGb3JtQ29udHJvbE5hbWVJbmJvdW5kKSB7XG4gICAgICAgIHRoaXMuaW5ib3VuZFZhbHVlQ2hhbmdlc1N1YnNjcmlwdGlvbiA9IHRoaXMubmFzRm9ybUdyb3VwLmdldCh0aGlzLm5hc0Zvcm1Db250cm9sTmFtZUluYm91bmQpXG4gICAgICAgICAgLnZhbHVlQ2hhbmdlc1xuICAgICAgICAgIC5zdWJzY3JpYmUoaW5ib3VuZCA9PiB7XG4gICAgICAgICAgICB0aGlzLmluYm91bmRTZWxlY3RlZERhdGUgPSBpbmJvdW5kPy5kYXRlO1xuICAgICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZUNvbnRhaW5lcldpZHRoKCk7XG4gICAgdGhpcy5zZXRJbmxpbmVGbGV4T25Db250YWludGVyV2lkdGgoKTtcbiAgfVxuXG4gIG9uRm9jdXNPbk5leHQoZXZlbnQ6IEtleWJvYXJkRXZlbnQgfCBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5mb2N1c09uTmV4dENoYW5nZS5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIG9uRm9jdXNPblByZXZpb3VzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5mb2N1c09uUHJldmlvdXNDaGFuZ2UuZW1pdChldmVudCk7XG4gIH1cblxuICBvbkluYm91bmRGb2N1c09uUHJldmlvdXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudGltZXMgJiYgdGhpcy50aW1lcy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBzZWxlY3RFbGVtZW50ID0gdGhpcy5kYXRlcGlja2VyT3V0Ym91bmQudGltZVNlbGVjdG9yPy5zZWxlY3Q/Lm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBzZWxlY3RFbGVtZW50Py5mb2N1cygpO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuaW5ib3VuZE9wZW5DaGFuZ2UuZW1pdChmYWxzZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3V0Ym91bmRPcGVuID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBvbk91dGJvdW5kTW9udGhDaGFuZ2UoZGF0ZTogVXRjRGF0ZSk6IHZvaWQge1xuICAgIHRoaXMub3V0Ym91bmRNb250aENoYW5nZS5lbWl0KGRhdGUpO1xuICAgIHRoaXMuaW5ib3VuZFNlbGVjdGVkTW9udGhWYWx1ZSA9IGRhdGU7XG4gIH1cblxuICBnZXRNYWluQ2xhc3MoKTogQXJyYXk8Q2xhc3NNb2RlbD4ge1xuICAgIGNvbnN0IHdpZHRocyA9IFtcbiAgICAgIHRoaXMuZGV2aWNlSGVscGVyLmlzV2lkdGhUYWJsZXQodGhpcy5jb250YWluZXJXaWR0aC5nZXRWYWx1ZSgpKSAmJiAnbWQnLFxuICAgICAgdGhpcy5kZXZpY2VIZWxwZXIuaXNXaWR0aERlc2t0b3AodGhpcy5jb250YWluZXJXaWR0aC5nZXRWYWx1ZSgpKSAmJiAnbGcnXG4gICAgXS5maWx0ZXIoQm9vbGVhbik7XG5cbiAgICBjb25zdCBjbGFzc2VzID0gWy4uLndpZHRoc107XG5cbiAgICBpZiAodGhpcy5leGlzdHModGhpcy5jb21wYWN0KSkge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdjb21wYWN0Jyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZXhpc3RzKHRoaXMuaW5saW5lRmxleCkgfHwgdGhpcy5pc0lubGluZUZsZXhPblZpZXcpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnaW5saW5lLWZsZXgnKTtcblxuICAgICAgaWYodGhpcy5kYXRlUGlja2VyRmxvYXRpbmcoKSkge1xuICAgICAgICBjbGFzc2VzLnB1c2goJ2lubGluZS1mbGV4LWRhdGVwaWNrZXItZmxvYXQnKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5nZXRDb250YWluZXJDbGFzcygnJywgY2xhc3Nlcyk7XG4gIH1cblxuICBjaGVja091dGJvdW5kT25seSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISh0aGlzLmRldmljZUhlbHBlci5pc01vYmlsZVdpZHRoKCkgJiYgdGhpcy5leGlzdHModGhpcy5vdXRib3VuZE9ubHkpKTtcbiAgfVxuXG4gIGNoZWNrSW5ib3VuZERpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoIXRoaXMuZGV2aWNlSGVscGVyLmlzTW9iaWxlV2lkdGgoKSAmJiB0aGlzLmV4aXN0cyh0aGlzLm91dGJvdW5kT25seSkpXG4gICAgICB8fCB0aGlzLmV4aXN0cyh0aGlzLmluYm91bmREaXNhYmxlZCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmluYm91bmRWYWx1ZUNoYW5nZXNTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5vdXRib3VuZFZhbHVlQ2hhbmdlc1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQ29udGFpbmVyV2lkdGgoKTogdm9pZCB7XG4gICAgY29uc3QgY29udGFpbmVyT2Zmc2V0V2lkdGggPSAodGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkub2Zmc2V0V2lkdGg7XG4gICAgaWYgKGNvbnRhaW5lck9mZnNldFdpZHRoID4gMCkge1xuICAgICAgdGhpcy5jb250YWluZXJXaWR0aC5uZXh0KGNvbnRhaW5lck9mZnNldFdpZHRoKTtcbiAgICB9XG4gIH1cblxuICAgc2V0SW5saW5lRmxleE9uQ29udGFpbnRlcldpZHRoKCk6IHZvaWQge1xuICAgIGlmKHRoaXMuZXhpc3RzKHRoaXMuaW5saW5lRmxleCkpIHtcbiAgICAgIHRoaXMuaXNJbmxpbmVGbGV4T25WaWV3ID0gZmFsc2U7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYoIXRoaXMuY29udGFpbmVyICYmICF0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaXNJbmxpbmVGbGV4T25WaWV3ID0gdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCA+IDcwMDtcbiAgfVxuXG5cbiAgZGF0ZVBpY2tlckZsb2F0aW5nKCk6IGJvb2xlYW4ge1xuICAgIGlmKCF0aGlzLmNvbnRhaW5lciAmJiAhdGhpcy5jb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggPD0gNjY1O1xuICB9XG5cbn1cbiIsIjxkaXYgW25hc0NsYXNzXT1cImdldE1haW5DbGFzcygpXCIgI2NvbnRhaW5lcj5cbiAgPGRpdiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2RhdGUtcGlja2VyJylcIj5cbiAgICA8bmFzLWRhdGVwaWNrZXItbmV3ICNkYXRlcGlja2VyT3V0Ym91bmRcbiAgICAgIGNvbXBhY3RcbiAgICAgIFtkaXNhYmxlQmFja2Ryb3BdPVwiZGlzYWJsZUJhY2tkcm9wXCJcbiAgICAgIFtuYXNGb3JtR3JvdXBdPVwibmFzRm9ybUdyb3VwXCJcbiAgICAgIFtuYXNGb3JtQ29udHJvbE5hbWVdPVwibmFzRm9ybUNvbnRyb2xOYW1lT3V0Ym91bmRcIlxuICAgICAgW25vQXZhaWxhYmxlRmxpZ2h0c0xhYmVsXT1cIm5vQXZhaWxhYmxlRmxpZ2h0c0xhYmVsXCJcbiAgICAgIFthdmFpbGFibGVGbGlnaHRzTGFiZWxdPVwiYXZhaWxhYmxlRmxpZ2h0c0xhYmVsXCJcbiAgICAgIFtkaXNhYmxlUGFzdFNlbGVjdGlvbl09XCJleGlzdHMoZGlzYWJsZVBhc3RTZWxlY3Rpb24pXCJcbiAgICAgIFthdmFpbGFiaWxpdHldPVwiZXhpc3RzKGF2YWlsYWJpbGl0eSlcIlxuICAgICAgW2F2YWlsYWJsZURhdGVzXT1cIm91dGJvdW5kQXZhaWxhYmxlRGF0ZXNcIlxuICAgICAgW3RpbWVzXT1cInRpbWVzXCJcbiAgICAgIFt0aW1lcGlja2VyTGFiZWxdPVwidGltZXBpY2tlckxhYmVsXCJcbiAgICAgIFtzZWxlY3RlZFRpbWVdPVwib3V0Ym91bmRTZWxlY3RlZFRpbWVcIlxuICAgICAgW2RhdGVEaXNwbGF5Rm9ybWF0XT1cImRhdGVEaXNwbGF5Rm9ybWF0XCJcbiAgICAgIFt0aW1lRGlzcGxheUZvcm1hdF09XCJ0aW1lRGlzcGxheUZvcm1hdFwiXG4gICAgICBbbG9jYWxlXT1cImxvY2FsZVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZXhpc3RzKG91dGJvdW5kRGlzYWJsZWQpXCJcbiAgICAgIFthcmlhTGFiZWxCYWNrZHJvcF09XCJhcmlhTGFiZWxCYWNrZHJvcFwiXG4gICAgICBbYXJpYUxhYmVsUHJldmlvdXNNb250aF09XCJhcmlhTGFiZWxQcmV2aW91c01vbnRoXCJcbiAgICAgIFthcmlhTGFiZWxOZXh0TW9udGhdPVwiYXJpYUxhYmVsTmV4dE1vbnRoXCJcbiAgICAgIChmb2N1c09uTmV4dENoYW5nZSk9XCJpbmJvdW5kT3BlbiA9IHRydWVcIlxuICAgICAgKGZvY3VzT25QcmV2aW91c0NoYW5nZSk9XCJvbkZvY3VzT25QcmV2aW91cygkZXZlbnQpXCJcbiAgICAgIChzZWxlY3RlZE1vbnRoQ2hhbmdlKT1cIm9uT3V0Ym91bmRNb250aENoYW5nZSgkZXZlbnQpXCJcbiAgICAgIFsob3BlbildPVwib3V0Ym91bmRPcGVuXCJcbiAgICAgIFsoc2VsZWN0ZWREYXRlKV09XCJvdXRib3VuZFNlbGVjdGVkRGF0ZVwiPnt7b3V0Ym91bmRMYWJlbH19PC9uYXMtZGF0ZXBpY2tlci1uZXc+XG4gIDwvZGl2PlxuICA8c3BhbiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ3NlcGFyYXRvcicpXCI+PC9zcGFuPlxuICA8ZGl2ICpuZ0lmPVwiY2hlY2tPdXRib3VuZE9ubHkoKVwiXG4gICAgW25hc0NsYXNzXT1cImdldENsYXNzKCdkYXRlLXBpY2tlcicsIGNoZWNrSW5ib3VuZERpc2FibGVkKCkgJiYgJ2hpZGUnKVwiPlxuICAgIDxuYXMtZGF0ZXBpY2tlci1uZXcgI2RhdGVwaWNrZXJJbmJvdW5kXG4gICAgICBjb21wYWN0XG4gICAgICBbZGlzYWJsZUJhY2tkcm9wXT1cImRpc2FibGVCYWNrZHJvcFwiXG4gICAgICBbbmFzRm9ybUdyb3VwXT1cIm5hc0Zvcm1Hcm91cFwiXG4gICAgICBbbmFzRm9ybUNvbnRyb2xOYW1lXT1cIm5hc0Zvcm1Db250cm9sTmFtZUluYm91bmRcIlxuICAgICAgW2Rpc2FibGVkXT1cImNoZWNrSW5ib3VuZERpc2FibGVkKClcIlxuICAgICAgW25vQXZhaWxhYmxlRmxpZ2h0c0xhYmVsXT1cIm5vQXZhaWxhYmxlRmxpZ2h0c0xhYmVsXCJcbiAgICAgIFthdmFpbGFibGVGbGlnaHRzTGFiZWxdPVwiYXZhaWxhYmxlRmxpZ2h0c0xhYmVsXCJcbiAgICAgIFtkaXNhYmxlUGFzdFNlbGVjdGlvbl09XCJleGlzdHMoZGlzYWJsZVBhc3RTZWxlY3Rpb24pXCJcbiAgICAgIFthdmFpbGFiaWxpdHldPVwiZXhpc3RzKGF2YWlsYWJpbGl0eSlcIlxuICAgICAgW2F2YWlsYWJsZURhdGVzXT1cImluYm91bmRBdmFpbGFibGVEYXRlc1wiXG4gICAgICBbbG93ZXJMaW1pdERhdGVdPVwiaW5ib3VuZExvd2VyTGltaXREYXRlXCJcbiAgICAgIFt0aW1lc109XCJ0aW1lc1wiXG4gICAgICBbdGltZXBpY2tlckxhYmVsXT1cInRpbWVwaWNrZXJMYWJlbFwiXG4gICAgICBbc2VsZWN0ZWRUaW1lXT1cImluYm91bmRTZWxlY3RlZFRpbWVcIlxuICAgICAgW2RhdGVEaXNwbGF5Rm9ybWF0XT1cImRhdGVEaXNwbGF5Rm9ybWF0XCJcbiAgICAgIFt0aW1lRGlzcGxheUZvcm1hdF09XCJ0aW1lRGlzcGxheUZvcm1hdFwiXG4gICAgICBbbG9jYWxlXT1cImxvY2FsZVwiXG4gICAgICBbYXJpYUxhYmVsQmFja2Ryb3BdPVwiYXJpYUxhYmVsQmFja2Ryb3BcIlxuICAgICAgW2FyaWFMYWJlbFByZXZpb3VzTW9udGhdPVwiYXJpYUxhYmVsUHJldmlvdXNNb250aFwiXG4gICAgICBbYXJpYUxhYmVsTmV4dE1vbnRoXT1cImFyaWFMYWJlbE5leHRNb250aFwiXG4gICAgICAoZm9jdXNPbk5leHRDaGFuZ2UpPVwib25Gb2N1c09uTmV4dCgkZXZlbnQpXCJcbiAgICAgIChmb2N1c09uUHJldmlvdXNDaGFuZ2UpPVwib25JbmJvdW5kRm9jdXNPblByZXZpb3VzKClcIlxuICAgICAgWyhvcGVuKV09XCJpbmJvdW5kT3BlblwiXG4gICAgICBbKHNlbGVjdGVkTW9udGgpXT1cImluYm91bmRTZWxlY3RlZE1vbnRoXCJcbiAgICAgIFsoc2VsZWN0ZWREYXRlKV09XCJpbmJvdW5kU2VsZWN0ZWREYXRlXCI+e3tpbmJvdW5kTGFiZWx9fTwvbmFzLWRhdGVwaWNrZXItbmV3PlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==
|
|
397
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci1jb21iby1uZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9kYXRlcGlja2VyLWNvbWJvLW5ldy9kYXRlcGlja2VyLWNvbWJvLW5ldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2RhdGVwaWNrZXItY29tYm8tbmV3L2RhdGVwaWNrZXItY29tYm8tbmV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUVILE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04saUJBQWlCLEVBQ2pCLFNBQVMsRUFLVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUV0RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFHM0QsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7QUFHckQ7OztHQUdHO0FBT0gsTUFBTSxPQUFPLDJCQUE0QixTQUFRLGdCQUFnQjtJQWMvRDs7OztPQUlHO0lBQ0gsSUFDSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDaEMsQ0FBQztJQUNELElBQUksWUFBWSxDQUFDLEtBQWM7UUFDN0IsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUM3RCxPQUFPO1NBQ1I7UUFFRCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztZQUMvQixJQUFJLENBQUMsa0JBQWtCLENB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QXNCO3NCQUE5QixLQUFLO2dCQU9HLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFPRyxLQUFLO3NCQUFiLEtBQUs7Z0JBUUcsaUJBQWlCO3NCQUF6QixLQUFLO2dCQU9HLGlCQUFpQjtzQkFBekIsS0FBSztnQkFRRyxNQUFNO3NCQUFkLEtBQUs7Z0JBT0csT0FBTztzQkFBZixLQUFLO2dCQVNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBU0csMEJBQTBCO3NCQUFsQyxLQUFLO2dCQVNHLHlCQUF5QjtzQkFBakMsS0FBSztnQkFRRixvQkFBb0I7c0JBRHZCLEtBQUs7Z0JBMkJGLG1CQUFtQjtzQkFEdEIsS0FBSztnQkFzQkcsZUFBZTtzQkFBdkIsS0FBSztnQkFPRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBT0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQU9HLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFPRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBWUcsMkJBQTJCO3NCQUFuQyxLQUFLO2dCQU9HLFVBQVU7c0JBQWxCLEtBQUs7Z0JBT0ksMEJBQTBCO3NCQUFuQyxNQUFNO2dCQU9HLHlCQUF5QjtzQkFBbEMsTUFBTTtnQkFRRyxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBT0csaUJBQWlCO3NCQUExQixNQUFNO2dCQU9HLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFPRyxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBT0csaUJBQWlCO3NCQUExQixNQUFNO2dCQU9HLHFCQUFxQjtzQkFBOUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBOb3J3ZWdpYW4gQWlyIFNodXR0bGUuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKi9cblxuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBWaWV3Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIEFmdGVyVmlld0NoZWNrZWQsXG4gIE9uSW5pdCxcbiAgT25EZXN0cm95XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTmFzQ29tcG9uZW50QmFzZSB9IGZyb20gJy4uLy4uL2NvcmUvYmFzZS9uYXMtY29tcG9uZW50LmJhc2UnO1xuaW1wb3J0IHsgQ2xhc3NNb2RlbCB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWxzL2NsYXNzLm1vZGVsJztcbmltcG9ydCB7IFV0Y0RhdGUgfSBmcm9tICcuLi8uLi9jb3JlL21vZGVscy91dGMtZGF0ZS5tb2RlbCc7XG5pbXBvcnQgeyBEYXRlSGVscGVyIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9kYXRlL2RhdGUtaGVscGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGV2aWNlSGVscGVyIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9kZXZpY2UvZGV2aWNlLWhlbHBlci5zZXJ2aWNlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEYXRlcGlja2VyTmV3Q29tcG9uZW50IH0gZnJvbSAnLi4vZGF0ZXBpY2tlci1uZXcnO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICogTm9yd2VnaWFuIERhdGVwaWNrZXIgQ29tYm8gQ29tcG9uZW50IHwgTmV3IGRlc2lnbiB8IEJldGFcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmFzLWRhdGVwaWNrZXItY29tYm8tbmV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGVwaWNrZXItY29tYm8tbmV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0ZXBpY2tlci1jb21iby1uZXcuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uRW11bGF0ZWRcbn0pXG5leHBvcnQgY2xhc3MgRGF0ZXBpY2tlckNvbWJvTmV3Q29tcG9uZW50IGV4dGVuZHMgTmFzQ29tcG9uZW50QmFzZSBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3Q2hlY2tlZCwgT25EZXN0cm95IHtcbiAgaW5ib3VuZExvd2VyTGltaXREYXRlOiBVdGNEYXRlO1xuXG4gIEBWaWV3Q2hpbGQoJ2RhdGVwaWNrZXJPdXRib3VuZCcpIGRhdGVwaWNrZXJPdXRib3VuZDogRGF0ZXBpY2tlck5ld0NvbXBvbmVudDtcbiAgQFZpZXdDaGlsZCgnZGF0ZXBpY2tlckluYm91bmQnKSBkYXRlcGlja2VySW5ib3VuZDogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnY29udGFpbmVyJykgY29udGFpbmVyOiBFbGVtZW50UmVmO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFkZHMgJ2FyaWEtbGFiZWwnIHRvIHRoZSBiYWNrZHJvcHMuXG4gICAqL1xuICBASW5wdXQoKSBhcmlhTGFiZWxCYWNrZHJvcDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgb3V0Ym91bmQgZGF0ZXBpY2tlciBvcGVuLlxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IG91dGJvdW5kT3BlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5vdXRib3VuZE9wZW5WYWx1ZTtcbiAgfVxuICBzZXQgb3V0Ym91bmRPcGVuKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKHRoaXMub3V0Ym91bmREaXNhYmxlZCB8fCB2YWx1ZSA9PT0gdGhpcy5vdXRib3VuZE9wZW5WYWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5vdXRib3VuZE9wZW5WYWx1ZSA9IHZhbHVlO1xuICAgICAgdGhpcy5vdXRib3VuZE9wZW5DaGFuZ2UuZW1pdCh2YWx1ZSk7XG5cbiAgICAgIGlmICh2YWx1ZSAmJiB0aGlzLmluYm91bmRPcGVuKSB7XG4gICAgICAgIHRoaXMuaW5ib3VuZE9wZW4gPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgaW5ib3VuZCBkYXRlcGlja2VyIG9wZW4uXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgaW5ib3VuZE9wZW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaW5ib3VuZE9wZW5WYWx1ZTtcbiAgfVxuICBzZXQgaW5ib3VuZE9wZW4odmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodGhpcy5pbmJvdW5kRGlzYWJsZWQgfHwgdmFsdWUgPT09IHRoaXMuaW5ib3VuZE9wZW5WYWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm91dGJvdW5kT25seSkge1xuICAgICAgdGhpcy5mb2N1c09uTmV4dENoYW5nZS5lbWl0KCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmluYm91bmRPcGVuVmFsdWUgPSB2YWx1ZTtcbiAgICAgIHRoaXMuaW5ib3VuZE9wZW5DaGFuZ2UuZW1pdCh2YWx1ZSk7XG5cbiAgICAgIGlmICh2YWx1ZSAmJiB0aGlzLm91dGJvdW5kT3Blbikge1xuICAgICAgICB0aGlzLm91dGJvdW5kT3BlbiA9IGZhbHNlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogTGFiZWwgZm9yIG5vIGF2YWlsYWJsZSBmbGlnaHRzLlxuICAgKi9cbiAgQElucHV0KCkgbm9BdmFpbGFibGVGbGlnaHRzTGFiZWw6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBMYWJlbCBmb3IgYXZhaWxhYmxlIGZsaWdodHMuXG4gICAqL1xuICBASW5wdXQoKSBhdmFpbGFibGVGbGlnaHRzTGFiZWw6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBEaXNhYmxlIHBvc3NpYmlsaXR5IHRvIHNlbGVjdCBkYXRlcyBpbiB0aGUgcGFzdC5cbiAgICovXG4gIEBJbnB1dCgpIGRpc2FibGVQYXN0U2VsZWN0aW9uOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIERpc2FibGUgcG9zc2liaWxpdHkgdG8gc2VsZWN0IG91dGJvdW5kIGRhdGVzLlxuICAgKi9cbiAgQElucHV0KCkgb3V0Ym91bmREaXNhYmxlZDogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBEaXNhYmxlIHBvc3NpYmlsaXR5IHRvIHNlbGVjdCBpbmJvdW5kIGRhdGVzLlxuICAgKi9cbiAgQElucHV0KCkgaW5ib3VuZERpc2FibGVkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFJlbW92ZSB0aGUgaW5ib3VuZCBkYXRlcGlja2VyIGlmIHNldC5cbiAgICovXG4gIEBJbnB1dCgpIG91dGJvdW5kT25seTogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBMYWJlbCBmb3Igb3V0Ym91bmQgZGF0ZXBpY2tlci5cbiAgICovXG4gIEBJbnB1dCgpIG91dGJvdW5kTGFiZWw6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBMYWJlbCBmb3IgaW5ib3VuZCBkYXRlcGlja2VyLlxuICAgKi9cbiAgQElucHV0KCkgaW5ib3VuZExhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogTGFiZWwgZm9yIHRpbWVwaWNrZXIuXG4gICAqL1xuICBASW5wdXQoKSB0aW1lcGlja2VyTGFiZWw6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIHRoZSBkYXRlcGlja2VycyBpbiBhdmFpbGFiaWxpdHkgbW9kZSB3aGVyZSBhdmFpbGFibGUgZGF0ZXMgY2FuIGJlIGFkZGVkLlxuICAgKi9cbiAgQElucHV0KCkgYXZhaWxhYmlsaXR5OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEF2YWlsYWJsZSBkYXRlcyBmb3Igb3V0Ym91bmQgY2FsZW5kYXIuXG4gICAqL1xuICBASW5wdXQoKSBvdXRib3VuZEF2YWlsYWJsZURhdGVzOiBBcnJheTxVdGNEYXRlPjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBdmFpbGFibGUgZGF0ZXMgZm9yIGluYm91bmQgY2FsZW5kYXIuXG4gICAqL1xuICBASW5wdXQoKSBpbmJvdW5kQXZhaWxhYmxlRGF0ZXM6IEFycmF5PFV0Y0RhdGU+O1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIElmIHNldCwgRW5hYmxlcyB0aGUgdGltZSBkcm9wZG93biBzZWxlY3RvciBhbG9uZ3NpZGUgZGF0ZXBpY2tlci5cbiAgICovXG4gIEBJbnB1dCgpIHRpbWVzOiBBcnJheTxVdGNEYXRlPjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGUgZGlzcGxheSBmb3JtYXQgb2YgdGhlIGRhdGUgd2hlbiB1c2VyIGhhcyBzZWxlY3RlZCB0aGUgZGF0ZSBhbmQgaXQgaXMgYmVpbmcgc2hvd24gaW4gdGhlIGlucHV0IGJveCBmb3IgdGhlIGRhdGUgcGlja2VyLlxuICAgKiBQbGVhc2UgbG9vayBhdCB0aGUgYW5ndWxhciBEYXRlIHBpcGUgZm9yIHZhbGlkIGZvcm1hdHMgYW5kIHZhcmlhdGlvbnMuXG4gICAqL1xuICBASW5wdXQoKSBkYXRlRGlzcGxheUZvcm1hdCA9ICdFRUVFIGQsIE1NTU0geXl5eSc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVGhlIHRpbWUgZGlzcGxheSBmb3JtYXQuXG4gICAqL1xuICBASW5wdXQoKSB0aW1lRGlzcGxheUZvcm1hdCA9ICdISDptbSc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSBsb2NhbGUgY29kZSBmb3IgdGhlIGxvY2FsZSBmb3JtYXQgcnVsZXMgdG8gdXNlLiBXaGVuIG5vdCBzdXBwbGllZCwgdXNlcyB0aGUgdmFsdWUgb2YgTE9DQUxFX0lELCB3aGljaCBpcyBlbi1VUyBieSBkZWZhdWx0LlxuICAgKiBUaGlzIHJlcXVpcmVzIHRoYXQgcmVnaXN0ZXJMb2NhbGVEYXRhIGlzIGNhbGxlZCB3aXRoIHRoZSByZXNwZWN0aXZlIGxvY2FsZS5cbiAgICovXG4gIEBJbnB1dCgpIGxvY2FsZSA9ICdlbi1VUyc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSBtb2RpZmllciB0byByZW1vdmUgdGhlIHBhZGRpbmcgYW5kIG1hcmdpbnMgYXJvdW5kIHRoZSBlbGVtZW50LlxuICAgKi9cbiAgQElucHV0KCkgY29tcGFjdDogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBZGRzIHRoZSBwYXJlbnQncyBmb3JtIGdyb3VwLlxuICAgKiBJdCByZXF1aXJlcyB0aGF0IHRoZSBjb25zdW1lciBpbmNsdWRlZCBSZWFjdGl2ZUZvcm1zTW9kdWxlIGluIGl0J3MgbW9kdWxlLlxuICAgKiBJdCBpcyByZXF1aWVyZWQgdG8gYmUgZmlsbGVkIGlmIG5hc0Zvcm1Db250cm9sTmFtZSBhZGRlZC5cbiAgICovXG4gIEBJbnB1dCgpIG5hc0Zvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgYSBmb3JtQ29udHJvbE5hbWUgZGlyZWN0aXZlIHRvIHRoZSBpbnB1dC5cbiAgICogSXQgcmVxdWlyZXMgdGhhdCB0aGUgY29uc3VtZXIgaW5jbHVkZWQgUmVhY3RpdmVGb3Jtc01vZHVsZSBpbiBpdCdzIG1vZHVsZS5cbiAgICogSXQgcmVxdWllcnMgdGhhdCB0aGUgbmFzRm9ybUdyb3VwIGlucHV0IGlzIGZpbGxlZC5cbiAgICovXG4gIEBJbnB1dCgpIG5hc0Zvcm1Db250cm9sTmFtZU91dGJvdW5kOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2V0cyBhIGZvcm1Db250cm9sTmFtZSBkaXJlY3RpdmUgdG8gdGhlIGlucHV0LlxuICAgKiBJdCByZXF1aXJlcyB0aGF0IHRoZSBjb25zdW1lciBpbmNsdWRlZCBSZWFjdGl2ZUZvcm1zTW9kdWxlIGluIGl0J3MgbW9kdWxlLlxuICAgKiBJdCByZXF1aWVycyB0aGF0IHRoZSBuYXNGb3JtR3JvdXAgaW5wdXQgaXMgZmlsbGVkLlxuICAgKi9cbiAgQElucHV0KCkgbmFzRm9ybUNvbnRyb2xOYW1lSW5ib3VuZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNlbGVjdGVkIGRhdGVmb3Igb3V0Ym91bmQgY2FsZW5kYXIuXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgb3V0Ym91bmRTZWxlY3RlZERhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMub3V0Ym91bmRTZWxlY3RlZERhdGVWYWx1ZTtcbiAgfVxuICBzZXQgb3V0Ym91bmRTZWxlY3RlZERhdGUoZGF0ZTogVXRjRGF0ZSkge1xuICAgIGlmICghZGF0ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm91dGJvdW5kU2VsZWN0ZWREYXRlVmFsdWUgJiYgdGhpcy5kYXRlU2VydmljZS5pc1NhbWVEYXRlKHRoaXMub3V0Ym91bmRTZWxlY3RlZERhdGVWYWx1ZSwgZGF0ZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLm91dGJvdW5kU2VsZWN0ZWREYXRlVmFsdWUgPSBkYXRlO1xuXG4gICAgdGhpcy5pbmJvdW5kTG93ZXJMaW1pdERhdGUgPSBuZXcgVXRjRGF0ZShkYXRlLnllYXIsIGRhdGUubW9udGgsIDEpO1xuICAgIHRoaXMuaW5ib3VuZExvd2VyTGltaXREYXRlLnNldERhdGUoZGF0ZS5kYXRlICsgdGhpcy5pbmJvdW5kTG93ZXJMaW1pdERhdGVPZmZzZXQpO1xuXG4gICAgdGhpcy5vdXRib3VuZFNlbGVjdGVkRGF0ZUNoYW5nZS5lbWl0KGRhdGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2VsZWN0ZWQgZGF0ZWZvciBpbmJvdW5kIGNhbGVuZGFyLlxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IGluYm91bmRTZWxlY3RlZERhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuaW5ib3VuZFNlbGVjdGVkRGF0ZVZhbHVlO1xuICB9XG4gIHNldCBpbmJvdW5kU2VsZWN0ZWREYXRlKGRhdGU6IFV0Y0RhdGUpIHtcbiAgICBpZiAoIWRhdGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pbmJvdW5kU2VsZWN0ZWREYXRlVmFsdWUgJiYgdGhpcy5kYXRlU2VydmljZS5pc1NhbWVEYXRlKHRoaXMuaW5ib3VuZFNlbGVjdGVkRGF0ZVZhbHVlLCBkYXRlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaW5ib3VuZFNlbGVjdGVkRGF0ZVZhbHVlID0gZGF0ZTtcbiAgICB0aGlzLmluYm91bmRTZWxlY3RlZERhdGVDaGFuZ2UuZW1pdChkYXRlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIGVuYWJsZSB0byBkaXNhYmxlIGJhY2tkcm9wLlxuICAgKi9cbiAgQElucHV0KCkgZGlzYWJsZUJhY2tkcm9wOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgdGhlIG91dGJvdW5kIHNlbGVjdGVkIHRpbWUgaW4gdGhlIHRpbWUgc2VsZWN0b3IuXG4gICAqL1xuICBASW5wdXQoKSBvdXRib3VuZFNlbGVjdGVkVGltZTogVXRjRGF0ZTtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIHRoZSBpbmJvdW5kIHNlbGVjdGVkIHRpbWUgaW4gdGhlIHRpbWUgc2VsZWN0b3IuXG4gICAqL1xuICBASW5wdXQoKSBpbmJvdW5kU2VsZWN0ZWRUaW1lOiBVdGNEYXRlO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFSSUEgbGFiZWwgZm9yIHRoZSBwcmV2aW91cyBtb250aCBidXR0b24gaW4gdGhlIGNhbGVuZGFyLlxuICAgKi9cbiAgQElucHV0KCkgYXJpYUxhYmVsUHJldmlvdXNNb250aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFSSUEgbGFiZWwgZm9yIHRoZSBuZXh0IG1vbnRoIGJ1dHRvbiBpbiB0aGUgY2FsZW5kYXIuXG4gICAqL1xuICBASW5wdXQoKSBhcmlhTGFiZWxOZXh0TW9udGg6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIGEgcmVsYXRpdmUgbnVtYmVyIHRvIGRlY2lkZSB3aGVuIHRoZSBpbmJvdW5kIGxvd2VyIGxpbWl0IGRhdGUgc2hvdWxkIGJlIGJhc2VkIG9uIHNlbGVjdGVkIG91dGJvdW5kIGRhdGUuXG4gICAqXG4gICAqIFRoZSBsb3dlciBsaW1pdCBkYXRlIGZvciBpbmJvdW5kIGlzIHNldCBieSBkZWZhdWx0IGVxdWFsIHRvIHRoZSBzZWxlY3RlZCBvdXRib3VuZCBkYXRlLlxuICAgKlxuICAgKiBJZiB0aGlzIG51bWJlciBpcyBwb3NpdGl2ZSwgdGhlIGluYm91bmQgbG93ZXIgbGltaXQgZGF0ZSB3aWxsIGFkZCB0aGUgbnVtYmVyIG9mIGRheXMgdG8gdGhlIHNlbGVjdGVkIG91dGJvdW5kIGRhdGUuXG4gICAqIElmIHRoaXMgbnVtYmVyIGlzIG5lZ2F0aXZlLCB0aGUgaW5ib3VuZCBsb3dlciBsaW1pdCBkYXRlIHdpbGwgc3VidHJhY3QgdGhlIG51bWJlciBvZiBkYXlzIHRvIHRoZSBzZWxlY3RlZCBvdXRib3VuZCBkYXRlLlxuICAgKi9cbiAgQElucHV0KCkgaW5ib3VuZExvd2VyTGltaXREYXRlT2Zmc2V0ID0gMDtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBPdXRib3VuZCBhbmQgaW5ib3VuZCBkYXRlcyBrZWVwIHRoZSBpbmxpbmUgZmxleC5cbiAgICovXG4gIEBJbnB1dCgpIGlubGluZUZsZXg6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBPdXRwdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFdoZW4gc2VsZWN0ZWQgZGF0ZWhhcyBiZWVuIGNoYW5nZWQgb24gdGhlIG91dGJvdW5kIGNhbGVuZGFyLlxuICAgKi9cbiAgQE91dHB1dCgpIG91dGJvdW5kU2VsZWN0ZWREYXRlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxVdGNEYXRlPigpO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgT3V0cHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBXaGVuIHNlbGVjdGVkIGRhdGVoYXMgYmVlbiBjaGFuZ2VkIG9uIHRoZSBpbmJvdW5kIGNhbGVuZGFyLlxuICAgKi9cbiAgQE91dHB1dCgpIGluYm91bmRTZWxlY3RlZERhdGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFV0Y0RhdGU+KCk7XG5cblxuICAvKipcbiAgICogQHByb3BlcnR5IE91dHB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogT3V0Ym91bmQgZGF0ZXBpY2tlciBpcyBvcGVuIG9yIGNsb3NlZC5cbiAgICovXG4gIEBPdXRwdXQoKSBvdXRib3VuZE9wZW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBPdXRwdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEluYm91bmQgZGF0ZXBpY2tlciBpcyBvcGVuIG9yIGNsb3NlZC5cbiAgICovXG4gIEBPdXRwdXQoKSBpbmJvdW5kT3BlbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAvKipcbiAgICogQHByb3BlcnR5IE91dHB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogT3V0Ym91bmQgY2FsZW5kYXIgY2hhbmdlcyBtb250aC5cbiAgICovXG4gIEBPdXRwdXQoKSBvdXRib3VuZE1vbnRoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxVdGNEYXRlPigpO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgT3V0cHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBJbmJvdW5kIGNhbGVuZGFyIGNoYW5nZXMgbW9udGguXG4gICAqL1xuICBAT3V0cHV0KCkgaW5ib3VuZE1vbnRoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxVdGNEYXRlPigpO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgT3V0cHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBXaGVuIGEgdXNlciBoYXMgYWN0aXZlbHkgY2hhbmdlZCB0aGUgZGF0ZS5cbiAgICovXG4gIEBPdXRwdXQoKSBmb2N1c09uTmV4dENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogQHByb3BlcnR5IE91dHB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogV2hlbiBhIHVzZXIgaGFzIHByZXNzZWQgc2hpZnQgKyB0YWIgdG8gZ28gdG8gcHJldmlvdXMgY29udHJvbC5cbiAgICovXG4gIEBPdXRwdXQoKSBmb2N1c09uUHJldmlvdXNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEtleWJvYXJkRXZlbnQgfCBNb3VzZUV2ZW50PigpO1xuXG4gIGdldCBpbmJvdW5kU2VsZWN0ZWRNb250aCgpOiBVdGNEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5pbmJvdW5kU2VsZWN0ZWRNb250aFZhbHVlO1xuICB9XG4gIHNldCBpbmJvdW5kU2VsZWN0ZWRNb250aChtb250aDogVXRjRGF0ZSkge1xuICAgIGlmICghbW9udGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kYXRlU2VydmljZS5pc1NhbWVNb250aChtb250aCwgdGhpcy5pbmJvdW5kU2VsZWN0ZWRNb250aFZhbHVlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5pbmJvdW5kU2VsZWN0ZWRNb250aFZhbHVlID0gbW9udGg7XG4gICAgICB0aGlzLmluYm91bmRNb250aENoYW5nZS5lbWl0KG1vbnRoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgb3V0Ym91bmRTZWxlY3RlZERhdGVWYWx1ZTogVXRjRGF0ZTtcbiAgcHJpdmF0ZSBpbmJvdW5kU2VsZWN0ZWREYXRlVmFsdWU6IFV0Y0RhdGU7XG4gIHByaXZhdGUgaW5ib3VuZFNlbGVjdGVkTW9udGhWYWx1ZTogVXRjRGF0ZTtcbiAgcHJpdmF0ZSBpbmJvdW5kT3BlblZhbHVlID0gZmFsc2U7XG4gIHByaXZhdGUgb3V0Ym91bmRPcGVuVmFsdWUgPSBmYWxzZTtcbiAgcHJpdmF0ZSBjb250YWluZXJXaWR0aCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKTtcbiAgcHJpdmF0ZSBpbmJvdW5kVmFsdWVDaGFuZ2VzU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgb3V0Ym91bmRWYWx1ZUNoYW5nZXNTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBpc0lubGluZUZsZXhPblZpZXc6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBkYXRlU2VydmljZTogRGF0ZUhlbHBlcixcbiAgICBwcml2YXRlIGRldmljZUhlbHBlcjogRGV2aWNlSGVscGVyKSB7XG4gICAgc3VwZXIoJ25hcy1kYXRlcGlja2VyLWNvbWJvLW5ldycpO1xuXG4gICAgd2luZG93Lm9ucmVzaXplID0gKCkgPT4ge1xuICAgICAgdGhpcy51cGRhdGVDb250YWluZXJXaWR0aCgpO1xuICAgIH07XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5uYXNGb3JtR3JvdXApIHtcbiAgICAgIGlmICh0aGlzLm5hc0Zvcm1Db250cm9sTmFtZU91dGJvdW5kKSB7XG4gICAgICAgIHRoaXMub3V0Ym91bmRWYWx1ZUNoYW5nZXNTdWJzY3JpcHRpb24gPSB0aGlzLm5hc0Zvcm1Hcm91cC5nZXQodGhpcy5uYXNGb3JtQ29udHJvbE5hbWVPdXRib3VuZClcbiAgICAgICAgICAudmFsdWVDaGFuZ2VzXG4gICAgICAgICAgLnN1YnNjcmliZShvdXRib3VuZCA9PiB7XG4gICAgICAgICAgICB0aGlzLm91dGJvdW5kU2VsZWN0ZWREYXRlID0gb3V0Ym91bmQ/LmRhdGU7XG4gICAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5uYXNGb3JtQ29udHJvbE5hbWVJbmJvdW5kKSB7XG4gICAgICAgIHRoaXMuaW5ib3VuZFZhbHVlQ2hhbmdlc1N1YnNjcmlwdGlvbiA9IHRoaXMubmFzRm9ybUdyb3VwLmdldCh0aGlzLm5hc0Zvcm1Db250cm9sTmFtZUluYm91bmQpXG4gICAgICAgICAgLnZhbHVlQ2hhbmdlc1xuICAgICAgICAgIC5zdWJzY3JpYmUoaW5ib3VuZCA9PiB7XG4gICAgICAgICAgICB0aGlzLmluYm91bmRTZWxlY3RlZERhdGUgPSBpbmJvdW5kPy5kYXRlO1xuICAgICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZUNvbnRhaW5lcldpZHRoKCk7XG4gICAgdGhpcy5zZXRJbmxpbmVGbGV4T25Db250YWludGVyV2lkdGgoKTtcbiAgfVxuXG4gIG9uRm9jdXNPbk5leHQoZXZlbnQ6IEtleWJvYXJkRXZlbnQgfCBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5mb2N1c09uTmV4dENoYW5nZS5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIG9uRm9jdXNPblByZXZpb3VzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5mb2N1c09uUHJldmlvdXNDaGFuZ2UuZW1pdChldmVudCk7XG4gIH1cblxuICBvbkluYm91bmRGb2N1c09uUHJldmlvdXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudGltZXMgJiYgdGhpcy50aW1lcy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBzZWxlY3RFbGVtZW50ID0gdGhpcy5kYXRlcGlja2VyT3V0Ym91bmQudGltZVNlbGVjdG9yPy5zZWxlY3Q/Lm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBzZWxlY3RFbGVtZW50Py5mb2N1cygpO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuaW5ib3VuZE9wZW5DaGFuZ2UuZW1pdChmYWxzZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3V0Ym91bmRPcGVuID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBvbk91dGJvdW5kTW9udGhDaGFuZ2UoZGF0ZTogVXRjRGF0ZSk6IHZvaWQge1xuICAgIHRoaXMub3V0Ym91bmRNb250aENoYW5nZS5lbWl0KGRhdGUpO1xuICAgIHRoaXMuaW5ib3VuZFNlbGVjdGVkTW9udGhWYWx1ZSA9IGRhdGU7XG4gIH1cblxuICBnZXRNYWluQ2xhc3MoKTogQXJyYXk8Q2xhc3NNb2RlbD4ge1xuICAgIGNvbnN0IHdpZHRocyA9IFtcbiAgICAgIHRoaXMuZGV2aWNlSGVscGVyLmlzV2lkdGhUYWJsZXQodGhpcy5jb250YWluZXJXaWR0aC5nZXRWYWx1ZSgpKSAmJiAnbWQnLFxuICAgICAgdGhpcy5kZXZpY2VIZWxwZXIuaXNXaWR0aERlc2t0b3AodGhpcy5jb250YWluZXJXaWR0aC5nZXRWYWx1ZSgpKSAmJiAnbGcnXG4gICAgXS5maWx0ZXIoQm9vbGVhbik7XG5cbiAgICBjb25zdCBjbGFzc2VzID0gWy4uLndpZHRoc107XG5cbiAgICBpZiAodGhpcy5leGlzdHModGhpcy5jb21wYWN0KSkge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdjb21wYWN0Jyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZXhpc3RzKHRoaXMuaW5saW5lRmxleCkgfHwgdGhpcy5pc0lubGluZUZsZXhPblZpZXcpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnaW5saW5lLWZsZXgnKTtcblxuICAgICAgaWYodGhpcy5kYXRlUGlja2VyRmxvYXRpbmcoKSkge1xuICAgICAgICBjbGFzc2VzLnB1c2goJ2lubGluZS1mbGV4LWRhdGVwaWNrZXItZmxvYXQnKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5nZXRDb250YWluZXJDbGFzcygnJywgY2xhc3Nlcyk7XG4gIH1cblxuICBjaGVja091dGJvdW5kT25seSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISh0aGlzLmRldmljZUhlbHBlci5pc01vYmlsZVdpZHRoKCkgJiYgdGhpcy5leGlzdHModGhpcy5vdXRib3VuZE9ubHkpKTtcbiAgfVxuXG4gIGNoZWNrSW5ib3VuZERpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoIXRoaXMuZGV2aWNlSGVscGVyLmlzTW9iaWxlV2lkdGgoKSAmJiB0aGlzLmV4aXN0cyh0aGlzLm91dGJvdW5kT25seSkpXG4gICAgICB8fCB0aGlzLmV4aXN0cyh0aGlzLmluYm91bmREaXNhYmxlZCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmluYm91bmRWYWx1ZUNoYW5nZXNTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5vdXRib3VuZFZhbHVlQ2hhbmdlc1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQ29udGFpbmVyV2lkdGgoKTogdm9pZCB7XG4gICAgY29uc3QgY29udGFpbmVyT2Zmc2V0V2lkdGggPSAodGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkub2Zmc2V0V2lkdGg7XG4gICAgaWYgKGNvbnRhaW5lck9mZnNldFdpZHRoID4gMCkge1xuICAgICAgdGhpcy5jb250YWluZXJXaWR0aC5uZXh0KGNvbnRhaW5lck9mZnNldFdpZHRoKTtcbiAgICB9XG4gIH1cblxuICAgc2V0SW5saW5lRmxleE9uQ29udGFpbnRlcldpZHRoKCk6IHZvaWQge1xuICAgIGlmKHRoaXMuZXhpc3RzKHRoaXMuaW5saW5lRmxleCkpIHtcbiAgICAgIHRoaXMuaXNJbmxpbmVGbGV4T25WaWV3ID0gZmFsc2U7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYoIXRoaXMuY29udGFpbmVyICYmICF0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaXNJbmxpbmVGbGV4T25WaWV3ID0gdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCA+IDc4ODtcbiAgfVxuXG5cbiAgZGF0ZVBpY2tlckZsb2F0aW5nKCk6IGJvb2xlYW4ge1xuICAgIGlmKCF0aGlzLmNvbnRhaW5lciAmJiAhdGhpcy5jb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggPD0gNjY1O1xuICB9XG5cbn1cbiIsIjxkaXYgW25hc0NsYXNzXT1cImdldE1haW5DbGFzcygpXCIgI2NvbnRhaW5lcj5cbiAgPGRpdiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2RhdGUtcGlja2VyJylcIj5cbiAgICA8bmFzLWRhdGVwaWNrZXItbmV3ICNkYXRlcGlja2VyT3V0Ym91bmRcbiAgICAgIGNvbXBhY3RcbiAgICAgIFtkaXNhYmxlQmFja2Ryb3BdPVwiZGlzYWJsZUJhY2tkcm9wXCJcbiAgICAgIFtuYXNGb3JtR3JvdXBdPVwibmFzRm9ybUdyb3VwXCJcbiAgICAgIFtuYXNGb3JtQ29udHJvbE5hbWVdPVwibmFzRm9ybUNvbnRyb2xOYW1lT3V0Ym91bmRcIlxuICAgICAgW25vQXZhaWxhYmxlRmxpZ2h0c0xhYmVsXT1cIm5vQXZhaWxhYmxlRmxpZ2h0c0xhYmVsXCJcbiAgICAgIFthdmFpbGFibGVGbGlnaHRzTGFiZWxdPVwiYXZhaWxhYmxlRmxpZ2h0c0xhYmVsXCJcbiAgICAgIFtkaXNhYmxlUGFzdFNlbGVjdGlvbl09XCJleGlzdHMoZGlzYWJsZVBhc3RTZWxlY3Rpb24pXCJcbiAgICAgIFthdmFpbGFiaWxpdHldPVwiZXhpc3RzKGF2YWlsYWJpbGl0eSlcIlxuICAgICAgW2F2YWlsYWJsZURhdGVzXT1cIm91dGJvdW5kQXZhaWxhYmxlRGF0ZXNcIlxuICAgICAgW3RpbWVzXT1cInRpbWVzXCJcbiAgICAgIFt0aW1lcGlja2VyTGFiZWxdPVwidGltZXBpY2tlckxhYmVsXCJcbiAgICAgIFtzZWxlY3RlZFRpbWVdPVwib3V0Ym91bmRTZWxlY3RlZFRpbWVcIlxuICAgICAgW2RhdGVEaXNwbGF5Rm9ybWF0XT1cImRhdGVEaXNwbGF5Rm9ybWF0XCJcbiAgICAgIFt0aW1lRGlzcGxheUZvcm1hdF09XCJ0aW1lRGlzcGxheUZvcm1hdFwiXG4gICAgICBbbG9jYWxlXT1cImxvY2FsZVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZXhpc3RzKG91dGJvdW5kRGlzYWJsZWQpXCJcbiAgICAgIFthcmlhTGFiZWxCYWNrZHJvcF09XCJhcmlhTGFiZWxCYWNrZHJvcFwiXG4gICAgICBbYXJpYUxhYmVsUHJldmlvdXNNb250aF09XCJhcmlhTGFiZWxQcmV2aW91c01vbnRoXCJcbiAgICAgIFthcmlhTGFiZWxOZXh0TW9udGhdPVwiYXJpYUxhYmVsTmV4dE1vbnRoXCJcbiAgICAgIChmb2N1c09uTmV4dENoYW5nZSk9XCJpbmJvdW5kT3BlbiA9IHRydWVcIlxuICAgICAgKGZvY3VzT25QcmV2aW91c0NoYW5nZSk9XCJvbkZvY3VzT25QcmV2aW91cygkZXZlbnQpXCJcbiAgICAgIChzZWxlY3RlZE1vbnRoQ2hhbmdlKT1cIm9uT3V0Ym91bmRNb250aENoYW5nZSgkZXZlbnQpXCJcbiAgICAgIFsob3BlbildPVwib3V0Ym91bmRPcGVuXCJcbiAgICAgIFsoc2VsZWN0ZWREYXRlKV09XCJvdXRib3VuZFNlbGVjdGVkRGF0ZVwiPnt7b3V0Ym91bmRMYWJlbH19PC9uYXMtZGF0ZXBpY2tlci1uZXc+XG4gIDwvZGl2PlxuICA8c3BhbiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ3NlcGFyYXRvcicpXCI+PC9zcGFuPlxuICA8ZGl2ICpuZ0lmPVwiY2hlY2tPdXRib3VuZE9ubHkoKVwiXG4gICAgW25hc0NsYXNzXT1cImdldENsYXNzKCdkYXRlLXBpY2tlcicsIGNoZWNrSW5ib3VuZERpc2FibGVkKCkgJiYgJ2hpZGUnKVwiPlxuICAgIDxuYXMtZGF0ZXBpY2tlci1uZXcgI2RhdGVwaWNrZXJJbmJvdW5kXG4gICAgICBjb21wYWN0XG4gICAgICBbZGlzYWJsZUJhY2tkcm9wXT1cImRpc2FibGVCYWNrZHJvcFwiXG4gICAgICBbbmFzRm9ybUdyb3VwXT1cIm5hc0Zvcm1Hcm91cFwiXG4gICAgICBbbmFzRm9ybUNvbnRyb2xOYW1lXT1cIm5hc0Zvcm1Db250cm9sTmFtZUluYm91bmRcIlxuICAgICAgW2Rpc2FibGVkXT1cImNoZWNrSW5ib3VuZERpc2FibGVkKClcIlxuICAgICAgW25vQXZhaWxhYmxlRmxpZ2h0c0xhYmVsXT1cIm5vQXZhaWxhYmxlRmxpZ2h0c0xhYmVsXCJcbiAgICAgIFthdmFpbGFibGVGbGlnaHRzTGFiZWxdPVwiYXZhaWxhYmxlRmxpZ2h0c0xhYmVsXCJcbiAgICAgIFtkaXNhYmxlUGFzdFNlbGVjdGlvbl09XCJleGlzdHMoZGlzYWJsZVBhc3RTZWxlY3Rpb24pXCJcbiAgICAgIFthdmFpbGFiaWxpdHldPVwiZXhpc3RzKGF2YWlsYWJpbGl0eSlcIlxuICAgICAgW2F2YWlsYWJsZURhdGVzXT1cImluYm91bmRBdmFpbGFibGVEYXRlc1wiXG4gICAgICBbbG93ZXJMaW1pdERhdGVdPVwiaW5ib3VuZExvd2VyTGltaXREYXRlXCJcbiAgICAgIFt0aW1lc109XCJ0aW1lc1wiXG4gICAgICBbdGltZXBpY2tlckxhYmVsXT1cInRpbWVwaWNrZXJMYWJlbFwiXG4gICAgICBbc2VsZWN0ZWRUaW1lXT1cImluYm91bmRTZWxlY3RlZFRpbWVcIlxuICAgICAgW2RhdGVEaXNwbGF5Rm9ybWF0XT1cImRhdGVEaXNwbGF5Rm9ybWF0XCJcbiAgICAgIFt0aW1lRGlzcGxheUZvcm1hdF09XCJ0aW1lRGlzcGxheUZvcm1hdFwiXG4gICAgICBbbG9jYWxlXT1cImxvY2FsZVwiXG4gICAgICBbYXJpYUxhYmVsQmFja2Ryb3BdPVwiYXJpYUxhYmVsQmFja2Ryb3BcIlxuICAgICAgW2FyaWFMYWJlbFByZXZpb3VzTW9udGhdPVwiYXJpYUxhYmVsUHJldmlvdXNNb250aFwiXG4gICAgICBbYXJpYUxhYmVsTmV4dE1vbnRoXT1cImFyaWFMYWJlbE5leHRNb250aFwiXG4gICAgICAoZm9jdXNPbk5leHRDaGFuZ2UpPVwib25Gb2N1c09uTmV4dCgkZXZlbnQpXCJcbiAgICAgIChmb2N1c09uUHJldmlvdXNDaGFuZ2UpPVwib25JbmJvdW5kRm9jdXNPblByZXZpb3VzKClcIlxuICAgICAgWyhvcGVuKV09XCJpbmJvdW5kT3BlblwiXG4gICAgICBbKHNlbGVjdGVkTW9udGgpXT1cImluYm91bmRTZWxlY3RlZE1vbnRoXCJcbiAgICAgIFsoc2VsZWN0ZWREYXRlKV09XCJpbmJvdW5kU2VsZWN0ZWREYXRlXCI+e3tpbmJvdW5kTGFiZWx9fTwvbmFzLWRhdGVwaWNrZXItbmV3PlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==
|