ngx-histaff-alpha 4.0.9 → 4.1.1

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.
@@ -583,4 +583,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
583
583
  type: ViewChild,
584
584
  args: ['container']
585
585
  }] } });
586
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1mb3JtLWNvbnRyb2wtc2Vla2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLWZvcm0tY29udHJvbC1zZWVrZXIvY29yZS1mb3JtLWNvbnRyb2wtc2Vla2VyL2NvcmUtZm9ybS1jb250cm9sLXNlZWtlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvY29yZS1mb3JtLWNvbnRyb2wtc2Vla2VyL2NvcmUtZm9ybS1jb250cm9sLXNlZWtlci9jb3JlLWZvcm0tY29udHJvbC1zZWVrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQWMsS0FBSyxFQUFxQixTQUFTLEVBQUUsU0FBUyxFQUF5QixNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xLLE9BQU8sRUFBRSxlQUFlLEVBQWdCLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3RCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUM3RyxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUU3RixPQUFPLEVBQWEsV0FBVyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3RGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBMkQsTUFBTSx1Q0FBdUMsQ0FBQztBQUU3SyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxnRkFBZ0YsQ0FBQztBQUM3SCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxnRkFBZ0YsQ0FBQztB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dUJBQXVCO3dCQUN2QiwyQkFBMkI7d0JBQzNCLHFDQUFxQzt3QkFDckMsa0JBQWtCO3FCQUNuQjtnakJBTW9CLE1BQU07c0JBQTFCLFNBQVM7dUJBQUMsUUFBUTtnQkFDRyxPQUFPO3NCQUE1QixTQUFTO3VCQUFDLFNBQVM7Z0JBUVgsS0FBSztzQkFBYixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUdHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFNRyx3QkFBd0I7c0JBQWhDLEtBQUs7Z0JBQ0cseUJBQXlCO3NCQUFqQyxLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFJcUIsZ0JBQWdCO3NCQUExQyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFDaEIsU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUdHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUVJLGFBQWE7c0JBQXRCLE1BQU07Z0JBRWlCLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBpc0Rldk1vZGUsIFZpZXdDaGlsZCwgSW5qZWN0b3IsIFRlbXBsYXRlUmVmLCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbiwgZmlsdGVyIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENvcmVGb3JtQ29udHJvbEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlLWZvcm0tY29udHJvbC1iYXNlL2NvcmUtZm9ybS1jb250cm9sLWJhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRW51bUNvcmVGb3JtQ29udHJvbFNlZWtlclNvdXJjZVR5cGUgfSBmcm9tICcuLi9FbnVtQ29yZUZvcm1Db250cm9sU2Vla2VyU291cmNlVHlwZSc7XHJcbmltcG9ydCB7IEFsZXJ0U2VydmljZSB9IGZyb20gJy4uLy4uL2FsZXJ0L2FsZXJ0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBJQ29yZUZvcm1Db250cm9sU2Vla2VyRXh0cmFCaW5kaW5nTW9kZWwsIElDb3JlRm9ybVNlY3Rpb24gfSBmcm9tICcuLi8uLi9jb3JlLWZvcm0vY29yZS1mb3JtL2VudW0taW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IElPcmdUcmVlSXRlbSB9IGZyb20gJy4uLy4uL2NvcmUtb3JnLXRyZWUvY29yZS1vcmctdHJlZS9JT3JnVHJlZUl0ZW0nO1xyXG5pbXBvcnQgeyBDb3JlVGFibGVDb21wb25lbnQsIEVDb3JlVGFibGVUb29sQ2xhc3MsIEVDb3JlVGFibGVUb29sQ29kZSwgSUNvcmVUYWJsZVRvb2xDbGlja0V2ZW50RW1pdHRlckRhdGEsIElDb3JlVGFibGVUb29sSXRlbSB9IGZyb20gJy4uLy4uL2NvcmUtdGFibGUvY29yZS10YWJsZS5jb21wb25lbnQnO1xyXG5cclxuaW1wb3J0IHsgQ29yZUVtcGxveWVlU2Vla2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS1lbXBsb3llZS1zZWVrZXIvY29yZS1lbXBsb3llZS1zZWVrZXIvY29yZS1lbXBsb3llZS1zZWVrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29yZUNvbnRyYWN0U2Vla2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS1jb250cmFjdC1zZWVrZXIvY29yZS1jb250cmFjdC1zZWVrZXIvY29yZS1jb250cmFjdC1zZWVrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29yZVdvcmtpbmdTZWVrZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlLXdvcmtpbmctc2Vla2VyL2NvcmUtd29ya2luZy1zZWVrZXIvY29yZS13b3JraW5nLXNlZWtlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb3JlV2FnZVNlZWtlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUtd2FnZS1zZWVrZXIvY29yZS13YWdlLXNlZWtlci9jb3JlLXdhZ2Utc2Vla2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvcmVQb3NpdGlvblNlZWtlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUtcG9zaXRpb24tc2Vla2VyL2NvcmUtcG9zaXRpb24tc2Vla2VyL2NvcmUtcG9zaXRpb24tc2Vla2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEVudW1UcmFuc2xhdGVLZXkgfSBmcm9tIFwiYWxwaGEtZ2xvYmFsLWNvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBNdWx0aUxhbmd1YWdlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL211bHRpLWxhbmd1YWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSYW5kb21BdmF0YXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcmFuZG9tLWF2YXRhci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgbm9uZUF1dG9DbG9zZWRBbGVydE9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvYWxlcnRPcHRpb25zJztcclxuaW1wb3J0IHsgSUNvcmVUYWJsZUNvbHVtbkl0ZW0gfSBmcm9tICcuLi8uLi9jb3JlLXRhYmxlL0lDb3JlVGFibGVDb2x1bW5JdGVtJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJy4uLy4uLy4uL2FwcC1waXBlcy90cmFuc2xhdGUucGlwZSc7XHJcbmltcG9ydCB7IENvcmVQb3NpdGlvbkNvbmN1cnJlbnRTZWVrZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlLXBvc2l0aW9uLWNvbmN1cnJlbnQtc2Vla2VyL2NvcmUtcG9zaXRpb24tY29uY3VycmVudC1zZWVrZXIvY29yZS1wb3NpdGlvbi1jb25jdXJyZW50LXNlZWtlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb3JlUGFnZUhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUtcGFnZS1oZWFkZXIvY29yZS1wYWdlLWhlYWRlci9jb3JlLXBhZ2UtaGVhZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ29yZU9yZ1VuaXRTZWVrZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlLW9yZy11bml0LXNlZWtlci9jb3JlLW9yZy11bml0LXNlZWtlci9jb3JlLW9yZy11bml0LXNlZWtlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXBBdmF0YXJUb1NlcnZlclBpcGUgfSBmcm9tICcuLi8uLi8uLi9hcHAtcGlwZXMvbWFwLWF2YXRhci10by1zZXJ2ZXIucGlwZSc7XHJcbmltcG9ydCB7IENvcmVQYWdlRWRpdExpdGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlLXBhZ2UtZWRpdC1saXRlL2NvcmUtcGFnZS1lZGl0LWxpdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29yZUpvYlNlZWtlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUtam9iLXNlZWtlci9jb3JlLWpvYi1zZWVrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29yZVN0YXR1c1N0aWNrZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlLXN0YXR1cy1zdGlja2VyL2NvcmUtc3RhdHVzLXN0aWNrZXIvY29yZS1zdGF0dXMtc3RpY2tlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFbnVtQ29yZVNlZWtlckNvbHVtbkNvbnRyYWN0LCBFbnVtQ29yZVNlZWtlckNvbHVtbkpvYiwgRW51bUNvcmVTZWVrZXJDb2x1bW5Qb3NpdGlvbiwgRW51bUNvcmVTZWVrZXJDb2x1bW5Qb3NpdGlvbkNvbmN1cnJlbnQsIEVudW1Db3JlU2Vla2VyQ29sdW1uU3RhZmZQcm9maWxlLCBFbnVtQ29yZVNlZWtlckNvbHVtbldhZ2UsIEVudW1Db3JlU2Vla2VyQ29sdW1uV29ya2luZyB9IGZyb20gJy4uL0VudW1Db3JlU2Vla2VyQ29sdW1uJztcclxuaW1wb3J0IHsgSUZpbHRlck9wZXJhdG9yIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9JUXVlcnlMaXN0UmVxdWVzdCc7XHJcbmltcG9ydCB7IFNlZWtlclNlcnZpY2UgfSBmcm9tICcuLi9zZWVrZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IExheW91dFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9sYXlvdXQuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvcmUtZm9ybS1jb250cm9sLXNlZWtlcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFRyYW5zbGF0ZVBpcGUsXHJcbiAgICBNYXBBdmF0YXJUb1NlcnZlclBpcGUsXHJcbiAgICBDb3JlSm9iU2Vla2VyQ29tcG9uZW50LFxyXG4gICAgQ29yZVBhZ2VFZGl0TGl0ZUNvbXBvbmVudCxcclxuICAgIENvcmVUYWJsZUNvbXBvbmVudCxcclxuICAgIENvcmVTdGF0dXNTdGlja2VyQ29tcG9uZW50LFxyXG4gICAgQ29yZUVtcGxveWVlU2Vla2VyQ29tcG9uZW50LFxyXG4gICAgQ29yZUNvbnRyYWN0U2Vla2VyQ29tcG9uZW50LFxyXG4gICAgQ29yZVdvcmtpbmdTZWVrZXJDb21wb25lbnQsXHJcbiAgICBDb3JlV2FnZVNlZWtlckNvbXBvbmVudCxcclxuICAgIENvcmVPcmdVbml0U2Vla2VyQ29tcG9uZW50LFxyXG4gICAgQ29yZVBvc2l0aW9uU2Vla2VyQ29tcG9uZW50LFxyXG4gICAgQ29yZVBvc2l0aW9uQ29uY3VycmVudFNlZWtlckNvbXBvbmVudCxcclxuICAgIENvcmVQYWdlSGVhZGVyQ29tcG9uZW50LFxyXG4gICAgVG9vbHRpcERpcmVjdGl2ZVxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvcmUtZm9ybS1jb250cm9sLXNlZWtlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29yZS1mb3JtLWNvbnRyb2wtc2Vla2VyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgdXNlRXhpc3Rpbmc6IENvcmVGb3JtQ29udHJvbFNlZWtlckNvbXBvbmVudFxyXG4gICAgfSxcclxuICAgIENvcmVKb2JTZWVrZXJDb21wb25lbnQsXHJcbiAgICBDb3JlRW1wbG95ZWVTZWVrZXJDb21wb25lbnQsXHJcbiAgICBDb3JlQ29udHJhY3RTZWVrZXJDb21wb25lbnQsXHJcbiAgICBDb3JlV29ya2luZ1NlZWtlckNvbXBvbmVudCxcclxuICAgIENvcmVXYWdlU2Vla2VyQ29tcG9uZW50LFxyXG4gICAgQ29yZVBvc2l0aW9uU2Vla2VyQ29tcG9uZW50LFxyXG4gICAgQ29yZVBvc2l0aW9uQ29uY3VycmVudFNlZWtlckNvbXBvbmVudCxcclxuICAgIENvcmVUYWJsZUNvbXBvbmVudFxyXG4gIF1cclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBDb3JlRm9ybUNvbnRyb2xTZWVrZXJDb21wb25lbnQgZXh0ZW5kcyBDb3JlRm9ybUNvbnRyb2xCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuXHJcbiAgQFZpZXdDaGlsZCgnYXZhdGFyJykgYXZhdGFyITogVGVtcGxhdGVSZWY8YW55PjtcclxuICBAVmlld0NoaWxkKCdzdGlja2VyJykgc3RpY2tlciE6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIG5nQ29udHJvbCE6IE5nQ29udHJvbDtcclxuXHJcbiAgaXNEZXZNb2RlID0gaXNEZXZNb2RlKCk7XHJcblxyXG4gIGxhbmchOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpIHRpdGxlITogRW51bVRyYW5zbGF0ZUtleTtcclxuICBASW5wdXQoKSBzaG93UGFnZUhlYWRlciE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgcHJlRGVmaW5lZE91dGVyUGFyYW0kITogQmVoYXZpb3JTdWJqZWN0PGFueT47XHJcbiAgQElucHV0KCkgcHJlRGVmaW5lZE91dGVyRmlsdGVyJCE6IEJlaGF2aW9yU3ViamVjdDxJRmlsdGVyT3BlcmF0b3JbXT47XHJcbiAgQElucHV0KCkgY2xpY2skITogQmVoYXZpb3JTdWJqZWN0PGFueT4gfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgZ2V0QnlJZE9iamVjdCQhOiBCZWhhdmlvclN1YmplY3Q8YW55PjtcclxuICBASW5wdXQoKSBwYXJhbU1vZGUhOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIG11bHRpTW9kZSE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgb2JqZWN0TGlzdCQhOiBCZWhhdmlvclN1YmplY3Q8YW55W10+O1xyXG4gIEBJbnB1dCgpIHNob3duU2Vla2VyQ29sdW1ucyE6IHN0cmluZ1tdOyAvLyBSZWR1Y2UgdmlzaWJsZSBjb2x1bW5zIGZyb20gYmFzZSBjb21wb25lbnQuXHJcbiAgQElucHV0KCkgZXhjbHVkZUV4aXN0aW5nTGlzdCE6IGJvb2xlYW47IC8vIGZyb20gMjAyNC0wNS0xMFxyXG5cclxuICAvKiBXaGVuIG9iamVjdHMgZ2l2ZW4gYnkgdGhlIHNlZWtlciBkb3VibGUtY2xpY2svY2hlY2sgYXJlIGluZGlyZWN0bHkgcmVsYXRlZCB0byB0aGUgY29udHJvbCAqL1xyXG4gIEBJbnB1dCgpIGluZGlyZWN0QmluZGluZyE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgYmluZEdyaWRJZFRvITogc3RyaW5nO1xyXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcblxyXG5cclxuXHJcbiAgLyogRXh0ZW5kZWQgc2luY2UgMjAyNC0wMy0yNCAqL1xyXG4gIEBJbnB1dCgpIG11bHRpTW9kZUV4dGVuZGVkQ29sdW1ucyE6IElDb3JlVGFibGVDb2x1bW5JdGVtW107XHJcbiAgQElucHV0KCkgbXVsdGlNb2RlRXh0ZW5kZWRTZWN0aW9ucyE6IElDb3JlRm9ybVNlY3Rpb25bXTtcclxuICBASW5wdXQoKSBlZGl0QnVmZmVyRGF0YSQhOiBCZWhhdmlvclN1YmplY3Q8YW55PjtcclxuICBASW5wdXQoKSBtdWx0aU1vZGVUYWJsZUhlaWdodCE6IG51bWJlcjtcclxuICBASW5wdXQoKSBtdWx0aU1vZGVSb3dIZWlnaHQ/OiBudW1iZXI7XHJcbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5cclxuICAvKiBTVEFSVDogUkVRVUlSRUQgKi9cclxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBzZWVrZXJTb3VyY2VUeXBlITogRW51bUNvcmVGb3JtQ29udHJvbFNlZWtlclNvdXJjZVR5cGU7XHJcbiAgQElucHV0KCkgYm91bmRGcm9tITogc3RyaW5nOyAvLyB0YWtlIHRoaXMgZmllbGQgZnJvbSBHZXRCeUlkIHJlc3BvbnNlIGlubmVyQm9keSB0byBiaW5kIHRvIHRoZSB2YWx1ZVxyXG4gIEBJbnB1dCgpIHNob3duRnJvbSE6IHN0cmluZzsgLy8gdGFrZSB0aGlzIGZpZWxkIGZyb20gR2V0QnlJZCByZXNwb25zZSBpbm5lckJvZHkgdG8gYmluZCB0byB0aGUgdGV4dFxyXG4gIC8qIEVORDogUkVRVUlSRUQgd2hlbiBFTVBMT1lFRV9TRUVLRVIgKi9cclxuXHJcbiAgQElucHV0KCkgYWxzb0JpbmRUbyE6IElDb3JlRm9ybUNvbnRyb2xTZWVrZXJFeHRyYUJpbmRpbmdNb2RlbFtdO1xyXG4gIEBJbnB1dCgpIHNlZWtlclZlcmlmeUlnbm9yZSE6IGJvb2xlYW47XHJcblxyXG4gIEBPdXRwdXQoKSBvbkRvdWJsZUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicpIGNvbnRhaW5lciE6IEVsZW1lbnRSZWY7XHJcblxyXG4gIHNvdXJjZU9wZW4hOiBib29sZWFuO1xyXG4gIHNvdXJjZVNwYWNlSGVpZ2h0ITogbnVtYmVyO1xyXG5cclxuICB2YWx1ZVRvU2hvdyE6IHN0cmluZztcclxuICBwbGFjZWhvbGRlciE6IHN0cmluZztcclxuXHJcbiAgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgLyogZm9yIG11bHRpTW9kZSAqL1xyXG4gIHBlbmRpbmdTZWxlY3RlZERhdGE6IGFueVtdID0gW107XHJcbiAgc2VsZWN0ZWREYXRhOiBhbnlbXSA9IFtdO1xyXG4gIFxyXG4gIGNsaWNrZWRJdGVtOiBhbnk7XHJcbiAgbGlzdDogYW55W10gPSBbXTtcclxuXHJcbiAgbXVsdGlNb2RlQ29sdW1uczogSUNvcmVUYWJsZUNvbHVtbkl0ZW1bXSA9IFtdO1xyXG4gIHNob3dFZGl0QnVmZmVyITogYm9vbGVhbjtcclxuICBlZGl0QnVmZmVyRm9ybSE6IEZvcm1Hcm91cDtcclxuICBlZGl0aW5nSWQhOiBudW1iZXI7XHJcbiAgdG9vbHM6IElDb3JlVGFibGVUb29sSXRlbVtdID0gW3tcclxuICAgIGNvZGU6IEVDb3JlVGFibGVUb29sQ29kZS5kZWxldGUsXHJcbiAgICBjbGFzczogRUNvcmVUYWJsZVRvb2xDbGFzcy5kZWxldGUsXHJcbiAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0NPUkVfQ09OVFJPTF9UQUJMRV9UT09MX0RFTEVURVxyXG4gIH1dO1xyXG5cclxuICBzaG93Q2xlYXJJY29uITogYm9vbGVhbjtcclxuICBkZWZhdWx0QXZhdGFyITogc3RyaW5nO1xyXG4gIGhpZGVGb290ZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgaW5kaXJlY3RCaW5kaW5nTGFzdFZpcnR1YWxJZDogbnVtYmVyID0gMDtcclxuXHJcbiAgZXhjbHVkZWRJZHMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXJbXT4oW10pO1xyXG5cclxuICBleGNsdWRlZENvbHVtbnNKb2I6IEVudW1Db3JlU2Vla2VyQ29sdW1uSm9iW10gPSBbXHJcbiAgICBFbnVtQ29yZVNlZWtlckNvbHVtbkpvYi5KT0JfRkFNSUxZLFxyXG4gICAgRW51bUNvcmVTZWVrZXJDb2x1bW5Kb2IuSk9CX1BVUlBPU0UsXHJcbiAgICBFbnVtQ29yZVNlZWtlckNvbHVtbkpvYi5KT0JfTk9URSxcclxuICBdO1xyXG4gIGV4Y2x1ZGVkQ29sdW1uc0VtcGxveWVlOiBFbnVtQ29yZVNlZWtlckNvbHVtblN0YWZmUHJvZmlsZVtdID0gW107XHJcbiAgZXhjbHVkZWRDb2x1bW5zQ29udHJhY3Q6IEVudW1Db3JlU2Vla2VyQ29sdW1uQ29udHJhY3RbXSA9IFtdO1xyXG4gIGV4Y2x1ZGVkQ29sdW1uc1dvcmtpbmc6IEVudW1Db3JlU2Vla2VyQ29sdW1uV29ya2luZ1tdID0gW107XHJcbiAgZXhjbHVkZWRDb2x1bW5zV2FnZTogRW51bUNvcmVTZWVrZXJDb2x1bW5XYWdlW10gPSBbXTtcclxuICBleGNsdWRlZENvbHVtbnNQb3NpdGlvbjogRW51bUNvcmVTZWVrZXJDb2x1bW5Qb3NpdGlvbltdID0gW107XHJcbiAgZXhjbHVkZWRDb2x1bW5zUG9zaXRpb25Db25jdXJyZW50OiBFbnVtQ29yZVNlZWtlckNvbHVtblBvc2l0aW9uQ29uY3VycmVudFtdID0gW107XHJcblxyXG4gIHNvdXJjZUNvbnRhaW5lckhlaWdodCE6IG51bWJlcjtcclxuICBjaGlsZENvbXBvbmVudEhlaWdodCE6IG51bWJlcjtcclxuICBcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBwcml2YXRlIG1sczogTXVsdGlMYW5ndWFnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNvcmVUYWJsZUNvbXBvbmVudDogQ29yZVRhYmxlQ29tcG9uZW50LFxyXG4gICAgcHJpdmF0ZSBjb3JlSm9iU2Vla2VyQ29tcG9uZW50OiBDb3JlSm9iU2Vla2VyQ29tcG9uZW50LFxyXG4gICAgcHJpdmF0ZSBjb3JlRW1wbG95ZWVTZWVrZXJDb21wb25lbnQ6IENvcmVFbXBsb3llZVNlZWtlckNvbXBvbmVudCxcclxuICAgIHByaXZhdGUgY29yZUNvbnRyYWN0U2Vla2VyQ29tcG9uZW50OiBDb3JlQ29udHJhY3RTZWVrZXJDb21wb25lbnQsXHJcbiAgICBwcml2YXRlIGNvcmVXb3JraW5nU2Vla2VyQ29tcG9uZW50OiBDb3JlV29ya2luZ1NlZWtlckNvbXBvbmVudCxcclxuICAgIHByaXZhdGUgY29yZVdhZ2VTZWVrZXJDb21wb25lbnQ6IENvcmVXYWdlU2Vla2VyQ29tcG9uZW50LFxyXG4gICAgcHJpdmF0ZSBjb3JlUG9zaXRpb25TZWVrZXJDb21wb25lbnQ6IENvcmVQb3NpdGlvblNlZWtlckNvbXBvbmVudCxcclxuICAgIHByaXZhdGUgY29yZVBvc2l0aW9uQ29uY3VycmVudFNlZWtlckNvbXBvbmVudDogQ29yZVBvc2l0aW9uQ29uY3VycmVudFNlZWtlckNvbXBvbmVudCxcclxuICAgIHByaXZhdGUgcmFzOiBSYW5kb21BdmF0YXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzZWVrZXJTZXJ2aWNlOiBTZWVrZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBsYXlvdXRTZXJ2aWNlOiBMYXlvdXRTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgdGhpcy5kZWZhdWx0QXZhdGFyID0gcmFzLmdldCgpO1xyXG4gICAgdGhpcy5zZWVrZXJTZXJ2aWNlLnNvdXJjZVNwYWNlSGVpZ2h0JC5zdWJzY3JpYmUoeCA9PiB7XHJcbiAgICAgIHRoaXMuc291cmNlU3BhY2VIZWlnaHQgPSB4O1xyXG4gICAgICB0aGlzLnNvdXJjZUNvbnRhaW5lckhlaWdodCA9IHRoaXMuc2hvd1BhZ2VIZWFkZXIgPyB4IC0gdGhpcy5sYXlvdXRTZXJ2aWNlLmNvcmVQYWdlSGVhZGVySGVpZ2h0IC0gNjggOiB4IC0gNjg7XHJcbiAgICAgIHRoaXMuY2hpbGRDb21wb25lbnRIZWlnaHQgPSB0aGlzLnNvdXJjZUNvbnRhaW5lckhlaWdodDtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc2lnbk11bHRpTW9kZUNvbHVtbnMoKTogdm9pZCB7XHJcbiAgICBzd2l0Y2ggKHRoaXMuc2Vla2VyU291cmNlVHlwZSkge1xyXG4gICAgICBjYXNlIEVudW1Db3JlRm9ybUNvbnRyb2xTZWVrZXJTb3VyY2VUeXBlLkpPQl9TRUVLOlxyXG4gICAgICAgIGNvbnN0IGpvYkNvbHVtbnMgPSB0aGlzLmNvcmVKb2JTZWVrZXJDb21wb25lbnQuY29sdW1ucy5maWx0ZXIoeCA9PiAhIXguam9iU2Vla2VyQ29sdW1uQ29kZSA/ICF0aGlzLmV4Y2x1ZGVkQ29sdW1uc0pvYi5pbmNsdWRlcyh4LmpvYlNlZWtlckNvbHVtbkNvZGUpIDogdHJ1ZSlcclxuICAgICAgICBpZiAoISF0aGlzLm11bHRpTW9kZUV4dGVuZGVkQ29sdW1ucykge1xyXG4gICAgICAgICAgdGhpcy5tdWx0aU1vZGVDb2x1bW5zID0gWy4uLmpvYkNvbHVtbnMsIC4uLnRoaXMubXVsdGlNb2RlRXh0ZW5kZWRDb2x1bW5zXTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5tdWx0aU1vZGVDb2x1bW5zID0gam9iQ29sdW1ucztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghISF0aGlzLm11bHRpTW9kZSkge1xyXG4gICAgICAgICAgdGhpcy5oaWRlRm9vdGVyID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgRW51bUNvcmVGb3JtQ29udHJvbFNlZWtlclNvdXJjZVR5cGUuRU1QTE9ZRUVfU0VFSzpcclxuICAgICAgICBjb25zdCBlbXBsb3llZUNvbHVtbnMgPSB0aGlzLmNvcmVFbXBsb3llZVNlZWtlckNvbXBvbmVudC5jb2x1bW5zLmZpbHRlcih4ID0+ICEheC5lbXBsb3llZVNlZWtlckNvbHVtbkNvZGUgPyAhdGhpcy5leGNsdWRlZENvbHVtbnNFbXBsb3llZS5pbmNsdWRlcyh4LmVtcGxveWVlU2Vla2VyQ29sdW1uQ29kZSkgOiB0cnVlKVxyXG4gICAgICAgIGlmICghIXRoaXMubXVsdGlNb2RlRXh0ZW5kZWRDb2x1bW5zKSB7XHJcbiAgICAgICAgICB0aGlzLm11bHRpTW9kZUNvbHVtbnMgPSBbLi4uZW1wbG95ZWVDb2x1bW5zLCAuLi50aGlzLm11bHRpTW9kZUV4dGVuZGVkQ29sdW1uc107XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubXVsdGlNb2RlQ29sdW1ucyA9IGVtcGxveWVlQ29sdW1ucztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghISF0aGlzLm11bHRpTW9kZSkge1xyXG4gICAgICAgICAgdGhpcy5oaWRlRm9vdGVyID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgRW51bUNvcmVGb3JtQ29udHJvbFNlZWtlclNvdXJjZVR5cGUuQ09OVFJBQ1RfU0VFSzpcclxuICAgICAgICBjb25zdCBjb250cmFjdENvbHVtbnMgPSB0aGlzLmNvcmVDb250cmFjdFNlZWtlckNvbXBvbmVudC5jb2x1bW5zLmZpbHRlcih4ID0+ICEheC5jb250cmFjdFNlZWtlckNvbHVtbkNvZGUgPyAhdGhpcy5leGNsdWRlZENvbHVtbnNDb250cmFjdC5pbmNsdWRlcyh4LmNvbnRyYWN0U2Vla2VyQ29sdW1uQ29kZSkgOiB0cnVlKVxyXG4gICAgICAgIHRoaXMubXVsdGlNb2RlQ29sdW1ucyA9IGNvbnRyYWN0Q29sdW1ucztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBFbnVtQ29yZUZvcm1Db250cm9sU2Vla2VyU291cmNlVHlwZS5XT1JLSU5HX1NFRUs6XHJcbiAgICAgICAgY29uc3Qgd29ya2luZ0NvbHVtbnMgPSB0aGlzLmNvcmVXb3JraW5nU2Vla2VyQ29tcG9uZW50LmNvbHVtbnMuZmlsdGVyKHggPT4gISF4LndvcmtpbmdTZWVrZXJDb2x1bW5Db2RlID8gIXRoaXMuZXhjbHVkZWRDb2x1bW5zV29ya2luZy5pbmNsdWRlcyh4LndvcmtpbmdTZWVrZXJDb2x1bW5Db2RlKSA6IHRydWUpXHJcbiAgICAgICAgdGhpcy5tdWx0aU1vZGVDb2x1bW5zID0gd29ya2luZ0NvbHVtbnM7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgRW51bUNvcmVGb3JtQ29udHJvbFNlZWtlclNvdXJjZVR5cGUuV0FHRV9TRUVLOlxyXG4gICAgICAgIGNvbnN0IHdhZ2VDb2x1bW5zID0gdGhpcy5jb3JlV2FnZVNlZWtlckNvbXBvbmVudC5jb2x1bW5zLmZpbHRlcih4ID0+ICEheC53YWdlU2Vla2VyQ29sdW1uQ29kZSA/ICF0aGlzLmV4Y2x1ZGVkQ29sdW1uc1dhZ2UuaW5jbHVkZXMoeC53YWdlU2Vla2VyQ29sdW1uQ29kZSkgOiB0cnVlKVxyXG4gICAgICAgIHRoaXMubXVsdGlNb2RlQ29sdW1ucyA9IHdhZ2VDb2x1bW5zO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIEVudW1Db3JlRm9ybUNvbnRyb2xTZWVrZXJTb3VyY2VUeXBlLlBPU0lUSU9OX1NFRUs6XHJcbiAgICAgICAgY29uc3QgcG9zaXRpb25Db2x1bW5zID0gdGhpcy5jb3JlUG9zaXRpb25TZWVrZXJDb21wb25lbnQuY29sdW1ucy5maWx0ZXIoeCA9PiAhIXgucG9zaXRpb25TZWVrZXJDb2x1bW5Db2RlID8gIXRoaXMuZXhjbHVkZWRDb2x1bW5zUG9zaXRpb24uaW5jbHVkZXMoeC5wb3NpdGlvblNlZWtlckNvbHVtbkNvZGUpIDogdHJ1ZSlcclxuICAgICAgICB0aGlzLm11bHRpTW9kZUNvbHVtbnMgPSBwb3NpdGlvbkNvbHVtbnM7XHJcbiAgICAgICAgaWYgKCEhIXRoaXMubXVsdGlNb2RlKSB7XHJcbiAgICAgICAgICB0aGlzLmhpZGVGb290ZXIgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBFbnVtQ29yZUZvcm1Db250cm9sU2Vla2VyU291cmNlVHlwZS5QT1NJVElPTl9DT05DVVJSRU5UX1NFRUs6XHJcbiAgICAgICAgY29uc3QgcG9zaXRpb25Db25jdXJyZW50Q29sdW1ucyA9IHRoaXMuY29yZVBvc2l0aW9uQ29uY3VycmVudFNlZWtlckNvbXBvbmVudC5jb2x1bW5zLmZpbHRlcih4ID0+ICEheC5wb3NpdGlvbkNvbmN1cnJlbnRTZWVrZXJDb2x1bW5Db2RlID8gIXRoaXMuZXhjbHVkZWRDb2x1bW5zUG9zaXRpb25Db25jdXJyZW50LmluY2x1ZGVzKHgucG9zaXRpb25Db25jdXJyZW50U2Vla2VyQ29sdW1uQ29kZSkgOiB0cnVlKVxyXG4gICAgICAgIHRoaXMubXVsdGlNb2RlQ29sdW1ucyA9IHBvc2l0aW9uQ29uY3VycmVudENvbHVtbnM7XHJcbiAgICAgICAgaWYgKCEhIXRoaXMubXVsdGlNb2RlKSB7XHJcbiAgICAgICAgICB0aGlzLmhpZGVGb290ZXIgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBFbnVtQ29yZUZvcm1Db250cm9sU2Vla2VyU291cmNlVHlwZS5PUkdBTklaQVRJT05fVU5JVF9TRUVLOlxyXG4gICAgICAgIHRoaXMubXVsdGlNb2RlQ29sdW1ucyA9IFtdO1xyXG4gICAgICAgIGlmICghISF0aGlzLm11bHRpTW9kZSkge1xyXG4gICAgICAgICAgdGhpcy5oaWRlRm9vdGVyID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcblxyXG4gICAgLypcclxuICAgIElmIHdlIHRyeSB0byBpbmplY3QgTmdDb250cm9sIGRpcmVjdGx5IHdpdGhpbiB0aGUgY29uc3RydWN0b3IsIHdlIHdpbGwgZ2V0IGFuIGVycm9yOiDigJxFcnJvcjogTkcwMjAwOiBDaXJjdWxhciBkZXBlbmRlbmN5IGluIERJIGRldGVjdGVk4oCm4oCdLlxyXG4gICAgVGh1cywgd2UgaW5qZWN0IE5nQ29udHJvbCBpbiB0aGUgT25Jbml0IGxpZmVjeWNsZSBob29rIHZpYSBJbmplY3RvciB3aXRob3V0IGFueSBlcnJvci5cclxuICAgICovXHJcbiAgICB0aGlzLm5nQ29udHJvbCA9IHRoaXMuaW5qZWN0b3IuZ2V0KE5nQ29udHJvbCk7XHJcbiAgICB0aGlzLmFzaWduTXVsdGlNb2RlQ29sdW1ucygpO1xyXG5cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuXHJcbiAgICAgIHRoaXMubXVsdGlNb2RlQ29sdW1ucz8ubWFwKGMgPT4ge1xyXG4gICAgICAgIGlmIChjLmZpZWxkID09PSAnYXZhdGFyJyAmJiAhISFjLnRlbXBsYXRlUmVmKSBjLnRlbXBsYXRlUmVmID0gdGhpcy5hdmF0YXJcclxuICAgICAgICBpZiAoYy5maWVsZCA9PT0gJ2FjdGZsZycgJiYgISEhYy50ZW1wbGF0ZVJlZikgYy50ZW1wbGF0ZVJlZiA9IHRoaXMuc3RpY2tlclxyXG4gICAgICB9KVxyXG5cclxuICAgICAgY29uc3QgZWwgPSB0aGlzLmNvbnRhaW5lcj8ubmF0aXZlRWxlbWVudDtcclxuICAgICAgY29uc3QgaGVpZ2h0ID0gZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0O1xyXG4gICAgICBlbC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1oZWlnaHQnLCAoaGVpZ2h0IHx8IDUwKSArICdweCcpO1xyXG5cclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgdGhpcy5tbHMubGFuZyQuc3Vic2NyaWJlKHggPT4gdGhpcy5sYW5nID0geClcclxuICAgICAgKVxyXG5cclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgdGhpcy5uZ0NvbnRyb2wuY29udHJvbD8udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh4ID0+IHtcclxuICAgICAgICAgIGlmICghISF4KSB0aGlzLnZhbHVlVG9TaG93ID0gXCJcIlxyXG4gICAgICAgIH0pIVxyXG4gICAgICApXHJcblxyXG4gICAgICBpZiAodGhpcy5jbGljayQgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgICAgdGhpcy5jbGljayQucGlwZSggZmlsdGVyKHggPT4gISF4KSApLnN1YnNjcmliZSh4ID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zb3VyY2VPcGVuID0gdHJ1ZTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKVxyXG4gICAgICB9XHJcblxyXG4gICAgICAvKiBTVEFSVDogQ0hFQ0sgSU5QVVRTICovXHJcblxyXG5cclxuICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgICAgaWYgKCEhIXRoaXMuc2Vla2VyU291cmNlVHlwZSkge1xyXG4gICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoXHJcbiAgICAgICAgICAgIGBDb3JlRm9ybUNvbnRyb2xTZWVrZXJDb21wb25lbnQgRXJyb3I6IFJlcXVpcmVkIGlucHV0czpcclxuICAgICAgICAgICAgICAgIHNlZWtlclNvdXJjZVR5cGU6IEVudW1Db3JlRm9ybUNvbnRyb2xTZWVrZXJTb3VyY2VUeXBlIChmb3IgJyR7dGhpcy5uZ0NvbnRyb2wubmFtZX0nKWBcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuXHJcblxyXG4gICAgICAgICAgaWYgKCEhIXRoaXMucGFyYW1Nb2RlKSB7XHJcblxyXG4gICAgICAgICAgICAvL2dldEJ5SWRPYmplY3QkXHJcbiAgICAgICAgICAgIGlmICghISF0aGlzLmdldEJ5SWRPYmplY3QkKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoXHJcbiAgICAgICAgICAgICAgICBgQ29yZUZvcm1Db250cm9sU2Vla2VyQ29tcG9uZW50IEVycm9yOiBSZXF1aXJlZCBpbnB1dHM6XHJcbiAgICAgICAgICAgICAgICAgIGdldEJ5SWRPYmplY3QkOiBCZWhhdmlvclN1YmplY3QmbHQ7YW55Jmd0OyAoZm9yICcke3RoaXMubmdDb250cm9sLm5hbWV9JylgXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlmICghdGhpcy5ib3VuZEZyb20gJiYgIXRoaXMubXVsdGlNb2RlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmVycm9yKFxyXG4gICAgICAgICAgICAgIGBBbGwgX1NFRUtFUiBjb250cm9scyByZXF1aXJlIGlucHV0OlxyXG4gICAgICAgICAgICAgICAgICAgIGJvdW5kRnJvbTogc3RyaW5nOyAoZm9yICcke3RoaXMubmdDb250cm9sLm5hbWV9JylgLFxyXG4gICAgICAgICAgICAgIG5vbmVBdXRvQ2xvc2VkQWxlcnRPcHRpb25zXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoISEhdGhpcy5zaG93bkZyb20gJiYgIXRoaXMubXVsdGlNb2RlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmVycm9yKFxyXG4gICAgICAgICAgICAgIGBBbGwgX1NFRUtFUiBjb250cm9scyByZXF1aXJlIGlucHV0OlxyXG4gICAgICAgICAgICAgICAgICAgIHNob3duRnJvbTogc3RyaW5nOyAoZm9yICcke3RoaXMubmdDb250cm9sLm5hbWV9JylgLFxyXG4gICAgICAgICAgICAgIG5vbmVBdXRvQ2xvc2VkQWxlcnRPcHRpb25zXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKCEhdGhpcy5pbmRpcmVjdEJpbmRpbmcpIHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLmJpbmRHcmlkSWRUbykge1xyXG4gICAgICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmVycm9yKFxyXG4gICAgICAgICAgICAgICAgYENvcmVGb3JtQ29udHJvbFNlZWtlckNvbXBvbmVudCBFcnJvcjogTuG6v3UgaW5kaXJlY3RCaW5kaW5nID0gdHJ1ZSwgYuG6r3QgYnXhu5ljIHBo4bqjaSBjw7MgdGjDqm0gdGh14buZYyB0w61uaCBiaW5kR3JpZElkVG8gKHRyxrDhu51uZyAnJHt0aGlzLm5nQ29udHJvbC5uYW1lfScpYFxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG5cclxuICAgICAgLyogRU5EOiBDSEVDSyBJTlBVVFMgKi9cclxuXHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgIHRoaXMuZ2V0QnlJZE9iamVjdCQ/LnN1YnNjcmliZSh4ID0+IHtcclxuXHJcbiAgICAgICAgICBpZiAoISF4KSB7XHJcbiAgICAgICAgICAgIGlmICghISF0aGlzLm11bHRpTW9kZSkge1xyXG4gICAgICAgICAgICAgIHRoaXMudmFsdWVUb1Nob3cgPSB4W3RoaXMuc2hvd25Gcm9tXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKCEhIXRoaXMubXVsdGlNb2RlKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy52YWx1ZVRvU2hvdyA9IFwiXCI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICApXHJcblxyXG4gICAgICBpZiAoISF0aGlzLm9iamVjdExpc3QkKSB7XHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgICB0aGlzLm9iamVjdExpc3QkLnN1YnNjcmliZSh4ID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGEgPSB4O1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuZXhjbHVkZUV4aXN0aW5nTGlzdCkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IG5ld0V4Y2x1ZGVkSWRzOiBudW1iZXJbXSA9IFtdO1xyXG4gICAgICAgICAgICAgIHgubWFwKGkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmluZGlyZWN0QmluZGluZykge1xyXG4gICAgICAgICAgICAgICAgICBuZXdFeGNsdWRlZElkcy5wdXNoKGkuaWQpXHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICBuZXdFeGNsdWRlZElkcy5wdXNoKGlbdGhpcy5iaW5kR3JpZElkVG9dKVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgdGhpcy5leGNsdWRlZElkcyQubmV4dChuZXdFeGNsdWRlZElkcyk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIClcclxuICAgICAgfVxyXG5cclxuICAgIH0pXHJcblxyXG5cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLm1hcCh4ID0+IHg/LnVuc3Vic2NyaWJlKCkpXHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudmFsdWUgPSBvYmopO1xyXG4gICAgaWYgKCEhdGhpcy5tdWx0aU1vZGUpIHtcclxuICAgICAgY29uc29sZS5ncm91cCgnV3JpdGUgdmFsdWUgZm9yICcgKyB0aGlzLm5nQ29udHJvbC5uYW1lKTtcclxuICAgICAgY29uc29sZS5sb2coXCJ0aGlzLm11bHRpTW9kZUNvbHVtbnNcIiwgdGhpcy5tdWx0aU1vZGVDb2x1bW5zKVxyXG4gICAgICBjb25zb2xlLmxvZygnVG8gZG86IEFzc2lnbiBhcGkgcmVzIHRvIHRoZSBzZWxlY3RlZERhdGEnKVxyXG4gICAgICBjb25zb2xlLmdyb3VwRW5kKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNsaWNrU2VlaygpOiB2b2lkIHtcclxuICAgIHRoaXMuY2xpY2skPy5uZXh0KHRydWUpO1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5yZWFkb25seSkgcmV0dXJuO1xyXG4gICAgaWYgKHRoaXMuY2xpY2skID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgLy8gbWFudWFsbHkgb3BlbiB0aGUgcG9wdXBcclxuICAgICAgdGhpcy5zb3VyY2VPcGVuID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uU2VsZWN0KCk6IHZvaWQge1xyXG4gICAgaWYgKCEhdGhpcy5tdWx0aU1vZGUpIHtcclxuXHJcbiAgICAgIGlmICghdGhpcy5pbmRpcmVjdEJpbmRpbmcpIHtcclxuICAgICAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLnBlbmRpbmdTZWxlY3RlZERhdGEuZmlsdGVyKHggPT4gdGhpcy5zZWxlY3RlZERhdGEuZmlsdGVyKHkgPT4geS5pZCA9PT0geC5pZCkubGVuZ3RoID09PSAwKVxyXG4gICAgICAgIGNvbnN0IG5ld1NlbGVjdGVkRGF0YSA9IFsuLi50aGlzLnNlbGVjdGVkRGF0YSwgLi4uZmlsdGVyXTtcclxuICAgICAgICBjb25zdCBuZXdTZWxlY3RlZElkczogYW55W10gPSBbXTtcclxuICAgICAgICBuZXdTZWxlY3RlZERhdGEubWFwKHggPT4gbmV3U2VsZWN0ZWRJZHMucHVzaCh4LmlkKSlcclxuICAgICAgICB0aGlzLm9iamVjdExpc3QkLm5leHQobmV3U2VsZWN0ZWREYXRhKTtcclxuICAgICAgICB0aGlzLnZhbHVlID0gbmV3U2VsZWN0ZWRJZHM7XHJcbiAgICAgICAgdGhpcy5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZShuZXdTZWxlY3RlZElkcylcclxuICAgICAgICB0aGlzLnBlbmRpbmdTZWxlY3RlZERhdGEgPSBbXTtcclxuICAgICAgICB0aGlzLnNvdXJjZU9wZW4gPSBmYWxzZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnBlbmRpbmdTZWxlY3RlZERhdGEubWFwKHggPT4ge1xyXG4gICAgICAgICAgLy8gZ8OhbiBpZCBj4bunYSBsxrDhu5tpIG5ndeG7k24gdsOgbyBj4buZdCBj4bqnbiB0aGnhur90XHJcbiAgICAgICAgICB4W3RoaXMuYmluZEdyaWRJZFRvXSA9IHguaWRcclxuICAgICAgICAgIC8vIHNhdSDEkcOzIGhvw6FuIGlkIG7DoHkgc2FuZyBnacOhIHRy4buLIOG6o28sIGVhY2ggXCJ4XCIgaXRlbSBtdXN0IGhhdmUgYW4gdW5pcXVlIGlkXHJcbiAgICAgICAgICB0aGlzLmluZGlyZWN0QmluZGluZ0xhc3RWaXJ0dWFsSWQgLT0gMTtcclxuICAgICAgICAgIHguaWQgPSB0aGlzLmluZGlyZWN0QmluZGluZ0xhc3RWaXJ0dWFsSWQ7IC8vIHVzaW5nIG5hZ2F0aXZlIHZhbHVlIHRvIGJ5cGFzcyAobG9vc2luZyBvZi9jb25mdXNpbmcgd2l0aCkgZXhpc3RpbmcgaWRzXHJcbiAgICAgICAgfSlcclxuICAgICAgICBjb25zdCBuZXdTZWxlY3RlZERhdGEgPSBbLi4udGhpcy5zZWxlY3RlZERhdGEsIC4uLnRoaXMucGVuZGluZ1NlbGVjdGVkRGF0YV07XHJcbiAgICAgICAgLy8gY29uc3QgbmV3U2VsZWN0ZWRJZHM6IGFueVtdID0gW107XHJcbiAgICAgICAgLy8gbmV3U2VsZWN0ZWREYXRhLm1hcCh4ID0+IG5ld1NlbGVjdGVkSWRzLnB1c2goeC5pZCkpXHJcbiAgICAgICAgdGhpcy5vYmplY3RMaXN0JC5uZXh0KG5ld1NlbGVjdGVkRGF0YSk7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IG5ld1NlbGVjdGVkRGF0YTtcclxuICAgICAgICB0aGlzLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlKG5ld1NlbGVjdGVkRGF0YSlcclxuICAgICAgICB0aGlzLnBlbmRpbmdTZWxlY3RlZERhdGEgPSBbXTtcclxuICAgICAgICB0aGlzLnNvdXJjZU9wZW4gPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKCEhdGhpcy5jbGlja2VkSXRlbSkge1xyXG4gICAgICAgIHRoaXMub25Sb3dEb3VibGVDbGljayh0aGlzLmNsaWNrZWRJdGVtKTtcclxuICAgICAgICB0aGlzLmNsaWNrZWRJdGVtID0gdW5kZWZpbmVkO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNhbmNlbCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc291cmNlT3BlbiA9IGZhbHNlO1xyXG4gICAgdGhpcy5jbGlja2VkSXRlbSA9IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIG9uUm93RG91YmxlQ2xpY2soZTogYW55KSB7XHJcbiAgICB0aGlzLndyaXRlVmFsdWUoZVt0aGlzLmJvdW5kRnJvbV0pO1xyXG4gICAgdGhpcy5vbkNoYW5nZShlW3RoaXMuYm91bmRGcm9tXSk7XHJcbiAgICB0aGlzLnZhbHVlVG9TaG93ID0gZVt0aGlzLnNob3duRnJvbV07XHJcbiAgICB0aGlzLnNvdXJjZU9wZW4gPSBmYWxzZTtcclxuXHJcbiAgICBpZiAoISF0aGlzLmFsc29CaW5kVG8pIHtcclxuICAgICAgY29uc3QgZm9ybSA9IHRoaXMubmdDb250cm9sLmNvbnRyb2w/LnBhcmVudDtcclxuICAgICAgaWYgKGZvcm0pIHtcclxuICAgICAgICB0aGlzLmFsc29CaW5kVG8ubWFwKCh4LCBpbmRleCkgPT4ge1xyXG5cclxuICAgICAgICAgIC8qXHJcbiAgICAgICAgICBzdGFydDogVmFsaWRhdGUgRGV2ZWxvcGVyIGlucHV0XHJcbiAgICAgICAgICAqL1xyXG4gICAgICAgICAgaWYgKGlzRGV2TW9kZSgpICYmIGluZGV4ID09PSAwKSB7XHJcbiAgICAgICAgICAgIGlmICghISF4LnRha2VGcm9tKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoXCJ0YWtlRnJvbSB3YXMgdW5kZWZpbmVkXCIsIG5vbmVBdXRvQ2xvc2VkQWxlcnRPcHRpb25zKVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGlmICghISFlW3gudGFrZUZyb21dKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5lcnJvcihgWW91IGV4cGVjdCBhIHZhbHVlIGZyb20gJyR7eC50YWtlRnJvbX0nLCBidXQgdGhlIHNlZWtlciBncmlkIGRvZXMgbm90IGhhdmUgdGhpcyBjb2x1bW5gLCBub25lQXV0b0Nsb3NlZEFsZXJ0T3B0aW9ucylcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKCEhIXguYmluZFRvKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoXCJiaW5kVG8gd2FzIHVuZGVmaW5lZFwiLCBub25lQXV0b0Nsb3NlZEFsZXJ0T3B0aW9ucylcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBpZiAoISEhZm9ybS5nZXQoeC5iaW5kVG8pKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5lcnJvcihgWW91IGV4cGVjdCB0byBiaW5kIHZhbHVlIHRvICcke3guYmluZFRvfScsIGJ1dCB0aGUgZm9ybSBncm91cCBkb2VzIG5vdCBoYXZlIHRoaXMgY29udHJvbGAsIG5vbmVBdXRvQ2xvc2VkQWxlcnRPcHRpb25zKVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8qXHJcbiAgICAgICAgICBlbmQ6IFZhbGlkYXRlIERldmVsb3BlciBpbnB1dFxyXG4gICAgICAgICAgKi9cclxuXHJcbiAgICAgICAgICBmb3JtLmdldCh4LmJpbmRUbyk/LnNldFZhbHVlKGVbeC50YWtlRnJvbV0pO1xyXG4gICAgICAgICAgZm9ybS5nZXQoeC5iaW5kVG8pPy5tYXJrQXNUb3VjaGVkO1xyXG4gICAgICAgICAgZm9ybS5nZXQoeC5iaW5kVG8pPy5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uSXRlbURvdWJsZUNsaWNrKGU6IElPcmdUcmVlSXRlbSkge1xyXG4gICAgdGhpcy53cml0ZVZhbHVlKGUuaWQpO1xyXG4gICAgdGhpcy52YWx1ZVRvU2hvdyA9IGUudHJlZSRUaXRsZTtcclxuICAgIHRoaXMub25DaGFuZ2UoZS5pZCk7XHJcbiAgICB0aGlzLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgIHRoaXMuc291cmNlT3BlbiA9IGZhbHNlO1xyXG4gICAgdGhpcy5vbkRvdWJsZUNsaWNrLmVtaXQoZSk7XHJcbiAgfVxyXG5cclxuICBvbkNvbHVtbnNJbml0KGU6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKCEhdGhpcy5tdWx0aU1vZGVFeHRlbmRlZENvbHVtbnMpIHtcclxuICAgICAgdGhpcy5tdWx0aU1vZGVDb2x1bW5zID0gWy4uLmUsIC4uLnRoaXMubXVsdGlNb2RlRXh0ZW5kZWRDb2x1bW5zXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubXVsdGlNb2RlQ29sdW1ucyA9IGU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblNlbGVjdGVkRGF0YUNoYW5nZShlOiBhbnkpIHtcclxuICAgIGlmICghIXRoaXMubXVsdGlNb2RlRXh0ZW5kZWRDb2x1bW5zKSB7XHJcbiAgICAgIHRoaXMubXVsdGlNb2RlQ29sdW1ucyA9IFsuLi5lLmNvbHVtbnMsIC4uLnRoaXMubXVsdGlNb2RlRXh0ZW5kZWRDb2x1bW5zXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubXVsdGlNb2RlQ29sdW1ucyA9IGUuY29sdW1ucztcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnBlbmRpbmdTZWxlY3RlZERhdGEgPSBlLmRhdGE7XHJcbiAgfVxyXG5cclxuICBvblRvb2xDbGljayhlOiBJQ29yZVRhYmxlVG9vbENsaWNrRXZlbnRFbWl0dGVyRGF0YSkge1xyXG4gICAgaWYgKGUuY29kZSA9PT0gRUNvcmVUYWJsZVRvb2xDb2RlLmRlbGV0ZSkge1xyXG4gICAgICBjb25zdCBuZXdPYmplY3RMaXN0ID0gdGhpcy5vYmplY3RMaXN0JC52YWx1ZS5maWx0ZXIoeCA9PiB4LmlkICE9PSBlLmlkKVxyXG5cclxuICAgICAgdGhpcy5vYmplY3RMaXN0JC5uZXh0KG5ld09iamVjdExpc3QpO1xyXG5cclxuICAgICAgaWYgKCF0aGlzLmluZGlyZWN0QmluZGluZykge1xyXG4gICAgICAgIGNvbnN0IG5ld0lkcyA9IHRoaXMudmFsdWUuZmlsdGVyKCh4OiBhbnkpID0+IHggIT09IGUuaWQpXHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IG5ld0lkcztcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlKG5ld0lkcyk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IG5ld09iamVjdExpc3Q7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZShuZXdPYmplY3RMaXN0KTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ2xpY2tDbGVhcigpIHtcclxuXHJcbiAgICB0aGlzLndyaXRlVmFsdWUobnVsbCk7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKG51bGwpO1xyXG4gICAgdGhpcy52YWx1ZVRvU2hvdyA9IFwiXCI7XHJcblxyXG4gIH1cclxuXHJcbiAgb25TZWxlY3RlZERhdGFSb3dEb3VibGVDbGljayhlOiBhbnkpIHtcclxuXHJcbiAgICBpZiAoIXRoaXMuZWRpdEJ1ZmZlckRhdGEkKSByZXR1cm47XHJcblxyXG4gICAgY29uc29sZS5sb2coXCJHaXZlbiByb3cgZGF0YTogXCIsIGUpXHJcbiAgICBpZiAoIWUuaWQpIHtcclxuICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoXCJObyAnaWQnIGNvbHVtbnMgZm91bmQgb3IgY3VycmVudCBpZCB3YXMgbnVsbFwiLCBub25lQXV0b0Nsb3NlZEFsZXJ0T3B0aW9ucyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0cnkge1xyXG4gICAgICB0aGlzLmVkaXRCdWZmZXJGb3JtPy5nZXQoJ2lkJyk/LnBhdGNoVmFsdWUoZS5pZClcclxuICAgIH0gY2F0Y2ggKGV4OiBhbnkpIHtcclxuICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoZXgubWVzc2FnZSwgbm9uZUF1dG9DbG9zZWRBbGVydE9wdGlvbnMpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoISF0aGlzLm11bHRpTW9kZUV4dGVuZGVkQ29sdW1ucy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5tdWx0aU1vZGVFeHRlbmRlZENvbHVtbnMubWFwKHggPT4ge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICB0aGlzLmVkaXRCdWZmZXJGb3JtPy5nZXQoeC5maWVsZCk/LnBhdGNoVmFsdWUoZVt4LmZpZWxkXSlcclxuICAgICAgICB9IGNhdGNoIChleGNlcHRpb246IGFueSkge1xyXG4gICAgICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmVycm9yKGV4Y2VwdGlvbi5tZXNzYWdlLCBub25lQXV0b0Nsb3NlZEFsZXJ0T3B0aW9ucyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICB0cnkge1xyXG4gICAgICAgIHRoaXMuZWRpdGluZ0lkID0gZS5pZDtcclxuICAgICAgfSBjYXRjaCAoZXhjZXB0aW9uOiBhbnkpIHtcclxuICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmVycm9yKGV4Y2VwdGlvbi5tZXNzYWdlLCBub25lQXV0b0Nsb3NlZEFsZXJ0T3B0aW9ucyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLnNob3dFZGl0QnVmZmVyID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uRWRpdEJ1ZmZlclN1Ym1pdChlOiBhbnkpIHtcclxuICAgIHZhciBmb3JtRGF0YSA9IHRoaXMuZWRpdEJ1ZmZlckZvcm0uZ2V0UmF3VmFsdWUoKTtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IGZpbHRlciA9IHRoaXMuc2VsZWN0ZWREYXRhPy5maWx0ZXIoeCA9PiB4LmlkID09PSB0aGlzLmVkaXRpbmdJZCk7XHJcbiAgICAgIGlmIChmaWx0ZXI/Lmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgIHRoaXMubXVsdGlNb2RlRXh0ZW5kZWRDb2x1bW5zPy5tYXAoYyA9PiB7XHJcbiAgICAgICAgICBmaWx0ZXJbMF1bYy5maWVsZF0gPSBmb3JtRGF0YVtjLmZpZWxkXTtcclxuICAgICAgICB9KVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZWRpdEJ1ZmZlckRhdGEkLm5leHQoZm9ybURhdGEpO1xyXG4gICAgICB0aGlzLnNob3dFZGl0QnVmZmVyID0gZmFsc2U7XHJcbiAgICB9IGNhdGNoIChleDogYW55KSB7XHJcbiAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGV4KTtcclxuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5lcnJvcihleC5tZXNzYWdlIHx8ICdBbiBlcnJvciBvY2N1cmVkIHdoaWxlIHRyeWluZyB0byB1cGRhdGUgc2VsZWN0ZWREYXRhJywgbm9uZUF1dG9DbG9zZWRBbGVydE9wdGlvbnMpXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uRWRpdEJ1ZmZlckNhbmNlbChlOiBhbnkpIHtcclxuICAgIHRoaXMuc2hvd0VkaXRCdWZmZXIgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIG9uRWRpdEJ1ZmZlckZvcm1DcmVhdGVkKGU6IEZvcm1Hcm91cCkge1xyXG4gICAgdGhpcy5lZGl0QnVmZmVyRm9ybSA9IGU7XHJcbiAgfVxyXG5cclxuICBpc1NvdXJjZU9wZW4oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5zb3VyY2VPcGVuO1xyXG4gIH1cclxuXHJcbiAgb25Sb3dDbGljayhlOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuY2xpY2tlZEl0ZW0gPSBlO1xyXG4gIH1cclxuXHJcbiAgY2xpY2tlZEl0ZW1Jc0luVGhlTGlzdCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhIXRoaXMubGlzdC5maWx0ZXIoeCA9PiB4LmlkID09PSB0aGlzLmNsaWNrZWRJdGVtPy5pZCkubGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgb25MaXN0Q2hhbmdlKGU6IGFueVtdKSB7XHJcbiAgICBpZiAoZS5jb25zdHJ1Y3RvciA9PT0gQXJyYXkpIHtcclxuICAgICAgdGhpcy5saXN0ID0gZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubGlzdCA9IFtdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn0iLCI8ZGl2ICNjb250YWluZXIgY2xhc3M9XCJjb3JlLWZvcm0tY29udHJvbC1zZWVrZXItY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtd3JhcHBlclwiIFtjbGFzcy5kLW5vbmVdPVwiISFtdWx0aU1vZGVcIj5cclxuICAgICAgICA8bGFiZWwgI3Nob3duVGV4dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwidGV4dCBmb3JtLWNvbnRyb2wgcG9pbnRlclwiIFtjbGFzcy5mb3JtLWNvbnRyb2wtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwib25DbGlja1NlZWsoKVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBbYXBwVG9vbHRpcF09XCJ2YWx1ZVRvU2hvd1wiPnt7IHZhbHVlVG9TaG93IH19PC9zcGFuPlxyXG4gICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgQGlmICghbXVsdGlNb2RlKSB7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNsZWFyLWljb24td3JhcHBlclwiIFtjbGFzcy5kLW5vbmVdPVwiISFkaXNhYmxlZCB8fCAhISF2YWx1ZVwiIChjbGljayk9XCJvbkNsaWNrQ2xlYXIoKVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC13cmFwcGVyXCIgW2FwcFRvb2x0aXBdPVwiJ1VJLkNPUkVfQ09OVE9MX0NPTU1PTl9DTEVBUicgfCB0cmFuc2xhdGU6IGxhbmdcIj5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmVhdGhlci14XCI+PC9pPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJzZWVrZXItaWNvbi13cmFwcGVyXCIgW2NsYXNzLmZvcm0tY29udHJvbC1kaXNhYmxlZF09XCJkaXNhYmxlZFwiIFtjbGFzcy5tdWx0aS1tb2RlXT1cIiEhbXVsdGlNb2RlXCJcclxuICAgICAgICAoY2xpY2spPVwib25DbGlja1NlZWsoKVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LXdyYXBwZXJcIiBbY2xhc3MuZm9ybS1jb250cm9sLWRpc2FibGVkXT1cImRpc2FibGVkXCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmVhdGhlci1zZWFyY2hcIj48L2k+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIEBpZiAoISFtdWx0aU1vZGUpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJjb3JlLXRhYmJlLXdyYXBwZXJcIj5cclxuICAgICAgICA8Y29yZS10YWJsZSBbaGVpZ2h0XT1cIm11bHRpTW9kZVRhYmxlSGVpZ2h0XCIgW2NvbHVtbnNdPVwibXVsdGlNb2RlQ29sdW1uc1wiIFtkYXRhXT1cInNlbGVjdGVkRGF0YVwiXHJcbiAgICAgICAgICAgIFtzaG93VG9vbHNdPVwiISEhZGlzYWJsZWRcIiBbdG9vbHNdPVwidG9vbHNcIiBbbGF6eUxvYWRpbmddPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgIFtyb3dIZWlnaHRdPVwiKG11bHRpTW9kZVJvd0hlaWdodCB8fCA0NikgKyAncHgnXCIgW3NlYXJjaFN3aXRjaERpc2FibGVkXT1cInRydWVcIiBbZGlzYWJsZVNvcnRpbmddPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgIChvblRvb2xDbGljayk9XCJvblRvb2xDbGljaygkZXZlbnQpXCIgKG9uUm93RG91YmxlQ2xpY2spPVwib25TZWxlY3RlZERhdGFSb3dEb3VibGVDbGljaygkZXZlbnQpXCI+PC9jb3JlLXRhYmxlPlxyXG4gICAgPC9kaXY+XHJcbiAgICB9XHJcblxyXG4gICAgQGlmICghIXNvdXJjZU9wZW4pIHtcclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1jb250YWluZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudC1yb290XCIgW25nU3R5bGVdPVwieyBwYWRkaW5nOiAnMHB4JyB9XCI+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic291cmNlLXNwYWNlXCIgW25nU3R5bGVdPVwie1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBzb3VyY2VTcGFjZUhlaWdodCArICdweCcsXHJcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogJ2hpZGRlbicsXHJcbiAgICAgICAgICAgICAgICBib3hTaXppbmc6ICdib3JkZXItYm94JyxcclxuICAgICAgICAgICAgfVwiPlxyXG4gICAgICAgICAgICAgICAgQGlmIChzaG93UGFnZUhlYWRlcikge1xyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlci1wYW5lbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjb3JlLXBhZ2UtaGVhZGVyIFt0aXRsZV09XCJ0aXRsZVwiIFtoaWRlQnV0dG9uR3JvdXBdPVwidHJ1ZVwiPjwvY29yZS1wYWdlLWhlYWRlcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNvdXJjZS1jb250YWluZXJcIiBbbmdTdHlsZV09XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBzb3VyY2VDb250YWluZXJIZWlnaHQgKyAncHgnLFxyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmdUb3A6ICcwcHgnLFxyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmdCb3R0b206ICcwcHgnXHJcbiAgICAgICAgICAgICAgICB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJjbG9zZS1pY29uIGZlYXRoZXIteFwiIChjbGljayk9XCJvbkNhbmNlbCgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmQtYmxvY2tdPVwic2Vla2VyU291cmNlVHlwZT09PSdPUkdBTklaQVRJT05fVU5JVF9TRUVLJ1wiPjwvaT5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgQHN3aXRjaCAoc2Vla2VyU291cmNlVHlwZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIEBjYXNlICgnSk9CX1NFRUsnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImpvYlNlZWtcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCdFTVBMT1lFRV9TRUVLJykge1xyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlbXBsb3llZVNlZWtcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCdDT05UUkFDVF9TRUVLJykge1xyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250cmFjdFNlZWtcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCdXT1JLSU5HX1NFRUsnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIndvcmtpbmdTZWVrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIEBjYXNlICgnV0FHRV9TRUVLJykge1xyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ3YWdlU2Vla1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBAY2FzZSAoJ09SR0FOSVpBVElPTl9VTklUX1NFRUsnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm9yZ2FuaXphdGlvblVuaXRTZWVrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIEBjYXNlICgnUE9TSVRJT05fU0VFSycpIHtcclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicG9zaXRpb25TZWVrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIEBjYXNlICgnUE9TSVRJT05fQ09OQ1VSUkVOVF9TRUVLJykge1xyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwb3NpdGlvbkNvbmN1cnJlbnRTZWVrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleC1lbmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmICgoc2Vla2VyU291cmNlVHlwZSA9PT0gJ09SR0FOSVpBVElPTl9VTklUX1NFRUsnICYmICEhY2xpY2tlZEl0ZW0pIHx8ICghIW11bHRpTW9kZSAmJiAhIXBlbmRpbmdTZWxlY3RlZERhdGE/Lmxlbmd0aCkgfHwgKCFtdWx0aU1vZGUgJiYgISFjbGlja2VkSXRlbUlzSW5UaGVMaXN0KCkpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9uU2VsZWN0KClcIj57e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1VJX0NPUkVfQ09ORklSTV9ESUFMT0dfQlVUVE9OX1NFTEVDVCcgfCB0cmFuc2xhdGU6IGxhbmcgfX08L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnlcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9uQ2FuY2VsKClcIj57e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1VJX0NPUkVfQ09ORklSTV9ESUFMT0dfQlVUVE9OX0NBTkNFTCcgfCB0cmFuc2xhdGU6IGxhbmcgfX08L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICB9XHJcblxyXG48L2Rpdj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjam9iU2Vlaz5cclxuICAgIDxjb3JlLWpvYi1zZWVrZXIgW2V4Y2x1ZGVkQ29sdW1uc109XCJleGNsdWRlZENvbHVtbnNKb2JcIiBbcHJlRGVmaW5lZE91dGVyUGFyYW0kXT1cInByZURlZmluZWRPdXRlclBhcmFtJFwiXHJcbiAgICAgICAgW3ByZURlZmluZWRPdXRlckZpbHRlciRdPVwicHJlRGVmaW5lZE91dGVyRmlsdGVyJFwiIFttdWx0aU1vZGVdPVwibXVsdGlNb2RlXCIgW2V4Y2x1ZGVkSWRzJF09XCJleGNsdWRlZElkcyRcIlxyXG4gICAgICAgIChyb3dEb3VibGVDbGljayk9XCJvblJvd0RvdWJsZUNsaWNrKCRldmVudClcIiAoY29sdW1uc0luaXQpPVwib25Db2x1bW5zSW5pdCgkZXZlbnQpXCJcclxuICAgICAgICAoc2VsZWN0ZWREYXRhQ2hhbmdlKT1cIm9uU2VsZWN0ZWREYXRhQ2hhbmdlKCRldmVudClcIiBcclxuICAgICAgICAocm93Q2xpY2spPVwib25Sb3dDbGljaygkZXZlbnQpXCJcclxuICAgICAgICAobGlzdENoYW5nZSk9XCJvbkxpc3RDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgW2hlaWdodF09XCJjaGlsZENvbXBvbmVudEhlaWdodFwiXHJcbiAgICAgICAgPjwvY29yZS1qb2Itc2Vla2VyPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNlbXBsb3llZVNlZWs+XHJcbiAgICA8Y29yZS1lbXBsb3llZS1zZWVrZXIgW2V4Y2x1ZGVkQ29sdW1uc109XCJleGNsdWRlZENvbHVtbnNFbXBsb3llZVwiIFtwcmVEZWZpbmVkT3V0ZXJQYXJhbSRdPVwicHJlRGVmaW5lZE91dGVyUGFyYW0kXCJcclxuICAgICAgICBbcHJlRGVmaW5lZE91dGVyRmlsdGVyJF09XCJwcmVEZWZpbmVkT3V0ZXJGaWx0ZXIkXCIgW211bHRpTW9kZV09XCJtdWx0aU1vZGVcIiBbZXhjbHVkZWRJZHMkXT1cImV4Y2x1ZGVkSWRzJFwiXHJcbiAgICAgICAgKHJvd0RvdWJsZUNsaWNrKT1cIm9uUm93RG91YmxlQ2xpY2soJGV2ZW50KVwiIChjb2x1bW5zSW5pdCk9XCJvbkNvbHVtbnNJbml0KCRldmVudClcIlxyXG4gICAgICAgIChzZWxlY3RlZERhdGFDaGFuZ2UpPVwib25TZWxlY3RlZERhdGFDaGFuZ2UoJGV2ZW50KVwiIFxyXG4gICAgICAgIChyb3dDbGljayk9XCJvblJvd0NsaWNrKCRldmVudClcIlxyXG4gICAgICAgIChsaXN0Q2hhbmdlKT1cIm9uTGlzdENoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICBbaGVpZ2h0XT1cImNoaWxkQ29tcG9uZW50SGVpZ2h0XCJcclxuICAgICAgICA+PC9jb3JlLWVtcGxveWVlLXNlZWtlcj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjY29udHJhY3RTZWVrPlxyXG4gICAgPGNvcmUtY29udHJhY3Qtc2Vla2VyIFtleGNsdWRlZENvbHVtbnNdPVwiZXhjbHVkZWRDb2x1bW5zQ29udHJhY3RcIiBbcHJlRGVmaW5lZE91dGVyUGFyYW0kXT1cInByZURlZmluZWRPdXRlclBhcmFtJFwiXHJcbiAgICAgICAgW3ByZURlZmluZWRPdXRlckZpbHRlciRdPVwicHJlRGVmaW5lZE91dGVyRmlsdGVyJFwiIFttdWx0aU1vZGVdPVwibXVsdGlNb2RlXCIgW2V4Y2x1ZGVkSWRzJF09XCJleGNsdWRlZElkcyRcIlxyXG4gICAgICAgIChyb3dEb3VibGVDbGljayk9XCJvblJvd0RvdWJsZUNsaWNrKCRldmVudClcIiAoY29sdW1uc0luaXQpPVwib25Db2x1bW5zSW5pdCgkZXZlbnQpXCJcclxuICAgICAgICAoc2VsZWN0ZWREYXRhQ2hhbmdlKT1cIm9uU2VsZWN0ZWREYXRhQ2hhbmdlKCRldmVudClcIiBcclxuICAgICAgICAocm93Q2xpY2spPVwib25Sb3dDbGljaygkZXZlbnQpXCJcclxuICAgICAgICAobGlzdENoYW5nZSk9XCJvbkxpc3RDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgW2hlaWdodF09XCJjaGlsZENvbXBvbmVudEhlaWdodFwiXHJcbiAgICAgICAgPjwvY29yZS1jb250cmFjdC1zZWVrZXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI3dvcmtpbmdTZWVrPlxyXG4gICAgPGNvcmUtd29ya2luZy1zZWVrZXIgW2V4Y2x1ZGVkQ29sdW1uc109XCJleGNsdWRlZENvbHVtbnNXb3JraW5nXCIgW3ByZURlZmluZWRPdXRlclBhcmFtJF09XCJwcmVEZWZpbmVkT3V0ZXJQYXJhbSRcIlxyXG4gICAgICAgIFtwcmVEZWZpbmVkT3V0ZXJGaWx0ZXIkXT1cInByZURlZmluZWRPdXRlckZpbHRlciRcIiBbbXVsdGlNb2RlXT1cIm11bHRpTW9kZVwiIFtleGNsdWRlZElkcyRdPVwiZXhjbHVkZWRJZHMkXCJcclxuICAgICAgICAocm93RG91YmxlQ2xpY2spPVwib25Sb3dEb3VibGVDbGljaygkZXZlbnQpXCIgKGNvbHVtbnNJbml0KT1cIm9uQ29sdW1uc0luaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgKHNlbGVjdGVkRGF0YUNoYW5nZSk9XCJvblNlbGVjdGVkRGF0YUNoYW5nZSgkZXZlbnQpXCIgXHJcbiAgICAgICAgKHJvd0NsaWNrKT1cIm9uUm93Q2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgKGxpc3RDaGFuZ2UpPVwib25MaXN0Q2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgIFtoZWlnaHRdPVwiY2hpbGRDb21wb25lbnRIZWlnaHRcIlxyXG4gICAgICAgID48L2NvcmUtd29ya2luZy1zZWVrZXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI3dhZ2VTZWVrPlxyXG4gICAgPGNvcmUtd2FnZS1zZWVrZXIgW2V4Y2x1ZGVkQ29sdW1uc109XCJleGNsdWRlZENvbHVtbnNXYWdlXCIgW3ByZURlZmluZWRPdXRlclBhcmFtJF09XCJwcmVEZWZpbmVkT3V0ZXJQYXJhbSRcIlxyXG4gICAgICAgIFtwcmVEZWZpbmVkT3V0ZXJGaWx0ZXIkXT1cInByZURlZmluZWRPdXRlckZpbHRlciRcIiBbbXVsdGlNb2RlXT1cIm11bHRpTW9kZVwiIFtleGNsdWRlZElkcyRdPVwiZXhjbHVkZWRJZHMkXCJcclxuICAgICAgICAocm93RG91YmxlQ2xpY2spPVwib25Sb3dEb3VibGVDbGljaygkZXZlbnQpXCIgKGNvbHVtbnNJbml0KT1cIm9uQ29sdW1uc0luaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgKHNlbGVjdGVkRGF0YUNoYW5nZSk9XCJvblNlbGVjdGVkRGF0YUNoYW5nZSgkZXZlbnQpXCIgXHJcbiAgICAgICAgKHJvd0NsaWNrKT1cIm9uUm93Q2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgKGxpc3RDaGFuZ2UpPVwib25MaXN0Q2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgIFtoZWlnaHRdPVwiY2hpbGRDb21wb25lbnRIZWlnaHRcIlxyXG4gICAgICAgID48L2NvcmUtd2FnZS1zZWVrZXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI3Bvc2l0aW9uU2Vlaz5cclxuICAgIDxjb3JlLXBvc2l0aW9uLXNlZWtlciBbZXhjbHVkZWRDb2x1bW5zXT1cImV4Y2x1ZGVkQ29sdW1uc1Bvc2l0aW9uXCIgW3ByZURlZmluZWRPdXRlclBhcmFtJF09XCJwcmVEZWZpbmVkT3V0ZXJQYXJhbSRcIlxyXG4gICAgICAgIFtwcmVEZWZpbmVkT3V0ZXJGaWx0ZXIkXT1cInByZURlZmluZWRPdXRlckZpbHRlciRcIiBbbXVsdGlNb2RlXT1cIm11bHRpTW9kZVwiIFtleGNsdWRlZElkcyRdPVwiZXhjbHVkZWRJZHMkXCJcclxuICAgICAgICBbc2Vla2VyVmVyaWZ5SWdub3JlXT1cInNlZWtlclZlcmlmeUlnbm9yZVwiIChyb3dEb3VibGVDbGljayk9XCJvblJvd0RvdWJsZUNsaWNrKCRldmVudClcIlxyXG4gICAgICAgIChjb2x1bW5zSW5pdCk9XCJvbkNvbHVtbnNJbml0KCRldmVudClcIiAoc2VsZWN0ZWREYXRhQ2hhbmdlKT1cIm9uU2VsZWN0ZWREYXRhQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgIChyb3dDbGljayk9XCJvblJvd0NsaWNrKCRldmVudClcIlxyXG4gICAgICAgIChsaXN0Q2hhbmdlKT1cIm9uTGlzdENoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICBbaGVpZ2h0XT1cImNoaWxkQ29tcG9uZW50SGVpZ2h0XCJcclxuICAgICAgICA+PC9jb3JlLXBvc2l0aW9uLXNlZWtlcj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjcG9zaXRpb25Db25jdXJyZW50U2Vlaz5cclxuICAgIDxjb3JlLXBvc2l0aW9uLWNvbmN1cnJlbnQtc2Vla2VyIFtleGNsdWRlZENvbHVtbnNdPVwiZXhjbHVkZWRDb2x1bW5zUG9zaXRpb25Db25jdXJyZW50XCJcclxuICAgICAgICBbcHJlRGVmaW5lZE91dGVyUGFyYW0kXT1cInByZURlZmluZWRPdXRlclBhcmFtJFwiIFttdWx0aU1vZGVdPVwibXVsdGlNb2RlXCIgW2V4Y2x1ZGVkSWRzJF09XCJleGNsdWRlZElkcyRcIlxyXG4gICAgICAgIFtwcmVEZWZpbmVkT3V0ZXJGaWx0ZXIkXT1cInByZURlZmluZWRPdXRlckZpbHRlciRcIiAocm93RG91YmxlQ2xpY2spPVwib25Sb3dEb3VibGVDbGljaygkZXZlbnQpXCJcclxuICAgICAgICAoY29sdW1uc0luaXQpPVwib25Db2x1bW5zSW5pdCgkZXZlbnQpXCIgKHNlbGVjdGVkRGF0YUNoYW5nZSk9XCJvblNlbGVjdGVkRGF0YUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAocm93Q2xpY2spPVwib25Sb3dDbGljaygkZXZlbnQpXCJcclxuICAgICAgICAobGlzdENoYW5nZSk9XCJvbkxpc3RDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgW2hlaWdodF09XCJjaGlsZENvbXBvbmVudEhlaWdodFwiXHJcbiAgICAgICAgPjwvY29yZS1wb3NpdGlvbi1jb25jdXJyZW50LXNlZWtlcj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjb3JnYW5pemF0aW9uVW5pdFNlZWs+XHJcbiAgICA8Y29yZS1vcmctdW5pdC1zZWVrZXIgW2V4Y2x1ZGVkSWRzJF09XCJleGNsdWRlZElkcyRcIlxyXG4gICAgICAgIChpdGVtRG91YmxlQ2xpY2spPVwib25JdGVtRG91YmxlQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgKGl0ZW1DbGljayk9XCJvblJvd0NsaWNrKCRldmVudClcIlxyXG4gICAgICAgIFtoZWlnaHRdPVwiY2hpbGRDb21wb25lbnRIZWlnaHRcIlxyXG4gICAgICAgID48L2NvcmUtb3JnLXVuaXQtc2Vla2VyPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNhdmF0YXIgbGV0LWF2YXRhcj1cImNvbnRleHQuYXZhdGFyXCI+XHJcbiAgICA8aW1nICpuZ0lmPVwiYXZhdGFyICE9IG51bGxcIiBbc3JjXT1cImF2YXRhciB8IG1hcEF2YXRhclRvU2VydmVyXCIgY2xhc3M9XCJpbi10YWJsZS1hdmF0YXJcIiBhcHBJbWFnZUVycm9yUmVzb2x2ZXI+XHJcbiAgICA8aW1nICpuZ0lmPVwiYXZhdGFyID09IG51bGxcIiBbc3JjXT1cImRlZmF1bHRBdmF0YXJcIiBjbGFzcz1cImluLXRhYmxlLWF2YXRhclwiIGFwcEltYWdlRXJyb3JSZXNvbHZlcj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuPG5nLXRlbXBsYXRlICNzdGlja2VyIGxldC1jb2RlPVwiY29udGV4dC5hY3RmbGdcIj5cclxuICAgIDxjb3JlLXN0YXR1cy1zdGlja2VyIFtjb2RlXT1cImNvZGVcIiBbaXNUcnVlQ29kZV09XCJ0cnVlXCI+PC9jb3JlLXN0YXR1cy1zdGlja2VyPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPGRpdiBbY2xhc3MuZC1ub25lXT1cIiFzaG93RWRpdEJ1ZmZlclwiPlxyXG4gICAgPGNvcmUtcGFnZS1lZGl0LWxpdGUgW3NlY3Rpb25zXT1cIm11bHRpTW9kZUV4dGVuZGVkU2VjdGlvbnNcIiAob25Gb3JtQ3JlYXRlZCk9XCJvbkVkaXRCdWZmZXJGb3JtQ3JlYXRlZCgkZXZlbnQpXCJcclxuICAgICAgICAoc3VibWl0TG9naWMpPVwib25FZGl0QnVmZmVyU3VibWl0KCRldmVudClcIiAoY2FuY2VsTG9naWMpPVwib25FZGl0QnVmZmVyQ2FuY2VsKCRldmVudClcIj48L2NvcmUtcGFnZS1lZGl0LWxpdGU+XHJcbjwvZGl2PiJdfQ==
586
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1mb3JtLWNvbnRyb2wtc2Vla2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLWZvcm0tY29udHJvbC1zZWVrZXIvY29yZS1mb3JtLWNvbnRyb2wtc2Vla2VyL2NvcmUtZm9ybS1jb250cm9sLXNlZWtlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvY29yZS1mb3JtLWNvbnRyb2wtc2Vla2VyL2NvcmUtZm9ybS1jb250cm9sLXNlZWtlci9jb3JlLWZvcm0tY29udHJvbC1zZWVrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQWMsS0FBSyxFQUFxQixTQUFTLEVBQUUsU0FBUyxFQUF5QixNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xLLE9BQU8sRUFBRSxlQUFlLEVBQWdCLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3RCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUM3RyxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUU3RixPQUFPLEVBQWEsV0FBVyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3RGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBMkQsTUFBTSx1Q0FBdUMsQ0FBQztBQUU3SyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxnRkFBZ0YsQ0FBQztBQUM3SCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxnRkFBZ0YsQ0FBQztBQUM3SCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw2RUFBNkUsQ0FBQztBQUN6SCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQztBQUM3RyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxnRkFBZ0YsQ0FBQztBQUM3SCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUcxRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUU3RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLGlIQUFpSCxDQUFDO0FBQ3hLLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9FQUFvRSxDQUFDO0FBQzdHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGdGQUFnRixDQUFDO0FBQzVILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDZFQUE2RSxDQUFDO0FBQ3pILE9BQU8sRUFBZ0MsdUJBQXVCLEVBQWlLLE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7QUE4Qy9QLE1BQU0sT0FBTyw4QkFBK0IsU0FBUSw0QkFBNEI7SUFxRzlFLFlBQ1UsWUFBMEIsRUFDMUIsUUFBa0IsRUFDbEIsR0FBeUIsRUFDekIsa0JBQXNDLEVBQ3RDLHNCQUE4QyxFQUM5QywyQkFBd0QsRUFDeEQsMkJBQXdELEVBQ3hELDBCQUFzRCxFQUN0RCx1QkFBZ0QsRUFDaEQsMkJBQXdELEVBQ3hELHFDQUE0RSxFQUM1RSxHQUF3QixFQUN4QixhQUE0QixFQUM1QixhQUE0QjtRQUVwQyxLQUFLLEVBQUUsQ0FBQztRQWZBLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsUUFBRyxHQUFILEdBQUcsQ0FBc0I7UUFDekIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QywyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQzlDLGdDQUEyQixHQUEzQiwyQkFBMkIsQ0FBNkI7UUFDeEQsZ0NBQTJCLEdBQTNCLDJCQUEyQixDQUE2QjtRQUN4RCwrQkFBMEIsR0FBMUIsMEJBQTBCLENBQTRCO1FBQ3RELDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7UUFDaEQsZ0NBQTJCLEdBQTNCLDJCQUEyQixDQUE2QjtRQUN4RCwwQ0FBcUMsR0FBckMscUNBQXFDLENBQXVDO1FBQzVFLFFBQUcsR0FBSCxHQUFHLENBQXFCO1FBQ3hCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBM0d0QyxjQUFTLEdBQUcsU0FBUyxFQUFFLENBQUM7UUF3Q2Qsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBVWxELGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztRQUVuQyxtQkFBbUI7UUFDbkIsd0JBQW1CLEdBQVUsRUFBRSxDQUFDO1FBQ2hDLGlCQUFZLEdBQVUsRUFBRSxDQUFDO1FBR3pCLFNBQUksR0FBVSxFQUFFLENBQUM7UUFFakIscUJBQWdCLEdBQTJCLEVBQUUsQ0FBQztRQUk5QyxVQUFLLEdBQXlCLENBQUM7Z0JBQzdCLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxNQUFNO2dCQUMvQixLQUFLLEVBQUUsbUJBQW1CLENBQUMsTUFBTTtnQkFDakMsT0FBTyxFQUFFLGdCQUFnQixDQUFDLGlDQUFpQzthQUM1RCxDQUFDLENBQUM7UUFJSCxlQUFVLEdBQVksS0FBSyxDQUFDO1FBRTVCLGlDQUE0QixHQUFXLENBQUMsQ0FBQztRQUV6QyxpQkFBWSxHQUFHLElBQUksZUFBZSxDQUFXLEVBQUUsQ0FBQyxDQUFDO1FBRWpELHVCQUFrQixHQUE4QjtZQUM5Qyx1QkFBdUIsQ0FBQyxVQUFVO1lBQ2xDLHVCQUF1QixDQUFDLFdBQVc7WUFDbkMsdUJBQXVCLENBQUMsUUFBUTtTQUNqQyxDQUFDO1FBQ0YsNEJBQXVCLEdBQXVDLEVBQUUsQ0FBQztRQUNqRSw0QkFBdUIsR0FBbUMsRUFBRSxDQUFDO1FBQzdELDJCQUFzQixHQUFrQyxFQUFFLENBQUM7UUFDM0Qsd0JBQW1CLEdBQStCLEVBQUUsQ0FBQztRQUNyRCw0QkFBdUIsR0FBbUMsRUFBRSxDQUFDO1FBQzdELHNDQUFpQyxHQUE2QyxFQUFFLENBQUM7UUF1Qi9FLElBQUksQ0FBQyxhQUFhLEdBQUcsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2xELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLENBQUM7WUFDM0IsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLG9CQUFvQixHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUM3RyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDO1FBQ3pELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLHFCQUFxQjtRQUMzQixRQUFRLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUM3QixLQUFLLG1DQUFtQyxDQUFDLFFBQVE7Z0JBQy9DLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQTtnQkFDN0osSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLHdCQUF3QixFQUFFO29CQUNuQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxHQUFHLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO2lCQUMzRTtxQkFBTTtvQkFDTCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsVUFBVSxDQUFDO2lCQUNwQztnQkFFRCxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7b0JBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO2lCQUN4QjtnQkFDRCxNQUFNO1lBQ1IsS0FBSyxtQ0FBbUMsQ0FBQyxhQUFhO2dCQUNwRCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsMkJBQTJCLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUE7Z0JBQ3RMLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRTtvQkFDbkMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLENBQUMsR0FBRyxlQUFlLEVBQUUsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsQ0FBQztpQkFDaEY7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGVBQWUsQ0FBQztpQkFDekM7Z0JBRUQsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO29CQUNyQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztpQkFDeEI7Z0JBQ0QsTUFBTTtZQUNSLEtBQUssbUNBQW1DLENBQUMsYUFBYTtnQkFDcEQsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLDJCQUEyQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFBO2dCQUN0TCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZUFBZSxDQUFDO2dCQUN4QyxNQUFNO1lBQ1IsS0FBSyxtQ0FBbUMsQ0FBQyxZQUFZO2dCQUNuRCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUE7Z0JBQ2pMLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxjQUFjLENBQUM7Z0JBQ3ZDLE1BQU07WUFDUixLQUFLLG1DQUFtQyxDQUFDLFNBQVM7Z0JBQ2hELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQTtnQkFDbEssSUFBSSxDQUFDLGdCQUFnQixHQUFHLFdBQVcsQ0FBQztnQkFDcEMsTUFBTTtZQUNSLEtBQUssbUNBQW1DLENBQUMsYUFBYTtnQkFDcEQsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLDJCQUEyQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFBO2dCQUN0TCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZUFBZSxDQUFDO2dCQUN4QyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7b0JBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO2lCQUN4QjtnQkFDRCxNQUFNO1lBQ1IsS0FBSyxtQ0FBbUMsQ0FBQyx3QkFBd0I7Z0JBQy9ELE1BQU0seUJBQXlCLEdBQUcsSUFBSSxDQUFDLHFDQUFxQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGtDQUFrQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQ0FBaUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGtDQUFrQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFBO2dCQUN4TyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcseUJBQXlCLENBQUM7Z0JBQ2xELElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtvQkFDckIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7aUJBQ3hCO2dCQUNELE1BQU07WUFDUixLQUFLLG1DQUFtQyxDQUFDLHNCQUFzQjtnQkFDN0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO29CQUNyQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztpQkFDeEI7Z0JBQ0QsTUFBTTtZQUNSO2dCQUNFLE1BQU07U0FDVDtJQUVILENBQUM7SUFFRCxRQUFRO1FBRU47OztVQUdFO1FBQ0YsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUUvQixDQUFDO0lBRUQsZUFBZTtRQUViLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFFZCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUM3QixJQUFJLENBQUMsQ0FBQyxLQUFLLEtBQUssUUFBUSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXO29CQUFFLENBQUMsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQTtnQkFDekUsSUFBSSxDQUFDLENBQUMsS0FBSyxLQUFLLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVztvQkFBRSxDQUFDLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUE7WUFDNUUsQ0FBQyxDQUFDLENBQUE7WUFFRixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLGFBQWEsQ0FBQztZQUN6QyxNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxNQUFNLENBQUM7WUFDakQsRUFBRSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1lBRXhELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUNyQixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUM3QyxDQUFBO1lBRUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQ3JCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ2pELElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFBRSxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQTtZQUNqQyxDQUFDLENBQUUsQ0FDSixDQUFBO1lBRUQsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLFNBQVMsRUFBRTtnQkFDN0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQ3JCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtvQkFDakQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7Z0JBQ3pCLENBQUMsQ0FBQyxDQUNILENBQUE7YUFDRjtZQUVELHlCQUF5QjtZQUd6QixJQUFJLFNBQVMsRUFBRSxFQUFFO2dCQUNmLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFO29CQUM1QixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FDckI7OEVBQ2tFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxJQUFJLENBQzFGLENBQUM7aUJBQ0g7cUJBQU07b0JBR0wsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO3dCQUVyQixnQkFBZ0I7d0JBQ2hCLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRTs0QkFDMUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQ3JCO3FFQUNxRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxDQUM3RSxDQUFDO3lCQUNIO3FCQUNGO29CQUVELElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTt3QkFDdEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQ3JCOytDQUNpQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxFQUN4RCwwQkFBMEIsQ0FDM0IsQ0FBQztxQkFDSDtvQkFDRCxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO3dCQUN4QyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FDckI7K0NBQ2lDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxJQUFJLEVBQ3hELDBCQUEwQixDQUMzQixDQUFDO3FCQUNIO29CQUVELElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUU7d0JBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFOzRCQUN0QixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FDckIsNEhBQTRILElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxJQUFJLENBQ3BKLENBQUM7eUJBQ0g7cUJBQ0Y7aUJBRUY7YUFDRjtZQUdELHVCQUF1QjtZQUV2QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FDckIsSUFBSSxDQUFDLGNBQWMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBRWpDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRTtvQkFDUCxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7d0JBQ3JCLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztxQkFDdEM7aUJBQ0Y7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO3dCQUNyQixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztxQkFDdkI7aUJBQ0Y7WUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFBO1lBRUQsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQ3JCLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUM3QixJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQztvQkFFdEIsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUU7d0JBQzVCLE1BQU0sY0FBYyxHQUFhLEVBQUUsQ0FBQzt3QkFDcEMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTs0QkFDUixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRTtnQ0FDekIsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUE7NkJBQzFCO2lDQUFNO2dDQUNMLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFBOzZCQUMxQzt3QkFDSCxDQUFDLENBQUMsQ0FBQTt3QkFDRixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztxQkFDeEM7Z0JBRUgsQ0FBQyxDQUFDLENBQ0gsQ0FBQTthQUNGO1FBRUgsQ0FBQyxDQUFDLENBQUE7SUFHSixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUE7SUFDL0MsQ0FBQztJQUVRLFVBQVUsQ0FBQyxHQUFRO1FBQzFCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDcEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3hELE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUE7WUFDM0QsT0FBTyxDQUFDLEdBQUcsQ0FBQywyQ0FBMkMsQ0FBQyxDQUFBO1lBQ3hELE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUNwQjtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEIsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTztRQUMzQyxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQzdCLDBCQUEwQjtZQUMxQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztTQUN4QjtJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUVwQixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRTtnQkFDekIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFBO2dCQUM5RyxNQUFNLGVBQWUsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDO2dCQUMxRCxNQUFNLGNBQWMsR0FBVSxFQUFFLENBQUM7Z0JBQ2pDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO2dCQUNuRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztnQkFDdkMsSUFBSSxDQUFDLEtBQUssR0FBRyxjQUFjLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQTtnQkFDN0IsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztnQkFDOUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7YUFDekI7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtvQkFDL0IsMENBQTBDO29CQUMxQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUE7b0JBQzNCLDJFQUEyRTtvQkFDM0UsSUFBSSxDQUFDLDRCQUE0QixJQUFJLENBQUMsQ0FBQztvQkFDdkMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsNEJBQTRCLENBQUMsQ0FBQywwRUFBMEU7Z0JBQ3RILENBQUMsQ0FBQyxDQUFBO2dCQUNGLE1BQU0sZUFBZSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7Z0JBQzVFLG9DQUFvQztnQkFDcEMsc0RBQXNEO2dCQUN0RCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztnQkFDdkMsSUFBSSxDQUFDLEtBQUssR0FBRyxlQUFlLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQTtnQkFDOUIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztnQkFDOUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7YUFDekI7U0FDRjthQUFNO1lBQ0wsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDdEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDeEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUM7YUFDOUI7U0FDRjtJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUM7SUFDL0IsQ0FBQztJQUVELGdCQUFnQixDQUFDLENBQU07UUFDckIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBRXhCLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDckIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDO1lBQzVDLElBQUksSUFBSSxFQUFFO2dCQUNSLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFO29CQUUvQjs7c0JBRUU7b0JBQ0YsSUFBSSxTQUFTLEVBQUUsSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFO3dCQUM5QixJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7NEJBQ2pCLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLHdCQUF3QixFQUFFLDBCQUEwQixDQUFDLENBQUE7eUJBQzlFOzZCQUFNOzRCQUNMLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRTtnQ0FDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQyxRQUFRLGtEQUFrRCxFQUFFLDBCQUEwQixDQUFDLENBQUE7NkJBQzlJO3lCQUNGO3dCQUNELElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRTs0QkFDZixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsRUFBRSwwQkFBMEIsQ0FBQyxDQUFBO3lCQUM1RTs2QkFBTTs0QkFDTCxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dDQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDLE1BQU0sa0RBQWtELEVBQUUsMEJBQTBCLENBQUMsQ0FBQTs2QkFDaEo7eUJBQ0Y7cUJBRUY7b0JBQ0Q7O3NCQUVFO29CQUVGLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7b0JBQzVDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLGFBQWEsQ0FBQztvQkFDbEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUM7Z0JBQ3BDLENBQUMsQ0FBQyxDQUFBO2FBQ0g7U0FDRjtJQUNILENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxDQUFlO1FBQy9CLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQztRQUNoQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELGFBQWEsQ0FBQyxDQUFNO1FBQ2xCLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRTtZQUNuQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1NBQ2xFO2FBQU07WUFDTCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDO1NBQzNCO0lBQ0gsQ0FBQztJQUVELG9CQUFvQixDQUFDLENBQU07UUFDekIsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLHdCQUF3QixFQUFFO1lBQ25DLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1NBQzFFO2FBQU07WUFDTCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQztTQUNuQztRQUVELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxXQUFXLENBQUMsQ0FBc0M7UUFDaEQsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLGtCQUFrQixDQUFDLE1BQU0sRUFBRTtZQUN4QyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQTtZQUV2RSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUVyQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRTtnQkFDekIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUE7Z0JBQ3hELElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDO2dCQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ3ZCO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxLQUFLLEdBQUcsYUFBYSxDQUFDO2dCQUMzQixJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2FBQzlCO1lBQ0QsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztJQUVELFlBQVk7UUFFVixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7SUFFeEIsQ0FBQztJQUVELDRCQUE0QixDQUFDLENBQU07UUFFakMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlO1lBQUUsT0FBTztRQUVsQyxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxDQUFBO1FBQ2xDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ1QsSUFBSSxTQUFTLEVBQUUsRUFBRTtnQkFDZixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyw4Q0FBOEMsRUFBRSwwQkFBMEIsQ0FBQyxDQUFDO2FBQ3JHO1NBQ0Y7UUFFRCxJQUFJO1lBQ0YsSUFBSSxDQUFDLGNBQWMsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQTtTQUNqRDtRQUFDLE9BQU8sRUFBTyxFQUFFO1lBQ2hCLElBQUksU0FBUyxFQUFFLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSwwQkFBMEIsQ0FBQyxDQUFDO2FBQ2pFO1NBQ0Y7UUFDRCxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsTUFBTSxFQUFFO1lBQzFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3BDLElBQUk7b0JBQ0YsSUFBSSxDQUFDLGNBQWMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7aUJBQzFEO2dCQUFDLE9BQU8sU0FBYyxFQUFFO29CQUN2QixJQUFJLFNBQVMsRUFBRSxFQUFFO3dCQUNmLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsMEJBQTBCLENBQUMsQ0FBQztxQkFDeEU7aUJBQ0Y7WUFDSCxDQUFDLENBQUMsQ0FBQTtZQUNGLElBQUk7Z0JBQ0YsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO2FBQ3ZCO1lBQUMsT0FBTyxTQUFjLEVBQUU7Z0JBQ3ZCLElBQUksU0FBUyxFQUFFLEVBQUU7b0JBQ2YsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSwwQkFBMEIsQ0FBQyxDQUFDO2lCQUN4RTthQUNGO1lBRUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7U0FDNUI7SUFDSCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsQ0FBTTtRQUN2QixJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2pELElBQUk7WUFDRixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3ZFLElBQUksTUFBTSxFQUFFLE1BQU0sS0FBSyxDQUFDLEVBQUU7Z0JBQ3hCLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQ3JDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDekMsQ0FBQyxDQUFDLENBQUE7YUFDSDtZQUNELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1NBQzdCO1FBQUMsT0FBTyxFQUFPLEVBQUU7WUFDaEIsSUFBSSxTQUFTLEVBQUUsRUFBRTtnQkFDZixPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNoQixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLHNEQUFzRCxFQUFFLDBCQUEwQixDQUFDLENBQUE7YUFDMUg7U0FDRjtJQUNILENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxDQUFNO1FBQ3ZCLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO0lBQzlCLENBQUM7SUFFRCx1QkFBdUIsQ0FBQyxDQUFZO1FBQ2xDLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxVQUFVLENBQUMsQ0FBTTtRQUNmLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxzQkFBc0I7UUFDcEIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxZQUFZLENBQUMsQ0FBUTtRQUNuQixJQUFJLENBQUMsQ0FBQyxXQUFXLEtBQUssS0FBSyxFQUFFO1lBQzNCLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1NBQ2Y7YUFBTTtZQUNMLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1NBQ2hCO0lBQ0gsQ0FBQzs4R0E5akJVLDhCQUE4QjtrR0FBOUIsOEJBQThCLGc3QkFqQjlCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsV0FBVyxFQUFFLDhCQUE4QjthQUM1QztZQUNELHNCQUFzQjtZQUN0QiwyQkFBMkI7WUFDM0IsMkJBQTJCO1lBQzNCLDBCQUEwQjtZQUMxQix1QkFBdUI7WUFDdkIsMkJBQTJCO1lBQzNCLHFDQUFxQztZQUNyQyxrQkFBa0I7U0FDbkIsaVVDekVILDY5VUEyTU0sa3hGRHBLRixZQUFZLGlZQUNaLFdBQVcsMEJBQ1gsYUFBYSw2Q0FDYixxQkFBcUIsMERBQ3JCLHNCQUFzQixvU0FDdEIseUJBQXlCLHFNQUN6QixrQkFBa0Isc3dCQUNsQiwwQkFBMEIsb0hBQzFCLDJCQUEyQix5U0FDM0IsMkJBQTJCLHlTQUMzQiwwQkFBMEIsd1NBQzFCLHVCQUF1QixtVEFDdkIsMEJBQTBCLDZLQUMxQiwyQkFBMkIsK1RBQzNCLHFDQUFxQyxvVEFDckMsdUJBQXVCLDZKQUN2QixnQkFBZ0I7OzJGQXFCUCw4QkFBOEI7a0JBekMxQyxTQUFTOytCQUNFLDBCQUEwQixjQUN4QixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLGFBQWE7d0JBQ2IscUJBQXFCO3dCQUNyQixzQkFBc0I7d0JBQ3RCLHlCQUF5Qjt3QkFDekIsa0JBQWtCO3dCQUNsQiwwQkFBMEI7d0JBQzFCLDJCQUEyQjt3QkFDM0IsMkJBQTJCO3dCQUMzQiwwQkFBMEI7d0JBQzFCLHVCQUF1Qjt3QkFDdkIsMEJBQTBCO3dCQUMxQiwyQkFBMkI7d0JBQzNCLHFDQUFxQzt3QkFDckMsdUJBQXVCO3dCQUN2QixnQkFBZ0I7cUJBQ2pCLGFBR1U7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsS0FBSyxFQUFFLElBQUk7NEJBQ1gsV0FBVyxnQ0FBZ0M7eUJBQzVDO3dCQUNELHNCQUFzQjt3QkFDdEIsMkJBQTJCO3dCQUMzQiwyQkFBMkI7d0JBQzNCLDBCQUEwQjt3QkFDMUIsdUJBQXVCO3dCQUN2QiwyQkFBMkI7d0JBQzNCLHFDQUFxQzt3QkFDckMsa0JBQWtCO3FCQUNuQjtnakJBTW9CLE1BQU07c0JBQTFCLFNBQVM7dUJBQUMsUUFBUTtnQkFDRyxPQUFPO3NCQUE1QixTQUFTO3VCQUFDLFNBQVM7Z0JBUVgsS0FBSztzQkFBYixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUdHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFNRyx3QkFBd0I7c0JBQWhDLEtBQUs7Z0JBQ0cseUJBQXlCO3NCQUFqQyxLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFJcUIsZ0JBQWdCO3NCQUExQyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFDaEIsU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUdHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUVJLGFBQWE7c0JBQXRCLE1BQU07Z0JBRWlCLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBpc0Rldk1vZGUsIFZpZXdDaGlsZCwgSW5qZWN0b3IsIFRlbXBsYXRlUmVmLCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbiwgZmlsdGVyIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENvcmVGb3JtQ29udHJvbEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlLWZvcm0tY29udHJvbC1iYXNlL2NvcmUtZm9ybS1jb250cm9sLWJhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRW51bUNvcmVGb3JtQ29udHJvbFNlZWtlclNvdXJjZVR5cGUgfSBmcm9tICcuLi9FbnVtQ29yZUZvcm1Db250cm9sU2Vla2VyU291cmNlVHlwZSc7XHJcbmltcG9ydCB7IEFsZXJ0U2VydmljZSB9IGZyb20gJy4uLy4uL2FsZXJ0L2FsZXJ0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBJQ29yZUZvcm1Db250cm9sU2Vla2VyRXh0cmFCaW5kaW5nTW9kZWwsIElDb3JlRm9ybVNlY3Rpb24gfSBmcm9tICcuLi8uLi9jb3JlLWZvcm0vY29yZS1mb3JtL2VudW0taW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IElPcmdUcmVlSXRlbSB9IGZyb20gJy4uLy4uL2NvcmUtb3JnLXRyZWUvY29yZS1vcmctdHJlZS9JT3JnVHJlZUl0ZW0nO1xyXG5pbXBvcnQgeyBDb3JlVGFibGVDb21wb25lbnQsIEVDb3JlVGFibGVUb29sQ2xhc3MsIEVDb3JlVGFibGVUb29sQ29kZSwgSUNvcmVUYWJsZVRvb2xDbGlja0V2ZW50RW1pdHRlckRhdGEsIElDb3JlVGFibGVUb29sSXRlbSB9IGZyb20gJy4uLy4uL2NvcmUtdGFibGUvY29yZS10YWJsZS5jb21wb25lbnQnO1xyXG5cclxuaW1wb3J0IHsgQ29yZUVtcGxveWVlU2Vla2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS1lbXBsb3llZS1zZWVrZXIvY29yZS1lbXBsb3llZS1zZWVrZXIvY29yZS1lbXBsb3llZS1zZWVrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29yZUNvbnRyYWN0U2Vla2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS1jb250cmFjdC1zZWVrZXIvY29yZS1jb250cmFjdC1zZWVrZXIvY29yZS1jb250cmFjdC1zZWVrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29yZVdvcmtpbmdTZWVrZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlLXdvcmtpbmctc2Vla2VyL2NvcmUtd29ya2luZy1zZWVrZXIvY29yZS13b3JraW5nLXNlZWtlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb3JlV2FnZVNlZWtlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUtd2FnZS1zZWVrZXIvY29yZS13YWdlLXNlZWtlci9jb3JlLXdhZ2Utc2Vla2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvcmVQb3NpdGlvblNlZWtlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUtcG9zaXRpb24tc2Vla2VyL2NvcmUtcG9zaXRpb24tc2Vla2VyL2NvcmUtcG9zaXRpb24tc2Vla2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEVudW1UcmFuc2xhdGVLZXkgfSBmcm9tIFwiYWxwaGEtZ2xvYmFsLWNvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBNdWx0aUxhbmd1YWdlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL211bHRpLWxhbmd1YWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSYW5kb21BdmF0YXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcmFuZG9tLWF2YXRhci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgbm9uZUF1dG9DbG9zZWRBbGVydE9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvYWxlcnRPcHRpb25zJztcclxuaW1wb3J0IHsgSUNvcmVUYWJsZUNvbHVtbkl0ZW0gfSBmcm9tICcuLi8uLi9jb3JlLXRhYmxlL0lDb3JlVGFibGVDb2x1bW5JdGVtJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJy4uLy4uLy4uL2FwcC1waXBlcy90cmFuc2xhdGUucGlwZSc7XHJcbmltcG9ydCB7IENvcmVQb3NpdGlvbkNvbmN1cnJlbnRTZWVrZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlLXBvc2l0aW9uLWNvbmN1cnJlbnQtc2Vla2VyL2NvcmUtcG9zaXRpb24tY29uY3VycmVudC1zZWVrZXIvY29yZS1wb3NpdGlvbi1jb25jdXJyZW50LXNlZWtlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb3JlUGFnZUhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUtcGFnZS1oZWFkZXIvY29yZS1wYWdlLWhlYWRlci9jb3JlLXBhZ2UtaGVhZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ29yZU9yZ1VuaXRTZWVrZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlLW9yZy11bml0LXNlZWtlci9jb3JlLW9yZy11bml0LXNlZWtlci9jb3JlLW9yZy11bml0LXNlZWtlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXBBdmF0YXJUb1NlcnZlclBpcGUgfSBmcm9tICcuLi8uLi8uLi9hcHAtcGlwZXMvbWFwLWF2YXRhci10by1zZXJ2ZXIucGlwZSc7XHJcbmltcG9ydCB7IENvcmVQYWdlRWRpdExpdGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlLXBhZ2UtZWRpdC1saXRlL2NvcmUtcGFnZS1lZGl0LWxpdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29yZUpvYlNlZWtlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUtam9iLXNlZWtlci9jb3JlLWpvYi1zZWVrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29yZVN0YXR1c1N0aWNrZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlLXN0YXR1cy1zdGlja2VyL2NvcmUtc3RhdHVzLXN0aWNrZXIvY29yZS1zdGF0dXMtc3RpY2tlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFbnVtQ29yZVNlZWtlckNvbHVtbkNvbnRyYWN0LCBFbnVtQ29yZVNlZWtlckNvbHVtbkpvYiwgRW51bUNvcmVTZWVrZXJDb2x1bW5Qb3NpdGlvbiwgRW51bUNvcmVTZWVrZXJDb2x1bW5Qb3NpdGlvbkNvbmN1cnJlbnQsIEVudW1Db3JlU2Vla2VyQ29sdW1uU3RhZmZQcm9maWxlLCBFbnVtQ29yZVNlZWtlckNvbHVtbldhZ2UsIEVudW1Db3JlU2Vla2VyQ29sdW1uV29ya2luZyB9IGZyb20gJy4uL0VudW1Db3JlU2Vla2VyQ29sdW1uJztcclxuaW1wb3J0IHsgSUZpbHRlck9wZXJhdG9yIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9JUXVlcnlMaXN0UmVxdWVzdCc7XHJcbmltcG9ydCB7IFNlZWtlclNlcnZpY2UgfSBmcm9tICcuLi9zZWVrZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IExheW91dFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9sYXlvdXQuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvcmUtZm9ybS1jb250cm9sLXNlZWtlcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFRyYW5zbGF0ZVBpcGUsXHJcbiAgICBNYXBBdmF0YXJUb1NlcnZlclBpcGUsXHJcbiAgICBDb3JlSm9iU2Vla2VyQ29tcG9uZW50LFxyXG4gICAgQ29yZVBhZ2VFZGl0TGl0ZUNvbXBvbmVudCxcclxuICAgIENvcmVUYWJsZUNvbXBvbmVudCxcclxuICAgIENvcmVTdGF0dXNTdGlja2VyQ29tcG9uZW50LFxyXG4gICAgQ29yZUVtcGxveWVlU2Vla2VyQ29tcG9uZW50LFxyXG4gICAgQ29yZUNvbnRyYWN0U2Vla2VyQ29tcG9uZW50LFxyXG4gICAgQ29yZVdvcmtpbmdTZWVrZXJDb21wb25lbnQsXHJcbiAgICBDb3JlV2FnZVNlZWtlckNvbXBvbmVudCxcclxuICAgIENvcmVPcmdVbml0U2Vla2VyQ29tcG9uZW50LFxyXG4gICAgQ29yZVBvc2l0aW9uU2Vla2VyQ29tcG9uZW50LFxyXG4gICAgQ29yZVBvc2l0aW9uQ29uY3VycmVudFNlZWtlckNvbXBvbmVudCxcclxuICAgIENvcmVQYWdlSGVhZGVyQ29tcG9uZW50LFxyXG4gICAgVG9vbHRpcERpcmVjdGl2ZVxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvcmUtZm9ybS1jb250cm9sLXNlZWtlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29yZS1mb3JtLWNvbnRyb2wtc2Vla2VyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgdXNlRXhpc3Rpbmc6IENvcmVGb3JtQ29udHJvbFNlZWtlckNvbXBvbmVudFxyXG4gICAgfSxcclxuICAgIENvcmVKb2JTZWVrZXJDb21wb25lbnQsXHJcbiAgICBDb3JlRW1wbG95ZWVTZWVrZXJDb21wb25lbnQsXHJcbiAgICBDb3JlQ29udHJhY3RTZWVrZXJDb21wb25lbnQsXHJcbiAgICBDb3JlV29ya2luZ1NlZWtlckNvbXBvbmVudCxcclxuICAgIENvcmVXYWdlU2Vla2VyQ29tcG9uZW50LFxyXG4gICAgQ29yZVBvc2l0aW9uU2Vla2VyQ29tcG9uZW50LFxyXG4gICAgQ29yZVBvc2l0aW9uQ29uY3VycmVudFNlZWtlckNvbXBvbmVudCxcclxuICAgIENvcmVUYWJsZUNvbXBvbmVudFxyXG4gIF1cclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBDb3JlRm9ybUNvbnRyb2xTZWVrZXJDb21wb25lbnQgZXh0ZW5kcyBDb3JlRm9ybUNvbnRyb2xCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuXHJcbiAgQFZpZXdDaGlsZCgnYXZhdGFyJykgYXZhdGFyITogVGVtcGxhdGVSZWY8YW55PjtcclxuICBAVmlld0NoaWxkKCdzdGlja2VyJykgc3RpY2tlciE6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIG5nQ29udHJvbCE6IE5nQ29udHJvbDtcclxuXHJcbiAgaXNEZXZNb2RlID0gaXNEZXZNb2RlKCk7XHJcblxyXG4gIGxhbmchOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpIHRpdGxlITogRW51bVRyYW5zbGF0ZUtleTtcclxuICBASW5wdXQoKSBzaG93UGFnZUhlYWRlciE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgcHJlRGVmaW5lZE91dGVyUGFyYW0kITogQmVoYXZpb3JTdWJqZWN0PGFueT47XHJcbiAgQElucHV0KCkgcHJlRGVmaW5lZE91dGVyRmlsdGVyJCE6IEJlaGF2aW9yU3ViamVjdDxJRmlsdGVyT3BlcmF0b3JbXT47XHJcbiAgQElucHV0KCkgY2xpY2skITogQmVoYXZpb3JTdWJqZWN0PGFueT4gfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgZ2V0QnlJZE9iamVjdCQhOiBCZWhhdmlvclN1YmplY3Q8YW55PjtcclxuICBASW5wdXQoKSBwYXJhbU1vZGUhOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIG11bHRpTW9kZSE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgb2JqZWN0TGlzdCQhOiBCZWhhdmlvclN1YmplY3Q8YW55W10+O1xyXG4gIEBJbnB1dCgpIHNob3duU2Vla2VyQ29sdW1ucyE6IHN0cmluZ1tdOyAvLyBSZWR1Y2UgdmlzaWJsZSBjb2x1bW5zIGZyb20gYmFzZSBjb21wb25lbnQuXHJcbiAgQElucHV0KCkgZXhjbHVkZUV4aXN0aW5nTGlzdCE6IGJvb2xlYW47IC8vIGZyb20gMjAyNC0wNS0xMFxyXG5cclxuICAvKiBXaGVuIG9iamVjdHMgZ2l2ZW4gYnkgdGhlIHNlZWtlciBkb3VibGUtY2xpY2svY2hlY2sgYXJlIGluZGlyZWN0bHkgcmVsYXRlZCB0byB0aGUgY29udHJvbCAqL1xyXG4gIEBJbnB1dCgpIGluZGlyZWN0QmluZGluZyE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgYmluZEdyaWRJZFRvITogc3RyaW5nO1xyXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcblxyXG5cclxuXHJcbiAgLyogRXh0ZW5kZWQgc2luY2UgMjAyNC0wMy0yNCAqL1xyXG4gIEBJbnB1dCgpIG11bHRpTW9kZUV4dGVuZGVkQ29sdW1ucyE6IElDb3JlVGFibGVDb2x1bW5JdGVtW107XHJcbiAgQElucHV0KCkgbXVsdGlNb2RlRXh0ZW5kZWRTZWN0aW9ucyE6IElDb3JlRm9ybVNlY3Rpb25bXTtcclxuICBASW5wdXQoKSBlZGl0QnVmZmVyRGF0YSQhOiBCZWhhdmlvclN1YmplY3Q8YW55PjtcclxuICBASW5wdXQoKSBtdWx0aU1vZGVUYWJsZUhlaWdodCE6IG51bWJlcjtcclxuICBASW5wdXQoKSBtdWx0aU1vZGVSb3dIZWlnaHQ/OiBudW1iZXI7XHJcbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5cclxuICAvKiBTVEFSVDogUkVRVUlSRUQgKi9cclxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBzZWVrZXJTb3VyY2VUeXBlITogRW51bUNvcmVGb3JtQ29udHJvbFNlZWtlclNvdXJjZVR5cGUgfCBzdHJpbmc7XHJcbiAgQElucHV0KCkgYm91bmRGcm9tITogc3RyaW5nOyAvLyB0YWtlIHRoaXMgZmllbGQgZnJvbSBHZXRCeUlkIHJlc3BvbnNlIGlubmVyQm9keSB0byBiaW5kIHRvIHRoZSB2YWx1ZVxyXG4gIEBJbnB1dCgpIHNob3duRnJvbSE6IHN0cmluZzsgLy8gdGFrZSB0aGlzIGZpZWxkIGZyb20gR2V0QnlJZCByZXNwb25zZSBpbm5lckJvZHkgdG8gYmluZCB0byB0aGUgdGV4dFxyXG4gIC8qIEVORDogUkVRVUlSRUQgd2hlbiBFTVBMT1lFRV9TRUVLRVIgKi9cclxuXHJcbiAgQElucHV0KCkgYWxzb0JpbmRUbyE6IElDb3JlRm9ybUNvbnRyb2xTZWVrZXJFeHRyYUJpbmRpbmdNb2RlbFtdO1xyXG4gIEBJbnB1dCgpIHNlZWtlclZlcmlmeUlnbm9yZSE6IGJvb2xlYW47XHJcblxyXG4gIEBPdXRwdXQoKSBvbkRvdWJsZUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicpIGNvbnRhaW5lciE6IEVsZW1lbnRSZWY7XHJcblxyXG4gIHNvdXJjZU9wZW4hOiBib29sZWFuO1xyXG4gIHNvdXJjZVNwYWNlSGVpZ2h0ITogbnVtYmVyO1xyXG5cclxuICB2YWx1ZVRvU2hvdyE6IHN0cmluZztcclxuICBwbGFjZWhvbGRlciE6IHN0cmluZztcclxuXHJcbiAgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgLyogZm9yIG11bHRpTW9kZSAqL1xyXG4gIHBlbmRpbmdTZWxlY3RlZERhdGE6IGFueVtdID0gW107XHJcbiAgc2VsZWN0ZWREYXRhOiBhbnlbXSA9IFtdO1xyXG4gIFxyXG4gIGNsaWNrZWRJdGVtOiBhbnk7XHJcbiAgbGlzdDogYW55W10gPSBbXTtcclxuXHJcbiAgbXVsdGlNb2RlQ29sdW1uczogSUNvcmVUYWJsZUNvbHVtbkl0ZW1bXSA9IFtdO1xyXG4gIHNob3dFZGl0QnVmZmVyITogYm9vbGVhbjtcclxuICBlZGl0QnVmZmVyRm9ybSE6IEZvcm1Hcm91cDtcclxuICBlZGl0aW5nSWQhOiBudW1iZXI7XHJcbiAgdG9vbHM6IElDb3JlVGFibGVUb29sSXRlbVtdID0gW3tcclxuICAgIGNvZGU6IEVDb3JlVGFibGVUb29sQ29kZS5kZWxldGUsXHJcbiAgICBjbGFzczogRUNvcmVUYWJsZVRvb2xDbGFzcy5kZWxldGUsXHJcbiAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0NPUkVfQ09OVFJPTF9UQUJMRV9UT09MX0RFTEVURVxyXG4gIH1dO1xyXG5cclxuICBzaG93Q2xlYXJJY29uITogYm9vbGVhbjtcclxuICBkZWZhdWx0QXZhdGFyITogc3RyaW5nO1xyXG4gIGhpZGVGb290ZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgaW5kaXJlY3RCaW5kaW5nTGFzdFZpcnR1YWxJZDogbnVtYmVyID0gMDtcclxuXHJcbiAgZXhjbHVkZWRJZHMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXJbXT4oW10pO1xyXG5cclxuICBleGNsdWRlZENvbHVtbnNKb2I6IEVudW1Db3JlU2Vla2VyQ29sdW1uSm9iW10gPSBbXHJcbiAgICBFbnVtQ29yZVNlZWtlckNvbHVtbkpvYi5KT0JfRkFNSUxZLFxyXG4gICAgRW51bUNvcmVTZWVrZXJDb2x1bW5Kb2IuSk9CX1BVUlBPU0UsXHJcbiAgICBFbnVtQ29yZVNlZWtlckNvbHVtbkpvYi5KT0JfTk9URSxcclxuICBdO1xyXG4gIGV4Y2x1ZGVkQ29sdW1uc0VtcGxveWVlOiBFbnVtQ29yZVNlZWtlckNvbHVtblN0YWZmUHJvZmlsZVtdID0gW107XHJcbiAgZXhjbHVkZWRDb2x1bW5zQ29udHJhY3Q6IEVudW1Db3JlU2Vla2VyQ29sdW1uQ29udHJhY3RbXSA9IFtdO1xyXG4gIGV4Y2x1ZGVkQ29sdW1uc1dvcmtpbmc6IEVudW1Db3JlU2Vla2VyQ29sdW1uV29ya2luZ1tdID0gW107XHJcbiAgZXhjbHVkZWRDb2x1bW5zV2FnZTogRW51bUNvcmVTZWVrZXJDb2x1bW5XYWdlW10gPSBbXTtcclxuICBleGNsdWRlZENvbHVtbnNQb3NpdGlvbjogRW51bUNvcmVTZWVrZXJDb2x1bW5Qb3NpdGlvbltdID0gW107XHJcbiAgZXhjbHVkZWRDb2x1bW5zUG9zaXRpb25Db25jdXJyZW50OiBFbnVtQ29yZVNlZWtlckNvbHVtblBvc2l0aW9uQ29uY3VycmVudFtdID0gW107XHJcblxyXG4gIHNvdXJjZUNvbnRhaW5lckhlaWdodCE6IG51bWJlcjtcclxuICBjaGlsZENvbXBvbmVudEhlaWdodCE6IG51bWJlcjtcclxuICBcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBwcml2YXRlIG1sczogTXVsdGlMYW5ndWFnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNvcmVUYWJsZUNvbXBvbmVudDogQ29yZVRhYmxlQ29tcG9uZW50LFxyXG4gICAgcHJpdmF0ZSBjb3JlSm9iU2Vla2VyQ29tcG9uZW50OiBDb3JlSm9iU2Vla2VyQ29tcG9uZW50LFxyXG4gICAgcHJpdmF0ZSBjb3JlRW1wbG95ZWVTZWVrZXJDb21wb25lbnQ6IENvcmVFbXBsb3llZVNlZWtlckNvbXBvbmVudCxcclxuICAgIHByaXZhdGUgY29yZUNvbnRyYWN0U2Vla2VyQ29tcG9uZW50OiBDb3JlQ29udHJhY3RTZWVrZXJDb21wb25lbnQsXHJcbiAgICBwcml2YXRlIGNvcmVXb3JraW5nU2Vla2VyQ29tcG9uZW50OiBDb3JlV29ya2luZ1NlZWtlckNvbXBvbmVudCxcclxuICAgIHByaXZhdGUgY29yZVdhZ2VTZWVrZXJDb21wb25lbnQ6IENvcmVXYWdlU2Vla2VyQ29tcG9uZW50LFxyXG4gICAgcHJpdmF0ZSBjb3JlUG9zaXRpb25TZWVrZXJDb21wb25lbnQ6IENvcmVQb3NpdGlvblNlZWtlckNvbXBvbmVudCxcclxuICAgIHByaXZhdGUgY29yZVBvc2l0aW9uQ29uY3VycmVudFNlZWtlckNvbXBvbmVudDogQ29yZVBvc2l0aW9uQ29uY3VycmVudFNlZWtlckNvbXBvbmVudCxcclxuICAgIHByaXZhdGUgcmFzOiBSYW5kb21BdmF0YXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzZWVrZXJTZXJ2aWNlOiBTZWVrZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBsYXlvdXRTZXJ2aWNlOiBMYXlvdXRTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgdGhpcy5kZWZhdWx0QXZhdGFyID0gcmFzLmdldCgpO1xyXG4gICAgdGhpcy5zZWVrZXJTZXJ2aWNlLnNvdXJjZVNwYWNlSGVpZ2h0JC5zdWJzY3JpYmUoeCA9PiB7XHJcbiAgICAgIHRoaXMuc291cmNlU3BhY2VIZWlnaHQgPSB4O1xyXG4gICAgICB0aGlzLnNvdXJjZUNvbnRhaW5lckhlaWdodCA9IHRoaXMuc2hvd1BhZ2VIZWFkZXIgPyB4IC0gdGhpcy5sYXlvdXRTZXJ2aWNlLmNvcmVQYWdlSGVhZGVySGVpZ2h0IC0gNjggOiB4IC0gNjg7XHJcbiAgICAgIHRoaXMuY2hpbGRDb21wb25lbnRIZWlnaHQgPSB0aGlzLnNvdXJjZUNvbnRhaW5lckhlaWdodDtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc2lnbk11bHRpTW9kZUNvbHVtbnMoKTogdm9pZCB7XHJcbiAgICBzd2l0Y2ggKHRoaXMuc2Vla2VyU291cmNlVHlwZSkge1xyXG4gICAgICBjYXNlIEVudW1Db3JlRm9ybUNvbnRyb2xTZWVrZXJTb3VyY2VUeXBlLkpPQl9TRUVLOlxyXG4gICAgICAgIGNvbnN0IGpvYkNvbHVtbnMgPSB0aGlzLmNvcmVKb2JTZWVrZXJDb21wb25lbnQuY29sdW1ucy5maWx0ZXIoeCA9PiAhIXguam9iU2Vla2VyQ29sdW1uQ29kZSA/ICF0aGlzLmV4Y2x1ZGVkQ29sdW1uc0pvYi5pbmNsdWRlcyh4LmpvYlNlZWtlckNvbHVtbkNvZGUpIDogdHJ1ZSlcclxuICAgICAgICBpZiAoISF0aGlzLm11bHRpTW9kZUV4dGVuZGVkQ29sdW1ucykge1xyXG4gICAgICAgICAgdGhpcy5tdWx0aU1vZGVDb2x1bW5zID0gWy4uLmpvYkNvbHVtbnMsIC4uLnRoaXMubXVsdGlNb2RlRXh0ZW5kZWRDb2x1bW5zXTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5tdWx0aU1vZGVDb2x1bW5zID0gam9iQ29sdW1ucztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghISF0aGlzLm11bHRpTW9kZSkge1xyXG4gICAgICAgICAgdGhpcy5oaWRlRm9vdGVyID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgRW51bUNvcmVGb3JtQ29udHJvbFNlZWtlclNvdXJjZVR5cGUuRU1QTE9ZRUVfU0VFSzpcclxuICAgICAgICBjb25zdCBlbXBsb3llZUNvbHVtbnMgPSB0aGlzLmNvcmVFbXBsb3llZVNlZWtlckNvbXBvbmVudC5jb2x1bW5zLmZpbHRlcih4ID0+ICEheC5lbXBsb3llZVNlZWtlckNvbHVtbkNvZGUgPyAhdGhpcy5leGNsdWRlZENvbHVtbnNFbXBsb3llZS5pbmNsdWRlcyh4LmVtcGxveWVlU2Vla2VyQ29sdW1uQ29kZSkgOiB0cnVlKVxyXG4gICAgICAgIGlmICghIXRoaXMubXVsdGlNb2RlRXh0ZW5kZWRDb2x1bW5zKSB7XHJcbiAgICAgICAgICB0aGlzLm11bHRpTW9kZUNvbHVtbnMgPSBbLi4uZW1wbG95ZWVDb2x1bW5zLCAuLi50aGlzLm11bHRpTW9kZUV4dGVuZGVkQ29sdW1uc107XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubXVsdGlNb2RlQ29sdW1ucyA9IGVtcGxveWVlQ29sdW1ucztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghISF0aGlzLm11bHRpTW9kZSkge1xyXG4gICAgICAgICAgdGhpcy5oaWRlRm9vdGVyID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgRW51bUNvcmVGb3JtQ29udHJvbFNlZWtlclNvdXJjZVR5cGUuQ09OVFJBQ1RfU0VFSzpcclxuICAgICAgICBjb25zdCBjb250cmFjdENvbHVtbnMgPSB0aGlzLmNvcmVDb250cmFjdFNlZWtlckNvbXBvbmVudC5jb2x1bW5zLmZpbHRlcih4ID0+ICEheC5jb250cmFjdFNlZWtlckNvbHVtbkNvZGUgPyAhdGhpcy5leGNsdWRlZENvbHVtbnNDb250cmFjdC5pbmNsdWRlcyh4LmNvbnRyYWN0U2Vla2VyQ29sdW1uQ29kZSkgOiB0cnVlKVxyXG4gICAgICAgIHRoaXMubXVsdGlNb2RlQ29sdW1ucyA9IGNvbnRyYWN0Q29sdW1ucztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBFbnVtQ29yZUZvcm1Db250cm9sU2Vla2VyU291cmNlVHlwZS5XT1JLSU5HX1NFRUs6XHJcbiAgICAgICAgY29uc3Qgd29ya2luZ0NvbHVtbnMgPSB0aGlzLmNvcmVXb3JraW5nU2Vla2VyQ29tcG9uZW50LmNvbHVtbnMuZmlsdGVyKHggPT4gISF4LndvcmtpbmdTZWVrZXJDb2x1bW5Db2RlID8gIXRoaXMuZXhjbHVkZWRDb2x1bW5zV29ya2luZy5pbmNsdWRlcyh4LndvcmtpbmdTZWVrZXJDb2x1bW5Db2RlKSA6IHRydWUpXHJcbiAgICAgICAgdGhpcy5tdWx0aU1vZGVDb2x1bW5zID0gd29ya2luZ0NvbHVtbnM7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgRW51bUNvcmVGb3JtQ29udHJvbFNlZWtlclNvdXJjZVR5cGUuV0FHRV9TRUVLOlxyXG4gICAgICAgIGNvbnN0IHdhZ2VDb2x1bW5zID0gdGhpcy5jb3JlV2FnZVNlZWtlckNvbXBvbmVudC5jb2x1bW5zLmZpbHRlcih4ID0+ICEheC53YWdlU2Vla2VyQ29sdW1uQ29kZSA/ICF0aGlzLmV4Y2x1ZGVkQ29sdW1uc1dhZ2UuaW5jbHVkZXMoeC53YWdlU2Vla2VyQ29sdW1uQ29kZSkgOiB0cnVlKVxyXG4gICAgICAgIHRoaXMubXVsdGlNb2RlQ29sdW1ucyA9IHdhZ2VDb2x1bW5zO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIEVudW1Db3JlRm9ybUNvbnRyb2xTZWVrZXJTb3VyY2VUeXBlLlBPU0lUSU9OX1NFRUs6XHJcbiAgICAgICAgY29uc3QgcG9zaXRpb25Db2x1bW5zID0gdGhpcy5jb3JlUG9zaXRpb25TZWVrZXJDb21wb25lbnQuY29sdW1ucy5maWx0ZXIoeCA9PiAhIXgucG9zaXRpb25TZWVrZXJDb2x1bW5Db2RlID8gIXRoaXMuZXhjbHVkZWRDb2x1bW5zUG9zaXRpb24uaW5jbHVkZXMoeC5wb3NpdGlvblNlZWtlckNvbHVtbkNvZGUpIDogdHJ1ZSlcclxuICAgICAgICB0aGlzLm11bHRpTW9kZUNvbHVtbnMgPSBwb3NpdGlvbkNvbHVtbnM7XHJcbiAgICAgICAgaWYgKCEhIXRoaXMubXVsdGlNb2RlKSB7XHJcbiAgICAgICAgICB0aGlzLmhpZGVGb290ZXIgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBFbnVtQ29yZUZvcm1Db250cm9sU2Vla2VyU291cmNlVHlwZS5QT1NJVElPTl9DT05DVVJSRU5UX1NFRUs6XHJcbiAgICAgICAgY29uc3QgcG9zaXRpb25Db25jdXJyZW50Q29sdW1ucyA9IHRoaXMuY29yZVBvc2l0aW9uQ29uY3VycmVudFNlZWtlckNvbXBvbmVudC5jb2x1bW5zLmZpbHRlcih4ID0+ICEheC5wb3NpdGlvbkNvbmN1cnJlbnRTZWVrZXJDb2x1bW5Db2RlID8gIXRoaXMuZXhjbHVkZWRDb2x1bW5zUG9zaXRpb25Db25jdXJyZW50LmluY2x1ZGVzKHgucG9zaXRpb25Db25jdXJyZW50U2Vla2VyQ29sdW1uQ29kZSkgOiB0cnVlKVxyXG4gICAgICAgIHRoaXMubXVsdGlNb2RlQ29sdW1ucyA9IHBvc2l0aW9uQ29uY3VycmVudENvbHVtbnM7XHJcbiAgICAgICAgaWYgKCEhIXRoaXMubXVsdGlNb2RlKSB7XHJcbiAgICAgICAgICB0aGlzLmhpZGVGb290ZXIgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBFbnVtQ29yZUZvcm1Db250cm9sU2Vla2VyU291cmNlVHlwZS5PUkdBTklaQVRJT05fVU5JVF9TRUVLOlxyXG4gICAgICAgIHRoaXMubXVsdGlNb2RlQ29sdW1ucyA9IFtdO1xyXG4gICAgICAgIGlmICghISF0aGlzLm11bHRpTW9kZSkge1xyXG4gICAgICAgICAgdGhpcy5oaWRlRm9vdGVyID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcblxyXG4gICAgLypcclxuICAgIElmIHdlIHRyeSB0byBpbmplY3QgTmdDb250cm9sIGRpcmVjdGx5IHdpdGhpbiB0aGUgY29uc3RydWN0b3IsIHdlIHdpbGwgZ2V0IGFuIGVycm9yOiDigJxFcnJvcjogTkcwMjAwOiBDaXJjdWxhciBkZXBlbmRlbmN5IGluIERJIGRldGVjdGVk4oCm4oCdLlxyXG4gICAgVGh1cywgd2UgaW5qZWN0IE5nQ29udHJvbCBpbiB0aGUgT25Jbml0IGxpZmVjeWNsZSBob29rIHZpYSBJbmplY3RvciB3aXRob3V0IGFueSBlcnJvci5cclxuICAgICovXHJcbiAgICB0aGlzLm5nQ29udHJvbCA9IHRoaXMuaW5qZWN0b3IuZ2V0KE5nQ29udHJvbCk7XHJcbiAgICB0aGlzLmFzaWduTXVsdGlNb2RlQ29sdW1ucygpO1xyXG5cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuXHJcbiAgICAgIHRoaXMubXVsdGlNb2RlQ29sdW1ucz8ubWFwKGMgPT4ge1xyXG4gICAgICAgIGlmIChjLmZpZWxkID09PSAnYXZhdGFyJyAmJiAhISFjLnRlbXBsYXRlUmVmKSBjLnRlbXBsYXRlUmVmID0gdGhpcy5hdmF0YXJcclxuICAgICAgICBpZiAoYy5maWVsZCA9PT0gJ2FjdGZsZycgJiYgISEhYy50ZW1wbGF0ZVJlZikgYy50ZW1wbGF0ZVJlZiA9IHRoaXMuc3RpY2tlclxyXG4gICAgICB9KVxyXG5cclxuICAgICAgY29uc3QgZWwgPSB0aGlzLmNvbnRhaW5lcj8ubmF0aXZlRWxlbWVudDtcclxuICAgICAgY29uc3QgaGVpZ2h0ID0gZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0O1xyXG4gICAgICBlbC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1oZWlnaHQnLCAoaGVpZ2h0IHx8IDUwKSArICdweCcpO1xyXG5cclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgdGhpcy5tbHMubGFuZyQuc3Vic2NyaWJlKHggPT4gdGhpcy5sYW5nID0geClcclxuICAgICAgKVxyXG5cclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgdGhpcy5uZ0NvbnRyb2wuY29udHJvbD8udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh4ID0+IHtcclxuICAgICAgICAgIGlmICghISF4KSB0aGlzLnZhbHVlVG9TaG93ID0gXCJcIlxyXG4gICAgICAgIH0pIVxyXG4gICAgICApXHJcblxyXG4gICAgICBpZiAodGhpcy5jbGljayQgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgICAgdGhpcy5jbGljayQucGlwZSggZmlsdGVyKHggPT4gISF4KSApLnN1YnNjcmliZSh4ID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zb3VyY2VPcGVuID0gdHJ1ZTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKVxyXG4gICAgICB9XHJcblxyXG4gICAgICAvKiBTVEFSVDogQ0hFQ0sgSU5QVVRTICovXHJcblxyXG5cclxuICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgICAgaWYgKCEhIXRoaXMuc2Vla2VyU291cmNlVHlwZSkge1xyXG4gICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoXHJcbiAgICAgICAgICAgIGBDb3JlRm9ybUNvbnRyb2xTZWVrZXJDb21wb25lbnQgRXJyb3I6IFJlcXVpcmVkIGlucHV0czpcclxuICAgICAgICAgICAgICAgIHNlZWtlclNvdXJjZVR5cGU6IEVudW1Db3JlRm9ybUNvbnRyb2xTZWVrZXJTb3VyY2VUeXBlIChmb3IgJyR7dGhpcy5uZ0NvbnRyb2wubmFtZX0nKWBcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuXHJcblxyXG4gICAgICAgICAgaWYgKCEhIXRoaXMucGFyYW1Nb2RlKSB7XHJcblxyXG4gICAgICAgICAgICAvL2dldEJ5SWRPYmplY3QkXHJcbiAgICAgICAgICAgIGlmICghISF0aGlzLmdldEJ5SWRPYmplY3QkKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoXHJcbiAgICAgICAgICAgICAgICBgQ29yZUZvcm1Db250cm9sU2Vla2VyQ29tcG9uZW50IEVycm9yOiBSZXF1aXJlZCBpbnB1dHM6XHJcbiAgICAgICAgICAgICAgICAgIGdldEJ5SWRPYmplY3QkOiBCZWhhdmlvclN1YmplY3QmbHQ7YW55Jmd0OyAoZm9yICcke3RoaXMubmdDb250cm9sLm5hbWV9JylgXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlmICghdGhpcy5ib3VuZEZyb20gJiYgIXRoaXMubXVsdGlNb2RlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmVycm9yKFxyXG4gICAgICAgICAgICAgIGBBbGwgX1NFRUtFUiBjb250cm9scyByZXF1aXJlIGlucHV0OlxyXG4gICAgICAgICAgICAgICAgICAgIGJvdW5kRnJvbTogc3RyaW5nOyAoZm9yICcke3RoaXMubmdDb250cm9sLm5hbWV9JylgLFxyXG4gICAgICAgICAgICAgIG5vbmVBdXRvQ2xvc2VkQWxlcnRPcHRpb25zXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoISEhdGhpcy5zaG93bkZyb20gJiYgIXRoaXMubXVsdGlNb2RlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmVycm9yKFxyXG4gICAgICAgICAgICAgIGBBbGwgX1NFRUtFUiBjb250cm9scyByZXF1aXJlIGlucHV0OlxyXG4gICAgICAgICAgICAgICAgICAgIHNob3duRnJvbTogc3RyaW5nOyAoZm9yICcke3RoaXMubmdDb250cm9sLm5hbWV9JylgLFxyXG4gICAgICAgICAgICAgIG5vbmVBdXRvQ2xvc2VkQWxlcnRPcHRpb25zXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKCEhdGhpcy5pbmRpcmVjdEJpbmRpbmcpIHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLmJpbmRHcmlkSWRUbykge1xyXG4gICAgICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmVycm9yKFxyXG4gICAgICAgICAgICAgICAgYENvcmVGb3JtQ29udHJvbFNlZWtlckNvbXBvbmVudCBFcnJvcjogTuG6v3UgaW5kaXJlY3RCaW5kaW5nID0gdHJ1ZSwgYuG6r3QgYnXhu5ljIHBo4bqjaSBjw7MgdGjDqm0gdGh14buZYyB0w61uaCBiaW5kR3JpZElkVG8gKHRyxrDhu51uZyAnJHt0aGlzLm5nQ29udHJvbC5uYW1lfScpYFxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG5cclxuICAgICAgLyogRU5EOiBDSEVDSyBJTlBVVFMgKi9cclxuXHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgIHRoaXMuZ2V0QnlJZE9iamVjdCQ/LnN1YnNjcmliZSh4ID0+IHtcclxuXHJcbiAgICAgICAgICBpZiAoISF4KSB7XHJcbiAgICAgICAgICAgIGlmICghISF0aGlzLm11bHRpTW9kZSkge1xyXG4gICAgICAgICAgICAgIHRoaXMudmFsdWVUb1Nob3cgPSB4W3RoaXMuc2hvd25Gcm9tXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKCEhIXRoaXMubXVsdGlNb2RlKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy52YWx1ZVRvU2hvdyA9IFwiXCI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICApXHJcblxyXG4gICAgICBpZiAoISF0aGlzLm9iamVjdExpc3QkKSB7XHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgICB0aGlzLm9iamVjdExpc3QkLnN1YnNjcmliZSh4ID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGEgPSB4O1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuZXhjbHVkZUV4aXN0aW5nTGlzdCkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IG5ld0V4Y2x1ZGVkSWRzOiBudW1iZXJbXSA9IFtdO1xyXG4gICAgICAgICAgICAgIHgubWFwKGkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmluZGlyZWN0QmluZGluZykge1xyXG4gICAgICAgICAgICAgICAgICBuZXdFeGNsdWRlZElkcy5wdXNoKGkuaWQpXHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICBuZXdFeGNsdWRlZElkcy5wdXNoKGlbdGhpcy5iaW5kR3JpZElkVG9dKVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgdGhpcy5leGNsdWRlZElkcyQubmV4dChuZXdFeGNsdWRlZElkcyk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIClcclxuICAgICAgfVxyXG5cclxuICAgIH0pXHJcblxyXG5cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLm1hcCh4ID0+IHg/LnVuc3Vic2NyaWJlKCkpXHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudmFsdWUgPSBvYmopO1xyXG4gICAgaWYgKCEhdGhpcy5tdWx0aU1vZGUpIHtcclxuICAgICAgY29uc29sZS5ncm91cCgnV3JpdGUgdmFsdWUgZm9yICcgKyB0aGlzLm5nQ29udHJvbC5uYW1lKTtcclxuICAgICAgY29uc29sZS5sb2coXCJ0aGlzLm11bHRpTW9kZUNvbHVtbnNcIiwgdGhpcy5tdWx0aU1vZGVDb2x1bW5zKVxyXG4gICAgICBjb25zb2xlLmxvZygnVG8gZG86IEFzc2lnbiBhcGkgcmVzIHRvIHRoZSBzZWxlY3RlZERhdGEnKVxyXG4gICAgICBjb25zb2xlLmdyb3VwRW5kKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNsaWNrU2VlaygpOiB2b2lkIHtcclxuICAgIHRoaXMuY2xpY2skPy5uZXh0KHRydWUpO1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5yZWFkb25seSkgcmV0dXJuO1xyXG4gICAgaWYgKHRoaXMuY2xpY2skID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgLy8gbWFudWFsbHkgb3BlbiB0aGUgcG9wdXBcclxuICAgICAgdGhpcy5zb3VyY2VPcGVuID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uU2VsZWN0KCk6IHZvaWQge1xyXG4gICAgaWYgKCEhdGhpcy5tdWx0aU1vZGUpIHtcclxuXHJcbiAgICAgIGlmICghdGhpcy5pbmRpcmVjdEJpbmRpbmcpIHtcclxuICAgICAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLnBlbmRpbmdTZWxlY3RlZERhdGEuZmlsdGVyKHggPT4gdGhpcy5zZWxlY3RlZERhdGEuZmlsdGVyKHkgPT4geS5pZCA9PT0geC5pZCkubGVuZ3RoID09PSAwKVxyXG4gICAgICAgIGNvbnN0IG5ld1NlbGVjdGVkRGF0YSA9IFsuLi50aGlzLnNlbGVjdGVkRGF0YSwgLi4uZmlsdGVyXTtcclxuICAgICAgICBjb25zdCBuZXdTZWxlY3RlZElkczogYW55W10gPSBbXTtcclxuICAgICAgICBuZXdTZWxlY3RlZERhdGEubWFwKHggPT4gbmV3U2VsZWN0ZWRJZHMucHVzaCh4LmlkKSlcclxuICAgICAgICB0aGlzLm9iamVjdExpc3QkLm5leHQobmV3U2VsZWN0ZWREYXRhKTtcclxuICAgICAgICB0aGlzLnZhbHVlID0gbmV3U2VsZWN0ZWRJZHM7XHJcbiAgICAgICAgdGhpcy5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZShuZXdTZWxlY3RlZElkcylcclxuICAgICAgICB0aGlzLnBlbmRpbmdTZWxlY3RlZERhdGEgPSBbXTtcclxuICAgICAgICB0aGlzLnNvdXJjZU9wZW4gPSBmYWxzZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnBlbmRpbmdTZWxlY3RlZERhdGEubWFwKHggPT4ge1xyXG4gICAgICAgICAgLy8gZ8OhbiBpZCBj4bunYSBsxrDhu5tpIG5ndeG7k24gdsOgbyBj4buZdCBj4bqnbiB0aGnhur90XHJcbiAgICAgICAgICB4W3RoaXMuYmluZEdyaWRJZFRvXSA9IHguaWRcclxuICAgICAgICAgIC8vIHNhdSDEkcOzIGhvw6FuIGlkIG7DoHkgc2FuZyBnacOhIHRy4buLIOG6o28sIGVhY2ggXCJ4XCIgaXRlbSBtdXN0IGhhdmUgYW4gdW5pcXVlIGlkXHJcbiAgICAgICAgICB0aGlzLmluZGlyZWN0QmluZGluZ0xhc3RWaXJ0dWFsSWQgLT0gMTtcclxuICAgICAgICAgIHguaWQgPSB0aGlzLmluZGlyZWN0QmluZGluZ0xhc3RWaXJ0dWFsSWQ7IC8vIHVzaW5nIG5hZ2F0aXZlIHZhbHVlIHRvIGJ5cGFzcyAobG9vc2luZyBvZi9jb25mdXNpbmcgd2l0aCkgZXhpc3RpbmcgaWRzXHJcbiAgICAgICAgfSlcclxuICAgICAgICBjb25zdCBuZXdTZWxlY3RlZERhdGEgPSBbLi4udGhpcy5zZWxlY3RlZERhdGEsIC4uLnRoaXMucGVuZGluZ1NlbGVjdGVkRGF0YV07XHJcbiAgICAgICAgLy8gY29uc3QgbmV3U2VsZWN0ZWRJZHM6IGFueVtdID0gW107XHJcbiAgICAgICAgLy8gbmV3U2VsZWN0ZWREYXRhLm1hcCh4ID0+IG5ld1NlbGVjdGVkSWRzLnB1c2goeC5pZCkpXHJcbiAgICAgICAgdGhpcy5vYmplY3RMaXN0JC5uZXh0KG5ld1NlbGVjdGVkRGF0YSk7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IG5ld1NlbGVjdGVkRGF0YTtcclxuICAgICAgICB0aGlzLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlKG5ld1NlbGVjdGVkRGF0YSlcclxuICAgICAgICB0aGlzLnBlbmRpbmdTZWxlY3RlZERhdGEgPSBbXTtcclxuICAgICAgICB0aGlzLnNvdXJjZU9wZW4gPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKCEhdGhpcy5jbGlja2VkSXRlbSkge1xyXG4gICAgICAgIHRoaXMub25Sb3dEb3VibGVDbGljayh0aGlzLmNsaWNrZWRJdGVtKTtcclxuICAgICAgICB0aGlzLmNsaWNrZWRJdGVtID0gdW5kZWZpbmVkO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNhbmNlbCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc291cmNlT3BlbiA9IGZhbHNlO1xyXG4gICAgdGhpcy5jbGlja2VkSXRlbSA9IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIG9uUm93RG91YmxlQ2xpY2soZTogYW55KSB7XHJcbiAgICB0aGlzLndyaXRlVmFsdWUoZVt0aGlzLmJvdW5kRnJvbV0pO1xyXG4gICAgdGhpcy5vbkNoYW5nZShlW3RoaXMuYm91bmRGcm9tXSk7XHJcbiAgICB0aGlzLnZhbHVlVG9TaG93ID0gZVt0aGlzLnNob3duRnJvbV07XHJcbiAgICB0aGlzLnNvdXJjZU9wZW4gPSBmYWxzZTtcclxuXHJcbiAgICBpZiAoISF0aGlzLmFsc29CaW5kVG8pIHtcclxuICAgICAgY29uc3QgZm9ybSA9IHRoaXMubmdDb250cm9sLmNvbnRyb2w/LnBhcmVudDtcclxuICAgICAgaWYgKGZvcm0pIHtcclxuICAgICAgICB0aGlzLmFsc29CaW5kVG8ubWFwKCh4LCBpbmRleCkgPT4ge1xyXG5cclxuICAgICAgICAgIC8qXHJcbiAgICAgICAgICBzdGFydDogVmFsaWRhdGUgRGV2ZWxvcGVyIGlucHV0XHJcbiAgICAgICAgICAqL1xyXG4gICAgICAgICAgaWYgKGlzRGV2TW9kZSgpICYmIGluZGV4ID09PSAwKSB7XHJcbiAgICAgICAgICAgIGlmICghISF4LnRha2VGcm9tKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoXCJ0YWtlRnJvbSB3YXMgdW5kZWZpbmVkXCIsIG5vbmVBdXRvQ2xvc2VkQWxlcnRPcHRpb25zKVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGlmICghISFlW3gudGFrZUZyb21dKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5lcnJvcihgWW91IGV4cGVjdCBhIHZhbHVlIGZyb20gJyR7eC50YWtlRnJvbX0nLCBidXQgdGhlIHNlZWtlciBncmlkIGRvZXMgbm90IGhhdmUgdGhpcyBjb2x1bW5gLCBub25lQXV0b0Nsb3NlZEFsZXJ0T3B0aW9ucylcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKCEhIXguYmluZFRvKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoXCJiaW5kVG8gd2FzIHVuZGVmaW5lZFwiLCBub25lQXV0b0Nsb3NlZEFsZXJ0T3B0aW9ucylcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBpZiAoISEhZm9ybS5nZXQoeC5iaW5kVG8pKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5lcnJvcihgWW91IGV4cGVjdCB0byBiaW5kIHZhbHVlIHRvICcke3guYmluZFRvfScsIGJ1dCB0aGUgZm9ybSBncm91cCBkb2VzIG5vdCBoYXZlIHRoaXMgY29udHJvbGAsIG5vbmVBdXRvQ2xvc2VkQWxlcnRPcHRpb25zKVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8qXHJcbiAgICAgICAgICBlbmQ6IFZhbGlkYXRlIERldmVsb3BlciBpbnB1dFxyXG4gICAgICAgICAgKi9cclxuXHJcbiAgICAgICAgICBmb3JtLmdldCh4LmJpbmRUbyk/LnNldFZhbHVlKGVbeC50YWtlRnJvbV0pO1xyXG4gICAgICAgICAgZm9ybS5nZXQoeC5iaW5kVG8pPy5tYXJrQXNUb3VjaGVkO1xyXG4gICAgICAgICAgZm9ybS5nZXQoeC5iaW5kVG8pPy5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uSXRlbURvdWJsZUNsaWNrKGU6IElPcmdUcmVlSXRlbSkge1xyXG4gICAgdGhpcy53cml0ZVZhbHVlKGUuaWQpO1xyXG4gICAgdGhpcy52YWx1ZVRvU2hvdyA9IGUudHJlZSRUaXRsZTtcclxuICAgIHRoaXMub25DaGFuZ2UoZS5pZCk7XHJcbiAgICB0aGlzLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgIHRoaXMuc291cmNlT3BlbiA9IGZhbHNlO1xyXG4gICAgdGhpcy5vbkRvdWJsZUNsaWNrLmVtaXQoZSk7XHJcbiAgfVxyXG5cclxuICBvbkNvbHVtbnNJbml0KGU6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKCEhdGhpcy5tdWx0aU1vZGVFeHRlbmRlZENvbHVtbnMpIHtcclxuICAgICAgdGhpcy5tdWx0aU1vZGVDb2x1bW5zID0gWy4uLmUsIC4uLnRoaXMubXVsdGlNb2RlRXh0ZW5kZWRDb2x1bW5zXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubXVsdGlNb2RlQ29sdW1ucyA9IGU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblNlbGVjdGVkRGF0YUNoYW5nZShlOiBhbnkpIHtcclxuICAgIGlmICghIXRoaXMubXVsdGlNb2RlRXh0ZW5kZWRDb2x1bW5zKSB7XHJcbiAgICAgIHRoaXMubXVsdGlNb2RlQ29sdW1ucyA9IFsuLi5lLmNvbHVtbnMsIC4uLnRoaXMubXVsdGlNb2RlRXh0ZW5kZWRDb2x1bW5zXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubXVsdGlNb2RlQ29sdW1ucyA9IGUuY29sdW1ucztcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnBlbmRpbmdTZWxlY3RlZERhdGEgPSBlLmRhdGE7XHJcbiAgfVxyXG5cclxuICBvblRvb2xDbGljayhlOiBJQ29yZVRhYmxlVG9vbENsaWNrRXZlbnRFbWl0dGVyRGF0YSkge1xyXG4gICAgaWYgKGUuY29kZSA9PT0gRUNvcmVUYWJsZVRvb2xDb2RlLmRlbGV0ZSkge1xyXG4gICAgICBjb25zdCBuZXdPYmplY3RMaXN0ID0gdGhpcy5vYmplY3RMaXN0JC52YWx1ZS5maWx0ZXIoeCA9PiB4LmlkICE9PSBlLmlkKVxyXG5cclxuICAgICAgdGhpcy5vYmplY3RMaXN0JC5uZXh0KG5ld09iamVjdExpc3QpO1xyXG5cclxuICAgICAgaWYgKCF0aGlzLmluZGlyZWN0QmluZGluZykge1xyXG4gICAgICAgIGNvbnN0IG5ld0lkcyA9IHRoaXMudmFsdWUuZmlsdGVyKCh4OiBhbnkpID0+IHggIT09IGUuaWQpXHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IG5ld0lkcztcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlKG5ld0lkcyk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IG5ld09iamVjdExpc3Q7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZShuZXdPYmplY3RMaXN0KTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ2xpY2tDbGVhcigpIHtcclxuXHJcbiAgICB0aGlzLndyaXRlVmFsdWUobnVsbCk7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKG51bGwpO1xyXG4gICAgdGhpcy52YWx1ZVRvU2hvdyA9IFwiXCI7XHJcblxyXG4gIH1cclxuXHJcbiAgb25TZWxlY3RlZERhdGFSb3dEb3VibGVDbGljayhlOiBhbnkpIHtcclxuXHJcbiAgICBpZiAoIXRoaXMuZWRpdEJ1ZmZlckRhdGEkKSByZXR1cm47XHJcblxyXG4gICAgY29uc29sZS5sb2coXCJHaXZlbiByb3cgZGF0YTogXCIsIGUpXHJcbiAgICBpZiAoIWUuaWQpIHtcclxuICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoXCJObyAnaWQnIGNvbHVtbnMgZm91bmQgb3IgY3VycmVudCBpZCB3YXMgbnVsbFwiLCBub25lQXV0b0Nsb3NlZEFsZXJ0T3B0aW9ucyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0cnkge1xyXG4gICAgICB0aGlzLmVkaXRCdWZmZXJGb3JtPy5nZXQoJ2lkJyk/LnBhdGNoVmFsdWUoZS5pZClcclxuICAgIH0gY2F0Y2ggKGV4OiBhbnkpIHtcclxuICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoZXgubWVzc2FnZSwgbm9uZUF1dG9DbG9zZWRBbGVydE9wdGlvbnMpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoISF0aGlzLm11bHRpTW9kZUV4dGVuZGVkQ29sdW1ucy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5tdWx0aU1vZGVFeHRlbmRlZENvbHVtbnMubWFwKHggPT4ge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICB0aGlzLmVkaXRCdWZmZXJGb3JtPy5nZXQoeC5maWVsZCk/LnBhdGNoVmFsdWUoZVt4LmZpZWxkXSlcclxuICAgICAgICB9IGNhdGNoIChleGNlcHRpb246IGFueSkge1xyXG4gICAgICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmVycm9yKGV4Y2VwdGlvbi5tZXNzYWdlLCBub25lQXV0b0Nsb3NlZEFsZXJ0T3B0aW9ucyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICB0cnkge1xyXG4gICAgICAgIHRoaXMuZWRpdGluZ0lkID0gZS5pZDtcclxuICAgICAgfSBjYXRjaCAoZXhjZXB0aW9uOiBhbnkpIHtcclxuICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmVycm9yKGV4Y2VwdGlvbi5tZXNzYWdlLCBub25lQXV0b0Nsb3NlZEFsZXJ0T3B0aW9ucyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLnNob3dFZGl0QnVmZmVyID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uRWRpdEJ1ZmZlclN1Ym1pdChlOiBhbnkpIHtcclxuICAgIHZhciBmb3JtRGF0YSA9IHRoaXMuZWRpdEJ1ZmZlckZvcm0uZ2V0UmF3VmFsdWUoKTtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IGZpbHRlciA9IHRoaXMuc2VsZWN0ZWREYXRhPy5maWx0ZXIoeCA9PiB4LmlkID09PSB0aGlzLmVkaXRpbmdJZCk7XHJcbiAgICAgIGlmIChmaWx0ZXI/Lmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgIHRoaXMubXVsdGlNb2RlRXh0ZW5kZWRDb2x1bW5zPy5tYXAoYyA9PiB7XHJcbiAgICAgICAgICBmaWx0ZXJbMF1bYy5maWVsZF0gPSBmb3JtRGF0YVtjLmZpZWxkXTtcclxuICAgICAgICB9KVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZWRpdEJ1ZmZlckRhdGEkLm5leHQoZm9ybURhdGEpO1xyXG4gICAgICB0aGlzLnNob3dFZGl0QnVmZmVyID0gZmFsc2U7XHJcbiAgICB9IGNhdGNoIChleDogYW55KSB7XHJcbiAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGV4KTtcclxuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5lcnJvcihleC5tZXNzYWdlIHx8ICdBbiBlcnJvciBvY2N1cmVkIHdoaWxlIHRyeWluZyB0byB1cGRhdGUgc2VsZWN0ZWREYXRhJywgbm9uZUF1dG9DbG9zZWRBbGVydE9wdGlvbnMpXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uRWRpdEJ1ZmZlckNhbmNlbChlOiBhbnkpIHtcclxuICAgIHRoaXMuc2hvd0VkaXRCdWZmZXIgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIG9uRWRpdEJ1ZmZlckZvcm1DcmVhdGVkKGU6IEZvcm1Hcm91cCkge1xyXG4gICAgdGhpcy5lZGl0QnVmZmVyRm9ybSA9IGU7XHJcbiAgfVxyXG5cclxuICBpc1NvdXJjZU9wZW4oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5zb3VyY2VPcGVuO1xyXG4gIH1cclxuXHJcbiAgb25Sb3dDbGljayhlOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuY2xpY2tlZEl0ZW0gPSBlO1xyXG4gIH1cclxuXHJcbiAgY2xpY2tlZEl0ZW1Jc0luVGhlTGlzdCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhIXRoaXMubGlzdC5maWx0ZXIoeCA9PiB4LmlkID09PSB0aGlzLmNsaWNrZWRJdGVtPy5pZCkubGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgb25MaXN0Q2hhbmdlKGU6IGFueVtdKSB7XHJcbiAgICBpZiAoZS5jb25zdHJ1Y3RvciA9PT0gQXJyYXkpIHtcclxuICAgICAgdGhpcy5saXN0ID0gZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubGlzdCA9IFtdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn0iLCI8ZGl2ICNjb250YWluZXIgY2xhc3M9XCJjb3JlLWZvcm0tY29udHJvbC1zZWVrZXItY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtd3JhcHBlclwiIFtjbGFzcy5kLW5vbmVdPVwiISFtdWx0aU1vZGVcIj5cclxuICAgICAgICA8bGFiZWwgI3Nob3duVGV4dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwidGV4dCBmb3JtLWNvbnRyb2wgcG9pbnRlclwiIFtjbGFzcy5mb3JtLWNvbnRyb2wtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwib25DbGlja1NlZWsoKVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBbYXBwVG9vbHRpcF09XCJ2YWx1ZVRvU2hvd1wiPnt7IHZhbHVlVG9TaG93IH19PC9zcGFuPlxyXG4gICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgQGlmICghbXVsdGlNb2RlKSB7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNsZWFyLWljb24td3JhcHBlclwiIFtjbGFzcy5kLW5vbmVdPVwiISFkaXNhYmxlZCB8fCAhISF2YWx1ZVwiIChjbGljayk9XCJvbkNsaWNrQ2xlYXIoKVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC13cmFwcGVyXCIgW2FwcFRvb2x0aXBdPVwiJ1VJLkNPUkVfQ09OVE9MX0NPTU1PTl9DTEVBUicgfCB0cmFuc2xhdGU6IGxhbmdcIj5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmVhdGhlci14XCI+PC9pPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJzZWVrZXItaWNvbi13cmFwcGVyXCIgW2NsYXNzLmZvcm0tY29udHJvbC1kaXNhYmxlZF09XCJkaXNhYmxlZFwiIFtjbGFzcy5tdWx0aS1tb2RlXT1cIiEhbXVsdGlNb2RlXCJcclxuICAgICAgICAoY2xpY2spPVwib25DbGlja1NlZWsoKVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LXdyYXBwZXJcIiBbY2xhc3MuZm9ybS1jb250cm9sLWRpc2FibGVkXT1cImRpc2FibGVkXCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmVhdGhlci1zZWFyY2hcIj48L2k+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIEBpZiAoISFtdWx0aU1vZGUpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJjb3JlLXRhYmJlLXdyYXBwZXJcIj5cclxuICAgICAgICA8Y29yZS10YWJsZSBbaGVpZ2h0XT1cIm11bHRpTW9kZVRhYmxlSGVpZ2h0XCIgW2NvbHVtbnNdPVwibXVsdGlNb2RlQ29sdW1uc1wiIFtkYXRhXT1cInNlbGVjdGVkRGF0YVwiXHJcbiAgICAgICAgICAgIFtzaG93VG9vbHNdPVwiISEhZGlzYWJsZWRcIiBbdG9vbHNdPVwidG9vbHNcIiBbbGF6eUxvYWRpbmddPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgIFtyb3dIZWlnaHRdPVwiKG11bHRpTW9kZVJvd0hlaWdodCB8fCA0NikgKyAncHgnXCIgW3NlYXJjaFN3aXRjaERpc2FibGVkXT1cInRydWVcIiBbZGlzYWJsZVNvcnRpbmddPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgIChvblRvb2xDbGljayk9XCJvblRvb2xDbGljaygkZXZlbnQpXCIgKG9uUm93RG91YmxlQ2xpY2spPVwib25TZWxlY3RlZERhdGFSb3dEb3VibGVDbGljaygkZXZlbnQpXCI+PC9jb3JlLXRhYmxlPlxyXG4gICAgPC9kaXY+XHJcbiAgICB9XHJcblxyXG4gICAgQGlmICghIXNvdXJjZU9wZW4pIHtcclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1jb250YWluZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudC1yb290XCIgW25nU3R5bGVdPVwieyBwYWRkaW5nOiAnMHB4JyB9XCI+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic291cmNlLXNwYWNlXCIgW25nU3R5bGVdPVwie1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBzb3VyY2VTcGFjZUhlaWdodCArICdweCcsXHJcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogJ2hpZGRlbicsXHJcbiAgICAgICAgICAgICAgICBib3hTaXppbmc6ICdib3JkZXItYm94JyxcclxuICAgICAgICAgICAgfVwiPlxyXG4gICAgICAgICAgICAgICAgQGlmIChzaG93UGFnZUhlYWRlcikge1xyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlci1wYW5lbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjb3JlLXBhZ2UtaGVhZGVyIFt0aXRsZV09XCJ0aXRsZVwiIFtoaWRlQnV0dG9uR3JvdXBdPVwidHJ1ZVwiPjwvY29yZS1wYWdlLWhlYWRlcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNvdXJjZS1jb250YWluZXJcIiBbbmdTdHlsZV09XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBzb3VyY2VDb250YWluZXJIZWlnaHQgKyAncHgnLFxyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmdUb3A6ICcwcHgnLFxyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmdCb3R0b206ICcwcHgnXHJcbiAgICAgICAgICAgICAgICB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJjbG9zZS1pY29uIGZlYXRoZXIteFwiIChjbGljayk9XCJvbkNhbmNlbCgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmQtYmxvY2tdPVwic2Vla2VyU291cmNlVHlwZT09PSdPUkdBTklaQVRJT05fVU5JVF9TRUVLJ1wiPjwvaT5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgQHN3aXRjaCAoc2Vla2VyU291cmNlVHlwZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIEBjYXNlICgnSk9CX1NFRUsnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImpvYlNlZWtcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCdFTVBMT1lFRV9TRUVLJykge1xyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlbXBsb3llZVNlZWtcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCdDT05UUkFDVF9TRUVLJykge1xyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250cmFjdFNlZWtcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCdXT1JLSU5HX1NFRUsnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIndvcmtpbmdTZWVrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIEBjYXNlICgnV0FHRV9TRUVLJykge1xyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ3YWdlU2Vla1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBAY2FzZSAoJ09SR0FOSVpBVElPTl9VTklUX1NFRUsnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm9yZ2FuaXphdGlvblVuaXRTZWVrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIEBjYXNlICgnUE9TSVRJT05fU0VFSycpIHtcclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicG9zaXRpb25TZWVrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIEBjYXNlICgnUE9TSVRJT05fQ09OQ1VSUkVOVF9TRUVLJykge1xyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwb3NpdGlvbkNvbmN1cnJlbnRTZWVrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleC1lbmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmICgoc2Vla2VyU291cmNlVHlwZSA9PT0gJ09SR0FOSVpBVElPTl9VTklUX1NFRUsnICYmICEhY2xpY2tlZEl0ZW0pIHx8ICghIW11bHRpTW9kZSAmJiAhIXBlbmRpbmdTZWxlY3RlZERhdGE/Lmxlbmd0aCkgfHwgKCFtdWx0aU1vZGUgJiYgISFjbGlja2VkSXRlbUlzSW5UaGVMaXN0KCkpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9uU2VsZWN0KClcIj57e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1VJX0NPUkVfQ09ORklSTV9ESUFMT0dfQlVUVE9OX1NFTEVDVCcgfCB0cmFuc2xhdGU6IGxhbmcgfX08L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnlcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9uQ2FuY2VsKClcIj57e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1VJX0NPUkVfQ09ORklSTV9ESUFMT0dfQlVUVE9OX0NBTkNFTCcgfCB0cmFuc2xhdGU6IGxhbmcgfX08L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICB9XHJcblxyXG48L2Rpdj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjam9iU2Vlaz5cclxuICAgIDxjb3JlLWpvYi1zZWVrZXIgW2V4Y2x1ZGVkQ29sdW1uc109XCJleGNsdWRlZENvbHVtbnNKb2JcIiBbcHJlRGVmaW5lZE91dGVyUGFyYW0kXT1cInByZURlZmluZWRPdXRlclBhcmFtJFwiXHJcbiAgICAgICAgW3ByZURlZmluZWRPdXRlckZpbHRlciRdPVwicHJlRGVmaW5lZE91dGVyRmlsdGVyJFwiIFttdWx0aU1vZGVdPVwibXVsdGlNb2RlXCIgW2V4Y2x1ZGVkSWRzJF09XCJleGNsdWRlZElkcyRcIlxyXG4gICAgICAgIChyb3dEb3VibGVDbGljayk9XCJvblJvd0RvdWJsZUNsaWNrKCRldmVudClcIiAoY29sdW1uc0luaXQpPVwib25Db2x1bW5zSW5pdCgkZXZlbnQpXCJcclxuICAgICAgICAoc2VsZWN0ZWREYXRhQ2hhbmdlKT1cIm9uU2VsZWN0ZWREYXRhQ2hhbmdlKCRldmVudClcIiBcclxuICAgICAgICAocm93Q2xpY2spPVwib25Sb3dDbGljaygkZXZlbnQpXCJcclxuICAgICAgICAobGlzdENoYW5nZSk9XCJvbkxpc3RDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgW2hlaWdodF09XCJjaGlsZENvbXBvbmVudEhlaWdodFwiXHJcbiAgICAgICAgPjwvY29yZS1qb2Itc2Vla2VyPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNlbXBsb3llZVNlZWs+XHJcbiAgICA8Y29yZS1lbXBsb3llZS1zZWVrZXIgW2V4Y2x1ZGVkQ29sdW1uc109XCJleGNsdWRlZENvbHVtbnNFbXBsb3llZVwiIFtwcmVEZWZpbmVkT3V0ZXJQYXJhbSRdPVwicHJlRGVmaW5lZE91dGVyUGFyYW0kXCJcclxuICAgICAgICBbcHJlRGVmaW5lZE91dGVyRmlsdGVyJF09XCJwcmVEZWZpbmVkT3V0ZXJGaWx0ZXIkXCIgW211bHRpTW9kZV09XCJtdWx0aU1vZGVcIiBbZXhjbHVkZWRJZHMkXT1cImV4Y2x1ZGVkSWRzJFwiXHJcbiAgICAgICAgKHJvd0RvdWJsZUNsaWNrKT1cIm9uUm93RG91YmxlQ2xpY2soJGV2ZW50KVwiIChjb2x1bW5zSW5pdCk9XCJvbkNvbHVtbnNJbml0KCRldmVudClcIlxyXG4gICAgICAgIChzZWxlY3RlZERhdGFDaGFuZ2UpPVwib25TZWxlY3RlZERhdGFDaGFuZ2UoJGV2ZW50KVwiIFxyXG4gICAgICAgIChyb3dDbGljayk9XCJvblJvd0NsaWNrKCRldmVudClcIlxyXG4gICAgICAgIChsaXN0Q2hhbmdlKT1cIm9uTGlzdENoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICBbaGVpZ2h0XT1cImNoaWxkQ29tcG9uZW50SGVpZ2h0XCJcclxuICAgICAgICA+PC9jb3JlLWVtcGxveWVlLXNlZWtlcj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjY29udHJhY3RTZWVrPlxyXG4gICAgPGNvcmUtY29udHJhY3Qtc2Vla2VyIFtleGNsdWRlZENvbHVtbnNdPVwiZXhjbHVkZWRDb2x1bW5zQ29udHJhY3RcIiBbcHJlRGVmaW5lZE91dGVyUGFyYW0kXT1cInByZURlZmluZWRPdXRlclBhcmFtJFwiXHJcbiAgICAgICAgW3ByZURlZmluZWRPdXRlckZpbHRlciRdPVwicHJlRGVmaW5lZE91dGVyRmlsdGVyJFwiIFttdWx0aU1vZGVdPVwibXVsdGlNb2RlXCIgW2V4Y2x1ZGVkSWRzJF09XCJleGNsdWRlZElkcyRcIlxyXG4gICAgICAgIChyb3dEb3VibGVDbGljayk9XCJvblJvd0RvdWJsZUNsaWNrKCRldmVudClcIiAoY29sdW1uc0luaXQpPVwib25Db2x1bW5zSW5pdCgkZXZlbnQpXCJcclxuICAgICAgICAoc2VsZWN0ZWREYXRhQ2hhbmdlKT1cIm9uU2VsZWN0ZWREYXRhQ2hhbmdlKCRldmVudClcIiBcclxuICAgICAgICAocm93Q2xpY2spPVwib25Sb3dDbGljaygkZXZlbnQpXCJcclxuICAgICAgICAobGlzdENoYW5nZSk9XCJvbkxpc3RDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgW2hlaWdodF09XCJjaGlsZENvbXBvbmVudEhlaWdodFwiXHJcbiAgICAgICAgPjwvY29yZS1jb250cmFjdC1zZWVrZXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI3dvcmtpbmdTZWVrPlxyXG4gICAgPGNvcmUtd29ya2luZy1zZWVrZXIgW2V4Y2x1ZGVkQ29sdW1uc109XCJleGNsdWRlZENvbHVtbnNXb3JraW5nXCIgW3ByZURlZmluZWRPdXRlclBhcmFtJF09XCJwcmVEZWZpbmVkT3V0ZXJQYXJhbSRcIlxyXG4gICAgICAgIFtwcmVEZWZpbmVkT3V0ZXJGaWx0ZXIkXT1cInByZURlZmluZWRPdXRlckZpbHRlciRcIiBbbXVsdGlNb2RlXT1cIm11bHRpTW9kZVwiIFtleGNsdWRlZElkcyRdPVwiZXhjbHVkZWRJZHMkXCJcclxuICAgICAgICAocm93RG91YmxlQ2xpY2spPVwib25Sb3dEb3VibGVDbGljaygkZXZlbnQpXCIgKGNvbHVtbnNJbml0KT1cIm9uQ29sdW1uc0luaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgKHNlbGVjdGVkRGF0YUNoYW5nZSk9XCJvblNlbGVjdGVkRGF0YUNoYW5nZSgkZXZlbnQpXCIgXHJcbiAgICAgICAgKHJvd0NsaWNrKT1cIm9uUm93Q2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgKGxpc3RDaGFuZ2UpPVwib25MaXN0Q2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgIFtoZWlnaHRdPVwiY2hpbGRDb21wb25lbnRIZWlnaHRcIlxyXG4gICAgICAgID48L2NvcmUtd29ya2luZy1zZWVrZXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI3dhZ2VTZWVrPlxyXG4gICAgPGNvcmUtd2FnZS1zZWVrZXIgW2V4Y2x1ZGVkQ29sdW1uc109XCJleGNsdWRlZENvbHVtbnNXYWdlXCIgW3ByZURlZmluZWRPdXRlclBhcmFtJF09XCJwcmVEZWZpbmVkT3V0ZXJQYXJhbSRcIlxyXG4gICAgICAgIFtwcmVEZWZpbmVkT3V0ZXJGaWx0ZXIkXT1cInByZURlZmluZWRPdXRlckZpbHRlciRcIiBbbXVsdGlNb2RlXT1cIm11bHRpTW9kZVwiIFtleGNsdWRlZElkcyRdPVwiZXhjbHVkZWRJZHMkXCJcclxuICAgICAgICAocm93RG91YmxlQ2xpY2spPVwib25Sb3dEb3VibGVDbGljaygkZXZlbnQpXCIgKGNvbHVtbnNJbml0KT1cIm9uQ29sdW1uc0luaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgKHNlbGVjdGVkRGF0YUNoYW5nZSk9XCJvblNlbGVjdGVkRGF0YUNoYW5nZSgkZXZlbnQpXCIgXHJcbiAgICAgICAgKHJvd0NsaWNrKT1cIm9uUm93Q2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgKGxpc3RDaGFuZ2UpPVwib25MaXN0Q2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgIFtoZWlnaHRdPVwiY2hpbGRDb21wb25lbnRIZWlnaHRcIlxyXG4gICAgICAgID48L2NvcmUtd2FnZS1zZWVrZXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI3Bvc2l0aW9uU2Vlaz5cclxuICAgIDxjb3JlLXBvc2l0aW9uLXNlZWtlciBbZXhjbHVkZWRDb2x1bW5zXT1cImV4Y2x1ZGVkQ29sdW1uc1Bvc2l0aW9uXCIgW3ByZURlZmluZWRPdXRlclBhcmFtJF09XCJwcmVEZWZpbmVkT3V0ZXJQYXJhbSRcIlxyXG4gICAgICAgIFtwcmVEZWZpbmVkT3V0ZXJGaWx0ZXIkXT1cInByZURlZmluZWRPdXRlckZpbHRlciRcIiBbbXVsdGlNb2RlXT1cIm11bHRpTW9kZVwiIFtleGNsdWRlZElkcyRdPVwiZXhjbHVkZWRJZHMkXCJcclxuICAgICAgICBbc2Vla2VyVmVyaWZ5SWdub3JlXT1cInNlZWtlclZlcmlmeUlnbm9yZVwiIChyb3dEb3VibGVDbGljayk9XCJvblJvd0RvdWJsZUNsaWNrKCRldmVudClcIlxyXG4gICAgICAgIChjb2x1bW5zSW5pdCk9XCJvbkNvbHVtbnNJbml0KCRldmVudClcIiAoc2VsZWN0ZWREYXRhQ2hhbmdlKT1cIm9uU2VsZWN0ZWREYXRhQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgIChyb3dDbGljayk9XCJvblJvd0NsaWNrKCRldmVudClcIlxyXG4gICAgICAgIChsaXN0Q2hhbmdlKT1cIm9uTGlzdENoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICBbaGVpZ2h0XT1cImNoaWxkQ29tcG9uZW50SGVpZ2h0XCJcclxuICAgICAgICA+PC9jb3JlLXBvc2l0aW9uLXNlZWtlcj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjcG9zaXRpb25Db25jdXJyZW50U2Vlaz5cclxuICAgIDxjb3JlLXBvc2l0aW9uLWNvbmN1cnJlbnQtc2Vla2VyIFtleGNsdWRlZENvbHVtbnNdPVwiZXhjbHVkZWRDb2x1bW5zUG9zaXRpb25Db25jdXJyZW50XCJcclxuICAgICAgICBbcHJlRGVmaW5lZE91dGVyUGFyYW0kXT1cInByZURlZmluZWRPdXRlclBhcmFtJFwiIFttdWx0aU1vZGVdPVwibXVsdGlNb2RlXCIgW2V4Y2x1ZGVkSWRzJF09XCJleGNsdWRlZElkcyRcIlxyXG4gICAgICAgIFtwcmVEZWZpbmVkT3V0ZXJGaWx0ZXIkXT1cInByZURlZmluZWRPdXRlckZpbHRlciRcIiAocm93RG91YmxlQ2xpY2spPVwib25Sb3dEb3VibGVDbGljaygkZXZlbnQpXCJcclxuICAgICAgICAoY29sdW1uc0luaXQpPVwib25Db2x1bW5zSW5pdCgkZXZlbnQpXCIgKHNlbGVjdGVkRGF0YUNoYW5nZSk9XCJvblNlbGVjdGVkRGF0YUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAocm93Q2xpY2spPVwib25Sb3dDbGljaygkZXZlbnQpXCJcclxuICAgICAgICAobGlzdENoYW5nZSk9XCJvbkxpc3RDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgW2hlaWdodF09XCJjaGlsZENvbXBvbmVudEhlaWdodFwiXHJcbiAgICAgICAgPjwvY29yZS1wb3NpdGlvbi1jb25jdXJyZW50LXNlZWtlcj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjb3JnYW5pemF0aW9uVW5pdFNlZWs+XHJcbiAgICA8Y29yZS1vcmctdW5pdC1zZWVrZXIgW2V4Y2x1ZGVkSWRzJF09XCJleGNsdWRlZElkcyRcIlxyXG4gICAgICAgIChpdGVtRG91YmxlQ2xpY2spPVwib25JdGVtRG91YmxlQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgKGl0ZW1DbGljayk9XCJvblJvd0NsaWNrKCRldmVudClcIlxyXG4gICAgICAgIFtoZWlnaHRdPVwiY2hpbGRDb21wb25lbnRIZWlnaHRcIlxyXG4gICAgICAgID48L2NvcmUtb3JnLXVuaXQtc2Vla2VyPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNhdmF0YXIgbGV0LWF2YXRhcj1cImNvbnRleHQuYXZhdGFyXCI+XHJcbiAgICA8aW1nICpuZ0lmPVwiYXZhdGFyICE9IG51bGxcIiBbc3JjXT1cImF2YXRhciB8IG1hcEF2YXRhclRvU2VydmVyXCIgY2xhc3M9XCJpbi10YWJsZS1hdmF0YXJcIiBhcHBJbWFnZUVycm9yUmVzb2x2ZXI+XHJcbiAgICA8aW1nICpuZ0lmPVwiYXZhdGFyID09IG51bGxcIiBbc3JjXT1cImRlZmF1bHRBdmF0YXJcIiBjbGFzcz1cImluLXRhYmxlLWF2YXRhclwiIGFwcEltYWdlRXJyb3JSZXNvbHZlcj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuPG5nLXRlbXBsYXRlICNzdGlja2VyIGxldC1jb2RlPVwiY29udGV4dC5hY3RmbGdcIj5cclxuICAgIDxjb3JlLXN0YXR1cy1zdGlja2VyIFtjb2RlXT1cImNvZGVcIiBbaXNUcnVlQ29kZV09XCJ0cnVlXCI+PC9jb3JlLXN0YXR1cy1zdGlja2VyPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPGRpdiBbY2xhc3MuZC1ub25lXT1cIiFzaG93RWRpdEJ1ZmZlclwiPlxyXG4gICAgPGNvcmUtcGFnZS1lZGl0LWxpdGUgW3NlY3Rpb25zXT1cIm11bHRpTW9kZUV4dGVuZGVkU2VjdGlvbnNcIiAob25Gb3JtQ3JlYXRlZCk9XCJvbkVkaXRCdWZmZXJGb3JtQ3JlYXRlZCgkZXZlbnQpXCJcclxuICAgICAgICAoc3VibWl0TG9naWMpPVwib25FZGl0QnVmZmVyU3VibWl0KCRldmVudClcIiAoY2FuY2VsTG9naWMpPVwib25FZGl0QnVmZmVyQ2FuY2VsKCRldmVudClcIj48L2NvcmUtcGFnZS1lZGl0LWxpdGU+XHJcbjwvZGl2PiJdfQ==
@@ -1,8 +1,7 @@
1
- import { Component, Input, EventEmitter, Output, } from '@angular/core';
1
+ import { Component, Input, EventEmitter, Output, ViewContainerRef, ViewChildren, } from '@angular/core';
2
2
  import { CoreFormControlBaseComponent } from '../../core-form-control-base/core-form-control-base.component';
