@po-ui/ng-components 16.4.1 → 16.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/po-field/po-field.module.mjs +17 -13
- package/esm2022/lib/components/po-field/po-lookup/po-lookup-modal/po-lookup-modal.component.mjs +4 -4
- package/esm2022/lib/components/po-field/po-multiselect/po-multiselect-base.component.mjs +30 -7
- package/esm2022/lib/components/po-field/po-multiselect/po-multiselect-dropdown/po-multiselect-dropdown.component.mjs +4 -4
- package/esm2022/lib/components/po-field/po-multiselect/po-multiselect-literals.interface.mjs +1 -1
- package/esm2022/lib/components/po-field/po-multiselect/po-multiselect.component.mjs +220 -51
- package/esm2022/lib/components/po-field/po-rich-text/po-rich-text-toolbar/po-rich-text-toolbar.component.mjs +3 -3
- package/esm2022/lib/components/po-listbox/po-item-list/po-item-list.component.mjs +2 -2
- package/esm2022/lib/components/po-table/po-table-base.component.mjs +5 -5
- package/esm2022/lib/components/po-tag/index.mjs +2 -1
- package/esm2022/lib/components/po-tag/interfaces/po-tag-literals.interface.mjs +2 -0
- package/esm2022/lib/components/po-tag/po-tag-base.component.mjs +70 -4
- package/esm2022/lib/components/po-tag/po-tag.component.mjs +52 -44
- package/esm2022/lib/enums/po-key-code.enum.mjs +5 -1
- package/fesm2022/po-ui-ng-components.mjs +701 -532
- package/fesm2022/po-ui-ng-components.mjs.map +1 -1
- package/lib/components/po-field/po-field.module.d.ts +44 -44
- package/lib/components/po-field/po-multiselect/po-multiselect-base.component.d.ts +21 -2
- package/lib/components/po-field/po-multiselect/po-multiselect-literals.interface.d.ts +2 -0
- package/lib/components/po-field/po-multiselect/po-multiselect.component.d.ts +18 -6
- package/lib/components/po-table/po-table-base.component.d.ts +2 -2
- package/lib/components/po-tag/index.d.ts +1 -0
- package/lib/components/po-tag/interfaces/po-tag-literals.interface.d.ts +11 -0
- package/lib/components/po-tag/po-tag-base.component.d.ts +50 -2
- package/lib/components/po-tag/po-tag.component.d.ts +6 -6
- package/lib/enums/po-key-code.enum.d.ts +5 -1
- package/package.json +4 -4
- package/po-ui-ng-components-16.5.0.tgz +0 -0
- package/schematics/ng-add/index.js +1 -1
- package/schematics/ng-update/v14/index.js +1 -1
- package/schematics/ng-update/v15/index.js +1 -1
- package/schematics/ng-update/v16/index.js +1 -1
- package/schematics/ng-update/v2/index.js +1 -1
- package/schematics/ng-update/v3/index.js +1 -1
- package/schematics/ng-update/v4/index.js +1 -1
- package/schematics/ng-update/v5/index.js +1 -1
- package/schematics/ng-update/v6/index.js +1 -1
- package/esm2022/lib/components/po-field/po-multiselect/po-multiselect-search/po-multiselect-search.component.mjs +0 -91
- package/esm2022/lib/components/po-tag/po-tag.literals.mjs +0 -15
- package/lib/components/po-field/po-multiselect/po-multiselect-search/po-multiselect-search.component.d.ts +0 -40
- package/lib/components/po-tag/po-tag.literals.d.ts +0 -14
- package/po-ui-ng-components-16.4.1.tgz +0 -0
|
@@ -14,22 +14,26 @@ export const poMultiselectLiteralsDefault = {
|
|
|
14
14
|
en: {
|
|
15
15
|
noData: 'No data found',
|
|
16
16
|
placeholderSearch: 'Search',
|
|
17
|
-
selectAll: 'Select all'
|
|
17
|
+
selectAll: 'Select all',
|
|
18
|
+
selectItem: 'Select items'
|
|
18
19
|
},
|
|
19
20
|
es: {
|
|
20
21
|
noData: 'Datos no encontrados',
|
|
21
22
|
placeholderSearch: 'Busca',
|
|
22
|
-
selectAll: 'Seleccionar todo'
|
|
23
|
+
selectAll: 'Seleccionar todo',
|
|
24
|
+
selectItem: 'Seleccionar items'
|
|
23
25
|
},
|
|
24
26
|
pt: {
|
|
25
27
|
noData: 'Nenhum dado encontrado',
|
|
26
28
|
placeholderSearch: 'Buscar',
|
|
27
|
-
selectAll: 'Selecionar todos'
|
|
29
|
+
selectAll: 'Selecionar todos',
|
|
30
|
+
selectItem: 'Selecionar itens'
|
|
28
31
|
},
|
|
29
32
|
ru: {
|
|
30
33
|
noData: 'Данные не найдены',
|
|
31
34
|
placeholderSearch: 'искать',
|
|
32
|
-
selectAll: 'Выбрать все'
|
|
35
|
+
selectAll: 'Выбрать все',
|
|
36
|
+
selectItem: 'Выбрать элементы'
|
|
33
37
|
}
|
|
34
38
|
};
|
|
35
39
|
/**
|
|
@@ -45,6 +49,23 @@ export const poMultiselectLiteralsDefault = {
|
|
|
45
49
|
* po-select, po-combo ou po-radio-group.
|
|
46
50
|
*
|
|
47
51
|
* Com ele também é possível definir uma lista à partir da requisição de um serviço definido em `p-filter-service`.
|
|
52
|
+
*
|
|
53
|
+
* #### Boas práticas
|
|
54
|
+
*
|
|
55
|
+
* - Caso a lista apresente menos de 5 itens, considere utilizar outro componente;
|
|
56
|
+
* - Não utilize o multiselect caso o usuário possa selecionar apenas uma opção. Para esse caso, opte por utilizar po-radio ou po-select;
|
|
57
|
+
* - Sempre que possível, agrupe as opções e use labels curtas para descrever o conteúdo. Exemplo: em uma combinação de alimentos,
|
|
58
|
+
* as opções podem ser agrupadas por Vegetais, Frutas, etc;
|
|
59
|
+
*
|
|
60
|
+
* #### Acessibilidade tratada no componente
|
|
61
|
+
*
|
|
62
|
+
* Algumas diretrizes de acessibilidade já são tratadas no componente internamente, e não podem ser alteradas pelo proprietário do conteúdo. São elas:
|
|
63
|
+
*
|
|
64
|
+
* - Quando em foco, o multiselect abre o listbox usando as teclas de Espaço ou Enter do teclado.
|
|
65
|
+
* - Utilize as teclas Arrow Up [seta para cima] ou Arrow Down [seta para baixo] do teclado para navegar entre os itens do listbox.
|
|
66
|
+
* - Utilize a tecla Esc do teclado para fechar o listbox.
|
|
67
|
+
* - Quando um item estiver em foco, utilize as teclas Arrow Right [seta para direita] ou Arrow Left [seta para esquerda] do teclado para navegar entre eles.
|
|
68
|
+
* - Quando em foco e havendo um item ou mais já selecionado, utilize a tecla Arrow Down [seta para baixo] do teclado para abrir o listbox.
|
|
48
69
|
*/
|
|
49
70
|
export class PoMultiselectBaseComponent {
|
|
50
71
|
/**
|
|
@@ -124,7 +145,7 @@ export class PoMultiselectBaseComponent {
|
|
|
124
145
|
appendBox = false;
|
|
125
146
|
selectedOptions = [];
|
|
126
147
|
visibleOptionsDropdown = [];
|
|
127
|
-
|
|
148
|
+
visibleTags = [];
|
|
128
149
|
isServerSearching = false;
|
|
129
150
|
isFirstFilter = true;
|
|
130
151
|
filterSubject = new Subject();
|
|
@@ -237,7 +258,9 @@ export class PoMultiselectBaseComponent {
|
|
|
237
258
|
* ```
|
|
238
259
|
* const customLiterals: PoMultiselectLiterals = {
|
|
239
260
|
* noData: 'Nenhum dado encontrado',
|
|
240
|
-
* placeholderSearch: 'Buscar'
|
|
261
|
+
* placeholderSearch: 'Buscar',
|
|
262
|
+
* selectAll: 'Select all',
|
|
263
|
+
* selectItem: 'Select items'
|
|
241
264
|
* };
|
|
242
265
|
* ```
|
|
243
266
|
*
|
|
@@ -697,4 +720,4 @@ export class PoMultiselectBaseComponent {
|
|
|
697
720
|
type: Input,
|
|
698
721
|
args: ['p-field-value']
|
|
699
722
|
}] }); })();
|
|
700
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tbXVsdGlzZWxlY3QtYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NvbXBvbmVudHMvcG8tZmllbGQvcG8tbXVsdGlzZWxlY3QvcG8tbXVsdGlzZWxlY3QtYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvRSxPQUFPLEVBQWMsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFFckYsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixRQUFRLEVBQ1IscUNBQXFDLEVBQ3JDLDJDQUEyQyxFQUMzQyxxQkFBcUIsRUFDdEIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFakQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7OztBQU01RSxNQUFNLG9DQUFvQyxHQUFHLEdBQUcsQ0FBQztBQUNqRCxNQUFNLGtDQUFrQyxHQUFHLE9BQU8sQ0FBQztBQUNuRCxNQUFNLGtDQUFrQyxHQUFHLE9BQU8sQ0FBQztBQUVuRCxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRztJQUMxQyxFQUFFLEVBQXlCO1FBQ3pCLE1BQU0sRUFBRSxlQUFlO1FBQ3ZCLGlCQUFpQixFQUFFLFFBQVE7UUFDM0IsU0FBUyxFQUFFLFlBQVk7S0FDeEI7SUFDRCxFQUFFLEVBQXlCO1FBQ3pCLE1BQU0sRUFBRSxzQkFBc0I7UUFDOUIsaUJB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LGVBQWU7WUErQk0sVUFBVTtrQkFBckMsS0FBSzttQkFBQyxlQUFlO1lBd0JNLFVBQVU7a0JBQXJDLEtBQUs7bUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgcG9Mb2NhbGVEZWZhdWx0IH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcG8tbGFuZ3VhZ2UvcG8tbGFuZ3VhZ2UuY29uc3RhbnQnO1xuaW1wb3J0IHsgUG9MYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wby1sYW5ndWFnZS9wby1sYW5ndWFnZS5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIGNvbnZlcnRUb0Jvb2xlYW4sXG4gIGlzVHlwZW9mLFxuICByZW1vdmVEdXBsaWNhdGVkT3B0aW9uc1dpdGhGaWVsZFZhbHVlLFxuICByZW1vdmVVbmRlZmluZWRBbmROdWxsT3B0aW9uc1dpdGhGaWVsZFZhbHVlLFxuICBzb3J0T3B0aW9uc0J5UHJvcGVydHlcbn0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvdXRpbCc7XG5pbXBvcnQgeyByZXF1aXJlZEZhaWxlZCB9IGZyb20gJy4vLi4vdmFsaWRhdG9ycyc7XG5cbmltcG9ydCB7IFBvTXVsdGlzZWxlY3RGaWx0ZXJNb2RlIH0gZnJvbSAnLi9wby1tdWx0aXNlbGVjdC1maWx0ZXItbW9kZS5lbnVtJztcbmltcG9ydCB7IFBvTXVsdGlzZWxlY3RGaWx0ZXIgfSBmcm9tICcuL3BvLW11bHRpc2VsZWN0LWZpbHRlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9NdWx0aXNlbGVjdEZpbHRlclNlcnZpY2UgfSBmcm9tICcuL3BvLW11bHRpc2VsZWN0LWZpbHRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFBvTXVsdGlzZWxlY3RMaXRlcmFscyB9IGZyb20gJy4vcG8tbXVsdGlzZWxlY3QtbGl0ZXJhbHMuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvTXVsdGlzZWxlY3RPcHRpb24gfSBmcm9tICcuL3BvLW11bHRpc2VsZWN0LW9wdGlvbi5pbnRlcmZhY2UnO1xuXG5jb25zdCBQT19NVUxUSVNFTEVDVF9ERUJPVU5DRV9USU1FX0RFRkFVTFQgPSA0MDA7XG5jb25zdCBQT19NVUxUSVNFTEVDVF9GSUVMRF9MQUJFTF9ERUZBVUxUID0gJ2xhYmVsJztcbmNvbnN0IFBPX01VTFRJU0VMRUNUX0ZJRUxEX1ZBTFVFX0RFRkFVTFQgPSAndmFsdWUnO1xuXG5leHBvcnQgY29uc3QgcG9NdWx0aXNlbGVjdExpdGVyYWxzRGVmYXVsdCA9IHtcbiAgZW46IDxQb011bHRpc2VsZWN0TGl0ZXJhbHM+e1xuICAgIG5vRGF0YTogJ05vIGRhdGEgZm91bmQnLFxuICAgIHBsYWNlaG9sZGVyU2VhcmNoOiAnU2VhcmNoJyxcbiAgICBzZWxlY3RBbGw6ICdTZWxlY3QgYWxsJ1xuICB9LFxuICBlczogPFBvTXVsdGlzZWxlY3RMaXRlcmFscz57XG4gICAgbm9EYXRhOiAnRGF0b3Mgbm8gZW5jb250cmFkb3MnLFxuICAgIHBsYWNlaG9sZGVyU2VhcmNoOiAnQnVzY2EnLFxuICAgIHNlbGVjdEFsbDogJ1NlbGVjY2lvbmFyIHRvZG8nXG4gIH0sXG4gIHB0OiA8UG9NdWx0aXNlbGVjdExpdGVyYWxzPntcbiAgICBub0RhdGE6ICdOZW5odW0gZGFkbyBlbmNvbnRyYWRvJyxcbiAgICBwbGFjZWhvbGRlclNlYXJjaDogJ0J1c2NhcicsXG4gICAgc2VsZWN0QWxsOiAnU2VsZWNpb25hciB0b2RvcydcbiAgfSxcbiAgcnU6IDxQb011bHRpc2VsZWN0TGl0ZXJhbHM+e1xuICAgIG5vRGF0YTogJ9CU0LDQvdC90YvQtSDQvdC1INC90LDQudC00LXQvdGLJyxcbiAgICBwbGFjZWhvbGRlclNlYXJjaDogJ9C40YHQutCw0YLRjCcsXG4gICAgc2VsZWN0QWxsOiAn0JLRi9Cx0YDQsNGC0Ywg0LLRgdC1J1xuICB9XG59O1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICpcbiAqIE8gcG8tbXVsdGlzZWxlY3Qgw6kgdW0gY29tcG9uZW50ZSBkZSBtw7psdGlwbGEgc2VsZcOnw6NvLlxuICogRXN0ZSBjb21wb25lbnRlIMOpIHJlY29tZW5kYWRvIHBhcmEgZGFyIGFvIHVzdcOhcmlvIGEgb3DDp8OjbyBkZSBzZWxlY2lvbmFyIHbDoXJpb3MgaXRlbnMgZW0gdW1hIGxpc3RhLlxuICpcbiAqIFF1YW5kbyBhIGxpc3RhIHBvc3N1aXIgcG91Y29zIGl0ZW5zLCBkZXZlLXNlIGRhciBwcmVmZXLDqm5jaWEgcGFyYSBvIHVzbyBkbyBwby1jaGVja2JveC1ncm91cCwgcG9yIHNlciBtYWlzIHNpbXBsZXNcbiAqIGUgbWFpcyByw6FwaWRvIHBhcmEgYSBzZWxlw6fDo28gZG8gdXN1w6FyaW8uXG4gKlxuICogRXN0ZSBjb21wb25lbnRlIHRhbWLDqW0gbsOjbyBkZXZlIHNlciB1dGlsaXphZG8gZW0gY2Fzb3Mgb25kZSBhIHNlbGXDp8OjbyBzZWphIMO6bmljYS4gTmVzc2VzIGNhc29zLCBkZXZlLXNlIHV0aWxpemFyIG9cbiAqIHBvLXNlbGVjdCwgcG8tY29tYm8gb3UgcG8tcmFkaW8tZ3JvdXAuXG4gKlxuICogQ29tIGVsZSB0YW1iw6ltIMOpIHBvc3PDrXZlbCBkZWZpbmlyIHVtYSBsaXN0YSDDoCBwYXJ0aXIgZGEgcmVxdWlzacOnw6NvIGRlIHVtIHNlcnZpw6dvIGRlZmluaWRvIGVtIGBwLWZpbHRlci1zZXJ2aWNlYC5cbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUG9NdWx0aXNlbGVjdEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LCBWYWxpZGF0b3Ige1xuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBBcGxpY2EgZm9jbyBubyBlbGVtZW50byBhbyBzZXIgaW5pY2lhZG8uXG4gICAqXG4gICAqID4gQ2FzbyBtYWlzIGRlIHVtIGVsZW1lbnRvIHNlamEgY29uZmlndXJhZG8gY29tIGVzc2EgcHJvcHJpZWRhZGUsIGFwZW5hcyBvIMO6bHRpbW8gZWxlbWVudG8gZGVjbGFyYWRvIGNvbSBlbGEgdGVyw6EgbyBmb2NvLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICBASW5wdXQoeyBhbGlhczogJ3AtYXV0by1mb2N1cycsIHRyYW5zZm9ybTogY29udmVydFRvQm9vbGVhbiB9KSBhdXRvRm9jdXM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogTGFiZWwgbm8gY29tcG9uZW50ZS4gKi9cbiAgQElucHV0KCdwLWxhYmVsJykgbGFiZWw/OiBzdHJpbmc7XG5cbiAgLyoqIFRleHRvIGRlIGFwb2lvIHBhcmEgbyBjYW1wby4gKi9cbiAgQElucHV0KCdwLWhlbHAnKSBoZWxwPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIERlZmluZSBzZSBhIGluZGljYcOnw6NvIGRlIGNhbXBvIG9wY2lvbmFsIHNlcsOhIGV4aWJpZGEuXG4gICAqXG4gICAqID4gTsOjbyBzZXLDoSBleGliaWRhIGEgaW5kaWNhw6fDo28gc2U6XG4gICAqIC0gTyBjYW1wbyBjb250ZXIgYHAtcmVxdWlyZWRgO1xuICAgKiAtIE7Do28gcG9zc3VpciBgcC1oZWxwYCBlL291IGBwLWxhYmVsYC5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgQElucHV0KCdwLW9wdGlvbmFsJykgb3B0aW9uYWw6IGJvb2xlYW47XG5cbiAgLyoqIE1lbnNhZ2VtIGFwcmVzZW50YWRhIGVucXVhbnRvIG8gY2FtcG8gZXN0aXZlciB2YXppby4gKi9cbiAgQElucHV0KCdwLXBsYWNlaG9sZGVyJykgcGxhY2Vob2xkZXI/OiBzdHJpbmcgPSAnJztcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIFBsYWNlaG9sZGVyIGRvIGNhbXBvIGRlIHBlc3F1aXNhLlxuICAgKlxuICAgKiA+IENhc28gbyBtZXNtbyBuw6NvIHNlamEgaW5mb3JtYWRvLCBvIHZhbG9yIHBhZHLDo28gc2Vyw6EgdHJhZHV6aWRvIGNvbSBiYXNlIG5vIGlkaW9tYSBkbyBuYXZlZ2Fkb3IgKHB0LCBlcyBlIGVuKS5cbiAgICpcbiAgICogQGRlZmF1bHQgYEJ1c2NhcmBcbiAgICovXG4gIEBJbnB1dCgncC1wbGFjZWhvbGRlci1zZWFyY2gnKSBwbGFjZWhvbGRlclNlYXJjaD86IHN0cmluZyA9ICcnO1xuXG4gIC8qKiBOb21lIGRvIGNvbXBvbmVudGUuICovXG4gIEBJbnB1dCgnbmFtZScpIG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBJbmRpY2Egc2UgbyBjYW1wbyBcIlNlbGVjaW9uYXIgdG9kb3NcIiBzZXLDoSBlc2NvbmRpZG8uXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIEBJbnB1dCh7IGFsaWFzOiAncC1oaWRlLXNlbGVjdC1hbGwnLCB0cmFuc2Zvcm06IGNvbnZlcnRUb0Jvb2xlYW4gfSkgaGlkZVNlbGVjdEFsbD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogUG9kZSBzZXIgaW5mb3JtYWRhIHVtYSBmdW7Dp8OjbyBxdWUgc2Vyw6EgZGlzcGFyYWRhIHF1YW5kbyBob3V2ZXIgYWx0ZXJhw6fDtWVzIG5vIG5nTW9kZWwuXG4gICAqL1xuICBAT3V0cHV0KCdwLWNoYW5nZScpIGNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBEZWZpbmUgcXVlIG8gZHJvcGRvd24gZG8gbXVsdGlzZWxlY3Qgc2Vyw6EgaW5jbHVpZG8gbm8gYm9keSBkYSBww6FnaW5hIGUgbsOjbyBzdXNwZW5zbyBjb20gYSBjYWl4YSBkZSB0ZXh0byBkbyBjb21wb25lbnRlLlxuICAgKiBPcMOnw6NvIG5lY2Vzc8OhcmlhIHBhcmEgbyBjYXNvIGRlIHVzbyBkbyBjb21wb25lbnRlIGVtIHDDoWdpbmFzIHF1ZSBuZWNlc3NpdGFtIHJlbmRlcml6YXIgbyBtdWx0aXNlbGVjdCBmb3JhIGRvIGNvbnRlw7pkbyBwcmluY2lwYWwuXG4gICAqXG4gICAqID4gT2JzOiBPIHVzbyBkZXNzYSBwcm9wcmllZGFkZSBwb2RlIGFjYXJyZXRhciBuYSBwZXJkYSBzZXF1ZW5jaWFsIGRhIHRhYnVsYcOnw6NvIGRhIHDDoWdpbmFcbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgQElucHV0KHsgYWxpYXM6ICdwLWFwcGVuZC1pbi1ib2R5JywgdHJhbnNmb3JtOiBjb252ZXJ0VG9Cb29sZWFuIH0pIGFwcGVuZEJveD86IGJvb2xlYW4gPSBmYWxzZTtcblxuICBzZWxlY3RlZE9wdGlvbnM6IEFycmF5PFBvTXVsdGlzZWxlY3RPcHRpb24gfCBhbnk+ID0gW107XG4gIHZpc2libGVPcHRpb25zRHJvcGRvd246IEFycmF5PFBvTXVsdGlzZWxlY3RPcHRpb24gfCBhbnk+ID0gW107XG4gIHZpc2libGVEaXNjbGFpbWVycyA9IFtdO1xuICBpc1NlcnZlclNlYXJjaGluZyA9IGZhbHNlO1xuICBpc0ZpcnN0RmlsdGVyOiBib29sZWFuID0gdHJ1ZTtcbiAgZmlsdGVyU3ViamVjdCA9IG5ldyBTdWJqZWN0KCk7XG4gIHNlcnZpY2U6IFBvTXVsdGlzZWxlY3RGaWx0ZXJTZXJ2aWNlO1xuICBkZWZhdWx0U2VydmljZTogUG9NdWx0aXNlbGVjdEZpbHRlclNlcnZpY2U7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gIHByb3RlY3RlZCBvbk1vZGVsVG91Y2hlZDogYW55ID0gbnVsbDtcblxuICBwcm90ZWN0ZWQgY2xpY2tPdXRMaXN0ZW5lcjogKCkgPT4gdm9pZDtcbiAgcHJvdGVjdGVkIHJlc2l6ZUxpc3RlbmVyOiAoKSA9PiB2b2lkO1xuICBwcm90ZWN0ZWQgZ2V0T2JqZWN0c0J5VmFsdWVzU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgcHJpdmF0ZSBfZmlsdGVyU2VydmljZT86IFBvTXVsdGlzZWxlY3RGaWx0ZXIgfCBzdHJpbmc7XG4gIHByaXZhdGUgX2RlYm91bmNlVGltZT86IG51bWJlciA9IDQwMDtcbiAgcHJpdmF0ZSBfZGlzYWJsZWQ/OiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX2ZpbHRlck1vZGU/OiBQb011bHRpc2VsZWN0RmlsdGVyTW9kZSA9IFBvTXVsdGlzZWxlY3RGaWx0ZXJNb2RlLnN0YXJ0c1dpdGg7XG4gIHByaXZhdGUgX2hpZGVTZWFyY2g/OiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX2xpdGVyYWxzOiBQb011bHRpc2VsZWN0TGl0ZXJhbHM7XG4gIHByaXZhdGUgX29wdGlvbnM6IEFycmF5PFBvTXVsdGlzZWxlY3RPcHRpb24gfCBhbnk+O1xuICBwcml2YXRlIF9yZXF1aXJlZD86IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfc29ydD86IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfYXV0b0hlaWdodDogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF9maWVsZExhYmVsPzogc3RyaW5nID0gUE9fTVVMVElTRUxFQ1RfRklFTERfTEFCRUxfREVGQVVMVDtcbiAgcHJpdmF0ZSBfZmllbGRWYWx1ZT86IHN0cmluZyA9IFBPX01VTFRJU0VMRUNUX0ZJRUxEX1ZBTFVFX0RFRkFVTFQ7XG4gIHByaXZhdGUgbGFuZ3VhZ2U6IHN0cmluZztcblxuICBwcml2YXRlIGxhc3RMZW5ndGhNb2RlbDtcbiAgcHJpdmF0ZSBvbk1vZGVsQ2hhbmdlOiBhbnk7XG4gIHByaXZhdGUgdmFsaWRhdG9yQ2hhbmdlOiBhbnk7XG4gIHByaXZhdGUgYXV0b0hlaWdodEluaXRpYWxWYWx1ZTogYm9vbGVhbjtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBOZXN0YSBwcm9wcmllZGFkZSBwb2RlIHNlciBpbmZvcm1hZGEgYSBVUkwgZG8gc2VydmnDp28gZW0gcXVlIHNlcsOhIHJlYWxpemFkbyBvIGZpbHRybyBwYXJhIGNhcnJlZ2FtZW50byBkYSBsaXN0YSBkZSBpdGVucyBubyBjb21wb25lbnRlLlxuICAgKlxuICAgKlRhbWLDqW0gZXhpc3RlIGEgcG9zc2liaWxpZGFkZSBkZSBpbmZvcm1hciB1bSBzZXJ2acOnbyBpbXBsZW1lbnRhbmRvIGEgaW50ZXJmYWNlIGBQb011bHRpc2VsZWN0RmlsdGVyYC5cbiAgICpcbiAgICpDYXNvIHV0aWxpemFkbyB1bWEgVVJMLCBvIHNlcnZpw6dvIGRldmUgc2VyIHJldG9ybmFkbyBubyBwYWRyw6NvIFtBUEkgUE8gVUldKGh0dHBzOi8vcG8tdWkuaW8vZ3VpZGVzL2FwaSkgZSB1dGlsaXphciBhcyBwcm9wcmllZGFkZXMgYHAtZmllbGQtbGFiZWxgIGUgYHAtZmllbGQtdmFsdWVgIHBhcmEgYSBjb25zdHJ1w6fDo28gZGEgbGlzdGEgZGUgaXRlbnMuXG4gICAqXG4gICAqUXVhbmRvIHV0aWxpemFkYSB1bWEgVVJMIGRlIHNlcnZpw6dvLCBlbnTDo28gc2Vyw6EgY29uY2F0ZW5hZGEgbmVzdGEgVVJMIG8gdmFsb3IgcXVlIGRlc2VqYS1zZSBmaWx0cmFyIGRhIHNlZ3VpbnRlIGZvcm1hOlxuICAgKlxuICAgKmBgYFxuICAgKiAvLyBjYXNvIGZpbHRyYXIgcG9yIFwiUGV0ZXJcIlxuICAgKiAgaHR0cHM6Ly9sb2NhbGhvc3Q6ODA4MC9hcGkvaGVyb2VzP2ZpbHRlcj1QZXRlclxuICAgKmBgYFxuICAgKlxuICAgKkUgY2FzbyBpbmljaWFyIG8gY2FtcG8gY29tIHZhbG9yLCBvcyBpdGVucyBzZXLDo28gYnVzY2Fkb3MgZGEgc2VndWludGUgZm9ybWE6XG4gICAqXG4gICAqYGBgXG4gICAqIC8vIGNhc28gbyB2YWxvciBkbyBjYW1wbyBmb3IgWzEyMzQsIDU2NzhdO1xuICAgKiAgaHR0cHM6Ly9sb2NhbGhvc3Q6ODA4MC9hcGkvaGVyb2VzP3ZhbHVlPTEyMzQsNTY3OFxuICAgKlxuICAgKiAvL08gKnZhbHVlKiDDqSByZWZlcmVudGUgYW8gYGZpZWxkVmFsdWVgLlxuICAgKmBgYFxuICAgKlxuICAgKi9cbiAgQElucHV0KCdwLWZpbHRlci1zZXJ2aWNlJykgc2V0IGZpbHRlclNlcnZpY2UodmFsdWU6IFBvTXVsdGlzZWxlY3RGaWx0ZXIgfCBzdHJpbmcpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuX2ZpbHRlclNlcnZpY2UgPSB2YWx1ZTtcbiAgICAgIHRoaXMuYXV0b0hlaWdodCA9IHRoaXMuYXV0b0hlaWdodEluaXRpYWxWYWx1ZSAhPT0gdW5kZWZpbmVkID8gdGhpcy5hdXRvSGVpZ2h0SW5pdGlhbFZhbHVlIDogdHJ1ZTtcbiAgICAgIHRoaXMub3B0aW9ucyA9IFtdO1xuICAgIH1cbiAgfVxuXG4gIGdldCBmaWx0ZXJTZXJ2aWNlKCkge1xuICAgIHJldHVybiB0aGlzLl9maWx0ZXJTZXJ2aWNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRGVmaW5lIHF1ZSBhIGFsdHVyYSBkbyBjb21wb25lbnRlIHNlcsOhIGF1dG8gYWp1c3TDoXZlbCwgcG9zc3VpbmRvIHVtYSBhbHR1cmEgbWluaW1hIHBvcsOpbSBhIGFsdHVyYSBtw6F4aW1hIHNlcsOhIGRlIGFjb3Jkb1xuICAgKiBjb20gbyBuw7ptZXJvIGRlIGl0ZW5zIHNlbGVjaW9uYWRvcyBlIGEgZXh0ZW5zw6NvIGRvcyBtZXNtb3MsIG1hbnRlbmRvLW9zIHNlbXByZSB2aXPDrXZlaXMuXG4gICAqXG4gICAqID4gTyB2YWxvciBwYWRyw6NvIHNlcsOhIGB0cnVlYCBxdWFuZG8gaG91dmVyIHNlcnZpw6dvIChgcC1maWx0ZXItc2VydmljZWApLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICBASW5wdXQoeyBhbGlhczogJ3AtYXV0by1oZWlnaHQnLCB0cmFuc2Zvcm06IGNvbnZlcnRUb0Jvb2xlYW4gfSkgc2V0IGF1dG9IZWlnaHQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9hdXRvSGVpZ2h0ID0gdmFsdWU7XG4gICAgdGhpcy5hdXRvSGVpZ2h0SW5pdGlhbFZhbHVlID0gdmFsdWU7XG4gIH1cblxuICBnZXQgYXV0b0hlaWdodCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fYXV0b0hlaWdodDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEVzdGEgcHJvcHJpZWRhZGUgZGVmaW5lIGVtIHF1YW50byB0ZW1wbyAoZW0gbWlsaXNzZWd1bmRvcyksIGFndWFyZGEgcGFyYSBhY2lvbmFyIG8gZXZlbnRvIGRlIGZpbHRybyBhcMOzcyBjYWRhIHByZXNzaW9uYW1lbnRvIGRlIHRlY2xhLlxuICAgKlxuICAgKiA+IFNlcsOhIHV0aWxpemFkYSBhcGVuYXMgcXVhbmRvIGhvdXZlciBzZXJ2acOnbyAoYHAtZmlsdGVyLXNlcnZpY2VgKSBlIHNvbWVudGUgc2Vyw6EgYWNlaXRvIHZhbG9yIG1haW9yIGRvIHF1ZSAqemVybyouXG4gICAqXG4gICAqIEBkZWZhdWx0IGA0MDBgXG4gICAqL1xuICBASW5wdXQoJ3AtZGVib3VuY2UtdGltZScpIHNldCBkZWJvdW5jZVRpbWUodmFsdWU6IG51bWJlcikge1xuICAgIGNvbnN0IHBhcnNlZFZhbHVlID0gcGFyc2VJbnQoPGFueT52YWx1ZSwgMTApO1xuXG4gICAgdGhpcy5fZGVib3VuY2VUaW1lID0gIWlzTmFOKHBhcnNlZFZhbHVlKSAmJiBwYXJzZWRWYWx1ZSA+IDAgPyBwYXJzZWRWYWx1ZSA6IFBPX01VTFRJU0VMRUNUX0RFQk9VTkNFX1RJTUVfREVGQVVMVDtcbiAgfVxuXG4gIGdldCBkZWJvdW5jZVRpbWUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fZGVib3VuY2VUaW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogT2JqZXRvIGNvbSBhcyBsaXRlcmFpcyB1c2FkYXMgbm8gYHBvLW11bHRpc2VsZWN0YC5cbiAgICpcbiAgICogRXhpc3RlbSBkdWFzIG1hbmVpcmFzIGRlIGN1c3RvbWl6YXIgbyBjb21wb25lbnRlLCBwYXNzYW5kbyB1bSBvYmpldG8gY29tIHRvZGFzIGFzIGxpdGVyYWlzIGRpc3BvbsOtdmVpczpcbiAgICpcbiAgICogYGBgXG4gICAqICBjb25zdCBjdXN0b21MaXRlcmFsczogUG9NdWx0aXNlbGVjdExpdGVyYWxzID0ge1xuICAgKiAgICBub0RhdGE6ICdOZW5odW0gZGFkbyBlbmNvbnRyYWRvJyxcbiAgICogICAgcGxhY2Vob2xkZXJTZWFyY2g6ICdCdXNjYXInXG4gICAqICB9O1xuICAgKiBgYGBcbiAgICpcbiAgICogT3UgcGFzc2FuZG8gYXBlbmFzIGFzIGxpdGVyYWlzIHF1ZSBkZXNlamEgY3VzdG9taXphcjpcbiAgICpcbiAgICogYGBgXG4gICAqICBjb25zdCBjdXN0b21MaXRlcmFsczogUG9NdWx0aXNlbGVjdExpdGVyYWxzID0ge1xuICAgKiAgICBub0RhdGE6ICdTZW0gZGFkb3MnXG4gICAqICB9O1xuICAgKiBgYGBcbiAgICpcbiAgICogRSBwYXJhIGNhcnJlZ2FyIGFzIGxpdGVyYWlzIGN1c3RvbWl6YWRhcywgYmFzdGEgYXBlbmFzIHBhc3NhciBvIG9iamV0byBwYXJhIG8gY29tcG9uZW50ZTpcbiAgICpcbiAgICogYGBgXG4gICAqIDxwby1tdWx0aXNlbGVjdFxuICAgKiAgIFtwLWxpdGVyYWxzXT1cImN1c3RvbUxpdGVyYWxzXCI+XG4gICAqIDwvcG8tcG8tbXVsdGlzZWxlY3Q+XG4gICAqIGBgYFxuICAgKlxuICAgKiA+IE8gb2JqZXRvIHBhZHLDo28gZGUgbGl0ZXJhaXMgc2Vyw6EgdHJhZHV6aWRvIGRlIGFjb3JkbyBjb20gbyBpZGlvbWEgZG9cbiAgICogW2BQb0kxOG5TZXJ2aWNlYF0oL2RvY3VtZW50YXRpb24vcG8taTE4bikgb3UgZG8gYnJvd3Nlci5cbiAgICovXG4gIEBJbnB1dCgncC1saXRlcmFscycpIHNldCBsaXRlcmFscyh2YWx1ZTogUG9NdWx0aXNlbGVjdExpdGVyYWxzKSB7XG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgT2JqZWN0ICYmICEodmFsdWUgaW5zdGFuY2VvZiBBcnJheSkpIHtcbiAgICAgIHRoaXMuX2xpdGVyYWxzID0ge1xuICAgICAgICAuLi5wb011bHRpc2VsZWN0TGl0ZXJhbHNEZWZhdWx0W3BvTG9jYWxlRGVmYXVsdF0sXG4gICAgICAgIC4uLnBvTXVsdGlzZWxlY3RMaXRlcmFsc0RlZmF1bHRbdGhpcy5sYW5ndWFnZV0sXG4gICAgICAgIC4uLnZhbHVlXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9saXRlcmFscyA9IHBvTXVsdGlzZWxlY3RMaXRlcmFsc0RlZmF1bHRbdGhpcy5sYW5ndWFnZV07XG4gICAgfVxuICB9XG4gIGdldCBsaXRlcmFscygpIHtcbiAgICByZXR1cm4gdGhpcy5fbGl0ZXJhbHMgfHwgcG9NdWx0aXNlbGVjdExpdGVyYWxzRGVmYXVsdFt0aGlzLmxhbmd1YWdlXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIERlZmluZSBxdWUgbyBjYW1wbyBzZXLDoSBvYnJpZ2F0w7NyaW8uXG4gICAqXG4gICAqID4gRXN0YSBwcm9wcmllZGFkZSDDqSBkZXNjb25zaWRlcmFkYSBxdWFuZG8gbyBpbnB1dCBlc3TDoSBkZXNhYmlsaXRhZG8gYChwLWRpc2FibGVkKWAuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIEBJbnB1dCgncC1yZXF1aXJlZCcpIHNldCByZXF1aXJlZChyZXF1aXJlZDogYm9vbGVhbikge1xuICAgIHRoaXMuX3JlcXVpcmVkID0gPGFueT5yZXF1aXJlZCA9PT0gJycgPyB0cnVlIDogY29udmVydFRvQm9vbGVhbihyZXF1aXJlZCk7XG4gICAgdGhpcy52YWxpZGF0ZU1vZGVsKCk7XG4gIH1cblxuICBnZXQgcmVxdWlyZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3JlcXVpcmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmluZSBzZSBhIGluZGljYcOnw6NvIGRlIGNhbXBvIG9icmlnYXTDs3JpbyBzZXLDoSBleGliaWRhLlxuICAgKlxuICAgKiA+IE7Do28gc2Vyw6EgZXhpYmlkYSBhIGluZGljYcOnw6NvIHNlOlxuICAgKiAtIE7Do28gcG9zc3VpciBgcC1oZWxwYCBlL291IGBwLWxhYmVsYC5cbiAgICovXG4gIEBJbnB1dCgncC1zaG93LXJlcXVpcmVkJykgc2hvd1JlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogSW5kaWNhIHF1ZSBvIGNhbXBvIHNlcsOhIGRlc2FiaWxpdGFkby5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgQElucHV0KCdwLWRpc2FibGVkJykgc2V0IGRpc2FibGVkKGRpc2FibGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSA8YW55PmRpc2FibGVkID09PSAnJyA/IHRydWUgOiBjb252ZXJ0VG9Cb29sZWFuKGRpc2FibGVkKTtcbiAgICB0aGlzLnZhbGlkYXRlTW9kZWwoKTtcblxuICAgIHRoaXMudXBkYXRlVmlzaWJsZUl0ZW1zKCk7XG4gIH1cblxuICBnZXQgZGlzYWJsZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRXNjb25kZSBvIGNhbXBvIGRlIHBlc3F1aXNhIGV4aXN0ZW50ZSBkZW50cm8gZG8gZHJvcGRvd24gZG8gcG8tbXVsdGlzZWxlY3QuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIEBJbnB1dCgncC1oaWRlLXNlYXJjaCcpIHNldCBoaWRlU2VhcmNoKGhpZGVTZWFyY2g6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9oaWRlU2VhcmNoID0gPGFueT5oaWRlU2VhcmNoID09PSAnJyA/IHRydWUgOiBjb252ZXJ0VG9Cb29sZWFuKGhpZGVTZWFyY2gpO1xuICB9XG5cbiAgZ2V0IGhpZGVTZWFyY2goKSB7XG4gICAgcmV0dXJuIHRoaXMuX2hpZGVTZWFyY2g7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIE5lc3RhIHByb3ByaWVkYWRlIGRldmUgc2VyIGRlZmluaWRhIHVtYSBsaXN0YSBkZSBvYmpldG9zIHF1ZSBzZXLDoSBleGliaWRhIG5vIG11bHRpc2VsZWN0LlxuICAgKiBFc3RhIGxpc3RhIGRldmUgY29udGVyIG9zIHZhbG9yZXMgZSBvcyBsYWJlbHMgcXVlIHNlcsOjbyBhcHJlc2VudGFkb3MgbmEgdGVsYS5cbiAgICpcbiAgICogPiBFc3NhIHByb3ByaWVkYWRlIMOpIGltdXTDoXZlbCwgb3Ugc2VqYSwgc2VtcHJlIHF1ZSBxdWlzZXIgYXR1YWxpemFyIGEgbGlzdGEgZGUgb3DDp8O1ZXMgZGlzcG9uw612ZWlzXG4gICAqIGF0dWFsaXplIGEgcmVmZXLDqm5jaWEgZG8gb2JqZXRvOlxuICAgKlxuICAgKiBgYGBcbiAgICogLy8gYXR1YWxpemEgYSByZWZlcsOqbmNpYSBkbyBvYmpldG8gZ2FyYW50aW5kbyBhIGF0dWFsaXphw6fDo28gZG8gdGVtcGxhdGVcbiAgICogdGhpcy5vcHRpb25zID0gWy4uLnRoaXMub3B0aW9ucywgeyB2YWx1ZTogJ3gnLCBsYWJlbDogJ05vdmEgb3DDp8OjbycgfV07XG4gICAqXG4gICAqIC8vIGV2aXRlLCBwb2lzIG7Do28gYXR1YWxpemEgYSByZWZlcsOqbmNpYSBkbyBvYmpldG8gcG9kZW5kbyBnZXJhciBhdHJhc29zIG5hIGF0dWFsaXphw6fDo28gZG8gdGVtcGxhdGVcbiAgICogdGhpcy5vcHRpb25zLnB1c2goeyB2YWx1ZTogJ3gnLCBsYWJlbDogJ05vdmEgb3DDp8OjbycgfSk7XG4gICAqIGBgYFxuICAgKiA+IEEgbGlzdGEgcG9kZSBzZXIgZGVmaW5pZGEgdXRpbGl6YW5kbyB1bSBhcnJheSBjb20gbyB2YWxvciByZXByZXNlbnRhbmRvIGB2YWx1ZWAgZSBgbGFiZWxgIGRhcyBzZWd1aW50ZXMgZm9ybWFzOlxuICAgKlxuICAgKiBgYGBcbiAgICogPHBvLW11bHRpc2VsZWN0IG5hbWU9XCJtdWx0aXNlbGVjdFwiIHAtbGFiZWw9XCJQTyBNdWx0aXNlbGVjdFwiIFtwLW9wdGlvbnNdPVwiW3t2YWx1ZTogMSwgbGFiZWw6ICdPbmUnfSwge3ZhbHVlOiAyLCBsYWJlbDogJ3R3byd9XVwiPiA8L3BvLW11bHRpc2VsZWN0PlxuICAgKiBgYGBcbiAgICpcbiAgICogYGBgXG4gICAqIDxwby1tdWx0aXNlbGVjdCBuYW1lPVwibXVsdGlzZWxlY3RcIiBwLWxhYmVsPVwiUE8gTXVsdGlzZWxlY3RcIiBbcC1vcHRpb25zXT1cIlt7bmFtZTogJ1JvZ2VyJywgYWdlOiAyOH0sIHtuYW1lOiAnQW5uZScsIGFnZTogMzV9XVwiIHAtZmllbGQtbGFiZWw9XCJuYW1lXCIgcC1maWVsZC12YWx1ZT1cImFnZVwiPiA8L3BvLW11bHRpc2VsZWN0PlxuICAgKiBgYGBcbiAgICpcbiAgICogLSBBY29uc2VsaGEtc2UgdXRpbGl6YXIgdmFsb3JlcyBkaXN0aW50b3Mgbm8gYGxhYmVsYCBlIGB2YWx1ZWAgZG9zIGl0ZW5zLlxuICAgKi9cbiAgQElucHV0KCdwLW9wdGlvbnMnKSBzZXQgb3B0aW9ucyhvcHRpb25zOiBBcnJheTxQb011bHRpc2VsZWN0T3B0aW9uIHwgYW55Pikge1xuICAgIHRoaXMuX29wdGlvbnMgPSBvcHRpb25zO1xuICB9XG5cbiAgZ2V0IG9wdGlvbnMoKTogQXJyYXk8UG9NdWx0aXNlbGVjdE9wdGlvbiB8IGFueT4ge1xuICAgIHJldHVybiB0aGlzLl9vcHRpb25zO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogSW5kaWNhIHF1ZSBhIGxpc3RhIGRlZmluaWRhIG5hIHByb3ByaWVkYWRlIHAtb3B0aW9ucyBzZXLDoSBvcmRlbmFkYSBwZWxvIGxhYmVsIGFudGVzIGRlIHNlciBhcHJlc2VudGFkYSBub1xuICAgKiBkcm9wZG93bi5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgQElucHV0KCdwLXNvcnQnKSBzZXQgc29ydChzb3J0OiBib29sZWFuKSB7XG4gICAgdGhpcy5fc29ydCA9IDxhbnk+c29ydCA9PT0gJycgPyB0cnVlIDogY29udmVydFRvQm9vbGVhbihzb3J0KTtcblxuICAgIHRoaXMudmFsaWRBbmRTb3J0T3B0aW9ucygpO1xuICB9XG5cbiAgZ2V0IHNvcnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NvcnQ7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBEZWZpbmUgbyBtb2RvIGRlIHBlc3F1aXNhIHV0aWxpemFkbyBubyBjYW1wbyBkZSBidXNjYSwgcXVhbmRvIGhhYmlsaXRhZG8uXG4gICAqIFZhbG9yZXMgZGVmaW5pZG9zIG5vIGVudW06IFBvTXVsdGlzZWxlY3RGaWx0ZXJNb2RlXG4gICAqXG4gICAqIEBkZWZhdWx0IGBzdGFydHNXaXRoYFxuICAgKi9cbiAgQElucHV0KCdwLWZpbHRlci1tb2RlJykgc2V0IGZpbHRlck1vZGUoZmlsdGVyTW9kZTogUG9NdWx0aXNlbGVjdEZpbHRlck1vZGUpIHtcbiAgICB0aGlzLl9maWx0ZXJNb2RlID0gZmlsdGVyTW9kZSBpbiBQb011bHRpc2VsZWN0RmlsdGVyTW9kZSA/IGZpbHRlck1vZGUgOiBQb011bHRpc2VsZWN0RmlsdGVyTW9kZS5zdGFydHNXaXRoO1xuICAgIHN3aXRjaCAodGhpcy5fZmlsdGVyTW9kZS50b1N0cmluZygpKSB7XG4gICAgICBjYXNlICdzdGFydHNXaXRoJzpcbiAgICAgICAgdGhpcy5fZmlsdGVyTW9kZSA9IFBvTXVsdGlzZWxlY3RGaWx0ZXJNb2RlLnN0YXJ0c1dpdGg7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnY29udGFpbnMnOlxuICAgICAgICB0aGlzLl9maWx0ZXJNb2RlID0gUG9NdWx0aXNlbGVjdEZpbHRlck1vZGUuY29udGFpbnM7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZW5kc1dpdGgnOlxuICAgICAgICB0aGlzLl9maWx0ZXJNb2RlID0gUG9NdWx0aXNlbGVjdEZpbHRlck1vZGUuZW5kc1dpdGg7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIGdldCBmaWx0ZXJNb2RlKCkge1xuICAgIHJldHVybiB0aGlzLl9maWx0ZXJNb2RlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogRGV2ZSBzZXIgaW5mb3JtYWRvIG8gbm9tZSBkYSBwcm9wcmllZGFkZSBkbyBvYmpldG8gcXVlIHNlcsOhIHV0aWxpemFkbyBwYXJhIGEgY29udmVyc8OjbyBkb3MgaXRlbnMgYXByZXNlbnRhZG9zIG5hIGxpc3RhIGRvIGNvbXBvbmVudGVcbiAgICogKGBwLW9wdGlvbnNgKSwgZXN0YSBwcm9wcmllZGFkZSBzZXLDoSByZXNwb25zw6F2ZWwgcGVsbyB0ZXh0byBkZSBhcHJlc2VudGHDp8OjbyBkZSBjYWRhIGl0ZW0gZGEgbGlzdGEuXG4gICAqXG4gICAqIE5lY2Vzc8OhcmlvIHF1YW5kbyBpbmZvcm1hciBvIHNlcnZpw6dvIGNvbW8gVVJMIGUgbyBtZXNtbyBuw6NvIGVzdGl2ZXIgcmV0b3JuYW5kbyB1bWEgbGlzdGEgZGUgb2JqZXRvcyBubyBwYWRyw6NvIGRhIGludGVyZmFjZVxuICAgKiBgUG9NdWx0aVNlbGVjdE9wdGlvbmAuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBsYWJlbGBcbiAgICovXG4gIEBJbnB1dCgncC1maWVsZC1sYWJlbCcpIHNldCBmaWVsZExhYmVsKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9maWVsZExhYmVsID0gdmFsdWUgPyB2YWx1ZSA6IFBPX01VTFRJU0VMRUNUX0ZJRUxEX0xBQkVMX0RFRkFVTFQ7XG5cbiAgICBpZiAoaXNUeXBlb2YodGhpcy5maWx0ZXJTZXJ2aWNlLCAnc3RyaW5nJykgJiYgdGhpcy5zZXJ2aWNlKSB7XG4gICAgICB0aGlzLnNlcnZpY2UuZmllbGRMYWJlbCA9IHRoaXMuX2ZpZWxkTGFiZWw7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGZpZWxkTGFiZWwoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpZWxkTGFiZWw7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBEZXZlIHNlciBpbmZvcm1hZG8gbyBub21lIGRhIHByb3ByaWVkYWRlIGRvIG9iamV0byBxdWUgc2Vyw6EgdXRpbGl6YWRvIHBhcmEgYSBjb252ZXJzw6NvIGRvcyBpdGVucyBhcHJlc2VudGFkb3MgbmEgbGlzdGEgZG8gY29tcG9uZW50ZVxuICAgKiAoYHAtb3B0aW9uc2ApLCBlc3RhIHByb3ByaWVkYWRlIHNlcsOhIHJlc3BvbnPDoXZlbCBwZWxvIHZhbG9yIGRlIGNhZGEgaXRlbSBkYSBsaXN0YS5cbiAgICpcbiAgICogTmVjZXNzw6FyaW8gcXVhbmRvIGluZm9ybWFyIG8gc2VydmnDp28gY29tbyBVUkwgZSBvIG1lc21vIG7Do28gZXN0aXZlciByZXRvcm5hbmRvIHVtYSBsaXN0YSBkZSBvYmpldG9zIG5vIHBhZHLDo28gZGEgaW50ZXJmYWNlXG4gICAqIGBQb011bHRpU2VsZWN0T3B0aW9uYC5cbiAgICpcbiAgICogQGRlZmF1bHQgYHZhbHVlYFxuICAgKi9cbiAgQElucHV0KCdwLWZpZWxkLXZhbHVlJykgc2V0IGZpZWxkVmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2ZpZWxkVmFsdWUgPSB2YWx1ZSA/IHZhbHVlIDogUE9fTVVMVElTRUxFQ1RfRklFTERfVkFMVUVfREVGQVVMVDtcblxuICAgIGlmIChpc1R5cGVvZih0aGlzLmZpbHRlclNlcnZpY2UsICdzdHJpbmcnKSAmJiB0aGlzLnNlcnZpY2UpIHtcbiAgICAgIHRoaXMuc2VydmljZS5maWVsZFZhbHVlID0gdGhpcy5fZmllbGRWYWx1ZTtcbiAgICB9XG4gIH1cblxuICBnZXQgZmllbGRWYWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fZmllbGRWYWx1ZTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKGxhbmd1YWdlU2VydmljZTogUG9MYW5ndWFnZVNlcnZpY2UpIHtcbiAgICB0aGlzLmxhbmd1YWdlID0gbGFuZ3VhZ2VTZXJ2aWNlLmdldFNob3J0TGFuZ3VhZ2UoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLmZpbHRlclNlcnZpY2UpIHtcbiAgICAgIHRoaXMuc2V0U2VydmljZSh0aGlzLmZpbHRlclNlcnZpY2UpO1xuICAgIH1cblxuICAgIHRoaXMuZmlsdGVyU3ViamVjdFxuICAgICAgLnBpcGUoXG4gICAgICAgIGRlYm91bmNlVGltZSh0aGlzLmRlYm91bmNlVGltZSksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgIHRhcCgoKSA9PiAodGhpcy5pc1NlcnZlclNlYXJjaGluZyA9IHRydWUpKSxcbiAgICAgICAgc3dpdGNoTWFwKChzZWFyY2g6IHN0cmluZykgPT4gdGhpcy5hcHBseUZpbHRlcihzZWFyY2gpKSxcbiAgICAgICAgdGFwKCgpID0+ICh0aGlzLmlzU2VydmVyU2VhcmNoaW5nID0gZmFsc2UpKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5zZXRMYWJlbHNBbmRWYWx1ZXNPcHRpb25zKCk7XG4gICAgdGhpcy52YWxpZEFuZFNvcnRPcHRpb25zKCk7XG4gICAgdGhpcy51cGRhdGVMaXN0KHRoaXMub3B0aW9ucyk7XG4gIH1cblxuICBzZXRTZXJ2aWNlKHNlcnZpY2U6IFBvTXVsdGlzZWxlY3RGaWx0ZXIgfCBzdHJpbmcpIHtcbiAgICBpZiAoaXNUeXBlb2Yoc2VydmljZSwgJ29iamVjdCcpKSB7XG4gICAgICB0aGlzLnNlcnZpY2UgPSA8UG9NdWx0aXNlbGVjdEZpbHRlclNlcnZpY2U+c2VydmljZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXJ2aWNlID0gdGhpcy5kZWZhdWx0U2VydmljZTtcbiAgICAgIHRoaXMuc2VydmljZS5jb25maWdQcm9wZXJ0aWVzKDxzdHJpbmc+c2VydmljZSwgdGhpcy5maWVsZExhYmVsLCB0aGlzLmZpZWxkVmFsdWUpO1xuICAgIH1cblxuICAgIHRoaXMuaXNGaXJzdEZpbHRlciA9IHRydWU7XG4gIH1cblxuICB2YWxpZEFuZFNvcnRPcHRpb25zKCkge1xuICAgIGlmICh0aGlzLm9wdGlvbnMgJiYgdGhpcy5vcHRpb25zLmxlbmd0aCkge1xuICAgICAgcmVtb3ZlVW5kZWZpbmVkQW5kTnVsbE9wdGlvbnNXaXRoRmllbGRWYWx1ZSh0aGlzLm9wdGlvbnMsIHRoaXMuZmllbGRWYWx1ZSk7XG4gICAgICByZW1vdmVEdXBsaWNhdGVkT3B0aW9uc1dpdGhGaWVsZFZhbHVlKHRoaXMub3B0aW9ucywgdGhpcy5maWVsZFZhbHVlKTtcbiAgICAgIHRoaXMuc2V0VW5kZWZpbmVkTGFiZWxzKHRoaXMub3B0aW9ucyk7XG5cbiAgICAgIGlmICh0aGlzLnNvcnQpIHtcbiAgICAgICAgc29ydE9wdGlvbnNCeVByb3BlcnR5KHRoaXMub3B0aW9ucywgdGhpcy5maWVsZExhYmVsKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzZXRVbmRlZmluZWRMYWJlbHMob3B0aW9ucykge1xuICAgIG9wdGlvbnMuZm9yRWFjaChvcHRpb24gPT4ge1xuICAgICAgaWYgKCFvcHRpb25bdGhpcy5maWVsZExhYmVsXSkge1xuICAgICAgICBvcHRpb25bdGhpcy5maWVsZExhYmVsXSA9IG9wdGlvblt0aGlzLmZpZWxkVmFsdWVdO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgdXBkYXRlTGlzdChvcHRpb25zOiBBcnJheTxQb011bHRpc2VsZWN0T3B0aW9uIHwgYW55Pikge1xuICAgIGlmIChvcHRpb25zKSB7XG4gICAgICB0aGlzLnZpc2libGVPcHRpb25zRHJvcGRvd24gPSBvcHRpb25zO1xuICAgIH1cbiAgfVxuXG4gIGNhbGxPbkNoYW5nZShzZWxlY3RlZE9wdGlvbnM6IEFycmF5PFBvTXVsdGlzZWxlY3RPcHRpb24gfCBhbnk+KSB7XG4gICAgaWYgKHRoaXMub25Nb2RlbENoYW5nZSkge1xuICAgICAgdGhpcy5vbk1vZGVsQ2hhbmdlKHRoaXMuZ2V0VmFsdWVzRnJvbU9wdGlvbnMoc2VsZWN0ZWRPcHRpb25zKSk7XG4gICAgICB0aGlzLmV2ZW50Q2hhbmdlKHNlbGVjdGVkT3B0aW9ucyk7XG4gICAgfVxuICB9XG5cbiAgZXZlbnRDaGFuZ2Uoc2VsZWN0ZWRPcHRpb25zKSB7XG4gICAgaWYgKHNlbGVjdGVkT3B0aW9ucyAmJiB0aGlzLmxhc3RMZW5ndGhNb2RlbCAhPT0gc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCkge1xuICAgICAgdGhpcy5jaGFuZ2UuZW1pdChzZWxlY3RlZE9wdGlvbnMpO1xuICAgIH1cbiAgICB0aGlzLmxhc3RMZW5ndGhNb2RlbCA9IHNlbGVjdGVkT3B0aW9ucyA/IHNlbGVjdGVkT3B0aW9ucy5sZW5ndGggOiBudWxsO1xuICB9XG5cbiAgZ2V0VmFsdWVzRnJvbU9wdGlvbnMoc2VsZWN0ZWRPcHRpb25zOiBBcnJheTxQb011bHRpc2VsZWN0T3B0aW9uIHwgYW55Pikge1xuICAgIHJldHVybiBzZWxlY3RlZE9wdGlvbnMgJiYgc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA/IHNlbGVjdGVkT3B0aW9ucy5tYXAob3B0aW9uID0+IG9wdGlvblt0aGlzLmZpZWxkVmFsdWVdKSA6IFtdO1xuICB9XG5cbiAgZ2V0TGFiZWxCeVZhbHVlKHZhbHVlKSB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLm9wdGlvbnMuZmluZEluZGV4KG9wdGlvbiA9PiBvcHRpb25bdGhpcy5maWVsZFZhbHVlXSA9PT0gdmFsdWUpO1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnNbaW5kZXhdLmxhYmVsO1xuICB9XG5cbiAgc2VhcmNoQnlMYWJlbChzZWFyY2g6IHN0cmluZywgb3B0aW9uczogQXJyYXk8UG9NdWx0aXNlbGVjdE9wdGlvbiB8IGFueT4sIGZpbHRlck1vZGU6IFBvTXVsdGlzZWxlY3RGaWx0ZXJNb2RlKSB7XG4gICAgaWYgKHNlYXJjaCAmJiBvcHRpb25zICYmIG9wdGlvbnMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBuZXdPcHRpb25zOiBBcnJheTxQb011bHRpc2VsZWN0T3B0aW9uIHwgYW55PiA9IFtdO1xuICAgICAgb3B0aW9ucy5mb3JFYWNoKG9wdGlvbiA9PiB7XG4gICAgICAgIGlmIChvcHRpb25bdGhpcy5maWVsZExhYmVsXSAmJiB0aGlzLmNvbXBhcmVNZXRob2Qoc2VhcmNoLCBvcHRpb24sIGZpbHRlck1vZGUpKSB7XG4gICAgICAgICAgbmV3T3B0aW9ucy5wdXNoKG9wdGlvbik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdGhpcy52aXNpYmxlT3B0aW9uc0Ryb3Bkb3duID0gbmV3T3B0aW9ucztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52aXNpYmxlT3B0aW9uc0Ryb3Bkb3duID0gWy4uLm9wdGlvbnNdO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBhcmVNZXRob2Qoc2VhcmNoOiBzdHJpbmcsIG9wdGlvbjogUG9NdWx0aXNlbGVjdE9wdGlvbiwgZmlsdGVyTW9kZTogUG9NdWx0aXNlbGVjdEZpbHRlck1vZGUpIHtcbiAgICBzd2l0Y2ggKGZpbHRlck1vZGUpIHtcbiAgICAgIGNhc2UgUG9NdWx0aXNlbGVjdEZpbHRlck1vZGUuc3RhcnRzV2l0aDpcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhcnRzV2l0aChzZWFyY2gsIG9wdGlvbik7XG4gICAgICBjYXNlIFBvTXVsdGlzZWxlY3RGaWx0ZXJNb2RlLmNvbnRhaW5zOlxuICAgICAgICByZXR1cm4gdGhpcy5jb250YWlucyhzZWFyY2gsIG9wdGlvbik7XG4gICAgICBjYXNlIFBvTXVsdGlzZWxlY3RGaWx0ZXJNb2RlLmVuZHNXaXRoOlxuICAgICAgICByZXR1cm4gdGhpcy5lbmRzV2l0aChzZWFyY2gsIG9wdGlvbik7XG4gICAgfVxuICB9XG5cbiAgc3RhcnRzV2l0aChzZWFyY2g6IHN0cmluZywgb3B0aW9uOiBQb011bHRpc2VsZWN0T3B0aW9uKSB7XG4gICAgcmV0dXJuIG9wdGlvblt0aGlzLmZpZWxkTGFiZWxdLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChzZWFyY2gudG9Mb3dlckNhc2UoKSk7XG4gIH1cblxuICBjb250YWlucyhzZWFyY2g6IHN0cmluZywgb3B0aW9uOiBQb011bHRpc2VsZWN0T3B0aW9uKSB7XG4gICAgcmV0dXJuIG9wdGlvblt0aGlzLmZpZWxkTGFiZWxdLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihzZWFyY2gudG9Mb3dlckNhc2UoKSkgPiAtMTtcbiAgfVxuXG4gIGVuZHNXaXRoKHNlYXJjaDogc3RyaW5nLCBvcHRpb246IFBvTXVsdGlzZWxlY3RPcHRpb24pIHtcbiAgICByZXR1cm4gb3B0aW9uW3RoaXMuZmllbGRMYWJlbF0udG9Mb3dlckNhc2UoKS5lbmRzV2l0aChzZWFyY2gudG9Mb3dlckNhc2UoKSk7XG4gIH1cblxuICB2YWxpZGF0ZShjOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHtcbiAgICBpZiAocmVxdWlyZWRGYWlsZWQodGhpcy5yZXF1aXJlZCwgdGhpcy5kaXNhYmxlZCwgYy52YWx1ZSkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHJlcXVpcmVkOiB7XG4gICAgICAgICAgdmFsaWQ6IGZhbHNlXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICB1cGRhdGVTZWxlY3RlZE9wdGlvbnMobmV3T3B0aW9uczogQXJyYXk8YW55Piwgb3B0aW9ucyA9IHRoaXMub3B0aW9ucykge1xuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25zID0gW107XG5cbiAgICBpZiAobmV3T3B0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMubGFzdExlbmd0aE1vZGVsID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmZpbHRlclNlcnZpY2UpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25zID0gbmV3T3B0aW9ucztcbiAgICB9IGVsc2Uge1xuICAgICAgbmV3T3B0aW9ucy5mb3JFYWNoKG5ld09wdGlvbiA9PiB7XG4gICAgICAgIG9wdGlvbnMuZm9yRWFjaChvcHRpb24gPT4ge1xuICAgICAgICAgIGlmIChvcHRpb25bdGhpcy5maWVsZFZhbHVlXSA9PT0gbmV3T3B0aW9uW3RoaXMuZmllbGRWYWx1ZV0pIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25zLnB1c2gob3B0aW9uKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy51cGRhdGVWaXNpYmxlSXRlbXMoKTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWVzOiBhbnkpOiB2b2lkIHtcbiAgICB2YWx1ZXMgPSB2YWx1ZXMgfHwgW107XG5cbiAgICBpZiAodGhpcy5zZXJ2aWNlICYmIHZhbHVlcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuZ2V0T2JqZWN0c0J5VmFsdWVzU3Vic2NyaXB0aW9uID0gdGhpcy5zZXJ2aWNlLmdldE9iamVjdHNCeVZhbHVlcyh2YWx1ZXMpLnN1YnNjcmliZShvcHRpb25zID0+IHtcbiAgICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZE9wdGlvbnMob3B0aW9ucyk7XG4gICAgICAgIHRoaXMuY2FsbE9uQ2hhbmdlKHRoaXMuc2VsZWN0ZWRPcHRpb25zKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBWYWxpZGFyIHNlIHRvZG9zIG9zIGl0ZW1zIGV4aXN0ZW0gZW50cmUgb3Mgb3B0aW9ucywgc2Vuw6NvIGF0dWFsaXphciBvIG1vZGVsXG4gICAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkT3B0aW9ucyh2YWx1ZXMubWFwKHZhbHVlID0+ICh7IFt0aGlzLmZpZWxkVmFsdWVdOiB2YWx1ZSB9KSkpO1xuXG4gICAgICBpZiAodGhpcy5zZWxlY3RlZE9wdGlvbnMgJiYgdGhpcy5zZWxlY3RlZE9wdGlvbnMubGVuZ3RoIDwgdmFsdWVzLmxlbmd0aCkge1xuICAgICAgICB0aGlzLmNhbGxPbkNoYW5nZSh0aGlzLnNlbGVjdGVkT3B0aW9ucyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gRnVuw6fDo28gaW1wbGVtZW50YWRhIGRvIENvbnRyb2xWYWx1ZUFjY2Vzc29yXG4gIC8vIFVzYWRhIHBhcmEgaW50ZXJjZXB0YXIgb3MgZXN0YWRvcyBkZSBoYWJpbGl0YWRvIHZpYSBmb3JtcyBhcGlcbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uTW9kZWxDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uTW9kZWxUb3VjaGVkID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGZuOiAoKSA9PiB2b2lkKSB7XG4gICAgdGhpcy52YWxpZGF0b3JDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHByaXZhdGUgc2V0TGFiZWxzQW5kVmFsdWVzT3B0aW9ucygpIHtcbiAgICBpZiAodGhpcy5maWVsZExhYmVsICYmIHRoaXMuZmllbGRWYWx1ZSAmJiB0aGlzLm9wdGlvbnMpIHtcbiAgICAgIHRoaXMub3B0aW9ucy5tYXAob3B0aW9uID0+IHtcbiAgICAgICAgb3B0aW9uLmxhYmVsID0gb3B0aW9uW3RoaXMuZmllbGRMYWJlbF07XG4gICAgICAgIG9wdGlvbi52YWx1ZSA9IG9wdGlvblt0aGlzLmZpZWxkVmFsdWVdO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZU1vZGVsKCkge1xuICAgIGlmICh0aGlzLnZhbGlkYXRvckNoYW5nZSkge1xuICAgICAgdGhpcy52YWxpZGF0b3JDaGFuZ2UoKTtcbiAgICB9XG4gIH1cblxuICBhYnN0cmFjdCBhcHBseUZpbHRlcih2YWx1ZT86IHN0cmluZyk6IE9ic2VydmFibGU8QXJyYXk8UG9NdWx0aXNlbGVjdE9wdGlvbiB8IGFueT4+O1xuICBhYnN0cmFjdCB1cGRhdGVWaXNpYmxlSXRlbXMoKTogdm9pZDtcbn1cbiJdfQ==
|
|
723
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tbXVsdGlzZWxlY3QtYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NvbXBvbmVudHMvcG8tZmllbGQvcG8tbXVsdGlzZWxlY3QvcG8tbXVsdGlzZWxlY3QtYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvRSxPQUFPLEVBQWMsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFFckYsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixRQUFRLEVBQ1IscUNBQXFDLEVBQ3JDLDJDQUEyQyxFQUMzQyxxQkFBcUIsRUFDdEIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFakQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7OztBQU01RSxNQUFNLG9DQUFvQyxHQUFHLEdBQUcsQ0FBQztBQUNqRCxNQUFNLGtDQUFrQyxHQUFHLE9BQU8sQ0FBQztBQUNuRCxNQUFNLGtDQUFrQyxHQUFHLE9BQU8sQ0FBQztBQUVuRCxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRztJQUMxQyxFQUFFLEVBQXlCO1FBQ3pCLE1BQU0sRUFBRSxlQUFlO1FBQ3ZCLGlCQUFpQixFQUFFLFFBQVE7UUFDM0IsU0FBUyxFQUFFLFlBQVk7UUFDdkIsVUFBVSxFQUFFLGNBQWM7S0FDM0I7SUFDRCxFQUFFLEVBQXlCO1FBQ3pCLE1BQU0s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O21CQUFDLGVBQWU7WUFvQ0UsT0FBTztrQkFBOUIsS0FBSzttQkFBQyxXQUFXO1lBa0JHLElBQUk7a0JBQXhCLEtBQUs7bUJBQUMsUUFBUTtZQW9CYSxVQUFVO2tCQUFyQyxLQUFLO21CQUFDLGVBQWU7WUErQk0sVUFBVTtrQkFBckMsS0FBSzttQkFBQyxlQUFlO1lBd0JNLFVBQVU7a0JBQXJDLEtBQUs7bUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgcG9Mb2NhbGVEZWZhdWx0IH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcG8tbGFuZ3VhZ2UvcG8tbGFuZ3VhZ2UuY29uc3RhbnQnO1xuaW1wb3J0IHsgUG9MYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wby1sYW5ndWFnZS9wby1sYW5ndWFnZS5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIGNvbnZlcnRUb0Jvb2xlYW4sXG4gIGlzVHlwZW9mLFxuICByZW1vdmVEdXBsaWNhdGVkT3B0aW9uc1dpdGhGaWVsZFZhbHVlLFxuICByZW1vdmVVbmRlZmluZWRBbmROdWxsT3B0aW9uc1dpdGhGaWVsZFZhbHVlLFxuICBzb3J0T3B0aW9uc0J5UHJvcGVydHlcbn0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvdXRpbCc7XG5pbXBvcnQgeyByZXF1aXJlZEZhaWxlZCB9IGZyb20gJy4vLi4vdmFsaWRhdG9ycyc7XG5cbmltcG9ydCB7IFBvTXVsdGlzZWxlY3RGaWx0ZXJNb2RlIH0gZnJvbSAnLi9wby1tdWx0aXNlbGVjdC1maWx0ZXItbW9kZS5lbnVtJztcbmltcG9ydCB7IFBvTXVsdGlzZWxlY3RGaWx0ZXIgfSBmcm9tICcuL3BvLW11bHRpc2VsZWN0LWZpbHRlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9NdWx0aXNlbGVjdEZpbHRlclNlcnZpY2UgfSBmcm9tICcuL3BvLW11bHRpc2VsZWN0LWZpbHRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFBvTXVsdGlzZWxlY3RMaXRlcmFscyB9IGZyb20gJy4vcG8tbXVsdGlzZWxlY3QtbGl0ZXJhbHMuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvTXVsdGlzZWxlY3RPcHRpb24gfSBmcm9tICcuL3BvLW11bHRpc2VsZWN0LW9wdGlvbi5pbnRlcmZhY2UnO1xuXG5jb25zdCBQT19NVUxUSVNFTEVDVF9ERUJPVU5DRV9USU1FX0RFRkFVTFQgPSA0MDA7XG5jb25zdCBQT19NVUxUSVNFTEVDVF9GSUVMRF9MQUJFTF9ERUZBVUxUID0gJ2xhYmVsJztcbmNvbnN0IFBPX01VTFRJU0VMRUNUX0ZJRUxEX1ZBTFVFX0RFRkFVTFQgPSAndmFsdWUnO1xuXG5leHBvcnQgY29uc3QgcG9NdWx0aXNlbGVjdExpdGVyYWxzRGVmYXVsdCA9IHtcbiAgZW46IDxQb011bHRpc2VsZWN0TGl0ZXJhbHM+e1xuICAgIG5vRGF0YTogJ05vIGRhdGEgZm91bmQnLFxuICAgIHBsYWNlaG9sZGVyU2VhcmNoOiAnU2VhcmNoJyxcbiAgICBzZWxlY3RBbGw6ICdTZWxlY3QgYWxsJyxcbiAgICBzZWxlY3RJdGVtOiAnU2VsZWN0IGl0ZW1zJ1xuICB9LFxuICBlczogPFBvTXVsdGlzZWxlY3RMaXRlcmFscz57XG4gICAgbm9EYXRhOiAnRGF0b3Mgbm8gZW5jb250cmFkb3MnLFxuICAgIHBsYWNlaG9sZGVyU2VhcmNoOiAnQnVzY2EnLFxuICAgIHNlbGVjdEFsbDogJ1NlbGVjY2lvbmFyIHRvZG8nLFxuICAgIHNlbGVjdEl0ZW06ICdTZWxlY2Npb25hciBpdGVtcydcbiAgfSxcbiAgcHQ6IDxQb011bHRpc2VsZWN0TGl0ZXJhbHM+e1xuICAgIG5vRGF0YTogJ05lbmh1bSBkYWRvIGVuY29udHJhZG8nLFxuICAgIHBsYWNlaG9sZGVyU2VhcmNoOiAnQnVzY2FyJyxcbiAgICBzZWxlY3RBbGw6ICdTZWxlY2lvbmFyIHRvZG9zJyxcbiAgICBzZWxlY3RJdGVtOiAnU2VsZWNpb25hciBpdGVucydcbiAgfSxcbiAgcnU6IDxQb011bHRpc2VsZWN0TGl0ZXJhbHM+e1xuICAgIG5vRGF0YTogJ9CU0LDQvdC90YvQtSDQvdC1INC90LDQudC00LXQvdGLJyxcbiAgICBwbGFjZWhvbGRlclNlYXJjaDogJ9C40YHQutCw0YLRjCcsXG4gICAgc2VsZWN0QWxsOiAn0JLRi9Cx0YDQsNGC0Ywg0LLRgdC1JyxcbiAgICBzZWxlY3RJdGVtOiAn0JLRi9Cx0YDQsNGC0Ywg0Y3Qu9C10LzQtdC90YLRiydcbiAgfVxufTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqXG4gKiBPIHBvLW11bHRpc2VsZWN0IMOpIHVtIGNvbXBvbmVudGUgZGUgbcO6bHRpcGxhIHNlbGXDp8Ojby5cbiAqIEVzdGUgY29tcG9uZW50ZSDDqSByZWNvbWVuZGFkbyBwYXJhIGRhciBhbyB1c3XDoXJpbyBhIG9ww6fDo28gZGUgc2VsZWNpb25hciB2w6FyaW9zIGl0ZW5zIGVtIHVtYSBsaXN0YS5cbiAqXG4gKiBRdWFuZG8gYSBsaXN0YSBwb3NzdWlyIHBvdWNvcyBpdGVucywgZGV2ZS1zZSBkYXIgcHJlZmVyw6puY2lhIHBhcmEgbyB1c28gZG8gcG8tY2hlY2tib3gtZ3JvdXAsIHBvciBzZXIgbWFpcyBzaW1wbGVzXG4gKiBlIG1haXMgcsOhcGlkbyBwYXJhIGEgc2VsZcOnw6NvIGRvIHVzdcOhcmlvLlxuICpcbiAqIEVzdGUgY29tcG9uZW50ZSB0YW1iw6ltIG7Do28gZGV2ZSBzZXIgdXRpbGl6YWRvIGVtIGNhc29zIG9uZGUgYSBzZWxlw6fDo28gc2VqYSDDum5pY2EuIE5lc3NlcyBjYXNvcywgZGV2ZS1zZSB1dGlsaXphciBvXG4gKiBwby1zZWxlY3QsIHBvLWNvbWJvIG91IHBvLXJhZGlvLWdyb3VwLlxuICpcbiAqIENvbSBlbGUgdGFtYsOpbSDDqSBwb3Nzw612ZWwgZGVmaW5pciB1bWEgbGlzdGEgw6AgcGFydGlyIGRhIHJlcXVpc2nDp8OjbyBkZSB1bSBzZXJ2acOnbyBkZWZpbmlkbyBlbSBgcC1maWx0ZXItc2VydmljZWAuXG4gKlxuICogIyMjIyBCb2FzIHByw6F0aWNhc1xuICpcbiAqIC0gQ2FzbyBhIGxpc3RhIGFwcmVzZW50ZSBtZW5vcyBkZSA1IGl0ZW5zLCBjb25zaWRlcmUgdXRpbGl6YXIgb3V0cm8gY29tcG9uZW50ZTtcbiAqIC0gTsOjbyB1dGlsaXplIG8gbXVsdGlzZWxlY3QgY2FzbyBvIHVzdcOhcmlvIHBvc3NhIHNlbGVjaW9uYXIgYXBlbmFzIHVtYSBvcMOnw6NvLiBQYXJhIGVzc2UgY2Fzbywgb3B0ZSBwb3IgdXRpbGl6YXIgcG8tcmFkaW8gb3UgcG8tc2VsZWN0O1xuICogLSBTZW1wcmUgcXVlIHBvc3PDrXZlbCwgYWdydXBlIGFzIG9ww6fDtWVzIGUgdXNlIGxhYmVscyBjdXJ0YXMgcGFyYSBkZXNjcmV2ZXIgbyBjb250ZcO6ZG8uIEV4ZW1wbG86IGVtIHVtYSBjb21iaW5hw6fDo28gZGUgYWxpbWVudG9zLFxuICogYXMgb3DDp8O1ZXMgcG9kZW0gc2VyIGFncnVwYWRhcyBwb3IgVmVnZXRhaXMsIEZydXRhcywgZXRjO1xuICpcbiAqICMjIyMgQWNlc3NpYmlsaWRhZGUgdHJhdGFkYSBubyBjb21wb25lbnRlXG4gKlxuICogQWxndW1hcyBkaXJldHJpemVzIGRlIGFjZXNzaWJpbGlkYWRlIGrDoSBzw6NvIHRyYXRhZGFzIG5vIGNvbXBvbmVudGUgaW50ZXJuYW1lbnRlLCBlIG7Do28gcG9kZW0gc2VyIGFsdGVyYWRhcyBwZWxvIHByb3ByaWV0w6FyaW8gZG8gY29udGXDumRvLiBTw6NvIGVsYXM6XG4gKlxuICogLSBRdWFuZG8gZW0gZm9jbywgbyBtdWx0aXNlbGVjdCBhYnJlIG8gbGlzdGJveCB1c2FuZG8gYXMgdGVjbGFzIGRlIEVzcGHDp28gb3UgRW50ZXIgZG8gdGVjbGFkby5cbiAqIC0gVXRpbGl6ZSBhcyB0ZWNsYXMgQXJyb3cgVXAgW3NldGEgcGFyYSBjaW1hXSBvdSBBcnJvdyBEb3duIFtzZXRhIHBhcmEgYmFpeG9dIGRvIHRlY2xhZG8gcGFyYSBuYXZlZ2FyIGVudHJlIG9zIGl0ZW5zIGRvIGxpc3Rib3guXG4gKiAtIFV0aWxpemUgYSB0ZWNsYSBFc2MgZG8gdGVjbGFkbyBwYXJhIGZlY2hhciBvIGxpc3Rib3guXG4gKiAtIFF1YW5kbyB1bSBpdGVtIGVzdGl2ZXIgZW0gZm9jbywgdXRpbGl6ZSBhcyB0ZWNsYXMgQXJyb3cgUmlnaHQgW3NldGEgcGFyYSBkaXJlaXRhXSBvdSBBcnJvdyBMZWZ0IFtzZXRhIHBhcmEgZXNxdWVyZGFdIGRvIHRlY2xhZG8gcGFyYSBuYXZlZ2FyIGVudHJlIGVsZXMuXG4gKiAtIFF1YW5kbyBlbSBmb2NvIGUgaGF2ZW5kbyB1bSBpdGVtIG91IG1haXMgasOhIHNlbGVjaW9uYWRvLCB1dGlsaXplIGEgdGVjbGEgQXJyb3cgRG93biBbc2V0YSBwYXJhIGJhaXhvXSBkbyB0ZWNsYWRvIHBhcmEgYWJyaXIgbyBsaXN0Ym94LlxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQb011bHRpc2VsZWN0QmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQsIFZhbGlkYXRvciB7XG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEFwbGljYSBmb2NvIG5vIGVsZW1lbnRvIGFvIHNlciBpbmljaWFkby5cbiAgICpcbiAgICogPiBDYXNvIG1haXMgZGUgdW0gZWxlbWVudG8gc2VqYSBjb25maWd1cmFkbyBjb20gZXNzYSBwcm9wcmllZGFkZSwgYXBlbmFzIG8gw7psdGltbyBlbGVtZW50byBkZWNsYXJhZG8gY29tIGVsYSB0ZXLDoSBvIGZvY28uXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIEBJbnB1dCh7IGFsaWFzOiAncC1hdXRvLWZvY3VzJywgdHJhbnNmb3JtOiBjb252ZXJ0VG9Cb29sZWFuIH0pIGF1dG9Gb2N1czogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBMYWJlbCBubyBjb21wb25lbnRlLiAqL1xuICBASW5wdXQoJ3AtbGFiZWwnKSBsYWJlbD86IHN0cmluZztcblxuICAvKiogVGV4dG8gZGUgYXBvaW8gcGFyYSBvIGNhbXBvLiAqL1xuICBASW5wdXQoJ3AtaGVscCcpIGhlbHA/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRGVmaW5lIHNlIGEgaW5kaWNhw6fDo28gZGUgY2FtcG8gb3BjaW9uYWwgc2Vyw6EgZXhpYmlkYS5cbiAgICpcbiAgICogPiBOw6NvIHNlcsOhIGV4aWJpZGEgYSBpbmRpY2HDp8OjbyBzZTpcbiAgICogLSBPIGNhbXBvIGNvbnRlciBgcC1yZXF1aXJlZGA7XG4gICAqIC0gTsOjbyBwb3NzdWlyIGBwLWhlbHBgIGUvb3UgYHAtbGFiZWxgLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICBASW5wdXQoJ3Atb3B0aW9uYWwnKSBvcHRpb25hbDogYm9vbGVhbjtcblxuICAvKiogTWVuc2FnZW0gYXByZXNlbnRhZGEgZW5xdWFudG8gbyBjYW1wbyBlc3RpdmVyIHZhemlvLiAqL1xuICBASW5wdXQoJ3AtcGxhY2Vob2xkZXInKSBwbGFjZWhvbGRlcj86IHN0cmluZyA9ICcnO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogUGxhY2Vob2xkZXIgZG8gY2FtcG8gZGUgcGVzcXVpc2EuXG4gICAqXG4gICAqID4gQ2FzbyBvIG1lc21vIG7Do28gc2VqYSBpbmZvcm1hZG8sIG8gdmFsb3IgcGFkcsOjbyBzZXLDoSB0cmFkdXppZG8gY29tIGJhc2Ugbm8gaWRpb21hIGRvIG5hdmVnYWRvciAocHQsIGVzIGUgZW4pLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgQnVzY2FyYFxuICAgKi9cbiAgQElucHV0KCdwLXBsYWNlaG9sZGVyLXNlYXJjaCcpIHBsYWNlaG9sZGVyU2VhcmNoPzogc3RyaW5nID0gJyc7XG5cbiAgLyoqIE5vbWUgZG8gY29tcG9uZW50ZS4gKi9cbiAgQElucHV0KCduYW1lJykgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEluZGljYSBzZSBvIGNhbXBvIFwiU2VsZWNpb25hciB0b2Rvc1wiIHNlcsOhIGVzY29uZGlkby5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgQElucHV0KHsgYWxpYXM6ICdwLWhpZGUtc2VsZWN0LWFsbCcsIHRyYW5zZm9ybTogY29udmVydFRvQm9vbGVhbiB9KSBoaWRlU2VsZWN0QWxsPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBQb2RlIHNlciBpbmZvcm1hZGEgdW1hIGZ1bsOnw6NvIHF1ZSBzZXLDoSBkaXNwYXJhZGEgcXVhbmRvIGhvdXZlciBhbHRlcmHDp8O1ZXMgbm8gbmdNb2RlbC5cbiAgICovXG4gIEBPdXRwdXQoJ3AtY2hhbmdlJykgY2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIERlZmluZSBxdWUgbyBkcm9wZG93biBkbyBtdWx0aXNlbGVjdCBzZXLDoSBpbmNsdWlkbyBubyBib2R5IGRhIHDDoWdpbmEgZSBuw6NvIHN1c3BlbnNvIGNvbSBhIGNhaXhhIGRlIHRleHRvIGRvIGNvbXBvbmVudGUuXG4gICAqIE9ww6fDo28gbmVjZXNzw6FyaWEgcGFyYSBvIGNhc28gZGUgdXNvIGRvIGNvbXBvbmVudGUgZW0gcMOhZ2luYXMgcXVlIG5lY2Vzc2l0YW0gcmVuZGVyaXphciBvIG11bHRpc2VsZWN0IGZvcmEgZG8gY29udGXDumRvIHByaW5jaXBhbC5cbiAgICpcbiAgICogPiBPYnM6IE8gdXNvIGRlc3NhIHByb3ByaWVkYWRlIHBvZGUgYWNhcnJldGFyIG5hIHBlcmRhIHNlcXVlbmNpYWwgZGEgdGFidWxhw6fDo28gZGEgcMOhZ2luYVxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICBASW5wdXQoeyBhbGlhczogJ3AtYXBwZW5kLWluLWJvZHknLCB0cmFuc2Zvcm06IGNvbnZlcnRUb0Jvb2xlYW4gfSkgYXBwZW5kQm94PzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHNlbGVjdGVkT3B0aW9uczogQXJyYXk8UG9NdWx0aXNlbGVjdE9wdGlvbiB8IGFueT4gPSBbXTtcbiAgdmlzaWJsZU9wdGlvbnNEcm9wZG93bjogQXJyYXk8UG9NdWx0aXNlbGVjdE9wdGlvbiB8IGFueT4gPSBbXTtcbiAgdmlzaWJsZVRhZ3MgPSBbXTtcbiAgaXNTZXJ2ZXJTZWFyY2hpbmcgPSBmYWxzZTtcbiAgaXNGaXJzdEZpbHRlcjogYm9vbGVhbiA9IHRydWU7XG4gIGZpbHRlclN1YmplY3QgPSBuZXcgU3ViamVjdCgpO1xuICBzZXJ2aWNlOiBQb011bHRpc2VsZWN0RmlsdGVyU2VydmljZTtcbiAgZGVmYXVsdFNlcnZpY2U6IFBvTXVsdGlzZWxlY3RGaWx0ZXJTZXJ2aWNlO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICBwcm90ZWN0ZWQgb25Nb2RlbFRvdWNoZWQ6IGFueSA9IG51bGw7XG5cbiAgcHJvdGVjdGVkIGNsaWNrT3V0TGlzdGVuZXI6ICgpID0+IHZvaWQ7XG4gIHByb3RlY3RlZCByZXNpemVMaXN0ZW5lcjogKCkgPT4gdm9pZDtcbiAgcHJvdGVjdGVkIGdldE9iamVjdHNCeVZhbHVlc1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIHByaXZhdGUgX2ZpbHRlclNlcnZpY2U/OiBQb011bHRpc2VsZWN0RmlsdGVyIHwgc3RyaW5nO1xuICBwcml2YXRlIF9kZWJvdW5jZVRpbWU/OiBudW1iZXIgPSA0MDA7XG4gIHByaXZhdGUgX2Rpc2FibGVkPzogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF9maWx0ZXJNb2RlPzogUG9NdWx0aXNlbGVjdEZpbHRlck1vZGUgPSBQb011bHRpc2VsZWN0RmlsdGVyTW9kZS5zdGFydHNXaXRoO1xuICBwcml2YXRlIF9oaWRlU2VhcmNoPzogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF9saXRlcmFsczogUG9NdWx0aXNlbGVjdExpdGVyYWxzO1xuICBwcml2YXRlIF9vcHRpb25zOiBBcnJheTxQb011bHRpc2VsZWN0T3B0aW9uIHwgYW55PjtcbiAgcHJpdmF0ZSBfcmVxdWlyZWQ/OiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX3NvcnQ/OiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX2F1dG9IZWlnaHQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfZmllbGRMYWJlbD86IHN0cmluZyA9IFBPX01VTFRJU0VMRUNUX0ZJRUxEX0xBQkVMX0RFRkFVTFQ7XG4gIHByaXZhdGUgX2ZpZWxkVmFsdWU/OiBzdHJpbmcgPSBQT19NVUxUSVNFTEVDVF9GSUVMRF9WQUxVRV9ERUZBVUxUO1xuICBwcml2YXRlIGxhbmd1YWdlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBsYXN0TGVuZ3RoTW9kZWw7XG4gIHByaXZhdGUgb25Nb2RlbENoYW5nZTogYW55O1xuICBwcml2YXRlIHZhbGlkYXRvckNoYW5nZTogYW55O1xuICBwcml2YXRlIGF1dG9IZWlnaHRJbml0aWFsVmFsdWU6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogTmVzdGEgcHJvcHJpZWRhZGUgcG9kZSBzZXIgaW5mb3JtYWRhIGEgVVJMIGRvIHNlcnZpw6dvIGVtIHF1ZSBzZXLDoSByZWFsaXphZG8gbyBmaWx0cm8gcGFyYSBjYXJyZWdhbWVudG8gZGEgbGlzdGEgZGUgaXRlbnMgbm8gY29tcG9uZW50ZS5cbiAgICpcbiAgICpUYW1iw6ltIGV4aXN0ZSBhIHBvc3NpYmlsaWRhZGUgZGUgaW5mb3JtYXIgdW0gc2VydmnDp28gaW1wbGVtZW50YW5kbyBhIGludGVyZmFjZSBgUG9NdWx0aXNlbGVjdEZpbHRlcmAuXG4gICAqXG4gICAqQ2FzbyB1dGlsaXphZG8gdW1hIFVSTCwgbyBzZXJ2acOnbyBkZXZlIHNlciByZXRvcm5hZG8gbm8gcGFkcsOjbyBbQVBJIFBPIFVJXShodHRwczovL3BvLXVpLmlvL2d1aWRlcy9hcGkpIGUgdXRpbGl6YXIgYXMgcHJvcHJpZWRhZGVzIGBwLWZpZWxkLWxhYmVsYCBlIGBwLWZpZWxkLXZhbHVlYCBwYXJhIGEgY29uc3RydcOnw6NvIGRhIGxpc3RhIGRlIGl0ZW5zLlxuICAgKlxuICAgKlF1YW5kbyB1dGlsaXphZGEgdW1hIFVSTCBkZSBzZXJ2acOnbywgZW50w6NvIHNlcsOhIGNvbmNhdGVuYWRhIG5lc3RhIFVSTCBvIHZhbG9yIHF1ZSBkZXNlamEtc2UgZmlsdHJhciBkYSBzZWd1aW50ZSBmb3JtYTpcbiAgICpcbiAgICpgYGBcbiAgICogLy8gY2FzbyBmaWx0cmFyIHBvciBcIlBldGVyXCJcbiAgICogIGh0dHBzOi8vbG9jYWxob3N0OjgwODAvYXBpL2hlcm9lcz9maWx0ZXI9UGV0ZXJcbiAgICpgYGBcbiAgICpcbiAgICpFIGNhc28gaW5pY2lhciBvIGNhbXBvIGNvbSB2YWxvciwgb3MgaXRlbnMgc2Vyw6NvIGJ1c2NhZG9zIGRhIHNlZ3VpbnRlIGZvcm1hOlxuICAgKlxuICAgKmBgYFxuICAgKiAvLyBjYXNvIG8gdmFsb3IgZG8gY2FtcG8gZm9yIFsxMjM0LCA1Njc4XTtcbiAgICogIGh0dHBzOi8vbG9jYWxob3N0OjgwODAvYXBpL2hlcm9lcz92YWx1ZT0xMjM0LDU2NzhcbiAgICpcbiAgICogLy9PICp2YWx1ZSogw6kgcmVmZXJlbnRlIGFvIGBmaWVsZFZhbHVlYC5cbiAgICpgYGBcbiAgICpcbiAgICovXG4gIEBJbnB1dCgncC1maWx0ZXItc2VydmljZScpIHNldCBmaWx0ZXJTZXJ2aWNlKHZhbHVlOiBQb011bHRpc2VsZWN0RmlsdGVyIHwgc3RyaW5nKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLl9maWx0ZXJTZXJ2aWNlID0gdmFsdWU7XG4gICAgICB0aGlzLmF1dG9IZWlnaHQgPSB0aGlzLmF1dG9IZWlnaHRJbml0aWFsVmFsdWUgIT09IHVuZGVmaW5lZCA/IHRoaXMuYXV0b0hlaWdodEluaXRpYWxWYWx1ZSA6IHRydWU7XG4gICAgICB0aGlzLm9wdGlvbnMgPSBbXTtcbiAgICB9XG4gIH1cblxuICBnZXQgZmlsdGVyU2VydmljZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVyU2VydmljZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIERlZmluZSBxdWUgYSBhbHR1cmEgZG8gY29tcG9uZW50ZSBzZXLDoSBhdXRvIGFqdXN0w6F2ZWwsIHBvc3N1aW5kbyB1bWEgYWx0dXJhIG1pbmltYSBwb3LDqW0gYSBhbHR1cmEgbcOheGltYSBzZXLDoSBkZSBhY29yZG9cbiAgICogY29tIG8gbsO6bWVybyBkZSBpdGVucyBzZWxlY2lvbmFkb3MgZSBhIGV4dGVuc8OjbyBkb3MgbWVzbW9zLCBtYW50ZW5kby1vcyBzZW1wcmUgdmlzw612ZWlzLlxuICAgKlxuICAgKiA+IE8gdmFsb3IgcGFkcsOjbyBzZXLDoSBgdHJ1ZWAgcXVhbmRvIGhvdXZlciBzZXJ2acOnbyAoYHAtZmlsdGVyLXNlcnZpY2VgKS5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgQElucHV0KHsgYWxpYXM6ICdwLWF1dG8taGVpZ2h0JywgdHJhbnNmb3JtOiBjb252ZXJ0VG9Cb29sZWFuIH0pIHNldCBhdXRvSGVpZ2h0KHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fYXV0b0hlaWdodCA9IHZhbHVlO1xuICAgIHRoaXMuYXV0b0hlaWdodEluaXRpYWxWYWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IGF1dG9IZWlnaHQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2F1dG9IZWlnaHQ7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBFc3RhIHByb3ByaWVkYWRlIGRlZmluZSBlbSBxdWFudG8gdGVtcG8gKGVtIG1pbGlzc2VndW5kb3MpLCBhZ3VhcmRhIHBhcmEgYWNpb25hciBvIGV2ZW50byBkZSBmaWx0cm8gYXDDs3MgY2FkYSBwcmVzc2lvbmFtZW50byBkZSB0ZWNsYS5cbiAgICpcbiAgICogPiBTZXLDoSB1dGlsaXphZGEgYXBlbmFzIHF1YW5kbyBob3V2ZXIgc2VydmnDp28gKGBwLWZpbHRlci1zZXJ2aWNlYCkgZSBzb21lbnRlIHNlcsOhIGFjZWl0byB2YWxvciBtYWlvciBkbyBxdWUgKnplcm8qLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgNDAwYFxuICAgKi9cbiAgQElucHV0KCdwLWRlYm91bmNlLXRpbWUnKSBzZXQgZGVib3VuY2VUaW1lKHZhbHVlOiBudW1iZXIpIHtcbiAgICBjb25zdCBwYXJzZWRWYWx1ZSA9IHBhcnNlSW50KDxhbnk+dmFsdWUsIDEwKTtcblxuICAgIHRoaXMuX2RlYm91bmNlVGltZSA9ICFpc05hTihwYXJzZWRWYWx1ZSkgJiYgcGFyc2VkVmFsdWUgPiAwID8gcGFyc2VkVmFsdWUgOiBQT19NVUxUSVNFTEVDVF9ERUJPVU5DRV9USU1FX0RFRkFVTFQ7XG4gIH1cblxuICBnZXQgZGVib3VuY2VUaW1lKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2RlYm91bmNlVGltZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIE9iamV0byBjb20gYXMgbGl0ZXJhaXMgdXNhZGFzIG5vIGBwby1tdWx0aXNlbGVjdGAuXG4gICAqXG4gICAqIEV4aXN0ZW0gZHVhcyBtYW5laXJhcyBkZSBjdXN0b21pemFyIG8gY29tcG9uZW50ZSwgcGFzc2FuZG8gdW0gb2JqZXRvIGNvbSB0b2RhcyBhcyBsaXRlcmFpcyBkaXNwb27DrXZlaXM6XG4gICAqXG4gICAqIGBgYFxuICAgKiAgY29uc3QgY3VzdG9tTGl0ZXJhbHM6IFBvTXVsdGlzZWxlY3RMaXRlcmFscyA9IHtcbiAgICogICAgbm9EYXRhOiAnTmVuaHVtIGRhZG8gZW5jb250cmFkbycsXG4gICAqICAgIHBsYWNlaG9sZGVyU2VhcmNoOiAnQnVzY2FyJyxcbiAgICogICAgc2VsZWN0QWxsOiAnU2VsZWN0IGFsbCcsXG4gICAqICAgIHNlbGVjdEl0ZW06ICdTZWxlY3QgaXRlbXMnXG4gICAqICB9O1xuICAgKiBgYGBcbiAgICpcbiAgICogT3UgcGFzc2FuZG8gYXBlbmFzIGFzIGxpdGVyYWlzIHF1ZSBkZXNlamEgY3VzdG9taXphcjpcbiAgICpcbiAgICogYGBgXG4gICAqICBjb25zdCBjdXN0b21MaXRlcmFsczogUG9NdWx0aXNlbGVjdExpdGVyYWxzID0ge1xuICAgKiAgICBub0RhdGE6ICdTZW0gZGFkb3MnXG4gICAqICB9O1xuICAgKiBgYGBcbiAgICpcbiAgICogRSBwYXJhIGNhcnJlZ2FyIGFzIGxpdGVyYWlzIGN1c3RvbWl6YWRhcywgYmFzdGEgYXBlbmFzIHBhc3NhciBvIG9iamV0byBwYXJhIG8gY29tcG9uZW50ZTpcbiAgICpcbiAgICogYGBgXG4gICAqIDxwby1tdWx0aXNlbGVjdFxuICAgKiAgIFtwLWxpdGVyYWxzXT1cImN1c3RvbUxpdGVyYWxzXCI+XG4gICAqIDwvcG8tcG8tbXVsdGlzZWxlY3Q+XG4gICAqIGBgYFxuICAgKlxuICAgKiA+IE8gb2JqZXRvIHBhZHLDo28gZGUgbGl0ZXJhaXMgc2Vyw6EgdHJhZHV6aWRvIGRlIGFjb3JkbyBjb20gbyBpZGlvbWEgZG9cbiAgICogW2BQb0kxOG5TZXJ2aWNlYF0oL2RvY3VtZW50YXRpb24vcG8taTE4bikgb3UgZG8gYnJvd3Nlci5cbiAgICovXG4gIEBJbnB1dCgncC1saXRlcmFscycpIHNldCBsaXRlcmFscyh2YWx1ZTogUG9NdWx0aXNlbGVjdExpdGVyYWxzKSB7XG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgT2JqZWN0ICYmICEodmFsdWUgaW5zdGFuY2VvZiBBcnJheSkpIHtcbiAgICAgIHRoaXMuX2xpdGVyYWxzID0ge1xuICAgICAgICAuLi5wb011bHRpc2VsZWN0TGl0ZXJhbHNEZWZhdWx0W3BvTG9jYWxlRGVmYXVsdF0sXG4gICAgICAgIC4uLnBvTXVsdGlzZWxlY3RMaXRlcmFsc0RlZmF1bHRbdGhpcy5sYW5ndWFnZV0sXG4gICAgICAgIC4uLnZhbHVlXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9saXRlcmFscyA9IHBvTXVsdGlzZWxlY3RMaXRlcmFsc0RlZmF1bHRbdGhpcy5sYW5ndWFnZV07XG4gICAgfVxuICB9XG5cbiAgZ2V0IGxpdGVyYWxzKCkge1xuICAgIHJldHVybiB0aGlzLl9saXRlcmFscyB8fCBwb011bHRpc2VsZWN0TGl0ZXJhbHNEZWZhdWx0W3RoaXMubGFuZ3VhZ2VdO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRGVmaW5lIHF1ZSBvIGNhbXBvIHNlcsOhIG9icmlnYXTDs3Jpby5cbiAgICpcbiAgICogPiBFc3RhIHByb3ByaWVkYWRlIMOpIGRlc2NvbnNpZGVyYWRhIHF1YW5kbyBvIGlucHV0IGVzdMOhIGRlc2FiaWxpdGFkbyBgKHAtZGlzYWJsZWQpYC5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgQElucHV0KCdwLXJlcXVpcmVkJykgc2V0IHJlcXVpcmVkKHJlcXVpcmVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5fcmVxdWlyZWQgPSA8YW55PnJlcXVpcmVkID09PSAnJyA/IHRydWUgOiBjb252ZXJ0VG9Cb29sZWFuKHJlcXVpcmVkKTtcbiAgICB0aGlzLnZhbGlkYXRlTW9kZWwoKTtcbiAgfVxuXG4gIGdldCByZXF1aXJlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fcmVxdWlyZWQ7XG4gIH1cblxuICAvKipcbiAgICogRGVmaW5lIHNlIGEgaW5kaWNhw6fDo28gZGUgY2FtcG8gb2JyaWdhdMOzcmlvIHNlcsOhIGV4aWJpZGEuXG4gICAqXG4gICAqID4gTsOjbyBzZXLDoSBleGliaWRhIGEgaW5kaWNhw6fDo28gc2U6XG4gICAqIC0gTsOjbyBwb3NzdWlyIGBwLWhlbHBgIGUvb3UgYHAtbGFiZWxgLlxuICAgKi9cbiAgQElucHV0KCdwLXNob3ctcmVxdWlyZWQnKSBzaG93UmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBJbmRpY2EgcXVlIG8gY2FtcG8gc2Vyw6EgZGVzYWJpbGl0YWRvLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICBASW5wdXQoJ3AtZGlzYWJsZWQnKSBzZXQgZGlzYWJsZWQoZGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9kaXNhYmxlZCA9IDxhbnk+ZGlzYWJsZWQgPT09ICcnID8gdHJ1ZSA6IGNvbnZlcnRUb0Jvb2xlYW4oZGlzYWJsZWQpO1xuICAgIHRoaXMudmFsaWRhdGVNb2RlbCgpO1xuXG4gICAgdGhpcy51cGRhdGVWaXNpYmxlSXRlbXMoKTtcbiAgfVxuXG4gIGdldCBkaXNhYmxlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBFc2NvbmRlIG8gY2FtcG8gZGUgcGVzcXVpc2EgZXhpc3RlbnRlIGRlbnRybyBkbyBkcm9wZG93biBkbyBwby1tdWx0aXNlbGVjdC5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgQElucHV0KCdwLWhpZGUtc2VhcmNoJykgc2V0IGhpZGVTZWFyY2goaGlkZVNlYXJjaDogYm9vbGVhbikge1xuICAgIHRoaXMuX2hpZGVTZWFyY2ggPSA8YW55PmhpZGVTZWFyY2ggPT09ICcnID8gdHJ1ZSA6IGNvbnZlcnRUb0Jvb2xlYW4oaGlkZVNlYXJjaCk7XG4gIH1cblxuICBnZXQgaGlkZVNlYXJjaCgpIHtcbiAgICByZXR1cm4gdGhpcy5faGlkZVNlYXJjaDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogTmVzdGEgcHJvcHJpZWRhZGUgZGV2ZSBzZXIgZGVmaW5pZGEgdW1hIGxpc3RhIGRlIG9iamV0b3MgcXVlIHNlcsOhIGV4aWJpZGEgbm8gbXVsdGlzZWxlY3QuXG4gICAqIEVzdGEgbGlzdGEgZGV2ZSBjb250ZXIgb3MgdmFsb3JlcyBlIG9zIGxhYmVscyBxdWUgc2Vyw6NvIGFwcmVzZW50YWRvcyBuYSB0ZWxhLlxuICAgKlxuICAgKiA+IEVzc2EgcHJvcHJpZWRhZGUgw6kgaW11dMOhdmVsLCBvdSBzZWphLCBzZW1wcmUgcXVlIHF1aXNlciBhdHVhbGl6YXIgYSBsaXN0YSBkZSBvcMOnw7VlcyBkaXNwb27DrXZlaXNcbiAgICogYXR1YWxpemUgYSByZWZlcsOqbmNpYSBkbyBvYmpldG86XG4gICAqXG4gICAqIGBgYFxuICAgKiAvLyBhdHVhbGl6YSBhIHJlZmVyw6puY2lhIGRvIG9iamV0byBnYXJhbnRpbmRvIGEgYXR1YWxpemHDp8OjbyBkbyB0ZW1wbGF0ZVxuICAgKiB0aGlzLm9wdGlvbnMgPSBbLi4udGhpcy5vcHRpb25zLCB7IHZhbHVlOiAneCcsIGxhYmVsOiAnTm92YSBvcMOnw6NvJyB9XTtcbiAgICpcbiAgICogLy8gZXZpdGUsIHBvaXMgbsOjbyBhdHVhbGl6YSBhIHJlZmVyw6puY2lhIGRvIG9iamV0byBwb2RlbmRvIGdlcmFyIGF0cmFzb3MgbmEgYXR1YWxpemHDp8OjbyBkbyB0ZW1wbGF0ZVxuICAgKiB0aGlzLm9wdGlvbnMucHVzaCh7IHZhbHVlOiAneCcsIGxhYmVsOiAnTm92YSBvcMOnw6NvJyB9KTtcbiAgICogYGBgXG4gICAqID4gQSBsaXN0YSBwb2RlIHNlciBkZWZpbmlkYSB1dGlsaXphbmRvIHVtIGFycmF5IGNvbSBvIHZhbG9yIHJlcHJlc2VudGFuZG8gYHZhbHVlYCBlIGBsYWJlbGAgZGFzIHNlZ3VpbnRlcyBmb3JtYXM6XG4gICAqXG4gICAqIGBgYFxuICAgKiA8cG8tbXVsdGlzZWxlY3QgbmFtZT1cIm11bHRpc2VsZWN0XCIgcC1sYWJlbD1cIlBPIE11bHRpc2VsZWN0XCIgW3Atb3B0aW9uc109XCJbe3ZhbHVlOiAxLCBsYWJlbDogJ09uZSd9LCB7dmFsdWU6IDIsIGxhYmVsOiAndHdvJ31dXCI+IDwvcG8tbXVsdGlzZWxlY3Q+XG4gICAqIGBgYFxuICAgKlxuICAgKiBgYGBcbiAgICogPHBvLW11bHRpc2VsZWN0IG5hbWU9XCJtdWx0aXNlbGVjdFwiIHAtbGFiZWw9XCJQTyBNdWx0aXNlbGVjdFwiIFtwLW9wdGlvbnNdPVwiW3tuYW1lOiAnUm9nZXInLCBhZ2U6IDI4fSwge25hbWU6ICdBbm5lJywgYWdlOiAzNX1dXCIgcC1maWVsZC1sYWJlbD1cIm5hbWVcIiBwLWZpZWxkLXZhbHVlPVwiYWdlXCI+IDwvcG8tbXVsdGlzZWxlY3Q+XG4gICAqIGBgYFxuICAgKlxuICAgKiAtIEFjb25zZWxoYS1zZSB1dGlsaXphciB2YWxvcmVzIGRpc3RpbnRvcyBubyBgbGFiZWxgIGUgYHZhbHVlYCBkb3MgaXRlbnMuXG4gICAqL1xuICBASW5wdXQoJ3Atb3B0aW9ucycpIHNldCBvcHRpb25zKG9wdGlvbnM6IEFycmF5PFBvTXVsdGlzZWxlY3RPcHRpb24gfCBhbnk+KSB7XG4gICAgdGhpcy5fb3B0aW9ucyA9IG9wdGlvbnM7XG4gIH1cblxuICBnZXQgb3B0aW9ucygpOiBBcnJheTxQb011bHRpc2VsZWN0T3B0aW9uIHwgYW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX29wdGlvbnM7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBJbmRpY2EgcXVlIGEgbGlzdGEgZGVmaW5pZGEgbmEgcHJvcHJpZWRhZGUgcC1vcHRpb25zIHNlcsOhIG9yZGVuYWRhIHBlbG8gbGFiZWwgYW50ZXMgZGUgc2VyIGFwcmVzZW50YWRhIG5vXG4gICAqIGRyb3Bkb3duLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICBASW5wdXQoJ3Atc29ydCcpIHNldCBzb3J0KHNvcnQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9zb3J0ID0gPGFueT5zb3J0ID09PSAnJyA/IHRydWUgOiBjb252ZXJ0VG9Cb29sZWFuKHNvcnQpO1xuXG4gICAgdGhpcy52YWxpZEFuZFNvcnRPcHRpb25zKCk7XG4gIH1cblxuICBnZXQgc29ydCgpIHtcbiAgICByZXR1cm4gdGhpcy5fc29ydDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIERlZmluZSBvIG1vZG8gZGUgcGVzcXVpc2EgdXRpbGl6YWRvIG5vIGNhbXBvIGRlIGJ1c2NhLCBxdWFuZG8gaGFiaWxpdGFkby5cbiAgICogVmFsb3JlcyBkZWZpbmlkb3Mgbm8gZW51bTogUG9NdWx0aXNlbGVjdEZpbHRlck1vZGVcbiAgICpcbiAgICogQGRlZmF1bHQgYHN0YXJ0c1dpdGhgXG4gICAqL1xuICBASW5wdXQoJ3AtZmlsdGVyLW1vZGUnKSBzZXQgZmlsdGVyTW9kZShmaWx0ZXJNb2RlOiBQb011bHRpc2VsZWN0RmlsdGVyTW9kZSkge1xuICAgIHRoaXMuX2ZpbHRlck1vZGUgPSBmaWx0ZXJNb2RlIGluIFBvTXVsdGlzZWxlY3RGaWx0ZXJNb2RlID8gZmlsdGVyTW9kZSA6IFBvTXVsdGlzZWxlY3RGaWx0ZXJNb2RlLnN0YXJ0c1dpdGg7XG4gICAgc3dpdGNoICh0aGlzLl9maWx0ZXJNb2RlLnRvU3RyaW5nKCkpIHtcbiAgICAgIGNhc2UgJ3N0YXJ0c1dpdGgnOlxuICAgICAgICB0aGlzLl9maWx0ZXJNb2RlID0gUG9NdWx0aXNlbGVjdEZpbHRlck1vZGUuc3RhcnRzV2l0aDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdjb250YWlucyc6XG4gICAgICAgIHRoaXMuX2ZpbHRlck1vZGUgPSBQb011bHRpc2VsZWN0RmlsdGVyTW9kZS5jb250YWlucztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdlbmRzV2l0aCc6XG4gICAgICAgIHRoaXMuX2ZpbHRlck1vZGUgPSBQb011bHRpc2VsZWN0RmlsdGVyTW9kZS5lbmRzV2l0aDtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGZpbHRlck1vZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbHRlck1vZGU7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBEZXZlIHNlciBpbmZvcm1hZG8gbyBub21lIGRhIHByb3ByaWVkYWRlIGRvIG9iamV0byBxdWUgc2Vyw6EgdXRpbGl6YWRvIHBhcmEgYSBjb252ZXJzw6NvIGRvcyBpdGVucyBhcHJlc2VudGFkb3MgbmEgbGlzdGEgZG8gY29tcG9uZW50ZVxuICAgKiAoYHAtb3B0aW9uc2ApLCBlc3RhIHByb3ByaWVkYWRlIHNlcsOhIHJlc3BvbnPDoXZlbCBwZWxvIHRleHRvIGRlIGFwcmVzZW50YcOnw6NvIGRlIGNhZGEgaXRlbSBkYSBsaXN0YS5cbiAgICpcbiAgICogTmVjZXNzw6FyaW8gcXVhbmRvIGluZm9ybWFyIG8gc2VydmnDp28gY29tbyBVUkwgZSBvIG1lc21vIG7Do28gZXN0aXZlciByZXRvcm5hbmRvIHVtYSBsaXN0YSBkZSBvYmpldG9zIG5vIHBhZHLDo28gZGEgaW50ZXJmYWNlXG4gICAqIGBQb011bHRpU2VsZWN0T3B0aW9uYC5cbiAgICpcbiAgICogQGRlZmF1bHQgYGxhYmVsYFxuICAgKi9cbiAgQElucHV0KCdwLWZpZWxkLWxhYmVsJykgc2V0IGZpZWxkTGFiZWwodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2ZpZWxkTGFiZWwgPSB2YWx1ZSA/IHZhbHVlIDogUE9fTVVMVElTRUxFQ1RfRklFTERfTEFCRUxfREVGQVVMVDtcblxuICAgIGlmIChpc1R5cGVvZih0aGlzLmZpbHRlclNlcnZpY2UsICdzdHJpbmcnKSAmJiB0aGlzLnNlcnZpY2UpIHtcbiAgICAgIHRoaXMuc2VydmljZS5maWVsZExhYmVsID0gdGhpcy5fZmllbGRMYWJlbDtcbiAgICB9XG4gIH1cblxuICBnZXQgZmllbGRMYWJlbCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZmllbGRMYWJlbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIERldmUgc2VyIGluZm9ybWFkbyBvIG5vbWUgZGEgcHJvcHJpZWRhZGUgZG8gb2JqZXRvIHF1ZSBzZXLDoSB1dGlsaXphZG8gcGFyYSBhIGNvbnZlcnPDo28gZG9zIGl0ZW5zIGFwcmVzZW50YWRvcyBuYSBsaXN0YSBkbyBjb21wb25lbnRlXG4gICAqIChgcC1vcHRpb25zYCksIGVzdGEgcHJvcHJpZWRhZGUgc2Vyw6EgcmVzcG9uc8OhdmVsIHBlbG8gdmFsb3IgZGUgY2FkYSBpdGVtIGRhIGxpc3RhLlxuICAgKlxuICAgKiBOZWNlc3PDoXJpbyBxdWFuZG8gaW5mb3JtYXIgbyBzZXJ2acOnbyBjb21vIFVSTCBlIG8gbWVzbW8gbsOjbyBlc3RpdmVyIHJldG9ybmFuZG8gdW1hIGxpc3RhIGRlIG9iamV0b3Mgbm8gcGFkcsOjbyBkYSBpbnRlcmZhY2VcbiAgICogYFBvTXVsdGlTZWxlY3RPcHRpb25gLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgdmFsdWVgXG4gICAqL1xuICBASW5wdXQoJ3AtZmllbGQtdmFsdWUnKSBzZXQgZmllbGRWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fZmllbGRWYWx1ZSA9IHZhbHVlID8gdmFsdWUgOiBQT19NVUxUSVNFTEVDVF9GSUVMRF9WQUxVRV9ERUZBVUxUO1xuXG4gICAgaWYgKGlzVHlwZW9mKHRoaXMuZmlsdGVyU2VydmljZSwgJ3N0cmluZycpICYmIHRoaXMuc2VydmljZSkge1xuICAgICAgdGhpcy5zZXJ2aWNlLmZpZWxkVmFsdWUgPSB0aGlzLl9maWVsZFZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIGdldCBmaWVsZFZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLl9maWVsZFZhbHVlO1xuICB9XG5cbiAgY29uc3RydWN0b3IobGFuZ3VhZ2VTZXJ2aWNlOiBQb0xhbmd1YWdlU2VydmljZSkge1xuICAgIHRoaXMubGFuZ3VhZ2UgPSBsYW5ndWFnZVNlcnZpY2UuZ2V0U2hvcnRMYW5ndWFnZSgpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuZmlsdGVyU2VydmljZSkge1xuICAgICAgdGhpcy5zZXRTZXJ2aWNlKHRoaXMuZmlsdGVyU2VydmljZSk7XG4gICAgfVxuXG4gICAgdGhpcy5maWx0ZXJTdWJqZWN0XG4gICAgICAucGlwZShcbiAgICAgICAgZGVib3VuY2VUaW1lKHRoaXMuZGVib3VuY2VUaW1lKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgdGFwKCgpID0+ICh0aGlzLmlzU2VydmVyU2VhcmNoaW5nID0gdHJ1ZSkpLFxuICAgICAgICBzd2l0Y2hNYXAoKHNlYXJjaDogc3RyaW5nKSA9PiB0aGlzLmFwcGx5RmlsdGVyKHNlYXJjaCkpLFxuICAgICAgICB0YXAoKCkgPT4gKHRoaXMuaXNTZXJ2ZXJTZWFyY2hpbmcgPSBmYWxzZSkpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLnNldExhYmVsc0FuZFZhbHVlc09wdGlvbnMoKTtcbiAgICB0aGlzLnZhbGlkQW5kU29ydE9wdGlvbnMoKTtcbiAgICB0aGlzLnVwZGF0ZUxpc3QodGhpcy5vcHRpb25zKTtcbiAgfVxuXG4gIHNldFNlcnZpY2Uoc2VydmljZTogUG9NdWx0aXNlbGVjdEZpbHRlciB8IHN0cmluZykge1xuICAgIGlmIChpc1R5cGVvZihzZXJ2aWNlLCAnb2JqZWN0JykpIHtcbiAgICAgIHRoaXMuc2VydmljZSA9IDxQb011bHRpc2VsZWN0RmlsdGVyU2VydmljZT5zZXJ2aWNlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlcnZpY2UgPSB0aGlzLmRlZmF1bHRTZXJ2aWNlO1xuICAgICAgdGhpcy5zZXJ2aWNlLmNvbmZpZ1Byb3BlcnRpZXMoPHN0cmluZz5zZXJ2aWNlLCB0aGlzLmZpZWxkTGFiZWwsIHRoaXMuZmllbGRWYWx1ZSk7XG4gICAgfVxuXG4gICAgdGhpcy5pc0ZpcnN0RmlsdGVyID0gdHJ1ZTtcbiAgfVxuXG4gIHZhbGlkQW5kU29ydE9wdGlvbnMoKSB7XG4gICAgaWYgKHRoaXMub3B0aW9ucyAmJiB0aGlzLm9wdGlvbnMubGVuZ3RoKSB7XG4gICAgICByZW1vdmVVbmRlZmluZWRBbmROdWxsT3B0aW9uc1dpdGhGaWVsZFZhbHVlKHRoaXMub3B0aW9ucywgdGhpcy5maWVsZFZhbHVlKTtcbiAgICAgIHJlbW92ZUR1cGxpY2F0ZWRPcHRpb25zV2l0aEZpZWxkVmFsdWUodGhpcy5vcHRpb25zLCB0aGlzLmZpZWxkVmFsdWUpO1xuICAgICAgdGhpcy5zZXRVbmRlZmluZWRMYWJlbHModGhpcy5vcHRpb25zKTtcblxuICAgICAgaWYgKHRoaXMuc29ydCkge1xuICAgICAgICBzb3J0T3B0aW9uc0J5UHJvcGVydHkodGhpcy5vcHRpb25zLCB0aGlzLmZpZWxkTGFiZWwpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHNldFVuZGVmaW5lZExhYmVscyhvcHRpb25zKSB7XG4gICAgb3B0aW9ucy5mb3JFYWNoKG9wdGlvbiA9PiB7XG4gICAgICBpZiAoIW9wdGlvblt0aGlzLmZpZWxkTGFiZWxdKSB7XG4gICAgICAgIG9wdGlvblt0aGlzLmZpZWxkTGFiZWxdID0gb3B0aW9uW3RoaXMuZmllbGRWYWx1ZV07XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICB1cGRhdGVMaXN0KG9wdGlvbnM6IEFycmF5PFBvTXVsdGlzZWxlY3RPcHRpb24gfCBhbnk+KSB7XG4gICAgaWYgKG9wdGlvbnMpIHtcbiAgICAgIHRoaXMudmlzaWJsZU9wdGlvbnNEcm9wZG93biA9IG9wdGlvbnM7XG4gICAgfVxuICB9XG5cbiAgY2FsbE9uQ2hhbmdlKHNlbGVjdGVkT3B0aW9uczogQXJyYXk8UG9NdWx0aXNlbGVjdE9wdGlvbiB8IGFueT4pIHtcbiAgICBpZiAodGhpcy5vbk1vZGVsQ2hhbmdlKSB7XG4gICAgICB0aGlzLm9uTW9kZWxDaGFuZ2UodGhpcy5nZXRWYWx1ZXNGcm9tT3B0aW9ucyhzZWxlY3RlZE9wdGlvbnMpKTtcbiAgICAgIHRoaXMuZXZlbnRDaGFuZ2Uoc2VsZWN0ZWRPcHRpb25zKTtcbiAgICB9XG4gIH1cblxuICBldmVudENoYW5nZShzZWxlY3RlZE9wdGlvbnMpIHtcbiAgICBpZiAoc2VsZWN0ZWRPcHRpb25zICYmIHRoaXMubGFzdExlbmd0aE1vZGVsICE9PSBzZWxlY3RlZE9wdGlvbnMubGVuZ3RoKSB7XG4gICAgICB0aGlzLmNoYW5nZS5lbWl0KHNlbGVjdGVkT3B0aW9ucyk7XG4gICAgfVxuICAgIHRoaXMubGFzdExlbmd0aE1vZGVsID0gc2VsZWN0ZWRPcHRpb25zID8gc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA6IG51bGw7XG4gIH1cblxuICBnZXRWYWx1ZXNGcm9tT3B0aW9ucyhzZWxlY3RlZE9wdGlvbnM6IEFycmF5PFBvTXVsdGlzZWxlY3RPcHRpb24gfCBhbnk+KSB7XG4gICAgcmV0dXJuIHNlbGVjdGVkT3B0aW9ucyAmJiBzZWxlY3RlZE9wdGlvbnMubGVuZ3RoID8gc2VsZWN0ZWRPcHRpb25zLm1hcChvcHRpb24gPT4gb3B0aW9uW3RoaXMuZmllbGRWYWx1ZV0pIDogW107XG4gIH1cblxuICBnZXRMYWJlbEJ5VmFsdWUodmFsdWUpIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMub3B0aW9ucy5maW5kSW5kZXgob3B0aW9uID0+IG9wdGlvblt0aGlzLmZpZWxkVmFsdWVdID09PSB2YWx1ZSk7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9uc1tpbmRleF0ubGFiZWw7XG4gIH1cblxuICBzZWFyY2hCeUxhYmVsKHNlYXJjaDogc3RyaW5nLCBvcHRpb25zOiBBcnJheTxQb011bHRpc2VsZWN0T3B0aW9uIHwgYW55PiwgZmlsdGVyTW9kZTogUG9NdWx0aXNlbGVjdEZpbHRlck1vZGUpIHtcbiAgICBpZiAoc2VhcmNoICYmIG9wdGlvbnMgJiYgb3B0aW9ucy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IG5ld09wdGlvbnM6IEFycmF5PFBvTXVsdGlzZWxlY3RPcHRpb24gfCBhbnk+ID0gW107XG4gICAgICBvcHRpb25zLmZvckVhY2gob3B0aW9uID0+IHtcbiAgICAgICAgaWYgKG9wdGlvblt0aGlzLmZpZWxkTGFiZWxdICYmIHRoaXMuY29tcGFyZU1ldGhvZChzZWFyY2gsIG9wdGlvbiwgZmlsdGVyTW9kZSkpIHtcbiAgICAgICAgICBuZXdPcHRpb25zLnB1c2gob3B0aW9uKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLnZpc2libGVPcHRpb25zRHJvcGRvd24gPSBuZXdPcHRpb25zO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnZpc2libGVPcHRpb25zRHJvcGRvd24gPSBbLi4ub3B0aW9uc107XG4gICAgfVxuICB9XG5cbiAgY29tcGFyZU1ldGhvZChzZWFyY2g6IHN0cmluZywgb3B0aW9uOiBQb011bHRpc2VsZWN0T3B0aW9uLCBmaWx0ZXJNb2RlOiBQb011bHRpc2VsZWN0RmlsdGVyTW9kZSkge1xuICAgIHN3aXRjaCAoZmlsdGVyTW9kZSkge1xuICAgICAgY2FzZSBQb011bHRpc2VsZWN0RmlsdGVyTW9kZS5zdGFydHNXaXRoOlxuICAgICAgICByZXR1cm4gdGhpcy5zdGFydHNXaXRoKHNlYXJjaCwgb3B0aW9uKTtcbiAgICAgIGNhc2UgUG9NdWx0aXNlbGVjdEZpbHRlck1vZGUuY29udGFpbnM6XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRhaW5zKHNlYXJjaCwgb3B0aW9uKTtcbiAgICAgIGNhc2UgUG9NdWx0aXNlbGVjdEZpbHRlck1vZGUuZW5kc1dpdGg6XG4gICAgICAgIHJldHVybiB0aGlzLmVuZHNXaXRoKHNlYXJjaCwgb3B0aW9uKTtcbiAgICB9XG4gIH1cblxuICBzdGFydHNXaXRoKHNlYXJjaDogc3RyaW5nLCBvcHRpb246IFBvTXVsdGlzZWxlY3RPcHRpb24pIHtcbiAgICByZXR1cm4gb3B0aW9uW3RoaXMuZmllbGRMYWJlbF0udG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKHNlYXJjaC50b0xvd2VyQ2FzZSgpKTtcbiAgfVxuXG4gIGNvbnRhaW5zKHNlYXJjaDogc3RyaW5nLCBvcHRpb246IFBvTXVsdGlzZWxlY3RPcHRpb24pIHtcbiAgICByZXR1cm4gb3B0aW9uW3RoaXMuZmllbGRMYWJlbF0udG9Mb3dlckNhc2UoKS5pbmRleE9mKHNlYXJjaC50b0xvd2VyQ2FzZSgpKSA+IC0xO1xuICB9XG5cbiAgZW5kc1dpdGgoc2VhcmNoOiBzdHJpbmcsIG9wdGlvbjogUG9NdWx0aXNlbGVjdE9wdGlvbikge1xuICAgIHJldHVybiBvcHRpb25bdGhpcy5maWVsZExhYmVsXS50b0xvd2VyQ2FzZSgpLmVuZHNXaXRoKHNlYXJjaC50b0xvd2VyQ2FzZSgpKTtcbiAgfVxuXG4gIHZhbGlkYXRlKGM6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xuICAgIGlmIChyZXF1aXJlZEZhaWxlZCh0aGlzLnJlcXVpcmVkLCB0aGlzLmRpc2FibGVkLCBjLnZhbHVlKSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcmVxdWlyZWQ6IHtcbiAgICAgICAgICB2YWxpZDogZmFsc2VcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHVwZGF0ZVNlbGVjdGVkT3B0aW9ucyhuZXdPcHRpb25zOiBBcnJheTxhbnk+LCBvcHRpb25zID0gdGhpcy5vcHRpb25zKSB7XG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMgPSBbXTtcblxuICAgIGlmIChuZXdPcHRpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5sYXN0TGVuZ3RoTW9kZWwgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZmlsdGVyU2VydmljZSkge1xuICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMgPSBuZXdPcHRpb25zO1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXdPcHRpb25zLmZvckVhY2gobmV3T3B0aW9uID0+IHtcbiAgICAgICAgb3B0aW9ucy5mb3JFYWNoKG9wdGlvbiA9PiB7XG4gICAgICAgICAgaWYgKG9wdGlvblt0aGlzLmZpZWxkVmFsdWVdID09PSBuZXdPcHRpb25bdGhpcy5maWVsZFZhbHVlXSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMucHVzaChvcHRpb24pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLnVwZGF0ZVZpc2libGVJdGVtcygpO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZXM6IGFueSk6IHZvaWQge1xuICAgIHZhbHVlcyA9IHZhbHVlcyB8fCBbXTtcblxuICAgIGlmICh0aGlzLnNlcnZpY2UgJiYgdmFsdWVzLmxlbmd0aCkge1xuICAgICAgdGhpcy5nZXRPYmplY3RzQnlWYWx1ZXNTdWJzY3JpcHRpb24gPSB0aGlzLnNlcnZpY2UuZ2V0T2JqZWN0c0J5VmFsdWVzKHZhbHVlcykuc3Vic2NyaWJlKG9wdGlvbnMgPT4ge1xuICAgICAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkT3B0aW9ucyhvcHRpb25zKTtcbiAgICAgICAgdGhpcy5jYWxsT25DaGFuZ2UodGhpcy5zZWxlY3RlZE9wdGlvbnMpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFZhbGlkYXIgc2UgdG9kb3Mgb3MgaXRlbXMgZXhpc3RlbSBlbnRyZSBvcyBvcHRpb25zLCBzZW7Do28gYXR1YWxpemFyIG8gbW9kZWxcbiAgICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRPcHRpb25zKHZhbHVlcy5tYXAodmFsdWUgPT4gKHsgW3RoaXMuZmllbGRWYWx1ZV06IHZhbHVlIH0pKSk7XG5cbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkT3B0aW9ucyAmJiB0aGlzLnNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPCB2YWx1ZXMubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuY2FsbE9uQ2hhbmdlKHRoaXMuc2VsZWN0ZWRPcHRpb25zKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBGdW7Dp8OjbyBpbXBsZW1lbnRhZGEgZG8gQ29udHJvbFZhbHVlQWNjZXNzb3JcbiAgLy8gVXNhZGEgcGFyYSBpbnRlcmNlcHRhciBvcyBlc3RhZG9zIGRlIGhhYmlsaXRhZG8gdmlhIGZvcm1zIGFwaVxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Nb2RlbENoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Nb2RlbFRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2UoZm46ICgpID0+IHZvaWQpIHtcbiAgICB0aGlzLnZhbGlkYXRvckNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRMYWJlbHNBbmRWYWx1ZXNPcHRpb25zKCkge1xuICAgIGlmICh0aGlzLmZpZWxkTGFiZWwgJiYgdGhpcy5maWVsZFZhbHVlICYmIHRoaXMub3B0aW9ucykge1xuICAgICAgdGhpcy5vcHRpb25zLm1hcChvcHRpb24gPT4ge1xuICAgICAgICBvcHRpb24ubGFiZWwgPSBvcHRpb25bdGhpcy5maWVsZExhYmVsXTtcbiAgICAgICAgb3B0aW9uLnZhbHVlID0gb3B0aW9uW3RoaXMuZmllbGRWYWx1ZV07XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlTW9kZWwoKSB7XG4gICAgaWYgKHRoaXMudmFsaWRhdG9yQ2hhbmdlKSB7XG4gICAgICB0aGlzLnZhbGlkYXRvckNoYW5nZSgpO1xuICAgIH1cbiAgfVxuXG4gIGFic3RyYWN0IGFwcGx5RmlsdGVyKHZhbHVlPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxBcnJheTxQb011bHRpc2VsZWN0T3B0aW9uIHwgYW55Pj47XG4gIGFic3RyYWN0IHVwZGF0ZVZpc2libGVJdGVtcygpOiB2b2lkO1xufVxuIl19
|
|
@@ -138,11 +138,11 @@ export class PoMultiselectDropdownComponent {
|
|
|
138
138
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.container = _t.first);
|
|
139
139
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.divElement = _t.first);
|
|
140
140
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.listbox = _t.first);
|
|
141
|
-
} }, inputs: { isServerSearching: ["p-searching", "isServerSearching"], hideSearch: ["p-hide-search", "hideSearch"], literals: ["p-literals", "literals"], placeholderSearch: ["p-placeholder-search", "placeholderSearch"], selectedOptions: ["p-selected-options", "selectedOptions"], options: ["p-options", "options"], visibleOptions: ["p-visible-options", "visibleOptions"], hideSelectAll: ["p-hide-select-all", "hideSelectAll"], fieldValue: ["p-field-value", "fieldValue"], fieldLabel: ["p-field-label", "fieldLabel"], multiselectTemplate: ["p-multiselect-template", "multiselectTemplate"] }, outputs: { changeSearch: "p-change-search", change: "p-change", closeDropdown: "p-close-dropdown" }, decls: 7, vars: 15, consts: [[1, "po-multiselect-container", 3, "hidden"], ["container", ""], [3, "scrollTop"], ["divElement", ""], ["p-type", "check", 3, "p-items", "p-selected-options", "p-checkboxAllValue", "p-field-value", "p-field-value-search", "p-field-label", "p-literal-search", "p-literals", "p-is-searching", "p-hide-search", "p-hide-select-all", "p-template", "p-placeholder-search", "p-change", "p-change-all", "p-change-search"], ["listbox", ""]], template: function PoMultiselectDropdownComponent_Template(rf, ctx) { if (rf & 1) {
|
|
141
|
+
} }, inputs: { isServerSearching: ["p-searching", "isServerSearching"], hideSearch: ["p-hide-search", "hideSearch"], literals: ["p-literals", "literals"], placeholderSearch: ["p-placeholder-search", "placeholderSearch"], selectedOptions: ["p-selected-options", "selectedOptions"], options: ["p-options", "options"], visibleOptions: ["p-visible-options", "visibleOptions"], hideSelectAll: ["p-hide-select-all", "hideSelectAll"], fieldValue: ["p-field-value", "fieldValue"], fieldLabel: ["p-field-label", "fieldLabel"], multiselectTemplate: ["p-multiselect-template", "multiselectTemplate"] }, outputs: { changeSearch: "p-change-search", change: "p-change", closeDropdown: "p-close-dropdown" }, decls: 7, vars: 15, consts: [[1, "po-multiselect-container", 3, "hidden"], ["container", ""], [3, "scrollTop"], ["divElement", ""], ["p-type", "check", 3, "p-items", "p-selected-options", "p-checkboxAllValue", "p-field-value", "p-field-value-search", "p-field-label", "p-literal-search", "p-literals", "p-is-searching", "p-hide-search", "p-hide-select-all", "p-template", "p-placeholder-search", "p-change", "p-change-all", "p-change-search", "p-close"], ["listbox", ""]], template: function PoMultiselectDropdownComponent_Template(rf, ctx) { if (rf & 1) {
|
|
142
142
|
i0.ɵɵelementStart(0, "div", 0, 1)(2, "div", 2, 3);
|
|
143
143
|
i0.ɵɵelementContainerStart(4);
|
|
144
144
|
i0.ɵɵelementStart(5, "po-listbox", 4, 5);
|
|
145
|
-
i0.ɵɵlistener("p-change", function PoMultiselectDropdownComponent_Template_po_listbox_p_change_5_listener($event) { return ctx.clickItem($event); })("p-change-all", function PoMultiselectDropdownComponent_Template_po_listbox_p_change_all_5_listener() { return ctx.onClickSelectAll(); })("p-change-search", function PoMultiselectDropdownComponent_Template_po_listbox_p_change_search_5_listener($event) { return ctx.callChangeSearch($event); });
|
|
145
|
+
i0.ɵɵlistener("p-change", function PoMultiselectDropdownComponent_Template_po_listbox_p_change_5_listener($event) { return ctx.clickItem($event); })("p-change-all", function PoMultiselectDropdownComponent_Template_po_listbox_p_change_all_5_listener() { return ctx.onClickSelectAll(); })("p-change-search", function PoMultiselectDropdownComponent_Template_po_listbox_p_change_search_5_listener($event) { return ctx.callChangeSearch($event); })("p-close", function PoMultiselectDropdownComponent_Template_po_listbox_p_close_5_listener() { return ctx.closeDropdown.emit(); });
|
|
146
146
|
i0.ɵɵelementEnd();
|
|
147
147
|
i0.ɵɵelementContainerEnd();
|
|
148
148
|
i0.ɵɵelementEnd()();
|
|
@@ -156,7 +156,7 @@ export class PoMultiselectDropdownComponent {
|
|
|
156
156
|
}
|
|
157
157
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoMultiselectDropdownComponent, [{
|
|
158
158
|
type: Component,
|
|
159
|
-
args: [{ selector: 'po-multiselect-dropdown', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div #container class=\"po-multiselect-container\" [hidden]=\"!show\">\n <div [scrollTop]=\"scrollTop\" #divElement>\n <ng-container>\n <po-listbox\n #listbox\n p-type=\"check\"\n [p-items]=\"visibleOptions\"\n [p-selected-options]=\"selectedOptions\"\n [p-checkboxAllValue]=\"getStateSelectAll()\"\n [p-field-value]=\"fieldValue\"\n [p-field-value-search]=\"fieldValue\"\n [p-field-label]=\"fieldLabel\"\n [p-literal-search]=\"literals\"\n [p-literals]=\"literals\"\n [p-is-searching]=\"isServerSearching\"\n [p-hide-search]=\"hideSearch\"\n [p-hide-select-all]=\"hideSelectAll\"\n [p-template]=\"multiselectTemplate\"\n [p-placeholder-search]=\"placeholderSearch\"\n (p-change)=\"clickItem($event)\"\n (p-change-all)=\"onClickSelectAll()\"\n (p-change-search)=\"callChangeSearch($event)\"\n >\n </po-listbox>\n </ng-container>\n </div>\n</div>\n" }]
|
|
159
|
+
args: [{ selector: 'po-multiselect-dropdown', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div #container class=\"po-multiselect-container\" [hidden]=\"!show\">\n <div [scrollTop]=\"scrollTop\" #divElement>\n <ng-container>\n <po-listbox\n #listbox\n p-type=\"check\"\n [p-items]=\"visibleOptions\"\n [p-selected-options]=\"selectedOptions\"\n [p-checkboxAllValue]=\"getStateSelectAll()\"\n [p-field-value]=\"fieldValue\"\n [p-field-value-search]=\"fieldValue\"\n [p-field-label]=\"fieldLabel\"\n [p-literal-search]=\"literals\"\n [p-literals]=\"literals\"\n [p-is-searching]=\"isServerSearching\"\n [p-hide-search]=\"hideSearch\"\n [p-hide-select-all]=\"hideSelectAll\"\n [p-template]=\"multiselectTemplate\"\n [p-placeholder-search]=\"placeholderSearch\"\n (p-change)=\"clickItem($event)\"\n (p-change-all)=\"onClickSelectAll()\"\n (p-change-search)=\"callChangeSearch($event)\"\n (p-close)=\"closeDropdown.emit()\"\n >\n </po-listbox>\n </ng-container>\n </div>\n</div>\n" }]
|
|
160
160
|
}], function () { return [{ type: i0.ChangeDetectorRef }]; }, { isServerSearching: [{
|
|
161
161
|
type: Input,
|
|
162
162
|
args: ['p-searching']
|
|
@@ -209,4 +209,4 @@ export class PoMultiselectDropdownComponent {
|
|
|
209
209
|
type: ViewChild,
|
|
210
210
|
args: ['listbox']
|
|
211
211
|
}] }); })();
|
|
212
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tbXVsdGlzZWxlY3QtZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvLWZpZWxkL3BvLW11bHRpc2VsZWN0L3BvLW11bHRpc2VsZWN0LWRyb3Bkb3duL3BvLW11bHRpc2VsZWN0LWRyb3Bkb3duLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1maWVsZC9wby1tdWx0aXNlbGVjdC9wby1tdWx0aXNlbGVjdC1kcm9wZG93bi9wby1tdWx0aXNlbGVjdC1kcm9wZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUVaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUVWLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFPdkI7Ozs7OztHQU1HO0FBTUgsTUFBTSxPQUFPLDhCQUE4QjtJQW1EckI7SUFsRHBCLHVEQUF1RDtJQUNqQyxpQkFBaUIsR0FBYSxLQUFLLENBQUM7SUFFMUQsMEVBQTBFO0lBQ2xELFVBQVUsR0FBYSxLQUFLLENBQUM7SUFFckQsdUZBQXVGO0lBQ2xFLFFBQVEsQ0FBeUI7SUFFdEQsd0NBQXdDO0lBQ1QsaUJBQWlCLENBQVM7SUFFekQsNkRBQTZEO0lBQ2hDLGVBQWUsR0FBZSxFQUFFLENBQUM7SUFFOUQsMERBQTBEO0lBQ3RDLE9BQU8sR0FBcUMsRUFBRSxDQUFDO0lBRW5FLG9GQUFvRjtJQUN4RCxjQUFjLEdBQXFDLEVBQUUsQ0FBQztJQUVsRixpRkFBaUY7SUFDckQsYUFBYSxHQUFhLEtBQUssQ0FBQztJQUVwQyxVQUFVLENBQVM7SUFFbkIsVUFBVSxDQUFTO0lBRVYsbUJBQW1CLENBQXlCO0lB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QkFBQyxvQkFBb0I7WUFHUCxPQUFPO2tCQUExQixLQUFLO21CQUFDLFdBQVc7WUFHVSxjQUFjO2tCQUF6QyxLQUFLO21CQUFDLG1CQUFtQjtZQUdFLGFBQWE7a0JBQXhDLEtBQUs7bUJBQUMsbUJBQW1CO1lBRUYsVUFBVTtrQkFBakMsS0FBSzttQkFBQyxlQUFlO1lBRUUsVUFBVTtrQkFBakMsS0FBSzttQkFBQyxlQUFlO1lBRVcsbUJBQW1CO2tCQUFuRCxLQUFLO21CQUFDLHdCQUF3QjtZQUdKLFlBQVk7a0JBQXRDLE1BQU07bUJBQUMsaUJBQWlCO1lBR0wsTUFBTTtrQkFBekIsTUFBTTttQkFBQyxVQUFVO1lBT1UsYUFBYTtrQkFBeEMsTUFBTTttQkFBQyxrQkFBa0I7WUFFa0MsU0FBUztrQkFBcEUsU0FBUzttQkFBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7WUFDRyxVQUFVO2tCQUF0RSxTQUFTO21CQUFDLFlBQVksRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtZQUNyQyxPQUFPO2tCQUE1QixTQUFTO21CQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbiAgVGVtcGxhdGVSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFBvTXVsdGlzZWxlY3RMaXRlcmFscyB9IGZyb20gJy4uLy4uL2luZGV4JztcbmltcG9ydCB7IFBvTXVsdGlzZWxlY3RPcHRpb24gfSBmcm9tICcuLi9wby1tdWx0aXNlbGVjdC1vcHRpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvTXVsdGlzZWxlY3RTZWFyY2hDb21wb25lbnQgfSBmcm9tICcuLy4uL3BvLW11bHRpc2VsZWN0LXNlYXJjaC9wby1tdWx0aXNlbGVjdC1zZWFyY2guY29tcG9uZW50JztcbmltcG9ydCB7IFBvTGlzdEJveENvbXBvbmVudCB9IGZyb20gJy4vLi4vLi4vLi4vcG8tbGlzdGJveC9wby1saXN0Ym94LmNvbXBvbmVudCc7XG5cbi8qKlxuICogQGRvY3NQcml2YXRlXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKlxuICogQ29tcG9uZW50ZSBxdWUgY29uc3RydcOtcmEgbyBkcm9wZG93biwgY29udGVuZG8gbyBjYW1wbyBkZSBwZXNxdWlzYSBlIG9zIGl0ZW5zIHBhcmEgc2VsZcOnw6NvLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwby1tdWx0aXNlbGVjdC1kcm9wZG93bicsXG4gIHRlbXBsYXRlVXJsOiAnLi9wby1tdWx0aXNlbGVjdC1kcm9wZG93bi5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFBvTXVsdGlzZWxlY3REcm9wZG93bkNvbXBvbmVudCB7XG4gIC8qKiBQcm9wcmllZGFkZSBxdWUgaW5kaWNhIHNlIGRldmUgZXhpYmlyIG8gbG9hZGluZy4gKi9cbiAgQElucHV0KCdwLXNlYXJjaGluZycpIGlzU2VydmVyU2VhcmNoaW5nPzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBQcm9wcmllZGFkZSBxdWUgaW5kaWNhIHNlIG8gY2FtcG8gZGUgcGVzcXVpc2EgZGV2ZXLDoSBzZXIgZXNjb25kaWRvLiAqL1xuICBASW5wdXQoJ3AtaGlkZS1zZWFyY2gnKSBoaWRlU2VhcmNoPzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBQcm9wcmllZGFkZSBxdWUgcXVlIHJlY2ViZSBhcyBsaXRlcmFpcyBkZWZpbmlkYXMgbm8gY29tcG9uZW50ZSBgcG8tbXVsdGlzZWxlY3RgLiAqL1xuICBASW5wdXQoJ3AtbGl0ZXJhbHMnKSBsaXRlcmFscz86IFBvTXVsdGlzZWxlY3RMaXRlcmFscztcblxuICAvKiogUGxhY2Vob2xkZXIgZG8gY2FtcG8gZGUgcGVzcXVpc2EuICovXG4gIEBJbnB1dCgncC1wbGFjZWhvbGRlci1zZWFyY2gnKSBwbGFjZWhvbGRlclNlYXJjaDogc3RyaW5nO1xuXG4gIC8qKiBQcm9wcmllZGFkZSBxdWUgcmVjZWJlIGEgbGlzdGEgZGUgb3DDp8O1ZXMgc2VsZWNpb25hZGFzLiAqL1xuICBASW5wdXQoJ3Atc2VsZWN0ZWQtb3B0aW9ucycpIHNlbGVjdGVkT3B0aW9uczogQXJyYXk8YW55PiA9IFtdO1xuXG4gIC8qKiBQcm9wcmllZGFkZSBxdWUgcmVjZWJlIGEgbGlzdGEgY29tIHRvZGFzIGFzIG9ww6fDtWVzLiAqL1xuICBASW5wdXQoJ3Atb3B0aW9ucycpIG9wdGlvbnM6IEFycmF5PFBvTXVsdGlzZWxlY3RPcHRpb24gfCBhbnk+ID0gW107XG5cbiAgLyoqIFByb3ByaWVkYWRlIHF1ZSByZWNlYmUgYSBsaXN0YSBkZSBvcMOnw7VlcyBxdWUgZGV2ZXLDo28gc2VyIGNyaWFkYXMgbm8gZHJvcGRvd24uICovXG4gIEBJbnB1dCgncC12aXNpYmxlLW9wdGlvbnMnKSB2aXNpYmxlT3B0aW9uczogQXJyYXk8UG9NdWx0aXNlbGVjdE9wdGlvbiB8IGFueT4gPSBbXTtcblxuICAvKiogUHJvcHJpZWRhZGUgcXVlIGluZGljYSBzZSBvIGNhbXBvIFwiU2VsZWNpb25hciB0b2Rvc1wiIGRldmVyw6Egc2VyIGVzY29uZGlkby4gKi9cbiAgQElucHV0KCdwLWhpZGUtc2VsZWN0LWFsbCcpIGhpZGVTZWxlY3RBbGw/OiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KCdwLWZpZWxkLXZhbHVlJykgZmllbGRWYWx1ZTogc3RyaW5nO1xuXG4gIEBJbnB1dCgncC1maWVsZC1sYWJlbCcpIGZpZWxkTGFiZWw6IHN0cmluZztcblxuICBASW5wdXQoJ3AtbXVsdGlzZWxlY3QtdGVtcGxhdGUnKSBtdWx0aXNlbGVjdFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgYW55O1xuXG4gIC8qKiBFdmVudG8gZGlzcGFyYWRvIGEgY2FkYSB0ZWNsYSBkaWdpdGFkYSBuYSBwZXNxdWlzYS4gKi9cbiAgQE91dHB1dCgncC1jaGFuZ2Utc2VhcmNoJykgY2hhbmdlU2VhcmNoID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKiBFdmVudG8gZGlzcGFyYWRvIGEgY2FkYSBhbHRlcmHDp8OjbyBuYSBsaXN0YSBkYXMgb3DDp8O1ZXMgc2VsZWNpb25hZGFzLiAqL1xuICBAT3V0cHV0KCdwLWNoYW5nZScpIGNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogRXZlbnRvIGRpc3BhcmFkbyBxdWFuZG8gZm9yIGRldGVjdGFkYSB1bWEgYcOnw6NvIHF1ZSBuZWNlc3NpdGUgZmVjaGFyIG8gZHJvcGRvd24uXG4gICAqIFBvciBleGVtcGxvLCBubyBjYXNvIGRlIHNlciB0ZWNsYWRvIFRBQiBkZW50cm8gZG8gZHJvcGRvd24sIGVudMOjbyDDqSBkaXNwYXJhZG8gZXN0ZSBldmVudG9cbiAgICogcGFyYSBub3RpZmljYXIgbyBjb21wb25lbnRlIHByaW5jaXBhbCBxdWUgZGV2ZSBmZWNoYXIgbyBkcm9wZG93bi5cbiAgICovXG4gIEBPdXRwdXQoJ3AtY2xvc2UtZHJvcGRvd24nKSBjbG9zZURyb3Bkb3duID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiB0cnVlIH0pIGNvbnRhaW5lcjogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnZGl2RWxlbWVudCcsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiB0cnVlIH0pIGRpdkVsZW1lbnQ6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ2xpc3Rib3gnKSBsaXN0Ym94OiBQb0xpc3RCb3hDb21wb25lbnQ7XG5cbiAgc2Nyb2xsVG9wID0gMDtcbiAgc2hvdzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIGdldCBoYXNPcHRpb25zKCkge1xuICAgIHJldHVybiAhIXRoaXMub3B0aW9ucz8ubGVuZ3RoO1xuICB9XG5cbiAgc2Nyb2xsVG8oaW5kZXgpIHtcbiAgICB0aGlzLnNjcm9sbFRvcCA9IGluZGV4IDw9IDIgPyAwIDogaW5kZXggKiA0NCAtIDg4O1xuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBpc1NlbGVjdGVkSXRlbShvcHRpb246IFBvTXVsdGlzZWxlY3RPcHRpb24pIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZE9wdGlvbnMuc29tZShzZWxlY3RlZEl0ZW0gPT4gc2VsZWN0ZWRJdGVtW3RoaXMuZmllbGRWYWx1ZV0gPT09IG9wdGlvblt0aGlzLmZpZWxkVmFsdWVdKTtcbiAgfVxuXG4gIGNsaWNrSXRlbShjaGVjaywgb3B0aW9ucz8pIHtcbiAgICBpZiAob3B0aW9ucykge1xuICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZFZhbHVlcyhjaGVjaywgb3B0aW9ucyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHsgc2VsZWN0ZWQsIG9wdGlvbiB9ID0gY2hlY2s7XG4gICAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkVmFsdWVzKHNlbGVjdGVkLCBvcHRpb24pO1xuICAgIH1cbiAgfVxuXG4gIG9uQ2xpY2tTZWxlY3RBbGwoKSB7XG4gICAgY29uc3Qgc2VsZWN0ZWRWYWx1ZXMgPSB0aGlzLnNlbGVjdGVkT3B0aW9ucy5tYXAoKHsgW3RoaXMuZmllbGRWYWx1ZV06IHZhbHVlIH0pID0+IHZhbHVlKTtcblxuICAgIGlmICh0aGlzLmV2ZXJ5VmlzaWJsZU9wdGlvbnNTZWxlY3RlZChzZWxlY3RlZFZhbHVlcykpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25zID0gW107XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25zID0gdGhpcy51bmlxdWVTZWxlY3RlZE9wdGlvbnMoc2VsZWN0ZWRWYWx1ZXMpO1xuICAgIH1cbiAgICB0aGlzLmNoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWRPcHRpb25zKTtcbiAgfVxuXG4gIHVwZGF0ZVNlbGVjdGVkVmFsdWVzKGNoZWNrZWQsIG9wdGlvbikge1xuICAgIGlmIChjaGVja2VkKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkT3B0aW9ucy5wdXNoKG9wdGlvbik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25zID0gdGhpcy5zZWxlY3RlZE9wdGlvbnMuZmlsdGVyKFxuICAgICAgICBzZWxlY3RlZE9wdGlvbiA9PiBzZWxlY3RlZE9wdGlvblt0aGlzLmZpZWxkVmFsdWVdICE9PSBvcHRpb25bdGhpcy5maWVsZFZhbHVlXVxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5jaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkT3B0aW9ucyk7XG4gIH1cblxuICBldmVyeVZpc2libGVPcHRpb25zU2VsZWN0ZWQoc2VsZWN0ZWRWYWx1ZXMpIHtcbiAgICByZXR1cm4gdGhpcy52aXNpYmxlT3B0aW9ucy5ldmVyeSh2aXNpYmxlT3B0aW9uID0+IHNlbGVjdGVkVmFsdWVzLmluY2x1ZGVzKHZpc2libGVPcHRpb25bdGhpcy5maWVsZFZhbHVlXSkpO1xuICB9XG5cbiAgc29tZVZpc2libGVPcHRpb25zU2VsZWN0ZWQoc2VsZWN0ZWRWYWx1ZXMpIHtcbiAgICByZXR1cm4gdGhpcy52aXNpYmxlT3B0aW9ucy5zb21lKHZpc2libGVPcHRpb24gPT4gc2VsZWN0ZWRWYWx1ZXMuaW5jbHVkZXModmlzaWJsZU9wdGlvblt0aGlzLmZpZWxkVmFsdWVdKSk7XG4gIH1cblxuICBnZXRTdGF0ZVNlbGVjdEFsbCgpIHtcbiAgICBjb25zdCBzZWxlY3RlZFZhbHVlcyA9IHRoaXMuc2VsZWN0ZWRPcHRpb25zLm1hcCgoeyBbdGhpcy5maWVsZFZhbHVlXTogdmFsdWUgfSkgPT4gdmFsdWUpO1xuXG4gICAgaWYgKHRoaXMuZXZlcnlWaXNpYmxlT3B0aW9uc1NlbGVjdGVkKHNlbGVjdGVkVmFsdWVzKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIGlmICh0aGlzLnNvbWVWaXNpYmxlT3B0aW9uc1NlbGVjdGVkKHNlbGVjdGVkVmFsdWVzKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBjYWxsQ2hhbmdlU2VhcmNoKGV2ZW50KSB7XG4gICAgdGhpcy5jaGFuZ2VTZWFyY2guZW1pdChldmVudCk7XG4gIH1cblxuICBjb250cm9sVmlzaWJpbGl0eSh0b09wZW4pIHtcbiAgICB0aGlzLnNob3cgPSB0b09wZW47XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0b09wZW4gJiYgdGhpcy5saXN0Ym94Py5zZWFyY2hFbGVtZW50ICYmICF0aGlzLmhpZGVTZWFyY2gpIHtcbiAgICAgICAgdGhpcy5saXN0Ym94LnNlYXJjaEVsZW1lbnQuc2V0Rm9jdXMoKTtcbiAgICAgICAgdGhpcy5saXN0Ym94LnNlYXJjaEVsZW1lbnQuY2xlYW4oKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJpdmF0ZSB1bmlxdWVTZWxlY3RlZE9wdGlvbnMoc2VsZWN0ZWRWYWx1ZXMpIHtcbiAgICBjb25zdCBuZXdTZWxlY3RlZE9wdGlvbnMgPSBbLi4udGhpcy5zZWxlY3RlZE9wdGlvbnNdO1xuXG4gICAgZm9yIChjb25zdCB2aXNpYmxlT3B0aW9uIG9mIHRoaXMudmlzaWJsZU9wdGlvbnMpIHtcbiAgICAgIGlmICghc2VsZWN0ZWRWYWx1ZXMuaW5jbHVkZXModmlzaWJsZU9wdGlvblt0aGlzLmZpZWxkVmFsdWVdKSkge1xuICAgICAgICBuZXdTZWxlY3RlZE9wdGlvbnMucHVzaCh2aXNpYmxlT3B0aW9uKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV3U2VsZWN0ZWRPcHRpb25zO1xuICB9XG59XG4iLCI8ZGl2ICNjb250YWluZXIgY2xhc3M9XCJwby1tdWx0aXNlbGVjdC1jb250YWluZXJcIiBbaGlkZGVuXT1cIiFzaG93XCI+XG4gIDxkaXYgW3Njcm9sbFRvcF09XCJzY3JvbGxUb3BcIiAjZGl2RWxlbWVudD5cbiAgICA8bmctY29udGFpbmVyPlxuICAgICAgPHBvLWxpc3Rib3hcbiAgICAgICAgI2xpc3Rib3hcbiAgICAgICAgcC10eXBlPVwiY2hlY2tcIlxuICAgICAgICBbcC1pdGVtc109XCJ2aXNpYmxlT3B0aW9uc1wiXG4gICAgICAgIFtwLXNlbGVjdGVkLW9wdGlvbnNdPVwic2VsZWN0ZWRPcHRpb25zXCJcbiAgICAgICAgW3AtY2hlY2tib3hBbGxWYWx1ZV09XCJnZXRTdGF0ZVNlbGVjdEFsbCgpXCJcbiAgICAgICAgW3AtZmllbGQtdmFsdWVdPVwiZmllbGRWYWx1ZVwiXG4gICAgICAgIFtwLWZpZWxkLXZhbHVlLXNlYXJjaF09XCJmaWVsZFZhbHVlXCJcbiAgICAgICAgW3AtZmllbGQtbGFiZWxdPVwiZmllbGRMYWJlbFwiXG4gICAgICAgIFtwLWxpdGVyYWwtc2VhcmNoXT1cImxpdGVyYWxzXCJcbiAgICAgICAgW3AtbGl0ZXJhbHNdPVwibGl0ZXJhbHNcIlxuICAgICAgICBbcC1pcy1zZWFyY2hpbmddPVwiaXNTZXJ2ZXJTZWFyY2hpbmdcIlxuICAgICAgICBbcC1oaWRlLXNlYXJjaF09XCJoaWRlU2VhcmNoXCJcbiAgICAgICAgW3AtaGlkZS1zZWxlY3QtYWxsXT1cImhpZGVTZWxlY3RBbGxcIlxuICAgICAgICBbcC10ZW1wbGF0ZV09XCJtdWx0aXNlbGVjdFRlbXBsYXRlXCJcbiAgICAgICAgW3AtcGxhY2Vob2xkZXItc2VhcmNoXT1cInBsYWNlaG9sZGVyU2VhcmNoXCJcbiAgICAgICAgKHAtY2hhbmdlKT1cImNsaWNrSXRlbSgkZXZlbnQpXCJcbiAgICAgICAgKHAtY2hhbmdlLWFsbCk9XCJvbkNsaWNrU2VsZWN0QWxsKClcIlxuICAgICAgICAocC1jaGFuZ2Utc2VhcmNoKT1cImNhbGxDaGFuZ2VTZWFyY2goJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICA8L3BvLWxpc3Rib3g+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
212
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tbXVsdGlzZWxlY3QtZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvLWZpZWxkL3BvLW11bHRpc2VsZWN0L3BvLW11bHRpc2VsZWN0LWRyb3Bkb3duL3BvLW11bHRpc2VsZWN0LWRyb3Bkb3duLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1maWVsZC9wby1tdWx0aXNlbGVjdC9wby1tdWx0aXNlbGVjdC1kcm9wZG93bi9wby1tdWx0aXNlbGVjdC1kcm9wZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUVWLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFNdkI7Ozs7OztHQU1HO0FBTUgsTUFBTSxPQUFPLDhCQUE4QjtJQW1EckI7SUFsRHBCLHVEQUF1RDtJQUNqQyxpQkFBaUIsR0FBYSxLQUFLLENBQUM7SUFFMUQsMEVBQTBFO0lBQ2xELFVBQVUsR0FBYSxLQUFLLENBQUM7SUFFckQsdUZBQXVGO0lBQ2xFLFFBQVEsQ0FBeUI7SUFFdEQsd0NBQXdDO0lBQ1QsaUJBQWlCLENBQVM7SUFFekQsNkRBQTZEO0lBQ2hDLGVBQWUsR0FBZSxFQUFFLENBQUM7SUFFOUQsMERBQTBEO0lBQ3RDLE9BQU8sR0FBcUMsRUFBRSxDQUFDO0lBRW5FLG9GQUFvRjtJQUN4RCxjQUFjLEdBQXFDLEVBQUUsQ0FBQztJQUVsRixpRkFBaUY7SUFDckQsYUFBYSxHQUFhLEtBQUssQ0FBQztJQUVwQyxVQUFVLENBQVM7SUFFbkIsVUFBVSxDQUFTO0lBRVYsbUJBQW1CLENBQXlCO0lB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LGVBQWU7a0JBQTNDLEtBQUs7bUJBQUMsb0JBQW9CO1lBR1AsT0FBTztrQkFBMUIsS0FBSzttQkFBQyxXQUFXO1lBR1UsY0FBYztrQkFBekMsS0FBSzttQkFBQyxtQkFBbUI7WUFHRSxhQUFhO2tCQUF4QyxLQUFLO21CQUFDLG1CQUFtQjtZQUVGLFVBQVU7a0JBQWpDLEtBQUs7bUJBQUMsZUFBZTtZQUVFLFVBQVU7a0JBQWpDLEtBQUs7bUJBQUMsZUFBZTtZQUVXLG1CQUFtQjtrQkFBbkQsS0FBSzttQkFBQyx3QkFBd0I7WUFHSixZQUFZO2tCQUF0QyxNQUFNO21CQUFDLGlCQUFpQjtZQUdMLE1BQU07a0JBQXpCLE1BQU07bUJBQUMsVUFBVTtZQU9VLGFBQWE7a0JBQXhDLE1BQU07bUJBQUMsa0JBQWtCO1lBRWtDLFNBQVM7a0JBQXBFLFNBQVM7bUJBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO1lBQ0csVUFBVTtrQkFBdEUsU0FBUzttQkFBQyxZQUFZLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7WUFDckMsT0FBTztrQkFBNUIsU0FBUzttQkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxuICBUZW1wbGF0ZVJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgUG9NdWx0aXNlbGVjdExpdGVyYWxzIH0gZnJvbSAnLi4vLi4vaW5kZXgnO1xuaW1wb3J0IHsgUG9NdWx0aXNlbGVjdE9wdGlvbiB9IGZyb20gJy4uL3BvLW11bHRpc2VsZWN0LW9wdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9MaXN0Qm94Q29tcG9uZW50IH0gZnJvbSAnLi8uLi8uLi8uLi9wby1saXN0Ym94L3BvLWxpc3Rib3guY29tcG9uZW50JztcblxuLyoqXG4gKiBAZG9jc1ByaXZhdGVcbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqXG4gKiBDb21wb25lbnRlIHF1ZSBjb25zdHJ1w61yYSBvIGRyb3Bkb3duLCBjb250ZW5kbyBvIGNhbXBvIGRlIHBlc3F1aXNhIGUgb3MgaXRlbnMgcGFyYSBzZWxlw6fDo28uXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3BvLW11bHRpc2VsZWN0LWRyb3Bkb3duJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BvLW11bHRpc2VsZWN0LWRyb3Bkb3duLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgUG9NdWx0aXNlbGVjdERyb3Bkb3duQ29tcG9uZW50IHtcbiAgLyoqIFByb3ByaWVkYWRlIHF1ZSBpbmRpY2Egc2UgZGV2ZSBleGliaXIgbyBsb2FkaW5nLiAqL1xuICBASW5wdXQoJ3Atc2VhcmNoaW5nJykgaXNTZXJ2ZXJTZWFyY2hpbmc/OiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIFByb3ByaWVkYWRlIHF1ZSBpbmRpY2Egc2UgbyBjYW1wbyBkZSBwZXNxdWlzYSBkZXZlcsOhIHNlciBlc2NvbmRpZG8uICovXG4gIEBJbnB1dCgncC1oaWRlLXNlYXJjaCcpIGhpZGVTZWFyY2g/OiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIFByb3ByaWVkYWRlIHF1ZSBxdWUgcmVjZWJlIGFzIGxpdGVyYWlzIGRlZmluaWRhcyBubyBjb21wb25lbnRlIGBwby1tdWx0aXNlbGVjdGAuICovXG4gIEBJbnB1dCgncC1saXRlcmFscycpIGxpdGVyYWxzPzogUG9NdWx0aXNlbGVjdExpdGVyYWxzO1xuXG4gIC8qKiBQbGFjZWhvbGRlciBkbyBjYW1wbyBkZSBwZXNxdWlzYS4gKi9cbiAgQElucHV0KCdwLXBsYWNlaG9sZGVyLXNlYXJjaCcpIHBsYWNlaG9sZGVyU2VhcmNoOiBzdHJpbmc7XG5cbiAgLyoqIFByb3ByaWVkYWRlIHF1ZSByZWNlYmUgYSBsaXN0YSBkZSBvcMOnw7VlcyBzZWxlY2lvbmFkYXMuICovXG4gIEBJbnB1dCgncC1zZWxlY3RlZC1vcHRpb25zJykgc2VsZWN0ZWRPcHRpb25zOiBBcnJheTxhbnk+ID0gW107XG5cbiAgLyoqIFByb3ByaWVkYWRlIHF1ZSByZWNlYmUgYSBsaXN0YSBjb20gdG9kYXMgYXMgb3DDp8O1ZXMuICovXG4gIEBJbnB1dCgncC1vcHRpb25zJykgb3B0aW9uczogQXJyYXk8UG9NdWx0aXNlbGVjdE9wdGlvbiB8IGFueT4gPSBbXTtcblxuICAvKiogUHJvcHJpZWRhZGUgcXVlIHJlY2ViZSBhIGxpc3RhIGRlIG9ww6fDtWVzIHF1ZSBkZXZlcsOjbyBzZXIgY3JpYWRhcyBubyBkcm9wZG93bi4gKi9cbiAgQElucHV0KCdwLXZpc2libGUtb3B0aW9ucycpIHZpc2libGVPcHRpb25zOiBBcnJheTxQb011bHRpc2VsZWN0T3B0aW9uIHwgYW55PiA9IFtdO1xuXG4gIC8qKiBQcm9wcmllZGFkZSBxdWUgaW5kaWNhIHNlIG8gY2FtcG8gXCJTZWxlY2lvbmFyIHRvZG9zXCIgZGV2ZXLDoSBzZXIgZXNjb25kaWRvLiAqL1xuICBASW5wdXQoJ3AtaGlkZS1zZWxlY3QtYWxsJykgaGlkZVNlbGVjdEFsbD86IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoJ3AtZmllbGQtdmFsdWUnKSBmaWVsZFZhbHVlOiBzdHJpbmc7XG5cbiAgQElucHV0KCdwLWZpZWxkLWxhYmVsJykgZmllbGRMYWJlbDogc3RyaW5nO1xuXG4gIEBJbnB1dCgncC1tdWx0aXNlbGVjdC10ZW1wbGF0ZScpIG11bHRpc2VsZWN0VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCBhbnk7XG5cbiAgLyoqIEV2ZW50byBkaXNwYXJhZG8gYSBjYWRhIHRlY2xhIGRpZ2l0YWRhIG5hIHBlc3F1aXNhLiAqL1xuICBAT3V0cHV0KCdwLWNoYW5nZS1zZWFyY2gnKSBjaGFuZ2VTZWFyY2ggPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqIEV2ZW50byBkaXNwYXJhZG8gYSBjYWRhIGFsdGVyYcOnw6NvIG5hIGxpc3RhIGRhcyBvcMOnw7VlcyBzZWxlY2lvbmFkYXMuICovXG4gIEBPdXRwdXQoJ3AtY2hhbmdlJykgY2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKlxuICAgKiBFdmVudG8gZGlzcGFyYWRvIHF1YW5kbyBmb3IgZGV0ZWN0YWRhIHVtYSBhw6fDo28gcXVlIG5lY2Vzc2l0ZSBmZWNoYXIgbyBkcm9wZG93bi5cbiAgICogUG9yIGV4ZW1wbG8sIG5vIGNhc28gZGUgc2VyIHRlY2xhZG8gVEFCIGRlbnRybyBkbyBkcm9wZG93biwgZW50w6NvIMOpIGRpc3BhcmFkbyBlc3RlIGV2ZW50b1xuICAgKiBwYXJhIG5vdGlmaWNhciBvIGNvbXBvbmVudGUgcHJpbmNpcGFsIHF1ZSBkZXZlIGZlY2hhciBvIGRyb3Bkb3duLlxuICAgKi9cbiAgQE91dHB1dCgncC1jbG9zZS1kcm9wZG93bicpIGNsb3NlRHJvcGRvd24gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQFZpZXdDaGlsZCgnY29udGFpbmVyJywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IHRydWUgfSkgY29udGFpbmVyOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdkaXZFbGVtZW50JywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IHRydWUgfSkgZGl2RWxlbWVudDogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnbGlzdGJveCcpIGxpc3Rib3g6IFBvTGlzdEJveENvbXBvbmVudDtcblxuICBzY3JvbGxUb3AgPSAwO1xuICBzaG93OiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgZ2V0IGhhc09wdGlvbnMoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5vcHRpb25zPy5sZW5ndGg7XG4gIH1cblxuICBzY3JvbGxUbyhpbmRleCkge1xuICAgIHRoaXMuc2Nyb2xsVG9wID0gaW5kZXggPD0gMiA/IDAgOiBpbmRleCAqIDQ0IC0gODg7XG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGlzU2VsZWN0ZWRJdGVtKG9wdGlvbjogUG9NdWx0aXNlbGVjdE9wdGlvbikge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkT3B0aW9ucy5zb21lKHNlbGVjdGVkSXRlbSA9PiBzZWxlY3RlZEl0ZW1bdGhpcy5maWVsZFZhbHVlXSA9PT0gb3B0aW9uW3RoaXMuZmllbGRWYWx1ZV0pO1xuICB9XG5cbiAgY2xpY2tJdGVtKGNoZWNrLCBvcHRpb25zPykge1xuICAgIGlmIChvcHRpb25zKSB7XG4gICAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkVmFsdWVzKGNoZWNrLCBvcHRpb25zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgeyBzZWxlY3RlZCwgb3B0aW9uIH0gPSBjaGVjaztcbiAgICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRWYWx1ZXMoc2VsZWN0ZWQsIG9wdGlvbik7XG4gICAgfVxuICB9XG5cbiAgb25DbGlja1NlbGVjdEFsbCgpIHtcbiAgICBjb25zdCBzZWxlY3RlZFZhbHVlcyA9IHRoaXMuc2VsZWN0ZWRPcHRpb25zLm1hcCgoeyBbdGhpcy5maWVsZFZhbHVlXTogdmFsdWUgfSkgPT4gdmFsdWUpO1xuXG4gICAgaWYgKHRoaXMuZXZlcnlWaXNpYmxlT3B0aW9uc1NlbGVjdGVkKHNlbGVjdGVkVmFsdWVzKSkge1xuICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMgPSBbXTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMgPSB0aGlzLnVuaXF1ZVNlbGVjdGVkT3B0aW9ucyhzZWxlY3RlZFZhbHVlcyk7XG4gICAgfVxuICAgIHRoaXMuY2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZE9wdGlvbnMpO1xuICB9XG5cbiAgdXBkYXRlU2VsZWN0ZWRWYWx1ZXMoY2hlY2tlZCwgb3B0aW9uKSB7XG4gICAgaWYgKGNoZWNrZWQpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25zLnB1c2gob3B0aW9uKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMgPSB0aGlzLnNlbGVjdGVkT3B0aW9ucy5maWx0ZXIoXG4gICAgICAgIHNlbGVjdGVkT3B0aW9uID0+IHNlbGVjdGVkT3B0aW9uW3RoaXMuZmllbGRWYWx1ZV0gIT09IG9wdGlvblt0aGlzLmZpZWxkVmFsdWVdXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLmNoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWRPcHRpb25zKTtcbiAgfVxuXG4gIGV2ZXJ5VmlzaWJsZU9wdGlvbnNTZWxlY3RlZChzZWxlY3RlZFZhbHVlcykge1xuICAgIHJldHVybiB0aGlzLnZpc2libGVPcHRpb25zLmV2ZXJ5KHZpc2libGVPcHRpb24gPT4gc2VsZWN0ZWRWYWx1ZXMuaW5jbHVkZXModmlzaWJsZU9wdGlvblt0aGlzLmZpZWxkVmFsdWVdKSk7XG4gIH1cblxuICBzb21lVmlzaWJsZU9wdGlvbnNTZWxlY3RlZChzZWxlY3RlZFZhbHVlcykge1xuICAgIHJldHVybiB0aGlzLnZpc2libGVPcHRpb25zLnNvbWUodmlzaWJsZU9wdGlvbiA9PiBzZWxlY3RlZFZhbHVlcy5pbmNsdWRlcyh2aXNpYmxlT3B0aW9uW3RoaXMuZmllbGRWYWx1ZV0pKTtcbiAgfVxuXG4gIGdldFN0YXRlU2VsZWN0QWxsKCkge1xuICAgIGNvbnN0IHNlbGVjdGVkVmFsdWVzID0gdGhpcy5zZWxlY3RlZE9wdGlvbnMubWFwKCh7IFt0aGlzLmZpZWxkVmFsdWVdOiB2YWx1ZSB9KSA9PiB2YWx1ZSk7XG5cbiAgICBpZiAodGhpcy5ldmVyeVZpc2libGVPcHRpb25zU2VsZWN0ZWQoc2VsZWN0ZWRWYWx1ZXMpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuc29tZVZpc2libGVPcHRpb25zU2VsZWN0ZWQoc2VsZWN0ZWRWYWx1ZXMpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGNhbGxDaGFuZ2VTZWFyY2goZXZlbnQpIHtcbiAgICB0aGlzLmNoYW5nZVNlYXJjaC5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIGNvbnRyb2xWaXNpYmlsaXR5KHRvT3Blbikge1xuICAgIHRoaXMuc2hvdyA9IHRvT3BlbjtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRvT3BlbiAmJiB0aGlzLmxpc3Rib3g/LnNlYXJjaEVsZW1lbnQgJiYgIXRoaXMuaGlkZVNlYXJjaCkge1xuICAgICAgICB0aGlzLmxpc3Rib3guc2VhcmNoRWxlbWVudC5zZXRGb2N1cygpO1xuICAgICAgICB0aGlzLmxpc3Rib3guc2VhcmNoRWxlbWVudC5jbGVhbigpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcml2YXRlIHVuaXF1ZVNlbGVjdGVkT3B0aW9ucyhzZWxlY3RlZFZhbHVlcykge1xuICAgIGNvbnN0IG5ld1NlbGVjdGVkT3B0aW9ucyA9IFsuLi50aGlzLnNlbGVjdGVkT3B0aW9uc107XG5cbiAgICBmb3IgKGNvbnN0IHZpc2libGVPcHRpb24gb2YgdGhpcy52aXNpYmxlT3B0aW9ucykge1xuICAgICAgaWYgKCFzZWxlY3RlZFZhbHVlcy5pbmNsdWRlcyh2aXNpYmxlT3B0aW9uW3RoaXMuZmllbGRWYWx1ZV0pKSB7XG4gICAgICAgIG5ld1NlbGVjdGVkT3B0aW9ucy5wdXNoKHZpc2libGVPcHRpb24pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBuZXdTZWxlY3RlZE9wdGlvbnM7XG4gIH1cbn1cbiIsIjxkaXYgI2NvbnRhaW5lciBjbGFzcz1cInBvLW11bHRpc2VsZWN0LWNvbnRhaW5lclwiIFtoaWRkZW5dPVwiIXNob3dcIj5cbiAgPGRpdiBbc2Nyb2xsVG9wXT1cInNjcm9sbFRvcFwiICNkaXZFbGVtZW50PlxuICAgIDxuZy1jb250YWluZXI+XG4gICAgICA8cG8tbGlzdGJveFxuICAgICAgICAjbGlzdGJveFxuICAgICAgICBwLXR5cGU9XCJjaGVja1wiXG4gICAgICAgIFtwLWl0ZW1zXT1cInZpc2libGVPcHRpb25zXCJcbiAgICAgICAgW3Atc2VsZWN0ZWQtb3B0aW9uc109XCJzZWxlY3RlZE9wdGlvbnNcIlxuICAgICAgICBbcC1jaGVja2JveEFsbFZhbHVlXT1cImdldFN0YXRlU2VsZWN0QWxsKClcIlxuICAgICAgICBbcC1maWVsZC12YWx1ZV09XCJmaWVsZFZhbHVlXCJcbiAgICAgICAgW3AtZmllbGQtdmFsdWUtc2VhcmNoXT1cImZpZWxkVmFsdWVcIlxuICAgICAgICBbcC1maWVsZC1sYWJlbF09XCJmaWVsZExhYmVsXCJcbiAgICAgICAgW3AtbGl0ZXJhbC1zZWFyY2hdPVwibGl0ZXJhbHNcIlxuICAgICAgICBbcC1saXRlcmFsc109XCJsaXRlcmFsc1wiXG4gICAgICAgIFtwLWlzLXNlYXJjaGluZ109XCJpc1NlcnZlclNlYXJjaGluZ1wiXG4gICAgICAgIFtwLWhpZGUtc2VhcmNoXT1cImhpZGVTZWFyY2hcIlxuICAgICAgICBbcC1oaWRlLXNlbGVjdC1hbGxdPVwiaGlkZVNlbGVjdEFsbFwiXG4gICAgICAgIFtwLXRlbXBsYXRlXT1cIm11bHRpc2VsZWN0VGVtcGxhdGVcIlxuICAgICAgICBbcC1wbGFjZWhvbGRlci1zZWFyY2hdPVwicGxhY2Vob2xkZXJTZWFyY2hcIlxuICAgICAgICAocC1jaGFuZ2UpPVwiY2xpY2tJdGVtKCRldmVudClcIlxuICAgICAgICAocC1jaGFuZ2UtYWxsKT1cIm9uQ2xpY2tTZWxlY3RBbGwoKVwiXG4gICAgICAgIChwLWNoYW5nZS1zZWFyY2gpPVwiY2FsbENoYW5nZVNlYXJjaCgkZXZlbnQpXCJcbiAgICAgICAgKHAtY2xvc2UpPVwiY2xvc2VEcm9wZG93bi5lbWl0KClcIlxuICAgICAgPlxuICAgICAgPC9wby1saXN0Ym94PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
package/esm2022/lib/components/po-field/po-multiselect/po-multiselect-literals.interface.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tbXVsdGlzZWxlY3QtbGl0ZXJhbHMuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvLWZpZWxkL3BvLW11bHRpc2VsZWN0L3BvLW11bHRpc2VsZWN0LWxpdGVyYWxzLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAdXNlZEJ5IFBvTXVsdGlzZWxlY3RDb21wb25lbnRcbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqXG4gKiBJbnRlcmZhY2UgcGFyYSBkZWZpbmnDp8OjbyBkYXMgbGl0ZXJhaXMgdXNhZGFzIG5vIGBwby1tdWx0aXNlbGVjdGAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUG9NdWx0aXNlbGVjdExpdGVyYWxzIHtcbiAgLyoqIFRleHRvIGV4aWJpZG8gcXVhbmRvIG7Do28gaG91dmVyIGRhZG9zIGVuY29udHJhZG9zIG5hIGJ1c2NhLiAqL1xuICBub0RhdGE/OiBzdHJpbmc7XG5cbiAgLyoqIFRleHRvIGRvICpwbGFjZWhvbGRlciogZG8gY2FtcG8gZGUgYnVzY2EuICovXG4gIHBsYWNlaG9sZGVyU2VhcmNoPzogc3RyaW5nO1xuXG4gIC8qKiBUZXh0byBleGliaWRvIG5vIGJvdMOjbyBkZSBzZWxlY2lvbmFyIHRvZG9zLiAqL1xuICBzZWxlY3RBbGw/OiBzdHJpbmc7XG59XG4iXX0=
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tbXVsdGlzZWxlY3QtbGl0ZXJhbHMuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvLWZpZWxkL3BvLW11bHRpc2VsZWN0L3BvLW11bHRpc2VsZWN0LWxpdGVyYWxzLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAdXNlZEJ5IFBvTXVsdGlzZWxlY3RDb21wb25lbnRcbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqXG4gKiBJbnRlcmZhY2UgcGFyYSBkZWZpbmnDp8OjbyBkYXMgbGl0ZXJhaXMgdXNhZGFzIG5vIGBwby1tdWx0aXNlbGVjdGAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUG9NdWx0aXNlbGVjdExpdGVyYWxzIHtcbiAgLyoqIFRleHRvIGV4aWJpZG8gcXVhbmRvIG7Do28gaG91dmVyIGRhZG9zIGVuY29udHJhZG9zIG5hIGJ1c2NhLiAqL1xuICBub0RhdGE/OiBzdHJpbmc7XG5cbiAgLyoqIFRleHRvIGRvICpwbGFjZWhvbGRlciogZG8gY2FtcG8gZGUgYnVzY2EuICovXG4gIHBsYWNlaG9sZGVyU2VhcmNoPzogc3RyaW5nO1xuXG4gIC8qKiBUZXh0byBleGliaWRvIG5vIGJvdMOjbyBkZSBzZWxlY2lvbmFyIHRvZG9zLiAqL1xuICBzZWxlY3RBbGw/OiBzdHJpbmc7XG5cbiAgLyoqIFRleHRvIGV4aWJpZG8gbmEgcHJvcHJpZWRhZGUgcGxhY2Vob2xkZXIuICovXG4gIHNlbGVjdEl0ZW0/OiBzdHJpbmc7XG59XG4iXX0=
|