ngx-sp-infra 3.4.3-test → 3.4.4-test
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/infra.module.mjs +6 -11
- package/esm2022/lib/utils/utils.mjs +31 -1
- package/esm2022/lib/widgets/lib-transfer-list/inner-list/inner-list.component.mjs +97 -0
- package/esm2022/lib/widgets/lib-transfer-list/lib-transfer-list.component.mjs +37 -102
- package/esm2022/lib/widgets/table/table.component.mjs +6 -2
- package/esm2022/public-api.mjs +2 -3
- package/fesm2022/ngx-sp-infra.mjs +456 -614
- package/fesm2022/ngx-sp-infra.mjs.map +1 -1
- package/lib/infra.module.d.ts +30 -31
- package/lib/utils/utils.d.ts +2 -0
- package/lib/widgets/lib-transfer-list/inner-list/inner-list.component.d.ts +30 -0
- package/lib/widgets/lib-transfer-list/lib-transfer-list.component.d.ts +13 -9
- package/lib/widgets/table/table.component.d.ts +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +1 -2
- package/esm2022/lib/widgets/lib-transfer-list/first-list/first-list.component.mjs +0 -112
- package/esm2022/lib/widgets/lib-transfer-list/second-list/second-list.component.mjs +0 -116
- package/lib/widgets/lib-transfer-list/first-list/first-list.component.d.ts +0 -33
- package/lib/widgets/lib-transfer-list/second-list/second-list.component.d.ts +0 -34
|
@@ -64,8 +64,7 @@ import { NgxCurrencyDirective } from 'ngx-currency';
|
|
|
64
64
|
import { NgxMaskDirective, NgxMaskPipe } from 'ngx-mask';
|
|
65
65
|
import { PageNotAuthorizedComponent } from './components/page-not-authorized/page-not-authorized.component';
|
|
66
66
|
import { LibTransferListComponent } from './widgets/lib-transfer-list/lib-transfer-list.component';
|
|
67
|
-
import {
|
|
68
|
-
import { LibSecondListComponent } from './widgets/lib-transfer-list/second-list/second-list.component';
|
|
67
|
+
import { InnerListComponent } from './widgets/lib-transfer-list/inner-list/inner-list.component';
|
|
69
68
|
import * as i0 from "@angular/core";
|
|
70
69
|
import * as i1 from "ngx-bootstrap/modal";
|
|
71
70
|
import * as i2 from "ngx-bootstrap/accordion";
|
|
@@ -110,8 +109,7 @@ export class InfraModule {
|
|
|
110
109
|
LoadingBtnDirective,
|
|
111
110
|
InputTrimComponent,
|
|
112
111
|
LibTransferListComponent,
|
|
113
|
-
|
|
114
|
-
LibSecondListComponent,
|
|
112
|
+
InnerListComponent,
|
|
115
113
|
// #region Componentes portados (ainda serão organizados)
|
|
116
114
|
ComboboxMultipleChoiceComponent,
|
|
117
115
|
CustomAcordionComponent,
|
|
@@ -171,8 +169,7 @@ export class InfraModule {
|
|
|
171
169
|
LibSpinnerComponent,
|
|
172
170
|
LoadingBtnDirective,
|
|
173
171
|
LibTransferListComponent,
|
|
174
|
-
|
|
175
|
-
LibSecondListComponent,
|
|
172
|
+
InnerListComponent,
|
|
176
173
|
// #region Componentes portados (ainda serão organizados)
|
|
177
174
|
ComboboxMultipleChoiceComponent,
|
|
178
175
|
CustomAcordionComponent,
|
|
@@ -244,8 +241,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
244
241
|
LoadingBtnDirective,
|
|
245
242
|
InputTrimComponent,
|
|
246
243
|
LibTransferListComponent,
|
|
247
|
-
|
|
248
|
-
LibSecondListComponent,
|
|
244
|
+
InnerListComponent,
|
|
249
245
|
// #region Componentes portados (ainda serão organizados)
|
|
250
246
|
ComboboxMultipleChoiceComponent,
|
|
251
247
|
CustomAcordionComponent,
|
|
@@ -316,8 +312,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
316
312
|
LibSpinnerComponent,
|
|
317
313
|
LoadingBtnDirective,
|
|
318
314
|
LibTransferListComponent,
|
|
319
|
-
|
|
320
|
-
LibSecondListComponent,
|
|
315
|
+
InnerListComponent,
|
|
321
316
|
// #region Componentes portados (ainda serão organizados)
|
|
322
317
|
ComboboxMultipleChoiceComponent,
|
|
323
318
|
CustomAcordionComponent,
|
|
@@ -343,4 +338,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
343
338
|
providers: [],
|
|
344
339
|
}]
|
|
345
340
|
}] });
|
|
346
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mcmEubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNwLWluZnJhL3NyYy9saWIvaW5mcmEubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw0RUFBNEUsQ0FBQztBQUMxSCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQztBQUM1RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUNwRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUN6RyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw2REFBNkQs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Qix1QkFBdUI7d0JBQ3ZCLG9CQUFvQjt3QkFDcEIsaUJBQWlCO3dCQUNqQixrQkFBa0I7d0JBQ2xCLGlCQUFpQjt3QkFDakIsY0FBYzt3QkFDZCx5QkFBeUI7d0JBQ3pCLHNCQUFzQjt3QkFDdEIsY0FBYzt3QkFDZCxtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFFbkIsd0JBQXdCO3dCQUN4QixxQkFBcUI7d0JBQ3JCLHNCQUFzQjt3QkFFdEIseURBQXlEO3dCQUN6RCwrQkFBK0I7d0JBQy9CLHVCQUF1Qjt3QkFDdkIsd0JBQXdCO3dCQUN4QixxQkFBcUI7d0JBQ3JCLHFCQUFxQjt3QkFDckIsbUJBQW1CO3dCQUNuQixzQkFBc0I7d0JBQ3RCLHdCQUF3Qjt3QkFDeEIscUJBQXFCO3dCQUVyQix1QkFBdUI7d0JBQ3ZCLGtCQUFrQjt3QkFFbEIsZ0JBQWdCO3dCQUNoQix3QkFBd0I7d0JBQ3hCLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixhQUFhO3dCQUViLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixxQkFBcUI7d0JBQ3JCLDREQUE0RDtxQkFDN0Q7b0JBQ0QsU0FBUyxFQUFFLEVBQUU7aUJBQ2QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL3RlbXBsYXRlcy9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgQWNjb3JkaW9uTW9kdWxlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9hY2NvcmRpb24nO1xuaW1wb3J0IHsgTW9kYWxNb2R1bGUgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcblxuaW1wb3J0IHsgQWxlcnRDb21wb25lbnQgfSBmcm9tICcuL21lc3NhZ2UvYWxlcnQvYWxlcnQuY29tcG9uZW50JztcbmltcG9ydCB7IENvbmZpcm1Db21wb25lbnQgfSBmcm9tICcuL21lc3NhZ2UvY29uZmlybS9jb25maXJtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb25maXJtTW9kYWxDb21wb25lbnQgfSBmcm9tICcuL21lc3NhZ2UvY29uZmlybS1tb2RhbC9jb25maXJtLW1vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTYXZlQ29tcG9uZW50IH0gZnJvbSAnLi9tZXNzYWdlL3NhdmUvc2F2ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5mcmFCcmVhZGNydW1iSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9icmVhZGNydW1iL2luZnJhLWJyZWFkY3J1bWItaXRlbS9pbmZyYS1icmVhZGNydW1iLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IEluZnJhQnJlYWRjcnVtYkNvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9icmVhZGNydW1iL2luZnJhLWJyZWFkY3J1bWIvaW5mcmEtYnJlYWRjcnVtYi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnJlYWRjcnVtYkNvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9icmVhZGNydW1iL3BvcnRhbHJoLWJyZWFkY3J1bWIvYnJlYWRjcnVtYi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tYm9ib3hDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldHMvY29tYm9ib3gvY29tYm9ib3guY29tcG9uZW50JztcbmltcG9ydCB7IEZpZWxkQ29udHJvbEVycm9yQ29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXRzL2ZpZWxkLWNvbnRyb2wtZXJyb3IvZmllbGQtY29udHJvbC1lcnJvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmllbGRFcnJvck1lc3NhZ2VDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldHMvZmllbGQtZXJyb3ItbWVzc2FnZS9maWVsZC1lcnJvci1tZXNzYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMb2FkaW5nQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXRzL2xvYWRpbmctYnV0dG9uL2xvYWRpbmctYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMb2FkaW5nQ29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXRzL2xvYWRpbmcvbG9hZGluZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgVHJlZUNvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy90cmVlL3RyZWUuY29tcG9uZW50JztcbmltcG9ydCB7IFN2Z1N0b3JhZ2VDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldHMvc3ZnLXN0b3JhZ2Uvc3ZnLXN0b3JhZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IFRvVXJsUGlwZSB9IGZyb20gJy4vcGlwZXMvdG8tdXJsLnBpcGUnO1xuaW1wb3J0IHsgQ3BmQ25walBpcGUgfSBmcm9tICcuL3BpcGVzL2NwZi1jbnBqLnBpcGUnO1xuaW1wb3J0IHsgRmlsdGVyQnlQaXBlIH0gZnJvbSAnLi93aWRnZXRzL2NvbWJvYm94L3BpcGVzL2ZpbHRlci1ieS5waXBlJztcbmltcG9ydCB7IExpbWl0VG9QaXBlIH0gZnJvbSAnLi93aWRnZXRzL2NvbWJvYm94L3BpcGVzL2xpbWl0LXRvLnBpcGUnO1xuaW1wb3J0IHsgU2VhcmNoVHJlZVBpcGUgfSBmcm9tICcuL3dpZGdldHMvdHJlZS9waXBlcy9zZWFyY2gtdHJlZS5waXBlJztcbmltcG9ydCB7IENsaWNrT3V0c2lkZURpcmVjdGl2ZSB9IGZyb20gJy4vd2lkZ2V0cy9jbGljay1vdXRzaWRlL2NsaWNrb3V0c2lkZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgT3JkZXJpbmdDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldHMvb3JkZXJpbmcvb3JkZXJpbmcuY29tcG9uZW50JztcbmltcG9ydCB7IFRvb2x0aXBNb2R1bGUgfSBmcm9tICduZ3gtYm9vdHN0cmFwL3Rvb2x0aXAnO1xuXG5pbXBvcnQgeyBTZWFyY2hDb21ib2JveENvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9zZWFyY2gtY29tYm9ib3gvc2VhcmNoLWNvbWJvYm94LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZXF1aXJlZERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9yZXF1aXJlZC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU2ltcGxlSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi90ZW1wbGF0ZXMvc2ltcGxlLWhlYWRlci9zaW1wbGUtaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMaWJJY29uc0NvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9saWItaWNvbnMvbGliLWljb25zLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXh0RmlsdGVyUGlwZSB9IGZyb20gJy4vcGlwZXMvdGV4dC1maWx0ZXIucGlwZSc7XG5pbXBvcnQgeyBDb250ZW50Q29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXRzL2NvbnRlbnQtY29udGFpbmVyL2NvbnRlbnQtY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb3B5Q2xpcGJvYXJkRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2NvcHktY2xpcGJvYXJkLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy90YWJsZS90YWJsZS5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBOZ3hQYWdpbmF0aW9uTW9kdWxlIH0gZnJvbSAnbmd4LXBhZ2luYXRpb24nO1xuaW1wb3J0IHsgTGliQ29tYm9ib3hDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldHMvbGliLWNvbWJvYm94L2xpYi1jb21ib2JveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmllbGRDb250YWRvck1lc3NhZ2VDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldHMvZmllbGQtY29udGFkb3ItbWVzc2FnZS9maWVsZC1jb250YWRvci1tZXNzYWdlLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IExpYlNwaW5uZXJDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldHMvc3Bpbm5lci9zcGlubmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMb2FkaW5nQnRuRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2xvYWRpbmctYnRuLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBOYXZQcm9kdXRvc0NvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9uYXYtcHJvZHV0b3MvbmF2LXByb2R1dG9zLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21ib2JveE11bHRpcGxlQ2hvaWNlQ29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXRzL2NvbWJvYm94LW11bHRpcGxlLWNob2ljZS9jb21ib2JveC1tdWx0aXBsZS1jaG9pY2UuY29tcG9uZW50JztcbmltcG9ydCB7IEN1c3RvbUFjb3JkaW9uQ29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXRzL2N1c3RvbS1hY29yZGlvbi9jdXN0b20tYWNvcmRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IERyb3Bkb3duT3B0aW9uc0NvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9kcm9wZG93bi1vcHRpb25zL2Ryb3Bkb3duLW9wdGlvbnMuY29tcG9uZW50JztcbmltcG9ydCB7IER5bmFtaWNJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9keW5hbWljLWlucHV0L2R5bmFtaWMtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEdlbmVyaWNNb2RhbENvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9nZW5lcmljLW1vZGFsL2dlbmVyaWMtbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IFBhZ2luYXRpb25Db21wb25lbnQgfSBmcm9tICcuL3dpZGdldHMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWFyY2hGaWx0ZXJzQ29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXRzL3NlYXJjaC1maWx0ZXJzL3NlYXJjaC1maWx0ZXJzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaWRlVGFic0dlbmVyaWNDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldHMvc2lkZS10YWJzLWdlbmVyaWMvc2lkZS10YWJzLWdlbmVyaWMuY29tcG9uZW50JztcbmltcG9ydCB7IFNpbXBsZVNlYXJjaENvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9zaW1wbGUtc2VhcmNoL3NpbXBsZS1zZWFyY2guY29tcG9uZW50JztcbmltcG9ydCB7IERpc2FibGVDb250cm9sRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2Rpc2FibGUtY29udHJvbC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSGlnaGxpZ2h0RGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2hpZ2hsaWdodC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRGVjaW1hbENvbW1hUGlwZSB9IGZyb20gJy4vcGlwZXMvZGVjaW1hbC1jb21tYS5waXBlJztcbmltcG9ydCB7IEZpbHRlck11bHRpcGxlQ2hvaWNlUGlwZSB9IGZyb20gJy4vcGlwZXMvZmlsdGVyLW11bHRpcGxlLWNob2ljZS5waXBlJztcbmltcG9ydCB7IE9yZGVyU29ydFBpcGUgfSBmcm9tICcuL3BpcGVzL29yZGVyLXNvcnQucGlwZSc7XG5pbXBvcnQgeyBQaG9uZUZvcm1hdFBpcGUgfSBmcm9tICcuL3BpcGVzL3Bob25lLWZvcm1hdC5waXBlJztcbmltcG9ydCB7IFRpdGxlQ2FzZVBpcGUgfSBmcm9tICcuL3BpcGVzL3RpdGxlLWNhc2UtcGlwZS5waXBlJztcbmltcG9ydCB7IEZvb3RlckNvbXBvbmVudCB9IGZyb20gJy4vdGVtcGxhdGVzL2Zvb3Rlci9mb290ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IExpYkhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9saWItaGVhZGVyL2xpYi1oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IElucHV0VHJpbUNvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9pbnB1dC10cmltL2lucHV0LXRyaW0uY29tcG9uZW50JztcbmltcG9ydCB7IE5neEN1cnJlbmN5RGlyZWN0aXZlIH0gZnJvbSAnbmd4LWN1cnJlbmN5JztcbmltcG9ydCB7IE5neE1hc2tEaXJlY3RpdmUsIE5neE1hc2tQaXBlIH0gZnJvbSAnbmd4LW1hc2snO1xuaW1wb3J0IHsgUGFnZU5vdEF1dGhvcml6ZWRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcGFnZS1ub3QtYXV0aG9yaXplZC9wYWdlLW5vdC1hdXRob3JpemVkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMaWJUcmFuc2Zlckxpc3RDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldHMvbGliLXRyYW5zZmVyLWxpc3QvbGliLXRyYW5zZmVyLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IExpYkZpcnN0TGlzdENvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9saWItdHJhbnNmZXItbGlzdC9maXJzdC1saXN0L2ZpcnN0LWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IExpYlNlY29uZExpc3RDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldHMvbGliLXRyYW5zZmVyLWxpc3Qvc2Vjb25kLWxpc3Qvc2Vjb25kLWxpc3QuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgUGFnZU5vdEF1dGhvcml6ZWRDb21wb25lbnQsXG4gICAgXG4gICAgTG9hZGluZ0NvbXBvbmVudCxcbiAgICBGaWVsZENvbnRyb2xFcnJvckNvbXBvbmVudCxcbiAgICBGaWVsZEVycm9yTWVzc2FnZUNvbXBvbmVudCxcbiAgICBGaWVsZENvbnRhZG9yTWVzc2FnZUNvbXBvbmVudCxcbiAgICBJbnB1dFRyaW1Db21wb25lbnQsXG4gICAgTG9hZGluZ0J1dHRvbkNvbXBvbmVudCxcbiAgICBBbGVydENvbXBvbmVudCxcbiAgICBDb25maXJtQ29tcG9uZW50LFxuICAgIENvbmZpcm1Nb2RhbENvbXBvbmVudCxcbiAgICBTYXZlQ29tcG9uZW50LFxuICAgIEluZnJhQnJlYWRjcnVtYkNvbXBvbmVudCxcbiAgICBJbmZyYUJyZWFkY3J1bWJJdGVtQ29tcG9uZW50LFxuICAgIEJyZWFkY3J1bWJDb21wb25lbnQsXG4gICAgQ29tYm9ib3hDb21wb25lbnQsXG4gICAgU3ZnU3RvcmFnZUNvbXBvbmVudCxcbiAgICBOYXZQcm9kdXRvc0NvbXBvbmVudCxcbiAgICBUcmVlQ29tcG9uZW50LFxuICAgIFRvVXJsUGlwZSxcbiAgICBDcGZDbnBqUGlwZSxcbiAgICBGaWx0ZXJCeVBpcGUsXG4gICAgTGltaXRUb1BpcGUsXG4gICAgU2VhcmNoVHJlZVBpcGUsXG4gICAgQ2xpY2tPdXRzaWRlRGlyZWN0aXZlLFxuICAgIE9yZGVyaW5nQ29tcG9uZW50LFxuICAgIFNlYXJjaENvbWJvYm94Q29tcG9uZW50LFxuICAgIExpYkNvbWJvYm94Q29tcG9uZW50LCAvLyBOb3ZvIGNvbWJvYm94LCBzdWJzdGl0dWlyw6EgbyBTZWFyY2ggZnV0dXJhbWVudGVcbiAgICBSZXF1aXJlZERpcmVjdGl2ZSxcbiAgICBMaWJIZWFkZXJDb21wb25lbnQsXG4gICAgTGliSWNvbnNDb21wb25lbnQsXG4gICAgVGV4dEZpbHRlclBpcGUsXG4gICAgQ29udGVudENvbnRhaW5lckNvbXBvbmVudCxcbiAgICBDb3B5Q2xpcGJvYXJkRGlyZWN0aXZlLFxuICAgIFRhYmxlQ29tcG9uZW50LFxuICAgIExpYlNwaW5uZXJDb21wb25lbnQsXG4gICAgTG9hZGluZ0J0bkRpcmVjdGl2ZSxcbiAgICBJbnB1dFRyaW1Db21wb25lbnQsXG5cbiAgICBMaWJUcmFuc2Zlckxpc3RDb21wb25lbnQsXG4gICAgTGliRmlyc3RMaXN0Q29tcG9uZW50LFxuICAgIExpYlNlY29uZExpc3RDb21wb25lbnQsXG5cbiAgICAvLyAjcmVnaW9uIENvbXBvbmVudGVzIHBvcnRhZG9zIChhaW5kYSBzZXLDo28gb3JnYW5pemFkb3MpXG4gICAgQ29tYm9ib3hNdWx0aXBsZUNob2ljZUNvbXBvbmVudCxcbiAgICBDdXN0b21BY29yZGlvbkNvbXBvbmVudCxcbiAgICBEcm9wZG93bk9wdGlvbnNDb21wb25lbnQsXG4gICAgRHluYW1pY0lucHV0Q29tcG9uZW50LFxuICAgIEdlbmVyaWNNb2RhbENvbXBvbmVudCxcbiAgICBQYWdpbmF0aW9uQ29tcG9uZW50LFxuICAgIFNlYXJjaEZpbHRlcnNDb21wb25lbnQsXG4gICAgU2lkZVRhYnNHZW5lcmljQ29tcG9uZW50LFxuICAgIFNpbXBsZVNlYXJjaENvbXBvbmVudCxcblxuICAgIERpc2FibGVDb250cm9sRGlyZWN0aXZlLFxuICAgIEhpZ2hsaWdodERpcmVjdGl2ZSxcblxuICAgIERlY2ltYWxDb21tYVBpcGUsXG4gICAgRmlsdGVyTXVsdGlwbGVDaG9pY2VQaXBlLFxuICAgIE9yZGVyU29ydFBpcGUsXG4gICAgUGhvbmVGb3JtYXRQaXBlLFxuICAgIFRpdGxlQ2FzZVBpcGUsXG5cbiAgICBGb290ZXJDb21wb25lbnQsXG4gICAgSGVhZGVyQ29tcG9uZW50LFxuICAgIFNpbXBsZUhlYWRlckNvbXBvbmVudCxcbiAgICAvLyAjZW5kcmVnaW9uIENvbXBvbmVudGVzIHBvcnRhZG9zIChhaW5kYSBzZXLDo28gb3JnYW5pemFkb3MpXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTW9kYWxNb2R1bGUuZm9yUm9vdCgpLFxuICAgIEFjY29yZGlvbk1vZHVsZS5mb3JSb290KCksXG4gICAgVG9vbHRpcE1vZHVsZS5mb3JSb290KCksXG4gICAgRm9ybXNNb2R1bGUsXG5cdFx0Tmd4Q3VycmVuY3lEaXJlY3RpdmUsXG4gICAgTmd4TWFza0RpcmVjdGl2ZSwgXG5cdFx0Tmd4TWFza1BpcGUsXG4gICAgTmd4UGFnaW5hdGlvbk1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFJvdXRlck1vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgUGFnZU5vdEF1dGhvcml6ZWRDb21wb25lbnQsXG4gICAgXG4gICAgTG9hZGluZ0NvbXBvbmVudCxcbiAgICBGaWVsZENvbnRyb2xFcnJvckNvbXBvbmVudCxcbiAgICBGaWVsZEVycm9yTWVzc2FnZUNvbXBvbmVudCxcbiAgICBGaWVsZENvbnRhZG9yTWVzc2FnZUNvbXBvbmVudCxcbiAgICBJbnB1dFRyaW1Db21wb25lbnQsXG4gICAgTG9hZGluZ0J1dHRvbkNvbXBvbmVudCxcbiAgICBBbGVydENvbXBvbmVudCxcbiAgICBDb25maXJtQ29tcG9uZW50LFxuICAgIENvbmZpcm1Nb2RhbENvbXBvbmVudCxcbiAgICBTYXZlQ29tcG9uZW50LFxuICAgIEluZnJhQnJlYWRjcnVtYkNvbXBvbmVudCxcbiAgICBJbmZyYUJyZWFkY3J1bWJJdGVtQ29tcG9uZW50LFxuICAgIE5hdlByb2R1dG9zQ29tcG9uZW50LFxuICAgIEJyZWFkY3J1bWJDb21wb25lbnQsXG4gICAgQ29tYm9ib3hDb21wb25lbnQsXG4gICAgU3ZnU3RvcmFnZUNvbXBvbmVudCxcbiAgICBUcmVlQ29tcG9uZW50LFxuICAgIFRvVXJsUGlwZSxcbiAgICBDcGZDbnBqUGlwZSxcbiAgICBDbGlja091dHNpZGVEaXJlY3RpdmUsXG4gICAgT3JkZXJpbmdDb21wb25lbnQsXG4gICAgU2VhcmNoQ29tYm9ib3hDb21wb25lbnQsXG4gICAgTGliQ29tYm9ib3hDb21wb25lbnQsXG4gICAgUmVxdWlyZWREaXJlY3RpdmUsXG4gICAgTGliSGVhZGVyQ29tcG9uZW50LFxuICAgIExpYkljb25zQ29tcG9uZW50LFxuICAgIFRleHRGaWx0ZXJQaXBlLFxuICAgIENvbnRlbnRDb250YWluZXJDb21wb25lbnQsXG4gICAgQ29weUNsaXBib2FyZERpcmVjdGl2ZSxcbiAgICBUYWJsZUNvbXBvbmVudCxcbiAgICBMaWJTcGlubmVyQ29tcG9uZW50LFxuICAgIExvYWRpbmdCdG5EaXJlY3RpdmUsXG5cbiAgICBMaWJUcmFuc2Zlckxpc3RDb21wb25lbnQsXG4gICAgTGliRmlyc3RMaXN0Q29tcG9uZW50LFxuICAgIExpYlNlY29uZExpc3RDb21wb25lbnQsXG5cbiAgICAvLyAjcmVnaW9uIENvbXBvbmVudGVzIHBvcnRhZG9zIChhaW5kYSBzZXLDo28gb3JnYW5pemFkb3MpXG4gICAgQ29tYm9ib3hNdWx0aXBsZUNob2ljZUNvbXBvbmVudCxcbiAgICBDdXN0b21BY29yZGlvbkNvbXBvbmVudCxcbiAgICBEcm9wZG93bk9wdGlvbnNDb21wb25lbnQsXG4gICAgRHluYW1pY0lucHV0Q29tcG9uZW50LFxuICAgIEdlbmVyaWNNb2RhbENvbXBvbmVudCxcbiAgICBQYWdpbmF0aW9uQ29tcG9uZW50LFxuICAgIFNlYXJjaEZpbHRlcnNDb21wb25lbnQsXG4gICAgU2lkZVRhYnNHZW5lcmljQ29tcG9uZW50LFxuICAgIFNpbXBsZVNlYXJjaENvbXBvbmVudCxcblxuICAgIERpc2FibGVDb250cm9sRGlyZWN0aXZlLFxuICAgIEhpZ2hsaWdodERpcmVjdGl2ZSxcblxuICAgIERlY2ltYWxDb21tYVBpcGUsXG4gICAgRmlsdGVyTXVsdGlwbGVDaG9pY2VQaXBlLFxuICAgIE9yZGVyU29ydFBpcGUsXG4gICAgUGhvbmVGb3JtYXRQaXBlLFxuICAgIFRpdGxlQ2FzZVBpcGUsXG5cbiAgICBGb290ZXJDb21wb25lbnQsXG4gICAgSGVhZGVyQ29tcG9uZW50LFxuICAgIFNpbXBsZUhlYWRlckNvbXBvbmVudCxcbiAgICAvLyAjZW5kcmVnaW9uIENvbXBvbmVudGVzIHBvcnRhZG9zIChhaW5kYSBzZXLDo28gb3JnYW5pemFkb3MpXG4gIF0sXG4gIHByb3ZpZGVyczogW10sXG59KVxuZXhwb3J0IGNsYXNzIEluZnJhTW9kdWxlIHsgfVxuIl19
|
|
341
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mcmEubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNwLWluZnJhL3NyYy9saWIvaW5mcmEubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw0RUFBNEUsQ0FBQztBQUMxSCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQztBQUM1RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUNwRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUN6RyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw2REFBNkQs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QUF5Qjt3QkFDekIsc0JBQXNCO3dCQUN0QixjQUFjO3dCQUNkLG1CQUFtQjt3QkFDbkIsbUJBQW1CO3dCQUVuQix3QkFBd0I7d0JBQ3hCLGtCQUFrQjt3QkFFbEIseURBQXlEO3dCQUN6RCwrQkFBK0I7d0JBQy9CLHVCQUF1Qjt3QkFDdkIsd0JBQXdCO3dCQUN4QixxQkFBcUI7d0JBQ3JCLHFCQUFxQjt3QkFDckIsbUJBQW1CO3dCQUNuQixzQkFBc0I7d0JBQ3RCLHdCQUF3Qjt3QkFDeEIscUJBQXFCO3dCQUVyQix1QkFBdUI7d0JBQ3ZCLGtCQUFrQjt3QkFFbEIsZ0JBQWdCO3dCQUNoQix3QkFBd0I7d0JBQ3hCLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixhQUFhO3dCQUViLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixxQkFBcUI7d0JBQ3JCLDREQUE0RDtxQkFDN0Q7b0JBQ0QsU0FBUyxFQUFFLEVBQUU7aUJBQ2QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL3RlbXBsYXRlcy9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgQWNjb3JkaW9uTW9kdWxlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9hY2NvcmRpb24nO1xuaW1wb3J0IHsgTW9kYWxNb2R1bGUgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcblxuaW1wb3J0IHsgQWxlcnRDb21wb25lbnQgfSBmcm9tICcuL21lc3NhZ2UvYWxlcnQvYWxlcnQuY29tcG9uZW50JztcbmltcG9ydCB7IENvbmZpcm1Db21wb25lbnQgfSBmcm9tICcuL21lc3NhZ2UvY29uZmlybS9jb25maXJtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb25maXJtTW9kYWxDb21wb25lbnQgfSBmcm9tICcuL21lc3NhZ2UvY29uZmlybS1tb2RhbC9jb25maXJtLW1vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTYXZlQ29tcG9uZW50IH0gZnJvbSAnLi9tZXNzYWdlL3NhdmUvc2F2ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5mcmFCcmVhZGNydW1iSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9icmVhZGNydW1iL2luZnJhLWJyZWFkY3J1bWItaXRlbS9pbmZyYS1icmVhZGNydW1iLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IEluZnJhQnJlYWRjcnVtYkNvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9icmVhZGNydW1iL2luZnJhLWJyZWFkY3J1bWIvaW5mcmEtYnJlYWRjcnVtYi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnJlYWRjcnVtYkNvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9icmVhZGNydW1iL3BvcnRhbHJoLWJyZWFkY3J1bWIvYnJlYWRjcnVtYi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tYm9ib3hDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldHMvY29tYm9ib3gvY29tYm9ib3guY29tcG9uZW50JztcbmltcG9ydCB7IEZpZWxkQ29udHJvbEVycm9yQ29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXRzL2ZpZWxkLWNvbnRyb2wtZXJyb3IvZmllbGQtY29udHJvbC1lcnJvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmllbGRFcnJvck1lc3NhZ2VDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldHMvZmllbGQtZXJyb3ItbWVzc2FnZS9maWVsZC1lcnJvci1tZXNzYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMb2FkaW5nQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXRzL2xvYWRpbmctYnV0dG9uL2xvYWRpbmctYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMb2FkaW5nQ29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXRzL2xvYWRpbmcvbG9hZGluZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgVHJlZUNvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy90cmVlL3RyZWUuY29tcG9uZW50JztcbmltcG9ydCB7IFN2Z1N0b3JhZ2VDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldHMvc3ZnLXN0b3JhZ2Uvc3ZnLXN0b3JhZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IFRvVXJsUGlwZSB9IGZyb20gJy4vcGlwZXMvdG8tdXJsLnBpcGUnO1xuaW1wb3J0IHsgQ3BmQ25walBpcGUgfSBmcm9tICcuL3BpcGVzL2NwZi1jbnBqLnBpcGUnO1xuaW1wb3J0IHsgRmlsdGVyQnlQaXBlIH0gZnJvbSAnLi93aWRnZXRzL2NvbWJvYm94L3BpcGVzL2ZpbHRlci1ieS5waXBlJztcbmltcG9ydCB7IExpbWl0VG9QaXBlIH0gZnJvbSAnLi93aWRnZXRzL2NvbWJvYm94L3BpcGVzL2xpbWl0LXRvLnBpcGUnO1xuaW1wb3J0IHsgU2VhcmNoVHJlZVBpcGUgfSBmcm9tICcuL3dpZGdldHMvdHJlZS9waXBlcy9zZWFyY2gtdHJlZS5waXBlJztcbmltcG9ydCB7IENsaWNrT3V0c2lkZURpcmVjdGl2ZSB9IGZyb20gJy4vd2lkZ2V0cy9jbGljay1vdXRzaWRlL2NsaWNrb3V0c2lkZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgT3JkZXJpbmdDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldHMvb3JkZXJpbmcvb3JkZXJpbmcuY29tcG9uZW50JztcbmltcG9ydCB7IFRvb2x0aXBNb2R1bGUgfSBmcm9tICduZ3gtYm9vdHN0cmFwL3Rvb2x0aXAnO1xuXG5pbXBvcnQgeyBTZWFyY2hDb21ib2JveENvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9zZWFyY2gtY29tYm9ib3gvc2VhcmNoLWNvbWJvYm94LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZXF1aXJlZERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9yZXF1aXJlZC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU2ltcGxlSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi90ZW1wbGF0ZXMvc2ltcGxlLWhlYWRlci9zaW1wbGUtaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMaWJJY29uc0NvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9saWItaWNvbnMvbGliLWljb25zLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXh0RmlsdGVyUGlwZSB9IGZyb20gJy4vcGlwZXMvdGV4dC1maWx0ZXIucGlwZSc7XG5pbXBvcnQgeyBDb250ZW50Q29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXRzL2NvbnRlbnQtY29udGFpbmVyL2NvbnRlbnQtY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb3B5Q2xpcGJvYXJkRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2NvcHktY2xpcGJvYXJkLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy90YWJsZS90YWJsZS5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBOZ3hQYWdpbmF0aW9uTW9kdWxlIH0gZnJvbSAnbmd4LXBhZ2luYXRpb24nO1xuaW1wb3J0IHsgTGliQ29tYm9ib3hDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldHMvbGliLWNvbWJvYm94L2xpYi1jb21ib2JveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmllbGRDb250YWRvck1lc3NhZ2VDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldHMvZmllbGQtY29udGFkb3ItbWVzc2FnZS9maWVsZC1jb250YWRvci1tZXNzYWdlLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IExpYlNwaW5uZXJDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldHMvc3Bpbm5lci9zcGlubmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMb2FkaW5nQnRuRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2xvYWRpbmctYnRuLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBOYXZQcm9kdXRvc0NvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9uYXYtcHJvZHV0b3MvbmF2LXByb2R1dG9zLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21ib2JveE11bHRpcGxlQ2hvaWNlQ29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXRzL2NvbWJvYm94LW11bHRpcGxlLWNob2ljZS9jb21ib2JveC1tdWx0aXBsZS1jaG9pY2UuY29tcG9uZW50JztcbmltcG9ydCB7IEN1c3RvbUFjb3JkaW9uQ29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXRzL2N1c3RvbS1hY29yZGlvbi9jdXN0b20tYWNvcmRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IERyb3Bkb3duT3B0aW9uc0NvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9kcm9wZG93bi1vcHRpb25zL2Ryb3Bkb3duLW9wdGlvbnMuY29tcG9uZW50JztcbmltcG9ydCB7IER5bmFtaWNJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9keW5hbWljLWlucHV0L2R5bmFtaWMtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEdlbmVyaWNNb2RhbENvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9nZW5lcmljLW1vZGFsL2dlbmVyaWMtbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IFBhZ2luYXRpb25Db21wb25lbnQgfSBmcm9tICcuL3dpZGdldHMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWFyY2hGaWx0ZXJzQ29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXRzL3NlYXJjaC1maWx0ZXJzL3NlYXJjaC1maWx0ZXJzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaWRlVGFic0dlbmVyaWNDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldHMvc2lkZS10YWJzLWdlbmVyaWMvc2lkZS10YWJzLWdlbmVyaWMuY29tcG9uZW50JztcbmltcG9ydCB7IFNpbXBsZVNlYXJjaENvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9zaW1wbGUtc2VhcmNoL3NpbXBsZS1zZWFyY2guY29tcG9uZW50JztcbmltcG9ydCB7IERpc2FibGVDb250cm9sRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2Rpc2FibGUtY29udHJvbC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSGlnaGxpZ2h0RGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2hpZ2hsaWdodC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRGVjaW1hbENvbW1hUGlwZSB9IGZyb20gJy4vcGlwZXMvZGVjaW1hbC1jb21tYS5waXBlJztcbmltcG9ydCB7IEZpbHRlck11bHRpcGxlQ2hvaWNlUGlwZSB9IGZyb20gJy4vcGlwZXMvZmlsdGVyLW11bHRpcGxlLWNob2ljZS5waXBlJztcbmltcG9ydCB7IE9yZGVyU29ydFBpcGUgfSBmcm9tICcuL3BpcGVzL29yZGVyLXNvcnQucGlwZSc7XG5pbXBvcnQgeyBQaG9uZUZvcm1hdFBpcGUgfSBmcm9tICcuL3BpcGVzL3Bob25lLWZvcm1hdC5waXBlJztcbmltcG9ydCB7IFRpdGxlQ2FzZVBpcGUgfSBmcm9tICcuL3BpcGVzL3RpdGxlLWNhc2UtcGlwZS5waXBlJztcbmltcG9ydCB7IEZvb3RlckNvbXBvbmVudCB9IGZyb20gJy4vdGVtcGxhdGVzL2Zvb3Rlci9mb290ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IExpYkhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9saWItaGVhZGVyL2xpYi1oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IElucHV0VHJpbUNvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9pbnB1dC10cmltL2lucHV0LXRyaW0uY29tcG9uZW50JztcbmltcG9ydCB7IE5neEN1cnJlbmN5RGlyZWN0aXZlIH0gZnJvbSAnbmd4LWN1cnJlbmN5JztcbmltcG9ydCB7IE5neE1hc2tEaXJlY3RpdmUsIE5neE1hc2tQaXBlIH0gZnJvbSAnbmd4LW1hc2snO1xuaW1wb3J0IHsgUGFnZU5vdEF1dGhvcml6ZWRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcGFnZS1ub3QtYXV0aG9yaXplZC9wYWdlLW5vdC1hdXRob3JpemVkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMaWJUcmFuc2Zlckxpc3RDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldHMvbGliLXRyYW5zZmVyLWxpc3QvbGliLXRyYW5zZmVyLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IElubmVyTGlzdENvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9saWItdHJhbnNmZXItbGlzdC9pbm5lci1saXN0L2lubmVyLWxpc3QuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgUGFnZU5vdEF1dGhvcml6ZWRDb21wb25lbnQsXG4gICAgXG4gICAgTG9hZGluZ0NvbXBvbmVudCxcbiAgICBGaWVsZENvbnRyb2xFcnJvckNvbXBvbmVudCxcbiAgICBGaWVsZEVycm9yTWVzc2FnZUNvbXBvbmVudCxcbiAgICBGaWVsZENvbnRhZG9yTWVzc2FnZUNvbXBvbmVudCxcbiAgICBJbnB1dFRyaW1Db21wb25lbnQsXG4gICAgTG9hZGluZ0J1dHRvbkNvbXBvbmVudCxcbiAgICBBbGVydENvbXBvbmVudCxcbiAgICBDb25maXJtQ29tcG9uZW50LFxuICAgIENvbmZpcm1Nb2RhbENvbXBvbmVudCxcbiAgICBTYXZlQ29tcG9uZW50LFxuICAgIEluZnJhQnJlYWRjcnVtYkNvbXBvbmVudCxcbiAgICBJbmZyYUJyZWFkY3J1bWJJdGVtQ29tcG9uZW50LFxuICAgIEJyZWFkY3J1bWJDb21wb25lbnQsXG4gICAgQ29tYm9ib3hDb21wb25lbnQsXG4gICAgU3ZnU3RvcmFnZUNvbXBvbmVudCxcbiAgICBOYXZQcm9kdXRvc0NvbXBvbmVudCxcbiAgICBUcmVlQ29tcG9uZW50LFxuICAgIFRvVXJsUGlwZSxcbiAgICBDcGZDbnBqUGlwZSxcbiAgICBGaWx0ZXJCeVBpcGUsXG4gICAgTGltaXRUb1BpcGUsXG4gICAgU2VhcmNoVHJlZVBpcGUsXG4gICAgQ2xpY2tPdXRzaWRlRGlyZWN0aXZlLFxuICAgIE9yZGVyaW5nQ29tcG9uZW50LFxuICAgIFNlYXJjaENvbWJvYm94Q29tcG9uZW50LFxuICAgIExpYkNvbWJvYm94Q29tcG9uZW50LCAvLyBOb3ZvIGNvbWJvYm94LCBzdWJzdGl0dWlyw6EgbyBTZWFyY2ggZnV0dXJhbWVudGVcbiAgICBSZXF1aXJlZERpcmVjdGl2ZSxcbiAgICBMaWJIZWFkZXJDb21wb25lbnQsXG4gICAgTGliSWNvbnNDb21wb25lbnQsXG4gICAgVGV4dEZpbHRlclBpcGUsXG4gICAgQ29udGVudENvbnRhaW5lckNvbXBvbmVudCxcbiAgICBDb3B5Q2xpcGJvYXJkRGlyZWN0aXZlLFxuICAgIFRhYmxlQ29tcG9uZW50LFxuICAgIExpYlNwaW5uZXJDb21wb25lbnQsXG4gICAgTG9hZGluZ0J0bkRpcmVjdGl2ZSxcbiAgICBJbnB1dFRyaW1Db21wb25lbnQsXG5cbiAgICBMaWJUcmFuc2Zlckxpc3RDb21wb25lbnQsXG4gICAgSW5uZXJMaXN0Q29tcG9uZW50LFxuXG4gICAgLy8gI3JlZ2lvbiBDb21wb25lbnRlcyBwb3J0YWRvcyAoYWluZGEgc2Vyw6NvIG9yZ2FuaXphZG9zKVxuICAgIENvbWJvYm94TXVsdGlwbGVDaG9pY2VDb21wb25lbnQsXG4gICAgQ3VzdG9tQWNvcmRpb25Db21wb25lbnQsXG4gICAgRHJvcGRvd25PcHRpb25zQ29tcG9uZW50LFxuICAgIER5bmFtaWNJbnB1dENvbXBvbmVudCxcbiAgICBHZW5lcmljTW9kYWxDb21wb25lbnQsXG4gICAgUGFnaW5hdGlvbkNvbXBvbmVudCxcbiAgICBTZWFyY2hGaWx0ZXJzQ29tcG9uZW50LFxuICAgIFNpZGVUYWJzR2VuZXJpY0NvbXBvbmVudCxcbiAgICBTaW1wbGVTZWFyY2hDb21wb25lbnQsXG5cbiAgICBEaXNhYmxlQ29udHJvbERpcmVjdGl2ZSxcbiAgICBIaWdobGlnaHREaXJlY3RpdmUsXG5cbiAgICBEZWNpbWFsQ29tbWFQaXBlLFxuICAgIEZpbHRlck11bHRpcGxlQ2hvaWNlUGlwZSxcbiAgICBPcmRlclNvcnRQaXBlLFxuICAgIFBob25lRm9ybWF0UGlwZSxcbiAgICBUaXRsZUNhc2VQaXBlLFxuXG4gICAgRm9vdGVyQ29tcG9uZW50LFxuICAgIEhlYWRlckNvbXBvbmVudCxcbiAgICBTaW1wbGVIZWFkZXJDb21wb25lbnQsXG4gICAgLy8gI2VuZHJlZ2lvbiBDb21wb25lbnRlcyBwb3J0YWRvcyAoYWluZGEgc2Vyw6NvIG9yZ2FuaXphZG9zKVxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE1vZGFsTW9kdWxlLmZvclJvb3QoKSxcbiAgICBBY2NvcmRpb25Nb2R1bGUuZm9yUm9vdCgpLFxuICAgIFRvb2x0aXBNb2R1bGUuZm9yUm9vdCgpLFxuICAgIEZvcm1zTW9kdWxlLFxuXHRcdE5neEN1cnJlbmN5RGlyZWN0aXZlLFxuICAgIE5neE1hc2tEaXJlY3RpdmUsIFxuXHRcdE5neE1hc2tQaXBlLFxuICAgIE5neFBhZ2luYXRpb25Nb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFBhZ2VOb3RBdXRob3JpemVkQ29tcG9uZW50LFxuICAgIFxuICAgIExvYWRpbmdDb21wb25lbnQsXG4gICAgRmllbGRDb250cm9sRXJyb3JDb21wb25lbnQsXG4gICAgRmllbGRFcnJvck1lc3NhZ2VDb21wb25lbnQsXG4gICAgRmllbGRDb250YWRvck1lc3NhZ2VDb21wb25lbnQsXG4gICAgSW5wdXRUcmltQ29tcG9uZW50LFxuICAgIExvYWRpbmdCdXR0b25Db21wb25lbnQsXG4gICAgQWxlcnRDb21wb25lbnQsXG4gICAgQ29uZmlybUNvbXBvbmVudCxcbiAgICBDb25maXJtTW9kYWxDb21wb25lbnQsXG4gICAgU2F2ZUNvbXBvbmVudCxcbiAgICBJbmZyYUJyZWFkY3J1bWJDb21wb25lbnQsXG4gICAgSW5mcmFCcmVhZGNydW1iSXRlbUNvbXBvbmVudCxcbiAgICBOYXZQcm9kdXRvc0NvbXBvbmVudCxcbiAgICBCcmVhZGNydW1iQ29tcG9uZW50LFxuICAgIENvbWJvYm94Q29tcG9uZW50LFxuICAgIFN2Z1N0b3JhZ2VDb21wb25lbnQsXG4gICAgVHJlZUNvbXBvbmVudCxcbiAgICBUb1VybFBpcGUsXG4gICAgQ3BmQ25walBpcGUsXG4gICAgQ2xpY2tPdXRzaWRlRGlyZWN0aXZlLFxuICAgIE9yZGVyaW5nQ29tcG9uZW50LFxuICAgIFNlYXJjaENvbWJvYm94Q29tcG9uZW50LFxuICAgIExpYkNvbWJvYm94Q29tcG9uZW50LFxuICAgIFJlcXVpcmVkRGlyZWN0aXZlLFxuICAgIExpYkhlYWRlckNvbXBvbmVudCxcbiAgICBMaWJJY29uc0NvbXBvbmVudCxcbiAgICBUZXh0RmlsdGVyUGlwZSxcbiAgICBDb250ZW50Q29udGFpbmVyQ29tcG9uZW50LFxuICAgIENvcHlDbGlwYm9hcmREaXJlY3RpdmUsXG4gICAgVGFibGVDb21wb25lbnQsXG4gICAgTGliU3Bpbm5lckNvbXBvbmVudCxcbiAgICBMb2FkaW5nQnRuRGlyZWN0aXZlLFxuXG4gICAgTGliVHJhbnNmZXJMaXN0Q29tcG9uZW50LFxuICAgIElubmVyTGlzdENvbXBvbmVudCxcblxuICAgIC8vICNyZWdpb24gQ29tcG9uZW50ZXMgcG9ydGFkb3MgKGFpbmRhIHNlcsOjbyBvcmdhbml6YWRvcylcbiAgICBDb21ib2JveE11bHRpcGxlQ2hvaWNlQ29tcG9uZW50LFxuICAgIEN1c3RvbUFjb3JkaW9uQ29tcG9uZW50LFxuICAgIERyb3Bkb3duT3B0aW9uc0NvbXBvbmVudCxcbiAgICBEeW5hbWljSW5wdXRDb21wb25lbnQsXG4gICAgR2VuZXJpY01vZGFsQ29tcG9uZW50LFxuICAgIFBhZ2luYXRpb25Db21wb25lbnQsXG4gICAgU2VhcmNoRmlsdGVyc0NvbXBvbmVudCxcbiAgICBTaWRlVGFic0dlbmVyaWNDb21wb25lbnQsXG4gICAgU2ltcGxlU2VhcmNoQ29tcG9uZW50LFxuXG4gICAgRGlzYWJsZUNvbnRyb2xEaXJlY3RpdmUsXG4gICAgSGlnaGxpZ2h0RGlyZWN0aXZlLFxuXG4gICAgRGVjaW1hbENvbW1hUGlwZSxcbiAgICBGaWx0ZXJNdWx0aXBsZUNob2ljZVBpcGUsXG4gICAgT3JkZXJTb3J0UGlwZSxcbiAgICBQaG9uZUZvcm1hdFBpcGUsXG4gICAgVGl0bGVDYXNlUGlwZSxcblxuICAgIEZvb3RlckNvbXBvbmVudCxcbiAgICBIZWFkZXJDb21wb25lbnQsXG4gICAgU2ltcGxlSGVhZGVyQ29tcG9uZW50LFxuICAgIC8vICNlbmRyZWdpb24gQ29tcG9uZW50ZXMgcG9ydGFkb3MgKGFpbmRhIHNlcsOjbyBvcmdhbml6YWRvcylcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgSW5mcmFNb2R1bGUgeyB9XG4iXX0=
|
|
@@ -336,5 +336,35 @@ export class Utils {
|
|
|
336
336
|
const width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
|
|
337
337
|
return width < 768;
|
|
338
338
|
}
|
|
339
|
+
/** Método de ordenação alfanumérico */
|
|
340
|
+
static { this.alphanumericSort = (a, b) => {
|
|
341
|
+
const regex = /(\d+|\D+)/g;
|
|
342
|
+
const aParts = a.toString().match(regex) || [];
|
|
343
|
+
const bParts = b.toString().match(regex) || [];
|
|
344
|
+
const length = Math.max(aParts.length, bParts.length);
|
|
345
|
+
for (let i = 0; i < length; i++) {
|
|
346
|
+
const aPart = aParts[i] || "";
|
|
347
|
+
const bPart = bParts[i] || "";
|
|
348
|
+
const aIsNumber = !isNaN(Number(aPart));
|
|
349
|
+
const bIsNumber = !isNaN(Number(bPart));
|
|
350
|
+
if (aIsNumber && bIsNumber) {
|
|
351
|
+
const numCompare = Number(aPart) - Number(bPart);
|
|
352
|
+
if (numCompare !== 0)
|
|
353
|
+
return numCompare;
|
|
354
|
+
}
|
|
355
|
+
else if (aIsNumber) {
|
|
356
|
+
return -1;
|
|
357
|
+
}
|
|
358
|
+
else if (bIsNumber) {
|
|
359
|
+
return 1;
|
|
360
|
+
}
|
|
361
|
+
else {
|
|
362
|
+
const strCompare = aPart.localeCompare(bPart);
|
|
363
|
+
if (strCompare !== 0)
|
|
364
|
+
return strCompare;
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
return 0;
|
|
368
|
+
}; }
|
|
339
369
|
}
|
|
340
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3AtaW5mcmEvc3JjL2xpYi91dGlscy91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sS0FBSztJQUVoQixrREFBa0Q7SUFDM0MsTUFBTSxDQUFDLG1CQUFtQixDQUFDLEtBQVU7UUFFMUMsSUFBSSxZQUFZLEdBQVcsRUFBRSxDQUFDO1FBRTlCLElBQUksS0FBSyxDQUFDLEtBQUssWUFBWSxVQUFVLEVBQUUsQ0FBQztZQUN0QyxpQ0FBaUM7WUFDakMsWUFBWSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQ3JDLENBQUM7YUFBTSxDQUFDO1lBRU4sbUNBQW1DO1lBQ25DLElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUVqQixJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksR0FBRyxFQUFFLENBQUM7b0JBRXhCLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO3dCQUVoQixJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7NEJBQzdCLFlBQVksR0FBRyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7d0JBQy9DLENBQUM7NkJBQ0ksQ0FBQzs0QkFDSixZQUFZLEdBQUcsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO3dCQUMxQyxDQUFDO29CQUVILENBQUM7eUJBQU0sQ0FBQzt3QkFDTixZQUFZLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztvQkFDL0IsQ0FBQztnQkFFSCxDQUFDO3FCQUNJLENBQUM7b0JBRUosSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7d0JBRWhCLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQzs0QkFDN0IsWUFBWSxHQUFHLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxZQUFZLFdBQVcsS0FBSyxDQUFDLE1BQU0sTUFBTSxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7d0JBQzVGLENBQUM7NkJBQ0ksQ0FBQzs0QkFDSixZQUFZLEdBQUcsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sV0FBVyxLQUFLLENBQUMsTUFBTSxNQUFNLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQzt3QkFDdkYsQ0FBQztvQkFFSCxDQUFDO3lCQUFNLENBQUM7d0JBQ04sWUFBWSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7b0JBQy9CLENBQUM7Z0JBRUgsQ0FBQztZQUVILENBQUM7aUJBQU0sQ0FBQztnQkFDTixZQUFZLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUMvQixDQUFDO1FBRUgsQ0FBQztRQUVELE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7SUFBQSxDQUFDO0lBRUssTUFBTSxDQUFDLDJCQUEyQixDQUFDLElBQVU7UUFDbEQsTUFBTSxVQUFVLEdBQWEsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFdEUsT0FBTyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDOUQsQ0FBQztJQUVNLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxJQUFZO1FBQzVDLE1BQU0sVUFBVSxHQUFhLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFN0MsT0FBTyxJQUFJLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsVUFBVSxDQUFDLElBQXFCO1FBQzVDLE1BQU0sV0FBVyxHQUFXLE9BQU8sSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFFN0UsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxXQUFXLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQyxJQUFJLFdBQVcsR0FBRyxHQUFHLEtBQUssQ0FBQztnQkFBRSxPQUFPLElBQUksQ0FBQzs7Z0JBQzFGLE9BQU8sS0FBSyxDQUFDO1FBQ3BCLENBQUM7O1lBQ0ksT0FBTyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMseUJBQXlCLENBQUMsUUFBYztRQUNwRCxPQUFPLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssWUFBWSxDQUFDO0lBQzVELENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLGdCQUFnQixDQUFDLFFBQWM7UUFDM0MsT0FBTyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLFlBQVksQ0FBQztJQUM1RCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFhLEVBQUUsZ0JBQXdCLEdBQUc7UUFDcEUsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBRWhCLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFckIsSUFBSSxXQUFXLEdBQWEsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUU3Qyx3Q0FBd0M7UUFDeEMsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3RCLElBQUksYUFBYSxHQUFhLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7WUFFbEUsSUFBSSxhQUFhLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUMvQixPQUFPO1lBQ1QsQ0FBQztZQUVELElBQUksYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDaEMsYUFBYSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDekYsQ0FBQztZQUVELE1BQU0sR0FBRyxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7UUFDeEUsQ0FBQztRQUVELElBQUksV0FBVyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUU3QixNQUFNLElBQUksSUFBSSxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNqQyxDQUFDO1FBRUQsSUFBSSxZQUFZLEdBQVcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUU5QyxJQUFJLFlBQVksS0FBSyxJQUFJLElBQUksWUFBWSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzlDLE9BQU87UUFDVCxDQUFDO1FBRUQsT0FBTyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQscUJBQXFCO0lBQ2QsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQVU7UUFDdkMsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxtQ0FBbUM7SUFDNUIsTUFBTSxDQUFDLG1CQUFtQixDQUFDLElBQVU7UUFDMUMsT0FBTyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVNLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFXO1FBQ3pDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsY0FBYyxDQUFDLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUN2RCxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUU1RCxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFTSxNQUFNLENBQUMsWUFBWSxDQUFDLElBQVUsRUFBRSxJQUFZO1FBQ2pELE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO1FBRW5DLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFBO1FBRW5DLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUVNLE1BQU0sQ0FBQyxhQUFhLENBQUMsV0FBaUIsRUFBRSxTQUFlO1FBQzVELElBQUksSUFBSSxHQUFHLFNBQVMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFdkQsT0FBTyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFTSxNQUFNLENBQUMsY0FBYyxDQUFDLFdBQWlCLEVBQUUsU0FBZTtRQUM3RCxJQUFJLEtBQUssR0FBRyxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDdkUsS0FBSyxJQUFJLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoQyxLQUFLLElBQUksU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRTlCLE9BQU8sS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDaEMsQ0FBQztJQUdELGtDQUFrQztJQUMzQixNQUFNLENBQUMsVUFBVSxDQUFDLElBQVU7UUFDakMsaUJBQWlCO1FBQ2pCLHVFQUF1RTtRQUN2RSxJQUFJLFNBQWUsQ0FBQztRQUVwQixJQUFJLENBQUM7WUFDSCxTQUFTLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM5RixDQUFDO1FBQ0QsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNiLHNEQUFzRDtZQUN0RCxpQ0FBaUM7WUFDakMsNEZBQTRGO1lBQzVGLGdCQUFnQjtZQUNoQixNQUFNLEdBQUcsR0FBVyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNyRCxNQUFNLEdBQUcsR0FBVyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNwRCxNQUFNLEdBQUcsR0FBVyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNwRCxTQUFTLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDM0UsQ0FBQztRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxrQ0FBa0M7SUFDM0IsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFVO1FBQ3JDLGlCQUFpQjtRQUNqQix1RUFBdUU7UUFDdkUsSUFBSSxTQUFlLENBQUM7UUFFcEIsSUFBSSxDQUFDO1lBQ0gsU0FBUyxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDOUYsQ0FBQztRQUNELE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDYixzREFBc0Q7WUFDdEQsaUNBQWlDO1lBQ2pDLDRGQUE0RjtZQUM1RixnQkFBZ0I7WUFDaEIsTUFBTSxHQUFHLEdBQVcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDckQsTUFBTSxHQUFHLEdBQVcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDcEQsTUFBTSxHQUFHLEdBQVcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFFcEQsU0FBUyxHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzNFLENBQUM7UUFFRCxTQUFTLEdBQUcsQ0FBQyxDQUFNLElBQUksT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV2RCxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLFNBQVMsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3BILENBQUM7SUFFRCw2QkFBNkI7SUFDdEIsTUFBTSxDQUFDLHFCQUFxQixDQUFDLElBQVU7UUFDNUMsSUFBSSxTQUFlLENBQUM7UUFFcEIsSUFBSSxDQUFDO1lBQ0gsU0FBUyxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDNUksQ0FBQztRQUNELE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDYixzREFBc0Q7WUFDdEQsaUNBQWlDO1lBQ2pDLDRGQUE0RjtZQUM1RixnQkFBZ0I7WUFDaEIsTUFBTSxHQUFHLEdBQVcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDckQsTUFBTSxHQUFHLEdBQVcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDcEQsTUFBTSxHQUFHLEdBQVcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDcEQsTUFBTSxJQUFJLEdBQVcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDdkQsTUFBTSxPQUFPLEdBQVcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDMUQsTUFBTSxRQUFRLEdBQVcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFFM0QsU0FBUyxHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ25ILENBQUM7UUFFRCxTQUFTLEdBQUcsQ0FBQyxDQUFNLElBQUksT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV2RCxJQUFJLGFBQWEsR0FBVyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxTQUFTLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVwSSxhQUFhLElBQUksR0FBRyxDQUFDO1FBQ3JCLGFBQWEsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRWpILE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxNQUFNLENBQUMsWUFBWSxDQUFDLElBQVU7UUFDNUIsSUFBSSxTQUFTLEdBQVMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoRCxpQkFBaUI7UUFDakIsU0FBUyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDaEQsdUNBQXVDO1FBQ3ZDLFNBQVMsR0FBRyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxFQUFFLEVBQUUsU0FBUyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3RGLGlEQUFpRDtRQUNqRCxTQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUUzQyxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsdUJBQXVCO0lBQ2hCLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBVTtRQUNyQyxJQUFJLFNBQWUsQ0FBQztRQUVwQixJQUFJLENBQUM7WUFDSCxTQUFTLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUM1SSxDQUFDO1FBQ0QsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNiLHNEQUFzRDtZQUN0RCxNQUFNLEdBQUcsR0FBVyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNyRCxNQUFNLEdBQUcsR0FBVyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNwRCxNQUFNLEdBQUcsR0FBVyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNwRCxNQUFNLElBQUksR0FBVyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN2RCxNQUFNLEdBQUcsR0FBVyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN0RCxNQUFNLEdBQUcsR0FBVyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN0RCxTQUFTLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDMUcsQ0FBQztRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFTSxNQUFNLENBQUMsaUJBQWlCLENBQUMsS0FBVyxFQUFFLEtBQVc7UUFDdEQsSUFBSSxRQUFRLEdBQVcsS0FBSyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuRCxJQUFJLFFBQVEsR0FBVyxLQUFLLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRW5ELElBQUksUUFBUSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzFCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7SUFDSCxDQUFDO0lBRU0sTUFBTSxDQUFDLG1CQUFtQixDQUFDLEtBQWE7UUFDN0MsS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRS9CLElBQUksS0FBSyxHQUFXLE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xELElBQUksSUFBSSxHQUFXLE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRWpELDJFQUEyRTtRQUMzRSxLQUFLLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUVsQixPQUFPLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxXQUFXO1FBQ3ZCLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRU0sTUFBTSxDQUFDLHVCQUF1QixDQUFDLEtBQVc7UUFFL0MsSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUM7WUFDM0IsT0FBTyxZQUFZLENBQUM7UUFDdEIsQ0FBQztRQUVELElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFdkMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFFTSxNQUFNLENBQUMsMkJBQTJCLENBQUMsS0FBVztRQUNuRCxJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksS0FBSyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDcEcsT0FBTyxxQkFBcUIsQ0FBQztRQUNqQyxDQUFDO1FBRUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFN0IsNkNBQTZDO1FBQzdDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNoQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDOUIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzNCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM5QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBRWxDLE1BQU0sYUFBYSxHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUVqTyxPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFDO0lBRUQsNEVBQTRFO0lBQ3JFLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxPQUFlLEVBQUUsSUFBWTtRQUM1RCxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sV0FBVyxHQUFHLElBQUksV0FBVyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2RCxNQUFNLFNBQVMsR0FBRyxJQUFJLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUU5QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzNDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFFRCxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFFbkMsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFN0MsTUFBTTtRQUNOLCtHQUErRztRQUMvRyxvREFBb0Q7UUFDcEQsbUJBQW1CO1FBQ25CLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFcEMsQ0FBQyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7UUFDYixDQUFDLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQztRQUNwQixDQUFDLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztRQUVyQixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUU3QixDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQ7Ozs7O01BS0U7SUFDSyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQVUsRUFBRSxRQUFnQjtRQUNyRCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVsRCxNQUFNLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9DLE1BQU0sQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBRTNCLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRWxDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUVmLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRU0sTUFBTSxDQUFDLGdCQUFnQixDQUFDLEdBQVc7UUFDeEMsNkVBQTZFO1FBQzdFLE9BQU8sa0JBQWtCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDcEQsT0FBTyxHQUFHLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvRCxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNmLENBQUM7SUFFTSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsR0FBVztRQUN4QyxnRUFBZ0U7UUFDaEUsNkRBQTZEO1FBQzdELHdCQUF3QjtRQUN4QixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQzNELENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFO1lBQ1osT0FBTyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBUSxDQUFDLENBQUM7UUFDakQsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7SUFFRCw4REFBOEQ7SUFDdkQsTUFBTSxDQUFDLFdBQVc7UUFDdkIsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLFVBQVUsSUFBSSxRQUFRLENBQUMsZUFBZSxDQUFDLFdBQVcsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNyRyxPQUFPLEtBQUssR0FBRyxHQUFHLENBQUM7SUFDckIsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFV0aWxzIHtcblxuICAvLyBPYnTDqW0gYSBtZW5zYWdlbSBkZSBlcnJvIGRlIHVtYSByZXF1aXNpw6fDo28gaHR0cFxuICBwdWJsaWMgc3RhdGljIGdldEh0dHBFcnJvck1lc3NhZ2UoZXJyb3I6IGFueSk6IHN0cmluZyB7XG5cbiAgICBsZXQgZXJyb3JNZXNzYWdlOiBzdHJpbmcgPSAnJztcblxuICAgIGlmIChlcnJvci5lcnJvciBpbnN0YW5jZW9mIEVycm9yRXZlbnQpIHtcbiAgICAgIC8vIEVycm8gb2NvcnJldSBubyBsYWRvIGRvIGNsaWVudFxuICAgICAgZXJyb3JNZXNzYWdlID0gZXJyb3IuZXJyb3IubWVzc2FnZTtcbiAgICB9IGVsc2Uge1xuXG4gICAgICAvLyBFcnJvIG9jb3JyZXUgbm8gbGFkbyBkbyBzZXJ2aWRvclxuICAgICAgaWYgKGVycm9yLnN0YXR1cykge1xuXG4gICAgICAgIGlmIChlcnJvci5zdGF0dXMgPT0gMjAwKSB7XG5cbiAgICAgICAgICBpZiAoZXJyb3IuZXJyb3IpIHtcblxuICAgICAgICAgICAgaWYgKGVycm9yLmVycm9yLkVycm9yTWVzc2FnZSkge1xuICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBgJHtlcnJvci5lcnJvci5FcnJvck1lc3NhZ2V9YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBgJHtlcnJvci5lcnJvci5NZXNzYWdlfWA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gZXJyb3IubWVzc2FnZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcblxuICAgICAgICAgIGlmIChlcnJvci5lcnJvcikge1xuXG4gICAgICAgICAgICBpZiAoZXJyb3IuZXJyb3IuRXJyb3JNZXNzYWdlKSB7XG4gICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IGAke2Vycm9yLmVycm9yLkVycm9yTWVzc2FnZX08YnI+PGJyPiR7ZXJyb3Iuc3RhdHVzfSAtICR7ZXJyb3Iuc3RhdHVzVGV4dH1gO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IGAke2Vycm9yLmVycm9yLk1lc3NhZ2V9PGJyPjxicj4ke2Vycm9yLnN0YXR1c30gLSAke2Vycm9yLnN0YXR1c1RleHR9YDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBlcnJvci5tZXNzYWdlO1xuICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVycm9yTWVzc2FnZSA9IGVycm9yLm1lc3NhZ2U7XG4gICAgICB9XG5cbiAgICB9XG5cbiAgICByZXR1cm4gZXJyb3JNZXNzYWdlO1xuICB9O1xuXG4gIHB1YmxpYyBzdGF0aWMgY29udmVydERhdGVUaW1lVG9EYXRlU3RyaW5nKGRhdGU6IERhdGUpOiBzdHJpbmcge1xuICAgIGNvbnN0IGRhdGVTdHJpbmc6IHN0cmluZ1tdID0gZGF0ZS50b1N0cmluZygpLnNwbGl0KCdUJylbMF0uc3BsaXQoJy0nKTtcblxuICAgIHJldHVybiBgJHtkYXRlU3RyaW5nWzBdfS0ke2RhdGVTdHJpbmdbMV19LSR7ZGF0ZVN0cmluZ1syXX1gO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjb252ZXJ0U3RyaW5nVG9EYXRlKHRleHQ6IHN0cmluZyk6IERhdGUge1xuICAgIGNvbnN0IGRhdGVTdHJpbmc6IHN0cmluZ1tdID0gdGV4dC5zcGxpdCgnLScpO1xuXG4gICAgcmV0dXJuIG5ldyBEYXRlKCtkYXRlU3RyaW5nWzBdLCAoK2RhdGVTdHJpbmdbMV0pIC0gMSwgK2RhdGVTdHJpbmdbMl0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmaWNhIHNlIHVtIGRldGVybWluYWRvIGFubyDDqSBiaXNzZXh0by5cbiAgICogQHBhcmFtIHllYXIgQW5vIGEgc2VyIHZlcmlmaWNhZG8uXG4gICAqIEByZXR1cm5zIFJldG9ybmEgdHJ1ZSBzZSBvIGFubyBmb3IgYmlzc2V4dG8gZSBmYWxzZSBzZSBlbGUgbsOjbyBmb3IsIG91IHNlIG8gYW5vIGluZm9ybWFkbyBmb3IgaW52w6FsaWRvLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpc0xlYXBZZWFyKHllYXI6IG51bWJlciB8IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IFlFQVJfTlVNQkVSOiBudW1iZXIgPSB0eXBlb2YgeWVhciA9PT0gJ3N0cmluZycgPyBwYXJzZUludCh5ZWFyKSA6IHllYXI7XG5cbiAgICBpZiAoIWlzTmFOKFlFQVJfTlVNQkVSKSkge1xuICAgICAgaWYgKChZRUFSX05VTUJFUiAlIDQgPT09IDAgJiYgWUVBUl9OVU1CRVIgJSAxMDAgIT09IDApIHx8IFlFQVJfTlVNQkVSICUgNDAwID09PSAwKSByZXR1cm4gdHJ1ZTtcbiAgICAgIGVsc2UgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBlbHNlIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWZXJpZmljYSBzZSB1bWEgZGV0ZXJtaW5hZGEgZGF0YSDDqSBpbmRldGVybWluYWRhLlxuICAgKiBAcGFyYW0gZGF0ZVRpbWUgRGF0YSBhIHNlciB2ZXJpZmljYWRhLlxuICAgKiBAcmV0dXJucyBSZXRvcm5hIHRydWUgc2UgZm9yIGluZGV0ZXJtaW5hZGEgZSBmYWxzZSBzZSBuw6NvIGZvci5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdmVyaWZ5RGF0ZUlzSW5kZXRlcm1pbmF0ZShkYXRlVGltZTogRGF0ZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBkYXRlVGltZS50b1N0cmluZygpLnNwbGl0KCdUJylbMF0gPT09ICcyMDk5LTEyLTMxJztcbiAgfVxuXG4gIC8qKlxuICAgKiBWZXJpZmljYSBzZSB1bWEgZGV0ZXJtaW5hZGEgZGF0YSDDqSBudWxhIChpZ3VhbCBhICcxOTAwLTAxLTAxVDAwOjAwOjAwJykuXG4gICAqIEBwYXJhbSBkYXRlVGltZSBEYXRhIGEgc2VyIHZlcmlmaWNhZGEuXG4gICAqIEByZXR1cm5zIFJldG9ybmEgdHJ1ZSBzZSBmb3IgbnVsYSBlIGZhbHNlIHNlIG7Do28gZm9yLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB2ZXJpZnlEYXRlSXNOdWxsKGRhdGVUaW1lOiBEYXRlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGRhdGVUaW1lLnRvU3RyaW5nKCkuc3BsaXQoJ1QnKVswXSA9PT0gJzE5MDAtMDEtMDEnO1xuICB9XG5cbiAgLyoqXG4gICAqIFRlbnRhIHJlYWxpemFyIHVtIHBhcnNlIGRlIHVtYSBkYXRhIGNvbSBvcyBzZWd1aW50ZXMgdmFsb3JlczogZGQvTU0veXl5eSBISDptbVxuICAgKiBcbiAgICogQHBhcmFtIHZhbHVlIFN0cmluZyBxdWUgY29udMOpbSBhIGRhdGEgZm9ybWF0YWRhIGVtIHB0LWJyXG4gICAqIEBwYXJhbSBkYXRlU2VwYXJhdG9yIFNlcGFyYWRvciBkYSBkYXRhLlxuICAgKiBAcmV0dXJucyBcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcGFyc2VEYXRlVGltZSh2YWx1ZTogc3RyaW5nLCBkYXRlU2VwYXJhdG9yOiBzdHJpbmcgPSBcIi9cIik6IERhdGUgfCB1bmRlZmluZWQge1xuICAgIGxldCB1c0RhdGUgPSBcIlwiO1xuXG4gICAgdmFsdWUgPSB2YWx1ZS50cmltKCk7XG5cbiAgICBsZXQgZGF0ZUFuZFRpbWU6IHN0cmluZ1tdID0gdmFsdWUuc3BsaXQoXCIgXCIpO1xuXG4gICAgLy8gUG9zc3VpIHBlbG8gbWVub3MgNSBjYXJhY3RlcmVzOiAxLzEvMVxuICAgIGlmICh2YWx1ZS5sZW5ndGggPj0gNSkge1xuICAgICAgbGV0IGRhdGVTZXBhcmF0ZWQ6IHN0cmluZ1tdID0gZGF0ZUFuZFRpbWVbMF0uc3BsaXQoZGF0ZVNlcGFyYXRvcik7XG5cbiAgICAgIGlmIChkYXRlU2VwYXJhdGVkLmxlbmd0aCAhPT0gMykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChkYXRlU2VwYXJhdGVkWzJdLmxlbmd0aCA+IDIpIHtcbiAgICAgICAgZGF0ZVNlcGFyYXRlZFsyXSA9IGAke2RhdGVTZXBhcmF0ZWRbMl0uY2hhckF0KDApfSR7ZGF0ZVNlcGFyYXRlZFsyXS5jaGFyQXQoMSl9YC50cmltKCk7XG4gICAgICB9XG5cbiAgICAgIHVzRGF0ZSA9IGAke2RhdGVTZXBhcmF0ZWRbMV19LyR7ZGF0ZVNlcGFyYXRlZFswXX0vJHtkYXRlU2VwYXJhdGVkWzJdfWBcbiAgICB9XG5cbiAgICBpZiAoZGF0ZUFuZFRpbWUubGVuZ3RoID09PSAyKSB7XG5cbiAgICAgIHVzRGF0ZSArPSBgICR7ZGF0ZUFuZFRpbWVbMV19YDtcbiAgICB9XG5cbiAgICBsZXQgZXhwZWN0ZWREYXRlOiBudW1iZXIgPSBEYXRlLnBhcnNlKHVzRGF0ZSk7XG5cbiAgICBpZiAoZXhwZWN0ZWREYXRlICE9PSBudWxsIHx8IGV4cGVjdGVkRGF0ZSA8IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IERhdGUoZXhwZWN0ZWREYXRlKTtcbiAgfVxuXG4gIC8vIE9idMOpbSBhIERhdGEgbG9jYWxcbiAgcHVibGljIHN0YXRpYyBnZXREYXRlTG9jYWxUaW1lKGRhdGU6IERhdGUpOiBEYXRlIHtcbiAgICByZXR1cm4gKG5ldyBEYXRlKGRhdGUuZ2V0VGltZSgpIC0gZGF0ZS5nZXRUaW1lem9uZU9mZnNldCgpICogNjAwMDApKTtcbiAgfVxuXG4gIC8vIE9idMOpbSBhIERhdGEgbG9jYWwgbm8gUGFkcsOjbyBJc29cbiAgcHVibGljIHN0YXRpYyBnZXREYXRlTG9jYWxUaW1lSVNPKGRhdGU6IERhdGUpOiBzdHJpbmcge1xuICAgIHJldHVybiAodGhpcy5nZXREYXRlTG9jYWxUaW1lKGRhdGUpLnRvSVNPU3RyaW5nKCkucmVwbGFjZSgnLjAwMFonLCAnJykpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBnZXREYXRlUGlja2VyRGF0ZShzdHI6IFN0cmluZyk6IERhdGUge1xuICAgIGNvbnN0IFtkYXRlQ29tcG9uZW50cywgdGltZUNvbXBvbmVudHNdID0gc3RyLnNwbGl0KCdUJylcbiAgICBjb25zdCBbYW5vLCBtZXMsIGRpYV0gPSBkYXRlQ29tcG9uZW50cy5zcGxpdCgnLScpO1xuICAgIGNvbnN0IFtob3JhLCBtaW51dG8sIHNlZ3VuZG9dID0gdGltZUNvbXBvbmVudHMuc3BsaXQoJzonKTtcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoTnVtYmVyKGFubyksIE51bWJlcihtZXMpLCBOdW1iZXIoZGlhKSlcblxuICAgIHJldHVybiBkYXRlXG4gIH1cblxuICBwdWJsaWMgc3RhdGljIEFkaWNpb25hRGlhcyhkYXRhOiBEYXRlLCBkYXlzOiBudW1iZXIpOiBEYXRlIHtcbiAgICBjb25zdCBmaW5kID0gbmV3IERhdGUoTnVtYmVyKGRhdGEpKVxuXG4gICAgZmluZC5zZXREYXRlKGRhdGEuZ2V0RGF0ZSgpICsgZGF5cylcblxuICAgIHJldHVybiBmaW5kXG4gIH1cblxuICBwdWJsaWMgc3RhdGljIERpZmVyZW5jYURpYXMoZGF0YUluaWNpYWw6IERhdGUsIGRhdGFGaW5hbDogRGF0ZSk6IG51bWJlciB7XG4gICAgdmFyIFRpbWUgPSBkYXRhRmluYWwuZ2V0VGltZSgpIC0gZGF0YUluaWNpYWwuZ2V0VGltZSgpO1xuXG4gICAgcmV0dXJuIFRpbWUgLyAoMTAwMCAqIDM2MDAgKiAyNCk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIERpZmVyZW5jYU1lc2VzKGRhdGFJbmljaWFsOiBEYXRlLCBkYXRhRmluYWw6IERhdGUpOiBudW1iZXIge1xuICAgIHZhciBtZXNlcyA9IChkYXRhRmluYWwuZ2V0RnVsbFllYXIoKSAtIGRhdGFJbmljaWFsLmdldEZ1bGxZZWFyKCkpICogMTI7XG4gICAgbWVzZXMgLT0gZGF0YUluaWNpYWwuZ2V0TW9udGgoKTtcbiAgICBtZXNlcyArPSBkYXRhRmluYWwuZ2V0TW9udGgoKTtcblxuICAgIHJldHVybiBtZXNlcyA8PSAwID8gMCA6IG1lc2VzO1xuICB9XG5cblxuICAvL09idMOpbSBhIERhdGEgVVRDIGNvbSBob3JhIHplcmFkYVxuICBwdWJsaWMgc3RhdGljIGdldERhdGVVVEMoZGF0ZTogRGF0ZSk6IERhdGUge1xuICAgIC8vY29kaWdvIG9yaWdpbmFsXG4gICAgLy9yZXR1cm4gbmV3IERhdGUoZGF0ZS5nZXRUaW1lKCkgKyAoZGF0ZS5nZXRUaW1lem9uZU9mZnNldCgpICogNjAwMDApKTtcbiAgICBsZXQgZGF0YVNhaWRhOiBEYXRlO1xuXG4gICAgdHJ5IHtcbiAgICAgIGRhdGFTYWlkYSA9IG5ldyBEYXRlKGRhdGUuZ2V0VVRDRnVsbFllYXIoKSwgZGF0ZS5nZXRVVENNb250aCgpLCBkYXRlLmdldFVUQ0RhdGUoKSwgMCwgMCwgMCk7XG4gICAgfVxuICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgLy9RdWFuZG8gZGF0ZSBjaGVnYSBuZXN0ZSBmb3JtYXRvOiAyMDIyLTA2LTIwVDAwOjAwOjAwXG4gICAgICAvL3RlbnRvIHBlZ2FyIGFuby9tZXMvZGlhIGRpcmV0byBcbiAgICAgIC8vRGF0ZShEdEluaUZlci5nZXRVVENGdWxsWWVhcigpLCBEdEluaUZlci5nZXRVVENNb250aCgpLCBEdEluaUZlci5nZXRVVENEYXRlKCksIDAgLCAwICwgMCk7XG4gICAgICAvL2UgbsOjbyBmdW5jaW9uYVxuICAgICAgY29uc3QgZGlhOiBzdHJpbmcgPSBkYXRlLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDgsIDEwKTtcbiAgICAgIGNvbnN0IG1lczogc3RyaW5nID0gZGF0ZS50b1N0cmluZygpLnN1YnN0cmluZyg1LCA3KTtcbiAgICAgIGNvbnN0IGFubzogc3RyaW5nID0gZGF0ZS50b1N0cmluZygpLnN1YnN0cmluZygwLCA0KTtcbiAgICAgIGRhdGFTYWlkYSA9IG5ldyBEYXRlKE51bWJlcihhbm8pLCBOdW1iZXIobWVzKSAtIDEsIE51bWJlcihkaWEpLCAwLCAwLCAwKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGF0YVNhaWRhO1xuICB9XG5cbiAgLy9PYnTDqW0gYSBEYXRhIFVUQyBjb20gaG9yYSB6ZXJhZGFcbiAgcHVibGljIHN0YXRpYyBnZXREYXRlZGRNTXl5eShkYXRlOiBEYXRlKTogc3RyaW5nIHtcbiAgICAvL2NvZGlnbyBvcmlnaW5hbFxuICAgIC8vcmV0dXJuIG5ldyBEYXRlKGRhdGUuZ2V0VGltZSgpICsgKGRhdGUuZ2V0VGltZXpvbmVPZmZzZXQoKSAqIDYwMDAwKSk7XG4gICAgbGV0IGRhdGFTYWlkYTogRGF0ZTtcblxuICAgIHRyeSB7XG4gICAgICBkYXRhU2FpZGEgPSBuZXcgRGF0ZShkYXRlLmdldFVUQ0Z1bGxZZWFyKCksIGRhdGUuZ2V0VVRDTW9udGgoKSwgZGF0ZS5nZXRVVENEYXRlKCksIDAsIDAsIDApO1xuICAgIH1cbiAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIC8vUXVhbmRvIGRhdGUgY2hlZ2EgbmVzdGUgZm9ybWF0bzogMjAyMi0wNi0yMFQwMDowMDowMFxuICAgICAgLy90ZW50byBwZWdhciBhbm8vbWVzL2RpYSBkaXJldG8gXG4gICAgICAvL0RhdGUoRHRJbmlGZXIuZ2V0VVRDRnVsbFllYXIoKSwgRHRJbmlGZXIuZ2V0VVRDTW9udGgoKSwgRHRJbmlGZXIuZ2V0VVRDRGF0ZSgpLCAwICwgMCAsIDApO1xuICAgICAgLy9lIG7Do28gZnVuY2lvbmFcbiAgICAgIGNvbnN0IGRpYTogc3RyaW5nID0gZGF0ZS50b1N0cmluZygpLnN1YnN0cmluZyg4LCAxMCk7XG4gICAgICBjb25zdCBtZXM6IHN0cmluZyA9IGRhdGUudG9TdHJpbmcoKS5zdWJzdHJpbmcoNSwgNyk7XG4gICAgICBjb25zdCBhbm86IHN0cmluZyA9IGRhdGUudG9TdHJpbmcoKS5zdWJzdHJpbmcoMCwgNCk7XG5cbiAgICAgIGRhdGFTYWlkYSA9IG5ldyBEYXRlKE51bWJlcihhbm8pLCBOdW1iZXIobWVzKSAtIDEsIE51bWJlcihkaWEpLCAwLCAwLCAwKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYWQoczogYW55KSB7IHJldHVybiAocyA8IDEwKSA/ICcwJyArIHMgOiBzOyB9XG5cbiAgICByZXR1cm4gW3BhZChkYXRhU2FpZGEuZ2V0VVRDRGF0ZSgpKSwgcGFkKGRhdGFTYWlkYS5nZXRVVENNb250aCgpICsgMSksIHBhZChkYXRhU2FpZGEuZ2V0VVRDRnVsbFllYXIoKSldLmpvaW4oJy8nKTtcbiAgfVxuXG4gIC8vT2J0w6ltIGEgRGF0YSBVVEMgY29tIGEgaG9yYVxuICBwdWJsaWMgc3RhdGljIGdldERhdGVkZE1NeXl5eUhobW1zcyhkYXRlOiBEYXRlKTogc3RyaW5nIHtcbiAgICBsZXQgZGF0YVNhaWRhOiBEYXRlO1xuXG4gICAgdHJ5IHtcbiAgICAgIGRhdGFTYWlkYSA9IG5ldyBEYXRlKGRhdGUuZ2V0VVRDRnVsbFllYXIoKSwgZGF0ZS5nZXRVVENNb250aCgpLCBkYXRlLmdldFVUQ0RhdGUoKSwgZGF0ZS5nZXRIb3VycygpLCBkYXRlLmdldE1pbnV0ZXMoKSwgZGF0ZS5nZXRTZWNvbmRzKCkpO1xuICAgIH1cbiAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIC8vUXVhbmRvIGRhdGUgY2hlZ2EgbmVzdGUgZm9ybWF0bzogMjAyMi0wNi0yMFQwMDowMDowMFxuICAgICAgLy90ZW50byBwZWdhciBhbm8vbWVzL2RpYSBkaXJldG8gXG4gICAgICAvL0RhdGUoRHRJbmlGZXIuZ2V0VVRDRnVsbFllYXIoKSwgRHRJbmlGZXIuZ2V0VVRDTW9udGgoKSwgRHRJbmlGZXIuZ2V0VVRDRGF0ZSgpLCAwICwgMCAsIDApO1xuICAgICAgLy9lIG7Do28gZnVuY2lvbmFcbiAgICAgIGNvbnN0IGRpYTogc3RyaW5nID0gZGF0ZS50b1N0cmluZygpLnN1YnN0cmluZyg4LCAxMCk7XG4gICAgICBjb25zdCBtZXM6IHN0cmluZyA9IGRhdGUudG9TdHJpbmcoKS5zdWJzdHJpbmcoNSwgNyk7XG4gICAgICBjb25zdCBhbm86IHN0cmluZyA9IGRhdGUudG9TdHJpbmcoKS5zdWJzdHJpbmcoMCwgNCk7XG4gICAgICBjb25zdCBob3JhOiBzdHJpbmcgPSBkYXRlLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDExLCAxMyk7XG4gICAgICBjb25zdCBtaW51dG9zOiBzdHJpbmcgPSBkYXRlLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDE0LCAxNik7XG4gICAgICBjb25zdCBzZWd1bmRvczogc3RyaW5nID0gZGF0ZS50b1N0cmluZygpLnN1YnN0cmluZygxNywgMTkpO1xuXG4gICAgICBkYXRhU2FpZGEgPSBuZXcgRGF0ZShOdW1iZXIoYW5vKSwgTnVtYmVyKG1lcykgLSAxLCBOdW1iZXIoZGlhKSwgTnVtYmVyKGhvcmEpLCBOdW1iZXIobWludXRvcyksIE51bWJlcihzZWd1bmRvcykpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhZChzOiBhbnkpIHsgcmV0dXJuIChzIDwgMTApID8gJzAnICsgcyA6IHM7IH1cblxuICAgIGxldCBkYXRhRm9ybWF0YWRhOiBzdHJpbmcgPSBbcGFkKGRhdGFTYWlkYS5nZXREYXRlKCkpLCBwYWQoZGF0YVNhaWRhLmdldFVUQ01vbnRoKCkgKyAxKSwgcGFkKGRhdGFTYWlkYS5nZXRVVENGdWxsWWVhcigpKV0uam9pbignLycpO1xuXG4gICAgZGF0YUZvcm1hdGFkYSArPSBcIiBcIjtcbiAgICBkYXRhRm9ybWF0YWRhICs9IFtwYWQoZGF0YVNhaWRhLmdldEhvdXJzKCkpLCBwYWQoZGF0YVNhaWRhLmdldE1pbnV0ZXMoKSksIHBhZChkYXRhU2FpZGEuZ2V0U2Vjb25kcygpKV0uam9pbignOicpO1xuXG4gICAgcmV0dXJuIGRhdGFGb3JtYXRhZGE7XG4gIH1cblxuICBzdGF0aWMgVWx0aW1vRGlhTWVzKGRhdGE6IERhdGUpOiBEYXRlIHtcbiAgICBsZXQgZGF0YVNhaWRhOiBEYXRlID0gdGhpcy5nZXREYXRlVGltZVVUQyhkYXRhKTtcbiAgICAvLyBhZGljaW9uYSAxIG1lc1xuICAgIGRhdGFTYWlkYS5zZXRNb250aChkYXRhU2FpZGEuZ2V0VVRDTW9udGgoKSArIDEpO1xuICAgIC8vUG9zaWNpb25hIG5vIGRpYSAwMSBkbyBtZXMgYWRpY2lvbmFkb1xuICAgIGRhdGFTYWlkYSA9IG5ldyBEYXRlKGRhdGFTYWlkYS5nZXRVVENGdWxsWWVhcigpLCBkYXRhU2FpZGEuZ2V0VVRDTW9udGgoKSwgMSwgMCwgMCwgMCk7XG4gICAgLy8gc3VidHJhaSAxIGRpYSBwYXJhIGlyIHBhcmEgbyB1bHRpbW8gZGlhIGRvIG1lc1xuICAgIGRhdGFTYWlkYS5zZXREYXRlKGRhdGFTYWlkYS5nZXREYXRlKCkgLSAxKTtcblxuICAgIHJldHVybiBkYXRhU2FpZGE7XG4gIH1cblxuICAvL09idMOpbSBhIERhdGEvaG9yYSBVVENcbiAgcHVibGljIHN0YXRpYyBnZXREYXRlVGltZVVUQyhkYXRlOiBEYXRlKTogRGF0ZSB7XG4gICAgbGV0IGRhdGFTYWlkYTogRGF0ZTtcblxuICAgIHRyeSB7XG4gICAgICBkYXRhU2FpZGEgPSBuZXcgRGF0ZShkYXRlLmdldFVUQ0Z1bGxZZWFyKCksIGRhdGUuZ2V0VVRDTW9udGgoKSwgZGF0ZS5nZXRVVENEYXRlKCksIGRhdGUuZ2V0SG91cnMoKSwgZGF0ZS5nZXRNaW51dGVzKCksIGRhdGUuZ2V0U2Vjb25kcygpKTtcbiAgICB9XG4gICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAvL1F1YW5kbyBkYXRlIGNoZWdhIG5lc3RlIGZvcm1hdG86IDIwMjItMDYtMjBUMTE6MTI6MTNcbiAgICAgIGNvbnN0IGRpYTogc3RyaW5nID0gZGF0ZS50b1N0cmluZygpLnN1YnN0cmluZyg4LCAxMCk7XG4gICAgICBjb25zdCBtZXM6IHN0cmluZyA9IGRhdGUudG9TdHJpbmcoKS5zdWJzdHJpbmcoNSwgNyk7XG4gICAgICBjb25zdCBhbm86IHN0cmluZyA9IGRhdGUudG9TdHJpbmcoKS5zdWJzdHJpbmcoMCwgNCk7XG4gICAgICBjb25zdCBob3JhOiBzdHJpbmcgPSBkYXRlLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDExLCAxMyk7XG4gICAgICBjb25zdCBtaW46IHN0cmluZyA9IGRhdGUudG9TdHJpbmcoKS5zdWJzdHJpbmcoMTQsIDE2KTtcbiAgICAgIGNvbnN0IHNlZzogc3RyaW5nID0gZGF0ZS50b1N0cmluZygpLnN1YnN0cmluZygxNywgMTkpO1xuICAgICAgZGF0YVNhaWRhID0gbmV3IERhdGUoTnVtYmVyKGFubyksIE51bWJlcihtZXMpIC0gMSwgTnVtYmVyKGRpYSksIE51bWJlcihob3JhKSwgTnVtYmVyKG1pbiksIE51bWJlcihzZWcpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGF0YVNhaWRhO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjb21wYXJlRXF1YWxEYXRlcyhkYXRlMTogRGF0ZSwgZGF0ZTI6IERhdGUpOiBib29sZWFuIHtcbiAgICBsZXQgc3RyRGF0ZTE6IHN0cmluZyA9IFV0aWxzLmdldERhdGVkZE1NeXl5KGRhdGUxKTtcbiAgICBsZXQgc3RyRGF0ZTI6IHN0cmluZyA9IFV0aWxzLmdldERhdGVkZE1NeXl5KGRhdGUyKTtcblxuICAgIGlmIChzdHJEYXRlMSA9PT0gc3RyRGF0ZTIpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjb252ZXJ0TU1ZWVlZVG9EYXRlKHZhbHVlOiBzdHJpbmcpOiBEYXRlIHtcbiAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoJy8nLCAnJyk7XG5cbiAgICBsZXQgbW9udGg6IG51bWJlciA9IE51bWJlcih2YWx1ZS5zdWJzdHJpbmcoMCwgMikpO1xuICAgIGxldCB5ZWFyOiBudW1iZXIgPSBOdW1iZXIodmFsdWUuc3Vic3RyaW5nKDIsIDYpKTtcblxuICAgIC8vRGltaW51aSAxIHBvaXMgbm8gYW5ndWxhciBleGlzdGUgdW0gw61uZGljZSBkbyBtw6pzIHF1ZSBuw6NvIMOpIGlndWFsIGFvIG3DqnMuXG4gICAgbW9udGggPSBtb250aCAtIDE7XG5cbiAgICByZXR1cm4gbmV3IERhdGUoeWVhciwgbW9udGgsIDEpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBnZXROdWxsRGF0ZSgpOiBEYXRlIHtcbiAgICByZXR1cm4gbmV3IERhdGUoMTkwMCwgMCwgMSwgMCwgMCwgMCk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGdldERhdGVXZWJTZXJ2aWNlRm9ybWF0KHZhbHVlOiBEYXRlKTogc3RyaW5nIHtcblxuICAgIGlmICh2YWx1ZS50b1N0cmluZygpID09ICcnKSB7XG4gICAgICByZXR1cm4gJzE5MDAtMDEtMDEnO1xuICAgIH1cblxuICAgIGxldCBkYXRhID0gVXRpbHMuZ2V0RGF0ZWRkTU15eXkodmFsdWUpO1xuXG4gICAgcmV0dXJuIGRhdGEuc3Vic3RyaW5nKDYsIDEwKSArICctJyArIGRhdGEuc3Vic3RyaW5nKDMsIDUpICsgJy0nICsgZGF0YS5zdWJzdHJpbmcoMCwgMik7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGdldERhdGVUaW1lV2ViU2VydmljZUZvcm1hdCh2YWx1ZTogRGF0ZSk6IHN0cmluZyB7XG4gICAgaWYgKHZhbHVlLnRvU3RyaW5nKCkgPT0gJycgfHwgVXRpbHMuZ2V0RGF0ZWRkTU15eXkodmFsdWUpID09IFV0aWxzLmdldERhdGVkZE1NeXl5KHRoaXMuZ2V0TnVsbERhdGUoKSkpIHtcbiAgICAgICAgcmV0dXJuICcxOTAwLTAxLTAxVDAwOjAwOjAwJztcbiAgICB9XG4gIFxuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh2YWx1ZSk7XG4gIFxuICAgIC8vIE9idGVuZG8gb3MgY29tcG9uZW50ZXMgaW5kaXZpZHVhaXMgZGEgZGF0YVxuICAgIGNvbnN0IHllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCk7XG4gICAgY29uc3QgbW9udGggPSBkYXRlLmdldE1vbnRoKCk7XG4gICAgY29uc3QgZGF5ID0gZGF0ZS5nZXREYXRlKCk7XG4gICAgY29uc3QgaG91cnMgPSBkYXRlLmdldEhvdXJzKCk7XG4gICAgY29uc3QgbWludXRlcyA9IGRhdGUuZ2V0TWludXRlcygpO1xuICAgIGNvbnN0IHNlY29uZHMgPSBkYXRlLmdldFNlY29uZHMoKTsgXG4gIFxuICAgIGNvbnN0IGZvcm1hdHRlZERhdGUgPSBgJHt5ZWFyfS0keyhtb250aCArIDEpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX0tJHtkYXkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfVQke2hvdXJzLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX06JHttaW51dGVzLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX06JHtzZWNvbmRzLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX1gO1xuICAgIFxuICAgIHJldHVybiBmb3JtYXR0ZWREYXRlO1xuICB9XG5cbiAgLy9UcmFuc2Zvcm1hIGEgc3RyaW5nIEJhc2U2NCBudW0gYXJyYXkgZGUgYnl0ZXMgZSBmYXogbyBkb3dubG9hZCBkbyBhcnF1aXZvLlxuICBwdWJsaWMgc3RhdGljIGRvd25sb2FkRmlsZUJhc2U2NChmbGVOYW1lOiBzdHJpbmcsIGZpbGU6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGJ5dGVTdHJpbmcgPSB3aW5kb3cuYXRvYihmaWxlKTtcbiAgICBjb25zdCBhcnJheUJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcihieXRlU3RyaW5nLmxlbmd0aCk7XG4gICAgY29uc3QgaW50OEFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoYXJyYXlCdWZmZXIpO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBieXRlU3RyaW5nLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpbnQ4QXJyYXlbaV0gPSBieXRlU3RyaW5nLmNoYXJDb2RlQXQoaSk7XG4gICAgfVxuXG4gICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtpbnQ4QXJyYXldKTtcblxuICAgIGNvbnN0IHVybCA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuXG4gICAgLy9BYmlvXG4gICAgLy9PIHdpbmRvdy5vcGVuIGZvaSBjb21lbnRhZG8gcG9ycXVlIG5vIGRvd25sb2FkIGRvcyBhcnF1aXZvcyBkaWdpdGFpcyBhYnJpYSB1bWEgamFuZWxhIGNvbSBvIGJsb2IgZG8gYXJxdWl2by4gXG4gICAgLy9Db21lbnRhciBuw6NvIGFmZXRvdSBvIGRvd25sb2FkIGRvIGNvbnRyYS1jaGVxdWUuICBcbiAgICAvL3dpbmRvdy5vcGVuKHVybCk7XG4gICAgdmFyIGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG5cbiAgICBhLmhyZWYgPSB1cmw7XG4gICAgYS50YXJnZXQgPSAnX2JsYW5rJztcbiAgICBhLmRvd25sb2FkID0gZmxlTmFtZTtcblxuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSk7XG5cbiAgICBhLmNsaWNrKCk7XG4gIH1cblxuICAvKipcbiAgKiBBYnJlIG8gcG9wdXAgZG8gbmF2ZWdhZG9yIHBhcmEgYmFpeGFyIHVtIGFycXVpdm8gcXVlIHZlaW8gZGUgdW0gYmxvYi5cbiAgKiBcbiAgKiBAcGFyYW0gYmxvYiBDb250ZcO6ZG8gZG8gYXJxdWl2byBiaW7DoXJpbyBhIHNlciBiYWl4YWRvLlxuICAqIEBwYXJhbSBmaWxlTmFtZSBOb21lIGRvIGFycXVpdm8gYSBzZXIgc2Fsdm8uXG4gICovXG4gIHB1YmxpYyBzdGF0aWMgZG93bmxvYWRGaWxlKGJsb2I6IEJsb2IsIGZpbGVOYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBhbmNob3IgPSB3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuXG4gICAgYW5jaG9yLmhyZWYgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcbiAgICBhbmNob3IuZG93bmxvYWQgPSBmaWxlTmFtZTtcblxuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYW5jaG9yKTtcblxuICAgIGFuY2hvci5jbGljaygpO1xuXG4gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChhbmNob3IpO1xuICAgIHdpbmRvdy5VUkwucmV2b2tlT2JqZWN0VVJMKGFuY2hvci5ocmVmKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgYjY0RGVjb2RlVW5pY29kZShzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgLy8gR29pbmcgYmFja3dhcmRzOiBmcm9tIGJ5dGVzdHJlYW0sIHRvIHBlcmNlbnQtZW5jb2RpbmcsIHRvIG9yaWdpbmFsIHN0cmluZy5cbiAgICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGF0b2Ioc3RyKS5zcGxpdCgnJykubWFwKGMgPT4ge1xuICAgICAgcmV0dXJuICclJyArICgnMDAnICsgYy5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTIpO1xuICAgIH0pLmpvaW4oJycpKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgYjY0RW5jb2RlVW5pY29kZShzdHI6IHN0cmluZykge1xuICAgIC8vIGZpcnN0IHdlIHVzZSBlbmNvZGVVUklDb21wb25lbnQgdG8gZ2V0IHBlcmNlbnQtZW5jb2RlZCBVVEYtOCxcbiAgICAvLyB0aGVuIHdlIGNvbnZlcnQgdGhlIHBlcmNlbnQgZW5jb2RpbmdzIGludG8gcmF3IGJ5dGVzIHdoaWNoXG4gICAgLy8gY2FuIGJlIGZlZCBpbnRvIGJ0b2EuXG4gICAgcmV0dXJuIGJ0b2EoZW5jb2RlVVJJQ29tcG9uZW50KHN0cikucmVwbGFjZSgvJShbMC05QS1GXXsyfSkvZyxcbiAgICAgIChtYXRjaCwgcDEpID0+IHtcbiAgICAgICAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoKFwiMHhcIiArIHAxKSBhcyBhbnkpO1xuICAgICAgfSkpO1xuICB9XG5cbiAgLy9MYXJndXJhIGEgcGFydGlyIGRlIG9uZGUgcmVtb250YSBvIG5neF9kYXRhdGFibGUgcGFyYSBtb2JpbGVcbiAgcHVibGljIHN0YXRpYyBnZXRJc01vYmlsZSgpIHtcbiAgICBjb25zdCB3aWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoIHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCB8fCBkb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoO1xuICAgIHJldHVybiB3aWR0aCA8IDc2ODtcbiAgfVxuXG59XG4iXX0=
|
|
370
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3AtaW5mcmEvc3JjL2xpYi91dGlscy91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sS0FBSztJQUVoQixrREFBa0Q7SUFDM0MsTUFBTSxDQUFDLG1CQUFtQixDQUFDLEtBQVU7UUFFMUMsSUFBSSxZQUFZLEdBQVcsRUFBRSxDQUFDO1FBRTlCLElBQUksS0FBSyxDQUFDLEtBQUssWUFBWSxVQUFVLEVBQUUsQ0FBQztZQUN0QyxpQ0FBaUM7WUFDakMsWUFBWSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQ3JDLENBQUM7YUFBTSxDQUFDO1lBRU4sbUNBQW1DO1lBQ25DLElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUVqQixJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksR0FBRyxFQUFFLENBQUM7b0JBRXhCLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO3dCQUVoQixJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7NEJBQzdCLFlBQVksR0FBRyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7d0JBQy9DLENBQUM7NkJBQ0ksQ0FBQzs0QkFDSixZQUFZLEdBQUcsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO3dCQUMxQyxDQUFDO29CQUVILENBQUM7eUJBQU0sQ0FBQzt3QkFDTixZQUFZLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztvQkFDL0IsQ0FBQztnQkFFSCxDQUFDO3FCQUNJLENBQUM7b0JBRUosSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7d0JBRWhCLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQzs0QkFDN0IsWUFBWSxHQUFHLEdBQUcsS0FBSyxDQUFD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QUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDeEMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFFeEMsSUFBSSxTQUFTLElBQUksU0FBUyxFQUFFLENBQUM7Z0JBQzNCLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ2pELElBQUksVUFBVSxLQUFLLENBQUM7b0JBQUUsT0FBTyxVQUFVLENBQUM7WUFDMUMsQ0FBQztpQkFDSSxJQUFJLFNBQVMsRUFBRSxDQUFDO2dCQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFBQyxDQUFDO2lCQUM3QixJQUFJLFNBQVMsRUFBRSxDQUFDO2dCQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQUMsQ0FBQztpQkFDNUIsQ0FBQztnQkFDSixNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM5QyxJQUFJLFVBQVUsS0FBSyxDQUFDO29CQUFFLE9BQU8sVUFBVSxDQUFDO1lBQzFDLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgVXRpbHMge1xuXG4gIC8vIE9idMOpbSBhIG1lbnNhZ2VtIGRlIGVycm8gZGUgdW1hIHJlcXVpc2nDp8OjbyBodHRwXG4gIHB1YmxpYyBzdGF0aWMgZ2V0SHR0cEVycm9yTWVzc2FnZShlcnJvcjogYW55KTogc3RyaW5nIHtcblxuICAgIGxldCBlcnJvck1lc3NhZ2U6IHN0cmluZyA9ICcnO1xuXG4gICAgaWYgKGVycm9yLmVycm9yIGluc3RhbmNlb2YgRXJyb3JFdmVudCkge1xuICAgICAgLy8gRXJybyBvY29ycmV1IG5vIGxhZG8gZG8gY2xpZW50XG4gICAgICBlcnJvck1lc3NhZ2UgPSBlcnJvci5lcnJvci5tZXNzYWdlO1xuICAgIH0gZWxzZSB7XG5cbiAgICAgIC8vIEVycm8gb2NvcnJldSBubyBsYWRvIGRvIHNlcnZpZG9yXG4gICAgICBpZiAoZXJyb3Iuc3RhdHVzKSB7XG5cbiAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PSAyMDApIHtcblxuICAgICAgICAgIGlmIChlcnJvci5lcnJvcikge1xuXG4gICAgICAgICAgICBpZiAoZXJyb3IuZXJyb3IuRXJyb3JNZXNzYWdlKSB7XG4gICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IGAke2Vycm9yLmVycm9yLkVycm9yTWVzc2FnZX1gO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IGAke2Vycm9yLmVycm9yLk1lc3NhZ2V9YDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBlcnJvci5tZXNzYWdlO1xuICAgICAgICAgIH1cblxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuXG4gICAgICAgICAgaWYgKGVycm9yLmVycm9yKSB7XG5cbiAgICAgICAgICAgIGlmIChlcnJvci5lcnJvci5FcnJvck1lc3NhZ2UpIHtcbiAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gYCR7ZXJyb3IuZXJyb3IuRXJyb3JNZXNzYWdlfTxicj48YnI+JHtlcnJvci5zdGF0dXN9IC0gJHtlcnJvci5zdGF0dXNUZXh0fWA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gYCR7ZXJyb3IuZXJyb3IuTWVzc2FnZX08YnI+PGJyPiR7ZXJyb3Iuc3RhdHVzfSAtICR7ZXJyb3Iuc3RhdHVzVGV4dH1gO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IGVycm9yLm1lc3NhZ2U7XG4gICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXJyb3JNZXNzYWdlID0gZXJyb3IubWVzc2FnZTtcbiAgICAgIH1cblxuICAgIH1cblxuICAgIHJldHVybiBlcnJvck1lc3NhZ2U7XG4gIH07XG5cbiAgcHVibGljIHN0YXRpYyBjb252ZXJ0RGF0ZVRpbWVUb0RhdGVTdHJpbmcoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XG4gICAgY29uc3QgZGF0ZVN0cmluZzogc3RyaW5nW10gPSBkYXRlLnRvU3RyaW5nKCkuc3BsaXQoJ1QnKVswXS5zcGxpdCgnLScpO1xuXG4gICAgcmV0dXJuIGAke2RhdGVTdHJpbmdbMF19LSR7ZGF0ZVN0cmluZ1sxXX0tJHtkYXRlU3RyaW5nWzJdfWA7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGNvbnZlcnRTdHJpbmdUb0RhdGUodGV4dDogc3RyaW5nKTogRGF0ZSB7XG4gICAgY29uc3QgZGF0ZVN0cmluZzogc3RyaW5nW10gPSB0ZXh0LnNwbGl0KCctJyk7XG5cbiAgICByZXR1cm4gbmV3IERhdGUoK2RhdGVTdHJpbmdbMF0sICgrZGF0ZVN0cmluZ1sxXSkgLSAxLCArZGF0ZVN0cmluZ1syXSk7XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZpY2Egc2UgdW0gZGV0ZXJtaW5hZG8gYW5vIMOpIGJpc3NleHRvLlxuICAgKiBAcGFyYW0geWVhciBBbm8gYSBzZXIgdmVyaWZpY2Fkby5cbiAgICogQHJldHVybnMgUmV0b3JuYSB0cnVlIHNlIG8gYW5vIGZvciBiaXNzZXh0byBlIGZhbHNlIHNlIGVsZSBuw6NvIGZvciwgb3Ugc2UgbyBhbm8gaW5mb3JtYWRvIGZvciBpbnbDoWxpZG8uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGlzTGVhcFllYXIoeWVhcjogbnVtYmVyIHwgc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgWUVBUl9OVU1CRVI6IG51bWJlciA9IHR5cGVvZiB5ZWFyID09PSAnc3RyaW5nJyA/IHBhcnNlSW50KHllYXIpIDogeWVhcjtcblxuICAgIGlmICghaXNOYU4oWUVBUl9OVU1CRVIpKSB7XG4gICAgICBpZiAoKFlFQVJfTlVNQkVSICUgNCA9PT0gMCAmJiBZRUFSX05VTUJFUiAlIDEwMCAhPT0gMCkgfHwgWUVBUl9OVU1CRVIgJSA0MDAgPT09IDApIHJldHVybiB0cnVlO1xuICAgICAgZWxzZSByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGVsc2UgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmaWNhIHNlIHVtYSBkZXRlcm1pbmFkYSBkYXRhIMOpIGluZGV0ZXJtaW5hZGEuXG4gICAqIEBwYXJhbSBkYXRlVGltZSBEYXRhIGEgc2VyIHZlcmlmaWNhZGEuXG4gICAqIEByZXR1cm5zIFJldG9ybmEgdHJ1ZSBzZSBmb3IgaW5kZXRlcm1pbmFkYSBlIGZhbHNlIHNlIG7Do28gZm9yLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB2ZXJpZnlEYXRlSXNJbmRldGVybWluYXRlKGRhdGVUaW1lOiBEYXRlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGRhdGVUaW1lLnRvU3RyaW5nKCkuc3BsaXQoJ1QnKVswXSA9PT0gJzIwOTktMTItMzEnO1xuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmaWNhIHNlIHVtYSBkZXRlcm1pbmFkYSBkYXRhIMOpIG51bGEgKGlndWFsIGEgJzE5MDAtMDEtMDFUMDA6MDA6MDAnKS5cbiAgICogQHBhcmFtIGRhdGVUaW1lIERhdGEgYSBzZXIgdmVyaWZpY2FkYS5cbiAgICogQHJldHVybnMgUmV0b3JuYSB0cnVlIHNlIGZvciBudWxhIGUgZmFsc2Ugc2UgbsOjbyBmb3IuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHZlcmlmeURhdGVJc051bGwoZGF0ZVRpbWU6IERhdGUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZGF0ZVRpbWUudG9TdHJpbmcoKS5zcGxpdCgnVCcpWzBdID09PSAnMTkwMC0wMS0wMSc7XG4gIH1cblxuICAvKipcbiAgICogVGVudGEgcmVhbGl6YXIgdW0gcGFyc2UgZGUgdW1hIGRhdGEgY29tIG9zIHNlZ3VpbnRlcyB2YWxvcmVzOiBkZC9NTS95eXl5IEhIOm1tXG4gICAqIFxuICAgKiBAcGFyYW0gdmFsdWUgU3RyaW5nIHF1ZSBjb250w6ltIGEgZGF0YSBmb3JtYXRhZGEgZW0gcHQtYnJcbiAgICogQHBhcmFtIGRhdGVTZXBhcmF0b3IgU2VwYXJhZG9yIGRhIGRhdGEuXG4gICAqIEByZXR1cm5zIFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBwYXJzZURhdGVUaW1lKHZhbHVlOiBzdHJpbmcsIGRhdGVTZXBhcmF0b3I6IHN0cmluZyA9IFwiL1wiKTogRGF0ZSB8IHVuZGVmaW5lZCB7XG4gICAgbGV0IHVzRGF0ZSA9IFwiXCI7XG5cbiAgICB2YWx1ZSA9IHZhbHVlLnRyaW0oKTtcblxuICAgIGxldCBkYXRlQW5kVGltZTogc3RyaW5nW10gPSB2YWx1ZS5zcGxpdChcIiBcIik7XG5cbiAgICAvLyBQb3NzdWkgcGVsbyBtZW5vcyA1IGNhcmFjdGVyZXM6IDEvMS8xXG4gICAgaWYgKHZhbHVlLmxlbmd0aCA+PSA1KSB7XG4gICAgICBsZXQgZGF0ZVNlcGFyYXRlZDogc3RyaW5nW10gPSBkYXRlQW5kVGltZVswXS5zcGxpdChkYXRlU2VwYXJhdG9yKTtcblxuICAgICAgaWYgKGRhdGVTZXBhcmF0ZWQubGVuZ3RoICE9PSAzKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKGRhdGVTZXBhcmF0ZWRbMl0ubGVuZ3RoID4gMikge1xuICAgICAgICBkYXRlU2VwYXJhdGVkWzJdID0gYCR7ZGF0ZVNlcGFyYXRlZFsyXS5jaGFyQXQoMCl9JHtkYXRlU2VwYXJhdGVkWzJdLmNoYXJBdCgxKX1gLnRyaW0oKTtcbiAgICAgIH1cblxuICAgICAgdXNEYXRlID0gYCR7ZGF0ZVNlcGFyYXRlZFsxXX0vJHtkYXRlU2VwYXJhdGVkWzBdfS8ke2RhdGVTZXBhcmF0ZWRbMl19YFxuICAgIH1cblxuICAgIGlmIChkYXRlQW5kVGltZS5sZW5ndGggPT09IDIpIHtcblxuICAgICAgdXNEYXRlICs9IGAgJHtkYXRlQW5kVGltZVsxXX1gO1xuICAgIH1cblxuICAgIGxldCBleHBlY3RlZERhdGU6IG51bWJlciA9IERhdGUucGFyc2UodXNEYXRlKTtcblxuICAgIGlmIChleHBlY3RlZERhdGUgIT09IG51bGwgfHwgZXhwZWN0ZWREYXRlIDwgMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgRGF0ZShleHBlY3RlZERhdGUpO1xuICB9XG5cbiAgLy8gT2J0w6ltIGEgRGF0YSBsb2NhbFxuICBwdWJsaWMgc3RhdGljIGdldERhdGVMb2NhbFRpbWUoZGF0ZTogRGF0ZSk6IERhdGUge1xuICAgIHJldHVybiAobmV3IERhdGUoZGF0ZS5nZXRUaW1lKCkgLSBkYXRlLmdldFRpbWV6b25lT2Zmc2V0KCkgKiA2MDAwMCkpO1xuICB9XG5cbiAgLy8gT2J0w6ltIGEgRGF0YSBsb2NhbCBubyBQYWRyw6NvIElzb1xuICBwdWJsaWMgc3RhdGljIGdldERhdGVMb2NhbFRpbWVJU08oZGF0ZTogRGF0ZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuICh0aGlzLmdldERhdGVMb2NhbFRpbWUoZGF0ZSkudG9JU09TdHJpbmcoKS5yZXBsYWNlKCcuMDAwWicsICcnKSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGdldERhdGVQaWNrZXJEYXRlKHN0cjogU3RyaW5nKTogRGF0ZSB7XG4gICAgY29uc3QgW2RhdGVDb21wb25lbnRzLCB0aW1lQ29tcG9uZW50c10gPSBzdHIuc3BsaXQoJ1QnKVxuICAgIGNvbnN0IFthbm8sIG1lcywgZGlhXSA9IGRhdGVDb21wb25lbnRzLnNwbGl0KCctJyk7XG4gICAgY29uc3QgW2hvcmEsIG1pbnV0bywgc2VndW5kb10gPSB0aW1lQ29tcG9uZW50cy5zcGxpdCgnOicpO1xuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZShOdW1iZXIoYW5vKSwgTnVtYmVyKG1lcyksIE51bWJlcihkaWEpKVxuXG4gICAgcmV0dXJuIGRhdGVcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgQWRpY2lvbmFEaWFzKGRhdGE6IERhdGUsIGRheXM6IG51bWJlcik6IERhdGUge1xuICAgIGNvbnN0IGZpbmQgPSBuZXcgRGF0ZShOdW1iZXIoZGF0YSkpXG5cbiAgICBmaW5kLnNldERhdGUoZGF0YS5nZXREYXRlKCkgKyBkYXlzKVxuXG4gICAgcmV0dXJuIGZpbmRcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgRGlmZXJlbmNhRGlhcyhkYXRhSW5pY2lhbDogRGF0ZSwgZGF0YUZpbmFsOiBEYXRlKTogbnVtYmVyIHtcbiAgICB2YXIgVGltZSA9IGRhdGFGaW5hbC5nZXRUaW1lKCkgLSBkYXRhSW5pY2lhbC5nZXRUaW1lKCk7XG5cbiAgICByZXR1cm4gVGltZSAvICgxMDAwICogMzYwMCAqIDI0KTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgRGlmZXJlbmNhTWVzZXMoZGF0YUluaWNpYWw6IERhdGUsIGRhdGFGaW5hbDogRGF0ZSk6IG51bWJlciB7XG4gICAgdmFyIG1lc2VzID0gKGRhdGFGaW5hbC5nZXRGdWxsWWVhcigpIC0gZGF0YUluaWNpYWwuZ2V0RnVsbFllYXIoKSkgKiAxMjtcbiAgICBtZXNlcyAtPSBkYXRhSW5pY2lhbC5nZXRNb250aCgpO1xuICAgIG1lc2VzICs9IGRhdGFGaW5hbC5nZXRNb250aCgpO1xuXG4gICAgcmV0dXJuIG1lc2VzIDw9IDAgPyAwIDogbWVzZXM7XG4gIH1cblxuXG4gIC8vT2J0w6ltIGEgRGF0YSBVVEMgY29tIGhvcmEgemVyYWRhXG4gIHB1YmxpYyBzdGF0aWMgZ2V0RGF0ZVVUQyhkYXRlOiBEYXRlKTogRGF0ZSB7XG4gICAgLy9jb2RpZ28gb3JpZ2luYWxcbiAgICAvL3JldHVybiBuZXcgRGF0ZShkYXRlLmdldFRpbWUoKSArIChkYXRlLmdldFRpbWV6b25lT2Zmc2V0KCkgKiA2MDAwMCkpO1xuICAgIGxldCBkYXRhU2FpZGE6IERhdGU7XG5cbiAgICB0cnkge1xuICAgICAgZGF0YVNhaWRhID0gbmV3IERhdGUoZGF0ZS5nZXRVVENGdWxsWWVhcigpLCBkYXRlLmdldFVUQ01vbnRoKCksIGRhdGUuZ2V0VVRDRGF0ZSgpLCAwLCAwLCAwKTtcbiAgICB9XG4gICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAvL1F1YW5kbyBkYXRlIGNoZWdhIG5lc3RlIGZvcm1hdG86IDIwMjItMDYtMjBUMDA6MDA6MDBcbiAgICAgIC8vdGVudG8gcGVnYXIgYW5vL21lcy9kaWEgZGlyZXRvIFxuICAgICAgLy9EYXRlKER0SW5pRmVyLmdldFVUQ0Z1bGxZZWFyKCksIER0SW5pRmVyLmdldFVUQ01vbnRoKCksIER0SW5pRmVyLmdldFVUQ0RhdGUoKSwgMCAsIDAgLCAwKTtcbiAgICAgIC8vZSBuw6NvIGZ1bmNpb25hXG4gICAgICBjb25zdCBkaWE6IHN0cmluZyA9IGRhdGUudG9TdHJpbmcoKS5zdWJzdHJpbmcoOCwgMTApO1xuICAgICAgY29uc3QgbWVzOiBzdHJpbmcgPSBkYXRlLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDUsIDcpO1xuICAgICAgY29uc3QgYW5vOiBzdHJpbmcgPSBkYXRlLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDAsIDQpO1xuICAgICAgZGF0YVNhaWRhID0gbmV3IERhdGUoTnVtYmVyKGFubyksIE51bWJlcihtZXMpIC0gMSwgTnVtYmVyKGRpYSksIDAsIDAsIDApO1xuICAgIH1cblxuICAgIHJldHVybiBkYXRhU2FpZGE7XG4gIH1cblxuICAvL09idMOpbSBhIERhdGEgVVRDIGNvbSBob3JhIHplcmFkYVxuICBwdWJsaWMgc3RhdGljIGdldERhdGVkZE1NeXl5KGRhdGU6IERhdGUpOiBzdHJpbmcge1xuICAgIC8vY29kaWdvIG9yaWdpbmFsXG4gICAgLy9yZXR1cm4gbmV3IERhdGUoZGF0ZS5nZXRUaW1lKCkgKyAoZGF0ZS5nZXRUaW1lem9uZU9mZnNldCgpICogNjAwMDApKTtcbiAgICBsZXQgZGF0YVNhaWRhOiBEYXRlO1xuXG4gICAgdHJ5IHtcbiAgICAgIGRhdGFTYWlkYSA9IG5ldyBEYXRlKGRhdGUuZ2V0VVRDRnVsbFllYXIoKSwgZGF0ZS5nZXRVVENNb250aCgpLCBkYXRlLmdldFVUQ0RhdGUoKSwgMCwgMCwgMCk7XG4gICAgfVxuICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgLy9RdWFuZG8gZGF0ZSBjaGVnYSBuZXN0ZSBmb3JtYXRvOiAyMDIyLTA2LTIwVDAwOjAwOjAwXG4gICAgICAvL3RlbnRvIHBlZ2FyIGFuby9tZXMvZGlhIGRpcmV0byBcbiAgICAgIC8vRGF0ZShEdEluaUZlci5nZXRVVENGdWxsWWVhcigpLCBEdEluaUZlci5nZXRVVENNb250aCgpLCBEdEluaUZlci5nZXRVVENEYXRlKCksIDAgLCAwICwgMCk7XG4gICAgICAvL2UgbsOjbyBmdW5jaW9uYVxuICAgICAgY29uc3QgZGlhOiBzdHJpbmcgPSBkYXRlLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDgsIDEwKTtcbiAgICAgIGNvbnN0IG1lczogc3RyaW5nID0gZGF0ZS50b1N0cmluZygpLnN1YnN0cmluZyg1LCA3KTtcbiAgICAgIGNvbnN0IGFubzogc3RyaW5nID0gZGF0ZS50b1N0cmluZygpLnN1YnN0cmluZygwLCA0KTtcblxuICAgICAgZGF0YVNhaWRhID0gbmV3IERhdGUoTnVtYmVyKGFubyksIE51bWJlcihtZXMpIC0gMSwgTnVtYmVyKGRpYSksIDAsIDAsIDApO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhZChzOiBhbnkpIHsgcmV0dXJuIChzIDwgMTApID8gJzAnICsgcyA6IHM7IH1cblxuICAgIHJldHVybiBbcGFkKGRhdGFTYWlkYS5nZXRVVENEYXRlKCkpLCBwYWQoZGF0YVNhaWRhLmdldFVUQ01vbnRoKCkgKyAxKSwgcGFkKGRhdGFTYWlkYS5nZXRVVENGdWxsWWVhcigpKV0uam9pbignLycpO1xuICB9XG5cbiAgLy9PYnTDqW0gYSBEYXRhIFVUQyBjb20gYSBob3JhXG4gIHB1YmxpYyBzdGF0aWMgZ2V0RGF0ZWRkTU15eXl5SGhtbXNzKGRhdGU6IERhdGUpOiBzdHJpbmcge1xuICAgIGxldCBkYXRhU2FpZGE6IERhdGU7XG5cbiAgICB0cnkge1xuICAgICAgZGF0YVNhaWRhID0gbmV3IERhdGUoZGF0ZS5nZXRVVENGdWxsWWVhcigpLCBkYXRlLmdldFVUQ01vbnRoKCksIGRhdGUuZ2V0VVRDRGF0ZSgpLCBkYXRlLmdldEhvdXJzKCksIGRhdGUuZ2V0TWludXRlcygpLCBkYXRlLmdldFNlY29uZHMoKSk7XG4gICAgfVxuICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgLy9RdWFuZG8gZGF0ZSBjaGVnYSBuZXN0ZSBmb3JtYXRvOiAyMDIyLTA2LTIwVDAwOjAwOjAwXG4gICAgICAvL3RlbnRvIHBlZ2FyIGFuby9tZXMvZGlhIGRpcmV0byBcbiAgICAgIC8vRGF0ZShEdEluaUZlci5nZXRVVENGdWxsWWVhcigpLCBEdEluaUZlci5nZXRVVENNb250aCgpLCBEdEluaUZlci5nZXRVVENEYXRlKCksIDAgLCAwICwgMCk7XG4gICAgICAvL2UgbsOjbyBmdW5jaW9uYVxuICAgICAgY29uc3QgZGlhOiBzdHJpbmcgPSBkYXRlLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDgsIDEwKTtcbiAgICAgIGNvbnN0IG1lczogc3RyaW5nID0gZGF0ZS50b1N0cmluZygpLnN1YnN0cmluZyg1LCA3KTtcbiAgICAgIGNvbnN0IGFubzogc3RyaW5nID0gZGF0ZS50b1N0cmluZygpLnN1YnN0cmluZygwLCA0KTtcbiAgICAgIGNvbnN0IGhvcmE6IHN0cmluZyA9IGRhdGUudG9TdHJpbmcoKS5zdWJzdHJpbmcoMTEsIDEzKTtcbiAgICAgIGNvbnN0IG1pbnV0b3M6IHN0cmluZyA9IGRhdGUudG9TdHJpbmcoKS5zdWJzdHJpbmcoMTQsIDE2KTtcbiAgICAgIGNvbnN0IHNlZ3VuZG9zOiBzdHJpbmcgPSBkYXRlLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDE3LCAxOSk7XG5cbiAgICAgIGRhdGFTYWlkYSA9IG5ldyBEYXRlKE51bWJlcihhbm8pLCBOdW1iZXIobWVzKSAtIDEsIE51bWJlcihkaWEpLCBOdW1iZXIoaG9yYSksIE51bWJlcihtaW51dG9zKSwgTnVtYmVyKHNlZ3VuZG9zKSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFkKHM6IGFueSkgeyByZXR1cm4gKHMgPCAxMCkgPyAnMCcgKyBzIDogczsgfVxuXG4gICAgbGV0IGRhdGFGb3JtYXRhZGE6IHN0cmluZyA9IFtwYWQoZGF0YVNhaWRhLmdldERhdGUoKSksIHBhZChkYXRhU2FpZGEuZ2V0VVRDTW9udGgoKSArIDEpLCBwYWQoZGF0YVNhaWRhLmdldFVUQ0Z1bGxZZWFyKCkpXS5qb2luKCcvJyk7XG5cbiAgICBkYXRhRm9ybWF0YWRhICs9IFwiIFwiO1xuICAgIGRhdGFGb3JtYXRhZGEgKz0gW3BhZChkYXRhU2FpZGEuZ2V0SG91cnMoKSksIHBhZChkYXRhU2FpZGEuZ2V0TWludXRlcygpKSwgcGFkKGRhdGFTYWlkYS5nZXRTZWNvbmRzKCkpXS5qb2luKCc6Jyk7XG5cbiAgICByZXR1cm4gZGF0YUZvcm1hdGFkYTtcbiAgfVxuXG4gIHN0YXRpYyBVbHRpbW9EaWFNZXMoZGF0YTogRGF0ZSk6IERhdGUge1xuICAgIGxldCBkYXRhU2FpZGE6IERhdGUgPSB0aGlzLmdldERhdGVUaW1lVVRDKGRhdGEpO1xuICAgIC8vIGFkaWNpb25hIDEgbWVzXG4gICAgZGF0YVNhaWRhLnNldE1vbnRoKGRhdGFTYWlkYS5nZXRVVENNb250aCgpICsgMSk7XG4gICAgLy9Qb3NpY2lvbmEgbm8gZGlhIDAxIGRvIG1lcyBhZGljaW9uYWRvXG4gICAgZGF0YVNhaWRhID0gbmV3IERhdGUoZGF0YVNhaWRhLmdldFVUQ0Z1bGxZZWFyKCksIGRhdGFTYWlkYS5nZXRVVENNb250aCgpLCAxLCAwLCAwLCAwKTtcbiAgICAvLyBzdWJ0cmFpIDEgZGlhIHBhcmEgaXIgcGFyYSBvIHVsdGltbyBkaWEgZG8gbWVzXG4gICAgZGF0YVNhaWRhLnNldERhdGUoZGF0YVNhaWRhLmdldERhdGUoKSAtIDEpO1xuXG4gICAgcmV0dXJuIGRhdGFTYWlkYTtcbiAgfVxuXG4gIC8vT2J0w6ltIGEgRGF0YS9ob3JhIFVUQ1xuICBwdWJsaWMgc3RhdGljIGdldERhdGVUaW1lVVRDKGRhdGU6IERhdGUpOiBEYXRlIHtcbiAgICBsZXQgZGF0YVNhaWRhOiBEYXRlO1xuXG4gICAgdHJ5IHtcbiAgICAgIGRhdGFTYWlkYSA9IG5ldyBEYXRlKGRhdGUuZ2V0VVRDRnVsbFllYXIoKSwgZGF0ZS5nZXRVVENNb250aCgpLCBkYXRlLmdldFVUQ0RhdGUoKSwgZGF0ZS5nZXRIb3VycygpLCBkYXRlLmdldE1pbnV0ZXMoKSwgZGF0ZS5nZXRTZWNvbmRzKCkpO1xuICAgIH1cbiAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIC8vUXVhbmRvIGRhdGUgY2hlZ2EgbmVzdGUgZm9ybWF0bzogMjAyMi0wNi0yMFQxMToxMjoxM1xuICAgICAgY29uc3QgZGlhOiBzdHJpbmcgPSBkYXRlLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDgsIDEwKTtcbiAgICAgIGNvbnN0IG1lczogc3RyaW5nID0gZGF0ZS50b1N0cmluZygpLnN1YnN0cmluZyg1LCA3KTtcbiAgICAgIGNvbnN0IGFubzogc3RyaW5nID0gZGF0ZS50b1N0cmluZygpLnN1YnN0cmluZygwLCA0KTtcbiAgICAgIGNvbnN0IGhvcmE6IHN0cmluZyA9IGRhdGUudG9TdHJpbmcoKS5zdWJzdHJpbmcoMTEsIDEzKTtcbiAgICAgIGNvbnN0IG1pbjogc3RyaW5nID0gZGF0ZS50b1N0cmluZygpLnN1YnN0cmluZygxNCwgMTYpO1xuICAgICAgY29uc3Qgc2VnOiBzdHJpbmcgPSBkYXRlLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDE3LCAxOSk7XG4gICAgICBkYXRhU2FpZGEgPSBuZXcgRGF0ZShOdW1iZXIoYW5vKSwgTnVtYmVyKG1lcykgLSAxLCBOdW1iZXIoZGlhKSwgTnVtYmVyKGhvcmEpLCBOdW1iZXIobWluKSwgTnVtYmVyKHNlZykpO1xuICAgIH1cblxuICAgIHJldHVybiBkYXRhU2FpZGE7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGNvbXBhcmVFcXVhbERhdGVzKGRhdGUxOiBEYXRlLCBkYXRlMjogRGF0ZSk6IGJvb2xlYW4ge1xuICAgIGxldCBzdHJEYXRlMTogc3RyaW5nID0gVXRpbHMuZ2V0RGF0ZWRkTU15eXkoZGF0ZTEpO1xuICAgIGxldCBzdHJEYXRlMjogc3RyaW5nID0gVXRpbHMuZ2V0RGF0ZWRkTU15eXkoZGF0ZTIpO1xuXG4gICAgaWYgKHN0ckRhdGUxID09PSBzdHJEYXRlMikge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGNvbnZlcnRNTVlZWVlUb0RhdGUodmFsdWU6IHN0cmluZyk6IERhdGUge1xuICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZSgnLycsICcnKTtcblxuICAgIGxldCBtb250aDogbnVtYmVyID0gTnVtYmVyKHZhbHVlLnN1YnN0cmluZygwLCAyKSk7XG4gICAgbGV0IHllYXI6IG51bWJlciA9IE51bWJlcih2YWx1ZS5zdWJzdHJpbmcoMiwgNikpO1xuXG4gICAgLy9EaW1pbnVpIDEgcG9pcyBubyBhbmd1bGFyIGV4aXN0ZSB1bSDDrW5kaWNlIGRvIG3DqnMgcXVlIG7Do28gw6kgaWd1YWwgYW8gbcOqcy5cbiAgICBtb250aCA9IG1vbnRoIC0gMTtcblxuICAgIHJldHVybiBuZXcgRGF0ZSh5ZWFyLCBtb250aCwgMSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGdldE51bGxEYXRlKCk6IERhdGUge1xuICAgIHJldHVybiBuZXcgRGF0ZSgxOTAwLCAwLCAxLCAwLCAwLCAwKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZ2V0RGF0ZVdlYlNlcnZpY2VGb3JtYXQodmFsdWU6IERhdGUpOiBzdHJpbmcge1xuXG4gICAgaWYgKHZhbHVlLnRvU3RyaW5nKCkgPT0gJycpIHtcbiAgICAgIHJldHVybiAnMTkwMC0wMS0wMSc7XG4gICAgfVxuXG4gICAgbGV0IGRhdGEgPSBVdGlscy5nZXREYXRlZGRNTXl5eSh2YWx1ZSk7XG5cbiAgICByZXR1cm4gZGF0YS5zdWJzdHJpbmcoNiwgMTApICsgJy0nICsgZGF0YS5zdWJzdHJpbmcoMywgNSkgKyAnLScgKyBkYXRhLnN1YnN0cmluZygwLCAyKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZ2V0RGF0ZVRpbWVXZWJTZXJ2aWNlRm9ybWF0KHZhbHVlOiBEYXRlKTogc3RyaW5nIHtcbiAgICBpZiAodmFsdWUudG9TdHJpbmcoKSA9PSAnJyB8fCBVdGlscy5nZXREYXRlZGRNTXl5eSh2YWx1ZSkgPT0gVXRpbHMuZ2V0RGF0ZWRkTU15eXkodGhpcy5nZXROdWxsRGF0ZSgpKSkge1xuICAgICAgICByZXR1cm4gJzE5MDAtMDEtMDFUMDA6MDA6MDAnO1xuICAgIH1cbiAgXG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHZhbHVlKTtcbiAgXG4gICAgLy8gT2J0ZW5kbyBvcyBjb21wb25lbnRlcyBpbmRpdmlkdWFpcyBkYSBkYXRhXG4gICAgY29uc3QgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTtcbiAgICBjb25zdCBtb250aCA9IGRhdGUuZ2V0TW9udGgoKTtcbiAgICBjb25zdCBkYXkgPSBkYXRlLmdldERhdGUoKTtcbiAgICBjb25zdCBob3VycyA9IGRhdGUuZ2V0SG91cnMoKTtcbiAgICBjb25zdCBtaW51dGVzID0gZGF0ZS5nZXRNaW51dGVzKCk7XG4gICAgY29uc3Qgc2Vjb25kcyA9IGRhdGUuZ2V0U2Vjb25kcygpOyBcbiAgXG4gICAgY29uc3QgZm9ybWF0dGVkRGF0ZSA9IGAke3llYXJ9LSR7KG1vbnRoICsgMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfS0ke2RheS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9VCR7aG91cnMudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfToke21pbnV0ZXMudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfToke3NlY29uZHMudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfWA7XG4gICAgXG4gICAgcmV0dXJuIGZvcm1hdHRlZERhdGU7XG4gIH1cblxuICAvL1RyYW5zZm9ybWEgYSBzdHJpbmcgQmFzZTY0IG51bSBhcnJheSBkZSBieXRlcyBlIGZheiBvIGRvd25sb2FkIGRvIGFycXVpdm8uXG4gIHB1YmxpYyBzdGF0aWMgZG93bmxvYWRGaWxlQmFzZTY0KGZsZU5hbWU6IHN0cmluZywgZmlsZTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgYnl0ZVN0cmluZyA9IHdpbmRvdy5hdG9iKGZpbGUpO1xuICAgIGNvbnN0IGFycmF5QnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKGJ5dGVTdHJpbmcubGVuZ3RoKTtcbiAgICBjb25zdCBpbnQ4QXJyYXkgPSBuZXcgVWludDhBcnJheShhcnJheUJ1ZmZlcik7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGJ5dGVTdHJpbmcubGVuZ3RoOyBpKyspIHtcbiAgICAgIGludDhBcnJheVtpXSA9IGJ5dGVTdHJpbmcuY2hhckNvZGVBdChpKTtcbiAgICB9XG5cbiAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW2ludDhBcnJheV0pO1xuXG4gICAgY29uc3QgdXJsID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XG5cbiAgICAvL0FiaW9cbiAgICAvL08gd2luZG93Lm9wZW4gZm9pIGNvbWVudGFkbyBwb3JxdWUgbm8gZG93bmxvYWQgZG9zIGFycXVpdm9zIGRpZ2l0YWlzIGFicmlhIHVtYSBqYW5lbGEgY29tIG8gYmxvYiBkbyBhcnF1aXZvLiBcbiAgICAvL0NvbWVudGFyIG7Do28gYWZldG91IG8gZG93bmxvYWQgZG8gY29udHJhLWNoZXF1ZS4gIFxuICAgIC8vd2luZG93Lm9wZW4odXJsKTtcbiAgICB2YXIgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcblxuICAgIGEuaHJlZiA9IHVybDtcbiAgICBhLnRhcmdldCA9ICdfYmxhbmsnO1xuICAgIGEuZG93bmxvYWQgPSBmbGVOYW1lO1xuXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhKTtcblxuICAgIGEuY2xpY2soKTtcbiAgfVxuXG4gIC8qKlxuICAqIEFicmUgbyBwb3B1cCBkbyBuYXZlZ2Fkb3IgcGFyYSBiYWl4YXIgdW0gYXJxdWl2byBxdWUgdmVpbyBkZSB1bSBibG9iLlxuICAqIFxuICAqIEBwYXJhbSBibG9iIENvbnRlw7pkbyBkbyBhcnF1aXZvIGJpbsOhcmlvIGEgc2VyIGJhaXhhZG8uXG4gICogQHBhcmFtIGZpbGVOYW1lIE5vbWUgZG8gYXJxdWl2byBhIHNlciBzYWx2by5cbiAgKi9cbiAgcHVibGljIHN0YXRpYyBkb3dubG9hZEZpbGUoYmxvYjogQmxvYiwgZmlsZU5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGFuY2hvciA9IHdpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG5cbiAgICBhbmNob3IuaHJlZiA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuICAgIGFuY2hvci5kb3dubG9hZCA9IGZpbGVOYW1lO1xuXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhbmNob3IpO1xuXG4gICAgYW5jaG9yLmNsaWNrKCk7XG5cbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGFuY2hvcik7XG4gICAgd2luZG93LlVSTC5yZXZva2VPYmplY3RVUkwoYW5jaG9yLmhyZWYpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBiNjREZWNvZGVVbmljb2RlKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAvLyBHb2luZyBiYWNrd2FyZHM6IGZyb20gYnl0ZXN0cmVhbSwgdG8gcGVyY2VudC1lbmNvZGluZywgdG8gb3JpZ2luYWwgc3RyaW5nLlxuICAgIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQoYXRvYihzdHIpLnNwbGl0KCcnKS5tYXAoYyA9PiB7XG4gICAgICByZXR1cm4gJyUnICsgKCcwMCcgKyBjLmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpKS5zbGljZSgtMik7XG4gICAgfSkuam9pbignJykpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBiNjRFbmNvZGVVbmljb2RlKHN0cjogc3RyaW5nKSB7XG4gICAgLy8gZmlyc3Qgd2UgdXNlIGVuY29kZVVSSUNvbXBvbmVudCB0byBnZXQgcGVyY2VudC1lbmNvZGVkIFVURi04LFxuICAgIC8vIHRoZW4gd2UgY29udmVydCB0aGUgcGVyY2VudCBlbmNvZGluZ3MgaW50byByYXcgYnl0ZXMgd2hpY2hcbiAgICAvLyBjYW4gYmUgZmVkIGludG8gYnRvYS5cbiAgICByZXR1cm4gYnRvYShlbmNvZGVVUklDb21wb25lbnQoc3RyKS5yZXBsYWNlKC8lKFswLTlBLUZdezJ9KS9nLFxuICAgICAgKG1hdGNoLCBwMSkgPT4ge1xuICAgICAgICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZSgoXCIweFwiICsgcDEpIGFzIGFueSk7XG4gICAgICB9KSk7XG4gIH1cblxuICAvL0xhcmd1cmEgYSBwYXJ0aXIgZGUgb25kZSByZW1vbnRhIG8gbmd4X2RhdGF0YWJsZSBwYXJhIG1vYmlsZVxuICBwdWJsaWMgc3RhdGljIGdldElzTW9iaWxlKCkge1xuICAgIGNvbnN0IHdpZHRoID0gd2luZG93LmlubmVyV2lkdGggfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoIHx8IGRvY3VtZW50LmJvZHkuY2xpZW50V2lkdGg7XG4gICAgcmV0dXJuIHdpZHRoIDwgNzY4O1xuICB9XG5cblxuXG4gIC8qKiBNw6l0b2RvIGRlIG9yZGVuYcOnw6NvIGFsZmFudW3DqXJpY28gKi9cbiAgcHVibGljIHN0YXRpYyBhbHBoYW51bWVyaWNTb3J0ID0gKGE6IHN0cmluZyB8IG51bWJlciwgYjogc3RyaW5nIHwgbnVtYmVyKSA9PiB7XG4gICAgY29uc3QgcmVnZXggPSAvKFxcZCt8XFxEKykvZztcbiBcbiAgICBjb25zdCBhUGFydHMgPSBhLnRvU3RyaW5nKCkubWF0Y2gocmVnZXgpIHx8IFtdO1xuICAgIGNvbnN0IGJQYXJ0cyA9IGIudG9TdHJpbmcoKS5tYXRjaChyZWdleCkgfHwgW107XG4gXG4gICAgY29uc3QgbGVuZ3RoID0gTWF0aC5tYXgoYVBhcnRzLmxlbmd0aCwgYlBhcnRzLmxlbmd0aCk7XG4gICAgXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgYVBhcnQgPSBhUGFydHNbaV0gfHwgXCJcIjtcbiAgICAgIGNvbnN0IGJQYXJ0ID0gYlBhcnRzW2ldIHx8IFwiXCI7XG4gXG4gICAgICBjb25zdCBhSXNOdW1iZXIgPSAhaXNOYU4oTnVtYmVyKGFQYXJ0KSk7XG4gICAgICBjb25zdCBiSXNOdW1iZXIgPSAhaXNOYU4oTnVtYmVyKGJQYXJ0KSk7XG4gXG4gICAgICBpZiAoYUlzTnVtYmVyICYmIGJJc051bWJlcikge1xuICAgICAgICBjb25zdCBudW1Db21wYXJlID0gTnVtYmVyKGFQYXJ0KSAtIE51bWJlcihiUGFydCk7XG4gICAgICAgIGlmIChudW1Db21wYXJlICE9PSAwKSByZXR1cm4gbnVtQ29tcGFyZTtcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYgKGFJc051bWJlcikgeyByZXR1cm4gLTE7IH1cbiAgICAgIGVsc2UgaWYgKGJJc051bWJlcikgeyByZXR1cm4gMTsgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIGNvbnN0IHN0ckNvbXBhcmUgPSBhUGFydC5sb2NhbGVDb21wYXJlKGJQYXJ0KTtcbiAgICAgICAgaWYgKHN0ckNvbXBhcmUgIT09IDApIHJldHVybiBzdHJDb21wYXJlO1xuICAgICAgfVxuICAgIH1cbiAgICBcbiAgICByZXR1cm4gMDtcbiAgfTtcblxufVxuIl19
|