barsa-novin-ray-core 1.0.351 → 1.0.353

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.
@@ -151,7 +151,7 @@ export class FieldBaseComponent extends BaseComponent {
151
151
  }
152
152
  }
153
153
  FieldBaseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: FieldBaseComponent, deps: [{ token: i1.PortalService }, { token: i2.BbbTranslatePipe }, { token: i2.PictureFieldSourcePipe }, { token: i2.NumeralPipe }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i3.ActivatedRoute }, { token: i4.DomSanitizer }, { token: DIALOG_SERVICE, optional: true }, { token: i1.UploadService, optional: true, self: true }, { token: i5.DateService, optional: true, self: true }, { token: i1.AudioRecordingService, optional: true, self: true }, { token: i1.VideoRecordingService, optional: true, self: true }, { token: i1.ColumnService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
154
- FieldBaseComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: FieldBaseComponent, selector: "bnrc-field-base", inputs: { context: "context", focusControl: "focusControl", layoutInfo: "layoutInfo", value: "value", width: "width", height: "height", formHeight: "formHeight", inlineEdit: "inlineEdit", id: "id", parametes: "parametes" }, outputs: { valueChange: "valueChange", formmatedValue: "formmatedValue" }, host: { properties: { "class.isMobile": "this.isMobile" } }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
154
+ FieldBaseComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: FieldBaseComponent, selector: "bnrc-field-base", inputs: { context: "context", focusControl: "focusControl", layoutInfo: "layoutInfo", value: "value", width: "width", height: "height", formHeight: "formHeight", inlineEdit: "inlineEdit", formContainer: "formContainer", id: "id", parametes: "parametes" }, outputs: { valueChange: "valueChange", formmatedValue: "formmatedValue" }, host: { properties: { "class.isMobile": "this.isMobile" } }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
155
155
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: FieldBaseComponent, decorators: [{
156
156
  type: Component,
157
157
  args: [{
@@ -198,6 +198,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
198
198
  type: Input
199
199
  }], inlineEdit: [{
200
200
  type: Input
201
+ }], formContainer: [{
202
+ type: Input
201
203
  }], id: [{
202
204
  type: Input
203
205
  }], parametes: [{
@@ -210,4 +212,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
210
212
  type: HostBinding,
211
213
  args: ['class.isMobile']
212
214
  }] } });
