ngx-sumax-erp-components 1.0.45 → 1.0.47
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/date-picker/date-picker.component.mjs +57 -7
- package/esm2022/lib/date-time-picker/date-time-picker.component.mjs +59 -19
- package/esm2022/lib/date-time-picker-editable/date-time-picker-editable.component.mjs +65 -17
- package/esm2022/lib/dialog-ag-grid-search/dialog-ag-grid-search.component.mjs +26 -1
- package/esm2022/lib/error-message/error-message.component.mjs +1 -1
- package/esm2022/lib/input-number/input-number.component.mjs +101 -1
- package/esm2022/lib/input-text/input-text.component.mjs +131 -1
- package/esm2022/lib/ng-select-multiple/ng-select-multiple.component.mjs +183 -2
- package/esm2022/lib/ng-select-simple/ng-select-simple.component.mjs +191 -1
- package/esm2022/lib/sc-ag-grid/sc-ag-grid-customizable/sc-ag-grid-customizable.component.mjs +3 -3
- package/esm2022/lib/sc-ag-grid/sc-ag-grid-pagination/sc-ag-grid-pagination.component.mjs +11 -1
- package/esm2022/lib/text-area/text-area.component.mjs +91 -1
- package/esm2022/lib/tooltip-message/tooltip-message.component.mjs +1 -1
- package/fesm2022/ngx-sumax-erp-components.mjs +908 -44
- package/fesm2022/ngx-sumax-erp-components.mjs.map +1 -1
- package/lib/date-picker/date-picker.component.d.ts +78 -10
- package/lib/date-time-picker/date-time-picker.component.d.ts +71 -23
- package/lib/date-time-picker-editable/date-time-picker-editable.component.d.ts +71 -15
- package/lib/dialog-ag-grid-search/dialog-ag-grid-search.component.d.ts +25 -0
- package/lib/error-message/error-message.component.d.ts +25 -0
- package/lib/input-number/input-number.component.d.ts +120 -0
- package/lib/input-text/input-text.component.d.ts +150 -0
- package/lib/ng-select-multiple/ng-select-multiple.component.d.ts +219 -0
- package/lib/ng-select-simple/ng-select-simple.component.d.ts +215 -0
- package/lib/sc-ag-grid/sc-ag-grid-customizable/sc-ag-grid-customizable.component.d.ts +2 -2
- package/lib/sc-ag-grid/sc-ag-grid-pagination/sc-ag-grid-pagination.component.d.ts +15 -0
- package/lib/text-area/text-area.component.d.ts +110 -0
- package/lib/tooltip-message/tooltip-message.component.d.ts +25 -0
- package/package.json +1 -1
package/esm2022/lib/sc-ag-grid/sc-ag-grid-customizable/sc-ag-grid-customizable.component.mjs
CHANGED
|
@@ -30,7 +30,7 @@ export class ScAgGridCustomizableComponent {
|
|
|
30
30
|
this.searchWidth = "";
|
|
31
31
|
/**
|
|
32
32
|
* @description Opciones de tamaño de página
|
|
33
|
-
* @default [5, 10, 15, 20, 25]
|
|
33
|
+
* @default '[5, 10, 15, 20, 25]'
|
|
34
34
|
*/
|
|
35
35
|
this.pageSizeOptions = [5, 10, 15, 20, 25];
|
|
36
36
|
/**
|
|
@@ -64,7 +64,7 @@ export class ScAgGridCustomizableComponent {
|
|
|
64
64
|
this.height = "20em";
|
|
65
65
|
/**
|
|
66
66
|
* @description Cpnfiguración para el boton `Agregar`
|
|
67
|
-
* @default { visible: true, disabled: false }
|
|
67
|
+
* @default '{ visible: true, disabled: false }'
|
|
68
68
|
*/
|
|
69
69
|
this.btnAdd = { visible: true };
|
|
70
70
|
/**
|
|
@@ -561,4 +561,4 @@ export function isObjEmpty(object) {
|
|
|
561
561
|
return true;
|
|
562
562
|
return Object.keys(object).length === 0;
|
|
563
563
|
}
|
|
564
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtYWctZ3JpZC1jdXN0b21pemFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXN1bWF4LWVycC1jb21wb25lbnQvc3JjL2xpYi9zYy1hZy1ncmlkL3NjLWFnLWdyaWQtY3VzdG9taXphYmxlL3NjLWFnLWdyaWQtY3VzdG9taXphYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zdW1heC1lcnAtY29tcG9uZW50L3NyYy9saWIvc2MtYWctZ3JpZC9zYy1hZy1ncmlkLWN1c3RvbWl6YWJsZS9zYy1hZy1ncmlkLWN1c3RvbWl6YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxlQUFlLEVBRWYsWUFBWSxFQUNaLEtBQUssRUFJTCxNQUFNLEVBR04sU0FBUyxFQUNULE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQW9CdkIsT0FBTyxFQUFjLFlBQVksRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFcEQsT0FBTyxFQUtMLGNBQWMsR0FJZixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBQ2pILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7Ozs7O0FBR3hFLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztBQVdmLE1BQU0sT0FBTyw2QkFBNkI7SUFWMUM7UUF3QkUsb0NBQStCLEdBQUcsMkJBQTJCLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFFL0Qsb0JBQWUsR0FBb0IsR0FBRyxF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LGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFDRyxvQkFBb0I7c0JBQTdCLE1BQU07Z0JBQ0csb0JBQW9CO3NCQUE3QixNQUFNO2dCQUdHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csa0JBQWtCO3NCQUEzQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxtQkFBbUI7c0JBQTVCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0csaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNO2dCQWtCUCxxQkFBcUI7c0JBRHBCLEtBQUs7O0FBb1RSLE1BQU0sVUFBVSxVQUFVLENBQUksTUFBUztJQUNyQyxJQUFJLE1BQU0sS0FBSyxJQUFJLElBQUksTUFBTSxLQUFLLFNBQVM7UUFBRSxPQUFPLElBQUksQ0FBQztJQUV6RCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztBQUMxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgQ29udGVudENoaWxkcmVuLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBRdWVyeUxpc3QsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBWaWV3Q2hpbGQsXHJcbiAgaW5qZWN0LFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBNYXRNZW51VHJpZ2dlciB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9tZW51XCI7XHJcbmltcG9ydCB7XHJcbiAgQ2VsbENvbnRleHRNZW51RXZlbnQsXHJcbiAgQ2VsbEVkaXRpbmdTdG9wcGVkRXZlbnQsXHJcbiAgQ2VsbEtleURvd25FdmVudCxcclxuICBDZWxsVmFsdWVDaGFuZ2VkRXZlbnQsXHJcbiAgQ29sRGVmLFxyXG4gIEdyaWRBcGksXHJcbiAgR3JpZFJlYWR5RXZlbnQsXHJcbiAgSVJvd05vZGUsXHJcbiAgSXNSb3dTZWxlY3RhYmxlLFxyXG4gIFJvd0NsaWNrZWRFdmVudCxcclxuICBSb3dEYXRhVXBkYXRlZEV2ZW50LFxyXG4gIFJvd0RvdWJsZUNsaWNrZWRFdmVudCxcclxuICBSb3dEcmFnRXZlbnQsXHJcbiAgUm93RWRpdGluZ1N0YXJ0ZWRFdmVudCxcclxuICBSb3dTZWxlY3RlZEV2ZW50LFxyXG59IGZyb20gXCJhZy1ncmlkLWNvbW11bml0eVwiO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24sIG9mIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgSU5nU2VsZWN0IH0gZnJvbSBcIi4uLy4uL3V0aWxzL0lOZ1NlbGVjdFwiO1xyXG5pbXBvcnQge1xyXG4gIEJ1dHRvbkhlYWRlcixcclxuICBDb25maWdCdXR0b25BY3Rpb24sXHJcbiAgQ29uZmlnQnV0dG9uQWdHcmlkLFxyXG4gIENvbmZpZ0J1dHRvbkhlYWRlcixcclxuICBFbnVtQnV0dG9uVHlwZSxcclxuICBHZXRSb3dTdHlsZSxcclxuICBIaWRlRnVjLFxyXG4gIFJvd1NlbGVjdGlvbixcclxufSBmcm9tIFwiLi4vLi4vdXRpbHMvSVNjQWdHcmlkXCI7XHJcbmltcG9ydCB7IE1lc3NhZ2VVdGlsU2VydmljZSB9IGZyb20gXCIuLi8uLi91dGlscy9tZXNzYWdlLXV0aWwuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBTY0NlbGxSZW5kZXJCdXR0b25TZXJ2aWNlIH0gZnJvbSBcIi4uL2NlbGwtcmVuZGVyL3NjLWNlbGwtcmVuZGVyLWJ1dHRvbi9zYy1jZWxsLXJlbmRlci1idXR0b24uY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IHNjQ29tcG9uZW50cyB9IGZyb20gXCIuLi9jZWxsLXJlbmRlci9zYy1jZWxsLXJlbmRlci1jb25maWdcIjtcclxuaW1wb3J0IHsgU2NBZ0dyaWRCdXR0b25IZWFkZXIgfSBmcm9tIFwiLi4vZGlyZWN0aXZlcy9zY0FnR3JpZC5kaXJlY3RpdmVcIjtcclxuaW1wb3J0IHsgU2NBZ0dyaWRQYWdpbmF0aW9uQ29tcG9uZW50IH0gZnJvbSBcIi4uL3NjLWFnLWdyaWQtcGFnaW5hdGlvbi9zYy1hZy1ncmlkLXBhZ2luYXRpb24uY29tcG9uZW50XCI7XHJcblxyXG5sZXQgbmV4dElkID0gMDtcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwic2MtYWctZ3JpZC1jdXN0b21pemFibGVcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL3NjLWFnLWdyaWQtY3VzdG9taXphYmxlLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmw6IFwiLi9zYy1hZy1ncmlkLWN1c3RvbWl6YWJsZS5jb21wb25lbnQuc2Nzc1wiLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGhvc3Q6IHtcclxuICAgIFwiW2lkXVwiOiBcImlkU2NBZ0dyaWRDdXN0b21pemFibGVDb21wb25lbnRcIixcclxuICAgIGNsYXNzOiBcInNjLWFnLWdyaWQtY3VzdG9taXphYmxlXCIsXHJcbiAgfSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNjQWdHcmlkQ3VzdG9taXphYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcbiAgQENvbnRlbnRDaGlsZHJlbihTY0FnR3JpZEJ1dHRvbkhlYWRlciwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxyXG4gIHZpZXdDaGlsZHJlbkJ1dHRvbkhlYWRlcnMhOiBRdWVyeUxpc3Q8U2NBZ0dyaWRCdXR0b25IZWFkZXI+O1xyXG5cclxuICBAVmlld0NoaWxkKFwibWVudVRyaWdnZXJcIikgbWVudVRyaWdnZXI/OiBNYXRNZW51VHJpZ2dlcjtcclxuXHJcbiAgQFZpZXdDaGlsZChcInNjQWdHcmlkUGFnaW5hdGlvblwiKVxyXG4gIHByaXZhdGUgX3NjQWdHcmlkUGFnaW5hdGlvbj86IFNjQWdHcmlkUGFnaW5hdGlvbkNvbXBvbmVudDtcclxuXHJcbiAgQFZpZXdDaGlsZChcImJ1dHRvbkFkZFwiKSBidXR0b25BZGQ/OiBFbGVtZW50UmVmPEhUTUxCdXR0b25FbGVtZW50PjtcclxuICBnZXQgYnV0dG9uQWRkRWxlbWVudCgpOiBIVE1MQnV0dG9uRWxlbWVudCB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMuYnV0dG9uQWRkPy5uYXRpdmVFbGVtZW50ID8/IG51bGw7XHJcbiAgfVxyXG5cclxuICBpZFNjQWdHcmlkQ3VzdG9taXphYmxlQ29tcG9uZW50ID0gYHNjLWFnLWdyaWQtY3VzdG9taXphYmxlLSR7KytuZXh0SWR9YDtcclxuXHJcbiAgQElucHV0KCkgaXNSb3dTZWxlY3RhYmxlOiBJc1Jvd1NlbGVjdGFibGUgPSAoKSA9PiB0cnVlO1xyXG5cclxuICBzZWFyY2hDbGFzcyA9IFwiY29sLTEyIGNvbC1zbS0xMiBjb2wtbWQtNiBjb2wtbGctNiBjb2wteGwtNSBteS0yXCI7XHJcbiAgQElucHV0KCkgZ2V0Um93U3R5bGU6IEdldFJvd1N0eWxlID0gKCkgPT4gdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIGZpbGxTZWFyY2ggPSBmYWxzZTtcclxuICAvLyNyZWdpb24gSW5wdXRzXHJcbiAgLyoqXHJcbiAgICogQGRlc2NyaXB0aW9uIENhbnRpZGFkIGRlIGl0ZW1zIHF1ZSBzZSBtb3N0cmFyw6EgcG9yIHDDoWdpbmFcclxuICAgKiBAZGVmYXVsdCAxNVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHBhZ2luYXRpb25QYWdlU2l6ZSA9IDE1O1xyXG4gIEBJbnB1dCgpIHNlYXJjaFdpZHRoID0gXCJcIjtcclxuICAvKipcclxuICAgKiBAZGVzY3JpcHRpb24gIE9wY2lvbmVzIGRlIHRhbWHDsW8gZGUgcMOhZ2luYVxyXG4gICAqIEBkZWZhdWx0IFs1LCAxMCwgMTUsIDIwLCAyNV1cclxuICAgKi9cclxuICBASW5wdXQoKSBwYWdlU2l6ZU9wdGlvbnMgPSBbNSwgMTAsIDE1LCAyMCwgMjVdO1xyXG4gIC8qKlxyXG4gICAqIEBkZXNjcmlwdGlvbiBTaSBlbCB2YWxvciBlcyBgdHJ1ZWAgbXVlc3RyYSBsYSBwYWdpbmFjacOzblxyXG4gICAqIEBkZWZhdWx0IHRydWVcclxuICAgKi9cclxuICBASW5wdXQoKSBwYWdpbmF0aW9uID0gdHJ1ZTtcclxuICAvKipcclxuICAgKiBAZGVzY3JpcHRpb24gVGlwbyBkZSBzZWxlY2lvbiBlbiBsYSBgZ3JpbGxhYHNcclxuICAgKiBAZGVmYXVsdCAnc2ltcGxlJ1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHJvd1NlbGVjdGlvbjogUm93U2VsZWN0aW9uID0gXCJzaW5nbGVcIjtcclxuICAvLyBASW5wdXQoKSBzdXBwcmVzc1Jvd0NsaWNrU2VsZWN0aW9uID0gdHJ1ZTtcclxuICBnZXQgc3VwcHJlc3NSb3dDbGlja1NlbGVjdGlvbigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnJvd1NlbGVjdGlvbiA9PT0gXCJzaW5nbGVcIiA/IGZhbHNlIDogdHJ1ZTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQGRlc2NyaXB0aW9uIEFycmF5IGRlIGNvbHVtbmFzIHF1ZSBzZSBtb3N0cmFyYSBlbiBsYSBgZ3JpbGxhYFxyXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGNvbHVtbkRlZnM6IENvbERlZltdID0gW107XHJcbiAgLyoqXHJcbiAgICogQGRlc2NyaXB0aW9uIEFycmF5IGRlIGRhdG9zIHF1ZSBzZSBtb3N0cmFyYSBlbiBsYSBgZ3JpbGxhYFxyXG4gICAqIEBkZWZhdWx0IG51bGxcclxuICAgKi9cclxuICBASW5wdXQoKSByb3dEYXRhOiBPYnNlcnZhYmxlPGFueVtdPiA9IG9mKFtdKTtcclxuXHJcbiAgQElucHV0KCkgY29uZmlnQnV0dG9uc0FjdGlvbiE6IENvbmZpZ0J1dHRvbkFjdGlvbjtcclxuICBnZXQgY29uZmlnSGVhZGVyKCk6IENvbmZpZ0J1dHRvbkhlYWRlciB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnQnV0dG9uc0FjdGlvbj8uaGVhZGVyID8/IG51bGw7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBkZWZhdWx0Q2VsbFJlbmRlcmVyQWN0aW9uczogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xyXG5cclxuICBfY29uZmlnQnV0dG9uc0RlZmF1bHRBZ0dyaWQ6IENvbmZpZ0J1dHRvbkFnR3JpZFtdID0gW107XHJcblxyXG4gIC8qKlxyXG4gICAqIEBkZXNjcmlwdGlvbiBTaSBlbCB2YWxvciBlcyBgdHJ1ZWAgbXVlc3RyYSBlbCBgYnVzY2Fkb3JgXHJcbiAgICogQGRlZmF1bHQgdHJ1ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHZpc2libGVTZWFyY2ggPSB0cnVlO1xyXG5cclxuICBASW5wdXQoKSBkb21MYXlvdXQ6IFwibm9ybWFsXCIgfCBcImF1dG9IZWlnaHRcIiA9IFwibm9ybWFsXCI7XHJcbiAgQElucHV0KCkgaGVpZ2h0ID0gXCIyMGVtXCI7XHJcblxyXG4gIC8qKlxyXG4gICAqIEBkZXNjcmlwdGlvbiBDcG5maWd1cmFjacOzbiBwYXJhIGVsIGJvdG9uIGBBZ3JlZ2FyYFxyXG4gICAqIEBkZWZhdWx0IHsgdmlzaWJsZTogdHJ1ZSwgZGlzYWJsZWQ6IGZhbHNlIH1cclxuICAgKi9cclxuICBASW5wdXQoKSBidG5BZGQ6IEJ1dHRvbkhlYWRlciA9IHsgdmlzaWJsZTogdHJ1ZSB9O1xyXG4gIC8qKlxyXG4gICAqIEBkZXNjcmlwdGlvbiBQYXJhIGFjdGl2YXIgbyBkZXNjYXRpdmFyIGVsIGRyYWcgJiBkcm9wXHJcbiAgICogQGRlZmF1bHQgZmFsc2VcclxuICAgKi9cclxuICBASW5wdXQoKSByb3dEcmFnTWFuYWdlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBAZGVzY3JpcHRpb24gUGFyYSBhY3RpdmFyIG8gZGVzY2F0aXZhciBsYXMgYW5pbWFjaW9uZXNcclxuICAgKiBAZGVmYXVsdCBmYWxzZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGFuaW1hdGVSb3dzOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIHVzZUdyaWRDb3B5ID0gZmFsc2U7XHJcbiAgQElucHV0KCkgbXVsdGlTb3J0S2V5ITogYW55O1xyXG4gIEBJbnB1dCgpIHNob3dNZW51RGVmYXVsdCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGVuYWJsZUNlbGxUZXh0U2VsZWN0aW9uID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzdXBwcmVzc1Jvd1RyYW5zZm9ybSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGVuYWJsZVJhbmdlU2VsZWN0aW9uID0gZmFsc2U7XHJcbiAgQElucHV0KCkgbm9Sb3dzT3ZlcmxheUNvbXBvbmVudCA9IFwiXCI7XHJcbiAgQElucHV0KCkgbm9Sb3dzT3ZlcmxheUNvbXBvbmVudFBhcmFtcyA9IHt9O1xyXG4gIEBJbnB1dCgpIHZhbGlkYXRlUGFzdGVDZWxsPzogKGV2dFNvdXJjZTogQ2VsbEtleURvd25FdmVudCwgZXZ0VGFyZ2V0OiBDZWxsS2V5RG93bkV2ZW50KSA9PiBQcm9taXNlPGJvb2xlYW4+ID0gKFxyXG4gICAgZXZ0U291cmNlOiBDZWxsS2V5RG93bkV2ZW50LFxyXG4gICAgZXZ0VGFyZ2V0OiBDZWxsS2V5RG93bkV2ZW50XHJcbiAgKSA9PiBQcm9taXNlLnJlc29sdmUodHJ1ZSk7XHJcbiAgQElucHV0KCkgdmFsaWRhdGVQYXN0ZVJvd3M/OiAoZXZ0U291cmNlOiBJUm93Tm9kZVtdLCBldnRUYXJnZXQ6IElSb3dOb2RlW10pID0+IFByb21pc2U8Ym9vbGVhbj4gPSAoXHJcbiAgICBldnRTb3VyY2U6IElSb3dOb2RlW10sXHJcbiAgICBldnRUYXJnZXQ6IElSb3dOb2RlW11cclxuICApID0+IFByb21pc2UucmVzb2x2ZSh0cnVlKTtcclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgLyoqXHJcbiAgICogQGRlc2NyaXB0aW9uIFBhcmEgYWdyZWdhciBjb21wb25lbnRlcyBpbnRlcm5vcyBkZW50cm8gZGUgbGEgZ3JpbGxhXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgZnJhbWV3b3JrQ29tcG9uZW50cyh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLl9mcmFtZXdvcmtDb21wb25lbnRzID0geyAuLi50aGlzLl9mcmFtZXdvcmtDb21wb25lbnRzLCAuLi52YWx1ZSB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGRlc2NyaXB0aW9uIFBhcmEgcG9kZXIgYWdyZWdhciBtw6FzIG9iamV0b3MgYWwgY29udGV4dG9cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBjb250ZXh0KHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMuX2NvbnRleHQgPSB7IC4uLnRoaXMuX2NvbnRleHQsIC4uLnZhbHVlIH07XHJcbiAgfVxyXG5cclxuICAvLyNyZWdpb24gT3V0cHV0XHJcbiAgQE91dHB1dCgpIG9uQ2hhbmdlRmlsdGVyID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIG9uQWRkUm93ID0gbmV3IEV2ZW50RW1pdHRlcjxHcmlkQXBpPigpO1xyXG4gIEBPdXRwdXQoKSBvbkdyaWRBZGRSb3cgPSBuZXcgRXZlbnRFbWl0dGVyPENlbGxLZXlEb3duRXZlbnQ+KCk7XHJcbiAgQE91dHB1dCgpIG9uRWRpdFJvdyA9IG5ldyBFdmVudEVtaXR0ZXI8SVJvd05vZGU+KCk7XHJcbiAgQE91dHB1dCgpIG9uRGVsZXRlUm93ID0gbmV3IEV2ZW50RW1pdHRlcjxbR3JpZEFwaSwgYW55W11dPigpO1xyXG4gIEBPdXRwdXQoKSBvbkNlbGxLZXlEb3duOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25DZWxsU3RvcEVkaXRpbmc6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvbkJ1dHRvbkFjdGlvbkFnR3JpZCA9IG5ldyBFdmVudEVtaXR0ZXI8W0VudW1CdXR0b25UeXBlIHwgc3RyaW5nLCBJUm93Tm9kZV0+KCk7XHJcbiAgQE91dHB1dCgpIG9uQnV0dG9uQWN0aW9uSGVhZGVyID0gbmV3IEV2ZW50RW1pdHRlcjxbRW51bUJ1dHRvblR5cGUgfCBzdHJpbmcsIGFueVtdXT4oKTtcclxuXHJcbiAgLy8gQWdHcmlkIEV2ZW50cyAtIE91cHV0XHJcbiAgQE91dHB1dCgpIG9uR3JpZFJlYWR5ID0gbmV3IEV2ZW50RW1pdHRlcjxbR3JpZEFwaV0+KCk7XHJcbiAgQE91dHB1dCgpIG9uR3JpZFNlbGVjdENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55W10+KCk7XHJcbiAgQE91dHB1dCgpIG9uR3JpZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8W0dyaWRBcGksIFJvd0RhdGFVcGRhdGVkRXZlbnRdPigpO1xyXG4gIEBPdXRwdXQoKSBvblJvd0RyYWdFbmQgPSBuZXcgRXZlbnRFbWl0dGVyPFJvd0RyYWdFdmVudD4oKTtcclxuICBAT3V0cHV0KCkgb25Sb3dFZGl0aW5nU3RhcnRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Um93RWRpdGluZ1N0YXJ0ZWRFdmVudD4oKTtcclxuICBAT3V0cHV0KCkgcm93Q2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Um93Q2xpY2tlZEV2ZW50PigpO1xyXG4gIEBPdXRwdXQoKSByb3dEb3VibGVDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxSb3dEb3VibGVDbGlja2VkRXZlbnQ+KCk7XHJcbiAgQE91dHB1dCgpIG9uUm93U2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFJvd1NlbGVjdGVkRXZlbnQ+KCk7XHJcbiAgQE91dHB1dCgpIGNlbGxWYWx1ZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPENlbGxWYWx1ZUNoYW5nZWRFdmVudD4oKTtcclxuICBAT3V0cHV0KCkgb25DZWxsQ29udGV4dE1lbnUgPSBuZXcgRXZlbnRFbWl0dGVyPENlbGxDb250ZXh0TWVudUV2ZW50PigpO1xyXG4gIEBPdXRwdXQoKSBvblBhc3RlTWVudSA9IG5ldyBFdmVudEVtaXR0ZXI8Q2VsbENvbnRleHRNZW51RXZlbnQ+KCk7XHJcbiAgQE91dHB1dCgpIG9uQ29weU1lbnUgPSBuZXcgRXZlbnRFbWl0dGVyPENlbGxDb250ZXh0TWVudUV2ZW50PigpO1xyXG4gIEBPdXRwdXQoKSBhZnRlclBhc3RlQ2VsbCA9IG5ldyBFdmVudEVtaXR0ZXI8W0NlbGxLZXlEb3duRXZlbnQsIENlbGxLZXlEb3duRXZlbnRdPigpO1xyXG4gIEBPdXRwdXQoKSBiZWZvcmVQYXN0ZUNlbGwgPSBuZXcgRXZlbnRFbWl0dGVyPFtDZWxsS2V5RG93bkV2ZW50LCBDZWxsS2V5RG93bkV2ZW50XT4oKTtcclxuICBAT3V0cHV0KCkgYWZ0ZXJQYXN0ZVJvd3MgPSBuZXcgRXZlbnRFbWl0dGVyPFtJUm93Tm9kZVtdLCBJUm93Tm9kZVtdXT4oKTtcclxuICBAT3V0cHV0KCkgYmVmb3JlUGFzdGVSb3dzID0gbmV3IEV2ZW50RW1pdHRlcjxbSVJvd05vZGVbXSwgSVJvd05vZGVbXV0+KCk7XHJcblxyXG4gIGNvbHVtbkRlZnNBbmRBZGRDZWxsQWN0aW9uczogQ29sRGVmW10gPSBbXTtcclxuICBkZWZhdWx0Q29sRGVmOiBDb2xEZWYgPSB7XHJcbiAgICByZXNpemFibGU6IHRydWUsXHJcbiAgICBzb3J0YWJsZTogdHJ1ZSxcclxuICB9O1xyXG4gIF9mcmFtZXdvcmtDb21wb25lbnRzID0geyAuLi5zY0NvbXBvbmVudHMgfTtcclxuICBfY29udGV4dCA9IHsgY29tcG9uZW50UGFyZW50OiB0aGlzIGFzIGFueSB9O1xyXG5cclxuICBib3R0b21NZW51OiBzdHJpbmcgPSBcIjBcIjtcclxuICBsZWZ0TWVudTogc3RyaW5nID0gXCIwXCI7XHJcbiAgaGlkZGVuTWVudTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIGNvcGllZENlbGw/OiBDZWxsS2V5RG93bkV2ZW50O1xyXG4gIGNvcGllZFJvdz86IElSb3dOb2RlW107XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgb3ZlcmxheU5vUm93c1RlbXBsYXRlID0gYDxzcGFuIGNsYXNzPVwiYWctb3ZlcmxheS1sb2FkaW5nLWNlbnRlciBib3JkZXItMCBiZy10cmFuc3BhcmVudCBzaGFkb3ctbm9uZVwiPlxyXG5cdFx0XHRObyBzZSBlbmNvbnRyYXJvbiByZWdpc3Ryb3MuLi5cclxuXHRcdDwvc3Bhbj5gO1xyXG5cclxuICBvdmVybGF5TG9hZGluZ1RlbXBsYXRlID0gYDxzcGFuIGNsYXNzPVwiYWctb3ZlcmxheS1sb2FkaW5nLXRvcCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGJvcmRlci0wIGJnLXdoaXRlIHNoYWRvdyBwLTQgdGV4dC1pbmZvXCIgc3R5bGU9XCJoZWlnaHQ6IDIwcHg7XCI+XHJcblx0XHRcdDxpbWcgc3JjPVwiYXNzZXRzL21lZGlhLWRlbW8vbG9hZGluZy5naWZcIiBoZWlnaHQ9XCIyMFwiIHdpZHRoPVwiMjVcIiBjbGFzcz1cIm1yLTJcIj5cclxuXHRcdFx0PHN0cm9uZz5DYXJnYW5kbyByZWdpc3Ryb3M8L3N0cm9uZz5cclxuXHRcdDwvc3Bhbj5cclxuXHRcdGA7XHJcbiAgc3VwcHJlc3NEcmFnTGVhdmVIaWRlc0NvbHVtbnMgPSB0cnVlO1xyXG4gIHN1cHByZXNzU2Nyb2xsT25OZXdEYXRhID0gZmFsc2U7XHJcbiAgc3VwcHJlc3NQYWdpbmF0aW9uUGFuZWwgPSB0cnVlO1xyXG5cclxuICAvLyBBZ0dyaWQgU3R5bGVcclxuICBnZXQgbmdTdHlsZUNvbnRhaW5lcigpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHdpZHRoOiBcIjEwMCVcIixcclxuICAgICAgaGVpZ2h0OiB0aGlzLmhlaWdodCxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBnZXQgbmdTdHlsZUFnR3JpZCgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHdpZHRoOiBcIjEwMCVcIixcclxuICAgICAgaGVpZ2h0OiBcIjEwMCVcIixcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBfc3Vic2NyaXB0aW9uJCA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuICBwcm9ncmVzc1Zpc2libGVkID0gZmFsc2U7XHJcblxyXG4gIGdyaWRBcGkhOiBHcmlkQXBpO1xyXG4gIF9zdWJzY3JpcHRpb25Sb3dEYXRhJD86IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgc2VsZWN0ZWRSb3dzOiBhbnlbXSA9IFtdO1xyXG5cclxuICBjZWxsQ29udGV4dE1lbnVBY3R1YWw/OiBDZWxsQ29udGV4dE1lbnVFdmVudDtcclxuXHJcbiAgcHJpdmF0ZSBfc2NDZWxsUmVuZGVyQnV0dG9uU2VydmljZSA9IGluamVjdChTY0NlbGxSZW5kZXJCdXR0b25TZXJ2aWNlKTtcclxuICBwcml2YXRlIF9tZXNzYWdlVXRpbFNlcnZpY2UgPSBpbmplY3QoTWVzc2FnZVV0aWxTZXJ2aWNlKTtcclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24kLmFkZChcclxuICAgICAgdGhpcy5fc2NDZWxsUmVuZGVyQnV0dG9uU2VydmljZS5oYW5kbGVyQnV0dG9uQWN0aW9uJC5zdWJzY3JpYmUoKHsgaW5kZXgsIGFjdGlvbiB9KSA9PiB7XHJcbiAgICAgICAgaWYgKGFjdGlvbiA9PSBudWxsKSByZXR1cm47XHJcbiAgICAgICAgaWYgKGFjdGlvbi50cmltKCkgPT09IFwiXCIpIHJldHVybjtcclxuXHJcbiAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xyXG4gICAgICAgICAgdGhpcy5vbkJ1dHRvbkFjdGlvbkFnR3JpZEVtaXQoaW5kZXgsIGFjdGlvbik7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLm9uQnV0dG9uQWN0aW9uSGVhZGVyRW1pdChhY3Rpb24pO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLmluaXRBY3Rpb25CdXR0b24oKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5ncmlkQXBpKSByZXR1cm47XHJcbiAgICBpZiAoY2hhbmdlc1tcImNvbmZpZ0J1dHRvbnNBY3Rpb25cIl0pIHRoaXMuaW5pdEFjdGlvbkJ1dHRvbigpO1xyXG4gICAgaWYgKGNoYW5nZXNbXCJyb3dEYXRhXCJdKSB0aGlzLmluaXRSb3dEYXRhKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3N1YnNjcmlwdGlvbiQ/LnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25Sb3dEYXRhJD8udW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRSb3dzLmxlbmd0aCA9IDA7XHJcbiAgfVxyXG5cclxuICBvbkJ1dHRvbkFjdGlvbkhlYWRlckVtaXQodHlwZUJ1dHRvbjogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCByb3dzU2VsZWN0ZWQgPSB0aGlzLmdyaWRBcGk/LmdldFNlbGVjdGVkUm93cygpO1xyXG4gICAgdGhpcy5vbkJ1dHRvbkFjdGlvbkhlYWRlci5lbWl0KFt0eXBlQnV0dG9uLCByb3dzU2VsZWN0ZWRdKTtcclxuICB9XHJcblxyXG4gIGluaXRBY3Rpb25CdXR0b24oKTogdm9pZCB7XHJcbiAgICBpZiAoaXNPYmpFbXB0eSh0aGlzLmNvbmZpZ0J1dHRvbnNBY3Rpb24pKSByZXR1cm47XHJcblxyXG4gICAgY29uc3QgeyBhZ0dyaWQgfSA9IHRoaXMuY29uZmlnQnV0dG9uc0FjdGlvbiE7XHJcblxyXG4gICAgaWYgKGFnR3JpZCAmJiBhZ0dyaWQuYWN0aW9ucy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuX2NvbmZpZ0J1dHRvbnNEZWZhdWx0QWdHcmlkID0gWy4uLmFnR3JpZC5hY3Rpb25zXTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNpemVGaXRDb2x1bW5BY3Rpb24oKTtcclxuICB9XHJcblxyXG4gIHNpemVGaXRDb2x1bW5BY3Rpb24oKTogdm9pZCB7XHJcbiAgICBjb25zdCBsZW5ndGggPSB0aGlzLl9jb25maWdCdXR0b25zRGVmYXVsdEFnR3JpZC5maWx0ZXIoKHsgaGlkZSB9KSA9PiB7XHJcbiAgICAgIHJldHVybiAhdGhpcy5faGlkZUZ1bmMoaGlkZSk7XHJcbiAgICB9KS5sZW5ndGg7XHJcblxyXG4gICAgY29uc3Qgd2lkdGggPSBsZW5ndGggPT0gMiA/IDkwIDogODA7XHJcbiAgICBjb25zdCBtaW5XaWR0aCA9IGxlbmd0aCA+IDIgPyBsZW5ndGggKiAzMyArIDEwIDogd2lkdGg7XHJcblxyXG4gICAgY29uc3QgbmV3Q29sdW1uczogQ29sRGVmID0ge1xyXG4gICAgICBoZWFkZXJOYW1lOiBcIkFjY2lvbmVzXCIsXHJcbiAgICAgIGhlYWRlckNsYXNzOiBcImFnLWhlYWRlcl9fY2VudGVyXCIsXHJcbiAgICAgIGZpZWxkOiBcIlwiLFxyXG4gICAgICB3aWR0aDogbWluV2lkdGgsXHJcbiAgICAgIG1pbldpZHRoLFxyXG4gICAgICBtYXhXaWR0aDogbWluV2lkdGgsXHJcbiAgICAgIGNlbGxDbGFzczogW1wiZC1mbGV4XCIsIFwianVzdGlmeS1jb250ZW50LWNlbnRlclwiLCBcImFsaWduLWl0ZW1zLWNlbnRlclwiXSxcclxuICAgICAgY2VsbFN0eWxlOiB7IG92ZXJmbG93OiBcInZpc2libGVcIiB9LFxyXG4gICAgICByZXNpemFibGU6IGZhbHNlLFxyXG4gICAgICBzb3J0YWJsZTogZmFsc2UsXHJcbiAgICAgIGNlbGxSZW5kZXJlcjogdGhpcy5kZWZhdWx0Q2VsbFJlbmRlcmVyQWN0aW9ucyA/IHRoaXMuZGVmYXVsdENlbGxSZW5kZXJlckFjdGlvbnMgOiBcInNjQ2VsbFJlbmRlcmVyQnV0dG9uQ29tcG9uZW50XCIsXHJcbiAgICAgIHBpbm5lZDogXCJyaWdodFwiLFxyXG4gICAgICBzdXBwcmVzc01lbnU6IHRydWUsXHJcbiAgICAgIGxvY2tQb3NpdGlvbjogdHJ1ZSxcclxuICAgIH07XHJcbiAgICB0aGlzLmNvbHVtbkRlZnNBbmRBZGRDZWxsQWN0aW9ucyA9IHRoaXMuX2hpZGVBZ0dyaWRNZW51QWN0aW9uKCkgPyBbLi4udGhpcy5jb2x1bW5EZWZzXSA6IFsuLi50aGlzLmNvbHVtbkRlZnMsIG5ld0NvbHVtbnNdO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaGlkZUFnR3JpZE1lbnVBY3Rpb24oKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy5jb25maWdCdXR0b25zQWN0aW9uID09IG51bGwpIHJldHVybiB0cnVlO1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgdGhpcy5jb25maWdCdXR0b25zQWN0aW9uPy5hZ0dyaWQ/LmFjdGlvbnMuZXZlcnkoKHsgaGlkZSB9KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hpZGVGdW5jKGhpZGUpO1xyXG4gICAgICB9KSA/PyB0cnVlXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaGlkZUZ1bmMoaGlkZTogSGlkZUZ1YyB8IGJvb2xlYW4gfCB1bmRlZmluZWQpOiBib29sZWFuIHtcclxuICAgIGlmIChoaWRlID09IG51bGwpIHJldHVybiBmYWxzZTtcclxuICAgIGlmICh0eXBlb2YgaGlkZSA9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBoaWRlKCk7XHJcblxyXG4gICAgcmV0dXJuIGhpZGU7XHJcbiAgfVxyXG5cclxuICBvbkJ1dHRvbkFjdGlvbkFnR3JpZEVtaXQocm93SW5kZXg6IG51bWJlciwgdHlwZUJ1dHRvbjogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBJUm93Tm9kZSA9IHRoaXMuZ3JpZEFwaT8uZ2V0RGlzcGxheWVkUm93QXRJbmRleChyb3dJbmRleCk7XHJcblxyXG4gICAgaWYgKElSb3dOb2RlKSB7XHJcbiAgICAgIGlmICh0eXBlQnV0dG9uID09PSBFbnVtQnV0dG9uVHlwZS5UWVBFX0VESVQpIHtcclxuICAgICAgICB0aGlzLm9uRWRpdFJvdy5lbWl0KElSb3dOb2RlKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHR5cGVCdXR0b24gPT09IEVudW1CdXR0b25UeXBlLlRZUEVfREVMRVRFKSB7XHJcbiAgICAgICAgdGhpcy5vbkRlbGV0ZVJvdy5lbWl0KFt0aGlzLmdyaWRBcGksIFtJUm93Tm9kZS5kYXRhXV0pO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5vbkJ1dHRvbkFjdGlvbkFnR3JpZC5lbWl0KFt0eXBlQnV0dG9uLCBJUm93Tm9kZV0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaW5pdFJvd0RhdGEoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuY29uZmlnQnV0dG9uc0FjdGlvbj8uYWdHcmlkKSB0aGlzLnNpemVGaXRDb2x1bW5BY3Rpb24oKTtcclxuICAgIGlmICh0aGlzLl9zdWJzY3JpcHRpb25Sb3dEYXRhJCkge1xyXG4gICAgICB0aGlzLl9zdWJzY3JpcHRpb25Sb3dEYXRhJC51bnN1YnNjcmliZSgpO1xyXG4gICAgICB0aGlzLmdyaWRBcGkuc2V0R3JpZE9wdGlvbihcInJvd0RhdGFcIiwgW10pO1xyXG4gICAgICB0aGlzLmdyaWRBcGk/LnNob3dMb2FkaW5nT3ZlcmxheSgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uUm93RGF0YSQgPSB0aGlzLnJvd0RhdGEuc3Vic2NyaWJlKChkYXRhKSA9PiB7XHJcbiAgICAgIHRoaXMuZ3JpZEFwaS5zZXRHcmlkT3B0aW9uKFwicm93RGF0YVwiLCBkYXRhKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlRmlsdGVyKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuZ3JpZEFwaT8uc2V0UXVpY2tGaWx0ZXIodmFsdWUpO1xyXG4gICAgdGhpcy5vbkNoYW5nZUZpbHRlci5lbWl0KHZhbHVlKTtcclxuICB9XHJcblxyXG4gIG9uQWRkUm93RW1pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMub25BZGRSb3cuZW1pdCh0aGlzLmdyaWRBcGkpO1xyXG4gIH1cclxuXHJcbiAgaGlkZUhlYWRlck1lbnVBY3Rpb24oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICB0aGlzLmNvbmZpZ0J1dHRvbnNBY3Rpb24/LmhlYWRlcj8uc3VibWVudT8uZXZlcnkoKHsgaGlkZSB9KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hpZGVGdW5jKGhpZGUpO1xyXG4gICAgICB9KSA/PyBmYWxzZVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHBhZ2luYXRpb25DaGFuZ2VkKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX3NjQWdHcmlkUGFnaW5hdGlvbikgdGhpcy5fc2NBZ0dyaWRQYWdpbmF0aW9uLm9uUGFnaW5hdGlvbkNoYW5nZWQoKTtcclxuICB9XHJcblxyXG4gIGdyaWRSZWFkeShldmVudDogR3JpZFJlYWR5RXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuZ3JpZEFwaSA9IGV2ZW50LmFwaTtcclxuXHJcbiAgICB0aGlzLmluaXRSb3dEYXRhKCk7XHJcbiAgICB0aGlzLm9uR3JpZFJlYWR5LmVtaXQoW3RoaXMuZ3JpZEFwaV0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQHBhcmFtIGV2ZW50OiBvcGNpb25hbCAtIENvbnRpZW5lIGVsIG5vZG8geSBsYSBkYXRhIGRlIGxhIGZpbGEgYWN0dWFsLlxyXG4gICAqIEBkZXNjcmlwdGlvbiBTZSBkaXNwYXJhIGNhZGEgdmV6IHF1ZSBsYSBmaWxhIGVzIGNvbG9jYWRhIGVuIHN1IG51ZXZhIHBvc2ljacOzbiAoRHJhZyAmIERyb3ApLlxyXG4gICAqL1xyXG4gIHJvd0RyYWdFbmRFbWl0KGV2ZW50OiBSb3dEcmFnRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMub25Sb3dEcmFnRW5kLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgY2VsbENvbnRleHRNZW51KGV2ZW50OiBDZWxsQ29udGV4dE1lbnVFdmVudCkge1xyXG4gICAgdGhpcy5jZWxsQ29udGV4dE1lbnVBY3R1YWwgPSBldmVudDtcclxuICAgIHRoaXMub25DZWxsQ29udGV4dE1lbnUuZW1pdChldmVudCk7XHJcbiAgICB0aGlzLmxlZnRNZW51ID0gKGV2ZW50LmV2ZW50ISBhcyBQb2ludGVyRXZlbnQpLngudG9TdHJpbmcoKTtcclxuICAgIHRoaXMuYm90dG9tTWVudSA9ICgoZXZlbnQuZXZlbnQhIGFzIFBvaW50ZXJFdmVudCkueSAtIDIwKS50b1N0cmluZygpO1xyXG4gICAgaWYgKGV2ZW50LnZhbHVlICE9PSB1bmRlZmluZWQgJiYgdGhpcy5zaG93TWVudURlZmF1bHQpIHRoaXMubWVudVRyaWdnZXI/Lm9wZW5NZW51KCk7XHJcbiAgfVxyXG5cclxuICByb3dEYXRhQ2hhbmdlZChldmVudDogUm93RGF0YVVwZGF0ZWRFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmdyaWRBcGkpIHJldHVybjtcclxuXHJcbiAgICBpZiAoIXRoaXMuZ3JpZEFwaT8uZ2V0RGlzcGxheWVkUm93Q291bnQoKSkgcmV0dXJuO1xyXG5cclxuICAgIHRoaXMub25HcmlkQ2hhbmdlLmVtaXQoW3RoaXMuZ3JpZEFwaSwgZXZlbnRdKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdGlvbkNoYW5nZWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkUm93cyA9IHRoaXMuZ3JpZEFwaT8uZ2V0U2VsZWN0ZWRSb3dzKCk7XHJcbiAgICB0aGlzLm9uR3JpZFNlbGVjdENoYW5nZS5lbWl0KHRoaXMuZ3JpZEFwaT8uZ2V0U2VsZWN0ZWRSb3dzKCkpO1xyXG4gIH1cclxuXHJcbiAgY2VsbFN0b3BFZGl0aW5nKGV2dDogQ2VsbEVkaXRpbmdTdG9wcGVkRXZlbnQpIHtcclxuICAgIHRoaXMub25DZWxsU3RvcEVkaXRpbmcuZW1pdChldnQpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgY2VsbEtleURvd24oZXZ0OiBDZWxsS2V5RG93bkV2ZW50KSB7XHJcbiAgICB0aGlzLm9uQ2VsbEtleURvd24uZW1pdChldnQpO1xyXG4gICAgaWYgKChldnQuZXZlbnQgYXMgS2V5Ym9hcmRFdmVudCkuY3RybEtleSAmJiAoZXZ0LmV2ZW50IGFzIEtleWJvYXJkRXZlbnQpLmtleSA9PT0gXCJBcnJvd0Rvd25cIiAmJiBldnQubm9kZS5sYXN0Q2hpbGQpIHtcclxuICAgICAgdGhpcy5vbkdyaWRBZGRSb3cuZW1pdChldnQpO1xyXG4gICAgfSBlbHNlIGlmICgoZXZ0LmV2ZW50IGFzIEtleWJvYXJkRXZlbnQpLmN0cmxLZXkgJiYgKGV2dC5ldmVudCBhcyBLZXlib2FyZEV2ZW50KS5rZXkudG9Mb2NhbGVMb3dlckNhc2UoKSA9PT0gXCJjXCIgJiYgdGhpcy51c2VHcmlkQ29weSkge1xyXG4gICAgICB0aGlzLmNvcHkoZXZ0KTtcclxuICAgIH0gZWxzZSBpZiAoKGV2dC5ldmVudCBhcyBLZXlib2FyZEV2ZW50KS5jdHJsS2V5ICYmIChldnQuZXZlbnQgYXMgS2V5Ym9hcmRFdmVudCkua2V5LnRvTG9jYWxlTG93ZXJDYXNlKCkgPT09IFwidlwiICYmIHRoaXMudXNlR3JpZENvcHkpIHtcclxuICAgICAgYXdhaXQgdGhpcy5wYXN0ZShldnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29weShldnQ6IENlbGxLZXlEb3duRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICghZXZ0Lm5vZGUuaXNTZWxlY3RlZCgpKSB7XHJcbiAgICAgIHRoaXMuY29waWVkQ2VsbCA9IGV2dDtcclxuICAgICAgaWYgKGV2dC52YWx1ZSBpbnN0YW5jZW9mIE9iamVjdCkgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoKGV2dC52YWx1ZSBhcyBJTmdTZWxlY3QpPy5sYWJlbCA/PyBcIlwiKTtcclxuICAgICAgZWxzZSBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChldnQudmFsdWUgPz8gXCJcIik7XHJcbiAgICAgIHRoaXMuX21lc3NhZ2VVdGlsU2VydmljZS5nZXRBbGVydFN1Y2Nlc3MoXCJDZWxkYSBDb3BpYWRhXCIpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jb3BpZWRSb3cgPSB0aGlzLmdyaWRBcGkuZ2V0U2VsZWN0ZWROb2RlcygpO1xyXG4gICAgICB0aGlzLl9tZXNzYWdlVXRpbFNlcnZpY2UuZ2V0QWxlcnRTdWNjZXNzKFwiRmlsYSBDb3BpYWRhXCIpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5ncmlkQXBpLmRlc2VsZWN0QWxsKCk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBwYXN0ZShldnQ6IENlbGxLZXlEb3duRXZlbnQpIHtcclxuICAgIGlmICghZXZ0Lm5vZGUuaXNTZWxlY3RlZCgpICYmIHRoaXMuY29waWVkQ2VsbCkge1xyXG4gICAgICBpZiAoZXZ0LmNvbHVtbi5nZXRDb2xJZCgpID09PSB0aGlzLmNvcGllZENlbGwuY29sdW1uLmdldENvbElkKCkgJiYgKGV2dC5kYXRhIGFzIEZvcm1Hcm91cCkuZ2V0KGV2dC5jb2x1bW4uZ2V0Q29sSWQoKSkhLmVuYWJsZWQpIHtcclxuICAgICAgICBsZXQgaXNWYWxpZCA9IHRydWU7XHJcbiAgICAgICAgaWYgKHRoaXMudmFsaWRhdGVQYXN0ZUNlbGwpIGlzVmFsaWQgPSBhd2FpdCB0aGlzLnZhbGlkYXRlUGFzdGVDZWxsKHRoaXMuY29waWVkQ2VsbCwgZXZ0KTtcclxuICAgICAgICBlbHNlIHRoaXMuZ3JpZEFwaS5kZXNlbGVjdEFsbCgpO1xyXG4gICAgICAgIHRoaXMuYmVmb3JlUGFzdGVDZWxsLmVtaXQoW2V2dCwgdGhpcy5jb3BpZWRDZWxsXSk7XHJcbiAgICAgICAgaWYgKGlzVmFsaWQpIHtcclxuICAgICAgICAgIChldnQuZGF0YSBhcyBGb3JtR3JvdXApLmdldChldnQuY29sdW1uLmdldENvbElkKCkpIS5zZXRWYWx1ZSh0aGlzLmNvcGllZENlbGwudmFsdWUpO1xyXG4gICAgICAgICAgdGhpcy5ncmlkQXBpLnJlZnJlc2hDZWxscyh7XHJcbiAgICAgICAgICAgIGNvbHVtbnM6IFtldnQuY29sdW1uXSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy5hZnRlclBhc3RlQ2VsbC5lbWl0KFtldnQsIHRoaXMuY29waWVkQ2VsbF0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmIChldnQubm9kZS5pc1NlbGVjdGVkKCkgJiYgdGhpcy5jb3BpZWRSb3cpIHtcclxuICAgICAgY29uc3QgSVJvd05vZGUgPSB0aGlzLmdyaWRBcGkuZ2V0U2VsZWN0ZWROb2RlcygpO1xyXG4gICAgICBsZXQgaXNWYWxpZCA9IHRydWU7XHJcbiAgICAgIGlmICh0aGlzLnZhbGlkYXRlUGFzdGVSb3dzKSBpc1ZhbGlkID0gYXdhaXQgdGhpcy52YWxpZGF0ZVBhc3RlUm93cyh0aGlzLmNvcGllZFJvdywgSVJvd05vZGUpO1xyXG4gICAgICBlbHNlIHRoaXMuZ3JpZEFwaS5kZXNlbGVjdEFsbCgpO1xyXG4gICAgICB0aGlzLmJlZm9yZVBhc3RlUm93cy5lbWl0KFt0aGlzLmdyaWRBcGkuZ2V0U2VsZWN0ZWROb2RlcygpLCB0aGlzLmNvcGllZFJvd10pO1xyXG4gICAgICBpZiAoaXNWYWxpZCkge1xyXG4gICAgICAgIGxldCBpbmRleFJvd0NvcHkgPSAwO1xyXG4gICAgICAgIElSb3dOb2RlLmZvckVhY2goKHIpID0+IHtcclxuICAgICAgICAgIChyLmRhdGEgYXMgRm9ybUdyb3VwKS5wYXRjaFZhbHVlKCh0aGlzLmNvcGllZFJvdyFbaW5kZXhSb3dDb3B5XS5kYXRhIGFzIEZvcm1Hcm91cCkuZ2V0UmF3VmFsdWUoKSk7XHJcbiAgICAgICAgICB0aGlzLmdyaWRBcGkucmVmcmVzaENlbGxzKHtcclxuICAgICAgICAgICAgcm93Tm9kZXM6IFtyXSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgaW5kZXhSb3dDb3B5Kys7XHJcbiAgICAgICAgICBpZiAoaW5kZXhSb3dDb3B5ID09IHRoaXMuY29waWVkUm93IS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgaW5kZXhSb3dDb3B5ID0gMDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmFmdGVyUGFzdGVSb3dzLmVtaXQoW3RoaXMuZ3JpZEFwaS5nZXRTZWxlY3RlZE5vZGVzKCksIHRoaXMuY29waWVkUm93XSk7XHJcbiAgICAgICAgdGhpcy5ncmlkQXBpLmRlc2VsZWN0QWxsKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvcHlNZW51KGV2ZW50OiBDZWxsQ29udGV4dE1lbnVFdmVudCkge1xyXG4gICAgdGhpcy5vbkNvcHlNZW51LmVtaXQoZXZlbnQpO1xyXG4gICAgdGhpcy5jb3B5KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIHBhc3RlTWVudShldmVudDogQ2VsbENvbnRleHRNZW51RXZlbnQpIHtcclxuICAgIHRoaXMub25QYXN0ZU1lbnUuZW1pdChldmVudCk7XHJcbiAgICB0aGlzLnBhc3RlKGV2ZW50KTtcclxuICB9XHJcblxyXG4gIGdldCBkaXNhYmxlZFBhc3RlTWVudSgpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLmdyaWRBcGk/LmdldFNlbGVjdGVkUm93cygpLmxlbmd0aCA9PSAwICYmICF0aGlzLmNvcGllZENlbGwpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuZ3JpZEFwaT8uZ2V0U2VsZWN0ZWRSb3dzKCkubGVuZ3RoID4gMCAmJiAhdGhpcy5jb3BpZWRSb3cpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9IGVsc2UgaWYgKCF0aGlzLmNvcGllZENlbGwgJiYgIXRoaXMuY29waWVkUm93KSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGlzT2JqRW1wdHk8VD4ob2JqZWN0OiBUKTogYm9vbGVhbiB7XHJcbiAgaWYgKG9iamVjdCA9PT0gbnVsbCB8fCBvYmplY3QgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHRydWU7XHJcblxyXG4gIHJldHVybiBPYmplY3Qua2V5cyhvYmplY3QpLmxlbmd0aCA9PT0gMDtcclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwidy0xMDBcIj5cclxuICA8IS0tPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tPlxyXG4gIDwhLS0gQUctR1JJRCBIRUFERVIgLS0+XHJcbiAgPCEtLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLT5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgbXktMlwiXHJcbiAgICAqbmdJZj1cInZpc2libGVTZWFyY2ggfHwgYnRuQWRkPy52aXNpYmxlIHx8IHZpZXdDaGlsZHJlbkJ1dHRvbkhlYWRlcnM/Lmxlbmd0aFwiPlxyXG4gICAgPGRpdiBbY2xhc3NdPVwiZmlsbFNlYXJjaCA/ICdjb2wtMTIgbXktMicgOiBzZWFyY2hDbGFzc1wiICpuZ0lmPVwidmlzaWJsZVNlYXJjaFwiPlxyXG4gICAgICA8aW5wdXQtc2VhcmNoIChvbkNoYW5nZSk9XCJjaGFuZ2VGaWx0ZXIoJGV2ZW50KVwiPjwvaW5wdXQtc2VhcmNoPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdlxyXG4gICAgICBbY2xhc3NdPVwidmlzaWJsZVNlYXJjaCA/ICdjb2wtc20tMTIgY29sLW1kLTYgY29sLWxnLTYgY29sLXhsLTcgY29sLTEyJyA6ICdjb2wtMTInXCJcclxuICAgICAgY2xhc3M9XCJzYy1hZy1ncmlkLWhlYWRlci1hY3Rpb25zIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCJcclxuICAgICAgKm5nSWY9XCJidG5BZGQ/LnZpc2libGUgfHwgdmlld0NoaWxkcmVuQnV0dG9uSGVhZGVycz8ubGVuZ3RoIHx8IGNvbmZpZ0J1dHRvbnNBY3Rpb24/LmhlYWRlciB8fCBjb25maWdIZWFkZXIgIT0gbnVsbFwiPlxyXG4gICAgICA8IS0tIEhlYWRlciBhY3Rpb25zIGJ1dHRvbnMgLS0+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb25maWdCdXR0b25zQWN0aW9uICYmIGNvbmZpZ0hlYWRlclwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb25maWdIZWFkZXIuZGlzYWJsZWQgPT09IGZhbHNlOyBlbHNlIHRlbXBsYXRlQWN0aW9uXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRlbXBBY3Rpb25zXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjdGVtcGxhdGVBY3Rpb24+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0ZWRSb3dzLmxlbmd0aCA9PT0gMDsgZWxzZSB0ZW1wQWN0aW9uc1wiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuLWljb24gYnRuLXdpZHRoIGJ0biBidG4tcHJpbWFyeSBidG4tc21cIiBkaXNhYmxlZD5cclxuICAgICAgICAgICAgICBBY2Npb25lc1xyXG4gICAgICAgICAgICAgIDxlbSBjbGFzcz1cImZhIGZhLWNoZXZyb24tZG93blwiPjwvZW0+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICN0ZW1wQWN0aW9ucz5cclxuICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJoaWRlSGVhZGVyTWVudUFjdGlvbigpOyBlbHNlIHRlbXBsYXRlSGVhZGVyQWN0aW9uXCIgY2xhc3M9XCJidG4taWNvbiBidG4td2lkdGggYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbVwiPlxyXG4gICAgICAgICAgICBBY2Npb25lc1xyXG4gICAgICAgICAgICA8ZW0gY2xhc3M9XCJmYSBmYS1jaGV2cm9uLWRvd25cIj48L2VtPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZUhlYWRlckFjdGlvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4taWNvbiBidG4td2lkdGggYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbVwiIFttYXRNZW51VHJpZ2dlckZvcl09XCJwYW5lbC5tZW51XCI+XHJcbiAgICAgICAgICAgICAgQWNjaW9uZXNcclxuICAgICAgICAgICAgICA8ZW0gY2xhc3M9XCJmYSBmYS1jaGV2cm9uLWRvd25cIj48L2VtPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgIDxzYy1tZW51LXBhbmVsICNwYW5lbCBjbGFzcz1cImQtbm9uZVwiIFtzdWJNZW51c109XCJjb25maWdIZWFkZXIuc3VibWVudSA/PyBbXVwiPjwvc2MtbWVudS1wYW5lbD5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwhLS0gRW5kIGhlYWRlciBhY3Rpb25zIGJ1dHRvbnMgLS0+XHJcblxyXG4gICAgICA8IS0tIE90aGVyIGJ1dHRvbnMgLS0+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ2aWV3Q2hpbGRyZW5CdXR0b25IZWFkZXJzPy5sZW5ndGhcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgdmlld0NoaWxkcmVuQnV0dG9uSGVhZGVyIG9mIHZpZXdDaGlsZHJlbkJ1dHRvbkhlYWRlcnNcIlxyXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwidmlld0NoaWxkcmVuQnV0dG9uSGVhZGVyLnRlbXBsYXRlXCI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8IS0tRW5kIG90aGVyIGJ1dHRvbnMgLS0+XHJcblxyXG4gICAgICA8IS0tIEFkZCBidXR0b24gLS0+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJidG5BZGQ/LnZpc2libGVcIj5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgIGNsYXNzPVwiYnRuLXdpZHRoIGJ0biBidG4td2FybmluZyBidG4tc21cIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIm9uQWRkUm93RW1pdCgpXCJcclxuICAgICAgICAgICNidXR0b25BZGRcclxuICAgICAgICAgIFtkaXNhYmxlZF09XCJidG5BZGQuZGlzYWJsZWQgPz8gZmFsc2VcIj5cclxuICAgICAgICAgIEFncmVnYXJcclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwhLS1FbmQgYWRkIGJ1dHRvbiAtLT5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDwhLS09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09LS0+XHJcbiAgPCEtLSBBRy1HUklEIEhFQURFUiBFTkQgLS0+XHJcbiAgPCEtLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLT5cclxuXHJcbiAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiIFtuZ1N0eWxlXT1cIm5nU3R5bGVDb250YWluZXJcIj5cclxuICAgICAgPGFnLWdyaWQtYW5ndWxhclxyXG4gICAgICAgICNhZ0dyaWRcclxuICAgICAgICBjbGFzcz1cImFnLXRoZW1lLWJhbGhhbVwiXHJcbiAgICAgICAgW25nU3R5bGVdPVwibmdTdHlsZUFnR3JpZFwiXHJcbiAgICAgICAgW2NvbHVtbkRlZnNdPVwiY29sdW1uRGVmc0FuZEFkZENlbGxBY3Rpb25zXCJcclxuICAgICAgICBbZGVmYXVsdENvbERlZl09XCJkZWZhdWx0Q29sRGVmXCJcclxuICAgICAgICBbY29tcG9uZW50c109XCJfZnJhbWV3b3JrQ29tcG9uZW50c1wiXHJcbiAgICAgICAgW2NvbnRleHRdPVwiX2NvbnRleHRcIlxyXG4gICAgICAgIFtyb3dTZWxlY3Rpb25dPVwicm93U2VsZWN0aW9uXCJcclxuICAgICAgICBbaXNSb3dTZWxlY3RhYmxlXT1cImlzUm93U2VsZWN0YWJsZVwiXHJcbiAgICAgICAgW3Jvd0RyYWdNYW5hZ2VkXT1cInJvd0RyYWdNYW5hZ2VkXCJcclxuICAgICAgICBbZG9tTGF5b3V0XT1cImRvbUxheW91dFwiXHJcbiAgICAgICAgW2FuaW1hdGVSb3dzXT1cImFuaW1hdGVSb3dzXCJcclxuICAgICAgICBbZ2V0Um93U3R5bGVdPVwiZ2V0Um93U3R5bGVcIlxyXG4gICAgICAgIFtlbmFibGVSYW5nZVNlbGVjdGlvbl09XCJlbmFibGVSYW5nZVNlbGVjdGlvblwiXHJcbiAgICAgICAgW3N1cHByZXNzUm93VHJhbnNmb3JtXT1cInN1cHByZXNzUm93VHJhbnNmb3JtXCJcclxuICAgICAgICBbc3VwcHJlc3NNb3ZlV2hlblJvd0RyYWdnaW5nXT1cImFuaW1hdGVSb3dzXCJcclxuICAgICAgICBbb3ZlcmxheU5vUm93c1RlbXBsYXRlXT1cIm92ZXJsYXlOb1Jvd3NUZW1wbGF0ZVwiXHJcbiAgICAgICAgW292ZXJsYXlMb2FkaW5nVGVtcGxhdGVdPVwib3ZlcmxheUxvYWRpbmdUZW1wbGF0ZVwiXHJcbiAgICAgICAgW25vUm93c092ZXJsYXlDb21wb25lbnRQYXJhbXNdPVwibm9Sb3dzT3ZlcmxheUNvbXBvbmVudFBhcmFtc1wiXHJcbiAgICAgICAgW3N1cHByZXNzUm93Q2xpY2tTZWxlY3Rpb25dPVwic3VwcHJlc3NSb3dDbGlja1NlbGVjdGlvblwiXHJcbiAgICAgICAgW3N1cHByZXNzRHJhZ0xlYXZlSGlkZXNDb2x1bW5zXT1cInN1cHByZXNzRHJhZ0xlYXZlSGlkZXNDb2x1bW5zXCJcclxuICAgICAgICBbc3VwcHJlc3NTY3JvbGxPbk5ld0RhdGFdPVwic3VwcHJlc3NTY3JvbGxPbk5ld0RhdGFcIlxyXG4gICAgICAgIFtzdXBwcmVzc1Byb3BlcnR5TmFtZXNDaGVja109XCJ0cnVlXCJcclxuICAgICAgICBbcGFnaW5hdGlvblBhZ2VTaXplXT1cInBhZ2luYXRpb24gPyBwYWdpbmF0aW9uUGFnZVNpemUgOiB1bmRlZmluZWRcIlxyXG4gICAgICAgIFtwYWdpbmF0aW9uXT1cInBhZ2luYXRpb25cIlxyXG4gICAgICAgIFtzdXBwcmVzc1BhZ2luYXRpb25QYW5lbF09XCJzdXBwcmVzc1BhZ2luYXRpb25QYW5lbFwiXHJcbiAgICAgICAgKHJvd0NsaWNrZWQpPVwicm93Q2xpY2tlZC5lbWl0KCRldmVudClcIlxyXG4gICAgICAgIChyb3dEb3VibGVDbGlja2VkKT1cInJvd0RvdWJsZUNsaWNrZWQuZW1pdCgkZXZlbnQpXCJcclxuICAgICAgICAocm93U2VsZWN0ZWQpPVwib25Sb3dTZWxlY3RlZC5lbWl0KCRldmVudClcIlxyXG4gICAgICAgIChwYWdpbmF0aW9uQ2hhbmdlZCk9XCJwYWdpbmF0aW9uQ2hhbmdlZCgpXCJcclxuICAgICAgICAoZ3JpZFJlYWR5KT1cImdyaWRSZWFkeSgkZXZlbnQpXCJcclxuICAgICAgICAocm93RHJhZ0VuZCk9XCJyb3dEcmFnRW5kRW1pdCgkZXZlbnQpXCJcclxuICAgICAgICAoY2VsbENvbnRleHRNZW51KT1cImNlbGxDb250ZXh0TWVudSgkZXZlbnQpXCJcclxuICAgICAgICBbZW5hYmxlQ2VsbFRleHRTZWxlY3Rpb25dPVwiZW5hYmxlQ2VsbFRleHRTZWxlY3Rpb25cIlxyXG4gICAgICAgIChyb3dEYXRhVXBkYXRlZCk9XCJyb3dEYXRhQ2hhbmdlZCgkZXZlbnQpXCJcclxuICAgICAgICAocm93RWRpdGluZ1N0YXJ0ZWQpPVwib25Sb3dFZGl0aW5nU3RhcnRlZC5lbWl0KCRldmVudClcIlxyXG4gICAgICAgIChjZWxsVmFsdWVDaGFuZ2VkKT1cImNlbGxWYWx1ZUNoYW5nZWQuZW1pdCgkZXZlbnQpXCJcclxuICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlZCk9XCJzZWxlY3Rpb25DaGFuZ2VkKClcIlxyXG4gICAgICAgIChjZWxsRWRpdGluZ1N0b3BwZWQpPVwiY2VsbFN0b3BFZGl0aW5nKCRldmVudClcIlxyXG4gICAgICAgIChjZWxsS2V5RG93bik9XCJjZWxsS2V5RG93bigkYW55KCRldmVudCkpXCJcclxuICAgICAgICBbbXVsdGlTb3J0S2V5XT1cIm11bHRpU29ydEtleVwiXHJcbiAgICAgICAgb25jb250ZXh0bWVudT1cInJldHVybiBmYWxzZTtcIj5cclxuICAgICAgPC9hZy1ncmlkLWFuZ3VsYXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPCEtLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLT5cclxuICA8IS0tIEFHLUdSSUQgUEFHSU5BVElPTiAtLT5cclxuICA8IS0tPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tPlxyXG4gIDxkaXYgY2xhc3M9XCJyb3dcIiAqbmdJZj1cInBhZ2luYXRpb25cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cclxuICAgICAgPHNjLWFnLWdyaWQtcGFnaW5hdGlvblxyXG4gICAgICAgICNzY0FnR3JpZFBhZ2luYXRpb25cclxuICAgICAgICBbZ3JpZEFwaV09XCJncmlkQXBpXCJcclxuICAgICAgICBbcGFnaW5hdGlvblBhZ2VTaXplXT1cInBhZ2luYXRpb25QYWdlU2l6ZVwiXHJcbiAgICAgICAgW3BhZ2VTaXplT3B0aW9uc109XCJwYWdlU2l6ZU9wdGlvbnNcIj48L3NjLWFnLWdyaWQtcGFnaW5hdGlvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDwhLS09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09LS0+XHJcbiAgPCEtLSBBRy1HUklEIFBBR0lOQVRJT04gRU5EIC0tPlxyXG4gIDwhLS09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09LS0+XHJcbjwvZGl2PlxyXG5cclxuPGRpdlxyXG4gICpuZ0lmPVwic2hvd01lbnVEZWZhdWx0XCJcclxuICBvbmNvbnRleHRtZW51PVwicmV0dXJuIGZhbHNlO1wiXHJcbiAgc3R5bGU9XCJwb3NpdGlvbjogZml4ZWQ7IHdpZHRoOiAwcHg7IGhlaWdodDogMHB4XCJcclxuICBbbmdTdHlsZV09XCJ7IHRvcDogYm90dG9tTWVudSArICdweCcsIGxlZnQ6IGxlZnRNZW51ICsgJ3B4JyB9XCI+XHJcbiAgPG1hdC1tZW51IG9uY29udGV4dG1lbnU9XCJyZXR1cm4gZmFsc2U7XCIgI3NjTWVudT1cIm1hdE1lbnVcIj5cclxuICAgIDxidXR0b24gb25jb250ZXh0bWVudT1cInJldHVybiBmYWxzZTtcIiAoY2xpY2spPVwiY29weU1lbnUoY2VsbENvbnRleHRNZW51QWN0dWFsISlcIiBtYXQtbWVudS1pdGVtPlxyXG4gICAgICA8bWF0LWljb24+Y29udGVudF9jb3B5PC9tYXQtaWNvbj4gPHNwYW4+Q29waWFyPC9zcGFuPlxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCJkaXNhYmxlZFBhc3RlTWVudVwiIG9uY29udGV4dG1lbnU9XCJyZXR1cm4gZmFsc2U7XCIgKGNsaWNrKT1cInBhc3RlTWVudShjZWxsQ29udGV4dE1lbnVBY3R1YWwhKVwiIG1hdC1tZW51LWl0ZW0+XHJcbiAgICAgIDxtYXQtaWNvbj5jb250ZW50X3Bhc3RlPC9tYXQtaWNvbj48c3Bhbj5QZWdhcjwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvbWF0LW1lbnU+XHJcbiAgPGJ1dHRvbiBvbmNvbnRleHRtZW51PVwicmV0dXJuIGZhbHNlO1wiIHN0eWxlPVwidmlzaWJpbGl0eTogaGlkZGVuXCIgbWF0LWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwic2NNZW51XCIgI21lbnVUcmlnZ2VyPVwibWF0TWVudVRyaWdnZXJcIj5cclxuICAgIE1lbnVcclxuICA8L2J1dHRvbj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
564
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtYWctZ3JpZC1jdXN0b21pemFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXN1bWF4LWVycC1jb21wb25lbnQvc3JjL2xpYi9zYy1hZy1ncmlkL3NjLWFnLWdyaWQtY3VzdG9taXphYmxlL3NjLWFnLWdyaWQtY3VzdG9taXphYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zdW1heC1lcnAtY29tcG9uZW50L3NyYy9saWIvc2MtYWctZ3JpZC9zYy1hZy1ncmlkLWN1c3RvbWl6YWJsZS9zYy1hZy1ncmlkLWN1c3RvbWl6YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxlQUFlLEVBRWYsWUFBWSxFQUNaLEtBQUssRUFJTCxNQUFNLEVBR04sU0FBUyxFQUNULE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQW9CdkIsT0FBTyxFQUFjLFlBQVksRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFcEQsT0FBTyxFQUtMLGNBQWMsR0FJZixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBQ2pILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7Ozs7O0FBR3hFLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztBQVdmLE1BQU0sT0FBTyw2QkFBNkI7SUFWMUM7UUF3QkUsb0NBQStCLEdBQUcsMkJBQTJCLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFFL0Qsb0JBQWUsR0FBb0IsR0FBRyxF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LGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFDRyxvQkFBb0I7c0JBQTdCLE1BQU07Z0JBQ0csb0JBQW9CO3NCQUE3QixNQUFNO2dCQUdHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csa0JBQWtCO3NCQUEzQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxtQkFBbUI7c0JBQTVCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0csaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNO2dCQWtCUCxxQkFBcUI7c0JBRHBCLEtBQUs7O0FBb1RSLE1BQU0sVUFBVSxVQUFVLENBQUksTUFBUztJQUNyQyxJQUFJLE1BQU0sS0FBSyxJQUFJLElBQUksTUFBTSxLQUFLLFNBQVM7UUFBRSxPQUFPLElBQUksQ0FBQztJQUV6RCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztBQUMxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgQ29udGVudENoaWxkcmVuLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBRdWVyeUxpc3QsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBWaWV3Q2hpbGQsXHJcbiAgaW5qZWN0LFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBNYXRNZW51VHJpZ2dlciB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9tZW51XCI7XHJcbmltcG9ydCB7XHJcbiAgQ2VsbENvbnRleHRNZW51RXZlbnQsXHJcbiAgQ2VsbEVkaXRpbmdTdG9wcGVkRXZlbnQsXHJcbiAgQ2VsbEtleURvd25FdmVudCxcclxuICBDZWxsVmFsdWVDaGFuZ2VkRXZlbnQsXHJcbiAgQ29sRGVmLFxyXG4gIEdyaWRBcGksXHJcbiAgR3JpZFJlYWR5RXZlbnQsXHJcbiAgSVJvd05vZGUsXHJcbiAgSXNSb3dTZWxlY3RhYmxlLFxyXG4gIFJvd0NsaWNrZWRFdmVudCxcclxuICBSb3dEYXRhVXBkYXRlZEV2ZW50LFxyXG4gIFJvd0RvdWJsZUNsaWNrZWRFdmVudCxcclxuICBSb3dEcmFnRXZlbnQsXHJcbiAgUm93RWRpdGluZ1N0YXJ0ZWRFdmVudCxcclxuICBSb3dTZWxlY3RlZEV2ZW50LFxyXG59IGZyb20gXCJhZy1ncmlkLWNvbW11bml0eVwiO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24sIG9mIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgSU5nU2VsZWN0IH0gZnJvbSBcIi4uLy4uL3V0aWxzL0lOZ1NlbGVjdFwiO1xyXG5pbXBvcnQge1xyXG4gIEJ1dHRvbkhlYWRlcixcclxuICBDb25maWdCdXR0b25BY3Rpb24sXHJcbiAgQ29uZmlnQnV0dG9uQWdHcmlkLFxyXG4gIENvbmZpZ0J1dHRvbkhlYWRlcixcclxuICBFbnVtQnV0dG9uVHlwZSxcclxuICBHZXRSb3dTdHlsZSxcclxuICBIaWRlRnVjLFxyXG4gIFJvd1NlbGVjdGlvbixcclxufSBmcm9tIFwiLi4vLi4vdXRpbHMvSVNjQWdHcmlkXCI7XHJcbmltcG9ydCB7IE1lc3NhZ2VVdGlsU2VydmljZSB9IGZyb20gXCIuLi8uLi91dGlscy9tZXNzYWdlLXV0aWwuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBTY0NlbGxSZW5kZXJCdXR0b25TZXJ2aWNlIH0gZnJvbSBcIi4uL2NlbGwtcmVuZGVyL3NjLWNlbGwtcmVuZGVyLWJ1dHRvbi9zYy1jZWxsLXJlbmRlci1idXR0b24uY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IHNjQ29tcG9uZW50cyB9IGZyb20gXCIuLi9jZWxsLXJlbmRlci9zYy1jZWxsLXJlbmRlci1jb25maWdcIjtcclxuaW1wb3J0IHsgU2NBZ0dyaWRCdXR0b25IZWFkZXIgfSBmcm9tIFwiLi4vZGlyZWN0aXZlcy9zY0FnR3JpZC5kaXJlY3RpdmVcIjtcclxuaW1wb3J0IHsgU2NBZ0dyaWRQYWdpbmF0aW9uQ29tcG9uZW50IH0gZnJvbSBcIi4uL3NjLWFnLWdyaWQtcGFnaW5hdGlvbi9zYy1hZy1ncmlkLXBhZ2luYXRpb24uY29tcG9uZW50XCI7XHJcblxyXG5sZXQgbmV4dElkID0gMDtcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwic2MtYWctZ3JpZC1jdXN0b21pemFibGVcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL3NjLWFnLWdyaWQtY3VzdG9taXphYmxlLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmw6IFwiLi9zYy1hZy1ncmlkLWN1c3RvbWl6YWJsZS5jb21wb25lbnQuc2Nzc1wiLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGhvc3Q6IHtcclxuICAgIFwiW2lkXVwiOiBcImlkU2NBZ0dyaWRDdXN0b21pemFibGVDb21wb25lbnRcIixcclxuICAgIGNsYXNzOiBcInNjLWFnLWdyaWQtY3VzdG9taXphYmxlXCIsXHJcbiAgfSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNjQWdHcmlkQ3VzdG9taXphYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcbiAgQENvbnRlbnRDaGlsZHJlbihTY0FnR3JpZEJ1dHRvbkhlYWRlciwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxyXG4gIHZpZXdDaGlsZHJlbkJ1dHRvbkhlYWRlcnMhOiBRdWVyeUxpc3Q8U2NBZ0dyaWRCdXR0b25IZWFkZXI+O1xyXG5cclxuICBAVmlld0NoaWxkKFwibWVudVRyaWdnZXJcIikgbWVudVRyaWdnZXI/OiBNYXRNZW51VHJpZ2dlcjtcclxuXHJcbiAgQFZpZXdDaGlsZChcInNjQWdHcmlkUGFnaW5hdGlvblwiKVxyXG4gIHByaXZhdGUgX3NjQWdHcmlkUGFnaW5hdGlvbj86IFNjQWdHcmlkUGFnaW5hdGlvbkNvbXBvbmVudDtcclxuXHJcbiAgQFZpZXdDaGlsZChcImJ1dHRvbkFkZFwiKSBidXR0b25BZGQ/OiBFbGVtZW50UmVmPEhUTUxCdXR0b25FbGVtZW50PjtcclxuICBnZXQgYnV0dG9uQWRkRWxlbWVudCgpOiBIVE1MQnV0dG9uRWxlbWVudCB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMuYnV0dG9uQWRkPy5uYXRpdmVFbGVtZW50ID8/IG51bGw7XHJcbiAgfVxyXG5cclxuICBpZFNjQWdHcmlkQ3VzdG9taXphYmxlQ29tcG9uZW50ID0gYHNjLWFnLWdyaWQtY3VzdG9taXphYmxlLSR7KytuZXh0SWR9YDtcclxuXHJcbiAgQElucHV0KCkgaXNSb3dTZWxlY3RhYmxlOiBJc1Jvd1NlbGVjdGFibGUgPSAoKSA9PiB0cnVlO1xyXG5cclxuICBzZWFyY2hDbGFzcyA9IFwiY29sLTEyIGNvbC1zbS0xMiBjb2wtbWQtNiBjb2wtbGctNiBjb2wteGwtNSBteS0yXCI7XHJcbiAgQElucHV0KCkgZ2V0Um93U3R5bGU6IEdldFJvd1N0eWxlID0gKCkgPT4gdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIGZpbGxTZWFyY2ggPSBmYWxzZTtcclxuICAvLyNyZWdpb24gSW5wdXRzXHJcbiAgLyoqXHJcbiAgICogQGRlc2NyaXB0aW9uIENhbnRpZGFkIGRlIGl0ZW1zIHF1ZSBzZSBtb3N0cmFyw6EgcG9yIHDDoWdpbmFcclxuICAgKiBAZGVmYXVsdCAxNVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHBhZ2luYXRpb25QYWdlU2l6ZSA9IDE1O1xyXG4gIEBJbnB1dCgpIHNlYXJjaFdpZHRoID0gXCJcIjtcclxuICAvKipcclxuICAgKiBAZGVzY3JpcHRpb24gIE9wY2lvbmVzIGRlIHRhbWHDsW8gZGUgcMOhZ2luYVxyXG4gICAqIEBkZWZhdWx0ICdbNSwgMTAsIDE1LCAyMCwgMjVdJ1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHBhZ2VTaXplT3B0aW9ucyA9IFs1LCAxMCwgMTUsIDIwLCAyNV07XHJcbiAgLyoqXHJcbiAgICogQGRlc2NyaXB0aW9uIFNpIGVsIHZhbG9yIGVzIGB0cnVlYCBtdWVzdHJhIGxhIHBhZ2luYWNpw7NuXHJcbiAgICogQGRlZmF1bHQgdHJ1ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHBhZ2luYXRpb24gPSB0cnVlO1xyXG4gIC8qKlxyXG4gICAqIEBkZXNjcmlwdGlvbiBUaXBvIGRlIHNlbGVjaW9uIGVuIGxhIGBncmlsbGFgc1xyXG4gICAqIEBkZWZhdWx0ICdzaW1wbGUnXHJcbiAgICovXHJcbiAgQElucHV0KCkgcm93U2VsZWN0aW9uOiBSb3dTZWxlY3Rpb24gPSBcInNpbmdsZVwiO1xyXG4gIC8vIEBJbnB1dCgpIHN1cHByZXNzUm93Q2xpY2tTZWxlY3Rpb24gPSB0cnVlO1xyXG4gIGdldCBzdXBwcmVzc1Jvd0NsaWNrU2VsZWN0aW9uKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMucm93U2VsZWN0aW9uID09PSBcInNpbmdsZVwiID8gZmFsc2UgOiB0cnVlO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBAZGVzY3JpcHRpb24gQXJyYXkgZGUgY29sdW1uYXMgcXVlIHNlIG1vc3RyYXJhIGVuIGxhIGBncmlsbGFgXHJcbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXHJcbiAgICovXHJcbiAgQElucHV0KCkgY29sdW1uRGVmczogQ29sRGVmW10gPSBbXTtcclxuICAvKipcclxuICAgKiBAZGVzY3JpcHRpb24gQXJyYXkgZGUgZGF0b3MgcXVlIHNlIG1vc3RyYXJhIGVuIGxhIGBncmlsbGFgXHJcbiAgICogQGRlZmF1bHQgbnVsbFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHJvd0RhdGE6IE9ic2VydmFibGU8YW55W10+ID0gb2YoW10pO1xyXG5cclxuICBASW5wdXQoKSBjb25maWdCdXR0b25zQWN0aW9uITogQ29uZmlnQnV0dG9uQWN0aW9uO1xyXG4gIGdldCBjb25maWdIZWFkZXIoKTogQ29uZmlnQnV0dG9uSGVhZGVyIHwgbnVsbCB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWdCdXR0b25zQWN0aW9uPy5oZWFkZXIgPz8gbnVsbDtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIGRlZmF1bHRDZWxsUmVuZGVyZXJBY3Rpb25zOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XHJcblxyXG4gIF9jb25maWdCdXR0b25zRGVmYXVsdEFnR3JpZDogQ29uZmlnQnV0dG9uQWdHcmlkW10gPSBbXTtcclxuXHJcbiAgLyoqXHJcbiAgICogQGRlc2NyaXB0aW9uIFNpIGVsIHZhbG9yIGVzIGB0cnVlYCBtdWVzdHJhIGVsIGBidXNjYWRvcmBcclxuICAgKiBAZGVmYXVsdCB0cnVlXHJcbiAgICovXHJcbiAgQElucHV0KCkgdmlzaWJsZVNlYXJjaCA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpIGRvbUxheW91dDogXCJub3JtYWxcIiB8IFwiYXV0b0hlaWdodFwiID0gXCJub3JtYWxcIjtcclxuICBASW5wdXQoKSBoZWlnaHQgPSBcIjIwZW1cIjtcclxuXHJcbiAgLyoqXHJcbiAgICogQGRlc2NyaXB0aW9uIENwbmZpZ3VyYWNpw7NuIHBhcmEgZWwgYm90b24gYEFncmVnYXJgXHJcbiAgICogQGRlZmF1bHQgJ3sgdmlzaWJsZTogdHJ1ZSwgZGlzYWJsZWQ6IGZhbHNlIH0nXHJcbiAgICovXHJcbiAgQElucHV0KCkgYnRuQWRkOiBCdXR0b25IZWFkZXIgPSB7IHZpc2libGU6IHRydWUgfTtcclxuICAvKipcclxuICAgKiBAZGVzY3JpcHRpb24gUGFyYSBhY3RpdmFyIG8gZGVzY2F0aXZhciBlbCBkcmFnICYgZHJvcFxyXG4gICAqIEBkZWZhdWx0IGZhbHNlXHJcbiAgICovXHJcbiAgQElucHV0KCkgcm93RHJhZ01hbmFnZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogQGRlc2NyaXB0aW9uIFBhcmEgYWN0aXZhciBvIGRlc2NhdGl2YXIgbGFzIGFuaW1hY2lvbmVzXHJcbiAgICogQGRlZmF1bHQgZmFsc2VcclxuICAgKi9cclxuICBASW5wdXQoKSBhbmltYXRlUm93czogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSB1c2VHcmlkQ29weSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIG11bHRpU29ydEtleSE6IGFueTtcclxuICBASW5wdXQoKSBzaG93TWVudURlZmF1bHQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBlbmFibGVDZWxsVGV4dFNlbGVjdGlvbiA9IHRydWU7XHJcbiAgQElucHV0KCkgc3VwcHJlc3NSb3dUcmFuc2Zvcm0gPSBmYWxzZTtcclxuICBASW5wdXQoKSBlbmFibGVSYW5nZVNlbGVjdGlvbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIG5vUm93c092ZXJsYXlDb21wb25lbnQgPSBcIlwiO1xyXG4gIEBJbnB1dCgpIG5vUm93c092ZXJsYXlDb21wb25lbnRQYXJhbXMgPSB7fTtcclxuICBASW5wdXQoKSB2YWxpZGF0ZVBhc3RlQ2VsbD86IChldnRTb3VyY2U6IENlbGxLZXlEb3duRXZlbnQsIGV2dFRhcmdldDogQ2VsbEtleURvd25FdmVudCkgPT4gUHJvbWlzZTxib29sZWFuPiA9IChcclxuICAgIGV2dFNvdXJjZTogQ2VsbEtleURvd25FdmVudCxcclxuICAgIGV2dFRhcmdldDogQ2VsbEtleURvd25FdmVudFxyXG4gICkgPT4gUHJvbWlzZS5yZXNvbHZlKHRydWUpO1xyXG4gIEBJbnB1dCgpIHZhbGlkYXRlUGFzdGVSb3dzPzogKGV2dFNvdXJjZTogSVJvd05vZGVbXSwgZXZ0VGFyZ2V0OiBJUm93Tm9kZVtdKSA9PiBQcm9taXNlPGJvb2xlYW4+ID0gKFxyXG4gICAgZXZ0U291cmNlOiBJUm93Tm9kZVtdLFxyXG4gICAgZXZ0VGFyZ2V0OiBJUm93Tm9kZVtdXHJcbiAgKSA9PiBQcm9taXNlLnJlc29sdmUodHJ1ZSk7XHJcbiAgLy8jZW5kcmVnaW9uXHJcblxyXG4gIC8qKlxyXG4gICAqIEBkZXNjcmlwdGlvbiBQYXJhIGFncmVnYXIgY29tcG9uZW50ZXMgaW50ZXJub3MgZGVudHJvIGRlIGxhIGdyaWxsYVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGZyYW1ld29ya0NvbXBvbmVudHModmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5fZnJhbWV3b3JrQ29tcG9uZW50cyA9IHsgLi4udGhpcy5fZnJhbWV3b3JrQ29tcG9uZW50cywgLi4udmFsdWUgfTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBkZXNjcmlwdGlvbiBQYXJhIHBvZGVyIGFncmVnYXIgbcOhcyBvYmpldG9zIGFsIGNvbnRleHRvXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgY29udGV4dCh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLl9jb250ZXh0ID0geyAuLi50aGlzLl9jb250ZXh0LCAuLi52YWx1ZSB9O1xyXG4gIH1cclxuXHJcbiAgLy8jcmVnaW9uIE91dHB1dFxyXG4gIEBPdXRwdXQoKSBvbkNoYW5nZUZpbHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSBvbkFkZFJvdyA9IG5ldyBFdmVudEVtaXR0ZXI8R3JpZEFwaT4oKTtcclxuICBAT3V0cHV0KCkgb25HcmlkQWRkUm93ID0gbmV3IEV2ZW50RW1pdHRlcjxDZWxsS2V5RG93bkV2ZW50PigpO1xyXG4gIEBPdXRwdXQoKSBvbkVkaXRSb3cgPSBuZXcgRXZlbnRFbWl0dGVyPElSb3dOb2RlPigpO1xyXG4gIEBPdXRwdXQoKSBvbkRlbGV0ZVJvdyA9IG5ldyBFdmVudEVtaXR0ZXI8W0dyaWRBcGksIGFueVtdXT4oKTtcclxuICBAT3V0cHV0KCkgb25DZWxsS2V5RG93bjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uQ2VsbFN0b3BFZGl0aW5nOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25CdXR0b25BY3Rpb25BZ0dyaWQgPSBuZXcgRXZlbnRFbWl0dGVyPFtFbnVtQnV0dG9uVHlwZSB8IHN0cmluZywgSVJvd05vZGVdPigpO1xyXG4gIEBPdXRwdXQoKSBvbkJ1dHRvbkFjdGlvbkhlYWRlciA9IG5ldyBFdmVudEVtaXR0ZXI8W0VudW1CdXR0b25UeXBlIHwgc3RyaW5nLCBhbnlbXV0+KCk7XHJcblxyXG4gIC8vIEFnR3JpZCBFdmVudHMgLSBPdXB1dFxyXG4gIEBPdXRwdXQoKSBvbkdyaWRSZWFkeSA9IG5ldyBFdmVudEVtaXR0ZXI8W0dyaWRBcGldPigpO1xyXG4gIEBPdXRwdXQoKSBvbkdyaWRTZWxlY3RDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueVtdPigpO1xyXG4gIEBPdXRwdXQoKSBvbkdyaWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFtHcmlkQXBpLCBSb3dEYXRhVXBkYXRlZEV2ZW50XT4oKTtcclxuICBAT3V0cHV0KCkgb25Sb3dEcmFnRW5kID0gbmV3IEV2ZW50RW1pdHRlcjxSb3dEcmFnRXZlbnQ+KCk7XHJcbiAgQE91dHB1dCgpIG9uUm93RWRpdGluZ1N0YXJ0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFJvd0VkaXRpbmdTdGFydGVkRXZlbnQ+KCk7XHJcbiAgQE91dHB1dCgpIHJvd0NsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFJvd0NsaWNrZWRFdmVudD4oKTtcclxuICBAT3V0cHV0KCkgcm93RG91YmxlQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Um93RG91YmxlQ2xpY2tlZEV2ZW50PigpO1xyXG4gIEBPdXRwdXQoKSBvblJvd1NlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxSb3dTZWxlY3RlZEV2ZW50PigpO1xyXG4gIEBPdXRwdXQoKSBjZWxsVmFsdWVDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxDZWxsVmFsdWVDaGFuZ2VkRXZlbnQ+KCk7XHJcbiAgQE91dHB1dCgpIG9uQ2VsbENvbnRleHRNZW51ID0gbmV3IEV2ZW50RW1pdHRlcjxDZWxsQ29udGV4dE1lbnVFdmVudD4oKTtcclxuICBAT3V0cHV0KCkgb25QYXN0ZU1lbnUgPSBuZXcgRXZlbnRFbWl0dGVyPENlbGxDb250ZXh0TWVudUV2ZW50PigpO1xyXG4gIEBPdXRwdXQoKSBvbkNvcHlNZW51ID0gbmV3IEV2ZW50RW1pdHRlcjxDZWxsQ29udGV4dE1lbnVFdmVudD4oKTtcclxuICBAT3V0cHV0KCkgYWZ0ZXJQYXN0ZUNlbGwgPSBuZXcgRXZlbnRFbWl0dGVyPFtDZWxsS2V5RG93bkV2ZW50LCBDZWxsS2V5RG93bkV2ZW50XT4oKTtcclxuICBAT3V0cHV0KCkgYmVmb3JlUGFzdGVDZWxsID0gbmV3IEV2ZW50RW1pdHRlcjxbQ2VsbEtleURvd25FdmVudCwgQ2VsbEtleURvd25FdmVudF0+KCk7XHJcbiAgQE91dHB1dCgpIGFmdGVyUGFzdGVSb3dzID0gbmV3IEV2ZW50RW1pdHRlcjxbSVJvd05vZGVbXSwgSVJvd05vZGVbXV0+KCk7XHJcbiAgQE91dHB1dCgpIGJlZm9yZVBhc3RlUm93cyA9IG5ldyBFdmVudEVtaXR0ZXI8W0lSb3dOb2RlW10sIElSb3dOb2RlW11dPigpO1xyXG5cclxuICBjb2x1bW5EZWZzQW5kQWRkQ2VsbEFjdGlvbnM6IENvbERlZltdID0gW107XHJcbiAgZGVmYXVsdENvbERlZjogQ29sRGVmID0ge1xyXG4gICAgcmVzaXphYmxlOiB0cnVlLFxyXG4gICAgc29ydGFibGU6IHRydWUsXHJcbiAgfTtcclxuICBfZnJhbWV3b3JrQ29tcG9uZW50cyA9IHsgLi4uc2NDb21wb25lbnRzIH07XHJcbiAgX2NvbnRleHQgPSB7IGNvbXBvbmVudFBhcmVudDogdGhpcyBhcyBhbnkgfTtcclxuXHJcbiAgYm90dG9tTWVudTogc3RyaW5nID0gXCIwXCI7XHJcbiAgbGVmdE1lbnU6IHN0cmluZyA9IFwiMFwiO1xyXG4gIGhpZGRlbk1lbnU6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBjb3BpZWRDZWxsPzogQ2VsbEtleURvd25FdmVudDtcclxuICBjb3BpZWRSb3c/OiBJUm93Tm9kZVtdO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIG92ZXJsYXlOb1Jvd3NUZW1wbGF0ZSA9IGA8c3BhbiBjbGFzcz1cImFnLW92ZXJsYXktbG9hZGluZy1jZW50ZXIgYm9yZGVyLTAgYmctdHJhbnNwYXJlbnQgc2hhZG93LW5vbmVcIj5cclxuXHRcdFx0Tm8gc2UgZW5jb250cmFyb24gcmVnaXN0cm9zLi4uXHJcblx0XHQ8L3NwYW4+YDtcclxuXHJcbiAgb3ZlcmxheUxvYWRpbmdUZW1wbGF0ZSA9IGA8c3BhbiBjbGFzcz1cImFnLW92ZXJsYXktbG9hZGluZy10b3AgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBib3JkZXItMCBiZy13aGl0ZSBzaGFkb3cgcC00IHRleHQtaW5mb1wiIHN0eWxlPVwiaGVpZ2h0OiAyMHB4O1wiPlxyXG5cdFx0XHQ8aW1nIHNyYz1cImFzc2V0cy9tZWRpYS1kZW1vL2xvYWRpbmcuZ2lmXCIgaGVpZ2h0PVwiMjBcIiB3aWR0aD1cIjI1XCIgY2xhc3M9XCJtci0yXCI+XHJcblx0XHRcdDxzdHJvbmc+Q2FyZ2FuZG8gcmVnaXN0cm9zPC9zdHJvbmc+XHJcblx0XHQ8L3NwYW4+XHJcblx0XHRgO1xyXG4gIHN1cHByZXNzRHJhZ0xlYXZlSGlkZXNDb2x1bW5zID0gdHJ1ZTtcclxuICBzdXBwcmVzc1Njcm9sbE9uTmV3RGF0YSA9IGZhbHNlO1xyXG4gIHN1cHByZXNzUGFnaW5hdGlvblBhbmVsID0gdHJ1ZTtcclxuXHJcbiAgLy8gQWdHcmlkIFN0eWxlXHJcbiAgZ2V0IG5nU3R5bGVDb250YWluZXIoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB3aWR0aDogXCIxMDAlXCIsXHJcbiAgICAgIGhlaWdodDogdGhpcy5oZWlnaHQsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgZ2V0IG5nU3R5bGVBZ0dyaWQoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB3aWR0aDogXCIxMDAlXCIsXHJcbiAgICAgIGhlaWdodDogXCIxMDAlXCIsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgX3N1YnNjcmlwdGlvbiQgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcbiAgcHJvZ3Jlc3NWaXNpYmxlZCA9IGZhbHNlO1xyXG5cclxuICBncmlkQXBpITogR3JpZEFwaTtcclxuICBfc3Vic2NyaXB0aW9uUm93RGF0YSQ/OiBTdWJzY3JpcHRpb247XHJcblxyXG4gIHNlbGVjdGVkUm93czogYW55W10gPSBbXTtcclxuXHJcbiAgY2VsbENvbnRleHRNZW51QWN0dWFsPzogQ2VsbENvbnRleHRNZW51RXZlbnQ7XHJcblxyXG4gIHByaXZhdGUgX3NjQ2VsbFJlbmRlckJ1dHRvblNlcnZpY2UgPSBpbmplY3QoU2NDZWxsUmVuZGVyQnV0dG9uU2VydmljZSk7XHJcbiAgcHJpdmF0ZSBfbWVzc2FnZVV0aWxTZXJ2aWNlID0gaW5qZWN0KE1lc3NhZ2VVdGlsU2VydmljZSk7XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uJC5hZGQoXHJcbiAgICAgIHRoaXMuX3NjQ2VsbFJlbmRlckJ1dHRvblNlcnZpY2UuaGFuZGxlckJ1dHRvbkFjdGlvbiQuc3Vic2NyaWJlKCh7IGluZGV4LCBhY3Rpb24gfSkgPT4ge1xyXG4gICAgICAgIGlmIChhY3Rpb24gPT0gbnVsbCkgcmV0dXJuO1xyXG4gICAgICAgIGlmIChhY3Rpb24udHJpbSgpID09PSBcIlwiKSByZXR1cm47XHJcblxyXG4gICAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcclxuICAgICAgICAgIHRoaXMub25CdXR0b25BY3Rpb25BZ0dyaWRFbWl0KGluZGV4LCBhY3Rpb24pO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5vbkJ1dHRvbkFjdGlvbkhlYWRlckVtaXQoYWN0aW9uKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcblxyXG4gICAgdGhpcy5pbml0QWN0aW9uQnV0dG9uKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuZ3JpZEFwaSkgcmV0dXJuO1xyXG4gICAgaWYgKGNoYW5nZXNbXCJjb25maWdCdXR0b25zQWN0aW9uXCJdKSB0aGlzLmluaXRBY3Rpb25CdXR0b24oKTtcclxuICAgIGlmIChjaGFuZ2VzW1wicm93RGF0YVwiXSkgdGhpcy5pbml0Um93RGF0YSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24kPy51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uUm93RGF0YSQ/LnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLnNlbGVjdGVkUm93cy5sZW5ndGggPSAwO1xyXG4gIH1cclxuXHJcbiAgb25CdXR0b25BY3Rpb25IZWFkZXJFbWl0KHR5cGVCdXR0b246IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3Qgcm93c1NlbGVjdGVkID0gdGhpcy5ncmlkQXBpPy5nZXRTZWxlY3RlZFJvd3MoKTtcclxuICAgIHRoaXMub25CdXR0b25BY3Rpb25IZWFkZXIuZW1pdChbdHlwZUJ1dHRvbiwgcm93c1NlbGVjdGVkXSk7XHJcbiAgfVxyXG5cclxuICBpbml0QWN0aW9uQnV0dG9uKCk6IHZvaWQge1xyXG4gICAgaWYgKGlzT2JqRW1wdHkodGhpcy5jb25maWdCdXR0b25zQWN0aW9uKSkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IHsgYWdHcmlkIH0gPSB0aGlzLmNvbmZpZ0J1dHRvbnNBY3Rpb24hO1xyXG5cclxuICAgIGlmIChhZ0dyaWQgJiYgYWdHcmlkLmFjdGlvbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLl9jb25maWdCdXR0b25zRGVmYXVsdEFnR3JpZCA9IFsuLi5hZ0dyaWQuYWN0aW9uc107XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zaXplRml0Q29sdW1uQWN0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBzaXplRml0Q29sdW1uQWN0aW9uKCk6IHZvaWQge1xyXG4gICAgY29uc3QgbGVuZ3RoID0gdGhpcy5fY29uZmlnQnV0dG9uc0RlZmF1bHRBZ0dyaWQuZmlsdGVyKCh7IGhpZGUgfSkgPT4ge1xyXG4gICAgICByZXR1cm4gIXRoaXMuX2hpZGVGdW5jKGhpZGUpO1xyXG4gICAgfSkubGVuZ3RoO1xyXG5cclxuICAgIGNvbnN0IHdpZHRoID0gbGVuZ3RoID09IDIgPyA5MCA6IDgwO1xyXG4gICAgY29uc3QgbWluV2lkdGggPSBsZW5ndGggPiAyID8gbGVuZ3RoICogMzMgKyAxMCA6IHdpZHRoO1xyXG5cclxuICAgIGNvbnN0IG5ld0NvbHVtbnM6IENvbERlZiA9IHtcclxuICAgICAgaGVhZGVyTmFtZTogXCJBY2Npb25lc1wiLFxyXG4gICAgICBoZWFkZXJDbGFzczogXCJhZy1oZWFkZXJfX2NlbnRlclwiLFxyXG4gICAgICBmaWVsZDogXCJcIixcclxuICAgICAgd2lkdGg6IG1pbldpZHRoLFxyXG4gICAgICBtaW5XaWR0aCxcclxuICAgICAgbWF4V2lkdGg6IG1pbldpZHRoLFxyXG4gICAgICBjZWxsQ2xhc3M6IFtcImQtZmxleFwiLCBcImp1c3RpZnktY29udGVudC1jZW50ZXJcIiwgXCJhbGlnbi1pdGVtcy1jZW50ZXJcIl0sXHJcbiAgICAgIGNlbGxTdHlsZTogeyBvdmVyZmxvdzogXCJ2aXNpYmxlXCIgfSxcclxuICAgICAgcmVzaXphYmxlOiBmYWxzZSxcclxuICAgICAgc29ydGFibGU6IGZhbHNlLFxyXG4gICAgICBjZWxsUmVuZGVyZXI6IHRoaXMuZGVmYXVsdENlbGxSZW5kZXJlckFjdGlvbnMgPyB0aGlzLmRlZmF1bHRDZWxsUmVuZGVyZXJBY3Rpb25zIDogXCJzY0NlbGxSZW5kZXJlckJ1dHRvbkNvbXBvbmVudFwiLFxyXG4gICAgICBwaW5uZWQ6IFwicmlnaHRcIixcclxuICAgICAgc3VwcHJlc3NNZW51OiB0cnVlLFxyXG4gICAgICBsb2NrUG9zaXRpb246IHRydWUsXHJcbiAgICB9O1xyXG4gICAgdGhpcy5jb2x1bW5EZWZzQW5kQWRkQ2VsbEFjdGlvbnMgPSB0aGlzLl9oaWRlQWdHcmlkTWVudUFjdGlvbigpID8gWy4uLnRoaXMuY29sdW1uRGVmc10gOiBbLi4udGhpcy5jb2x1bW5EZWZzLCBuZXdDb2x1bW5zXTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2hpZGVBZ0dyaWRNZW51QWN0aW9uKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuY29uZmlnQnV0dG9uc0FjdGlvbiA9PSBudWxsKSByZXR1cm4gdHJ1ZTtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIHRoaXMuY29uZmlnQnV0dG9uc0FjdGlvbj8uYWdHcmlkPy5hY3Rpb25zLmV2ZXJ5KCh7IGhpZGUgfSkgPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9oaWRlRnVuYyhoaWRlKTtcclxuICAgICAgfSkgPz8gdHJ1ZVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2hpZGVGdW5jKGhpZGU6IEhpZGVGdWMgfCBib29sZWFuIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoaGlkZSA9PSBudWxsKSByZXR1cm4gZmFsc2U7XHJcbiAgICBpZiAodHlwZW9mIGhpZGUgPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gaGlkZSgpO1xyXG5cclxuICAgIHJldHVybiBoaWRlO1xyXG4gIH1cclxuXHJcbiAgb25CdXR0b25BY3Rpb25BZ0dyaWRFbWl0KHJvd0luZGV4OiBudW1iZXIsIHR5cGVCdXR0b246IHN0cmluZykge1xyXG4gICAgY29uc3QgSVJvd05vZGUgPSB0aGlzLmdyaWRBcGk/LmdldERpc3BsYXllZFJvd0F0SW5kZXgocm93SW5kZXgpO1xyXG5cclxuICAgIGlmIChJUm93Tm9kZSkge1xyXG4gICAgICBpZiAodHlwZUJ1dHRvbiA9PT0gRW51bUJ1dHRvblR5cGUuVFlQRV9FRElUKSB7XHJcbiAgICAgICAgdGhpcy5vbkVkaXRSb3cuZW1pdChJUm93Tm9kZSk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0eXBlQnV0dG9uID09PSBFbnVtQnV0dG9uVHlwZS5UWVBFX0RFTEVURSkge1xyXG4gICAgICAgIHRoaXMub25EZWxldGVSb3cuZW1pdChbdGhpcy5ncmlkQXBpLCBbSVJvd05vZGUuZGF0YV1dKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMub25CdXR0b25BY3Rpb25BZ0dyaWQuZW1pdChbdHlwZUJ1dHRvbiwgSVJvd05vZGVdKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGluaXRSb3dEYXRhKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmNvbmZpZ0J1dHRvbnNBY3Rpb24/LmFnR3JpZCkgdGhpcy5zaXplRml0Q29sdW1uQWN0aW9uKCk7XHJcbiAgICBpZiAodGhpcy5fc3Vic2NyaXB0aW9uUm93RGF0YSQpIHtcclxuICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uUm93RGF0YSQudW5zdWJzY3JpYmUoKTtcclxuICAgICAgdGhpcy5ncmlkQXBpLnNldEdyaWRPcHRpb24oXCJyb3dEYXRhXCIsIFtdKTtcclxuICAgICAgdGhpcy5ncmlkQXBpPy5zaG93TG9hZGluZ092ZXJsYXkoKTtcclxuICAgIH1cclxuICAgIHRoaXMuX3N1YnNjcmlwdGlvblJvd0RhdGEkID0gdGhpcy5yb3dEYXRhLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xyXG4gICAgICB0aGlzLmdyaWRBcGkuc2V0R3JpZE9wdGlvbihcInJvd0RhdGFcIiwgZGF0YSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGNoYW5nZUZpbHRlcih2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmdyaWRBcGk/LnNldFF1aWNrRmlsdGVyKHZhbHVlKTtcclxuICAgIHRoaXMub25DaGFuZ2VGaWx0ZXIuZW1pdCh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBvbkFkZFJvd0VtaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQWRkUm93LmVtaXQodGhpcy5ncmlkQXBpKTtcclxuICB9XHJcblxyXG4gIGhpZGVIZWFkZXJNZW51QWN0aW9uKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgdGhpcy5jb25maWdCdXR0b25zQWN0aW9uPy5oZWFkZXI/LnN1Ym1lbnU/LmV2ZXJ5KCh7IGhpZGUgfSkgPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9oaWRlRnVuYyhoaWRlKTtcclxuICAgICAgfSkgPz8gZmFsc2VcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwYWdpbmF0aW9uQ2hhbmdlZCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl9zY0FnR3JpZFBhZ2luYXRpb24pIHRoaXMuX3NjQWdHcmlkUGFnaW5hdGlvbi5vblBhZ2luYXRpb25DaGFuZ2VkKCk7XHJcbiAgfVxyXG5cclxuICBncmlkUmVhZHkoZXZlbnQ6IEdyaWRSZWFkeUV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLmdyaWRBcGkgPSBldmVudC5hcGk7XHJcblxyXG4gICAgdGhpcy5pbml0Um93RGF0YSgpO1xyXG4gICAgdGhpcy5vbkdyaWRSZWFkeS5lbWl0KFt0aGlzLmdyaWRBcGldKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBwYXJhbSBldmVudDogb3BjaW9uYWwgLSBDb250aWVuZSBlbCBub2RvIHkgbGEgZGF0YSBkZSBsYSBmaWxhIGFjdHVhbC5cclxuICAgKiBAZGVzY3JpcHRpb24gU2UgZGlzcGFyYSBjYWRhIHZleiBxdWUgbGEgZmlsYSBlcyBjb2xvY2FkYSBlbiBzdSBudWV2YSBwb3NpY2nDs24gKERyYWcgJiBEcm9wKS5cclxuICAgKi9cclxuICByb3dEcmFnRW5kRW1pdChldmVudDogUm93RHJhZ0V2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uUm93RHJhZ0VuZC5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIGNlbGxDb250ZXh0TWVudShldmVudDogQ2VsbENvbnRleHRNZW51RXZlbnQpIHtcclxuICAgIHRoaXMuY2VsbENvbnRleHRNZW51QWN0dWFsID0gZXZlbnQ7XHJcbiAgICB0aGlzLm9uQ2VsbENvbnRleHRNZW51LmVtaXQoZXZlbnQpO1xyXG4gICAgdGhpcy5sZWZ0TWVudSA9IChldmVudC5ldmVudCEgYXMgUG9pbnRlckV2ZW50KS54LnRvU3RyaW5nKCk7XHJcbiAgICB0aGlzLmJvdHRvbU1lbnUgPSAoKGV2ZW50LmV2ZW50ISBhcyBQb2ludGVyRXZlbnQpLnkgLSAyMCkudG9TdHJpbmcoKTtcclxuICAgIGlmIChldmVudC52YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHRoaXMuc2hvd01lbnVEZWZhdWx0KSB0aGlzLm1lbnVUcmlnZ2VyPy5vcGVuTWVudSgpO1xyXG4gIH1cclxuXHJcbiAgcm93RGF0YUNoYW5nZWQoZXZlbnQ6IFJvd0RhdGFVcGRhdGVkRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5ncmlkQXBpKSByZXR1cm47XHJcblxyXG4gICAgaWYgKCF0aGlzLmdyaWRBcGk/LmdldERpc3BsYXllZFJvd0NvdW50KCkpIHJldHVybjtcclxuXHJcbiAgICB0aGlzLm9uR3JpZENoYW5nZS5lbWl0KFt0aGlzLmdyaWRBcGksIGV2ZW50XSk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3Rpb25DaGFuZ2VkKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZFJvd3MgPSB0aGlzLmdyaWRBcGk/LmdldFNlbGVjdGVkUm93cygpO1xyXG4gICAgdGhpcy5vbkdyaWRTZWxlY3RDaGFuZ2UuZW1pdCh0aGlzLmdyaWRBcGk/LmdldFNlbGVjdGVkUm93cygpKTtcclxuICB9XHJcblxyXG4gIGNlbGxTdG9wRWRpdGluZyhldnQ6IENlbGxFZGl0aW5nU3RvcHBlZEV2ZW50KSB7XHJcbiAgICB0aGlzLm9uQ2VsbFN0b3BFZGl0aW5nLmVtaXQoZXZ0KTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGNlbGxLZXlEb3duKGV2dDogQ2VsbEtleURvd25FdmVudCkge1xyXG4gICAgdGhpcy5vbkNlbGxLZXlEb3duLmVtaXQoZXZ0KTtcclxuICAgIGlmICgoZXZ0LmV2ZW50IGFzIEtleWJvYXJkRXZlbnQpLmN0cmxLZXkgJiYgKGV2dC5ldmVudCBhcyBLZXlib2FyZEV2ZW50KS5rZXkgPT09IFwiQXJyb3dEb3duXCIgJiYgZXZ0Lm5vZGUubGFzdENoaWxkKSB7XHJcbiAgICAgIHRoaXMub25HcmlkQWRkUm93LmVtaXQoZXZ0KTtcclxuICAgIH0gZWxzZSBpZiAoKGV2dC5ldmVudCBhcyBLZXlib2FyZEV2ZW50KS5jdHJsS2V5ICYmIChldnQuZXZlbnQgYXMgS2V5Ym9hcmRFdmVudCkua2V5LnRvTG9jYWxlTG93ZXJDYXNlKCkgPT09IFwiY1wiICYmIHRoaXMudXNlR3JpZENvcHkpIHtcclxuICAgICAgdGhpcy5jb3B5KGV2dCk7XHJcbiAgICB9IGVsc2UgaWYgKChldnQuZXZlbnQgYXMgS2V5Ym9hcmRFdmVudCkuY3RybEtleSAmJiAoZXZ0LmV2ZW50IGFzIEtleWJvYXJkRXZlbnQpLmtleS50b0xvY2FsZUxvd2VyQ2FzZSgpID09PSBcInZcIiAmJiB0aGlzLnVzZUdyaWRDb3B5KSB7XHJcbiAgICAgIGF3YWl0IHRoaXMucGFzdGUoZXZ0KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvcHkoZXZ0OiBDZWxsS2V5RG93bkV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAoIWV2dC5ub2RlLmlzU2VsZWN0ZWQoKSkge1xyXG4gICAgICB0aGlzLmNvcGllZENlbGwgPSBldnQ7XHJcbiAgICAgIGlmIChldnQudmFsdWUgaW5zdGFuY2VvZiBPYmplY3QpIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KChldnQudmFsdWUgYXMgSU5nU2VsZWN0KT8ubGFiZWwgPz8gXCJcIik7XHJcbiAgICAgIGVsc2UgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoZXZ0LnZhbHVlID8/IFwiXCIpO1xyXG4gICAgICB0aGlzLl9tZXNzYWdlVXRpbFNlcnZpY2UuZ2V0QWxlcnRTdWNjZXNzKFwiQ2VsZGEgQ29waWFkYVwiKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY29waWVkUm93ID0gdGhpcy5ncmlkQXBpLmdldFNlbGVjdGVkTm9kZXMoKTtcclxuICAgICAgdGhpcy5fbWVzc2FnZVV0aWxTZXJ2aWNlLmdldEFsZXJ0U3VjY2VzcyhcIkZpbGEgQ29waWFkYVwiKTtcclxuICAgIH1cclxuICAgIHRoaXMuZ3JpZEFwaS5kZXNlbGVjdEFsbCgpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgcGFzdGUoZXZ0OiBDZWxsS2V5RG93bkV2ZW50KSB7XHJcbiAgICBpZiAoIWV2dC5ub2RlLmlzU2VsZWN0ZWQoKSAmJiB0aGlzLmNvcGllZENlbGwpIHtcclxuICAgICAgaWYgKGV2dC5jb2x1bW4uZ2V0Q29sSWQoKSA9PT0gdGhpcy5jb3BpZWRDZWxsLmNvbHVtbi5nZXRDb2xJZCgpICYmIChldnQuZGF0YSBhcyBGb3JtR3JvdXApLmdldChldnQuY29sdW1uLmdldENvbElkKCkpIS5lbmFibGVkKSB7XHJcbiAgICAgICAgbGV0IGlzVmFsaWQgPSB0cnVlO1xyXG4gICAgICAgIGlmICh0aGlzLnZhbGlkYXRlUGFzdGVDZWxsKSBpc1ZhbGlkID0gYXdhaXQgdGhpcy52YWxpZGF0ZVBhc3RlQ2VsbCh0aGlzLmNvcGllZENlbGwsIGV2dCk7XHJcbiAgICAgICAgZWxzZSB0aGlzLmdyaWRBcGkuZGVzZWxlY3RBbGwoKTtcclxuICAgICAgICB0aGlzLmJlZm9yZVBhc3RlQ2VsbC5lbWl0KFtldnQsIHRoaXMuY29waWVkQ2VsbF0pO1xyXG4gICAgICAgIGlmIChpc1ZhbGlkKSB7XHJcbiAgICAgICAgICAoZXZ0LmRhdGEgYXMgRm9ybUdyb3VwKS5nZXQoZXZ0LmNvbHVtbi5nZXRDb2xJZCgpKSEuc2V0VmFsdWUodGhpcy5jb3BpZWRDZWxsLnZhbHVlKTtcclxuICAgICAgICAgIHRoaXMuZ3JpZEFwaS5yZWZyZXNoQ2VsbHMoe1xyXG4gICAgICAgICAgICBjb2x1bW5zOiBbZXZ0LmNvbHVtbl0sXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMuYWZ0ZXJQYXN0ZUNlbGwuZW1pdChbZXZ0LCB0aGlzLmNvcGllZENlbGxdKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAoZXZ0Lm5vZGUuaXNTZWxlY3RlZCgpICYmIHRoaXMuY29waWVkUm93KSB7XHJcbiAgICAgIGNvbnN0IElSb3dOb2RlID0gdGhpcy5ncmlkQXBpLmdldFNlbGVjdGVkTm9kZXMoKTtcclxuICAgICAgbGV0IGlzVmFsaWQgPSB0cnVlO1xyXG4gICAgICBpZiAodGhpcy52YWxpZGF0ZVBhc3RlUm93cykgaXNWYWxpZCA9IGF3YWl0IHRoaXMudmFsaWRhdGVQYXN0ZVJvd3ModGhpcy5jb3BpZWRSb3csIElSb3dOb2RlKTtcclxuICAgICAgZWxzZSB0aGlzLmdyaWRBcGkuZGVzZWxlY3RBbGwoKTtcclxuICAgICAgdGhpcy5iZWZvcmVQYXN0ZVJvd3MuZW1pdChbdGhpcy5ncmlkQXBpLmdldFNlbGVjdGVkTm9kZXMoKSwgdGhpcy5jb3BpZWRSb3ddKTtcclxuICAgICAgaWYgKGlzVmFsaWQpIHtcclxuICAgICAgICBsZXQgaW5kZXhSb3dDb3B5ID0gMDtcclxuICAgICAgICBJUm93Tm9kZS5mb3JFYWNoKChyKSA9PiB7XHJcbiAgICAgICAgICAoci5kYXRhIGFzIEZvcm1Hcm91cCkucGF0Y2hWYWx1ZSgodGhpcy5jb3BpZWRSb3chW2luZGV4Um93Q29weV0uZGF0YSBhcyBGb3JtR3JvdXApLmdldFJhd1ZhbHVlKCkpO1xyXG4gICAgICAgICAgdGhpcy5ncmlkQXBpLnJlZnJlc2hDZWxscyh7XHJcbiAgICAgICAgICAgIHJvd05vZGVzOiBbcl0sXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIGluZGV4Um93Q29weSsrO1xyXG4gICAgICAgICAgaWYgKGluZGV4Um93Q29weSA9PSB0aGlzLmNvcGllZFJvdyEubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIGluZGV4Um93Q29weSA9IDA7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5hZnRlclBhc3RlUm93cy5lbWl0KFt0aGlzLmdyaWRBcGkuZ2V0U2VsZWN0ZWROb2RlcygpLCB0aGlzLmNvcGllZFJvd10pO1xyXG4gICAgICAgIHRoaXMuZ3JpZEFwaS5kZXNlbGVjdEFsbCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb3B5TWVudShldmVudDogQ2VsbENvbnRleHRNZW51RXZlbnQpIHtcclxuICAgIHRoaXMub25Db3B5TWVudS5lbWl0KGV2ZW50KTtcclxuICAgIHRoaXMuY29weShldmVudCk7XHJcbiAgfVxyXG5cclxuICBwYXN0ZU1lbnUoZXZlbnQ6IENlbGxDb250ZXh0TWVudUV2ZW50KSB7XHJcbiAgICB0aGlzLm9uUGFzdGVNZW51LmVtaXQoZXZlbnQpO1xyXG4gICAgdGhpcy5wYXN0ZShldmVudCk7XHJcbiAgfVxyXG5cclxuICBnZXQgZGlzYWJsZWRQYXN0ZU1lbnUoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy5ncmlkQXBpPy5nZXRTZWxlY3RlZFJvd3MoKS5sZW5ndGggPT0gMCAmJiAhdGhpcy5jb3BpZWRDZWxsKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmdyaWRBcGk/LmdldFNlbGVjdGVkUm93cygpLmxlbmd0aCA+IDAgJiYgIXRoaXMuY29waWVkUm93KSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfSBlbHNlIGlmICghdGhpcy5jb3BpZWRDZWxsICYmICF0aGlzLmNvcGllZFJvdykge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpc09iakVtcHR5PFQ+KG9iamVjdDogVCk6IGJvb2xlYW4ge1xyXG4gIGlmIChvYmplY3QgPT09IG51bGwgfHwgb2JqZWN0ID09PSB1bmRlZmluZWQpIHJldHVybiB0cnVlO1xyXG5cclxuICByZXR1cm4gT2JqZWN0LmtleXMob2JqZWN0KS5sZW5ndGggPT09IDA7XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInctMTAwXCI+XHJcbiAgPCEtLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLT5cclxuICA8IS0tIEFHLUdSSUQgSEVBREVSIC0tPlxyXG4gIDwhLS09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09LS0+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJyb3cganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIG15LTJcIlxyXG4gICAgKm5nSWY9XCJ2aXNpYmxlU2VhcmNoIHx8IGJ0bkFkZD8udmlzaWJsZSB8fCB2aWV3Q2hpbGRyZW5CdXR0b25IZWFkZXJzPy5sZW5ndGhcIj5cclxuICAgIDxkaXYgW2NsYXNzXT1cImZpbGxTZWFyY2ggPyAnY29sLTEyIG15LTInIDogc2VhcmNoQ2xhc3NcIiAqbmdJZj1cInZpc2libGVTZWFyY2hcIj5cclxuICAgICAgPGlucHV0LXNlYXJjaCAob25DaGFuZ2UpPVwiY2hhbmdlRmlsdGVyKCRldmVudClcIj48L2lucHV0LXNlYXJjaD5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXZcclxuICAgICAgW2NsYXNzXT1cInZpc2libGVTZWFyY2ggPyAnY29sLXNtLTEyIGNvbC1tZC02IGNvbC1sZy02IGNvbC14bC03IGNvbC0xMicgOiAnY29sLTEyJ1wiXHJcbiAgICAgIGNsYXNzPVwic2MtYWctZ3JpZC1oZWFkZXItYWN0aW9ucyBkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZFwiXHJcbiAgICAgICpuZ0lmPVwiYnRuQWRkPy52aXNpYmxlIHx8IHZpZXdDaGlsZHJlbkJ1dHRvbkhlYWRlcnM/Lmxlbmd0aCB8fCBjb25maWdCdXR0b25zQWN0aW9uPy5oZWFkZXIgfHwgY29uZmlnSGVhZGVyICE9IG51bGxcIj5cclxuICAgICAgPCEtLSBIZWFkZXIgYWN0aW9ucyBidXR0b25zIC0tPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29uZmlnQnV0dG9uc0FjdGlvbiAmJiBjb25maWdIZWFkZXJcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29uZmlnSGVhZGVyLmRpc2FibGVkID09PSBmYWxzZTsgZWxzZSB0ZW1wbGF0ZUFjdGlvblwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJ0ZW1wQWN0aW9uc1wiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI3RlbXBsYXRlQWN0aW9uPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkUm93cy5sZW5ndGggPT09IDA7IGVsc2UgdGVtcEFjdGlvbnNcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0bi1pY29uIGJ0bi13aWR0aCBidG4gYnRuLXByaW1hcnkgYnRuLXNtXCIgZGlzYWJsZWQ+XHJcbiAgICAgICAgICAgICAgQWNjaW9uZXNcclxuICAgICAgICAgICAgICA8ZW0gY2xhc3M9XCJmYSBmYS1jaGV2cm9uLWRvd25cIj48L2VtPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjdGVtcEFjdGlvbnM+XHJcbiAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiaGlkZUhlYWRlck1lbnVBY3Rpb24oKTsgZWxzZSB0ZW1wbGF0ZUhlYWRlckFjdGlvblwiIGNsYXNzPVwiYnRuLWljb24gYnRuLXdpZHRoIGJ0biBidG4tcHJpbWFyeSBidG4tc21cIj5cclxuICAgICAgICAgICAgQWNjaW9uZXNcclxuICAgICAgICAgICAgPGVtIGNsYXNzPVwiZmEgZmEtY2hldnJvbi1kb3duXCI+PC9lbT5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjdGVtcGxhdGVIZWFkZXJBY3Rpb24+XHJcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuLWljb24gYnRuLXdpZHRoIGJ0biBidG4tcHJpbWFyeSBidG4tc21cIiBbbWF0TWVudVRyaWdnZXJGb3JdPVwicGFuZWwubWVudVwiPlxyXG4gICAgICAgICAgICAgIEFjY2lvbmVzXHJcbiAgICAgICAgICAgICAgPGVtIGNsYXNzPVwiZmEgZmEtY2hldnJvbi1kb3duXCI+PC9lbT5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgICA8c2MtbWVudS1wYW5lbCAjcGFuZWwgY2xhc3M9XCJkLW5vbmVcIiBbc3ViTWVudXNdPVwiY29uZmlnSGVhZGVyLnN1Ym1lbnUgPz8gW11cIj48L3NjLW1lbnUtcGFuZWw+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8IS0tIEVuZCBoZWFkZXIgYWN0aW9ucyBidXR0b25zIC0tPlxyXG5cclxuICAgICAgPCEtLSBPdGhlciBidXR0b25zIC0tPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidmlld0NoaWxkcmVuQnV0dG9uSGVhZGVycz8ubGVuZ3RoXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgKm5nRm9yPVwibGV0IHZpZXdDaGlsZHJlbkJ1dHRvbkhlYWRlciBvZiB2aWV3Q2hpbGRyZW5CdXR0b25IZWFkZXJzXCJcclxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInZpZXdDaGlsZHJlbkJ1dHRvbkhlYWRlci50ZW1wbGF0ZVwiPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPCEtLUVuZCBvdGhlciBidXR0b25zIC0tPlxyXG5cclxuICAgICAgPCEtLSBBZGQgYnV0dG9uIC0tPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYnRuQWRkPy52aXNpYmxlXCI+XHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICBjbGFzcz1cImJ0bi13aWR0aCBidG4gYnRuLXdhcm5pbmcgYnRuLXNtXCJcclxuICAgICAgICAgIChjbGljayk9XCJvbkFkZFJvd0VtaXQoKVwiXHJcbiAgICAgICAgICAjYnV0dG9uQWRkXHJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiYnRuQWRkLmRpc2FibGVkID8/IGZhbHNlXCI+XHJcbiAgICAgICAgICBBZ3JlZ2FyXHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8IS0tRW5kIGFkZCBidXR0b24gLS0+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8IS0tPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tPlxyXG4gIDwhLS0gQUctR1JJRCBIRUFERVIgRU5EIC0tPlxyXG4gIDwhLS09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09LS0+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIiBbbmdTdHlsZV09XCJuZ1N0eWxlQ29udGFpbmVyXCI+XHJcbiAgICAgIDxhZy1ncmlkLWFuZ3VsYXJcclxuICAgICAgICAjYWdHcmlkXHJcbiAgICAgICAgY2xhc3M9XCJhZy10aGVtZS1iYWxoYW1cIlxyXG4gICAgICAgIFtuZ1N0eWxlXT1cIm5nU3R5bGVBZ0dyaWRcIlxyXG4gICAgICAgIFtjb2x1bW5EZWZzXT1cImNvbHVtbkRlZnNBbmRBZGRDZWxsQWN0aW9uc1wiXHJcbiAgICAgICAgW2RlZmF1bHRDb2xEZWZdPVwiZGVmYXVsdENvbERlZlwiXHJcbiAgICAgICAgW2NvbXBvbmVudHNdPVwiX2ZyYW1ld29ya0NvbXBvbmVudHNcIlxyXG4gICAgICAgIFtjb250ZXh0XT1cIl9jb250ZXh0XCJcclxuICAgICAgICBbcm93U2VsZWN0aW9uXT1cInJvd1NlbGVjdGlvblwiXHJcbiAgICAgICAgW2lzUm93U2VsZWN0YWJsZV09XCJpc1Jvd1NlbGVjdGFibGVcIlxyXG4gICAgICAgIFtyb3dEcmFnTWFuYWdlZF09XCJyb3dEcmFnTWFuYWdlZFwiXHJcbiAgICAgICAgW2RvbUxheW91dF09XCJkb21MYXlvdXRcIlxyXG4gICAgICAgIFthbmltYXRlUm93c109XCJhbmltYXRlUm93c1wiXHJcbiAgICAgICAgW2dldFJvd1N0eWxlXT1cImdldFJvd1N0eWxlXCJcclxuICAgICAgICBbZW5hYmxlUmFuZ2VTZWxlY3Rpb25dPVwiZW5hYmxlUmFuZ2VTZWxlY3Rpb25cIlxyXG4gICAgICAgIFtzdXBwcmVzc1Jvd1RyYW5zZm9ybV09XCJzdXBwcmVzc1Jvd1RyYW5zZm9ybVwiXHJcbiAgICAgICAgW3N1cHByZXNzTW92ZVdoZW5Sb3dEcmFnZ2luZ109XCJhbmltYXRlUm93c1wiXHJcbiAgICAgICAgW292ZXJsYXlOb1Jvd3NUZW1wbGF0ZV09XCJvdmVybGF5Tm9Sb3dzVGVtcGxhdGVcIlxyXG4gICAgICAgIFtvdmVybGF5TG9hZGluZ1RlbXBsYXRlXT1cIm92ZXJsYXlMb2FkaW5nVGVtcGxhdGVcIlxyXG4gICAgICAgIFtub1Jvd3NPdmVybGF5Q29tcG9uZW50UGFyYW1zXT1cIm5vUm93c092ZXJsYXlDb21wb25lbnRQYXJhbXNcIlxyXG4gICAgICAgIFtzdXBwcmVzc1Jvd0NsaWNrU2VsZWN0aW9uXT1cInN1cHByZXNzUm93Q2xpY2tTZWxlY3Rpb25cIlxyXG4gICAgICAgIFtzdXBwcmVzc0RyYWdMZWF2ZUhpZGVzQ29sdW1uc109XCJzdXBwcmVzc0RyYWdMZWF2ZUhpZGVzQ29sdW1uc1wiXHJcbiAgICAgICAgW3N1cHByZXNzU2Nyb2xsT25OZXdEYXRhXT1cInN1cHByZXNzU2Nyb2xsT25OZXdEYXRhXCJcclxuICAgICAgICBbc3VwcHJlc3NQcm9wZXJ0eU5hbWVzQ2hlY2tdPVwidHJ1ZVwiXHJcbiAgICAgICAgW3BhZ2luYXRpb25QYWdlU2l6ZV09XCJwYWdpbmF0aW9uID8gcGFnaW5hdGlvblBhZ2VTaXplIDogdW5kZWZpbmVkXCJcclxuICAgICAgICBbcGFnaW5hdGlvbl09XCJwYWdpbmF0aW9uXCJcclxuICAgICAgICBbc3VwcHJlc3NQYWdpbmF0aW9uUGFuZWxdPVwic3VwcHJlc3NQYWdpbmF0aW9uUGFuZWxcIlxyXG4gICAgICAgIChyb3dDbGlja2VkKT1cInJvd0NsaWNrZWQuZW1pdCgkZXZlbnQpXCJcclxuICAgICAgICAocm93RG91YmxlQ2xpY2tlZCk9XCJyb3dEb3VibGVDbGlja2VkLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgKHJvd1NlbGVjdGVkKT1cIm9uUm93U2VsZWN0ZWQuZW1pdCgkZXZlbnQpXCJcclxuICAgICAgICAocGFnaW5hdGlvbkNoYW5nZWQpPVwicGFnaW5hdGlvbkNoYW5nZWQoKVwiXHJcbiAgICAgICAgKGdyaWRSZWFkeSk9XCJncmlkUmVhZHkoJGV2ZW50KVwiXHJcbiAgICAgICAgKHJvd0RyYWdFbmQpPVwicm93RHJhZ0VuZEVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgKGNlbGxDb250ZXh0TWVudSk9XCJjZWxsQ29udGV4dE1lbnUoJGV2ZW50KVwiXHJcbiAgICAgICAgW2VuYWJsZUNlbGxUZXh0U2VsZWN0aW9uXT1cImVuYWJsZUNlbGxUZXh0U2VsZWN0aW9uXCJcclxuICAgICAgICAocm93RGF0YVVwZGF0ZWQpPVwicm93RGF0YUNoYW5nZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgKHJvd0VkaXRpbmdTdGFydGVkKT1cIm9uUm93RWRpdGluZ1N0YXJ0ZWQuZW1pdCgkZXZlbnQpXCJcclxuICAgICAgICAoY2VsbFZhbHVlQ2hhbmdlZCk9XCJjZWxsVmFsdWVDaGFuZ2VkLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgKHNlbGVjdGlvbkNoYW5nZWQpPVwic2VsZWN0aW9uQ2hhbmdlZCgpXCJcclxuICAgICAgICAoY2VsbEVkaXRpbmdTdG9wcGVkKT1cImNlbGxTdG9wRWRpdGluZygkZXZlbnQpXCJcclxuICAgICAgICAoY2VsbEtleURvd24pPVwiY2VsbEtleURvd24oJGFueSgkZXZlbnQpKVwiXHJcbiAgICAgICAgW211bHRpU29ydEtleV09XCJtdWx0aVNvcnRLZXlcIlxyXG4gICAgICAgIG9uY29udGV4dG1lbnU9XCJyZXR1cm4gZmFsc2U7XCI+XHJcbiAgICAgIDwvYWctZ3JpZC1hbmd1bGFyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09LS0+XHJcbiAgPCEtLSBBRy1HUklEIFBBR0lOQVRJT04gLS0+XHJcbiAgPCEtLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLT5cclxuICA8ZGl2IGNsYXNzPVwicm93XCIgKm5nSWY9XCJwYWdpbmF0aW9uXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XHJcbiAgICAgIDxzYy1hZy1ncmlkLXBhZ2luYXRpb25cclxuICAgICAgICAjc2NBZ0dyaWRQYWdpbmF0aW9uXHJcbiAgICAgICAgW2dyaWRBcGldPVwiZ3JpZEFwaVwiXHJcbiAgICAgICAgW3BhZ2luYXRpb25QYWdlU2l6ZV09XCJwYWdpbmF0aW9uUGFnZVNpemVcIlxyXG4gICAgICAgIFtwYWdlU2l6ZU9wdGlvbnNdPVwicGFnZVNpemVPcHRpb25zXCI+PC9zYy1hZy1ncmlkLXBhZ2luYXRpb24+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8IS0tPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tPlxyXG4gIDwhLS0gQUctR1JJRCBQQUdJTkFUSU9OIEVORCAtLT5cclxuICA8IS0tPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tPlxyXG48L2Rpdj5cclxuXHJcbjxkaXZcclxuICAqbmdJZj1cInNob3dNZW51RGVmYXVsdFwiXHJcbiAgb25jb250ZXh0bWVudT1cInJldHVybiBmYWxzZTtcIlxyXG4gIHN0eWxlPVwicG9zaXRpb246IGZpeGVkOyB3aWR0aDogMHB4OyBoZWlnaHQ6IDBweFwiXHJcbiAgW25nU3R5bGVdPVwieyB0b3A6IGJvdHRvbU1lbnUgKyAncHgnLCBsZWZ0OiBsZWZ0TWVudSArICdweCcgfVwiPlxyXG4gIDxtYXQtbWVudSBvbmNvbnRleHRtZW51PVwicmV0dXJuIGZhbHNlO1wiICNzY01lbnU9XCJtYXRNZW51XCI+XHJcbiAgICA8YnV0dG9uIG9uY29udGV4dG1lbnU9XCJyZXR1cm4gZmFsc2U7XCIgKGNsaWNrKT1cImNvcHlNZW51KGNlbGxDb250ZXh0TWVudUFjdHVhbCEpXCIgbWF0LW1lbnUtaXRlbT5cclxuICAgICAgPG1hdC1pY29uPmNvbnRlbnRfY29weTwvbWF0LWljb24+IDxzcGFuPkNvcGlhcjwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRQYXN0ZU1lbnVcIiBvbmNvbnRleHRtZW51PVwicmV0dXJuIGZhbHNlO1wiIChjbGljayk9XCJwYXN0ZU1lbnUoY2VsbENvbnRleHRNZW51QWN0dWFsISlcIiBtYXQtbWVudS1pdGVtPlxyXG4gICAgICA8bWF0LWljb24+Y29udGVudF9wYXN0ZTwvbWF0LWljb24+PHNwYW4+UGVnYXI8L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L21hdC1tZW51PlxyXG4gIDxidXR0b24gb25jb250ZXh0bWVudT1cInJldHVybiBmYWxzZTtcIiBzdHlsZT1cInZpc2liaWxpdHk6IGhpZGRlblwiIG1hdC1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cInNjTWVudVwiICNtZW51VHJpZ2dlcj1cIm1hdE1lbnVUcmlnZ2VyXCI+XHJcbiAgICBNZW51XHJcbiAgPC9idXR0b24+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -7,7 +7,17 @@ export class ScAgGridPaginationComponent {
|
|
|
7
7
|
constructor(_changeRef) {
|
|
8
8
|
this._changeRef = _changeRef;
|
|
9
9
|
this.idScAgGridPaginationComponent = `sc-ag-grid-paginatio-${++nextId}`;
|
|
10
|
+
/**
|
|
11
|
+
* @description Tamaño de página para la paginación
|
|
12
|
+
* @default 15
|
|
13
|
+
* @type number
|
|
14
|
+
*/
|
|
10
15
|
this.paginationPageSize = 15;
|
|
16
|
+
/**
|
|
17
|
+
* @description Opciones de tamaño de página disponibles
|
|
18
|
+
* @default "[5, 10, 15, 20, 25]"
|
|
19
|
+
* @type number[]
|
|
20
|
+
*/
|
|
11
21
|
this.pageSizeOptions = [5, 10, 15, 20, 25];
|
|
12
22
|
this.pages = [];
|
|
13
23
|
}
|
|
@@ -77,4 +87,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
77
87
|
}], pageSizeOptions: [{
|
|
78
88
|
type: Input
|
|
79
89
|
}] } });
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtYWctZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zdW1heC1lcnAtY29tcG9uZW50L3NyYy9saWIvc2MtYWctZ3JpZC9zYy1hZy1ncmlkLXBhZ2luYXRpb24vc2MtYWctZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zdW1heC1lcnAtY29tcG9uZW50L3NyYy9saWIvc2MtYWctZ3JpZC9zYy1hZy1ncmlkLXBhZ2luYXRpb24vc2MtYWctZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsS0FBSyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7OztBQUc1RSxJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFVZixNQUFNLE9BQU8sMkJBQTJCO0lBWXZDLFlBQTZCLFVBQTZCO1FBQTdCLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBWDFELGtDQUE2QixHQUFHLHdCQUF3QixFQUFFLE1BQU0sRUFBRSxDQUFDO1FBRTFELHVCQUFrQixHQUFHLEVBQUUsQ0FBQztRQUV4QixvQkFBZSxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBSy9DLFVBQUssR0FBYSxFQUFFLENBQUM7SUFFd0MsQ0FBQztJQUU5RCxRQUFRO1FBQ1AsSUFBSSxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzdELCtEQUErRDtZQUMvRCxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLGtCQUFrQixD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LEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDaEMsQ0FBQztZQUVELElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDaEMsQ0FBQztJQUNGLENBQUM7K0dBaEZXLDJCQUEyQjttR0FBM0IsMkJBQTJCLDRPQ2J4QyxvdEhBb0hBOzs0RkR2R2EsMkJBQTJCO2tCQVJ2QyxTQUFTOytCQUNDLHVCQUF1QixRQUczQjt3QkFDTCxNQUFNLEVBQUUsK0JBQStCO3FCQUN2QztzRkFLUSxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgSW5wdXQsIENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEdyaWRBcGkgfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XHJcblxyXG5sZXQgbmV4dElkID0gMDtcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnc2MtYWctZ3JpZC1wYWdpbmF0aW9uJyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vc2MtYWctZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybHM6IFsnLi9zYy1hZy1ncmlkLXBhZ2luYXRpb24uY29tcG9uZW50LnNjc3MnXSxcclxuXHRob3N0OiB7XHJcblx0XHQnW2lkXSc6ICdpZFNjQWdHcmlkUGFnaW5hdGlvbkNvbXBvbmVudCcsXHJcblx0fSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNjQWdHcmlkUGFnaW5hdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblx0aWRTY0FnR3JpZFBhZ2luYXRpb25Db21wb25lbnQgPSBgc2MtYWctZ3JpZC1wYWdpbmF0aW8tJHsrK25leHRJZH1gO1xyXG5cclxuXHRASW5wdXQoKSBwYWdpbmF0aW9uUGFnZVNpemUgPSAxNTtcclxuXHRASW5wdXQoKSBncmlkQXBpPzogR3JpZEFwaTtcclxuXHRASW5wdXQoKSBwYWdlU2l6ZU9wdGlvbnMgPSBbNSwgMTAsIDE1LCAyMCwgMjVdO1xyXG5cclxuXHRfcGFnZUZyb20hOiBudW1iZXI7XHJcblx0X3BhZ2VVcCE6IG51bWJlcjtcclxuXHRfcGFnZUZvdW5kITogYm9vbGVhbjtcclxuXHRwYWdlczogbnVtYmVyW10gPSBbXTtcclxuXHJcblx0Y29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBfY2hhbmdlUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge31cclxuXHJcblx0bmdPbkluaXQoKTogdm9pZCB7XHJcblx0XHRpZiAodGhpcy5wYWdlU2l6ZU9wdGlvbnMgJiYgdGhpcy5wYWdlU2l6ZU9wdGlvbnMubGVuZ3RoID4gMCkge1xyXG5cdFx0XHQvLyBlc3RhYmxlY2VyIGxhIHDDoWdpbmEgc2kgbGEgbWF0cml6IGRlIGVsZW1lbnRvcyBubyBlc3TDoSB2YWPDrWFcclxuXHRcdFx0aWYgKHRoaXMucGFnZVNpemVPcHRpb25zLmZpbHRlcigocCkgPT4gcCA9PT0gdGhpcy5wYWdpbmF0aW9uUGFnZVNpemUpLmxlbmd0aCA9PSAwKSB7XHJcblx0XHRcdFx0dGhpcy5wYWdpbmF0aW9uUGFnZVNpemUgPSB0aGlzLnBhZ2VTaXplT3B0aW9uc1swXTtcclxuXHRcdFx0fVxyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy5wYWdlU2l6ZU9wdGlvbnMgPSBbNSwgMTAsIDE1LCAyMCwgMjVdO1xyXG5cdFx0XHR0aGlzLnBhZ2luYXRpb25QYWdlU2l6ZSA9IHRoaXMucGFnZVNpemVPcHRpb25zWzBdO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMub25QYWdpbmF0aW9uQ2hhbmdlZCgpO1xyXG5cdH1cclxuXHJcblx0b25QYWdpbmF0aW9uR29Ub0ZpcnN0UGFnZSgpOiB2b2lkIHtcclxuXHRcdHRoaXMuZ3JpZEFwaT8ucGFnaW5hdGlvbkdvVG9GaXJzdFBhZ2UoKTtcclxuXHR9XHJcblxyXG5cdG9uUGFnaW5hdGlvbkdvVG9QcmV2aW91c1BhZ2UoKTogdm9pZCB7XHJcblx0XHR0aGlzLmdyaWRBcGk/LnBhZ2luYXRpb25Hb1RvUHJldmlvdXNQYWdlKCk7XHJcblx0fVxyXG5cclxuXHRvblBhZ2luYXRpb25Hb1RvUGFnZShwYWdlOiBudW1iZXIpOiB2b2lkIHtcclxuXHRcdHRoaXMuZ3JpZEFwaT8ucGFnaW5hdGlvbkdvVG9QYWdlKHBhZ2UpO1xyXG5cdH1cclxuXHJcblx0b25QYWdpbmF0aW9uR29Ub05leHRQYWdlKCk6IHZvaWQge1xyXG5cdFx0dGhpcy5ncmlkQXBpPy5wYWdpbmF0aW9uR29Ub05leHRQYWdlKCk7XHJcblx0fVxyXG5cclxuXHRvblBhZ2luYXRpb25Hb1RvTGFzdFBhZ2UoKTogdm9pZCB7XHJcblx0XHR0aGlzLmdyaWRBcGk/LnBhZ2luYXRpb25Hb1RvTGFzdFBhZ2UoKTtcclxuXHR9XHJcblxyXG5cdG9uUGFnZVNpemVDaGFuZ2VkKGV2dDogYW55KTogdm9pZCB7XHJcblx0XHR0aGlzLmdyaWRBcGk/LnBhZ2luYXRpb25TZXRQYWdlU2l6ZShOdW1iZXIoZXZ0LnRhcmdldC52YWx1ZSkpO1xyXG5cdH1cclxuXHJcblx0b25QYWdpbmF0aW9uQ2hhbmdlZCgpOiB2b2lkIHtcclxuXHRcdGlmICghdGhpcy5ncmlkQXBpKSByZXR1cm47XHJcblxyXG5cdFx0aWYgKHRoaXMuZ3JpZEFwaS5wYWdpbmF0aW9uR2V0Um93Q291bnQoKSA+IC0xKSB7XHJcblx0XHRcdHRoaXMuX3BhZ2VGb3VuZCA9IHRoaXMuZ3JpZEFwaS5wYWdpbmF0aW9uR2V0VG90YWxQYWdlcygpIDwgMTtcclxuXHRcdFx0dGhpcy5fcGFnZUZyb20gPSBNYXRoLm1pbihcclxuXHRcdFx0XHRNYXRoLm1heCgxLCB0aGlzLmdyaWRBcGkucGFnaW5hdGlvbkdldEN1cnJlbnRQYWdlKCkgLSAyKSxcclxuXHRcdFx0XHR0aGlzLmdyaWRBcGkucGFnaW5hdGlvbkdldFRvdGFsUGFnZXMoKSAtIDJcclxuXHRcdFx0KTtcclxuXHRcdFx0dGhpcy5fcGFnZVVwID0gTWF0aC5tYXgoXHJcblx0XHRcdFx0TWF0aC5taW4oXHJcblx0XHRcdFx0XHR0aGlzLmdyaWRBcGkucGFnaW5hdGlvbkdldFRvdGFsUGFnZXMoKSxcclxuXHRcdFx0XHRcdHRoaXMuZ3JpZEFwaS5wYWdpbmF0aW9uR2V0Q3VycmVudFBhZ2UoKSArIDJcclxuXHRcdFx0XHQpLFxyXG5cdFx0XHRcdDVcclxuXHRcdFx0KTtcclxuXHRcdFx0aWYgKHRoaXMuZ3JpZEFwaS5wYWdpbmF0aW9uR2V0VG90YWxQYWdlcygpID4gNSkge1xyXG5cdFx0XHRcdHRoaXMucGFnZXMgPSBuZXcgQXJyYXkodGhpcy5fcGFnZVVwIC0gdGhpcy5fcGFnZUZyb20gKyAxKVxyXG5cdFx0XHRcdFx0LmZpbGwoMClcclxuXHRcdFx0XHRcdC5tYXAoKF8sIGluZGV4KSA9PiBpbmRleCArIHRoaXMuX3BhZ2VGcm9tKTtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHR0aGlzLnBhZ2VzID0gbmV3IEFycmF5KHRoaXMuZ3JpZEFwaS5wYWdpbmF0aW9uR2V0VG90YWxQYWdlcygpKVxyXG5cdFx0XHRcdFx0LmZpbGwoMClcclxuXHRcdFx0XHRcdC5tYXAoKF8sIGluZGV4KSA9PiBpbmRleCArIDEpO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHR0aGlzLl9jaGFuZ2VSZWYubWFya0ZvckNoZWNrKCk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiIsIjxkaXZcclxuICBjbGFzcz1cImQtZmxleCBtdC0yIGp1c3RpZnktY29udGVudC1jZW50ZXIganVzdGlmeS1jb250ZW50LXNtLWJldHdlZW4gc2MtYWctZ3JpZF9fcGFnaW5hdGlvblwiXHJcbj5cclxuICA8bmF2IGNsYXNzPVwiZC1mbGV4IGZsZXgtd3JhcFwiIGFyaWEtbGFiZWw9XCJBZ0dyaWQgcGFnaW5hdGlvblwiPlxyXG4gICAgPHVsIGNsYXNzPVwicGFnaW5hdGlvbiBwLTAgbS0wXCI+XHJcbiAgICAgIDxsaVxyXG4gICAgICAgIGNsYXNzPVwicGFnZS1pdGVtXCJcclxuICAgICAgICBbbmdDbGFzc109XCJcclxuICAgICAgICAgIGdyaWRBcGk/LnBhZ2luYXRpb25HZXRDdXJyZW50UGFnZSgpID09IDAgfHwgcGFnZXMubGVuZ3RoID09IDBcclxuICAgICAgICAgICAgPyAnZGlzYWJsZWQnXHJcbiAgICAgICAgICAgIDogJydcclxuICAgICAgICBcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGEgY2xhc3M9XCJwYWdlLWxpbmtcIiAoY2xpY2spPVwib25QYWdpbmF0aW9uR29Ub0ZpcnN0UGFnZSgpXCJcclxuICAgICAgICAgID48ZW0gY2xhc3M9XCJmYSBmYS1hbmdsZS1kb3VibGUtbGVmdFwiPjwvZW1cclxuICAgICAgICA+PC9hPlxyXG4gICAgICA8L2xpPlxyXG4gICAgICA8bGlcclxuICAgICAgICBjbGFzcz1cInBhZ2UtaXRlbVwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwiXHJcbiAgICAgICAgICBncmlkQXBpPy5wYWdpbmF0aW9uR2V0Q3VycmVudFBhZ2UoKSA9PSAwIHx8IHBhZ2VzLmxlbmd0aCA9PSAwXHJcbiAgICAgICAgICAgID8gJ2Rpc2FibGVkJ1xyXG4gICAgICAgICAgICA6ICcnXHJcbiAgICAgICAgXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxhIGNsYXNzPVwicGFnZS1saW5rXCIgKGNsaWNrKT1cIm9uUGFnaW5hdGlvbkdvVG9QcmV2aW91c1BhZ2UoKVwiXHJcbiAgICAgICAgICA+PGVtIGNsYXNzPVwiZmEgZmEtYW5nbGUtbGVmdFwiPjwvZW1cclxuICAgICAgICA+PC9hPlxyXG4gICAgICA8L2xpPlxyXG5cclxuICAgICAgPGxpXHJcbiAgICAgICAgY2xhc3M9XCJwYWdlLWl0ZW1cIlxyXG4gICAgICAgICpuZ0Zvcj1cImxldCBwYWdlIG9mIHBhZ2VzXCJcclxuICAgICAgICBbbmdDbGFzc109XCJcclxuICAgICAgICAgIHBhZ2UgLSAxID09IGdyaWRBcGk/LnBhZ2luYXRpb25HZXRDdXJyZW50UGFnZSgpID8gJ2FjdGl2ZScgOiAnJ1xyXG4gICAgICAgIFwiXHJcbiAgICAgID5cclxuICAgICAgICA8c3BhblxyXG4gICAgICAgICAgY2xhc3M9XCJwYWdlLWxpbmtcIlxyXG4gICAgICAgICAgKm5nSWY9XCJwYWdlIC0gMSA9PSBncmlkQXBpPy5wYWdpbmF0aW9uR2V0Q3VycmVudFBhZ2UoKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge3sgcGFnZSB9fVxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8YVxyXG4gICAgICAgICAgY2xhc3M9XCJwYWdlLWxpbmtcIlxyXG4gICAgICAgICAgKm5nSWY9XCJwYWdlIC0gMSAhPSBncmlkQXBpPy5wYWdpbmF0aW9uR2V0Q3VycmVudFBhZ2UoKVwiXHJcbiAgICAgICAgICAoY2xpY2spPVwib25QYWdpbmF0aW9uR29Ub1BhZ2UocGFnZSAtIDEpXCJcclxuICAgICAgICAgID57eyBwYWdlIH19PC9hXHJcbiAgICAgICAgPlxyXG4gICAgICA8L2xpPlxyXG5cclxuICAgICAgPGxpXHJcbiAgICAgICAgY2xhc3M9XCJwYWdlLWl0ZW1cIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cIlxyXG4gICAgICAgICAgZ3JpZEFwaT8ucGFnaW5hdGlvbkdldEN1cnJlbnRQYWdlKCkgPT1cclxuICAgICAgICAgICAgKGdyaWRBcGk/LnBhZ2luYXRpb25HZXRUb3RhbFBhZ2VzKCkgfHwgMSkgLSAxIHx8IHBhZ2VzLmxlbmd0aCA9PSAwXHJcbiAgICAgICAgICAgID8gJ2Rpc2FibGVkJ1xyXG4gICAgICAgICAgICA6ICcnXHJcbiAgICAgICAgXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxhIGNsYXNzPVwicGFnZS1saW5rXCIgKGNsaWNrKT1cIm9uUGFnaW5hdGlvbkdvVG9OZXh0UGFnZSgpXCJcclxuICAgICAgICAgID48ZW0gY2xhc3M9XCJmYSBmYS1hbmdsZS1yaWdodFwiPjwvZW1cclxuICAgICAgICA+PC9hPlxyXG4gICAgICA8L2xpPlxyXG4gICAgICA8bGlcclxuICAgICAgICBjbGFzcz1cInBhZ2UtaXRlbVwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwiXHJcbiAgICAgICAgICBncmlkQXBpPy5wYWdpbmF0aW9uR2V0Q3VycmVudFBhZ2UoKSA9PVxyXG4gICAgICAgICAgICAoZ3JpZEFwaT8ucGFnaW5hdGlvbkdldFRvdGFsUGFnZXMoKSB8fCAxKSAtIDEgfHwgcGFnZXMubGVuZ3RoID09IDBcclxuICAgICAgICAgICAgPyAnZGlzYWJsZWQnXHJcbiAgICAgICAgICAgIDogJydcclxuICAgICAgICBcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGEgY2xhc3M9XCJwYWdlLWxpbmtcIiAoY2xpY2spPVwib25QYWdpbmF0aW9uR29Ub0xhc3RQYWdlKClcIlxyXG4gICAgICAgICAgPjxlbSBjbGFzcz1cImZhIGZhLWFuZ2xlLWRvdWJsZS1yaWdodFwiPjwvZW1cclxuICAgICAgICA+PC9hPlxyXG4gICAgICA8L2xpPlxyXG4gICAgPC91bD5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggbXgtMiBhbGlnbi1pdGVtcy1jZW50ZXIgaW5wdXQtZ3JvdXAtc21cIj5cclxuICAgICAgTW9zdHJhclxyXG4gICAgICA8c2VsZWN0XHJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJwYWdpbmF0aW9uUGFnZVNpemVcIlxyXG4gICAgICAgIChjaGFuZ2UpPVwib25QYWdlU2l6ZUNoYW5nZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgY2xhc3M9XCJjdXN0b20tc2VsZWN0IG14LTJcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIHBhZ2VTaXplT3B0aW9uc1wiIFt2YWx1ZV09XCJvcHRpb25cIj5cclxuICAgICAgICAgIHt7IG9wdGlvbiB9fVxyXG4gICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICA8L3NlbGVjdD5cclxuICAgICAgcmVnaXN0cm9zXHJcbiAgICA8L2Rpdj5cclxuICA8L25hdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIG10LTIgbXQtc20tMFwiPlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cInNjLWFnLWdyaWRfX3BhZ2luYXRpb24tLXRvdGFsIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC1ub3dyYXBcIlxyXG4gICAgPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+e3sgZ3JpZEFwaT8ucGFnaW5hdGlvbkdldFJvd0NvdW50KCkgfX0mbmJzcDs8L3NwYW4+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWxcIj57e1xyXG4gICAgICAgIGdyaWRBcGk/LnBhZ2luYXRpb25HZXRSb3dDb3VudCgpID8/IDAgPiAxID8gXCJSZWdpc3Ryb3MuXCIgOiBcIlJlZ2lzdHJvLlwiXHJcbiAgICAgIH19PC9zcGFuPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImxhYmVsXCI+Jm5ic3A7UCZhYWN1dGU7Z2luYSZuYnNwOzwvc3Bhbj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPlxyXG4gICAgICAgIHt7IChncmlkQXBpPy5wYWdpbmF0aW9uR2V0Q3VycmVudFBhZ2UoKSA/PyAwKSArIDEgfX1cclxuICAgICAgPC9zcGFuPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImxhYmVsXCI+Jm5ic3A7ZGUmbmJzcDs8L3NwYW4+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cclxuICAgICAgICB7e1xyXG4gICAgICAgICAgZ3JpZEFwaT8ucGFnaW5hdGlvbkdldFRvdGFsUGFnZXMoKSA9PSAwXHJcbiAgICAgICAgICAgID8gMVxyXG4gICAgICAgICAgICA6IGdyaWRBcGk/LnBhZ2luYXRpb25HZXRUb3RhbFBhZ2VzKCkgPz8gMFxyXG4gICAgICAgIH19XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtYWctZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zdW1heC1lcnAtY29tcG9uZW50L3NyYy9saWIvc2MtYWctZ3JpZC9zYy1hZy1ncmlkLXBhZ2luYXRpb24vc2MtYWctZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zdW1heC1lcnAtY29tcG9uZW50L3NyYy9saWIvc2MtYWctZ3JpZC9zYy1hZy1ncmlkLXBhZ2luYXRpb24vc2MtYWctZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsS0FBSyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7OztBQUc1RSxJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFVZixNQUFNLE9BQU8sMkJBQTJCO0lBNkJ2QyxZQUE2QixVQUE2QjtRQUE3QixlQUFVLEdBQVYsVUFBVSxDQUFtQjtRQTVCMUQsa0NBQTZCLEdBQUcsd0JBQXdCLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFFbkU7Ozs7V0FJRztRQUNNLHVCQUFrQixHQUFHLEVBQUUsQ0FBQztRQVNqQzs7OztXQUlHO1FBQ00sb0JBQWUsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUsvQyxVQUFLLEdBQWEsRUFBRSxDQUFDO0lBRXdDLENBQUM7SUFFOUQsUUFBUTtRQUNQLElBQUksSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM3RCwrREFBK0Q7WUFDL0QsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDbkYsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkQsQ0FBQztRQUNGLENBQUM7YUFBTSxDQUFDO1lBQ1AsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMzQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuRCxDQUFDO1FBRUQsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELHlCQUF5QjtRQUN4QixJQUFJLENBQUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVELDRCQUE0QjtRQUMzQixJQUFJLENBQUMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVELG9CQUFvQixDQUFDLElBQVk7UUFDaEMsSUFBSSxDQUFDLE9BQU8sRUFBRSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsd0JBQXdCO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsd0JBQXdCO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsaUJBQWlCLENBQUMsR0FBUTtRQUN6QixJQUFJLENBQUMsT0FBTyxFQUFFLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELG1CQUFtQjtRQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPO1FBRTFCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDL0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLHVCQUF1QixFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQzdELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FDeEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyx3QkFBd0IsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUN4RCxJQUFJLENBQUMsT0FBTyxDQUFDLHVCQUF1QixFQUFFLEdBQUcsQ0FBQyxDQUMxQyxDQUFDO1lBQ0YsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUN0QixJQUFJLENBQUMsR0FBRyxDQUNQLElBQUksQ0FBQyxPQUFPLENBQUMsdUJBQXVCLEVBQUUsRUFDdEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyx3QkFBd0IsRUFBRSxHQUFHLENBQUMsQ0FDM0MsRUFDRCxDQUFDLENBQ0QsQ0FBQztZQUNGLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNoRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7cUJBQ3ZELElBQUksQ0FBQyxDQUFDLENBQUM7cUJBQ1AsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM3QyxDQUFDO2lCQUFNLENBQUM7Z0JBQ1AsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLHVCQUF1QixFQUFFLENBQUM7cUJBQzVELElBQUksQ0FBQyxDQUFDLENBQUM7cUJBQ1AsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ2hDLENBQUM7WUFFRCxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ2hDLENBQUM7SUFDRixDQUFDOytHQWpHVywyQkFBMkI7bUdBQTNCLDJCQUEyQiw0T0NieEMsb3RIQW9IQTs7NEZEdkdhLDJCQUEyQjtrQkFSdkMsU0FBUzsrQkFDQyx1QkFBdUIsUUFHM0I7d0JBQ0wsTUFBTSxFQUFFLCtCQUErQjtxQkFDdkM7c0ZBVVEsa0JBQWtCO3NCQUExQixLQUFLO2dCQU9HLE9BQU87c0JBQWYsS0FBSztnQkFPRyxlQUFlO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIElucHV0LCBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBHcmlkQXBpIH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xyXG5cclxubGV0IG5leHRJZCA9IDA7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ3NjLWFnLWdyaWQtcGFnaW5hdGlvbicsXHJcblx0dGVtcGxhdGVVcmw6ICcuL3NjLWFnLWdyaWQtcGFnaW5hdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcblx0c3R5bGVVcmxzOiBbJy4vc2MtYWctZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5zY3NzJ10sXHJcblx0aG9zdDoge1xyXG5cdFx0J1tpZF0nOiAnaWRTY0FnR3JpZFBhZ2luYXRpb25Db21wb25lbnQnLFxyXG5cdH0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTY0FnR3JpZFBhZ2luYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cdGlkU2NBZ0dyaWRQYWdpbmF0aW9uQ29tcG9uZW50ID0gYHNjLWFnLWdyaWQtcGFnaW5hdGlvLSR7KytuZXh0SWR9YDtcclxuXHJcblx0LyoqXHJcblx0ICogQGRlc2NyaXB0aW9uIFRhbWHDsW8gZGUgcMOhZ2luYSBwYXJhIGxhIHBhZ2luYWNpw7NuXHJcblx0ICogQGRlZmF1bHQgMTVcclxuXHQgKiBAdHlwZSBudW1iZXJcclxuXHQgKi9cclxuXHRASW5wdXQoKSBwYWdpbmF0aW9uUGFnZVNpemUgPSAxNTtcclxuXHRcclxuXHQvKipcclxuXHQgKiBAZGVzY3JpcHRpb24gQVBJIGRlIGxhIGdyaWxsYSBBRyBHcmlkXHJcblx0ICogQGRlZmF1bHQgdW5kZWZpbmVkXHJcblx0ICogQHR5cGUgR3JpZEFwaVxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpIGdyaWRBcGk/OiBHcmlkQXBpO1xyXG5cdFxyXG5cdC8qKlxyXG5cdCAqIEBkZXNjcmlwdGlvbiBPcGNpb25lcyBkZSB0YW1hw7FvIGRlIHDDoWdpbmEgZGlzcG9uaWJsZXNcclxuXHQgKiBAZGVmYXVsdCBcIls1LCAxMCwgMTUsIDIwLCAyNV1cIlxyXG5cdCAqIEB0eXBlIG51bWJlcltdXHJcblx0ICovXHJcblx0QElucHV0KCkgcGFnZVNpemVPcHRpb25zID0gWzUsIDEwLCAxNSwgMjAsIDI1XTtcclxuXHJcblx0X3BhZ2VGcm9tITogbnVtYmVyO1xyXG5cdF9wYWdlVXAhOiBudW1iZXI7XHJcblx0X3BhZ2VGb3VuZCE6IGJvb2xlYW47XHJcblx0cGFnZXM6IG51bWJlcltdID0gW107XHJcblxyXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgX2NoYW5nZVJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XHJcblxyXG5cdG5nT25Jbml0KCk6IHZvaWQge1xyXG5cdFx0aWYgKHRoaXMucGFnZVNpemVPcHRpb25zICYmIHRoaXMucGFnZVNpemVPcHRpb25zLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0Ly8gZXN0YWJsZWNlciBsYSBww6FnaW5hIHNpIGxhIG1hdHJpeiBkZSBlbGVtZW50b3Mgbm8gZXN0w6EgdmFjw61hXHJcblx0XHRcdGlmICh0aGlzLnBhZ2VTaXplT3B0aW9ucy5maWx0ZXIoKHApID0+IHAgPT09IHRoaXMucGFnaW5hdGlvblBhZ2VTaXplKS5sZW5ndGggPT0gMCkge1xyXG5cdFx0XHRcdHRoaXMucGFnaW5hdGlvblBhZ2VTaXplID0gdGhpcy5wYWdlU2l6ZU9wdGlvbnNbMF07XHJcblx0XHRcdH1cclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMucGFnZVNpemVPcHRpb25zID0gWzUsIDEwLCAxNSwgMjAsIDI1XTtcclxuXHRcdFx0dGhpcy5wYWdpbmF0aW9uUGFnZVNpemUgPSB0aGlzLnBhZ2VTaXplT3B0aW9uc1swXTtcclxuXHRcdH1cclxuXHJcblx0XHR0aGlzLm9uUGFnaW5hdGlvbkNoYW5nZWQoKTtcclxuXHR9XHJcblxyXG5cdG9uUGFnaW5hdGlvbkdvVG9GaXJzdFBhZ2UoKTogdm9pZCB7XHJcblx0XHR0aGlzLmdyaWRBcGk/LnBhZ2luYXRpb25Hb1RvRmlyc3RQYWdlKCk7XHJcblx0fVxyXG5cclxuXHRvblBhZ2luYXRpb25Hb1RvUHJldmlvdXNQYWdlKCk6IHZvaWQge1xyXG5cdFx0dGhpcy5ncmlkQXBpPy5wYWdpbmF0aW9uR29Ub1ByZXZpb3VzUGFnZSgpO1xyXG5cdH1cclxuXHJcblx0b25QYWdpbmF0aW9uR29Ub1BhZ2UocGFnZTogbnVtYmVyKTogdm9pZCB7XHJcblx0XHR0aGlzLmdyaWRBcGk/LnBhZ2luYXRpb25Hb1RvUGFnZShwYWdlKTtcclxuXHR9XHJcblxyXG5cdG9uUGFnaW5hdGlvbkdvVG9OZXh0UGFnZSgpOiB2b2lkIHtcclxuXHRcdHRoaXMuZ3JpZEFwaT8ucGFnaW5hdGlvbkdvVG9OZXh0UGFnZSgpO1xyXG5cdH1cclxuXHJcblx0b25QYWdpbmF0aW9uR29Ub0xhc3RQYWdlKCk6IHZvaWQge1xyXG5cdFx0dGhpcy5ncmlkQXBpPy5wYWdpbmF0aW9uR29Ub0xhc3RQYWdlKCk7XHJcblx0fVxyXG5cclxuXHRvblBhZ2VTaXplQ2hhbmdlZChldnQ6IGFueSk6IHZvaWQge1xyXG5cdFx0dGhpcy5ncmlkQXBpPy5wYWdpbmF0aW9uU2V0UGFnZVNpemUoTnVtYmVyKGV2dC50YXJnZXQudmFsdWUpKTtcclxuXHR9XHJcblxyXG5cdG9uUGFnaW5hdGlvbkNoYW5nZWQoKTogdm9pZCB7XHJcblx0XHRpZiAoIXRoaXMuZ3JpZEFwaSkgcmV0dXJuO1xyXG5cclxuXHRcdGlmICh0aGlzLmdyaWRBcGkucGFnaW5hdGlvbkdldFJvd0NvdW50KCkgPiAtMSkge1xyXG5cdFx0XHR0aGlzLl9wYWdlRm91bmQgPSB0aGlzLmdyaWRBcGkucGFnaW5hdGlvbkdldFRvdGFsUGFnZXMoKSA8IDE7XHJcblx0XHRcdHRoaXMuX3BhZ2VGcm9tID0gTWF0aC5taW4oXHJcblx0XHRcdFx0TWF0aC5tYXgoMSwgdGhpcy5ncmlkQXBpLnBhZ2luYXRpb25HZXRDdXJyZW50UGFnZSgpIC0gMiksXHJcblx0XHRcdFx0dGhpcy5ncmlkQXBpLnBhZ2luYXRpb25HZXRUb3RhbFBhZ2VzKCkgLSAyXHJcblx0XHRcdCk7XHJcblx0XHRcdHRoaXMuX3BhZ2VVcCA9IE1hdGgubWF4KFxyXG5cdFx0XHRcdE1hdGgubWluKFxyXG5cdFx0XHRcdFx0dGhpcy5ncmlkQXBpLnBhZ2luYXRpb25HZXRUb3RhbFBhZ2VzKCksXHJcblx0XHRcdFx0XHR0aGlzLmdyaWRBcGkucGFnaW5hdGlvbkdldEN1cnJlbnRQYWdlKCkgKyAyXHJcblx0XHRcdFx0KSxcclxuXHRcdFx0XHQ1XHJcblx0XHRcdCk7XHJcblx0XHRcdGlmICh0aGlzLmdyaWRBcGkucGFnaW5hdGlvbkdldFRvdGFsUGFnZXMoKSA+IDUpIHtcclxuXHRcdFx0XHR0aGlzLnBhZ2VzID0gbmV3IEFycmF5KHRoaXMuX3BhZ2VVcCAtIHRoaXMuX3BhZ2VGcm9tICsgMSlcclxuXHRcdFx0XHRcdC5maWxsKDApXHJcblx0XHRcdFx0XHQubWFwKChfLCBpbmRleCkgPT4gaW5kZXggKyB0aGlzLl9wYWdlRnJvbSk7XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0dGhpcy5wYWdlcyA9IG5ldyBBcnJheSh0aGlzLmdyaWRBcGkucGFnaW5hdGlvbkdldFRvdGFsUGFnZXMoKSlcclxuXHRcdFx0XHRcdC5maWxsKDApXHJcblx0XHRcdFx0XHQubWFwKChfLCBpbmRleCkgPT4gaW5kZXggKyAxKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0dGhpcy5fY2hhbmdlUmVmLm1hcmtGb3JDaGVjaygpO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgY2xhc3M9XCJkLWZsZXggbXQtMiBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGp1c3RpZnktY29udGVudC1zbS1iZXR3ZWVuIHNjLWFnLWdyaWRfX3BhZ2luYXRpb25cIlxyXG4+XHJcbiAgPG5hdiBjbGFzcz1cImQtZmxleCBmbGV4LXdyYXBcIiBhcmlhLWxhYmVsPVwiQWdHcmlkIHBhZ2luYXRpb25cIj5cclxuICAgIDx1bCBjbGFzcz1cInBhZ2luYXRpb24gcC0wIG0tMFwiPlxyXG4gICAgICA8bGlcclxuICAgICAgICBjbGFzcz1cInBhZ2UtaXRlbVwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwiXHJcbiAgICAgICAgICBncmlkQXBpPy5wYWdpbmF0aW9uR2V0Q3VycmVudFBhZ2UoKSA9PSAwIHx8IHBhZ2VzLmxlbmd0aCA9PSAwXHJcbiAgICAgICAgICAgID8gJ2Rpc2FibGVkJ1xyXG4gICAgICAgICAgICA6ICcnXHJcbiAgICAgICAgXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxhIGNsYXNzPVwicGFnZS1saW5rXCIgKGNsaWNrKT1cIm9uUGFnaW5hdGlvbkdvVG9GaXJzdFBhZ2UoKVwiXHJcbiAgICAgICAgICA+PGVtIGNsYXNzPVwiZmEgZmEtYW5nbGUtZG91YmxlLWxlZnRcIj48L2VtXHJcbiAgICAgICAgPjwvYT5cclxuICAgICAgPC9saT5cclxuICAgICAgPGxpXHJcbiAgICAgICAgY2xhc3M9XCJwYWdlLWl0ZW1cIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cIlxyXG4gICAgICAgICAgZ3JpZEFwaT8ucGFnaW5hdGlvbkdldEN1cnJlbnRQYWdlKCkgPT0gMCB8fCBwYWdlcy5sZW5ndGggPT0gMFxyXG4gICAgICAgICAgICA/ICdkaXNhYmxlZCdcclxuICAgICAgICAgICAgOiAnJ1xyXG4gICAgICAgIFwiXHJcbiAgICAgID5cclxuICAgICAgICA8YSBjbGFzcz1cInBhZ2UtbGlua1wiIChjbGljayk9XCJvblBhZ2luYXRpb25Hb1RvUHJldmlvdXNQYWdlKClcIlxyXG4gICAgICAgICAgPjxlbSBjbGFzcz1cImZhIGZhLWFuZ2xlLWxlZnRcIj48L2VtXHJcbiAgICAgICAgPjwvYT5cclxuICAgICAgPC9saT5cclxuXHJcbiAgICAgIDxsaVxyXG4gICAgICAgIGNsYXNzPVwicGFnZS1pdGVtXCJcclxuICAgICAgICAqbmdGb3I9XCJsZXQgcGFnZSBvZiBwYWdlc1wiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwiXHJcbiAgICAgICAgICBwYWdlIC0gMSA9PSBncmlkQXBpPy5wYWdpbmF0aW9uR2V0Q3VycmVudFBhZ2UoKSA/ICdhY3RpdmUnIDogJydcclxuICAgICAgICBcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPHNwYW5cclxuICAgICAgICAgIGNsYXNzPVwicGFnZS1saW5rXCJcclxuICAgICAgICAgICpuZ0lmPVwicGFnZSAtIDEgPT0gZ3JpZEFwaT8ucGFnaW5hdGlvbkdldEN1cnJlbnRQYWdlKClcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt7IHBhZ2UgfX1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPGFcclxuICAgICAgICAgIGNsYXNzPVwicGFnZS1saW5rXCJcclxuICAgICAgICAgICpuZ0lmPVwicGFnZSAtIDEgIT0gZ3JpZEFwaT8ucGFnaW5hdGlvbkdldEN1cnJlbnRQYWdlKClcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIm9uUGFnaW5hdGlvbkdvVG9QYWdlKHBhZ2UgLSAxKVwiXHJcbiAgICAgICAgICA+e3sgcGFnZSB9fTwvYVxyXG4gICAgICAgID5cclxuICAgICAgPC9saT5cclxuXHJcbiAgICAgIDxsaVxyXG4gICAgICAgIGNsYXNzPVwicGFnZS1pdGVtXCJcclxuICAgICAgICBbbmdDbGFzc109XCJcclxuICAgICAgICAgIGdyaWRBcGk/LnBhZ2luYXRpb25HZXRDdXJyZW50UGFnZSgpID09XHJcbiAgICAgICAgICAgIChncmlkQXBpPy5wYWdpbmF0aW9uR2V0VG90YWxQYWdlcygpIHx8IDEpIC0gMSB8fCBwYWdlcy5sZW5ndGggPT0gMFxyXG4gICAgICAgICAgICA/ICdkaXNhYmxlZCdcclxuICAgICAgICAgICAgOiAnJ1xyXG4gICAgICAgIFwiXHJcbiAgICAgID5cclxuICAgICAgICA8YSBjbGFzcz1cInBhZ2UtbGlua1wiIChjbGljayk9XCJvblBhZ2luYXRpb25Hb1RvTmV4dFBhZ2UoKVwiXHJcbiAgICAgICAgICA+PGVtIGNsYXNzPVwiZmEgZmEtYW5nbGUtcmlnaHRcIj48L2VtXHJcbiAgICAgICAgPjwvYT5cclxuICAgICAgPC9saT5cclxuICAgICAgPGxpXHJcbiAgICAgICAgY2xhc3M9XCJwYWdlLWl0ZW1cIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cIlxyXG4gICAgICAgICAgZ3JpZEFwaT8ucGFnaW5hdGlvbkdldEN1cnJlbnRQYWdlKCkgPT1cclxuICAgICAgICAgICAgKGdyaWRBcGk/LnBhZ2luYXRpb25HZXRUb3RhbFBhZ2VzKCkgfHwgMSkgLSAxIHx8IHBhZ2VzLmxlbmd0aCA9PSAwXHJcbiAgICAgICAgICAgID8gJ2Rpc2FibGVkJ1xyXG4gICAgICAgICAgICA6ICcnXHJcbiAgICAgICAgXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxhIGNsYXNzPVwicGFnZS1saW5rXCIgKGNsaWNrKT1cIm9uUGFnaW5hdGlvbkdvVG9MYXN0UGFnZSgpXCJcclxuICAgICAgICAgID48ZW0gY2xhc3M9XCJmYSBmYS1hbmdsZS1kb3VibGUtcmlnaHRcIj48L2VtXHJcbiAgICAgICAgPjwvYT5cclxuICAgICAgPC9saT5cclxuICAgIDwvdWw+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IG14LTIgYWxpZ24taXRlbXMtY2VudGVyIGlucHV0LWdyb3VwLXNtXCI+XHJcbiAgICAgIE1vc3RyYXJcclxuICAgICAgPHNlbGVjdFxyXG4gICAgICAgIFsobmdNb2RlbCldPVwicGFnaW5hdGlvblBhZ2VTaXplXCJcclxuICAgICAgICAoY2hhbmdlKT1cIm9uUGFnZVNpemVDaGFuZ2VkKCRldmVudClcIlxyXG4gICAgICAgIGNsYXNzPVwiY3VzdG9tLXNlbGVjdCBteC0yXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBwYWdlU2l6ZU9wdGlvbnNcIiBbdmFsdWVdPVwib3B0aW9uXCI+XHJcbiAgICAgICAgICB7eyBvcHRpb24gfX1cclxuICAgICAgICA8L29wdGlvbj5cclxuICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgIHJlZ2lzdHJvc1xyXG4gICAgPC9kaXY+XHJcbiAgPC9uYXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBtdC0yIG10LXNtLTBcIj5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJzYy1hZy1ncmlkX19wYWdpbmF0aW9uLS10b3RhbCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtbm93cmFwXCJcclxuICAgID5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPnt7IGdyaWRBcGk/LnBhZ2luYXRpb25HZXRSb3dDb3VudCgpIH19Jm5ic3A7PC9zcGFuPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImxhYmVsXCI+e3tcclxuICAgICAgICBncmlkQXBpPy5wYWdpbmF0aW9uR2V0Um93Q291bnQoKSA/PyAwID4gMSA/IFwiUmVnaXN0cm9zLlwiIDogXCJSZWdpc3Ryby5cIlxyXG4gICAgICB9fTwvc3Bhbj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbFwiPiZuYnNwO1AmYWFjdXRlO2dpbmEmbmJzcDs8L3NwYW4+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cclxuICAgICAgICB7eyAoZ3JpZEFwaT8ucGFnaW5hdGlvbkdldEN1cnJlbnRQYWdlKCkgPz8gMCkgKyAxIH19XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbFwiPiZuYnNwO2RlJm5ic3A7PC9zcGFuPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+XHJcbiAgICAgICAge3tcclxuICAgICAgICAgIGdyaWRBcGk/LnBhZ2luYXRpb25HZXRUb3RhbFBhZ2VzKCkgPT0gMFxyXG4gICAgICAgICAgICA/IDFcclxuICAgICAgICAgICAgOiBncmlkQXBpPy5wYWdpbmF0aW9uR2V0VG90YWxQYWdlcygpID8/IDBcclxuICAgICAgICB9fVxyXG4gICAgICA8L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -14,23 +14,113 @@ export class TextAreaComponent {
|
|
|
14
14
|
this.messageUtilService = messageUtilService;
|
|
15
15
|
this.textAreaService = textAreaService;
|
|
16
16
|
this._render = _render;
|
|
17
|
+
/**
|
|
18
|
+
* @description Formato del texto (M: mayúsculas, m: minúsculas)
|
|
19
|
+
* @default "M"
|
|
20
|
+
* @type string
|
|
21
|
+
*/
|
|
17
22
|
this.format = "M";
|
|
23
|
+
/**
|
|
24
|
+
* @description Controla la visualización del texto superior
|
|
25
|
+
* @default true
|
|
26
|
+
* @type boolean
|
|
27
|
+
*/
|
|
18
28
|
this.showLabel = true;
|
|
29
|
+
/**
|
|
30
|
+
* @description Texto a mostrar como etiqueta del campo
|
|
31
|
+
* @default null
|
|
32
|
+
* @type any
|
|
33
|
+
*/
|
|
19
34
|
this.label = null;
|
|
35
|
+
/**
|
|
36
|
+
* @description Longitud máxima del texto
|
|
37
|
+
* @default null
|
|
38
|
+
* @type number | null
|
|
39
|
+
*/
|
|
20
40
|
this.maxLength = null;
|
|
41
|
+
/**
|
|
42
|
+
* @description Establece el control como solo lectura
|
|
43
|
+
* @default false
|
|
44
|
+
* @type boolean
|
|
45
|
+
*/
|
|
21
46
|
this.readonly = false;
|
|
47
|
+
/**
|
|
48
|
+
* @description Indica si el campo es obligatorio
|
|
49
|
+
* @default false
|
|
50
|
+
* @type boolean
|
|
51
|
+
*/
|
|
22
52
|
this.required = false;
|
|
53
|
+
/**
|
|
54
|
+
* @description Muestra mensajes de validación
|
|
55
|
+
* @default false
|
|
56
|
+
* @type boolean
|
|
57
|
+
*/
|
|
23
58
|
this.validatorMessage = false;
|
|
59
|
+
/**
|
|
60
|
+
* @description Muestra alertas de validación
|
|
61
|
+
* @default false
|
|
62
|
+
* @type boolean
|
|
63
|
+
*/
|
|
24
64
|
this.validatorAlert = false;
|
|
65
|
+
/**
|
|
66
|
+
* @description Muestra mensajes de ayuda como tooltips
|
|
67
|
+
* @default true
|
|
68
|
+
* @type boolean
|
|
69
|
+
*/
|
|
25
70
|
this.tooltipMessage = true;
|
|
71
|
+
/**
|
|
72
|
+
* @description Indica si el formulario ha sido enviado para mostrar validaciones
|
|
73
|
+
* @default true
|
|
74
|
+
* @type boolean
|
|
75
|
+
*/
|
|
26
76
|
this.submitted = true;
|
|
77
|
+
/**
|
|
78
|
+
* @description Número de columnas del textarea
|
|
79
|
+
* @default null
|
|
80
|
+
* @type number | any
|
|
81
|
+
*/
|
|
27
82
|
this.cols = null;
|
|
83
|
+
/**
|
|
84
|
+
* @description Número de filas del textarea
|
|
85
|
+
* @default null
|
|
86
|
+
* @type number | any
|
|
87
|
+
*/
|
|
28
88
|
this.rows = null;
|
|
89
|
+
/**
|
|
90
|
+
* @description Altura del textarea
|
|
91
|
+
* @default ""
|
|
92
|
+
* @type string
|
|
93
|
+
*/
|
|
29
94
|
this.height = "";
|
|
95
|
+
/**
|
|
96
|
+
* @description Ancho del textarea
|
|
97
|
+
* @default ""
|
|
98
|
+
* @type string
|
|
99
|
+
*/
|
|
30
100
|
this.width = "";
|
|
101
|
+
/**
|
|
102
|
+
* @description Deshabilita el control
|
|
103
|
+
* @default false
|
|
104
|
+
* @type boolean
|
|
105
|
+
*/
|
|
31
106
|
this.disabled = false;
|
|
107
|
+
/**
|
|
108
|
+
* @description Texto de marcador de posición
|
|
109
|
+
* @default ""
|
|
110
|
+
* @type string
|
|
111
|
+
*/
|
|
32
112
|
this.placeholder = "";
|
|
113
|
+
/**
|
|
114
|
+
* @description Habilita información adicional para la etiqueta
|
|
115
|
+
* @default false
|
|
116
|
+
* @type boolean
|
|
117
|
+
*/
|
|
33
118
|
this.labelInfo = false;
|
|
119
|
+
/**
|
|
120
|
+
* @description Texto informativo adicional para la etiqueta
|
|
121
|
+
* @default ""
|
|
122
|
+
* @type string
|
|
123
|
+
*/
|
|
34
124
|
this.textLabelInfo = "";
|
|
35
125
|
this.change = new EventEmitter();
|
|
36
126
|
this.onchange = new EventEmitter();
|
|
@@ -269,4 +359,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
269
359
|
type: ViewChild,
|
|
270
360
|
args: ["textArea"]
|
|
271
361
|
}] } });
|
|
272
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1hcmVhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zdW1heC1lcnAtY29tcG9uZW50L3NyYy9saWIvdGV4dC1hcmVhL3RleHQtYXJlYS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3VtYXgtZXJwLWNvbXBvbmVudC9zcmMvbGliL3RleHQtYXJlYS90ZXh0LWFyZWEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFHTixTQUFTLEVBQ1QsVUFBVSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBeUMsYUFBYSxFQUFFLGlCQUFpQixFQUFvQixNQUFNLGdCQUFnQixDQUFDO0FBRzNILE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7Ozs7Ozs7QUFtQnJFLE1BQU0sT0FBTyxpQkFBaUI7SUFtQzVCLFlBQ1Usa0JBQXNDLEVBQ3RDLGVBQWdDLEVBQ2hDLE9BQWtCO1FBRmxCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLFlBQU8sR0FBUCxPQUFPLENBQVc7UUFyQ25CLFdBQU0sR0FBVyxHQUFHLENBQUM7UUFDckIsY0FBUyxHQUFZLElBQUksQ0FBQztRQUMxQixVQUFLLEdBQVEsSUFBSSxDQUFDO1FBQ2xCLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUsxQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUNsQyxtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUNoQyxtQkFBYyxHQUFZLElBQUksQ0FBQztRQUMvQixjQUFTLEdBQVksSUFBSSxDQUFDO1FB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SUFBSTt5QkFDWjt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsYUFBYTs0QkFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsa0JBQWtCLENBQUM7NEJBQ2hELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGOzZJQUdRLE1BQU07c0JBQWQsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0ksTUFBTTtzQkFBZixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csSUFBSTtzQkFBYixNQUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDZ0IsUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBSZW5kZXJlcjIsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBWaWV3Q2hpbGQsXHJcbiAgZm9yd2FyZFJlZixcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUiwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBUZXh0QXJlYVNlcnZpY2UgfSBmcm9tIFwiLi90ZXh0LWFyZWEuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBNZXNzYWdlVXRpbFNlcnZpY2UgfSBmcm9tIFwiLi4vdXRpbHMvbWVzc2FnZS11dGlsLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgU2hhcmVkQ29tcG9uZW50c1V0aWwgfSBmcm9tIFwiLi4vdXRpbHMvU2hhcmVkQ29tcG9uZW50c1V0aWxcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcInRleHQtYXJlYVwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vdGV4dC1hcmVhLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL3RleHQtYXJlYS5jb21wb25lbnQuc2Nzc1wiXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRleHRBcmVhQ29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUZXh0QXJlYUNvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGV4dEFyZWFDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG4gIEBJbnB1dCgpIGZvcm1hdDogc3RyaW5nID0gXCJNXCI7XHJcbiAgQElucHV0KCkgc2hvd0xhYmVsOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBsYWJlbDogYW55ID0gbnVsbDtcclxuICBASW5wdXQoKSBtYXhMZW5ndGggPSBudWxsO1xyXG4gIEBJbnB1dCgpIHJlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgbmV4dDogYW55O1xyXG4gIEBJbnB1dCgpIG5leHRJc0Rpc2FibGU6IGFueTtcclxuICBASW5wdXQoKSBiYWNrOiBhbnk7XHJcbiAgQElucHV0KCkgYmFja0lzRGlzYWJsZTogYW55O1xyXG4gIEBJbnB1dCgpIHJlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgdmFsaWRhdG9yTWVzc2FnZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHZhbGlkYXRvckFsZXJ0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgdG9vbHRpcE1lc3NhZ2U6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHN1Ym1pdHRlZDogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgY29sczogbnVtYmVyIHwgYW55ID0gbnVsbDtcclxuICBASW5wdXQoKSByb3dzOiBudW1iZXIgfCBhbnkgPSBudWxsO1xyXG4gIEBJbnB1dCgpIGhlaWdodDogc3RyaW5nID0gXCJcIjtcclxuICBASW5wdXQoKSB3aWR0aDogc3RyaW5nID0gXCJcIjtcclxuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSBcIlwiO1xyXG4gIEBJbnB1dCgpIGxhYmVsSW5mbzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHRleHRMYWJlbEluZm86IHN0cmluZyA9IFwiXCI7XHJcbiAgQE91dHB1dCgpIGNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uY2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgYmx1cjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uZm9jdXM6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvbk5leHQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvbkJhY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBWaWV3Q2hpbGQoXCJ0ZXh0QXJlYVwiKSB0ZXh0QXJlYSE6IEVsZW1lbnRSZWY8SFRNTFRleHRBcmVhRWxlbWVudD47XHJcbiAgY29udHJvbHM6IGFueTtcclxuICB2YWx1ZTogYW55O1xyXG4gIHNoYXJlZENvbXBvbmVudHNVdGlsID0gbmV3IFNoYXJlZENvbXBvbmVudHNVdGlsKCk7XHJcbiAgX2luaXRWYWx1ZSA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgbWVzc2FnZVV0aWxTZXJ2aWNlOiBNZXNzYWdlVXRpbFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRleHRBcmVhU2VydmljZTogVGV4dEFyZWFTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfcmVuZGVyOiBSZW5kZXJlcjJcclxuICApIHtcclxuICAgIHRoaXMuZm9ybWF0ID0gdGhpcy50ZXh0QXJlYVNlcnZpY2UuZ2V0Rm9ybWF0KCk7XHJcbiAgICB0aGlzLnNob3dMYWJlbCA9IHRoaXMudGV4dEFyZWFTZXJ2aWNlLmdldFNob3dMYWJlbCgpO1xyXG4gICAgdGhpcy52YWxpZGF0b3JNZXNzYWdlID0gdGhpcy50ZXh0QXJlYVNlcnZpY2UuZ2V0VmFsaWRhdG9yTWVzc2FnZSgpO1xyXG4gICAgdGhpcy50b29sdGlwTWVzc2FnZSA9IHRoaXMudGV4dEFyZWFTZXJ2aWNlLmdldFRvb2x0aXBNZXNzYWdlKCk7XHJcbiAgICB0aGlzLnN1Ym1pdHRlZCA9IHRoaXMudGV4dEFyZWFTZXJ2aWNlLmdldFN1Ym1pdHRlZCgpO1xyXG4gICAgdGhpcy52YWxpZGF0b3JBbGVydCA9IHRoaXMudGV4dEFyZWFTZXJ2aWNlLmdldFZhbGlkYXRvckFsZXJ0KCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1tcInN1Ym1pdHRlZFwiXSkge1xyXG4gICAgICBpZiAodGhpcy5jb250cm9scyAhPT0gdW5kZWZpbmVkICYmIGNoYW5nZXNbXCJzdWJtaXR0ZWRcIl0uY3VycmVudFZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5jb250cm9scy5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICAgIHRoaXMuY29udHJvbHMubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHt9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHt9XHJcblxyXG4gIG9uQ2hhbmdlID0gKF86IGFueSkgPT4ge307XHJcbiAgb25WYWxpZGF0aW9uQ2hhbmdlID0gKCkgPT4ge307XHJcbiAgb25Ub3VjaCA9ICgpID0+IHt9O1xyXG4gIGZvY3VzID0gKCkgPT4ge1xyXG4gICAgdGhpcy50ZXh0QXJlYS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICB0aGlzLnRleHRBcmVhLm5hdGl2ZUVsZW1lbnQuc2VsZWN0KCk7XHJcbiAgfTtcclxuXHJcbiAgb25CbHVyKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIC8vIHRoaXMudmFsdWUgPSB0aGlzLmZvcm1hdElucHV0KHZhbHVlKTtcclxuICAgIHRoaXMub25Ub3VjaCgpO1xyXG4gICAgLy8gdGhpcy5vblZhbGlkYXRpb25DaGFuZ2UoKTtcclxuICAgIC8vIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XHJcbiAgICB0aGlzLmJsdXIuZW1pdCh0aGlzLmZvcm1hdElucHV0KHZhbHVlKSk7XHJcbiAgfVxyXG5cclxuICBvbkZvY3VzKGV2dDogYW55KSB7XHJcbiAgICB0aGlzLnRleHRBcmVhLm5hdGl2ZUVsZW1lbnQuc2VsZWN0KCk7XHJcbiAgICB0aGlzLm9uZm9jdXMuZW1pdChldnQpO1xyXG4gIH1cclxuXHJcbiAgb25JbnB1dChldnQ6IGFueSkge1xyXG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmZvcm1hdElucHV0KGV2dCk7XHJcbiAgICB0aGlzLm9uVG91Y2goKTtcclxuICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xyXG4gICAgdGhpcy5vblZhbGlkYXRpb25DaGFuZ2UoKTtcclxuICAgIHRoaXMuY2hhbmdlLmVtaXQodmFsdWUpO1xyXG4gICAgdGhpcy5vbmNoYW5nZS5lbWl0KHZhbHVlKTtcclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmZvcm1hdElucHV0KHZhbHVlKTtcclxuICAgICAgLy8gdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICAgICAgaWYgKHRoaXMuY29udHJvbHMpIHtcclxuICAgICAgICB0aGlzLl9yZW5kZXIuc2V0UHJvcGVydHkodGhpcy5jb250cm9scywgXCJ2YWx1ZVwiLCB0aGlzLnZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2ggPSBmbjtcclxuICB9XHJcbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcclxuICB9XHJcblxyXG4gIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBhbnkge1xyXG4gICAgdGhpcy5jb250cm9scyA9IGNvbnRyb2w7XHJcblxyXG4gICAgaWYgKCF0aGlzLl9pbml0VmFsdWUpIHtcclxuICAgICAgaWYgKHRoaXMudmFsdWUpIHtcclxuICAgICAgICB0aGlzLl9yZW5kZXIuc2V0UHJvcGVydHkodGhpcy5jb250cm9scywgXCJ2YWx1ZVwiLCB0aGlzLnZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLl9pbml0VmFsdWUgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlPyhmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgdGhpcy5vblZhbGlkYXRpb25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIGZvcm1hdElucHV0KHZhbHVlOiBhbnkpIHtcclxuICAgIGlmICh2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZS50b1N0cmluZygpLnRyaW0oKSAhPT0gXCJcIikge1xyXG4gICAgICBjb25zdCBuZXdWYWx1ZSA9IHZhbHVlLnRvU3RyaW5nKCkudHJpbSgpO1xyXG5cclxuICAgICAgaWYgKHRoaXMuZm9ybWF0ID09PSBcIk1cIikgcmV0dXJuIG5ld1ZhbHVlLnRvVXBwZXJDYXNlKCk7XHJcbiAgICAgIGlmICh0aGlzLmZvcm1hdCA9PT0gXCJtXCIpIHJldHVybiBuZXdWYWx1ZS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB2YWx1ZTtcclxuICB9XHJcblxyXG4gIEFycm93UmlnaHQoZTogYW55KSB7XHJcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcclxuICAgICAgbGV0IHZhbGlkYXRvciA9IHRoaXMuc2hhcmVkQ29tcG9uZW50c1V0aWwuc3RvcEJ5VmFsaWRhdG9yKHRoaXMuY29udHJvbHMsIHRoaXMudmFsaWRhdG9yQWxlcnQsIHRoaXMubGFiZWwpO1xyXG4gICAgICBpZiAodmFsaWRhdG9yLmVycm9yKSB7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlVXRpbFNlcnZpY2UuZ2V0TWVzc2FnZUVycm9yKFwiMDAwMDQ2XCIsIFwiRXJyb3JcIiwgdmFsaWRhdG9yLm1lc3NhZ2UpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMubmV4dCAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgaWYgKHRoaXMubmV4dC5kaXNhYmxlZCB8fCB0aGlzLm5leHQucmVhZG9ubHkpIHtcclxuICAgICAgICBpZiAodGhpcy5uZXh0SXNEaXNhYmxlICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgdGhpcy5uZXh0SXNEaXNhYmxlLmZvY3VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMubmV4dC5mb2N1cygpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5uZXh0SXNEaXNhYmxlICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHRoaXMubmV4dElzRGlzYWJsZS5mb2N1cygpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMub25OZXh0LmVtaXQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQXJyb3dMZWZ0KGU6IGFueSkge1xyXG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgIGxldCB2YWxpZGF0b3IgPSB0aGlzLnNoYXJlZENvbXBvbmVudHNVdGlsLnN0b3BCeVZhbGlkYXRvcih0aGlzLmNvbnRyb2xzLCB0aGlzLnZhbGlkYXRvckFsZXJ0LCB0aGlzLmxhYmVsKTtcclxuICAgICAgaWYgKHZhbGlkYXRvci5lcnJvcikge1xyXG4gICAgICAgIHRoaXMubWVzc2FnZVV0aWxTZXJ2aWNlLmdldE1lc3NhZ2VFcnJvcihcIjAwMDA0NlwiLCBcIkVycm9yXCIsIHZhbGlkYXRvci5tZXNzYWdlKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh0aGlzLmJhY2sgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGlmICh0aGlzLmJhY2suZGlzYWJsZWQgfHwgdGhpcy5iYWNrLnJlYWRvbmx5KSB7XHJcbiAgICAgICAgaWYgKHRoaXMuYmFja0lzRGlzYWJsZSAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIHRoaXMuYmFja0lzRGlzYWJsZS5mb2N1cygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmJhY2suZm9jdXMoKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMuYmFja0lzRGlzYWJsZSAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgICB0aGlzLmJhY2tJc0Rpc2FibGUuZm9jdXMoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLm9uQmFjay5lbWl0KCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGxhYmVsICpuZ0lmPVwibGFiZWwgIT0gbnVsbCAmJiBsYWJlbCAhPSAnJyAmJiBzaG93TGFiZWxcIiBjbGFzcz1cImQtZmxleCBzdW1heC1sYWJlbCBtYi0wIHAtMFwiXHJcbiAgPjxzcGFuIFt0aXRsZV09XCJsYWJlbFwiIHN0eWxlPVwid2hpdGUtc3BhY2U6IG5vd3JhcDsgb3ZlcmZsb3c6IGhpZGRlbjsgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXNcIj57eyBsYWJlbCB9fTwvc3Bhbj5cclxuICA8c3BhbiAqbmdJZj1cInJlcXVpcmVkXCIgY2xhc3M9XCJtbC0xXCIgW2NsYXNzLnRleHQtZGFuZ2VyXT1cImNvbnRyb2xzPy5lcnJvcnMgIT0gbnVsbFwiPiAqPC9zcGFuPlxyXG4gIDxzcGFuICpuZ0lmPVwibGFiZWxJbmZvXCI+XHJcbiAgICA8aSBjbGFzcz1cImZhIGZhLWV4Y2xhbWF0aW9uLWNpcmNsZSB0ZXh0LWluZm8gbXMtMlwiIFttYXRUb29sdGlwXT1cInRleHRMYWJlbEluZm9cIiBtYXRUb29sdGlwQ2xhc3M9XCJiZy1pbmZvXCI+PC9pPlxyXG4gIDwvc3Bhbj5cclxuPC9sYWJlbD5cclxuPGRpdlxyXG4gIFtjbGFzcy5pbnB1dC1pY29uXT1cImNvbnRyb2xzPy5lcnJvcnMgIT0gbnVsbCAmJiAoY29udHJvbHM/LmRpcnR5IHx8IGNvbnRyb2xzPy50b3VjaGVkKSAmJiBzdWJtaXR0ZWRcIlxyXG4gIFtjbGFzcy5yaWdodF09XCJjb250cm9scz8uZXJyb3JzICE9IG51bGwgJiYgKGNvbnRyb2xzPy5kaXJ0eSB8fCBjb250cm9scz8udG91Y2hlZCkgJiYgc3VibWl0dGVkXCI+XHJcbiAgPCEtLSB0b29sdGlwLW1lc3NhZ2UgZXMgZWwgaWNvbm8gZGUgZXJyb3IgLS0+XHJcbiAgPHRvb2x0aXAtbWVzc2FnZVxyXG4gICAgW2xhYmVsXT1cImxhYmVsXCJcclxuICAgIFtjb250cm9sc109XCJjb250cm9sc1wiXHJcbiAgICBbdmFsaWRhdG9yTWVzc2FnZV09XCJ2YWxpZGF0b3JNZXNzYWdlXCJcclxuICAgIFt0b29sdGlwTWVzc2FnZV09XCJ0b29sdGlwTWVzc2FnZVwiXHJcbiAgICBbc3VibWl0dGVkXT1cInN1Ym1pdHRlZFwiPjwvdG9vbHRpcC1tZXNzYWdlPlxyXG5cclxuICA8dGV4dGFyZWFcclxuICAgICN0ZXh0QXJlYVxyXG4gICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgW2NsYXNzLnRleHQtdXBwZXJjYXNlXT1cImZvcm1hdCA9PT0gJ00nXCJcclxuICAgIFtjbGFzcy50ZXh0LWxvd2VyY2FzZV09XCJmb3JtYXQgPT09ICdtJ1wiXHJcbiAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgW2NsYXNzLmlzLWludmFsaWRdPVwiY29udHJvbHM/LmVycm9ycyAhPSBudWxsICYmIChjb250cm9scz8uZGlydHkgfHwgY29udHJvbHM/LnRvdWNoZWQpICYmIHN1Ym1pdHRlZFwiXHJcbiAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcclxuICAgIFtyZWFkb25seV09XCJkaXNhYmxlZCB8fCByZWFkb25seVwiXHJcbiAgICAoYmx1cik9XCJvbkJsdXIoJGFueSgkZXZlbnQudGFyZ2V0KS52YWx1ZSlcIlxyXG4gICAgKGlucHV0KT1cIm9uSW5wdXQoJGFueSgkZXZlbnQudGFyZ2V0KS52YWx1ZSlcIlxyXG4gICAgKGZvY3VzKT1cIm9uRm9jdXMoJGFueSgkZXZlbnQudGFyZ2V0KS52YWx1ZSlcIlxyXG4gICAgKGtleWRvd24uY29udHJvbC5hcnJvd2xlZnQpPVwiQXJyb3dMZWZ0KCRldmVudClcIlxyXG4gICAgW3Jvd3NdPVwicm93c1wiXHJcbiAgICBbY29sc109XCJjb2xzXCJcclxuICAgIFtuZ1N0eWxlXT1cInsgaGVpZ2h0OiBoZWlnaHQsIHdpZHRoOiB3aWR0aCB9XCJcclxuICAgIChrZXlkb3duLmNvbnRyb2wuYXJyb3dyaWdodCk9XCJBcnJvd1JpZ2h0KCRldmVudClcIj48L3RleHRhcmVhPlxyXG48L2Rpdj5cclxuXHJcbjwhLS0gZXJyb3ItbWVzc2FnZSBlcyBlbCBtYW5zYWplIHF1ZSBhcGFyZWNlIGFiYWpvIGRlbCBjb21wb25lbnRlIC0tPlxyXG48ZXJyb3ItbWVzc2FnZVxyXG4gIFtsYWJlbF09XCJsYWJlbFwiXHJcbiAgW2NvbnRyb2xzXT1cImNvbnRyb2xzXCJcclxuICBbdmFsaWRhdG9yTWVzc2FnZV09XCJ2YWxpZGF0b3JNZXNzYWdlXCJcclxuICBbdG9vbHRpcE1lc3NhZ2VdPVwidG9vbHRpcE1lc3NhZ2VcIlxyXG4gIFtzdWJtaXR0ZWRdPVwic3VibWl0dGVkXCI+PC9lcnJvci1tZXNzYWdlPlxyXG4iXX0=
|
|
362
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1hcmVhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zdW1heC1lcnAtY29tcG9uZW50L3NyYy9saWIvdGV4dC1hcmVhL3RleHQtYXJlYS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3VtYXgtZXJwLWNvbXBvbmVudC9zcmMvbGliL3RleHQtYXJlYS90ZXh0LWFyZWEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFHTixTQUFTLEVBQ1QsVUFBVSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBeUMsYUFBYSxFQUFFLGlCQUFpQixFQUFvQixNQUFNLGdCQUFnQixDQUFDO0FBRzNILE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7Ozs7Ozs7QUFtQnJFLE1BQU0sT0FBTyxpQkFBaUI7SUFzSzVCLFlBQ1Usa0JBQXNDLEVBQ3RDLGVBQWdDLEVBQ2hDLE9BQWtCO1FBRmxCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLFlBQU8sR0FBUCxPQUFPLENBQVc7UUF4SzVCOzs7O1dBSUc7UUFDTSxXQUFNLEdBQVcsR0FBRyxDQUFDO1FBRTlCOzs7O1dBSUc7UUFDTSxjQUFTLEdBQVksSUFBSSxDQUFDO1FBRW5DOzs7O1dBSUc7UUFDTSxVQUFLLEdBQVEsSUFBSSxDQUFDO1FBRTNCOzs7O1dBSUc7UUFDTSxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBRTFCOzs7O1dBSUc7UUFDTSxhQUFRLEdBQVksS0FBSyxDQUFDO1FBOEJuQzs7OztXQUlHO1FBQ00sYUFBUSxHQUFZLEtBQUssQ0FBQztRQUVuQzs7OztXQUlHO1FBQ00scUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBRTNDOzs7O1dBSUc7UUFDTSxtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUV6Qzs7OztXQUlHO1FBQ00sbUJBQWMsR0FBWSxJQUFJLENBQUM7UUFFeEM7Ozs7V0FJRztRQUNNLGNBQVMsR0FBWSxJQUFJLENBQUM7UUFFbkM7Ozs7V0FJRztRQUNNLFNBQUksR0FBaUIsSUFBSSxDQUFDO1FBRW5DOzs7O1dBSUc7UUFDTSxTQUFJLEdBQWlCLElBQUksQ0FBQztRQUVuQzs7OztXQUlHO1FBQ00sV0FBTSxHQUFXLEVBQUUsQ0FBQztRQUU3Qjs7OztXQUlHO1FBQ00sVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUU1Qjs7OztXQUlHO1FBQ00sYUFBUSxHQUFZLEtBQUssQ0FBQztRQUVuQzs7OztXQUlHO1FBQ00sZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFFbEM7Ozs7V0FJRztRQUNNLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFFcEM7Ozs7V0FJRztRQUNNLGtCQUFhLEdBQVcsRUFBRSxDQUFDO1FBQzFCLFdBQU0sR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMvQyxhQUFRLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDakQsU0FBSSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzdDLFlBQU8sR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNoRCxXQUFNLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDL0MsV0FBTSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBSXpELHlCQUFvQixHQUFHLElBQUksb0JBQW9CLEVBQUUsQ0FBQztRQUNsRCxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBNEJuQixhQUFRLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUMxQix1QkFBa0IsR0FBRyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFDOUIsWUFBTyxHQUFHLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUNuQixVQUFLLEdBQUcsR0FBRyxFQUFFO1lBQ1gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDdkMsQ0FBQyxDQUFDO1FBM0JBLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUMvQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDckQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUNuRSxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUMvRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDckQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDakUsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ3pCLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxTQUFTLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUNyRSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ2hDLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELFFBQVEsS0FBSSxDQUFDO0lBRWIsZUFBZSxLQUFVLENBQUM7SUFVMUIsTUFBTSxDQUFDLEtBQWE7UUFDbEIsd0NBQXdDO1FBQ3hDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNmLDZCQUE2QjtRQUM3Qiw2QkFBNkI7UUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxPQUFPLENBQUMsR0FBUTtRQUNkLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxPQUFPLENBQUMsR0FBUTtRQUNkLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQVU7UUFDbkIsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNyQyw2QkFBNkI7WUFDN0IsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2xCLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMvRCxDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNwQixDQUFDO0lBQ0gsQ0FBQztJQUNELGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUNELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUNELGdCQUFnQixDQUFDLFVBQW1CO1FBQ2xDLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO0lBQzdCLENBQUM7SUFFRCxRQUFRLENBQUMsT0FBd0I7UUFDL0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7UUFFeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNyQixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDZixJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDL0QsQ0FBQztZQUNELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCx5QkFBeUIsQ0FBRSxFQUFjO1FBQ3ZDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFVO1FBQ3BCLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDckQsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1lBRXpDLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxHQUFHO2dCQUFFLE9BQU8sUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3ZELElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxHQUFHO2dCQUFFLE9BQU8sUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3pELENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxVQUFVLENBQUMsQ0FBTTtRQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbkIsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzFHLElBQUksU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNwQixJQUFJLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUM5RSxPQUFPO1lBQ1QsQ0FBQztRQUNILENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksU0FBUyxFQUFFLENBQUM7WUFDM0IsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUM3QyxJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksU0FBUyxFQUFFLENBQUM7b0JBQ3BDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQzdCLENBQUM7WUFDSCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNwQixDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksU0FBUyxFQUFFLENBQUM7Z0JBQ3BDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDN0IsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDckIsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsU0FBUyxDQUFDLENBQU07UUFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ25CLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMxRyxJQUFJLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDOUUsT0FBTztZQUNULENBQUM7UUFDSCxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQzNCLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDN0MsSUFBSSxJQUFJLENBQUMsYUFBYSxJQUFJLFNBQVMsRUFBRSxDQUFDO29CQUNwQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUM3QixDQUFDO1lBQ0gsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDcEIsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxJQUFJLENBQUMsYUFBYSxJQUFJLFNBQVMsRUFBRSxDQUFDO2dCQUNwQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzdCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3JCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQzsrR0E5VFUsaUJBQWlCO21HQUFqQixpQkFBaUIsK3FCQWJqQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUM7Z0JBQ2hELEtBQUssRUFBRSxJQUFJO2FBQ1o7WUFDRDtnQkFDRSxPQUFPLEVBQUUsYUFBYTtnQkFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztnQkFDaEQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLHFKQ2xDSCw4Z0VBNENBOzs0RkRSYSxpQkFBaUI7a0JBakI3QixTQUFTOytCQUNFLFdBQVcsYUFHVjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxrQkFBa0IsQ0FBQzs0QkFDaEQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGtCQUFrQixDQUFDOzRCQUNoRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjs2SUFRUSxNQUFNO3NCQUFkLEtBQUs7Z0JBT0csU0FBUztzQkFBakIsS0FBSztnQkFPRyxLQUFLO3NCQUFiLEtBQUs7Z0JBT0csU0FBUztzQkFBakIsS0FBSztnQkFPRyxRQUFRO3NCQUFoQixLQUFLO2dCQU9HLElBQUk7c0JBQVosS0FBSztnQkFPRyxhQUFhO3NCQUFyQixLQUFLO2dCQU9HLElBQUk7c0JBQVosS0FBSztnQkFPRyxhQUFhO3NCQUFyQixLQUFLO2dCQU9HLFFBQVE7c0JBQWhCLEtBQUs7Z0JBT0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQU9HLGNBQWM7c0JBQXRCLEtBQUs7Z0JBT0csY0FBYztzQkFBdEIsS0FBSztnQkFPRyxTQUFTO3NCQUFqQixLQUFLO2dCQU9HLElBQUk7c0JBQVosS0FBSztnQkFPRyxJQUFJO3NCQUFaLEtBQUs7Z0JBT0csTUFBTTtzQkFBZCxLQUFLO2dCQU9HLEtBQUs7c0JBQWIsS0FBSztnQkFPRyxRQUFRO3NCQUFoQixLQUFLO2dCQU9HLFdBQVc7c0JBQW5CLEtBQUs7Z0JBT0csU0FBUztzQkFBakIsS0FBSztnQkFPRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNJLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLElBQUk7c0JBQWIsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBQ2dCLFFBQVE7c0JBQTlCLFNBQVM7dUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgUmVuZGVyZXIyLFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVmlld0NoaWxkLFxyXG4gIGZvcndhcmRSZWYsXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1IsIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgVGV4dEFyZWFTZXJ2aWNlIH0gZnJvbSBcIi4vdGV4dC1hcmVhLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgTWVzc2FnZVV0aWxTZXJ2aWNlIH0gZnJvbSBcIi4uL3V0aWxzL21lc3NhZ2UtdXRpbC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFNoYXJlZENvbXBvbmVudHNVdGlsIH0gZnJvbSBcIi4uL3V0aWxzL1NoYXJlZENvbXBvbmVudHNVdGlsXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJ0ZXh0LWFyZWFcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL3RleHQtYXJlYS5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi90ZXh0LWFyZWEuY29tcG9uZW50LnNjc3NcIl0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUZXh0QXJlYUNvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVGV4dEFyZWFDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRleHRBcmVhQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuICAvKipcclxuICAgKiBAZGVzY3JpcHRpb24gRm9ybWF0byBkZWwgdGV4dG8gKE06IG1hecO6c2N1bGFzLCBtOiBtaW7DunNjdWxhcylcclxuICAgKiBAZGVmYXVsdCBcIk1cIlxyXG4gICAqIEB0eXBlIHN0cmluZ1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGZvcm1hdDogc3RyaW5nID0gXCJNXCI7XHJcbiAgXHJcbiAgLyoqXHJcbiAgICogQGRlc2NyaXB0aW9uIENvbnRyb2xhIGxhIHZpc3VhbGl6YWNpw7NuIGRlbCB0ZXh0byBzdXBlcmlvclxyXG4gICAqIEBkZWZhdWx0IHRydWVcclxuICAgKiBAdHlwZSBib29sZWFuXHJcbiAgICovXHJcbiAgQElucHV0KCkgc2hvd0xhYmVsOiBib29sZWFuID0gdHJ1ZTtcclxuICBcclxuICAvKipcclxuICAgKiBAZGVzY3JpcHRpb24gVGV4dG8gYSBtb3N0cmFyIGNvbW8gZXRpcXVldGEgZGVsIGNhbXBvXHJcbiAgICogQGRlZmF1bHQgbnVsbFxyXG4gICAqIEB0eXBlIGFueVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGxhYmVsOiBhbnkgPSBudWxsO1xyXG4gIFxyXG4gIC8qKlxyXG4gICAqIEBkZXNjcmlwdGlvbiBMb25naXR1ZCBtw6F4aW1hIGRlbCB0ZXh0b1xyXG4gICAqIEBkZWZhdWx0IG51bGxcclxuICAgKiBAdHlwZSBudW1iZXIgfCBudWxsXHJcbiAgICovXHJcbiAgQElucHV0KCkgbWF4TGVuZ3RoID0gbnVsbDtcclxuICBcclxuICAvKipcclxuICAgKiBAZGVzY3JpcHRpb24gRXN0YWJsZWNlIGVsIGNvbnRyb2wgY29tbyBzb2xvIGxlY3R1cmFcclxuICAgKiBAZGVmYXVsdCBmYWxzZVxyXG4gICAqIEB0eXBlIGJvb2xlYW5cclxuICAgKi9cclxuICBASW5wdXQoKSByZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIFxyXG4gIC8qKlxyXG4gICAqIEBkZXNjcmlwdGlvbiBSZWZlcmVuY2lhIGFsIHNpZ3VpZW50ZSBjb250cm9sIHBhcmEgbmF2ZWdhY2nDs25cclxuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcclxuICAgKiBAdHlwZSBhbnlcclxuICAgKi9cclxuICBASW5wdXQoKSBuZXh0OiBhbnk7XHJcbiAgXHJcbiAgLyoqXHJcbiAgICogQGRlc2NyaXB0aW9uIFJlZmVyZW5jaWEgYWwgY29udHJvbCBhbHRlcm5hdGl2byBjdWFuZG8gZWwgc2lndWllbnRlIGVzdMOhIGRlc2hhYmlsaXRhZG9cclxuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcclxuICAgKiBAdHlwZSBhbnlcclxuICAgKi9cclxuICBASW5wdXQoKSBuZXh0SXNEaXNhYmxlOiBhbnk7XHJcbiAgXHJcbiAgLyoqXHJcbiAgICogQGRlc2NyaXB0aW9uIFJlZmVyZW5jaWEgYWwgY29udHJvbCBhbnRlcmlvciBwYXJhIG5hdmVnYWNpw7NuXHJcbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXHJcbiAgICogQHR5cGUgYW55XHJcbiAgICovXHJcbiAgQElucHV0KCkgYmFjazogYW55O1xyXG4gIFxyXG4gIC8qKlxyXG4gICAqIEBkZXNjcmlwdGlvbiBSZWZlcmVuY2lhIGFsIGNvbnRyb2wgYWx0ZXJuYXRpdm8gY3VhbmRvIGVsIGFudGVyaW9yIGVzdMOhIGRlc2hhYmlsaXRhZG9cclxuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcclxuICAgKiBAdHlwZSBhbnlcclxuICAgKi9cclxuICBASW5wdXQoKSBiYWNrSXNEaXNhYmxlOiBhbnk7XHJcbiAgXHJcbiAgLyoqXHJcbiAgICogQGRlc2NyaXB0aW9uIEluZGljYSBzaSBlbCBjYW1wbyBlcyBvYmxpZ2F0b3Jpb1xyXG4gICAqIEBkZWZhdWx0IGZhbHNlXHJcbiAgICogQHR5cGUgYm9vbGVhblxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHJlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgXHJcbiAgLyoqXHJcbiAgICogQGRlc2NyaXB0aW9uIE11ZXN0cmEgbWVuc2FqZXMgZGUgdmFsaWRhY2nDs25cclxuICAgKiBAZGVmYXVsdCBmYWxzZVxyXG4gICAqIEB0eXBlIGJvb2xlYW5cclxuICAgKi9cclxuICBASW5wdXQoKSB2YWxpZGF0b3JNZXNzYWdlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgXHJcbiAgLyoqXHJcbiAgICogQGRlc2NyaXB0aW9uIE11ZXN0cmEgYWxlcnRhcyBkZSB2YWxpZGFjacOzblxyXG4gICAqIEBkZWZhdWx0IGZhbHNlXHJcbiAgICogQHR5cGUgYm9vbGVhblxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHZhbGlkYXRvckFsZXJ0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgXHJcbiAgLyoqXHJcbiAgICogQGRlc2NyaXB0aW9uIE11ZXN0cmEgbWVuc2FqZXMgZGUgYXl1ZGEgY29tbyB0b29sdGlwc1xyXG4gICAqIEBkZWZhdWx0IHRydWVcclxuICAgKiBAdHlwZSBib29sZWFuXHJcbiAgICovXHJcbiAgQElucHV0KCkgdG9vbHRpcE1lc3NhZ2U6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIFxyXG4gIC8qKlxyXG4gICAqIEBkZXNjcmlwdGlvbiBJbmRpY2Egc2kgZWwgZm9ybXVsYXJpbyBoYSBzaWRvIGVudmlhZG8gcGFyYSBtb3N0cmFyIHZhbGlkYWNpb25lc1xyXG4gICAqIEBkZWZhdWx0IHRydWVcclxuICAgKiBAdHlwZSBib29sZWFuXHJcbiAgICovXHJcbiAgQElucHV0KCkgc3VibWl0dGVkOiBib29sZWFuID0gdHJ1ZTtcclxuICBcclxuICAvKipcclxuICAgKiBAZGVzY3JpcHRpb24gTsO6bWVybyBkZSBjb2x1bW5hcyBkZWwgdGV4dGFyZWFcclxuICAgKiBAZGVmYXVsdCBudWxsXHJcbiAgICogQHR5cGUgbnVtYmVyIHwgYW55XHJcbiAgICovXHJcbiAgQElucHV0KCkgY29sczogbnVtYmVyIHwgYW55ID0gbnVsbDtcclxuICBcclxuICAvKipcclxuICAgKiBAZGVzY3JpcHRpb24gTsO6bWVybyBkZSBmaWxhcyBkZWwgdGV4dGFyZWFcclxuICAgKiBAZGVmYXVsdCBudWxsXHJcbiAgICogQHR5cGUgbnVtYmVyIHwgYW55XHJcbiAgICovXHJcbiAgQElucHV0KCkgcm93czogbnVtYmVyIHwgYW55ID0gbnVsbDtcclxuICBcclxuICAvKipcclxuICAgKiBAZGVzY3JpcHRpb24gQWx0dXJhIGRlbCB0ZXh0YXJlYVxyXG4gICAqIEBkZWZhdWx0IFwiXCJcclxuICAgKiBAdHlwZSBzdHJpbmdcclxuICAgKi9cclxuICBASW5wdXQoKSBoZWlnaHQ6IHN0cmluZyA9IFwiXCI7XHJcbiAgXHJcbiAgLyoqXHJcbiAgICogQGRlc2NyaXB0aW9uIEFuY2hvIGRlbCB0ZXh0YXJlYVxyXG4gICAqIEBkZWZhdWx0IFwiXCJcclxuICAgKiBAdHlwZSBzdHJpbmdcclxuICAgKi9cclxuICBASW5wdXQoKSB3aWR0aDogc3RyaW5nID0gXCJcIjtcclxuICBcclxuICAvKipcclxuICAgKiBAZGVzY3JpcHRpb24gRGVzaGFiaWxpdGEgZWwgY29udHJvbFxyXG4gICAqIEBkZWZhdWx0IGZhbHNlXHJcbiAgICogQHR5cGUgYm9vbGVhblxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgXHJcbiAgLyoqXHJcbiAgICogQGRlc2NyaXB0aW9uIFRleHRvIGRlIG1hcmNhZG9yIGRlIHBvc2ljacOzblxyXG4gICAqIEBkZWZhdWx0IFwiXCJcclxuICAgKiBAdHlwZSBzdHJpbmdcclxuICAgKi9cclxuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gXCJcIjtcclxuICBcclxuICAvKipcclxuICAgKiBAZGVzY3JpcHRpb24gSGFiaWxpdGEgaW5mb3JtYWNpw7NuIGFkaWNpb25hbCBwYXJhIGxhIGV0aXF1ZXRhXHJcbiAgICogQGRlZmF1bHQgZmFsc2VcclxuICAgKiBAdHlwZSBib29sZWFuXHJcbiAgICovXHJcbiAgQElucHV0KCkgbGFiZWxJbmZvOiBib29sZWFuID0gZmFsc2U7XHJcbiAgXHJcbiAgLyoqXHJcbiAgICogQGRlc2NyaXB0aW9uIFRleHRvIGluZm9ybWF0aXZvIGFkaWNpb25hbCBwYXJhIGxhIGV0aXF1ZXRhXHJcbiAgICogQGRlZmF1bHQgXCJcIlxyXG4gICAqIEB0eXBlIHN0cmluZ1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHRleHRMYWJlbEluZm86IHN0cmluZyA9IFwiXCI7XHJcbiAgQE91dHB1dCgpIGNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uY2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgYmx1cjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uZm9jdXM6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvbk5leHQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvbkJhY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBWaWV3Q2hpbGQoXCJ0ZXh0QXJlYVwiKSB0ZXh0QXJlYSE6IEVsZW1lbnRSZWY8SFRNTFRleHRBcmVhRWxlbWVudD47XHJcbiAgY29udHJvbHM6IGFueTtcclxuICB2YWx1ZTogYW55O1xyXG4gIHNoYXJlZENvbXBvbmVudHNVdGlsID0gbmV3IFNoYXJlZENvbXBvbmVudHNVdGlsKCk7XHJcbiAgX2luaXRWYWx1ZSA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgbWVzc2FnZVV0aWxTZXJ2aWNlOiBNZXNzYWdlVXRpbFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRleHRBcmVhU2VydmljZTogVGV4dEFyZWFTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfcmVuZGVyOiBSZW5kZXJlcjJcclxuICApIHtcclxuICAgIHRoaXMuZm9ybWF0ID0gdGhpcy50ZXh0QXJlYVNlcnZpY2UuZ2V0Rm9ybWF0KCk7XHJcbiAgICB0aGlzLnNob3dMYWJlbCA9IHRoaXMudGV4dEFyZWFTZXJ2aWNlLmdldFNob3dMYWJlbCgpO1xyXG4gICAgdGhpcy52YWxpZGF0b3JNZXNzYWdlID0gdGhpcy50ZXh0QXJlYVNlcnZpY2UuZ2V0VmFsaWRhdG9yTWVzc2FnZSgpO1xyXG4gICAgdGhpcy50b29sdGlwTWVzc2FnZSA9IHRoaXMudGV4dEFyZWFTZXJ2aWNlLmdldFRvb2x0aXBNZXNzYWdlKCk7XHJcbiAgICB0aGlzLnN1Ym1pdHRlZCA9IHRoaXMudGV4dEFyZWFTZXJ2aWNlLmdldFN1Ym1pdHRlZCgpO1xyXG4gICAgdGhpcy52YWxpZGF0b3JBbGVydCA9IHRoaXMudGV4dEFyZWFTZXJ2aWNlLmdldFZhbGlkYXRvckFsZXJ0KCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1tcInN1Ym1pdHRlZFwiXSkge1xyXG4gICAgICBpZiAodGhpcy5jb250cm9scyAhPT0gdW5kZWZpbmVkICYmIGNoYW5nZXNbXCJzdWJtaXR0ZWRcIl0uY3VycmVudFZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5jb250cm9scy5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICAgIHRoaXMuY29udHJvbHMubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHt9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHt9XHJcblxyXG4gIG9uQ2hhbmdlID0gKF86IGFueSkgPT4ge307XHJcbiAgb25WYWxpZGF0aW9uQ2hhbmdlID0gKCkgPT4ge307XHJcbiAgb25Ub3VjaCA9ICgpID0+IHt9O1xyXG4gIGZvY3VzID0gKCkgPT4ge1xyXG4gICAgdGhpcy50ZXh0QXJlYS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICB0aGlzLnRleHRBcmVhLm5hdGl2ZUVsZW1lbnQuc2VsZWN0KCk7XHJcbiAgfTtcclxuXHJcbiAgb25CbHVyKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIC8vIHRoaXMudmFsdWUgPSB0aGlzLmZvcm1hdElucHV0KHZhbHVlKTtcclxuICAgIHRoaXMub25Ub3VjaCgpO1xyXG4gICAgLy8gdGhpcy5vblZhbGlkYXRpb25DaGFuZ2UoKTtcclxuICAgIC8vIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XHJcbiAgICB0aGlzLmJsdXIuZW1pdCh0aGlzLmZvcm1hdElucHV0KHZhbHVlKSk7XHJcbiAgfVxyXG5cclxuICBvbkZvY3VzKGV2dDogYW55KSB7XHJcbiAgICB0aGlzLnRleHRBcmVhLm5hdGl2ZUVsZW1lbnQuc2VsZWN0KCk7XHJcbiAgICB0aGlzLm9uZm9jdXMuZW1pdChldnQpO1xyXG4gIH1cclxuXHJcbiAgb25JbnB1dChldnQ6IGFueSkge1xyXG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmZvcm1hdElucHV0KGV2dCk7XHJcbiAgICB0aGlzLm9uVG91Y2goKTtcclxuICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xyXG4gICAgdGhpcy5vblZhbGlkYXRpb25DaGFuZ2UoKTtcclxuICAgIHRoaXMuY2hhbmdlLmVtaXQodmFsdWUpO1xyXG4gICAgdGhpcy5vbmNoYW5nZS5lbWl0KHZhbHVlKTtcclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmZvcm1hdElucHV0KHZhbHVlKTtcclxuICAgICAgLy8gdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICAgICAgaWYgKHRoaXMuY29udHJvbHMpIHtcclxuICAgICAgICB0aGlzLl9yZW5kZXIuc2V0UHJvcGVydHkodGhpcy5jb250cm9scywgXCJ2YWx1ZVwiLCB0aGlzLnZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2ggPSBmbjtcclxuICB9XHJcbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcclxuICB9XHJcblxyXG4gIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBhbnkge1xyXG4gICAgdGhpcy5jb250cm9scyA9IGNvbnRyb2w7XHJcblxyXG4gICAgaWYgKCF0aGlzLl9pbml0VmFsdWUpIHtcclxuICAgICAgaWYgKHRoaXMudmFsdWUpIHtcclxuICAgICAgICB0aGlzLl9yZW5kZXIuc2V0UHJvcGVydHkodGhpcy5jb250cm9scywgXCJ2YWx1ZVwiLCB0aGlzLnZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLl9pbml0VmFsdWUgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlPyhmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgdGhpcy5vblZhbGlkYXRpb25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIGZvcm1hdElucHV0KHZhbHVlOiBhbnkpIHtcclxuICAgIGlmICh2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZS50b1N0cmluZygpLnRyaW0oKSAhPT0gXCJcIikge1xyXG4gICAgICBjb25zdCBuZXdWYWx1ZSA9IHZhbHVlLnRvU3RyaW5nKCkudHJpbSgpO1xyXG5cclxuICAgICAgaWYgKHRoaXMuZm9ybWF0ID09PSBcIk1cIikgcmV0dXJuIG5ld1ZhbHVlLnRvVXBwZXJDYXNlKCk7XHJcbiAgICAgIGlmICh0aGlzLmZvcm1hdCA9PT0gXCJtXCIpIHJldHVybiBuZXdWYWx1ZS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB2YWx1ZTtcclxuICB9XHJcblxyXG4gIEFycm93UmlnaHQoZTogYW55KSB7XHJcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcclxuICAgICAgbGV0IHZhbGlkYXRvciA9IHRoaXMuc2hhcmVkQ29tcG9uZW50c1V0aWwuc3RvcEJ5VmFsaWRhdG9yKHRoaXMuY29udHJvbHMsIHRoaXMudmFsaWRhdG9yQWxlcnQsIHRoaXMubGFiZWwpO1xyXG4gICAgICBpZiAodmFsaWRhdG9yLmVycm9yKSB7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlVXRpbFNlcnZpY2UuZ2V0TWVzc2FnZUVycm9yKFwiMDAwMDQ2XCIsIFwiRXJyb3JcIiwgdmFsaWRhdG9yLm1lc3NhZ2UpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMubmV4dCAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgaWYgKHRoaXMubmV4dC5kaXNhYmxlZCB8fCB0aGlzLm5leHQucmVhZG9ubHkpIHtcclxuICAgICAgICBpZiAodGhpcy5uZXh0SXNEaXNhYmxlICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgdGhpcy5uZXh0SXNEaXNhYmxlLmZvY3VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMubmV4dC5mb2N1cygpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5uZXh0SXNEaXNhYmxlICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHRoaXMubmV4dElzRGlzYWJsZS5mb2N1cygpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMub25OZXh0LmVtaXQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQXJyb3dMZWZ0KGU6IGFueSkge1xyXG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgIGxldCB2YWxpZGF0b3IgPSB0aGlzLnNoYXJlZENvbXBvbmVudHNVdGlsLnN0b3BCeVZhbGlkYXRvcih0aGlzLmNvbnRyb2xzLCB0aGlzLnZhbGlkYXRvckFsZXJ0LCB0aGlzLmxhYmVsKTtcclxuICAgICAgaWYgKHZhbGlkYXRvci5lcnJvcikge1xyXG4gICAgICAgIHRoaXMubWVzc2FnZVV0aWxTZXJ2aWNlLmdldE1lc3NhZ2VFcnJvcihcIjAwMDA0NlwiLCBcIkVycm9yXCIsIHZhbGlkYXRvci5tZXNzYWdlKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh0aGlzLmJhY2sgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGlmICh0aGlzLmJhY2suZGlzYWJsZWQgfHwgdGhpcy5iYWNrLnJlYWRvbmx5KSB7XHJcbiAgICAgICAgaWYgKHRoaXMuYmFja0lzRGlzYWJsZSAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIHRoaXMuYmFja0lzRGlzYWJsZS5mb2N1cygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmJhY2suZm9jdXMoKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMuYmFja0lzRGlzYWJsZSAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgICB0aGlzLmJhY2tJc0Rpc2FibGUuZm9jdXMoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLm9uQmFjay5lbWl0KCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGxhYmVsICpuZ0lmPVwibGFiZWwgIT0gbnVsbCAmJiBsYWJlbCAhPSAnJyAmJiBzaG93TGFiZWxcIiBjbGFzcz1cImQtZmxleCBzdW1heC1sYWJlbCBtYi0wIHAtMFwiXHJcbiAgPjxzcGFuIFt0aXRsZV09XCJsYWJlbFwiIHN0eWxlPVwid2hpdGUtc3BhY2U6IG5vd3JhcDsgb3ZlcmZsb3c6IGhpZGRlbjsgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXNcIj57eyBsYWJlbCB9fTwvc3Bhbj5cclxuICA8c3BhbiAqbmdJZj1cInJlcXVpcmVkXCIgY2xhc3M9XCJtbC0xXCIgW2NsYXNzLnRleHQtZGFuZ2VyXT1cImNvbnRyb2xzPy5lcnJvcnMgIT0gbnVsbFwiPiAqPC9zcGFuPlxyXG4gIDxzcGFuICpuZ0lmPVwibGFiZWxJbmZvXCI+XHJcbiAgICA8aSBjbGFzcz1cImZhIGZhLWV4Y2xhbWF0aW9uLWNpcmNsZSB0ZXh0LWluZm8gbXMtMlwiIFttYXRUb29sdGlwXT1cInRleHRMYWJlbEluZm9cIiBtYXRUb29sdGlwQ2xhc3M9XCJiZy1pbmZvXCI+PC9pPlxyXG4gIDwvc3Bhbj5cclxuPC9sYWJlbD5cclxuPGRpdlxyXG4gIFtjbGFzcy5pbnB1dC1pY29uXT1cImNvbnRyb2xzPy5lcnJvcnMgIT0gbnVsbCAmJiAoY29udHJvbHM/LmRpcnR5IHx8IGNvbnRyb2xzPy50b3VjaGVkKSAmJiBzdWJtaXR0ZWRcIlxyXG4gIFtjbGFzcy5yaWdodF09XCJjb250cm9scz8uZXJyb3JzICE9IG51bGwgJiYgKGNvbnRyb2xzPy5kaXJ0eSB8fCBjb250cm9scz8udG91Y2hlZCkgJiYgc3VibWl0dGVkXCI+XHJcbiAgPCEtLSB0b29sdGlwLW1lc3NhZ2UgZXMgZWwgaWNvbm8gZGUgZXJyb3IgLS0+XHJcbiAgPHRvb2x0aXAtbWVzc2FnZVxyXG4gICAgW2xhYmVsXT1cImxhYmVsXCJcclxuICAgIFtjb250cm9sc109XCJjb250cm9sc1wiXHJcbiAgICBbdmFsaWRhdG9yTWVzc2FnZV09XCJ2YWxpZGF0b3JNZXNzYWdlXCJcclxuICAgIFt0b29sdGlwTWVzc2FnZV09XCJ0b29sdGlwTWVzc2FnZVwiXHJcbiAgICBbc3VibWl0dGVkXT1cInN1Ym1pdHRlZFwiPjwvdG9vbHRpcC1tZXNzYWdlPlxyXG5cclxuICA8dGV4dGFyZWFcclxuICAgICN0ZXh0QXJlYVxyXG4gICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgW2NsYXNzLnRleHQtdXBwZXJjYXNlXT1cImZvcm1hdCA9PT0gJ00nXCJcclxuICAgIFtjbGFzcy50ZXh0LWxvd2VyY2FzZV09XCJmb3JtYXQgPT09ICdtJ1wiXHJcbiAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgW2NsYXNzLmlzLWludmFsaWRdPVwiY29udHJvbHM/LmVycm9ycyAhPSBudWxsICYmIChjb250cm9scz8uZGlydHkgfHwgY29udHJvbHM/LnRvdWNoZWQpICYmIHN1Ym1pdHRlZFwiXHJcbiAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcclxuICAgIFtyZWFkb25seV09XCJkaXNhYmxlZCB8fCByZWFkb25seVwiXHJcbiAgICAoYmx1cik9XCJvbkJsdXIoJGFueSgkZXZlbnQudGFyZ2V0KS52YWx1ZSlcIlxyXG4gICAgKGlucHV0KT1cIm9uSW5wdXQoJGFueSgkZXZlbnQudGFyZ2V0KS52YWx1ZSlcIlxyXG4gICAgKGZvY3VzKT1cIm9uRm9jdXMoJGFueSgkZXZlbnQudGFyZ2V0KS52YWx1ZSlcIlxyXG4gICAgKGtleWRvd24uY29udHJvbC5hcnJvd2xlZnQpPVwiQXJyb3dMZWZ0KCRldmVudClcIlxyXG4gICAgW3Jvd3NdPVwicm93c1wiXHJcbiAgICBbY29sc109XCJjb2xzXCJcclxuICAgIFtuZ1N0eWxlXT1cInsgaGVpZ2h0OiBoZWlnaHQsIHdpZHRoOiB3aWR0aCB9XCJcclxuICAgIChrZXlkb3duLmNvbnRyb2wuYXJyb3dyaWdodCk9XCJBcnJvd1JpZ2h0KCRldmVudClcIj48L3RleHRhcmVhPlxyXG48L2Rpdj5cclxuXHJcbjwhLS0gZXJyb3ItbWVzc2FnZSBlcyBlbCBtYW5zYWplIHF1ZSBhcGFyZWNlIGFiYWpvIGRlbCBjb21wb25lbnRlIC0tPlxyXG48ZXJyb3ItbWVzc2FnZVxyXG4gIFtsYWJlbF09XCJsYWJlbFwiXHJcbiAgW2NvbnRyb2xzXT1cImNvbnRyb2xzXCJcclxuICBbdmFsaWRhdG9yTWVzc2FnZV09XCJ2YWxpZGF0b3JNZXNzYWdlXCJcclxuICBbdG9vbHRpcE1lc3NhZ2VdPVwidG9vbHRpcE1lc3NhZ2VcIlxyXG4gIFtzdWJtaXR0ZWRdPVwic3VibWl0dGVkXCI+PC9lcnJvci1tZXNzYWdlPlxyXG4iXX0=
|