valtech-components 4.0.963 → 4.0.964
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/atoms/notice/notice.component.mjs +3 -3
- package/esm2022/lib/components/atoms/rights-footer/rights-footer.component.mjs +2 -2
- package/esm2022/lib/components/molecules/date-input/date-input.component.mjs +3 -3
- package/esm2022/lib/components/molecules/date-picker/date-picker.component.mjs +5 -5
- package/esm2022/lib/components/molecules/empty-state/empty-state.component.mjs +3 -3
- package/esm2022/lib/components/molecules/feedback-form/feedback-form.component.mjs +3 -3
- package/esm2022/lib/components/molecules/field-options-editor/field-options-editor.component.mjs +3 -3
- package/esm2022/lib/components/molecules/footer-links/footer-links.component.mjs +3 -3
- package/esm2022/lib/components/molecules/image-crop/image-crop.component.mjs +3 -3
- package/esm2022/lib/components/molecules/linked-providers/linked-providers.component.mjs +3 -3
- package/esm2022/lib/components/molecules/multi-select-search/multi-select-search.component.mjs +3 -3
- package/esm2022/lib/components/molecules/notes-box/notes-box.component.mjs +3 -3
- package/esm2022/lib/components/molecules/option-cards/option-cards.component.mjs +3 -3
- package/esm2022/lib/components/molecules/permission-selector/permission-selector.component.mjs +3 -3
- package/esm2022/lib/components/molecules/progress-status/progress-status.component.mjs +3 -3
- package/esm2022/lib/components/molecules/request-form/request-form.component.mjs +3 -3
- package/esm2022/lib/components/molecules/update-banner/update-banner.component.mjs +3 -3
- package/esm2022/lib/components/organisms/access-request-view/access-request-view.component.mjs +3 -3
- package/esm2022/lib/components/organisms/api-keys-modal/api-keys-modal.component.mjs +5 -5
- package/esm2022/lib/components/organisms/comment-section/comment-section.component.mjs +3 -3
- package/esm2022/lib/components/organisms/cookie-settings/cookie-settings.component.mjs +3 -3
- package/esm2022/lib/components/organisms/delete-account-modal/delete-account-modal.component.mjs +3 -3
- package/esm2022/lib/components/organisms/field-list/field-list.component.mjs +3 -3
- package/esm2022/lib/components/organisms/form/form.component.mjs +3 -3
- package/esm2022/lib/components/organisms/infinite-list/infinite-list.component.mjs +5 -5
- package/esm2022/lib/components/organisms/item-list/item-list.component.mjs +9 -9
- package/esm2022/lib/components/organisms/login-attempt-modal/login-attempt-modal.component.mjs +6 -6
- package/esm2022/lib/components/organisms/member-detail-modal/member-detail-modal.component.mjs +3 -3
- package/esm2022/lib/components/organisms/member-import-modal/member-import-modal.component.mjs +3 -3
- package/esm2022/lib/components/organisms/menu/menu.component.mjs +3 -3
- package/esm2022/lib/components/organisms/mfa-modal/mfa-modal.component.mjs +3 -3
- package/esm2022/lib/components/organisms/notification-preferences-view/notification-preferences-view.component.mjs +5 -5
- package/esm2022/lib/components/organisms/notifications-view/notifications-view.component.mjs +3 -3
- package/esm2022/lib/components/organisms/organization-view/organization-view.component.mjs +3 -3
- package/esm2022/lib/components/organisms/permissions-view/permissions-view.component.mjs +9 -9
- package/esm2022/lib/components/organisms/request-review-panel/request-review-panel.component.mjs +3 -3
- package/esm2022/lib/components/organisms/role-manager/role-manager.component.mjs +5 -5
- package/esm2022/lib/components/organisms/security-view/security-view.component.mjs +5 -5
- package/esm2022/lib/components/organisms/session-list-modal/session-list-modal.component.mjs +3 -3
- package/esm2022/lib/components/organisms/transfer-ownership-modal/transfer-ownership-modal.component.mjs +5 -5
- package/esm2022/lib/components/templates/page-content/page-content.component.mjs +3 -3
- package/esm2022/lib/services/confirmation-dialog/types.mjs +2 -2
- package/esm2022/lib/services/content/transformer.mjs +3 -3
- package/esm2022/lib/services/markdown-article/beautify-legal-article.mjs +2 -2
- package/esm2022/lib/services/markdown-article/markdown-article-parser.mjs +2 -2
- package/esm2022/lib/services/modal/types.mjs +2 -2
- package/esm2022/lib/version.mjs +2 -2
- package/fesm2022/valtech-components.mjs +117 -117
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/atoms/rights-footer/rights-footer.component.d.ts +1 -1
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
package/esm2022/lib/components/organisms/delete-account-modal/delete-account-modal.component.mjs
CHANGED
|
@@ -224,7 +224,7 @@ export class DeleteAccountModalComponent {
|
|
|
224
224
|
<div class="resend-row">
|
|
225
225
|
<ion-button
|
|
226
226
|
fill="clear"
|
|
227
|
-
color="
|
|
227
|
+
color="dark"
|
|
228
228
|
size="small"
|
|
229
229
|
[disabled]="formState() === 'WORKING'"
|
|
230
230
|
(click)="onResendCode()"
|
|
@@ -269,7 +269,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
269
269
|
<div class="resend-row">
|
|
270
270
|
<ion-button
|
|
271
271
|
fill="clear"
|
|
272
|
-
color="
|
|
272
|
+
color="dark"
|
|
273
273
|
size="small"
|
|
274
274
|
[disabled]="formState() === 'WORKING'"
|
|
275
275
|
(click)="onResendCode()"
|
|
@@ -290,4 +290,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
290
290
|
}], dismissed: [{
|
|
291
291
|
type: Output
|
|
292
292
|
}] } });
|
|
293
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZXRlLWFjY291bnQtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9kZWxldGUtYWNjb3VudC1tb2RhbC9kZWxldGUtYWNjb3VudC1tb2RhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBa0IsZUFBZSxFQUEyQyxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFbEgsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDL0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFFckYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBRXhFLE1BQU0saUJBQWlCLEdBQUcsd0JBQXdCLENBQUM7QUFFbkQ7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJHO0FBb0VILE1BQU0sT0FBTywyQkFB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RUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLGFBQWEsQ0FBQyxZQUM5Rjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5Q1Q7d0RBNkJRLGFBQWE7c0JBQXJCLEtBQUs7Z0JBS0YsTUFBTTtzQkFEVCxLQUFLO2dCQWlCSSxTQUFTO3NCQUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIElucHV0LCBPdXRwdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElvbkJ1dHRvbiwgSW9uQnV0dG9ucywgSW9uQ29udGVudCwgSW9uSGVhZGVyLCBJb25Nb2RhbCwgSW9uU3Bpbm5lciwgSW9uVG9vbGJhciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL2Zvcm0vZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tcG9uZW50U3RhdGUsIENvbXBvbmVudFN0YXRlcywgRm9ybU1ldGFkYXRhLCBGb3JtU3VibWl0LCBJbnB1dE1ldGFkYXRhLCBJbnB1dFR5cGUgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXV0aC9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3RvYXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgVmFsdGVjaEVycm9yU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Vycm9ycy92YWx0ZWNoLWVycm9yLnNlcnZpY2UnO1xuXG5pbXBvcnQgeyBERUxFVEVfQUNDT1VOVF9NT0RBTF9JMThOIH0gZnJvbSAnLi9kZWxldGUtYWNjb3VudC1tb2RhbC5pMThuJztcblxuY29uc3QgREVGQVVMVF9OQU1FU1BBQ0UgPSAnU2V0dGluZ3MuRGVsZXRlQWNjb3VudCc7XG5cbi8qKlxuICogYHZhbC1kZWxldGUtYWNjb3VudC1tb2RhbGAg4oCUIG1vZGFsIGRlIGVsaW1pbmFjacOzbiBkZSBjdWVudGEgKG9yZ2FuaXNtLFxuICogY3VlbnRhLWVzcGVjw61maWNvKS4gUHJvbW92aWRvIGRlc2RlIGBzaG93Y2FzZWAgYmFqbyBlbCBwcm9jZXNvIGRlIEFEUi0wMjEuXG4gKlxuICogRGVjaWRlIGVsIGZsdWpvIHNlZ8O6biBzaSBsYSBjdWVudGEgdGllbmUgY29udHJhc2XDsWE6XG4gKiAgLSAqKmNvbiBwYXNzd29yZCoqIOKGkiBwaWRlIGxhIGNvbnRyYXNlw7FhIGFjdHVhbCB5IGxhIHZlcmlmaWNhIHbDrWFcbiAqICAgIGBhdXRoLmRlbGV0ZUFjY291bnQoeyBwYXNzd29yZCB9KWAuXG4gKiAgLSAqKnNpbiBwYXNzd29yZCoqIChjdWVudGEgT0F1dGgpIOKGkiBlbnbDrWEgdW4gY8OzZGlnbyBwb3IgZW1haWxcbiAqICAgIChgYXV0aC5zZW5kRGVsZXRlQWNjb3VudENvZGUoKWApIHkgbG8gcGlkZSBwYXJhIGNvbmZpcm1hclxuICogICAgKGBhdXRoLmRlbGV0ZUFjY291bnQoeyBjb2RlIH0pYCkuXG4gKlxuICogQWJpZXJ0byB2w61hIGBNb2RhbFNlcnZpY2VgIOKAlCByZWNpYmUgYF9tb2RhbFJlZmAgcG9yIGBjb21wb25lbnRQcm9wc2AgcGFyYVxuICogY2VycmFyIGRlc2RlIGRlbnRyby4gSGVhZGVyIGNhbsOzbmljbyAoUmVnbGEgIzUpOiBzaW4gYGlvbi10aXRsZWAsIGJvdMOzbiBDZXJyYXJcbiAqIHRleHRvIGVuIGBzbG90PWVuZGAsIHTDrXR1bG8vc3VidMOtdHVsbyBlbiBlbCBib2R5IHbDrWEgYHZhbC1mb3JtYC5cbiAqXG4gKiBBdXRvLXJlZ2lzdHJhIHN1cyBkZWZhdWx0cyBpMThuIChlcy9lbikgZW4gZWwgY29uc3RydWN0b3Igc2kgZWwgY29uc3VtZXIgbm9cbiAqIHByb3ZlecOzIGVsIG5hbWVzcGFjZSBgU2V0dGluZ3MuRGVsZXRlQWNjb3VudGAuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1kZWxldGUtYWNjb3VudC1tb2RhbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtJb25Nb2RhbCwgSW9uSGVhZGVyLCBJb25Ub29sYmFyLCBJb25CdXR0b25zLCBJb25CdXR0b24sIElvbkNvbnRlbnQsIElvblNwaW5uZXIsIEZvcm1Db21wb25lbnRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxpb24tbW9kYWwgW2lzT3Blbl09XCJpc09wZW5cIiAoZGlkRGlzbWlzcyk9XCJjbG9zZSgpXCIgY3NzQ2xhc3M9XCJ2YWwtbW9kYWwtYWRhcHRpdmVcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZT5cbiAgICAgICAgPGlvbi1oZWFkZXI+XG4gICAgICAgICAgPGlvbi10b29sYmFyPlxuICAgICAgICAgICAgPGlvbi1idXR0b25zIHNsb3Q9XCJlbmRcIj5cbiAgICAgICAgICAgICAgPGlvbi1idXR0b24gZmlsbD1cImNsZWFyXCIgY29sb3I9XCJkYXJrXCIgc2hhcGU9XCJyb3VuZFwiIChjbGljayk9XCJjbG9zZSgpXCI+XG4gICAgICAgICAgICAgICAgPHN0cm9uZz57eyB0KCdjbG9zZScpIH19PC9zdHJvbmc+XG4gICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbnM+XG4gICAgICAgICAgPC9pb24tdG9vbGJhcj5cbiAgICAgICAgPC9pb24taGVhZGVyPlxuXG4gICAgICAgIDxpb24tY29udGVudCBjbGFzcz1cImlvbi1wYWRkaW5nXCI+XG4gICAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJtb2RhbC1mb3JtLXNlY3Rpb25cIj5cbiAgICAgICAgICAgIEBpZiAoaGFzUGFzc3dvcmQoKSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Bpbm5lci1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8aW9uLXNwaW5uZXIgbmFtZT1cImNyZXNjZW50XCIgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9IEBlbHNlIGlmIChoYXNQYXNzd29yZCgpKSB7XG4gICAgICAgICAgICAgIDx2YWwtZm9ybSBbcHJvcHNdPVwicGFzc3dvcmRGb3JtUHJvcHMoKVwiIChvblN1Ym1pdCk9XCJvblBhc3N3b3JkU3VibWl0KCRldmVudClcIiAvPlxuICAgICAgICAgICAgfSBAZWxzZSBpZiAoIWNvZGVTZW50KCkpIHtcbiAgICAgICAgICAgICAgPHZhbC1mb3JtIFtwcm9wc109XCJzZW5kQ29kZUZvcm1Qcm9wcygpXCIgKG9uU3VibWl0KT1cIm9uU2VuZENvZGUoKVwiIC8+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgPHZhbC1mb3JtIFtwcm9wc109XCJjb2RlRm9ybVByb3BzKClcIiAob25TdWJtaXQpPVwib25Db2RlU3VibWl0KCRldmVudClcIiAvPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVzZW5kLXJvd1wiPlxuICAgICAgICAgICAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgICBmaWxsPVwiY2xlYXJcIlxuICAgICAgICAgICAgICAgICAgY29sb3I9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJmb3JtU3RhdGUoKSA9PT0gJ1dPUktJTkcnXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblJlc2VuZENvZGUoKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3sgdCgncmVzZW5kJykgfX1cbiAgICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvc2VjdGlvbj5cbiAgICAgICAgPC9pb24tY29udGVudD5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9pb24tbW9kYWw+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIC5tb2RhbC1mb3JtLXNlY3Rpb24ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDE2cHg7XG4gICAgICAgIHBhZGRpbmctdG9wOiA4cHg7XG4gICAgICB9XG4gICAgICAucmVzZW5kLXJvdyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBtYXJnaW4tdG9wOiAtOHB4O1xuICAgICAgfVxuICAgICAgLnNwaW5uZXItY2VudGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmctdG9wOiAzMnB4O1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIERlbGV0ZUFjY291bnRNb2RhbENvbXBvbmVudCB7XG4gIHByaXZhdGUgYXV0aCA9IGluamVjdChBdXRoU2VydmljZSk7XG4gIHByaXZhdGUgZXJyb3JzID0gaW5qZWN0KFZhbHRlY2hFcnJvclNlcnZpY2UpO1xuICBwcml2YXRlIGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuICBwcml2YXRlIHRvYXN0ID0gaW5qZWN0KFRvYXN0U2VydmljZSk7XG5cbiAgLyoqIE5hbWVzcGFjZSBpMThuIGNvbiBxdWUgbGEgdmlzdGEgcmVzdWVsdmUgc3VzIHRleHRvcy4gKi9cbiAgQElucHV0KCkgaTE4bk5hbWVzcGFjZSA9IERFRkFVTFRfTkFNRVNQQUNFO1xuXG4gIHByaXZhdGUgX2lzT3BlbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBpc09wZW4odmFsdWU6IGJvb2xlYW4pIHtcbiAgICBjb25zdCBvcGVuaW5nID0gdmFsdWUgJiYgIXRoaXMuX2lzT3BlbjtcbiAgICB0aGlzLl9pc09wZW4gPSB2YWx1ZTtcbiAgICBpZiAob3BlbmluZykge1xuICAgICAgdGhpcy5oYXNQYXNzd29yZC5zZXQobnVsbCk7XG4gICAgICB0aGlzLmNvZGVTZW50LnNldChmYWxzZSk7XG4gICAgICB0aGlzLmZvcm1TdGF0ZS5zZXQoQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQpO1xuICAgICAgZmlyc3RWYWx1ZUZyb20odGhpcy5hdXRoLmdldFByb2ZpbGUoKSlcbiAgICAgICAgLnRoZW4ocHJvZmlsZSA9PiB0aGlzLmhhc1Bhc3N3b3JkLnNldChwcm9maWxlLmhhc1Bhc3N3b3JkID8/IHRydWUpKVxuICAgICAgICAuY2F0Y2goKCkgPT4gdGhpcy5oYXNQYXNzd29yZC5zZXQodHJ1ZSkpO1xuICAgIH1cbiAgfVxuICBnZXQgaXNPcGVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9pc09wZW47XG4gIH1cblxuICBAT3V0cHV0KCkgZGlzbWlzc2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIHJlYWRvbmx5IGhhc1Bhc3N3b3JkID0gc2lnbmFsPGJvb2xlYW4gfCBudWxsPihudWxsKTtcbiAgcmVhZG9ubHkgY29kZVNlbnQgPSBzaWduYWwoZmFsc2UpO1xuICByZWFkb25seSBmb3JtU3RhdGUgPSBzaWduYWw8Q29tcG9uZW50U3RhdGU+KENvbXBvbmVudFN0YXRlcy5FTkFCTEVEKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmkxOG4ucmVnaXN0ZXJEZWZhdWx0cyhERUZBVUxUX05BTUVTUEFDRSwgREVMRVRFX0FDQ09VTlRfTU9EQUxfSTE4Tik7XG4gIH1cblxuICB0ID0gKGtleTogc3RyaW5nKTogc3RyaW5nID0+IHRoaXMuaTE4bi50KGtleSwgdGhpcy5pMThuTmFtZXNwYWNlKTtcblxuICBwcml2YXRlIHN1Ym1pdEJ0bih0b2tlbjogc3RyaW5nLCB0ZXh0S2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdGV4dDogdGhpcy50KHRleHRLZXkpLFxuICAgICAgdHlwZTogJ3N1Ym1pdCcgYXMgY29uc3QsXG4gICAgICBleHBhbmQ6ICdibG9jaycgYXMgY29uc3QsXG4gICAgICBmaWxsOiAnc29saWQnIGFzIGNvbnN0LFxuICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgIHNpemU6ICdkZWZhdWx0JyBhcyBjb25zdCxcbiAgICAgIHNoYXBlOiAncm91bmQnIGFzIGNvbnN0LFxuICAgICAgdG9rZW4sXG4gICAgICBzdGF0ZTogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gICAgfTtcbiAgfVxuXG4gIHJlYWRvbmx5IHBhc3N3b3JkRm9ybVByb3BzID0gY29tcHV0ZWQ8Rm9ybU1ldGFkYXRhPigoKSA9PiAoe1xuICAgIG5hbWU6IHRoaXMudCgndGl0bGUnKSxcbiAgICBzdGF0ZTogdGhpcy5mb3JtU3RhdGUoKSxcbiAgICBzZWN0aW9uczogW1xuICAgICAge1xuICAgICAgICBuYW1lOiB0aGlzLnQoJ3dhcm5pbmdQYXNzd29yZCcpLFxuICAgICAgICBvcmRlcjogMCxcbiAgICAgICAgZmllbGRzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgdG9rZW46ICdkZWxldGUtcGFzc3dvcmQnLFxuICAgICAgICAgICAgbmFtZTogJ3Bhc3N3b3JkJyxcbiAgICAgICAgICAgIGxhYmVsOiB0aGlzLnQoJ3Bhc3N3b3JkTGFiZWwnKSxcbiAgICAgICAgICAgIGhpbnQ6ICcnLFxuICAgICAgICAgICAgcGxhY2Vob2xkZXI6IHRoaXMudCgncGFzc3dvcmRQbGFjZWhvbGRlcicpLFxuICAgICAgICAgICAgdHlwZTogSW5wdXRUeXBlLlBBU1NXT1JELFxuICAgICAgICAgICAgb3JkZXI6IDAsXG4gICAgICAgICAgICB2YWxpZGF0b3JzOiBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICAgICAgICBlcnJvcnM6IHsgcmVxdWlyZWQ6IHRoaXMudCgncGFzc3dvcmRSZXF1aXJlZCcpIH0sXG4gICAgICAgICAgICBzdGF0ZTogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gICAgICAgICAgfSBhcyBJbnB1dE1ldGFkYXRhLFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICBdLFxuICAgIGFjdGlvbnM6IHRoaXMuc3VibWl0QnRuKCdkZWxldGUtcGFzc3dvcmQtc3VibWl0JywgJ2NvbmZpcm1DdGEnKSxcbiAgfSkpO1xuXG4gIHJlYWRvbmx5IHNlbmRDb2RlRm9ybVByb3BzID0gY29tcHV0ZWQ8Rm9ybU1ldGFkYXRhPigoKSA9PiAoe1xuICAgIG5hbWU6IHRoaXMudCgndGl0bGUnKSxcbiAgICBzdGF0ZTogdGhpcy5mb3JtU3RhdGUoKSxcbiAgICBzZWN0aW9uczogW1xuICAgICAge1xuICAgICAgICBuYW1lOiB0aGlzLnQoJ3dhcm5pbmdTZW5kQ29kZScpLFxuICAgICAgICBvcmRlcjogMCxcbiAgICAgICAgZmllbGRzOiBbXSxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBhY3Rpb25zOiB0aGlzLnN1Ym1pdEJ0bignZGVsZXRlLXNlbmQtY29kZS1zdWJtaXQnLCAnc2VuZENvZGVDdGEnKSxcbiAgfSkpO1xuXG4gIHJlYWRvbmx5IGNvZGVGb3JtUHJvcHMgPSBjb21wdXRlZDxGb3JtTWV0YWRhdGE+KCgpID0+ICh7XG4gICAgbmFtZTogdGhpcy50KCd0aXRsZScpLFxuICAgIHN0YXRlOiB0aGlzLmZvcm1TdGF0ZSgpLFxuICAgIHNlY3Rpb25zOiBbXG4gICAgICB7XG4gICAgICAgIG5hbWU6IHRoaXMudCgnd2FybmluZ0VudGVyQ29kZScpLFxuICAgICAgICBvcmRlcjogMCxcbiAgICAgICAgZmllbGRzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgdG9rZW46ICdkZWxldGUtY29kZScsXG4gICAgICAgICAgICBuYW1lOiAnY29kZScsXG4gICAgICAgICAgICBsYWJlbDogdGhpcy50KCdjb2RlTGFiZWwnKSxcbiAgICAgICAgICAgIGhpbnQ6ICcnLFxuICAgICAgICAgICAgcGxhY2Vob2xkZXI6IHRoaXMudCgnY29kZVBsYWNlaG9sZGVyJyksXG4gICAgICAgICAgICB0eXBlOiBJbnB1dFR5cGUuVEVYVCxcbiAgICAgICAgICAgIG9yZGVyOiAwLFxuICAgICAgICAgICAgdmFsaWRhdG9yczogW1ZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgICAgICAgZXJyb3JzOiB7IHJlcXVpcmVkOiB0aGlzLnQoJ2NvZGVSZXF1aXJlZCcpIH0sXG4gICAgICAgICAgICBzdGF0ZTogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gICAgICAgICAgfSBhcyBJbnB1dE1ldGFkYXRhLFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICBdLFxuICAgIGFjdGlvbnM6IHRoaXMuc3VibWl0QnRuKCdkZWxldGUtY29kZS1zdWJtaXQnLCAnY29uZmlybUN0YScpLFxuICB9KSk7XG5cbiAgY2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNtaXNzZWQuZW1pdCgpO1xuICB9XG5cbiAgYXN5bmMgb25QYXNzd29yZFN1Ym1pdChldmVudDogRm9ybVN1Ym1pdCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHBhc3N3b3JkID0gZXZlbnQuZmllbGRzWydwYXNzd29yZCddO1xuICAgIGlmICghcGFzc3dvcmQpIHtcbiAgICAgIHRoaXMudG9hc3Quc2hvdyh7XG4gICAgICAgIG1lc3NhZ2U6IHRoaXMudCgncGFzc3dvcmRSZXF1aXJlZCcpLFxuICAgICAgICBkdXJhdGlvbjogMzAwMCxcbiAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgcG9zaXRpb246ICd0b3AnLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZm9ybVN0YXRlLnNldChDb21wb25lbnRTdGF0ZXMuV09SS0lORyk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuYXV0aC5kZWxldGVBY2NvdW50KHsgcGFzc3dvcmQgfSkpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdGhpcy5lcnJvcnMuaGFuZGxlKGVyciwgeyBjb250ZXh0OiAnZGVsZXRlLWFjY291bnQucGFzc3dvcmQnIH0pO1xuICAgICAgdGhpcy5mb3JtU3RhdGUuc2V0KENvbXBvbmVudFN0YXRlcy5FTkFCTEVEKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBvblNlbmRDb2RlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuZm9ybVN0YXRlLnNldChDb21wb25lbnRTdGF0ZXMuV09SS0lORyk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuYXV0aC5zZW5kRGVsZXRlQWNjb3VudENvZGUoKSk7XG4gICAgICB0aGlzLmNvZGVTZW50LnNldCh0cnVlKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHRoaXMuZXJyb3JzLmhhbmRsZShlcnIsIHsgY29udGV4dDogJ2RlbGV0ZS1hY2NvdW50LnNlbmQtY29kZScgfSk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuZm9ybVN0YXRlLnNldChDb21wb25lbnRTdGF0ZXMuRU5BQkxFRCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgb25SZXNlbmRDb2RlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuY29kZVNlbnQuc2V0KGZhbHNlKTtcbiAgICBhd2FpdCB0aGlzLm9uU2VuZENvZGUoKTtcbiAgfVxuXG4gIGFzeW5jIG9uQ29kZVN1Ym1pdChldmVudDogRm9ybVN1Ym1pdCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGNvZGUgPSBldmVudC5maWVsZHNbJ2NvZGUnXTtcbiAgICBpZiAoIWNvZGUpIHtcbiAgICAgIHRoaXMudG9hc3Quc2hvdyh7XG4gICAgICAgIG1lc3NhZ2U6IHRoaXMudCgnY29kZVJlcXVpcmVkJyksXG4gICAgICAgIGR1cmF0aW9uOiAzMDAwLFxuICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICBwb3NpdGlvbjogJ3RvcCcsXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5mb3JtU3RhdGUuc2V0KENvbXBvbmVudFN0YXRlcy5XT1JLSU5HKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5hdXRoLmRlbGV0ZUFjY291bnQoeyBjb2RlIH0pKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHRoaXMuZXJyb3JzLmhhbmRsZShlcnIsIHsgY29udGV4dDogJ2RlbGV0ZS1hY2NvdW50LmNvZGUnIH0pO1xuICAgICAgdGhpcy5mb3JtU3RhdGUuc2V0KENvbXBvbmVudFN0YXRlcy5FTkFCTEVEKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
293
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZXRlLWFjY291bnQtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9kZWxldGUtYWNjb3VudC1tb2RhbC9kZWxldGUtYWNjb3VudC1tb2RhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBa0IsZUFBZSxFQUEyQyxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFbEgsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDL0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFFckYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBRXhFLE1BQU0saUJBQWlCLEdBQUcsd0JBQXdCLENBQUM7QUFFbkQ7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJHO0FBb0VILE1BQU0sT0FBTywyQkFB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RUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLGFBQWEsQ0FBQyxZQUM5Rjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5Q1Q7d0RBNkJRLGFBQWE7c0JBQXJCLEtBQUs7Z0JBS0YsTUFBTTtzQkFEVCxLQUFLO2dCQWlCSSxTQUFTO3NCQUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIElucHV0LCBPdXRwdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElvbkJ1dHRvbiwgSW9uQnV0dG9ucywgSW9uQ29udGVudCwgSW9uSGVhZGVyLCBJb25Nb2RhbCwgSW9uU3Bpbm5lciwgSW9uVG9vbGJhciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL2Zvcm0vZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tcG9uZW50U3RhdGUsIENvbXBvbmVudFN0YXRlcywgRm9ybU1ldGFkYXRhLCBGb3JtU3VibWl0LCBJbnB1dE1ldGFkYXRhLCBJbnB1dFR5cGUgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXV0aC9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3RvYXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgVmFsdGVjaEVycm9yU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Vycm9ycy92YWx0ZWNoLWVycm9yLnNlcnZpY2UnO1xuXG5pbXBvcnQgeyBERUxFVEVfQUNDT1VOVF9NT0RBTF9JMThOIH0gZnJvbSAnLi9kZWxldGUtYWNjb3VudC1tb2RhbC5pMThuJztcblxuY29uc3QgREVGQVVMVF9OQU1FU1BBQ0UgPSAnU2V0dGluZ3MuRGVsZXRlQWNjb3VudCc7XG5cbi8qKlxuICogYHZhbC1kZWxldGUtYWNjb3VudC1tb2RhbGAg4oCUIG1vZGFsIGRlIGVsaW1pbmFjacOzbiBkZSBjdWVudGEgKG9yZ2FuaXNtLFxuICogY3VlbnRhLWVzcGVjw61maWNvKS4gUHJvbW92aWRvIGRlc2RlIGBzaG93Y2FzZWAgYmFqbyBlbCBwcm9jZXNvIGRlIEFEUi0wMjEuXG4gKlxuICogRGVjaWRlIGVsIGZsdWpvIHNlZ8O6biBzaSBsYSBjdWVudGEgdGllbmUgY29udHJhc2XDsWE6XG4gKiAgLSAqKmNvbiBwYXNzd29yZCoqIOKGkiBwaWRlIGxhIGNvbnRyYXNlw7FhIGFjdHVhbCB5IGxhIHZlcmlmaWNhIHbDrWFcbiAqICAgIGBhdXRoLmRlbGV0ZUFjY291bnQoeyBwYXNzd29yZCB9KWAuXG4gKiAgLSAqKnNpbiBwYXNzd29yZCoqIChjdWVudGEgT0F1dGgpIOKGkiBlbnbDrWEgdW4gY8OzZGlnbyBwb3IgZW1haWxcbiAqICAgIChgYXV0aC5zZW5kRGVsZXRlQWNjb3VudENvZGUoKWApIHkgbG8gcGlkZSBwYXJhIGNvbmZpcm1hclxuICogICAgKGBhdXRoLmRlbGV0ZUFjY291bnQoeyBjb2RlIH0pYCkuXG4gKlxuICogQWJpZXJ0byB2w61hIGBNb2RhbFNlcnZpY2VgIOKAlCByZWNpYmUgYF9tb2RhbFJlZmAgcG9yIGBjb21wb25lbnRQcm9wc2AgcGFyYVxuICogY2VycmFyIGRlc2RlIGRlbnRyby4gSGVhZGVyIGNhbsOzbmljbyAoUmVnbGEgIzUpOiBzaW4gYGlvbi10aXRsZWAsIGJvdMOzbiBDZXJyYXJcbiAqIHRleHRvIGVuIGBzbG90PWVuZGAsIHTDrXR1bG8vc3VidMOtdHVsbyBlbiBlbCBib2R5IHbDrWEgYHZhbC1mb3JtYC5cbiAqXG4gKiBBdXRvLXJlZ2lzdHJhIHN1cyBkZWZhdWx0cyBpMThuIChlcy9lbikgZW4gZWwgY29uc3RydWN0b3Igc2kgZWwgY29uc3VtZXIgbm9cbiAqIHByb3ZlecOzIGVsIG5hbWVzcGFjZSBgU2V0dGluZ3MuRGVsZXRlQWNjb3VudGAuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1kZWxldGUtYWNjb3VudC1tb2RhbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtJb25Nb2RhbCwgSW9uSGVhZGVyLCBJb25Ub29sYmFyLCBJb25CdXR0b25zLCBJb25CdXR0b24sIElvbkNvbnRlbnQsIElvblNwaW5uZXIsIEZvcm1Db21wb25lbnRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxpb24tbW9kYWwgW2lzT3Blbl09XCJpc09wZW5cIiAoZGlkRGlzbWlzcyk9XCJjbG9zZSgpXCIgY3NzQ2xhc3M9XCJ2YWwtbW9kYWwtYWRhcHRpdmVcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZT5cbiAgICAgICAgPGlvbi1oZWFkZXI+XG4gICAgICAgICAgPGlvbi10b29sYmFyPlxuICAgICAgICAgICAgPGlvbi1idXR0b25zIHNsb3Q9XCJlbmRcIj5cbiAgICAgICAgICAgICAgPGlvbi1idXR0b24gZmlsbD1cImNsZWFyXCIgY29sb3I9XCJkYXJrXCIgc2hhcGU9XCJyb3VuZFwiIChjbGljayk9XCJjbG9zZSgpXCI+XG4gICAgICAgICAgICAgICAgPHN0cm9uZz57eyB0KCdjbG9zZScpIH19PC9zdHJvbmc+XG4gICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbnM+XG4gICAgICAgICAgPC9pb24tdG9vbGJhcj5cbiAgICAgICAgPC9pb24taGVhZGVyPlxuXG4gICAgICAgIDxpb24tY29udGVudCBjbGFzcz1cImlvbi1wYWRkaW5nXCI+XG4gICAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJtb2RhbC1mb3JtLXNlY3Rpb25cIj5cbiAgICAgICAgICAgIEBpZiAoaGFzUGFzc3dvcmQoKSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Bpbm5lci1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8aW9uLXNwaW5uZXIgbmFtZT1cImNyZXNjZW50XCIgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9IEBlbHNlIGlmIChoYXNQYXNzd29yZCgpKSB7XG4gICAgICAgICAgICAgIDx2YWwtZm9ybSBbcHJvcHNdPVwicGFzc3dvcmRGb3JtUHJvcHMoKVwiIChvblN1Ym1pdCk9XCJvblBhc3N3b3JkU3VibWl0KCRldmVudClcIiAvPlxuICAgICAgICAgICAgfSBAZWxzZSBpZiAoIWNvZGVTZW50KCkpIHtcbiAgICAgICAgICAgICAgPHZhbC1mb3JtIFtwcm9wc109XCJzZW5kQ29kZUZvcm1Qcm9wcygpXCIgKG9uU3VibWl0KT1cIm9uU2VuZENvZGUoKVwiIC8+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgPHZhbC1mb3JtIFtwcm9wc109XCJjb2RlRm9ybVByb3BzKClcIiAob25TdWJtaXQpPVwib25Db2RlU3VibWl0KCRldmVudClcIiAvPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVzZW5kLXJvd1wiPlxuICAgICAgICAgICAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgICBmaWxsPVwiY2xlYXJcIlxuICAgICAgICAgICAgICAgICAgY29sb3I9XCJkYXJrXCJcbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZm9ybVN0YXRlKCkgPT09ICdXT1JLSU5HJ1wiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25SZXNlbmRDb2RlKClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHt7IHQoJ3Jlc2VuZCcpIH19XG4gICAgICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L3NlY3Rpb24+XG4gICAgICAgIDwvaW9uLWNvbnRlbnQ+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvaW9uLW1vZGFsPlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICAubW9kYWwtZm9ybS1zZWN0aW9uIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAxNnB4O1xuICAgICAgICBwYWRkaW5nLXRvcDogOHB4O1xuICAgICAgfVxuICAgICAgLnJlc2VuZC1yb3cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luLXRvcDogLThweDtcbiAgICAgIH1cbiAgICAgIC5zcGlubmVyLWNlbnRlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBwYWRkaW5nLXRvcDogMzJweDtcbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBEZWxldGVBY2NvdW50TW9kYWxDb21wb25lbnQge1xuICBwcml2YXRlIGF1dGggPSBpbmplY3QoQXV0aFNlcnZpY2UpO1xuICBwcml2YXRlIGVycm9ycyA9IGluamVjdChWYWx0ZWNoRXJyb3JTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSB0b2FzdCA9IGluamVjdChUb2FzdFNlcnZpY2UpO1xuXG4gIC8qKiBOYW1lc3BhY2UgaTE4biBjb24gcXVlIGxhIHZpc3RhIHJlc3VlbHZlIHN1cyB0ZXh0b3MuICovXG4gIEBJbnB1dCgpIGkxOG5OYW1lc3BhY2UgPSBERUZBVUxUX05BTUVTUEFDRTtcblxuICBwcml2YXRlIF9pc09wZW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBzZXQgaXNPcGVuKHZhbHVlOiBib29sZWFuKSB7XG4gICAgY29uc3Qgb3BlbmluZyA9IHZhbHVlICYmICF0aGlzLl9pc09wZW47XG4gICAgdGhpcy5faXNPcGVuID0gdmFsdWU7XG4gICAgaWYgKG9wZW5pbmcpIHtcbiAgICAgIHRoaXMuaGFzUGFzc3dvcmQuc2V0KG51bGwpO1xuICAgICAgdGhpcy5jb2RlU2VudC5zZXQoZmFsc2UpO1xuICAgICAgdGhpcy5mb3JtU3RhdGUuc2V0KENvbXBvbmVudFN0YXRlcy5FTkFCTEVEKTtcbiAgICAgIGZpcnN0VmFsdWVGcm9tKHRoaXMuYXV0aC5nZXRQcm9maWxlKCkpXG4gICAgICAgIC50aGVuKHByb2ZpbGUgPT4gdGhpcy5oYXNQYXNzd29yZC5zZXQocHJvZmlsZS5oYXNQYXNzd29yZCA/PyB0cnVlKSlcbiAgICAgICAgLmNhdGNoKCgpID0+IHRoaXMuaGFzUGFzc3dvcmQuc2V0KHRydWUpKTtcbiAgICB9XG4gIH1cbiAgZ2V0IGlzT3BlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faXNPcGVuO1xuICB9XG5cbiAgQE91dHB1dCgpIGRpc21pc3NlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICByZWFkb25seSBoYXNQYXNzd29yZCA9IHNpZ25hbDxib29sZWFuIHwgbnVsbD4obnVsbCk7XG4gIHJlYWRvbmx5IGNvZGVTZW50ID0gc2lnbmFsKGZhbHNlKTtcbiAgcmVhZG9ubHkgZm9ybVN0YXRlID0gc2lnbmFsPENvbXBvbmVudFN0YXRlPihDb21wb25lbnRTdGF0ZXMuRU5BQkxFRCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5pMThuLnJlZ2lzdGVyRGVmYXVsdHMoREVGQVVMVF9OQU1FU1BBQ0UsIERFTEVURV9BQ0NPVU5UX01PREFMX0kxOE4pO1xuICB9XG5cbiAgdCA9IChrZXk6IHN0cmluZyk6IHN0cmluZyA9PiB0aGlzLmkxOG4udChrZXksIHRoaXMuaTE4bk5hbWVzcGFjZSk7XG5cbiAgcHJpdmF0ZSBzdWJtaXRCdG4odG9rZW46IHN0cmluZywgdGV4dEtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRleHQ6IHRoaXMudCh0ZXh0S2V5KSxcbiAgICAgIHR5cGU6ICdzdWJtaXQnIGFzIGNvbnN0LFxuICAgICAgZXhwYW5kOiAnYmxvY2snIGFzIGNvbnN0LFxuICAgICAgZmlsbDogJ3NvbGlkJyBhcyBjb25zdCxcbiAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICBzaXplOiAnZGVmYXVsdCcgYXMgY29uc3QsXG4gICAgICBzaGFwZTogJ3JvdW5kJyBhcyBjb25zdCxcbiAgICAgIHRva2VuLFxuICAgICAgc3RhdGU6IENvbXBvbmVudFN0YXRlcy5FTkFCTEVELFxuICAgIH07XG4gIH1cblxuICByZWFkb25seSBwYXNzd29yZEZvcm1Qcm9wcyA9IGNvbXB1dGVkPEZvcm1NZXRhZGF0YT4oKCkgPT4gKHtcbiAgICBuYW1lOiB0aGlzLnQoJ3RpdGxlJyksXG4gICAgc3RhdGU6IHRoaXMuZm9ybVN0YXRlKCksXG4gICAgc2VjdGlvbnM6IFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogdGhpcy50KCd3YXJuaW5nUGFzc3dvcmQnKSxcbiAgICAgICAgb3JkZXI6IDAsXG4gICAgICAgIGZpZWxkczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHRva2VuOiAnZGVsZXRlLXBhc3N3b3JkJyxcbiAgICAgICAgICAgIG5hbWU6ICdwYXNzd29yZCcsXG4gICAgICAgICAgICBsYWJlbDogdGhpcy50KCdwYXNzd29yZExhYmVsJyksXG4gICAgICAgICAgICBoaW50OiAnJyxcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyOiB0aGlzLnQoJ3Bhc3N3b3JkUGxhY2Vob2xkZXInKSxcbiAgICAgICAgICAgIHR5cGU6IElucHV0VHlwZS5QQVNTV09SRCxcbiAgICAgICAgICAgIG9yZGVyOiAwLFxuICAgICAgICAgICAgdmFsaWRhdG9yczogW1ZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgICAgICAgZXJyb3JzOiB7IHJlcXVpcmVkOiB0aGlzLnQoJ3Bhc3N3b3JkUmVxdWlyZWQnKSB9LFxuICAgICAgICAgICAgc3RhdGU6IENvbXBvbmVudFN0YXRlcy5FTkFCTEVELFxuICAgICAgICAgIH0gYXMgSW5wdXRNZXRhZGF0YSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBhY3Rpb25zOiB0aGlzLnN1Ym1pdEJ0bignZGVsZXRlLXBhc3N3b3JkLXN1Ym1pdCcsICdjb25maXJtQ3RhJyksXG4gIH0pKTtcblxuICByZWFkb25seSBzZW5kQ29kZUZvcm1Qcm9wcyA9IGNvbXB1dGVkPEZvcm1NZXRhZGF0YT4oKCkgPT4gKHtcbiAgICBuYW1lOiB0aGlzLnQoJ3RpdGxlJyksXG4gICAgc3RhdGU6IHRoaXMuZm9ybVN0YXRlKCksXG4gICAgc2VjdGlvbnM6IFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogdGhpcy50KCd3YXJuaW5nU2VuZENvZGUnKSxcbiAgICAgICAgb3JkZXI6IDAsXG4gICAgICAgIGZpZWxkczogW10sXG4gICAgICB9LFxuICAgIF0sXG4gICAgYWN0aW9uczogdGhpcy5zdWJtaXRCdG4oJ2RlbGV0ZS1zZW5kLWNvZGUtc3VibWl0JywgJ3NlbmRDb2RlQ3RhJyksXG4gIH0pKTtcblxuICByZWFkb25seSBjb2RlRm9ybVByb3BzID0gY29tcHV0ZWQ8Rm9ybU1ldGFkYXRhPigoKSA9PiAoe1xuICAgIG5hbWU6IHRoaXMudCgndGl0bGUnKSxcbiAgICBzdGF0ZTogdGhpcy5mb3JtU3RhdGUoKSxcbiAgICBzZWN0aW9uczogW1xuICAgICAge1xuICAgICAgICBuYW1lOiB0aGlzLnQoJ3dhcm5pbmdFbnRlckNvZGUnKSxcbiAgICAgICAgb3JkZXI6IDAsXG4gICAgICAgIGZpZWxkczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHRva2VuOiAnZGVsZXRlLWNvZGUnLFxuICAgICAgICAgICAgbmFtZTogJ2NvZGUnLFxuICAgICAgICAgICAgbGFiZWw6IHRoaXMudCgnY29kZUxhYmVsJyksXG4gICAgICAgICAgICBoaW50OiAnJyxcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyOiB0aGlzLnQoJ2NvZGVQbGFjZWhvbGRlcicpLFxuICAgICAgICAgICAgdHlwZTogSW5wdXRUeXBlLlRFWFQsXG4gICAgICAgICAgICBvcmRlcjogMCxcbiAgICAgICAgICAgIHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgICAgIGVycm9yczogeyByZXF1aXJlZDogdGhpcy50KCdjb2RlUmVxdWlyZWQnKSB9LFxuICAgICAgICAgICAgc3RhdGU6IENvbXBvbmVudFN0YXRlcy5FTkFCTEVELFxuICAgICAgICAgIH0gYXMgSW5wdXRNZXRhZGF0YSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBhY3Rpb25zOiB0aGlzLnN1Ym1pdEJ0bignZGVsZXRlLWNvZGUtc3VibWl0JywgJ2NvbmZpcm1DdGEnKSxcbiAgfSkpO1xuXG4gIGNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuZGlzbWlzc2VkLmVtaXQoKTtcbiAgfVxuXG4gIGFzeW5jIG9uUGFzc3dvcmRTdWJtaXQoZXZlbnQ6IEZvcm1TdWJtaXQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBwYXNzd29yZCA9IGV2ZW50LmZpZWxkc1sncGFzc3dvcmQnXTtcbiAgICBpZiAoIXBhc3N3b3JkKSB7XG4gICAgICB0aGlzLnRvYXN0LnNob3coe1xuICAgICAgICBtZXNzYWdlOiB0aGlzLnQoJ3Bhc3N3b3JkUmVxdWlyZWQnKSxcbiAgICAgICAgZHVyYXRpb246IDMwMDAsXG4gICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgIHBvc2l0aW9uOiAndG9wJyxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmZvcm1TdGF0ZS5zZXQoQ29tcG9uZW50U3RhdGVzLldPUktJTkcpO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmF1dGguZGVsZXRlQWNjb3VudCh7IHBhc3N3b3JkIH0pKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHRoaXMuZXJyb3JzLmhhbmRsZShlcnIsIHsgY29udGV4dDogJ2RlbGV0ZS1hY2NvdW50LnBhc3N3b3JkJyB9KTtcbiAgICAgIHRoaXMuZm9ybVN0YXRlLnNldChDb21wb25lbnRTdGF0ZXMuRU5BQkxFRCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgb25TZW5kQ29kZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmZvcm1TdGF0ZS5zZXQoQ29tcG9uZW50U3RhdGVzLldPUktJTkcpO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmF1dGguc2VuZERlbGV0ZUFjY291bnRDb2RlKCkpO1xuICAgICAgdGhpcy5jb2RlU2VudC5zZXQodHJ1ZSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aGlzLmVycm9ycy5oYW5kbGUoZXJyLCB7IGNvbnRleHQ6ICdkZWxldGUtYWNjb3VudC5zZW5kLWNvZGUnIH0pO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmZvcm1TdGF0ZS5zZXQoQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIG9uUmVzZW5kQ29kZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmNvZGVTZW50LnNldChmYWxzZSk7XG4gICAgYXdhaXQgdGhpcy5vblNlbmRDb2RlKCk7XG4gIH1cblxuICBhc3luYyBvbkNvZGVTdWJtaXQoZXZlbnQ6IEZvcm1TdWJtaXQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBjb2RlID0gZXZlbnQuZmllbGRzWydjb2RlJ107XG4gICAgaWYgKCFjb2RlKSB7XG4gICAgICB0aGlzLnRvYXN0LnNob3coe1xuICAgICAgICBtZXNzYWdlOiB0aGlzLnQoJ2NvZGVSZXF1aXJlZCcpLFxuICAgICAgICBkdXJhdGlvbjogMzAwMCxcbiAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgcG9zaXRpb246ICd0b3AnLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZm9ybVN0YXRlLnNldChDb21wb25lbnRTdGF0ZXMuV09SS0lORyk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuYXV0aC5kZWxldGVBY2NvdW50KHsgY29kZSB9KSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aGlzLmVycm9ycy5oYW5kbGUoZXJyLCB7IGNvbnRleHQ6ICdkZWxldGUtYWNjb3VudC5jb2RlJyB9KTtcbiAgICAgIHRoaXMuZm9ybVN0YXRlLnNldChDb21wb25lbnRTdGF0ZXMuRU5BQkxFRCk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -118,7 +118,7 @@ export class FieldListComponent {
|
|
|
118
118
|
<ion-button
|
|
119
119
|
class="fl-remove"
|
|
120
120
|
fill="clear"
|
|
121
|
-
color="
|
|
121
|
+
color="dark"
|
|
122
122
|
size="small"
|
|
123
123
|
[attr.aria-label]="removeText()"
|
|
124
124
|
(click)="removeRow($index)"
|
|
@@ -174,7 +174,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
174
174
|
<ion-button
|
|
175
175
|
class="fl-remove"
|
|
176
176
|
fill="clear"
|
|
177
|
-
color="
|
|
177
|
+
color="dark"
|
|
178
178
|
size="small"
|
|
179
179
|
[attr.aria-label]="removeText()"
|
|
180
180
|
(click)="removeRow($index)"
|
|
@@ -218,4 +218,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
218
218
|
}], itemsChange: [{
|
|
219
219
|
type: Output
|
|
220
220
|
}] } });
|
|
221
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2ZpZWxkLWxpc3QvZmllbGQtbGlzdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4sUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBRXBELFFBQVEsQ0FBQyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO0FBRXZDLE1BQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQztBQUU1Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQW1ISCxNQUFNLE9BQU8sa0JBQWtCO0lBRzdCO1FBRlEsU0FBSSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQU1uQywwQkFBMEI7UUFDakIsVUFBSyxHQUFzQixFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUVuRCxtRUFBbUU7UUFDekQsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBbUIsQ0FBQztRQUU1RCxrRUFBa0U7UUFDakQsWUFBTyxHQUFHLE1BQU0s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QUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELE1BQU07UUFDSixNQUFNLEtBQUssR0FBa0IsRUFBRSxDQUFDO1FBQ2hDLEtBQUssTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzVFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBYTtRQUNyQixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFBRSxPQUFPO1FBQzNELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBYSxFQUFFLEtBQXNCLEVBQUUsS0FBc0I7UUFDdkUsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUNsRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4RyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRU8sSUFBSTtRQUNWLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDOytHQW5GVSxrQkFBa0I7bUdBQWxCLGtCQUFrQixvS0E5R25COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0RULG82QkFyRFMsWUFBWSwrQkFBRSxTQUFTLG9QQUFFLE9BQU8sMkpBQUUsUUFBUTs7NEZBK0d6QyxrQkFBa0I7a0JBbEg5QixTQUFTOytCQUNFLGdCQUFnQixjQUNkLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxZQUMzQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9EVDt3REFrRVEsS0FBSztzQkFBYixLQUFLO2dCQUdJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgY29tcHV0ZWQsXG4gIGluamVjdCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElvbkJ1dHRvbiwgSW9uSWNvbiwgSW9uSW5wdXQgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IGFkZEljb25zIH0gZnJvbSAnaW9uaWNvbnMnO1xuaW1wb3J0IHsgYWRkT3V0bGluZSwgdHJhc2hPdXRsaW5lIH0gZnJvbSAnaW9uaWNvbnMvaWNvbnMnO1xuXG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgRmllbGRMaXN0Q29sdW1uLCBGaWVsZExpc3RJdGVtLCBGaWVsZExpc3RNZXRhZGF0YSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgRklFTERfTElTVF9JMThOIH0gZnJvbSAnLi9maWVsZC1saXN0LmkxOG4nO1xuXG5hZGRJY29ucyh7IGFkZE91dGxpbmUsIHRyYXNoT3V0bGluZSB9KTtcblxuY29uc3QgSTE4Tl9OUyA9ICdGaWVsZExpc3QnO1xuXG4vKipcbiAqIGB2YWwtZmllbGQtbGlzdGAg4oCUIGVkaXRvciBkZSBsaXN0YXMgZGUgY2FtcG9zIHJlcGV0aWJsZXMgKHByZW1pb3MsIHJvbmRhcyxcbiAqIGludGVncmFudGVzLCBldGMuKS4gQ2FkYSDDrXRlbSBlcyB1bmEgKipjYXJkKiogY29uIHN1cyBjYW1wb3MgYXBpbGFkb3MgeSB1biBib3TDs25cbiAqIHBhcmEgcXVpdGFybGE7IGFsIHBpZSB1biBib3TDs24gXCJBZ3JlZ2FyXCIuIE1vYmlsZS1maXJzdCAoMSBjb2x1bW5hKSwgZXNjYWxhIGFcbiAqIHZhcmlhcyBjb2x1bW5hcyBwb3IgZmlsYSBlbiBwYW50YWxsYXMgYW5jaGFzLlxuICpcbiAqIE1hbmVqYSBzdSBwcm9waW8gZXN0YWRvIGludGVybm8geSBlbWl0ZSBlbCBhcnJheSBjb21wbGV0byBlbiBjYWRhIGNhbWJpb1xuICogKGBpdGVtc0NoYW5nZWApLiBQYXRyw7NuIG9iamVjdC1maXJzdCAoYEBJbnB1dCgpIHByb3BzYCkuIEF1dG8tcmVnaXN0cmEgaTE4blxuICogKG5hbWVzcGFjZSBgRmllbGRMaXN0YCkgcGFyYSBsb3MgbGFiZWxzIHBvciBkZWZlY3RvIChhZ3JlZ2FyL3F1aXRhci92YWPDrW8pLlxuICpcbiAqIEBleGFtcGxlXG4gKiA8dmFsLWZpZWxkLWxpc3RcbiAqICAgW3Byb3BzXT1cIntcbiAqICAgICBmaWVsZHM6IFtcbiAqICAgICAgIHsgbmFtZTogJ25vbWJyZScsIGxhYmVsOiAnTm9tYnJlJyB9LFxuICogICAgICAgeyBuYW1lOiAnZGVzY3JpcGNpb24nLCBsYWJlbDogJ0Rlc2NyaXBjacOzbicgfVxuICogICAgIF0sXG4gKiAgICAgaXRlbXM6IHByZW1pb3MsXG4gKiAgICAgaXRlbUxhYmVsOiAnUHJlbWlvIHtufScsXG4gKiAgICAgYWRkTGFiZWw6ICdBZ3JlZ2FyIHByZW1pbydcbiAqICAgfVwiXG4gKiAgIChpdGVtc0NoYW5nZSk9XCJwcmVtaW9zID0gJGV2ZW50XCIgLz5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWZpZWxkLWxpc3QnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJb25CdXR0b24sIElvbkljb24sIElvbklucHV0XSxcbiAgdGVtcGxhdGU6IGBcbiAgICBAaWYgKHJvd3MoKS5sZW5ndGggPT09IDApIHtcbiAgICAgIDxwIGNsYXNzPVwiZmwtZW1wdHlcIj57eyBlbXB0eVRleHQoKSB9fTwvcD5cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJmbC1yb3dzXCI+XG4gICAgICAgIEBmb3IgKHJvdyBvZiByb3dzKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbC1jYXJkXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmwtY2FyZF9faGVhZFwiPlxuICAgICAgICAgICAgICBAaWYgKGl0ZW1MYWJlbCgpOyBhcyBsYWJlbCkge1xuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmwtY2FyZF9fbGFiZWxcIj57eyByb3dMYWJlbChsYWJlbCwgJGluZGV4KSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZmwtcmVtb3ZlXCJcbiAgICAgICAgICAgICAgICBmaWxsPVwiY2xlYXJcIlxuICAgICAgICAgICAgICAgIGNvbG9yPVwibWVkaXVtXCJcbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicmVtb3ZlVGV4dCgpXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlUm93KCRpbmRleClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJpY29uLW9ubHlcIiBuYW1lPVwidHJhc2gtb3V0bGluZVwiIC8+XG4gICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmwtZmllbGRzXCI+XG4gICAgICAgICAgICAgIEBmb3IgKGZpZWxkIG9mIGZpZWxkcygpOyB0cmFjayBmaWVsZC5uYW1lKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsLWZpZWxkXCI+XG4gICAgICAgICAgICAgICAgICA8aW9uLWlucHV0XG4gICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJmaWVsZC5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsUGxhY2VtZW50PVwic3RhY2tlZFwiXG4gICAgICAgICAgICAgICAgICAgIGZpbGw9XCJvdXRsaW5lXCJcbiAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwiZmllbGQudHlwZSA9PT0gJ251bWJlcicgPyAnbnVtYmVyJyA6ICd0ZXh0J1wiXG4gICAgICAgICAgICAgICAgICAgIFtpbnB1dG1vZGVdPVwiZmllbGQuaW5wdXRtb2RlID8/IChmaWVsZC50eXBlID09PSAnbnVtYmVyJyA/ICdudW1lcmljJyA6IG51bGwpXCJcbiAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImZpZWxkLnBsYWNlaG9sZGVyID8/ICcnXCJcbiAgICAgICAgICAgICAgICAgICAgW21heGxlbmd0aF09XCJmaWVsZC5tYXhsZW5ndGggPz8gbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgIFttaW5dPVwiZmllbGQubWluID8/IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwicm93W2ZpZWxkLm5hbWVdXCJcbiAgICAgICAgICAgICAgICAgICAgKGlvbklucHV0KT1cInVwZGF0ZUZpZWxkKCRpbmRleCwgZmllbGQsICRldmVudC5kZXRhaWwudmFsdWUgPz8gJycpXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICB9XG5cbiAgICBAaWYgKGNhbkFkZCgpKSB7XG4gICAgICA8aW9uLWJ1dHRvbiBjbGFzcz1cImZsLWFkZFwiIGZpbGw9XCJvdXRsaW5lXCIgY29sb3I9XCJkYXJrXCIgc2l6ZT1cImRlZmF1bHRcIiBzaGFwZT1cInJvdW5kXCIgKGNsaWNrKT1cImFkZFJvdygpXCI+XG4gICAgICAgIDxpb24taWNvbiBbbmFtZV09XCJhZGRJY29uKClcIiBzbG90PVwic3RhcnRcIiAvPlxuICAgICAgICB7eyBhZGRUZXh0KCkgfX1cbiAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICB9XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIDpob3N0IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgICAuZmwtZW1wdHkge1xuICAgICAgICBtYXJnaW46IDAgMCAxMnB4O1xuICAgICAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgfVxuICAgICAgLmZsLXJvd3Mge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDEycHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgICB9XG4gICAgICAuZmwtY2FyZCB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWlvbi1ib3JkZXItY29sb3IsIHZhcigtLWlvbi1jb2xvci1zdGVwLTE1MCwgI2UwZTBlMCkpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pb24tY2FyZC1iYWNrZ3JvdW5kLCB2YXIoLS1pb24tY29sb3Itc3RlcC01MCwgI2ZiZmJmYikpO1xuICAgICAgICBwYWRkaW5nOiAxMnB4IDE0cHggMTRweDtcbiAgICAgIH1cbiAgICAgIC5mbC1jYXJkX19oZWFkIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBtaW4taGVpZ2h0OiAyOHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gICAgICB9XG4gICAgICAuZmwtY2FyZF9fbGFiZWwge1xuICAgICAgICBmb250LXNpemU6IDAuODEyNXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrLXNoYWRlLCAjNmI2ZTc2KTtcbiAgICAgIH1cbiAgICAgIC5mbC1yZW1vdmUge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIC0tcGFkZGluZy1zdGFydDogNnB4O1xuICAgICAgICAtLXBhZGRpbmctZW5kOiA2cHg7XG4gICAgICAgIGhlaWdodDogMzJweDtcbiAgICAgIH1cbiAgICAgIC8qIENhbXBvczogMSBjb2x1bW5hIGVuIG3Ds3ZpbCwgdmFyaWFzIGVuIGFuY2hvIChhdXRvLWZpbGwsIG1pbiAyMDBweCkuICovXG4gICAgICAuZmwtZmllbGRzIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heChtaW4oMTAwJSwgMjAwcHgpLCAxZnIpKTtcbiAgICAgICAgZ2FwOiAxMHB4IDEycHg7XG4gICAgICB9XG4gICAgICAuZmwtZmllbGQgaW9uLWlucHV0IHtcbiAgICAgICAgLS1ib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgICAgfVxuICAgICAgLmZsLWFkZCB7XG4gICAgICAgIC0tYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRmllbGRMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmkxOG4ucmVnaXN0ZXJEZWZhdWx0cyhJMThOX05TLCBGSUVMRF9MSVNUX0kxOE4pO1xuICB9XG5cbiAgLyoqIFByb3BzIG9iamVjdC1maXJzdC4gKi9cbiAgQElucHV0KCkgcHJvcHM6IEZpZWxkTGlzdE1ldGFkYXRhID0geyBmaWVsZHM6IFtdIH07XG5cbiAgLyoqIEVtaXRlIGVsIGFycmF5IGNvbXBsZXRvIGRlIMOtdGVtcyBlbiBjYWRhIGFkZC9yZW1vdmUvZWRpY2nDs24uICovXG4gIEBPdXRwdXQoKSBpdGVtc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RmllbGRMaXN0SXRlbVtdPigpO1xuXG4gIC8qKiBFc3RhZG8gaW50ZXJubyBkZSBsYXMgZmlsYXMgKHNlIHNpZW1icmEgZGVzZGUgcHJvcHMuaXRlbXMpLiAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHJvd3NTaWcgPSBzaWduYWw8RmllbGRMaXN0SXRlbVtdPihbXSk7XG4gIHJlYWRvbmx5IHJvd3MgPSB0aGlzLnJvd3NTaWcuYXNSZWFkb25seSgpO1xuXG4gIHJlYWRvbmx5IGZpZWxkcyA9IGNvbXB1dGVkPEZpZWxkTGlzdENvbHVtbltdPigoKSA9PiB0aGlzLnByb3BzLmZpZWxkcyA/PyBbXSk7XG4gIHJlYWRvbmx5IGl0ZW1MYWJlbCA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4gdGhpcy5wcm9wcy5pdGVtTGFiZWwgPz8gJycpO1xuICByZWFkb25seSBhZGRJY29uID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiB0aGlzLnByb3BzLmFkZEljb24gPz8gJ2FkZC1vdXRsaW5lJyk7XG5cbiAgcmVhZG9ubHkgYWRkVGV4dCA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4ge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuYWRkTGFiZWwgPz8gdGhpcy50KCdhZGQnKTtcbiAgfSk7XG4gIHJlYWRvbmx5IHJlbW92ZVRleHQgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+IHtcbiAgICB0aGlzLmkxOG4ubGFuZygpO1xuICAgIHJldHVybiB0aGlzLnByb3BzLnJlbW92ZUxhYmVsID8/IHRoaXMudCgncmVtb3ZlJyk7XG4gIH0pO1xuICByZWFkb25seSBlbXB0eVRleHQgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+IHtcbiAgICB0aGlzLmkxOG4ubGFuZygpO1xuICAgIHJldHVybiB0aGlzLnByb3BzLmVtcHR5VGV4dCA/PyB0aGlzLnQoJ2VtcHR5Jyk7XG4gIH0pO1xuXG4gIC8qKiBQdWVkZSBhZ3JlZ2FyIHNpIG5vIHNlIGFsY2FuesOzIGVsIG3DoXhpbW8uICovXG4gIHJlYWRvbmx5IGNhbkFkZCA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHtcbiAgICBjb25zdCBtYXggPSB0aGlzLnByb3BzLm1heDtcbiAgICByZXR1cm4gbWF4ID09IG51bGwgfHwgdGhpcy5yb3dzU2lnKCkubGVuZ3RoIDwgbWF4O1xuICB9KTtcblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgLy8gUmUtc2llbWJyYSBzb2xvIHNpIGNhbWJpw7MgbGEgcmVmZXJlbmNpYSBkZSBpdGVtcyBlbnRyYW50ZSAoZXZpdGEgcGlzYXIgbG9cbiAgICAvLyBlZGl0YWRvIHBvciBlbCB1c2VyIGVuIGNhZGEgQ0QpLiBFbCBjb25zdW1lciBjb250cm9sYSBjdcOhbmRvIHJlc2VtYnJhclxuICAgIC8vIHBhc2FuZG8gdW5hIG51ZXZhIHJlZmVyZW5jaWEgZGUgYXJyYXkuXG4gICAgaWYgKGNoYW5nZXNbJ3Byb3BzJ10pIHtcbiAgICAgIGNvbnN0IHByZXYgPSBjaGFuZ2VzWydwcm9wcyddLnByZXZpb3VzVmFsdWUgYXMgRmllbGRMaXN0TWV0YWRhdGEgfCB1bmRlZmluZWQ7XG4gICAgICBjb25zdCBjdXJyID0gY2hhbmdlc1sncHJvcHMnXS5jdXJyZW50VmFsdWUgYXMgRmllbGRMaXN0TWV0YWRhdGEgfCB1bmRlZmluZWQ7XG4gICAgICBpZiAoY2hhbmdlc1sncHJvcHMnXS5maXJzdENoYW5nZSB8fCBwcmV2Py5pdGVtcyAhPT0gY3Vycj8uaXRlbXMpIHtcbiAgICAgICAgdGhpcy5yb3dzU2lnLnNldCgoY3Vycj8uaXRlbXMgPz8gW10pLm1hcChpdCA9PiAoeyAuLi5pdCB9KSkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdChrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KGtleSwgSTE4Tl9OUyk7XG4gIH1cblxuICAvKiogUmVlbXBsYXphIGB7bn1gIHBvciBlbCBuw7ptZXJvIGRlIGZpbGEgKDEtYmFzZWQpIGVuIGVsIHLDs3R1bG8gZGUgbGEgY2FyZC4gKi9cbiAgcm93TGFiZWwodGVtcGxhdGU6IHN0cmluZywgaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRlbXBsYXRlLnJlcGxhY2UoJ3tufScsIFN0cmluZyhpbmRleCArIDEpKTtcbiAgfVxuXG4gIGFkZFJvdygpOiB2b2lkIHtcbiAgICBjb25zdCBibGFuazogRmllbGRMaXN0SXRlbSA9IHt9O1xuICAgIGZvciAoY29uc3QgZiBvZiB0aGlzLmZpZWxkcygpKSBibGFua1tmLm5hbWVdID0gZi50eXBlID09PSAnbnVtYmVyJyA/IDAgOiAnJztcbiAgICB0aGlzLnJvd3NTaWcudXBkYXRlKGxpc3QgPT4gWy4uLmxpc3QsIGJsYW5rXSk7XG4gICAgdGhpcy5lbWl0KCk7XG4gIH1cblxuICByZW1vdmVSb3coaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICh0aGlzLnJvd3NTaWcoKS5sZW5ndGggPD0gKHRoaXMucHJvcHMubWluID8/IDApKSByZXR1cm47XG4gICAgdGhpcy5yb3dzU2lnLnVwZGF0ZShsaXN0ID0+IGxpc3QuZmlsdGVyKChfLCBpKSA9PiBpICE9PSBpbmRleCkpO1xuICAgIHRoaXMuZW1pdCgpO1xuICB9XG5cbiAgdXBkYXRlRmllbGQoaW5kZXg6IG51bWJlciwgZmllbGQ6IEZpZWxkTGlzdENvbHVtbiwgdmFsdWU6IHN0cmluZyB8IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IG5leHQgPSBmaWVsZC50eXBlID09PSAnbnVtYmVyJyA/IE51bWJlcih2YWx1ZSkgfHwgMCA6IHZhbHVlO1xuICAgIHRoaXMucm93c1NpZy51cGRhdGUobGlzdCA9PiBsaXN0Lm1hcCgocm93LCBpKSA9PiAoaSA9PT0gaW5kZXggPyB7IC4uLnJvdywgW2ZpZWxkLm5hbWVdOiBuZXh0IH0gOiByb3cpKSk7XG4gICAgdGhpcy5lbWl0KCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pdGVtc0NoYW5nZS5lbWl0KHRoaXMucm93c1NpZygpLm1hcChyID0+ICh7IC4uLnIgfSkpKTtcbiAgfVxufVxuIl19
|
|
221
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2ZpZWxkLWxpc3QvZmllbGQtbGlzdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4sUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBRXBELFFBQVEsQ0FBQyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO0FBRXZDLE1BQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQztBQUU1Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQW1ISCxNQUFNLE9BQU8sa0JBQWtCO0lBRzdCO1FBRlEsU0FBSSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQU1uQywwQkFBMEI7UUFDakIsVUFBSyxHQUFzQixFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUVuRCxtRUFBbUU7UUFDekQsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBbUIsQ0FBQztRQUU1RCxrRUFBa0U7UUFDakQsWUFBTyxHQUFHLE1BQU0s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QUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELE1BQU07UUFDSixNQUFNLEtBQUssR0FBa0IsRUFBRSxDQUFDO1FBQ2hDLEtBQUssTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzVFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBYTtRQUNyQixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFBRSxPQUFPO1FBQzNELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBYSxFQUFFLEtBQXNCLEVBQUUsS0FBc0I7UUFDdkUsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUNsRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4RyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRU8sSUFBSTtRQUNWLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDOytHQW5GVSxrQkFBa0I7bUdBQWxCLGtCQUFrQixvS0E5R25COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0RULG82QkFyRFMsWUFBWSwrQkFBRSxTQUFTLG9QQUFFLE9BQU8sMkpBQUUsUUFBUTs7NEZBK0d6QyxrQkFBa0I7a0JBbEg5QixTQUFTOytCQUNFLGdCQUFnQixjQUNkLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxZQUMzQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9EVDt3REFrRVEsS0FBSztzQkFBYixLQUFLO2dCQUdJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgY29tcHV0ZWQsXG4gIGluamVjdCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElvbkJ1dHRvbiwgSW9uSWNvbiwgSW9uSW5wdXQgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IGFkZEljb25zIH0gZnJvbSAnaW9uaWNvbnMnO1xuaW1wb3J0IHsgYWRkT3V0bGluZSwgdHJhc2hPdXRsaW5lIH0gZnJvbSAnaW9uaWNvbnMvaWNvbnMnO1xuXG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgRmllbGRMaXN0Q29sdW1uLCBGaWVsZExpc3RJdGVtLCBGaWVsZExpc3RNZXRhZGF0YSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgRklFTERfTElTVF9JMThOIH0gZnJvbSAnLi9maWVsZC1saXN0LmkxOG4nO1xuXG5hZGRJY29ucyh7IGFkZE91dGxpbmUsIHRyYXNoT3V0bGluZSB9KTtcblxuY29uc3QgSTE4Tl9OUyA9ICdGaWVsZExpc3QnO1xuXG4vKipcbiAqIGB2YWwtZmllbGQtbGlzdGAg4oCUIGVkaXRvciBkZSBsaXN0YXMgZGUgY2FtcG9zIHJlcGV0aWJsZXMgKHByZW1pb3MsIHJvbmRhcyxcbiAqIGludGVncmFudGVzLCBldGMuKS4gQ2FkYSDDrXRlbSBlcyB1bmEgKipjYXJkKiogY29uIHN1cyBjYW1wb3MgYXBpbGFkb3MgeSB1biBib3TDs25cbiAqIHBhcmEgcXVpdGFybGE7IGFsIHBpZSB1biBib3TDs24gXCJBZ3JlZ2FyXCIuIE1vYmlsZS1maXJzdCAoMSBjb2x1bW5hKSwgZXNjYWxhIGFcbiAqIHZhcmlhcyBjb2x1bW5hcyBwb3IgZmlsYSBlbiBwYW50YWxsYXMgYW5jaGFzLlxuICpcbiAqIE1hbmVqYSBzdSBwcm9waW8gZXN0YWRvIGludGVybm8geSBlbWl0ZSBlbCBhcnJheSBjb21wbGV0byBlbiBjYWRhIGNhbWJpb1xuICogKGBpdGVtc0NoYW5nZWApLiBQYXRyw7NuIG9iamVjdC1maXJzdCAoYEBJbnB1dCgpIHByb3BzYCkuIEF1dG8tcmVnaXN0cmEgaTE4blxuICogKG5hbWVzcGFjZSBgRmllbGRMaXN0YCkgcGFyYSBsb3MgbGFiZWxzIHBvciBkZWZlY3RvIChhZ3JlZ2FyL3F1aXRhci92YWPDrW8pLlxuICpcbiAqIEBleGFtcGxlXG4gKiA8dmFsLWZpZWxkLWxpc3RcbiAqICAgW3Byb3BzXT1cIntcbiAqICAgICBmaWVsZHM6IFtcbiAqICAgICAgIHsgbmFtZTogJ25vbWJyZScsIGxhYmVsOiAnTm9tYnJlJyB9LFxuICogICAgICAgeyBuYW1lOiAnZGVzY3JpcGNpb24nLCBsYWJlbDogJ0Rlc2NyaXBjacOzbicgfVxuICogICAgIF0sXG4gKiAgICAgaXRlbXM6IHByZW1pb3MsXG4gKiAgICAgaXRlbUxhYmVsOiAnUHJlbWlvIHtufScsXG4gKiAgICAgYWRkTGFiZWw6ICdBZ3JlZ2FyIHByZW1pbydcbiAqICAgfVwiXG4gKiAgIChpdGVtc0NoYW5nZSk9XCJwcmVtaW9zID0gJGV2ZW50XCIgLz5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWZpZWxkLWxpc3QnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJb25CdXR0b24sIElvbkljb24sIElvbklucHV0XSxcbiAgdGVtcGxhdGU6IGBcbiAgICBAaWYgKHJvd3MoKS5sZW5ndGggPT09IDApIHtcbiAgICAgIDxwIGNsYXNzPVwiZmwtZW1wdHlcIj57eyBlbXB0eVRleHQoKSB9fTwvcD5cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJmbC1yb3dzXCI+XG4gICAgICAgIEBmb3IgKHJvdyBvZiByb3dzKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbC1jYXJkXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmwtY2FyZF9faGVhZFwiPlxuICAgICAgICAgICAgICBAaWYgKGl0ZW1MYWJlbCgpOyBhcyBsYWJlbCkge1xuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmwtY2FyZF9fbGFiZWxcIj57eyByb3dMYWJlbChsYWJlbCwgJGluZGV4KSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZmwtcmVtb3ZlXCJcbiAgICAgICAgICAgICAgICBmaWxsPVwiY2xlYXJcIlxuICAgICAgICAgICAgICAgIGNvbG9yPVwiZGFya1wiXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInJlbW92ZVRleHQoKVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZVJvdygkaW5kZXgpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxpb24taWNvbiBzbG90PVwiaWNvbi1vbmx5XCIgbmFtZT1cInRyYXNoLW91dGxpbmVcIiAvPlxuICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsLWZpZWxkc1wiPlxuICAgICAgICAgICAgICBAZm9yIChmaWVsZCBvZiBmaWVsZHMoKTsgdHJhY2sgZmllbGQubmFtZSkge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbC1maWVsZFwiPlxuICAgICAgICAgICAgICAgICAgPGlvbi1pbnB1dFxuICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiZmllbGQubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBsYWJlbFBsYWNlbWVudD1cInN0YWNrZWRcIlxuICAgICAgICAgICAgICAgICAgICBmaWxsPVwib3V0bGluZVwiXG4gICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cImZpZWxkLnR5cGUgPT09ICdudW1iZXInID8gJ251bWJlcicgOiAndGV4dCdcIlxuICAgICAgICAgICAgICAgICAgICBbaW5wdXRtb2RlXT1cImZpZWxkLmlucHV0bW9kZSA/PyAoZmllbGQudHlwZSA9PT0gJ251bWJlcicgPyAnbnVtZXJpYycgOiBudWxsKVwiXG4gICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJmaWVsZC5wbGFjZWhvbGRlciA/PyAnJ1wiXG4gICAgICAgICAgICAgICAgICAgIFttYXhsZW5ndGhdPVwiZmllbGQubWF4bGVuZ3RoID8/IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICBbbWluXT1cImZpZWxkLm1pbiA/PyBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInJvd1tmaWVsZC5uYW1lXVwiXG4gICAgICAgICAgICAgICAgICAgIChpb25JbnB1dCk9XCJ1cGRhdGVGaWVsZCgkaW5kZXgsIGZpZWxkLCAkZXZlbnQuZGV0YWlsLnZhbHVlID8/ICcnKVwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgQGlmIChjYW5BZGQoKSkge1xuICAgICAgPGlvbi1idXR0b24gY2xhc3M9XCJmbC1hZGRcIiBmaWxsPVwib3V0bGluZVwiIGNvbG9yPVwiZGFya1wiIHNpemU9XCJkZWZhdWx0XCIgc2hhcGU9XCJyb3VuZFwiIChjbGljayk9XCJhZGRSb3coKVwiPlxuICAgICAgICA8aW9uLWljb24gW25hbWVdPVwiYWRkSWNvbigpXCIgc2xvdD1cInN0YXJ0XCIgLz5cbiAgICAgICAge3sgYWRkVGV4dCgpIH19XG4gICAgICA8L2lvbi1idXR0b24+XG4gICAgfVxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgICAgLmZsLWVtcHR5IHtcbiAgICAgICAgbWFyZ2luOiAwIDAgMTJweDtcbiAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrKTtcbiAgICAgIH1cbiAgICAgIC5mbC1yb3dzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAxMnB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgICAgfVxuICAgICAgLmZsLWNhcmQge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1pb24tYm9yZGVyLWNvbG9yLCB2YXIoLS1pb24tY29sb3Itc3RlcC0xNTAsICNlMGUwZTApKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNhcmQtYmFja2dyb3VuZCwgdmFyKC0taW9uLWNvbG9yLXN0ZXAtNTAsICNmYmZiZmIpKTtcbiAgICAgICAgcGFkZGluZzogMTJweCAxNHB4IDE0cHg7XG4gICAgICB9XG4gICAgICAuZmwtY2FyZF9faGVhZCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgbWluLWhlaWdodDogMjhweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgICAgfVxuICAgICAgLmZsLWNhcmRfX2xhYmVsIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjgxMjVyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyay1zaGFkZSwgIzZiNmU3Nik7XG4gICAgICB9XG4gICAgICAuZmwtcmVtb3ZlIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAtLXBhZGRpbmctc3RhcnQ6IDZweDtcbiAgICAgICAgLS1wYWRkaW5nLWVuZDogNnB4O1xuICAgICAgICBoZWlnaHQ6IDMycHg7XG4gICAgICB9XG4gICAgICAvKiBDYW1wb3M6IDEgY29sdW1uYSBlbiBtw7N2aWwsIHZhcmlhcyBlbiBhbmNobyAoYXV0by1maWxsLCBtaW4gMjAwcHgpLiAqL1xuICAgICAgLmZsLWZpZWxkcyB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgobWluKDEwMCUsIDIwMHB4KSwgMWZyKSk7XG4gICAgICAgIGdhcDogMTBweCAxMnB4O1xuICAgICAgfVxuICAgICAgLmZsLWZpZWxkIGlvbi1pbnB1dCB7XG4gICAgICAgIC0tYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAgIH1cbiAgICAgIC5mbC1hZGQge1xuICAgICAgICAtLWJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZpZWxkTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5pMThuLnJlZ2lzdGVyRGVmYXVsdHMoSTE4Tl9OUywgRklFTERfTElTVF9JMThOKTtcbiAgfVxuXG4gIC8qKiBQcm9wcyBvYmplY3QtZmlyc3QuICovXG4gIEBJbnB1dCgpIHByb3BzOiBGaWVsZExpc3RNZXRhZGF0YSA9IHsgZmllbGRzOiBbXSB9O1xuXG4gIC8qKiBFbWl0ZSBlbCBhcnJheSBjb21wbGV0byBkZSDDrXRlbXMgZW4gY2FkYSBhZGQvcmVtb3ZlL2VkaWNpw7NuLiAqL1xuICBAT3V0cHV0KCkgaXRlbXNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEZpZWxkTGlzdEl0ZW1bXT4oKTtcblxuICAvKiogRXN0YWRvIGludGVybm8gZGUgbGFzIGZpbGFzIChzZSBzaWVtYnJhIGRlc2RlIHByb3BzLml0ZW1zKS4gKi9cbiAgcHJpdmF0ZSByZWFkb25seSByb3dzU2lnID0gc2lnbmFsPEZpZWxkTGlzdEl0ZW1bXT4oW10pO1xuICByZWFkb25seSByb3dzID0gdGhpcy5yb3dzU2lnLmFzUmVhZG9ubHkoKTtcblxuICByZWFkb25seSBmaWVsZHMgPSBjb21wdXRlZDxGaWVsZExpc3RDb2x1bW5bXT4oKCkgPT4gdGhpcy5wcm9wcy5maWVsZHMgPz8gW10pO1xuICByZWFkb25seSBpdGVtTGFiZWwgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+IHRoaXMucHJvcHMuaXRlbUxhYmVsID8/ICcnKTtcbiAgcmVhZG9ubHkgYWRkSWNvbiA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4gdGhpcy5wcm9wcy5hZGRJY29uID8/ICdhZGQtb3V0bGluZScpO1xuXG4gIHJlYWRvbmx5IGFkZFRleHQgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+IHtcbiAgICB0aGlzLmkxOG4ubGFuZygpO1xuICAgIHJldHVybiB0aGlzLnByb3BzLmFkZExhYmVsID8/IHRoaXMudCgnYWRkJyk7XG4gIH0pO1xuICByZWFkb25seSByZW1vdmVUZXh0ID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5yZW1vdmVMYWJlbCA/PyB0aGlzLnQoJ3JlbW92ZScpO1xuICB9KTtcbiAgcmVhZG9ubHkgZW1wdHlUZXh0ID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5lbXB0eVRleHQgPz8gdGhpcy50KCdlbXB0eScpO1xuICB9KTtcblxuICAvKiogUHVlZGUgYWdyZWdhciBzaSBubyBzZSBhbGNhbnrDsyBlbCBtw6F4aW1vLiAqL1xuICByZWFkb25seSBjYW5BZGQgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB7XG4gICAgY29uc3QgbWF4ID0gdGhpcy5wcm9wcy5tYXg7XG4gICAgcmV0dXJuIG1heCA9PSBudWxsIHx8IHRoaXMucm93c1NpZygpLmxlbmd0aCA8IG1heDtcbiAgfSk7XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIC8vIFJlLXNpZW1icmEgc29sbyBzaSBjYW1iacOzIGxhIHJlZmVyZW5jaWEgZGUgaXRlbXMgZW50cmFudGUgKGV2aXRhIHBpc2FyIGxvXG4gICAgLy8gZWRpdGFkbyBwb3IgZWwgdXNlciBlbiBjYWRhIENEKS4gRWwgY29uc3VtZXIgY29udHJvbGEgY3XDoW5kbyByZXNlbWJyYXJcbiAgICAvLyBwYXNhbmRvIHVuYSBudWV2YSByZWZlcmVuY2lhIGRlIGFycmF5LlxuICAgIGlmIChjaGFuZ2VzWydwcm9wcyddKSB7XG4gICAgICBjb25zdCBwcmV2ID0gY2hhbmdlc1sncHJvcHMnXS5wcmV2aW91c1ZhbHVlIGFzIEZpZWxkTGlzdE1ldGFkYXRhIHwgdW5kZWZpbmVkO1xuICAgICAgY29uc3QgY3VyciA9IGNoYW5nZXNbJ3Byb3BzJ10uY3VycmVudFZhbHVlIGFzIEZpZWxkTGlzdE1ldGFkYXRhIHwgdW5kZWZpbmVkO1xuICAgICAgaWYgKGNoYW5nZXNbJ3Byb3BzJ10uZmlyc3RDaGFuZ2UgfHwgcHJldj8uaXRlbXMgIT09IGN1cnI/Lml0ZW1zKSB7XG4gICAgICAgIHRoaXMucm93c1NpZy5zZXQoKGN1cnI/Lml0ZW1zID8/IFtdKS5tYXAoaXQgPT4gKHsgLi4uaXQgfSkpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHQoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmkxOG4udChrZXksIEkxOE5fTlMpO1xuICB9XG5cbiAgLyoqIFJlZW1wbGF6YSBge259YCBwb3IgZWwgbsO6bWVybyBkZSBmaWxhICgxLWJhc2VkKSBlbiBlbCByw7N0dWxvIGRlIGxhIGNhcmQuICovXG4gIHJvd0xhYmVsKHRlbXBsYXRlOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiB0ZW1wbGF0ZS5yZXBsYWNlKCd7bn0nLCBTdHJpbmcoaW5kZXggKyAxKSk7XG4gIH1cblxuICBhZGRSb3coKTogdm9pZCB7XG4gICAgY29uc3QgYmxhbms6IEZpZWxkTGlzdEl0ZW0gPSB7fTtcbiAgICBmb3IgKGNvbnN0IGYgb2YgdGhpcy5maWVsZHMoKSkgYmxhbmtbZi5uYW1lXSA9IGYudHlwZSA9PT0gJ251bWJlcicgPyAwIDogJyc7XG4gICAgdGhpcy5yb3dzU2lnLnVwZGF0ZShsaXN0ID0+IFsuLi5saXN0LCBibGFua10pO1xuICAgIHRoaXMuZW1pdCgpO1xuICB9XG5cbiAgcmVtb3ZlUm93KGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yb3dzU2lnKCkubGVuZ3RoIDw9ICh0aGlzLnByb3BzLm1pbiA/PyAwKSkgcmV0dXJuO1xuICAgIHRoaXMucm93c1NpZy51cGRhdGUobGlzdCA9PiBsaXN0LmZpbHRlcigoXywgaSkgPT4gaSAhPT0gaW5kZXgpKTtcbiAgICB0aGlzLmVtaXQoKTtcbiAgfVxuXG4gIHVwZGF0ZUZpZWxkKGluZGV4OiBudW1iZXIsIGZpZWxkOiBGaWVsZExpc3RDb2x1bW4sIHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBuZXh0ID0gZmllbGQudHlwZSA9PT0gJ251bWJlcicgPyBOdW1iZXIodmFsdWUpIHx8IDAgOiB2YWx1ZTtcbiAgICB0aGlzLnJvd3NTaWcudXBkYXRlKGxpc3QgPT4gbGlzdC5tYXAoKHJvdywgaSkgPT4gKGkgPT09IGluZGV4ID8geyAuLi5yb3csIFtmaWVsZC5uYW1lXTogbmV4dCB9IDogcm93KSkpO1xuICAgIHRoaXMuZW1pdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0KCk6IHZvaWQge1xuICAgIHRoaXMuaXRlbXNDaGFuZ2UuZW1pdCh0aGlzLnJvd3NTaWcoKS5tYXAociA9PiAoeyAuLi5yIH0pKSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -659,7 +659,7 @@ export class FormComponent {
|
|
|
659
659
|
</div>
|
|
660
660
|
}
|
|
661
661
|
@if (props.showDividers !== false) {
|
|
662
|
-
<val-divider [props]="{ fill: 'solid', size: 'medium', color: '
|
|
662
|
+
<val-divider [props]="{ fill: 'solid', size: 'medium', color: 'dark' }"></val-divider>
|
|
663
663
|
}
|
|
664
664
|
<ng-content></ng-content>
|
|
665
665
|
</div>
|
|
@@ -834,7 +834,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
834
834
|
</div>
|
|
835
835
|
}
|
|
836
836
|
@if (props.showDividers !== false) {
|
|
837
|
-
<val-divider [props]="{ fill: 'solid', size: 'medium', color: '
|
|
837
|
+
<val-divider [props]="{ fill: 'solid', size: 'medium', color: 'dark' }"></val-divider>
|
|
838
838
|
}
|
|
839
839
|
<ng-content></ng-content>
|
|
840
840
|
</div>
|
|
@@ -861,4 +861,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
861
861
|
}], onSelectChange: [{
|
|
862
862
|
type: Output
|
|
863
863
|
}] } });
|
|
864
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2Zvcm0vZm9ybS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxTQUFTLEVBR1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBRU4sTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXVDLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFMUYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBRXhGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxhQUFhLEVB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QiwyQkFBMkI7d0JBQzNCLG1CQUFtQjt3QkFDbkIsc0JBQXNCO3dCQUN0QiwyQkFBMkI7d0JBQzNCLG1CQUFtQjtxQkFDcEIsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErSVQ7eUdBS0QsS0FBSztzQkFESixLQUFLO2dCQUlOLFFBQVE7c0JBRFAsTUFBTTtnQkFJUCxhQUFhO3NCQURaLE1BQU07Z0JBSVAsU0FBUztzQkFEUixNQUFNO2dCQUlQLGNBQWM7c0JBRGIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIERvQ2hlY2ssXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIGluamVjdCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4vaTE4bi5zZXJ2aWNlJztcbmltcG9ydCB7IHN1Z2dlc3RFbWFpbEZpeCB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Zvcm1zL2VtYWlsLXN1Z2dlc3Rpb24nO1xuaW1wb3J0IHsgaXNBdEVuZCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC91dGlscy9kb20nO1xuaW1wb3J0IHsgRGlzcGxheUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2Rpc3BsYXkvZGlzcGxheS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGl2aWRlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2RpdmlkZXIvZGl2aWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGl0bGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy90aXRsZS90aXRsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uR3JvdXBDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvYnV0dG9uLWdyb3VwL2J1dHRvbi1ncm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2hlY2tJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9jaGVjay1pbnB1dC9jaGVjay1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tbWVudElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2NvbW1lbnQtaW5wdXQvY29tbWVudC1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0ZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2RhdGUtaW5wdXQvZGF0ZS1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0ZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0ZVBpY2tlck1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2RhdGUtcGlja2VyL3R5cGVzJztcbmltcG9ydCB7IEZpbGVJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9maWxlLWlucHV0L2ZpbGUtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEhpbnRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvaGludC9oaW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOdW1iZXJGcm9tVG9Db21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvbnVtYmVyLWZyb20tdG8vbnVtYmVyLWZyb20tdG8uY29tcG9uZW50JztcbmltcG9ydCB7IFBhc3N3b3JkSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvcGFzc3dvcmQtaW5wdXQvcGFzc3dvcmQtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFBpbklucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3Bpbi1pbnB1dC9waW4taW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFJhZGlvSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvcmFkaW8taW5wdXQvcmFkaW8taW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFNlYXJjaFNlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3NlbGVjdC1pbnB1dC9zZWxlY3QtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFNlbGVjdFNlYXJjaENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9zZWxlY3Qtc2VhcmNoL3NlbGVjdC1zZWFyY2guY29tcG9uZW50JztcbmltcG9ydCB7IE11bHRpU2VsZWN0U2VhcmNoQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL211bHRpLXNlbGVjdC1zZWFyY2gvbXVsdGktc2VsZWN0LXNlYXJjaC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGV4dElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3RleHQtaW5wdXQvdGV4dC1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGV4dGFyZWFJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy90ZXh0YXJlYS1pbnB1dC90ZXh0YXJlYS1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGV4dGFyZWFJbnB1dE1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3RleHRhcmVhLWlucHV0L3R5cGVzJztcbmltcG9ydCB7IFBob25lSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvcGhvbmUtaW5wdXQvcGhvbmUtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFRvZ2dsZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3RvZ2dsZS1pbnB1dC90b2dnbGUtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IENoZWNrYm94UmFkaW9JbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9jaGVja2JveC1yYWRpby1pbnB1dC9jaGVja2JveC1yYWRpby1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2hpcFNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9jaGlwLXNlbGVjdC9jaGlwLXNlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVXNlcm5hbWVJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy91c2VybmFtZS1pbnB1dC91c2VybmFtZS1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVXNlcm5hbWVJbnB1dE1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3VzZXJuYW1lLWlucHV0L3R5cGVzJztcbmltcG9ydCB7IEF0dGFjaG1lbnRVcGxvYWRlckNvbXBvbmVudCB9IGZyb20gJy4uL2F0dGFjaG1lbnQtdXBsb2FkZXIvYXR0YWNobWVudC11cGxvYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXR0YWNobWVudEl0ZW0gfSBmcm9tICcuLi9hdHRhY2htZW50LXVwbG9hZGVyL3R5cGVzJztcbmltcG9ydCB7IEJ1dHRvbk1ldGFkYXRhLCBDb21wb25lbnRTdGF0ZXMsIEZvcm1NZXRhZGF0YSwgRm9ybVN1Ym1pdCwgSW5wdXRNZXRhZGF0YSwgSW5wdXRUeXBlIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtZm9ybScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBEaXNwbGF5Q29tcG9uZW50LFxuICAgIFRpdGxlQ29tcG9uZW50LFxuICAgIFRleHRJbnB1dENvbXBvbmVudCxcbiAgICBUZXh0YXJlYUlucHV0Q29tcG9uZW50LFxuICAgIENoZWNrSW5wdXRDb21wb25lbnQsXG4gICAgQnV0dG9uR3JvdXBDb21wb25lbnQsXG4gICAgRGl2aWRlckNvbXBvbmVudCxcbiAgICBIaW50Q29tcG9uZW50LFxuICAgIENvbW1lbnRJbnB1dENvbXBvbmVudCxcbiAgICBEYXRlSW5wdXRDb21wb25lbnQsXG4gICAgRmlsZUlucHV0Q29tcG9uZW50LFxuICAgIE51bWJlckZyb21Ub0NvbXBvbmVudCxcbiAgICBSYWRpb0lucHV0Q29tcG9uZW50LFxuICAgIFBhc3N3b3JkSW5wdXRDb21wb25lbnQsXG4gICAgUGluSW5wdXRDb21wb25lbnQsXG4gICAgU2VsZWN0U2VhcmNoQ29tcG9uZW50LFxuICAgIE11bHRpU2VsZWN0U2VhcmNoQ29tcG9uZW50LFxuICAgIFNlYXJjaFNlbGVjdG9yQ29tcG9uZW50LFxuICAgIFBob25lSW5wdXRDb21wb25lbnQsXG4gICAgVG9nZ2xlSW5wdXRDb21wb25lbnQsXG4gICAgQ2hlY2tib3hSYWRpb0lucHV0Q29tcG9uZW50LFxuICAgIENoaXBTZWxlY3RDb21wb25lbnQsXG4gICAgVXNlcm5hbWVJbnB1dENvbXBvbmVudCxcbiAgICBBdHRhY2htZW50VXBsb2FkZXJDb21wb25lbnQsXG4gICAgRGF0ZVBpY2tlckNvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImNvbnRhaW5lclwiXG4gICAgICBbY2xhc3MuY29udGFpbmVyLS1zdGlja3ktZm9vdGVyXT1cInByb3BzLnN0aWNreUZvb3RlciAmJiAhcHJvcHMuY29udHJvbGxlZFwiXG4gICAgICBbc3R5bGUuLS12YWwtZm9ybS1maWVsZC1nYXBdPVwicHJvcHMuZmllbGRTcGFjaW5nICE9IG51bGwgPyBwcm9wcy5maWVsZFNwYWNpbmcgKyAncHgnIDogbnVsbFwiXG4gICAgPlxuICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gICAgICAgIEBpZiAocHJvcHMubmFtZSkge1xuICAgICAgICAgIDx2YWwtZGlzcGxheVxuICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgY29udGVudDogcHJvcHMubmFtZSxcbiAgICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgICAgc2l6ZTogJ3NtYWxsJyxcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgID48L3ZhbC1kaXNwbGF5PlxuICAgICAgICB9XG4gICAgICAgIEBmb3IgKHMgb2YgcHJvcHMuc2VjdGlvbnM7IHRyYWNrIHMubmFtZSkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uXCI+XG4gICAgICAgICAgICA8dmFsLXRpdGxlIFtwcm9wc109XCJ7IGNvbnRlbnQ6IHMubmFtZSwgc2l6ZTogJ2xhcmdlJywgY29sb3I6ICcnLCBib2xkOiBmYWxzZSB9XCI+PC92YWwtdGl0bGU+XG4gICAgICAgICAgICBAZm9yIChmIG9mIHMuZmllbGRzOyB0cmFjayBmLm5hbWUpIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0XCIgW2F0dHIuZGF0YS10ZXN0aWRdPVwiZi50b2tlblwiPlxuICAgICAgICAgICAgICAgIEBpZiAoZi50eXBlICE9PSB0eXBlcy5QSE9ORSAmJiBmLnR5cGUgIT09IHR5cGVzLkhBTkRMRSAmJiBmLnR5cGUgIT09IHR5cGVzLkFUVEFDSE1FTlQpIHtcbiAgICAgICAgICAgICAgICAgIDxkaXYgW2F0dHIuaWRdPVwibGFiZWxJZChmKVwiPlxuICAgICAgICAgICAgICAgICAgICA8dmFsLXRpdGxlIFtwcm9wc109XCJ7IGNvbnRlbnQ6IGYubGFiZWwsIHNpemU6ICdzbWFsbCcsIGNvbG9yOiAnZGFyaycsIGJvbGQ6IGZhbHNlIH1cIj48L3ZhbC10aXRsZT5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaWYgKGYuZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmllbGQtZGVzY3JpcHRpb25cIj57eyBmLmRlc2NyaXB0aW9uIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAc3dpdGNoIChmLnR5cGUpIHtcbiAgICAgICAgICAgICAgICAgIEBjYXNlICh0eXBlcy5URVhUKSB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtdGV4dC1pbnB1dCBbcHJvcHNdPVwiZ2V0RmllbGRQcm9wKGYpXCI+PC92YWwtdGV4dC1pbnB1dD5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIEBjYXNlICh0eXBlcy5URVhUQVJFQSkge1xuICAgICAgICAgICAgICAgICAgICA8dmFsLXRleHRhcmVhLWlucHV0IFtwcm9wc109XCJnZXRUZXh0YXJlYVByb3AoZilcIj48L3ZhbC10ZXh0YXJlYS1pbnB1dD5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIEBjYXNlICh0eXBlcy5DSEVDSykge1xuICAgICAgICAgICAgICAgICAgICA8dmFsLWNoZWNrLWlucHV0IFtwcm9wc109XCJnZXRGaWVsZFByb3AoZilcIj48L3ZhbC1jaGVjay1pbnB1dD5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIEBjYXNlICh0eXBlcy5DT01NRU5UKSB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtY29tbWVudC1pbnB1dCBbcHJvcHNdPVwiZ2V0RmllbGRQcm9wKGYpXCI+PC92YWwtY29tbWVudC1pbnB1dD5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIEBjYXNlICh0eXBlcy5EQVRFKSB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtZGF0ZS1pbnB1dCBbcHJvcHNdPVwiZ2V0RmllbGRQcm9wKGYpXCI+PC92YWwtZGF0ZS1pbnB1dD5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIEBjYXNlICh0eXBlcy5FTUFJTCkge1xuICAgICAgICAgICAgICAgICAgICA8dmFsLXRleHQtaW5wdXQgW3Byb3BzXT1cImdldFRleHRJbnB1dFByb3AoZiwgJ2VtYWlsJylcIj48L3ZhbC10ZXh0LWlucHV0PlxuICAgICAgICAgICAgICAgICAgICA8IS0tIFN1Z2VyZW5jaWEgZGUgZG9taW5pby4gU2UgT0ZSRUNFLCBubyBzZSBhcGxpY2Egc29sYTogdW5cbiAgICAgICAgICAgICAgICAgICAgICAgICBkb21pbmlvIGNvcnBvcmF0aXZvIGxlZ8OtdGltbyBwdWVkZSBwYXJlY2Vyc2UgYSB1bm9cbiAgICAgICAgICAgICAgICAgICAgICAgICBtYXNpdm8sIHkgY29ycmVnaXJsbyBwb3Igc3UgY3VlbnRhIGxlIGNhbWJpYXLDrWEgZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICBjb3JyZW8gYSBhbGd1aWVuIHF1ZSBsbyBlc2NyaWJpw7MgYmllbi4gLS0+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoZW1haWxTdWdnZXN0aW9uRm9yKGYpOyBhcyBzdWdlcmlkbykge1xuICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZW1haWwtc3VnZ2VzdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgZW1haWxTdWdnZXN0aW9uUXVlc3Rpb24oc3VnZXJpZG8pIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImVtYWlsLXN1Z2dlc3Rpb25fX2FwcGx5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImFwcGx5RW1haWxTdWdnZXN0aW9uKGYsIHN1Z2VyaWRvKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGVtYWlsU3VnZ2VzdGlvbkFwcGx5TGFiZWwoKSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBAY2FzZSAodHlwZXMuRklMRSkge1xuICAgICAgICAgICAgICAgICAgICA8dmFsLWZpbGUtaW5wdXQgW3Byb3BzXT1cImdldEZpZWxkUHJvcChmKVwiPjwvdmFsLWZpbGUtaW5wdXQ+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBAY2FzZSAodHlwZXMuSE9VUikge1xuICAgICAgICAgICAgICAgICAgICA8dmFsLXRleHQtaW5wdXQgW3Byb3BzXT1cImdldFRleHRJbnB1dFByb3AoZiwgJ3RpbWUnKVwiPjwvdmFsLXRleHQtaW5wdXQ+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBAY2FzZSAodHlwZXMuTlVNQkVSKSB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtdGV4dC1pbnB1dCBbcHJvcHNdPVwiZ2V0VGV4dElucHV0UHJvcChmLCAnbnVtYmVyJylcIj48L3ZhbC10ZXh0LWlucHV0PlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGNhc2UgKHR5cGVzLk5VTUJFUl9GUk9NX1RPKSB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtbnVtYmVyLWZyb20tdG8gW3Byb3BzXT1cImdldEZpZWxkUHJvcChmKVwiPjwvdmFsLW51bWJlci1mcm9tLXRvPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGNhc2UgKHR5cGVzLlBBU1NXT1JEKSB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtcGFzc3dvcmQtaW5wdXQgW3Byb3BzXT1cImdldEZpZWxkUHJvcChmKVwiPjwvdmFsLXBhc3N3b3JkLWlucHV0PlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGNhc2UgKHR5cGVzLlBJTl9DT0RFKSB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtcGluLWlucHV0IFtwcm9wc109XCJnZXRGaWVsZFByb3AoZilcIj48L3ZhbC1waW4taW5wdXQ+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBAY2FzZSAodHlwZXMuUkFESU8pIHtcbiAgICAgICAgICAgICAgICAgICAgPHZhbC1yYWRpby1pbnB1dCBbcHJvcHNdPVwiZ2V0RmllbGRQcm9wKGYpXCI+PC92YWwtcmFkaW8taW5wdXQ+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBAY2FzZSAodHlwZXMuU0VMRUNUKSB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtc2VsZWN0LWlucHV0IFtwcm9wc109XCJnZXRTZWxlY3RQcm9wKGYpXCI+PC92YWwtc2VsZWN0LWlucHV0PlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGNhc2UgKHR5cGVzLlNFQVJDSF9TRUxFQ1QpIHtcbiAgICAgICAgICAgICAgICAgICAgPHZhbC1zZWxlY3Qtc2VhcmNoIFtwcm9wc109XCJnZXRGaWVsZFByb3AoZilcIj48L3ZhbC1zZWxlY3Qtc2VhcmNoPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGNhc2UgKHR5cGVzLk1VTFRJX1NFTEVDVCkge1xuICAgICAgICAgICAgICAgICAgICA8dmFsLW11bHRpLXNlbGVjdC1zZWFyY2ggW3Byb3BzXT1cImdldEZpZWxkUHJvcChmKVwiPjwvdmFsLW11bHRpLXNlbGVjdC1zZWFyY2g+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBAY2FzZSAodHlwZXMuUEhPTkUpIHtcbiAgICAgICAgICAgICAgICAgICAgPHZhbC1waG9uZS1pbnB1dCBbcHJvcHNdPVwiZ2V0RmllbGRQcm9wKGYpXCI+PC92YWwtcGhvbmUtaW5wdXQ+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBAY2FzZSAodHlwZXMuSEFORExFKSB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtdXNlcm5hbWUtaW5wdXQgW3Byb3BzXT1cImdldFVzZXJuYW1lUHJvcChmKVwiPjwvdmFsLXVzZXJuYW1lLWlucHV0PlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGNhc2UgKHR5cGVzLlRPR0dMRSkge1xuICAgICAgICAgICAgICAgICAgICA8dmFsLXRvZ2dsZS1pbnB1dCBbcHJvcHNdPVwiZ2V0RmllbGRQcm9wKGYpXCI+PC92YWwtdG9nZ2xlLWlucHV0PlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGNhc2UgKHR5cGVzLkNIRUNLQk9YX1JBRElPKSB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtY2hlY2tib3gtcmFkaW8taW5wdXQgW3Byb3BzXT1cImdldEZpZWxkUHJvcChmKVwiPjwvdmFsLWNoZWNrYm94LXJhZGlvLWlucHV0PlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGNhc2UgKHR5cGVzLkNISVBfU0VMRUNUKSB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtY2hpcC1zZWxlY3QgW3Byb3BzXT1cImdldEZpZWxkUHJvcChmKVwiPjwvdmFsLWNoaXAtc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGNhc2UgKHR5cGVzLkFUVEFDSE1FTlQpIHtcbiAgICAgICAgICAgICAgICAgICAgPHZhbC1hdHRhY2htZW50LXVwbG9hZGVyXG4gICAgICAgICAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBmLmxhYmVsLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGludDogZi5oaW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgdXBsb2FkRm46IGYudXBsb2FkRm4sXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZDogZi5zdGF0ZSA9PT0gc3RhdGVzLkRJU0FCTEVEIHx8IGYuc3RhdGUgPT09IHN0YXRlcy5XT1JLSU5HLFxuICAgICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICAgIChhdHRhY2htZW50c0NoYW5nZSk9XCJvbkF0dGFjaG1lbnRDaGFuZ2UoZi5uYW1lLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvdmFsLWF0dGFjaG1lbnQtdXBsb2FkZXI+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBAY2FzZSAodHlwZXMuREFURV9QSUNLRVIpIHtcbiAgICAgICAgICAgICAgICAgICAgPHZhbC1kYXRlLXBpY2tlciBbcHJvcHNdPVwiZ2V0RGF0ZVBpY2tlclByb3AoZilcIj48L3ZhbC1kYXRlLXBpY2tlcj5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPHZhbC1oaW50IFtwcm9wc109XCJnZXRGaWVsZFByb3AoZilcIiBbaWRdPVwiZXJyb3JJZChmKVwiPjwvdmFsLWhpbnQ+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChwcm9wcy5zaG93RGl2aWRlcnMgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgIDx2YWwtZGl2aWRlciBbcHJvcHNdPVwieyBmaWxsOiAnc29saWQnLCBzaXplOiAnbWVkaXVtJywgY29sb3I6ICdtZWRpdW0nIH1cIj48L3ZhbC1kaXZpZGVyPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoIXByb3BzLmNvbnRyb2xsZWQpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VibWl0LWFjdGlvbnNcIiBbY2xhc3Muc3VibWl0LWFjdGlvbnMtLXN0aWNreV09XCJwcm9wcy5zdGlja3lGb290ZXJcIj5cbiAgICAgICAgICAgIDx2YWwtYnV0dG9uLWdyb3VwXG4gICAgICAgICAgICAgIFtwcm9wc109XCJ7IGJ1dHRvbnM6IGFjdGlvbnMsIHBvc2l0aW9uOiAnY2VudGVyJywgY29sdW1uZWQ6IGZhbHNlIH1cIlxuICAgICAgICAgICAgICAob25DbGljayk9XCJzdWJtaXRIYW5kbGVyKCRldmVudClcIlxuICAgICAgICAgICAgPjwvdmFsLWJ1dHRvbi1ncm91cD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9mb3JtPlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9mb3JtLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgRG9DaGVjayB7XG4gIEBJbnB1dCgpXG4gIHByb3BzOiBGb3JtTWV0YWRhdGE7XG5cbiAgQE91dHB1dCgpXG4gIG9uU3VibWl0ID0gbmV3IEV2ZW50RW1pdHRlcjxGb3JtU3VibWl0PigpO1xuXG4gIEBPdXRwdXQoKVxuICBvblZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4oKTtcblxuICBAT3V0cHV0KClcbiAgb25JbnZhbGlkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICBvblNlbGVjdENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8eyBmaWVsZDogc3RyaW5nOyB2YWx1ZTogYW55IH0+KCk7XG5cbiAgZm9ybTogRm9ybUdyb3VwO1xuICB0eXBlcyA9IElucHV0VHlwZTtcbiAgc3RhdGVzID0gQ29tcG9uZW50U3RhdGVzO1xuXG4gIC8qKlxuICAgKiBWYWxvciBhY3R1YWwgZGVsIGZvcm0gKGBmb3JtLmdldFJhd1ZhbHVlKClgKSwgYWN0dWFsaXphZG8gZW4gY2FkYVxuICAgKiBgdmFsdWVDaGFuZ2VzYC4gUGVuc2FkbyBwYXJhIGVsIG1vZG8gYGNvbnRyb2xsZWRgOiBlbCBob3N0IGxvIGxlZSB2w61hXG4gICAqIGBAVmlld0NoaWxkKEZvcm1Db21wb25lbnQpYCBzaW4gdG9jYXIgZWwgRm9ybUdyb3VwIGRpcmVjdG8uIEVuIG1vZG8gbm9ybWFsXG4gICAqIHRhbWJpw6luIGVzdMOhIGRpc3BvbmlibGUuXG4gICAqL1xuICByZWFkb25seSB2YWx1ZSA9IHNpZ25hbDxSZWNvcmQ8c3RyaW5nLCBhbnk+Pih7fSk7XG5cbiAgLyoqXG4gICAqIEVzdGFkbyBkZSB2YWxpZGV6IGRlbCBmb3JtLCBhY3R1YWxpemFkbyBlbiBjYWRhIGBzdGF0dXNDaGFuZ2VzYC4gUGFyYSBxdWVcbiAgICogZWwgaG9zdCAod2l6YXJkKSBoYWJpbGl0ZS9kZXNoYWJpbGl0ZSBzdSBib3TDs24gXCJTaWd1aWVudGVcIi5cbiAgICovXG4gIHJlYWRvbmx5IHZhbGlkID0gc2lnbmFsKGZhbHNlKTtcblxuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgcHJpdmF0ZSBhY3Rpb25zQ2FjaGU6IEJ1dHRvbk1ldGFkYXRhW10gPSBbXTtcblxuICAvLyBNZW1vIGRlIGdldEZpZWxkUHJvcC9nZXRVc2VybmFtZVByb3AgcG9yIHJlZmVyZW5jaWEgZGUgZmllbGQg4oCUIGV2aXRhXG4gIC8vIGNyZWFyIHVuIG51ZXZvIG9iamV0byBwcm9wcyBwb3Iga2V5c3Ryb2tlIChjYWRhIENEIGN5Y2xlIGludm9jYXLDrWEgZWxcbiAgLy8gdGVtcGxhdGUgYmluZGluZywgbXVsdGlwbGljYW5kbyByZS1yZW5kZXJzIGVuIGNhc2NhZGEgcG9yICMgZmllbGRzKS5cbiAgLy8gV2Vha01hcDogc2kgbGEgcmVmZXJlbmNpYSBkZWwgZmllbGQgY2FtYmlhLCBlbCBjYWNoZSBzZSBsaWJlcmEuXG4gIHByaXZhdGUgZmllbGRQcm9wTWVtbyA9IG5ldyBXZWFrTWFwPElucHV0TWV0YWRhdGEsIElucHV0TWV0YWRhdGE+KCk7XG4gIHByaXZhdGUgdXNlcm5hbWVQcm9wTWVtbyA9IG5ldyBXZWFrTWFwPElucHV0TWV0YWRhdGEsIFVzZXJuYW1lSW5wdXRNZXRhZGF0YT4oKTtcbiAgcHJpdmF0ZSB0ZXh0YXJlYVByb3BNZW1vID0gbmV3IFdlYWtNYXA8SW5wdXRNZXRhZGF0YSwgVGV4dGFyZWFJbnB1dE1ldGFkYXRhPigpO1xuICBwcml2YXRlIHNlbGVjdFByb3BNZW1vID0gbmV3IFdlYWtNYXA8SW5wdXRNZXRhZGF0YSwgSW5wdXRNZXRhZGF0YT4oKTtcbiAgLy8gTWVtbyBkZSBwcm9wcyBjb24gdW4gaW5wdXRUeXBlIEhUTUwgaW55ZWN0YWRvIChFTUFJTC9OVU1CRVIvSE9VUiBjb2xhcHNhZG9zXG4gIC8vIGVuIHZhbC10ZXh0LWlucHV0KS4gQ2xhdmUgcG9yIGZpZWxkIHBhcmEgY29uc2VydmFyIGlkZW50aWRhZCBkZSByZWZlcmVuY2lhLlxuICBwcml2YXRlIHRleHRJbnB1dFByb3BNZW1vID0gbmV3IFdlYWtNYXA8SW5wdXRNZXRhZGF0YSwgSW5wdXRNZXRhZGF0YT4oKTtcbiAgcHJpdmF0ZSBkYXRlUGlja2VyUHJvcE1lbW8gPSBuZXcgV2Vha01hcDxJbnB1dE1ldGFkYXRhLCBEYXRlUGlja2VyTWV0YWRhdGE+KCk7XG5cbiAgLy8gSWRzIGVzdGFibGVzIHBvciBmaWVsZCBwYXJhIGVsIHdpcmluZyBkZSBhY2Nlc2liaWxpZGFkIGxhYmVs4oaUaW5wdXTihpRlcnJvci5cbiAgLy8gRXN0YWJsZXMgZW50cmUgQ0QgY3ljbGVzIChtZW1vaXphZG9zIHBvciByZWZlcmVuY2lhIGRlIGZpZWxkKSDihpIgYXJpYS0qIG5vIHBhcnBhZGVhLlxuICBwcml2YXRlIGZpZWxkSWRNZW1vID0gbmV3IFdlYWtNYXA8SW5wdXRNZXRhZGF0YSwgeyBsYWJlbElkOiBzdHJpbmc7IGVycm9ySWQ6IHN0cmluZyB9PigpO1xuICBwcml2YXRlIGZpZWxkVWlkID0gMDtcblxuICAvLyBFc3RhZG8gcHJldmlvIHBhcmEgZGV0ZWN0YXIgY2FtYmlvcyBlbiBuZ0RvQ2hlY2tcbiAgcHJpdmF0ZSBwcmV2aW91c1N0YXRlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgcHJldmlvdXNVcGxvYWRpbmdDb3VudCA9IDA7XG5cbiAgLy8gQ2FtcG9zIEFUVEFDSE1FTlQgY29uIHVwbG9hZHMgZW4gY3Vyc28g4oCUIGJsb3F1ZWEgc3VibWl0ICsgREVTSEFCSUxJVEEgZWxcbiAgLy8gYm90w7NuIChubyBsb2FkaW5nOiBlbCBzcGlubmVyIHNlIHJlc2VydmEgcGFyYSBlbCBzdWJtaXQgcmVhbCBkZWwgZm9ybSkuXG4gIHByaXZhdGUgdXBsb2FkaW5nRmllbGRzID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmXG4gICkge31cblxuICAvKiogQXJtYSBsYSBkZWZpbmljacOzbiBkZSBjb250cm9sZXMgKHZhbG9yIGluaWNpYWwgKyB2YWxpZGFkb3JlcykgZGVzZGUgYHByb3BzYC4gKi9cbiAgcHJpdmF0ZSBidWlsZEZvcm1Db250cm9sc0RlZigpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gICAgY29uc3QgZm9ybUNvbnRyb2xzID0ge307XG4gICAgdGhpcy5wcm9wcy5zZWN0aW9ucy5mb3JFYWNoKHNlY3Rpb24gPT4ge1xuICAgICAgc2VjdGlvbi5maWVsZHMuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICAgIC8vIEhvbnJhIGBmaWVsZC52YWx1ZWAgYWwgY29uc3RydWlyIGVsIEZvcm1Hcm91cCBwYXJhIHF1ZSBjb250cm9sZXMgdGlwb1xuICAgICAgICAvLyBIQU5ETEUgKHF1ZSBjb25zdW1lbiBlbCBjb250cm9sIGRpcmVjdG8gdmlhIFtmb3JtQ29udHJvbF0pIHJlY2liYW4gZWxcbiAgICAgICAgLy8gdmFsb3IgaW5pY2lhbCBzaW4gcXVlIGVsIGNhbGxlciB0ZW5nYSBxdWUgcGF0Y2hWYWx1ZSBwb3N0LW1vdW50LlxuICAgICAgICAvLyBFbCBoZWxwZXIgYXBwbHlEZWZhdWx0VmFsdWVUb0NvbnRyb2wgKHZhbC10ZXh0LWlucHV0IGV0Yy4pIHNpZ3VlXG4gICAgICAgIC8vIGZ1bmNpb25hbmRvIOKAlCBlc2NyaWJlIHNvYnJlIHVuIGNvbnRyb2wgeWEgaW5pY2lhbGl6YWRvLCBpZGVtcG90ZW50ZS5cbiAgICAgICAgY29uc3QgaW5pdGlhbFZhbHVlID0gZmllbGQudmFsdWUgPz8gbnVsbDtcbiAgICAgICAgaWYgKGZpZWxkLnR5cGUgPT09IHRoaXMudHlwZXMuTlVNQkVSX0ZST01fVE8pIHtcbiAgICAgICAgICAvLyBDcmVhciBkb3MgY29udHJvbGVzIHBhcmEgY2FtcG9zIE5VTUJFUl9GUk9NX1RPXG4gICAgICAgICAgZm9ybUNvbnRyb2xzW2Ake2ZpZWxkLm5hbWV9X2Zyb21gXSA9IFtpbml0aWFsVmFsdWUsIGZpZWxkLnZhbGlkYXRvcnMgfHwgW11dO1xuICAgICAgICAgIGZvcm1Db250cm9sc1tgJHtmaWVsZC5uYW1lfV90b2BdID0gW2luaXRpYWxWYWx1ZSwgZmllbGQudmFsaWRhdG9ycyB8fCBbXV07XG4gICAgICAgIH0gZWxzZSBpZiAoZmllbGQudHlwZSA9PT0gdGhpcy50eXBlcy5BVFRBQ0hNRU5UKSB7XG4gICAgICAgICAgZm9ybUNvbnRyb2xzW2ZpZWxkLm5hbWVdID0gW1tdLCBmaWVsZC52YWxpZGF0b3JzIHx8IFtdXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmb3JtQ29udHJvbHNbZmllbGQubmFtZV0gPSBbaW5pdGlhbFZhbHVlLCBmaWVsZC52YWxpZGF0b3JzIHx8IFtdXTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGZvcm1Db250cm9scztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWNvbnN0cnV5ZSBlbCBgRm9ybUdyb3VwYCBkZXNkZSBjZXJvLCBjb24gbG9zIHZhbG9yZXMgaW5pY2lhbGVzIGRlIGBwcm9wc2BcbiAgICogYWN0dWFsZXMgKG5vIGxvcyBxdWUgZWwgdXN1YXJpbyBoYXlhIHRlY2xlYWRvIGRlc2RlIGVudG9uY2VzKS5cbiAgICpcbiAgICogRXhpc3RlIHBhcmEgZWwgY2FzbyBlbiBxdWUgQW5ndWxhciBOTyBkZXN0cnV5ZSBlbCBjb21wb25lbnRlIGVudHJlIGRvcyB1c29zXG4gICAqIOKAlCB0w61waWNhbWVudGUgYElvbmljUm91dGVTdHJhdGVneWAsIHF1ZSBjYWNoZWEgbGEgcMOhZ2luYSBydXRlYWRhIGFsIG5hdmVnYXJcbiAgICogYWZ1ZXJhIHkgbGEgcmV1dGlsaXphIGFsIHZvbHZlciBzaW4gY29ycmVyIGBuZ09uSW5pdGAgZGUgbnVldm8uIFNpbiBlc3RvLFxuICAgKiB1biBmb3JtIGRlIGxvZ2luIG1hbnRpZW5lIGxvIHF1ZSBlbCB1c3VhcmlvIGFudGVyaW9yIHRlY2xlw7MgZGVzcHXDqXMgZGVcbiAgICogY2VycmFyIHNlc2nDs24geSB2b2x2ZXIgYSBgL2xvZ2luYDogZWwgYEZvcm1Hcm91cGAgc2UgY29uc3RydXnDsyBVTkEgdmV6IHlcbiAgICogbmFkaWUgbG8gdG9jw7MgZGVzZGUgZW50b25jZXMuXG4gICAqXG4gICAqIFJlY29uc3RydXllIGVsIGBGb3JtR3JvdXBgIGVudGVybyAobm8gYC5yZXNldCh2YWx1ZXMpYCkgcG9ycXVlIGxhXG4gICAqIGRlZmluaWNpw7NuIHRyYWUgYFt2YWxvciwgdmFsaWRhdG9yc11gIHBvciBjb250cm9sLCBubyB2YWxvcmVzIHBsYW5vcyDigJRcbiAgICogcmV1c2FyIGBidWlsZEZvcm1Db250cm9sc0RlZigpYCB0YWwgY3VhbCBldml0YSBtYW50ZW5lciBkb3MgZm9ybWFzIGRlXG4gICAqIGNhbGN1bGFyIFwiY3XDoWwgZXMgZWwgdmFsb3IgaW5pY2lhbFwiIHF1ZSBwdWVkYW4gZGVzaW5jcm9uaXphcnNlLlxuICAgKlxuICAgKiBFbCBjYWxsZXIgKHTDrXBpY2FtZW50ZSBgdmFsLWxvZ2luYCwgdsOtYSBgaW9uVmlld1dpbGxFbnRlcmApIGRlY2lkZSBDVcOBTkRPXG4gICAqIGxsYW1hcmxvIOKAlCBhY8OhIG5vIGhheSBoZXVyw61zdGljYSBkZSBcImN1w6FuZG8gcmVzZXRlYXJcIiwgcG9ycXVlIHVuIGZvcm0gZGVcbiAgICogdmFyaW9zIHBhc29zIHPDrSBwb2Ryw61hIHF1ZXJlciBjb25zZXJ2YXIgbG8gdGVjbGVhZG8gYWwgdm9sdmVyIGEgdW5hXG4gICAqIHBlc3Rhw7FhLlxuICAgKi9cbiAgcmVzZXRGb3JtKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5mb3JtKSByZXR1cm47XG4gICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cCh0aGlzLmJ1aWxkRm9ybUNvbnRyb2xzRGVmKCkpO1xuICAgIHRoaXMudmFsdWUuc2V0KHRoaXMuZm9ybS5nZXRSYXdWYWx1ZSgpKTtcbiAgICB0aGlzLnZhbGlkLnNldCh0aGlzLmZvcm0udmFsaWQpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cCh0aGlzLmJ1aWxkRm9ybUNvbnRyb2xzRGVmKCkpO1xuICAgIHRoaXMucHJvcHMuc2VjdGlvbnMuZm9yRWFjaChzZWN0aW9uID0+IHtcbiAgICAgIHNlY3Rpb24uZmllbGRzXG4gICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgeCA9PlxuICAgICAgICAgICAgeC50eXBlID09PSB0aGlzLnR5cGVzLlNFTEVDVCB8fFxuICAgICAgICAgICAgeC50eXBlID09PSB0aGlzLnR5cGVzLlRFWFQgfHxcbiAgICAgICAgICAgIHgudHlwZSA9PT0gdGhpcy50eXBlcy5TRUFSQ0hfU0VMRUNUIHx8XG4gICAgICAgICAgICB4LnR5cGUgPT09IHRoaXMudHlwZXMuTVVMVElfU0VMRUNUXG4gICAgICAgIClcbiAgICAgICAgLmZvckVhY2goZmllbGQgPT4ge1xuICAgICAgICAgIHRoaXMudHJhY2tTZWxlY3RDaGFuZ2VzKGZpZWxkLm5hbWUpO1xuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgIC8vIEVzdGFkbyByZWFjdGl2byBww7pibGljbyAodmFsdWUvdmFsaWQpIOKAlCBhY3R1YWxpemFkbyBwb3Igc3VzY3JpcGNpw7NuIFJ4SlMsXG4gICAgLy8gTk8gZGVudHJvIGRlIHVuIGVmZmVjdDogc2V0ZWFyIHNpZ25hbHMgYWPDoSBlcyBzZWd1cm8gKG5vIGRpc3BhcmEgTkcwNjAwKS5cbiAgICB0aGlzLnZhbHVlLnNldCh0aGlzLmZvcm0uZ2V0UmF3VmFsdWUoKSk7XG4gICAgdGhpcy52YWxpZC5zZXQodGhpcy5mb3JtLnZhbGlkKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMuZm9ybS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgY29uc3QgcmF3VmFsdWUgPSB0aGlzLmZvcm0uZ2V0UmF3VmFsdWUoKTtcbiAgICAgICAgdGhpcy52YWx1ZS5zZXQocmF3VmFsdWUpO1xuICAgICAgICB0aGlzLm9uVmFsdWVDaGFuZ2UuZW1pdChyYXdWYWx1ZSk7XG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5mb3JtLnN0YXR1c0NoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHRoaXMudmFsaWQuc2V0KHRoaXMuZm9ybS52YWxpZCkpKTtcblxuICAgIHRoaXMuc3luY0ZpZWxkQ29udHJvbFN0YXRlcygpO1xuICAgIHRoaXMudXBkYXRlQWN0aW9uc0NhY2hlKCk7XG4gICAgdGhpcy5wcmV2aW91c1N0YXRlID0gdGhpcy5wcm9wcy5zdGF0ZTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAvLyBDdWFuZG8gcHJvcHMgY2FtYmlhLCByZWNvbnN0cnVpciBlbCBjYWNoZVxuICAgIGlmIChjaGFuZ2VzWydwcm9wcyddICYmIHRoaXMuZm9ybSkge1xuICAgICAgdGhpcy5wYXRjaEluaXRpYWxWYWx1ZXNGcm9tUHJvcHMoKTtcbiAgICAgIHRoaXMuc3luY0ZpZWxkQ29udHJvbFN0YXRlcygpO1xuICAgICAgdGhpcy51cGRhdGVBY3Rpb25zQ2FjaGUoKTtcbiAgICAgIHRoaXMucHJldmlvdXNTdGF0ZSA9IHRoaXMucHJvcHMuc3RhdGU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBwYXRjaEluaXRpYWxWYWx1ZXNGcm9tUHJvcHMoKTogdm9pZCB7XG4gICAgdGhpcy5wcm9wcy5zZWN0aW9ucy5mb3JFYWNoKHNlY3Rpb24gPT4ge1xuICAgICAgc2VjdGlvbi5maWVsZHMuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICAgIGlmIChmaWVsZC52YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IGZpZWxkLnR5cGUgPT09IHRoaXMudHlwZXMuQVRUQUNITUVOVCkgcmV0dXJuO1xuICAgICAgICBpZiAoZmllbGQudHlwZSA9PT0gdGhpcy50eXBlcy5OVU1CRVJfRlJPTV9UTykge1xuICAgICAgICAgIHRoaXMuZm9ybS5nZXQoYCR7ZmllbGQubmFtZX1fZnJvbWApPy5wYXRjaFZhbHVlKGZpZWxkLnZhbHVlLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgICAgdGhpcy5mb3JtLmdldChgJHtmaWVsZC5uYW1lfV90b2ApPy5wYXRjaFZhbHVlKGZpZWxkLnZhbHVlLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoZmllbGQubmFtZSk/LnBhdGNoVmFsdWUoZmllbGQudmFsdWUsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHRoaXMudmFsdWUuc2V0KHRoaXMuZm9ybS5nZXRSYXdWYWx1ZSgpKTtcbiAgICB0aGlzLnZhbGlkLnNldCh0aGlzLmZvcm0udmFsaWQpO1xuICB9XG5cbiAgbmdEb0NoZWNrKCkge1xuICAgIC8vIERldGVjdGFyIGNhbWJpb3MgZW4gZWwgZXN0YWRvIGRlbCBmb3JtdWxhcmlvIChtdXRhY2nDs24gc2luIGNhbWJpYXIgcmVmZXJlbmNpYSlcbiAgICBjb25zdCB1cGxvYWRpbmdDb3VudCA9IHRoaXMudXBsb2FkaW5nRmllbGRzLnNpemU7XG4gICAgaWYgKFxuICAgICAgdGhpcy5mb3JtICYmXG4gICAgICB0aGlzLnByb3BzICYmXG4gICAgICAodGhpcy5wcm9wcy5zdGF0ZSAhPT0gdGhpcy5wcmV2aW91c1N0YXRlIHx8IHVwbG9hZGluZ0NvdW50ICE9PSB0aGlzLnByZXZpb3VzVXBsb2FkaW5nQ291bnQpXG4gICAgKSB7XG4gICAgICB0aGlzLnByZXZpb3VzU3RhdGUgPSB0aGlzLnByb3BzLnN0YXRlO1xuICAgICAgdGhpcy5wcmV2aW91c1VwbG9hZGluZ0NvdW50ID0gdXBsb2FkaW5nQ291bnQ7XG4gICAgICB0aGlzLnVwZGF0ZUFjdGlvbnNDYWNoZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTeW5jaHJvbml6ZXMgZm9ybSBjb250cm9sIGRpc2FibGVkL2VuYWJsZWQgc3RhdGUgd2l0aCBmaWVsZCBtZXRhZGF0YS5cbiAgICovXG4gIHByaXZhdGUgc3luY0ZpZWxkQ29udHJvbFN0YXRlcygpIHtcbiAgICB0aGlzLnByb3BzLnNlY3Rpb25zLmZvckVhY2goc2VjdGlvbiA9PiB7XG4gICAgICBzZWN0aW9uLmZpZWxkcy5mb3JFYWNoKGZpZWxkID0+IHtcbiAgICAgICAgaWYgKGZpZWxkLnR5cGUgPT09IHRoaXMudHlwZXMuQVRUQUNITUVOVCkgcmV0dXJuO1xuICAgICAgICBpZiAoZmllbGQudHlwZSA9PT0gdGhpcy50eXBlcy5OVU1CRVJfRlJPTV9UTykge1xuICAgICAgICAgIGNvbnN0IGZyb21Db250cm9sID0gdGhpcy5nZXRDb250cm9sKGAke2ZpZWxkLm5hbWV9X2Zyb21gKTtcbiAgICAgICAgICBjb25zdCB0b0NvbnRyb2wgPSB0aGlzLmdldENvbnRyb2woYCR7ZmllbGQubmFtZX1fdG9gKTtcblxuICAgICAgICAgIGlmIChmaWVsZC5zdGF0ZSA9PT0gQ29tcG9uZW50U3RhdGVzLkRJU0FCTEVEKSB7XG4gICAgICAgICAgICBmcm9tQ29udHJvbC5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgICAgIHRvQ29udHJvbC5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZnJvbUNvbnRyb2wuZW5hYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgICAgIHRvQ29udHJvbC5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBjb250cm9sID0gdGhpcy5nZXRDb250cm9sKGZpZWxkLm5hbWUpO1xuICAgICAgICAgIGlmIChmaWVsZC5zdGF0ZSA9PT0gQ29tcG9uZW50U3RhdGVzLkRJU0FCTEVEKSB7XG4gICAgICAgICAgICBjb250cm9sLmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb250cm9sLmVuYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBY3R1YWxpemEgZWwgY2FjaGUgZGUgYWN0aW9ucyBiYXNhZG8gZW4gZWwgZXN0YWRvIGFjdHVhbCBkZWwgZm9ybS5cbiAgICovXG4gIHByaXZhdGUgdXBkYXRlQWN0aW9uc0NhY2hlKCkge1xuICAgIC8vIEVuIG1vZG8gY29udHJvbGxlZCAobyBzaW4gc3VibWl0KSBubyBoYXkgYm90w7NuIHByb3BpbyBxdWUgY2FjaGVhci5cbiAgICBpZiAoIXRoaXMucHJvcHMuYWN0aW9ucykge1xuICAgICAgdGhpcy5hY3Rpb25zQ2FjaGUgPSBbXTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IGFjdGlvblN0YXRlID0gdGhpcy5wcm9wcy5hY3Rpb25zLnN0YXRlO1xuXG4gICAgaWYgKHRoaXMucHJvcHMuc3RhdGUgPT09IENvbXBvbmVudFN0YXRlcy5XT1JLSU5HKSB7XG4gICAgICAvLyBTdWJtaXQgcmVhbCBkZWwgZm9ybSBlbiBjdXJzbyDihpIgYm90w7NuIGVuIGxvYWRpbmcgKHNwaW5uZXIpLlxuICAgICAgYWN0aW9uU3RhdGUgPSBDb21wb25lbnRTdGF0ZXMuV09SS0lORztcbiAgICB9IGVsc2UgaWYgKHRoaXMucHJvcHMuc3RhdGUgPT09IENvbXBvbmVudFN0YXRlcy5ESVNBQkxFRCB8fCB0aGlzLnVwbG9hZGluZ0ZpZWxkcy5zaXplID4gMCkge1xuICAgICAgLy8gU3ViaWRhIGRlIGFkanVudG8gZW4gY3Vyc28g4oaSIERFU0hBQklMSVRBUiBlbCBzdWJtaXQsIE5PIGxvYWRpbmc6IHRvZGF2w61hXG4gICAgICAvLyBubyBzZSBlc3TDoSBlbnZpYW5kbyBlbCBmb3JtLCBzb2xvIHN1YmllbmRvIHVuIGFyY2hpdm8uIFVuIHNwaW5uZXIgYWPDoVxuICAgICAgLy8gY29uZnVuZGUgKHBhcmVjZSBxdWUgZWwgZm9ybSBzZSBlc3TDoSBlbnZpYW5kbykuXG4gICAgICBhY3Rpb25TdGF0ZSA9IENvbXBvbmVudFN0YXRlcy5ESVNBQkxFRDtcbiAgICB9IGVsc2UgaWYgKHRoaXMucHJvcHMuc3RhdGUgPT09IENvbXBvbmVudFN0YXRlcy5FTkFCTEVEIHx8IHRoaXMuZm9ybT8udmFsaWQpIHtcbiAgICAgIGFjdGlvblN0YXRlID0gQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQ7XG4gICAgfVxuXG4gICAgdGhpcy5hY3Rpb25zQ2FjaGUgPSBbeyAuLi50aGlzLnByb3BzLmFjdGlvbnMsIHN0YXRlOiBhY3Rpb25TdGF0ZSB9XTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIC8vIENsZWFudXAgc3Vic2NyaXB0aW9ucyB0byBhdm9pZCBtZW1vcnkgbGVha3NcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzdWIgPT4gc3ViLnVuc3Vic2NyaWJlKCkpO1xuICB9XG5cbiAgdHJhY2tTZWxlY3RDaGFuZ2VzKGZpZWxkTmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZ2V0Q29udHJvbChmaWVsZE5hbWUpO1xuICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IGNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICB0aGlzLm9uU2VsZWN0Q2hhbmdlLmVtaXQoeyBmaWVsZDogZmllbGROYW1lLCB2YWx1ZSB9KTtcbiAgICB9KTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChzdWJzY3JpcHRpb24pO1xuICB9XG5cbiAgYXN5bmMgc3VibWl0SGFuZGxlcih0b2tlbj86IHN0cmluZykge1xuICAgIGlmICh0aGlzLnVwbG9hZGluZ0ZpZWxkcy5zaXplID4gMCkgcmV0dXJuO1xuICAgIGlmICghdGhpcy5mb3JtLnZhbGlkKSB7XG4gICAgICB0aGlzLmZvcm0ubWFya0FsbEFzVG91Y2hlZCgpO1xuICAgICAgdGhpcy5vbkludmFsaWQuZW1pdCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm9uU3VibWl0LmVtaXQoeyBmaWVsZHM6IHRoaXMuZm9ybS5nZXRSYXdWYWx1ZSgpLCB0b2tlbiB9KTtcbiAgfVxuXG4gIG9uQXR0YWNobWVudENoYW5nZShmaWVsZE5hbWU6IHN0cmluZywgaXRlbXM6IEF0dGFjaG1lbnRJdGVtW10pOiB2b2lkIHtcbiAgICBjb25zdCByZWFkeVVybHMgPSBpdGVtcy5maWx0ZXIoYSA9PiBhLnN0YXR1cyA9PT0gJ3JlYWR5JyAmJiBhLnVybCkubWFwKGEgPT4gYS51cmwhKTtcbiAgICB0aGlzLmZvcm0uZ2V0KGZpZWxkTmFtZSk/LnNldFZhbHVlKHJlYWR5VXJscywgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgIGlmIChpdGVtcy5zb21lKGEgPT4gYS5zdGF0dXMgPT09ICd1cGxvYWRpbmcnKSkge1xuICAgICAgdGhpcy51cGxvYWRpbmdGaWVsZHMuYWRkKGZpZWxkTmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudXBsb2FkaW5nRmllbGRzLmRlbGV0ZShmaWVsZE5hbWUpO1xuICAgIH1cbiAgfVxuXG4gIGdldENvbnRyb2woZmllbGQ6IHN0cmluZyk6IEZvcm1Db250cm9sIHtcbiAgICByZXR1cm4gdGhpcy5Gb3JtLmdldChmaWVsZCkgYXMgRm9ybUNvbnRyb2w7XG4gIH1cblxuICAvKipcbiAgICogSWRzIGVzdGFibGVzIChsYWJlbCArIGVycm9yKSBwYXJhIHVuIGZpZWxkLiBNZW1vaXphZG9zIHBvciByZWZlcmVuY2lhIHBhcmFcbiAgICogcXVlIGVsIHdpcmluZyBgYXJpYS1sYWJlbGxlZGJ5YCAvIGBhcmlhLWRlc2NyaWJlZGJ5YCBubyBjYW1iaWUgZW50cmUgY2ljbG9zXG4gICAqIGRlIGNoYW5nZSBkZXRlY3Rpb24uXG4gICAqL1xuICBwcml2YXRlIGZpZWxkSWRzKGZpZWxkOiBJbnB1dE1ldGFkYXRhKTogeyBsYWJlbElkOiBzdHJpbmc7IGVycm9ySWQ6IHN0cmluZyB9IHtcbiAgICBsZXQgaWRzID0gdGhpcy5maWVsZElkTWVtby5nZXQoZmllbGQpO1xuICAgIGlmICghaWRzKSB7XG4gICAgICBjb25zdCBiYXNlID0gYHZhbC1mb3JtLWZpZWxkLSR7dGhpcy5maWVsZFVpZCsrfWA7XG4gICAgICBpZHMgPSB7IGxhYmVsSWQ6IGAke2Jhc2V9LWxhYmVsYCwgZXJyb3JJZDogYCR7YmFzZX0tZXJyb3JgIH07XG4gICAgICB0aGlzLmZpZWxkSWRNZW1vLnNldChmaWVsZCwgaWRzKTtcbiAgICB9XG4gICAgcmV0dXJuIGlkcztcbiAgfVxuXG4gIC8qKiBJZCBkZWwgbGFiZWwgdmlzaWJsZSBkZWwgY2FtcG8gKGNvbnN1bWlkbyBwb3IgZWwgdGVtcGxhdGUgKyBlbCBpbnB1dCkuICovXG4gIGxhYmVsSWQoZmllbGQ6IElucHV0TWV0YWRhdGEpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmZpZWxkSWRzKGZpZWxkKS5sYWJlbElkO1xuICB9XG5cbiAgLyoqIElkIGRlbCBjb250ZW5lZG9yIGRlIGVycm9yIChgdmFsLWhpbnRgKSBkZWwgY2FtcG8uICovXG4gIGVycm9ySWQoZmllbGQ6IElucHV0TWV0YWRhdGEpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmZpZWxkSWRzKGZpZWxkKS5lcnJvcklkO1xuICB9XG5cbiAgZ2V0RmllbGRQcm9wKGZpZWxkOiBJbnB1dE1ldGFkYXRhKTogSW5wdXRNZXRhZGF0YSB7XG4gICAgY29uc3QgY2FjaGVkID0gdGhpcy5maWVsZFByb3BNZW1vLmdldChmaWVsZCk7XG4gICAgaWYgKGNhY2hlZCkgcmV0dXJuIGNhY2hlZDtcblxuICAgIGlmICghZmllbGQudG9rZW4pIHtcbiAgICAgIGZpZWxkLnRva2VuID0gYGlucHV0LSR7ZmllbGQudHlwZX0tJHtmaWVsZC5uYW1lfWA7XG4gICAgfVxuXG4gICAgY29uc3QgaWRzID0gdGhpcy5maWVsZElkcyhmaWVsZCk7XG5cbiAgICBsZXQgcmVzdWx0OiBJbnB1dE1ldGFkYXRhO1xuICAgIGlmIChmaWVsZC50eXBlID09PSB0aGlzLnR5cGVzLk5VTUJFUl9GUk9NX1RPKSB7XG4gICAgICBjb25zdCBmcm9tQ29udHJvbCA9IHRoaXMuZ2V0Q29udHJvbChgJHtmaWVsZC5uYW1lfV9mcm9tYCk7XG4gICAgICBjb25zdCB0b0NvbnRyb2wgPSB0aGlzLmdldENvbnRyb2woYCR7ZmllbGQubmFtZX1fdG9gKTtcbiAgICAgIHJlc3VsdCA9IHsgLi4uZmllbGQsIGZyb21Db250cm9sLCB0b0NvbnRyb2wsIGNvbnRyb2w6IHVuZGVmaW5lZCwgbGFiZWxJZDogaWRzLmxhYmVsSWQsIGVycm9ySWQ6IGlkcy5lcnJvcklkIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmdldENvbnRyb2woZmllbGQubmFtZSk7XG4gICAgICByZXN1bHQgPSB7IC4uLmZpZWxkLCBjb250cm9sLCBsYWJlbElkOiBpZHMubGFiZWxJZCwgZXJyb3JJZDogaWRzLmVycm9ySWQgfTtcbiAgICB9XG4gICAgdGhpcy5maWVsZFByb3BNZW1vLnNldChmaWVsZCwgcmVzdWx0KTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIEFkYXB0ZXIgcGFyYSBsb3MgdGlwb3MgY29sYXBzYWRvcyBlbiBgdmFsLXRleHQtaW5wdXRgIChFTUFJTC9OVU1CRVIvSE9VUikuXG4gICAqIFJldXNhIGBnZXRGaWVsZFByb3BgIChjb24gc3UgY29udHJvbCArIHdpcmluZyBkZSBpZHMpIGUgaW55ZWN0YSBlbCBgaW5wdXRUeXBlYFxuICAgKiBIVE1MIG5hdGl2by4gTWVtb2l6YWRvIHBvciByZWZlcmVuY2lhIGRlIGZpZWxkIHBhcmEgbm8gcm9tcGVyIGxhIGlkZW50aWRhZC5cbiAgICovXG4gIGdldFRleHRJbnB1dFByb3AoZmllbGQ6IElucHV0TWV0YWRhdGEsIGlucHV0VHlwZTogTm9uTnVsbGFibGU8SW5wdXRNZXRhZGF0YVsnaW5wdXRUeXBlJ10+KTogSW5wdXRNZXRhZGF0YSB7XG4gICAgY29uc3QgY2FjaGVkID0gdGhpcy50ZXh0SW5wdXRQcm9wTWVtby5nZXQoZmllbGQpO1xuICAgIGlmIChjYWNoZWQpIHJldHVybiBjYWNoZWQ7XG5cbiAgICBjb25zdCBiYXNlID0gdGhpcy5nZXRGaWVsZFByb3AoZmllbGQpO1xuICAgIGNvbnN0IHJlc3VsdDogSW5wdXRNZXRhZGF0YSA9IHsgLi4uYmFzZSwgaW5wdXRUeXBlIH07XG4gICAgdGhpcy50ZXh0SW5wdXRQcm9wTWVtby5zZXQoZmllbGQsIHJlc3VsdCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGFwdGVyIHBhcmEgU0VMRUNUIOKAlCBpZ3VhbCBxdWUgYGdldEZpZWxkUHJvcGAgcGVybyBsaW1waWEgYGxhYmVsYC5cbiAgICogdmFsLWZvcm0geWEgcmVuZGVyaXphIGVsIHTDrXR1bG8gZGVsIGNhbXBvIGNvbiBgPHZhbC10aXRsZT5gIGFycmliYSBkZWwgaW5wdXQ7XG4gICAqIHNpIGFkZW3DoXMgcGFzw6FyYW1vcyBgbGFiZWxgIGFsIGA8aW9uLXNlbGVjdD5gLCBlc3RlIGxvIHBpbnRhIERFTlRSTyBkZWwgcGlsbFxuICAgKiDihpIgcmVkdW5kYW5jaWEgdmlzdWFsIChcIlRpcG9cIiBkb3MgdmVjZXMpLiBSZXVzYSBlbCBtaXNtbyBtZW1vIChjb24gbGEgZW50cmFkYVxuICAgKiB5YSBsYWJlbC1zdHJpcHBlZCkgcGFyYSBubyByb21wZXIgbGEgaWRlbnRpZGFkIGRlIHJlZmVyZW5jaWEuXG4gICAqL1xuICBnZXRTZWxlY3RQcm9wKGZpZWxkOiBJbnB1dE1ldGFkYXRhKTogSW5wdXRNZXRhZGF0YSB7XG4gICAgY29uc3QgY2FjaGVkID0gdGhpcy5zZWxlY3RQcm9wTWVtby5nZXQoZmllbGQpO1xuICAgIGlmIChjYWNoZWQpIHJldHVybiBjYWNoZWQ7XG5cbiAgICBjb25zdCBiYXNlID0gdGhpcy5nZXRGaWVsZFByb3AoZmllbGQpO1xuICAgIGNvbnN0IHJlc3VsdDogSW5wdXRNZXRhZGF0YSA9IHsgLi4uYmFzZSwgbGFiZWw6ICcnIH07XG4gICAgdGhpcy5zZWxlY3RQcm9wTWVtby5zZXQoZmllbGQsIHJlc3VsdCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGFwdGVyIOKAlCBjb252aWVydGUgdW4gYElucHV0TWV0YWRhdGFgIChjb24gdHlwZT1IQU5ETEUpIGEgYFVzZXJuYW1lSW5wdXRNZXRhZGF0YWAuXG4gICAqIEVsIGNoZWNrIGRlIGRpc3BvbmliaWxpZGFkIHNlIHJlc3VlbHZlIGRlbnRybyBkZWwgY29tcG9uZW50IChBdXRoU2VydmljZSBpbnllY3RhZG8pO1xuICAgKiBlbCBjYWxsZXIgcHVlZGUgc29icmVzY3JpYmlybG8gcGFzYW5kbyBgZmllbGQuZXJyb3JzYCBvIHVuIGBVc2VybmFtZUlucHV0TWV0YWRhdGFgXG4gICAqIGN1c3RvbSB1c2FuZG8gdHlwZT1URVhUIHNpIG5lY2VzaXRhIG90cmEgZnVlbnRlIGRlIHRydXRoLlxuICAgKi9cbiAgZ2V0VXNlcm5hbWVQcm9wKGZpZWxkOiBJbnB1dE1ldGFkYXRhKTogVXNlcm5hbWVJbnB1dE1ldGFkYXRhIHtcbiAgICBjb25zdCBjYWNoZWQgPSB0aGlzLnVzZXJuYW1lUHJvcE1lbW8uZ2V0KGZpZWxkKTtcbiAgICBpZiAoY2FjaGVkKSByZXR1cm4gY2FjaGVkO1xuXG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZ2V0Q29udHJvbChmaWVsZC5uYW1lKTtcbiAgICBjb25zdCByZXN1bHQ6IFVzZXJuYW1lSW5wdXRNZXRhZGF0YSA9IHtcbiAgICAgIGNvbnRyb2w6IGNvbnRyb2wgYXMgRm9ybUNvbnRyb2w8c3RyaW5nPixcbiAgICAgIGxhYmVsOiBmaWVsZC5sYWJlbCxcbiAgICAgIGhpbnQ6IGZpZWxkLmhpbnQsXG4gICAgICBwbGFjZWhvbGRlcjogZmllbGQucGxhY2Vob2xkZXIsXG4gICAgICBtaW5MZW5ndGg6IGZpZWxkLnJhbmdlPy5taW4sXG4gICAgICBtYXhMZW5ndGg6IGZpZWxkLnJhbmdlPy5tYXgsXG4gICAgICBlcnJvcnM6IGZpZWxkLmVycm9ycyxcbiAgICAgIHN0YXRlOiBmaWVsZC5zdGF0ZSxcbiAgICB9O1xuICAgIHRoaXMudXNlcm5hbWVQcm9wTWVtby5zZXQoZmllbGQsIHJlc3VsdCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGFwdGVyIOKAlCBjb252aWVydGUgdW4gYElucHV0TWV0YWRhdGFgIChjb24gdHlwZT1EQVRFX1BJQ0tFUikgYSBgRGF0ZVBpY2tlck1ldGFkYXRhYC5cbiAgICogbGFiZWwvaGludCBzZSBvbWl0ZW4g4oCUIHZhbC1mb3JtIGxvcyByZW5kZXJpemEgdsOtYSAuZmllbGQtbmFtZS8uZmllbGQtZGVzY3JpcHRpb24uXG4gICAqL1xuICBnZXREYXRlUGlja2VyUHJvcChmaWVsZDogSW5wdXRNZXRhZGF0YSk6IERhdGVQaWNrZXJNZXRhZGF0YSB7XG4gICAgY29uc3QgY2FjaGVkID0gdGhpcy5kYXRlUGlja2VyUHJvcE1lbW8uZ2V0KGZpZWxkKTtcbiAgICBpZiAoY2FjaGVkKSByZXR1cm4gY2FjaGVkO1xuXG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZ2V0Q29udHJvbChmaWVsZC5uYW1lKSBhcyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPjtcbiAgICBjb25zdCByZXN1bHQ6IERhdGVQaWNrZXJNZXRhZGF0YSA9IHtcbiAgICAgIGNvbnRyb2wsXG4gICAgICBwbGFjZWhvbGRlcjogZmllbGQucGxhY2Vob2xkZXIgfHwgdW5kZWZpbmVkLFxuICAgICAgdG9rZW46IGZpZWxkLnRva2VuLFxuICAgIH07XG4gICAgdGhpcy5kYXRlUGlja2VyUHJvcE1lbW8uc2V0KGZpZWxkLCByZXN1bHQpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogQWRhcHRlciDigJQgY29udmllcnRlIHVuIGBJbnB1dE1ldGFkYXRhYCAoY29uIHR5cGU9VEVYVEFSRUEpIGEgYFRleHRhcmVhSW5wdXRNZXRhZGF0YWAuXG4gICAqIERlZmF1bHRzIHNlbnNhdG9zOiBhdXRvR3JvdyArIGNvdW50ZXIgaGFiaWxpdGFkbywgNC0xMiByb3dzLlxuICAgKi9cbiAgZ2V0VGV4dGFyZWFQcm9wKGZpZWxkOiBJbnB1dE1ldGFkYXRhKTogVGV4dGFyZWFJbnB1dE1ldGFkYXRhIHtcbiAgICBjb25zdCBjYWNoZWQgPSB0aGlzLnRleHRhcmVhUHJvcE1lbW8uZ2V0KGZpZWxkKTtcbiAgICBpZiAoY2FjaGVkKSByZXR1cm4gY2FjaGVkO1xuXG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZ2V0Q29udHJvbChmaWVsZC5uYW1lKTtcbiAgICBjb25zdCByZXN1bHQ6IFRleHRhcmVhSW5wdXRNZXRhZGF0YSA9IHtcbiAgICAgIGNvbnRyb2w6IGNvbnRyb2wgYXMgRm9ybUNvbnRyb2w8c3RyaW5nPixcbiAgICAgIG5hbWU6IGZpZWxkLm5hbWUsXG4gICAgICAvLyBsYWJlbCB2YWPDrW8g4oCUIHZhbC1mb3JtIHlhIHJlbmRlcml6YSBlbCB0w610dWxvIGNvbiA8dmFsLXRpdGxlPiBhcnJpYmEgZGVsXG4gICAgICAvLyBpbnB1dC4gUGFzYXJsbyBhbCA8aW9uLXRleHRhcmVhPiBkdXBsaWNhcsOtYSBlbCB0ZXh0byAoXCJEZXNjcmlwY2nDs25cIiB4MikuXG4gICAgICBsYWJlbDogJycsXG4gICAgICBoaW50OiBmaWVsZC5oaW50LFxuICAgICAgcGxhY2Vob2xkZXI6IGZpZWxkLnBsYWNlaG9sZGVyLFxuICAgICAgYXV0b0dyb3c6IHRydWUsXG4gICAgICBtaW5Sb3dzOiA0LFxuICAgICAgbWF4Um93czogMTIsXG4gICAgICBtYXhMZW5ndGg6IGZpZWxkLnJhbmdlPy5tYXggPz8gMjAwMCxcbiAgICAgIHNob3dDb3VudGVyOiB0cnVlLFxuICAgICAgY291bnRlckZvcm1hdDogJ2N1cnJlbnQnLFxuICAgICAgZmlsbDogJ291dGxpbmUnLFxuICAgICAgZXJyb3JzOiBmaWVsZC5lcnJvcnMsXG4gICAgICBzdGF0ZTogZmllbGQuc3RhdGUsXG4gICAgfTtcbiAgICB0aGlzLnRleHRhcmVhUHJvcE1lbW8uc2V0KGZpZWxkLCByZXN1bHQpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBnZXQgaXNBdEVuZE9mRm9ybSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNBdEVuZCh0aGlzLmVsZW1lbnRSZWYpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZ1ZXJ6YSBtb3N0cmFyIGxvcyBlcnJvcmVzIGRlIHZhbGlkYWNpw7NuIChtYXJjYSB0b2RvcyBsb3MgY29udHJvbGVzIGNvbW9cbiAgICogdG91Y2hlZCkgeSBkZXZ1ZWx2ZSBzaSBlbCBmb3JtIGVzIHbDoWxpZG8uIFBlbnNhZG8gcGFyYSBlbCBtb2RvIGBjb250cm9sbGVkYDpcbiAgICogZWwgaG9zdCBsbyBpbnZvY2EgZW4gc3UgXCJTaWd1aWVudGVcIiBwYXJhIGdhdGVhciBsYSBuYXZlZ2FjacOzbiBkZWwgd2l6YXJkLlxuICAgKi9cbiAgdmFsaWRhdGUoKTogYm9vbGVhbiB7XG4gICAgdGhpcy5mb3JtLm1hcmtBbGxBc1RvdWNoZWQoKTtcbiAgICByZXR1cm4gdGhpcy5mb3JtLnZhbGlkO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hcmNhIHRvZG9zIGxvcyBjb250cm9sZXMgY29tbyB0b3VjaGVkIChtdWVzdHJhIGVycm9yZXMpIHNpbiBkZXZvbHZlciBuYWRhLlxuICAgKiBBbGlhcyBzZW3DoW50aWNvIGRlIGxhIHByaW1lcmEgbWl0YWQgZGUgYHZhbGlkYXRlKClgLlxuICAgKi9cbiAgbWFya0FsbFRvdWNoZWQoKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtLm1hcmtBbGxBc1RvdWNoZWQoKTtcbiAgfVxuXG4gIGdldCBGb3JtKCk6IEZvcm1Hcm91cCB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybTtcbiAgfVxuXG4gIGdldCBGb3JtU3RhdGUoKTogeyBmb3JtOiBGb3JtR3JvdXA7IGRhdGE6IEZvcm1NZXRhZGF0YSB9IHtcbiAgICByZXR1cm4ge1xuICAgICAgZm9ybTogdGhpcy5Gb3JtLFxuICAgICAgZGF0YTogdGhpcy5wcm9wcyxcbiAgICB9O1xuICB9XG5cbiAgZ2V0IGFjdGlvbnMoKTogQnV0dG9uTWV0YWRhdGFbXSB7XG4gICAgLy8gUmV0b3JuYXIgZGVsIGNhY2hlIHBhcmEgZXZpdGFyIGNyZWFyIG51ZXZvcyBvYmpldG9zIGVuIGNhZGEgY2ljbG8gZGUgY2hhbmdlIGRldGVjdGlvblxuICAgIHJldHVybiB0aGlzLmFjdGlvbnNDYWNoZTtcbiAgfVxuICAvLyDilIDilIAgU3VnZXJlbmNpYSBkZSBkb21pbmlvIGRlIGNvcnJlbyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbiAgLy9cbiAgLy8gVml2ZSBlbiBlbCBmb3JtdWxhcmlvIHkgbm8gZW4gY2FkYSBhcHA6IGVsIGNhbXBvIEVNQUlMIHlhIGVzdMOhIGNlbnRyYWxpemFkb1xuICAvLyBhY8OhLCBhc8OtIHF1ZSB0b2RhIGFwcCBkZWwgZmFjdG9yeSBoZXJlZGEgbGEgYXl1ZGEgc2luIGVzY3JpYmlyIHVuYSBsw61uZWEuXG4gIC8vIE5hY2UgZGUgdW4gcmVib3RlIHJlYWwgZW4gcHJvZHVjY2nDs246IHVuIHR5cG8gZW4gZWwgZG9taW5pbyBkZWrDsyBhIHVuYVxuICAvLyBjb21wcmFkb3JhIHNpbiBzdXMgZW50cmFkYXMgeSBuYWRpZSBzZSBlbnRlcsOzIGhhc3RhIHF1ZSByZWNsYW3Dsy5cblxuICBwcml2YXRlIHJlYWRvbmx5IGkxOG5TdWdnZXN0aW9uID0gaW5qZWN0KEkxOG5TZXJ2aWNlLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICAvKiogU3VnZXJlbmNpYXMgZGVzY2FydGFkYXMgcG9yIGVsIHVzdWFyaW8sIHBhcmEgbm8gdm9sdmVyIGEgaW5zaXN0aXIuICovXG4gIHByaXZhdGUgcmVhZG9ubHkgc3VnZ2VzdGlvbkRpc21pc3NlZCA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gIC8qKlxuICAgKiBEZXZ1ZWx2ZSBlbCBjb3JyZW8gY29ycmVnaWRvIGEgc3VnZXJpciwgbyBudWxsLlxuICAgKlxuICAgKiBTb2xvIHN1Z2llcmUgY3VhbmRvIGVsIGNhbXBvIE5PIHRpZW5lIGZvY286IG1pZW50cmFzIHNlIGVzY3JpYmUsIHRvZG9cbiAgICogY29ycmVvIGEgbWVkaW8gdGVjbGVhciBwYXJlY2UgdW4gdHlwbyB5IGxhIHN1Z2VyZW5jaWEgcGFycGFkZWFyw61hLlxuICAgKi9cbiAgZW1haWxTdWdnZXN0aW9uRm9yKGZpZWxkOiBJbnB1dE1ldGFkYXRhKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgLy8gRWwgY29udHJvbCBOTyB2aWVuZSBlbiBlbCBmaWVsZCBjcnVkbzogdmFsLWZvcm0gbG8gcmVzdWVsdmUgcG9yIG5vbWJyZVxuICAgIC8vIGNvbnRyYSBzdSBwcm9waW8gRm9ybUdyb3VwIChgZ2V0Q29udHJvbGApLiBMZWVyIGBmaWVsZC5jb250cm9sYCBkZXZvbHbDrWFcbiAgICAvLyB1bmRlZmluZWQgc2llbXByZSwgYXPDrSBxdWUgbGEgc3VnZXJlbmNpYSBubyBhcGFyZWPDrWEgbnVuY2Eg4oCUIHkgc29sbyBzZVxuICAgIC8vIG5vdMOzIGNvbiBlbCBlMmUsIHBvcnF1ZSBlbCBzcGVjIGRlbCBjb21wb25lbnRlIGxlIHBhc2FiYSBlbCBjb250cm9sIGFcbiAgICAvLyBtYW5vIHkgcG9yIGVzbyBwYXNhYmEgZW4gdmVyZGUuXG4gICAgY29uc3QgY29udHJvbCA9IGZpZWxkLmNvbnRyb2wgPz8gdGhpcy5jb250cm9sUG9yTm9tYnJlKGZpZWxkLm5hbWUpO1xuICAgIGNvbnN0IHZhbG9yID0gdHlwZW9mIGNvbnRyb2w/LnZhbHVlID09PSAnc3RyaW5nJyA/IGNvbnRyb2wudmFsdWUgOiAnJztcbiAgICBpZiAoIXZhbG9yIHx8ICFjb250cm9sPy50b3VjaGVkKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCBzdWdlcmlkbyA9IHN1Z2dlc3RFbWFpbEZpeCh2YWxvcik7XG4gICAgaWYgKCFzdWdlcmlkbyB8fCB0aGlzLnN1Z2dlc3Rpb25EaXNtaXNzZWQuaGFzKHN1Z2VyaWRvKSkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIHN1Z2VyaWRvO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1c2NhIGVsIGNvbnRyb2wgc2luIGV4cGxvdGFyIHNpIGVsIGZvcm11bGFyaW8gdG9kYXbDrWEgbm8gc2UgY29uc3RydXnDsy5cbiAgICogYGdldENvbnRyb2xgIGFzdW1lIGBGb3JtYCB5YSBpbmljaWFsaXphZG87IGFjw6Egc2UgbGxhbWEgZGVzZGUgZWwgdGVtcGxhdGUsXG4gICAqIHF1ZSBwdWVkZSBldmFsdWFyc2UgYW50ZXMgZGUgYG5nT25Jbml0YCBlbiBhbGd1bm9zIGNpY2xvcy5cbiAgICovXG4gIHByaXZhdGUgY29udHJvbFBvck5vbWJyZShub21icmU/OiBzdHJpbmcpIHtcbiAgICBpZiAoIW5vbWJyZSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4gdGhpcy5Gb3JtPy5nZXQobm9tYnJlKSA/PyB1bmRlZmluZWQ7XG4gIH1cblxuICBlbWFpbFN1Z2dlc3Rpb25RdWVzdGlvbihzdWdlcmlkbzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCB0ZXh0byA9IHRoaXMudGV4dG9JMThuKCdlbWFpbFN1Z2dlc3Rpb25RdWVzdGlvbicsICfCv1F1aXNpc3RlIGRlY2lyIHtlbWFpbH0/Jyk7XG4gICAgcmV0dXJuIHRleHRvLnJlcGxhY2UoJ3tlbWFpbH0nLCBzdWdlcmlkbyk7XG4gIH1cblxuICBlbWFpbFN1Z2dlc3Rpb25BcHBseUxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudGV4dG9JMThuKCdlbWFpbFN1Z2dlc3Rpb25BcHBseScsICdTw60sIGNvcnJlZ2lyJyk7XG4gIH1cblxuICAvKipcbiAgICogVHJhZHVjZSBjb24gcmVzcGFsZG8gcmVhbC5cbiAgICpcbiAgICogYEkxOG5TZXJ2aWNlLnQoKWAgTk8gZGV2dWVsdmUgbnVsbCBjdWFuZG8gZmFsdGEgbGEgY2xhdmU6IGRldnVlbHZlIHZhY8OtbyBvXG4gICAqIHVuIHBsYWNlaG9sZGVyIGBbbmFtZXNwYWNlLmtleV1gLiBDb24gYD8/YCBlbCByZXNwYWxkbyBudW5jYSBlbnRyYWJhIHkgZWxcbiAgICogcmVuZ2zDs24gc2Fsw61hIGVuIGJsYW5jbyBlbiBjdWFscXVpZXIgYXBwIHF1ZSBubyByZWdpc3RyYXJhIGxhIGNsYXZlLiBMb1xuICAgKiBlbmNvbnRyw7MgZWwgc3BlYyBkZWwgY29tcG9uZW50ZSwgbm8gbGEgcmV2aXNpw7NuIGEgb2pvLlxuICAgKi9cbiAgcHJpdmF0ZSB0ZXh0b0kxOG4oa2V5OiBzdHJpbmcsIHJlc3BhbGRvOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHRleHRvID0gdGhpcy5pMThuU3VnZ2VzdGlvbj8udChrZXkpID8/ICcnO1xuICAgIGlmICghdGV4dG8gfHwgdGV4dG8uc3RhcnRzV2l0aCgnWycpKSByZXR1cm4gcmVzcGFsZG87XG4gICAgcmV0dXJuIHRleHRvO1xuICB9XG5cbiAgLyoqIEFwbGljYSBsYSBjb3JyZWNjacOzbi4gRXMgbGEgw7puaWNhIHbDrWE6IG5hZGEgc2UgcmVlc2NyaWJlIHNpbiBlc3RlIGNsaWMuICovXG4gIGFwcGx5RW1haWxTdWdnZXN0aW9uKGZpZWxkOiBJbnB1dE1ldGFkYXRhLCBzdWdlcmlkbzogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgY29udHJvbCA9IGZpZWxkLmNvbnRyb2wgPz8gdGhpcy5jb250cm9sUG9yTm9tYnJlKGZpZWxkLm5hbWUpO1xuICAgIGNvbnRyb2w/LnNldFZhbHVlKHN1Z2VyaWRvKTtcbiAgICBjb250cm9sPy5tYXJrQXNEaXJ0eSgpO1xuICAgIC8vIEFwbGljYWRhIGRlamEgZGUgb2ZyZWNlcnNlOyBzaSBlbCB1c3VhcmlvIHZ1ZWx2ZSBhIGVzY3JpYmlyIG1hbCwgZWxcbiAgICAvLyB2YWxvciBzZXLDoSBvdHJvIHkgbGEgc3VnZXJlbmNpYSByZWFwYXJlY2UuXG4gICAgdGhpcy5zdWdnZXN0aW9uRGlzbWlzc2VkLmFkZChzdWdlcmlkbyk7XG4gIH1cblxufVxuIl19
|
|
864
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2Zvcm0vZm9ybS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxTQUFTLEVBR1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBRU4sTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXVDLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFMUYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBRXhGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxhQUFhLEVB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QiwyQkFBMkI7d0JBQzNCLG1CQUFtQjt3QkFDbkIsc0JBQXNCO3dCQUN0QiwyQkFBMkI7d0JBQzNCLG1CQUFtQjtxQkFDcEIsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErSVQ7eUdBS0QsS0FBSztzQkFESixLQUFLO2dCQUlOLFFBQVE7c0JBRFAsTUFBTTtnQkFJUCxhQUFhO3NCQURaLE1BQU07Z0JBSVAsU0FBUztzQkFEUixNQUFNO2dCQUlQLGNBQWM7c0JBRGIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIERvQ2hlY2ssXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIGluamVjdCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4vaTE4bi5zZXJ2aWNlJztcbmltcG9ydCB7IHN1Z2dlc3RFbWFpbEZpeCB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Zvcm1zL2VtYWlsLXN1Z2dlc3Rpb24nO1xuaW1wb3J0IHsgaXNBdEVuZCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC91dGlscy9kb20nO1xuaW1wb3J0IHsgRGlzcGxheUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2Rpc3BsYXkvZGlzcGxheS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGl2aWRlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2RpdmlkZXIvZGl2aWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGl0bGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy90aXRsZS90aXRsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uR3JvdXBDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvYnV0dG9uLWdyb3VwL2J1dHRvbi1ncm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2hlY2tJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9jaGVjay1pbnB1dC9jaGVjay1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tbWVudElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2NvbW1lbnQtaW5wdXQvY29tbWVudC1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0ZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2RhdGUtaW5wdXQvZGF0ZS1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0ZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0ZVBpY2tlck1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2RhdGUtcGlja2VyL3R5cGVzJztcbmltcG9ydCB7IEZpbGVJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9maWxlLWlucHV0L2ZpbGUtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEhpbnRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvaGludC9oaW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOdW1iZXJGcm9tVG9Db21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvbnVtYmVyLWZyb20tdG8vbnVtYmVyLWZyb20tdG8uY29tcG9uZW50JztcbmltcG9ydCB7IFBhc3N3b3JkSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvcGFzc3dvcmQtaW5wdXQvcGFzc3dvcmQtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFBpbklucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3Bpbi1pbnB1dC9waW4taW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFJhZGlvSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvcmFkaW8taW5wdXQvcmFkaW8taW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFNlYXJjaFNlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3NlbGVjdC1pbnB1dC9zZWxlY3QtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFNlbGVjdFNlYXJjaENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9zZWxlY3Qtc2VhcmNoL3NlbGVjdC1zZWFyY2guY29tcG9uZW50JztcbmltcG9ydCB7IE11bHRpU2VsZWN0U2VhcmNoQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL211bHRpLXNlbGVjdC1zZWFyY2gvbXVsdGktc2VsZWN0LXNlYXJjaC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGV4dElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3RleHQtaW5wdXQvdGV4dC1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGV4dGFyZWFJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy90ZXh0YXJlYS1pbnB1dC90ZXh0YXJlYS1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGV4dGFyZWFJbnB1dE1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3RleHRhcmVhLWlucHV0L3R5cGVzJztcbmltcG9ydCB7IFBob25lSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvcGhvbmUtaW5wdXQvcGhvbmUtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFRvZ2dsZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3RvZ2dsZS1pbnB1dC90b2dnbGUtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IENoZWNrYm94UmFkaW9JbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9jaGVja2JveC1yYWRpby1pbnB1dC9jaGVja2JveC1yYWRpby1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2hpcFNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9jaGlwLXNlbGVjdC9jaGlwLXNlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVXNlcm5hbWVJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy91c2VybmFtZS1pbnB1dC91c2VybmFtZS1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVXNlcm5hbWVJbnB1dE1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3VzZXJuYW1lLWlucHV0L3R5cGVzJztcbmltcG9ydCB7IEF0dGFjaG1lbnRVcGxvYWRlckNvbXBvbmVudCB9IGZyb20gJy4uL2F0dGFjaG1lbnQtdXBsb2FkZXIvYXR0YWNobWVudC11cGxvYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXR0YWNobWVudEl0ZW0gfSBmcm9tICcuLi9hdHRhY2htZW50LXVwbG9hZGVyL3R5cGVzJztcbmltcG9ydCB7IEJ1dHRvbk1ldGFkYXRhLCBDb21wb25lbnRTdGF0ZXMsIEZvcm1NZXRhZGF0YSwgRm9ybVN1Ym1pdCwgSW5wdXRNZXRhZGF0YSwgSW5wdXRUeXBlIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtZm9ybScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBEaXNwbGF5Q29tcG9uZW50LFxuICAgIFRpdGxlQ29tcG9uZW50LFxuICAgIFRleHRJbnB1dENvbXBvbmVudCxcbiAgICBUZXh0YXJlYUlucHV0Q29tcG9uZW50LFxuICAgIENoZWNrSW5wdXRDb21wb25lbnQsXG4gICAgQnV0dG9uR3JvdXBDb21wb25lbnQsXG4gICAgRGl2aWRlckNvbXBvbmVudCxcbiAgICBIaW50Q29tcG9uZW50LFxuICAgIENvbW1lbnRJbnB1dENvbXBvbmVudCxcbiAgICBEYXRlSW5wdXRDb21wb25lbnQsXG4gICAgRmlsZUlucHV0Q29tcG9uZW50LFxuICAgIE51bWJlckZyb21Ub0NvbXBvbmVudCxcbiAgICBSYWRpb0lucHV0Q29tcG9uZW50LFxuICAgIFBhc3N3b3JkSW5wdXRDb21wb25lbnQsXG4gICAgUGluSW5wdXRDb21wb25lbnQsXG4gICAgU2VsZWN0U2VhcmNoQ29tcG9uZW50LFxuICAgIE11bHRpU2VsZWN0U2VhcmNoQ29tcG9uZW50LFxuICAgIFNlYXJjaFNlbGVjdG9yQ29tcG9uZW50LFxuICAgIFBob25lSW5wdXRDb21wb25lbnQsXG4gICAgVG9nZ2xlSW5wdXRDb21wb25lbnQsXG4gICAgQ2hlY2tib3hSYWRpb0lucHV0Q29tcG9uZW50LFxuICAgIENoaXBTZWxlY3RDb21wb25lbnQsXG4gICAgVXNlcm5hbWVJbnB1dENvbXBvbmVudCxcbiAgICBBdHRhY2htZW50VXBsb2FkZXJDb21wb25lbnQsXG4gICAgRGF0ZVBpY2tlckNvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImNvbnRhaW5lclwiXG4gICAgICBbY2xhc3MuY29udGFpbmVyLS1zdGlja3ktZm9vdGVyXT1cInByb3BzLnN0aWNreUZvb3RlciAmJiAhcHJvcHMuY29udHJvbGxlZFwiXG4gICAgICBbc3R5bGUuLS12YWwtZm9ybS1maWVsZC1nYXBdPVwicHJvcHMuZmllbGRTcGFjaW5nICE9IG51bGwgPyBwcm9wcy5maWVsZFNwYWNpbmcgKyAncHgnIDogbnVsbFwiXG4gICAgPlxuICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gICAgICAgIEBpZiAocHJvcHMubmFtZSkge1xuICAgICAgICAgIDx2YWwtZGlzcGxheVxuICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgY29udGVudDogcHJvcHMubmFtZSxcbiAgICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgICAgc2l6ZTogJ3NtYWxsJyxcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgID48L3ZhbC1kaXNwbGF5PlxuICAgICAgICB9XG4gICAgICAgIEBmb3IgKHMgb2YgcHJvcHMuc2VjdGlvbnM7IHRyYWNrIHMubmFtZSkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uXCI+XG4gICAgICAgICAgICA8dmFsLXRpdGxlIFtwcm9wc109XCJ7IGNvbnRlbnQ6IHMubmFtZSwgc2l6ZTogJ2xhcmdlJywgY29sb3I6ICcnLCBib2xkOiBmYWxzZSB9XCI+PC92YWwtdGl0bGU+XG4gICAgICAgICAgICBAZm9yIChmIG9mIHMuZmllbGRzOyB0cmFjayBmLm5hbWUpIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0XCIgW2F0dHIuZGF0YS10ZXN0aWRdPVwiZi50b2tlblwiPlxuICAgICAgICAgICAgICAgIEBpZiAoZi50eXBlICE9PSB0eXBlcy5QSE9ORSAmJiBmLnR5cGUgIT09IHR5cGVzLkhBTkRMRSAmJiBmLnR5cGUgIT09IHR5cGVzLkFUVEFDSE1FTlQpIHtcbiAgICAgICAgICAgICAgICAgIDxkaXYgW2F0dHIuaWRdPVwibGFiZWxJZChmKVwiPlxuICAgICAgICAgICAgICAgICAgICA8dmFsLXRpdGxlIFtwcm9wc109XCJ7IGNvbnRlbnQ6IGYubGFiZWwsIHNpemU6ICdzbWFsbCcsIGNvbG9yOiAnZGFyaycsIGJvbGQ6IGZhbHNlIH1cIj48L3ZhbC10aXRsZT5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaWYgKGYuZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmllbGQtZGVzY3JpcHRpb25cIj57eyBmLmRlc2NyaXB0aW9uIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAc3dpdGNoIChmLnR5cGUpIHtcbiAgICAgICAgICAgICAgICAgIEBjYXNlICh0eXBlcy5URVhUKSB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtdGV4dC1pbnB1dCBbcHJvcHNdPVwiZ2V0RmllbGRQcm9wKGYpXCI+PC92YWwtdGV4dC1pbnB1dD5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIEBjYXNlICh0eXBlcy5URVhUQVJFQSkge1xuICAgICAgICAgICAgICAgICAgICA8dmFsLXRleHRhcmVhLWlucHV0IFtwcm9wc109XCJnZXRUZXh0YXJlYVByb3AoZilcIj48L3ZhbC10ZXh0YXJlYS1pbnB1dD5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIEBjYXNlICh0eXBlcy5DSEVDSykge1xuICAgICAgICAgICAgICAgICAgICA8dmFsLWNoZWNrLWlucHV0IFtwcm9wc109XCJnZXRGaWVsZFByb3AoZilcIj48L3ZhbC1jaGVjay1pbnB1dD5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIEBjYXNlICh0eXBlcy5DT01NRU5UKSB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtY29tbWVudC1pbnB1dCBbcHJvcHNdPVwiZ2V0RmllbGRQcm9wKGYpXCI+PC92YWwtY29tbWVudC1pbnB1dD5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIEBjYXNlICh0eXBlcy5EQVRFKSB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtZGF0ZS1pbnB1dCBbcHJvcHNdPVwiZ2V0RmllbGRQcm9wKGYpXCI+PC92YWwtZGF0ZS1pbnB1dD5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIEBjYXNlICh0eXBlcy5FTUFJTCkge1xuICAgICAgICAgICAgICAgICAgICA8dmFsLXRleHQtaW5wdXQgW3Byb3BzXT1cImdldFRleHRJbnB1dFByb3AoZiwgJ2VtYWlsJylcIj48L3ZhbC10ZXh0LWlucHV0PlxuICAgICAgICAgICAgICAgICAgICA8IS0tIFN1Z2VyZW5jaWEgZGUgZG9taW5pby4gU2UgT0ZSRUNFLCBubyBzZSBhcGxpY2Egc29sYTogdW5cbiAgICAgICAgICAgICAgICAgICAgICAgICBkb21pbmlvIGNvcnBvcmF0aXZvIGxlZ8OtdGltbyBwdWVkZSBwYXJlY2Vyc2UgYSB1bm9cbiAgICAgICAgICAgICAgICAgICAgICAgICBtYXNpdm8sIHkgY29ycmVnaXJsbyBwb3Igc3UgY3VlbnRhIGxlIGNhbWJpYXLDrWEgZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICBjb3JyZW8gYSBhbGd1aWVuIHF1ZSBsbyBlc2NyaWJpw7MgYmllbi4gLS0+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoZW1haWxTdWdnZXN0aW9uRm9yKGYpOyBhcyBzdWdlcmlkbykge1xuICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZW1haWwtc3VnZ2VzdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgZW1haWxTdWdnZXN0aW9uUXVlc3Rpb24oc3VnZXJpZG8pIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImVtYWlsLXN1Z2dlc3Rpb25fX2FwcGx5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImFwcGx5RW1haWxTdWdnZXN0aW9uKGYsIHN1Z2VyaWRvKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGVtYWlsU3VnZ2VzdGlvbkFwcGx5TGFiZWwoKSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBAY2FzZSAodHlwZXMuRklMRSkge1xuICAgICAgICAgICAgICAgICAgICA8dmFsLWZpbGUtaW5wdXQgW3Byb3BzXT1cImdldEZpZWxkUHJvcChmKVwiPjwvdmFsLWZpbGUtaW5wdXQ+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBAY2FzZSAodHlwZXMuSE9VUikge1xuICAgICAgICAgICAgICAgICAgICA8dmFsLXRleHQtaW5wdXQgW3Byb3BzXT1cImdldFRleHRJbnB1dFByb3AoZiwgJ3RpbWUnKVwiPjwvdmFsLXRleHQtaW5wdXQ+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBAY2FzZSAodHlwZXMuTlVNQkVSKSB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtdGV4dC1pbnB1dCBbcHJvcHNdPVwiZ2V0VGV4dElucHV0UHJvcChmLCAnbnVtYmVyJylcIj48L3ZhbC10ZXh0LWlucHV0PlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGNhc2UgKHR5cGVzLk5VTUJFUl9GUk9NX1RPKSB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtbnVtYmVyLWZyb20tdG8gW3Byb3BzXT1cImdldEZpZWxkUHJvcChmKVwiPjwvdmFsLW51bWJlci1mcm9tLXRvPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGNhc2UgKHR5cGVzLlBBU1NXT1JEKSB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtcGFzc3dvcmQtaW5wdXQgW3Byb3BzXT1cImdldEZpZWxkUHJvcChmKVwiPjwvdmFsLXBhc3N3b3JkLWlucHV0PlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGNhc2UgKHR5cGVzLlBJTl9DT0RFKSB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtcGluLWlucHV0IFtwcm9wc109XCJnZXRGaWVsZFByb3AoZilcIj48L3ZhbC1waW4taW5wdXQ+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBAY2FzZSAodHlwZXMuUkFESU8pIHtcbiAgICAgICAgICAgICAgICAgICAgPHZhbC1yYWRpby1pbnB1dCBbcHJvcHNdPVwiZ2V0RmllbGRQcm9wKGYpXCI+PC92YWwtcmFkaW8taW5wdXQ+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBAY2FzZSAodHlwZXMuU0VMRUNUKSB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtc2VsZWN0LWlucHV0IFtwcm9wc109XCJnZXRTZWxlY3RQcm9wKGYpXCI+PC92YWwtc2VsZWN0LWlucHV0PlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGNhc2UgKHR5cGVzLlNFQVJDSF9TRUxFQ1QpIHtcbiAgICAgICAgICAgICAgICAgICAgPHZhbC1zZWxlY3Qtc2VhcmNoIFtwcm9wc109XCJnZXRGaWVsZFByb3AoZilcIj48L3ZhbC1zZWxlY3Qtc2VhcmNoPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGNhc2UgKHR5cGVzLk1VTFRJX1NFTEVDVCkge1xuICAgICAgICAgICAgICAgICAgICA8dmFsLW11bHRpLXNlbGVjdC1zZWFyY2ggW3Byb3BzXT1cImdldEZpZWxkUHJvcChmKVwiPjwvdmFsLW11bHRpLXNlbGVjdC1zZWFyY2g+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBAY2FzZSAodHlwZXMuUEhPTkUpIHtcbiAgICAgICAgICAgICAgICAgICAgPHZhbC1waG9uZS1pbnB1dCBbcHJvcHNdPVwiZ2V0RmllbGRQcm9wKGYpXCI+PC92YWwtcGhvbmUtaW5wdXQ+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBAY2FzZSAodHlwZXMuSEFORExFKSB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtdXNlcm5hbWUtaW5wdXQgW3Byb3BzXT1cImdldFVzZXJuYW1lUHJvcChmKVwiPjwvdmFsLXVzZXJuYW1lLWlucHV0PlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGNhc2UgKHR5cGVzLlRPR0dMRSkge1xuICAgICAgICAgICAgICAgICAgICA8dmFsLXRvZ2dsZS1pbnB1dCBbcHJvcHNdPVwiZ2V0RmllbGRQcm9wKGYpXCI+PC92YWwtdG9nZ2xlLWlucHV0PlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGNhc2UgKHR5cGVzLkNIRUNLQk9YX1JBRElPKSB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtY2hlY2tib3gtcmFkaW8taW5wdXQgW3Byb3BzXT1cImdldEZpZWxkUHJvcChmKVwiPjwvdmFsLWNoZWNrYm94LXJhZGlvLWlucHV0PlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGNhc2UgKHR5cGVzLkNISVBfU0VMRUNUKSB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtY2hpcC1zZWxlY3QgW3Byb3BzXT1cImdldEZpZWxkUHJvcChmKVwiPjwvdmFsLWNoaXAtc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGNhc2UgKHR5cGVzLkFUVEFDSE1FTlQpIHtcbiAgICAgICAgICAgICAgICAgICAgPHZhbC1hdHRhY2htZW50LXVwbG9hZGVyXG4gICAgICAgICAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBmLmxhYmVsLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGludDogZi5oaW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgdXBsb2FkRm46IGYudXBsb2FkRm4sXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZDogZi5zdGF0ZSA9PT0gc3RhdGVzLkRJU0FCTEVEIHx8IGYuc3RhdGUgPT09IHN0YXRlcy5XT1JLSU5HLFxuICAgICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICAgIChhdHRhY2htZW50c0NoYW5nZSk9XCJvbkF0dGFjaG1lbnRDaGFuZ2UoZi5uYW1lLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvdmFsLWF0dGFjaG1lbnQtdXBsb2FkZXI+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBAY2FzZSAodHlwZXMuREFURV9QSUNLRVIpIHtcbiAgICAgICAgICAgICAgICAgICAgPHZhbC1kYXRlLXBpY2tlciBbcHJvcHNdPVwiZ2V0RGF0ZVBpY2tlclByb3AoZilcIj48L3ZhbC1kYXRlLXBpY2tlcj5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPHZhbC1oaW50IFtwcm9wc109XCJnZXRGaWVsZFByb3AoZilcIiBbaWRdPVwiZXJyb3JJZChmKVwiPjwvdmFsLWhpbnQ+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChwcm9wcy5zaG93RGl2aWRlcnMgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgIDx2YWwtZGl2aWRlciBbcHJvcHNdPVwieyBmaWxsOiAnc29saWQnLCBzaXplOiAnbWVkaXVtJywgY29sb3I6ICdkYXJrJyB9XCI+PC92YWwtZGl2aWRlcj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKCFwcm9wcy5jb250cm9sbGVkKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN1Ym1pdC1hY3Rpb25zXCIgW2NsYXNzLnN1Ym1pdC1hY3Rpb25zLS1zdGlja3ldPVwicHJvcHMuc3RpY2t5Rm9vdGVyXCI+XG4gICAgICAgICAgICA8dmFsLWJ1dHRvbi1ncm91cFxuICAgICAgICAgICAgICBbcHJvcHNdPVwieyBidXR0b25zOiBhY3Rpb25zLCBwb3NpdGlvbjogJ2NlbnRlcicsIGNvbHVtbmVkOiBmYWxzZSB9XCJcbiAgICAgICAgICAgICAgKG9uQ2xpY2spPVwic3VibWl0SGFuZGxlcigkZXZlbnQpXCJcbiAgICAgICAgICAgID48L3ZhbC1idXR0b24tZ3JvdXA+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvZm9ybT5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIERvQ2hlY2sge1xuICBASW5wdXQoKVxuICBwcm9wczogRm9ybU1ldGFkYXRhO1xuXG4gIEBPdXRwdXQoKVxuICBvblN1Ym1pdCA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9ybVN1Ym1pdD4oKTtcblxuICBAT3V0cHV0KClcbiAgb25WYWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+KCk7XG5cbiAgQE91dHB1dCgpXG4gIG9uSW52YWxpZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KClcbiAgb25TZWxlY3RDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHsgZmllbGQ6IHN0cmluZzsgdmFsdWU6IGFueSB9PigpO1xuXG4gIGZvcm06IEZvcm1Hcm91cDtcbiAgdHlwZXMgPSBJbnB1dFR5cGU7XG4gIHN0YXRlcyA9IENvbXBvbmVudFN0YXRlcztcblxuICAvKipcbiAgICogVmFsb3IgYWN0dWFsIGRlbCBmb3JtIChgZm9ybS5nZXRSYXdWYWx1ZSgpYCksIGFjdHVhbGl6YWRvIGVuIGNhZGFcbiAgICogYHZhbHVlQ2hhbmdlc2AuIFBlbnNhZG8gcGFyYSBlbCBtb2RvIGBjb250cm9sbGVkYDogZWwgaG9zdCBsbyBsZWUgdsOtYVxuICAgKiBgQFZpZXdDaGlsZChGb3JtQ29tcG9uZW50KWAgc2luIHRvY2FyIGVsIEZvcm1Hcm91cCBkaXJlY3RvLiBFbiBtb2RvIG5vcm1hbFxuICAgKiB0YW1iacOpbiBlc3TDoSBkaXNwb25pYmxlLlxuICAgKi9cbiAgcmVhZG9ubHkgdmFsdWUgPSBzaWduYWw8UmVjb3JkPHN0cmluZywgYW55Pj4oe30pO1xuXG4gIC8qKlxuICAgKiBFc3RhZG8gZGUgdmFsaWRleiBkZWwgZm9ybSwgYWN0dWFsaXphZG8gZW4gY2FkYSBgc3RhdHVzQ2hhbmdlc2AuIFBhcmEgcXVlXG4gICAqIGVsIGhvc3QgKHdpemFyZCkgaGFiaWxpdGUvZGVzaGFiaWxpdGUgc3UgYm90w7NuIFwiU2lndWllbnRlXCIuXG4gICAqL1xuICByZWFkb25seSB2YWxpZCA9IHNpZ25hbChmYWxzZSk7XG5cbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gIHByaXZhdGUgYWN0aW9uc0NhY2hlOiBCdXR0b25NZXRhZGF0YVtdID0gW107XG5cbiAgLy8gTWVtbyBkZSBnZXRGaWVsZFByb3AvZ2V0VXNlcm5hbWVQcm9wIHBvciByZWZlcmVuY2lhIGRlIGZpZWxkIOKAlCBldml0YVxuICAvLyBjcmVhciB1biBudWV2byBvYmpldG8gcHJvcHMgcG9yIGtleXN0cm9rZSAoY2FkYSBDRCBjeWNsZSBpbnZvY2Fyw61hIGVsXG4gIC8vIHRlbXBsYXRlIGJpbmRpbmcsIG11bHRpcGxpY2FuZG8gcmUtcmVuZGVycyBlbiBjYXNjYWRhIHBvciAjIGZpZWxkcykuXG4gIC8vIFdlYWtNYXA6IHNpIGxhIHJlZmVyZW5jaWEgZGVsIGZpZWxkIGNhbWJpYSwgZWwgY2FjaGUgc2UgbGliZXJhLlxuICBwcml2YXRlIGZpZWxkUHJvcE1lbW8gPSBuZXcgV2Vha01hcDxJbnB1dE1ldGFkYXRhLCBJbnB1dE1ldGFkYXRhPigpO1xuICBwcml2YXRlIHVzZXJuYW1lUHJvcE1lbW8gPSBuZXcgV2Vha01hcDxJbnB1dE1ldGFkYXRhLCBVc2VybmFtZUlucHV0TWV0YWRhdGE+KCk7XG4gIHByaXZhdGUgdGV4dGFyZWFQcm9wTWVtbyA9IG5ldyBXZWFrTWFwPElucHV0TWV0YWRhdGEsIFRleHRhcmVhSW5wdXRNZXRhZGF0YT4oKTtcbiAgcHJpdmF0ZSBzZWxlY3RQcm9wTWVtbyA9IG5ldyBXZWFrTWFwPElucHV0TWV0YWRhdGEsIElucHV0TWV0YWRhdGE+KCk7XG4gIC8vIE1lbW8gZGUgcHJvcHMgY29uIHVuIGlucHV0VHlwZSBIVE1MIGlueWVjdGFkbyAoRU1BSUwvTlVNQkVSL0hPVVIgY29sYXBzYWRvc1xuICAvLyBlbiB2YWwtdGV4dC1pbnB1dCkuIENsYXZlIHBvciBmaWVsZCBwYXJhIGNvbnNlcnZhciBpZGVudGlkYWQgZGUgcmVmZXJlbmNpYS5cbiAgcHJpdmF0ZSB0ZXh0SW5wdXRQcm9wTWVtbyA9IG5ldyBXZWFrTWFwPElucHV0TWV0YWRhdGEsIElucHV0TWV0YWRhdGE+KCk7XG4gIHByaXZhdGUgZGF0ZVBpY2tlclByb3BNZW1vID0gbmV3IFdlYWtNYXA8SW5wdXRNZXRhZGF0YSwgRGF0ZVBpY2tlck1ldGFkYXRhPigpO1xuXG4gIC8vIElkcyBlc3RhYmxlcyBwb3IgZmllbGQgcGFyYSBlbCB3aXJpbmcgZGUgYWNjZXNpYmlsaWRhZCBsYWJlbOKGlGlucHV04oaUZXJyb3IuXG4gIC8vIEVzdGFibGVzIGVudHJlIENEIGN5Y2xlcyAobWVtb2l6YWRvcyBwb3IgcmVmZXJlbmNpYSBkZSBmaWVsZCkg4oaSIGFyaWEtKiBubyBwYXJwYWRlYS5cbiAgcHJpdmF0ZSBmaWVsZElkTWVtbyA9IG5ldyBXZWFrTWFwPElucHV0TWV0YWRhdGEsIHsgbGFiZWxJZDogc3RyaW5nOyBlcnJvcklkOiBzdHJpbmcgfT4oKTtcbiAgcHJpdmF0ZSBmaWVsZFVpZCA9IDA7XG5cbiAgLy8gRXN0YWRvIHByZXZpbyBwYXJhIGRldGVjdGFyIGNhbWJpb3MgZW4gbmdEb0NoZWNrXG4gIHByaXZhdGUgcHJldmlvdXNTdGF0ZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIHByZXZpb3VzVXBsb2FkaW5nQ291bnQgPSAwO1xuXG4gIC8vIENhbXBvcyBBVFRBQ0hNRU5UIGNvbiB1cGxvYWRzIGVuIGN1cnNvIOKAlCBibG9xdWVhIHN1Ym1pdCArIERFU0hBQklMSVRBIGVsXG4gIC8vIGJvdMOzbiAobm8gbG9hZGluZzogZWwgc3Bpbm5lciBzZSByZXNlcnZhIHBhcmEgZWwgc3VibWl0IHJlYWwgZGVsIGZvcm0pLlxuICBwcml2YXRlIHVwbG9hZGluZ0ZpZWxkcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZlxuICApIHt9XG5cbiAgLyoqIEFybWEgbGEgZGVmaW5pY2nDs24gZGUgY29udHJvbGVzICh2YWxvciBpbmljaWFsICsgdmFsaWRhZG9yZXMpIGRlc2RlIGBwcm9wc2AuICovXG4gIHByaXZhdGUgYnVpbGRGb3JtQ29udHJvbHNEZWYoKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICAgIGNvbnN0IGZvcm1Db250cm9scyA9IHt9O1xuICAgIHRoaXMucHJvcHMuc2VjdGlvbnMuZm9yRWFjaChzZWN0aW9uID0+IHtcbiAgICAgIHNlY3Rpb24uZmllbGRzLmZvckVhY2goZmllbGQgPT4ge1xuICAgICAgICAvLyBIb25yYSBgZmllbGQudmFsdWVgIGFsIGNvbnN0cnVpciBlbCBGb3JtR3JvdXAgcGFyYSBxdWUgY29udHJvbGVzIHRpcG9cbiAgICAgICAgLy8gSEFORExFIChxdWUgY29uc3VtZW4gZWwgY29udHJvbCBkaXJlY3RvIHZpYSBbZm9ybUNvbnRyb2xdKSByZWNpYmFuIGVsXG4gICAgICAgIC8vIHZhbG9yIGluaWNpYWwgc2luIHF1ZSBlbCBjYWxsZXIgdGVuZ2EgcXVlIHBhdGNoVmFsdWUgcG9zdC1tb3VudC5cbiAgICAgICAgLy8gRWwgaGVscGVyIGFwcGx5RGVmYXVsdFZhbHVlVG9Db250cm9sICh2YWwtdGV4dC1pbnB1dCBldGMuKSBzaWd1ZVxuICAgICAgICAvLyBmdW5jaW9uYW5kbyDigJQgZXNjcmliZSBzb2JyZSB1biBjb250cm9sIHlhIGluaWNpYWxpemFkbywgaWRlbXBvdGVudGUuXG4gICAgICAgIGNvbnN0IGluaXRpYWxWYWx1ZSA9IGZpZWxkLnZhbHVlID8/IG51bGw7XG4gICAgICAgIGlmIChmaWVsZC50eXBlID09PSB0aGlzLnR5cGVzLk5VTUJFUl9GUk9NX1RPKSB7XG4gICAgICAgICAgLy8gQ3JlYXIgZG9zIGNvbnRyb2xlcyBwYXJhIGNhbXBvcyBOVU1CRVJfRlJPTV9UT1xuICAgICAgICAgIGZvcm1Db250cm9sc1tgJHtmaWVsZC5uYW1lfV9mcm9tYF0gPSBbaW5pdGlhbFZhbHVlLCBmaWVsZC52YWxpZGF0b3JzIHx8IFtdXTtcbiAgICAgICAgICBmb3JtQ29udHJvbHNbYCR7ZmllbGQubmFtZX1fdG9gXSA9IFtpbml0aWFsVmFsdWUsIGZpZWxkLnZhbGlkYXRvcnMgfHwgW11dO1xuICAgICAgICB9IGVsc2UgaWYgKGZpZWxkLnR5cGUgPT09IHRoaXMudHlwZXMuQVRUQUNITUVOVCkge1xuICAgICAgICAgIGZvcm1Db250cm9sc1tmaWVsZC5uYW1lXSA9IFtbXSwgZmllbGQudmFsaWRhdG9ycyB8fCBbXV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZm9ybUNvbnRyb2xzW2ZpZWxkLm5hbWVdID0gW2luaXRpYWxWYWx1ZSwgZmllbGQudmFsaWRhdG9ycyB8fCBbXV07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiBmb3JtQ29udHJvbHM7XG4gIH1cblxuICAvKipcbiAgICogUmVjb25zdHJ1eWUgZWwgYEZvcm1Hcm91cGAgZGVzZGUgY2VybywgY29uIGxvcyB2YWxvcmVzIGluaWNpYWxlcyBkZSBgcHJvcHNgXG4gICAqIGFjdHVhbGVzIChubyBsb3MgcXVlIGVsIHVzdWFyaW8gaGF5YSB0ZWNsZWFkbyBkZXNkZSBlbnRvbmNlcykuXG4gICAqXG4gICAqIEV4aXN0ZSBwYXJhIGVsIGNhc28gZW4gcXVlIEFuZ3VsYXIgTk8gZGVzdHJ1eWUgZWwgY29tcG9uZW50ZSBlbnRyZSBkb3MgdXNvc1xuICAgKiDigJQgdMOtcGljYW1lbnRlIGBJb25pY1JvdXRlU3RyYXRlZ3lgLCBxdWUgY2FjaGVhIGxhIHDDoWdpbmEgcnV0ZWFkYSBhbCBuYXZlZ2FyXG4gICAqIGFmdWVyYSB5IGxhIHJldXRpbGl6YSBhbCB2b2x2ZXIgc2luIGNvcnJlciBgbmdPbkluaXRgIGRlIG51ZXZvLiBTaW4gZXN0byxcbiAgICogdW4gZm9ybSBkZSBsb2dpbiBtYW50aWVuZSBsbyBxdWUgZWwgdXN1YXJpbyBhbnRlcmlvciB0ZWNsZcOzIGRlc3B1w6lzIGRlXG4gICAqIGNlcnJhciBzZXNpw7NuIHkgdm9sdmVyIGEgYC9sb2dpbmA6IGVsIGBGb3JtR3JvdXBgIHNlIGNvbnN0cnV5w7MgVU5BIHZleiB5XG4gICAqIG5hZGllIGxvIHRvY8OzIGRlc2RlIGVudG9uY2VzLlxuICAgKlxuICAgKiBSZWNvbnN0cnV5ZSBlbCBgRm9ybUdyb3VwYCBlbnRlcm8gKG5vIGAucmVzZXQodmFsdWVzKWApIHBvcnF1ZSBsYVxuICAgKiBkZWZpbmljacOzbiB0cmFlIGBbdmFsb3IsIHZhbGlkYXRvcnNdYCBwb3IgY29udHJvbCwgbm8gdmFsb3JlcyBwbGFub3Mg4oCUXG4gICAqIHJldXNhciBgYnVpbGRGb3JtQ29udHJvbHNEZWYoKWAgdGFsIGN1YWwgZXZpdGEgbWFudGVuZXIgZG9zIGZvcm1hcyBkZVxuICAgKiBjYWxjdWxhciBcImN1w6FsIGVzIGVsIHZhbG9yIGluaWNpYWxcIiBxdWUgcHVlZGFuIGRlc2luY3Jvbml6YXJzZS5cbiAgICpcbiAgICogRWwgY2FsbGVyICh0w61waWNhbWVudGUgYHZhbC1sb2dpbmAsIHbDrWEgYGlvblZpZXdXaWxsRW50ZXJgKSBkZWNpZGUgQ1XDgU5ET1xuICAgKiBsbGFtYXJsbyDigJQgYWPDoSBubyBoYXkgaGV1csOtc3RpY2EgZGUgXCJjdcOhbmRvIHJlc2V0ZWFyXCIsIHBvcnF1ZSB1biBmb3JtIGRlXG4gICAqIHZhcmlvcyBwYXNvcyBzw60gcG9kcsOtYSBxdWVyZXIgY29uc2VydmFyIGxvIHRlY2xlYWRvIGFsIHZvbHZlciBhIHVuYVxuICAgKiBwZXN0YcOxYS5cbiAgICovXG4gIHJlc2V0Rm9ybSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZm9ybSkgcmV0dXJuO1xuICAgIHRoaXMuZm9ybSA9IHRoaXMuZmIuZ3JvdXAodGhpcy5idWlsZEZvcm1Db250cm9sc0RlZigpKTtcbiAgICB0aGlzLnZhbHVlLnNldCh0aGlzLmZvcm0uZ2V0UmF3VmFsdWUoKSk7XG4gICAgdGhpcy52YWxpZC5zZXQodGhpcy5mb3JtLnZhbGlkKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZm9ybSA9IHRoaXMuZmIuZ3JvdXAodGhpcy5idWlsZEZvcm1Db250cm9sc0RlZigpKTtcbiAgICB0aGlzLnByb3BzLnNlY3Rpb25zLmZvckVhY2goc2VjdGlvbiA9PiB7XG4gICAgICBzZWN0aW9uLmZpZWxkc1xuICAgICAgICAuZmlsdGVyKFxuICAgICAgICAgIHggPT5cbiAgICAgICAgICAgIHgudHlwZSA9PT0gdGhpcy50eXBlcy5TRUxFQ1QgfHxcbiAgICAgICAgICAgIHgudHlwZSA9PT0gdGhpcy50eXBlcy5URVhUIHx8XG4gICAgICAgICAgICB4LnR5cGUgPT09IHRoaXMudHlwZXMuU0VBUkNIX1NFTEVDVCB8fFxuICAgICAgICAgICAgeC50eXBlID09PSB0aGlzLnR5cGVzLk1VTFRJX1NFTEVDVFxuICAgICAgICApXG4gICAgICAgIC5mb3JFYWNoKGZpZWxkID0+IHtcbiAgICAgICAgICB0aGlzLnRyYWNrU2VsZWN0Q2hhbmdlcyhmaWVsZC5uYW1lKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICAvLyBFc3RhZG8gcmVhY3Rpdm8gcMO6YmxpY28gKHZhbHVlL3ZhbGlkKSDigJQgYWN0dWFsaXphZG8gcG9yIHN1c2NyaXBjacOzbiBSeEpTLFxuICAgIC8vIE5PIGRlbnRybyBkZSB1biBlZmZlY3Q6IHNldGVhciBzaWduYWxzIGFjw6EgZXMgc2VndXJvIChubyBkaXNwYXJhIE5HMDYwMCkuXG4gICAgdGhpcy52YWx1ZS5zZXQodGhpcy5mb3JtLmdldFJhd1ZhbHVlKCkpO1xuICAgIHRoaXMudmFsaWQuc2V0KHRoaXMuZm9ybS52YWxpZCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHJhd1ZhbHVlID0gdGhpcy5mb3JtLmdldFJhd1ZhbHVlKCk7XG4gICAgICAgIHRoaXMudmFsdWUuc2V0KHJhd1ZhbHVlKTtcbiAgICAgICAgdGhpcy5vblZhbHVlQ2hhbmdlLmVtaXQocmF3VmFsdWUpO1xuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuZm9ybS5zdGF0dXNDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB0aGlzLnZhbGlkLnNldCh0aGlzLmZvcm0udmFsaWQpKSk7XG5cbiAgICB0aGlzLnN5bmNGaWVsZENvbnRyb2xTdGF0ZXMoKTtcbiAgICB0aGlzLnVwZGF0ZUFjdGlvbnNDYWNoZSgpO1xuICAgIHRoaXMucHJldmlvdXNTdGF0ZSA9IHRoaXMucHJvcHMuc3RhdGU7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgLy8gQ3VhbmRvIHByb3BzIGNhbWJpYSwgcmVjb25zdHJ1aXIgZWwgY2FjaGVcbiAgICBpZiAoY2hhbmdlc1sncHJvcHMnXSAmJiB0aGlzLmZvcm0pIHtcbiAgICAgIHRoaXMucGF0Y2hJbml0aWFsVmFsdWVzRnJvbVByb3BzKCk7XG4gICAgICB0aGlzLnN5bmNGaWVsZENvbnRyb2xTdGF0ZXMoKTtcbiAgICAgIHRoaXMudXBkYXRlQWN0aW9uc0NhY2hlKCk7XG4gICAgICB0aGlzLnByZXZpb3VzU3RhdGUgPSB0aGlzLnByb3BzLnN0YXRlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcGF0Y2hJbml0aWFsVmFsdWVzRnJvbVByb3BzKCk6IHZvaWQge1xuICAgIHRoaXMucHJvcHMuc2VjdGlvbnMuZm9yRWFjaChzZWN0aW9uID0+IHtcbiAgICAgIHNlY3Rpb24uZmllbGRzLmZvckVhY2goZmllbGQgPT4ge1xuICAgICAgICBpZiAoZmllbGQudmFsdWUgPT09IHVuZGVmaW5lZCB8fCBmaWVsZC50eXBlID09PSB0aGlzLnR5cGVzLkFUVEFDSE1FTlQpIHJldHVybjtcbiAgICAgICAgaWYgKGZpZWxkLnR5cGUgPT09IHRoaXMudHlwZXMuTlVNQkVSX0ZST01fVE8pIHtcbiAgICAgICAgICB0aGlzLmZvcm0uZ2V0KGAke2ZpZWxkLm5hbWV9X2Zyb21gKT8ucGF0Y2hWYWx1ZShmaWVsZC52YWx1ZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICAgIHRoaXMuZm9ybS5nZXQoYCR7ZmllbGQubmFtZX1fdG9gKT8ucGF0Y2hWYWx1ZShmaWVsZC52YWx1ZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmZvcm0uZ2V0KGZpZWxkLm5hbWUpPy5wYXRjaFZhbHVlKGZpZWxkLnZhbHVlLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICB0aGlzLnZhbHVlLnNldCh0aGlzLmZvcm0uZ2V0UmF3VmFsdWUoKSk7XG4gICAgdGhpcy52YWxpZC5zZXQodGhpcy5mb3JtLnZhbGlkKTtcbiAgfVxuXG4gIG5nRG9DaGVjaygpIHtcbiAgICAvLyBEZXRlY3RhciBjYW1iaW9zIGVuIGVsIGVzdGFkbyBkZWwgZm9ybXVsYXJpbyAobXV0YWNpw7NuIHNpbiBjYW1iaWFyIHJlZmVyZW5jaWEpXG4gICAgY29uc3QgdXBsb2FkaW5nQ291bnQgPSB0aGlzLnVwbG9hZGluZ0ZpZWxkcy5zaXplO1xuICAgIGlmIChcbiAgICAgIHRoaXMuZm9ybSAmJlxuICAgICAgdGhpcy5wcm9wcyAmJlxuICAgICAgKHRoaXMucHJvcHMuc3RhdGUgIT09IHRoaXMucHJldmlvdXNTdGF0ZSB8fCB1cGxvYWRpbmdDb3VudCAhPT0gdGhpcy5wcmV2aW91c1VwbG9hZGluZ0NvdW50KVxuICAgICkge1xuICAgICAgdGhpcy5wcmV2aW91c1N0YXRlID0gdGhpcy5wcm9wcy5zdGF0ZTtcbiAgICAgIHRoaXMucHJldmlvdXNVcGxvYWRpbmdDb3VudCA9IHVwbG9hZGluZ0NvdW50O1xuICAgICAgdGhpcy51cGRhdGVBY3Rpb25zQ2FjaGUoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU3luY2hyb25pemVzIGZvcm0gY29udHJvbCBkaXNhYmxlZC9lbmFibGVkIHN0YXRlIHdpdGggZmllbGQgbWV0YWRhdGEuXG4gICAqL1xuICBwcml2YXRlIHN5bmNGaWVsZENvbnRyb2xTdGF0ZXMoKSB7XG4gICAgdGhpcy5wcm9wcy5zZWN0aW9ucy5mb3JFYWNoKHNlY3Rpb24gPT4ge1xuICAgICAgc2VjdGlvbi5maWVsZHMuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICAgIGlmIChmaWVsZC50eXBlID09PSB0aGlzLnR5cGVzLkFUVEFDSE1FTlQpIHJldHVybjtcbiAgICAgICAgaWYgKGZpZWxkLnR5cGUgPT09IHRoaXMudHlwZXMuTlVNQkVSX0ZST01fVE8pIHtcbiAgICAgICAgICBjb25zdCBmcm9tQ29udHJvbCA9IHRoaXMuZ2V0Q29udHJvbChgJHtmaWVsZC5uYW1lfV9mcm9tYCk7XG4gICAgICAgICAgY29uc3QgdG9Db250cm9sID0gdGhpcy5nZXRDb250cm9sKGAke2ZpZWxkLm5hbWV9X3RvYCk7XG5cbiAgICAgICAgICBpZiAoZmllbGQuc3RhdGUgPT09IENvbXBvbmVudFN0YXRlcy5ESVNBQkxFRCkge1xuICAgICAgICAgICAgZnJvbUNvbnRyb2wuZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgICAgICB0b0NvbnRyb2wuZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGZyb21Db250cm9sLmVuYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgICAgICB0b0NvbnRyb2wuZW5hYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuZ2V0Q29udHJvbChmaWVsZC5uYW1lKTtcbiAgICAgICAgICBpZiAoZmllbGQuc3RhdGUgPT09IENvbXBvbmVudFN0YXRlcy5ESVNBQkxFRCkge1xuICAgICAgICAgICAgY29udHJvbC5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29udHJvbC5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQWN0dWFsaXphIGVsIGNhY2hlIGRlIGFjdGlvbnMgYmFzYWRvIGVuIGVsIGVzdGFkbyBhY3R1YWwgZGVsIGZvcm0uXG4gICAqL1xuICBwcml2YXRlIHVwZGF0ZUFjdGlvbnNDYWNoZSgpIHtcbiAgICAvLyBFbiBtb2RvIGNvbnRyb2xsZWQgKG8gc2luIHN1Ym1pdCkgbm8gaGF5IGJvdMOzbiBwcm9waW8gcXVlIGNhY2hlYXIuXG4gICAgaWYgKCF0aGlzLnByb3BzLmFjdGlvbnMpIHtcbiAgICAgIHRoaXMuYWN0aW9uc0NhY2hlID0gW107XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGxldCBhY3Rpb25TdGF0ZSA9IHRoaXMucHJvcHMuYWN0aW9ucy5zdGF0ZTtcblxuICAgIGlmICh0aGlzLnByb3BzLnN0YXRlID09PSBDb21wb25lbnRTdGF0ZXMuV09SS0lORykge1xuICAgICAgLy8gU3VibWl0IHJlYWwgZGVsIGZvcm0gZW4gY3Vyc28g4oaSIGJvdMOzbiBlbiBsb2FkaW5nIChzcGlubmVyKS5cbiAgICAgIGFjdGlvblN0YXRlID0gQ29tcG9uZW50U3RhdGVzLldPUktJTkc7XG4gICAgfSBlbHNlIGlmICh0aGlzLnByb3BzLnN0YXRlID09PSBDb21wb25lbnRTdGF0ZXMuRElTQUJMRUQgfHwgdGhpcy51cGxvYWRpbmdGaWVsZHMuc2l6ZSA+IDApIHtcbiAgICAgIC8vIFN1YmlkYSBkZSBhZGp1bnRvIGVuIGN1cnNvIOKGkiBERVNIQUJJTElUQVIgZWwgc3VibWl0LCBOTyBsb2FkaW5nOiB0b2RhdsOtYVxuICAgICAgLy8gbm8gc2UgZXN0w6EgZW52aWFuZG8gZWwgZm9ybSwgc29sbyBzdWJpZW5kbyB1biBhcmNoaXZvLiBVbiBzcGlubmVyIGFjw6FcbiAgICAgIC8vIGNvbmZ1bmRlIChwYXJlY2UgcXVlIGVsIGZvcm0gc2UgZXN0w6EgZW52aWFuZG8pLlxuICAgICAgYWN0aW9uU3RhdGUgPSBDb21wb25lbnRTdGF0ZXMuRElTQUJMRUQ7XG4gICAgfSBlbHNlIGlmICh0aGlzLnByb3BzLnN0YXRlID09PSBDb21wb25lbnRTdGF0ZXMuRU5BQkxFRCB8fCB0aGlzLmZvcm0/LnZhbGlkKSB7XG4gICAgICBhY3Rpb25TdGF0ZSA9IENvbXBvbmVudFN0YXRlcy5FTkFCTEVEO1xuICAgIH1cblxuICAgIHRoaXMuYWN0aW9uc0NhY2hlID0gW3sgLi4udGhpcy5wcm9wcy5hY3Rpb25zLCBzdGF0ZTogYWN0aW9uU3RhdGUgfV07XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICAvLyBDbGVhbnVwIHN1YnNjcmlwdGlvbnMgdG8gYXZvaWQgbWVtb3J5IGxlYWtzXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goc3ViID0+IHN1Yi51bnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIHRyYWNrU2VsZWN0Q2hhbmdlcyhmaWVsZE5hbWU6IHN0cmluZykge1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmdldENvbnRyb2woZmllbGROYW1lKTtcbiAgICBjb25zdCBzdWJzY3JpcHRpb24gPSBjb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgdGhpcy5vblNlbGVjdENoYW5nZS5lbWl0KHsgZmllbGQ6IGZpZWxkTmFtZSwgdmFsdWUgfSk7XG4gICAgfSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goc3Vic2NyaXB0aW9uKTtcbiAgfVxuXG4gIGFzeW5jIHN1Ym1pdEhhbmRsZXIodG9rZW4/OiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy51cGxvYWRpbmdGaWVsZHMuc2l6ZSA+IDApIHJldHVybjtcbiAgICBpZiAoIXRoaXMuZm9ybS52YWxpZCkge1xuICAgICAgdGhpcy5mb3JtLm1hcmtBbGxBc1RvdWNoZWQoKTtcbiAgICAgIHRoaXMub25JbnZhbGlkLmVtaXQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5vblN1Ym1pdC5lbWl0KHsgZmllbGRzOiB0aGlzLmZvcm0uZ2V0UmF3VmFsdWUoKSwgdG9rZW4gfSk7XG4gIH1cblxuICBvbkF0dGFjaG1lbnRDaGFuZ2UoZmllbGROYW1lOiBzdHJpbmcsIGl0ZW1zOiBBdHRhY2htZW50SXRlbVtdKTogdm9pZCB7XG4gICAgY29uc3QgcmVhZHlVcmxzID0gaXRlbXMuZmlsdGVyKGEgPT4gYS5zdGF0dXMgPT09ICdyZWFkeScgJiYgYS51cmwpLm1hcChhID0+IGEudXJsISk7XG4gICAgdGhpcy5mb3JtLmdldChmaWVsZE5hbWUpPy5zZXRWYWx1ZShyZWFkeVVybHMsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICBpZiAoaXRlbXMuc29tZShhID0+IGEuc3RhdHVzID09PSAndXBsb2FkaW5nJykpIHtcbiAgICAgIHRoaXMudXBsb2FkaW5nRmllbGRzLmFkZChmaWVsZE5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnVwbG9hZGluZ0ZpZWxkcy5kZWxldGUoZmllbGROYW1lKTtcbiAgICB9XG4gIH1cblxuICBnZXRDb250cm9sKGZpZWxkOiBzdHJpbmcpOiBGb3JtQ29udHJvbCB7XG4gICAgcmV0dXJuIHRoaXMuRm9ybS5nZXQoZmllbGQpIGFzIEZvcm1Db250cm9sO1xuICB9XG5cbiAgLyoqXG4gICAqIElkcyBlc3RhYmxlcyAobGFiZWwgKyBlcnJvcikgcGFyYSB1biBmaWVsZC4gTWVtb2l6YWRvcyBwb3IgcmVmZXJlbmNpYSBwYXJhXG4gICAqIHF1ZSBlbCB3aXJpbmcgYGFyaWEtbGFiZWxsZWRieWAgLyBgYXJpYS1kZXNjcmliZWRieWAgbm8gY2FtYmllIGVudHJlIGNpY2xvc1xuICAgKiBkZSBjaGFuZ2UgZGV0ZWN0aW9uLlxuICAgKi9cbiAgcHJpdmF0ZSBmaWVsZElkcyhmaWVsZDogSW5wdXRNZXRhZGF0YSk6IHsgbGFiZWxJZDogc3RyaW5nOyBlcnJvcklkOiBzdHJpbmcgfSB7XG4gICAgbGV0IGlkcyA9IHRoaXMuZmllbGRJZE1lbW8uZ2V0KGZpZWxkKTtcbiAgICBpZiAoIWlkcykge1xuICAgICAgY29uc3QgYmFzZSA9IGB2YWwtZm9ybS1maWVsZC0ke3RoaXMuZmllbGRVaWQrK31gO1xuICAgICAgaWRzID0geyBsYWJlbElkOiBgJHtiYXNlfS1sYWJlbGAsIGVycm9ySWQ6IGAke2Jhc2V9LWVycm9yYCB9O1xuICAgICAgdGhpcy5maWVsZElkTWVtby5zZXQoZmllbGQsIGlkcyk7XG4gICAgfVxuICAgIHJldHVybiBpZHM7XG4gIH1cblxuICAvKiogSWQgZGVsIGxhYmVsIHZpc2libGUgZGVsIGNhbXBvIChjb25zdW1pZG8gcG9yIGVsIHRlbXBsYXRlICsgZWwgaW5wdXQpLiAqL1xuICBsYWJlbElkKGZpZWxkOiBJbnB1dE1ldGFkYXRhKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZElkcyhmaWVsZCkubGFiZWxJZDtcbiAgfVxuXG4gIC8qKiBJZCBkZWwgY29udGVuZWRvciBkZSBlcnJvciAoYHZhbC1oaW50YCkgZGVsIGNhbXBvLiAqL1xuICBlcnJvcklkKGZpZWxkOiBJbnB1dE1ldGFkYXRhKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZElkcyhmaWVsZCkuZXJyb3JJZDtcbiAgfVxuXG4gIGdldEZpZWxkUHJvcChmaWVsZDogSW5wdXRNZXRhZGF0YSk6IElucHV0TWV0YWRhdGEge1xuICAgIGNvbnN0IGNhY2hlZCA9IHRoaXMuZmllbGRQcm9wTWVtby5nZXQoZmllbGQpO1xuICAgIGlmIChjYWNoZWQpIHJldHVybiBjYWNoZWQ7XG5cbiAgICBpZiAoIWZpZWxkLnRva2VuKSB7XG4gICAgICBmaWVsZC50b2tlbiA9IGBpbnB1dC0ke2ZpZWxkLnR5cGV9LSR7ZmllbGQubmFtZX1gO1xuICAgIH1cblxuICAgIGNvbnN0IGlkcyA9IHRoaXMuZmllbGRJZHMoZmllbGQpO1xuXG4gICAgbGV0IHJlc3VsdDogSW5wdXRNZXRhZGF0YTtcbiAgICBpZiAoZmllbGQudHlwZSA9PT0gdGhpcy50eXBlcy5OVU1CRVJfRlJPTV9UTykge1xuICAgICAgY29uc3QgZnJvbUNvbnRyb2wgPSB0aGlzLmdldENvbnRyb2woYCR7ZmllbGQubmFtZX1fZnJvbWApO1xuICAgICAgY29uc3QgdG9Db250cm9sID0gdGhpcy5nZXRDb250cm9sKGAke2ZpZWxkLm5hbWV9X3RvYCk7XG4gICAgICByZXN1bHQgPSB7IC4uLmZpZWxkLCBmcm9tQ29udHJvbCwgdG9Db250cm9sLCBjb250cm9sOiB1bmRlZmluZWQsIGxhYmVsSWQ6IGlkcy5sYWJlbElkLCBlcnJvcklkOiBpZHMuZXJyb3JJZCB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBjb250cm9sID0gdGhpcy5nZXRDb250cm9sKGZpZWxkLm5hbWUpO1xuICAgICAgcmVzdWx0ID0geyAuLi5maWVsZCwgY29udHJvbCwgbGFiZWxJZDogaWRzLmxhYmVsSWQsIGVycm9ySWQ6IGlkcy5lcnJvcklkIH07XG4gICAgfVxuICAgIHRoaXMuZmllbGRQcm9wTWVtby5zZXQoZmllbGQsIHJlc3VsdCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGFwdGVyIHBhcmEgbG9zIHRpcG9zIGNvbGFwc2Fkb3MgZW4gYHZhbC10ZXh0LWlucHV0YCAoRU1BSUwvTlVNQkVSL0hPVVIpLlxuICAgKiBSZXVzYSBgZ2V0RmllbGRQcm9wYCAoY29uIHN1IGNvbnRyb2wgKyB3aXJpbmcgZGUgaWRzKSBlIGlueWVjdGEgZWwgYGlucHV0VHlwZWBcbiAgICogSFRNTCBuYXRpdm8uIE1lbW9pemFkbyBwb3IgcmVmZXJlbmNpYSBkZSBmaWVsZCBwYXJhIG5vIHJvbXBlciBsYSBpZGVudGlkYWQuXG4gICAqL1xuICBnZXRUZXh0SW5wdXRQcm9wKGZpZWxkOiBJbnB1dE1ldGFkYXRhLCBpbnB1dFR5cGU6IE5vbk51bGxhYmxlPElucHV0TWV0YWRhdGFbJ2lucHV0VHlwZSddPik6IElucHV0TWV0YWRhdGEge1xuICAgIGNvbnN0IGNhY2hlZCA9IHRoaXMudGV4dElucHV0UHJvcE1lbW8uZ2V0KGZpZWxkKTtcbiAgICBpZiAoY2FjaGVkKSByZXR1cm4gY2FjaGVkO1xuXG4gICAgY29uc3QgYmFzZSA9IHRoaXMuZ2V0RmllbGRQcm9wKGZpZWxkKTtcbiAgICBjb25zdCByZXN1bHQ6IElucHV0TWV0YWRhdGEgPSB7IC4uLmJhc2UsIGlucHV0VHlwZSB9O1xuICAgIHRoaXMudGV4dElucHV0UHJvcE1lbW8uc2V0KGZpZWxkLCByZXN1bHQpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogQWRhcHRlciBwYXJhIFNFTEVDVCDigJQgaWd1YWwgcXVlIGBnZXRGaWVsZFByb3BgIHBlcm8gbGltcGlhIGBsYWJlbGAuXG4gICAqIHZhbC1mb3JtIHlhIHJlbmRlcml6YSBlbCB0w610dWxvIGRlbCBjYW1wbyBjb24gYDx2YWwtdGl0bGU+YCBhcnJpYmEgZGVsIGlucHV0O1xuICAgKiBzaSBhZGVtw6FzIHBhc8OhcmFtb3MgYGxhYmVsYCBhbCBgPGlvbi1zZWxlY3Q+YCwgZXN0ZSBsbyBwaW50YSBERU5UUk8gZGVsIHBpbGxcbiAgICog4oaSIHJlZHVuZGFuY2lhIHZpc3VhbCAoXCJUaXBvXCIgZG9zIHZlY2VzKS4gUmV1c2EgZWwgbWlzbW8gbWVtbyAoY29uIGxhIGVudHJhZGFcbiAgICogeWEgbGFiZWwtc3RyaXBwZWQpIHBhcmEgbm8gcm9tcGVyIGxhIGlkZW50aWRhZCBkZSByZWZlcmVuY2lhLlxuICAgKi9cbiAgZ2V0U2VsZWN0UHJvcChmaWVsZDogSW5wdXRNZXRhZGF0YSk6IElucHV0TWV0YWRhdGEge1xuICAgIGNvbnN0IGNhY2hlZCA9IHRoaXMuc2VsZWN0UHJvcE1lbW8uZ2V0KGZpZWxkKTtcbiAgICBpZiAoY2FjaGVkKSByZXR1cm4gY2FjaGVkO1xuXG4gICAgY29uc3QgYmFzZSA9IHRoaXMuZ2V0RmllbGRQcm9wKGZpZWxkKTtcbiAgICBjb25zdCByZXN1bHQ6IElucHV0TWV0YWRhdGEgPSB7IC4uLmJhc2UsIGxhYmVsOiAnJyB9O1xuICAgIHRoaXMuc2VsZWN0UHJvcE1lbW8uc2V0KGZpZWxkLCByZXN1bHQpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogQWRhcHRlciDigJQgY29udmllcnRlIHVuIGBJbnB1dE1ldGFkYXRhYCAoY29uIHR5cGU9SEFORExFKSBhIGBVc2VybmFtZUlucHV0TWV0YWRhdGFgLlxuICAgKiBFbCBjaGVjayBkZSBkaXNwb25pYmlsaWRhZCBzZSByZXN1ZWx2ZSBkZW50cm8gZGVsIGNvbXBvbmVudCAoQXV0aFNlcnZpY2UgaW55ZWN0YWRvKTtcbiAgICogZWwgY2FsbGVyIHB1ZWRlIHNvYnJlc2NyaWJpcmxvIHBhc2FuZG8gYGZpZWxkLmVycm9yc2AgbyB1biBgVXNlcm5hbWVJbnB1dE1ldGFkYXRhYFxuICAgKiBjdXN0b20gdXNhbmRvIHR5cGU9VEVYVCBzaSBuZWNlc2l0YSBvdHJhIGZ1ZW50ZSBkZSB0cnV0aC5cbiAgICovXG4gIGdldFVzZXJuYW1lUHJvcChmaWVsZDogSW5wdXRNZXRhZGF0YSk6IFVzZXJuYW1lSW5wdXRNZXRhZGF0YSB7XG4gICAgY29uc3QgY2FjaGVkID0gdGhpcy51c2VybmFtZVByb3BNZW1vLmdldChmaWVsZCk7XG4gICAgaWYgKGNhY2hlZCkgcmV0dXJuIGNhY2hlZDtcblxuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmdldENvbnRyb2woZmllbGQubmFtZSk7XG4gICAgY29uc3QgcmVzdWx0OiBVc2VybmFtZUlucHV0TWV0YWRhdGEgPSB7XG4gICAgICBjb250cm9sOiBjb250cm9sIGFzIEZvcm1Db250cm9sPHN0cmluZz4sXG4gICAgICBsYWJlbDogZmllbGQubGFiZWwsXG4gICAgICBoaW50OiBmaWVsZC5oaW50LFxuICAgICAgcGxhY2Vob2xkZXI6IGZpZWxkLnBsYWNlaG9sZGVyLFxuICAgICAgbWluTGVuZ3RoOiBmaWVsZC5yYW5nZT8ubWluLFxuICAgICAgbWF4TGVuZ3RoOiBmaWVsZC5yYW5nZT8ubWF4LFxuICAgICAgZXJyb3JzOiBmaWVsZC5lcnJvcnMsXG4gICAgICBzdGF0ZTogZmllbGQuc3RhdGUsXG4gICAgfTtcbiAgICB0aGlzLnVzZXJuYW1lUHJvcE1lbW8uc2V0KGZpZWxkLCByZXN1bHQpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogQWRhcHRlciDigJQgY29udmllcnRlIHVuIGBJbnB1dE1ldGFkYXRhYCAoY29uIHR5cGU9REFURV9QSUNLRVIpIGEgYERhdGVQaWNrZXJNZXRhZGF0YWAuXG4gICAqIGxhYmVsL2hpbnQgc2Ugb21pdGVuIOKAlCB2YWwtZm9ybSBsb3MgcmVuZGVyaXphIHbDrWEgLmZpZWxkLW5hbWUvLmZpZWxkLWRlc2NyaXB0aW9uLlxuICAgKi9cbiAgZ2V0RGF0ZVBpY2tlclByb3AoZmllbGQ6IElucHV0TWV0YWRhdGEpOiBEYXRlUGlja2VyTWV0YWRhdGEge1xuICAgIGNvbnN0IGNhY2hlZCA9IHRoaXMuZGF0ZVBpY2tlclByb3BNZW1vLmdldChmaWVsZCk7XG4gICAgaWYgKGNhY2hlZCkgcmV0dXJuIGNhY2hlZDtcblxuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmdldENvbnRyb2woZmllbGQubmFtZSkgYXMgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD47XG4gICAgY29uc3QgcmVzdWx0OiBEYXRlUGlja2VyTWV0YWRhdGEgPSB7XG4gICAgICBjb250cm9sLFxuICAgICAgcGxhY2Vob2xkZXI6IGZpZWxkLnBsYWNlaG9sZGVyIHx8IHVuZGVmaW5lZCxcbiAgICAgIHRva2VuOiBmaWVsZC50b2tlbixcbiAgICB9O1xuICAgIHRoaXMuZGF0ZVBpY2tlclByb3BNZW1vLnNldChmaWVsZCwgcmVzdWx0KTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIEFkYXB0ZXIg4oCUIGNvbnZpZXJ0ZSB1biBgSW5wdXRNZXRhZGF0YWAgKGNvbiB0eXBlPVRFWFRBUkVBKSBhIGBUZXh0YXJlYUlucHV0TWV0YWRhdGFgLlxuICAgKiBEZWZhdWx0cyBzZW5zYXRvczogYXV0b0dyb3cgKyBjb3VudGVyIGhhYmlsaXRhZG8sIDQtMTIgcm93cy5cbiAgICovXG4gIGdldFRleHRhcmVhUHJvcChmaWVsZDogSW5wdXRNZXRhZGF0YSk6IFRleHRhcmVhSW5wdXRNZXRhZGF0YSB7XG4gICAgY29uc3QgY2FjaGVkID0gdGhpcy50ZXh0YXJlYVByb3BNZW1vLmdldChmaWVsZCk7XG4gICAgaWYgKGNhY2hlZCkgcmV0dXJuIGNhY2hlZDtcblxuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmdldENvbnRyb2woZmllbGQubmFtZSk7XG4gICAgY29uc3QgcmVzdWx0OiBUZXh0YXJlYUlucHV0TWV0YWRhdGEgPSB7XG4gICAgICBjb250cm9sOiBjb250cm9sIGFzIEZvcm1Db250cm9sPHN0cmluZz4sXG4gICAgICBuYW1lOiBmaWVsZC5uYW1lLFxuICAgICAgLy8gbGFiZWwgdmFjw61vIOKAlCB2YWwtZm9ybSB5YSByZW5kZXJpemEgZWwgdMOtdHVsbyBjb24gPHZhbC10aXRsZT4gYXJyaWJhIGRlbFxuICAgICAgLy8gaW5wdXQuIFBhc2FybG8gYWwgPGlvbi10ZXh0YXJlYT4gZHVwbGljYXLDrWEgZWwgdGV4dG8gKFwiRGVzY3JpcGNpw7NuXCIgeDIpLlxuICAgICAgbGFiZWw6ICcnLFxuICAgICAgaGludDogZmllbGQuaGludCxcbiAgICAgIHBsYWNlaG9sZGVyOiBmaWVsZC5wbGFjZWhvbGRlcixcbiAgICAgIGF1dG9Hcm93OiB0cnVlLFxuICAgICAgbWluUm93czogNCxcbiAgICAgIG1heFJvd3M6IDEyLFxuICAgICAgbWF4TGVuZ3RoOiBmaWVsZC5yYW5nZT8ubWF4ID8/IDIwMDAsXG4gICAgICBzaG93Q291bnRlcjogdHJ1ZSxcbiAgICAgIGNvdW50ZXJGb3JtYXQ6ICdjdXJyZW50JyxcbiAgICAgIGZpbGw6ICdvdXRsaW5lJyxcbiAgICAgIGVycm9yczogZmllbGQuZXJyb3JzLFxuICAgICAgc3RhdGU6IGZpZWxkLnN0YXRlLFxuICAgIH07XG4gICAgdGhpcy50ZXh0YXJlYVByb3BNZW1vLnNldChmaWVsZCwgcmVzdWx0KTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgZ2V0IGlzQXRFbmRPZkZvcm0oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzQXRFbmQodGhpcy5lbGVtZW50UmVmKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGdWVyemEgbW9zdHJhciBsb3MgZXJyb3JlcyBkZSB2YWxpZGFjacOzbiAobWFyY2EgdG9kb3MgbG9zIGNvbnRyb2xlcyBjb21vXG4gICAqIHRvdWNoZWQpIHkgZGV2dWVsdmUgc2kgZWwgZm9ybSBlcyB2w6FsaWRvLiBQZW5zYWRvIHBhcmEgZWwgbW9kbyBgY29udHJvbGxlZGA6XG4gICAqIGVsIGhvc3QgbG8gaW52b2NhIGVuIHN1IFwiU2lndWllbnRlXCIgcGFyYSBnYXRlYXIgbGEgbmF2ZWdhY2nDs24gZGVsIHdpemFyZC5cbiAgICovXG4gIHZhbGlkYXRlKCk6IGJvb2xlYW4ge1xuICAgIHRoaXMuZm9ybS5tYXJrQWxsQXNUb3VjaGVkKCk7XG4gICAgcmV0dXJuIHRoaXMuZm9ybS52YWxpZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXJjYSB0b2RvcyBsb3MgY29udHJvbGVzIGNvbW8gdG91Y2hlZCAobXVlc3RyYSBlcnJvcmVzKSBzaW4gZGV2b2x2ZXIgbmFkYS5cbiAgICogQWxpYXMgc2Vtw6FudGljbyBkZSBsYSBwcmltZXJhIG1pdGFkIGRlIGB2YWxpZGF0ZSgpYC5cbiAgICovXG4gIG1hcmtBbGxUb3VjaGVkKCk6IHZvaWQge1xuICAgIHRoaXMuZm9ybS5tYXJrQWxsQXNUb3VjaGVkKCk7XG4gIH1cblxuICBnZXQgRm9ybSgpOiBGb3JtR3JvdXAge1xuICAgIHJldHVybiB0aGlzLmZvcm07XG4gIH1cblxuICBnZXQgRm9ybVN0YXRlKCk6IHsgZm9ybTogRm9ybUdyb3VwOyBkYXRhOiBGb3JtTWV0YWRhdGEgfSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGZvcm06IHRoaXMuRm9ybSxcbiAgICAgIGRhdGE6IHRoaXMucHJvcHMsXG4gICAgfTtcbiAgfVxuXG4gIGdldCBhY3Rpb25zKCk6IEJ1dHRvbk1ldGFkYXRhW10ge1xuICAgIC8vIFJldG9ybmFyIGRlbCBjYWNoZSBwYXJhIGV2aXRhciBjcmVhciBudWV2b3Mgb2JqZXRvcyBlbiBjYWRhIGNpY2xvIGRlIGNoYW5nZSBkZXRlY3Rpb25cbiAgICByZXR1cm4gdGhpcy5hY3Rpb25zQ2FjaGU7XG4gIH1cbiAgLy8g4pSA4pSAIFN1Z2VyZW5jaWEgZGUgZG9taW5pbyBkZSBjb3JyZW8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4gIC8vXG4gIC8vIFZpdmUgZW4gZWwgZm9ybXVsYXJpbyB5IG5vIGVuIGNhZGEgYXBwOiBlbCBjYW1wbyBFTUFJTCB5YSBlc3TDoSBjZW50cmFsaXphZG9cbiAgLy8gYWPDoSwgYXPDrSBxdWUgdG9kYSBhcHAgZGVsIGZhY3RvcnkgaGVyZWRhIGxhIGF5dWRhIHNpbiBlc2NyaWJpciB1bmEgbMOtbmVhLlxuICAvLyBOYWNlIGRlIHVuIHJlYm90ZSByZWFsIGVuIHByb2R1Y2Npw7NuOiB1biB0eXBvIGVuIGVsIGRvbWluaW8gZGVqw7MgYSB1bmFcbiAgLy8gY29tcHJhZG9yYSBzaW4gc3VzIGVudHJhZGFzIHkgbmFkaWUgc2UgZW50ZXLDsyBoYXN0YSBxdWUgcmVjbGFtw7MuXG5cbiAgcHJpdmF0ZSByZWFkb25seSBpMThuU3VnZ2VzdGlvbiA9IGluamVjdChJMThuU2VydmljZSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgLyoqIFN1Z2VyZW5jaWFzIGRlc2NhcnRhZGFzIHBvciBlbCB1c3VhcmlvLCBwYXJhIG5vIHZvbHZlciBhIGluc2lzdGlyLiAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHN1Z2dlc3Rpb25EaXNtaXNzZWQgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICAvKipcbiAgICogRGV2dWVsdmUgZWwgY29ycmVvIGNvcnJlZ2lkbyBhIHN1Z2VyaXIsIG8gbnVsbC5cbiAgICpcbiAgICogU29sbyBzdWdpZXJlIGN1YW5kbyBlbCBjYW1wbyBOTyB0aWVuZSBmb2NvOiBtaWVudHJhcyBzZSBlc2NyaWJlLCB0b2RvXG4gICAqIGNvcnJlbyBhIG1lZGlvIHRlY2xlYXIgcGFyZWNlIHVuIHR5cG8geSBsYSBzdWdlcmVuY2lhIHBhcnBhZGVhcsOtYS5cbiAgICovXG4gIGVtYWlsU3VnZ2VzdGlvbkZvcihmaWVsZDogSW5wdXRNZXRhZGF0YSk6IHN0cmluZyB8IG51bGwge1xuICAgIC8vIEVsIGNvbnRyb2wgTk8gdmllbmUgZW4gZWwgZmllbGQgY3J1ZG86IHZhbC1mb3JtIGxvIHJlc3VlbHZlIHBvciBub21icmVcbiAgICAvLyBjb250cmEgc3UgcHJvcGlvIEZvcm1Hcm91cCAoYGdldENvbnRyb2xgKS4gTGVlciBgZmllbGQuY29udHJvbGAgZGV2b2x2w61hXG4gICAgLy8gdW5kZWZpbmVkIHNpZW1wcmUsIGFzw60gcXVlIGxhIHN1Z2VyZW5jaWEgbm8gYXBhcmVjw61hIG51bmNhIOKAlCB5IHNvbG8gc2VcbiAgICAvLyBub3TDsyBjb24gZWwgZTJlLCBwb3JxdWUgZWwgc3BlYyBkZWwgY29tcG9uZW50ZSBsZSBwYXNhYmEgZWwgY29udHJvbCBhXG4gICAgLy8gbWFubyB5IHBvciBlc28gcGFzYWJhIGVuIHZlcmRlLlxuICAgIGNvbnN0IGNvbnRyb2wgPSBmaWVsZC5jb250cm9sID8/IHRoaXMuY29udHJvbFBvck5vbWJyZShmaWVsZC5uYW1lKTtcbiAgICBjb25zdCB2YWxvciA9IHR5cGVvZiBjb250cm9sPy52YWx1ZSA9PT0gJ3N0cmluZycgPyBjb250cm9sLnZhbHVlIDogJyc7XG4gICAgaWYgKCF2YWxvciB8fCAhY29udHJvbD8udG91Y2hlZCkgcmV0dXJuIG51bGw7XG4gICAgY29uc3Qgc3VnZXJpZG8gPSBzdWdnZXN0RW1haWxGaXgodmFsb3IpO1xuICAgIGlmICghc3VnZXJpZG8gfHwgdGhpcy5zdWdnZXN0aW9uRGlzbWlzc2VkLmhhcyhzdWdlcmlkbykpIHJldHVybiBudWxsO1xuICAgIHJldHVybiBzdWdlcmlkbztcbiAgfVxuXG4gIC8qKlxuICAgKiBCdXNjYSBlbCBjb250cm9sIHNpbiBleHBsb3RhciBzaSBlbCBmb3JtdWxhcmlvIHRvZGF2w61hIG5vIHNlIGNvbnN0cnV5w7MuXG4gICAqIGBnZXRDb250cm9sYCBhc3VtZSBgRm9ybWAgeWEgaW5pY2lhbGl6YWRvOyBhY8OhIHNlIGxsYW1hIGRlc2RlIGVsIHRlbXBsYXRlLFxuICAgKiBxdWUgcHVlZGUgZXZhbHVhcnNlIGFudGVzIGRlIGBuZ09uSW5pdGAgZW4gYWxndW5vcyBjaWNsb3MuXG4gICAqL1xuICBwcml2YXRlIGNvbnRyb2xQb3JOb21icmUobm9tYnJlPzogc3RyaW5nKSB7XG4gICAgaWYgKCFub21icmUpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHRoaXMuRm9ybT8uZ2V0KG5vbWJyZSkgPz8gdW5kZWZpbmVkO1xuICB9XG5cbiAgZW1haWxTdWdnZXN0aW9uUXVlc3Rpb24oc3VnZXJpZG86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgdGV4dG8gPSB0aGlzLnRleHRvSTE4bignZW1haWxTdWdnZXN0aW9uUXVlc3Rpb24nLCAnwr9RdWlzaXN0ZSBkZWNpciB7ZW1haWx9PycpO1xuICAgIHJldHVybiB0ZXh0by5yZXBsYWNlKCd7ZW1haWx9Jywgc3VnZXJpZG8pO1xuICB9XG5cbiAgZW1haWxTdWdnZXN0aW9uQXBwbHlMYWJlbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRleHRvSTE4bignZW1haWxTdWdnZXN0aW9uQXBwbHknLCAnU8OtLCBjb3JyZWdpcicpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyYWR1Y2UgY29uIHJlc3BhbGRvIHJlYWwuXG4gICAqXG4gICAqIGBJMThuU2VydmljZS50KClgIE5PIGRldnVlbHZlIG51bGwgY3VhbmRvIGZhbHRhIGxhIGNsYXZlOiBkZXZ1ZWx2ZSB2YWPDrW8gb1xuICAgKiB1biBwbGFjZWhvbGRlciBgW25hbWVzcGFjZS5rZXldYC4gQ29uIGA/P2AgZWwgcmVzcGFsZG8gbnVuY2EgZW50cmFiYSB5IGVsXG4gICAqIHJlbmdsw7NuIHNhbMOtYSBlbiBibGFuY28gZW4gY3VhbHF1aWVyIGFwcCBxdWUgbm8gcmVnaXN0cmFyYSBsYSBjbGF2ZS4gTG9cbiAgICogZW5jb250csOzIGVsIHNwZWMgZGVsIGNvbXBvbmVudGUsIG5vIGxhIHJldmlzacOzbiBhIG9qby5cbiAgICovXG4gIHByaXZhdGUgdGV4dG9JMThuKGtleTogc3RyaW5nLCByZXNwYWxkbzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCB0ZXh0byA9IHRoaXMuaTE4blN1Z2dlc3Rpb24/LnQoa2V5KSA/PyAnJztcbiAgICBpZiAoIXRleHRvIHx8IHRleHRvLnN0YXJ0c1dpdGgoJ1snKSkgcmV0dXJuIHJlc3BhbGRvO1xuICAgIHJldHVybiB0ZXh0bztcbiAgfVxuXG4gIC8qKiBBcGxpY2EgbGEgY29ycmVjY2nDs24uIEVzIGxhIMO6bmljYSB2w61hOiBuYWRhIHNlIHJlZXNjcmliZSBzaW4gZXN0ZSBjbGljLiAqL1xuICBhcHBseUVtYWlsU3VnZ2VzdGlvbihmaWVsZDogSW5wdXRNZXRhZGF0YSwgc3VnZXJpZG86IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGNvbnRyb2wgPSBmaWVsZC5jb250cm9sID8/IHRoaXMuY29udHJvbFBvck5vbWJyZShmaWVsZC5uYW1lKTtcbiAgICBjb250cm9sPy5zZXRWYWx1ZShzdWdlcmlkbyk7XG4gICAgY29udHJvbD8ubWFya0FzRGlydHkoKTtcbiAgICAvLyBBcGxpY2FkYSBkZWphIGRlIG9mcmVjZXJzZTsgc2kgZWwgdXN1YXJpbyB2dWVsdmUgYSBlc2NyaWJpciBtYWwsIGVsXG4gICAgLy8gdmFsb3Igc2Vyw6Egb3RybyB5IGxhIHN1Z2VyZW5jaWEgcmVhcGFyZWNlLlxuICAgIHRoaXMuc3VnZ2VzdGlvbkRpc21pc3NlZC5hZGQoc3VnZXJpZG8pO1xuICB9XG5cbn1cbiJdfQ==
|