3
3
  import { NgStyle } from '@angular/common';
4
4
  import { FormsModule } from '@angular/forms';
5
- import { CoreParamControlComponent } from '../../core-param-control/core-param-control/core-param-control.component';
6
5
  import { TranslatePipe } from '../../../app-pipes/translate.pipe';
7
6
  import * as i0 from "@angular/core";
8
7
  import * as i1 from "../../../services/multi-language.service";
@@ -16,11 +15,15 @@ export class CoreHeaderParamsComponent extends CoreFormControlBaseComponent {
16
15
  ngOnChanges(changes) {
17
16
  if (changes['rows']) {
18
17
  console.log("CoreHeaderParamsComponent changes['rows']", changes['rows'].currentValue);
18
+ this.loadDynamicComponents();
19
19
  }
20
20
  }
21
21
  ngOnInit() {
22
22
  this.subscriptions.push(this.mls.lang$.subscribe((x) => (this.lang = x)));
23
23
  }
24
+ ngAfterViewInit() {
25
+ setTimeout(() => this.loadDynamicComponents());
26
+ }
24
27
  ngOnDestroy() {
25
28
  this.subscriptions.map((x) => x?.unsubscribe());
26
29
  }
@@ -45,17 +48,46 @@ export class CoreHeaderParamsComponent extends CoreFormControlBaseComponent {
45
48
  onButtonClickLocal() {
46
49
  this.onButtonClick.emit();
47
50
  }
51
+ loadDynamicComponents() {
52
+ if (!!this.dynamicComponentContainers) {
53
+ this.dynamicComponentContainers.forEach((container, index) => {
54
+ // Clear the container first
55
+ container.clear();
56
+ // Dynamically load CoreParamControlComponent
57
+ import('../../core-param-control/core-param-control/core-param-control.component').then(({ CoreParamControlComponent }) => {
58
+ const componentRef = container.createComponent(CoreParamControlComponent);
59
+ // Pass inputs dynamically
60
+ const control = this.findParamItemByIndex(index);
61
+ if (control) {
62
+ componentRef.instance.control = control;
63
+ componentRef.instance.enableTimeZoneConverterForDateTimePeriodParameters = this.enableTimeZoneConverterForDateTimePeriodParameters;
64
+ }
65
+ });
66
+ });
67
+ }
68
+ }
69
+ findParamItemByIndex(index) {
70
+ let i = -1;
71
+ for (let rowIndex = 0; rowIndex < this.rows.length; rowIndex++) {
72
+ for (let colIndex = 0; colIndex < this.rows[rowIndex].length; colIndex++) {
73
+ i++;
74
+ if (i === index) {
75
+ return this.rows[rowIndex][colIndex];
76
+ }
77
+ }
78
+ }
79
+ return undefined;
80
+ }
48
81
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreHeaderParamsComponent, deps: [{ token: i1.MultiLanguageService }], target: i0.ɵɵFactoryTarget.Component }); }
49
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: CoreHeaderParamsComponent, isStandalone: true, selector: "core-header-params", inputs: { showButton: "showButton", buttonCaptionCode: "buttonCaptionCode", enableTimeZoneConverterForDateTimePeriodParameters: "enableTimeZoneConverterForDateTimePeriodParameters", rows: "rows", toggleAllValue: "toggleAllValue" }, outputs: { onButtonClick: "onButtonClick" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"core-header-params-container\">\r\n <div class=\"container container-fluid no-padding no-margin\">\r\n @for (row of rows; track $index) {\r\n <div class=\"row mb15\">\r\n @for (col of row; track col) {\r\n @if (!col.hidden) {\r\n <div [class]=\"!col.width ? 'col-md-' + col.flexSize : ''\" [ngStyle]=\"{\r\n width: !!col.width ? col.width + 'px' : ''\r\n }\">\r\n <core-param-control [control]=\"col\" [enableTimeZoneConverterForDateTimePeriodParameters]=\"enableTimeZoneConverterForDateTimePeriodParameters\"></core-param-control>\r\n </div>\r\n }\r\n }\r\n </div>\r\n }\r\n @if (showButton) {\r\n <div class=\"footer\">\r\n <div class=\"d-flex d-flex-end\">\r\n <button class=\"btn btn-for-form\" type=\"button\" (click)=\"onButtonClickLocal()\">{{\r\n (buttonCaptionCode || 'UI_CORE_FILTER_HUB_BUTTON_SEARCH') | translate: lang }}</button>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</div>", styles: [".core-header-params-container .btn-for-form{border:none;border-radius:0;background-color:#000;color:#fff;min-width:120px}\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: CoreParamControlComponent, selector: "core-param-control", inputs: ["control", "enableTimeZoneConverterForDateTimePeriodParameters"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
82
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: CoreHeaderParamsComponent, isStandalone: true, selector: "core-header-params", inputs: { showButton: "showButton", buttonCaptionCode: "buttonCaptionCode", enableTimeZoneConverterForDateTimePeriodParameters: "enableTimeZoneConverterForDateTimePeriodParameters", rows: "rows", toggleAllValue: "toggleAllValue" }, outputs: { onButtonClick: "onButtonClick" }, viewQueries: [{ propertyName: "dynamicComponentContainers", predicate: ["dynamicComponentContainer"], descendants: true, read: ViewContainerRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"core-header-params-container\">\r\n <div class=\"container container-fluid no-padding no-margin\">\r\n @for (row of rows; track $index) {\r\n <div class=\"row mb15\">\r\n @for (col of row; track col) {\r\n @if (!col.hidden) {\r\n <div [class]=\"!col.width ? 'col-md-' + col.flexSize : ''\" [ngStyle]=\"{\r\n width: !!col.width ? col.width + 'px' : ''\r\n }\">\r\n <ng-container #dynamicComponentContainer></ng-container>\r\n </div>\r\n }\r\n }\r\n </div>\r\n }\r\n @if (showButton) {\r\n <div class=\"footer\">\r\n <div class=\"d-flex d-flex-end\">\r\n <button class=\"btn btn-for-form\" type=\"button\" (click)=\"onButtonClickLocal()\">{{\r\n (buttonCaptionCode || 'UI_CORE_FILTER_HUB_BUTTON_SEARCH') | translate: lang }}</button>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</div>", styles: [".core-header-params-container .btn-for-form{border:none;border-radius:0;background-color:#000;color:#fff;min-width:120px}\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
50
83
  }
51
84
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreHeaderParamsComponent, decorators: [{
52
85
  type: Component,
53
86
  args: [{ selector: 'core-header-params', standalone: true, imports: [
54
87
  NgStyle,
55
88
  FormsModule,
56
- CoreParamControlComponent,
57
89
  TranslatePipe
58
- ], template: "<div class=\"core-header-params-container\">\r\n <div class=\"container container-fluid no-padding no-margin\">\r\n @for (row of rows; track $index) {\r\n <div class=\"row mb15\">\r\n @for (col of row; track col) {\r\n @if (!col.hidden) {\r\n <div [class]=\"!col.width ? 'col-md-' + col.flexSize : ''\" [ngStyle]=\"{\r\n width: !!col.width ? col.width + 'px' : ''\r\n }\">\r\n <core-param-control [control]=\"col\" [enableTimeZoneConverterForDateTimePeriodParameters]=\"enableTimeZoneConverterForDateTimePeriodParameters\"></core-param-control>\r\n </div>\r\n }\r\n }\r\n </div>\r\n }\r\n @if (showButton) {\r\n <div class=\"footer\">\r\n <div class=\"d-flex d-flex-end\">\r\n <button class=\"btn btn-for-form\" type=\"button\" (click)=\"onButtonClickLocal()\">{{\r\n (buttonCaptionCode || 'UI_CORE_FILTER_HUB_BUTTON_SEARCH') | translate: lang }}</button>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</div>", styles: [".core-header-params-container .btn-for-form{border:none;border-radius:0;background-color:#000;color:#fff;min-width:120px}\n"] }]
90
+ ], template: "<div class=\"core-header-params-container\">\r\n <div class=\"container container-fluid no-padding no-margin\">\r\n @for (row of rows; track $index) {\r\n <div class=\"row mb15\">\r\n @for (col of row; track col) {\r\n @if (!col.hidden) {\r\n <div [class]=\"!col.width ? 'col-md-' + col.flexSize : ''\" [ngStyle]=\"{\r\n width: !!col.width ? col.width + 'px' : ''\r\n }\">\r\n <ng-container #dynamicComponentContainer></ng-container>\r\n </div>\r\n }\r\n }\r\n </div>\r\n }\r\n @if (showButton) {\r\n <div class=\"footer\">\r\n <div class=\"d-flex d-flex-end\">\r\n <button class=\"btn btn-for-form\" type=\"button\" (click)=\"onButtonClickLocal()\">{{\r\n (buttonCaptionCode || 'UI_CORE_FILTER_HUB_BUTTON_SEARCH') | translate: lang }}</button>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</div>", styles: [".core-header-params-container .btn-for-form{border:none;border-radius:0;background-color:#000;color:#fff;min-width:120px}\n"] }]
59
91
  }], ctorParameters: () => [{ type: i1.MultiLanguageService }], propDecorators: { showButton: [{
60
92
  type: Input
61
93
  }], buttonCaptionCode: [{
@@ -68,5 +100,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
68
100
  type: Input
69
101
  }], onButtonClick: [{
70
102
  type: Output
103
+ }], dynamicComponentContainers: [{
104
+ type: ViewChildren,
105
+ args: ['dynamicComponentContainer', { read: ViewContainerRef }]
71
106
  }] } });
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1oZWFkZXItcGFyYW1zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLWhlYWRlci1wYXJhbXMvY29yZS1oZWFkZXItcGFyYW1zL2NvcmUtaGVhZGVyLXBhcmFtcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvY29yZS1oZWFkZXItcGFyYW1zL2NvcmUtaGVhZGVyLXBhcmFtcy9jb3JlLWhlYWRlci1wYXJhbXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFHVCxLQUFLLEVBR0wsWUFBWSxFQUNaLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUs3RyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDBFQUEwRSxDQUFDO0FBQ3JILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7O0FBY2xFLE1BQU0sT0FBTyx5QkFDWCxTQUFRLDRCQUE0QjtJQWNwQyxZQUFvQixHQUF5QjtRQUMzQyxLQUFLLEVBQUUsQ0FBQztRQURVLFFBQUcsR0FBSCxHQUFHLENBQXNCO1FBTG5DLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUc3QyxrQkFBYSxHQUFtQixFQUFFLENBQUM7SUFJbkMsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNuQixPQUFPLENBQUMsR0FBRyxDQUNULDJDQUEyQyxFQUMzQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxDQUM3QixDQUFDO1NBQ0g7SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsQ0FBTTtRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDO1lBQ1osR0FBRyxJQUFJLENBQUMsS0FBSztZQUNiLFFBQVEsRUFBRSxDQUFDO1NBQ1osQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGNBQWMsQ0FBQyxDQUFNO1FBQ25CLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDWixHQUFHLElBQUksQ0FBQyxLQUFLO1lBQ2IsTUFBTSxFQUFFLENBQUM7U0FDVixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsQ0FBTTtRQUN0QixJQUFJLENBQUMsUUFBUSxDQUFDO1lBQ1osR0FBRyxJQUFJLENBQUMsS0FBSztZQUNiLFNBQVMsRUFBRSxDQUFDO1NBQ2IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzVCLENBQUM7OEdBM0RVLHlCQUF5QjtrR0FBekIseUJBQXlCLCtZQ2hDdEMsbW9DQXdCTSxxTERBRixPQUFPLDBFQUNQLFdBQVcsK0JBQ1gseUJBQXlCLHFJQUN6QixhQUFhOzsyRkFLSix5QkFBeUI7a0JBWnJDLFNBQVM7K0JBQ0Usb0JBQW9CLGNBQ2xCLElBQUksV0FDUDt3QkFDUCxPQUFPO3dCQUNQLFdBQVc7d0JBQ1gseUJBQXlCO3dCQUN6QixhQUFhO3FCQUNkO3lGQVFRLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGtEQUFrRDtzQkFBMUQsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFFSSxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9uSW5pdCxcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgT3V0cHV0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb3JlRm9ybUNvbnRyb2xCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS1mb3JtLWNvbnRyb2wtYmFzZS9jb3JlLWZvcm0tY29udHJvbC1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgSUNvcmVQYXJhbUNvbnRyb2wgfSBmcm9tICcuLi9lbnVtLWFuZC1pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgTXVsdGlMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tdWx0aS1sYW5ndWFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTmdTdHlsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDb3JlUGFyYW1Db250cm9sQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS1wYXJhbS1jb250cm9sL2NvcmUtcGFyYW0tY29udHJvbC9jb3JlLXBhcmFtLWNvbnRyb2wuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJy4uLy4uLy4uL2FwcC1waXBlcy90cmFuc2xhdGUucGlwZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvcmUtaGVhZGVyLXBhcmFtcycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBOZ1N0eWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBDb3JlUGFyYW1Db250cm9sQ29tcG9uZW50LFxyXG4gICAgVHJhbnNsYXRlUGlwZVxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvcmUtaGVhZGVyLXBhcmFtcy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29yZS1oZWFkZXItcGFyYW1zLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb3JlSGVhZGVyUGFyYW1zQ29tcG9uZW50XHJcbiAgZXh0ZW5kcyBDb3JlRm9ybUNvbnRyb2xCYXNlQ29tcG9uZW50XHJcbiAgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCwgT25EZXN0cm95XHJcbntcclxuICBASW5wdXQoKSBzaG93QnV0dG9uITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBidXR0b25DYXB0aW9uQ29kZSE6IHN0cmluZztcclxuICBASW5wdXQoKSBlbmFibGVUaW1lWm9uZUNvbnZlcnRlckZvckRhdGVUaW1lUGVyaW9kUGFyYW1ldGVycyE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgcm93cyE6IElDb3JlUGFyYW1Db250cm9sW11bXTtcclxuICBASW5wdXQoKSB0b2dnbGVBbGxWYWx1ZSE6IGJvb2xlYW47XHJcblxyXG4gIEBPdXRwdXQoKSBvbkJ1dHRvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBsYW5nITogc3RyaW5nO1xyXG4gIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbWxzOiBNdWx0aUxhbmd1YWdlU2VydmljZSkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydyb3dzJ10pIHtcclxuICAgICAgY29uc29sZS5sb2coXHJcbiAgICAgICAgXCJDb3JlSGVhZGVyUGFyYW1zQ29tcG9uZW50IGNoYW5nZXNbJ3Jvd3MnXVwiLFxyXG4gICAgICAgIGNoYW5nZXNbJ3Jvd3MnXS5jdXJyZW50VmFsdWVcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5tbHMubGFuZyQuc3Vic2NyaWJlKCh4KSA9PiAodGhpcy5sYW5nID0geCkpKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLm1hcCgoeCkgPT4geD8udW5zdWJzY3JpYmUoKSk7XHJcbiAgfVxyXG5cclxuICBvbkZyb21EYXRlQ2hhbmdlKGU6IGFueSkge1xyXG4gICAgdGhpcy5vbkNoYW5nZSh7XHJcbiAgICAgIC4uLnRoaXMudmFsdWUsXHJcbiAgICAgIGZyb21EYXRlOiBlLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvblRvRGF0ZUNoYW5nZShlOiBhbnkpIHtcclxuICAgIHRoaXMub25DaGFuZ2Uoe1xyXG4gICAgICAuLi50aGlzLnZhbHVlLFxyXG4gICAgICB0b0RhdGU6IGUsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uSW5jbHVzaW9uQ2hhbmdlKGU6IGFueSkge1xyXG4gICAgdGhpcy5vbkNoYW5nZSh7XHJcbiAgICAgIC4uLnRoaXMudmFsdWUsXHJcbiAgICAgIGluY2x1c2lvbjogZSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25CdXR0b25DbGlja0xvY2FsKCk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkJ1dHRvbkNsaWNrLmVtaXQoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNvcmUtaGVhZGVyLXBhcmFtcy1jb250YWluZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXIgY29udGFpbmVyLWZsdWlkIG5vLXBhZGRpbmcgbm8tbWFyZ2luXCI+XHJcbiAgICAgICAgQGZvciAocm93IG9mIHJvd3M7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbWIxNVwiPlxyXG4gICAgICAgICAgICBAZm9yIChjb2wgb2Ygcm93OyB0cmFjayBjb2wpIHtcclxuICAgICAgICAgICAgQGlmICghY29sLmhpZGRlbikge1xyXG4gICAgICAgICAgICA8ZGl2IFtjbGFzc109XCIhY29sLndpZHRoID8gJ2NvbC1tZC0nICsgY29sLmZsZXhTaXplIDogJydcIiBbbmdTdHlsZV09XCJ7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogISFjb2wud2lkdGggPyBjb2wud2lkdGggKyAncHgnIDogJydcclxuICAgICAgICAgICAgfVwiPlxyXG4gICAgICAgICAgICAgICAgPGNvcmUtcGFyYW0tY29udHJvbCBbY29udHJvbF09XCJjb2xcIiBbZW5hYmxlVGltZVpvbmVDb252ZXJ0ZXJGb3JEYXRlVGltZVBlcmlvZFBhcmFtZXRlcnNdPVwiZW5hYmxlVGltZVpvbmVDb252ZXJ0ZXJGb3JEYXRlVGltZVBlcmlvZFBhcmFtZXRlcnNcIj48L2NvcmUtcGFyYW0tY29udHJvbD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIH1cclxuICAgICAgICBAaWYgKHNob3dCdXR0b24pIHtcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvb3RlclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBkLWZsZXgtZW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tZm9yLWZvcm1cIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9uQnV0dG9uQ2xpY2tMb2NhbCgpXCI+e3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGJ1dHRvbkNhcHRpb25Db2RlIHx8ICdVSV9DT1JFX0ZJTFRFUl9IVUJfQlVUVE9OX1NFQVJDSCcpIHwgdHJhbnNsYXRlOiBsYW5nIH19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1oZWFkZXItcGFyYW1zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLWhlYWRlci1wYXJhbXMvY29yZS1oZWFkZXItcGFyYW1zL2NvcmUtaGVhZGVyLXBhcmFtcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvY29yZS1oZWFkZXItcGFyYW1zL2NvcmUtaGVhZGVyLXBhcmFtcy9jb3JlLWhlYWRlci1wYXJhbXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFHVCxLQUFLLEVBR0wsWUFBWSxFQUNaLE1BQU0sRUFDTixnQkFBZ0IsRUFJaEIsWUFBWSxHQUViLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBSzdHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7QUFhbEUsTUFBTSxPQUFPLHlCQUNYLFNBQVEsNEJBQTRCO0lBa0JwQyxZQUNVLEdBQXlCO1FBRWpDLEtBQUssRUFBRSxDQUFDO1FBRkEsUUFBRyxHQUFILEdBQUcsQ0FBc0I7UUFWekIsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRzdDLGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztJQVVuQyxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lB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QUNmLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztpQkFDdEM7YUFDRjtTQUNGO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQzs4R0ExR1UseUJBQXlCO2tHQUF6Qix5QkFBeUIsMGNBZ0JpQixnQkFBZ0IseUVDckR2RSxvaENBd0JNLHFMRE1GLE9BQU8sMEVBQ1AsV0FBVywwQkFDWCxhQUFhOzsyRkFLSix5QkFBeUI7a0JBWHJDLFNBQVM7K0JBQ0Usb0JBQW9CLGNBQ2xCLElBQUksV0FDUDt3QkFDUCxPQUFPO3dCQUNQLFdBQVc7d0JBQ1gsYUFBYTtxQkFDZDt5RkFRUSxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxrREFBa0Q7c0JBQTFELEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRUksYUFBYTtzQkFBdEIsTUFBTTtnQkFPTCwwQkFBMEI7c0JBRHpCLFlBQVk7dUJBQUMsMkJBQTJCLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25Jbml0LFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBPdXRwdXQsXHJcbiAgVmlld0NvbnRhaW5lclJlZixcclxuICBWaWV3Q2hpbGQsXHJcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgVmlld0NoaWxkcmVuLFxyXG4gIFF1ZXJ5TGlzdCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29yZUZvcm1Db250cm9sQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUtZm9ybS1jb250cm9sLWJhc2UvY29yZS1mb3JtLWNvbnRyb2wtYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IElDb3JlUGFyYW1Db250cm9sIH0gZnJvbSAnLi4vZW51bS1hbmQtaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbXVsdGktbGFuZ3VhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IE5nU3R5bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ29yZVBhcmFtQ29udHJvbENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUtcGFyYW0tY29udHJvbC9jb3JlLXBhcmFtLWNvbnRyb2wvY29yZS1wYXJhbS1jb250cm9sLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuLi8uLi8uLi9hcHAtcGlwZXMvdHJhbnNsYXRlLnBpcGUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjb3JlLWhlYWRlci1wYXJhbXMnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTmdTdHlsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgVHJhbnNsYXRlUGlwZVxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvcmUtaGVhZGVyLXBhcmFtcy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29yZS1oZWFkZXItcGFyYW1zLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb3JlSGVhZGVyUGFyYW1zQ29tcG9uZW50XHJcbiAgZXh0ZW5kcyBDb3JlRm9ybUNvbnRyb2xCYXNlQ29tcG9uZW50XHJcbiAgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95XHJcbntcclxuICBASW5wdXQoKSBzaG93QnV0dG9uITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBidXR0b25DYXB0aW9uQ29kZSE6IHN0cmluZztcclxuICBASW5wdXQoKSBlbmFibGVUaW1lWm9uZUNvbnZlcnRlckZvckRhdGVUaW1lUGVyaW9kUGFyYW1ldGVycyE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgcm93cyE6IElDb3JlUGFyYW1Db250cm9sW11bXTtcclxuICBASW5wdXQoKSB0b2dnbGVBbGxWYWx1ZSE6IGJvb2xlYW47XHJcblxyXG4gIEBPdXRwdXQoKSBvbkJ1dHRvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBsYW5nITogc3RyaW5nO1xyXG4gIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gICAgLy8gVGhpcyB0cmFja3MgYWxsIG5nLWNvbnRhaW5lcnNcclxuICAgIEBWaWV3Q2hpbGRyZW4oJ2R5bmFtaWNDb21wb25lbnRDb250YWluZXInLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSlcclxuICAgIGR5bmFtaWNDb21wb25lbnRDb250YWluZXJzITogUXVlcnlMaXN0PFZpZXdDb250YWluZXJSZWY+O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgbWxzOiBNdWx0aUxhbmd1YWdlU2VydmljZSxcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1sncm93cyddKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICAgIFwiQ29yZUhlYWRlclBhcmFtc0NvbXBvbmVudCBjaGFuZ2VzWydyb3dzJ11cIixcclxuICAgICAgICBjaGFuZ2VzWydyb3dzJ10uY3VycmVudFZhbHVlXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMubG9hZER5bmFtaWNDb21wb25lbnRzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMubWxzLmxhbmckLnN1YnNjcmliZSgoeCkgPT4gKHRoaXMubGFuZyA9IHgpKSk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMubG9hZER5bmFtaWNDb21wb25lbnRzKCkpXHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5tYXAoKHgpID0+IHg/LnVuc3Vic2NyaWJlKCkpO1xyXG4gIH1cclxuXHJcbiAgb25Gcm9tRGF0ZUNoYW5nZShlOiBhbnkpIHtcclxuICAgIHRoaXMub25DaGFuZ2Uoe1xyXG4gICAgICAuLi50aGlzLnZhbHVlLFxyXG4gICAgICBmcm9tRGF0ZTogZSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25Ub0RhdGVDaGFuZ2UoZTogYW55KSB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKHtcclxuICAgICAgLi4udGhpcy52YWx1ZSxcclxuICAgICAgdG9EYXRlOiBlLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvbkluY2x1c2lvbkNoYW5nZShlOiBhbnkpIHtcclxuICAgIHRoaXMub25DaGFuZ2Uoe1xyXG4gICAgICAuLi50aGlzLnZhbHVlLFxyXG4gICAgICBpbmNsdXNpb246IGUsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uQnV0dG9uQ2xpY2tMb2NhbCgpOiB2b2lkIHtcclxuICAgIHRoaXMub25CdXR0b25DbGljay5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxvYWREeW5hbWljQ29tcG9uZW50cygpOiB2b2lkIHtcclxuXHJcbiAgICBpZiAoISF0aGlzLmR5bmFtaWNDb21wb25lbnRDb250YWluZXJzKSB7XHJcbiAgICAgIHRoaXMuZHluYW1pY0NvbXBvbmVudENvbnRhaW5lcnMuZm9yRWFjaCgoY29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmLCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgLy8gQ2xlYXIgdGhlIGNvbnRhaW5lciBmaXJzdFxyXG4gICAgICAgIGNvbnRhaW5lci5jbGVhcigpO1xyXG4gIFxyXG4gICAgICAgIC8vIER5bmFtaWNhbGx5IGxvYWQgQ29yZVBhcmFtQ29udHJvbENvbXBvbmVudFxyXG4gICAgICAgIGltcG9ydCgnLi4vLi4vY29yZS1wYXJhbS1jb250cm9sL2NvcmUtcGFyYW0tY29udHJvbC9jb3JlLXBhcmFtLWNvbnRyb2wuY29tcG9uZW50JykudGhlbigoeyBDb3JlUGFyYW1Db250cm9sQ29tcG9uZW50IH0pID0+IHtcclxuICAgICAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IGNvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoQ29yZVBhcmFtQ29udHJvbENvbXBvbmVudCk7XHJcbiAgXHJcbiAgICAgICAgICAvLyBQYXNzIGlucHV0cyBkeW5hbWljYWxseVxyXG4gICAgICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuZmluZFBhcmFtSXRlbUJ5SW5kZXgoaW5kZXgpO1xyXG4gICAgICAgICAgaWYgKGNvbnRyb2wpIHtcclxuICAgICAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmNvbnRyb2wgPSBjb250cm9sO1xyXG4gICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuZW5hYmxlVGltZVpvbmVDb252ZXJ0ZXJGb3JEYXRlVGltZVBlcmlvZFBhcmFtZXRlcnMgPSB0aGlzLmVuYWJsZVRpbWVab25lQ29udmVydGVyRm9yRGF0ZVRpbWVQZXJpb2RQYXJhbWV0ZXJzO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpbmRQYXJhbUl0ZW1CeUluZGV4KGluZGV4OiBudW1iZXIpOiBJQ29yZVBhcmFtQ29udHJvbCB8IHVuZGVmaW5lZCB7XHJcbiAgICBsZXQgaSA9IC0xO1xyXG4gICAgZm9yIChsZXQgcm93SW5kZXg9MDsgcm93SW5kZXggPCB0aGlzLnJvd3MubGVuZ3RoOyByb3dJbmRleCsrKSB7XHJcbiAgICAgIGZvciAobGV0IGNvbEluZGV4PTA7IGNvbEluZGV4IDwgdGhpcy5yb3dzW3Jvd0luZGV4XS5sZW5ndGg7IGNvbEluZGV4KyspIHtcclxuICAgICAgICBpKys7XHJcbiAgICAgICAgaWYgKGkgPT09IGluZGV4KSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5yb3dzW3Jvd0luZGV4XVtjb2xJbmRleF07XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY29yZS1oZWFkZXItcGFyYW1zLWNvbnRhaW5lclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lciBjb250YWluZXItZmx1aWQgbm8tcGFkZGluZyBuby1tYXJnaW5cIj5cclxuICAgICAgICBAZm9yIChyb3cgb2Ygcm93czsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtYjE1XCI+XHJcbiAgICAgICAgICAgIEBmb3IgKGNvbCBvZiByb3c7IHRyYWNrIGNvbCkge1xyXG4gICAgICAgICAgICBAaWYgKCFjb2wuaGlkZGVuKSB7XHJcbiAgICAgICAgICAgIDxkaXYgW2NsYXNzXT1cIiFjb2wud2lkdGggPyAnY29sLW1kLScgKyBjb2wuZmxleFNpemUgOiAnJ1wiIFtuZ1N0eWxlXT1cIntcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAhIWNvbC53aWR0aCA/IGNvbC53aWR0aCArICdweCcgOiAnJ1xyXG4gICAgICAgICAgICB9XCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICNkeW5hbWljQ29tcG9uZW50Q29udGFpbmVyPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBpZiAoc2hvd0J1dHRvbikge1xyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGQtZmxleC1lbmRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1mb3ItZm9ybVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib25CdXR0b25DbGlja0xvY2FsKClcIj57e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAoYnV0dG9uQ2FwdGlvbkNvZGUgfHwgJ1VJX0NPUkVfRklMVEVSX0hVQl9CVVRUT05fU0VBUkNIJykgfCB0cmFuc2xhdGU6IGxhbmcgfX08L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS1hbmQtaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLWhlYWRlci1wYXJhbXMvZW51bS1hbmQtaW50ZXJmYWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW51bVRyYW5zbGF0ZUtleSB9IGZyb20gXCJhbHBoYS1nbG9iYWwtY29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IEVudW1Gb3JtQmFzZUNvbnRvbFR5cGUgfSBmcm9tIFwiLi4vLi4vZW51bS9FbnVtRm9ybUJhc2VDb250b2xUeXBlXCI7XHJcbmltcG9ydCB7IEVudW1Db3JlVGFibGVQaXBlVHlwZSB9IGZyb20gXCIuLi9jb3JlLXRhYmxlL0VudW1Db3JlVGFibGVQaXBlVHlwZVwiO1xyXG5pbXBvcnQgeyBFbnVtQ29yZUZvcm1Db250cm9sU2Vla2VyU291cmNlVHlwZSB9IGZyb20gXCIuLi9jb3JlLWZvcm0tY29udHJvbC1zZWVrZXIvRW51bUNvcmVGb3JtQ29udHJvbFNlZWtlclNvdXJjZVR5cGVcIjtcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgSUNvcmVEcm9wZG93bk9wdGlvbiB9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzL0lDb3JlRHJvcGRvd25PcHRpb25cIjtcclxuaW1wb3J0IHsgSUNvcmVDaGVja2xpc3RPcHRpb24gfSBmcm9tIFwiLi4vY29yZS1jaGVja2xpc3QvY29yZS1jaGVja2xpc3QvY29yZS1jaGVja2xpc3QuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IElGaWx0ZXJPcGVyYXRvciwgSUluT3BlcmF0b3IgfSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlcy9JUXVlcnlMaXN0UmVxdWVzdFwiO1xyXG5pbXBvcnQgeyBhcGkgfSBmcm9tIFwiYWxwaGEtZ2xvYmFsLWNvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBJQ29yZURhdGVQaWNrZXJSYW5nZSB9IGZyb20gXCIuLi9jb3JlLWRhdGUtcGlja2VyL2NvcmUtZGF0ZS1waWNrZXIvY29yZS1kYXRlLXBpY2tlci5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgRW51bUNvcmVPcmdUcmVlYUFjY2Vzc29yTW9kZSB9IGZyb20gXCIuLi9jb3JlLW9yZy10cmVlL2NvcmUtb3JnLXRyZWUvY29yZS1vcmctdHJlZS5jb21wb25lbnRcIjtcclxuXHJcbi8vIFRoaXMgaXMgYSBzaW1wbGllZCB2ZXJzaW9uIG9mIElGb3JtQmFzZUNvbnRyb2xcclxuZXhwb3J0IGludGVyZmFjZSBJQ29yZVBhcmFtQ29udHJvbCB7XHJcblxyXG4gICAgLyogQ09NUEFSSU5HIHx8IEZJVEVSSU5HIHx8IElOICovXHJcbiAgICBuYW1lOiBzdHJpbmc7XHJcbiAgICBuZ01vZGVsOiBhbnk7XHJcbiAgICBuZ01vZGVsQ2hhbmdlOiAobmdNb2RlbE5hbWU6IHN0cmluZywgdmFsdWU6IGFueSkgPT4gdm9pZDtcclxuICAgIGZpbHRlck9wZXJhdG9yPzogSUZpbHRlck9wZXJhdG9yLFxyXG4gICAgaW5PcGVyYXRvcj86IElJbk9wZXJhdG9yLFxyXG4gICAgLyoqKi9cclxuXHJcbiAgICAvKiBUTyBSRU5ERVIgQ09OVFJPTCAqL1xyXG4gICAgZmxleFNpemU6IG51bWJlcjtcclxuICAgIHdpZHRoPzogbnVtYmVyO1xyXG4gICAgY29udHJvbFR5cGU6IEVudW1Gb3JtQmFzZUNvbnRvbFR5cGUgfCBzdHJpbmcsXHJcbiAgICBsYWJlbDogRW51bVRyYW5zbGF0ZUtleSB8IHN0cmluZyxcclxuICAgIHR5cGU/OiBzdHJpbmcsXHJcbiAgICB2YWx1ZT86IGFueSxcclxuICAgIHN0ZXA/OiBzdHJpbmcsIC8vIHdoZW4gdHlwZTogJ251bWJlcicgYW5kIHlvdSBkZXNpcmUgZGVjaW1hbCA9PiBzdGVwOiAnLjAxJ1xyXG4gICAgcGlwZT86IEVudW1Db3JlVGFibGVQaXBlVHlwZSwgLy8gc2hhcmVkIHBpcGUgZnJvbSBDb3JlVGFibGVcclxuICAgIC8qIHdoZW4gdXNpbmcgYWxtb3N0IGFsbCBjb250cm9scyAqL1xyXG4gICAgc2Vla2VyU291cmNlVHlwZT86IEVudW1Db3JlRm9ybUNvbnRyb2xTZWVrZXJTb3VyY2VUeXBlIHwgc3RyaW5nLFxyXG4gICAgLyogd2hlbiB1c2luZyBDb3JlRW1wbG95ZWVTZWVrZXIgKi9cclxuICAgIGJvdW5kRnJvbT86IHN0cmluZztcclxuICAgIHNob3duRnJvbT86IHN0cmluZztcclxuICAgIGRyb3Bkb3duT3B0aW9ucyQ/OiBCZWhhdmlvclN1YmplY3Q8SUNvcmVEcm9wZG93bk9wdGlvbltdPjsgLy8gV0hFTiBVU0lORyBDb3JlRHJvcGRvd25Db21wb25lbnRcclxuICAgIGNoZWNrbGlzdE9wdGlvbnMkPzogQmVoYXZpb3JTdWJqZWN0PElDb3JlQ2hlY2tsaXN0T3B0aW9uW10+OyAvLyBXSEVOIFVTSU5HIENvcmVDaGVja2xpc3RDb21wb25lbnRcclxuICAgIGhpZGRlbj86IGJvb2xlYW47XHJcbiAgICBhY2Nlc3Nvck1vZGU/OiBFbnVtQ29yZU9yZ1RyZWVhQWNjZXNzb3JNb2RlOyAvLyBXSEVOIFVTSU5HIENvcmVPcmdQYXJhbURyb3Bkb3duQ29tcG9uZW50XHJcbiAgICBwb3B1cEFsaWduPzogc3RyaW5nOyAvLyBXSEVOIFVTSU5HIENvcmVEYXRlUGlja2VyXHJcblxyXG4gICAgLyogd2hlbiB1c2luZyBDb3JlRGF0ZVBpY2tlciAqL1xyXG4gICAgcmFuZ2VMaW1pdD86IElDb3JlRGF0ZVBpY2tlclJhbmdlO1xyXG4gICAgXHJcbiAgICBnZXRCeUlkT2JqZWN0JD86IEJlaGF2aW9yU3ViamVjdDxhbnk+O1xyXG4gICAgZ2V0QnlJZEFwaT86IGFwaTtcclxuICAgIGRpc2FibGVkPzogYm9vbGVhbjtcclxufSJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS1hbmQtaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLWhlYWRlci1wYXJhbXMvZW51bS1hbmQtaW50ZXJmYWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW51bVRyYW5zbGF0ZUtleSB9IGZyb20gXCJhbHBoYS1nbG9iYWwtY29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IEVudW1Gb3JtQmFzZUNvbnRvbFR5cGUgfSBmcm9tIFwiLi4vLi4vZW51bS9FbnVtRm9ybUJhc2VDb250b2xUeXBlXCI7XHJcbmltcG9ydCB7IEVudW1Db3JlVGFibGVQaXBlVHlwZSB9IGZyb20gXCIuLi9jb3JlLXRhYmxlL0VudW1Db3JlVGFibGVQaXBlVHlwZVwiO1xyXG5pbXBvcnQgeyBFbnVtQ29yZUZvcm1Db250cm9sU2Vla2VyU291cmNlVHlwZSB9IGZyb20gXCIuLi9jb3JlLWZvcm0tY29udHJvbC1zZWVrZXIvRW51bUNvcmVGb3JtQ29udHJvbFNlZWtlclNvdXJjZVR5cGVcIjtcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgSUNvcmVEcm9wZG93bk9wdGlvbiB9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzL0lDb3JlRHJvcGRvd25PcHRpb25cIjtcclxuaW1wb3J0IHsgSUNvcmVDaGVja2xpc3RPcHRpb24gfSBmcm9tIFwiLi4vY29yZS1jaGVja2xpc3QvY29yZS1jaGVja2xpc3QvY29yZS1jaGVja2xpc3QuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IElGaWx0ZXJPcGVyYXRvciwgSUluT3BlcmF0b3IgfSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlcy9JUXVlcnlMaXN0UmVxdWVzdFwiO1xyXG5pbXBvcnQgeyBhcGkgfSBmcm9tIFwiYWxwaGEtZ2xvYmFsLWNvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBJQ29yZURhdGVQaWNrZXJSYW5nZSB9IGZyb20gXCIuLi9jb3JlLWRhdGUtcGlja2VyL2NvcmUtZGF0ZS1waWNrZXIvY29yZS1kYXRlLXBpY2tlci5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgRW51bUNvcmVPcmdUcmVlYUFjY2Vzc29yTW9kZSB9IGZyb20gXCIuLi9jb3JlLW9yZy10cmVlL2NvcmUtb3JnLXRyZWUvY29yZS1vcmctdHJlZS5jb21wb25lbnRcIjtcclxuXHJcbi8vIFRoaXMgaXMgYSBzaW1wbGllZCB2ZXJzaW9uIG9mIElGb3JtQmFzZUNvbnRyb2xcclxuZXhwb3J0IGludGVyZmFjZSBJQ29yZVBhcmFtQ29udHJvbCB7XHJcblxyXG4gICAgLyogQ09NUEFSSU5HIHx8IEZJVEVSSU5HIHx8IElOICovXHJcbiAgICBuYW1lOiBzdHJpbmc7XHJcbiAgICBuZ01vZGVsOiBhbnk7XHJcbiAgICBuZ01vZGVsQ2hhbmdlOiAobmdNb2RlbE5hbWU6IHN0cmluZywgdmFsdWU6IGFueSkgPT4gdm9pZDtcclxuICAgIGZpbHRlck9wZXJhdG9yPzogSUZpbHRlck9wZXJhdG9yLFxyXG4gICAgaW5PcGVyYXRvcj86IElJbk9wZXJhdG9yLFxyXG4gICAgLyoqKi9cclxuXHJcbiAgICAvKiBUTyBSRU5ERVIgQ09OVFJPTCAqL1xyXG4gICAgZmxleFNpemU6IG51bWJlcjtcclxuICAgIHdpZHRoPzogbnVtYmVyO1xyXG4gICAgY29udHJvbFR5cGU6IEVudW1Gb3JtQmFzZUNvbnRvbFR5cGUgfCBzdHJpbmcsXHJcbiAgICBsYWJlbDogRW51bVRyYW5zbGF0ZUtleSB8IHN0cmluZyxcclxuICAgIHR5cGU/OiBzdHJpbmcsXHJcbiAgICB2YWx1ZT86IGFueSxcclxuICAgIHN0ZXA/OiBzdHJpbmcsIC8vIHdoZW4gdHlwZTogJ251bWJlcicgYW5kIHlvdSBkZXNpcmUgZGVjaW1hbCA9PiBzdGVwOiAnLjAxJ1xyXG4gICAgcGlwZT86IEVudW1Db3JlVGFibGVQaXBlVHlwZSwgLy8gc2hhcmVkIHBpcGUgZnJvbSBDb3JlVGFibGVcclxuICAgIC8qIHdoZW4gdXNpbmcgYWxtb3N0IGFsbCBjb250cm9scyAqL1xyXG4gICAgc2Vla2VyU291cmNlVHlwZT86IEVudW1Db3JlRm9ybUNvbnRyb2xTZWVrZXJTb3VyY2VUeXBlIHwgc3RyaW5nLFxyXG4gICAgLyogd2hlbiB1c2luZyBDb3JlRW1wbG95ZWVTZWVrZXIgKi9cclxuICAgIGJvdW5kRnJvbT86IHN0cmluZztcclxuICAgIHNob3duRnJvbT86IHN0cmluZztcclxuICAgIGRyb3Bkb3duT3B0aW9ucyQ/OiBCZWhhdmlvclN1YmplY3Q8SUNvcmVEcm9wZG93bk9wdGlvbltdPjsgLy8gV0hFTiBVU0lORyBDb3JlRHJvcGRvd25Db21wb25lbnRcclxuICAgIGNoZWNrbGlzdE9wdGlvbnMkPzogQmVoYXZpb3JTdWJqZWN0PElDb3JlQ2hlY2tsaXN0T3B0aW9uW10+OyAvLyBXSEVOIFVTSU5HIENvcmVDaGVja2xpc3RDb21wb25lbnRcclxuICAgIGhpZGRlbj86IGJvb2xlYW47XHJcbiAgICBhY2Nlc3Nvck1vZGU/OiBFbnVtQ29yZU9yZ1RyZWVhQWNjZXNzb3JNb2RlOyAvLyBXSEVOIFVTSU5HIENvcmVPcmdQYXJhbURyb3Bkb3duQ29tcG9uZW50XHJcbiAgICBwb3B1cEFsaWduPzogc3RyaW5nOyAvLyBXSEVOIFVTSU5HIENvcmVEYXRlUGlja2VyXHJcblxyXG4gICAgLyogd2hlbiB1c2luZyBDb3JlRGF0ZVBpY2tlciAqL1xyXG4gICAgcmFuZ2VMaW1pdD86IElDb3JlRGF0ZVBpY2tlclJhbmdlO1xyXG4gICAgXHJcbiAgICBnZXRCeUlkT2JqZWN0JD86IEJlaGF2aW9yU3ViamVjdDxhbnk+O1xyXG4gICAgZ2V0QnlJZEFwaT86IGFwaTtcclxuICAgIGRpc2FibGVkPzogYm9vbGVhbjtcclxuXHJcbiAgICBvYmplY3RMaXN0JD86IEJlaGF2aW9yU3ViamVjdDxhbnlbXT47XHJcbiAgICBtdWx0aU1vZGU/OiBib29sZWFuO1xyXG59Il19