@fundamental-ngx/platform 0.53.1-rc.21 → 0.53.1-rc.23
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.
|
@@ -242,22 +242,17 @@ export class IconTabBarComponent {
|
|
|
242
242
|
flatIndexRef = flatIndexRef || { value: 0 };
|
|
243
243
|
return config.map((item, index) => {
|
|
244
244
|
const uId = `${indexPrefix}${index}`;
|
|
245
|
-
|
|
246
|
-
item.color = 'default';
|
|
247
|
-
}
|
|
245
|
+
item.color = item.color || 'default';
|
|
248
246
|
const result = {
|
|
249
247
|
...item,
|
|
250
248
|
index,
|
|
251
|
-
cssClasses: [],
|
|
249
|
+
cssClasses: item.color ? [`fd-icon-tab-bar__item--${item.color}`] : [],
|
|
252
250
|
uId,
|
|
253
251
|
hidden: false,
|
|
254
252
|
parentUId,
|
|
255
253
|
flatIndex: flatIndexRef.value++,
|
|
256
254
|
subItems: this._generateTabBarItems(item.subItems || [], `${uId}${UNIQUE_KEY_SEPARATOR}`, flatIndexRef, uId)
|
|
257
255
|
};
|
|
258
|
-
if (item.color) {
|
|
259
|
-
result.cssClasses = [`fd-icon-tab-bar__item--${item.color}`];
|
|
260
|
-
}
|
|
261
256
|
return result;
|
|
262
257
|
});
|
|
263
258
|
}
|
|
@@ -307,4 +302,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
|
|
|
307
302
|
type: HostBinding,
|
|
308
303
|
args: ['class.fd-tabs-custom']
|
|
309
304
|
}] } });
|
|
310
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi10YWItYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vaWNvbi10YWItYmFyL2ljb24tdGFiLWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2ljb24tdGFiLWJhci9pY29uLXRhYi1iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUNILGdCQUFnQixFQUNoQix1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsZUFBZSxFQUNmLFVBQVUsRUFFVixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxLQUFLLEVBQ0wsS0FBSyxFQUVMLFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxFQUNOLFNBQVMsRUFDVCxZQUFZLEVBQ1osaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBWSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRXJFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxVQUFVLEVBQVcsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7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R1osNkJBQTZCLGlHQTREWSxjQUFjLGdFQ3ZNeEYsNnVIQThGQSwweHhKRGpDUSxnQkFBZ0Isb0pBQ2hCLDhCQUE4QiwwRUFDOUIsNkJBQTZCLG1HQUM3QiwyQkFBMkIsOEZBQzNCLDJCQUEyQiw0SkFDM0Isa0JBQWtCLCtJQUNsQixrQkFBa0IseU1BQ2xCLDZCQUE2Qjs7MkZBR3hCLG1CQUFtQjtrQkF4Qi9CLFNBQVM7K0JBQ0ksa0JBQWtCLG1CQUdYLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksY0FDekIsSUFBSSxhQUNMO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxVQUFVOzRCQUNuQixXQUFXLHFCQUFxQjt5QkFDbkM7cUJBQ0osV0FDUTt3QkFDTCxnQkFBZ0I7d0JBQ2hCLDhCQUE4Qjt3QkFDOUIsNkJBQTZCO3dCQUM3QiwyQkFBMkI7d0JBQzNCLDJCQUEyQjt3QkFDM0Isa0JBQWtCO3dCQUNsQixrQkFBa0I7d0JBQ2xCLDZCQUE2QjtxQkFDaEM7OzBCQXVJSSxRQUFROzswQkFDUixRQUFRO3lDQWhJYixZQUFZO3NCQURYLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBa0UxQixXQUFXO3NCQUR0QixXQUFXO3VCQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBjb21wdXRlZCxcbiAgICBjb250ZW50Q2hpbGRyZW4sXG4gICAgRGVzdHJveVJlZixcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBpbnB1dCxcbiAgICBtb2RlbCxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgb3V0cHV0LFxuICAgIHNpZ25hbCxcbiAgICB2aWV3Q2hpbGQsXG4gICAgdmlld0NoaWxkcmVuLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgQ29udGVudERlbnNpdHlTZXJ2aWNlLCBOdWxsYWJsZSwgUnRsU2VydmljZSwgc2Nyb2xsVG9wIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgRkRfRFlOQU1JQ19QQUdFIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2R5bmFtaWMtcGFnZSc7XG5pbXBvcnQgeyBJY29uRm9udCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9pY29uJztcbmltcG9ydCB7IFNjcm9sbFNweURpcmVjdGl2ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9zY3JvbGwtc3B5JztcbmltcG9ydCB7IFNjcm9sbGJhckRpcmVjdGl2ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9zY3JvbGxiYXInO1xuaW1wb3J0IHsgRkRfVEFCTElTVCwgVGFiTGlzdCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9zaGFyZWQnO1xuaW1wb3J0IHsgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaXJzdCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEljb25UYWJCYXJCYXNlIH0gZnJvbSAnLi9jb21wb25lbnRzJztcbmltcG9ydCB7IEljb25UYWJCYXJGaWx0ZXJUeXBlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ljb24tdGFiLWJhci1maWx0ZXItdHlwZS9pY29uLXRhYi1iYXItZmlsdGVyLXR5cGUuY29tcG9uZW50JztcbmltcG9ydCB7IEljb25UYWJCYXJJY29uVHlwZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9pY29uLXRhYi1iYXItaWNvbi10eXBlL2ljb24tdGFiLWJhci1pY29uLXR5cGUuY29tcG9uZW50JztcbmltcG9ydCB7IEljb25UYWJCYXJQcm9jZXNzVHlwZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9pY29uLXRhYi1iYXItcHJvY2Vzcy10eXBlL2ljb24tdGFiLWJhci1wcm9jZXNzLXR5cGUuY29tcG9uZW50JztcbmltcG9ydCB7XG4gICAgSWNvblRhYkJhclRhYkNvbXBvbmVudCxcbiAgICBJY29uVGFiQmFyVGFiQ29udGVudERpcmVjdGl2ZVxufSBmcm9tICcuL2NvbXBvbmVudHMvaWNvbi10YWItYmFyLXRhYi9pY29uLXRhYi1iYXItdGFiLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJY29uVGFiQmFyVGV4dFR5cGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaWNvbi10YWItYmFyLXRleHQtdHlwZS9pY29uLXRhYi1iYXItdGV4dC10eXBlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVTklRVUVfS0VZX1NFUEFSQVRPUiB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IEljb25UYWJCYXJJdGVtIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2ljb24tdGFiLWJhci1pdGVtLmludGVyZmFjZSc7XG5pbXBvcnQgeyBUYWJDb2xvckFzc29jaWF0aW9ucyB9IGZyb20gJy4vaW50ZXJmYWNlcy90YWItY29sb3ItYXNzb2NpYXRpb25zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBUYWJDb25maWcgfSBmcm9tICcuL2ludGVyZmFjZXMvdGFiLWNvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSWNvblRhYkJhckJhY2tncm91bmQsIEljb25UYWJCYXJTaXplLCBUYWJEZXN0aW55TW9kZSwgVGFiVHlwZSB9IGZyb20gJy4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC1pY29uLXRhYi1iYXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pY29uLXRhYi1iYXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9pY29uLXRhYi1iYXIuY29tcG9uZW50LnNjc3MnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRkRfVEFCTElTVCxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBJY29uVGFiQmFyQ29tcG9uZW50XG4gICAgICAgIH1cbiAgICBdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICAgICAgSWNvblRhYkJhclByb2Nlc3NUeXBlQ29tcG9uZW50LFxuICAgICAgICBJY29uVGFiQmFyRmlsdGVyVHlwZUNvbXBvbmVudCxcbiAgICAgICAgSWNvblRhYkJhckljb25UeXBlQ29tcG9uZW50LFxuICAgICAgICBJY29uVGFiQmFyVGV4dFR5cGVDb21wb25lbnQsXG4gICAgICAgIFNjcm9sbGJhckRpcmVjdGl2ZSxcbiAgICAgICAgU2Nyb2xsU3B5RGlyZWN0aXZlLFxuICAgICAgICBJY29uVGFiQmFyVGFiQ29udGVudERpcmVjdGl2ZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgSWNvblRhYkJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgVGFiTGlzdCB7XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byBvcGVuIHRhYiBjb250ZW50IG9uZSB1bmRlciBhbm90aGVyIHdpdGhvdXQgY29sbGFwc2luZy5cbiAgICAgKiBXb3JrcyBvbmx5IGZvciBjb250ZW50LXByb2plY3RlZCB0YWIgY29udGVudC5cbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgICBzdGFja0NvbnRlbnQgPSBmYWxzZTtcblxuICAgIC8qKiBAZGVzY3JpcHRpb24gVHlwZSBvZiB0YWIgYmFyIHZpZXcuICovXG4gICAgaWNvblRhYlR5cGUgPSBpbnB1dDxUYWJUeXBlPigndGV4dCcpO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEEgdGFiIGJhciBjb25maWd1cmF0aW9uIHRoYXQgc3RvcmVzIHRoZSBzdGF0ZSBvZiBlYWNoIHRhYi4gQmFzZWQgb24gdGhpcyBjb25maWd1cmF0aW9uLCBhIHRhYiBiYXIgaXMgcmVwcmVzZW50aW5nLlxuICAgICAqL1xuICAgIHRhYnNDb25maWcgPSBtb2RlbDxUYWJDb25maWdbXT4oKTtcblxuICAgIC8qKiBAZGVzY3JpcHRpb24gRGVzdGlueSBtb2RlLiAqL1xuICAgIGRlbnNpdHlNb2RlID0gbW9kZWw8VGFiRGVzdGlueU1vZGU+KCdpbmhlcml0Jyk7XG5cbiAgICAvKiogQGRlc2NyaXB0aW9uIEljb24gZm9udCAqL1xuICAgIGljb25UYWJGb250ID0gaW5wdXQ8SWNvbkZvbnQ+KCdTQVAtaWNvbnMnKTtcblxuICAgIC8qKiBAZGVzY3JpcHRpb24gRGlzYWJsZSBvciBlbmFibGUgcmVvcmRlcmluZyhkcmFnIGFuZCBkcm9wKSBmZWF0dXJlLiAoc3VwcG9ydGVkIGJ5IHRleHQgdHlwZSBvbmx5KSAqL1xuICAgIGVuYWJsZVRhYlJlb3JkZXJpbmcgPSBpbnB1dChmYWxzZSk7XG5cbiAgICAvKiogQGRlc2NyaXB0aW9uIEJvb2xlYW4gZmxhZyBpbmRpY2F0aW5nIHRvIHNob3cgdG90YWwgdGFiLihzdXBwb3J0ZWQgYnkgZmlsdGVyIHR5cGUgb25seSkgKi9cbiAgICBzaG93VG90YWxUYWIgPSBpbnB1dCh0cnVlKTtcblxuICAgIC8qKiBXaGV0aGVyIHRvIHJlbmRlciBpY29uIHRhYiBpdGVtIGFzIG11bHRpLWNsaWNrIHZhcmlhbnQuICovXG4gICAgbXVsdGlDbGljayA9IGlucHV0KGZhbHNlKTtcblxuICAgIC8qKiBAZGVzY3JpcHRpb24gTGF5b3V0IHR5cGUgZm9yIHRhYiAoc3VwcG9ydGVkIGJ5IHRleHQgdHlwZSBvbmx5KSAqL1xuICAgIGxheW91dE1vZGUgPSBpbnB1dDwncm93JyB8ICdjb2x1bW4nPigncm93Jyk7XG5cbiAgICAvKiogQGRlc2NyaXB0aW9uIEljb24gdGFiIGJhciBiYWNrZ3JvdW5kIHR5cGUuICovXG4gICAgaWNvblRhYkJhY2tncm91bmQgPSBpbnB1dDxJY29uVGFiQmFyQmFja2dyb3VuZD4oJ3NvbGlkJyk7XG5cbiAgICAvKiogQGRlc2NyaXB0aW9uIEljb24gdGFiIGJhciBzaXplLiAqL1xuICAgIGljb25UYWJTaXplID0gaW5wdXQ8SWNvblRhYkJhclNpemU+KCk7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQXNzb2NpYXRpb25zIGZvciBjb2xvcnMgb2YgdGhlIHRhYnMuXG4gICAgICogSWYgYW55IG9mIHRoZSBjb2xvciBhc3NvY2lhdGlvbnMgcHJvdmlkZWQsIHRoZXknbGwgYmUgcmVhZCBieSBzY3JlZW5yZWFkZXIgaW5zdGVhZCBvZiB0aGUgYWN0dWFsIGNvbG9yXG4gICAgICovXG4gICAgY29sb3JBc3NvY2lhdGlvbnMgPSBpbnB1dDxUYWJDb2xvckFzc29jaWF0aW9ucz4oKTtcblxuICAgIC8qKlxuICAgICAqIE1heGltdW0gaGVpZ2h0IG9mIHRoZSBjb250ZW50LlxuICAgICAqIFdvcmtzIG9ubHkgZm9yIGNvbnRlbnQtcHJvamVjdGVkIHRhYiBjb250ZW50LlxuICAgICAqL1xuICAgIG1heENvbnRlbnRIZWlnaHQgPSBpbnB1dCgnMTAwJScpO1xuXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBFbWl0cyB3aGVuIHNvbWUgdGFiIGlzIHNlbGVjdGVkLiAqL1xuICAgIGljb25UYWJTZWxlY3RlZCA9IG91dHB1dDxJY29uVGFiQmFySXRlbT4oKTtcblxuICAgIC8qKiBAZGVzY3JpcHRpb24gRW1pdHMgd2hlbiB1c2VyIGRyb3AgdGFiLiAqL1xuICAgIGljb25UYWJSZW9yZGVyZWQgPSBvdXRwdXQ8SWNvblRhYkJhckl0ZW1bXT4oKTtcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gdXNlciBjbGlja3Mgb24geCBpY29uIGluIHRhYi4gKi9cbiAgICBjbG9zZVRhYiA9IG91dHB1dDxJY29uVGFiQmFySXRlbT4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY2hpbGRyZW4gPSBjb250ZW50Q2hpbGRyZW4oSWNvblRhYkJhclRhYkNvbXBvbmVudCwgeyBkZXNjZW5kYW50czogZmFsc2UgfSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9zY3JvbGxiYXIgPSB2aWV3Q2hpbGQoU2Nyb2xsYmFyRGlyZWN0aXZlKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgdGFiRGlyZWN0aXZlcyA9IHZpZXdDaGlsZHJlbihJY29uVGFiQmFyVGFiQ29udGVudERpcmVjdGl2ZSk7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkLXRhYnMtY3VzdG9tJylcbiAgICBwcml2YXRlIGdldCBfY3VzdG9tVGFicygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2luRHluYW1pY1BhZ2U7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXQgaGVhZGVyQ29udGFpbmVyKCk6IE51bGxhYmxlPEVsZW1lbnRSZWY+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ljb25UYWJCYXJDbXAoKT8uaGVhZGVyRWxlbWVudDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9jc3NDbGFzc0ZvckNvbnRhaW5lcjogc3RyaW5nW107XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9kaXNhYmxlU2Nyb2xsU3B5ID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9pbml0ID0gdHJ1ZTtcblxuICAgIC8qKiBTY3JvbGxhYmxlIGVsZW1lbnQgcmVmZXJlbmNlLiAqL1xuICAgIGdldCBzY3JvbGxhYmxlRWxlbWVudCgpOiBOdWxsYWJsZTxFbGVtZW50UmVmPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zY3JvbGxiYXIoKT8uZWxlbWVudFJlZjtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IF9zZWxlY3RlZFVpZCA9IHNpZ25hbDxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IF90YWJzJCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX2dlbmVyYXRlVGFiQmFySXRlbXModGhpcy5fdGFic0NvbmZpZyQoKSkpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBfZmxhdFRhYnMkID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fZ2VuZXJhdGVGbGF0VGFicyh0aGlzLl90YWJzJCgpKSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IF90YWJSZW5kZXJlciQgPSBzaWduYWw8SWNvblRhYkJhckl0ZW0gfCBudWxsPihudWxsKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgX3J0bCQgPSBjb21wdXRlZCgoKSA9PiAhIXRoaXMuX3J0bFNlcnZpY2U/LnJ0bFNpZ25hbCgpKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgX3RhYnNDb25maWckID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCB0YWJDb25maWcgPSB0aGlzLnRhYnNDb25maWcoKTtcbiAgICAgICAgaWYgKHRhYkNvbmZpZykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudGFic0NvbmZpZygpIGFzIFRhYkNvbmZpZ1tdO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY2hpbGRyZW4gPSB0aGlzLmNoaWxkcmVuKCk7XG4gICAgICAgIGlmICghY2hpbGRyZW4pIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2hpbGRyZW4ubWFwKCh0KSA9PiB0aGlzLl9nZW5lcmF0ZVRhYkNvbmZpZyh0KSk7XG4gICAgfSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9pbkR5bmFtaWNQYWdlID0gISFpbmplY3QoRkRfRFlOQU1JQ19QQUdFLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBfaWNvblRhYkJhckNtcCA9IHZpZXdDaGlsZDxOdWxsYWJsZTxJY29uVGFiQmFyQmFzZT4+KEljb25UYWJCYXJCYXNlKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX2NkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfY29udGVudERlbnNpdHlTZXJ2aWNlOiBDb250ZW50RGVuc2l0eVNlcnZpY2UsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX3J0bFNlcnZpY2U6IFJ0bFNlcnZpY2VcbiAgICApIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jc3NDbGFzc0ZvckNvbnRhaW5lciA9IHRoaXMuX2dlbmVyYXRlQ29udGFpbmVyU3R5bGVzKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuZGVuc2l0eU1vZGUoKSA9PT0gJ2luaGVyaXQnKSB7XG4gICAgICAgICAgICB0aGlzLl9jb250ZW50RGVuc2l0eVNlcnZpY2U/Ll9jb250ZW50RGVuc2l0eUxpc3RlbmVyXG4gICAgICAgICAgICAgICAgLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGRlbnNpdHkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZW5zaXR5TW9kZS5zZXQoZGVuc2l0eSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChkZW5zaXR5ICE9PSAnY29tcGFjdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2Nzc0NsYXNzRm9yQ29udGFpbmVyID0gdGhpcy5fY3NzQ2xhc3NGb3JDb250YWluZXIuZmlsdGVyKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjc3NDbGFzcykgPT4gY3NzQ2xhc3MgIT09ICdmZC1pY29uLXRhYi1iYXItLWNvbXBhY3QnXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3NzQ2xhc3NGb3JDb250YWluZXIucHVzaCgnZmQtaWNvbi10YWItYmFyLS1jb21wYWN0Jyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBwYXJhbSBldmVudCByZW9yZGVyZWQgYXJyYXkgb2YgSWNvblRhYkJhckl0ZW1cbiAgICAgKi9cbiAgICBfb25SZW9yZGVyKGV2ZW50OiBJY29uVGFiQmFySXRlbVtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaWNvblRhYlJlb3JkZXJlZC5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQHBhcmFtIHNlbGVjdGVkSXRlbVxuICAgICAqL1xuICAgIF9zZWxlY3RJdGVtKHNlbGVjdGVkSXRlbTogSWNvblRhYkJhckl0ZW0pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGFiUmVuZGVyZXIkLnNldChzZWxlY3RlZEl0ZW0pO1xuICAgICAgICB0aGlzLmljb25UYWJTZWxlY3RlZC5lbWl0KHNlbGVjdGVkSXRlbSk7XG5cbiAgICAgICAgaWYgKHRoaXMuc3RhY2tDb250ZW50KSB7XG4gICAgICAgICAgICB0aGlzLl9zY3JvbGxUb1BhbmVsKHRoaXMudGFiRGlyZWN0aXZlcygpLmZpbmQoKHRhYikgPT4gdGFiLnVJZCgpID09PSBzZWxlY3RlZEl0ZW0udUlkKSEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfY2xvc2VUYWIoaXRlbTogSWNvblRhYkJhckl0ZW0pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jbG9zZVRhYi5lbWl0KGl0ZW0pO1xuICAgIH1cblxuICAgIC8qKiBQcm9ncmFtbWF0aWNhbGx5IHNlbGVjdCB0YWIuICovXG4gICAgc2VsZWN0VGFiKGlkOiBOdWxsYWJsZTxzdHJpbmc+KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbSA9IHRoaXMuX2ZsYXRUYWJzJCgpLmZpbmQoKHQpID0+IHQuaWQgPT09IGlkKTtcbiAgICAgICAgaWYgKCFzZWxlY3RlZEl0ZW0pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9zZWxlY3RlZFVpZC5zZXQoc2VsZWN0ZWRJdGVtLnVJZCk7XG4gICAgICAgIHRoaXMuX3NlbGVjdEl0ZW0oc2VsZWN0ZWRJdGVtKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGhpZ2hsaWdodEFjdGl2ZVRhYihpZDogTnVsbGFibGU8c3RyaW5nPiwgc2Nyb2xsID0gZmFsc2UpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2Rpc2FibGVTY3JvbGxTcHkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhY3RpdmVUYWIgPSB0aGlzLnRhYkRpcmVjdGl2ZXMoKS5maW5kKCh0YWIpID0+IHRhYi5pZCgpID09PSBpZCk7XG4gICAgICAgIHRoaXMuX3NlbGVjdGVkVWlkLnNldChhY3RpdmVUYWI/LnVJZCgpIHx8IHVuZGVmaW5lZCk7XG4gICAgICAgIGlmIChzY3JvbGwgJiYgYWN0aXZlVGFiKSB7XG4gICAgICAgICAgICB0aGlzLl9zY3JvbGxUb1BhbmVsKGFjdGl2ZVRhYik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQHJldHVybnMgYXJyYXkgb2YgY3NzIGNsYXNzZXMgZm9yIGljb24tdGFiLWJhciBjb250YWluZXJcbiAgICAgKi9cbiAgICBwcml2YXRlIF9nZW5lcmF0ZUNvbnRhaW5lclN0eWxlcygpOiBzdHJpbmdbXSB7XG4gICAgICAgIGNvbnN0IHN0eWxlcyA9IFtgZmQtaWNvbi10YWItYmFyLS0ke3RoaXMuaWNvblRhYlR5cGUoKX1gXTtcbiAgICAgICAgY29uc3QgdGFic0NvbmZpZyA9IHRoaXMudGFic0NvbmZpZygpO1xuICAgICAgICBpZiAodGFic0NvbmZpZyAmJiB0aGlzLmljb25UYWJUeXBlKCkgPT09ICdwcm9jZXNzJyAmJiB0YWJzQ29uZmlnWzBdLmljb24pIHtcbiAgICAgICAgICAgIHN0eWxlcy5wdXNoKCdmZC1pY29uLXRhYi1iYXItLWljb24nKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5pY29uVGFiQmFja2dyb3VuZCgpICE9PSAnc29saWQnKSB7XG4gICAgICAgICAgICBzdHlsZXMucHVzaChgZmQtaWNvbi10YWItYmFyLS0ke3RoaXMuaWNvblRhYkJhY2tncm91bmQoKX1gKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5pY29uVGFiU2l6ZSgpKSB7XG4gICAgICAgICAgICBzdHlsZXMucHVzaChgZmQtaWNvbi10YWItYmFyLS0ke3RoaXMuaWNvblRhYlNpemUoKSF9YCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuZGVuc2l0eU1vZGUoKSA9PT0gJ2NvbXBhY3QnKSB7XG4gICAgICAgICAgICBzdHlsZXMucHVzaCgnZmQtaWNvbi10YWItYmFyLS1jb21wYWN0Jyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMubGF5b3V0TW9kZSgpID09PSAnY29sdW1uJykge1xuICAgICAgICAgICAgc3R5bGVzLnB1c2goJ2ZkLWljb24tdGFiLWJhci0tY291bnRlcnMnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc3R5bGVzO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2dlbmVyYXRlVGFiQ29uZmlnKHRhYjogSWNvblRhYkJhclRhYkNvbXBvbmVudCk6IFRhYkNvbmZpZyB7XG4gICAgICAgIGNvbnN0IHRhYkNvbmZpZzogVGFiQ29uZmlnID0ge1xuICAgICAgICAgICAgbGFiZWw6IHRhYi5sYWJlbCgpLFxuICAgICAgICAgICAgY29sb3I6IHRhYi5jb2xvcigpLFxuICAgICAgICAgICAgYWN0aXZlOiB0YWIuYWN0aXZlKCksXG4gICAgICAgICAgICBiYWRnZTogdGFiLmJhZGdlKCksXG4gICAgICAgICAgICBjb3VudGVyOiB0YWIuY291bnRlcigpLFxuICAgICAgICAgICAgcmVuZGVyZXI6IHRhYi5yZW5kZXJlcigpLFxuICAgICAgICAgICAgaWQ6IHRhYi5pZCgpLFxuICAgICAgICAgICAgdGl0bGVUZW1wbGF0ZTogdGFiLnRpdGxlVGVtcGxhdGUoKSxcbiAgICAgICAgICAgIHN1Ykl0ZW1zOiB0YWIuY2hpbGRyZW4oKS5tYXAoKGMpID0+IHRoaXMuX2dlbmVyYXRlVGFiQ29uZmlnKGMpKVxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiB0YWJDb25maWc7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zY3JvbGxUb1BhbmVsKHRhYlBhbmVsOiBOdWxsYWJsZTxJY29uVGFiQmFyVGFiQ29udGVudERpcmVjdGl2ZT4pOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0YWJQYW5lbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNjcm9sbGJhciA9IHRoaXMuX3Njcm9sbGJhcigpO1xuICAgICAgICBpZiAoIXNjcm9sbGJhcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBhbmVsRWxlbWVudCA9IHRhYlBhbmVsLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3QgY29udGFpbmVyRWxlbWVudCA9IHNjcm9sbGJhci5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGRpc3RhbmNlVG9TY3JvbGwgPSBwYW5lbEVsZW1lbnQub2Zmc2V0VG9wIC0gY29udGFpbmVyRWxlbWVudC5vZmZzZXRUb3A7XG4gICAgICAgIGNvbnN0IG1heGltdW1TY3JvbGxUb3AgPSBjb250YWluZXJFbGVtZW50LnNjcm9sbEhlaWdodCAtIGNvbnRhaW5lckVsZW1lbnQuY2xpZW50SGVpZ2h0O1xuICAgICAgICBjb25zdCBjdXJyZW50U2Nyb2xsUG9zaXRpb24gPSBNYXRoLmNlaWwoY29udGFpbmVyRWxlbWVudC5zY3JvbGxUb3ApO1xuXG4gICAgICAgIGlmICghKGN1cnJlbnRTY3JvbGxQb3NpdGlvbiA9PT0gbWF4aW11bVNjcm9sbFRvcCAmJiBkaXN0YW5jZVRvU2Nyb2xsID4gbWF4aW11bVNjcm9sbFRvcCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2Rpc2FibGVTY3JvbGxTcHkgPSB0cnVlO1xuICAgICAgICAgICAgZnJvbUV2ZW50KGNvbnRhaW5lckVsZW1lbnQsICdzY3JvbGwnKVxuICAgICAgICAgICAgICAgIC5waXBlKGRlYm91bmNlVGltZSgxMDApLCBmaXJzdCgpLCB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiAodGhpcy5fZGlzYWJsZVNjcm9sbFNweSA9IGZhbHNlKSk7XG4gICAgICAgICAgICBzY3JvbGxUb3AoY29udGFpbmVyRWxlbWVudCwgZGlzdGFuY2VUb1Njcm9sbCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGRlc2NyaXB0aW9uIGdlbmVyYXRlIEljb25UYWJJdGVtcyBmcm9tIFRhYkNvbmZpZyBhcnJheVxuICAgICAqL1xuICAgIHByaXZhdGUgX2dlbmVyYXRlVGFiQmFySXRlbXMoXG4gICAgICAgIGNvbmZpZzogVGFiQ29uZmlnW10sXG4gICAgICAgIGluZGV4UHJlZml4ID0gJycsXG4gICAgICAgIGZsYXRJbmRleFJlZj86IEZsYXRJbmRleCxcbiAgICAgICAgcGFyZW50VUlkPzogc3RyaW5nXG4gICAgKTogSWNvblRhYkJhckl0ZW1bXSB7XG4gICAgICAgIGZsYXRJbmRleFJlZiA9IGZsYXRJbmRleFJlZiB8fCB7IHZhbHVlOiAwIH07XG4gICAgICAgIHJldHVybiBjb25maWcubWFwKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdUlkID0gYCR7aW5kZXhQcmVmaXh9JHtpbmRleH1gO1xuICAgICAgICAgICAgaWYgKCEoJ2NvbG9yJyBpbiBpdGVtKSkge1xuICAgICAgICAgICAgICAgIGl0ZW0uY29sb3IgPSAnZGVmYXVsdCc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCByZXN1bHQ6IEljb25UYWJCYXJJdGVtID0ge1xuICAgICAgICAgICAgICAgIC4uLml0ZW0sXG4gICAgICAgICAgICAgICAgaW5kZXgsXG4gICAgICAgICAgICAgICAgY3NzQ2xhc3NlczogW10sXG4gICAgICAgICAgICAgICAgdUlkLFxuICAgICAgICAgICAgICAgIGhpZGRlbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgcGFyZW50VUlkLFxuICAgICAgICAgICAgICAgIGZsYXRJbmRleDogZmxhdEluZGV4UmVmIS52YWx1ZSsrLFxuICAgICAgICAgICAgICAgIHN1Ykl0ZW1zOiB0aGlzLl9nZW5lcmF0ZVRhYkJhckl0ZW1zKFxuICAgICAgICAgICAgICAgICAgICBpdGVtLnN1Ykl0ZW1zIHx8IFtdLFxuICAgICAgICAgICAgICAgICAgICBgJHt1SWR9JHtVTklRVUVfS0VZX1NFUEFSQVRPUn1gLFxuICAgICAgICAgICAgICAgICAgICBmbGF0SW5kZXhSZWYsXG4gICAgICAgICAgICAgICAgICAgIHVJZFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAoaXRlbS5jb2xvcikge1xuICAgICAgICAgICAgICAgIHJlc3VsdC5jc3NDbGFzc2VzID0gW2BmZC1pY29uLXRhYi1iYXJfX2l0ZW0tLSR7aXRlbS5jb2xvcn1gXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2dlbmVyYXRlRmxhdFRhYnModGFiczogSWNvblRhYkJhckl0ZW1bXSk6IEljb25UYWJCYXJJdGVtW10ge1xuICAgICAgICBjb25zdCBmbGF0VGFicyA9IHRhYnMucmVkdWNlKChhY2M6IEljb25UYWJCYXJJdGVtW10sIHRhYikgPT4ge1xuICAgICAgICAgICAgYWNjLnB1c2godGFiKTtcbiAgICAgICAgICAgIGlmICh0YWIuc3ViSXRlbXMpIHtcbiAgICAgICAgICAgICAgICBhY2MucHVzaCguLi50aGlzLl9nZW5lcmF0ZUZsYXRUYWJzKHRhYi5zdWJJdGVtcykpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSwgW10pO1xuXG4gICAgICAgIHJldHVybiBmbGF0VGFicztcbiAgICB9XG59XG5cbi8qKiBAaGlkZGVuIGhlbHBlciBvYmplY3QgdGhhdCBpcyB1c2VkIGluIHRhYiBnZW5lcmF0aW9uIGZ1bmN0aW9ucyB0byBjYWxjdWxhdGUgdGhlaXIgaW5kZXhlcyBub3QgZGVwZW5kaW5nIG9uIGxldmVsIG9mIG5lc3RpbmcgKi9cbmludGVyZmFjZSBGbGF0SW5kZXgge1xuICAgIHZhbHVlOiBudW1iZXI7XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmQtaWNvbi10YWItYmFyXCIgW2NsYXNzXT1cIl9jc3NDbGFzc0ZvckNvbnRhaW5lclwiPlxuICAgIEBpZiAoaWNvblRhYlR5cGUoKSA9PT0gJ3RleHQnKSB7XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJ0ZXh0VHlwZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgfVxuICAgIEBpZiAoaWNvblRhYlR5cGUoKSA9PT0gJ2ljb24nIHx8IGljb25UYWJUeXBlKCkgPT09ICdpY29uLW9ubHknKSB7XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJpY29uVHlwZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgfVxuICAgIEBpZiAoaWNvblRhYlR5cGUoKSA9PT0gJ2ZpbHRlcicpIHtcbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImZpbHRlclR5cGVcIj48L25nLXRlbXBsYXRlPlxuICAgIH1cbiAgICBAaWYgKGljb25UYWJUeXBlKCkgPT09ICdwcm9jZXNzJykge1xuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwicHJvY2Vzc1R5cGVcIj48L25nLXRlbXBsYXRlPlxuICAgIH1cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX19jb250ZW50XCJcbiAgICAgICAgZmQtc2Nyb2xsYmFyXG4gICAgICAgIChzcHlDaGFuZ2UpPVwiaGlnaGxpZ2h0QWN0aXZlVGFiKCRldmVudC5pZClcIlxuICAgICAgICBbc2Nyb2xsU3B5RGlzYWJsZWRdPVwiIXN0YWNrQ29udGVudCB8fCBfZGlzYWJsZVNjcm9sbFNweVwiXG4gICAgICAgIGZkU2Nyb2xsU3B5XG4gICAgICAgIFt0cmFja2VkVGFnc109XCJbJ2ZkcC1pY29uLXRhYi1iYXItdGFiLWNvbnRlbnQnXVwiXG4gICAgICAgIFtzdHlsZS5tYXgtaGVpZ2h0XT1cIm1heENvbnRlbnRIZWlnaHQoKVwiXG4gICAgPlxuICAgICAgICBAaWYgKHN0YWNrQ29udGVudCkge1xuICAgICAgICAgICAgQGZvciAodGFiIG9mIF9mbGF0VGFicyQoKTsgdHJhY2sgdGFiKSB7XG4gICAgICAgICAgICAgICAgPGZkcC1pY29uLXRhYi1iYXItdGFiLWNvbnRlbnQgW2lkXT1cInRhYi5pZFwiIFt1SWRdPVwidGFiLnVJZFwiIGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX190YWItY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwidGFiLnJlbmRlcmVyIHx8IG51bGxcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvZmRwLWljb24tdGFiLWJhci10YWItY29udGVudD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBAaWYgKF90YWJSZW5kZXJlciQoKTsgYXMgdGFiUmVuZGVyZXIpIHtcbiAgICAgICAgICAgICAgICA8ZmRwLWljb24tdGFiLWJhci10YWItY29udGVudFxuICAgICAgICAgICAgICAgICAgICBbaWRdPVwidGFiUmVuZGVyZXIuaWRcIlxuICAgICAgICAgICAgICAgICAgICBbdUlkXT1cInRhYlJlbmRlcmVyLnVJZFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX190YWItY29udGVudFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwidGFiUmVuZGVyZXIucmVuZGVyZXIgfHwgbnVsbFwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9mZHAtaWNvbi10YWItYmFyLXRhYi1jb250ZW50PlxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltmZHBJY29uVGFiQmFyRnJlZUNvbnRlbnRdXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuPC9kaXY+XG48bmctdGVtcGxhdGUgI3Byb2Nlc3NUeXBlPlxuICAgIDxmZHAtaWNvbi10YWItYmFyLXByb2Nlc3MtdHlwZVxuICAgICAgICBbdGFic109XCJfdGFicyQoKVwiXG4gICAgICAgIFtpc1J0bF09XCJfcnRsJCgpXCJcbiAgICAgICAgW3NlbGVjdGVkVWlkXT1cIl9zZWxlY3RlZFVpZCgpXCJcbiAgICAgICAgKHNlbGVjdGVkVWlkQ2hhbmdlKT1cIl9zZWxlY3RlZFVpZC5zZXQoJGV2ZW50KVwiXG4gICAgICAgIFtkZW5zaXR5TW9kZV09XCJkZW5zaXR5TW9kZSgpXCJcbiAgICAgICAgW2NvbG9yQXNzb2NpYXRpb25zXT1cImNvbG9yQXNzb2NpYXRpb25zKClcIlxuICAgICAgICAoc2VsZWN0ZWQpPVwiX3NlbGVjdEl0ZW0oJGV2ZW50KVwiXG4gICAgPjwvZmRwLWljb24tdGFiLWJhci1wcm9jZXNzLXR5cGU+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNmaWx0ZXJUeXBlPlxuICAgIDxmZHAtaWNvbi10YWItYmFyLWZpbHRlci10eXBlXG4gICAgICAgIFt0YWJzXT1cIl90YWJzJCgpXCJcbiAgICAgICAgW3Nob3dUb3RhbFRhYl09XCJzaG93VG90YWxUYWIoKVwiXG4gICAgICAgIFtpc1J0bF09XCJfcnRsJCgpXCJcbiAgICAgICAgW3NlbGVjdGVkVWlkXT1cIl9zZWxlY3RlZFVpZCgpXCJcbiAgICAgICAgKHNlbGVjdGVkVWlkQ2hhbmdlKT1cIl9zZWxlY3RlZFVpZC5zZXQoJGV2ZW50KVwiXG4gICAgICAgIFtkZW5zaXR5TW9kZV09XCJkZW5zaXR5TW9kZSgpXCJcbiAgICAgICAgW2NvbG9yQXNzb2NpYXRpb25zXT1cImNvbG9yQXNzb2NpYXRpb25zKClcIlxuICAgICAgICAoc2VsZWN0ZWQpPVwiX3NlbGVjdEl0ZW0oJGV2ZW50KVwiXG4gICAgPjwvZmRwLWljb24tdGFiLWJhci1maWx0ZXItdHlwZT5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2ljb25UeXBlPlxuICAgIDxmZHAtaWNvbi10YWItYmFyLWljb24tdHlwZVxuICAgICAgICBbc2hvd0xhYmVsXT1cImljb25UYWJUeXBlKCkgPT09ICdpY29uJ1wiXG4gICAgICAgIFt0YWJzXT1cIl90YWJzJCgpXCJcbiAgICAgICAgW2lzUnRsXT1cIl9ydGwkKClcIlxuICAgICAgICBbc2VsZWN0ZWRVaWRdPVwiX3NlbGVjdGVkVWlkKClcIlxuICAgICAgICAoc2VsZWN0ZWRVaWRDaGFuZ2UpPVwiX3NlbGVjdGVkVWlkLnNldCgkZXZlbnQpXCJcbiAgICAgICAgW2RlbnNpdHlNb2RlXT1cImRlbnNpdHlNb2RlKClcIlxuICAgICAgICBbY29sb3JBc3NvY2lhdGlvbnNdPVwiY29sb3JBc3NvY2lhdGlvbnMoKVwiXG4gICAgICAgIChzZWxlY3RlZCk9XCJfc2VsZWN0SXRlbSgkZXZlbnQpXCJcbiAgICAgICAgKGNsb3NlVGFiKT1cIl9jbG9zZVRhYigkZXZlbnQpXCJcbiAgICA+PC9mZHAtaWNvbi10YWItYmFyLWljb24tdHlwZT5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI3RleHRUeXBlPlxuICAgIDxmZHAtaWNvbi10YWItYmFyLXRleHQtdHlwZVxuICAgICAgICBbdGFic109XCJfdGFicyQoKVwiXG4gICAgICAgIFttdWx0aUNsaWNrXT1cIm11bHRpQ2xpY2soKVwiXG4gICAgICAgIFtsYXlvdXRNb2RlXT1cImxheW91dE1vZGUoKVwiXG4gICAgICAgIFtpc1J0bF09XCJfcnRsJCgpXCJcbiAgICAgICAgW3NlbGVjdGVkVWlkXT1cIl9zZWxlY3RlZFVpZCgpXCJcbiAgICAgICAgKHNlbGVjdGVkVWlkQ2hhbmdlKT1cIl9zZWxlY3RlZFVpZC5zZXQoJGV2ZW50KVwiXG4gICAgICAgIFtkZW5zaXR5TW9kZV09XCJkZW5zaXR5TW9kZSgpXCJcbiAgICAgICAgW2VuYWJsZVRhYlJlb3JkZXJpbmddPVwiZW5hYmxlVGFiUmVvcmRlcmluZygpXCJcbiAgICAgICAgW2NvbG9yQXNzb2NpYXRpb25zXT1cImNvbG9yQXNzb2NpYXRpb25zKClcIlxuICAgICAgICAocmVvcmRlcmVkKT1cIl9vblJlb3JkZXIoJGV2ZW50KVwiXG4gICAgICAgIChzZWxlY3RlZCk9XCJfc2VsZWN0SXRlbSgkZXZlbnQpXCJcbiAgICAgICAgKGNsb3NlVGFiKT1cIl9jbG9zZVRhYigkZXZlbnQpXCJcbiAgICA+PC9mZHAtaWNvbi10YWItYmFyLXRleHQtdHlwZT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
305
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi10YWItYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vaWNvbi10YWItYmFyL2ljb24tdGFiLWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2ljb24tdGFiLWJhci9pY29uLXRhYi1iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUNILGdCQUFnQixFQUNoQix1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsZUFBZSxFQUNmLFVBQVUsRUFFVixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxLQUFLLEVBQ0wsS0FBSyxFQUVMLFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxFQUNOLFNBQVMsRUFDVCxZQUFZLEVBQ1osaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBWSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRXJFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxVQUFVLEVBQVcsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7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Qiw2QkFBNkIsbUdBQzdCLDJCQUEyQiw4RkFDM0IsMkJBQTJCLDRKQUMzQixrQkFBa0IsK0lBQ2xCLGtCQUFrQix5TUFDbEIsNkJBQTZCOzsyRkFHeEIsbUJBQW1CO2tCQXhCL0IsU0FBUzsrQkFDSSxrQkFBa0IsbUJBR1gsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxjQUN6QixJQUFJLGFBQ0w7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLFVBQVU7NEJBQ25CLFdBQVcscUJBQXFCO3lCQUNuQztxQkFDSixXQUNRO3dCQUNMLGdCQUFnQjt3QkFDaEIsOEJBQThCO3dCQUM5Qiw2QkFBNkI7d0JBQzdCLDJCQUEyQjt3QkFDM0IsMkJBQTJCO3dCQUMzQixrQkFBa0I7d0JBQ2xCLGtCQUFrQjt3QkFDbEIsNkJBQTZCO3FCQUNoQzs7MEJBdUlJLFFBQVE7OzBCQUNSLFFBQVE7eUNBaEliLFlBQVk7c0JBRFgsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFrRTFCLFdBQVc7c0JBRHRCLFdBQVc7dUJBQUMsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIGJvb2xlYW5BdHRyaWJ1dGUsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIGNvbXB1dGVkLFxuICAgIGNvbnRlbnRDaGlsZHJlbixcbiAgICBEZXN0cm95UmVmLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIGlucHV0LFxuICAgIG1vZGVsLFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBvdXRwdXQsXG4gICAgc2lnbmFsLFxuICAgIHZpZXdDaGlsZCxcbiAgICB2aWV3Q2hpbGRyZW4sXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eVNlcnZpY2UsIE51bGxhYmxlLCBSdGxTZXJ2aWNlLCBzY3JvbGxUb3AgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBGRF9EWU5BTUlDX1BBR0UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZHluYW1pYy1wYWdlJztcbmltcG9ydCB7IEljb25Gb250IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2ljb24nO1xuaW1wb3J0IHsgU2Nyb2xsU3B5RGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3Njcm9sbC1zcHknO1xuaW1wb3J0IHsgU2Nyb2xsYmFyRGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3Njcm9sbGJhcic7XG5pbXBvcnQgeyBGRF9UQUJMSVNULCBUYWJMaXN0IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3NoYXJlZCc7XG5pbXBvcnQgeyBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpcnN0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgSWNvblRhYkJhckJhc2UgfSBmcm9tICcuL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgSWNvblRhYkJhckZpbHRlclR5cGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaWNvbi10YWItYmFyLWZpbHRlci10eXBlL2ljb24tdGFiLWJhci1maWx0ZXItdHlwZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWNvblRhYkJhckljb25UeXBlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ljb24tdGFiLWJhci1pY29uLXR5cGUvaWNvbi10YWItYmFyLWljb24tdHlwZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWNvblRhYkJhclByb2Nlc3NUeXBlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ljb24tdGFiLWJhci1wcm9jZXNzLXR5cGUvaWNvbi10YWItYmFyLXByb2Nlc3MtdHlwZS5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgICBJY29uVGFiQmFyVGFiQ29tcG9uZW50LFxuICAgIEljb25UYWJCYXJUYWJDb250ZW50RGlyZWN0aXZlXG59IGZyb20gJy4vY29tcG9uZW50cy9pY29uLXRhYi1iYXItdGFiL2ljb24tdGFiLWJhci10YWIuY29tcG9uZW50JztcbmltcG9ydCB7IEljb25UYWJCYXJUZXh0VHlwZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9pY29uLXRhYi1iYXItdGV4dC10eXBlL2ljb24tdGFiLWJhci10ZXh0LXR5cGUuY29tcG9uZW50JztcbmltcG9ydCB7IFVOSVFVRV9LRVlfU0VQQVJBVE9SIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgSWNvblRhYkJhckl0ZW0gfSBmcm9tICcuL2ludGVyZmFjZXMvaWNvbi10YWItYmFyLWl0ZW0uaW50ZXJmYWNlJztcbmltcG9ydCB7IFRhYkNvbG9yQXNzb2NpYXRpb25zIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3RhYi1jb2xvci1hc3NvY2lhdGlvbnMuaW50ZXJmYWNlJztcbmltcG9ydCB7IFRhYkNvbmZpZyB9IGZyb20gJy4vaW50ZXJmYWNlcy90YWItY29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJY29uVGFiQmFyQmFja2dyb3VuZCwgSWNvblRhYkJhclNpemUsIFRhYkRlc3RpbnlNb2RlLCBUYWJUeXBlIH0gZnJvbSAnLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRwLWljb24tdGFiLWJhcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ljb24tdGFiLWJhci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2ljb24tdGFiLWJhci5jb21wb25lbnQuc2NzcycsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGRF9UQUJMSVNULFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IEljb25UYWJCYXJDb21wb25lbnRcbiAgICAgICAgfVxuICAgIF0sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgICAgICBJY29uVGFiQmFyUHJvY2Vzc1R5cGVDb21wb25lbnQsXG4gICAgICAgIEljb25UYWJCYXJGaWx0ZXJUeXBlQ29tcG9uZW50LFxuICAgICAgICBJY29uVGFiQmFySWNvblR5cGVDb21wb25lbnQsXG4gICAgICAgIEljb25UYWJCYXJUZXh0VHlwZUNvbXBvbmVudCxcbiAgICAgICAgU2Nyb2xsYmFyRGlyZWN0aXZlLFxuICAgICAgICBTY3JvbGxTcHlEaXJlY3RpdmUsXG4gICAgICAgIEljb25UYWJCYXJUYWJDb250ZW50RGlyZWN0aXZlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBJY29uVGFiQmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBUYWJMaXN0IHtcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRvIG9wZW4gdGFiIGNvbnRlbnQgb25lIHVuZGVyIGFub3RoZXIgd2l0aG91dCBjb2xsYXBzaW5nLlxuICAgICAqIFdvcmtzIG9ubHkgZm9yIGNvbnRlbnQtcHJvamVjdGVkIHRhYiBjb250ZW50LlxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICAgIHN0YWNrQ29udGVudCA9IGZhbHNlO1xuXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBUeXBlIG9mIHRhYiBiYXIgdmlldy4gKi9cbiAgICBpY29uVGFiVHlwZSA9IGlucHV0PFRhYlR5cGU+KCd0ZXh0Jyk7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQSB0YWIgYmFyIGNvbmZpZ3VyYXRpb24gdGhhdCBzdG9yZXMgdGhlIHN0YXRlIG9mIGVhY2ggdGFiLiBCYXNlZCBvbiB0aGlzIGNvbmZpZ3VyYXRpb24sIGEgdGFiIGJhciBpcyByZXByZXNlbnRpbmcuXG4gICAgICovXG4gICAgdGFic0NvbmZpZyA9IG1vZGVsPFRhYkNvbmZpZ1tdPigpO1xuXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBEZXN0aW55IG1vZGUuICovXG4gICAgZGVuc2l0eU1vZGUgPSBtb2RlbDxUYWJEZXN0aW55TW9kZT4oJ2luaGVyaXQnKTtcblxuICAgIC8qKiBAZGVzY3JpcHRpb24gSWNvbiBmb250ICovXG4gICAgaWNvblRhYkZvbnQgPSBpbnB1dDxJY29uRm9udD4oJ1NBUC1pY29ucycpO1xuXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBEaXNhYmxlIG9yIGVuYWJsZSByZW9yZGVyaW5nKGRyYWcgYW5kIGRyb3ApIGZlYXR1cmUuIChzdXBwb3J0ZWQgYnkgdGV4dCB0eXBlIG9ubHkpICovXG4gICAgZW5hYmxlVGFiUmVvcmRlcmluZyA9IGlucHV0KGZhbHNlKTtcblxuICAgIC8qKiBAZGVzY3JpcHRpb24gQm9vbGVhbiBmbGFnIGluZGljYXRpbmcgdG8gc2hvdyB0b3RhbCB0YWIuKHN1cHBvcnRlZCBieSBmaWx0ZXIgdHlwZSBvbmx5KSAqL1xuICAgIHNob3dUb3RhbFRhYiA9IGlucHV0KHRydWUpO1xuXG4gICAgLyoqIFdoZXRoZXIgdG8gcmVuZGVyIGljb24gdGFiIGl0ZW0gYXMgbXVsdGktY2xpY2sgdmFyaWFudC4gKi9cbiAgICBtdWx0aUNsaWNrID0gaW5wdXQoZmFsc2UpO1xuXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBMYXlvdXQgdHlwZSBmb3IgdGFiIChzdXBwb3J0ZWQgYnkgdGV4dCB0eXBlIG9ubHkpICovXG4gICAgbGF5b3V0TW9kZSA9IGlucHV0PCdyb3cnIHwgJ2NvbHVtbic+KCdyb3cnKTtcblxuICAgIC8qKiBAZGVzY3JpcHRpb24gSWNvbiB0YWIgYmFyIGJhY2tncm91bmQgdHlwZS4gKi9cbiAgICBpY29uVGFiQmFja2dyb3VuZCA9IGlucHV0PEljb25UYWJCYXJCYWNrZ3JvdW5kPignc29saWQnKTtcblxuICAgIC8qKiBAZGVzY3JpcHRpb24gSWNvbiB0YWIgYmFyIHNpemUuICovXG4gICAgaWNvblRhYlNpemUgPSBpbnB1dDxJY29uVGFiQmFyU2l6ZT4oKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBBc3NvY2lhdGlvbnMgZm9yIGNvbG9ycyBvZiB0aGUgdGFicy5cbiAgICAgKiBJZiBhbnkgb2YgdGhlIGNvbG9yIGFzc29jaWF0aW9ucyBwcm92aWRlZCwgdGhleSdsbCBiZSByZWFkIGJ5IHNjcmVlbnJlYWRlciBpbnN0ZWFkIG9mIHRoZSBhY3R1YWwgY29sb3JcbiAgICAgKi9cbiAgICBjb2xvckFzc29jaWF0aW9ucyA9IGlucHV0PFRhYkNvbG9yQXNzb2NpYXRpb25zPigpO1xuXG4gICAgLyoqXG4gICAgICogTWF4aW11bSBoZWlnaHQgb2YgdGhlIGNvbnRlbnQuXG4gICAgICogV29ya3Mgb25seSBmb3IgY29udGVudC1wcm9qZWN0ZWQgdGFiIGNvbnRlbnQuXG4gICAgICovXG4gICAgbWF4Q29udGVudEhlaWdodCA9IGlucHV0KCcxMDAlJyk7XG5cbiAgICAvKiogQGRlc2NyaXB0aW9uIEVtaXRzIHdoZW4gc29tZSB0YWIgaXMgc2VsZWN0ZWQuICovXG4gICAgaWNvblRhYlNlbGVjdGVkID0gb3V0cHV0PEljb25UYWJCYXJJdGVtPigpO1xuXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBFbWl0cyB3aGVuIHVzZXIgZHJvcCB0YWIuICovXG4gICAgaWNvblRhYlJlb3JkZXJlZCA9IG91dHB1dDxJY29uVGFiQmFySXRlbVtdPigpO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiB1c2VyIGNsaWNrcyBvbiB4IGljb24gaW4gdGFiLiAqL1xuICAgIGNsb3NlVGFiID0gb3V0cHV0PEljb25UYWJCYXJJdGVtPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjaGlsZHJlbiA9IGNvbnRlbnRDaGlsZHJlbihJY29uVGFiQmFyVGFiQ29tcG9uZW50LCB7IGRlc2NlbmRhbnRzOiBmYWxzZSB9KTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3Njcm9sbGJhciA9IHZpZXdDaGlsZChTY3JvbGxiYXJEaXJlY3RpdmUpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICB0YWJEaXJlY3RpdmVzID0gdmlld0NoaWxkcmVuKEljb25UYWJCYXJUYWJDb250ZW50RGlyZWN0aXZlKTtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmQtdGFicy1jdXN0b20nKVxuICAgIHByaXZhdGUgZ2V0IF9jdXN0b21UYWJzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5EeW5hbWljUGFnZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBoZWFkZXJDb250YWluZXIoKTogTnVsbGFibGU8RWxlbWVudFJlZj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faWNvblRhYkJhckNtcCgpPy5oZWFkZXJFbGVtZW50O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2Nzc0NsYXNzRm9yQ29udGFpbmVyOiBzdHJpbmdbXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2Rpc2FibGVTY3JvbGxTcHkgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2luaXQgPSB0cnVlO1xuXG4gICAgLyoqIFNjcm9sbGFibGUgZWxlbWVudCByZWZlcmVuY2UuICovXG4gICAgZ2V0IHNjcm9sbGFibGVFbGVtZW50KCk6IE51bGxhYmxlPEVsZW1lbnRSZWY+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Njcm9sbGJhcigpPy5lbGVtZW50UmVmO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgX3NlbGVjdGVkVWlkID0gc2lnbmFsPHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgX3RhYnMkID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fZ2VuZXJhdGVUYWJCYXJJdGVtcyh0aGlzLl90YWJzQ29uZmlnJCgpKSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IF9mbGF0VGFicyQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLl9nZW5lcmF0ZUZsYXRUYWJzKHRoaXMuX3RhYnMkKCkpKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgX3RhYlJlbmRlcmVyJCA9IHNpZ25hbDxJY29uVGFiQmFySXRlbSB8IG51bGw+KG51bGwpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBfcnRsJCA9IGNvbXB1dGVkKCgpID0+ICEhdGhpcy5fcnRsU2VydmljZT8ucnRsU2lnbmFsKCkpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBfdGFic0NvbmZpZyQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHRhYkNvbmZpZyA9IHRoaXMudGFic0NvbmZpZygpO1xuICAgICAgICBpZiAodGFiQ29uZmlnKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy50YWJzQ29uZmlnKCkgYXMgVGFiQ29uZmlnW107XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjaGlsZHJlbiA9IHRoaXMuY2hpbGRyZW4oKTtcbiAgICAgICAgaWYgKCFjaGlsZHJlbikge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjaGlsZHJlbi5tYXAoKHQpID0+IHRoaXMuX2dlbmVyYXRlVGFiQ29uZmlnKHQpKTtcbiAgICB9KTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2luRHluYW1pY1BhZ2UgPSAhIWluamVjdChGRF9EWU5BTUlDX1BBR0UsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9pY29uVGFiQmFyQ21wID0gdmlld0NoaWxkPE51bGxhYmxlPEljb25UYWJCYXJCYXNlPj4oSWNvblRhYkJhckJhc2UpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBfY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9jb250ZW50RGVuc2l0eVNlcnZpY2U6IENvbnRlbnREZW5zaXR5U2VydmljZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfcnRsU2VydmljZTogUnRsU2VydmljZVxuICAgICkge31cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2Nzc0NsYXNzRm9yQ29udGFpbmVyID0gdGhpcy5fZ2VuZXJhdGVDb250YWluZXJTdHlsZXMoKTtcblxuICAgICAgICBpZiAodGhpcy5kZW5zaXR5TW9kZSgpID09PSAnaW5oZXJpdCcpIHtcbiAgICAgICAgICAgIHRoaXMuX2NvbnRlbnREZW5zaXR5U2VydmljZT8uX2NvbnRlbnREZW5zaXR5TGlzdGVuZXJcbiAgICAgICAgICAgICAgICAucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoZGVuc2l0eSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRlbnNpdHlNb2RlLnNldChkZW5zaXR5KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRlbnNpdHkgIT09ICdjb21wYWN0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3NzQ2xhc3NGb3JDb250YWluZXIgPSB0aGlzLl9jc3NDbGFzc0ZvckNvbnRhaW5lci5maWx0ZXIoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNzc0NsYXNzKSA9PiBjc3NDbGFzcyAhPT0gJ2ZkLWljb24tdGFiLWJhci0tY29tcGFjdCdcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jc3NDbGFzc0ZvckNvbnRhaW5lci5wdXNoKCdmZC1pY29uLXRhYi1iYXItLWNvbXBhY3QnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQHBhcmFtIGV2ZW50IHJlb3JkZXJlZCBhcnJheSBvZiBJY29uVGFiQmFySXRlbVxuICAgICAqL1xuICAgIF9vblJlb3JkZXIoZXZlbnQ6IEljb25UYWJCYXJJdGVtW10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pY29uVGFiUmVvcmRlcmVkLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAcGFyYW0gc2VsZWN0ZWRJdGVtXG4gICAgICovXG4gICAgX3NlbGVjdEl0ZW0oc2VsZWN0ZWRJdGVtOiBJY29uVGFiQmFySXRlbSk6IHZvaWQge1xuICAgICAgICB0aGlzLl90YWJSZW5kZXJlciQuc2V0KHNlbGVjdGVkSXRlbSk7XG4gICAgICAgIHRoaXMuaWNvblRhYlNlbGVjdGVkLmVtaXQoc2VsZWN0ZWRJdGVtKTtcblxuICAgICAgICBpZiAodGhpcy5zdGFja0NvbnRlbnQpIHtcbiAgICAgICAgICAgIHRoaXMuX3Njcm9sbFRvUGFuZWwodGhpcy50YWJEaXJlY3RpdmVzKCkuZmluZCgodGFiKSA9PiB0YWIudUlkKCkgPT09IHNlbGVjdGVkSXRlbS51SWQpISk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9jbG9zZVRhYihpdGVtOiBJY29uVGFiQmFySXRlbSk6IHZvaWQge1xuICAgICAgICB0aGlzLmNsb3NlVGFiLmVtaXQoaXRlbSk7XG4gICAgfVxuXG4gICAgLyoqIFByb2dyYW1tYXRpY2FsbHkgc2VsZWN0IHRhYi4gKi9cbiAgICBzZWxlY3RUYWIoaWQ6IE51bGxhYmxlPHN0cmluZz4pOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRJdGVtID0gdGhpcy5fZmxhdFRhYnMkKCkuZmluZCgodCkgPT4gdC5pZCA9PT0gaWQpO1xuICAgICAgICBpZiAoIXNlbGVjdGVkSXRlbSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3NlbGVjdGVkVWlkLnNldChzZWxlY3RlZEl0ZW0udUlkKTtcbiAgICAgICAgdGhpcy5fc2VsZWN0SXRlbShzZWxlY3RlZEl0ZW0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgaGlnaGxpZ2h0QWN0aXZlVGFiKGlkOiBOdWxsYWJsZTxzdHJpbmc+LCBzY3JvbGwgPSBmYWxzZSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fZGlzYWJsZVNjcm9sbFNweSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFjdGl2ZVRhYiA9IHRoaXMudGFiRGlyZWN0aXZlcygpLmZpbmQoKHRhYikgPT4gdGFiLmlkKCkgPT09IGlkKTtcbiAgICAgICAgdGhpcy5fc2VsZWN0ZWRVaWQuc2V0KGFjdGl2ZVRhYj8udUlkKCkgfHwgdW5kZWZpbmVkKTtcbiAgICAgICAgaWYgKHNjcm9sbCAmJiBhY3RpdmVUYWIpIHtcbiAgICAgICAgICAgIHRoaXMuX3Njcm9sbFRvUGFuZWwoYWN0aXZlVGFiKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAcmV0dXJucyBhcnJheSBvZiBjc3MgY2xhc3NlcyBmb3IgaWNvbi10YWItYmFyIGNvbnRhaW5lclxuICAgICAqL1xuICAgIHByaXZhdGUgX2dlbmVyYXRlQ29udGFpbmVyU3R5bGVzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgY29uc3Qgc3R5bGVzID0gW2BmZC1pY29uLXRhYi1iYXItLSR7dGhpcy5pY29uVGFiVHlwZSgpfWBdO1xuICAgICAgICBjb25zdCB0YWJzQ29uZmlnID0gdGhpcy50YWJzQ29uZmlnKCk7XG4gICAgICAgIGlmICh0YWJzQ29uZmlnICYmIHRoaXMuaWNvblRhYlR5cGUoKSA9PT0gJ3Byb2Nlc3MnICYmIHRhYnNDb25maWdbMF0uaWNvbikge1xuICAgICAgICAgICAgc3R5bGVzLnB1c2goJ2ZkLWljb24tdGFiLWJhci0taWNvbicpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmljb25UYWJCYWNrZ3JvdW5kKCkgIT09ICdzb2xpZCcpIHtcbiAgICAgICAgICAgIHN0eWxlcy5wdXNoKGBmZC1pY29uLXRhYi1iYXItLSR7dGhpcy5pY29uVGFiQmFja2dyb3VuZCgpfWApO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmljb25UYWJTaXplKCkpIHtcbiAgICAgICAgICAgIHN0eWxlcy5wdXNoKGBmZC1pY29uLXRhYi1iYXItLSR7dGhpcy5pY29uVGFiU2l6ZSgpIX1gKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5kZW5zaXR5TW9kZSgpID09PSAnY29tcGFjdCcpIHtcbiAgICAgICAgICAgIHN0eWxlcy5wdXNoKCdmZC1pY29uLXRhYi1iYXItLWNvbXBhY3QnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5sYXlvdXRNb2RlKCkgPT09ICdjb2x1bW4nKSB7XG4gICAgICAgICAgICBzdHlsZXMucHVzaCgnZmQtaWNvbi10YWItYmFyLS1jb3VudGVycycpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdHlsZXM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZ2VuZXJhdGVUYWJDb25maWcodGFiOiBJY29uVGFiQmFyVGFiQ29tcG9uZW50KTogVGFiQ29uZmlnIHtcbiAgICAgICAgY29uc3QgdGFiQ29uZmlnOiBUYWJDb25maWcgPSB7XG4gICAgICAgICAgICBsYWJlbDogdGFiLmxhYmVsKCksXG4gICAgICAgICAgICBjb2xvcjogdGFiLmNvbG9yKCksXG4gICAgICAgICAgICBhY3RpdmU6IHRhYi5hY3RpdmUoKSxcbiAgICAgICAgICAgIGJhZGdlOiB0YWIuYmFkZ2UoKSxcbiAgICAgICAgICAgIGNvdW50ZXI6IHRhYi5jb3VudGVyKCksXG4gICAgICAgICAgICByZW5kZXJlcjogdGFiLnJlbmRlcmVyKCksXG4gICAgICAgICAgICBpZDogdGFiLmlkKCksXG4gICAgICAgICAgICB0aXRsZVRlbXBsYXRlOiB0YWIudGl0bGVUZW1wbGF0ZSgpLFxuICAgICAgICAgICAgc3ViSXRlbXM6IHRhYi5jaGlsZHJlbigpLm1hcCgoYykgPT4gdGhpcy5fZ2VuZXJhdGVUYWJDb25maWcoYykpXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIHRhYkNvbmZpZztcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3Njcm9sbFRvUGFuZWwodGFiUGFuZWw6IE51bGxhYmxlPEljb25UYWJCYXJUYWJDb250ZW50RGlyZWN0aXZlPik6IHZvaWQge1xuICAgICAgICBpZiAoIXRhYlBhbmVsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2Nyb2xsYmFyID0gdGhpcy5fc2Nyb2xsYmFyKCk7XG4gICAgICAgIGlmICghc2Nyb2xsYmFyKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGFuZWxFbGVtZW50ID0gdGFiUGFuZWwuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCBjb250YWluZXJFbGVtZW50ID0gc2Nyb2xsYmFyLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3QgZGlzdGFuY2VUb1Njcm9sbCA9IHBhbmVsRWxlbWVudC5vZmZzZXRUb3AgLSBjb250YWluZXJFbGVtZW50Lm9mZnNldFRvcDtcbiAgICAgICAgY29uc3QgbWF4aW11bVNjcm9sbFRvcCA9IGNvbnRhaW5lckVsZW1lbnQuc2Nyb2xsSGVpZ2h0IC0gY29udGFpbmVyRWxlbWVudC5jbGllbnRIZWlnaHQ7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRTY3JvbGxQb3NpdGlvbiA9IE1hdGguY2VpbChjb250YWluZXJFbGVtZW50LnNjcm9sbFRvcCk7XG5cbiAgICAgICAgaWYgKCEoY3VycmVudFNjcm9sbFBvc2l0aW9uID09PSBtYXhpbXVtU2Nyb2xsVG9wICYmIGRpc3RhbmNlVG9TY3JvbGwgPiBtYXhpbXVtU2Nyb2xsVG9wKSkge1xuICAgICAgICAgICAgdGhpcy5fZGlzYWJsZVNjcm9sbFNweSA9IHRydWU7XG4gICAgICAgICAgICBmcm9tRXZlbnQoY29udGFpbmVyRWxlbWVudCwgJ3Njcm9sbCcpXG4gICAgICAgICAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDEwMCksIGZpcnN0KCksIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+ICh0aGlzLl9kaXNhYmxlU2Nyb2xsU3B5ID0gZmFsc2UpKTtcbiAgICAgICAgICAgIHNjcm9sbFRvcChjb250YWluZXJFbGVtZW50LCBkaXN0YW5jZVRvU2Nyb2xsKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAZGVzY3JpcHRpb24gZ2VuZXJhdGUgSWNvblRhYkl0ZW1zIGZyb20gVGFiQ29uZmlnIGFycmF5XG4gICAgICovXG4gICAgcHJpdmF0ZSBfZ2VuZXJhdGVUYWJCYXJJdGVtcyhcbiAgICAgICAgY29uZmlnOiBUYWJDb25maWdbXSxcbiAgICAgICAgaW5kZXhQcmVmaXggPSAnJyxcbiAgICAgICAgZmxhdEluZGV4UmVmPzogRmxhdEluZGV4LFxuICAgICAgICBwYXJlbnRVSWQ/OiBzdHJpbmdcbiAgICApOiBJY29uVGFiQmFySXRlbVtdIHtcbiAgICAgICAgZmxhdEluZGV4UmVmID0gZmxhdEluZGV4UmVmIHx8IHsgdmFsdWU6IDAgfTtcbiAgICAgICAgcmV0dXJuIGNvbmZpZy5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCB1SWQgPSBgJHtpbmRleFByZWZpeH0ke2luZGV4fWA7XG4gICAgICAgICAgICBpdGVtLmNvbG9yID0gaXRlbS5jb2xvciB8fCAnZGVmYXVsdCc7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQ6IEljb25UYWJCYXJJdGVtID0ge1xuICAgICAgICAgICAgICAgIC4uLml0ZW0sXG4gICAgICAgICAgICAgICAgaW5kZXgsXG4gICAgICAgICAgICAgICAgY3NzQ2xhc3NlczogaXRlbS5jb2xvciA/IFtgZmQtaWNvbi10YWItYmFyX19pdGVtLS0ke2l0ZW0uY29sb3J9YF0gOiBbXSxcbiAgICAgICAgICAgICAgICB1SWQsXG4gICAgICAgICAgICAgICAgaGlkZGVuOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBwYXJlbnRVSWQsXG4gICAgICAgICAgICAgICAgZmxhdEluZGV4OiBmbGF0SW5kZXhSZWYhLnZhbHVlKyssXG4gICAgICAgICAgICAgICAgc3ViSXRlbXM6IHRoaXMuX2dlbmVyYXRlVGFiQmFySXRlbXMoXG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uc3ViSXRlbXMgfHwgW10sXG4gICAgICAgICAgICAgICAgICAgIGAke3VJZH0ke1VOSVFVRV9LRVlfU0VQQVJBVE9SfWAsXG4gICAgICAgICAgICAgICAgICAgIGZsYXRJbmRleFJlZixcbiAgICAgICAgICAgICAgICAgICAgdUlkXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2dlbmVyYXRlRmxhdFRhYnModGFiczogSWNvblRhYkJhckl0ZW1bXSk6IEljb25UYWJCYXJJdGVtW10ge1xuICAgICAgICBjb25zdCBmbGF0VGFicyA9IHRhYnMucmVkdWNlKChhY2M6IEljb25UYWJCYXJJdGVtW10sIHRhYikgPT4ge1xuICAgICAgICAgICAgYWNjLnB1c2godGFiKTtcbiAgICAgICAgICAgIGlmICh0YWIuc3ViSXRlbXMpIHtcbiAgICAgICAgICAgICAgICBhY2MucHVzaCguLi50aGlzLl9nZW5lcmF0ZUZsYXRUYWJzKHRhYi5zdWJJdGVtcykpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSwgW10pO1xuXG4gICAgICAgIHJldHVybiBmbGF0VGFicztcbiAgICB9XG59XG5cbi8qKiBAaGlkZGVuIGhlbHBlciBvYmplY3QgdGhhdCBpcyB1c2VkIGluIHRhYiBnZW5lcmF0aW9uIGZ1bmN0aW9ucyB0byBjYWxjdWxhdGUgdGhlaXIgaW5kZXhlcyBub3QgZGVwZW5kaW5nIG9uIGxldmVsIG9mIG5lc3RpbmcgKi9cbmludGVyZmFjZSBGbGF0SW5kZXgge1xuICAgIHZhbHVlOiBudW1iZXI7XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmQtaWNvbi10YWItYmFyXCIgW2NsYXNzXT1cIl9jc3NDbGFzc0ZvckNvbnRhaW5lclwiPlxuICAgIEBpZiAoaWNvblRhYlR5cGUoKSA9PT0gJ3RleHQnKSB7XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJ0ZXh0VHlwZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgfVxuICAgIEBpZiAoaWNvblRhYlR5cGUoKSA9PT0gJ2ljb24nIHx8IGljb25UYWJUeXBlKCkgPT09ICdpY29uLW9ubHknKSB7XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJpY29uVHlwZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgfVxuICAgIEBpZiAoaWNvblRhYlR5cGUoKSA9PT0gJ2ZpbHRlcicpIHtcbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImZpbHRlclR5cGVcIj48L25nLXRlbXBsYXRlPlxuICAgIH1cbiAgICBAaWYgKGljb25UYWJUeXBlKCkgPT09ICdwcm9jZXNzJykge1xuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwicHJvY2Vzc1R5cGVcIj48L25nLXRlbXBsYXRlPlxuICAgIH1cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX19jb250ZW50XCJcbiAgICAgICAgZmQtc2Nyb2xsYmFyXG4gICAgICAgIChzcHlDaGFuZ2UpPVwiaGlnaGxpZ2h0QWN0aXZlVGFiKCRldmVudC5pZClcIlxuICAgICAgICBbc2Nyb2xsU3B5RGlzYWJsZWRdPVwiIXN0YWNrQ29udGVudCB8fCBfZGlzYWJsZVNjcm9sbFNweVwiXG4gICAgICAgIGZkU2Nyb2xsU3B5XG4gICAgICAgIFt0cmFja2VkVGFnc109XCJbJ2ZkcC1pY29uLXRhYi1iYXItdGFiLWNvbnRlbnQnXVwiXG4gICAgICAgIFtzdHlsZS5tYXgtaGVpZ2h0XT1cIm1heENvbnRlbnRIZWlnaHQoKVwiXG4gICAgPlxuICAgICAgICBAaWYgKHN0YWNrQ29udGVudCkge1xuICAgICAgICAgICAgQGZvciAodGFiIG9mIF9mbGF0VGFicyQoKTsgdHJhY2sgdGFiKSB7XG4gICAgICAgICAgICAgICAgPGZkcC1pY29uLXRhYi1iYXItdGFiLWNvbnRlbnQgW2lkXT1cInRhYi5pZFwiIFt1SWRdPVwidGFiLnVJZFwiIGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX190YWItY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwidGFiLnJlbmRlcmVyIHx8IG51bGxcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvZmRwLWljb24tdGFiLWJhci10YWItY29udGVudD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBAaWYgKF90YWJSZW5kZXJlciQoKTsgYXMgdGFiUmVuZGVyZXIpIHtcbiAgICAgICAgICAgICAgICA8ZmRwLWljb24tdGFiLWJhci10YWItY29udGVudFxuICAgICAgICAgICAgICAgICAgICBbaWRdPVwidGFiUmVuZGVyZXIuaWRcIlxuICAgICAgICAgICAgICAgICAgICBbdUlkXT1cInRhYlJlbmRlcmVyLnVJZFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX190YWItY29udGVudFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwidGFiUmVuZGVyZXIucmVuZGVyZXIgfHwgbnVsbFwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9mZHAtaWNvbi10YWItYmFyLXRhYi1jb250ZW50PlxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltmZHBJY29uVGFiQmFyRnJlZUNvbnRlbnRdXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuPC9kaXY+XG48bmctdGVtcGxhdGUgI3Byb2Nlc3NUeXBlPlxuICAgIDxmZHAtaWNvbi10YWItYmFyLXByb2Nlc3MtdHlwZVxuICAgICAgICBbdGFic109XCJfdGFicyQoKVwiXG4gICAgICAgIFtpc1J0bF09XCJfcnRsJCgpXCJcbiAgICAgICAgW3NlbGVjdGVkVWlkXT1cIl9zZWxlY3RlZFVpZCgpXCJcbiAgICAgICAgKHNlbGVjdGVkVWlkQ2hhbmdlKT1cIl9zZWxlY3RlZFVpZC5zZXQoJGV2ZW50KVwiXG4gICAgICAgIFtkZW5zaXR5TW9kZV09XCJkZW5zaXR5TW9kZSgpXCJcbiAgICAgICAgW2NvbG9yQXNzb2NpYXRpb25zXT1cImNvbG9yQXNzb2NpYXRpb25zKClcIlxuICAgICAgICAoc2VsZWN0ZWQpPVwiX3NlbGVjdEl0ZW0oJGV2ZW50KVwiXG4gICAgPjwvZmRwLWljb24tdGFiLWJhci1wcm9jZXNzLXR5cGU+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNmaWx0ZXJUeXBlPlxuICAgIDxmZHAtaWNvbi10YWItYmFyLWZpbHRlci10eXBlXG4gICAgICAgIFt0YWJzXT1cIl90YWJzJCgpXCJcbiAgICAgICAgW3Nob3dUb3RhbFRhYl09XCJzaG93VG90YWxUYWIoKVwiXG4gICAgICAgIFtpc1J0bF09XCJfcnRsJCgpXCJcbiAgICAgICAgW3NlbGVjdGVkVWlkXT1cIl9zZWxlY3RlZFVpZCgpXCJcbiAgICAgICAgKHNlbGVjdGVkVWlkQ2hhbmdlKT1cIl9zZWxlY3RlZFVpZC5zZXQoJGV2ZW50KVwiXG4gICAgICAgIFtkZW5zaXR5TW9kZV09XCJkZW5zaXR5TW9kZSgpXCJcbiAgICAgICAgW2NvbG9yQXNzb2NpYXRpb25zXT1cImNvbG9yQXNzb2NpYXRpb25zKClcIlxuICAgICAgICAoc2VsZWN0ZWQpPVwiX3NlbGVjdEl0ZW0oJGV2ZW50KVwiXG4gICAgPjwvZmRwLWljb24tdGFiLWJhci1maWx0ZXItdHlwZT5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2ljb25UeXBlPlxuICAgIDxmZHAtaWNvbi10YWItYmFyLWljb24tdHlwZVxuICAgICAgICBbc2hvd0xhYmVsXT1cImljb25UYWJUeXBlKCkgPT09ICdpY29uJ1wiXG4gICAgICAgIFt0YWJzXT1cIl90YWJzJCgpXCJcbiAgICAgICAgW2lzUnRsXT1cIl9ydGwkKClcIlxuICAgICAgICBbc2VsZWN0ZWRVaWRdPVwiX3NlbGVjdGVkVWlkKClcIlxuICAgICAgICAoc2VsZWN0ZWRVaWRDaGFuZ2UpPVwiX3NlbGVjdGVkVWlkLnNldCgkZXZlbnQpXCJcbiAgICAgICAgW2RlbnNpdHlNb2RlXT1cImRlbnNpdHlNb2RlKClcIlxuICAgICAgICBbY29sb3JBc3NvY2lhdGlvbnNdPVwiY29sb3JBc3NvY2lhdGlvbnMoKVwiXG4gICAgICAgIChzZWxlY3RlZCk9XCJfc2VsZWN0SXRlbSgkZXZlbnQpXCJcbiAgICAgICAgKGNsb3NlVGFiKT1cIl9jbG9zZVRhYigkZXZlbnQpXCJcbiAgICA+PC9mZHAtaWNvbi10YWItYmFyLWljb24tdHlwZT5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI3RleHRUeXBlPlxuICAgIDxmZHAtaWNvbi10YWItYmFyLXRleHQtdHlwZVxuICAgICAgICBbdGFic109XCJfdGFicyQoKVwiXG4gICAgICAgIFttdWx0aUNsaWNrXT1cIm11bHRpQ2xpY2soKVwiXG4gICAgICAgIFtsYXlvdXRNb2RlXT1cImxheW91dE1vZGUoKVwiXG4gICAgICAgIFtpc1J0bF09XCJfcnRsJCgpXCJcbiAgICAgICAgW3NlbGVjdGVkVWlkXT1cIl9zZWxlY3RlZFVpZCgpXCJcbiAgICAgICAgKHNlbGVjdGVkVWlkQ2hhbmdlKT1cIl9zZWxlY3RlZFVpZC5zZXQoJGV2ZW50KVwiXG4gICAgICAgIFtkZW5zaXR5TW9kZV09XCJkZW5zaXR5TW9kZSgpXCJcbiAgICAgICAgW2VuYWJsZVRhYlJlb3JkZXJpbmddPVwiZW5hYmxlVGFiUmVvcmRlcmluZygpXCJcbiAgICAgICAgW2NvbG9yQXNzb2NpYXRpb25zXT1cImNvbG9yQXNzb2NpYXRpb25zKClcIlxuICAgICAgICAocmVvcmRlcmVkKT1cIl9vblJlb3JkZXIoJGV2ZW50KVwiXG4gICAgICAgIChzZWxlY3RlZCk9XCJfc2VsZWN0SXRlbSgkZXZlbnQpXCJcbiAgICAgICAgKGNsb3NlVGFiKT1cIl9jbG9zZVRhYigkZXZlbnQpXCJcbiAgICA+PC9mZHAtaWNvbi10YWItYmFyLXRleHQtdHlwZT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -1933,22 +1933,17 @@ class IconTabBarComponent {
|
|
|
1933
1933
|
flatIndexRef = flatIndexRef || { value: 0 };
|
|
1934
1934
|
return config.map((item, index) => {
|
|
1935
1935
|
const uId = `${indexPrefix}${index}`;
|
|
1936
|
-
|
|
1937
|
-
item.color = 'default';
|
|
1938
|
-
}
|
|
1936
|
+
item.color = item.color || 'default';
|
|
1939
1937
|
const result = {
|
|
1940
1938
|
...item,
|
|
1941
1939
|
index,
|
|
1942
|
-
cssClasses: [],
|
|
1940
|
+
cssClasses: item.color ? [`fd-icon-tab-bar__item--${item.color}`] : [],
|
|
1943
1941
|
uId,
|
|
1944
1942
|
hidden: false,
|
|
1945
1943
|
parentUId,
|
|
1946
1944
|
flatIndex: flatIndexRef.value++,
|
|
1947
1945
|
subItems: this._generateTabBarItems(item.subItems || [], `${uId}${UNIQUE_KEY_SEPARATOR}`, flatIndexRef, uId)
|
|
1948
1946
|
};
|
|
1949
|
-
if (item.color) {
|
|
1950
|
-
result.cssClasses = [`fd-icon-tab-bar__item--${item.color}`];
|
|
1951
|
-
}
|
|
1952
1947
|
return result;
|
|
1953
1948
|
});
|
|
1954
1949
|
}
|