@anglr/select 10.0.0-beta.20200916123705 → 10.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/changelog.md +11 -3
- package/dist/es2015/src/plugins/liveSearch/edit/editLiveSearch.component.js +3 -27
- package/dist/es2015/src/plugins/valueHandler/valueHandlerBase.js +12 -2
- package/dist/es5/src/plugins/liveSearch/edit/editLiveSearch.component.js +7 -42
- package/dist/es5/src/plugins/valueHandler/valueHandlerBase.js +13 -13
- package/material/dist/es2015/material/index.js +2 -2
- package/material/dist/es2015/material/public_api.js +2 -2
- package/material/dist/es2015/material/src/material.js +3 -2
- package/material/dist/es2015/material/src/modules/virtualEditPopup.module.js +29 -0
- package/material/dist/es2015/material/src/plugins/popup/components.js +2 -1
- package/material/dist/es2015/material/src/plugins/popup/index.js +2 -1
- package/material/dist/es2015/material/src/plugins/popup/virtualEdit/virtualEditPopup.component.js +151 -0
- package/material/dist/es2015/material/src/plugins/popup/virtualEdit/virtualEditPopup.interface.js +21 -0
- package/material/dist/es5/material/index.js +2 -2
- package/material/dist/es5/material/public_api.js +2 -2
- package/material/dist/es5/material/src/material.js +3 -2
- package/material/dist/es5/material/src/modules/virtualEditPopup.module.js +33 -0
- package/material/dist/es5/material/src/plugins/popup/components.js +2 -1
- package/material/dist/es5/material/src/plugins/popup/index.js +2 -1
- package/material/dist/es5/material/src/plugins/popup/virtualEdit/virtualEditPopup.component.js +196 -0
- package/material/dist/es5/material/src/plugins/popup/virtualEdit/virtualEditPopup.interface.js +21 -0
- package/material/index.metadata.json +1 -1
- package/material/package.json +1 -1
- package/material/src/material.d.ts +1 -0
- package/material/src/material.d.ts.map +1 -1
- package/material/src/modules/virtualEditPopup.module.d.ts +6 -0
- package/material/src/modules/virtualEditPopup.module.d.ts.map +1 -0
- package/material/src/modules/virtualEditPopup.module.ngfactory.d.ts.map +1 -0
- package/material/src/plugins/popup/components.d.ts +1 -0
- package/material/src/plugins/popup/components.d.ts.map +1 -1
- package/material/src/plugins/popup/index.d.ts +1 -0
- package/material/src/plugins/popup/index.d.ts.map +1 -1
- package/material/src/plugins/popup/virtualEdit/virtualEditPopup.component.d.ts +27 -0
- package/material/src/plugins/popup/virtualEdit/virtualEditPopup.component.d.ts.map +1 -0
- package/material/src/plugins/popup/virtualEdit/virtualEditPopup.component.html +22 -0
- package/material/src/plugins/popup/virtualEdit/virtualEditPopup.component.ngfactory.d.ts.map +1 -0
- package/material/src/plugins/popup/virtualEdit/virtualEditPopup.component.scss +67 -0
- package/material/src/plugins/popup/virtualEdit/virtualEditPopup.component.scss.shim.ngstyle.d.ts.map +1 -0
- package/material/src/plugins/popup/virtualEdit/virtualEditPopup.interface.d.ts +17 -0
- package/material/src/plugins/popup/virtualEdit/virtualEditPopup.interface.d.ts.map +1 -0
- package/package.json +17 -10
- package/popperJs/dist/es2015/popperjs/index.js +10 -0
- package/popperJs/dist/es2015/popperjs/public_api.js +7 -0
- package/popperJs/dist/es2015/popperjs/src/modules/popperjsPositioner.module.js +23 -0
- package/popperJs/dist/es2015/popperjs/src/plugins/positioner/components.js +7 -0
- package/popperJs/dist/es2015/popperjs/src/plugins/positioner/index.js +7 -0
- package/popperJs/dist/es2015/popperjs/src/plugins/positioner/popperJs/popperJsPositioner.component.js +242 -0
- package/popperJs/dist/es2015/popperjs/src/plugins/positioner/popperJs/popperjsPositioner.interface.js +16 -0
- package/popperJs/dist/es2015/popperjs/src/popperJs.js +9 -0
- package/popperJs/dist/es5/popperjs/index.js +10 -0
- package/popperJs/dist/es5/popperjs/public_api.js +7 -0
- package/popperJs/dist/es5/popperjs/src/modules/popperjsPositioner.module.js +27 -0
- package/popperJs/dist/es5/popperjs/src/plugins/positioner/components.js +7 -0
- package/popperJs/dist/es5/popperjs/src/plugins/positioner/index.js +7 -0
- package/popperJs/dist/es5/popperjs/src/plugins/positioner/popperJs/popperJsPositioner.component.js +290 -0
- package/popperJs/dist/es5/popperjs/src/plugins/positioner/popperJs/popperjsPositioner.interface.js +16 -0
- package/popperJs/dist/es5/popperjs/src/popperJs.js +9 -0
- package/popperJs/index.d.ts +6 -0
- package/popperJs/index.d.ts.map +1 -0
- package/popperJs/index.metadata.json +1 -0
- package/popperJs/package.json +9 -0
- package/popperJs/public_api.d.ts +2 -0
- package/popperJs/public_api.d.ts.map +1 -0
- package/popperJs/src/modules/popperjsPositioner.module.d.ts +6 -0
- package/popperJs/src/modules/popperjsPositioner.module.d.ts.map +1 -0
- package/popperJs/src/modules/popperjsPositioner.module.ngfactory.d.ts.map +1 -0
- package/popperJs/src/plugins/positioner/components.d.ts +2 -0
- package/popperJs/src/plugins/positioner/components.d.ts.map +1 -0
- package/popperJs/src/plugins/positioner/index.d.ts +2 -0
- package/popperJs/src/plugins/positioner/index.d.ts.map +1 -0
- package/popperJs/src/plugins/positioner/popperJs/popperJsPositioner.component.d.ts +75 -0
- package/popperJs/src/plugins/positioner/popperJs/popperJsPositioner.component.d.ts.map +1 -0
- package/popperJs/src/plugins/positioner/popperJs/popperJsPositioner.component.ngfactory.d.ts.map +1 -0
- package/popperJs/src/plugins/positioner/popperJs/popperjsPositioner.interface.d.ts +12 -0
- package/popperJs/src/plugins/positioner/popperJs/popperjsPositioner.interface.d.ts.map +1 -0
- package/popperJs/src/popperJs.d.ts +4 -0
- package/popperJs/src/popperJs.d.ts.map +1 -0
- package/select.metadata.json +1 -1
- package/src/plugins/liveSearch/edit/editLiveSearch.component.d.ts +0 -6
- package/src/plugins/liveSearch/edit/editLiveSearch.component.d.ts.map +1 -1
- package/src/plugins/liveSearch/edit/editLiveSearch.component.html +1 -1
- package/src/plugins/valueHandler/valueHandlerBase.d.ts.map +1 -1
- package/version.bak +1 -1
package/changelog.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## Version 10.0.0 (
|
|
3
|
+
## Version 10.0.0 (2022-02-17)
|
|
4
4
|
|
|
5
5
|
### Features
|
|
6
6
|
|
|
@@ -10,13 +10,21 @@
|
|
|
10
10
|
- added new option `activateOnResize` for `BasicPositioner` plugin, which allows turning on and off watching for resize event and changing position of popup, defaults to `true`
|
|
11
11
|
- added new `ScrollTargetSelector` service that is for obtaining scroll target
|
|
12
12
|
- added new `showOptionsButton` option for `EditNormalState`, allowing displaying or hiding button for displaying options
|
|
13
|
-
-
|
|
13
|
+
- added *subpackage* `@anglr/select/popperjs`
|
|
14
|
+
- *subpackage* `@anglr/select/material`
|
|
15
|
+
- added new `VirtualEditPopupModule` as module for `VirtualEditPopup` components, can also by used for non edit version
|
|
16
|
+
- added new `VirtualEditPopupComponent` plugin used for rendering virtual edit popup with options
|
|
17
|
+
- added `CssClassesVirtualEditPopup`, `VirtualEditPopupOptions`, `VirtualEditPopup` as interfaces for virtual edit popup
|
|
18
|
+
- *subpackage* `@anglr/select/popperjs`
|
|
19
|
+
- added new `PopperJsPositionerModule` as module for `PopperJsPositioner` components
|
|
20
|
+
- added new `PopperJsPositionerComponent` plugin used for positioning popup using `popper.js`
|
|
21
|
+
- added `PopperJsPositionerOptions`, `PopperJsPositioner` as interfaces for popper.js positioner
|
|
14
22
|
|
|
15
23
|
### BREAKING CHANGES
|
|
16
24
|
|
|
17
25
|
- minimal supported version of *Angular* is `10.0.0`
|
|
18
26
|
- minimal supported version of `@jscrpt/common` is `1.2.0`
|
|
19
|
-
- minimal supported version of `@anglr/common` is `
|
|
27
|
+
- minimal supported version of `@anglr/common` is `9.0.0`
|
|
20
28
|
- `BasicPositionerComponent` has new parameter in constructor `ScrollTargetSelector`
|
|
21
29
|
|
|
22
30
|
## Version 9.1.3 (2020-07-09)
|
|
@@ -1,19 +1,10 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
-
};
|
|
10
1
|
/**
|
|
11
2
|
* @fileoverview added by tsickle
|
|
12
3
|
* Generated from: src/plugins/liveSearch/edit/editLiveSearch.component.ts
|
|
13
4
|
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
14
5
|
*/
|
|
15
6
|
import { Component, ChangeDetectionStrategy, ChangeDetectorRef, Inject, Optional, ElementRef, ViewChild, EventEmitter } from '@angular/core';
|
|
16
|
-
import { extend, isPresent
|
|
7
|
+
import { extend, isPresent } from '@jscrpt/common';
|
|
17
8
|
import { STRING_LOCALIZATION } from '@anglr/common';
|
|
18
9
|
import { NG_SELECT_PLUGIN_INSTANCES } from '../../../components/select/types';
|
|
19
10
|
import { LIVE_SEARCH_OPTIONS } from '../types';
|
|
@@ -257,15 +248,6 @@ export class EditLiveSearchComponent {
|
|
|
257
248
|
this._changeDetector.detectChanges();
|
|
258
249
|
}
|
|
259
250
|
//######################### public methods - template bindings #########################
|
|
260
|
-
/**
|
|
261
|
-
* Handles user input value
|
|
262
|
-
* \@internal
|
|
263
|
-
* @param {?} value - Value of input
|
|
264
|
-
* @return {?}
|
|
265
|
-
*/
|
|
266
|
-
handleUserInput(value) {
|
|
267
|
-
this.handleInput(value, true);
|
|
268
|
-
}
|
|
269
251
|
/**
|
|
270
252
|
* Handle input value
|
|
271
253
|
* \@internal
|
|
@@ -385,7 +367,7 @@ export class EditLiveSearchComponent {
|
|
|
385
367
|
EditLiveSearchComponent.decorators = [
|
|
386
368
|
{ type: Component, args: [{
|
|
387
369
|
selector: "ng-edit-live-search",
|
|
388
|
-
template: "<div style=\"display: none;\">\r\n <div #liveSearchElement [ngClass]=\"options?.cssClasses?.wrapperDiv\">\r\n <input #inputElement\r\n [ngClass]=\"options?.cssClasses?.input\"\r\n type=\"text\"\r\n [value]=\"searchValueDisplayed\"\r\n (input)=\"
|
|
370
|
+
template: "<div style=\"display: none;\">\r\n <div #liveSearchElement [ngClass]=\"options?.cssClasses?.wrapperDiv\">\r\n <input #inputElement\r\n [ngClass]=\"options?.cssClasses?.input\"\r\n type=\"text\"\r\n [value]=\"searchValueDisplayed\"\r\n (input)=\"handleInput($any($event.target).value, true)\"\r\n (focus)=\"handleFocus($any($event.target))\"\r\n (click)=\"handleFocus($any($event.target), true)\"\r\n placeholder=\"{{texts?.inputPlaceholder}}\"\r\n [disabled]=\"pluginBus?.selectOptions.readonly\">\r\n </div>\r\n</div>",
|
|
389
371
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
390
372
|
styles: [".edit-wrapper-div\r\n{\r\n width: 100%;\r\n}\r\n\r\n.edit-control\r\n{\r\n padding: 4px;\r\n height: 26px;\r\n width: 100%;\r\n border: none;\r\n outline: none;\r\n}"]
|
|
391
373
|
},] }
|
|
@@ -403,12 +385,6 @@ EditLiveSearchComponent.propDecorators = {
|
|
|
403
385
|
liveSearchElementChild: [{ type: ViewChild, args: ['liveSearchElement',] }],
|
|
404
386
|
inputElementChild: [{ type: ViewChild, args: ['inputElement',] }]
|
|
405
387
|
};
|
|
406
|
-
__decorate([
|
|
407
|
-
DebounceCall(220),
|
|
408
|
-
__metadata("design:type", Function),
|
|
409
|
-
__metadata("design:paramtypes", [String]),
|
|
410
|
-
__metadata("design:returntype", void 0)
|
|
411
|
-
], EditLiveSearchComponent.prototype, "handleUserInput", null);
|
|
412
388
|
if (false) {
|
|
413
389
|
/**
|
|
414
390
|
* Popup plugin used within `NgSelect`
|
|
@@ -515,4 +491,4 @@ if (false) {
|
|
|
515
491
|
*/
|
|
516
492
|
EditLiveSearchComponent.prototype._stringLocalization;
|
|
517
493
|
}
|
|
518
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdExpdmVTZWFyY2guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3BsdWdpbnMvbGl2ZVNlYXJjaC9lZGl0L2VkaXRMaXZlU2VhcmNoLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUN0SixPQUFPLEVBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRCxPQUFPLEVBQUMsbUJBQW1CLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBTXRFLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQzVFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUU3QyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFFdkQsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBRXhDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7O01BT3RELGNBQWMsR0FDcEI7SUFDSSxVQUFVLEVBQ1Y7UUFDSSxVQUFVLEVBQUUsa0JBQWtCO1FBQzlCLEtBQUssRUFBRSxjQUFjO0tBQ3hCO0lBQ0QsS0FBSyxFQUNMO1FBQ0ksZ0JBQWdCLEVBQUUsYUFBYTtLQUVsQztJQUNELGVBQWUsRUFBRSxLQUFLO0lBQ3RCLGlCQUFpQixFQUFFLEtBQUs7SUFDeEIsV0FBVyxFQUFFLEtBQUs7Q0FDckI7Ozs7QUFZRCxNQUFNLE9BQU8sdUJBQXVCOzs7Ozs7Ozs7O0lBMEhoQyxZQUFtRSxlQUF3QyxFQUM1RSxTQUFvQixFQUNoQyxh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Ozs7O0lBUW5DLHlEQUN1RDs7Ozs7O0lBTXZELG9EQUN1RDs7SUFHM0Msa0RBQStGOztJQUMvRiw0Q0FBdUM7O0lBQ3ZDLGdEQUFnQzs7Ozs7SUFDaEMsa0RBQTRDOzs7OztJQUM1QyxzREFBOEUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBJbmplY3QsIE9wdGlvbmFsLCBFbGVtZW50UmVmLCBWaWV3Q2hpbGQsIEV2ZW50RW1pdHRlciwgT25EZXN0cm95fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtleHRlbmQsIGlzUHJlc2VudCwgRGVib3VuY2VDYWxsfSBmcm9tICdAanNjcnB0L2NvbW1vbic7XHJcbmltcG9ydCB7U1RSSU5HX0xPQ0FMSVpBVElPTiwgU3RyaW5nTG9jYWxpemF0aW9ufSBmcm9tICdAYW5nbHIvY29tbW9uJztcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHtFZGl0TGl2ZVNlYXJjaE9wdGlvbnMsIEVkaXRMaXZlU2VhcmNofSBmcm9tICcuL2VkaXRMaXZlU2VhcmNoLmludGVyZmFjZSc7XHJcbmltcG9ydCB7TmdTZWxlY3RQbHVnaW4sIE9wdGlvbnNHYXRoZXJlcn0gZnJvbSAnLi4vLi4vLi4vbWlzYyc7XHJcbmltcG9ydCB7TmdTZWxlY3RQbHVnaW5JbnN0YW5jZXN9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvc2VsZWN0JztcclxuaW1wb3J0IHtOR19TRUxFQ1RfUExVR0lOX0lOU1RBTkNFU30gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9zZWxlY3QvdHlwZXMnO1xyXG5pbXBvcnQge0xJVkVfU0VBUkNIX09QVElPTlN9IGZyb20gJy4uL3R5cGVzJztcclxuaW1wb3J0IHtWYWx1ZUhhbmRsZXJ9IGZyb20gJy4uLy4uL3ZhbHVlSGFuZGxlcic7XHJcbmltcG9ydCB7VkFMVUVfSEFORExFUn0gZnJvbSAnLi4vLi4vdmFsdWVIYW5kbGVyL3R5cGVzJztcclxuaW1wb3J0IHtQb3B1cH0gZnJvbSAnLi4vLi4vcG9wdXAnO1xyXG5pbXBvcnQge1BPUFVQfSBmcm9tICcuLi8uLi9wb3B1cC90eXBlcyc7XHJcbmltcG9ydCB7ybVOZ1NlbGVjdE9wdGlvbn0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9vcHRpb24nO1xyXG5pbXBvcnQge1BsdWdpbkJ1c30gZnJvbSAnLi4vLi4vLi4vbWlzYy9wbHVnaW5CdXMvcGx1Z2luQnVzJztcclxuaW1wb3J0IHtMaXZlU2VhcmNoVGV4dHN9IGZyb20gJy4uL2xpdmVTZWFyY2guaW50ZXJmYWNlJztcclxuXHJcbi8qKlxyXG4gKiBEZWZhdWx0IG9wdGlvbnMgZm9yIGxpdmUgc2VhcmNoXHJcbiAqIEBpbnRlcm5hbFxyXG4gKi9cclxuY29uc3QgZGVmYXVsdE9wdGlvbnM6IEVkaXRMaXZlU2VhcmNoT3B0aW9ucyA9XHJcbntcclxuICAgIGNzc0NsYXNzZXM6XHJcbiAgICB7XHJcbiAgICAgICAgd3JhcHBlckRpdjogJ2VkaXQtd3JhcHBlci1kaXYnLFxyXG4gICAgICAgIGlucHV0OiAnZWRpdC1jb250cm9sJ1xyXG4gICAgfSxcclxuICAgIHRleHRzOlxyXG4gICAge1xyXG4gICAgICAgIGlucHV0UGxhY2Vob2xkZXI6ICdTZWxlY3QgaXRlbSdcclxuXHJcbiAgICB9LFxyXG4gICAga2VlcFNlYXJjaFZhbHVlOiBmYWxzZSxcclxuICAgIG5vbkV4aXN0aW5nQ2FuY2VsOiBmYWxzZSxcclxuICAgIGVtcHR5Q2FuY2VsOiBmYWxzZVxyXG59O1xyXG5cclxuLyoqXHJcbiAqIENvbXBvbmVudCB1c2VkIGZvciBvYnRhaW5pbmcgZWRpdCBsaXZlIHNlYXJjaCBodG1sIGVsZW1lbnRcclxuICovXHJcbkBDb21wb25lbnQoXHJcbntcclxuICAgIHNlbGVjdG9yOiBcIm5nLWVkaXQtbGl2ZS1zZWFyY2hcIixcclxuICAgIHRlbXBsYXRlVXJsOiAnZWRpdExpdmVTZWFyY2guY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJ2VkaXRMaXZlU2VhcmNoLmNvbXBvbmVudC5jc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFZGl0TGl2ZVNlYXJjaENvbXBvbmVudCBpbXBsZW1lbnRzIEVkaXRMaXZlU2VhcmNoLCBOZ1NlbGVjdFBsdWdpbjxFZGl0TGl2ZVNlYXJjaE9wdGlvbnM+LCBPbkRlc3Ryb3lcclxue1xyXG4gICAgLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIHByb3RlY3RlZCBmaWVsZHMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUG9wdXAgcGx1Z2luIHVzZWQgd2l0aGluIGBOZ1NlbGVjdGBcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF9wb3B1cDogUG9wdXA7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWx1ZSBoYW5kbGVyIHBsdWdpbiB1c2VkIHdpdGhpbiBgTmdTZWxlY3RgXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfdmFsdWVIYW5kbGVyOiBWYWx1ZUhhbmRsZXI7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbnN0YW5jZSBvZiBwcmV2aW91cyBvcHRpb25zIGdhdGhlcmVyLCB0aGF0IGlzIHVzZWQgZm9yIG9idGFpbmluZyBhdmFpbGFibGUgb3B0aW9uc1xyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX29wdGlvbnNHYXRoZXJlcjogT3B0aW9uc0dhdGhlcmVyO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU3Vic2NyaXB0aW9uIGZvciBjaGFuZ2VzIG9mIG9wdGlvbnMgaW4gb3B0aW9ucyBnYXRoZXJlclxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX29wdGlvbnNDaGFuZ2VTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFN1YnNjcmlwdGlvbiBmb3IgY2hhbmdlcyBpbiB0ZXh0c1xyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX3RleHRzQ2hhbmdlZFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU3Vic2NyaXB0aW9uIGZvciBjaGFuZ2VzIG9mIHNlbGVjdGVkIHZhbHVlXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfdmFsdWVDaGFuZ2VkU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTdWJzY3JpcHRpb24gZm9yIGxpdmUgc2VhcmNoIGZvY3VzIHJlcXVlc3RcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF9saXZlU2VhcmNoRm9jdXNTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFN1YnNjcmlwdGlvbiBmb3IgdXBkYXRlIGRpc3BsYXllZCB2YWx1ZSByZXF1ZXN0XHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfdXBkYXRlRGlzcGxheWVkVmFsdWVTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE9wdGlvbnMgZm9yIE5nU2VsZWN0IHBsdWdpblxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX29wdGlvbnM6IEVkaXRMaXZlU2VhcmNoT3B0aW9ucztcclxuXHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgcHJvdGVjdGVkIHByb3BlcnRpZXMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBjdXJyZW50bHkgYXZhaWxhYmxlIG9wdGlvbnNcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGdldCBhdmFpbGFibGVPcHRpb25zKCk6IMm1TmdTZWxlY3RPcHRpb25bXVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBsdWdpbkJ1cy5zZWxlY3RPcHRpb25zLm9wdGlvbnNHYXRoZXJlci5hdmFpbGFibGVPcHRpb25zO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBwdWJsaWMgcHJvcGVydGllcyAtIGltcGxlbWVudGF0aW9uIG9mIEVkaXRMaXZlU2VhcmNoICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIE9wdGlvbnMgZm9yIE5nU2VsZWN0IHBsdWdpblxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IG9wdGlvbnMoKTogRWRpdExpdmVTZWFyY2hPcHRpb25zXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX29wdGlvbnM7XHJcbiAgICB9XHJcbiAgICBwdWJsaWMgc2V0IG9wdGlvbnMob3B0aW9uczogRWRpdExpdmVTZWFyY2hPcHRpb25zKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX29wdGlvbnMgPSBleHRlbmQodHJ1ZSwgdGhpcy5fb3B0aW9ucywgb3B0aW9ucyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIVE1MIGVsZW1lbnQgdGhhdCByZXByZXNlbnRzIGxpdmUgc2VhcmNoXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgbGl2ZVNlYXJjaEVsZW1lbnQoKTogSFRNTEVsZW1lbnRcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5saXZlU2VhcmNoRWxlbWVudENoaWxkLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDdXJyZW50IHZhbHVlIG9mIGxpdmUgc2VhcmNoXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZWFyY2hWYWx1ZTogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE9jY3VycyB3aGVuIGN1cnJlbnQgdmFsdWUgb2YgbGl2ZSBzZWFyY2ggY2hhbmdlc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2VhcmNoVmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgcHVibGljIHByb3BlcnRpZXMgLSB0ZW1wbGF0ZSBiaW5kaW5ncyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDdXJyZW50IHZhbHVlIHRoYXQgaXMgZGlzcGxheWVkXHJcbiAgICAgKiBAaW50ZXJuYWxcclxuICAgICAqL1xyXG4gICAgcHVibGljIHNlYXJjaFZhbHVlRGlzcGxheWVkOiBzdHJpbmcgPSBudWxsO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogT2JqZWN0IGNvbnRhaW5pbmcgYXZhaWxhYmxlIHRleHRzXHJcbiAgICAgKiBAaW50ZXJuYWxcclxuICAgICAqL1xyXG4gICAgcHVibGljIHRleHRzOiBMaXZlU2VhcmNoVGV4dHMgPSB7fTtcclxuXHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgcHVibGljIHByb3BlcnRpZXMgLSBjaGlsZHJlbiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWaWV3IGNoaWxkIHRoYXQgcmVwcmVzZW50cyBsaXZlIHNlYXJjaCBlbGVtZW50XHJcbiAgICAgKiBAaW50ZXJuYWxcclxuICAgICAqL1xyXG4gICAgQFZpZXdDaGlsZCgnbGl2ZVNlYXJjaEVsZW1lbnQnKVxyXG4gICAgcHVibGljIGxpdmVTZWFyY2hFbGVtZW50Q2hpbGQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmlldyBjaGlsZCB0aGF0IHJlcHJlc2VudHMgaW5wdXQgZWxlbWVudFxyXG4gICAgICogQGludGVybmFsXHJcbiAgICAgKi9cclxuICAgIEBWaWV3Q2hpbGQoJ2lucHV0RWxlbWVudCcpXHJcbiAgICBwdWJsaWMgaW5wdXRFbGVtZW50Q2hpbGQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XHJcblxyXG4gICAgLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIGNvbnN0cnVjdG9yICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoTkdfU0VMRUNUX1BMVUdJTl9JTlNUQU5DRVMpIEBPcHRpb25hbCgpIHB1YmxpYyBuZ1NlbGVjdFBsdWdpbnM6IE5nU2VsZWN0UGx1Z2luSW5zdGFuY2VzLFxyXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgcHVibGljIHBsdWdpbkJ1czogUGx1Z2luQnVzLFxyXG4gICAgICAgICAgICAgICAgcHVibGljIHBsdWdpbkVsZW1lbnQ6IEVsZW1lbnRSZWYsXHJcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgICAgICAgICAgICAgIEBJbmplY3QoU1RSSU5HX0xPQ0FMSVpBVElPTikgcHJvdGVjdGVkIF9zdHJpbmdMb2NhbGl6YXRpb246IFN0cmluZ0xvY2FsaXphdGlvbixcclxuICAgICAgICAgICAgICAgIEBJbmplY3QoTElWRV9TRUFSQ0hfT1BUSU9OUykgQE9wdGlvbmFsKCkgb3B0aW9ucz86IEVkaXRMaXZlU2VhcmNoT3B0aW9ucylcclxuICAgIHtcclxuICAgICAgICB0aGlzLl9vcHRpb25zID0gZXh0ZW5kKHRydWUsIHt9LCBkZWZhdWx0T3B0aW9ucywgb3B0aW9ucyk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIHB1YmxpYyBtZXRob2RzIC0gaW1wbGVtZW50YXRpb24gb2YgT25EZXN0cm95ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGxlZCB3aGVuIGNvbXBvbmVudCBpcyBkZXN0cm95ZWRcclxuICAgICAqL1xyXG4gICAgcHVibGljIG5nT25EZXN0cm95KClcclxuICAgIHtcclxuICAgICAgICB0aGlzLl9vcHRpb25zQ2hhbmdlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIHRoaXMuX29wdGlvbnNDaGFuZ2VTdWJzY3JpcHRpb24gPSBudWxsO1xyXG5cclxuICAgICAgICB0aGlzLl90ZXh0c0NoYW5nZWRTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgdGhpcy5fdGV4dHNDaGFuZ2VkU3Vic2NyaXB0aW9uID0gbnVsbDtcclxuXHJcbiAgICAgICAgdGhpcy5fdmFsdWVDaGFuZ2VkU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIHRoaXMuX3ZhbHVlQ2hhbmdlZFN1YnNjcmlwdGlvbiA9IG51bGw7XHJcblxyXG4gICAgICAgIHRoaXMuX2xpdmVTZWFyY2hGb2N1c1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB0aGlzLl9saXZlU2VhcmNoRm9jdXNTdWJzY3JpcHRpb24gPSBudWxsO1xyXG5cclxuICAgICAgICB0aGlzLl91cGRhdGVEaXNwbGF5ZWRWYWx1ZVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB0aGlzLl91cGRhdGVEaXNwbGF5ZWRWYWx1ZVN1YnNjcmlwdGlvbiA9IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIHB1YmxpYyBtZXRob2RzIC0gaW1wbGVtZW50YXRpb24gb2YgRWRpdExpdmVTZWFyY2ggIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5pdGlhbGl6ZSBwbHVnaW4sIHRvIGJlIHJlYWR5IHRvIHVzZSwgaW5pdGlhbGl6ZSBjb21tdW5pY2F0aW9uIHdpdGggb3RoZXIgcGx1Z2luc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaW5pdGlhbGl6ZSgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fdGV4dHNDaGFuZ2VkU3Vic2NyaXB0aW9uID0gdGhpcy5fc3RyaW5nTG9jYWxpemF0aW9uLnRleHRzQ2hhbmdlLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9pbml0VGV4dHMoKSk7XHJcblxyXG4gICAgICAgIGlmKHRoaXMuX29wdGlvbnNHYXRoZXJlciAmJiB0aGlzLl9vcHRpb25zR2F0aGVyZXIgIT0gdGhpcy5wbHVnaW5CdXMuc2VsZWN0T3B0aW9ucy5vcHRpb25zR2F0aGVyZXIpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl9vcHRpb25zQ2hhbmdlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgICAgIHRoaXMuX29wdGlvbnNDaGFuZ2VTdWJzY3JpcHRpb24gPSBudWxsO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fb3B0aW9uc0dhdGhlcmVyID0gbnVsbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmKCF0aGlzLl9vcHRpb25zR2F0aGVyZXIpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl9vcHRpb25zR2F0aGVyZXIgPSB0aGlzLnBsdWdpbkJ1cy5zZWxlY3RPcHRpb25zLm9wdGlvbnNHYXRoZXJlcjtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX29wdGlvbnNDaGFuZ2VTdWJzY3JpcHRpb24gPSB0aGlzLl9vcHRpb25zR2F0aGVyZXIuYXZhaWxhYmxlT3B0aW9uc0NoYW5nZS5zdWJzY3JpYmUoKCkgPT5cclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgLy9kbyBub3QgY2hhbmdlIGFjdGl2ZSBpZiBhY3RpdmUgaXMgdmlzaWJsZVxyXG4gICAgICAgICAgICAgICAgaWYoIXRoaXMucGx1Z2luQnVzLnNlbGVjdE9wdGlvbnMub3B0aW9uc0dhdGhlcmVyLmF2YWlsYWJsZU9wdGlvbnMuZmluZCgob3B0aW9uOiDJtU5nU2VsZWN0T3B0aW9uKSA9PiBvcHRpb24uYWN0aXZlKSlcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAvL29ubHkgd2hlbiBpbnB1dCBpcyBmaWxsZWQgYXQgbGVhc3Qgd2l0aCBvbmUgY2hhclxyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMuc2VhcmNoVmFsdWUpXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgb3B0aW9uOiDJtU5nU2VsZWN0T3B0aW9uID0gdGhpcy5wbHVnaW5CdXMuc2VsZWN0T3B0aW9ucy5vcHRpb25zR2F0aGVyZXIuYXZhaWxhYmxlT3B0aW9ucy5maW5kKGl0bSA9PiB0aGlzLnBsdWdpbkJ1cy5zZWxlY3RPcHRpb25zLmxpdmVTZWFyY2hGaWx0ZXIodGhpcy5zZWFyY2hWYWx1ZSwgdGhpcy5wbHVnaW5CdXMuc2VsZWN0T3B0aW9ucy5ub3JtYWxpemVyKShpdG0pKTtcclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZihvcHRpb24pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucGx1Z2luQnVzLnNlbGVjdE9wdGlvbnMub3B0aW9uc0dhdGhlcmVyLm9wdGlvbnMuZm9yRWFjaCgob3B0aW9uOiDJtU5nU2VsZWN0T3B0aW9uKSA9PiBvcHRpb24uYWN0aXZlID0gZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9wb3B1cC5pbnZhbGlkYXRlVmlzdWFscygpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIC8vc2VsZWN0IGZpcnN0XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fYWN0aXZhdGVTZWxlY3RlZE9yRmlyc3QoKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IHBvcHVwID0gdGhpcy5uZ1NlbGVjdFBsdWdpbnNbUE9QVVBdIGFzIFBvcHVwO1xyXG5cclxuICAgICAgICBpZih0aGlzLl9wb3B1cCAmJiB0aGlzLl9wb3B1cCAhPSBwb3B1cClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX3BvcHVwID0gbnVsbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmKCF0aGlzLl9wb3B1cClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX3BvcHVwID0gcG9wdXA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZighdGhpcy5fbGl2ZVNlYXJjaEZvY3VzU3Vic2NyaXB0aW9uKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5fbGl2ZVNlYXJjaEZvY3VzU3Vic2NyaXB0aW9uID0gdGhpcy5wbHVnaW5CdXMubGl2ZVNlYXJjaEZvY3VzLnN1YnNjcmliZSgoKSA9PlxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0RWxlbWVudENoaWxkPy5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYoIXRoaXMuX3VwZGF0ZURpc3BsYXllZFZhbHVlU3Vic2NyaXB0aW9uKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5fdXBkYXRlRGlzcGxheWVkVmFsdWVTdWJzY3JpcHRpb24gPSB0aGlzLnBsdWdpbkJ1cy51cGRhdGVEaXNwbGF5ZWRWYWx1ZS5zdWJzY3JpYmUoKCkgPT5cclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVCbHVyKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IHZhbHVlSGFuZGxlciA9IHRoaXMubmdTZWxlY3RQbHVnaW5zW1ZBTFVFX0hBTkRMRVJdIGFzIFZhbHVlSGFuZGxlcjtcclxuXHJcbiAgICAgICAgaWYodGhpcy5fdmFsdWVIYW5kbGVyICYmIHRoaXMuX3ZhbHVlSGFuZGxlciAhPSB2YWx1ZUhhbmRsZXIpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl92YWx1ZUNoYW5nZWRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgICAgdGhpcy5fdmFsdWVDaGFuZ2VkU3Vic2NyaXB0aW9uID0gbnVsbDtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlSGFuZGxlciA9IG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZighdGhpcy5fdmFsdWVIYW5kbGVyKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5fdmFsdWVIYW5kbGVyID0gdmFsdWVIYW5kbGVyO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fdmFsdWVDaGFuZ2VkU3Vic2NyaXB0aW9uID0gdGhpcy5fdmFsdWVIYW5kbGVyLnZhbHVlQ2hhbmdlLnN1YnNjcmliZSgoKSA9PlxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBsZXQgc2VsZWN0ZWQgPSB0aGlzLl92YWx1ZUhhbmRsZXIuc2VsZWN0ZWRPcHRpb25zO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmKCFzZWxlY3RlZClcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaFZhbHVlRGlzcGxheWVkID0gJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVJbnB1dCgnJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgLy9yZXNldCBmaWx0ZXJpbmcgb2YgYXZhaWxhYmxlIG9wdGlvbnNcclxuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlSW5wdXQobnVsbCk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYoQXJyYXkuaXNBcnJheShzZWxlY3RlZCkpXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hWYWx1ZURpc3BsYXllZCA9ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Q2hpbGQ/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy9zZXQgc2VsZWN0ZWQgaW50byBsaXZlIHNlYXJjaFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoVmFsdWVEaXNwbGF5ZWQgPSBzZWxlY3RlZC50ZXh0O1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLy9zZWxlY3QgY3VycmVudCB0ZXh0XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnRDaGlsZD8ubmF0aXZlRWxlbWVudC5zZWxlY3QoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9pbml0VGV4dHMoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEluaXRpYWxpemUgcGx1Z2luIG9wdGlvbnMsIGFsbCBvcGVyYXRpb25zIHJlcXVpcmVkIHRvIGJlIGRvbmUgd2l0aCBwbHVnaW4gb3B0aW9ucyBhcmUgaGFuZGxlZCBoZXJlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBpbml0T3B0aW9ucygpXHJcbiAgICB7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFeHBsaWNpdGx5IHJ1bnMgaW52YWxpZGF0aW9uIG9mIGNvbnRlbnQgKGNoYW5nZSBkZXRlY3Rpb24pXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBpbnZhbGlkYXRlVmlzdWFscygpOiB2b2lkXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBwdWJsaWMgbWV0aG9kcyAtIHRlbXBsYXRlIGJpbmRpbmdzICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIEhhbmRsZXMgdXNlciBpbnB1dCB2YWx1ZVxyXG4gICAgICogQHBhcmFtIHZhbHVlIC0gVmFsdWUgb2YgaW5wdXRcclxuICAgICAqIEBpbnRlcm5hbFxyXG4gICAgICovXHJcbiAgICBARGVib3VuY2VDYWxsKDIyMClcclxuICAgIHB1YmxpYyBoYW5kbGVVc2VySW5wdXQodmFsdWU6IHN0cmluZylcclxuICAgIHtcclxuICAgICAgICB0aGlzLmhhbmRsZUlucHV0KHZhbHVlLCB0cnVlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEhhbmRsZSBpbnB1dCB2YWx1ZVxyXG4gICAgICogQHBhcmFtIHZhbHVlIC0gVmFsdWUgb2YgaW5wdXRcclxuICAgICAqIEBwYXJhbSBpbnB1dENoYW5nZSAtIEluZGljYXRpb24gdGhhdCBjaGFuZ2Ugd2FzIGJ5IGlucHV0IGV2ZW50IG9mIGlucHV0XHJcbiAgICAgKiBAaW50ZXJuYWxcclxuICAgICAqL1xyXG4gICAgcHVibGljIGhhbmRsZUlucHV0KHZhbHVlOiBzdHJpbmcsIGlucHV0Q2hhbmdlOiBib29sZWFuID0gZmFsc2UpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5zZWFyY2hWYWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuc2VhcmNoVmFsdWVDaGFuZ2UuZW1pdCgpO1xyXG5cclxuICAgICAgICBpZihpbnB1dENoYW5nZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luQnVzLnNob3dIaWRlUG9wdXAuZW1pdCh0cnVlKTtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hWYWx1ZURpc3BsYXllZCA9IHZhbHVlO1xyXG5cclxuICAgICAgICAgICAgLy9zaW5nbGUgdmFsdWUgc2VsZWN0XHJcbiAgICAgICAgICAgIGlmKCF0aGlzLnBsdWdpbkJ1cy5zZWxlY3RPcHRpb25zLm11bHRpcGxlKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAvL2NhbmNlbCB2YWx1ZVxyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5fb3B0aW9ucy5ub25FeGlzdGluZ0NhbmNlbClcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl92YWx1ZUhhbmRsZXIuc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvL2VtcHR5IHN0cmluZyBjYW5jZWxzIHZhbHVlXHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmKHRoaXMuX29wdGlvbnMuZW1wdHlDYW5jZWwgJiYgaXNQcmVzZW50KHZhbHVlKSAmJiAhdmFsdWUubGVuZ3RoKVxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3ZhbHVlSGFuZGxlci5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8vb3RoZXJ3aXNlIGtlZXAgbGFzdCB2YWx1ZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSGFuZGxlcyBmb2N1cyBldmVudFxyXG4gICAgICogQHBhcmFtIGVsZW1lbnQgLSBFbGVtZW50IHRoYXQgZ290IGZvY3VzXHJcbiAgICAgKiBAcGFyYW0gc2hvdyAtIEluZGljYXRpb24gd2hldGhlciBzaG93IHBvcHVwXHJcbiAgICAgKiBAaW50ZXJuYWxcclxuICAgICAqL1xyXG4gICAgcHVibGljIGhhbmRsZUZvY3VzKGVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQsIHNob3c6IGJvb2xlYW4gPSBmYWxzZSlcclxuICAgIHtcclxuICAgICAgICBlbGVtZW50LnNlbGVjdCgpO1xyXG5cclxuICAgICAgICB0aGlzLl9hY3RpdmF0ZVNlbGVjdGVkT3JGaXJzdCgpO1xyXG5cclxuICAgICAgICBpZihzaG93KVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW5CdXMuc2hvd0hpZGVQb3B1cC5lbWl0KHRydWUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5wbHVnaW5CdXMuZm9jdXMuZW1pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSGFuZGxlcyBibHVyIG9mIGxpdmUgc2VhcmNoXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBoYW5kbGVCbHVyKClcclxuICAgIHtcclxuICAgICAgICAvL25vdCBtdWx0aXBsZSBhbmQgc2VsZWN0ZWQgdmFsdWVcclxuICAgICAgICBpZighdGhpcy5wbHVnaW5CdXMuc2VsZWN0T3B0aW9ucy5tdWx0aXBsZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIC8vdXNlIHNlbGVjdGVkIHRleHRcclxuICAgICAgICAgICAgaWYodGhpcy5fdmFsdWVIYW5kbGVyLnNlbGVjdGVkT3B0aW9ucyAmJiAhQXJyYXkuaXNBcnJheSh0aGlzLl92YWx1ZUhhbmRsZXIuc2VsZWN0ZWRPcHRpb25zKSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hWYWx1ZURpc3BsYXllZCA9IHRoaXMuX3ZhbHVlSGFuZGxlci5zZWxlY3RlZE9wdGlvbnMudGV4dDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvL3Jlc2V0IHRleHRcclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaFZhbHVlRGlzcGxheWVkID0gJyc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLy9yZXNldCB0ZXh0XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hWYWx1ZURpc3BsYXllZCA9ICcnO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy9yZXNldCBhdmFpbGFibGUgb3B0aW9uc1xyXG4gICAgICAgIHRoaXMuc2VhcmNoVmFsdWUgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuc2VhcmNoVmFsdWVDaGFuZ2UuZW1pdCgpO1xyXG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgcHJvdGVjdGVkIG1ldGhvZHMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5pdGlhbGl6ZSB0ZXh0c1xyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX2luaXRUZXh0cygpXHJcbiAgICB7XHJcbiAgICAgICAgT2JqZWN0LmtleXModGhpcy5vcHRpb25zLnRleHRzKS5mb3JFYWNoKGtleSA9PlxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy50ZXh0c1trZXldID0gdGhpcy5fc3RyaW5nTG9jYWxpemF0aW9uLmdldCh0aGlzLm9wdGlvbnMudGV4dHNba2V5XSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFjdGl2YXRlcyBmaXJzdCBhdmFpbGFibGUgb3B0aW9uIG9yIHNlbGVjdGVkIG9wdGlvblxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX2FjdGl2YXRlU2VsZWN0ZWRPckZpcnN0KClcclxuICAgIHtcclxuICAgICAgICBsZXQgYWN0aXZlT3B0aW9uID0gdGhpcy5hdmFpbGFibGVPcHRpb25zLmZpbmQoaXRtID0+IGl0bS5hY3RpdmUpO1xyXG4gICAgICAgIGxldCBzZWxlY3RlZE9wdGlvbnMgPSB0aGlzLmF2YWlsYWJsZU9wdGlvbnMuZmlsdGVyKGl0bSA9PiBpdG0uc2VsZWN0ZWQpO1xyXG5cclxuICAgICAgICAvL25vdGhpbmcgYWN0aXZlLCBub3RoaW5nIHNlbGVjdGVkXHJcbiAgICAgICAgaWYoIWFjdGl2ZU9wdGlvbiAmJiAhc2VsZWN0ZWRPcHRpb25zLmxlbmd0aClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGxldCBmaXJzdCA9IHRoaXMuYXZhaWxhYmxlT3B0aW9uc1swXTtcclxuXHJcbiAgICAgICAgICAgIGlmKGZpcnN0KVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBmaXJzdC5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vbm90aGluZyBhY3RpdmVcclxuICAgICAgICBlbHNlIGlmKCFhY3RpdmVPcHRpb24pXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICAvL2xhc3Qgc2VsZWN0ZWQgYXMgc2FjdGl2ZVxyXG4gICAgICAgICAgICBzZWxlY3RlZE9wdGlvbnNbc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCAtIDFdLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59Il19
|
|
494
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdExpdmVTZWFyY2guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3BsdWdpbnMvbGl2ZVNlYXJjaC9lZGl0L2VkaXRMaXZlU2VhcmNoLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUN0SixPQUFPLEVBQUMsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxtQkFBbUIsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFNdEUsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDNUUsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sVUFBVSxDQUFDO0FBRTdDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUV2RCxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFFeEMsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7TUFPdEQsY0FBYyxHQUNwQjtJQUNJLFVBQVUsRUFDVjtRQUNJLFVBQVUsRUFBRSxrQkFBa0I7UUFDOUIsS0FBSyxFQUFFLGNBQWM7S0FDeEI7SUFDRCxLQUFLLEVBQ0w7UUFDSSxnQkFBZ0IsRUFBRSxhQUFhO0tBRWxDO0lBQ0QsZUFBZSxFQUFFLEtBQUs7SUFDdEIsaUJBQWlCLEVBQUUsS0FBSztJQUN4QixXQUFXLEVBQUUsS0FBSztDQUNyQjs7OztBQVlELE1BQU0sT0FBTyx1QkFBdUI7Ozs7Ozs7Ozs7SUEwSGhDLFlBQW1FLGVBQXdDLEVBQzVFLFNBQW9CLEVBQ2hDLGFBQXlCLEVBQ3RCLGVBQWtDLEVBQ0wsbUJBQXVDLEVBQ3JDLE9BQStCO1FBTGpCLG9CQUFlLEdBQWYsZUFBZSxDQUF5QjtRQUM1RSxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ2hDLGtCQUFhLEdBQWIsYUFBYSxDQUFZO1FBQ3RCLG9CQUFlLEdBQWYsZUFBZSxDQUFtQjtRQUNMLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBb0I7Ozs7UUExQ25GLGdCQUFXLEdBQVcsSUFBSSxDQUFDOzs7O1FBSzNCLHNCQUFpQixHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDOzs7Ozs7UUFRakUseUJBQW9CLEdBQVcsSUFBSSxDQUFDOzs7OztRQU1wQyxVQUFLLEdBQW9CLEVBQUUsQ0FBQztRQTBCL0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDOUQsQ0FBQzs7Ozs7OztJQTVFRCxJQUFjLGdCQUFnQjtRQUUxQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQztJQUN6RSxDQUFDOzs7Ozs7SUFPRCxJQUFXLE9BQU87UUFFZCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQzs7Ozs7SUFDRCxJQUFXLE9BQU8sQ0FBQyxPQUE4QjtRQUU3QyxJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN6RCxDQUFDOzs7OztJQUtELElBQVcsaUJBQWlCO1FBRXhCLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLGFBQWEsQ0FBQztJQUNyRCxDQUFDOzs7Ozs7SUEwRE0sV0FBVzs7UUFFZCxNQUFBLElBQUksQ0FBQywwQkFBMEIsMENBQUUsV0FBVyxHQUFHO1FBQy9DLElBQUksQ0FBQywwQkFBMEIsR0FBRyxJQUFJLENBQUM7UUFFdkMsTUFBQSxJQUFJLENBQUMseUJBQXlCLDBDQUFFLFdBQVcsR0FBRztRQUM5QyxJQUFJLENBQUMseUJBQXlCLEdBQUcsSUFBSSxDQUFDO1FBRXRDLE1BQUEsSUFBSSxDQUFDLHlCQUF5QiwwQ0FBRSxXQUFXLEdBQUc7UUFDOUMsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQztRQUV0QyxNQUFBLElBQUksQ0FBQyw0QkFBNEIsMENBQUUsV0FBVyxHQUFHO1FBQ2pELElBQUksQ0FBQyw0QkFBNEIsR0FBRyxJQUFJLENBQUM7UUFFekMsTUFBQSxJQUFJLENBQUMsaUNBQWlDLDBDQUFFLFdBQVcsR0FBRztRQUN0RCxJQUFJLENBQUMsaUNBQWlDLEdBQUcsSUFBSSxDQUFDO0lBQ2xELENBQUM7Ozs7OztJQU9NLFVBQVU7UUFFYixJQUFJLENBQUMseUJBQXlCLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxTQUFTOzs7UUFBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUMsQ0FBQztRQUV6RyxJQUFHLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsZUFBZSxFQUNqRztZQUNJLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUM5QyxJQUFJLENBQUMsMEJBQTBCLEdBQUcsSUFBSSxDQUFDO1lBRXZDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7U0FDaEM7UUFFRCxJQUFHLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUN6QjtZQUNJLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUM7WUFFckUsSUFBSSxDQUFDLDBCQUEwQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTOzs7WUFBQyxHQUFHLEVBQUU7Z0JBRTFGLDJDQUEyQztnQkFDM0MsSUFBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJOzs7O2dCQUFDLENBQUMsTUFBdUIsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBQyxFQUNsSDtvQkFDSSxrREFBa0Q7b0JBQ2xELElBQUcsSUFBSSxDQUFDLFdBQVcsRUFDbkI7OzRCQUNRLE1BQU0sR0FBb0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLElBQUk7Ozs7d0JBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFDO3dCQUV0TixJQUFHLE1BQU0sRUFDVDs0QkFDSSxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLE9BQU87Ozs7NEJBQUMsQ0FBQyxNQUF1QixFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLEtBQUssRUFBQyxDQUFDOzRCQUNqSCxNQUFNLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQzs0QkFDckIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO3lCQUNuQztxQkFDSjtvQkFDRCxjQUFjO3lCQUVkO3dCQUNJLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO3FCQUNuQztpQkFDSjtZQUNMLENBQUMsRUFBQyxDQUFDO1NBQ047O1lBRUcsS0FBSyxHQUFHLG1CQUFBLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLEVBQVM7UUFFaEQsSUFBRyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksS0FBSyxFQUN0QztZQUNJLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1NBQ3RCO1FBRUQsSUFBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQ2Y7WUFDSSxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztTQUN2QjtRQUVELElBQUcsQ0FBQyxJQUFJLENBQUMsNEJBQTRCLEVBQ3JDO1lBQ0ksSUFBSSxDQUFDLDRCQUE0QixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLFNBQVM7OztZQUFDLEdBQUcsRUFBRTs7Z0JBRTlFLE1BQUEsSUFBSSxDQUFDLGlCQUFpQiwwQ0FBRSxhQUFhLENBQUMsS0FBSyxHQUFHO1lBQ2xELENBQUMsRUFBQyxDQUFDO1NBQ047UUFFRCxJQUFHLENBQUMsSUFBSSxDQUFDLGlDQUFpQyxFQUMxQztZQUNJLElBQUksQ0FBQyxpQ0FBaUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLG9CQUFvQixDQUFDLFNBQVM7OztZQUFDLEdBQUcsRUFBRTtnQkFFeEYsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3RCLENBQUMsRUFBQyxDQUFDO1NBQ047O1lBRUcsWUFBWSxHQUFHLG1CQUFBLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLEVBQWdCO1FBRXRFLElBQUcsSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsYUFBYSxJQUFJLFlBQVksRUFDM0Q7WUFDSSxJQUFJLENBQUMseUJBQXlCLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDN0MsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQztZQUV0QyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztTQUM3QjtRQUVELElBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUN0QjtZQUNJLElBQUksQ0FBQyxhQUFhLEdBQUcsWUFBWSxDQUFDO1lBRWxDLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxTQUFTOzs7WUFBQyxHQUFHLEVBQUU7OztvQkFFdkUsUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZTtnQkFFakQsSUFBRyxDQUFDLFFBQVEsRUFDWjtvQkFDSSxJQUFJLENBQUMsb0JBQW9CLEdBQUcsRUFBRSxDQUFDO29CQUMvQixJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUNyQixJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsRUFBRSxDQUFDO29CQUVyQyxPQUFPO2lCQUNWO2dCQUVELHNDQUFzQztnQkFDdEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFFdkIsSUFBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUMxQjtvQkFDSSxJQUFJLENBQUMsb0JBQW9CLEdBQUcsRUFBRSxDQUFDO29CQUMvQixNQUFBLElBQUksQ0FBQyxpQkFBaUIsMENBQUUsYUFBYSxDQUFDLEtBQUssR0FBRztvQkFDOUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztpQkFDeEM7cUJBRUQ7b0JBQ0ksK0JBQStCO29CQUMvQixJQUFJLENBQUMsb0JBQW9CLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztvQkFDMUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztvQkFFckMscUJBQXFCO29CQUNyQixNQUFBLElBQUksQ0FBQyxpQkFBaUIsMENBQUUsYUFBYSxDQUFDLE1BQU0sR0FBRztpQkFDbEQ7WUFDTCxDQUFDLEVBQUMsQ0FBQztTQUNOO1FBRUQsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3RCLENBQUM7Ozs7O0lBS00sV0FBVztJQUVsQixDQUFDOzs7OztJQUtNLGlCQUFpQjtRQUVwQixJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3pDLENBQUM7Ozs7Ozs7OztJQVVNLFdBQVcsQ0FBQyxLQUFhLEVBQUUsY0FBdUIsS0FBSztRQUUxRCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFOUIsSUFBRyxXQUFXLEVBQ2Q7WUFDSSxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDeEMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztZQUVsQyxxQkFBcUI7WUFDckIsSUFBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFDekM7Z0JBQ0ksY0FBYztnQkFDZCxJQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLEVBQ2xDO29CQUNJLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUNyQztnQkFDRCw0QkFBNEI7cUJBQ3ZCLElBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLElBQUksU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFDdEU7b0JBQ0ksSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ3JDO2dCQUNELDJCQUEyQjthQUM5QjtTQUNKO0lBQ0wsQ0FBQzs7Ozs7Ozs7SUFRTSxXQUFXLENBQUMsT0FBeUIsRUFBRSxPQUFnQixLQUFLO1FBRS9ELE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUVqQixJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUVoQyxJQUFHLElBQUksRUFDUDtZQUNJLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMzQztRQUVELElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2hDLENBQUM7Ozs7O0lBS00sVUFBVTtRQUViLGlDQUFpQztRQUNqQyxJQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUN6QztZQUNJLG1CQUFtQjtZQUNuQixJQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxFQUMzRjtnQkFDSSxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDO2FBQ3ZFO1lBQ0QsWUFBWTtpQkFFWjtnQkFDSSxJQUFJLENBQUMsb0JBQW9CLEdBQUcsRUFBRSxDQUFDO2FBQ2xDO1NBQ0o7UUFDRCxZQUFZO2FBRVo7WUFDSSxJQUFJLENBQUMsb0JBQW9CLEdBQUcsRUFBRSxDQUFDO1NBQ2xDO1FBRUQseUJBQXlCO1FBQ3pCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3pDLENBQUM7Ozs7Ozs7SUFPUyxVQUFVO1FBRWhCLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPOzs7O1FBQUMsR0FBRyxDQUFDLEVBQUU7WUFFMUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDNUUsQ0FBQyxFQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3pDLENBQUM7Ozs7OztJQUtTLHdCQUF3Qjs7WUFFMUIsWUFBWSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJOzs7O1FBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFDOztZQUM1RCxlQUFlLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU07Ozs7UUFBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUM7UUFFdkUsa0NBQWtDO1FBQ2xDLElBQUcsQ0FBQyxZQUFZLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUMzQzs7Z0JBQ1EsS0FBSyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7WUFFcEMsSUFBRyxLQUFLLEVBQ1I7Z0JBQ0ksS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7YUFDdkI7U0FDSjtRQUNELGdCQUFnQjthQUNYLElBQUcsQ0FBQyxZQUFZLEVBQ3JCO1lBQ0ksMEJBQTBCO1lBQzFCLGVBQWUsQ0FBQyxlQUFlLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7U0FDN0Q7SUFDTCxDQUFDOzs7WUE3YUosU0FBUyxTQUNWO2dCQUNJLFFBQVEsRUFBRSxxQkFBcUI7Z0JBQy9CLCtvQkFBNEM7Z0JBRTVDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOzthQUNsRDs7Ozs0Q0EySGdCLE1BQU0sU0FBQywwQkFBMEIsY0FBRyxRQUFRO1lBNUpyRCxTQUFTLHVCQTZKQSxRQUFRO1lBNUt3RCxVQUFVO1lBQS9DLGlCQUFpQjs0Q0ErSzVDLE1BQU0sU0FBQyxtQkFBbUI7NENBQzFCLE1BQU0sU0FBQyxtQkFBbUIsY0FBRyxRQUFROzs7cUNBaEJqRCxTQUFTLFNBQUMsbUJBQW1CO2dDQU83QixTQUFTLFNBQUMsY0FBYzs7Ozs7Ozs7SUEvR3pCLHlDQUF3Qjs7Ozs7O0lBS3hCLGdEQUFzQzs7Ozs7O0lBS3RDLG1EQUE0Qzs7Ozs7O0lBSzVDLDZEQUFtRDs7Ozs7O0lBS25ELDREQUFrRDs7Ozs7O0lBS2xELDREQUFrRDs7Ozs7O0lBS2xELCtEQUFxRDs7Ozs7O0lBS3JELG9FQUEwRDs7Ozs7O0lBSzFELDJDQUEwQzs7Ozs7SUFxQzFDLDhDQUFrQzs7Ozs7SUFLbEMsb0RBQXdFOzs7Ozs7SUFReEUsdURBQTJDOzs7Ozs7SUFNM0Msd0NBQW1DOzs7Ozs7SUFRbkMseURBQ3VEOzs7Ozs7SUFNdkQsb0RBQ3VEOztJQUczQyxrREFBK0Y7O0lBQy9GLDRDQUF1Qzs7SUFDdkMsZ0RBQWdDOzs7OztJQUNoQyxrREFBNEM7Ozs7O0lBQzVDLHNEQUE4RSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIEluamVjdCwgT3B0aW9uYWwsIEVsZW1lbnRSZWYsIFZpZXdDaGlsZCwgRXZlbnRFbWl0dGVyLCBPbkRlc3Ryb3l9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge2V4dGVuZCwgaXNQcmVzZW50fSBmcm9tICdAanNjcnB0L2NvbW1vbic7XHJcbmltcG9ydCB7U1RSSU5HX0xPQ0FMSVpBVElPTiwgU3RyaW5nTG9jYWxpemF0aW9ufSBmcm9tICdAYW5nbHIvY29tbW9uJztcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHtFZGl0TGl2ZVNlYXJjaE9wdGlvbnMsIEVkaXRMaXZlU2VhcmNofSBmcm9tICcuL2VkaXRMaXZlU2VhcmNoLmludGVyZmFjZSc7XHJcbmltcG9ydCB7TmdTZWxlY3RQbHVnaW4sIE9wdGlvbnNHYXRoZXJlcn0gZnJvbSAnLi4vLi4vLi4vbWlzYyc7XHJcbmltcG9ydCB7TmdTZWxlY3RQbHVnaW5JbnN0YW5jZXN9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvc2VsZWN0JztcclxuaW1wb3J0IHtOR19TRUxFQ1RfUExVR0lOX0lOU1RBTkNFU30gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9zZWxlY3QvdHlwZXMnO1xyXG5pbXBvcnQge0xJVkVfU0VBUkNIX09QVElPTlN9IGZyb20gJy4uL3R5cGVzJztcclxuaW1wb3J0IHtWYWx1ZUhhbmRsZXJ9IGZyb20gJy4uLy4uL3ZhbHVlSGFuZGxlcic7XHJcbmltcG9ydCB7VkFMVUVfSEFORExFUn0gZnJvbSAnLi4vLi4vdmFsdWVIYW5kbGVyL3R5cGVzJztcclxuaW1wb3J0IHtQb3B1cH0gZnJvbSAnLi4vLi4vcG9wdXAnO1xyXG5pbXBvcnQge1BPUFVQfSBmcm9tICcuLi8uLi9wb3B1cC90eXBlcyc7XHJcbmltcG9ydCB7ybVOZ1NlbGVjdE9wdGlvbn0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9vcHRpb24nO1xyXG5pbXBvcnQge1BsdWdpbkJ1c30gZnJvbSAnLi4vLi4vLi4vbWlzYy9wbHVnaW5CdXMvcGx1Z2luQnVzJztcclxuaW1wb3J0IHtMaXZlU2VhcmNoVGV4dHN9IGZyb20gJy4uL2xpdmVTZWFyY2guaW50ZXJmYWNlJztcclxuXHJcbi8qKlxyXG4gKiBEZWZhdWx0IG9wdGlvbnMgZm9yIGxpdmUgc2VhcmNoXHJcbiAqIEBpbnRlcm5hbFxyXG4gKi9cclxuY29uc3QgZGVmYXVsdE9wdGlvbnM6IEVkaXRMaXZlU2VhcmNoT3B0aW9ucyA9XHJcbntcclxuICAgIGNzc0NsYXNzZXM6XHJcbiAgICB7XHJcbiAgICAgICAgd3JhcHBlckRpdjogJ2VkaXQtd3JhcHBlci1kaXYnLFxyXG4gICAgICAgIGlucHV0OiAnZWRpdC1jb250cm9sJ1xyXG4gICAgfSxcclxuICAgIHRleHRzOlxyXG4gICAge1xyXG4gICAgICAgIGlucHV0UGxhY2Vob2xkZXI6ICdTZWxlY3QgaXRlbSdcclxuXHJcbiAgICB9LFxyXG4gICAga2VlcFNlYXJjaFZhbHVlOiBmYWxzZSxcclxuICAgIG5vbkV4aXN0aW5nQ2FuY2VsOiBmYWxzZSxcclxuICAgIGVtcHR5Q2FuY2VsOiBmYWxzZVxyXG59O1xyXG5cclxuLyoqXHJcbiAqIENvbXBvbmVudCB1c2VkIGZvciBvYnRhaW5pbmcgZWRpdCBsaXZlIHNlYXJjaCBodG1sIGVsZW1lbnRcclxuICovXHJcbkBDb21wb25lbnQoXHJcbntcclxuICAgIHNlbGVjdG9yOiBcIm5nLWVkaXQtbGl2ZS1zZWFyY2hcIixcclxuICAgIHRlbXBsYXRlVXJsOiAnZWRpdExpdmVTZWFyY2guY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJ2VkaXRMaXZlU2VhcmNoLmNvbXBvbmVudC5jc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFZGl0TGl2ZVNlYXJjaENvbXBvbmVudCBpbXBsZW1lbnRzIEVkaXRMaXZlU2VhcmNoLCBOZ1NlbGVjdFBsdWdpbjxFZGl0TGl2ZVNlYXJjaE9wdGlvbnM+LCBPbkRlc3Ryb3lcclxue1xyXG4gICAgLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIHByb3RlY3RlZCBmaWVsZHMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUG9wdXAgcGx1Z2luIHVzZWQgd2l0aGluIGBOZ1NlbGVjdGBcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF9wb3B1cDogUG9wdXA7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWx1ZSBoYW5kbGVyIHBsdWdpbiB1c2VkIHdpdGhpbiBgTmdTZWxlY3RgXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfdmFsdWVIYW5kbGVyOiBWYWx1ZUhhbmRsZXI7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbnN0YW5jZSBvZiBwcmV2aW91cyBvcHRpb25zIGdhdGhlcmVyLCB0aGF0IGlzIHVzZWQgZm9yIG9idGFpbmluZyBhdmFpbGFibGUgb3B0aW9uc1xyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX29wdGlvbnNHYXRoZXJlcjogT3B0aW9uc0dhdGhlcmVyO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU3Vic2NyaXB0aW9uIGZvciBjaGFuZ2VzIG9mIG9wdGlvbnMgaW4gb3B0aW9ucyBnYXRoZXJlclxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX29wdGlvbnNDaGFuZ2VTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFN1YnNjcmlwdGlvbiBmb3IgY2hhbmdlcyBpbiB0ZXh0c1xyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX3RleHRzQ2hhbmdlZFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU3Vic2NyaXB0aW9uIGZvciBjaGFuZ2VzIG9mIHNlbGVjdGVkIHZhbHVlXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfdmFsdWVDaGFuZ2VkU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTdWJzY3JpcHRpb24gZm9yIGxpdmUgc2VhcmNoIGZvY3VzIHJlcXVlc3RcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF9saXZlU2VhcmNoRm9jdXNTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFN1YnNjcmlwdGlvbiBmb3IgdXBkYXRlIGRpc3BsYXllZCB2YWx1ZSByZXF1ZXN0XHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfdXBkYXRlRGlzcGxheWVkVmFsdWVTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE9wdGlvbnMgZm9yIE5nU2VsZWN0IHBsdWdpblxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX29wdGlvbnM6IEVkaXRMaXZlU2VhcmNoT3B0aW9ucztcclxuXHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgcHJvdGVjdGVkIHByb3BlcnRpZXMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBjdXJyZW50bHkgYXZhaWxhYmxlIG9wdGlvbnNcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGdldCBhdmFpbGFibGVPcHRpb25zKCk6IMm1TmdTZWxlY3RPcHRpb25bXVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBsdWdpbkJ1cy5zZWxlY3RPcHRpb25zLm9wdGlvbnNHYXRoZXJlci5hdmFpbGFibGVPcHRpb25zO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBwdWJsaWMgcHJvcGVydGllcyAtIGltcGxlbWVudGF0aW9uIG9mIEVkaXRMaXZlU2VhcmNoICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIE9wdGlvbnMgZm9yIE5nU2VsZWN0IHBsdWdpblxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IG9wdGlvbnMoKTogRWRpdExpdmVTZWFyY2hPcHRpb25zXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX29wdGlvbnM7XHJcbiAgICB9XHJcbiAgICBwdWJsaWMgc2V0IG9wdGlvbnMob3B0aW9uczogRWRpdExpdmVTZWFyY2hPcHRpb25zKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX29wdGlvbnMgPSBleHRlbmQodHJ1ZSwgdGhpcy5fb3B0aW9ucywgb3B0aW9ucyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIVE1MIGVsZW1lbnQgdGhhdCByZXByZXNlbnRzIGxpdmUgc2VhcmNoXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgbGl2ZVNlYXJjaEVsZW1lbnQoKTogSFRNTEVsZW1lbnRcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5saXZlU2VhcmNoRWxlbWVudENoaWxkLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDdXJyZW50IHZhbHVlIG9mIGxpdmUgc2VhcmNoXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZWFyY2hWYWx1ZTogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE9jY3VycyB3aGVuIGN1cnJlbnQgdmFsdWUgb2YgbGl2ZSBzZWFyY2ggY2hhbmdlc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2VhcmNoVmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgcHVibGljIHByb3BlcnRpZXMgLSB0ZW1wbGF0ZSBiaW5kaW5ncyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDdXJyZW50IHZhbHVlIHRoYXQgaXMgZGlzcGxheWVkXHJcbiAgICAgKiBAaW50ZXJuYWxcclxuICAgICAqL1xyXG4gICAgcHVibGljIHNlYXJjaFZhbHVlRGlzcGxheWVkOiBzdHJpbmcgPSBudWxsO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogT2JqZWN0IGNvbnRhaW5pbmcgYXZhaWxhYmxlIHRleHRzXHJcbiAgICAgKiBAaW50ZXJuYWxcclxuICAgICAqL1xyXG4gICAgcHVibGljIHRleHRzOiBMaXZlU2VhcmNoVGV4dHMgPSB7fTtcclxuXHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgcHVibGljIHByb3BlcnRpZXMgLSBjaGlsZHJlbiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWaWV3IGNoaWxkIHRoYXQgcmVwcmVzZW50cyBsaXZlIHNlYXJjaCBlbGVtZW50XHJcbiAgICAgKiBAaW50ZXJuYWxcclxuICAgICAqL1xyXG4gICAgQFZpZXdDaGlsZCgnbGl2ZVNlYXJjaEVsZW1lbnQnKVxyXG4gICAgcHVibGljIGxpdmVTZWFyY2hFbGVtZW50Q2hpbGQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmlldyBjaGlsZCB0aGF0IHJlcHJlc2VudHMgaW5wdXQgZWxlbWVudFxyXG4gICAgICogQGludGVybmFsXHJcbiAgICAgKi9cclxuICAgIEBWaWV3Q2hpbGQoJ2lucHV0RWxlbWVudCcpXHJcbiAgICBwdWJsaWMgaW5wdXRFbGVtZW50Q2hpbGQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XHJcblxyXG4gICAgLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIGNvbnN0cnVjdG9yICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoTkdfU0VMRUNUX1BMVUdJTl9JTlNUQU5DRVMpIEBPcHRpb25hbCgpIHB1YmxpYyBuZ1NlbGVjdFBsdWdpbnM6IE5nU2VsZWN0UGx1Z2luSW5zdGFuY2VzLFxyXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgcHVibGljIHBsdWdpbkJ1czogUGx1Z2luQnVzLFxyXG4gICAgICAgICAgICAgICAgcHVibGljIHBsdWdpbkVsZW1lbnQ6IEVsZW1lbnRSZWYsXHJcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgICAgICAgICAgICAgIEBJbmplY3QoU1RSSU5HX0xPQ0FMSVpBVElPTikgcHJvdGVjdGVkIF9zdHJpbmdMb2NhbGl6YXRpb246IFN0cmluZ0xvY2FsaXphdGlvbixcclxuICAgICAgICAgICAgICAgIEBJbmplY3QoTElWRV9TRUFSQ0hfT1BUSU9OUykgQE9wdGlvbmFsKCkgb3B0aW9ucz86IEVkaXRMaXZlU2VhcmNoT3B0aW9ucylcclxuICAgIHtcclxuICAgICAgICB0aGlzLl9vcHRpb25zID0gZXh0ZW5kKHRydWUsIHt9LCBkZWZhdWx0T3B0aW9ucywgb3B0aW9ucyk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIHB1YmxpYyBtZXRob2RzIC0gaW1wbGVtZW50YXRpb24gb2YgT25EZXN0cm95ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGxlZCB3aGVuIGNvbXBvbmVudCBpcyBkZXN0cm95ZWRcclxuICAgICAqL1xyXG4gICAgcHVibGljIG5nT25EZXN0cm95KClcclxuICAgIHtcclxuICAgICAgICB0aGlzLl9vcHRpb25zQ2hhbmdlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIHRoaXMuX29wdGlvbnNDaGFuZ2VTdWJzY3JpcHRpb24gPSBudWxsO1xyXG5cclxuICAgICAgICB0aGlzLl90ZXh0c0NoYW5nZWRTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgdGhpcy5fdGV4dHNDaGFuZ2VkU3Vic2NyaXB0aW9uID0gbnVsbDtcclxuXHJcbiAgICAgICAgdGhpcy5fdmFsdWVDaGFuZ2VkU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIHRoaXMuX3ZhbHVlQ2hhbmdlZFN1YnNjcmlwdGlvbiA9IG51bGw7XHJcblxyXG4gICAgICAgIHRoaXMuX2xpdmVTZWFyY2hGb2N1c1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB0aGlzLl9saXZlU2VhcmNoRm9jdXNTdWJzY3JpcHRpb24gPSBudWxsO1xyXG5cclxuICAgICAgICB0aGlzLl91cGRhdGVEaXNwbGF5ZWRWYWx1ZVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB0aGlzLl91cGRhdGVEaXNwbGF5ZWRWYWx1ZVN1YnNjcmlwdGlvbiA9IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIHB1YmxpYyBtZXRob2RzIC0gaW1wbGVtZW50YXRpb24gb2YgRWRpdExpdmVTZWFyY2ggIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5pdGlhbGl6ZSBwbHVnaW4sIHRvIGJlIHJlYWR5IHRvIHVzZSwgaW5pdGlhbGl6ZSBjb21tdW5pY2F0aW9uIHdpdGggb3RoZXIgcGx1Z2luc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaW5pdGlhbGl6ZSgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fdGV4dHNDaGFuZ2VkU3Vic2NyaXB0aW9uID0gdGhpcy5fc3RyaW5nTG9jYWxpemF0aW9uLnRleHRzQ2hhbmdlLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9pbml0VGV4dHMoKSk7XHJcblxyXG4gICAgICAgIGlmKHRoaXMuX29wdGlvbnNHYXRoZXJlciAmJiB0aGlzLl9vcHRpb25zR2F0aGVyZXIgIT0gdGhpcy5wbHVnaW5CdXMuc2VsZWN0T3B0aW9ucy5vcHRpb25zR2F0aGVyZXIpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl9vcHRpb25zQ2hhbmdlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgICAgIHRoaXMuX29wdGlvbnNDaGFuZ2VTdWJzY3JpcHRpb24gPSBudWxsO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fb3B0aW9uc0dhdGhlcmVyID0gbnVsbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmKCF0aGlzLl9vcHRpb25zR2F0aGVyZXIpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl9vcHRpb25zR2F0aGVyZXIgPSB0aGlzLnBsdWdpbkJ1cy5zZWxlY3RPcHRpb25zLm9wdGlvbnNHYXRoZXJlcjtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX29wdGlvbnNDaGFuZ2VTdWJzY3JpcHRpb24gPSB0aGlzLl9vcHRpb25zR2F0aGVyZXIuYXZhaWxhYmxlT3B0aW9uc0NoYW5nZS5zdWJzY3JpYmUoKCkgPT5cclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgLy9kbyBub3QgY2hhbmdlIGFjdGl2ZSBpZiBhY3RpdmUgaXMgdmlzaWJsZVxyXG4gICAgICAgICAgICAgICAgaWYoIXRoaXMucGx1Z2luQnVzLnNlbGVjdE9wdGlvbnMub3B0aW9uc0dhdGhlcmVyLmF2YWlsYWJsZU9wdGlvbnMuZmluZCgob3B0aW9uOiDJtU5nU2VsZWN0T3B0aW9uKSA9PiBvcHRpb24uYWN0aXZlKSlcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAvL29ubHkgd2hlbiBpbnB1dCBpcyBmaWxsZWQgYXQgbGVhc3Qgd2l0aCBvbmUgY2hhclxyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMuc2VhcmNoVmFsdWUpXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgb3B0aW9uOiDJtU5nU2VsZWN0T3B0aW9uID0gdGhpcy5wbHVnaW5CdXMuc2VsZWN0T3B0aW9ucy5vcHRpb25zR2F0aGVyZXIuYXZhaWxhYmxlT3B0aW9ucy5maW5kKGl0bSA9PiB0aGlzLnBsdWdpbkJ1cy5zZWxlY3RPcHRpb25zLmxpdmVTZWFyY2hGaWx0ZXIodGhpcy5zZWFyY2hWYWx1ZSwgdGhpcy5wbHVnaW5CdXMuc2VsZWN0T3B0aW9ucy5ub3JtYWxpemVyKShpdG0pKTtcclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZihvcHRpb24pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucGx1Z2luQnVzLnNlbGVjdE9wdGlvbnMub3B0aW9uc0dhdGhlcmVyLm9wdGlvbnMuZm9yRWFjaCgob3B0aW9uOiDJtU5nU2VsZWN0T3B0aW9uKSA9PiBvcHRpb24uYWN0aXZlID0gZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9wb3B1cC5pbnZhbGlkYXRlVmlzdWFscygpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIC8vc2VsZWN0IGZpcnN0XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fYWN0aXZhdGVTZWxlY3RlZE9yRmlyc3QoKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IHBvcHVwID0gdGhpcy5uZ1NlbGVjdFBsdWdpbnNbUE9QVVBdIGFzIFBvcHVwO1xyXG5cclxuICAgICAgICBpZih0aGlzLl9wb3B1cCAmJiB0aGlzLl9wb3B1cCAhPSBwb3B1cClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX3BvcHVwID0gbnVsbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmKCF0aGlzLl9wb3B1cClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX3BvcHVwID0gcG9wdXA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZighdGhpcy5fbGl2ZVNlYXJjaEZvY3VzU3Vic2NyaXB0aW9uKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5fbGl2ZVNlYXJjaEZvY3VzU3Vic2NyaXB0aW9uID0gdGhpcy5wbHVnaW5CdXMubGl2ZVNlYXJjaEZvY3VzLnN1YnNjcmliZSgoKSA9PlxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0RWxlbWVudENoaWxkPy5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYoIXRoaXMuX3VwZGF0ZURpc3BsYXllZFZhbHVlU3Vic2NyaXB0aW9uKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5fdXBkYXRlRGlzcGxheWVkVmFsdWVTdWJzY3JpcHRpb24gPSB0aGlzLnBsdWdpbkJ1cy51cGRhdGVEaXNwbGF5ZWRWYWx1ZS5zdWJzY3JpYmUoKCkgPT5cclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVCbHVyKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IHZhbHVlSGFuZGxlciA9IHRoaXMubmdTZWxlY3RQbHVnaW5zW1ZBTFVFX0hBTkRMRVJdIGFzIFZhbHVlSGFuZGxlcjtcclxuXHJcbiAgICAgICAgaWYodGhpcy5fdmFsdWVIYW5kbGVyICYmIHRoaXMuX3ZhbHVlSGFuZGxlciAhPSB2YWx1ZUhhbmRsZXIpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl92YWx1ZUNoYW5nZWRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgICAgdGhpcy5fdmFsdWVDaGFuZ2VkU3Vic2NyaXB0aW9uID0gbnVsbDtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlSGFuZGxlciA9IG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZighdGhpcy5fdmFsdWVIYW5kbGVyKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5fdmFsdWVIYW5kbGVyID0gdmFsdWVIYW5kbGVyO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fdmFsdWVDaGFuZ2VkU3Vic2NyaXB0aW9uID0gdGhpcy5fdmFsdWVIYW5kbGVyLnZhbHVlQ2hhbmdlLnN1YnNjcmliZSgoKSA9PlxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBsZXQgc2VsZWN0ZWQgPSB0aGlzLl92YWx1ZUhhbmRsZXIuc2VsZWN0ZWRPcHRpb25zO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmKCFzZWxlY3RlZClcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaFZhbHVlRGlzcGxheWVkID0gJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVJbnB1dCgnJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgLy9yZXNldCBmaWx0ZXJpbmcgb2YgYXZhaWxhYmxlIG9wdGlvbnNcclxuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlSW5wdXQobnVsbCk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYoQXJyYXkuaXNBcnJheShzZWxlY3RlZCkpXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hWYWx1ZURpc3BsYXllZCA9ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Q2hpbGQ/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy9zZXQgc2VsZWN0ZWQgaW50byBsaXZlIHNlYXJjaFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoVmFsdWVEaXNwbGF5ZWQgPSBzZWxlY3RlZC50ZXh0O1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLy9zZWxlY3QgY3VycmVudCB0ZXh0XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnRDaGlsZD8ubmF0aXZlRWxlbWVudC5zZWxlY3QoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9pbml0VGV4dHMoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEluaXRpYWxpemUgcGx1Z2luIG9wdGlvbnMsIGFsbCBvcGVyYXRpb25zIHJlcXVpcmVkIHRvIGJlIGRvbmUgd2l0aCBwbHVnaW4gb3B0aW9ucyBhcmUgaGFuZGxlZCBoZXJlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBpbml0T3B0aW9ucygpXHJcbiAgICB7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFeHBsaWNpdGx5IHJ1bnMgaW52YWxpZGF0aW9uIG9mIGNvbnRlbnQgKGNoYW5nZSBkZXRlY3Rpb24pXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBpbnZhbGlkYXRlVmlzdWFscygpOiB2b2lkXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBwdWJsaWMgbWV0aG9kcyAtIHRlbXBsYXRlIGJpbmRpbmdzICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIEhhbmRsZSBpbnB1dCB2YWx1ZVxyXG4gICAgICogQHBhcmFtIHZhbHVlIC0gVmFsdWUgb2YgaW5wdXRcclxuICAgICAqIEBwYXJhbSBpbnB1dENoYW5nZSAtIEluZGljYXRpb24gdGhhdCBjaGFuZ2Ugd2FzIGJ5IGlucHV0IGV2ZW50IG9mIGlucHV0XHJcbiAgICAgKiBAaW50ZXJuYWxcclxuICAgICAqL1xyXG4gICAgcHVibGljIGhhbmRsZUlucHV0KHZhbHVlOiBzdHJpbmcsIGlucHV0Q2hhbmdlOiBib29sZWFuID0gZmFsc2UpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5zZWFyY2hWYWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuc2VhcmNoVmFsdWVDaGFuZ2UuZW1pdCgpO1xyXG5cclxuICAgICAgICBpZihpbnB1dENoYW5nZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luQnVzLnNob3dIaWRlUG9wdXAuZW1pdCh0cnVlKTtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hWYWx1ZURpc3BsYXllZCA9IHZhbHVlO1xyXG5cclxuICAgICAgICAgICAgLy9zaW5nbGUgdmFsdWUgc2VsZWN0XHJcbiAgICAgICAgICAgIGlmKCF0aGlzLnBsdWdpbkJ1cy5zZWxlY3RPcHRpb25zLm11bHRpcGxlKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAvL2NhbmNlbCB2YWx1ZVxyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5fb3B0aW9ucy5ub25FeGlzdGluZ0NhbmNlbClcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl92YWx1ZUhhbmRsZXIuc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvL2VtcHR5IHN0cmluZyBjYW5jZWxzIHZhbHVlXHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmKHRoaXMuX29wdGlvbnMuZW1wdHlDYW5jZWwgJiYgaXNQcmVzZW50KHZhbHVlKSAmJiAhdmFsdWUubGVuZ3RoKVxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3ZhbHVlSGFuZGxlci5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8vb3RoZXJ3aXNlIGtlZXAgbGFzdCB2YWx1ZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSGFuZGxlcyBmb2N1cyBldmVudFxyXG4gICAgICogQHBhcmFtIGVsZW1lbnQgLSBFbGVtZW50IHRoYXQgZ290IGZvY3VzXHJcbiAgICAgKiBAcGFyYW0gc2hvdyAtIEluZGljYXRpb24gd2hldGhlciBzaG93IHBvcHVwXHJcbiAgICAgKiBAaW50ZXJuYWxcclxuICAgICAqL1xyXG4gICAgcHVibGljIGhhbmRsZUZvY3VzKGVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQsIHNob3c6IGJvb2xlYW4gPSBmYWxzZSlcclxuICAgIHtcclxuICAgICAgICBlbGVtZW50LnNlbGVjdCgpO1xyXG5cclxuICAgICAgICB0aGlzLl9hY3RpdmF0ZVNlbGVjdGVkT3JGaXJzdCgpO1xyXG5cclxuICAgICAgICBpZihzaG93KVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW5CdXMuc2hvd0hpZGVQb3B1cC5lbWl0KHRydWUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5wbHVnaW5CdXMuZm9jdXMuZW1pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSGFuZGxlcyBibHVyIG9mIGxpdmUgc2VhcmNoXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBoYW5kbGVCbHVyKClcclxuICAgIHtcclxuICAgICAgICAvL25vdCBtdWx0aXBsZSBhbmQgc2VsZWN0ZWQgdmFsdWVcclxuICAgICAgICBpZighdGhpcy5wbHVnaW5CdXMuc2VsZWN0T3B0aW9ucy5tdWx0aXBsZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIC8vdXNlIHNlbGVjdGVkIHRleHRcclxuICAgICAgICAgICAgaWYodGhpcy5fdmFsdWVIYW5kbGVyLnNlbGVjdGVkT3B0aW9ucyAmJiAhQXJyYXkuaXNBcnJheSh0aGlzLl92YWx1ZUhhbmRsZXIuc2VsZWN0ZWRPcHRpb25zKSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hWYWx1ZURpc3BsYXllZCA9IHRoaXMuX3ZhbHVlSGFuZGxlci5zZWxlY3RlZE9wdGlvbnMudGV4dDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvL3Jlc2V0IHRleHRcclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaFZhbHVlRGlzcGxheWVkID0gJyc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLy9yZXNldCB0ZXh0XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hWYWx1ZURpc3BsYXllZCA9ICcnO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy9yZXNldCBhdmFpbGFibGUgb3B0aW9uc1xyXG4gICAgICAgIHRoaXMuc2VhcmNoVmFsdWUgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuc2VhcmNoVmFsdWVDaGFuZ2UuZW1pdCgpO1xyXG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgcHJvdGVjdGVkIG1ldGhvZHMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5pdGlhbGl6ZSB0ZXh0c1xyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX2luaXRUZXh0cygpXHJcbiAgICB7XHJcbiAgICAgICAgT2JqZWN0LmtleXModGhpcy5vcHRpb25zLnRleHRzKS5mb3JFYWNoKGtleSA9PlxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy50ZXh0c1trZXldID0gdGhpcy5fc3RyaW5nTG9jYWxpemF0aW9uLmdldCh0aGlzLm9wdGlvbnMudGV4dHNba2V5XSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFjdGl2YXRlcyBmaXJzdCBhdmFpbGFibGUgb3B0aW9uIG9yIHNlbGVjdGVkIG9wdGlvblxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX2FjdGl2YXRlU2VsZWN0ZWRPckZpcnN0KClcclxuICAgIHtcclxuICAgICAgICBsZXQgYWN0aXZlT3B0aW9uID0gdGhpcy5hdmFpbGFibGVPcHRpb25zLmZpbmQoaXRtID0+IGl0bS5hY3RpdmUpO1xyXG4gICAgICAgIGxldCBzZWxlY3RlZE9wdGlvbnMgPSB0aGlzLmF2YWlsYWJsZU9wdGlvbnMuZmlsdGVyKGl0bSA9PiBpdG0uc2VsZWN0ZWQpO1xyXG5cclxuICAgICAgICAvL25vdGhpbmcgYWN0aXZlLCBub3RoaW5nIHNlbGVjdGVkXHJcbiAgICAgICAgaWYoIWFjdGl2ZU9wdGlvbiAmJiAhc2VsZWN0ZWRPcHRpb25zLmxlbmd0aClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGxldCBmaXJzdCA9IHRoaXMuYXZhaWxhYmxlT3B0aW9uc1swXTtcclxuXHJcbiAgICAgICAgICAgIGlmKGZpcnN0KVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBmaXJzdC5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vbm90aGluZyBhY3RpdmVcclxuICAgICAgICBlbHNlIGlmKCFhY3RpdmVPcHRpb24pXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICAvL2xhc3Qgc2VsZWN0ZWQgYXMgc2FjdGl2ZVxyXG4gICAgICAgICAgICBzZWxlY3RlZE9wdGlvbnNbc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCAtIDFdLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59Il19
|
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
* Generated from: src/plugins/valueHandler/valueHandlerBase.ts
|
|
4
4
|
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
5
|
*/
|
|
6
|
-
import { EventEmitter } from '@angular/core';
|
|
6
|
+
import { Directive, ElementRef, EventEmitter } from '@angular/core';
|
|
7
7
|
import { NORMAL_STATE } from '../normalState/types';
|
|
8
|
+
import { PluginBus } from '../../misc/pluginBus/pluginBus';
|
|
8
9
|
/**
|
|
9
10
|
* Base class for value handlers
|
|
10
11
|
* @abstract
|
|
@@ -187,6 +188,15 @@ export class ValueHandlerBase {
|
|
|
187
188
|
}
|
|
188
189
|
}
|
|
189
190
|
}
|
|
191
|
+
ValueHandlerBase.decorators = [
|
|
192
|
+
{ type: Directive }
|
|
193
|
+
];
|
|
194
|
+
/** @nocollapse */
|
|
195
|
+
ValueHandlerBase.ctorParameters = () => [
|
|
196
|
+
{ type: undefined },
|
|
197
|
+
{ type: ElementRef },
|
|
198
|
+
{ type: PluginBus }
|
|
199
|
+
];
|
|
190
200
|
if (false) {
|
|
191
201
|
/**
|
|
192
202
|
* Options for NgSelect plugin
|
|
@@ -273,4 +283,4 @@ if (false) {
|
|
|
273
283
|
*/
|
|
274
284
|
ValueHandlerBase.prototype._loadOptions = function () { };
|
|
275
285
|
}
|
|
276
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWVIYW5kbGVyQmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wbHVnaW5zL3ZhbHVlSGFuZGxlci92YWx1ZUhhbmRsZXJCYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFhLFlBQVksRUFBWSxNQUFNLGVBQWUsQ0FBQztBQU9sRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7Ozs7OztBQU9sRCxNQUFNLE9BQWdCLGdCQUFnQjs7Ozs7OztJQWtHbEMsWUFBbUIsZUFBd0MsRUFDeEMsYUFBeUIsRUFDekIsU0FBNEI7UUFGNUIsb0JBQWUsR0FBZixlQUFlLENBQXlCO1FBQ3hDLGtCQUFhLEdBQWIsYUFBYSxDQUFZO1FBQ3pCLGNBQVMsR0FBVCxTQUFTLENBQW1COzs7O1FBeER4QyxnQkFBVyxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDOzs7OztRQWtKeEQsaUJBQVk7Ozs7UUFBRyxDQUFDLE1BQStCLEVBQVEsRUFBRTtZQUUvRCxJQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUN0Qzs7b0JBQ1EsS0FBSyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztnQkFFaEQsSUFBRyxLQUFLLElBQUksQ0FBQyxFQUNiO29CQUNJLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztvQkFDdEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO2lCQUNwRDthQUNKO2lCQUVEO2dCQUNJLElBQUcsSUFBSSxDQUFDLGVBQWUsSUFBSSxNQUFNLEVBQ2pDO29CQUNJLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO2lCQUMvQjthQUNKO1lBRUQsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lB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LENBQUM7UUFFaEMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hCLENBQUM7Ozs7O0lBS00sV0FBVztJQUVsQixDQUFDOzs7OztJQUtNLGlCQUFpQjtJQUV4QixDQUFDOzs7Ozs7SUEyQ1MsY0FBYztRQUVwQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLE9BQU87Ozs7UUFBQyxDQUFDLE1BQStCLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEdBQUcsS0FBSyxFQUFDLENBQUM7SUFDeEcsQ0FBQzs7Ozs7O0lBS1Msb0JBQW9CO1FBRTFCLElBQUcsSUFBSSxDQUFDLGVBQWUsRUFDdkI7WUFDSSxJQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUN0QztnQkFDSSxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU87Ozs7Z0JBQUMsQ0FBQyxNQUErQixFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxHQUFHLElBQUksRUFBQyxDQUFDO2FBQzdGO2lCQUVEO2dCQUNJLENBQUMsbUJBQUEsSUFBSSxDQUFDLGVBQWUsRUFBMkIsQ0FBQyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7YUFDckU7U0FDSjtJQUNMLENBQUM7Q0FNSjs7Ozs7OztJQWhQRyxvQ0FBNkI7Ozs7OztJQUs3Qix3Q0FBb0M7Ozs7OztJQUtwQyxxREFBa0Q7Ozs7OztJQUtsRCxxREFBa0Q7Ozs7OztJQUtsRCxzREFBbUQ7Ozs7OztJQUtuRCw0Q0FBb0Q7Ozs7O0lBT3BELG1DQUFrQzs7Ozs7SUFLbEMsdUNBQWtFOzs7OztJQUtsRSwyQ0FBd0U7Ozs7OztJQXVJeEUscUNBQXdFOzs7Ozs7O0lBTXhFLHdDQXlCQzs7SUFySFcsMkNBQStDOztJQUMvQyx5Q0FBZ0M7O0lBQ2hDLHFDQUFtQzs7Ozs7OztJQTJCL0MsMkRBQXNEOzs7Ozs7O0lBdUh0RCwwREFBd0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0VsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgT25EZXN0cm95fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHtOZ1NlbGVjdFBsdWdpbiwgT3B0aW9uc0dhdGhlcmVyLCBDb21wYXJlVmFsdWVGdW5jLCBMaXZlU2VhcmNoRmlsdGVyLCBOb3JtYWxpemVGdW5jfSBmcm9tICcuLi8uLi9taXNjJztcclxuaW1wb3J0IHtOZ1NlbGVjdFBsdWdpbkluc3RhbmNlc30gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9zZWxlY3QnO1xyXG5pbXBvcnQge8m1TmdTZWxlY3RPcHRpb24sIE5nU2VsZWN0T3B0aW9ufSBmcm9tICcuLi8uLi9jb21wb25lbnRzL29wdGlvbic7XHJcbmltcG9ydCB7Tm9ybWFsU3RhdGV9IGZyb20gJy4uL25vcm1hbFN0YXRlJztcclxuaW1wb3J0IHtOT1JNQUxfU1RBVEV9IGZyb20gJy4uL25vcm1hbFN0YXRlL3R5cGVzJztcclxuaW1wb3J0IHtWYWx1ZUhhbmRsZXIsIFZhbHVlSGFuZGxlck9wdGlvbnN9IGZyb20gJy4vdmFsdWVIYW5kbGVyLmludGVyZmFjZSc7XHJcbmltcG9ydCB7UGx1Z2luQnVzfSBmcm9tICcuLi8uLi9taXNjL3BsdWdpbkJ1cy9wbHVnaW5CdXMnO1xyXG5cclxuLyoqXHJcbiAqIEJhc2UgY2xhc3MgZm9yIHZhbHVlIGhhbmRsZXJzXHJcbiAqL1xyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVmFsdWVIYW5kbGVyQmFzZTxUVmFsdWUgPSBhbnksIFRPcHRpb25zIGV4dGVuZHMgVmFsdWVIYW5kbGVyT3B0aW9ucyA9IGFueT4gaW1wbGVtZW50cyBWYWx1ZUhhbmRsZXI8VFZhbHVlPiwgTmdTZWxlY3RQbHVnaW48VE9wdGlvbnMsIFRWYWx1ZT4sIE9uRGVzdHJveVxyXG57XHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgcHJvdGVjdGVkIGZpZWxkcyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPcHRpb25zIGZvciBOZ1NlbGVjdCBwbHVnaW5cclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF9vcHRpb25zOiBUT3B0aW9ucztcclxuXHJcbiAgICAvKipcclxuICAgICAqIE5vcm1hbCBzdGF0ZSB0aGF0IGlzIHVzZWRcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF9ub3JtYWxTdGF0ZTogTm9ybWFsU3RhdGU7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTdWJzY3JpcHRpb24gZm9yIG9wdGlvbiBzZWxlY3Rpb25cclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF9vcHRpb25TZWxlY3RTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFN1YnNjcmlwdGlvbiBmb3Igb3B0aW9uIGNhbmNlbGF0aW9uXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfb3B0aW9uQ2FuY2VsU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTdWJzY3JpcHRpb24gZm9yIGNoYW5nZXMgb2Ygb3B0aW9ucyBpbiBvcHRpb25zIGdhdGhlcmVyXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfb3B0aW9uc0NoYW5nZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5zdGFuY2Ugb2YgcHJldmlvdXMgb3B0aW9ucyBnYXRoZXJlciwgdGhhdCBpcyB1c2VkIGZvciBvYnRhaW5pbmcgYXZhaWxhYmxlIG9wdGlvbnNcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF9vcHRpb25zR2F0aGVyZXI6IE9wdGlvbnNHYXRoZXJlcjxUVmFsdWU+O1xyXG5cclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBwdWJsaWMgcHJvcGVydGllcyAtIGltcGxlbWVudGF0aW9uIG9mIER5bmFtaWNWYWx1ZUhhbmRsZXIgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogT3B0aW9ucyBmb3IgTmdTZWxlY3QgcGx1Z2luXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhYnN0cmFjdCBvcHRpb25zOiBUT3B0aW9ucztcclxuXHJcbiAgICAvKipcclxuICAgICAqIE9jY3VycyB3aGVuIHZhbHVlIG9mIE5nU2VsZWN0IGNoYW5nZXNcclxuICAgICAqL1xyXG4gICAgcHVibGljIHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDdXJyZW50IHZhbHVlIG9mIE5nU2VsZWN0XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZWxlY3RlZE9wdGlvbnM6IE5nU2VsZWN0T3B0aW9uPFRWYWx1ZT58TmdTZWxlY3RPcHRpb248VFZhbHVlPltdO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3VycmVudCBzZWxlY3RlZCB2YWx1ZSBvZiBOZ1NlbGVjdFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IHZhbHVlKCk6IFRWYWx1ZXxUVmFsdWVbXVxyXG4gICAge1xyXG4gICAgICAgIGlmKHRoaXMuc2VsZWN0ZWRPcHRpb25zKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgaWYoQXJyYXkuaXNBcnJheSh0aGlzLnNlbGVjdGVkT3B0aW9ucykpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkT3B0aW9ucy5tYXAob3B0ID0+IG9wdC52YWx1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZE9wdGlvbnMudmFsdWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBwcm90ZWN0ZWQgcHJvcGVydGllcyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGdW5jdGlvbiBvZiB2YWx1ZSBjb21wYXJlciB0aGF0IGlzIHVzZWQgZm9yIGNvbXBhcmlzb24gb2YgdmFsdWVzXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBnZXQgdmFsdWVDb21wYXJlcigpOiBDb21wYXJlVmFsdWVGdW5jPFRWYWx1ZT5cclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wbHVnaW5CdXM/LnNlbGVjdE9wdGlvbnM/LnZhbHVlQ29tcGFyZXI7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNZXRob2QgdGhhdCBpcyB1c2VkIGZvciBmaWx0ZXJpbmcgd2hlbiBsaXZlIHNlYXJjaCBpcyBydW5uaW5nIG9uIHN0YXRpYyBkYXRhXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBnZXQgbGl2ZVNlYXJjaEZpbHRlcigpOiBMaXZlU2VhcmNoRmlsdGVyPFRWYWx1ZT5cclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wbHVnaW5CdXM/LnNlbGVjdE9wdGlvbnM/LmxpdmVTZWFyY2hGaWx0ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBOb3JtYWxpemVyIHVzZWQgZm9yIG5vcm1hbGl6aW5nIHZhbHVlc1xyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgZ2V0IG5vcm1hbGl6ZXIoKTogTm9ybWFsaXplRnVuYzxUVmFsdWU+XHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGx1Z2luQnVzPy5zZWxlY3RPcHRpb25zPy5ub3JtYWxpemVyO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBjb25zdHJ1Y3RvciAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgbmdTZWxlY3RQbHVnaW5zOiBOZ1NlbGVjdFBsdWdpbkluc3RhbmNlcyxcclxuICAgICAgICAgICAgICAgIHB1YmxpYyBwbHVnaW5FbGVtZW50OiBFbGVtZW50UmVmLFxyXG4gICAgICAgICAgICAgICAgcHVibGljIHBsdWdpbkJ1czogUGx1Z2luQnVzPFRWYWx1ZT4pXHJcbiAgICB7XHJcbiAgICB9XHJcblxyXG4gICAgLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIHB1YmxpYyBtZXRob2RzIC0gaW1wbGVtZW50YXRpb24gb2YgT25EZXN0cm95ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuICAgIFxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWxsZWQgd2hlbiBjb21wb25lbnQgaXMgZGVzdHJveWVkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fb3B0aW9uU2VsZWN0U3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIHRoaXMuX29wdGlvblNlbGVjdFN1YnNjcmlwdGlvbiA9IG51bGw7XHJcblxyXG4gICAgICAgIHRoaXMuX29wdGlvbnNDaGFuZ2VTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgdGhpcy5fb3B0aW9uc0NoYW5nZVN1YnNjcmlwdGlvbiA9IG51bGw7XHJcblxyXG4gICAgICAgIHRoaXMuX29wdGlvbkNhbmNlbFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB0aGlzLl9vcHRpb25DYW5jZWxTdWJzY3JpcHRpb24gPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBwdWJsaWMgbWV0aG9kcyAtIGltcGxlbWVudGF0aW9uIG9mIER5bmFtaWNWYWx1ZUhhbmRsZXIgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB2YWx1ZSBmb3IgTmdTZWxlY3RcclxuICAgICAqIEBwYXJhbSB2YWx1ZSAtIFZhbHVlIHRvIGJlIHNldFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYWJzdHJhY3Qgc2V0VmFsdWUodmFsdWU6VFZhbHVlfFRWYWx1ZVtdKTogdm9pZDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluaXRpYWxpemUgcGx1Z2luLCB0byBiZSByZWFkeSB0byB1c2UsIGluaXRpYWxpemUgY29tbXVuaWNhdGlvbiB3aXRoIG90aGVyIHBsdWdpbnNcclxuICAgICAqL1xyXG4gICAgcHVibGljIGluaXRpYWxpemUoKVxyXG4gICAge1xyXG4gICAgICAgIGlmKHRoaXMuX29wdGlvbnNHYXRoZXJlciAmJiB0aGlzLl9vcHRpb25zR2F0aGVyZXIgIT0gdGhpcy5wbHVnaW5CdXM/LnNlbGVjdE9wdGlvbnM/Lm9wdGlvbnNHYXRoZXJlcilcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX29wdGlvbnNDaGFuZ2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgICAgdGhpcy5fb3B0aW9uc0NoYW5nZVN1YnNjcmlwdGlvbiA9IG51bGw7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9vcHRpb25zR2F0aGVyZXIgPSBudWxsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYoIXRoaXMuX29wdGlvbnNHYXRoZXJlcilcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX29wdGlvbnNHYXRoZXJlciA9IHRoaXMucGx1Z2luQnVzPy5zZWxlY3RPcHRpb25zPy5vcHRpb25zR2F0aGVyZXI7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9vcHRpb25zQ2hhbmdlU3Vic2NyaXB0aW9uID0gdGhpcy5fb3B0aW9uc0dhdGhlcmVyLm9wdGlvbnNDaGFuZ2Uuc3Vic2NyaWJlKCgpID0+IHRoaXMuX2xvYWRPcHRpb25zKCkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYoIXRoaXMuX29wdGlvblNlbGVjdFN1YnNjcmlwdGlvbilcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX29wdGlvblNlbGVjdFN1YnNjcmlwdGlvbiA9IHRoaXMucGx1Z2luQnVzLm9wdGlvblNlbGVjdC5zdWJzY3JpYmUodGhpcy5fc2V0VmFsdWUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYoIXRoaXMuX29wdGlvbkNhbmNlbFN1YnNjcmlwdGlvbilcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX29wdGlvbkNhbmNlbFN1YnNjcmlwdGlvbiA9IHRoaXMucGx1Z2luQnVzLm9wdGlvbkNhbmNlbC5zdWJzY3JpYmUodGhpcy5fY2FuY2VsVmFsdWUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IG5vcm1hbFN0YXRlID0gdGhpcy5uZ1NlbGVjdFBsdWdpbnNbTk9STUFMX1NUQVRFXSBhcyBOb3JtYWxTdGF0ZTtcclxuICAgICAgICB0aGlzLl9ub3JtYWxTdGF0ZSA9IG5vcm1hbFN0YXRlO1xyXG5cclxuICAgICAgICB0aGlzLl9sb2FkT3B0aW9ucygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5pdGlhbGl6ZSBwbHVnaW4gb3B0aW9ucywgYWxsIG9wZXJhdGlvbnMgcmVxdWlyZWQgdG8gYmUgZG9uZSB3aXRoIHBsdWdpbiBvcHRpb25zIGFyZSBoYW5kbGVkIGhlcmVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGluaXRPcHRpb25zKClcclxuICAgIHtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEV4cGxpY2l0bHkgcnVucyBpbnZhbGlkYXRpb24gb2YgY29udGVudCAoY2hhbmdlIGRldGVjdGlvbilcclxuICAgICAqL1xyXG4gICAgcHVibGljIGludmFsaWRhdGVWaXN1YWxzKCk6IHZvaWRcclxuICAgIHtcclxuICAgIH1cclxuXHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgcHJvdGVjdGVkIG1ldGhvZHMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB2YWx1ZSBcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IF9zZXRWYWx1ZTogKG9wdGlvbjogybVOZ1NlbGVjdE9wdGlvbjxUVmFsdWU+KSA9PiB2b2lkO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FuY2VscywgcmVtb3ZlcyBvcHRpb24gZnJvbSBzZWxlY3RlZCBvcHRpb25zXHJcbiAgICAgKiBAcGFyYW0gb3B0aW9uIC0gT3B0aW9uIHRvIGJlIGNhbmNlbGVkXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfY2FuY2VsVmFsdWUgPSAob3B0aW9uOiDJtU5nU2VsZWN0T3B0aW9uPFRWYWx1ZT4pOiB2b2lkID0+XHJcbiAgICB7XHJcbiAgICAgICAgaWYoQXJyYXkuaXNBcnJheSh0aGlzLnNlbGVjdGVkT3B0aW9ucykpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBsZXQgaW5kZXggPSB0aGlzLnNlbGVjdGVkT3B0aW9ucy5pbmRleE9mKG9wdGlvbik7XHJcblxyXG4gICAgICAgICAgICBpZihpbmRleCA+PSAwKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkT3B0aW9ucy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMgPSBbLi4udGhpcy5zZWxlY3RlZE9wdGlvbnNdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuc2VsZWN0ZWRPcHRpb25zID09IG9wdGlvbilcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMgPSBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9jbGVhclNlbGVjdGVkKCk7XHJcbiAgICAgICAgdGhpcy5fbWFya1ZhbHVlQXNTZWxlY3RlZCgpO1xyXG5cclxuICAgICAgICB0aGlzLl9ub3JtYWxTdGF0ZS5pbnZhbGlkYXRlVmlzdWFscygpO1xyXG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2xlYXJzIGFsbCBzZWxlY3RlZCB2YWx1ZXNcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF9jbGVhclNlbGVjdGVkKClcclxuICAgIHtcclxuICAgICAgICB0aGlzLl9vcHRpb25zR2F0aGVyZXIub3B0aW9ucy5mb3JFYWNoKChvcHRpb246IMm1TmdTZWxlY3RPcHRpb248VFZhbHVlPikgPT4gb3B0aW9uLnNlbGVjdGVkID0gZmFsc2UpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWFya3MgY3VycmVudCB2YWx1ZSBhcyBzZWxlY3RlZFxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX21hcmtWYWx1ZUFzU2VsZWN0ZWQoKVxyXG4gICAge1xyXG4gICAgICAgIGlmKHRoaXMuc2VsZWN0ZWRPcHRpb25zKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgaWYoQXJyYXkuaXNBcnJheSh0aGlzLnNlbGVjdGVkT3B0aW9ucykpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25zLmZvckVhY2goKG9wdGlvbjogybVOZ1NlbGVjdE9wdGlvbjxUVmFsdWU+KSA9PiBvcHRpb24uc2VsZWN0ZWQgPSB0cnVlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICh0aGlzLnNlbGVjdGVkT3B0aW9ucyBhcyDJtU5nU2VsZWN0T3B0aW9uPFRWYWx1ZT4pLnNlbGVjdGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIExvYWRzIG9wdGlvbnNcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IF9sb2FkT3B0aW9ucygpOiB2b2lkO1xyXG59Il19
|
|
286
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWVIYW5kbGVyQmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wbHVnaW5zL3ZhbHVlSGFuZGxlci92YWx1ZUhhbmRsZXJCYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBTzdFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUVsRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7Ozs7OztBQU16RCxNQUFNLE9BQWdCLGdCQUFnQjs7Ozs7OztJQWtHbEMsWUFBbUIsZUFBd0MsRUFDeEMsYUFBeUIsRUFDekIsU0FBNEI7UUFGNUIsb0JBQWUsR0FBZixlQUFlLENBQXlCO1FBQ3hDLGtCQUFhLEdBQWIsYUFBYSxDQUFZO1FBQ3pCLGNBQVMsR0FBVCxTQUFTLENBQW1COzs7O1FBeER4QyxnQkFBVyxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDOzs7OztRQWtKeEQsaUJBQVk7Ozs7UUFBRyxDQUFDLE1BQStCLEVBQVEsRUFBRTtZQUUvRCxJQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUN0Qzs7b0JBQ1EsS0FBSyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztnQkFFaEQsSUFBRyxLQUFLLElBQUksQ0FBQyxFQUNiO29CQUNJLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztvQkFDdEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO2lCQUNwRDthQUNKO2lCQUVEO2dCQUNJLElBQUcsSUFBSSxDQUFDLGVBQWUsSUFBSSxNQUFNLEVBQ2pDO29CQUNJLElBQUksQ0FBQyxl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MkRBQXNEOzs7Ozs7O0lBdUh0RCwwREFBd0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBPbkRlc3Ryb3l9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQge05nU2VsZWN0UGx1Z2luLCBPcHRpb25zR2F0aGVyZXIsIENvbXBhcmVWYWx1ZUZ1bmMsIExpdmVTZWFyY2hGaWx0ZXIsIE5vcm1hbGl6ZUZ1bmN9IGZyb20gJy4uLy4uL21pc2MnO1xyXG5pbXBvcnQge05nU2VsZWN0UGx1Z2luSW5zdGFuY2VzfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3NlbGVjdCc7XHJcbmltcG9ydCB7ybVOZ1NlbGVjdE9wdGlvbiwgTmdTZWxlY3RPcHRpb259IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvb3B0aW9uJztcclxuaW1wb3J0IHtOb3JtYWxTdGF0ZX0gZnJvbSAnLi4vbm9ybWFsU3RhdGUnO1xyXG5pbXBvcnQge05PUk1BTF9TVEFURX0gZnJvbSAnLi4vbm9ybWFsU3RhdGUvdHlwZXMnO1xyXG5pbXBvcnQge1ZhbHVlSGFuZGxlciwgVmFsdWVIYW5kbGVyT3B0aW9uc30gZnJvbSAnLi92YWx1ZUhhbmRsZXIuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtQbHVnaW5CdXN9IGZyb20gJy4uLy4uL21pc2MvcGx1Z2luQnVzL3BsdWdpbkJ1cyc7XHJcblxyXG4vKipcclxuICogQmFzZSBjbGFzcyBmb3IgdmFsdWUgaGFuZGxlcnNcclxuICovXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVmFsdWVIYW5kbGVyQmFzZTxUVmFsdWUgPSBhbnksIFRPcHRpb25zIGV4dGVuZHMgVmFsdWVIYW5kbGVyT3B0aW9ucyA9IGFueT4gaW1wbGVtZW50cyBWYWx1ZUhhbmRsZXI8VFZhbHVlPiwgTmdTZWxlY3RQbHVnaW48VE9wdGlvbnMsIFRWYWx1ZT4sIE9uRGVzdHJveVxyXG57XHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgcHJvdGVjdGVkIGZpZWxkcyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPcHRpb25zIGZvciBOZ1NlbGVjdCBwbHVnaW5cclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF9vcHRpb25zOiBUT3B0aW9ucztcclxuXHJcbiAgICAvKipcclxuICAgICAqIE5vcm1hbCBzdGF0ZSB0aGF0IGlzIHVzZWRcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF9ub3JtYWxTdGF0ZTogTm9ybWFsU3RhdGU7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTdWJzY3JpcHRpb24gZm9yIG9wdGlvbiBzZWxlY3Rpb25cclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF9vcHRpb25TZWxlY3RTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFN1YnNjcmlwdGlvbiBmb3Igb3B0aW9uIGNhbmNlbGF0aW9uXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfb3B0aW9uQ2FuY2VsU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTdWJzY3JpcHRpb24gZm9yIGNoYW5nZXMgb2Ygb3B0aW9ucyBpbiBvcHRpb25zIGdhdGhlcmVyXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfb3B0aW9uc0NoYW5nZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5zdGFuY2Ugb2YgcHJldmlvdXMgb3B0aW9ucyBnYXRoZXJlciwgdGhhdCBpcyB1c2VkIGZvciBvYnRhaW5pbmcgYXZhaWxhYmxlIG9wdGlvbnNcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF9vcHRpb25zR2F0aGVyZXI6IE9wdGlvbnNHYXRoZXJlcjxUVmFsdWU+O1xyXG5cclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBwdWJsaWMgcHJvcGVydGllcyAtIGltcGxlbWVudGF0aW9uIG9mIER5bmFtaWNWYWx1ZUhhbmRsZXIgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogT3B0aW9ucyBmb3IgTmdTZWxlY3QgcGx1Z2luXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhYnN0cmFjdCBvcHRpb25zOiBUT3B0aW9ucztcclxuXHJcbiAgICAvKipcclxuICAgICAqIE9jY3VycyB3aGVuIHZhbHVlIG9mIE5nU2VsZWN0IGNoYW5nZXNcclxuICAgICAqL1xyXG4gICAgcHVibGljIHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDdXJyZW50IHZhbHVlIG9mIE5nU2VsZWN0XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZWxlY3RlZE9wdGlvbnM6IE5nU2VsZWN0T3B0aW9uPFRWYWx1ZT58TmdTZWxlY3RPcHRpb248VFZhbHVlPltdO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3VycmVudCBzZWxlY3RlZCB2YWx1ZSBvZiBOZ1NlbGVjdFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IHZhbHVlKCk6IFRWYWx1ZXxUVmFsdWVbXVxyXG4gICAge1xyXG4gICAgICAgIGlmKHRoaXMuc2VsZWN0ZWRPcHRpb25zKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgaWYoQXJyYXkuaXNBcnJheSh0aGlzLnNlbGVjdGVkT3B0aW9ucykpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkT3B0aW9ucy5tYXAob3B0ID0+IG9wdC52YWx1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZE9wdGlvbnMudmFsdWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBwcm90ZWN0ZWQgcHJvcGVydGllcyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGdW5jdGlvbiBvZiB2YWx1ZSBjb21wYXJlciB0aGF0IGlzIHVzZWQgZm9yIGNvbXBhcmlzb24gb2YgdmFsdWVzXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBnZXQgdmFsdWVDb21wYXJlcigpOiBDb21wYXJlVmFsdWVGdW5jPFRWYWx1ZT5cclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wbHVnaW5CdXM/LnNlbGVjdE9wdGlvbnM/LnZhbHVlQ29tcGFyZXI7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNZXRob2QgdGhhdCBpcyB1c2VkIGZvciBmaWx0ZXJpbmcgd2hlbiBsaXZlIHNlYXJjaCBpcyBydW5uaW5nIG9uIHN0YXRpYyBkYXRhXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBnZXQgbGl2ZVNlYXJjaEZpbHRlcigpOiBMaXZlU2VhcmNoRmlsdGVyPFRWYWx1ZT5cclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wbHVnaW5CdXM/LnNlbGVjdE9wdGlvbnM/LmxpdmVTZWFyY2hGaWx0ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBOb3JtYWxpemVyIHVzZWQgZm9yIG5vcm1hbGl6aW5nIHZhbHVlc1xyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgZ2V0IG5vcm1hbGl6ZXIoKTogTm9ybWFsaXplRnVuYzxUVmFsdWU+XHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGx1Z2luQnVzPy5zZWxlY3RPcHRpb25zPy5ub3JtYWxpemVyO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBjb25zdHJ1Y3RvciAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgbmdTZWxlY3RQbHVnaW5zOiBOZ1NlbGVjdFBsdWdpbkluc3RhbmNlcyxcclxuICAgICAgICAgICAgICAgIHB1YmxpYyBwbHVnaW5FbGVtZW50OiBFbGVtZW50UmVmLFxyXG4gICAgICAgICAgICAgICAgcHVibGljIHBsdWdpbkJ1czogUGx1Z2luQnVzPFRWYWx1ZT4pXHJcbiAgICB7XHJcbiAgICB9XHJcblxyXG4gICAgLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIHB1YmxpYyBtZXRob2RzIC0gaW1wbGVtZW50YXRpb24gb2YgT25EZXN0cm95ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuICAgIFxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWxsZWQgd2hlbiBjb21wb25lbnQgaXMgZGVzdHJveWVkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fb3B0aW9uU2VsZWN0U3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIHRoaXMuX29wdGlvblNlbGVjdFN1YnNjcmlwdGlvbiA9IG51bGw7XHJcblxyXG4gICAgICAgIHRoaXMuX29wdGlvbnNDaGFuZ2VTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgdGhpcy5fb3B0aW9uc0NoYW5nZVN1YnNjcmlwdGlvbiA9IG51bGw7XHJcblxyXG4gICAgICAgIHRoaXMuX29wdGlvbkNhbmNlbFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB0aGlzLl9vcHRpb25DYW5jZWxTdWJzY3JpcHRpb24gPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBwdWJsaWMgbWV0aG9kcyAtIGltcGxlbWVudGF0aW9uIG9mIER5bmFtaWNWYWx1ZUhhbmRsZXIgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB2YWx1ZSBmb3IgTmdTZWxlY3RcclxuICAgICAqIEBwYXJhbSB2YWx1ZSAtIFZhbHVlIHRvIGJlIHNldFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYWJzdHJhY3Qgc2V0VmFsdWUodmFsdWU6VFZhbHVlfFRWYWx1ZVtdKTogdm9pZDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluaXRpYWxpemUgcGx1Z2luLCB0byBiZSByZWFkeSB0byB1c2UsIGluaXRpYWxpemUgY29tbXVuaWNhdGlvbiB3aXRoIG90aGVyIHBsdWdpbnNcclxuICAgICAqL1xyXG4gICAgcHVibGljIGluaXRpYWxpemUoKVxyXG4gICAge1xyXG4gICAgICAgIGlmKHRoaXMuX29wdGlvbnNHYXRoZXJlciAmJiB0aGlzLl9vcHRpb25zR2F0aGVyZXIgIT0gdGhpcy5wbHVnaW5CdXM/LnNlbGVjdE9wdGlvbnM/Lm9wdGlvbnNHYXRoZXJlcilcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX29wdGlvbnNDaGFuZ2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgICAgdGhpcy5fb3B0aW9uc0NoYW5nZVN1YnNjcmlwdGlvbiA9IG51bGw7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9vcHRpb25zR2F0aGVyZXIgPSBudWxsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYoIXRoaXMuX29wdGlvbnNHYXRoZXJlcilcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX29wdGlvbnNHYXRoZXJlciA9IHRoaXMucGx1Z2luQnVzPy5zZWxlY3RPcHRpb25zPy5vcHRpb25zR2F0aGVyZXI7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9vcHRpb25zQ2hhbmdlU3Vic2NyaXB0aW9uID0gdGhpcy5fb3B0aW9uc0dhdGhlcmVyLm9wdGlvbnNDaGFuZ2Uuc3Vic2NyaWJlKCgpID0+IHRoaXMuX2xvYWRPcHRpb25zKCkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYoIXRoaXMuX29wdGlvblNlbGVjdFN1YnNjcmlwdGlvbilcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX29wdGlvblNlbGVjdFN1YnNjcmlwdGlvbiA9IHRoaXMucGx1Z2luQnVzLm9wdGlvblNlbGVjdC5zdWJzY3JpYmUodGhpcy5fc2V0VmFsdWUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYoIXRoaXMuX29wdGlvbkNhbmNlbFN1YnNjcmlwdGlvbilcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX29wdGlvbkNhbmNlbFN1YnNjcmlwdGlvbiA9IHRoaXMucGx1Z2luQnVzLm9wdGlvbkNhbmNlbC5zdWJzY3JpYmUodGhpcy5fY2FuY2VsVmFsdWUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IG5vcm1hbFN0YXRlID0gdGhpcy5uZ1NlbGVjdFBsdWdpbnNbTk9STUFMX1NUQVRFXSBhcyBOb3JtYWxTdGF0ZTtcclxuICAgICAgICB0aGlzLl9ub3JtYWxTdGF0ZSA9IG5vcm1hbFN0YXRlO1xyXG5cclxuICAgICAgICB0aGlzLl9sb2FkT3B0aW9ucygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5pdGlhbGl6ZSBwbHVnaW4gb3B0aW9ucywgYWxsIG9wZXJhdGlvbnMgcmVxdWlyZWQgdG8gYmUgZG9uZSB3aXRoIHBsdWdpbiBvcHRpb25zIGFyZSBoYW5kbGVkIGhlcmVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGluaXRPcHRpb25zKClcclxuICAgIHtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEV4cGxpY2l0bHkgcnVucyBpbnZhbGlkYXRpb24gb2YgY29udGVudCAoY2hhbmdlIGRldGVjdGlvbilcclxuICAgICAqL1xyXG4gICAgcHVibGljIGludmFsaWRhdGVWaXN1YWxzKCk6IHZvaWRcclxuICAgIHtcclxuICAgIH1cclxuXHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgcHJvdGVjdGVkIG1ldGhvZHMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB2YWx1ZSBcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IF9zZXRWYWx1ZTogKG9wdGlvbjogybVOZ1NlbGVjdE9wdGlvbjxUVmFsdWU+KSA9PiB2b2lkO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FuY2VscywgcmVtb3ZlcyBvcHRpb24gZnJvbSBzZWxlY3RlZCBvcHRpb25zXHJcbiAgICAgKiBAcGFyYW0gb3B0aW9uIC0gT3B0aW9uIHRvIGJlIGNhbmNlbGVkXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfY2FuY2VsVmFsdWUgPSAob3B0aW9uOiDJtU5nU2VsZWN0T3B0aW9uPFRWYWx1ZT4pOiB2b2lkID0+XHJcbiAgICB7XHJcbiAgICAgICAgaWYoQXJyYXkuaXNBcnJheSh0aGlzLnNlbGVjdGVkT3B0aW9ucykpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBsZXQgaW5kZXggPSB0aGlzLnNlbGVjdGVkT3B0aW9ucy5pbmRleE9mKG9wdGlvbik7XHJcblxyXG4gICAgICAgICAgICBpZihpbmRleCA+PSAwKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkT3B0aW9ucy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMgPSBbLi4udGhpcy5zZWxlY3RlZE9wdGlvbnNdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuc2VsZWN0ZWRPcHRpb25zID09IG9wdGlvbilcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMgPSBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9jbGVhclNlbGVjdGVkKCk7XHJcbiAgICAgICAgdGhpcy5fbWFya1ZhbHVlQXNTZWxlY3RlZCgpO1xyXG5cclxuICAgICAgICB0aGlzLl9ub3JtYWxTdGF0ZS5pbnZhbGlkYXRlVmlzdWFscygpO1xyXG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2xlYXJzIGFsbCBzZWxlY3RlZCB2YWx1ZXNcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF9jbGVhclNlbGVjdGVkKClcclxuICAgIHtcclxuICAgICAgICB0aGlzLl9vcHRpb25zR2F0aGVyZXIub3B0aW9ucy5mb3JFYWNoKChvcHRpb246IMm1TmdTZWxlY3RPcHRpb248VFZhbHVlPikgPT4gb3B0aW9uLnNlbGVjdGVkID0gZmFsc2UpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWFya3MgY3VycmVudCB2YWx1ZSBhcyBzZWxlY3RlZFxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX21hcmtWYWx1ZUFzU2VsZWN0ZWQoKVxyXG4gICAge1xyXG4gICAgICAgIGlmKHRoaXMuc2VsZWN0ZWRPcHRpb25zKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgaWYoQXJyYXkuaXNBcnJheSh0aGlzLnNlbGVjdGVkT3B0aW9ucykpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25zLmZvckVhY2goKG9wdGlvbjogybVOZ1NlbGVjdE9wdGlvbjxUVmFsdWU+KSA9PiBvcHRpb24uc2VsZWN0ZWQgPSB0cnVlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICh0aGlzLnNlbGVjdGVkT3B0aW9ucyBhcyDJtU5nU2VsZWN0T3B0aW9uPFRWYWx1ZT4pLnNlbGVjdGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIExvYWRzIG9wdGlvbnNcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IF9sb2FkT3B0aW9ucygpOiB2b2lkO1xyXG59Il19
|
|
@@ -1,19 +1,10 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
-
};
|
|
10
1
|
/**
|
|
11
2
|
* @fileoverview added by tsickle
|
|
12
3
|
* Generated from: src/plugins/liveSearch/edit/editLiveSearch.component.ts
|
|
13
4
|
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
14
5
|
*/
|
|
15
6
|
import { Component, ChangeDetectionStrategy, ChangeDetectorRef, Inject, Optional, ElementRef, ViewChild, EventEmitter } from '@angular/core';
|
|
16
|
-
import { extend, isPresent
|
|
7
|
+
import { extend, isPresent } from '@jscrpt/common';
|
|
17
8
|
import { STRING_LOCALIZATION } from '@anglr/common';
|
|
18
9
|
import { NG_SELECT_PLUGIN_INSTANCES } from '../../../components/select/types';
|
|
19
10
|
import { LIVE_SEARCH_OPTIONS } from '../types';
|
|
@@ -309,35 +300,13 @@ var EditLiveSearchComponent = /** @class */ (function () {
|
|
|
309
300
|
this._changeDetector.detectChanges();
|
|
310
301
|
};
|
|
311
302
|
//######################### public methods - template bindings #########################
|
|
312
|
-
/**
|
|
313
|
-
* Handles user input value
|
|
314
|
-
* @param value - Value of input
|
|
315
|
-
* @internal
|
|
316
|
-
*/
|
|
317
|
-
//######################### public methods - template bindings #########################
|
|
318
|
-
/**
|
|
319
|
-
* Handles user input value
|
|
320
|
-
* \@internal
|
|
321
|
-
* @param {?} value - Value of input
|
|
322
|
-
* @return {?}
|
|
323
|
-
*/
|
|
324
|
-
EditLiveSearchComponent.prototype.handleUserInput =
|
|
325
|
-
//######################### public methods - template bindings #########################
|
|
326
|
-
/**
|
|
327
|
-
* Handles user input value
|
|
328
|
-
* \@internal
|
|
329
|
-
* @param {?} value - Value of input
|
|
330
|
-
* @return {?}
|
|
331
|
-
*/
|
|
332
|
-
function (value) {
|
|
333
|
-
this.handleInput(value, true);
|
|
334
|
-
};
|
|
335
303
|
/**
|
|
336
304
|
* Handle input value
|
|
337
305
|
* @param value - Value of input
|
|
338
306
|
* @param inputChange - Indication that change was by input event of input
|
|
339
307
|
* @internal
|
|
340
308
|
*/
|
|
309
|
+
//######################### public methods - template bindings #########################
|
|
341
310
|
/**
|
|
342
311
|
* Handle input value
|
|
343
312
|
* \@internal
|
|
@@ -345,7 +314,9 @@ var EditLiveSearchComponent = /** @class */ (function () {
|
|
|
345
314
|
* @param {?=} inputChange - Indication that change was by input event of input
|
|
346
315
|
* @return {?}
|
|
347
316
|
*/
|
|
348
|
-
EditLiveSearchComponent.prototype.handleInput =
|
|
317
|
+
EditLiveSearchComponent.prototype.handleInput =
|
|
318
|
+
//######################### public methods - template bindings #########################
|
|
319
|
+
/**
|
|
349
320
|
* Handle input value
|
|
350
321
|
* \@internal
|
|
351
322
|
* @param {?} value - Value of input
|
|
@@ -505,7 +476,7 @@ var EditLiveSearchComponent = /** @class */ (function () {
|
|
|
505
476
|
EditLiveSearchComponent.decorators = [
|
|
506
477
|
{ type: Component, args: [{
|
|
507
478
|
selector: "ng-edit-live-search",
|
|
508
|
-
template: "<div style=\"display: none;\">\r\n <div #liveSearchElement [ngClass]=\"options?.cssClasses?.wrapperDiv\">\r\n <input #inputElement\r\n [ngClass]=\"options?.cssClasses?.input\"\r\n type=\"text\"\r\n [value]=\"searchValueDisplayed\"\r\n (input)=\"
|
|
479
|
+
template: "<div style=\"display: none;\">\r\n <div #liveSearchElement [ngClass]=\"options?.cssClasses?.wrapperDiv\">\r\n <input #inputElement\r\n [ngClass]=\"options?.cssClasses?.input\"\r\n type=\"text\"\r\n [value]=\"searchValueDisplayed\"\r\n (input)=\"handleInput($any($event.target).value, true)\"\r\n (focus)=\"handleFocus($any($event.target))\"\r\n (click)=\"handleFocus($any($event.target), true)\"\r\n placeholder=\"{{texts?.inputPlaceholder}}\"\r\n [disabled]=\"pluginBus?.selectOptions.readonly\">\r\n </div>\r\n</div>",
|
|
509
480
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
510
481
|
styles: [".edit-wrapper-div\r\n{\r\n width: 100%;\r\n}\r\n\r\n.edit-control\r\n{\r\n padding: 4px;\r\n height: 26px;\r\n width: 100%;\r\n border: none;\r\n outline: none;\r\n}"]
|
|
511
482
|
},] }
|
|
@@ -523,12 +494,6 @@ var EditLiveSearchComponent = /** @class */ (function () {
|
|
|
523
494
|
liveSearchElementChild: [{ type: ViewChild, args: ['liveSearchElement',] }],
|
|
524
495
|
inputElementChild: [{ type: ViewChild, args: ['inputElement',] }]
|
|
525
496
|
};
|
|
526
|
-
__decorate([
|
|
527
|
-
DebounceCall(220),
|
|
528
|
-
__metadata("design:type", Function),
|
|
529
|
-
__metadata("design:paramtypes", [String]),
|
|
530
|
-
__metadata("design:returntype", void 0)
|
|
531
|
-
], EditLiveSearchComponent.prototype, "handleUserInput", null);
|
|
532
497
|
return EditLiveSearchComponent;
|
|
533
498
|
}());
|
|
534
499
|
export { EditLiveSearchComponent };
|
|
@@ -638,4 +603,4 @@ if (false) {
|
|
|
638
603
|
*/
|
|
639
604
|
EditLiveSearchComponent.prototype._stringLocalization;
|
|
640
605
|
}
|
|
641
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdExpdmVTZWFyY2guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3BsdWdpbnMvbGl2ZVNlYXJjaC9lZGl0L2VkaXRMaXZlU2VhcmNoLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUN0SixPQUFPLEVBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRCxPQUFPLEVBQUMsbUJBQW1CLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBTXRFLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQzVFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUU3QyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFFdkQsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBRXhDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7O0lBT3RELGNBQWMsR0FDcEI7SUFDSSxVQUFVLEVBQ1Y7UUFDSSxVQUFVLEVBQUUsa0JBQWtCO1FBQzlCLEtBQUssRUFBRSxjQUFjO0tBQ3hCO0lBQ0QsS0FBSyxFQUNMO1FBQ0ksZ0JBQWdCLEVBQUUsYUFBYTtLQUVsQztJQUNELGVBQWUsRUFBRSxLQUFLO0lBQ3RCLGlCQUFpQixFQUFFLEtBQUs7SUFDeEIsV0FBVyxFQUFFLEtBQUs7Q0FDckI7Ozs7QUFLRDtJQWdJSSxpRUFBaUU7SUFDakUsaUNBQW1FLGVBQXdDLEVBQzVFLFNBQW9CLEVBQ2hDLGFBQXlCLEVBQ3RCLGVBQWtDLEVBQ0wsbUJBQXVDLEVBQ3JDLE9BQStCO1FBTGpCLG9CQUFlLEdBQWYsZUFBZSxDQUF5QjtRQUM1RSxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ2hDLGtCQUFhLEdBQWIsYUFBYSxDQUFZO1FBQ3RCLG9CQUFlLEdBQWYsZUFBZSxDQUFtQjtRQUNMLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBb0I7Ozs7UUExQ25GLGdCQUFXLEdBQVcsSUFBSSxDQUFDOzs7O1FBSzNCLHNCQUFpQixHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDOzs7Ozs7UUFRakUseUJBQW9CLEdBQVcsSUFBSSxDQUFDOzs7OztRQU1wQyxVQUFLLEdBQW9CLEVBQUUsQ0FBQztRQTBCL0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQTVFRCxzQkFBYyxxREFBZ0I7UUFMOUIsMEVBQTBFO1FBRTFFOztXQUVHOzs7Ozs7OztRQUNIO1lBRUksT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUM7UUFDekUsQ0FBQzs7O09BQUE7SUFPRCxzQkFBVyw0Q0FBTztRQUxsQiwwR0FBMEc7UUFFMUc7O1dBRUc7Ozs7Ozs7UUFDSDtZQUVJLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUN6QixDQUFDOzs7OztRQUNELFVBQW1CLE9BQThCO1lBRTdDLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3pELENBQUM7OztPQUpBO0lBU0Qsc0JBQVcsc0RBQWlCO1FBSDVCOztXQUVHOzs7OztRQUNIO1lBRUksT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsYUFBYSxDQUFDO1FBQ3JELENBQUM7OztPQUFBO0lBcURELGtHQUFrRztJQUVsRzs7T0FFRzs7Ozs7O0lBQ0ksNkNBQVc7Ozs7OztJQUFsQjs7UUFFSSxNQUFBLElBQUksQ0FBQywwQkFBMEIsMENBQUUsV0FBVyxHQUFHO1FBQy9DLElBQUksQ0FBQywwQkFBMEIsR0FBRyxJQUFJLENBQUM7UUFFdkMsTUFBQSxJQUFJLENBQUMseUJBQXlCLDBDQUFFLFdBQVcsR0FBRztRQUM5QyxJQUFJLENBQUMseUJBQXlCLEdBQUcsSUFBSSxDQUFDO1FBRXRDLE1BQUEsSUFBSSxDQUFDLHlCQUF5QiwwQ0FBRSxXQUFXLEdBQUc7UUFDOUMsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQztRQUV0QyxNQUFBLElBQUksQ0FBQyw0QkFBNEIsMENBQUUsV0FBVyxHQUFHO1FBQ2pELElBQUksQ0FBQyw0QkFBNEIsR0FBRyxJQUFJLENBQUM7UUFFekMsTUFBQSxJQUFJLENBQUMsaUNBQWlDLDBDQUFFLFdBQVcsR0FBRztRQUN0RCxJQUFJLENBQUMsaUNBQWlDLEdBQUcsSUFBSSxDQUFDO0lBQ2xELENBQUM7SUFFRCx1R0FBdUc7SUFFdkc7O09BRUc7Ozs7OztJQUNJLDRDQUFVOzs7Ozs7SUFBakI7UUFBQSxpQkF1SEM7UUFySEcsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsU0FBUzs7O1FBQUMsY0FBTSxPQUFBLEtBQUksQ0FBQyxVQUFVLEVBQUUsRUFBakIsQ0FBaUIsRUFBQyxDQUFDO1FBRXpHLElBQUcsSUFBSSxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxlQUFlLEVBQ2pHO1lBQ0ksSUFBSSxDQUFDLDBCQUEwQixDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzlDLElBQUksQ0FBQywwQkFBMEIsR0FBRyxJQUFJLENBQUM7WUFFdkMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztTQUNoQztRQUVELElBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQ3pCO1lBQ0ksSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQztZQUVyRSxJQUFJLENBQUMsMEJBQTBCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLHNCQUFzQixDQUFDLFNBQVM7OztZQUFDO2dCQUVyRiwyQ0FBMkM7Z0JBQzNDLElBQUcsQ0FBQyxLQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsSUFBSTs7OztnQkFBQyxVQUFDLE1BQXVCLElBQUssT0FBQSxNQUFNLENBQUMsTUFBTSxFQUFiLENBQWEsRUFBQyxFQUNsSDtvQkFDSSxrREFBa0Q7b0JBQ2xELElBQUcsS0FBSSxDQUFDLFdBQVcsRUFDbkI7OzRCQUNRLE1BQU0sR0FBb0IsS0FBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLElBQUk7Ozs7d0JBQUMsVUFBQSxHQUFHLElBQUksT0FBQSxLQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFJLENBQUMsV0FBVyxFQUFFLEtBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUE3RyxDQUE2RyxFQUFDO3dCQUV0TixJQUFHLE1BQU0sRUFDVDs0QkFDSSxLQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLE9BQU87Ozs7NEJBQUMsVUFBQyxNQUF1QixJQUFLLE9BQUEsTUFBTSxDQUFDLE1BQU0sR0FBRyxLQUFLLEVBQXJCLENBQXFCLEVBQUMsQ0FBQzs0QkFDakgsTUFBTSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7NEJBQ3JCLEtBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsQ0FBQzt5QkFDbkM7cUJBQ0o7b0JBQ0QsY0FBYzt5QkFFZDt3QkFDSSxLQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztxQkFDbkM7aUJBQ0o7WUFDTCxDQUFDLEVBQUMsQ0FBQztTQUNOOztZQUVHLEtBQUssR0FBRyxtQkFBQSxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxFQUFTO1FBRWhELElBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLEtBQUssRUFDdEM7WUFDSSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztTQUN0QjtRQUVELElBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUNmO1lBQ0ksSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7U0FDdkI7UUFFRCxJQUFHLENBQUMsSUFBSSxDQUFDLDRCQUE0QixFQUNyQztZQUNJLElBQUksQ0FBQyw0QkFBNEIsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxTQUFTOzs7WUFBQzs7Z0JBRXpFLE1BQUEsS0FBSSxDQUFDLGlCQUFpQiwwQ0FBRSxhQUFhLENBQUMsS0FBSyxHQUFHO1lBQ2xELENBQUMsRUFBQyxDQUFDO1NBQ047UUFFRCxJQUFHLENBQUMsSUFBSSxDQUFDLGlDQUFpQyxFQUMxQztZQUNJLElBQUksQ0FBQyxpQ0FBaUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLG9CQUFvQixDQUFDLFNBQVM7OztZQUFDO2dCQUVuRixLQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDdEIsQ0FBQyxFQUFDLENBQUM7U0FDTjs7WUFFRyxZQUFZLEdBQUcsbUJBQUEsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsRUFBZ0I7UUFFdEUsSUFBRyxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksWUFBWSxFQUMzRDtZQUNJLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUM3QyxJQUFJLENBQUMseUJBQXlCLEdBQUcsSUFBSSxDQUFDO1lBRXRDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1NBQzdCO1FBRUQsSUFBRyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQ3RCO1lBQ0ksSUFBSSxDQUFDLGFBQWEsR0FBRyxZQUFZLENBQUM7WUFFbEMsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLFNBQVM7OztZQUFDOzs7b0JBRWxFLFFBQVEsR0FBRyxLQUFJLENBQUMsYUFBYSxDQUFDLGVBQWU7Z0JBRWpELElBQUcsQ0FBQyxRQUFRLEVBQ1o7b0JBQ0ksS0FBSSxDQUFDLG9CQUFvQixHQUFHLEVBQUUsQ0FBQztvQkFDL0IsS0FBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDckIsS0FBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztvQkFFckMsT0FBTztpQkFDVjtnQkFFRCxzQ0FBc0M7Z0JBQ3RDLEtBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBRXZCLElBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFDMUI7b0JBQ0ksS0FBSSxDQUFDLG9CQUFvQixHQUFHLEVBQUUsQ0FBQztvQkFDL0IsTUFBQSxLQUFJLENBQUMsaUJBQWlCLDBDQUFFLGFBQWEsQ0FBQyxLQUFLLEdBQUc7b0JBQzlDLEtBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFLENBQUM7aUJBQ3hDO3FCQUVEO29CQUNJLCtCQUErQjtvQkFDL0IsS0FBSSxDQUFDLG9CQUFvQixHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUM7b0JBQzFDLEtBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFLENBQUM7b0JBRXJDLHFCQUFxQjtvQkFDckIsTUFBQSxLQUFJLENBQUMsaUJBQWlCLDBDQUFFLGFBQWEsQ0FBQyxNQUFNLEdBQUc7aUJBQ2xEO1lBQ0wsQ0FBQyxFQUFDLENBQUM7U0FDTjtRQUVELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQ7O09BRUc7Ozs7O0lBQ0ksNkNBQVc7Ozs7SUFBbEI7SUFFQSxDQUFDO0lBRUQ7O09BRUc7Ozs7O0lBQ0ksbURBQWlCOzs7O0lBQXhCO1FBRUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQsd0ZBQXdGO0lBRXhGOzs7O09BSUc7Ozs7Ozs7O0lBRUksaURBQWU7Ozs7Ozs7O0lBQXRCLFVBQXVCLEtBQWE7UUFFaEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHOzs7Ozs7OztJQUNJLDZDQUFXOzs7Ozs7O0lBQWxCLFVBQW1CLEtBQWEsRUFBRSxXQUE0QjtRQUE1Qiw0QkFBQSxFQUFBLG1CQUE0QjtRQUUxRCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFOUIsSUFBRyxXQUFXLEVBQ2Q7WUFDSSxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDeEMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztZQUVsQyxxQkFBcUI7WUFDckIsSUFBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFDekM7Z0JBQ0ksY0FBYztnQkFDZCxJQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLEVBQ2xDO29CQUNJLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUNyQztnQkFDRCw0QkFBNEI7cUJBQ3ZCLElBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLElBQUksU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFDdEU7b0JBQ0ksSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ3JDO2dCQUNELDJCQUEyQjthQUM5QjtTQUNKO0lBQ0wsQ0FBQztJQUVEOzs7OztPQUtHOzs7Ozs7OztJQUNJLDZDQUFXOzs7Ozs7O0lBQWxCLFVBQW1CLE9BQXlCLEVBQUUsSUFBcUI7UUFBckIscUJBQUEsRUFBQSxZQUFxQjtRQUUvRCxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7UUFFakIsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7UUFFaEMsSUFBRyxJQUFJLEVBQ1A7WUFDSSxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDM0M7UUFFRCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7O09BRUc7Ozs7O0lBQ0ksNENBQVU7Ozs7SUFBakI7UUFFSSxpQ0FBaUM7UUFDakMsSUFBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFDekM7WUFDSSxtQkFBbUI7WUFDbkIsSUFBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsRUFDM0Y7Z0JBQ0ksSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQzthQUN2RTtZQUNELFlBQVk7aUJBRVo7Z0JBQ0ksSUFBSSxDQUFDLG9CQUFvQixHQUFHLEVBQUUsQ0FBQzthQUNsQztTQUNKO1FBQ0QsWUFBWTthQUVaO1lBQ0ksSUFBSSxDQUFDLG9CQUFvQixHQUFHLEVBQUUsQ0FBQztTQUNsQztRQUVELHlCQUF5QjtRQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDOUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQsdUVBQXVFO0lBRXZFOztPQUVHOzs7Ozs7O0lBQ08sNENBQVU7Ozs7Ozs7SUFBcEI7UUFBQSxpQkFRQztRQU5HLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPOzs7O1FBQUMsVUFBQSxHQUFHO1lBRXZDLEtBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxLQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzVFLENBQUMsRUFBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7O09BRUc7Ozs7OztJQUNPLDBEQUF3Qjs7Ozs7SUFBbEM7O1lBRVEsWUFBWSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJOzs7O1FBQUMsVUFBQSxHQUFHLElBQUksT0FBQSxHQUFHLENBQUMsTUFBTSxFQUFWLENBQVUsRUFBQzs7WUFDNUQsZUFBZSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNOzs7O1FBQUMsVUFBQSxHQUFHLElBQUksT0FBQSxHQUFHLENBQUMsUUFBUSxFQUFaLENBQVksRUFBQztRQUV2RSxrQ0FBa0M7UUFDbEMsSUFBRyxDQUFDLFlBQVksSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQzNDOztnQkFDUSxLQUFLLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztZQUVwQyxJQUFHLEtBQUssRUFDUjtnQkFDSSxLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQzthQUN2QjtTQUNKO1FBQ0QsZ0JBQWdCO2FBQ1gsSUFBRyxDQUFDLFlBQVksRUFDckI7WUFDSSwwQkFBMEI7WUFDMUIsZUFBZSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztTQUM3RDtJQUNMLENBQUM7O2dCQXhiSixTQUFTLFNBQ1Y7b0JBQ0ksUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsNm9CQUE0QztvQkFFNUMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O2lCQUNsRDs7OztnREEySGdCLE1BQU0sU0FBQywwQkFBMEIsY0FBRyxRQUFRO2dCQTVKckQsU0FBUyx1QkE2SkEsUUFBUTtnQkE1S3dELFVBQVU7Z0JBQS9DLGlCQUFpQjtnREErSzVDLE1BQU0sU0FBQyxtQkFBbUI7Z0RBQzFCLE1BQU0sU0FBQyxtQkFBbUIsY0FBRyxRQUFROzs7eUNBaEJqRCxTQUFTLFNBQUMsbUJBQW1CO29DQU83QixTQUFTLFNBQUMsY0FBYzs7SUEwTHpCO1FBREMsWUFBWSxDQUFDLEdBQUcsQ0FBQzs7OztrRUFJakI7SUErSEwsOEJBQUM7Q0FBQSxBQXpiRCxJQXliQztTQWxiWSx1QkFBdUI7Ozs7Ozs7SUFPaEMseUNBQXdCOzs7Ozs7SUFLeEIsZ0RBQXNDOzs7Ozs7SUFLdEMsbURBQTRDOzs7Ozs7SUFLNUMsNkRBQW1EOzs7Ozs7SUFLbkQsNERBQWtEOzs7Ozs7SUFLbEQsNERBQWtEOzs7Ozs7SUFLbEQsK0RBQXFEOzs7Ozs7SUFLckQsb0VBQTBEOzs7Ozs7SUFLMUQsMkNBQTBDOzs7OztJQXFDMUMsOENBQWtDOzs7OztJQUtsQyxvREFBd0U7Ozs7OztJQVF4RSx1REFBMkM7Ozs7OztJQU0zQyx3Q0FBbUM7Ozs7OztJQVFuQyx5REFDdUQ7Ozs7OztJQU12RCxvREFDdUQ7O0lBRzNDLGtEQUErRjs7SUFDL0YsNENBQXVDOztJQUN2QyxnREFBZ0M7Ozs7O0lBQ2hDLGtEQUE0Qzs7Ozs7SUFDNUMsc0RBQThFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgSW5qZWN0LCBPcHRpb25hbCwgRWxlbWVudFJlZiwgVmlld0NoaWxkLCBFdmVudEVtaXR0ZXIsIE9uRGVzdHJveX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7ZXh0ZW5kLCBpc1ByZXNlbnQsIERlYm91bmNlQ2FsbH0gZnJvbSAnQGpzY3JwdC9jb21tb24nO1xyXG5pbXBvcnQge1NUUklOR19MT0NBTElaQVRJT04sIFN0cmluZ0xvY2FsaXphdGlvbn0gZnJvbSAnQGFuZ2xyL2NvbW1vbic7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7RWRpdExpdmVTZWFyY2hPcHRpb25zLCBFZGl0TGl2ZVNlYXJjaH0gZnJvbSAnLi9lZGl0TGl2ZVNlYXJjaC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge05nU2VsZWN0UGx1Z2luLCBPcHRpb25zR2F0aGVyZXJ9IGZyb20gJy4uLy4uLy4uL21pc2MnO1xyXG5pbXBvcnQge05nU2VsZWN0UGx1Z2luSW5zdGFuY2VzfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL3NlbGVjdCc7XHJcbmltcG9ydCB7TkdfU0VMRUNUX1BMVUdJTl9JTlNUQU5DRVN9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvc2VsZWN0L3R5cGVzJztcclxuaW1wb3J0IHtMSVZFX1NFQVJDSF9PUFRJT05TfSBmcm9tICcuLi90eXBlcyc7XHJcbmltcG9ydCB7VmFsdWVIYW5kbGVyfSBmcm9tICcuLi8uLi92YWx1ZUhhbmRsZXInO1xyXG5pbXBvcnQge1ZBTFVFX0hBTkRMRVJ9IGZyb20gJy4uLy4uL3ZhbHVlSGFuZGxlci90eXBlcyc7XHJcbmltcG9ydCB7UG9wdXB9IGZyb20gJy4uLy4uL3BvcHVwJztcclxuaW1wb3J0IHtQT1BVUH0gZnJvbSAnLi4vLi4vcG9wdXAvdHlwZXMnO1xyXG5pbXBvcnQge8m1TmdTZWxlY3RPcHRpb259IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvb3B0aW9uJztcclxuaW1wb3J0IHtQbHVnaW5CdXN9IGZyb20gJy4uLy4uLy4uL21pc2MvcGx1Z2luQnVzL3BsdWdpbkJ1cyc7XHJcbmltcG9ydCB7TGl2ZVNlYXJjaFRleHRzfSBmcm9tICcuLi9saXZlU2VhcmNoLmludGVyZmFjZSc7XHJcblxyXG4vKipcclxuICogRGVmYXVsdCBvcHRpb25zIGZvciBsaXZlIHNlYXJjaFxyXG4gKiBAaW50ZXJuYWxcclxuICovXHJcbmNvbnN0IGRlZmF1bHRPcHRpb25zOiBFZGl0TGl2ZVNlYXJjaE9wdGlvbnMgPVxyXG57XHJcbiAgICBjc3NDbGFzc2VzOlxyXG4gICAge1xyXG4gICAgICAgIHdyYXBwZXJEaXY6ICdlZGl0LXdyYXBwZXItZGl2JyxcclxuICAgICAgICBpbnB1dDogJ2VkaXQtY29udHJvbCdcclxuICAgIH0sXHJcbiAgICB0ZXh0czpcclxuICAgIHtcclxuICAgICAgICBpbnB1dFBsYWNlaG9sZGVyOiAnU2VsZWN0IGl0ZW0nXHJcblxyXG4gICAgfSxcclxuICAgIGtlZXBTZWFyY2hWYWx1ZTogZmFsc2UsXHJcbiAgICBub25FeGlzdGluZ0NhbmNlbDogZmFsc2UsXHJcbiAgICBlbXB0eUNhbmNlbDogZmFsc2VcclxufTtcclxuXHJcbi8qKlxyXG4gKiBDb21wb25lbnQgdXNlZCBmb3Igb2J0YWluaW5nIGVkaXQgbGl2ZSBzZWFyY2ggaHRtbCBlbGVtZW50XHJcbiAqL1xyXG5AQ29tcG9uZW50KFxyXG57XHJcbiAgICBzZWxlY3RvcjogXCJuZy1lZGl0LWxpdmUtc2VhcmNoXCIsXHJcbiAgICB0ZW1wbGF0ZVVybDogJ2VkaXRMaXZlU2VhcmNoLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWydlZGl0TGl2ZVNlYXJjaC5jb21wb25lbnQuY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRWRpdExpdmVTZWFyY2hDb21wb25lbnQgaW1wbGVtZW50cyBFZGl0TGl2ZVNlYXJjaCwgTmdTZWxlY3RQbHVnaW48RWRpdExpdmVTZWFyY2hPcHRpb25zPiwgT25EZXN0cm95XHJcbntcclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBwcm90ZWN0ZWQgZmllbGRzICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIFBvcHVwIHBsdWdpbiB1c2VkIHdpdGhpbiBgTmdTZWxlY3RgXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfcG9wdXA6IFBvcHVwO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsdWUgaGFuZGxlciBwbHVnaW4gdXNlZCB3aXRoaW4gYE5nU2VsZWN0YFxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX3ZhbHVlSGFuZGxlcjogVmFsdWVIYW5kbGVyO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5zdGFuY2Ugb2YgcHJldmlvdXMgb3B0aW9ucyBnYXRoZXJlciwgdGhhdCBpcyB1c2VkIGZvciBvYnRhaW5pbmcgYXZhaWxhYmxlIG9wdGlvbnNcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF9vcHRpb25zR2F0aGVyZXI6IE9wdGlvbnNHYXRoZXJlcjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFN1YnNjcmlwdGlvbiBmb3IgY2hhbmdlcyBvZiBvcHRpb25zIGluIG9wdGlvbnMgZ2F0aGVyZXJcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF9vcHRpb25zQ2hhbmdlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTdWJzY3JpcHRpb24gZm9yIGNoYW5nZXMgaW4gdGV4dHNcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF90ZXh0c0NoYW5nZWRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFN1YnNjcmlwdGlvbiBmb3IgY2hhbmdlcyBvZiBzZWxlY3RlZCB2YWx1ZVxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX3ZhbHVlQ2hhbmdlZFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU3Vic2NyaXB0aW9uIGZvciBsaXZlIHNlYXJjaCBmb2N1cyByZXF1ZXN0XHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfbGl2ZVNlYXJjaEZvY3VzU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTdWJzY3JpcHRpb24gZm9yIHVwZGF0ZSBkaXNwbGF5ZWQgdmFsdWUgcmVxdWVzdFxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX3VwZGF0ZURpc3BsYXllZFZhbHVlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPcHRpb25zIGZvciBOZ1NlbGVjdCBwbHVnaW5cclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF9vcHRpb25zOiBFZGl0TGl2ZVNlYXJjaE9wdGlvbnM7XHJcblxyXG4gICAgLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIHByb3RlY3RlZCBwcm9wZXJ0aWVzICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgY3VycmVudGx5IGF2YWlsYWJsZSBvcHRpb25zXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBnZXQgYXZhaWxhYmxlT3B0aW9ucygpOiDJtU5nU2VsZWN0T3B0aW9uW11cclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wbHVnaW5CdXMuc2VsZWN0T3B0aW9ucy5vcHRpb25zR2F0aGVyZXIuYXZhaWxhYmxlT3B0aW9ucztcclxuICAgIH1cclxuXHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgcHVibGljIHByb3BlcnRpZXMgLSBpbXBsZW1lbnRhdGlvbiBvZiBFZGl0TGl2ZVNlYXJjaCAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPcHRpb25zIGZvciBOZ1NlbGVjdCBwbHVnaW5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCBvcHRpb25zKCk6IEVkaXRMaXZlU2VhcmNoT3B0aW9uc1xyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9vcHRpb25zO1xyXG4gICAgfVxyXG4gICAgcHVibGljIHNldCBvcHRpb25zKG9wdGlvbnM6IEVkaXRMaXZlU2VhcmNoT3B0aW9ucylcclxuICAgIHtcclxuICAgICAgICB0aGlzLl9vcHRpb25zID0gZXh0ZW5kKHRydWUsIHRoaXMuX29wdGlvbnMsIG9wdGlvbnMpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSFRNTCBlbGVtZW50IHRoYXQgcmVwcmVzZW50cyBsaXZlIHNlYXJjaFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IGxpdmVTZWFyY2hFbGVtZW50KCk6IEhUTUxFbGVtZW50XHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubGl2ZVNlYXJjaEVsZW1lbnRDaGlsZC5uYXRpdmVFbGVtZW50O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3VycmVudCB2YWx1ZSBvZiBsaXZlIHNlYXJjaFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2VhcmNoVmFsdWU6IHN0cmluZyA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPY2N1cnMgd2hlbiBjdXJyZW50IHZhbHVlIG9mIGxpdmUgc2VhcmNoIGNoYW5nZXNcclxuICAgICAqL1xyXG4gICAgcHVibGljIHNlYXJjaFZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gICAgLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIHB1YmxpYyBwcm9wZXJ0aWVzIC0gdGVtcGxhdGUgYmluZGluZ3MgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3VycmVudCB2YWx1ZSB0aGF0IGlzIGRpc3BsYXllZFxyXG4gICAgICogQGludGVybmFsXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZWFyY2hWYWx1ZURpc3BsYXllZDogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE9iamVjdCBjb250YWluaW5nIGF2YWlsYWJsZSB0ZXh0c1xyXG4gICAgICogQGludGVybmFsXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB0ZXh0czogTGl2ZVNlYXJjaFRleHRzID0ge307XHJcblxyXG4gICAgLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIHB1YmxpYyBwcm9wZXJ0aWVzIC0gY2hpbGRyZW4gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmlldyBjaGlsZCB0aGF0IHJlcHJlc2VudHMgbGl2ZSBzZWFyY2ggZWxlbWVudFxyXG4gICAgICogQGludGVybmFsXHJcbiAgICAgKi9cclxuICAgIEBWaWV3Q2hpbGQoJ2xpdmVTZWFyY2hFbGVtZW50JylcclxuICAgIHB1YmxpYyBsaXZlU2VhcmNoRWxlbWVudENoaWxkOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZpZXcgY2hpbGQgdGhhdCByZXByZXNlbnRzIGlucHV0IGVsZW1lbnRcclxuICAgICAqIEBpbnRlcm5hbFxyXG4gICAgICovXHJcbiAgICBAVmlld0NoaWxkKCdpbnB1dEVsZW1lbnQnKVxyXG4gICAgcHVibGljIGlucHV0RWxlbWVudENoaWxkOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xyXG5cclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBjb25zdHJ1Y3RvciAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KE5HX1NFTEVDVF9QTFVHSU5fSU5TVEFOQ0VTKSBAT3B0aW9uYWwoKSBwdWJsaWMgbmdTZWxlY3RQbHVnaW5zOiBOZ1NlbGVjdFBsdWdpbkluc3RhbmNlcyxcclxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIHB1YmxpYyBwbHVnaW5CdXM6IFBsdWdpbkJ1cyxcclxuICAgICAgICAgICAgICAgIHB1YmxpYyBwbHVnaW5FbGVtZW50OiBFbGVtZW50UmVmLFxyXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9jaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgICAgICAgICBASW5qZWN0KFNUUklOR19MT0NBTElaQVRJT04pIHByb3RlY3RlZCBfc3RyaW5nTG9jYWxpemF0aW9uOiBTdHJpbmdMb2NhbGl6YXRpb24sXHJcbiAgICAgICAgICAgICAgICBASW5qZWN0KExJVkVfU0VBUkNIX09QVElPTlMpIEBPcHRpb25hbCgpIG9wdGlvbnM/OiBFZGl0TGl2ZVNlYXJjaE9wdGlvbnMpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fb3B0aW9ucyA9IGV4dGVuZCh0cnVlLCB7fSwgZGVmYXVsdE9wdGlvbnMsIG9wdGlvbnMpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBwdWJsaWMgbWV0aG9kcyAtIGltcGxlbWVudGF0aW9uIG9mIE9uRGVzdHJveSAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWxsZWQgd2hlbiBjb21wb25lbnQgaXMgZGVzdHJveWVkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fb3B0aW9uc0NoYW5nZVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB0aGlzLl9vcHRpb25zQ2hhbmdlU3Vic2NyaXB0aW9uID0gbnVsbDtcclxuXHJcbiAgICAgICAgdGhpcy5fdGV4dHNDaGFuZ2VkU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIHRoaXMuX3RleHRzQ2hhbmdlZFN1YnNjcmlwdGlvbiA9IG51bGw7XHJcblxyXG4gICAgICAgIHRoaXMuX3ZhbHVlQ2hhbmdlZFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB0aGlzLl92YWx1ZUNoYW5nZWRTdWJzY3JpcHRpb24gPSBudWxsO1xyXG5cclxuICAgICAgICB0aGlzLl9saXZlU2VhcmNoRm9jdXNTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgdGhpcy5fbGl2ZVNlYXJjaEZvY3VzU3Vic2NyaXB0aW9uID0gbnVsbDtcclxuXHJcbiAgICAgICAgdGhpcy5fdXBkYXRlRGlzcGxheWVkVmFsdWVTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgdGhpcy5fdXBkYXRlRGlzcGxheWVkVmFsdWVTdWJzY3JpcHRpb24gPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBwdWJsaWMgbWV0aG9kcyAtIGltcGxlbWVudGF0aW9uIG9mIEVkaXRMaXZlU2VhcmNoICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluaXRpYWxpemUgcGx1Z2luLCB0byBiZSByZWFkeSB0byB1c2UsIGluaXRpYWxpemUgY29tbXVuaWNhdGlvbiB3aXRoIG90aGVyIHBsdWdpbnNcclxuICAgICAqL1xyXG4gICAgcHVibGljIGluaXRpYWxpemUoKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX3RleHRzQ2hhbmdlZFN1YnNjcmlwdGlvbiA9IHRoaXMuX3N0cmluZ0xvY2FsaXphdGlvbi50ZXh0c0NoYW5nZS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5faW5pdFRleHRzKCkpO1xyXG5cclxuICAgICAgICBpZih0aGlzLl9vcHRpb25zR2F0aGVyZXIgJiYgdGhpcy5fb3B0aW9uc0dhdGhlcmVyICE9IHRoaXMucGx1Z2luQnVzLnNlbGVjdE9wdGlvbnMub3B0aW9uc0dhdGhlcmVyKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5fb3B0aW9uc0NoYW5nZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgICB0aGlzLl9vcHRpb25zQ2hhbmdlU3Vic2NyaXB0aW9uID0gbnVsbDtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX29wdGlvbnNHYXRoZXJlciA9IG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZighdGhpcy5fb3B0aW9uc0dhdGhlcmVyKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5fb3B0aW9uc0dhdGhlcmVyID0gdGhpcy5wbHVnaW5CdXMuc2VsZWN0T3B0aW9ucy5vcHRpb25zR2F0aGVyZXI7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9vcHRpb25zQ2hhbmdlU3Vic2NyaXB0aW9uID0gdGhpcy5fb3B0aW9uc0dhdGhlcmVyLmF2YWlsYWJsZU9wdGlvbnNDaGFuZ2Uuc3Vic2NyaWJlKCgpID0+XHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIC8vZG8gbm90IGNoYW5nZSBhY3RpdmUgaWYgYWN0aXZlIGlzIHZpc2libGVcclxuICAgICAgICAgICAgICAgIGlmKCF0aGlzLnBsdWdpbkJ1cy5zZWxlY3RPcHRpb25zLm9wdGlvbnNHYXRoZXJlci5hdmFpbGFibGVPcHRpb25zLmZpbmQoKG9wdGlvbjogybVOZ1NlbGVjdE9wdGlvbikgPT4gb3B0aW9uLmFjdGl2ZSkpXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy9vbmx5IHdoZW4gaW5wdXQgaXMgZmlsbGVkIGF0IGxlYXN0IHdpdGggb25lIGNoYXJcclxuICAgICAgICAgICAgICAgICAgICBpZih0aGlzLnNlYXJjaFZhbHVlKVxyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG9wdGlvbjogybVOZ1NlbGVjdE9wdGlvbiA9IHRoaXMucGx1Z2luQnVzLnNlbGVjdE9wdGlvbnMub3B0aW9uc0dhdGhlcmVyLmF2YWlsYWJsZU9wdGlvbnMuZmluZChpdG0gPT4gdGhpcy5wbHVnaW5CdXMuc2VsZWN0T3B0aW9ucy5saXZlU2VhcmNoRmlsdGVyKHRoaXMuc2VhcmNoVmFsdWUsIHRoaXMucGx1Z2luQnVzLnNlbGVjdE9wdGlvbnMubm9ybWFsaXplcikoaXRtKSk7XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYob3B0aW9uKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBsdWdpbkJ1cy5zZWxlY3RPcHRpb25zLm9wdGlvbnNHYXRoZXJlci5vcHRpb25zLmZvckVhY2goKG9wdGlvbjogybVOZ1NlbGVjdE9wdGlvbikgPT4gb3B0aW9uLmFjdGl2ZSA9IGZhbHNlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbi5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fcG9wdXAuaW52YWxpZGF0ZVZpc3VhbHMoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAvL3NlbGVjdCBmaXJzdFxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2FjdGl2YXRlU2VsZWN0ZWRPckZpcnN0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBwb3B1cCA9IHRoaXMubmdTZWxlY3RQbHVnaW5zW1BPUFVQXSBhcyBQb3B1cDtcclxuXHJcbiAgICAgICAgaWYodGhpcy5fcG9wdXAgJiYgdGhpcy5fcG9wdXAgIT0gcG9wdXApXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl9wb3B1cCA9IG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZighdGhpcy5fcG9wdXApXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl9wb3B1cCA9IHBvcHVwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYoIXRoaXMuX2xpdmVTZWFyY2hGb2N1c1N1YnNjcmlwdGlvbilcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX2xpdmVTZWFyY2hGb2N1c1N1YnNjcmlwdGlvbiA9IHRoaXMucGx1Z2luQnVzLmxpdmVTZWFyY2hGb2N1cy5zdWJzY3JpYmUoKCkgPT5cclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnRDaGlsZD8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmKCF0aGlzLl91cGRhdGVEaXNwbGF5ZWRWYWx1ZVN1YnNjcmlwdGlvbilcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX3VwZGF0ZURpc3BsYXllZFZhbHVlU3Vic2NyaXB0aW9uID0gdGhpcy5wbHVnaW5CdXMudXBkYXRlRGlzcGxheWVkVmFsdWUuc3Vic2NyaWJlKCgpID0+XHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlQmx1cigpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCB2YWx1ZUhhbmRsZXIgPSB0aGlzLm5nU2VsZWN0UGx1Z2luc1tWQUxVRV9IQU5ETEVSXSBhcyBWYWx1ZUhhbmRsZXI7XHJcblxyXG4gICAgICAgIGlmKHRoaXMuX3ZhbHVlSGFuZGxlciAmJiB0aGlzLl92YWx1ZUhhbmRsZXIgIT0gdmFsdWVIYW5kbGVyKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5fdmFsdWVDaGFuZ2VkU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlQ2hhbmdlZFN1YnNjcmlwdGlvbiA9IG51bGw7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl92YWx1ZUhhbmRsZXIgPSBudWxsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYoIXRoaXMuX3ZhbHVlSGFuZGxlcilcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlSGFuZGxlciA9IHZhbHVlSGFuZGxlcjtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlQ2hhbmdlZFN1YnNjcmlwdGlvbiA9IHRoaXMuX3ZhbHVlSGFuZGxlci52YWx1ZUNoYW5nZS5zdWJzY3JpYmUoKCkgPT5cclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgbGV0IHNlbGVjdGVkID0gdGhpcy5fdmFsdWVIYW5kbGVyLnNlbGVjdGVkT3B0aW9ucztcclxuXHJcbiAgICAgICAgICAgICAgICBpZighc2VsZWN0ZWQpXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hWYWx1ZURpc3BsYXllZCA9ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlSW5wdXQoJycpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIC8vcmVzZXQgZmlsdGVyaW5nIG9mIGF2YWlsYWJsZSBvcHRpb25zXHJcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUlucHV0KG51bGwpO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmKEFycmF5LmlzQXJyYXkoc2VsZWN0ZWQpKVxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoVmFsdWVEaXNwbGF5ZWQgPSAnJztcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlucHV0RWxlbWVudENoaWxkPy5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vc2V0IHNlbGVjdGVkIGludG8gbGl2ZSBzZWFyY2hcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaFZhbHVlRGlzcGxheWVkID0gc2VsZWN0ZWQudGV4dDtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8vc2VsZWN0IGN1cnJlbnQgdGV4dFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Q2hpbGQ/Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0KCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5faW5pdFRleHRzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbml0aWFsaXplIHBsdWdpbiBvcHRpb25zLCBhbGwgb3BlcmF0aW9ucyByZXF1aXJlZCB0byBiZSBkb25lIHdpdGggcGx1Z2luIG9wdGlvbnMgYXJlIGhhbmRsZWQgaGVyZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaW5pdE9wdGlvbnMoKVxyXG4gICAge1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRXhwbGljaXRseSBydW5zIGludmFsaWRhdGlvbiBvZiBjb250ZW50IChjaGFuZ2UgZGV0ZWN0aW9uKVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaW52YWxpZGF0ZVZpc3VhbHMoKTogdm9pZFxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgcHVibGljIG1ldGhvZHMgLSB0ZW1wbGF0ZSBiaW5kaW5ncyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIYW5kbGVzIHVzZXIgaW5wdXQgdmFsdWVcclxuICAgICAqIEBwYXJhbSB2YWx1ZSAtIFZhbHVlIG9mIGlucHV0XHJcbiAgICAgKiBAaW50ZXJuYWxcclxuICAgICAqL1xyXG4gICAgQERlYm91bmNlQ2FsbCgyMjApXHJcbiAgICBwdWJsaWMgaGFuZGxlVXNlcklucHV0KHZhbHVlOiBzdHJpbmcpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5oYW5kbGVJbnB1dCh2YWx1ZSwgdHJ1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIYW5kbGUgaW5wdXQgdmFsdWVcclxuICAgICAqIEBwYXJhbSB2YWx1ZSAtIFZhbHVlIG9mIGlucHV0XHJcbiAgICAgKiBAcGFyYW0gaW5wdXRDaGFuZ2UgLSBJbmRpY2F0aW9uIHRoYXQgY2hhbmdlIHdhcyBieSBpbnB1dCBldmVudCBvZiBpbnB1dFxyXG4gICAgICogQGludGVybmFsXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBoYW5kbGVJbnB1dCh2YWx1ZTogc3RyaW5nLCBpbnB1dENoYW5nZTogYm9vbGVhbiA9IGZhbHNlKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuc2VhcmNoVmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLnNlYXJjaFZhbHVlQ2hhbmdlLmVtaXQoKTtcclxuXHJcbiAgICAgICAgaWYoaW5wdXRDaGFuZ2UpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbkJ1cy5zaG93SGlkZVBvcHVwLmVtaXQodHJ1ZSk7XHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoVmFsdWVEaXNwbGF5ZWQgPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgICAgIC8vc2luZ2xlIHZhbHVlIHNlbGVjdFxyXG4gICAgICAgICAgICBpZighdGhpcy5wbHVnaW5CdXMuc2VsZWN0T3B0aW9ucy5tdWx0aXBsZSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgLy9jYW5jZWwgdmFsdWVcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMuX29wdGlvbnMubm9uRXhpc3RpbmdDYW5jZWwpXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdmFsdWVIYW5kbGVyLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy9lbXB0eSBzdHJpbmcgY2FuY2VscyB2YWx1ZVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZih0aGlzLl9vcHRpb25zLmVtcHR5Q2FuY2VsICYmIGlzUHJlc2VudCh2YWx1ZSkgJiYgIXZhbHVlLmxlbmd0aClcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl92YWx1ZUhhbmRsZXIuc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvL290aGVyd2lzZSBrZWVwIGxhc3QgdmFsdWVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEhhbmRsZXMgZm9jdXMgZXZlbnRcclxuICAgICAqIEBwYXJhbSBlbGVtZW50IC0gRWxlbWVudCB0aGF0IGdvdCBmb2N1c1xyXG4gICAgICogQHBhcmFtIHNob3cgLSBJbmRpY2F0aW9uIHdoZXRoZXIgc2hvdyBwb3B1cFxyXG4gICAgICogQGludGVybmFsXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBoYW5kbGVGb2N1cyhlbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50LCBzaG93OiBib29sZWFuID0gZmFsc2UpXHJcbiAgICB7XHJcbiAgICAgICAgZWxlbWVudC5zZWxlY3QoKTtcclxuXHJcbiAgICAgICAgdGhpcy5fYWN0aXZhdGVTZWxlY3RlZE9yRmlyc3QoKTtcclxuXHJcbiAgICAgICAgaWYoc2hvdylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luQnVzLnNob3dIaWRlUG9wdXAuZW1pdCh0cnVlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMucGx1Z2luQnVzLmZvY3VzLmVtaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEhhbmRsZXMgYmx1ciBvZiBsaXZlIHNlYXJjaFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaGFuZGxlQmx1cigpXHJcbiAgICB7XHJcbiAgICAgICAgLy9ub3QgbXVsdGlwbGUgYW5kIHNlbGVjdGVkIHZhbHVlXHJcbiAgICAgICAgaWYoIXRoaXMucGx1Z2luQnVzLnNlbGVjdE9wdGlvbnMubXVsdGlwbGUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICAvL3VzZSBzZWxlY3RlZCB0ZXh0XHJcbiAgICAgICAgICAgIGlmKHRoaXMuX3ZhbHVlSGFuZGxlci5zZWxlY3RlZE9wdGlvbnMgJiYgIUFycmF5LmlzQXJyYXkodGhpcy5fdmFsdWVIYW5kbGVyLnNlbGVjdGVkT3B0aW9ucykpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoVmFsdWVEaXNwbGF5ZWQgPSB0aGlzLl92YWx1ZUhhbmRsZXIuc2VsZWN0ZWRPcHRpb25zLnRleHQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy9yZXNldCB0ZXh0XHJcbiAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hWYWx1ZURpc3BsYXllZCA9ICcnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vcmVzZXQgdGV4dFxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoVmFsdWVEaXNwbGF5ZWQgPSAnJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vcmVzZXQgYXZhaWxhYmxlIG9wdGlvbnNcclxuICAgICAgICB0aGlzLnNlYXJjaFZhbHVlID0gbnVsbDtcclxuICAgICAgICB0aGlzLnNlYXJjaFZhbHVlQ2hhbmdlLmVtaXQoKTtcclxuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIHByb3RlY3RlZCBtZXRob2RzICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluaXRpYWxpemUgdGV4dHNcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF9pbml0VGV4dHMoKVxyXG4gICAge1xyXG4gICAgICAgIE9iamVjdC5rZXlzKHRoaXMub3B0aW9ucy50ZXh0cykuZm9yRWFjaChrZXkgPT5cclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMudGV4dHNba2V5XSA9IHRoaXMuX3N0cmluZ0xvY2FsaXphdGlvbi5nZXQodGhpcy5vcHRpb25zLnRleHRzW2tleV0pO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBY3RpdmF0ZXMgZmlyc3QgYXZhaWxhYmxlIG9wdGlvbiBvciBzZWxlY3RlZCBvcHRpb25cclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF9hY3RpdmF0ZVNlbGVjdGVkT3JGaXJzdCgpXHJcbiAgICB7XHJcbiAgICAgICAgbGV0IGFjdGl2ZU9wdGlvbiA9IHRoaXMuYXZhaWxhYmxlT3B0aW9ucy5maW5kKGl0bSA9PiBpdG0uYWN0aXZlKTtcclxuICAgICAgICBsZXQgc2VsZWN0ZWRPcHRpb25zID0gdGhpcy5hdmFpbGFibGVPcHRpb25zLmZpbHRlcihpdG0gPT4gaXRtLnNlbGVjdGVkKTtcclxuXHJcbiAgICAgICAgLy9ub3RoaW5nIGFjdGl2ZSwgbm90aGluZyBzZWxlY3RlZFxyXG4gICAgICAgIGlmKCFhY3RpdmVPcHRpb24gJiYgIXNlbGVjdGVkT3B0aW9ucy5sZW5ndGgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBsZXQgZmlyc3QgPSB0aGlzLmF2YWlsYWJsZU9wdGlvbnNbMF07XHJcblxyXG4gICAgICAgICAgICBpZihmaXJzdClcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgZmlyc3QuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAvL25vdGhpbmcgYWN0aXZlXHJcbiAgICAgICAgZWxzZSBpZighYWN0aXZlT3B0aW9uKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgLy9sYXN0IHNlbGVjdGVkIGFzIHNhY3RpdmVcclxuICAgICAgICAgICAgc2VsZWN0ZWRPcHRpb25zW3NlbGVjdGVkT3B0aW9ucy5sZW5ndGggLSAxXS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufSJdfQ==
|
|
606
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdExpdmVTZWFyY2guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3BsdWdpbnMvbGl2ZVNlYXJjaC9lZGl0L2VkaXRMaXZlU2VhcmNoLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUN0SixPQUFPLEVBQUMsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxtQkFBbUIsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFNdEUsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDNUUsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sVUFBVSxDQUFDO0FBRTdDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUV2RCxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFFeEMsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7SUFPdEQsY0FBYyxHQUNwQjtJQUNJLFVBQVUsRUFDVjtRQUNJLFVBQVUsRUFBRSxrQkFBa0I7UUFDOUIsS0FBSyxFQUFFLGNBQWM7S0FDeEI7SUFDRCxLQUFLLEVBQ0w7UUFDSSxnQkFBZ0IsRUFBRSxhQUFhO0tBRWxDO0lBQ0QsZUFBZSxFQUFFLEtBQUs7SUFDdEIsaUJBQWlCLEVBQUUsS0FBSztJQUN4QixXQUFXLEVBQUUsS0FBSztDQUNyQjs7OztBQUtEO0lBZ0lJLGlFQUFpRTtJQUNqRSxpQ0FBbUUsZUFBd0MsRUFDNUUsU0FBb0IsRUFDaEMsYUFBeUIsRUFDdEIsZUFBa0MsRUFDTCxtQkFBdUMsRUFD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bUI7b0NBTzdCLFNBQVMsU0FBQyxjQUFjOztJQWlUN0IsOEJBQUM7Q0FBQSxBQTlhRCxJQThhQztTQXZhWSx1QkFBdUI7Ozs7Ozs7SUFPaEMseUNBQXdCOzs7Ozs7SUFLeEIsZ0RBQXNDOzs7Ozs7SUFLdEMsbURBQTRDOzs7Ozs7SUFLNUMsNkRBQW1EOzs7Ozs7SUFLbkQsNERBQWtEOzs7Ozs7SUFLbEQsNERBQWtEOzs7Ozs7SUFLbEQsK0RBQXFEOzs7Ozs7SUFLckQsb0VBQTBEOzs7Ozs7SUFLMUQsMkNBQTBDOzs7OztJQXFDMUMsOENBQWtDOzs7OztJQUtsQyxvREFBd0U7Ozs7OztJQVF4RSx1REFBMkM7Ozs7OztJQU0zQyx3Q0FBbUM7Ozs7OztJQVFuQyx5REFDdUQ7Ozs7OztJQU12RCxvREFDdUQ7O0lBRzNDLGtEQUErRjs7SUFDL0YsNENBQXVDOztJQUN2QyxnREFBZ0M7Ozs7O0lBQ2hDLGtEQUE0Qzs7Ozs7SUFDNUMsc0RBQThFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgSW5qZWN0LCBPcHRpb25hbCwgRWxlbWVudFJlZiwgVmlld0NoaWxkLCBFdmVudEVtaXR0ZXIsIE9uRGVzdHJveX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7ZXh0ZW5kLCBpc1ByZXNlbnR9IGZyb20gJ0Bqc2NycHQvY29tbW9uJztcclxuaW1wb3J0IHtTVFJJTkdfTE9DQUxJWkFUSU9OLCBTdHJpbmdMb2NhbGl6YXRpb259IGZyb20gJ0Bhbmdsci9jb21tb24nO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQge0VkaXRMaXZlU2VhcmNoT3B0aW9ucywgRWRpdExpdmVTZWFyY2h9IGZyb20gJy4vZWRpdExpdmVTZWFyY2guaW50ZXJmYWNlJztcclxuaW1wb3J0IHtOZ1NlbGVjdFBsdWdpbiwgT3B0aW9uc0dhdGhlcmVyfSBmcm9tICcuLi8uLi8uLi9taXNjJztcclxuaW1wb3J0IHtOZ1NlbGVjdFBsdWdpbkluc3RhbmNlc30gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9zZWxlY3QnO1xyXG5pbXBvcnQge05HX1NFTEVDVF9QTFVHSU5fSU5TVEFOQ0VTfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL3NlbGVjdC90eXBlcyc7XHJcbmltcG9ydCB7TElWRV9TRUFSQ0hfT1BUSU9OU30gZnJvbSAnLi4vdHlwZXMnO1xyXG5pbXBvcnQge1ZhbHVlSGFuZGxlcn0gZnJvbSAnLi4vLi4vdmFsdWVIYW5kbGVyJztcclxuaW1wb3J0IHtWQUxVRV9IQU5ETEVSfSBmcm9tICcuLi8uLi92YWx1ZUhhbmRsZXIvdHlwZXMnO1xyXG5pbXBvcnQge1BvcHVwfSBmcm9tICcuLi8uLi9wb3B1cCc7XHJcbmltcG9ydCB7UE9QVVB9IGZyb20gJy4uLy4uL3BvcHVwL3R5cGVzJztcclxuaW1wb3J0IHvJtU5nU2VsZWN0T3B0aW9ufSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL29wdGlvbic7XHJcbmltcG9ydCB7UGx1Z2luQnVzfSBmcm9tICcuLi8uLi8uLi9taXNjL3BsdWdpbkJ1cy9wbHVnaW5CdXMnO1xyXG5pbXBvcnQge0xpdmVTZWFyY2hUZXh0c30gZnJvbSAnLi4vbGl2ZVNlYXJjaC5pbnRlcmZhY2UnO1xyXG5cclxuLyoqXHJcbiAqIERlZmF1bHQgb3B0aW9ucyBmb3IgbGl2ZSBzZWFyY2hcclxuICogQGludGVybmFsXHJcbiAqL1xyXG5jb25zdCBkZWZhdWx0T3B0aW9uczogRWRpdExpdmVTZWFyY2hPcHRpb25zID1cclxue1xyXG4gICAgY3NzQ2xhc3NlczpcclxuICAgIHtcclxuICAgICAgICB3cmFwcGVyRGl2OiAnZWRpdC13cmFwcGVyLWRpdicsXHJcbiAgICAgICAgaW5wdXQ6ICdlZGl0LWNvbnRyb2wnXHJcbiAgICB9LFxyXG4gICAgdGV4dHM6XHJcbiAgICB7XHJcbiAgICAgICAgaW5wdXRQbGFjZWhvbGRlcjogJ1NlbGVjdCBpdGVtJ1xyXG5cclxuICAgIH0sXHJcbiAgICBrZWVwU2VhcmNoVmFsdWU6IGZhbHNlLFxyXG4gICAgbm9uRXhpc3RpbmdDYW5jZWw6IGZhbHNlLFxyXG4gICAgZW1wdHlDYW5jZWw6IGZhbHNlXHJcbn07XHJcblxyXG4vKipcclxuICogQ29tcG9uZW50IHVzZWQgZm9yIG9idGFpbmluZyBlZGl0IGxpdmUgc2VhcmNoIGh0bWwgZWxlbWVudFxyXG4gKi9cclxuQENvbXBvbmVudChcclxue1xyXG4gICAgc2VsZWN0b3I6IFwibmctZWRpdC1saXZlLXNlYXJjaFwiLFxyXG4gICAgdGVtcGxhdGVVcmw6ICdlZGl0TGl2ZVNlYXJjaC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnZWRpdExpdmVTZWFyY2guY29tcG9uZW50LmNzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIEVkaXRMaXZlU2VhcmNoQ29tcG9uZW50IGltcGxlbWVudHMgRWRpdExpdmVTZWFyY2gsIE5nU2VsZWN0UGx1Z2luPEVkaXRMaXZlU2VhcmNoT3B0aW9ucz4sIE9uRGVzdHJveVxyXG57XHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgcHJvdGVjdGVkIGZpZWxkcyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQb3B1cCBwbHVnaW4gdXNlZCB3aXRoaW4gYE5nU2VsZWN0YFxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX3BvcHVwOiBQb3B1cDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbHVlIGhhbmRsZXIgcGx1Z2luIHVzZWQgd2l0aGluIGBOZ1NlbGVjdGBcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF92YWx1ZUhhbmRsZXI6IFZhbHVlSGFuZGxlcjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluc3RhbmNlIG9mIHByZXZpb3VzIG9wdGlvbnMgZ2F0aGVyZXIsIHRoYXQgaXMgdXNlZCBmb3Igb2J0YWluaW5nIGF2YWlsYWJsZSBvcHRpb25zXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfb3B0aW9uc0dhdGhlcmVyOiBPcHRpb25zR2F0aGVyZXI7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTdWJzY3JpcHRpb24gZm9yIGNoYW5nZXMgb2Ygb3B0aW9ucyBpbiBvcHRpb25zIGdhdGhlcmVyXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfb3B0aW9uc0NoYW5nZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU3Vic2NyaXB0aW9uIGZvciBjaGFuZ2VzIGluIHRleHRzXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfdGV4dHNDaGFuZ2VkU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTdWJzY3JpcHRpb24gZm9yIGNoYW5nZXMgb2Ygc2VsZWN0ZWQgdmFsdWVcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF92YWx1ZUNoYW5nZWRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFN1YnNjcmlwdGlvbiBmb3IgbGl2ZSBzZWFyY2ggZm9jdXMgcmVxdWVzdFxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX2xpdmVTZWFyY2hGb2N1c1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU3Vic2NyaXB0aW9uIGZvciB1cGRhdGUgZGlzcGxheWVkIHZhbHVlIHJlcXVlc3RcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF91cGRhdGVEaXNwbGF5ZWRWYWx1ZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogT3B0aW9ucyBmb3IgTmdTZWxlY3QgcGx1Z2luXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfb3B0aW9uczogRWRpdExpdmVTZWFyY2hPcHRpb25zO1xyXG5cclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBwcm90ZWN0ZWQgcHJvcGVydGllcyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIGN1cnJlbnRseSBhdmFpbGFibGUgb3B0aW9uc1xyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgZ2V0IGF2YWlsYWJsZU9wdGlvbnMoKTogybVOZ1NlbGVjdE9wdGlvbltdXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGx1Z2luQnVzLnNlbGVjdE9wdGlvbnMub3B0aW9uc0dhdGhlcmVyLmF2YWlsYWJsZU9wdGlvbnM7XHJcbiAgICB9XHJcblxyXG4gICAgLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIHB1YmxpYyBwcm9wZXJ0aWVzIC0gaW1wbGVtZW50YXRpb24gb2YgRWRpdExpdmVTZWFyY2ggIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogT3B0aW9ucyBmb3IgTmdTZWxlY3QgcGx1Z2luXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgb3B0aW9ucygpOiBFZGl0TGl2ZVNlYXJjaE9wdGlvbnNcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fb3B0aW9ucztcclxuICAgIH1cclxuICAgIHB1YmxpYyBzZXQgb3B0aW9ucyhvcHRpb25zOiBFZGl0TGl2ZVNlYXJjaE9wdGlvbnMpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fb3B0aW9ucyA9IGV4dGVuZCh0cnVlLCB0aGlzLl9vcHRpb25zLCBvcHRpb25zKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEhUTUwgZWxlbWVudCB0aGF0IHJlcHJlc2VudHMgbGl2ZSBzZWFyY2hcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCBsaXZlU2VhcmNoRWxlbWVudCgpOiBIVE1MRWxlbWVudFxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmxpdmVTZWFyY2hFbGVtZW50Q2hpbGQubmF0aXZlRWxlbWVudDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEN1cnJlbnQgdmFsdWUgb2YgbGl2ZSBzZWFyY2hcclxuICAgICAqL1xyXG4gICAgcHVibGljIHNlYXJjaFZhbHVlOiBzdHJpbmcgPSBudWxsO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogT2NjdXJzIHdoZW4gY3VycmVudCB2YWx1ZSBvZiBsaXZlIHNlYXJjaCBjaGFuZ2VzXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZWFyY2hWYWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBwdWJsaWMgcHJvcGVydGllcyAtIHRlbXBsYXRlIGJpbmRpbmdzICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIEN1cnJlbnQgdmFsdWUgdGhhdCBpcyBkaXNwbGF5ZWRcclxuICAgICAqIEBpbnRlcm5hbFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2VhcmNoVmFsdWVEaXNwbGF5ZWQ6IHN0cmluZyA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPYmplY3QgY29udGFpbmluZyBhdmFpbGFibGUgdGV4dHNcclxuICAgICAqIEBpbnRlcm5hbFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdGV4dHM6IExpdmVTZWFyY2hUZXh0cyA9IHt9O1xyXG5cclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBwdWJsaWMgcHJvcGVydGllcyAtIGNoaWxkcmVuICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZpZXcgY2hpbGQgdGhhdCByZXByZXNlbnRzIGxpdmUgc2VhcmNoIGVsZW1lbnRcclxuICAgICAqIEBpbnRlcm5hbFxyXG4gICAgICovXHJcbiAgICBAVmlld0NoaWxkKCdsaXZlU2VhcmNoRWxlbWVudCcpXHJcbiAgICBwdWJsaWMgbGl2ZVNlYXJjaEVsZW1lbnRDaGlsZDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWaWV3IGNoaWxkIHRoYXQgcmVwcmVzZW50cyBpbnB1dCBlbGVtZW50XHJcbiAgICAgKiBAaW50ZXJuYWxcclxuICAgICAqL1xyXG4gICAgQFZpZXdDaGlsZCgnaW5wdXRFbGVtZW50JylcclxuICAgIHB1YmxpYyBpbnB1dEVsZW1lbnRDaGlsZDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcclxuXHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgY29uc3RydWN0b3IgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG4gICAgY29uc3RydWN0b3IoQEluamVjdChOR19TRUxFQ1RfUExVR0lOX0lOU1RBTkNFUykgQE9wdGlvbmFsKCkgcHVibGljIG5nU2VsZWN0UGx1Z2luczogTmdTZWxlY3RQbHVnaW5JbnN0YW5jZXMsXHJcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBwdWJsaWMgcGx1Z2luQnVzOiBQbHVnaW5CdXMsXHJcbiAgICAgICAgICAgICAgICBwdWJsaWMgcGx1Z2luRWxlbWVudDogRWxlbWVudFJlZixcclxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgICAgICAgICAgICAgQEluamVjdChTVFJJTkdfTE9DQUxJWkFUSU9OKSBwcm90ZWN0ZWQgX3N0cmluZ0xvY2FsaXphdGlvbjogU3RyaW5nTG9jYWxpemF0aW9uLFxyXG4gICAgICAgICAgICAgICAgQEluamVjdChMSVZFX1NFQVJDSF9PUFRJT05TKSBAT3B0aW9uYWwoKSBvcHRpb25zPzogRWRpdExpdmVTZWFyY2hPcHRpb25zKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX29wdGlvbnMgPSBleHRlbmQodHJ1ZSwge30sIGRlZmF1bHRPcHRpb25zLCBvcHRpb25zKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgcHVibGljIG1ldGhvZHMgLSBpbXBsZW1lbnRhdGlvbiBvZiBPbkRlc3Ryb3kgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FsbGVkIHdoZW4gY29tcG9uZW50IGlzIGRlc3Ryb3llZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX29wdGlvbnNDaGFuZ2VTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgdGhpcy5fb3B0aW9uc0NoYW5nZVN1YnNjcmlwdGlvbiA9IG51bGw7XHJcblxyXG4gICAgICAgIHRoaXMuX3RleHRzQ2hhbmdlZFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB0aGlzLl90ZXh0c0NoYW5nZWRTdWJzY3JpcHRpb24gPSBudWxsO1xyXG5cclxuICAgICAgICB0aGlzLl92YWx1ZUNoYW5nZWRTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgdGhpcy5fdmFsdWVDaGFuZ2VkU3Vic2NyaXB0aW9uID0gbnVsbDtcclxuXHJcbiAgICAgICAgdGhpcy5fbGl2ZVNlYXJjaEZvY3VzU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIHRoaXMuX2xpdmVTZWFyY2hGb2N1c1N1YnNjcmlwdGlvbiA9IG51bGw7XHJcblxyXG4gICAgICAgIHRoaXMuX3VwZGF0ZURpc3BsYXllZFZhbHVlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIHRoaXMuX3VwZGF0ZURpc3BsYXllZFZhbHVlU3Vic2NyaXB0aW9uID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgcHVibGljIG1ldGhvZHMgLSBpbXBsZW1lbnRhdGlvbiBvZiBFZGl0TGl2ZVNlYXJjaCAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbml0aWFsaXplIHBsdWdpbiwgdG8gYmUgcmVhZHkgdG8gdXNlLCBpbml0aWFsaXplIGNvbW11bmljYXRpb24gd2l0aCBvdGhlciBwbHVnaW5zXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBpbml0aWFsaXplKClcclxuICAgIHtcclxuICAgICAgICB0aGlzLl90ZXh0c0NoYW5nZWRTdWJzY3JpcHRpb24gPSB0aGlzLl9zdHJpbmdMb2NhbGl6YXRpb24udGV4dHNDaGFuZ2Uuc3Vic2NyaWJlKCgpID0+IHRoaXMuX2luaXRUZXh0cygpKTtcclxuXHJcbiAgICAgICAgaWYodGhpcy5fb3B0aW9uc0dhdGhlcmVyICYmIHRoaXMuX29wdGlvbnNHYXRoZXJlciAhPSB0aGlzLnBsdWdpbkJ1cy5zZWxlY3RPcHRpb25zLm9wdGlvbnNHYXRoZXJlcilcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX29wdGlvbnNDaGFuZ2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgICAgdGhpcy5fb3B0aW9uc0NoYW5nZVN1YnNjcmlwdGlvbiA9IG51bGw7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9vcHRpb25zR2F0aGVyZXIgPSBudWxsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYoIXRoaXMuX29wdGlvbnNHYXRoZXJlcilcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX29wdGlvbnNHYXRoZXJlciA9IHRoaXMucGx1Z2luQnVzLnNlbGVjdE9wdGlvbnMub3B0aW9uc0dhdGhlcmVyO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fb3B0aW9uc0NoYW5nZVN1YnNjcmlwdGlvbiA9IHRoaXMuX29wdGlvbnNHYXRoZXJlci5hdmFpbGFibGVPcHRpb25zQ2hhbmdlLnN1YnNjcmliZSgoKSA9PlxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAvL2RvIG5vdCBjaGFuZ2UgYWN0aXZlIGlmIGFjdGl2ZSBpcyB2aXNpYmxlXHJcbiAgICAgICAgICAgICAgICBpZighdGhpcy5wbHVnaW5CdXMuc2VsZWN0T3B0aW9ucy5vcHRpb25zR2F0aGVyZXIuYXZhaWxhYmxlT3B0aW9ucy5maW5kKChvcHRpb246IMm1TmdTZWxlY3RPcHRpb24pID0+IG9wdGlvbi5hY3RpdmUpKVxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vb25seSB3aGVuIGlucHV0IGlzIGZpbGxlZCBhdCBsZWFzdCB3aXRoIG9uZSBjaGFyXHJcbiAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5zZWFyY2hWYWx1ZSlcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBvcHRpb246IMm1TmdTZWxlY3RPcHRpb24gPSB0aGlzLnBsdWdpbkJ1cy5zZWxlY3RPcHRpb25zLm9wdGlvbnNHYXRoZXJlci5hdmFpbGFibGVPcHRpb25zLmZpbmQoaXRtID0+IHRoaXMucGx1Z2luQnVzLnNlbGVjdE9wdGlvbnMubGl2ZVNlYXJjaEZpbHRlcih0aGlzLnNlYXJjaFZhbHVlLCB0aGlzLnBsdWdpbkJ1cy5zZWxlY3RPcHRpb25zLm5vcm1hbGl6ZXIpKGl0bSkpO1xyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKG9wdGlvbilcclxuICAgICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wbHVnaW5CdXMuc2VsZWN0T3B0aW9ucy5vcHRpb25zR2F0aGVyZXIub3B0aW9ucy5mb3JFYWNoKChvcHRpb246IMm1TmdTZWxlY3RPcHRpb24pID0+IG9wdGlvbi5hY3RpdmUgPSBmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb24uYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3BvcHVwLmludmFsaWRhdGVWaXN1YWxzKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgLy9zZWxlY3QgZmlyc3RcclxuICAgICAgICAgICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9hY3RpdmF0ZVNlbGVjdGVkT3JGaXJzdCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgcG9wdXAgPSB0aGlzLm5nU2VsZWN0UGx1Z2luc1tQT1BVUF0gYXMgUG9wdXA7XHJcblxyXG4gICAgICAgIGlmKHRoaXMuX3BvcHVwICYmIHRoaXMuX3BvcHVwICE9IHBvcHVwKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5fcG9wdXAgPSBudWxsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYoIXRoaXMuX3BvcHVwKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5fcG9wdXAgPSBwb3B1cDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmKCF0aGlzLl9saXZlU2VhcmNoRm9jdXNTdWJzY3JpcHRpb24pXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl9saXZlU2VhcmNoRm9jdXNTdWJzY3JpcHRpb24gPSB0aGlzLnBsdWdpbkJ1cy5saXZlU2VhcmNoRm9jdXMuc3Vic2NyaWJlKCgpID0+XHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Q2hpbGQ/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZighdGhpcy5fdXBkYXRlRGlzcGxheWVkVmFsdWVTdWJzY3JpcHRpb24pXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl91cGRhdGVEaXNwbGF5ZWRWYWx1ZVN1YnNjcmlwdGlvbiA9IHRoaXMucGx1Z2luQnVzLnVwZGF0ZURpc3BsYXllZFZhbHVlLnN1YnNjcmliZSgoKSA9PlxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUJsdXIoKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgdmFsdWVIYW5kbGVyID0gdGhpcy5uZ1NlbGVjdFBsdWdpbnNbVkFMVUVfSEFORExFUl0gYXMgVmFsdWVIYW5kbGVyO1xyXG5cclxuICAgICAgICBpZih0aGlzLl92YWx1ZUhhbmRsZXIgJiYgdGhpcy5fdmFsdWVIYW5kbGVyICE9IHZhbHVlSGFuZGxlcilcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlQ2hhbmdlZFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgICB0aGlzLl92YWx1ZUNoYW5nZWRTdWJzY3JpcHRpb24gPSBudWxsO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fdmFsdWVIYW5kbGVyID0gbnVsbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmKCF0aGlzLl92YWx1ZUhhbmRsZXIpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl92YWx1ZUhhbmRsZXIgPSB2YWx1ZUhhbmRsZXI7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl92YWx1ZUNoYW5nZWRTdWJzY3JpcHRpb24gPSB0aGlzLl92YWx1ZUhhbmRsZXIudmFsdWVDaGFuZ2Uuc3Vic2NyaWJlKCgpID0+XHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGxldCBzZWxlY3RlZCA9IHRoaXMuX3ZhbHVlSGFuZGxlci5zZWxlY3RlZE9wdGlvbnM7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYoIXNlbGVjdGVkKVxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoVmFsdWVEaXNwbGF5ZWQgPSAnJztcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUlucHV0KCcnKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAvL3Jlc2V0IGZpbHRlcmluZyBvZiBhdmFpbGFibGUgb3B0aW9uc1xyXG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVJbnB1dChudWxsKTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZihBcnJheS5pc0FycmF5KHNlbGVjdGVkKSlcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaFZhbHVlRGlzcGxheWVkID0gJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnRDaGlsZD8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAvL3NldCBzZWxlY3RlZCBpbnRvIGxpdmUgc2VhcmNoXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hWYWx1ZURpc3BsYXllZCA9IHNlbGVjdGVkLnRleHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAvL3NlbGVjdCBjdXJyZW50IHRleHRcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlucHV0RWxlbWVudENoaWxkPy5uYXRpdmVFbGVtZW50LnNlbGVjdCgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX2luaXRUZXh0cygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5pdGlhbGl6ZSBwbHVnaW4gb3B0aW9ucywgYWxsIG9wZXJhdGlvbnMgcmVxdWlyZWQgdG8gYmUgZG9uZSB3aXRoIHBsdWdpbiBvcHRpb25zIGFyZSBoYW5kbGVkIGhlcmVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGluaXRPcHRpb25zKClcclxuICAgIHtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEV4cGxpY2l0bHkgcnVucyBpbnZhbGlkYXRpb24gb2YgY29udGVudCAoY2hhbmdlIGRldGVjdGlvbilcclxuICAgICAqL1xyXG4gICAgcHVibGljIGludmFsaWRhdGVWaXN1YWxzKCk6IHZvaWRcclxuICAgIHtcclxuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIHB1YmxpYyBtZXRob2RzIC0gdGVtcGxhdGUgYmluZGluZ3MgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSGFuZGxlIGlucHV0IHZhbHVlXHJcbiAgICAgKiBAcGFyYW0gdmFsdWUgLSBWYWx1ZSBvZiBpbnB1dFxyXG4gICAgICogQHBhcmFtIGlucHV0Q2hhbmdlIC0gSW5kaWNhdGlvbiB0aGF0IGNoYW5nZSB3YXMgYnkgaW5wdXQgZXZlbnQgb2YgaW5wdXRcclxuICAgICAqIEBpbnRlcm5hbFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaGFuZGxlSW5wdXQodmFsdWU6IHN0cmluZywgaW5wdXRDaGFuZ2U6IGJvb2xlYW4gPSBmYWxzZSlcclxuICAgIHtcclxuICAgICAgICB0aGlzLnNlYXJjaFZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5zZWFyY2hWYWx1ZUNoYW5nZS5lbWl0KCk7XHJcblxyXG4gICAgICAgIGlmKGlucHV0Q2hhbmdlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW5CdXMuc2hvd0hpZGVQb3B1cC5lbWl0KHRydWUpO1xyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaFZhbHVlRGlzcGxheWVkID0gdmFsdWU7XHJcblxyXG4gICAgICAgICAgICAvL3NpbmdsZSB2YWx1ZSBzZWxlY3RcclxuICAgICAgICAgICAgaWYoIXRoaXMucGx1Z2luQnVzLnNlbGVjdE9wdGlvbnMubXVsdGlwbGUpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIC8vY2FuY2VsIHZhbHVlXHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLl9vcHRpb25zLm5vbkV4aXN0aW5nQ2FuY2VsKVxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3ZhbHVlSGFuZGxlci5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8vZW1wdHkgc3RyaW5nIGNhbmNlbHMgdmFsdWVcclxuICAgICAgICAgICAgICAgIGVsc2UgaWYodGhpcy5fb3B0aW9ucy5lbXB0eUNhbmNlbCAmJiBpc1ByZXNlbnQodmFsdWUpICYmICF2YWx1ZS5sZW5ndGgpXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdmFsdWVIYW5kbGVyLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy9vdGhlcndpc2Uga2VlcCBsYXN0IHZhbHVlXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIYW5kbGVzIGZvY3VzIGV2ZW50XHJcbiAgICAgKiBAcGFyYW0gZWxlbWVudCAtIEVsZW1lbnQgdGhhdCBnb3QgZm9jdXNcclxuICAgICAqIEBwYXJhbSBzaG93IC0gSW5kaWNhdGlvbiB3aGV0aGVyIHNob3cgcG9wdXBcclxuICAgICAqIEBpbnRlcm5hbFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaGFuZGxlRm9jdXMoZWxlbWVudDogSFRNTElucHV0RWxlbWVudCwgc2hvdzogYm9vbGVhbiA9IGZhbHNlKVxyXG4gICAge1xyXG4gICAgICAgIGVsZW1lbnQuc2VsZWN0KCk7XHJcblxyXG4gICAgICAgIHRoaXMuX2FjdGl2YXRlU2VsZWN0ZWRPckZpcnN0KCk7XHJcblxyXG4gICAgICAgIGlmKHNob3cpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbkJ1cy5zaG93SGlkZVBvcHVwLmVtaXQodHJ1ZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnBsdWdpbkJ1cy5mb2N1cy5lbWl0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIYW5kbGVzIGJsdXIgb2YgbGl2ZSBzZWFyY2hcclxuICAgICAqL1xyXG4gICAgcHVibGljIGhhbmRsZUJsdXIoKVxyXG4gICAge1xyXG4gICAgICAgIC8vbm90IG11bHRpcGxlIGFuZCBzZWxlY3RlZCB2YWx1ZVxyXG4gICAgICAgIGlmKCF0aGlzLnBsdWdpbkJ1cy5zZWxlY3RPcHRpb25zLm11bHRpcGxlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgLy91c2Ugc2VsZWN0ZWQgdGV4dFxyXG4gICAgICAgICAgICBpZih0aGlzLl92YWx1ZUhhbmRsZXIuc2VsZWN0ZWRPcHRpb25zICYmICFBcnJheS5pc0FycmF5KHRoaXMuX3ZhbHVlSGFuZGxlci5zZWxlY3RlZE9wdGlvbnMpKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaFZhbHVlRGlzcGxheWVkID0gdGhpcy5fdmFsdWVIYW5kbGVyLnNlbGVjdGVkT3B0aW9ucy50ZXh0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vcmVzZXQgdGV4dFxyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoVmFsdWVEaXNwbGF5ZWQgPSAnJztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAvL3Jlc2V0IHRleHRcclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaFZhbHVlRGlzcGxheWVkID0gJyc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvL3Jlc2V0IGF2YWlsYWJsZSBvcHRpb25zXHJcbiAgICAgICAgdGhpcy5zZWFyY2hWYWx1ZSA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5zZWFyY2hWYWx1ZUNoYW5nZS5lbWl0KCk7XHJcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBwcm90ZWN0ZWQgbWV0aG9kcyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbml0aWFsaXplIHRleHRzXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfaW5pdFRleHRzKClcclxuICAgIHtcclxuICAgICAgICBPYmplY3Qua2V5cyh0aGlzLm9wdGlvbnMudGV4dHMpLmZvckVhY2goa2V5ID0+XHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnRleHRzW2tleV0gPSB0aGlzLl9zdHJpbmdMb2NhbGl6YXRpb24uZ2V0KHRoaXMub3B0aW9ucy50ZXh0c1trZXldKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWN0aXZhdGVzIGZpcnN0IGF2YWlsYWJsZSBvcHRpb24gb3Igc2VsZWN0ZWQgb3B0aW9uXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfYWN0aXZhdGVTZWxlY3RlZE9yRmlyc3QoKVxyXG4gICAge1xyXG4gICAgICAgIGxldCBhY3RpdmVPcHRpb24gPSB0aGlzLmF2YWlsYWJsZU9wdGlvbnMuZmluZChpdG0gPT4gaXRtLmFjdGl2ZSk7XHJcbiAgICAgICAgbGV0IHNlbGVjdGVkT3B0aW9ucyA9IHRoaXMuYXZhaWxhYmxlT3B0aW9ucy5maWx0ZXIoaXRtID0+IGl0bS5zZWxlY3RlZCk7XHJcblxyXG4gICAgICAgIC8vbm90aGluZyBhY3RpdmUsIG5vdGhpbmcgc2VsZWN0ZWRcclxuICAgICAgICBpZighYWN0aXZlT3B0aW9uICYmICFzZWxlY3RlZE9wdGlvbnMubGVuZ3RoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgbGV0IGZpcnN0ID0gdGhpcy5hdmFpbGFibGVPcHRpb25zWzBdO1xyXG5cclxuICAgICAgICAgICAgaWYoZmlyc3QpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGZpcnN0LmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLy9ub3RoaW5nIGFjdGl2ZVxyXG4gICAgICAgIGVsc2UgaWYoIWFjdGl2ZU9wdGlvbilcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIC8vbGFzdCBzZWxlY3RlZCBhcyBzYWN0aXZlXHJcbiAgICAgICAgICAgIHNlbGVjdGVkT3B0aW9uc1tzZWxlY3RlZE9wdGlvbnMubGVuZ3RoIC0gMV0uYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0iXX0=
|