@wertzui/ngx-restworld-client 7.1.0 → 7.2.0
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/esm2020/lib/components/restworld-avatar/restworld-avatar.component.mjs +33 -0
- package/esm2020/lib/restworld-client.module.mjs +14 -4
- package/esm2020/lib/services/avatar-generator.mjs +14 -16
- package/esm2020/lib/views/restworld-edit-form/restworld-edit-form.component.mjs +3 -3
- package/esm2020/lib/views/restworld-edit-view/restworld-edit-view.component.mjs +3 -1
- package/esm2020/lib/views/restworld-list-view/restworld-list-view.component.mjs +5 -5
- package/esm2020/public-api.mjs +2 -1
- package/fesm2015/wertzui-ngx-restworld-client.mjs +164 -120
- package/fesm2015/wertzui-ngx-restworld-client.mjs.map +1 -1
- package/fesm2020/wertzui-ngx-restworld-client.mjs +138 -102
- package/fesm2020/wertzui-ngx-restworld-client.mjs.map +1 -1
- package/lib/components/restworld-avatar/restworld-avatar.component.d.ts +21 -0
- package/lib/restworld-client.module.d.ts +34 -33
- package/lib/services/avatar-generator.d.ts +6 -5
- package/package.json +2 -1
- package/public-api.d.ts +1 -0
|
@@ -80,6 +80,8 @@ export class RESTworldEditViewComponent {
|
|
|
80
80
|
this.load();
|
|
81
81
|
}
|
|
82
82
|
static getSubControl(control, pathElement) {
|
|
83
|
+
if (pathElement === "")
|
|
84
|
+
return control;
|
|
83
85
|
if (control instanceof UntypedFormGroup)
|
|
84
86
|
return control.controls[pathElement];
|
|
85
87
|
if (control instanceof UntypedFormArray) {
|
|
@@ -322,4 +324,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImpor
|
|
|
322
324
|
}], uri: [{
|
|
323
325
|
type: Input
|
|
324
326
|
}] } });
|
|
325
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdHdvcmxkLWVkaXQtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVzdHdvcmxkLWNsaWVudC9zcmMvbGliL3ZpZXdzL3Jlc3R3b3JsZC1lZGl0LXZpZXcvcmVzdHdvcmxkLWVkaXQtdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVzdHdvcmxkLWNsaWVudC9zcmMvbGliL3ZpZXdzL3Jlc3R3b3JsZC1lZGl0LXZpZXcvcmVzdHdvcmxkLWVkaXQtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUF3RSxNQUFNLHlCQUF5QixDQUFDO0FBRzdILE9BQU8sRUFBbUIsV0FBVyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBc0IsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJN0ksT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVU3QyxNQUFNLE9BQU8sMEJBQTBCO0lBcUVyQyxZQUNVLFFBQW1DLEVBQ25DLG9CQUF5QyxFQUN6QyxlQUErQixFQUMvQixTQUFtQixFQUNuQixPQUFlLEVBQ2YsWUFBeUIsRUFDakMsZUFBZ0M7UUFOeEIsYUFBUSxHQUFSLFFBQVEsQ0FBMkI7UUFDbkMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFxQjtRQUN6QyxvQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7UUFDL0IsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNuQixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsaUJBQVksR0FBWixZQUFZLENB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LFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBRzNDLFlBQVk7c0JBRFgsWUFBWTt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUc1QyxnQkFBZ0I7c0JBRGYsWUFBWTt1QkFBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUdoRCxZQUFZO3NCQURYLFlBQVk7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFHNUMsV0FBVztzQkFEVixZQUFZO3VCQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBRzNDLFlBQVk7c0JBRFgsWUFBWTt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQStCakMsT0FBTztzQkFEakIsS0FBSztnQkE2QkssR0FBRztzQkFEYixLQUFLO2dCQWtCSyxHQUFHO3NCQURiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFByb3BlcnR5VHlwZSwgUmVzb3VyY2UsIFRlbXBsYXRlLCBUZW1wbGF0ZXMsIEZvcm1zUmVzb3VyY2UsIFByb3BlcnR5LCBMaXN0UmVzb3VyY2UgfSBmcm9tICdAd2VydHp1aS9uZ3gtaGFsLWNsaWVudCc7XHJcbmltcG9ydCB7IFJFU1R3b3JsZENsaWVudCB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Jlc3R3b3JsZC1jbGllbnQnO1xyXG5pbXBvcnQgeyBSRVNUd29ybGRDbGllbnRDb2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcmVzdHdvcmxkLWNsaWVudC1jb2xsZWN0aW9uJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBVbnR5cGVkRm9ybUFycmF5LCBVbnR5cGVkRm9ybUNvbnRyb2wsIFVudHlwZWRGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENvbmZpcm1hdGlvblNlcnZpY2UsIE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xyXG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFByb2JsZW1EZXRhaWxzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3Byb2JsZW0tZGV0YWlscyc7XHJcbmltcG9ydCB7IENvbnRlbnRDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBWYWxkZW1vcnRDb25maWcgfSBmcm9tICduZ3gtdmFsZGVtb3J0JztcclxuaW1wb3J0IHsgRm9ybVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mb3JtLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdydy1lZGl0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcmVzdHdvcmxkLWVkaXQtdmlldy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcmVzdHdvcmxkLWVkaXQtdmlldy5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFJFU1R3b3JsZEVkaXRWaWV3Q29tcG9uZW50IHtcclxuICBAQ29udGVudENoaWxkKCdidXR0b25zJywgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgYnV0dG9uc1JlZj86IFRlbXBsYXRlUmVmPHVua25vd24+O1xyXG4gIEBDb250ZW50Q2hpbGQoJ2V4dHJhVGFicycsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIGV4dHJhVGFic1JlZj86IFRlbXBsYXRlUmVmPHVua25vd24+O1xyXG4gIHB1YmxpYyBpZE5hdmlnYXRpb25Gb3JtID0gbmV3IEZvcm1Hcm91cCA8IHtcclxuICAgIGlkOiBGb3JtQ29udHJvbDxudW1iZXIgfCBudWxsPlxyXG4gIH0+KHtcclxuICAgIGlkOiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgVmFsaWRhdG9ycy5jb21wb3NlKFtWYWxpZGF0b3JzLm1pbigxKSwgVmFsaWRhdG9ycy5tYXgoTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpXSkpXHJcbiAgfSk7XHJcbiAgQENvbnRlbnRDaGlsZCgnaW5wdXRCb29sJywgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgaW5wdXRCb29sUmVmPzogVGVtcGxhdGVSZWY8dW5rbm93bj47XHJcbiAgQENvbnRlbnRDaGlsZCgnaW5wdXRDb2xvcicsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIGlucHV0Q29sb3JSZWY/OiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcclxuICBAQ29udGVudENoaWxkKCdpbnB1dERhdGUnLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICBpbnB1dERhdGVSZWY/OiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcclxuICBAQ29udGVudENoaWxkKCdpbnB1dERhdGV0aW1lTG9jYWwnLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICBpbnB1dERhdGV0aW1lTG9jYWxSZWY/OiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcclxuICBAQ29udGVudENoaWxkKCdpbnB1dERhdGV0aW1lT2Zmc2V0JywgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgaW5wdXREYXRldGltZU9mZnNldFJlZj86IFRlbXBsYXRlUmVmPHVua25vd24+O1xyXG4gIEBDb250ZW50Q2hpbGQoJ2lucHV0RGVmYXVsdCcsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIGlucHV0RGVmYXVsdFJlZj86IFRlbXBsYXRlUmVmPHVua25vd24+O1xyXG4gIEBDb250ZW50Q2hpbGQoJ2lucHV0RHVyYXRpb24nLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICBpbnB1dER1cmF0aW9uUmVmPzogVGVtcGxhdGVSZWY8dW5rbm93bj47XHJcbiAgQENvbnRlbnRDaGlsZCgnaW5wdXRFbWFpbCcsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIGlucHV0RW1haWxSZWY/OiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcclxuICBAQ29udGVudENoaWxkKCdpbnB1dEZpbGUnLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICBpbnB1dEZpbGVSZWY/OiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcclxuICBAQ29udGVudENoaWxkKCdpbnB1dEhpZGRlbicsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIGlucHV0SGlkZGVuUmVmPzogVGVtcGxhdGVSZWY8dW5rbm93bj47XHJcbiAgQENvbnRlbnRDaGlsZCgnaW5wdXRJbWFnZScsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIGlucHV0SW1hZ2VSZWY/OiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcclxuICBAQ29udGVudENoaWxkKCdpbnB1dE1vbnRoJywgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgaW5wdXRNb250aFJlZj86IFRlbXBsYXRlUmVmPHVua25vd24+O1xyXG4gIEBDb250ZW50Q2hpbGQoJ2lucHV0TnVtYmVyJywgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgaW5wdXROdW1iZXJSZWY/OiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcclxuICBAQ29udGVudENoaWxkKCdpbnB1dE9wdGlvbnNNdWx0aXBsZScsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIGlucHV0T3B0aW9uc011bHRpcGxlUmVmPzogVGVtcGxhdGVSZWY8dW5rbm93bj47XHJcbiAgQENvbnRlbnRDaGlsZCgnaW5wdXRPcHRpb25zJywgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgaW5wdXRPcHRpb25zUmVmPzogVGVtcGxhdGVSZWY8dW5rbm93bj47XHJcbiAgQENvbnRlbnRDaGlsZCgnaW5wdXRPcHRpb25zU2luZ2xlJywgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgaW5wdXRPcHRpb25zU2luZ2xlUmVmPzogVGVtcGxhdGVSZWY8dW5rbm93bj47XHJcbiAgQENvbnRlbnRDaGlsZCgnaW5wdXRQYXNzd29yZCcsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIGlucHV0UGFzc3dvcmRSZWY/OiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcclxuICBAQ29udGVudENoaWxkKCdpbnB1dFJhbmdlJywgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgaW5wdXRSYW5nZVJlZj86IFRlbXBsYXRlUmVmPHVua25vd24+O1xyXG4gIEBDb250ZW50Q2hpbGQoJ2lucHV0U2VhcmNoJywgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgaW5wdXRTZWFyY2hSZWY/OiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcclxuICBAQ29udGVudENoaWxkKCdpbnB1dFRlbCcsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIGlucHV0VGVsUmVmPzogVGVtcGxhdGVSZWY8dW5rbm93bj47XHJcbiAgQENvbnRlbnRDaGlsZCgnaW5wdXRUZXh0JywgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgaW5wdXRUZXh0UmVmPzogVGVtcGxhdGVSZWY8dW5rbm93bj47XHJcbiAgQENvbnRlbnRDaGlsZCgnaW5wdXRUZXh0YXJlYScsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIGlucHV0VGV4dGFyZWFSZWY/OiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcclxuICBAQ29udGVudENoaWxkKCdpbnB1dFRpbWUnLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICBpbnB1dFRpbWVSZWY/OiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcclxuICBAQ29udGVudENoaWxkKCdpbnB1dFVybCcsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIGlucHV0VXJsUmVmPzogVGVtcGxhdGVSZWY8dW5rbm93bj47XHJcbiAgQENvbnRlbnRDaGlsZCgnaW5wdXRXZWVrJywgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgaW5wdXRXZWVrUmVmPzogVGVtcGxhdGVSZWY8dW5rbm93bj47XHJcbiAgcHVibGljIGlzTG9hZGluZyA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIF9hcGlOYW1lPzogc3RyaW5nO1xyXG4gIHByaXZhdGUgX2Zvcm1UYWJzOiB7IFtuYW1lOiBzdHJpbmddOiBVbnR5cGVkRm9ybUdyb3VwIH0gPSB7fTtcclxuICBwcml2YXRlIF9yZWw/OiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfcmVzb3VyY2U/OiBSZXNvdXJjZTtcclxuICBwcml2YXRlIF90ZW1wbGF0ZXM6IFRlbXBsYXRlcyA9IHt9O1xyXG4gIHByaXZhdGUgX3VyaT86IHN0cmluZztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9jbGllbnRzOiBSRVNUd29ybGRDbGllbnRDb2xsZWN0aW9uLFxyXG4gICAgcHJpdmF0ZSBfY29uZmlybWF0aW9uU2VydmljZTogQ29uZmlybWF0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX21lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgX2xvY2F0aW9uOiBMb2NhdGlvbixcclxuICAgIHByaXZhdGUgX3JvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBfZm9ybVNlcnZpY2U6IEZvcm1TZXJ2aWNlLFxyXG4gICAgdmFsZGVtb3J0Q29uZmlnOiBWYWxkZW1vcnRDb25maWcpIHtcclxuICAgIHZhbGRlbW9ydENvbmZpZy5lcnJvckNsYXNzZXMgPSAncC1lcnJvciB0ZXh0LXNtJztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgUHJvcGVydHlUeXBlKCkge1xyXG4gICAgcmV0dXJuIFByb3BlcnR5VHlwZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgYXBpTmFtZSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FwaU5hbWU7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgYXBpTmFtZSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XHJcbiAgICB0aGlzLl9hcGlOYW1lID0gdmFsdWU7XHJcbiAgICB0aGlzLmxvYWQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgY2FuRGVsZXRlKCkge1xyXG4gICAgY29uc3QgbGVuZ3RoID0gdGhpcy5yZXNvdXJjZT8uX2xpbmtzW1wiZGVsZXRlXCJdPy5sZW5ndGg7XHJcbiAgICByZXR1cm4gbGVuZ3RoICE9PSB1bmRlZmluZWQgJiYgbGVuZ3RoID4gMDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgY2FuU2F2ZSgpIHtcclxuICAgIGNvbnN0IGxlbmd0aCA9IHRoaXMucmVzb3VyY2U/Ll9saW5rc1tcInNhdmVcIl0/Lmxlbmd0aDtcclxuICAgIHJldHVybiBsZW5ndGggIT09IHVuZGVmaW5lZCAmJiBsZW5ndGggPiAwO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBmb3JtVGFicygpIHtcclxuICAgIHJldHVybiB0aGlzLl9mb3JtVGFicztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgaXNMb2FkaW5nRm9yVGhlRmlyc3RUaW1lKCkge1xyXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMudGVtcGxhdGVzKS5sZW5ndGggPT09IDAgJiYgdGhpcy5pc0xvYWRpbmc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHJlbCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuX3JlbDtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCByZWwodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xyXG4gICAgdGhpcy5fcmVsID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHJlc291cmNlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3Jlc291cmNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCB0ZW1wbGF0ZXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fdGVtcGxhdGVzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCB1cmkoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLl91cmk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgdXJpKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcclxuICAgIHRoaXMuX3VyaSA9IHZhbHVlO1xyXG4gICAgdGhpcy5sb2FkKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0YXRpYyBnZXRTdWJDb250cm9sKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCwgcGF0aEVsZW1lbnQ6IHN0cmluZyk6IEFic3RyYWN0Q29udHJvbCB7XHJcbiAgICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIFVudHlwZWRGb3JtR3JvdXApXHJcbiAgICAgIHJldHVybiBjb250cm9sLmNvbnRyb2xzW3BhdGhFbGVtZW50XTtcclxuICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgVW50eXBlZEZvcm1BcnJheSkge1xyXG4gICAgICBjb25zdCBpbmRleCA9IE51bWJlci5wYXJzZUludChwYXRoRWxlbWVudCk7XHJcbiAgICAgIGlmIChOdW1iZXIuaXNJbnRlZ2VyKGluZGV4KSlcclxuICAgICAgICByZXR1cm4gY29udHJvbC5jb250cm9sc1tpbmRleF07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY29udHJvbDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RhdGljIGpzb25TdHJpbmdpZnlXaXRoRWxpcHNpcyh2YWx1ZTogdW5rbm93bikge1xyXG4gICAgY29uc3QgbWF4TGVuZ3RoID0gMjAwO1xyXG4gICAgY29uc3QgZW5kID0gMTA7XHJcbiAgICBjb25zdCBzdGFydCA9IG1heExlbmd0aCAtIGVuZCAtIDI7XHJcbiAgICBjb25zdCBqc29uID0gSlNPTi5zdHJpbmdpZnkodmFsdWUpO1xyXG4gICAgY29uc3Qgc2hvcnRlbmVkID0ganNvbi5sZW5ndGggPiBtYXhMZW5ndGggPyBqc29uLnN1YnN0cmluZygwLCBzdGFydCkgKyAn4oCmJyArIGpzb24uc3Vic3RyaW5nKGpzb24ubGVuZ3RoIC0gZW5kKSA6IGpzb247XHJcblxyXG4gICAgcmV0dXJuIHNob3J0ZW5lZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjYW5TdWJtaXQodGVtcGxhdGVOYW1lOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGZvcm0gPSB0aGlzLmZvcm1UYWJzW3RlbXBsYXRlTmFtZV07XHJcbiAgICByZXR1cm4gZm9ybSAmJiBmb3JtLnZhbGlkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGRlbGV0ZSgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICghdGhpcy5hcGlOYW1lIHx8ICF0aGlzLnVyaSB8fCAhdGhpcy5yZXNvdXJjZSlcclxuICAgICAgcmV0dXJuO1xyXG5cclxuICAgIE9iamVjdC5hc3NpZ24odGhpcy5yZXNvdXJjZSwgdGhpcy5mb3JtVGFicy52YWx1ZSk7XHJcblxyXG4gICAgYXdhaXQgdGhpcy5nZXRDbGllbnQoKS5kZWxldGUodGhpcy5yZXNvdXJjZSk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+XHJcbiAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnc3VjY2VzcycsIHN1bW1hcnk6ICdEZWxldGVkJywgZGV0YWlsOiAnVGhlIHJlc291cmNlIGhhcyBiZWVuIGRlbGV0ZWQuJyB9KSxcclxuICAgICAgMTAwKTtcclxuXHJcbiAgICB0aGlzLl9sb2NhdGlvbi5iYWNrKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0VG9vbHRpcChyZXNvdXJjZTogUmVzb3VyY2UsIGtleXNUb0V4Y2x1ZGU/OiBzdHJpbmdbXSk6IHN0cmluZyB7XHJcbiAgICBjb25zdCB0b29sdGlwID0gT2JqZWN0LmVudHJpZXMocmVzb3VyY2UpXHJcbiAgICAgIC5maWx0ZXIoKFtrZXldKSA9PiAhKGtleS5zdGFydHNXaXRoKCdfJykgfHwgWydjcmVhdGVkQXQnLCAnY3JlYXRlZEJ5JywgJ2xhc3RDaGFuZ2VkQXQnLCAnbGFzdENoYW5nZWRCeScsICd0aW1lc3RhbXAnXS5pbmNsdWRlcyhrZXkpIHx8IGtleXNUb0V4Y2x1ZGU/LmluY2x1ZGVzKGtleSkpKVxyXG4gICAgICAucmVkdWNlKChwcmV2LCBba2V5LCB2YWx1ZV0sIGluZGV4KSA9PiBgJHtwcmV2fSR7aW5kZXggPT09IDAgPyAnJyA6ICdcXG4nfSR7a2V5fTogJHtSRVNUd29ybGRFZGl0Vmlld0NvbXBvbmVudC5qc29uU3RyaW5naWZ5V2l0aEVsaXBzaXModmFsdWUpfWAsICcnKTtcclxuXHJcbiAgICByZXR1cm4gdG9vbHRpcDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpbWFnZUNoYW5nZWQoZm9ybUNvbnRyb2w6IFVudHlwZWRGb3JtQ29udHJvbCwgZXZlbnQ6IHsgZmlsZXM6IEZpbGVbXSB9KTogdm9pZCB7XHJcbiAgICBjb25zdCBmaWxlID0gZXZlbnQuZmlsZXNbMF07XHJcbiAgICBjb25zb2xlLmxvZyhmaWxlKTtcclxuICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiAgICByZWFkZXIub25sb2FkID0gKCkgPT4ge1xyXG4gICAgICBjb25zdCB1cmkgPSByZWFkZXIucmVzdWx0O1xyXG4gICAgICBjb25zb2xlLmxvZyh1cmkpO1xyXG4gICAgICBmb3JtQ29udHJvbC5zZXRWYWx1ZSh1cmkpO1xyXG4gICAgfTtcclxuICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGxvYWQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoIXRoaXMuYXBpTmFtZSB8fCAhdGhpcy51cmkpXHJcbiAgICAgIHJldHVybjtcclxuXHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcblxyXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmdldENsaWVudCgpLmdldFNpbmdsZSh0aGlzLnVyaSk7XHJcbiAgICBpZiAoIXJlc3BvbnNlLm9rIHx8IFByb2JsZW1EZXRhaWxzLmlzUHJvYmxlbURldGFpbHMocmVzcG9uc2UuYm9keSkgfHwgIXJlc3BvbnNlLmJvZHkpIHtcclxuICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdlcnJvcicsIHN1bW1hcnk6ICdFcnJvcicsIGRldGFpbDogJ0Vycm9yIHdoaWxlIGxvYWRpbmcgdGhlIHJlc291cmNlIGZyb20gdGhlIEFQSS4nLCBkYXRhOiByZXNwb25zZSB9KTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLl9yZXNvdXJjZSA9IHJlc3BvbnNlLmJvZHk7XHJcbiAgICAgIHRoaXMuX3RlbXBsYXRlcyA9IGF3YWl0IHRoaXMuZ2V0QWxsVGVtcGxhdGVzKHRoaXMuX3Jlc291cmNlKTtcclxuICAgICAgdGhpcy5fZm9ybVRhYnMgPSB0aGlzLl9mb3JtU2VydmljZS5jcmVhdGVGb3JtR3JvdXBzRnJvbVRlbXBsYXRlcyh0aGlzLl90ZW1wbGF0ZXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgbmF2aWdhdGVCeUlkKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKCF0aGlzLnJlbClcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgXCJyZWxcIiBtdXN0IGJlIHNldCB0aHJvdWdoIHRoZSB1cmkgb2YgdGhpcyBwYWdlIGZvciB0aGUgSUQgbmF2aWdhdGlvbiB0byB3b3JrLicpO1xyXG5cclxuICAgIGlmICghdGhpcy5pZE5hdmlnYXRpb25Gb3JtLnZhbGlkKSB7XHJcbiAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7IGRldGFpbDogJ1lvdSBtdXN0IGVudGVyIGEgdmFsaWQgSUQgdG8gbmF2aWFnZSB0by4nLCBzZXZlcml0eTogJ2Vycm9yJyB9KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdmFyIGlkVG9OYXZpZ2F0ZVRvID0gdGhpcy5pZE5hdmlnYXRpb25Gb3JtLmNvbnRyb2xzLmlkLnZhbHVlO1xyXG5cclxuICAgIHZhciBjbGllbnQgPSB0aGlzLmdldENsaWVudCgpO1xyXG5cclxuICAgIHZhciByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5nZXRMaXN0PFJlc291cmNlPih0aGlzLnJlbCwgeyAkZmlsdGVyOiBgaWQgZXEgJHtpZFRvTmF2aWdhdGVUb31gIH0pO1xyXG4gICAgaWYgKCFyZXNwb25zZS5vayB8fCBQcm9ibGVtRGV0YWlscy5pc1Byb2JsZW1EZXRhaWxzKHJlc3BvbnNlLmJvZHkpIHx8ICFyZXNwb25zZS5ib2R5KSB7XHJcbiAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnZXJyb3InLCBzdW1tYXJ5OiAnRXJyb3InLCBkZXRhaWw6ICdFcnJvciB3aGlsZSBsb2FkaW5nIHRoZSByZXNvdXJjZXMgZnJvbSB0aGUgQVBJLicsIGRhdGE6IHJlc3BvbnNlIH0pO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdmFyIHJlc291cmNlID0gcmVzcG9uc2UuYm9keT8uX2VtYmVkZGVkPy5pdGVtcz8uWzBdO1xyXG4gICAgaWYgKCFyZXNvdXJjZSkge1xyXG4gICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2Vycm9yJywgc3VtbWFyeTogJ0Vycm9yJywgZGV0YWlsOiAnTm8gcmVzb3VyY2UgZm91bmQgd2l0aCB0aGUgc3BlY2lmaWVkIElELicgfSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBhd2FpdCB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoWycvZWRpdCcsIHRoaXMuYXBpTmFtZSwgdGhpcy5yZWwsIHJlc291cmNlLl9saW5rcy5zZWxmWzBdLmhyZWZdKTtcclxuXHJcbiAgICB0aGlzLmlkTmF2aWdhdGlvbkZvcm0ucmVzZXQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzaG93RGVsZXRlQ29uZmlybWF0aW9Nb2RhbCgpIHtcclxuICAgIHRoaXMuX2NvbmZpcm1hdGlvblNlcnZpY2UuY29uZmlybSh7XHJcbiAgICAgIG1lc3NhZ2U6ICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgcmVzb3VyY2U/JyxcclxuICAgICAgaGVhZGVyOiAnQ29uZmlybSBkZWxldGUnLFxyXG4gICAgICBpY29uOiAnZmFyIGZhLXRyYXNoLWFsdCcsXHJcbiAgICAgIGFjY2VwdDogKCkgPT4gdGhpcy5kZWxldGUoKVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgc3VibWl0KHRlbXBsYXRlTmFtZTogc3RyaW5nLCB0ZW1wbGF0ZTogVGVtcGxhdGUsIGZvcm1WYWx1ZToge30pIHtcclxuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCB0YXJnZXRCZWZvcmVTYXZlID0gdGVtcGxhdGUudGFyZ2V0O1xyXG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuZ2V0Q2xpZW50KCkuc3VibWl0KHRlbXBsYXRlLCBmb3JtVmFsdWUpO1xyXG5cclxuICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xyXG4gICAgICAgIGxldCBzdW1tYXJ5ID0gJ0Vycm9yJztcclxuICAgICAgICBsZXQgZGV0YWlsID0gJ0Vycm9yIHdoaWxlIHNhdmluZyB0aGUgcmVzb3VyY2UuJztcclxuICAgICAgICBpZiAoUHJvYmxlbURldGFpbHMuaXNQcm9ibGVtRGV0YWlscyhyZXNwb25zZS5ib2R5KSkge1xyXG4gICAgICAgICAgY29uc3QgcHJvYmxlbURldGFpbHMgPSByZXNwb25zZS5ib2R5IGFzIFByb2JsZW1EZXRhaWxzO1xyXG4gICAgICAgICAgc3VtbWFyeSA9IHByb2JsZW1EZXRhaWxzLnRpdGxlIHx8IHN1bW1hcnk7XHJcbiAgICAgICAgICBkZXRhaWwgPSBwcm9ibGVtRGV0YWlscy5kZXRhaWwgfHwgZGV0YWlsO1xyXG4gICAgICAgICAgLy8gZGlzcGxheSB2YWxpZGF0aW9uIGVycm9yc1xyXG4gICAgICAgICAgaWYgKHByb2JsZW1EZXRhaWxzWydlcnJvcnMnXSBhcyB7fSkge1xyXG4gICAgICAgICAgICBjb25zdCBmb3JtID0gdGhpcy5mb3JtVGFic1t0ZW1wbGF0ZU5hbWVdO1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IFtrZXksIGVycm9yc0ZvcktleV0gb2YgT2JqZWN0LmVudHJpZXMocHJvYmxlbURldGFpbHNbJ2Vycm9ycyddIGFzIHt9KSkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IHBhdGggPSBrZXkuc3BsaXQoL1xcLnxcXFsvKS5tYXAoZSA9PiBlLnJlcGxhY2UoXCJdXCIsIFwiXCIpKTtcclxuICAgICAgICAgICAgICAvLyBUaGUgcGF0aCBtaWdodCBzdGFydCB3aXRoIGEgJCwgaW5kaWNhdGluZyB0aGUgcm9vdC5cclxuICAgICAgICAgICAgICBpZiAocGF0aC5sZW5ndGggPiAwICYmIHBhdGhbMF0gPT09ICckJylcclxuICAgICAgICAgICAgICAgIHBhdGguc2hpZnQoKTtcclxuICAgICAgICAgICAgICBjb25zdCBmb3JtQ29udHJvbCA9IHBhdGgucmVkdWNlPEFic3RyYWN0Q29udHJvbD4oUkVTVHdvcmxkRWRpdFZpZXdDb21wb25lbnQuZ2V0U3ViQ29udHJvbCwgZm9ybSk7XHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2wuc2V0RXJyb3JzKHsgLi4uZm9ybUNvbnRyb2wuZXJyb3JzLCAuLi57IHJlbW90ZTogZXJyb3JzRm9yS2V5IH0gfSk7XHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2Vycm9yJywgc3VtbWFyeTogc3VtbWFyeSwgZGV0YWlsOiBkZXRhaWwsIGRhdGE6IHJlc3BvbnNlLCBsaWZlOiAxMDAwMCB9KTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBjb25zdCByZXNwb25zZVJlc291cmNlID0gKHJlc3BvbnNlLmJvZHkgYXMgRm9ybXNSZXNvdXJjZSk7XHJcbiAgICAgICAgY29uc3QgdGFyZ2V0QWZ0ZXJTYXZlID0gcmVzcG9uc2VSZXNvdXJjZS5fdGVtcGxhdGVzW3RlbXBsYXRlTmFtZV0udGFyZ2V0O1xyXG5cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+XHJcbiAgICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ3N1Y2Nlc3MnLCBzdW1tYXJ5OiAnU2F2ZWQnLCBkZXRhaWw6ICdUaGUgcmVzb3VyY2UgaGFzIGJlZW4gc2F2ZWQuJyB9KSxcclxuICAgICAgICAgIDEwMCk7XHJcblxyXG4gICAgICAgIGlmICh0YXJnZXRCZWZvcmVTYXZlICE9PSB0YXJnZXRBZnRlclNhdmUpIHtcclxuICAgICAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbJy9lZGl0JywgdGhpcy5hcGlOYW1lLCByZXNwb25zZVJlc291cmNlLl9saW5rcy5zZWxmWzBdLmhyZWZdKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNhdGNoIChlOiB1bmtub3duKSB7XHJcbiAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnZXJyb3InLCBzdW1tYXJ5OiAnRXJyb3InLCBkZXRhaWw6IGBBbiB1bmtub3duIGVycm9yIG9jY3VycmVkLiAke0pTT04uc3RyaW5naWZ5KGUpfWAsIGxpZmU6IDEwMDAwIH0pO1xyXG4gICAgICBjb25zb2xlLmxvZyhlKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBnZXRBbGxUZW1wbGF0ZXMocmVzb3VyY2U6IFJlc291cmNlKTogUHJvbWlzZTxUZW1wbGF0ZXM+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmdldENsaWVudCgpLmdldEFsbFRlbXBsYXRlcyhyZXNvdXJjZSk7XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoZTogdW5rbm93bikge1xyXG4gICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2Vycm9yJywgc3VtbWFyeTogJ0Vycm9yJywgZGV0YWlsOiAnRXJyb3Igd2hpbGUgbG9hZGluZyB0aGUgdGVtcGxhdGVzIGZyb20gdGhlIEFQSS4gJyArIGUsIGRhdGE6IGUgfSk7XHJcbiAgICAgIHJldHVybiB7fTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0Q2xpZW50KCk6IFJFU1R3b3JsZENsaWVudCB7XHJcbiAgICBpZiAoIXRoaXMuYXBpTmFtZSlcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgZ2V0IGEgY2xpZW50LCBiZWNhdXNlIHRoZSBhcGlOYW1lIGlzIG5vdCBzZXQuJyk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuX2NsaWVudHMuZ2V0Q2xpZW50KHRoaXMuYXBpTmFtZSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJncmlkXCI+XHJcbiAgPGRpdiBjbGFzcz1cImNvbC0xMiBtZDpjb2wtMTBcIj5cclxuICAgIDxoMT5FZGl0IHJlc291cmNlPC9oMT5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiY29sLTEyIG1kOmNvbC0yIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtZW5kIGZsZXhcIj5cclxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiaWROYXZpZ2F0aW9uRm9ybVwiIChuZ1N1Ym1pdCk9XCJuYXZpZ2F0ZUJ5SWQoKVwiIGNsYXNzPVwibXItM1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicC1pbnB1dGdyb3VwXCI+XHJcbiAgICAgICAgPHAtaW5wdXROdW1iZXIgZm9ybUNvbnRyb2xOYW1lPVwiaWRcIiBwbGFjZWhvbGRlcj1cIk5hdmlnYXRlIGJ5IElEXCI+PC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIHBCdXR0b24gcFJpcHBsZSBpY29uPVwiZmEtc29saWQgZmEtYXJyb3ctcmlnaHRcIj48L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Zvcm0+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPHAtdGFiVmlldz5cclxuXHJcbiAgPHAtdGFiUGFuZWwgKm5nSWY9XCJpc0xvYWRpbmdGb3JUaGVGaXJzdFRpbWVcIiBoZWFkZXI9XCJMb2FkaW5nXCI+XHJcbiAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpIG9mIFsxLCAyLCAzLCA0LCA1XVwiIGNsYXNzPVwiZ3JpZCBmaWVsZFwiPlxyXG4gICAgICA8cC1za2VsZXRvbiBjbGFzcz1cImNvbC0xMiBtYi0yIG1kOmNvbC0yIG1kOm1iLTBcIiBoZWlnaHQ9XCIzOXB4XCI+PC9wLXNrZWxldG9uPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIG1kOmNvbC0xMFwiPlxyXG4gICAgICAgIDxwLXNrZWxldG9uIGNsYXNzPVwidy1mdWxsXCIgaGVpZ2h0PVwiMzlweFwiPjwvcC1za2VsZXRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJncmlkXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIHctZnVsbFwiPlxyXG4gICAgICAgICAgPHAtc2tlbGV0b24gd2lkdGg9XCIxMjBweFwiIGhlaWdodD1cIjM5cHhcIiBjbGFzcz1cIm14LTJcIj48L3Atc2tlbGV0b24+XHJcbiAgICAgICAgICA8cC1za2VsZXRvbiB3aWR0aD1cIjEyMHB4XCIgaGVpZ2h0PVwiMzlweFwiIGNsYXNzPVwibXgtMlwiPjwvcC1za2VsZXRvbj5cclxuICAgICAgICAgIDxwLXNrZWxldG9uIHdpZHRoPVwiMTIwcHhcIiBoZWlnaHQ9XCIzOXB4XCIgY2xhc3M9XCJteC0yXCI+PC9wLXNrZWxldG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvcC10YWJQYW5lbD5cclxuXHJcbiAgPHAtdGFiUGFuZWwgKm5nRm9yPVwibGV0IGl0ZW0gb2YgdGVtcGxhdGVzIHwga2V5dmFsdWVcIiBbaGVhZGVyXT1cIml0ZW0udmFsdWUudGl0bGUgfHwgaXRlbS5rZXlcIiBbZGlzYWJsZWRdPVwiaXNMb2FkaW5nXCI+XHJcbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1UYWJzW2l0ZW0ua2V5XVwiIChuZ1N1Ym1pdCk9XCJzdWJtaXQoaXRlbS5rZXksIGl0ZW0udmFsdWUsIGZvcm1UYWJzW2l0ZW0ua2V5XS52YWx1ZSlcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImJsb2NrYWJsZS1jb250YWluZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYmxvY2thYmxlLWVsZW1lbnRcIj5cclxuICAgICAgICAgIDxydy1mb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVRhYnNbaXRlbS5rZXldXCIgW3RlbXBsYXRlXT1cIml0ZW0udmFsdWVcIiBbYXBpTmFtZV09XCJhcGlOYW1lXCI+PC9ydy1mb3JtPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJibG9ja2FibGUtb3ZlcmxheVwiICpuZ0lmPVwiaXNMb2FkaW5nXCI+XHJcbiAgICAgICAgICA8cC1wcm9ncmVzc1NwaW5uZXI+PC9wLXByb2dyZXNzU3Bpbm5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZ3JpZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1lbmQgdy1mdWxsXCI+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdEJ1dHRvbnM+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvbiBwQnV0dG9uIHBSaXBwbGUgdHlwZT1cInN1Ym1pdFwiIGxhYmVsPVwiU2F2ZVwiIGljb249XCJmYXIgZmEtc2F2ZVwiIGNsYXNzPVwibXgtMiBwLWJ1dHRvbi1zdWNjZXNzXCIgW2Rpc2FibGVkXT1cImlzTG9hZGluZyB8fCAhY2FuU3VibWl0KGl0ZW0ua2V5KVwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDxidXR0b24gcEJ1dHRvbiBwUmlwcGxlIHR5cGU9XCJidXR0b25cIiBsYWJlbD1cIlJlbG9hZFwiIGljb249XCJmYXMgZmEtcmVkb1wiIGNsYXNzPVwibXgtMiBwLWJ1dHRvbi1pbmZvXCIgKGNsaWNrKT1cImxvYWQoKVwiIFtkaXNhYmxlZF09XCJpc0xvYWRpbmdcIj48L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8YnV0dG9uIHBCdXR0b24gcFJpcHBsZSB0eXBlPVwiYnV0dG9uXCIgbGFiZWw9XCJEZWxldGVcIiBpY29uPVwiZmFyIGZhLXRyYXNoLWFsdFwiIGNsYXNzPVwibWwtMiBwLWJ1dHRvbi1kYW5nZXJcIiAoY2xpY2spPVwic2hvd0RlbGV0ZUNvbmZpcm1hdGlvTW9kYWwoKVwiIFtkaXNhYmxlZF09XCIhcmVzb3VyY2UgfHwgaXNMb2FkaW5nIHx8ICFjYW5EZWxldGVcIj48L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJ1dHRvbnNSZWYgfHwgZGVmYXVsdEJ1dHRvbnNcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZm9ybT5cclxuICA8L3AtdGFiUGFuZWw+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdEV4dHJhVGFicz5cclxuICA8L25nLXRlbXBsYXRlPlxyXG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJleHRyYVRhYnNSZWYgfHwgZGVmYXVsdEV4dHJhVGFic1wiPjwvbmctY29udGFpbmVyPlxyXG5cclxuPC9wLXRhYlZpZXc+XHJcblxyXG48cC10b2FzdD48L3AtdG9hc3Q+XHJcbjxwLWNvbmZpcm1EaWFsb2c+PC9wLWNvbmZpcm1EaWFsb2c+XHJcbiJdfQ==
|
|
327
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdHdvcmxkLWVkaXQtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVzdHdvcmxkLWNsaWVudC9zcmMvbGliL3ZpZXdzL3Jlc3R3b3JsZC1lZGl0LXZpZXcvcmVzdHdvcmxkLWVkaXQtdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVzdHdvcmxkLWNsaWVudC9zcmMvbGliL3ZpZXdzL3Jlc3R3b3JsZC1lZGl0LXZpZXcvcmVzdHdvcmxkLWVkaXQtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUF3RSxNQUFNLHlCQUF5QixDQUFDO0FBRzdILE9BQU8sRUFBbUIsV0FBVyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBc0IsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJN0ksT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVU3QyxNQUFNLE9BQU8sMEJBQTBCO0lBcUVyQyxZQUNVLFFBQW1DLEVBQ25DLG9CQUF5QyxFQUN6QyxlQUErQixFQUMvQixTQUFtQixFQUNuQixPQUFlLEVBQ2YsWUFBeUIsRUFDakMsZUFBZ0M7UUFOeEIsYUFBUSxHQUFSLFFBQVEsQ0FBMkI7UUFDbkMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFxQjtRQUN6QyxvQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7UUFDL0IsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNuQixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsaUJBQVksR0FBWixZQUFZLENB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QUFNLEVBQUUsS0FBSyxFQUFFO2dCQUc5QyxXQUFXO3NCQURWLFlBQVk7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFHM0MsWUFBWTtzQkFEWCxZQUFZO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBRzVDLGdCQUFnQjtzQkFEZixZQUFZO3VCQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBR2hELFlBQVk7c0JBRFgsWUFBWTt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUc1QyxXQUFXO3NCQURWLFlBQVk7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFHM0MsWUFBWTtzQkFEWCxZQUFZO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBK0JqQyxPQUFPO3NCQURqQixLQUFLO2dCQTZCSyxHQUFHO3NCQURiLEtBQUs7Z0JBa0JLLEdBQUc7c0JBRGIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUHJvcGVydHlUeXBlLCBSZXNvdXJjZSwgVGVtcGxhdGUsIFRlbXBsYXRlcywgRm9ybXNSZXNvdXJjZSwgUHJvcGVydHksIExpc3RSZXNvdXJjZSB9IGZyb20gJ0B3ZXJ0enVpL25neC1oYWwtY2xpZW50JztcclxuaW1wb3J0IHsgUkVTVHdvcmxkQ2xpZW50IH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcmVzdHdvcmxkLWNsaWVudCc7XHJcbmltcG9ydCB7IFJFU1R3b3JsZENsaWVudENvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9yZXN0d29ybGQtY2xpZW50LWNvbGxlY3Rpb24nO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFVudHlwZWRGb3JtQXJyYXksIFVudHlwZWRGb3JtQ29udHJvbCwgVW50eXBlZEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ29uZmlybWF0aW9uU2VydmljZSwgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgUHJvYmxlbURldGFpbHMgfSBmcm9tICcuLi8uLi9tb2RlbHMvcHJvYmxlbS1kZXRhaWxzJztcclxuaW1wb3J0IHsgQ29udGVudENoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFZhbGRlbW9ydENvbmZpZyB9IGZyb20gJ25neC12YWxkZW1vcnQnO1xyXG5pbXBvcnQgeyBGb3JtU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Zvcm0uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3J3LWVkaXQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9yZXN0d29ybGQtZWRpdC12aWV3LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9yZXN0d29ybGQtZWRpdC12aWV3LmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUkVTVHdvcmxkRWRpdFZpZXdDb21wb25lbnQge1xyXG4gIEBDb250ZW50Q2hpbGQoJ2J1dHRvbnMnLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICBidXR0b25zUmVmPzogVGVtcGxhdGVSZWY8dW5rbm93bj47XHJcbiAgQENvbnRlbnRDaGlsZCgnZXh0cmFUYWJzJywgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgZXh0cmFUYWJzUmVmPzogVGVtcGxhdGVSZWY8dW5rbm93bj47XHJcbiAgcHVibGljIGlkTmF2aWdhdGlvbkZvcm0gPSBuZXcgRm9ybUdyb3VwIDwge1xyXG4gICAgaWQ6IEZvcm1Db250cm9sPG51bWJlciB8IG51bGw+XHJcbiAgfT4oe1xyXG4gICAgaWQ6IG5ldyBGb3JtQ29udHJvbChudWxsLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1ZhbGlkYXRvcnMubWluKDEpLCBWYWxpZGF0b3JzLm1heChOdW1iZXIuTUFYX1NBRkVfSU5URUdFUildKSlcclxuICB9KTtcclxuICBAQ29udGVudENoaWxkKCdpbnB1dEJvb2wnLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICBpbnB1dEJvb2xSZWY/OiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcclxuICBAQ29udGVudENoaWxkKCdpbnB1dENvbG9yJywgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgaW5wdXRDb2xvclJlZj86IFRlbXBsYXRlUmVmPHVua25vd24+O1xyXG4gIEBDb250ZW50Q2hpbGQoJ2lucHV0RGF0ZScsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIGlucHV0RGF0ZVJlZj86IFRlbXBsYXRlUmVmPHVua25vd24+O1xyXG4gIEBDb250ZW50Q2hpbGQoJ2lucHV0RGF0ZXRpbWVMb2NhbCcsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIGlucHV0RGF0ZXRpbWVMb2NhbFJlZj86IFRlbXBsYXRlUmVmPHVua25vd24+O1xyXG4gIEBDb250ZW50Q2hpbGQoJ2lucHV0RGF0ZXRpbWVPZmZzZXQnLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICBpbnB1dERhdGV0aW1lT2Zmc2V0UmVmPzogVGVtcGxhdGVSZWY8dW5rbm93bj47XHJcbiAgQENvbnRlbnRDaGlsZCgnaW5wdXREZWZhdWx0JywgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgaW5wdXREZWZhdWx0UmVmPzogVGVtcGxhdGVSZWY8dW5rbm93bj47XHJcbiAgQENvbnRlbnRDaGlsZCgnaW5wdXREdXJhdGlvbicsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIGlucHV0RHVyYXRpb25SZWY/OiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcclxuICBAQ29udGVudENoaWxkKCdpbnB1dEVtYWlsJywgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgaW5wdXRFbWFpbFJlZj86IFRlbXBsYXRlUmVmPHVua25vd24+O1xyXG4gIEBDb250ZW50Q2hpbGQoJ2lucHV0RmlsZScsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIGlucHV0RmlsZVJlZj86IFRlbXBsYXRlUmVmPHVua25vd24+O1xyXG4gIEBDb250ZW50Q2hpbGQoJ2lucHV0SGlkZGVuJywgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgaW5wdXRIaWRkZW5SZWY/OiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcclxuICBAQ29udGVudENoaWxkKCdpbnB1dEltYWdlJywgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgaW5wdXRJbWFnZVJlZj86IFRlbXBsYXRlUmVmPHVua25vd24+O1xyXG4gIEBDb250ZW50Q2hpbGQoJ2lucHV0TW9udGgnLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICBpbnB1dE1vbnRoUmVmPzogVGVtcGxhdGVSZWY8dW5rbm93bj47XHJcbiAgQENvbnRlbnRDaGlsZCgnaW5wdXROdW1iZXInLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICBpbnB1dE51bWJlclJlZj86IFRlbXBsYXRlUmVmPHVua25vd24+O1xyXG4gIEBDb250ZW50Q2hpbGQoJ2lucHV0T3B0aW9uc011bHRpcGxlJywgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgaW5wdXRPcHRpb25zTXVsdGlwbGVSZWY/OiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcclxuICBAQ29udGVudENoaWxkKCdpbnB1dE9wdGlvbnMnLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICBpbnB1dE9wdGlvbnNSZWY/OiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcclxuICBAQ29udGVudENoaWxkKCdpbnB1dE9wdGlvbnNTaW5nbGUnLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICBpbnB1dE9wdGlvbnNTaW5nbGVSZWY/OiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcclxuICBAQ29udGVudENoaWxkKCdpbnB1dFBhc3N3b3JkJywgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgaW5wdXRQYXNzd29yZFJlZj86IFRlbXBsYXRlUmVmPHVua25vd24+O1xyXG4gIEBDb250ZW50Q2hpbGQoJ2lucHV0UmFuZ2UnLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICBpbnB1dFJhbmdlUmVmPzogVGVtcGxhdGVSZWY8dW5rbm93bj47XHJcbiAgQENvbnRlbnRDaGlsZCgnaW5wdXRTZWFyY2gnLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICBpbnB1dFNlYXJjaFJlZj86IFRlbXBsYXRlUmVmPHVua25vd24+O1xyXG4gIEBDb250ZW50Q2hpbGQoJ2lucHV0VGVsJywgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgaW5wdXRUZWxSZWY/OiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcclxuICBAQ29udGVudENoaWxkKCdpbnB1dFRleHQnLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICBpbnB1dFRleHRSZWY/OiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcclxuICBAQ29udGVudENoaWxkKCdpbnB1dFRleHRhcmVhJywgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgaW5wdXRUZXh0YXJlYVJlZj86IFRlbXBsYXRlUmVmPHVua25vd24+O1xyXG4gIEBDb250ZW50Q2hpbGQoJ2lucHV0VGltZScsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIGlucHV0VGltZVJlZj86IFRlbXBsYXRlUmVmPHVua25vd24+O1xyXG4gIEBDb250ZW50Q2hpbGQoJ2lucHV0VXJsJywgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgaW5wdXRVcmxSZWY/OiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcclxuICBAQ29udGVudENoaWxkKCdpbnB1dFdlZWsnLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICBpbnB1dFdlZWtSZWY/OiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcclxuICBwdWJsaWMgaXNMb2FkaW5nID0gZmFsc2U7XHJcblxyXG4gIHByaXZhdGUgX2FwaU5hbWU/OiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfZm9ybVRhYnM6IHsgW25hbWU6IHN0cmluZ106IFVudHlwZWRGb3JtR3JvdXAgfSA9IHt9O1xyXG4gIHByaXZhdGUgX3JlbD86IHN0cmluZztcclxuICBwcml2YXRlIF9yZXNvdXJjZT86IFJlc291cmNlO1xyXG4gIHByaXZhdGUgX3RlbXBsYXRlczogVGVtcGxhdGVzID0ge307XHJcbiAgcHJpdmF0ZSBfdXJpPzogc3RyaW5nO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX2NsaWVudHM6IFJFU1R3b3JsZENsaWVudENvbGxlY3Rpb24sXHJcbiAgICBwcml2YXRlIF9jb25maXJtYXRpb25TZXJ2aWNlOiBDb25maXJtYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfbG9jYXRpb246IExvY2F0aW9uLFxyXG4gICAgcHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIF9mb3JtU2VydmljZTogRm9ybVNlcnZpY2UsXHJcbiAgICB2YWxkZW1vcnRDb25maWc6IFZhbGRlbW9ydENvbmZpZykge1xyXG4gICAgdmFsZGVtb3J0Q29uZmlnLmVycm9yQ2xhc3NlcyA9ICdwLWVycm9yIHRleHQtc20nO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBQcm9wZXJ0eVR5cGUoKSB7XHJcbiAgICByZXR1cm4gUHJvcGVydHlUeXBlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBhcGlOYW1lKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5fYXBpTmFtZTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBhcGlOYW1lKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcclxuICAgIHRoaXMuX2FwaU5hbWUgPSB2YWx1ZTtcclxuICAgIHRoaXMubG9hZCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBjYW5EZWxldGUoKSB7XHJcbiAgICBjb25zdCBsZW5ndGggPSB0aGlzLnJlc291cmNlPy5fbGlua3NbXCJkZWxldGVcIl0/Lmxlbmd0aDtcclxuICAgIHJldHVybiBsZW5ndGggIT09IHVuZGVmaW5lZCAmJiBsZW5ndGggPiAwO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBjYW5TYXZlKCkge1xyXG4gICAgY29uc3QgbGVuZ3RoID0gdGhpcy5yZXNvdXJjZT8uX2xpbmtzW1wic2F2ZVwiXT8ubGVuZ3RoO1xyXG4gICAgcmV0dXJuIGxlbmd0aCAhPT0gdW5kZWZpbmVkICYmIGxlbmd0aCA+IDA7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGZvcm1UYWJzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1UYWJzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBpc0xvYWRpbmdGb3JUaGVGaXJzdFRpbWUoKSB7XHJcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy50ZW1wbGF0ZXMpLmxlbmd0aCA9PT0gMCAmJiB0aGlzLmlzTG9hZGluZztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgcmVsKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5fcmVsO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IHJlbCh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XHJcbiAgICB0aGlzLl9yZWwgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgcmVzb3VyY2UoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fcmVzb3VyY2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHRlbXBsYXRlcygpIHtcclxuICAgIHJldHVybiB0aGlzLl90ZW1wbGF0ZXM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHVyaSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuX3VyaTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCB1cmkodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xyXG4gICAgdGhpcy5fdXJpID0gdmFsdWU7XHJcbiAgICB0aGlzLmxvYWQoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RhdGljIGdldFN1YkNvbnRyb2woY29udHJvbDogQWJzdHJhY3RDb250cm9sLCBwYXRoRWxlbWVudDogc3RyaW5nKTogQWJzdHJhY3RDb250cm9sIHtcclxuICAgIGlmIChwYXRoRWxlbWVudCA9PT0gXCJcIilcclxuICAgICAgcmV0dXJuIGNvbnRyb2w7XHJcblxyXG4gICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBVbnR5cGVkRm9ybUdyb3VwKVxyXG4gICAgICByZXR1cm4gY29udHJvbC5jb250cm9sc1twYXRoRWxlbWVudF07XHJcblxyXG4gICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBVbnR5cGVkRm9ybUFycmF5KSB7XHJcbiAgICAgIGNvbnN0IGluZGV4ID0gTnVtYmVyLnBhcnNlSW50KHBhdGhFbGVtZW50KTtcclxuICAgICAgaWYgKE51bWJlci5pc0ludGVnZXIoaW5kZXgpKVxyXG4gICAgICAgIHJldHVybiBjb250cm9sLmNvbnRyb2xzW2luZGV4XTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gY29udHJvbDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RhdGljIGpzb25TdHJpbmdpZnlXaXRoRWxpcHNpcyh2YWx1ZTogdW5rbm93bikge1xyXG4gICAgY29uc3QgbWF4TGVuZ3RoID0gMjAwO1xyXG4gICAgY29uc3QgZW5kID0gMTA7XHJcbiAgICBjb25zdCBzdGFydCA9IG1heExlbmd0aCAtIGVuZCAtIDI7XHJcbiAgICBjb25zdCBqc29uID0gSlNPTi5zdHJpbmdpZnkodmFsdWUpO1xyXG4gICAgY29uc3Qgc2hvcnRlbmVkID0ganNvbi5sZW5ndGggPiBtYXhMZW5ndGggPyBqc29uLnN1YnN0cmluZygwLCBzdGFydCkgKyAn4oCmJyArIGpzb24uc3Vic3RyaW5nKGpzb24ubGVuZ3RoIC0gZW5kKSA6IGpzb247XHJcblxyXG4gICAgcmV0dXJuIHNob3J0ZW5lZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjYW5TdWJtaXQodGVtcGxhdGVOYW1lOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGZvcm0gPSB0aGlzLmZvcm1UYWJzW3RlbXBsYXRlTmFtZV07XHJcbiAgICByZXR1cm4gZm9ybSAmJiBmb3JtLnZhbGlkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGRlbGV0ZSgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICghdGhpcy5hcGlOYW1lIHx8ICF0aGlzLnVyaSB8fCAhdGhpcy5yZXNvdXJjZSlcclxuICAgICAgcmV0dXJuO1xyXG5cclxuICAgIE9iamVjdC5hc3NpZ24odGhpcy5yZXNvdXJjZSwgdGhpcy5mb3JtVGFicy52YWx1ZSk7XHJcblxyXG4gICAgYXdhaXQgdGhpcy5nZXRDbGllbnQoKS5kZWxldGUodGhpcy5yZXNvdXJjZSk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+XHJcbiAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnc3VjY2VzcycsIHN1bW1hcnk6ICdEZWxldGVkJywgZGV0YWlsOiAnVGhlIHJlc291cmNlIGhhcyBiZWVuIGRlbGV0ZWQuJyB9KSxcclxuICAgICAgMTAwKTtcclxuXHJcbiAgICB0aGlzLl9sb2NhdGlvbi5iYWNrKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0VG9vbHRpcChyZXNvdXJjZTogUmVzb3VyY2UsIGtleXNUb0V4Y2x1ZGU/OiBzdHJpbmdbXSk6IHN0cmluZyB7XHJcbiAgICBjb25zdCB0b29sdGlwID0gT2JqZWN0LmVudHJpZXMocmVzb3VyY2UpXHJcbiAgICAgIC5maWx0ZXIoKFtrZXldKSA9PiAhKGtleS5zdGFydHNXaXRoKCdfJykgfHwgWydjcmVhdGVkQXQnLCAnY3JlYXRlZEJ5JywgJ2xhc3RDaGFuZ2VkQXQnLCAnbGFzdENoYW5nZWRCeScsICd0aW1lc3RhbXAnXS5pbmNsdWRlcyhrZXkpIHx8IGtleXNUb0V4Y2x1ZGU/LmluY2x1ZGVzKGtleSkpKVxyXG4gICAgICAucmVkdWNlKChwcmV2LCBba2V5LCB2YWx1ZV0sIGluZGV4KSA9PiBgJHtwcmV2fSR7aW5kZXggPT09IDAgPyAnJyA6ICdcXG4nfSR7a2V5fTogJHtSRVNUd29ybGRFZGl0Vmlld0NvbXBvbmVudC5qc29uU3RyaW5naWZ5V2l0aEVsaXBzaXModmFsdWUpfWAsICcnKTtcclxuXHJcbiAgICByZXR1cm4gdG9vbHRpcDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpbWFnZUNoYW5nZWQoZm9ybUNvbnRyb2w6IFVudHlwZWRGb3JtQ29udHJvbCwgZXZlbnQ6IHsgZmlsZXM6IEZpbGVbXSB9KTogdm9pZCB7XHJcbiAgICBjb25zdCBmaWxlID0gZXZlbnQuZmlsZXNbMF07XHJcbiAgICBjb25zb2xlLmxvZyhmaWxlKTtcclxuICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiAgICByZWFkZXIub25sb2FkID0gKCkgPT4ge1xyXG4gICAgICBjb25zdCB1cmkgPSByZWFkZXIucmVzdWx0O1xyXG4gICAgICBjb25zb2xlLmxvZyh1cmkpO1xyXG4gICAgICBmb3JtQ29udHJvbC5zZXRWYWx1ZSh1cmkpO1xyXG4gICAgfTtcclxuICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGxvYWQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoIXRoaXMuYXBpTmFtZSB8fCAhdGhpcy51cmkpXHJcbiAgICAgIHJldHVybjtcclxuXHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcblxyXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmdldENsaWVudCgpLmdldFNpbmdsZSh0aGlzLnVyaSk7XHJcbiAgICBpZiAoIXJlc3BvbnNlLm9rIHx8IFByb2JsZW1EZXRhaWxzLmlzUHJvYmxlbURldGFpbHMocmVzcG9uc2UuYm9keSkgfHwgIXJlc3BvbnNlLmJvZHkpIHtcclxuICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdlcnJvcicsIHN1bW1hcnk6ICdFcnJvcicsIGRldGFpbDogJ0Vycm9yIHdoaWxlIGxvYWRpbmcgdGhlIHJlc291cmNlIGZyb20gdGhlIEFQSS4nLCBkYXRhOiByZXNwb25zZSB9KTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLl9yZXNvdXJjZSA9IHJlc3BvbnNlLmJvZHk7XHJcbiAgICAgIHRoaXMuX3RlbXBsYXRlcyA9IGF3YWl0IHRoaXMuZ2V0QWxsVGVtcGxhdGVzKHRoaXMuX3Jlc291cmNlKTtcclxuICAgICAgdGhpcy5fZm9ybVRhYnMgPSB0aGlzLl9mb3JtU2VydmljZS5jcmVhdGVGb3JtR3JvdXBzRnJvbVRlbXBsYXRlcyh0aGlzLl90ZW1wbGF0ZXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgbmF2aWdhdGVCeUlkKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKCF0aGlzLnJlbClcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgXCJyZWxcIiBtdXN0IGJlIHNldCB0aHJvdWdoIHRoZSB1cmkgb2YgdGhpcyBwYWdlIGZvciB0aGUgSUQgbmF2aWdhdGlvbiB0byB3b3JrLicpO1xyXG5cclxuICAgIGlmICghdGhpcy5pZE5hdmlnYXRpb25Gb3JtLnZhbGlkKSB7XHJcbiAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7IGRldGFpbDogJ1lvdSBtdXN0IGVudGVyIGEgdmFsaWQgSUQgdG8gbmF2aWFnZSB0by4nLCBzZXZlcml0eTogJ2Vycm9yJyB9KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdmFyIGlkVG9OYXZpZ2F0ZVRvID0gdGhpcy5pZE5hdmlnYXRpb25Gb3JtLmNvbnRyb2xzLmlkLnZhbHVlO1xyXG5cclxuICAgIHZhciBjbGllbnQgPSB0aGlzLmdldENsaWVudCgpO1xyXG5cclxuICAgIHZhciByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5nZXRMaXN0PFJlc291cmNlPih0aGlzLnJlbCwgeyAkZmlsdGVyOiBgaWQgZXEgJHtpZFRvTmF2aWdhdGVUb31gIH0pO1xyXG4gICAgaWYgKCFyZXNwb25zZS5vayB8fCBQcm9ibGVtRGV0YWlscy5pc1Byb2JsZW1EZXRhaWxzKHJlc3BvbnNlLmJvZHkpIHx8ICFyZXNwb25zZS5ib2R5KSB7XHJcbiAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnZXJyb3InLCBzdW1tYXJ5OiAnRXJyb3InLCBkZXRhaWw6ICdFcnJvciB3aGlsZSBsb2FkaW5nIHRoZSByZXNvdXJjZXMgZnJvbSB0aGUgQVBJLicsIGRhdGE6IHJlc3BvbnNlIH0pO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdmFyIHJlc291cmNlID0gcmVzcG9uc2UuYm9keT8uX2VtYmVkZGVkPy5pdGVtcz8uWzBdO1xyXG4gICAgaWYgKCFyZXNvdXJjZSkge1xyXG4gICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2Vycm9yJywgc3VtbWFyeTogJ0Vycm9yJywgZGV0YWlsOiAnTm8gcmVzb3VyY2UgZm91bmQgd2l0aCB0aGUgc3BlY2lmaWVkIElELicgfSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBhd2FpdCB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoWycvZWRpdCcsIHRoaXMuYXBpTmFtZSwgdGhpcy5yZWwsIHJlc291cmNlLl9saW5rcy5zZWxmWzBdLmhyZWZdKTtcclxuXHJcbiAgICB0aGlzLmlkTmF2aWdhdGlvbkZvcm0ucmVzZXQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzaG93RGVsZXRlQ29uZmlybWF0aW9Nb2RhbCgpIHtcclxuICAgIHRoaXMuX2NvbmZpcm1hdGlvblNlcnZpY2UuY29uZmlybSh7XHJcbiAgICAgIG1lc3NhZ2U6ICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgcmVzb3VyY2U/JyxcclxuICAgICAgaGVhZGVyOiAnQ29uZmlybSBkZWxldGUnLFxyXG4gICAgICBpY29uOiAnZmFyIGZhLXRyYXNoLWFsdCcsXHJcbiAgICAgIGFjY2VwdDogKCkgPT4gdGhpcy5kZWxldGUoKVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgc3VibWl0KHRlbXBsYXRlTmFtZTogc3RyaW5nLCB0ZW1wbGF0ZTogVGVtcGxhdGUsIGZvcm1WYWx1ZToge30pIHtcclxuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCB0YXJnZXRCZWZvcmVTYXZlID0gdGVtcGxhdGUudGFyZ2V0O1xyXG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuZ2V0Q2xpZW50KCkuc3VibWl0KHRlbXBsYXRlLCBmb3JtVmFsdWUpO1xyXG5cclxuICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xyXG4gICAgICAgIGxldCBzdW1tYXJ5ID0gJ0Vycm9yJztcclxuICAgICAgICBsZXQgZGV0YWlsID0gJ0Vycm9yIHdoaWxlIHNhdmluZyB0aGUgcmVzb3VyY2UuJztcclxuICAgICAgICBpZiAoUHJvYmxlbURldGFpbHMuaXNQcm9ibGVtRGV0YWlscyhyZXNwb25zZS5ib2R5KSkge1xyXG4gICAgICAgICAgY29uc3QgcHJvYmxlbURldGFpbHMgPSByZXNwb25zZS5ib2R5IGFzIFByb2JsZW1EZXRhaWxzO1xyXG4gICAgICAgICAgc3VtbWFyeSA9IHByb2JsZW1EZXRhaWxzLnRpdGxlIHx8IHN1bW1hcnk7XHJcbiAgICAgICAgICBkZXRhaWwgPSBwcm9ibGVtRGV0YWlscy5kZXRhaWwgfHwgZGV0YWlsO1xyXG4gICAgICAgICAgLy8gZGlzcGxheSB2YWxpZGF0aW9uIGVycm9yc1xyXG4gICAgICAgICAgaWYgKHByb2JsZW1EZXRhaWxzWydlcnJvcnMnXSBhcyB7fSkge1xyXG4gICAgICAgICAgICBjb25zdCBmb3JtID0gdGhpcy5mb3JtVGFic1t0ZW1wbGF0ZU5hbWVdO1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IFtrZXksIGVycm9yc0ZvcktleV0gb2YgT2JqZWN0LmVudHJpZXMocHJvYmxlbURldGFpbHNbJ2Vycm9ycyddIGFzIHt9KSkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IHBhdGggPSBrZXkuc3BsaXQoL1xcLnxcXFsvKS5tYXAoZSA9PiBlLnJlcGxhY2UoXCJdXCIsIFwiXCIpKTtcclxuICAgICAgICAgICAgICAvLyBUaGUgcGF0aCBtaWdodCBzdGFydCB3aXRoIGEgJCwgaW5kaWNhdGluZyB0aGUgcm9vdC5cclxuICAgICAgICAgICAgICBpZiAocGF0aC5sZW5ndGggPiAwICYmIHBhdGhbMF0gPT09ICckJylcclxuICAgICAgICAgICAgICAgIHBhdGguc2hpZnQoKTtcclxuICAgICAgICAgICAgICBjb25zdCBmb3JtQ29udHJvbCA9IHBhdGgucmVkdWNlPEFic3RyYWN0Q29udHJvbD4oUkVTVHdvcmxkRWRpdFZpZXdDb21wb25lbnQuZ2V0U3ViQ29udHJvbCwgZm9ybSk7XHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2wuc2V0RXJyb3JzKHsgLi4uZm9ybUNvbnRyb2wuZXJyb3JzLCAuLi57IHJlbW90ZTogZXJyb3JzRm9yS2V5IH0gfSk7XHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2Vycm9yJywgc3VtbWFyeTogc3VtbWFyeSwgZGV0YWlsOiBkZXRhaWwsIGRhdGE6IHJlc3BvbnNlLCBsaWZlOiAxMDAwMCB9KTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBjb25zdCByZXNwb25zZVJlc291cmNlID0gKHJlc3BvbnNlLmJvZHkgYXMgRm9ybXNSZXNvdXJjZSk7XHJcbiAgICAgICAgY29uc3QgdGFyZ2V0QWZ0ZXJTYXZlID0gcmVzcG9uc2VSZXNvdXJjZS5fdGVtcGxhdGVzW3RlbXBsYXRlTmFtZV0udGFyZ2V0O1xyXG5cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+XHJcbiAgICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ3N1Y2Nlc3MnLCBzdW1tYXJ5OiAnU2F2ZWQnLCBkZXRhaWw6ICdUaGUgcmVzb3VyY2UgaGFzIGJlZW4gc2F2ZWQuJyB9KSxcclxuICAgICAgICAgIDEwMCk7XHJcblxyXG4gICAgICAgIGlmICh0YXJnZXRCZWZvcmVTYXZlICE9PSB0YXJnZXRBZnRlclNhdmUpIHtcclxuICAgICAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbJy9lZGl0JywgdGhpcy5hcGlOYW1lLCByZXNwb25zZVJlc291cmNlLl9saW5rcy5zZWxmWzBdLmhyZWZdKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNhdGNoIChlOiB1bmtub3duKSB7XHJcbiAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnZXJyb3InLCBzdW1tYXJ5OiAnRXJyb3InLCBkZXRhaWw6IGBBbiB1bmtub3duIGVycm9yIG9jY3VycmVkLiAke0pTT04uc3RyaW5naWZ5KGUpfWAsIGxpZmU6IDEwMDAwIH0pO1xyXG4gICAgICBjb25zb2xlLmxvZyhlKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBnZXRBbGxUZW1wbGF0ZXMocmVzb3VyY2U6IFJlc291cmNlKTogUHJvbWlzZTxUZW1wbGF0ZXM+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmdldENsaWVudCgpLmdldEFsbFRlbXBsYXRlcyhyZXNvdXJjZSk7XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoZTogdW5rbm93bikge1xyXG4gICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2Vycm9yJywgc3VtbWFyeTogJ0Vycm9yJywgZGV0YWlsOiAnRXJyb3Igd2hpbGUgbG9hZGluZyB0aGUgdGVtcGxhdGVzIGZyb20gdGhlIEFQSS4gJyArIGUsIGRhdGE6IGUgfSk7XHJcbiAgICAgIHJldHVybiB7fTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0Q2xpZW50KCk6IFJFU1R3b3JsZENsaWVudCB7XHJcbiAgICBpZiAoIXRoaXMuYXBpTmFtZSlcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgZ2V0IGEgY2xpZW50LCBiZWNhdXNlIHRoZSBhcGlOYW1lIGlzIG5vdCBzZXQuJyk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuX2NsaWVudHMuZ2V0Q2xpZW50KHRoaXMuYXBpTmFtZSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJncmlkXCI+XHJcbiAgPGRpdiBjbGFzcz1cImNvbC0xMiBtZDpjb2wtMTBcIj5cclxuICAgIDxoMT5FZGl0IHJlc291cmNlPC9oMT5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiY29sLTEyIG1kOmNvbC0yIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtZW5kIGZsZXhcIj5cclxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiaWROYXZpZ2F0aW9uRm9ybVwiIChuZ1N1Ym1pdCk9XCJuYXZpZ2F0ZUJ5SWQoKVwiIGNsYXNzPVwibXItM1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicC1pbnB1dGdyb3VwXCI+XHJcbiAgICAgICAgPHAtaW5wdXROdW1iZXIgZm9ybUNvbnRyb2xOYW1lPVwiaWRcIiBwbGFjZWhvbGRlcj1cIk5hdmlnYXRlIGJ5IElEXCI+PC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIHBCdXR0b24gcFJpcHBsZSBpY29uPVwiZmEtc29saWQgZmEtYXJyb3ctcmlnaHRcIj48L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Zvcm0+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPHAtdGFiVmlldz5cclxuXHJcbiAgPHAtdGFiUGFuZWwgKm5nSWY9XCJpc0xvYWRpbmdGb3JUaGVGaXJzdFRpbWVcIiBoZWFkZXI9XCJMb2FkaW5nXCI+XHJcbiAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpIG9mIFsxLCAyLCAzLCA0LCA1XVwiIGNsYXNzPVwiZ3JpZCBmaWVsZFwiPlxyXG4gICAgICA8cC1za2VsZXRvbiBjbGFzcz1cImNvbC0xMiBtYi0yIG1kOmNvbC0yIG1kOm1iLTBcIiBoZWlnaHQ9XCIzOXB4XCI+PC9wLXNrZWxldG9uPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIG1kOmNvbC0xMFwiPlxyXG4gICAgICAgIDxwLXNrZWxldG9uIGNsYXNzPVwidy1mdWxsXCIgaGVpZ2h0PVwiMzlweFwiPjwvcC1za2VsZXRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJncmlkXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIHctZnVsbFwiPlxyXG4gICAgICAgICAgPHAtc2tlbGV0b24gd2lkdGg9XCIxMjBweFwiIGhlaWdodD1cIjM5cHhcIiBjbGFzcz1cIm14LTJcIj48L3Atc2tlbGV0b24+XHJcbiAgICAgICAgICA8cC1za2VsZXRvbiB3aWR0aD1cIjEyMHB4XCIgaGVpZ2h0PVwiMzlweFwiIGNsYXNzPVwibXgtMlwiPjwvcC1za2VsZXRvbj5cclxuICAgICAgICAgIDxwLXNrZWxldG9uIHdpZHRoPVwiMTIwcHhcIiBoZWlnaHQ9XCIzOXB4XCIgY2xhc3M9XCJteC0yXCI+PC9wLXNrZWxldG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvcC10YWJQYW5lbD5cclxuXHJcbiAgPHAtdGFiUGFuZWwgKm5nRm9yPVwibGV0IGl0ZW0gb2YgdGVtcGxhdGVzIHwga2V5dmFsdWVcIiBbaGVhZGVyXT1cIml0ZW0udmFsdWUudGl0bGUgfHwgaXRlbS5rZXlcIiBbZGlzYWJsZWRdPVwiaXNMb2FkaW5nXCI+XHJcbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1UYWJzW2l0ZW0ua2V5XVwiIChuZ1N1Ym1pdCk9XCJzdWJtaXQoaXRlbS5rZXksIGl0ZW0udmFsdWUsIGZvcm1UYWJzW2l0ZW0ua2V5XS52YWx1ZSlcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImJsb2NrYWJsZS1jb250YWluZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYmxvY2thYmxlLWVsZW1lbnRcIj5cclxuICAgICAgICAgIDxydy1mb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVRhYnNbaXRlbS5rZXldXCIgW3RlbXBsYXRlXT1cIml0ZW0udmFsdWVcIiBbYXBpTmFtZV09XCJhcGlOYW1lXCI+PC9ydy1mb3JtPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJibG9ja2FibGUtb3ZlcmxheVwiICpuZ0lmPVwiaXNMb2FkaW5nXCI+XHJcbiAgICAgICAgICA8cC1wcm9ncmVzc1NwaW5uZXI+PC9wLXByb2dyZXNzU3Bpbm5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZ3JpZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1lbmQgdy1mdWxsXCI+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdEJ1dHRvbnM+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvbiBwQnV0dG9uIHBSaXBwbGUgdHlwZT1cInN1Ym1pdFwiIGxhYmVsPVwiU2F2ZVwiIGljb249XCJmYXIgZmEtc2F2ZVwiIGNsYXNzPVwibXgtMiBwLWJ1dHRvbi1zdWNjZXNzXCIgW2Rpc2FibGVkXT1cImlzTG9hZGluZyB8fCAhY2FuU3VibWl0KGl0ZW0ua2V5KVwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDxidXR0b24gcEJ1dHRvbiBwUmlwcGxlIHR5cGU9XCJidXR0b25cIiBsYWJlbD1cIlJlbG9hZFwiIGljb249XCJmYXMgZmEtcmVkb1wiIGNsYXNzPVwibXgtMiBwLWJ1dHRvbi1pbmZvXCIgKGNsaWNrKT1cImxvYWQoKVwiIFtkaXNhYmxlZF09XCJpc0xvYWRpbmdcIj48L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8YnV0dG9uIHBCdXR0b24gcFJpcHBsZSB0eXBlPVwiYnV0dG9uXCIgbGFiZWw9XCJEZWxldGVcIiBpY29uPVwiZmFyIGZhLXRyYXNoLWFsdFwiIGNsYXNzPVwibWwtMiBwLWJ1dHRvbi1kYW5nZXJcIiAoY2xpY2spPVwic2hvd0RlbGV0ZUNvbmZpcm1hdGlvTW9kYWwoKVwiIFtkaXNhYmxlZF09XCIhcmVzb3VyY2UgfHwgaXNMb2FkaW5nIHx8ICFjYW5EZWxldGVcIj48L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJ1dHRvbnNSZWYgfHwgZGVmYXVsdEJ1dHRvbnNcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZm9ybT5cclxuICA8L3AtdGFiUGFuZWw+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdEV4dHJhVGFicz5cclxuICA8L25nLXRlbXBsYXRlPlxyXG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJleHRyYVRhYnNSZWYgfHwgZGVmYXVsdEV4dHJhVGFic1wiPjwvbmctY29udGFpbmVyPlxyXG5cclxuPC9wLXRhYlZpZXc+XHJcblxyXG48cC10b2FzdD48L3AtdG9hc3Q+XHJcbjxwLWNvbmZpcm1EaWFsb2c+PC9wLWNvbmZpcm1EaWFsb2c+XHJcbiJdfQ==
|
|
@@ -16,8 +16,8 @@ import * as i9 from "primeng/button";
|
|
|
16
16
|
import * as i10 from "primeng/confirmdialog";
|
|
17
17
|
import * as i11 from "primeng/toast";
|
|
18
18
|
import * as i12 from "primeng/tristatecheckbox";
|
|
19
|
-
import * as i13 from "primeng/
|
|
20
|
-
import * as i14 from "
|
|
19
|
+
import * as i13 from "primeng/splitbutton";
|
|
20
|
+
import * as i14 from "../../components/restworld-avatar/restworld-avatar.component";
|
|
21
21
|
export var ColumnFilterType;
|
|
22
22
|
(function (ColumnFilterType) {
|
|
23
23
|
ColumnFilterType["text"] = "text";
|
|
@@ -177,10 +177,10 @@ RESTworldListViewComponent._dateFormat = new Date(3333, 10, 22)
|
|
|
177
177
|
.replace("3333", "y")
|
|
178
178
|
.replace("33", "yy");
|
|
179
179
|
RESTworldListViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: RESTworldListViewComponent, deps: [{ token: i1.RESTworldClientCollection }, { token: i2.ConfirmationService }, { token: i2.MessageService }, { token: i3.AvatarGenerator }, { token: i4.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
180
|
-
RESTworldListViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.3", type: RESTworldListViewComponent, selector: "rw-list", inputs: { createButtonMenu: "createButtonMenu", rowsPerPage: "rowsPerPage", apiName: "apiName", editLink: "editLink", rel: "rel", sortField: "sortField", sortOrder: "sortOrder" }, ngImport: i0, template: "<p-table [value]=\"value\"\r\n [lazy]=\"true\"\r\n [lazyLoadOnInit]=\"false\"\r\n (onLazyLoad)=\"load($event)\"\r\n responsiveLayout=\"scroll\"\r\n [paginator]=\"true\"\r\n [rows]=\"rows\"\r\n [rowsPerPageOptions]=\"rowsPerPage\"\r\n [totalRecords]=\"totalRecords\"\r\n [loading]=\"isLoading\"\r\n [showInitialSortBadge]=\"true\"\r\n [columns]=\"columns\"\r\n [sortField]=\"sortField\"\r\n [sortOrder]=\"sortOrder\">\r\n\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n <th *ngFor=\"let col of columns\" [pSortableColumn]=\"col.name\">\r\n <div class=\"p-d-flex p-jc-between p-ai-center\">\r\n {{col.prompt}}\r\n <p-sortIcon [field]=\"col.name\"></p-sortIcon>\r\n <p-columnFilter [type]=\"toColumnFilterType(col.type)\" [field]=\"col.name\" display=\"menu\"></p-columnFilter>\r\n </div>\r\n </th>\r\n <th>\r\n <div class=\"flex justify-content-end\">\r\n <div class=\"mx-2\">\r\n <a *ngIf=\"!createButtonMenu\" class=\"p-button-success\" icon=\"fas fa-plus\" pButton [routerLink]=\"[editLink, apiName, rel, newHref]\" pTooltip=\"Create new\" tooltipPosition=\"left\"></a>\r\n <p-splitButton *ngIf=\"createButtonMenu\" styleClass=\"p-button-success\" icon=\"fas fa-plus\" pTooltip=\"Create new\" tooltipPosition=\"left\" (onClick)=\"createNew()\" [model]=\"createButtonMenu\" appendTo=\"body\"></p-splitButton>\r\n </div>\r\n </div>\r\n </th>\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"body\" let-entity let-columns=\"columns\">\r\n <tr>\r\n <td [ngSwitch]=\"col.type\" *ngFor=\"let col of columns\">\r\n <ng-container *ngSwitchCase=\"PropertyType.Text\">\r\n <p-avatar *ngIf=\"col.name === 'createdBy' || col.name === 'lastChangedBy'\" [pTooltip]=\"entity[col.name]\" tooltipPosition=\"top\" [image]=\"avatarGenerator.getImage(entity[col.name])\" [label]=\"avatarGenerator.getLabel(entity[col.name])\" [style]=\"avatarGenerator.getStyle(entity[col.name])\" shape=\"circle\"></p-avatar>\r\n <span *ngIf=\"col.name !== 'createdBy' && col.name !== 'lastChangedBy'\">{{entity[col.name]}}</span>\r\n </ng-container>\r\n <span *ngSwitchCase=\"PropertyType.Number\" class=\"flex justify-content-end\">{{entity[col.name]}}</span>\r\n <span *ngSwitchCase=\"PropertyType.Bool\" class=\"flex justify-content-center\"><p-triStateCheckbox [(ngModel)]=\"entity[col.name]\" [readonly]=\"true\"></p-triStateCheckbox></span>\r\n <span *ngSwitchCase=\"PropertyType.Date\" [pTooltip]=\"entity[col.name]\">{{entity[col.name] | date:dateFormat}}</span>\r\n <span *ngSwitchCase=\"PropertyType.DatetimeLocal\" [pTooltip]=\"entity[col.name]\">{{entity[col.name] | date:dateFormat}}</span>\r\n <span *ngSwitchCase=\"PropertyType.DatetimeOffset\" [pTooltip]=\"entity[col.name]\">{{entity[col.name] | date:dateFormat}}</span>\r\n <span *ngSwitchCase=\"PropertyType.Collection\" class=\"flex justify-content-end\"><p *ngFor=\"let arrayElement of entity[col.name]\">{{arrayElement | json}}</p></span>\r\n <span *ngSwitchCase=\"PropertyType.Object\" class=\"flex justify-content-end\">{{entity[col.name] | json}}</span>\r\n </td>\r\n <td>\r\n <div class=\"flex justify-content-end\">\r\n <a pButton pTooltip=\"View/Edit\" tooltipPosition=\"left\" [routerLink]=\"[editLink, apiName, rel, entity._links?.self[0].href]\" icon=\"fas fa-edit\"></a>\r\n <button pTooltip=\"Delete\" tooltipPosition=\"left\" pButton *ngIf=\"entity._links.delete\" (click)=\"showDeleteConfirmatioModal(entity)\" icon=\"fas fa-trash-alt\" type=\"button\" class=\"mx-2 p-button-danger\"></button>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td colspan=\"8\">No entries found.</td>\r\n </tr>\r\n </ng-template>\r\n\r\n</p-table>\r\n\r\n<p-toast></p-toast>\r\n<p-confirmDialog></p-confirmDialog>\r\n", styles: [".p-tooltip{max-width:-moz-fit-content;max-width:fit-content}a.p-button{text-decoration:none}\n"], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i5.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i7.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "responsiveLayout", "breakpoint", "virtualRowHeight", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll"], outputs: ["selectAllChange", "selectionChange", "contextMenuSelectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i7.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { kind: "component", type: i7.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { kind: "component", type: i7.ColumnFilter, selector: "p-columnFilter", inputs: ["field", "type", "display", "showMenu", "matchMode", "operator", "showOperator", "showClearButton", "showApplyButton", "showMatchModes", "showAddButton", "hideOnClear", "placeholder", "matchModeOptions", "maxConstraints", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "locale", "localeMatcher", "currency", "currencyDisplay", "useGrouping", "showButtons"] }, { kind: "directive", type: i8.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "fitContent", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "directive", type: i9.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "component", type: i10.ConfirmDialog, selector: "p-confirmDialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "visible", "position"], outputs: ["onHide"] }, { kind: "component", type: i11.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "component", type: i12.TriStateCheckbox, selector: "p-triStateCheckbox", inputs: ["disabled", "name", "ariaLabelledBy", "tabindex", "inputId", "style", "styleClass", "label", "readonly", "checkboxTrueIcon", "checkboxFalseIcon"], outputs: ["onChange"] }, { kind: "component", type: i13.Avatar, selector: "p-avatar", inputs: ["label", "icon", "image", "size", "shape", "style", "styleClass"], outputs: ["onImageError"] }, { kind: "component", type: i14.SplitButton, selector: "p-splitButton", inputs: ["model", "icon", "iconPos", "label", "style", "styleClass", "menuStyle", "menuStyleClass", "disabled", "tabindex", "appendTo", "dir", "expandAriaLabel", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onClick", "onDropdownClick"] }, { kind: "pipe", type: i5.JsonPipe, name: "json" }, { kind: "pipe", type: i5.DatePipe, name: "date" }] });
|
|
180
|
+
RESTworldListViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.3", type: RESTworldListViewComponent, selector: "rw-list", inputs: { createButtonMenu: "createButtonMenu", rowsPerPage: "rowsPerPage", apiName: "apiName", editLink: "editLink", rel: "rel", sortField: "sortField", sortOrder: "sortOrder" }, ngImport: i0, template: "<p-table [value]=\"value\"\r\n [lazy]=\"true\"\r\n [lazyLoadOnInit]=\"false\"\r\n (onLazyLoad)=\"load($event)\"\r\n responsiveLayout=\"scroll\"\r\n [paginator]=\"true\"\r\n [rows]=\"rows\"\r\n [rowsPerPageOptions]=\"rowsPerPage\"\r\n [totalRecords]=\"totalRecords\"\r\n [loading]=\"isLoading\"\r\n [showInitialSortBadge]=\"true\"\r\n [columns]=\"columns\"\r\n [sortField]=\"sortField\"\r\n [sortOrder]=\"sortOrder\">\r\n\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n <th *ngFor=\"let col of columns\" [pSortableColumn]=\"col.name\">\r\n <div class=\"p-d-flex p-jc-between p-ai-center\">\r\n {{col.prompt}}\r\n <p-sortIcon [field]=\"col.name\"></p-sortIcon>\r\n <p-columnFilter [type]=\"toColumnFilterType(col.type)\" [field]=\"col.name\" display=\"menu\"></p-columnFilter>\r\n </div>\r\n </th>\r\n <th>\r\n <div class=\"flex justify-content-end\">\r\n <div class=\"mx-2\">\r\n <a *ngIf=\"!createButtonMenu\" class=\"p-button-success\" icon=\"fas fa-plus\" pButton [routerLink]=\"[editLink, apiName, rel, newHref]\" pTooltip=\"Create new\" tooltipPosition=\"left\"></a>\r\n <p-splitButton *ngIf=\"createButtonMenu\" styleClass=\"p-button-success\" icon=\"fas fa-plus\" pTooltip=\"Create new\" tooltipPosition=\"left\" (onClick)=\"createNew()\" [model]=\"createButtonMenu\" appendTo=\"body\"></p-splitButton>\r\n </div>\r\n </div>\r\n </th>\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"body\" let-entity let-columns=\"columns\">\r\n <tr>\r\n <td [ngSwitch]=\"col.type\" *ngFor=\"let col of columns\">\r\n <ng-container *ngSwitchCase=\"PropertyType.Text\">\r\n <rw-avatar *ngIf=\"col.name === 'createdBy' || col.name === 'lastChangedBy'\" [user]=\"entity[col.name]\"></rw-avatar>\r\n <span *ngIf=\"col.name !== 'createdBy' && col.name !== 'lastChangedBy'\">{{entity[col.name]}}</span>\r\n </ng-container>\r\n <span *ngSwitchCase=\"PropertyType.Number\" class=\"flex justify-content-end\">{{entity[col.name]}}</span>\r\n <span *ngSwitchCase=\"PropertyType.Bool\" class=\"flex justify-content-center\"><p-triStateCheckbox [(ngModel)]=\"entity[col.name]\" [readonly]=\"true\"></p-triStateCheckbox></span>\r\n <span *ngSwitchCase=\"PropertyType.Date\" [pTooltip]=\"entity[col.name]\">{{entity[col.name] | date:dateFormat}}</span>\r\n <span *ngSwitchCase=\"PropertyType.DatetimeLocal\" [pTooltip]=\"entity[col.name]\">{{entity[col.name] | date:dateFormat}}</span>\r\n <span *ngSwitchCase=\"PropertyType.DatetimeOffset\" [pTooltip]=\"entity[col.name]\">{{entity[col.name] | date:dateFormat}}</span>\r\n <span *ngSwitchCase=\"PropertyType.Collection\" class=\"flex justify-content-end\"><p *ngFor=\"let arrayElement of entity[col.name]\">{{arrayElement | json}}</p></span>\r\n <span *ngSwitchCase=\"PropertyType.Object\" class=\"flex justify-content-end\">{{entity[col.name] | json}}</span>\r\n </td>\r\n <td>\r\n <div class=\"flex justify-content-end\">\r\n <a pButton pTooltip=\"View/Edit\" tooltipPosition=\"left\" [routerLink]=\"[editLink, apiName, rel, entity._links?.self[0].href]\" icon=\"fas fa-edit\"></a>\r\n <button pTooltip=\"Delete\" tooltipPosition=\"left\" pButton *ngIf=\"entity._links.delete\" (click)=\"showDeleteConfirmatioModal(entity)\" icon=\"fas fa-trash-alt\" type=\"button\" class=\"mx-2 p-button-danger\"></button>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td colspan=\"8\">No entries found.</td>\r\n </tr>\r\n </ng-template>\r\n\r\n</p-table>\r\n\r\n<p-toast></p-toast>\r\n<p-confirmDialog></p-confirmDialog>\r\n", styles: [".p-tooltip{max-width:-moz-fit-content;max-width:fit-content}a.p-button{text-decoration:none}\n"], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i5.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i7.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "responsiveLayout", "breakpoint", "virtualRowHeight", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll"], outputs: ["selectAllChange", "selectionChange", "contextMenuSelectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i7.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { kind: "component", type: i7.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { kind: "component", type: i7.ColumnFilter, selector: "p-columnFilter", inputs: ["field", "type", "display", "showMenu", "matchMode", "operator", "showOperator", "showClearButton", "showApplyButton", "showMatchModes", "showAddButton", "hideOnClear", "placeholder", "matchModeOptions", "maxConstraints", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "locale", "localeMatcher", "currency", "currencyDisplay", "useGrouping", "showButtons"] }, { kind: "directive", type: i8.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "fitContent", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "directive", type: i9.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "component", type: i10.ConfirmDialog, selector: "p-confirmDialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "visible", "position"], outputs: ["onHide"] }, { kind: "component", type: i11.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "component", type: i12.TriStateCheckbox, selector: "p-triStateCheckbox", inputs: ["disabled", "name", "ariaLabelledBy", "tabindex", "inputId", "style", "styleClass", "label", "readonly", "checkboxTrueIcon", "checkboxFalseIcon"], outputs: ["onChange"] }, { kind: "component", type: i13.SplitButton, selector: "p-splitButton", inputs: ["model", "icon", "iconPos", "label", "style", "styleClass", "menuStyle", "menuStyleClass", "disabled", "tabindex", "appendTo", "dir", "expandAriaLabel", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onClick", "onDropdownClick"] }, { kind: "component", type: i14.RestWorldAvatarComponent, selector: "rw-avatar", inputs: ["user"] }, { kind: "pipe", type: i5.JsonPipe, name: "json" }, { kind: "pipe", type: i5.DatePipe, name: "date" }] });
|
|
181
181
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: RESTworldListViewComponent, decorators: [{
|
|
182
182
|
type: Component,
|
|
183
|
-
args: [{ selector: 'rw-list', template: "<p-table [value]=\"value\"\r\n [lazy]=\"true\"\r\n [lazyLoadOnInit]=\"false\"\r\n (onLazyLoad)=\"load($event)\"\r\n responsiveLayout=\"scroll\"\r\n [paginator]=\"true\"\r\n [rows]=\"rows\"\r\n [rowsPerPageOptions]=\"rowsPerPage\"\r\n [totalRecords]=\"totalRecords\"\r\n [loading]=\"isLoading\"\r\n [showInitialSortBadge]=\"true\"\r\n [columns]=\"columns\"\r\n [sortField]=\"sortField\"\r\n [sortOrder]=\"sortOrder\">\r\n\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n <th *ngFor=\"let col of columns\" [pSortableColumn]=\"col.name\">\r\n <div class=\"p-d-flex p-jc-between p-ai-center\">\r\n {{col.prompt}}\r\n <p-sortIcon [field]=\"col.name\"></p-sortIcon>\r\n <p-columnFilter [type]=\"toColumnFilterType(col.type)\" [field]=\"col.name\" display=\"menu\"></p-columnFilter>\r\n </div>\r\n </th>\r\n <th>\r\n <div class=\"flex justify-content-end\">\r\n <div class=\"mx-2\">\r\n <a *ngIf=\"!createButtonMenu\" class=\"p-button-success\" icon=\"fas fa-plus\" pButton [routerLink]=\"[editLink, apiName, rel, newHref]\" pTooltip=\"Create new\" tooltipPosition=\"left\"></a>\r\n <p-splitButton *ngIf=\"createButtonMenu\" styleClass=\"p-button-success\" icon=\"fas fa-plus\" pTooltip=\"Create new\" tooltipPosition=\"left\" (onClick)=\"createNew()\" [model]=\"createButtonMenu\" appendTo=\"body\"></p-splitButton>\r\n </div>\r\n </div>\r\n </th>\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"body\" let-entity let-columns=\"columns\">\r\n <tr>\r\n <td [ngSwitch]=\"col.type\" *ngFor=\"let col of columns\">\r\n <ng-container *ngSwitchCase=\"PropertyType.Text\">\r\n <
|
|
183
|
+
args: [{ selector: 'rw-list', template: "<p-table [value]=\"value\"\r\n [lazy]=\"true\"\r\n [lazyLoadOnInit]=\"false\"\r\n (onLazyLoad)=\"load($event)\"\r\n responsiveLayout=\"scroll\"\r\n [paginator]=\"true\"\r\n [rows]=\"rows\"\r\n [rowsPerPageOptions]=\"rowsPerPage\"\r\n [totalRecords]=\"totalRecords\"\r\n [loading]=\"isLoading\"\r\n [showInitialSortBadge]=\"true\"\r\n [columns]=\"columns\"\r\n [sortField]=\"sortField\"\r\n [sortOrder]=\"sortOrder\">\r\n\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n <th *ngFor=\"let col of columns\" [pSortableColumn]=\"col.name\">\r\n <div class=\"p-d-flex p-jc-between p-ai-center\">\r\n {{col.prompt}}\r\n <p-sortIcon [field]=\"col.name\"></p-sortIcon>\r\n <p-columnFilter [type]=\"toColumnFilterType(col.type)\" [field]=\"col.name\" display=\"menu\"></p-columnFilter>\r\n </div>\r\n </th>\r\n <th>\r\n <div class=\"flex justify-content-end\">\r\n <div class=\"mx-2\">\r\n <a *ngIf=\"!createButtonMenu\" class=\"p-button-success\" icon=\"fas fa-plus\" pButton [routerLink]=\"[editLink, apiName, rel, newHref]\" pTooltip=\"Create new\" tooltipPosition=\"left\"></a>\r\n <p-splitButton *ngIf=\"createButtonMenu\" styleClass=\"p-button-success\" icon=\"fas fa-plus\" pTooltip=\"Create new\" tooltipPosition=\"left\" (onClick)=\"createNew()\" [model]=\"createButtonMenu\" appendTo=\"body\"></p-splitButton>\r\n </div>\r\n </div>\r\n </th>\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"body\" let-entity let-columns=\"columns\">\r\n <tr>\r\n <td [ngSwitch]=\"col.type\" *ngFor=\"let col of columns\">\r\n <ng-container *ngSwitchCase=\"PropertyType.Text\">\r\n <rw-avatar *ngIf=\"col.name === 'createdBy' || col.name === 'lastChangedBy'\" [user]=\"entity[col.name]\"></rw-avatar>\r\n <span *ngIf=\"col.name !== 'createdBy' && col.name !== 'lastChangedBy'\">{{entity[col.name]}}</span>\r\n </ng-container>\r\n <span *ngSwitchCase=\"PropertyType.Number\" class=\"flex justify-content-end\">{{entity[col.name]}}</span>\r\n <span *ngSwitchCase=\"PropertyType.Bool\" class=\"flex justify-content-center\"><p-triStateCheckbox [(ngModel)]=\"entity[col.name]\" [readonly]=\"true\"></p-triStateCheckbox></span>\r\n <span *ngSwitchCase=\"PropertyType.Date\" [pTooltip]=\"entity[col.name]\">{{entity[col.name] | date:dateFormat}}</span>\r\n <span *ngSwitchCase=\"PropertyType.DatetimeLocal\" [pTooltip]=\"entity[col.name]\">{{entity[col.name] | date:dateFormat}}</span>\r\n <span *ngSwitchCase=\"PropertyType.DatetimeOffset\" [pTooltip]=\"entity[col.name]\">{{entity[col.name] | date:dateFormat}}</span>\r\n <span *ngSwitchCase=\"PropertyType.Collection\" class=\"flex justify-content-end\"><p *ngFor=\"let arrayElement of entity[col.name]\">{{arrayElement | json}}</p></span>\r\n <span *ngSwitchCase=\"PropertyType.Object\" class=\"flex justify-content-end\">{{entity[col.name] | json}}</span>\r\n </td>\r\n <td>\r\n <div class=\"flex justify-content-end\">\r\n <a pButton pTooltip=\"View/Edit\" tooltipPosition=\"left\" [routerLink]=\"[editLink, apiName, rel, entity._links?.self[0].href]\" icon=\"fas fa-edit\"></a>\r\n <button pTooltip=\"Delete\" tooltipPosition=\"left\" pButton *ngIf=\"entity._links.delete\" (click)=\"showDeleteConfirmatioModal(entity)\" icon=\"fas fa-trash-alt\" type=\"button\" class=\"mx-2 p-button-danger\"></button>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td colspan=\"8\">No entries found.</td>\r\n </tr>\r\n </ng-template>\r\n\r\n</p-table>\r\n\r\n<p-toast></p-toast>\r\n<p-confirmDialog></p-confirmDialog>\r\n", styles: [".p-tooltip{max-width:-moz-fit-content;max-width:fit-content}a.p-button{text-decoration:none}\n"] }]
|
|
184
184
|
}], ctorParameters: function () { return [{ type: i1.RESTworldClientCollection }, { type: i2.ConfirmationService }, { type: i2.MessageService }, { type: i3.AvatarGenerator }, { type: i4.Router }]; }, propDecorators: { createButtonMenu: [{
|
|
185
185
|
type: Input
|
|
186
186
|
}], rowsPerPage: [{
|
|
@@ -196,4 +196,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImpor
|
|
|
196
196
|
}], sortOrder: [{
|
|
197
197
|
type: Input
|
|
198
198
|
}] } });
|
|
199
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdHdvcmxkLWxpc3Qtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVzdHdvcmxkLWNsaWVudC9zcmMvbGliL3ZpZXdzL3Jlc3R3b3JsZC1saXN0LXZpZXcvcmVzdHdvcmxkLWxpc3Qtdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVzdHdvcmxkLWNsaWVudC9zcmMvbGliL3ZpZXdzL3Jlc3R3b3JsZC1saXN0LXZpZXcvcmVzdHdvcmxkLWxpc3Qtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQStCLFlBQVksRUFBbUMsTUFBTSx5QkFBeUIsQ0FBQztBQUNySCxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUk1QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFHOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFBOzs7Ozs7Ozs7Ozs7Ozs7O0FBRTVELE1BQU0sQ0FBTixJQUFZLGdCQUtYO0FBTEQsV0FBWSxnQkFBZ0I7SUFDMUIsaUNBQWEsQ0FBQTtJQUNiLHVDQUFtQixDQUFBO0lBQ25CLHVDQUFtQixDQUFBO0lBQ25CLGlDQUFhLENBQUE7QUFDZixDQUFDLEVBTFcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQUszQjtBQU9ELE1BQU0sT0FBTywwQkFBMEI7SUF5QnJDLFlBQ1UsUUFBbUMsRUFDbkMsb0JBQXlDLEVBQ3pDLGVBQStCLEVBQ2hDLGVBQWdDLEVBQ3RCLE9BQWU7UUFKeEIsYUFBUSxHQUFSLFFBQVEsQ0FBMkI7UUFDbkMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFxQjtRQUN6QyxvQkFBZSxHQUFmLGVBQWUsQ0FB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QXNELENBQUMsQ0FBQztRQUUxRSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvQyxDQUFDOztBQXZNYyxzQ0FBVyxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO0tBQ2hELGtCQUFrQixFQUFFO0tBQ3BCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDO0tBQ25CLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDO0tBQ25CLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDO0tBQ3BCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7dUhBTlosMEJBQTBCOzJHQUExQiwwQkFBMEIsbU9DdkJ2QyxrMklBcUVBOzJGRDlDYSwwQkFBMEI7a0JBTHRDLFNBQVM7K0JBQ0UsU0FBUztrT0FhWixnQkFBZ0I7c0JBRHRCLEtBQUs7Z0JBTUMsV0FBVztzQkFEakIsS0FBSztnQkFrQ0ssT0FBTztzQkFEakIsS0FBSztnQkFtQkssUUFBUTtzQkFEbEIsS0FBSztnQkFlSyxHQUFHO3NCQURiLEtBQUs7Z0JBZUssU0FBUztzQkFEbkIsS0FBSztnQkFZSyxTQUFTO3NCQURuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBQYWdlZExpc3RSZXNvdXJjZSwgUHJvcGVydHksIFByb3BlcnR5VHlwZSwgUmVzb3VyY2UsIFJlc291cmNlRHRvLCBUZW1wbGF0ZSB9IGZyb20gJ0B3ZXJ0enVpL25neC1oYWwtY2xpZW50JztcclxuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQgeyBDb25maXJtYXRpb25TZXJ2aWNlLCBGaWx0ZXJNYXRjaE1vZGUsIEZpbHRlck1ldGFkYXRhLCBMYXp5TG9hZEV2ZW50LCBNZW51SXRlbSwgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IFJFU1R3b3JsZENsaWVudCB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Jlc3R3b3JsZC1jbGllbnQnO1xyXG5pbXBvcnQgeyBSRVNUd29ybGRDbGllbnRDb2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcmVzdHdvcmxkLWNsaWVudC1jb2xsZWN0aW9uJztcclxuaW1wb3J0IHsgUHJvYmxlbURldGFpbHMgfSBmcm9tICcuLi8uLi9tb2RlbHMvcHJvYmxlbS1kZXRhaWxzJztcclxuaW1wb3J0IHsgQXZhdGFyR2VuZXJhdG9yIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYXZhdGFyLWdlbmVyYXRvcic7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE9EYXRhU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL28tZGF0YS5zZXJ2aWNlJ1xyXG5cclxuZXhwb3J0IGVudW0gQ29sdW1uRmlsdGVyVHlwZSB7XHJcbiAgdGV4dCA9ICd0ZXh0JyxcclxuICBudW1lcmljID0gJ251bWVyaWMnLFxyXG4gIGJvb2xlYW4gPSAnYm9vbGVhbicsXHJcbiAgZGF0ZSA9ICdkYXRlJ1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3J3LWxpc3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9yZXN0d29ybGQtbGlzdC12aWV3LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9yZXN0d29ybGQtbGlzdC12aWV3LmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUkVTVHdvcmxkTGlzdFZpZXdDb21wb25lbnQ8VExpc3REdG8gZXh0ZW5kcyBSZXNvdXJjZUR0bz4ge1xyXG4gIHByaXZhdGUgc3RhdGljIF9kYXRlRm9ybWF0ID0gbmV3IERhdGUoMzMzMywgMTAsIDIyKVxyXG4gICAgLnRvTG9jYWxlRGF0ZVN0cmluZygpXHJcbiAgICAucmVwbGFjZShcIjIyXCIsIFwiZGRcIilcclxuICAgIC5yZXBsYWNlKFwiMTFcIiwgXCJNTVwiKVxyXG4gICAgLnJlcGxhY2UoXCIzMzMzXCIsIFwieVwiKVxyXG4gICAgLnJlcGxhY2UoXCIzM1wiLCBcInl5XCIpO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBjcmVhdGVCdXR0b25NZW51PzogTWVudUl0ZW1bXTtcclxuICBwdWJsaWMgaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgcHVibGljIGxvYWQgPSBfLmRlYm91bmNlKHRoaXMubG9hZDIsIDEwMCk7XHJcbiAgcHVibGljIHJlc291cmNlPzogUGFnZWRMaXN0UmVzb3VyY2U8VExpc3REdG8+O1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHJvd3NQZXJQYWdlOiBudW1iZXJbXTtcclxuXHJcbiAgcHJpdmF0ZSBfYXBpTmFtZT86IHN0cmluZztcclxuICBwcml2YXRlIF9lZGl0TGluayA9ICcvZWRpdCc7XHJcbiAgcHJpdmF0ZSBfbGFzdEV2ZW50OiBMYXp5TG9hZEV2ZW50O1xyXG4gIHByaXZhdGUgX3JlbD86IHN0cmluZztcclxuICBwcml2YXRlIF9zb3J0RmllbGQgPSAnJztcclxuICBwcml2YXRlIF9zb3J0T3JkZXIgPSAxO1xyXG4gIHByaXZhdGUgX3RlbXBsYXRlPzogVGVtcGxhdGU7XHJcbiAgcHJpdmF0ZSBfdG90YWxSZWNvcmRzID0gMDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9jbGllbnRzOiBSRVNUd29ybGRDbGllbnRDb2xsZWN0aW9uLFxyXG4gICAgcHJpdmF0ZSBfY29uZmlybWF0aW9uU2VydmljZTogQ29uZmlybWF0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX21lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcclxuICAgIHB1YmxpYyBhdmF0YXJHZW5lcmF0b3I6IEF2YXRhckdlbmVyYXRvcixcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3JvdXRlcjogUm91dGVyKSB7XHJcbiAgICB0aGlzLnJvd3NQZXJQYWdlID0gWzEwLCAyNSwgNTBdO1xyXG5cclxuICAgIHRoaXMuX2xhc3RFdmVudCA9IHtcclxuICAgICAgcm93czogdGhpcy5yb3dzUGVyUGFnZVswXVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgUHJvcGVydHlUeXBlKCk6IHR5cGVvZiBQcm9wZXJ0eVR5cGUge1xyXG4gICAgcmV0dXJuIFByb3BlcnR5VHlwZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgYXBpTmFtZSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FwaU5hbWU7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgYXBpTmFtZSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XHJcbiAgICB0aGlzLl9hcGlOYW1lID0gdmFsdWU7XHJcbiAgICB0aGlzLmxvYWQodGhpcy5fbGFzdEV2ZW50KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgY29sdW1ucygpOiBQcm9wZXJ0eVtdIHtcclxuICAgIHJldHVybiB0aGlzLnRlbXBsYXRlPy5wcm9wZXJ0aWVzLmZpbHRlcihwID0+IHAudHlwZSAhPT0gUHJvcGVydHlUeXBlLkhpZGRlbikgPz8gW107XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGRhdGVGb3JtYXQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBSRVNUd29ybGRMaXN0Vmlld0NvbXBvbmVudC5fZGF0ZUZvcm1hdDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZWRpdExpbmsoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZWRpdExpbms7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgZWRpdExpbmsodmFsdWU6IHN0cmluZykge1xyXG4gICAgaWYgKHZhbHVlKVxyXG4gICAgICB0aGlzLl9lZGl0TGluayA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBuZXdIcmVmKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5yZXNvdXJjZT8uZmluZExpbmsoJ25ldycpPy5ocmVmO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCByZWwoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLl9yZWw7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgcmVsKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcclxuICAgIHRoaXMuX3JlbCA9IHZhbHVlO1xyXG4gICAgdGhpcy5sb2FkKHRoaXMuX2xhc3RFdmVudCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHJvd3MoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9sYXN0RXZlbnQ/LnJvd3MgfHwgMDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc29ydEZpZWxkKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fc29ydEZpZWxkO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IHNvcnRGaWVsZCh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XHJcbiAgICB0aGlzLl9zb3J0RmllbGQgPSB2YWx1ZSA/PyAnJztcclxuICAgIHRoaXMuX2xhc3RFdmVudC5zb3J0RmllbGQgPSB2YWx1ZTtcclxuICAgIHRoaXMubG9hZCh0aGlzLl9sYXN0RXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBzb3J0T3JkZXIoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9zb3J0T3JkZXI7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgc29ydE9yZGVyKHZhbHVlOiBudW1iZXIgfCB1bmRlZmluZWQpIHtcclxuICAgIHRoaXMuX3NvcnRPcmRlciA9IHZhbHVlID8/IDE7XHJcbiAgICB0aGlzLl9sYXN0RXZlbnQuc29ydE9yZGVyID0gdmFsdWU7XHJcbiAgICB0aGlzLmxvYWQodGhpcy5fbGFzdEV2ZW50KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgdGVtcGxhdGUoKTogVGVtcGxhdGUgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RlbXBsYXRlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCB0b3RhbFJlY29yZHMoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl90b3RhbFJlY29yZHM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IFJlc291cmNlW10ge1xyXG4gICAgcmV0dXJuIHRoaXMucmVzb3VyY2U/Ll9lbWJlZGRlZD8uaXRlbXMgfHwgW107XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldCB0b3RhbFJlY29yZHModmFsdWU6IG51bWJlciB8IHVuZGVmaW5lZCkge1xyXG4gICAgdGhpcy5fdG90YWxSZWNvcmRzID0gdmFsdWUgfHwgMDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjcmVhdGVOZXcoKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fcm91dGVyLm5hdmlnYXRlKFt0aGlzLmVkaXRMaW5rLCB0aGlzLmFwaU5hbWUsIHRoaXMucmVsLCB0aGlzLm5ld0hyZWZdKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBkZWxldGUocmVzb3VyY2U6IFJlc291cmNlKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoIXRoaXMuYXBpTmFtZSB8fCAhdGhpcy5yZWwpXHJcbiAgICAgIHJldHVybjtcclxuXHJcbiAgICBhd2FpdCB0aGlzLmdldENsaWVudCgpLmRlbGV0ZShyZXNvdXJjZSk7XHJcblxyXG4gICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdzdWNjZXNzJywgc3VtbWFyeTogJ0RlbGV0ZWQnLCBkZXRhaWw6ICdUaGUgcmVzb3VyY2UgaGFzIGJlZW4gZGVsZXRlZC4nIH0pO1xyXG5cclxuICAgIHRoaXMubG9hZCh0aGlzLl9sYXN0RXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGxvYWQyKGV2ZW50OiBMYXp5TG9hZEV2ZW50KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoIXRoaXMuYXBpTmFtZSB8fCAhdGhpcy5yZWwpXHJcbiAgICAgIHJldHVybjtcclxuXHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLl9sYXN0RXZlbnQgPSBldmVudDtcclxuXHJcbiAgICBjb25zdCBwYXJhbWV0ZXJzID0gT0RhdGFTZXJ2aWNlLmNyZWF0ZVBhcmFtZXRlcnNGcm9tVGFibGVMb2FkRXZlbnQoZXZlbnQsIHRoaXMudGVtcGxhdGUpO1xyXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmdldENsaWVudCgpLmdldExpc3Q8VExpc3REdG8+KHRoaXMucmVsLCBwYXJhbWV0ZXJzKTtcclxuICAgIGlmICghcmVzcG9uc2Uub2sgfHwgUHJvYmxlbURldGFpbHMuaXNQcm9ibGVtRGV0YWlscyhyZXNwb25zZS5ib2R5KSB8fCAhcmVzcG9uc2UuYm9keSkge1xyXG4gICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2Vycm9yJywgc3VtbWFyeTogJ0Vycm9yJywgZGV0YWlsOiAnRXJyb3Igd2hpbGUgbG9hZGluZyB0aGUgcmVzb3VyY2VzIGZyb20gdGhlIEFQSS4nLCBkYXRhOiByZXNwb25zZSB9KTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHJlc3BvbnNlLmJvZHkpIHtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICBjb25zdCB0ZW1wbGF0ZXMgPSBhd2FpdCB0aGlzLmdldENsaWVudCgpLmdldEFsbFRlbXBsYXRlcyhyZXNwb25zZS5ib2R5KTtcclxuICAgICAgICB0aGlzLl90ZW1wbGF0ZSA9IHRlbXBsYXRlc1tcIlNlYXJjaFwiXTtcclxuICAgICAgICBpZiAodGhpcy5fdGVtcGxhdGUgPT09IHVuZGVmaW5lZClcclxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIk5vIHNlYXJjaCB0ZW1wbGF0ZSBmb3VuZCBpbiB0aGUgQVBJIHJlc3BvbnNlLlwiKTtcclxuICAgICAgfVxyXG4gICAgICBjYXRjaCAoZTogdW5rbm93bikge1xyXG4gICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnZXJyb3InLCBzdW1tYXJ5OiAnRXJyb3InLCBkZXRhaWw6ICdFcnJvciB3aGlsZSBsb2FkaW5nIHRoZSByZXNvdXJjZXMgZnJvbSB0aGUgQVBJLiAnICsgZSwgZGF0YTogZSB9KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5yZXNvdXJjZSA9IHJlc3BvbnNlLmJvZHk7XHJcbiAgICAgIHRoaXMudG90YWxSZWNvcmRzID0gdGhpcy5yZXNvdXJjZS50b3RhbFBhZ2VzICYmIHBhcmFtZXRlcnMuJHRvcCA/IHRoaXMucmVzb3VyY2UudG90YWxQYWdlcyAqIHBhcmFtZXRlcnMuJHRvcCA6IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3dEZWxldGVDb25maXJtYXRpb01vZGFsKHJlc291cmNlOiBSZXNvdXJjZSkge1xyXG4gICAgdGhpcy5fY29uZmlybWF0aW9uU2VydmljZS5jb25maXJtKHtcclxuICAgICAgbWVzc2FnZTogJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyByZXNvdXJjZT8nLFxyXG4gICAgICBoZWFkZXI6ICdDb25maXJtIGRlbGV0ZScsXHJcbiAgICAgIGljb246ICdmYXIgZmEtdHJhc2gtYWx0JyxcclxuICAgICAgYWNjZXB0OiAoKSA9PiB0aGlzLmRlbGV0ZShyZXNvdXJjZSlcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHRvQ29sdW1uRmlsdGVyVHlwZShwcm9wZXJ0eVR5cGU6IFByb3BlcnR5VHlwZSkgOiBDb2x1bW5GaWx0ZXJUeXBle1xyXG4gICAgc3dpdGNoKHByb3BlcnR5VHlwZSkge1xyXG4gICAgICBjYXNlIFByb3BlcnR5VHlwZS5OdW1iZXI6XHJcbiAgICAgICAgcmV0dXJuIENvbHVtbkZpbHRlclR5cGUubnVtZXJpYztcclxuICAgICAgY2FzZSBQcm9wZXJ0eVR5cGUuQm9vbDpcclxuICAgICAgICByZXR1cm4gQ29sdW1uRmlsdGVyVHlwZS5ib29sZWFuO1xyXG4gICAgICBjYXNlIFByb3BlcnR5VHlwZS5EYXRlOlxyXG4gICAgICBjYXNlIFByb3BlcnR5VHlwZS5EYXRldGltZUxvY2FsOlxyXG4gICAgICBjYXNlIFByb3BlcnR5VHlwZS5EYXRldGltZU9mZnNldDpcclxuICAgICAgICByZXR1cm4gQ29sdW1uRmlsdGVyVHlwZS5kYXRlO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBDb2x1bW5GaWx0ZXJUeXBlLnRleHQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldENsaWVudCgpOiBSRVNUd29ybGRDbGllbnQge1xyXG4gICAgaWYgKCF0aGlzLmFwaU5hbWUpXHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGdldCBhIGNsaWVudCwgYmVjYXVzZSB0aGUgYXBpTmFtZSBpcyBub3Qgc2V0LicpO1xyXG5cclxuICAgIHJldHVybiB0aGlzLl9jbGllbnRzLmdldENsaWVudCh0aGlzLmFwaU5hbWUpO1xyXG4gIH1cclxufVxyXG4iLCI8cC10YWJsZSBbdmFsdWVdPVwidmFsdWVcIlxyXG4gICAgICAgICBbbGF6eV09XCJ0cnVlXCJcclxuICAgICAgICAgW2xhenlMb2FkT25Jbml0XT1cImZhbHNlXCJcclxuICAgICAgICAgKG9uTGF6eUxvYWQpPVwibG9hZCgkZXZlbnQpXCJcclxuICAgICAgICAgcmVzcG9uc2l2ZUxheW91dD1cInNjcm9sbFwiXHJcbiAgICAgICAgIFtwYWdpbmF0b3JdPVwidHJ1ZVwiXHJcbiAgICAgICAgIFtyb3dzXT1cInJvd3NcIlxyXG4gICAgICAgICBbcm93c1BlclBhZ2VPcHRpb25zXT1cInJvd3NQZXJQYWdlXCJcclxuICAgICAgICAgW3RvdGFsUmVjb3Jkc109XCJ0b3RhbFJlY29yZHNcIlxyXG4gICAgICAgICBbbG9hZGluZ109XCJpc0xvYWRpbmdcIlxyXG4gICAgICAgICBbc2hvd0luaXRpYWxTb3J0QmFkZ2VdPVwidHJ1ZVwiXHJcbiAgICAgICAgIFtjb2x1bW5zXT1cImNvbHVtbnNcIlxyXG4gICAgICAgICBbc29ydEZpZWxkXT1cInNvcnRGaWVsZFwiXHJcbiAgICAgICAgIFtzb3J0T3JkZXJdPVwic29ydE9yZGVyXCI+XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiIGxldC1jb2x1bW5zPlxyXG4gICAgICAgIDx0cj5cclxuICAgICAgICAgICAgPHRoICpuZ0Zvcj1cImxldCBjb2wgb2YgY29sdW1uc1wiIFtwU29ydGFibGVDb2x1bW5dPVwiY29sLm5hbWVcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWQtZmxleCBwLWpjLWJldHdlZW4gcC1haS1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICB7e2NvbC5wcm9tcHR9fVxyXG4gICAgICAgICAgICAgICAgICAgIDxwLXNvcnRJY29uIFtmaWVsZF09XCJjb2wubmFtZVwiPjwvcC1zb3J0SWNvbj5cclxuICAgICAgICAgICAgICAgICAgICA8cC1jb2x1bW5GaWx0ZXIgW3R5cGVdPVwidG9Db2x1bW5GaWx0ZXJUeXBlKGNvbC50eXBlKVwiIFtmaWVsZF09XCJjb2wubmFtZVwiIGRpc3BsYXk9XCJtZW51XCI+PC9wLWNvbHVtbkZpbHRlcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICA8dGg+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm14LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgKm5nSWY9XCIhY3JlYXRlQnV0dG9uTWVudVwiIGNsYXNzPVwicC1idXR0b24tc3VjY2Vzc1wiIGljb249XCJmYXMgZmEtcGx1c1wiIHBCdXR0b24gW3JvdXRlckxpbmtdPVwiW2VkaXRMaW5rLCBhcGlOYW1lLCByZWwsIG5ld0hyZWZdXCIgcFRvb2x0aXA9XCJDcmVhdGUgbmV3XCIgdG9vbHRpcFBvc2l0aW9uPVwibGVmdFwiPjwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHAtc3BsaXRCdXR0b24gKm5nSWY9XCJjcmVhdGVCdXR0b25NZW51XCIgc3R5bGVDbGFzcz1cInAtYnV0dG9uLXN1Y2Nlc3NcIiBpY29uPVwiZmFzIGZhLXBsdXNcIiBwVG9vbHRpcD1cIkNyZWF0ZSBuZXdcIiB0b29sdGlwUG9zaXRpb249XCJsZWZ0XCIgKG9uQ2xpY2spPVwiY3JlYXRlTmV3KClcIiBbbW9kZWxdPVwiY3JlYXRlQnV0dG9uTWVudVwiIGFwcGVuZFRvPVwiYm9keVwiPjwvcC1zcGxpdEJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgIDwvdHI+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJib2R5XCIgbGV0LWVudGl0eSBsZXQtY29sdW1ucz1cImNvbHVtbnNcIj5cclxuICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgIDx0ZCBbbmdTd2l0Y2hdPVwiY29sLnR5cGVcIiAqbmdGb3I9XCJsZXQgY29sIG9mIGNvbHVtbnNcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIlByb3BlcnR5VHlwZS5UZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHAtYXZhdGFyICpuZ0lmPVwiY29sLm5hbWUgPT09ICdjcmVhdGVkQnknIHx8IGNvbC5uYW1lID09PSAnbGFzdENoYW5nZWRCeSdcIiBbcFRvb2x0aXBdPVwiZW50aXR5W2NvbC5uYW1lXVwiIHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiIFtpbWFnZV09XCJhdmF0YXJHZW5lcmF0b3IuZ2V0SW1hZ2UoZW50aXR5W2NvbC5uYW1lXSlcIiBbbGFiZWxdPVwiYXZhdGFyR2VuZXJhdG9yLmdldExhYmVsKGVudGl0eVtjb2wubmFtZV0pXCIgW3N0eWxlXT1cImF2YXRhckdlbmVyYXRvci5nZXRTdHlsZShlbnRpdHlbY29sLm5hbWVdKVwiIHNoYXBlPVwiY2lyY2xlXCI+PC9wLWF2YXRhcj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImNvbC5uYW1lICE9PSAnY3JlYXRlZEJ5JyAmJiBjb2wubmFtZSAhPT0gJ2xhc3RDaGFuZ2VkQnknXCI+e3tlbnRpdHlbY29sLm5hbWVdfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCJQcm9wZXJ0eVR5cGUuTnVtYmVyXCIgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1lbmRcIj57e2VudGl0eVtjb2wubmFtZV19fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCJQcm9wZXJ0eVR5cGUuQm9vbFwiIGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+PHAtdHJpU3RhdGVDaGVja2JveCBbKG5nTW9kZWwpXT1cImVudGl0eVtjb2wubmFtZV1cIiBbcmVhZG9ubHldPVwidHJ1ZVwiPjwvcC10cmlTdGF0ZUNoZWNrYm94Pjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCJQcm9wZXJ0eVR5cGUuRGF0ZVwiIFtwVG9vbHRpcF09XCJlbnRpdHlbY29sLm5hbWVdXCI+e3tlbnRpdHlbY29sLm5hbWVdIHwgZGF0ZTpkYXRlRm9ybWF0fX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiUHJvcGVydHlUeXBlLkRhdGV0aW1lTG9jYWxcIiBbcFRvb2x0aXBdPVwiZW50aXR5W2NvbC5uYW1lXVwiPnt7ZW50aXR5W2NvbC5uYW1lXSB8IGRhdGU6ZGF0ZUZvcm1hdH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIlByb3BlcnR5VHlwZS5EYXRldGltZU9mZnNldFwiIFtwVG9vbHRpcF09XCJlbnRpdHlbY29sLm5hbWVdXCI+e3tlbnRpdHlbY29sLm5hbWVdIHwgZGF0ZTpkYXRlRm9ybWF0fX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiUHJvcGVydHlUeXBlLkNvbGxlY3Rpb25cIiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWVuZFwiPjxwICpuZ0Zvcj1cImxldCBhcnJheUVsZW1lbnQgb2YgZW50aXR5W2NvbC5uYW1lXVwiPnt7YXJyYXlFbGVtZW50IHwganNvbn19PC9wPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCJQcm9wZXJ0eVR5cGUuT2JqZWN0XCIgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1lbmRcIj57e2VudGl0eVtjb2wubmFtZV0gfCBqc29ufX08L3NwYW4+XHJcbiAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1lbmRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YSBwQnV0dG9uIHBUb29sdGlwPVwiVmlldy9FZGl0XCIgdG9vbHRpcFBvc2l0aW9uPVwibGVmdFwiIFtyb3V0ZXJMaW5rXT1cIltlZGl0TGluaywgYXBpTmFtZSwgcmVsLCBlbnRpdHkuX2xpbmtzPy5zZWxmWzBdLmhyZWZdXCIgaWNvbj1cImZhcyBmYS1lZGl0XCI+PC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gcFRvb2x0aXA9XCJEZWxldGVcIiB0b29sdGlwUG9zaXRpb249XCJsZWZ0XCIgcEJ1dHRvbiAqbmdJZj1cImVudGl0eS5fbGlua3MuZGVsZXRlXCIgKGNsaWNrKT1cInNob3dEZWxldGVDb25maXJtYXRpb01vZGFsKGVudGl0eSlcIiBpY29uPVwiZmFzIGZhLXRyYXNoLWFsdFwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cIm14LTIgcC1idXR0b24tZGFuZ2VyXCI+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICA8L3RyPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZW1wdHltZXNzYWdlXCI+XHJcbiAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICA8dGQgY29sc3Bhbj1cIjhcIj5ObyBlbnRyaWVzIGZvdW5kLjwvdGQ+XHJcbiAgICAgICAgPC90cj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG48L3AtdGFibGU+XHJcblxyXG48cC10b2FzdD48L3AtdG9hc3Q+XHJcbjxwLWNvbmZpcm1EaWFsb2c+PC9wLWNvbmZpcm1EaWFsb2c+XHJcbiJdfQ==
|
|
199
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdHdvcmxkLWxpc3Qtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVzdHdvcmxkLWNsaWVudC9zcmMvbGliL3ZpZXdzL3Jlc3R3b3JsZC1saXN0LXZpZXcvcmVzdHdvcmxkLWxpc3Qtdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVzdHdvcmxkLWNsaWVudC9zcmMvbGliL3ZpZXdzL3Jlc3R3b3JsZC1saXN0LXZpZXcvcmVzdHdvcmxkLWxpc3Qtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQStCLFlBQVksRUFBbUMsTUFBTSx5QkFBeUIsQ0FBQztBQUNySCxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUk1QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFHOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFBOzs7Ozs7Ozs7Ozs7Ozs7O0FBRTVELE1BQU0sQ0FBTixJQUFZLGdCQUtYO0FBTEQsV0FBWSxnQkFBZ0I7SUFDMUIsaUNBQWEsQ0FBQTtJQUNiLHVDQUFtQixDQUFBO0lBQ25CLHVDQUFtQixDQUFBO0lBQ25CLGlDQUFhLENBQUE7QUFDZixDQUFDLEVBTFcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQUszQjtBQU9ELE1BQU0sT0FBTywwQkFBMEI7SUF5QnJDLFlBQ1UsUUFBbUMsRUFDbkMsb0JBQXlDLEVBQ3pDLGVBQStCLEVBQ2hDLGVBQWdDLEVBQ3RCLE9BQWU7UUFKeEIsYUFBUSxHQUFSLFFBQVEsQ0FBMkI7UUFDbkMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFxQjtRQUN6QyxvQkFBZSxHQUFmLGVBQWUsQ0FB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QXNELENBQUMsQ0FBQztRQUUxRSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvQyxDQUFDOztBQXZNYyxzQ0FBVyxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO0tBQ2hELGtCQUFrQixFQUFFO0tBQ3BCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDO0tBQ25CLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDO0tBQ25CLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDO0tBQ3BCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7dUhBTlosMEJBQTBCOzJHQUExQiwwQkFBMEIsbU9DdkJ2QyxrcElBcUVBOzJGRDlDYSwwQkFBMEI7a0JBTHRDLFNBQVM7K0JBQ0UsU0FBUztrT0FhWixnQkFBZ0I7c0JBRHRCLEtBQUs7Z0JBTUMsV0FBVztzQkFEakIsS0FBSztnQkFrQ0ssT0FBTztzQkFEakIsS0FBSztnQkFtQkssUUFBUTtzQkFEbEIsS0FBSztnQkFlSyxHQUFHO3NCQURiLEtBQUs7Z0JBZUssU0FBUztzQkFEbkIsS0FBSztnQkFZSyxTQUFTO3NCQURuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBQYWdlZExpc3RSZXNvdXJjZSwgUHJvcGVydHksIFByb3BlcnR5VHlwZSwgUmVzb3VyY2UsIFJlc291cmNlRHRvLCBUZW1wbGF0ZSB9IGZyb20gJ0B3ZXJ0enVpL25neC1oYWwtY2xpZW50JztcclxuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQgeyBDb25maXJtYXRpb25TZXJ2aWNlLCBGaWx0ZXJNYXRjaE1vZGUsIEZpbHRlck1ldGFkYXRhLCBMYXp5TG9hZEV2ZW50LCBNZW51SXRlbSwgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IFJFU1R3b3JsZENsaWVudCB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Jlc3R3b3JsZC1jbGllbnQnO1xyXG5pbXBvcnQgeyBSRVNUd29ybGRDbGllbnRDb2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcmVzdHdvcmxkLWNsaWVudC1jb2xsZWN0aW9uJztcclxuaW1wb3J0IHsgUHJvYmxlbURldGFpbHMgfSBmcm9tICcuLi8uLi9tb2RlbHMvcHJvYmxlbS1kZXRhaWxzJztcclxuaW1wb3J0IHsgQXZhdGFyR2VuZXJhdG9yIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYXZhdGFyLWdlbmVyYXRvcic7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE9EYXRhU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL28tZGF0YS5zZXJ2aWNlJ1xyXG5cclxuZXhwb3J0IGVudW0gQ29sdW1uRmlsdGVyVHlwZSB7XHJcbiAgdGV4dCA9ICd0ZXh0JyxcclxuICBudW1lcmljID0gJ251bWVyaWMnLFxyXG4gIGJvb2xlYW4gPSAnYm9vbGVhbicsXHJcbiAgZGF0ZSA9ICdkYXRlJ1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3J3LWxpc3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9yZXN0d29ybGQtbGlzdC12aWV3LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9yZXN0d29ybGQtbGlzdC12aWV3LmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUkVTVHdvcmxkTGlzdFZpZXdDb21wb25lbnQ8VExpc3REdG8gZXh0ZW5kcyBSZXNvdXJjZUR0bz4ge1xyXG4gIHByaXZhdGUgc3RhdGljIF9kYXRlRm9ybWF0ID0gbmV3IERhdGUoMzMzMywgMTAsIDIyKVxyXG4gICAgLnRvTG9jYWxlRGF0ZVN0cmluZygpXHJcbiAgICAucmVwbGFjZShcIjIyXCIsIFwiZGRcIilcclxuICAgIC5yZXBsYWNlKFwiMTFcIiwgXCJNTVwiKVxyXG4gICAgLnJlcGxhY2UoXCIzMzMzXCIsIFwieVwiKVxyXG4gICAgLnJlcGxhY2UoXCIzM1wiLCBcInl5XCIpO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBjcmVhdGVCdXR0b25NZW51PzogTWVudUl0ZW1bXTtcclxuICBwdWJsaWMgaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgcHVibGljIGxvYWQgPSBfLmRlYm91bmNlKHRoaXMubG9hZDIsIDEwMCk7XHJcbiAgcHVibGljIHJlc291cmNlPzogUGFnZWRMaXN0UmVzb3VyY2U8VExpc3REdG8+O1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHJvd3NQZXJQYWdlOiBudW1iZXJbXTtcclxuXHJcbiAgcHJpdmF0ZSBfYXBpTmFtZT86IHN0cmluZztcclxuICBwcml2YXRlIF9lZGl0TGluayA9ICcvZWRpdCc7XHJcbiAgcHJpdmF0ZSBfbGFzdEV2ZW50OiBMYXp5TG9hZEV2ZW50O1xyXG4gIHByaXZhdGUgX3JlbD86IHN0cmluZztcclxuICBwcml2YXRlIF9zb3J0RmllbGQgPSAnJztcclxuICBwcml2YXRlIF9zb3J0T3JkZXIgPSAxO1xyXG4gIHByaXZhdGUgX3RlbXBsYXRlPzogVGVtcGxhdGU7XHJcbiAgcHJpdmF0ZSBfdG90YWxSZWNvcmRzID0gMDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9jbGllbnRzOiBSRVNUd29ybGRDbGllbnRDb2xsZWN0aW9uLFxyXG4gICAgcHJpdmF0ZSBfY29uZmlybWF0aW9uU2VydmljZTogQ29uZmlybWF0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX21lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcclxuICAgIHB1YmxpYyBhdmF0YXJHZW5lcmF0b3I6IEF2YXRhckdlbmVyYXRvcixcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3JvdXRlcjogUm91dGVyKSB7XHJcbiAgICB0aGlzLnJvd3NQZXJQYWdlID0gWzEwLCAyNSwgNTBdO1xyXG5cclxuICAgIHRoaXMuX2xhc3RFdmVudCA9IHtcclxuICAgICAgcm93czogdGhpcy5yb3dzUGVyUGFnZVswXVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgUHJvcGVydHlUeXBlKCk6IHR5cGVvZiBQcm9wZXJ0eVR5cGUge1xyXG4gICAgcmV0dXJuIFByb3BlcnR5VHlwZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgYXBpTmFtZSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FwaU5hbWU7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgYXBpTmFtZSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XHJcbiAgICB0aGlzLl9hcGlOYW1lID0gdmFsdWU7XHJcbiAgICB0aGlzLmxvYWQodGhpcy5fbGFzdEV2ZW50KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgY29sdW1ucygpOiBQcm9wZXJ0eVtdIHtcclxuICAgIHJldHVybiB0aGlzLnRlbXBsYXRlPy5wcm9wZXJ0aWVzLmZpbHRlcihwID0+IHAudHlwZSAhPT0gUHJvcGVydHlUeXBlLkhpZGRlbikgPz8gW107XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGRhdGVGb3JtYXQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBSRVNUd29ybGRMaXN0Vmlld0NvbXBvbmVudC5fZGF0ZUZvcm1hdDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZWRpdExpbmsoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZWRpdExpbms7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgZWRpdExpbmsodmFsdWU6IHN0cmluZykge1xyXG4gICAgaWYgKHZhbHVlKVxyXG4gICAgICB0aGlzLl9lZGl0TGluayA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBuZXdIcmVmKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5yZXNvdXJjZT8uZmluZExpbmsoJ25ldycpPy5ocmVmO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCByZWwoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLl9yZWw7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgcmVsKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcclxuICAgIHRoaXMuX3JlbCA9IHZhbHVlO1xyXG4gICAgdGhpcy5sb2FkKHRoaXMuX2xhc3RFdmVudCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHJvd3MoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9sYXN0RXZlbnQ/LnJvd3MgfHwgMDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc29ydEZpZWxkKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fc29ydEZpZWxkO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IHNvcnRGaWVsZCh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XHJcbiAgICB0aGlzLl9zb3J0RmllbGQgPSB2YWx1ZSA/PyAnJztcclxuICAgIHRoaXMuX2xhc3RFdmVudC5zb3J0RmllbGQgPSB2YWx1ZTtcclxuICAgIHRoaXMubG9hZCh0aGlzLl9sYXN0RXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBzb3J0T3JkZXIoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9zb3J0T3JkZXI7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgc29ydE9yZGVyKHZhbHVlOiBudW1iZXIgfCB1bmRlZmluZWQpIHtcclxuICAgIHRoaXMuX3NvcnRPcmRlciA9IHZhbHVlID8/IDE7XHJcbiAgICB0aGlzLl9sYXN0RXZlbnQuc29ydE9yZGVyID0gdmFsdWU7XHJcbiAgICB0aGlzLmxvYWQodGhpcy5fbGFzdEV2ZW50KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgdGVtcGxhdGUoKTogVGVtcGxhdGUgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RlbXBsYXRlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCB0b3RhbFJlY29yZHMoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl90b3RhbFJlY29yZHM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IFJlc291cmNlW10ge1xyXG4gICAgcmV0dXJuIHRoaXMucmVzb3VyY2U/Ll9lbWJlZGRlZD8uaXRlbXMgfHwgW107XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldCB0b3RhbFJlY29yZHModmFsdWU6IG51bWJlciB8IHVuZGVmaW5lZCkge1xyXG4gICAgdGhpcy5fdG90YWxSZWNvcmRzID0gdmFsdWUgfHwgMDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjcmVhdGVOZXcoKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fcm91dGVyLm5hdmlnYXRlKFt0aGlzLmVkaXRMaW5rLCB0aGlzLmFwaU5hbWUsIHRoaXMucmVsLCB0aGlzLm5ld0hyZWZdKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBkZWxldGUocmVzb3VyY2U6IFJlc291cmNlKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoIXRoaXMuYXBpTmFtZSB8fCAhdGhpcy5yZWwpXHJcbiAgICAgIHJldHVybjtcclxuXHJcbiAgICBhd2FpdCB0aGlzLmdldENsaWVudCgpLmRlbGV0ZShyZXNvdXJjZSk7XHJcblxyXG4gICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdzdWNjZXNzJywgc3VtbWFyeTogJ0RlbGV0ZWQnLCBkZXRhaWw6ICdUaGUgcmVzb3VyY2UgaGFzIGJlZW4gZGVsZXRlZC4nIH0pO1xyXG5cclxuICAgIHRoaXMubG9hZCh0aGlzLl9sYXN0RXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGxvYWQyKGV2ZW50OiBMYXp5TG9hZEV2ZW50KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoIXRoaXMuYXBpTmFtZSB8fCAhdGhpcy5yZWwpXHJcbiAgICAgIHJldHVybjtcclxuXHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLl9sYXN0RXZlbnQgPSBldmVudDtcclxuXHJcbiAgICBjb25zdCBwYXJhbWV0ZXJzID0gT0RhdGFTZXJ2aWNlLmNyZWF0ZVBhcmFtZXRlcnNGcm9tVGFibGVMb2FkRXZlbnQoZXZlbnQsIHRoaXMudGVtcGxhdGUpO1xyXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmdldENsaWVudCgpLmdldExpc3Q8VExpc3REdG8+KHRoaXMucmVsLCBwYXJhbWV0ZXJzKTtcclxuICAgIGlmICghcmVzcG9uc2Uub2sgfHwgUHJvYmxlbURldGFpbHMuaXNQcm9ibGVtRGV0YWlscyhyZXNwb25zZS5ib2R5KSB8fCAhcmVzcG9uc2UuYm9keSkge1xyXG4gICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2Vycm9yJywgc3VtbWFyeTogJ0Vycm9yJywgZGV0YWlsOiAnRXJyb3Igd2hpbGUgbG9hZGluZyB0aGUgcmVzb3VyY2VzIGZyb20gdGhlIEFQSS4nLCBkYXRhOiByZXNwb25zZSB9KTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHJlc3BvbnNlLmJvZHkpIHtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICBjb25zdCB0ZW1wbGF0ZXMgPSBhd2FpdCB0aGlzLmdldENsaWVudCgpLmdldEFsbFRlbXBsYXRlcyhyZXNwb25zZS5ib2R5KTtcclxuICAgICAgICB0aGlzLl90ZW1wbGF0ZSA9IHRlbXBsYXRlc1tcIlNlYXJjaFwiXTtcclxuICAgICAgICBpZiAodGhpcy5fdGVtcGxhdGUgPT09IHVuZGVmaW5lZClcclxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIk5vIHNlYXJjaCB0ZW1wbGF0ZSBmb3VuZCBpbiB0aGUgQVBJIHJlc3BvbnNlLlwiKTtcclxuICAgICAgfVxyXG4gICAgICBjYXRjaCAoZTogdW5rbm93bikge1xyXG4gICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnZXJyb3InLCBzdW1tYXJ5OiAnRXJyb3InLCBkZXRhaWw6ICdFcnJvciB3aGlsZSBsb2FkaW5nIHRoZSByZXNvdXJjZXMgZnJvbSB0aGUgQVBJLiAnICsgZSwgZGF0YTogZSB9KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5yZXNvdXJjZSA9IHJlc3BvbnNlLmJvZHk7XHJcbiAgICAgIHRoaXMudG90YWxSZWNvcmRzID0gdGhpcy5yZXNvdXJjZS50b3RhbFBhZ2VzICYmIHBhcmFtZXRlcnMuJHRvcCA/IHRoaXMucmVzb3VyY2UudG90YWxQYWdlcyAqIHBhcmFtZXRlcnMuJHRvcCA6IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3dEZWxldGVDb25maXJtYXRpb01vZGFsKHJlc291cmNlOiBSZXNvdXJjZSkge1xyXG4gICAgdGhpcy5fY29uZmlybWF0aW9uU2VydmljZS5jb25maXJtKHtcclxuICAgICAgbWVzc2FnZTogJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyByZXNvdXJjZT8nLFxyXG4gICAgICBoZWFkZXI6ICdDb25maXJtIGRlbGV0ZScsXHJcbiAgICAgIGljb246ICdmYXIgZmEtdHJhc2gtYWx0JyxcclxuICAgICAgYWNjZXB0OiAoKSA9PiB0aGlzLmRlbGV0ZShyZXNvdXJjZSlcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHRvQ29sdW1uRmlsdGVyVHlwZShwcm9wZXJ0eVR5cGU6IFByb3BlcnR5VHlwZSkgOiBDb2x1bW5GaWx0ZXJUeXBle1xyXG4gICAgc3dpdGNoKHByb3BlcnR5VHlwZSkge1xyXG4gICAgICBjYXNlIFByb3BlcnR5VHlwZS5OdW1iZXI6XHJcbiAgICAgICAgcmV0dXJuIENvbHVtbkZpbHRlclR5cGUubnVtZXJpYztcclxuICAgICAgY2FzZSBQcm9wZXJ0eVR5cGUuQm9vbDpcclxuICAgICAgICByZXR1cm4gQ29sdW1uRmlsdGVyVHlwZS5ib29sZWFuO1xyXG4gICAgICBjYXNlIFByb3BlcnR5VHlwZS5EYXRlOlxyXG4gICAgICBjYXNlIFByb3BlcnR5VHlwZS5EYXRldGltZUxvY2FsOlxyXG4gICAgICBjYXNlIFByb3BlcnR5VHlwZS5EYXRldGltZU9mZnNldDpcclxuICAgICAgICByZXR1cm4gQ29sdW1uRmlsdGVyVHlwZS5kYXRlO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBDb2x1bW5GaWx0ZXJUeXBlLnRleHQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldENsaWVudCgpOiBSRVNUd29ybGRDbGllbnQge1xyXG4gICAgaWYgKCF0aGlzLmFwaU5hbWUpXHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGdldCBhIGNsaWVudCwgYmVjYXVzZSB0aGUgYXBpTmFtZSBpcyBub3Qgc2V0LicpO1xyXG5cclxuICAgIHJldHVybiB0aGlzLl9jbGllbnRzLmdldENsaWVudCh0aGlzLmFwaU5hbWUpO1xyXG4gIH1cclxufVxyXG4iLCI8cC10YWJsZSBbdmFsdWVdPVwidmFsdWVcIlxyXG4gICAgICAgICBbbGF6eV09XCJ0cnVlXCJcclxuICAgICAgICAgW2xhenlMb2FkT25Jbml0XT1cImZhbHNlXCJcclxuICAgICAgICAgKG9uTGF6eUxvYWQpPVwibG9hZCgkZXZlbnQpXCJcclxuICAgICAgICAgcmVzcG9uc2l2ZUxheW91dD1cInNjcm9sbFwiXHJcbiAgICAgICAgIFtwYWdpbmF0b3JdPVwidHJ1ZVwiXHJcbiAgICAgICAgIFtyb3dzXT1cInJvd3NcIlxyXG4gICAgICAgICBbcm93c1BlclBhZ2VPcHRpb25zXT1cInJvd3NQZXJQYWdlXCJcclxuICAgICAgICAgW3RvdGFsUmVjb3Jkc109XCJ0b3RhbFJlY29yZHNcIlxyXG4gICAgICAgICBbbG9hZGluZ109XCJpc0xvYWRpbmdcIlxyXG4gICAgICAgICBbc2hvd0luaXRpYWxTb3J0QmFkZ2VdPVwidHJ1ZVwiXHJcbiAgICAgICAgIFtjb2x1bW5zXT1cImNvbHVtbnNcIlxyXG4gICAgICAgICBbc29ydEZpZWxkXT1cInNvcnRGaWVsZFwiXHJcbiAgICAgICAgIFtzb3J0T3JkZXJdPVwic29ydE9yZGVyXCI+XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiIGxldC1jb2x1bW5zPlxyXG4gICAgICAgIDx0cj5cclxuICAgICAgICAgICAgPHRoICpuZ0Zvcj1cImxldCBjb2wgb2YgY29sdW1uc1wiIFtwU29ydGFibGVDb2x1bW5dPVwiY29sLm5hbWVcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWQtZmxleCBwLWpjLWJldHdlZW4gcC1haS1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICB7e2NvbC5wcm9tcHR9fVxyXG4gICAgICAgICAgICAgICAgICAgIDxwLXNvcnRJY29uIFtmaWVsZF09XCJjb2wubmFtZVwiPjwvcC1zb3J0SWNvbj5cclxuICAgICAgICAgICAgICAgICAgICA8cC1jb2x1bW5GaWx0ZXIgW3R5cGVdPVwidG9Db2x1bW5GaWx0ZXJUeXBlKGNvbC50eXBlKVwiIFtmaWVsZF09XCJjb2wubmFtZVwiIGRpc3BsYXk9XCJtZW51XCI+PC9wLWNvbHVtbkZpbHRlcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICA8dGg+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm14LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgKm5nSWY9XCIhY3JlYXRlQnV0dG9uTWVudVwiIGNsYXNzPVwicC1idXR0b24tc3VjY2Vzc1wiIGljb249XCJmYXMgZmEtcGx1c1wiIHBCdXR0b24gW3JvdXRlckxpbmtdPVwiW2VkaXRMaW5rLCBhcGlOYW1lLCByZWwsIG5ld0hyZWZdXCIgcFRvb2x0aXA9XCJDcmVhdGUgbmV3XCIgdG9vbHRpcFBvc2l0aW9uPVwibGVmdFwiPjwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHAtc3BsaXRCdXR0b24gKm5nSWY9XCJjcmVhdGVCdXR0b25NZW51XCIgc3R5bGVDbGFzcz1cInAtYnV0dG9uLXN1Y2Nlc3NcIiBpY29uPVwiZmFzIGZhLXBsdXNcIiBwVG9vbHRpcD1cIkNyZWF0ZSBuZXdcIiB0b29sdGlwUG9zaXRpb249XCJsZWZ0XCIgKG9uQ2xpY2spPVwiY3JlYXRlTmV3KClcIiBbbW9kZWxdPVwiY3JlYXRlQnV0dG9uTWVudVwiIGFwcGVuZFRvPVwiYm9keVwiPjwvcC1zcGxpdEJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgIDwvdHI+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJib2R5XCIgbGV0LWVudGl0eSBsZXQtY29sdW1ucz1cImNvbHVtbnNcIj5cclxuICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgIDx0ZCBbbmdTd2l0Y2hdPVwiY29sLnR5cGVcIiAqbmdGb3I9XCJsZXQgY29sIG9mIGNvbHVtbnNcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIlByb3BlcnR5VHlwZS5UZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHJ3LWF2YXRhciAqbmdJZj1cImNvbC5uYW1lID09PSAnY3JlYXRlZEJ5JyB8fCBjb2wubmFtZSA9PT0gJ2xhc3RDaGFuZ2VkQnknXCIgW3VzZXJdPVwiZW50aXR5W2NvbC5uYW1lXVwiPjwvcnctYXZhdGFyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY29sLm5hbWUgIT09ICdjcmVhdGVkQnknICYmIGNvbC5uYW1lICE9PSAnbGFzdENoYW5nZWRCeSdcIj57e2VudGl0eVtjb2wubmFtZV19fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIlByb3BlcnR5VHlwZS5OdW1iZXJcIiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWVuZFwiPnt7ZW50aXR5W2NvbC5uYW1lXX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIlByb3BlcnR5VHlwZS5Cb29sXCIgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj48cC10cmlTdGF0ZUNoZWNrYm94IFsobmdNb2RlbCldPVwiZW50aXR5W2NvbC5uYW1lXVwiIFtyZWFkb25seV09XCJ0cnVlXCI+PC9wLXRyaVN0YXRlQ2hlY2tib3g+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIlByb3BlcnR5VHlwZS5EYXRlXCIgW3BUb29sdGlwXT1cImVudGl0eVtjb2wubmFtZV1cIj57e2VudGl0eVtjb2wubmFtZV0gfCBkYXRlOmRhdGVGb3JtYXR9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCJQcm9wZXJ0eVR5cGUuRGF0ZXRpbWVMb2NhbFwiIFtwVG9vbHRpcF09XCJlbnRpdHlbY29sLm5hbWVdXCI+e3tlbnRpdHlbY29sLm5hbWVdIHwgZGF0ZTpkYXRlRm9ybWF0fX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiUHJvcGVydHlUeXBlLkRhdGV0aW1lT2Zmc2V0XCIgW3BUb29sdGlwXT1cImVudGl0eVtjb2wubmFtZV1cIj57e2VudGl0eVtjb2wubmFtZV0gfCBkYXRlOmRhdGVGb3JtYXR9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCJQcm9wZXJ0eVR5cGUuQ29sbGVjdGlvblwiIGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+PHAgKm5nRm9yPVwibGV0IGFycmF5RWxlbWVudCBvZiBlbnRpdHlbY29sLm5hbWVdXCI+e3thcnJheUVsZW1lbnQgfCBqc29ufX08L3A+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIlByb3BlcnR5VHlwZS5PYmplY3RcIiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWVuZFwiPnt7ZW50aXR5W2NvbC5uYW1lXSB8IGpzb259fTwvc3Bhbj5cclxuICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWVuZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhIHBCdXR0b24gcFRvb2x0aXA9XCJWaWV3L0VkaXRcIiB0b29sdGlwUG9zaXRpb249XCJsZWZ0XCIgW3JvdXRlckxpbmtdPVwiW2VkaXRMaW5rLCBhcGlOYW1lLCByZWwsIGVudGl0eS5fbGlua3M/LnNlbGZbMF0uaHJlZl1cIiBpY29uPVwiZmFzIGZhLWVkaXRcIj48L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBwVG9vbHRpcD1cIkRlbGV0ZVwiIHRvb2x0aXBQb3NpdGlvbj1cImxlZnRcIiBwQnV0dG9uICpuZ0lmPVwiZW50aXR5Ll9saW5rcy5kZWxldGVcIiAoY2xpY2spPVwic2hvd0RlbGV0ZUNvbmZpcm1hdGlvTW9kYWwoZW50aXR5KVwiIGljb249XCJmYXMgZmEtdHJhc2gtYWx0XCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwibXgtMiBwLWJ1dHRvbi1kYW5nZXJcIj48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgIDwvdHI+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJlbXB0eW1lc3NhZ2VcIj5cclxuICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgIDx0ZCBjb2xzcGFuPVwiOFwiPk5vIGVudHJpZXMgZm91bmQuPC90ZD5cclxuICAgICAgICA8L3RyPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjwvcC10YWJsZT5cclxuXHJcbjxwLXRvYXN0PjwvcC10b2FzdD5cclxuPHAtY29uZmlybURpYWxvZz48L3AtY29uZmlybURpYWxvZz5cclxuIl19
|
package/esm2020/public-api.mjs
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Public API Surface of ngx-restworld-client
|
|
3
3
|
*/
|
|
4
4
|
export * from './lib/constants/link-names';
|
|
5
|
+
export * from './lib/components/restworld-avatar/restworld-avatar.component';
|
|
5
6
|
export * from './lib/models/api-url';
|
|
6
7
|
export * from './lib/models/client-settings';
|
|
7
8
|
export * from './lib/models/problem-details';
|
|
@@ -20,4 +21,4 @@ export * from './lib/views/restworld-file-view/restworld-file-view.component';
|
|
|
20
21
|
export * from './lib/views/restworld-image-view/restworld-image-view.component';
|
|
21
22
|
export * from './lib/views/restworld-list-view/restworld-list-view.component';
|
|
22
23
|
export * from './lib/restworld-client.module';
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25neC1yZXN0d29ybGQtY2xpZW50L3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyw0QkFBNEIsQ0FBQztBQUUzQyxjQUFjLDhEQUE4RCxDQUFBO0FBRTVFLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsZ0NBQWdDLENBQUM7QUFFL0MsY0FBYywyQkFBMkIsQ0FBQTtBQUN6QyxjQUFjLHFCQUFxQixDQUFBO0FBRW5DLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLGlDQUFpQyxDQUFDO0FBRWhELGNBQWMsK0RBQStELENBQUM7QUFDOUUsY0FBYywrREFBK0QsQ0FBQztBQUM5RSxjQUFjLCtEQUErRCxDQUFBO0FBQzdFLGNBQWMsaUVBQWlFLENBQUE7QUFDL0UsY0FBYywrREFBK0QsQ0FBQTtBQUU3RSxjQUFjLCtCQUErQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBuZ3gtcmVzdHdvcmxkLWNsaWVudFxuICovXHJcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29uc3RhbnRzL2xpbmstbmFtZXMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3Jlc3R3b3JsZC1hdmF0YXIvcmVzdHdvcmxkLWF2YXRhci5jb21wb25lbnQnXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9hcGktdXJsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9jbGllbnQtc2V0dGluZ3MnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3Byb2JsZW0tZGV0YWlscyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvcmVzdHdvcmxkLW9wdGlvbnMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9waXBlcy9zYWZlLXVybC5waXBlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGlwZXMvYXMucGlwZSdcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvYXZhdGFyLWdlbmVyYXRvcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9mb3JtLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvby1kYXRhLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvcmVzdHdvcmxkLWNsaWVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9yZXN0d29ybGQtY2xpZW50LWNvbGxlY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvc2V0dGluZ3Muc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3ZpZXdzL3Jlc3R3b3JsZC1lZGl0LWZvcm0vcmVzdHdvcmxkLWVkaXQtZm9ybS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdmlld3MvcmVzdHdvcmxkLWVkaXQtdmlldy9yZXN0d29ybGQtZWRpdC12aWV3LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi92aWV3cy9yZXN0d29ybGQtZmlsZS12aWV3L3Jlc3R3b3JsZC1maWxlLXZpZXcuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdmlld3MvcmVzdHdvcmxkLWltYWdlLXZpZXcvcmVzdHdvcmxkLWltYWdlLXZpZXcuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdmlld3MvcmVzdHdvcmxkLWxpc3Qtdmlldy9yZXN0d29ybGQtbGlzdC12aWV3LmNvbXBvbmVudCdcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVzdHdvcmxkLWNsaWVudC5tb2R1bGUnOyJdfQ==
|