@firestitch/list 18.0.74 → 18.0.76
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/app/classes/list-controller.d.ts +10 -0
- package/app/components/list/list.component.d.ts +18 -4
- package/app/directives/cell/cell-row-type-scope.directive.d.ts +11 -0
- package/app/directives/cell/cell.directive.d.ts +15 -1
- package/app/directives/cell/typed-cell.directive.d.ts +15 -0
- package/app/fs-list.module.d.ts +15 -14
- package/app/interfaces/listconfig.interface.d.ts +19 -9
- package/esm2022/app/classes/actions-controller.mjs +3 -5
- package/esm2022/app/classes/index.mjs +1 -1
- package/esm2022/app/classes/list-controller.mjs +21 -2
- package/esm2022/app/components/body/row/cell/cell.component.mjs +3 -3
- package/esm2022/app/components/footer/footer-row/footer-cell/footer-cell.component.mjs +3 -3
- package/esm2022/app/components/head/head-cell/head-cell.component.mjs +1 -1
- package/esm2022/app/components/list/list.component.mjs +53 -2
- package/esm2022/app/components/loader/loader.component.mjs +1 -1
- package/esm2022/app/directives/cell/cell-row-type-scope.directive.mjs +23 -0
- package/esm2022/app/directives/cell/cell.directive.mjs +23 -3
- package/esm2022/app/directives/cell/typed-cell.directive.mjs +20 -0
- package/esm2022/app/directives/empty-state/empty-state.directive.mjs +1 -1
- package/esm2022/app/directives/footer/footer.directive.mjs +1 -1
- package/esm2022/app/directives/group-expand-trigger/group-expand-trigger.directive.mjs +1 -1
- package/esm2022/app/directives/header/header.directive.mjs +1 -1
- package/esm2022/app/directives/heading/heading.directive.mjs +1 -1
- package/esm2022/app/directives/index.mjs +1 -1
- package/esm2022/app/enums/page-change-type.enum.mjs +1 -1
- package/esm2022/app/enums/pagination-strategy.enum.mjs +1 -1
- package/esm2022/app/enums/state.enum.mjs +1 -1
- package/esm2022/app/fs-list.module.mjs +6 -1
- package/esm2022/app/interfaces/cellconfig.interface.mjs +1 -1
- package/esm2022/app/interfaces/draggable-list.interface.mjs +1 -1
- package/esm2022/app/interfaces/external-params.interface.mjs +1 -1
- package/esm2022/app/interfaces/listconfig.interface.mjs +1 -1
- package/esm2022/app/interfaces/sorting-change-event.interface.mjs +1 -1
- package/esm2022/public_api.mjs +3 -1
- package/fesm2022/firestitch-list.mjs +142 -13
- package/fesm2022/firestitch-list.mjs.map +1 -1
- package/package.json +1 -1
- package/public_api.d.ts +2 -0
|
@@ -569,7 +569,9 @@ export class List {
|
|
|
569
569
|
autoReload: this.autoReload,
|
|
570
570
|
init: this._filterInit.bind(this),
|
|
571
571
|
change: this._filterChange.bind(this),
|
|
572
|
-
reload: this._config.reload ?? true
|
|
572
|
+
reload: (this._config.reload ?? true)
|
|
573
|
+
? this._filterReload.bind(this)
|
|
574
|
+
: undefined,
|
|
573
575
|
sortChange: this._filterSort.bind(this),
|
|
574
576
|
heading: this.heading,
|
|
575
577
|
subheading: this.subheading,
|
|
@@ -613,6 +615,23 @@ export class List {
|
|
|
613
615
|
this.paging.resetPaging();
|
|
614
616
|
this._fetch$.next(null);
|
|
615
617
|
}
|
|
618
|
+
/**
|
|
619
|
+
* Callback when the filter reload button is clicked.
|
|
620
|
+
*
|
|
621
|
+
* Unlike a filter change, a reload must preserve the current page/offset,
|
|
622
|
+
* so we route to reload() which keeps paging intact instead of resetting it.
|
|
623
|
+
*
|
|
624
|
+
* @param query
|
|
625
|
+
* @param sort
|
|
626
|
+
*/
|
|
627
|
+
_filterReload(query, sort) {
|
|
628
|
+
if (this.filterChangeCb) {
|
|
629
|
+
this.filterChangeCb(query, sort);
|
|
630
|
+
}
|
|
631
|
+
query = this._processRestoreQuery(query);
|
|
632
|
+
this._filtersQuery.next(query);
|
|
633
|
+
this.reload();
|
|
634
|
+
}
|
|
616
635
|
_processRestoreQuery(query) {
|
|
617
636
|
this.restoreMode = false;
|
|
618
637
|
// Restore option
|
|
@@ -746,4 +765,4 @@ export class List {
|
|
|
746
765
|
});
|
|
747
766
|
}
|
|
748
767
|
}
|
|
749
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1jb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9jbGFzc2VzL2xpc3QtY29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQ2tFLFFBQVEsR0FDaEYsTUFBTSxvQkFBb0IsQ0FBQztBQUc1QixPQUFPLEVBQ0wsZUFBZSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsT0FBTyxHQUNyRSxNQUFNLE1BQU0sQ0FBQztBQUNkLE9BQU8sRUFDTCxVQUFVLEVBQUUsWUFBWSxFQUN4QixLQUFLLEVBQ0wsR0FBRyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxHQUN6RCxNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFdEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQXVCbEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDNUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFL0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENB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QUMsQ0FBQyxDQUFDLEVBQ1AsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FDMUI7aUJBQ0EsU0FBUyxDQUFDO2dCQUNULElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO2FBQzFCLENBQUMsQ0FBQztRQUNQLENBQUM7SUFDSCxDQUFDO0lBRU8scUJBQXFCO1FBQzNCLElBQUksQ0FBQyxPQUFPLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUNwQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU87YUFDakIsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUM7YUFDckQsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7XG4gIENoYW5nZUZuLCBGaWx0ZXJDb25maWcsIEZzRmlsdGVyQXV0b1JlbG9hZCwgSUZpbHRlclNhdmVkRmlsdGVyc0NvbmZpZywgSXRlbVR5cGUsXG59IGZyb20gJ0BmaXJlc3RpdGNoL2ZpbHRlcic7XG5pbXBvcnQgeyBTZWxlY3Rpb25EaWFsb2cgfSBmcm9tICdAZmlyZXN0aXRjaC9zZWxlY3Rpb24nO1xuXG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIEVNUFRZLCBmcm9tLCBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBjYXRjaEVycm9yLCBkZWJvdW5jZVRpbWUsXG4gIGRlbGF5LFxuICBtYXAsIG1hcFRvLCBzaGFyZVJlcGxheSwgc3dpdGNoTWFwLCB0YWtlLCB0YWtlVW50aWwsIHRhcCxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5pbXBvcnQgeyBQYWdlQ2hhbmdlVHlwZSB9IGZyb20gJy4uL2VudW1zL3BhZ2UtY2hhbmdlLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBGc0xpc3RTdGF0ZSB9IGZyb20gJy4uL2VudW1zL3N0YXRlLmVudW0nO1xuaW1wb3J0IHtcbiAgRnNMaXN0QWZ0ZXJDb250ZW50SW5pdEZuLFxuICBGc0xpc3RBZnRlckZldGNoRm4sXG4gIEZzTGlzdEFmdGVySW5pdEZuLFxuICBGc0xpc3RCZWZvcmVGZXRjaEZuLFxuICBGc0xpc3RDb25maWcsXG4gIEZzTGlzdEVtcHR5U3RhdGVDb25maWcsXG4gIEZzTGlzdEZldGNoRm4sXG4gIEZzTGlzdEZldGNoT3B0aW9ucyxcbiAgRnNMaXN0RmV0Y2hTdWJzY3JpcHRpb24sXG4gIEZzTGlzdEdyb3VwQ29uZmlnLFxuICBGc0xpc3RMb2FkTW9yZUNvbmZpZyxcbiAgRnNMaXN0Tm9SZXN1bHRzQ29uZmlnLFxuICBGc0xpc3RQZXJzaXRhbmNlLFxuICBGc0xpc3RSZXN0b3JlQ29uZmlnLFxuICBGc0xpc3RSb3dBY3Rpb24sXG4gIEZzTGlzdFJvd0FjdGlvbkdyb3VwLFxuICBGc0xpc3RTZWxlY3Rpb25Db25maWcsXG4gIEZzTGlzdFRyYWNrQnlGbixcbiAgRnNQYWdpbmcsXG4gIFBhZ2VDaGFuZ2UsXG59IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgU29ydGluZ0RpcmVjdGlvbiB9IGZyb20gJy4uL21vZGVscy9jb2x1bW4ubW9kZWwnO1xuaW1wb3J0IHsgU3R5bGVDb25maWcgfSBmcm9tICcuLi9tb2RlbHMvc3R5bGVDb25maWcubW9kZWwnO1xuXG5pbXBvcnQgeyBDb2x1bW5zQ29udHJvbGxlciB9IGZyb20gJy4vY29sdW1ucy1jb250cm9sbGVyJztcbmltcG9ydCB7IERhdGFDb250cm9sbGVyIH0gZnJvbSAnLi9kYXRhLWNvbnRyb2xsZXInO1xuaW1wb3J0IHsgRXh0ZXJuYWxQYXJhbXNDb250cm9sbGVyIH0gZnJvbSAnLi9leHRlcm5hbC1wYXJhbXMtY29udHJvbGxlcic7XG5pbXBvcnQgeyBBY3Rpb25zQ29udHJvbGxlciB9IGZyb20gJy4vaW5kZXgnO1xuaW1wb3J0IHsgUGFnaW5hdGlvbkNvbnRyb2xsZXIgfSBmcm9tICcuL3BhZ2luYXRpb24tY29udHJvbGxlcic7XG5pbXBvcnQgeyBQZXJzaXN0YW5jZUNvbnRyb2xsZXIgfSBmcm9tICcuL3BlcnNpc3RhbmNlLWNvbnRyb2xsZXInO1xuaW1wb3J0IHsgU2VsZWN0aW9uQ29udHJvbGxlciB9IGZyb20gJy4vc2VsZWN0aW9uLWNvbnRyb2xsZXInO1xuaW1wb3J0IHsgU29ydGluZ0NvbnRyb2xsZXIgfSBmcm9tICcuL3NvcnRpbmctY29udHJvbGxlcic7XG5cbmNvbnN0IHNob3dEZWxldGVkRmlsdGVyS2V5ID0gJ3Nob3dEZWxldGVkJztcblxuXG5leHBvcnQgY2xhc3MgTGlzdCB7XG5cbiAgcHVibGljIGhlYWRpbmc6IHN0cmluZztcbiAgcHVibGljIHRyYWNrQnk6IHN0cmluZztcbiAgcHVibGljIHN1YmhlYWRpbmc6IHN0cmluZztcbiAgcHVibGljIGF1dG9Gb2N1czogYm9vbGVhbjtcbiAgcHVibGljIHJvd0hvdmVySGlnaGxpZ2h0OiBib29sZWFuO1xuICBwdWJsaWMgcm93QWN0aW9uc1JhdzogKEZzTGlzdFJvd0FjdGlvbkdyb3VwIHwgRnNMaXN0Um93QWN0aW9uKVtdO1xuICBwdWJsaWMgZ3JvdXBBY3Rpb25zUmF3OiBhbnlbXTtcbiAgcHVibGljIHJvd0NsYXNzO1xuICBwdWJsaWMgcm93RXZlbnRzOiBhbnk7XG4gIHB1YmxpYyByZXN0b3JlOiBGc0xpc3RSZXN0b3JlQ29uZmlnO1xuICBwdWJsaWMgcGVyc2lzdDogRnNMaXN0UGVyc2l0YW5jZTtcbiAgcHVibGljIGZpbHRlcnMgPSBbXTtcbiAgcHVibGljIGZpbHRlckluaXRDYjogQ2hhbmdlRm47XG4gIHB1YmxpYyBmaWx0ZXJDaGFuZ2VDYjogQ2hhbmdlRm47XG4gIHB1YmxpYyBzYXZlZEZpbHRlcnM6IElGaWx0ZXJTYXZlZEZpbHRlcnNDb25maWc7XG4gIHB1YmxpYyBub1Jlc3VsdHM6IEZzTGlzdE5vUmVzdWx0c0NvbmZpZztcbiAgcHVibGljIGVtcHR5U3RhdGU6IEZzTGlzdEVtcHR5U3RhdGVDb25maWc7XG4gIHB1YmxpYyBmZXRjaEZuOiBGc0xpc3RGZXRjaEZuO1xuICBwdWJsaWMgYmVmb3JlRmV0Y2hGbjogRnNMaXN0QmVmb3JlRmV0Y2hGbjtcbiAgcHVibGljIGFmdGVyRmV0Y2hGbjogRnNMaXN0QWZ0ZXJGZXRjaEZuO1xuICBwdWJsaWMgYWZ0ZXJDb250ZW50SW5pdDogRnNMaXN0QWZ0ZXJDb250ZW50SW5pdEZuO1xuICBwdWJsaWMgYWZ0ZXJJbml0OiBGc0xpc3RBZnRlckluaXRGbjtcbiAgcHVibGljIHN0eWxlO1xuICBwdWJsaWMgaGFzUm93QWN0aW9ucztcbiAgcHVibGljIHJvd0FjdGlvbnNIb3ZlciA9IGZhbHNlO1xuICBwdWJsaWMgcGFnaW5nOiBQYWdpbmF0aW9uQ29udHJvbGxlcjtcbiAgcHVibGljIGNvbHVtbnM6IENvbHVtbnNDb250cm9sbGVyO1xuICBwdWJsaWMgYWN0aW9uczogQWN0aW9uc0NvbnRyb2xsZXI7XG4gIHB1YmxpYyBkYXRhQ29udHJvbGxlcjogRGF0YUNvbnRyb2xsZXI7XG4gIHB1YmxpYyBzb3J0aW5nOiBTb3J0aW5nQ29udHJvbGxlcjtcbiAgcHVibGljIGV4dGVybmFsUGFyYW1zOiBFeHRlcm5hbFBhcmFtc0NvbnRyb2xsZXI7XG4gIHB1YmxpYyBzZWxlY3Rpb246IFNlbGVjdGlvbkNvbnRyb2xsZXI7XG4gIHB1YmxpYyBmaWx0ZXJDb25maWc6IEZpbHRlckNvbmZpZyA9IG51bGw7XG4gIHB1YmxpYyBzdGF0dXMgPSB0cnVlO1xuICBwdWJsaWMgY2hpcHMgPSBmYWxzZTtcbiAgcHVibGljIHF1ZXJ5UGFyYW0gPSBmYWxzZTtcbiAgcHVibGljIHJlc3RvcmVNb2RlID0gZmFsc2U7XG4gIHB1YmxpYyBhdXRvUmVsb2FkOiBGc0ZpbHRlckF1dG9SZWxvYWQ7XG4gIHB1YmxpYyBpbml0aWFsRmV0Y2ggPSB0cnVlO1xuICBwdWJsaWMgZW1wdHlTdGF0ZUVuYWJsZWQgPSBmYWxzZTtcbiAgcHVibGljIGVtcHR5U3RhdGVUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBwcml2YXRlIF9sb2FkaW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICBwcml2YXRlIF9mZXRjaENvbXBsZXRlJCA9IG5ldyBTdWJqZWN0PHsgc2Nyb2xsSW50b1ZpZXc/OiBib29sZWFuIH0+KCk7XG4gIHByaXZhdGUgX2ZpbHRlcnNSZWFkeSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XG4gIHByaXZhdGUgX2luaXRpYWxpemVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICBwcml2YXRlIF9mZXRjaCQgPSBuZXcgU3ViamVjdDxGc0xpc3RGZXRjaFN1YnNjcmlwdGlvbiB8IHZvaWQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZpbHRlcnNRdWVyeSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UmVjb3JkPHN0cmluZywgYW55Pj4obnVsbCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2hlYWRlckNvbmZpZzogU3R5bGVDb25maWc7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2dyb3VwQ2VsbENvbmZpZzogU3R5bGVDb25maWc7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2NlbGxDb25maWc6IFN0eWxlQ29uZmlnO1xuICBwcml2YXRlIHJlYWRvbmx5IF9mb290ZXJDb25maWc6IFN0eWxlQ29uZmlnO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2VsOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgX2NvbmZpZzogRnNMaXN0Q29uZmlnID0ge30sXG4gICAgcHJpdmF0ZSBfc2VsZWN0aW9uRGlhbG9nOiBTZWxlY3Rpb25EaWFsb2csXG4gICAgcHJpdmF0ZSBfcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgX3BlcnNpc3RhbmNlOiBQZXJzaXN0YW5jZUNvbnRyb2xsZXIsXG4gICAgcHJpdmF0ZSBfaW5EaWFsb2c6IGJvb2xlYW4sXG4gICkge1xuICAgIHRoaXMuY29sdW1ucyA9IG5ldyBDb2x1bW5zQ29udHJvbGxlcih0aGlzLl9wZXJzaXN0YW5jZSk7XG4gICAgdGhpcy5hY3Rpb25zID0gbmV3IEFjdGlvbnNDb250cm9sbGVyKCk7XG4gICAgdGhpcy5wYWdpbmcgPSBuZXcgUGFnaW5hdGlvbkNvbnRyb2xsZXIoKTtcbiAgICB0aGlzLmRhdGFDb250cm9sbGVyID0gbmV3IERhdGFDb250cm9sbGVyKCk7XG4gICAgdGhpcy5zb3J0aW5nID0gbmV3IFNvcnRpbmdDb250cm9sbGVyKCk7XG5cbiAgICB0aGlzLl9pbml0aWFsaXplKF9jb25maWcpO1xuICAgIHRoaXMuX2hlYWRlckNvbmZpZyA9IG5ldyBTdHlsZUNvbmZpZyhfY29uZmlnLmhlYWRlcik7XG4gICAgdGhpcy5fZ3JvdXBDZWxsQ29uZmlnID0gbmV3IFN0eWxlQ29uZmlnKF9jb25maWcuY2VsbCk7XG4gICAgdGhpcy5fY2VsbENvbmZpZyA9IG5ldyBTdHlsZUNvbmZpZyhfY29uZmlnLmNlbGwpO1xuICAgIHRoaXMuX2Zvb3RlckNvbmZpZyA9IG5ldyBTdHlsZUNvbmZpZyhfY29uZmlnLmZvb3Rlcik7XG4gICAgdGhpcy5faW5pdGlhbGl6ZWQkLm5leHQodHJ1ZSk7XG4gICAgdGhpcy5zdWJzY3JpYmUoKTtcblxuICAgIGlmICh0aGlzLmluaXRpYWxGZXRjaCkge1xuICAgICAgdGhpcy5kYXRhQ29udHJvbGxlci5zZXRPcGVyYXRpb24oRnNMaXN0U3RhdGUuTG9hZCk7XG4gICAgICB0aGlzLl9mZXRjaCQubmV4dChudWxsKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGxvYWRpbmckKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLl9sb2FkaW5nJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBmaWx0ZXJzUmVhZHkoKSB7XG4gICAgdGhpcy5fZmlsdGVyc1JlYWR5JC5uZXh0KG51bGwpO1xuICB9XG5cbiAgcHVibGljIGdldCBmaWx0ZXJzUmVhZHkkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLl9maWx0ZXJzUmVhZHkkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBmZXRjaCQoKTogT2JzZXJ2YWJsZTxGc0xpc3RGZXRjaFN1YnNjcmlwdGlvbiB8IHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5fZmV0Y2gkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBmZXRjaENvbXBsZXRlJCgpOiBPYnNlcnZhYmxlPHsgc2Nyb2xsSW50b1ZpZXc/OiBib29sZWFuIH0+IHtcbiAgICByZXR1cm4gdGhpcy5fZmV0Y2hDb21wbGV0ZSQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhhc1NhdmVkRmlsdGVycygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmZpbHRlckNvbmZpZy5zYXZlZEZpbHRlcnM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGZpbHRlcnNRdWVyeSgpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVyc1F1ZXJ5LmdldFZhbHVlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGZpbHRlcnNRdWVyeSQoKTogT2JzZXJ2YWJsZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbHRlcnNRdWVyeS5hc09ic2VydmFibGUoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgodikgPT4gdiB8fCB7fSksXG4gICAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCBhY3RpdmVGaWx0ZXJzQ291bnQkKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyc1F1ZXJ5JFxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgodikgPT4ge1xuICAgICAgICAgIHJldHVybiBPYmplY3Qua2V5cyh2KVxuICAgICAgICAgICAgLmZpbHRlcigoa2V5KSA9PiBrZXkgIT09ICdvcmRlcicpO1xuICAgICAgICB9KSxcbiAgICAgICAgbWFwKCh2KSA9PiB2Lmxlbmd0aCksXG4gICAgICAgIHNoYXJlUmVwbGF5KCksXG4gICAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCBkZXN0cm95JCgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLl9kZXN0cm95JDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaW5pdGlhbGl6ZWQkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLl9pbml0aWFsaXplZCQ7XG4gIH1cblxuICBwdWJsaWMgZmV0Y2hSZW1vdGUocXVlcnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IG9wdGlvbnM6IEZzTGlzdEZldGNoT3B0aW9ucyA9IHtcbiAgICAgIHN0YXRlOiB0aGlzLmRhdGFDb250cm9sbGVyLm9wZXJhdGlvbixcbiAgICB9O1xuXG4gICAgY29uc3QgcmVzdWx0OiBhbnkgPSB0aGlzLmZldGNoRm4ocXVlcnksIG9wdGlvbnMpO1xuXG4gICAgcmV0dXJuIHJlc3VsdCBpbnN0YW5jZW9mIFByb21pc2UgPyBmcm9tKHJlc3VsdCkgOiByZXN1bHQ7XG4gIH1cblxuICAvLyBwdWJsaWMgbG9hZExvY2FsKCkge1xuICAvLyAgIHRoaXMucGFnaW5nLnVwZGF0ZVBhZ2luZ01hbnVhbCh0aGlzLl9yb3dzKTtcbiAgLy8gICBjb25zdCBmcm9tID0gKHRoaXMucGFnaW5nLnBhZ2UgLSAxKSAqIHRoaXMucGFnaW5nLmxpbWl0O1xuICAvLyAgIGNvbnN0IHRvID0gKHRoaXMucGFnaW5nLnBhZ2UgPT09IDEpID8gdGhpcy5wYWdpbmcubGltaXQgOiB0aGlzLnBhZ2luZy5saW1pdCAqIHRoaXMucGFnaW5nLnBhZ2U7XG4gIC8vICAgY29uc3Qgc2xpY2VPZlJvd3MgPSB0aGlzLl9yb3dzLnNsaWNlKGZyb20sIHRvKTtcbiAgLy8gICB0aGlzLmRhdGEkLm5leHQoc2xpY2VPZlJvd3MpO1xuICAvLyB9XG5cbiAgLyoqXG4gICAqIFRyYW5zZm9ybSB0ZW1wbGF0ZXMgZm9yIHVzaW5nXG4gICAqXG4gICAqIEBwYXJhbSB0ZW1wbGF0ZXNcbiAgICovXG4gIHB1YmxpYyB0cmFuZm9ybVRlbXBsYXRlc1RvQ29sdW1ucyh0ZW1wbGF0ZXMpIHtcbiAgICBjb25zdCBkZWZhdWx0Q29uZmlncyA9IHtcbiAgICAgIGhlYWRlcjogdGhpcy5faGVhZGVyQ29uZmlnLFxuICAgICAgZ3JvdXBDZWxsOiB0aGlzLl9ncm91cENlbGxDb25maWcsXG4gICAgICBjZWxsOiB0aGlzLl9jZWxsQ29uZmlnLFxuICAgICAgZm9vdGVyOiB0aGlzLl9mb290ZXJDb25maWcsXG4gICAgfTtcblxuICAgIHRoaXMuY29sdW1ucy5zZXREZWZhdWx0cyhkZWZhdWx0Q29uZmlncyk7XG4gICAgdGhpcy5jb2x1bW5zLmluaXRpYWxpemVDb2x1bW5zKHRlbXBsYXRlcyk7XG5cbiAgICAvLyBTZXQgc29ydEJ5IGRlZmF1bHQgY29sdW1uXG4gICAgdGhpcy5fdXBkYXRlU29ydGluZ0NvbHVtbnMoKTtcblxuICAgIC8vIERlZmF1bHQgc29ydCBieVxuICAgIGNvbnN0IGV4dGVybmFsU29ydGluZyA9IHRoaXMuZXh0ZXJuYWxQYXJhbXMuZXh0ZXJuYWxTb3J0aW5nO1xuICAgIGNvbnN0IGluaXRpYWxTb3J0Q29uZmlnID0gZXh0ZXJuYWxTb3J0aW5nIHx8IHRoaXMuX2NvbmZpZy5zb3J0O1xuICAgIHRoaXMuc29ydGluZy5pbml0aWFsU29ydEJ5KGluaXRpYWxTb3J0Q29uZmlnKTtcblxuICAgIGlmIChleHRlcm5hbFNvcnRpbmcgJiYgIXRoaXMuc29ydGluZy5pc0RlZmluZWQpIHtcbiAgICAgIHRoaXMuZXh0ZXJuYWxQYXJhbXMuY2xlYXJTb3J0aW5nUGFyYW1zKCk7XG5cbiAgICAgIGNvbnNvbGUud2FybignTm90IGFibGUgdG8gcmVzdG9yZSBwZXJzaXN0ZWQgc29ydGluZyBwYXJhbXMuJywgZXh0ZXJuYWxTb3J0aW5nKTtcbiAgICB9XG5cbiAgICB0aGlzLl9pbml0RmlsdGVycygpO1xuICB9XG5cbiAgcHVibGljIHJlbG9hZCgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHRoaXMuX2xvYWRpbmckLm5leHQodHJ1ZSk7XG4gICAgdGhpcy5kYXRhQ29udHJvbGxlci5zZXRPcGVyYXRpb24oRnNMaXN0U3RhdGUuUmVsb2FkKTtcbiAgICB0aGlzLl9mZXRjaCQubmV4dChudWxsKTtcblxuICAgIHJldHVybiB0aGlzLl9mZXRjaENvbXBsZXRlJFxuICAgICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgZGVsYXkoMCksXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFdhdGNoIHBhZ2UgY2hhbmdlc1xuICAgKi9cbiAgcHVibGljIHN1YnNjcmliZSgpIHtcbiAgICB0aGlzLnBhZ2luZy5wYWdlQ2hhbmdlZCRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKGV2ZW50OiBQYWdlQ2hhbmdlKSA9PiB7XG4gICAgICAgICAgdGhpcy5kYXRhQ29udHJvbGxlci5zZXRPcGVyYXRpb24oRnNMaXN0U3RhdGUuUGFnZUNoYW5nZSk7XG5cbiAgICAgICAgICAvLyBSZW1vdmUgYWxsIHJvd3MgaWYgbGltaXRzIHdhcyBjaGFuZ2VkXG4gICAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IFBhZ2VDaGFuZ2VUeXBlLkxpbWl0Q2hhbmdlZCAmJiB0aGlzLnBhZ2luZy5oYXNQYWdlU3RyYXRlZ3kpIHtcbiAgICAgICAgICAgIHRoaXMuZGF0YUNvbnRyb2xsZXIuY2xlYXJSb3dzKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHRoaXMucGFnaW5nLmhhc09mZnNldFN0cmF0ZWd5KSB7XG4gICAgICAgICAgICB0aGlzLnBhZ2luZy51cGRhdGVQYWdpbmF0aW9uKCk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGlvbikge1xuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbi51cGRhdGVWaXNpYmxlUmVjb3Jkc0NvdW50KHRoaXMucGFnaW5nLmdldFBhZ2VSZWNvcmRzKCkpO1xuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbi51cGRhdGVUb3RhbFJlY29yZHNDb3VudCh0aGlzLnBhZ2luZy5yZWNvcmRzKTtcbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24ucGFnZUNoYW5nZWQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICBzd2l0Y2hNYXAoKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLl9mZXRjaCQubmV4dChudWxsKTtcbiAgICAgICAgICBpZiAoIXRoaXMucGFnaW5nLmxvYWRNb3JlRW5hYmxlZCkge1xuICAgICAgICAgICAgY29uc3QgY29udGFpbnMgPSBbXS5zbGljZS5jYWxsKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5jZGstb3ZlcmxheS1jb250YWluZXInKSlcbiAgICAgICAgICAgICAgLnNvbWUoKG92ZXJsYXkpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fZWwubmF0aXZlRWxlbWVudC5jb250YWlucyhvdmVybGF5KTtcbiAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGxldCBlbCA9IHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgICAgIGlmICghY29udGFpbnMpIHtcbiAgICAgICAgICAgICAgY29uc3QgcmVjdCA9IHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICAgIGlmICgoTnVtYmVyKHJlY3QudG9wIHx8IDApICsgd2luZG93LnBhZ2VZT2Zmc2V0KSA8IHdpbmRvdy5pbm5lckhlaWdodCkge1xuICAgICAgICAgICAgICAgIGVsID0gZG9jdW1lbnQuYm9keTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZmV0Y2hDb21wbGV0ZSRcbiAgICAgICAgICAgICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmKGV2ZW50Py5zY3JvbGxJbnRvVmlldyA/PyB0cnVlKSB7XG4gICAgICAgICAgICAgICAgICAgIGVsLnNjcm9sbEludG9WaWV3KHsgYmVoYXZpb3I6ICdzbW9vdGgnIH0pO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLnNvcnRpbmcuc29ydGluZ0NoYW5nZWQkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmRhdGFDb250cm9sbGVyLnNldE9wZXJhdGlvbihGc0xpc3RTdGF0ZS5Tb3J0KTtcbiAgICAgICAgdGhpcy5wYWdpbmcucGFnZSA9IDE7XG4gICAgICAgIHRoaXMuX2ZldGNoJC5uZXh0KG51bGwpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLl9saXN0ZW5WaXNpYmxlQ29sdW1uQ2hhbmdlcygpO1xuICAgIHRoaXMuX2xpc3RlblJvd3NSZW1vdmUoKTtcbiAgICB0aGlzLl9saXN0ZW5GZXRjaCgpO1xuICB9XG5cbiAgcHVibGljIGdldERhdGEodHJhY2tCeT86IEZzTGlzdFRyYWNrQnlGbikge1xuICAgIGxldCByb3dzRGF0YSA9IHRoaXMuZGF0YUNvbnRyb2xsZXJcbiAgICAgIC52aXNpYmxlUm93c0RhdGE7XG5cbiAgICBpZiAodHJhY2tCeSkge1xuICAgICAgcm93c0RhdGEgPSByb3dzRGF0YVxuICAgICAgICAuZmlsdGVyKHRyYWNrQnkpO1xuICAgIH1cblxuICAgIHJldHVybiByb3dzRGF0YVxuICAgICAgLm1hcCgoZGF0YSkgPT4ge1xuICAgICAgICByZXR1cm4gY2xvbmVEZWVwKGRhdGEpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgaGFzRGF0YSh0cmFja0J5OiBGc0xpc3RUcmFja0J5Rm4pIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhQ29udHJvbGxlci52aXNpYmxlUm93c0RhdGEuc29tZSh0cmFja0J5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUb2dnbGUgZ3JvdXAgbW9kZSBzdGF0dXNcbiAgICpcbiAgICogQHBhcmFtIHZhbHVlXG4gICAqL1xuICBwdWJsaWMgZ3JvdXBFbmFibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKHRoaXMuZGF0YUNvbnRyb2xsZXIuZ3JvdXBFbmFibGVkICE9PSB2YWx1ZSkge1xuICAgICAgdGhpcy5kYXRhQ29udHJvbGxlci5ncm91cEVuYWJsZWQgPSB2YWx1ZTtcblxuICAgICAgLy8gQ29tbWVudGVkIG91dCBiZWNhdXNlIFJheSB3YW50cyB0byBjaGFuZ2UgZ3JvdXAgc3RhdHVzIGluIGZldGNoIG1hcCBwaXBlXG4gICAgICAvLyBhbmQgaXQgdHJpZ2dlcnMgZXh0cmEgcmVxdWVzdHNcbiAgICAgIC8vIHRoaXMucmVsb2FkKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMucGFnaW5nKSB7XG4gICAgICB0aGlzLnBhZ2luZy5kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc29ydGluZykge1xuICAgICAgdGhpcy5zb3J0aW5nLmRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zZWxlY3Rpb24pIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uLmRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5maWx0ZXJDb25maWcpIHtcbiAgICAgIHRoaXMuZmlsdGVyQ29uZmlnID0gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5leHRlcm5hbFBhcmFtcykge1xuICAgICAgdGhpcy5leHRlcm5hbFBhcmFtcy5kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgdGhpcy5jb2x1bW5zLmRlc3Ryb3koKTtcblxuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQobnVsbCk7XG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcblxuICAgIHRoaXMuZGF0YUNvbnRyb2xsZXIuZGVzdHJveSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIERvIGluaXRpYWxpemF0aW9uIG9mIHRhYmxlXG4gICAqXG4gICAqIEBwYXJhbSBjb25maWdcbiAgICovXG4gIHByaXZhdGUgX2luaXRpYWxpemUoY29uZmlnOiBGc0xpc3RDb25maWcpIHtcbiAgICB0aGlzLl9pbml0VmFyaWFibGVzKGNvbmZpZyk7XG4gICAgdGhpcy5faW5pdERlZmF1bHRPcHRpb25zKGNvbmZpZyk7XG4gICAgdGhpcy5faW5pdFJlc3RvcmUoKTtcbiAgICB0aGlzLl9pbml0QWN0aW9ucyhjb25maWcpO1xuICAgIHRoaXMuX2luaXRQYWdpbmcoY29uZmlnLnBhZ2luZywgY29uZmlnLmxvYWRNb3JlKTtcbiAgICB0aGlzLl9pbml0U2VsZWN0aW9uKGNvbmZpZy5zZWxlY3Rpb24sIHRoaXMuX3NlbGVjdGlvbkRpYWxvZyk7XG4gICAgdGhpcy5faW5pdEdyb3Vwcyhjb25maWcuZ3JvdXApO1xuICAgIHRoaXMuX2luaXRFeHRlcm5hbFBhcmFtc0NvbnRyb2xsZXIoKTtcbiAgICB0aGlzLl9pbml0aWFsaXplRGF0YSgpO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1zdGF0ZW1lbnRzXG4gIHByaXZhdGUgX2luaXRWYXJpYWJsZXMoY29uZmlnOiBGc0xpc3RDb25maWcpIHtcbiAgICB0aGlzLmF1dG9Gb2N1cyA9IGNvbmZpZy5hdXRvRm9jdXM7XG4gICAgdGhpcy5yb3dIb3ZlckhpZ2hsaWdodCA9IGNvbmZpZy5yb3dIb3ZlckhpZ2hsaWdodCA/PyB0cnVlO1xuICAgIHRoaXMuaGVhZGluZyA9IGNvbmZpZy5oZWFkaW5nO1xuICAgIHRoaXMudHJhY2tCeSA9IGNvbmZpZy50cmFja0J5O1xuICAgIHRoaXMuc3ViaGVhZGluZyA9IGNvbmZpZy5zdWJoZWFkaW5nO1xuICAgIHRoaXMucm93QWN0aW9uc1JhdyA9IGNvbmZpZy5yb3dBY3Rpb25zO1xuICAgIHRoaXMucm93Q2xhc3MgPSBjb25maWcucm93Q2xhc3M7XG4gICAgdGhpcy5yb3dFdmVudHMgPSBjb25maWcucm93RXZlbnRzO1xuICAgIHRoaXMucmVzdG9yZSA9IGNvbmZpZy5yZXN0b3JlO1xuICAgIHRoaXMucGVyc2lzdCA9IGNvbmZpZy5wZXJzaXN0O1xuICAgIHRoaXMuZmlsdGVycyA9IGNvbmZpZy5maWx0ZXJzID8/IFtdO1xuICAgIHRoaXMuZmlsdGVySW5pdENiID0gY29uZmlnLmZpbHRlckluaXQ7XG4gICAgdGhpcy5maWx0ZXJDaGFuZ2VDYiA9IGNvbmZpZy5maWx0ZXJDaGFuZ2U7XG4gICAgdGhpcy5zYXZlZEZpbHRlcnMgPSBjb25maWcuc2F2ZWRGaWx0ZXJzO1xuICAgIHRoaXMubm9SZXN1bHRzID0gY29uZmlnLm5vUmVzdWx0cztcbiAgICB0aGlzLmVtcHR5U3RhdGUgPSBjb25maWcuZW1wdHlTdGF0ZTtcbiAgICB0aGlzLmZldGNoRm4gPSBjb25maWcuZmV0Y2g7XG4gICAgdGhpcy5hZnRlckZldGNoRm4gPSBjb25maWcuYWZ0ZXJGZXRjaDtcbiAgICB0aGlzLmJlZm9yZUZldGNoRm4gPSBjb25maWcuYmVmb3JlRmV0Y2g7XG4gICAgdGhpcy5hZnRlckluaXQgPSBjb25maWcuYWZ0ZXJJbml0O1xuICAgIHRoaXMuc3R5bGUgPSBjb25maWcuc3R5bGU7XG4gICAgdGhpcy5hdXRvUmVsb2FkID0gY29uZmlnLmF1dG9SZWxvYWQ7XG4gICAgdGhpcy5jb2x1bW5zLmluaXRDb25maWcoY29uZmlnLmNvbHVtbik7XG4gIH1cblxuICAvKipcbiAgICogSnVzdCBpbml0IG9wdGlvbnMgYnkgZGVmYXVsdCBpdCBpdCB3YXNuJ3Qgc3BlY2lmaWVkXG4gICAqXG4gICAqIEBwYXJhbSBjb25maWdcbiAgICovXG4gIHByaXZhdGUgX2luaXREZWZhdWx0T3B0aW9ucyhjb25maWcpIHtcbiAgICAvLyBXZSBzaG91bGQgcHJldmVudCBpbml0aWFsIGZldGNoIGluIGNhc2VzIHdoZW4gaXQgd2lsbCBiZSBmZXRjaGVkIGluIGFueSBjYXNlXG4gICAgLy8gQXMgZXguIHNjcm9sbGFibGUgb3IgZmlsdGVyIHdpbGwgZG8gZmV0Y2ggaW4gYW55IGNhc2VzXG4gICAgaWYgKGNvbmZpZy5pbml0aWFsRmV0Y2ggPT09IGZhbHNlIHx8IGNvbmZpZy5zY3JvbGxhYmxlKSB7IC8vIFRPRE8gZml4bWUgYWZ0ZXIgdHNtb2RlbCB2ZXJzaW9uIHVwZGF0ZVxuICAgICAgdGhpcy5pbml0aWFsRmV0Y2ggPSBmYWxzZTtcbiAgICB9XG4gICAgaWYgKGNvbmZpZy5zdGF0dXMgPT09IGZhbHNlKSB7XG4gICAgICB0aGlzLnN0YXR1cyA9IGZhbHNlO1xuICAgIH1cbiAgICBpZiAoY29uZmlnLmNoaXBzKSB7XG4gICAgICB0aGlzLmNoaXBzID0gY29uZmlnLmNoaXBzO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9pbkRpYWxvZykge1xuICAgICAgdGhpcy5xdWVyeVBhcmFtID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucXVlcnlQYXJhbSA9IChjb25maWcucXVlcnlQYXJhbSA9PT0gdW5kZWZpbmVkKVxuICAgICAgICA/IHRydWVcbiAgICAgICAgOiBjb25maWcucXVlcnlQYXJhbTtcbiAgICB9XG5cbiAgICBpZiAoY29uZmlnLnNvcnRzKSB7XG4gICAgICB0aGlzLnNvcnRpbmcuaW5pdEZha2VDb2x1bW5zKGNvbmZpZy5zb3J0cyk7XG4gICAgfVxuICAgIGlmICghY29uZmlnLnRyYWNrQnkpIHtcbiAgICAgIHRoaXMudHJhY2tCeSA9ICdpZCc7XG4gICAgfVxuXG4gICAgaWYgKGNvbmZpZy5hZnRlckNvbnRlbnRJbml0KSB7XG4gICAgICB0aGlzLmFmdGVyQ29udGVudEluaXQgPSAoKSA9PiB7XG4gICAgICAgIGNvbmZpZy5hZnRlckNvbnRlbnRJbml0KHRoaXMucGFnaW5nLnF1ZXJ5LCB0aGlzLmRhdGFDb250cm9sbGVyLnZpc2libGVSb3dzKTtcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEluaXQgcmVzdG9yZSByb3cgYWN0aW9uIGFuZCBhcHBlbmQgU2hvdyBEZWxldGVkIG9wdGlvbiBpbnRvIGZpbHRlcnNcbiAgICovXG4gIHByaXZhdGUgX2luaXRSZXN0b3JlKCkge1xuICAgIGlmICh0aGlzLnJlc3RvcmUpIHtcbiAgICAgIGNvbnN0IHJlc3RvcmVBY3Rpb24gPSB7XG4gICAgICAgIGxhYmVsOiB0aGlzLnJlc3RvcmUubWVudUxhYmVsIHx8ICdSZXN0b3JlJyxcbiAgICAgICAgbWVudTogdHJ1ZSxcbiAgICAgICAgY2xpY2s6IChyb3cpID0+IHtcbiAgICAgICAgICB0aGlzLl9yZXN0b3JlQ2xpY2sodGhpcy5yZXN0b3JlLmNsaWNrLCByb3cpO1xuICAgICAgICB9LCAvLyBUT0RPIGZpeCBtZSwgbW92ZSB0byBzcGVjaWFsIGZpbGVcbiAgICAgICAgcmVzdG9yZTogdHJ1ZSxcbiAgICAgIH07XG5cbiAgICAgIGlmICghdGhpcy5yb3dBY3Rpb25zUmF3KSB7XG4gICAgICAgIHRoaXMucm93QWN0aW9uc1JhdyA9IFtdO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnJvd0FjdGlvbnNSYXcucHVzaChyZXN0b3JlQWN0aW9uKTtcbiAgICAgIHRoaXMuZmlsdGVycyA9IHRoaXMuZmlsdGVycyB8fCBbXTtcblxuICAgICAgaWYgKHRoaXMucmVzdG9yZS5maWx0ZXIgIT09IGZhbHNlKSB7XG4gICAgICAgIHRoaXMuZmlsdGVycy5wdXNoKHtcbiAgICAgICAgICBuYW1lOiBzaG93RGVsZXRlZEZpbHRlcktleSxcbiAgICAgICAgICB0eXBlOiBJdGVtVHlwZS5DaGVja2JveCxcbiAgICAgICAgICBsYWJlbDogdGhpcy5yZXN0b3JlLmZpbHRlckxhYmVsIHx8ICdTaG93IERlbGV0ZWQnLFxuICAgICAgICAgIGRlZmF1bHQ6IG51bGwsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICB9XG5cbiAgLyoqXG4gICAqIEluaXQgcGFnaW5nXG4gICAqXG4gICAqIEBwYXJhbSBwYWdpbmdDb25maWdcbiAgICogQHBhcmFtIGxvYWRNb3JlXG4gICAqL1xuICBwcml2YXRlIF9pbml0UGFnaW5nKHBhZ2luZ0NvbmZpZzogRnNQYWdpbmcgfCBmYWxzZSwgbG9hZE1vcmU6IEZzTGlzdExvYWRNb3JlQ29uZmlnIHwgYm9vbGVhbikge1xuICAgIHRoaXMucGFnaW5nLmluaXRXaXRoQ29uZmlnKHBhZ2luZ0NvbmZpZywgbG9hZE1vcmUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwbGl0IGFjdGlvbnMgYnkgY2F0ZWdvcmllc1xuICAgKi9cbiAgcHJpdmF0ZSBfaW5pdEFjdGlvbnMoY29uZmlnKSB7XG4gICAgaWYgKGNvbmZpZy5hY3Rpb25zKSB7XG4gICAgICB0aGlzLmFjdGlvbnMuc2V0QWN0aW9ucyhjb25maWcuYWN0aW9ucyk7XG4gICAgfVxuXG4gICAgdGhpcy5yb3dBY3Rpb25zSG92ZXIgPSBjb25maWcucm93QWN0aW9uc0hvdmVyID8/IGZhbHNlO1xuXG4gICAgdGhpcy5oYXNSb3dBY3Rpb25zID1cbiAgICAgICh0aGlzLnJvd0FjdGlvbnNSYXcgJiYgdGhpcy5yb3dBY3Rpb25zUmF3Lmxlbmd0aCA+IDApXG4gICAgICB8fCAodGhpcy5ncm91cEFjdGlvbnNSYXcgJiYgdGhpcy5ncm91cEFjdGlvbnNSYXcubGVuZ3RoID4gMCk7XG4gIH1cblxuICBwcml2YXRlIF9pbml0U2VsZWN0aW9uKFxuICAgIHNlbGVjdGlvbkNvbmZpZzogRnNMaXN0U2VsZWN0aW9uQ29uZmlnLFxuICAgIHNlbGVjdGlvbkRpYWxvZzogU2VsZWN0aW9uRGlhbG9nLFxuICApIHtcbiAgICBpZiAoc2VsZWN0aW9uQ29uZmlnKSB7XG4gICAgICB0aGlzLnNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb25Db250cm9sbGVyKHNlbGVjdGlvbkNvbmZpZywgdGhpcy50cmFja0J5LCBzZWxlY3Rpb25EaWFsb2cpO1xuICAgICAgdGhpcy5zZWxlY3Rpb24uc2V0Um93c0NhbGxiYWNrKCgpID0+IHRoaXMuZGF0YUNvbnRyb2xsZXIudmlzaWJsZVJvd3MpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2luaXRpYWxpemVEYXRhKCkge1xuICAgIHRoaXMuZGF0YUNvbnRyb2xsZXIuc2V0QWRkaXRpb25hbENvbmZpZ3Moe1xuICAgICAgbG9hZE1vcmVFbmFibGVkOiB0aGlzLnBhZ2luZy5sb2FkTW9yZUVuYWJsZWQsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9pbml0R3JvdXBzKGdyb3VwQ29uZmlnOiBGc0xpc3RHcm91cENvbmZpZykge1xuICAgIGlmIChncm91cENvbmZpZykge1xuICAgICAgdGhpcy5kYXRhQ29udHJvbGxlci5zZXRHcm91cENvbmZpZyhncm91cENvbmZpZyk7XG4gICAgICB0aGlzLmdyb3VwQWN0aW9uc1JhdyA9IGdyb3VwQ29uZmlnLmFjdGlvbnM7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdEV4dGVybmFsUGFyYW1zQ29udHJvbGxlcigpIHtcbiAgICB0aGlzLmV4dGVybmFsUGFyYW1zID0gbmV3IEV4dGVybmFsUGFyYW1zQ29udHJvbGxlcihcbiAgICAgIHRoaXMuX3JvdXRlLFxuICAgICAgdGhpcy5fcGVyc2lzdGFuY2UsXG4gICAgICB0aGlzLnBhZ2luZyxcbiAgICAgIHRoaXMuc29ydGluZyxcbiAgICAgIHRoaXMucXVlcnlQYXJhbSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFN1YnNjcmliZSB0byBmZXRjaCQgZXZlbnQgd2l0aCBkZWJvdW5jZVxuICAgKi9cbiAgcHJpdmF0ZSBfbGlzdGVuRmV0Y2goKSB7XG4gICAgbGV0IGZldGNoJCA9IHRoaXMuZmV0Y2gkO1xuXG4gICAgLy8gU2hvdWxkIHdhaXQgdW50aWwgc2F2ZWQgZmlsdGVycyBub3QgbG9hZGVkXG4gICAgaWYgKHRoaXMuZmlsdGVycykge1xuICAgICAgZmV0Y2gkID0gY29tYmluZUxhdGVzdChbZmV0Y2gkLCB0aGlzLl9maWx0ZXJzUmVhZHkkXSlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChbcGFyYW1zXSkgPT4gcGFyYW1zKSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBmZXRjaCRcbiAgICAgIC5waXBlKFxuICAgICAgICBkZWJvdW5jZVRpbWUoNTApLFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX2xvYWRpbmckLm5leHQodHJ1ZSk7XG4gICAgICAgIH0pLFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuc2VsZWN0aW9uPy5jbG9zZVNlbGVjdGlvbkRpYWxvZygpO1xuICAgICAgICB9KSxcbiAgICAgICAgbWFwKChwYXJhbXM6IEZzTGlzdEZldGNoU3Vic2NyaXB0aW9uKSA9PiB7XG4gICAgICAgICAgbGV0IHF1ZXJ5ID0geyAuLi50aGlzLmZpbHRlcnNRdWVyeSB9O1xuXG4gICAgICAgICAgaWYgKHRoaXMucGFnaW5nLmhhc09mZnNldFN0cmF0ZWd5ICYmIHBhcmFtcz8ubG9hZE9mZnNldCkge1xuICAgICAgICAgICAgcXVlcnkgPSBPYmplY3QuYXNzaWduKHF1ZXJ5LCB0aGlzLnBhZ2luZy5sb2FkRGVsZXRlZE9mZnNldFF1ZXJ5KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgYWxsUmVjb3Jkc1JhbmdlTmVlZGVkID0gKHRoaXMuaW5pdGlhbEZldGNoXG4gICAgICAgICAgICAgIHx8IHRoaXMuZGF0YUNvbnRyb2xsZXIub3BlcmF0aW9uID09PSBGc0xpc3RTdGF0ZS5SZWxvYWRcbiAgICAgICAgICAgICkgJiYgdGhpcy5wYWdpbmcubG9hZE1vcmVFbmFibGVkO1xuXG4gICAgICAgICAgICBxdWVyeSA9IGFsbFJlY29yZHNSYW5nZU5lZWRlZCA/XG4gICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24ocXVlcnksIHRoaXMucGFnaW5nLmxvYWRNb3JlUXVlcnkpIDpcbiAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihxdWVyeSwgdGhpcy5wYWdpbmcucXVlcnkpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh0aGlzLnNvcnRpbmcuc29ydGluZ0NvbHVtbikge1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICAgICAgcXVlcnksXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBvcmRlcjogYCR7dGhpcy5zb3J0aW5nLnNvcnRpbmdDb2x1bW4ubmFtZX0sJHt0aGlzLnNvcnRpbmcuc29ydGluZ0NvbHVtbi5kaXJlY3Rpb259YCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHRoaXMuY29sdW1ucy5jb25maWd1cmVkKSB7XG4gICAgICAgICAgICBxdWVyeSA9IHtcbiAgICAgICAgICAgICAgLi4ucXVlcnksXG4gICAgICAgICAgICAgIGNvbHVtbnM6IHRoaXMuY29sdW1ucy52aXNpYmxlQ29sdW1uc05hbWVzLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4geyBwYXJhbXMsIHF1ZXJ5IH07XG4gICAgICAgIH0pLFxuICAgICAgICBzd2l0Y2hNYXAoKHsgcGFyYW1zLCBxdWVyeSB9KSA9PiB7XG4gICAgICAgICAgaWYgKCF0aGlzLmNvbHVtbnMuY29sdW1uc0ZldGNoZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbHVtbnMubG9hZFJlbW90ZUNvbHVtbkNvbmZpZ3MoKVxuICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXBUbyh7IHBhcmFtcywgcXVlcnkgfSksXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIG9mKHsgcGFyYW1zLCBxdWVyeSB9KTtcbiAgICAgICAgfSksXG4gICAgICAgIHN3aXRjaE1hcCgoeyBwYXJhbXMsIHF1ZXJ5IH0pID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5iZWZvcmVGZXRjaEZuKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5iZWZvcmVGZXRjaEZuKHF1ZXJ5KVxuICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKGJlZm9yZUZldGNoUXVlcnkpID0+ICh7IHBhcmFtcywgcXVlcnk6IGJlZm9yZUZldGNoUXVlcnkgfSkpLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcblxuICAgICAgICAgICAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBvZih7IHBhcmFtcywgcXVlcnkgfSk7XG4gICAgICAgIH0pLFxuICAgICAgICBzd2l0Y2hNYXAoKHsgcGFyYW1zLCBxdWVyeSB9KSA9PiB7XG4gICAgICAgICAgY29uc3QgcmVtb3RlRmV0Y2ggPSB0aGlzLmZldGNoUmVtb3RlKHF1ZXJ5KVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgICAgICAgICAgdGhpcy5fbG9hZGluZyQubmV4dChmYWxzZSk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0PGFueT4oW29mKHsgcGFyYW1zLCBxdWVyeSB9KSwgcmVtb3RlRmV0Y2hdKTtcbiAgICAgICAgfSksXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgICAgdGhpcy5fbG9hZGluZyQubmV4dChmYWxzZSk7XG5cbiAgICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoW3BhcmFtc1F1ZXJ5LCByZXNwb25zZV0pID0+IHtcbiAgICAgICAgdGhpcy5pbml0aWFsRmV0Y2ggPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fY29tcGxldGVGZXRjaChwYXJhbXNRdWVyeS5wYXJhbXMsIHBhcmFtc1F1ZXJ5LnF1ZXJ5LCByZXNwb25zZSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2xpc3RlblJvd3NSZW1vdmUoKSB7XG4gICAgdGhpcy5kYXRhQ29udHJvbGxlci5yb3dzUmVtb3ZlZCRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgocm93czogYW55W10pID0+IHtcbiAgICAgICAgaWYgKHRoaXMucGFnaW5nLmVuYWJsZWQpIHtcblxuICAgICAgICAgIGNvbnN0IHJlbW92ZWRDb3VudCA9IHJvd3MubGVuZ3RoO1xuXG4gICAgICAgICAgaWYgKHRoaXMucGFnaW5nLmhhc1BhZ2VTdHJhdGVneSkge1xuICAgICAgICAgICAgdGhpcy5fbm9EYXRhUGFnaW5hdGlvblVwZGF0ZShyZW1vdmVkQ291bnQpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBGZXRjaCBtb3JlIGlmIGhhcyBzb21ldGhpbmcgZm9yIGZldGNoXG4gICAgICAgICAgICBpZiAodGhpcy5kYXRhQ29udHJvbGxlci5oYXNEYXRhIHx8IHRoaXMucGFnaW5nLmhhc05leHRQYWdlKSB7XG4gICAgICAgICAgICAgIHRoaXMuZGF0YUNvbnRyb2xsZXIuc2V0T3BlcmF0aW9uKEZzTGlzdFN0YXRlLkxvYWRNb3JlKTtcblxuICAgICAgICAgICAgICB0aGlzLnBhZ2luZy5yZW1vdmVSb3dzKHJlbW92ZWRDb3VudCk7XG4gICAgICAgICAgICAgIHRoaXMuX2ZldGNoJC5uZXh0KHsgbG9hZE9mZnNldDogdHJ1ZSB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMuX25vRGF0YVBhZ2luYXRpb25VcGRhdGUocmVtb3ZlZENvdW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSZW1vdmUgZnJvbSBzZWxlY3Rpb25cbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uKSB7XG4gICAgICAgICAgcm93cy5mb3JFYWNoKChyb3cpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uLnJlbW92ZVJvdyhyb3cuZGF0YSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIExpc3RlciBtYXkgaGF2ZSBvcmlnaW5hbGx5IGhpZGRlbiBjb2x1bW5zLCBidXQgdmlzaWJpbGl0eSBvZiB0aG9zZSBjb2x1bW5zXG4gICAqIGNhbiBiZSBjaGFuZ2VkIHByb2dyYW1tYXRpY2FseSBpbiBhbnkgdGltZVxuICAgKi9cbiAgcHJpdmF0ZSBfbGlzdGVuVmlzaWJsZUNvbHVtbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5jb2x1bW5zLnZpc2libGVDb2x1bW5zJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5fdXBkYXRlU29ydGluZ0NvbHVtbnMoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBhbmQgd2F0Y2ggZmlsdGVyIGNoYW5nZXNcbiAgICovXG4gIHByaXZhdGUgX2luaXRGaWx0ZXJzKCkge1xuICAgIGlmICh0aGlzLmZpbHRlckNvbmZpZykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHNvcnRDb25maWcgPSB0aGlzLnNvcnRpbmcuc29ydGluZ0NvbHVtblxuICAgICAgPyB7IHZhbHVlOiB0aGlzLnNvcnRpbmcuc29ydGluZ0NvbHVtbi5uYW1lLCBkaXJlY3Rpb246IHRoaXMuc29ydGluZy5zb3J0aW5nQ29sdW1uLmRpcmVjdGlvbiB9XG4gICAgICA6IG51bGw7XG5cbiAgICAvLyBDb25maWdcbiAgICB0aGlzLmZpbHRlckNvbmZpZyA9IHtcbiAgICAgIGl0ZW1zOiB0aGlzLmZpbHRlcnMgfHwgW10sXG4gICAgICBzYXZlZEZpbHRlcnM6IHRoaXMuc2F2ZWRGaWx0ZXJzLFxuICAgICAgYWN0aW9uczogdGhpcy5hY3Rpb25zLmFjdGlvbnMsXG4gICAgICBxdWVyeVBhcmFtOiB0aGlzLnF1ZXJ5UGFyYW0sXG4gICAgICBhdXRvZm9jdXM6IHRoaXMuYXV0b0ZvY3VzLFxuICAgICAgc29ydDogc29ydENvbmZpZyxcbiAgICAgIGNoaXBzOiB0aGlzLmNoaXBzLFxuICAgICAgYXV0b1JlbG9hZDogdGhpcy5hdXRvUmVsb2FkLFxuICAgICAgaW5pdDogdGhpcy5fZmlsdGVySW5pdC5iaW5kKHRoaXMpLFxuICAgICAgY2hhbmdlOiB0aGlzLl9maWx0ZXJDaGFuZ2UuYmluZCh0aGlzKSxcbiAgICAgIHJlbG9hZDogdGhpcy5fY29uZmlnLnJlbG9hZCA/PyB0cnVlLFxuICAgICAgc29ydENoYW5nZTogdGhpcy5fZmlsdGVyU29ydC5iaW5kKHRoaXMpLFxuICAgICAgaGVhZGluZzogdGhpcy5oZWFkaW5nLFxuICAgICAgc3ViaGVhZGluZzogdGhpcy5zdWJoZWFkaW5nLFxuICAgIH07XG5cbiAgICBpZih0aGlzLl9wZXJzaXN0YW5jZS5xdWVyeUVuYWJsZWQpIHtcbiAgICAgIHRoaXMuZmlsdGVyQ29uZmlnLnBlcnNpc3QgPSAge1xuICAgICAgICBuYW1lOiB0aGlzLl9wZXJzaXN0YW5jZS5uYW1lLFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGJhY2sgd2hlbiBGaWx0ZXIgaGFzIGJlZW4gaW5pdGlhbGl6ZWRcbiAgICpcbiAgICogQHBhcmFtIGZpbHRlcnNcbiAgICovXG4gIHByaXZhdGUgX2ZpbHRlckluaXQocXVlcnkpIHtcbiAgICBpZiAodGhpcy5maWx0ZXJJbml0Q2IpIHtcbiAgICAgIHRoaXMuZmlsdGVySW5pdENiKHF1ZXJ5KTtcbiAgICB9XG5cbiAgICBxdWVyeSA9IHRoaXMuX3Byb2Nlc3NSZXN0b3JlUXVlcnkocXVlcnkpO1xuXG4gICAgdGhpcy5fZmlsdGVyc1F1ZXJ5Lm5leHQocXVlcnkpO1xuXG4gICAgdGhpcy5maWx0ZXJzUmVhZHkoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsYmFjayB3aGVuIEZpbHRlciBoYXMgYmVlbiBjaGFuZ2VkXG4gICAqXG4gICAqIEBwYXJhbSBxdWVyeVxuICAgKiBAcGFyYW0gc29ydFxuICAgKi9cbiAgcHJpdmF0ZSBfZmlsdGVyQ2hhbmdlKHF1ZXJ5LCBzb3J0KSB7XG4gICAgaWYgKHRoaXMuZmlsdGVyQ2hhbmdlQ2IpIHtcbiAgICAgIHRoaXMuZmlsdGVyQ2hhbmdlQ2IocXVlcnksIHNvcnQpO1xuICAgIH1cblxuICAgIHF1ZXJ5ID0gdGhpcy5fcHJvY2Vzc1Jlc3RvcmVRdWVyeShxdWVyeSk7XG5cbiAgICB0aGlzLl9maWx0ZXJzUXVlcnkubmV4dChxdWVyeSk7XG5cbiAgICBpZiAodGhpcy5yZXN0b3JlICYmIHRoaXMucmVzdG9yZS5yZWxvYWQpIHtcbiAgICAgIHRoaXMucmVsb2FkKCk7XG4gICAgfVxuXG4gICAgdGhpcy5kYXRhQ29udHJvbGxlci5zZXRPcGVyYXRpb24oRnNMaXN0U3RhdGUuRmlsdGVyKTtcblxuICAgIC8vIFJlc2V0IHBhZ2luZyBmb3IgcmVxdWVzdCB3aXRoIGNvcnJlY3Qgb2Zmc2V0XG4gICAgdGhpcy5wYWdpbmcucmVzZXRQYWdpbmcoKTtcbiAgICB0aGlzLl9mZXRjaCQubmV4dChudWxsKTtcbiAgfVxuXG4gIHByaXZhdGUgX3Byb2Nlc3NSZXN0b3JlUXVlcnkocXVlcnkpIHtcbiAgICB0aGlzLnJlc3RvcmVNb2RlID0gZmFsc2U7XG4gICAgLy8gUmVzdG9yZSBvcHRpb25cbiAgICBpZiAodGhpcy5yZXN0b3JlICYmIHF1ZXJ5W3Nob3dEZWxldGVkRmlsdGVyS2V5XSkge1xuICAgICAgcXVlcnkgPSBPYmplY3Qua2V5cyhxdWVyeSlcbiAgICAgICAgLmZpbHRlcigoa2V5KSA9PiBrZXkgIT09IHNob3dEZWxldGVkRmlsdGVyS2V5KVxuICAgICAgICAucmVkdWNlKChhY2MsIGtleSkgPT4ge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5hY2MsXG4gICAgICAgICAgICBba2V5XTogcXVlcnlba2V5XSxcbiAgICAgICAgICB9O1xuICAgICAgICB9LCB7fSk7XG5cbiAgICAgIHF1ZXJ5ID0ge1xuICAgICAgICAuLi5xdWVyeSxcbiAgICAgICAgLi4udGhpcy5yZXN0b3JlLnF1ZXJ5LFxuICAgICAgfTtcblxuICAgICAgdGhpcy5yZXN0b3JlTW9kZSA9IHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHF1ZXJ5O1xuICB9XG5cbiAgLy8gQ2FsbGJhY2sgd2hlbiBGaWx0ZXIgc29ydCBoYXMgYmVlbiBjaGFuZ2VkXG4gIHByaXZhdGUgX2ZpbHRlclNvcnQoZmlsdGVyUXVlcnksIGZpbHRlclNvcnQpIHtcbiAgICBpZiAoZmlsdGVyU29ydCkge1xuICAgICAgdGhpcy5zb3J0aW5nLnNvcnRCeUNvbHVtbldpdGhOYW1lKGZpbHRlclNvcnQudmFsdWUpO1xuXG4gICAgICBjb25zdCBzb3J0RGlyZWN0aW9uID0gZmlsdGVyU29ydC5kaXJlY3Rpb24gPT09ICdhc2MnID8gU29ydGluZ0RpcmVjdGlvbi5hc2MgOiBTb3J0aW5nRGlyZWN0aW9uLmRlc2M7XG4gICAgICB0aGlzLnNvcnRpbmcuc29ydERpcmVjdGlvbihzb3J0RGlyZWN0aW9uKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gRklYTUUgbmVlZCB0byBiZSByZWZhY3RvcmVkLi4uXG4gICAgICB0aGlzLnNvcnRpbmcuc29ydGluZ0NvbHVtbiA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMucmVsb2FkKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY29tcGxldGVGZXRjaChwYXJhbXMsIHF1ZXJ5LCByZXNwb25zZSkge1xuICAgIGlmICghdGhpcy5wYWdpbmcucGFnZSkge1xuICAgICAgdGhpcy5wYWdpbmcucGFnZSA9IDE7XG4gICAgfVxuXG4gICAgaWYgKHJlc3BvbnNlLnBhZ2luZykge1xuICAgICAgY29uc3QgcGFnZVJlY29yZHMgPSAoQXJyYXkuaXNBcnJheShyZXNwb25zZS5kYXRhKSAmJiByZXNwb25zZS5kYXRhLmxlbmd0aCkgfHwgMDtcbiAgICAgIHRoaXMucGFnaW5nLnVwZGF0ZVBhZ2luZyhcbiAgICAgICAgcmVzcG9uc2UucGFnaW5nLFxuICAgICAgICBwYWdlUmVjb3JkcyxcbiAgICAgICAgdGhpcy5kYXRhQ29udHJvbGxlci5vcGVyYXRpb24gPT09IEZzTGlzdFN0YXRlLkxvYWRNb3JlLFxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucGFnaW5nLmVuYWJsZWQpIHtcbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAnJWMgRnNMaXN0IFdhcm5pbmcgJyxcbiAgICAgICAgJ2NvbG9yOiB3aGl0ZTsgYmFja2dyb3VuZC1jb2xvcjogI2ZmY2MwYicsXG4gICAgICAgICdQYWdpbmF0aW9uIGRvZXMgbm90IGNvbmZpZ3VyZWQgcHJvcGVybHkuICcgK1xuICAgICAgICAnUGFnaW5hdGlvbiBpcyBlbmFibGVkLCBidXQgaHR0cCByZXNwb25zZSBkb2VzIG5vdCBjb250YWluIFwicGFnaW5nXCIgZmllbGQuICcgK1xuICAgICAgICAnWW91IGhhdmUgdG8gc2V0IFwicGFnaW5nOiBmYWxzZVwiIGluIGNvbmZpZyBvciBhZGQgXCJwYWdpbmdcIiBmaWVsZCB0byByZXNwb25zZS4nLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLy8gbXVzdCBiZSBiZWZvcmUgc2VsZWN0aW9uLCBiZWNhdXNlIHNlbGV0aW9uIHVzZSByZWNvcmRzXG4gICAgdGhpcy5kYXRhQ29udHJvbGxlci5zZXRSb3dzRnJvbVJlc3BvbnNlKHJlc3BvbnNlLmRhdGEpO1xuICAgIC8vL1xuXG4gICAgdGhpcy5fY29tcGxldGVGZXRjaFVwZGF0ZVNlbGVjdG9uKHJlc3BvbnNlKTtcblxuICAgIGlmICh0aGlzLmVtcHR5U3RhdGU/LnZhbGlkYXRlICYmIHRoaXMuZW1wdHlTdGF0ZVRlbXBsYXRlKSB7XG4gICAgICB0aGlzLmVtcHR5U3RhdGVFbmFibGVkID0gdGhpcy5lbXB0eVN0YXRlLnZhbGlkYXRlKHF1ZXJ5LCBjbG9uZURlZXAodGhpcy5kYXRhQ29udHJvbGxlci52aXNpYmxlUm93c0RhdGEpKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5hZnRlckZldGNoRm4pIHtcbiAgICAgIHRoaXMuYWZ0ZXJGZXRjaEZuKHF1ZXJ5LCB0aGlzLmRhdGFDb250cm9sbGVyLnZpc2libGVSb3dzRGF0YSk7XG4gICAgfVxuXG4gICAgLy8gY2FzZSB3aGVuIGhhdmUgcmVtb3ZlZCBhbGwgcmVzdWx0cyBmcm9tIGxhc3QgcGFnZVxuICAgIGlmICh0aGlzLmRhdGFDb250cm9sbGVyLnZpc2libGVSb3dzLmxlbmd0aCA9PT0gMFxuICAgICAgJiYgdGhpcy5wYWdpbmcucGFnZSA+IDFcbiAgICAgICYmIHRoaXMucGFnaW5nLnBhZ2UgPiB0aGlzLnBhZ2luZy5wYWdlc1xuICAgICkge1xuICAgICAgdGhpcy5wYWdpbmcuZ29MYXN0KCk7XG4gICAgfVxuXG4gICAgdGhpcy5fZmV0Y2hDb21wbGV0ZSQubmV4dCh7IHNjcm9sbEludG9WaWV3OiBwYXJhbXM/LnNjcm9sbEludG9WaWV3IH0pO1xuICAgIHRoaXMuX2xvYWRpbmckLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY29tcGxldGVGZXRjaFVwZGF0ZVNlbGVjdG9uKHJlc3BvbnNlKSB7XG4gICAgLy8gVXBkYXRlIHNlbGVjdGlvbiBwYXJhbXNcbiAgICBpZiAodGhpcy5zZWxlY3Rpb24pIHtcbiAgICAgIGlmICh0aGlzLnBhZ2luZy5lbmFibGVkKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uLnBhZ2VDaGFuZ2VkKCk7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uLnVwZGF0ZVZpc2libGVSZWNvcmRzQ291bnQodGhpcy5wYWdpbmcuZ2V0UGFnZVJlY29yZHMoKSk7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uLnVwZGF0ZVRvdGFsUmVjb3Jkc0NvdW50KHRoaXMucGFnaW5nLnJlY29yZHMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgY291bnQgPSByZXNwb25zZS5wYWdpbmcgJiYgcmVzcG9uc2UucGFnaW5nLnJlY29yZHNcbiAgICAgICAgICB8fCBBcnJheS5pc0FycmF5KHJlc3BvbnNlLmRhdGEpICYmIHJlc3BvbnNlLmRhdGEubGVuZ3RoO1xuXG4gICAgICAgIHRoaXMuc2VsZWN0aW9uLnVwZGF0ZVZpc2libGVSZWNvcmRzQ291bnQoY291bnQpO1xuICAgICAgICB0aGlzLnNlbGVjdGlvbi51cGRhdGVUb3RhbFJlY29yZHNDb3VudChjb3VudCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkUm93c0ludGVyc2VjdGlvbih0aGlzLmRhdGFDb250cm9sbGVyLnZpc2libGVSb3dzRGF0YSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFdpbGwgZG8gc29tZSBhY3Rpb25zIGlmIHlvdSByZW1vdmVkIGl0ZW0gYW5kIGl0ZW0gd2FzIGxhc3Qgb24gaGlzIG93biBwYWdlXG4gICAqXG4gICAqIEV4OiBpZiBsaXN0IGhhcyAzIHBhZ2VzIGFuZCBvbiB0aGlyZCBwYWdlIHlvdSBoYXZlIG9ubHkgb25lIGl0ZW0uIEFuZCB5b3UganVzdCBkZWxldGVkIHRoaXMgaXRlbS5cbiAgICogWW91IG11c3QgZ28gdG8gc2Vjb25kIHBhZ2UsIGJ1dCBpZiBpdCB3YXMgbGFzdCBwYWdlIGFuZCB5b3UgY2FuJ3QgZ28gYmFjayAtPiBqdXN0IHJlbG9hZFxuICAgKlxuICAgKiBAcGFyYW0gZGVsZXRlZENvdW50XG4gICAqL1xuICBwcml2YXRlIF9ub0RhdGFQYWdpbmF0aW9uVXBkYXRlKGRlbGV0ZWRDb3VudCkge1xuICAgIGlmICghdGhpcy5kYXRhQ29udHJvbGxlci5oYXNEYXRhKSB7XG4gICAgICBpZiAodGhpcy5wYWdpbmcucGFnZSA+IDEpIHtcbiAgICAgICAgdGhpcy5wYWdpbmcuZ29Ub1BhZ2UodGhpcy5wYWdpbmcucGFnZSAtIDEgfHwgMSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbG9hZCgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMucGFnaW5nLnJlY29yZHMgLT0gZGVsZXRlZENvdW50O1xuICAgIHRoaXMucGFnaW5nLnVwZGF0ZVBhZ2luYXRpb24oKTtcblxuICAgIGlmICh0aGlzLmRhdGFDb250cm9sbGVyLmhhc0RhdGEgJiYgdGhpcy5zZWxlY3Rpb24pIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uLnVwZGF0ZVZpc2libGVSZWNvcmRzQ291bnQodGhpcy5kYXRhQ29udHJvbGxlci52aXNpYmxlUm93c0NvdW50KTtcbiAgICAgIHRoaXMuc2VsZWN0aW9uLnVwZGF0ZVRvdGFsUmVjb3Jkc0NvdW50KHRoaXMucGFnaW5nLnJlY29yZHMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUZW1wb3Jhcnkgc29sdXRpb24sIHdpbGwgZG8gYXV0byBzdWJzY3JpYmUgaWYgd2FzIHJldHVybmVkIE9ic2VydmFibGUuXG4gICAqXG4gICAqIFRPRE86IE1PVkUgVEhJUyBQRUFDRSBPRiBDT0RFIFRPIFNQRUNJQUwgUExBQ0VcbiAgICpcbiAgICogQHBhcmFtIHJlc3RvcmVDbGlja0NhbGxiYWNrXG4gICAqIEBwYXJhbSByb3dcbiAgICovXG4gIHByaXZhdGUgX3Jlc3RvcmVDbGljayhyZXN0b3JlQ2xpY2tDYWxsYmFjaywgcm93KSB7XG4gICAgY29uc3QgcmVzdG9yZUNsaWNrUmVzdWx0ID0gcmVzdG9yZUNsaWNrQ2FsbGJhY2socm93KTtcblxuICAgIGlmIChyZXN0b3JlQ2xpY2tSZXN1bHQgaW5zdGFuY2VvZiBPYnNlcnZhYmxlKSB7XG4gICAgICByZXN0b3JlQ2xpY2tSZXN1bHRcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6ICgpID0+IHRoaXMucmVsb2FkKCksXG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZVNvcnRpbmdDb2x1bW5zKCk6IHZvaWQge1xuICAgIHRoaXMuc29ydGluZy5jbGVhclNvcnRhYmxlQ29sdW1ucygpO1xuICAgIHRoaXMuY29sdW1ucy5jb2x1bW5zXG4gICAgICAuZmlsdGVyKChjb2x1bW4pID0+IGNvbHVtbi5zb3J0YWJsZSAmJiBjb2x1bW4udmlzaWJsZSlcbiAgICAgIC5mb3JFYWNoKChjb2x1bW4pID0+IHtcbiAgICAgICAgdGhpcy5zb3J0aW5nLmFkZFNvcnRhYmxlQ29sdW1uKGNvbHVtbik7XG4gICAgICB9KTtcbiAgfVxufVxuIl19
|
|
768
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1jb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9jbGFzc2VzL2xpc3QtY29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQ2tFLFFBQVEsR0FDaEYsTUFBTSxvQkFBb0IsQ0FBQztBQUc1QixPQUFPLEVBQ0wsZUFBZSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsT0FBTyxHQUNyRSxNQUFNLE1BQU0sQ0FBQztBQUNkLE9BQU8sRUFDTCxVQUFVLEVBQUUsWUFBWSxFQUN4QixLQUFLLEVBQ0wsR0FBRyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxHQUN6RCxNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFdEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQXVCbEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDNUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFL0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENB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QyxPQUFPLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2xELElBQUksQ0FBQyxTQUFTLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQy9FLElBQUksQ0FBQyxTQUFTLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5RCxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSyxhQUFhLENBQUMsb0JBQW9CLEVBQUUsR0FBRztRQUM3QyxNQUFNLGtCQUFrQixHQUFHLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXJELElBQUksa0JBQWtCLFlBQVksVUFBVSxFQUFFLENBQUM7WUFDN0Msa0JBQWtCO2lCQUNmLElBQUksQ0FDSCxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FDMUI7aUJBQ0EsU0FBUyxDQUFDO2dCQUNULElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO2FBQzFCLENBQUMsQ0FBQztRQUNQLENBQUM7SUFDSCxDQUFDO0lBRU8scUJBQXFCO1FBQzNCLElBQUksQ0FBQyxPQUFPLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUNwQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU87YUFDakIsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUM7YUFDckQsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7XG4gIENoYW5nZUZuLCBGaWx0ZXJDb25maWcsIEZzRmlsdGVyQXV0b1JlbG9hZCwgSUZpbHRlclNhdmVkRmlsdGVyc0NvbmZpZywgSXRlbVR5cGUsXG59IGZyb20gJ0BmaXJlc3RpdGNoL2ZpbHRlcic7XG5pbXBvcnQgeyBTZWxlY3Rpb25EaWFsb2cgfSBmcm9tICdAZmlyZXN0aXRjaC9zZWxlY3Rpb24nO1xuXG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIEVNUFRZLCBmcm9tLCBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBjYXRjaEVycm9yLCBkZWJvdW5jZVRpbWUsXG4gIGRlbGF5LFxuICBtYXAsIG1hcFRvLCBzaGFyZVJlcGxheSwgc3dpdGNoTWFwLCB0YWtlLCB0YWtlVW50aWwsIHRhcCxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5pbXBvcnQgeyBQYWdlQ2hhbmdlVHlwZSB9IGZyb20gJy4uL2VudW1zL3BhZ2UtY2hhbmdlLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBGc0xpc3RTdGF0ZSB9IGZyb20gJy4uL2VudW1zL3N0YXRlLmVudW0nO1xuaW1wb3J0IHtcbiAgRnNMaXN0QWZ0ZXJDb250ZW50SW5pdEZuLFxuICBGc0xpc3RBZnRlckZldGNoRm4sXG4gIEZzTGlzdEFmdGVySW5pdEZuLFxuICBGc0xpc3RCZWZvcmVGZXRjaEZuLFxuICBGc0xpc3RDb25maWcsXG4gIEZzTGlzdEVtcHR5U3RhdGVDb25maWcsXG4gIEZzTGlzdEZldGNoRm4sXG4gIEZzTGlzdEZldGNoT3B0aW9ucyxcbiAgRnNMaXN0RmV0Y2hTdWJzY3JpcHRpb24sXG4gIEZzTGlzdEdyb3VwQ29uZmlnLFxuICBGc0xpc3RMb2FkTW9yZUNvbmZpZyxcbiAgRnNMaXN0Tm9SZXN1bHRzQ29uZmlnLFxuICBGc0xpc3RQZXJzaXRhbmNlLFxuICBGc0xpc3RSZXN0b3JlQ29uZmlnLFxuICBGc0xpc3RSb3dBY3Rpb24sXG4gIEZzTGlzdFJvd0FjdGlvbkdyb3VwLFxuICBGc0xpc3RTZWxlY3Rpb25Db25maWcsXG4gIEZzTGlzdFRyYWNrQnlGbixcbiAgRnNQYWdpbmcsXG4gIFBhZ2VDaGFuZ2UsXG59IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgU29ydGluZ0RpcmVjdGlvbiB9IGZyb20gJy4uL21vZGVscy9jb2x1bW4ubW9kZWwnO1xuaW1wb3J0IHsgU3R5bGVDb25maWcgfSBmcm9tICcuLi9tb2RlbHMvc3R5bGVDb25maWcubW9kZWwnO1xuXG5pbXBvcnQgeyBDb2x1bW5zQ29udHJvbGxlciB9IGZyb20gJy4vY29sdW1ucy1jb250cm9sbGVyJztcbmltcG9ydCB7IERhdGFDb250cm9sbGVyIH0gZnJvbSAnLi9kYXRhLWNvbnRyb2xsZXInO1xuaW1wb3J0IHsgRXh0ZXJuYWxQYXJhbXNDb250cm9sbGVyIH0gZnJvbSAnLi9leHRlcm5hbC1wYXJhbXMtY29udHJvbGxlcic7XG5pbXBvcnQgeyBBY3Rpb25zQ29udHJvbGxlciB9IGZyb20gJy4vaW5kZXgnO1xuaW1wb3J0IHsgUGFnaW5hdGlvbkNvbnRyb2xsZXIgfSBmcm9tICcuL3BhZ2luYXRpb24tY29udHJvbGxlcic7XG5pbXBvcnQgeyBQZXJzaXN0YW5jZUNvbnRyb2xsZXIgfSBmcm9tICcuL3BlcnNpc3RhbmNlLWNvbnRyb2xsZXInO1xuaW1wb3J0IHsgU2VsZWN0aW9uQ29udHJvbGxlciB9IGZyb20gJy4vc2VsZWN0aW9uLWNvbnRyb2xsZXInO1xuaW1wb3J0IHsgU29ydGluZ0NvbnRyb2xsZXIgfSBmcm9tICcuL3NvcnRpbmctY29udHJvbGxlcic7XG5cbmNvbnN0IHNob3dEZWxldGVkRmlsdGVyS2V5ID0gJ3Nob3dEZWxldGVkJztcblxuXG5leHBvcnQgY2xhc3MgTGlzdCB7XG5cbiAgcHVibGljIGhlYWRpbmc6IHN0cmluZztcbiAgcHVibGljIHRyYWNrQnk6IHN0cmluZztcbiAgcHVibGljIHN1YmhlYWRpbmc6IHN0cmluZztcbiAgcHVibGljIGF1dG9Gb2N1czogYm9vbGVhbjtcbiAgcHVibGljIHJvd0hvdmVySGlnaGxpZ2h0OiBib29sZWFuO1xuICBwdWJsaWMgcm93QWN0aW9uc1JhdzogKEZzTGlzdFJvd0FjdGlvbkdyb3VwIHwgRnNMaXN0Um93QWN0aW9uKVtdO1xuICBwdWJsaWMgZ3JvdXBBY3Rpb25zUmF3OiBhbnlbXTtcbiAgcHVibGljIHJvd0NsYXNzO1xuICBwdWJsaWMgcm93RXZlbnRzOiBhbnk7XG4gIHB1YmxpYyByZXN0b3JlOiBGc0xpc3RSZXN0b3JlQ29uZmlnO1xuICBwdWJsaWMgcGVyc2lzdDogRnNMaXN0UGVyc2l0YW5jZTtcbiAgcHVibGljIGZpbHRlcnMgPSBbXTtcbiAgcHVibGljIGZpbHRlckluaXRDYjogQ2hhbmdlRm47XG4gIHB1YmxpYyBmaWx0ZXJDaGFuZ2VDYjogQ2hhbmdlRm47XG4gIHB1YmxpYyBzYXZlZEZpbHRlcnM6IElGaWx0ZXJTYXZlZEZpbHRlcnNDb25maWc7XG4gIHB1YmxpYyBub1Jlc3VsdHM6IEZzTGlzdE5vUmVzdWx0c0NvbmZpZztcbiAgcHVibGljIGVtcHR5U3RhdGU6IEZzTGlzdEVtcHR5U3RhdGVDb25maWc7XG4gIHB1YmxpYyBmZXRjaEZuOiBGc0xpc3RGZXRjaEZuO1xuICBwdWJsaWMgYmVmb3JlRmV0Y2hGbjogRnNMaXN0QmVmb3JlRmV0Y2hGbjtcbiAgcHVibGljIGFmdGVyRmV0Y2hGbjogRnNMaXN0QWZ0ZXJGZXRjaEZuO1xuICBwdWJsaWMgYWZ0ZXJDb250ZW50SW5pdDogRnNMaXN0QWZ0ZXJDb250ZW50SW5pdEZuO1xuICBwdWJsaWMgYWZ0ZXJJbml0OiBGc0xpc3RBZnRlckluaXRGbjtcbiAgcHVibGljIHN0eWxlO1xuICBwdWJsaWMgaGFzUm93QWN0aW9ucztcbiAgcHVibGljIHJvd0FjdGlvbnNIb3ZlciA9IGZhbHNlO1xuICBwdWJsaWMgcGFnaW5nOiBQYWdpbmF0aW9uQ29udHJvbGxlcjtcbiAgcHVibGljIGNvbHVtbnM6IENvbHVtbnNDb250cm9sbGVyO1xuICBwdWJsaWMgYWN0aW9uczogQWN0aW9uc0NvbnRyb2xsZXI7XG4gIHB1YmxpYyBkYXRhQ29udHJvbGxlcjogRGF0YUNvbnRyb2xsZXI7XG4gIHB1YmxpYyBzb3J0aW5nOiBTb3J0aW5nQ29udHJvbGxlcjtcbiAgcHVibGljIGV4dGVybmFsUGFyYW1zOiBFeHRlcm5hbFBhcmFtc0NvbnRyb2xsZXI7XG4gIHB1YmxpYyBzZWxlY3Rpb246IFNlbGVjdGlvbkNvbnRyb2xsZXI7XG4gIHB1YmxpYyBmaWx0ZXJDb25maWc6IEZpbHRlckNvbmZpZyA9IG51bGw7XG4gIHB1YmxpYyBzdGF0dXMgPSB0cnVlO1xuICBwdWJsaWMgY2hpcHMgPSBmYWxzZTtcbiAgcHVibGljIHF1ZXJ5UGFyYW0gPSBmYWxzZTtcbiAgcHVibGljIHJlc3RvcmVNb2RlID0gZmFsc2U7XG4gIHB1YmxpYyBhdXRvUmVsb2FkOiBGc0ZpbHRlckF1dG9SZWxvYWQ7XG4gIHB1YmxpYyBpbml0aWFsRmV0Y2ggPSB0cnVlO1xuICBwdWJsaWMgZW1wdHlTdGF0ZUVuYWJsZWQgPSBmYWxzZTtcbiAgcHVibGljIGVtcHR5U3RhdGVUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBwcml2YXRlIF9sb2FkaW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICBwcml2YXRlIF9mZXRjaENvbXBsZXRlJCA9IG5ldyBTdWJqZWN0PHsgc2Nyb2xsSW50b1ZpZXc/OiBib29sZWFuIH0+KCk7XG4gIHByaXZhdGUgX2ZpbHRlcnNSZWFkeSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XG4gIHByaXZhdGUgX2luaXRpYWxpemVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICBwcml2YXRlIF9mZXRjaCQgPSBuZXcgU3ViamVjdDxGc0xpc3RGZXRjaFN1YnNjcmlwdGlvbiB8IHZvaWQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZpbHRlcnNRdWVyeSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UmVjb3JkPHN0cmluZywgYW55Pj4obnVsbCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2hlYWRlckNvbmZpZzogU3R5bGVDb25maWc7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2dyb3VwQ2VsbENvbmZpZzogU3R5bGVDb25maWc7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2NlbGxDb25maWc6IFN0eWxlQ29uZmlnO1xuICBwcml2YXRlIHJlYWRvbmx5IF9mb290ZXJDb25maWc6IFN0eWxlQ29uZmlnO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2VsOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgX2NvbmZpZzogRnNMaXN0Q29uZmlnID0ge30sXG4gICAgcHJpdmF0ZSBfc2VsZWN0aW9uRGlhbG9nOiBTZWxlY3Rpb25EaWFsb2csXG4gICAgcHJpdmF0ZSBfcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgX3BlcnNpc3RhbmNlOiBQZXJzaXN0YW5jZUNvbnRyb2xsZXIsXG4gICAgcHJpdmF0ZSBfaW5EaWFsb2c6IGJvb2xlYW4sXG4gICkge1xuICAgIHRoaXMuY29sdW1ucyA9IG5ldyBDb2x1bW5zQ29udHJvbGxlcih0aGlzLl9wZXJzaXN0YW5jZSk7XG4gICAgdGhpcy5hY3Rpb25zID0gbmV3IEFjdGlvbnNDb250cm9sbGVyKCk7XG4gICAgdGhpcy5wYWdpbmcgPSBuZXcgUGFnaW5hdGlvbkNvbnRyb2xsZXIoKTtcbiAgICB0aGlzLmRhdGFDb250cm9sbGVyID0gbmV3IERhdGFDb250cm9sbGVyKCk7XG4gICAgdGhpcy5zb3J0aW5nID0gbmV3IFNvcnRpbmdDb250cm9sbGVyKCk7XG5cbiAgICB0aGlzLl9pbml0aWFsaXplKF9jb25maWcpO1xuICAgIHRoaXMuX2hlYWRlckNvbmZpZyA9IG5ldyBTdHlsZUNvbmZpZyhfY29uZmlnLmhlYWRlcik7XG4gICAgdGhpcy5fZ3JvdXBDZWxsQ29uZmlnID0gbmV3IFN0eWxlQ29uZmlnKF9jb25maWcuY2VsbCk7XG4gICAgdGhpcy5fY2VsbENvbmZpZyA9IG5ldyBTdHlsZUNvbmZpZyhfY29uZmlnLmNlbGwpO1xuICAgIHRoaXMuX2Zvb3RlckNvbmZpZyA9IG5ldyBTdHlsZUNvbmZpZyhfY29uZmlnLmZvb3Rlcik7XG4gICAgdGhpcy5faW5pdGlhbGl6ZWQkLm5leHQodHJ1ZSk7XG4gICAgdGhpcy5zdWJzY3JpYmUoKTtcblxuICAgIGlmICh0aGlzLmluaXRpYWxGZXRjaCkge1xuICAgICAgdGhpcy5kYXRhQ29udHJvbGxlci5zZXRPcGVyYXRpb24oRnNMaXN0U3RhdGUuTG9hZCk7XG4gICAgICB0aGlzLl9mZXRjaCQubmV4dChudWxsKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGxvYWRpbmckKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLl9sb2FkaW5nJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBmaWx0ZXJzUmVhZHkoKSB7XG4gICAgdGhpcy5fZmlsdGVyc1JlYWR5JC5uZXh0KG51bGwpO1xuICB9XG5cbiAgcHVibGljIGdldCBmaWx0ZXJzUmVhZHkkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLl9maWx0ZXJzUmVhZHkkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBmZXRjaCQoKTogT2JzZXJ2YWJsZTxGc0xpc3RGZXRjaFN1YnNjcmlwdGlvbiB8IHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5fZmV0Y2gkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBmZXRjaENvbXBsZXRlJCgpOiBPYnNlcnZhYmxlPHsgc2Nyb2xsSW50b1ZpZXc/OiBib29sZWFuIH0+IHtcbiAgICByZXR1cm4gdGhpcy5fZmV0Y2hDb21wbGV0ZSQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhhc1NhdmVkRmlsdGVycygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmZpbHRlckNvbmZpZy5zYXZlZEZpbHRlcnM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGZpbHRlcnNRdWVyeSgpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVyc1F1ZXJ5LmdldFZhbHVlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGZpbHRlcnNRdWVyeSQoKTogT2JzZXJ2YWJsZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbHRlcnNRdWVyeS5hc09ic2VydmFibGUoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgodikgPT4gdiB8fCB7fSksXG4gICAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCBhY3RpdmVGaWx0ZXJzQ291bnQkKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyc1F1ZXJ5JFxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgodikgPT4ge1xuICAgICAgICAgIHJldHVybiBPYmplY3Qua2V5cyh2KVxuICAgICAgICAgICAgLmZpbHRlcigoa2V5KSA9PiBrZXkgIT09ICdvcmRlcicpO1xuICAgICAgICB9KSxcbiAgICAgICAgbWFwKCh2KSA9PiB2Lmxlbmd0aCksXG4gICAgICAgIHNoYXJlUmVwbGF5KCksXG4gICAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCBkZXN0cm95JCgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLl9kZXN0cm95JDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaW5pdGlhbGl6ZWQkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLl9pbml0aWFsaXplZCQ7XG4gIH1cblxuICBwdWJsaWMgZmV0Y2hSZW1vdGUocXVlcnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IG9wdGlvbnM6IEZzTGlzdEZldGNoT3B0aW9ucyA9IHtcbiAgICAgIHN0YXRlOiB0aGlzLmRhdGFDb250cm9sbGVyLm9wZXJhdGlvbixcbiAgICB9O1xuXG4gICAgY29uc3QgcmVzdWx0OiBhbnkgPSB0aGlzLmZldGNoRm4ocXVlcnksIG9wdGlvbnMpO1xuXG4gICAgcmV0dXJuIHJlc3VsdCBpbnN0YW5jZW9mIFByb21pc2UgPyBmcm9tKHJlc3VsdCkgOiByZXN1bHQ7XG4gIH1cblxuICAvLyBwdWJsaWMgbG9hZExvY2FsKCkge1xuICAvLyAgIHRoaXMucGFnaW5nLnVwZGF0ZVBhZ2luZ01hbnVhbCh0aGlzLl9yb3dzKTtcbiAgLy8gICBjb25zdCBmcm9tID0gKHRoaXMucGFnaW5nLnBhZ2UgLSAxKSAqIHRoaXMucGFnaW5nLmxpbWl0O1xuICAvLyAgIGNvbnN0IHRvID0gKHRoaXMucGFnaW5nLnBhZ2UgPT09IDEpID8gdGhpcy5wYWdpbmcubGltaXQgOiB0aGlzLnBhZ2luZy5saW1pdCAqIHRoaXMucGFnaW5nLnBhZ2U7XG4gIC8vICAgY29uc3Qgc2xpY2VPZlJvd3MgPSB0aGlzLl9yb3dzLnNsaWNlKGZyb20sIHRvKTtcbiAgLy8gICB0aGlzLmRhdGEkLm5leHQoc2xpY2VPZlJvd3MpO1xuICAvLyB9XG5cbiAgLyoqXG4gICAqIFRyYW5zZm9ybSB0ZW1wbGF0ZXMgZm9yIHVzaW5nXG4gICAqXG4gICAqIEBwYXJhbSB0ZW1wbGF0ZXNcbiAgICovXG4gIHB1YmxpYyB0cmFuZm9ybVRlbXBsYXRlc1RvQ29sdW1ucyh0ZW1wbGF0ZXMpIHtcbiAgICBjb25zdCBkZWZhdWx0Q29uZmlncyA9IHtcbiAgICAgIGhlYWRlcjogdGhpcy5faGVhZGVyQ29uZmlnLFxuICAgICAgZ3JvdXBDZWxsOiB0aGlzLl9ncm91cENlbGxDb25maWcsXG4gICAgICBjZWxsOiB0aGlzLl9jZWxsQ29uZmlnLFxuICAgICAgZm9vdGVyOiB0aGlzLl9mb290ZXJDb25maWcsXG4gICAgfTtcblxuICAgIHRoaXMuY29sdW1ucy5zZXREZWZhdWx0cyhkZWZhdWx0Q29uZmlncyk7XG4gICAgdGhpcy5jb2x1bW5zLmluaXRpYWxpemVDb2x1bW5zKHRlbXBsYXRlcyk7XG5cbiAgICAvLyBTZXQgc29ydEJ5IGRlZmF1bHQgY29sdW1uXG4gICAgdGhpcy5fdXBkYXRlU29ydGluZ0NvbHVtbnMoKTtcblxuICAgIC8vIERlZmF1bHQgc29ydCBieVxuICAgIGNvbnN0IGV4dGVybmFsU29ydGluZyA9IHRoaXMuZXh0ZXJuYWxQYXJhbXMuZXh0ZXJuYWxTb3J0aW5nO1xuICAgIGNvbnN0IGluaXRpYWxTb3J0Q29uZmlnID0gZXh0ZXJuYWxTb3J0aW5nIHx8IHRoaXMuX2NvbmZpZy5zb3J0O1xuICAgIHRoaXMuc29ydGluZy5pbml0aWFsU29ydEJ5KGluaXRpYWxTb3J0Q29uZmlnKTtcblxuICAgIGlmIChleHRlcm5hbFNvcnRpbmcgJiYgIXRoaXMuc29ydGluZy5pc0RlZmluZWQpIHtcbiAgICAgIHRoaXMuZXh0ZXJuYWxQYXJhbXMuY2xlYXJTb3J0aW5nUGFyYW1zKCk7XG5cbiAgICAgIGNvbnNvbGUud2FybignTm90IGFibGUgdG8gcmVzdG9yZSBwZXJzaXN0ZWQgc29ydGluZyBwYXJhbXMuJywgZXh0ZXJuYWxTb3J0aW5nKTtcbiAgICB9XG5cbiAgICB0aGlzLl9pbml0RmlsdGVycygpO1xuICB9XG5cbiAgcHVibGljIHJlbG9hZCgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHRoaXMuX2xvYWRpbmckLm5leHQodHJ1ZSk7XG4gICAgdGhpcy5kYXRhQ29udHJvbGxlci5zZXRPcGVyYXRpb24oRnNMaXN0U3RhdGUuUmVsb2FkKTtcbiAgICB0aGlzLl9mZXRjaCQubmV4dChudWxsKTtcblxuICAgIHJldHVybiB0aGlzLl9mZXRjaENvbXBsZXRlJFxuICAgICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgZGVsYXkoMCksXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFdhdGNoIHBhZ2UgY2hhbmdlc1xuICAgKi9cbiAgcHVibGljIHN1YnNjcmliZSgpIHtcbiAgICB0aGlzLnBhZ2luZy5wYWdlQ2hhbmdlZCRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKGV2ZW50OiBQYWdlQ2hhbmdlKSA9PiB7XG4gICAgICAgICAgdGhpcy5kYXRhQ29udHJvbGxlci5zZXRPcGVyYXRpb24oRnNMaXN0U3RhdGUuUGFnZUNoYW5nZSk7XG5cbiAgICAgICAgICAvLyBSZW1vdmUgYWxsIHJvd3MgaWYgbGltaXRzIHdhcyBjaGFuZ2VkXG4gICAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IFBhZ2VDaGFuZ2VUeXBlLkxpbWl0Q2hhbmdlZCAmJiB0aGlzLnBhZ2luZy5oYXNQYWdlU3RyYXRlZ3kpIHtcbiAgICAgICAgICAgIHRoaXMuZGF0YUNvbnRyb2xsZXIuY2xlYXJSb3dzKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHRoaXMucGFnaW5nLmhhc09mZnNldFN0cmF0ZWd5KSB7XG4gICAgICAgICAgICB0aGlzLnBhZ2luZy51cGRhdGVQYWdpbmF0aW9uKCk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGlvbikge1xuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbi51cGRhdGVWaXNpYmxlUmVjb3Jkc0NvdW50KHRoaXMucGFnaW5nLmdldFBhZ2VSZWNvcmRzKCkpO1xuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbi51cGRhdGVUb3RhbFJlY29yZHNDb3VudCh0aGlzLnBhZ2luZy5yZWNvcmRzKTtcbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24ucGFnZUNoYW5nZWQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICBzd2l0Y2hNYXAoKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLl9mZXRjaCQubmV4dChudWxsKTtcbiAgICAgICAgICBpZiAoIXRoaXMucGFnaW5nLmxvYWRNb3JlRW5hYmxlZCkge1xuICAgICAgICAgICAgY29uc3QgY29udGFpbnMgPSBbXS5zbGljZS5jYWxsKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5jZGstb3ZlcmxheS1jb250YWluZXInKSlcbiAgICAgICAgICAgICAgLnNvbWUoKG92ZXJsYXkpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fZWwubmF0aXZlRWxlbWVudC5jb250YWlucyhvdmVybGF5KTtcbiAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGxldCBlbCA9IHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgICAgIGlmICghY29udGFpbnMpIHtcbiAgICAgICAgICAgICAgY29uc3QgcmVjdCA9IHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICAgIGlmICgoTnVtYmVyKHJlY3QudG9wIHx8IDApICsgd2luZG93LnBhZ2VZT2Zmc2V0KSA8IHdpbmRvdy5pbm5lckhlaWdodCkge1xuICAgICAgICAgICAgICAgIGVsID0gZG9jdW1lbnQuYm9keTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZmV0Y2hDb21wbGV0ZSRcbiAgICAgICAgICAgICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmKGV2ZW50Py5zY3JvbGxJbnRvVmlldyA/PyB0cnVlKSB7XG4gICAgICAgICAgICAgICAgICAgIGVsLnNjcm9sbEludG9WaWV3KHsgYmVoYXZpb3I6ICdzbW9vdGgnIH0pO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLnNvcnRpbmcuc29ydGluZ0NoYW5nZWQkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmRhdGFDb250cm9sbGVyLnNldE9wZXJhdGlvbihGc0xpc3RTdGF0ZS5Tb3J0KTtcbiAgICAgICAgdGhpcy5wYWdpbmcucGFnZSA9IDE7XG4gICAgICAgIHRoaXMuX2ZldGNoJC5uZXh0KG51bGwpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLl9saXN0ZW5WaXNpYmxlQ29sdW1uQ2hhbmdlcygpO1xuICAgIHRoaXMuX2xpc3RlblJvd3NSZW1vdmUoKTtcbiAgICB0aGlzLl9saXN0ZW5GZXRjaCgpO1xuICB9XG5cbiAgcHVibGljIGdldERhdGEodHJhY2tCeT86IEZzTGlzdFRyYWNrQnlGbikge1xuICAgIGxldCByb3dzRGF0YSA9IHRoaXMuZGF0YUNvbnRyb2xsZXJcbiAgICAgIC52aXNpYmxlUm93c0RhdGE7XG5cbiAgICBpZiAodHJhY2tCeSkge1xuICAgICAgcm93c0RhdGEgPSByb3dzRGF0YVxuICAgICAgICAuZmlsdGVyKHRyYWNrQnkpO1xuICAgIH1cblxuICAgIHJldHVybiByb3dzRGF0YVxuICAgICAgLm1hcCgoZGF0YSkgPT4ge1xuICAgICAgICByZXR1cm4gY2xvbmVEZWVwKGRhdGEpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgaGFzRGF0YSh0cmFja0J5OiBGc0xpc3RUcmFja0J5Rm4pIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhQ29udHJvbGxlci52aXNpYmxlUm93c0RhdGEuc29tZSh0cmFja0J5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUb2dnbGUgZ3JvdXAgbW9kZSBzdGF0dXNcbiAgICpcbiAgICogQHBhcmFtIHZhbHVlXG4gICAqL1xuICBwdWJsaWMgZ3JvdXBFbmFibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKHRoaXMuZGF0YUNvbnRyb2xsZXIuZ3JvdXBFbmFibGVkICE9PSB2YWx1ZSkge1xuICAgICAgdGhpcy5kYXRhQ29udHJvbGxlci5ncm91cEVuYWJsZWQgPSB2YWx1ZTtcblxuICAgICAgLy8gQ29tbWVudGVkIG91dCBiZWNhdXNlIFJheSB3YW50cyB0byBjaGFuZ2UgZ3JvdXAgc3RhdHVzIGluIGZldGNoIG1hcCBwaXBlXG4gICAgICAvLyBhbmQgaXQgdHJpZ2dlcnMgZXh0cmEgcmVxdWVzdHNcbiAgICAgIC8vIHRoaXMucmVsb2FkKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMucGFnaW5nKSB7XG4gICAgICB0aGlzLnBhZ2luZy5kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc29ydGluZykge1xuICAgICAgdGhpcy5zb3J0aW5nLmRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zZWxlY3Rpb24pIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uLmRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5maWx0ZXJDb25maWcpIHtcbiAgICAgIHRoaXMuZmlsdGVyQ29uZmlnID0gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5leHRlcm5hbFBhcmFtcykge1xuICAgICAgdGhpcy5leHRlcm5hbFBhcmFtcy5kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgdGhpcy5jb2x1bW5zLmRlc3Ryb3koKTtcblxuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQobnVsbCk7XG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcblxuICAgIHRoaXMuZGF0YUNvbnRyb2xsZXIuZGVzdHJveSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIERvIGluaXRpYWxpemF0aW9uIG9mIHRhYmxlXG4gICAqXG4gICAqIEBwYXJhbSBjb25maWdcbiAgICovXG4gIHByaXZhdGUgX2luaXRpYWxpemUoY29uZmlnOiBGc0xpc3RDb25maWcpIHtcbiAgICB0aGlzLl9pbml0VmFyaWFibGVzKGNvbmZpZyk7XG4gICAgdGhpcy5faW5pdERlZmF1bHRPcHRpb25zKGNvbmZpZyk7XG4gICAgdGhpcy5faW5pdFJlc3RvcmUoKTtcbiAgICB0aGlzLl9pbml0QWN0aW9ucyhjb25maWcpO1xuICAgIHRoaXMuX2luaXRQYWdpbmcoY29uZmlnLnBhZ2luZywgY29uZmlnLmxvYWRNb3JlKTtcbiAgICB0aGlzLl9pbml0U2VsZWN0aW9uKGNvbmZpZy5zZWxlY3Rpb24sIHRoaXMuX3NlbGVjdGlvbkRpYWxvZyk7XG4gICAgdGhpcy5faW5pdEdyb3Vwcyhjb25maWcuZ3JvdXApO1xuICAgIHRoaXMuX2luaXRFeHRlcm5hbFBhcmFtc0NvbnRyb2xsZXIoKTtcbiAgICB0aGlzLl9pbml0aWFsaXplRGF0YSgpO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1zdGF0ZW1lbnRzXG4gIHByaXZhdGUgX2luaXRWYXJpYWJsZXMoY29uZmlnOiBGc0xpc3RDb25maWcpIHtcbiAgICB0aGlzLmF1dG9Gb2N1cyA9IGNvbmZpZy5hdXRvRm9jdXM7XG4gICAgdGhpcy5yb3dIb3ZlckhpZ2hsaWdodCA9IGNvbmZpZy5yb3dIb3ZlckhpZ2hsaWdodCA/PyB0cnVlO1xuICAgIHRoaXMuaGVhZGluZyA9IGNvbmZpZy5oZWFkaW5nO1xuICAgIHRoaXMudHJhY2tCeSA9IGNvbmZpZy50cmFja0J5O1xuICAgIHRoaXMuc3ViaGVhZGluZyA9IGNvbmZpZy5zdWJoZWFkaW5nO1xuICAgIHRoaXMucm93QWN0aW9uc1JhdyA9IGNvbmZpZy5yb3dBY3Rpb25zO1xuICAgIHRoaXMucm93Q2xhc3MgPSBjb25maWcucm93Q2xhc3M7XG4gICAgdGhpcy5yb3dFdmVudHMgPSBjb25maWcucm93RXZlbnRzO1xuICAgIHRoaXMucmVzdG9yZSA9IGNvbmZpZy5yZXN0b3JlO1xuICAgIHRoaXMucGVyc2lzdCA9IGNvbmZpZy5wZXJzaXN0O1xuICAgIHRoaXMuZmlsdGVycyA9IGNvbmZpZy5maWx0ZXJzID8/IFtdO1xuICAgIHRoaXMuZmlsdGVySW5pdENiID0gY29uZmlnLmZpbHRlckluaXQ7XG4gICAgdGhpcy5maWx0ZXJDaGFuZ2VDYiA9IGNvbmZpZy5maWx0ZXJDaGFuZ2U7XG4gICAgdGhpcy5zYXZlZEZpbHRlcnMgPSBjb25maWcuc2F2ZWRGaWx0ZXJzO1xuICAgIHRoaXMubm9SZXN1bHRzID0gY29uZmlnLm5vUmVzdWx0cztcbiAgICB0aGlzLmVtcHR5U3RhdGUgPSBjb25maWcuZW1wdHlTdGF0ZTtcbiAgICB0aGlzLmZldGNoRm4gPSBjb25maWcuZmV0Y2g7XG4gICAgdGhpcy5hZnRlckZldGNoRm4gPSBjb25maWcuYWZ0ZXJGZXRjaDtcbiAgICB0aGlzLmJlZm9yZUZldGNoRm4gPSBjb25maWcuYmVmb3JlRmV0Y2g7XG4gICAgdGhpcy5hZnRlckluaXQgPSBjb25maWcuYWZ0ZXJJbml0O1xuICAgIHRoaXMuc3R5bGUgPSBjb25maWcuc3R5bGU7XG4gICAgdGhpcy5hdXRvUmVsb2FkID0gY29uZmlnLmF1dG9SZWxvYWQ7XG4gICAgdGhpcy5jb2x1bW5zLmluaXRDb25maWcoY29uZmlnLmNvbHVtbik7XG4gIH1cblxuICAvKipcbiAgICogSnVzdCBpbml0IG9wdGlvbnMgYnkgZGVmYXVsdCBpdCBpdCB3YXNuJ3Qgc3BlY2lmaWVkXG4gICAqXG4gICAqIEBwYXJhbSBjb25maWdcbiAgICovXG4gIHByaXZhdGUgX2luaXREZWZhdWx0T3B0aW9ucyhjb25maWcpIHtcbiAgICAvLyBXZSBzaG91bGQgcHJldmVudCBpbml0aWFsIGZldGNoIGluIGNhc2VzIHdoZW4gaXQgd2lsbCBiZSBmZXRjaGVkIGluIGFueSBjYXNlXG4gICAgLy8gQXMgZXguIHNjcm9sbGFibGUgb3IgZmlsdGVyIHdpbGwgZG8gZmV0Y2ggaW4gYW55IGNhc2VzXG4gICAgaWYgKGNvbmZpZy5pbml0aWFsRmV0Y2ggPT09IGZhbHNlIHx8IGNvbmZpZy5zY3JvbGxhYmxlKSB7IC8vIFRPRE8gZml4bWUgYWZ0ZXIgdHNtb2RlbCB2ZXJzaW9uIHVwZGF0ZVxuICAgICAgdGhpcy5pbml0aWFsRmV0Y2ggPSBmYWxzZTtcbiAgICB9XG4gICAgaWYgKGNvbmZpZy5zdGF0dXMgPT09IGZhbHNlKSB7XG4gICAgICB0aGlzLnN0YXR1cyA9IGZhbHNlO1xuICAgIH1cbiAgICBpZiAoY29uZmlnLmNoaXBzKSB7XG4gICAgICB0aGlzLmNoaXBzID0gY29uZmlnLmNoaXBzO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9pbkRpYWxvZykge1xuICAgICAgdGhpcy5xdWVyeVBhcmFtID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucXVlcnlQYXJhbSA9IChjb25maWcucXVlcnlQYXJhbSA9PT0gdW5kZWZpbmVkKVxuICAgICAgICA/IHRydWVcbiAgICAgICAgOiBjb25maWcucXVlcnlQYXJhbTtcbiAgICB9XG5cbiAgICBpZiAoY29uZmlnLnNvcnRzKSB7XG4gICAgICB0aGlzLnNvcnRpbmcuaW5pdEZha2VDb2x1bW5zKGNvbmZpZy5zb3J0cyk7XG4gICAgfVxuICAgIGlmICghY29uZmlnLnRyYWNrQnkpIHtcbiAgICAgIHRoaXMudHJhY2tCeSA9ICdpZCc7XG4gICAgfVxuXG4gICAgaWYgKGNvbmZpZy5hZnRlckNvbnRlbnRJbml0KSB7XG4gICAgICB0aGlzLmFmdGVyQ29udGVudEluaXQgPSAoKSA9PiB7XG4gICAgICAgIGNvbmZpZy5hZnRlckNvbnRlbnRJbml0KHRoaXMucGFnaW5nLnF1ZXJ5LCB0aGlzLmRhdGFDb250cm9sbGVyLnZpc2libGVSb3dzKTtcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEluaXQgcmVzdG9yZSByb3cgYWN0aW9uIGFuZCBhcHBlbmQgU2hvdyBEZWxldGVkIG9wdGlvbiBpbnRvIGZpbHRlcnNcbiAgICovXG4gIHByaXZhdGUgX2luaXRSZXN0b3JlKCkge1xuICAgIGlmICh0aGlzLnJlc3RvcmUpIHtcbiAgICAgIGNvbnN0IHJlc3RvcmVBY3Rpb24gPSB7XG4gICAgICAgIGxhYmVsOiB0aGlzLnJlc3RvcmUubWVudUxhYmVsIHx8ICdSZXN0b3JlJyxcbiAgICAgICAgbWVudTogdHJ1ZSxcbiAgICAgICAgY2xpY2s6IChyb3cpID0+IHtcbiAgICAgICAgICB0aGlzLl9yZXN0b3JlQ2xpY2sodGhpcy5yZXN0b3JlLmNsaWNrLCByb3cpO1xuICAgICAgICB9LCAvLyBUT0RPIGZpeCBtZSwgbW92ZSB0byBzcGVjaWFsIGZpbGVcbiAgICAgICAgcmVzdG9yZTogdHJ1ZSxcbiAgICAgIH07XG5cbiAgICAgIGlmICghdGhpcy5yb3dBY3Rpb25zUmF3KSB7XG4gICAgICAgIHRoaXMucm93QWN0aW9uc1JhdyA9IFtdO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnJvd0FjdGlvbnNSYXcucHVzaChyZXN0b3JlQWN0aW9uKTtcbiAgICAgIHRoaXMuZmlsdGVycyA9IHRoaXMuZmlsdGVycyB8fCBbXTtcblxuICAgICAgaWYgKHRoaXMucmVzdG9yZS5maWx0ZXIgIT09IGZhbHNlKSB7XG4gICAgICAgIHRoaXMuZmlsdGVycy5wdXNoKHtcbiAgICAgICAgICBuYW1lOiBzaG93RGVsZXRlZEZpbHRlcktleSxcbiAgICAgICAgICB0eXBlOiBJdGVtVHlwZS5DaGVja2JveCxcbiAgICAgICAgICBsYWJlbDogdGhpcy5yZXN0b3JlLmZpbHRlckxhYmVsIHx8ICdTaG93IERlbGV0ZWQnLFxuICAgICAgICAgIGRlZmF1bHQ6IG51bGwsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICB9XG5cbiAgLyoqXG4gICAqIEluaXQgcGFnaW5nXG4gICAqXG4gICAqIEBwYXJhbSBwYWdpbmdDb25maWdcbiAgICogQHBhcmFtIGxvYWRNb3JlXG4gICAqL1xuICBwcml2YXRlIF9pbml0UGFnaW5nKHBhZ2luZ0NvbmZpZzogRnNQYWdpbmcgfCBmYWxzZSwgbG9hZE1vcmU6IEZzTGlzdExvYWRNb3JlQ29uZmlnIHwgYm9vbGVhbikge1xuICAgIHRoaXMucGFnaW5nLmluaXRXaXRoQ29uZmlnKHBhZ2luZ0NvbmZpZywgbG9hZE1vcmUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwbGl0IGFjdGlvbnMgYnkgY2F0ZWdvcmllc1xuICAgKi9cbiAgcHJpdmF0ZSBfaW5pdEFjdGlvbnMoY29uZmlnKSB7XG4gICAgaWYgKGNvbmZpZy5hY3Rpb25zKSB7XG4gICAgICB0aGlzLmFjdGlvbnMuc2V0QWN0aW9ucyhjb25maWcuYWN0aW9ucyk7XG4gICAgfVxuXG4gICAgdGhpcy5yb3dBY3Rpb25zSG92ZXIgPSBjb25maWcucm93QWN0aW9uc0hvdmVyID8/IGZhbHNlO1xuXG4gICAgdGhpcy5oYXNSb3dBY3Rpb25zID1cbiAgICAgICh0aGlzLnJvd0FjdGlvbnNSYXcgJiYgdGhpcy5yb3dBY3Rpb25zUmF3Lmxlbmd0aCA+IDApXG4gICAgICB8fCAodGhpcy5ncm91cEFjdGlvbnNSYXcgJiYgdGhpcy5ncm91cEFjdGlvbnNSYXcubGVuZ3RoID4gMCk7XG4gIH1cblxuICBwcml2YXRlIF9pbml0U2VsZWN0aW9uKFxuICAgIHNlbGVjdGlvbkNvbmZpZzogRnNMaXN0U2VsZWN0aW9uQ29uZmlnLFxuICAgIHNlbGVjdGlvbkRpYWxvZzogU2VsZWN0aW9uRGlhbG9nLFxuICApIHtcbiAgICBpZiAoc2VsZWN0aW9uQ29uZmlnKSB7XG4gICAgICB0aGlzLnNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb25Db250cm9sbGVyKHNlbGVjdGlvbkNvbmZpZywgdGhpcy50cmFja0J5LCBzZWxlY3Rpb25EaWFsb2cpO1xuICAgICAgdGhpcy5zZWxlY3Rpb24uc2V0Um93c0NhbGxiYWNrKCgpID0+IHRoaXMuZGF0YUNvbnRyb2xsZXIudmlzaWJsZVJvd3MpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2luaXRpYWxpemVEYXRhKCkge1xuICAgIHRoaXMuZGF0YUNvbnRyb2xsZXIuc2V0QWRkaXRpb25hbENvbmZpZ3Moe1xuICAgICAgbG9hZE1vcmVFbmFibGVkOiB0aGlzLnBhZ2luZy5sb2FkTW9yZUVuYWJsZWQsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9pbml0R3JvdXBzKGdyb3VwQ29uZmlnOiBGc0xpc3RHcm91cENvbmZpZykge1xuICAgIGlmIChncm91cENvbmZpZykge1xuICAgICAgdGhpcy5kYXRhQ29udHJvbGxlci5zZXRHcm91cENvbmZpZyhncm91cENvbmZpZyk7XG4gICAgICB0aGlzLmdyb3VwQWN0aW9uc1JhdyA9IGdyb3VwQ29uZmlnLmFjdGlvbnM7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdEV4dGVybmFsUGFyYW1zQ29udHJvbGxlcigpIHtcbiAgICB0aGlzLmV4dGVybmFsUGFyYW1zID0gbmV3IEV4dGVybmFsUGFyYW1zQ29udHJvbGxlcihcbiAgICAgIHRoaXMuX3JvdXRlLFxuICAgICAgdGhpcy5fcGVyc2lzdGFuY2UsXG4gICAgICB0aGlzLnBhZ2luZyxcbiAgICAgIHRoaXMuc29ydGluZyxcbiAgICAgIHRoaXMucXVlcnlQYXJhbSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFN1YnNjcmliZSB0byBmZXRjaCQgZXZlbnQgd2l0aCBkZWJvdW5jZVxuICAgKi9cbiAgcHJpdmF0ZSBfbGlzdGVuRmV0Y2goKSB7XG4gICAgbGV0IGZldGNoJCA9IHRoaXMuZmV0Y2gkO1xuXG4gICAgLy8gU2hvdWxkIHdhaXQgdW50aWwgc2F2ZWQgZmlsdGVycyBub3QgbG9hZGVkXG4gICAgaWYgKHRoaXMuZmlsdGVycykge1xuICAgICAgZmV0Y2gkID0gY29tYmluZUxhdGVzdChbZmV0Y2gkLCB0aGlzLl9maWx0ZXJzUmVhZHkkXSlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChbcGFyYW1zXSkgPT4gcGFyYW1zKSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBmZXRjaCRcbiAgICAgIC5waXBlKFxuICAgICAgICBkZWJvdW5jZVRpbWUoNTApLFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX2xvYWRpbmckLm5leHQodHJ1ZSk7XG4gICAgICAgIH0pLFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuc2VsZWN0aW9uPy5jbG9zZVNlbGVjdGlvbkRpYWxvZygpO1xuICAgICAgICB9KSxcbiAgICAgICAgbWFwKChwYXJhbXM6IEZzTGlzdEZldGNoU3Vic2NyaXB0aW9uKSA9PiB7XG4gICAgICAgICAgbGV0IHF1ZXJ5ID0geyAuLi50aGlzLmZpbHRlcnNRdWVyeSB9O1xuXG4gICAgICAgICAgaWYgKHRoaXMucGFnaW5nLmhhc09mZnNldFN0cmF0ZWd5ICYmIHBhcmFtcz8ubG9hZE9mZnNldCkge1xuICAgICAgICAgICAgcXVlcnkgPSBPYmplY3QuYXNzaWduKHF1ZXJ5LCB0aGlzLnBhZ2luZy5sb2FkRGVsZXRlZE9mZnNldFF1ZXJ5KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgYWxsUmVjb3Jkc1JhbmdlTmVlZGVkID0gKHRoaXMuaW5pdGlhbEZldGNoXG4gICAgICAgICAgICAgIHx8IHRoaXMuZGF0YUNvbnRyb2xsZXIub3BlcmF0aW9uID09PSBGc0xpc3RTdGF0ZS5SZWxvYWRcbiAgICAgICAgICAgICkgJiYgdGhpcy5wYWdpbmcubG9hZE1vcmVFbmFibGVkO1xuXG4gICAgICAgICAgICBxdWVyeSA9IGFsbFJlY29yZHNSYW5nZU5lZWRlZCA/XG4gICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24ocXVlcnksIHRoaXMucGFnaW5nLmxvYWRNb3JlUXVlcnkpIDpcbiAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihxdWVyeSwgdGhpcy5wYWdpbmcucXVlcnkpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh0aGlzLnNvcnRpbmcuc29ydGluZ0NvbHVtbikge1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICAgICAgcXVlcnksXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBvcmRlcjogYCR7dGhpcy5zb3J0aW5nLnNvcnRpbmdDb2x1bW4ubmFtZX0sJHt0aGlzLnNvcnRpbmcuc29ydGluZ0NvbHVtbi5kaXJlY3Rpb259YCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHRoaXMuY29sdW1ucy5jb25maWd1cmVkKSB7XG4gICAgICAgICAgICBxdWVyeSA9IHtcbiAgICAgICAgICAgICAgLi4ucXVlcnksXG4gICAgICAgICAgICAgIGNvbHVtbnM6IHRoaXMuY29sdW1ucy52aXNpYmxlQ29sdW1uc05hbWVzLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4geyBwYXJhbXMsIHF1ZXJ5IH07XG4gICAgICAgIH0pLFxuICAgICAgICBzd2l0Y2hNYXAoKHsgcGFyYW1zLCBxdWVyeSB9KSA9PiB7XG4gICAgICAgICAgaWYgKCF0aGlzLmNvbHVtbnMuY29sdW1uc0ZldGNoZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbHVtbnMubG9hZFJlbW90ZUNvbHVtbkNvbmZpZ3MoKVxuICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXBUbyh7IHBhcmFtcywgcXVlcnkgfSksXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIG9mKHsgcGFyYW1zLCBxdWVyeSB9KTtcbiAgICAgICAgfSksXG4gICAgICAgIHN3aXRjaE1hcCgoeyBwYXJhbXMsIHF1ZXJ5IH0pID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5iZWZvcmVGZXRjaEZuKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5iZWZvcmVGZXRjaEZuKHF1ZXJ5KVxuICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKGJlZm9yZUZldGNoUXVlcnkpID0+ICh7IHBhcmFtcywgcXVlcnk6IGJlZm9yZUZldGNoUXVlcnkgfSkpLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcblxuICAgICAgICAgICAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBvZih7IHBhcmFtcywgcXVlcnkgfSk7XG4gICAgICAgIH0pLFxuICAgICAgICBzd2l0Y2hNYXAoKHsgcGFyYW1zLCBxdWVyeSB9KSA9PiB7XG4gICAgICAgICAgY29uc3QgcmVtb3RlRmV0Y2ggPSB0aGlzLmZldGNoUmVtb3RlKHF1ZXJ5KVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgICAgICAgICAgdGhpcy5fbG9hZGluZyQubmV4dChmYWxzZSk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0PGFueT4oW29mKHsgcGFyYW1zLCBxdWVyeSB9KSwgcmVtb3RlRmV0Y2hdKTtcbiAgICAgICAgfSksXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgICAgdGhpcy5fbG9hZGluZyQubmV4dChmYWxzZSk7XG5cbiAgICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoW3BhcmFtc1F1ZXJ5LCByZXNwb25zZV0pID0+IHtcbiAgICAgICAgdGhpcy5pbml0aWFsRmV0Y2ggPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fY29tcGxldGVGZXRjaChwYXJhbXNRdWVyeS5wYXJhbXMsIHBhcmFtc1F1ZXJ5LnF1ZXJ5LCByZXNwb25zZSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2xpc3RlblJvd3NSZW1vdmUoKSB7XG4gICAgdGhpcy5kYXRhQ29udHJvbGxlci5yb3dzUmVtb3ZlZCRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgocm93czogYW55W10pID0+IHtcbiAgICAgICAgaWYgKHRoaXMucGFnaW5nLmVuYWJsZWQpIHtcblxuICAgICAgICAgIGNvbnN0IHJlbW92ZWRDb3VudCA9IHJvd3MubGVuZ3RoO1xuXG4gICAgICAgICAgaWYgKHRoaXMucGFnaW5nLmhhc1BhZ2VTdHJhdGVneSkge1xuICAgICAgICAgICAgdGhpcy5fbm9EYXRhUGFnaW5hdGlvblVwZGF0ZShyZW1vdmVkQ291bnQpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBGZXRjaCBtb3JlIGlmIGhhcyBzb21ldGhpbmcgZm9yIGZldGNoXG4gICAgICAgICAgICBpZiAodGhpcy5kYXRhQ29udHJvbGxlci5oYXNEYXRhIHx8IHRoaXMucGFnaW5nLmhhc05leHRQYWdlKSB7XG4gICAgICAgICAgICAgIHRoaXMuZGF0YUNvbnRyb2xsZXIuc2V0T3BlcmF0aW9uKEZzTGlzdFN0YXRlLkxvYWRNb3JlKTtcblxuICAgICAgICAgICAgICB0aGlzLnBhZ2luZy5yZW1vdmVSb3dzKHJlbW92ZWRDb3VudCk7XG4gICAgICAgICAgICAgIHRoaXMuX2ZldGNoJC5uZXh0KHsgbG9hZE9mZnNldDogdHJ1ZSB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMuX25vRGF0YVBhZ2luYXRpb25VcGRhdGUocmVtb3ZlZENvdW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSZW1vdmUgZnJvbSBzZWxlY3Rpb25cbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uKSB7XG4gICAgICAgICAgcm93cy5mb3JFYWNoKChyb3cpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uLnJlbW92ZVJvdyhyb3cuZGF0YSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIExpc3RlciBtYXkgaGF2ZSBvcmlnaW5hbGx5IGhpZGRlbiBjb2x1bW5zLCBidXQgdmlzaWJpbGl0eSBvZiB0aG9zZSBjb2x1bW5zXG4gICAqIGNhbiBiZSBjaGFuZ2VkIHByb2dyYW1tYXRpY2FseSBpbiBhbnkgdGltZVxuICAgKi9cbiAgcHJpdmF0ZSBfbGlzdGVuVmlzaWJsZUNvbHVtbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5jb2x1bW5zLnZpc2libGVDb2x1bW5zJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5fdXBkYXRlU29ydGluZ0NvbHVtbnMoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBhbmQgd2F0Y2ggZmlsdGVyIGNoYW5nZXNcbiAgICovXG4gIHByaXZhdGUgX2luaXRGaWx0ZXJzKCkge1xuICAgIGlmICh0aGlzLmZpbHRlckNvbmZpZykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHNvcnRDb25maWcgPSB0aGlzLnNvcnRpbmcuc29ydGluZ0NvbHVtblxuICAgICAgPyB7IHZhbHVlOiB0aGlzLnNvcnRpbmcuc29ydGluZ0NvbHVtbi5uYW1lLCBkaXJlY3Rpb246IHRoaXMuc29ydGluZy5zb3J0aW5nQ29sdW1uLmRpcmVjdGlvbiB9XG4gICAgICA6IG51bGw7XG5cbiAgICAvLyBDb25maWdcbiAgICB0aGlzLmZpbHRlckNvbmZpZyA9IHtcbiAgICAgIGl0ZW1zOiB0aGlzLmZpbHRlcnMgfHwgW10sXG4gICAgICBzYXZlZEZpbHRlcnM6IHRoaXMuc2F2ZWRGaWx0ZXJzLFxuICAgICAgYWN0aW9uczogdGhpcy5hY3Rpb25zLmFjdGlvbnMsXG4gICAgICBxdWVyeVBhcmFtOiB0aGlzLnF1ZXJ5UGFyYW0sXG4gICAgICBhdXRvZm9jdXM6IHRoaXMuYXV0b0ZvY3VzLFxuICAgICAgc29ydDogc29ydENvbmZpZyxcbiAgICAgIGNoaXBzOiB0aGlzLmNoaXBzLFxuICAgICAgYXV0b1JlbG9hZDogdGhpcy5hdXRvUmVsb2FkLFxuICAgICAgaW5pdDogdGhpcy5fZmlsdGVySW5pdC5iaW5kKHRoaXMpLFxuICAgICAgY2hhbmdlOiB0aGlzLl9maWx0ZXJDaGFuZ2UuYmluZCh0aGlzKSxcbiAgICAgIHJlbG9hZDogKHRoaXMuX2NvbmZpZy5yZWxvYWQgPz8gdHJ1ZSlcbiAgICAgICAgPyB0aGlzLl9maWx0ZXJSZWxvYWQuYmluZCh0aGlzKVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIHNvcnRDaGFuZ2U6IHRoaXMuX2ZpbHRlclNvcnQuYmluZCh0aGlzKSxcbiAgICAgIGhlYWRpbmc6IHRoaXMuaGVhZGluZyxcbiAgICAgIHN1YmhlYWRpbmc6IHRoaXMuc3ViaGVhZGluZyxcbiAgICB9O1xuXG4gICAgaWYodGhpcy5fcGVyc2lzdGFuY2UucXVlcnlFbmFibGVkKSB7XG4gICAgICB0aGlzLmZpbHRlckNvbmZpZy5wZXJzaXN0ID0gIHtcbiAgICAgICAgbmFtZTogdGhpcy5fcGVyc2lzdGFuY2UubmFtZSxcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIHdoZW4gRmlsdGVyIGhhcyBiZWVuIGluaXRpYWxpemVkXG4gICAqXG4gICAqIEBwYXJhbSBmaWx0ZXJzXG4gICAqL1xuICBwcml2YXRlIF9maWx0ZXJJbml0KHF1ZXJ5KSB7XG4gICAgaWYgKHRoaXMuZmlsdGVySW5pdENiKSB7XG4gICAgICB0aGlzLmZpbHRlckluaXRDYihxdWVyeSk7XG4gICAgfVxuXG4gICAgcXVlcnkgPSB0aGlzLl9wcm9jZXNzUmVzdG9yZVF1ZXJ5KHF1ZXJ5KTtcblxuICAgIHRoaXMuX2ZpbHRlcnNRdWVyeS5uZXh0KHF1ZXJ5KTtcblxuICAgIHRoaXMuZmlsdGVyc1JlYWR5KCk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGJhY2sgd2hlbiBGaWx0ZXIgaGFzIGJlZW4gY2hhbmdlZFxuICAgKlxuICAgKiBAcGFyYW0gcXVlcnlcbiAgICogQHBhcmFtIHNvcnRcbiAgICovXG4gIHByaXZhdGUgX2ZpbHRlckNoYW5nZShxdWVyeSwgc29ydCkge1xuICAgIGlmICh0aGlzLmZpbHRlckNoYW5nZUNiKSB7XG4gICAgICB0aGlzLmZpbHRlckNoYW5nZUNiKHF1ZXJ5LCBzb3J0KTtcbiAgICB9XG5cbiAgICBxdWVyeSA9IHRoaXMuX3Byb2Nlc3NSZXN0b3JlUXVlcnkocXVlcnkpO1xuXG4gICAgdGhpcy5fZmlsdGVyc1F1ZXJ5Lm5leHQocXVlcnkpO1xuXG4gICAgaWYgKHRoaXMucmVzdG9yZSAmJiB0aGlzLnJlc3RvcmUucmVsb2FkKSB7XG4gICAgICB0aGlzLnJlbG9hZCgpO1xuICAgIH1cblxuICAgIHRoaXMuZGF0YUNvbnRyb2xsZXIuc2V0T3BlcmF0aW9uKEZzTGlzdFN0YXRlLkZpbHRlcik7XG5cbiAgICAvLyBSZXNldCBwYWdpbmcgZm9yIHJlcXVlc3Qgd2l0aCBjb3JyZWN0IG9mZnNldFxuICAgIHRoaXMucGFnaW5nLnJlc2V0UGFnaW5nKCk7XG4gICAgdGhpcy5fZmV0Y2gkLm5leHQobnVsbCk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGJhY2sgd2hlbiB0aGUgZmlsdGVyIHJlbG9hZCBidXR0b24gaXMgY2xpY2tlZC5cbiAgICpcbiAgICogVW5saWtlIGEgZmlsdGVyIGNoYW5nZSwgYSByZWxvYWQgbXVzdCBwcmVzZXJ2ZSB0aGUgY3VycmVudCBwYWdlL29mZnNldCxcbiAgICogc28gd2Ugcm91dGUgdG8gcmVsb2FkKCkgd2hpY2gga2VlcHMgcGFnaW5nIGludGFjdCBpbnN0ZWFkIG9mIHJlc2V0dGluZyBpdC5cbiAgICpcbiAgICogQHBhcmFtIHF1ZXJ5XG4gICAqIEBwYXJhbSBzb3J0XG4gICAqL1xuICBwcml2YXRlIF9maWx0ZXJSZWxvYWQocXVlcnksIHNvcnQpIHtcbiAgICBpZiAodGhpcy5maWx0ZXJDaGFuZ2VDYikge1xuICAgICAgdGhpcy5maWx0ZXJDaGFuZ2VDYihxdWVyeSwgc29ydCk7XG4gICAgfVxuXG4gICAgcXVlcnkgPSB0aGlzLl9wcm9jZXNzUmVzdG9yZVF1ZXJ5KHF1ZXJ5KTtcblxuICAgIHRoaXMuX2ZpbHRlcnNRdWVyeS5uZXh0KHF1ZXJ5KTtcblxuICAgIHRoaXMucmVsb2FkKCk7XG4gIH1cblxuICBwcml2YXRlIF9wcm9jZXNzUmVzdG9yZVF1ZXJ5KHF1ZXJ5KSB7XG4gICAgdGhpcy5yZXN0b3JlTW9kZSA9IGZhbHNlO1xuICAgIC8vIFJlc3RvcmUgb3B0aW9uXG4gICAgaWYgKHRoaXMucmVzdG9yZSAmJiBxdWVyeVtzaG93RGVsZXRlZEZpbHRlcktleV0pIHtcbiAgICAgIHF1ZXJ5ID0gT2JqZWN0LmtleXMocXVlcnkpXG4gICAgICAgIC5maWx0ZXIoKGtleSkgPT4ga2V5ICE9PSBzaG93RGVsZXRlZEZpbHRlcktleSlcbiAgICAgICAgLnJlZHVjZSgoYWNjLCBrZXkpID0+IHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uYWNjLFxuICAgICAgICAgICAgW2tleV06IHF1ZXJ5W2tleV0sXG4gICAgICAgICAgfTtcbiAgICAgICAgfSwge30pO1xuXG4gICAgICBxdWVyeSA9IHtcbiAgICAgICAgLi4ucXVlcnksXG4gICAgICAgIC4uLnRoaXMucmVzdG9yZS5xdWVyeSxcbiAgICAgIH07XG5cbiAgICAgIHRoaXMucmVzdG9yZU1vZGUgPSB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBxdWVyeTtcbiAgfVxuXG4gIC8vIENhbGxiYWNrIHdoZW4gRmlsdGVyIHNvcnQgaGFzIGJlZW4gY2hhbmdlZFxuICBwcml2YXRlIF9maWx0ZXJTb3J0KGZpbHRlclF1ZXJ5LCBmaWx0ZXJTb3J0KSB7XG4gICAgaWYgKGZpbHRlclNvcnQpIHtcbiAgICAgIHRoaXMuc29ydGluZy5zb3J0QnlDb2x1bW5XaXRoTmFtZShmaWx0ZXJTb3J0LnZhbHVlKTtcblxuICAgICAgY29uc3Qgc29ydERpcmVjdGlvbiA9IGZpbHRlclNvcnQuZGlyZWN0aW9uID09PSAnYXNjJyA/IFNvcnRpbmdEaXJlY3Rpb24uYXNjIDogU29ydGluZ0RpcmVjdGlvbi5kZXNjO1xuICAgICAgdGhpcy5zb3J0aW5nLnNvcnREaXJlY3Rpb24oc29ydERpcmVjdGlvbik7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEZJWE1FIG5lZWQgdG8gYmUgcmVmYWN0b3JlZC4uLlxuICAgICAgdGhpcy5zb3J0aW5nLnNvcnRpbmdDb2x1bW4gPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLnJlbG9hZCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2NvbXBsZXRlRmV0Y2gocGFyYW1zLCBxdWVyeSwgcmVzcG9uc2UpIHtcbiAgICBpZiAoIXRoaXMucGFnaW5nLnBhZ2UpIHtcbiAgICAgIHRoaXMucGFnaW5nLnBhZ2UgPSAxO1xuICAgIH1cblxuICAgIGlmIChyZXNwb25zZS5wYWdpbmcpIHtcbiAgICAgIGNvbnN0IHBhZ2VSZWNvcmRzID0gKEFycmF5LmlzQXJyYXkocmVzcG9uc2UuZGF0YSkgJiYgcmVzcG9uc2UuZGF0YS5sZW5ndGgpIHx8IDA7XG4gICAgICB0aGlzLnBhZ2luZy51cGRhdGVQYWdpbmcoXG4gICAgICAgIHJlc3BvbnNlLnBhZ2luZyxcbiAgICAgICAgcGFnZVJlY29yZHMsXG4gICAgICAgIHRoaXMuZGF0YUNvbnRyb2xsZXIub3BlcmF0aW9uID09PSBGc0xpc3RTdGF0ZS5Mb2FkTW9yZSxcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnBhZ2luZy5lbmFibGVkKSB7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgJyVjIEZzTGlzdCBXYXJuaW5nICcsXG4gICAgICAgICdjb2xvcjogd2hpdGU7IGJhY2tncm91bmQtY29sb3I6ICNmZmNjMGInLFxuICAgICAgICAnUGFnaW5hdGlvbiBkb2VzIG5vdCBjb25maWd1cmVkIHByb3Blcmx5LiAnICtcbiAgICAgICAgJ1BhZ2luYXRpb24gaXMgZW5hYmxlZCwgYnV0IGh0dHAgcmVzcG9uc2UgZG9lcyBub3QgY29udGFpbiBcInBhZ2luZ1wiIGZpZWxkLiAnICtcbiAgICAgICAgJ1lvdSBoYXZlIHRvIHNldCBcInBhZ2luZzogZmFsc2VcIiBpbiBjb25maWcgb3IgYWRkIFwicGFnaW5nXCIgZmllbGQgdG8gcmVzcG9uc2UuJyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8vIG11c3QgYmUgYmVmb3JlIHNlbGVjdGlvbiwgYmVjYXVzZSBzZWxldGlvbiB1c2UgcmVjb3Jkc1xuICAgIHRoaXMuZGF0YUNvbnRyb2xsZXIuc2V0Um93c0Zyb21SZXNwb25zZShyZXNwb25zZS5kYXRhKTtcbiAgICAvLy9cblxuICAgIHRoaXMuX2NvbXBsZXRlRmV0Y2hVcGRhdGVTZWxlY3RvbihyZXNwb25zZSk7XG5cbiAgICBpZiAodGhpcy5lbXB0eVN0YXRlPy52YWxpZGF0ZSAmJiB0aGlzLmVtcHR5U3RhdGVUZW1wbGF0ZSkge1xuICAgICAgdGhpcy5lbXB0eVN0YXRlRW5hYmxlZCA9IHRoaXMuZW1wdHlTdGF0ZS52YWxpZGF0ZShxdWVyeSwgY2xvbmVEZWVwKHRoaXMuZGF0YUNvbnRyb2xsZXIudmlzaWJsZVJvd3NEYXRhKSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuYWZ0ZXJGZXRjaEZuKSB7XG4gICAgICB0aGlzLmFmdGVyRmV0Y2hGbihxdWVyeSwgdGhpcy5kYXRhQ29udHJvbGxlci52aXNpYmxlUm93c0RhdGEpO1xuICAgIH1cblxuICAgIC8vIGNhc2Ugd2hlbiBoYXZlIHJlbW92ZWQgYWxsIHJlc3VsdHMgZnJvbSBsYXN0IHBhZ2VcbiAgICBpZiAodGhpcy5kYXRhQ29udHJvbGxlci52aXNpYmxlUm93cy5sZW5ndGggPT09IDBcbiAgICAgICYmIHRoaXMucGFnaW5nLnBhZ2UgPiAxXG4gICAgICAmJiB0aGlzLnBhZ2luZy5wYWdlID4gdGhpcy5wYWdpbmcucGFnZXNcbiAgICApIHtcbiAgICAgIHRoaXMucGFnaW5nLmdvTGFzdCgpO1xuICAgIH1cblxuICAgIHRoaXMuX2ZldGNoQ29tcGxldGUkLm5leHQoeyBzY3JvbGxJbnRvVmlldzogcGFyYW1zPy5zY3JvbGxJbnRvVmlldyB9KTtcbiAgICB0aGlzLl9sb2FkaW5nJC5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NvbXBsZXRlRmV0Y2hVcGRhdGVTZWxlY3RvbihyZXNwb25zZSkge1xuICAgIC8vIFVwZGF0ZSBzZWxlY3Rpb24gcGFyYW1zXG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uKSB7XG4gICAgICBpZiAodGhpcy5wYWdpbmcuZW5hYmxlZCkge1xuICAgICAgICB0aGlzLnNlbGVjdGlvbi5wYWdlQ2hhbmdlZCgpO1xuICAgICAgICB0aGlzLnNlbGVjdGlvbi51cGRhdGVWaXNpYmxlUmVjb3Jkc0NvdW50KHRoaXMucGFnaW5nLmdldFBhZ2VSZWNvcmRzKCkpO1xuICAgICAgICB0aGlzLnNlbGVjdGlvbi51cGRhdGVUb3RhbFJlY29yZHNDb3VudCh0aGlzLnBhZ2luZy5yZWNvcmRzKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGNvdW50ID0gcmVzcG9uc2UucGFnaW5nICYmIHJlc3BvbnNlLnBhZ2luZy5yZWNvcmRzXG4gICAgICAgICAgfHwgQXJyYXkuaXNBcnJheShyZXNwb25zZS5kYXRhKSAmJiByZXNwb25zZS5kYXRhLmxlbmd0aDtcblxuICAgICAgICB0aGlzLnNlbGVjdGlvbi51cGRhdGVWaXNpYmxlUmVjb3Jkc0NvdW50KGNvdW50KTtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24udXBkYXRlVG90YWxSZWNvcmRzQ291bnQoY291bnQpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZFJvd3NJbnRlcnNlY3Rpb24odGhpcy5kYXRhQ29udHJvbGxlci52aXNpYmxlUm93c0RhdGEpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBXaWxsIGRvIHNvbWUgYWN0aW9ucyBpZiB5b3UgcmVtb3ZlZCBpdGVtIGFuZCBpdGVtIHdhcyBsYXN0IG9uIGhpcyBvd24gcGFnZVxuICAgKlxuICAgKiBFeDogaWYgbGlzdCBoYXMgMyBwYWdlcyBhbmQgb24gdGhpcmQgcGFnZSB5b3UgaGF2ZSBvbmx5IG9uZSBpdGVtLiBBbmQgeW91IGp1c3QgZGVsZXRlZCB0aGlzIGl0ZW0uXG4gICAqIFlvdSBtdXN0IGdvIHRvIHNlY29uZCBwYWdlLCBidXQgaWYgaXQgd2FzIGxhc3QgcGFnZSBhbmQgeW91IGNhbid0IGdvIGJhY2sgLT4ganVzdCByZWxvYWRcbiAgICpcbiAgICogQHBhcmFtIGRlbGV0ZWRDb3VudFxuICAgKi9cbiAgcHJpdmF0ZSBfbm9EYXRhUGFnaW5hdGlvblVwZGF0ZShkZWxldGVkQ291bnQpIHtcbiAgICBpZiAoIXRoaXMuZGF0YUNvbnRyb2xsZXIuaGFzRGF0YSkge1xuICAgICAgaWYgKHRoaXMucGFnaW5nLnBhZ2UgPiAxKSB7XG4gICAgICAgIHRoaXMucGFnaW5nLmdvVG9QYWdlKHRoaXMucGFnaW5nLnBhZ2UgLSAxIHx8IDEpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZWxvYWQoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnBhZ2luZy5yZWNvcmRzIC09IGRlbGV0ZWRDb3VudDtcbiAgICB0aGlzLnBhZ2luZy51cGRhdGVQYWdpbmF0aW9uKCk7XG5cbiAgICBpZiAodGhpcy5kYXRhQ29udHJvbGxlci5oYXNEYXRhICYmIHRoaXMuc2VsZWN0aW9uKSB7XG4gICAgICB0aGlzLnNlbGVjdGlvbi51cGRhdGVWaXNpYmxlUmVjb3Jkc0NvdW50KHRoaXMuZGF0YUNvbnRyb2xsZXIudmlzaWJsZVJvd3NDb3VudCk7XG4gICAgICB0aGlzLnNlbGVjdGlvbi51cGRhdGVUb3RhbFJlY29yZHNDb3VudCh0aGlzLnBhZ2luZy5yZWNvcmRzKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGVtcG9yYXJ5IHNvbHV0aW9uLCB3aWxsIGRvIGF1dG8gc3Vic2NyaWJlIGlmIHdhcyByZXR1cm5lZCBPYnNlcnZhYmxlLlxuICAgKlxuICAgKiBUT0RPOiBNT1ZFIFRISVMgUEVBQ0UgT0YgQ09ERSBUTyBTUEVDSUFMIFBMQUNFXG4gICAqXG4gICAqIEBwYXJhbSByZXN0b3JlQ2xpY2tDYWxsYmFja1xuICAgKiBAcGFyYW0gcm93XG4gICAqL1xuICBwcml2YXRlIF9yZXN0b3JlQ2xpY2socmVzdG9yZUNsaWNrQ2FsbGJhY2ssIHJvdykge1xuICAgIGNvbnN0IHJlc3RvcmVDbGlja1Jlc3VsdCA9IHJlc3RvcmVDbGlja0NhbGxiYWNrKHJvdyk7XG5cbiAgICBpZiAocmVzdG9yZUNsaWNrUmVzdWx0IGluc3RhbmNlb2YgT2JzZXJ2YWJsZSkge1xuICAgICAgcmVzdG9yZUNsaWNrUmVzdWx0XG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgICBuZXh0OiAoKSA9PiB0aGlzLnJlbG9hZCgpLFxuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVTb3J0aW5nQ29sdW1ucygpOiB2b2lkIHtcbiAgICB0aGlzLnNvcnRpbmcuY2xlYXJTb3J0YWJsZUNvbHVtbnMoKTtcbiAgICB0aGlzLmNvbHVtbnMuY29sdW1uc1xuICAgICAgLmZpbHRlcigoY29sdW1uKSA9PiBjb2x1bW4uc29ydGFibGUgJiYgY29sdW1uLnZpc2libGUpXG4gICAgICAuZm9yRWFjaCgoY29sdW1uKSA9PiB7XG4gICAgICAgIHRoaXMuc29ydGluZy5hZGRTb3J0YWJsZUNvbHVtbihjb2x1bW4pO1xuICAgICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -108,11 +108,11 @@ export class FsCellComponent {
|
|
|
108
108
|
}
|
|
109
109
|
}
|
|
110
110
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsCellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
111
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.7", type: FsCellComponent, isStandalone: true, selector: "[fs-cell]", inputs: { column: { classPropertyName: "column", publicName: "column", isSignal: false, isRequired: false, transformFunction: null }, rowIndex: { classPropertyName: "rowIndex", publicName: "rowIndex", isSignal: false, isRequired: false, transformFunction: null }, row: { classPropertyName: "row", publicName: "row", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.fs-list-col": "this.isColl", "attr.role": "this.role" } }, usesOnChanges: true, ngImport: i0, template: "<ng-template [ngTemplateOutlet]=\"cellTemplate || defaultCellTemplate\" [ngTemplateOutletContext]=\"cellContext\"></ng-template>\n\n<ng-template #defaultCellTemplate let-value=\"value\">\n {{value}}\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
111
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.7", type: FsCellComponent, isStandalone: true, selector: "[fs-cell]", inputs: { column: { classPropertyName: "column", publicName: "column", isSignal: false, isRequired: false, transformFunction: null }, rowIndex: { classPropertyName: "rowIndex", publicName: "rowIndex", isSignal: false, isRequired: false, transformFunction: null }, row: { classPropertyName: "row", publicName: "row", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.fs-list-col": "this.isColl", "attr.role": "this.role" } }, usesOnChanges: true, ngImport: i0, template: "<ng-template [ngTemplateOutlet]=\"cellTemplate || defaultCellTemplate\" [ngTemplateOutletContext]=\"cellContext\"></ng-template>\r\n\r\n<ng-template #defaultCellTemplate let-value=\"value\">\r\n {{value}}\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
112
112
|
}
|
|
113
113
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsCellComponent, decorators: [{
|
|
114
114
|
type: Component,
|
|
115
|
-
args: [{ selector: '[fs-cell]', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgTemplateOutlet], template: "<ng-template [ngTemplateOutlet]=\"cellTemplate || defaultCellTemplate\" [ngTemplateOutletContext]=\"cellContext\"></ng-template>\n\n<ng-template #defaultCellTemplate let-value=\"value\">\n {{value}}\n</ng-template>\n" }]
|
|
115
|
+
args: [{ selector: '[fs-cell]', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgTemplateOutlet], template: "<ng-template [ngTemplateOutlet]=\"cellTemplate || defaultCellTemplate\" [ngTemplateOutletContext]=\"cellContext\"></ng-template>\r\n\r\n<ng-template #defaultCellTemplate let-value=\"value\">\r\n {{value}}\r\n</ng-template>\r\n" }]
|
|
116
116
|
}], ctorParameters: () => [], propDecorators: { isColl: [{
|
|
117
117
|
type: HostBinding,
|
|
118
118
|
args: ['class.fs-list-col']
|
|
@@ -124,4 +124,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
124
124
|
}], rowIndex: [{
|
|
125
125
|
type: Input
|
|
126
126
|
}] } });
|
|
127
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvYm9keS9yb3cvY2VsbC9jZWxsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9ib2R5L3Jvdy9jZWxsL2NlbGwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsTUFBTSxFQUNOLFdBQVcsRUFDWCxLQUFLLEVBQ0wsS0FBSyxHQU1OLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBTyxNQUFNLG9CQUFvQixDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7O0FBVTNELE1BQU0sT0FBTyxlQUFlO0lBRWUsTUFBTSxHQUFHLElBQUksQ0FBQztJQUV0QixJQUFJLEdBQUcsVUFBVSxDQUFDO0lBRW5DLE1BQU0sQ0FBUztJQUNmLFFBQVEsQ0FBUztJQUMxQixHQUFHLEdBQUcsS0FBSyxFQUFPLENBQUM7SUFFbkIsV0FBVyxHQUFRLEVBQUUsQ0FBQztJQUN0QixZQUFZLENBQW1CO0lBRTlCLFNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBRXhDO1FBQ0UsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxH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Z0JBQWdCLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUN0RCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsbUJBQW1CLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7UUFDbEYsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO1FBQy9DLENBQUM7SUFDSCxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUU5QixJQUFJLFVBQVUsSUFBSSxVQUFVLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUN6QyxVQUFVLENBQUMsU0FBUztpQkFDakIsSUFBSSxDQUNILFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQzFCO2lCQUNBLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUNwQixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUM7WUFDckMsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO0lBQ0gsQ0FBQzt1R0EzSFUsZUFBZTsyRkFBZixlQUFlLDhpQkM5QjVCLDJOQUtBLDRDRHVCWSxnQkFBZ0I7OzJGQUVmLGVBQWU7a0JBUDNCLFNBQVM7K0JBQ0UsV0FBVyxtQkFFSix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLGdCQUFnQixDQUFDO3dEQUljLE1BQU07c0JBQTlDLFdBQVc7dUJBQUMsbUJBQW1CO2dCQUVDLElBQUk7c0JBQXBDLFdBQVc7dUJBQUMsV0FBVztnQkFFUixNQUFNO3NCQUFyQixLQUFLO2dCQUNVLFFBQVE7c0JBQXZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIGVmZmVjdCxcbiAgSG9zdEJpbmRpbmcsXG4gIGlucHV0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBza2lwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IGlzQ2hpbGRUeXBlUm93LCBpc0dyb3VwRm9vdGVyUm93LCBpc0dyb3VwUm93LCBSb3cgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgQ29sdW1uIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2NvbHVtbi5tb2RlbCc7XG5pbXBvcnQgeyBCYXNlUm93IH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL3Jvdy9fYmFzZS1yb3cnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ1tmcy1jZWxsXScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jZWxsLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOZ1RlbXBsYXRlT3V0bGV0XSxcbn0pXG5leHBvcnQgY2xhc3MgRnNDZWxsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mcy1saXN0LWNvbCcpIHB1YmxpYyBpc0NvbGwgPSB0cnVlO1xuXG4gIEBIb3N0QmluZGluZygnYXR0ci5yb2xlJykgcHVibGljIHJvbGUgPSAnZ3JpZGNlbGwnO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBjb2x1bW46IENvbHVtbjtcbiAgQElucHV0KCkgcHVibGljIHJvd0luZGV4OiBudW1iZXI7XG4gIHB1YmxpYyByb3cgPSBpbnB1dDxSb3c+KCk7XG5cbiAgcHVibGljIGNlbGxDb250ZXh0OiBhbnkgPSB7fTtcbiAgcHVibGljIGNlbGxUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGN1cnJlbnRSb3cgPSB0aGlzLnJvdygpO1xuXG4gICAgICBpZiAoY3VycmVudFJvdykge1xuICAgICAgICB0aGlzLmNlbGxDb250ZXh0Lmdyb3VwSW5kZXggPSBjdXJyZW50Um93LmluZGV4O1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIHRoaXMuX2xpc3RlblJvd0RhdGFDaGFuZ2UoKTtcbiAgICB0aGlzLl9saXN0ZW5Hcm91cE9wZW4oKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMucm93SW5kZXg/LmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlcy5yb3dJbmRleD8ucHJldmlvdXNWYWx1ZSkge1xuICAgICAgdGhpcy5jZWxsQ29udGV4dC5pbmRleCA9IHRoaXMucm93SW5kZXg7XG4gICAgICB0aGlzLmNlbGxDb250ZXh0Lmdyb3VwSW5kZXggPSB0aGlzLnJvdygpLmluZGV4O1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzLmNvbHVtbj8uY3VycmVudFZhbHVlICE9PSBjaGFuZ2VzLmNvbHVtbj8ucHJldmlvdXNWYWx1ZSkge1xuICAgICAgdGhpcy5faW5pdENlbGxDb250ZXh0KCk7XG4gICAgICB0aGlzLl9pbml0Q2VsbFRlbXBsYXRlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQobnVsbCk7XG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRDZWxsQ29udGV4dCgpIHtcbiAgICBjb25zdCBjdXJyZW50Um93ID0gdGhpcy5yb3coKTtcblxuICAgIHRoaXMuY2VsbENvbnRleHQuaW5kZXggPSB0aGlzLnJvd0luZGV4O1xuXG4gICAgaWYgKGN1cnJlbnRSb3cpIHtcbiAgICAgIGlmIChpc0dyb3VwUm93KGN1cnJlbnRSb3cpKSB7XG4gICAgICAgIHRoaXMuY2VsbENvbnRleHQuZ3JvdXBJbmRleCA9IGN1cnJlbnRSb3cuaW5kZXg7XG4gICAgICB9IGVsc2UgaWYgKGlzQ2hpbGRUeXBlUm93KGN1cnJlbnRSb3cpKSB7XG4gICAgICAgIHRoaXMuY2VsbENvbnRleHQuZ3JvdXBJbmRleCA9IGN1cnJlbnRSb3cuaW5kZXg7XG4gICAgICAgIHRoaXMuY2VsbENvbnRleHQuZ3JvdXBSb3cgPSBjdXJyZW50Um93LnBhcmVudC5kYXRhO1xuICAgICAgICB0aGlzLmNlbGxDb250ZXh0Lmdyb3VwID0gY3VycmVudFJvdy5wYXJlbnQuZGF0YTtcbiAgICAgIH1cblxuICAgICAgaWYgKGlzR3JvdXBSb3coY3VycmVudFJvdykpIHtcbiAgICAgICAgdGhpcy5jZWxsQ29udGV4dC5ncm91cCA9IGN1cnJlbnRSb3cuZGF0YTtcbiAgICAgICAgdGhpcy5jZWxsQ29udGV4dC5ncm91cENoaWxkcmVuID0gY3VycmVudFJvdy5jaGlsZHJlblxuICAgICAgICAgIC5tYXAoKGNoaWxkKSA9PiBjaGlsZC5kYXRhKTtcbiAgICAgIH0gZWxzZSBpZiAoaXNHcm91cEZvb3RlclJvdyhjdXJyZW50Um93KSkge1xuICAgICAgICB0aGlzLmNlbGxDb250ZXh0Lmdyb3VwID0gY3VycmVudFJvdy5wYXJlbnQuZGF0YTtcbiAgICAgICAgdGhpcy5jZWxsQ29udGV4dC5ncm91cEluZGV4ID0gY3VycmVudFJvdy5pbmRleDtcbiAgICAgICAgdGhpcy5jZWxsQ29udGV4dC5ncm91cENoaWxkcmVuID0gY3VycmVudFJvdy5wYXJlbnQuY2hpbGRyZW5cbiAgICAgICAgICAubWFwKChjaGlsZCkgPT4gY2hpbGQuZGF0YSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5jZWxsQ29udGV4dC5jb2x1bW4gPSB0aGlzLmNvbHVtbjtcbiAgICBpZiAoY3VycmVudFJvdykge1xuICAgICAgdGhpcy5jZWxsQ29udGV4dC4kaW1wbGljaXQgPSBjdXJyZW50Um93LmRhdGE7XG4gICAgICB0aGlzLmNlbGxDb250ZXh0LnJvdyA9IGN1cnJlbnRSb3cuZGF0YTtcbiAgICAgIHRoaXMuY2VsbENvbnRleHQudmFsdWUgPSBjdXJyZW50Um93LmRhdGFbdGhpcy5jb2x1bW4ubmFtZV07XG5cbiAgICAgIGlmIChpc0dyb3VwUm93KGN1cnJlbnRSb3cpKSB7XG4gICAgICAgIHRoaXMuY2VsbENvbnRleHQuZXhwYW5kZWQgPSBjdXJyZW50Um93LmV4cGFuZGVkO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2xpc3RlblJvd0RhdGFDaGFuZ2UoKSB7XG4gICAgY29uc3QgY3VycmVudFJvdyA9IHRoaXMucm93KCk7XG4gICAgaWYoY3VycmVudFJvdyBpbnN0YW5jZW9mIEJhc2VSb3cpIHtcbiAgICAgIGN1cnJlbnRSb3cuZGF0YSRcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgc2tpcCgxKSxcbiAgICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX2luaXRDZWxsQ29udGV4dCgpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9pbml0Q2VsbFRlbXBsYXRlKCkge1xuICAgIGNvbnN0IGN1cnJlbnRSb3cgPSB0aGlzLnJvdygpO1xuXG4gICAgaWYgKGN1cnJlbnRSb3cgJiYgaXNHcm91cFJvdyhjdXJyZW50Um93KSkge1xuICAgICAgdGhpcy5jZWxsVGVtcGxhdGUgPSB0aGlzLmNvbHVtbi5ncm91cEhlYWRlclRlbXBsYXRlIHx8IHRoaXMuY29sdW1uLmNlbGxUZW1wbGF0ZTtcbiAgICB9IGVsc2UgaWYgKGN1cnJlbnRSb3cgJiYgaXNHcm91cEZvb3RlclJvdyhjdXJyZW50Um93KSkge1xuICAgICAgdGhpcy5jZWxsVGVtcGxhdGUgPSB0aGlzLmNvbHVtbi5ncm91cEZvb3RlclRlbXBsYXRlIHx8IHRoaXMuY29sdW1uLmNlbGxUZW1wbGF0ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jZWxsVGVtcGxhdGUgPSB0aGlzLmNvbHVtbi5jZWxsVGVtcGxhdGU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfbGlzdGVuR3JvdXBPcGVuKCkge1xuICAgIGNvbnN0IGN1cnJlbnRSb3cgPSB0aGlzLnJvdygpO1xuXG4gICAgaWYgKGN1cnJlbnRSb3cgJiYgaXNHcm91cFJvdyhjdXJyZW50Um93KSkge1xuICAgICAgY3VycmVudFJvdy5leHBhbmRlZCRcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKChzdGF0dXMpID0+IHtcbiAgICAgICAgICB0aGlzLmNlbGxDb250ZXh0LmV4cGFuZGVkID0gc3RhdHVzO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJjZWxsVGVtcGxhdGUgfHwgZGVmYXVsdENlbGxUZW1wbGF0ZVwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJjZWxsQ29udGV4dFwiPjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdENlbGxUZW1wbGF0ZSBsZXQtdmFsdWU9XCJ2YWx1ZVwiPlxuICB7e3ZhbHVlfX1cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
127
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvYm9keS9yb3cvY2VsbC9jZWxsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9ib2R5L3Jvdy9jZWxsL2NlbGwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsTUFBTSxFQUNOLFdBQVcsRUFDWCxLQUFLLEVBQ0wsS0FBSyxHQU1OLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBTyxNQUFNLG9CQUFvQixDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7O0FBVTNELE1BQU0sT0FBTyxlQUFlO0lBRWUsTUFBTSxHQUFHLElBQUksQ0FBQztJQUV0QixJQUFJLEdBQUcsVUFBVSxDQUFDO0lBRW5DLE1BQU0sQ0FBUztJQUNmLFFBQVEsQ0FBUztJQUMxQixHQUFHLEdBQUcsS0FBSyxFQUFPLENBQUM7SUFFbkIsV0FBVyxHQUFRLEVBQUUsQ0FBQztJQUN0QixZQUFZLENBQW1CO0lBRTlCLFNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBRXhDO1FBQ0UsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxH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Z0JBQWdCLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUN0RCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsbUJBQW1CLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7UUFDbEYsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO1FBQy9DLENBQUM7SUFDSCxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUU5QixJQUFJLFVBQVUsSUFBSSxVQUFVLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUN6QyxVQUFVLENBQUMsU0FBUztpQkFDakIsSUFBSSxDQUNILFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQzFCO2lCQUNBLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUNwQixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUM7WUFDckMsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO0lBQ0gsQ0FBQzt1R0EzSFUsZUFBZTsyRkFBZixlQUFlLDhpQkM5QjVCLHFPQUtBLDRDRHVCWSxnQkFBZ0I7OzJGQUVmLGVBQWU7a0JBUDNCLFNBQVM7K0JBQ0UsV0FBVyxtQkFFSix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLGdCQUFnQixDQUFDO3dEQUljLE1BQU07c0JBQTlDLFdBQVc7dUJBQUMsbUJBQW1CO2dCQUVDLElBQUk7c0JBQXBDLFdBQVc7dUJBQUMsV0FBVztnQkFFUixNQUFNO3NCQUFyQixLQUFLO2dCQUNVLFFBQVE7c0JBQXZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIGVmZmVjdCxcbiAgSG9zdEJpbmRpbmcsXG4gIGlucHV0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBza2lwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IGlzQ2hpbGRUeXBlUm93LCBpc0dyb3VwRm9vdGVyUm93LCBpc0dyb3VwUm93LCBSb3cgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgQ29sdW1uIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2NvbHVtbi5tb2RlbCc7XG5pbXBvcnQgeyBCYXNlUm93IH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL3Jvdy9fYmFzZS1yb3cnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ1tmcy1jZWxsXScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jZWxsLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOZ1RlbXBsYXRlT3V0bGV0XSxcbn0pXG5leHBvcnQgY2xhc3MgRnNDZWxsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mcy1saXN0LWNvbCcpIHB1YmxpYyBpc0NvbGwgPSB0cnVlO1xuXG4gIEBIb3N0QmluZGluZygnYXR0ci5yb2xlJykgcHVibGljIHJvbGUgPSAnZ3JpZGNlbGwnO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBjb2x1bW46IENvbHVtbjtcbiAgQElucHV0KCkgcHVibGljIHJvd0luZGV4OiBudW1iZXI7XG4gIHB1YmxpYyByb3cgPSBpbnB1dDxSb3c+KCk7XG5cbiAgcHVibGljIGNlbGxDb250ZXh0OiBhbnkgPSB7fTtcbiAgcHVibGljIGNlbGxUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGN1cnJlbnRSb3cgPSB0aGlzLnJvdygpO1xuXG4gICAgICBpZiAoY3VycmVudFJvdykge1xuICAgICAgICB0aGlzLmNlbGxDb250ZXh0Lmdyb3VwSW5kZXggPSBjdXJyZW50Um93LmluZGV4O1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIHRoaXMuX2xpc3RlblJvd0RhdGFDaGFuZ2UoKTtcbiAgICB0aGlzLl9saXN0ZW5Hcm91cE9wZW4oKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMucm93SW5kZXg/LmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlcy5yb3dJbmRleD8ucHJldmlvdXNWYWx1ZSkge1xuICAgICAgdGhpcy5jZWxsQ29udGV4dC5pbmRleCA9IHRoaXMucm93SW5kZXg7XG4gICAgICB0aGlzLmNlbGxDb250ZXh0Lmdyb3VwSW5kZXggPSB0aGlzLnJvdygpLmluZGV4O1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzLmNvbHVtbj8uY3VycmVudFZhbHVlICE9PSBjaGFuZ2VzLmNvbHVtbj8ucHJldmlvdXNWYWx1ZSkge1xuICAgICAgdGhpcy5faW5pdENlbGxDb250ZXh0KCk7XG4gICAgICB0aGlzLl9pbml0Q2VsbFRlbXBsYXRlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQobnVsbCk7XG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRDZWxsQ29udGV4dCgpIHtcbiAgICBjb25zdCBjdXJyZW50Um93ID0gdGhpcy5yb3coKTtcblxuICAgIHRoaXMuY2VsbENvbnRleHQuaW5kZXggPSB0aGlzLnJvd0luZGV4O1xuXG4gICAgaWYgKGN1cnJlbnRSb3cpIHtcbiAgICAgIGlmIChpc0dyb3VwUm93KGN1cnJlbnRSb3cpKSB7XG4gICAgICAgIHRoaXMuY2VsbENvbnRleHQuZ3JvdXBJbmRleCA9IGN1cnJlbnRSb3cuaW5kZXg7XG4gICAgICB9IGVsc2UgaWYgKGlzQ2hpbGRUeXBlUm93KGN1cnJlbnRSb3cpKSB7XG4gICAgICAgIHRoaXMuY2VsbENvbnRleHQuZ3JvdXBJbmRleCA9IGN1cnJlbnRSb3cuaW5kZXg7XG4gICAgICAgIHRoaXMuY2VsbENvbnRleHQuZ3JvdXBSb3cgPSBjdXJyZW50Um93LnBhcmVudC5kYXRhO1xuICAgICAgICB0aGlzLmNlbGxDb250ZXh0Lmdyb3VwID0gY3VycmVudFJvdy5wYXJlbnQuZGF0YTtcbiAgICAgIH1cblxuICAgICAgaWYgKGlzR3JvdXBSb3coY3VycmVudFJvdykpIHtcbiAgICAgICAgdGhpcy5jZWxsQ29udGV4dC5ncm91cCA9IGN1cnJlbnRSb3cuZGF0YTtcbiAgICAgICAgdGhpcy5jZWxsQ29udGV4dC5ncm91cENoaWxkcmVuID0gY3VycmVudFJvdy5jaGlsZHJlblxuICAgICAgICAgIC5tYXAoKGNoaWxkKSA9PiBjaGlsZC5kYXRhKTtcbiAgICAgIH0gZWxzZSBpZiAoaXNHcm91cEZvb3RlclJvdyhjdXJyZW50Um93KSkge1xuICAgICAgICB0aGlzLmNlbGxDb250ZXh0Lmdyb3VwID0gY3VycmVudFJvdy5wYXJlbnQuZGF0YTtcbiAgICAgICAgdGhpcy5jZWxsQ29udGV4dC5ncm91cEluZGV4ID0gY3VycmVudFJvdy5pbmRleDtcbiAgICAgICAgdGhpcy5jZWxsQ29udGV4dC5ncm91cENoaWxkcmVuID0gY3VycmVudFJvdy5wYXJlbnQuY2hpbGRyZW5cbiAgICAgICAgICAubWFwKChjaGlsZCkgPT4gY2hpbGQuZGF0YSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5jZWxsQ29udGV4dC5jb2x1bW4gPSB0aGlzLmNvbHVtbjtcbiAgICBpZiAoY3VycmVudFJvdykge1xuICAgICAgdGhpcy5jZWxsQ29udGV4dC4kaW1wbGljaXQgPSBjdXJyZW50Um93LmRhdGE7XG4gICAgICB0aGlzLmNlbGxDb250ZXh0LnJvdyA9IGN1cnJlbnRSb3cuZGF0YTtcbiAgICAgIHRoaXMuY2VsbENvbnRleHQudmFsdWUgPSBjdXJyZW50Um93LmRhdGFbdGhpcy5jb2x1bW4ubmFtZV07XG5cbiAgICAgIGlmIChpc0dyb3VwUm93KGN1cnJlbnRSb3cpKSB7XG4gICAgICAgIHRoaXMuY2VsbENvbnRleHQuZXhwYW5kZWQgPSBjdXJyZW50Um93LmV4cGFuZGVkO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2xpc3RlblJvd0RhdGFDaGFuZ2UoKSB7XG4gICAgY29uc3QgY3VycmVudFJvdyA9IHRoaXMucm93KCk7XG4gICAgaWYoY3VycmVudFJvdyBpbnN0YW5jZW9mIEJhc2VSb3cpIHtcbiAgICAgIGN1cnJlbnRSb3cuZGF0YSRcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgc2tpcCgxKSxcbiAgICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX2luaXRDZWxsQ29udGV4dCgpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9pbml0Q2VsbFRlbXBsYXRlKCkge1xuICAgIGNvbnN0IGN1cnJlbnRSb3cgPSB0aGlzLnJvdygpO1xuXG4gICAgaWYgKGN1cnJlbnRSb3cgJiYgaXNHcm91cFJvdyhjdXJyZW50Um93KSkge1xuICAgICAgdGhpcy5jZWxsVGVtcGxhdGUgPSB0aGlzLmNvbHVtbi5ncm91cEhlYWRlclRlbXBsYXRlIHx8IHRoaXMuY29sdW1uLmNlbGxUZW1wbGF0ZTtcbiAgICB9IGVsc2UgaWYgKGN1cnJlbnRSb3cgJiYgaXNHcm91cEZvb3RlclJvdyhjdXJyZW50Um93KSkge1xuICAgICAgdGhpcy5jZWxsVGVtcGxhdGUgPSB0aGlzLmNvbHVtbi5ncm91cEZvb3RlclRlbXBsYXRlIHx8IHRoaXMuY29sdW1uLmNlbGxUZW1wbGF0ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jZWxsVGVtcGxhdGUgPSB0aGlzLmNvbHVtbi5jZWxsVGVtcGxhdGU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfbGlzdGVuR3JvdXBPcGVuKCkge1xuICAgIGNvbnN0IGN1cnJlbnRSb3cgPSB0aGlzLnJvdygpO1xuXG4gICAgaWYgKGN1cnJlbnRSb3cgJiYgaXNHcm91cFJvdyhjdXJyZW50Um93KSkge1xuICAgICAgY3VycmVudFJvdy5leHBhbmRlZCRcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKChzdGF0dXMpID0+IHtcbiAgICAgICAgICB0aGlzLmNlbGxDb250ZXh0LmV4cGFuZGVkID0gc3RhdHVzO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJjZWxsVGVtcGxhdGUgfHwgZGVmYXVsdENlbGxUZW1wbGF0ZVwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJjZWxsQ29udGV4dFwiPjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2RlZmF1bHRDZWxsVGVtcGxhdGUgbGV0LXZhbHVlPVwidmFsdWVcIj5cclxuICB7e3ZhbHVlfX1cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|
|
@@ -7,10 +7,10 @@ export class FsFooterCellComponent extends FsCellComponent {
|
|
|
7
7
|
super();
|
|
8
8
|
}
|
|
9
9
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsFooterCellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: FsFooterCellComponent, isStandalone: true, selector: "[fs-list-footer-cell]", usesInheritance: true, ngImport: i0, template: "<ng-template [ngTemplateOutlet]=\"column.footerTemplate || cell\" [ngTemplateOutletContext]=\"cellContext\"></ng-template>\n\n<ng-template #cell let-value=\"value\">\n {{value}}\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
10
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: FsFooterCellComponent, isStandalone: true, selector: "[fs-list-footer-cell]", usesInheritance: true, ngImport: i0, template: "<ng-template [ngTemplateOutlet]=\"column.footerTemplate || cell\" [ngTemplateOutletContext]=\"cellContext\"></ng-template>\r\n\r\n<ng-template #cell let-value=\"value\">\r\n {{value}}\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
11
11
|
}
|
|
12
12
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsFooterCellComponent, decorators: [{
|
|
13
13
|
type: Component,
|
|
14
|
-
args: [{ selector: '[fs-list-footer-cell]', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgTemplateOutlet], template: "<ng-template [ngTemplateOutlet]=\"column.footerTemplate || cell\" [ngTemplateOutletContext]=\"cellContext\"></ng-template>\n\n<ng-template #cell let-value=\"value\">\n {{value}}\n</ng-template>\n" }]
|
|
14
|
+
args: [{ selector: '[fs-list-footer-cell]', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgTemplateOutlet], template: "<ng-template [ngTemplateOutlet]=\"column.footerTemplate || cell\" [ngTemplateOutletContext]=\"cellContext\"></ng-template>\r\n\r\n<ng-template #cell let-value=\"value\">\r\n {{value}}\r\n</ng-template>\r\n" }]
|
|
15
15
|
}], ctorParameters: () => [] });
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9vdGVyLWNlbGwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnRzL2Zvb3Rlci9mb290ZXItcm93L2Zvb3Rlci1jZWxsL2Zvb3Rlci1jZWxsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9mb290ZXIvZm9vdGVyLXJvdy9mb290ZXItY2VsbC9mb290ZXItY2VsbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFVbkQsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGVBQWU7SUFFeEQ7UUFDRSxLQUFLLEVBQUUsQ0FBQztJQUNWLENBQUM7dUdBSlUscUJBQXFCOzJGQUFyQixxQkFBcUIsd0dDYmxDLGdOQUtBLDRDRE1jLGdCQUFnQjs7MkZBRWpCLHFCQUFxQjtrQkFQakMsU0FBUzsrQkFDSSx1QkFBdUIsbUJBRWhCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBGc0NlbGxDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9ib2R5L3Jvdy9jZWxsL2NlbGwuY29tcG9uZW50JztcbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnW2ZzLWxpc3QtZm9vdGVyLWNlbGxdJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9vdGVyLWNlbGwuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nVGVtcGxhdGVPdXRsZXRdLFxufSlcclxuZXhwb3J0IGNsYXNzIEZzRm9vdGVyQ2VsbENvbXBvbmVudCBleHRlbmRzIEZzQ2VsbENvbXBvbmVudCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcbn1cclxuIiwiPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbHVtbi5mb290ZXJUZW1wbGF0ZSB8fCBjZWxsXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cImNlbGxDb250ZXh0XCI+PC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjY2VsbCBsZXQtdmFsdWU9XCJ2YWx1ZVwiPlxyXG4gIHt7dmFsdWV9fVxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
|
|
@@ -19,4 +19,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
19
19
|
AsyncPipe,
|
|
20
20
|
], template: "<div class=\"wrap\">\n <span class=\"title\">\n @if (!column.headerTemplate) {\n {{ column.title }}\n }\n @if (column.headerTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"column.headerTemplate\"\n [ngTemplateOutletContext]=\"cellContext\">\n </ng-template>\n }\n </span>\n @if (column.ordered$ | async) {\n @switch (column.sortingDirection$ | async) {\n @case ('asc') {\n <mat-icon>\n arrow_downward\n </mat-icon>\n }\n @case ('desc') {\n <mat-icon>\n arrow_upward\n </mat-icon>\n }\n }\n } @else if (column.sortable) {\n <mat-icon>\n unfold_more\n </mat-icon>\n }\n</div>", styles: [".wrap{display:inline-flex;align-items:center}.wrap mat-icon{font-size:13px;display:block;height:13px;width:13px;margin-left:4px}\n"] }]
|
|
21
21
|
}] });
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZC1jZWxsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9oZWFkL2hlYWQtY2VsbC9oZWFkLWNlbGwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnRzL2hlYWQvaGVhZC1jZWxsL2hlYWQtY2VsbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOztBQWVyRSxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsZUFBZTtJQUUvQyxXQUFXLEdBQVEsRUFBRSxDQUFDO0lBRXRCLGVBQWU7UUFDcEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDN0MsQ0FBQzt1R0FOVSxtQkFBbUI7MkZBQW5CLG1CQUFtQixpR0NwQmhDLGtzQkE4Qk0sNExEZkYsZ0JBQWdCLG9KQUNoQixPQUFPLHNJQUNQLFNBQVM7OzJGQUdBLG1CQUFtQjtrQkFaL0IsU0FBUzsrQkFDRSxnQkFBZ0IsbUJBR1QsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsZ0JBQWdCO3dCQUNoQixPQUFPO3dCQUNQLFNBQVM7cUJBQ1YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcblxyXG5pbXBvcnQgeyBGc0NlbGxDb21wb25lbnQgfSBmcm9tICcuLi8uLi9ib2R5L3Jvdy9jZWxsL2NlbGwuY29tcG9uZW50JztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ1tmcy1oZWFkLWNlbGxdJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaGVhZC1jZWxsLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9oZWFkLWNlbGwuY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXHJcbiAgICBNYXRJY29uLFxyXG4gICAgQXN5bmNQaXBlLFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGc0hlYWRDZWxsQ29tcG9uZW50IGV4dGVuZHMgRnNDZWxsQ29tcG9uZW50IHtcclxuXHJcbiAgcHVibGljIGNlbGxDb250ZXh0OiBhbnkgPSB7fTtcclxuXHJcbiAgcHVibGljIGluaXRDZWxsQ29udGV4dCgpIHtcclxuICAgIHRoaXMuY2VsbENvbnRleHQudmFsdWUgPSB0aGlzLmNvbHVtbi50aXRsZTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIndyYXBcIj5cbiAgPHNwYW4gY2xhc3M9XCJ0aXRsZVwiPlxuICAgIEBpZiAoIWNvbHVtbi5oZWFkZXJUZW1wbGF0ZSkge1xuICAgICAge3sgY29sdW1uLnRpdGxlIH19XG4gICAgfVxuICAgIEBpZiAoY29sdW1uLmhlYWRlclRlbXBsYXRlKSB7XG4gICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29sdW1uLmhlYWRlclRlbXBsYXRlXCJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cImNlbGxDb250ZXh0XCI+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIH1cbiAgPC9zcGFuPlxuICBAaWYgKGNvbHVtbi5vcmRlcmVkJCB8IGFzeW5jKSB7XG4gICAgQHN3aXRjaCAoY29sdW1uLnNvcnRpbmdEaXJlY3Rpb24kIHwgYXN5bmMpIHtcbiAgICAgIEBjYXNlICgnYXNjJykge1xuICAgICAgICA8bWF0LWljb24+XG4gICAgICAgICAgYXJyb3dfZG93bndhcmRcbiAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgIH1cbiAgICAgIEBjYXNlICgnZGVzYycpIHtcbiAgICAgICAgPG1hdC1pY29uPlxuICAgICAgICAgIGFycm93X3Vwd2FyZFxuICAgICAgICA8L21hdC1pY29uPlxuICAgICAgfVxuICAgIH1cbiAgfSBAZWxzZSBpZiAoY29sdW1uLnNvcnRhYmxlKSB7XG4gICAgPG1hdC1pY29uPlxuICAgICAgdW5mb2xkX21vcmVcbiAgICA8L21hdC1pY29uPlxuICB9XG48L2Rpdj4iXX0=
|