@netgrif/components-core 6.2.0-rc.4 → 6.2.0-rc.5
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/assets/i18n/de.json +3 -0
- package/esm2020/assets/i18n/en.json +3 -0
- package/esm2020/assets/i18n/sk.json +3 -0
- package/esm2020/lib/search/models/category/case/case-dataset.mjs +3 -1
- package/esm2020/lib/search/models/category/case/case-simple-dataset.mjs +5 -1
- package/fesm2015/netgrif-components-core.mjs +14 -0
- package/fesm2015/netgrif-components-core.mjs.map +1 -1
- package/fesm2020/netgrif-components-core.mjs +14 -0
- package/fesm2020/netgrif-components-core.mjs.map +1 -1
- package/package.json +1 -1
- package/src/assets/i18n/de.json +3 -0
- package/src/assets/i18n/en.json +3 -0
- package/src/assets/i18n/sk.json +3 -0
|
@@ -201,6 +201,8 @@ export class CaseDataset extends Category {
|
|
|
201
201
|
case 'user':
|
|
202
202
|
case 'userList':
|
|
203
203
|
return resolver.getIndex(datafield.fieldId, SearchIndex.USER_ID);
|
|
204
|
+
case 'i18n':
|
|
205
|
+
return resolver.getIndex(datafield.fieldId, SearchIndex.TEXT, this.isSelectedOperator(Equals) || this.isSelectedOperator(NotEquals) || this.isSelectedOperator(Substring));
|
|
204
206
|
default:
|
|
205
207
|
return resolver.getIndex(datafield.fieldId, SearchIndex.FULLTEXT, this.isSelectedOperator(Equals) || this.isSelectedOperator(NotEquals) || this.isSelectedOperator(Substring));
|
|
206
208
|
}
|
|
@@ -391,4 +393,4 @@ CaseDataset._i18n = 'search.category.case.dataset';
|
|
|
391
393
|
CaseDataset.DISABLED_TYPES = ['button', 'taskRef', 'caseRef', 'filter'];
|
|
392
394
|
CaseDataset.DATAFIELD_METADATA = 'datafield';
|
|
393
395
|
CaseDataset.AUTOCOMPLETE_ICON = 'account_circle';
|
|
394
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1kYXRhc2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi9zZWFyY2gvbW9kZWxzL2NhdGVnb3J5L2Nhc2UvY2FzZS1kYXRhc2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUV4QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDckQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRXhELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDL0QsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQzdDLE9BQU8sRUFBQyxlQUFlLEVBQWMsRUFBRSxFQUFFLGFBQWEsRUFBZSxNQUFNLE1BQU0sQ0FBQztBQUdsRixPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBQ3JDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDbEQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ2xELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sd0JBQXdCLENB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QUcsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge09wZXJhdG9yU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vb3BlcmF0b3Itc2VydmljZS9vcGVyYXRvci5zZXJ2aWNlJztcbmltcG9ydCB7TG9nZ2VyU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vLi4vbG9nZ2VyL3NlcnZpY2VzL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7T3BlcmF0b3J9IGZyb20gJy4uLy4uL29wZXJhdG9yL29wZXJhdG9yJztcbmltcG9ydCB7UXVlcnl9IGZyb20gJy4uLy4uL3F1ZXJ5L3F1ZXJ5JztcbmltcG9ydCB7T3B0aW9uYWxEZXBlbmRlbmNpZXN9IGZyb20gJy4uLy4uLy4uL2NhdGVnb3J5LWZhY3Rvcnkvb3B0aW9uYWwtZGVwZW5kZW5jaWVzJztcbmltcG9ydCB7U2VhcmNoSW5wdXRUeXBlfSBmcm9tICcuLi9zZWFyY2gtaW5wdXQtdHlwZSc7XG5pbXBvcnQge0RhdGFmaWVsZE1hcEtleX0gZnJvbSAnLi4vLi4vZGF0YWZpZWxkLW1hcC1rZXknO1xuaW1wb3J0IHtTZWFyY2hBdXRvY29tcGxldGVPcHRpb259IGZyb20gJy4uL3NlYXJjaC1hdXRvY29tcGxldGUtb3B0aW9uJztcbmltcG9ydCB7Qm9vbGVhbk9wZXJhdG9yfSBmcm9tICcuLi8uLi9ib29sZWFuLW9wZXJhdG9yJztcbmltcG9ydCB7Q2FzZVByb2Nlc3N9IGZyb20gJy4vY2FzZS1wcm9jZXNzJztcbmltcG9ydCB7RXF1YWxzRGF0ZX0gZnJvbSAnLi4vLi4vb3BlcmF0b3IvZXF1YWxzLWRhdGUnO1xuaW1wb3J0IHtTdWJzdHJpbmd9IGZyb20gJy4uLy4uL29wZXJhdG9yL3N1YnN0cmluZyc7XG5pbXBvcnQge0VxdWFsc0RhdGVUaW1lfSBmcm9tICcuLi8uLi9vcGVyYXRvci9lcXVhbHMtZGF0ZS10aW1lJztcbmltcG9ydCB7RXF1YWxzfSBmcm9tICcuLi8uLi9vcGVyYXRvci9lcXVhbHMnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG9mLCBSZXBsYXlTdWJqZWN0LCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtkZWJvdW5jZVRpbWUsIG1hcCwgc3RhcnRXaXRoLCBzd2l0Y2hNYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7aGFzQ29udGVudH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbGl0eS9wYWdpbmF0aW9uL3BhZ2UtaGFzLWNvbnRlbnQnO1xuaW1wb3J0IHtDYXRlZ29yeX0gZnJvbSAnLi4vY2F0ZWdvcnknO1xuaW1wb3J0IHtOb3RFcXVhbHN9IGZyb20gJy4uLy4uL29wZXJhdG9yL25vdC1lcXVhbHMnO1xuaW1wb3J0IHtNb3JlVGhhbn0gZnJvbSAnLi4vLi4vb3BlcmF0b3IvbW9yZS10aGFuJztcbmltcG9ydCB7TGVzc1RoYW59IGZyb20gJy4uLy4uL29wZXJhdG9yL2xlc3MtdGhhbic7XG5pbXBvcnQge0luUmFuZ2V9IGZyb20gJy4uLy4uL29wZXJhdG9yL2luLXJhbmdlJztcbmltcG9ydCB7SXNOdWxsfSBmcm9tICcuLi8uLi9vcGVyYXRvci9pcy1udWxsJztcbmltcG9ydCB7TGlrZX0gZnJvbSAnLi4vLi4vb3BlcmF0b3IvbGlrZSc7XG5pbXBvcnQge05vdEVxdWFsc0RhdGV9IGZyb20gJy4uLy4uL29wZXJhdG9yL25vdC1lcXVhbHMtZGF0ZSc7XG5pbXBvcnQge01vcmVUaGFuRGF0ZX0gZnJvbSAnLi4vLi4vb3BlcmF0b3IvbW9yZS10aGFuLWRhdGUnO1xuaW1wb3J0IHtMZXNzVGhhbkRhdGV9IGZyb20gJy4uLy4uL29wZXJhdG9yL2xlc3MtdGhhbi1kYXRlJztcbmltcG9ydCB7SW5SYW5nZURhdGV9IGZyb20gJy4uLy4uL29wZXJhdG9yL2luLXJhbmdlLWRhdGUnO1xuaW1wb3J0IHtNb3JlVGhhbkRhdGVUaW1lfSBmcm9tICcuLi8uLi9vcGVyYXRvci9tb3JlLXRoYW4tZGF0ZS10aW1lJztcbmltcG9ydCB7TGVzc1RoYW5EYXRlVGltZX0gZnJvbSAnLi4vLi4vb3BlcmF0b3IvbGVzcy10aGFuLWRhdGUtdGltZSc7XG5pbXBvcnQge0luUmFuZ2VEYXRlVGltZX0gZnJvbSAnLi4vLi4vb3BlcmF0b3IvaW4tcmFuZ2UtZGF0ZS10aW1lJztcbmltcG9ydCB7QXV0b2NvbXBsZXRlT3B0aW9uc30gZnJvbSAnLi4vYXV0b2NvbXBsZXRlLW9wdGlvbnMnO1xuaW1wb3J0IHtDb25maWd1cmF0aW9uSW5wdXR9IGZyb20gJy4uLy4uL2NvbmZpZ3VyYXRpb24taW5wdXQnO1xuaW1wb3J0IHtTZWFyY2hJbmRleH0gZnJvbSAnLi4vLi4vc2VhcmNoLWluZGV4JztcbmltcG9ydCB7VHlwZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NhdGVnb3JpZXN9IGZyb20gJy4uL2NhdGVnb3JpZXMnO1xuaW1wb3J0IHtGb3JtQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IG1vbWVudCwge01vbWVudH0gZnJvbSAnbW9tZW50JztcbmltcG9ydCB7Q2F0ZWdvcnlNZXRhZGF0YUNvbmZpZ3VyYXRpb259IGZyb20gJy4uLy4uL3BlcnNpc3RhbmNlL2dlbmVyYXRvci1tZXRhZGF0YSc7XG5pbXBvcnQge01vcmVUaGFuRXF1YWx9IGZyb20gJy4uLy4uL29wZXJhdG9yL21vcmUtdGhhbi1lcXVhbCc7XG5pbXBvcnQge0xlc3NUaGFuRXF1YWx9IGZyb20gJy4uLy4uL29wZXJhdG9yL2xlc3MtdGhhbi1lcXVhbCc7XG5pbXBvcnQge01vcmVUaGFuRXF1YWxEYXRlfSBmcm9tICcuLi8uLi9vcGVyYXRvci9tb3JlLXRoYW4tZXF1YWwtZGF0ZSc7XG5pbXBvcnQge0xlc3NUaGFuRXF1YWxEYXRlfSBmcm9tICcuLi8uLi9vcGVyYXRvci9sZXNzLXRoYW4tZXF1YWwtZGF0ZSc7XG5pbXBvcnQge01vcmVUaGFuRXF1YWxEYXRlVGltZX0gZnJvbSAnLi4vLi4vb3BlcmF0b3IvbW9yZS10aGFuLWVxdWFsLWRhdGUtdGltZSc7XG5pbXBvcnQge0xlc3NUaGFuRXF1YWxEYXRlVGltZX0gZnJvbSAnLi4vLi4vb3BlcmF0b3IvbGVzcy10aGFuLWVxdWFsLWRhdGUtdGltZSc7XG5pbXBvcnQge0ZpbHRlclRleHRTZWdtZW50fSBmcm9tICcuLi8uLi9wZXJzaXN0YW5jZS9maWx0ZXItdGV4dC1zZWdtZW50JztcbmltcG9ydCB7VXNlckF1dG9jb21wbGV0ZX0gZnJvbSAnLi4vdXNlci1hdXRvY29tcGxldGUnO1xuXG5pbnRlcmZhY2UgRGF0YWZpZWxkIHtcbiAgICBuZXRJZGVudGlmaWVyOiBzdHJpbmc7XG4gICAgZmllbGRJZDogc3RyaW5nO1xuICAgIGZpZWxkVHlwZTogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgQ2FzZURhdGFzZXQgZXh0ZW5kcyBDYXRlZ29yeTxEYXRhZmllbGQ+IGltcGxlbWVudHMgQXV0b2NvbXBsZXRlT3B0aW9ucyB7XG5cbiAgICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBfaTE4biA9ICdzZWFyY2guY2F0ZWdvcnkuY2FzZS5kYXRhc2V0JztcbiAgICBwcm90ZWN0ZWQgc3RhdGljIERJU0FCTEVEX1RZUEVTID0gWydidXR0b24nLCAndGFza1JlZicsICdjYXNlUmVmJywgJ2ZpbHRlciddO1xuICAgIHByb3RlY3RlZCBzdGF0aWMgcmVhZG9ubHkgREFUQUZJRUxEX01FVEFEQVRBID0gJ2RhdGFmaWVsZCc7XG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgQVVUT0NPTVBMRVRFX0lDT04gPSAnYWNjb3VudF9jaXJjbGUnO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9EQVRBRklFTERfSU5QVVQ6IENvbmZpZ3VyYXRpb25JbnB1dDtcblxuICAgIHByb3RlY3RlZCBfcHJvY2Vzc0NhdGVnb3J5OiBDYXNlUHJvY2VzcztcblxuICAgIHByb3RlY3RlZCBfY29uZmlndXJhdGlvbklucHV0cyQ6IEJlaGF2aW9yU3ViamVjdDxBcnJheTxDb25maWd1cmF0aW9uSW5wdXQ+PjtcblxuICAgIHByb3RlY3RlZCBfZGF0YWZpZWxkT3B0aW9uczogTWFwPHN0cmluZywgQXJyYXk8RGF0YWZpZWxkPj47XG5cbiAgICBwcml2YXRlIF9kYXRhZmllbGRPcHRpb25zSW5pdGlhbGl6ZWQkOiBSZXBsYXlTdWJqZWN0PHZvaWQ+O1xuICAgIHByaXZhdGUgX2FsbG93ZWROZXRzU3ViOiBTdWJzY3JpcHRpb247XG4gICAgcHJpdmF0ZSBfdXNlckF1dG9jb21wbGV0ZTogVXNlckF1dG9jb21wbGV0ZTtcblxuICAgIHB1YmxpYyBzdGF0aWMgRmllbGRUeXBlVG9JbnB1dFR5cGUoZmllbGRUeXBlOiBzdHJpbmcpOiBTZWFyY2hJbnB1dFR5cGUge1xuICAgICAgICBzd2l0Y2ggKGZpZWxkVHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnZGF0ZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFNlYXJjaElucHV0VHlwZS5EQVRFO1xuICAgICAgICAgICAgY2FzZSAnZGF0ZVRpbWUnOlxuICAgICAgICAgICAgICAgIHJldHVybiBTZWFyY2hJbnB1dFR5cGUuREFURV9USU1FO1xuICAgICAgICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gU2VhcmNoSW5wdXRUeXBlLk5VTUJFUjtcbiAgICAgICAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgICAgICAgICAgIHJldHVybiBTZWFyY2hJbnB1dFR5cGUuQk9PTEVBTjtcbiAgICAgICAgICAgIGNhc2UgJ3VzZXInOlxuICAgICAgICAgICAgICAgIHJldHVybiBTZWFyY2hJbnB1dFR5cGUuQVVUT0NPTVBMRVRFO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gU2VhcmNoSW5wdXRUeXBlLlRFWFQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihvcGVyYXRvcnM6IE9wZXJhdG9yU2VydmljZSwgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlLCBwcm90ZWN0ZWQgX29wdGlvbmFsRGVwZW5kZW5jaWVzOiBPcHRpb25hbERlcGVuZGVuY2llcykge1xuICAgICAgICBzdXBlcih1bmRlZmluZWQsXG4gICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICBgJHtDYXNlRGF0YXNldC5faTE4bn0ubmFtZWAsXG4gICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICBsb2dnZXIsXG4gICAgICAgICAgICBvcGVyYXRvcnMpO1xuXG4gICAgICAgIHRoaXMuX3Byb2Nlc3NDYXRlZ29yeSA9IHRoaXMuX29wdGlvbmFsRGVwZW5kZW5jaWVzLmNhdGVnb3J5RmFjdG9yeS5nZXQoQ2FzZVByb2Nlc3MpIGFzIENhc2VQcm9jZXNzO1xuICAgICAgICB0aGlzLl9wcm9jZXNzQ2F0ZWdvcnkuc2VsZWN0RGVmYXVsdE9wZXJhdG9yKCk7XG5cbiAgICAgICAgdGhpcy5fZGF0YWZpZWxkT3B0aW9ucyA9IG5ldyBNYXA8c3RyaW5nLCBBcnJheTxEYXRhZmllbGQ+PigpO1xuICAgICAgICB0aGlzLl91c2VyQXV0b2NvbXBsZXRlID0gbmV3IFVzZXJBdXRvY29tcGxldGUodGhpcy5fb3B0aW9uYWxEZXBlbmRlbmNpZXMpO1xuICAgICAgICB0aGlzLmNyZWF0ZURhdGFmaWVsZE9wdGlvbnMoKTtcblxuICAgICAgICB0aGlzLl9EQVRBRklFTERfSU5QVVQgPSBuZXcgQ29uZmlndXJhdGlvbklucHV0KFxuICAgICAgICAgICAgU2VhcmNoSW5wdXRUeXBlLkFVVE9DT01QTEVURSxcbiAgICAgICAgICAgICdzZWFyY2guY2F0ZWdvcnkuY2FzZS5kYXRhc2V0LnBsYWNlaG9sZGVyLmZpZWxkJyxcbiAgICAgICAgICAgIHRydWUsXG4gICAgICAgICAgICB0aGlzLl9kYXRhZmllbGRPcHRpb25zLFxuICAgICAgICAgICAgKG1hcEtleXMsIG5ld1ZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1hcEtleXMubWFwKHNlcmlhbGl6ZWRNYXBLZXkgPT4gRGF0YWZpZWxkTWFwS2V5LnBhcnNlKHNlcmlhbGl6ZWRNYXBLZXkpKVxuICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKG1hcEtleSA9PiBtYXBLZXkudGl0bGUudG9Mb2NhbGVMb3dlckNhc2UoKS5zdGFydHNXaXRoKG5ld1ZhbHVlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5fY29uZmlndXJhdGlvbklucHV0cyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFycmF5PENvbmZpZ3VyYXRpb25JbnB1dD4+KFt0aGlzLl9EQVRBRklFTERfSU5QVVRdKTtcblxuICAgICAgICB0aGlzLl9EQVRBRklFTERfSU5QVVQudmFsdWVDaGFuZ2VzJCgpLnN1YnNjcmliZShuZXdWYWx1ZSA9PiB7XG4gICAgICAgICAgICBpZiAobmV3VmFsdWUgPT09IHVuZGVmaW5lZCB8fCB0eXBlb2YgbmV3VmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY29uZmlndXJhdGlvbklucHV0cyQubmV4dChbdGhpcy5fREFUQUZJRUxEX0lOUFVUXSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2NvbmZpZ3VyYXRpb25JbnB1dHMkLmdldFZhbHVlKCkubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY29uZmlndXJhdGlvbklucHV0cyQubmV4dChbdGhpcy5fREFUQUZJRUxEX0lOUFVULCB0aGlzLl9PUEVSQVRPUl9JTlBVVF0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3JGb3JtQ29udHJvbC5zZXRWYWx1ZSh1bmRlZmluZWQpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBkZXN0cm95KCkge1xuICAgICAgICBzdXBlci5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMuX2NvbmZpZ3VyYXRpb25JbnB1dHMkLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuX2RhdGFmaWVsZE9wdGlvbnNJbml0aWFsaXplZCQuY29tcGxldGUoKTtcbiAgICAgICAgaWYgKHRoaXMuX2FsbG93ZWROZXRzU3ViICYmICF0aGlzLl9hbGxvd2VkTmV0c1N1Yi5jbG9zZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2FsbG93ZWROZXRzU3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fcHJvY2Vzc0NhdGVnb3J5LmRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICBnZXQgY29uZmlndXJhdGlvbklucHV0cyQoKTogT2JzZXJ2YWJsZTxBcnJheTxDb25maWd1cmF0aW9uSW5wdXQ+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb25maWd1cmF0aW9uSW5wdXRzJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlucHV0VHlwZSgpOiBTZWFyY2hJbnB1dFR5cGUge1xuICAgICAgICBpZiAoIXRoaXMuaGFzU2VsZWN0ZWREYXRhZmllbGRzKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0lucHV0IHR5cGUgb2YgYXJndW1lbnRzIGNhbm5vdCBiZSBkZXRlcm1pbmVkIGJlZm9yZSBzZWxlY3RpbmcgYSBkYXRhIGZpZWxkIGR1cmluZyB0aGUgY29uZmlndXJhdGlvbi4nKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gQ2FzZURhdGFzZXQuRmllbGRUeXBlVG9JbnB1dFR5cGUodGhpcy5fc2VsZWN0ZWREYXRhZmllbGRzWzBdLmZpZWxkVHlwZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGFsbG93ZWQgb3BlcmF0b3JzIGFyZSBkZXBlbmRhbnQgb24gdGhlIHNlbGVjdGVkIGRhdGEgZmllbGQuXG4gICAgICpcbiAgICAgKiBCZXdhcmUgdGhhdCBpZiB5b3Ugd2FudCB0byBjaGFuZ2UgdGhlIG9yZGVyIG9mIHRoZSBhbGxvd2VkIG9wZXJhdG9ycywgdGhlbiB5b3UgbXVzdCBhbHNvIHVwZGF0ZSB0aGVcbiAgICAgKiBbc2VsZWN0RGVmYXVsdE9wZXJhdG9yKClde0BsaW5rIENhdGVnb3J5I3NlbGVjdERlZmF1bHRPcGVyYXRvcn0gbWV0aG9kLCBzbyB0aGF0IGRlZmF1bHQgb3BlcmF0b3IgZm9yIGVhY2ggZGF0YSBmaWVsZCB0eXBlIG1hdGNoZXNcbiAgICAgKiB0aGUgZGVmYXVsdCBvcGVyYXRvciBvZiB0aGUge0BsaW5rIENhc2VTaW1wbGVEYXRhc2V0fSBzZWFyY2ggY2F0ZWdvcnkuIE90aGVyd2lzZSB0aGUgdHJhbnNpdGlvbiBvZiBoZWFkZXIgc2VhcmNoIGludG8gdGhlIHNlYXJjaCBHVUlcbiAgICAgKiB3b24ndCB3b3JrIHByb3Blcmx5LlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgYWxsb3dlZE9wZXJhdG9ycygpOiBBcnJheTxPcGVyYXRvcjxhbnk+PiB7XG4gICAgICAgIGlmICghdGhpcy5oYXNTZWxlY3RlZERhdGFmaWVsZHMpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuICAgICAgICBzd2l0Y2ggKHRoaXMuX3NlbGVjdGVkRGF0YWZpZWxkc1swXS5maWVsZFR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3JTZXJ2aWNlLmdldE9wZXJhdG9yKEVxdWFscyksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihOb3RFcXVhbHMpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoTW9yZVRoYW4pLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoTW9yZVRoYW5FcXVhbCksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihMZXNzVGhhbiksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihMZXNzVGhhbkVxdWFsKSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3JTZXJ2aWNlLmdldE9wZXJhdG9yKEluUmFuZ2UpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoSXNOdWxsKVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICBjYXNlICdib29sZWFuJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoRXF1YWxzKSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3JTZXJ2aWNlLmdldE9wZXJhdG9yKE5vdEVxdWFscylcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgY2FzZSAndXNlcic6XG4gICAgICAgICAgICBjYXNlICd1c2VyTGlzdCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3JTZXJ2aWNlLmdldE9wZXJhdG9yKEVxdWFscyksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihOb3RFcXVhbHMpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoSXNOdWxsKVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICBjYXNlICdkYXRlJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoRXF1YWxzRGF0ZSksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihOb3RFcXVhbHNEYXRlKSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3JTZXJ2aWNlLmdldE9wZXJhdG9yKE1vcmVUaGFuRGF0ZSksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihNb3JlVGhhbkVxdWFsRGF0ZSksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihMZXNzVGhhbkRhdGUpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoTGVzc1RoYW5FcXVhbERhdGUpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoSW5SYW5nZURhdGUpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoSXNOdWxsKVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICBjYXNlICdkYXRlVGltZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3JTZXJ2aWNlLmdldE9wZXJhdG9yKEVxdWFsc0RhdGVUaW1lKSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3JTZXJ2aWNlLmdldE9wZXJhdG9yKE1vcmVUaGFuRGF0ZVRpbWUpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoTW9yZVRoYW5FcXVhbERhdGVUaW1lKSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3JTZXJ2aWNlLmdldE9wZXJhdG9yKExlc3NUaGFuRGF0ZVRpbWUpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoTGVzc1RoYW5FcXVhbERhdGVUaW1lKSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3JTZXJ2aWNlLmdldE9wZXJhdG9yKEluUmFuZ2VEYXRlVGltZSksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihJc051bGwpXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3JTZXJ2aWNlLmdldE9wZXJhdG9yKFN1YnN0cmluZyksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihFcXVhbHMpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoTm90RXF1YWxzKSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3JTZXJ2aWNlLmdldE9wZXJhdG9yKElzTnVsbCksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihMaWtlKVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJucyBgQ2FzZURhdGFzZXRgIGNhdGVnb3J5IGlzIG5vdCBkaXNwbGF5ZWQgaW4gYm9sZCBmb3IgYmV0dGVyIHJlYWRhYmlsaXR5XG4gICAgICovXG4gICAgZ2V0IGRpc3BsYXlCb2xkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBoYXNTZWxlY3RlZERhdGFmaWVsZHMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9EQVRBRklFTERfSU5QVVQuaXNPcHRpb25TZWxlY3RlZDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IF9zZWxlY3RlZERhdGFmaWVsZHMoKTogQXJyYXk8RGF0YWZpZWxkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kYXRhZmllbGRPcHRpb25zLmdldCh0aGlzLl9EQVRBRklFTERfSU5QVVQuZm9ybUNvbnRyb2wudmFsdWUudmFsdWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZXNldCgpIHtcbiAgICAgICAgc3VwZXIucmVzZXQoKTtcbiAgICAgICAgdGhpcy5fREFUQUZJRUxEX0lOUFVULmNsZWFyKCk7XG4gICAgfVxuXG4gICAgZHVwbGljYXRlKCk6IENhc2VEYXRhc2V0IHtcbiAgICAgICAgcmV0dXJuIG5ldyBDYXNlRGF0YXNldCh0aGlzLl9vcGVyYXRvclNlcnZpY2UsIHRoaXMuX2xvZywgdGhpcy5fb3B0aW9uYWxEZXBlbmRlbmNpZXMpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgZWxhc3RpY0tleXdvcmRzKCk6IEFycmF5PHN0cmluZz4ge1xuICAgICAgICBpZiAoIXRoaXMuaGFzU2VsZWN0ZWREYXRhZmllbGRzKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWREYXRhZmllbGRzLm1hcChkYXRhZmllbGQgPT4gdGhpcy5yZXNvbHZlRWxhc3RpY0tleXdvcmQoZGF0YWZpZWxkKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgcmVzb2x2ZUVsYXN0aWNLZXl3b3JkKGRhdGFmaWVsZDogRGF0YWZpZWxkKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgcmVzb2x2ZXIgPSB0aGlzLl9vcHRpb25hbERlcGVuZGVuY2llcy5zZWFyY2hJbmRleFJlc29sdmVyO1xuICAgICAgICBzd2l0Y2ggKGRhdGFmaWVsZC5maWVsZFR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVyLmdldEluZGV4KGRhdGFmaWVsZC5maWVsZElkLCBTZWFyY2hJbmRleC5OVU1CRVIpO1xuICAgICAgICAgICAgY2FzZSAnZGF0ZSc6XG4gICAgICAgICAgICBjYXNlICdkYXRlVGltZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVyLmdldEluZGV4KGRhdGFmaWVsZC5maWVsZElkLCBTZWFyY2hJbmRleC5USU1FU1RBTVApO1xuICAgICAgICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVyLmdldEluZGV4KGRhdGFmaWVsZC5maWVsZElkLCBTZWFyY2hJbmRleC5CT09MRUFOKTtcbiAgICAgICAgICAgIGNhc2UgJ2ZpbGUnOlxuICAgICAgICAgICAgY2FzZSAnZmlsZUxpc3QnOlxuICAgICAgICAgICAgICAgIHJldHVybiByZXNvbHZlci5nZXRJbmRleChkYXRhZmllbGQuZmllbGRJZCwgU2VhcmNoSW5kZXguRklMRV9OQU1FLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzU2VsZWN0ZWRPcGVyYXRvcihFcXVhbHMpIHx8IHRoaXMuaXNTZWxlY3RlZE9wZXJhdG9yKE5vdEVxdWFscykgfHwgdGhpcy5pc1NlbGVjdGVkT3BlcmF0b3IoU3Vic3RyaW5nKSk7XG4gICAgICAgICAgICBjYXNlICd1c2VyJzpcbiAgICAgICAgICAgIGNhc2UgJ3VzZXJMaXN0JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzb2x2ZXIuZ2V0SW5kZXgoZGF0YWZpZWxkLmZpZWxkSWQsIFNlYXJjaEluZGV4LlVTRVJfSUQpO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzb2x2ZXIuZ2V0SW5kZXgoZGF0YWZpZWxkLmZpZWxkSWQsIFNlYXJjaEluZGV4LkZVTExURVhULFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzU2VsZWN0ZWRPcGVyYXRvcihFcXVhbHMpIHx8IHRoaXMuaXNTZWxlY3RlZE9wZXJhdG9yKE5vdEVxdWFscykgfHwgdGhpcy5pc1NlbGVjdGVkT3BlcmF0b3IoU3Vic3RyaW5nKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgaW5wdXRQbGFjZWhvbGRlcigpOiBzdHJpbmcge1xuICAgICAgICBpZiAoIXRoaXMuaGFzU2VsZWN0ZWREYXRhZmllbGRzKSB7XG4gICAgICAgICAgICByZXR1cm4gYCR7Q2FzZURhdGFzZXQuX2kxOG59LnBsYWNlaG9sZGVyLmZpZWxkYDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYCR7Q2FzZURhdGFzZXQuX2kxOG59LnBsYWNlaG9sZGVyLnZhbHVlYDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGRhdGFmaWVsZE9wdGlvbnNJbml0aWFsaXplZCQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kYXRhZmllbGRPcHRpb25zSW5pdGlhbGl6ZWQkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZW5lcmF0ZVF1ZXJ5KHVzZXJJbnB1dDogQXJyYXk8dW5rbm93bj4pOiBRdWVyeSB7XG4gICAgICAgIGxldCBxdWVyeUdlbmVyYXRpb25TdHJhdGVneTtcbiAgICAgICAgaWYgKHRoaXMuaXNTZWxlY3RlZE9wZXJhdG9yKElzTnVsbCkpIHtcbiAgICAgICAgICAgIHF1ZXJ5R2VuZXJhdGlvblN0cmF0ZWd5ID0gKGQsIF8pID0+IHRoaXMuaXNOdWxsT3BlcmF0b3JRdWVyeUdlbmVyYXRpb25TdHJhdGVneShkKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlucHV0VHlwZSA9PT0gU2VhcmNoSW5wdXRUeXBlLkFVVE9DT01QTEVURSkge1xuICAgICAgICAgICAgcXVlcnlHZW5lcmF0aW9uU3RyYXRlZ3kgPSAoZCwgdWkpID0+IHRoaXMuc3RhbmRhcmRRdWVyeUdlbmVyYXRpb25TdHJhdGVneShkLCB1aVswXSwgZmFsc2UpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcXVlcnlHZW5lcmF0aW9uU3RyYXRlZ3kgPSAoZCwgdWkpID0+IHRoaXMuc3RhbmRhcmRRdWVyeUdlbmVyYXRpb25TdHJhdGVneShkLCB1aSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBxdWVyaWVzID0gdGhpcy5fc2VsZWN0ZWREYXRhZmllbGRzLm1hcChkYXRhZmllbGQgPT4gcXVlcnlHZW5lcmF0aW9uU3RyYXRlZ3koZGF0YWZpZWxkLCB1c2VySW5wdXQpKTtcbiAgICAgICAgcmV0dXJuIFF1ZXJ5LmNvbWJpbmVRdWVyaWVzKHF1ZXJpZXMsIEJvb2xlYW5PcGVyYXRvci5PUik7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHN0YW5kYXJkUXVlcnlHZW5lcmF0aW9uU3RyYXRlZ3koZGF0YWZpZWxkOiBEYXRhZmllbGQsIHVzZXJJbnB1dDogQXJyYXk8dW5rbm93bj4sIGVzY2FwZUlucHV0ID0gdHJ1ZSk6IFF1ZXJ5IHtcbiAgICAgICAgY29uc3QgdmFsdWVRdWVyeSA9IHRoaXMuc2VsZWN0ZWRPcGVyYXRvci5jcmVhdGVRdWVyeSh0aGlzLmVsYXN0aWNLZXl3b3JkcywgdXNlcklucHV0LCBlc2NhcGVJbnB1dCk7XG4gICAgICAgIGNvbnN0IG5ldFF1ZXJ5ID0gdGhpcy5nZW5lcmF0ZU5ldENvbnN0cmFpbnQoZGF0YWZpZWxkKTtcbiAgICAgICAgcmV0dXJuIFF1ZXJ5LmNvbWJpbmVRdWVyaWVzKFt2YWx1ZVF1ZXJ5LCBuZXRRdWVyeV0sIEJvb2xlYW5PcGVyYXRvci5BTkQpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBpc051bGxPcGVyYXRvclF1ZXJ5R2VuZXJhdGlvblN0cmF0ZWd5KGRhdGFmaWVsZDogRGF0YWZpZWxkKTogUXVlcnkge1xuICAgICAgICBjb25zdCBjb25zdHJhaW50ID0gdGhpcy5nZW5lcmF0ZU5ldENvbnN0cmFpbnQoZGF0YWZpZWxkKTtcbiAgICAgICAgcmV0dXJuICh0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoSXNOdWxsKSBhcyBJc051bGwpLmNyZWF0ZVF1ZXJ5V2l0aENvbnN0cmFpbnQodGhpcy5lbGFzdGljS2V5d29yZHMsIGNvbnN0cmFpbnQpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZW5lcmF0ZU5ldENvbnN0cmFpbnQoZGF0YWZpZWxkOiBEYXRhZmllbGQpOiBRdWVyeSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wcm9jZXNzQ2F0ZWdvcnkuZ2VuZXJhdGVQcmVkaWNhdGUoW1tkYXRhZmllbGQubmV0SWRlbnRpZmllcl1dKS5xdWVyeTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlRGF0YWZpZWxkT3B0aW9ucygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZGF0YWZpZWxkT3B0aW9uc0luaXRpYWxpemVkJCA9IG5ldyBSZXBsYXlTdWJqZWN0PHZvaWQ+KDEpO1xuICAgICAgICB0aGlzLl9hbGxvd2VkTmV0c1N1YiA9IHRoaXMuX29wdGlvbmFsRGVwZW5kZW5jaWVzLmFsbG93ZWROZXRzU2VydmljZS5hbGxvd2VkTmV0cyQuc3Vic2NyaWJlKGFsbG93ZWROZXRzID0+IHtcbiAgICAgICAgICAgIGFsbG93ZWROZXRzLmZvckVhY2gocGV0cmlOZXQgPT4ge1xuICAgICAgICAgICAgICAgIHBldHJpTmV0LmltbWVkaWF0ZURhdGFcbiAgICAgICAgICAgICAgICAgICAgLmZpbHRlcihpbW1lZGlhdGVEYXRhID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbW1lZGlhdGVEYXRhLnRpdGxlICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiBpbW1lZGlhdGVEYXRhLnRpdGxlLnRyaW0oKS5sZW5ndGggPiAwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgIUNhc2VEYXRhc2V0LkRJU0FCTEVEX1RZUEVTLmluY2x1ZGVzKGltbWVkaWF0ZURhdGEudHlwZSk7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIC5mb3JFYWNoKGltbWVkaWF0ZURhdGEgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHR5cGUgPSBpbW1lZGlhdGVEYXRhLnR5cGU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZvciBzZWFyY2ggcHVycG9zZXMsIGVudW1lcmF0aW9uIGFuZCBtdWx0aWNob2ljZSBtYXBzIGFyZSBlcXVpdmFsZW50IHRvIHRoZWlyIHNpbXBsZXIgY291bnRlcnBhcnRzXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZSA9PT0gJ2VudW1lcmF0aW9uX21hcCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ2VudW1lcmF0aW9uJztcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ211bHRpY2hvaWNlX21hcCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gJ211bHRpY2hvaWNlJztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGRUb0RhdGFmaWVsZE9wdGlvbnNNYXAoRGF0YWZpZWxkTWFwS2V5LnNlcmlhbGl6ZWRGb3JtKGltbWVkaWF0ZURhdGEudHlwZSwgaW1tZWRpYXRlRGF0YS50aXRsZSksIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXRJZGVudGlmaWVyOiBwZXRyaU5ldC5pZGVudGlmaWVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkSWQ6IGltbWVkaWF0ZURhdGEuc3RyaW5nSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRUeXBlOiBpbW1lZGlhdGVEYXRhLnR5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuX2RhdGFmaWVsZE9wdGlvbnNJbml0aWFsaXplZCQubmV4dCgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBmaWx0ZXJPcHRpb25zKHVzZXJJbnB1dDogT2JzZXJ2YWJsZTxzdHJpbmcgfCBTZWFyY2hBdXRvY29tcGxldGVPcHRpb248QXJyYXk8c3RyaW5nPj4+KTpcbiAgICAgICAgT2JzZXJ2YWJsZTxBcnJheTxTZWFyY2hBdXRvY29tcGxldGVPcHRpb248QXJyYXk8c3RyaW5nPj4+PiB7XG5cbiAgICAgICAgaWYgKCF0aGlzLmhhc1NlbGVjdGVkRGF0YWZpZWxkcykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgY2F0ZWdvcnkgbXVzdCBiZSBmdWxseSBjb25maWd1cmVkIGJlZm9yZSBhdHRlbXB0aW5nIHRvIGdldCBhdXRvY29tcGxldGUgb3B0aW9ucyEnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5pbnB1dFR5cGUgIT09IFNlYXJjaElucHV0VHlwZS5BVVRPQ09NUExFVEUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGZpbHRlciBvcHRpb25zIG9mIG5vbi1hdXRvY29tcGxldGUgb3BlcmFuZHMnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLl91c2VyQXV0b2NvbXBsZXRlLmZpbHRlck9wdGlvbnModXNlcklucHV0KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2VsZWN0RGF0YWZpZWxkcyhkYXRhZmllbGRNYXBLZXk6IHN0cmluZywgc2VsZWN0RGVmYXVsdE9wZXJhdG9yID0gdHJ1ZSk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2RhdGFmaWVsZE9wdGlvbnMuaGFzKGRhdGFmaWVsZE1hcEtleSkpIHtcbiAgICAgICAgICAgIHRoaXMuX2xvZy53YXJuKGBUaGUgcHJvdmlkZWQgJ2RhdGFmaWVsZE1hcEtleScgKCR7ZGF0YWZpZWxkTWFwS2V5fSkgZG9lcyBub3QgZXhpc3QuYCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fREFUQUZJRUxEX0lOUFVULmZvcm1Db250cm9sLnNldFZhbHVlKERhdGFmaWVsZE1hcEtleS5wYXJzZShkYXRhZmllbGRNYXBLZXkpKTtcbiAgICAgICAgaWYgKHNlbGVjdERlZmF1bHRPcGVyYXRvcikge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3REZWZhdWx0T3BlcmF0b3IoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZHMgYSBuZXcgZW50cnkgb3IgcHVzaGVzIHZhbHVlIGludG8gYW4gZXhpc3RpbmcgZW50cnkuXG4gICAgICogV2hlbiBhIG5ldyBlbnRyeSBpcyBjcmVhdGVkLCBpdCBpcyBjcmVhdGVkIGFzIGFuIEFycmF5IG9mIG9uZSBlbGVtZW50LlxuICAgICAqIEBwYXJhbSBrZXkgd2hlcmUgaW4gdGhlIG1hcCBzaG91bGQgdGhlIHZhbHVlIGJlIGFkZGVkXG4gICAgICogQHBhcmFtIHZhbHVlIHRoZSB2YWx1ZSB0aGF0IHNob3VsZCBiZSBhZGRlZCB0byB0aGUgbWFwXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGFkZFRvRGF0YWZpZWxkT3B0aW9uc01hcChrZXk6IHN0cmluZywgdmFsdWU6IERhdGFmaWVsZCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fZGF0YWZpZWxkT3B0aW9ucy5oYXMoa2V5KSkge1xuICAgICAgICAgICAgdGhpcy5fZGF0YWZpZWxkT3B0aW9ucy5nZXQoa2V5KS5wdXNoKHZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2RhdGFmaWVsZE9wdGlvbnMuc2V0KGtleSwgW3ZhbHVlXSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgaXNPcGVyYW5kVmFsdWVTZWxlY3RlZChuZXdWYWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghdGhpcy5pc09wZXJhdG9yU2VsZWN0ZWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGxldCBpbnB1dFR5cGU6IFNlYXJjaElucHV0VHlwZTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlucHV0VHlwZSA9IHRoaXMuaW5wdXRUeXBlO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBzd2l0Y2ggKGlucHV0VHlwZSkge1xuICAgICAgICAgICAgY2FzZSBTZWFyY2hJbnB1dFR5cGUuTlVNQkVSOlxuICAgICAgICAgICAgICAgIHJldHVybiB0eXBlb2YgbmV3VmFsdWUgPT09ICdudW1iZXInO1xuICAgICAgICAgICAgY2FzZSBTZWFyY2hJbnB1dFR5cGUuQk9PTEVBTjpcbiAgICAgICAgICAgICAgICByZXR1cm4gdHlwZW9mIG5ld1ZhbHVlID09PSAnYm9vbGVhbic7XG4gICAgICAgICAgICBjYXNlIFNlYXJjaElucHV0VHlwZS5BVVRPQ09NUExFVEU6XG4gICAgICAgICAgICAgICAgcmV0dXJuICEoIW5ld1ZhbHVlIHx8IHR5cGVvZiBuZXdWYWx1ZSA9PT0gJ3N0cmluZycpO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gISFuZXdWYWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBlcmZvcm1zIGEgdHJhbnNmb3JtYXRpb24gb2YgdGhlIGBGb3JtQ29udHJvbGAgdmFsdWUgYmVmb3JlIHBhc3NpbmcgaXQgaW50byB0aGUgc2VsZWN0ZWQgYE9wZXJhdG9yYCBmb3IgcXVlcnkgZ2VuZXJhdGlvbi5cbiAgICAgKiBJdCBpcyBtb3N0bHkgdXNlZnVsIG9ubHkgZm9yIEF1dG9jb21wbGV0ZUNhdGVnb3JpZXMsIHdoZXJlIHRoZSBzZWxlY3RlZCB2YWx1ZSBvZiB0aGUgRm9ybUNvbnRyb2wgaXMgYW4gb2JqZWN0LlxuICAgICAqXG4gICAgICogQHBhcmFtIHZhbHVlIHRoZSBGb3JtQ29udHJvbFZhbHVlXG4gICAgICogQHJldHVybnMgSWYgdGhlIHNlbGVjdGVkIGRhdGEgZmllbGQgaGFzIGlucHV0IHR5cGUgYEFVVE9DT01QTEVURWAgdGhlbiByZXR1cm5zIHRoZSB7QGxpbmsgU2VhcmNoQXV0b2NvbXBsZXRlT3B0aW9ufSBgdmFsdWVgXG4gICAgICogYXR0cmlidXRlLiBPdGhlcndpc2UgcGVyZm9ybXMgYW4gaWRlbnRpdHkgb3BlcmF0aW9uLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCB0cmFuc2Zvcm1DYXRlZ29yeVZhbHVlKHZhbHVlOiBhbnkpOiBhbnkge1xuICAgICAgICBpZiAodGhpcy5pbnB1dFR5cGUgPT09IFNlYXJjaElucHV0VHlwZS5BVVRPQ09NUExFVEUpIHtcbiAgICAgICAgICAgIHJldHVybiAodmFsdWUgYXMgU2VhcmNoQXV0b2NvbXBsZXRlT3B0aW9uPEFycmF5PG51bWJlcj4+KS52YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgc2VyaWFsaXplQ2xhc3MoKTogQ2F0ZWdvcmllcyB8IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBDYXRlZ29yaWVzLkNBU0VfREFUQVNFVDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc2VyaWFsaXplT3BlcmFuZFZhbHVlKHZhbHVlRm9ybUNvbnRyb2w6IEZvcm1Db250cm9sKTogdW5rbm93biB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5pbnB1dFR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgU2VhcmNoSW5wdXRUeXBlLkFVVE9DT01QTEVURTpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fdXNlckF1dG9jb21wbGV0ZS5zZXJpYWxpemVPcGVyYW5kVmFsdWUodmFsdWVGb3JtQ29udHJvbCk7XG4gICAgICAgICAgICBjYXNlIFNlYXJjaElucHV0VHlwZS5EQVRFOlxuICAgICAgICAgICAgY2FzZSBTZWFyY2hJbnB1dFR5cGUuREFURV9USU1FOlxuICAgICAgICAgICAgICAgIHJldHVybiAodmFsdWVGb3JtQ29udHJvbC52YWx1ZSBhcyBNb21lbnQpLnZhbHVlT2YoKTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN1cGVyLnNlcmlhbGl6ZU9wZXJhbmRWYWx1ZSh2YWx1ZUZvcm1Db250cm9sKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBjcmVhdGVNZXRhZGF0YUNvbmZpZ3VyYXRpb24oKTogQ2F0ZWdvcnlNZXRhZGF0YUNvbmZpZ3VyYXRpb24ge1xuICAgICAgICBjb25zdCBjb25maWcgPSBzdXBlci5jcmVhdGVNZXRhZGF0YUNvbmZpZ3VyYXRpb24oKTtcbiAgICAgICAgY29uZmlnW0Nhc2VEYXRhc2V0LkRBVEFGSUVMRF9NRVRBREFUQV0gPSAodGhpcy5fREFUQUZJRUxEX0lOUFVULmZvcm1Db250cm9sLnZhbHVlIGFzIERhdGFmaWVsZE1hcEtleSkudG9TZXJpYWxpemVkRm9ybSgpO1xuICAgICAgICByZXR1cm4gY29uZmlnO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBsb2FkQ29uZmlndXJhdGlvbkZyb21NZXRhZGF0YShjb25maWd1cmF0aW9uOiBDYXRlZ29yeU1ldGFkYXRhQ29uZmlndXJhdGlvbik6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICBjb25zdCByZXN1bHQkID0gbmV3IFJlcGxheVN1YmplY3Q8dm9pZD4oMSk7XG4gICAgICAgIHRoaXMuZGF0YWZpZWxkT3B0aW9uc0luaXRpYWxpemVkJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc2VyaWFsaXplZE1hcEtleSA9IGNvbmZpZ3VyYXRpb25bQ2FzZURhdGFzZXQuREFUQUZJRUxEX01FVEFEQVRBXSBhcyBzdHJpbmc7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdERhdGFmaWVsZHMoc2VyaWFsaXplZE1hcEtleSwgZmFsc2UpO1xuICAgICAgICAgICAgaWYgKCF0aGlzLmhhc1NlbGVjdGVkRGF0YWZpZWxkcykge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgU2VhcmNoZWQgZGF0YSBmaWVsZHMgY2Fubm90IGJlIHJlc3RvcmVkIGZyb20gdGhlIHByb3ZpZGVkIGNvbmZpZ3VyYXRpb24gKCR7c2VyaWFsaXplZE1hcEtleVxuICAgICAgICAgICAgICAgIH0pLiBNYWtlIHN1cmUsIHRoYXQgdGhlIGNvcnJlY3QgYWxsb3dlZCBuZXRzIGFyZSBwcm92aWRlZCBpbiB0aGlzIHZpZXcuYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzdXBlci5sb2FkQ29uZmlndXJhdGlvbkZyb21NZXRhZGF0YShjb25maWd1cmF0aW9uKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJlc3VsdCQubmV4dCgpO1xuICAgICAgICAgICAgICAgIHJlc3VsdCQuY29tcGxldGUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGRlc2VyaWFsaXplT3BlcmFuZFZhbHVlKHZhbHVlOiB1bmtub3duKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgc3dpdGNoICh0aGlzLmlucHV0VHlwZSkge1xuICAgICAgICAgICAgY2FzZSBTZWFyY2hJbnB1dFR5cGUuQVVUT0NPTVBMRVRFOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl91c2VyQXV0b2NvbXBsZXRlLmRlc2VyaWFsaXplT3BlcmFuZFZhbHVlKHZhbHVlIGFzIFNlYXJjaEF1dG9jb21wbGV0ZU9wdGlvbjxBcnJheTxzdHJpbmc+Pik7XG4gICAgICAgICAgICBjYXNlIFNlYXJjaElucHV0VHlwZS5EQVRFOlxuICAgICAgICAgICAgY2FzZSBTZWFyY2hJbnB1dFR5cGUuREFURV9USU1FOlxuICAgICAgICAgICAgICAgIHJldHVybiBvZihtb21lbnQodmFsdWUgYXMgc3RyaW5nKSk7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBzdXBlci5kZXNlcmlhbGl6ZU9wZXJhbmRWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlQ29uZmlndXJhdGlvbkZpbHRlclRleHRTZWdtZW50cygpOiBBcnJheTxGaWx0ZXJUZXh0U2VnbWVudD4ge1xuICAgICAgICByZXR1cm4gW3tzZWdtZW50OiB0aGlzLl9jb25maWd1cmF0aW9uSW5wdXRzJC52YWx1ZVswXS5mb3JtQ29udHJvbC52YWx1ZS50ZXh0LCBib2xkOiB0cnVlfV07XG4gICAgfVxufVxuIl19
|
|
396
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1kYXRhc2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi9zZWFyY2gvbW9kZWxzL2NhdGVnb3J5L2Nhc2UvY2FzZS1kYXRhc2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUUxQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTFELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQWMsRUFBRSxFQUFFLGFBQWEsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDcEYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN2QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHdCQUF3QixD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QyxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO0lBQy9GLENBQUM7O0FBbGF1QixpQkFBSyxHQUFHLDhCQUE4QixDQUFDO0FBQzlDLDBCQUFjLEdBQUcsQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUNuRCw4QkFBa0IsR0FBRyxXQUFXLENBQUM7QUFDbkMsNkJBQWlCLEdBQUcsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPcGVyYXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9vcGVyYXRvci1zZXJ2aWNlL29wZXJhdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9nZ2VyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL2xvZ2dlci9zZXJ2aWNlcy9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBPcGVyYXRvciB9IGZyb20gJy4uLy4uL29wZXJhdG9yL29wZXJhdG9yJztcbmltcG9ydCB7IFF1ZXJ5IH0gZnJvbSAnLi4vLi4vcXVlcnkvcXVlcnknO1xuaW1wb3J0IHsgT3B0aW9uYWxEZXBlbmRlbmNpZXMgfSBmcm9tICcuLi8uLi8uLi9jYXRlZ29yeS1mYWN0b3J5L29wdGlvbmFsLWRlcGVuZGVuY2llcyc7XG5pbXBvcnQgeyBTZWFyY2hJbnB1dFR5cGUgfSBmcm9tICcuLi9zZWFyY2gtaW5wdXQtdHlwZSc7XG5pbXBvcnQgeyBEYXRhZmllbGRNYXBLZXkgfSBmcm9tICcuLi8uLi9kYXRhZmllbGQtbWFwLWtleSc7XG5pbXBvcnQgeyBTZWFyY2hBdXRvY29tcGxldGVPcHRpb24gfSBmcm9tICcuLi9zZWFyY2gtYXV0b2NvbXBsZXRlLW9wdGlvbic7XG5pbXBvcnQgeyBCb29sZWFuT3BlcmF0b3IgfSBmcm9tICcuLi8uLi9ib29sZWFuLW9wZXJhdG9yJztcbmltcG9ydCB7IENhc2VQcm9jZXNzIH0gZnJvbSAnLi9jYXNlLXByb2Nlc3MnO1xuaW1wb3J0IHsgRXF1YWxzRGF0ZSB9IGZyb20gJy4uLy4uL29wZXJhdG9yL2VxdWFscy1kYXRlJztcbmltcG9ydCB7IFN1YnN0cmluZyB9IGZyb20gJy4uLy4uL29wZXJhdG9yL3N1YnN0cmluZyc7XG5pbXBvcnQgeyBFcXVhbHNEYXRlVGltZSB9IGZyb20gJy4uLy4uL29wZXJhdG9yL2VxdWFscy1kYXRlLXRpbWUnO1xuaW1wb3J0IHsgRXF1YWxzIH0gZnJvbSAnLi4vLi4vb3BlcmF0b3IvZXF1YWxzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgb2YsIFJlcGxheVN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ2F0ZWdvcnkgfSBmcm9tICcuLi9jYXRlZ29yeSc7XG5pbXBvcnQgeyBOb3RFcXVhbHMgfSBmcm9tICcuLi8uLi9vcGVyYXRvci9ub3QtZXF1YWxzJztcbmltcG9ydCB7IE1vcmVUaGFuIH0gZnJvbSAnLi4vLi4vb3BlcmF0b3IvbW9yZS10aGFuJztcbmltcG9ydCB7IExlc3NUaGFuIH0gZnJvbSAnLi4vLi4vb3BlcmF0b3IvbGVzcy10aGFuJztcbmltcG9ydCB7IEluUmFuZ2UgfSBmcm9tICcuLi8uLi9vcGVyYXRvci9pbi1yYW5nZSc7XG5pbXBvcnQgeyBJc051bGwgfSBmcm9tICcuLi8uLi9vcGVyYXRvci9pcy1udWxsJztcbmltcG9ydCB7IExpa2UgfSBmcm9tICcuLi8uLi9vcGVyYXRvci9saWtlJztcbmltcG9ydCB7IE5vdEVxdWFsc0RhdGUgfSBmcm9tICcuLi8uLi9vcGVyYXRvci9ub3QtZXF1YWxzLWRhdGUnO1xuaW1wb3J0IHsgTW9yZVRoYW5EYXRlIH0gZnJvbSAnLi4vLi4vb3BlcmF0b3IvbW9yZS10aGFuLWRhdGUnO1xuaW1wb3J0IHsgTGVzc1RoYW5EYXRlIH0gZnJvbSAnLi4vLi4vb3BlcmF0b3IvbGVzcy10aGFuLWRhdGUnO1xuaW1wb3J0IHsgSW5SYW5nZURhdGUgfSBmcm9tICcuLi8uLi9vcGVyYXRvci9pbi1yYW5nZS1kYXRlJztcbmltcG9ydCB7IE1vcmVUaGFuRGF0ZVRpbWUgfSBmcm9tICcuLi8uLi9vcGVyYXRvci9tb3JlLXRoYW4tZGF0ZS10aW1lJztcbmltcG9ydCB7IExlc3NUaGFuRGF0ZVRpbWUgfSBmcm9tICcuLi8uLi9vcGVyYXRvci9sZXNzLXRoYW4tZGF0ZS10aW1lJztcbmltcG9ydCB7IEluUmFuZ2VEYXRlVGltZSB9IGZyb20gJy4uLy4uL29wZXJhdG9yL2luLXJhbmdlLWRhdGUtdGltZSc7XG5pbXBvcnQgeyBBdXRvY29tcGxldGVPcHRpb25zIH0gZnJvbSAnLi4vYXV0b2NvbXBsZXRlLW9wdGlvbnMnO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvbklucHV0IH0gZnJvbSAnLi4vLi4vY29uZmlndXJhdGlvbi1pbnB1dCc7XG5pbXBvcnQgeyBTZWFyY2hJbmRleCB9IGZyb20gJy4uLy4uL3NlYXJjaC1pbmRleCc7XG5pbXBvcnQgeyBDYXRlZ29yaWVzIH0gZnJvbSAnLi4vY2F0ZWdvcmllcyc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCBtb21lbnQsIHsgTW9tZW50IH0gZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IENhdGVnb3J5TWV0YWRhdGFDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vLi4vcGVyc2lzdGFuY2UvZ2VuZXJhdG9yLW1ldGFkYXRhJztcbmltcG9ydCB7IE1vcmVUaGFuRXF1YWwgfSBmcm9tICcuLi8uLi9vcGVyYXRvci9tb3JlLXRoYW4tZXF1YWwnO1xuaW1wb3J0IHsgTGVzc1RoYW5FcXVhbCB9IGZyb20gJy4uLy4uL29wZXJhdG9yL2xlc3MtdGhhbi1lcXVhbCc7XG5pbXBvcnQgeyBNb3JlVGhhbkVxdWFsRGF0ZSB9IGZyb20gJy4uLy4uL29wZXJhdG9yL21vcmUtdGhhbi1lcXVhbC1kYXRlJztcbmltcG9ydCB7IExlc3NUaGFuRXF1YWxEYXRlIH0gZnJvbSAnLi4vLi4vb3BlcmF0b3IvbGVzcy10aGFuLWVxdWFsLWRhdGUnO1xuaW1wb3J0IHsgTW9yZVRoYW5FcXVhbERhdGVUaW1lIH0gZnJvbSAnLi4vLi4vb3BlcmF0b3IvbW9yZS10aGFuLWVxdWFsLWRhdGUtdGltZSc7XG5pbXBvcnQgeyBMZXNzVGhhbkVxdWFsRGF0ZVRpbWUgfSBmcm9tICcuLi8uLi9vcGVyYXRvci9sZXNzLXRoYW4tZXF1YWwtZGF0ZS10aW1lJztcbmltcG9ydCB7IEZpbHRlclRleHRTZWdtZW50IH0gZnJvbSAnLi4vLi4vcGVyc2lzdGFuY2UvZmlsdGVyLXRleHQtc2VnbWVudCc7XG5pbXBvcnQgeyBVc2VyQXV0b2NvbXBsZXRlIH0gZnJvbSAnLi4vdXNlci1hdXRvY29tcGxldGUnO1xuXG5pbnRlcmZhY2UgRGF0YWZpZWxkIHtcbiAgICBuZXRJZGVudGlmaWVyOiBzdHJpbmc7XG4gICAgZmllbGRJZDogc3RyaW5nO1xuICAgIGZpZWxkVHlwZTogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgQ2FzZURhdGFzZXQgZXh0ZW5kcyBDYXRlZ29yeTxEYXRhZmllbGQ+IGltcGxlbWVudHMgQXV0b2NvbXBsZXRlT3B0aW9ucyB7XG5cbiAgICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBfaTE4biA9ICdzZWFyY2guY2F0ZWdvcnkuY2FzZS5kYXRhc2V0JztcbiAgICBwcm90ZWN0ZWQgc3RhdGljIERJU0FCTEVEX1RZUEVTID0gWydidXR0b24nLCAndGFza1JlZicsICdjYXNlUmVmJywgJ2ZpbHRlciddO1xuICAgIHByb3RlY3RlZCBzdGF0aWMgcmVhZG9ubHkgREFUQUZJRUxEX01FVEFEQVRBID0gJ2RhdGFmaWVsZCc7XG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgQVVUT0NPTVBMRVRFX0lDT04gPSAnYWNjb3VudF9jaXJjbGUnO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9EQVRBRklFTERfSU5QVVQ6IENvbmZpZ3VyYXRpb25JbnB1dDtcblxuICAgIHByb3RlY3RlZCBfcHJvY2Vzc0NhdGVnb3J5OiBDYXNlUHJvY2VzcztcblxuICAgIHByb3RlY3RlZCBfY29uZmlndXJhdGlvbklucHV0cyQ6IEJlaGF2aW9yU3ViamVjdDxBcnJheTxDb25maWd1cmF0aW9uSW5wdXQ+PjtcblxuICAgIHByb3RlY3RlZCBfZGF0YWZpZWxkT3B0aW9uczogTWFwPHN0cmluZywgQXJyYXk8RGF0YWZpZWxkPj47XG5cbiAgICBwcml2YXRlIF9kYXRhZmllbGRPcHRpb25zSW5pdGlhbGl6ZWQkOiBSZXBsYXlTdWJqZWN0PHZvaWQ+O1xuICAgIHByaXZhdGUgX2FsbG93ZWROZXRzU3ViOiBTdWJzY3JpcHRpb247XG4gICAgcHJpdmF0ZSBfdXNlckF1dG9jb21wbGV0ZTogVXNlckF1dG9jb21wbGV0ZTtcblxuICAgIHB1YmxpYyBzdGF0aWMgRmllbGRUeXBlVG9JbnB1dFR5cGUoZmllbGRUeXBlOiBzdHJpbmcpOiBTZWFyY2hJbnB1dFR5cGUge1xuICAgICAgICBzd2l0Y2ggKGZpZWxkVHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnZGF0ZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFNlYXJjaElucHV0VHlwZS5EQVRFO1xuICAgICAgICAgICAgY2FzZSAnZGF0ZVRpbWUnOlxuICAgICAgICAgICAgICAgIHJldHVybiBTZWFyY2hJbnB1dFR5cGUuREFURV9USU1FO1xuICAgICAgICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gU2VhcmNoSW5wdXRUeXBlLk5VTUJFUjtcbiAgICAgICAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgICAgICAgICAgIHJldHVybiBTZWFyY2hJbnB1dFR5cGUuQk9PTEVBTjtcbiAgICAgICAgICAgIGNhc2UgJ3VzZXInOlxuICAgICAgICAgICAgICAgIHJldHVybiBTZWFyY2hJbnB1dFR5cGUuQVVUT0NPTVBMRVRFO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gU2VhcmNoSW5wdXRUeXBlLlRFWFQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihvcGVyYXRvcnM6IE9wZXJhdG9yU2VydmljZSwgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlLCBwcm90ZWN0ZWQgX29wdGlvbmFsRGVwZW5kZW5jaWVzOiBPcHRpb25hbERlcGVuZGVuY2llcykge1xuICAgICAgICBzdXBlcih1bmRlZmluZWQsXG4gICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICBgJHtDYXNlRGF0YXNldC5faTE4bn0ubmFtZWAsXG4gICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICBsb2dnZXIsXG4gICAgICAgICAgICBvcGVyYXRvcnMpO1xuXG4gICAgICAgIHRoaXMuX3Byb2Nlc3NDYXRlZ29yeSA9IHRoaXMuX29wdGlvbmFsRGVwZW5kZW5jaWVzLmNhdGVnb3J5RmFjdG9yeS5nZXQoQ2FzZVByb2Nlc3MpIGFzIENhc2VQcm9jZXNzO1xuICAgICAgICB0aGlzLl9wcm9jZXNzQ2F0ZWdvcnkuc2VsZWN0RGVmYXVsdE9wZXJhdG9yKCk7XG5cbiAgICAgICAgdGhpcy5fZGF0YWZpZWxkT3B0aW9ucyA9IG5ldyBNYXA8c3RyaW5nLCBBcnJheTxEYXRhZmllbGQ+PigpO1xuICAgICAgICB0aGlzLl91c2VyQXV0b2NvbXBsZXRlID0gbmV3IFVzZXJBdXRvY29tcGxldGUodGhpcy5fb3B0aW9uYWxEZXBlbmRlbmNpZXMpO1xuICAgICAgICB0aGlzLmNyZWF0ZURhdGFmaWVsZE9wdGlvbnMoKTtcblxuICAgICAgICB0aGlzLl9EQVRBRklFTERfSU5QVVQgPSBuZXcgQ29uZmlndXJhdGlvbklucHV0KFxuICAgICAgICAgICAgU2VhcmNoSW5wdXRUeXBlLkFVVE9DT01QTEVURSxcbiAgICAgICAgICAgICdzZWFyY2guY2F0ZWdvcnkuY2FzZS5kYXRhc2V0LnBsYWNlaG9sZGVyLmZpZWxkJyxcbiAgICAgICAgICAgIHRydWUsXG4gICAgICAgICAgICB0aGlzLl9kYXRhZmllbGRPcHRpb25zLFxuICAgICAgICAgICAgKG1hcEtleXMsIG5ld1ZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1hcEtleXMubWFwKHNlcmlhbGl6ZWRNYXBLZXkgPT4gRGF0YWZpZWxkTWFwS2V5LnBhcnNlKHNlcmlhbGl6ZWRNYXBLZXkpKVxuICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKG1hcEtleSA9PiBtYXBLZXkudGl0bGUudG9Mb2NhbGVMb3dlckNhc2UoKS5zdGFydHNXaXRoKG5ld1ZhbHVlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5fY29uZmlndXJhdGlvbklucHV0cyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFycmF5PENvbmZpZ3VyYXRpb25JbnB1dD4+KFt0aGlzLl9EQVRBRklFTERfSU5QVVRdKTtcblxuICAgICAgICB0aGlzLl9EQVRBRklFTERfSU5QVVQudmFsdWVDaGFuZ2VzJCgpLnN1YnNjcmliZShuZXdWYWx1ZSA9PiB7XG4gICAgICAgICAgICBpZiAobmV3VmFsdWUgPT09IHVuZGVmaW5lZCB8fCB0eXBlb2YgbmV3VmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY29uZmlndXJhdGlvbklucHV0cyQubmV4dChbdGhpcy5fREFUQUZJRUxEX0lOUFVUXSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2NvbmZpZ3VyYXRpb25JbnB1dHMkLmdldFZhbHVlKCkubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY29uZmlndXJhdGlvbklucHV0cyQubmV4dChbdGhpcy5fREFUQUZJRUxEX0lOUFVULCB0aGlzLl9PUEVSQVRPUl9JTlBVVF0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3JGb3JtQ29udHJvbC5zZXRWYWx1ZSh1bmRlZmluZWQpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBkZXN0cm95KCkge1xuICAgICAgICBzdXBlci5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMuX2NvbmZpZ3VyYXRpb25JbnB1dHMkLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuX2RhdGFmaWVsZE9wdGlvbnNJbml0aWFsaXplZCQuY29tcGxldGUoKTtcbiAgICAgICAgaWYgKHRoaXMuX2FsbG93ZWROZXRzU3ViICYmICF0aGlzLl9hbGxvd2VkTmV0c1N1Yi5jbG9zZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2FsbG93ZWROZXRzU3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fcHJvY2Vzc0NhdGVnb3J5LmRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICBnZXQgY29uZmlndXJhdGlvbklucHV0cyQoKTogT2JzZXJ2YWJsZTxBcnJheTxDb25maWd1cmF0aW9uSW5wdXQ+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb25maWd1cmF0aW9uSW5wdXRzJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlucHV0VHlwZSgpOiBTZWFyY2hJbnB1dFR5cGUge1xuICAgICAgICBpZiAoIXRoaXMuaGFzU2VsZWN0ZWREYXRhZmllbGRzKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0lucHV0IHR5cGUgb2YgYXJndW1lbnRzIGNhbm5vdCBiZSBkZXRlcm1pbmVkIGJlZm9yZSBzZWxlY3RpbmcgYSBkYXRhIGZpZWxkIGR1cmluZyB0aGUgY29uZmlndXJhdGlvbi4nKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gQ2FzZURhdGFzZXQuRmllbGRUeXBlVG9JbnB1dFR5cGUodGhpcy5fc2VsZWN0ZWREYXRhZmllbGRzWzBdLmZpZWxkVHlwZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGFsbG93ZWQgb3BlcmF0b3JzIGFyZSBkZXBlbmRhbnQgb24gdGhlIHNlbGVjdGVkIGRhdGEgZmllbGQuXG4gICAgICpcbiAgICAgKiBCZXdhcmUgdGhhdCBpZiB5b3Ugd2FudCB0byBjaGFuZ2UgdGhlIG9yZGVyIG9mIHRoZSBhbGxvd2VkIG9wZXJhdG9ycywgdGhlbiB5b3UgbXVzdCBhbHNvIHVwZGF0ZSB0aGVcbiAgICAgKiBbc2VsZWN0RGVmYXVsdE9wZXJhdG9yKClde0BsaW5rIENhdGVnb3J5I3NlbGVjdERlZmF1bHRPcGVyYXRvcn0gbWV0aG9kLCBzbyB0aGF0IGRlZmF1bHQgb3BlcmF0b3IgZm9yIGVhY2ggZGF0YSBmaWVsZCB0eXBlIG1hdGNoZXNcbiAgICAgKiB0aGUgZGVmYXVsdCBvcGVyYXRvciBvZiB0aGUge0BsaW5rIENhc2VTaW1wbGVEYXRhc2V0fSBzZWFyY2ggY2F0ZWdvcnkuIE90aGVyd2lzZSB0aGUgdHJhbnNpdGlvbiBvZiBoZWFkZXIgc2VhcmNoIGludG8gdGhlIHNlYXJjaCBHVUlcbiAgICAgKiB3b24ndCB3b3JrIHByb3Blcmx5LlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgYWxsb3dlZE9wZXJhdG9ycygpOiBBcnJheTxPcGVyYXRvcjxhbnk+PiB7XG4gICAgICAgIGlmICghdGhpcy5oYXNTZWxlY3RlZERhdGFmaWVsZHMpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuICAgICAgICBzd2l0Y2ggKHRoaXMuX3NlbGVjdGVkRGF0YWZpZWxkc1swXS5maWVsZFR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3JTZXJ2aWNlLmdldE9wZXJhdG9yKEVxdWFscyksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihOb3RFcXVhbHMpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoTW9yZVRoYW4pLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoTW9yZVRoYW5FcXVhbCksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihMZXNzVGhhbiksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihMZXNzVGhhbkVxdWFsKSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3JTZXJ2aWNlLmdldE9wZXJhdG9yKEluUmFuZ2UpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoSXNOdWxsKVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICBjYXNlICdib29sZWFuJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoRXF1YWxzKSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3JTZXJ2aWNlLmdldE9wZXJhdG9yKE5vdEVxdWFscylcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgY2FzZSAndXNlcic6XG4gICAgICAgICAgICBjYXNlICd1c2VyTGlzdCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3JTZXJ2aWNlLmdldE9wZXJhdG9yKEVxdWFscyksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihOb3RFcXVhbHMpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoSXNOdWxsKVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICBjYXNlICdkYXRlJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoRXF1YWxzRGF0ZSksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihOb3RFcXVhbHNEYXRlKSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3JTZXJ2aWNlLmdldE9wZXJhdG9yKE1vcmVUaGFuRGF0ZSksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihNb3JlVGhhbkVxdWFsRGF0ZSksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihMZXNzVGhhbkRhdGUpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoTGVzc1RoYW5FcXVhbERhdGUpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoSW5SYW5nZURhdGUpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoSXNOdWxsKVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICBjYXNlICdkYXRlVGltZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3JTZXJ2aWNlLmdldE9wZXJhdG9yKEVxdWFsc0RhdGVUaW1lKSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3JTZXJ2aWNlLmdldE9wZXJhdG9yKE1vcmVUaGFuRGF0ZVRpbWUpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoTW9yZVRoYW5FcXVhbERhdGVUaW1lKSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3JTZXJ2aWNlLmdldE9wZXJhdG9yKExlc3NUaGFuRGF0ZVRpbWUpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoTGVzc1RoYW5FcXVhbERhdGVUaW1lKSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3JTZXJ2aWNlLmdldE9wZXJhdG9yKEluUmFuZ2VEYXRlVGltZSksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihJc051bGwpXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3JTZXJ2aWNlLmdldE9wZXJhdG9yKFN1YnN0cmluZyksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihFcXVhbHMpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoTm90RXF1YWxzKSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3JTZXJ2aWNlLmdldE9wZXJhdG9yKElzTnVsbCksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihMaWtlKVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJucyBgQ2FzZURhdGFzZXRgIGNhdGVnb3J5IGlzIG5vdCBkaXNwbGF5ZWQgaW4gYm9sZCBmb3IgYmV0dGVyIHJlYWRhYmlsaXR5XG4gICAgICovXG4gICAgZ2V0IGRpc3BsYXlCb2xkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBoYXNTZWxlY3RlZERhdGFmaWVsZHMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9EQVRBRklFTERfSU5QVVQuaXNPcHRpb25TZWxlY3RlZDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IF9zZWxlY3RlZERhdGFmaWVsZHMoKTogQXJyYXk8RGF0YWZpZWxkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kYXRhZmllbGRPcHRpb25zLmdldCh0aGlzLl9EQVRBRklFTERfSU5QVVQuZm9ybUNvbnRyb2wudmFsdWUudmFsdWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZXNldCgpIHtcbiAgICAgICAgc3VwZXIucmVzZXQoKTtcbiAgICAgICAgdGhpcy5fREFUQUZJRUxEX0lOUFVULmNsZWFyKCk7XG4gICAgfVxuXG4gICAgZHVwbGljYXRlKCk6IENhc2VEYXRhc2V0IHtcbiAgICAgICAgcmV0dXJuIG5ldyBDYXNlRGF0YXNldCh0aGlzLl9vcGVyYXRvclNlcnZpY2UsIHRoaXMuX2xvZywgdGhpcy5fb3B0aW9uYWxEZXBlbmRlbmNpZXMpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgZWxhc3RpY0tleXdvcmRzKCk6IEFycmF5PHN0cmluZz4ge1xuICAgICAgICBpZiAoIXRoaXMuaGFzU2VsZWN0ZWREYXRhZmllbGRzKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWREYXRhZmllbGRzLm1hcChkYXRhZmllbGQgPT4gdGhpcy5yZXNvbHZlRWxhc3RpY0tleXdvcmQoZGF0YWZpZWxkKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgcmVzb2x2ZUVsYXN0aWNLZXl3b3JkKGRhdGFmaWVsZDogRGF0YWZpZWxkKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgcmVzb2x2ZXIgPSB0aGlzLl9vcHRpb25hbERlcGVuZGVuY2llcy5zZWFyY2hJbmRleFJlc29sdmVyO1xuICAgICAgICBzd2l0Y2ggKGRhdGFmaWVsZC5maWVsZFR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVyLmdldEluZGV4KGRhdGFmaWVsZC5maWVsZElkLCBTZWFyY2hJbmRleC5OVU1CRVIpO1xuICAgICAgICAgICAgY2FzZSAnZGF0ZSc6XG4gICAgICAgICAgICBjYXNlICdkYXRlVGltZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVyLmdldEluZGV4KGRhdGFmaWVsZC5maWVsZElkLCBTZWFyY2hJbmRleC5USU1FU1RBTVApO1xuICAgICAgICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVyLmdldEluZGV4KGRhdGFmaWVsZC5maWVsZElkLCBTZWFyY2hJbmRleC5CT09MRUFOKTtcbiAgICAgICAgICAgIGNhc2UgJ2ZpbGUnOlxuICAgICAgICAgICAgY2FzZSAnZmlsZUxpc3QnOlxuICAgICAgICAgICAgICAgIHJldHVybiByZXNvbHZlci5nZXRJbmRleChkYXRhZmllbGQuZmllbGRJZCwgU2VhcmNoSW5kZXguRklMRV9OQU1FLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzU2VsZWN0ZWRPcGVyYXRvcihFcXVhbHMpIHx8IHRoaXMuaXNTZWxlY3RlZE9wZXJhdG9yKE5vdEVxdWFscykgfHwgdGhpcy5pc1NlbGVjdGVkT3BlcmF0b3IoU3Vic3RyaW5nKSk7XG4gICAgICAgICAgICBjYXNlICd1c2VyJzpcbiAgICAgICAgICAgIGNhc2UgJ3VzZXJMaXN0JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzb2x2ZXIuZ2V0SW5kZXgoZGF0YWZpZWxkLmZpZWxkSWQsIFNlYXJjaEluZGV4LlVTRVJfSUQpO1xuICAgICAgICAgICAgY2FzZSAnaTE4bic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVyLmdldEluZGV4KGRhdGFmaWVsZC5maWVsZElkLCBTZWFyY2hJbmRleC5URVhULCB0aGlzLmlzU2VsZWN0ZWRPcGVyYXRvcihFcXVhbHMpIHx8IHRoaXMuaXNTZWxlY3RlZE9wZXJhdG9yKE5vdEVxdWFscykgfHwgdGhpcy5pc1NlbGVjdGVkT3BlcmF0b3IoU3Vic3RyaW5nKSlcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVyLmdldEluZGV4KGRhdGFmaWVsZC5maWVsZElkLCBTZWFyY2hJbmRleC5GVUxMVEVYVCxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc1NlbGVjdGVkT3BlcmF0b3IoRXF1YWxzKSB8fCB0aGlzLmlzU2VsZWN0ZWRPcGVyYXRvcihOb3RFcXVhbHMpIHx8IHRoaXMuaXNTZWxlY3RlZE9wZXJhdG9yKFN1YnN0cmluZykpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IGlucHV0UGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKCF0aGlzLmhhc1NlbGVjdGVkRGF0YWZpZWxkcykge1xuICAgICAgICAgICAgcmV0dXJuIGAke0Nhc2VEYXRhc2V0Ll9pMThufS5wbGFjZWhvbGRlci5maWVsZGA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGAke0Nhc2VEYXRhc2V0Ll9pMThufS5wbGFjZWhvbGRlci52YWx1ZWA7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBkYXRhZmllbGRPcHRpb25zSW5pdGlhbGl6ZWQkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGF0YWZpZWxkT3B0aW9uc0luaXRpYWxpemVkJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2VuZXJhdGVRdWVyeSh1c2VySW5wdXQ6IEFycmF5PHVua25vd24+KTogUXVlcnkge1xuICAgICAgICBsZXQgcXVlcnlHZW5lcmF0aW9uU3RyYXRlZ3k7XG4gICAgICAgIGlmICh0aGlzLmlzU2VsZWN0ZWRPcGVyYXRvcihJc051bGwpKSB7XG4gICAgICAgICAgICBxdWVyeUdlbmVyYXRpb25TdHJhdGVneSA9IChkLCBfKSA9PiB0aGlzLmlzTnVsbE9wZXJhdG9yUXVlcnlHZW5lcmF0aW9uU3RyYXRlZ3koZCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pbnB1dFR5cGUgPT09IFNlYXJjaElucHV0VHlwZS5BVVRPQ09NUExFVEUpIHtcbiAgICAgICAgICAgIHF1ZXJ5R2VuZXJhdGlvblN0cmF0ZWd5ID0gKGQsIHVpKSA9PiB0aGlzLnN0YW5kYXJkUXVlcnlHZW5lcmF0aW9uU3RyYXRlZ3koZCwgdWlbMF0sIGZhbHNlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHF1ZXJ5R2VuZXJhdGlvblN0cmF0ZWd5ID0gKGQsIHVpKSA9PiB0aGlzLnN0YW5kYXJkUXVlcnlHZW5lcmF0aW9uU3RyYXRlZ3koZCwgdWkpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcXVlcmllcyA9IHRoaXMuX3NlbGVjdGVkRGF0YWZpZWxkcy5tYXAoZGF0YWZpZWxkID0+IHF1ZXJ5R2VuZXJhdGlvblN0cmF0ZWd5KGRhdGFmaWVsZCwgdXNlcklucHV0KSk7XG4gICAgICAgIHJldHVybiBRdWVyeS5jb21iaW5lUXVlcmllcyhxdWVyaWVzLCBCb29sZWFuT3BlcmF0b3IuT1IpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBzdGFuZGFyZFF1ZXJ5R2VuZXJhdGlvblN0cmF0ZWd5KGRhdGFmaWVsZDogRGF0YWZpZWxkLCB1c2VySW5wdXQ6IEFycmF5PHVua25vd24+LCBlc2NhcGVJbnB1dCA9IHRydWUpOiBRdWVyeSB7XG4gICAgICAgIGNvbnN0IHZhbHVlUXVlcnkgPSB0aGlzLnNlbGVjdGVkT3BlcmF0b3IuY3JlYXRlUXVlcnkodGhpcy5lbGFzdGljS2V5d29yZHMsIHVzZXJJbnB1dCwgZXNjYXBlSW5wdXQpO1xuICAgICAgICBjb25zdCBuZXRRdWVyeSA9IHRoaXMuZ2VuZXJhdGVOZXRDb25zdHJhaW50KGRhdGFmaWVsZCk7XG4gICAgICAgIHJldHVybiBRdWVyeS5jb21iaW5lUXVlcmllcyhbdmFsdWVRdWVyeSwgbmV0UXVlcnldLCBCb29sZWFuT3BlcmF0b3IuQU5EKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgaXNOdWxsT3BlcmF0b3JRdWVyeUdlbmVyYXRpb25TdHJhdGVneShkYXRhZmllbGQ6IERhdGFmaWVsZCk6IFF1ZXJ5IHtcbiAgICAgICAgY29uc3QgY29uc3RyYWludCA9IHRoaXMuZ2VuZXJhdGVOZXRDb25zdHJhaW50KGRhdGFmaWVsZCk7XG4gICAgICAgIHJldHVybiAodGhpcy5fb3BlcmF0b3JTZXJ2aWNlLmdldE9wZXJhdG9yKElzTnVsbCkgYXMgSXNOdWxsKS5jcmVhdGVRdWVyeVdpdGhDb25zdHJhaW50KHRoaXMuZWxhc3RpY0tleXdvcmRzLCBjb25zdHJhaW50KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2VuZXJhdGVOZXRDb25zdHJhaW50KGRhdGFmaWVsZDogRGF0YWZpZWxkKTogUXVlcnkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcHJvY2Vzc0NhdGVnb3J5LmdlbmVyYXRlUHJlZGljYXRlKFtbZGF0YWZpZWxkLm5ldElkZW50aWZpZXJdXSkucXVlcnk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNyZWF0ZURhdGFmaWVsZE9wdGlvbnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2RhdGFmaWVsZE9wdGlvbnNJbml0aWFsaXplZCQgPSBuZXcgUmVwbGF5U3ViamVjdDx2b2lkPigxKTtcbiAgICAgICAgdGhpcy5fYWxsb3dlZE5ldHNTdWIgPSB0aGlzLl9vcHRpb25hbERlcGVuZGVuY2llcy5hbGxvd2VkTmV0c1NlcnZpY2UuYWxsb3dlZE5ldHMkLnN1YnNjcmliZShhbGxvd2VkTmV0cyA9PiB7XG4gICAgICAgICAgICBhbGxvd2VkTmV0cy5mb3JFYWNoKHBldHJpTmV0ID0+IHtcbiAgICAgICAgICAgICAgICBwZXRyaU5ldC5pbW1lZGlhdGVEYXRhXG4gICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoaW1tZWRpYXRlRGF0YSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW1tZWRpYXRlRGF0YS50aXRsZSAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgaW1tZWRpYXRlRGF0YS50aXRsZS50cmltKCkubGVuZ3RoID4gMFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmICFDYXNlRGF0YXNldC5ESVNBQkxFRF9UWVBFUy5pbmNsdWRlcyhpbW1lZGlhdGVEYXRhLnR5cGUpO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAuZm9yRWFjaChpbW1lZGlhdGVEYXRhID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0eXBlID0gaW1tZWRpYXRlRGF0YS50eXBlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBmb3Igc2VhcmNoIHB1cnBvc2VzLCBlbnVtZXJhdGlvbiBhbmQgbXVsdGljaG9pY2UgbWFwcyBhcmUgZXF1aXZhbGVudCB0byB0aGVpciBzaW1wbGVyIGNvdW50ZXJwYXJ0c1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGUgPT09ICdlbnVtZXJhdGlvbl9tYXAnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdlbnVtZXJhdGlvbic7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdtdWx0aWNob2ljZV9tYXAnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdtdWx0aWNob2ljZSc7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkVG9EYXRhZmllbGRPcHRpb25zTWFwKERhdGFmaWVsZE1hcEtleS5zZXJpYWxpemVkRm9ybShpbW1lZGlhdGVEYXRhLnR5cGUsIGltbWVkaWF0ZURhdGEudGl0bGUpLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0SWRlbnRpZmllcjogcGV0cmlOZXQuaWRlbnRpZmllcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZElkOiBpbW1lZGlhdGVEYXRhLnN0cmluZ0lkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkVHlwZTogaW1tZWRpYXRlRGF0YS50eXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLl9kYXRhZmllbGRPcHRpb25zSW5pdGlhbGl6ZWQkLm5leHQoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZmlsdGVyT3B0aW9ucyh1c2VySW5wdXQ6IE9ic2VydmFibGU8c3RyaW5nIHwgU2VhcmNoQXV0b2NvbXBsZXRlT3B0aW9uPEFycmF5PHN0cmluZz4+Pik6XG4gICAgICAgIE9ic2VydmFibGU8QXJyYXk8U2VhcmNoQXV0b2NvbXBsZXRlT3B0aW9uPEFycmF5PHN0cmluZz4+Pj4ge1xuXG4gICAgICAgIGlmICghdGhpcy5oYXNTZWxlY3RlZERhdGFmaWVsZHMpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIGNhdGVnb3J5IG11c3QgYmUgZnVsbHkgY29uZmlndXJlZCBiZWZvcmUgYXR0ZW1wdGluZyB0byBnZXQgYXV0b2NvbXBsZXRlIG9wdGlvbnMhJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaW5wdXRUeXBlICE9PSBTZWFyY2hJbnB1dFR5cGUuQVVUT0NPTVBMRVRFKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBmaWx0ZXIgb3B0aW9ucyBvZiBub24tYXV0b2NvbXBsZXRlIG9wZXJhbmRzJyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5fdXNlckF1dG9jb21wbGV0ZS5maWx0ZXJPcHRpb25zKHVzZXJJbnB1dCk7XG4gICAgfVxuXG4gICAgcHVibGljIHNlbGVjdERhdGFmaWVsZHMoZGF0YWZpZWxkTWFwS2V5OiBzdHJpbmcsIHNlbGVjdERlZmF1bHRPcGVyYXRvciA9IHRydWUpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9kYXRhZmllbGRPcHRpb25zLmhhcyhkYXRhZmllbGRNYXBLZXkpKSB7XG4gICAgICAgICAgICB0aGlzLl9sb2cud2FybihgVGhlIHByb3ZpZGVkICdkYXRhZmllbGRNYXBLZXknICgke2RhdGFmaWVsZE1hcEtleX0pIGRvZXMgbm90IGV4aXN0LmApO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX0RBVEFGSUVMRF9JTlBVVC5mb3JtQ29udHJvbC5zZXRWYWx1ZShEYXRhZmllbGRNYXBLZXkucGFyc2UoZGF0YWZpZWxkTWFwS2V5KSk7XG4gICAgICAgIGlmIChzZWxlY3REZWZhdWx0T3BlcmF0b3IpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0RGVmYXVsdE9wZXJhdG9yKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGRzIGEgbmV3IGVudHJ5IG9yIHB1c2hlcyB2YWx1ZSBpbnRvIGFuIGV4aXN0aW5nIGVudHJ5LlxuICAgICAqIFdoZW4gYSBuZXcgZW50cnkgaXMgY3JlYXRlZCwgaXQgaXMgY3JlYXRlZCBhcyBhbiBBcnJheSBvZiBvbmUgZWxlbWVudC5cbiAgICAgKiBAcGFyYW0ga2V5IHdoZXJlIGluIHRoZSBtYXAgc2hvdWxkIHRoZSB2YWx1ZSBiZSBhZGRlZFxuICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgdmFsdWUgdGhhdCBzaG91bGQgYmUgYWRkZWQgdG8gdGhlIG1hcFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBhZGRUb0RhdGFmaWVsZE9wdGlvbnNNYXAoa2V5OiBzdHJpbmcsIHZhbHVlOiBEYXRhZmllbGQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2RhdGFmaWVsZE9wdGlvbnMuaGFzKGtleSkpIHtcbiAgICAgICAgICAgIHRoaXMuX2RhdGFmaWVsZE9wdGlvbnMuZ2V0KGtleSkucHVzaCh2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9kYXRhZmllbGRPcHRpb25zLnNldChrZXksIFt2YWx1ZV0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGlzT3BlcmFuZFZhbHVlU2VsZWN0ZWQobmV3VmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMuaXNPcGVyYXRvclNlbGVjdGVkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgaW5wdXRUeXBlOiBTZWFyY2hJbnB1dFR5cGU7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpbnB1dFR5cGUgPSB0aGlzLmlucHV0VHlwZTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgc3dpdGNoIChpbnB1dFR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgU2VhcmNoSW5wdXRUeXBlLk5VTUJFUjpcbiAgICAgICAgICAgICAgICByZXR1cm4gdHlwZW9mIG5ld1ZhbHVlID09PSAnbnVtYmVyJztcbiAgICAgICAgICAgIGNhc2UgU2VhcmNoSW5wdXRUeXBlLkJPT0xFQU46XG4gICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiBuZXdWYWx1ZSA9PT0gJ2Jvb2xlYW4nO1xuICAgICAgICAgICAgY2FzZSBTZWFyY2hJbnB1dFR5cGUuQVVUT0NPTVBMRVRFOlxuICAgICAgICAgICAgICAgIHJldHVybiAhKCFuZXdWYWx1ZSB8fCB0eXBlb2YgbmV3VmFsdWUgPT09ICdzdHJpbmcnKTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuICEhbmV3VmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQZXJmb3JtcyBhIHRyYW5zZm9ybWF0aW9uIG9mIHRoZSBgRm9ybUNvbnRyb2xgIHZhbHVlIGJlZm9yZSBwYXNzaW5nIGl0IGludG8gdGhlIHNlbGVjdGVkIGBPcGVyYXRvcmAgZm9yIHF1ZXJ5IGdlbmVyYXRpb24uXG4gICAgICogSXQgaXMgbW9zdGx5IHVzZWZ1bCBvbmx5IGZvciBBdXRvY29tcGxldGVDYXRlZ29yaWVzLCB3aGVyZSB0aGUgc2VsZWN0ZWQgdmFsdWUgb2YgdGhlIEZvcm1Db250cm9sIGlzIGFuIG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgRm9ybUNvbnRyb2xWYWx1ZVxuICAgICAqIEByZXR1cm5zIElmIHRoZSBzZWxlY3RlZCBkYXRhIGZpZWxkIGhhcyBpbnB1dCB0eXBlIGBBVVRPQ09NUExFVEVgIHRoZW4gcmV0dXJucyB0aGUge0BsaW5rIFNlYXJjaEF1dG9jb21wbGV0ZU9wdGlvbn0gYHZhbHVlYFxuICAgICAqIGF0dHJpYnV0ZS4gT3RoZXJ3aXNlIHBlcmZvcm1zIGFuIGlkZW50aXR5IG9wZXJhdGlvbi5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgdHJhbnNmb3JtQ2F0ZWdvcnlWYWx1ZSh2YWx1ZTogYW55KTogYW55IHtcbiAgICAgICAgaWYgKHRoaXMuaW5wdXRUeXBlID09PSBTZWFyY2hJbnB1dFR5cGUuQVVUT0NPTVBMRVRFKSB7XG4gICAgICAgICAgICByZXR1cm4gKHZhbHVlIGFzIFNlYXJjaEF1dG9jb21wbGV0ZU9wdGlvbjxBcnJheTxudW1iZXI+PikudmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIHNlcmlhbGl6ZUNsYXNzKCk6IENhdGVnb3JpZXMgfCBzdHJpbmcge1xuICAgICAgICByZXR1cm4gQ2F0ZWdvcmllcy5DQVNFX0RBVEFTRVQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNlcmlhbGl6ZU9wZXJhbmRWYWx1ZSh2YWx1ZUZvcm1Db250cm9sOiBGb3JtQ29udHJvbCk6IHVua25vd24ge1xuICAgICAgICBzd2l0Y2ggKHRoaXMuaW5wdXRUeXBlKSB7XG4gICAgICAgICAgICBjYXNlIFNlYXJjaElucHV0VHlwZS5BVVRPQ09NUExFVEU6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3VzZXJBdXRvY29tcGxldGUuc2VyaWFsaXplT3BlcmFuZFZhbHVlKHZhbHVlRm9ybUNvbnRyb2wpO1xuICAgICAgICAgICAgY2FzZSBTZWFyY2hJbnB1dFR5cGUuREFURTpcbiAgICAgICAgICAgIGNhc2UgU2VhcmNoSW5wdXRUeXBlLkRBVEVfVElNRTpcbiAgICAgICAgICAgICAgICByZXR1cm4gKHZhbHVlRm9ybUNvbnRyb2wudmFsdWUgYXMgTW9tZW50KS52YWx1ZU9mKCk7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBzdXBlci5zZXJpYWxpemVPcGVyYW5kVmFsdWUodmFsdWVGb3JtQ29udHJvbCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlTWV0YWRhdGFDb25maWd1cmF0aW9uKCk6IENhdGVnb3J5TWV0YWRhdGFDb25maWd1cmF0aW9uIHtcbiAgICAgICAgY29uc3QgY29uZmlnID0gc3VwZXIuY3JlYXRlTWV0YWRhdGFDb25maWd1cmF0aW9uKCk7XG4gICAgICAgIGNvbmZpZ1tDYXNlRGF0YXNldC5EQVRBRklFTERfTUVUQURBVEFdID0gKHRoaXMuX0RBVEFGSUVMRF9JTlBVVC5mb3JtQ29udHJvbC52YWx1ZSBhcyBEYXRhZmllbGRNYXBLZXkpLnRvU2VyaWFsaXplZEZvcm0oKTtcbiAgICAgICAgcmV0dXJuIGNvbmZpZztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgbG9hZENvbmZpZ3VyYXRpb25Gcm9tTWV0YWRhdGEoY29uZmlndXJhdGlvbjogQ2F0ZWdvcnlNZXRhZGF0YUNvbmZpZ3VyYXRpb24pOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0JCA9IG5ldyBSZXBsYXlTdWJqZWN0PHZvaWQ+KDEpO1xuICAgICAgICB0aGlzLmRhdGFmaWVsZE9wdGlvbnNJbml0aWFsaXplZCQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNlcmlhbGl6ZWRNYXBLZXkgPSBjb25maWd1cmF0aW9uW0Nhc2VEYXRhc2V0LkRBVEFGSUVMRF9NRVRBREFUQV0gYXMgc3RyaW5nO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3REYXRhZmllbGRzKHNlcmlhbGl6ZWRNYXBLZXksIGZhbHNlKTtcbiAgICAgICAgICAgIGlmICghdGhpcy5oYXNTZWxlY3RlZERhdGFmaWVsZHMpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFNlYXJjaGVkIGRhdGEgZmllbGRzIGNhbm5vdCBiZSByZXN0b3JlZCBmcm9tIHRoZSBwcm92aWRlZCBjb25maWd1cmF0aW9uICgke3NlcmlhbGl6ZWRNYXBLZXlcbiAgICAgICAgICAgICAgICB9KS4gTWFrZSBzdXJlLCB0aGF0IHRoZSBjb3JyZWN0IGFsbG93ZWQgbmV0cyBhcmUgcHJvdmlkZWQgaW4gdGhpcyB2aWV3LmApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3VwZXIubG9hZENvbmZpZ3VyYXRpb25Gcm9tTWV0YWRhdGEoY29uZmlndXJhdGlvbikuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICByZXN1bHQkLm5leHQoKTtcbiAgICAgICAgICAgICAgICByZXN1bHQkLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiByZXN1bHQkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBkZXNlcmlhbGl6ZU9wZXJhbmRWYWx1ZSh2YWx1ZTogdW5rbm93bik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5pbnB1dFR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgU2VhcmNoSW5wdXRUeXBlLkFVVE9DT01QTEVURTpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fdXNlckF1dG9jb21wbGV0ZS5kZXNlcmlhbGl6ZU9wZXJhbmRWYWx1ZSh2YWx1ZSBhcyBTZWFyY2hBdXRvY29tcGxldGVPcHRpb248QXJyYXk8c3RyaW5nPj4pO1xuICAgICAgICAgICAgY2FzZSBTZWFyY2hJbnB1dFR5cGUuREFURTpcbiAgICAgICAgICAgIGNhc2UgU2VhcmNoSW5wdXRUeXBlLkRBVEVfVElNRTpcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YobW9tZW50KHZhbHVlIGFzIHN0cmluZykpO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gc3VwZXIuZGVzZXJpYWxpemVPcGVyYW5kVmFsdWUodmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNyZWF0ZUNvbmZpZ3VyYXRpb25GaWx0ZXJUZXh0U2VnbWVudHMoKTogQXJyYXk8RmlsdGVyVGV4dFNlZ21lbnQ+IHtcbiAgICAgICAgcmV0dXJuIFt7c2VnbWVudDogdGhpcy5fY29uZmlndXJhdGlvbklucHV0cyQudmFsdWVbMF0uZm9ybUNvbnRyb2wudmFsdWUudGV4dCwgYm9sZDogdHJ1ZX1dO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -10,6 +10,7 @@ import { CaseDataset } from './case-dataset';
|
|
|
10
10
|
import { DatafieldMapKey } from '../../datafield-map-key';
|
|
11
11
|
import { SearchIndex } from '../../search-index';
|
|
12
12
|
import { Categories } from '../categories';
|
|
13
|
+
import { NotEquals } from '../../operator/not-equals';
|
|
13
14
|
/**
|
|
14
15
|
* This class aims to be a simpler more limited version of the {@link CaseDataset} {@link Category} implementation.
|
|
15
16
|
*
|
|
@@ -64,6 +65,9 @@ export class CaseSimpleDataset extends NoConfigurationCategory {
|
|
|
64
65
|
case 'userList':
|
|
65
66
|
this._elasticKeyword = resolver.getIndex(this._fieldId, SearchIndex.USER_ID);
|
|
66
67
|
break;
|
|
68
|
+
case 'i18n':
|
|
69
|
+
this._elasticKeyword = resolver.getIndex(this._fieldId, SearchIndex.TEXT, this.isSelectedOperator(Equals) || this.isSelectedOperator(NotEquals) || this.isSelectedOperator(Substring));
|
|
70
|
+
break;
|
|
67
71
|
default:
|
|
68
72
|
this._elasticKeyword = resolver.getIndex(this._fieldId, SearchIndex.FULLTEXT, this.isSelectedOperator(Substring));
|
|
69
73
|
}
|
|
@@ -132,4 +136,4 @@ export class CaseSimpleDataset extends NoConfigurationCategory {
|
|
|
132
136
|
}
|
|
133
137
|
}
|
|
134
138
|
CaseSimpleDataset._i18n = 'search.category.case.dataset';
|
|
135
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1zaW1wbGUtZGF0YXNldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvc2VhcmNoL21vZGVscy9jYXRlZ29yeS9jYXNlL2Nhc2Utc2ltcGxlLWRhdGFzZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBRXhDLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQy9ELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3JFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQy9DLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFJekM7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxPQUFPLGlCQUFrQixTQUFRLHVCQUErQjtJQVdsRSxZQUFZLFNBQTBCLEVBQzFCLE1BQXFCLEVBQ1gscUJBQTJDO1FBQzdELEtBQUssQ0FBQyxTQUFTLEVBQ1gsU0FBUyxFQUNULEdBQUcsaUJBQWlCLENBQUMsS0FBSyxPQUFPLEVBQ2pDLFNBQVMsRUFD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LGVBQWUsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN0RixNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsY0FBYyxDQUNsQyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUNyRixlQUFlLENBQUMsRUFBRSxDQUNyQixDQUFDO1FBQ0YsT0FBTyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQsY0FBYztRQUNWLE9BQU8sVUFBVSxDQUFDLG1CQUFtQixDQUFDO0lBQzFDLENBQUM7SUFFRDs7T0FFRztJQUNILGNBQWM7UUFDVixNQUFNLElBQUksS0FBSyxDQUFDLG1EQUFtRCxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZ0JBQWdCLENBQUMsUUFBbUM7UUFDaEQsTUFBTSxJQUFJLEtBQUssQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO0lBQzNFLENBQUM7O0FBMUl1Qix1QkFBSyxHQUFHLDhCQUE4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtPcGVyYXRvclNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL29wZXJhdG9yLXNlcnZpY2Uvb3BlcmF0b3Iuc2VydmljZSc7XG5pbXBvcnQge0xvZ2dlclNlcnZpY2V9IGZyb20gJy4uLy4uLy4uLy4uL2xvZ2dlci9zZXJ2aWNlcy9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQge1F1ZXJ5fSBmcm9tICcuLi8uLi9xdWVyeS9xdWVyeSc7XG5pbXBvcnQge09wZXJhdG9yfSBmcm9tICcuLi8uLi9vcGVyYXRvci9vcGVyYXRvcic7XG5pbXBvcnQge0VxdWFsc30gZnJvbSAnLi4vLi4vb3BlcmF0b3IvZXF1YWxzJztcbmltcG9ydCB7RXF1YWxzRGF0ZX0gZnJvbSAnLi4vLi4vb3BlcmF0b3IvZXF1YWxzLWRhdGUnO1xuaW1wb3J0IHtFcXVhbHNEYXRlVGltZX0gZnJvbSAnLi4vLi4vb3BlcmF0b3IvZXF1YWxzLWRhdGUtdGltZSc7XG5pbXBvcnQge1N1YnN0cmluZ30gZnJvbSAnLi4vLi4vb3BlcmF0b3Ivc3Vic3RyaW5nJztcbmltcG9ydCB7Q2FzZVByb2Nlc3N9IGZyb20gJy4vY2FzZS1wcm9jZXNzJztcbmltcG9ydCB7T3B0aW9uYWxEZXBlbmRlbmNpZXN9IGZyb20gJy4uLy4uLy4uL2NhdGVnb3J5LWZhY3Rvcnkvb3B0aW9uYWwtZGVwZW5kZW5jaWVzJztcbmltcG9ydCB7Qm9vbGVhbk9wZXJhdG9yfSBmcm9tICcuLi8uLi9ib29sZWFuLW9wZXJhdG9yJztcbmltcG9ydCB7Tm9Db25maWd1cmF0aW9uQ2F0ZWdvcnl9IGZyb20gJy4uL25vLWNvbmZpZ3VyYXRpb24tY2F0ZWdvcnknO1xuaW1wb3J0IHtDYXNlRGF0YXNldH0gZnJvbSAnLi9jYXNlLWRhdGFzZXQnO1xuaW1wb3J0IHtEYXRhZmllbGRNYXBLZXl9IGZyb20gJy4uLy4uL2RhdGFmaWVsZC1tYXAta2V5JztcbmltcG9ydCB7U2VhcmNoSW5kZXh9IGZyb20gJy4uLy4uL3NlYXJjaC1pbmRleCc7XG5pbXBvcnQge0NhdGVnb3JpZXN9IGZyb20gJy4uL2NhdGVnb3JpZXMnO1xuaW1wb3J0IHtDYXRlZ29yeUdlbmVyYXRvck1ldGFkYXRhfSBmcm9tICcuLi8uLi9wZXJzaXN0YW5jZS9nZW5lcmF0b3ItbWV0YWRhdGEnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBUaGlzIGNsYXNzIGFpbXMgdG8gYmUgYSBzaW1wbGVyIG1vcmUgbGltaXRlZCB2ZXJzaW9uIG9mIHRoZSB7QGxpbmsgQ2FzZURhdGFzZXR9IHtAbGluayBDYXRlZ29yeX0gaW1wbGVtZW50YXRpb24uXG4gKlxuICogSXQgY2FuIG9ubHkgZ2VuZXJhdGUgXCJlcXVhbGl0eVwiIHF1ZXJpZXMgZm9yIGEgc2luZ2xlIGZpZWxkLiBUaGUgY2F0ZWdvcnkgbXVzdCBiZSBjb25maWd1cmVkIGJlZm9yZSBpdCBjYW4gYmUgdXNlZCB0byBnZW5lcmF0ZSBxdWVyaWVzLlxuICpcbiAqIFRoaXMgY2F0ZWdvcnkgY2Fubm90IGJlIHNlcmlhbGl6ZWQuIElmIHlvdSB3YW50IHRvIHByZXNlcnZlIHRoaXMgY2F0ZWdvcnkncyBzdGF0ZSBjb252ZXJ0IGl0IHRvIHtAbGluayBDYXNlRGF0YXNldH1cbiAqIHdpdGggdGhlIFt0cmFuc2Zvcm1Ub0Nhc2VEYXRhc2V0KClde0BsaW5rIENhc2VTaW1wbGVEYXRhc2V0I3RyYW5zZm9ybVRvQ2FzZURhdGFzZXR9IG1ldGhvZCBhbmQgc2VyaWFsaXplIHRoZSByZXN1bHQuXG4gKlxuICogU2VlIFtjb25maWd1cmVde0BsaW5rIENhc2VTaW1wbGVEYXRhc2V0I2NvbmZpZ3VyZX0gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBDYXNlU2ltcGxlRGF0YXNldCBleHRlbmRzIE5vQ29uZmlndXJhdGlvbkNhdGVnb3J5PHN0cmluZz4ge1xuXG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgX2kxOG4gPSAnc2VhcmNoLmNhdGVnb3J5LmNhc2UuZGF0YXNldCc7XG5cbiAgICBwcm90ZWN0ZWQgX2ZpZWxkSWQ6IHN0cmluZztcbiAgICBwcm90ZWN0ZWQgX2ZpZWxkVHlwZTogc3RyaW5nO1xuICAgIHByb3RlY3RlZCBfbmV0SWRlbnRpZmllcnM6IEFycmF5PHN0cmluZz47XG4gICAgcHJvdGVjdGVkIF9lbGFzdGljS2V5d29yZDogc3RyaW5nO1xuXG4gICAgcHJvdGVjdGVkIF9wcm9jZXNzQ2F0ZWdvcnk6IENhc2VQcm9jZXNzO1xuXG4gICAgY29uc3RydWN0b3Iob3BlcmF0b3JzOiBPcGVyYXRvclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfb3B0aW9uYWxEZXBlbmRlbmNpZXM6IE9wdGlvbmFsRGVwZW5kZW5jaWVzKSB7XG4gICAgICAgIHN1cGVyKHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGAke0Nhc2VTaW1wbGVEYXRhc2V0Ll9pMThufS5uYW1lYCxcbiAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGxvZ2dlcixcbiAgICAgICAgICAgIG9wZXJhdG9ycyk7XG5cbiAgICAgICAgdGhpcy5fcHJvY2Vzc0NhdGVnb3J5ID0gX29wdGlvbmFsRGVwZW5kZW5jaWVzLmNhdGVnb3J5RmFjdG9yeS5nZXRXaXRoRGVmYXVsdE9wZXJhdG9yKENhc2VQcm9jZXNzKSBhcyBDYXNlUHJvY2VzcztcbiAgICB9XG5cbiAgICBkZXN0cm95KCkge1xuICAgICAgICBzdXBlci5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMuX3Byb2Nlc3NDYXRlZ29yeS5kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgZ2V0IGlucHV0UGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb25maWd1cmUoZmllbGRJZDogc3RyaW5nLCBmaWVsZFR5cGU6IHN0cmluZywgbmV0SWRlbnRpZmllcnM6IEFycmF5PHN0cmluZz4pOiB2b2lkIHtcbiAgICAgICAgaWYgKCFmaWVsZElkIHx8ICFmaWVsZFR5cGUgfHwgIW5ldElkZW50aWZpZXJzIHx8IG5ldElkZW50aWZpZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5fbG9nLmVycm9yKCdDYXNlU2ltcGxlRGF0YXNldCBtdXN0IGJlIGNvbmZpZ3VyZWQgd2l0aCBkZWZpbmVkIHZhbHVlcyBhbmQgYSBub24tZW1wdHkgYXJyYXknKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9maWVsZElkID0gZmllbGRJZDtcbiAgICAgICAgdGhpcy5fZmllbGRUeXBlID0gZmllbGRUeXBlO1xuICAgICAgICB0aGlzLl9uZXRJZGVudGlmaWVycyA9IG5ldElkZW50aWZpZXJzO1xuICAgICAgICB0aGlzLnJlc29sdmVFbGFzdGljS2V5d29yZCgpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCByZXNvbHZlRWxhc3RpY0tleXdvcmQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJlc29sdmVyID0gdGhpcy5fb3B0aW9uYWxEZXBlbmRlbmNpZXMuc2VhcmNoSW5kZXhSZXNvbHZlcjtcbiAgICAgICAgc3dpdGNoICh0aGlzLl9maWVsZFR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICAgICAgICAgICAgdGhpcy5fZWxhc3RpY0tleXdvcmQgPSByZXNvbHZlci5nZXRJbmRleCh0aGlzLl9maWVsZElkLCBTZWFyY2hJbmRleC5OVU1CRVIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZGF0ZSc6XG4gICAgICAgICAgICBjYXNlICdkYXRlVGltZSc6XG4gICAgICAgICAgICAgICAgdGhpcy5fZWxhc3RpY0tleXdvcmQgPSByZXNvbHZlci5nZXRJbmRleCh0aGlzLl9maWVsZElkLCBTZWFyY2hJbmRleC5USU1FU1RBTVApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICAgICAgICAgICAgdGhpcy5fZWxhc3RpY0tleXdvcmQgPSByZXNvbHZlci5nZXRJbmRleCh0aGlzLl9maWVsZElkLCBTZWFyY2hJbmRleC5CT09MRUFOKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2ZpbGUnOlxuICAgICAgICAgICAgY2FzZSAnZmlsZUxpc3QnOlxuICAgICAgICAgICAgICAgIHRoaXMuX2VsYXN0aWNLZXl3b3JkID0gcmVzb2x2ZXIuZ2V0SW5kZXgodGhpcy5fZmllbGRJZCwgU2VhcmNoSW5kZXguRklMRV9OQU1FLCB0aGlzLmlzU2VsZWN0ZWRPcGVyYXRvcihTdWJzdHJpbmcpKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3VzZXInOlxuICAgICAgICAgICAgY2FzZSAndXNlckxpc3QnOlxuICAgICAgICAgICAgICAgIHRoaXMuX2VsYXN0aWNLZXl3b3JkID0gcmVzb2x2ZXIuZ2V0SW5kZXgodGhpcy5fZmllbGRJZCwgU2VhcmNoSW5kZXguVVNFUl9JRCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHRoaXMuX2VsYXN0aWNLZXl3b3JkID0gcmVzb2x2ZXIuZ2V0SW5kZXgodGhpcy5fZmllbGRJZCwgU2VhcmNoSW5kZXguRlVMTFRFWFQsIHRoaXMuaXNTZWxlY3RlZE9wZXJhdG9yKFN1YnN0cmluZykpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBlbGFzdGljS2V5d29yZHMoKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgICAgIGlmICghdGhpcy5fZmllbGRJZCkge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIFt0aGlzLl9lbGFzdGljS2V5d29yZF07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHNlbGVjdGVkT3BlcmF0b3IoKTogT3BlcmF0b3I8YW55PiB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5fZmllbGRUeXBlKSB7XG4gICAgICAgICAgICBjYXNlICdudW1iZXInOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoRXF1YWxzKTtcbiAgICAgICAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoRXF1YWxzKTtcbiAgICAgICAgICAgIGNhc2UgJ3VzZXInOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoRXF1YWxzKTtcbiAgICAgICAgICAgIGNhc2UgJ2RhdGUnOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoRXF1YWxzRGF0ZSk7XG4gICAgICAgICAgICBjYXNlICdkYXRlVGltZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihFcXVhbHNEYXRlVGltZSk7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoU3Vic3RyaW5nKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGR1cGxpY2F0ZSgpOiBDYXNlU2ltcGxlRGF0YXNldCB7XG4gICAgICAgIHJldHVybiBuZXcgQ2FzZVNpbXBsZURhdGFzZXQodGhpcy5fb3BlcmF0b3JTZXJ2aWNlLCB0aGlzLl9sb2csIHRoaXMuX29wdGlvbmFsRGVwZW5kZW5jaWVzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEge0BsaW5rIENhc2VEYXRhc2V0fSBpbnN0YW5jZSBhbmQgY29uZmlndXJlcyBpdCBzbywgdGhhdCB0aGUgcXVlcnkgaXQgZ2VuZXJhdGVzIHRhcmdldHNcbiAgICAgKiB0aGUgc2VsZWN0ZWQgZmllbGQsIHVzZXMgdGhlIGRlZmF1bHQgb3BlcmF0b3IgYW5kIGl0cyBvcGVyYW5kcyBhcmUgd2hhdCB0aGUgdXNlciBwcm92aWRlZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBmaWVsZFR5cGUgdGhlIHR5cGUgb2YgdGhlIGZpZWxkIHRoYXQgc2hvdWxkIGJlIHRhcmdldGVkIGJ5IHRoZSB0cmFuc2Zvcm1lZCBDYXRlZ29yeVxuICAgICAqIEBwYXJhbSBmaWVsZFRpdGxlIHRoZSB0aXRsZSBvZiB0aGUgZmllbGQgdGhhdCBzaG91bGQgYmUgdGFyZ2V0ZWQgYnkgdGhlIHRyYW5zZm9ybWVkIENhdGVnb3J5XG4gICAgICogQHBhcmFtIHVzZXJJbnB1dCB0aGUgb3BlcmFuZHMgZm9yIHRoZSBxdWVyaWVkIGZpZWxkXG4gICAgICogQHJldHVybnMgYSBuZXcge0BsaW5rIENhc2VEYXRhc2V0fSBjb25maWd1cmVkIHdpdGggdGhlIHByb3ZpZGVkIHZhbHVlc1xuICAgICAqL1xuICAgIHB1YmxpYyB0cmFuc2Zvcm1Ub0Nhc2VEYXRhc2V0KGZpZWxkVHlwZTogc3RyaW5nLCBmaWVsZFRpdGxlOiBzdHJpbmcsIHVzZXJJbnB1dDogQXJyYXk8YW55Pik6IENhc2VEYXRhc2V0IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fb3B0aW9uYWxEZXBlbmRlbmNpZXMuY2F0ZWdvcnlGYWN0b3J5LmdldChDYXNlRGF0YXNldCkgYXMgQ2FzZURhdGFzZXQ7XG4gICAgICAgIHJlc3VsdC5zZWxlY3REYXRhZmllbGRzKERhdGFmaWVsZE1hcEtleS5zZXJpYWxpemVkRm9ybShmaWVsZFR5cGUsIGZpZWxkVGl0bGUpKTtcbiAgICAgICAgcmVzdWx0LnNldE9wZXJhbmRzKHVzZXJJbnB1dCk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdlbmVyYXRlUXVlcnkodXNlcklucHV0OiBBcnJheTx1bmtub3duPik6IFF1ZXJ5IHtcbiAgICAgICAgY29uc3QgdmFsdWVRdWVyeSA9IHRoaXMuc2VsZWN0ZWRPcGVyYXRvci5jcmVhdGVRdWVyeSh0aGlzLmVsYXN0aWNLZXl3b3JkcywgdXNlcklucHV0KTtcbiAgICAgICAgY29uc3QgbmV0c1F1ZXJ5ID0gUXVlcnkuY29tYmluZVF1ZXJpZXMoXG4gICAgICAgICAgICB0aGlzLl9uZXRJZGVudGlmaWVycy5tYXAoaWQgPT4gdGhpcy5fcHJvY2Vzc0NhdGVnb3J5LmdlbmVyYXRlUHJlZGljYXRlKFtbaWRdXSkucXVlcnkpLFxuICAgICAgICAgICAgQm9vbGVhbk9wZXJhdG9yLk9SXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBRdWVyeS5jb21iaW5lUXVlcmllcyhbdmFsdWVRdWVyeSwgbmV0c1F1ZXJ5XSwgQm9vbGVhbk9wZXJhdG9yLkFORCk7XG4gICAgfVxuXG4gICAgc2VyaWFsaXplQ2xhc3MoKTogQ2F0ZWdvcmllcyB8IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBDYXRlZ29yaWVzLkNBU0VfU0lNUExFX0RBVEFTRVQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2VyaWFsaXphdGlvbiBpcyBub3Qgc3VwcG9ydGVkLiBUaHJvd3MgYW4gZXJyb3IuXG4gICAgICovXG4gICAgY3JlYXRlTWV0YWRhdGEoKTogbmV2ZXIge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhc2VTaW1wbGVEYXRhc2V0IGRvZXMgbm90IHN1cHBvcnQgc2VyaWFsaXphdGlvbiEnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZXNlcmlhbGl6YXRpb24gaXMgbm90IHN1cHBvcnRlZC4gVGhyb3dzIGFuIGVycm9yLlxuICAgICAqL1xuICAgIGxvYWRGcm9tTWV0YWRhdGEobWV0YWRhdGE6IENhdGVnb3J5R2VuZXJhdG9yTWV0YWRhdGEpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYXNlU2ltcGxlRGF0YXNldCBkb2VzIG5vdCBzdXBwb3J0IGRlc2VyaWFsaXphdGlvbiEnKTtcbiAgICB9XG59XG4iXX0=
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1zaW1wbGUtZGF0YXNldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvc2VhcmNoL21vZGVscy9jYXRlZ29yeS9jYXNlL2Nhc2Utc2ltcGxlLWRhdGFzZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBRXhDLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQy9ELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3JFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQy9DLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHekMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXREOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sT0FBTyxpQkFBa0IsU0FBUSx1QkFBK0I7SUFXbEUsWUFBWSxTQUEwQixFQUMxQixNQUFxQixFQUNYLHFCQUEyQztRQUM3RCxLQUFLLENBQUMsU0FBUyxFQUNYLFNBQVMsRUFD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Li4vb3BlcmF0b3Itc2VydmljZS9vcGVyYXRvci5zZXJ2aWNlJztcbmltcG9ydCB7TG9nZ2VyU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vLi4vbG9nZ2VyL3NlcnZpY2VzL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7UXVlcnl9IGZyb20gJy4uLy4uL3F1ZXJ5L3F1ZXJ5JztcbmltcG9ydCB7T3BlcmF0b3J9IGZyb20gJy4uLy4uL29wZXJhdG9yL29wZXJhdG9yJztcbmltcG9ydCB7RXF1YWxzfSBmcm9tICcuLi8uLi9vcGVyYXRvci9lcXVhbHMnO1xuaW1wb3J0IHtFcXVhbHNEYXRlfSBmcm9tICcuLi8uLi9vcGVyYXRvci9lcXVhbHMtZGF0ZSc7XG5pbXBvcnQge0VxdWFsc0RhdGVUaW1lfSBmcm9tICcuLi8uLi9vcGVyYXRvci9lcXVhbHMtZGF0ZS10aW1lJztcbmltcG9ydCB7U3Vic3RyaW5nfSBmcm9tICcuLi8uLi9vcGVyYXRvci9zdWJzdHJpbmcnO1xuaW1wb3J0IHtDYXNlUHJvY2Vzc30gZnJvbSAnLi9jYXNlLXByb2Nlc3MnO1xuaW1wb3J0IHtPcHRpb25hbERlcGVuZGVuY2llc30gZnJvbSAnLi4vLi4vLi4vY2F0ZWdvcnktZmFjdG9yeS9vcHRpb25hbC1kZXBlbmRlbmNpZXMnO1xuaW1wb3J0IHtCb29sZWFuT3BlcmF0b3J9IGZyb20gJy4uLy4uL2Jvb2xlYW4tb3BlcmF0b3InO1xuaW1wb3J0IHtOb0NvbmZpZ3VyYXRpb25DYXRlZ29yeX0gZnJvbSAnLi4vbm8tY29uZmlndXJhdGlvbi1jYXRlZ29yeSc7XG5pbXBvcnQge0Nhc2VEYXRhc2V0fSBmcm9tICcuL2Nhc2UtZGF0YXNldCc7XG5pbXBvcnQge0RhdGFmaWVsZE1hcEtleX0gZnJvbSAnLi4vLi4vZGF0YWZpZWxkLW1hcC1rZXknO1xuaW1wb3J0IHtTZWFyY2hJbmRleH0gZnJvbSAnLi4vLi4vc2VhcmNoLWluZGV4JztcbmltcG9ydCB7Q2F0ZWdvcmllc30gZnJvbSAnLi4vY2F0ZWdvcmllcyc7XG5pbXBvcnQge0NhdGVnb3J5R2VuZXJhdG9yTWV0YWRhdGF9IGZyb20gJy4uLy4uL3BlcnNpc3RhbmNlL2dlbmVyYXRvci1tZXRhZGF0YSc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTm90RXF1YWxzIH0gZnJvbSAnLi4vLi4vb3BlcmF0b3Ivbm90LWVxdWFscyc7XG5cbi8qKlxuICogVGhpcyBjbGFzcyBhaW1zIHRvIGJlIGEgc2ltcGxlciBtb3JlIGxpbWl0ZWQgdmVyc2lvbiBvZiB0aGUge0BsaW5rIENhc2VEYXRhc2V0fSB7QGxpbmsgQ2F0ZWdvcnl9IGltcGxlbWVudGF0aW9uLlxuICpcbiAqIEl0IGNhbiBvbmx5IGdlbmVyYXRlIFwiZXF1YWxpdHlcIiBxdWVyaWVzIGZvciBhIHNpbmdsZSBmaWVsZC4gVGhlIGNhdGVnb3J5IG11c3QgYmUgY29uZmlndXJlZCBiZWZvcmUgaXQgY2FuIGJlIHVzZWQgdG8gZ2VuZXJhdGUgcXVlcmllcy5cbiAqXG4gKiBUaGlzIGNhdGVnb3J5IGNhbm5vdCBiZSBzZXJpYWxpemVkLiBJZiB5b3Ugd2FudCB0byBwcmVzZXJ2ZSB0aGlzIGNhdGVnb3J5J3Mgc3RhdGUgY29udmVydCBpdCB0byB7QGxpbmsgQ2FzZURhdGFzZXR9XG4gKiB3aXRoIHRoZSBbdHJhbnNmb3JtVG9DYXNlRGF0YXNldCgpXXtAbGluayBDYXNlU2ltcGxlRGF0YXNldCN0cmFuc2Zvcm1Ub0Nhc2VEYXRhc2V0fSBtZXRob2QgYW5kIHNlcmlhbGl6ZSB0aGUgcmVzdWx0LlxuICpcbiAqIFNlZSBbY29uZmlndXJlXXtAbGluayBDYXNlU2ltcGxlRGF0YXNldCNjb25maWd1cmV9IGZvciBtb3JlIGluZm9ybWF0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgQ2FzZVNpbXBsZURhdGFzZXQgZXh0ZW5kcyBOb0NvbmZpZ3VyYXRpb25DYXRlZ29yeTxzdHJpbmc+IHtcblxuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IF9pMThuID0gJ3NlYXJjaC5jYXRlZ29yeS5jYXNlLmRhdGFzZXQnO1xuXG4gICAgcHJvdGVjdGVkIF9maWVsZElkOiBzdHJpbmc7XG4gICAgcHJvdGVjdGVkIF9maWVsZFR5cGU6IHN0cmluZztcbiAgICBwcm90ZWN0ZWQgX25ldElkZW50aWZpZXJzOiBBcnJheTxzdHJpbmc+O1xuICAgIHByb3RlY3RlZCBfZWxhc3RpY0tleXdvcmQ6IHN0cmluZztcblxuICAgIHByb3RlY3RlZCBfcHJvY2Vzc0NhdGVnb3J5OiBDYXNlUHJvY2VzcztcblxuICAgIGNvbnN0cnVjdG9yKG9wZXJhdG9yczogT3BlcmF0b3JTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIGxvZ2dlcjogTG9nZ2VyU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX29wdGlvbmFsRGVwZW5kZW5jaWVzOiBPcHRpb25hbERlcGVuZGVuY2llcykge1xuICAgICAgICBzdXBlcih1bmRlZmluZWQsXG4gICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICBgJHtDYXNlU2ltcGxlRGF0YXNldC5faTE4bn0ubmFtZWAsXG4gICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICBsb2dnZXIsXG4gICAgICAgICAgICBvcGVyYXRvcnMpO1xuXG4gICAgICAgIHRoaXMuX3Byb2Nlc3NDYXRlZ29yeSA9IF9vcHRpb25hbERlcGVuZGVuY2llcy5jYXRlZ29yeUZhY3RvcnkuZ2V0V2l0aERlZmF1bHRPcGVyYXRvcihDYXNlUHJvY2VzcykgYXMgQ2FzZVByb2Nlc3M7XG4gICAgfVxuXG4gICAgZGVzdHJveSgpIHtcbiAgICAgICAgc3VwZXIuZGVzdHJveSgpO1xuICAgICAgICB0aGlzLl9wcm9jZXNzQ2F0ZWdvcnkuZGVzdHJveSgpO1xuICAgIH1cblxuICAgIGdldCBpbnB1dFBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBwdWJsaWMgY29uZmlndXJlKGZpZWxkSWQ6IHN0cmluZywgZmllbGRUeXBlOiBzdHJpbmcsIG5ldElkZW50aWZpZXJzOiBBcnJheTxzdHJpbmc+KTogdm9pZCB7XG4gICAgICAgIGlmICghZmllbGRJZCB8fCAhZmllbGRUeXBlIHx8ICFuZXRJZGVudGlmaWVycyB8fCBuZXRJZGVudGlmaWVycy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuX2xvZy5lcnJvcignQ2FzZVNpbXBsZURhdGFzZXQgbXVzdCBiZSBjb25maWd1cmVkIHdpdGggZGVmaW5lZCB2YWx1ZXMgYW5kIGEgbm9uLWVtcHR5IGFycmF5Jyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fZmllbGRJZCA9IGZpZWxkSWQ7XG4gICAgICAgIHRoaXMuX2ZpZWxkVHlwZSA9IGZpZWxkVHlwZTtcbiAgICAgICAgdGhpcy5fbmV0SWRlbnRpZmllcnMgPSBuZXRJZGVudGlmaWVycztcbiAgICAgICAgdGhpcy5yZXNvbHZlRWxhc3RpY0tleXdvcmQoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgcmVzb2x2ZUVsYXN0aWNLZXl3b3JkKCk6IHZvaWQge1xuICAgICAgICBjb25zdCByZXNvbHZlciA9IHRoaXMuX29wdGlvbmFsRGVwZW5kZW5jaWVzLnNlYXJjaEluZGV4UmVzb2x2ZXI7XG4gICAgICAgIHN3aXRjaCAodGhpcy5fZmllbGRUeXBlKSB7XG4gICAgICAgICAgICBjYXNlICdudW1iZXInOlxuICAgICAgICAgICAgICAgIHRoaXMuX2VsYXN0aWNLZXl3b3JkID0gcmVzb2x2ZXIuZ2V0SW5kZXgodGhpcy5fZmllbGRJZCwgU2VhcmNoSW5kZXguTlVNQkVSKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2RhdGUnOlxuICAgICAgICAgICAgY2FzZSAnZGF0ZVRpbWUnOlxuICAgICAgICAgICAgICAgIHRoaXMuX2VsYXN0aWNLZXl3b3JkID0gcmVzb2x2ZXIuZ2V0SW5kZXgodGhpcy5fZmllbGRJZCwgU2VhcmNoSW5kZXguVElNRVNUQU1QKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgICAgICAgICAgIHRoaXMuX2VsYXN0aWNLZXl3b3JkID0gcmVzb2x2ZXIuZ2V0SW5kZXgodGhpcy5fZmllbGRJZCwgU2VhcmNoSW5kZXguQk9PTEVBTik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdmaWxlJzpcbiAgICAgICAgICAgIGNhc2UgJ2ZpbGVMaXN0JzpcbiAgICAgICAgICAgICAgICB0aGlzLl9lbGFzdGljS2V5d29yZCA9IHJlc29sdmVyLmdldEluZGV4KHRoaXMuX2ZpZWxkSWQsIFNlYXJjaEluZGV4LkZJTEVfTkFNRSwgdGhpcy5pc1NlbGVjdGVkT3BlcmF0b3IoU3Vic3RyaW5nKSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd1c2VyJzpcbiAgICAgICAgICAgIGNhc2UgJ3VzZXJMaXN0JzpcbiAgICAgICAgICAgICAgICB0aGlzLl9lbGFzdGljS2V5d29yZCA9IHJlc29sdmVyLmdldEluZGV4KHRoaXMuX2ZpZWxkSWQsIFNlYXJjaEluZGV4LlVTRVJfSUQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnaTE4bic6XG4gICAgICAgICAgICAgICAgdGhpcy5fZWxhc3RpY0tleXdvcmQgPSByZXNvbHZlci5nZXRJbmRleCh0aGlzLl9maWVsZElkLCBTZWFyY2hJbmRleC5URVhULCB0aGlzLmlzU2VsZWN0ZWRPcGVyYXRvcihFcXVhbHMpIHx8IHRoaXMuaXNTZWxlY3RlZE9wZXJhdG9yKE5vdEVxdWFscykgfHwgdGhpcy5pc1NlbGVjdGVkT3BlcmF0b3IoU3Vic3RyaW5nKSlcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhpcy5fZWxhc3RpY0tleXdvcmQgPSByZXNvbHZlci5nZXRJbmRleCh0aGlzLl9maWVsZElkLCBTZWFyY2hJbmRleC5GVUxMVEVYVCwgdGhpcy5pc1NlbGVjdGVkT3BlcmF0b3IoU3Vic3RyaW5nKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGVsYXN0aWNLZXl3b3JkcygpOiBBcnJheTxzdHJpbmc+IHtcbiAgICAgICAgaWYgKCF0aGlzLl9maWVsZElkKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gW3RoaXMuX2VsYXN0aWNLZXl3b3JkXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgc2VsZWN0ZWRPcGVyYXRvcigpOiBPcGVyYXRvcjxhbnk+IHtcbiAgICAgICAgc3dpdGNoICh0aGlzLl9maWVsZFR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihFcXVhbHMpO1xuICAgICAgICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihFcXVhbHMpO1xuICAgICAgICAgICAgY2FzZSAndXNlcic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihFcXVhbHMpO1xuICAgICAgICAgICAgY2FzZSAnZGF0ZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihFcXVhbHNEYXRlKTtcbiAgICAgICAgICAgIGNhc2UgJ2RhdGVUaW1lJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fb3BlcmF0b3JTZXJ2aWNlLmdldE9wZXJhdG9yKEVxdWFsc0RhdGVUaW1lKTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihTdWJzdHJpbmcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZHVwbGljYXRlKCk6IENhc2VTaW1wbGVEYXRhc2V0IHtcbiAgICAgICAgcmV0dXJuIG5ldyBDYXNlU2ltcGxlRGF0YXNldCh0aGlzLl9vcGVyYXRvclNlcnZpY2UsIHRoaXMuX2xvZywgdGhpcy5fb3B0aW9uYWxEZXBlbmRlbmNpZXMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSB7QGxpbmsgQ2FzZURhdGFzZXR9IGluc3RhbmNlIGFuZCBjb25maWd1cmVzIGl0IHNvLCB0aGF0IHRoZSBxdWVyeSBpdCBnZW5lcmF0ZXMgdGFyZ2V0c1xuICAgICAqIHRoZSBzZWxlY3RlZCBmaWVsZCwgdXNlcyB0aGUgZGVmYXVsdCBvcGVyYXRvciBhbmQgaXRzIG9wZXJhbmRzIGFyZSB3aGF0IHRoZSB1c2VyIHByb3ZpZGVkLlxuICAgICAqXG4gICAgICogQHBhcmFtIGZpZWxkVHlwZSB0aGUgdHlwZSBvZiB0aGUgZmllbGQgdGhhdCBzaG91bGQgYmUgdGFyZ2V0ZWQgYnkgdGhlIHRyYW5zZm9ybWVkIENhdGVnb3J5XG4gICAgICogQHBhcmFtIGZpZWxkVGl0bGUgdGhlIHRpdGxlIG9mIHRoZSBmaWVsZCB0aGF0IHNob3VsZCBiZSB0YXJnZXRlZCBieSB0aGUgdHJhbnNmb3JtZWQgQ2F0ZWdvcnlcbiAgICAgKiBAcGFyYW0gdXNlcklucHV0IHRoZSBvcGVyYW5kcyBmb3IgdGhlIHF1ZXJpZWQgZmllbGRcbiAgICAgKiBAcmV0dXJucyBhIG5ldyB7QGxpbmsgQ2FzZURhdGFzZXR9IGNvbmZpZ3VyZWQgd2l0aCB0aGUgcHJvdmlkZWQgdmFsdWVzXG4gICAgICovXG4gICAgcHVibGljIHRyYW5zZm9ybVRvQ2FzZURhdGFzZXQoZmllbGRUeXBlOiBzdHJpbmcsIGZpZWxkVGl0bGU6IHN0cmluZywgdXNlcklucHV0OiBBcnJheTxhbnk+KTogQ2FzZURhdGFzZXQge1xuICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9vcHRpb25hbERlcGVuZGVuY2llcy5jYXRlZ29yeUZhY3RvcnkuZ2V0KENhc2VEYXRhc2V0KSBhcyBDYXNlRGF0YXNldDtcbiAgICAgICAgcmVzdWx0LnNlbGVjdERhdGFmaWVsZHMoRGF0YWZpZWxkTWFwS2V5LnNlcmlhbGl6ZWRGb3JtKGZpZWxkVHlwZSwgZmllbGRUaXRsZSkpO1xuICAgICAgICByZXN1bHQuc2V0T3BlcmFuZHModXNlcklucHV0KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2VuZXJhdGVRdWVyeSh1c2VySW5wdXQ6IEFycmF5PHVua25vd24+KTogUXVlcnkge1xuICAgICAgICBjb25zdCB2YWx1ZVF1ZXJ5ID0gdGhpcy5zZWxlY3RlZE9wZXJhdG9yLmNyZWF0ZVF1ZXJ5KHRoaXMuZWxhc3RpY0tleXdvcmRzLCB1c2VySW5wdXQpO1xuICAgICAgICBjb25zdCBuZXRzUXVlcnkgPSBRdWVyeS5jb21iaW5lUXVlcmllcyhcbiAgICAgICAgICAgIHRoaXMuX25ldElkZW50aWZpZXJzLm1hcChpZCA9PiB0aGlzLl9wcm9jZXNzQ2F0ZWdvcnkuZ2VuZXJhdGVQcmVkaWNhdGUoW1tpZF1dKS5xdWVyeSksXG4gICAgICAgICAgICBCb29sZWFuT3BlcmF0b3IuT1JcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIFF1ZXJ5LmNvbWJpbmVRdWVyaWVzKFt2YWx1ZVF1ZXJ5LCBuZXRzUXVlcnldLCBCb29sZWFuT3BlcmF0b3IuQU5EKTtcbiAgICB9XG5cbiAgICBzZXJpYWxpemVDbGFzcygpOiBDYXRlZ29yaWVzIHwgc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIENhdGVnb3JpZXMuQ0FTRV9TSU1QTEVfREFUQVNFVDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXJpYWxpemF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuIFRocm93cyBhbiBlcnJvci5cbiAgICAgKi9cbiAgICBjcmVhdGVNZXRhZGF0YSgpOiBuZXZlciB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignQ2FzZVNpbXBsZURhdGFzZXQgZG9lcyBub3Qgc3VwcG9ydCBzZXJpYWxpemF0aW9uIScpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlc2VyaWFsaXphdGlvbiBpcyBub3Qgc3VwcG9ydGVkLiBUaHJvd3MgYW4gZXJyb3IuXG4gICAgICovXG4gICAgbG9hZEZyb21NZXRhZGF0YShtZXRhZGF0YTogQ2F0ZWdvcnlHZW5lcmF0b3JNZXRhZGF0YSk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhc2VTaW1wbGVEYXRhc2V0IGRvZXMgbm90IHN1cHBvcnQgZGVzZXJpYWxpemF0aW9uIScpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -959,6 +959,9 @@ var dataField$2 = {
|
|
|
959
959
|
},
|
|
960
960
|
"enum": {
|
|
961
961
|
reset: "Reset"
|
|
962
|
+
},
|
|
963
|
+
user: {
|
|
964
|
+
selectUser: "Select user"
|
|
962
965
|
}
|
|
963
966
|
};
|
|
964
967
|
var dialog$2 = {
|
|
@@ -1417,6 +1420,9 @@ var dataField$1 = {
|
|
|
1417
1420
|
},
|
|
1418
1421
|
"enum": {
|
|
1419
1422
|
reset: "Resetovať"
|
|
1423
|
+
},
|
|
1424
|
+
user: {
|
|
1425
|
+
selectUser: "Vyberte používateľa"
|
|
1420
1426
|
}
|
|
1421
1427
|
};
|
|
1422
1428
|
var dialog$1 = {
|
|
@@ -1875,6 +1881,9 @@ var dataField = {
|
|
|
1875
1881
|
},
|
|
1876
1882
|
"enum": {
|
|
1877
1883
|
reset: "Rücksetzen"
|
|
1884
|
+
},
|
|
1885
|
+
user: {
|
|
1886
|
+
selectUser: "Benutzer auswählen"
|
|
1878
1887
|
}
|
|
1879
1888
|
};
|
|
1880
1889
|
var dialog = {
|
|
@@ -11052,6 +11061,8 @@ class CaseDataset extends Category {
|
|
|
11052
11061
|
case 'user':
|
|
11053
11062
|
case 'userList':
|
|
11054
11063
|
return resolver.getIndex(datafield.fieldId, SearchIndex.USER_ID);
|
|
11064
|
+
case 'i18n':
|
|
11065
|
+
return resolver.getIndex(datafield.fieldId, SearchIndex.TEXT, this.isSelectedOperator(Equals) || this.isSelectedOperator(NotEquals) || this.isSelectedOperator(Substring));
|
|
11055
11066
|
default:
|
|
11056
11067
|
return resolver.getIndex(datafield.fieldId, SearchIndex.FULLTEXT, this.isSelectedOperator(Equals) || this.isSelectedOperator(NotEquals) || this.isSelectedOperator(Substring));
|
|
11057
11068
|
}
|
|
@@ -11393,6 +11404,9 @@ class CaseSimpleDataset extends NoConfigurationCategory {
|
|
|
11393
11404
|
case 'userList':
|
|
11394
11405
|
this._elasticKeyword = resolver.getIndex(this._fieldId, SearchIndex.USER_ID);
|
|
11395
11406
|
break;
|
|
11407
|
+
case 'i18n':
|
|
11408
|
+
this._elasticKeyword = resolver.getIndex(this._fieldId, SearchIndex.TEXT, this.isSelectedOperator(Equals) || this.isSelectedOperator(NotEquals) || this.isSelectedOperator(Substring));
|
|
11409
|
+
break;
|
|
11396
11410
|
default:
|
|
11397
11411
|
this._elasticKeyword = resolver.getIndex(this._fieldId, SearchIndex.FULLTEXT, this.isSelectedOperator(Substring));
|
|
11398
11412
|
}
|