213
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLW5vdmluLXJheS1jb3JlL3NyYy9saWIvYWJzdHJhY3QtY2xhc3Nlcy9maWVsZC1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixTQUFTLEVBTVQsdUJBQXVCLEVBRXZCLElBQUksRUFDSixRQUFRLEVBQ1IsTUFBTSxFQUNOLFdBQVcsRUFDZCxNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFakQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR3RELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFdkMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDOzs7Ozs7O0FBNEJqRCxNQUFNLE9BQWdCLGtCQUFtQixTQUFRLGFBQWE7SUF5QzFELFlBQ2MsY0FBNkIsRUFDN0IsUUFBMEIsRUFDMUIsWUFBb0MsRUFDcEMsWUFBeUIsRUFDekIsR0FBZSxFQUNmLElBQXVCLEVBQ3ZCLFVBQXFCLEVBQ3JCLGVBQStCLEVBQy9CLGFBQTJCLEVBQ1MsY0FBbUIsRUFDbkMsY0FBNkIsRUFDN0IsWUFBeUIsRUFDekIsY0FBcUMsRUFDckMsYUFBb0MsRUFDNUMsY0FBNkI7UUFFbkQsS0FBSyxFQUFFLENBQUM7UUFoQkUsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFDN0IsYUFBUSxHQUFSLFFBQVEsQ0FBa0I7UUFDMUIsaUJB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Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csRUFBRTtzQkFBVixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUN3QixRQUFRO3NCQUF0QyxXQUFXO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBDb21wb25lbnQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgRWxlbWVudFJlZixcbiAgICBPbkluaXQsXG4gICAgT25EZXN0cm95LFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgUmVuZGVyZXIyLFxuICAgIFNlbGYsXG4gICAgT3B0aW9uYWwsXG4gICAgSW5qZWN0LFxuICAgIEhvc3RCaW5kaW5nXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJy4vYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0ZVNlcnZpY2UgfSBmcm9tICcuLi9kYXRlLXNlcnZpY2VzJztcbmltcG9ydCB7IERJQUxPR19TRVJWSUNFIH0gZnJvbSAnLi4vaW5qZGVjdGlvbi10b2tlbnMnO1xuaW1wb3J0IHsgQmJiVHJhbnNsYXRlUGlwZSwgTnVtZXJhbFBpcGUsIFBpY3R1cmVGaWVsZFNvdXJjZVBpcGUgfSBmcm9tICcuLi9waXBlcyc7XG5pbXBvcnQgeyBBdWRpb1JlY29yZGluZ1NlcnZpY2UsIENvbHVtblNlcnZpY2UsIFBvcnRhbFNlcnZpY2UsIFVwbG9hZFNlcnZpY2UsIFZpZGVvUmVjb3JkaW5nU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IEJhcnNhQXBpIH0gZnJvbSAnLi9iYXJzYS1hcGknO1xuaW1wb3J0IHsgR2VuZXJhbENvbnRyb2xJbmZvTW9kZWwsIEFiYnJldmF0aW9uRGV2aWNlU2l6ZSwgTWV0YW9iamVjdERhdGFNb2RlbCB9IGZyb20gJy4vbW9kZWxzJztcbmltcG9ydCB7IGdldERldmljZUlzTW9iaWxlIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcblxuZXhwb3J0IGludGVyZmFjZSBGaWVsZFNldHRpbmcge1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICBDb250cm9sRmllbGRDYXB0aW9uOiBzdHJpbmc7XG4gICAgQ29udHJvbEZpZWxkQ2FwdGlvblRyYW5zbGF0ZWQ6IHN0cmluZztcbiAgICBDb250cm9sRmllbGREZWZJZDogc3RyaW5nO1xuICAgIENvbnRyb2xOYW1lOiBzdHJpbmc7XG4gICAgUmVsYXRlZEZpZWxkTGlzdDogW107XG4gICAgSGlkZTogYm9vbGVhbjtcbiAgICB4dHlwZTogc3RyaW5nO1xuICAgIExhYmVsUG9zaXRpb246IHN0cmluZztcbiAgICBJc01hbmRhdG9yeTogYm9vbGVhbjtcbiAgICBJc1Zpc2libGU6IGJvb2xlYW47XG4gICAgU2hvd0xhYmVsOiBib29sZWFuO1xuICAgIElzUmVhZE9ubHk6IGJvb2xlYW47XG4gICAgSXNFbmFibGVkOiBib29sZWFuO1xuICAgIElzQm9sZDogYm9vbGVhbjtcbiAgICBJc0F1dG9tYXRpYzogYm9vbGVhbjtcbiAgICBKc29uRXh0cmFQcm9wOiBhbnkgfCBudWxsO1xuICAgIEZpZWxkSWNvbjogc3RyaW5nO1xuICAgIElzTHRyOiBib29sZWFuO1xufVxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdibnJjLWZpZWxkLWJhc2UnLFxuICAgIHRlbXBsYXRlOiAnJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBGaWVsZEJhc2VDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xuICAgIEBJbnB1dCgpIGNvbnRleHQ6IGFueTtcbiAgICBASW5wdXQoKSBmb2N1c0NvbnRyb2w6IGJvb2xlYW47XG4gICAgQElucHV0KCkgbGF5b3V0SW5mbzogYW55O1xuICAgIEBJbnB1dCgpIHZhbHVlOiBhbnk7XG4gICAgQElucHV0KCkgd2lkdGg6IG51bWJlcjtcbiAgICBASW5wdXQoKSBoZWlnaHQ6IG51bWJlcjtcbiAgICBASW5wdXQoKSBmb3JtSGVpZ2h0OiBudW1iZXI7XG4gICAgQElucHV0KCkgaW5saW5lRWRpdDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBpZDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHBhcmFtZXRlczogTWV0YW9iamVjdERhdGFNb2RlbDtcbiAgICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgZm9ybW1hdGVkVmFsdWUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlzTW9iaWxlJykgaXNNb2JpbGUgPSBnZXREZXZpY2VJc01vYmlsZSgpO1xuICAgIEpzb25FeHRyYVByb3A6IGFueTtcbiAgICBwYXJhbWV0ZXJzOiBhbnk7XG4gICAgU2V0dGluZzogR2VuZXJhbENvbnRyb2xJbmZvTW9kZWw7XG4gICAgcmVmcmVzaCQ6IE9ic2VydmFibGU8YW55PjtcbiAgICB2YWx1ZSQ6IE9ic2VydmFibGU8YW55PjtcbiAgICBkaXNhYmxlJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICByZWFkb25seSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgZGlzYWJsZU9yUmVhZG9ubHkkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIGRldmljZVNpemUkOiBPYnNlcnZhYmxlPEFiYnJldmF0aW9uRGV2aWNlU2l6ZT47XG4gICAgZWw6IGFueTtcbiAgICBtb2JpbGVDb25maWc6IGFueSA9IHtcbiAgICAgICAgdGl0bGU6ICfYp9mG2KrYrtin2KgnLFxuICAgICAgICBhcHByb3ZlQnV0dG9uVGV4dDogJ9iq2KfbjNuM2K8nLFxuICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiAn2KfZhti12LHYp9mBJyxcbiAgICAgICAgaGFzQ2xvc2VCdXR0b246IHRydWUsXG4gICAgICAgIGRpYWxvZ0NvbmZpZzoge1xuICAgICAgICAgICAgYXJpYUxhYmVsOiAn2KfZhtiq2K7Yp9ioJ1xuICAgICAgICB9XG4gICAgfTtcbiAgICBnZXQgY3VzdG9tRmllbGRJbmZvKCk6IE1ldGFvYmplY3REYXRhTW9kZWwge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250ZXh0LlNldHRpbmcuQ3VzdG9tRmllbGRJbmZvO1xuICAgIH1cbiAgICBwcml2YXRlIF9yZWZyZXNoU291cmNlID0gbmV3IFN1YmplY3Q8YW55PigpO1xuICAgIHByaXZhdGUgX3ZhbHVlQ2hhbmdlZFNvdXJjZSA9IG5ldyBTdWJqZWN0PGFueT4oKTtcbiAgICBwcml2YXRlIF9kaXNhYmxlQ2hhbmdlZFNvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIHByaXZhdGUgX3JlYWRvbmx5Q2hhbmdlZFNvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBfcG9ydGFsU2VydmljZTogUG9ydGFsU2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIF9iYmJQaXBlOiBCYmJUcmFuc2xhdGVQaXBlLFxuICAgICAgICBwcm90ZWN0ZWQgX3BpY0ZpZWxkU3JjOiBQaWN0dXJlRmllbGRTb3VyY2VQaXBlLFxuICAgICAgICBwcm90ZWN0ZWQgX251bWVyYWxQaXBlOiBOdW1lcmFsUGlwZSxcbiAgICAgICAgcHJvdGVjdGVkIF9lbDogRWxlbWVudFJlZixcbiAgICAgICAgcHJvdGVjdGVkIF9jZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcm90ZWN0ZWQgX3JlbmRlcmVyMjogUmVuZGVyZXIyLFxuICAgICAgICBwcm90ZWN0ZWQgX2FjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgcHJvdGVjdGVkIF9kb21TYW5pdGl6ZXI6IERvbVNhbml0aXplcixcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChESUFMT0dfU0VSVklDRSkgcHJvdGVjdGVkIF9kaWFsb2dTZXJ2aWNlOiBhbnksXG4gICAgICAgIEBTZWxmKCkgQE9wdGlvbmFsKCkgcHJvdGVjdGVkIF91cGxvYWRTZXJ2aWNlOiBVcGxvYWRTZXJ2aWNlLFxuICAgICAgICBAU2VsZigpIEBPcHRpb25hbCgpIHByb3RlY3RlZCBfZGF0ZVNlcnZpY2U6IERhdGVTZXJ2aWNlLFxuICAgICAgICBAU2VsZigpIEBPcHRpb25hbCgpIHByb3RlY3RlZCBfYXVkaW9SZWNvcmRlcjogQXVkaW9SZWNvcmRpbmdTZXJ2aWNlLFxuICAgICAgICBAU2VsZigpIEBPcHRpb25hbCgpIHByb3RlY3RlZCBfdmlkZW9SZWNvZGVyOiBWaWRlb1JlY29yZGluZ1NlcnZpY2UsXG4gICAgICAgIEBPcHRpb25hbCgpIHByb3RlY3RlZCBfY29sdW1uU2VydmljZTogQ29sdW1uU2VydmljZVxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnJlZnJlc2gkID0gdGhpcy5fcmVmcmVzaFNvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSk7XG4gICAgICAgIHRoaXMudmFsdWUkID0gdGhpcy5fdmFsdWVDaGFuZ2VkU291cmNlLmFzT2JzZXJ2YWJsZSgpLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKTtcbiAgICAgICAgdGhpcy5kZXZpY2VTaXplJCA9IHRoaXMuX3BvcnRhbFNlcnZpY2UuZGV2aWNlU2l6ZSQ7XG4gICAgICAgIHRoaXMuZGlzYWJsZSQgPSB0aGlzLl9kaXNhYmxlQ2hhbmdlZFNvdXJjZVxuICAgICAgICAgICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICAgICAgICB0aGlzLnJlYWRvbmx5JCA9IHRoaXMuX3JlYWRvbmx5Q2hhbmdlZFNvdXJjZVxuICAgICAgICAgICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICAgICAgICB0aGlzLmRpc2FibGVPclJlYWRvbmx5JCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMucmVhZG9ubHkkLCB0aGlzLmRpc2FibGUkXSkucGlwZShcbiAgICAgICAgICAgIG1hcCgoW2Rpc2FibGUsIHJlYWRvbmx5XSkgPT4gZGlzYWJsZSB8fCByZWFkb25seSksXG4gICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuZWwgPSBfZWw7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIGlmICh0aGlzLmNvbnRleHQpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGV4dC5kb20gPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgICAgIC8vIHRoaXMuY29udGV4dC5yZW5kZXJlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLlNldHRpbmcgPSB0aGlzLmNvbnRleHQgPyB0aGlzLmNvbnRleHQuU2V0dGluZyA6IG51bGw7XG4gICAgICAgICAgICBjb25zdCByZWFkb25seSA9IHRoaXMuY29udGV4dD8ucmVhZE9ubHk7XG4gICAgICAgICAgICB0aGlzLl9zZXRSZWFkb25seShyZWFkb25seSwgZmFsc2UpO1xuICAgICAgICAgICAgdGhpcy5fc2V0RGlzYWJsZSh0aGlzLmNvbnRleHQuZGlzYWJsZSwgZmFsc2UpO1xuICAgICAgICAgICAgdGhpcy5wYXJhbWV0ZXJzID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUodGhpcy5jb250ZXh0LCAnU2V0dGluZy5DdXN0b21VaS5QYXJhbWV0ZXJzJywgbnVsbCk7XG4gICAgICAgICAgICB0aGlzLkpzb25FeHRyYVByb3AgPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZSh0aGlzLmNvbnRleHQsICdTZXR0aW5nLkpzb25FeHRyYVByb3AnLCBudWxsKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9hZGRMaXN0ZW5lcigpO1xuICAgICAgICB0aGlzLl9zZXRNb2JpbGVDb25maWcoKTtcbiAgICB9XG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgICAgIHRoaXMuX3JlbW92ZUxpc3RlbmVyKCk7XG4gICAgfVxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG4gICAgICAgIHRoaXMuX2NvbHVtblNlcnZpY2U/LmNvbnRyb2xSZW5kZXJlZCgpO1xuICAgICAgICBpZiAodGhpcy5mb2N1c0NvbnRyb2wpIHtcbiAgICAgICAgICAgIGNvbnN0IGVsRG9tID0gdGhpcy5fZWwubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgICAgIGNvbnN0IGZvY3VzYWJsZU5vZGVMaXN0OiBOb2RlTGlzdE9mPEhUTUxFbGVtZW50PiA9IGVsRG9tLnF1ZXJ5U2VsZWN0b3JBbGwoXG4gICAgICAgICAgICAgICAgJyBidXR0b24sIFtocmVmXSwgaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEsIFt0YWJpbmRleF06bm90KFt0YWJpbmRleD3igJ0tMeKAs10pJ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGxldCBmb2N1c2VkID0gZmFsc2U7XG4gICAgICAgICAgICBmb2N1c2FibGVOb2RlTGlzdC5mb3JFYWNoKChlbDogSFRNTEVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB0YWdOYW1lOiBzdHJpbmcgPSBlbC50YWdOYW1lLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAhZm9jdXNlZCAmJlxuICAgICAgICAgICAgICAgICAgICBlbC5vZmZzZXRXaWR0aCA+IDAgJiZcbiAgICAgICAgICAgICAgICAgICAgZWwub2Zmc2V0SGVpZ2h0ID4gMCAmJlxuICAgICAgICAgICAgICAgICAgICBlbC5nZXRBdHRyaWJ1dGUoJ2Rpc2FibGVkJykgIT09ICd0cnVlJyAmJlxuICAgICAgICAgICAgICAgICAgICBlbC5nZXRBdHRyaWJ1dGUoJ25nLXJlZmxlY3QtZGlzYWJsZWQnKSAhPT0gJ3RydWUnICYmXG4gICAgICAgICAgICAgICAgICAgICF0YWdOYW1lLnN0YXJ0c1dpdGgoJ2ZkcCcpXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIGVsLmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgICAgIGZvY3VzZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZmlyZUNvbnRleHRFdmVudChldmVudDogc3RyaW5nLCB2YWx1ZTogYW55LCB2YWx1ZTE/OiBhbnksIHZhbHVlMj86IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbnRleHQuZmlyZUV2ZW50KGV2ZW50LCB2YWx1ZSwgdmFsdWUxLCB2YWx1ZTIpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX3NldE1vYmlsZUNvbmZpZygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbW9iaWxlQ29uZmlnID0gdGhpcy5tb2JpbGVDb25maWc7XG4gICAgICAgIG1vYmlsZUNvbmZpZy50aXRsZSA9IHRoaXMuU2V0dGluZz8uQ29udHJvbEZpZWxkQ2FwdGlvblRyYW5zbGF0ZWQ7XG4gICAgICAgIG1vYmlsZUNvbmZpZy5kaWFsb2dDb25maWcgJiYgKG1vYmlsZUNvbmZpZy5kaWFsb2dDb25maWcuYXJpYUxhYmVsID0gbW9iaWxlQ29uZmlnLnRpdGxlKTtcbiAgICAgICAgbW9iaWxlQ29uZmlnLmFwcHJvdmVCdXR0b25UZXh0ID0gdGhpcy5fYmJiUGlwZS50cmFuc2Zvcm0oJ09rJyk7XG4gICAgICAgIG1vYmlsZUNvbmZpZy5jYW5jZWxCdXR0b25UZXh0ID0gdGhpcy5fYmJiUGlwZS50cmFuc2Zvcm0oJ0NhbmNlbCcpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX2FkZExpc3RlbmVyKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jb250ZXh0ICYmIHRoaXMuY29udGV4dC5vbikge1xuICAgICAgICAgICAgdGhpcy5jb250ZXh0Lm9uKHtcbiAgICAgICAgICAgICAgICBDb250cm9sVmFsdWVDaGFuZ2VkOiB0aGlzLl9zZXRWYWx1ZS5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgICAgIENvbnRyb2xEaXNhYmxlQ2hhbmdlZDogdGhpcy5fc2V0RGlzYWJsZS5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgICAgIENvbnRyb2xSZWFkb25seUNoYW5nZWQ6IHRoaXMuX3NldFJlYWRvbmx5LmJpbmQodGhpcyksXG4gICAgICAgICAgICAgICAgQ29udHJvbFJlZnJlc2g6IHRoaXMuX3NldFJlZnJlc2guYmluZCh0aGlzKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcHJvdGVjdGVkIF9yZW1vdmVMaXN0ZW5lcigpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuY29udGV4dCAmJiB0aGlzLmNvbnRleHQudW4pIHtcbiAgICAgICAgICAgIHRoaXMuY29udGV4dC51bignQ29udHJvbFZhbHVlQ2hhbmdlZCcsIHRoaXMuX3NldFZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuY29udGV4dC51bignQ29udHJvbERpc2FibGVDaGFuZ2VkJywgdGhpcy5fc2V0RGlzYWJsZSk7XG4gICAgICAgICAgICB0aGlzLmNvbnRleHQudW4oJ0NvbnRyb2xSZWFkb25seUNoYW5nZWQnLCB0aGlzLl9zZXRSZWFkb25seSk7XG4gICAgICAgICAgICB0aGlzLmNvbnRleHQudW4oJ0NvbnRyb2xSZWZyZXNoJywgdGhpcy5fc2V0UmVmcmVzaCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcHJvdGVjdGVkIF9zZXRWYWx1ZSh2YWx1ZSk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuX3ZhbHVlQ2hhbmdlZFNvdXJjZS5uZXh0KHZhbHVlKTtcbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9zZXRSZWZyZXNoKHZhbHVlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JlZnJlc2hTb3VyY2UubmV4dCh2YWx1ZSk7XG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfc2V0RGlzYWJsZSh2YWx1ZSwgY2hhbmdlRGV0ZWN0ID0gdHJ1ZSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9kaXNhYmxlQ2hhbmdlZFNvdXJjZS5uZXh0KHZhbHVlKTtcbiAgICAgICAgaWYgKGNoYW5nZURldGVjdCkge1xuICAgICAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwcm90ZWN0ZWQgX3NldFJlYWRvbmx5KHZhbHVlLCBjaGFuZ2VEZXRlY3QgPSB0cnVlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JlYWRvbmx5Q2hhbmdlZFNvdXJjZS5uZXh0KHZhbHVlKTtcbiAgICAgICAgaWYgKGNoYW5nZURldGVjdCkge1xuICAgICAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
215
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLW5vdmluLXJheS1jb3JlL3NyYy9saWIvYWJzdHJhY3QtY2xhc3Nlcy9maWVsZC1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixTQUFTLEVBTVQsdUJBQXVCLEVBRXZCLElBQUksRUFDSixRQUFRLEVBQ1IsTUFBTSxFQUNOLFdBQVcsRUFDZCxNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFakQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR3RELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFdkMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDOzs7Ozs7O0FBNEJqRCxNQUFNLE9BQWdCLGtCQUFtQixTQUFRLGFBQWE7SUEwQzFELFlBQ2MsY0FBNkIsRUFDN0IsUUFBMEIsRUFDMUIsWUFBb0MsRUFDcEMsWUFBeUIsRUFDekIsR0FBZSxFQUNmLElBQXVCLEVBQ3ZCLFVBQXFCLEVBQ3JCLGVBQStCLEVBQy9CLGFBQTJCLEVBQ1MsY0FBbUIsRUFDbkMsY0FBNkIsRUFDN0IsWUFBeUIsRUFDekIsY0FBcUMsRUFDckMsYUFBb0MsRUFDNUMsY0FBNkI7UUFFbkQsS0FBSyxFQUFFLENBQUM7UUFoQkUsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFDN0IsYUFBUSxHQUFSLFFBQVEsQ0FBa0I7UUFDMUIsaUJBQVksR0FBWixZQUFZLENBQXdCO1FBQ3BDLGlCQUFZLEdBQVosWUFBWSxDQUFhO1FBQ3pCLFFBQUcsR0FBSCxHQUFHLENBQVk7UUFDZixTQUFJLEdBQUosSUFBSSxDQUFtQjtRQUN2QixlQUFVLEdBQVYsVUFBVSxDQUFXO1FBQ3JCLG9CQUFlLEdBQWYsZUFBZSxDQUFnQjtRQUMvQixrQkFBYSxHQUFiLGFBQWEsQ0FBYztRQUNTLG1CQUFjLEdBQWQsY0FBYyxDQUFLO1FBQ25DLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBQzdCLGlCQUFZLEdBQVosWUFBWSxDQUFhO1FBQ3pCLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQUNyQyxrQkFBYSxHQUFiLGFBQWEsQ0FBdUI7UUFDNUMsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUE3QzdDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUN0QyxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDcEIsYUFBUSxHQUFHLGlCQUFpQixFQUFFLENBQUM7UUFXOUQsaUJBQVksR0FBUTtZQUNoQixLQUFLLEVBQUUsUUFBUTtZQUNmLGlCQUFpQixFQUFFLE9BQU87WUFDMUIsZ0JBQWdCLEVBQUUsUUFBUTtZQUMxQixjQUFjLEVBQUUsSUFBSTtZQUNwQixZQUFZLEVBQUU7Z0JBQ1YsU0FBUyxFQUFFLFFBQVE7YUFDdEI7U0FDSixDQUFDO1FBSU0sbUJBQWMsR0FBRyxJQUFJLE9BQU8sRUFBTyxDQUFDO1FBQ3BDLHdCQUFtQixHQUFHLElBQUksT0FBTyxFQUFPLENBQUM7UUFDekMsMEJBQXFCLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDNUQsMkJBQXNCLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFvQmpFLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ3JGLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDeEYsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQztRQUNuRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxxQkFBcUI7YUFDckMsWUFBWSxFQUFFO2FBQ2QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO1FBQy9ELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLHNCQUFzQjthQUN2QyxZQUFZLEVBQUU7YUFDZCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxvQkFBb0IsRUFBRSxDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLGtCQUFrQixHQUFHLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUN6RSxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLFFBQVEsQ0FBQyxFQUNqRCxvQkFBb0IsRUFBRSxDQUN6QixDQUFDO1FBQ0YsSUFBSSxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUM7SUFDbEIsQ0FBQztJQXhDRCxJQUFJLGVBQWU7UUFDZixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQztJQUNoRCxDQUFDO0lBd0NELFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUM7WUFFekMsZ0NBQWdDO1lBQ2hDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUMxRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQztZQUN4QyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNuQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzlDLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDdEcsSUFBSSxDQUFDLGFBQWEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxJQUFJLENBQUMsQ0FBQztTQUN0RztRQUNELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBQ0QsV0FBVztRQUNQLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUNELGVBQWU7UUFDWCxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLGNBQWMsRUFBRSxlQUFlLEVBQUUsQ0FBQztRQUN2QyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDbkIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUE0QixDQUFDO1lBQ3BELE1BQU0saUJBQWlCLEdBQTRCLEtBQUssQ0FBQyxnQkFBZ0IsQ0FDckUsMkVBQTJFLENBQzlFLENBQUM7WUFDRixJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDcEIsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBZSxFQUFFLEVBQUU7Z0JBQzFDLE1BQU0sT0FBTyxHQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDdkQsSUFDSSxDQUFDLE9BQU87b0JBQ1IsRUFBRSxDQUFDLFdBQVcsR0FBRyxDQUFDO29CQUNsQixFQUFFLENBQUMsWUFBWSxHQUFHLENBQUM7b0JBQ25CLEVBQUUsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEtBQUssTUFBTTtvQkFDdEMsRUFBRSxDQUFDLFlBQVksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLE1BQU07b0JBQ2pELENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFDNUI7b0JBQ0UsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUNYLE9BQU8sR0FBRyxJQUFJLENBQUM7aUJBQ2xCO1lBQ0wsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNMLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUFhLEVBQUUsS0FBVSxFQUFFLE1BQVksRUFBRSxNQUFZO1FBQ2xFLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFDUyxnQkFBZ0I7UUFDdEIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUN2QyxZQUFZLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsNkJBQTZCLENBQUM7UUFDakUsWUFBWSxDQUFDLFlBQVksSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsU0FBUyxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4RixZQUFZLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0QsWUFBWSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFDUyxZQUFZO1FBQ2xCLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRTtZQUNqQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztnQkFDWixtQkFBbUIsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7Z0JBQzlDLHFCQUFxQixFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztnQkFDbEQsc0JBQXNCLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2dCQUNwRCxjQUFjLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2FBQzlDLENBQUMsQ0FBQztTQUNOO0lBQ0wsQ0FBQztJQUNTLGVBQWU7UUFDckIsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFO1lBQ2pDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLHFCQUFxQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN2RCxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDM0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsd0JBQXdCLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzdELElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUN2RDtJQUNMLENBQUM7SUFDUyxTQUFTLENBQUMsS0FBSztRQUNyQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUNTLFdBQVcsQ0FBQyxLQUFLO1FBQ3ZCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUNTLFdBQVcsQ0FBQyxLQUFLLEVBQUUsWUFBWSxHQUFHLElBQUk7UUFDNUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QyxJQUFJLFlBQVksRUFBRTtZQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDN0I7SUFDTCxDQUFDO0lBQ1MsWUFBWSxDQUFDLEtBQUssRUFBRSxZQUFZLEdBQUcsSUFBSTtRQUM3QyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hDLElBQUksWUFBWSxFQUFFO1lBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUM3QjtJQUNMLENBQUM7OytHQTFLaUIsa0JBQWtCLDhSQW9EWixjQUFjO21HQXBEcEIsa0JBQWtCLHNkQUgxQixFQUFFOzJGQUdNLGtCQUFrQjtrQkFMdkMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixRQUFRLEVBQUUsRUFBRTtvQkFDWixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDbEQ7OzBCQXFEUSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLGNBQWM7OzBCQUNqQyxJQUFJOzswQkFBSSxRQUFROzswQkFDaEIsSUFBSTs7MEJBQUksUUFBUTs7MEJBQ2hCLElBQUk7OzBCQUFJLFFBQVE7OzBCQUNoQixJQUFJOzswQkFBSSxRQUFROzswQkFDaEIsUUFBUTs0Q0F4REosT0FBTztzQkFBZixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ3dCLFFBQVE7c0JBQXRDLFdBQVc7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIENvbXBvbmVudCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBFbGVtZW50UmVmLFxuICAgIE9uSW5pdCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBSZW5kZXJlcjIsXG4gICAgU2VsZixcbiAgICBPcHRpb25hbCxcbiAgICBJbmplY3QsXG4gICAgSG9zdEJpbmRpbmdcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi9iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRlU2VydmljZSB9IGZyb20gJy4uL2RhdGUtc2VydmljZXMnO1xuaW1wb3J0IHsgRElBTE9HX1NFUlZJQ0UgfSBmcm9tICcuLi9pbmpkZWN0aW9uLXRva2Vucyc7XG5pbXBvcnQgeyBCYmJUcmFuc2xhdGVQaXBlLCBOdW1lcmFsUGlwZSwgUGljdHVyZUZpZWxkU291cmNlUGlwZSB9IGZyb20gJy4uL3BpcGVzJztcbmltcG9ydCB7IEF1ZGlvUmVjb3JkaW5nU2VydmljZSwgQ29sdW1uU2VydmljZSwgUG9ydGFsU2VydmljZSwgVXBsb2FkU2VydmljZSwgVmlkZW9SZWNvcmRpbmdTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgQmFyc2FBcGkgfSBmcm9tICcuL2JhcnNhLWFwaSc7XG5pbXBvcnQgeyBHZW5lcmFsQ29udHJvbEluZm9Nb2RlbCwgQWJicmV2YXRpb25EZXZpY2VTaXplLCBNZXRhb2JqZWN0RGF0YU1vZGVsIH0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHsgZ2V0RGV2aWNlSXNNb2JpbGUgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZpZWxkU2V0dGluZyB7XG4gICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgIENvbnRyb2xGaWVsZENhcHRpb246IHN0cmluZztcbiAgICBDb250cm9sRmllbGRDYXB0aW9uVHJhbnNsYXRlZDogc3RyaW5nO1xuICAgIENvbnRyb2xGaWVsZERlZklkOiBzdHJpbmc7XG4gICAgQ29udHJvbE5hbWU6IHN0cmluZztcbiAgICBSZWxhdGVkRmllbGRMaXN0OiBbXTtcbiAgICBIaWRlOiBib29sZWFuO1xuICAgIHh0eXBlOiBzdHJpbmc7XG4gICAgTGFiZWxQb3NpdGlvbjogc3RyaW5nO1xuICAgIElzTWFuZGF0b3J5OiBib29sZWFuO1xuICAgIElzVmlzaWJsZTogYm9vbGVhbjtcbiAgICBTaG93TGFiZWw6IGJvb2xlYW47XG4gICAgSXNSZWFkT25seTogYm9vbGVhbjtcbiAgICBJc0VuYWJsZWQ6IGJvb2xlYW47XG4gICAgSXNCb2xkOiBib29sZWFuO1xuICAgIElzQXV0b21hdGljOiBib29sZWFuO1xuICAgIEpzb25FeHRyYVByb3A6IGFueSB8IG51bGw7XG4gICAgRmllbGRJY29uOiBzdHJpbmc7XG4gICAgSXNMdHI6IGJvb2xlYW47XG59XG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JucmMtZmllbGQtYmFzZScsXG4gICAgdGVtcGxhdGU6ICcnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZpZWxkQmFzZUNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgQElucHV0KCkgY29udGV4dDogYW55O1xuICAgIEBJbnB1dCgpIGZvY3VzQ29udHJvbDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBsYXlvdXRJbmZvOiBhbnk7XG4gICAgQElucHV0KCkgdmFsdWU6IGFueTtcbiAgICBASW5wdXQoKSB3aWR0aDogbnVtYmVyO1xuICAgIEBJbnB1dCgpIGhlaWdodDogbnVtYmVyO1xuICAgIEBJbnB1dCgpIGZvcm1IZWlnaHQ6IG51bWJlcjtcbiAgICBASW5wdXQoKSBpbmxpbmVFZGl0OiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGZvcm1Db250YWluZXI6IEhUTUxFbGVtZW50O1xuICAgIEBJbnB1dCgpIGlkOiBzdHJpbmc7XG4gICAgQElucHV0KCkgcGFyYW1ldGVzOiBNZXRhb2JqZWN0RGF0YU1vZGVsO1xuICAgIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBmb3JtbWF0ZWRWYWx1ZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaXNNb2JpbGUnKSBpc01vYmlsZSA9IGdldERldmljZUlzTW9iaWxlKCk7XG4gICAgSnNvbkV4dHJhUHJvcDogYW55O1xuICAgIHBhcmFtZXRlcnM6IGFueTtcbiAgICBTZXR0aW5nOiBHZW5lcmFsQ29udHJvbEluZm9Nb2RlbDtcbiAgICByZWZyZXNoJDogT2JzZXJ2YWJsZTxhbnk+O1xuICAgIHZhbHVlJDogT2JzZXJ2YWJsZTxhbnk+O1xuICAgIGRpc2FibGUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIHJlYWRvbmx5JDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICBkaXNhYmxlT3JSZWFkb25seSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgZGV2aWNlU2l6ZSQ6IE9ic2VydmFibGU8QWJicmV2YXRpb25EZXZpY2VTaXplPjtcbiAgICBlbDogYW55O1xuICAgIG1vYmlsZUNvbmZpZzogYW55ID0ge1xuICAgICAgICB0aXRsZTogJ9in2YbYqtiu2KfYqCcsXG4gICAgICAgIGFwcHJvdmVCdXR0b25UZXh0OiAn2KrYp9uM24zYrycsXG4gICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICfYp9mG2LXYsdin2YEnLFxuICAgICAgICBoYXNDbG9zZUJ1dHRvbjogdHJ1ZSxcbiAgICAgICAgZGlhbG9nQ29uZmlnOiB7XG4gICAgICAgICAgICBhcmlhTGFiZWw6ICfYp9mG2KrYrtin2KgnXG4gICAgICAgIH1cbiAgICB9O1xuICAgIGdldCBjdXN0b21GaWVsZEluZm8oKTogTWV0YW9iamVjdERhdGFNb2RlbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRleHQuU2V0dGluZy5DdXN0b21GaWVsZEluZm87XG4gICAgfVxuICAgIHByaXZhdGUgX3JlZnJlc2hTb3VyY2UgPSBuZXcgU3ViamVjdDxhbnk+KCk7XG4gICAgcHJpdmF0ZSBfdmFsdWVDaGFuZ2VkU291cmNlID0gbmV3IFN1YmplY3Q8YW55PigpO1xuICAgIHByaXZhdGUgX2Rpc2FibGVDaGFuZ2VkU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gICAgcHJpdmF0ZSBfcmVhZG9ubHlDaGFuZ2VkU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJvdGVjdGVkIF9wb3J0YWxTZXJ2aWNlOiBQb3J0YWxTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgX2JiYlBpcGU6IEJiYlRyYW5zbGF0ZVBpcGUsXG4gICAgICAgIHByb3RlY3RlZCBfcGljRmllbGRTcmM6IFBpY3R1cmVGaWVsZFNvdXJjZVBpcGUsXG4gICAgICAgIHByb3RlY3RlZCBfbnVtZXJhbFBpcGU6IE51bWVyYWxQaXBlLFxuICAgICAgICBwcm90ZWN0ZWQgX2VsOiBFbGVtZW50UmVmLFxuICAgICAgICBwcm90ZWN0ZWQgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByb3RlY3RlZCBfcmVuZGVyZXIyOiBSZW5kZXJlcjIsXG4gICAgICAgIHByb3RlY3RlZCBfYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICBwcm90ZWN0ZWQgX2RvbVNhbml0aXplcjogRG9tU2FuaXRpemVyLFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KERJQUxPR19TRVJWSUNFKSBwcm90ZWN0ZWQgX2RpYWxvZ1NlcnZpY2U6IGFueSxcbiAgICAgICAgQFNlbGYoKSBAT3B0aW9uYWwoKSBwcm90ZWN0ZWQgX3VwbG9hZFNlcnZpY2U6IFVwbG9hZFNlcnZpY2UsXG4gICAgICAgIEBTZWxmKCkgQE9wdGlvbmFsKCkgcHJvdGVjdGVkIF9kYXRlU2VydmljZTogRGF0ZVNlcnZpY2UsXG4gICAgICAgIEBTZWxmKCkgQE9wdGlvbmFsKCkgcHJvdGVjdGVkIF9hdWRpb1JlY29yZGVyOiBBdWRpb1JlY29yZGluZ1NlcnZpY2UsXG4gICAgICAgIEBTZWxmKCkgQE9wdGlvbmFsKCkgcHJvdGVjdGVkIF92aWRlb1JlY29kZXI6IFZpZGVvUmVjb3JkaW5nU2VydmljZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJvdGVjdGVkIF9jb2x1bW5TZXJ2aWNlOiBDb2x1bW5TZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMucmVmcmVzaCQgPSB0aGlzLl9yZWZyZXNoU291cmNlLmFzT2JzZXJ2YWJsZSgpLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKTtcbiAgICAgICAgdGhpcy52YWx1ZSQgPSB0aGlzLl92YWx1ZUNoYW5nZWRTb3VyY2UuYXNPYnNlcnZhYmxlKCkucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpO1xuICAgICAgICB0aGlzLmRldmljZVNpemUkID0gdGhpcy5fcG9ydGFsU2VydmljZS5kZXZpY2VTaXplJDtcbiAgICAgICAgdGhpcy5kaXNhYmxlJCA9IHRoaXMuX2Rpc2FibGVDaGFuZ2VkU291cmNlXG4gICAgICAgICAgICAuYXNPYnNlcnZhYmxlKClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG4gICAgICAgIHRoaXMucmVhZG9ubHkkID0gdGhpcy5fcmVhZG9ubHlDaGFuZ2VkU291cmNlXG4gICAgICAgICAgICAuYXNPYnNlcnZhYmxlKClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG4gICAgICAgIHRoaXMuZGlzYWJsZU9yUmVhZG9ubHkkID0gY29tYmluZUxhdGVzdChbdGhpcy5yZWFkb25seSQsIHRoaXMuZGlzYWJsZSRdKS5waXBlKFxuICAgICAgICAgICAgbWFwKChbZGlzYWJsZSwgcmVhZG9ubHldKSA9PiBkaXNhYmxlIHx8IHJlYWRvbmx5KSxcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5lbCA9IF9lbDtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgaWYgKHRoaXMuY29udGV4dCkge1xuICAgICAgICAgICAgdGhpcy5jb250ZXh0LmRvbSA9IHRoaXMuZWwubmF0aXZlRWxlbWVudDtcblxuICAgICAgICAgICAgLy8gdGhpcy5jb250ZXh0LnJlbmRlcmVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuU2V0dGluZyA9IHRoaXMuY29udGV4dCA/IHRoaXMuY29udGV4dC5TZXR0aW5nIDogbnVsbDtcbiAgICAgICAgICAgIGNvbnN0IHJlYWRvbmx5ID0gdGhpcy5jb250ZXh0Py5yZWFkT25seTtcbiAgICAgICAgICAgIHRoaXMuX3NldFJlYWRvbmx5KHJlYWRvbmx5LCBmYWxzZSk7XG4gICAgICAgICAgICB0aGlzLl9zZXREaXNhYmxlKHRoaXMuY29udGV4dC5kaXNhYmxlLCBmYWxzZSk7XG4gICAgICAgICAgICB0aGlzLnBhcmFtZXRlcnMgPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZSh0aGlzLmNvbnRleHQsICdTZXR0aW5nLkN1c3RvbVVpLlBhcmFtZXRlcnMnLCBudWxsKTtcbiAgICAgICAgICAgIHRoaXMuSnNvbkV4dHJhUHJvcCA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKHRoaXMuY29udGV4dCwgJ1NldHRpbmcuSnNvbkV4dHJhUHJvcCcsIG51bGwpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2FkZExpc3RlbmVyKCk7XG4gICAgICAgIHRoaXMuX3NldE1vYmlsZUNvbmZpZygpO1xuICAgIH1cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5fcmVtb3ZlTGlzdGVuZXIoKTtcbiAgICB9XG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcbiAgICAgICAgdGhpcy5fY29sdW1uU2VydmljZT8uY29udHJvbFJlbmRlcmVkKCk7XG4gICAgICAgIGlmICh0aGlzLmZvY3VzQ29udHJvbCkge1xuICAgICAgICAgICAgY29uc3QgZWxEb20gPSB0aGlzLl9lbC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgICAgY29uc3QgZm9jdXNhYmxlTm9kZUxpc3Q6IE5vZGVMaXN0T2Y8SFRNTEVsZW1lbnQ+ID0gZWxEb20ucXVlcnlTZWxlY3RvckFsbChcbiAgICAgICAgICAgICAgICAnIGJ1dHRvbiwgW2hyZWZdLCBpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSwgW3RhYmluZGV4XTpub3QoW3RhYmluZGV4PeKAnS0x4oCzXSknXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgbGV0IGZvY3VzZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIGZvY3VzYWJsZU5vZGVMaXN0LmZvckVhY2goKGVsOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRhZ05hbWU6IHN0cmluZyA9IGVsLnRhZ05hbWUudG9Mb2NhbGVMb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICFmb2N1c2VkICYmXG4gICAgICAgICAgICAgICAgICAgIGVsLm9mZnNldFdpZHRoID4gMCAmJlxuICAgICAgICAgICAgICAgICAgICBlbC5vZmZzZXRIZWlnaHQgPiAwICYmXG4gICAgICAgICAgICAgICAgICAgIGVsLmdldEF0dHJpYnV0ZSgnZGlzYWJsZWQnKSAhPT0gJ3RydWUnICYmXG4gICAgICAgICAgICAgICAgICAgIGVsLmdldEF0dHJpYnV0ZSgnbmctcmVmbGVjdC1kaXNhYmxlZCcpICE9PSAndHJ1ZScgJiZcbiAgICAgICAgICAgICAgICAgICAgIXRhZ05hbWUuc3RhcnRzV2l0aCgnZmRwJylcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgZWwuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICAgICAgZm9jdXNlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmaXJlQ29udGV4dEV2ZW50KGV2ZW50OiBzdHJpbmcsIHZhbHVlOiBhbnksIHZhbHVlMT86IGFueSwgdmFsdWUyPzogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29udGV4dC5maXJlRXZlbnQoZXZlbnQsIHZhbHVlLCB2YWx1ZTEsIHZhbHVlMik7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfc2V0TW9iaWxlQ29uZmlnKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBtb2JpbGVDb25maWcgPSB0aGlzLm1vYmlsZUNvbmZpZztcbiAgICAgICAgbW9iaWxlQ29uZmlnLnRpdGxlID0gdGhpcy5TZXR0aW5nPy5Db250cm9sRmllbGRDYXB0aW9uVHJhbnNsYXRlZDtcbiAgICAgICAgbW9iaWxlQ29uZmlnLmRpYWxvZ0NvbmZpZyAmJiAobW9iaWxlQ29uZmlnLmRpYWxvZ0NvbmZpZy5hcmlhTGFiZWwgPSBtb2JpbGVDb25maWcudGl0bGUpO1xuICAgICAgICBtb2JpbGVDb25maWcuYXBwcm92ZUJ1dHRvblRleHQgPSB0aGlzLl9iYmJQaXBlLnRyYW5zZm9ybSgnT2snKTtcbiAgICAgICAgbW9iaWxlQ29uZmlnLmNhbmNlbEJ1dHRvblRleHQgPSB0aGlzLl9iYmJQaXBlLnRyYW5zZm9ybSgnQ2FuY2VsJyk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfYWRkTGlzdGVuZXIoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRleHQgJiYgdGhpcy5jb250ZXh0Lm9uKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRleHQub24oe1xuICAgICAgICAgICAgICAgIENvbnRyb2xWYWx1ZUNoYW5nZWQ6IHRoaXMuX3NldFZhbHVlLmJpbmQodGhpcyksXG4gICAgICAgICAgICAgICAgQ29udHJvbERpc2FibGVDaGFuZ2VkOiB0aGlzLl9zZXREaXNhYmxlLmJpbmQodGhpcyksXG4gICAgICAgICAgICAgICAgQ29udHJvbFJlYWRvbmx5Q2hhbmdlZDogdGhpcy5fc2V0UmVhZG9ubHkuYmluZCh0aGlzKSxcbiAgICAgICAgICAgICAgICBDb250cm9sUmVmcmVzaDogdGhpcy5fc2V0UmVmcmVzaC5iaW5kKHRoaXMpXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwcm90ZWN0ZWQgX3JlbW92ZUxpc3RlbmVyKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jb250ZXh0ICYmIHRoaXMuY29udGV4dC51bikge1xuICAgICAgICAgICAgdGhpcy5jb250ZXh0LnVuKCdDb250cm9sVmFsdWVDaGFuZ2VkJywgdGhpcy5fc2V0VmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5jb250ZXh0LnVuKCdDb250cm9sRGlzYWJsZUNoYW5nZWQnLCB0aGlzLl9zZXREaXNhYmxlKTtcbiAgICAgICAgICAgIHRoaXMuY29udGV4dC51bignQ29udHJvbFJlYWRvbmx5Q2hhbmdlZCcsIHRoaXMuX3NldFJlYWRvbmx5KTtcbiAgICAgICAgICAgIHRoaXMuY29udGV4dC51bignQ29udHJvbFJlZnJlc2gnLCB0aGlzLl9zZXRSZWZyZXNoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwcm90ZWN0ZWQgX3NldFZhbHVlKHZhbHVlKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5fdmFsdWVDaGFuZ2VkU291cmNlLm5leHQodmFsdWUpO1xuICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX3NldFJlZnJlc2godmFsdWUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmVmcmVzaFNvdXJjZS5uZXh0KHZhbHVlKTtcbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9zZXREaXNhYmxlKHZhbHVlLCBjaGFuZ2VEZXRlY3QgPSB0cnVlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2Rpc2FibGVDaGFuZ2VkU291cmNlLm5leHQodmFsdWUpO1xuICAgICAgICBpZiAoY2hhbmdlRGV0ZWN0KSB7XG4gICAgICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHByb3RlY3RlZCBfc2V0UmVhZG9ubHkodmFsdWUsIGNoYW5nZURldGVjdCA9IHRydWUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmVhZG9ubHlDaGFuZ2VkU291cmNlLm5leHQodmFsdWUpO1xuICAgICAgICBpZiAoY2hhbmdlRGV0ZWN0KSB7XG4gICAgICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -19,6 +19,7 @@ export class LayoutPanelBaseComponent extends LayoutItemBaseComponent {
19
19
  }
