valtech-components 4.0.22 → 4.0.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/molecules/check-input/check-input.component.mjs +3 -3
- package/esm2022/lib/components/molecules/select-input/select-input.component.mjs +3 -3
- package/esm2022/lib/components/organisms/create-org-modal/create-org-modal.component.mjs +14 -9
- package/esm2022/lib/components/organisms/edit-org-modal/edit-org-modal.component.mjs +14 -9
- package/esm2022/lib/components/organisms/form/form.component.mjs +3 -3
- package/esm2022/lib/components/organisms/invite-member-modal/invite-member-modal.component.mjs +15 -3
- package/esm2022/lib/components/organisms/member-detail-modal/member-detail-modal.component.mjs +15 -3
- package/esm2022/lib/components/organisms/member-import-modal/member-import-modal.component.mjs +15 -3
- package/esm2022/lib/components/organisms/organization-view/organization-view.component.mjs +19 -1
- package/esm2022/lib/components/organisms/transfer-ownership-modal/transfer-ownership-modal.component.mjs +16 -6
- package/esm2022/lib/services/app-version/app-version.service.mjs +69 -44
- package/esm2022/lib/services/app-version/config.mjs +61 -19
- package/esm2022/lib/services/app-version/index.mjs +2 -2
- package/esm2022/lib/services/app-version/types.mjs +1 -1
- package/esm2022/lib/services/org/types.mjs +1 -1
- package/esm2022/lib/version.mjs +2 -2
- package/fesm2022/valtech-components.mjs +230 -92
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/organisms/article/article.component.d.ts +2 -2
- package/lib/components/organisms/landing-steps/landing-steps.component.d.ts +1 -1
- package/lib/components/organisms/organization-view/organization-view.component.d.ts +1 -0
- package/lib/services/app-version/app-version.service.d.ts +15 -8
- package/lib/services/app-version/config.d.ts +30 -16
- package/lib/services/app-version/index.d.ts +1 -1
- package/lib/services/app-version/types.d.ts +34 -0
- package/lib/services/org/types.d.ts +2 -0
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
|
@@ -437,7 +437,7 @@ export class FormComponent {
|
|
|
437
437
|
<val-textarea-input [props]="getTextareaProp(f)"></val-textarea-input>
|
|
438
438
|
}
|
|
439
439
|
@case (types.CHECK) {
|
|
440
|
-
<val-check-input></val-check-input>
|
|
440
|
+
<val-check-input [props]="getFieldProp(f)"></val-check-input>
|
|
441
441
|
}
|
|
442
442
|
@case (types.COMMENT) {
|
|
443
443
|
<val-comment-input [props]="getFieldProp(f)"></val-comment-input>
|
|
@@ -586,7 +586,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
586
586
|
<val-textarea-input [props]="getTextareaProp(f)"></val-textarea-input>
|
|
587
587
|
}
|
|
588
588
|
@case (types.CHECK) {
|
|
589
|
-
<val-check-input></val-check-input>
|
|
589
|
+
<val-check-input [props]="getFieldProp(f)"></val-check-input>
|
|
590
590
|
}
|
|
591
591
|
@case (types.COMMENT) {
|
|
592
592
|
<val-comment-input [props]="getFieldProp(f)"></val-comment-input>
|
|
@@ -681,4 +681,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
681
681
|
}], onSelectChange: [{
|
|
682
682
|
type: Output
|
|
683
683
|
}] } });
|
|
684
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2Zvcm0vZm9ybS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxTQUFTLEVBR1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBRU4sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBdUMsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBRXhGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUNoRyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFB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QUNaLG1CQUFtQjt3QkFDbkIsZ0JBQWdCO3dCQUNoQixjQUFjO3dCQUNkLGtCQUFrQjt3QkFDbEIsc0JBQXNCO3dCQUN0QixtQkFBbUI7d0JBQ25CLG9CQUFvQjt3QkFDcEIsZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLHFCQUFxQjt3QkFDckIsa0JBQWtCO3dCQUNsQixrQkFBa0I7d0JBQ2xCLHFCQUFxQjt3QkFDckIsbUJBQW1CO3dCQUNuQixzQkFBc0I7d0JBQ3RCLGlCQUFpQjt3QkFDakIscUJBQXFCO3dCQUNyQiwwQkFBMEI7d0JBQzFCLHVCQUF1Qjt3QkFDdkIsbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLDJCQUEyQjt3QkFDM0Isc0JBQXNCO3dCQUN0QiwyQkFBMkI7d0JBQzNCLG1CQUFtQjtxQkFDcEIsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNIVDt5R0FLRCxLQUFLO3NCQURKLEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxNQUFNO2dCQUlQLFNBQVM7c0JBRFIsTUFBTTtnQkFJUCxjQUFjO3NCQURiLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBEb0NoZWNrLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGlzQXRFbmQgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvdXRpbHMvZG9tJztcbmltcG9ydCB7IERpc3BsYXlDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9kaXNwbGF5L2Rpc3BsYXkuY29tcG9uZW50JztcbmltcG9ydCB7IERpdmlkZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9kaXZpZGVyL2RpdmlkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFRpdGxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdGl0bGUvdGl0bGUuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbkdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2J1dHRvbi1ncm91cC9idXR0b24tZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IENoZWNrSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvY2hlY2staW5wdXQvY2hlY2staW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IENvbW1lbnRJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9jb21tZW50LWlucHV0L2NvbW1lbnQtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGVJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9kYXRlLWlucHV0L2RhdGUtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGVQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGVQaWNrZXJNZXRhZGF0YSB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9kYXRlLXBpY2tlci90eXBlcyc7XG5pbXBvcnQgeyBGaWxlSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvZmlsZS1pbnB1dC9maWxlLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIaW50Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2hpbnQvaGludC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTnVtYmVyRnJvbVRvQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL251bWJlci1mcm9tLXRvL251bWJlci1mcm9tLXRvLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQYXNzd29yZElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3Bhc3N3b3JkLWlucHV0L3Bhc3N3b3JkLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQaW5JbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9waW4taW5wdXQvcGluLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSYWRpb0lucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3JhZGlvLWlucHV0L3JhZGlvLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWFyY2hTZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9zZWxlY3QtaW5wdXQvc2VsZWN0LWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWxlY3RTZWFyY2hDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvc2VsZWN0LXNlYXJjaC9zZWxlY3Qtc2VhcmNoLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNdWx0aVNlbGVjdFNlYXJjaENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9tdWx0aS1zZWxlY3Qtc2VhcmNoL211bHRpLXNlbGVjdC1zZWFyY2guY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy90ZXh0LWlucHV0L3RleHQtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRhcmVhSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvdGV4dGFyZWEtaW5wdXQvdGV4dGFyZWEtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRhcmVhSW5wdXRNZXRhZGF0YSB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy90ZXh0YXJlYS1pbnB1dC90eXBlcyc7XG5pbXBvcnQgeyBQaG9uZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3Bob25lLWlucHV0L3Bob25lLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUb2dnbGVJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy90b2dnbGUtaW5wdXQvdG9nZ2xlLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDaGVja2JveFJhZGlvSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvY2hlY2tib3gtcmFkaW8taW5wdXQvY2hlY2tib3gtcmFkaW8taW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFVzZXJuYW1lSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvdXNlcm5hbWUtaW5wdXQvdXNlcm5hbWUtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFVzZXJuYW1lSW5wdXRNZXRhZGF0YSB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy91c2VybmFtZS1pbnB1dC90eXBlcyc7XG5pbXBvcnQgeyBBdHRhY2htZW50VXBsb2FkZXJDb21wb25lbnQgfSBmcm9tICcuLi9hdHRhY2htZW50LXVwbG9hZGVyL2F0dGFjaG1lbnQtdXBsb2FkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEF0dGFjaG1lbnRJdGVtIH0gZnJvbSAnLi4vYXR0YWNobWVudC11cGxvYWRlci90eXBlcyc7XG5pbXBvcnQgeyBCdXR0b25NZXRhZGF0YSwgQ29tcG9uZW50U3RhdGVzLCBGb3JtTWV0YWRhdGEsIEZvcm1TdWJtaXQsIElucHV0TWV0YWRhdGEsIElucHV0VHlwZSB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWZvcm0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgRGlzcGxheUNvbXBvbmVudCxcbiAgICBUaXRsZUNvbXBvbmVudCxcbiAgICBUZXh0SW5wdXRDb21wb25lbnQsXG4gICAgVGV4dGFyZWFJbnB1dENvbXBvbmVudCxcbiAgICBDaGVja0lucHV0Q29tcG9uZW50LFxuICAgIEJ1dHRvbkdyb3VwQ29tcG9uZW50LFxuICAgIERpdmlkZXJDb21wb25lbnQsXG4gICAgSGludENvbXBvbmVudCxcbiAgICBDb21tZW50SW5wdXRDb21wb25lbnQsXG4gICAgRGF0ZUlucHV0Q29tcG9uZW50LFxuICAgIEZpbGVJbnB1dENvbXBvbmVudCxcbiAgICBOdW1iZXJGcm9tVG9Db21wb25lbnQsXG4gICAgUmFkaW9JbnB1dENvbXBvbmVudCxcbiAgICBQYXNzd29yZElucHV0Q29tcG9uZW50LFxuICAgIFBpbklucHV0Q29tcG9uZW50LFxuICAgIFNlbGVjdFNlYXJjaENvbXBvbmVudCxcbiAgICBNdWx0aVNlbGVjdFNlYXJjaENvbXBvbmVudCxcbiAgICBTZWFyY2hTZWxlY3RvckNvbXBvbmVudCxcbiAgICBQaG9uZUlucHV0Q29tcG9uZW50LFxuICAgIFRvZ2dsZUlucHV0Q29tcG9uZW50LFxuICAgIENoZWNrYm94UmFkaW9JbnB1dENvbXBvbmVudCxcbiAgICBVc2VybmFtZUlucHV0Q29tcG9uZW50LFxuICAgIEF0dGFjaG1lbnRVcGxvYWRlckNvbXBvbmVudCxcbiAgICBEYXRlUGlja2VyQ29tcG9uZW50LFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIiBbc3R5bGUuLS12YWwtZm9ybS1maWVsZC1nYXBdPVwicHJvcHMuZmllbGRTcGFjaW5nICE9IG51bGwgPyBwcm9wcy5maWVsZFNwYWNpbmcgKyAncHgnIDogbnVsbFwiPlxuICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gICAgICAgIEBpZiAocHJvcHMubmFtZSkge1xuICAgICAgICAgIDx2YWwtZGlzcGxheVxuICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgY29udGVudDogcHJvcHMubmFtZSxcbiAgICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgICAgc2l6ZTogJ3NtYWxsJyxcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgID48L3ZhbC1kaXNwbGF5PlxuICAgICAgICB9XG4gICAgICAgIEBmb3IgKHMgb2YgcHJvcHMuc2VjdGlvbnM7IHRyYWNrIHMubmFtZSkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uXCI+XG4gICAgICAgICAgICA8dmFsLXRpdGxlIFtwcm9wc109XCJ7IGNvbnRlbnQ6IHMubmFtZSwgc2l6ZTogJ2xhcmdlJywgY29sb3I6ICcnLCBib2xkOiBmYWxzZSB9XCI+PC92YWwtdGl0bGU+XG4gICAgICAgICAgICBAZm9yIChmIG9mIHMuZmllbGRzOyB0cmFjayBmLm5hbWUpIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0XCIgW2F0dHIuZGF0YS10ZXN0aWRdPVwiZi50b2tlblwiPlxuICAgICAgICAgICAgICAgIEBpZiAoZi50eXBlICE9PSB0eXBlcy5QSE9ORSAmJiBmLnR5cGUgIT09IHR5cGVzLkhBTkRMRSAmJiBmLnR5cGUgIT09IHR5cGVzLkFUVEFDSE1FTlQpIHtcbiAgICAgICAgICAgICAgICAgIDxkaXYgW2F0dHIuaWRdPVwibGFiZWxJZChmKVwiPlxuICAgICAgICAgICAgICAgICAgICA8dmFsLXRpdGxlIFtwcm9wc109XCJ7IGNvbnRlbnQ6IGYubGFiZWwsIHNpemU6ICdzbWFsbCcsIGNvbG9yOiAnZGFyaycsIGJvbGQ6IGZhbHNlIH1cIj48L3ZhbC10aXRsZT5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaWYgKGYuZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmllbGQtZGVzY3JpcHRpb25cIj57eyBmLmRlc2NyaXB0aW9uIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAc3dpdGNoIChmLnR5cGUpIHtcbiAgICAgICAgICAgICAgICAgIEBjYXNlICh0eXBlcy5URVhUKSB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtdGV4dC1pbnB1dCBbcHJvcHNdPVwiZ2V0RmllbGRQcm9wKGYpXCI+PC92YWwtdGV4dC1pbnB1dD5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIEBjYXNlICh0eXBlcy5URVhUQVJFQSkge1xuICAgICAgICAgICAgICAgICAgICA8dmFsLXRleHRhcmVhLWlucHV0IFtwcm9wc109XCJnZXRUZXh0YXJlYVByb3AoZilcIj48L3ZhbC10ZXh0YXJlYS1pbnB1dD5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIEBjYXNlICh0eXBlcy5DSEVDSykge1xuICAgICAgICAgICAgICAgICAgICA8dmFsLWNoZWNrLWlucHV0PjwvdmFsLWNoZWNrLWlucHV0PlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGNhc2UgKHR5cGVzLkNPTU1FTlQpIHtcbiAgICAgICAgICAgICAgICAgICAgPHZhbC1jb21tZW50LWlucHV0IFtwcm9wc109XCJnZXRGaWVsZFByb3AoZilcIj48L3ZhbC1jb21tZW50LWlucHV0PlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGNhc2UgKHR5cGVzLkRBVEUpIHtcbiAgICAgICAgICAgICAgICAgICAgPHZhbC1kYXRlLWlucHV0IFtwcm9wc109XCJnZXRGaWVsZFByb3AoZilcIj48L3ZhbC1kYXRlLWlucHV0PlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGNhc2UgKHR5cGVzLkVNQUlMKSB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtdGV4dC1pbnB1dCBbcHJvcHNdPVwiZ2V0VGV4dElucHV0UHJvcChmLCAnZW1haWwnKVwiPjwvdmFsLXRleHQtaW5wdXQ+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBAY2FzZSAodHlwZXMuRklMRSkge1xuICAgICAgICAgICAgICAgICAgICA8dmFsLWZpbGUtaW5wdXQgW3Byb3BzXT1cImdldEZpZWxkUHJvcChmKVwiPjwvdmFsLWZpbGUtaW5wdXQ+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBAY2FzZSAodHlwZXMuSE9VUikge1xuICAgICAgICAgICAgICAgICAgICA8dmFsLXRleHQtaW5wdXQgW3Byb3BzXT1cImdldFRleHRJbnB1dFByb3AoZiwgJ3RpbWUnKVwiPjwvdmFsLXRleHQtaW5wdXQ+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBAY2FzZSAodHlwZXMuTlVNQkVSKSB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtdGV4dC1pbnB1dCBbcHJvcHNdPVwiZ2V0VGV4dElucHV0UHJvcChmLCAnbnVtYmVyJylcIj48L3ZhbC10ZXh0LWlucHV0PlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGNhc2UgKHR5cGVzLk5VTUJFUl9GUk9NX1RPKSB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtbnVtYmVyLWZyb20tdG8gW3Byb3BzXT1cImdldEZpZWxkUHJvcChmKVwiPjwvdmFsLW51bWJlci1mcm9tLXRvPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGNhc2UgKHR5cGVzLlBBU1NXT1JEKSB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtcGFzc3dvcmQtaW5wdXQgW3Byb3BzXT1cImdldEZpZWxkUHJvcChmKVwiPjwvdmFsLXBhc3N3b3JkLWlucHV0PlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGNhc2UgKHR5cGVzLlBJTl9DT0RFKSB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtcGluLWlucHV0IFtwcm9wc109XCJnZXRGaWVsZFByb3AoZilcIj48L3ZhbC1waW4taW5wdXQ+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBAY2FzZSAodHlwZXMuUkFESU8pIHtcbiAgICAgICAgICAgICAgICAgICAgPHZhbC1yYWRpby1pbnB1dCBbcHJvcHNdPVwiZ2V0RmllbGRQcm9wKGYpXCI+PC92YWwtcmFkaW8taW5wdXQ+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBAY2FzZSAodHlwZXMuU0VMRUNUKSB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtc2VsZWN0LWlucHV0IFtwcm9wc109XCJnZXRTZWxlY3RQcm9wKGYpXCI+PC92YWwtc2VsZWN0LWlucHV0PlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGNhc2UgKHR5cGVzLlNFQVJDSF9TRUxFQ1QpIHtcbiAgICAgICAgICAgICAgICAgICAgPHZhbC1zZWxlY3Qtc2VhcmNoIFtwcm9wc109XCJnZXRGaWVsZFByb3AoZilcIj48L3ZhbC1zZWxlY3Qtc2VhcmNoPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGNhc2UgKHR5cGVzLk1VTFRJX1NFTEVDVCkge1xuICAgICAgICAgICAgICAgICAgICA8dmFsLW11bHRpLXNlbGVjdC1zZWFyY2ggW3Byb3BzXT1cImdldEZpZWxkUHJvcChmKVwiPjwvdmFsLW11bHRpLXNlbGVjdC1zZWFyY2g+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBAY2FzZSAodHlwZXMuUEhPTkUpIHtcbiAgICAgICAgICAgICAgICAgICAgPHZhbC1waG9uZS1pbnB1dCBbcHJvcHNdPVwiZ2V0RmllbGRQcm9wKGYpXCI+PC92YWwtcGhvbmUtaW5wdXQ+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBAY2FzZSAodHlwZXMuSEFORExFKSB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtdXNlcm5hbWUtaW5wdXQgW3Byb3BzXT1cImdldFVzZXJuYW1lUHJvcChmKVwiPjwvdmFsLXVzZXJuYW1lLWlucHV0PlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGNhc2UgKHR5cGVzLlRPR0dMRSkge1xuICAgICAgICAgICAgICAgICAgICA8dmFsLXRvZ2dsZS1pbnB1dCBbcHJvcHNdPVwiZ2V0RmllbGRQcm9wKGYpXCI+PC92YWwtdG9nZ2xlLWlucHV0PlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGNhc2UgKHR5cGVzLkNIRUNLQk9YX1JBRElPKSB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtY2hlY2tib3gtcmFkaW8taW5wdXQgW3Byb3BzXT1cImdldEZpZWxkUHJvcChmKVwiPjwvdmFsLWNoZWNrYm94LXJhZGlvLWlucHV0PlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGNhc2UgKHR5cGVzLkFUVEFDSE1FTlQpIHtcbiAgICAgICAgICAgICAgICAgICAgPHZhbC1hdHRhY2htZW50LXVwbG9hZGVyXG4gICAgICAgICAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBmLmxhYmVsLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGludDogZi5oaW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgdXBsb2FkRm46IGYudXBsb2FkRm4sXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZDogZi5zdGF0ZSA9PT0gc3RhdGVzLkRJU0FCTEVEIHx8IGYuc3RhdGUgPT09IHN0YXRlcy5XT1JLSU5HLFxuICAgICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICAgIChhdHRhY2htZW50c0NoYW5nZSk9XCJvbkF0dGFjaG1lbnRDaGFuZ2UoZi5uYW1lLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvdmFsLWF0dGFjaG1lbnQtdXBsb2FkZXI+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBAY2FzZSAodHlwZXMuREFURV9QSUNLRVIpIHtcbiAgICAgICAgICAgICAgICAgICAgPHZhbC1kYXRlLXBpY2tlciBbcHJvcHNdPVwiZ2V0RGF0ZVBpY2tlclByb3AoZilcIj48L3ZhbC1kYXRlLXBpY2tlcj5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPHZhbC1oaW50IFtwcm9wc109XCJnZXRGaWVsZFByb3AoZilcIiBbaWRdPVwiZXJyb3JJZChmKVwiPjwvdmFsLWhpbnQ+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPHZhbC1kaXZpZGVyIFtwcm9wc109XCJ7IGZpbGw6ICdzb2xpZCcsIHNpemU6ICdtZWRpdW0nLCBjb2xvcjogJ21lZGl1bScgfVwiPjwvdmFsLWRpdmlkZXI+XG4gICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgQGlmICghcHJvcHMuY29udHJvbGxlZCkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWJtaXQtYWN0aW9uc1wiIFtjbGFzcy5zdWJtaXQtYWN0aW9ucy0tc3RpY2t5XT1cInByb3BzLnN0aWNreUZvb3RlclwiPlxuICAgICAgICAgICAgPHZhbC1idXR0b24tZ3JvdXBcbiAgICAgICAgICAgICAgW3Byb3BzXT1cInsgYnV0dG9uczogYWN0aW9ucywgcG9zaXRpb246ICdjZW50ZXInLCBjb2x1bW5lZDogZmFsc2UgfVwiXG4gICAgICAgICAgICAgIChvbkNsaWNrKT1cInN1Ym1pdEhhbmRsZXIoJGV2ZW50KVwiXG4gICAgICAgICAgICA+PC92YWwtYnV0dG9uLWdyb3VwPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Zvcm0+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL2Zvcm0uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBEb0NoZWNrIHtcbiAgQElucHV0KClcbiAgcHJvcHM6IEZvcm1NZXRhZGF0YTtcblxuICBAT3V0cHV0KClcbiAgb25TdWJtaXQgPSBuZXcgRXZlbnRFbWl0dGVyPEZvcm1TdWJtaXQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIG9uSW52YWxpZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KClcbiAgb25TZWxlY3RDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHsgZmllbGQ6IHN0cmluZzsgdmFsdWU6IGFueSB9PigpO1xuXG4gIGZvcm06IEZvcm1Hcm91cDtcbiAgdHlwZXMgPSBJbnB1dFR5cGU7XG4gIHN0YXRlcyA9IENvbXBvbmVudFN0YXRlcztcblxuICAvKipcbiAgICogVmFsb3IgYWN0dWFsIGRlbCBmb3JtIChgZm9ybS5nZXRSYXdWYWx1ZSgpYCksIGFjdHVhbGl6YWRvIGVuIGNhZGFcbiAgICogYHZhbHVlQ2hhbmdlc2AuIFBlbnNhZG8gcGFyYSBlbCBtb2RvIGBjb250cm9sbGVkYDogZWwgaG9zdCBsbyBsZWUgdsOtYVxuICAgKiBgQFZpZXdDaGlsZChGb3JtQ29tcG9uZW50KWAgc2luIHRvY2FyIGVsIEZvcm1Hcm91cCBkaXJlY3RvLiBFbiBtb2RvIG5vcm1hbFxuICAgKiB0YW1iacOpbiBlc3TDoSBkaXNwb25pYmxlLlxuICAgKi9cbiAgcmVhZG9ubHkgdmFsdWUgPSBzaWduYWw8UmVjb3JkPHN0cmluZywgYW55Pj4oe30pO1xuXG4gIC8qKlxuICAgKiBFc3RhZG8gZGUgdmFsaWRleiBkZWwgZm9ybSwgYWN0dWFsaXphZG8gZW4gY2FkYSBgc3RhdHVzQ2hhbmdlc2AuIFBhcmEgcXVlXG4gICAqIGVsIGhvc3QgKHdpemFyZCkgaGFiaWxpdGUvZGVzaGFiaWxpdGUgc3UgYm90w7NuIFwiU2lndWllbnRlXCIuXG4gICAqL1xuICByZWFkb25seSB2YWxpZCA9IHNpZ25hbChmYWxzZSk7XG5cbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gIHByaXZhdGUgYWN0aW9uc0NhY2hlOiBCdXR0b25NZXRhZGF0YVtdID0gW107XG5cbiAgLy8gTWVtbyBkZSBnZXRGaWVsZFByb3AvZ2V0VXNlcm5hbWVQcm9wIHBvciByZWZlcmVuY2lhIGRlIGZpZWxkIOKAlCBldml0YVxuICAvLyBjcmVhciB1biBudWV2byBvYmpldG8gcHJvcHMgcG9yIGtleXN0cm9rZSAoY2FkYSBDRCBjeWNsZSBpbnZvY2Fyw61hIGVsXG4gIC8vIHRlbXBsYXRlIGJpbmRpbmcsIG11bHRpcGxpY2FuZG8gcmUtcmVuZGVycyBlbiBjYXNjYWRhIHBvciAjIGZpZWxkcykuXG4gIC8vIFdlYWtNYXA6IHNpIGxhIHJlZmVyZW5jaWEgZGVsIGZpZWxkIGNhbWJpYSwgZWwgY2FjaGUgc2UgbGliZXJhLlxuICBwcml2YXRlIGZpZWxkUHJvcE1lbW8gPSBuZXcgV2Vha01hcDxJbnB1dE1ldGFkYXRhLCBJbnB1dE1ldGFkYXRhPigpO1xuICBwcml2YXRlIHVzZXJuYW1lUHJvcE1lbW8gPSBuZXcgV2Vha01hcDxJbnB1dE1ldGFkYXRhLCBVc2VybmFtZUlucHV0TWV0YWRhdGE+KCk7XG4gIHByaXZhdGUgdGV4dGFyZWFQcm9wTWVtbyA9IG5ldyBXZWFrTWFwPElucHV0TWV0YWRhdGEsIFRleHRhcmVhSW5wdXRNZXRhZGF0YT4oKTtcbiAgcHJpdmF0ZSBzZWxlY3RQcm9wTWVtbyA9IG5ldyBXZWFrTWFwPElucHV0TWV0YWRhdGEsIElucHV0TWV0YWRhdGE+KCk7XG4gIC8vIE1lbW8gZGUgcHJvcHMgY29uIHVuIGlucHV0VHlwZSBIVE1MIGlueWVjdGFkbyAoRU1BSUwvTlVNQkVSL0hPVVIgY29sYXBzYWRvc1xuICAvLyBlbiB2YWwtdGV4dC1pbnB1dCkuIENsYXZlIHBvciBmaWVsZCBwYXJhIGNvbnNlcnZhciBpZGVudGlkYWQgZGUgcmVmZXJlbmNpYS5cbiAgcHJpdmF0ZSB0ZXh0SW5wdXRQcm9wTWVtbyA9IG5ldyBXZWFrTWFwPElucHV0TWV0YWRhdGEsIElucHV0TWV0YWRhdGE+KCk7XG4gIHByaXZhdGUgZGF0ZVBpY2tlclByb3BNZW1vID0gbmV3IFdlYWtNYXA8SW5wdXRNZXRhZGF0YSwgRGF0ZVBpY2tlck1ldGFkYXRhPigpO1xuXG4gIC8vIElkcyBlc3RhYmxlcyBwb3IgZmllbGQgcGFyYSBlbCB3aXJpbmcgZGUgYWNjZXNpYmlsaWRhZCBsYWJlbOKGlGlucHV04oaUZXJyb3IuXG4gIC8vIEVzdGFibGVzIGVudHJlIENEIGN5Y2xlcyAobWVtb2l6YWRvcyBwb3IgcmVmZXJlbmNpYSBkZSBmaWVsZCkg4oaSIGFyaWEtKiBubyBwYXJwYWRlYS5cbiAgcHJpdmF0ZSBmaWVsZElkTWVtbyA9IG5ldyBXZWFrTWFwPElucHV0TWV0YWRhdGEsIHsgbGFiZWxJZDogc3RyaW5nOyBlcnJvcklkOiBzdHJpbmcgfT4oKTtcbiAgcHJpdmF0ZSBmaWVsZFVpZCA9IDA7XG5cbiAgLy8gRXN0YWRvIHByZXZpbyBwYXJhIGRldGVjdGFyIGNhbWJpb3MgZW4gbmdEb0NoZWNrXG4gIHByaXZhdGUgcHJldmlvdXNTdGF0ZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIHByZXZpb3VzVXBsb2FkaW5nQ291bnQgPSAwO1xuXG4gIC8vIENhbXBvcyBBVFRBQ0hNRU5UIGNvbiB1cGxvYWRzIGVuIGN1cnNvIOKAlCBibG9xdWVhIHN1Ym1pdCArIERFU0hBQklMSVRBIGVsXG4gIC8vIGJvdMOzbiAobm8gbG9hZGluZzogZWwgc3Bpbm5lciBzZSByZXNlcnZhIHBhcmEgZWwgc3VibWl0IHJlYWwgZGVsIGZvcm0pLlxuICBwcml2YXRlIHVwbG9hZGluZ0ZpZWxkcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZlxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgY29uc3QgZm9ybUNvbnRyb2xzID0ge307XG4gICAgdGhpcy5wcm9wcy5zZWN0aW9ucy5mb3JFYWNoKHNlY3Rpb24gPT4ge1xuICAgICAgc2VjdGlvbi5maWVsZHMuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICAgIC8vIEhvbnJhIGBmaWVsZC52YWx1ZWAgYWwgY29uc3RydWlyIGVsIEZvcm1Hcm91cCBwYXJhIHF1ZSBjb250cm9sZXMgdGlwb1xuICAgICAgICAvLyBIQU5ETEUgKHF1ZSBjb25zdW1lbiBlbCBjb250cm9sIGRpcmVjdG8gdmlhIFtmb3JtQ29udHJvbF0pIHJlY2liYW4gZWxcbiAgICAgICAgLy8gdmFsb3IgaW5pY2lhbCBzaW4gcXVlIGVsIGNhbGxlciB0ZW5nYSBxdWUgcGF0Y2hWYWx1ZSBwb3N0LW1vdW50LlxuICAgICAgICAvLyBFbCBoZWxwZXIgYXBwbHlEZWZhdWx0VmFsdWVUb0NvbnRyb2wgKHZhbC10ZXh0LWlucHV0IGV0Yy4pIHNpZ3VlXG4gICAgICAgIC8vIGZ1bmNpb25hbmRvIOKAlCBlc2NyaWJlIHNvYnJlIHVuIGNvbnRyb2wgeWEgaW5pY2lhbGl6YWRvLCBpZGVtcG90ZW50ZS5cbiAgICAgICAgY29uc3QgaW5pdGlhbFZhbHVlID0gZmllbGQudmFsdWUgPz8gbnVsbDtcbiAgICAgICAgaWYgKGZpZWxkLnR5cGUgPT09IHRoaXMudHlwZXMuTlVNQkVSX0ZST01fVE8pIHtcbiAgICAgICAgICAvLyBDcmVhciBkb3MgY29udHJvbGVzIHBhcmEgY2FtcG9zIE5VTUJFUl9GUk9NX1RPXG4gICAgICAgICAgZm9ybUNvbnRyb2xzW2Ake2ZpZWxkLm5hbWV9X2Zyb21gXSA9IFtpbml0aWFsVmFsdWUsIGZpZWxkLnZhbGlkYXRvcnMgfHwgW11dO1xuICAgICAgICAgIGZvcm1Db250cm9sc1tgJHtmaWVsZC5uYW1lfV90b2BdID0gW2luaXRpYWxWYWx1ZSwgZmllbGQudmFsaWRhdG9ycyB8fCBbXV07XG4gICAgICAgIH0gZWxzZSBpZiAoZmllbGQudHlwZSA9PT0gdGhpcy50eXBlcy5BVFRBQ0hNRU5UKSB7XG4gICAgICAgICAgZm9ybUNvbnRyb2xzW2ZpZWxkLm5hbWVdID0gW1tdLCBmaWVsZC52YWxpZGF0b3JzIHx8IFtdXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmb3JtQ29udHJvbHNbZmllbGQubmFtZV0gPSBbaW5pdGlhbFZhbHVlLCBmaWVsZC52YWxpZGF0b3JzIHx8IFtdXTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cChmb3JtQ29udHJvbHMpO1xuICAgIHRoaXMucHJvcHMuc2VjdGlvbnMuZm9yRWFjaChzZWN0aW9uID0+IHtcbiAgICAgIHNlY3Rpb24uZmllbGRzXG4gICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgeCA9PlxuICAgICAgICAgICAgeC50eXBlID09PSB0aGlzLnR5cGVzLlNFTEVDVCB8fFxuICAgICAgICAgICAgeC50eXBlID09PSB0aGlzLnR5cGVzLlRFWFQgfHxcbiAgICAgICAgICAgIHgudHlwZSA9PT0gdGhpcy50eXBlcy5TRUFSQ0hfU0VMRUNUIHx8XG4gICAgICAgICAgICB4LnR5cGUgPT09IHRoaXMudHlwZXMuTVVMVElfU0VMRUNUXG4gICAgICAgIClcbiAgICAgICAgLmZvckVhY2goZmllbGQgPT4ge1xuICAgICAgICAgIHRoaXMudHJhY2tTZWxlY3RDaGFuZ2VzKGZpZWxkLm5hbWUpO1xuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgIC8vIEVzdGFkbyByZWFjdGl2byBww7pibGljbyAodmFsdWUvdmFsaWQpIOKAlCBhY3R1YWxpemFkbyBwb3Igc3VzY3JpcGNpw7NuIFJ4SlMsXG4gICAgLy8gTk8gZGVudHJvIGRlIHVuIGVmZmVjdDogc2V0ZWFyIHNpZ25hbHMgYWPDoSBlcyBzZWd1cm8gKG5vIGRpc3BhcmEgTkcwNjAwKS5cbiAgICB0aGlzLnZhbHVlLnNldCh0aGlzLmZvcm0uZ2V0UmF3VmFsdWUoKSk7XG4gICAgdGhpcy52YWxpZC5zZXQodGhpcy5mb3JtLnZhbGlkKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLmZvcm0udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB0aGlzLnZhbHVlLnNldCh0aGlzLmZvcm0uZ2V0UmF3VmFsdWUoKSkpKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLmZvcm0uc3RhdHVzQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4gdGhpcy52YWxpZC5zZXQodGhpcy5mb3JtLnZhbGlkKSkpO1xuXG4gICAgdGhpcy5zeW5jRmllbGRDb250cm9sU3RhdGVzKCk7XG4gICAgdGhpcy51cGRhdGVBY3Rpb25zQ2FjaGUoKTtcbiAgICB0aGlzLnByZXZpb3VzU3RhdGUgPSB0aGlzLnByb3BzLnN0YXRlO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIC8vIEN1YW5kbyBwcm9wcyBjYW1iaWEsIHJlY29uc3RydWlyIGVsIGNhY2hlXG4gICAgaWYgKGNoYW5nZXNbJ3Byb3BzJ10gJiYgdGhpcy5mb3JtKSB7XG4gICAgICB0aGlzLnN5bmNGaWVsZENvbnRyb2xTdGF0ZXMoKTtcbiAgICAgIHRoaXMudXBkYXRlQWN0aW9uc0NhY2hlKCk7XG4gICAgICB0aGlzLnByZXZpb3VzU3RhdGUgPSB0aGlzLnByb3BzLnN0YXRlO1xuICAgIH1cbiAgfVxuXG4gIG5nRG9DaGVjaygpIHtcbiAgICAvLyBEZXRlY3RhciBjYW1iaW9zIGVuIGVsIGVzdGFkbyBkZWwgZm9ybXVsYXJpbyAobXV0YWNpw7NuIHNpbiBjYW1iaWFyIHJlZmVyZW5jaWEpXG4gICAgY29uc3QgdXBsb2FkaW5nQ291bnQgPSB0aGlzLnVwbG9hZGluZ0ZpZWxkcy5zaXplO1xuICAgIGlmIChcbiAgICAgIHRoaXMuZm9ybSAmJlxuICAgICAgdGhpcy5wcm9wcyAmJlxuICAgICAgKHRoaXMucHJvcHMuc3RhdGUgIT09IHRoaXMucHJldmlvdXNTdGF0ZSB8fCB1cGxvYWRpbmdDb3VudCAhPT0gdGhpcy5wcmV2aW91c1VwbG9hZGluZ0NvdW50KVxuICAgICkge1xuICAgICAgdGhpcy5wcmV2aW91c1N0YXRlID0gdGhpcy5wcm9wcy5zdGF0ZTtcbiAgICAgIHRoaXMucHJldmlvdXNVcGxvYWRpbmdDb3VudCA9IHVwbG9hZGluZ0NvdW50O1xuICAgICAgdGhpcy51cGRhdGVBY3Rpb25zQ2FjaGUoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU3luY2hyb25pemVzIGZvcm0gY29udHJvbCBkaXNhYmxlZC9lbmFibGVkIHN0YXRlIHdpdGggZmllbGQgbWV0YWRhdGEuXG4gICAqL1xuICBwcml2YXRlIHN5bmNGaWVsZENvbnRyb2xTdGF0ZXMoKSB7XG4gICAgdGhpcy5wcm9wcy5zZWN0aW9ucy5mb3JFYWNoKHNlY3Rpb24gPT4ge1xuICAgICAgc2VjdGlvbi5maWVsZHMuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICAgIGlmIChmaWVsZC50eXBlID09PSB0aGlzLnR5cGVzLkFUVEFDSE1FTlQpIHJldHVybjtcbiAgICAgICAgaWYgKGZpZWxkLnR5cGUgPT09IHRoaXMudHlwZXMuTlVNQkVSX0ZST01fVE8pIHtcbiAgICAgICAgICBjb25zdCBmcm9tQ29udHJvbCA9IHRoaXMuZ2V0Q29udHJvbChgJHtmaWVsZC5uYW1lfV9mcm9tYCk7XG4gICAgICAgICAgY29uc3QgdG9Db250cm9sID0gdGhpcy5nZXRDb250cm9sKGAke2ZpZWxkLm5hbWV9X3RvYCk7XG5cbiAgICAgICAgICBpZiAoZmllbGQuc3RhdGUgPT09IENvbXBvbmVudFN0YXRlcy5ESVNBQkxFRCkge1xuICAgICAgICAgICAgZnJvbUNvbnRyb2wuZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgICAgICB0b0NvbnRyb2wuZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGZyb21Db250cm9sLmVuYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgICAgICB0b0NvbnRyb2wuZW5hYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuZ2V0Q29udHJvbChmaWVsZC5uYW1lKTtcbiAgICAgICAgICBpZiAoZmllbGQuc3RhdGUgPT09IENvbXBvbmVudFN0YXRlcy5ESVNBQkxFRCkge1xuICAgICAgICAgICAgY29udHJvbC5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29udHJvbC5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQWN0dWFsaXphIGVsIGNhY2hlIGRlIGFjdGlvbnMgYmFzYWRvIGVuIGVsIGVzdGFkbyBhY3R1YWwgZGVsIGZvcm0uXG4gICAqL1xuICBwcml2YXRlIHVwZGF0ZUFjdGlvbnNDYWNoZSgpIHtcbiAgICAvLyBFbiBtb2RvIGNvbnRyb2xsZWQgKG8gc2luIHN1Ym1pdCkgbm8gaGF5IGJvdMOzbiBwcm9waW8gcXVlIGNhY2hlYXIuXG4gICAgaWYgKCF0aGlzLnByb3BzLmFjdGlvbnMpIHtcbiAgICAgIHRoaXMuYWN0aW9uc0NhY2hlID0gW107XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGxldCBhY3Rpb25TdGF0ZSA9IHRoaXMucHJvcHMuYWN0aW9ucy5zdGF0ZTtcblxuICAgIGlmICh0aGlzLnByb3BzLnN0YXRlID09PSBDb21wb25lbnRTdGF0ZXMuV09SS0lORykge1xuICAgICAgLy8gU3VibWl0IHJlYWwgZGVsIGZvcm0gZW4gY3Vyc28g4oaSIGJvdMOzbiBlbiBsb2FkaW5nIChzcGlubmVyKS5cbiAgICAgIGFjdGlvblN0YXRlID0gQ29tcG9uZW50U3RhdGVzLldPUktJTkc7XG4gICAgfSBlbHNlIGlmICh0aGlzLnByb3BzLnN0YXRlID09PSBDb21wb25lbnRTdGF0ZXMuRElTQUJMRUQgfHwgdGhpcy51cGxvYWRpbmdGaWVsZHMuc2l6ZSA+IDApIHtcbiAgICAgIC8vIFN1YmlkYSBkZSBhZGp1bnRvIGVuIGN1cnNvIOKGkiBERVNIQUJJTElUQVIgZWwgc3VibWl0LCBOTyBsb2FkaW5nOiB0b2RhdsOtYVxuICAgICAgLy8gbm8gc2UgZXN0w6EgZW52aWFuZG8gZWwgZm9ybSwgc29sbyBzdWJpZW5kbyB1biBhcmNoaXZvLiBVbiBzcGlubmVyIGFjw6FcbiAgICAgIC8vIGNvbmZ1bmRlIChwYXJlY2UgcXVlIGVsIGZvcm0gc2UgZXN0w6EgZW52aWFuZG8pLlxuICAgICAgYWN0aW9uU3RhdGUgPSBDb21wb25lbnRTdGF0ZXMuRElTQUJMRUQ7XG4gICAgfSBlbHNlIGlmICh0aGlzLnByb3BzLnN0YXRlID09PSBDb21wb25lbnRTdGF0ZXMuRU5BQkxFRCB8fCB0aGlzLmZvcm0/LnZhbGlkKSB7XG4gICAgICBhY3Rpb25TdGF0ZSA9IENvbXBvbmVudFN0YXRlcy5FTkFCTEVEO1xuICAgIH1cblxuICAgIHRoaXMuYWN0aW9uc0NhY2hlID0gW3sgLi4udGhpcy5wcm9wcy5hY3Rpb25zLCBzdGF0ZTogYWN0aW9uU3RhdGUgfV07XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICAvLyBDbGVhbnVwIHN1YnNjcmlwdGlvbnMgdG8gYXZvaWQgbWVtb3J5IGxlYWtzXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goc3ViID0+IHN1Yi51bnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIHRyYWNrU2VsZWN0Q2hhbmdlcyhmaWVsZE5hbWU6IHN0cmluZykge1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmdldENvbnRyb2woZmllbGROYW1lKTtcbiAgICBjb25zdCBzdWJzY3JpcHRpb24gPSBjb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgdGhpcy5vblNlbGVjdENoYW5nZS5lbWl0KHsgZmllbGQ6IGZpZWxkTmFtZSwgdmFsdWUgfSk7XG4gICAgfSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goc3Vic2NyaXB0aW9uKTtcbiAgfVxuXG4gIGFzeW5jIHN1Ym1pdEhhbmRsZXIodG9rZW4/OiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy51cGxvYWRpbmdGaWVsZHMuc2l6ZSA+IDApIHJldHVybjtcbiAgICBpZiAoIXRoaXMuZm9ybS52YWxpZCkge1xuICAgICAgdGhpcy5mb3JtLm1hcmtBbGxBc1RvdWNoZWQoKTtcbiAgICAgIHRoaXMub25JbnZhbGlkLmVtaXQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5vblN1Ym1pdC5lbWl0KHsgZmllbGRzOiB0aGlzLmZvcm0uZ2V0UmF3VmFsdWUoKSwgdG9rZW4gfSk7XG4gIH1cblxuICBvbkF0dGFjaG1lbnRDaGFuZ2UoZmllbGROYW1lOiBzdHJpbmcsIGl0ZW1zOiBBdHRhY2htZW50SXRlbVtdKTogdm9pZCB7XG4gICAgY29uc3QgcmVhZHlVcmxzID0gaXRlbXMuZmlsdGVyKGEgPT4gYS5zdGF0dXMgPT09ICdyZWFkeScgJiYgYS51cmwpLm1hcChhID0+IGEudXJsISk7XG4gICAgdGhpcy5mb3JtLmdldChmaWVsZE5hbWUpPy5zZXRWYWx1ZShyZWFkeVVybHMsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICBpZiAoaXRlbXMuc29tZShhID0+IGEuc3RhdHVzID09PSAndXBsb2FkaW5nJykpIHtcbiAgICAgIHRoaXMudXBsb2FkaW5nRmllbGRzLmFkZChmaWVsZE5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnVwbG9hZGluZ0ZpZWxkcy5kZWxldGUoZmllbGROYW1lKTtcbiAgICB9XG4gIH1cblxuICBnZXRDb250cm9sKGZpZWxkOiBzdHJpbmcpOiBGb3JtQ29udHJvbCB7XG4gICAgcmV0dXJuIHRoaXMuRm9ybS5nZXQoZmllbGQpIGFzIEZvcm1Db250cm9sO1xuICB9XG5cbiAgLyoqXG4gICAqIElkcyBlc3RhYmxlcyAobGFiZWwgKyBlcnJvcikgcGFyYSB1biBmaWVsZC4gTWVtb2l6YWRvcyBwb3IgcmVmZXJlbmNpYSBwYXJhXG4gICAqIHF1ZSBlbCB3aXJpbmcgYGFyaWEtbGFiZWxsZWRieWAgLyBgYXJpYS1kZXNjcmliZWRieWAgbm8gY2FtYmllIGVudHJlIGNpY2xvc1xuICAgKiBkZSBjaGFuZ2UgZGV0ZWN0aW9uLlxuICAgKi9cbiAgcHJpdmF0ZSBmaWVsZElkcyhmaWVsZDogSW5wdXRNZXRhZGF0YSk6IHsgbGFiZWxJZDogc3RyaW5nOyBlcnJvcklkOiBzdHJpbmcgfSB7XG4gICAgbGV0IGlkcyA9IHRoaXMuZmllbGRJZE1lbW8uZ2V0KGZpZWxkKTtcbiAgICBpZiAoIWlkcykge1xuICAgICAgY29uc3QgYmFzZSA9IGB2YWwtZm9ybS1maWVsZC0ke3RoaXMuZmllbGRVaWQrK31gO1xuICAgICAgaWRzID0geyBsYWJlbElkOiBgJHtiYXNlfS1sYWJlbGAsIGVycm9ySWQ6IGAke2Jhc2V9LWVycm9yYCB9O1xuICAgICAgdGhpcy5maWVsZElkTWVtby5zZXQoZmllbGQsIGlkcyk7XG4gICAgfVxuICAgIHJldHVybiBpZHM7XG4gIH1cblxuICAvKiogSWQgZGVsIGxhYmVsIHZpc2libGUgZGVsIGNhbXBvIChjb25zdW1pZG8gcG9yIGVsIHRlbXBsYXRlICsgZWwgaW5wdXQpLiAqL1xuICBsYWJlbElkKGZpZWxkOiBJbnB1dE1ldGFkYXRhKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZElkcyhmaWVsZCkubGFiZWxJZDtcbiAgfVxuXG4gIC8qKiBJZCBkZWwgY29udGVuZWRvciBkZSBlcnJvciAoYHZhbC1oaW50YCkgZGVsIGNhbXBvLiAqL1xuICBlcnJvcklkKGZpZWxkOiBJbnB1dE1ldGFkYXRhKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZElkcyhmaWVsZCkuZXJyb3JJZDtcbiAgfVxuXG4gIGdldEZpZWxkUHJvcChmaWVsZDogSW5wdXRNZXRhZGF0YSk6IElucHV0TWV0YWRhdGEge1xuICAgIGNvbnN0IGNhY2hlZCA9IHRoaXMuZmllbGRQcm9wTWVtby5nZXQoZmllbGQpO1xuICAgIGlmIChjYWNoZWQpIHJldHVybiBjYWNoZWQ7XG5cbiAgICBpZiAoIWZpZWxkLnRva2VuKSB7XG4gICAgICBmaWVsZC50b2tlbiA9IGBpbnB1dC0ke2ZpZWxkLnR5cGV9LSR7ZmllbGQubmFtZX1gO1xuICAgIH1cblxuICAgIGNvbnN0IGlkcyA9IHRoaXMuZmllbGRJZHMoZmllbGQpO1xuXG4gICAgbGV0IHJlc3VsdDogSW5wdXRNZXRhZGF0YTtcbiAgICBpZiAoZmllbGQudHlwZSA9PT0gdGhpcy50eXBlcy5OVU1CRVJfRlJPTV9UTykge1xuICAgICAgY29uc3QgZnJvbUNvbnRyb2wgPSB0aGlzLmdldENvbnRyb2woYCR7ZmllbGQubmFtZX1fZnJvbWApO1xuICAgICAgY29uc3QgdG9Db250cm9sID0gdGhpcy5nZXRDb250cm9sKGAke2ZpZWxkLm5hbWV9X3RvYCk7XG4gICAgICByZXN1bHQgPSB7IC4uLmZpZWxkLCBmcm9tQ29udHJvbCwgdG9Db250cm9sLCBjb250cm9sOiB1bmRlZmluZWQsIGxhYmVsSWQ6IGlkcy5sYWJlbElkLCBlcnJvcklkOiBpZHMuZXJyb3JJZCB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBjb250cm9sID0gdGhpcy5nZXRDb250cm9sKGZpZWxkLm5hbWUpO1xuICAgICAgcmVzdWx0ID0geyAuLi5maWVsZCwgY29udHJvbCwgbGFiZWxJZDogaWRzLmxhYmVsSWQsIGVycm9ySWQ6IGlkcy5lcnJvcklkIH07XG4gICAgfVxuICAgIHRoaXMuZmllbGRQcm9wTWVtby5zZXQoZmllbGQsIHJlc3VsdCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGFwdGVyIHBhcmEgbG9zIHRpcG9zIGNvbGFwc2Fkb3MgZW4gYHZhbC10ZXh0LWlucHV0YCAoRU1BSUwvTlVNQkVSL0hPVVIpLlxuICAgKiBSZXVzYSBgZ2V0RmllbGRQcm9wYCAoY29uIHN1IGNvbnRyb2wgKyB3aXJpbmcgZGUgaWRzKSBlIGlueWVjdGEgZWwgYGlucHV0VHlwZWBcbiAgICogSFRNTCBuYXRpdm8uIE1lbW9pemFkbyBwb3IgcmVmZXJlbmNpYSBkZSBmaWVsZCBwYXJhIG5vIHJvbXBlciBsYSBpZGVudGlkYWQuXG4gICAqL1xuICBnZXRUZXh0SW5wdXRQcm9wKGZpZWxkOiBJbnB1dE1ldGFkYXRhLCBpbnB1dFR5cGU6IE5vbk51bGxhYmxlPElucHV0TWV0YWRhdGFbJ2lucHV0VHlwZSddPik6IElucHV0TWV0YWRhdGEge1xuICAgIGNvbnN0IGNhY2hlZCA9IHRoaXMudGV4dElucHV0UHJvcE1lbW8uZ2V0KGZpZWxkKTtcbiAgICBpZiAoY2FjaGVkKSByZXR1cm4gY2FjaGVkO1xuXG4gICAgY29uc3QgYmFzZSA9IHRoaXMuZ2V0RmllbGRQcm9wKGZpZWxkKTtcbiAgICBjb25zdCByZXN1bHQ6IElucHV0TWV0YWRhdGEgPSB7IC4uLmJhc2UsIGlucHV0VHlwZSB9O1xuICAgIHRoaXMudGV4dElucHV0UHJvcE1lbW8uc2V0KGZpZWxkLCByZXN1bHQpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogQWRhcHRlciBwYXJhIFNFTEVDVCDigJQgaWd1YWwgcXVlIGBnZXRGaWVsZFByb3BgIHBlcm8gbGltcGlhIGBsYWJlbGAuXG4gICAqIHZhbC1mb3JtIHlhIHJlbmRlcml6YSBlbCB0w610dWxvIGRlbCBjYW1wbyBjb24gYDx2YWwtdGl0bGU+YCBhcnJpYmEgZGVsIGlucHV0O1xuICAgKiBzaSBhZGVtw6FzIHBhc8OhcmFtb3MgYGxhYmVsYCBhbCBgPGlvbi1zZWxlY3Q+YCwgZXN0ZSBsbyBwaW50YSBERU5UUk8gZGVsIHBpbGxcbiAgICog4oaSIHJlZHVuZGFuY2lhIHZpc3VhbCAoXCJUaXBvXCIgZG9zIHZlY2VzKS4gUmV1c2EgZWwgbWlzbW8gbWVtbyAoY29uIGxhIGVudHJhZGFcbiAgICogeWEgbGFiZWwtc3RyaXBwZWQpIHBhcmEgbm8gcm9tcGVyIGxhIGlkZW50aWRhZCBkZSByZWZlcmVuY2lhLlxuICAgKi9cbiAgZ2V0U2VsZWN0UHJvcChmaWVsZDogSW5wdXRNZXRhZGF0YSk6IElucHV0TWV0YWRhdGEge1xuICAgIGNvbnN0IGNhY2hlZCA9IHRoaXMuc2VsZWN0UHJvcE1lbW8uZ2V0KGZpZWxkKTtcbiAgICBpZiAoY2FjaGVkKSByZXR1cm4gY2FjaGVkO1xuXG4gICAgY29uc3QgYmFzZSA9IHRoaXMuZ2V0RmllbGRQcm9wKGZpZWxkKTtcbiAgICBjb25zdCByZXN1bHQ6IElucHV0TWV0YWRhdGEgPSB7IC4uLmJhc2UsIGxhYmVsOiAnJyB9O1xuICAgIHRoaXMuc2VsZWN0UHJvcE1lbW8uc2V0KGZpZWxkLCByZXN1bHQpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogQWRhcHRlciDigJQgY29udmllcnRlIHVuIGBJbnB1dE1ldGFkYXRhYCAoY29uIHR5cGU9SEFORExFKSBhIGBVc2VybmFtZUlucHV0TWV0YWRhdGFgLlxuICAgKiBFbCBjaGVjayBkZSBkaXNwb25pYmlsaWRhZCBzZSByZXN1ZWx2ZSBkZW50cm8gZGVsIGNvbXBvbmVudCAoQXV0aFNlcnZpY2UgaW55ZWN0YWRvKTtcbiAgICogZWwgY2FsbGVyIHB1ZWRlIHNvYnJlc2NyaWJpcmxvIHBhc2FuZG8gYGZpZWxkLmVycm9yc2AgbyB1biBgVXNlcm5hbWVJbnB1dE1ldGFkYXRhYFxuICAgKiBjdXN0b20gdXNhbmRvIHR5cGU9VEVYVCBzaSBuZWNlc2l0YSBvdHJhIGZ1ZW50ZSBkZSB0cnV0aC5cbiAgICovXG4gIGdldFVzZXJuYW1lUHJvcChmaWVsZDogSW5wdXRNZXRhZGF0YSk6IFVzZXJuYW1lSW5wdXRNZXRhZGF0YSB7XG4gICAgY29uc3QgY2FjaGVkID0gdGhpcy51c2VybmFtZVByb3BNZW1vLmdldChmaWVsZCk7XG4gICAgaWYgKGNhY2hlZCkgcmV0dXJuIGNhY2hlZDtcblxuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmdldENvbnRyb2woZmllbGQubmFtZSk7XG4gICAgY29uc3QgcmVzdWx0OiBVc2VybmFtZUlucHV0TWV0YWRhdGEgPSB7XG4gICAgICBjb250cm9sOiBjb250cm9sIGFzIEZvcm1Db250cm9sPHN0cmluZz4sXG4gICAgICBsYWJlbDogZmllbGQubGFiZWwsXG4gICAgICBoaW50OiBmaWVsZC5oaW50LFxuICAgICAgcGxhY2Vob2xkZXI6IGZpZWxkLnBsYWNlaG9sZGVyLFxuICAgICAgbWluTGVuZ3RoOiBmaWVsZC5yYW5nZT8ubWluLFxuICAgICAgbWF4TGVuZ3RoOiBmaWVsZC5yYW5nZT8ubWF4LFxuICAgICAgZXJyb3JzOiBmaWVsZC5lcnJvcnMsXG4gICAgICBzdGF0ZTogZmllbGQuc3RhdGUsXG4gICAgfTtcbiAgICB0aGlzLnVzZXJuYW1lUHJvcE1lbW8uc2V0KGZpZWxkLCByZXN1bHQpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogQWRhcHRlciDigJQgY29udmllcnRlIHVuIGBJbnB1dE1ldGFkYXRhYCAoY29uIHR5cGU9REFURV9QSUNLRVIpIGEgYERhdGVQaWNrZXJNZXRhZGF0YWAuXG4gICAqIGxhYmVsL2hpbnQgc2Ugb21pdGVuIOKAlCB2YWwtZm9ybSBsb3MgcmVuZGVyaXphIHbDrWEgLmZpZWxkLW5hbWUvLmZpZWxkLWRlc2NyaXB0aW9uLlxuICAgKi9cbiAgZ2V0RGF0ZVBpY2tlclByb3AoZmllbGQ6IElucHV0TWV0YWRhdGEpOiBEYXRlUGlja2VyTWV0YWRhdGEge1xuICAgIGNvbnN0IGNhY2hlZCA9IHRoaXMuZGF0ZVBpY2tlclByb3BNZW1vLmdldChmaWVsZCk7XG4gICAgaWYgKGNhY2hlZCkgcmV0dXJuIGNhY2hlZDtcblxuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmdldENvbnRyb2woZmllbGQubmFtZSkgYXMgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD47XG4gICAgY29uc3QgcmVzdWx0OiBEYXRlUGlja2VyTWV0YWRhdGEgPSB7XG4gICAgICBjb250cm9sLFxuICAgICAgcGxhY2Vob2xkZXI6IGZpZWxkLnBsYWNlaG9sZGVyIHx8IHVuZGVmaW5lZCxcbiAgICAgIHRva2VuOiBmaWVsZC50b2tlbixcbiAgICB9O1xuICAgIHRoaXMuZGF0ZVBpY2tlclByb3BNZW1vLnNldChmaWVsZCwgcmVzdWx0KTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIEFkYXB0ZXIg4oCUIGNvbnZpZXJ0ZSB1biBgSW5wdXRNZXRhZGF0YWAgKGNvbiB0eXBlPVRFWFRBUkVBKSBhIGBUZXh0YXJlYUlucHV0TWV0YWRhdGFgLlxuICAgKiBEZWZhdWx0cyBzZW5zYXRvczogYXV0b0dyb3cgKyBjb3VudGVyIGhhYmlsaXRhZG8sIDQtMTIgcm93cy5cbiAgICovXG4gIGdldFRleHRhcmVhUHJvcChmaWVsZDogSW5wdXRNZXRhZGF0YSk6IFRleHRhcmVhSW5wdXRNZXRhZGF0YSB7XG4gICAgY29uc3QgY2FjaGVkID0gdGhpcy50ZXh0YXJlYVByb3BNZW1vLmdldChmaWVsZCk7XG4gICAgaWYgKGNhY2hlZCkgcmV0dXJuIGNhY2hlZDtcblxuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmdldENvbnRyb2woZmllbGQubmFtZSk7XG4gICAgY29uc3QgcmVzdWx0OiBUZXh0YXJlYUlucHV0TWV0YWRhdGEgPSB7XG4gICAgICBjb250cm9sOiBjb250cm9sIGFzIEZvcm1Db250cm9sPHN0cmluZz4sXG4gICAgICBuYW1lOiBmaWVsZC5uYW1lLFxuICAgICAgLy8gbGFiZWwgdmFjw61vIOKAlCB2YWwtZm9ybSB5YSByZW5kZXJpemEgZWwgdMOtdHVsbyBjb24gPHZhbC10aXRsZT4gYXJyaWJhIGRlbFxuICAgICAgLy8gaW5wdXQuIFBhc2FybG8gYWwgPGlvbi10ZXh0YXJlYT4gZHVwbGljYXLDrWEgZWwgdGV4dG8gKFwiRGVzY3JpcGNpw7NuXCIgeDIpLlxuICAgICAgbGFiZWw6ICcnLFxuICAgICAgaGludDogZmllbGQuaGludCxcbiAgICAgIHBsYWNlaG9sZGVyOiBmaWVsZC5wbGFjZWhvbGRlcixcbiAgICAgIGF1dG9Hcm93OiB0cnVlLFxuICAgICAgbWluUm93czogNCxcbiAgICAgIG1heFJvd3M6IDEyLFxuICAgICAgbWF4TGVuZ3RoOiBmaWVsZC5yYW5nZT8ubWF4ID8/IDIwMDAsXG4gICAgICBzaG93Q291bnRlcjogdHJ1ZSxcbiAgICAgIGNvdW50ZXJGb3JtYXQ6ICdjdXJyZW50JyxcbiAgICAgIGZpbGw6ICdvdXRsaW5lJyxcbiAgICAgIGVycm9yczogZmllbGQuZXJyb3JzLFxuICAgICAgc3RhdGU6IGZpZWxkLnN0YXRlLFxuICAgIH07XG4gICAgdGhpcy50ZXh0YXJlYVByb3BNZW1vLnNldChmaWVsZCwgcmVzdWx0KTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgZ2V0IGlzQXRFbmRPZkZvcm0oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzQXRFbmQodGhpcy5lbGVtZW50UmVmKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGdWVyemEgbW9zdHJhciBsb3MgZXJyb3JlcyBkZSB2YWxpZGFjacOzbiAobWFyY2EgdG9kb3MgbG9zIGNvbnRyb2xlcyBjb21vXG4gICAqIHRvdWNoZWQpIHkgZGV2dWVsdmUgc2kgZWwgZm9ybSBlcyB2w6FsaWRvLiBQZW5zYWRvIHBhcmEgZWwgbW9kbyBgY29udHJvbGxlZGA6XG4gICAqIGVsIGhvc3QgbG8gaW52b2NhIGVuIHN1IFwiU2lndWllbnRlXCIgcGFyYSBnYXRlYXIgbGEgbmF2ZWdhY2nDs24gZGVsIHdpemFyZC5cbiAgICovXG4gIHZhbGlkYXRlKCk6IGJvb2xlYW4ge1xuICAgIHRoaXMuZm9ybS5tYXJrQWxsQXNUb3VjaGVkKCk7XG4gICAgcmV0dXJuIHRoaXMuZm9ybS52YWxpZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXJjYSB0b2RvcyBsb3MgY29udHJvbGVzIGNvbW8gdG91Y2hlZCAobXVlc3RyYSBlcnJvcmVzKSBzaW4gZGV2b2x2ZXIgbmFkYS5cbiAgICogQWxpYXMgc2Vtw6FudGljbyBkZSBsYSBwcmltZXJhIG1pdGFkIGRlIGB2YWxpZGF0ZSgpYC5cbiAgICovXG4gIG1hcmtBbGxUb3VjaGVkKCk6IHZvaWQge1xuICAgIHRoaXMuZm9ybS5tYXJrQWxsQXNUb3VjaGVkKCk7XG4gIH1cblxuICBnZXQgRm9ybSgpOiBGb3JtR3JvdXAge1xuICAgIHJldHVybiB0aGlzLmZvcm07XG4gIH1cblxuICBnZXQgRm9ybVN0YXRlKCk6IHsgZm9ybTogRm9ybUdyb3VwOyBkYXRhOiBGb3JtTWV0YWRhdGEgfSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGZvcm06IHRoaXMuRm9ybSxcbiAgICAgIGRhdGE6IHRoaXMucHJvcHMsXG4gICAgfTtcbiAgfVxuXG4gIGdldCBhY3Rpb25zKCk6IEJ1dHRvbk1ldGFkYXRhW10ge1xuICAgIC8vIFJldG9ybmFyIGRlbCBjYWNoZSBwYXJhIGV2aXRhciBjcmVhciBudWV2b3Mgb2JqZXRvcyBlbiBjYWRhIGNpY2xvIGRlIGNoYW5nZSBkZXRlY3Rpb25cbiAgICByZXR1cm4gdGhpcy5hY3Rpb25zQ2FjaGU7XG4gIH1cbn1cbiJdfQ==
|
|
684
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2Zvcm0vZm9ybS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxTQUFTLEVBR1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBRU4sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBdUMsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBRXhGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUNoRyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFB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QUNaLG1CQUFtQjt3QkFDbkIsZ0JBQWdCO3dCQUNoQixjQUFjO3dCQUNkLGtCQUFrQjt3QkFDbEIsc0JBQXNCO3dCQUN0QixtQkFBbUI7d0JBQ25CLG9CQUFvQjt3QkFDcEIsZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLHFCQUFxQjt3QkFDckIsa0JBQWtCO3dCQUNsQixrQkFBa0I7d0JBQ2xCLHFCQUFxQjt3QkFDckIsbUJBQW1CO3dCQUNuQixzQkFBc0I7d0JBQ3RCLGlCQUFpQjt3QkFDakIscUJBQXFCO3dCQUNyQiwwQkFBMEI7d0JBQzFCLHVCQUF1Qjt3QkFDdkIsbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLDJCQUEyQjt3QkFDM0Isc0JBQXNCO3dCQUN0QiwyQkFBMkI7d0JBQzNCLG1CQUFtQjtxQkFDcEIsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNIVDt5R0FLRCxLQUFLO3NCQURKLEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxNQUFNO2dCQUlQLFNBQVM7c0JBRFIsTUFBTTtnQkFJUCxjQUFjO3NCQURiLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBEb0NoZWNrLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGlzQXRFbmQgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvdXRpbHMvZG9tJztcbmltcG9ydCB7IERpc3BsYXlDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9kaXNwbGF5L2Rpc3BsYXkuY29tcG9uZW50JztcbmltcG9ydCB7IERpdmlkZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9kaXZpZGVyL2RpdmlkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFRpdGxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdGl0bGUvdGl0bGUuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbkdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2J1dHRvbi1ncm91cC9idXR0b24tZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IENoZWNrSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvY2hlY2staW5wdXQvY2hlY2staW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IENvbW1lbnRJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9jb21tZW50LWlucHV0L2NvbW1lbnQtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGVJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9kYXRlLWlucHV0L2RhdGUtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGVQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGVQaWNrZXJNZXRhZGF0YSB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9kYXRlLXBpY2tlci90eXBlcyc7XG5pbXBvcnQgeyBGaWxlSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvZmlsZS1pbnB1dC9maWxlLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIaW50Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2hpbnQvaGludC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTnVtYmVyRnJvbVRvQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL251bWJlci1mcm9tLXRvL251bWJlci1mcm9tLXRvLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQYXNzd29yZElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3Bhc3N3b3JkLWlucHV0L3Bhc3N3b3JkLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQaW5JbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9waW4taW5wdXQvcGluLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSYWRpb0lucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3JhZGlvLWlucHV0L3JhZGlvLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWFyY2hTZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9zZWxlY3QtaW5wdXQvc2VsZWN0LWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWxlY3RTZWFyY2hDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvc2VsZWN0LXNlYXJjaC9zZWxlY3Qtc2VhcmNoLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNdWx0aVNlbGVjdFNlYXJjaENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9tdWx0aS1zZWxlY3Qtc2VhcmNoL211bHRpLXNlbGVjdC1zZWFyY2guY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy90ZXh0LWlucHV0L3RleHQtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRhcmVhSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvdGV4dGFyZWEtaW5wdXQvdGV4dGFyZWEtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRhcmVhSW5wdXRNZXRhZGF0YSB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy90ZXh0YXJlYS1pbnB1dC90eXBlcyc7XG5pbXBvcnQgeyBQaG9uZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3Bob25lLWlucHV0L3Bob25lLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUb2dnbGVJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy90b2dnbGUtaW5wdXQvdG9nZ2xlLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDaGVja2JveFJhZGlvSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvY2hlY2tib3gtcmFkaW8taW5wdXQvY2hlY2tib3gtcmFkaW8taW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFVzZXJuYW1lSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvdXNlcm5hbWUtaW5wdXQvdXNlcm5hbWUtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFVzZXJuYW1lSW5wdXRNZXRhZGF0YSB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy91c2VybmFtZS1pbnB1dC90eXBlcyc7XG5pbXBvcnQgeyBBdHRhY2htZW50VXBsb2FkZXJDb21wb25lbnQgfSBmcm9tICcuLi9hdHRhY2htZW50LXVwbG9hZGVyL2F0dGFjaG1lbnQtdXBsb2FkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEF0dGFjaG1lbnRJdGVtIH0gZnJvbSAnLi4vYXR0YWNobWVudC11cGxvYWRlci90eXBlcyc7XG5pbXBvcnQgeyBCdXR0b25NZXRhZGF0YSwgQ29tcG9uZW50U3RhdGVzLCBGb3JtTWV0YWRhdGEsIEZvcm1TdWJtaXQsIElucHV0TWV0YWRhdGEsIElucHV0VHlwZSB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWZvcm0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgRGlzcGxheUNvbXBvbmVudCxcbiAgICBUaXRsZUNvbXBvbmVudCxcbiAgICBUZXh0SW5wdXRDb21wb25lbnQsXG4gICAgVGV4dGFyZWFJbnB1dENvbXBvbmVudCxcbiAgICBDaGVja0lucHV0Q29tcG9uZW50LFxuICAgIEJ1dHRvbkdyb3VwQ29tcG9uZW50LFxuICAgIERpdmlkZXJDb21wb25lbnQsXG4gICAgSGludENvbXBvbmVudCxcbiAgICBDb21tZW50SW5wdXRDb21wb25lbnQsXG4gICAgRGF0ZUlucHV0Q29tcG9uZW50LFxuICAgIEZpbGVJbnB1dENvbXBvbmVudCxcbiAgICBOdW1iZXJGcm9tVG9Db21wb25lbnQsXG4gICAgUmFkaW9JbnB1dENvbXBvbmVudCxcbiAgICBQYXNzd29yZElucHV0Q29tcG9uZW50LFxuICAgIFBpbklucHV0Q29tcG9uZW50LFxuICAgIFNlbGVjdFNlYXJjaENvbXBvbmVudCxcbiAgICBNdWx0aVNlbGVjdFNlYXJjaENvbXBvbmVudCxcbiAgICBTZWFyY2hTZWxlY3RvckNvbXBvbmVudCxcbiAgICBQaG9uZUlucHV0Q29tcG9uZW50LFxuICAgIFRvZ2dsZUlucHV0Q29tcG9uZW50LFxuICAgIENoZWNrYm94UmFkaW9JbnB1dENvbXBvbmVudCxcbiAgICBVc2VybmFtZUlucHV0Q29tcG9uZW50LFxuICAgIEF0dGFjaG1lbnRVcGxvYWRlckNvbXBvbmVudCxcbiAgICBEYXRlUGlja2VyQ29tcG9uZW50LFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIiBbc3R5bGUuLS12YWwtZm9ybS1maWVsZC1nYXBdPVwicHJvcHMuZmllbGRTcGFjaW5nICE9IG51bGwgPyBwcm9wcy5maWVsZFNwYWNpbmcgKyAncHgnIDogbnVsbFwiPlxuICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gICAgICAgIEBpZiAocHJvcHMubmFtZSkge1xuICAgICAgICAgIDx2YWwtZGlzcGxheVxuICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgY29udGVudDogcHJvcHMubmFtZSxcbiAgICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgICAgc2l6ZTogJ3NtYWxsJyxcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgID48L3ZhbC1kaXNwbGF5PlxuICAgICAgICB9XG4gICAgICAgIEBmb3IgKHMgb2YgcHJvcHMuc2VjdGlvbnM7IHRyYWNrIHMubmFtZSkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uXCI+XG4gICAgICAgICAgICA8dmFsLXRpdGxlIFtwcm9wc109XCJ7IGNvbnRlbnQ6IHMubmFtZSwgc2l6ZTogJ2xhcmdlJywgY29sb3I6ICcnLCBib2xkOiBmYWxzZSB9XCI+PC92YWwtdGl0bGU+XG4gICAgICAgICAgICBAZm9yIChmIG9mIHMuZmllbGRzOyB0cmFjayBmLm5hbWUpIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0XCIgW2F0dHIuZGF0YS10ZXN0aWRdPVwiZi50b2tlblwiPlxuICAgICAgICAgICAgICAgIEBpZiAoZi50eXBlICE9PSB0eXBlcy5QSE9ORSAmJiBmLnR5cGUgIT09IHR5cGVzLkhBTkRMRSAmJiBmLnR5cGUgIT09IHR5cGVzLkFUVEFDSE1FTlQpIHtcbiAgICAgICAgICAgICAgICAgIDxkaXYgW2F0dHIuaWRdPVwibGFiZWxJZChmKVwiPlxuICAgICAgICAgICAgICAgICAgICA8dmFsLXRpdGxlIFtwcm9wc109XCJ7IGNvbnRlbnQ6IGYubGFiZWwsIHNpemU6ICdzbWFsbCcsIGNvbG9yOiAnZGFyaycsIGJvbGQ6IGZhbHNlIH1cIj48L3ZhbC10aXRsZT5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaWYgKGYuZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmllbGQtZGVzY3JpcHRpb25cIj57eyBmLmRlc2NyaXB0aW9uIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAc3dpdGNoIChmLnR5cGUpIHtcbiAgICAgICAgICAgICAgICAgIEBjYXNlICh0eXBlcy5URVhUKSB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtdGV4dC1pbnB1dCBbcHJvcHNdPVwiZ2V0RmllbGRQcm9wKGYpXCI+PC92YWwtdGV4dC1pbnB1dD5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIEBjYXNlICh0eXBlcy5URVhUQVJFQSkge1xuICAgICAgICAgICAgICAgICAgICA8dmFsLXRleHRhcmVhLWlucHV0IFtwcm9wc109XCJnZXRUZXh0YXJlYVByb3AoZilcIj48L3ZhbC10ZXh0YXJlYS1pbnB1dD5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIEBjYXNlICh0eXBlcy5DSEVDSykge1xuICAgICAgICAgICAgICAgICAgICA8dmFsLWNoZWNrLWlucHV0IFtwcm9wc109XCJnZXRGaWVsZFByb3AoZilcIj48L3ZhbC1jaGVjay1pbnB1dD5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIEBjYXNlICh0eXBlcy5DT01NRU5UKSB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtY29tbWVudC1pbnB1dCBbcHJvcHNdPVwiZ2V0RmllbGRQcm9wKGYpXCI+PC92YWwtY29tbWVudC1pbnB1dD5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIEBjYXNlICh0eXBlcy5EQVRFKSB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtZGF0ZS1pbnB1dCBbcHJvcHNdPVwiZ2V0RmllbGRQcm9wKGYpXCI+PC92YWwtZGF0ZS1pbnB1dD5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIEBjYXNlICh0eXBlcy5FTUFJTCkge1xuICAgICAgICAgICAgICAgICAgICA8dmFsLXRleHQtaW5wdXQgW3Byb3BzXT1cImdldFRleHRJbnB1dFByb3AoZiwgJ2VtYWlsJylcIj48L3ZhbC10ZXh0LWlucHV0PlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGNhc2UgKHR5cGVzLkZJTEUpIHtcbiAgICAgICAgICAgICAgICAgICAgPHZhbC1maWxlLWlucHV0IFtwcm9wc109XCJnZXRGaWVsZFByb3AoZilcIj48L3ZhbC1maWxlLWlucHV0PlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGNhc2UgKHR5cGVzLkhPVVIpIHtcbiAgICAgICAgICAgICAgICAgICAgPHZhbC10ZXh0LWlucHV0IFtwcm9wc109XCJnZXRUZXh0SW5wdXRQcm9wKGYsICd0aW1lJylcIj48L3ZhbC10ZXh0LWlucHV0PlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGNhc2UgKHR5cGVzLk5VTUJFUikge1xuICAgICAgICAgICAgICAgICAgICA8dmFsLXRleHQtaW5wdXQgW3Byb3BzXT1cImdldFRleHRJbnB1dFByb3AoZiwgJ251bWJlcicpXCI+PC92YWwtdGV4dC1pbnB1dD5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIEBjYXNlICh0eXBlcy5OVU1CRVJfRlJPTV9UTykge1xuICAgICAgICAgICAgICAgICAgICA8dmFsLW51bWJlci1mcm9tLXRvIFtwcm9wc109XCJnZXRGaWVsZFByb3AoZilcIj48L3ZhbC1udW1iZXItZnJvbS10bz5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIEBjYXNlICh0eXBlcy5QQVNTV09SRCkge1xuICAgICAgICAgICAgICAgICAgICA8dmFsLXBhc3N3b3JkLWlucHV0IFtwcm9wc109XCJnZXRGaWVsZFByb3AoZilcIj48L3ZhbC1wYXNzd29yZC1pbnB1dD5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIEBjYXNlICh0eXBlcy5QSU5fQ09ERSkge1xuICAgICAgICAgICAgICAgICAgICA8dmFsLXBpbi1pbnB1dCBbcHJvcHNdPVwiZ2V0RmllbGRQcm9wKGYpXCI+PC92YWwtcGluLWlucHV0PlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGNhc2UgKHR5cGVzLlJBRElPKSB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtcmFkaW8taW5wdXQgW3Byb3BzXT1cImdldEZpZWxkUHJvcChmKVwiPjwvdmFsLXJhZGlvLWlucHV0PlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGNhc2UgKHR5cGVzLlNFTEVDVCkge1xuICAgICAgICAgICAgICAgICAgICA8dmFsLXNlbGVjdC1pbnB1dCBbcHJvcHNdPVwiZ2V0U2VsZWN0UHJvcChmKVwiPjwvdmFsLXNlbGVjdC1pbnB1dD5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIEBjYXNlICh0eXBlcy5TRUFSQ0hfU0VMRUNUKSB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtc2VsZWN0LXNlYXJjaCBbcHJvcHNdPVwiZ2V0RmllbGRQcm9wKGYpXCI+PC92YWwtc2VsZWN0LXNlYXJjaD5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIEBjYXNlICh0eXBlcy5NVUxUSV9TRUxFQ1QpIHtcbiAgICAgICAgICAgICAgICAgICAgPHZhbC1tdWx0aS1zZWxlY3Qtc2VhcmNoIFtwcm9wc109XCJnZXRGaWVsZFByb3AoZilcIj48L3ZhbC1tdWx0aS1zZWxlY3Qtc2VhcmNoPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGNhc2UgKHR5cGVzLlBIT05FKSB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtcGhvbmUtaW5wdXQgW3Byb3BzXT1cImdldEZpZWxkUHJvcChmKVwiPjwvdmFsLXBob25lLWlucHV0PlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGNhc2UgKHR5cGVzLkhBTkRMRSkge1xuICAgICAgICAgICAgICAgICAgICA8dmFsLXVzZXJuYW1lLWlucHV0IFtwcm9wc109XCJnZXRVc2VybmFtZVByb3AoZilcIj48L3ZhbC11c2VybmFtZS1pbnB1dD5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIEBjYXNlICh0eXBlcy5UT0dHTEUpIHtcbiAgICAgICAgICAgICAgICAgICAgPHZhbC10b2dnbGUtaW5wdXQgW3Byb3BzXT1cImdldEZpZWxkUHJvcChmKVwiPjwvdmFsLXRvZ2dsZS1pbnB1dD5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIEBjYXNlICh0eXBlcy5DSEVDS0JPWF9SQURJTykge1xuICAgICAgICAgICAgICAgICAgICA8dmFsLWNoZWNrYm94LXJhZGlvLWlucHV0IFtwcm9wc109XCJnZXRGaWVsZFByb3AoZilcIj48L3ZhbC1jaGVja2JveC1yYWRpby1pbnB1dD5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIEBjYXNlICh0eXBlcy5BVFRBQ0hNRU5UKSB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtYXR0YWNobWVudC11cGxvYWRlclxuICAgICAgICAgICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogZi5sYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhpbnQ6IGYuaGludCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVwbG9hZEZuOiBmLnVwbG9hZEZuLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IGYuc3RhdGUgPT09IHN0YXRlcy5ESVNBQkxFRCB8fCBmLnN0YXRlID09PSBzdGF0ZXMuV09SS0lORyxcbiAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAoYXR0YWNobWVudHNDaGFuZ2UpPVwib25BdHRhY2htZW50Q2hhbmdlKGYubmFtZSwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgID48L3ZhbC1hdHRhY2htZW50LXVwbG9hZGVyPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGNhc2UgKHR5cGVzLkRBVEVfUElDS0VSKSB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtZGF0ZS1waWNrZXIgW3Byb3BzXT1cImdldERhdGVQaWNrZXJQcm9wKGYpXCI+PC92YWwtZGF0ZS1waWNrZXI+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDx2YWwtaGludCBbcHJvcHNdPVwiZ2V0RmllbGRQcm9wKGYpXCIgW2lkXT1cImVycm9ySWQoZilcIj48L3ZhbC1oaW50PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDx2YWwtZGl2aWRlciBbcHJvcHNdPVwieyBmaWxsOiAnc29saWQnLCBzaXplOiAnbWVkaXVtJywgY29sb3I6ICdtZWRpdW0nIH1cIj48L3ZhbC1kaXZpZGVyPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoIXByb3BzLmNvbnRyb2xsZWQpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VibWl0LWFjdGlvbnNcIiBbY2xhc3Muc3VibWl0LWFjdGlvbnMtLXN0aWNreV09XCJwcm9wcy5zdGlja3lGb290ZXJcIj5cbiAgICAgICAgICAgIDx2YWwtYnV0dG9uLWdyb3VwXG4gICAgICAgICAgICAgIFtwcm9wc109XCJ7IGJ1dHRvbnM6IGFjdGlvbnMsIHBvc2l0aW9uOiAnY2VudGVyJywgY29sdW1uZWQ6IGZhbHNlIH1cIlxuICAgICAgICAgICAgICAob25DbGljayk9XCJzdWJtaXRIYW5kbGVyKCRldmVudClcIlxuICAgICAgICAgICAgPjwvdmFsLWJ1dHRvbi1ncm91cD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9mb3JtPlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9mb3JtLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgRG9DaGVjayB7XG4gIEBJbnB1dCgpXG4gIHByb3BzOiBGb3JtTWV0YWRhdGE7XG5cbiAgQE91dHB1dCgpXG4gIG9uU3VibWl0ID0gbmV3IEV2ZW50RW1pdHRlcjxGb3JtU3VibWl0PigpO1xuXG4gIEBPdXRwdXQoKVxuICBvbkludmFsaWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpXG4gIG9uU2VsZWN0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjx7IGZpZWxkOiBzdHJpbmc7IHZhbHVlOiBhbnkgfT4oKTtcblxuICBmb3JtOiBGb3JtR3JvdXA7XG4gIHR5cGVzID0gSW5wdXRUeXBlO1xuICBzdGF0ZXMgPSBDb21wb25lbnRTdGF0ZXM7XG5cbiAgLyoqXG4gICAqIFZhbG9yIGFjdHVhbCBkZWwgZm9ybSAoYGZvcm0uZ2V0UmF3VmFsdWUoKWApLCBhY3R1YWxpemFkbyBlbiBjYWRhXG4gICAqIGB2YWx1ZUNoYW5nZXNgLiBQZW5zYWRvIHBhcmEgZWwgbW9kbyBgY29udHJvbGxlZGA6IGVsIGhvc3QgbG8gbGVlIHbDrWFcbiAgICogYEBWaWV3Q2hpbGQoRm9ybUNvbXBvbmVudClgIHNpbiB0b2NhciBlbCBGb3JtR3JvdXAgZGlyZWN0by4gRW4gbW9kbyBub3JtYWxcbiAgICogdGFtYmnDqW4gZXN0w6EgZGlzcG9uaWJsZS5cbiAgICovXG4gIHJlYWRvbmx5IHZhbHVlID0gc2lnbmFsPFJlY29yZDxzdHJpbmcsIGFueT4+KHt9KTtcblxuICAvKipcbiAgICogRXN0YWRvIGRlIHZhbGlkZXogZGVsIGZvcm0sIGFjdHVhbGl6YWRvIGVuIGNhZGEgYHN0YXR1c0NoYW5nZXNgLiBQYXJhIHF1ZVxuICAgKiBlbCBob3N0ICh3aXphcmQpIGhhYmlsaXRlL2Rlc2hhYmlsaXRlIHN1IGJvdMOzbiBcIlNpZ3VpZW50ZVwiLlxuICAgKi9cbiAgcmVhZG9ubHkgdmFsaWQgPSBzaWduYWwoZmFsc2UpO1xuXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICBwcml2YXRlIGFjdGlvbnNDYWNoZTogQnV0dG9uTWV0YWRhdGFbXSA9IFtdO1xuXG4gIC8vIE1lbW8gZGUgZ2V0RmllbGRQcm9wL2dldFVzZXJuYW1lUHJvcCBwb3IgcmVmZXJlbmNpYSBkZSBmaWVsZCDigJQgZXZpdGFcbiAgLy8gY3JlYXIgdW4gbnVldm8gb2JqZXRvIHByb3BzIHBvciBrZXlzdHJva2UgKGNhZGEgQ0QgY3ljbGUgaW52b2NhcsOtYSBlbFxuICAvLyB0ZW1wbGF0ZSBiaW5kaW5nLCBtdWx0aXBsaWNhbmRvIHJlLXJlbmRlcnMgZW4gY2FzY2FkYSBwb3IgIyBmaWVsZHMpLlxuICAvLyBXZWFrTWFwOiBzaSBsYSByZWZlcmVuY2lhIGRlbCBmaWVsZCBjYW1iaWEsIGVsIGNhY2hlIHNlIGxpYmVyYS5cbiAgcHJpdmF0ZSBmaWVsZFByb3BNZW1vID0gbmV3IFdlYWtNYXA8SW5wdXRNZXRhZGF0YSwgSW5wdXRNZXRhZGF0YT4oKTtcbiAgcHJpdmF0ZSB1c2VybmFtZVByb3BNZW1vID0gbmV3IFdlYWtNYXA8SW5wdXRNZXRhZGF0YSwgVXNlcm5hbWVJbnB1dE1ldGFkYXRhPigpO1xuICBwcml2YXRlIHRleHRhcmVhUHJvcE1lbW8gPSBuZXcgV2Vha01hcDxJbnB1dE1ldGFkYXRhLCBUZXh0YXJlYUlucHV0TWV0YWRhdGE+KCk7XG4gIHByaXZhdGUgc2VsZWN0UHJvcE1lbW8gPSBuZXcgV2Vha01hcDxJbnB1dE1ldGFkYXRhLCBJbnB1dE1ldGFkYXRhPigpO1xuICAvLyBNZW1vIGRlIHByb3BzIGNvbiB1biBpbnB1dFR5cGUgSFRNTCBpbnllY3RhZG8gKEVNQUlML05VTUJFUi9IT1VSIGNvbGFwc2Fkb3NcbiAgLy8gZW4gdmFsLXRleHQtaW5wdXQpLiBDbGF2ZSBwb3IgZmllbGQgcGFyYSBjb25zZXJ2YXIgaWRlbnRpZGFkIGRlIHJlZmVyZW5jaWEuXG4gIHByaXZhdGUgdGV4dElucHV0UHJvcE1lbW8gPSBuZXcgV2Vha01hcDxJbnB1dE1ldGFkYXRhLCBJbnB1dE1ldGFkYXRhPigpO1xuICBwcml2YXRlIGRhdGVQaWNrZXJQcm9wTWVtbyA9IG5ldyBXZWFrTWFwPElucHV0TWV0YWRhdGEsIERhdGVQaWNrZXJNZXRhZGF0YT4oKTtcblxuICAvLyBJZHMgZXN0YWJsZXMgcG9yIGZpZWxkIHBhcmEgZWwgd2lyaW5nIGRlIGFjY2VzaWJpbGlkYWQgbGFiZWzihpRpbnB1dOKGlGVycm9yLlxuICAvLyBFc3RhYmxlcyBlbnRyZSBDRCBjeWNsZXMgKG1lbW9pemFkb3MgcG9yIHJlZmVyZW5jaWEgZGUgZmllbGQpIOKGkiBhcmlhLSogbm8gcGFycGFkZWEuXG4gIHByaXZhdGUgZmllbGRJZE1lbW8gPSBuZXcgV2Vha01hcDxJbnB1dE1ldGFkYXRhLCB7IGxhYmVsSWQ6IHN0cmluZzsgZXJyb3JJZDogc3RyaW5nIH0+KCk7XG4gIHByaXZhdGUgZmllbGRVaWQgPSAwO1xuXG4gIC8vIEVzdGFkbyBwcmV2aW8gcGFyYSBkZXRlY3RhciBjYW1iaW9zIGVuIG5nRG9DaGVja1xuICBwcml2YXRlIHByZXZpb3VzU3RhdGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBwcmV2aW91c1VwbG9hZGluZ0NvdW50ID0gMDtcblxuICAvLyBDYW1wb3MgQVRUQUNITUVOVCBjb24gdXBsb2FkcyBlbiBjdXJzbyDigJQgYmxvcXVlYSBzdWJtaXQgKyBERVNIQUJJTElUQSBlbFxuICAvLyBib3TDs24gKG5vIGxvYWRpbmc6IGVsIHNwaW5uZXIgc2UgcmVzZXJ2YSBwYXJhIGVsIHN1Ym1pdCByZWFsIGRlbCBmb3JtKS5cbiAgcHJpdmF0ZSB1cGxvYWRpbmdGaWVsZHMgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWZcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGNvbnN0IGZvcm1Db250cm9scyA9IHt9O1xuICAgIHRoaXMucHJvcHMuc2VjdGlvbnMuZm9yRWFjaChzZWN0aW9uID0+IHtcbiAgICAgIHNlY3Rpb24uZmllbGRzLmZvckVhY2goZmllbGQgPT4ge1xuICAgICAgICAvLyBIb25yYSBgZmllbGQudmFsdWVgIGFsIGNvbnN0cnVpciBlbCBGb3JtR3JvdXAgcGFyYSBxdWUgY29udHJvbGVzIHRpcG9cbiAgICAgICAgLy8gSEFORExFIChxdWUgY29uc3VtZW4gZWwgY29udHJvbCBkaXJlY3RvIHZpYSBbZm9ybUNvbnRyb2xdKSByZWNpYmFuIGVsXG4gICAgICAgIC8vIHZhbG9yIGluaWNpYWwgc2luIHF1ZSBlbCBjYWxsZXIgdGVuZ2EgcXVlIHBhdGNoVmFsdWUgcG9zdC1tb3VudC5cbiAgICAgICAgLy8gRWwgaGVscGVyIGFwcGx5RGVmYXVsdFZhbHVlVG9Db250cm9sICh2YWwtdGV4dC1pbnB1dCBldGMuKSBzaWd1ZVxuICAgICAgICAvLyBmdW5jaW9uYW5kbyDigJQgZXNjcmliZSBzb2JyZSB1biBjb250cm9sIHlhIGluaWNpYWxpemFkbywgaWRlbXBvdGVudGUuXG4gICAgICAgIGNvbnN0IGluaXRpYWxWYWx1ZSA9IGZpZWxkLnZhbHVlID8/IG51bGw7XG4gICAgICAgIGlmIChmaWVsZC50eXBlID09PSB0aGlzLnR5cGVzLk5VTUJFUl9GUk9NX1RPKSB7XG4gICAgICAgICAgLy8gQ3JlYXIgZG9zIGNvbnRyb2xlcyBwYXJhIGNhbXBvcyBOVU1CRVJfRlJPTV9UT1xuICAgICAgICAgIGZvcm1Db250cm9sc1tgJHtmaWVsZC5uYW1lfV9mcm9tYF0gPSBbaW5pdGlhbFZhbHVlLCBmaWVsZC52YWxpZGF0b3JzIHx8IFtdXTtcbiAgICAgICAgICBmb3JtQ29udHJvbHNbYCR7ZmllbGQubmFtZX1fdG9gXSA9IFtpbml0aWFsVmFsdWUsIGZpZWxkLnZhbGlkYXRvcnMgfHwgW11dO1xuICAgICAgICB9IGVsc2UgaWYgKGZpZWxkLnR5cGUgPT09IHRoaXMudHlwZXMuQVRUQUNITUVOVCkge1xuICAgICAgICAgIGZvcm1Db250cm9sc1tmaWVsZC5uYW1lXSA9IFtbXSwgZmllbGQudmFsaWRhdG9ycyB8fCBbXV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZm9ybUNvbnRyb2xzW2ZpZWxkLm5hbWVdID0gW2luaXRpYWxWYWx1ZSwgZmllbGQudmFsaWRhdG9ycyB8fCBbXV07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHRoaXMuZm9ybSA9IHRoaXMuZmIuZ3JvdXAoZm9ybUNvbnRyb2xzKTtcbiAgICB0aGlzLnByb3BzLnNlY3Rpb25zLmZvckVhY2goc2VjdGlvbiA9PiB7XG4gICAgICBzZWN0aW9uLmZpZWxkc1xuICAgICAgICAuZmlsdGVyKFxuICAgICAgICAgIHggPT5cbiAgICAgICAgICAgIHgudHlwZSA9PT0gdGhpcy50eXBlcy5TRUxFQ1QgfHxcbiAgICAgICAgICAgIHgudHlwZSA9PT0gdGhpcy50eXBlcy5URVhUIHx8XG4gICAgICAgICAgICB4LnR5cGUgPT09IHRoaXMudHlwZXMuU0VBUkNIX1NFTEVDVCB8fFxuICAgICAgICAgICAgeC50eXBlID09PSB0aGlzLnR5cGVzLk1VTFRJX1NFTEVDVFxuICAgICAgICApXG4gICAgICAgIC5mb3JFYWNoKGZpZWxkID0+IHtcbiAgICAgICAgICB0aGlzLnRyYWNrU2VsZWN0Q2hhbmdlcyhmaWVsZC5uYW1lKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICAvLyBFc3RhZG8gcmVhY3Rpdm8gcMO6YmxpY28gKHZhbHVlL3ZhbGlkKSDigJQgYWN0dWFsaXphZG8gcG9yIHN1c2NyaXBjacOzbiBSeEpTLFxuICAgIC8vIE5PIGRlbnRybyBkZSB1biBlZmZlY3Q6IHNldGVhciBzaWduYWxzIGFjw6EgZXMgc2VndXJvIChubyBkaXNwYXJhIE5HMDYwMCkuXG4gICAgdGhpcy52YWx1ZS5zZXQodGhpcy5mb3JtLmdldFJhd1ZhbHVlKCkpO1xuICAgIHRoaXMudmFsaWQuc2V0KHRoaXMuZm9ybS52YWxpZCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5mb3JtLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4gdGhpcy52YWx1ZS5zZXQodGhpcy5mb3JtLmdldFJhd1ZhbHVlKCkpKSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5mb3JtLnN0YXR1c0NoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHRoaXMudmFsaWQuc2V0KHRoaXMuZm9ybS52YWxpZCkpKTtcblxuICAgIHRoaXMuc3luY0ZpZWxkQ29udHJvbFN0YXRlcygpO1xuICAgIHRoaXMudXBkYXRlQWN0aW9uc0NhY2hlKCk7XG4gICAgdGhpcy5wcmV2aW91c1N0YXRlID0gdGhpcy5wcm9wcy5zdGF0ZTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAvLyBDdWFuZG8gcHJvcHMgY2FtYmlhLCByZWNvbnN0cnVpciBlbCBjYWNoZVxuICAgIGlmIChjaGFuZ2VzWydwcm9wcyddICYmIHRoaXMuZm9ybSkge1xuICAgICAgdGhpcy5zeW5jRmllbGRDb250cm9sU3RhdGVzKCk7XG4gICAgICB0aGlzLnVwZGF0ZUFjdGlvbnNDYWNoZSgpO1xuICAgICAgdGhpcy5wcmV2aW91c1N0YXRlID0gdGhpcy5wcm9wcy5zdGF0ZTtcbiAgICB9XG4gIH1cblxuICBuZ0RvQ2hlY2soKSB7XG4gICAgLy8gRGV0ZWN0YXIgY2FtYmlvcyBlbiBlbCBlc3RhZG8gZGVsIGZvcm11bGFyaW8gKG11dGFjacOzbiBzaW4gY2FtYmlhciByZWZlcmVuY2lhKVxuICAgIGNvbnN0IHVwbG9hZGluZ0NvdW50ID0gdGhpcy51cGxvYWRpbmdGaWVsZHMuc2l6ZTtcbiAgICBpZiAoXG4gICAgICB0aGlzLmZvcm0gJiZcbiAgICAgIHRoaXMucHJvcHMgJiZcbiAgICAgICh0aGlzLnByb3BzLnN0YXRlICE9PSB0aGlzLnByZXZpb3VzU3RhdGUgfHwgdXBsb2FkaW5nQ291bnQgIT09IHRoaXMucHJldmlvdXNVcGxvYWRpbmdDb3VudClcbiAgICApIHtcbiAgICAgIHRoaXMucHJldmlvdXNTdGF0ZSA9IHRoaXMucHJvcHMuc3RhdGU7XG4gICAgICB0aGlzLnByZXZpb3VzVXBsb2FkaW5nQ291bnQgPSB1cGxvYWRpbmdDb3VudDtcbiAgICAgIHRoaXMudXBkYXRlQWN0aW9uc0NhY2hlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFN5bmNocm9uaXplcyBmb3JtIGNvbnRyb2wgZGlzYWJsZWQvZW5hYmxlZCBzdGF0ZSB3aXRoIGZpZWxkIG1ldGFkYXRhLlxuICAgKi9cbiAgcHJpdmF0ZSBzeW5jRmllbGRDb250cm9sU3RhdGVzKCkge1xuICAgIHRoaXMucHJvcHMuc2VjdGlvbnMuZm9yRWFjaChzZWN0aW9uID0+IHtcbiAgICAgIHNlY3Rpb24uZmllbGRzLmZvckVhY2goZmllbGQgPT4ge1xuICAgICAgICBpZiAoZmllbGQudHlwZSA9PT0gdGhpcy50eXBlcy5BVFRBQ0hNRU5UKSByZXR1cm47XG4gICAgICAgIGlmIChmaWVsZC50eXBlID09PSB0aGlzLnR5cGVzLk5VTUJFUl9GUk9NX1RPKSB7XG4gICAgICAgICAgY29uc3QgZnJvbUNvbnRyb2wgPSB0aGlzLmdldENvbnRyb2woYCR7ZmllbGQubmFtZX1fZnJvbWApO1xuICAgICAgICAgIGNvbnN0IHRvQ29udHJvbCA9IHRoaXMuZ2V0Q29udHJvbChgJHtmaWVsZC5uYW1lfV90b2ApO1xuXG4gICAgICAgICAgaWYgKGZpZWxkLnN0YXRlID09PSBDb21wb25lbnRTdGF0ZXMuRElTQUJMRUQpIHtcbiAgICAgICAgICAgIGZyb21Db250cm9sLmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICAgICAgdG9Db250cm9sLmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmcm9tQ29udHJvbC5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICAgICAgdG9Db250cm9sLmVuYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmdldENvbnRyb2woZmllbGQubmFtZSk7XG4gICAgICAgICAgaWYgKGZpZWxkLnN0YXRlID09PSBDb21wb25lbnRTdGF0ZXMuRElTQUJMRUQpIHtcbiAgICAgICAgICAgIGNvbnRyb2wuZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnRyb2wuZW5hYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFjdHVhbGl6YSBlbCBjYWNoZSBkZSBhY3Rpb25zIGJhc2FkbyBlbiBlbCBlc3RhZG8gYWN0dWFsIGRlbCBmb3JtLlxuICAgKi9cbiAgcHJpdmF0ZSB1cGRhdGVBY3Rpb25zQ2FjaGUoKSB7XG4gICAgLy8gRW4gbW9kbyBjb250cm9sbGVkIChvIHNpbiBzdWJtaXQpIG5vIGhheSBib3TDs24gcHJvcGlvIHF1ZSBjYWNoZWFyLlxuICAgIGlmICghdGhpcy5wcm9wcy5hY3Rpb25zKSB7XG4gICAgICB0aGlzLmFjdGlvbnNDYWNoZSA9IFtdO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBsZXQgYWN0aW9uU3RhdGUgPSB0aGlzLnByb3BzLmFjdGlvbnMuc3RhdGU7XG5cbiAgICBpZiAodGhpcy5wcm9wcy5zdGF0ZSA9PT0gQ29tcG9uZW50U3RhdGVzLldPUktJTkcpIHtcbiAgICAgIC8vIFN1Ym1pdCByZWFsIGRlbCBmb3JtIGVuIGN1cnNvIOKGkiBib3TDs24gZW4gbG9hZGluZyAoc3Bpbm5lcikuXG4gICAgICBhY3Rpb25TdGF0ZSA9IENvbXBvbmVudFN0YXRlcy5XT1JLSU5HO1xuICAgIH0gZWxzZSBpZiAodGhpcy5wcm9wcy5zdGF0ZSA9PT0gQ29tcG9uZW50U3RhdGVzLkRJU0FCTEVEIHx8IHRoaXMudXBsb2FkaW5nRmllbGRzLnNpemUgPiAwKSB7XG4gICAgICAvLyBTdWJpZGEgZGUgYWRqdW50byBlbiBjdXJzbyDihpIgREVTSEFCSUxJVEFSIGVsIHN1Ym1pdCwgTk8gbG9hZGluZzogdG9kYXbDrWFcbiAgICAgIC8vIG5vIHNlIGVzdMOhIGVudmlhbmRvIGVsIGZvcm0sIHNvbG8gc3ViaWVuZG8gdW4gYXJjaGl2by4gVW4gc3Bpbm5lciBhY8OhXG4gICAgICAvLyBjb25mdW5kZSAocGFyZWNlIHF1ZSBlbCBmb3JtIHNlIGVzdMOhIGVudmlhbmRvKS5cbiAgICAgIGFjdGlvblN0YXRlID0gQ29tcG9uZW50U3RhdGVzLkRJU0FCTEVEO1xuICAgIH0gZWxzZSBpZiAodGhpcy5wcm9wcy5zdGF0ZSA9PT0gQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQgfHwgdGhpcy5mb3JtPy52YWxpZCkge1xuICAgICAgYWN0aW9uU3RhdGUgPSBDb21wb25lbnRTdGF0ZXMuRU5BQkxFRDtcbiAgICB9XG5cbiAgICB0aGlzLmFjdGlvbnNDYWNoZSA9IFt7IC4uLnRoaXMucHJvcHMuYWN0aW9ucywgc3RhdGU6IGFjdGlvblN0YXRlIH1dO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgLy8gQ2xlYW51cCBzdWJzY3JpcHRpb25zIHRvIGF2b2lkIG1lbW9yeSBsZWFrc1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHN1YiA9PiBzdWIudW5zdWJzY3JpYmUoKSk7XG4gIH1cblxuICB0cmFja1NlbGVjdENoYW5nZXMoZmllbGROYW1lOiBzdHJpbmcpIHtcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5nZXRDb250cm9sKGZpZWxkTmFtZSk7XG4gICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gY29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgIHRoaXMub25TZWxlY3RDaGFuZ2UuZW1pdCh7IGZpZWxkOiBmaWVsZE5hbWUsIHZhbHVlIH0pO1xuICAgIH0pO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHN1YnNjcmlwdGlvbik7XG4gIH1cblxuICBhc3luYyBzdWJtaXRIYW5kbGVyKHRva2VuPzogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMudXBsb2FkaW5nRmllbGRzLnNpemUgPiAwKSByZXR1cm47XG4gICAgaWYgKCF0aGlzLmZvcm0udmFsaWQpIHtcbiAgICAgIHRoaXMuZm9ybS5tYXJrQWxsQXNUb3VjaGVkKCk7XG4gICAgICB0aGlzLm9uSW52YWxpZC5lbWl0KCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMub25TdWJtaXQuZW1pdCh7IGZpZWxkczogdGhpcy5mb3JtLmdldFJhd1ZhbHVlKCksIHRva2VuIH0pO1xuICB9XG5cbiAgb25BdHRhY2htZW50Q2hhbmdlKGZpZWxkTmFtZTogc3RyaW5nLCBpdGVtczogQXR0YWNobWVudEl0ZW1bXSk6IHZvaWQge1xuICAgIGNvbnN0IHJlYWR5VXJscyA9IGl0ZW1zLmZpbHRlcihhID0+IGEuc3RhdHVzID09PSAncmVhZHknICYmIGEudXJsKS5tYXAoYSA9PiBhLnVybCEpO1xuICAgIHRoaXMuZm9ybS5nZXQoZmllbGROYW1lKT8uc2V0VmFsdWUocmVhZHlVcmxzLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgaWYgKGl0ZW1zLnNvbWUoYSA9PiBhLnN0YXR1cyA9PT0gJ3VwbG9hZGluZycpKSB7XG4gICAgICB0aGlzLnVwbG9hZGluZ0ZpZWxkcy5hZGQoZmllbGROYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy51cGxvYWRpbmdGaWVsZHMuZGVsZXRlKGZpZWxkTmFtZSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0Q29udHJvbChmaWVsZDogc3RyaW5nKTogRm9ybUNvbnRyb2wge1xuICAgIHJldHVybiB0aGlzLkZvcm0uZ2V0KGZpZWxkKSBhcyBGb3JtQ29udHJvbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZHMgZXN0YWJsZXMgKGxhYmVsICsgZXJyb3IpIHBhcmEgdW4gZmllbGQuIE1lbW9pemFkb3MgcG9yIHJlZmVyZW5jaWEgcGFyYVxuICAgKiBxdWUgZWwgd2lyaW5nIGBhcmlhLWxhYmVsbGVkYnlgIC8gYGFyaWEtZGVzY3JpYmVkYnlgIG5vIGNhbWJpZSBlbnRyZSBjaWNsb3NcbiAgICogZGUgY2hhbmdlIGRldGVjdGlvbi5cbiAgICovXG4gIHByaXZhdGUgZmllbGRJZHMoZmllbGQ6IElucHV0TWV0YWRhdGEpOiB7IGxhYmVsSWQ6IHN0cmluZzsgZXJyb3JJZDogc3RyaW5nIH0ge1xuICAgIGxldCBpZHMgPSB0aGlzLmZpZWxkSWRNZW1vLmdldChmaWVsZCk7XG4gICAgaWYgKCFpZHMpIHtcbiAgICAgIGNvbnN0IGJhc2UgPSBgdmFsLWZvcm0tZmllbGQtJHt0aGlzLmZpZWxkVWlkKyt9YDtcbiAgICAgIGlkcyA9IHsgbGFiZWxJZDogYCR7YmFzZX0tbGFiZWxgLCBlcnJvcklkOiBgJHtiYXNlfS1lcnJvcmAgfTtcbiAgICAgIHRoaXMuZmllbGRJZE1lbW8uc2V0KGZpZWxkLCBpZHMpO1xuICAgIH1cbiAgICByZXR1cm4gaWRzO1xuICB9XG5cbiAgLyoqIElkIGRlbCBsYWJlbCB2aXNpYmxlIGRlbCBjYW1wbyAoY29uc3VtaWRvIHBvciBlbCB0ZW1wbGF0ZSArIGVsIGlucHV0KS4gKi9cbiAgbGFiZWxJZChmaWVsZDogSW5wdXRNZXRhZGF0YSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGRJZHMoZmllbGQpLmxhYmVsSWQ7XG4gIH1cblxuICAvKiogSWQgZGVsIGNvbnRlbmVkb3IgZGUgZXJyb3IgKGB2YWwtaGludGApIGRlbCBjYW1wby4gKi9cbiAgZXJyb3JJZChmaWVsZDogSW5wdXRNZXRhZGF0YSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGRJZHMoZmllbGQpLmVycm9ySWQ7XG4gIH1cblxuICBnZXRGaWVsZFByb3AoZmllbGQ6IElucHV0TWV0YWRhdGEpOiBJbnB1dE1ldGFkYXRhIHtcbiAgICBjb25zdCBjYWNoZWQgPSB0aGlzLmZpZWxkUHJvcE1lbW8uZ2V0KGZpZWxkKTtcbiAgICBpZiAoY2FjaGVkKSByZXR1cm4gY2FjaGVkO1xuXG4gICAgaWYgKCFmaWVsZC50b2tlbikge1xuICAgICAgZmllbGQudG9rZW4gPSBgaW5wdXQtJHtmaWVsZC50eXBlfS0ke2ZpZWxkLm5hbWV9YDtcbiAgICB9XG5cbiAgICBjb25zdCBpZHMgPSB0aGlzLmZpZWxkSWRzKGZpZWxkKTtcblxuICAgIGxldCByZXN1bHQ6IElucHV0TWV0YWRhdGE7XG4gICAgaWYgKGZpZWxkLnR5cGUgPT09IHRoaXMudHlwZXMuTlVNQkVSX0ZST01fVE8pIHtcbiAgICAgIGNvbnN0IGZyb21Db250cm9sID0gdGhpcy5nZXRDb250cm9sKGAke2ZpZWxkLm5hbWV9X2Zyb21gKTtcbiAgICAgIGNvbnN0IHRvQ29udHJvbCA9IHRoaXMuZ2V0Q29udHJvbChgJHtmaWVsZC5uYW1lfV90b2ApO1xuICAgICAgcmVzdWx0ID0geyAuLi5maWVsZCwgZnJvbUNvbnRyb2wsIHRvQ29udHJvbCwgY29udHJvbDogdW5kZWZpbmVkLCBsYWJlbElkOiBpZHMubGFiZWxJZCwgZXJyb3JJZDogaWRzLmVycm9ySWQgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuZ2V0Q29udHJvbChmaWVsZC5uYW1lKTtcbiAgICAgIHJlc3VsdCA9IHsgLi4uZmllbGQsIGNvbnRyb2wsIGxhYmVsSWQ6IGlkcy5sYWJlbElkLCBlcnJvcklkOiBpZHMuZXJyb3JJZCB9O1xuICAgIH1cbiAgICB0aGlzLmZpZWxkUHJvcE1lbW8uc2V0KGZpZWxkLCByZXN1bHQpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogQWRhcHRlciBwYXJhIGxvcyB0aXBvcyBjb2xhcHNhZG9zIGVuIGB2YWwtdGV4dC1pbnB1dGAgKEVNQUlML05VTUJFUi9IT1VSKS5cbiAgICogUmV1c2EgYGdldEZpZWxkUHJvcGAgKGNvbiBzdSBjb250cm9sICsgd2lyaW5nIGRlIGlkcykgZSBpbnllY3RhIGVsIGBpbnB1dFR5cGVgXG4gICAqIEhUTUwgbmF0aXZvLiBNZW1vaXphZG8gcG9yIHJlZmVyZW5jaWEgZGUgZmllbGQgcGFyYSBubyByb21wZXIgbGEgaWRlbnRpZGFkLlxuICAgKi9cbiAgZ2V0VGV4dElucHV0UHJvcChmaWVsZDogSW5wdXRNZXRhZGF0YSwgaW5wdXRUeXBlOiBOb25OdWxsYWJsZTxJbnB1dE1ldGFkYXRhWydpbnB1dFR5cGUnXT4pOiBJbnB1dE1ldGFkYXRhIHtcbiAgICBjb25zdCBjYWNoZWQgPSB0aGlzLnRleHRJbnB1dFByb3BNZW1vLmdldChmaWVsZCk7XG4gICAgaWYgKGNhY2hlZCkgcmV0dXJuIGNhY2hlZDtcblxuICAgIGNvbnN0IGJhc2UgPSB0aGlzLmdldEZpZWxkUHJvcChmaWVsZCk7XG4gICAgY29uc3QgcmVzdWx0OiBJbnB1dE1ldGFkYXRhID0geyAuLi5iYXNlLCBpbnB1dFR5cGUgfTtcbiAgICB0aGlzLnRleHRJbnB1dFByb3BNZW1vLnNldChmaWVsZCwgcmVzdWx0KTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIEFkYXB0ZXIgcGFyYSBTRUxFQ1Qg4oCUIGlndWFsIHF1ZSBgZ2V0RmllbGRQcm9wYCBwZXJvIGxpbXBpYSBgbGFiZWxgLlxuICAgKiB2YWwtZm9ybSB5YSByZW5kZXJpemEgZWwgdMOtdHVsbyBkZWwgY2FtcG8gY29uIGA8dmFsLXRpdGxlPmAgYXJyaWJhIGRlbCBpbnB1dDtcbiAgICogc2kgYWRlbcOhcyBwYXPDoXJhbW9zIGBsYWJlbGAgYWwgYDxpb24tc2VsZWN0PmAsIGVzdGUgbG8gcGludGEgREVOVFJPIGRlbCBwaWxsXG4gICAqIOKGkiByZWR1bmRhbmNpYSB2aXN1YWwgKFwiVGlwb1wiIGRvcyB2ZWNlcykuIFJldXNhIGVsIG1pc21vIG1lbW8gKGNvbiBsYSBlbnRyYWRhXG4gICAqIHlhIGxhYmVsLXN0cmlwcGVkKSBwYXJhIG5vIHJvbXBlciBsYSBpZGVudGlkYWQgZGUgcmVmZXJlbmNpYS5cbiAgICovXG4gIGdldFNlbGVjdFByb3AoZmllbGQ6IElucHV0TWV0YWRhdGEpOiBJbnB1dE1ldGFkYXRhIHtcbiAgICBjb25zdCBjYWNoZWQgPSB0aGlzLnNlbGVjdFByb3BNZW1vLmdldChmaWVsZCk7XG4gICAgaWYgKGNhY2hlZCkgcmV0dXJuIGNhY2hlZDtcblxuICAgIGNvbnN0IGJhc2UgPSB0aGlzLmdldEZpZWxkUHJvcChmaWVsZCk7XG4gICAgY29uc3QgcmVzdWx0OiBJbnB1dE1ldGFkYXRhID0geyAuLi5iYXNlLCBsYWJlbDogJycgfTtcbiAgICB0aGlzLnNlbGVjdFByb3BNZW1vLnNldChmaWVsZCwgcmVzdWx0KTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIEFkYXB0ZXIg4oCUIGNvbnZpZXJ0ZSB1biBgSW5wdXRNZXRhZGF0YWAgKGNvbiB0eXBlPUhBTkRMRSkgYSBgVXNlcm5hbWVJbnB1dE1ldGFkYXRhYC5cbiAgICogRWwgY2hlY2sgZGUgZGlzcG9uaWJpbGlkYWQgc2UgcmVzdWVsdmUgZGVudHJvIGRlbCBjb21wb25lbnQgKEF1dGhTZXJ2aWNlIGlueWVjdGFkbyk7XG4gICAqIGVsIGNhbGxlciBwdWVkZSBzb2JyZXNjcmliaXJsbyBwYXNhbmRvIGBmaWVsZC5lcnJvcnNgIG8gdW4gYFVzZXJuYW1lSW5wdXRNZXRhZGF0YWBcbiAgICogY3VzdG9tIHVzYW5kbyB0eXBlPVRFWFQgc2kgbmVjZXNpdGEgb3RyYSBmdWVudGUgZGUgdHJ1dGguXG4gICAqL1xuICBnZXRVc2VybmFtZVByb3AoZmllbGQ6IElucHV0TWV0YWRhdGEpOiBVc2VybmFtZUlucHV0TWV0YWRhdGEge1xuICAgIGNvbnN0IGNhY2hlZCA9IHRoaXMudXNlcm5hbWVQcm9wTWVtby5nZXQoZmllbGQpO1xuICAgIGlmIChjYWNoZWQpIHJldHVybiBjYWNoZWQ7XG5cbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5nZXRDb250cm9sKGZpZWxkLm5hbWUpO1xuICAgIGNvbnN0IHJlc3VsdDogVXNlcm5hbWVJbnB1dE1ldGFkYXRhID0ge1xuICAgICAgY29udHJvbDogY29udHJvbCBhcyBGb3JtQ29udHJvbDxzdHJpbmc+LFxuICAgICAgbGFiZWw6IGZpZWxkLmxhYmVsLFxuICAgICAgaGludDogZmllbGQuaGludCxcbiAgICAgIHBsYWNlaG9sZGVyOiBmaWVsZC5wbGFjZWhvbGRlcixcbiAgICAgIG1pbkxlbmd0aDogZmllbGQucmFuZ2U/Lm1pbixcbiAgICAgIG1heExlbmd0aDogZmllbGQucmFuZ2U/Lm1heCxcbiAgICAgIGVycm9yczogZmllbGQuZXJyb3JzLFxuICAgICAgc3RhdGU6IGZpZWxkLnN0YXRlLFxuICAgIH07XG4gICAgdGhpcy51c2VybmFtZVByb3BNZW1vLnNldChmaWVsZCwgcmVzdWx0KTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIEFkYXB0ZXIg4oCUIGNvbnZpZXJ0ZSB1biBgSW5wdXRNZXRhZGF0YWAgKGNvbiB0eXBlPURBVEVfUElDS0VSKSBhIGBEYXRlUGlja2VyTWV0YWRhdGFgLlxuICAgKiBsYWJlbC9oaW50IHNlIG9taXRlbiDigJQgdmFsLWZvcm0gbG9zIHJlbmRlcml6YSB2w61hIC5maWVsZC1uYW1lLy5maWVsZC1kZXNjcmlwdGlvbi5cbiAgICovXG4gIGdldERhdGVQaWNrZXJQcm9wKGZpZWxkOiBJbnB1dE1ldGFkYXRhKTogRGF0ZVBpY2tlck1ldGFkYXRhIHtcbiAgICBjb25zdCBjYWNoZWQgPSB0aGlzLmRhdGVQaWNrZXJQcm9wTWVtby5nZXQoZmllbGQpO1xuICAgIGlmIChjYWNoZWQpIHJldHVybiBjYWNoZWQ7XG5cbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5nZXRDb250cm9sKGZpZWxkLm5hbWUpIGFzIEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+O1xuICAgIGNvbnN0IHJlc3VsdDogRGF0ZVBpY2tlck1ldGFkYXRhID0ge1xuICAgICAgY29udHJvbCxcbiAgICAgIHBsYWNlaG9sZGVyOiBmaWVsZC5wbGFjZWhvbGRlciB8fCB1bmRlZmluZWQsXG4gICAgICB0b2tlbjogZmllbGQudG9rZW4sXG4gICAgfTtcbiAgICB0aGlzLmRhdGVQaWNrZXJQcm9wTWVtby5zZXQoZmllbGQsIHJlc3VsdCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGFwdGVyIOKAlCBjb252aWVydGUgdW4gYElucHV0TWV0YWRhdGFgIChjb24gdHlwZT1URVhUQVJFQSkgYSBgVGV4dGFyZWFJbnB1dE1ldGFkYXRhYC5cbiAgICogRGVmYXVsdHMgc2Vuc2F0b3M6IGF1dG9Hcm93ICsgY291bnRlciBoYWJpbGl0YWRvLCA0LTEyIHJvd3MuXG4gICAqL1xuICBnZXRUZXh0YXJlYVByb3AoZmllbGQ6IElucHV0TWV0YWRhdGEpOiBUZXh0YXJlYUlucHV0TWV0YWRhdGEge1xuICAgIGNvbnN0IGNhY2hlZCA9IHRoaXMudGV4dGFyZWFQcm9wTWVtby5nZXQoZmllbGQpO1xuICAgIGlmIChjYWNoZWQpIHJldHVybiBjYWNoZWQ7XG5cbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5nZXRDb250cm9sKGZpZWxkLm5hbWUpO1xuICAgIGNvbnN0IHJlc3VsdDogVGV4dGFyZWFJbnB1dE1ldGFkYXRhID0ge1xuICAgICAgY29udHJvbDogY29udHJvbCBhcyBGb3JtQ29udHJvbDxzdHJpbmc+LFxuICAgICAgbmFtZTogZmllbGQubmFtZSxcbiAgICAgIC8vIGxhYmVsIHZhY8OtbyDigJQgdmFsLWZvcm0geWEgcmVuZGVyaXphIGVsIHTDrXR1bG8gY29uIDx2YWwtdGl0bGU+IGFycmliYSBkZWxcbiAgICAgIC8vIGlucHV0LiBQYXNhcmxvIGFsIDxpb24tdGV4dGFyZWE+IGR1cGxpY2Fyw61hIGVsIHRleHRvIChcIkRlc2NyaXBjacOzblwiIHgyKS5cbiAgICAgIGxhYmVsOiAnJyxcbiAgICAgIGhpbnQ6IGZpZWxkLmhpbnQsXG4gICAgICBwbGFjZWhvbGRlcjogZmllbGQucGxhY2Vob2xkZXIsXG4gICAgICBhdXRvR3JvdzogdHJ1ZSxcbiAgICAgIG1pblJvd3M6IDQsXG4gICAgICBtYXhSb3dzOiAxMixcbiAgICAgIG1heExlbmd0aDogZmllbGQucmFuZ2U/Lm1heCA/PyAyMDAwLFxuICAgICAgc2hvd0NvdW50ZXI6IHRydWUsXG4gICAgICBjb3VudGVyRm9ybWF0OiAnY3VycmVudCcsXG4gICAgICBmaWxsOiAnb3V0bGluZScsXG4gICAgICBlcnJvcnM6IGZpZWxkLmVycm9ycyxcbiAgICAgIHN0YXRlOiBmaWVsZC5zdGF0ZSxcbiAgICB9O1xuICAgIHRoaXMudGV4dGFyZWFQcm9wTWVtby5zZXQoZmllbGQsIHJlc3VsdCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGdldCBpc0F0RW5kT2ZGb3JtKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc0F0RW5kKHRoaXMuZWxlbWVudFJlZik7XG4gIH1cblxuICAvKipcbiAgICogRnVlcnphIG1vc3RyYXIgbG9zIGVycm9yZXMgZGUgdmFsaWRhY2nDs24gKG1hcmNhIHRvZG9zIGxvcyBjb250cm9sZXMgY29tb1xuICAgKiB0b3VjaGVkKSB5IGRldnVlbHZlIHNpIGVsIGZvcm0gZXMgdsOhbGlkby4gUGVuc2FkbyBwYXJhIGVsIG1vZG8gYGNvbnRyb2xsZWRgOlxuICAgKiBlbCBob3N0IGxvIGludm9jYSBlbiBzdSBcIlNpZ3VpZW50ZVwiIHBhcmEgZ2F0ZWFyIGxhIG5hdmVnYWNpw7NuIGRlbCB3aXphcmQuXG4gICAqL1xuICB2YWxpZGF0ZSgpOiBib29sZWFuIHtcbiAgICB0aGlzLmZvcm0ubWFya0FsbEFzVG91Y2hlZCgpO1xuICAgIHJldHVybiB0aGlzLmZvcm0udmFsaWQ7XG4gIH1cblxuICAvKipcbiAgICogTWFyY2EgdG9kb3MgbG9zIGNvbnRyb2xlcyBjb21vIHRvdWNoZWQgKG11ZXN0cmEgZXJyb3Jlcykgc2luIGRldm9sdmVyIG5hZGEuXG4gICAqIEFsaWFzIHNlbcOhbnRpY28gZGUgbGEgcHJpbWVyYSBtaXRhZCBkZSBgdmFsaWRhdGUoKWAuXG4gICAqL1xuICBtYXJrQWxsVG91Y2hlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm0ubWFya0FsbEFzVG91Y2hlZCgpO1xuICB9XG5cbiAgZ2V0IEZvcm0oKTogRm9ybUdyb3VwIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtO1xuICB9XG5cbiAgZ2V0IEZvcm1TdGF0ZSgpOiB7IGZvcm06IEZvcm1Hcm91cDsgZGF0YTogRm9ybU1ldGFkYXRhIH0ge1xuICAgIHJldHVybiB7XG4gICAgICBmb3JtOiB0aGlzLkZvcm0sXG4gICAgICBkYXRhOiB0aGlzLnByb3BzLFxuICAgIH07XG4gIH1cblxuICBnZXQgYWN0aW9ucygpOiBCdXR0b25NZXRhZGF0YVtdIHtcbiAgICAvLyBSZXRvcm5hciBkZWwgY2FjaGUgcGFyYSBldml0YXIgY3JlYXIgbnVldm9zIG9iamV0b3MgZW4gY2FkYSBjaWNsbyBkZSBjaGFuZ2UgZGV0ZWN0aW9uXG4gICAgcmV0dXJuIHRoaXMuYWN0aW9uc0NhY2hlO1xuICB9XG59XG4iXX0=
|
package/esm2022/lib/components/organisms/invite-member-modal/invite-member-modal.component.mjs
CHANGED
|
@@ -374,8 +374,14 @@ export class InviteMemberModalComponent {
|
|
|
374
374
|
</div>
|
|
375
375
|
}
|
|
376
376
|
</div>
|
|
377
|
+
|
|
378
|
+
<div class="modal-close-bottom">
|
|
379
|
+
<ion-button expand="block" fill="outline" color="dark" (click)="dismiss()">
|
|
380
|
+
{{ t('close') }}
|
|
381
|
+
</ion-button>
|
|
382
|
+
</div>
|
|
377
383
|
</ion-content>
|
|
378
|
-
`, isInline: true, styles: ["ion-content{--padding-bottom: 24px}val-display{margin-bottom:4px;display:block}val-title{margin-bottom:8px;display:block}.role-select-wrap{margin-bottom:12px}.role-select{width:100%}val-searchbar{display:block;margin-bottom:4px}.search-section{display:flex;flex-direction:column;gap:14px}.search-state{display:flex;align-items:center;gap:10px;padding:12px 0;color:var(--ion-color-medium);font-size:.88rem}.email-invite-card{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:12px;border:1.5px solid var(--ion-color-primary);background:color-mix(in srgb,var(--ion-color-primary) 8%,transparent)}.email-icon{font-size:24px;color:var(--ion-color-primary);flex-shrink:0}.email-invite-text{display:flex;flex-direction:column;gap:2px}.email-invite-label{font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--ion-color-medium)}.email-invite-address{font-weight:600;font-size:.95rem;color:var(--ion-color-dark);word-break:break-all}.results-list{display:flex;flex-direction:column;gap:8px}.result-card{display:flex;align-items:center;gap:14px;padding:12px 14px;border-radius:12px;background:var(--ion-color-light, #f4f5f8);cursor:pointer;transition:opacity .15s}.result-card:active{opacity:.7}:host-context(body.dark) .result-card,:host-context(html.ion-palette-dark) .result-card,:host-context([data-theme=\"dark\"]) .result-card{background:#ffffff0d}.result-card__avatar{width:40px;height:40px;border-radius:50%;background:color-mix(in srgb,var(--ion-color-primary) 15%,transparent);display:flex;align-items:center;justify-content:center;font-size:20px;color:var(--ion-color-primary);flex-shrink:0}.result-card__body{display:flex;flex-direction:column;gap:2px}.result-card__name{font-weight:600;font-size:.9rem;color:var(--ion-color-dark)}.result-card__handle{font-size:.78rem;color:var(--ion-color-medium)}.result-card--selected{border:1.5px solid var(--ion-color-primary);background:color-mix(in srgb,var(--ion-color-primary) 8%,transparent)}.result-card__check{flex-shrink:0;margin-left:auto}.check-on{font-size:22px;color:var(--ion-color-primary)}.check-off{width:22px;height:22px;border-radius:50%;border:2px solid var(--ion-color-medium)}.selected-section{border-top:1px solid var(--val-border-color, rgba(0, 0, 0, .08));padding-top:14px;display:flex;flex-direction:column;gap:10px}.selected-section__label{font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--ion-color-medium)}.selected-chips{display:flex;flex-wrap:wrap;gap:6px}.selected-chip{display:flex;align-items:center;gap:4px;padding:4px 10px 4px 12px;border-radius:20px;background:color-mix(in srgb,var(--ion-color-primary) 12%,transparent);color:var(--ion-color-primary);font-size:.82rem;font-weight:600}.selected-chip__remove{border:none;background:none;cursor:pointer;font-size:1rem;line-height:1;color:var(--ion-color-primary);padding:0 2px;opacity:.7}.selected-chip__remove:hover{opacity:1}\n"], dependencies: [{ kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: ButtonComponent, selector: "val-button", inputs: ["preset", "props"], outputs: ["onClick"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: EmptyStateComponent, selector: "val-empty-state", inputs: ["props"] }, { kind: "component", type: SearchbarComponent, selector: "val-searchbar", inputs: ["preset", "props"], outputs: ["filterEvent", "focusEvent", "blurEvent"] }, { kind: "component", type: SearchSelectorComponent, selector: "val-select-input", inputs: ["preset", "props"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }] }); }
|
|
384
|
+
`, isInline: true, styles: ["ion-content{--padding-bottom: 24px}val-display{margin-bottom:4px;display:block}val-title{margin-bottom:8px;display:block}.role-select-wrap{margin-bottom:12px}.role-select{width:100%}val-searchbar{display:block;margin-bottom:4px}.search-section{display:flex;flex-direction:column;gap:14px}.search-state{display:flex;align-items:center;gap:10px;padding:12px 0;color:var(--ion-color-medium);font-size:.88rem}.email-invite-card{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:12px;border:1.5px solid var(--ion-color-primary);background:color-mix(in srgb,var(--ion-color-primary) 8%,transparent)}.email-icon{font-size:24px;color:var(--ion-color-primary);flex-shrink:0}.email-invite-text{display:flex;flex-direction:column;gap:2px}.email-invite-label{font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--ion-color-medium)}.email-invite-address{font-weight:600;font-size:.95rem;color:var(--ion-color-dark);word-break:break-all}.results-list{display:flex;flex-direction:column;gap:8px}.result-card{display:flex;align-items:center;gap:14px;padding:12px 14px;border-radius:12px;background:var(--ion-color-light, #f4f5f8);cursor:pointer;transition:opacity .15s}.result-card:active{opacity:.7}:host-context(body.dark) .result-card,:host-context(html.ion-palette-dark) .result-card,:host-context([data-theme=\"dark\"]) .result-card{background:#ffffff0d}.result-card__avatar{width:40px;height:40px;border-radius:50%;background:color-mix(in srgb,var(--ion-color-primary) 15%,transparent);display:flex;align-items:center;justify-content:center;font-size:20px;color:var(--ion-color-primary);flex-shrink:0}.result-card__body{display:flex;flex-direction:column;gap:2px}.result-card__name{font-weight:600;font-size:.9rem;color:var(--ion-color-dark)}.result-card__handle{font-size:.78rem;color:var(--ion-color-medium)}.result-card--selected{border:1.5px solid var(--ion-color-primary);background:color-mix(in srgb,var(--ion-color-primary) 8%,transparent)}.result-card__check{flex-shrink:0;margin-left:auto}.check-on{font-size:22px;color:var(--ion-color-primary)}.check-off{width:22px;height:22px;border-radius:50%;border:2px solid var(--ion-color-medium)}.selected-section{border-top:1px solid var(--val-border-color, rgba(0, 0, 0, .08));padding-top:14px;display:flex;flex-direction:column;gap:10px}.selected-section__label{font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--ion-color-medium)}.selected-chips{display:flex;flex-wrap:wrap;gap:6px}.selected-chip{display:flex;align-items:center;gap:4px;padding:4px 10px 4px 12px;border-radius:20px;background:color-mix(in srgb,var(--ion-color-primary) 12%,transparent);color:var(--ion-color-primary);font-size:.82rem;font-weight:600}.selected-chip__remove{border:none;background:none;cursor:pointer;font-size:1rem;line-height:1;color:var(--ion-color-primary);padding:0 2px;opacity:.7}.selected-chip__remove:hover{opacity:1}.modal-close-bottom{margin-top:16px}\n"], dependencies: [{ kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: ButtonComponent, selector: "val-button", inputs: ["preset", "props"], outputs: ["onClick"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: EmptyStateComponent, selector: "val-empty-state", inputs: ["props"] }, { kind: "component", type: SearchbarComponent, selector: "val-searchbar", inputs: ["preset", "props"], outputs: ["filterEvent", "focusEvent", "blurEvent"] }, { kind: "component", type: SearchSelectorComponent, selector: "val-select-input", inputs: ["preset", "props"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }] }); }
|
|
379
385
|
}
|
|
380
386
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InviteMemberModalComponent, decorators: [{
|
|
381
387
|
type: Component,
|
|
@@ -509,8 +515,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
509
515
|
</div>
|
|
510
516
|
}
|
|
511
517
|
</div>
|
|
518
|
+
|
|
519
|
+
<div class="modal-close-bottom">
|
|
520
|
+
<ion-button expand="block" fill="outline" color="dark" (click)="dismiss()">
|
|
521
|
+
{{ t('close') }}
|
|
522
|
+
</ion-button>
|
|
523
|
+
</div>
|
|
512
524
|
</ion-content>
|
|
513
|
-
`, styles: ["ion-content{--padding-bottom: 24px}val-display{margin-bottom:4px;display:block}val-title{margin-bottom:8px;display:block}.role-select-wrap{margin-bottom:12px}.role-select{width:100%}val-searchbar{display:block;margin-bottom:4px}.search-section{display:flex;flex-direction:column;gap:14px}.search-state{display:flex;align-items:center;gap:10px;padding:12px 0;color:var(--ion-color-medium);font-size:.88rem}.email-invite-card{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:12px;border:1.5px solid var(--ion-color-primary);background:color-mix(in srgb,var(--ion-color-primary) 8%,transparent)}.email-icon{font-size:24px;color:var(--ion-color-primary);flex-shrink:0}.email-invite-text{display:flex;flex-direction:column;gap:2px}.email-invite-label{font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--ion-color-medium)}.email-invite-address{font-weight:600;font-size:.95rem;color:var(--ion-color-dark);word-break:break-all}.results-list{display:flex;flex-direction:column;gap:8px}.result-card{display:flex;align-items:center;gap:14px;padding:12px 14px;border-radius:12px;background:var(--ion-color-light, #f4f5f8);cursor:pointer;transition:opacity .15s}.result-card:active{opacity:.7}:host-context(body.dark) .result-card,:host-context(html.ion-palette-dark) .result-card,:host-context([data-theme=\"dark\"]) .result-card{background:#ffffff0d}.result-card__avatar{width:40px;height:40px;border-radius:50%;background:color-mix(in srgb,var(--ion-color-primary) 15%,transparent);display:flex;align-items:center;justify-content:center;font-size:20px;color:var(--ion-color-primary);flex-shrink:0}.result-card__body{display:flex;flex-direction:column;gap:2px}.result-card__name{font-weight:600;font-size:.9rem;color:var(--ion-color-dark)}.result-card__handle{font-size:.78rem;color:var(--ion-color-medium)}.result-card--selected{border:1.5px solid var(--ion-color-primary);background:color-mix(in srgb,var(--ion-color-primary) 8%,transparent)}.result-card__check{flex-shrink:0;margin-left:auto}.check-on{font-size:22px;color:var(--ion-color-primary)}.check-off{width:22px;height:22px;border-radius:50%;border:2px solid var(--ion-color-medium)}.selected-section{border-top:1px solid var(--val-border-color, rgba(0, 0, 0, .08));padding-top:14px;display:flex;flex-direction:column;gap:10px}.selected-section__label{font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--ion-color-medium)}.selected-chips{display:flex;flex-wrap:wrap;gap:6px}.selected-chip{display:flex;align-items:center;gap:4px;padding:4px 10px 4px 12px;border-radius:20px;background:color-mix(in srgb,var(--ion-color-primary) 12%,transparent);color:var(--ion-color-primary);font-size:.82rem;font-weight:600}.selected-chip__remove{border:none;background:none;cursor:pointer;font-size:1rem;line-height:1;color:var(--ion-color-primary);padding:0 2px;opacity:.7}.selected-chip__remove:hover{opacity:1}\n"] }]
|
|
525
|
+
`, styles: ["ion-content{--padding-bottom: 24px}val-display{margin-bottom:4px;display:block}val-title{margin-bottom:8px;display:block}.role-select-wrap{margin-bottom:12px}.role-select{width:100%}val-searchbar{display:block;margin-bottom:4px}.search-section{display:flex;flex-direction:column;gap:14px}.search-state{display:flex;align-items:center;gap:10px;padding:12px 0;color:var(--ion-color-medium);font-size:.88rem}.email-invite-card{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:12px;border:1.5px solid var(--ion-color-primary);background:color-mix(in srgb,var(--ion-color-primary) 8%,transparent)}.email-icon{font-size:24px;color:var(--ion-color-primary);flex-shrink:0}.email-invite-text{display:flex;flex-direction:column;gap:2px}.email-invite-label{font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--ion-color-medium)}.email-invite-address{font-weight:600;font-size:.95rem;color:var(--ion-color-dark);word-break:break-all}.results-list{display:flex;flex-direction:column;gap:8px}.result-card{display:flex;align-items:center;gap:14px;padding:12px 14px;border-radius:12px;background:var(--ion-color-light, #f4f5f8);cursor:pointer;transition:opacity .15s}.result-card:active{opacity:.7}:host-context(body.dark) .result-card,:host-context(html.ion-palette-dark) .result-card,:host-context([data-theme=\"dark\"]) .result-card{background:#ffffff0d}.result-card__avatar{width:40px;height:40px;border-radius:50%;background:color-mix(in srgb,var(--ion-color-primary) 15%,transparent);display:flex;align-items:center;justify-content:center;font-size:20px;color:var(--ion-color-primary);flex-shrink:0}.result-card__body{display:flex;flex-direction:column;gap:2px}.result-card__name{font-weight:600;font-size:.9rem;color:var(--ion-color-dark)}.result-card__handle{font-size:.78rem;color:var(--ion-color-medium)}.result-card--selected{border:1.5px solid var(--ion-color-primary);background:color-mix(in srgb,var(--ion-color-primary) 8%,transparent)}.result-card__check{flex-shrink:0;margin-left:auto}.check-on{font-size:22px;color:var(--ion-color-primary)}.check-off{width:22px;height:22px;border-radius:50%;border:2px solid var(--ion-color-medium)}.selected-section{border-top:1px solid var(--val-border-color, rgba(0, 0, 0, .08));padding-top:14px;display:flex;flex-direction:column;gap:10px}.selected-section__label{font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--ion-color-medium)}.selected-chips{display:flex;flex-wrap:wrap;gap:6px}.selected-chip{display:flex;align-items:center;gap:4px;padding:4px 10px 4px 12px;border-radius:20px;background:color-mix(in srgb,var(--ion-color-primary) 12%,transparent);color:var(--ion-color-primary);font-size:.82rem;font-weight:600}.selected-chip__remove{border:none;background:none;cursor:pointer;font-size:1rem;line-height:1;color:var(--ion-color-primary);padding:0 2px;opacity:.7}.selected-chip__remove:hover{opacity:1}.modal-close-bottom{margin-top:16px}\n"] }]
|
|
514
526
|
}], ctorParameters: () => [], propDecorators: { _modalRef: [{
|
|
515
527
|
type: Input
|
|
516
528
|
}], orgId: [{
|
|
@@ -522,4 +534,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
522
534
|
}], i18nNamespace: [{
|
|
523
535
|
type: Input
|
|
524
536
|
}] } });
|
|
525
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52aXRlLW1lbWJlci1tb2RhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2ludml0ZS1tZW1iZXItbW9kYWwvaW52aXRlLW1lbWJlci1tb2RhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM3RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RFLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssSUFBSSxPQUFPLEVBQ2hCLE9BQU8sRUFDUCxPQUFPLEVBQ1AsS0FBSyxFQUNMLEtBQUssRUFDTCxPQUFPLEdBQ1IsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixVQUFVLEVBQ1YsU0FBUyxFQUNULE9BQU8sRUFDUCxVQUFVLEVBQ1YsVUFBVSxHQUNYLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1B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LENBQUM7K0dBL1BVLDBCQUEwQjttR0FBMUIsMEJBQTBCLHVPQXpTM0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtSFQsbzlGQW5JQyxTQUFTLG9HQUNULFVBQVUsbUZBQ1YsVUFBVSw4RUFDVixTQUFTLG9QQUNULFVBQVUsd0tBQ1YsVUFBVSx5R0FDVixPQUFPLDBKQUNQLG1CQUFtQiwrQkFDbkIsZUFBZSwwR0FDZixnQkFBZ0IsMkVBQ2hCLG1CQUFtQiwrRUFDbkIsa0JBQWtCLDRJQUNsQix1QkFBdUIsMEZBRXZCLGNBQWM7OzRGQTJTTCwwQkFBMEI7a0JBN1R0QyxTQUFTOytCQUNFLHlCQUF5QixjQUN2QixJQUFJLFdBQ1A7d0JBQ1AsU0FBUzt3QkFDVCxVQUFVO3dCQUNWLFVBQVU7d0JBQ1YsU0FBUzt3QkFDVCxVQUFVO3dCQUNWLFVBQVU7d0JBQ1YsT0FBTzt3QkFDUCxtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixtQkFBbUI7d0JBQ25CLGtCQUFrQjt3QkFDbEIsdUJBQXVCO3dCQUN2QixhQUFhO3dCQUNiLGNBQWM7cUJBQ2YsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1IVDt3REErTFEsU0FBUztzQkFBakIsS0FBSztnQkFHRyxLQUFLO3NCQUFiLEtBQUs7Z0JBR0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUdHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0csYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGluamVjdCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20sIGZvcmtKb2luLCBmcm9tLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gIEZpcmVzdG9yZSxcbiAgY29sbGVjdGlvbixcbiAgcXVlcnkgYXMgZnNRdWVyeSxcbiAgb3JkZXJCeSxcbiAgc3RhcnRBdCxcbiAgZW5kQXQsXG4gIGxpbWl0LFxuICBnZXREb2NzLFxufSBmcm9tICdAYW5ndWxhci9maXJlL2ZpcmVzdG9yZSc7XG5pbXBvcnQge1xuICBJb25CdXR0b24sXG4gIElvbkJ1dHRvbnMsXG4gIElvbkNvbnRlbnQsXG4gIElvbkhlYWRlcixcbiAgSW9uSWNvbixcbiAgSW9uU3Bpbm5lcixcbiAgSW9uVG9vbGJhcixcbn0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBhZGRJY29ucyB9IGZyb20gJ2lvbmljb25zJztcbmltcG9ydCB7IGNoZWNrbWFya0NpcmNsZU91dGxpbmUsIGNsb3NlT3V0bGluZSwgbWFpbE91dGxpbmUsIHBlcnNvbk91dGxpbmUgfSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5cbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IERpc3BsYXlDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9kaXNwbGF5L2Rpc3BsYXkuY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy90ZXh0L3RleHQuY29tcG9uZW50JztcbmltcG9ydCB7IFRpdGxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdGl0bGUvdGl0bGUuY29tcG9uZW50JztcbmltcG9ydCB7IEVtcHR5U3RhdGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvZW1wdHktc3RhdGUvZW1wdHktc3RhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IFNlYXJjaGJhckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9zZWFyY2hiYXIvc2VhcmNoYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWFyY2hTZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9zZWxlY3QtaW5wdXQvc2VsZWN0LWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCdXR0b25NZXRhZGF0YSwgQ29tcG9uZW50U3RhdGVzLCBJbnB1dE1ldGFkYXRhLCBJbnB1dFR5cGUgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXV0aC9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IE9yZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9vcmcvb3JnLnNlcnZpY2UnO1xuaW1wb3J0IHsgT3JnUm9sZSwgcmVzb2x2ZVJvbGVMYWJlbCwgU1lTVEVNX1JPTEVfREVGQVVMVFMgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9vcmcvdHlwZXMnO1xuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdG9hc3Quc2VydmljZSc7XG5pbXBvcnQgeyBWYWx0ZWNoRXJyb3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZXJyb3JzL3ZhbHRlY2gtZXJyb3Iuc2VydmljZSc7XG5cbmltcG9ydCB7IElOVklURV9NRU1CRVJfTU9EQUxfSTE4TiB9IGZyb20gJy4vaW52aXRlLW1lbWJlci1tb2RhbC5pMThuJztcblxuY29uc3QgREVGQVVMVF9OQU1FU1BBQ0UgPSAnSW52aXRlTW9kYWwnO1xuXG5pbnRlcmZhY2UgUHVibGljVXNlclByb2ZpbGUge1xuICB1c2VySWQ6IHN0cmluZztcbiAgaGFuZGxlPzogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xufVxuXG5hZGRJY29ucyh7IHBlcnNvbk91dGxpbmUsIG1haWxPdXRsaW5lLCBjbG9zZU91dGxpbmUsIGNoZWNrbWFya0NpcmNsZU91dGxpbmUgfSk7XG5cbi8qKlxuICogYHZhbC1pbnZpdGUtbWVtYmVyLW1vZGFsYCDigJQgaW52aXRhY2nDs24gZGUgbWllbWJyb3MgYSB1bmEgb3JnYW5pemFjacOzbi5cbiAqIFByb21vdmlkbyBkZXNkZSBgc2hvd2Nhc2VgIGJham8gZWwgcHJvY2VzbyBkZSBBRFItMDIxLlxuICpcbiAqIEJ1c2NhIHVzdWFyaW9zIHBvciBoYW5kbGUgZW4gRmlyZXN0b3JlIGAvcHJvZmlsZXNgIChtdWx0aS1zZWxlY3QpIG8gaW52aXRhIHBvclxuICogZW1haWwgY3VhbmRvIGVsIHF1ZXJ5IGVzIHVuIGNvcnJlbyB2w6FsaWRvLiBBc2lnbmEgZWwgcm9sIHNlbGVjY2lvbmFkbyB5IGVudsOtYSBsYVxuICogaW52aXRhY2nDs24gdsOtYSBgT3JnU2VydmljZS5pbnZpdGVVc2VyYC4gRXhjbHV5ZSBhbCB1c3VhcmlvIGFjdHVhbCB5IGEgbG9zXG4gKiBgZXhpc3RpbmdNZW1iZXJJZHNgIGRlIGxvcyByZXN1bHRhZG9zLlxuICpcbiAqIEFiaWVydG8gdsOtYSBgTW9kYWxTZXJ2aWNlYCDigJQgcmVjaWJlIGBfbW9kYWxSZWZgIHBvciBgY29tcG9uZW50UHJvcHNgICsgY2FsbGJhY2tcbiAqIGBvblN1Y2Nlc3NgLiBIZWFkZXIgY2Fuw7NuaWNvIChSZWdsYSAjNSk6IHNpbiBgaW9uLXRpdGxlYCwgYm90w7NuIENlcnJhciB0ZXh0byBlblxuICogYHNsb3Q9ZW5kYCwgdMOtdHVsby9zdWJ0w610dWxvIGVuIGVsIGJvZHkgY29uIGB2YWwtZGlzcGxheWAvYHZhbC10aXRsZWAuXG4gKlxuICogQXV0by1yZWdpc3RyYSBzdXMgZGVmYXVsdHMgaTE4biAoZXMvZW4pIHNpIGVsIGNvbnN1bWVyIG5vIHByb3ZlecOzIGVsIG5hbWVzcGFjZVxuICogYEludml0ZU1vZGFsYC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWludml0ZS1tZW1iZXItbW9kYWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgSW9uSGVhZGVyLFxuICAgIElvblRvb2xiYXIsXG4gICAgSW9uQnV0dG9ucyxcbiAgICBJb25CdXR0b24sXG4gICAgSW9uQ29udGVudCxcbiAgICBJb25TcGlubmVyLFxuICAgIElvbkljb24sXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBCdXR0b25Db21wb25lbnQsXG4gICAgRGlzcGxheUNvbXBvbmVudCxcbiAgICBFbXB0eVN0YXRlQ29tcG9uZW50LFxuICAgIFNlYXJjaGJhckNvbXBvbmVudCxcbiAgICBTZWFyY2hTZWxlY3RvckNvbXBvbmVudCxcbiAgICBUZXh0Q29tcG9uZW50LFxuICAgIFRpdGxlQ29tcG9uZW50LFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxpb24taGVhZGVyPlxuICAgICAgPGlvbi10b29sYmFyPlxuICAgICAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cImVuZFwiPlxuICAgICAgICAgIDxpb24tYnV0dG9uIGZpbGw9XCJjbGVhclwiIGNvbG9yPVwiZGFya1wiIChjbGljayk9XCJkaXNtaXNzKClcIj5cbiAgICAgICAgICAgIDxzdHJvbmc+e3sgdCgnY2xvc2UnKSB9fTwvc3Ryb25nPlxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPC9pb24tYnV0dG9ucz5cbiAgICAgIDwvaW9uLXRvb2xiYXI+XG4gICAgPC9pb24taGVhZGVyPlxuXG4gICAgPGlvbi1jb250ZW50IGNsYXNzPVwiaW9uLXBhZGRpbmdcIj5cbiAgICAgIDx2YWwtZGlzcGxheSBbcHJvcHNdPVwieyBjb250ZW50OiB0KCd0aXRsZScpLCBzaXplOiAnc21hbGwnLCBjb2xvcjogJ2RhcmsnIH1cIiAvPlxuICAgICAgPHZhbC10aXRsZVxuICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgIGNvbnRlbnQ6IHQoJ3N1YnRpdGxlJyksXG4gICAgICAgICAgc2l6ZTogJ2xhcmdlJyxcbiAgICAgICAgICBjb2xvcjogJycsXG4gICAgICAgICAgYm9sZDogZmFsc2UsXG4gICAgICAgIH1cIlxuICAgICAgLz5cblxuICAgICAgPGRpdiBjbGFzcz1cInJvbGUtc2VsZWN0LXdyYXBcIj5cbiAgICAgICAgPHZhbC10aXRsZVxuICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICBjb250ZW50OiB0KCdyb2xlTGFiZWwnKSxcbiAgICAgICAgICAgIHNpemU6ICdzbWFsbCcsXG4gICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgYm9sZDogZmFsc2UsXG4gICAgICAgICAgfVwiXG4gICAgICAgIC8+XG4gICAgICAgIDx2YWwtc2VsZWN0LWlucHV0IGRhdGEtdGVzdGlkPVwiaW52aXRlLXJvbGUtc2VsZWN0XCIgW3Byb3BzXT1cInJvbGVTZWxlY3RQcm9wcygpXCIgLz5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLXNlY3Rpb25cIj5cbiAgICAgICAgPHZhbC1zZWFyY2hiYXJcbiAgICAgICAgICBkYXRhLXRlc3RpZD1cImludml0ZS1zZWFyY2hcIlxuICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICBwbGFjZWhvbGRlcjogdCgnc2VhcmNoUGxhY2Vob2xkZXInKSxcbiAgICAgICAgICAgIGRlYm91bmNlOiAzNTAsXG4gICAgICAgICAgICBzaG93Q2FuY2VsQnV0dG9uOiAnbmV2ZXInLFxuICAgICAgICAgIH1cIlxuICAgICAgICAgIChmaWx0ZXJFdmVudCk9XCJvblF1ZXJ5Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAvPlxuXG4gICAgICAgIEBpZiAoc2VhcmNoaW5nKCkpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLXN0YXRlXCI+XG4gICAgICAgICAgICA8aW9uLXNwaW5uZXIgbmFtZT1cImNyZXNjZW50XCIgLz5cbiAgICAgICAgICAgIDxzcGFuPnt7IHQoJ3NlYXJjaGluZ0xhYmVsJykgfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH0gQGVsc2UgaWYgKGlzRW1haWwoKSkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbWFpbC1pbnZpdGUtY2FyZFwiPlxuICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJtYWlsLW91dGxpbmVcIiBjbGFzcz1cImVtYWlsLWljb25cIiAvPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVtYWlsLWludml0ZS10ZXh0XCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZW1haWwtaW52aXRlLWxhYmVsXCI+e3sgdCgnaW52aXRlQnlFbWFpbCcpIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImVtYWlsLWludml0ZS1hZGRyZXNzXCI+e3sgcXVlcnkoKS50cmltKCkgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8dmFsLWJ1dHRvbiBbcHJvcHNdPVwic2VuZEJ1dHRvblByb3BzKClcIiAoY2xpY2spPVwib25JbnZpdGVCeUVtYWlsKClcIiAvPlxuICAgICAgICB9IEBlbHNlIGlmIChxdWVyeSgpLmxlbmd0aCA+PSAyICYmIHNlYXJjaFJlc3VsdHMoKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICA8dmFsLWVtcHR5LXN0YXRlXG4gICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICB2YXJpYW50OiAnZW1wdHknLFxuICAgICAgICAgICAgICB0aXRsZTogdCgnbm9SZXN1bHRzJyksXG4gICAgICAgICAgICAgIGljb246ICdwZXJzb24tb3V0bGluZScsXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAvPlxuICAgICAgICB9IEBlbHNlIGlmIChzZWFyY2hSZXN1bHRzKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZXN1bHRzLWxpc3RcIj5cbiAgICAgICAgICAgIEBmb3IgKHVzZXIgb2Ygc2VhcmNoUmVzdWx0cygpOyB0cmFjayB1c2VyLnVzZXJJZCkge1xuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJyZXN1bHQtY2FyZFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuZGF0YS10ZXN0aWRdPVwiJ2ludml0ZS1yZXN1bHQtJyArIHVzZXIudXNlcklkXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MucmVzdWx0LWNhcmQtLXNlbGVjdGVkXT1cImlzU2VsZWN0ZWQodXNlci51c2VySWQpXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlVXNlcih1c2VyKVwiXG4gICAgICAgICAgICAgICAgcm9sZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWNoZWNrZWRdPVwiaXNTZWxlY3RlZCh1c2VyLnVzZXJJZClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlc3VsdC1jYXJkX19hdmF0YXJcIj5cbiAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwicGVyc29uLW91dGxpbmVcIiAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZXN1bHQtY2FyZF9fYm9keVwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZXN1bHQtY2FyZF9fbmFtZVwiPnt7IHVzZXIubmFtZSB8fCB1c2VyLmhhbmRsZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIEBpZiAodXNlci5oYW5kbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZXN1bHQtY2FyZF9faGFuZGxlXCI+JiM2NDt7eyB1c2VyLmhhbmRsZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVzdWx0LWNhcmRfX2NoZWNrXCI+XG4gICAgICAgICAgICAgICAgICBAaWYgKGlzU2VsZWN0ZWQodXNlci51c2VySWQpKSB7XG4gICAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2hlY2ttYXJrLWNpcmNsZS1vdXRsaW5lXCIgY2xhc3M9XCJjaGVjay1vblwiIC8+XG4gICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrLW9mZlwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoc2VsZWN0ZWRVc2VycygpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0ZWQtc2VjdGlvblwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZWxlY3RlZC1zZWN0aW9uX19sYWJlbFwiPnt7IHQoJ3NlbGVjdGVkTGFiZWwnKSB9fSAoe3sgc2VsZWN0ZWRVc2VycygpLmxlbmd0aCB9fSk8L3NwYW4+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0ZWQtY2hpcHNcIj5cbiAgICAgICAgICAgICAgQGZvciAodXNlciBvZiBzZWxlY3RlZFVzZXJzKCk7IHRyYWNrIHVzZXIudXNlcklkKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkLWNoaXBcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IHVzZXIuaGFuZGxlID8gJ0AnICsgdXNlci5oYW5kbGUgOiB1c2VyLm5hbWUgfHwgdXNlci51c2VySWQgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwic2VsZWN0ZWQtY2hpcF9fcmVtb3ZlXCIgKGNsaWNrKT1cInRvZ2dsZVVzZXIodXNlcilcIiBhcmlhLWxhYmVsPVwiUXVpdGFyXCI+JnRpbWVzOzwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDx2YWwtYnV0dG9uIFtwcm9wc109XCJzZW5kU2VsZWN0ZWRQcm9wcygpXCIgKGNsaWNrKT1cIm9uU2VuZFNlbGVjdGVkKClcIiAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L2lvbi1jb250ZW50PlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICBpb24tY29udGVudCB7XG4gICAgICAgIC0tcGFkZGluZy1ib3R0b206IDI0cHg7XG4gICAgICB9XG4gICAgICB2YWwtZGlzcGxheSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgICB2YWwtdGl0bGUge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgICAgLnJvbGUtc2VsZWN0LXdyYXAge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgICAgfVxuICAgICAgLnJvbGUtc2VsZWN0IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG4gICAgICB2YWwtc2VhcmNoYmFyIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICAgIH1cbiAgICAgIC5zZWFyY2gtc2VjdGlvbiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMTRweDtcbiAgICAgIH1cbiAgICAgIC5zZWFyY2gtc3RhdGUge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDEwcHg7XG4gICAgICAgIHBhZGRpbmc6IDEycHggMDtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1tZWRpdW0pO1xuICAgICAgICBmb250LXNpemU6IDAuODhyZW07XG4gICAgICB9XG4gICAgICAuZW1haWwtaW52aXRlLWNhcmQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDE0cHg7XG4gICAgICAgIHBhZGRpbmc6IDE0cHggMTZweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICAgICAgYm9yZGVyOiAxLjVweCBzb2xpZCB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSk7XG4gICAgICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSkgOCUsIHRyYW5zcGFyZW50KTtcbiAgICAgIH1cbiAgICAgIC5lbWFpbC1pY29uIHtcbiAgICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLXByaW1hcnkpO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIH1cbiAgICAgIC5lbWFpbC1pbnZpdGUtdGV4dCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMnB4O1xuICAgICAgfVxuICAgICAgLmVtYWlsLWludml0ZS1sYWJlbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43OHJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1tZWRpdW0pO1xuICAgICAgfVxuICAgICAgLmVtYWlsLWludml0ZS1hZGRyZXNzIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgZm9udC1zaXplOiAwLjk1cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gICAgICB9XG4gICAgICAucmVzdWx0cy1saXN0IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICB9XG4gICAgICAucmVzdWx0LWNhcmQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDE0cHg7XG4gICAgICAgIHBhZGRpbmc6IDEycHggMTRweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLWxpZ2h0LCAjZjRmNWY4KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzO1xuICAgICAgfVxuICAgICAgLnJlc3VsdC1jYXJkOmFjdGl2ZSB7XG4gICAgICAgIG9wYWNpdHk6IDAuNztcbiAgICAgIH1cbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAucmVzdWx0LWNhcmQsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLnJlc3VsdC1jYXJkLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAucmVzdWx0LWNhcmQge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpO1xuICAgICAgfVxuICAgICAgLnJlc3VsdC1jYXJkX19hdmF0YXIge1xuICAgICAgICB3aWR0aDogNDBweDtcbiAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSkgMTUlLCB0cmFuc3BhcmVudCk7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSk7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgfVxuICAgICAgLnJlc3VsdC1jYXJkX19ib2R5IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAycHg7XG4gICAgICB9XG4gICAgICAucmVzdWx0LWNhcmRfX25hbWUge1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrKTtcbiAgICAgIH1cbiAgICAgIC5yZXN1bHQtY2FyZF9faGFuZGxlIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjc4cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLW1lZGl1bSk7XG4gICAgICB9XG4gICAgICAucmVzdWx0LWNhcmQtLXNlbGVjdGVkIHtcbiAgICAgICAgYm9yZGVyOiAxLjVweCBzb2xpZCB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSk7XG4gICAgICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSkgOCUsIHRyYW5zcGFyZW50KTtcbiAgICAgIH1cbiAgICAgIC5yZXN1bHQtY2FyZF9fY2hlY2sge1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICB9XG4gICAgICAuY2hlY2stb24ge1xuICAgICAgICBmb250LXNpemU6IDIycHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSk7XG4gICAgICB9XG4gICAgICAuY2hlY2stb2ZmIHtcbiAgICAgICAgd2lkdGg6IDIycHg7XG4gICAgICAgIGhlaWdodDogMjJweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1pb24tY29sb3ItbWVkaXVtKTtcbiAgICAgIH1cbiAgICAgIC5zZWxlY3RlZC1zZWN0aW9uIHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLXZhbC1ib3JkZXItY29sb3IsIHJnYmEoMCwgMCwgMCwgMC4wOCkpO1xuICAgICAgICBwYWRkaW5nLXRvcDogMTRweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAxMHB4O1xuICAgICAgfVxuICAgICAgLnNlbGVjdGVkLXNlY3Rpb25fX2xhYmVsIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjc4cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wNGVtO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLW1lZGl1bSk7XG4gICAgICB9XG4gICAgICAuc2VsZWN0ZWQtY2hpcHMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGdhcDogNnB4O1xuICAgICAgfVxuICAgICAgLnNlbGVjdGVkLWNoaXAge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDRweDtcbiAgICAgICAgcGFkZGluZzogNHB4IDEwcHggNHB4IDEycHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSkgMTIlLCB0cmFuc3BhcmVudCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSk7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44MnJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIH1cbiAgICAgIC5zZWxlY3RlZC1jaGlwX19yZW1vdmUge1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1wcmltYXJ5KTtcbiAgICAgICAgcGFkZGluZzogMCAycHg7XG4gICAgICAgIG9wYWNpdHk6IDAuNztcbiAgICAgIH1cbiAgICAgIC5zZWxlY3RlZC1jaGlwX19yZW1vdmU6aG92ZXIge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEludml0ZU1lbWJlck1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIG9yZ1NlcnZpY2UgPSBpbmplY3QoT3JnU2VydmljZSk7XG4gIHByaXZhdGUgYXV0aCA9IGluamVjdChBdXRoU2VydmljZSk7XG4gIHByaXZhdGUgdG9hc3QgPSBpbmplY3QoVG9hc3RTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBlcnJvcnMgPSBpbmplY3QoVmFsdGVjaEVycm9yU2VydmljZSk7XG4gIHByaXZhdGUgZmlyZXN0b3JlID0gaW5qZWN0KEZpcmVzdG9yZSk7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG5cbiAgLyoqIElueWVjdGFkbyBwb3IgYE1vZGFsU2VydmljZS5vcGVuYCDigJQgcmVmZXJlbmNpYSBwYXJhIGNlcnJhciBkZXNkZSBkZW50cm8uICovXG4gIEBJbnB1dCgpIF9tb2RhbFJlZj86IHsgZGlzbWlzczogKGRhdGE/OiB1bmtub3duLCByb2xlPzogc3RyaW5nKSA9PiB2b2lkIH07XG5cbiAgLyoqIE9yZ2FuaXphY2nDs24gYSBsYSBxdWUgc2UgaW52aXRhLiAqL1xuICBASW5wdXQoKSBvcmdJZCA9ICcnO1xuXG4gIC8qKiBJZHMgZGUgbWllbWJyb3MgeWEgZXhpc3RlbnRlcyAoZXhjbHVpZG9zIGRlIGxvcyByZXN1bHRhZG9zKS4gKi9cbiAgQElucHV0KCkgZXhpc3RpbmdNZW1iZXJJZHM6IHN0cmluZ1tdID0gW107XG5cbiAgLyoqIENhbGxiYWNrIHRyYXMgZW52aWFyIGxhKHMpIGludml0YWNpw7NuKGVzKSAocGFzYWRvIHBvciBgY29tcG9uZW50UHJvcHNgKS4gKi9cbiAgQElucHV0KCkgb25TdWNjZXNzPzogKCkgPT4gdm9pZDtcblxuICAvKiogTmFtZXNwYWNlIGkxOG4gY29uIHF1ZSBsYSB2aXN0YSByZXN1ZWx2ZSBzdXMgdGV4dG9zLiAqL1xuICBASW5wdXQoKSBpMThuTmFtZXNwYWNlID0gREVGQVVMVF9OQU1FU1BBQ0U7XG5cbiAgcmVhZG9ubHkgcXVlcnkgPSBzaWduYWwoJycpO1xuICByZWFkb25seSBzZWFyY2hpbmcgPSBzaWduYWwoZmFsc2UpO1xuICByZWFkb25seSBzZWFyY2hSZXN1bHRzID0gc2lnbmFsPFB1YmxpY1VzZXJQcm9maWxlW10+KFtdKTtcbiAgcmVhZG9ubHkgc2VsZWN0ZWRVc2VycyA9IHNpZ25hbDxQdWJsaWNVc2VyUHJvZmlsZVtdPihbXSk7XG4gIHJlYWRvbmx5IHNlbmRpbmcgPSBzaWduYWwoZmFsc2UpO1xuICByZWFkb25seSBzZWxlY3RlZFJvbGUgPSBzaWduYWw8c3RyaW5nPigndmlld2VyJyk7XG4gIHJlYWRvbmx5IGF2YWlsYWJsZVJvbGVzID0gc2lnbmFsPE9yZ1JvbGVbXT4oU1lTVEVNX1JPTEVfREVGQVVMVFMpO1xuXG4gIHJlYWRvbmx5IHJvbGVDb250cm9sID0gbmV3IEZvcm1Db250cm9sPHN0cmluZz4oJ3ZpZXdlcicpO1xuXG4gIHJlYWRvbmx5IHJvbGVTZWxlY3RQcm9wcyA9IGNvbXB1dGVkPFBhcnRpYWw8SW5wdXRNZXRhZGF0YT4+KCgpID0+ICh7XG4gICAgY29udHJvbDogdGhpcy5yb2xlQ29udHJvbCBhcyBGb3JtQ29udHJvbCxcbiAgICBsYWJlbDogJycsXG4gICAgcGxhY2Vob2xkZXI6IHRoaXMudCgncm9sZUxhYmVsJyksXG4gICAgdHlwZTogSW5wdXRUeXBlLlNFTEVDVCxcbiAgICBzdGF0ZTogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gICAgb3B0aW9uczogdGhpcy5hdmFpbGFibGVSb2xlcygpLm1hcChyID0+ICh7XG4gICAgICBpZDogci5pZCxcbiAgICAgIG5hbWU6IHRoaXMucm9sZURpc3BsYXlOYW1lKHIpLFxuICAgICAgb3JkZXI6IDAsXG4gICAgfSkpLFxuICB9KSk7XG5cbiAgcmVhZG9ubHkgaXNFbWFpbCA9IGNvbXB1dGVkKCgpID0+IC9eW15cXHNAXStAW15cXHNAXStcXC5bXlxcc0BdKyQvLnRlc3QodGhpcy5xdWVyeSgpLnRyaW0oKSkpO1xuXG4gIHJlYWRvbmx5IHNlbmRCdXR0b25Qcm9wcyA9IGNvbXB1dGVkPFBhcnRpYWw8QnV0dG9uTWV0YWRhdGE+PigoKSA9PiAoe1xuICAgIHRleHQ6IHRoaXMudCgnc2VuZEludml0ZScpLFxuICAgIHRva2VuOiAnaW52aXRlLXN1Ym1pdC1lbWFpbCcsXG4gICAgY29sb3I6ICdwcmltYXJ5JyxcbiAgICBmaWxsOiAnc29saWQnLFxuICAgIGV4cGFuZDogJ2Jsb2NrJyxcbiAgICBzaXplOiAnZGVmYXVsdCcsXG4gICAgdHlwZTogJ2J1dHRvbicsXG4gICAgc3RhdGU6IHRoaXMuc2VuZGluZygpID8gQ29tcG9uZW50U3RhdGVzLldPUktJTkcgOiBDb21wb25lbnRTdGF0ZXMuRU5BQkxFRCxcbiAgfSkpO1xuXG4gIHJlYWRvbmx5IHNlbmRTZWxlY3RlZFByb3BzID0gY29tcHV0ZWQ8UGFydGlhbDxCdXR0b25NZXRhZGF0YT4+KCgpID0+ICh7XG4gICAgdGV4dDogYCR7dGhpcy50KCdzZW5kU2VsZWN0ZWQnKX0gKCR7dGhpcy5zZWxlY3RlZFVzZXJzKCkubGVuZ3RofSlgLFxuICAgIHRva2VuOiAnaW52aXRlLXN1Ym1pdCcsXG4gICAgY29sb3I6ICdwcmltYXJ5JyxcbiAgICBmaWxsOiAnc29saWQnLFxuICAgIGV4cGFuZDogJ2Jsb2NrJyxcbiAgICBzaXplOiAnZGVmYXVsdCcsXG4gICAgdHlwZTogJ2J1dHRvbicsXG4gICAgc3RhdGU6IHRoaXMuc2VuZGluZygpID8gQ29tcG9uZW50U3RhdGVzLldPUktJTkcgOiBDb21wb25lbnRTdGF0ZXMuRU5BQkxFRCxcbiAgfSkpO1xuXG4gIHByaXZhdGUgc2VhcmNoU3ViamVjdCA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcbiAgcHJpdmF0ZSByb2xlU3ViPzogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGlmICghdGhpcy5pMThuLmhhc05hbWVzcGFjZShERUZBVUxUX05BTUVTUEFDRSkpIHtcbiAgICAgIHRoaXMuaTE4bi5yZWdpc3RlckNvbnRlbnQoREVGQVVMVF9OQU1FU1BBQ0UsIElOVklURV9NRU1CRVJfTU9EQUxfSTE4Tik7XG4gICAgfVxuICAgIHRoaXMucm9sZVN1YiA9IHRoaXMucm9sZUNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2ID0+IHtcbiAgICAgIGlmICh2KSB0aGlzLnNlbGVjdGVkUm9sZS5zZXQodik7XG4gICAgfSk7XG5cbiAgICAvLyB2YWwtc2VhcmNoYmFyIGFscmVhZHkgZGVib3VuY2VzIC0tIHBpcGVsaW5lIG9ubHkgbmVlZHMgZGlzdGluY3RVbnRpbENoYW5nZWQgKyBzd2l0Y2hNYXBcbiAgICB0aGlzLnNlYXJjaFN1YmplY3RcbiAgICAgIC5waXBlKFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICBzd2l0Y2hNYXAocSA9PiB7XG4gICAgICAgICAgaWYgKCFxIHx8IHEubGVuZ3RoIDwgMiB8fCB0aGlzLmlzRW1haWwoKSkge1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoUmVzdWx0cy5zZXQoW10pO1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBCw7pzcXVlZGEgcG9yIHByZWZpam8gc29icmUgRE9TIGNhbXBvczogYGhhbmRsZWAgeSBgbmFtZUxvd2VyYC4gRmlyZXN0b3JlXG4gICAgICAgICAgLy8gbm8gc29wb3J0YSBPUiBlbnRyZSBjYW1wb3MgZW4gdW5hIHF1ZXJ5LCBhc8OtIHF1ZSBzZSBsYW56YW4gZG9zIHF1ZXJpZXMgZW5cbiAgICAgICAgICAvLyBwYXJhbGVsbyB5IHNlIG1lemNsYW4gKGRlZHVwIHBvciBpZCkuIEVsIHNlbnRpbmVsIGFsdG8g76O/IGNpZXJyYSBlbFxuICAgICAgICAgIC8vIHJhbmdvIGRlbCBwcmVmaWpvLiBgbmFtZUxvd2VyYCBsbyBlc2NyaWJlIGVsIGJhY2tlbmQgZW4gL3Byb2ZpbGVzXG4gICAgICAgICAgLy8gKE5vcm1hbGl6ZU5hbWVGb3JTZWFyY2g6IGxvd2VyY2FzZSArIGNvbGFwc28gZGUgZXNwYWNpb3MpOyBub3JtYWxpemFtb3MgZWxcbiAgICAgICAgICAvLyBxdWVyeSBpZ3VhbCBwYXJhIHF1ZSBlbCBwcmVmaWpvIG1hdGNoZWUuXG4gICAgICAgICAgY29uc3QgcHJvZmlsZXMgPSBjb2xsZWN0aW9uKHRoaXMuZmlyZXN0b3JlLCAncHJvZmlsZXMnKTtcbiAgICAgICAgICBjb25zdCBoYW5kbGVRID0gKHEuc3RhcnRzV2l0aCgnQCcpID8gcS5zbGljZSgxKSA6IHEpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgY29uc3QgbmFtZVEgPSBxLnRyaW0oKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1xccysvZywgJyAnKTtcblxuICAgICAgICAgIGNvbnN0IGJ5SGFuZGxlJCA9IGZyb20oXG4gICAgICAgICAgICBnZXREb2NzKGZzUXVlcnkocHJvZmlsZXMsIG9yZGVyQnkoJ2hhbmRsZScpLCBzdGFydEF0KGhhbmRsZVEpLCBlbmRBdChoYW5kbGVRICsgJ1xcdWY4ZmYnKSwgbGltaXQoOCkpKVxuICAgICAgICAgICk7XG4gICAgICAgICAgY29uc3QgYnlOYW1lJCA9IGZyb20oXG4gICAgICAgICAgICBnZXREb2NzKGZzUXVlcnkocHJvZmlsZXMsIG9yZGVyQnkoJ25hbWVMb3dlcicpLCBzdGFydEF0KG5hbWVRKSwgZW5kQXQobmFtZVEgKyAnXFx1ZjhmZicpLCBsaW1pdCg4KSkpXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIHJldHVybiBmb3JrSm9pbihbYnlIYW5kbGUkLCBieU5hbWUkXSkucGlwZShcbiAgICAgICAgICAgIG1hcCgoW2hhbmRsZVNuYXAsIG5hbWVTbmFwXSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBieUlkID0gbmV3IE1hcDxzdHJpbmcsIFB1YmxpY1VzZXJQcm9maWxlPigpO1xuICAgICAgICAgICAgICBmb3IgKGNvbnN0IGQgb2YgWy4uLmhhbmRsZVNuYXAuZG9jcywgLi4ubmFtZVNuYXAuZG9jc10pIHtcbiAgICAgICAgICAgICAgICBpZiAoYnlJZC5oYXMoZC5pZCkpIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGJ5SWQuc2V0KGQuaWQsIHtcbiAgICAgICAgICAgICAgICAgIHVzZXJJZDogZC5pZCxcbiAgICAgICAgICAgICAgICAgIGhhbmRsZTogZC5kYXRhKClbJ2hhbmRsZSddIGFzIHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgIG5hbWU6IGQuZGF0YSgpWyduYW1lJ10gYXMgc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiB7IHVzZXJzOiBBcnJheS5mcm9tKGJ5SWQudmFsdWVzKCkpLnNsaWNlKDAsIDgpIH07XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogcmVzID0+IHtcbiAgICAgICAgICBpZiAocmVzICYmICd1c2VycycgaW4gcmVzKSB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50VXNlcklkID0gdGhpcy5hdXRoLnVzZXIoKT8udXNlcklkO1xuICAgICAgICAgICAgY29uc3QgZXhjbHVkZWQgPSBuZXcgU2V0KFsuLi4oY3VycmVudFVzZXJJZCA/IFtjdXJyZW50VXNlcklkXSA6IFtdKSwgLi4udGhpcy5leGlzdGluZ01lbWJlcklkc10pO1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hSZXN1bHRzLnNldChyZXMudXNlcnMuZmlsdGVyKHUgPT4gIWV4Y2x1ZGVkLmhhcyh1LnVzZXJJZCkpKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5zZWFyY2hpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnNlYXJjaFJlc3VsdHMuc2V0KFtdKTtcbiAgICAgICAgICB0aGlzLnNlYXJjaGluZy5zZXQoZmFsc2UpO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gIH1cblxuICBvblF1ZXJ5Q2hhbmdlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnF1ZXJ5LnNldCh2YWx1ZSA/PyAnJyk7XG4gICAgaWYgKCF0aGlzLmlzRW1haWwoKSAmJiAodmFsdWUgPz8gJycpLmxlbmd0aCA+PSAyKSB7XG4gICAgICB0aGlzLnNlYXJjaGluZy5zZXQodHJ1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VhcmNoaW5nLnNldChmYWxzZSk7XG4gICAgICB0aGlzLnNlYXJjaFJlc3VsdHMuc2V0KFtdKTtcbiAgICB9XG4gICAgdGhpcy5zZWFyY2hTdWJqZWN0Lm5leHQodmFsdWUgPz8gJycpO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkUm9sZXMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm9yZ0lkKSByZXR1cm47XG4gICAgdGhpcy5vcmdTZXJ2aWNlLmxpc3RPcmdSb2xlcyh0aGlzLm9yZ0lkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogcm9sZXMgPT4ge1xuICAgICAgICBpZiAocm9sZXMubGVuZ3RoKSB0aGlzLmF2YWlsYWJsZVJvbGVzLnNldChyb2xlcyk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcm9sZURpc3BsYXlOYW1lKHJvbGU6IE9yZ1JvbGUpOiBzdHJpbmcge1xuICAgIHJldHVybiByZXNvbHZlUm9sZUxhYmVsKHJvbGUsIHRoaXMuaTE4bi5sYW5nKCkpO1xuICB9XG5cbiAgYXN5bmMgb25JbnZpdGVCeUVtYWlsKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGVtYWlsID0gdGhpcy5xdWVyeSgpLnRyaW0oKTtcbiAgICBpZiAoIWVtYWlsIHx8IHRoaXMuc2VuZGluZygpKSByZXR1cm47XG4gICAgdGhpcy5zZW5kaW5nLnNldCh0cnVlKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gICAgICAgIHRoaXMub3JnU2VydmljZS5pbnZpdGVVc2VyKHRoaXMub3JnSWQsIHtcbiAgICAgICAgICBlbWFpbCxcbiAgICAgICAgICByb2xlSWQ6IHRoaXMuc2VsZWN0ZWRSb2xlKCksXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgICAgdGhpcy50b2FzdC5zaG93KHtcbiAgICAgICAgbWVzc2FnZTogdGhpcy50KCdzdWNjZXNzJyksXG4gICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgIGR1cmF0aW9uOiAzNTAwLFxuICAgICAgfSk7XG4gICAgICB0aGlzLm9uU3VjY2Vzcz8uKCk7XG4gICAgICB0aGlzLmRpc21pc3MoKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHRoaXMuZXJyb3JzLmhhbmRsZShlcnIsIHtcbiAgICAgICAgY29udGV4dDogJ2ludml0ZS5ieUVtYWlsJyxcbiAgICAgICAgZmFsbGJhY2tLZXk6ICdzZW5kSW52aXRlJyxcbiAgICAgICAgaTE4bk5hbWVzcGFjZTogdGhpcy5pMThuTmFtZXNwYWNlLFxuICAgICAgfSk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuc2VuZGluZy5zZXQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIGlzU2VsZWN0ZWQodXNlcklkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFVzZXJzKCkuc29tZSh1ID0+IHUudXNlcklkID09PSB1c2VySWQpO1xuICB9XG5cbiAgdG9nZ2xlVXNlcih1c2VyOiBQdWJsaWNVc2VyUHJvZmlsZSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzU2VsZWN0ZWQodXNlci51c2VySWQpKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkVXNlcnMudXBkYXRlKGxpc3QgPT4gbGlzdC5maWx0ZXIodSA9PiB1LnVzZXJJZCAhPT0gdXNlci51c2VySWQpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZFVzZXJzLnVwZGF0ZShsaXN0ID0+IFsuLi5saXN0LCB1c2VyXSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgb25TZW5kU2VsZWN0ZWQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgdXNlcnMgPSB0aGlzLnNlbGVjdGVkVXNlcnMoKTtcbiAgICBpZiAoIXVzZXJzLmxlbmd0aCB8fCB0aGlzLnNlbmRpbmcoKSkgcmV0dXJuO1xuICAgIHRoaXMuc2VuZGluZy5zZXQodHJ1ZSk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICB1c2Vycy5tYXAodSA9PlxuICAgICAgICAgIGZpcnN0VmFsdWVGcm9tKFxuICAgICAgICAgICAgdGhpcy5vcmdTZXJ2aWNlLmludml0ZVVzZXIodGhpcy5vcmdJZCwge1xuICAgICAgICAgICAgICB1c2VySWQ6IHUudXNlcklkLFxuICAgICAgICAgICAgICByb2xlSWQ6IHRoaXMuc2VsZWN0ZWRSb2xlKCksXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICAgIHRoaXMudG9hc3Quc2hvdyh7XG4gICAgICAgIG1lc3NhZ2U6IHVzZXJzLmxlbmd0aCA9PT0gMSA/IHRoaXMudCgnc3VjY2VzcycpIDogdGhpcy50KCdzdWNjZXNzUGx1cmFsJyksXG4gICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgIGR1cmF0aW9uOiAzNTAwLFxuICAgICAgfSk7XG4gICAgICB0aGlzLnNlbGVjdGVkVXNlcnMuc2V0KFtdKTtcbiAgICAgIHRoaXMub25TdWNjZXNzPy4oKTtcbiAgICAgIHRoaXMuZGlzbWlzcygpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdGhpcy5lcnJvcnMuaGFuZGxlKGVyciwge1xuICAgICAgICBjb250ZXh0OiAnaW52aXRlLmJ5VXNlcklkJyxcbiAgICAgICAgZmFsbGJhY2tLZXk6ICdzZW5kSW52aXRlJyxcbiAgICAgICAgaTE4bk5hbWVzcGFjZTogdGhpcy5pMThuTmFtZXNwYWNlLFxuICAgICAgfSk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuc2VuZGluZy5zZXQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIGxvYWRSb2xlcyBhcXXDrSAobm8gZW4gY29uc3RydWN0b3IpIHBhcmEgcXVlIEBJbnB1dCgpIG9yZ0lkIHlhIGVzdMOpIGFzaWduYWRvXG4gICAgLy8gcG9yIE1vZGFsQ29udHJvbGxlciBhbnRlcyBkZSBxdWUgY29ycmEgZWwgaG9vayBkZSBpbmljaWFsaXphY2nDs24uXG4gICAgdGhpcy5sb2FkUm9sZXMoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMucm9sZVN1Yj8udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGRpc21pc3MoKTogdm9pZCB7XG4gICAgdGhpcy5fbW9kYWxSZWY/LmRpc21pc3MobnVsbCwgJ2NhbmNlbCcpO1xuICB9XG5cbiAgdChrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KGtleSwgdGhpcy5pMThuTmFtZXNwYWNlKTtcbiAgfVxufVxuIl19
|
|
537
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52aXRlLW1lbWJlci1tb2RhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2ludml0ZS1tZW1iZXItbW9kYWwvaW52aXRlLW1lbWJlci1tb2RhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM3RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RFLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssSUFBSSxPQUFPLEVBQ2hCLE9BQU8sRUFDUCxPQUFPLEVBQ1AsS0FBSyxFQUNMLEtBQUssRUFDTCxPQUFPLEdBQ1IsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixVQUFVLEVBQ1YsU0FBUyxFQUNULE9BQU8sRUFDUCxVQUFVLEVBQ1YsVUFBVSxHQUNYLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1B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LENBQUM7K0dBL1BVLDBCQUEwQjttR0FBMUIsMEJBQTBCLHVPQWxUM0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5SFQsdy9GQXpJQyxTQUFTLG9HQUNULFVBQVUsbUZBQ1YsVUFBVSw4RUFDVixTQUFTLG9QQUNULFVBQVUsd0tBQ1YsVUFBVSx5R0FDVixPQUFPLDBKQUNQLG1CQUFtQiwrQkFDbkIsZUFBZSwwR0FDZixnQkFBZ0IsMkVBQ2hCLG1CQUFtQiwrRUFDbkIsa0JBQWtCLDRJQUNsQix1QkFBdUIsMEZBRXZCLGNBQWM7OzRGQW9UTCwwQkFBMEI7a0JBdFV0QyxTQUFTOytCQUNFLHlCQUF5QixjQUN2QixJQUFJLFdBQ1A7d0JBQ1AsU0FBUzt3QkFDVCxVQUFVO3dCQUNWLFVBQVU7d0JBQ1YsU0FBUzt3QkFDVCxVQUFVO3dCQUNWLFVBQVU7d0JBQ1YsT0FBTzt3QkFDUCxtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixtQkFBbUI7d0JBQ25CLGtCQUFrQjt3QkFDbEIsdUJBQXVCO3dCQUN2QixhQUFhO3dCQUNiLGNBQWM7cUJBQ2YsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlIVDt3REFrTVEsU0FBUztzQkFBakIsS0FBSztnQkFHRyxLQUFLO3NCQUFiLEtBQUs7Z0JBR0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUdHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0csYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGluamVjdCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20sIGZvcmtKb2luLCBmcm9tLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gIEZpcmVzdG9yZSxcbiAgY29sbGVjdGlvbixcbiAgcXVlcnkgYXMgZnNRdWVyeSxcbiAgb3JkZXJCeSxcbiAgc3RhcnRBdCxcbiAgZW5kQXQsXG4gIGxpbWl0LFxuICBnZXREb2NzLFxufSBmcm9tICdAYW5ndWxhci9maXJlL2ZpcmVzdG9yZSc7XG5pbXBvcnQge1xuICBJb25CdXR0b24sXG4gIElvbkJ1dHRvbnMsXG4gIElvbkNvbnRlbnQsXG4gIElvbkhlYWRlcixcbiAgSW9uSWNvbixcbiAgSW9uU3Bpbm5lcixcbiAgSW9uVG9vbGJhcixcbn0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBhZGRJY29ucyB9IGZyb20gJ2lvbmljb25zJztcbmltcG9ydCB7IGNoZWNrbWFya0NpcmNsZU91dGxpbmUsIGNsb3NlT3V0bGluZSwgbWFpbE91dGxpbmUsIHBlcnNvbk91dGxpbmUgfSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5cbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IERpc3BsYXlDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9kaXNwbGF5L2Rpc3BsYXkuY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy90ZXh0L3RleHQuY29tcG9uZW50JztcbmltcG9ydCB7IFRpdGxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdGl0bGUvdGl0bGUuY29tcG9uZW50JztcbmltcG9ydCB7IEVtcHR5U3RhdGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvZW1wdHktc3RhdGUvZW1wdHktc3RhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IFNlYXJjaGJhckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9zZWFyY2hiYXIvc2VhcmNoYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWFyY2hTZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9zZWxlY3QtaW5wdXQvc2VsZWN0LWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCdXR0b25NZXRhZGF0YSwgQ29tcG9uZW50U3RhdGVzLCBJbnB1dE1ldGFkYXRhLCBJbnB1dFR5cGUgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXV0aC9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IE9yZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9vcmcvb3JnLnNlcnZpY2UnO1xuaW1wb3J0IHsgT3JnUm9sZSwgcmVzb2x2ZVJvbGVMYWJlbCwgU1lTVEVNX1JPTEVfREVGQVVMVFMgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9vcmcvdHlwZXMnO1xuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdG9hc3Quc2VydmljZSc7XG5pbXBvcnQgeyBWYWx0ZWNoRXJyb3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZXJyb3JzL3ZhbHRlY2gtZXJyb3Iuc2VydmljZSc7XG5cbmltcG9ydCB7IElOVklURV9NRU1CRVJfTU9EQUxfSTE4TiB9IGZyb20gJy4vaW52aXRlLW1lbWJlci1tb2RhbC5pMThuJztcblxuY29uc3QgREVGQVVMVF9OQU1FU1BBQ0UgPSAnSW52aXRlTW9kYWwnO1xuXG5pbnRlcmZhY2UgUHVibGljVXNlclByb2ZpbGUge1xuICB1c2VySWQ6IHN0cmluZztcbiAgaGFuZGxlPzogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xufVxuXG5hZGRJY29ucyh7IHBlcnNvbk91dGxpbmUsIG1haWxPdXRsaW5lLCBjbG9zZU91dGxpbmUsIGNoZWNrbWFya0NpcmNsZU91dGxpbmUgfSk7XG5cbi8qKlxuICogYHZhbC1pbnZpdGUtbWVtYmVyLW1vZGFsYCDigJQgaW52aXRhY2nDs24gZGUgbWllbWJyb3MgYSB1bmEgb3JnYW5pemFjacOzbi5cbiAqIFByb21vdmlkbyBkZXNkZSBgc2hvd2Nhc2VgIGJham8gZWwgcHJvY2VzbyBkZSBBRFItMDIxLlxuICpcbiAqIEJ1c2NhIHVzdWFyaW9zIHBvciBoYW5kbGUgZW4gRmlyZXN0b3JlIGAvcHJvZmlsZXNgIChtdWx0aS1zZWxlY3QpIG8gaW52aXRhIHBvclxuICogZW1haWwgY3VhbmRvIGVsIHF1ZXJ5IGVzIHVuIGNvcnJlbyB2w6FsaWRvLiBBc2lnbmEgZWwgcm9sIHNlbGVjY2lvbmFkbyB5IGVudsOtYSBsYVxuICogaW52aXRhY2nDs24gdsOtYSBgT3JnU2VydmljZS5pbnZpdGVVc2VyYC4gRXhjbHV5ZSBhbCB1c3VhcmlvIGFjdHVhbCB5IGEgbG9zXG4gKiBgZXhpc3RpbmdNZW1iZXJJZHNgIGRlIGxvcyByZXN1bHRhZG9zLlxuICpcbiAqIEFiaWVydG8gdsOtYSBgTW9kYWxTZXJ2aWNlYCDigJQgcmVjaWJlIGBfbW9kYWxSZWZgIHBvciBgY29tcG9uZW50UHJvcHNgICsgY2FsbGJhY2tcbiAqIGBvblN1Y2Nlc3NgLiBIZWFkZXIgY2Fuw7NuaWNvIChSZWdsYSAjNSk6IHNpbiBgaW9uLXRpdGxlYCwgYm90w7NuIENlcnJhciB0ZXh0byBlblxuICogYHNsb3Q9ZW5kYCwgdMOtdHVsby9zdWJ0w610dWxvIGVuIGVsIGJvZHkgY29uIGB2YWwtZGlzcGxheWAvYHZhbC10aXRsZWAuXG4gKlxuICogQXV0by1yZWdpc3RyYSBzdXMgZGVmYXVsdHMgaTE4biAoZXMvZW4pIHNpIGVsIGNvbnN1bWVyIG5vIHByb3ZlecOzIGVsIG5hbWVzcGFjZVxuICogYEludml0ZU1vZGFsYC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWludml0ZS1tZW1iZXItbW9kYWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgSW9uSGVhZGVyLFxuICAgIElvblRvb2xiYXIsXG4gICAgSW9uQnV0dG9ucyxcbiAgICBJb25CdXR0b24sXG4gICAgSW9uQ29udGVudCxcbiAgICBJb25TcGlubmVyLFxuICAgIElvbkljb24sXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBCdXR0b25Db21wb25lbnQsXG4gICAgRGlzcGxheUNvbXBvbmVudCxcbiAgICBFbXB0eVN0YXRlQ29tcG9uZW50LFxuICAgIFNlYXJjaGJhckNvbXBvbmVudCxcbiAgICBTZWFyY2hTZWxlY3RvckNvbXBvbmVudCxcbiAgICBUZXh0Q29tcG9uZW50LFxuICAgIFRpdGxlQ29tcG9uZW50LFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxpb24taGVhZGVyPlxuICAgICAgPGlvbi10b29sYmFyPlxuICAgICAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cImVuZFwiPlxuICAgICAgICAgIDxpb24tYnV0dG9uIGZpbGw9XCJjbGVhclwiIGNvbG9yPVwiZGFya1wiIChjbGljayk9XCJkaXNtaXNzKClcIj5cbiAgICAgICAgICAgIDxzdHJvbmc+e3sgdCgnY2xvc2UnKSB9fTwvc3Ryb25nPlxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPC9pb24tYnV0dG9ucz5cbiAgICAgIDwvaW9uLXRvb2xiYXI+XG4gICAgPC9pb24taGVhZGVyPlxuXG4gICAgPGlvbi1jb250ZW50IGNsYXNzPVwiaW9uLXBhZGRpbmdcIj5cbiAgICAgIDx2YWwtZGlzcGxheSBbcHJvcHNdPVwieyBjb250ZW50OiB0KCd0aXRsZScpLCBzaXplOiAnc21hbGwnLCBjb2xvcjogJ2RhcmsnIH1cIiAvPlxuICAgICAgPHZhbC10aXRsZVxuICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgIGNvbnRlbnQ6IHQoJ3N1YnRpdGxlJyksXG4gICAgICAgICAgc2l6ZTogJ2xhcmdlJyxcbiAgICAgICAgICBjb2xvcjogJycsXG4gICAgICAgICAgYm9sZDogZmFsc2UsXG4gICAgICAgIH1cIlxuICAgICAgLz5cblxuICAgICAgPGRpdiBjbGFzcz1cInJvbGUtc2VsZWN0LXdyYXBcIj5cbiAgICAgICAgPHZhbC10aXRsZVxuICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICBjb250ZW50OiB0KCdyb2xlTGFiZWwnKSxcbiAgICAgICAgICAgIHNpemU6ICdzbWFsbCcsXG4gICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgYm9sZDogZmFsc2UsXG4gICAgICAgICAgfVwiXG4gICAgICAgIC8+XG4gICAgICAgIDx2YWwtc2VsZWN0LWlucHV0IGRhdGEtdGVzdGlkPVwiaW52aXRlLXJvbGUtc2VsZWN0XCIgW3Byb3BzXT1cInJvbGVTZWxlY3RQcm9wcygpXCIgLz5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLXNlY3Rpb25cIj5cbiAgICAgICAgPHZhbC1zZWFyY2hiYXJcbiAgICAgICAgICBkYXRhLXRlc3RpZD1cImludml0ZS1zZWFyY2hcIlxuICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICBwbGFjZWhvbGRlcjogdCgnc2VhcmNoUGxhY2Vob2xkZXInKSxcbiAgICAgICAgICAgIGRlYm91bmNlOiAzNTAsXG4gICAgICAgICAgICBzaG93Q2FuY2VsQnV0dG9uOiAnbmV2ZXInLFxuICAgICAgICAgIH1cIlxuICAgICAgICAgIChmaWx0ZXJFdmVudCk9XCJvblF1ZXJ5Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAvPlxuXG4gICAgICAgIEBpZiAoc2VhcmNoaW5nKCkpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLXN0YXRlXCI+XG4gICAgICAgICAgICA8aW9uLXNwaW5uZXIgbmFtZT1cImNyZXNjZW50XCIgLz5cbiAgICAgICAgICAgIDxzcGFuPnt7IHQoJ3NlYXJjaGluZ0xhYmVsJykgfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH0gQGVsc2UgaWYgKGlzRW1haWwoKSkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbWFpbC1pbnZpdGUtY2FyZFwiPlxuICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJtYWlsLW91dGxpbmVcIiBjbGFzcz1cImVtYWlsLWljb25cIiAvPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVtYWlsLWludml0ZS10ZXh0XCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZW1haWwtaW52aXRlLWxhYmVsXCI+e3sgdCgnaW52aXRlQnlFbWFpbCcpIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImVtYWlsLWludml0ZS1hZGRyZXNzXCI+e3sgcXVlcnkoKS50cmltKCkgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8dmFsLWJ1dHRvbiBbcHJvcHNdPVwic2VuZEJ1dHRvblByb3BzKClcIiAoY2xpY2spPVwib25JbnZpdGVCeUVtYWlsKClcIiAvPlxuICAgICAgICB9IEBlbHNlIGlmIChxdWVyeSgpLmxlbmd0aCA+PSAyICYmIHNlYXJjaFJlc3VsdHMoKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICA8dmFsLWVtcHR5LXN0YXRlXG4gICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICB2YXJpYW50OiAnZW1wdHknLFxuICAgICAgICAgICAgICB0aXRsZTogdCgnbm9SZXN1bHRzJyksXG4gICAgICAgICAgICAgIGljb246ICdwZXJzb24tb3V0bGluZScsXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAvPlxuICAgICAgICB9IEBlbHNlIGlmIChzZWFyY2hSZXN1bHRzKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZXN1bHRzLWxpc3RcIj5cbiAgICAgICAgICAgIEBmb3IgKHVzZXIgb2Ygc2VhcmNoUmVzdWx0cygpOyB0cmFjayB1c2VyLnVzZXJJZCkge1xuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJyZXN1bHQtY2FyZFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuZGF0YS10ZXN0aWRdPVwiJ2ludml0ZS1yZXN1bHQtJyArIHVzZXIudXNlcklkXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MucmVzdWx0LWNhcmQtLXNlbGVjdGVkXT1cImlzU2VsZWN0ZWQodXNlci51c2VySWQpXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlVXNlcih1c2VyKVwiXG4gICAgICAgICAgICAgICAgcm9sZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWNoZWNrZWRdPVwiaXNTZWxlY3RlZCh1c2VyLnVzZXJJZClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlc3VsdC1jYXJkX19hdmF0YXJcIj5cbiAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwicGVyc29uLW91dGxpbmVcIiAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZXN1bHQtY2FyZF9fYm9keVwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZXN1bHQtY2FyZF9fbmFtZVwiPnt7IHVzZXIubmFtZSB8fCB1c2VyLmhhbmRsZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIEBpZiAodXNlci5oYW5kbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZXN1bHQtY2FyZF9faGFuZGxlXCI+JiM2NDt7eyB1c2VyLmhhbmRsZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVzdWx0LWNhcmRfX2NoZWNrXCI+XG4gICAgICAgICAgICAgICAgICBAaWYgKGlzU2VsZWN0ZWQodXNlci51c2VySWQpKSB7XG4gICAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2hlY2ttYXJrLWNpcmNsZS1vdXRsaW5lXCIgY2xhc3M9XCJjaGVjay1vblwiIC8+XG4gICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrLW9mZlwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoc2VsZWN0ZWRVc2VycygpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0ZWQtc2VjdGlvblwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZWxlY3RlZC1zZWN0aW9uX19sYWJlbFwiPnt7IHQoJ3NlbGVjdGVkTGFiZWwnKSB9fSAoe3sgc2VsZWN0ZWRVc2VycygpLmxlbmd0aCB9fSk8L3NwYW4+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0ZWQtY2hpcHNcIj5cbiAgICAgICAgICAgICAgQGZvciAodXNlciBvZiBzZWxlY3RlZFVzZXJzKCk7IHRyYWNrIHVzZXIudXNlcklkKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkLWNoaXBcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IHVzZXIuaGFuZGxlID8gJ0AnICsgdXNlci5oYW5kbGUgOiB1c2VyLm5hbWUgfHwgdXNlci51c2VySWQgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwic2VsZWN0ZWQtY2hpcF9fcmVtb3ZlXCIgKGNsaWNrKT1cInRvZ2dsZVVzZXIodXNlcilcIiBhcmlhLWxhYmVsPVwiUXVpdGFyXCI+JnRpbWVzOzwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDx2YWwtYnV0dG9uIFtwcm9wc109XCJzZW5kU2VsZWN0ZWRQcm9wcygpXCIgKGNsaWNrKT1cIm9uU2VuZFNlbGVjdGVkKClcIiAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWNsb3NlLWJvdHRvbVwiPlxuICAgICAgICA8aW9uLWJ1dHRvbiBleHBhbmQ9XCJibG9ja1wiIGZpbGw9XCJvdXRsaW5lXCIgY29sb3I9XCJkYXJrXCIgKGNsaWNrKT1cImRpc21pc3MoKVwiPlxuICAgICAgICAgIHt7IHQoJ2Nsb3NlJykgfX1cbiAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9pb24tY29udGVudD5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgaW9uLWNvbnRlbnQge1xuICAgICAgICAtLXBhZGRpbmctYm90dG9tOiAyNHB4O1xuICAgICAgfVxuICAgICAgdmFsLWRpc3BsYXkge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgICAgdmFsLXRpdGxlIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICAgIC5yb2xlLXNlbGVjdC13cmFwIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgICAgIH1cbiAgICAgIC5yb2xlLXNlbGVjdCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuICAgICAgdmFsLXNlYXJjaGJhciB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gICAgICB9XG4gICAgICAuc2VhcmNoLXNlY3Rpb24ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDE0cHg7XG4gICAgICB9XG4gICAgICAuc2VhcmNoLXN0YXRlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAxMHB4O1xuICAgICAgICBwYWRkaW5nOiAxMnB4IDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItbWVkaXVtKTtcbiAgICAgICAgZm9udC1zaXplOiAwLjg4cmVtO1xuICAgICAgfVxuICAgICAgLmVtYWlsLWludml0ZS1jYXJkIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAxNHB4O1xuICAgICAgICBwYWRkaW5nOiAxNHB4IDE2cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgICAgIGJvcmRlcjogMS41cHggc29saWQgdmFyKC0taW9uLWNvbG9yLXByaW1hcnkpO1xuICAgICAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0taW9uLWNvbG9yLXByaW1hcnkpIDglLCB0cmFuc3BhcmVudCk7XG4gICAgICB9XG4gICAgICAuZW1haWwtaWNvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1wcmltYXJ5KTtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICB9XG4gICAgICAuZW1haWwtaW52aXRlLXRleHQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDJweDtcbiAgICAgIH1cbiAgICAgIC5lbWFpbC1pbnZpdGUtbGFiZWwge1xuICAgICAgICBmb250LXNpemU6IDAuNzhyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItbWVkaXVtKTtcbiAgICAgIH1cbiAgICAgIC5lbWFpbC1pbnZpdGUtYWRkcmVzcyB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrKTtcbiAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICAgICAgfVxuICAgICAgLnJlc3VsdHMtbGlzdCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgfVxuICAgICAgLnJlc3VsdC1jYXJkIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAxNHB4O1xuICAgICAgICBwYWRkaW5nOiAxMnB4IDE0cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1saWdodCwgI2Y0ZjVmOCk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cztcbiAgICAgIH1cbiAgICAgIC5yZXN1bHQtY2FyZDphY3RpdmUge1xuICAgICAgICBvcGFjaXR5OiAwLjc7XG4gICAgICB9XG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLnJlc3VsdC1jYXJkLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5yZXN1bHQtY2FyZCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLnJlc3VsdC1jYXJkIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KTtcbiAgICAgIH1cbiAgICAgIC5yZXN1bHQtY2FyZF9fYXZhdGFyIHtcbiAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0taW9uLWNvbG9yLXByaW1hcnkpIDE1JSwgdHJhbnNwYXJlbnQpO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLXByaW1hcnkpO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIH1cbiAgICAgIC5yZXN1bHQtY2FyZF9fYm9keSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMnB4O1xuICAgICAgfVxuICAgICAgLnJlc3VsdC1jYXJkX19uYW1lIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgZm9udC1zaXplOiAwLjlyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyayk7XG4gICAgICB9XG4gICAgICAucmVzdWx0LWNhcmRfX2hhbmRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43OHJlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1tZWRpdW0pO1xuICAgICAgfVxuICAgICAgLnJlc3VsdC1jYXJkLS1zZWxlY3RlZCB7XG4gICAgICAgIGJvcmRlcjogMS41cHggc29saWQgdmFyKC0taW9uLWNvbG9yLXByaW1hcnkpO1xuICAgICAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0taW9uLWNvbG9yLXByaW1hcnkpIDglLCB0cmFuc3BhcmVudCk7XG4gICAgICB9XG4gICAgICAucmVzdWx0LWNhcmRfX2NoZWNrIHtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgfVxuICAgICAgLmNoZWNrLW9uIHtcbiAgICAgICAgZm9udC1zaXplOiAyMnB4O1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLXByaW1hcnkpO1xuICAgICAgfVxuICAgICAgLmNoZWNrLW9mZiB7XG4gICAgICAgIHdpZHRoOiAyMnB4O1xuICAgICAgICBoZWlnaHQ6IDIycHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0taW9uLWNvbG9yLW1lZGl1bSk7XG4gICAgICB9XG4gICAgICAuc2VsZWN0ZWQtc2VjdGlvbiB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS12YWwtYm9yZGVyLWNvbG9yLCByZ2JhKDAsIDAsIDAsIDAuMDgpKTtcbiAgICAgICAgcGFkZGluZy10b3A6IDE0cHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMTBweDtcbiAgICAgIH1cbiAgICAgIC5zZWxlY3RlZC1zZWN0aW9uX19sYWJlbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43OHJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1tZWRpdW0pO1xuICAgICAgfVxuICAgICAgLnNlbGVjdGVkLWNoaXBzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBnYXA6IDZweDtcbiAgICAgIH1cbiAgICAgIC5zZWxlY3RlZC1jaGlwIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA0cHg7XG4gICAgICAgIHBhZGRpbmc6IDRweCAxMHB4IDRweCAxMnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0taW9uLWNvbG9yLXByaW1hcnkpIDEyJSwgdHJhbnNwYXJlbnQpO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLXByaW1hcnkpO1xuICAgICAgICBmb250LXNpemU6IDAuODJyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICB9XG4gICAgICAuc2VsZWN0ZWQtY2hpcF9fcmVtb3ZlIHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSk7XG4gICAgICAgIHBhZGRpbmc6IDAgMnB4O1xuICAgICAgICBvcGFjaXR5OiAwLjc7XG4gICAgICB9XG4gICAgICAuc2VsZWN0ZWQtY2hpcF9fcmVtb3ZlOmhvdmVyIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cbiAgICAgIC5tb2RhbC1jbG9zZS1ib3R0b20ge1xuICAgICAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEludml0ZU1lbWJlck1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIG9yZ1NlcnZpY2UgPSBpbmplY3QoT3JnU2VydmljZSk7XG4gIHByaXZhdGUgYXV0aCA9IGluamVjdChBdXRoU2VydmljZSk7XG4gIHByaXZhdGUgdG9hc3QgPSBpbmplY3QoVG9hc3RTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBlcnJvcnMgPSBpbmplY3QoVmFsdGVjaEVycm9yU2VydmljZSk7XG4gIHByaXZhdGUgZmlyZXN0b3JlID0gaW5qZWN0KEZpcmVzdG9yZSk7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG5cbiAgLyoqIElueWVjdGFkbyBwb3IgYE1vZGFsU2VydmljZS5vcGVuYCDigJQgcmVmZXJlbmNpYSBwYXJhIGNlcnJhciBkZXNkZSBkZW50cm8uICovXG4gIEBJbnB1dCgpIF9tb2RhbFJlZj86IHsgZGlzbWlzczogKGRhdGE/OiB1bmtub3duLCByb2xlPzogc3RyaW5nKSA9PiB2b2lkIH07XG5cbiAgLyoqIE9yZ2FuaXphY2nDs24gYSBsYSBxdWUgc2UgaW52aXRhLiAqL1xuICBASW5wdXQoKSBvcmdJZCA9ICcnO1xuXG4gIC8qKiBJZHMgZGUgbWllbWJyb3MgeWEgZXhpc3RlbnRlcyAoZXhjbHVpZG9zIGRlIGxvcyByZXN1bHRhZG9zKS4gKi9cbiAgQElucHV0KCkgZXhpc3RpbmdNZW1iZXJJZHM6IHN0cmluZ1tdID0gW107XG5cbiAgLyoqIENhbGxiYWNrIHRyYXMgZW52aWFyIGxhKHMpIGludml0YWNpw7NuKGVzKSAocGFzYWRvIHBvciBgY29tcG9uZW50UHJvcHNgKS4gKi9cbiAgQElucHV0KCkgb25TdWNjZXNzPzogKCkgPT4gdm9pZDtcblxuICAvKiogTmFtZXNwYWNlIGkxOG4gY29uIHF1ZSBsYSB2aXN0YSByZXN1ZWx2ZSBzdXMgdGV4dG9zLiAqL1xuICBASW5wdXQoKSBpMThuTmFtZXNwYWNlID0gREVGQVVMVF9OQU1FU1BBQ0U7XG5cbiAgcmVhZG9ubHkgcXVlcnkgPSBzaWduYWwoJycpO1xuICByZWFkb25seSBzZWFyY2hpbmcgPSBzaWduYWwoZmFsc2UpO1xuICByZWFkb25seSBzZWFyY2hSZXN1bHRzID0gc2lnbmFsPFB1YmxpY1VzZXJQcm9maWxlW10+KFtdKTtcbiAgcmVhZG9ubHkgc2VsZWN0ZWRVc2VycyA9IHNpZ25hbDxQdWJsaWNVc2VyUHJvZmlsZVtdPihbXSk7XG4gIHJlYWRvbmx5IHNlbmRpbmcgPSBzaWduYWwoZmFsc2UpO1xuICByZWFkb25seSBzZWxlY3RlZFJvbGUgPSBzaWduYWw8c3RyaW5nPigndmlld2VyJyk7XG4gIHJlYWRvbmx5IGF2YWlsYWJsZVJvbGVzID0gc2lnbmFsPE9yZ1JvbGVbXT4oU1lTVEVNX1JPTEVfREVGQVVMVFMpO1xuXG4gIHJlYWRvbmx5IHJvbGVDb250cm9sID0gbmV3IEZvcm1Db250cm9sPHN0cmluZz4oJ3ZpZXdlcicpO1xuXG4gIHJlYWRvbmx5IHJvbGVTZWxlY3RQcm9wcyA9IGNvbXB1dGVkPFBhcnRpYWw8SW5wdXRNZXRhZGF0YT4+KCgpID0+ICh7XG4gICAgY29udHJvbDogdGhpcy5yb2xlQ29udHJvbCBhcyBGb3JtQ29udHJvbCxcbiAgICBsYWJlbDogJycsXG4gICAgcGxhY2Vob2xkZXI6IHRoaXMudCgncm9sZUxhYmVsJyksXG4gICAgdHlwZTogSW5wdXRUeXBlLlNFTEVDVCxcbiAgICBzdGF0ZTogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gICAgb3B0aW9uczogdGhpcy5hdmFpbGFibGVSb2xlcygpLm1hcChyID0+ICh7XG4gICAgICBpZDogci5pZCxcbiAgICAgIG5hbWU6IHRoaXMucm9sZURpc3BsYXlOYW1lKHIpLFxuICAgICAgb3JkZXI6IDAsXG4gICAgfSkpLFxuICB9KSk7XG5cbiAgcmVhZG9ubHkgaXNFbWFpbCA9IGNvbXB1dGVkKCgpID0+IC9eW15cXHNAXStAW15cXHNAXStcXC5bXlxcc0BdKyQvLnRlc3QodGhpcy5xdWVyeSgpLnRyaW0oKSkpO1xuXG4gIHJlYWRvbmx5IHNlbmRCdXR0b25Qcm9wcyA9IGNvbXB1dGVkPFBhcnRpYWw8QnV0dG9uTWV0YWRhdGE+PigoKSA9PiAoe1xuICAgIHRleHQ6IHRoaXMudCgnc2VuZEludml0ZScpLFxuICAgIHRva2VuOiAnaW52aXRlLXN1Ym1pdC1lbWFpbCcsXG4gICAgY29sb3I6ICdwcmltYXJ5JyxcbiAgICBmaWxsOiAnc29saWQnLFxuICAgIGV4cGFuZDogJ2Jsb2NrJyxcbiAgICBzaXplOiAnZGVmYXVsdCcsXG4gICAgdHlwZTogJ2J1dHRvbicsXG4gICAgc3RhdGU6IHRoaXMuc2VuZGluZygpID8gQ29tcG9uZW50U3RhdGVzLldPUktJTkcgOiBDb21wb25lbnRTdGF0ZXMuRU5BQkxFRCxcbiAgfSkpO1xuXG4gIHJlYWRvbmx5IHNlbmRTZWxlY3RlZFByb3BzID0gY29tcHV0ZWQ8UGFydGlhbDxCdXR0b25NZXRhZGF0YT4+KCgpID0+ICh7XG4gICAgdGV4dDogYCR7dGhpcy50KCdzZW5kU2VsZWN0ZWQnKX0gKCR7dGhpcy5zZWxlY3RlZFVzZXJzKCkubGVuZ3RofSlgLFxuICAgIHRva2VuOiAnaW52aXRlLXN1Ym1pdCcsXG4gICAgY29sb3I6ICdwcmltYXJ5JyxcbiAgICBmaWxsOiAnc29saWQnLFxuICAgIGV4cGFuZDogJ2Jsb2NrJyxcbiAgICBzaXplOiAnZGVmYXVsdCcsXG4gICAgdHlwZTogJ2J1dHRvbicsXG4gICAgc3RhdGU6IHRoaXMuc2VuZGluZygpID8gQ29tcG9uZW50U3RhdGVzLldPUktJTkcgOiBDb21wb25lbnRTdGF0ZXMuRU5BQkxFRCxcbiAgfSkpO1xuXG4gIHByaXZhdGUgc2VhcmNoU3ViamVjdCA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcbiAgcHJpdmF0ZSByb2xlU3ViPzogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGlmICghdGhpcy5pMThuLmhhc05hbWVzcGFjZShERUZBVUxUX05BTUVTUEFDRSkpIHtcbiAgICAgIHRoaXMuaTE4bi5yZWdpc3RlckNvbnRlbnQoREVGQVVMVF9OQU1FU1BBQ0UsIElOVklURV9NRU1CRVJfTU9EQUxfSTE4Tik7XG4gICAgfVxuICAgIHRoaXMucm9sZVN1YiA9IHRoaXMucm9sZUNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2ID0+IHtcbiAgICAgIGlmICh2KSB0aGlzLnNlbGVjdGVkUm9sZS5zZXQodik7XG4gICAgfSk7XG5cbiAgICAvLyB2YWwtc2VhcmNoYmFyIGFscmVhZHkgZGVib3VuY2VzIC0tIHBpcGVsaW5lIG9ubHkgbmVlZHMgZGlzdGluY3RVbnRpbENoYW5nZWQgKyBzd2l0Y2hNYXBcbiAgICB0aGlzLnNlYXJjaFN1YmplY3RcbiAgICAgIC5waXBlKFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICBzd2l0Y2hNYXAocSA9PiB7XG4gICAgICAgICAgaWYgKCFxIHx8IHEubGVuZ3RoIDwgMiB8fCB0aGlzLmlzRW1haWwoKSkge1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoUmVzdWx0cy5zZXQoW10pO1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBCw7pzcXVlZGEgcG9yIHByZWZpam8gc29icmUgRE9TIGNhbXBvczogYGhhbmRsZWAgeSBgbmFtZUxvd2VyYC4gRmlyZXN0b3JlXG4gICAgICAgICAgLy8gbm8gc29wb3J0YSBPUiBlbnRyZSBjYW1wb3MgZW4gdW5hIHF1ZXJ5LCBhc8OtIHF1ZSBzZSBsYW56YW4gZG9zIHF1ZXJpZXMgZW5cbiAgICAgICAgICAvLyBwYXJhbGVsbyB5IHNlIG1lemNsYW4gKGRlZHVwIHBvciBpZCkuIEVsIHNlbnRpbmVsIGFsdG8g76O/IGNpZXJyYSBlbFxuICAgICAgICAgIC8vIHJhbmdvIGRlbCBwcmVmaWpvLiBgbmFtZUxvd2VyYCBsbyBlc2NyaWJlIGVsIGJhY2tlbmQgZW4gL3Byb2ZpbGVzXG4gICAgICAgICAgLy8gKE5vcm1hbGl6ZU5hbWVGb3JTZWFyY2g6IGxvd2VyY2FzZSArIGNvbGFwc28gZGUgZXNwYWNpb3MpOyBub3JtYWxpemFtb3MgZWxcbiAgICAgICAgICAvLyBxdWVyeSBpZ3VhbCBwYXJhIHF1ZSBlbCBwcmVmaWpvIG1hdGNoZWUuXG4gICAgICAgICAgY29uc3QgcHJvZmlsZXMgPSBjb2xsZWN0aW9uKHRoaXMuZmlyZXN0b3JlLCAncHJvZmlsZXMnKTtcbiAgICAgICAgICBjb25zdCBoYW5kbGVRID0gKHEuc3RhcnRzV2l0aCgnQCcpID8gcS5zbGljZSgxKSA6IHEpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgY29uc3QgbmFtZVEgPSBxLnRyaW0oKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1xccysvZywgJyAnKTtcblxuICAgICAgICAgIGNvbnN0IGJ5SGFuZGxlJCA9IGZyb20oXG4gICAgICAgICAgICBnZXREb2NzKGZzUXVlcnkocHJvZmlsZXMsIG9yZGVyQnkoJ2hhbmRsZScpLCBzdGFydEF0KGhhbmRsZVEpLCBlbmRBdChoYW5kbGVRICsgJ1xcdWY4ZmYnKSwgbGltaXQoOCkpKVxuICAgICAgICAgICk7XG4gICAgICAgICAgY29uc3QgYnlOYW1lJCA9IGZyb20oXG4gICAgICAgICAgICBnZXREb2NzKGZzUXVlcnkocHJvZmlsZXMsIG9yZGVyQnkoJ25hbWVMb3dlcicpLCBzdGFydEF0KG5hbWVRKSwgZW5kQXQobmFtZVEgKyAnXFx1ZjhmZicpLCBsaW1pdCg4KSkpXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIHJldHVybiBmb3JrSm9pbihbYnlIYW5kbGUkLCBieU5hbWUkXSkucGlwZShcbiAgICAgICAgICAgIG1hcCgoW2hhbmRsZVNuYXAsIG5hbWVTbmFwXSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBieUlkID0gbmV3IE1hcDxzdHJpbmcsIFB1YmxpY1VzZXJQcm9maWxlPigpO1xuICAgICAgICAgICAgICBmb3IgKGNvbnN0IGQgb2YgWy4uLmhhbmRsZVNuYXAuZG9jcywgLi4ubmFtZVNuYXAuZG9jc10pIHtcbiAgICAgICAgICAgICAgICBpZiAoYnlJZC5oYXMoZC5pZCkpIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGJ5SWQuc2V0KGQuaWQsIHtcbiAgICAgICAgICAgICAgICAgIHVzZXJJZDogZC5pZCxcbiAgICAgICAgICAgICAgICAgIGhhbmRsZTogZC5kYXRhKClbJ2hhbmRsZSddIGFzIHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgIG5hbWU6IGQuZGF0YSgpWyduYW1lJ10gYXMgc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiB7IHVzZXJzOiBBcnJheS5mcm9tKGJ5SWQudmFsdWVzKCkpLnNsaWNlKDAsIDgpIH07XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogcmVzID0+IHtcbiAgICAgICAgICBpZiAocmVzICYmICd1c2VycycgaW4gcmVzKSB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50VXNlcklkID0gdGhpcy5hdXRoLnVzZXIoKT8udXNlcklkO1xuICAgICAgICAgICAgY29uc3QgZXhjbHVkZWQgPSBuZXcgU2V0KFsuLi4oY3VycmVudFVzZXJJZCA/IFtjdXJyZW50VXNlcklkXSA6IFtdKSwgLi4udGhpcy5leGlzdGluZ01lbWJlcklkc10pO1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hSZXN1bHRzLnNldChyZXMudXNlcnMuZmlsdGVyKHUgPT4gIWV4Y2x1ZGVkLmhhcyh1LnVzZXJJZCkpKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5zZWFyY2hpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnNlYXJjaFJlc3VsdHMuc2V0KFtdKTtcbiAgICAgICAgICB0aGlzLnNlYXJjaGluZy5zZXQoZmFsc2UpO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gIH1cblxuICBvblF1ZXJ5Q2hhbmdlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnF1ZXJ5LnNldCh2YWx1ZSA/PyAnJyk7XG4gICAgaWYgKCF0aGlzLmlzRW1haWwoKSAmJiAodmFsdWUgPz8gJycpLmxlbmd0aCA+PSAyKSB7XG4gICAgICB0aGlzLnNlYXJjaGluZy5zZXQodHJ1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VhcmNoaW5nLnNldChmYWxzZSk7XG4gICAgICB0aGlzLnNlYXJjaFJlc3VsdHMuc2V0KFtdKTtcbiAgICB9XG4gICAgdGhpcy5zZWFyY2hTdWJqZWN0Lm5leHQodmFsdWUgPz8gJycpO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkUm9sZXMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm9yZ0lkKSByZXR1cm47XG4gICAgdGhpcy5vcmdTZXJ2aWNlLmxpc3RPcmdSb2xlcyh0aGlzLm9yZ0lkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogcm9sZXMgPT4ge1xuICAgICAgICBpZiAocm9sZXMubGVuZ3RoKSB0aGlzLmF2YWlsYWJsZVJvbGVzLnNldChyb2xlcyk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcm9sZURpc3BsYXlOYW1lKHJvbGU6IE9yZ1JvbGUpOiBzdHJpbmcge1xuICAgIHJldHVybiByZXNvbHZlUm9sZUxhYmVsKHJvbGUsIHRoaXMuaTE4bi5sYW5nKCkpO1xuICB9XG5cbiAgYXN5bmMgb25JbnZpdGVCeUVtYWlsKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGVtYWlsID0gdGhpcy5xdWVyeSgpLnRyaW0oKTtcbiAgICBpZiAoIWVtYWlsIHx8IHRoaXMuc2VuZGluZygpKSByZXR1cm47XG4gICAgdGhpcy5zZW5kaW5nLnNldCh0cnVlKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gICAgICAgIHRoaXMub3JnU2VydmljZS5pbnZpdGVVc2VyKHRoaXMub3JnSWQsIHtcbiAgICAgICAgICBlbWFpbCxcbiAgICAgICAgICByb2xlSWQ6IHRoaXMuc2VsZWN0ZWRSb2xlKCksXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgICAgdGhpcy50b2FzdC5zaG93KHtcbiAgICAgICAgbWVzc2FnZTogdGhpcy50KCdzdWNjZXNzJyksXG4gICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgIGR1cmF0aW9uOiAzNTAwLFxuICAgICAgfSk7XG4gICAgICB0aGlzLm9uU3VjY2Vzcz8uKCk7XG4gICAgICB0aGlzLmRpc21pc3MoKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHRoaXMuZXJyb3JzLmhhbmRsZShlcnIsIHtcbiAgICAgICAgY29udGV4dDogJ2ludml0ZS5ieUVtYWlsJyxcbiAgICAgICAgZmFsbGJhY2tLZXk6ICdzZW5kSW52aXRlJyxcbiAgICAgICAgaTE4bk5hbWVzcGFjZTogdGhpcy5pMThuTmFtZXNwYWNlLFxuICAgICAgfSk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuc2VuZGluZy5zZXQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIGlzU2VsZWN0ZWQodXNlcklkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFVzZXJzKCkuc29tZSh1ID0+IHUudXNlcklkID09PSB1c2VySWQpO1xuICB9XG5cbiAgdG9nZ2xlVXNlcih1c2VyOiBQdWJsaWNVc2VyUHJvZmlsZSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzU2VsZWN0ZWQodXNlci51c2VySWQpKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkVXNlcnMudXBkYXRlKGxpc3QgPT4gbGlzdC5maWx0ZXIodSA9PiB1LnVzZXJJZCAhPT0gdXNlci51c2VySWQpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZFVzZXJzLnVwZGF0ZShsaXN0ID0+IFsuLi5saXN0LCB1c2VyXSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgb25TZW5kU2VsZWN0ZWQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgdXNlcnMgPSB0aGlzLnNlbGVjdGVkVXNlcnMoKTtcbiAgICBpZiAoIXVzZXJzLmxlbmd0aCB8fCB0aGlzLnNlbmRpbmcoKSkgcmV0dXJuO1xuICAgIHRoaXMuc2VuZGluZy5zZXQodHJ1ZSk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICB1c2Vycy5tYXAodSA9PlxuICAgICAgICAgIGZpcnN0VmFsdWVGcm9tKFxuICAgICAgICAgICAgdGhpcy5vcmdTZXJ2aWNlLmludml0ZVVzZXIodGhpcy5vcmdJZCwge1xuICAgICAgICAgICAgICB1c2VySWQ6IHUudXNlcklkLFxuICAgICAgICAgICAgICByb2xlSWQ6IHRoaXMuc2VsZWN0ZWRSb2xlKCksXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICAgIHRoaXMudG9hc3Quc2hvdyh7XG4gICAgICAgIG1lc3NhZ2U6IHVzZXJzLmxlbmd0aCA9PT0gMSA/IHRoaXMudCgnc3VjY2VzcycpIDogdGhpcy50KCdzdWNjZXNzUGx1cmFsJyksXG4gICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgIGR1cmF0aW9uOiAzNTAwLFxuICAgICAgfSk7XG4gICAgICB0aGlzLnNlbGVjdGVkVXNlcnMuc2V0KFtdKTtcbiAgICAgIHRoaXMub25TdWNjZXNzPy4oKTtcbiAgICAgIHRoaXMuZGlzbWlzcygpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdGhpcy5lcnJvcnMuaGFuZGxlKGVyciwge1xuICAgICAgICBjb250ZXh0OiAnaW52aXRlLmJ5VXNlcklkJyxcbiAgICAgICAgZmFsbGJhY2tLZXk6ICdzZW5kSW52aXRlJyxcbiAgICAgICAgaTE4bk5hbWVzcGFjZTogdGhpcy5pMThuTmFtZXNwYWNlLFxuICAgICAgfSk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuc2VuZGluZy5zZXQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIGxvYWRSb2xlcyBhcXXDrSAobm8gZW4gY29uc3RydWN0b3IpIHBhcmEgcXVlIEBJbnB1dCgpIG9yZ0lkIHlhIGVzdMOpIGFzaWduYWRvXG4gICAgLy8gcG9yIE1vZGFsQ29udHJvbGxlciBhbnRlcyBkZSBxdWUgY29ycmEgZWwgaG9vayBkZSBpbmljaWFsaXphY2nDs24uXG4gICAgdGhpcy5sb2FkUm9sZXMoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMucm9sZVN1Yj8udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGRpc21pc3MoKTogdm9pZCB7XG4gICAgdGhpcy5fbW9kYWxSZWY/LmRpc21pc3MobnVsbCwgJ2NhbmNlbCcpO1xuICB9XG5cbiAgdChrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KGtleSwgdGhpcy5pMThuTmFtZXNwYWNlKTtcbiAgfVxufVxuIl19
|