@plumile/backoffice-core 0.1.189 → 0.1.190

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.
@@ -46,11 +46,11 @@ export type DefineBackofficeDashboardStaticWidgetInput<Kind extends BackofficeDa
46
46
  type AnyDefineBackofficeDashboardStaticWidgetInput = {
47
47
  [Kind in BackofficeDashboardStaticWidgetKind]: DefineBackofficeDashboardStaticWidgetInput<Kind>;
48
48
  }[BackofficeDashboardStaticWidgetKind];
49
- export type DefineBackofficeConnectionListInput<TOperation extends OperationType, RowRef, RowView, ListFragmentData, TWhere extends Record<string, unknown> = BackofficeOperationWhere<TOperation>, TSort extends string = BackofficeOperationSort<TOperation>, TCountOperation extends OperationType = any> = Omit<BackofficeConnectionListConfig<TOperation, RowRef, RowView, ListFragmentData, TWhere, TSort, TCountOperation>, 'kind' | 'buildQueryVariables'> & {
49
+ export type DefineBackofficeConnectionListInput<TOperation extends OperationType, RowRef, RowView, ListFragmentData, TWhere extends Record<string, unknown> = BackofficeOperationWhere<TOperation>, TSort extends string = BackofficeOperationSort<TOperation>, TCountOperation extends OperationType = any, TEntityId extends string = string> = Omit<BackofficeConnectionListConfig<TOperation, RowRef, RowView, ListFragmentData, TWhere, TSort, TCountOperation, TEntityId>, 'kind' | 'buildQueryVariables'> & {
50
50
  buildQueryVariables?: (input: BackofficeListQueryInput<TOperation, TWhere, TSort>) => TOperation['variables'];
51
51
  };
52
- export type DefineBackofficeListFacetInput<TOperation extends OperationType, RowRef, RowView, ListFragmentData, TWhere extends Record<string, unknown> = BackofficeOperationWhere<TOperation>, TSort extends string = BackofficeOperationSort<TOperation>, TCountOperation extends OperationType = any> = Omit<BackofficeListFacetConfig<TOperation, RowRef, RowView, ListFragmentData, TWhere, TSort, TCountOperation>, 'list'> & {
53
- list: BackofficeEntityListConfig<TOperation, RowRef, RowView, ListFragmentData, TWhere, TSort, TCountOperation>;
52
+ export type DefineBackofficeListFacetInput<TOperation extends OperationType, RowRef, RowView, ListFragmentData, TWhere extends Record<string, unknown> = BackofficeOperationWhere<TOperation>, TSort extends string = BackofficeOperationSort<TOperation>, TCountOperation extends OperationType = any, TEntityId extends string = string> = Omit<BackofficeListFacetConfig<TOperation, RowRef, RowView, ListFragmentData, TWhere, TSort, TCountOperation, TEntityId>, 'list'> & {
53
+ list: BackofficeEntityListConfig<TOperation, RowRef, RowView, ListFragmentData, TWhere, TSort, TCountOperation, TEntityId>;
54
54
  };
55
55
  export type DefineBackofficePickerInput<TOperation extends OperationType, RowRef, RowView, PickerFragmentData, TWhere extends Record<string, unknown> = BackofficeOperationWhere<TOperation>> = Omit<BackofficeEntityPickerConfig<TOperation, RowRef, RowView, PickerFragmentData, TWhere>, 'buildQueryVariables'> & {
56
56
  buildQueryVariables?: (input: BackofficePickerQueryInput<TOperation, TWhere>) => TOperation['variables'];
@@ -84,16 +84,19 @@ export declare const defineBackofficeEntityCount: <TOperation extends OperationT
84
84
  buildVariables: (input: BackofficeCountQueryInput<TWhere>) => TOperation["variables"];
85
85
  getCount: (data: TOperation["response"]) => number | null;
86
86
  }) => BackofficeEntityCountConfig<TOperation, TWhere>;
87
- export declare const defineBackofficeFilters: <TOperation extends OperationType, TWhere extends Record<string, unknown> = BackofficeOperationWhere<TOperation>>() => <const Filters extends readonly BackofficeFilterSpec<TWhere>[]>(filters: Filters) => Filters;
87
+ export declare const defineBackofficeFilters: <TOperation extends OperationType, TWhere extends Record<string, unknown> = BackofficeOperationWhere<TOperation>, TEntityId extends string = string>() => <const Filters extends readonly BackofficeFilterSpec<TWhere, TEntityId>[]>(filters: Filters) => Filters;
88
88
  export declare const defineBackofficeSorts: <TOperation extends OperationType, TSort extends string = BackofficeOperationSort<TOperation>>() => <const Sorts extends readonly BackofficeSortSpec<TSort>[]>(sorts: Sorts) => Sorts;
89
89
  type FilterConfig = {
90
90
  label: I18nLabel;
91
91
  placement?: BackofficeFilterPlacement;
92
92
  path?: readonly string[];
93
93
  };
94
- export declare const entityIdFilter: <Where, Key extends StringFieldKey<Where>>(key: Key, config: FilterConfig & {
95
- entity: string;
96
- }) => BackofficeFilterSpec<Where>;
94
+ export declare const entityIdFilter: <Where, Key extends StringFieldKey<Where>, EntityId extends string = string>(key: Key, config: FilterConfig & {
95
+ entity: EntityId;
96
+ }) => BackofficeFilterSpec<Where, EntityId>;
97
+ export declare const entityIdListFilter: <Where, Key extends StringListFieldKey<Where>, EntityId extends string = string>(key: Key, config: FilterConfig & {
98
+ entity: EntityId;
99
+ }) => BackofficeFilterSpec<Where, EntityId>;
97
100
  export declare const textFilter: <Where, Key extends StringFieldKey<Where>>(key: Key, config: FilterConfig & {
98
101
  placeholderLabel?: I18nLabel;
99
102
  placeholderText?: I18nLabel;
@@ -1 +1 @@
1
- {"version":3,"file":"builders.d.ts","sourceRoot":"","sources":["../../src/builders.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builders.d.ts","sourceRoot":"","sources":["../../src/builders.ts"],"names":[],"mappings":"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"}
@@ -166,6 +166,29 @@ export const entityIdFilter = (key, config) => {
166
166
  },
167
167
  };
168
168
  };
169
+ export const entityIdListFilter = (key, config) => {
170
+ return {
171
+ id: key,
172
+ kind: 'entityIdList',
173
+ entity: config.entity,
174
+ label: config.label,
175
+ placement: config.placement,
176
+ whereKey: key,
177
+ path: config.path,
178
+ toGraphQL: (value) => {
179
+ return { [key]: value };
180
+ },
181
+ fromGraphQL: (where) => {
182
+ const raw = where[key];
183
+ if (!Array.isArray(raw)) {
184
+ return null;
185
+ }
186
+ return raw.filter((entry) => {
187
+ return typeof entry === 'string' && entry.trim() !== '';
188
+ });
189
+ },
190
+ };
191
+ };
169
192
  export const textFilter = (key, config) => {
170
193
  return {
171
194
  id: key,
@@ -363,4 +386,4 @@ export const createToolManifest = (config) => {
363
386
  defaultDetailPageId: undefined,
364
387
  };
365
388
  };
366
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYnVpbGRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBOE5BLE1BQU0sQ0FBQyxNQUFNLCtCQUErQixHQUFHLENBRzdDLE1BQWMsRUFDTixFQUFFO0lBQ1YsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FDbkMsSUFBdUIsRUFDVSxFQUFFO0lBQ25DLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUNsQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxDQUN0QyxJQUF1QixFQUNjLEVBQUU7SUFDdkMsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO0FBQ2xCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGtDQUFrQyxHQUFHLENBS2hELElBQXVCLEVBQ2dDLEVBQUU7SUFDekQsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO0FBQ2xCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHLEdBRzFDLEVBQUU7SUFDSixPQUFPLENBR0wsTUFBMkMsRUFDbkMsRUFBRTtRQUNWLE9BQU87WUFDTCxHQUFHLE1BQU07WUFDVCxtQkFBbUIsRUFBRSxJQUFJO1NBQ2hCLENBQUM7SUFDZCxDQUFDLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxrQ0FBa0MsR0FBRyxHQUs5QyxFQUFFO0lBQ0osT0FBTyxDQVFMLE1BQTJDLEVBQ25DLEVBQUU7UUFDVixPQUFPO1lBQ0wsR0FBRyxNQUFNO1lBQ1QsbUJBQW1CLEVBQUUsSUFBSTtTQUNoQixDQUFDO0lBQ2QsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sb0NBQW9DLEdBQUcsR0FFaEQsRUFBRTtJQUNKLE9BQU8sQ0FJTCxNQUFjLEVBQ2tDLEVB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TyxLQUFLLENBQUM7QUFDZixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUNsQyxLQUE4QyxFQUNMLEVBQUU7SUFDM0MsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FDM0IsS0FBdUMsRUFDTCxFQUFFO0lBQ3BDLE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FDbEMsS0FBOEMsRUFDTCxFQUFFO0lBQzNDLE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQzdCLE1BQVMsRUFDTixFQUFFO0lBQ0wsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsQ0FNdEMsTUFBZSxFQUNvQixFQUFFO0lBQ3JDLE9BQU87UUFDTCxHQUFHLE1BQU07UUFDVCxJQUFJLEVBQUUsYUFBYTtLQUNwQixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FTaEMsTUFBZSxFQU1mLEVBQUU7SUFDRixPQUFPO1FBQ0wsR0FBRyxNQUFNO1FBQ1QsSUFBSSxFQUFFLE1BQU07UUFDWixPQUFPLEVBQUUsS0FBSztRQUNkLFdBQVcsRUFBRSxTQUFTO1FBQ3RCLG1CQUFtQixFQUFFLFNBQVM7S0FDL0IsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgR3JhcGhRTFRhZ2dlZE5vZGUsIE9wZXJhdGlvblR5cGUgfSBmcm9tICdyZWxheS1ydW50aW1lJztcbmltcG9ydCB0eXBlIHtcbiAgQmFja29mZmljZUNvbm5lY3Rpb25MaXN0Q29uZmlnLFxuICBCYWNrb2ZmaWNlQXVkaXRCbG9ja1NwZWMsXG4gIEJhY2tvZmZpY2VDb3VudFF1ZXJ5SW5wdXQsXG4gIEJhY2tvZmZpY2VDb250ZXh0U3RhY2tCbG9ja1NwZWMsXG4gIEJhY2tvZmZpY2VEYXNoYm9hcmRDb25maWcsXG4gIEJhY2tvZmZpY2VEYXNoYm9hcmRDb250ZXh0LFxuICBCYWNrb2ZmaWNlRGFzaGJvYXJkRW50aXR5TGlzdFRhcmdldCxcbiAgQmFja29mZmljZURhc2hib2FyZEhyZWZUYXJnZXQsXG4gIEJhY2tvZmZpY2VEYXNoYm9hcmRXaWRnZXRWYXJpYWJsZXMsXG4gIEJhY2tvZmZpY2VEYXNoYm9hcmRXaWRnZXQsXG4gIEJhY2tvZmZpY2VEZXRhaWxMYXlvdXRGYWNldENvbmZpZyxcbiAgQmFja29mZmljZURldGFpbFBhZ2VGYWNldENvbmZpZyxcbiAgQmFja29mZmljZU1ldHJpY0dyb3VwQmxvY2tTcGVjLFxuICBCYWNrb2ZmaWNlUGF5bG9hZEJsb2NrU3BlYyxcbiAgQmFja29mZmljZVJlZmVyZW5jZUdyb3VwQmxvY2tTcGVjLFxuICBCYWNrb2ZmaWNlUmVsYXRpb25TdW1tYXJ5R3JvdXBCbG9ja1NwZWMsXG4gIEJhY2tvZmZpY2VTZW1hbnRpY0RldGFpbEJsb2NrU3BlYyxcbiAgQmFja29mZmljZVN0YXRlR3JvdXBCbG9ja1NwZWMsXG4gIEJhY2tvZmZpY2VTdW1tYXJ5QmxvY2tTcGVjLFxuICBCYWNrb2ZmaWNlVGVjaG5pY2FsRmFjdHNCbG9ja1NwZWMsXG4gIEJhY2tvZmZpY2VUaW1lbGluZUJsb2NrU3BlYyxcbiAgQmFja29mZmljZUVudGl0eUxpc3RDb25maWcsXG4gIEJhY2tvZmZpY2VFbnRpdHlGb3JtTXV0YXRpb25BY3Rpb25TcGVjLFxuICBCYWNrb2ZmaWNlRW50aXR5TXV0YXRpb25BY3Rpb25TcGVjLFxuICBCYWNrb2ZmaWNlRW50aXR5Q291bnRDb25maWcsXG4gIEJhY2tvZmZpY2VFbnRpdHlNYW5pZmVzdEl0ZW0sXG4gIEJhY2tvZmZpY2VFbnRpdHlQaWNrZXJDb25maWcsXG4gIEJhY2tvZmZpY2VGaWx0ZXJQbGFjZW1lbnQsXG4gIEJhY2tvZmZpY2VGaWx0ZXJTcGVjLFxuICBCYWNrb2ZmaWNlRnJhZ21lbnRTcGVjLFxuICBCYWNrb2ZmaWNlTGlzdERldGFpbEZhY2V0TG9hZGVyTWFwLFxuICBCYWNrb2ZmaWNlTGlzdEZhY2V0Q29uZmlnLFxuICBCYWNrb2ZmaWNlTGlzdFF1ZXJ5SW5wdXQsXG4gIEJhY2tvZmZpY2VPcGVyYXRpb25Tb3J0LFxuICBCYWNrb2ZmaWNlT3BlcmF0aW9uV2hlcmUsXG4gIEJhY2tvZmZpY2VQaWNrZXJGYWNldENvbmZpZyxcbiAgQmFja29mZmljZVBpY2tlclF1ZXJ5SW5wdXQsXG4gIEJhY2tvZmZpY2VQYWdpbmF0aW9uRnJhZ21lbnRTcGVjLFxuICBCYWNrb2ZmaWNlUXVlcnlTcGVjLFxuICBCYWNrb2ZmaWNlUmVsYXRpb25GaWx0ZXJTcGVjLFxuICBCYWNrb2ZmaWNlU29ydFNwZWMsXG4gIEJhY2tvZmZpY2VUb29sRW50aXR5Q29uZmlnLFxuICBCYWNrb2ZmaWNlVG9vbEZhY2V0Q29uZmlnLFxuICBCYWNrb2ZmaWNlVG9vbEZhY2V0TG9hZGVyTWFwLFxuICBJMThuTGFiZWwsXG59IGZyb20gJy4vdHlwZXMuanMnO1xuXG50eXBlIEZpZWxkS2V5T2ZUeXBlPFdoZXJlLCBWYWx1ZT4gPSBFeHRyYWN0PFxuICB7XG4gICAgW0tleSBpbiBrZXlvZiBXaGVyZV06IE5vbk51bGxhYmxlPFdoZXJlW0tleV0+IGV4dGVuZHMgVmFsdWUgPyBLZXkgOiBuZXZlcjtcbiAgfVtrZXlvZiBXaGVyZV0sXG4gIHN0cmluZ1xuPjtcblxudHlwZSBTdHJpbmdGaWVsZEtleTxXaGVyZT4gPSBGaWVsZEtleU9mVHlwZTxXaGVyZSwgc3RyaW5nPjtcbnR5cGUgQm9vbGVhbkZpZWxkS2V5PFdoZXJlPiA9IEZpZWxkS2V5T2ZUeXBlPFdoZXJlLCBib29sZWFuPjtcbnR5cGUgTnVtYmVyRmllbGRLZXk8V2hlcmU+ID0gRmllbGRLZXlPZlR5cGU8V2hlcmUsIG51bWJlcj47XG50eXBlIFN0cmluZ0xpc3RGaWVsZEtleTxXaGVyZT4gPSBGaWVsZEtleU9mVHlwZTxXaGVyZSwgcmVhZG9ubHkgc3RyaW5nW10+O1xuXG50eXBlIFN0YW5kYXJkTGlzdFZhcmlhYmxlczxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIFRXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gQmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRPcGVyYXRpb24+LFxuICBUU29ydCBleHRlbmRzIHN0cmluZyA9IEJhY2tvZmZpY2VPcGVyYXRpb25Tb3J0PFRPcGVyYXRpb24+LFxuPiA9IHtcbiAgd2hlcmU/OiBUV2hlcmUgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBzb3J0PzogVFNvcnQgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBjb3VudDogbnVtYmVyO1xuICBjdXJzb3I/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xufTtcblxudHlwZSBTdGFuZGFyZFBpY2tlclZhcmlhYmxlczxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIFRXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gQmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRPcGVyYXRpb24+LFxuPiA9IHtcbiAgd2hlcmU/OiBUV2hlcmUgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBjb3VudDogbnVtYmVyO1xuICBjdXJzb3I/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xufTtcblxudHlwZSBTdHJpY3RTdGFuZGFyZExpc3RPcGVyYXRpb248VE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGU+ID1cbiAgVE9wZXJhdGlvblsndmFyaWFibGVzJ10gZXh0ZW5kcyBTdGFuZGFyZExpc3RWYXJpYWJsZXM8VE9wZXJhdGlvbj5cbiAgICA/IFRPcGVyYXRpb25cbiAgICA6IG5ldmVyO1xuXG50eXBlIFN0cmljdFN0YW5kYXJkUGlja2VyT3BlcmF0aW9uPFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlPiA9XG4gIFRPcGVyYXRpb25bJ3ZhcmlhYmxlcyddIGV4dGVuZHMgU3RhbmRhcmRQaWNrZXJWYXJpYWJsZXM8VE9wZXJhdGlvbj5cbiAgICA/IFRPcGVyYXRpb25cbiAgICA6IG5ldmVyO1xuXG50eXBlIEJhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldEtpbmQgPSBFeHRyYWN0PFxuICBCYWNrb2ZmaWNlRGFzaGJvYXJkV2lkZ2V0LFxuICB7IGRhdGFTb3VyY2U6ICdxdWVyeScgfVxuPlsna2luZCddO1xuXG50eXBlIEJhY2tvZmZpY2VEYXNoYm9hcmRTdGF0aWNXaWRnZXRLaW5kID0gRXh0cmFjdDxcbiAgQmFja29mZmljZURhc2hib2FyZFdpZGdldCxcbiAgeyBkYXRhU291cmNlOiAnc3RhdGljJyB9XG4+WydraW5kJ107XG5cbnR5cGUgQmFja29mZmljZURhc2hib2FyZFF1ZXJ5V2lkZ2V0PFxuICBLaW5kIGV4dGVuZHMgQmFja29mZmljZURhc2hib2FyZFF1ZXJ5V2lkZ2V0S2luZCxcbj4gPSBFeHRyYWN0PEJhY2tvZmZpY2VEYXNoYm9hcmRXaWRnZXQsIHsgZGF0YVNvdXJjZTogJ3F1ZXJ5Jzsga2luZDogS2luZCB9PjtcblxudHlwZSBCYWNrb2ZmaWNlRGFzaGJvYXJkU3RhdGljV2lkZ2V0PFxuICBLaW5kIGV4dGVuZHMgQmFja29mZmljZURhc2hib2FyZFN0YXRpY1dpZGdldEtpbmQsXG4+ID0gRXh0cmFjdDxCYWNrb2ZmaWNlRGFzaGJvYXJkV2lkZ2V0LCB7IGRhdGFTb3VyY2U6ICdzdGF0aWMnOyBraW5kOiBLaW5kIH0+O1xuXG50eXBlIEJhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldFJlc3VsdDxcbiAgS2luZCBleHRlbmRzIEJhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldEtpbmQsXG4+ID0gUmV0dXJuVHlwZTxCYWNrb2ZmaWNlRGFzaGJvYXJkUXVlcnlXaWRnZXQ8S2luZD5bJ3Jlc29sdmUnXT47XG5cbmV4cG9ydCB0eXBlIERlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldElucHV0PFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbiAgS2luZCBleHRlbmRzIEJhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldEtpbmQsXG4+ID0gT21pdDxcbiAgQmFja29mZmljZURhc2hib2FyZFF1ZXJ5V2lkZ2V0PEtpbmQ+LFxuICAnZGF0YVNvdXJjZScgfCAndmFyaWFibGVzJyB8ICdyZXNvbHZlJ1xuPiAmIHtcbiAgdmFyaWFibGVzOiBCYWNrb2ZmaWNlRGFzaGJvYXJkV2lkZ2V0VmFyaWFibGVzPFRPcGVyYXRpb24+O1xuICByZXNvbHZlOiAoXG4gICAgZGF0YTogVE9wZXJhdGlvblsncmVzcG9uc2UnXSxcbiAgICBjb250ZXh0OiBCYWNrb2ZmaWNlRGFzaGJvYXJkQ29udGV4dCxcbiAgKSA9PiBCYWNrb2ZmaWNlRGFzaGJvYXJkUXVlcnlXaWRnZXRSZXN1bHQ8S2luZD47XG59O1xuXG50eXBlIEFueURlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldElucHV0PFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbj4gPSB7XG4gIFtcbiAgICBLaW5kIGluIEJhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldEtpbmRcbiAgXTogRGVmaW5lQmFja29mZmljZURhc2hib2FyZFF1ZXJ5V2lkZ2V0SW5wdXQ8VE9wZXJhdGlvbiwgS2luZD47XG59W0JhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldEtpbmRdO1xuXG5leHBvcnQgdHlwZSBEZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkU3RhdGljV2lkZ2V0SW5wdXQ8XG4gIEtpbmQgZXh0ZW5kcyBCYWNrb2ZmaWNlRGFzaGJvYXJkU3RhdGljV2lkZ2V0S2luZCxcbj4gPSBPbWl0PEJhY2tvZmZpY2VEYXNoYm9hcmRTdGF0aWNXaWRnZXQ8S2luZD4sICdkYXRhU291cmNlJz47XG5cbnR5cGUgQW55RGVmaW5lQmFja29mZmljZURhc2hib2FyZFN0YXRpY1dpZGdldElucHV0ID0ge1xuICBbXG4gICAgS2luZCBpbiBCYWNrb2ZmaWNlRGFzaGJvYXJkU3RhdGljV2lkZ2V0S2luZFxuICBdOiBEZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkU3RhdGljV2lkZ2V0SW5wdXQ8S2luZD47XG59W0JhY2tvZmZpY2VEYXNoYm9hcmRTdGF0aWNXaWRnZXRLaW5kXTtcblxuZXhwb3J0IHR5cGUgRGVmaW5lQmFja29mZmljZUNvbm5lY3Rpb25MaXN0SW5wdXQ8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBSb3dSZWYsXG4gIFJvd1ZpZXcsXG4gIExpc3RGcmFnbWVudERhdGEsXG4gIFRXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gQmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRPcGVyYXRpb24+LFxuICBUU29ydCBleHRlbmRzIHN0cmluZyA9IEJhY2tvZmZpY2VPcGVyYXRpb25Tb3J0PFRPcGVyYXRpb24+LFxuICBUQ291bnRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlID0gYW55LFxuPiA9IE9taXQ8XG4gIEJhY2tvZmZpY2VDb25uZWN0aW9uTGlzdENvbmZpZzxcbiAgICBUT3BlcmF0aW9uLFxuICAgIFJvd1JlZixcbiAgICBSb3dWaWV3LFxuICAgIExpc3RGcmFnbWVudERhdGEsXG4gICAgVFdoZXJlLFxuICAgIFRTb3J0LFxuICAgIFRDb3VudE9wZXJhdGlvblxuICA+LFxuICAna2luZCcgfCAnYnVpbGRRdWVyeVZhcmlhYmxlcydcbj4gJiB7XG4gIGJ1aWxkUXVlcnlWYXJpYWJsZXM/OiAoXG4gICAgaW5wdXQ6IEJhY2tvZmZpY2VMaXN0UXVlcnlJbnB1dDxUT3BlcmF0aW9uLCBUV2hlcmUsIFRTb3J0PixcbiAgKSA9PiBUT3BlcmF0aW9uWyd2YXJpYWJsZXMnXTtcbn07XG5cbmV4cG9ydCB0eXBlIERlZmluZUJhY2tvZmZpY2VMaXN0RmFjZXRJbnB1dDxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIFJvd1JlZixcbiAgUm93VmlldyxcbiAgTGlzdEZyYWdtZW50RGF0YSxcbiAgVFdoZXJlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBCYWNrb2ZmaWNlT3BlcmF0aW9uV2hlcmU8VE9wZXJhdGlvbj4sXG4gIFRTb3J0IGV4dGVuZHMgc3RyaW5nID0gQmFja29mZmljZU9wZXJhdGlvblNvcnQ8VE9wZXJhdGlvbj4sXG4gIFRDb3VudE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUgPSBhbnksXG4+ID0gT21pdDxcbiAgQmFja29mZmljZUxpc3RGYWNldENvbmZpZzxcbiAgICBUT3BlcmF0aW9uLFxuICAgIFJvd1JlZixcbiAgICBSb3dWaWV3LFxuICAgIExpc3RGcmFnbWVudERhdGEsXG4gICAgVFdoZXJlLFxuICAgIFRTb3J0LFxuICAgIFRDb3VudE9wZXJhdGlvblxuICA+LFxuICAnbGlzdCdcbj4gJiB7XG4gIGxpc3Q6IEJhY2tvZmZpY2VFbnRpdHlMaXN0Q29uZmlnPFxuICAgIFRPcGVyYXRpb24sXG4gICAgUm93UmVmLFxuICAgIFJvd1ZpZXcsXG4gICAgTGlzdEZyYWdtZW50RGF0YSxcbiAgICBUV2hlcmUsXG4gICAgVFNvcnQsXG4gICAgVENvdW50T3BlcmF0aW9uXG4gID47XG59O1xuXG5leHBvcnQgdHlwZSBEZWZpbmVCYWNrb2ZmaWNlUGlja2VySW5wdXQ8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBSb3dSZWYsXG4gIFJvd1ZpZXcsXG4gIFBpY2tlckZyYWdtZW50RGF0YSxcbiAgVFdoZXJlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBCYWNrb2ZmaWNlT3BlcmF0aW9uV2hlcmU8VE9wZXJhdGlvbj4sXG4+ID0gT21pdDxcbiAgQmFja29mZmljZUVudGl0eVBpY2tlckNvbmZpZzxcbiAgICBUT3BlcmF0aW9uLFxuICAgIFJvd1JlZixcbiAgICBSb3dWaWV3LFxuICAgIFBpY2tlckZyYWdtZW50RGF0YSxcbiAgICBUV2hlcmVcbiAgPixcbiAgJ2J1aWxkUXVlcnlWYXJpYWJsZXMnXG4+ICYge1xuICBidWlsZFF1ZXJ5VmFyaWFibGVzPzogKFxuICAgIGlucHV0OiBCYWNrb2ZmaWNlUGlja2VyUXVlcnlJbnB1dDxUT3BlcmF0aW9uLCBUV2hlcmU+LFxuICApID0+IFRPcGVyYXRpb25bJ3ZhcmlhYmxlcyddO1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRDb25maWcgPSA8XG4gIGNvbnN0IENvbmZpZyBleHRlbmRzIEJhY2tvZmZpY2VEYXNoYm9hcmRDb25maWcsXG4+KFxuICBjb25maWc6IENvbmZpZyxcbik6IENvbmZpZyA9PiB7XG4gIHJldHVybiBjb25maWc7XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQmFja29mZmljZVF1ZXJ5ID0gPFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlPihcbiAgbm9kZTogR3JhcGhRTFRhZ2dlZE5vZGUsXG4pOiBCYWNrb2ZmaWNlUXVlcnlTcGVjPFRPcGVyYXRpb24+ID0+IHtcbiAgcmV0dXJuIHsgbm9kZSB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmluZUJhY2tvZmZpY2VGcmFnbWVudCA9IDxUS2V5LCBURGF0YT4oXG4gIG5vZGU6IEdyYXBoUUxUYWdnZWROb2RlLFxuKTogQmFja29mZmljZUZyYWdtZW50U3BlYzxUS2V5LCBURGF0YT4gPT4ge1xuICByZXR1cm4geyBub2RlIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQmFja29mZmljZVBhZ2luYXRpb25GcmFnbWVudCA9IDxcbiAgVFF1ZXJ5IGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbiAgVEtleSxcbiAgVERhdGEsXG4+KFxuICBub2RlOiBHcmFwaFFMVGFnZ2VkTm9kZSxcbik6IEJhY2tvZmZpY2VQYWdpbmF0aW9uRnJhZ21lbnRTcGVjPFRRdWVyeSwgVEtleSwgVERhdGE+ID0+IHtcbiAgcmV0dXJuIHsgbm9kZSB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmluZUJhY2tvZmZpY2VNdXRhdGlvbkFjdGlvbiA9IDxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIE5vZGUsXG4+KCkgPT4ge1xuICByZXR1cm4gPFxuICAgIGNvbnN0IEFjdGlvbiBleHRlbmRzIEJhY2tvZmZpY2VFbnRpdHlNdXRhdGlvbkFjdGlvblNwZWM8Tm9kZSwgVE9wZXJhdGlvbj4sXG4gID4oXG4gICAgYWN0aW9uOiBPbWl0PEFjdGlvbiwgJ3JlbGF5T3BlcmF0aW9uQm91bmQnPixcbiAgKTogQWN0aW9uID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uYWN0aW9uLFxuICAgICAgcmVsYXlPcGVyYXRpb25Cb3VuZDogdHJ1ZSxcbiAgICB9IGFzIEFjdGlvbjtcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVCYWNrb2ZmaWNlRm9ybU11dGF0aW9uQWN0aW9uID0gPFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbiAgTm9kZSxcbiAgRm9ybVZhbHVlcyBleHRlbmRzIG9iamVjdCxcbiAgSW5pdGlhbFZhbHVlcyBleHRlbmRzIG9iamVjdCA9IFBhcnRpYWw8Rm9ybVZhbHVlcz4sXG4+KCkgPT4ge1xuICByZXR1cm4gPFxuICAgIGNvbnN0IEFjdGlvbiBleHRlbmRzIEJhY2tvZmZpY2VFbnRpdHlGb3JtTXV0YXRpb25BY3Rpb25TcGVjPFxuICAgICAgTm9kZSxcbiAgICAgIFRPcGVyYXRpb24sXG4gICAgICBGb3JtVmFsdWVzLFxuICAgICAgSW5pdGlhbFZhbHVlc1xuICAgID4sXG4gID4oXG4gICAgYWN0aW9uOiBPbWl0PEFjdGlvbiwgJ3JlbGF5T3BlcmF0aW9uQm91bmQnPixcbiAgKTogQWN0aW9uID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uYWN0aW9uLFxuICAgICAgcmVsYXlPcGVyYXRpb25Cb3VuZDogdHJ1ZSxcbiAgICB9IGFzIEFjdGlvbjtcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkUXVlcnlXaWRnZXQgPSA8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuPigpID0+IHtcbiAgcmV0dXJuIDxcbiAgICBjb25zdCBXaWRnZXQgZXh0ZW5kc1xuICAgICAgQW55RGVmaW5lQmFja29mZmljZURhc2hib2FyZFF1ZXJ5V2lkZ2V0SW5wdXQ8VE9wZXJhdGlvbj4sXG4gID4oXG4gICAgd2lkZ2V0OiBXaWRnZXQsXG4gICk6IEJhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldDxXaWRnZXRbJ2tpbmQnXT4gPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi53aWRnZXQsXG4gICAgICBkYXRhU291cmNlOiAncXVlcnknLFxuICAgIH0gYXMgdW5rbm93biBhcyBCYWNrb2ZmaWNlRGFzaGJvYXJkUXVlcnlXaWRnZXQ8V2lkZ2V0WydraW5kJ10+O1xuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRTdGF0aWNXaWRnZXQgPSAoXG4gIHdpZGdldDogQW55RGVmaW5lQmFja29mZmljZURhc2hib2FyZFN0YXRpY1dpZGdldElucHV0LFxuKTogRXh0cmFjdDxCYWNrb2ZmaWNlRGFzaGJvYXJkV2lkZ2V0LCB7IGRhdGFTb3VyY2U6ICdzdGF0aWMnIH0+ID0+IHtcbiAgcmV0dXJuIHtcbiAgICAuLi53aWRnZXQsXG4gICAgZGF0YVNvdXJjZTogJ3N0YXRpYycsXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQmFja29mZmljZURhc2hib2FyZEhyZWZUYXJnZXQgPSAoXG4gIGhyZWY6IHN0cmluZyxcbik6IEJhY2tvZmZpY2VEYXNoYm9hcmRIcmVmVGFyZ2V0ID0+IHtcbiAgcmV0dXJuIHtcbiAgICBraW5kOiAnaHJlZicsXG4gICAgaHJlZixcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkTGlzdFRhcmdldCA9IDxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4+KCkgPT4ge1xuICByZXR1cm4gPFxuICAgIGNvbnN0IFRhcmdldCBleHRlbmRzIE9taXQ8XG4gICAgICBCYWNrb2ZmaWNlRGFzaGJvYXJkRW50aXR5TGlzdFRhcmdldDxcbiAgICAgICAgQmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRPcGVyYXRpb24+LFxuICAgICAgICBCYWNrb2ZmaWNlT3BlcmF0aW9uU29ydDxUT3BlcmF0aW9uPlxuICAgICAgPixcbiAgICAgICdraW5kJ1xuICAgID4sXG4gID4oXG4gICAgdGFyZ2V0OiBUYXJnZXQsXG4gICk6IEJhY2tvZmZpY2VEYXNoYm9hcmRFbnRpdHlMaXN0VGFyZ2V0PFxuICAgIEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUT3BlcmF0aW9uPixcbiAgICBCYWNrb2ZmaWNlT3BlcmF0aW9uU29ydDxUT3BlcmF0aW9uPlxuICA+ID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4udGFyZ2V0LFxuICAgICAga2luZDogJ2VudGl0eS1saXN0JyxcbiAgICB9O1xuICB9O1xufTtcblxuY29uc3QgYnVpbGRTdGFuZGFyZExpc3RWYXJpYWJsZXMgPSA8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBUV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUT3BlcmF0aW9uPixcbiAgVFNvcnQgZXh0ZW5kcyBzdHJpbmcgPSBCYWNrb2ZmaWNlT3BlcmF0aW9uU29ydDxUT3BlcmF0aW9uPixcbj4oXG4gIGlucHV0OiBCYWNrb2ZmaWNlTGlzdFF1ZXJ5SW5wdXQ8VE9wZXJhdGlvbiwgVFdoZXJlLCBUU29ydD4sXG4pOiBUT3BlcmF0aW9uWyd2YXJpYWJsZXMnXSA9PiB7XG4gIHJldHVybiB7XG4gICAgd2hlcmU6IGlucHV0LndoZXJlLFxuICAgIHNvcnQ6IGlucHV0LnNvcnQsXG4gICAgY291bnQ6IGlucHV0LmNvdW50LFxuICAgIGN1cnNvcjogaW5wdXQuY3Vyc29yLFxuICB9O1xufTtcblxuY29uc3QgYnVpbGRTdGFuZGFyZFBpY2tlclZhcmlhYmxlcyA9IDxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIFRXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gQmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRPcGVyYXRpb24+LFxuPihcbiAgaW5wdXQ6IEJhY2tvZmZpY2VQaWNrZXJRdWVyeUlucHV0PFRPcGVyYXRpb24sIFRXaGVyZT4sXG4pOiBUT3BlcmF0aW9uWyd2YXJpYWJsZXMnXSA9PiB7XG4gIGNvbnN0IHNlYXJjaCA9IGlucHV0LnNlYXJjaC50cmltKCk7XG4gIGxldCB3aGVyZTogVFdoZXJlIHwgbnVsbCA9IG51bGw7XG4gIGlmIChpbnB1dC5zY29wZSAhPSBudWxsKSB7XG4gICAgY29uc3Qgc2NvcGVkV2hlcmUgPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICBPYmplY3QuZW50cmllcyhpbnB1dC5zY29wZSkuZmlsdGVyKChbLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUudHJpbSgpICE9PSAnJztcbiAgICAgIH0pLFxuICAgICk7XG4gICAgd2hlcmUgPSBzY29wZWRXaGVyZSBhcyBUV2hlcmU7XG4gIH1cbiAgbGV0IHNlYXJjaFZhcmlhYmxlOiBzdHJpbmcgfCBudWxsID0gc2VhcmNoO1xuICBpZiAoc2VhcmNoID09PSAnJykge1xuICAgIHNlYXJjaFZhcmlhYmxlID0gbnVsbDtcbiAgfVxuICByZXR1cm4ge1xuICAgIHdoZXJlLFxuICAgIHNlYXJjaDogc2VhcmNoVmFyaWFibGUsXG4gICAgY291bnQ6IDIwLFxuICAgIGN1cnNvcjogbnVsbCxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVCYWNrb2ZmaWNlQ29ubmVjdGlvbkxpc3QgPSA8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBUQ291bnRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuPigpID0+IHtcbiAgcmV0dXJuIDxSb3dSZWYsIFJvd1ZpZXcsIExpc3RGcmFnbWVudERhdGE+KFxuICAgIGNvbmZpZzogRGVmaW5lQmFja29mZmljZUNvbm5lY3Rpb25MaXN0SW5wdXQ8XG4gICAgICBTdHJpY3RTdGFuZGFyZExpc3RPcGVyYXRpb248VE9wZXJhdGlvbj4sXG4gICAgICBSb3dSZWYsXG4gICAgICBSb3dWaWV3LFxuICAgICAgTGlzdEZyYWdtZW50RGF0YSxcbiAgICAgIEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxTdHJpY3RTdGFuZGFyZExpc3RPcGVyYXRpb248VE9wZXJhdGlvbj4+LFxuICAgICAgQmFja29mZmljZU9wZXJhdGlvblNvcnQ8U3RyaWN0U3RhbmRhcmRMaXN0T3BlcmF0aW9uPFRPcGVyYXRpb24+PixcbiAgICAgIFRDb3VudE9wZXJhdGlvblxuICAgID4sXG4gICk6IEJhY2tvZmZpY2VDb25uZWN0aW9uTGlzdENvbmZpZzxcbiAgICBTdHJpY3RTdGFuZGFyZExpc3RPcGVyYXRpb248VE9wZXJhdGlvbj4sXG4gICAgUm93UmVmLFxuICAgIFJvd1ZpZXcsXG4gICAgTGlzdEZyYWdtZW50RGF0YSxcbiAgICBCYWNrb2ZmaWNlT3BlcmF0aW9uV2hlcmU8U3RyaWN0U3RhbmRhcmRMaXN0T3BlcmF0aW9uPFRPcGVyYXRpb24+PixcbiAgICBCYWNrb2ZmaWNlT3BlcmF0aW9uU29ydDxTdHJpY3RTdGFuZGFyZExpc3RPcGVyYXRpb248VE9wZXJhdGlvbj4+LFxuICAgIFRDb3VudE9wZXJhdGlvblxuICA+ID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uY29uZmlnLFxuICAgICAga2luZDogJ2Nvbm5lY3Rpb24nLFxuICAgICAgYnVpbGRRdWVyeVZhcmlhYmxlczpcbiAgICAgICAgY29uZmlnLmJ1aWxkUXVlcnlWYXJpYWJsZXMgPz8gYnVpbGRTdGFuZGFyZExpc3RWYXJpYWJsZXMsXG4gICAgfTtcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVCYWNrb2ZmaWNlQ3VzdG9tQ29ubmVjdGlvbkxpc3QgPSA8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBUQ291bnRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBUV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgVFNvcnQgZXh0ZW5kcyBzdHJpbmcgPSBCYWNrb2ZmaWNlT3BlcmF0aW9uU29ydDxUT3BlcmF0aW9uPixcbj4oKSA9PiB7XG4gIHJldHVybiA8Um93UmVmLCBSb3dWaWV3LCBMaXN0RnJhZ21lbnREYXRhPihcbiAgICBjb25maWc6IERlZmluZUJhY2tvZmZpY2VDb25uZWN0aW9uTGlzdElucHV0PFxuICAgICAgVE9wZXJhdGlvbixcbiAgICAgIFJvd1JlZixcbiAgICAgIFJvd1ZpZXcsXG4gICAgICBMaXN0RnJhZ21lbnREYXRhLFxuICAgICAgVFdoZXJlLFxuICAgICAgVFNvcnQsXG4gICAgICBUQ291bnRPcGVyYXRpb25cbiAgICA+ICYge1xuICAgICAgYnVpbGRRdWVyeVZhcmlhYmxlczogKFxuICAgICAgICBpbnB1dDogQmFja29mZmljZUxpc3RRdWVyeUlucHV0PFRPcGVyYXRpb24sIFRXaGVyZSwgVFNvcnQ+LFxuICAgICAgKSA9PiBUT3BlcmF0aW9uWyd2YXJpYWJsZXMnXTtcbiAgICB9LFxuICApOiBCYWNrb2ZmaWNlQ29ubmVjdGlvbkxpc3RDb25maWc8XG4gICAgVE9wZXJhdGlvbixcbiAgICBSb3dSZWYsXG4gICAgUm93VmlldyxcbiAgICBMaXN0RnJhZ21lbnREYXRhLFxuICAgIFRXaGVyZSxcbiAgICBUU29ydCxcbiAgICBUQ291bnRPcGVyYXRpb25cbiAgPiA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmNvbmZpZyxcbiAgICAgIGtpbmQ6ICdjb25uZWN0aW9uJyxcbiAgICB9O1xuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmluZUJhY2tvZmZpY2VMaXN0RmFjZXQgPSA8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBUQ291bnRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuPigpID0+IHtcbiAgcmV0dXJuIDxSb3dSZWYsIFJvd1ZpZXcsIExpc3RGcmFnbWVudERhdGE+KFxuICAgIGNvbmZpZzogRGVmaW5lQmFja29mZmljZUxpc3RGYWNldElucHV0PFxuICAgICAgU3RyaWN0U3RhbmRhcmRMaXN0T3BlcmF0aW9uPFRPcGVyYXRpb24+LFxuICAgICAgUm93UmVmLFxuICAgICAgUm93VmlldyxcbiAgICAgIExpc3RGcmFnbWVudERhdGEsXG4gICAgICBCYWNrb2ZmaWNlT3BlcmF0aW9uV2hlcmU8U3RyaWN0U3RhbmRhcmRMaXN0T3BlcmF0aW9uPFRPcGVyYXRpb24+PixcbiAgICAgIEJhY2tvZmZpY2VPcGVyYXRpb25Tb3J0PFN0cmljdFN0YW5kYXJkTGlzdE9wZXJhdGlvbjxUT3BlcmF0aW9uPj4sXG4gICAgICBUQ291bnRPcGVyYXRpb25cbiAgICA+LFxuICApOiBCYWNrb2ZmaWNlTGlzdEZhY2V0Q29uZmlnPFxuICAgIFN0cmljdFN0YW5kYXJkTGlzdE9wZXJhdGlvbjxUT3BlcmF0aW9uPixcbiAgICBSb3dSZWYsXG4gICAgUm93VmlldyxcbiAgICBMaXN0RnJhZ21lbnREYXRhLFxuICAgIEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxTdHJpY3RTdGFuZGFyZExpc3RPcGVyYXRpb248VE9wZXJhdGlvbj4+LFxuICAgIEJhY2tvZmZpY2VPcGVyYXRpb25Tb3J0PFN0cmljdFN0YW5kYXJkTGlzdE9wZXJhdGlvbjxUT3BlcmF0aW9uPj4sXG4gICAgVENvdW50T3BlcmF0aW9uXG4gID4gPT4ge1xuICAgIHJldHVybiBjb25maWc7XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQmFja29mZmljZUN1c3RvbUxpc3RGYWNldCA9IDxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIFRDb3VudE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIFRXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICBUU29ydCBleHRlbmRzIHN0cmluZyA9IEJhY2tvZmZpY2VPcGVyYXRpb25Tb3J0PFRPcGVyYXRpb24+LFxuPigpID0+IHtcbiAgcmV0dXJuIDxSb3dSZWYsIFJvd1ZpZXcsIExpc3RGcmFnbWVudERhdGE+KFxuICAgIGNvbmZpZzogRGVmaW5lQmFja29mZmljZUxpc3RGYWNldElucHV0PFxuICAgICAgVE9wZXJhdGlvbixcbiAgICAgIFJvd1JlZixcbiAgICAgIFJvd1ZpZXcsXG4gICAgICBMaXN0RnJhZ21lbnREYXRhLFxuICAgICAgVFdoZXJlLFxuICAgICAgVFNvcnQsXG4gICAgICBUQ291bnRPcGVyYXRpb25cbiAgICA+LFxuICApOiBCYWNrb2ZmaWNlTGlzdEZhY2V0Q29uZmlnPFxuICAgIFRPcGVyYXRpb24sXG4gICAgUm93UmVmLFxuICAgIFJvd1ZpZXcsXG4gICAgTGlzdEZyYWdtZW50RGF0YSxcbiAgICBUV2hlcmUsXG4gICAgVFNvcnQsXG4gICAgVENvdW50T3BlcmF0aW9uXG4gID4gPT4ge1xuICAgIHJldHVybiBjb25maWc7XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQmFja29mZmljZVBpY2tlciA9IDxUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZT4oKSA9PiB7XG4gIHJldHVybiA8Um93UmVmLCBSb3dWaWV3LCBQaWNrZXJGcmFnbWVudERhdGE+KFxuICAgIGNvbmZpZzogRGVmaW5lQmFja29mZmljZVBpY2tlcklucHV0PFxuICAgICAgU3RyaWN0U3RhbmRhcmRQaWNrZXJPcGVyYXRpb248VE9wZXJhdGlvbj4sXG4gICAgICBSb3dSZWYsXG4gICAgICBSb3dWaWV3LFxuICAgICAgUGlja2VyRnJhZ21lbnREYXRhXG4gICAgPixcbiAgKTogQmFja29mZmljZUVudGl0eVBpY2tlckNvbmZpZzxcbiAgICBTdHJpY3RTdGFuZGFyZFBpY2tlck9wZXJhdGlvbjxUT3BlcmF0aW9uPixcbiAgICBSb3dSZWYsXG4gICAgUm93VmlldyxcbiAgICBQaWNrZXJGcmFnbWVudERhdGFcbiAgPiA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmNvbmZpZyxcbiAgICAgIGJ1aWxkUXVlcnlWYXJpYWJsZXM6XG4gICAgICAgIGNvbmZpZy5idWlsZFF1ZXJ5VmFyaWFibGVzID8/IGJ1aWxkU3RhbmRhcmRQaWNrZXJWYXJpYWJsZXMsXG4gICAgfTtcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVCYWNrb2ZmaWNlQ3VzdG9tUGlja2VyID0gPFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbiAgVFdoZXJlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4+KCkgPT4ge1xuICByZXR1cm4gPFJvd1JlZiwgUm93VmlldywgUGlja2VyRnJhZ21lbnREYXRhPihcbiAgICBjb25maWc6IERlZmluZUJhY2tvZmZpY2VQaWNrZXJJbnB1dDxcbiAgICAgIFRPcGVyYXRpb24sXG4gICAgICBSb3dSZWYsXG4gICAgICBSb3dWaWV3LFxuICAgICAgUGlja2VyRnJhZ21lbnREYXRhLFxuICAgICAgVFdoZXJlXG4gICAgPiAmIHtcbiAgICAgIGJ1aWxkUXVlcnlWYXJpYWJsZXM6IChcbiAgICAgICAgaW5wdXQ6IEJhY2tvZmZpY2VQaWNrZXJRdWVyeUlucHV0PFRPcGVyYXRpb24sIFRXaGVyZT4sXG4gICAgICApID0+IFRPcGVyYXRpb25bJ3ZhcmlhYmxlcyddO1xuICAgIH0sXG4gICk6IEJhY2tvZmZpY2VFbnRpdHlQaWNrZXJDb25maWc8XG4gICAgVE9wZXJhdGlvbixcbiAgICBSb3dSZWYsXG4gICAgUm93VmlldyxcbiAgICBQaWNrZXJGcmFnbWVudERhdGEsXG4gICAgVFdoZXJlXG4gID4gPT4ge1xuICAgIHJldHVybiBjb25maWc7XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQmFja29mZmljZVBpY2tlckZhY2V0ID0gPFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbj4oKSA9PiB7XG4gIHJldHVybiA8Um93UmVmLCBSb3dWaWV3LCBQaWNrZXJGcmFnbWVudERhdGE+KFxuICAgIGNvbmZpZzogQmFja29mZmljZVBpY2tlckZhY2V0Q29uZmlnPFxuICAgICAgU3RyaWN0U3RhbmRhcmRQaWNrZXJPcGVyYXRpb248VE9wZXJhdGlvbj4sXG4gICAgICBSb3dSZWYsXG4gICAgICBSb3dWaWV3LFxuICAgICAgUGlja2VyRnJhZ21lbnREYXRhXG4gICAgPixcbiAgKTogQmFja29mZmljZVBpY2tlckZhY2V0Q29uZmlnPFxuICAgIFN0cmljdFN0YW5kYXJkUGlja2VyT3BlcmF0aW9uPFRPcGVyYXRpb24+LFxuICAgIFJvd1JlZixcbiAgICBSb3dWaWV3LFxuICAgIFBpY2tlckZyYWdtZW50RGF0YVxuICA+ID0+IHtcbiAgICByZXR1cm4gY29uZmlnO1xuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmluZUJhY2tvZmZpY2VDdXN0b21QaWNrZXJGYWNldCA9IDxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIFRXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuPigpID0+IHtcbiAgcmV0dXJuIDxSb3dSZWYsIFJvd1ZpZXcsIFBpY2tlckZyYWdtZW50RGF0YT4oXG4gICAgY29uZmlnOiBCYWNrb2ZmaWNlUGlja2VyRmFjZXRDb25maWc8XG4gICAgICBUT3BlcmF0aW9uLFxuICAgICAgUm93UmVmLFxuICAgICAgUm93VmlldyxcbiAgICAgIFBpY2tlckZyYWdtZW50RGF0YSxcbiAgICAgIFRXaGVyZVxuICAgID4sXG4gICk6IEJhY2tvZmZpY2VQaWNrZXJGYWNldENvbmZpZzxcbiAgICBUT3BlcmF0aW9uLFxuICAgIFJvd1JlZixcbiAgICBSb3dWaWV3LFxuICAgIFBpY2tlckZyYWdtZW50RGF0YSxcbiAgICBUV2hlcmVcbiAgPiA9PiB7XG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVCYWNrb2ZmaWNlUmVsYXRpb25GaWx0ZXIgPSA8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBUV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUT3BlcmF0aW9uPixcbj4oKSA9PiB7XG4gIHJldHVybiAoXG4gICAgcmVsYXRpb246IEJhY2tvZmZpY2VSZWxhdGlvbkZpbHRlclNwZWM8VE9wZXJhdGlvbiwgVFdoZXJlPixcbiAgKTogQmFja29mZmljZVJlbGF0aW9uRmlsdGVyU3BlYzxUT3BlcmF0aW9uLCBUV2hlcmU+ID0+IHtcbiAgICByZXR1cm4gcmVsYXRpb247XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQmFja29mZmljZUVudGl0eUNvdW50ID0gPFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbiAgVFdoZXJlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4+KCkgPT4ge1xuICByZXR1cm4gKFxuICAgIGNvdW50OiBPbWl0PFxuICAgICAgQmFja29mZmljZUVudGl0eUNvdW50Q29uZmlnPFRPcGVyYXRpb24sIFRXaGVyZT4sXG4gICAgICAnYnVpbGRWYXJpYWJsZXMnIHwgJ2dldENvdW50J1xuICAgID4gJiB7XG4gICAgICBidWlsZFZhcmlhYmxlczogKFxuICAgICAgICBpbnB1dDogQmFja29mZmljZUNvdW50UXVlcnlJbnB1dDxUV2hlcmU+LFxuICAgICAgKSA9PiBUT3BlcmF0aW9uWyd2YXJpYWJsZXMnXTtcbiAgICAgIGdldENvdW50OiAoZGF0YTogVE9wZXJhdGlvblsncmVzcG9uc2UnXSkgPT4gbnVtYmVyIHwgbnVsbDtcbiAgICB9LFxuICApOiBCYWNrb2ZmaWNlRW50aXR5Q291bnRDb25maWc8VE9wZXJhdGlvbiwgVFdoZXJlPiA9PiB7XG4gICAgcmV0dXJuIGNvdW50O1xuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmluZUJhY2tvZmZpY2VGaWx0ZXJzID0gPFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbiAgVFdoZXJlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBCYWNrb2ZmaWNlT3BlcmF0aW9uV2hlcmU8VE9wZXJhdGlvbj4sXG4+KCkgPT4ge1xuICByZXR1cm4gPGNvbnN0IEZpbHRlcnMgZXh0ZW5kcyByZWFkb25seSBCYWNrb2ZmaWNlRmlsdGVyU3BlYzxUV2hlcmU+W10+KFxuICAgIGZpbHRlcnM6IEZpbHRlcnMsXG4gICk6IEZpbHRlcnMgPT4ge1xuICAgIHJldHVybiBmaWx0ZXJzO1xuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmluZUJhY2tvZmZpY2VTb3J0cyA9IDxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIFRTb3J0IGV4dGVuZHMgc3RyaW5nID0gQmFja29mZmljZU9wZXJhdGlvblNvcnQ8VE9wZXJhdGlvbj4sXG4+KCkgPT4ge1xuICByZXR1cm4gPGNvbnN0IFNvcnRzIGV4dGVuZHMgcmVhZG9ubHkgQmFja29mZmljZVNvcnRTcGVjPFRTb3J0PltdPihcbiAgICBzb3J0czogU29ydHMsXG4gICk6IFNvcnRzID0+IHtcbiAgICByZXR1cm4gc29ydHM7XG4gIH07XG59O1xuXG50eXBlIEZpbHRlckNvbmZpZyA9IHtcbiAgbGFiZWw6IEkxOG5MYWJlbDtcbiAgcGxhY2VtZW50PzogQmFja29mZmljZUZpbHRlclBsYWNlbWVudDtcbiAgcGF0aD86IHJlYWRvbmx5IHN0cmluZ1tdO1xufTtcblxuZXhwb3J0IGNvbnN0IGVudGl0eUlkRmlsdGVyID0gPFdoZXJlLCBLZXkgZXh0ZW5kcyBTdHJpbmdGaWVsZEtleTxXaGVyZT4+KFxuICBrZXk6IEtleSxcbiAgY29uZmlnOiBGaWx0ZXJDb25maWcgJiB7IGVudGl0eTogc3RyaW5nIH0sXG4pOiBCYWNrb2ZmaWNlRmlsdGVyU3BlYzxXaGVyZT4gPT4ge1xuICByZXR1cm4ge1xuICAgIGlkOiBrZXksXG4gICAga2luZDogJ2VudGl0eUlkJyxcbiAgICBlbnRpdHk6IGNvbmZpZy5lbnRpdHksXG4gICAgbGFiZWw6IGNvbmZpZy5sYWJlbCxcbiAgICBwbGFjZW1lbnQ6IGNvbmZpZy5wbGFjZW1lbnQsXG4gICAgd2hlcmVLZXk6IGtleSxcbiAgICBwYXRoOiBjb25maWcucGF0aCxcbiAgICB0b0dyYXBoUUw6ICh2YWx1ZSkgPT4ge1xuICAgICAgcmV0dXJuIHsgW2tleV06IHZhbHVlIH0gYXMgUGFydGlhbDxXaGVyZT47XG4gICAgfSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCB0ZXh0RmlsdGVyID0gPFdoZXJlLCBLZXkgZXh0ZW5kcyBTdHJpbmdGaWVsZEtleTxXaGVyZT4+KFxuICBrZXk6IEtleSxcbiAgY29uZmlnOiBGaWx0ZXJDb25maWcgJiB7XG4gICAgcGxhY2Vob2xkZXJMYWJlbD86IEkxOG5MYWJlbDtcbiAgICBwbGFjZWhvbGRlclRleHQ/OiBJMThuTGFiZWw7XG4gIH0sXG4pOiBCYWNrb2ZmaWNlRmlsdGVyU3BlYzxXaGVyZT4gPT4ge1xuICByZXR1cm4ge1xuICAgIGlkOiBrZXksXG4gICAga2luZDogJ3RleHQnLFxuICAgIGxhYmVsOiBjb25maWcubGFiZWwsXG4gICAgcGxhY2VtZW50OiBjb25maWcucGxhY2VtZW50LFxuICAgIHdoZXJlS2V5OiBrZXksXG4gICAgcGF0aDogY29uZmlnLnBhdGgsXG4gICAgcGxhY2Vob2xkZXJMYWJlbDogY29uZmlnLnBsYWNlaG9sZGVyTGFiZWwsXG4gICAgcGxhY2Vob2xkZXJUZXh0OiBjb25maWcucGxhY2Vob2xkZXJUZXh0LFxuICAgIHRvR3JhcGhRTDogKHZhbHVlKSA9PiB7XG4gICAgICByZXR1cm4geyBba2V5XTogdmFsdWUgfSBhcyBQYXJ0aWFsPFdoZXJlPjtcbiAgICB9LFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGRhdGV0aW1lRmlsdGVyID0gPFdoZXJlLCBLZXkgZXh0ZW5kcyBTdHJpbmdGaWVsZEtleTxXaGVyZT4+KFxuICBrZXk6IEtleSxcbiAgY29uZmlnOiBGaWx0ZXJDb25maWcgJiB7XG4gICAgbW9kZT86ICdmcm9tJyB8ICd0bycgfCAnZXhhY3QnO1xuICAgIHBsYWNlaG9sZGVyTGFiZWw/OiBJMThuTGFiZWw7XG4gICAgcGxhY2Vob2xkZXJUZXh0PzogSTE4bkxhYmVsO1xuICB9LFxuKTogQmFja29mZmljZUZpbHRlclNwZWM8V2hlcmU+ID0+IHtcbiAgcmV0dXJuIHtcbiAgICBpZDoga2V5LFxuICAgIGtpbmQ6ICdkYXRldGltZScsXG4gICAgbGFiZWw6IGNvbmZpZy5sYWJlbCxcbiAgICBwbGFjZW1lbnQ6IGNvbmZpZy5wbGFjZW1lbnQsXG4gICAgd2hlcmVLZXk6IGtleSxcbiAgICBwYXRoOiBjb25maWcucGF0aCxcbiAgICBtb2RlOiBjb25maWcubW9kZSxcbiAgICBwbGFjZWhvbGRlckxhYmVsOiBjb25maWcucGxhY2Vob2xkZXJMYWJlbCxcbiAgICBwbGFjZWhvbGRlclRleHQ6IGNvbmZpZy5wbGFjZWhvbGRlclRleHQsXG4gICAgdG9HcmFwaFFMOiAodmFsdWUpID0+IHtcbiAgICAgIHJldHVybiB7IFtrZXldOiB2YWx1ZSB9IGFzIFBhcnRpYWw8V2hlcmU+O1xuICAgIH0sXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgbnVtYmVyRmlsdGVyID0gPFdoZXJlLCBLZXkgZXh0ZW5kcyBOdW1iZXJGaWVsZEtleTxXaGVyZT4+KFxuICBrZXk6IEtleSxcbiAgY29uZmlnOiBGaWx0ZXJDb25maWcgJiB7XG4gICAgcGxhY2Vob2xkZXJMYWJlbD86IEkxOG5MYWJlbDtcbiAgICBwbGFjZWhvbGRlclRleHQ/OiBJMThuTGFiZWw7XG4gICAgaW5wdXRNb2RlPzogJ251bWVyaWMnIHwgJ2RlY2ltYWwnO1xuICB9LFxuKTogQmFja29mZmljZUZpbHRlclNwZWM8V2hlcmU+ID0+IHtcbiAgcmV0dXJuIHtcbiAgICBpZDoga2V5LFxuICAgIGtpbmQ6ICdudW1iZXInLFxuICAgIGxhYmVsOiBjb25maWcubGFiZWwsXG4gICAgcGxhY2VtZW50OiBjb25maWcucGxhY2VtZW50LFxuICAgIHdoZXJlS2V5OiBrZXksXG4gICAgcGF0aDogY29uZmlnLnBhdGgsXG4gICAgcGxhY2Vob2xkZXJMYWJlbDogY29uZmlnLnBsYWNlaG9sZGVyTGFiZWwsXG4gICAgcGxhY2Vob2xkZXJUZXh0OiBjb25maWcucGxhY2Vob2xkZXJUZXh0LFxuICAgIGlucHV0TW9kZTogY29uZmlnLmlucHV0TW9kZSxcbiAgICB0b0dyYXBoUUw6ICh2YWx1ZSkgPT4ge1xuICAgICAgcmV0dXJuIHsgW2tleV06IHZhbHVlIH0gYXMgUGFydGlhbDxXaGVyZT47XG4gICAgfSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBlbnVtRmlsdGVyID0gPFdoZXJlLCBLZXkgZXh0ZW5kcyBTdHJpbmdGaWVsZEtleTxXaGVyZT4+KFxuICBrZXk6IEtleSxcbiAgY29uZmlnOiBGaWx0ZXJDb25maWcgJiB7XG4gICAgb3B0aW9uczogcmVhZG9ubHkgKFxuICAgICAgfCBFeHRyYWN0PE5vbk51bGxhYmxlPFdoZXJlW0tleV0+LCBzdHJpbmc+XG4gICAgICB8IHtcbiAgICAgICAgICB2YWx1ZTogRXh0cmFjdDxOb25OdWxsYWJsZTxXaGVyZVtLZXldPiwgc3RyaW5nPjtcbiAgICAgICAgICBsYWJlbDogSTE4bkxhYmVsO1xuICAgICAgICB9XG4gICAgKVtdO1xuICB9LFxuKTogQmFja29mZmljZUZpbHRlclNwZWM8V2hlcmU+ID0+IHtcbiAgcmV0dXJuIHtcbiAgICBpZDoga2V5LFxuICAgIGtpbmQ6ICdlbnVtJyxcbiAgICBsYWJlbDogY29uZmlnLmxhYmVsLFxuICAgIHBsYWNlbWVudDogY29uZmlnLnBsYWNlbWVudCxcbiAgICB3aGVyZUtleToga2V5LFxuICAgIHBhdGg6IGNvbmZpZy5wYXRoLFxuICAgIG9wdGlvbnM6IGNvbmZpZy5vcHRpb25zLm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICBpZiAodHlwZW9mIG9wdGlvbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB2YWx1ZTogb3B0aW9uLFxuICAgICAgICAgIGxhYmVsOiAoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gb3B0aW9uO1xuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICB2YWx1ZTogb3B0aW9uLnZhbHVlLFxuICAgICAgICBsYWJlbDogb3B0aW9uLmxhYmVsLFxuICAgICAgfTtcbiAgICB9KSxcbiAgICB0b0dyYXBoUUw6ICh2YWx1ZSkgPT4ge1xuICAgICAgcmV0dXJuIHsgW2tleV06IHZhbHVlIH0gYXMgUGFydGlhbDxXaGVyZT47XG4gICAgfSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBzdHJpbmdMaXN0RmlsdGVyID0gPFdoZXJlLCBLZXkgZXh0ZW5kcyBTdHJpbmdMaXN0RmllbGRLZXk8V2hlcmU+PihcbiAga2V5OiBLZXksXG4gIGNvbmZpZzogRmlsdGVyQ29uZmlnICYge1xuICAgIHBsYWNlaG9sZGVyTGFiZWw/OiBJMThuTGFiZWw7XG4gICAgcGxhY2Vob2xkZXJUZXh0PzogSTE4bkxhYmVsO1xuICB9LFxuKTogQmFja29mZmljZUZpbHRlclNwZWM8V2hlcmU+ID0+IHtcbiAgcmV0dXJuIHtcbiAgICBpZDoga2V5LFxuICAgIGtpbmQ6ICdzdHJpbmdMaXN0JyxcbiAgICBsYWJlbDogY29uZmlnLmxhYmVsLFxuICAgIHBsYWNlbWVudDogY29uZmlnLnBsYWNlbWVudCxcbiAgICB3aGVyZUtleToga2V5LFxuICAgIHBhdGg6IGNvbmZpZy5wYXRoLFxuICAgIHBsYWNlaG9sZGVyTGFiZWw6IGNvbmZpZy5wbGFjZWhvbGRlckxhYmVsLFxuICAgIHBsYWNlaG9sZGVyVGV4dDogY29uZmlnLnBsYWNlaG9sZGVyVGV4dCxcbiAgICB0b0dyYXBoUUw6ICh2YWx1ZSkgPT4ge1xuICAgICAgY29uc3QgdmFsdWVzID0gdmFsdWVcbiAgICAgICAgLnNwbGl0KC9bXFxuLF0rL3UpXG4gICAgICAgIC5tYXAoKGVudHJ5KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGVudHJ5LnRyaW0oKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmZpbHRlcigoZW50cnkpID0+IHtcbiAgICAgICAgICByZXR1cm4gZW50cnkgIT09ICcnO1xuICAgICAgICB9KTtcbiAgICAgIHJldHVybiB7IFtrZXldOiB2YWx1ZXMgfSBhcyBQYXJ0aWFsPFdoZXJlPjtcbiAgICB9LFxuICAgIGZyb21HcmFwaFFMOiAod2hlcmUpID0+IHtcbiAgICAgIGNvbnN0IHJhdyA9IHdoZXJlW2tleV07XG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkocmF3KSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHZhbHVlcyA9IHJhd1xuICAgICAgICAubWFwKChlbnRyeSkgPT4ge1xuICAgICAgICAgIGlmICh0eXBlb2YgZW50cnkgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBlbnRyeS50cmltKCk7XG4gICAgICAgIH0pXG4gICAgICAgIC5maWx0ZXIoKGVudHJ5KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGVudHJ5ICE9PSAnJztcbiAgICAgICAgfSk7XG4gICAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2YWx1ZXMuam9pbignLCAnKTtcbiAgICB9LFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGJvb2xlYW5GaWx0ZXIgPSA8V2hlcmUsIEtleSBleHRlbmRzIEJvb2xlYW5GaWVsZEtleTxXaGVyZT4+KFxuICBrZXk6IEtleSxcbiAgY29uZmlnOiBGaWx0ZXJDb25maWcgJiB7XG4gICAgdHJ1ZUxhYmVsPzogSTE4bkxhYmVsO1xuICAgIGZhbHNlTGFiZWw/OiBJMThuTGFiZWw7XG4gIH0sXG4pOiBCYWNrb2ZmaWNlRmlsdGVyU3BlYzxXaGVyZT4gPT4ge1xuICByZXR1cm4ge1xuICAgIGlkOiBrZXksXG4gICAga2luZDogJ2Jvb2xlYW4nLFxuICAgIGxhYmVsOiBjb25maWcubGFiZWwsXG4gICAgcGxhY2VtZW50OiBjb25maWcucGxhY2VtZW50LFxuICAgIHdoZXJlS2V5OiBrZXksXG4gICAgcGF0aDogY29uZmlnLnBhdGgsXG4gICAgdHJ1ZUxhYmVsOiBjb25maWcudHJ1ZUxhYmVsLFxuICAgIGZhbHNlTGFiZWw6IGNvbmZpZy5mYWxzZUxhYmVsLFxuICAgIHRvR3JhcGhRTDogKHZhbHVlKSA9PiB7XG4gICAgICByZXR1cm4geyBba2V5XTogdmFsdWUgfSBhcyBQYXJ0aWFsPFdoZXJlPjtcbiAgICB9LFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGN1c3RvbUZpbHRlciA9IDxXaGVyZSwgVmFsdWU+KFxuICBmaWx0ZXI6IEJhY2tvZmZpY2VGaWx0ZXJTcGVjPFdoZXJlPiAmIHtcbiAgICB0b0dyYXBoUUw6ICh2YWx1ZTogVmFsdWUpID0+IFBhcnRpYWw8V2hlcmU+O1xuICB9LFxuKTogQmFja29mZmljZUZpbHRlclNwZWM8V2hlcmU+ID0+IHtcbiAgcmV0dXJuIGZpbHRlcjtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVCYWNrb2ZmaWNlVG9vbEVudGl0eSA9IDxcbiAgVCBleHRlbmRzIEJhY2tvZmZpY2VUb29sRW50aXR5Q29uZmlnLFxuPihcbiAgY29uZmlnOiBULFxuKTogVCA9PiB7XG4gIHJldHVybiBjb25maWc7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlRGV0YWlsTGF5b3V0RmFjZXQgPSA8XG4gIFQgZXh0ZW5kcyBCYWNrb2ZmaWNlRGV0YWlsTGF5b3V0RmFjZXRDb25maWcsXG4+KFxuICBjb25maWc6IFQsXG4pOiBUID0+IHtcbiAgcmV0dXJuIGNvbmZpZztcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVEZXRhaWxQYWdlRmFjZXQgPSA8XG4gIFQgZXh0ZW5kcyBCYWNrb2ZmaWNlRGV0YWlsUGFnZUZhY2V0Q29uZmlnLFxuPihcbiAgY29uZmlnOiBULFxuKTogVCA9PiB7XG4gIHJldHVybiBjb25maWc7XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lRGV0YWlsQmxvY2tzID0gPE5vZGU+KCkgPT4ge1xuICByZXR1cm4gPFxuICAgIGNvbnN0IEJsb2NrcyBleHRlbmRzIHJlYWRvbmx5IEJhY2tvZmZpY2VTZW1hbnRpY0RldGFpbEJsb2NrU3BlYzxOb2RlPltdLFxuICA+KFxuICAgIGJsb2NrczogQmxvY2tzLFxuICApOiBCbG9ja3MgPT4ge1xuICAgIHJldHVybiBibG9ja3M7XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lU3VtbWFyeUJsb2NrID0gPE5vZGU+KFxuICBibG9jazogQmFja29mZmljZVN1bW1hcnlCbG9ja1NwZWM8Tm9kZT4sXG4pOiBCYWNrb2ZmaWNlU3VtbWFyeUJsb2NrU3BlYzxOb2RlPiA9PiB7XG4gIHJldHVybiBibG9jaztcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVNZXRyaWNHcm91cCA9IDxOb2RlPihcbiAgYmxvY2s6IEJhY2tvZmZpY2VNZXRyaWNHcm91cEJsb2NrU3BlYzxOb2RlPixcbik6IEJhY2tvZmZpY2VNZXRyaWNHcm91cEJsb2NrU3BlYzxOb2RlPiA9PiB7XG4gIHJldHVybiBibG9jaztcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVTdGF0ZUdyb3VwID0gPE5vZGU+KFxuICBibG9jazogQmFja29mZmljZVN0YXRlR3JvdXBCbG9ja1NwZWM8Tm9kZT4sXG4pOiBCYWNrb2ZmaWNlU3RhdGVHcm91cEJsb2NrU3BlYzxOb2RlPiA9PiB7XG4gIHJldHVybiBibG9jaztcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVDb250ZXh0U3RhY2sgPSA8Tm9kZT4oXG4gIGJsb2NrOiBCYWNrb2ZmaWNlQ29udGV4dFN0YWNrQmxvY2tTcGVjPE5vZGU+LFxuKTogQmFja29mZmljZUNvbnRleHRTdGFja0Jsb2NrU3BlYzxOb2RlPiA9PiB7XG4gIHJldHVybiBibG9jaztcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVSZWxhdGlvblN1bW1hcnlHcm91cCA9IDxOb2RlPihcbiAgYmxvY2s6IEJhY2tvZmZpY2VSZWxhdGlvblN1bW1hcnlHcm91cEJsb2NrU3BlYzxOb2RlPixcbik6IEJhY2tvZmZpY2VSZWxhdGlvblN1bW1hcnlHcm91cEJsb2NrU3BlYzxOb2RlPiA9PiB7XG4gIHJldHVybiBibG9jaztcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVUaW1lbGluZSA9IDxOb2RlPihcbiAgYmxvY2s6IEJhY2tvZmZpY2VUaW1lbGluZUJsb2NrU3BlYzxOb2RlPixcbik6IEJhY2tvZmZpY2VUaW1lbGluZUJsb2NrU3BlYzxOb2RlPiA9PiB7XG4gIHJldHVybiBibG9jaztcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVBdWRpdCA9IDxOb2RlPihcbiAgYmxvY2s6IEJhY2tvZmZpY2VBdWRpdEJsb2NrU3BlYzxOb2RlPixcbik6IEJhY2tvZmZpY2VBdWRpdEJsb2NrU3BlYzxOb2RlPiA9PiB7XG4gIHJldHVybiBibG9jaztcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVSZWZlcmVuY2VHcm91cCA9IDxOb2RlPihcbiAgYmxvY2s6IEJhY2tvZmZpY2VSZWZlcmVuY2VHcm91cEJsb2NrU3BlYzxOb2RlPixcbik6IEJhY2tvZmZpY2VSZWZlcmVuY2VHcm91cEJsb2NrU3BlYzxOb2RlPiA9PiB7XG4gIHJldHVybiBibG9jaztcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVQYXlsb2FkID0gPE5vZGU+KFxuICBibG9jazogQmFja29mZmljZVBheWxvYWRCbG9ja1NwZWM8Tm9kZT4sXG4pOiBCYWNrb2ZmaWNlUGF5bG9hZEJsb2NrU3BlYzxOb2RlPiA9PiB7XG4gIHJldHVybiBibG9jaztcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVUZWNobmljYWxGYWN0cyA9IDxOb2RlPihcbiAgYmxvY2s6IEJhY2tvZmZpY2VUZWNobmljYWxGYWN0c0Jsb2NrU3BlYzxOb2RlPixcbik6IEJhY2tvZmZpY2VUZWNobmljYWxGYWN0c0Jsb2NrU3BlYzxOb2RlPiA9PiB7XG4gIHJldHVybiBibG9jaztcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVUb29sRmFjZXQgPSA8VCBleHRlbmRzIEJhY2tvZmZpY2VUb29sRmFjZXRDb25maWc+KFxuICBjb25maWc6IFQsXG4pOiBUID0+IHtcbiAgcmV0dXJuIGNvbmZpZztcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVMaXN0RGV0YWlsTWFuaWZlc3QgPSA8XG4gIFRGYWNldHMgZXh0ZW5kcyBCYWNrb2ZmaWNlTGlzdERldGFpbEZhY2V0TG9hZGVyTWFwLFxuICBUQ29uZmlnIGV4dGVuZHMgT21pdDxCYWNrb2ZmaWNlRW50aXR5TWFuaWZlc3RJdGVtLCAna2luZCcgfCAnZmFjZXRzJz4gJiB7XG4gICAgZmFjZXRzOiBURmFjZXRzO1xuICB9LFxuPihcbiAgY29uZmlnOiBUQ29uZmlnLFxuKTogVENvbmZpZyAmIHsga2luZDogJ2xpc3QtZGV0YWlsJyB9ID0+IHtcbiAgcmV0dXJuIHtcbiAgICAuLi5jb25maWcsXG4gICAga2luZDogJ2xpc3QtZGV0YWlsJyxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVUb29sTWFuaWZlc3QgPSA8XG4gIFRGYWNldHMgZXh0ZW5kcyBCYWNrb2ZmaWNlVG9vbEZhY2V0TG9hZGVyTWFwLFxuICBUQ29uZmlnIGV4dGVuZHMgT21pdDxcbiAgICBCYWNrb2ZmaWNlRW50aXR5TWFuaWZlc3RJdGVtLFxuICAgICdraW5kJyB8ICdoYXNMaXN0JyB8ICdkZXRhaWxQYWdlcycgfCAnZGVmYXVsdERldGFpbFBhZ2VJZCcgfCAnZmFjZXRzJ1xuICA+ICYge1xuICAgIGZhY2V0czogVEZhY2V0cztcbiAgfSxcbj4oXG4gIGNvbmZpZzogVENvbmZpZyxcbik6IFRDb25maWcgJiB7XG4gIGtpbmQ6ICd0b29sJztcbiAgaGFzTGlzdDogZmFsc2U7XG4gIGRldGFpbFBhZ2VzOiB1bmRlZmluZWQ7XG4gIGRlZmF1bHREZXRhaWxQYWdlSWQ6IHVuZGVmaW5lZDtcbn0gPT4ge1xuICByZXR1cm4ge1xuICAgIC4uLmNvbmZpZyxcbiAgICBraW5kOiAndG9vbCcsXG4gICAgaGFzTGlzdDogZmFsc2UsXG4gICAgZGV0YWlsUGFnZXM6IHVuZGVmaW5lZCxcbiAgICBkZWZhdWx0RGV0YWlsUGFnZUlkOiB1bmRlZmluZWQsXG4gIH07XG59O1xuIl19
389
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYnVpbGRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBbU9BLE1BQU0sQ0FBQyxNQUFNLCtCQUErQixHQUFHLENBRzdDLE1BQWMsRUFDTixFQUFFO0lBQ1YsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FDbkMsSUFBdUIsRUFDVSxFQUFFO0lBQ25DLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUNsQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxDQUN0QyxJQUF1QixFQUNjLEVBQUU7SUFDdkMsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO0FBQ2xCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGtDQUFrQyxHQUFHLENBS2hELElBQXVCLEVBQ2dDLEVBQUU7SUFDekQsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO0FBQ2xCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHLEdBRzFDLEVBQUU7SUFDSixPQUFPLENBR0wsTUFBMkMsRUFDbkMsRUFBRTtRQUNWLE9BQU87WUFDTCxHQUFHLE1BQU07WUFDVCxtQkFBbUIsRUFBRSxJQUFJO1NBQ2hCLENBQUM7SUFDZCxDQUFDLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxrQ0FBa0MsR0FBRyxHQUs5QyxFQUFFO0lBQ0osT0FBTyxDQVFMLE1BQTJDLEVBQ25DLEVBQUU7UUFDVixPQUFPO1lBQ0wsR0FBRyxNQUFNO1lBQ1QsbUJBQW1CLEVBQUUsSUFBSTtTQUNoQixDQUFDO0lBQ2QsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sb0NBQW9DLEdBQUcsR0FFaEQsRUFBRTtJQUNKLE9BQU8sQ0FJTCxNQUFjLEVBQ2tDLEVB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LENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBQ2xDLEtBQThDLEVBQ0wsRUFBRTtJQUMzQyxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUM3QixNQUFTLEVBQ04sRUFBRTtJQUNMLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLENBTXRDLE1BQWUsRUFDb0IsRUFBRTtJQUNyQyxPQUFPO1FBQ0wsR0FBRyxNQUFNO1FBQ1QsSUFBSSxFQUFFLGFBQWE7S0FDcEIsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLENBU2hDLE1BQWUsRUFNZixFQUFFO0lBQ0YsT0FBTztRQUNMLEdBQUcsTUFBTTtRQUNULElBQUksRUFBRSxNQUFNO1FBQ1osT0FBTyxFQUFFLEtBQUs7UUFDZCxXQUFXLEVBQUUsU0FBUztRQUN0QixtQkFBbUIsRUFBRSxTQUFTO0tBQy9CLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEdyYXBoUUxUYWdnZWROb2RlLCBPcGVyYXRpb25UeXBlIH0gZnJvbSAncmVsYXktcnVudGltZSc7XG5pbXBvcnQgdHlwZSB7XG4gIEJhY2tvZmZpY2VDb25uZWN0aW9uTGlzdENvbmZpZyxcbiAgQmFja29mZmljZUF1ZGl0QmxvY2tTcGVjLFxuICBCYWNrb2ZmaWNlQ291bnRRdWVyeUlucHV0LFxuICBCYWNrb2ZmaWNlQ29udGV4dFN0YWNrQmxvY2tTcGVjLFxuICBCYWNrb2ZmaWNlRGFzaGJvYXJkQ29uZmlnLFxuICBCYWNrb2ZmaWNlRGFzaGJvYXJkQ29udGV4dCxcbiAgQmFja29mZmljZURhc2hib2FyZEVudGl0eUxpc3RUYXJnZXQsXG4gIEJhY2tvZmZpY2VEYXNoYm9hcmRIcmVmVGFyZ2V0LFxuICBCYWNrb2ZmaWNlRGFzaGJvYXJkV2lkZ2V0VmFyaWFibGVzLFxuICBCYWNrb2ZmaWNlRGFzaGJvYXJkV2lkZ2V0LFxuICBCYWNrb2ZmaWNlRGV0YWlsTGF5b3V0RmFjZXRDb25maWcsXG4gIEJhY2tvZmZpY2VEZXRhaWxQYWdlRmFjZXRDb25maWcsXG4gIEJhY2tvZmZpY2VNZXRyaWNHcm91cEJsb2NrU3BlYyxcbiAgQmFja29mZmljZVBheWxvYWRCbG9ja1NwZWMsXG4gIEJhY2tvZmZpY2VSZWZlcmVuY2VHcm91cEJsb2NrU3BlYyxcbiAgQmFja29mZmljZVJlbGF0aW9uU3VtbWFyeUdyb3VwQmxvY2tTcGVjLFxuICBCYWNrb2ZmaWNlU2VtYW50aWNEZXRhaWxCbG9ja1NwZWMsXG4gIEJhY2tvZmZpY2VTdGF0ZUdyb3VwQmxvY2tTcGVjLFxuICBCYWNrb2ZmaWNlU3VtbWFyeUJsb2NrU3BlYyxcbiAgQmFja29mZmljZVRlY2huaWNhbEZhY3RzQmxvY2tTcGVjLFxuICBCYWNrb2ZmaWNlVGltZWxpbmVCbG9ja1NwZWMsXG4gIEJhY2tvZmZpY2VFbnRpdHlMaXN0Q29uZmlnLFxuICBCYWNrb2ZmaWNlRW50aXR5Rm9ybU11dGF0aW9uQWN0aW9uU3BlYyxcbiAgQmFja29mZmljZUVudGl0eU11dGF0aW9uQWN0aW9uU3BlYyxcbiAgQmFja29mZmljZUVudGl0eUNvdW50Q29uZmlnLFxuICBCYWNrb2ZmaWNlRW50aXR5TWFuaWZlc3RJdGVtLFxuICBCYWNrb2ZmaWNlRW50aXR5UGlja2VyQ29uZmlnLFxuICBCYWNrb2ZmaWNlRmlsdGVyUGxhY2VtZW50LFxuICBCYWNrb2ZmaWNlRmlsdGVyU3BlYyxcbiAgQmFja29mZmljZUZyYWdtZW50U3BlYyxcbiAgQmFja29mZmljZUxpc3REZXRhaWxGYWNldExvYWRlck1hcCxcbiAgQmFja29mZmljZUxpc3RGYWNldENvbmZpZyxcbiAgQmFja29mZmljZUxpc3RRdWVyeUlucHV0LFxuICBCYWNrb2ZmaWNlT3BlcmF0aW9uU29ydCxcbiAgQmFja29mZmljZU9wZXJhdGlvbldoZXJlLFxuICBCYWNrb2ZmaWNlUGlja2VyRmFjZXRDb25maWcsXG4gIEJhY2tvZmZpY2VQaWNrZXJRdWVyeUlucHV0LFxuICBCYWNrb2ZmaWNlUGFnaW5hdGlvbkZyYWdtZW50U3BlYyxcbiAgQmFja29mZmljZVF1ZXJ5U3BlYyxcbiAgQmFja29mZmljZVJlbGF0aW9uRmlsdGVyU3BlYyxcbiAgQmFja29mZmljZVNvcnRTcGVjLFxuICBCYWNrb2ZmaWNlVG9vbEVudGl0eUNvbmZpZyxcbiAgQmFja29mZmljZVRvb2xGYWNldENvbmZpZyxcbiAgQmFja29mZmljZVRvb2xGYWNldExvYWRlck1hcCxcbiAgSTE4bkxhYmVsLFxufSBmcm9tICcuL3R5cGVzLmpzJztcblxudHlwZSBGaWVsZEtleU9mVHlwZTxXaGVyZSwgVmFsdWU+ID0gRXh0cmFjdDxcbiAge1xuICAgIFtLZXkgaW4ga2V5b2YgV2hlcmVdOiBOb25OdWxsYWJsZTxXaGVyZVtLZXldPiBleHRlbmRzIFZhbHVlID8gS2V5IDogbmV2ZXI7XG4gIH1ba2V5b2YgV2hlcmVdLFxuICBzdHJpbmdcbj47XG5cbnR5cGUgU3RyaW5nRmllbGRLZXk8V2hlcmU+ID0gRmllbGRLZXlPZlR5cGU8V2hlcmUsIHN0cmluZz47XG50eXBlIEJvb2xlYW5GaWVsZEtleTxXaGVyZT4gPSBGaWVsZEtleU9mVHlwZTxXaGVyZSwgYm9vbGVhbj47XG50eXBlIE51bWJlckZpZWxkS2V5PFdoZXJlPiA9IEZpZWxkS2V5T2ZUeXBlPFdoZXJlLCBudW1iZXI+O1xudHlwZSBTdHJpbmdMaXN0RmllbGRLZXk8V2hlcmU+ID0gRmllbGRLZXlPZlR5cGU8V2hlcmUsIHJlYWRvbmx5IHN0cmluZ1tdPjtcblxudHlwZSBTdGFuZGFyZExpc3RWYXJpYWJsZXM8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBUV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUT3BlcmF0aW9uPixcbiAgVFNvcnQgZXh0ZW5kcyBzdHJpbmcgPSBCYWNrb2ZmaWNlT3BlcmF0aW9uU29ydDxUT3BlcmF0aW9uPixcbj4gPSB7XG4gIHdoZXJlPzogVFdoZXJlIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgc29ydD86IFRTb3J0IHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgY291bnQ6IG51bWJlcjtcbiAgY3Vyc29yPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbn07XG5cbnR5cGUgU3RhbmRhcmRQaWNrZXJWYXJpYWJsZXM8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBUV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUT3BlcmF0aW9uPixcbj4gPSB7XG4gIHdoZXJlPzogVFdoZXJlIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgY291bnQ6IG51bWJlcjtcbiAgY3Vyc29yPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbn07XG5cbnR5cGUgU3RyaWN0U3RhbmRhcmRMaXN0T3BlcmF0aW9uPFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlPiA9XG4gIFRPcGVyYXRpb25bJ3ZhcmlhYmxlcyddIGV4dGVuZHMgU3RhbmRhcmRMaXN0VmFyaWFibGVzPFRPcGVyYXRpb24+XG4gICAgPyBUT3BlcmF0aW9uXG4gICAgOiBuZXZlcjtcblxudHlwZSBTdHJpY3RTdGFuZGFyZFBpY2tlck9wZXJhdGlvbjxUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZT4gPVxuICBUT3BlcmF0aW9uWyd2YXJpYWJsZXMnXSBleHRlbmRzIFN0YW5kYXJkUGlja2VyVmFyaWFibGVzPFRPcGVyYXRpb24+XG4gICAgPyBUT3BlcmF0aW9uXG4gICAgOiBuZXZlcjtcblxudHlwZSBCYWNrb2ZmaWNlRGFzaGJvYXJkUXVlcnlXaWRnZXRLaW5kID0gRXh0cmFjdDxcbiAgQmFja29mZmljZURhc2hib2FyZFdpZGdldCxcbiAgeyBkYXRhU291cmNlOiAncXVlcnknIH1cbj5bJ2tpbmQnXTtcblxudHlwZSBCYWNrb2ZmaWNlRGFzaGJvYXJkU3RhdGljV2lkZ2V0S2luZCA9IEV4dHJhY3Q8XG4gIEJhY2tvZmZpY2VEYXNoYm9hcmRXaWRnZXQsXG4gIHsgZGF0YVNvdXJjZTogJ3N0YXRpYycgfVxuPlsna2luZCddO1xuXG50eXBlIEJhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldDxcbiAgS2luZCBleHRlbmRzIEJhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldEtpbmQsXG4+ID0gRXh0cmFjdDxCYWNrb2ZmaWNlRGFzaGJvYXJkV2lkZ2V0LCB7IGRhdGFTb3VyY2U6ICdxdWVyeSc7IGtpbmQ6IEtpbmQgfT47XG5cbnR5cGUgQmFja29mZmljZURhc2hib2FyZFN0YXRpY1dpZGdldDxcbiAgS2luZCBleHRlbmRzIEJhY2tvZmZpY2VEYXNoYm9hcmRTdGF0aWNXaWRnZXRLaW5kLFxuPiA9IEV4dHJhY3Q8QmFja29mZmljZURhc2hib2FyZFdpZGdldCwgeyBkYXRhU291cmNlOiAnc3RhdGljJzsga2luZDogS2luZCB9PjtcblxudHlwZSBCYWNrb2ZmaWNlRGFzaGJvYXJkUXVlcnlXaWRnZXRSZXN1bHQ8XG4gIEtpbmQgZXh0ZW5kcyBCYWNrb2ZmaWNlRGFzaGJvYXJkUXVlcnlXaWRnZXRLaW5kLFxuPiA9IFJldHVyblR5cGU8QmFja29mZmljZURhc2hib2FyZFF1ZXJ5V2lkZ2V0PEtpbmQ+WydyZXNvbHZlJ10+O1xuXG5leHBvcnQgdHlwZSBEZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkUXVlcnlXaWRnZXRJbnB1dDxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIEtpbmQgZXh0ZW5kcyBCYWNrb2ZmaWNlRGFzaGJvYXJkUXVlcnlXaWRnZXRLaW5kLFxuPiA9IE9taXQ8XG4gIEJhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldDxLaW5kPixcbiAgJ2RhdGFTb3VyY2UnIHwgJ3ZhcmlhYmxlcycgfCAncmVzb2x2ZSdcbj4gJiB7XG4gIHZhcmlhYmxlczogQmFja29mZmljZURhc2hib2FyZFdpZGdldFZhcmlhYmxlczxUT3BlcmF0aW9uPjtcbiAgcmVzb2x2ZTogKFxuICAgIGRhdGE6IFRPcGVyYXRpb25bJ3Jlc3BvbnNlJ10sXG4gICAgY29udGV4dDogQmFja29mZmljZURhc2hib2FyZENvbnRleHQsXG4gICkgPT4gQmFja29mZmljZURhc2hib2FyZFF1ZXJ5V2lkZ2V0UmVzdWx0PEtpbmQ+O1xufTtcblxudHlwZSBBbnlEZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkUXVlcnlXaWRnZXRJbnB1dDxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4+ID0ge1xuICBbXG4gICAgS2luZCBpbiBCYWNrb2ZmaWNlRGFzaGJvYXJkUXVlcnlXaWRnZXRLaW5kXG4gIF06IERlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldElucHV0PFRPcGVyYXRpb24sIEtpbmQ+O1xufVtCYWNrb2ZmaWNlRGFzaGJvYXJkUXVlcnlXaWRnZXRLaW5kXTtcblxuZXhwb3J0IHR5cGUgRGVmaW5lQmFja29mZmljZURhc2hib2FyZFN0YXRpY1dpZGdldElucHV0PFxuICBLaW5kIGV4dGVuZHMgQmFja29mZmljZURhc2hib2FyZFN0YXRpY1dpZGdldEtpbmQsXG4+ID0gT21pdDxCYWNrb2ZmaWNlRGFzaGJvYXJkU3RhdGljV2lkZ2V0PEtpbmQ+LCAnZGF0YVNvdXJjZSc+O1xuXG50eXBlIEFueURlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRTdGF0aWNXaWRnZXRJbnB1dCA9IHtcbiAgW1xuICAgIEtpbmQgaW4gQmFja29mZmljZURhc2hib2FyZFN0YXRpY1dpZGdldEtpbmRcbiAgXTogRGVmaW5lQmFja29mZmljZURhc2hib2FyZFN0YXRpY1dpZGdldElucHV0PEtpbmQ+O1xufVtCYWNrb2ZmaWNlRGFzaGJvYXJkU3RhdGljV2lkZ2V0S2luZF07XG5cbmV4cG9ydCB0eXBlIERlZmluZUJhY2tvZmZpY2VDb25uZWN0aW9uTGlzdElucHV0PFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbiAgUm93UmVmLFxuICBSb3dWaWV3LFxuICBMaXN0RnJhZ21lbnREYXRhLFxuICBUV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUT3BlcmF0aW9uPixcbiAgVFNvcnQgZXh0ZW5kcyBzdHJpbmcgPSBCYWNrb2ZmaWNlT3BlcmF0aW9uU29ydDxUT3BlcmF0aW9uPixcbiAgVENvdW50T3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSA9IGFueSxcbiAgVEVudGl0eUlkIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nLFxuPiA9IE9taXQ8XG4gIEJhY2tvZmZpY2VDb25uZWN0aW9uTGlzdENvbmZpZzxcbiAgICBUT3BlcmF0aW9uLFxuICAgIFJvd1JlZixcbiAgICBSb3dWaWV3LFxuICAgIExpc3RGcmFnbWVudERhdGEsXG4gICAgVFdoZXJlLFxuICAgIFRTb3J0LFxuICAgIFRDb3VudE9wZXJhdGlvbixcbiAgICBURW50aXR5SWRcbiAgPixcbiAgJ2tpbmQnIHwgJ2J1aWxkUXVlcnlWYXJpYWJsZXMnXG4+ICYge1xuICBidWlsZFF1ZXJ5VmFyaWFibGVzPzogKFxuICAgIGlucHV0OiBCYWNrb2ZmaWNlTGlzdFF1ZXJ5SW5wdXQ8VE9wZXJhdGlvbiwgVFdoZXJlLCBUU29ydD4sXG4gICkgPT4gVE9wZXJhdGlvblsndmFyaWFibGVzJ107XG59O1xuXG5leHBvcnQgdHlwZSBEZWZpbmVCYWNrb2ZmaWNlTGlzdEZhY2V0SW5wdXQ8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBSb3dSZWYsXG4gIFJvd1ZpZXcsXG4gIExpc3RGcmFnbWVudERhdGEsXG4gIFRXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gQmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRPcGVyYXRpb24+LFxuICBUU29ydCBleHRlbmRzIHN0cmluZyA9IEJhY2tvZmZpY2VPcGVyYXRpb25Tb3J0PFRPcGVyYXRpb24+LFxuICBUQ291bnRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlID0gYW55LFxuICBURW50aXR5SWQgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmcsXG4+ID0gT21pdDxcbiAgQmFja29mZmljZUxpc3RGYWNldENvbmZpZzxcbiAgICBUT3BlcmF0aW9uLFxuICAgIFJvd1JlZixcbiAgICBSb3dWaWV3LFxuICAgIExpc3RGcmFnbWVudERhdGEsXG4gICAgVFdoZXJlLFxuICAgIFRTb3J0LFxuICAgIFRDb3VudE9wZXJhdGlvbixcbiAgICBURW50aXR5SWRcbiAgPixcbiAgJ2xpc3QnXG4+ICYge1xuICBsaXN0OiBCYWNrb2ZmaWNlRW50aXR5TGlzdENvbmZpZzxcbiAgICBUT3BlcmF0aW9uLFxuICAgIFJvd1JlZixcbiAgICBSb3dWaWV3LFxuICAgIExpc3RGcmFnbWVudERhdGEsXG4gICAgVFdoZXJlLFxuICAgIFRTb3J0LFxuICAgIFRDb3VudE9wZXJhdGlvbixcbiAgICBURW50aXR5SWRcbiAgPjtcbn07XG5cbmV4cG9ydCB0eXBlIERlZmluZUJhY2tvZmZpY2VQaWNrZXJJbnB1dDxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIFJvd1JlZixcbiAgUm93VmlldyxcbiAgUGlja2VyRnJhZ21lbnREYXRhLFxuICBUV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUT3BlcmF0aW9uPixcbj4gPSBPbWl0PFxuICBCYWNrb2ZmaWNlRW50aXR5UGlja2VyQ29uZmlnPFxuICAgIFRPcGVyYXRpb24sXG4gICAgUm93UmVmLFxuICAgIFJvd1ZpZXcsXG4gICAgUGlja2VyRnJhZ21lbnREYXRhLFxuICAgIFRXaGVyZVxuICA+LFxuICAnYnVpbGRRdWVyeVZhcmlhYmxlcydcbj4gJiB7XG4gIGJ1aWxkUXVlcnlWYXJpYWJsZXM/OiAoXG4gICAgaW5wdXQ6IEJhY2tvZmZpY2VQaWNrZXJRdWVyeUlucHV0PFRPcGVyYXRpb24sIFRXaGVyZT4sXG4gICkgPT4gVE9wZXJhdGlvblsndmFyaWFibGVzJ107XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQmFja29mZmljZURhc2hib2FyZENvbmZpZyA9IDxcbiAgY29uc3QgQ29uZmlnIGV4dGVuZHMgQmFja29mZmljZURhc2hib2FyZENvbmZpZyxcbj4oXG4gIGNvbmZpZzogQ29uZmlnLFxuKTogQ29uZmlnID0+IHtcbiAgcmV0dXJuIGNvbmZpZztcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVCYWNrb2ZmaWNlUXVlcnkgPSA8VE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGU+KFxuICBub2RlOiBHcmFwaFFMVGFnZ2VkTm9kZSxcbik6IEJhY2tvZmZpY2VRdWVyeVNwZWM8VE9wZXJhdGlvbj4gPT4ge1xuICByZXR1cm4geyBub2RlIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQmFja29mZmljZUZyYWdtZW50ID0gPFRLZXksIFREYXRhPihcbiAgbm9kZTogR3JhcGhRTFRhZ2dlZE5vZGUsXG4pOiBCYWNrb2ZmaWNlRnJhZ21lbnRTcGVjPFRLZXksIFREYXRhPiA9PiB7XG4gIHJldHVybiB7IG5vZGUgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVCYWNrb2ZmaWNlUGFnaW5hdGlvbkZyYWdtZW50ID0gPFxuICBUUXVlcnkgZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBUS2V5LFxuICBURGF0YSxcbj4oXG4gIG5vZGU6IEdyYXBoUUxUYWdnZWROb2RlLFxuKTogQmFja29mZmljZVBhZ2luYXRpb25GcmFnbWVudFNwZWM8VFF1ZXJ5LCBUS2V5LCBURGF0YT4gPT4ge1xuICByZXR1cm4geyBub2RlIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQmFja29mZmljZU11dGF0aW9uQWN0aW9uID0gPFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbiAgTm9kZSxcbj4oKSA9PiB7XG4gIHJldHVybiA8XG4gICAgY29uc3QgQWN0aW9uIGV4dGVuZHMgQmFja29mZmljZUVudGl0eU11dGF0aW9uQWN0aW9uU3BlYzxOb2RlLCBUT3BlcmF0aW9uPixcbiAgPihcbiAgICBhY3Rpb246IE9taXQ8QWN0aW9uLCAncmVsYXlPcGVyYXRpb25Cb3VuZCc+LFxuICApOiBBY3Rpb24gPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5hY3Rpb24sXG4gICAgICByZWxheU9wZXJhdGlvbkJvdW5kOiB0cnVlLFxuICAgIH0gYXMgQWN0aW9uO1xuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmluZUJhY2tvZmZpY2VGb3JtTXV0YXRpb25BY3Rpb24gPSA8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBOb2RlLFxuICBGb3JtVmFsdWVzIGV4dGVuZHMgb2JqZWN0LFxuICBJbml0aWFsVmFsdWVzIGV4dGVuZHMgb2JqZWN0ID0gUGFydGlhbDxGb3JtVmFsdWVzPixcbj4oKSA9PiB7XG4gIHJldHVybiA8XG4gICAgY29uc3QgQWN0aW9uIGV4dGVuZHMgQmFja29mZmljZUVudGl0eUZvcm1NdXRhdGlvbkFjdGlvblNwZWM8XG4gICAgICBOb2RlLFxuICAgICAgVE9wZXJhdGlvbixcbiAgICAgIEZvcm1WYWx1ZXMsXG4gICAgICBJbml0aWFsVmFsdWVzXG4gICAgPixcbiAgPihcbiAgICBhY3Rpb246IE9taXQ8QWN0aW9uLCAncmVsYXlPcGVyYXRpb25Cb3VuZCc+LFxuICApOiBBY3Rpb24gPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5hY3Rpb24sXG4gICAgICByZWxheU9wZXJhdGlvbkJvdW5kOiB0cnVlLFxuICAgIH0gYXMgQWN0aW9uO1xuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldCA9IDxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4+KCkgPT4ge1xuICByZXR1cm4gPFxuICAgIGNvbnN0IFdpZGdldCBleHRlbmRzXG4gICAgICBBbnlEZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkUXVlcnlXaWRnZXRJbnB1dDxUT3BlcmF0aW9uPixcbiAgPihcbiAgICB3aWRnZXQ6IFdpZGdldCxcbiAgKTogQmFja29mZmljZURhc2hib2FyZFF1ZXJ5V2lkZ2V0PFdpZGdldFsna2luZCddPiA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLndpZGdldCxcbiAgICAgIGRhdGFTb3VyY2U6ICdxdWVyeScsXG4gICAgfSBhcyB1bmtub3duIGFzIEJhY2tvZmZpY2VEYXNoYm9hcmRRdWVyeVdpZGdldDxXaWRnZXRbJ2tpbmQnXT47XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQmFja29mZmljZURhc2hib2FyZFN0YXRpY1dpZGdldCA9IChcbiAgd2lkZ2V0OiBBbnlEZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkU3RhdGljV2lkZ2V0SW5wdXQsXG4pOiBFeHRyYWN0PEJhY2tvZmZpY2VEYXNoYm9hcmRXaWRnZXQsIHsgZGF0YVNvdXJjZTogJ3N0YXRpYycgfT4gPT4ge1xuICByZXR1cm4ge1xuICAgIC4uLndpZGdldCxcbiAgICBkYXRhU291cmNlOiAnc3RhdGljJyxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVCYWNrb2ZmaWNlRGFzaGJvYXJkSHJlZlRhcmdldCA9IChcbiAgaHJlZjogc3RyaW5nLFxuKTogQmFja29mZmljZURhc2hib2FyZEhyZWZUYXJnZXQgPT4ge1xuICByZXR1cm4ge1xuICAgIGtpbmQ6ICdocmVmJyxcbiAgICBocmVmLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmluZUJhY2tvZmZpY2VEYXNoYm9hcmRMaXN0VGFyZ2V0ID0gPFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbj4oKSA9PiB7XG4gIHJldHVybiA8XG4gICAgY29uc3QgVGFyZ2V0IGV4dGVuZHMgT21pdDxcbiAgICAgIEJhY2tvZmZpY2VEYXNoYm9hcmRFbnRpdHlMaXN0VGFyZ2V0PFxuICAgICAgICBCYWNrb2ZmaWNlT3BlcmF0aW9uV2hlcmU8VE9wZXJhdGlvbj4sXG4gICAgICAgIEJhY2tvZmZpY2VPcGVyYXRpb25Tb3J0PFRPcGVyYXRpb24+XG4gICAgICA+LFxuICAgICAgJ2tpbmQnXG4gICAgPixcbiAgPihcbiAgICB0YXJnZXQ6IFRhcmdldCxcbiAgKTogQmFja29mZmljZURhc2hib2FyZEVudGl0eUxpc3RUYXJnZXQ8XG4gICAgQmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRPcGVyYXRpb24+LFxuICAgIEJhY2tvZmZpY2VPcGVyYXRpb25Tb3J0PFRPcGVyYXRpb24+XG4gID4gPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi50YXJnZXQsXG4gICAgICBraW5kOiAnZW50aXR5LWxpc3QnLFxuICAgIH07XG4gIH07XG59O1xuXG5jb25zdCBidWlsZFN0YW5kYXJkTGlzdFZhcmlhYmxlcyA9IDxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIFRXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gQmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRPcGVyYXRpb24+LFxuICBUU29ydCBleHRlbmRzIHN0cmluZyA9IEJhY2tvZmZpY2VPcGVyYXRpb25Tb3J0PFRPcGVyYXRpb24+LFxuPihcbiAgaW5wdXQ6IEJhY2tvZmZpY2VMaXN0UXVlcnlJbnB1dDxUT3BlcmF0aW9uLCBUV2hlcmUsIFRTb3J0Pixcbik6IFRPcGVyYXRpb25bJ3ZhcmlhYmxlcyddID0+IHtcbiAgcmV0dXJuIHtcbiAgICB3aGVyZTogaW5wdXQud2hlcmUsXG4gICAgc29ydDogaW5wdXQuc29ydCxcbiAgICBjb3VudDogaW5wdXQuY291bnQsXG4gICAgY3Vyc29yOiBpbnB1dC5jdXJzb3IsXG4gIH07XG59O1xuXG5jb25zdCBidWlsZFN0YW5kYXJkUGlja2VyVmFyaWFibGVzID0gPFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbiAgVFdoZXJlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBCYWNrb2ZmaWNlT3BlcmF0aW9uV2hlcmU8VE9wZXJhdGlvbj4sXG4+KFxuICBpbnB1dDogQmFja29mZmljZVBpY2tlclF1ZXJ5SW5wdXQ8VE9wZXJhdGlvbiwgVFdoZXJlPixcbik6IFRPcGVyYXRpb25bJ3ZhcmlhYmxlcyddID0+IHtcbiAgY29uc3Qgc2VhcmNoID0gaW5wdXQuc2VhcmNoLnRyaW0oKTtcbiAgbGV0IHdoZXJlOiBUV2hlcmUgfCBudWxsID0gbnVsbDtcbiAgaWYgKGlucHV0LnNjb3BlICE9IG51bGwpIHtcbiAgICBjb25zdCBzY29wZWRXaGVyZSA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgIE9iamVjdC5lbnRyaWVzKGlucHV0LnNjb3BlKS5maWx0ZXIoKFssIHZhbHVlXSkgPT4ge1xuICAgICAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiB2YWx1ZS50cmltKCkgIT09ICcnO1xuICAgICAgfSksXG4gICAgKTtcbiAgICB3aGVyZSA9IHNjb3BlZFdoZXJlIGFzIFRXaGVyZTtcbiAgfVxuICBsZXQgc2VhcmNoVmFyaWFibGU6IHN0cmluZyB8IG51bGwgPSBzZWFyY2g7XG4gIGlmIChzZWFyY2ggPT09ICcnKSB7XG4gICAgc2VhcmNoVmFyaWFibGUgPSBudWxsO1xuICB9XG4gIHJldHVybiB7XG4gICAgd2hlcmUsXG4gICAgc2VhcmNoOiBzZWFyY2hWYXJpYWJsZSxcbiAgICBjb3VudDogMjAsXG4gICAgY3Vyc29yOiBudWxsLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmluZUJhY2tvZmZpY2VDb25uZWN0aW9uTGlzdCA9IDxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIFRDb3VudE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4+KCkgPT4ge1xuICByZXR1cm4gPFJvd1JlZiwgUm93VmlldywgTGlzdEZyYWdtZW50RGF0YT4oXG4gICAgY29uZmlnOiBEZWZpbmVCYWNrb2ZmaWNlQ29ubmVjdGlvbkxpc3RJbnB1dDxcbiAgICAgIFN0cmljdFN0YW5kYXJkTGlzdE9wZXJhdGlvbjxUT3BlcmF0aW9uPixcbiAgICAgIFJvd1JlZixcbiAgICAgIFJvd1ZpZXcsXG4gICAgICBMaXN0RnJhZ21lbnREYXRhLFxuICAgICAgQmFja29mZmljZU9wZXJhdGlvbldoZXJlPFN0cmljdFN0YW5kYXJkTGlzdE9wZXJhdGlvbjxUT3BlcmF0aW9uPj4sXG4gICAgICBCYWNrb2ZmaWNlT3BlcmF0aW9uU29ydDxTdHJpY3RTdGFuZGFyZExpc3RPcGVyYXRpb248VE9wZXJhdGlvbj4+LFxuICAgICAgVENvdW50T3BlcmF0aW9uXG4gICAgPixcbiAgKTogQmFja29mZmljZUNvbm5lY3Rpb25MaXN0Q29uZmlnPFxuICAgIFN0cmljdFN0YW5kYXJkTGlzdE9wZXJhdGlvbjxUT3BlcmF0aW9uPixcbiAgICBSb3dSZWYsXG4gICAgUm93VmlldyxcbiAgICBMaXN0RnJhZ21lbnREYXRhLFxuICAgIEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxTdHJpY3RTdGFuZGFyZExpc3RPcGVyYXRpb248VE9wZXJhdGlvbj4+LFxuICAgIEJhY2tvZmZpY2VPcGVyYXRpb25Tb3J0PFN0cmljdFN0YW5kYXJkTGlzdE9wZXJhdGlvbjxUT3BlcmF0aW9uPj4sXG4gICAgVENvdW50T3BlcmF0aW9uXG4gID4gPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5jb25maWcsXG4gICAgICBraW5kOiAnY29ubmVjdGlvbicsXG4gICAgICBidWlsZFF1ZXJ5VmFyaWFibGVzOlxuICAgICAgICBjb25maWcuYnVpbGRRdWVyeVZhcmlhYmxlcyA/PyBidWlsZFN0YW5kYXJkTGlzdFZhcmlhYmxlcyxcbiAgICB9O1xuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmluZUJhY2tvZmZpY2VDdXN0b21Db25uZWN0aW9uTGlzdCA9IDxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIFRDb3VudE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIFRXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICBUU29ydCBleHRlbmRzIHN0cmluZyA9IEJhY2tvZmZpY2VPcGVyYXRpb25Tb3J0PFRPcGVyYXRpb24+LFxuPigpID0+IHtcbiAgcmV0dXJuIDxSb3dSZWYsIFJvd1ZpZXcsIExpc3RGcmFnbWVudERhdGE+KFxuICAgIGNvbmZpZzogRGVmaW5lQmFja29mZmljZUNvbm5lY3Rpb25MaXN0SW5wdXQ8XG4gICAgICBUT3BlcmF0aW9uLFxuICAgICAgUm93UmVmLFxuICAgICAgUm93VmlldyxcbiAgICAgIExpc3RGcmFnbWVudERhdGEsXG4gICAgICBUV2hlcmUsXG4gICAgICBUU29ydCxcbiAgICAgIFRDb3VudE9wZXJhdGlvblxuICAgID4gJiB7XG4gICAgICBidWlsZFF1ZXJ5VmFyaWFibGVzOiAoXG4gICAgICAgIGlucHV0OiBCYWNrb2ZmaWNlTGlzdFF1ZXJ5SW5wdXQ8VE9wZXJhdGlvbiwgVFdoZXJlLCBUU29ydD4sXG4gICAgICApID0+IFRPcGVyYXRpb25bJ3ZhcmlhYmxlcyddO1xuICAgIH0sXG4gICk6IEJhY2tvZmZpY2VDb25uZWN0aW9uTGlzdENvbmZpZzxcbiAgICBUT3BlcmF0aW9uLFxuICAgIFJvd1JlZixcbiAgICBSb3dWaWV3LFxuICAgIExpc3RGcmFnbWVudERhdGEsXG4gICAgVFdoZXJlLFxuICAgIFRTb3J0LFxuICAgIFRDb3VudE9wZXJhdGlvblxuICA+ID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uY29uZmlnLFxuICAgICAga2luZDogJ2Nvbm5lY3Rpb24nLFxuICAgIH07XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQmFja29mZmljZUxpc3RGYWNldCA9IDxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIFRDb3VudE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4+KCkgPT4ge1xuICByZXR1cm4gPFJvd1JlZiwgUm93VmlldywgTGlzdEZyYWdtZW50RGF0YT4oXG4gICAgY29uZmlnOiBEZWZpbmVCYWNrb2ZmaWNlTGlzdEZhY2V0SW5wdXQ8XG4gICAgICBTdHJpY3RTdGFuZGFyZExpc3RPcGVyYXRpb248VE9wZXJhdGlvbj4sXG4gICAgICBSb3dSZWYsXG4gICAgICBSb3dWaWV3LFxuICAgICAgTGlzdEZyYWdtZW50RGF0YSxcbiAgICAgIEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxTdHJpY3RTdGFuZGFyZExpc3RPcGVyYXRpb248VE9wZXJhdGlvbj4+LFxuICAgICAgQmFja29mZmljZU9wZXJhdGlvblNvcnQ8U3RyaWN0U3RhbmRhcmRMaXN0T3BlcmF0aW9uPFRPcGVyYXRpb24+PixcbiAgICAgIFRDb3VudE9wZXJhdGlvblxuICAgID4sXG4gICk6IEJhY2tvZmZpY2VMaXN0RmFjZXRDb25maWc8XG4gICAgU3RyaWN0U3RhbmRhcmRMaXN0T3BlcmF0aW9uPFRPcGVyYXRpb24+LFxuICAgIFJvd1JlZixcbiAgICBSb3dWaWV3LFxuICAgIExpc3RGcmFnbWVudERhdGEsXG4gICAgQmFja29mZmljZU9wZXJhdGlvbldoZXJlPFN0cmljdFN0YW5kYXJkTGlzdE9wZXJhdGlvbjxUT3BlcmF0aW9uPj4sXG4gICAgQmFja29mZmljZU9wZXJhdGlvblNvcnQ8U3RyaWN0U3RhbmRhcmRMaXN0T3BlcmF0aW9uPFRPcGVyYXRpb24+PixcbiAgICBUQ291bnRPcGVyYXRpb25cbiAgPiA9PiB7XG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVCYWNrb2ZmaWNlQ3VzdG9tTGlzdEZhY2V0ID0gPFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbiAgVENvdW50T3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbiAgVFdoZXJlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIFRTb3J0IGV4dGVuZHMgc3RyaW5nID0gQmFja29mZmljZU9wZXJhdGlvblNvcnQ8VE9wZXJhdGlvbj4sXG4+KCkgPT4ge1xuICByZXR1cm4gPFJvd1JlZiwgUm93VmlldywgTGlzdEZyYWdtZW50RGF0YT4oXG4gICAgY29uZmlnOiBEZWZpbmVCYWNrb2ZmaWNlTGlzdEZhY2V0SW5wdXQ8XG4gICAgICBUT3BlcmF0aW9uLFxuICAgICAgUm93UmVmLFxuICAgICAgUm93VmlldyxcbiAgICAgIExpc3RGcmFnbWVudERhdGEsXG4gICAgICBUV2hlcmUsXG4gICAgICBUU29ydCxcbiAgICAgIFRDb3VudE9wZXJhdGlvblxuICAgID4sXG4gICk6IEJhY2tvZmZpY2VMaXN0RmFjZXRDb25maWc8XG4gICAgVE9wZXJhdGlvbixcbiAgICBSb3dSZWYsXG4gICAgUm93VmlldyxcbiAgICBMaXN0RnJhZ21lbnREYXRhLFxuICAgIFRXaGVyZSxcbiAgICBUU29ydCxcbiAgICBUQ291bnRPcGVyYXRpb25cbiAgPiA9PiB7XG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVCYWNrb2ZmaWNlUGlja2VyID0gPFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlPigpID0+IHtcbiAgcmV0dXJuIDxSb3dSZWYsIFJvd1ZpZXcsIFBpY2tlckZyYWdtZW50RGF0YT4oXG4gICAgY29uZmlnOiBEZWZpbmVCYWNrb2ZmaWNlUGlja2VySW5wdXQ8XG4gICAgICBTdHJpY3RTdGFuZGFyZFBpY2tlck9wZXJhdGlvbjxUT3BlcmF0aW9uPixcbiAgICAgIFJvd1JlZixcbiAgICAgIFJvd1ZpZXcsXG4gICAgICBQaWNrZXJGcmFnbWVudERhdGFcbiAgICA+LFxuICApOiBCYWNrb2ZmaWNlRW50aXR5UGlja2VyQ29uZmlnPFxuICAgIFN0cmljdFN0YW5kYXJkUGlja2VyT3BlcmF0aW9uPFRPcGVyYXRpb24+LFxuICAgIFJvd1JlZixcbiAgICBSb3dWaWV3LFxuICAgIFBpY2tlckZyYWdtZW50RGF0YVxuICA+ID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uY29uZmlnLFxuICAgICAgYnVpbGRRdWVyeVZhcmlhYmxlczpcbiAgICAgICAgY29uZmlnLmJ1aWxkUXVlcnlWYXJpYWJsZXMgPz8gYnVpbGRTdGFuZGFyZFBpY2tlclZhcmlhYmxlcyxcbiAgICB9O1xuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmluZUJhY2tvZmZpY2VDdXN0b21QaWNrZXIgPSA8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBUV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbj4oKSA9PiB7XG4gIHJldHVybiA8Um93UmVmLCBSb3dWaWV3LCBQaWNrZXJGcmFnbWVudERhdGE+KFxuICAgIGNvbmZpZzogRGVmaW5lQmFja29mZmljZVBpY2tlcklucHV0PFxuICAgICAgVE9wZXJhdGlvbixcbiAgICAgIFJvd1JlZixcbiAgICAgIFJvd1ZpZXcsXG4gICAgICBQaWNrZXJGcmFnbWVudERhdGEsXG4gICAgICBUV2hlcmVcbiAgICA+ICYge1xuICAgICAgYnVpbGRRdWVyeVZhcmlhYmxlczogKFxuICAgICAgICBpbnB1dDogQmFja29mZmljZVBpY2tlclF1ZXJ5SW5wdXQ8VE9wZXJhdGlvbiwgVFdoZXJlPixcbiAgICAgICkgPT4gVE9wZXJhdGlvblsndmFyaWFibGVzJ107XG4gICAgfSxcbiAgKTogQmFja29mZmljZUVudGl0eVBpY2tlckNvbmZpZzxcbiAgICBUT3BlcmF0aW9uLFxuICAgIFJvd1JlZixcbiAgICBSb3dWaWV3LFxuICAgIFBpY2tlckZyYWdtZW50RGF0YSxcbiAgICBUV2hlcmVcbiAgPiA9PiB7XG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVCYWNrb2ZmaWNlUGlja2VyRmFjZXQgPSA8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuPigpID0+IHtcbiAgcmV0dXJuIDxSb3dSZWYsIFJvd1ZpZXcsIFBpY2tlckZyYWdtZW50RGF0YT4oXG4gICAgY29uZmlnOiBCYWNrb2ZmaWNlUGlja2VyRmFjZXRDb25maWc8XG4gICAgICBTdHJpY3RTdGFuZGFyZFBpY2tlck9wZXJhdGlvbjxUT3BlcmF0aW9uPixcbiAgICAgIFJvd1JlZixcbiAgICAgIFJvd1ZpZXcsXG4gICAgICBQaWNrZXJGcmFnbWVudERhdGFcbiAgICA+LFxuICApOiBCYWNrb2ZmaWNlUGlja2VyRmFjZXRDb25maWc8XG4gICAgU3RyaWN0U3RhbmRhcmRQaWNrZXJPcGVyYXRpb248VE9wZXJhdGlvbj4sXG4gICAgUm93UmVmLFxuICAgIFJvd1ZpZXcsXG4gICAgUGlja2VyRnJhZ21lbnREYXRhXG4gID4gPT4ge1xuICAgIHJldHVybiBjb25maWc7XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQmFja29mZmljZUN1c3RvbVBpY2tlckZhY2V0ID0gPFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbiAgVFdoZXJlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4+KCkgPT4ge1xuICByZXR1cm4gPFJvd1JlZiwgUm93VmlldywgUGlja2VyRnJhZ21lbnREYXRhPihcbiAgICBjb25maWc6IEJhY2tvZmZpY2VQaWNrZXJGYWNldENvbmZpZzxcbiAgICAgIFRPcGVyYXRpb24sXG4gICAgICBSb3dSZWYsXG4gICAgICBSb3dWaWV3LFxuICAgICAgUGlja2VyRnJhZ21lbnREYXRhLFxuICAgICAgVFdoZXJlXG4gICAgPixcbiAgKTogQmFja29mZmljZVBpY2tlckZhY2V0Q29uZmlnPFxuICAgIFRPcGVyYXRpb24sXG4gICAgUm93UmVmLFxuICAgIFJvd1ZpZXcsXG4gICAgUGlja2VyRnJhZ21lbnREYXRhLFxuICAgIFRXaGVyZVxuICA+ID0+IHtcbiAgICByZXR1cm4gY29uZmlnO1xuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmluZUJhY2tvZmZpY2VSZWxhdGlvbkZpbHRlciA9IDxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIFRXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gQmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRPcGVyYXRpb24+LFxuPigpID0+IHtcbiAgcmV0dXJuIChcbiAgICByZWxhdGlvbjogQmFja29mZmljZVJlbGF0aW9uRmlsdGVyU3BlYzxUT3BlcmF0aW9uLCBUV2hlcmU+LFxuICApOiBCYWNrb2ZmaWNlUmVsYXRpb25GaWx0ZXJTcGVjPFRPcGVyYXRpb24sIFRXaGVyZT4gPT4ge1xuICAgIHJldHVybiByZWxhdGlvbjtcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVCYWNrb2ZmaWNlRW50aXR5Q291bnQgPSA8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBUV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbj4oKSA9PiB7XG4gIHJldHVybiAoXG4gICAgY291bnQ6IE9taXQ8XG4gICAgICBCYWNrb2ZmaWNlRW50aXR5Q291bnRDb25maWc8VE9wZXJhdGlvbiwgVFdoZXJlPixcbiAgICAgICdidWlsZFZhcmlhYmxlcycgfCAnZ2V0Q291bnQnXG4gICAgPiAmIHtcbiAgICAgIGJ1aWxkVmFyaWFibGVzOiAoXG4gICAgICAgIGlucHV0OiBCYWNrb2ZmaWNlQ291bnRRdWVyeUlucHV0PFRXaGVyZT4sXG4gICAgICApID0+IFRPcGVyYXRpb25bJ3ZhcmlhYmxlcyddO1xuICAgICAgZ2V0Q291bnQ6IChkYXRhOiBUT3BlcmF0aW9uWydyZXNwb25zZSddKSA9PiBudW1iZXIgfCBudWxsO1xuICAgIH0sXG4gICk6IEJhY2tvZmZpY2VFbnRpdHlDb3VudENvbmZpZzxUT3BlcmF0aW9uLCBUV2hlcmU+ID0+IHtcbiAgICByZXR1cm4gY291bnQ7XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQmFja29mZmljZUZpbHRlcnMgPSA8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBUV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUT3BlcmF0aW9uPixcbiAgVEVudGl0eUlkIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nLFxuPigpID0+IHtcbiAgcmV0dXJuIDxcbiAgICBjb25zdCBGaWx0ZXJzIGV4dGVuZHMgcmVhZG9ubHkgQmFja29mZmljZUZpbHRlclNwZWM8VFdoZXJlLCBURW50aXR5SWQ+W10sXG4gID4oXG4gICAgZmlsdGVyczogRmlsdGVycyxcbiAgKTogRmlsdGVycyA9PiB7XG4gICAgcmV0dXJuIGZpbHRlcnM7XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQmFja29mZmljZVNvcnRzID0gPFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbiAgVFNvcnQgZXh0ZW5kcyBzdHJpbmcgPSBCYWNrb2ZmaWNlT3BlcmF0aW9uU29ydDxUT3BlcmF0aW9uPixcbj4oKSA9PiB7XG4gIHJldHVybiA8Y29uc3QgU29ydHMgZXh0ZW5kcyByZWFkb25seSBCYWNrb2ZmaWNlU29ydFNwZWM8VFNvcnQ+W10+KFxuICAgIHNvcnRzOiBTb3J0cyxcbiAgKTogU29ydHMgPT4ge1xuICAgIHJldHVybiBzb3J0cztcbiAgfTtcbn07XG5cbnR5cGUgRmlsdGVyQ29uZmlnID0ge1xuICBsYWJlbDogSTE4bkxhYmVsO1xuICBwbGFjZW1lbnQ/OiBCYWNrb2ZmaWNlRmlsdGVyUGxhY2VtZW50O1xuICBwYXRoPzogcmVhZG9ubHkgc3RyaW5nW107XG59O1xuXG5leHBvcnQgY29uc3QgZW50aXR5SWRGaWx0ZXIgPSA8XG4gIFdoZXJlLFxuICBLZXkgZXh0ZW5kcyBTdHJpbmdGaWVsZEtleTxXaGVyZT4sXG4gIEVudGl0eUlkIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nLFxuPihcbiAga2V5OiBLZXksXG4gIGNvbmZpZzogRmlsdGVyQ29uZmlnICYgeyBlbnRpdHk6IEVudGl0eUlkIH0sXG4pOiBCYWNrb2ZmaWNlRmlsdGVyU3BlYzxXaGVyZSwgRW50aXR5SWQ+ID0+IHtcbiAgcmV0dXJuIHtcbiAgICBpZDoga2V5LFxuICAgIGtpbmQ6ICdlbnRpdHlJZCcsXG4gICAgZW50aXR5OiBjb25maWcuZW50aXR5LFxuICAgIGxhYmVsOiBjb25maWcubGFiZWwsXG4gICAgcGxhY2VtZW50OiBjb25maWcucGxhY2VtZW50LFxuICAgIHdoZXJlS2V5OiBrZXksXG4gICAgcGF0aDogY29uZmlnLnBhdGgsXG4gICAgdG9HcmFwaFFMOiAodmFsdWUpID0+IHtcbiAgICAgIHJldHVybiB7IFtrZXldOiB2YWx1ZSB9IGFzIFBhcnRpYWw8V2hlcmU+O1xuICAgIH0sXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZW50aXR5SWRMaXN0RmlsdGVyID0gPFxuICBXaGVyZSxcbiAgS2V5IGV4dGVuZHMgU3RyaW5nTGlzdEZpZWxkS2V5PFdoZXJlPixcbiAgRW50aXR5SWQgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmcsXG4+KFxuICBrZXk6IEtleSxcbiAgY29uZmlnOiBGaWx0ZXJDb25maWcgJiB7IGVudGl0eTogRW50aXR5SWQgfSxcbik6IEJhY2tvZmZpY2VGaWx0ZXJTcGVjPFdoZXJlLCBFbnRpdHlJZD4gPT4ge1xuICByZXR1cm4ge1xuICAgIGlkOiBrZXksXG4gICAga2luZDogJ2VudGl0eUlkTGlzdCcsXG4gICAgZW50aXR5OiBjb25maWcuZW50aXR5LFxuICAgIGxhYmVsOiBjb25maWcubGFiZWwsXG4gICAgcGxhY2VtZW50OiBjb25maWcucGxhY2VtZW50LFxuICAgIHdoZXJlS2V5OiBrZXksXG4gICAgcGF0aDogY29uZmlnLnBhdGgsXG4gICAgdG9HcmFwaFFMOiAodmFsdWUpID0+IHtcbiAgICAgIHJldHVybiB7IFtrZXldOiB2YWx1ZSB9IGFzIFBhcnRpYWw8V2hlcmU+O1xuICAgIH0sXG4gICAgZnJvbUdyYXBoUUw6ICh3aGVyZSkgPT4ge1xuICAgICAgY29uc3QgcmF3ID0gd2hlcmVba2V5XTtcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShyYXcpKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJhdy5maWx0ZXIoKGVudHJ5KTogZW50cnkgaXMgc3RyaW5nID0+IHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiBlbnRyeSA9PT0gJ3N0cmluZycgJiYgZW50cnkudHJpbSgpICE9PSAnJztcbiAgICAgIH0pO1xuICAgIH0sXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgdGV4dEZpbHRlciA9IDxXaGVyZSwgS2V5IGV4dGVuZHMgU3RyaW5nRmllbGRLZXk8V2hlcmU+PihcbiAga2V5OiBLZXksXG4gIGNvbmZpZzogRmlsdGVyQ29uZmlnICYge1xuICAgIHBsYWNlaG9sZGVyTGFiZWw/OiBJMThuTGFiZWw7XG4gICAgcGxhY2Vob2xkZXJUZXh0PzogSTE4bkxhYmVsO1xuICB9LFxuKTogQmFja29mZmljZUZpbHRlclNwZWM8V2hlcmU+ID0+IHtcbiAgcmV0dXJuIHtcbiAgICBpZDoga2V5LFxuICAgIGtpbmQ6ICd0ZXh0JyxcbiAgICBsYWJlbDogY29uZmlnLmxhYmVsLFxuICAgIHBsYWNlbWVudDogY29uZmlnLnBsYWNlbWVudCxcbiAgICB3aGVyZUtleToga2V5LFxuICAgIHBhdGg6IGNvbmZpZy5wYXRoLFxuICAgIHBsYWNlaG9sZGVyTGFiZWw6IGNvbmZpZy5wbGFjZWhvbGRlckxhYmVsLFxuICAgIHBsYWNlaG9sZGVyVGV4dDogY29uZmlnLnBsYWNlaG9sZGVyVGV4dCxcbiAgICB0b0dyYXBoUUw6ICh2YWx1ZSkgPT4ge1xuICAgICAgcmV0dXJuIHsgW2tleV06IHZhbHVlIH0gYXMgUGFydGlhbDxXaGVyZT47XG4gICAgfSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBkYXRldGltZUZpbHRlciA9IDxXaGVyZSwgS2V5IGV4dGVuZHMgU3RyaW5nRmllbGRLZXk8V2hlcmU+PihcbiAga2V5OiBLZXksXG4gIGNvbmZpZzogRmlsdGVyQ29uZmlnICYge1xuICAgIG1vZGU/OiAnZnJvbScgfCAndG8nIHwgJ2V4YWN0JztcbiAgICBwbGFjZWhvbGRlckxhYmVsPzogSTE4bkxhYmVsO1xuICAgIHBsYWNlaG9sZGVyVGV4dD86IEkxOG5MYWJlbDtcbiAgfSxcbik6IEJhY2tvZmZpY2VGaWx0ZXJTcGVjPFdoZXJlPiA9PiB7XG4gIHJldHVybiB7XG4gICAgaWQ6IGtleSxcbiAgICBraW5kOiAnZGF0ZXRpbWUnLFxuICAgIGxhYmVsOiBjb25maWcubGFiZWwsXG4gICAgcGxhY2VtZW50OiBjb25maWcucGxhY2VtZW50LFxuICAgIHdoZXJlS2V5OiBrZXksXG4gICAgcGF0aDogY29uZmlnLnBhdGgsXG4gICAgbW9kZTogY29uZmlnLm1vZGUsXG4gICAgcGxhY2Vob2xkZXJMYWJlbDogY29uZmlnLnBsYWNlaG9sZGVyTGFiZWwsXG4gICAgcGxhY2Vob2xkZXJUZXh0OiBjb25maWcucGxhY2Vob2xkZXJUZXh0LFxuICAgIHRvR3JhcGhRTDogKHZhbHVlKSA9PiB7XG4gICAgICByZXR1cm4geyBba2V5XTogdmFsdWUgfSBhcyBQYXJ0aWFsPFdoZXJlPjtcbiAgICB9LFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IG51bWJlckZpbHRlciA9IDxXaGVyZSwgS2V5IGV4dGVuZHMgTnVtYmVyRmllbGRLZXk8V2hlcmU+PihcbiAga2V5OiBLZXksXG4gIGNvbmZpZzogRmlsdGVyQ29uZmlnICYge1xuICAgIHBsYWNlaG9sZGVyTGFiZWw/OiBJMThuTGFiZWw7XG4gICAgcGxhY2Vob2xkZXJUZXh0PzogSTE4bkxhYmVsO1xuICAgIGlucHV0TW9kZT86ICdudW1lcmljJyB8ICdkZWNpbWFsJztcbiAgfSxcbik6IEJhY2tvZmZpY2VGaWx0ZXJTcGVjPFdoZXJlPiA9PiB7XG4gIHJldHVybiB7XG4gICAgaWQ6IGtleSxcbiAgICBraW5kOiAnbnVtYmVyJyxcbiAgICBsYWJlbDogY29uZmlnLmxhYmVsLFxuICAgIHBsYWNlbWVudDogY29uZmlnLnBsYWNlbWVudCxcbiAgICB3aGVyZUtleToga2V5LFxuICAgIHBhdGg6IGNvbmZpZy5wYXRoLFxuICAgIHBsYWNlaG9sZGVyTGFiZWw6IGNvbmZpZy5wbGFjZWhvbGRlckxhYmVsLFxuICAgIHBsYWNlaG9sZGVyVGV4dDogY29uZmlnLnBsYWNlaG9sZGVyVGV4dCxcbiAgICBpbnB1dE1vZGU6IGNvbmZpZy5pbnB1dE1vZGUsXG4gICAgdG9HcmFwaFFMOiAodmFsdWUpID0+IHtcbiAgICAgIHJldHVybiB7IFtrZXldOiB2YWx1ZSB9IGFzIFBhcnRpYWw8V2hlcmU+O1xuICAgIH0sXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZW51bUZpbHRlciA9IDxXaGVyZSwgS2V5IGV4dGVuZHMgU3RyaW5nRmllbGRLZXk8V2hlcmU+PihcbiAga2V5OiBLZXksXG4gIGNvbmZpZzogRmlsdGVyQ29uZmlnICYge1xuICAgIG9wdGlvbnM6IHJlYWRvbmx5IChcbiAgICAgIHwgRXh0cmFjdDxOb25OdWxsYWJsZTxXaGVyZVtLZXldPiwgc3RyaW5nPlxuICAgICAgfCB7XG4gICAgICAgICAgdmFsdWU6IEV4dHJhY3Q8Tm9uTnVsbGFibGU8V2hlcmVbS2V5XT4sIHN0cmluZz47XG4gICAgICAgICAgbGFiZWw6IEkxOG5MYWJlbDtcbiAgICAgICAgfVxuICAgIClbXTtcbiAgfSxcbik6IEJhY2tvZmZpY2VGaWx0ZXJTcGVjPFdoZXJlPiA9PiB7XG4gIHJldHVybiB7XG4gICAgaWQ6IGtleSxcbiAgICBraW5kOiAnZW51bScsXG4gICAgbGFiZWw6IGNvbmZpZy5sYWJlbCxcbiAgICBwbGFjZW1lbnQ6IGNvbmZpZy5wbGFjZW1lbnQsXG4gICAgd2hlcmVLZXk6IGtleSxcbiAgICBwYXRoOiBjb25maWcucGF0aCxcbiAgICBvcHRpb25zOiBjb25maWcub3B0aW9ucy5tYXAoKG9wdGlvbikgPT4ge1xuICAgICAgaWYgKHR5cGVvZiBvcHRpb24gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdmFsdWU6IG9wdGlvbixcbiAgICAgICAgICBsYWJlbDogKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIG9wdGlvbjtcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdmFsdWU6IG9wdGlvbi52YWx1ZSxcbiAgICAgICAgbGFiZWw6IG9wdGlvbi5sYWJlbCxcbiAgICAgIH07XG4gICAgfSksXG4gICAgdG9HcmFwaFFMOiAodmFsdWUpID0+IHtcbiAgICAgIHJldHVybiB7IFtrZXldOiB2YWx1ZSB9IGFzIFBhcnRpYWw8V2hlcmU+O1xuICAgIH0sXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3Qgc3RyaW5nTGlzdEZpbHRlciA9IDxXaGVyZSwgS2V5IGV4dGVuZHMgU3RyaW5nTGlzdEZpZWxkS2V5PFdoZXJlPj4oXG4gIGtleTogS2V5LFxuICBjb25maWc6IEZpbHRlckNvbmZpZyAmIHtcbiAgICBwbGFjZWhvbGRlckxhYmVsPzogSTE4bkxhYmVsO1xuICAgIHBsYWNlaG9sZGVyVGV4dD86IEkxOG5MYWJlbDtcbiAgfSxcbik6IEJhY2tvZmZpY2VGaWx0ZXJTcGVjPFdoZXJlPiA9PiB7XG4gIHJldHVybiB7XG4gICAgaWQ6IGtleSxcbiAgICBraW5kOiAnc3RyaW5nTGlzdCcsXG4gICAgbGFiZWw6IGNvbmZpZy5sYWJlbCxcbiAgICBwbGFjZW1lbnQ6IGNvbmZpZy5wbGFjZW1lbnQsXG4gICAgd2hlcmVLZXk6IGtleSxcbiAgICBwYXRoOiBjb25maWcucGF0aCxcbiAgICBwbGFjZWhvbGRlckxhYmVsOiBjb25maWcucGxhY2Vob2xkZXJMYWJlbCxcbiAgICBwbGFjZWhvbGRlclRleHQ6IGNvbmZpZy5wbGFjZWhvbGRlclRleHQsXG4gICAgdG9HcmFwaFFMOiAodmFsdWUpID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlcyA9IHZhbHVlXG4gICAgICAgIC5zcGxpdCgvW1xcbixdKy91KVxuICAgICAgICAubWFwKChlbnRyeSkgPT4ge1xuICAgICAgICAgIHJldHVybiBlbnRyeS50cmltKCk7XG4gICAgICAgIH0pXG4gICAgICAgIC5maWx0ZXIoKGVudHJ5KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGVudHJ5ICE9PSAnJztcbiAgICAgICAgfSk7XG4gICAgICByZXR1cm4geyBba2V5XTogdmFsdWVzIH0gYXMgUGFydGlhbDxXaGVyZT47XG4gICAgfSxcbiAgICBmcm9tR3JhcGhRTDogKHdoZXJlKSA9PiB7XG4gICAgICBjb25zdCByYXcgPSB3aGVyZVtrZXldO1xuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHJhdykpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICBjb25zdCB2YWx1ZXMgPSByYXdcbiAgICAgICAgLm1hcCgoZW50cnkpID0+IHtcbiAgICAgICAgICBpZiAodHlwZW9mIGVudHJ5ICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gZW50cnkudHJpbSgpO1xuICAgICAgICB9KVxuICAgICAgICAuZmlsdGVyKChlbnRyeSkgPT4ge1xuICAgICAgICAgIHJldHVybiBlbnRyeSAhPT0gJyc7XG4gICAgICAgIH0pO1xuICAgICAgaWYgKHZhbHVlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICByZXR1cm4gdmFsdWVzLmpvaW4oJywgJyk7XG4gICAgfSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBib29sZWFuRmlsdGVyID0gPFdoZXJlLCBLZXkgZXh0ZW5kcyBCb29sZWFuRmllbGRLZXk8V2hlcmU+PihcbiAga2V5OiBLZXksXG4gIGNvbmZpZzogRmlsdGVyQ29uZmlnICYge1xuICAgIHRydWVMYWJlbD86IEkxOG5MYWJlbDtcbiAgICBmYWxzZUxhYmVsPzogSTE4bkxhYmVsO1xuICB9LFxuKTogQmFja29mZmljZUZpbHRlclNwZWM8V2hlcmU+ID0+IHtcbiAgcmV0dXJuIHtcbiAgICBpZDoga2V5LFxuICAgIGtpbmQ6ICdib29sZWFuJyxcbiAgICBsYWJlbDogY29uZmlnLmxhYmVsLFxuICAgIHBsYWNlbWVudDogY29uZmlnLnBsYWNlbWVudCxcbiAgICB3aGVyZUtleToga2V5LFxuICAgIHBhdGg6IGNvbmZpZy5wYXRoLFxuICAgIHRydWVMYWJlbDogY29uZmlnLnRydWVMYWJlbCxcbiAgICBmYWxzZUxhYmVsOiBjb25maWcuZmFsc2VMYWJlbCxcbiAgICB0b0dyYXBoUUw6ICh2YWx1ZSkgPT4ge1xuICAgICAgcmV0dXJuIHsgW2tleV06IHZhbHVlIH0gYXMgUGFydGlhbDxXaGVyZT47XG4gICAgfSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBjdXN0b21GaWx0ZXIgPSA8V2hlcmUsIFZhbHVlPihcbiAgZmlsdGVyOiBCYWNrb2ZmaWNlRmlsdGVyU3BlYzxXaGVyZT4gJiB7XG4gICAgdG9HcmFwaFFMOiAodmFsdWU6IFZhbHVlKSA9PiBQYXJ0aWFsPFdoZXJlPjtcbiAgfSxcbik6IEJhY2tvZmZpY2VGaWx0ZXJTcGVjPFdoZXJlPiA9PiB7XG4gIHJldHVybiBmaWx0ZXI7XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQmFja29mZmljZVRvb2xFbnRpdHkgPSA8XG4gIFQgZXh0ZW5kcyBCYWNrb2ZmaWNlVG9vbEVudGl0eUNvbmZpZyxcbj4oXG4gIGNvbmZpZzogVCxcbik6IFQgPT4ge1xuICByZXR1cm4gY29uZmlnO1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZURldGFpbExheW91dEZhY2V0ID0gPFxuICBUIGV4dGVuZHMgQmFja29mZmljZURldGFpbExheW91dEZhY2V0Q29uZmlnLFxuPihcbiAgY29uZmlnOiBULFxuKTogVCA9PiB7XG4gIHJldHVybiBjb25maWc7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlRGV0YWlsUGFnZUZhY2V0ID0gPFxuICBUIGV4dGVuZHMgQmFja29mZmljZURldGFpbFBhZ2VGYWNldENvbmZpZyxcbj4oXG4gIGNvbmZpZzogVCxcbik6IFQgPT4ge1xuICByZXR1cm4gY29uZmlnO1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmluZURldGFpbEJsb2NrcyA9IDxOb2RlPigpID0+IHtcbiAgcmV0dXJuIDxcbiAgICBjb25zdCBCbG9ja3MgZXh0ZW5kcyByZWFkb25seSBCYWNrb2ZmaWNlU2VtYW50aWNEZXRhaWxCbG9ja1NwZWM8Tm9kZT5bXSxcbiAgPihcbiAgICBibG9ja3M6IEJsb2NrcyxcbiAgKTogQmxvY2tzID0+IHtcbiAgICByZXR1cm4gYmxvY2tzO1xuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmluZVN1bW1hcnlCbG9jayA9IDxOb2RlPihcbiAgYmxvY2s6IEJhY2tvZmZpY2VTdW1tYXJ5QmxvY2tTcGVjPE5vZGU+LFxuKTogQmFja29mZmljZVN1bW1hcnlCbG9ja1NwZWM8Tm9kZT4gPT4ge1xuICByZXR1cm4gYmxvY2s7XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lTWV0cmljR3JvdXAgPSA8Tm9kZT4oXG4gIGJsb2NrOiBCYWNrb2ZmaWNlTWV0cmljR3JvdXBCbG9ja1NwZWM8Tm9kZT4sXG4pOiBCYWNrb2ZmaWNlTWV0cmljR3JvdXBCbG9ja1NwZWM8Tm9kZT4gPT4ge1xuICByZXR1cm4gYmxvY2s7XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lU3RhdGVHcm91cCA9IDxOb2RlPihcbiAgYmxvY2s6IEJhY2tvZmZpY2VTdGF0ZUdyb3VwQmxvY2tTcGVjPE5vZGU+LFxuKTogQmFja29mZmljZVN0YXRlR3JvdXBCbG9ja1NwZWM8Tm9kZT4gPT4ge1xuICByZXR1cm4gYmxvY2s7XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQ29udGV4dFN0YWNrID0gPE5vZGU+KFxuICBibG9jazogQmFja29mZmljZUNvbnRleHRTdGFja0Jsb2NrU3BlYzxOb2RlPixcbik6IEJhY2tvZmZpY2VDb250ZXh0U3RhY2tCbG9ja1NwZWM8Tm9kZT4gPT4ge1xuICByZXR1cm4gYmxvY2s7XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lUmVsYXRpb25TdW1tYXJ5R3JvdXAgPSA8Tm9kZT4oXG4gIGJsb2NrOiBCYWNrb2ZmaWNlUmVsYXRpb25TdW1tYXJ5R3JvdXBCbG9ja1NwZWM8Tm9kZT4sXG4pOiBCYWNrb2ZmaWNlUmVsYXRpb25TdW1tYXJ5R3JvdXBCbG9ja1NwZWM8Tm9kZT4gPT4ge1xuICByZXR1cm4gYmxvY2s7XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lVGltZWxpbmUgPSA8Tm9kZT4oXG4gIGJsb2NrOiBCYWNrb2ZmaWNlVGltZWxpbmVCbG9ja1NwZWM8Tm9kZT4sXG4pOiBCYWNrb2ZmaWNlVGltZWxpbmVCbG9ja1NwZWM8Tm9kZT4gPT4ge1xuICByZXR1cm4gYmxvY2s7XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQXVkaXQgPSA8Tm9kZT4oXG4gIGJsb2NrOiBCYWNrb2ZmaWNlQXVkaXRCbG9ja1NwZWM8Tm9kZT4sXG4pOiBCYWNrb2ZmaWNlQXVkaXRCbG9ja1NwZWM8Tm9kZT4gPT4ge1xuICByZXR1cm4gYmxvY2s7XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lUmVmZXJlbmNlR3JvdXAgPSA8Tm9kZT4oXG4gIGJsb2NrOiBCYWNrb2ZmaWNlUmVmZXJlbmNlR3JvdXBCbG9ja1NwZWM8Tm9kZT4sXG4pOiBCYWNrb2ZmaWNlUmVmZXJlbmNlR3JvdXBCbG9ja1NwZWM8Tm9kZT4gPT4ge1xuICByZXR1cm4gYmxvY2s7XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lUGF5bG9hZCA9IDxOb2RlPihcbiAgYmxvY2s6IEJhY2tvZmZpY2VQYXlsb2FkQmxvY2tTcGVjPE5vZGU+LFxuKTogQmFja29mZmljZVBheWxvYWRCbG9ja1NwZWM8Tm9kZT4gPT4ge1xuICByZXR1cm4gYmxvY2s7XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lVGVjaG5pY2FsRmFjdHMgPSA8Tm9kZT4oXG4gIGJsb2NrOiBCYWNrb2ZmaWNlVGVjaG5pY2FsRmFjdHNCbG9ja1NwZWM8Tm9kZT4sXG4pOiBCYWNrb2ZmaWNlVGVjaG5pY2FsRmFjdHNCbG9ja1NwZWM8Tm9kZT4gPT4ge1xuICByZXR1cm4gYmxvY2s7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlVG9vbEZhY2V0ID0gPFQgZXh0ZW5kcyBCYWNrb2ZmaWNlVG9vbEZhY2V0Q29uZmlnPihcbiAgY29uZmlnOiBULFxuKTogVCA9PiB7XG4gIHJldHVybiBjb25maWc7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlTGlzdERldGFpbE1hbmlmZXN0ID0gPFxuICBURmFjZXRzIGV4dGVuZHMgQmFja29mZmljZUxpc3REZXRhaWxGYWNldExvYWRlck1hcCxcbiAgVENvbmZpZyBleHRlbmRzIE9taXQ8QmFja29mZmljZUVudGl0eU1hbmlmZXN0SXRlbSwgJ2tpbmQnIHwgJ2ZhY2V0cyc+ICYge1xuICAgIGZhY2V0czogVEZhY2V0cztcbiAgfSxcbj4oXG4gIGNvbmZpZzogVENvbmZpZyxcbik6IFRDb25maWcgJiB7IGtpbmQ6ICdsaXN0LWRldGFpbCcgfSA9PiB7XG4gIHJldHVybiB7XG4gICAgLi4uY29uZmlnLFxuICAgIGtpbmQ6ICdsaXN0LWRldGFpbCcsXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlVG9vbE1hbmlmZXN0ID0gPFxuICBURmFjZXRzIGV4dGVuZHMgQmFja29mZmljZVRvb2xGYWNldExvYWRlck1hcCxcbiAgVENvbmZpZyBleHRlbmRzIE9taXQ8XG4gICAgQmFja29mZmljZUVudGl0eU1hbmlmZXN0SXRlbSxcbiAgICAna2luZCcgfCAnaGFzTGlzdCcgfCAnZGV0YWlsUGFnZXMnIHwgJ2RlZmF1bHREZXRhaWxQYWdlSWQnIHwgJ2ZhY2V0cydcbiAgPiAmIHtcbiAgICBmYWNldHM6IFRGYWNldHM7XG4gIH0sXG4+KFxuICBjb25maWc6IFRDb25maWcsXG4pOiBUQ29uZmlnICYge1xuICBraW5kOiAndG9vbCc7XG4gIGhhc0xpc3Q6IGZhbHNlO1xuICBkZXRhaWxQYWdlczogdW5kZWZpbmVkO1xuICBkZWZhdWx0RGV0YWlsUGFnZUlkOiB1bmRlZmluZWQ7XG59ID0+IHtcbiAgcmV0dXJuIHtcbiAgICAuLi5jb25maWcsXG4gICAga2luZDogJ3Rvb2wnLFxuICAgIGhhc0xpc3Q6IGZhbHNlLFxuICAgIGRldGFpbFBhZ2VzOiB1bmRlZmluZWQsXG4gICAgZGVmYXVsdERldGFpbFBhZ2VJZDogdW5kZWZpbmVkLFxuICB9O1xufTtcbiJdfQ==
@@ -39,12 +39,12 @@ export declare const DEFAULT_BACKOFFICE_LIST_UI_CONFIG: {
39
39
  export declare const buildWhereFromEntries: (entries: readonly BackofficeWhereEntry[]) => Record<string, unknown> | null;
40
40
  export declare const resolvePickerSearchFromFilters: <Where extends Record<string, unknown>, FilterWhere extends Record<string, unknown> = Where>(filters: readonly BackofficeLegacyFilterSpec<FilterWhere>[]) => BackofficePickerSearchConfig<Where> | undefined;
41
41
  export declare const resolvePickerScopeFromFilters: <Where extends Record<string, unknown>, FilterWhere extends Record<string, unknown> = Where>(filters: readonly BackofficeLegacyFilterSpec<FilterWhere>[], supportedKeys: readonly string[]) => BackofficePickerScopeConfig<Where> | undefined;
42
- export declare const buildBackofficeConnectionListConfig: <TOperation extends OperationType, RowRef extends object, RowView extends object, ListFragmentData = unknown, Where extends Record<string, unknown> = BackofficeOperationWhere<TOperation>, Sort extends string = BackofficeOperationSort<TOperation>>(options: {
42
+ export declare const buildBackofficeConnectionListConfig: <TOperation extends OperationType, RowRef extends object, RowView extends object, ListFragmentData = unknown, Where extends Record<string, unknown> = BackofficeOperationWhere<TOperation>, Sort extends string = BackofficeOperationSort<TOperation>, EntityId extends string = string>(options: {
43
43
  title: I18nLabel;
44
44
  columns: readonly BackofficeColumnSpec<RowView>[];
45
45
  rowFlags?: readonly BackofficeRowFlagSpec<RowView>[];
46
46
  sorts: readonly BackofficeLegacySortSpec<Sort>[];
47
- filters: readonly BackofficeLegacyFilterSpec<Where>[];
47
+ filters: readonly BackofficeLegacyFilterSpec<Where, EntityId>[];
48
48
  defaultState: BackofficeListState<Where, Sort>;
49
49
  query: GraphQLTaggedNode;
50
50
  fragment: GraphQLTaggedNode;
@@ -54,7 +54,7 @@ export declare const buildBackofficeConnectionListConfig: <TOperation extends Op
54
54
  buildQueryVariables?: (input: BackofficeListQueryInput<TOperation, Where, Sort>) => TOperation["variables"];
55
55
  responsive?: BackofficeListResponsiveProfile<RowView>;
56
56
  ui?: BackofficeListUiConfig;
57
- }) => BackofficeConnectionListConfig<TOperation, RowRef, RowView, ListFragmentData, Where, Sort>;
57
+ }) => BackofficeConnectionListConfig<TOperation, RowRef, RowView, ListFragmentData, Where, Sort, any, EntityId>;
58
58
  export declare function buildBackofficeDetailPageConfig<DetailView extends {
59
59
  id: string;
60
60
  }, DetailData = DetailView, LayoutView = DetailView, DetailQueryData = unknown, DetailFragmentKey = unknown, DetailQueryVariables = {
@@ -1 +1 @@
1
- {"version":3,"file":"entity-builders.d.ts","sourceRoot":"","sources":["../../../src/config/entity-builders.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entity-builders.d.ts","sourceRoot":"","sources":["../../../src/config/entity-builders.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGtE,OAAO,KAAK,EACV,oCAAoC,EACpC,oBAAoB,EACpB,oBAAoB,EACpB,8BAA8B,EAC9B,2BAA2B,EAC3B,6BAA6B,EAC7B,wBAAwB,EACxB,yBAAyB,EACzB,0BAA0B,EAC1B,4BAA4B,EAC5B,4BAA4B,EAC5B,4BAA4B,EAC5B,wBAAwB,EACxB,+BAA+B,EAC/B,mBAAmB,EACnB,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,EACxB,0BAA0B,EAC1B,2BAA2B,EAC3B,kCAAkC,EAClC,qBAAqB,EACrB,SAAS,EACV,MAAM,aAAa,CAAC;AAErB,OAAO,EAAc,KAAK,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAE3E,OAAO,EAAY,KAAK,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAGrE,MAAM,MAAM,oBAAoB,GAAG;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,4BAA4B,CAAC,KAAK,IAAI;IAChD,QAAQ,EAAE,OAAO,CAAC,MAAM,KAAK,EAAE,MAAM,CAAC,CAAC;IACvC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,2BAA2B,CAAC,KAAK,IAAI;IAC/C,IAAI,EAAE,SAAS,OAAO,CAAC,MAAM,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;CAC/C,CAAC;AAEF,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;CAqBZ,CAAC;AAEnC,eAAO,MAAM,qBAAqB,GAChC,SAAS,SAAS,oBAAoB,EAAE,KACvC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAe5B,CAAC;AAEF,eAAO,MAAM,8BAA8B,GACzC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,EAEnD,SAAS,SAAS,0BAA0B,CAAC,WAAW,CAAC,EAAE,KAC1D,4BAA4B,CAAC,KAAK,CAAC,GAAG,SASxC,CAAC;AAEF,eAAO,MAAM,6BAA6B,GACxC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,EAEnD,SAAS,SAAS,0BAA0B,CAAC,WAAW,CAAC,EAAE,EAC3D,eAAe,SAAS,MAAM,EAAE,KAC/B,2BAA2B,CAAC,KAAK,CAAC,GAAG,SAcvC,CAAC;AAEF,eAAO,MAAM,mCAAmC,GAC9C,UAAU,SAAS,aAAa,EAChC,MAAM,SAAS,MAAM,EACrB,OAAO,SAAS,MAAM,EACtB,gBAAgB,GAAG,OAAO,EAC1B,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,wBAAwB,CAAC,UAAU,CAAC,EAC5E,IAAI,SAAS,MAAM,GAAG,uBAAuB,CAAC,UAAU,CAAC,EACzD,QAAQ,SAAS,MAAM,GAAG,MAAM,EAChC,SAAS;IACT,KAAK,EAAE,SAAS,CAAC;IACjB,OAAO,EAAE,SAAS,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC;IAClD,QAAQ,CAAC,EAAE,SAAS,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;IACrD,KAAK,EAAE,SAAS,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC;IACjD,OAAO,EAAE,SAAS,0BAA0B,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC;IAChE,YAAY,EAAE,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC/C,KAAK,EAAE,iBAAiB,CAAC;IACzB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,KAAK,EAAE,kCAAkC,CAAC,KAAK,CAAC,CAAC;IACjD,aAAa,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACxE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;IACnC,mBAAmB,CAAC,EAAE,CACpB,KAAK,EAAE,wBAAwB,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,KACrD,UAAU,CAAC,WAAW,CAAC,CAAC;IAC7B,UAAU,CAAC,EAAE,+BAA+B,CAAC,OAAO,CAAC,CAAC;IACtD,EAAE,CAAC,EAAE,sBAAsB,CAAC;CAC7B,KAAG,8BAA8B,CAChC,UAAU,EACV,MAAM,EACN,OAAO,EACP,gBAAgB,EAChB,KAAK,EACL,IAAI,EACJ,GAAG,EACH,QAAQ,CAgCT,CAAC;AAKF,wBAAgB,+BAA+B,CAC7C,UAAU,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EACjC,UAAU,GAAG,UAAU,EACvB,UAAU,GAAG,UAAU,EACvB,eAAe,GAAG,OAAO,EACzB,iBAAiB,GAAG,OAAO,EAC3B,oBAAoB,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EACrC,OAAO,EAAE;IACT,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,iBAAiB,CAAC;IACzB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,MAAM,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,UAAU,CAAC;IACzC,OAAO,EAAE,SAAS,2BAA2B,CAAC,UAAU,CAAC,EAAE,CAAC;IAC5D,OAAO,CAAC,EAAE,SAAS,0BAA0B,CAAC,UAAU,CAAC,EAAE,CAAC;IAC5D,WAAW,EAAE,CACX,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,KACvC,iBAAiB,GAAG,IAAI,CAAC;IAC9B,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE;QACvB,EAAE,EAAE,MAAM,CAAC;KACZ,KAAK,yBAAyB,CAAC,oBAAoB,CAAC,CAAC;IACtD,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,OAAO,CAAC;IAChD,OAAO,CAAC,EAAE,6BAA6B,CAAC,UAAU,CAAC,CAAC;CACrD,GAAG,wBAAwB,CAC1B,UAAU,EACV,UAAU,EACV,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,oBAAoB,CACrB,CAeA;AAED,eAAO,MAAM,iCAAiC,GAC5C,UAAU,SAAS,MAAM,EACzB,UAAU,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EACjC,QAAQ,SAAS,MAAM,GAAG,UAAU,EACpC,QAAQ,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,UAAU,EAC5C,eAAe,GAAG,OAAO,EACzB,aAAa,GAAG,OAAO,EACvB,iBAAiB,GAAG,OAAO,EAC3B,eAAe,GAAG,OAAO,EACzB,oBAAoB,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EACrC,kBAAkB,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EACnC,SAAS;IACT,KAAK,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,KAAK,EAAE,iBAAiB,CAAC;IACzB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,MAAM,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,QAAQ,CAAC;IACrC,OAAO,CAAC,EAAE,SAAS,0BAA0B,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC1D,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,cAAc,CAAC,EAAE,iBAAiB,CAAC;IACnC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,UAAU,CAAC;IAChD,MAAM,CAAC,EAAE,4BAA4B,CACnC,UAAU,EACV,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,eAAe,EACf,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,CACnB,CAAC,QAAQ,CAAC,CAAC;IACZ,WAAW,EAAE,4BAA4B,CACvC,UAAU,EACV,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,eAAe,EACf,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,CACnB,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC,CAAC;IAC7B,iBAAiB,EAAE,4BAA4B,CAC7C,UAAU,EACV,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,eAAe,EACf,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,CACnB,CAAC,YAAY,CAAC,CAAC,aAAa,CAAC,CAAC;IAC/B,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE;QACvB,EAAE,EAAE,MAAM,CAAC;KACZ,KAAK,yBAAyB,CAAC,kBAAkB,CAAC,CAAC;IACpD,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE;QAC7B,EAAE,EAAE,MAAM,CAAC;KACZ,KAAK,yBAAyB,CAAC,oBAAoB,CAAC,CAAC;IACtD,SAAS,CAAC,EAAE,SAAS,4BAA4B,CAAC,UAAU,CAAC,EAAE,CAAC;IAChE,aAAa,CAAC,EAAE,SAAS,2BAA2B,CAAC,QAAQ,CAAC,EAAE,CAAC;IACjE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,EAAE,4BAA4B,CACrC,UAAU,EACV,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,eAAe,EACf,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,CACnB,CAAC,UAAU,CAAC,CAAC;IACd,OAAO,CAAC,EAAE,6BAA6B,CAAC,UAAU,CAAC,CAAC;IACpD,eAAe,CAAC,EAAE,6BAA6B,CAAC,QAAQ,CAAC,CAAC;CAC3D,KAAG,4BAA4B,CAC9B,UAAU,EACV,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,eAAe,EACf,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,CAqDnB,CAAC;AAEF,eAAO,MAAM,wCAAwC,GACnD,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,IAAI,SAAS,MAAM,EACnB,OAAO;IACP,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;CACnB,KAAG,yBAAyB,CAAC;IAC5B,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf,CASA,CAAC;AAEF,eAAO,MAAM,iCAAiC,GAC5C,UAAU,SAAS,aAAa,EAChC,MAAM,SAAS,MAAM,EACrB,OAAO,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EAC9B,kBAAkB,GAAG,OAAO,EAC5B,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,wBAAwB,CAAC,UAAU,CAAC,EAC5E,cAAc,GAAG,oCAAoC,CAAC,MAAM,EAAE,MAAM,CAAC,EACrE,SAAS;IACT,KAAK,EAAE,iBAAiB,CAAC;IACzB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,KAAK,CAAC,EAAE,2BAA2B,CAAC,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;IACrE,aAAa,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC1E,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;IACnC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,MAAM,CAAC;IACpC,MAAM,CAAC,EAAE,4BAA4B,CAAC,KAAK,CAAC,CAAC;IAC7C,KAAK,CAAC,EAAE,2BAA2B,CAAC,KAAK,CAAC,CAAC;IAC3C,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,iBAAiB,CAAC,EAAE,SAAS,CAAC;IAC9B,mBAAmB,CAAC,EAAE,CACpB,KAAK,EAAE,0BAA0B,CAAC,UAAU,EAAE,KAAK,CAAC,KACjD,UAAU,CAAC,WAAW,CAAC,CAAC;CAC9B,KAAG,4BAA4B,CAC9B,UAAU,EACV,MAAM,EACN,OAAO,EACP,kBAAkB,EAClB,KAAK,EACL,cAAc,CA0Df,CAAC"}
@@ -210,4 +210,4 @@ export const buildBackofficeEntityPickerConfig = (options) => {
210
210
  }),
211
211
  };
212
212
  };
213
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWJ1aWxkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbmZpZy9lbnRpdHktYnVpbGRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUEwQjNELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFtQyxNQUFNLGNBQWMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxRQUFRLEVBQWlDLE1BQU0sWUFBWSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQWlCcEQsTUFBTSxDQUFDLE1BQU0saUNBQWlDLEdBQUc7SUFDL0MsT0FBTyxFQUFFLFNBQVM7SUFDbEIsV0FBVyxFQUFFLE1BQU07SUFDbkIsY0FBYyxFQUFFO1FBQ2QsT0FBTyxFQUFFLElBQUk7UUFDYixVQUFVLEVBQUUsV0FBVztRQUN2QixTQUFTLEVBQUUsQ0FBQztRQUNaLE1BQU0sRUFBRTtZQUNOLGVBQWUsRUFBRSxJQUFJO1lBQ3JCLGNBQWMsRUFBRSxJQUFJO1lBQ3BCLFlBQVksRUFBRSxJQUFJO1NBQ25CO0tBQ0Y7SUFDRCxPQUFPLEVBQUU7UUFDUCxPQUFPLEVBQUUsU0FBUztRQUNsQixXQUFXLEVBQUUsTUFBTTtRQUNuQixrQkFBa0IsRUFBRSxDQUFDO1FBQ3JCLFdBQVcsRUFBRSxJQUFJO1FBQ2pCLFFBQVEsRUFBRSxJQUFJO1FBQ2QsZUFBZSxFQUFFLE1BQU07S0FDeEI7Q0FDK0IsQ0FBQztBQUVuQyxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxDQUNuQyxPQUF3QyxFQUNSLEVBQUU7SUFDbEMsSUFBSSxLQUFLLEdBQW1DLElBQUksQ0FBQztJQUNqRCxPQUFPLENBQUMsT0FBTyxDQUFD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S0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQzt3QkFDbkQsSUFBSSxTQUFTLElBQUksSUFBSSxFQUFFLENBQUM7NEJBQ3RCLEtBQUssR0FBRyxTQUFTLENBQUM7d0JBQ3BCLENBQUM7b0JBQ0gsQ0FBQyxDQUFDLENBQUM7Z0JBQ0wsQ0FBQztnQkFDRCxPQUFPO29CQUNMLEtBQUs7b0JBQ0wsS0FBSyxFQUFFLEVBQUU7b0JBQ1QsTUFBTSxFQUFFLElBQUk7aUJBQ2IsQ0FBQztZQUNKLENBQUMsQ0FBQztLQUNMLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEdyYXBoUUxUYWdnZWROb2RlLCBPcGVyYXRpb25UeXBlIH0gZnJvbSAncmVsYXktcnVudGltZSc7XG5cbmltcG9ydCB7IEJBQ0tPRkZJQ0VfTElTVF9ERUZBVUxUUyB9IGZyb20gJy4uL2NvbnN0YW50cy5qcyc7XG5pbXBvcnQgdHlwZSB7XG4gIEJhY2tvZmZpY2VBbGlhc2VkUGlja2VyVmFsdWVSZXNwb25zZSxcbiAgQmFja29mZmljZUNvbHVtblNwZWMsXG4gIEJhY2tvZmZpY2VDb25uZWN0aW9uLFxuICBCYWNrb2ZmaWNlQ29ubmVjdGlvbkxpc3RDb25maWcsXG4gIEJhY2tvZmZpY2VEZXRhaWxDb250ZW50U3BlYyxcbiAgQmFja29mZmljZURldGFpbExheW91dFByb2ZpbGUsXG4gIEJhY2tvZmZpY2VEZXRhaWxQYWdlU3BlYyxcbiAgQmFja29mZmljZURldGFpbFZhcmlhYmxlcyxcbiAgQmFja29mZmljZUVudGl0eUFjdGlvblNwZWMsXG4gIEJhY2tvZmZpY2VFbnRpdHlEZXRhaWxDb25maWcsXG4gIEJhY2tvZmZpY2VFbnRpdHlQaWNrZXJDb25maWcsXG4gIEJhY2tvZmZpY2VFbnRpdHlSZWxhdGlvblNwZWMsXG4gIEJhY2tvZmZpY2VMaXN0UXVlcnlJbnB1dCxcbiAgQmFja29mZmljZUxpc3RSZXNwb25zaXZlUHJvZmlsZSxcbiAgQmFja29mZmljZUxpc3RTdGF0ZSxcbiAgQmFja29mZmljZUxpc3RVaUNvbmZpZyxcbiAgQmFja29mZmljZU9wZXJhdGlvblNvcnQsXG4gIEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZSxcbiAgQmFja29mZmljZVBpY2tlclF1ZXJ5SW5wdXQsXG4gIEJhY2tvZmZpY2VQaWNrZXJWYWx1ZUNvbmZpZyxcbiAgQmFja29mZmljZVJ1bnRpbWVFbnRpdHlDb3VudENvbmZpZyxcbiAgQmFja29mZmljZVJvd0ZsYWdTcGVjLFxuICBJMThuTGFiZWwsXG59IGZyb20gJy4uL3R5cGVzLmpzJztcbmltcG9ydCB7IGJ1aWxkR2VuZXJpY0RldGFpbEhlYWRlciB9IGZyb20gJy4vZGV0YWlsLmpzJztcbmltcG9ydCB7IG1hcEZpbHRlcnMsIHR5cGUgQmFja29mZmljZUxlZ2FjeUZpbHRlclNwZWMgfSBmcm9tICcuL2ZpbHRlcnMuanMnO1xuaW1wb3J0IHsgZ2V0Um93SWQgfSBmcm9tICcuL2xpc3QuanMnO1xuaW1wb3J0IHsgbWFwU29ydHMsIHR5cGUgQmFja29mZmljZUxlZ2FjeVNvcnRTcGVjIH0gZnJvbSAnLi9zb3J0cy5qcyc7XG5pbXBvcnQgeyBzZXRXaGVyZVZhbHVlIH0gZnJvbSAnLi4vZmlsdGVycy93aGVyZS5qcyc7XG5cbmV4cG9ydCB0eXBlIEJhY2tvZmZpY2VXaGVyZUVudHJ5ID0ge1xuICBrZXk6IHN0cmluZztcbiAgdmFsdWU6IHVua25vd247XG4gIHBhdGg/OiByZWFkb25seSBzdHJpbmdbXTtcbn07XG5cbmV4cG9ydCB0eXBlIEJhY2tvZmZpY2VQaWNrZXJTZWFyY2hDb25maWc8V2hlcmU+ID0ge1xuICB3aGVyZUtleTogRXh0cmFjdDxrZXlvZiBXaGVyZSwgc3RyaW5nPjtcbiAgcGF0aD86IHJlYWRvbmx5IHN0cmluZ1tdO1xufTtcblxuZXhwb3J0IHR5cGUgQmFja29mZmljZVBpY2tlclNjb3BlQ29uZmlnPFdoZXJlPiA9IHtcbiAga2V5czogcmVhZG9ubHkgRXh0cmFjdDxrZXlvZiBXaGVyZSwgc3RyaW5nPltdO1xufTtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfQkFDS09GRklDRV9MSVNUX1VJX0NPTkZJRyA9IHtcbiAgZGVuc2l0eTogJ2NvbXBhY3QnLFxuICBkaXNwbGF5TW9kZTogJ2F1dG8nLFxuICBpbmZpbml0ZVNjcm9sbDoge1xuICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgcm9vdE1hcmdpbjogJzcyMHB4IDBweCcsXG4gICAgdGhyZXNob2xkOiAwLFxuICAgIHN0YXR1czoge1xuICAgICAgc2hvd0xvYWRlZENvdW50OiB0cnVlLFxuICAgICAgc2hvd1RvdGFsQ291bnQ6IHRydWUsXG4gICAgICBzaG93RW5kU3RhdGU6IHRydWUsXG4gICAgfSxcbiAgfSxcbiAgdG9vbGJhcjoge1xuICAgIGRlbnNpdHk6ICdjb21wYWN0JyxcbiAgICBkaXNwbGF5TW9kZTogJ2F1dG8nLFxuICAgIG1heFByb21vdGVkRmlsdGVyczogMixcbiAgICBzaG93UmVmcmVzaDogdHJ1ZSxcbiAgICBzaG93U29ydDogdHJ1ZSxcbiAgICBzaG93RmlsdGVyQ2hpcHM6ICdhdXRvJyxcbiAgfSxcbn0gc2F0aXNmaWVzIEJhY2tvZmZpY2VMaXN0VWlDb25maWc7XG5cbmV4cG9ydCBjb25zdCBidWlsZFdoZXJlRnJvbUVudHJpZXMgPSAoXG4gIGVudHJpZXM6IHJlYWRvbmx5IEJhY2tvZmZpY2VXaGVyZUVudHJ5W10sXG4pOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGwgPT4ge1xuICBsZXQgd2hlcmU6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgbnVsbCA9IG51bGw7XG4gIGVudHJpZXMuZm9yRWFjaCgoeyBrZXksIHBhdGgsIHZhbHVlIH0pID0+IHtcbiAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiB2YWx1ZS50cmltKCkgPT09ICcnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG5leHRXaGVyZSA9IHNldFdoZXJlVmFsdWUod2hlcmUsIGtleSwgdmFsdWUsIHBhdGgpO1xuICAgIGlmIChuZXh0V2hlcmUgIT0gbnVsbCkge1xuICAgICAgd2hlcmUgPSBuZXh0V2hlcmU7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIHdoZXJlO1xufTtcblxuZXhwb3J0IGNvbnN0IHJlc29sdmVQaWNrZXJTZWFyY2hGcm9tRmlsdGVycyA9IDxcbiAgV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgRmlsdGVyV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IFdoZXJlLFxuPihcbiAgZmlsdGVyczogcmVhZG9ubHkgQmFja29mZmljZUxlZ2FjeUZpbHRlclNwZWM8RmlsdGVyV2hlcmU+W10sXG4pOiBCYWNrb2ZmaWNlUGlja2VyU2VhcmNoQ29uZmlnPFdoZXJlPiB8IHVuZGVmaW5lZCA9PiB7XG4gIGNvbnN0IG1hdGNoID0gZmlsdGVycy5maW5kKChmaWx0ZXIpID0+IHtcbiAgICByZXR1cm4gZmlsdGVyLmtpbmQgPT09ICd0ZXh0Q29udGFpbnMnO1xuICB9KTtcbiAgaWYgKG1hdGNoID09IG51bGwpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGNvbnN0IHdoZXJlS2V5ID0gKG1hdGNoLndoZXJlS2V5ID8/IG1hdGNoLmlkKSBhcyBFeHRyYWN0PGtleW9mIFdoZXJlLCBzdHJpbmc+O1xuICByZXR1cm4geyB3aGVyZUtleSwgcGF0aDogbWF0Y2gucGF0aCB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHJlc29sdmVQaWNrZXJTY29wZUZyb21GaWx0ZXJzID0gPFxuICBXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICBGaWx0ZXJXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gV2hlcmUsXG4+KFxuICBmaWx0ZXJzOiByZWFkb25seSBCYWNrb2ZmaWNlTGVnYWN5RmlsdGVyU3BlYzxGaWx0ZXJXaGVyZT5bXSxcbiAgc3VwcG9ydGVkS2V5czogcmVhZG9ubHkgc3RyaW5nW10sXG4pOiBCYWNrb2ZmaWNlUGlja2VyU2NvcGVDb25maWc8V2hlcmU+IHwgdW5kZWZpbmVkID0+IHtcbiAgY29uc3Qgc2NvcGVkS2V5cyA9IG5ldyBTZXQ8RXh0cmFjdDxrZXlvZiBXaGVyZSwgc3RyaW5nPj4oKTtcbiAgZmlsdGVycy5mb3JFYWNoKChmaWx0ZXIpID0+IHtcbiAgICBjb25zdCBrZXkgPSBTdHJpbmcoZmlsdGVyLndoZXJlS2V5ID8/IGZpbHRlci5pZCk7XG4gICAgaWYgKHN1cHBvcnRlZEtleXMuaW5jbHVkZXMoa2V5KSkge1xuICAgICAgc2NvcGVkS2V5cy5hZGQoXG4gICAgICAgIChmaWx0ZXIud2hlcmVLZXkgPz8gZmlsdGVyLmlkKSBhcyBFeHRyYWN0PGtleW9mIFdoZXJlLCBzdHJpbmc+LFxuICAgICAgKTtcbiAgICB9XG4gIH0pO1xuICBpZiAoc2NvcGVkS2V5cy5zaXplID09PSAwKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICByZXR1cm4geyBrZXlzOiBBcnJheS5mcm9tKHNjb3BlZEtleXMpIH07XG59O1xuXG5leHBvcnQgY29uc3QgYnVpbGRCYWNrb2ZmaWNlQ29ubmVjdGlvbkxpc3RDb25maWcgPSA8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBSb3dSZWYgZXh0ZW5kcyBvYmplY3QsXG4gIFJvd1ZpZXcgZXh0ZW5kcyBvYmplY3QsXG4gIExpc3RGcmFnbWVudERhdGEgPSB1bmtub3duLFxuICBXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gQmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRPcGVyYXRpb24+LFxuICBTb3J0IGV4dGVuZHMgc3RyaW5nID0gQmFja29mZmljZU9wZXJhdGlvblNvcnQ8VE9wZXJhdGlvbj4sXG4+KG9wdGlvbnM6IHtcbiAgdGl0bGU6IEkxOG5MYWJlbDtcbiAgY29sdW1uczogcmVhZG9ubHkgQmFja29mZmljZUNvbHVtblNwZWM8Um93Vmlldz5bXTtcbiAgcm93RmxhZ3M/OiByZWFkb25seSBCYWNrb2ZmaWNlUm93RmxhZ1NwZWM8Um93Vmlldz5bXTtcbiAgc29ydHM6IHJlYWRvbmx5IEJhY2tvZmZpY2VMZWdhY3lTb3J0U3BlYzxTb3J0PltdO1xuICBmaWx0ZXJzOiByZWFkb25seSBCYWNrb2ZmaWNlTGVnYWN5RmlsdGVyU3BlYzxXaGVyZT5bXTtcbiAgZGVmYXVsdFN0YXRlOiBCYWNrb2ZmaWNlTGlzdFN0YXRlPFdoZXJlLCBTb3J0PjtcbiAgcXVlcnk6IEdyYXBoUUxUYWdnZWROb2RlO1xuICBmcmFnbWVudDogR3JhcGhRTFRhZ2dlZE5vZGU7XG4gIGNvdW50OiBCYWNrb2ZmaWNlUnVudGltZUVudGl0eUNvdW50Q29uZmlnPFdoZXJlPjtcbiAgZ2V0Q29ubmVjdGlvbjogKGRhdGE6IExpc3RGcmFnbWVudERhdGEpID0+IEJhY2tvZmZpY2VDb25uZWN0aW9uPFJvd1JlZj47XG4gIHRvUm93OiAocm93UmVmOiBSb3dSZWYpID0+IFJvd1ZpZXc7XG4gIGJ1aWxkUXVlcnlWYXJpYWJsZXM/OiAoXG4gICAgaW5wdXQ6IEJhY2tvZmZpY2VMaXN0UXVlcnlJbnB1dDxUT3BlcmF0aW9uLCBXaGVyZSwgU29ydD4sXG4gICkgPT4gVE9wZXJhdGlvblsndmFyaWFibGVzJ107XG4gIHJlc3BvbnNpdmU/OiBCYWNrb2ZmaWNlTGlzdFJlc3BvbnNpdmVQcm9maWxlPFJvd1ZpZXc+O1xuICB1aT86IEJhY2tvZmZpY2VMaXN0VWlDb25maWc7XG59KTogQmFja29mZmljZUNvbm5lY3Rpb25MaXN0Q29uZmlnPFxuICBUT3BlcmF0aW9uLFxuICBSb3dSZWYsXG4gIFJvd1ZpZXcsXG4gIExpc3RGcmFnbWVudERhdGEsXG4gIFdoZXJlLFxuICBTb3J0XG4+ID0+IHtcbiAgcmV0dXJuIHtcbiAgICBraW5kOiAnY29ubmVjdGlvbicsXG4gICAgdGl0bGU6IG9wdGlvbnMudGl0bGUsXG4gICAgcXVlcnk6IG9wdGlvbnMucXVlcnksXG4gICAgZnJhZ21lbnQ6IG9wdGlvbnMuZnJhZ21lbnQsXG4gICAgY291bnQ6IG9wdGlvbnMuY291bnQsXG4gICAgZ2V0Q29ubmVjdGlvbjogb3B0aW9ucy5nZXRDb25uZWN0aW9uLFxuICAgIHRvUm93OiBvcHRpb25zLnRvUm93LFxuICAgIGdldFJvd0lkLFxuICAgIGNvbHVtbnM6IG9wdGlvbnMuY29sdW1ucyxcbiAgICByb3dGbGFnczogb3B0aW9ucy5yb3dGbGFncyxcbiAgICBzb3J0czogbWFwU29ydHMob3B0aW9ucy5zb3J0cyksXG4gICAgZmlsdGVyczogbWFwRmlsdGVycyhvcHRpb25zLmZpbHRlcnMpLFxuICAgIGRlZmF1bHRTdGF0ZTogb3B0aW9ucy5kZWZhdWx0U3RhdGUsXG4gICAgYnVpbGRRdWVyeVZhcmlhYmxlczpcbiAgICAgIG9wdGlvbnMuYnVpbGRRdWVyeVZhcmlhYmxlcyA/P1xuICAgICAgKChpbnB1dCkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHdoZXJlOiBpbnB1dC53aGVyZSxcbiAgICAgICAgICBzb3J0OiBpbnB1dC5zb3J0LFxuICAgICAgICAgIGNvdW50OiBpbnB1dC5jb3VudCxcbiAgICAgICAgICBjdXJzb3I6IGlucHV0LmN1cnNvcixcbiAgICAgICAgfTtcbiAgICAgIH0pLFxuICAgIHJlc3BvbnNpdmU6IG9wdGlvbnMucmVzcG9uc2l2ZSA/PyB7XG4gICAgICBtb2RlOiAnYXV0bycsXG4gICAgICBkZW5zaXR5OiAnY29tcGFjdCcsXG4gICAgfSxcbiAgICB1aTogb3B0aW9ucy51aSA/PyBERUZBVUxUX0JBQ0tPRkZJQ0VfTElTVF9VSV9DT05GSUcsXG4gIH07XG59O1xuXG4vKipcbiAqXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEJhY2tvZmZpY2VEZXRhaWxQYWdlQ29uZmlnPFxuICBEZXRhaWxWaWV3IGV4dGVuZHMgeyBpZDogc3RyaW5nIH0sXG4gIERldGFpbERhdGEgPSBEZXRhaWxWaWV3LFxuICBMYXlvdXRWaWV3ID0gRGV0YWlsVmlldyxcbiAgRGV0YWlsUXVlcnlEYXRhID0gdW5rbm93bixcbiAgRGV0YWlsRnJhZ21lbnRLZXkgPSB1bmtub3duLFxuICBEZXRhaWxRdWVyeVZhcmlhYmxlcyA9IHsgaWQ6IHN0cmluZyB9LFxuPihvcHRpb25zOiB7XG4gIGlkOiBzdHJpbmc7XG4gIHBhdGg6IHN0cmluZztcbiAgbGFiZWw6IEkxOG5MYWJlbDtcbiAgcXVlcnk6IEdyYXBoUUxUYWdnZWROb2RlO1xuICBmcmFnbWVudDogR3JhcGhRTFRhZ2dlZE5vZGU7XG4gIHRvVmlldzogKGRhdGE6IERldGFpbERhdGEpID0+IERldGFpbFZpZXc7XG4gIGNvbnRlbnQ6IHJlYWRvbmx5IEJhY2tvZmZpY2VEZXRhaWxDb250ZW50U3BlYzxEZXRhaWxWaWV3PltdO1xuICBhY3Rpb25zPzogcmVhZG9ubHkgQmFja29mZmljZUVudGl0eUFjdGlvblNwZWM8RGV0YWlsVmlldz5bXTtcbiAgcmVzb2x2ZU5vZGU6IChcbiAgICBkYXRhOiBEZXRhaWxRdWVyeURhdGEsXG4gICAgY29udGV4dDogeyBpZDogc3RyaW5nOyBkZXRhaWxJZD86IHN0cmluZyB9LFxuICApID0+IERldGFpbEZyYWdtZW50S2V5IHwgbnVsbDtcbiAgYnVpbGRWYXJpYWJsZXM/OiAoaW5wdXQ6IHtcbiAgICBpZDogc3RyaW5nO1xuICB9KSA9PiBCYWNrb2ZmaWNlRGV0YWlsVmFyaWFibGVzPERldGFpbFF1ZXJ5VmFyaWFibGVzPjtcbiAgaXNWaXNpYmxlPzogKGxheW91dFBhZ2U6IExheW91dFZpZXcpID0+IGJvb2xlYW47XG4gIHByb2ZpbGU/OiBCYWNrb2ZmaWNlRGV0YWlsTGF5b3V0UHJvZmlsZTxEZXRhaWxWaWV3Pjtcbn0pOiBCYWNrb2ZmaWNlRGV0YWlsUGFnZVNwZWM8XG4gIERldGFpbFZpZXcsXG4gIExheW91dFZpZXcsXG4gIERldGFpbERhdGEsXG4gIERldGFpbFF1ZXJ5RGF0YSxcbiAgRGV0YWlsRnJhZ21lbnRLZXksXG4gIERldGFpbFF1ZXJ5VmFyaWFibGVzXG4+IHtcbiAgcmV0dXJuIHtcbiAgICBxdWVyeTogb3B0aW9ucy5xdWVyeSxcbiAgICBmcmFnbWVudDogb3B0aW9ucy5mcmFnbWVudCxcbiAgICByZXNvbHZlTm9kZTogb3B0aW9ucy5yZXNvbHZlTm9kZSxcbiAgICB0b1ZpZXc6IG9wdGlvbnMudG9WaWV3LFxuICAgIGJ1aWxkVmFyaWFibGVzOiBvcHRpb25zLmJ1aWxkVmFyaWFibGVzLFxuICAgIGlkOiBvcHRpb25zLmlkLFxuICAgIHBhdGg6IG9wdGlvbnMucGF0aCxcbiAgICBsYWJlbDogb3B0aW9ucy5sYWJlbCxcbiAgICBjb250ZW50OiBvcHRpb25zLmNvbnRlbnQsXG4gICAgYWN0aW9uczogb3B0aW9ucy5hY3Rpb25zLFxuICAgIGlzVmlzaWJsZTogb3B0aW9ucy5pc1Zpc2libGUsXG4gICAgcHJvZmlsZTogb3B0aW9ucy5wcm9maWxlLFxuICB9O1xufVxuXG5leHBvcnQgY29uc3QgYnVpbGRCYWNrb2ZmaWNlRW50aXR5RGV0YWlsQ29uZmlnID0gPFxuICBMYXlvdXREYXRhIGV4dGVuZHMgb2JqZWN0LFxuICBMYXlvdXRWaWV3IGV4dGVuZHMgeyBpZDogc3RyaW5nIH0sXG4gIE1haW5EYXRhIGV4dGVuZHMgb2JqZWN0ID0gTGF5b3V0RGF0YSxcbiAgTWFpblZpZXcgZXh0ZW5kcyB7IGlkOiBzdHJpbmcgfSA9IExheW91dFZpZXcsXG4gIExheW91dFF1ZXJ5RGF0YSA9IHVua25vd24sXG4gIE1haW5RdWVyeURhdGEgPSB1bmtub3duLFxuICBMYXlvdXRGcmFnbWVudEtleSA9IHVua25vd24sXG4gIE1haW5GcmFnbWVudEtleSA9IHVua25vd24sXG4gIExheW91dFF1ZXJ5VmFyaWFibGVzID0geyBpZDogc3RyaW5nIH0sXG4gIE1haW5RdWVyeVZhcmlhYmxlcyA9IHsgaWQ6IHN0cmluZyB9LFxuPihvcHRpb25zOiB7XG4gIHRpdGxlOiBJMThuTGFiZWw7XG4gIGhlYWRlclRpdGxlPzogSTE4bkxhYmVsO1xuICBoZWFkZXJTdWJ0aXRsZT86IEkxOG5MYWJlbDtcbiAgcXVlcnk6IEdyYXBoUUxUYWdnZWROb2RlO1xuICBmcmFnbWVudDogR3JhcGhRTFRhZ2dlZE5vZGU7XG4gIHRvVmlldzogKGRhdGE6IE1haW5EYXRhKSA9PiBNYWluVmlldztcbiAgYWN0aW9ucz86IHJlYWRvbmx5IEJhY2tvZmZpY2VFbnRpdHlBY3Rpb25TcGVjPE1haW5WaWV3PltdO1xuICBsYXlvdXRRdWVyeT86IEdyYXBoUUxUYWdnZWROb2RlO1xuICBsYXlvdXRGcmFnbWVudD86IEdyYXBoUUxUYWdnZWROb2RlO1xuICBsYXlvdXRUb1ZpZXc/OiAoZGF0YTogTGF5b3V0RGF0YSkgPT4gTGF5b3V0VmlldztcbiAgaGVhZGVyPzogQmFja29mZmljZUVudGl0eURldGFpbENvbmZpZzxcbiAgICBMYXlvdXREYXRhLFxuICAgIExheW91dFZpZXcsXG4gICAgTWFpbkRhdGEsXG4gICAgTWFpblZpZXcsXG4gICAgTWFpbkRhdGEsXG4gICAgTWFpblZpZXcsXG4gICAgTGF5b3V0UXVlcnlEYXRhLFxuICAgIE1haW5RdWVyeURhdGEsXG4gICAgTWFpblF1ZXJ5RGF0YSxcbiAgICBMYXlvdXRGcmFnbWVudEtleSxcbiAgICBNYWluRnJhZ21lbnRLZXksXG4gICAgTWFpbkZyYWdtZW50S2V5LFxuICAgIExheW91dFF1ZXJ5VmFyaWFibGVzLFxuICAgIE1haW5RdWVyeVZhcmlhYmxlcyxcbiAgICBNYWluUXVlcnlWYXJpYWJsZXNcbiAgPlsnaGVhZGVyJ107XG4gIHJlc29sdmVOb2RlOiBCYWNrb2ZmaWNlRW50aXR5RGV0YWlsQ29uZmlnPFxuICAgIExheW91dERhdGEsXG4gICAgTGF5b3V0VmlldyxcbiAgICBNYWluRGF0YSxcbiAgICBNYWluVmlldyxcbiAgICBNYWluRGF0YSxcbiAgICBNYWluVmlldyxcbiAgICBMYXlvdXRRdWVyeURhdGEsXG4gICAgTWFpblF1ZXJ5RGF0YSxcbiAgICBNYWluUXVlcnlEYXRhLFxuICAgIExheW91dEZyYWdtZW50S2V5LFxuICAgIE1haW5GcmFnbWVudEtleSxcbiAgICBNYWluRnJhZ21lbnRLZXksXG4gICAgTGF5b3V0UXVlcnlWYXJpYWJsZXMsXG4gICAgTWFpblF1ZXJ5VmFyaWFibGVzLFxuICAgIE1haW5RdWVyeVZhcmlhYmxlc1xuICA+WydtYWluUGFnZSddWydyZXNvbHZlTm9kZSddO1xuICBsYXlvdXRSZXNvbHZlTm9kZTogQmFja29mZmljZUVudGl0eURldGFpbENvbmZpZzxcbiAgICBMYXlvdXREYXRhLFxuICAgIExheW91dFZpZXcsXG4gICAgTWFpbkRhdGEsXG4gICAgTWFpblZpZXcsXG4gICAgTWFpbkRhdGEsXG4gICAgTWFpblZpZXcsXG4gICAgTGF5b3V0UXVlcnlEYXRhLFxuICAgIE1haW5RdWVyeURhdGEsXG4gICAgTWFpblF1ZXJ5RGF0YSxcbiAgICBMYXlvdXRGcmFnbWVudEtleSxcbiAgICBNYWluRnJhZ21lbnRLZXksXG4gICAgTWFpbkZyYWdtZW50S2V5LFxuICAgIExheW91dFF1ZXJ5VmFyaWFibGVzLFxuICAgIE1haW5RdWVyeVZhcmlhYmxlcyxcbiAgICBNYWluUXVlcnlWYXJpYWJsZXNcbiAgPlsnbGF5b3V0UGFnZSddWydyZXNvbHZlTm9kZSddO1xuICBidWlsZFZhcmlhYmxlcz86IChpbnB1dDoge1xuICAgIGlkOiBzdHJpbmc7XG4gIH0pID0+IEJhY2tvZmZpY2VEZXRhaWxWYXJpYWJsZXM8TWFpblF1ZXJ5VmFyaWFibGVzPjtcbiAgbGF5b3V0QnVpbGRWYXJpYWJsZXM/OiAoaW5wdXQ6IHtcbiAgICBpZDogc3RyaW5nO1xuICB9KSA9PiBCYWNrb2ZmaWNlRGV0YWlsVmFyaWFibGVzPExheW91dFF1ZXJ5VmFyaWFibGVzPjtcbiAgcmVsYXRpb25zPzogcmVhZG9ubHkgQmFja29mZmljZUVudGl0eVJlbGF0aW9uU3BlYzxMYXlvdXRWaWV3PltdO1xuICBkZXRhaWxDb250ZW50PzogcmVhZG9ubHkgQmFja29mZmljZURldGFpbENvbnRlbnRTcGVjPE1haW5WaWV3PltdO1xuICBtYWluUGFnZUlkPzogc3RyaW5nO1xuICBtYWluUGFnZVBhdGg/OiBzdHJpbmc7XG4gIG1haW5QYWdlTGFiZWw/OiBJMThuTGFiZWw7XG4gIHN1YlBhZ2VzPzogQmFja29mZmljZUVudGl0eURldGFpbENvbmZpZzxcbiAgICBMYXlvdXREYXRhLFxuICAgIExheW91dFZpZXcsXG4gICAgTWFpbkRhdGEsXG4gICAgTWFpblZpZXcsXG4gICAgTWFpbkRhdGEsXG4gICAgTWFpblZpZXcsXG4gICAgTGF5b3V0UXVlcnlEYXRhLFxuICAgIE1haW5RdWVyeURhdGEsXG4gICAgTWFpblF1ZXJ5RGF0YSxcbiAgICBMYXlvdXRGcmFnbWVudEtleSxcbiAgICBNYWluRnJhZ21lbnRLZXksXG4gICAgTWFpbkZyYWdtZW50S2V5LFxuICAgIExheW91dFF1ZXJ5VmFyaWFibGVzLFxuICAgIE1haW5RdWVyeVZhcmlhYmxlcyxcbiAgICBNYWluUXVlcnlWYXJpYWJsZXNcbiAgPlsnc3ViUGFnZXMnXTtcbiAgcHJvZmlsZT86IEJhY2tvZmZpY2VEZXRhaWxMYXlvdXRQcm9maWxlPExheW91dFZpZXc+O1xuICBtYWluUGFnZVByb2ZpbGU/OiBCYWNrb2ZmaWNlRGV0YWlsTGF5b3V0UHJvZmlsZTxNYWluVmlldz47XG59KTogQmFja29mZmljZUVudGl0eURldGFpbENvbmZpZzxcbiAgTGF5b3V0RGF0YSxcbiAgTGF5b3V0VmlldyxcbiAgTWFpbkRhdGEsXG4gIE1haW5WaWV3LFxuICBNYWluRGF0YSxcbiAgTWFpblZpZXcsXG4gIExheW91dFF1ZXJ5RGF0YSxcbiAgTWFpblF1ZXJ5RGF0YSxcbiAgTWFpblF1ZXJ5RGF0YSxcbiAgTGF5b3V0RnJhZ21lbnRLZXksXG4gIE1haW5GcmFnbWVudEtleSxcbiAgTWFpbkZyYWdtZW50S2V5LFxuICBMYXlvdXRRdWVyeVZhcmlhYmxlcyxcbiAgTWFpblF1ZXJ5VmFyaWFibGVzLFxuICBNYWluUXVlcnlWYXJpYWJsZXNcbj4gPT4ge1xuICBjb25zdCBkZWZhdWx0SGVhZGVyID0gYnVpbGRHZW5lcmljRGV0YWlsSGVhZGVyKHtcbiAgICB0aXRsZTogb3B0aW9ucy5oZWFkZXJUaXRsZSA/PyBvcHRpb25zLnRpdGxlLFxuICAgIHN1YnRpdGxlOiBvcHRpb25zLmhlYWRlclN1YnRpdGxlLFxuICB9KTtcbiAgY29uc3QgbWFpblBhZ2VJZCA9IG9wdGlvbnMubWFpblBhZ2VJZCA/PyAnb3ZlcnZpZXcnO1xuICBjb25zdCBtYWluUGFnZVBhdGggPSBvcHRpb25zLm1haW5QYWdlUGF0aCA/PyAnb3ZlcnZpZXcnO1xuICBjb25zdCBtYWluUGFnZUxhYmVsID0gb3B0aW9ucy5tYWluUGFnZUxhYmVsID8/IG9wdGlvbnMudGl0bGU7XG4gIGNvbnN0IG1haW5QYWdlID0gYnVpbGRCYWNrb2ZmaWNlRGV0YWlsUGFnZUNvbmZpZzxcbiAgICBNYWluVmlldyxcbiAgICBNYWluRGF0YSxcbiAgICBMYXlvdXRWaWV3LFxuICAgIE1haW5RdWVyeURhdGEsXG4gICAgTWFpbkZyYWdtZW50S2V5LFxuICAgIE1haW5RdWVyeVZhcmlhYmxlc1xuICA+KHtcbiAgICBpZDogbWFpblBhZ2VJZCxcbiAgICBwYXRoOiBtYWluUGFnZVBhdGgsXG4gICAgbGFiZWw6IG1haW5QYWdlTGFiZWwsXG4gICAgcXVlcnk6IG9wdGlvbnMucXVlcnksXG4gICAgZnJhZ21lbnQ6IG9wdGlvbnMuZnJhZ21lbnQsXG4gICAgcmVzb2x2ZU5vZGU6IG9wdGlvbnMucmVzb2x2ZU5vZGUsXG4gICAgdG9WaWV3OiBvcHRpb25zLnRvVmlldyxcbiAgICBidWlsZFZhcmlhYmxlczogb3B0aW9ucy5idWlsZFZhcmlhYmxlcyxcbiAgICBjb250ZW50OiBvcHRpb25zLmRldGFpbENvbnRlbnQgPz8gW10sXG4gICAgYWN0aW9uczogb3B0aW9ucy5hY3Rpb25zLFxuICAgIHByb2ZpbGU6IG9wdGlvbnMubWFpblBhZ2VQcm9maWxlLFxuICB9KTtcblxuICByZXR1cm4ge1xuICAgIHRpdGxlOiBvcHRpb25zLnRpdGxlLFxuICAgIGhlYWRlcjogb3B0aW9ucy5oZWFkZXIgPz8gZGVmYXVsdEhlYWRlcixcbiAgICByZWxhdGlvbnM6IG9wdGlvbnMucmVsYXRpb25zLFxuICAgIGxheW91dFBhZ2U6IHtcbiAgICAgIHF1ZXJ5OiBvcHRpb25zLmxheW91dFF1ZXJ5ID8/IG9wdGlvbnMucXVlcnksXG4gICAgICBmcmFnbWVudDogb3B0aW9ucy5sYXlvdXRGcmFnbWVudCA/PyBvcHRpb25zLmZyYWdtZW50LFxuICAgICAgcmVzb2x2ZU5vZGU6IG9wdGlvbnMubGF5b3V0UmVzb2x2ZU5vZGUsXG4gICAgICB0b1ZpZXc6XG4gICAgICAgIG9wdGlvbnMubGF5b3V0VG9WaWV3ID8/XG4gICAgICAgIChvcHRpb25zLnRvVmlldyBhcyB1bmtub3duIGFzIChkYXRhOiBMYXlvdXREYXRhKSA9PiBMYXlvdXRWaWV3KSxcbiAgICAgIGJ1aWxkVmFyaWFibGVzOlxuICAgICAgICBvcHRpb25zLmxheW91dEJ1aWxkVmFyaWFibGVzID8/XG4gICAgICAgIChvcHRpb25zLmJ1aWxkVmFyaWFibGVzIGFzIHVua25vd24gYXNcbiAgICAgICAgICB8ICgoaW5wdXQ6IHtcbiAgICAgICAgICAgICAgaWQ6IHN0cmluZztcbiAgICAgICAgICAgIH0pID0+IEJhY2tvZmZpY2VEZXRhaWxWYXJpYWJsZXM8TGF5b3V0UXVlcnlWYXJpYWJsZXM+KVxuICAgICAgICAgIHwgdW5kZWZpbmVkKSxcbiAgICB9LFxuICAgIG1haW5QYWdlLFxuICAgIHN1YlBhZ2VzOiBvcHRpb25zLnN1YlBhZ2VzLFxuICAgIHByb2ZpbGU6IG9wdGlvbnMucHJvZmlsZSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBidWlsZEJhY2tvZmZpY2VDb25uZWN0aW9uRGV0YWlsVmFyaWFibGVzID0gPFxuICBXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICBTb3J0IGV4dGVuZHMgc3RyaW5nLFxuPihpbnB1dDoge1xuICBkZXRhaWxJZDogc3RyaW5nO1xuICB3aGVyZTogV2hlcmUgfCBudWxsO1xuICBzb3J0OiBTb3J0IHwgbnVsbDtcbn0pOiBCYWNrb2ZmaWNlRGV0YWlsVmFyaWFibGVzPHtcbiAgd2hlcmU6IFdoZXJlIHwgbnVsbDtcbiAgc29ydDogU29ydCB8IG51bGw7XG4gIGNvdW50OiBudW1iZXI7XG59PiA9PiB7XG4gIHJldHVybiB7XG4gICAgZGV0YWlsSWQ6IGlucHV0LmRldGFpbElkLFxuICAgIHZhcmlhYmxlczoge1xuICAgICAgd2hlcmU6IGlucHV0LndoZXJlLFxuICAgICAgc29ydDogaW5wdXQuc29ydCxcbiAgICAgIGNvdW50OiBCQUNLT0ZGSUNFX0xJU1RfREVGQVVMVFMucGFnZVNpemUsXG4gICAgfSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBidWlsZEJhY2tvZmZpY2VFbnRpdHlQaWNrZXJDb25maWcgPSA8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBSb3dSZWYgZXh0ZW5kcyBvYmplY3QsXG4gIFJvd1ZpZXcgZXh0ZW5kcyB7IGlkOiBzdHJpbmcgfSxcbiAgUGlja2VyRnJhZ21lbnREYXRhID0gdW5rbm93bixcbiAgV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUT3BlcmF0aW9uPixcbiAgVmFsdWVRdWVyeURhdGEgPSBCYWNrb2ZmaWNlQWxpYXNlZFBpY2tlclZhbHVlUmVzcG9uc2U8c3RyaW5nLCBSb3dSZWY+LFxuPihvcHRpb25zOiB7XG4gIHF1ZXJ5OiBHcmFwaFFMVGFnZ2VkTm9kZTtcbiAgZnJhZ21lbnQ6IEdyYXBoUUxUYWdnZWROb2RlO1xuICB2YWx1ZT86IEJhY2tvZmZpY2VQaWNrZXJWYWx1ZUNvbmZpZzxSb3dSZWYsIFJvd1ZpZXcsIFZhbHVlUXVlcnlEYXRhPjtcbiAgZ2V0Q29ubmVjdGlvbjogKGRhdGE6IFBpY2tlckZyYWdtZW50RGF0YSkgPT4gQmFja29mZmljZUNvbm5lY3Rpb248Um93UmVmPjtcbiAgdG9Sb3c6IChyb3dSZWY6IFJvd1JlZikgPT4gUm93VmlldztcbiAgZ2V0Um93SWQ/OiAocm93OiBSb3dWaWV3KSA9PiBzdHJpbmc7XG4gIHNlYXJjaD86IEJhY2tvZmZpY2VQaWNrZXJTZWFyY2hDb25maWc8V2hlcmU+O1xuICBzY29wZT86IEJhY2tvZmZpY2VQaWNrZXJTY29wZUNvbmZpZzxXaGVyZT47XG4gIHNlYXJjaEVuYWJsZWQ/OiBib29sZWFuO1xuICBzZWFyY2hSZXF1aXJlZD86IGJvb2xlYW47XG4gIHNlYXJjaFBsYWNlaG9sZGVyPzogSTE4bkxhYmVsO1xuICBidWlsZFF1ZXJ5VmFyaWFibGVzPzogKFxuICAgIGlucHV0OiBCYWNrb2ZmaWNlUGlja2VyUXVlcnlJbnB1dDxUT3BlcmF0aW9uLCBXaGVyZT4sXG4gICkgPT4gVE9wZXJhdGlvblsndmFyaWFibGVzJ107XG59KTogQmFja29mZmljZUVudGl0eVBpY2tlckNvbmZpZzxcbiAgVE9wZXJhdGlvbixcbiAgUm93UmVmLFxuICBSb3dWaWV3LFxuICBQaWNrZXJGcmFnbWVudERhdGEsXG4gIFdoZXJlLFxuICBWYWx1ZVF1ZXJ5RGF0YVxuPiA9PiB7XG4gIGNvbnN0IHNlYXJjaENvbmZpZyA9IG9wdGlvbnMuc2VhcmNoO1xuICBjb25zdCBzY29wZUtleXMgPSBvcHRpb25zLnNjb3BlPy5rZXlzID8/IFtdO1xuICBjb25zdCBzZWFyY2hSZXF1aXJlZCA9IG9wdGlvbnMuc2VhcmNoUmVxdWlyZWQgPz8gZmFsc2U7XG4gIGNvbnN0IHNlYXJjaEVuYWJsZWQgPVxuICAgIG9wdGlvbnMuc2VhcmNoRW5hYmxlZCA/PyAoc2VhcmNoQ29uZmlnICE9IG51bGwgfHwgc2VhcmNoUmVxdWlyZWQpO1xuICBjb25zdCBnZXRSZXNvbHZlZFJvd0lkID1cbiAgICBvcHRpb25zLmdldFJvd0lkID8/XG4gICAgKChyb3c6IFJvd1ZpZXcpID0+IHtcbiAgICAgIHJldHVybiByb3cuaWQ7XG4gICAgfSk7XG5cbiAgcmV0dXJuIHtcbiAgICBxdWVyeTogb3B0aW9ucy5xdWVyeSxcbiAgICBmcmFnbWVudDogb3B0aW9ucy5mcmFnbWVudCxcbiAgICB2YWx1ZTogb3B0aW9ucy52YWx1ZSxcbiAgICBnZXRDb25uZWN0aW9uOiBvcHRpb25zLmdldENvbm5lY3Rpb24sXG4gICAgdG9Sb3c6IG9wdGlvbnMudG9Sb3csXG4gICAgZ2V0Um93SWQ6IGdldFJlc29sdmVkUm93SWQsXG4gICAgc2VhcmNoRW5hYmxlZCxcbiAgICBzZWFyY2hSZXF1aXJlZCxcbiAgICBzZWFyY2hQbGFjZWhvbGRlcjogb3B0aW9ucy5zZWFyY2hQbGFjZWhvbGRlcixcbiAgICBidWlsZFF1ZXJ5VmFyaWFibGVzOlxuICAgICAgb3B0aW9ucy5idWlsZFF1ZXJ5VmFyaWFibGVzID8/XG4gICAgICAoKGlucHV0KSA9PiB7XG4gICAgICAgIGNvbnN0IHRyaW1tZWQgPSBpbnB1dC5zZWFyY2gudHJpbSgpO1xuICAgICAgICBsZXQgd2hlcmU6IFdoZXJlIHwgbnVsbCA9IG51bGw7XG4gICAgICAgIGlmIChzZWFyY2hDb25maWcgIT0gbnVsbCAmJiB0cmltbWVkICE9PSAnJykge1xuICAgICAgICAgIGNvbnN0IG5leHRXaGVyZSA9IHNldFdoZXJlVmFsdWUoXG4gICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgc2VhcmNoQ29uZmlnLndoZXJlS2V5LFxuICAgICAgICAgICAgdHJpbW1lZCxcbiAgICAgICAgICAgIHNlYXJjaENvbmZpZy5wYXRoLFxuICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKG5leHRXaGVyZSAhPSBudWxsKSB7XG4gICAgICAgICAgICB3aGVyZSA9IG5leHRXaGVyZSBhcyBXaGVyZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlucHV0LnNjb3BlICE9IG51bGwgJiYgc2NvcGVLZXlzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBzY29wZUtleXMuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGlucHV0LnNjb3BlPy5bU3RyaW5nKGtleSldO1xuICAgICAgICAgICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbmV4dFdoZXJlID0gc2V0V2hlcmVWYWx1ZSh3aGVyZSwga2V5LCB2YWx1ZSk7XG4gICAgICAgICAgICBpZiAobmV4dFdoZXJlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgd2hlcmUgPSBuZXh0V2hlcmU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB3aGVyZSxcbiAgICAgICAgICBjb3VudDogMjAsXG4gICAgICAgICAgY3Vyc29yOiBudWxsLFxuICAgICAgICB9O1xuICAgICAgfSksXG4gIH07XG59O1xuIl19
213
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWJ1aWxkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbmZpZy9lbnRpdHktYnVpbGRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUEwQjNELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFtQyxNQUFNLGNBQWMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxRQUFRLEVBQWlDLE1BQU0sWUFBWSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQWlCcEQsTUFBTSxDQUFDLE1BQU0saUNBQWlDLEdBQUc7SUFDL0MsT0FBTyxFQUFFLFNBQVM7SUFDbEIsV0FBVyxFQUFFLE1BQU07SUFDbkIsY0FBYyxFQUFFO1FBQ2QsT0FBTyxFQUFFLElBQUk7UUFDYixVQUFVLEVBQUUsV0FBVztRQUN2QixTQUFTLEVBQUUsQ0FBQztRQUNaLE1BQU0sRUFBRTtZQUNOLGVBQWUsRUFBRSxJQUFJO1lBQ3JCLGNBQWMsRUFBRSxJQUFJO1lBQ3BCLFlBQVksRUFBRSxJQUFJO1NBQ25CO0tBQ0Y7SUFDRCxPQUFPLEVBQUU7UUFDUCxPQUFPLEVBQUUsU0FBUztRQUNsQixXQUFXLEVBQUUsTUFBTTtRQUNuQixrQkFBa0IsRUFBRSxDQUFDO1FBQ3JCLFdBQVcsRUFBRSxJQUFJO1FBQ2pCLFFBQVEsRUFBRSxJQUFJO1FBQ2QsZUFBZSxFQUFFLE1BQU07S0FDeEI7Q0FDK0IsQ0FBQztBQUVuQyxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxDQUNuQyxPQUF3QyxFQUNSLEVBQUU7SUFDbEMsSUFBSSxLQUFLLEdBQW1DLElBQUksQ0FBQztJQUNqRCxPQUFPLENBQUMsT0FBTyxDQUFD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S0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQzt3QkFDbkQsSUFBSSxTQUFTLElBQUksSUFBSSxFQUFFLENBQUM7NEJBQ3RCLEtBQUssR0FBRyxTQUFTLENBQUM7d0JBQ3BCLENBQUM7b0JBQ0gsQ0FBQyxDQUFDLENBQUM7Z0JBQ0wsQ0FBQztnQkFDRCxPQUFPO29CQUNMLEtBQUs7b0JBQ0wsS0FBSyxFQUFFLEVBQUU7b0JBQ1QsTUFBTSxFQUFFLElBQUk7aUJBQ2IsQ0FBQztZQUNKLENBQUMsQ0FBQztLQUNMLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEdyYXBoUUxUYWdnZWROb2RlLCBPcGVyYXRpb25UeXBlIH0gZnJvbSAncmVsYXktcnVudGltZSc7XG5cbmltcG9ydCB7IEJBQ0tPRkZJQ0VfTElTVF9ERUZBVUxUUyB9IGZyb20gJy4uL2NvbnN0YW50cy5qcyc7XG5pbXBvcnQgdHlwZSB7XG4gIEJhY2tvZmZpY2VBbGlhc2VkUGlja2VyVmFsdWVSZXNwb25zZSxcbiAgQmFja29mZmljZUNvbHVtblNwZWMsXG4gIEJhY2tvZmZpY2VDb25uZWN0aW9uLFxuICBCYWNrb2ZmaWNlQ29ubmVjdGlvbkxpc3RDb25maWcsXG4gIEJhY2tvZmZpY2VEZXRhaWxDb250ZW50U3BlYyxcbiAgQmFja29mZmljZURldGFpbExheW91dFByb2ZpbGUsXG4gIEJhY2tvZmZpY2VEZXRhaWxQYWdlU3BlYyxcbiAgQmFja29mZmljZURldGFpbFZhcmlhYmxlcyxcbiAgQmFja29mZmljZUVudGl0eUFjdGlvblNwZWMsXG4gIEJhY2tvZmZpY2VFbnRpdHlEZXRhaWxDb25maWcsXG4gIEJhY2tvZmZpY2VFbnRpdHlQaWNrZXJDb25maWcsXG4gIEJhY2tvZmZpY2VFbnRpdHlSZWxhdGlvblNwZWMsXG4gIEJhY2tvZmZpY2VMaXN0UXVlcnlJbnB1dCxcbiAgQmFja29mZmljZUxpc3RSZXNwb25zaXZlUHJvZmlsZSxcbiAgQmFja29mZmljZUxpc3RTdGF0ZSxcbiAgQmFja29mZmljZUxpc3RVaUNvbmZpZyxcbiAgQmFja29mZmljZU9wZXJhdGlvblNvcnQsXG4gIEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZSxcbiAgQmFja29mZmljZVBpY2tlclF1ZXJ5SW5wdXQsXG4gIEJhY2tvZmZpY2VQaWNrZXJWYWx1ZUNvbmZpZyxcbiAgQmFja29mZmljZVJ1bnRpbWVFbnRpdHlDb3VudENvbmZpZyxcbiAgQmFja29mZmljZVJvd0ZsYWdTcGVjLFxuICBJMThuTGFiZWwsXG59IGZyb20gJy4uL3R5cGVzLmpzJztcbmltcG9ydCB7IGJ1aWxkR2VuZXJpY0RldGFpbEhlYWRlciB9IGZyb20gJy4vZGV0YWlsLmpzJztcbmltcG9ydCB7IG1hcEZpbHRlcnMsIHR5cGUgQmFja29mZmljZUxlZ2FjeUZpbHRlclNwZWMgfSBmcm9tICcuL2ZpbHRlcnMuanMnO1xuaW1wb3J0IHsgZ2V0Um93SWQgfSBmcm9tICcuL2xpc3QuanMnO1xuaW1wb3J0IHsgbWFwU29ydHMsIHR5cGUgQmFja29mZmljZUxlZ2FjeVNvcnRTcGVjIH0gZnJvbSAnLi9zb3J0cy5qcyc7XG5pbXBvcnQgeyBzZXRXaGVyZVZhbHVlIH0gZnJvbSAnLi4vZmlsdGVycy93aGVyZS5qcyc7XG5cbmV4cG9ydCB0eXBlIEJhY2tvZmZpY2VXaGVyZUVudHJ5ID0ge1xuICBrZXk6IHN0cmluZztcbiAgdmFsdWU6IHVua25vd247XG4gIHBhdGg/OiByZWFkb25seSBzdHJpbmdbXTtcbn07XG5cbmV4cG9ydCB0eXBlIEJhY2tvZmZpY2VQaWNrZXJTZWFyY2hDb25maWc8V2hlcmU+ID0ge1xuICB3aGVyZUtleTogRXh0cmFjdDxrZXlvZiBXaGVyZSwgc3RyaW5nPjtcbiAgcGF0aD86IHJlYWRvbmx5IHN0cmluZ1tdO1xufTtcblxuZXhwb3J0IHR5cGUgQmFja29mZmljZVBpY2tlclNjb3BlQ29uZmlnPFdoZXJlPiA9IHtcbiAga2V5czogcmVhZG9ubHkgRXh0cmFjdDxrZXlvZiBXaGVyZSwgc3RyaW5nPltdO1xufTtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfQkFDS09GRklDRV9MSVNUX1VJX0NPTkZJRyA9IHtcbiAgZGVuc2l0eTogJ2NvbXBhY3QnLFxuICBkaXNwbGF5TW9kZTogJ2F1dG8nLFxuICBpbmZpbml0ZVNjcm9sbDoge1xuICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgcm9vdE1hcmdpbjogJzcyMHB4IDBweCcsXG4gICAgdGhyZXNob2xkOiAwLFxuICAgIHN0YXR1czoge1xuICAgICAgc2hvd0xvYWRlZENvdW50OiB0cnVlLFxuICAgICAgc2hvd1RvdGFsQ291bnQ6IHRydWUsXG4gICAgICBzaG93RW5kU3RhdGU6IHRydWUsXG4gICAgfSxcbiAgfSxcbiAgdG9vbGJhcjoge1xuICAgIGRlbnNpdHk6ICdjb21wYWN0JyxcbiAgICBkaXNwbGF5TW9kZTogJ2F1dG8nLFxuICAgIG1heFByb21vdGVkRmlsdGVyczogMixcbiAgICBzaG93UmVmcmVzaDogdHJ1ZSxcbiAgICBzaG93U29ydDogdHJ1ZSxcbiAgICBzaG93RmlsdGVyQ2hpcHM6ICdhdXRvJyxcbiAgfSxcbn0gc2F0aXNmaWVzIEJhY2tvZmZpY2VMaXN0VWlDb25maWc7XG5cbmV4cG9ydCBjb25zdCBidWlsZFdoZXJlRnJvbUVudHJpZXMgPSAoXG4gIGVudHJpZXM6IHJlYWRvbmx5IEJhY2tvZmZpY2VXaGVyZUVudHJ5W10sXG4pOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGwgPT4ge1xuICBsZXQgd2hlcmU6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgbnVsbCA9IG51bGw7XG4gIGVudHJpZXMuZm9yRWFjaCgoeyBrZXksIHBhdGgsIHZhbHVlIH0pID0+IHtcbiAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiB2YWx1ZS50cmltKCkgPT09ICcnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG5leHRXaGVyZSA9IHNldFdoZXJlVmFsdWUod2hlcmUsIGtleSwgdmFsdWUsIHBhdGgpO1xuICAgIGlmIChuZXh0V2hlcmUgIT0gbnVsbCkge1xuICAgICAgd2hlcmUgPSBuZXh0V2hlcmU7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIHdoZXJlO1xufTtcblxuZXhwb3J0IGNvbnN0IHJlc29sdmVQaWNrZXJTZWFyY2hGcm9tRmlsdGVycyA9IDxcbiAgV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgRmlsdGVyV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IFdoZXJlLFxuPihcbiAgZmlsdGVyczogcmVhZG9ubHkgQmFja29mZmljZUxlZ2FjeUZpbHRlclNwZWM8RmlsdGVyV2hlcmU+W10sXG4pOiBCYWNrb2ZmaWNlUGlja2VyU2VhcmNoQ29uZmlnPFdoZXJlPiB8IHVuZGVmaW5lZCA9PiB7XG4gIGNvbnN0IG1hdGNoID0gZmlsdGVycy5maW5kKChmaWx0ZXIpID0+IHtcbiAgICByZXR1cm4gZmlsdGVyLmtpbmQgPT09ICd0ZXh0Q29udGFpbnMnO1xuICB9KTtcbiAgaWYgKG1hdGNoID09IG51bGwpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGNvbnN0IHdoZXJlS2V5ID0gKG1hdGNoLndoZXJlS2V5ID8/IG1hdGNoLmlkKSBhcyBFeHRyYWN0PGtleW9mIFdoZXJlLCBzdHJpbmc+O1xuICByZXR1cm4geyB3aGVyZUtleSwgcGF0aDogbWF0Y2gucGF0aCB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHJlc29sdmVQaWNrZXJTY29wZUZyb21GaWx0ZXJzID0gPFxuICBXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICBGaWx0ZXJXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gV2hlcmUsXG4+KFxuICBmaWx0ZXJzOiByZWFkb25seSBCYWNrb2ZmaWNlTGVnYWN5RmlsdGVyU3BlYzxGaWx0ZXJXaGVyZT5bXSxcbiAgc3VwcG9ydGVkS2V5czogcmVhZG9ubHkgc3RyaW5nW10sXG4pOiBCYWNrb2ZmaWNlUGlja2VyU2NvcGVDb25maWc8V2hlcmU+IHwgdW5kZWZpbmVkID0+IHtcbiAgY29uc3Qgc2NvcGVkS2V5cyA9IG5ldyBTZXQ8RXh0cmFjdDxrZXlvZiBXaGVyZSwgc3RyaW5nPj4oKTtcbiAgZmlsdGVycy5mb3JFYWNoKChmaWx0ZXIpID0+IHtcbiAgICBjb25zdCBrZXkgPSBTdHJpbmcoZmlsdGVyLndoZXJlS2V5ID8/IGZpbHRlci5pZCk7XG4gICAgaWYgKHN1cHBvcnRlZEtleXMuaW5jbHVkZXMoa2V5KSkge1xuICAgICAgc2NvcGVkS2V5cy5hZGQoXG4gICAgICAgIChmaWx0ZXIud2hlcmVLZXkgPz8gZmlsdGVyLmlkKSBhcyBFeHRyYWN0PGtleW9mIFdoZXJlLCBzdHJpbmc+LFxuICAgICAgKTtcbiAgICB9XG4gIH0pO1xuICBpZiAoc2NvcGVkS2V5cy5zaXplID09PSAwKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICByZXR1cm4geyBrZXlzOiBBcnJheS5mcm9tKHNjb3BlZEtleXMpIH07XG59O1xuXG5leHBvcnQgY29uc3QgYnVpbGRCYWNrb2ZmaWNlQ29ubmVjdGlvbkxpc3RDb25maWcgPSA8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBSb3dSZWYgZXh0ZW5kcyBvYmplY3QsXG4gIFJvd1ZpZXcgZXh0ZW5kcyBvYmplY3QsXG4gIExpc3RGcmFnbWVudERhdGEgPSB1bmtub3duLFxuICBXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gQmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRPcGVyYXRpb24+LFxuICBTb3J0IGV4dGVuZHMgc3RyaW5nID0gQmFja29mZmljZU9wZXJhdGlvblNvcnQ8VE9wZXJhdGlvbj4sXG4gIEVudGl0eUlkIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nLFxuPihvcHRpb25zOiB7XG4gIHRpdGxlOiBJMThuTGFiZWw7XG4gIGNvbHVtbnM6IHJlYWRvbmx5IEJhY2tvZmZpY2VDb2x1bW5TcGVjPFJvd1ZpZXc+W107XG4gIHJvd0ZsYWdzPzogcmVhZG9ubHkgQmFja29mZmljZVJvd0ZsYWdTcGVjPFJvd1ZpZXc+W107XG4gIHNvcnRzOiByZWFkb25seSBCYWNrb2ZmaWNlTGVnYWN5U29ydFNwZWM8U29ydD5bXTtcbiAgZmlsdGVyczogcmVhZG9ubHkgQmFja29mZmljZUxlZ2FjeUZpbHRlclNwZWM8V2hlcmUsIEVudGl0eUlkPltdO1xuICBkZWZhdWx0U3RhdGU6IEJhY2tvZmZpY2VMaXN0U3RhdGU8V2hlcmUsIFNvcnQ+O1xuICBxdWVyeTogR3JhcGhRTFRhZ2dlZE5vZGU7XG4gIGZyYWdtZW50OiBHcmFwaFFMVGFnZ2VkTm9kZTtcbiAgY291bnQ6IEJhY2tvZmZpY2VSdW50aW1lRW50aXR5Q291bnRDb25maWc8V2hlcmU+O1xuICBnZXRDb25uZWN0aW9uOiAoZGF0YTogTGlzdEZyYWdtZW50RGF0YSkgPT4gQmFja29mZmljZUNvbm5lY3Rpb248Um93UmVmPjtcbiAgdG9Sb3c6IChyb3dSZWY6IFJvd1JlZikgPT4gUm93VmlldztcbiAgYnVpbGRRdWVyeVZhcmlhYmxlcz86IChcbiAgICBpbnB1dDogQmFja29mZmljZUxpc3RRdWVyeUlucHV0PFRPcGVyYXRpb24sIFdoZXJlLCBTb3J0PixcbiAgKSA9PiBUT3BlcmF0aW9uWyd2YXJpYWJsZXMnXTtcbiAgcmVzcG9uc2l2ZT86IEJhY2tvZmZpY2VMaXN0UmVzcG9uc2l2ZVByb2ZpbGU8Um93Vmlldz47XG4gIHVpPzogQmFja29mZmljZUxpc3RVaUNvbmZpZztcbn0pOiBCYWNrb2ZmaWNlQ29ubmVjdGlvbkxpc3RDb25maWc8XG4gIFRPcGVyYXRpb24sXG4gIFJvd1JlZixcbiAgUm93VmlldyxcbiAgTGlzdEZyYWdtZW50RGF0YSxcbiAgV2hlcmUsXG4gIFNvcnQsXG4gIGFueSxcbiAgRW50aXR5SWRcbj4gPT4ge1xuICByZXR1cm4ge1xuICAgIGtpbmQ6ICdjb25uZWN0aW9uJyxcbiAgICB0aXRsZTogb3B0aW9ucy50aXRsZSxcbiAgICBxdWVyeTogb3B0aW9ucy5xdWVyeSxcbiAgICBmcmFnbWVudDogb3B0aW9ucy5mcmFnbWVudCxcbiAgICBjb3VudDogb3B0aW9ucy5jb3VudCxcbiAgICBnZXRDb25uZWN0aW9uOiBvcHRpb25zLmdldENvbm5lY3Rpb24sXG4gICAgdG9Sb3c6IG9wdGlvbnMudG9Sb3csXG4gICAgZ2V0Um93SWQsXG4gICAgY29sdW1uczogb3B0aW9ucy5jb2x1bW5zLFxuICAgIHJvd0ZsYWdzOiBvcHRpb25zLnJvd0ZsYWdzLFxuICAgIHNvcnRzOiBtYXBTb3J0cyhvcHRpb25zLnNvcnRzKSxcbiAgICBmaWx0ZXJzOiBtYXBGaWx0ZXJzKG9wdGlvbnMuZmlsdGVycyksXG4gICAgZGVmYXVsdFN0YXRlOiBvcHRpb25zLmRlZmF1bHRTdGF0ZSxcbiAgICBidWlsZFF1ZXJ5VmFyaWFibGVzOlxuICAgICAgb3B0aW9ucy5idWlsZFF1ZXJ5VmFyaWFibGVzID8/XG4gICAgICAoKGlucHV0KSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgd2hlcmU6IGlucHV0LndoZXJlLFxuICAgICAgICAgIHNvcnQ6IGlucHV0LnNvcnQsXG4gICAgICAgICAgY291bnQ6IGlucHV0LmNvdW50LFxuICAgICAgICAgIGN1cnNvcjogaW5wdXQuY3Vyc29yLFxuICAgICAgICB9O1xuICAgICAgfSksXG4gICAgcmVzcG9uc2l2ZTogb3B0aW9ucy5yZXNwb25zaXZlID8/IHtcbiAgICAgIG1vZGU6ICdhdXRvJyxcbiAgICAgIGRlbnNpdHk6ICdjb21wYWN0JyxcbiAgICB9LFxuICAgIHVpOiBvcHRpb25zLnVpID8/IERFRkFVTFRfQkFDS09GRklDRV9MSVNUX1VJX0NPTkZJRyxcbiAgfTtcbn07XG5cbi8qKlxuICpcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkQmFja29mZmljZURldGFpbFBhZ2VDb25maWc8XG4gIERldGFpbFZpZXcgZXh0ZW5kcyB7IGlkOiBzdHJpbmcgfSxcbiAgRGV0YWlsRGF0YSA9IERldGFpbFZpZXcsXG4gIExheW91dFZpZXcgPSBEZXRhaWxWaWV3LFxuICBEZXRhaWxRdWVyeURhdGEgPSB1bmtub3duLFxuICBEZXRhaWxGcmFnbWVudEtleSA9IHVua25vd24sXG4gIERldGFpbFF1ZXJ5VmFyaWFibGVzID0geyBpZDogc3RyaW5nIH0sXG4+KG9wdGlvbnM6IHtcbiAgaWQ6IHN0cmluZztcbiAgcGF0aDogc3RyaW5nO1xuICBsYWJlbDogSTE4bkxhYmVsO1xuICBxdWVyeTogR3JhcGhRTFRhZ2dlZE5vZGU7XG4gIGZyYWdtZW50OiBHcmFwaFFMVGFnZ2VkTm9kZTtcbiAgdG9WaWV3OiAoZGF0YTogRGV0YWlsRGF0YSkgPT4gRGV0YWlsVmlldztcbiAgY29udGVudDogcmVhZG9ubHkgQmFja29mZmljZURldGFpbENvbnRlbnRTcGVjPERldGFpbFZpZXc+W107XG4gIGFjdGlvbnM/OiByZWFkb25seSBCYWNrb2ZmaWNlRW50aXR5QWN0aW9uU3BlYzxEZXRhaWxWaWV3PltdO1xuICByZXNvbHZlTm9kZTogKFxuICAgIGRhdGE6IERldGFpbFF1ZXJ5RGF0YSxcbiAgICBjb250ZXh0OiB7IGlkOiBzdHJpbmc7IGRldGFpbElkPzogc3RyaW5nIH0sXG4gICkgPT4gRGV0YWlsRnJhZ21lbnRLZXkgfCBudWxsO1xuICBidWlsZFZhcmlhYmxlcz86IChpbnB1dDoge1xuICAgIGlkOiBzdHJpbmc7XG4gIH0pID0+IEJhY2tvZmZpY2VEZXRhaWxWYXJpYWJsZXM8RGV0YWlsUXVlcnlWYXJpYWJsZXM+O1xuICBpc1Zpc2libGU/OiAobGF5b3V0UGFnZTogTGF5b3V0VmlldykgPT4gYm9vbGVhbjtcbiAgcHJvZmlsZT86IEJhY2tvZmZpY2VEZXRhaWxMYXlvdXRQcm9maWxlPERldGFpbFZpZXc+O1xufSk6IEJhY2tvZmZpY2VEZXRhaWxQYWdlU3BlYzxcbiAgRGV0YWlsVmlldyxcbiAgTGF5b3V0VmlldyxcbiAgRGV0YWlsRGF0YSxcbiAgRGV0YWlsUXVlcnlEYXRhLFxuICBEZXRhaWxGcmFnbWVudEtleSxcbiAgRGV0YWlsUXVlcnlWYXJpYWJsZXNcbj4ge1xuICByZXR1cm4ge1xuICAgIHF1ZXJ5OiBvcHRpb25zLnF1ZXJ5LFxuICAgIGZyYWdtZW50OiBvcHRpb25zLmZyYWdtZW50LFxuICAgIHJlc29sdmVOb2RlOiBvcHRpb25zLnJlc29sdmVOb2RlLFxuICAgIHRvVmlldzogb3B0aW9ucy50b1ZpZXcsXG4gICAgYnVpbGRWYXJpYWJsZXM6IG9wdGlvbnMuYnVpbGRWYXJpYWJsZXMsXG4gICAgaWQ6IG9wdGlvbnMuaWQsXG4gICAgcGF0aDogb3B0aW9ucy5wYXRoLFxuICAgIGxhYmVsOiBvcHRpb25zLmxhYmVsLFxuICAgIGNvbnRlbnQ6IG9wdGlvbnMuY29udGVudCxcbiAgICBhY3Rpb25zOiBvcHRpb25zLmFjdGlvbnMsXG4gICAgaXNWaXNpYmxlOiBvcHRpb25zLmlzVmlzaWJsZSxcbiAgICBwcm9maWxlOiBvcHRpb25zLnByb2ZpbGUsXG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBidWlsZEJhY2tvZmZpY2VFbnRpdHlEZXRhaWxDb25maWcgPSA8XG4gIExheW91dERhdGEgZXh0ZW5kcyBvYmplY3QsXG4gIExheW91dFZpZXcgZXh0ZW5kcyB7IGlkOiBzdHJpbmcgfSxcbiAgTWFpbkRhdGEgZXh0ZW5kcyBvYmplY3QgPSBMYXlvdXREYXRhLFxuICBNYWluVmlldyBleHRlbmRzIHsgaWQ6IHN0cmluZyB9ID0gTGF5b3V0VmlldyxcbiAgTGF5b3V0UXVlcnlEYXRhID0gdW5rbm93bixcbiAgTWFpblF1ZXJ5RGF0YSA9IHVua25vd24sXG4gIExheW91dEZyYWdtZW50S2V5ID0gdW5rbm93bixcbiAgTWFpbkZyYWdtZW50S2V5ID0gdW5rbm93bixcbiAgTGF5b3V0UXVlcnlWYXJpYWJsZXMgPSB7IGlkOiBzdHJpbmcgfSxcbiAgTWFpblF1ZXJ5VmFyaWFibGVzID0geyBpZDogc3RyaW5nIH0sXG4+KG9wdGlvbnM6IHtcbiAgdGl0bGU6IEkxOG5MYWJlbDtcbiAgaGVhZGVyVGl0bGU/OiBJMThuTGFiZWw7XG4gIGhlYWRlclN1YnRpdGxlPzogSTE4bkxhYmVsO1xuICBxdWVyeTogR3JhcGhRTFRhZ2dlZE5vZGU7XG4gIGZyYWdtZW50OiBHcmFwaFFMVGFnZ2VkTm9kZTtcbiAgdG9WaWV3OiAoZGF0YTogTWFpbkRhdGEpID0+IE1haW5WaWV3O1xuICBhY3Rpb25zPzogcmVhZG9ubHkgQmFja29mZmljZUVudGl0eUFjdGlvblNwZWM8TWFpblZpZXc+W107XG4gIGxheW91dFF1ZXJ5PzogR3JhcGhRTFRhZ2dlZE5vZGU7XG4gIGxheW91dEZyYWdtZW50PzogR3JhcGhRTFRhZ2dlZE5vZGU7XG4gIGxheW91dFRvVmlldz86IChkYXRhOiBMYXlvdXREYXRhKSA9PiBMYXlvdXRWaWV3O1xuICBoZWFkZXI/OiBCYWNrb2ZmaWNlRW50aXR5RGV0YWlsQ29uZmlnPFxuICAgIExheW91dERhdGEsXG4gICAgTGF5b3V0VmlldyxcbiAgICBNYWluRGF0YSxcbiAgICBNYWluVmlldyxcbiAgICBNYWluRGF0YSxcbiAgICBNYWluVmlldyxcbiAgICBMYXlvdXRRdWVyeURhdGEsXG4gICAgTWFpblF1ZXJ5RGF0YSxcbiAgICBNYWluUXVlcnlEYXRhLFxuICAgIExheW91dEZyYWdtZW50S2V5LFxuICAgIE1haW5GcmFnbWVudEtleSxcbiAgICBNYWluRnJhZ21lbnRLZXksXG4gICAgTGF5b3V0UXVlcnlWYXJpYWJsZXMsXG4gICAgTWFpblF1ZXJ5VmFyaWFibGVzLFxuICAgIE1haW5RdWVyeVZhcmlhYmxlc1xuICA+WydoZWFkZXInXTtcbiAgcmVzb2x2ZU5vZGU6IEJhY2tvZmZpY2VFbnRpdHlEZXRhaWxDb25maWc8XG4gICAgTGF5b3V0RGF0YSxcbiAgICBMYXlvdXRWaWV3LFxuICAgIE1haW5EYXRhLFxuICAgIE1haW5WaWV3LFxuICAgIE1haW5EYXRhLFxuICAgIE1haW5WaWV3LFxuICAgIExheW91dFF1ZXJ5RGF0YSxcbiAgICBNYWluUXVlcnlEYXRhLFxuICAgIE1haW5RdWVyeURhdGEsXG4gICAgTGF5b3V0RnJhZ21lbnRLZXksXG4gICAgTWFpbkZyYWdtZW50S2V5LFxuICAgIE1haW5GcmFnbWVudEtleSxcbiAgICBMYXlvdXRRdWVyeVZhcmlhYmxlcyxcbiAgICBNYWluUXVlcnlWYXJpYWJsZXMsXG4gICAgTWFpblF1ZXJ5VmFyaWFibGVzXG4gID5bJ21haW5QYWdlJ11bJ3Jlc29sdmVOb2RlJ107XG4gIGxheW91dFJlc29sdmVOb2RlOiBCYWNrb2ZmaWNlRW50aXR5RGV0YWlsQ29uZmlnPFxuICAgIExheW91dERhdGEsXG4gICAgTGF5b3V0VmlldyxcbiAgICBNYWluRGF0YSxcbiAgICBNYWluVmlldyxcbiAgICBNYWluRGF0YSxcbiAgICBNYWluVmlldyxcbiAgICBMYXlvdXRRdWVyeURhdGEsXG4gICAgTWFpblF1ZXJ5RGF0YSxcbiAgICBNYWluUXVlcnlEYXRhLFxuICAgIExheW91dEZyYWdtZW50S2V5LFxuICAgIE1haW5GcmFnbWVudEtleSxcbiAgICBNYWluRnJhZ21lbnRLZXksXG4gICAgTGF5b3V0UXVlcnlWYXJpYWJsZXMsXG4gICAgTWFpblF1ZXJ5VmFyaWFibGVzLFxuICAgIE1haW5RdWVyeVZhcmlhYmxlc1xuICA+WydsYXlvdXRQYWdlJ11bJ3Jlc29sdmVOb2RlJ107XG4gIGJ1aWxkVmFyaWFibGVzPzogKGlucHV0OiB7XG4gICAgaWQ6IHN0cmluZztcbiAgfSkgPT4gQmFja29mZmljZURldGFpbFZhcmlhYmxlczxNYWluUXVlcnlWYXJpYWJsZXM+O1xuICBsYXlvdXRCdWlsZFZhcmlhYmxlcz86IChpbnB1dDoge1xuICAgIGlkOiBzdHJpbmc7XG4gIH0pID0+IEJhY2tvZmZpY2VEZXRhaWxWYXJpYWJsZXM8TGF5b3V0UXVlcnlWYXJpYWJsZXM+O1xuICByZWxhdGlvbnM/OiByZWFkb25seSBCYWNrb2ZmaWNlRW50aXR5UmVsYXRpb25TcGVjPExheW91dFZpZXc+W107XG4gIGRldGFpbENvbnRlbnQ/OiByZWFkb25seSBCYWNrb2ZmaWNlRGV0YWlsQ29udGVudFNwZWM8TWFpblZpZXc+W107XG4gIG1haW5QYWdlSWQ/OiBzdHJpbmc7XG4gIG1haW5QYWdlUGF0aD86IHN0cmluZztcbiAgbWFpblBhZ2VMYWJlbD86IEkxOG5MYWJlbDtcbiAgc3ViUGFnZXM/OiBCYWNrb2ZmaWNlRW50aXR5RGV0YWlsQ29uZmlnPFxuICAgIExheW91dERhdGEsXG4gICAgTGF5b3V0VmlldyxcbiAgICBNYWluRGF0YSxcbiAgICBNYWluVmlldyxcbiAgICBNYWluRGF0YSxcbiAgICBNYWluVmlldyxcbiAgICBMYXlvdXRRdWVyeURhdGEsXG4gICAgTWFpblF1ZXJ5RGF0YSxcbiAgICBNYWluUXVlcnlEYXRhLFxuICAgIExheW91dEZyYWdtZW50S2V5LFxuICAgIE1haW5GcmFnbWVudEtleSxcbiAgICBNYWluRnJhZ21lbnRLZXksXG4gICAgTGF5b3V0UXVlcnlWYXJpYWJsZXMsXG4gICAgTWFpblF1ZXJ5VmFyaWFibGVzLFxuICAgIE1haW5RdWVyeVZhcmlhYmxlc1xuICA+WydzdWJQYWdlcyddO1xuICBwcm9maWxlPzogQmFja29mZmljZURldGFpbExheW91dFByb2ZpbGU8TGF5b3V0Vmlldz47XG4gIG1haW5QYWdlUHJvZmlsZT86IEJhY2tvZmZpY2VEZXRhaWxMYXlvdXRQcm9maWxlPE1haW5WaWV3Pjtcbn0pOiBCYWNrb2ZmaWNlRW50aXR5RGV0YWlsQ29uZmlnPFxuICBMYXlvdXREYXRhLFxuICBMYXlvdXRWaWV3LFxuICBNYWluRGF0YSxcbiAgTWFpblZpZXcsXG4gIE1haW5EYXRhLFxuICBNYWluVmlldyxcbiAgTGF5b3V0UXVlcnlEYXRhLFxuICBNYWluUXVlcnlEYXRhLFxuICBNYWluUXVlcnlEYXRhLFxuICBMYXlvdXRGcmFnbWVudEtleSxcbiAgTWFpbkZyYWdtZW50S2V5LFxuICBNYWluRnJhZ21lbnRLZXksXG4gIExheW91dFF1ZXJ5VmFyaWFibGVzLFxuICBNYWluUXVlcnlWYXJpYWJsZXMsXG4gIE1haW5RdWVyeVZhcmlhYmxlc1xuPiA9PiB7XG4gIGNvbnN0IGRlZmF1bHRIZWFkZXIgPSBidWlsZEdlbmVyaWNEZXRhaWxIZWFkZXIoe1xuICAgIHRpdGxlOiBvcHRpb25zLmhlYWRlclRpdGxlID8/IG9wdGlvbnMudGl0bGUsXG4gICAgc3VidGl0bGU6IG9wdGlvbnMuaGVhZGVyU3VidGl0bGUsXG4gIH0pO1xuICBjb25zdCBtYWluUGFnZUlkID0gb3B0aW9ucy5tYWluUGFnZUlkID8/ICdvdmVydmlldyc7XG4gIGNvbnN0IG1haW5QYWdlUGF0aCA9IG9wdGlvbnMubWFpblBhZ2VQYXRoID8/ICdvdmVydmlldyc7XG4gIGNvbnN0IG1haW5QYWdlTGFiZWwgPSBvcHRpb25zLm1haW5QYWdlTGFiZWwgPz8gb3B0aW9ucy50aXRsZTtcbiAgY29uc3QgbWFpblBhZ2UgPSBidWlsZEJhY2tvZmZpY2VEZXRhaWxQYWdlQ29uZmlnPFxuICAgIE1haW5WaWV3LFxuICAgIE1haW5EYXRhLFxuICAgIExheW91dFZpZXcsXG4gICAgTWFpblF1ZXJ5RGF0YSxcbiAgICBNYWluRnJhZ21lbnRLZXksXG4gICAgTWFpblF1ZXJ5VmFyaWFibGVzXG4gID4oe1xuICAgIGlkOiBtYWluUGFnZUlkLFxuICAgIHBhdGg6IG1haW5QYWdlUGF0aCxcbiAgICBsYWJlbDogbWFpblBhZ2VMYWJlbCxcbiAgICBxdWVyeTogb3B0aW9ucy5xdWVyeSxcbiAgICBmcmFnbWVudDogb3B0aW9ucy5mcmFnbWVudCxcbiAgICByZXNvbHZlTm9kZTogb3B0aW9ucy5yZXNvbHZlTm9kZSxcbiAgICB0b1ZpZXc6IG9wdGlvbnMudG9WaWV3LFxuICAgIGJ1aWxkVmFyaWFibGVzOiBvcHRpb25zLmJ1aWxkVmFyaWFibGVzLFxuICAgIGNvbnRlbnQ6IG9wdGlvbnMuZGV0YWlsQ29udGVudCA/PyBbXSxcbiAgICBhY3Rpb25zOiBvcHRpb25zLmFjdGlvbnMsXG4gICAgcHJvZmlsZTogb3B0aW9ucy5tYWluUGFnZVByb2ZpbGUsXG4gIH0pO1xuXG4gIHJldHVybiB7XG4gICAgdGl0bGU6IG9wdGlvbnMudGl0bGUsXG4gICAgaGVhZGVyOiBvcHRpb25zLmhlYWRlciA/PyBkZWZhdWx0SGVhZGVyLFxuICAgIHJlbGF0aW9uczogb3B0aW9ucy5yZWxhdGlvbnMsXG4gICAgbGF5b3V0UGFnZToge1xuICAgICAgcXVlcnk6IG9wdGlvbnMubGF5b3V0UXVlcnkgPz8gb3B0aW9ucy5xdWVyeSxcbiAgICAgIGZyYWdtZW50OiBvcHRpb25zLmxheW91dEZyYWdtZW50ID8/IG9wdGlvbnMuZnJhZ21lbnQsXG4gICAgICByZXNvbHZlTm9kZTogb3B0aW9ucy5sYXlvdXRSZXNvbHZlTm9kZSxcbiAgICAgIHRvVmlldzpcbiAgICAgICAgb3B0aW9ucy5sYXlvdXRUb1ZpZXcgPz9cbiAgICAgICAgKG9wdGlvbnMudG9WaWV3IGFzIHVua25vd24gYXMgKGRhdGE6IExheW91dERhdGEpID0+IExheW91dFZpZXcpLFxuICAgICAgYnVpbGRWYXJpYWJsZXM6XG4gICAgICAgIG9wdGlvbnMubGF5b3V0QnVpbGRWYXJpYWJsZXMgPz9cbiAgICAgICAgKG9wdGlvbnMuYnVpbGRWYXJpYWJsZXMgYXMgdW5rbm93biBhc1xuICAgICAgICAgIHwgKChpbnB1dDoge1xuICAgICAgICAgICAgICBpZDogc3RyaW5nO1xuICAgICAgICAgICAgfSkgPT4gQmFja29mZmljZURldGFpbFZhcmlhYmxlczxMYXlvdXRRdWVyeVZhcmlhYmxlcz4pXG4gICAgICAgICAgfCB1bmRlZmluZWQpLFxuICAgIH0sXG4gICAgbWFpblBhZ2UsXG4gICAgc3ViUGFnZXM6IG9wdGlvbnMuc3ViUGFnZXMsXG4gICAgcHJvZmlsZTogb3B0aW9ucy5wcm9maWxlLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGJ1aWxkQmFja29mZmljZUNvbm5lY3Rpb25EZXRhaWxWYXJpYWJsZXMgPSA8XG4gIFdoZXJlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIFNvcnQgZXh0ZW5kcyBzdHJpbmcsXG4+KGlucHV0OiB7XG4gIGRldGFpbElkOiBzdHJpbmc7XG4gIHdoZXJlOiBXaGVyZSB8IG51bGw7XG4gIHNvcnQ6IFNvcnQgfCBudWxsO1xufSk6IEJhY2tvZmZpY2VEZXRhaWxWYXJpYWJsZXM8e1xuICB3aGVyZTogV2hlcmUgfCBudWxsO1xuICBzb3J0OiBTb3J0IHwgbnVsbDtcbiAgY291bnQ6IG51bWJlcjtcbn0+ID0+IHtcbiAgcmV0dXJuIHtcbiAgICBkZXRhaWxJZDogaW5wdXQuZGV0YWlsSWQsXG4gICAgdmFyaWFibGVzOiB7XG4gICAgICB3aGVyZTogaW5wdXQud2hlcmUsXG4gICAgICBzb3J0OiBpbnB1dC5zb3J0LFxuICAgICAgY291bnQ6IEJBQ0tPRkZJQ0VfTElTVF9ERUZBVUxUUy5wYWdlU2l6ZSxcbiAgICB9LFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGJ1aWxkQmFja29mZmljZUVudGl0eVBpY2tlckNvbmZpZyA9IDxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIFJvd1JlZiBleHRlbmRzIG9iamVjdCxcbiAgUm93VmlldyBleHRlbmRzIHsgaWQ6IHN0cmluZyB9LFxuICBQaWNrZXJGcmFnbWVudERhdGEgPSB1bmtub3duLFxuICBXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gQmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRPcGVyYXRpb24+LFxuICBWYWx1ZVF1ZXJ5RGF0YSA9IEJhY2tvZmZpY2VBbGlhc2VkUGlja2VyVmFsdWVSZXNwb25zZTxzdHJpbmcsIFJvd1JlZj4sXG4+KG9wdGlvbnM6IHtcbiAgcXVlcnk6IEdyYXBoUUxUYWdnZWROb2RlO1xuICBmcmFnbWVudDogR3JhcGhRTFRhZ2dlZE5vZGU7XG4gIHZhbHVlPzogQmFja29mZmljZVBpY2tlclZhbHVlQ29uZmlnPFJvd1JlZiwgUm93VmlldywgVmFsdWVRdWVyeURhdGE+O1xuICBnZXRDb25uZWN0aW9uOiAoZGF0YTogUGlja2VyRnJhZ21lbnREYXRhKSA9PiBCYWNrb2ZmaWNlQ29ubmVjdGlvbjxSb3dSZWY+O1xuICB0b1JvdzogKHJvd1JlZjogUm93UmVmKSA9PiBSb3dWaWV3O1xuICBnZXRSb3dJZD86IChyb3c6IFJvd1ZpZXcpID0+IHN0cmluZztcbiAgc2VhcmNoPzogQmFja29mZmljZVBpY2tlclNlYXJjaENvbmZpZzxXaGVyZT47XG4gIHNjb3BlPzogQmFja29mZmljZVBpY2tlclNjb3BlQ29uZmlnPFdoZXJlPjtcbiAgc2VhcmNoRW5hYmxlZD86IGJvb2xlYW47XG4gIHNlYXJjaFJlcXVpcmVkPzogYm9vbGVhbjtcbiAgc2VhcmNoUGxhY2Vob2xkZXI/OiBJMThuTGFiZWw7XG4gIGJ1aWxkUXVlcnlWYXJpYWJsZXM/OiAoXG4gICAgaW5wdXQ6IEJhY2tvZmZpY2VQaWNrZXJRdWVyeUlucHV0PFRPcGVyYXRpb24sIFdoZXJlPixcbiAgKSA9PiBUT3BlcmF0aW9uWyd2YXJpYWJsZXMnXTtcbn0pOiBCYWNrb2ZmaWNlRW50aXR5UGlja2VyQ29uZmlnPFxuICBUT3BlcmF0aW9uLFxuICBSb3dSZWYsXG4gIFJvd1ZpZXcsXG4gIFBpY2tlckZyYWdtZW50RGF0YSxcbiAgV2hlcmUsXG4gIFZhbHVlUXVlcnlEYXRhXG4+ID0+IHtcbiAgY29uc3Qgc2VhcmNoQ29uZmlnID0gb3B0aW9ucy5zZWFyY2g7XG4gIGNvbnN0IHNjb3BlS2V5cyA9IG9wdGlvbnMuc2NvcGU/LmtleXMgPz8gW107XG4gIGNvbnN0IHNlYXJjaFJlcXVpcmVkID0gb3B0aW9ucy5zZWFyY2hSZXF1aXJlZCA/PyBmYWxzZTtcbiAgY29uc3Qgc2VhcmNoRW5hYmxlZCA9XG4gICAgb3B0aW9ucy5zZWFyY2hFbmFibGVkID8/IChzZWFyY2hDb25maWcgIT0gbnVsbCB8fCBzZWFyY2hSZXF1aXJlZCk7XG4gIGNvbnN0IGdldFJlc29sdmVkUm93SWQgPVxuICAgIG9wdGlvbnMuZ2V0Um93SWQgPz9cbiAgICAoKHJvdzogUm93VmlldykgPT4ge1xuICAgICAgcmV0dXJuIHJvdy5pZDtcbiAgICB9KTtcblxuICByZXR1cm4ge1xuICAgIHF1ZXJ5OiBvcHRpb25zLnF1ZXJ5LFxuICAgIGZyYWdtZW50OiBvcHRpb25zLmZyYWdtZW50LFxuICAgIHZhbHVlOiBvcHRpb25zLnZhbHVlLFxuICAgIGdldENvbm5lY3Rpb246IG9wdGlvbnMuZ2V0Q29ubmVjdGlvbixcbiAgICB0b1Jvdzogb3B0aW9ucy50b1JvdyxcbiAgICBnZXRSb3dJZDogZ2V0UmVzb2x2ZWRSb3dJZCxcbiAgICBzZWFyY2hFbmFibGVkLFxuICAgIHNlYXJjaFJlcXVpcmVkLFxuICAgIHNlYXJjaFBsYWNlaG9sZGVyOiBvcHRpb25zLnNlYXJjaFBsYWNlaG9sZGVyLFxuICAgIGJ1aWxkUXVlcnlWYXJpYWJsZXM6XG4gICAgICBvcHRpb25zLmJ1aWxkUXVlcnlWYXJpYWJsZXMgPz9cbiAgICAgICgoaW5wdXQpID0+IHtcbiAgICAgICAgY29uc3QgdHJpbW1lZCA9IGlucHV0LnNlYXJjaC50cmltKCk7XG4gICAgICAgIGxldCB3aGVyZTogV2hlcmUgfCBudWxsID0gbnVsbDtcbiAgICAgICAgaWYgKHNlYXJjaENvbmZpZyAhPSBudWxsICYmIHRyaW1tZWQgIT09ICcnKSB7XG4gICAgICAgICAgY29uc3QgbmV4dFdoZXJlID0gc2V0V2hlcmVWYWx1ZShcbiAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICBzZWFyY2hDb25maWcud2hlcmVLZXksXG4gICAgICAgICAgICB0cmltbWVkLFxuICAgICAgICAgICAgc2VhcmNoQ29uZmlnLnBhdGgsXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpZiAobmV4dFdoZXJlICE9IG51bGwpIHtcbiAgICAgICAgICAgIHdoZXJlID0gbmV4dFdoZXJlIGFzIFdoZXJlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoaW5wdXQuc2NvcGUgIT0gbnVsbCAmJiBzY29wZUtleXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHNjb3BlS2V5cy5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gaW5wdXQuc2NvcGU/LltTdHJpbmcoa2V5KV07XG4gICAgICAgICAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBuZXh0V2hlcmUgPSBzZXRXaGVyZVZhbHVlKHdoZXJlLCBrZXksIHZhbHVlKTtcbiAgICAgICAgICAgIGlmIChuZXh0V2hlcmUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICB3aGVyZSA9IG5leHRXaGVyZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHdoZXJlLFxuICAgICAgICAgIGNvdW50OiAyMCxcbiAgICAgICAgICBjdXJzb3I6IG51bGwsXG4gICAgICAgIH07XG4gICAgICB9KSxcbiAgfTtcbn07XG4iXX0=