valtech-components 4.0.72 → 4.0.73
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/chip-group/chip-group.component.mjs +2 -4
- package/esm2022/lib/components/molecules/command-display/command-display.component.mjs +2 -4
- package/esm2022/lib/components/molecules/comment/comment.component.mjs +2 -4
- package/esm2022/lib/components/molecules/content-reaction/content-reaction.component.mjs +2 -4
- package/esm2022/lib/components/molecules/date-input/date-input.component.mjs +2 -4
- package/esm2022/lib/components/molecules/date-picker/date-picker.component.mjs +2 -4
- package/esm2022/lib/components/molecules/features-list/features-list.component.mjs +2 -4
- package/esm2022/lib/components/molecules/font-size-selector/font-size-selector.component.mjs +2 -4
- package/esm2022/lib/components/molecules/pagination/pagination.component.mjs +2 -4
- package/esm2022/lib/components/molecules/password-input/password-input.component.mjs +2 -4
- package/esm2022/lib/components/molecules/permission-selector/permission-selector.component.mjs +2 -4
- package/esm2022/lib/components/molecules/rating/rating.component.mjs +2 -4
- package/esm2022/lib/components/molecules/ticket-card/ticket-card.component.mjs +2 -4
- package/esm2022/lib/components/organisms/about-view/about-view.component.mjs +2 -4
- package/esm2022/lib/components/organisms/account-view/account-view.component.mjs +2 -4
- package/esm2022/lib/components/organisms/api-key-create-modal/api-key-create-modal.component.mjs +3 -7
- package/esm2022/lib/components/organisms/api-keys-modal/api-keys-modal.component.mjs +3 -7
- package/esm2022/lib/components/organisms/api-keys-view/api-keys-view.component.mjs +2 -4
- package/esm2022/lib/components/organisms/auth-cta/auth-cta.component.mjs +2 -4
- package/esm2022/lib/components/organisms/create-org-modal/create-org-modal.component.mjs +2 -4
- package/esm2022/lib/components/organisms/delete-account-modal/delete-account-modal.component.mjs +2 -4
- package/esm2022/lib/components/organisms/edit-org-modal/edit-org-modal.component.mjs +2 -4
- package/esm2022/lib/components/organisms/field-list/field-list.component.mjs +2 -4
- package/esm2022/lib/components/organisms/invite-member-modal/invite-member-modal.component.mjs +2 -4
- package/esm2022/lib/components/organisms/member-detail-modal/member-detail-modal.component.mjs +3 -7
- package/esm2022/lib/components/organisms/member-import-modal/member-import-modal.component.mjs +3 -7
- package/esm2022/lib/components/organisms/notification-preferences-view/notification-preferences-view.component.mjs +2 -4
- package/esm2022/lib/components/organisms/notifications-view/notifications-view.component.mjs +2 -4
- package/esm2022/lib/components/organisms/org-info-sheet/org-info-sheet.component.mjs +2 -4
- package/esm2022/lib/components/organisms/organization-view/organization-view.component.mjs +2 -4
- package/esm2022/lib/components/organisms/permissions-view/permissions-view.component.mjs +2 -4
- package/esm2022/lib/components/organisms/preferences-view/preferences-view.component.mjs +2 -4
- package/esm2022/lib/components/organisms/profile-view/profile-view.component.mjs +2 -4
- package/esm2022/lib/components/organisms/qr-scanner/qr-scanner.component.mjs +2 -4
- package/esm2022/lib/components/organisms/security-view/security-view.component.mjs +2 -4
- package/esm2022/lib/components/organisms/settings-hub/settings-hub.component.mjs +3 -7
- package/esm2022/lib/components/organisms/share-profile-modal/share-profile-modal.component.mjs +2 -4
- package/esm2022/lib/components/organisms/switch-org-modal/switch-org-modal.component.mjs +2 -4
- package/esm2022/lib/components/organisms/transfer-ownership-modal/transfer-ownership-modal.component.mjs +3 -7
- package/esm2022/lib/services/i18n/i18n.service.mjs +21 -1
- package/esm2022/lib/version.mjs +2 -2
- package/fesm2022/valtech-components.mjs +66 -136
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/atoms/rights-footer/rights-footer.component.d.ts +2 -2
- package/lib/components/molecules/cta-card/cta-card.component.d.ts +1 -1
- package/lib/components/molecules/metric-card/metric-card.component.d.ts +1 -1
- package/lib/components/organisms/article/article.component.d.ts +5 -5
- package/lib/components/organisms/auth-cta/auth-cta.component.d.ts +1 -1
- package/lib/components/organisms/landing-steps/landing-steps.component.d.ts +1 -1
- package/lib/services/i18n/i18n.service.d.ts +7 -0
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
|
@@ -179,9 +179,7 @@ export class AccountViewComponent {
|
|
|
179
179
|
token: 'account-switch',
|
|
180
180
|
}));
|
|
181
181
|
const ns = this.ns;
|
|
182
|
-
|
|
183
|
-
this.i18n.registerContent(ns, ACCOUNT_VIEW_I18N);
|
|
184
|
-
}
|
|
182
|
+
this.i18n.registerDefaults(ns, ACCOUNT_VIEW_I18N);
|
|
185
183
|
this.nav.setBackHeader('pageTitle', ns, { withMenu: true });
|
|
186
184
|
this.loadOrgs();
|
|
187
185
|
this.loadPendingInvites();
|
|
@@ -744,4 +742,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
744
742
|
}], ctorParameters: () => [], propDecorators: { config: [{
|
|
745
743
|
type: Input
|
|
746
744
|
}] } });
|
|
747
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvYWNjb3VudC12aWV3L2FjY291bnQtdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDcEMsT0FBTyxFQUNMLGVBQWUsRUFDZixxQkFBcUIsRUFDckIsV0FBVyxFQUNYLGFBQWEsRUFDYixxQkFBcUIsRUFDckIsY0FBYyxHQUNmLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBRXhGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFD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Ozs7O0dBMExULHE5R0F4TUMsZ0JBQWdCLDJFQUNoQixtQkFBbUIsK0VBQ25CLHVCQUF1QixtRkFDdkIsY0FBYyx5RUFDZCxhQUFhLHdFQUNiLGVBQWUsMEdBQ2YsZ0JBQWdCLG1HQUNoQix1QkFBdUIsdUhBQ3ZCLHVCQUF1Qix5SUFDdkIsMkJBQTJCLGtJQUMzQixPQUFPLDJKQUNQLFNBQVMsK09BQ1QsYUFBYTs7NEZBbVlKLG9CQUFvQjtrQkFuWmhDLFNBQVM7K0JBQ0Usa0JBQWtCLGNBQ2hCLElBQUksV0FDUDt3QkFDUCxnQkFBZ0I7d0JBQ2hCLG1CQUFtQjt3QkFDbkIsdUJBQXVCO3dCQUN2QixjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLHVCQUF1Qjt3QkFDdkIsdUJBQXVCO3dCQUN2QiwyQkFBMkI7d0JBQzNCLE9BQU87d0JBQ1AsU0FBUzt3QkFDVCxhQUFhO3FCQUNkLFlBQ1M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBMVDt3REFzTlEsTUFBTTtzQkFBZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGl0bGVDYXNlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QsIElucHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IElvbkJ1dHRvbiwgSW9uSWNvbiB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgYWRkSWNvbnMgfSBmcm9tICdpb25pY29ucyc7XG5pbXBvcnQge1xuICBidXNpbmVzc091dGxpbmUsXG4gIGNoZXZyb25Gb3J3YXJkT3V0bGluZSxcbiAgbWFpbE91dGxpbmUsXG4gIHBlb3BsZU91dGxpbmUsXG4gIHN3YXBIb3Jpem9udGFsT3V0bGluZSxcbiAgd2FybmluZ091dGxpbmUsXG59IGZyb20gJ2lvbmljb25zL2ljb25zJztcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IERpc3BsYXlDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9kaXNwbGF5L2Rpc3BsYXkuY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy90ZXh0L3RleHQuY29tcG9uZW50JztcbmltcG9ydCB7IFRpdGxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdGl0bGUvdGl0bGUuY29tcG9uZW50JztcbmltcG9ydCB7IEN0YUNhcmRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvY3RhLWNhcmQvY3RhLWNhcmQuY29tcG9uZW50JztcbmltcG9ydCB7IEVtcHR5U3RhdGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvZW1wdHktc3RhdGUvZW1wdHktc3RhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IEVtcHR5U3RhdGVNZXRhZGF0YSB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9lbXB0eS1zdGF0ZS90eXBlcyc7XG5pbXBvcnQgeyBjcmVhdGVFcnJvclN0YXRlUHJvcHMgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvZW1wdHktc3RhdGUvZmFjdG9yeSc7XG5pbXBvcnQgeyBJbnZpdGF0aW9uQ2FyZENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9pbnZpdGF0aW9uLWNhcmQvaW52aXRhdGlvbi1jYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCdXR0b25Hcm91cE1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2J1dHRvbi1ncm91cC90eXBlcyc7XG5pbXBvcnQgeyBTa2VsZXRvbkxheW91dENvbXBvbmVudCB9IGZyb20gJy4uL3NrZWxldG9uLWxheW91dC9za2VsZXRvbi1sYXlvdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbk1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2F1dGgvYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBpbnRlcnByZXRFcnJvciB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Vycm9ycy9pbnRlcnByZXQtZXJyb3InO1xuaW1wb3J0IHsgTW9kYWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbW9kYWwvbW9kYWwuc2VydmljZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL25hdmlnYXRpb24vbmF2aWdhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IE9yZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9vcmcvb3JnLnNlcnZpY2UnO1xuaW1wb3J0IHsgT3JnYW5pemF0aW9uLCBQZW5kaW5nSW52aXRhdGlvbiB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL29yZy90eXBlcyc7XG5pbXBvcnQgeyBjb25uZWN0UGFnZVJlZnJlc2ggfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wYWdlLXJlZnJlc2gvcGFnZS1yZWZyZXNoLnNlcnZpY2UnO1xuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdG9hc3Quc2VydmljZSc7XG5pbXBvcnQgeyBWYWx0ZWNoRXJyb3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZXJyb3JzL3ZhbHRlY2gtZXJyb3Iuc2VydmljZSc7XG5cbmltcG9ydCB7IENyZWF0ZU9yZ01vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi4vY3JlYXRlLW9yZy1tb2RhbC9jcmVhdGUtb3JnLW1vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEZWxldGVBY2NvdW50TW9kYWxDb21wb25lbnQgfSBmcm9tICcuLi9kZWxldGUtYWNjb3VudC1tb2RhbC9kZWxldGUtYWNjb3VudC1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgT3JnSW5mb1NoZWV0Q29tcG9uZW50IH0gZnJvbSAnLi4vb3JnLWluZm8tc2hlZXQvb3JnLWluZm8tc2hlZXQuY29tcG9uZW50JztcbmltcG9ydCB7IFN3aXRjaE9yZ01vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi4vc3dpdGNoLW9yZy1tb2RhbC9zd2l0Y2gtb3JnLW1vZGFsLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IEFjY291bnRWaWV3Q29uZmlnIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBBQ0NPVU5UX1ZJRVdfSTE4TiB9IGZyb20gJy4vYWNjb3VudC12aWV3LmkxOG4nO1xuXG5hZGRJY29ucyh7IHBlb3BsZU91dGxpbmUsIGJ1c2luZXNzT3V0bGluZSwgY2hldnJvbkZvcndhcmRPdXRsaW5lLCBzd2FwSG9yaXpvbnRhbE91dGxpbmUsIG1haWxPdXRsaW5lLCB3YXJuaW5nT3V0bGluZSB9KTtcblxuY29uc3QgREVGQVVMVF9OQU1FU1BBQ0UgPSAnU2V0dGluZ3MuQWNjb3VudCc7XG5jb25zdCBERUZBVUxUX01BTkFHRV9PUkdfUk9VVEUgPSAnL2FwcC9zZXR0aW5ncy9vcmdhbml6YXRpb24nO1xuXG4vKipcbiAqIGB2YWwtYWNjb3VudC12aWV3YCDigJQgdmlzdGEgQ3VlbnRhIGZ1bGwtZmVhdHVyZSBhdXRvY29udGVuaWRhIChvcmdhbmlzbSkuXG4gKiBQcm9tb3ZpZGEgZGVzZGUgYHNob3djYXNlYCBiYWpvIGVsIHByb2Nlc28gZGUgQURSLTAyMS4gUmXDum5lOlxuICogIC0gKipJbnZpdGFjaW9uZXMgcGVuZGllbnRlcyoqIOKAlCBhY2VwdGFyIC8gcmVjaGF6YXIgKGB2YWwtaW52aXRhdGlvbi1jYXJkYCkuXG4gKiAgLSAqKk9yZ2FuaXphY2lvbmVzKiog4oCUIGNhcmQgZGUgb3JnIGFjdGl2YSArIGVtcHR5LWNhcmQgKyBDVEEgXCJOdWV2YSBvcmdcIlxuICogICAgKG1vZGFsIGB2YWwtY3JlYXRlLW9yZy1tb2RhbGApICsgXCJWZXIgdG9kYXNcIiAobW9kYWwgYHZhbC1zd2l0Y2gtb3JnLW1vZGFsYCkuXG4gKiAgLSAqKkNlcnJhciBlc3RhIHNlc2nDs24qKiDigJQgYGF1dGgubG9nb3V0V2l0aENvbmZpcm1hdGlvbigpYC5cbiAqICAtICoqRWxpbWluYXIgY3VlbnRhKiog4oCUIG1vZGFsIGB2YWwtZGVsZXRlLWFjY291bnQtbW9kYWxgLlxuICpcbiAqIE5PIHJlbmRlcml6YSBpb24tY29udGVudCDigJQgdml2ZSBkZW50cm8gZGUgdmFsLXBhZ2Utd3JhcHBlci4gTm8gdXNhIGRlZXAtbGlua3M7XG4gKiBgQWN0aXZhdGVkUm91dGVgIHNlIGlueWVjdGEgYHsgb3B0aW9uYWw6IHRydWUgfWAgc29sbyBwYXJhIGxlZXIgZWwgcm91dGUgZGF0YVxuICogZGUgY29uZmlnLiBMYSBuYXZlZ2FjacOzbiBhIGxhIG9yZyByb3V0ZSB2YSBwb3IgYE5hdmlnYXRpb25TZXJ2aWNlYC5cbiAqXG4gKiBBdXRvLXJlZ2lzdHJhIHN1cyBkZWZhdWx0cyBpMThuIChlcy9lbikgZW4gZWwgY29uc3RydWN0b3Igc2kgZWwgY29uc3VtZXIgbm9cbiAqIHByb3ZlecOzIGVsIG5hbWVzcGFjZSBjb25maWd1cmFkbyAoZGVmYXVsdCBgU2V0dGluZ3MuQWNjb3VudGApLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtYWNjb3VudC12aWV3JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIERpc3BsYXlDb21wb25lbnQsXG4gICAgRW1wdHlTdGF0ZUNvbXBvbmVudCxcbiAgICBTa2VsZXRvbkxheW91dENvbXBvbmVudCxcbiAgICBUaXRsZUNvbXBvbmVudCxcbiAgICBUZXh0Q29tcG9uZW50LFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBDdGFDYXJkQ29tcG9uZW50LFxuICAgIEludml0YXRpb25DYXJkQ29tcG9uZW50LFxuICAgIENyZWF0ZU9yZ01vZGFsQ29tcG9uZW50LFxuICAgIERlbGV0ZUFjY291bnRNb2RhbENvbXBvbmVudCxcbiAgICBJb25JY29uLFxuICAgIElvbkJ1dHRvbixcbiAgICBUaXRsZUNhc2VQaXBlLFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJwYWdlXCI+XG4gICAgICA8aGVhZGVyIGNsYXNzPVwicGFnZS1oZWFkZXJcIj5cbiAgICAgICAgPHZhbC1kaXNwbGF5IFtwcm9wc109XCJ7IHNpemU6ICdzbWFsbCcsIGNvbG9yOiAnZGFyaycsIGNvbnRlbnQ6IHBhZ2VUaXRsZSgpIH1cIiAvPlxuICAgICAgICA8dmFsLXRpdGxlXG4gICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgIHNpemU6ICdsYXJnZScsXG4gICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgYm9sZDogZmFsc2UsXG4gICAgICAgICAgICBjb250ZW50OiBwYWdlRGVzY3JpcHRpb24oKSxcbiAgICAgICAgICB9XCJcbiAgICAgICAgLz5cbiAgICAgIDwvaGVhZGVyPlxuXG4gICAgICBAaWYgKHJlc29sdmVkQ29uZmlnKCkuc2hvd1BlbmRpbmdJbnZpdGVzICYmIHBlbmRpbmdJbnZpdGVzKCkubGVuZ3RoID4gMCkge1xuICAgICAgICA8dmFsLXRpdGxlXG4gICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgIGJvbGQ6IHRydWUsXG4gICAgICAgICAgICBjb250ZW50OiB0dCgncGVuZGluZ0ludml0ZXNUaXRsZScpLFxuICAgICAgICAgIH1cIlxuICAgICAgICAvPlxuICAgICAgICBAZm9yIChpbnZpdGUgb2YgcGVuZGluZ0ludml0ZXMoKTsgdHJhY2sgaW52aXRlLm9yZ0lkKSB7XG4gICAgICAgICAgPHZhbC1pbnZpdGF0aW9uLWNhcmRcbiAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgIHRva2VuOiBpbnZpdGUub3JnSWQsXG4gICAgICAgICAgICAgIG9yZ05hbWU6IGludml0ZS5vcmdOYW1lLFxuICAgICAgICAgICAgICBpbnZpdGVyTmFtZTogaW52aXRlLmludml0ZXJOYW1lLFxuICAgICAgICAgICAgICByb2xlOiBpbnZpdGUucm9sZUlkLFxuICAgICAgICAgICAgICBhY2NlcHRpbmc6IGludml0ZUFjY2VwdGluZygpID09PSBpbnZpdGUub3JnSWQsXG4gICAgICAgICAgICAgIGRpc2FibGVkOiAhIWludml0ZUFjY2VwdGluZygpLFxuICAgICAgICAgICAgICBhY2NlcHRMYWJlbDogdHQoJ2FjY2VwdCcpLFxuICAgICAgICAgICAgICBkZWNsaW5lTGFiZWw6IHR0KCdkZWNsaW5lJyksXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIChvbkFjY2VwdCk9XCJhY2NlcHRQZW5kaW5nSW52aXRlKGludml0ZSlcIlxuICAgICAgICAgICAgKG9uRGVjbGluZSk9XCJkZWNsaW5lUGVuZGluZ0ludml0ZShpbnZpdGUpXCJcbiAgICAgICAgICAvPlxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBpZiAocmVzb2x2ZWRDb25maWcoKS5zaG93T3JnYW5pemF0aW9ucykge1xuICAgICAgICA8IS0tIE9yZ2FuaXphdGlvbnMgLS0+XG4gICAgICAgIDxzZWN0aW9uIGNsYXNzPVwic2V0dGluZ3Mtc2VjdGlvblwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWhlYWRlci1yb3dcIj5cbiAgICAgICAgICAgIDx2YWwtdGl0bGVcbiAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICBzaXplOiAnbWVkaXVtJyxcbiAgICAgICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgICAgIGJvbGQ6IHRydWUsXG4gICAgICAgICAgICAgICAgY29udGVudDogb3Jnc0FjdGl2ZVRpdGxlKCksXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIEBpZiAob3JncygpLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgPGlvbi1idXR0b24gZmlsbD1cIm91dGxpbmVcIiBjb2xvcj1cImRhcmtcIiBzaGFwZT1cInJvdW5kXCIgc2l6ZT1cInNtYWxsXCIgKGNsaWNrKT1cIm9uU3dpdGNoQWNjb3VudCgpXCI+XG4gICAgICAgICAgICAgICAge3sgdHQoJ29yZ3NTd2l0Y2gnKSB9fVxuICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tYm9keVwiPlxuICAgICAgICAgICAgQGlmIChvcmdzTG9hZGluZygpKSB7XG4gICAgICAgICAgICAgIDx2YWwtc2tlbGV0b24tbGF5b3V0IFtwcm9wc109XCJ7IHByZXNldDogJ2xpc3QnLCByb3dzOiAzIH1cIiAvPlxuICAgICAgICAgICAgfSBAZWxzZSBpZiAob3Jnc0Vycm9yU3RhdGUoKSkge1xuICAgICAgICAgICAgICA8dmFsLWVtcHR5LXN0YXRlIFtwcm9wc109XCJvcmdzRXJyb3JTdGF0ZSgpIVwiIC8+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgQGlmIChhY3RpdmVPcmcoKTsgYXMgb3JnKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9yZ3MtbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9yZy1jYXJkIG9yZy1jYXJkLS1hY3RpdmVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9yZy1jYXJkX19pY29uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgQGlmIChhY3RpdmVPcmcoKT8ubG9nb1VybCAmJiAhYWN0aXZlT3JnTG9nb0ZhaWxlZCgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiYWN0aXZlT3JnKCkhLmxvZ29VcmwhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2FsdF09XCJhY3RpdmVPcmcoKT8ubmFtZSA/PyAnJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChlcnJvcik9XCJhY3RpdmVPcmdMb2dvRmFpbGVkLnNldCh0cnVlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJidXNpbmVzcy1vdXRsaW5lXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3JnLWNhcmRfX2JvZHlcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm9yZy1jYXJkX19uYW1lXCI+e3sgb3JnLm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9yZy1jYXJkX19tZXRhXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm9yZy1jYXJkX19tZXRhLWl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJvcmctY2FyZF9fbWV0YS1sYWJlbFwiPnt7IHR0KCdvcmdzTGFiZWxUeXBlJykgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt7IG9yZ1R5cGVMYWJlbChvcmcudHlwZSkgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoYWN0aXZlT3JnUm9sZSgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwib3JnLWNhcmRfX21ldGEtaXRlbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwib3JnLWNhcmRfX21ldGEtbGFiZWxcIj57eyB0dCgnb3Jnc0xhYmVsUm9sZScpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGFjdGl2ZU9yZ1JvbGUoKSB8IHRpdGxlY2FzZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm9yZy1jYXJkX19tZXRhLWl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJvcmctY2FyZF9fbWV0YS1sYWJlbFwiPnt7IHR0KCdvcmdzTGFiZWxTdGF0dXMnKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdHQoJ29yZ3NTdGF0dXNBY3RpdmUnKSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9yZy1jYXJkX19lbmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwib3V0bGluZVwiIGNvbG9yPVwiZGFya1wiIHNoYXBlPVwicm91bmRcIiBzaXplPVwic21hbGxcIiAoY2xpY2spPVwib25NYW5hZ2VPcmcoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgdHQoJ29yZ3NNYW5hZ2UnKSB9fVxuICAgICAgICAgICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgfSBAZWxzZSBpZiAob3JncygpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvcmdzLWVtcHR5LWNhcmRcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvcmdzLWVtcHR5LWNhcmRfX21haW5cIj5cbiAgICAgICAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJwZW9wbGUtb3V0bGluZVwiIGNsYXNzPVwib3Jncy1lbXB0eS1jYXJkX19pY29uXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJvcmdzLWVtcHR5LWNhcmRfX3RleHRcIj57eyBvcmdzRW1wdHkoKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm9yZ3MtZW1wdHktY2FyZF9fbGlua1wiIChjbGljayk9XCJvbk1vcmVJbmZvKClcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgb3Jnc01vcmVJbmZvKCkgfX1cbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIEBpZiAocmVzb2x2ZWRDb25maWcoKS5zaG93TmV3T3JnQ3RhKSB7XG4gICAgICAgICAgICAgICAgPCEtLSBOdWV2YSBvcmdhbml6YWNpb246IENUQSBjYXJkIGNvbiB0aXR1bG8sIHN1YnRpdHVsbyB5IGJvdG9uIC0tPlxuICAgICAgICAgICAgICAgIDx2YWwtY3RhLWNhcmQgY2xhc3M9XCJvcmctbmV3LWN0YS1jYXJkXCIgW3Byb3BzXT1cIm5ld09yZ0N0YVByb3BzKClcIiAob25BY3Rpb24pPVwib25OZXdPcmcoKVwiIC8+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgfVxuXG4gICAgICBAaWYgKHJlc29sdmVkQ29uZmlnKCkuc2hvd0xvZ291dCkge1xuICAgICAgICA8IS0tIExvZ291dCB0aGlzIHNlc3Npb24gLS0+XG4gICAgICAgIDxzZWN0aW9uIGNsYXNzPVwic2V0dGluZ3Mtc2VjdGlvblwiPlxuICAgICAgICAgIDx2YWwtdGl0bGVcbiAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgICBib2xkOiB0cnVlLFxuICAgICAgICAgICAgICBjb250ZW50OiBsb2dvdXRUaXRsZSgpLFxuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1ib2R5XCI+XG4gICAgICAgICAgICA8dmFsLXRleHRcbiAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICBjb250ZW50OiBsb2dvdXRIaW50KCksXG4gICAgICAgICAgICAgICAgc2l6ZTogJ21lZGl1bScsXG4gICAgICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgICAgICBib2xkOiBmYWxzZSxcbiAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdy1hY3Rpb25zXCI+XG4gICAgICAgICAgICAgIDx2YWwtYnV0dG9uIFtwcm9wc109XCJsb2dvdXRCdXR0b25Qcm9wcygpXCIgKGNsaWNrKT1cIm9uTG9nb3V0KClcIiAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvc2VjdGlvbj5cbiAgICAgIH1cblxuICAgICAgQGlmIChyZXNvbHZlZENvbmZpZygpLnNob3dEZWxldGVBY2NvdW50KSB7XG4gICAgICAgIDwhLS0gRGVsZXRlIGFjY291bnQgLS0+XG4gICAgICAgIDxzZWN0aW9uIGNsYXNzPVwic2V0dGluZ3Mtc2VjdGlvbiBzZXR0aW5ncy1zZWN0aW9uLS1kYW5nZXJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi10aXRsZS1kYW5nZXJcIj5cbiAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwid2FybmluZy1vdXRsaW5lXCIgY2xhc3M9XCJkYW5nZXItaWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICA8dmFsLXRpdGxlIFtwcm9wc109XCJ7IHNpemU6ICdtZWRpdW0nLCBjb2xvcjogJ2RhcmsnLCBib2xkOiB0cnVlLCBjb250ZW50OiBkYW5nZXJEZWxldGVUaXRsZSgpIH1cIiAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWJvZHlcIj5cbiAgICAgICAgICAgIDx2YWwtdGV4dFxuICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGRhbmdlckRlbGV0ZUhpbnQoKSxcbiAgICAgICAgICAgICAgICBzaXplOiAnbWVkaXVtJyxcbiAgICAgICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgICAgIGJvbGQ6IGZhbHNlLFxuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93LWFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgPHZhbC1idXR0b24gW3Byb3BzXT1cImRlbGV0ZUFjY291bnRCdXR0b25Qcm9wcygpXCIgKG9uQ2xpY2spPVwib25EZWxldGVBY2NvdW50KClcIiAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvc2VjdGlvbj5cbiAgICAgIH1cbiAgICAgIDx2YWwtY3JlYXRlLW9yZy1tb2RhbFxuICAgICAgICBbaXNPcGVuXT1cImNyZWF0ZU9yZ09wZW4oKVwiXG4gICAgICAgIFtpMThuTmFtZXNwYWNlXT1cIidDcmVhdGVPcmdNb2RhbCdcIlxuICAgICAgICAoZGlzbWlzc2VkKT1cImNyZWF0ZU9yZ09wZW4uc2V0KGZhbHNlKVwiXG4gICAgICAgIChjcmVhdGVkKT1cIm9uT3JnQ3JlYXRlZCgkZXZlbnQpXCJcbiAgICAgIC8+XG4gICAgICA8dmFsLWRlbGV0ZS1hY2NvdW50LW1vZGFsXG4gICAgICAgIFtpc09wZW5dPVwiZGVsZXRlQWNjb3VudE9wZW4oKVwiXG4gICAgICAgIFtpMThuTmFtZXNwYWNlXT1cIidTZXR0aW5ncy5EZWxldGVBY2NvdW50J1wiXG4gICAgICAgIChkaXNtaXNzZWQpPVwiZGVsZXRlQWNjb3VudE9wZW4uc2V0KGZhbHNlKVwiXG4gICAgICAvPlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICAucGFnZSB7XG4gICAgICAgIHBhZGRpbmc6IDE2cHggMDtcbiAgICAgICAgbWF4LXdpZHRoOiA3MjBweDtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICB9XG4gICAgICAucGFnZS1oZWFkZXIge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgICAgfVxuICAgICAgLnNldHRpbmdzLXNlY3Rpb24ge1xuICAgICAgICBwYWRkaW5nOiAxNnB4IDA7XG4gICAgICB9XG4gICAgICAuc2V0dGluZ3Mtc2VjdGlvbiArIC5zZXR0aW5ncy1zZWN0aW9uIHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLXZhbC1ib3JkZXItY29sb3IsIHJnYmEoMCwgMCwgMCwgMC4wOCkpO1xuICAgICAgfVxuICAgICAgLnNldHRpbmdzLXNlY3Rpb24gdmFsLXRpdGxlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgICB9XG4gICAgICAuc2VjdGlvbi1ib2R5IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAxMHB4O1xuICAgICAgfVxuICAgICAgLnJvdy1hY3Rpb25zIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMTJweDtcbiAgICAgIH1cbiAgICAgIC5yb3ctYWN0aW9ucy0tZ2FwIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgIH1cbiAgICAgIC5zZWN0aW9uLWhlYWRlci1yb3cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgICB9XG4gICAgICAub3JnLW5ldy1jdGEtY2FyZCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICAgICAgfVxuICAgICAgLm9yZ3MtZW1wdHktY2FyZCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1zZWNvbmRhcnktdGludCwgcmdiYSh2YXIoLS1pb24tY29sb3Itc2Vjb25kYXJ5LXJnYiwgMTMwLCAxMDEsIDIwOCksIDAuMikpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxOHB4O1xuICAgICAgICBwYWRkaW5nOiAxOHB4IDE2cHggMTJweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICB9XG4gICAgICAub3Jncy1lbXB0eS1jYXJkX19tYWluIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAxMHB4O1xuICAgICAgfVxuICAgICAgLm9yZ3MtZW1wdHktY2FyZF9faWNvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyayk7XG4gICAgICB9XG4gICAgICAub3Jncy1lbXB0eS1jYXJkX190ZXh0IHtcbiAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrKTtcbiAgICAgIH1cbiAgICAgIC5vcmdzLWVtcHR5LWNhcmRfX2xpbmsge1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAwLjgxMjVyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSk7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IDJweDtcbiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgICB9XG4gICAgICAub3Jncy1saXN0IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICB9XG4gICAgICAub3JnLWNhcmQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDE0cHg7XG4gICAgICAgIHBhZGRpbmc6IDE0cHggMTZweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLWxpZ2h0LCAjZjRmNWY4KTtcbiAgICAgICAgYm9yZGVyOiAxLjVweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgIGJhY2tncm91bmQgMC4xNXMsXG4gICAgICAgICAgYm9yZGVyLWNvbG9yIDAuMTVzO1xuICAgICAgfVxuICAgICAgLm9yZy1jYXJkOmFjdGl2ZSB7XG4gICAgICAgIG9wYWNpdHk6IDAuNzU7XG4gICAgICB9XG4gICAgICAub3JnLWNhcmQtLWFjdGl2ZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0taW9uLWNvbG9yLXByaW1hcnkpO1xuICAgICAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0taW9uLWNvbG9yLXByaW1hcnkpIDglLCB0cmFuc3BhcmVudCk7XG4gICAgICB9XG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLm9yZy1jYXJkLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5vcmctY2FyZCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLm9yZy1jYXJkIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KTtcbiAgICAgIH1cbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAub3JnLWNhcmQtLWFjdGl2ZSxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAub3JnLWNhcmQtLWFjdGl2ZSxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLm9yZy1jYXJkLS1hY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0taW9uLWNvbG9yLXByaW1hcnkpIDE1JSwgdHJhbnNwYXJlbnQpO1xuICAgICAgfVxuICAgICAgLm9yZy1jYXJkX19pY29uIHtcbiAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0taW9uLWNvbG9yLXByaW1hcnkpIDE1JSwgdHJhbnNwYXJlbnQpO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1wcmltYXJ5KTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgaW1nIHtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAub3JnLWNhcmRfX2JvZHkge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMnB4O1xuICAgICAgfVxuICAgICAgLm9yZy1jYXJkX19uYW1lIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgZm9udC1zaXplOiAwLjk1cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgIH1cbiAgICAgIC5vcmctY2FyZF9fbWV0YSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMXB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAzcHg7XG4gICAgICB9XG4gICAgICAub3JnLWNhcmRfX21ldGEtaXRlbSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43OHJlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrKTtcbiAgICAgIH1cbiAgICAgIC5vcmctY2FyZF9fbWV0YS1sYWJlbCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyayk7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNHB4O1xuICAgICAgfVxuICAgICAgLm9yZy1jYXJkX19lbmQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICB9XG4gICAgICAuc2VjdGlvbi10aXRsZS1kYW5nZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgICAgIH1cbiAgICAgIC5zZWN0aW9uLXRpdGxlLWRhbmdlciB2YWwtdGl0bGUge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuICAgICAgLmRhbmdlci1pY29uIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3Itd2FybmluZy1zaGFkZSwgI2Q0YTAxNyk7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgfVxuICAgICAgLnNldHRpbmdzLXNlY3Rpb24tLWRhbmdlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1pb24tY29sb3ItZGFuZ2VyKSA0JSwgdHJhbnNwYXJlbnQpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICAgICAgICBwYWRkaW5nOiAxNnB4O1xuICAgICAgICBtYXJnaW46IDAgLTRweDtcbiAgICAgIH1cbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuc2V0dGluZ3Mtc2VjdGlvbi0tZGFuZ2VyLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5zZXR0aW5ncy1zZWN0aW9uLS1kYW5nZXIsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5zZXR0aW5ncy1zZWN0aW9uLS1kYW5nZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0taW9uLWNvbG9yLWRhbmdlcikgOCUsIHRyYW5zcGFyZW50KTtcbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBY2NvdW50Vmlld0NvbXBvbmVudCB7XG4gIHByaXZhdGUgbmF2ID0gaW5qZWN0KE5hdmlnYXRpb25TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBhdXRoID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBvcmdTZXJ2aWNlID0gaW5qZWN0KE9yZ1NlcnZpY2UpO1xuICBwcml2YXRlIG1vZGFsU2VydmljZSA9IGluamVjdChNb2RhbFNlcnZpY2UpO1xuICBwcml2YXRlIHRvYXN0ID0gaW5qZWN0KFRvYXN0U2VydmljZSk7XG4gIHByaXZhdGUgZXJyb3JzID0gaW5qZWN0KFZhbHRlY2hFcnJvclNlcnZpY2UpO1xuICBwcml2YXRlIHJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIC8qKlxuICAgKiBDb25maWcgdsOtYSBASW5wdXQgKG9iamVjdC1maXJzdCkuIFNpIG5vIHNlIHBhc2EsIHNlIGNhZSBhbCByb3V0ZSBkYXRhXG4gICAqIGBhY2NvdW50Q29uZmlnYCAocG9ibGFkbyBwb3IgYHByb3ZpZGVWYWx0ZWNoQWNjb3VudFJvdXRlc2ApLiBgcmVzb2x2ZWRDb25maWdgXG4gICAqIG1lcmdlYSBjb24gbG9zIGRlZmF1bHRzIOKAlCBgQElucHV0YCBnYW5hIHNvYnJlIHJvdXRlIGRhdGEuXG4gICAqL1xuICBASW5wdXQoKSBjb25maWc/OiBBY2NvdW50Vmlld0NvbmZpZztcblxuICByZWFkb25seSByZXNvbHZlZENvbmZpZyA9IGNvbXB1dGVkPFxuICAgIFJlcXVpcmVkPE9taXQ8QWNjb3VudFZpZXdDb25maWcsICdvbk9yZ1N3aXRjaGVkJyB8ICdvbk9yZ0NyZWF0ZWQnIHwgJ29uTG9nZ2VkT3V0JyB8ICdvbkFjY291bnREZWxldGVkJz4+ICZcbiAgICAgIFBpY2s8QWNjb3VudFZpZXdDb25maWcsICdvbk9yZ1N3aXRjaGVkJyB8ICdvbk9yZ0NyZWF0ZWQnIHwgJ29uTG9nZ2VkT3V0JyB8ICdvbkFjY291bnREZWxldGVkJz5cbiAgPigoKSA9PiB7XG4gICAgY29uc3QgZnJvbVJvdXRlID0gKHRoaXMucm91dGU/LnNuYXBzaG90LmRhdGFbJ2FjY291bnRDb25maWcnXSA/PyB7fSkgYXMgQWNjb3VudFZpZXdDb25maWc7XG4gICAgY29uc3QgbWVyZ2VkOiBBY2NvdW50Vmlld0NvbmZpZyA9IHsgLi4uZnJvbVJvdXRlLCAuLi4odGhpcy5jb25maWcgPz8ge30pIH07XG4gICAgcmV0dXJuIHtcbiAgICAgIHNob3dQZW5kaW5nSW52aXRlczogbWVyZ2VkLnNob3dQZW5kaW5nSW52aXRlcyA/PyB0cnVlLFxuICAgICAgc2hvd09yZ2FuaXphdGlvbnM6IG1lcmdlZC5zaG93T3JnYW5pemF0aW9ucyA/PyB0cnVlLFxuICAgICAgc2hvd05ld09yZ0N0YTogbWVyZ2VkLnNob3dOZXdPcmdDdGEgPz8gZmFsc2UsXG4gICAgICBzaG93TG9nb3V0OiBtZXJnZWQuc2hvd0xvZ291dCA/PyB0cnVlLFxuICAgICAgc2hvd0RlbGV0ZUFjY291bnQ6IG1lcmdlZC5zaG93RGVsZXRlQWNjb3VudCA/PyB0cnVlLFxuICAgICAgaTE4bk5hbWVzcGFjZTogbWVyZ2VkLmkxOG5OYW1lc3BhY2UgPz8gREVGQVVMVF9OQU1FU1BBQ0UsXG4gICAgICBtYW5hZ2VPcmdSb3V0ZTogbWVyZ2VkLm1hbmFnZU9yZ1JvdXRlID8/IERFRkFVTFRfTUFOQUdFX09SR19ST1VURSxcbiAgICAgIG9uT3JnU3dpdGNoZWQ6IG1lcmdlZC5vbk9yZ1N3aXRjaGVkLFxuICAgICAgb25PcmdDcmVhdGVkOiBtZXJnZWQub25PcmdDcmVhdGVkLFxuICAgICAgb25Mb2dnZWRPdXQ6IG1lcmdlZC5vbkxvZ2dlZE91dCxcbiAgICAgIG9uQWNjb3VudERlbGV0ZWQ6IG1lcmdlZC5vbkFjY291bnREZWxldGVkLFxuICAgIH07XG4gIH0pO1xuXG4gIC8qKiBOYW1lc3BhY2UgaTE4biByZXN1ZWx0byAoY2FwdHVyYWRvIHBhcmEgbGxhbWFkYXMgbm8tcmVhY3RpdmFzKS4gKi9cbiAgcHJpdmF0ZSBnZXQgbnMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlZENvbmZpZygpLmkxOG5OYW1lc3BhY2U7XG4gIH1cblxuICByZWFkb25seSBvcmdzID0gc2lnbmFsPE9yZ2FuaXphdGlvbltdPihbXSk7XG4gIHJlYWRvbmx5IG9yZ3NMb2FkaW5nID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBvcmdzRXJyb3IgPSBzaWduYWw8dW5rbm93bj4obnVsbCk7XG5cbiAgcmVhZG9ubHkgb3Jnc0Vycm9yU3RhdGUgPSBjb21wdXRlZDxFbXB0eVN0YXRlTWV0YWRhdGEgfCBudWxsPigoKSA9PiB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICBjb25zdCBlcnIgPSB0aGlzLm9yZ3NFcnJvcigpO1xuICAgIGlmICghZXJyKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gY3JlYXRlRXJyb3JTdGF0ZVByb3BzKGVyciwge1xuICAgICAgdGl0bGU6IHtcbiAgICAgICAgb2ZmbGluZTogdGhpcy50dCgnb3Jnc09mZmxpbmVUaXRsZScpLFxuICAgICAgICBlcnJvcjogdGhpcy50dCgnb3Jnc0Vycm9yVGl0bGUnKSxcbiAgICAgIH0sXG4gICAgICBkZXNjcmlwdGlvbjoge1xuICAgICAgICBvZmZsaW5lOiB0aGlzLnR0KCdvcmdzT2ZmbGluZUhpbnQnKSxcbiAgICAgICAgZXJyb3I6IGludGVycHJldEVycm9yKGVycikubWVzc2FnZSxcbiAgICAgIH0sXG4gICAgICByZXRyeUxhYmVsOiB0aGlzLnR0KCdvcmdzUmV0cnknKSxcbiAgICAgIG9uUmV0cnk6ICgpID0+IHRoaXMubG9hZE9yZ3MoKSxcbiAgICAgIHJldHJ5aW5nOiB0aGlzLm9yZ3NMb2FkaW5nKCksXG4gICAgfSk7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGNyZWF0ZU9yZ09wZW4gPSBzaWduYWwoZmFsc2UpO1xuICByZWFkb25seSBkZWxldGVBY2NvdW50T3BlbiA9IHNpZ25hbChmYWxzZSk7XG4gIHJlYWRvbmx5IGFjdGl2ZU9yZ0xvZ29GYWlsZWQgPSBzaWduYWwoZmFsc2UpO1xuXG4gIHJlYWRvbmx5IHBlbmRpbmdJbnZpdGVzID0gc2lnbmFsPFBlbmRpbmdJbnZpdGF0aW9uW10+KFtdKTtcbiAgcmVhZG9ubHkgcGVuZGluZ0ludml0ZXNMb2FkaW5nID0gc2lnbmFsKGZhbHNlKTtcbiAgcmVhZG9ubHkgaW52aXRlQWNjZXB0aW5nID0gc2lnbmFsPHN0cmluZyB8IG51bGw+KG51bGwpO1xuXG4gIHJlYWRvbmx5IHBhZ2VUaXRsZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMudHQoJ3BhZ2VUaXRsZScpKTtcbiAgcmVhZG9ubHkgcGFnZURlc2NyaXB0aW9uID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50dCgncGFnZURlc2NyaXB0aW9uJykpO1xuICByZWFkb25seSBvcmdzVGl0bGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnR0KCdvcmdzVGl0bGUnKSk7XG4gIHJlYWRvbmx5IG9yZ3NBY3RpdmVUaXRsZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMudHQoJ29yZ3NBY3RpdmVUaXRsZScpKTtcbiAgcmVhZG9ubHkgb3Jnc0VtcHR5ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50dCgnb3Jnc0VtcHR5JykpO1xuICByZWFkb25seSBvcmdzTW9yZUluZm8gPSBjb21wdXRlZCgoKSA9PiB0aGlzLnR0KCdvcmdzTW9yZUluZm8nKSk7XG4gIHJlYWRvbmx5IG9yZ3NOZXdRdWVzdGlvbiA9IGNvbXB1dGVkKCgpID0+IHRoaXMudHQoJ29yZ3NOZXdRdWVzdGlvbicpKTtcbiAgcmVhZG9ubHkgb3Jnc05ld0hpbnQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnR0KCdvcmdzTmV3SGludCcpKTtcbiAgcmVhZG9ubHkgbmV3T3JnQ3RhUHJvcHMgPSBjb21wdXRlZCgoKSA9PiAoe1xuICAgIHRpdGxlOiB0aGlzLnR0KCdvcmdzTmV3UXVlc3Rpb24nKSxcbiAgICBkZXNjcmlwdGlvbjogdGhpcy50dCgnb3Jnc05ld0hpbnQnKSxcbiAgICBwYWRkaW5nOiAnMTZweCcsXG4gICAgYm9yZGVyUmFkaXVzOiAnMTRweCcsXG4gICAgYWN0aW9uczoge1xuICAgICAgcG9zaXRpb246ICdyaWdodCcsXG4gICAgICBjb2x1bW5lZDogZmFsc2UsXG4gICAgICBidXR0b25zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXh0OiB0aGlzLnR0KCdvcmdzTmV3Q3RhJyksXG4gICAgICAgICAgY29sb3I6ICdwcmltYXJ5JyxcbiAgICAgICAgICBmaWxsOiAnc29saWQnLFxuICAgICAgICAgIHNoYXBlOiAncm91bmQnLFxuICAgICAgICAgIHNpemU6ICdkZWZhdWx0JyxcbiAgICAgICAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICAgICAgICBzdGF0ZTogJ0VOQUJMRUQnLFxuICAgICAgICAgIHRva2VuOiAnYWNjb3VudC1uZXctb3JnJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSBhcyBCdXR0b25Hcm91cE1ldGFkYXRhLFxuICB9KSk7XG4gIHJlYWRvbmx5IGxvZ291dFRpdGxlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50dCgnbG9nb3V0VGl0bGUnKSk7XG4gIHJlYWRvbmx5IGxvZ291dEhpbnQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnR0KCdsb2dvdXRIaW50JykpO1xuICByZWFkb25seSBkYW5nZXJUaXRsZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMudHQoJ2RhbmdlclRpdGxlJykpO1xuICByZWFkb25seSBkYW5nZXJEZWxldGVUaXRsZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMudHQoJ2RhbmdlckRlbGV0ZVRpdGxlJykpO1xuICByZWFkb25seSBkYW5nZXJEZWxldGVIaW50ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50dCgnZGFuZ2VyRGVsZXRlSGludCcpKTtcblxuICByZWFkb25seSBhY3RpdmVPcmdJZCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCB1ID0gdGhpcy5hdXRoLnVzZXIoKSBhcyB7XG4gICAgICBhY3RpdmVPcmdJZD86IHN0cmluZztcbiAgICAgIGFjdGl2ZU9yZz86IHN0cmluZztcbiAgICB9IHwgbnVsbDtcbiAgICByZXR1cm4gdT8uYWN0aXZlT3JnSWQgPz8gdT8uYWN0aXZlT3JnID8/ICcnO1xuICB9KTtcblxuICByZWFkb25seSBhY3RpdmVPcmdSb2xlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHJvbGVzID0gKHRoaXMuYXV0aCBhcyB1bmtub3duIGFzIHsgcm9sZXM/OiAoKSA9PiBzdHJpbmdbXSB9KS5yb2xlcz8uKCkgPz8gW107XG4gICAgcmV0dXJuIHJvbGVzWzBdID8/IG51bGw7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGFjdGl2ZU9yZyA9IGNvbXB1dGVkKCgpID0+IHRoaXMub3JncygpLmZpbmQobyA9PiBvLmlkID09PSB0aGlzLmFjdGl2ZU9yZ0lkKCkpID8/IG51bGwpO1xuXG4gIHJlYWRvbmx5IGxvZ291dEJ1dHRvblByb3BzID0gY29tcHV0ZWQ8UGFydGlhbDxCdXR0b25NZXRhZGF0YT4+KCgpID0+ICh7XG4gICAgdGV4dDogdGhpcy50dCgnbG9nb3V0JyksXG4gICAgY29sb3I6ICdkYXJrJyxcbiAgICBmaWxsOiAnb3V0bGluZScsXG4gICAgc2l6ZTogJ2RlZmF1bHQnLFxuICAgIHNoYXBlOiAncm91bmQnLFxuICAgIHR5cGU6ICdidXR0b24nLFxuICAgIHRva2VuOiAnYWNjb3VudC1sb2dvdXQnLFxuICB9KSk7XG5cbiAgcmVhZG9ubHkgZGVsZXRlQWNjb3VudEJ1dHRvblByb3BzID0gY29tcHV0ZWQ8UGFydGlhbDxCdXR0b25NZXRhZGF0YT4+KCgpID0+ICh7XG4gICAgdGV4dDogdGhpcy50dCgnZGFuZ2VyRGVsZXRlQ3RhJyksXG4gICAgY29sb3I6ICdkYXJrJyxcbiAgICBmaWxsOiAnb3V0bGluZScsXG4gICAgc2l6ZTogJ2RlZmF1bHQnLFxuICAgIHNoYXBlOiAncm91bmQnLFxuICAgIHR5cGU6ICdidXR0b24nLFxuICAgIHRva2VuOiAnYWNjb3VudC1kZWxldGUnLFxuICB9KSk7XG5cbiAgcmVhZG9ubHkgc3dpdGNoQWNjb3VudEJ1dHRvblByb3BzID0gY29tcHV0ZWQ8UGFydGlhbDxCdXR0b25NZXRhZGF0YT4+KCgpID0+ICh7XG4gICAgdGV4dDogdGhpcy50dCgnc3dpdGNoQWNjb3VudEN0YScpLFxuICAgIGNvbG9yOiAnZGFyaycsXG4gICAgZmlsbDogJ291dGxpbmUnLFxuICAgIHNpemU6ICdkZWZhdWx0JyxcbiAgICBzaGFwZTogJ3JvdW5kJyxcbiAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICB0b2tlbjogJ2FjY291bnQtc3dpdGNoJyxcbiAgfSkpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGNvbnN0IG5zID0gdGhpcy5ucztcbiAgICBpZiAoIXRoaXMuaTE4bi5oYXNOYW1lc3BhY2UobnMpKSB7XG4gICAgICB0aGlzLmkxOG4ucmVnaXN0ZXJDb250ZW50KG5zLCBBQ0NPVU5UX1ZJRVdfSTE4Tik7XG4gICAgfVxuICAgIHRoaXMubmF2LnNldEJhY2tIZWFkZXIoJ3BhZ2VUaXRsZScsIG5zLCB7IHdpdGhNZW51OiB0cnVlIH0pO1xuICAgIHRoaXMubG9hZE9yZ3MoKTtcbiAgICB0aGlzLmxvYWRQZW5kaW5nSW52aXRlcygpO1xuICAgIGNvbm5lY3RQYWdlUmVmcmVzaChhc3luYyAoKSA9PiB7XG4gICAgICBhd2FpdCBQcm9taXNlLmFsbChbdGhpcy5sb2FkT3JncygpLCB0aGlzLmxvYWRQZW5kaW5nSW52aXRlcygpXSk7XG4gICAgfSk7XG4gIH1cblxuICBvcmdUeXBlTGFiZWwodHlwZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBtYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgICBQRVJTT05BTDogdGhpcy50dCgnb3Jnc1R5cGVQZXJzb25hbCcpLFxuICAgICAgUFJJVkFURTogdGhpcy50dCgnb3Jnc1R5cGVQcml2YXRlJyksXG4gICAgICBQVUJMSUM6IHRoaXMudHQoJ29yZ3NUeXBlUHVibGljJyksXG4gICAgICBCVVNJTkVTUzogdGhpcy50dCgnb3Jnc1R5cGVCdXNpbmVzcycpLFxuICAgIH07XG4gICAgcmV0dXJuIG1hcFt0eXBlXSA/PyB0eXBlO1xuICB9XG5cbiAgb25Td2l0Y2hBY2NvdW50KCk6IHZvaWQge1xuICAgIHZvaWQgdGhpcy5tb2RhbFNlcnZpY2Uub3Blbih7XG4gICAgICBjb21wb25lbnQ6IFN3aXRjaE9yZ01vZGFsQ29tcG9uZW50LFxuICAgICAgY29tcG9uZW50UHJvcHM6IHtcbiAgICAgICAgaTE4bk5hbWVzcGFjZTogJ1NldHRpbmdzLlN3aXRjaE9yZycsXG4gICAgICAgIG9uU3VjY2VzczogKCkgPT4ge1xuICAgICAgICAgIHRoaXMubG9hZE9yZ3MoKTtcbiAgICAgICAgICB0aGlzLmxvYWRQZW5kaW5nSW52aXRlcygpO1xuICAgICAgICAgIHRoaXMucmVzb2x2ZWRDb25maWcoKS5vbk9yZ1N3aXRjaGVkPy4oKTtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBicmVha3BvaW50czoge1xuICAgICAgICBicmVha3BvaW50czogWzAsIDAuODVdLFxuICAgICAgICBpbml0aWFsQnJlYWtwb2ludDogMC44NSxcbiAgICAgICAgc2hvd0hhbmRsZTogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICBiYWNrZHJvcERpc21pc3M6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICBvbkRlbGV0ZUFjY291bnQoKTogdm9pZCB7XG4gICAgdGhpcy5kZWxldGVBY2NvdW50T3Blbi5zZXQodHJ1ZSk7XG4gICAgdGhpcy5yZXNvbHZlZENvbmZpZygpLm9uQWNjb3VudERlbGV0ZWQ/LigpO1xuICB9XG5cbiAgb25NYW5hZ2VPcmcoKTogdm9pZCB7XG4gICAgdGhpcy5uYXYubmF2aWdhdGVCeVVybCh0aGlzLnJlc29sdmVkQ29uZmlnKCkubWFuYWdlT3JnUm91dGUpO1xuICB9XG5cbiAgb25OZXdPcmcoKTogdm9pZCB7XG4gICAgdGhpcy5jcmVhdGVPcmdPcGVuLnNldCh0cnVlKTtcbiAgfVxuXG4gIG9uT3JnQ3JlYXRlZChuZXdPcmc6IE9yZ2FuaXphdGlvbik6IHZvaWQge1xuICAgIHRoaXMubG9hZE9yZ3MoKTtcbiAgICB0aGlzLnJlc29sdmVkQ29uZmlnKCkub25PcmdDcmVhdGVkPy4obmV3T3JnKTtcbiAgfVxuXG4gIG9uTW9yZUluZm8oKTogdm9pZCB7XG4gICAgdm9pZCB0aGlzLm1vZGFsU2VydmljZS5vcGVuKHtcbiAgICAgIGNvbXBvbmVudDogT3JnSW5mb1NoZWV0Q29tcG9uZW50LFxuICAgICAgY29tcG9uZW50UHJvcHM6IHtcbiAgICAgICAgdGl0bGU6IHRoaXMudHQoJ29yZ3NJbmZvVGl0bGUnKSxcbiAgICAgICAgc3VidGl0bGU6IHRoaXMudHQoJ29yZ3NJbmZvU3VidGl0bGUnKSxcbiAgICAgICAgYm9keTogdGhpcy50dCgnb3Jnc0luZm9Db250ZW50JyksXG4gICAgICAgIGNsb3NlTGFiZWw6IHRoaXMudHQoJ29yZ3NJbmZvQ2xvc2UnKSxcbiAgICAgICAgY2xvc2VQcm9wczoge1xuICAgICAgICAgIHRleHQ6IHRoaXMudHQoJ29yZ3NJbmZvQ2xvc2UnKSxcbiAgICAgICAgICBmaWxsOiAnb3V0bGluZScsXG4gICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICBzaXplOiAnZGVmYXVsdCcsXG4gICAgICAgICAgZXhwYW5kOiAnYmxvY2snLFxuICAgICAgICAgIHR5cGU6ICdidXR0b24nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGJyZWFrcG9pbnRzOiB7XG4gICAgICAgIGJyZWFrcG9pbnRzOiBbMCwgMC44NV0sXG4gICAgICAgIGluaXRpYWxCcmVha3BvaW50OiAwLjg1LFxuICAgICAgICBzaG93SGFuZGxlOiB0cnVlLFxuICAgICAgfSxcbiAgICAgIGJhY2tkcm9wRGlzbWlzczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIG9uTG9nb3V0KCk6IHZvaWQge1xuICAgIHRoaXMuYXV0aC5sb2dvdXRXaXRoQ29uZmlybWF0aW9uKCk7XG4gICAgdGhpcy5yZXNvbHZlZENvbmZpZygpLm9uTG9nZ2VkT3V0Py4oKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZFBlbmRpbmdJbnZpdGVzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMucGVuZGluZ0ludml0ZXNMb2FkaW5nLnNldCh0cnVlKTtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4ocmVzb2x2ZSA9PiB7XG4gICAgICB0aGlzLm9yZ1NlcnZpY2VcbiAgICAgICAgLmdldFBlbmRpbmdJbnZpdGF0aW9ucygpXG4gICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6IGl0ZW1zID0+IHtcbiAgICAgICAgICAgIHRoaXMucGVuZGluZ0ludml0ZXMuc2V0KGl0ZW1zKTtcbiAgICAgICAgICAgIHRoaXMucGVuZGluZ0ludml0ZXNMb2FkaW5nLnNldChmYWxzZSk7XG4gICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5wZW5kaW5nSW52aXRlc0xvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIGFjY2VwdFBlbmRpbmdJbnZpdGUoaW52aXRlOiBQZW5kaW5nSW52aXRhdGlvbik6IHZvaWQge1xuICAgIGlmICh0aGlzLmludml0ZUFjY2VwdGluZygpKSByZXR1cm47XG4gICAgdGhpcy5pbnZpdGVBY2NlcHRpbmcuc2V0KGludml0ZS5vcmdJZCk7XG4gICAgdGhpcy5vcmdTZXJ2aWNlXG4gICAgICAuYWNjZXB0SW52aXRhdGlvbihpbnZpdGUub3JnSWQpXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnRvYXN0LnNob3coe1xuICAgICAgICAgICAgbWVzc2FnZTogdGhpcy50dCgnaW52aXRlQWNjZXB0ZWQnKSxcbiAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICBkdXJhdGlvbjogMzUwMCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICB0aGlzLnBlbmRpbmdJbnZpdGVzLnVwZGF0ZShsaXN0ID0+IGxpc3QuZmlsdGVyKGkgPT4gaS5vcmdJZCAhPT0gaW52aXRlLm9yZ0lkKSk7XG4gICAgICAgICAgdGhpcy5sb2FkT3JncygpO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogZXJyID0+IHtcbiAgICAgICAgICB0aGlzLmVycm9ycy5oYW5kbGUoZXJyLCB7IGNvbnRleHQ6ICdhY2NvdW50LmFjY2VwdFBlbmRpbmdJbnZpdGUnIH0pO1xuICAgICAgICAgIHRoaXMuaW52aXRlQWNjZXB0aW5nLnNldChudWxsKTtcbiAgICAgICAgfSxcbiAgICAgICAgY29tcGxldGU6ICgpID0+IHRoaXMuaW52aXRlQWNjZXB0aW5nLnNldChudWxsKSxcbiAgICAgIH0pO1xuICB9XG5cbiAgZGVjbGluZVBlbmRpbmdJbnZpdGUoaW52aXRlOiBQZW5kaW5nSW52aXRhdGlvbik6IHZvaWQge1xuICAgIGlmICh0aGlzLmludml0ZUFjY2VwdGluZygpKSByZXR1cm47XG4gICAgdGhpcy5pbnZpdGVBY2NlcHRpbmcuc2V0KGludml0ZS5vcmdJZCk7XG4gICAgdGhpcy5vcmdTZXJ2aWNlXG4gICAgICAuZGVjbGluZUludml0YXRpb24oaW52aXRlLm9yZ0lkKVxuICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy50b2FzdC5zaG93KHtcbiAgICAgICAgICAgIG1lc3NhZ2U6IHRoaXMudHQoJ2ludml0ZURlY2xpbmVkJyksXG4gICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgZHVyYXRpb246IDI1MDAsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy5wZW5kaW5nSW52aXRlcy51cGRhdGUobGlzdCA9PiBsaXN0LmZpbHRlcihpID0+IGkub3JnSWQgIT09IGludml0ZS5vcmdJZCkpO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogZXJyID0+IHtcbiAgICAgICAgICB0aGlzLmVycm9ycy5oYW5kbGUoZXJyLCB7IGNvbnRleHQ6ICdhY2NvdW50LmRlY2xpbmVQZW5kaW5nSW52aXRlJyB9KTtcbiAgICAgICAgICB0aGlzLmludml0ZUFjY2VwdGluZy5zZXQobnVsbCk7XG4gICAgICAgIH0sXG4gICAgICAgIGNvbXBsZXRlOiAoKSA9PiB0aGlzLmludml0ZUFjY2VwdGluZy5zZXQobnVsbCksXG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZE9yZ3MoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5vcmdzTG9hZGluZy5zZXQodHJ1ZSk7XG4gICAgdGhpcy5vcmdzRXJyb3Iuc2V0KG51bGwpO1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPihyZXNvbHZlID0+IHtcbiAgICAgIHRoaXMub3JnU2VydmljZS5saXN0TXlPcmdzKCkuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogb3JncyA9PiB7XG4gICAgICAgICAgY29uc3QgYWN0aXZlSWQgPSB0aGlzLmFjdGl2ZU9yZ0lkKCk7XG4gICAgICAgICAgdGhpcy5vcmdzLnNldChbLi4ub3Jnc10uc29ydCgoYSwgYikgPT4gKGEuaWQgPT09IGFjdGl2ZUlkID8gLTEgOiBiLmlkID09PSBhY3RpdmVJZCA/IDEgOiAwKSkpO1xuICAgICAgICAgIHRoaXMuYWN0aXZlT3JnTG9nb0ZhaWxlZC5zZXQoZmFsc2UpO1xuICAgICAgICAgIHRoaXMub3Jnc0xvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgIHRoaXMub3Jnc0Vycm9yLnNldChlcnIpO1xuICAgICAgICAgIHRoaXMub3Jnc0xvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCB0dChrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KGtleSwgdGhpcy5ucyk7XG4gIH1cbn1cbiJdfQ==
|
|
745
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvYWNjb3VudC12aWV3L2FjY291bnQtdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDcEMsT0FBTyxFQUNMLGVBQWUsRUFDZixxQkFBcUIsRUFDckIsV0FBVyxFQUNYLGFBQWEsRUFDYixxQkFBcUIsRUFDckIsY0FBYyxHQUNmLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBRXhGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBRXBHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBR3ZGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNwRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFL0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDekYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBRXJGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBR3pGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQUV4RCxRQUFRLENBQUMsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLHFCQUFxQixFQUFFLHFCQUFxQixFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDO0FBRXhILE1BQU0saUJBQWlCLEdBQUcsa0JBQWtCLENBQUM7QUFDN0MsTUFBTSx3QkFBd0IsR0FBRyw0QkFBNEIsQ0FBQztBQUU5RDs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFvWkgsTUFBTSxPQUFPLG9CQUFvQjtJQXNDL0Isc0VBQXNFO0lBQ3RFLElBQVksRUFBRTtRQUNaLE9BQU8sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLGFBQWEsQ0FBQztJQUM3QyxDQUFDO0lBa0hEO1FBMUpRLFFBQUcsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNoQyxTQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNCLFNBQUksR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDM0IsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNoQyxpQkFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNwQyxVQUFLLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzdCLFdBQU0sR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNyQyxVQUFLLEdBQUcsTUFBTSxDQUFDLGNBQWMsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBU2xELG1CQUFjLEdBQUcsUUFBUSxDQUdoQyxHQUFHLEVBQUU7WUFDTCxNQUFNLFNBQVMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLENBQXNCLENBQUM7WUFDMUYsTUFBTSxNQUFNLEdBQXNCLEVBQUUsR0FBRyxTQUFTLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUMzRSxPQUFPO2dCQUNMLGtCQUFrQixFQUFFLE1BQU0sQ0FBQyxrQkFBa0IsSUFBSSxJQUFJO2dCQUNyRCxpQkFBaUIsRUFBRSxNQUFNLENBQUMsaUJBQWlCLElBQUksSUFBSTtnQkFDbkQsYUFBYSxFQUFFLE1BQU0sQ0FBQyxhQUFhLElBQUksS0FBSztnQkFDNUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxVQUFVLElBQUksSUFBSTtnQkFDckMsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLGlCQUFpQixJQUFJLElBQUk7Z0JBQ25ELGFBQWEsRUFBRSxNQUFNLENBQUMsYUFBYSxJQUFJLGlCQUFpQjtnQkFDeEQsY0FBYyxFQUFFLE1BQU0sQ0FBQyxjQUFjLElBQUksd0JBQXdCO2dCQUNqRSxhQUFhLEVBQUUsTUFBTSxDQUFDLGFBQWE7Z0JBQ25DLFlBQVksRUFBRSxNQUFNLENBQUMsWUFBWTtnQkFDakMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXO2dCQUMvQixnQkFBZ0IsRUFBRSxNQUFNLENBQUMsZ0JBQWdCO2FBQzFDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQU9NLFNBQUksR0FBRyxNQUFNLENBQWlCLEVBQUUsQ0FBQyxDQUFDO1FBQ2xDLGdCQUFXLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BCLGNBQVMsR0FBRyxNQUFNLENBQVUsSUFBSSxDQUFDLENBQUM7UUFFMUMsbUJBQWMsR0FBRyxRQUFRLENBQTRCLEdBQUcsRUFBRTtZQUNqRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2pCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsR0FBRztnQkFBRSxPQUFPLElBQUksQ0FBQztZQUN0QixPQUFPLHFCQUFxQixDQUFDLEdBQUcsRUFBRTtnQkFDaEMsS0FBSyxFQUFFO29CQUNMLE9BQU8sRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDO29CQUNwQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztpQkFDakM7Z0JBQ0QsV0FBVyxFQUFFO29CQUNYLE9BQU8sRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDO29CQUNuQyxLQUFLLEVBQUUsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU87aUJBQ25DO2dCQUNELFVBQVUsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQztnQkFDaEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQzlCLFFBQVEsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFO2FBQzdCLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRU0sa0JBQWEsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsc0JBQWlCLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLHdCQUFtQixHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVwQyxtQkFBYyxHQUFHLE1BQU0sQ0FBc0IsRUFBRSxDQUFDLENBQUM7UUFDakQsMEJBQXFCLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLG9CQUFlLEdBQUcsTUFBTSxDQUFnQixJQUFJLENBQUMsQ0FBQztRQUU5QyxjQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUNqRCxvQkFBZSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztRQUM3RCxjQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUNqRCxvQkFBZSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztRQUM3RCxjQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUNqRCxpQkFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7UUFDdkQsb0JBQWUsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7UUFDN0QsZ0JBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQ3JELG1CQUFjLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDeEMsS0FBSyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsaUJBQWlCLENBQUM7WUFDakMsV0FBVyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDO1lBQ25DLE9BQU8sRUFBRSxNQUFNO1lBQ2YsWUFBWSxFQUFFLE1BQU07WUFDcEIsT0FBTyxFQUFFO2dCQUNQLFFBQVEsRUFBRSxPQUFPO2dCQUNqQixRQUFRLEVBQUUsS0FBSztnQkFDZixPQUFPLEVBQUU7b0JBQ1A7d0JBQ0UsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDO3dCQUMzQixLQUFLLEVBQUUsU0FBUzt3QkFDaEIsSUFBSSxFQUFFLE9BQU87d0JBQ2IsS0FBSyxFQUFFLE9BQU87d0JBQ2QsSUFBSSxFQUFFLFNBQVM7d0JBQ2YsSUFBSSxFQUFFLFFBQVE7d0JBQ2QsS0FBSyxFQUFFLFNBQVM7d0JBQ2hCLEtBQUssRUFBRSxpQkFBaUI7cUJBQ3pCO2lCQUNGO2FBQ3FCO1NBQ3pCLENBQUMsQ0FBQyxDQUFDO1FBQ0ssZ0JBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQ3JELGVBQVUsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1FBQ25ELGdCQUFXLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUNyRCxzQkFBaUIsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7UUFDakUscUJBQWdCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO1FBRS9ELGdCQUFXLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNuQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFHaEIsQ0FBQztZQUNULE9BQU8sQ0FBQyxFQUFFLFdBQVcsSUFBSSxDQUFDLEVBQUUsU0FBUyxJQUFJLEVBQUUsQ0FBQztRQUM5QyxDQUFDLENBQUMsQ0FBQztRQUVNLGtCQUFhLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNyQyxNQUFNLEtBQUssR0FBSSxJQUFJLENBQUMsSUFBOEMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUNuRixPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7UUFFTSxjQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDO1FBRXZGLHNCQUFpQixHQUFHLFFBQVEsQ0FBMEIsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUNwRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUM7WUFDdkIsS0FBSyxFQUFFLE1BQU07WUFDYixJQUFJLEVBQUUsU0FBUztZQUNmLElBQUksRUFBRSxTQUFTO1lBQ2YsS0FBSyxFQUFFLE9BQU87WUFDZCxJQUFJLEVBQUUsUUFBUTtZQUNkLEtBQUssRUFBRSxnQkFBZ0I7U0FDeEIsQ0FBQyxDQUFDLENBQUM7UUFFSyw2QkFBd0IsR0FBRyxRQUFRLENBQTBCLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDM0UsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsaUJBQWlCLENBQUM7WUFDaEMsS0FBSyxFQUFFLE1BQU07WUFDYixJQUFJLEVBQUUsU0FBUztZQUNmLElBQUksRUFBRSxTQUFTO1lBQ2YsS0FBSyxFQUFFLE9BQU87WUFDZCxJQUFJLEVBQUUsUUFBUTtZQUNkLEtBQUssRUFBRSxnQkFBZ0I7U0FDeEIsQ0FBQyxDQUFDLENBQUM7UUFFSyw2QkFBd0IsR0FBRyxRQUFRLENBQTBCLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDM0UsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUM7WUFDakMsS0FBSyxFQUFFLE1BQU07WUFDYixJQUFJLEVBQUUsU0FBUztZQUNmLElBQUksRUFBRSxTQUFTO1lBQ2YsS0FBSyxFQUFFLE9BQU87WUFDZCxJQUFJLEVBQUUsUUFBUTtZQUNkLEtBQUssRUFBRSxnQkFBZ0I7U0FDeEIsQ0FBQyxDQUFDLENBQUM7UUFHRixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMxQixrQkFBa0IsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUM1QixNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2xFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFZO1FBQ3ZCLE1BQU0sR0FBRyxHQUEyQjtZQUNsQyxRQUFRLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztZQUNyQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztZQUNuQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztZQUNqQyxRQUFRLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztTQUN0QyxDQUFDO1FBQ0YsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDO0lBQzNCLENBQUM7SUFFRCxlQUFlO1FBQ2IsS0FBSyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztZQUMxQixTQUFTLEVBQUUsdUJBQXVCO1lBQ2xDLGNBQWMsRUFBRTtnQkFDZCxhQUFhLEVBQUUsb0JBQW9CO2dCQUNuQyxTQUFTLEVBQUUsR0FBRyxFQUFFO29CQUNkLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDaEIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7b0JBQzFCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDO2dCQUMxQyxDQUFDO2FBQ0Y7WUFDRCxXQUFXLEVBQUU7Z0JBQ1gsV0FBVyxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQztnQkFDdEIsaUJBQWlCLEVBQUUsSUFBSTtnQkFDdkIsVUFBVSxFQUFFLElBQUk7YUFDakI7WUFDRCxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxZQUFZLENBQUMsTUFBb0I7UUFDL0IsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsVUFBVTtRQUNSLEtBQUssSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7WUFDMUIsU0FBUyxFQUFFLHFCQUFxQjtZQUNoQyxjQUFjLEVBQUU7Z0JBQ2QsS0FBSyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDO2dCQUMvQixRQUFRLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztnQkFDckMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsaUJBQWlCLENBQUM7Z0JBQ2hDLFVBQVUsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQztnQkFDcEMsVUFBVSxFQUFFO29CQUNWLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQztvQkFDOUIsSUFBSSxFQUFFLFNBQVM7b0JBQ2YsS0FBSyxFQUFFLE1BQU07b0JBQ2IsSUFBSSxFQUFFLFNBQVM7b0JBQ2YsTUFBTSxFQUFFLE9BQU87b0JBQ2YsSUFBSSxFQUFFLFFBQVE7aUJBQ2Y7YUFDRjtZQUNELFdBQVcsRUFBRTtnQkFDWCxXQUFXLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDO2dCQUN0QixpQkFBaUIsRUFBRSxJQUFJO2dCQUN2QixVQUFVLEVBQUUsSUFBSTthQUNqQjtZQUNELGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFTyxrQkFBa0I7UUFDeEIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQyxPQUFPLElBQUksT0FBTyxDQUFPLE9BQU8sQ0FBQyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxVQUFVO2lCQUNaLHFCQUFxQixFQUFFO2lCQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUNiLFNBQVMsQ0FBQztnQkFDVCxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUU7b0JBQ1osSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQy9CLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3RDLE9BQU8sRUFBRSxDQUFDO2dCQUNaLENBQUM7Z0JBQ0QsS0FBSyxFQUFFLEdBQUcsRUFBRTtvQkFDVixJQUFJLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUN0QyxPQUFPLEVBQUUsQ0FBQztnQkFDWixDQUFDO2FBQ0YsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsbUJBQW1CLENBQUMsTUFBeUI7UUFDM0MsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQUUsT0FBTztRQUNuQyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLFVBQVU7YUFDWixnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO2FBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDYixTQUFTLENBQUM7WUFDVCxJQUFJLEVBQUUsR0FBRyxFQUFFO2dCQUNULElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO29CQUNkLE9BQU8sRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDO29CQUNsQyxLQUFLLEVBQUUsTUFBTTtvQkFDYixRQUFRLEVBQUUsSUFBSTtpQkFDZixDQUFDLENBQUM7Z0JBQ0gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDL0UsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xCLENBQUM7WUFDRCxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLENBQUMsQ0FBQztnQkFDcEUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakMsQ0FBQztZQUNELFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7U0FDL0MsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELG9CQUFvQixDQUFDLE1BQXlCO1FBQzVDLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUFFLE9BQU87UUFDbkMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxVQUFVO2FBQ1osaUJBQWlCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQzthQUMvQixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2IsU0FBUyxDQUFDO1lBQ1QsSUFBSSxFQUFFLEdBQUcsRUFBRTtnQkFDVCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztvQkFDZCxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztvQkFDbEMsS0FBSyxFQUFFLE1BQU07b0JBQ2IsUUFBUSxFQUFFLElBQUk7aUJBQ2YsQ0FBQyxDQUFDO2dCQUNILElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDakYsQ0FBQztZQUNELEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRTtnQkFDWCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsQ0FBQyxDQUFDO2dCQUNyRSxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNqQyxDQUFDO1lBQ0QsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQztTQUMvQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sUUFBUTtRQUNkLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLE9BQU8sSUFBSSxPQUFPLENBQU8sT0FBTyxDQUFDLEVBQUU7WUFDakMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxTQUFTLENBQUM7Z0JBQ3JDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRTtvQkFDWCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7b0JBQ3BDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUM5RixJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNwQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDNUIsT0FBTyxFQUFFLENBQUM7Z0JBQ1osQ0FBQztnQkFDRCxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUU7b0JBQ1gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUM1QixPQUFPLEVBQUUsQ0FBQztnQkFDWixDQUFDO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRVMsRUFBRSxDQUFDLEdBQVc7UUFDdEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ25DLENBQUM7K0dBL1VVLG9CQUFvQjttR0FBcEIsb0JBQW9CLDBHQWpZckI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBMVCxxOUdBeE1DLGdCQUFnQiwyRUFDaEIsbUJBQW1CLCtFQUNuQix1QkFBdUIsbUZBQ3ZCLGNBQWMseUVBQ2QsYUFBYSx3RUFDYixlQUFlLDBHQUNmLGdCQUFnQixtR0FDaEIsdUJBQXVCLHVIQUN2Qix1QkFBdUIseUlBQ3ZCLDJCQUEyQixrSUFDM0IsT0FBTywySkFDUCxTQUFTLCtPQUNULGFBQWE7OzRGQW1ZSixvQkFBb0I7a0JBblpoQyxTQUFTOytCQUNFLGtCQUFrQixjQUNoQixJQUFJLFdBQ1A7d0JBQ1AsZ0JBQWdCO3dCQUNoQixtQkFBbUI7d0JBQ25CLHVCQUF1Qjt3QkFDdkIsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQix1QkFBdUI7d0JBQ3ZCLHVCQUF1Qjt3QkFDdkIsMkJBQTJCO3dCQUMzQixPQUFPO3dCQUNQLFNBQVM7d0JBQ1QsYUFBYTtxQkFDZCxZQUNTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwTFQ7d0RBc05RLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRpdGxlQ2FzZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0LCBJbnB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJb25CdXR0b24sIElvbkljb24gfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IGFkZEljb25zIH0gZnJvbSAnaW9uaWNvbnMnO1xuaW1wb3J0IHtcbiAgYnVzaW5lc3NPdXRsaW5lLFxuICBjaGV2cm9uRm9yd2FyZE91dGxpbmUsXG4gIG1haWxPdXRsaW5lLFxuICBwZW9wbGVPdXRsaW5lLFxuICBzd2FwSG9yaXpvbnRhbE91dGxpbmUsXG4gIHdhcm5pbmdPdXRsaW5lLFxufSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEaXNwbGF5Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvZGlzcGxheS9kaXNwbGF5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdGV4dC90ZXh0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaXRsZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3RpdGxlL3RpdGxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDdGFDYXJkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2N0YS1jYXJkL2N0YS1jYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbXB0eVN0YXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2VtcHR5LXN0YXRlL2VtcHR5LXN0YXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbXB0eVN0YXRlTWV0YWRhdGEgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvZW1wdHktc3RhdGUvdHlwZXMnO1xuaW1wb3J0IHsgY3JlYXRlRXJyb3JTdGF0ZVByb3BzIH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2VtcHR5LXN0YXRlL2ZhY3RvcnknO1xuaW1wb3J0IHsgSW52aXRhdGlvbkNhcmRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvaW52aXRhdGlvbi1jYXJkL2ludml0YXRpb24tY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uR3JvdXBNZXRhZGF0YSB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9idXR0b24tZ3JvdXAvdHlwZXMnO1xuaW1wb3J0IHsgU2tlbGV0b25MYXlvdXRDb21wb25lbnQgfSBmcm9tICcuLi9za2VsZXRvbi1sYXlvdXQvc2tlbGV0b24tbGF5b3V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCdXR0b25NZXRhZGF0YSB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hdXRoL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgaW50ZXJwcmV0RXJyb3IgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9lcnJvcnMvaW50ZXJwcmV0LWVycm9yJztcbmltcG9ydCB7IE1vZGFsU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL21vZGFsL21vZGFsLnNlcnZpY2UnO1xuaW1wb3J0IHsgTmF2aWdhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9uYXZpZ2F0aW9uL25hdmlnYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBPcmdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvb3JnL29yZy5zZXJ2aWNlJztcbmltcG9ydCB7IE9yZ2FuaXphdGlvbiwgUGVuZGluZ0ludml0YXRpb24gfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9vcmcvdHlwZXMnO1xuaW1wb3J0IHsgY29ubmVjdFBhZ2VSZWZyZXNoIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcGFnZS1yZWZyZXNoL3BhZ2UtcmVmcmVzaC5zZXJ2aWNlJztcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3RvYXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgVmFsdGVjaEVycm9yU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Vycm9ycy92YWx0ZWNoLWVycm9yLnNlcnZpY2UnO1xuXG5pbXBvcnQgeyBDcmVhdGVPcmdNb2RhbENvbXBvbmVudCB9IGZyb20gJy4uL2NyZWF0ZS1vcmctbW9kYWwvY3JlYXRlLW9yZy1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGVsZXRlQWNjb3VudE1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi4vZGVsZXRlLWFjY291bnQtbW9kYWwvZGVsZXRlLWFjY291bnQtbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IE9yZ0luZm9TaGVldENvbXBvbmVudCB9IGZyb20gJy4uL29yZy1pbmZvLXNoZWV0L29yZy1pbmZvLXNoZWV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTd2l0Y2hPcmdNb2RhbENvbXBvbmVudCB9IGZyb20gJy4uL3N3aXRjaC1vcmctbW9kYWwvc3dpdGNoLW9yZy1tb2RhbC5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBBY2NvdW50Vmlld0NvbmZpZyB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgQUNDT1VOVF9WSUVXX0kxOE4gfSBmcm9tICcuL2FjY291bnQtdmlldy5pMThuJztcblxuYWRkSWNvbnMoeyBwZW9wbGVPdXRsaW5lLCBidXNpbmVzc091dGxpbmUsIGNoZXZyb25Gb3J3YXJkT3V0bGluZSwgc3dhcEhvcml6b250YWxPdXRsaW5lLCBtYWlsT3V0bGluZSwgd2FybmluZ091dGxpbmUgfSk7XG5cbmNvbnN0IERFRkFVTFRfTkFNRVNQQUNFID0gJ1NldHRpbmdzLkFjY291bnQnO1xuY29uc3QgREVGQVVMVF9NQU5BR0VfT1JHX1JPVVRFID0gJy9hcHAvc2V0dGluZ3Mvb3JnYW5pemF0aW9uJztcblxuLyoqXG4gKiBgdmFsLWFjY291bnQtdmlld2Ag4oCUIHZpc3RhIEN1ZW50YSBmdWxsLWZlYXR1cmUgYXV0b2NvbnRlbmlkYSAob3JnYW5pc20pLlxuICogUHJvbW92aWRhIGRlc2RlIGBzaG93Y2FzZWAgYmFqbyBlbCBwcm9jZXNvIGRlIEFEUi0wMjEuIFJlw7puZTpcbiAqICAtICoqSW52aXRhY2lvbmVzIHBlbmRpZW50ZXMqKiDigJQgYWNlcHRhciAvIHJlY2hhemFyIChgdmFsLWludml0YXRpb24tY2FyZGApLlxuICogIC0gKipPcmdhbml6YWNpb25lcyoqIOKAlCBjYXJkIGRlIG9yZyBhY3RpdmEgKyBlbXB0eS1jYXJkICsgQ1RBIFwiTnVldmEgb3JnXCJcbiAqICAgIChtb2RhbCBgdmFsLWNyZWF0ZS1vcmctbW9kYWxgKSArIFwiVmVyIHRvZGFzXCIgKG1vZGFsIGB2YWwtc3dpdGNoLW9yZy1tb2RhbGApLlxuICogIC0gKipDZXJyYXIgZXN0YSBzZXNpw7NuKiog4oCUIGBhdXRoLmxvZ291dFdpdGhDb25maXJtYXRpb24oKWAuXG4gKiAgLSAqKkVsaW1pbmFyIGN1ZW50YSoqIOKAlCBtb2RhbCBgdmFsLWRlbGV0ZS1hY2NvdW50LW1vZGFsYC5cbiAqXG4gKiBOTyByZW5kZXJpemEgaW9uLWNvbnRlbnQg4oCUIHZpdmUgZGVudHJvIGRlIHZhbC1wYWdlLXdyYXBwZXIuIE5vIHVzYSBkZWVwLWxpbmtzO1xuICogYEFjdGl2YXRlZFJvdXRlYCBzZSBpbnllY3RhIGB7IG9wdGlvbmFsOiB0cnVlIH1gIHNvbG8gcGFyYSBsZWVyIGVsIHJvdXRlIGRhdGFcbiAqIGRlIGNvbmZpZy4gTGEgbmF2ZWdhY2nDs24gYSBsYSBvcmcgcm91dGUgdmEgcG9yIGBOYXZpZ2F0aW9uU2VydmljZWAuXG4gKlxuICogQXV0by1yZWdpc3RyYSBzdXMgZGVmYXVsdHMgaTE4biAoZXMvZW4pIGVuIGVsIGNvbnN0cnVjdG9yIHNpIGVsIGNvbnN1bWVyIG5vXG4gKiBwcm92ZXnDsyBlbCBuYW1lc3BhY2UgY29uZmlndXJhZG8gKGRlZmF1bHQgYFNldHRpbmdzLkFjY291bnRgKS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWFjY291bnQtdmlldycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBEaXNwbGF5Q29tcG9uZW50LFxuICAgIEVtcHR5U3RhdGVDb21wb25lbnQsXG4gICAgU2tlbGV0b25MYXlvdXRDb21wb25lbnQsXG4gICAgVGl0bGVDb21wb25lbnQsXG4gICAgVGV4dENvbXBvbmVudCxcbiAgICBCdXR0b25Db21wb25lbnQsXG4gICAgQ3RhQ2FyZENvbXBvbmVudCxcbiAgICBJbnZpdGF0aW9uQ2FyZENvbXBvbmVudCxcbiAgICBDcmVhdGVPcmdNb2RhbENvbXBvbmVudCxcbiAgICBEZWxldGVBY2NvdW50TW9kYWxDb21wb25lbnQsXG4gICAgSW9uSWNvbixcbiAgICBJb25CdXR0b24sXG4gICAgVGl0bGVDYXNlUGlwZSxcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwicGFnZVwiPlxuICAgICAgPGhlYWRlciBjbGFzcz1cInBhZ2UtaGVhZGVyXCI+XG4gICAgICAgIDx2YWwtZGlzcGxheSBbcHJvcHNdPVwieyBzaXplOiAnc21hbGwnLCBjb2xvcjogJ2RhcmsnLCBjb250ZW50OiBwYWdlVGl0bGUoKSB9XCIgLz5cbiAgICAgICAgPHZhbC10aXRsZVxuICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICBzaXplOiAnbGFyZ2UnLFxuICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgIGJvbGQ6IGZhbHNlLFxuICAgICAgICAgICAgY29udGVudDogcGFnZURlc2NyaXB0aW9uKCksXG4gICAgICAgICAgfVwiXG4gICAgICAgIC8+XG4gICAgICA8L2hlYWRlcj5cblxuICAgICAgQGlmIChyZXNvbHZlZENvbmZpZygpLnNob3dQZW5kaW5nSW52aXRlcyAmJiBwZW5kaW5nSW52aXRlcygpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgPHZhbC10aXRsZVxuICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICBzaXplOiAnbWVkaXVtJyxcbiAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICBib2xkOiB0cnVlLFxuICAgICAgICAgICAgY29udGVudDogdHQoJ3BlbmRpbmdJbnZpdGVzVGl0bGUnKSxcbiAgICAgICAgICB9XCJcbiAgICAgICAgLz5cbiAgICAgICAgQGZvciAoaW52aXRlIG9mIHBlbmRpbmdJbnZpdGVzKCk7IHRyYWNrIGludml0ZS5vcmdJZCkge1xuICAgICAgICAgIDx2YWwtaW52aXRhdGlvbi1jYXJkXG4gICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICB0b2tlbjogaW52aXRlLm9yZ0lkLFxuICAgICAgICAgICAgICBvcmdOYW1lOiBpbnZpdGUub3JnTmFtZSxcbiAgICAgICAgICAgICAgaW52aXRlck5hbWU6IGludml0ZS5pbnZpdGVyTmFtZSxcbiAgICAgICAgICAgICAgcm9sZTogaW52aXRlLnJvbGVJZCxcbiAgICAgICAgICAgICAgYWNjZXB0aW5nOiBpbnZpdGVBY2NlcHRpbmcoKSA9PT0gaW52aXRlLm9yZ0lkLFxuICAgICAgICAgICAgICBkaXNhYmxlZDogISFpbnZpdGVBY2NlcHRpbmcoKSxcbiAgICAgICAgICAgICAgYWNjZXB0TGFiZWw6IHR0KCdhY2NlcHQnKSxcbiAgICAgICAgICAgICAgZGVjbGluZUxhYmVsOiB0dCgnZGVjbGluZScpLFxuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAob25BY2NlcHQpPVwiYWNjZXB0UGVuZGluZ0ludml0ZShpbnZpdGUpXCJcbiAgICAgICAgICAgIChvbkRlY2xpbmUpPVwiZGVjbGluZVBlbmRpbmdJbnZpdGUoaW52aXRlKVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAaWYgKHJlc29sdmVkQ29uZmlnKCkuc2hvd09yZ2FuaXphdGlvbnMpIHtcbiAgICAgICAgPCEtLSBPcmdhbml6YXRpb25zIC0tPlxuICAgICAgICA8c2VjdGlvbiBjbGFzcz1cInNldHRpbmdzLXNlY3Rpb25cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1oZWFkZXItcm93XCI+XG4gICAgICAgICAgICA8dmFsLXRpdGxlXG4gICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgc2l6ZTogJ21lZGl1bScsXG4gICAgICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgICAgICBib2xkOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IG9yZ3NBY3RpdmVUaXRsZSgpLFxuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICBAaWYgKG9yZ3MoKS5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgIDxpb24tYnV0dG9uIGZpbGw9XCJvdXRsaW5lXCIgY29sb3I9XCJkYXJrXCIgc2hhcGU9XCJyb3VuZFwiIHNpemU9XCJzbWFsbFwiIChjbGljayk9XCJvblN3aXRjaEFjY291bnQoKVwiPlxuICAgICAgICAgICAgICAgIHt7IHR0KCdvcmdzU3dpdGNoJykgfX1cbiAgICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWJvZHlcIj5cbiAgICAgICAgICAgIEBpZiAob3Jnc0xvYWRpbmcoKSkge1xuICAgICAgICAgICAgICA8dmFsLXNrZWxldG9uLWxheW91dCBbcHJvcHNdPVwieyBwcmVzZXQ6ICdsaXN0Jywgcm93czogMyB9XCIgLz5cbiAgICAgICAgICAgIH0gQGVsc2UgaWYgKG9yZ3NFcnJvclN0YXRlKCkpIHtcbiAgICAgICAgICAgICAgPHZhbC1lbXB0eS1zdGF0ZSBbcHJvcHNdPVwib3Jnc0Vycm9yU3RhdGUoKSFcIiAvPlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgIEBpZiAoYWN0aXZlT3JnKCk7IGFzIG9yZykge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvcmdzLWxpc3RcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvcmctY2FyZCBvcmctY2FyZC0tYWN0aXZlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvcmctY2FyZF9faWNvblwiPlxuICAgICAgICAgICAgICAgICAgICAgIEBpZiAoYWN0aXZlT3JnKCk/LmxvZ29VcmwgJiYgIWFjdGl2ZU9yZ0xvZ29GYWlsZWQoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImFjdGl2ZU9yZygpIS5sb2dvVXJsIVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFthbHRdPVwiYWN0aXZlT3JnKCk/Lm5hbWUgPz8gJydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAoZXJyb3IpPVwiYWN0aXZlT3JnTG9nb0ZhaWxlZC5zZXQodHJ1ZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiYnVzaW5lc3Mtb3V0bGluZVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9yZy1jYXJkX19ib2R5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJvcmctY2FyZF9fbmFtZVwiPnt7IG9yZy5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvcmctY2FyZF9fbWV0YVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJvcmctY2FyZF9fbWV0YS1pdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwib3JnLWNhcmRfX21ldGEtbGFiZWxcIj57eyB0dCgnb3Jnc0xhYmVsVHlwZScpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBvcmdUeXBlTGFiZWwob3JnLnR5cGUpIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGFjdGl2ZU9yZ1JvbGUoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm9yZy1jYXJkX19tZXRhLWl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm9yZy1jYXJkX19tZXRhLWxhYmVsXCI+e3sgdHQoJ29yZ3NMYWJlbFJvbGUnKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBhY3RpdmVPcmdSb2xlKCkgfCB0aXRsZWNhc2UgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJvcmctY2FyZF9fbWV0YS1pdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwib3JnLWNhcmRfX21ldGEtbGFiZWxcIj57eyB0dCgnb3Jnc0xhYmVsU3RhdHVzJykgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHR0KCdvcmdzU3RhdHVzQWN0aXZlJykgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvcmctY2FyZF9fZW5kXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGlvbi1idXR0b24gZmlsbD1cIm91dGxpbmVcIiBjb2xvcj1cImRhcmtcIiBzaGFwZT1cInJvdW5kXCIgc2l6ZT1cInNtYWxsXCIgKGNsaWNrKT1cIm9uTWFuYWdlT3JnKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IHR0KCdvcmdzTWFuYWdlJykgfX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIH0gQGVsc2UgaWYgKG9yZ3MoKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3Jncy1lbXB0eS1jYXJkXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3Jncy1lbXB0eS1jYXJkX19tYWluXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwicGVvcGxlLW91dGxpbmVcIiBjbGFzcz1cIm9yZ3MtZW1wdHktY2FyZF9faWNvblwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwib3Jncy1lbXB0eS1jYXJkX190ZXh0XCI+e3sgb3Jnc0VtcHR5KCkgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJvcmdzLWVtcHR5LWNhcmRfX2xpbmtcIiAoY2xpY2spPVwib25Nb3JlSW5mbygpXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IG9yZ3NNb3JlSW5mbygpIH19XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBAaWYgKHJlc29sdmVkQ29uZmlnKCkuc2hvd05ld09yZ0N0YSkge1xuICAgICAgICAgICAgICAgIDwhLS0gTnVldmEgb3JnYW5pemFjaW9uOiBDVEEgY2FyZCBjb24gdGl0dWxvLCBzdWJ0aXR1bG8geSBib3RvbiAtLT5cbiAgICAgICAgICAgICAgICA8dmFsLWN0YS1jYXJkIGNsYXNzPVwib3JnLW5ldy1jdGEtY2FyZFwiIFtwcm9wc109XCJuZXdPcmdDdGFQcm9wcygpXCIgKG9uQWN0aW9uKT1cIm9uTmV3T3JnKClcIiAvPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvc2VjdGlvbj5cbiAgICAgIH1cblxuICAgICAgQGlmIChyZXNvbHZlZENvbmZpZygpLnNob3dMb2dvdXQpIHtcbiAgICAgICAgPCEtLSBMb2dvdXQgdGhpcyBzZXNzaW9uIC0tPlxuICAgICAgICA8c2VjdGlvbiBjbGFzcz1cInNldHRpbmdzLXNlY3Rpb25cIj5cbiAgICAgICAgICA8dmFsLXRpdGxlXG4gICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICBzaXplOiAnbWVkaXVtJyxcbiAgICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgICAgYm9sZDogdHJ1ZSxcbiAgICAgICAgICAgICAgY29udGVudDogbG9nb3V0VGl0bGUoKSxcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tYm9keVwiPlxuICAgICAgICAgICAgPHZhbC10ZXh0XG4gICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgY29udGVudDogbG9nb3V0SGludCgpLFxuICAgICAgICAgICAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICAgICAgYm9sZDogZmFsc2UsXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3ctYWN0aW9uc1wiPlxuICAgICAgICAgICAgICA8dmFsLWJ1dHRvbiBbcHJvcHNdPVwibG9nb3V0QnV0dG9uUHJvcHMoKVwiIChjbGljayk9XCJvbkxvZ291dCgpXCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgICB9XG5cbiAgICAgIEBpZiAocmVzb2x2ZWRDb25maWcoKS5zaG93RGVsZXRlQWNjb3VudCkge1xuICAgICAgICA8IS0tIERlbGV0ZSBhY2NvdW50IC0tPlxuICAgICAgICA8c2VjdGlvbiBjbGFzcz1cInNldHRpbmdzLXNlY3Rpb24gc2V0dGluZ3Mtc2VjdGlvbi0tZGFuZ2VyXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tdGl0bGUtZGFuZ2VyXCI+XG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cIndhcm5pbmctb3V0bGluZVwiIGNsYXNzPVwiZGFuZ2VyLWljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgPHZhbC10aXRsZSBbcHJvcHNdPVwieyBzaXplOiAnbWVkaXVtJywgY29sb3I6ICdkYXJrJywgYm9sZDogdHJ1ZSwgY29udGVudDogZGFuZ2VyRGVsZXRlVGl0bGUoKSB9XCIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1ib2R5XCI+XG4gICAgICAgICAgICA8dmFsLXRleHRcbiAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICBjb250ZW50OiBkYW5nZXJEZWxldGVIaW50KCksXG4gICAgICAgICAgICAgICAgc2l6ZTogJ21lZGl1bScsXG4gICAgICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgICAgICBib2xkOiBmYWxzZSxcbiAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdy1hY3Rpb25zXCI+XG4gICAgICAgICAgICAgIDx2YWwtYnV0dG9uIFtwcm9wc109XCJkZWxldGVBY2NvdW50QnV0dG9uUHJvcHMoKVwiIChvbkNsaWNrKT1cIm9uRGVsZXRlQWNjb3VudCgpXCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgICB9XG4gICAgICA8dmFsLWNyZWF0ZS1vcmctbW9kYWxcbiAgICAgICAgW2lzT3Blbl09XCJjcmVhdGVPcmdPcGVuKClcIlxuICAgICAgICBbaTE4bk5hbWVzcGFjZV09XCInQ3JlYXRlT3JnTW9kYWwnXCJcbiAgICAgICAgKGRpc21pc3NlZCk9XCJjcmVhdGVPcmdPcGVuLnNldChmYWxzZSlcIlxuICAgICAgICAoY3JlYXRlZCk9XCJvbk9yZ0NyZWF0ZWQoJGV2ZW50KVwiXG4gICAgICAvPlxuICAgICAgPHZhbC1kZWxldGUtYWNjb3VudC1tb2RhbFxuICAgICAgICBbaXNPcGVuXT1cImRlbGV0ZUFjY291bnRPcGVuKClcIlxuICAgICAgICBbaTE4bk5hbWVzcGFjZV09XCInU2V0dGluZ3MuRGVsZXRlQWNjb3VudCdcIlxuICAgICAgICAoZGlzbWlzc2VkKT1cImRlbGV0ZUFjY291bnRPcGVuLnNldChmYWxzZSlcIlxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgLnBhZ2Uge1xuICAgICAgICBwYWRkaW5nOiAxNnB4IDA7XG4gICAgICAgIG1heC13aWR0aDogNzIwcHg7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgfVxuICAgICAgLnBhZ2UtaGVhZGVyIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICAgIH1cbiAgICAgIC5zZXR0aW5ncy1zZWN0aW9uIHtcbiAgICAgICAgcGFkZGluZzogMTZweCAwO1xuICAgICAgfVxuICAgICAgLnNldHRpbmdzLXNlY3Rpb24gKyAuc2V0dGluZ3Mtc2VjdGlvbiB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS12YWwtYm9yZGVyLWNvbG9yLCByZ2JhKDAsIDAsIDAsIDAuMDgpKTtcbiAgICAgIH1cbiAgICAgIC5zZXR0aW5ncy1zZWN0aW9uIHZhbC10aXRsZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgICAgfVxuICAgICAgLnNlY3Rpb24tYm9keSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMTBweDtcbiAgICAgIH1cbiAgICAgIC5yb3ctYWN0aW9ucyB7XG4gICAgICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgICB9XG4gICAgICAucm93LWFjdGlvbnMtLWdhcCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICB9XG4gICAgICAuc2VjdGlvbi1oZWFkZXItcm93IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgICAgfVxuICAgICAgLm9yZy1uZXctY3RhLWNhcmQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLXRvcDogMTJweDtcbiAgICAgIH1cbiAgICAgIC5vcmdzLWVtcHR5LWNhcmQge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pb24tY29sb3Itc2Vjb25kYXJ5LXRpbnQsIHJnYmEodmFyKC0taW9uLWNvbG9yLXNlY29uZGFyeS1yZ2IsIDEzMCwgMTAxLCAyMDgpLCAwLjIpKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMThweDtcbiAgICAgICAgcGFkZGluZzogMThweCAxNnB4IDEycHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgfVxuICAgICAgLm9yZ3MtZW1wdHktY2FyZF9fbWFpbiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMTBweDtcbiAgICAgIH1cbiAgICAgIC5vcmdzLWVtcHR5LWNhcmRfX2ljb24ge1xuICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgfVxuICAgICAgLm9yZ3MtZW1wdHktY2FyZF9fdGV4dCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyayk7XG4gICAgICB9XG4gICAgICAub3Jncy1lbXB0eS1jYXJkX19saW5rIHtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44MTI1cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLXByaW1hcnkpO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAycHg7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgICAgfVxuICAgICAgLm9yZ3MtbGlzdCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgfVxuICAgICAgLm9yZy1jYXJkIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAxNHB4O1xuICAgICAgICBwYWRkaW5nOiAxNHB4IDE2cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1saWdodCwgI2Y0ZjVmOCk7XG4gICAgICAgIGJvcmRlcjogMS41cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdHJhbnNpdGlvbjpcbiAgICAgICAgICBiYWNrZ3JvdW5kIDAuMTVzLFxuICAgICAgICAgIGJvcmRlci1jb2xvciAwLjE1cztcbiAgICAgIH1cbiAgICAgIC5vcmctY2FyZDphY3RpdmUge1xuICAgICAgICBvcGFjaXR5OiAwLjc1O1xuICAgICAgfVxuICAgICAgLm9yZy1jYXJkLS1hY3RpdmUge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWlvbi1jb2xvci1wcmltYXJ5KTtcbiAgICAgICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWlvbi1jb2xvci1wcmltYXJ5KSA4JSwgdHJhbnNwYXJlbnQpO1xuICAgICAgfVxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5vcmctY2FyZCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAub3JnLWNhcmQsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5vcmctY2FyZCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSk7XG4gICAgICB9XG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLm9yZy1jYXJkLS1hY3RpdmUsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLm9yZy1jYXJkLS1hY3RpdmUsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5vcmctY2FyZC0tYWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWlvbi1jb2xvci1wcmltYXJ5KSAxNSUsIHRyYW5zcGFyZW50KTtcbiAgICAgIH1cbiAgICAgIC5vcmctY2FyZF9faWNvbiB7XG4gICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWlvbi1jb2xvci1wcmltYXJ5KSAxNSUsIHRyYW5zcGFyZW50KTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSk7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGltZyB7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLm9yZy1jYXJkX19ib2R5IHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDJweDtcbiAgICAgIH1cbiAgICAgIC5vcmctY2FyZF9fbmFtZSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrKTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICB9XG4gICAgICAub3JnLWNhcmRfX21ldGEge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDFweDtcbiAgICAgICAgbWFyZ2luLXRvcDogM3B4O1xuICAgICAgfVxuICAgICAgLm9yZy1jYXJkX19tZXRhLWl0ZW0ge1xuICAgICAgICBmb250LXNpemU6IDAuNzhyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyayk7XG4gICAgICB9XG4gICAgICAub3JnLWNhcmRfX21ldGEtbGFiZWwge1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDRweDtcbiAgICAgIH1cbiAgICAgIC5vcmctY2FyZF9fZW5kIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgfVxuICAgICAgLnNlY3Rpb24tdGl0bGUtZGFuZ2VyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgICB9XG4gICAgICAuc2VjdGlvbi10aXRsZS1kYW5nZXIgdmFsLXRpdGxlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cbiAgICAgIC5kYW5nZXItaWNvbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXNpemU6IDEuMTI1cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLXdhcm5pbmctc2hhZGUsICNkNGEwMTcpO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIH1cbiAgICAgIC5zZXR0aW5ncy1zZWN0aW9uLS1kYW5nZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0taW9uLWNvbG9yLWRhbmdlcikgNCUsIHRyYW5zcGFyZW50KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgICAgICAgcGFkZGluZzogMTZweDtcbiAgICAgICAgbWFyZ2luOiAwIC00cHg7XG4gICAgICB9XG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLnNldHRpbmdzLXNlY3Rpb24tLWRhbmdlcixcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuc2V0dGluZ3Mtc2VjdGlvbi0tZGFuZ2VyLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuc2V0dGluZ3Mtc2VjdGlvbi0tZGFuZ2VyIHtcbiAgICAgICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWlvbi1jb2xvci1kYW5nZXIpIDglLCB0cmFuc3BhcmVudCk7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQWNjb3VudFZpZXdDb21wb25lbnQge1xuICBwcml2YXRlIG5hdiA9IGluamVjdChOYXZpZ2F0aW9uU2VydmljZSk7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gIHByaXZhdGUgYXV0aCA9IGluamVjdChBdXRoU2VydmljZSk7XG4gIHByaXZhdGUgb3JnU2VydmljZSA9IGluamVjdChPcmdTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBtb2RhbFNlcnZpY2UgPSBpbmplY3QoTW9kYWxTZXJ2aWNlKTtcbiAgcHJpdmF0ZSB0b2FzdCA9IGluamVjdChUb2FzdFNlcnZpY2UpO1xuICBwcml2YXRlIGVycm9ycyA9IGluamVjdChWYWx0ZWNoRXJyb3JTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICAvKipcbiAgICogQ29uZmlnIHbDrWEgQElucHV0IChvYmplY3QtZmlyc3QpLiBTaSBubyBzZSBwYXNhLCBzZSBjYWUgYWwgcm91dGUgZGF0YVxuICAgKiBgYWNjb3VudENvbmZpZ2AgKHBvYmxhZG8gcG9yIGBwcm92aWRlVmFsdGVjaEFjY291bnRSb3V0ZXNgKS4gYHJlc29sdmVkQ29uZmlnYFxuICAgKiBtZXJnZWEgY29uIGxvcyBkZWZhdWx0cyDigJQgYEBJbnB1dGAgZ2FuYSBzb2JyZSByb3V0ZSBkYXRhLlxuICAgKi9cbiAgQElucHV0KCkgY29uZmlnPzogQWNjb3VudFZpZXdDb25maWc7XG5cbiAgcmVhZG9ubHkgcmVzb2x2ZWRDb25maWcgPSBjb21wdXRlZDxcbiAgICBSZXF1aXJlZDxPbWl0PEFjY291bnRWaWV3Q29uZmlnLCAnb25PcmdTd2l0Y2hlZCcgfCAnb25PcmdDcmVhdGVkJyB8ICdvbkxvZ2dlZE91dCcgfCAnb25BY2NvdW50RGVsZXRlZCc+PiAmXG4gICAgICBQaWNrPEFjY291bnRWaWV3Q29uZmlnLCAnb25PcmdTd2l0Y2hlZCcgfCAnb25PcmdDcmVhdGVkJyB8ICdvbkxvZ2dlZE91dCcgfCAnb25BY2NvdW50RGVsZXRlZCc+XG4gID4oKCkgPT4ge1xuICAgIGNvbnN0IGZyb21Sb3V0ZSA9ICh0aGlzLnJvdXRlPy5zbmFwc2hvdC5kYXRhWydhY2NvdW50Q29uZmlnJ10gPz8ge30pIGFzIEFjY291bnRWaWV3Q29uZmlnO1xuICAgIGNvbnN0IG1lcmdlZDogQWNjb3VudFZpZXdDb25maWcgPSB7IC4uLmZyb21Sb3V0ZSwgLi4uKHRoaXMuY29uZmlnID8/IHt9KSB9O1xuICAgIHJldHVybiB7XG4gICAgICBzaG93UGVuZGluZ0ludml0ZXM6IG1lcmdlZC5zaG93UGVuZGluZ0ludml0ZXMgPz8gdHJ1ZSxcbiAgICAgIHNob3dPcmdhbml6YXRpb25zOiBtZXJnZWQuc2hvd09yZ2FuaXphdGlvbnMgPz8gdHJ1ZSxcbiAgICAgIHNob3dOZXdPcmdDdGE6IG1lcmdlZC5zaG93TmV3T3JnQ3RhID8/IGZhbHNlLFxuICAgICAgc2hvd0xvZ291dDogbWVyZ2VkLnNob3dMb2dvdXQgPz8gdHJ1ZSxcbiAgICAgIHNob3dEZWxldGVBY2NvdW50OiBtZXJnZWQuc2hvd0RlbGV0ZUFjY291bnQgPz8gdHJ1ZSxcbiAgICAgIGkxOG5OYW1lc3BhY2U6IG1lcmdlZC5pMThuTmFtZXNwYWNlID8/IERFRkFVTFRfTkFNRVNQQUNFLFxuICAgICAgbWFuYWdlT3JnUm91dGU6IG1lcmdlZC5tYW5hZ2VPcmdSb3V0ZSA/PyBERUZBVUxUX01BTkFHRV9PUkdfUk9VVEUsXG4gICAgICBvbk9yZ1N3aXRjaGVkOiBtZXJnZWQub25PcmdTd2l0Y2hlZCxcbiAgICAgIG9uT3JnQ3JlYXRlZDogbWVyZ2VkLm9uT3JnQ3JlYXRlZCxcbiAgICAgIG9uTG9nZ2VkT3V0OiBtZXJnZWQub25Mb2dnZWRPdXQsXG4gICAgICBvbkFjY291bnREZWxldGVkOiBtZXJnZWQub25BY2NvdW50RGVsZXRlZCxcbiAgICB9O1xuICB9KTtcblxuICAvKiogTmFtZXNwYWNlIGkxOG4gcmVzdWVsdG8gKGNhcHR1cmFkbyBwYXJhIGxsYW1hZGFzIG5vLXJlYWN0aXZhcykuICovXG4gIHByaXZhdGUgZ2V0IG5zKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZWRDb25maWcoKS5pMThuTmFtZXNwYWNlO1xuICB9XG5cbiAgcmVhZG9ubHkgb3JncyA9IHNpZ25hbDxPcmdhbml6YXRpb25bXT4oW10pO1xuICByZWFkb25seSBvcmdzTG9hZGluZyA9IHNpZ25hbChmYWxzZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgb3Jnc0Vycm9yID0gc2lnbmFsPHVua25vd24+KG51bGwpO1xuXG4gIHJlYWRvbmx5IG9yZ3NFcnJvclN0YXRlID0gY29tcHV0ZWQ8RW1wdHlTdGF0ZU1ldGFkYXRhIHwgbnVsbD4oKCkgPT4ge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgY29uc3QgZXJyID0gdGhpcy5vcmdzRXJyb3IoKTtcbiAgICBpZiAoIWVycikgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIGNyZWF0ZUVycm9yU3RhdGVQcm9wcyhlcnIsIHtcbiAgICAgIHRpdGxlOiB7XG4gICAgICAgIG9mZmxpbmU6IHRoaXMudHQoJ29yZ3NPZmZsaW5lVGl0bGUnKSxcbiAgICAgICAgZXJyb3I6IHRoaXMudHQoJ29yZ3NFcnJvclRpdGxlJyksXG4gICAgICB9LFxuICAgICAgZGVzY3JpcHRpb246IHtcbiAgICAgICAgb2ZmbGluZTogdGhpcy50dCgnb3Jnc09mZmxpbmVIaW50JyksXG4gICAgICAgIGVycm9yOiBpbnRlcnByZXRFcnJvcihlcnIpLm1lc3NhZ2UsXG4gICAgICB9LFxuICAgICAgcmV0cnlMYWJlbDogdGhpcy50dCgnb3Jnc1JldHJ5JyksXG4gICAgICBvblJldHJ5OiAoKSA9PiB0aGlzLmxvYWRPcmdzKCksXG4gICAgICByZXRyeWluZzogdGhpcy5vcmdzTG9hZGluZygpLFxuICAgIH0pO1xuICB9KTtcblxuICByZWFkb25seSBjcmVhdGVPcmdPcGVuID0gc2lnbmFsKGZhbHNlKTtcbiAgcmVhZG9ubHkgZGVsZXRlQWNjb3VudE9wZW4gPSBzaWduYWwoZmFsc2UpO1xuICByZWFkb25seSBhY3RpdmVPcmdMb2dvRmFpbGVkID0gc2lnbmFsKGZhbHNlKTtcblxuICByZWFkb25seSBwZW5kaW5nSW52aXRlcyA9IHNpZ25hbDxQZW5kaW5nSW52aXRhdGlvbltdPihbXSk7XG4gIHJlYWRvbmx5IHBlbmRpbmdJbnZpdGVzTG9hZGluZyA9IHNpZ25hbChmYWxzZSk7XG4gIHJlYWRvbmx5IGludml0ZUFjY2VwdGluZyA9IHNpZ25hbDxzdHJpbmcgfCBudWxsPihudWxsKTtcblxuICByZWFkb25seSBwYWdlVGl0bGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnR0KCdwYWdlVGl0bGUnKSk7XG4gIHJlYWRvbmx5IHBhZ2VEZXNjcmlwdGlvbiA9IGNvbXB1dGVkKCgpID0+IHRoaXMudHQoJ3BhZ2VEZXNjcmlwdGlvbicpKTtcbiAgcmVhZG9ubHkgb3Jnc1RpdGxlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50dCgnb3Jnc1RpdGxlJykpO1xuICByZWFkb25seSBvcmdzQWN0aXZlVGl0bGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnR0KCdvcmdzQWN0aXZlVGl0bGUnKSk7XG4gIHJlYWRvbmx5IG9yZ3NFbXB0eSA9IGNvbXB1dGVkKCgpID0+IHRoaXMudHQoJ29yZ3NFbXB0eScpKTtcbiAgcmVhZG9ubHkgb3Jnc01vcmVJbmZvID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50dCgnb3Jnc01vcmVJbmZvJykpO1xuICByZWFkb25seSBvcmdzTmV3UXVlc3Rpb24gPSBjb21wdXRlZCgoKSA9PiB0aGlzLnR0KCdvcmdzTmV3UXVlc3Rpb24nKSk7XG4gIHJlYWRvbmx5IG9yZ3NOZXdIaW50ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50dCgnb3Jnc05ld0hpbnQnKSk7XG4gIHJlYWRvbmx5IG5ld09yZ0N0YVByb3BzID0gY29tcHV0ZWQoKCkgPT4gKHtcbiAgICB0aXRsZTogdGhpcy50dCgnb3Jnc05ld1F1ZXN0aW9uJyksXG4gICAgZGVzY3JpcHRpb246IHRoaXMudHQoJ29yZ3NOZXdIaW50JyksXG4gICAgcGFkZGluZzogJzE2cHgnLFxuICAgIGJvcmRlclJhZGl1czogJzE0cHgnLFxuICAgIGFjdGlvbnM6IHtcbiAgICAgIHBvc2l0aW9uOiAncmlnaHQnLFxuICAgICAgY29sdW1uZWQ6IGZhbHNlLFxuICAgICAgYnV0dG9uczogW1xuICAgICAgICB7XG4gICAgICAgICAgdGV4dDogdGhpcy50dCgnb3Jnc05ld0N0YScpLFxuICAgICAgICAgIGNvbG9yOiAncHJpbWFyeScsXG4gICAgICAgICAgZmlsbDogJ3NvbGlkJyxcbiAgICAgICAgICBzaGFwZTogJ3JvdW5kJyxcbiAgICAgICAgICBzaXplOiAnZGVmYXVsdCcsXG4gICAgICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICAgICAgc3RhdGU6ICdFTkFCTEVEJyxcbiAgICAgICAgICB0b2tlbjogJ2FjY291bnQtbmV3LW9yZycsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0gYXMgQnV0dG9uR3JvdXBNZXRhZGF0YSxcbiAgfSkpO1xuICByZWFkb25seSBsb2dvdXRUaXRsZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMudHQoJ2xvZ291dFRpdGxlJykpO1xuICByZWFkb25seSBsb2dvdXRIaW50ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50dCgnbG9nb3V0SGludCcpKTtcbiAgcmVhZG9ubHkgZGFuZ2VyVGl0bGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnR0KCdkYW5nZXJUaXRsZScpKTtcbiAgcmVhZG9ubHkgZGFuZ2VyRGVsZXRlVGl0bGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnR0KCdkYW5nZXJEZWxldGVUaXRsZScpKTtcbiAgcmVhZG9ubHkgZGFuZ2VyRGVsZXRlSGludCA9IGNvbXB1dGVkKCgpID0+IHRoaXMudHQoJ2RhbmdlckRlbGV0ZUhpbnQnKSk7XG5cbiAgcmVhZG9ubHkgYWN0aXZlT3JnSWQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgdSA9IHRoaXMuYXV0aC51c2VyKCkgYXMge1xuICAgICAgYWN0aXZlT3JnSWQ/OiBzdHJpbmc7XG4gICAgICBhY3RpdmVPcmc/OiBzdHJpbmc7XG4gICAgfSB8IG51bGw7XG4gICAgcmV0dXJuIHU/LmFjdGl2ZU9yZ0lkID8/IHU/LmFjdGl2ZU9yZyA/PyAnJztcbiAgfSk7XG5cbiAgcmVhZG9ubHkgYWN0aXZlT3JnUm9sZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCByb2xlcyA9ICh0aGlzLmF1dGggYXMgdW5rbm93biBhcyB7IHJvbGVzPzogKCkgPT4gc3RyaW5nW10gfSkucm9sZXM/LigpID8/IFtdO1xuICAgIHJldHVybiByb2xlc1swXSA/PyBudWxsO1xuICB9KTtcblxuICByZWFkb25seSBhY3RpdmVPcmcgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm9yZ3MoKS5maW5kKG8gPT4gby5pZCA9PT0gdGhpcy5hY3RpdmVPcmdJZCgpKSA/PyBudWxsKTtcblxuICByZWFkb25seSBsb2dvdXRCdXR0b25Qcm9wcyA9IGNvbXB1dGVkPFBhcnRpYWw8QnV0dG9uTWV0YWRhdGE+PigoKSA9PiAoe1xuICAgIHRleHQ6IHRoaXMudHQoJ2xvZ291dCcpLFxuICAgIGNvbG9yOiAnZGFyaycsXG4gICAgZmlsbDogJ291dGxpbmUnLFxuICAgIHNpemU6ICdkZWZhdWx0JyxcbiAgICBzaGFwZTogJ3JvdW5kJyxcbiAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICB0b2tlbjogJ2FjY291bnQtbG9nb3V0JyxcbiAgfSkpO1xuXG4gIHJlYWRvbmx5IGRlbGV0ZUFjY291bnRCdXR0b25Qcm9wcyA9IGNvbXB1dGVkPFBhcnRpYWw8QnV0dG9uTWV0YWRhdGE+PigoKSA9PiAoe1xuICAgIHRleHQ6IHRoaXMudHQoJ2RhbmdlckRlbGV0ZUN0YScpLFxuICAgIGNvbG9yOiAnZGFyaycsXG4gICAgZmlsbDogJ291dGxpbmUnLFxuICAgIHNpemU6ICdkZWZhdWx0JyxcbiAgICBzaGFwZTogJ3JvdW5kJyxcbiAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICB0b2tlbjogJ2FjY291bnQtZGVsZXRlJyxcbiAgfSkpO1xuXG4gIHJlYWRvbmx5IHN3aXRjaEFjY291bnRCdXR0b25Qcm9wcyA9IGNvbXB1dGVkPFBhcnRpYWw8QnV0dG9uTWV0YWRhdGE+PigoKSA9PiAoe1xuICAgIHRleHQ6IHRoaXMudHQoJ3N3aXRjaEFjY291bnRDdGEnKSxcbiAgICBjb2xvcjogJ2RhcmsnLFxuICAgIGZpbGw6ICdvdXRsaW5lJyxcbiAgICBzaXplOiAnZGVmYXVsdCcsXG4gICAgc2hhcGU6ICdyb3VuZCcsXG4gICAgdHlwZTogJ2J1dHRvbicsXG4gICAgdG9rZW46ICdhY2NvdW50LXN3aXRjaCcsXG4gIH0pKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBjb25zdCBucyA9IHRoaXMubnM7XG4gICAgdGhpcy5pMThuLnJlZ2lzdGVyRGVmYXVsdHMobnMsIEFDQ09VTlRfVklFV19JMThOKTtcbiAgICB0aGlzLm5hdi5zZXRCYWNrSGVhZGVyKCdwYWdlVGl0bGUnLCBucywgeyB3aXRoTWVudTogdHJ1ZSB9KTtcbiAgICB0aGlzLmxvYWRPcmdzKCk7XG4gICAgdGhpcy5sb2FkUGVuZGluZ0ludml0ZXMoKTtcbiAgICBjb25uZWN0UGFnZVJlZnJlc2goYXN5bmMgKCkgPT4ge1xuICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoW3RoaXMubG9hZE9yZ3MoKSwgdGhpcy5sb2FkUGVuZGluZ0ludml0ZXMoKV0pO1xuICAgIH0pO1xuICB9XG5cbiAgb3JnVHlwZUxhYmVsKHR5cGU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgbWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgUEVSU09OQUw6IHRoaXMudHQoJ29yZ3NUeXBlUGVyc29uYWwnKSxcbiAgICAgIFBSSVZBVEU6IHRoaXMudHQoJ29yZ3NUeXBlUHJpdmF0ZScpLFxuICAgICAgUFVCTElDOiB0aGlzLnR0KCdvcmdzVHlwZVB1YmxpYycpLFxuICAgICAgQlVTSU5FU1M6IHRoaXMudHQoJ29yZ3NUeXBlQnVzaW5lc3MnKSxcbiAgICB9O1xuICAgIHJldHVybiBtYXBbdHlwZV0gPz8gdHlwZTtcbiAgfVxuXG4gIG9uU3dpdGNoQWNjb3VudCgpOiB2b2lkIHtcbiAgICB2b2lkIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oe1xuICAgICAgY29tcG9uZW50OiBTd2l0Y2hPcmdNb2RhbENvbXBvbmVudCxcbiAgICAgIGNvbXBvbmVudFByb3BzOiB7XG4gICAgICAgIGkxOG5OYW1lc3BhY2U6ICdTZXR0aW5ncy5Td2l0Y2hPcmcnLFxuICAgICAgICBvblN1Y2Nlc3M6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLmxvYWRPcmdzKCk7XG4gICAgICAgICAgdGhpcy5sb2FkUGVuZGluZ0ludml0ZXMoKTtcbiAgICAgICAgICB0aGlzLnJlc29sdmVkQ29uZmlnKCkub25PcmdTd2l0Y2hlZD8uKCk7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgYnJlYWtwb2ludHM6IHtcbiAgICAgICAgYnJlYWtwb2ludHM6IFswLCAwLjg1XSxcbiAgICAgICAgaW5pdGlhbEJyZWFrcG9pbnQ6IDAuODUsXG4gICAgICAgIHNob3dIYW5kbGU6IHRydWUsXG4gICAgICB9LFxuICAgICAgYmFja2Ryb3BEaXNtaXNzOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgb25EZWxldGVBY2NvdW50KCk6IHZvaWQge1xuICAgIHRoaXMuZGVsZXRlQWNjb3VudE9wZW4uc2V0KHRydWUpO1xuICAgIHRoaXMucmVzb2x2ZWRDb25maWcoKS5vbkFjY291bnREZWxldGVkPy4oKTtcbiAgfVxuXG4gIG9uTWFuYWdlT3JnKCk6IHZvaWQge1xuICAgIHRoaXMubmF2Lm5hdmlnYXRlQnlVcmwodGhpcy5yZXNvbHZlZENvbmZpZygpLm1hbmFnZU9yZ1JvdXRlKTtcbiAgfVxuXG4gIG9uTmV3T3JnKCk6IHZvaWQge1xuICAgIHRoaXMuY3JlYXRlT3JnT3Blbi5zZXQodHJ1ZSk7XG4gIH1cblxuICBvbk9yZ0NyZWF0ZWQobmV3T3JnOiBPcmdhbml6YXRpb24pOiB2b2lkIHtcbiAgICB0aGlzLmxvYWRPcmdzKCk7XG4gICAgdGhpcy5yZXNvbHZlZENvbmZpZygpLm9uT3JnQ3JlYXRlZD8uKG5ld09yZyk7XG4gIH1cblxuICBvbk1vcmVJbmZvKCk6IHZvaWQge1xuICAgIHZvaWQgdGhpcy5tb2RhbFNlcnZpY2Uub3Blbih7XG4gICAgICBjb21wb25lbnQ6IE9yZ0luZm9TaGVldENvbXBvbmVudCxcbiAgICAgIGNvbXBvbmVudFByb3BzOiB7XG4gICAgICAgIHRpdGxlOiB0aGlzLnR0KCdvcmdzSW5mb1RpdGxlJyksXG4gICAgICAgIHN1YnRpdGxlOiB0aGlzLnR0KCdvcmdzSW5mb1N1YnRpdGxlJyksXG4gICAgICAgIGJvZHk6IHRoaXMudHQoJ29yZ3NJbmZvQ29udGVudCcpLFxuICAgICAgICBjbG9zZUxhYmVsOiB0aGlzLnR0KCdvcmdzSW5mb0Nsb3NlJyksXG4gICAgICAgIGNsb3NlUHJvcHM6IHtcbiAgICAgICAgICB0ZXh0OiB0aGlzLnR0KCdvcmdzSW5mb0Nsb3NlJyksXG4gICAgICAgICAgZmlsbDogJ291dGxpbmUnLFxuICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgc2l6ZTogJ2RlZmF1bHQnLFxuICAgICAgICAgIGV4cGFuZDogJ2Jsb2NrJyxcbiAgICAgICAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBicmVha3BvaW50czoge1xuICAgICAgICBicmVha3BvaW50czogWzAsIDAuODVdLFxuICAgICAgICBpbml0aWFsQnJlYWtwb2ludDogMC44NSxcbiAgICAgICAgc2hvd0hhbmRsZTogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICBiYWNrZHJvcERpc21pc3M6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICBvbkxvZ291dCgpOiB2b2lkIHtcbiAgICB0aGlzLmF1dGgubG9nb3V0V2l0aENvbmZpcm1hdGlvbigpO1xuICAgIHRoaXMucmVzb2x2ZWRDb25maWcoKS5vbkxvZ2dlZE91dD8uKCk7XG4gIH1cblxuICBwcml2YXRlIGxvYWRQZW5kaW5nSW52aXRlcygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLnBlbmRpbmdJbnZpdGVzTG9hZGluZy5zZXQodHJ1ZSk7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KHJlc29sdmUgPT4ge1xuICAgICAgdGhpcy5vcmdTZXJ2aWNlXG4gICAgICAgIC5nZXRQZW5kaW5nSW52aXRhdGlvbnMoKVxuICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgICBuZXh0OiBpdGVtcyA9PiB7XG4gICAgICAgICAgICB0aGlzLnBlbmRpbmdJbnZpdGVzLnNldChpdGVtcyk7XG4gICAgICAgICAgICB0aGlzLnBlbmRpbmdJbnZpdGVzTG9hZGluZy5zZXQoZmFsc2UpO1xuICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucGVuZGluZ0ludml0ZXNMb2FkaW5nLnNldChmYWxzZSk7XG4gICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBhY2NlcHRQZW5kaW5nSW52aXRlKGludml0ZTogUGVuZGluZ0ludml0YXRpb24pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pbnZpdGVBY2NlcHRpbmcoKSkgcmV0dXJuO1xuICAgIHRoaXMuaW52aXRlQWNjZXB0aW5nLnNldChpbnZpdGUub3JnSWQpO1xuICAgIHRoaXMub3JnU2VydmljZVxuICAgICAgLmFjY2VwdEludml0YXRpb24oaW52aXRlLm9yZ0lkKVxuICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy50b2FzdC5zaG93KHtcbiAgICAgICAgICAgIG1lc3NhZ2U6IHRoaXMudHQoJ2ludml0ZUFjY2VwdGVkJyksXG4gICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgZHVyYXRpb246IDM1MDAsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy5wZW5kaW5nSW52aXRlcy51cGRhdGUobGlzdCA9PiBsaXN0LmZpbHRlcihpID0+IGkub3JnSWQgIT09IGludml0ZS5vcmdJZCkpO1xuICAgICAgICAgIHRoaXMubG9hZE9yZ3MoKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IGVyciA9PiB7XG4gICAgICAgICAgdGhpcy5lcnJvcnMuaGFuZGxlKGVyciwgeyBjb250ZXh0OiAnYWNjb3VudC5hY2NlcHRQZW5kaW5nSW52aXRlJyB9KTtcbiAgICAgICAgICB0aGlzLmludml0ZUFjY2VwdGluZy5zZXQobnVsbCk7XG4gICAgICAgIH0sXG4gICAgICAgIGNvbXBsZXRlOiAoKSA9PiB0aGlzLmludml0ZUFjY2VwdGluZy5zZXQobnVsbCksXG4gICAgICB9KTtcbiAgfVxuXG4gIGRlY2xpbmVQZW5kaW5nSW52aXRlKGludml0ZTogUGVuZGluZ0ludml0YXRpb24pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pbnZpdGVBY2NlcHRpbmcoKSkgcmV0dXJuO1xuICAgIHRoaXMuaW52aXRlQWNjZXB0aW5nLnNldChpbnZpdGUub3JnSWQpO1xuICAgIHRoaXMub3JnU2VydmljZVxuICAgICAgLmRlY2xpbmVJbnZpdGF0aW9uKGludml0ZS5vcmdJZClcbiAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAgIHRoaXMudG9hc3Quc2hvdyh7XG4gICAgICAgICAgICBtZXNzYWdlOiB0aGlzLnR0KCdpbnZpdGVEZWNsaW5lZCcpLFxuICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgIGR1cmF0aW9uOiAyNTAwLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMucGVuZGluZ0ludml0ZXMudXBkYXRlKGxpc3QgPT4gbGlzdC5maWx0ZXIoaSA9PiBpLm9yZ0lkICE9PSBpbnZpdGUub3JnSWQpKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IGVyciA9PiB7XG4gICAgICAgICAgdGhpcy5lcnJvcnMuaGFuZGxlKGVyciwgeyBjb250ZXh0OiAnYWNjb3VudC5kZWNsaW5lUGVuZGluZ0ludml0ZScgfSk7XG4gICAgICAgICAgdGhpcy5pbnZpdGVBY2NlcHRpbmcuc2V0KG51bGwpO1xuICAgICAgICB9LFxuICAgICAgICBjb21wbGV0ZTogKCkgPT4gdGhpcy5pbnZpdGVBY2NlcHRpbmcuc2V0KG51bGwpLFxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGxvYWRPcmdzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMub3Jnc0xvYWRpbmcuc2V0KHRydWUpO1xuICAgIHRoaXMub3Jnc0Vycm9yLnNldChudWxsKTtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4ocmVzb2x2ZSA9PiB7XG4gICAgICB0aGlzLm9yZ1NlcnZpY2UubGlzdE15T3JncygpLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IG9yZ3MgPT4ge1xuICAgICAgICAgIGNvbnN0IGFjdGl2ZUlkID0gdGhpcy5hY3RpdmVPcmdJZCgpO1xuICAgICAgICAgIHRoaXMub3Jncy5zZXQoWy4uLm9yZ3NdLnNvcnQoKGEsIGIpID0+IChhLmlkID09PSBhY3RpdmVJZCA/IC0xIDogYi5pZCA9PT0gYWN0aXZlSWQgPyAxIDogMCkpKTtcbiAgICAgICAgICB0aGlzLmFjdGl2ZU9yZ0xvZ29GYWlsZWQuc2V0KGZhbHNlKTtcbiAgICAgICAgICB0aGlzLm9yZ3NMb2FkaW5nLnNldChmYWxzZSk7XG4gICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogZXJyID0+IHtcbiAgICAgICAgICB0aGlzLm9yZ3NFcnJvci5zZXQoZXJyKTtcbiAgICAgICAgICB0aGlzLm9yZ3NMb2FkaW5nLnNldChmYWxzZSk7XG4gICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdHQoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmkxOG4udChrZXksIHRoaXMubnMpO1xuICB9XG59XG4iXX0=
|
package/esm2022/lib/components/organisms/api-key-create-modal/api-key-create-modal.component.mjs
CHANGED
|
@@ -89,14 +89,10 @@ export class ApiKeyCreateModalComponent {
|
|
|
89
89
|
actions: submitButton,
|
|
90
90
|
};
|
|
91
91
|
});
|
|
92
|
-
|
|
93
|
-
this.i18n.registerContent(DEFAULT_NAMESPACE, API_KEYS_MODAL_I18N);
|
|
94
|
-
}
|
|
92
|
+
this.i18n.registerDefaults(DEFAULT_NAMESPACE, API_KEYS_MODAL_I18N);
|
|
95
93
|
}
|
|
96
94
|
ngOnInit() {
|
|
97
|
-
|
|
98
|
-
this.i18n.registerContent(this.i18nNamespace, API_KEYS_MODAL_I18N);
|
|
99
|
-
}
|
|
95
|
+
this.i18n.registerDefaults(this.i18nNamespace, API_KEYS_MODAL_I18N);
|
|
100
96
|
this.loadCatalog();
|
|
101
97
|
}
|
|
102
98
|
/**
|
|
@@ -287,4 +283,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
287
283
|
}], created: [{
|
|
288
284
|
type: Output
|
|
289
285
|
}] } });
|
|
290
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWtleS1jcmVhdGUtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9hcGkta2V5LWNyZWF0ZS1tb2RhbC9hcGkta2V5LWNyZWF0ZS1tb2RhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVyRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBa0IsZUFBZSxFQUEyQyxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFbEgsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUUzRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDbEUsT0FBTyxFQUVMLHdCQUF3QixHQUV6QixNQUFNLGtEQUFrRCxDQUFDO0FBQzFELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1FQUFtRSxDQUFDO0FBRWhILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOztBQUU1RSxNQUFNLGlCQUFpQixHQUFHLHVCQUF1QixDQUFDO0FBRWxEOzs7Ozs7Ozs7OztHQVdHO0FBcUdILE1BQU0sT0FBTywwQkFBMEI7SUE4RXJDO1FBN0VRLFNBQUksR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDM0IsWUFBTyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNoQyxZQUFPLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDM0MsU0FBSSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUtuQyw0REFBNEQ7UUFDbkQsa0JBQWEsR0FBRyxpQkFBaUIsQ0FBQztRQUtsQyx1QkFBa0IsR0FBRyxNQUFNLENBQXVCLEVBQUUsQ0FBQyxDQUFDO1FBQ3RELGlCQUFZLEdBQUcsTUFBTSxDQUFpQyxFQUFFLENBQUMsQ0FBQztRQUMxRCxrQkFBYSxHQUFHLE1BQU0sQ0FBVyxFQUFFLENBQUMsQ0FBQztRQUNyQyxlQUFVLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLGFBQVEsR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEIsV0FBTSxHQUFHLE1BQU0sQ0FBZ0MsSUFBSSxDQUFDLENBQUM7UUFDckQsV0FBTSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVoQyxzRUFBc0U7UUFDNUQsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFFcEMsZUFBVSxHQUFHLFFBQVEsQ0FBZSxHQUFHLEVBQUU7WUFDaEQsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNqQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFFbEMsTUFBTSxTQUFTLEdBQWtCO2dCQUMvQixLQUFLLEVBQUUsYUFBYTtnQkFDcEIsSUFBSSxFQUFFLE1BQU07Z0JBQ1osS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDO2dCQUMxQixJQUFJLEVBQUUsRUFBRTtnQkFDUixXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztnQkFDdEMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJO2dCQUNwQixLQUFLLEVBQUUsQ0FBQztnQkFDUixVQUFVLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzVELE1BQU0sRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUN0QyxLQUFLLEVBQUUsRUFBRTtnQkFDVCxLQUFLLEVBQUUsZUFBZSxDQUFDLE9BQU87YUFDZCxDQUFDO1lBRW5CLE1BQU0sWUFBWSxHQUFrQjtnQkFDbEMsS0FBSyxFQUFFLGdCQUFnQjtnQkFDdkIsSUFBSSxFQUFFLGVBQWU7Z0JBQ3JCLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQztnQkFDN0IsSUFBSSxFQUFFLEVBQUU7Z0JBQ1IsV0FBVyxFQUFFLEVBQUU7Z0JBQ2YsSUFBSSxFQUFFLFNBQVMsQ0FBQyxNQUFNO2dCQUN0QixLQUFLLEVBQUUsQ0FBQztnQkFDUixVQUFVLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMvQixNQUFNLEVBQUUsRUFBRTtnQkFDVixLQUFLLEVBQUUsRUFBRTtnQkFDVCxLQUFLLEVBQUUsZUFBZSxDQUFDLE9BQU87YUFDZCxDQUFDO1lBRW5CLE1BQU0sWUFBWSxHQUFtQjtnQkFDbkMsS0FBSyxFQUFFLHNCQUFzQjtnQkFDN0IsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO2dCQUN0QixLQUFLLEVBQUUsTUFBTTtnQkFDYixJQUFJLEVBQUUsUUFBUTtnQkFDZCxJQUFJLEVBQUUsT0FBTztnQkFDYixJQUFJLEVBQUUsU0FBUztnQkFDZixLQUFLLEVBQUUsT0FBTztnQkFDZCxNQUFNLEVBQUUsT0FBTztnQkFDZixLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsT0FBTzthQUNqRCxDQUFDO1lBRXBCLE9BQU87Z0JBQ0wsSUFBSSxFQUFFLEVBQUU7Z0JBQ1IsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLE9BQU87Z0JBQ2xFLFFBQVEsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLFNBQVMsRUFBRSxZQUFZLENBQUMsRUFBRSxDQUFDO2dCQUNyRSxPQUFPLEVBQUUsWUFBWTthQUN0QixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFHRCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDO1lBQy9DLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLGlCQUFpQixFQUFFLG1CQUFtQixDQUFDLENBQUM7UUFDcEUsQ0FBQztJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO1lBQ2hELElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztRQUNyRSxDQUFDO1FBQ0QsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7O09BR0c7SUFDSyxXQUFXO1FBQ2pCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU87UUFDbkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ3ZDLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRTtnQkFDVixNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO2dCQUN4QixNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQUcsQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUM3QyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssVUFBVSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxLQUFLLElBQUksQ0FBQyxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsQ0FDeEUsQ0FBQztnQkFDRixJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUN0QyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ2hELENBQUM7WUFDRCxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUUsQ0FBQztTQUNoQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sV0FBVztRQUNqQixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBeUQsQ0FBQztRQUNsRixPQUFPLENBQUMsRUFBRSxXQUFXLElBQUksQ0FBQyxFQUFFLFNBQVMsSUFBSSxFQUFFLENBQUM7SUFDOUMsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFpQjtRQUM5QixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFBRSxPQUFPO1FBQzlCLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRXRCLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN6QyxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO1FBRXpELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNWLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUNwQyxPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQ3JDLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLE9BQU87YUFDVCxNQUFNLENBQUM7WUFDTixJQUFJO1lBQ0osV0FBVztZQUNYLGFBQWEsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUztTQUN0RixDQUFDO2FBQ0QsU0FBUyxDQUFDO1lBQ1QsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFO2dCQUNWLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMzQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3pCLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO2dCQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3RCLENBQUM7WUFDRCxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsT0FBTyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztZQUNuRSxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBYztRQUN2QixJQUFJLENBQUM7WUFDSCxNQUFNLFNBQVMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hCLENBQUM7UUFBQyxNQUFNLENBQUM7WUFDUCwyRUFBMkU7UUFDN0UsQ0FBQztJQUNILENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxDQUFDLENBQUMsR0FBVztRQUNYLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM5QyxDQUFDOytHQTdLVSwwQkFBMEI7bUdBQTFCLDBCQUEwQixpTkF0RjNCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRDVCw2b0JBdERDLFNBQVMsb0dBQ1QsVUFBVSxtRkFDVixVQUFVLDhFQUNWLFNBQVMsb1BBQ1QsVUFBVSx3S0FDVixhQUFhLDhIQUNiLGdCQUFnQiwyRUFDaEIsY0FBYyx5RUFDZCwyQkFBMkI7OzRGQXdGbEIsMEJBQTBCO2tCQXBHdEMsU0FBUzsrQkFDRSwwQkFBMEIsY0FDeEIsSUFBSSxXQUNQO3dCQUNQLFNBQVM7d0JBQ1QsVUFBVTt3QkFDVixVQUFVO3dCQUNWLFNBQVM7d0JBQ1QsVUFBVTt3QkFDVixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsY0FBYzt3QkFDZCwyQkFBMkI7cUJBQzVCLFlBQ1M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNENUO3dEQWlEUSxTQUFTO3NCQUFqQixLQUFLO2dCQUdHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBR0csU0FBUztzQkFBakIsS0FBSztnQkFXSSxPQUFPO3NCQUFoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0LCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSW9uQnV0dG9uLCBJb25CdXR0b25zLCBJb25Db250ZW50LCBJb25IZWFkZXIsIElvblRvb2xiYXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcblxuaW1wb3J0IHsgRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL2Zvcm0vZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGlzcGxheUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2Rpc3BsYXkvZGlzcGxheS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGl0bGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy90aXRsZS90aXRsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uTWV0YWRhdGEsIENvbXBvbmVudFN0YXRlcywgRm9ybU1ldGFkYXRhLCBGb3JtU3VibWl0LCBJbnB1dE1ldGFkYXRhLCBJbnB1dFR5cGUgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBBcGlLZXlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXBpa2V5cy9hcGkta2V5cy5zZXJ2aWNlJztcbmltcG9ydCB7IENsaWVudEFwaUtleVdpdGhTZWNyZXQgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hcGlrZXlzL3R5cGVzJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXV0aC9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgTG9jYWxpemVkTGFiZWwsXG4gIFBlcm1pc3Npb25DYXRhbG9nU2VydmljZSxcbiAgUGVybWlzc2lvblJlc291cmNlLFxufSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9vcmcvcGVybWlzc2lvbi1jYXRhbG9nLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGVybWlzc2lvblNlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3Blcm1pc3Npb24tc2VsZWN0b3IvcGVybWlzc2lvbi1zZWxlY3Rvci5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBBUElfS0VZU19NT0RBTF9JMThOIH0gZnJvbSAnLi4vYXBpLWtleXMtbW9kYWwvYXBpLWtleXMtbW9kYWwuaTE4bic7XG5cbmNvbnN0IERFRkFVTFRfTkFNRVNQQUNFID0gJ1NldHRpbmdzLkFwaUtleXNNb2RhbCc7XG5cbi8qKlxuICogYHZhbC1hcGkta2V5LWNyZWF0ZS1tb2RhbGAg4oCUIG1vZGFsIFPDk0xPIHBhcmEgY3JlYXIgdW5hIENsaWVudCBBUEkgS2V5LlxuICpcbiAqIEV4dHJhw61kbyBkZSBgdmFsLWFwaS1rZXlzLW1vZGFsYCBiYWpvIGVsIHByb2Nlc28gZGUgQURSLTAyMTogbGEgZ2VzdGnDs24gKGxpc3RhICtcbiAqIHJldm9rZSkgdml2ZSBhaG9yYSBlbiBsYSB2aXN0YSBgdmFsLWFwaS1rZXlzLXZpZXdgLCB5IGxhIGNyZWFjacOzbiBlbiBlc3RlIG1vZGFsLFxuICogcXVlIGBhcGkta2V5cy12aWV3YCBhYnJlIHbDrWEgYE1vZGFsU2VydmljZWAuIEhlYWRlciBjYW7Ds25pY28gKFJlZ2xhICM1KTogdMOtdHVsbyBlblxuICogZWwgYm9keSwgYm90w7NuIENlcnJhciBlbiBlbCB0b29sYmFyLlxuICpcbiAqIEZsdWpvOiBzZWxlY3RvciBkZSBwZXJtaXNvcyAoZmlsdHJhZG8gcG9yIG9yZy9hcHApICsgZm9ybSAobm9tYnJlICsgZXhwaXJhY2nDs24pIOKGklxuICogY3JlYSDihpIgbXVlc3RyYSBlbCBzZWNyZXRvIFVOQSB2ZXogY29uIGNvcGlhLiBFbWl0ZSBgKGNyZWF0ZWQpYCBhbCB0ZXJtaW5hciAocGFyYVxuICogcXVlIGxhIHZpc3RhIHJlZnJlc3F1ZSBsYSBsaXN0YSkgeSBgKGRpc21pc3NlZClgIGFsIGNlcnJhci5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWFwaS1rZXktY3JlYXRlLW1vZGFsJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIElvbkhlYWRlcixcbiAgICBJb25Ub29sYmFyLFxuICAgIElvbkJ1dHRvbnMsXG4gICAgSW9uQnV0dG9uLFxuICAgIElvbkNvbnRlbnQsXG4gICAgRm9ybUNvbXBvbmVudCxcbiAgICBEaXNwbGF5Q29tcG9uZW50LFxuICAgIFRpdGxlQ29tcG9uZW50LFxuICAgIFBlcm1pc3Npb25TZWxlY3RvckNvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8aW9uLWhlYWRlcj5cbiAgICAgIDxpb24tdG9vbGJhcj5cbiAgICAgICAgPGlvbi1idXR0b25zIHNsb3Q9XCJlbmRcIj5cbiAgICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwiY2xlYXJcIiBjb2xvcj1cImRhcmtcIiBzaGFwZT1cInJvdW5kXCIgKGNsaWNrKT1cImRpc21pc3MoKVwiPlxuICAgICAgICAgICAgPHN0cm9uZz57eyB0KCdjbG9zZScpIH19PC9zdHJvbmc+XG4gICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICA8L2lvbi1idXR0b25zPlxuICAgICAgPC9pb24tdG9vbGJhcj5cbiAgICA8L2lvbi1oZWFkZXI+XG5cbiAgICA8aW9uLWNvbnRlbnQgY2xhc3M9XCJpb24tcGFkZGluZ1wiPlxuICAgICAgQGlmIChzZWNyZXQoKTsgYXMgcykge1xuICAgICAgICA8dmFsLWRpc3BsYXkgW3Byb3BzXT1cInsgY29udGVudDogdCgnc2VjcmV0VGl0bGUnKSwgc2l6ZTogJ3NtYWxsJywgY29sb3I6ICdkYXJrJyB9XCIgLz5cbiAgICAgICAgPHAgY2xhc3M9XCJhcGlrZXktc2VjcmV0X193YXJuXCI+e3sgdCgnc2VjcmV0V2FybmluZycpIH19PC9wPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXBpa2V5LXNlY3JldF9fYm94XCI+XG4gICAgICAgICAgPGNvZGU+e3sgcy5zZWNyZXQgfX08L2NvZGU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXBpa2V5LWFjdGlvbnNcIj5cbiAgICAgICAgICA8aW9uLWJ1dHRvbiBleHBhbmQ9XCJibG9ja1wiIGNvbG9yPVwiZGFya1wiIHNoYXBlPVwicm91bmRcIiAoY2xpY2spPVwiY29weShzLnNlY3JldClcIj5cbiAgICAgICAgICAgIHt7IGNvcGllZCgpID8gdCgnY29waWVkJykgOiB0KCdjb3B5JykgfX1cbiAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgPGlvbi1idXR0b24gZXhwYW5kPVwiYmxvY2tcIiBmaWxsPVwib3V0bGluZVwiIGNvbG9yPVwiZGFya1wiIHNoYXBlPVwicm91bmRcIiAoY2xpY2spPVwiZmluaXNoU2VjcmV0KClcIj5cbiAgICAgICAgICAgIHt7IHQoJ2RvbmUnKSB9fVxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPHZhbC1kaXNwbGF5IFtwcm9wc109XCJ7IGNvbnRlbnQ6IHQoJ25ld0tleScpLCBzaXplOiAnc21hbGwnLCBjb2xvcjogJ2RhcmsnIH1cIiAvPlxuICAgICAgICA8dmFsLXRpdGxlIFtwcm9wc109XCJ7IGNvbnRlbnQ6IHQoJ2hpbnQnKSwgc2l6ZTogJ2xhcmdlJywgY29sb3I6ICcnLCBib2xkOiBmYWxzZSB9XCIgLz5cblxuICAgICAgICA8dmFsLXBlcm1pc3Npb24tc2VsZWN0b3JcbiAgICAgICAgICBbaGVhZGVyXT1cInQoJ3Blcm1pc3Npb25zTGFiZWwnKVwiXG4gICAgICAgICAgW3Blcm1pc3Npb25zXT1cImNhdGFsb2dQZXJtaXNzaW9ucygpXCJcbiAgICAgICAgICBbYWN0aW9uTGFiZWxzXT1cImFjdGlvbkxhYmVscygpXCJcbiAgICAgICAgICBbc2VsZWN0ZWRdPVwic2VsZWN0ZWRQZXJtcygpXCJcbiAgICAgICAgICAoc2VsZWN0ZWRDaGFuZ2UpPVwic2VsZWN0ZWRQZXJtcy5zZXQoJGV2ZW50KVwiXG4gICAgICAgIC8+XG4gICAgICAgIDx2YWwtZm9ybSBbcHJvcHNdPVwiY3JlYXRlRm9ybSgpXCIgKG9uU3VibWl0KT1cIm9uQ3JlYXRlU3VibWl0KCRldmVudClcIiAvPlxuXG4gICAgICAgIEBpZiAoZXJyb3JNc2coKSkge1xuICAgICAgICAgIDxwIGNsYXNzPVwiYXBpa2V5LWVycm9yXCI+e3sgZXJyb3JNc2coKSB9fTwvcD5cbiAgICAgICAgfVxuICAgICAgfVxuICAgIDwvaW9uLWNvbnRlbnQ+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIGlvbi1jb250ZW50IHtcbiAgICAgICAgLS1wYWRkaW5nLWJvdHRvbTogY2FsYyg5NnB4ICsgZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20sIDBweCkpO1xuICAgICAgfVxuICAgICAgdmFsLWRpc3BsYXkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgICAgfVxuICAgICAgdmFsLXRpdGxlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgICB9XG4gICAgICAuYXBpa2V5LWFjdGlvbnMge1xuICAgICAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgIH1cbiAgICAgIC5hcGlrZXktZXJyb3Ige1xuICAgICAgICBtYXJnaW46IDhweCAwO1xuICAgICAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhbmdlciwgI2MwMzkyYik7XG4gICAgICB9XG4gICAgICAuYXBpa2V5LXNlY3JldF9fd2FybiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3Itd2FybmluZy1zaGFkZSwgI2I4ODYwMCk7XG4gICAgICAgIG1hcmdpbjogMCAwIDEycHggMDtcbiAgICAgIH1cbiAgICAgIC5hcGlrZXktc2VjcmV0X19ib3gge1xuICAgICAgICBwYWRkaW5nOiAxMnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1kYXJrKTtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFwaUtleUNyZWF0ZU1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBhcGlLZXlzID0gaW5qZWN0KEFwaUtleVNlcnZpY2UpO1xuICBwcml2YXRlIGNhdGFsb2cgPSBpbmplY3QoUGVybWlzc2lvbkNhdGFsb2dTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBhdXRoID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcblxuICAvKiogSW55ZWN0YWRvIHBvciBgTW9kYWxTZXJ2aWNlLm9wZW5gIOKAlCByZWZlcmVuY2lhIHBhcmEgY2VycmFyIGRlc2RlIGRlbnRyby4gKi9cbiAgQElucHV0KCkgX21vZGFsUmVmPzogeyBkaXNtaXNzOiAoZGF0YT86IHVua25vd24sIHJvbGU/OiBzdHJpbmcpID0+IHZvaWQgfTtcblxuICAvKiogTmFtZXNwYWNlIGkxOG4gKGNvbXBhcnRlIGVsIGRlIGB2YWwtYXBpLWtleXMtbW9kYWxgKS4gKi9cbiAgQElucHV0KCkgaTE4bk5hbWVzcGFjZSA9IERFRkFVTFRfTkFNRVNQQUNFO1xuXG4gIC8qKiBDYWxsYmFjayB0cmFzIGNyZWFyIHVuYSBrZXkgKHBhc2FkbyBwb3IgYGNvbXBvbmVudFByb3BzYCDigJQgcmVmcmVzY2EgbGEgbGlzdGEpLiAqL1xuICBASW5wdXQoKSBvbkNyZWF0ZWQ/OiAoKSA9PiB2b2lkO1xuXG4gIHJlYWRvbmx5IGNhdGFsb2dQZXJtaXNzaW9ucyA9IHNpZ25hbDxQZXJtaXNzaW9uUmVzb3VyY2VbXT4oW10pO1xuICByZWFkb25seSBhY3Rpb25MYWJlbHMgPSBzaWduYWw8UmVjb3JkPHN0cmluZywgTG9jYWxpemVkTGFiZWw+Pih7fSk7XG4gIHJlYWRvbmx5IHNlbGVjdGVkUGVybXMgPSBzaWduYWw8c3RyaW5nW10+KFtdKTtcbiAgcmVhZG9ubHkgc3VibWl0dGluZyA9IHNpZ25hbChmYWxzZSk7XG4gIHJlYWRvbmx5IGVycm9yTXNnID0gc2lnbmFsKCcnKTtcbiAgcmVhZG9ubHkgc2VjcmV0ID0gc2lnbmFsPENsaWVudEFwaUtleVdpdGhTZWNyZXQgfCBudWxsPihudWxsKTtcbiAgcmVhZG9ubHkgY29waWVkID0gc2lnbmFsKGZhbHNlKTtcblxuICAvKiogRW1pdGUgY3VhbmRvIHNlIGNyZcOzIHVuYSBrZXkgKGFkZW3DoXMgZGVsIGNhbGxiYWNrIGBvbkNyZWF0ZWRgKS4gKi9cbiAgQE91dHB1dCgpIGNyZWF0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgcmVhZG9ubHkgY3JlYXRlRm9ybSA9IGNvbXB1dGVkPEZvcm1NZXRhZGF0YT4oKCkgPT4ge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgY29uc3Qgd29ya2luZyA9IHRoaXMuc3VibWl0dGluZygpO1xuXG4gICAgY29uc3QgbmFtZUZpZWxkOiBJbnB1dE1ldGFkYXRhID0ge1xuICAgICAgdG9rZW46ICdhcGlrZXktbmFtZScsXG4gICAgICBuYW1lOiAnbmFtZScsXG4gICAgICBsYWJlbDogdGhpcy50KCduYW1lTGFiZWwnKSxcbiAgICAgIGhpbnQ6ICcnLFxuICAgICAgcGxhY2Vob2xkZXI6IHRoaXMudCgnbmFtZVBsYWNlaG9sZGVyJyksXG4gICAgICB0eXBlOiBJbnB1dFR5cGUuVEVYVCxcbiAgICAgIG9yZGVyOiAxLFxuICAgICAgdmFsaWRhdG9yczogW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDEyMCldLFxuICAgICAgZXJyb3JzOiB7IHJlcXVpcmVkOiB0aGlzLnQoJ25vTmFtZScpIH0sXG4gICAgICB2YWx1ZTogJycsXG4gICAgICBzdGF0ZTogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gICAgfSBhcyBJbnB1dE1ldGFkYXRhO1xuXG4gICAgY29uc3QgZXhwaXJlc0ZpZWxkOiBJbnB1dE1ldGFkYXRhID0ge1xuICAgICAgdG9rZW46ICdhcGlrZXktZXhwaXJlcycsXG4gICAgICBuYW1lOiAnZXhwaXJlc0luRGF5cycsXG4gICAgICBsYWJlbDogdGhpcy50KCdleHBpcmVzTGFiZWwnKSxcbiAgICAgIGhpbnQ6ICcnLFxuICAgICAgcGxhY2Vob2xkZXI6ICcnLFxuICAgICAgdHlwZTogSW5wdXRUeXBlLk5VTUJFUixcbiAgICAgIG9yZGVyOiAzLFxuICAgICAgdmFsaWRhdG9yczogW1ZhbGlkYXRvcnMubWluKDEpXSxcbiAgICAgIGVycm9yczoge30sXG4gICAgICB2YWx1ZTogJycsXG4gICAgICBzdGF0ZTogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gICAgfSBhcyBJbnB1dE1ldGFkYXRhO1xuXG4gICAgY29uc3Qgc3VibWl0QnV0dG9uOiBCdXR0b25NZXRhZGF0YSA9IHtcbiAgICAgIHRva2VuOiAnYXBpa2V5LWNyZWF0ZS1zdWJtaXQnLFxuICAgICAgdGV4dDogdGhpcy50KCdjcmVhdGUnKSxcbiAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICB0eXBlOiAnc3VibWl0JyxcbiAgICAgIGZpbGw6ICdzb2xpZCcsXG4gICAgICBzaXplOiAnZGVmYXVsdCcsXG4gICAgICBzaGFwZTogJ3JvdW5kJyxcbiAgICAgIGV4cGFuZDogJ2Jsb2NrJyxcbiAgICAgIHN0YXRlOiB3b3JraW5nID8gQ29tcG9uZW50U3RhdGVzLldPUktJTkcgOiBDb21wb25lbnRTdGF0ZXMuRU5BQkxFRCxcbiAgICB9IGFzIEJ1dHRvbk1ldGFkYXRhO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6ICcnLFxuICAgICAgc3RhdGU6IHdvcmtpbmcgPyBDb21wb25lbnRTdGF0ZXMuV09SS0lORyA6IENvbXBvbmVudFN0YXRlcy5FTkFCTEVELFxuICAgICAgc2VjdGlvbnM6IFt7IG5hbWU6ICcnLCBvcmRlcjogMSwgZmllbGRzOiBbbmFtZUZpZWxkLCBleHBpcmVzRmllbGRdIH1dLFxuICAgICAgYWN0aW9uczogc3VibWl0QnV0dG9uLFxuICAgIH07XG4gIH0pO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGlmICghdGhpcy5pMThuLmhhc05hbWVzcGFjZShERUZBVUxUX05BTUVTUEFDRSkpIHtcbiAgICAgIHRoaXMuaTE4bi5yZWdpc3RlckNvbnRlbnQoREVGQVVMVF9OQU1FU1BBQ0UsIEFQSV9LRVlTX01PREFMX0kxOE4pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pMThuLmhhc05hbWVzcGFjZSh0aGlzLmkxOG5OYW1lc3BhY2UpKSB7XG4gICAgICB0aGlzLmkxOG4ucmVnaXN0ZXJDb250ZW50KHRoaXMuaTE4bk5hbWVzcGFjZSwgQVBJX0tFWVNfTU9EQUxfSTE4Tik7XG4gICAgfVxuICAgIHRoaXMubG9hZENhdGFsb2coKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYXJnYSBlbCBjYXTDoWxvZ28geSBsbyBmaWx0cmEgYSBsbyBhc2lnbmFibGUgYSB1bmEgQVBJIEtleSBkZSBsYSBvcmc6IGRlc2NhcnRhXG4gICAqIGBpbnRlcm5hbGAgKGVsIGJhY2tlbmQgeWEgbG9zIG9taXRlIHBhcmEgbm8tc3RhZmYpIHkgbG9zIHBlcm1pc29zIGRlIE9UUkFTIGFwcHMuXG4gICAqL1xuICBwcml2YXRlIGxvYWRDYXRhbG9nKCk6IHZvaWQge1xuICAgIGNvbnN0IG9yZ0lkID0gdGhpcy5hY3RpdmVPcmdJZCgpO1xuICAgIGlmICghb3JnSWQpIHJldHVybjtcbiAgICB0aGlzLmNhdGFsb2cuZ2V0Q2F0YWxvZyhvcmdJZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IHJlcyA9PiB7XG4gICAgICAgIGNvbnN0IGFwcElkID0gcmVzLmFwcElkO1xuICAgICAgICBjb25zdCBmaWx0ZXJlZCA9IChyZXMucGVybWlzc2lvbnMgPz8gW10pLmZpbHRlcihcbiAgICAgICAgICBwID0+IHAuc2NvcGUgIT09ICdpbnRlcm5hbCcgJiYgKHAuc2NvcGUgIT09ICdhcHAnIHx8IHAuYXBwSWQgPT09IGFwcElkKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLmNhdGFsb2dQZXJtaXNzaW9ucy5zZXQoZmlsdGVyZWQpO1xuICAgICAgICB0aGlzLmFjdGlvbkxhYmVscy5zZXQocmVzLmFjdGlvbkxhYmVscyA/PyB7fSk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6ICgpID0+IHt9LFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhY3RpdmVPcmdJZCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHUgPSB0aGlzLmF1dGgudXNlcigpIGFzIHsgYWN0aXZlT3JnSWQ/OiBzdHJpbmc7IGFjdGl2ZU9yZz86IHN0cmluZyB9IHwgbnVsbDtcbiAgICByZXR1cm4gdT8uYWN0aXZlT3JnSWQgPz8gdT8uYWN0aXZlT3JnID8/ICcnO1xuICB9XG5cbiAgb25DcmVhdGVTdWJtaXQoZXZlbnQ6IEZvcm1TdWJtaXQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdWJtaXR0aW5nKCkpIHJldHVybjtcbiAgICB0aGlzLmVycm9yTXNnLnNldCgnJyk7XG5cbiAgICBjb25zdCBuYW1lID0gU3RyaW5nKGV2ZW50LmZpZWxkc1snbmFtZSddID8/ICcnKS50cmltKCk7XG4gICAgY29uc3QgcGVybWlzc2lvbnMgPSB0aGlzLnNlbGVjdGVkUGVybXMoKTtcbiAgICBjb25zdCBleHBpcmVzUmF3ID0gTnVtYmVyKGV2ZW50LmZpZWxkc1snZXhwaXJlc0luRGF5cyddKTtcblxuICAgIGlmICghbmFtZSkge1xuICAgICAgdGhpcy5lcnJvck1zZy5zZXQodGhpcy50KCdub05hbWUnKSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghcGVybWlzc2lvbnMubGVuZ3RoKSB7XG4gICAgICB0aGlzLmVycm9yTXNnLnNldCh0aGlzLnQoJ25vUGVybXMnKSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdWJtaXR0aW5nLnNldCh0cnVlKTtcbiAgICB0aGlzLmFwaUtleXNcbiAgICAgIC5jcmVhdGUoe1xuICAgICAgICBuYW1lLFxuICAgICAgICBwZXJtaXNzaW9ucyxcbiAgICAgICAgZXhwaXJlc0luRGF5czogTnVtYmVyLmlzRmluaXRlKGV4cGlyZXNSYXcpICYmIGV4cGlyZXNSYXcgPiAwID8gZXhwaXJlc1JhdyA6IHVuZGVmaW5lZCxcbiAgICAgIH0pXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogcmVzID0+IHtcbiAgICAgICAgICB0aGlzLnN1Ym1pdHRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgICB0aGlzLnNlY3JldC5zZXQocmVzLmtleSk7XG4gICAgICAgICAgdGhpcy5vbkNyZWF0ZWQ/LigpO1xuICAgICAgICAgIHRoaXMuY3JlYXRlZC5lbWl0KCk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgIHRoaXMuc3VibWl0dGluZy5zZXQoZmFsc2UpO1xuICAgICAgICAgIHRoaXMuZXJyb3JNc2cuc2V0KGVycj8uZXJyb3I/Lm1lc3NhZ2UgPz8gdGhpcy50KCdnZW5lcmljRXJyb3InKSk7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGNvcHkoc2VjcmV0OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoc2VjcmV0KTtcbiAgICAgIHRoaXMuY29waWVkLnNldCh0cnVlKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIGNsaXBib2FyZCBubyBkaXNwb25pYmxlIOKAlCBlbCB1c2VyIHB1ZWRlIHNlbGVjY2lvbmFyIGVsIHRleHRvIG1hbnVhbG1lbnRlXG4gICAgfVxuICB9XG5cbiAgZmluaXNoU2VjcmV0KCk6IHZvaWQge1xuICAgIHRoaXMuZGlzbWlzcygpO1xuICB9XG5cbiAgZGlzbWlzcygpOiB2b2lkIHtcbiAgICB0aGlzLl9tb2RhbFJlZj8uZGlzbWlzcyhudWxsLCAnY2FuY2VsJyk7XG4gIH1cblxuICB0KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoa2V5LCB0aGlzLmkxOG5OYW1lc3BhY2UpO1xuICB9XG59XG4iXX0=
|
|
286
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWtleS1jcmVhdGUtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9hcGkta2V5LWNyZWF0ZS1tb2RhbC9hcGkta2V5LWNyZWF0ZS1tb2RhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVyRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBa0IsZUFBZSxFQUEyQyxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFbEgsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUUzRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDbEUsT0FBTyxFQUVMLHdCQUF3QixHQUV6QixNQUFNLGtEQUFrRCxDQUFDO0FBQzFELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1FQUFtRSxDQUFDO0FBRWhILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOztBQUU1RSxNQUFN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IElucHV0LCBPbkluaXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJb25CdXR0b24sIElvbkJ1dHRvbnMsIElvbkNvbnRlbnQsIElvbkhlYWRlciwgSW9uVG9vbGJhciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuXG5pbXBvcnQgeyBGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vZm9ybS9mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEaXNwbGF5Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvZGlzcGxheS9kaXNwbGF5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaXRsZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3RpdGxlL3RpdGxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCdXR0b25NZXRhZGF0YSwgQ29tcG9uZW50U3RhdGVzLCBGb3JtTWV0YWRhdGEsIEZvcm1TdWJtaXQsIElucHV0TWV0YWRhdGEsIElucHV0VHlwZSB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IEFwaUtleVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hcGlrZXlzL2FwaS1rZXlzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2xpZW50QXBpS2V5V2l0aFNlY3JldCB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2FwaWtleXMvdHlwZXMnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hdXRoL2F1dGguc2VydmljZSc7XG5pbXBvcnQge1xuICBMb2NhbGl6ZWRMYWJlbCxcbiAgUGVybWlzc2lvbkNhdGFsb2dTZXJ2aWNlLFxuICBQZXJtaXNzaW9uUmVzb3VyY2UsXG59IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL29yZy9wZXJtaXNzaW9uLWNhdGFsb2cuc2VydmljZSc7XG5pbXBvcnQgeyBQZXJtaXNzaW9uU2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvcGVybWlzc2lvbi1zZWxlY3Rvci9wZXJtaXNzaW9uLXNlbGVjdG9yLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IEFQSV9LRVlTX01PREFMX0kxOE4gfSBmcm9tICcuLi9hcGkta2V5cy1tb2RhbC9hcGkta2V5cy1tb2RhbC5pMThuJztcblxuY29uc3QgREVGQVVMVF9OQU1FU1BBQ0UgPSAnU2V0dGluZ3MuQXBpS2V5c01vZGFsJztcblxuLyoqXG4gKiBgdmFsLWFwaS1rZXktY3JlYXRlLW1vZGFsYCDigJQgbW9kYWwgU8OTTE8gcGFyYSBjcmVhciB1bmEgQ2xpZW50IEFQSSBLZXkuXG4gKlxuICogRXh0cmHDrWRvIGRlIGB2YWwtYXBpLWtleXMtbW9kYWxgIGJham8gZWwgcHJvY2VzbyBkZSBBRFItMDIxOiBsYSBnZXN0acOzbiAobGlzdGEgK1xuICogcmV2b2tlKSB2aXZlIGFob3JhIGVuIGxhIHZpc3RhIGB2YWwtYXBpLWtleXMtdmlld2AsIHkgbGEgY3JlYWNpw7NuIGVuIGVzdGUgbW9kYWwsXG4gKiBxdWUgYGFwaS1rZXlzLXZpZXdgIGFicmUgdsOtYSBgTW9kYWxTZXJ2aWNlYC4gSGVhZGVyIGNhbsOzbmljbyAoUmVnbGEgIzUpOiB0w610dWxvIGVuXG4gKiBlbCBib2R5LCBib3TDs24gQ2VycmFyIGVuIGVsIHRvb2xiYXIuXG4gKlxuICogRmx1am86IHNlbGVjdG9yIGRlIHBlcm1pc29zIChmaWx0cmFkbyBwb3Igb3JnL2FwcCkgKyBmb3JtIChub21icmUgKyBleHBpcmFjacOzbikg4oaSXG4gKiBjcmVhIOKGkiBtdWVzdHJhIGVsIHNlY3JldG8gVU5BIHZleiBjb24gY29waWEuIEVtaXRlIGAoY3JlYXRlZClgIGFsIHRlcm1pbmFyIChwYXJhXG4gKiBxdWUgbGEgdmlzdGEgcmVmcmVzcXVlIGxhIGxpc3RhKSB5IGAoZGlzbWlzc2VkKWAgYWwgY2VycmFyLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtYXBpLWtleS1jcmVhdGUtbW9kYWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgSW9uSGVhZGVyLFxuICAgIElvblRvb2xiYXIsXG4gICAgSW9uQnV0dG9ucyxcbiAgICBJb25CdXR0b24sXG4gICAgSW9uQ29udGVudCxcbiAgICBGb3JtQ29tcG9uZW50LFxuICAgIERpc3BsYXlDb21wb25lbnQsXG4gICAgVGl0bGVDb21wb25lbnQsXG4gICAgUGVybWlzc2lvblNlbGVjdG9yQ29tcG9uZW50LFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxpb24taGVhZGVyPlxuICAgICAgPGlvbi10b29sYmFyPlxuICAgICAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cImVuZFwiPlxuICAgICAgICAgIDxpb24tYnV0dG9uIGZpbGw9XCJjbGVhclwiIGNvbG9yPVwiZGFya1wiIHNoYXBlPVwicm91bmRcIiAoY2xpY2spPVwiZGlzbWlzcygpXCI+XG4gICAgICAgICAgICA8c3Ryb25nPnt7IHQoJ2Nsb3NlJykgfX08L3N0cm9uZz5cbiAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgIDwvaW9uLWJ1dHRvbnM+XG4gICAgICA8L2lvbi10b29sYmFyPlxuICAgIDwvaW9uLWhlYWRlcj5cblxuICAgIDxpb24tY29udGVudCBjbGFzcz1cImlvbi1wYWRkaW5nXCI+XG4gICAgICBAaWYgKHNlY3JldCgpOyBhcyBzKSB7XG4gICAgICAgIDx2YWwtZGlzcGxheSBbcHJvcHNdPVwieyBjb250ZW50OiB0KCdzZWNyZXRUaXRsZScpLCBzaXplOiAnc21hbGwnLCBjb2xvcjogJ2RhcmsnIH1cIiAvPlxuICAgICAgICA8cCBjbGFzcz1cImFwaWtleS1zZWNyZXRfX3dhcm5cIj57eyB0KCdzZWNyZXRXYXJuaW5nJykgfX08L3A+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhcGlrZXktc2VjcmV0X19ib3hcIj5cbiAgICAgICAgICA8Y29kZT57eyBzLnNlY3JldCB9fTwvY29kZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhcGlrZXktYWN0aW9uc1wiPlxuICAgICAgICAgIDxpb24tYnV0dG9uIGV4cGFuZD1cImJsb2NrXCIgY29sb3I9XCJkYXJrXCIgc2hhcGU9XCJyb3VuZFwiIChjbGljayk9XCJjb3B5KHMuc2VjcmV0KVwiPlxuICAgICAgICAgICAge3sgY29waWVkKCkgPyB0KCdjb3BpZWQnKSA6IHQoJ2NvcHknKSB9fVxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICA8aW9uLWJ1dHRvbiBleHBhbmQ9XCJibG9ja1wiIGZpbGw9XCJvdXRsaW5lXCIgY29sb3I9XCJkYXJrXCIgc2hhcGU9XCJyb3VuZFwiIChjbGljayk9XCJmaW5pc2hTZWNyZXQoKVwiPlxuICAgICAgICAgICAge3sgdCgnZG9uZScpIH19XG4gICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8dmFsLWRpc3BsYXkgW3Byb3BzXT1cInsgY29udGVudDogdCgnbmV3S2V5JyksIHNpemU6ICdzbWFsbCcsIGNvbG9yOiAnZGFyaycgfVwiIC8+XG4gICAgICAgIDx2YWwtdGl0bGUgW3Byb3BzXT1cInsgY29udGVudDogdCgnaGludCcpLCBzaXplOiAnbGFyZ2UnLCBjb2xvcjogJycsIGJvbGQ6IGZhbHNlIH1cIiAvPlxuXG4gICAgICAgIDx2YWwtcGVybWlzc2lvbi1zZWxlY3RvclxuICAgICAgICAgIFtoZWFkZXJdPVwidCgncGVybWlzc2lvbnNMYWJlbCcpXCJcbiAgICAgICAgICBbcGVybWlzc2lvbnNdPVwiY2F0YWxvZ1Blcm1pc3Npb25zKClcIlxuICAgICAgICAgIFthY3Rpb25MYWJlbHNdPVwiYWN0aW9uTGFiZWxzKClcIlxuICAgICAgICAgIFtzZWxlY3RlZF09XCJzZWxlY3RlZFBlcm1zKClcIlxuICAgICAgICAgIChzZWxlY3RlZENoYW5nZSk9XCJzZWxlY3RlZFBlcm1zLnNldCgkZXZlbnQpXCJcbiAgICAgICAgLz5cbiAgICAgICAgPHZhbC1mb3JtIFtwcm9wc109XCJjcmVhdGVGb3JtKClcIiAob25TdWJtaXQpPVwib25DcmVhdGVTdWJtaXQoJGV2ZW50KVwiIC8+XG5cbiAgICAgICAgQGlmIChlcnJvck1zZygpKSB7XG4gICAgICAgICAgPHAgY2xhc3M9XCJhcGlrZXktZXJyb3JcIj57eyBlcnJvck1zZygpIH19PC9wPlxuICAgICAgICB9XG4gICAgICB9XG4gICAgPC9pb24tY29udGVudD5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgaW9uLWNvbnRlbnQge1xuICAgICAgICAtLXBhZGRpbmctYm90dG9tOiBjYWxjKDk2cHggKyBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSwgMHB4KSk7XG4gICAgICB9XG4gICAgICB2YWwtZGlzcGxheSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gICAgICB9XG4gICAgICB2YWwtdGl0bGUge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgICAgIH1cbiAgICAgIC5hcGlrZXktYWN0aW9ucyB7XG4gICAgICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgfVxuICAgICAgLmFwaWtleS1lcnJvciB7XG4gICAgICAgIG1hcmdpbjogOHB4IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFuZ2VyLCAjYzAzOTJiKTtcbiAgICAgIH1cbiAgICAgIC5hcGlrZXktc2VjcmV0X193YXJuIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci13YXJuaW5nLXNoYWRlLCAjYjg4NjAwKTtcbiAgICAgICAgbWFyZ2luOiAwIDAgMTJweCAwO1xuICAgICAgfVxuICAgICAgLmFwaWtleS1zZWNyZXRfX2JveCB7XG4gICAgICAgIHBhZGRpbmc6IDEycHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlO1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQXBpS2V5Q3JlYXRlTW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcml2YXRlIGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuICBwcml2YXRlIGFwaUtleXMgPSBpbmplY3QoQXBpS2V5U2VydmljZSk7XG4gIHByaXZhdGUgY2F0YWxvZyA9IGluamVjdChQZXJtaXNzaW9uQ2F0YWxvZ1NlcnZpY2UpO1xuICBwcml2YXRlIGF1dGggPSBpbmplY3QoQXV0aFNlcnZpY2UpO1xuXG4gIC8qKiBJbnllY3RhZG8gcG9yIGBNb2RhbFNlcnZpY2Uub3BlbmAg4oCUIHJlZmVyZW5jaWEgcGFyYSBjZXJyYXIgZGVzZGUgZGVudHJvLiAqL1xuICBASW5wdXQoKSBfbW9kYWxSZWY/OiB7IGRpc21pc3M6IChkYXRhPzogdW5rbm93biwgcm9sZT86IHN0cmluZykgPT4gdm9pZCB9O1xuXG4gIC8qKiBOYW1lc3BhY2UgaTE4biAoY29tcGFydGUgZWwgZGUgYHZhbC1hcGkta2V5cy1tb2RhbGApLiAqL1xuICBASW5wdXQoKSBpMThuTmFtZXNwYWNlID0gREVGQVVMVF9OQU1FU1BBQ0U7XG5cbiAgLyoqIENhbGxiYWNrIHRyYXMgY3JlYXIgdW5hIGtleSAocGFzYWRvIHBvciBgY29tcG9uZW50UHJvcHNgIOKAlCByZWZyZXNjYSBsYSBsaXN0YSkuICovXG4gIEBJbnB1dCgpIG9uQ3JlYXRlZD86ICgpID0+IHZvaWQ7XG5cbiAgcmVhZG9ubHkgY2F0YWxvZ1Blcm1pc3Npb25zID0gc2lnbmFsPFBlcm1pc3Npb25SZXNvdXJjZVtdPihbXSk7XG4gIHJlYWRvbmx5IGFjdGlvbkxhYmVscyA9IHNpZ25hbDxSZWNvcmQ8c3RyaW5nLCBMb2NhbGl6ZWRMYWJlbD4+KHt9KTtcbiAgcmVhZG9ubHkgc2VsZWN0ZWRQZXJtcyA9IHNpZ25hbDxzdHJpbmdbXT4oW10pO1xuICByZWFkb25seSBzdWJtaXR0aW5nID0gc2lnbmFsKGZhbHNlKTtcbiAgcmVhZG9ubHkgZXJyb3JNc2cgPSBzaWduYWwoJycpO1xuICByZWFkb25seSBzZWNyZXQgPSBzaWduYWw8Q2xpZW50QXBpS2V5V2l0aFNlY3JldCB8IG51bGw+KG51bGwpO1xuICByZWFkb25seSBjb3BpZWQgPSBzaWduYWwoZmFsc2UpO1xuXG4gIC8qKiBFbWl0ZSBjdWFuZG8gc2UgY3Jlw7MgdW5hIGtleSAoYWRlbcOhcyBkZWwgY2FsbGJhY2sgYG9uQ3JlYXRlZGApLiAqL1xuICBAT3V0cHV0KCkgY3JlYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICByZWFkb25seSBjcmVhdGVGb3JtID0gY29tcHV0ZWQ8Rm9ybU1ldGFkYXRhPigoKSA9PiB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICBjb25zdCB3b3JraW5nID0gdGhpcy5zdWJtaXR0aW5nKCk7XG5cbiAgICBjb25zdCBuYW1lRmllbGQ6IElucHV0TWV0YWRhdGEgPSB7XG4gICAgICB0b2tlbjogJ2FwaWtleS1uYW1lJyxcbiAgICAgIG5hbWU6ICduYW1lJyxcbiAgICAgIGxhYmVsOiB0aGlzLnQoJ25hbWVMYWJlbCcpLFxuICAgICAgaGludDogJycsXG4gICAgICBwbGFjZWhvbGRlcjogdGhpcy50KCduYW1lUGxhY2Vob2xkZXInKSxcbiAgICAgIHR5cGU6IElucHV0VHlwZS5URVhULFxuICAgICAgb3JkZXI6IDEsXG4gICAgICB2YWxpZGF0b3JzOiBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTIwKV0sXG4gICAgICBlcnJvcnM6IHsgcmVxdWlyZWQ6IHRoaXMudCgnbm9OYW1lJykgfSxcbiAgICAgIHZhbHVlOiAnJyxcbiAgICAgIHN0YXRlOiBDb21wb25lbnRTdGF0ZXMuRU5BQkxFRCxcbiAgICB9IGFzIElucHV0TWV0YWRhdGE7XG5cbiAgICBjb25zdCBleHBpcmVzRmllbGQ6IElucHV0TWV0YWRhdGEgPSB7XG4gICAgICB0b2tlbjogJ2FwaWtleS1leHBpcmVzJyxcbiAgICAgIG5hbWU6ICdleHBpcmVzSW5EYXlzJyxcbiAgICAgIGxhYmVsOiB0aGlzLnQoJ2V4cGlyZXNMYWJlbCcpLFxuICAgICAgaGludDogJycsXG4gICAgICBwbGFjZWhvbGRlcjogJycsXG4gICAgICB0eXBlOiBJbnB1dFR5cGUuTlVNQkVSLFxuICAgICAgb3JkZXI6IDMsXG4gICAgICB2YWxpZGF0b3JzOiBbVmFsaWRhdG9ycy5taW4oMSldLFxuICAgICAgZXJyb3JzOiB7fSxcbiAgICAgIHZhbHVlOiAnJyxcbiAgICAgIHN0YXRlOiBDb21wb25lbnRTdGF0ZXMuRU5BQkxFRCxcbiAgICB9IGFzIElucHV0TWV0YWRhdGE7XG5cbiAgICBjb25zdCBzdWJtaXRCdXR0b246IEJ1dHRvbk1ldGFkYXRhID0ge1xuICAgICAgdG9rZW46ICdhcGlrZXktY3JlYXRlLXN1Ym1pdCcsXG4gICAgICB0ZXh0OiB0aGlzLnQoJ2NyZWF0ZScpLFxuICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgIHR5cGU6ICdzdWJtaXQnLFxuICAgICAgZmlsbDogJ3NvbGlkJyxcbiAgICAgIHNpemU6ICdkZWZhdWx0JyxcbiAgICAgIHNoYXBlOiAncm91bmQnLFxuICAgICAgZXhwYW5kOiAnYmxvY2snLFxuICAgICAgc3RhdGU6IHdvcmtpbmcgPyBDb21wb25lbnRTdGF0ZXMuV09SS0lORyA6IENvbXBvbmVudFN0YXRlcy5FTkFCTEVELFxuICAgIH0gYXMgQnV0dG9uTWV0YWRhdGE7XG5cbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogJycsXG4gICAgICBzdGF0ZTogd29ya2luZyA/IENvbXBvbmVudFN0YXRlcy5XT1JLSU5HIDogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gICAgICBzZWN0aW9uczogW3sgbmFtZTogJycsIG9yZGVyOiAxLCBmaWVsZHM6IFtuYW1lRmllbGQsIGV4cGlyZXNGaWVsZF0gfV0sXG4gICAgICBhY3Rpb25zOiBzdWJtaXRCdXR0b24sXG4gICAgfTtcbiAgfSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5pMThuLnJlZ2lzdGVyRGVmYXVsdHMoREVGQVVMVF9OQU1FU1BBQ0UsIEFQSV9LRVlTX01PREFMX0kxOE4pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pMThuLnJlZ2lzdGVyRGVmYXVsdHModGhpcy5pMThuTmFtZXNwYWNlLCBBUElfS0VZU19NT0RBTF9JMThOKTtcbiAgICB0aGlzLmxvYWRDYXRhbG9nKCk7XG4gIH1cblxuICAvKipcbiAgICogQ2FyZ2EgZWwgY2F0w6Fsb2dvIHkgbG8gZmlsdHJhIGEgbG8gYXNpZ25hYmxlIGEgdW5hIEFQSSBLZXkgZGUgbGEgb3JnOiBkZXNjYXJ0YVxuICAgKiBgaW50ZXJuYWxgIChlbCBiYWNrZW5kIHlhIGxvcyBvbWl0ZSBwYXJhIG5vLXN0YWZmKSB5IGxvcyBwZXJtaXNvcyBkZSBPVFJBUyBhcHBzLlxuICAgKi9cbiAgcHJpdmF0ZSBsb2FkQ2F0YWxvZygpOiB2b2lkIHtcbiAgICBjb25zdCBvcmdJZCA9IHRoaXMuYWN0aXZlT3JnSWQoKTtcbiAgICBpZiAoIW9yZ0lkKSByZXR1cm47XG4gICAgdGhpcy5jYXRhbG9nLmdldENhdGFsb2cob3JnSWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiByZXMgPT4ge1xuICAgICAgICBjb25zdCBhcHBJZCA9IHJlcy5hcHBJZDtcbiAgICAgICAgY29uc3QgZmlsdGVyZWQgPSAocmVzLnBlcm1pc3Npb25zID8/IFtdKS5maWx0ZXIoXG4gICAgICAgICAgcCA9PiBwLnNjb3BlICE9PSAnaW50ZXJuYWwnICYmIChwLnNjb3BlICE9PSAnYXBwJyB8fCBwLmFwcElkID09PSBhcHBJZClcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5jYXRhbG9nUGVybWlzc2lvbnMuc2V0KGZpbHRlcmVkKTtcbiAgICAgICAgdGhpcy5hY3Rpb25MYWJlbHMuc2V0KHJlcy5hY3Rpb25MYWJlbHMgPz8ge30pO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoKSA9PiB7fSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYWN0aXZlT3JnSWQoKTogc3RyaW5nIHtcbiAgICBjb25zdCB1ID0gdGhpcy5hdXRoLnVzZXIoKSBhcyB7IGFjdGl2ZU9yZ0lkPzogc3RyaW5nOyBhY3RpdmVPcmc/OiBzdHJpbmcgfSB8IG51bGw7XG4gICAgcmV0dXJuIHU/LmFjdGl2ZU9yZ0lkID8/IHU/LmFjdGl2ZU9yZyA/PyAnJztcbiAgfVxuXG4gIG9uQ3JlYXRlU3VibWl0KGV2ZW50OiBGb3JtU3VibWl0KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3VibWl0dGluZygpKSByZXR1cm47XG4gICAgdGhpcy5lcnJvck1zZy5zZXQoJycpO1xuXG4gICAgY29uc3QgbmFtZSA9IFN0cmluZyhldmVudC5maWVsZHNbJ25hbWUnXSA/PyAnJykudHJpbSgpO1xuICAgIGNvbnN0IHBlcm1pc3Npb25zID0gdGhpcy5zZWxlY3RlZFBlcm1zKCk7XG4gICAgY29uc3QgZXhwaXJlc1JhdyA9IE51bWJlcihldmVudC5maWVsZHNbJ2V4cGlyZXNJbkRheXMnXSk7XG5cbiAgICBpZiAoIW5hbWUpIHtcbiAgICAgIHRoaXMuZXJyb3JNc2cuc2V0KHRoaXMudCgnbm9OYW1lJykpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXBlcm1pc3Npb25zLmxlbmd0aCkge1xuICAgICAgdGhpcy5lcnJvck1zZy5zZXQodGhpcy50KCdub1Blcm1zJykpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3VibWl0dGluZy5zZXQodHJ1ZSk7XG4gICAgdGhpcy5hcGlLZXlzXG4gICAgICAuY3JlYXRlKHtcbiAgICAgICAgbmFtZSxcbiAgICAgICAgcGVybWlzc2lvbnMsXG4gICAgICAgIGV4cGlyZXNJbkRheXM6IE51bWJlci5pc0Zpbml0ZShleHBpcmVzUmF3KSAmJiBleHBpcmVzUmF3ID4gMCA/IGV4cGlyZXNSYXcgOiB1bmRlZmluZWQsXG4gICAgICB9KVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IHJlcyA9PiB7XG4gICAgICAgICAgdGhpcy5zdWJtaXR0aW5nLnNldChmYWxzZSk7XG4gICAgICAgICAgdGhpcy5zZWNyZXQuc2V0KHJlcy5rZXkpO1xuICAgICAgICAgIHRoaXMub25DcmVhdGVkPy4oKTtcbiAgICAgICAgICB0aGlzLmNyZWF0ZWQuZW1pdCgpO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogZXJyID0+IHtcbiAgICAgICAgICB0aGlzLnN1Ym1pdHRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgICB0aGlzLmVycm9yTXNnLnNldChlcnI/LmVycm9yPy5tZXNzYWdlID8/IHRoaXMudCgnZ2VuZXJpY0Vycm9yJykpO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gIH1cblxuICBhc3luYyBjb3B5KHNlY3JldDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHNlY3JldCk7XG4gICAgICB0aGlzLmNvcGllZC5zZXQodHJ1ZSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBjbGlwYm9hcmQgbm8gZGlzcG9uaWJsZSDigJQgZWwgdXNlciBwdWVkZSBzZWxlY2Npb25hciBlbCB0ZXh0byBtYW51YWxtZW50ZVxuICAgIH1cbiAgfVxuXG4gIGZpbmlzaFNlY3JldCgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc21pc3MoKTtcbiAgfVxuXG4gIGRpc21pc3MoKTogdm9pZCB7XG4gICAgdGhpcy5fbW9kYWxSZWY/LmRpc21pc3MobnVsbCwgJ2NhbmNlbCcpO1xuICB9XG5cbiAgdChrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KGtleSwgdGhpcy5pMThuTmFtZXNwYWNlKTtcbiAgfVxufVxuIl19
|
|
@@ -94,14 +94,10 @@ export class ApiKeysModalComponent {
|
|
|
94
94
|
actions: submitButton,
|
|
95
95
|
};
|
|
96
96
|
});
|
|
97
|
-
|
|
98
|
-
this.i18n.registerContent(DEFAULT_NAMESPACE, API_KEYS_MODAL_I18N);
|
|
99
|
-
}
|
|
97
|
+
this.i18n.registerDefaults(DEFAULT_NAMESPACE, API_KEYS_MODAL_I18N);
|
|
100
98
|
}
|
|
101
99
|
ngOnInit() {
|
|
102
|
-
|
|
103
|
-
this.i18n.registerContent(this.i18nNamespace, API_KEYS_MODAL_I18N);
|
|
104
|
-
}
|
|
100
|
+
this.i18n.registerDefaults(this.i18nNamespace, API_KEYS_MODAL_I18N);
|
|
105
101
|
this.refresh();
|
|
106
102
|
this.loadCatalog();
|
|
107
103
|
}
|
|
@@ -405,4 +401,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
405
401
|
}], i18nNamespace: [{
|
|
406
402
|
type: Input
|
|
407
403
|
}] } });
|
|
408
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWtleXMtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9hcGkta2V5cy1tb2RhbC9hcGkta2V5cy1tb2RhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRWpILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBa0IsZUFBZSxFQUEyQyxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFbEgsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUUzRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDbEUsT0FBTyxFQUVMLHdCQUF3QixHQUV6QixNQUFNLGtEQUFrRCxDQUFDO0FBQzFELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1FQUFtRSxDQUFDO0FBRWhILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixD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bUZBQ1YsVUFBVSw4RUFDVixTQUFTLG9QQUNULFVBQVUsd0tBQ1YsVUFBVSx5R0FDVixhQUFhLDhIQUNiLGdCQUFnQiwyRUFDaEIsYUFBYSx3RUFDYixjQUFjLHlFQUNkLDJCQUEyQjs7NEZBMEtsQixxQkFBcUI7a0JBeExqQyxTQUFTOytCQUNFLG9CQUFvQixjQUNsQixJQUFJLFdBQ1A7d0JBQ1AsU0FBUzt3QkFDVCxVQUFVO3dCQUNWLFVBQVU7d0JBQ1YsU0FBUzt3QkFDVCxVQUFVO3dCQUNWLFVBQVU7d0JBQ1YsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCwyQkFBMkI7cUJBQzVCLFlBQ1M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVGVDt3REF3RlEsU0FBUztzQkFBakIsS0FBSztnQkFHRyxhQUFhO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0LCBJbnB1dCwgT25Jbml0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJb25CdXR0b24sIElvbkJ1dHRvbnMsIElvbkNvbnRlbnQsIElvbkhlYWRlciwgSW9uU3Bpbm5lciwgSW9uVG9vbGJhciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuXG5pbXBvcnQgeyBGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vZm9ybS9mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEaXNwbGF5Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvZGlzcGxheS9kaXNwbGF5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdGV4dC90ZXh0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaXRsZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3RpdGxlL3RpdGxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCdXR0b25NZXRhZGF0YSwgQ29tcG9uZW50U3RhdGVzLCBGb3JtTWV0YWRhdGEsIEZvcm1TdWJtaXQsIElucHV0TWV0YWRhdGEsIElucHV0VHlwZSB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IEFwaUtleVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hcGlrZXlzL2FwaS1rZXlzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2xpZW50QXBpS2V5LCBDbGllbnRBcGlLZXlXaXRoU2VjcmV0IH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXBpa2V5cy90eXBlcyc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2F1dGgvYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIExvY2FsaXplZExhYmVsLFxuICBQZXJtaXNzaW9uQ2F0YWxvZ1NlcnZpY2UsXG4gIFBlcm1pc3Npb25SZXNvdXJjZSxcbn0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvb3JnL3Blcm1pc3Npb24tY2F0YWxvZy5zZXJ2aWNlJztcbmltcG9ydCB7IFBlcm1pc3Npb25TZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9wZXJtaXNzaW9uLXNlbGVjdG9yL3Blcm1pc3Npb24tc2VsZWN0b3IuY29tcG9uZW50JztcblxuaW1wb3J0IHsgQVBJX0tFWVNfTU9EQUxfSTE4TiB9IGZyb20gJy4vYXBpLWtleXMtbW9kYWwuaTE4bic7XG5cbmNvbnN0IERFRkFVTFRfTkFNRVNQQUNFID0gJ1NldHRpbmdzLkFwaUtleXNNb2RhbCc7XG5cbi8qKlxuICogYHZhbC1hcGkta2V5cy1tb2RhbGAg4oCUIGdlc3Rpw7NuIGRlIENsaWVudCBBUEkgS2V5cyBvcmctc2NvcGVhZGFzIChBRFItMDIzIGZhc2UgNikuXG4gKlxuICogTGlzdGEgbGFzIGtleXMgZGUgbGEgb3JnLCBwZXJtaXRlIGNyZWFyIChtb3N0cmFuZG8gZWwgc2VjcmV0byBVTkEgdmV6IGNvbiBjb3BpYSlcbiAqIHkgcmV2b2Nhci4gUGVuc2FkbyBwYXJhIGhhYmlsaXRhciBpbnRlZ3JhY2lvbmVzIE0yTSBkZWwgaW1wb3J0IGRlIG1pZW1icm9zLCBwZXJvXG4gKiBzaXJ2ZSBhIGN1YWxxdWllciBwZXJtaXNvIGRlbCBjYXTDoWxvZ28uIEhlYWRlciBjYW7Ds25pY28gKFJlZ2xhICM1KS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWFwaS1rZXlzLW1vZGFsJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIElvbkhlYWRlcixcbiAgICBJb25Ub29sYmFyLFxuICAgIElvbkJ1dHRvbnMsXG4gICAgSW9uQnV0dG9uLFxuICAgIElvbkNvbnRlbnQsXG4gICAgSW9uU3Bpbm5lcixcbiAgICBGb3JtQ29tcG9uZW50LFxuICAgIERpc3BsYXlDb21wb25lbnQsXG4gICAgVGV4dENvbXBvbmVudCxcbiAgICBUaXRsZUNvbXBvbmVudCxcbiAgICBQZXJtaXNzaW9uU2VsZWN0b3JDb21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGlvbi1oZWFkZXI+XG4gICAgICA8aW9uLXRvb2xiYXI+XG4gICAgICAgIDxpb24tYnV0dG9ucyBzbG90PVwiZW5kXCI+XG4gICAgICAgICAgPGlvbi1idXR0b24gZmlsbD1cImNsZWFyXCIgY29sb3I9XCJkYXJrXCIgc2hhcGU9XCJyb3VuZFwiIChjbGljayk9XCJkaXNtaXNzKClcIj5cbiAgICAgICAgICAgIDxzdHJvbmc+e3sgdCgnY2xvc2UnKSB9fTwvc3Ryb25nPlxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPC9pb24tYnV0dG9ucz5cbiAgICAgIDwvaW9uLXRvb2xiYXI+XG4gICAgPC9pb24taGVhZGVyPlxuXG4gICAgPGlvbi1jb250ZW50IGNsYXNzPVwiaW9uLXBhZGRpbmdcIj5cbiAgICAgIDx2YWwtZGlzcGxheSBbcHJvcHNdPVwieyBjb250ZW50OiB0KCd0aXRsZScpLCBzaXplOiAnc21hbGwnLCBjb2xvcjogJ2RhcmsnIH1cIiAvPlxuICAgICAgPHZhbC10aXRsZSBbcHJvcHNdPVwieyBjb250ZW50OiB0KCdoaW50JyksIHNpemU6ICdsYXJnZScsIGNvbG9yOiAnJywgYm9sZDogZmFsc2UgfVwiIC8+XG5cbiAgICAgIEBpZiAoc2VjcmV0KCk7IGFzIHMpIHtcbiAgICAgICAgPCEtLSBTZWNyZXRvIHJlY2nDqW4gY3JlYWRvOiBtb3N0cmFyIFVOQSB2ZXogLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhcGlrZXktc2VjcmV0XCI+XG4gICAgICAgICAgPHZhbC10aXRsZSBbcHJvcHNdPVwieyBjb250ZW50OiB0KCdzZWNyZXRUaXRsZScpLCBzaXplOiAnbGFyZ2UnLCBjb2xvcjogJycsIGJvbGQ6IHRydWUgfVwiIC8+XG4gICAgICAgICAgPHAgY2xhc3M9XCJhcGlrZXktc2VjcmV0X193YXJuXCI+e3sgdCgnc2VjcmV0V2FybmluZycpIH19PC9wPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcGlrZXktc2VjcmV0X19ib3hcIj5cbiAgICAgICAgICAgIDxjb2RlPnt7IHMuc2VjcmV0IH19PC9jb2RlPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcGlrZXktYWN0aW9uc1wiPlxuICAgICAgICAgICAgPGlvbi1idXR0b24gZXhwYW5kPVwiYmxvY2tcIiBjb2xvcj1cImRhcmtcIiBzaGFwZT1cInJvdW5kXCIgKGNsaWNrKT1cImNvcHkocy5zZWNyZXQpXCI+XG4gICAgICAgICAgICAgIHt7IGNvcGllZCgpID8gdCgnY29waWVkJykgOiB0KCdjb3B5JykgfX1cbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICAgIDxpb24tYnV0dG9uIGV4cGFuZD1cImJsb2NrXCIgZmlsbD1cIm91dGxpbmVcIiBjb2xvcj1cImRhcmtcIiBzaGFwZT1cInJvdW5kXCIgKGNsaWNrKT1cImZpbmlzaFNlY3JldCgpXCI+XG4gICAgICAgICAgICAgIHt7IHQoJ2RvbmUnKSB9fVxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICBAaWYgKGxvYWRpbmcoKSkge1xuICAgICAgICAgIDxpb24tc3Bpbm5lciBuYW1lPVwiZG90c1wiIC8+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDwhLS0gTGlzdGEgLS0+XG4gICAgICAgICAgQGlmIChrZXlzKCkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICA8dmFsLXRleHQgW3Byb3BzXT1cInsgY29udGVudDogdCgnZW1wdHknKSwgc2l6ZTogJ21lZGl1bScsIGNvbG9yOiAnbWVkaXVtJywgYm9sZDogZmFsc2UgfVwiIC8+XG4gICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXBpa2V5LWxpc3RcIj5cbiAgICAgICAgICAgICAgQGZvciAoayBvZiBrZXlzKCk7IHRyYWNrIGsua2V5SWQpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXBpa2V5LXJvd1wiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFwaWtleS1yb3dfX21haW5cIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhcGlrZXktcm93X19uYW1lXCI+e3sgay5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFwaWtleS1yb3dfX21ldGFcIj5cbiAgICAgICAgICAgICAgICAgICAgICB7eyBrLnBlcm1pc3Npb25zLmxlbmd0aCB9fSB7eyB0KCdwZXJtc0NvdW50JykgfX0gwrcge3sgdCgnbGFzdFVzZWQnKSB9fTpcbiAgICAgICAgICAgICAgICAgICAgICB7eyBrLmxhc3RVc2VkQXQgfHwgdCgnbmV2ZXInKSB9fVxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxpb24tYnV0dG9uIGZpbGw9XCJjbGVhclwiIGNvbG9yPVwiZGFuZ2VyXCIgc2l6ZT1cInNtYWxsXCIgc2hhcGU9XCJyb3VuZFwiIChjbGljayk9XCJyZXZva2UoaylcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgdCgncmV2b2tlJykgfX1cbiAgICAgICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGlmIChlcnJvck1zZygpKSB7XG4gICAgICAgICAgICA8cCBjbGFzcz1cImFwaWtleS1lcnJvclwiPnt7IGVycm9yTXNnKCkgfX08L3A+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgPCEtLSBDcmVhciDigJQgdmFsLWZvcm0gKG5vbWJyZSArIGV4cGlyYWNpw7NuKSArIHNlbGVjdG9yIGRlIHBlcm1pc29zLiAtLT5cbiAgICAgICAgICBAaWYgKHNob3dDcmVhdGUoKSkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFwaWtleS1jcmVhdGVcIj5cbiAgICAgICAgICAgICAgPHZhbC1wZXJtaXNzaW9uLXNlbGVjdG9yXG4gICAgICAgICAgICAgICAgW2hlYWRlcl09XCJ0KCdwZXJtaXNzaW9uc0xhYmVsJylcIlxuICAgICAgICAgICAgICAgIFtwZXJtaXNzaW9uc109XCJjYXRhbG9nUGVybWlzc2lvbnMoKVwiXG4gICAgICAgICAgICAgICAgW2FjdGlvbkxhYmVsc109XCJhY3Rpb25MYWJlbHMoKVwiXG4gICAgICAgICAgICAgICAgW3NlbGVjdGVkXT1cInNlbGVjdGVkUGVybXMoKVwiXG4gICAgICAgICAgICAgICAgKHNlbGVjdGVkQ2hhbmdlKT1cInNlbGVjdGVkUGVybXMuc2V0KCRldmVudClcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8dmFsLWZvcm0gW3Byb3BzXT1cImNyZWF0ZUZvcm0oKVwiIChvblN1Ym1pdCk9XCJvbkNyZWF0ZVN1Ym1pdCgkZXZlbnQpXCIgLz5cbiAgICAgICAgICAgICAgPGlvbi1idXR0b24gZXhwYW5kPVwiYmxvY2tcIiBmaWxsPVwiY2xlYXJcIiBjb2xvcj1cIm1lZGl1bVwiIHNoYXBlPVwicm91bmRcIiAoY2xpY2spPVwic2hvd0NyZWF0ZS5zZXQoZmFsc2UpXCI+XG4gICAgICAgICAgICAgICAge3sgdCgnY2FuY2VsJykgfX1cbiAgICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXBpa2V5LWFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgPGlvbi1idXR0b24gZXhwYW5kPVwiYmxvY2tcIiBjb2xvcj1cInByaW1hcnlcIiBzaGFwZT1cInJvdW5kXCIgKGNsaWNrKT1cIm9wZW5DcmVhdGUoKVwiPlxuICAgICAgICAgICAgICAgIHt7IHQoJ25ld0tleScpIH19XG4gICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIDwvaW9uLWNvbnRlbnQ+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIC8qIFNoZWV0IG1vZGFsOiBwYWRkaW5nIGluZmVyaW9yIGdlbmVyb3NvIHBhcmEgcG9kZXIgc2Nyb2xsZWFyIGhhc3RhIGVsXG4gICAgICAgICDDumx0aW1vIGVsZW1lbnRvIChib3TDs24gY3JlYXIpIHNpbiBxdWUgcXVlZGUgYmFqbyBlbCBib3JkZS9pbmRpY2Fkb3IuICovXG4gICAgICBpb24tY29udGVudCB7XG4gICAgICAgIC0tcGFkZGluZy1ib3R0b206IDY0cHg7XG4gICAgICB9XG4gICAgICB2YWwtZGlzcGxheSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gICAgICB9XG4gICAgICB2YWwtdGl0bGUge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgICAgIH1cbiAgICAgIC5hcGlrZXktbGlzdCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgICAgfVxuICAgICAgLmFwaWtleS1yb3cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIHBhZGRpbmc6IDEycHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgICAgIGJvcmRlcjogMS41cHggc29saWQgdmFyKC0taW9uLWNvbG9yLWxpZ2h0KTtcbiAgICAgIH1cbiAgICAgIC5hcGlrZXktcm93X19tYWluIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIH1cbiAgICAgIC5hcGlrZXktcm93X19uYW1lIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrKTtcbiAgICAgIH1cbiAgICAgIC5hcGlrZXktcm93X19tZXRhIHtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLW1lZGl1bS1zaGFkZSwgIzZiNmU3Nik7XG4gICAgICB9XG4gICAgICAuYXBpa2V5LWNyZWF0ZSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICAgICAgcGFkZGluZzogNHB4IDAgMCAwO1xuICAgICAgfVxuICAgICAgLmFwaWtleS1wZXJtcyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogNnB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICB9XG4gICAgICAuYXBpa2V5LWFjdGlvbnMge1xuICAgICAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgIH1cbiAgICAgIC5hcGlrZXktZXJyb3Ige1xuICAgICAgICBtYXJnaW46IDhweCAwO1xuICAgICAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhbmdlciwgI2MwMzkyYik7XG4gICAgICB9XG4gICAgICAuYXBpa2V5LXNlY3JldF9fd2FybiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3Itd2FybmluZy1zaGFkZSwgI2I4ODYwMCk7XG4gICAgICAgIG1hcmdpbjogMCAwIDEycHggMDtcbiAgICAgIH1cbiAgICAgIC5hcGlrZXktc2VjcmV0X19ib3gge1xuICAgICAgICBwYWRkaW5nOiAxMnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1kYXJrKTtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFwaUtleXNNb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gIHByaXZhdGUgYXBpS2V5cyA9IGluamVjdChBcGlLZXlTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBjYXRhbG9nID0gaW5qZWN0KFBlcm1pc3Npb25DYXRhbG9nU2VydmljZSk7XG4gIHByaXZhdGUgYXV0aCA9IGluamVjdChBdXRoU2VydmljZSk7XG5cbiAgLyoqIElueWVjdGFkbyBwb3IgYE1vZGFsU2VydmljZS5vcGVuYC4gKi9cbiAgQElucHV0KCkgX21vZGFsUmVmPzogeyBkaXNtaXNzOiAoZGF0YT86IHVua25vd24sIHJvbGU/OiBzdHJpbmcpID0+IHZvaWQgfTtcblxuICAvKiogTmFtZXNwYWNlIGkxOG4uICovXG4gIEBJbnB1dCgpIGkxOG5OYW1lc3BhY2UgPSBERUZBVUxUX05BTUVTUEFDRTtcblxuICAvKiogUGVybWlzb3MgZGVsIGNhdMOhbG9nbyBZQSBmaWx0cmFkb3MgKHNpbiBpbnRlcm5hbCwgc2luIG90cmFzIGFwcHMpLiAqL1xuICByZWFkb25seSBjYXRhbG9nUGVybWlzc2lvbnMgPSBzaWduYWw8UGVybWlzc2lvblJlc291cmNlW10+KFtdKTtcbiAgLyoqIExhYmVscyBkZSBhY2Npw7NuIChlcy9lbikgZGVsIGJhY2tlbmQsIHBhcmEgZWwgc2VsZWN0b3IuICovXG4gIHJlYWRvbmx5IGFjdGlvbkxhYmVscyA9IHNpZ25hbDxSZWNvcmQ8c3RyaW5nLCBMb2NhbGl6ZWRMYWJlbD4+KHt9KTtcbiAgLyoqIFBlcm1pc29zIHNlbGVjY2lvbmFkb3MgcGFyYSBsYSBudWV2YSBrZXkgKGByZXNvdXJjZTphY3Rpb25gKS4gKi9cbiAgcmVhZG9ubHkgc2VsZWN0ZWRQZXJtcyA9IHNpZ25hbDxzdHJpbmdbXT4oW10pO1xuXG4gIHJlYWRvbmx5IGtleXMgPSBzaWduYWw8Q2xpZW50QXBpS2V5W10+KFtdKTtcbiAgcmVhZG9ubHkgbG9hZGluZyA9IHNpZ25hbCh0cnVlKTtcbiAgcmVhZG9ubHkgc2hvd0NyZWF0ZSA9IHNpZ25hbChmYWxzZSk7XG4gIHJlYWRvbmx5IHN1Ym1pdHRpbmcgPSBzaWduYWwoZmFsc2UpO1xuICByZWFkb25seSBlcnJvck1zZyA9IHNpZ25hbCgnJyk7XG4gIHJlYWRvbmx5IHNlY3JldCA9IHNpZ25hbDxDbGllbnRBcGlLZXlXaXRoU2VjcmV0IHwgbnVsbD4obnVsbCk7XG4gIHJlYWRvbmx5IGNvcGllZCA9IHNpZ25hbChmYWxzZSk7XG5cbiAgLyoqXG4gICAqIEZvcm1NZXRhZGF0YSBkZWwgZm9ybSBkZSBjcmVhciBrZXkgKHZhbC1mb3JtKS4gUmVhY3Rpdm8gYSBpZGlvbWEgKyBwZXJtaXNvc1xuICAgKiBkaXNwb25pYmxlcyArIGVzdGFkbyBzdWJtaXR0aW5nLiBSZWVtcGxhemEgbG9zIGlvbi1pbnB1dC9pb24tY2hlY2tib3ggY3J1ZG9zXG4gICAqIHBvciB2YWwtZm9ybSAoY29uc2lzdGVuY2lhIGNvbiBlbCByZXN0byBkZSBtb2RhbGVzIGRlbCBmYWN0b3J5KS5cbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZUZvcm0gPSBjb21wdXRlZDxGb3JtTWV0YWRhdGE+KCgpID0+IHtcbiAgICB0aGlzLmkxOG4ubGFuZygpO1xuICAgIGNvbnN0IHdvcmtpbmcgPSB0aGlzLnN1Ym1pdHRpbmcoKTtcblxuICAgIGNvbnN0IG5hbWVGaWVsZDogSW5wdXRNZXRhZGF0YSA9IHtcbiAgICAgIHRva2VuOiAnYXBpa2V5LW5hbWUnLFxuICAgICAgbmFtZTogJ25hbWUnLFxuICAgICAgbGFiZWw6IHRoaXMudCgnbmFtZUxhYmVsJyksXG4gICAgICBoaW50OiAnJyxcbiAgICAgIHBsYWNlaG9sZGVyOiB0aGlzLnQoJ25hbWVQbGFjZWhvbGRlcicpLFxuICAgICAgdHlwZTogSW5wdXRUeXBlLlRFWFQsXG4gICAgICBvcmRlcjogMSxcbiAgICAgIHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1heExlbmd0aCgxMjApXSxcbiAgICAgIGVycm9yczogeyByZXF1aXJlZDogdGhpcy50KCdub05hbWUnKSB9LFxuICAgICAgdmFsdWU6ICcnLFxuICAgICAgc3RhdGU6IENvbXBvbmVudFN0YXRlcy5FTkFCTEVELFxuICAgIH0gYXMgSW5wdXRNZXRhZGF0YTtcblxuICAgIGNvbnN0IGV4cGlyZXNGaWVsZDogSW5wdXRNZXRhZGF0YSA9IHtcbiAgICAgIHRva2VuOiAnYXBpa2V5LWV4cGlyZXMnLFxuICAgICAgbmFtZTogJ2V4cGlyZXNJbkRheXMnLFxuICAgICAgbGFiZWw6IHRoaXMudCgnZXhwaXJlc0xhYmVsJyksXG4gICAgICBoaW50OiAnJyxcbiAgICAgIHBsYWNlaG9sZGVyOiAnJyxcbiAgICAgIHR5cGU6IElucHV0VHlwZS5OVU1CRVIsXG4gICAgICBvcmRlcjogMyxcbiAgICAgIHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLm1pbigxKV0sXG4gICAgICBlcnJvcnM6IHt9LFxuICAgICAgdmFsdWU6ICcnLFxuICAgICAgc3RhdGU6IENvbXBvbmVudFN0YXRlcy5FTkFCTEVELFxuICAgIH0gYXMgSW5wdXRNZXRhZGF0YTtcblxuICAgIGNvbnN0IHN1Ym1pdEJ1dHRvbjogQnV0dG9uTWV0YWRhdGEgPSB7XG4gICAgICB0b2tlbjogJ2FwaWtleS1jcmVhdGUtc3VibWl0JyxcbiAgICAgIHRleHQ6IHRoaXMudCgnY3JlYXRlJyksXG4gICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgdHlwZTogJ3N1Ym1pdCcsXG4gICAgICBmaWxsOiAnc29saWQnLFxuICAgICAgc2l6ZTogJ2RlZmF1bHQnLFxuICAgICAgc2hhcGU6ICdyb3VuZCcsXG4gICAgICBleHBhbmQ6ICdibG9jaycsXG4gICAgICBzdGF0ZTogd29ya2luZyA/IENvbXBvbmVudFN0YXRlcy5XT1JLSU5HIDogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gICAgfSBhcyBCdXR0b25NZXRhZGF0YTtcblxuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiAnJyxcbiAgICAgIHN0YXRlOiB3b3JraW5nID8gQ29tcG9uZW50U3RhdGVzLldPUktJTkcgOiBDb21wb25lbnRTdGF0ZXMuRU5BQkxFRCxcbiAgICAgIHNlY3Rpb25zOiBbeyBuYW1lOiAnJywgb3JkZXI6IDEsIGZpZWxkczogW25hbWVGaWVsZCwgZXhwaXJlc0ZpZWxkXSB9XSxcbiAgICAgIGFjdGlvbnM6IHN1Ym1pdEJ1dHRvbixcbiAgICB9O1xuICB9KTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBpZiAoIXRoaXMuaTE4bi5oYXNOYW1lc3BhY2UoREVGQVVMVF9OQU1FU1BBQ0UpKSB7XG4gICAgICB0aGlzLmkxOG4ucmVnaXN0ZXJDb250ZW50KERFRkFVTFRfTkFNRVNQQUNFLCBBUElfS0VZU19NT0RBTF9JMThOKTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaTE4bi5oYXNOYW1lc3BhY2UodGhpcy5pMThuTmFtZXNwYWNlKSkge1xuICAgICAgdGhpcy5pMThuLnJlZ2lzdGVyQ29udGVudCh0aGlzLmkxOG5OYW1lc3BhY2UsIEFQSV9LRVlTX01PREFMX0kxOE4pO1xuICAgIH1cbiAgICB0aGlzLnJlZnJlc2goKTtcbiAgICB0aGlzLmxvYWRDYXRhbG9nKCk7XG4gIH1cblxuICAvKipcbiAgICogQ2FyZ2EgZWwgY2F0w6Fsb2dvIGRlIHBlcm1pc29zIHkgbG8gZmlsdHJhIGEgbG8gYXNpZ25hYmxlIGEgdW5hIEFQSSBLZXkgZGUgbGFcbiAgICogb3JnOiBkZXNjYXJ0YSBgc2NvcGU6aW50ZXJuYWxgIChlbCBiYWNrZW5kIHlhIGxvcyBvbWl0ZSBwYXJhIG5vLXN0YWZmKSB5IGxvc1xuICAgKiBwZXJtaXNvcyBkZSBPVFJBUyBhcHBzIChgYXBwSWQgIT09IGFwcElkIGRlbCBjYXTDoWxvZ29gKS4gUXVlZGFuIGxvcyBwZXJtaXNvcyBkZVxuICAgKiBvcmcgKHVzZXJzL3JvbGVzL3JiYWMpICsgbG9zIGRlIGxhIGFwcCBhY3R1YWwuXG4gICAqL1xuICBwcml2YXRlIGxvYWRDYXRhbG9nKCk6IHZvaWQge1xuICAgIGNvbnN0IG9yZ0lkID0gdGhpcy5hY3RpdmVPcmdJZCgpO1xuICAgIGlmICghb3JnSWQpIHJldHVybjtcbiAgICB0aGlzLmNhdGFsb2cuZ2V0Q2F0YWxvZyhvcmdJZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IHJlcyA9PiB7XG4gICAgICAgIGNvbnN0IGFwcElkID0gcmVzLmFwcElkO1xuICAgICAgICBjb25zdCBmaWx0ZXJlZCA9IChyZXMucGVybWlzc2lvbnMgPz8gW10pLmZpbHRlcihcbiAgICAgICAgICBwID0+IHAuc2NvcGUgIT09ICdpbnRlcm5hbCcgJiYgKHAuc2NvcGUgIT09ICdhcHAnIHx8IHAuYXBwSWQgPT09IGFwcElkKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLmNhdGFsb2dQZXJtaXNzaW9ucy5zZXQoZmlsdGVyZWQpO1xuICAgICAgICB0aGlzLmFjdGlvbkxhYmVscy5zZXQocmVzLmFjdGlvbkxhYmVscyA/PyB7fSk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgLy8gU2luIGNhdMOhbG9nbzogZWwgc2VsZWN0b3IgcXVlZGEgdmFjw61vIChlbCBmb3JtIHZhbGlkYSDiiaUxIHBlcm1pc28pLlxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYWN0aXZlT3JnSWQoKTogc3RyaW5nIHtcbiAgICBjb25zdCB1ID0gdGhpcy5hdXRoLnVzZXIoKSBhcyB7IGFjdGl2ZU9yZ0lkPzogc3RyaW5nOyBhY3RpdmVPcmc/OiBzdHJpbmcgfSB8IG51bGw7XG4gICAgcmV0dXJuIHU/LmFjdGl2ZU9yZ0lkID8/IHU/LmFjdGl2ZU9yZyA/PyAnJztcbiAgfVxuXG4gIHByaXZhdGUgcmVmcmVzaCgpOiB2b2lkIHtcbiAgICB0aGlzLmxvYWRpbmcuc2V0KHRydWUpO1xuICAgIHRoaXMuYXBpS2V5cy5saXN0KCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IGtleXMgPT4ge1xuICAgICAgICB0aGlzLmtleXMuc2V0KGtleXMpO1xuICAgICAgICB0aGlzLmxvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKCkgPT4gdGhpcy5sb2FkaW5nLnNldChmYWxzZSksXG4gICAgfSk7XG4gIH1cblxuICBvcGVuQ3JlYXRlKCk6IHZvaWQge1xuICAgIHRoaXMuZXJyb3JNc2cuc2V0KCcnKTtcbiAgICB0aGlzLnNlbGVjdGVkUGVybXMuc2V0KFtdKTtcbiAgICB0aGlzLnNob3dDcmVhdGUuc2V0KHRydWUpO1xuICB9XG5cbiAgb25DcmVhdGVTdWJtaXQoZXZlbnQ6IEZvcm1TdWJtaXQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdWJtaXR0aW5nKCkpIHJldHVybjtcbiAgICB0aGlzLmVycm9yTXNnLnNldCgnJyk7XG5cbiAgICBjb25zdCBuYW1lID0gU3RyaW5nKGV2ZW50LmZpZWxkc1snbmFtZSddID8/ICcnKS50cmltKCk7XG4gICAgY29uc3QgcGVybWlzc2lvbnMgPSB0aGlzLnNlbGVjdGVkUGVybXMoKTtcbiAgICBjb25zdCBleHBpcmVzUmF3ID0gTnVtYmVyKGV2ZW50LmZpZWxkc1snZXhwaXJlc0luRGF5cyddKTtcblxuICAgIGlmICghbmFtZSkge1xuICAgICAgdGhpcy5lcnJvck1zZy5zZXQodGhpcy50KCdub05hbWUnKSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghcGVybWlzc2lvbnMubGVuZ3RoKSB7XG4gICAgICB0aGlzLmVycm9yTXNnLnNldCh0aGlzLnQoJ25vUGVybXMnKSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdWJtaXR0aW5nLnNldCh0cnVlKTtcbiAgICB0aGlzLmFwaUtleXNcbiAgICAgIC5jcmVhdGUoe1xuICAgICAgICBuYW1lLFxuICAgICAgICBwZXJtaXNzaW9ucyxcbiAgICAgICAgZXhwaXJlc0luRGF5czogTnVtYmVyLmlzRmluaXRlKGV4cGlyZXNSYXcpICYmIGV4cGlyZXNSYXcgPiAwID8gZXhwaXJlc1JhdyA6IHVuZGVmaW5lZCxcbiAgICAgIH0pXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogcmVzID0+IHtcbiAgICAgICAgICB0aGlzLnN1Ym1pdHRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgICB0aGlzLnNob3dDcmVhdGUuc2V0KGZhbHNlKTtcbiAgICAgICAgICB0aGlzLnNlY3JldC5zZXQocmVzLmtleSk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgIHRoaXMuc3VibWl0dGluZy5zZXQoZmFsc2UpO1xuICAgICAgICAgIHRoaXMuZXJyb3JNc2cuc2V0KGVycj8uZXJyb3I/Lm1lc3NhZ2UgPz8gdGhpcy50KCdnZW5lcmljRXJyb3InKSk7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgfVxuXG4gIHJldm9rZShrZXk6IENsaWVudEFwaUtleSk6IHZvaWQge1xuICAgIGlmICghY29uZmlybSh0aGlzLnQoJ3Jldm9rZUNvbmZpcm0nKSkpIHJldHVybjtcbiAgICB0aGlzLmFwaUtleXMucmV2b2tlKGtleS5rZXlJZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6ICgpID0+IHRoaXMucmVmcmVzaCgpLFxuICAgICAgZXJyb3I6IGVyciA9PiB0aGlzLmVycm9yTXNnLnNldChlcnI/LmVycm9yPy5tZXNzYWdlID8/IHRoaXMudCgnZ2VuZXJpY0Vycm9yJykpLFxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgY29weShzZWNyZXQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChzZWNyZXQpO1xuICAgICAgdGhpcy5jb3BpZWQuc2V0KHRydWUpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gY2xpcGJvYXJkIG5vIGRpc3BvbmlibGUg4oCUIGVsIHVzZXIgcHVlZGUgc2VsZWNjaW9uYXIgZWwgdGV4dG8gbWFudWFsbWVudGVcbiAgICB9XG4gIH1cblxuICBmaW5pc2hTZWNyZXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZWNyZXQuc2V0KG51bGwpO1xuICAgIHRoaXMuY29waWVkLnNldChmYWxzZSk7XG4gICAgdGhpcy5yZWZyZXNoKCk7XG4gIH1cblxuICBkaXNtaXNzKCk6IHZvaWQge1xuICAgIHRoaXMuX21vZGFsUmVmPy5kaXNtaXNzKG51bGwsICdjYW5jZWwnKTtcbiAgfVxuXG4gIHQoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmkxOG4udChrZXksIHRoaXMuaTE4bk5hbWVzcGFjZSk7XG4gIH1cbn1cbiJdfQ==
|
|
404
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWtleXMtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9hcGkta2V5cy1tb2RhbC9hcGkta2V5cy1tb2RhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRWpILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBa0IsZUFBZSxFQUEyQyxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFbEgsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUUzRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDbEUsT0FBTyxFQUVMLHdCQUF3QixHQUV6QixNQUFNLGtEQUFrRCxDQUFDO0FBQzFELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1FQUFtRSxDQUFDO0FBRWhILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixD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UDt3QkFDUCxTQUFTO3dCQUNULFVBQVU7d0JBQ1YsVUFBVTt3QkFDVixTQUFTO3dCQUNULFVBQVU7d0JBQ1YsVUFBVTt3QkFDVixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsYUFBYTt3QkFDYixjQUFjO3dCQUNkLDJCQUEyQjtxQkFDNUIsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUZUO3dEQXdGUSxTQUFTO3NCQUFqQixLQUFLO2dCQUdHLGFBQWE7c0JBQXJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QsIElucHV0LCBPbkluaXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElvbkJ1dHRvbiwgSW9uQnV0dG9ucywgSW9uQ29udGVudCwgSW9uSGVhZGVyLCBJb25TcGlubmVyLCBJb25Ub29sYmFyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5cbmltcG9ydCB7IEZvcm1Db21wb25lbnQgfSBmcm9tICcuLi9mb3JtL2Zvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IERpc3BsYXlDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9kaXNwbGF5L2Rpc3BsYXkuY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy90ZXh0L3RleHQuY29tcG9uZW50JztcbmltcG9ydCB7IFRpdGxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdGl0bGUvdGl0bGUuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbk1ldGFkYXRhLCBDb21wb25lbnRTdGF0ZXMsIEZvcm1NZXRhZGF0YSwgRm9ybVN1Ym1pdCwgSW5wdXRNZXRhZGF0YSwgSW5wdXRUeXBlIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgQXBpS2V5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2FwaWtleXMvYXBpLWtleXMuc2VydmljZSc7XG5pbXBvcnQgeyBDbGllbnRBcGlLZXksIENsaWVudEFwaUtleVdpdGhTZWNyZXQgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hcGlrZXlzL3R5cGVzJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXV0aC9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgTG9jYWxpemVkTGFiZWwsXG4gIFBlcm1pc3Npb25DYXRhbG9nU2VydmljZSxcbiAgUGVybWlzc2lvblJlc291cmNlLFxufSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9vcmcvcGVybWlzc2lvbi1jYXRhbG9nLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGVybWlzc2lvblNlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3Blcm1pc3Npb24tc2VsZWN0b3IvcGVybWlzc2lvbi1zZWxlY3Rvci5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBBUElfS0VZU19NT0RBTF9JMThOIH0gZnJvbSAnLi9hcGkta2V5cy1tb2RhbC5pMThuJztcblxuY29uc3QgREVGQVVMVF9OQU1FU1BBQ0UgPSAnU2V0dGluZ3MuQXBpS2V5c01vZGFsJztcblxuLyoqXG4gKiBgdmFsLWFwaS1rZXlzLW1vZGFsYCDigJQgZ2VzdGnDs24gZGUgQ2xpZW50IEFQSSBLZXlzIG9yZy1zY29wZWFkYXMgKEFEUi0wMjMgZmFzZSA2KS5cbiAqXG4gKiBMaXN0YSBsYXMga2V5cyBkZSBsYSBvcmcsIHBlcm1pdGUgY3JlYXIgKG1vc3RyYW5kbyBlbCBzZWNyZXRvIFVOQSB2ZXogY29uIGNvcGlhKVxuICogeSByZXZvY2FyLiBQZW5zYWRvIHBhcmEgaGFiaWxpdGFyIGludGVncmFjaW9uZXMgTTJNIGRlbCBpbXBvcnQgZGUgbWllbWJyb3MsIHBlcm9cbiAqIHNpcnZlIGEgY3VhbHF1aWVyIHBlcm1pc28gZGVsIGNhdMOhbG9nby4gSGVhZGVyIGNhbsOzbmljbyAoUmVnbGEgIzUpLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtYXBpLWtleXMtbW9kYWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgSW9uSGVhZGVyLFxuICAgIElvblRvb2xiYXIsXG4gICAgSW9uQnV0dG9ucyxcbiAgICBJb25CdXR0b24sXG4gICAgSW9uQ29udGVudCxcbiAgICBJb25TcGlubmVyLFxuICAgIEZvcm1Db21wb25lbnQsXG4gICAgRGlzcGxheUNvbXBvbmVudCxcbiAgICBUZXh0Q29tcG9uZW50LFxuICAgIFRpdGxlQ29tcG9uZW50LFxuICAgIFBlcm1pc3Npb25TZWxlY3RvckNvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8aW9uLWhlYWRlcj5cbiAgICAgIDxpb24tdG9vbGJhcj5cbiAgICAgICAgPGlvbi1idXR0b25zIHNsb3Q9XCJlbmRcIj5cbiAgICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwiY2xlYXJcIiBjb2xvcj1cImRhcmtcIiBzaGFwZT1cInJvdW5kXCIgKGNsaWNrKT1cImRpc21pc3MoKVwiPlxuICAgICAgICAgICAgPHN0cm9uZz57eyB0KCdjbG9zZScpIH19PC9zdHJvbmc+XG4gICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICA8L2lvbi1idXR0b25zPlxuICAgICAgPC9pb24tdG9vbGJhcj5cbiAgICA8L2lvbi1oZWFkZXI+XG5cbiAgICA8aW9uLWNvbnRlbnQgY2xhc3M9XCJpb24tcGFkZGluZ1wiPlxuICAgICAgPHZhbC1kaXNwbGF5IFtwcm9wc109XCJ7IGNvbnRlbnQ6IHQoJ3RpdGxlJyksIHNpemU6ICdzbWFsbCcsIGNvbG9yOiAnZGFyaycgfVwiIC8+XG4gICAgICA8dmFsLXRpdGxlIFtwcm9wc109XCJ7IGNvbnRlbnQ6IHQoJ2hpbnQnKSwgc2l6ZTogJ2xhcmdlJywgY29sb3I6ICcnLCBib2xkOiBmYWxzZSB9XCIgLz5cblxuICAgICAgQGlmIChzZWNyZXQoKTsgYXMgcykge1xuICAgICAgICA8IS0tIFNlY3JldG8gcmVjacOpbiBjcmVhZG86IG1vc3RyYXIgVU5BIHZleiAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFwaWtleS1zZWNyZXRcIj5cbiAgICAgICAgICA8dmFsLXRpdGxlIFtwcm9wc109XCJ7IGNvbnRlbnQ6IHQoJ3NlY3JldFRpdGxlJyksIHNpemU6ICdsYXJnZScsIGNvbG9yOiAnJywgYm9sZDogdHJ1ZSB9XCIgLz5cbiAgICAgICAgICA8cCBjbGFzcz1cImFwaWtleS1zZWNyZXRfX3dhcm5cIj57eyB0KCdzZWNyZXRXYXJuaW5nJykgfX08L3A+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImFwaWtleS1zZWNyZXRfX2JveFwiPlxuICAgICAgICAgICAgPGNvZGU+e3sgcy5zZWNyZXQgfX08L2NvZGU+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImFwaWtleS1hY3Rpb25zXCI+XG4gICAgICAgICAgICA8aW9uLWJ1dHRvbiBleHBhbmQ9XCJibG9ja1wiIGNvbG9yPVwiZGFya1wiIHNoYXBlPVwicm91bmRcIiAoY2xpY2spPVwiY29weShzLnNlY3JldClcIj5cbiAgICAgICAgICAgICAge3sgY29waWVkKCkgPyB0KCdjb3BpZWQnKSA6IHQoJ2NvcHknKSB9fVxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgPGlvbi1idXR0b24gZXhwYW5kPVwiYmxvY2tcIiBmaWxsPVwib3V0bGluZVwiIGNvbG9yPVwiZGFya1wiIHNoYXBlPVwicm91bmRcIiAoY2xpY2spPVwiZmluaXNoU2VjcmV0KClcIj5cbiAgICAgICAgICAgICAge3sgdCgnZG9uZScpIH19XG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIEBpZiAobG9hZGluZygpKSB7XG4gICAgICAgICAgPGlvbi1zcGlubmVyIG5hbWU9XCJkb3RzXCIgLz5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPCEtLSBMaXN0YSAtLT5cbiAgICAgICAgICBAaWYgKGtleXMoKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIDx2YWwtdGV4dCBbcHJvcHNdPVwieyBjb250ZW50OiB0KCdlbXB0eScpLCBzaXplOiAnbWVkaXVtJywgY29sb3I6ICdtZWRpdW0nLCBib2xkOiBmYWxzZSB9XCIgLz5cbiAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcGlrZXktbGlzdFwiPlxuICAgICAgICAgICAgICBAZm9yIChrIG9mIGtleXMoKTsgdHJhY2sgay5rZXlJZCkge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcGlrZXktcm93XCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXBpa2V5LXJvd19fbWFpblwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFwaWtleS1yb3dfX25hbWVcIj57eyBrLm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXBpa2V5LXJvd19fbWV0YVwiPlxuICAgICAgICAgICAgICAgICAgICAgIHt7IGsucGVybWlzc2lvbnMubGVuZ3RoIH19IHt7IHQoJ3Blcm1zQ291bnQnKSB9fSDCtyB7eyB0KCdsYXN0VXNlZCcpIH19OlxuICAgICAgICAgICAgICAgICAgICAgIHt7IGsubGFzdFVzZWRBdCB8fCB0KCduZXZlcicpIH19XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGlvbi1idXR0b24gZmlsbD1cImNsZWFyXCIgY29sb3I9XCJkYW5nZXJcIiBzaXplPVwic21hbGxcIiBzaGFwZT1cInJvdW5kXCIgKGNsaWNrKT1cInJldm9rZShrKVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyB0KCdyZXZva2UnKSB9fVxuICAgICAgICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAaWYgKGVycm9yTXNnKCkpIHtcbiAgICAgICAgICAgIDxwIGNsYXNzPVwiYXBpa2V5LWVycm9yXCI+e3sgZXJyb3JNc2coKSB9fTwvcD5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICA8IS0tIENyZWFyIOKAlCB2YWwtZm9ybSAobm9tYnJlICsgZXhwaXJhY2nDs24pICsgc2VsZWN0b3IgZGUgcGVybWlzb3MuIC0tPlxuICAgICAgICAgIEBpZiAoc2hvd0NyZWF0ZSgpKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXBpa2V5LWNyZWF0ZVwiPlxuICAgICAgICAgICAgICA8dmFsLXBlcm1pc3Npb24tc2VsZWN0b3JcbiAgICAgICAgICAgICAgICBbaGVhZGVyXT1cInQoJ3Blcm1pc3Npb25zTGFiZWwnKVwiXG4gICAgICAgICAgICAgICAgW3Blcm1pc3Npb25zXT1cImNhdGFsb2dQZXJtaXNzaW9ucygpXCJcbiAgICAgICAgICAgICAgICBbYWN0aW9uTGFiZWxzXT1cImFjdGlvbkxhYmVscygpXCJcbiAgICAgICAgICAgICAgICBbc2VsZWN0ZWRdPVwic2VsZWN0ZWRQZXJtcygpXCJcbiAgICAgICAgICAgICAgICAoc2VsZWN0ZWRDaGFuZ2UpPVwic2VsZWN0ZWRQZXJtcy5zZXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDx2YWwtZm9ybSBbcHJvcHNdPVwiY3JlYXRlRm9ybSgpXCIgKG9uU3VibWl0KT1cIm9uQ3JlYXRlU3VibWl0KCRldmVudClcIiAvPlxuICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBleHBhbmQ9XCJibG9ja1wiIGZpbGw9XCJjbGVhclwiIGNvbG9yPVwibWVkaXVtXCIgc2hhcGU9XCJyb3VuZFwiIChjbGljayk9XCJzaG93Q3JlYXRlLnNldChmYWxzZSlcIj5cbiAgICAgICAgICAgICAgICB7eyB0KCdjYW5jZWwnKSB9fVxuICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcGlrZXktYWN0aW9uc1wiPlxuICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBleHBhbmQ9XCJibG9ja1wiIGNvbG9yPVwicHJpbWFyeVwiIHNoYXBlPVwicm91bmRcIiAoY2xpY2spPVwib3BlbkNyZWF0ZSgpXCI+XG4gICAgICAgICAgICAgICAge3sgdCgnbmV3S2V5JykgfX1cbiAgICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgPC9pb24tY29udGVudD5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgLyogU2hlZXQgbW9kYWw6IHBhZGRpbmcgaW5mZXJpb3IgZ2VuZXJvc28gcGFyYSBwb2RlciBzY3JvbGxlYXIgaGFzdGEgZWxcbiAgICAgICAgIMO6bHRpbW8gZWxlbWVudG8gKGJvdMOzbiBjcmVhcikgc2luIHF1ZSBxdWVkZSBiYWpvIGVsIGJvcmRlL2luZGljYWRvci4gKi9cbiAgICAgIGlvbi1jb250ZW50IHtcbiAgICAgICAgLS1wYWRkaW5nLWJvdHRvbTogNjRweDtcbiAgICAgIH1cbiAgICAgIHZhbC1kaXNwbGF5IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICAgIH1cbiAgICAgIHZhbC10aXRsZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgICAgfVxuICAgICAgLmFwaWtleS1saXN0IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgICB9XG4gICAgICAuYXBpa2V5LXJvdyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgcGFkZGluZzogMTJweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAgICAgYm9yZGVyOiAxLjVweCBzb2xpZCB2YXIoLS1pb24tY29sb3ItbGlnaHQpO1xuICAgICAgfVxuICAgICAgLmFwaWtleS1yb3dfX21haW4ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgfVxuICAgICAgLmFwaWtleS1yb3dfX25hbWUge1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgfVxuICAgICAgLmFwaWtleS1yb3dfX21ldGEge1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItbWVkaXVtLXNoYWRlLCAjNmI2ZTc2KTtcbiAgICAgIH1cbiAgICAgIC5hcGlrZXktY3JlYXRlIHtcbiAgICAgICAgbWFyZ2luLXRvcDogOHB4O1xuICAgICAgICBwYWRkaW5nOiA0cHggMCAwIDA7XG4gICAgICB9XG4gICAgICAuYXBpa2V5LXBlcm1zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiA2cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgIH1cbiAgICAgIC5hcGlrZXktYWN0aW9ucyB7XG4gICAgICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgfVxuICAgICAgLmFwaWtleS1lcnJvciB7XG4gICAgICAgIG1hcmdpbjogOHB4IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFuZ2VyLCAjYzAzOTJiKTtcbiAgICAgIH1cbiAgICAgIC5hcGlrZXktc2VjcmV0X193YXJuIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci13YXJuaW5nLXNoYWRlLCAjYjg4NjAwKTtcbiAgICAgICAgbWFyZ2luOiAwIDAgMTJweCAwO1xuICAgICAgfVxuICAgICAgLmFwaWtleS1zZWNyZXRfX2JveCB7XG4gICAgICAgIHBhZGRpbmc6IDEycHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlO1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQXBpS2V5c01vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBhcGlLZXlzID0gaW5qZWN0KEFwaUtleVNlcnZpY2UpO1xuICBwcml2YXRlIGNhdGFsb2cgPSBpbmplY3QoUGVybWlzc2lvbkNhdGFsb2dTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBhdXRoID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcblxuICAvKiogSW55ZWN0YWRvIHBvciBgTW9kYWxTZXJ2aWNlLm9wZW5gLiAqL1xuICBASW5wdXQoKSBfbW9kYWxSZWY/OiB7IGRpc21pc3M6IChkYXRhPzogdW5rbm93biwgcm9sZT86IHN0cmluZykgPT4gdm9pZCB9O1xuXG4gIC8qKiBOYW1lc3BhY2UgaTE4bi4gKi9cbiAgQElucHV0KCkgaTE4bk5hbWVzcGFjZSA9IERFRkFVTFRfTkFNRVNQQUNFO1xuXG4gIC8qKiBQZXJtaXNvcyBkZWwgY2F0w6Fsb2dvIFlBIGZpbHRyYWRvcyAoc2luIGludGVybmFsLCBzaW4gb3RyYXMgYXBwcykuICovXG4gIHJlYWRvbmx5IGNhdGFsb2dQZXJtaXNzaW9ucyA9IHNpZ25hbDxQZXJtaXNzaW9uUmVzb3VyY2VbXT4oW10pO1xuICAvKiogTGFiZWxzIGRlIGFjY2nDs24gKGVzL2VuKSBkZWwgYmFja2VuZCwgcGFyYSBlbCBzZWxlY3Rvci4gKi9cbiAgcmVhZG9ubHkgYWN0aW9uTGFiZWxzID0gc2lnbmFsPFJlY29yZDxzdHJpbmcsIExvY2FsaXplZExhYmVsPj4oe30pO1xuICAvKiogUGVybWlzb3Mgc2VsZWNjaW9uYWRvcyBwYXJhIGxhIG51ZXZhIGtleSAoYHJlc291cmNlOmFjdGlvbmApLiAqL1xuICByZWFkb25seSBzZWxlY3RlZFBlcm1zID0gc2lnbmFsPHN0cmluZ1tdPihbXSk7XG5cbiAgcmVhZG9ubHkga2V5cyA9IHNpZ25hbDxDbGllbnRBcGlLZXlbXT4oW10pO1xuICByZWFkb25seSBsb2FkaW5nID0gc2lnbmFsKHRydWUpO1xuICByZWFkb25seSBzaG93Q3JlYXRlID0gc2lnbmFsKGZhbHNlKTtcbiAgcmVhZG9ubHkgc3VibWl0dGluZyA9IHNpZ25hbChmYWxzZSk7XG4gIHJlYWRvbmx5IGVycm9yTXNnID0gc2lnbmFsKCcnKTtcbiAgcmVhZG9ubHkgc2VjcmV0ID0gc2lnbmFsPENsaWVudEFwaUtleVdpdGhTZWNyZXQgfCBudWxsPihudWxsKTtcbiAgcmVhZG9ubHkgY29waWVkID0gc2lnbmFsKGZhbHNlKTtcblxuICAvKipcbiAgICogRm9ybU1ldGFkYXRhIGRlbCBmb3JtIGRlIGNyZWFyIGtleSAodmFsLWZvcm0pLiBSZWFjdGl2byBhIGlkaW9tYSArIHBlcm1pc29zXG4gICAqIGRpc3BvbmlibGVzICsgZXN0YWRvIHN1Ym1pdHRpbmcuIFJlZW1wbGF6YSBsb3MgaW9uLWlucHV0L2lvbi1jaGVja2JveCBjcnVkb3NcbiAgICogcG9yIHZhbC1mb3JtIChjb25zaXN0ZW5jaWEgY29uIGVsIHJlc3RvIGRlIG1vZGFsZXMgZGVsIGZhY3RvcnkpLlxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlRm9ybSA9IGNvbXB1dGVkPEZvcm1NZXRhZGF0YT4oKCkgPT4ge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgY29uc3Qgd29ya2luZyA9IHRoaXMuc3VibWl0dGluZygpO1xuXG4gICAgY29uc3QgbmFtZUZpZWxkOiBJbnB1dE1ldGFkYXRhID0ge1xuICAgICAgdG9rZW46ICdhcGlrZXktbmFtZScsXG4gICAgICBuYW1lOiAnbmFtZScsXG4gICAgICBsYWJlbDogdGhpcy50KCduYW1lTGFiZWwnKSxcbiAgICAgIGhpbnQ6ICcnLFxuICAgICAgcGxhY2Vob2xkZXI6IHRoaXMudCgnbmFtZVBsYWNlaG9sZGVyJyksXG4gICAgICB0eXBlOiBJbnB1dFR5cGUuVEVYVCxcbiAgICAgIG9yZGVyOiAxLFxuICAgICAgdmFsaWRhdG9yczogW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDEyMCldLFxuICAgICAgZXJyb3JzOiB7IHJlcXVpcmVkOiB0aGlzLnQoJ25vTmFtZScpIH0sXG4gICAgICB2YWx1ZTogJycsXG4gICAgICBzdGF0ZTogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gICAgfSBhcyBJbnB1dE1ldGFkYXRhO1xuXG4gICAgY29uc3QgZXhwaXJlc0ZpZWxkOiBJbnB1dE1ldGFkYXRhID0ge1xuICAgICAgdG9rZW46ICdhcGlrZXktZXhwaXJlcycsXG4gICAgICBuYW1lOiAnZXhwaXJlc0luRGF5cycsXG4gICAgICBsYWJlbDogdGhpcy50KCdleHBpcmVzTGFiZWwnKSxcbiAgICAgIGhpbnQ6ICcnLFxuICAgICAgcGxhY2Vob2xkZXI6ICcnLFxuICAgICAgdHlwZTogSW5wdXRUeXBlLk5VTUJFUixcbiAgICAgIG9yZGVyOiAzLFxuICAgICAgdmFsaWRhdG9yczogW1ZhbGlkYXRvcnMubWluKDEpXSxcbiAgICAgIGVycm9yczoge30sXG4gICAgICB2YWx1ZTogJycsXG4gICAgICBzdGF0ZTogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gICAgfSBhcyBJbnB1dE1ldGFkYXRhO1xuXG4gICAgY29uc3Qgc3VibWl0QnV0dG9uOiBCdXR0b25NZXRhZGF0YSA9IHtcbiAgICAgIHRva2VuOiAnYXBpa2V5LWNyZWF0ZS1zdWJtaXQnLFxuICAgICAgdGV4dDogdGhpcy50KCdjcmVhdGUnKSxcbiAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICB0eXBlOiAnc3VibWl0JyxcbiAgICAgIGZpbGw6ICdzb2xpZCcsXG4gICAgICBzaXplOiAnZGVmYXVsdCcsXG4gICAgICBzaGFwZTogJ3JvdW5kJyxcbiAgICAgIGV4cGFuZDogJ2Jsb2NrJyxcbiAgICAgIHN0YXRlOiB3b3JraW5nID8gQ29tcG9uZW50U3RhdGVzLldPUktJTkcgOiBDb21wb25lbnRTdGF0ZXMuRU5BQkxFRCxcbiAgICB9IGFzIEJ1dHRvbk1ldGFkYXRhO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6ICcnLFxuICAgICAgc3RhdGU6IHdvcmtpbmcgPyBDb21wb25lbnRTdGF0ZXMuV09SS0lORyA6IENvbXBvbmVudFN0YXRlcy5FTkFCTEVELFxuICAgICAgc2VjdGlvbnM6IFt7IG5hbWU6ICcnLCBvcmRlcjogMSwgZmllbGRzOiBbbmFtZUZpZWxkLCBleHBpcmVzRmllbGRdIH1dLFxuICAgICAgYWN0aW9uczogc3VibWl0QnV0dG9uLFxuICAgIH07XG4gIH0pO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuaTE4bi5yZWdpc3RlckRlZmF1bHRzKERFRkFVTFRfTkFNRVNQQUNFLCBBUElfS0VZU19NT0RBTF9JMThOKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaTE4bi5yZWdpc3RlckRlZmF1bHRzKHRoaXMuaTE4bk5hbWVzcGFjZSwgQVBJX0tFWVNfTU9EQUxfSTE4Tik7XG4gICAgdGhpcy5yZWZyZXNoKCk7XG4gICAgdGhpcy5sb2FkQ2F0YWxvZygpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhcmdhIGVsIGNhdMOhbG9nbyBkZSBwZXJtaXNvcyB5IGxvIGZpbHRyYSBhIGxvIGFzaWduYWJsZSBhIHVuYSBBUEkgS2V5IGRlIGxhXG4gICAqIG9yZzogZGVzY2FydGEgYHNjb3BlOmludGVybmFsYCAoZWwgYmFja2VuZCB5YSBsb3Mgb21pdGUgcGFyYSBuby1zdGFmZikgeSBsb3NcbiAgICogcGVybWlzb3MgZGUgT1RSQVMgYXBwcyAoYGFwcElkICE9PSBhcHBJZCBkZWwgY2F0w6Fsb2dvYCkuIFF1ZWRhbiBsb3MgcGVybWlzb3MgZGVcbiAgICogb3JnICh1c2Vycy9yb2xlcy9yYmFjKSArIGxvcyBkZSBsYSBhcHAgYWN0dWFsLlxuICAgKi9cbiAgcHJpdmF0ZSBsb2FkQ2F0YWxvZygpOiB2b2lkIHtcbiAgICBjb25zdCBvcmdJZCA9IHRoaXMuYWN0aXZlT3JnSWQoKTtcbiAgICBpZiAoIW9yZ0lkKSByZXR1cm47XG4gICAgdGhpcy5jYXRhbG9nLmdldENhdGFsb2cob3JnSWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiByZXMgPT4ge1xuICAgICAgICBjb25zdCBhcHBJZCA9IHJlcy5hcHBJZDtcbiAgICAgICAgY29uc3QgZmlsdGVyZWQgPSAocmVzLnBlcm1pc3Npb25zID8/IFtdKS5maWx0ZXIoXG4gICAgICAgICAgcCA9PiBwLnNjb3BlICE9PSAnaW50ZXJuYWwnICYmIChwLnNjb3BlICE9PSAnYXBwJyB8fCBwLmFwcElkID09PSBhcHBJZClcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5jYXRhbG9nUGVybWlzc2lvbnMuc2V0KGZpbHRlcmVkKTtcbiAgICAgICAgdGhpcy5hY3Rpb25MYWJlbHMuc2V0KHJlcy5hY3Rpb25MYWJlbHMgPz8ge30pO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgIC8vIFNpbiBjYXTDoWxvZ286IGVsIHNlbGVjdG9yIHF1ZWRhIHZhY8OtbyAoZWwgZm9ybSB2YWxpZGEg4omlMSBwZXJtaXNvKS5cbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFjdGl2ZU9yZ0lkKCk6IHN0cmluZyB7XG4gICAgY29uc3QgdSA9IHRoaXMuYXV0aC51c2VyKCkgYXMgeyBhY3RpdmVPcmdJZD86IHN0cmluZzsgYWN0aXZlT3JnPzogc3RyaW5nIH0gfCBudWxsO1xuICAgIHJldHVybiB1Py5hY3RpdmVPcmdJZCA/PyB1Py5hY3RpdmVPcmcgPz8gJyc7XG4gIH1cblxuICBwcml2YXRlIHJlZnJlc2goKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkaW5nLnNldCh0cnVlKTtcbiAgICB0aGlzLmFwaUtleXMubGlzdCgpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiBrZXlzID0+IHtcbiAgICAgICAgdGhpcy5rZXlzLnNldChrZXlzKTtcbiAgICAgICAgdGhpcy5sb2FkaW5nLnNldChmYWxzZSk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6ICgpID0+IHRoaXMubG9hZGluZy5zZXQoZmFsc2UpLFxuICAgIH0pO1xuICB9XG5cbiAgb3BlbkNyZWF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmVycm9yTXNnLnNldCgnJyk7XG4gICAgdGhpcy5zZWxlY3RlZFBlcm1zLnNldChbXSk7XG4gICAgdGhpcy5zaG93Q3JlYXRlLnNldCh0cnVlKTtcbiAgfVxuXG4gIG9uQ3JlYXRlU3VibWl0KGV2ZW50OiBGb3JtU3VibWl0KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3VibWl0dGluZygpKSByZXR1cm47XG4gICAgdGhpcy5lcnJvck1zZy5zZXQoJycpO1xuXG4gICAgY29uc3QgbmFtZSA9IFN0cmluZyhldmVudC5maWVsZHNbJ25hbWUnXSA/PyAnJykudHJpbSgpO1xuICAgIGNvbnN0IHBlcm1pc3Npb25zID0gdGhpcy5zZWxlY3RlZFBlcm1zKCk7XG4gICAgY29uc3QgZXhwaXJlc1JhdyA9IE51bWJlcihldmVudC5maWVsZHNbJ2V4cGlyZXNJbkRheXMnXSk7XG5cbiAgICBpZiAoIW5hbWUpIHtcbiAgICAgIHRoaXMuZXJyb3JNc2cuc2V0KHRoaXMudCgnbm9OYW1lJykpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXBlcm1pc3Npb25zLmxlbmd0aCkge1xuICAgICAgdGhpcy5lcnJvck1zZy5zZXQodGhpcy50KCdub1Blcm1zJykpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3VibWl0dGluZy5zZXQodHJ1ZSk7XG4gICAgdGhpcy5hcGlLZXlzXG4gICAgICAuY3JlYXRlKHtcbiAgICAgICAgbmFtZSxcbiAgICAgICAgcGVybWlzc2lvbnMsXG4gICAgICAgIGV4cGlyZXNJbkRheXM6IE51bWJlci5pc0Zpbml0ZShleHBpcmVzUmF3KSAmJiBleHBpcmVzUmF3ID4gMCA/IGV4cGlyZXNSYXcgOiB1bmRlZmluZWQsXG4gICAgICB9KVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IHJlcyA9PiB7XG4gICAgICAgICAgdGhpcy5zdWJtaXR0aW5nLnNldChmYWxzZSk7XG4gICAgICAgICAgdGhpcy5zaG93Q3JlYXRlLnNldChmYWxzZSk7XG4gICAgICAgICAgdGhpcy5zZWNyZXQuc2V0KHJlcy5rZXkpO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogZXJyID0+IHtcbiAgICAgICAgICB0aGlzLnN1Ym1pdHRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgICB0aGlzLmVycm9yTXNnLnNldChlcnI/LmVycm9yPy5tZXNzYWdlID8/IHRoaXMudCgnZ2VuZXJpY0Vycm9yJykpO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gIH1cblxuICByZXZva2Uoa2V5OiBDbGllbnRBcGlLZXkpOiB2b2lkIHtcbiAgICBpZiAoIWNvbmZpcm0odGhpcy50KCdyZXZva2VDb25maXJtJykpKSByZXR1cm47XG4gICAgdGhpcy5hcGlLZXlzLnJldm9rZShrZXkua2V5SWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAoKSA9PiB0aGlzLnJlZnJlc2goKSxcbiAgICAgIGVycm9yOiBlcnIgPT4gdGhpcy5lcnJvck1zZy5zZXQoZXJyPy5lcnJvcj8ubWVzc2FnZSA/PyB0aGlzLnQoJ2dlbmVyaWNFcnJvcicpKSxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGNvcHkoc2VjcmV0OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoc2VjcmV0KTtcbiAgICAgIHRoaXMuY29waWVkLnNldCh0cnVlKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIGNsaXBib2FyZCBubyBkaXNwb25pYmxlIOKAlCBlbCB1c2VyIHB1ZWRlIHNlbGVjY2lvbmFyIGVsIHRleHRvIG1hbnVhbG1lbnRlXG4gICAgfVxuICB9XG5cbiAgZmluaXNoU2VjcmV0KCk6IHZvaWQge1xuICAgIHRoaXMuc2VjcmV0LnNldChudWxsKTtcbiAgICB0aGlzLmNvcGllZC5zZXQoZmFsc2UpO1xuICAgIHRoaXMucmVmcmVzaCgpO1xuICB9XG5cbiAgZGlzbWlzcygpOiB2b2lkIHtcbiAgICB0aGlzLl9tb2RhbFJlZj8uZGlzbWlzcyhudWxsLCAnY2FuY2VsJyk7XG4gIH1cblxuICB0KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoa2V5LCB0aGlzLmkxOG5OYW1lc3BhY2UpO1xuICB9XG59XG4iXX0=
|