20
20
  ngOnInit() {
21
21
  super.ngOnInit();
22
+ this.formPanelService.formContainerDom = this.parentDom;
22
23
  this.maxLabelWidth$ = this.layoutService.maxWidth$;
23
24
  this._calcWidth(this.config);
24
25
  }
@@ -59,7 +60,7 @@ export class LayoutPanelBaseComponent extends LayoutItemBaseComponent {
59
60
  }
60
61
  }
61
62
  LayoutPanelBaseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: LayoutPanelBaseComponent, deps: [{ token: i0.ElementRef }, { token: i1.FormPanelService }, { token: i2.LayoutService, self: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
62
- LayoutPanelBaseComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: LayoutPanelBaseComponent, selector: "bnrc-layout-panel-base", inputs: { isPanel: "isPanel", config: "config" }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
63
+ LayoutPanelBaseComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: LayoutPanelBaseComponent, selector: "bnrc-layout-panel-base", inputs: { parentDom: "parentDom", isPanel: "isPanel", config: "config" }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
63
64
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: LayoutPanelBaseComponent, decorators: [{
64
65
  type: Component,
65
66
  args: [{
@@ -69,9 +70,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
69
70
  }]
70
71
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.FormPanelService }, { type: i2.LayoutService, decorators: [{
71
72
  type: Self
72
- }] }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { isPanel: [{
73
+ }] }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { parentDom: [{
74
+ type: Input
75
+ }], isPanel: [{
73
76
  type: Input
74
77
  }], config: [{
75
78
  type: Input
76
79
  }] } });
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LXBhbmVsLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1ub3Zpbi1yYXktY29yZS9zcmMvbGliL2Fic3RyYWN0LWNsYXNzZXMvbGF5b3V0LXBhbmVsLWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFzQix1QkFBdUIsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFdkgsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHeEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7QUFRN0QsTUFBTSxPQUFPLHdCQUF5QixTQUFRLHVCQUF1QjtJQU1qRSxZQUNXLEVBQWMsRUFDWCxnQkFBa0MsRUFDMUIsYUFBNEIsRUFDcEMsSUFBdUI7UUFFakMsS0FBSyxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxDQUFDO1FBTHZCLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDWCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQzFCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQ3BDLFNBQUksR0FBSixJQUFJLENBQW1CO1FBR2pDLElBQUksQ0FBQyxFQUFFLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pCLGFBQWEsQ0FBQyxFQUFFLEdBQUcsT0FBTyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxhQUFhLEVBQUUsRUFBRTtZQUM3RCxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUN2QyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUM7UUFDbkQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUNELFVBQVUsQ0FBQyxNQUFNO1FBQ2IsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUMxQixRQUFRLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ2hCLEtBQUssZUFBZTtvQkFDaEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDdEIsTUFBTTtnQkFDVixLQUFLLGtCQUFrQjtvQkFDbkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDMUIsTUFBTTthQUNiO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0QsY0FBYyxDQUFDLElBQVM7UUFDcEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUM7UUFDL0MsSUFBSSxVQUFVLEtBQUssV0FBVyxJQUFJLFVBQVUsS0FBSyxhQUFhLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2pGLE9BQU87U0FDVjtRQUNELElBQUksWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDaEMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUU7WUFDcEMsSUFBSSxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDL0IsWUFBWSxHQUFHLFlBQVksR0FBRyxJQUFJLENBQUM7YUFDdEM7U0FDSjthQUFNO1lBQ0gsWUFBWSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ2hEO1FBQ0QsWUFBWSxJQUFJLEdBQUcsQ0FBQztRQUNwQixNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDN0MsSUFBSSxnQkFBZ0IsR0FBRyxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3ZDLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFO1lBQ2xDLGdCQUFnQixJQUFJLEVBQUUsQ0FBQztTQUMxQjtRQUNELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNqRCxDQUFDOztxSEF6RFEsd0JBQXdCO3lHQUF4Qix3QkFBd0IsdUlBSHZCLEVBQUU7MkZBR0gsd0JBQXdCO2tCQUxwQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFFBQVEsRUFBRSxFQUFFO29CQUNaLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNsRDs7MEJBVVEsSUFBSTs0RUFSQSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5wdXQsIENvbXBvbmVudCwgU2VsZiwgRWxlbWVudFJlZiwgT25Jbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGdldFVuaXF1ZUlkLCBtZWFzdXJlVGV4dCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBGb3JtUGFuZWxTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZm9ybS1wYW5lbC5zZXJ2aWNlJztcbmltcG9ydCB7IExheW91dFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9sYXlvdXQuc2VydmljZSc7XG5pbXBvcnQgeyBMYXlvdXRJdGVtQmFzZUNvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0LWl0ZW0tYmFzZSc7XG5pbXBvcnQgeyBMYXlvdXRTZXR0aW5nIH0gZnJvbSAnLi9tb2RlbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JucmMtbGF5b3V0LXBhbmVsLWJhc2UnLFxuICAgIHRlbXBsYXRlOiAnJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBMYXlvdXRQYW5lbEJhc2VDb21wb25lbnQgZXh0ZW5kcyBMYXlvdXRJdGVtQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KCkgaXNQYW5lbDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBjb25maWc6IExheW91dFNldHRpbmc7XG4gICAgbWF4TGFiZWxXaWR0aCQ6IE9ic2VydmFibGU8bnVtYmVyPjtcbiAgICBpc1NlYXJjaFBhbmVsOiBib29sZWFuO1xuICAgIGlkOiBzdHJpbmc7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBlbDogRWxlbWVudFJlZixcbiAgICAgICAgcHJvdGVjdGVkIGZvcm1QYW5lbFNlcnZpY2U6IEZvcm1QYW5lbFNlcnZpY2UsXG4gICAgICAgIEBTZWxmKCkgcHJvdGVjdGVkIGxheW91dFNlcnZpY2U6IExheW91dFNlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICAgICkge1xuICAgICAgICBzdXBlcihmb3JtUGFuZWxTZXJ2aWNlLCBfY2RyKTtcbiAgICAgICAgdGhpcy5pZCA9IGdldFVuaXF1ZUlkKDQpO1xuICAgICAgICBsYXlvdXRTZXJ2aWNlLmlkID0gJ3BhbmVsJyArIHRoaXMuaWQ7XG4gICAgICAgIHRoaXMuZm9ybVBhbmVsU2VydmljZS5pc1NlYXJjaFBhbmVsJC5zdWJzY3JpYmUoKGlzU2VhcmNoUGFuZWwpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaXNTZWFyY2hQYW5lbCA9IGlzU2VhcmNoUGFuZWw7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5tYXhMYWJlbFdpZHRoJCA9IHRoaXMubGF5b3V0U2VydmljZS5tYXhXaWR0aCQ7XG4gICAgICAgIHRoaXMuX2NhbGNXaWR0aCh0aGlzLmNvbmZpZyk7XG4gICAgfVxuICAgIF9jYWxjV2lkdGgoY29uZmlnKTogdm9pZCB7XG4gICAgICAgIGNvbmZpZy5pdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBzd2l0Y2ggKGl0ZW0ueHR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdMeS5MYXlvdXRKb2luJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2FsY1dpZHRoKGl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdMeS5MYXlvdXRDb250cm9sJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2V0TGFiZWxXaWR0aChpdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBfc2V0TGFiZWxXaWR0aChpdGVtOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZmllbGRYdHlwZSA9IGl0ZW0uRmllbGRVaT8ub3JpZ2luYWxYdHlwZTtcbiAgICAgICAgaWYgKGZpZWxkWHR5cGUgPT09ICdVaS5CdXR0b24nIHx8IGZpZWxkWHR5cGUgPT09ICdVaS5DaGVja0JveCcgfHwgIWl0ZW0uVGV4dFZpc2libGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgbGFiZWxDYXB0aW9uID0gaXRlbS5DYXB0aW9uO1xuICAgICAgICBpZiAoaXRlbS5GaWVsZFVpPy5TZXR0aW5nPy5Jc01hbmRhdG9yeSkge1xuICAgICAgICAgICAgaWYgKGxhYmVsQ2FwdGlvbi5pbmRleE9mKCcqJykgPCAwKSB7XG4gICAgICAgICAgICAgICAgbGFiZWxDYXB0aW9uID0gbGFiZWxDYXB0aW9uICsgJyAqJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxhYmVsQ2FwdGlvbiA9IGxhYmVsQ2FwdGlvbi5yZXBsYWNlKCcqJywgJycpO1xuICAgICAgICB9XG4gICAgICAgIGxhYmVsQ2FwdGlvbiArPSAnOic7XG4gICAgICAgIGNvbnN0IGxhYmVsV2lkdGggPSBtZWFzdXJlVGV4dChsYWJlbENhcHRpb24pO1xuICAgICAgICBsZXQgbGFiZWxXaXRoUGFkZGluZyA9IGxhYmVsV2lkdGggKyAxMDtcbiAgICAgICAgaWYgKGl0ZW0uRmllbGRVaT8uU2V0dGluZz8uRmllbGRJY29uKSB7XG4gICAgICAgICAgICBsYWJlbFdpdGhQYWRkaW5nICs9IDIxO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNvbnRyb2xXaWR0aCA9IE1hdGguY2VpbChsYWJlbFdpdGhQYWRkaW5nKTtcbiAgICAgICAgdGhpcy5sYXlvdXRTZXJ2aWNlLnNldE1heFdpZHRoKGNvbnRyb2xXaWR0aCk7XG4gICAgfVxufVxuIl19
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LXBhbmVsLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1ub3Zpbi1yYXktY29yZS9zcmMvbGliL2Fic3RyYWN0LWNsYXNzZXMvbGF5b3V0LXBhbmVsLWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFzQix1QkFBdUIsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFdkgsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHeEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7QUFRN0QsTUFBTSxPQUFPLHdCQUF5QixTQUFRLHVCQUF1QjtJQU9qRSxZQUNXLEVBQWMsRUFDWCxnQkFBa0MsRUFDMUIsYUFBNEIsRUFDcEMsSUFBdUI7UUFFakMsS0FBSyxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxDQUFDO1FBTHZCLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDWCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQzFCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQ3BDLFNBQUksR0FBSixJQUFJLENBQW1CO1FBR2pDLElBQUksQ0FBQyxFQUFFLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pCLGFBQWEsQ0FBQyxFQUFFLEdBQUcsT0FBTyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxhQUFhLEVBQUUsRUFBRTtZQUM3RCxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUN2QyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ3hELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUM7UUFDbkQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUNELFVBQVUsQ0FBQyxNQUFNO1FBQ2IsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUMxQixRQUFRLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ2hCLEtBQUssZUFBZTtvQkFDaEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDdEIsTUFBTTtnQkFDVixLQUFLLGtCQUFrQjtvQkFDbkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDMUIsTUFBTTthQUNiO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0QsY0FBYyxDQUFDLElBQVM7UUFDcEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUM7UUFDL0MsSUFBSSxVQUFVLEtBQUssV0FBVyxJQUFJLFVBQVUsS0FBSyxhQUFhLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2pGLE9BQU87U0FDVjtRQUNELElBQUksWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDaEMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUU7WUFDcEMsSUFBSSxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDL0IsWUFBWSxHQUFHLFlBQVksR0FBRyxJQUFJLENBQUM7YUFDdEM7U0FDSjthQUFNO1lBQ0gsWUFBWSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ2hEO1FBQ0QsWUFBWSxJQUFJLEdBQUcsQ0FBQztRQUNwQixNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDN0MsSUFBSSxnQkFBZ0IsR0FBRyxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3ZDLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFO1lBQ2xDLGdCQUFnQixJQUFJLEVBQUUsQ0FBQztTQUMxQjtRQUNELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNqRCxDQUFDOztxSEEzRFEsd0JBQXdCO3lHQUF4Qix3QkFBd0IsK0pBSHZCLEVBQUU7MkZBR0gsd0JBQXdCO2tCQUxwQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFFBQVEsRUFBRSxFQUFFO29CQUNaLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNsRDs7MEJBV1EsSUFBSTs0RUFUQSxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnB1dCwgQ29tcG9uZW50LCBTZWxmLCBFbGVtZW50UmVmLCBPbkluaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZ2V0VW5pcXVlSWQsIG1lYXN1cmVUZXh0IH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IEZvcm1QYW5lbFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9mb3JtLXBhbmVsLnNlcnZpY2UnO1xuaW1wb3J0IHsgTGF5b3V0U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2xheW91dC5zZXJ2aWNlJztcbmltcG9ydCB7IExheW91dEl0ZW1CYXNlQ29tcG9uZW50IH0gZnJvbSAnLi9sYXlvdXQtaXRlbS1iYXNlJztcbmltcG9ydCB7IExheW91dFNldHRpbmcgfSBmcm9tICcuL21vZGVscyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYm5yYy1sYXlvdXQtcGFuZWwtYmFzZScsXG4gICAgdGVtcGxhdGU6ICcnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIExheW91dFBhbmVsQmFzZUNvbXBvbmVudCBleHRlbmRzIExheW91dEl0ZW1CYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoKSBwYXJlbnREb206IEhUTUxFbGVtZW50O1xuICAgIEBJbnB1dCgpIGlzUGFuZWw6IGJvb2xlYW47XG4gICAgQElucHV0KCkgY29uZmlnOiBMYXlvdXRTZXR0aW5nO1xuICAgIG1heExhYmVsV2lkdGgkOiBPYnNlcnZhYmxlPG51bWJlcj47XG4gICAgaXNTZWFyY2hQYW5lbDogYm9vbGVhbjtcbiAgICBpZDogc3RyaW5nO1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgZWw6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByb3RlY3RlZCBmb3JtUGFuZWxTZXJ2aWNlOiBGb3JtUGFuZWxTZXJ2aWNlLFxuICAgICAgICBAU2VsZigpIHByb3RlY3RlZCBsYXlvdXRTZXJ2aWNlOiBMYXlvdXRTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHtcbiAgICAgICAgc3VwZXIoZm9ybVBhbmVsU2VydmljZSwgX2Nkcik7XG4gICAgICAgIHRoaXMuaWQgPSBnZXRVbmlxdWVJZCg0KTtcbiAgICAgICAgbGF5b3V0U2VydmljZS5pZCA9ICdwYW5lbCcgKyB0aGlzLmlkO1xuICAgICAgICB0aGlzLmZvcm1QYW5lbFNlcnZpY2UuaXNTZWFyY2hQYW5lbCQuc3Vic2NyaWJlKChpc1NlYXJjaFBhbmVsKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmlzU2VhcmNoUGFuZWwgPSBpc1NlYXJjaFBhbmVsO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMuZm9ybVBhbmVsU2VydmljZS5mb3JtQ29udGFpbmVyRG9tID0gdGhpcy5wYXJlbnREb207XG4gICAgICAgIHRoaXMubWF4TGFiZWxXaWR0aCQgPSB0aGlzLmxheW91dFNlcnZpY2UubWF4V2lkdGgkO1xuICAgICAgICB0aGlzLl9jYWxjV2lkdGgodGhpcy5jb25maWcpO1xuICAgIH1cbiAgICBfY2FsY1dpZHRoKGNvbmZpZyk6IHZvaWQge1xuICAgICAgICBjb25maWcuaXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgc3dpdGNoIChpdGVtLnh0eXBlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnTHkuTGF5b3V0Sm9pbic6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NhbGNXaWR0aChpdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnTHkuTGF5b3V0Q29udHJvbCc6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NldExhYmVsV2lkdGgoaXRlbSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgX3NldExhYmVsV2lkdGgoaXRlbTogYW55KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGZpZWxkWHR5cGUgPSBpdGVtLkZpZWxkVWk/Lm9yaWdpbmFsWHR5cGU7XG4gICAgICAgIGlmIChmaWVsZFh0eXBlID09PSAnVWkuQnV0dG9uJyB8fCBmaWVsZFh0eXBlID09PSAnVWkuQ2hlY2tCb3gnIHx8ICFpdGVtLlRleHRWaXNpYmxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGxhYmVsQ2FwdGlvbiA9IGl0ZW0uQ2FwdGlvbjtcbiAgICAgICAgaWYgKGl0ZW0uRmllbGRVaT8uU2V0dGluZz8uSXNNYW5kYXRvcnkpIHtcbiAgICAgICAgICAgIGlmIChsYWJlbENhcHRpb24uaW5kZXhPZignKicpIDwgMCkge1xuICAgICAgICAgICAgICAgIGxhYmVsQ2FwdGlvbiA9IGxhYmVsQ2FwdGlvbiArICcgKic7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsYWJlbENhcHRpb24gPSBsYWJlbENhcHRpb24ucmVwbGFjZSgnKicsICcnKTtcbiAgICAgICAgfVxuICAgICAgICBsYWJlbENhcHRpb24gKz0gJzonO1xuICAgICAgICBjb25zdCBsYWJlbFdpZHRoID0gbWVhc3VyZVRleHQobGFiZWxDYXB0aW9uKTtcbiAgICAgICAgbGV0IGxhYmVsV2l0aFBhZGRpbmcgPSBsYWJlbFdpZHRoICsgMTA7XG4gICAgICAgIGlmIChpdGVtLkZpZWxkVWk/LlNldHRpbmc/LkZpZWxkSWNvbikge1xuICAgICAgICAgICAgbGFiZWxXaXRoUGFkZGluZyArPSAyMTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb250cm9sV2lkdGggPSBNYXRoLmNlaWwobGFiZWxXaXRoUGFkZGluZyk7XG4gICAgICAgIHRoaXMubGF5b3V0U2VydmljZS5zZXRNYXhXaWR0aChjb250cm9sV2lkdGgpO1xuICAgIH1cbn1cbiJdfQ==
@@ -6,6 +6,8 @@ export class FillEmptySpaceDirective extends BaseDirective {
6
6
  super(_el);
7
7
  this._el = _el;
8
8
  this._renderer2 = _renderer2;
9
+ this.height = '100vh';
10
+ this.topBound = '';
9
11
  }
10
12
  ngAfterViewInit() {
11
13
  super.ngAfterViewInit();
@@ -19,27 +21,38 @@ export class FillEmptySpaceDirective extends BaseDirective {
19
21
  _setHeightOfFormContent() {
20
22
  const dom = this._el.nativeElement;
21
23
  const bound = dom.getBoundingClientRect();
24
+ this.topBound = `${bound.top}px`;
25
+ if (this.containerDom) {
26
+ this.height = `${this.containerDom.getBoundingClientRect().height}px`;
27
+ }
22
28
  if (this.decrement) {
23
29
  this.decrement = ` - ${this.decrement}`;
24
30
  }
25
31
  else {
26
32
  this.decrement = '';
27
33
  }
34
+ if (this.dontUseTopBound) {
35
+ this.topBound = '0px';
36
+ }
28
37
  if (bound) {
29
- this._renderer2.setStyle(dom, 'height', `calc(100vh - ${Math.round(bound.top)}px${this.decrement})`);
38
+ this._renderer2.setStyle(dom, 'height', `calc(${this.height} - ${this.topBound}${this.decrement})`);
30
39
  }
31
40
  }
32
41
  }
33
42
  FillEmptySpaceDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: FillEmptySpaceDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
34
- FillEmptySpaceDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.7", type: FillEmptySpaceDirective, selector: "[fillEmptySpace]", inputs: { decrement: "decrement", disable: "disable" }, usesInheritance: true, ngImport: i0 });
43
+ FillEmptySpaceDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.7", type: FillEmptySpaceDirective, selector: "[fillEmptySpace]", inputs: { containerDom: "containerDom", decrement: "decrement", disable: "disable", dontUseTopBound: "dontUseTopBound" }, usesInheritance: true, ngImport: i0 });
35
44
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: FillEmptySpaceDirective, decorators: [{
36
45
  type: Directive,
37
46
  args: [{
38
47
  selector: '[fillEmptySpace]'
39
48
  }]
40
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { decrement: [{
49
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { containerDom: [{
50
+ type: Input
51
+ }], decrement: [{
41
52
  type: Input
42
53
  }], disable: [{
43
54
  type: Input
55
+ }], dontUseTopBound: [{
56
+ type: Input
44
57
  }] } });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsbC1lbXB0eS1zcGFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLW5vdmluLXJheS1jb3JlL3NyYy9saWIvZGlyZWN0aXZlcy9maWxsLWVtcHR5LXNwYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFjLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBS2pELE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxhQUFhO0lBTXRELFlBQXNCLEdBQWUsRUFBVSxVQUFxQjtRQUNoRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFETyxRQUFHLEdBQUgsR0FBRyxDQUFZO1FBQVUsZUFBVSxHQUFWLFVBQVUsQ0FBVztJQUVwRSxDQUFDO0lBQ0QsZUFBZTtRQUNYLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDZCxPQUFPO1NBQ1Y7UUFDRCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFDbkMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ1YsQ0FBQztJQUNPLHVCQUF1QjtRQUMzQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQTRCLENBQUM7UUFDbEQsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDMUMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7U0FDM0M7YUFBTTtZQUNILElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1NBQ3ZCO1FBQ0QsSUFBSSxLQUFLLEVBQUU7WUFDUCxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztTQUN4RztJQUNMLENBQUM7O29IQTdCUSx1QkFBdUI7d0dBQXZCLHVCQUF1QjsyRkFBdkIsdUJBQXVCO2tCQUhuQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxrQkFBa0I7aUJBQy9CO3lIQUtZLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlRGlyZWN0aXZlIH0gZnJvbSAnLi9iYXNlLmRpcmVjdGl2ZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2ZpbGxFbXB0eVNwYWNlXSdcbn0pXG5leHBvcnQgY2xhc3MgRmlsbEVtcHR5U3BhY2VEaXJlY3RpdmUgZXh0ZW5kcyBCYXNlRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgLyoqXG4gICAgICpcbiAgICAgKi9cbiAgICBASW5wdXQoKSBkZWNyZW1lbnQ6IHN0cmluZztcbiAgICBASW5wdXQoKSBkaXNhYmxlOiBib29sZWFuO1xuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfZWw6IEVsZW1lbnRSZWYsIHByaXZhdGUgX3JlbmRlcmVyMjogUmVuZGVyZXIyKSB7XG4gICAgICAgIHN1cGVyKF9lbCk7XG4gICAgfVxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3NldEhlaWdodE9mRm9ybUNvbnRlbnQoKTtcbiAgICAgICAgfSwgMCk7XG4gICAgfVxuICAgIHByaXZhdGUgX3NldEhlaWdodE9mRm9ybUNvbnRlbnQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGRvbSA9IHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGJvdW5kID0gZG9tLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBpZiAodGhpcy5kZWNyZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuZGVjcmVtZW50ID0gYCAtICR7dGhpcy5kZWNyZW1lbnR9YDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGVjcmVtZW50ID0gJyc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGJvdW5kKSB7XG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJlcjIuc2V0U3R5bGUoZG9tLCAnaGVpZ2h0JywgYGNhbGMoMTAwdmggLSAke01hdGgucm91bmQoYm91bmQudG9wKX1weCR7dGhpcy5kZWNyZW1lbnR9KWApO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsbC1lbXB0eS1zcGFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLW5vdmluLXJheS1jb3JlL3NyYy9saWIvZGlyZWN0aXZlcy9maWxsLWVtcHR5LXNwYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFjLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBS2pELE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxhQUFhO0lBV3RELFlBQXNCLEdBQWUsRUFBVSxVQUFxQjtRQUNoRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFETyxRQUFHLEdBQUgsR0FBRyxDQUFZO1FBQVUsZUFBVSxHQUFWLFVBQVUsQ0FBVztRQUZwRSxXQUFNLEdBQUcsT0FBTyxDQUFDO1FBQ2pCLGFBQVEsR0FBRyxFQUFFLENBQUM7SUFHZCxDQUFDO0lBQ0QsZUFBZTtRQUNYLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDZCxPQUFPO1NBQ1Y7UUFDRCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFDbkMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ1YsQ0FBQztJQUNPLHVCQUF1QjtRQUMzQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQTRCLENBQUM7UUFDbEQsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDMUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQztRQUNqQyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDbkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxNQUFNLElBQUksQ0FBQztTQUN6RTtRQUNELElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNoQixJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQzNDO2FBQU07WUFDSCxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztTQUN2QjtRQUNELElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztTQUN6QjtRQUNELElBQUksS0FBSyxFQUFFO1lBQ1AsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRSxRQUFRLElBQUksQ0FBQyxNQUFNLE1BQU0sSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztTQUN2RztJQUNMLENBQUM7O29IQXpDUSx1QkFBdUI7d0dBQXZCLHVCQUF1QjsyRkFBdkIsdUJBQXVCO2tCQUhuQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxrQkFBa0I7aUJBQy9CO3lIQUtZLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZURpcmVjdGl2ZSB9IGZyb20gJy4vYmFzZS5kaXJlY3RpdmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tmaWxsRW1wdHlTcGFjZV0nXG59KVxuZXhwb3J0IGNsYXNzIEZpbGxFbXB0eVNwYWNlRGlyZWN0aXZlIGV4dGVuZHMgQmFzZURpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIC8qKlxuICAgICAqXG4gICAgICovXG4gICAgQElucHV0KCkgY29udGFpbmVyRG9tOiBIVE1MRWxlbWVudDtcbiAgICBASW5wdXQoKSBkZWNyZW1lbnQ6IHN0cmluZztcbiAgICBASW5wdXQoKSBkaXNhYmxlOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGRvbnRVc2VUb3BCb3VuZDogYm9vbGVhbjtcblxuICAgIGhlaWdodCA9ICcxMDB2aCc7XG4gICAgdG9wQm91bmQgPSAnJztcbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX2VsOiBFbGVtZW50UmVmLCBwcml2YXRlIF9yZW5kZXJlcjI6IFJlbmRlcmVyMikge1xuICAgICAgICBzdXBlcihfZWwpO1xuICAgIH1cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9zZXRIZWlnaHRPZkZvcm1Db250ZW50KCk7XG4gICAgICAgIH0sIDApO1xuICAgIH1cbiAgICBwcml2YXRlIF9zZXRIZWlnaHRPZkZvcm1Db250ZW50KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBkb20gPSB0aGlzLl9lbC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBjb25zdCBib3VuZCA9IGRvbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgdGhpcy50b3BCb3VuZCA9IGAke2JvdW5kLnRvcH1weGA7XG4gICAgICAgIGlmICh0aGlzLmNvbnRhaW5lckRvbSkge1xuICAgICAgICAgICAgdGhpcy5oZWlnaHQgPSBgJHt0aGlzLmNvbnRhaW5lckRvbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHR9cHhgO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmRlY3JlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5kZWNyZW1lbnQgPSBgIC0gJHt0aGlzLmRlY3JlbWVudH1gO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kZWNyZW1lbnQgPSAnJztcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5kb250VXNlVG9wQm91bmQpIHtcbiAgICAgICAgICAgIHRoaXMudG9wQm91bmQgPSAnMHB4JztcbiAgICAgICAgfVxuICAgICAgICBpZiAoYm91bmQpIHtcbiAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyMi5zZXRTdHlsZShkb20sICdoZWlnaHQnLCBgY2FsYygke3RoaXMuaGVpZ2h0fSAtICR7dGhpcy50b3BCb3VuZH0ke3RoaXMuZGVjcmVtZW50fSlgKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -5,10 +5,12 @@ import { BarsaApi } from '../abstract-classes';
5
5
  import { BaseComponent } from '../abstract-classes/base.component';
6
6
  import { getComponentDefined, getUniqueId } from '../constants';
7
7
  import * as i0 from "@angular/core";
8
- import * as i1 from "../services/portal.service";
8
+ import * as i1 from "../services";
9
+ import * as i2 from "../services/portal.service";
9
10
  export class FieldUiComponent extends BaseComponent {
10
- constructor(el, _portalService, _injector, _cdr) {
11
+ constructor(el, _formPanelService, _portalService, _injector, _cdr) {
11
12
  super();
13
+ this._formPanelService = _formPanelService;
12
14
  this._portalService = _portalService;
13
15
  this._injector = _injector;
14
16
  this._cdr = _cdr;
@@ -68,6 +70,7 @@ export class FieldUiComponent extends BaseComponent {
68
70
  componentInstance.id = getUniqueId(4);
69
71
  componentInstance.layoutInfo = this.layoutInfo;
70
72
  componentInstance.inlineEdit = this.inlineEdit;
73
+ componentInstance.formContainer = this._formPanelService.formContainerDom;
71
74
  if (customUiSetting) {
72
75
  componentInstance.parameters = customUiSetting.Parameters;
73
76
  }
@@ -108,12 +111,12 @@ export class FieldUiComponent extends BaseComponent {
108
111
  }
109
112
  }
110
113
  }
111
- FieldUiComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: FieldUiComponent, deps: [{ token: i0.ElementRef }, { token: i1.PortalService }, { token: i0.Injector }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
114
+ FieldUiComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: FieldUiComponent, deps: [{ token: i0.ElementRef }, { token: i1.FormPanelService }, { token: i2.PortalService }, { token: i0.Injector }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
112
115
  FieldUiComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: FieldUiComponent, selector: "bnrc-field-ui", inputs: { isSearchPanel: "isSearchPanel", customField: "customField", layoutInfo: "layoutInfo", inlineEdit: "inlineEdit", focusControl: "focusControl", formHeight: "formHeight" }, host: { properties: { "style.width": "this.width" } }, viewQueries: [{ propertyName: "vcr", first: true, predicate: ["placeholder"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '<ng-container #placeholder></ng-container>', isInline: true, styles: [":host{display:block;width:100%;height:auto;box-sizing:border-box}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
113
116
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: FieldUiComponent, decorators: [{
114
117
  type: Component,
115
118
  args: [{ selector: 'bnrc-field-ui', template: '<ng-container #placeholder></ng-container>', changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:block;width:100%;height:auto;box-sizing:border-box}\n"] }]
116
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.PortalService }, { type: i0.Injector }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { isSearchPanel: [{
119
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.FormPanelService }, { type: i2.PortalService }, { type: i0.Injector }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { isSearchPanel: [{
117
120
  type: Input
118
121
  }], customField: [{
119
122
  type: Input
@@ -132,4 +135,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
132
135
  type: ViewChild,
133
136
  args: ['placeholder', { read: ViewContainerRef, static: true }]
134
137
  }] } });
135
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtdWkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etbm92aW4tcmF5LWNvcmUvc3JjL2xpYi9maWVsZC11aS9maWVsZC11aS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUV2QixTQUFTLEVBR1QsV0FBVyxFQUVYLEtBQUssRUFJTCxTQUFTLEVBQ1QsZ0JBQWdCLEVBQ25CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7QUFTaEUsTUFBTSxPQUFPLGdCQUFpQixTQUFRLGFBQWE7SUFhL0MsWUFDSSxFQUFjLEVBQ04sY0FBNkIsRUFDN0IsU0FBbUIsRUFDbkIsSUFBdUI7UUFFL0IsS0FBSyxFQUFFLENBQUM7UUFKQSxtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUM3QixjQUFTLEdBQVQsU0FBUyxDQUFVO1FBQ25CLFNBQUksR0FBSixJQUFJLENBQW1CO1FBVlAsVUFBSyxHQUFHLE1BQU0sQ0FBQztRQUtuQyx3QkFBbUIsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBUTlDLEVBQUUsQ0FBQyxhQUFhLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFDRCxLQUFLLENBQUMsUUFBUTtRQUNWLEtBQUssQ0FBQyxRQUFR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UyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUMzQyxDQUFDLENBQUMsQ0FBQztTQUNWO1FBQ0QsSUFBSSxpQkFBaUIsQ0FBQyxjQUFjLEVBQUU7WUFDbEMsaUJBQWlCLENBQUMsY0FBYztpQkFDM0IsSUFBSSxDQUNELFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQztZQUNyRSx3RUFBd0U7YUFDM0U7aUJBQ0EsU0FBUyxDQUFDLENBQUMsY0FBYyxFQUFFLEVBQUU7Z0JBQzFCLFdBQVcsQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDLENBQUMsbUNBQW1DO1lBQ3BGLENBQUMsQ0FBQyxDQUFDO1NBQ1Y7SUFDTCxDQUFDOzs2R0F0SFEsZ0JBQWdCO2lHQUFoQixnQkFBZ0IsK1dBUVMsZ0JBQWdCLHVGQVp4Qyw0Q0FBNEM7MkZBSTdDLGdCQUFnQjtrQkFONUIsU0FBUzsrQkFDSSxlQUFlLFlBQ2YsNENBQTRDLG1CQUVyQyx1QkFBdUIsQ0FBQyxNQUFNO29MQUd0QyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDc0IsS0FBSztzQkFBaEMsV0FBVzt1QkFBQyxhQUFhO2dCQUUxQixHQUFHO3NCQURGLFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb21wb25lbnRSZWYsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbmplY3RvcixcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25Jbml0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtZXJnZVdpdGgsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBCYXJzYUFwaSB9IGZyb20gJy4uL2Fic3RyYWN0LWNsYXNzZXMnO1xuXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vYWJzdHJhY3QtY2xhc3Nlcy9iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBnZXRDb21wb25lbnREZWZpbmVkLCBnZXRVbmlxdWVJZCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBQb3J0YWxTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvcG9ydGFsLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JucmMtZmllbGQtdWknLFxuICAgIHRlbXBsYXRlOiAnPG5nLWNvbnRhaW5lciAjcGxhY2Vob2xkZXI+PC9uZy1jb250YWluZXI+JyxcbiAgICBzdHlsZVVybHM6IFsnLi9maWVsZC11aS5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEZpZWxkVWlDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAgIEBJbnB1dCgpIGlzU2VhcmNoUGFuZWw6IGJvb2xlYW47XG4gICAgQElucHV0KCkgY3VzdG9tRmllbGQ6IGFueTtcbiAgICBASW5wdXQoKSBsYXlvdXRJbmZvOiBhbnk7XG4gICAgQElucHV0KCkgaW5saW5lRWRpdDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBmb2N1c0NvbnRyb2w6IGJvb2xlYW47XG4gICAgQElucHV0KCkgZm9ybUhlaWdodDogbnVtYmVyO1xuICAgIEBIb3N0QmluZGluZygnc3R5bGUud2lkdGgnKSB3aWR0aCA9ICcxMDAlJztcbiAgICBAVmlld0NoaWxkKCdwbGFjZWhvbGRlcicsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiB0cnVlIH0pXG4gICAgdmNyOiBWaWV3Q29udGFpbmVyUmVmO1xuICAgIHVuaXF1SWQ6IGFueTtcbiAgICBwcml2YXRlIF9jb21wb25lbnQ6IENvbXBvbmVudFJlZjxhbnk+O1xuICAgIHByaXZhdGUgX2N1c3RvbUZpZWxkQ2hhbmdlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGVsOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIF9wb3J0YWxTZXJ2aWNlOiBQb3J0YWxTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9pbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIHByaXZhdGUgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZWwubmF0aXZlRWxlbWVudC5pZCA9IHRoaXMudW5pcXVJZCA9IGdldFVuaXF1ZUlkKDQpO1xuICAgIH1cbiAgICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgaWYgKHRoaXMuY3VzdG9tRmllbGQub3JpZ2luYWxYdHlwZSA9PT0gJ1VpLkNoZWNrQm94Jykge1xuICAgICAgICAgICAgLy8gdGhpcy53aWR0aCA9ICdhdXRvJztcbiAgICAgICAgfVxuICAgICAgICAvLyBpZiAodGhpcy5pc1NlYXJjaFBhbmVsKSB7XG4gICAgICAgIC8vICAgdGhpcy53aWR0aCA9ICczMjBweCc7XG4gICAgICAgIC8vIH1cbiAgICAgICAgdGhpcy5pbnNlckZpZWxkVG9Db250YWluZXIoKTtcbiAgICB9XG4gICAgYXN5bmMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBzdXBlci5uZ09uQ2hhbmdlcyhjaGFuZ2VzKTtcbiAgICAgICAgY29uc3QgeyBjdXN0b21GaWVsZCB9ID0gY2hhbmdlcztcbiAgICAgICAgaWYgKHRoaXMuX2NvbXBvbmVudCkge1xuICAgICAgICAgICAgaWYgKGN1c3RvbUZpZWxkICYmICFjdXN0b21GaWVsZC5maXJzdENoYW5nZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2N1c3RvbUZpZWxkQ2hhbmdlJC5uZXh0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2V0Q29udGV4dCh0aGlzLl9jb21wb25lbnQuaW5zdGFuY2UsIGN1c3RvbUZpZWxkLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKGNoYW5nZXMpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWNoYW5nZXNba2V5XS5maXJzdENoYW5nZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY29tcG9uZW50Lmluc3RhbmNlW2tleV0gPSBjaGFuZ2VzW2tleV0uY3VycmVudFZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fY29tcG9uZW50Lmluc3RhbmNlLm5nT25DaGFuZ2VzKGNoYW5nZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgICAgICBpZiAodGhpcy5fY29tcG9uZW50KSB7XG4gICAgICAgICAgICB0aGlzLl9jb21wb25lbnQuZGVzdHJveSgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGFzeW5jIGluc2VyRmllbGRUb0NvbnRhaW5lcigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgY3VzdG9tRmllbGQgPSB0aGlzLmN1c3RvbUZpZWxkO1xuICAgICAgICBpZiAoIWN1c3RvbUZpZWxkKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdpdGVtIGRvZXMgbm90IGV4aXN0LicpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGxldCBjdXN0b21VaVNldHRpbmcgPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZShjdXN0b21GaWVsZC5TZXR0aW5nLCAnQ3VzdG9tVWknLCBudWxsKTtcbiAgICAgICAgaWYgKGN1c3RvbUZpZWxkLl9pbm5lckNvbnRyb2wpIHtcbiAgICAgICAgICAgIGN1c3RvbVVpU2V0dGluZyA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyBtb2R1bGVOYW1lLCBtb2R1bGVQYXRoLCBjb21wb25lbnROYW1lLCBzZWxlY3RvciB9ID0gZ2V0Q29tcG9uZW50RGVmaW5lZChjdXN0b21GaWVsZCwgY3VzdG9tVWlTZXR0aW5nKTtcbiAgICAgICAgdGhpcy5fcG9ydGFsU2VydmljZVxuICAgICAgICAgICAgLmdldENvbXBvbmVudChtb2R1bGVOYW1lLCBtb2R1bGVQYXRoLCBjb21wb25lbnROYW1lLCBzZWxlY3RvciwgdGhpcy5faW5qZWN0b3IpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCksXG4gICAgICAgICAgICAgICAgdGFwKChjb21wb25lbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29tcG9uZW50SW5zdGFuY2UgPSBjb21wb25lbnQuaW5zdGFuY2U7XG4gICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudEluc3RhbmNlLmlkID0gZ2V0VW5pcXVlSWQoNCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudEluc3RhbmNlLmxheW91dEluZm8gPSB0aGlzLmxheW91dEluZm87XG4gICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudEluc3RhbmNlLmlubGluZUVkaXQgPSB0aGlzLmlubGluZUVkaXQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjdXN0b21VaVNldHRpbmcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudEluc3RhbmNlLnBhcmFtZXRlcnMgPSBjdXN0b21VaVNldHRpbmcuUGFyYW1ldGVycztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZXRDb250ZXh0KGNvbXBvbmVudEluc3RhbmNlLCBjdXN0b21GaWVsZCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudEluc3RhbmNlLmZvY3VzQ29udHJvbCA9IHRoaXMuZm9jdXNDb250cm9sO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb21wb25lbnQgPSBjb21wb25lbnQ7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmNyLmluc2VydChjb21wb25lbnQuaG9zdFZpZXcpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2V0Q29udGV4dChjb21wb25lbnRJbnN0YW5jZTogYW55LCBjdXN0b21GaWVsZDogYW55KTogdm9pZCB7XG4gICAgICAgIGNvbXBvbmVudEluc3RhbmNlLmNvbnRleHQgPSBjdXN0b21GaWVsZDtcbiAgICAgICAgY29tcG9uZW50SW5zdGFuY2UudmFsdWUgPSBjdXN0b21GaWVsZC52YWx1ZTtcbiAgICAgICAgY29tcG9uZW50SW5zdGFuY2UuZGlzYWJsZSA9IGN1c3RvbUZpZWxkLmRpc2FibGU7XG4gICAgICAgIGNvbXBvbmVudEluc3RhbmNlLnJlYWRvbmx5ID0gY3VzdG9tRmllbGQucmVhZG9ubHk7XG4gICAgICAgIGNvbXBvbmVudEluc3RhbmNlLmZvcm1IZWlnaHQgPSB0aGlzLmZvcm1IZWlnaHQ7XG5cbiAgICAgICAgY3VzdG9tRmllbGQuY29udHJvbFVpID0gY29tcG9uZW50SW5zdGFuY2U7XG4gICAgICAgIGlmIChjb21wb25lbnRJbnN0YW5jZS52YWx1ZUNoYW5nZSkge1xuICAgICAgICAgICAgY29tcG9uZW50SW5zdGFuY2UudmFsdWVDaGFuZ2VcbiAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQucGlwZShtZXJnZVdpdGgodGhpcy5fY3VzdG9tRmllbGRDaGFuZ2UkKSkpXG4gICAgICAgICAgICAgICAgICAgIC8vIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChvbGRWYWwsIG5ld1ZhbCkgPT4gY3VzdG9tRmllbGQudmFsdWUgIT0gbmV3VmFsKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjdXN0b21GaWVsZC52YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICBjdXN0b21GaWVsZC5jYXB0aW9uID0gY29tcG9uZW50SW5zdGFuY2UuY2FwdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgY3VzdG9tRmllbGQuZmlyZUV2ZW50KCdjaGFuZ2UnLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbXBvbmVudEluc3RhbmNlLmZvcm1tYXRlZFZhbHVlKSB7XG4gICAgICAgICAgICBjb21wb25lbnRJbnN0YW5jZS5mb3JtbWF0ZWRWYWx1ZVxuICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JC5waXBlKG1lcmdlV2l0aCh0aGlzLl9jdXN0b21GaWVsZENoYW5nZSQpKSlcbiAgICAgICAgICAgICAgICAgICAgLy8gZGlzdGluY3RVbnRpbENoYW5nZWQoKG9sZFZhbCwgbmV3VmFsKSA9PiBjdXN0b21GaWVsZC52YWx1ZSAhPSBuZXdWYWwpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGZvcm1tYXRlZFZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGN1c3RvbUZpZWxkLmZvcm1tYXRlZFZhbHVlID0gZm9ybW1hdGVkVmFsdWU7IC8vIHRoaXMgZXZlbnQgY2FsbCBmcm9tIG51bWJlciBiYXNlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtdWkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etbm92aW4tcmF5LWNvcmUvc3JjL2xpYi9maWVsZC11aS9maWVsZC11aS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUV2QixTQUFTLEVBR1QsV0FBVyxFQUVYLEtBQUssRUFJTCxTQUFTLEVBQ1QsZ0JBQWdCLEVBQ25CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7O0FBVWhFLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxhQUFhO0lBYS9DLFlBQ0ksRUFBYyxFQUNOLGlCQUFtQyxFQUNuQyxjQUE2QixFQUM3QixTQUFtQixFQUNuQixJQUF1QjtRQUUvQixLQUFLLEVBQUUsQ0FBQztRQUxBLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBa0I7UUFDbkMsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFDN0IsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNuQixTQUFJLEdBQUosSUFBSSxDQUFtQjtRQVhQLFVBQUssR0FBRyxNQUFNLENBQUM7UUFLbkMsd0JBQW1CLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQVM5QyxFQUFFLENBQUMsYUFBYSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4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cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb21wb25lbnRSZWYsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbmplY3RvcixcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25Jbml0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtZXJnZVdpdGgsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBCYXJzYUFwaSB9IGZyb20gJy4uL2Fic3RyYWN0LWNsYXNzZXMnO1xuXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vYWJzdHJhY3QtY2xhc3Nlcy9iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBnZXRDb21wb25lbnREZWZpbmVkLCBnZXRVbmlxdWVJZCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBQb3J0YWxTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvcG9ydGFsLnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9ybVBhbmVsU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdibnJjLWZpZWxkLXVpJyxcbiAgICB0ZW1wbGF0ZTogJzxuZy1jb250YWluZXIgI3BsYWNlaG9sZGVyPjwvbmctY29udGFpbmVyPicsXG4gICAgc3R5bGVVcmxzOiBbJy4vZmllbGQtdWkuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBGaWVsZFVpQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgICBASW5wdXQoKSBpc1NlYXJjaFBhbmVsOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGN1c3RvbUZpZWxkOiBhbnk7XG4gICAgQElucHV0KCkgbGF5b3V0SW5mbzogYW55O1xuICAgIEBJbnB1dCgpIGlubGluZUVkaXQ6IGJvb2xlYW47XG4gICAgQElucHV0KCkgZm9jdXNDb250cm9sOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGZvcm1IZWlnaHQ6IG51bWJlcjtcbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLndpZHRoJykgd2lkdGggPSAnMTAwJSc7XG4gICAgQFZpZXdDaGlsZCgncGxhY2Vob2xkZXInLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICAgIHZjcjogVmlld0NvbnRhaW5lclJlZjtcbiAgICB1bmlxdUlkOiBhbnk7XG4gICAgcHJpdmF0ZSBfY29tcG9uZW50OiBDb21wb25lbnRSZWY8YW55PjtcbiAgICBwcml2YXRlIF9jdXN0b21GaWVsZENoYW5nZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBlbDogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSBfZm9ybVBhbmVsU2VydmljZTogRm9ybVBhbmVsU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBfcG9ydGFsU2VydmljZTogUG9ydGFsU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBfaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBwcml2YXRlIF9jZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGVsLm5hdGl2ZUVsZW1lbnQuaWQgPSB0aGlzLnVuaXF1SWQgPSBnZXRVbmlxdWVJZCg0KTtcbiAgICB9XG4gICAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIGlmICh0aGlzLmN1c3RvbUZpZWxkLm9yaWdpbmFsWHR5cGUgPT09ICdVaS5DaGVja0JveCcpIHtcbiAgICAgICAgICAgIC8vIHRoaXMud2lkdGggPSAnYXV0byc7XG4gICAgICAgIH1cbiAgICAgICAgLy8gaWYgKHRoaXMuaXNTZWFyY2hQYW5lbCkge1xuICAgICAgICAvLyAgIHRoaXMud2lkdGggPSAnMzIwcHgnO1xuICAgICAgICAvLyB9XG4gICAgICAgIHRoaXMuaW5zZXJGaWVsZFRvQ29udGFpbmVyKCk7XG4gICAgfVxuICAgIGFzeW5jIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgc3VwZXIubmdPbkNoYW5nZXMoY2hhbmdlcyk7XG4gICAgICAgIGNvbnN0IHsgY3VzdG9tRmllbGQgfSA9IGNoYW5nZXM7XG4gICAgICAgIGlmICh0aGlzLl9jb21wb25lbnQpIHtcbiAgICAgICAgICAgIGlmIChjdXN0b21GaWVsZCAmJiAhY3VzdG9tRmllbGQuZmlyc3RDaGFuZ2UpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jdXN0b21GaWVsZENoYW5nZSQubmV4dCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3NldENvbnRleHQodGhpcy5fY29tcG9uZW50Lmluc3RhbmNlLCBjdXN0b21GaWVsZC5jdXJyZW50VmFsdWUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyhjaGFuZ2VzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjaGFuZ2VzW2tleV0uZmlyc3RDaGFuZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2NvbXBvbmVudC5pbnN0YW5jZVtrZXldID0gY2hhbmdlc1trZXldLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2NvbXBvbmVudC5pbnN0YW5jZS5uZ09uQ2hhbmdlcyhjaGFuZ2VzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICAgICAgaWYgKHRoaXMuX2NvbXBvbmVudCkge1xuICAgICAgICAgICAgdGhpcy5fY29tcG9uZW50LmRlc3Ryb3koKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBhc3luYyBpbnNlckZpZWxkVG9Db250YWluZXIoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IGN1c3RvbUZpZWxkID0gdGhpcy5jdXN0b21GaWVsZDtcbiAgICAgICAgaWYgKCFjdXN0b21GaWVsZCkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignaXRlbSBkb2VzIG5vdCBleGlzdC4nKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgY3VzdG9tVWlTZXR0aW5nID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUoY3VzdG9tRmllbGQuU2V0dGluZywgJ0N1c3RvbVVpJywgbnVsbCk7XG4gICAgICAgIGlmIChjdXN0b21GaWVsZC5faW5uZXJDb250cm9sKSB7XG4gICAgICAgICAgICBjdXN0b21VaVNldHRpbmcgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgbW9kdWxlTmFtZSwgbW9kdWxlUGF0aCwgY29tcG9uZW50TmFtZSwgc2VsZWN0b3IgfSA9IGdldENvbXBvbmVudERlZmluZWQoY3VzdG9tRmllbGQsIGN1c3RvbVVpU2V0dGluZyk7XG4gICAgICAgIHRoaXMuX3BvcnRhbFNlcnZpY2VcbiAgICAgICAgICAgIC5nZXRDb21wb25lbnQobW9kdWxlTmFtZSwgbW9kdWxlUGF0aCwgY29tcG9uZW50TmFtZSwgc2VsZWN0b3IsIHRoaXMuX2luamVjdG9yKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpLFxuICAgICAgICAgICAgICAgIHRhcCgoY29tcG9uZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudEluc3RhbmNlID0gY29tcG9uZW50Lmluc3RhbmNlO1xuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRJbnN0YW5jZS5pZCA9IGdldFVuaXF1ZUlkKDQpO1xuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRJbnN0YW5jZS5sYXlvdXRJbmZvID0gdGhpcy5sYXlvdXRJbmZvO1xuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRJbnN0YW5jZS5pbmxpbmVFZGl0ID0gdGhpcy5pbmxpbmVFZGl0O1xuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRJbnN0YW5jZS5mb3JtQ29udGFpbmVyID0gdGhpcy5fZm9ybVBhbmVsU2VydmljZS5mb3JtQ29udGFpbmVyRG9tO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY3VzdG9tVWlTZXR0aW5nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRJbnN0YW5jZS5wYXJhbWV0ZXJzID0gY3VzdG9tVWlTZXR0aW5nLlBhcmFtZXRlcnM7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2V0Q29udGV4dChjb21wb25lbnRJbnN0YW5jZSwgY3VzdG9tRmllbGQpO1xuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRJbnN0YW5jZS5mb2N1c0NvbnRyb2wgPSB0aGlzLmZvY3VzQ29udHJvbDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY29tcG9uZW50ID0gY29tcG9uZW50O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnZjci5pbnNlcnQoY29tcG9uZW50Lmhvc3RWaWV3KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3NldENvbnRleHQoY29tcG9uZW50SW5zdGFuY2U6IGFueSwgY3VzdG9tRmllbGQ6IGFueSk6IHZvaWQge1xuICAgICAgICBjb21wb25lbnRJbnN0YW5jZS5jb250ZXh0ID0gY3VzdG9tRmllbGQ7XG4gICAgICAgIGNvbXBvbmVudEluc3RhbmNlLnZhbHVlID0gY3VzdG9tRmllbGQudmFsdWU7XG4gICAgICAgIGNvbXBvbmVudEluc3RhbmNlLmRpc2FibGUgPSBjdXN0b21GaWVsZC5kaXNhYmxlO1xuICAgICAgICBjb21wb25lbnRJbnN0YW5jZS5yZWFkb25seSA9IGN1c3RvbUZpZWxkLnJlYWRvbmx5O1xuICAgICAgICBjb21wb25lbnRJbnN0YW5jZS5mb3JtSGVpZ2h0ID0gdGhpcy5mb3JtSGVpZ2h0O1xuXG4gICAgICAgIGN1c3RvbUZpZWxkLmNvbnRyb2xVaSA9IGNvbXBvbmVudEluc3RhbmNlO1xuICAgICAgICBpZiAoY29tcG9uZW50SW5zdGFuY2UudmFsdWVDaGFuZ2UpIHtcbiAgICAgICAgICAgIGNvbXBvbmVudEluc3RhbmNlLnZhbHVlQ2hhbmdlXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkLnBpcGUobWVyZ2VXaXRoKHRoaXMuX2N1c3RvbUZpZWxkQ2hhbmdlJCkpKVxuICAgICAgICAgICAgICAgICAgICAvLyBkaXN0aW5jdFVudGlsQ2hhbmdlZCgob2xkVmFsLCBuZXdWYWwpID0+IGN1c3RvbUZpZWxkLnZhbHVlICE9IG5ld1ZhbClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY3VzdG9tRmllbGQudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgY3VzdG9tRmllbGQuY2FwdGlvbiA9IGNvbXBvbmVudEluc3RhbmNlLmNhcHRpb247XG4gICAgICAgICAgICAgICAgICAgIGN1c3RvbUZpZWxkLmZpcmVFdmVudCgnY2hhbmdlJywgdmFsdWUpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb21wb25lbnRJbnN0YW5jZS5mb3JtbWF0ZWRWYWx1ZSkge1xuICAgICAgICAgICAgY29tcG9uZW50SW5zdGFuY2UuZm9ybW1hdGVkVmFsdWVcbiAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQucGlwZShtZXJnZVdpdGgodGhpcy5fY3VzdG9tRmllbGRDaGFuZ2UkKSkpXG4gICAgICAgICAgICAgICAgICAgIC8vIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChvbGRWYWwsIG5ld1ZhbCkgPT4gY3VzdG9tRmllbGQudmFsdWUgIT0gbmV3VmFsKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChmb3JtbWF0ZWRWYWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjdXN0b21GaWVsZC5mb3JtbWF0ZWRWYWx1ZSA9IGZvcm1tYXRlZFZhbHVlOyAvLyB0aGlzIGV2ZW50IGNhbGwgZnJvbSBudW1iZXIgYmFzZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -310,4 +310,4 @@ export class FormPanelService extends BaseComponent {
310
310
  this._context = context;
311
311
  }
312
312
  }
313
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1wYW5lbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etbm92aW4tcmF5LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9mb3JtLXBhbmVsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQWMsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFOUUsTUFBTSxPQUFPLGdCQUFpQixTQUFRLGFBQWE7SUF5RC9DO1FBQ0ksS0FBSyxFQUFFLENBQUM7UUF2Q1osZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNsRCxnQkFBVyxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ2xELGNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQVd4QyxtQkFBYyxHQUFHLElBQUksZUFBZSxDQUFNLElBQUksQ0FBQyxDQUFDO1FBQ2hELHNCQUFpQixHQUFHLElBQUksZUFBZSxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ25ELCtCQUEwQixHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ2pFLHlCQUFvQixHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQzNELDJCQUFzQixHQUFHLElBQUksZUFB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QyxTQUF3QjtRQUNqRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFDUyxlQUFlLENBQUMsT0FBTztRQUM3QixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7SUFDNUIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0LCBPYnNlcnZhYmxlLCBjb21iaW5lTGF0ZXN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRlbGF5LCBmaWx0ZXIsIG1hcCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBGb3JtVmlld1NldHRpbmcsIElIZWFkZXJMYXlvdXQsIExheW91dFNldHRpbmcsIE1ldGFvYmplY3REYXRhTW9kZWwgfSBmcm9tICcuLi9hYnN0cmFjdC1jbGFzc2VzL21vZGVscyc7XG5pbXBvcnQgeyBCYXJzYUFwaSB9IGZyb20gJy4uL2Fic3RyYWN0LWNsYXNzZXMvYmFyc2EtYXBpJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi9hYnN0cmFjdC1jbGFzc2VzL2Jhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IERldmljZVdpZHRoLCBnZXREZXZpY2VJc01vYmlsZSwgZ2V0SGVhZGVyVmFsdWUgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuXG5leHBvcnQgY2xhc3MgRm9ybVBhbmVsU2VydmljZSBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuICAgIGNvbnRleHQkOiBPYnNlcnZhYmxlPGFueT47XG4gICAgc2VhcmNoUGFuZWxJc09iamVjdCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgaXNTZWFyY2hQYW5lbCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgd29ya2Zsb3dQYW5lbFVpJDogT2JzZXJ2YWJsZTxhbnk+O1xuICAgIG1vJDogT2JzZXJ2YWJsZTxNZXRhb2JqZWN0RGF0YU1vZGVsPjtcbiAgICB2aWV3JDogT2JzZXJ2YWJsZTxhbnk+O1xuICAgIHRvb2xiYXJJdGVtcyQ6IE9ic2VydmFibGU8YW55W10+O1xuICAgIHdvcmtmbG93QnV0dG9ucyQ6IE9ic2VydmFibGU8YW55W10+O1xuICAgIG1heENvbnRlbnRXaWR0aCQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgICB3aXphcmROZXh0U3RlcCQ6IE9ic2VydmFibGU8dm9pZD47XG4gICAgd2l6YXJkUHJldmlvdXNTdGVwJDogT2JzZXJ2YWJsZTx2b2lkPjtcbiAgICBsYXlvdXQkOiBPYnNlcnZhYmxlPGFueT47XG4gICAgZm9yY2VDbG9zZSQ6IE9ic2VydmFibGU8dm9pZD47XG4gICAgZ3JvdXBMYXlvdXQkOiBPYnNlcnZhYmxlPExheW91dFNldHRpbmc+O1xuICAgIGlzU2ltcGxlRm9ybSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgZm9ybVdpZHRoJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICAgIHRvb2xiYXJWaXNpYmxlJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICBoZWFkZXJMYXlvdXQkOiBPYnNlcnZhYmxlPElIZWFkZXJMYXlvdXQ+O1xuICAgIF9oaWRlQ2xvc2UkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gICAgX2hpZGVUaXRsZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICBfaGlkZVBpbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICB0aXRsZSQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgICBoZWFkZXJEZXNjcmlwdGlvbiQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgICBoZWFkZXJSZW1vdmVDb250ZW50UGFkZGluZyQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgaGVhZGVyU3VidGl0bGUkOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gICAgYXZhdGFyJDogT2JzZXJ2YWJsZTxhbnk+O1xuICAgIG1hc2skOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIGZvcm1IZWlnaHQkOiBPYnNlcnZhYmxlPG51bWJlcj47XG4gICAgZmllbGREaWN0JDogT2JzZXJ2YWJsZTx7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHwgdW5kZWZpbmVkPjtcblxuICAgIHByaXZhdGUgX2NvbnRleHQ7XG4gICAgcHJpdmF0ZSBfY29udGV4dFNvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcbiAgICBwcml2YXRlIF9mb3JtSGVpZ2h0U291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApO1xuICAgIHByaXZhdGUgX3NlYXJjaFBhbmVsSXNPYmplY3RTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICBwcml2YXRlIF9pc1NlYXJjaFBhbmVsU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gICAgcHJpdmF0ZSBfd29ya2Zsb3dQYW5lbFVpU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpO1xuICAgIHByaXZhdGUgX21vU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpO1xuICAgIHByaXZhdGUgX3ZpZXdTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbCk7XG4gICAgcHJpdmF0ZSBfdG9vbGJhckl0ZW1zU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnlbXT4oW10pO1xuICAgIHByaXZhdGUgX3RpdGxlU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcbiAgICBwcml2YXRlIF9tYXhDb250ZW50V2lkdGhTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJ2F1dG8nKTtcbiAgICBwcml2YXRlIF93aXphcmROZXh0U3RlcFNvdXJjZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgcHJpdmF0ZSBfd2l6YXJkUHJldmlvdXNTdGVwU291cmNlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICBwcml2YXRlIF9sYXlvdXRTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbCk7XG4gICAgcHJpdmF0ZSBfZm9yY2VDbG9zZVNvdXJjZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgcHJpdmF0ZSBfZ3JvdXBCUnVsZVNvdXJjZSA9IG5ldyBTdWJqZWN0PExheW91dFNldHRpbmc+KCk7XG4gICAgcHJpdmF0ZSBfaXNTaW1wbGVGb3JtU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gICAgcHJpdmF0ZSBfZm9ybVdpZHRoU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcxMDAlJyk7XG4gICAgcHJpdmF0ZSBfdG9vbGJhclZpc2libGVTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuICAgIHByaXZhdGUgX2hlYWRlckxheW91dFNvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcbiAgICBwcml2YXRlIF9oZWFkZXJUaXRsZVNvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG4gICAgcHJpdmF0ZSBfbWFza1NvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIHByaXZhdGUgX2hlYWRlclJlbW92ZUNvbnRlbnRQYWRkaW5nU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gICAgcHJpdmF0ZSBfaGVhZGVyRGVzY3JpcHRpb25Tb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xuICAgIHByaXZhdGUgX2NhblNlbmQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5jb250ZXh0JCA9IHRoaXMuX2NvbnRleHRTb3VyY2UuYXNPYnNlcnZhYmxlKCkucGlwZShcbiAgICAgICAgICAgIHRhcCgoY29udGV4dCkgPT4gdGhpcy5fcHJlcGFyZUNvbnRleHQoY29udGV4dCkpLFxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5zZWFyY2hQYW5lbElzT2JqZWN0JCA9IHRoaXMuX3NlYXJjaFBhbmVsSXNPYmplY3RTb3VyY2UuYXNPYnNlcnZhYmxlKCkucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpO1xuICAgICAgICB0aGlzLmlzU2VhcmNoUGFuZWwkID0gdGhpcy5faXNTZWFyY2hQYW5lbFNvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSk7XG4gICAgICAgIHRoaXMud29ya2Zsb3dQYW5lbFVpJCA9IHRoaXMuX3dvcmtmbG93UGFuZWxVaVNvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSk7XG4gICAgICAgIHRoaXMuZm9ybUhlaWdodCQgPSB0aGlzLl9mb3JtSGVpZ2h0U291cmNlLmFzT2JzZXJ2YWJsZSgpO1xuICAgICAgICB0aGlzLm1vJCA9IHRoaXMuX21vU291cmNlLmFzT2JzZXJ2YWJsZSgpLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKTtcbiAgICAgICAgdGhpcy5maWVsZERpY3QkID0gdGhpcy5tbyQucGlwZShcbiAgICAgICAgICAgIG1hcCgoYykgPT4gYy4kRmllbGREaWN0KSxcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMudmlldyQgPSB0aGlzLl92aWV3U291cmNlLmFzT2JzZXJ2YWJsZSgpLnBpcGUoXG4gICAgICAgICAgICB0YXAoKHZpZXcpID0+IHRoaXMuX3ByZXBhcmVWaWV3KHZpZXcpKSxcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMudG9vbGJhckl0ZW1zJCA9IHRoaXMuX3Rvb2xiYXJJdGVtc1NvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKFxuICAgICAgICAgICAgbWFwKChpdGVtcykgPT4gdGhpcy5fZmlsdGVyVG9vbGJhckl0ZW1zKGl0ZW1zKSksXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JClcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy53b3JrZmxvd0J1dHRvbnMkID0gdGhpcy5fdG9vbGJhckl0ZW1zU291cmNlLmFzT2JzZXJ2YWJsZSgpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKGl0ZW1zKSA9PiB0aGlzLl9maWx0ZXJUb29sYmFySXRlbXMoaXRlbXMpKSxcbiAgICAgICAgICAgIG1hcCgoaXRlbXMpID0+IGl0ZW1zLmZpbHRlcigoYykgPT4gYy5pc1dvcmtmbG93KSksXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JClcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLm1heENvbnRlbnRXaWR0aCQgPSB0aGlzLl9tYXhDb250ZW50V2lkdGhTb3VyY2UuYXNPYnNlcnZhYmxlKCkucGlwZShcbiAgICAgICAgICAgIG1hcCgod2lkdGgpID0+ICh3aWR0aCA/IHdpZHRoICsgJ3B4JyA6ICdhdXRvJykpLFxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy53aXphcmROZXh0U3RlcCQgPSB0aGlzLl93aXphcmROZXh0U3RlcFNvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSk7XG4gICAgICAgIHRoaXMud2l6YXJkUHJldmlvdXNTdGVwJCA9IHRoaXMuX3dpemFyZFByZXZpb3VzU3RlcFNvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSk7XG4gICAgICAgIHRoaXMubGF5b3V0JCA9IHRoaXMuX2xheW91dFNvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKFxuICAgICAgICAgICAgbWFwKChsYXlvdXQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIWxheW91dCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbGF5b3V0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBkZXZpY2VXaWR0aCA9IERldmljZVdpZHRoKCk7XG4gICAgICAgICAgICAgICAgaWYgKGRldmljZVdpZHRoIDwgbGF5b3V0LkJvdW5kcy53aWR0aCkge1xuICAgICAgICAgICAgICAgICAgICBsYXlvdXQuQm91bmRzLndpZHRoID0gZGV2aWNlV2lkdGg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB7IC4uLmxheW91dCB9O1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JClcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmZvcmNlQ2xvc2UkID0gdGhpcy5fZm9yY2VDbG9zZVNvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSk7XG5cbiAgICAgICAgdGhpcy5ncm91cExheW91dCQgPSB0aGlzLl9ncm91cEJSdWxlU291cmNlLmFzT2JzZXJ2YWJsZSgpLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKTtcblxuICAgICAgICB0aGlzLmlzU2ltcGxlRm9ybSQgPSB0aGlzLl9pc1NpbXBsZUZvcm1Tb3VyY2UuYXNPYnNlcnZhYmxlKCkucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpO1xuXG4gICAgICAgIHRoaXMuZm9ybVdpZHRoJCA9IHRoaXMuX2Zvcm1XaWR0aFNvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSk7XG5cbiAgICAgICAgdGhpcy50b29sYmFyVmlzaWJsZSQgPSB0aGlzLl90b29sYmFyVmlzaWJsZVNvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSk7XG4gICAgICAgIHRoaXMudGl0bGUkID0gY29tYmluZUxhdGVzdChbdGhpcy5faGVhZGVyVGl0bGVTb3VyY2UuYXNPYnNlcnZhYmxlKCksIHRoaXMuX3RpdGxlU291cmNlLmFzT2JzZXJ2YWJsZSgpXSkucGlwZShcbiAgICAgICAgICAgIG1hcCgoW2hlYWRlclRpdGxlLCB0aXRsZV0pID0+IChoZWFkZXJUaXRsZSA/IGhlYWRlclRpdGxlIDogdGl0bGUpKSxcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLmhlYWRlckxheW91dCQgPSB0aGlzLl9oZWFkZXJMYXlvdXRTb3VyY2UuYXNPYnNlcnZhYmxlKCkucGlwZShcbiAgICAgICAgICAgIGZpbHRlcigoaGVhZGVyTGF5b3V0KSA9PiAhIWhlYWRlckxheW91dCksXG4gICAgICAgICAgICB0YXAoKGhlYWRlckxheW91dCkgPT4gdGhpcy5faGVhZGVyVGl0bGVTb3VyY2UubmV4dChnZXRIZWFkZXJWYWx1ZShoZWFkZXJMYXlvdXQ/LlRpdGxlKSkpLFxuICAgICAgICAgICAgdGFwKChoZWFkZXJMYXlvdXQpID0+IHRoaXMuX2hpZGVDbG9zZSQubmV4dChoZWFkZXJMYXlvdXQ/LkhpZGVDbG9zZSkpLFxuICAgICAgICAgICAgdGFwKChoZWFkZXJMYXlvdXQpID0+IHRoaXMuX2hpZGVUaXRsZSQubmV4dChoZWFkZXJMYXlvdXQ/LkhpZGVUaXRsZSkpLFxuICAgICAgICAgICAgdGFwKChoZWFkZXJMYXlvdXQpID0+IHRoaXMuX2hpZGVQaW4kLm5leHQoaGVhZGVyTGF5b3V0Py5IaWRlUGluKSksXG4gICAgICAgICAgICB0YXAoKGhlYWRlckxheW91dCkgPT4gdGhpcy5faGVhZGVyRGVzY3JpcHRpb25Tb3VyY2UubmV4dChnZXRIZWFkZXJWYWx1ZShoZWFkZXJMYXlvdXQ/LkRlc2NyaXB0aW9uKSkpLFxuICAgICAgICAgICAgdGFwKChoZWFkZXJMYXlvdXQpID0+XG4gICAgICAgICAgICAgICAgdGhpcy5faGVhZGVyUmVtb3ZlQ29udGVudFBhZGRpbmdTb3VyY2UubmV4dChnZXRIZWFkZXJWYWx1ZShoZWFkZXJMYXlvdXQ/LlJlbW92ZUNvbnRlbnRQYWRkaW5nKSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JClcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmhlYWRlckRlc2NyaXB0aW9uJCA9IHRoaXMuX2hlYWRlckRlc2NyaXB0aW9uU291cmNlLmFzT2JzZXJ2YWJsZSgpLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKTtcblxuICAgICAgICB0aGlzLmhlYWRlclJlbW92ZUNvbnRlbnRQYWRkaW5nJCA9IHRoaXMuX2hlYWRlclJlbW92ZUNvbnRlbnRQYWRkaW5nU291cmNlXG4gICAgICAgICAgICAuYXNPYnNlcnZhYmxlKClcbiAgICAgICAgICAgIC5waXBlKGRlbGF5KDApLCB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpO1xuXG4gICAgICAgIHRoaXMuaGVhZGVyU3VidGl0bGUkID0gdGhpcy5oZWFkZXJMYXlvdXQkLnBpcGUoXG4gICAgICAgICAgICBtYXAoKGhlYWRlckxheW91dCkgPT4gZ2V0SGVhZGVyVmFsdWUoaGVhZGVyTGF5b3V0Py5TdWJUaXRsZSkpLFxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5hdmF0YXIkID0gdGhpcy5oZWFkZXJMYXlvdXQkLnBpcGUoXG4gICAgICAgICAgICBtYXAoKGhlYWRlckxheW91dCkgPT4gZ2V0SGVhZGVyVmFsdWUoaGVhZGVyTGF5b3V0Py5BdmF0YXIpKSxcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMubWFzayQgPSB0aGlzLl9tYXNrU291cmNlLmFzT2JzZXJ2YWJsZSgpLnBpcGUoZGVib3VuY2VUaW1lKDIwMCksIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSk7XG4gICAgfVxuICAgIGdldCBoaWRlUGluJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hpZGVQaW4kLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBnZXQgaGlkZUNsb3NlJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hpZGVDbG9zZSQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIGdldCBoaWRlVGl0bGUkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faGlkZVRpdGxlJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgZ2V0IGNhblNlbmQkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fY2FuU2VuZCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIGdldCBtbygpOiBNZXRhb2JqZWN0RGF0YU1vZGVsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21vU291cmNlLmdldFZhbHVlKCk7XG4gICAgfVxuICAgIHNldCBjb250ZXh0KHZhbDogYW55KSB7XG4gICAgICAgIGlmICh0aGlzLl9jb250ZXh0KSB7XG4gICAgICAgICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9jb250ZXh0U291cmNlLm5leHQodmFsKTtcbiAgICB9XG4gICAgc2V0Rm9ybUhlaWdodCh2YWw6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLl9mb3JtSGVpZ2h0U291cmNlLm5leHQodmFsKTtcbiAgICB9XG4gICAgZGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9jb250ZXh0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fY29udGV4dC51bignR3JvdXBCUnVsZUNoYW5nZWQnLCB0aGlzLl9ncm91cEJSdWxlQ2hhbmdlZCk7XG4gICAgICAgIHRoaXMuX2NvbnRleHQudW4oJ1RpdGxlQ2hhbmdlZCcsIHRoaXMuX3RpdGxlQ2hhbmdlZCk7XG4gICAgICAgIHRoaXMuX2NvbnRleHQudW4oJ1dpemFyZE5leHRTdGVwJywgdGhpcy5fd2l6YXJkTmV4dFN0ZXApO1xuICAgICAgICB0aGlzLl9jb250ZXh0LnVuKCdXaXphcmRQcmV2aW91c1N0ZXAnLCB0aGlzLl93aXphcmRQcmV2aW91c1N0ZXApO1xuICAgICAgICB0aGlzLl9jb250ZXh0LnVuKCdEb0xheW91dCcsIHRoaXMuX2RvTGF5b3V0KTtcbiAgICAgICAgdGhpcy5fY29udGV4dC51bignTWFza0NoYW5nZWQnLCB0aGlzLl9tYXNrQ2hhbmdlZCk7XG4gICAgICAgIHRoaXMuX2NvbnRleHQudW4oJ0ZvcmNlQ2xvc2UnLCB0aGlzLl9mb3JjZUNsb3NlKTtcbiAgICAgICAgdGhpcy5fY29udGV4dC50b29sYmFyLnVuKCdUb29sYmFySXRlbXNDaGFuZ2VkJywgdGhpcy5fdG9vbGJhckl0ZW1zQ2hhbmdlZCk7XG4gICAgICAgIHRoaXMuX2NvbnRleHQgPSBudWxsO1xuICAgICAgICB0aGlzLl9sYXlvdXRTb3VyY2UubmV4dChudWxsKTtcbiAgICAgICAgLy8gdGhpcy5fb25EZXN0cm95JC5uZXh0KCk7XG4gICAgfVxuXG4gICAgdG9vbGJhckNsaWNrKGJ0bik6IHZvaWQge1xuICAgICAgICBidG4uaGFuZGxlcihidG4sIHRoaXMuX2NvbnRleHQpO1xuICAgIH1cbiAgICB3ZkNob2ljZShidG4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY29udGV4dC5Xb3JrZmxvd1BhbmVsVWkuZmlyZUV2ZW50KCdDaG9pY2VTZWxlY3QnLCBidG4sIHRoaXMuX2NvbnRleHQpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfaW5pdGlhbGl6ZShjb250ZXh0OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fd29ya2Zsb3dQYW5lbFVpU291cmNlLm5leHQoY29udGV4dD8uV29ya2Zsb3dQYW5lbFVpKTtcbiAgICAgICAgdGhpcy5faXNTZWFyY2hQYW5lbFNvdXJjZS5uZXh0KGNvbnRleHQ/LlNldHRpbmc/LklzU2VhcmNoUGFuZWwpO1xuICAgICAgICB0aGlzLl9jYW5TZW5kJC5uZXh0KGNvbnRleHQ/LlNldHRpbmc/LkNhblNlbmQpO1xuICAgICAgICB0aGlzLl9zZWFyY2hQYW5lbElzT2JqZWN0U291cmNlLm5leHQoY29udGV4dD8uU2V0dGluZz8uUGFyYW1ldGVyVHlwZUlzT2JqZWN0KTtcbiAgICAgICAgdGhpcy5fbW9Tb3VyY2UubmV4dChjb250ZXh0Py5Nbyk7XG4gICAgICAgIHRoaXMuX3ZpZXdTb3VyY2UubmV4dChjb250ZXh0Py5TZXR0aW5nPy5WaWV3KTtcbiAgICAgICAgdGhpcy5fdG9vbGJhckl0ZW1zU291cmNlLm5leHQoY29udGV4dD8udG9vbGJhcj8uaXRlbXMpO1xuICAgICAgICBpZiAoY29udGV4dD8udG9vbGJhcikge1xuICAgICAgICAgICAgY29udGV4dC50b29sYmFyLm9uKHtcbiAgICAgICAgICAgICAgICBUb29sYmFySXRlbXNDaGFuZ2VkOiB0aGlzLl90b29sYmFySXRlbXNDaGFuZ2VkLmJpbmQodGhpcylcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3RpdGxlU291cmNlPy5uZXh0KGNvbnRleHQ/LnRpdGxlKTtcbiAgICAgICAgdGhpcy5fdG9vbGJhclZpc2libGVTb3VyY2UubmV4dCh0aGlzLl9nZXRUb29sYmFyVmlzaWJpbGl0eShjb250ZXh0KSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9wcmVwYXJlVmlldyh2aWV3KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2xheW91dFNvdXJjZS5uZXh0KHZpZXc/LkxheW91dDk0KTtcbiAgICAgICAgdGhpcy5fbWF4Q29udGVudFdpZHRoU291cmNlLm5leHQodGhpcy5fZ2V0TWF4Q29udGVudFdpZHRoKHZpZXcpKTtcbiAgICAgICAgdGhpcy5faXNTaW1wbGVGb3JtU291cmNlLm5leHQodGhpcy5fZ2V0SXNTaW1wbGVGb3JtKHZpZXcpKTtcbiAgICAgICAgdGhpcy5faGVhZGVyTGF5b3V0U291cmNlLm5leHQodGhpcy5fZ2V0SGVhZGVyTGF5b3V0KHZpZXcpKTtcbiAgICAgICAgdGhpcy5fZm9ybVdpZHRoU291cmNlLm5leHQodmlldz8uaW5EaWFsb2cgPyB2aWV3LkxheW91dDk0LkJvdW5kcy53aWR0aCArICdweCcgOiAnMTAwJScpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX2ZpbHRlclRvb2xiYXJJdGVtcyhpdGVtczogQXJyYXk8YW55Pik6IEFycmF5PGFueT4ge1xuICAgICAgICBpZiAoIWl0ZW1zKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cbiAgICAgICAgLy8g2K/YsSDYtdmI2LHYqtuMINqp2Ycg2K/YsSDZhdmI2KjYp9uM2YQg2KjYp9i02K8g2K/ZiCDYr9qp2YXZhyDZhtmF2KfbjNi0INiv2KfYr9mHINi02YjYryDYp9iyINiv2qnZhdmHINmH2KfbjCDaqdin2LHYqNixINmIINmB2LHYotuM2YbYr9uMXG4gICAgICAgIC8vINiv2LEg2LXZiNix2KrbjCDaqdmHINiv2qnZhdmHINuMINmI2KzZiNivINmG2K/Yp9i02Kog2YHZgti3INiv2qnZhdmHINiw2K7bjNix2Ycg2YbZhdin24zYtCDYr9in2K/ZhyDYtNmI2K9cbiAgICAgICAgLy8g2K/YsSDYrdin2YTYqtmH2KfbjCDYr9uM2q/YsSDYp9io2KrYr9inINiv2qnZhdmHINmH2KfbjCDaqdin2LHYqNix24wg2Ygg2YHYsdii24zZhtiv24wg2Ygg2KjYudivINiv2qnZhdmHINmH2KfbjCDYqti52LHbjNmBINi02K/ZhyDYs9uM2LPYqtmFINmG2YXYp9uM2LQg2K/Yp9iv2Ycg2YXbjNi02YjYry5cbiAgICAgICAgY29uc3QgaXNNb2JpbGUgPSBnZXREZXZpY2VJc01vYmlsZSgpO1xuICAgICAgICBsZXQgbmV3SXRlbXMgPSBpdGVtcy5maWx0ZXIoXG4gICAgICAgICAgICAoYykgPT4gIWMuaGlkZGVuICYmICEoaXNNb2JpbGUgJiYgKGMuaXRlbUlkID09PSAnTmV4dCcgfHwgYy5pdGVtSWQgPT09ICdQcmV2aW91cycpKVxuICAgICAgICApO1xuXG4gICAgICAgIG5ld0l0ZW1zLnNvcnQoKGMsIGQpOiBudW1iZXIgPT4gKE51bWJlcihjPy5EYXRhPy5UYWJPcmRlck51bWJlcikgPCBOdW1iZXIoZD8uRGF0YT8uVGFiT3JkZXJOdW1iZXIpID8gMSA6IC0xKSk7XG4gICAgICAgIGNvbnN0IG5vblN0cmluZ0l0ZW1zID0gbmV3SXRlbXMuZmlsdGVyKChjKSA9PiB0eXBlb2YgYyAhPT0gJ3N0cmluZycpO1xuXG4gICAgICAgIGNvbnN0IHQgPSBub25TdHJpbmdJdGVtcy5maW5kKChjKSA9PiAhYy5pc0J1aWx0aW4gJiYgIWMuSUFtTWVudSk7XG4gICAgICAgIGlmICh0KSB7XG4gICAgICAgICAgICB0LnByaW9yaXR5ID0gJ2hpZ2gnO1xuICAgICAgICB9XG4gICAgICAgIGxldCBub25CdWlsdGluQ291bnQgPSAwO1xuICAgICAgICBub25TdHJpbmdJdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGl0ZW0gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGl0ZW0uaXNCdWlsdGluKSB7XG4gICAgICAgICAgICAgICAgLy8g2LPbjNiz2KrZhduMXG4gICAgICAgICAgICAgICAgaXRlbS5wcmlvcml0eSA9ICdhbHdheXMnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAobm9uQnVpbHRpbkNvdW50ID4gMSkge1xuICAgICAgICAgICAgICAgICAgICAvLyDYr9qp2YXZhyDZh9in24wg2qnYp9ix2KjYsduMINqp2Ycg2KjbjNi02KrYsSDYp9iyINiv2Ygg2YfYs9iq2YbYr1xuICAgICAgICAgICAgICAgICAgICBpdGVtLnByaW9yaXR5ID0gJ2xvdyc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5wcmlvcml0eSA9ICdhbHdheXMnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBub25CdWlsdGluQ291bnQrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChub25CdWlsdGluQ291bnQgPT09IDApIHtcbiAgICAgICAgICAgIC8vINin2q/YsSDZh9uM2oYg2K/aqdmF2Ycg2qnYp9ix2KjYsduMINmI2KzZiNivINmG2K/Yp9i02KpcbiAgICAgICAgICAgIG5vblN0cmluZ0l0ZW1zLmZvckVhY2goKGl0ZW0sIF8pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaXRlbS5pdGVtSWQgPT09ICdTYXZlJykge1xuICAgICAgICAgICAgICAgICAgICBpdGVtLnByaW9yaXR5ID0gJ25ldmVyJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzYXZlQW5kTmV3ID0gbmV3SXRlbXMuZmluZCgoYykgPT4gYy5pdGVtSWQgPT09ICdTYXZlQW5kTmV3Jyk7XG4gICAgICAgIGNvbnN0IHNhdmVBbmRDbG9zZSA9IG5ld0l0ZW1zLmZpbmQoKGMpID0+IGMuaXRlbUlkID09PSAnU2F2ZUFuZENsb3NlJyk7XG4gICAgICAgIGlmIChzYXZlQW5kQ2xvc2UgJiYgc2F2ZUFuZENsb3NlLm1lbnUpIHtcbiAgICAgICAgICAgIGNvbnN0IHNhdmUgPSBzYXZlQW5kQ2xvc2UubWVudS5pdGVtc1swXTtcbiAgICAgICAgICAgIGlmIChzYXZlKSB7XG4gICAgICAgICAgICAgICAgc2F2ZS5pc0J1aWx0aW4gPSB0cnVlO1xuICAgICAgICAgICAgICAgIHNhdmUucHJpb3JpdHkgPSBub25CdWlsdGluQ291bnQgPT09IDAgPyAnbmV2ZXInIDogJ2Fsd2F5cyc7XG5cbiAgICAgICAgICAgICAgICBuZXdJdGVtcy5wdXNoKHNhdmUpO1xuICAgICAgICAgICAgICAgIGlmIChzYXZlQW5kTmV3KSB7XG4gICAgICAgICAgICAgICAgICAgIHNhdmUuSUFtTWVudSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHNhdmUubWVudSA9IHsgaXRlbXM6IFt7IC4uLnNhdmVBbmROZXcgfV0gfTtcbiAgICAgICAgICAgICAgICAgICAgbmV3SXRlbXMgPSBuZXdJdGVtcy5maWx0ZXIoKGMpID0+IGMuaXRlbUlkICE9PSAnU2F2ZUFuZE5ldycpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBuZXdJdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBpZiAoaXRlbS5tZW51KSB7XG4gICAgICAgICAgICAgICAgaXRlbS5tZW51Lml0ZW1zID0gaXRlbS5tZW51Lml0ZW1zLmZpbHRlcigoYykgPT4gIWMuaGlkZGVuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGJ1aWx0aW5zQnV0dG9ucyA9IG5ld0l0ZW1zLmZpbHRlcigoYykgPT4gYz8uaXNCdWlsdGluKTtcbiAgICAgICAgbmV3SXRlbXMgPSBbXG4gICAgICAgICAgICAuLi5idWlsdGluc0J1dHRvbnMsXG4gICAgICAgICAgICAuLi5uZXdJdGVtcy5maWx0ZXIoKGMpID0+ICFjPy5pc0J1aWx0aW4gJiYgIWM/LmlzV29ya2Zsb3cpLFxuICAgICAgICAgICAgLi4ubmV3SXRlbXMuZmlsdGVyKChjKSA9PiBjPy5pc1dvcmtmbG93KVxuICAgICAgICBdO1xuICAgICAgICBjb25zdCBtb3ZlTmV4dEluZGV4ID0gbmV3SXRlbXMuZmluZEluZGV4KChjKSA9PiBjLml0ZW1JZCA9PT0gJ01vdmVOZXh0Jyk7XG4gICAgICAgIGlmIChtb3ZlTmV4dEluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgIGNvbnN0IG1vcyA9IG5ld0l0ZW1zLnNwbGljZShtb3ZlTmV4dEluZGV4IC0gMSwgMik7XG4gICAgICAgICAgICBuZXdJdGVtcyA9IFsuLi5tb3MsIC4uLm5ld0l0ZW1zXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuZXdJdGVtcy5yZXZlcnNlKCk7XG4gICAgICAgIC8vIHJldHVybiBuZXdJdGVtcy5zb3J0KChhKTogbnVtYmVyID0+ICh0eXBlb2YgYSA9PSAnc3RyaW5nJyA/IDAgOiBhLklBbU1lbnUgPyAxIDogLTEpKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9nZXRIZWFkZXJMYXlvdXQodmlldyk6IElIZWFkZXJMYXlvdXQge1xuICAgICAgICBjb25zdCBoZWFkZXJMYXlvdXQgPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZSh2aWV3LCAnSGVhZGVyTGF5b3V0JywgbnVsbCk7XG5cbiAgICAgICAgaWYgKGhlYWRlckxheW91dCkge1xuICAgICAgICAgICAgLy8gdGhpcy5zZXRIZWFkZXJUaXRsZUFuZFN1YnRpdGxlQW5kQXZhdGFyKGhlYWRlckxheW91dCk7XG4gICAgICAgICAgICBjb25zdCB0OiBhbnlbXSA9IFtdO1xuICAgICAgICAgICAgaGVhZGVyTGF5b3V0LkZhY2V0TGlzdC5Nb0RhdGFMaXN0LmZvckVhY2goKGZhY2V0Q29sdW1uKSA9PiB7XG4gICAgICAgICAgICAgICAgdC5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogZmFjZXRDb2x1bW4uQ29sdW1uU2V0dGluZ3MuJEZvcm1QYW5lbFNldHRpbmcuRGF0YS5Nby5UeXBlLFxuICAgICAgICAgICAgICAgICAgICBtbzogZmFjZXRDb2x1bW4uQ29sdW1uU2V0dGluZ3MuJEZvcm1QYW5lbFNldHRpbmcuRGF0YS5Nb1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBoZWFkZXJMYXlvdXQuRmFjZXRMaXN0MiA9IHQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGhlYWRlckxheW91dDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX2dldElzU2ltcGxlRm9ybSh2aWV3OiBGb3JtVmlld1NldHRpbmcpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgaXNTaW1wbGUgPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZSh2aWV3LCAnRXh0cmFKc29uUHJvcC5Jc1NpbXBsZScsIGZhbHNlKTtcbiAgICAgICAgcmV0dXJuIGlzU2ltcGxlO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX2dldFRvb2xiYXJWaXNpYmlsaXR5KGNvbnRleHQpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCFjb250ZXh0KSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaGlkZVRvb2xiYXIgPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZShjb250ZXh0LCAndG9vbGJhci5oaWRlVG9vbGJhcicsIGZhbHNlKTtcbiAgICAgICAgaWYgKGhpZGVUb29sYmFyKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyBGb3JtU2V0dGluZ3MgfSA9IGNvbnRleHQuU2V0dGluZy5WaWV3O1xuICAgICAgICBpZiAoRm9ybVNldHRpbmdzKSB7XG4gICAgICAgICAgICBjb25zdCBzaG93VG9vbGJhciA9IEZvcm1TZXR0aW5ncy5TaG93VG9vbGJhciA9PT0gZmFsc2UgPyBmYWxzZSA6IHRydWU7XG4gICAgICAgICAgICBjb25zdCBmZWF0dXJlVG9vbGJhciA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKGNvbnRleHQsICdGZWF0dXJlcy5Ub29sYmFyJywgZmFsc2UpO1xuXG4gICAgICAgICAgICBjb25zdCB2aXNpYmxlID0gKGZlYXR1cmVUb29sYmFyICYmIHNob3dUb29sYmFyKSAhPT0gZmFsc2U7XG4gICAgICAgICAgICByZXR1cm4gdmlzaWJsZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9nZXRNYXhDb250ZW50V2lkdGgodmlldyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IG1heENvbnRlbnRXaWR0aCA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKHZpZXcsICdFeHRyYUpzb25Qcm9wLk1heFdpZHRoJywgJzAnKTtcbiAgICAgICAgcmV0dXJuIG1heENvbnRlbnRXaWR0aDtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9hZGRMaXN0ZW5lcihjb250ZXh0KTogdm9pZCB7XG4gICAgICAgIGlmICghY29udGV4dCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnRleHQub24oe1xuICAgICAgICAgICAgR3JvdXBCUnVsZUNoYW5nZWQ6IHRoaXMuX2dyb3VwQlJ1bGVDaGFuZ2VkLmJpbmQodGhpcyksXG4gICAgICAgICAgICBUaXRsZUNoYW5nZWQ6IHRoaXMuX3RpdGxlQ2hhbmdlZC5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgV2l6YXJkTmV4dFN0ZXA6IHRoaXMuX3dpemFyZE5leHRTdGVwLmJpbmQodGhpcyksXG4gICAgICAgICAgICBXaXphcmRQcmV2aW91c1N0ZXA6IHRoaXMuX3dpemFyZFByZXZpb3VzU3RlcC5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgRG9MYXlvdXQ6IHRoaXMuX2RvTGF5b3V0LmJpbmQodGhpcyksXG4gICAgICAgICAgICBNYXNrQ2hhbmdlZDogdGhpcy5fbWFza0NoYW5nZWQuYmluZCh0aGlzKSxcbiAgICAgICAgICAgIEZvcmNlQ2xvc2U6IHRoaXMuX2ZvcmNlQ2xvc2UuYmluZCh0aGlzKSxcbiAgICAgICAgICAgIFJlZnJlc2g6IHRoaXMuX3JlZnJlc2guYmluZCh0aGlzKVxuICAgICAgICB9KTtcbiAgICAgICAgY29udGV4dC50b29sYmFyLm9uKHtcbiAgICAgICAgICAgIFRvb2xiYXJJdGVtc0NoYW5nZWQ6IHRoaXMuX3Rvb2xiYXJJdGVtc0NoYW5nZWQuYmluZCh0aGlzKVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9yZWZyZXNoKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9pbml0aWFsaXplKHRoaXMuX2NvbnRleHQpO1xuICAgICAgICAvLyB0aGlzLl9wcmVwYXJlVmlldyh0aGlzLl9jb250ZXh0LlNldHRpbmcuVmlldyk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfZm9yY2VDbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZm9yY2VDbG9zZVNvdXJjZS5uZXh0KCk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfbWFza0NoYW5nZWQobWFzayk6IHZvaWQge1xuICAgICAgICB0aGlzLl9tYXNrU291cmNlLm5leHQobWFzayk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfdG9vbGJhckl0ZW1zQ2hhbmdlZChpdGVtcyk6IHZvaWQge1xuICAgICAgICB0aGlzLl90b29sYmFySXRlbXNTb3VyY2UubmV4dChpdGVtcyk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfdGl0bGVDaGFuZ2VkKHRpdGxlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RpdGxlU291cmNlLm5leHQodGl0bGUpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX3dpemFyZE5leHRTdGVwKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl93aXphcmROZXh0U3RlcFNvdXJjZS5uZXh0KCk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfd2l6YXJkUHJldmlvdXNTdGVwKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl93aXphcmRQcmV2aW91c1N0ZXBTb3VyY2UubmV4dCgpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX2RvTGF5b3V0KGNvbnRleHQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdmlldyA9IGNvbnRleHQuU2V0dGluZy5WaWV3O1xuICAgICAgICB0aGlzLl92aWV3U291cmNlLm5leHQodmlldyk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfZ3JvdXBCUnVsZUNoYW5nZWQoZ3JvdXBJdGVtOiBMYXlvdXRTZXR0aW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2dyb3VwQlJ1bGVTb3VyY2UubmV4dChncm91cEl0ZW0pO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX3ByZXBhcmVDb250ZXh0KGNvbnRleHQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fYWRkTGlzdGVuZXIoY29udGV4dCk7XG4gICAgICAgIHRoaXMuX2luaXRpYWxpemUoY29udGV4dCk7XG4gICAgICAgIHRoaXMuX2NvbnRleHQgPSBjb250ZXh0O1xuICAgIH1cbn1cbiJdfQ==
313
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1wYW5lbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etbm92aW4tcmF5LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9mb3JtLXBhbmVsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQWMsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFOUUsTUFBTSxPQUFPLGdCQUFpQixTQUFRLGFBQWE7SUEwRC9DO1FBQ0ksS0FBSyxFQUFFLENBQUM7UUF4Q1osZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNsRCxnQkFBVyxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ2xELGNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQVd4QyxtQkFBYyxHQUFHLElBQUksZUFBZSxDQUFNLElBQUksQ0FBQyxDQUFDO1FBQ2hELHNCQUFpQixHQUFHLElBQUksZUFBZSxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ25ELCtCQUEwQixHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ2pFLHlCQUFvQixHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQzNELDJCQUFzQixHQUFHLElBQUksZUFBZSxDQUFNLElBQUksQ0FBQyxDQUFDO1FBQ3hELGNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBTSxJQUFJLENBQUMsQ0FBQztRQUMzQyxnQkFBVyxHQUFHLElBQUksZUFBZSxDQUFNLElBQUksQ0FBQyxDQUFDO1FBQzdDLHdCQUFtQixHQUFHLElBQUksZUFBZSxDQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3JELGlCQUFZLEdBQUcsSUFBSSxlQUFlLENBQVMsRUFBRSxDQUFDLENBQUM7UUFDL0MsMkJBQXNCLEdBQUcsSUFBSSxlQUFlLENBQVMsTUFBTSxDQUFDLENBQUM7UUFDN0QsMEJBQXFCLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUM1Qyw4QkFBeUIsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ2hELGtCQUFhLEdBQUcsSUFBSSxlQUFlLENBQU0sSUFBSSxDQUFDLENBQUM7UUFDL0Msc0JBQWlCLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUN4QyxzQkFBaUIsR0FBRyxJQUFJLE9BQU8sRUFBaUIsQ0FBQztRQUNqRCx3QkFBbUIsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUMxRCxxQkFBZ0IsR0FBRyxJQUFJLGVBQWUsQ0FBUyxNQUFNLENBQUMsQ0FBQztRQUN2RCwwQkFBcUIsR0FBRyxJQUFJLGVBQWUsQ0FBVSxJQUFJLENBQUMsQ0FBQztRQUMzRCx3QkFBbUIsR0FBRyxJQUFJLGVBQWUsQ0FBTSxJQUFJLENBQUMsQ0FBQztRQUNyRCx1QkFBa0IsR0FBRyxJQUFJLGVBQWUsQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUNyRCxnQkFBVyxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ2xELHNDQUFpQyxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ3hFLDZCQUF3QixHQUFHLElBQUksZUFBZSxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQzNELGNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUtwRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUNuRCxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsRUFDL0MsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FDOUIsQ0FBQztRQUVGLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUM3RyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ2pHLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUNyRyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN6RCxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUMzRSxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUMzQixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFDeEIsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FDOUIsQ0FBQztRQUVGLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQzdDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUN0QyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUM5QixDQUFDO1FBRUYsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUM3RCxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUMvQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUM5QixDQUFDO1FBQ0YsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQ2hFLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQy9DLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQ2pELFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQzlCLENBQUM7UUFFRixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FDbkUsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFDL0MsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FDOUIsQ0FBQztRQUVGLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDbkcsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQzNHLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQ2pELEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ1gsSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDVCxPQUFPLE1BQU0sQ0FBQzthQUNqQjtZQUNELE1BQU0sV0FBVyxHQUFHLFdBQVcsRUFBRSxDQUFDO1lBQ2xDLElBQUksV0FBVyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFO2dCQUNuQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxXQUFXLENBQUM7YUFDckM7WUFDRCxPQUFPLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQztRQUN6QixDQUFDLENBQUMsRUFDRixTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUM5QixDQUFDO1FBRUYsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUUzRixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBRTVGLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFFL0YsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUV6RixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ25HLElBQUksQ0FBQyxNQUFNLEdBQUcsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDeEcsR0FBRyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQ2xFLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQzlCLENBQUM7UUFDRixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQzdELE1BQU0sQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUN4QyxHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQ3hGLEdBQUcsQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLFNBQVMsQ0FBQyxDQUFDLEVBQ3JFLEdBQUcsQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLFNBQVMsQ0FBQyxDQUFDLEVBQ3JFLEdBQUcsQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDLEVBQ2pFLEdBQUcsQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFDcEcsR0FBRyxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FDakIsSUFBSSxDQUFDLGlDQUFpQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLG9CQUFvQixDQUFDLENBQUMsQ0FDbEcsRUFDRCxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUM5QixDQUFDO1FBRUYsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBRXpHLElBQUksQ0FBQywyQkFBMkIsR0FBRyxJQUFJLENBQUMsaUNBQWlDO2FBQ3BFLFlBQVksRUFBRTthQUNkLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBRWpELElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQzFDLEdBQUcsQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQyxFQUM3RCxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUM5QixDQUFDO1FBRUYsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FDbEMsR0FBRyxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDLEVBQzNELFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQzlCLENBQUM7UUFFRixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDdEcsQ0FBQztJQUNELElBQUksUUFBUTtRQUNSLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBQ0QsSUFBSSxVQUFVO1FBQ1YsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFDRCxJQUFJLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUNELElBQUksUUFBUTtRQUNSLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBQ0QsSUFBSSxFQUFFO1FBQ0YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFDRCxJQUFJLE9BQU8sQ0FBQyxHQUFRO1FBQ2hCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNmLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUNsQjtRQUNELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFDRCxhQUFhLENBQUMsR0FBVztRQUNyQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFDRCxPQUFPO1FBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDaEIsT0FBTztTQUNWO1FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLHFCQUFxQixFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzNFLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlCLDJCQUEyQjtJQUMvQixDQUFDO0lBRUQsWUFBWSxDQUFDLEdBQUc7UUFDWixHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUNELFFBQVEsQ0FBQyxHQUFHO1FBQ1IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLGNBQWMsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFUyxXQUFXLENBQUMsT0FBWTtRQUM5QixJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxlQUFlLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUscUJBQXFCLENBQUMsQ0FBQztRQUM5RSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDdkQsSUFBSSxPQUFPLEVBQUUsT0FBTyxFQUFFO1lBQ2xCLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUNmLG1CQUFtQixFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2FBQzVELENBQUMsQ0FBQztTQUNOO1FBQ0QsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVTLFlBQVksQ0FBQyxJQUFJO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVGLENBQUM7SUFDUyxtQkFBbUIsQ0FBQyxLQUFpQjtRQUMzQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1IsT0FBTyxFQUFFLENBQUM7U0FDYjtRQUNELGdGQUFnRjtRQUNoRiw4REFBOEQ7UUFDOUQsbUdBQW1HO1FBQ25HLE1BQU0sUUFBUSxHQUFHLGlCQUFpQixFQUFFLENBQUM7UUFDckMsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FDdkIsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxNQUFNLElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUN0RixDQUFDO1FBRUYsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQVUsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsY0FBYyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlHLE1BQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDO1FBRXJFLE1BQU0sQ0FBQyxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsRUFBRTtZQUNILENBQUMsQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDO1NBQ3ZCO1FBQ0QsSUFBSSxlQUFlLEdBQUcsQ0FBQyxDQUFDO1FBQ3hCLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUM1QixJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRTtnQkFDMUIsT0FBTzthQUNWO1lBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNoQixTQUFTO2dCQUNULElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO2FBQzVCO2lCQUFNO2dCQUNILElBQUksZUFBZSxHQUFHLENBQUMsRUFBRTtvQkFDckIsdUNBQXVDO29CQUN2QyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztpQkFDekI7cUJBQU07b0JBQ0gsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7aUJBQzVCO2dCQUNELGVBQWUsRUFBRSxDQUFDO2FBQ3JCO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLGVBQWUsS0FBSyxDQUFDLEVBQUU7WUFDdkIsaUNBQWlDO1lBQ2pDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQy9CLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxNQUFNLEVBQUU7b0JBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO2lCQUMzQjtZQUNMLENBQUMsQ0FBQyxDQUFDO1NBQ047UUFDRCxNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLFlBQVksQ0FBQyxDQUFDO1FBQ25FLE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssY0FBYyxDQUFDLENBQUM7UUFDdkUsSUFBSSxZQUFZLElBQUksWUFBWSxDQUFDLElBQUksRUFBRTtZQUNuQyxNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN4QyxJQUFJLElBQUksRUFBRTtnQkFDTixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztnQkFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxlQUFlLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztnQkFFM0QsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDcEIsSUFBSSxVQUFVLEVBQUU7b0JBQ1osSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7b0JBQ3BCLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsVUFBVSxFQUFFLENBQUMsRUFBRSxDQUFDO29CQUMzQyxRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxZQUFZLENBQUMsQ0FBQztpQkFDaEU7YUFDSjtTQUNKO1FBQ0QsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3RCLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDWCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQzlEO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLGVBQWUsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDN0QsUUFBUSxHQUFHO1lBQ1AsR0FBRyxlQUFlO1lBQ2xCLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxJQUFJLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQztZQUMxRCxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxVQUFVLENBQUM7U0FDM0MsQ0FBQztRQUNGLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssVUFBVSxDQUFDLENBQUM7UUFDekUsSUFBSSxhQUFhLEdBQUcsQ0FBQyxDQUFDLEVBQUU7WUFDcEIsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2xELFFBQVEsR0FBRyxDQUFDLEdBQUcsR0FBRyxFQUFFLEdBQUcsUUFBUSxDQUFDLENBQUM7U0FDcEM7UUFFRCxPQUFPLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMxQix3RkFBd0Y7SUFDNUYsQ0FBQztJQUNTLGdCQUFnQixDQUFDLElBQUk7UUFDM0IsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFbEYsSUFBSSxZQUFZLEVBQUU7WUFDZCx5REFBeUQ7WUFDekQsTUFBTSxDQUFDLEdBQVUsRUFBRSxDQUFDO1lBQ3BCLFlBQVksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFO2dCQUN0RCxDQUFDLENBQUMsSUFBSSxDQUFDO29CQUNILElBQUksRUFBRSxXQUFXLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSTtvQkFDL0QsRUFBRSxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUU7aUJBQzNELENBQUMsQ0FBQztZQUNQLENBQUMsQ0FBQyxDQUFDO1lBQ0gsWUFBWSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7U0FDL0I7UUFDRCxPQUFPLFlBQVksQ0FBQztJQUN4QixDQUFDO0lBRVMsZ0JBQWdCLENBQUMsSUFBcUI7UUFDNUMsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSx3QkFBd0IsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN6RixPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0lBQ1MscUJBQXFCLENBQUMsT0FBTztRQUNuQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1YsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFDRCxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVGLElBQUksV0FBVyxFQUFFO1lBQ2IsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFDRCxNQUFNLEVBQUUsWUFBWSxFQUFFLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDOUMsSUFBSSxZQUFZLEVBQUU7WUFDZCxNQUFNLFdBQVcsR0FBRyxZQUFZLENBQUMsV0FBVyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDdEUsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUU1RixNQUFNLE9BQU8sR0FBRyxDQUFDLGNBQWMsSUFBSSxXQUFXLENBQUMsS0FBSyxLQUFLLENBQUM7WUFDMUQsT0FBTyxPQUFPLENBQUM7U0FDbEI7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQ1MsbUJBQW1CLENBQUMsSUFBSTtRQUM5QixNQUFNLGVBQWUsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLHdCQUF3QixFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzlGLE9BQU8sZUFBZSxDQUFDO0lBQzNCLENBQUM7SUFDUyxZQUFZLENBQUMsT0FBTztRQUMxQixJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1YsT0FBTztTQUNWO1FBQ0QsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNQLGlCQUFpQixFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ3JELFlBQVksRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDM0MsY0FBYyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUMvQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUN2RCxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ25DLFdBQVcsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDekMsVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUN2QyxPQUFPLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQ3BDLENBQUMsQ0FBQztRQUNILE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ2YsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDNUQsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNTLFFBQVE7UUFDZCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoQyxpREFBaUQ7SUFDckQsQ0FBQztJQUNTLFdBQVc7UUFDakIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFDUyxZQUFZLENBQUMsSUFBSTtRQUN2QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBQ1Msb0JBQW9CLENBQUMsS0FBSztRQUNoQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFDUyxhQUFhLENBQUMsS0FBSztRQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBQ1MsZUFBZTtRQUNyQixJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUNTLG1CQUFtQjtRQUN6QixJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUNTLFNBQVMsQ0FBQyxPQUFPO1FBQ3ZCLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFDUyxrQkFBa0IsQ0FBQyxTQUF3QjtRQUNqRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFDUyxlQUFlLENBQUMsT0FBTztRQUM3QixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7SUFDNUIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0LCBPYnNlcnZhYmxlLCBjb21iaW5lTGF0ZXN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRlbGF5LCBmaWx0ZXIsIG1hcCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBGb3JtVmlld1NldHRpbmcsIElIZWFkZXJMYXlvdXQsIExheW91dFNldHRpbmcsIE1ldGFvYmplY3REYXRhTW9kZWwgfSBmcm9tICcuLi9hYnN0cmFjdC1jbGFzc2VzL21vZGVscyc7XG5pbXBvcnQgeyBCYXJzYUFwaSB9IGZyb20gJy4uL2Fic3RyYWN0LWNsYXNzZXMvYmFyc2EtYXBpJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi9hYnN0cmFjdC1jbGFzc2VzL2Jhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IERldmljZVdpZHRoLCBnZXREZXZpY2VJc01vYmlsZSwgZ2V0SGVhZGVyVmFsdWUgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuXG5leHBvcnQgY2xhc3MgRm9ybVBhbmVsU2VydmljZSBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuICAgIGNvbnRleHQkOiBPYnNlcnZhYmxlPGFueT47XG4gICAgc2VhcmNoUGFuZWxJc09iamVjdCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgaXNTZWFyY2hQYW5lbCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgd29ya2Zsb3dQYW5lbFVpJDogT2JzZXJ2YWJsZTxhbnk+O1xuICAgIG1vJDogT2JzZXJ2YWJsZTxNZXRhb2JqZWN0RGF0YU1vZGVsPjtcbiAgICB2aWV3JDogT2JzZXJ2YWJsZTxhbnk+O1xuICAgIHRvb2xiYXJJdGVtcyQ6IE9ic2VydmFibGU8YW55W10+O1xuICAgIHdvcmtmbG93QnV0dG9ucyQ6IE9ic2VydmFibGU8YW55W10+O1xuICAgIG1heENvbnRlbnRXaWR0aCQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgICB3aXphcmROZXh0U3RlcCQ6IE9ic2VydmFibGU8dm9pZD47XG4gICAgd2l6YXJkUHJldmlvdXNTdGVwJDogT2JzZXJ2YWJsZTx2b2lkPjtcbiAgICBsYXlvdXQkOiBPYnNlcnZhYmxlPGFueT47XG4gICAgZm9yY2VDbG9zZSQ6IE9ic2VydmFibGU8dm9pZD47XG4gICAgZ3JvdXBMYXlvdXQkOiBPYnNlcnZhYmxlPExheW91dFNldHRpbmc+O1xuICAgIGlzU2ltcGxlRm9ybSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgZm9ybVdpZHRoJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICAgIHRvb2xiYXJWaXNpYmxlJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICBoZWFkZXJMYXlvdXQkOiBPYnNlcnZhYmxlPElIZWFkZXJMYXlvdXQ+O1xuICAgIF9oaWRlQ2xvc2UkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gICAgX2hpZGVUaXRsZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICBfaGlkZVBpbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICB0aXRsZSQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgICBoZWFkZXJEZXNjcmlwdGlvbiQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgICBoZWFkZXJSZW1vdmVDb250ZW50UGFkZGluZyQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgaGVhZGVyU3VidGl0bGUkOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gICAgYXZhdGFyJDogT2JzZXJ2YWJsZTxhbnk+O1xuICAgIG1hc2skOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIGZvcm1IZWlnaHQkOiBPYnNlcnZhYmxlPG51bWJlcj47XG4gICAgZmllbGREaWN0JDogT2JzZXJ2YWJsZTx7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHwgdW5kZWZpbmVkPjtcblxuICAgIHByaXZhdGUgX2NvbnRleHQ7XG4gICAgcHJpdmF0ZSBfY29udGV4dFNvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcbiAgICBwcml2YXRlIF9mb3JtSGVpZ2h0U291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApO1xuICAgIHByaXZhdGUgX3NlYXJjaFBhbmVsSXNPYmplY3RTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICBwcml2YXRlIF9pc1NlYXJjaFBhbmVsU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gICAgcHJpdmF0ZSBfd29ya2Zsb3dQYW5lbFVpU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpO1xuICAgIHByaXZhdGUgX21vU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpO1xuICAgIHByaXZhdGUgX3ZpZXdTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbCk7XG4gICAgcHJpdmF0ZSBfdG9vbGJhckl0ZW1zU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnlbXT4oW10pO1xuICAgIHByaXZhdGUgX3RpdGxlU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcbiAgICBwcml2YXRlIF9tYXhDb250ZW50V2lkdGhTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJ2F1dG8nKTtcbiAgICBwcml2YXRlIF93aXphcmROZXh0U3RlcFNvdXJjZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgcHJpdmF0ZSBfd2l6YXJkUHJldmlvdXNTdGVwU291cmNlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICBwcml2YXRlIF9sYXlvdXRTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbCk7XG4gICAgcHJpdmF0ZSBfZm9yY2VDbG9zZVNvdXJjZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgcHJpdmF0ZSBfZ3JvdXBCUnVsZVNvdXJjZSA9IG5ldyBTdWJqZWN0PExheW91dFNldHRpbmc+KCk7XG4gICAgcHJpdmF0ZSBfaXNTaW1wbGVGb3JtU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gICAgcHJpdmF0ZSBfZm9ybVdpZHRoU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcxMDAlJyk7XG4gICAgcHJpdmF0ZSBfdG9vbGJhclZpc2libGVTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuICAgIHByaXZhdGUgX2hlYWRlckxheW91dFNvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcbiAgICBwcml2YXRlIF9oZWFkZXJUaXRsZVNvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG4gICAgcHJpdmF0ZSBfbWFza1NvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIHByaXZhdGUgX2hlYWRlclJlbW92ZUNvbnRlbnRQYWRkaW5nU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gICAgcHJpdmF0ZSBfaGVhZGVyRGVzY3JpcHRpb25Tb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xuICAgIHByaXZhdGUgX2NhblNlbmQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gICAgZm9ybUNvbnRhaW5lckRvbTogSFRNTEVsZW1lbnQ7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5jb250ZXh0JCA9IHRoaXMuX2NvbnRleHRTb3VyY2UuYXNPYnNlcnZhYmxlKCkucGlwZShcbiAgICAgICAgICAgIHRhcCgoY29udGV4dCkgPT4gdGhpcy5fcHJlcGFyZUNvbnRleHQoY29udGV4dCkpLFxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5zZWFyY2hQYW5lbElzT2JqZWN0JCA9IHRoaXMuX3NlYXJjaFBhbmVsSXNPYmplY3RTb3VyY2UuYXNPYnNlcnZhYmxlKCkucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpO1xuICAgICAgICB0aGlzLmlzU2VhcmNoUGFuZWwkID0gdGhpcy5faXNTZWFyY2hQYW5lbFNvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSk7XG4gICAgICAgIHRoaXMud29ya2Zsb3dQYW5lbFVpJCA9IHRoaXMuX3dvcmtmbG93UGFuZWxVaVNvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSk7XG4gICAgICAgIHRoaXMuZm9ybUhlaWdodCQgPSB0aGlzLl9mb3JtSGVpZ2h0U291cmNlLmFzT2JzZXJ2YWJsZSgpO1xuICAgICAgICB0aGlzLm1vJCA9IHRoaXMuX21vU291cmNlLmFzT2JzZXJ2YWJsZSgpLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKTtcbiAgICAgICAgdGhpcy5maWVsZERpY3QkID0gdGhpcy5tbyQucGlwZShcbiAgICAgICAgICAgIG1hcCgoYykgPT4gYy4kRmllbGREaWN0KSxcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMudmlldyQgPSB0aGlzLl92aWV3U291cmNlLmFzT2JzZXJ2YWJsZSgpLnBpcGUoXG4gICAgICAgICAgICB0YXAoKHZpZXcpID0+IHRoaXMuX3ByZXBhcmVWaWV3KHZpZXcpKSxcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMudG9vbGJhckl0ZW1zJCA9IHRoaXMuX3Rvb2xiYXJJdGVtc1NvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKFxuICAgICAgICAgICAgbWFwKChpdGVtcykgPT4gdGhpcy5fZmlsdGVyVG9vbGJhckl0ZW1zKGl0ZW1zKSksXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JClcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy53b3JrZmxvd0J1dHRvbnMkID0gdGhpcy5fdG9vbGJhckl0ZW1zU291cmNlLmFzT2JzZXJ2YWJsZSgpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKGl0ZW1zKSA9PiB0aGlzLl9maWx0ZXJUb29sYmFySXRlbXMoaXRlbXMpKSxcbiAgICAgICAgICAgIG1hcCgoaXRlbXMpID0+IGl0ZW1zLmZpbHRlcigoYykgPT4gYy5pc1dvcmtmbG93KSksXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JClcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLm1heENvbnRlbnRXaWR0aCQgPSB0aGlzLl9tYXhDb250ZW50V2lkdGhTb3VyY2UuYXNPYnNlcnZhYmxlKCkucGlwZShcbiAgICAgICAgICAgIG1hcCgod2lkdGgpID0+ICh3aWR0aCA/IHdpZHRoICsgJ3B4JyA6ICdhdXRvJykpLFxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy53aXphcmROZXh0U3RlcCQgPSB0aGlzLl93aXphcmROZXh0U3RlcFNvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSk7XG4gICAgICAgIHRoaXMud2l6YXJkUHJldmlvdXNTdGVwJCA9IHRoaXMuX3dpemFyZFByZXZpb3VzU3RlcFNvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSk7XG4gICAgICAgIHRoaXMubGF5b3V0JCA9IHRoaXMuX2xheW91dFNvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKFxuICAgICAgICAgICAgbWFwKChsYXlvdXQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIWxheW91dCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbGF5b3V0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBkZXZpY2VXaWR0aCA9IERldmljZVdpZHRoKCk7XG4gICAgICAgICAgICAgICAgaWYgKGRldmljZVdpZHRoIDwgbGF5b3V0LkJvdW5kcy53aWR0aCkge1xuICAgICAgICAgICAgICAgICAgICBsYXlvdXQuQm91bmRzLndpZHRoID0gZGV2aWNlV2lkdGg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB7IC4uLmxheW91dCB9O1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JClcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmZvcmNlQ2xvc2UkID0gdGhpcy5fZm9yY2VDbG9zZVNvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSk7XG5cbiAgICAgICAgdGhpcy5ncm91cExheW91dCQgPSB0aGlzLl9ncm91cEJSdWxlU291cmNlLmFzT2JzZXJ2YWJsZSgpLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKTtcblxuICAgICAgICB0aGlzLmlzU2ltcGxlRm9ybSQgPSB0aGlzLl9pc1NpbXBsZUZvcm1Tb3VyY2UuYXNPYnNlcnZhYmxlKCkucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpO1xuXG4gICAgICAgIHRoaXMuZm9ybVdpZHRoJCA9IHRoaXMuX2Zvcm1XaWR0aFNvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSk7XG5cbiAgICAgICAgdGhpcy50b29sYmFyVmlzaWJsZSQgPSB0aGlzLl90b29sYmFyVmlzaWJsZVNvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSk7XG4gICAgICAgIHRoaXMudGl0bGUkID0gY29tYmluZUxhdGVzdChbdGhpcy5faGVhZGVyVGl0bGVTb3VyY2UuYXNPYnNlcnZhYmxlKCksIHRoaXMuX3RpdGxlU291cmNlLmFzT2JzZXJ2YWJsZSgpXSkucGlwZShcbiAgICAgICAgICAgIG1hcCgoW2hlYWRlclRpdGxlLCB0aXRsZV0pID0+IChoZWFkZXJUaXRsZSA/IGhlYWRlclRpdGxlIDogdGl0bGUpKSxcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLmhlYWRlckxheW91dCQgPSB0aGlzLl9oZWFkZXJMYXlvdXRTb3VyY2UuYXNPYnNlcnZhYmxlKCkucGlwZShcbiAgICAgICAgICAgIGZpbHRlcigoaGVhZGVyTGF5b3V0KSA9PiAhIWhlYWRlckxheW91dCksXG4gICAgICAgICAgICB0YXAoKGhlYWRlckxheW91dCkgPT4gdGhpcy5faGVhZGVyVGl0bGVTb3VyY2UubmV4dChnZXRIZWFkZXJWYWx1ZShoZWFkZXJMYXlvdXQ/LlRpdGxlKSkpLFxuICAgICAgICAgICAgdGFwKChoZWFkZXJMYXlvdXQpID0+IHRoaXMuX2hpZGVDbG9zZSQubmV4dChoZWFkZXJMYXlvdXQ/LkhpZGVDbG9zZSkpLFxuICAgICAgICAgICAgdGFwKChoZWFkZXJMYXlvdXQpID0+IHRoaXMuX2hpZGVUaXRsZSQubmV4dChoZWFkZXJMYXlvdXQ/LkhpZGVUaXRsZSkpLFxuICAgICAgICAgICAgdGFwKChoZWFkZXJMYXlvdXQpID0+IHRoaXMuX2hpZGVQaW4kLm5leHQoaGVhZGVyTGF5b3V0Py5IaWRlUGluKSksXG4gICAgICAgICAgICB0YXAoKGhlYWRlckxheW91dCkgPT4gdGhpcy5faGVhZGVyRGVzY3JpcHRpb25Tb3VyY2UubmV4dChnZXRIZWFkZXJWYWx1ZShoZWFkZXJMYXlvdXQ/LkRlc2NyaXB0aW9uKSkpLFxuICAgICAgICAgICAgdGFwKChoZWFkZXJMYXlvdXQpID0+XG4gICAgICAgICAgICAgICAgdGhpcy5faGVhZGVyUmVtb3ZlQ29udGVudFBhZGRpbmdTb3VyY2UubmV4dChnZXRIZWFkZXJWYWx1ZShoZWFkZXJMYXlvdXQ/LlJlbW92ZUNvbnRlbnRQYWRkaW5nKSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JClcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmhlYWRlckRlc2NyaXB0aW9uJCA9IHRoaXMuX2hlYWRlckRlc2NyaXB0aW9uU291cmNlLmFzT2JzZXJ2YWJsZSgpLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKTtcblxuICAgICAgICB0aGlzLmhlYWRlclJlbW92ZUNvbnRlbnRQYWRkaW5nJCA9IHRoaXMuX2hlYWRlclJlbW92ZUNvbnRlbnRQYWRkaW5nU291cmNlXG4gICAgICAgICAgICAuYXNPYnNlcnZhYmxlKClcbiAgICAgICAgICAgIC5waXBlKGRlbGF5KDApLCB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpO1xuXG4gICAgICAgIHRoaXMuaGVhZGVyU3VidGl0bGUkID0gdGhpcy5oZWFkZXJMYXlvdXQkLnBpcGUoXG4gICAgICAgICAgICBtYXAoKGhlYWRlckxheW91dCkgPT4gZ2V0SGVhZGVyVmFsdWUoaGVhZGVyTGF5b3V0Py5TdWJUaXRsZSkpLFxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5hdmF0YXIkID0gdGhpcy5oZWFkZXJMYXlvdXQkLnBpcGUoXG4gICAgICAgICAgICBtYXAoKGhlYWRlckxheW91dCkgPT4gZ2V0SGVhZGVyVmFsdWUoaGVhZGVyTGF5b3V0Py5BdmF0YXIpKSxcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMubWFzayQgPSB0aGlzLl9tYXNrU291cmNlLmFzT2JzZXJ2YWJsZSgpLnBpcGUoZGVib3VuY2VUaW1lKDIwMCksIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSk7XG4gICAgfVxuICAgIGdldCBoaWRlUGluJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hpZGVQaW4kLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBnZXQgaGlkZUNsb3NlJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hpZGVDbG9zZSQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIGdldCBoaWRlVGl0bGUkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faGlkZVRpdGxlJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgZ2V0IGNhblNlbmQkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fY2FuU2VuZCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIGdldCBtbygpOiBNZXRhb2JqZWN0RGF0YU1vZGVsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21vU291cmNlLmdldFZhbHVlKCk7XG4gICAgfVxuICAgIHNldCBjb250ZXh0KHZhbDogYW55KSB7XG4gICAgICAgIGlmICh0aGlzLl9jb250ZXh0KSB7XG4gICAgICAgICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9jb250ZXh0U291cmNlLm5leHQodmFsKTtcbiAgICB9XG4gICAgc2V0Rm9ybUhlaWdodCh2YWw6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLl9mb3JtSGVpZ2h0U291cmNlLm5leHQodmFsKTtcbiAgICB9XG4gICAgZGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9jb250ZXh0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fY29udGV4dC51bignR3JvdXBCUnVsZUNoYW5nZWQnLCB0aGlzLl9ncm91cEJSdWxlQ2hhbmdlZCk7XG4gICAgICAgIHRoaXMuX2NvbnRleHQudW4oJ1RpdGxlQ2hhbmdlZCcsIHRoaXMuX3RpdGxlQ2hhbmdlZCk7XG4gICAgICAgIHRoaXMuX2NvbnRleHQudW4oJ1dpemFyZE5leHRTdGVwJywgdGhpcy5fd2l6YXJkTmV4dFN0ZXApO1xuICAgICAgICB0aGlzLl9jb250ZXh0LnVuKCdXaXphcmRQcmV2aW91c1N0ZXAnLCB0aGlzLl93aXphcmRQcmV2aW91c1N0ZXApO1xuICAgICAgICB0aGlzLl9jb250ZXh0LnVuKCdEb0xheW91dCcsIHRoaXMuX2RvTGF5b3V0KTtcbiAgICAgICAgdGhpcy5fY29udGV4dC51bignTWFza0NoYW5nZWQnLCB0aGlzLl9tYXNrQ2hhbmdlZCk7XG4gICAgICAgIHRoaXMuX2NvbnRleHQudW4oJ0ZvcmNlQ2xvc2UnLCB0aGlzLl9mb3JjZUNsb3NlKTtcbiAgICAgICAgdGhpcy5fY29udGV4dC50b29sYmFyLnVuKCdUb29sYmFySXRlbXNDaGFuZ2VkJywgdGhpcy5fdG9vbGJhckl0ZW1zQ2hhbmdlZCk7XG4gICAgICAgIHRoaXMuX2NvbnRleHQgPSBudWxsO1xuICAgICAgICB0aGlzLl9sYXlvdXRTb3VyY2UubmV4dChudWxsKTtcbiAgICAgICAgLy8gdGhpcy5fb25EZXN0cm95JC5uZXh0KCk7XG4gICAgfVxuXG4gICAgdG9vbGJhckNsaWNrKGJ0bik6IHZvaWQge1xuICAgICAgICBidG4uaGFuZGxlcihidG4sIHRoaXMuX2NvbnRleHQpO1xuICAgIH1cbiAgICB3ZkNob2ljZShidG4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY29udGV4dC5Xb3JrZmxvd1BhbmVsVWkuZmlyZUV2ZW50KCdDaG9pY2VTZWxlY3QnLCBidG4sIHRoaXMuX2NvbnRleHQpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfaW5pdGlhbGl6ZShjb250ZXh0OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fd29ya2Zsb3dQYW5lbFVpU291cmNlLm5leHQoY29udGV4dD8uV29ya2Zsb3dQYW5lbFVpKTtcbiAgICAgICAgdGhpcy5faXNTZWFyY2hQYW5lbFNvdXJjZS5uZXh0KGNvbnRleHQ/LlNldHRpbmc/LklzU2VhcmNoUGFuZWwpO1xuICAgICAgICB0aGlzLl9jYW5TZW5kJC5uZXh0KGNvbnRleHQ/LlNldHRpbmc/LkNhblNlbmQpO1xuICAgICAgICB0aGlzLl9zZWFyY2hQYW5lbElzT2JqZWN0U291cmNlLm5leHQoY29udGV4dD8uU2V0dGluZz8uUGFyYW1ldGVyVHlwZUlzT2JqZWN0KTtcbiAgICAgICAgdGhpcy5fbW9Tb3VyY2UubmV4dChjb250ZXh0Py5Nbyk7XG4gICAgICAgIHRoaXMuX3ZpZXdTb3VyY2UubmV4dChjb250ZXh0Py5TZXR0aW5nPy5WaWV3KTtcbiAgICAgICAgdGhpcy5fdG9vbGJhckl0ZW1zU291cmNlLm5leHQoY29udGV4dD8udG9vbGJhcj8uaXRlbXMpO1xuICAgICAgICBpZiAoY29udGV4dD8udG9vbGJhcikge1xuICAgICAgICAgICAgY29udGV4dC50b29sYmFyLm9uKHtcbiAgICAgICAgICAgICAgICBUb29sYmFySXRlbXNDaGFuZ2VkOiB0aGlzLl90b29sYmFySXRlbXNDaGFuZ2VkLmJpbmQodGhpcylcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3RpdGxlU291cmNlPy5uZXh0KGNvbnRleHQ/LnRpdGxlKTtcbiAgICAgICAgdGhpcy5fdG9vbGJhclZpc2libGVTb3VyY2UubmV4dCh0aGlzLl9nZXRUb29sYmFyVmlzaWJpbGl0eShjb250ZXh0KSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9wcmVwYXJlVmlldyh2aWV3KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2xheW91dFNvdXJjZS5uZXh0KHZpZXc/LkxheW91dDk0KTtcbiAgICAgICAgdGhpcy5fbWF4Q29udGVudFdpZHRoU291cmNlLm5leHQodGhpcy5fZ2V0TWF4Q29udGVudFdpZHRoKHZpZXcpKTtcbiAgICAgICAgdGhpcy5faXNTaW1wbGVGb3JtU291cmNlLm5leHQodGhpcy5fZ2V0SXNTaW1wbGVGb3JtKHZpZXcpKTtcbiAgICAgICAgdGhpcy5faGVhZGVyTGF5b3V0U291cmNlLm5leHQodGhpcy5fZ2V0SGVhZGVyTGF5b3V0KHZpZXcpKTtcbiAgICAgICAgdGhpcy5fZm9ybVdpZHRoU291cmNlLm5leHQodmlldz8uaW5EaWFsb2cgPyB2aWV3LkxheW91dDk0LkJvdW5kcy53aWR0aCArICdweCcgOiAnMTAwJScpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX2ZpbHRlclRvb2xiYXJJdGVtcyhpdGVtczogQXJyYXk8YW55Pik6IEFycmF5PGFueT4ge1xuICAgICAgICBpZiAoIWl0ZW1zKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cbiAgICAgICAgLy8g2K/YsSDYtdmI2LHYqtuMINqp2Ycg2K/YsSDZhdmI2KjYp9uM2YQg2KjYp9i02K8g2K/ZiCDYr9qp2YXZhyDZhtmF2KfbjNi0INiv2KfYr9mHINi02YjYryDYp9iyINiv2qnZhdmHINmH2KfbjCDaqdin2LHYqNixINmIINmB2LHYotuM2YbYr9uMXG4gICAgICAgIC8vINiv2LEg2LXZiNix2KrbjCDaqdmHINiv2qnZhdmHINuMINmI2KzZiNivINmG2K/Yp9i02Kog2YHZgti3INiv2qnZhdmHINiw2K7bjNix2Ycg2YbZhdin24zYtCDYr9in2K/ZhyDYtNmI2K9cbiAgICAgICAgLy8g2K/YsSDYrdin2YTYqtmH2KfbjCDYr9uM2q/YsSDYp9io2KrYr9inINiv2qnZhdmHINmH2KfbjCDaqdin2LHYqNix24wg2Ygg2YHYsdii24zZhtiv24wg2Ygg2KjYudivINiv2qnZhdmHINmH2KfbjCDYqti52LHbjNmBINi02K/ZhyDYs9uM2LPYqtmFINmG2YXYp9uM2LQg2K/Yp9iv2Ycg2YXbjNi02YjYry5cbiAgICAgICAgY29uc3QgaXNNb2JpbGUgPSBnZXREZXZpY2VJc01vYmlsZSgpO1xuICAgICAgICBsZXQgbmV3SXRlbXMgPSBpdGVtcy5maWx0ZXIoXG4gICAgICAgICAgICAoYykgPT4gIWMuaGlkZGVuICYmICEoaXNNb2JpbGUgJiYgKGMuaXRlbUlkID09PSAnTmV4dCcgfHwgYy5pdGVtSWQgPT09ICdQcmV2aW91cycpKVxuICAgICAgICApO1xuXG4gICAgICAgIG5ld0l0ZW1zLnNvcnQoKGMsIGQpOiBudW1iZXIgPT4gKE51bWJlcihjPy5EYXRhPy5UYWJPcmRlck51bWJlcikgPCBOdW1iZXIoZD8uRGF0YT8uVGFiT3JkZXJOdW1iZXIpID8gMSA6IC0xKSk7XG4gICAgICAgIGNvbnN0IG5vblN0cmluZ0l0ZW1zID0gbmV3SXRlbXMuZmlsdGVyKChjKSA9PiB0eXBlb2YgYyAhPT0gJ3N0cmluZycpO1xuXG4gICAgICAgIGNvbnN0IHQgPSBub25TdHJpbmdJdGVtcy5maW5kKChjKSA9PiAhYy5pc0J1aWx0aW4gJiYgIWMuSUFtTWVudSk7XG4gICAgICAgIGlmICh0KSB7XG4gICAgICAgICAgICB0LnByaW9yaXR5ID0gJ2hpZ2gnO1xuICAgICAgICB9XG4gICAgICAgIGxldCBub25CdWlsdGluQ291bnQgPSAwO1xuICAgICAgICBub25TdHJpbmdJdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGl0ZW0gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGl0ZW0uaXNCdWlsdGluKSB7XG4gICAgICAgICAgICAgICAgLy8g2LPbjNiz2KrZhduMXG4gICAgICAgICAgICAgICAgaXRlbS5wcmlvcml0eSA9ICdhbHdheXMnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAobm9uQnVpbHRpbkNvdW50ID4gMSkge1xuICAgICAgICAgICAgICAgICAgICAvLyDYr9qp2YXZhyDZh9in24wg2qnYp9ix2KjYsduMINqp2Ycg2KjbjNi02KrYsSDYp9iyINiv2Ygg2YfYs9iq2YbYr1xuICAgICAgICAgICAgICAgICAgICBpdGVtLnByaW9yaXR5ID0gJ2xvdyc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5wcmlvcml0eSA9ICdhbHdheXMnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBub25CdWlsdGluQ291bnQrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChub25CdWlsdGluQ291bnQgPT09IDApIHtcbiAgICAgICAgICAgIC8vINin2q/YsSDZh9uM2oYg2K/aqdmF2Ycg2qnYp9ix2KjYsduMINmI2KzZiNivINmG2K/Yp9i02KpcbiAgICAgICAgICAgIG5vblN0cmluZ0l0ZW1zLmZvckVhY2goKGl0ZW0sIF8pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaXRlbS5pdGVtSWQgPT09ICdTYXZlJykge1xuICAgICAgICAgICAgICAgICAgICBpdGVtLnByaW9yaXR5ID0gJ25ldmVyJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzYXZlQW5kTmV3ID0gbmV3SXRlbXMuZmluZCgoYykgPT4gYy5pdGVtSWQgPT09ICdTYXZlQW5kTmV3Jyk7XG4gICAgICAgIGNvbnN0IHNhdmVBbmRDbG9zZSA9IG5ld0l0ZW1zLmZpbmQoKGMpID0+IGMuaXRlbUlkID09PSAnU2F2ZUFuZENsb3NlJyk7XG4gICAgICAgIGlmIChzYXZlQW5kQ2xvc2UgJiYgc2F2ZUFuZENsb3NlLm1lbnUpIHtcbiAgICAgICAgICAgIGNvbnN0IHNhdmUgPSBzYXZlQW5kQ2xvc2UubWVudS5pdGVtc1swXTtcbiAgICAgICAgICAgIGlmIChzYXZlKSB7XG4gICAgICAgICAgICAgICAgc2F2ZS5pc0J1aWx0aW4gPSB0cnVlO1xuICAgICAgICAgICAgICAgIHNhdmUucHJpb3JpdHkgPSBub25CdWlsdGluQ291bnQgPT09IDAgPyAnbmV2ZXInIDogJ2Fsd2F5cyc7XG5cbiAgICAgICAgICAgICAgICBuZXdJdGVtcy5wdXNoKHNhdmUpO1xuICAgICAgICAgICAgICAgIGlmIChzYXZlQW5kTmV3KSB7XG4gICAgICAgICAgICAgICAgICAgIHNhdmUuSUFtTWVudSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHNhdmUubWVudSA9IHsgaXRlbXM6IFt7IC4uLnNhdmVBbmROZXcgfV0gfTtcbiAgICAgICAgICAgICAgICAgICAgbmV3SXRlbXMgPSBuZXdJdGVtcy5maWx0ZXIoKGMpID0+IGMuaXRlbUlkICE9PSAnU2F2ZUFuZE5ldycpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBuZXdJdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBpZiAoaXRlbS5tZW51KSB7XG4gICAgICAgICAgICAgICAgaXRlbS5tZW51Lml0ZW1zID0gaXRlbS5tZW51Lml0ZW1zLmZpbHRlcigoYykgPT4gIWMuaGlkZGVuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGJ1aWx0aW5zQnV0dG9ucyA9IG5ld0l0ZW1zLmZpbHRlcigoYykgPT4gYz8uaXNCdWlsdGluKTtcbiAgICAgICAgbmV3SXRlbXMgPSBbXG4gICAgICAgICAgICAuLi5idWlsdGluc0J1dHRvbnMsXG4gICAgICAgICAgICAuLi5uZXdJdGVtcy5maWx0ZXIoKGMpID0+ICFjPy5pc0J1aWx0aW4gJiYgIWM/LmlzV29ya2Zsb3cpLFxuICAgICAgICAgICAgLi4ubmV3SXRlbXMuZmlsdGVyKChjKSA9PiBjPy5pc1dvcmtmbG93KVxuICAgICAgICBdO1xuICAgICAgICBjb25zdCBtb3ZlTmV4dEluZGV4ID0gbmV3SXRlbXMuZmluZEluZGV4KChjKSA9PiBjLml0ZW1JZCA9PT0gJ01vdmVOZXh0Jyk7XG4gICAgICAgIGlmIChtb3ZlTmV4dEluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgIGNvbnN0IG1vcyA9IG5ld0l0ZW1zLnNwbGljZShtb3ZlTmV4dEluZGV4IC0gMSwgMik7XG4gICAgICAgICAgICBuZXdJdGVtcyA9IFsuLi5tb3MsIC4uLm5ld0l0ZW1zXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuZXdJdGVtcy5yZXZlcnNlKCk7XG4gICAgICAgIC8vIHJldHVybiBuZXdJdGVtcy5zb3J0KChhKTogbnVtYmVyID0+ICh0eXBlb2YgYSA9PSAnc3RyaW5nJyA/IDAgOiBhLklBbU1lbnUgPyAxIDogLTEpKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9nZXRIZWFkZXJMYXlvdXQodmlldyk6IElIZWFkZXJMYXlvdXQge1xuICAgICAgICBjb25zdCBoZWFkZXJMYXlvdXQgPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZSh2aWV3LCAnSGVhZGVyTGF5b3V0JywgbnVsbCk7XG5cbiAgICAgICAgaWYgKGhlYWRlckxheW91dCkge1xuICAgICAgICAgICAgLy8gdGhpcy5zZXRIZWFkZXJUaXRsZUFuZFN1YnRpdGxlQW5kQXZhdGFyKGhlYWRlckxheW91dCk7XG4gICAgICAgICAgICBjb25zdCB0OiBhbnlbXSA9IFtdO1xuICAgICAgICAgICAgaGVhZGVyTGF5b3V0LkZhY2V0TGlzdC5Nb0RhdGFMaXN0LmZvckVhY2goKGZhY2V0Q29sdW1uKSA9PiB7XG4gICAgICAgICAgICAgICAgdC5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogZmFjZXRDb2x1bW4uQ29sdW1uU2V0dGluZ3MuJEZvcm1QYW5lbFNldHRpbmcuRGF0YS5Nby5UeXBlLFxuICAgICAgICAgICAgICAgICAgICBtbzogZmFjZXRDb2x1bW4uQ29sdW1uU2V0dGluZ3MuJEZvcm1QYW5lbFNldHRpbmcuRGF0YS5Nb1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBoZWFkZXJMYXlvdXQuRmFjZXRMaXN0MiA9IHQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGhlYWRlckxheW91dDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX2dldElzU2ltcGxlRm9ybSh2aWV3OiBGb3JtVmlld1NldHRpbmcpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgaXNTaW1wbGUgPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZSh2aWV3LCAnRXh0cmFKc29uUHJvcC5Jc1NpbXBsZScsIGZhbHNlKTtcbiAgICAgICAgcmV0dXJuIGlzU2ltcGxlO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX2dldFRvb2xiYXJWaXNpYmlsaXR5KGNvbnRleHQpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCFjb250ZXh0KSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaGlkZVRvb2xiYXIgPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZShjb250ZXh0LCAndG9vbGJhci5oaWRlVG9vbGJhcicsIGZhbHNlKTtcbiAgICAgICAgaWYgKGhpZGVUb29sYmFyKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyBGb3JtU2V0dGluZ3MgfSA9IGNvbnRleHQuU2V0dGluZy5WaWV3O1xuICAgICAgICBpZiAoRm9ybVNldHRpbmdzKSB7XG4gICAgICAgICAgICBjb25zdCBzaG93VG9vbGJhciA9IEZvcm1TZXR0aW5ncy5TaG93VG9vbGJhciA9PT0gZmFsc2UgPyBmYWxzZSA6IHRydWU7XG4gICAgICAgICAgICBjb25zdCBmZWF0dXJlVG9vbGJhciA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKGNvbnRleHQsICdGZWF0dXJlcy5Ub29sYmFyJywgZmFsc2UpO1xuXG4gICAgICAgICAgICBjb25zdCB2aXNpYmxlID0gKGZlYXR1cmVUb29sYmFyICYmIHNob3dUb29sYmFyKSAhPT0gZmFsc2U7XG4gICAgICAgICAgICByZXR1cm4gdmlzaWJsZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9nZXRNYXhDb250ZW50V2lkdGgodmlldyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IG1heENvbnRlbnRXaWR0aCA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKHZpZXcsICdFeHRyYUpzb25Qcm9wLk1heFdpZHRoJywgJzAnKTtcbiAgICAgICAgcmV0dXJuIG1heENvbnRlbnRXaWR0aDtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9hZGRMaXN0ZW5lcihjb250ZXh0KTogdm9pZCB7XG4gICAgICAgIGlmICghY29udGV4dCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnRleHQub24oe1xuICAgICAgICAgICAgR3JvdXBCUnVsZUNoYW5nZWQ6IHRoaXMuX2dyb3VwQlJ1bGVDaGFuZ2VkLmJpbmQodGhpcyksXG4gICAgICAgICAgICBUaXRsZUNoYW5nZWQ6IHRoaXMuX3RpdGxlQ2hhbmdlZC5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgV2l6YXJkTmV4dFN0ZXA6IHRoaXMuX3dpemFyZE5leHRTdGVwLmJpbmQodGhpcyksXG4gICAgICAgICAgICBXaXphcmRQcmV2aW91c1N0ZXA6IHRoaXMuX3dpemFyZFByZXZpb3VzU3RlcC5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgRG9MYXlvdXQ6IHRoaXMuX2RvTGF5b3V0LmJpbmQodGhpcyksXG4gICAgICAgICAgICBNYXNrQ2hhbmdlZDogdGhpcy5fbWFza0NoYW5nZWQuYmluZCh0aGlzKSxcbiAgICAgICAgICAgIEZvcmNlQ2xvc2U6IHRoaXMuX2ZvcmNlQ2xvc2UuYmluZCh0aGlzKSxcbiAgICAgICAgICAgIFJlZnJlc2g6IHRoaXMuX3JlZnJlc2guYmluZCh0aGlzKVxuICAgICAgICB9KTtcbiAgICAgICAgY29udGV4dC50b29sYmFyLm9uKHtcbiAgICAgICAgICAgIFRvb2xiYXJJdGVtc0NoYW5nZWQ6IHRoaXMuX3Rvb2xiYXJJdGVtc0NoYW5nZWQuYmluZCh0aGlzKVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9yZWZyZXNoKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9pbml0aWFsaXplKHRoaXMuX2NvbnRleHQpO1xuICAgICAgICAvLyB0aGlzLl9wcmVwYXJlVmlldyh0aGlzLl9jb250ZXh0LlNldHRpbmcuVmlldyk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfZm9yY2VDbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZm9yY2VDbG9zZVNvdXJjZS5uZXh0KCk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfbWFza0NoYW5nZWQobWFzayk6IHZvaWQge1xuICAgICAgICB0aGlzLl9tYXNrU291cmNlLm5leHQobWFzayk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfdG9vbGJhckl0ZW1zQ2hhbmdlZChpdGVtcyk6IHZvaWQge1xuICAgICAgICB0aGlzLl90b29sYmFySXRlbXNTb3VyY2UubmV4dChpdGVtcyk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfdGl0bGVDaGFuZ2VkKHRpdGxlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RpdGxlU291cmNlLm5leHQodGl0bGUpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX3dpemFyZE5leHRTdGVwKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl93aXphcmROZXh0U3RlcFNvdXJjZS5uZXh0KCk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfd2l6YXJkUHJldmlvdXNTdGVwKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl93aXphcmRQcmV2aW91c1N0ZXBTb3VyY2UubmV4dCgpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX2RvTGF5b3V0KGNvbnRleHQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdmlldyA9IGNvbnRleHQuU2V0dGluZy5WaWV3O1xuICAgICAgICB0aGlzLl92aWV3U291cmNlLm5leHQodmlldyk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfZ3JvdXBCUnVsZUNoYW5nZWQoZ3JvdXBJdGVtOiBMYXlvdXRTZXR0aW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2dyb3VwQlJ1bGVTb3VyY2UubmV4dChncm91cEl0ZW0pO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX3ByZXBhcmVDb250ZXh0KGNvbnRleHQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fYWRkTGlzdGVuZXIoY29udGV4dCk7XG4gICAgICAgIHRoaXMuX2luaXRpYWxpemUoY29udGV4dCk7XG4gICAgICAgIHRoaXMuX2NvbnRleHQgPSBjb250ZXh0O1xuICAgIH1cbn1cbiJdfQ==