barsa-novin-ray-core 1.0.268 → 1.0.270
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/barsa-novin-ray-core.module.mjs +1 -1
- package/esm2020/lib/constants.mjs +1 -1
- package/esm2020/lib/directives/copy.directive.mjs +8 -4
- package/esm2020/lib/directives/render-ulv-viewer.directive.mjs +1 -1
- package/esm2020/lib/pipes/index.mjs +1 -1
- package/fesm2015/barsa-novin-ray-core.mjs +7 -3
- package/fesm2015/barsa-novin-ray-core.mjs.map +1 -1
- package/fesm2020/barsa-novin-ray-core.mjs +7 -3
- package/fesm2020/barsa-novin-ray-core.mjs.map +1 -1
- package/lib/directives/copy.directive.d.ts +4 -3
- package/package.json +1 -1
|
@@ -344,4 +344,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
|
|
|
344
344
|
schemas: [NO_ERRORS_SCHEMA]
|
|
345
345
|
}]
|
|
346
346
|
}], ctorParameters: function () { return [{ type: i1.DynamicComponentService }, { type: i0.ComponentFactoryResolver }]; } });
|
|
347
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2Etbm92aW4tcmF5LWNvcmUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etbm92aW4tcmF5LWNvcmUvc3JjL2xpYi9iYXJzYS1ub3Zpbi1yYXktY29yZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILGVBQWUsRUFFZixZQUFZLEVBRVosUUFBUSxFQUNSLGdCQUFnQixFQUNuQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRWxELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVqRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN6RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN2RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXpDLE9BQU8sRUFDSCxvQkFBb0IsRUFDcEIsb0JBQW9CLEVBQ3BCLG9CQUFvQixFQUNwQiwrQkFBK0IsRUFDL0Isc0JBQXNCLEVBQ3pCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxF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QkFBd0I7UUFDeEIsdUJBQXVCO1FBQ3ZCLHFCQUFxQjtRQUNyQixzQkFBc0I7UUFDdEIsbUJBQW1CO1FBQ25CLHVCQUF1QjtRQUN2QixnQ0FBZ0M7UUFDaEMsa0JBQWtCO1FBQ2xCLG9CQUFvQjtRQUNwQiw2QkFBNkI7UUFDN0Isa0JBQWtCO1FBQ2xCLHFCQUFxQjtRQUNyQixzQkFBc0I7UUFDdEIsZ0JBQWdCO1FBQ2hCLGFBQWE7cUhBMkNKLHVCQUF1QixZQUp0QixZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsOEJBQThCLEVBQUUsd0JBQXdCOzJGQUl6Rix1QkFBdUI7a0JBTm5DLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFLENBQUMsR0FBRyxVQUFVLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxVQUFVLENBQUM7b0JBQ3RELE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSw4QkFBOEIsRUFBRSx3QkFBd0IsQ0FBQztvQkFDbkcsT0FBTyxFQUFFLENBQUMsR0FBRyxVQUFVLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxVQUFVLENBQUM7b0JBQ2pELE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDO2lCQUM5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQVBQX0lOSVRJQUxJWkVSLFxuICAgIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBFcnJvckhhbmRsZXIsXG4gICAgTW9kdWxlV2l0aFByb3ZpZGVycyxcbiAgICBOZ01vZHVsZSxcbiAgICBOT19FUlJPUlNfU0NIRU1BXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBUaXRsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuXG5pbXBvcnQgeyBGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtL2Zvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IEZpZWxkVWlDb21wb25lbnQgfSBmcm9tICcuL2ZpZWxkLXVpL2ZpZWxkLXVpLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IFJlcG9ydENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vcmVwb3J0LWNvbnRhaW5lci9yZXBvcnQtY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBbmNob3JTY3JvbGxEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvYW5jaG9yLXNjcm9sbC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQmFyc2FOb3ZpblJheUNvcmVSb3V0aW5nTW9kdWxlIH0gZnJvbSAnLi9iYXJzYS1ub3Zpbi1yYXktY29yZS1yb3V0aW5nLm1vZHVsZSc7XG5pbXBvcnQgeyBNb2RhbFJvb3RDb21wb25lbnQgfSBmcm9tICcuL21vZGFsLXJvb3QuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1OZXdDb21wb25lbnQgfSBmcm9tICcuL2Zvcm0tbmV3L2Zvcm0tbmV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSb290UG9ydGFsQ29tcG9uZW50IH0gZnJvbSAnLi9yb290LXBvcnRhbC9yb290LXBvcnRhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXV0aEd1YXJkIH0gZnJvbSAnLi9hdXRoLWd1YXJkJztcblxuaW1wb3J0IHtcbiAgICBEeW5hbWljRm9ybUNvbXBvbmVudCxcbiAgICBEeW5hbWljSXRlbUNvbXBvbmVudCxcbiAgICBCYXNlRHluYW1pY0NvbXBvbmVudCxcbiAgICBEeW5hbWljRm9ybVRvb2xiYXJpdGVtQ29tcG9uZW50LFxuICAgIER5bmFtaWNMYXlvdXRDb21wb25lbnRcbn0gZnJvbSAnLi9keW5hbWljLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZWRpcmVjdEhvbWVHdWFyZCB9IGZyb20gJy4vcmVkaXJlY3QtaG9tZS1ndWFyZCc7XG5pbXBvcnQgeyBOb3RGb3VuZENvbXBvbmVudCB9IGZyb20gJy4vbm90LWZvdW5kL25vdC1mb3VuZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUm9vdFBhZ2VDb21wb25lbnQgfSBmcm9tICcuL3Jvb3QtcGFnZS9yb290LXBhZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IEJhc2VNb2R1bGUgfSBmcm9tICcuL2Jhc2UubW9kdWxlJztcbmltcG9ydCB7IFBvcnRhbFBhZ2VDb21wb25lbnQgfSBmcm9tICcuL3BvcnRhbC1wYWdlL3BvcnRhbC1wYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHbG9iYWxFcnJvckhhbmRsZXIgfSBmcm9tICcuL2dsb2JhbC1lcnJvci1oYW5kbGVyJztcblxuaW1wb3J0IHsgUmVkaXJlY3RSZXBvcnROYXZpZ2F0b3JDb21tYW5kQ29tcG9uZW50IH0gZnJvbSAnLi9yZWRpcmVjdC1yZXBvcnQtbmF2aWdhdG9yLWNvbW1hbmQvcmVkaXJlY3QtcmVwb3J0LW5hdmlnYXRvci1jb21tYW5kLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbXB0eVBhZ2VXaXRoUm91dGVyQW5kUm91dGVyT3V0bGV0Q29tcG9uZW50IH0gZnJvbSAnLi9lbXB0eS1wYWdlLXdpdGgtcm91dGVyLWFuZC1yb3V0ZXItb3V0bGV0L2VtcHR5LXBhZ2Utd2l0aC1yb3V0ZXItYW5kLXJvdXRlci1vdXRsZXQuY29tcG9uZW50JztcbmltcG9ydCB7IEVtcHR5UGFnZUNvbXBvbmVudCB9IGZyb20gJy4vZW1wdHktcGFnZS9lbXB0eS1wYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCYXJzYUFwaSB9IGZyb20gJy4vYWJzdHJhY3QtY2xhc3Nlcy9iYXJzYS1hcGknO1xuaW1wb3J0IHsgRm9ybVBhZ2VDb21wb25lbnQgfSBmcm9tICcuL2Fic3RyYWN0LWNsYXNzZXMvZm9ybS1wYWdlLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7XG4gICAgQnJlYWRjcnVtYlNlcnZpY2UsXG4gICAgVXBsb2FkU2VydmljZSxcbiAgICBBcGlTZXJ2aWNlLFxuICAgIExvZ1NlcnZpY2UsXG4gICAgQmFyc2FEaWFsb2dTZXJ2aWNlLFxuICAgIFBvcnRhbFNlcnZpY2UsXG4gICAgVWlTZXJ2aWNlLFxuICAgIExheW91dFNlcnZpY2UsXG4gICAgRHluYW1pY0NvbXBvbmVudFNlcnZpY2UsXG4gICAgTmV0d29ya1N0YXR1c1NlcnZpY2UsXG4gICAgQXVkaW9SZWNvcmRpbmdTZXJ2aWNlLFxuICAgIFZpZGVvUmVjb3JkaW5nU2VydmljZSxcbiAgICBQcm9tcHRVcGRhdGVTZXJ2aWNlLFxuICAgIEJhcnNhU3RvcmFnZVNlcnZpY2UsXG4gICAgTG9jYWxTdG9yYWdlU2VydmljZSxcbiAgICBJbmRleGVkRGJTZXJ2aWNlLFxuICAgIE5vdGlmaWNhdGlvblNlcnZpY2UsXG4gICAgU2VydmljZVdvcmtlck5vdGlmaWNhdGlvblNlcnZpY2Vcbn0gZnJvbSAnLi9zZXJ2aWNlcyc7XG5pbXBvcnQge1xuICAgIER5bmFtaWNDb21tYW5kRGlyZWN0aXZlLFxuICAgIEl0ZW1zUmVuZGVyZXJEaXJlY3RpdmUsXG4gICAgTnVtYmVyc09ubHlJbnB1dERpcmVjdGl2ZSxcbiAgICBQbGFjZUhvbGRlckRpcmVjdGl2ZSxcbiAgICBSZW5kZXJVbHZQYWdpbkRpcmVjdGl2ZSxcbiAgICBJbWFnZUxhenlEaXJlY3RpdmUsXG4gICAgVW50aWxJblZpZXdEaXJlY3RpdmUsXG4gICAgSW50ZXJzZWN0aW9uT2JzZXJ2ZXJEaXJlY3RpdmUsXG4gICAgRWxsaXBzaWZ5RGlyZWN0aXZlLFxuICAgIFRhYmxlUmVzaXplckRpcmVjdGl2ZSxcbiAgICBDb2x1bW5SZXNpemVyRGlyZWN0aXZlLFxuICAgIEF0dHJSdGxEaXJlY3RpdmUsXG4gICAgUmVuZGVyVWx2Vmlld2VyRGlyZWN0aXZlLFxuICAgIFVsdkNvbW1hbmREaXJlY3RpdmUsXG4gICAgV29yZmtmbG93d0Nob2ljZUNvbW1hbmREaXJlY3RpdmUsXG4gICAgQ29weURpcmVjdGl2ZVxufSBmcm9tICcuL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHtcbiAgICBOdW1lcmFsUGlwZSxcbiAgICBDYW5VcGxvYWRGaWxlUGlwZSxcbiAgICBSZW1vdmVOZXdsaW5lUGlwZSxcbiAgICBDb252ZXJ0VG9TdHlsZVBpcGUsXG4gICAgRmlsdGVyUGlwZSxcbiAgICBGaWx0ZXJUYWJQaXBlLFxuICAgIEZpbHRlclN0cmluZ1BpcGUsXG4gICAgRmlvcmlJY29uUGlwZSxcbiAgICBTb3J0UGlwZSxcbiAgICBHcm91cEJ5UGlwZSxcbiAgICBNdWx0aXBsZUdyb3VwQnlQaXBlLFxuICAgIE1vVmFsdWVQaXBlLFxuICAgIE1vUmVwb3J0VmFsdWVQaXBlLFxuICAgIEhlYWRlckZhY2V0VmFsdWVQaXBlLFxuICAgIFBpY3R1cmVGaWVsZFNvdXJjZVBpcGUsXG4gICAgVGxiQnV0dG9uc1BpcGUsXG4gICAgU2VwZXJhdG9yRml4UGlwZSxcbiAgICBNb1JlcG9ydFZhbHVlQ29uY2F0UGlwZSxcbiAgICBDb250ZXh0TWVudVBpcGUsXG4gICAgQmJiVHJhbnNsYXRlUGlwZSxcbiAgICBCYXJzYUljb25EaWN0UGlwZSxcbiAgICBGaWxlSW5mb0NvdW50UGlwZSxcbiAgICBDb250cm9sVWlQaXBlLFxuICAgIFZpc2libGVWYWx1ZVBpcGUsXG4gICAgRGF0ZVRpbWVUb0NhcHRpb25QaXBlLFxuICAgIEZpbHRlclRvb2xiYXJDb250cm9sUGlwZSxcbiAgICBMaXN0Q291bnRQaXBlLFxuICAgIFRvdGFsU3VtbWFyeVBpcGUsXG4gICAgTWVyZ2VGaWVsZHNUb0NvbHVtbnNQaXBlLFxuICAgIEZpbmRDb2x1bW5CeURiTmFtZVBpcGUsXG4gICAgRmlsdGVyQ29sdW1uc0J5RGV0YWlsc1BpcGUsXG4gICAgTW9JbmZvVWx2TW9MaXN0UGlwZSxcbiAgICBSZXZlcnNlUGlwZVxufSBmcm9tICcuL3BpcGVzJztcbmltcG9ydCB7IEJhcnNhU2FwVWlGb3JtUGFnZU1vZHVsZSB9IGZyb20gJy4vZm9ybS1wYWdlLXJvdXRpbmcnO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdmFyXG5kZWNsYXJlIHZhciBCQkI6IGFueTtcblxuY29uc3QgY29tcG9uZW50cyA9IFtcbiAgICBGb3JtQ29tcG9uZW50LFxuICAgIEZpZWxkVWlDb21wb25lbnQsXG4gICAgTm90Rm91bmRDb21wb25lbnQsXG4gICAgUm9vdFBhZ2VDb21wb25lbnQsXG4gICAgUm9vdFBvcnRhbENvbXBvbmVudCxcbiAgICBSZXBvcnRDb250YWluZXJDb21wb25lbnQsXG4gICAgRm9ybU5ld0NvbXBvbmVudCxcbiAgICBNb2RhbFJvb3RDb21wb25lbnQsXG4gICAgUG9ydGFsUGFnZUNvbXBvbmVudCxcbiAgICBSZWRpcmVjdFJlcG9ydE5hdmlnYXRvckNvbW1hbmRDb21wb25lbnQsXG4gICAgRW1wdHlQYWdlV2l0aFJvdXRlckFuZFJvdXRlck91dGxldENvbXBvbmVudCxcbiAgICBEeW5hbWljSXRlbUNvbXBvbmVudCxcbiAgICBEeW5hbWljRm9ybUNvbXBvbmVudCxcbiAgICBCYXNlRHluYW1pY0NvbXBvbmVudCxcbiAgICBEeW5hbWljRm9ybVRvb2xiYXJpdGVtQ29tcG9uZW50LFxuICAgIER5bmFtaWNMYXlvdXRDb21wb25lbnQsXG4gICAgRW1wdHlQYWdlQ29tcG9uZW50LFxuICAgIEZvcm1QYWdlQ29tcG9uZW50XG5dO1xuY29uc3QgZGlyZWN0aXZlcyA9IFtcbiAgICBQbGFjZUhvbGRlckRpcmVjdGl2ZSxcbiAgICBOdW1iZXJzT25seUlucHV0RGlyZWN0aXZlLFxuICAgIFJlbmRlclVsdlZpZXdlckRpcmVjdGl2ZSxcbiAgICBSZW5kZXJVbHZQYWdpbkRpcmVjdGl2ZSxcbiAgICBBbmNob3JTY3JvbGxEaXJlY3RpdmUsXG4gICAgSXRlbXNSZW5kZXJlckRpcmVjdGl2ZSxcbiAgICBVbHZDb21tYW5kRGlyZWN0aXZlLFxuICAgIER5bmFtaWNDb21tYW5kRGlyZWN0aXZlLFxuICAgIFdvcmZrZmxvd3dDaG9pY2VDb21tYW5kRGlyZWN0aXZlLFxuICAgIEltYWdlTGF6eURpcmVjdGl2ZSxcbiAgICBVbnRpbEluVmlld0RpcmVjdGl2ZSxcbiAgICBJbnRlcnNlY3Rpb25PYnNlcnZlckRpcmVjdGl2ZSxcbiAgICBFbGxpcHNpZnlEaXJlY3RpdmUsXG4gICAgVGFibGVSZXNpemVyRGlyZWN0aXZlLFxuICAgIENvbHVtblJlc2l6ZXJEaXJlY3RpdmUsXG4gICAgQXR0clJ0bERpcmVjdGl2ZSxcbiAgICBDb3B5RGlyZWN0aXZlXG5dO1xuY29uc3QgcGlwZXMgPSBbXG4gICAgTnVtZXJhbFBpcGUsXG4gICAgQ2FuVXBsb2FkRmlsZVBpcGUsXG4gICAgUmVtb3ZlTmV3bGluZVBpcGUsXG4gICAgQ29udmVydFRvU3R5bGVQaXBlLFxuICAgIEZpbHRlclBpcGUsXG4gICAgRmlsdGVyVGFiUGlwZSxcbiAgICBGaWx0ZXJTdHJpbmdQaXBlLFxuICAgIEZpb3JpSWNvblBpcGUsXG4gICAgU29ydFBpcGUsXG4gICAgR3JvdXBCeVBpcGUsXG4gICAgTXVsdGlwbGVHcm91cEJ5UGlwZSxcbiAgICBNb1ZhbHVlUGlwZSxcbiAgICBNb1JlcG9ydFZhbHVlUGlwZSxcbiAgICBIZWFkZXJGYWNldFZhbHVlUGlwZSxcbiAgICBQaWN0dXJlRmllbGRTb3VyY2VQaXBlLFxuICAgIFRsYkJ1dHRvbnNQaXBlLFxuICAgIFNlcGVyYXRvckZpeFBpcGUsXG4gICAgTW9SZXBvcnRWYWx1ZUNvbmNhdFBpcGUsXG4gICAgQ29udGV4dE1lbnVQaXBlLFxuICAgIEJiYlRyYW5zbGF0ZVBpcGUsXG4gICAgQmFyc2FJY29uRGljdFBpcGUsXG4gICAgRmlsZUluZm9Db3VudFBpcGUsXG4gICAgQ29udHJvbFVpUGlwZSxcbiAgICBWaXNpYmxlVmFsdWVQaXBlLFxuICAgIERhdGVUaW1lVG9DYXB0aW9uUGlwZSxcbiAgICBGaWx0ZXJUb29sYmFyQ29udHJvbFBpcGUsXG4gICAgTGlzdENvdW50UGlwZSxcbiAgICBUb3RhbFN1bW1hcnlQaXBlLFxuICAgIE1lcmdlRmllbGRzVG9Db2x1bW5zUGlwZSxcbiAgICBGaW5kQ29sdW1uQnlEYk5hbWVQaXBlLFxuICAgIEZpbHRlckNvbHVtbnNCeURldGFpbHNQaXBlLFxuICAgIE1vSW5mb1Vsdk1vTGlzdFBpcGUsXG4gICAgUmV2ZXJzZVBpcGVcbl07XG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogWy4uLmNvbXBvbmVudHMsIC4uLnBpcGVzLCAuLi5kaXJlY3RpdmVzXSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBIdHRwQ2xpZW50TW9kdWxlLCBCYXJzYU5vdmluUmF5Q29yZVJvdXRpbmdNb2R1bGUsIEJhcnNhU2FwVWlGb3JtUGFnZU1vZHVsZV0sXG4gICAgZXhwb3J0czogWy4uLmNvbXBvbmVudHMsIC4uLnBpcGVzLCAuLi5kaXJlY3RpdmVzXSxcbiAgICBzY2hlbWFzOiBbTk9fRVJST1JTX1NDSEVNQV1cbn0pXG5leHBvcnQgY2xhc3MgQmFyc2FOb3ZpblJheUNvcmVNb2R1bGUgZXh0ZW5kcyBCYXNlTW9kdWxlIHtcbiAgICBwcm90ZWN0ZWQgZHluYW1pY0NvbXBvbmVudHMgPSBbLi4uY29tcG9uZW50c107XG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGRjbTogRHluYW1pY0NvbXBvbmVudFNlcnZpY2UsIHByb3RlY3RlZCBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcikge1xuICAgICAgICBzdXBlcihkY20sIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgJ0JhcnNhTm92aW5SYXlDb3JlTW9kdWxlJyk7XG4gICAgfVxuICAgIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8QmFyc2FOb3ZpblJheUNvcmVNb2R1bGU+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5nTW9kdWxlOiBCYXJzYU5vdmluUmF5Q29yZU1vZHVsZSxcbiAgICAgICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgICAgICAgIC4uLnBpcGVzLFxuICAgICAgICAgICAgICAgIFVwbG9hZFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgQXBpU2VydmljZSxcbiAgICAgICAgICAgICAgICBMb2dTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIEJhcnNhRGlhbG9nU2VydmljZSxcbiAgICAgICAgICAgICAgICBQb3J0YWxTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIFVpU2VydmljZSxcbiAgICAgICAgICAgICAgICBMYXlvdXRTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIER5bmFtaWNDb21wb25lbnRTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIEJyZWFkY3J1bWJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIEF1dGhHdWFyZCxcbiAgICAgICAgICAgICAgICBOZXR3b3JrU3RhdHVzU2VydmljZSxcbiAgICAgICAgICAgICAgICBBdWRpb1JlY29yZGluZ1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgVmlkZW9SZWNvcmRpbmdTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIFJlZGlyZWN0SG9tZUd1YXJkLFxuICAgICAgICAgICAgICAgIFByb21wdFVwZGF0ZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgTm90aWZpY2F0aW9uU2VydmljZSxcbiAgICAgICAgICAgICAgICBTZXJ2aWNlV29ya2VyTm90aWZpY2F0aW9uU2VydmljZSxcbiAgICAgICAgICAgICAgICBMb2NhbFN0b3JhZ2VTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIEluZGV4ZWREYlNlcnZpY2UsXG4gICAgICAgICAgICAgICAgQmJiVHJhbnNsYXRlUGlwZSxcbiAgICAgICAgICAgICAgICBCYXJzYVN0b3JhZ2VTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogRXJyb3JIYW5kbGVyLFxuICAgICAgICAgICAgICAgICAgICB1c2VDbGFzczogR2xvYmFsRXJyb3JIYW5kbGVyXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICAgICAgICAgICAgICAgICAgdXNlRmFjdG9yeTogKG5vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvblNlcnZpY2UpID0+ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEJhcnNhQXBpLlVsLk5vdGlmaWNhdGlvbk1hbmFnZXIub24oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNob3dQb3B1cDogbm90aWZpY2F0aW9uU2VydmljZS5hZGROb3RpZmljYXRpb24uYmluZChub3RpZmljYXRpb25TZXJ2aWNlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaXNoRXZlbnQ6IG5vdGlmaWNhdGlvblNlcnZpY2UuaGFuZGxlVG9waWMuYmluZChub3RpZmljYXRpb25TZXJ2aWNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGRlcHM6IFtOb3RpZmljYXRpb25TZXJ2aWNlXSxcbiAgICAgICAgICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxuICAgICAgICAgICAgICAgICAgICB1c2VGYWN0b3J5OlxuICAgICAgICAgICAgICAgICAgICAgICAgKHByb21wdFVwZGF0ZVNlcnZpY2U6IFByb21wdFVwZGF0ZVNlcnZpY2UsIGJhcnNhU3RvcmFnZVNlcnZpY2U6IEJhcnNhU3RvcmFnZVNlcnZpY2UpID0+ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9tcHRVcGRhdGVTZXJ2aWNlLmNoZWNrRm9yVXBkYXRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFyc2FTdG9yYWdlU2VydmljZS5pbml0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBkZXBzOiBbUHJvbXB0VXBkYXRlU2VydmljZSwgQmFyc2FTdG9yYWdlU2VydmljZV0sXG4gICAgICAgICAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICAgICAgICAgICAgICAgICAgdXNlRmFjdG9yeTogKCkgPT4gKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEJhcnNhQXBpLkxvZ2luRm9ybURhdGEuQ3VsdHVyZSA9PT0gJ2ZhLUlSJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmZXRjaChgL0xvY2FsaXphdGlvbi9UcmFuc2xhdGlvbi9kYXRhXyR7QmFyc2FBcGkuTG9naW5Gb3JtRGF0YS5DdWx0dXJlfS5qc29uYClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAudGhlbihmdW5jdGlvbiAocmVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXMuanNvbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKHJlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoQkJCKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQkJCID0geyAuLi5CYXJzYUFwaS5CQkIsIC4uLnJlcyB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGRlcHM6IFtdLFxuICAgICAgICAgICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXG4gICAgICAgICAgICAgICAgICAgIHVzZUZhY3Rvcnk6IChwb3J0YWxTZXJ2aWNlOiBQb3J0YWxTZXJ2aWNlLCB0aXRsZVNlcnZpY2U6IFRpdGxlKSA9PiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb3J0YWxTZXJ2aWNlLmxvYWRVc2VyUG9ydGFsU2V0dGluZygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9ydGFsU2VydmljZS5sb2FkUG9ydGFsRGF0YVN5bmMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwb3J0YWxTZXJ2aWNlLnBvcnRhbERhdGE/LlRpdGxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGVTZXJ2aWNlLnNldFRpdGxlKHBvcnRhbFNlcnZpY2UucG9ydGFsRGF0YT8uVGl0bGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEJhcnNhQXBpLkxvZ2luRm9ybURhdGEuSXNBbm9ueW1vdXMgJiYgIUJhcnNhQXBpLkxvZ2luRm9ybURhdGEuSXNTZXJ2aWNlRGVzaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwb3J0YWxTZXJ2aWNlLmxvYWRTeXN0ZW0oQmFyc2FBcGkuTG9naW5Gb3JtRGF0YS5Qb3J0YWxTeXN0ZW1JZCk7IC8vIGxvZ2luIGZvcm0gbmVlZCBqdXN0IHBvcnRhbCBzeXN0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBvcnRhbFNlcnZpY2UubG9hZFN5c3RlbSgpOyAvLyBsb2FkIGFsbCBzeXN0ZW1zIGlmIHVzZXIgaXMgbG9nZ2VkIGluXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGRlcHM6IFtQb3J0YWxTZXJ2aWNlLCBUaXRsZV0sXG4gICAgICAgICAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICB9O1xuICAgIH1cbn1cbiJdfQ==
|
|
347
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2Etbm92aW4tcmF5LWNvcmUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etbm92aW4tcmF5LWNvcmUvc3JjL2xpYi9iYXJzYS1ub3Zpbi1yYXktY29yZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILGVBQWUsRUFFZixZQUFZLEVBRVosUUFBUSxFQUNSLGdCQUFnQixFQUNuQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRWxELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVqRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN6RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN2RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXpDLE9BQU8sRUFDSCxvQkFBb0IsRUFDcEIsb0JBQW9CLEVBQ3BCLG9CQUFvQixFQUNwQiwrQkFBK0IsRUFDL0Isc0JBQXNCLEVBQ3pCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxF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QkFBd0I7UUFDeEIsdUJBQXVCO1FBQ3ZCLHFCQUFxQjtRQUNyQixzQkFBc0I7UUFDdEIsbUJBQW1CO1FBQ25CLHVCQUF1QjtRQUN2QixnQ0FBZ0M7UUFDaEMsa0JBQWtCO1FBQ2xCLG9CQUFvQjtRQUNwQiw2QkFBNkI7UUFDN0Isa0JBQWtCO1FBQ2xCLHFCQUFxQjtRQUNyQixzQkFBc0I7UUFDdEIsZ0JBQWdCO1FBQ2hCLGFBQWE7cUhBMkNKLHVCQUF1QixZQUp0QixZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsOEJBQThCLEVBQUUsd0JBQXdCOzJGQUl6Rix1QkFBdUI7a0JBTm5DLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFLENBQUMsR0FBRyxVQUFVLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxVQUFVLENBQUM7b0JBQ3RELE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSw4QkFBOEIsRUFBRSx3QkFBd0IsQ0FBQztvQkFDbkcsT0FBTyxFQUFFLENBQUMsR0FBRyxVQUFVLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxVQUFVLENBQUM7b0JBQ2pELE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDO2lCQUM5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBBUFBfSU5JVElBTElaRVIsXHJcbiAgICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgICBFcnJvckhhbmRsZXIsXHJcbiAgICBNb2R1bGVXaXRoUHJvdmlkZXJzLFxyXG4gICAgTmdNb2R1bGUsXHJcbiAgICBOT19FUlJPUlNfU0NIRU1BXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IFRpdGxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcblxyXG5pbXBvcnQgeyBGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtL2Zvcm0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgRmllbGRVaUNvbXBvbmVudCB9IGZyb20gJy4vZmllbGQtdWkvZmllbGQtdWkuY29tcG9uZW50JztcclxuXHJcbmltcG9ydCB7IFJlcG9ydENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vcmVwb3J0LWNvbnRhaW5lci9yZXBvcnQtY29udGFpbmVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFuY2hvclNjcm9sbERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9hbmNob3Itc2Nyb2xsLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEJhcnNhTm92aW5SYXlDb3JlUm91dGluZ01vZHVsZSB9IGZyb20gJy4vYmFyc2Etbm92aW4tcmF5LWNvcmUtcm91dGluZy5tb2R1bGUnO1xyXG5pbXBvcnQgeyBNb2RhbFJvb3RDb21wb25lbnQgfSBmcm9tICcuL21vZGFsLXJvb3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRm9ybU5ld0NvbXBvbmVudCB9IGZyb20gJy4vZm9ybS1uZXcvZm9ybS1uZXcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUm9vdFBvcnRhbENvbXBvbmVudCB9IGZyb20gJy4vcm9vdC1wb3J0YWwvcm9vdC1wb3J0YWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXV0aEd1YXJkIH0gZnJvbSAnLi9hdXRoLWd1YXJkJztcclxuXHJcbmltcG9ydCB7XHJcbiAgICBEeW5hbWljRm9ybUNvbXBvbmVudCxcclxuICAgIER5bmFtaWNJdGVtQ29tcG9uZW50LFxyXG4gICAgQmFzZUR5bmFtaWNDb21wb25lbnQsXHJcbiAgICBEeW5hbWljRm9ybVRvb2xiYXJpdGVtQ29tcG9uZW50LFxyXG4gICAgRHluYW1pY0xheW91dENvbXBvbmVudFxyXG59IGZyb20gJy4vZHluYW1pYy1jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSZWRpcmVjdEhvbWVHdWFyZCB9IGZyb20gJy4vcmVkaXJlY3QtaG9tZS1ndWFyZCc7XHJcbmltcG9ydCB7IE5vdEZvdW5kQ29tcG9uZW50IH0gZnJvbSAnLi9ub3QtZm91bmQvbm90LWZvdW5kLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJvb3RQYWdlQ29tcG9uZW50IH0gZnJvbSAnLi9yb290LXBhZ2Uvcm9vdC1wYWdlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJhc2VNb2R1bGUgfSBmcm9tICcuL2Jhc2UubW9kdWxlJztcclxuaW1wb3J0IHsgUG9ydGFsUGFnZUNvbXBvbmVudCB9IGZyb20gJy4vcG9ydGFsLXBhZ2UvcG9ydGFsLXBhZ2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgR2xvYmFsRXJyb3JIYW5kbGVyIH0gZnJvbSAnLi9nbG9iYWwtZXJyb3ItaGFuZGxlcic7XHJcblxyXG5pbXBvcnQgeyBSZWRpcmVjdFJlcG9ydE5hdmlnYXRvckNvbW1hbmRDb21wb25lbnQgfSBmcm9tICcuL3JlZGlyZWN0LXJlcG9ydC1uYXZpZ2F0b3ItY29tbWFuZC9yZWRpcmVjdC1yZXBvcnQtbmF2aWdhdG9yLWNvbW1hbmQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRW1wdHlQYWdlV2l0aFJvdXRlckFuZFJvdXRlck91dGxldENvbXBvbmVudCB9IGZyb20gJy4vZW1wdHktcGFnZS13aXRoLXJvdXRlci1hbmQtcm91dGVyLW91dGxldC9lbXB0eS1wYWdlLXdpdGgtcm91dGVyLWFuZC1yb3V0ZXItb3V0bGV0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEVtcHR5UGFnZUNvbXBvbmVudCB9IGZyb20gJy4vZW1wdHktcGFnZS9lbXB0eS1wYWdlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJhcnNhQXBpIH0gZnJvbSAnLi9hYnN0cmFjdC1jbGFzc2VzL2JhcnNhLWFwaSc7XHJcbmltcG9ydCB7IEZvcm1QYWdlQ29tcG9uZW50IH0gZnJvbSAnLi9hYnN0cmFjdC1jbGFzc2VzL2Zvcm0tcGFnZS5jb21wb25lbnQnO1xyXG5cclxuaW1wb3J0IHtcclxuICAgIEJyZWFkY3J1bWJTZXJ2aWNlLFxyXG4gICAgVXBsb2FkU2VydmljZSxcclxuICAgIEFwaVNlcnZpY2UsXHJcbiAgICBMb2dTZXJ2aWNlLFxyXG4gICAgQmFyc2FEaWFsb2dTZXJ2aWNlLFxyXG4gICAgUG9ydGFsU2VydmljZSxcclxuICAgIFVpU2VydmljZSxcclxuICAgIExheW91dFNlcnZpY2UsXHJcbiAgICBEeW5hbWljQ29tcG9uZW50U2VydmljZSxcclxuICAgIE5ldHdvcmtTdGF0dXNTZXJ2aWNlLFxyXG4gICAgQXVkaW9SZWNvcmRpbmdTZXJ2aWNlLFxyXG4gICAgVmlkZW9SZWNvcmRpbmdTZXJ2aWNlLFxyXG4gICAgUHJvbXB0VXBkYXRlU2VydmljZSxcclxuICAgIEJhcnNhU3RvcmFnZVNlcnZpY2UsXHJcbiAgICBMb2NhbFN0b3JhZ2VTZXJ2aWNlLFxyXG4gICAgSW5kZXhlZERiU2VydmljZSxcclxuICAgIE5vdGlmaWNhdGlvblNlcnZpY2UsXHJcbiAgICBTZXJ2aWNlV29ya2VyTm90aWZpY2F0aW9uU2VydmljZVxyXG59IGZyb20gJy4vc2VydmljZXMnO1xyXG5pbXBvcnQge1xyXG4gICAgRHluYW1pY0NvbW1hbmREaXJlY3RpdmUsXHJcbiAgICBJdGVtc1JlbmRlcmVyRGlyZWN0aXZlLFxyXG4gICAgTnVtYmVyc09ubHlJbnB1dERpcmVjdGl2ZSxcclxuICAgIFBsYWNlSG9sZGVyRGlyZWN0aXZlLFxyXG4gICAgUmVuZGVyVWx2UGFnaW5EaXJlY3RpdmUsXHJcbiAgICBJbWFnZUxhenlEaXJlY3RpdmUsXHJcbiAgICBVbnRpbEluVmlld0RpcmVjdGl2ZSxcclxuICAgIEludGVyc2VjdGlvbk9ic2VydmVyRGlyZWN0aXZlLFxyXG4gICAgRWxsaXBzaWZ5RGlyZWN0aXZlLFxyXG4gICAgVGFibGVSZXNpemVyRGlyZWN0aXZlLFxyXG4gICAgQ29sdW1uUmVzaXplckRpcmVjdGl2ZSxcclxuICAgIEF0dHJSdGxEaXJlY3RpdmUsXHJcbiAgICBSZW5kZXJVbHZWaWV3ZXJEaXJlY3RpdmUsXHJcbiAgICBVbHZDb21tYW5kRGlyZWN0aXZlLFxyXG4gICAgV29yZmtmbG93d0Nob2ljZUNvbW1hbmREaXJlY3RpdmUsXHJcbiAgICBDb3B5RGlyZWN0aXZlXHJcbn0gZnJvbSAnLi9kaXJlY3RpdmVzJztcclxuaW1wb3J0IHtcclxuICAgIE51bWVyYWxQaXBlLFxyXG4gICAgQ2FuVXBsb2FkRmlsZVBpcGUsXHJcbiAgICBSZW1vdmVOZXdsaW5lUGlwZSxcclxuICAgIENvbnZlcnRUb1N0eWxlUGlwZSxcclxuICAgIEZpbHRlclBpcGUsXHJcbiAgICBGaWx0ZXJUYWJQaXBlLFxyXG4gICAgRmlsdGVyU3RyaW5nUGlwZSxcclxuICAgIEZpb3JpSWNvblBpcGUsXHJcbiAgICBTb3J0UGlwZSxcclxuICAgIEdyb3VwQnlQaXBlLFxyXG4gICAgTXVsdGlwbGVHcm91cEJ5UGlwZSxcclxuICAgIE1vVmFsdWVQaXBlLFxyXG4gICAgTW9SZXBvcnRWYWx1ZVBpcGUsXHJcbiAgICBIZWFkZXJGYWNldFZhbHVlUGlwZSxcclxuICAgIFBpY3R1cmVGaWVsZFNvdXJjZVBpcGUsXHJcbiAgICBUbGJCdXR0b25zUGlwZSxcclxuICAgIFNlcGVyYXRvckZpeFBpcGUsXHJcbiAgICBNb1JlcG9ydFZhbHVlQ29uY2F0UGlwZSxcclxuICAgIENvbnRleHRNZW51UGlwZSxcclxuICAgIEJiYlRyYW5zbGF0ZVBpcGUsXHJcbiAgICBCYXJzYUljb25EaWN0UGlwZSxcclxuICAgIEZpbGVJbmZvQ291bnRQaXBlLFxyXG4gICAgQ29udHJvbFVpUGlwZSxcclxuICAgIFZpc2libGVWYWx1ZVBpcGUsXHJcbiAgICBEYXRlVGltZVRvQ2FwdGlvblBpcGUsXHJcbiAgICBGaWx0ZXJUb29sYmFyQ29udHJvbFBpcGUsXHJcbiAgICBMaXN0Q291bnRQaXBlLFxyXG4gICAgVG90YWxTdW1tYXJ5UGlwZSxcclxuICAgIE1lcmdlRmllbGRzVG9Db2x1bW5zUGlwZSxcclxuICAgIEZpbmRDb2x1bW5CeURiTmFtZVBpcGUsXHJcbiAgICBGaWx0ZXJDb2x1bW5zQnlEZXRhaWxzUGlwZSxcclxuICAgIE1vSW5mb1Vsdk1vTGlzdFBpcGUsXHJcbiAgICBSZXZlcnNlUGlwZVxyXG59IGZyb20gJy4vcGlwZXMnO1xyXG5pbXBvcnQgeyBCYXJzYVNhcFVpRm9ybVBhZ2VNb2R1bGUgfSBmcm9tICcuL2Zvcm0tcGFnZS1yb3V0aW5nJztcclxuXHJcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby12YXJcclxuZGVjbGFyZSB2YXIgQkJCOiBhbnk7XHJcblxyXG5jb25zdCBjb21wb25lbnRzID0gW1xyXG4gICAgRm9ybUNvbXBvbmVudCxcclxuICAgIEZpZWxkVWlDb21wb25lbnQsXHJcbiAgICBOb3RGb3VuZENvbXBvbmVudCxcclxuICAgIFJvb3RQYWdlQ29tcG9uZW50LFxyXG4gICAgUm9vdFBvcnRhbENvbXBvbmVudCxcclxuICAgIFJlcG9ydENvbnRhaW5lckNvbXBvbmVudCxcclxuICAgIEZvcm1OZXdDb21wb25lbnQsXHJcbiAgICBNb2RhbFJvb3RDb21wb25lbnQsXHJcbiAgICBQb3J0YWxQYWdlQ29tcG9uZW50LFxyXG4gICAgUmVkaXJlY3RSZXBvcnROYXZpZ2F0b3JDb21tYW5kQ29tcG9uZW50LFxyXG4gICAgRW1wdHlQYWdlV2l0aFJvdXRlckFuZFJvdXRlck91dGxldENvbXBvbmVudCxcclxuICAgIER5bmFtaWNJdGVtQ29tcG9uZW50LFxyXG4gICAgRHluYW1pY0Zvcm1Db21wb25lbnQsXHJcbiAgICBCYXNlRHluYW1pY0NvbXBvbmVudCxcclxuICAgIER5bmFtaWNGb3JtVG9vbGJhcml0ZW1Db21wb25lbnQsXHJcbiAgICBEeW5hbWljTGF5b3V0Q29tcG9uZW50LFxyXG4gICAgRW1wdHlQYWdlQ29tcG9uZW50LFxyXG4gICAgRm9ybVBhZ2VDb21wb25lbnRcclxuXTtcclxuY29uc3QgZGlyZWN0aXZlcyA9IFtcclxuICAgIFBsYWNlSG9sZGVyRGlyZWN0aXZlLFxyXG4gICAgTnVtYmVyc09ubHlJbnB1dERpcmVjdGl2ZSxcclxuICAgIFJlbmRlclVsdlZpZXdlckRpcmVjdGl2ZSxcclxuICAgIFJlbmRlclVsdlBhZ2luRGlyZWN0aXZlLFxyXG4gICAgQW5jaG9yU2Nyb2xsRGlyZWN0aXZlLFxyXG4gICAgSXRlbXNSZW5kZXJlckRpcmVjdGl2ZSxcclxuICAgIFVsdkNvbW1hbmREaXJlY3RpdmUsXHJcbiAgICBEeW5hbWljQ29tbWFuZERpcmVjdGl2ZSxcclxuICAgIFdvcmZrZmxvd3dDaG9pY2VDb21tYW5kRGlyZWN0aXZlLFxyXG4gICAgSW1hZ2VMYXp5RGlyZWN0aXZlLFxyXG4gICAgVW50aWxJblZpZXdEaXJlY3RpdmUsXHJcbiAgICBJbnRlcnNlY3Rpb25PYnNlcnZlckRpcmVjdGl2ZSxcclxuICAgIEVsbGlwc2lmeURpcmVjdGl2ZSxcclxuICAgIFRhYmxlUmVzaXplckRpcmVjdGl2ZSxcclxuICAgIENvbHVtblJlc2l6ZXJEaXJlY3RpdmUsXHJcbiAgICBBdHRyUnRsRGlyZWN0aXZlLFxyXG4gICAgQ29weURpcmVjdGl2ZVxyXG5dO1xyXG5jb25zdCBwaXBlcyA9IFtcclxuICAgIE51bWVyYWxQaXBlLFxyXG4gICAgQ2FuVXBsb2FkRmlsZVBpcGUsXHJcbiAgICBSZW1vdmVOZXdsaW5lUGlwZSxcclxuICAgIENvbnZlcnRUb1N0eWxlUGlwZSxcclxuICAgIEZpbHRlclBpcGUsXHJcbiAgICBGaWx0ZXJUYWJQaXBlLFxyXG4gICAgRmlsdGVyU3RyaW5nUGlwZSxcclxuICAgIEZpb3JpSWNvblBpcGUsXHJcbiAgICBTb3J0UGlwZSxcclxuICAgIEdyb3VwQnlQaXBlLFxyXG4gICAgTXVsdGlwbGVHcm91cEJ5UGlwZSxcclxuICAgIE1vVmFsdWVQaXBlLFxyXG4gICAgTW9SZXBvcnRWYWx1ZVBpcGUsXHJcbiAgICBIZWFkZXJGYWNldFZhbHVlUGlwZSxcclxuICAgIFBpY3R1cmVGaWVsZFNvdXJjZVBpcGUsXHJcbiAgICBUbGJCdXR0b25zUGlwZSxcclxuICAgIFNlcGVyYXRvckZpeFBpcGUsXHJcbiAgICBNb1JlcG9ydFZhbHVlQ29uY2F0UGlwZSxcclxuICAgIENvbnRleHRNZW51UGlwZSxcclxuICAgIEJiYlRyYW5zbGF0ZVBpcGUsXHJcbiAgICBCYXJzYUljb25EaWN0UGlwZSxcclxuICAgIEZpbGVJbmZvQ291bnRQaXBlLFxyXG4gICAgQ29udHJvbFVpUGlwZSxcclxuICAgIFZpc2libGVWYWx1ZVBpcGUsXHJcbiAgICBEYXRlVGltZVRvQ2FwdGlvblBpcGUsXHJcbiAgICBGaWx0ZXJUb29sYmFyQ29udHJvbFBpcGUsXHJcbiAgICBMaXN0Q291bnRQaXBlLFxyXG4gICAgVG90YWxTdW1tYXJ5UGlwZSxcclxuICAgIE1lcmdlRmllbGRzVG9Db2x1bW5zUGlwZSxcclxuICAgIEZpbmRDb2x1bW5CeURiTmFtZVBpcGUsXHJcbiAgICBGaWx0ZXJDb2x1bW5zQnlEZXRhaWxzUGlwZSxcclxuICAgIE1vSW5mb1Vsdk1vTGlzdFBpcGUsXHJcbiAgICBSZXZlcnNlUGlwZVxyXG5dO1xyXG5ATmdNb2R1bGUoe1xyXG4gICAgZGVjbGFyYXRpb25zOiBbLi4uY29tcG9uZW50cywgLi4ucGlwZXMsIC4uLmRpcmVjdGl2ZXNdLFxyXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSHR0cENsaWVudE1vZHVsZSwgQmFyc2FOb3ZpblJheUNvcmVSb3V0aW5nTW9kdWxlLCBCYXJzYVNhcFVpRm9ybVBhZ2VNb2R1bGVdLFxyXG4gICAgZXhwb3J0czogWy4uLmNvbXBvbmVudHMsIC4uLnBpcGVzLCAuLi5kaXJlY3RpdmVzXSxcclxuICAgIHNjaGVtYXM6IFtOT19FUlJPUlNfU0NIRU1BXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQmFyc2FOb3ZpblJheUNvcmVNb2R1bGUgZXh0ZW5kcyBCYXNlTW9kdWxlIHtcclxuICAgIHByb3RlY3RlZCBkeW5hbWljQ29tcG9uZW50cyA9IFsuLi5jb21wb25lbnRzXTtcclxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBkY206IER5bmFtaWNDb21wb25lbnRTZXJ2aWNlLCBwcm90ZWN0ZWQgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIpIHtcclxuICAgICAgICBzdXBlcihkY20sIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgJ0JhcnNhTm92aW5SYXlDb3JlTW9kdWxlJyk7XHJcbiAgICB9XHJcbiAgICBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPEJhcnNhTm92aW5SYXlDb3JlTW9kdWxlPiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgbmdNb2R1bGU6IEJhcnNhTm92aW5SYXlDb3JlTW9kdWxlLFxyXG4gICAgICAgICAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICAgICAgICAgIC4uLnBpcGVzLFxyXG4gICAgICAgICAgICAgICAgVXBsb2FkU2VydmljZSxcclxuICAgICAgICAgICAgICAgIEFwaVNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICBMb2dTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICAgQmFyc2FEaWFsb2dTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICAgUG9ydGFsU2VydmljZSxcclxuICAgICAgICAgICAgICAgIFVpU2VydmljZSxcclxuICAgICAgICAgICAgICAgIExheW91dFNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICBEeW5hbWljQ29tcG9uZW50U2VydmljZSxcclxuICAgICAgICAgICAgICAgIEJyZWFkY3J1bWJTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICAgQXV0aEd1YXJkLFxyXG4gICAgICAgICAgICAgICAgTmV0d29ya1N0YXR1c1NlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICBBdWRpb1JlY29yZGluZ1NlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICBWaWRlb1JlY29yZGluZ1NlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICBSZWRpcmVjdEhvbWVHdWFyZCxcclxuICAgICAgICAgICAgICAgIFByb21wdFVwZGF0ZVNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICBOb3RpZmljYXRpb25TZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICAgU2VydmljZVdvcmtlck5vdGlmaWNhdGlvblNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICBMb2NhbFN0b3JhZ2VTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICAgSW5kZXhlZERiU2VydmljZSxcclxuICAgICAgICAgICAgICAgIEJiYlRyYW5zbGF0ZVBpcGUsXHJcbiAgICAgICAgICAgICAgICBCYXJzYVN0b3JhZ2VTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IEVycm9ySGFuZGxlcixcclxuICAgICAgICAgICAgICAgICAgICB1c2VDbGFzczogR2xvYmFsRXJyb3JIYW5kbGVyXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcclxuICAgICAgICAgICAgICAgICAgICB1c2VGYWN0b3J5OiAobm90aWZpY2F0aW9uU2VydmljZTogTm90aWZpY2F0aW9uU2VydmljZSkgPT4gKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBCYXJzYUFwaS5VbC5Ob3RpZmljYXRpb25NYW5hZ2VyLm9uKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNob3dQb3B1cDogbm90aWZpY2F0aW9uU2VydmljZS5hZGROb3RpZmljYXRpb24uYmluZChub3RpZmljYXRpb25TZXJ2aWNlKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1Ymxpc2hFdmVudDogbm90aWZpY2F0aW9uU2VydmljZS5oYW5kbGVUb3BpYy5iaW5kKG5vdGlmaWNhdGlvblNlcnZpY2UpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgZGVwczogW05vdGlmaWNhdGlvblNlcnZpY2VdLFxyXG4gICAgICAgICAgICAgICAgICAgIG11bHRpOiB0cnVlXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcclxuICAgICAgICAgICAgICAgICAgICB1c2VGYWN0b3J5OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAocHJvbXB0VXBkYXRlU2VydmljZTogUHJvbXB0VXBkYXRlU2VydmljZSwgYmFyc2FTdG9yYWdlU2VydmljZTogQmFyc2FTdG9yYWdlU2VydmljZSkgPT4gKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvbXB0VXBkYXRlU2VydmljZS5jaGVja0ZvclVwZGF0ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFyc2FTdG9yYWdlU2VydmljZS5pbml0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgZGVwczogW1Byb21wdFVwZGF0ZVNlcnZpY2UsIEJhcnNhU3RvcmFnZVNlcnZpY2VdLFxyXG4gICAgICAgICAgICAgICAgICAgIG11bHRpOiB0cnVlXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcclxuICAgICAgICAgICAgICAgICAgICB1c2VGYWN0b3J5OiAoKSA9PiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChCYXJzYUFwaS5Mb2dpbkZvcm1EYXRhLkN1bHR1cmUgPT09ICdmYS1JUicpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmV0Y2goYC9Mb2NhbGl6YXRpb24vVHJhbnNsYXRpb24vZGF0YV8ke0JhcnNhQXBpLkxvZ2luRm9ybURhdGEuQ3VsdHVyZX0uanNvbmApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAudGhlbihmdW5jdGlvbiAocmVzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlcy5qc29uKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKHJlcykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChCQkIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQkJCID0geyAuLi5CYXJzYUFwaS5CQkIsIC4uLnJlcyB9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgZGVwczogW10sXHJcbiAgICAgICAgICAgICAgICAgICAgbXVsdGk6IHRydWVcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxyXG4gICAgICAgICAgICAgICAgICAgIHVzZUZhY3Rvcnk6IChwb3J0YWxTZXJ2aWNlOiBQb3J0YWxTZXJ2aWNlLCB0aXRsZVNlcnZpY2U6IFRpdGxlKSA9PiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvcnRhbFNlcnZpY2UubG9hZFVzZXJQb3J0YWxTZXR0aW5nKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvcnRhbFNlcnZpY2UubG9hZFBvcnRhbERhdGFTeW5jKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwb3J0YWxTZXJ2aWNlLnBvcnRhbERhdGE/LlRpdGxlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZVNlcnZpY2Uuc2V0VGl0bGUocG9ydGFsU2VydmljZS5wb3J0YWxEYXRhPy5UaXRsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEJhcnNhQXBpLkxvZ2luRm9ybURhdGEuSXNBbm9ueW1vdXMgJiYgIUJhcnNhQXBpLkxvZ2luRm9ybURhdGEuSXNTZXJ2aWNlRGVzaykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBvcnRhbFNlcnZpY2UubG9hZFN5c3RlbShCYXJzYUFwaS5Mb2dpbkZvcm1EYXRhLlBvcnRhbFN5c3RlbUlkKTsgLy8gbG9naW4gZm9ybSBuZWVkIGp1c3QgcG9ydGFsIHN5c3RlbVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBvcnRhbFNlcnZpY2UubG9hZFN5c3RlbSgpOyAvLyBsb2FkIGFsbCBzeXN0ZW1zIGlmIHVzZXIgaXMgbG9nZ2VkIGluXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGRlcHM6IFtQb3J0YWxTZXJ2aWNlLCBUaXRsZV0sXHJcbiAgICAgICAgICAgICAgICAgICAgbXVsdGk6IHRydWVcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgXVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -474,4 +474,4 @@ export const PdfMimeType = '.pdf';
|
|
|
474
474
|
export const AllFilesMimeType = '.txt,.ppt,.pdf,.*';
|
|
475
475
|
export const VideoMimeType = 'video/*';
|
|
476
476
|
export const AudioMimeType = 'audio/*';
|
|
477
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etbm92aW4tcmF5LWNvcmUvc3JjL2xpYi9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0JBQW9CO0FBQ3BCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFXeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFlLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEcsT0FBTyxLQUFLLE1BQU0sTUFBTSxVQUFVLENBQUM7QUFHbkMsTUFBTSxVQUFVLG9CQUFvQixDQUFDLFlBQWlCLEVBQUUsVUFBa0I7SUFDdEUsSUFBSSxZQUFZLEVBQUU7UUFDZCxNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsVUFBVSxvQ0FBb0MsVUFBVSx5QkFBeUIsQ0FBQyxDQUFDO0tBQ3pHO0FBQ0wsQ0FBQztBQUNELE1BQU0sVUFBVSxpQkFBaUI7SUFDN0IsT0FBTyxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0FBQy9DLENBQUM7QUFDRCxNQUFNLFVBQVUscUJBQXFCLENBQUMsS0FBYSxFQUFFLFlBQW9CO0lBQ3JFLFFBQVEsS0FBSyxFQUFFO1FBQ1gsS0FBSyxHQUFHO1lBQ0osT0FBTyxHQUFHLENBQUM7UUFDZixLQUFLLEdBQUc7WUFDSixPQUFPLEdBQUcsQ0FBQztRQUNmLEtBQUssR0FBRztZQUNKLE9BQU8sR0FBRyxDQUFDO1FBQ2Y7WUFDSSxPQUFPLFlBQVksQ0FBQztLQUMzQjtBQUNMLENBQUM7QUFDRCxNQUFNLFVBQVUsV0FBVyxDQUFDLEtBQWE7SUFDckMsTUFBTSxTQUFTLEdBQWEsRUFBRSxDQUFDO0lBQy9CLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFF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WSxHQUNyQix1R0FBdUcsQ0FBQztBQUM1RyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsd0NBQXdDLENBQUM7QUFDdEUsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQztBQUNsQyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxtQkFBbUIsQ0FBQztBQUNwRCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsU0FBUyxDQUFDO0FBQ3ZDLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSAqL1xuaW1wb3J0IHsgX2lzTnVtYmVyVmFsdWUgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgQmFyc2FBcGkgfSBmcm9tICcuL2Fic3RyYWN0LWNsYXNzZXMvYmFyc2EtYXBpJztcbmltcG9ydCB7XG4gICAgQWJicmV2YXRpb25EZXZpY2VTaXplLFxuICAgIENvbFNldHRpbmcsXG4gICAgRm9ybVNldHRpbmcsXG4gICAgR2VuZXJhbENvbnRyb2xJbmZvTW9kZWwsXG4gICAgR3JpZFNldHRpbmcsXG4gICAgTGF5b3V0U2V0dGluZyxcbiAgICBNZXRhb2JqZWN0RGF0YU1vZGVsLFxuICAgIFJlcG9ydFZpZXdDb2x1bW5cbn0gZnJvbSAnLi9hYnN0cmFjdC1jbGFzc2VzL21vZGVscyc7XG5pbXBvcnQgeyBEYXRlSGlqcmlTZXJ2aWNlLCBEYXRlTWlsYWRpU2VydmljZSwgRGF0ZVNlcnZpY2UsIERhdGVTaGFtc2lTZXJ2aWNlIH0gZnJvbSAnLi9kYXRlLXNlcnZpY2VzJztcbmltcG9ydCAqIGFzIERldmljZSBmcm9tICcuL2RldmljZSc7XG5pbXBvcnQgeyBMb2dTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9sb2cuc2VydmljZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiB0aHJvd0lmQWxyZWFkeUxvYWRlZChwYXJlbnRNb2R1bGU6IGFueSwgbW9kdWxlTmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHBhcmVudE1vZHVsZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7bW9kdWxlTmFtZX0gaGFzIGFscmVhZHkgYmVlbiBsb2FkZWQuIEltcG9ydCAke21vZHVsZU5hbWV9IGluIHRoZSBBcHBNb2R1bGUgb25seS5gKTtcbiAgICB9XG59XG5leHBvcnQgZnVuY3Rpb24gZ2VucmF0ZUlubGluZU1vSWQoKSB7XG4gICAgcmV0dXJuIChCYXJzYUFwaS5pZEdlbmVyYXRvci0tKS50b1N0cmluZygpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGVudW1WYWx1ZVRvU3RyaW5nU2l6ZSh2YWx1ZTogc3RyaW5nLCBkZWZhdWx0VmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgc3dpdGNoICh2YWx1ZSkge1xuICAgICAgICBjYXNlICcxJzpcbiAgICAgICAgICAgIHJldHVybiAncyc7XG4gICAgICAgIGNhc2UgJzInOlxuICAgICAgICAgICAgcmV0dXJuICdtJztcbiAgICAgICAgY2FzZSAnMyc6XG4gICAgICAgICAgICByZXR1cm4gJ2wnO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbiAgICB9XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0VW5pcXVlSWQocGFydHM6IG51bWJlcik6IHN0cmluZyB7XG4gICAgY29uc3Qgc3RyaW5nQXJyOiBzdHJpbmdbXSA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcGFydHM7IGkrKykge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tYml0d2lzZVxuICAgICAgICBjb25zdCBTNCA9ICgoKDEgKyBNYXRoLnJhbmRvbSgpKSAqIDB4MTAwMDApIHwgMCkudG9TdHJpbmcoMTYpO1xuICAgICAgICBjb25zdCBTNF86IHN0cmluZyA9IFM0Lmxlbmd0aCA+IDAgPyBTNC5zdWJzdHJpbmcoMSkgOiAnJztcbiAgICAgICAgc3RyaW5nQXJyLnB1c2goUzRfKTtcbiAgICB9XG4gICAgcmV0dXJuIHN0cmluZ0Fyci5qb2luKCctJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREYXRlU2VydmljZShsb2dTZXJ2aWNlOiBMb2dTZXJ2aWNlLCBjdWx0dXJlPyk6IERhdGVTZXJ2aWNlIHtcbiAgICBjb25zdCBkZWZhdWx0Q3VsdHVyZSA9IGN1bHR1cmUgPz8gQmFyc2FBcGkuTG9naW5Gb3JtRGF0YS5DdWx0dXJlO1xuICAgIHN3aXRjaCAoZGVmYXVsdEN1bHR1cmUpIHtcbiAgICAgICAgY2FzZSAnZmEtSVInOlxuICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlU2hhbXNpU2VydmljZShsb2dTZXJ2aWNlKTtcbiAgICAgICAgY2FzZSAnYXItQUUnOlxuICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlSGlqcmlTZXJ2aWNlKGxvZ1NlcnZpY2UpO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlTWlsYWRpU2VydmljZShsb2dTZXJ2aWNlKTtcbiAgICB9XG59XG5leHBvcnQgZnVuY3Rpb24gaXNGaXJlZm94KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkuaW5kZXhPZignZmlyZWZveCcpID4gLTE7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0SW1hZ2VQYXRoKFxuICAgIHR5cGU6IHN0cmluZyxcbiAgICBtb0lkOiBzdHJpbmcgfCBudWxsLFxuICAgIGZpbGVJZDogc3RyaW5nLFxuICAgIGZpZWxkRGVmSWQ/OiBzdHJpbmcsXG4gICAgc2l6ZT86IG51bWJlcixcbiAgICBzaXplSD86IG51bWJlclxuKTogc3RyaW5nIHtcbiAgICBtb0lkID0gbW9JZCA9PSBudWxsID8gJycgOiBlbmNvZGVVUklDb21wb25lbnQobW9JZCk7XG4gICAgZmlsZUlkID0gZmlsZUlkID09IG51bGwgPyAnJyA6IGVuY29kZVVSSUNvbXBvbmVudChmaWxlSWQpO1xuICAgIGZpZWxkRGVmSWQgPSBmaWVsZERlZklkID09IG51bGwgPyAnJyA6IGVuY29kZVVSSUNvbXBvbmVudChmaWVsZERlZklkKTtcbiAgICBzaXplID0gc2l6ZSA9PSBudWxsID8gMTI4IDogc2l6ZTtcbiAgICBzaXplSCA9IHNpemVIID09IG51bGwgPyBzaXplIDogc2l6ZUg7XG4gICAgY29uc3QgdXJsID0gYC9JSC5hc2h4P3R5PSR7dHlwZX0mbW9JZD0ke21vSWR9JmlkPSR7ZmlsZUlkfSZmZElkPSR7ZmllbGREZWZJZH0mc2k9JHtzaXplfSZzaUg9JHtzaXplSH1gO1xuICAgIHJldHVybiB1cmw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Z1bmN0aW9uKGZ1bmN0aW9uVG9DaGVjayk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmdW5jdGlvblRvQ2hlY2sgJiYge30udG9TdHJpbmcuY2FsbChmdW5jdGlvblRvQ2hlY2spID09PSAnW29iamVjdCBGdW5jdGlvbl0nO1xufVxuZXhwb3J0IGZ1bmN0aW9uIERldmljZVdpZHRoKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHdpbmRvdy5pbm5lcldpZHRoID4gMCA/IHdpbmRvdy5pbm5lcldpZHRoIDogc2NyZWVuLndpZHRoO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldEhlYWRlclZhbHVlKGZpZWxkVmFsdWUpOiBhbnkge1xuICAgIGlmICh0eXBlb2YgZmllbGRWYWx1ZSAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgcmV0dXJuIGZpZWxkVmFsdWU7XG4gICAgfVxuICAgIGNvbnN0IHZhbHVlID0gZmllbGRWYWx1ZS5WYWx1ZTtcbiAgICBjb25zdCB2YWx1ZUNhcHRpb246IHN0cmluZyA9IGZpZWxkVmFsdWUuVmFsdWUkQ2FwdGlvbjtcbiAgICBsZXQgdmFsdWVPYmplY3RDYXB0aW9uID0gbnVsbDtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgICB2YWx1ZU9iamVjdENhcHRpb24gPSBmaWVsZFZhbHVlLlZhbHVlLiRDYXB0aW9uO1xuICAgIH1cbiAgICBpZiAodmFsdWVPYmplY3RDYXB0aW9uKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZU9iamVjdENhcHRpb247XG4gICAgfVxuICAgIGlmICh2YWx1ZUNhcHRpb24gJiYgIXZhbHVlQ2FwdGlvbi5zdGFydHNXaXRoKCd0bXAnKSkge1xuICAgICAgICByZXR1cm4gdmFsdWVDYXB0aW9uO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG59XG5leHBvcnQgZnVuY3Rpb24gZWxlbWVudEluVmlld3BvcnQyKGVsOiBhbnkpOiBib29sZWFuIHtcbiAgICBsZXQgdG9wID0gZWwub2Zmc2V0VG9wO1xuICAgIGxldCBsZWZ0ID0gZWwub2Zmc2V0TGVmdDtcbiAgICBjb25zdCB3aWR0aCA9IGVsLm9mZnNldFdpZHRoO1xuICAgIGNvbnN0IGhlaWdodCA9IGVsLm9mZnNldEhlaWdodDtcblxuICAgIHdoaWxlIChlbC5vZmZzZXRQYXJlbnQpIHtcbiAgICAgICAgZWwgPSBlbC5vZmZzZXRQYXJlbnQ7XG4gICAgICAgIHRvcCArPSBlbC5vZmZzZXRUb3A7XG4gICAgICAgIGxlZnQgKz0gZWwub2Zmc2V0TGVmdDtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgICB0b3AgPCB3aW5kb3cucGFnZVlPZmZzZXQgKyB3aW5kb3cuaW5uZXJIZWlnaHQgJiZcbiAgICAgICAgbGVmdCA8IHdpbmRvdy5wYWdlWE9mZnNldCArIHdpbmRvdy5pbm5lcldpZHRoICYmXG4gICAgICAgIHRvcCArIGhlaWdodCA+IHdpbmRvdy5wYWdlWU9mZnNldCAmJlxuICAgICAgICBsZWZ0ICsgd2lkdGggPiB3aW5kb3cucGFnZVhPZmZzZXRcbiAgICApO1xufVxuZXhwb3J0IGZ1bmN0aW9uIFByZXZlbnREZWZhdWxFdmVudChlKTogdm9pZCB7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb21wb25lbnREZWZpbmVkKFxuICAgIGNvbnRyb2xVaTogeyBvcmlnaW5hbFh0eXBlOiBzdHJpbmcgfSxcbiAgICBjdXN0b21VaVNldHRpbmc6IHsgTW9kdWxlOiBzdHJpbmc7IE5hbWU6IHN0cmluZzsgU2VsZWN0b3I6IHN0cmluZyB9XG4pOiB7XG4gICAgbW9kdWxlTmFtZTogc3RyaW5nO1xuICAgIG1vZHVsZVBhdGg6IHN0cmluZztcbiAgICBjb21wb25lbnROYW1lOiBzdHJpbmc7XG4gICAgc2VsZWN0b3I6IHN0cmluZztcbn0ge1xuICAgIGxldCBtb2R1bGVOYW1lID0gQmFyc2FBcGkuTG9naW5Gb3JtRGF0YS5EZWZhdWx0VWlNb2R1bGU7XG4gICAgbGV0IG1vZHVsZUtlYmFiTmFtZSA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLkdldEtlYmFiQ2FzZShtb2R1bGVOYW1lKTtcbiAgICBsZXQgY29tcG9uZW50TmFtZSA9IGNvbnRyb2xVaS5vcmlnaW5hbFh0eXBlLnJlcGxhY2UoJy4nLCAnJykucmVwbGFjZSgnXycsICcnKTtcbiAgICBsZXQgc2VsZWN0b3I6IHN0cmluZyA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLkdldEtlYmFiQ2FzZShjb21wb25lbnROYW1lKTtcbiAgICBzZWxlY3RvciA9IHNlbGVjdG9yLnN1YnN0cmluZygxLCBzZWxlY3Rvci5sZW5ndGgpO1xuICAgIHNlbGVjdG9yID0gQmFyc2FBcGkuTG9naW5Gb3JtRGF0YS5DdXN0b21VaVByZWZpeCArICctJyArIHNlbGVjdG9yO1xuICAgIGlmIChjdXN0b21VaVNldHRpbmcgJiYgY3VzdG9tVWlTZXR0aW5nLk1vZHVsZSkge1xuICAgICAgICBtb2R1bGVOYW1lID0gY3VzdG9tVWlTZXR0aW5nLk1vZHVsZTtcbiAgICAgICAgbW9kdWxlS2ViYWJOYW1lID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuR2V0S2ViYWJDYXNlKG1vZHVsZU5hbWUpO1xuICAgICAgICBjb21wb25lbnROYW1lID0gY3VzdG9tVWlTZXR0aW5nLk5hbWU7XG4gICAgICAgIHNlbGVjdG9yID0gY3VzdG9tVWlTZXR0aW5nLlNlbGVjdG9yO1xuICAgIH1cbiAgICBjb25zdCBtb2R1bGVQYXRoID0gbW9kdWxlS2ViYWJOYW1lLnNsaWNlKDEsIG1vZHVsZUtlYmFiTmFtZS5sZW5ndGgpO1xuICAgIHJldHVybiB7IG1vZHVsZU5hbWUsIG1vZHVsZVBhdGgsIGNvbXBvbmVudE5hbWUsIHNlbGVjdG9yIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREZXZpY2VJc1Bob25lKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBEZXZpY2UuaXNQaG9uZSgpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldERldmljZUlzRGVza3RvcCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gRGV2aWNlLmlzVGFibGV0KCk7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0RGV2aWNlSXNUYWJsZXQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIERldmljZS5pc1RhYmxldCgpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldERldmljZUlzTW9iaWxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoJ21vYmknKSA+IDAgfHwgZ2V0RGV2aWNlSXNQaG9uZSgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29udHJvbFNpemVNb2RlKGVsOiBIVE1MRWxlbWVudCwgZGV2aWNlU2l6ZTogJ3MnIHwgJ20nIHwgJ2wnIHwgJ3hsJyA9ICdsJyk6IEFiYnJldmF0aW9uRGV2aWNlU2l6ZSB7XG4gICAgY29uc3QgY29udGFpbmVyV2lkdGggPSBlbC5vZmZzZXRXaWR0aDtcbiAgICBpZiAoY29udGFpbmVyV2lkdGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIGRldmljZVNpemU7XG4gICAgfVxuICAgIGlmIChkZXZpY2VTaXplID09PSAncycgfHwgY29udGFpbmVyV2lkdGggPCA2MDApIHtcbiAgICAgICAgZGV2aWNlU2l6ZSA9ICdzJztcbiAgICB9IGVsc2UgaWYgKGRldmljZVNpemUgPT09ICdtJyB8fCAoY29udGFpbmVyV2lkdGggPiA2MDAgJiYgY29udGFpbmVyV2lkdGggPCAxMjAwKSkge1xuICAgICAgICBkZXZpY2VTaXplID0gJ20nO1xuICAgIH1cbiAgICByZXR1cm4gZGV2aWNlU2l6ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdEJ5dGVzKFxuICAgIGJ5dGVzLFxuICAgIGRlY2ltYWxzID0gMixcbiAgICBzaXplOiAnQnl0ZXMnIHwgJ0tCJyB8ICdNQicgfCAnR0InIHwgJ1RCJyB8ICdQQicgfCAnRUInIHwgJ1pCJyB8ICdZQidcbik6IHN0cmluZyB7XG4gICAgaWYgKGJ5dGVzID09PSAwKSB7XG4gICAgICAgIHJldHVybiAnMCBCeXRlcyc7XG4gICAgfVxuXG4gICAgY29uc3QgayA9IDEwMjQ7XG4gICAgY29uc3QgZG0gPSBkZWNpbWFscyA8IDAgPyAwIDogZGVjaW1hbHM7XG4gICAgY29uc3Qgc2l6ZXMgPSBbJ0J5dGVzJywgJ0tCJywgJ01CJywgJ0dCJywgJ1RCJywgJ1BCJywgJ0VCJywgJ1pCJywgJ1lCJ107XG4gICAgY29uc3QgaSA9IHNpemVzLmZpbmRJbmRleCgoYykgPT4gYyA9PT0gc2l6ZSk7XG4gICAgcmV0dXJuIHBhcnNlRmxvYXQoKGJ5dGVzIC8gTWF0aC5wb3coaywgaSkpLnRvRml4ZWQoZG0pKSArICcgJyArIHNpemVzW2ldO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldFZhbGlkRXh0ZW5zaW9uKHZhbGlkRXh0ZW5zaW9ucyk6IHN0cmluZyB7XG4gICAgbGV0IF92YWxpZEV4dGVuc2lvbnMgPSAnJztcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWxpZEV4dGVuc2lvbnMpKSB7XG4gICAgICAgIF92YWxpZEV4dGVuc2lvbnMgPSB2YWxpZEV4dGVuc2lvbnMubWFwKChjKSA9PiAnLicgKyBjLkV4dGVuc2lvbikuam9pbignLCcpO1xuICAgIH1cbiAgICByZXR1cm4gX3ZhbGlkRXh0ZW5zaW9ucztcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRJY29uKHR5cGU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIEJhcnNhQXBpLkNvbW1vbi5GaWxlLkZpbGVJY29uRGljdDEyOFt0eXBlXTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc0ltYWdlKHR5cGUpOiBib29sZWFuIHtcbiAgICBpZiAoIXR5cGUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB0eXBlID0gdHlwZS50b0xvd2VyQ2FzZSgpO1xuICAgIHJldHVybiBbJ2ltZycsICdwbmcnLCAnanBlZycsICdqcGcnLCAnZ2lmJywgJ2JtcCcsICd0aWZmJywgJ2ltYWdlJ10uaW5kZXhPZih0eXBlKSA+IC0xO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gR2V0QWxsQ29sdW1uc1NvcnRlZChjb250ZXh0KTogQXJyYXk8UmVwb3J0Vmlld0NvbHVtbj4ge1xuICAgIGNvbnN0IGFsbENvbHVtbnMgPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZShjb250ZXh0LCAnU2V0dGluZy5WaWV3LkNvbHVtbnMnLCBbXSkuZmlsdGVyKFxuICAgICAgICAoYykgPT4gYy5OYW1lICE9PSAnSWQnICYmIGMuTmFtZSAhPT0gJyRTdHlsZUluZGV4JyAmJiAhYy5IaWRkZW5cbiAgICApO1xuXG4gICAgY29uc3QgY29sTGlzdDogQ29sU2V0dGluZ1tdID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUoXG4gICAgICAgIGNvbnRleHQsXG4gICAgICAgICdTZXR0aW5nLlZpZXcuR3JpZFNldHRpbmcuQ29sU2V0dGluZ0xpc3QnLFxuICAgICAgICBbXVxuICAgICk7XG4gICAgY29uc3QgY29sdW1ucyA9IG5ldyBBcnJheTxSZXBvcnRWaWV3Q29sdW1uPigpO1xuICAgIGNvbExpc3QuZm9yRWFjaCgoY29sUykgPT4ge1xuICAgICAgICBjb25zdCBjb2x1bW4gPSBhbGxDb2x1bW5zLmZpbmQoKGMpID0+IGMuTmFtZSA9PT0gY29sUy5OYW1lKTtcbiAgICAgICAgaWYgKGNvbHVtbikge1xuICAgICAgICAgICAgY29sdW1ucy5wdXNoKHsgLi4uY29sdW1uLCBIaWRkZW46IGNvbFMuSXNIaWRkZW4sIFdpZHRoOiBjb2xTLldpZHRoIH0pO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgYWxsQ29sdW1ucy5mb3JFYWNoKChjb2x1bW4sIGluZGV4KSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbFNldHRpbmcgPSBjb2xMaXN0LmZpbmQoKGMpID0+IGMuTmFtZSA9PT0gY29sdW1uLk5hbWUpO1xuICAgICAgICBpZiAoIWNvbFNldHRpbmcpIHtcbiAgICAgICAgICAgIGNvbHVtbnMuc3BsaWNlKGluZGV4LCAwLCB7IC4uLmNvbHVtbiwgSGlkZGVuOiBjb2xMaXN0Lmxlbmd0aCA+IDAgPyB0cnVlIDogZmFsc2UgfSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gY29sdW1ucztcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRHcmlkU2V0dGluZ3MoY29udGV4dCk6IEdyaWRTZXR0aW5nIHtcbiAgICBjb25zdCBncmlkU2V0dGluZyA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKGNvbnRleHQsICdTZXR0aW5nLlZpZXcuR3JpZFNldHRpbmcnLCBudWxsKTtcbiAgICByZXR1cm4ge1xuICAgICAgICBDb2xTZXR0aW5nTGlzdDogZ3JpZFNldHRpbmc/LkNvbFNldHRpbmdMaXN0ID8/IG51bGwsXG4gICAgICAgIFNvcnRTZXR0aW5nTGlzdDogZ3JpZFNldHRpbmc/LlNvcnRTZXR0aW5nTGlzdCA/PyBbXSxcbiAgICAgICAgQXV0b1NpemVDb2x1bW5zOiBncmlkU2V0dGluZz8uQXV0b1NpemVDb2x1bW5zID8/IGZhbHNlXG4gICAgfTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBHZXREZWZhdWx0TW9PYmplY3RJbmZvKHR5cGVEZWZJZDogc3RyaW5nKTogTWV0YW9iamVjdERhdGFNb2RlbCB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgSWQ6ICcwJyxcbiAgICAgICAgJENhcHRpb246ICcnLFxuICAgICAgICAkVHlwZURlZklkOiB0eXBlRGVmSWQsXG4gICAgICAgICRTdGF0ZTogJ05ldycsXG4gICAgICAgICRUeXBlOiAnQ29tbW9uLk1ldGFPYmplY3RXZWInLFxuICAgICAgICAkRmllbGREaWN0OiB7fVxuICAgIH07XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0TGF5b3V0OTRPYmplY3RJbmZvKCk6IExheW91dFNldHRpbmcge1xuICAgIHJldHVybiB7XG4gICAgICAgIFR5cGU6ICdSb290JyxcbiAgICAgICAgQ29udHJvbElkOiAn2LHbjNi02YcnLFxuICAgICAgICB4dHlwZTogJ0x5LkxheW91dENvbnRhaW5lcicsXG4gICAgICAgIEJvdW5kczogeyB4OiAwLCB5OiAwLCB3aWR0aDogNDMyLCBoZWlnaHQ6IDI0IH0sXG4gICAgICAgIGl0ZW1zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgVHlwZTogJ1ZlcnRpY2FsSm9pbicsXG4gICAgICAgICAgICAgICAgeHR5cGU6ICdMeS5MYXlvdXRKb2luJyxcbiAgICAgICAgICAgICAgICBJc1ZlcnRpY2FsOiB0cnVlLFxuICAgICAgICAgICAgICAgIEJvdW5kczogeyB4OiAwLCB5OiAwLCB3aWR0aDogNDMyLCBoZWlnaHQ6IDgyIH0sXG4gICAgICAgICAgICAgICAgaXRlbXM6IFtdXG4gICAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICB9O1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldEZvcm1TZXR0aW5ncyh0eXBlRGVmSWQ6IHN0cmluZyk6IEZvcm1TZXR0aW5nIHtcbiAgICBjb25zdCBtbyA9IEdldERlZmF1bHRNb09iamVjdEluZm8odHlwZURlZklkKTtcblxuICAgIGNvbnN0IGZvcm1QYW5lbFNldHRpbmdzOiBGb3JtU2V0dGluZyA9IHtcbiAgICAgICAgVmlldzoge1xuICAgICAgICAgICAgTGF5b3V0OTQ6IGdldExheW91dDk0T2JqZWN0SW5mbyxcbiAgICAgICAgICAgIENvbnRyb2xJbmZvOiBbXSxcbiAgICAgICAgICAgIFR5cGVEZWZJZDogdHlwZURlZklkXG4gICAgICAgIH0sXG4gICAgICAgIElzU2VhcmNoUGFuZWw6IHRydWUsXG4gICAgICAgIERhdGE6IHtcbiAgICAgICAgICAgIE1vOiBtb1xuICAgICAgICB9XG4gICAgfTtcbiAgICByZXR1cm4gZm9ybVBhbmVsU2V0dGluZ3M7XG59XG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRm9ybVBhbmVsTWV0YUNvbmRpdGlvbnMoXG4gICAgdHlwZURlZklkOiBzdHJpbmcsXG4gICAgY29udHJvbHNJbmZvOiBHZW5lcmFsQ29udHJvbEluZm9Nb2RlbFtdLFxuICAgIGNvbnRyb2xOYW1lOiBzdHJpbmcsXG4gICAgdmFsdWU6IGFueVxuKTogYW55IHtcbiAgICBjb25zdCBmb3JtU2V0dGluZ3MgPSBnZXRGb3JtU2V0dGluZ3ModHlwZURlZklkKTtcbiAgICBmb3JtU2V0dGluZ3MuVmlldy5Db250cm9sSW5mbyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoY29udHJvbHNJbmZvKSk7XG5cbiAgICBmb3JtU2V0dGluZ3MuVmlldy5MYXlvdXQ5NC5pdGVtc1swXS5pdGVtcy5wdXNoKC4uLmNvbnRyb2xzSW5mby5tYXAoKGMpID0+IGdldExheW91dENvbnRyb2woYy5Db250cm9sTmFtZSkpKTtcbiAgICBmb3JtU2V0dGluZ3MuRGF0YS5Nb1tjb250cm9sTmFtZV0gPSB2YWx1ZTtcbiAgICBjb25zdCBmb3JtUGFuZWxDdHJsciA9IG5ldyBCYXJzYUFwaS5VbC5Gb3JtUGFuZWxDdHJscih7XG4gICAgICAgIFNldHRpbmc6IGZvcm1TZXR0aW5ncyxcbiAgICAgICAgRmVhdHVyZXM6IHtcbiAgICAgICAgICAgIFdvcmtmbG93OiBmYWxzZSxcbiAgICAgICAgICAgIFRvb2xiYXI6IGZhbHNlLFxuICAgICAgICAgICAgSW5mb0JhcjogZmFsc2VcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBmb3JtUGFuZWxDdHJscjtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXROZXdNb0dyaWRFZGl0b3IoZm9ybVNldHRpbmdzOiBGb3JtU2V0dGluZywgdHlwZWRlZklkOiBzdHJpbmcpOiBQYXJ0aWFsPEZvcm1TZXR0aW5nPiB7XG4gICAgY29uc3QgbmV3Rm9ybVNldHRpbmdzOiBGb3JtU2V0dGluZyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZm9ybVNldHRpbmdzKSk7XG4gICAgcmV0dXJuIHsgLi4ubmV3Rm9ybVNldHRpbmdzLkRhdGEuTW8sICRUeXBlRGVmSWQ6IHR5cGVkZWZJZCB9O1xufVxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUdyaWRFZGl0b3JGb3JtUGFuZWwoXG4gICAgZm9ybVNldHRpbmdzOiBGb3JtU2V0dGluZyxcbiAgICBtbzogTWV0YW9iamVjdERhdGFNb2RlbCxcbiAgICB0eXBlZGVmOiBzdHJpbmcsXG4gICAgcmVsYXRpb246IGFueSxcbiAgICByZXdyaXRlTGF5b3V0OiBib29sZWFuID0gdHJ1ZVxuKTogYW55IHtcbiAgICBjb25zdCBuZXdGb3JtU2V0dGluZ3M6IEZvcm1TZXR0aW5nID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShmb3JtU2V0dGluZ3MpKTtcbiAgICBuZXdGb3JtU2V0dGluZ3MuRGF0YS5NbyA9IHsgLi4ubW8sICRUeXBlRGVmSWQ6IHR5cGVkZWYgfTtcbiAgICBpZiAocmV3cml0ZUxheW91dCkge1xuICAgICAgICBuZXdGb3JtU2V0dGluZ3MuVmlldy5MYXlvdXQ5NCA9IGdldExheW91dDk0T2JqZWN0SW5mbygpO1xuICAgICAgICBuZXdGb3JtU2V0dGluZ3MuVmlldy5MYXlvdXQ5NC5pdGVtc1swXS5pdGVtcy5wdXNoKFxuICAgICAgICAgICAgLi4ubmV3Rm9ybVNldHRpbmdzLlZpZXcuQ29udHJvbEluZm8ubWFwKChjKSA9PlxuICAgICAgICAgICAgICAgIGdldExheW91dENvbnRyb2woYy5Db250cm9sTmFtZSwgYy5Db250cm9sRmllbGRDYXB0aW9uVHJhbnNsYXRlZCwgZmFsc2UpXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IGZvcm1SZXF1ZXN0UGFyYW1zID0gbmV3IEJhcnNhQXBpLlVsLkZvcm1SZXF1ZXN0UGFyYW1zKHtcbiAgICAgICAgTW9JZDogbmV3Rm9ybVNldHRpbmdzLkRhdGEuTW8uSWQsXG4gICAgICAgIFR5cGVEZWZJZDogdHlwZWRlZixcbiAgICAgICAgUmVsYXRpb246IHJlbGF0aW9uXG4gICAgICAgIC8vIE1vQ29udGV4dDoge1xuICAgICAgICAvLyAgICAgUmVwb3J0SWQ6ICcnLFxuICAgICAgICAvLyAgICAgVmlld0lkOiAnJyxcbiAgICAgICAgLy8gICAgIFZpZXdOYW1lOiAnJyxcbiAgICAgICAgLy8gICAgIENvbmRGb3JtYXRpbmc6ICcnLFxuICAgICAgICAvLyAgICAgSW5jbHVkZUluUmVwb3J0OiAnJ1xuICAgICAgICAvLyB9XG4gICAgfSk7XG4gICAgY29uc3QgZm9ybVBhbmVsQ3RybHIgPSBuZXcgQmFyc2FBcGkuVWwuRm9ybVBhbmVsQ3RybHIoe1xuICAgICAgICBTZXR0aW5nOiBuZXdGb3JtU2V0dGluZ3MsXG4gICAgICAgIFJlbGF0aW9uOiByZWxhdGlvbixcbiAgICAgICAgRmVhdHVyZXM6IHtcbiAgICAgICAgICAgIFdvcmtmbG93OiBmYWxzZSxcbiAgICAgICAgICAgIFRvb2xiYXI6IGZhbHNlLFxuICAgICAgICAgICAgSW5mb0JhcjogZmFsc2VcbiAgICAgICAgfSxcbiAgICAgICAgRm9ybVJlcXVlc3RQYXJhbXM6IGZvcm1SZXF1ZXN0UGFyYW1zXG4gICAgfSk7XG4gICAgcmV0dXJuIGZvcm1QYW5lbEN0cmxyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TGF5b3V0Q29udHJvbChcbiAgICBjb250cm9sTmFtZTogc3RyaW5nLFxuICAgIGNvbnRyb2xDYXB0aW9uOiBzdHJpbmcgPSAnJyxcbiAgICBoaWRlOiBib29sZWFuID0gdHJ1ZVxuKTogUGFydGlhbDxHZW5lcmFsQ29udHJvbEluZm9Nb2RlbD4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIHh0eXBlOiAnTHkuTGF5b3V0Q29udHJvbCcsXG4gICAgICAgIFR5cGU6ICdMYXlvdXRDb250cm9sSXRlbScsXG4gICAgICAgIENvbnRyb2xJZDogY29udHJvbE5hbWUsXG4gICAgICAgIElzVmVydGljYWw6IGZhbHNlLFxuICAgICAgICBUZXh0TG9jYXRpb246ICdSaWdodCcsXG4gICAgICAgIFRleHRWaXNpYmxlOiBmYWxzZSxcbiAgICAgICAgVmlzaWJsZTogIWhpZGUsXG4gICAgICAgIGhpZGUsXG4gICAgICAgIFVzZUxheW91dEl0ZW1UZXh0Rm9yQ29udHJvbDogZmFsc2UsXG4gICAgICAgIENhcHRpb246IGNvbnRyb2xDYXB0aW9uLFxuICAgICAgICBBY2Nlc3NpYmxlTmFtZTogJycsXG4gICAgICAgIEJvdW5kczogeyB4OiAwLCB5OiAwLCB3aWR0aDogNDMyLCBoZWlnaHQ6IDI0IH0sXG4gICAgICAgIE1pblNpemU6IHsgd2lkdGg6IDg5LCBoZWlnaHQ6IDI0IH0sXG4gICAgICAgIE1heFNpemU6IHsgd2lkdGg6IDAsIGhlaWdodDogMjQgfSxcbiAgICAgICAgQ29udHJvbEJvdW5kczogeyB3aWR0aDogMzg4LCBoZWlnaHQ6IDIwIH0sXG4gICAgICAgIENvbnRyb2xNaW5TaXplOiB7IHdpZHRoOiA0NSwgaGVpZ2h0OiAyMCB9LFxuICAgICAgICBDb250cm9sTWF4U2l6ZTogeyB3aWR0aDogMCwgaGVpZ2h0OiAyMCB9LFxuICAgICAgICBQYWRkaW5nOiBbMiwgMiwgMiwgMl0sXG4gICAgICAgIExhYmVsU2l6ZTogeyB3aWR0aDogMzUsIGhlaWdodDogMTMgfSxcbiAgICAgICAgb3JpZ2luYWxYdHlwZTogJydcbiAgICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29udHJvbExpc3QoXG4gICAgbW86IE1ldGFvYmplY3REYXRhTW9kZWwsXG4gICAgY29udHJvbERiTmFtZXM6IHN0cmluZ1tdLFxuICAgIGlzU2VhcmNoUGFuZWw6IGJvb2xlYW4sXG4gICAgaXNHcmlkRWRpdG9yOiBib29sZWFuXG4pOiBQcm9taXNlPEdlbmVyYWxDb250cm9sSW5mb01vZGVsW10+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8R2VuZXJhbENvbnRyb2xJbmZvTW9kZWxbXT4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBCYXJzYUFwaS5Db21tb24uQWpheC5HZXRTZXJ2ZXJEYXRhKFxuICAgICAgICAgICAgJ0Zvcm05NC5HZXRDb250cm9sSW5mb3MnLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbnRyb2xJbmZvUGFyYW1ldGVyOiB7XG4gICAgICAgICAgICAgICAgICAgIEZpZWxkRGJOYW1lczogY29udHJvbERiTmFtZXMsXG4gICAgICAgICAgICAgICAgICAgIE1vOiBuZXcgQmFyc2FBcGkuQ29tbW9uLk1ldGFPYmplY3RXZWIobW8pLFxuICAgICAgICAgICAgICAgICAgICBJc1NlYXJjaFBhbmVsOiBpc1NlYXJjaFBhbmVsLFxuICAgICAgICAgICAgICAgICAgICBJc0dyaWRFZGl0b3I6IGlzR3JpZEVkaXRvclxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAobSkgPT4ge1xuICAgICAgICAgICAgICAgIHJlc29sdmUobSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKGVycikgPT4ge1xuICAgICAgICAgICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH0pO1xufVxuXG5leHBvcnQgdHlwZSBOelNhZmVBbnkgPSBhbnk7XG5leHBvcnQgdHlwZSBOdW1iZXJJbnB1dCA9IG51bWJlciB8IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGw7XG5leHBvcnQgaW50ZXJmYWNlIE5nU3R5bGVJbnRlcmZhY2Uge1xuICAgIFtrbGFzczogc3RyaW5nXTogTnpTYWZlQW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEluZGV4YWJsZU9iamVjdCB7XG4gICAgW2tleTogc3RyaW5nXTogTnpTYWZlQW55O1xufVxuZXhwb3J0IGZ1bmN0aW9uIHNoYWxsb3dFcXVhbChvYmpBPzogSW5kZXhhYmxlT2JqZWN0LCBvYmpCPzogSW5kZXhhYmxlT2JqZWN0KTogYm9vbGVhbiB7XG4gICAgaWYgKG9iakEgPT09IG9iakIpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBvYmpBICE9PSAnb2JqZWN0JyB8fCAhb2JqQSB8fCB0eXBlb2Ygb2JqQiAhPT0gJ29iamVjdCcgfHwgIW9iakIpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IGtleXNBID0gT2JqZWN0LmtleXMob2JqQSk7XG4gICAgY29uc3Qga2V5c0IgPSBPYmplY3Qua2V5cyhvYmpCKTtcblxuICAgIGlmIChrZXlzQS5sZW5ndGggIT09IGtleXNCLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgYkhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5iaW5kKG9iakIpO1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9wcmVmZXItZm9yLW9mXG4gICAgZm9yIChsZXQgaWR4ID0gMDsgaWR4IDwga2V5c0EubGVuZ3RoOyBpZHgrKykge1xuICAgICAgICBjb25zdCBrZXkgPSBrZXlzQVtpZHhdO1xuICAgICAgICBpZiAoIWJIYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9iakFba2V5XSAhPT0gb2JqQltrZXldKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbn1cbmV4cG9ydCBmdW5jdGlvbiB0b051bWJlcih2YWx1ZTogbnVtYmVyIHwgc3RyaW5nKTogbnVtYmVyO1xuZXhwb3J0IGZ1bmN0aW9uIHRvTnVtYmVyPEQ+KHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIGZhbGxiYWNrOiBEKTogbnVtYmVyIHwgRDtcbmV4cG9ydCBmdW5jdGlvbiB0b051bWJlcih2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBmYWxsYmFja1ZhbHVlOiBudW1iZXIgPSAwKTogbnVtYmVyIHtcbiAgICByZXR1cm4gX2lzTnVtYmVyVmFsdWUodmFsdWUpID8gTnVtYmVyKHZhbHVlKSA6IGZhbGxiYWNrVmFsdWU7XG59XG5mdW5jdGlvbiBwcm9wRGVjb3JhdG9yRmFjdG9yeTxULCBEPihcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgZmFsbGJhY2s6ICh2OiBUKSA9PiBEXG4pOiAodGFyZ2V0OiBOelNhZmVBbnksIHByb3BOYW1lOiBzdHJpbmcpID0+IHZvaWQge1xuICAgIGZ1bmN0aW9uIHByb3BEZWNvcmF0b3IoXG4gICAgICAgIHRhcmdldDogTnpTYWZlQW55LFxuICAgICAgICBwcm9wTmFtZTogc3RyaW5nLFxuICAgICAgICBvcmlnaW5hbERlc2NyaXB0b3I/OiBUeXBlZFByb3BlcnR5RGVzY3JpcHRvcjxOelNhZmVBbnk+XG4gICAgKTogTnpTYWZlQW55IHtcbiAgICAgICAgY29uc3QgcHJpdmF0ZVByb3BOYW1lID0gYCQkX196b3Jyb1Byb3BEZWNvcmF0b3JfXyR7cHJvcE5hbWV9YDtcblxuICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRhcmdldCwgcHJpdmF0ZVByb3BOYW1lKSkge1xuICAgICAgICAgICAgLy8gd2FybihgVGhlIHByb3AgXCIke3ByaXZhdGVQcm9wTmFtZX1cIiBpcyBhbHJlYWR5IGV4aXN0LCBpdCB3aWxsIGJlIG92ZXJyaWRlZCBieSAke25hbWV9IGRlY29yYXRvci5gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIHByaXZhdGVQcm9wTmFtZSwge1xuICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgd3JpdGFibGU6IHRydWVcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGdldCgpOiBzdHJpbmcge1xuICAgICAgICAgICAgICAgIHJldHVybiBvcmlnaW5hbERlc2NyaXB0b3IgJiYgb3JpZ2luYWxEZXNjcmlwdG9yLmdldFxuICAgICAgICAgICAgICAgICAgICA/IG9yaWdpbmFsRGVzY3JpcHRvci5nZXQuYmluZCh0aGlzKSgpXG4gICAgICAgICAgICAgICAgICAgIDogdGhpc1twcml2YXRlUHJvcE5hbWVdO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNldCh2YWx1ZTogVCk6IHZvaWQge1xuICAgICAgICAgICAgICAgIGlmIChvcmlnaW5hbERlc2NyaXB0b3IgJiYgb3JpZ2luYWxEZXNjcmlwdG9yLnNldCkge1xuICAgICAgICAgICAgICAgICAgICBvcmlnaW5hbERlc2NyaXB0b3Iuc2V0LmJpbmQodGhpcykoZmFsbGJhY2sodmFsdWUpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpc1twcml2YXRlUHJvcE5hbWVdID0gZmFsbGJhY2sodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBwcm9wRGVjb3JhdG9yO1xufVxuZXhwb3J0IGZ1bmN0aW9uIElucHV0TnVtYmVyKGZhbGxiYWNrVmFsdWU/OiBOelNhZmVBbnkpOiBOelNhZmVBbnkge1xuICAgIHJldHVybiBwcm9wRGVjb3JhdG9yRmFjdG9yeSgnSW5wdXROdW1iZXInLCAodmFsdWU6IHN0cmluZyB8IG51bWJlcikgPT4gdG9OdW1iZXIodmFsdWUsIGZhbGxiYWNrVmFsdWUpKTtcbn1cbmV4cG9ydCBlbnVtIEFmZml4UmVzcG9uZEV2ZW50cyB7XG4gICAgcmVzaXplID0gJ3Jlc2l6ZScsXG4gICAgc2Nyb2xsID0gJ3Njcm9sbCcsXG4gICAgdG91Y2hzdGFydCA9ICd0b3VjaHN0YXJ0JyxcbiAgICB0b3VjaG1vdmUgPSAndG91Y2htb3ZlJyxcbiAgICB0b3VjaGVuZCA9ICd0b3VjaGVuZCcsXG4gICAgcGFnZXNob3cgPSAncGFnZXNob3cnLFxuICAgIGxvYWQgPSAnTE9BRCdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgU2ltcGxlUmVjdCB7XG4gICAgdG9wOiBudW1iZXI7XG4gICAgbGVmdDogbnVtYmVyO1xuICAgIHdpZHRoPzogbnVtYmVyO1xuICAgIGhlaWdodD86IG51bWJlcjtcbiAgICBib3R0b20/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1RhcmdldFdpbmRvdyh0YXJnZXQ6IEVsZW1lbnQgfCBXaW5kb3cpOiB0YXJnZXQgaXMgV2luZG93IHtcbiAgICByZXR1cm4gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGFyZ2V0ID09PSB3aW5kb3c7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUYXJnZXRSZWN0KHRhcmdldDogRWxlbWVudCB8IFdpbmRvdyk6IFNpbXBsZVJlY3Qge1xuICAgIHJldHVybiAhaXNUYXJnZXRXaW5kb3codGFyZ2V0KVxuICAgICAgICA/IHRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgICAgICA6IHtcbiAgICAgICAgICAgICAgdG9wOiAwLFxuICAgICAgICAgICAgICBsZWZ0OiAwLFxuICAgICAgICAgICAgICBib3R0b206IDBcbiAgICAgICAgICB9O1xufVxuLyogZXNsaW50LWRpc2FibGUgbm8taW52YWxpZC10aGlzICovXG5leHBvcnQgY29uc3QgYXZhaWxhYmxlUHJlZml4ZXMgPSBbJ21veicsICdtcycsICd3ZWJraXQnXTtcblxuZXhwb3J0IGZ1bmN0aW9uIHJlcXVlc3RBbmltYXRpb25GcmFtZVBvbHlmaWxsKCk6IHR5cGVvZiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUge1xuICAgIGxldCBsYXN0VGltZSA9IDA7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChjYWxsYmFjazogRnJhbWVSZXF1ZXN0Q2FsbGJhY2spOiBhbnkge1xuICAgICAgICBjb25zdCBjdXJyVGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICAgICAgICBjb25zdCB0aW1lVG9DYWxsID0gTWF0aC5tYXgoMCwgMTYgLSAoY3VyclRpbWUgLSBsYXN0VGltZSkpO1xuICAgICAgICBjb25zdCBpZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgY2FsbGJhY2soY3VyclRpbWUgKyB0aW1lVG9DYWxsKTtcbiAgICAgICAgfSwgdGltZVRvQ2FsbCk7XG4gICAgICAgIGxhc3RUaW1lID0gY3VyclRpbWUgKyB0aW1lVG9DYWxsO1xuICAgICAgICByZXR1cm4gaWQ7XG4gICAgfTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBFeGVjdXRlRHluYW1pY0NvbW1hbmQoY29tbWFuZDogeyBJZDogc3RyaW5nIH0sIG1vOiBNZXRhb2JqZWN0RGF0YU1vZGVsIHwgbnVsbCA9IG51bGwpOiB2b2lkIHtcbiAgICBjb25zdCBlID0geyBjb21tYW5kLCBEeW5hbWljU2V0dGluZzogbW8sIE1vOiBtbyB9O1xuICAgIEJhcnNhQXBpLkNvbW1vbi5DdXN0b21Db2RlTWFuYWdlci5SdW5EeW5hbWljQ29tbWFuZChjb21tYW5kLklkLCBlKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBFeGVjdXRlV29ya2Zsb3dDaG9pY2VEZWYoc2NvcGUsIHBhcmFtLCBzdWNjZXNzOiAocmVzdWx0KSA9PiB2b2lkLCBmYWlsZWQ6IChlcnJvcikgPT4gdm9pZCk6IHZvaWQge1xuICAgIEJhcnNhQXBpLkNvbW1vbi5BamF4LkdldFNlcnZlckRhdGEoXG4gICAgICAgICdXb3JrZmxvdzk0LkNob2ljZVNlbGVjdCcsXG4gICAgICAgIHBhcmFtLFxuICAgICAgICAocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICBzdWNjZXNzKHJlc3VsdCk7XG4gICAgICAgIH0sIC8vIHN1Y2Nlc3NcbiAgICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgICAgICBmYWlsZWQoZXJyb3IpO1xuICAgICAgICB9LCAvLyAgZXJyb3JcbiAgICAgICAgKCkgPT4ge30sIC8vIGRvUmV0dXJuXG4gICAgICAgIHNjb3BlLFxuICAgICAgICB0cnVlXG4gICAgKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKTogdHlwZW9mIHJlcXVlc3RBbmltYXRpb25GcmFtZSB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHJldHVybiAoKSA9PiAwO1xuICAgIH1cbiAgICBpZiAod2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSkge1xuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vdnVlanMvdnVlL2lzc3Vlcy80NDY1XG4gICAgICAgIHJldHVybiB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lLmJpbmQod2luZG93KTtcbiAgICB9XG5cbiAgICBjb25zdCBwcmVmaXggPSBhdmFpbGFibGVQcmVmaXhlcy5maWx0ZXIoKGtleSkgPT4gYCR7a2V5fVJlcXVlc3RBbmltYXRpb25GcmFtZWAgaW4gd2luZG93KVswXTtcblxuICAgIHJldHVybiBwcmVmaXggPyAod2luZG93IGFzIE56U2FmZUFueSlbYCR7cHJlZml4fVJlcXVlc3RBbmltYXRpb25GcmFtZWBdIDogcmVxdWVzdEFuaW1hdGlvbkZyYW1lUG9seWZpbGwoKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBjYW5jZWxSZXF1ZXN0QW5pbWF0aW9uRnJhbWUoaWQ6IG51bWJlcik6IE56U2FmZUFueSB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBpZiAod2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKSB7XG4gICAgICAgIHJldHVybiB3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUoaWQpO1xuICAgIH1cbiAgICBjb25zdCBwcmVmaXggPSBhdmFpbGFibGVQcmVmaXhlcy5maWx0ZXIoXG4gICAgICAgIChrZXkpID0+IGAke2tleX1DYW5jZWxBbmltYXRpb25GcmFtZWAgaW4gd2luZG93IHx8IGAke2tleX1DYW5jZWxSZXF1ZXN0QW5pbWF0aW9uRnJhbWVgIGluIHdpbmRvd1xuICAgIClbMF07XG5cbiAgICByZXR1cm4gcHJlZml4XG4gICAgICAgID8gKFxuICAgICAgICAgICAgICAod2luZG93IGFzIE56U2FmZUFueSlbYCR7cHJlZml4fUNhbmNlbEFuaW1hdGlvbkZyYW1lYF0gfHxcbiAgICAgICAgICAgICAgKHdpbmRvdyBhcyBOelNhZmVBbnkpW2Ake3ByZWZpeH1DYW5jZWxSZXF1ZXN0QW5pbWF0aW9uRnJhbWVgXVxuICAgICAgICAgIClcbiAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAuY2FsbCh0aGlzLCBpZClcbiAgICAgICAgOiBjbGVhclRpbWVvdXQoaWQpO1xufVxuXG5leHBvcnQgdHlwZSBFYXN5aW5nRm4gPSAodDogbnVtYmVyLCBiOiBudW1iZXIsIGM6IG51bWJlciwgZDogbnVtYmVyKSA9PiBudW1iZXI7XG5cbmV4cG9ydCBmdW5jdGlvbiBlYXNlSW5PdXRDdWJpYyh0OiBudW1iZXIsIGI6IG51bWJlciwgYzogbnVtYmVyLCBkOiBudW1iZXIpOiBudW1iZXIge1xuICAgIGNvbnN0IGNjID0gYyAtIGI7XG4gICAgbGV0IHR0ID0gdCAvIChkIC8gMik7XG4gICAgaWYgKHR0IDwgMSkge1xuICAgICAgICByZXR1cm4gKGNjIC8gMikgKiB0dCAqIHR0ICogdHQgKyBiO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiAoY2MgLyAyKSAqICgodHQgLT0gMikgKiB0dCAqIHR0ICsgMikgKyBiO1xuICAgIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBOelNjcm9sbFRvT3B0aW9ucyB7XG4gICAgLyoqIEFuaW1hdGlvbiBkdXJhdGlvbiwgZGVmYXVsdCBhcyA0NTAgKi9cbiAgICBkdXJhdGlvbj86IG51bWJlcjtcbiAgICAvKiogU2Nyb2xsIGNvbnRhaW5lciwgZGVmYXVsdCBhcyB3aW5kb3cgKi9cbiAgICBlYXNpbmc/OiBFYXN5aW5nRm47XG4gICAgLyoqIFNjcm9sbCBlbmQgY2FsbGJhY2sgKi9cbiAgICBjYWxsYmFjaz8oKTogdm9pZDtcbn1cbmV4cG9ydCBjb25zdCBXb3JkTWltZVR5cGUgPVxuICAgICcuZG9jLC5kb2N4LGFwcGxpY2F0aW9uL21zd29yZCxhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5kb2N1bWVudCc7XG5leHBvcnQgY29uc3QgSW1hZ2VNaW1lVHlwZSA9ICcuanBlZywuanBnLC5naWYsLnBuZywuYm1wLC50aWYsaW1hZ2UvKic7XG5leHBvcnQgY29uc3QgUGRmTWltZVR5cGUgPSAnLnBkZic7XG5leHBvcnQgY29uc3QgQWxsRmlsZXNNaW1lVHlwZSA9ICcudHh0LC5wcHQsLnBkZiwuKic7XG5leHBvcnQgY29uc3QgVmlkZW9NaW1lVHlwZSA9ICd2aWRlby8qJztcbmV4cG9ydCBjb25zdCBBdWRpb01pbWVUeXBlID0gJ2F1ZGlvLyonO1xuIl19
|
|
477
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etbm92aW4tcmF5LWNvcmUvc3JjL2xpYi9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0JBQW9CO0FBQ3BCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFXeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFlLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEcsT0FBTyxLQUFLLE1BQU0sTUFBTSxVQUFVLENBQUM7QUFHbkMsTUFBTSxVQUFVLG9CQUFvQixDQUFDLFlBQWlCLEVBQUUsVUFBa0I7SUFDdEUsSUFBSSxZQUFZLEVBQUU7UUFDZCxNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsVUFBVSxvQ0FBb0MsVUFBVSx5QkFBeUIsQ0FBQyxDQUFDO0tBQ3pHO0FBQ0wsQ0FBQztBQUNELE1BQU0sVUFBVSxpQkFBaUI7SUFDN0IsT0FBTyxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0FBQy9DLENBQUM7QUFDRCxNQUFNLFVBQVUscUJBQXFCLENBQUMsS0FBYSxFQUFFLFlBQW9CO0lBQ3JFLFFBQVEsS0FBSyxFQUFFO1FBQ1gsS0FBSyxHQUFHO1lBQ0osT0FBTyxHQUFHLENBQUM7UUFDZixLQUFLLEdBQUc7WUFDSixPQUFPLEdBQUcsQ0FBQztRQUNmLEtBQUssR0FBRztZQUNKLE9BQU8sR0FBRyxDQUFDO1FBQ2Y7WUFDSSxPQUFPLFlBQVksQ0FBQztLQUMzQjtBQUNMLENBQUM7QUFDRCxNQUFNLFVBQVUsV0FBVyxDQUFDLEtBQWE7SUFDckMsTUFBTSxTQUFTLEdBQWEsRUFBRSxDQUFDO0lBQy9CLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFF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WSxHQUNyQix1R0FBdUcsQ0FBQztBQUM1RyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsd0NBQXdDLENBQUM7QUFDdEUsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQztBQUNsQyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxtQkFBbUIsQ0FBQztBQUNwRCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsU0FBUyxDQUFDO0FBQ3ZDLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSAqL1xyXG5pbXBvcnQgeyBfaXNOdW1iZXJWYWx1ZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XHJcbmltcG9ydCB7IEJhcnNhQXBpIH0gZnJvbSAnLi9hYnN0cmFjdC1jbGFzc2VzL2JhcnNhLWFwaSc7XHJcbmltcG9ydCB7XHJcbiAgICBBYmJyZXZhdGlvbkRldmljZVNpemUsXHJcbiAgICBDb2xTZXR0aW5nLFxyXG4gICAgRm9ybVNldHRpbmcsXHJcbiAgICBHZW5lcmFsQ29udHJvbEluZm9Nb2RlbCxcclxuICAgIEdyaWRTZXR0aW5nLFxyXG4gICAgTGF5b3V0U2V0dGluZyxcclxuICAgIE1ldGFvYmplY3REYXRhTW9kZWwsXHJcbiAgICBSZXBvcnRWaWV3Q29sdW1uXHJcbn0gZnJvbSAnLi9hYnN0cmFjdC1jbGFzc2VzL21vZGVscyc7XHJcbmltcG9ydCB7IERhdGVIaWpyaVNlcnZpY2UsIERhdGVNaWxhZGlTZXJ2aWNlLCBEYXRlU2VydmljZSwgRGF0ZVNoYW1zaVNlcnZpY2UgfSBmcm9tICcuL2RhdGUtc2VydmljZXMnO1xyXG5pbXBvcnQgKiBhcyBEZXZpY2UgZnJvbSAnLi9kZXZpY2UnO1xyXG5pbXBvcnQgeyBMb2dTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9sb2cuc2VydmljZSc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdGhyb3dJZkFscmVhZHlMb2FkZWQocGFyZW50TW9kdWxlOiBhbnksIG1vZHVsZU5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgaWYgKHBhcmVudE1vZHVsZSkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgJHttb2R1bGVOYW1lfSBoYXMgYWxyZWFkeSBiZWVuIGxvYWRlZC4gSW1wb3J0ICR7bW9kdWxlTmFtZX0gaW4gdGhlIEFwcE1vZHVsZSBvbmx5LmApO1xyXG4gICAgfVxyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBnZW5yYXRlSW5saW5lTW9JZCgpIHtcclxuICAgIHJldHVybiAoQmFyc2FBcGkuaWRHZW5lcmF0b3ItLSkudG9TdHJpbmcoKTtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gZW51bVZhbHVlVG9TdHJpbmdTaXplKHZhbHVlOiBzdHJpbmcsIGRlZmF1bHRWYWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHN3aXRjaCAodmFsdWUpIHtcclxuICAgICAgICBjYXNlICcxJzpcclxuICAgICAgICAgICAgcmV0dXJuICdzJztcclxuICAgICAgICBjYXNlICcyJzpcclxuICAgICAgICAgICAgcmV0dXJuICdtJztcclxuICAgICAgICBjYXNlICczJzpcclxuICAgICAgICAgICAgcmV0dXJuICdsJztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlO1xyXG4gICAgfVxyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRVbmlxdWVJZChwYXJ0czogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHN0cmluZ0Fycjogc3RyaW5nW10gPSBbXTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcGFydHM7IGkrKykge1xyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1iaXR3aXNlXHJcbiAgICAgICAgY29uc3QgUzQgPSAoKCgxICsgTWF0aC5yYW5kb20oKSkgKiAweDEwMDAwKSB8IDApLnRvU3RyaW5nKDE2KTtcclxuICAgICAgICBjb25zdCBTNF86IHN0cmluZyA9IFM0Lmxlbmd0aCA+IDAgPyBTNC5zdWJzdHJpbmcoMSkgOiAnJztcclxuICAgICAgICBzdHJpbmdBcnIucHVzaChTNF8pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHN0cmluZ0Fyci5qb2luKCctJyk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXREYXRlU2VydmljZShsb2dTZXJ2aWNlOiBMb2dTZXJ2aWNlLCBjdWx0dXJlPyk6IERhdGVTZXJ2aWNlIHtcclxuICAgIGNvbnN0IGRlZmF1bHRDdWx0dXJlID0gY3VsdHVyZSA/PyBCYXJzYUFwaS5Mb2dpbkZvcm1EYXRhLkN1bHR1cmU7XHJcbiAgICBzd2l0Y2ggKGRlZmF1bHRDdWx0dXJlKSB7XHJcbiAgICAgICAgY2FzZSAnZmEtSVInOlxyXG4gICAgICAgICAgICByZXR1cm4gbmV3IERhdGVTaGFtc2lTZXJ2aWNlKGxvZ1NlcnZpY2UpO1xyXG4gICAgICAgIGNhc2UgJ2FyLUFFJzpcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlSGlqcmlTZXJ2aWNlKGxvZ1NlcnZpY2UpO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZU1pbGFkaVNlcnZpY2UobG9nU2VydmljZSk7XHJcbiAgICB9XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIGlzRmlyZWZveCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkuaW5kZXhPZignZmlyZWZveCcpID4gLTE7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEltYWdlUGF0aChcclxuICAgIHR5cGU6IHN0cmluZyxcclxuICAgIG1vSWQ6IHN0cmluZyB8IG51bGwsXHJcbiAgICBmaWxlSWQ6IHN0cmluZyxcclxuICAgIGZpZWxkRGVmSWQ/OiBzdHJpbmcsXHJcbiAgICBzaXplPzogbnVtYmVyLFxyXG4gICAgc2l6ZUg/OiBudW1iZXJcclxuKTogc3RyaW5nIHtcclxuICAgIG1vSWQgPSBtb0lkID09IG51bGwgPyAnJyA6IGVuY29kZVVSSUNvbXBvbmVudChtb0lkKTtcclxuICAgIGZpbGVJZCA9IGZpbGVJZCA9PSBudWxsID8gJycgOiBlbmNvZGVVUklDb21wb25lbnQoZmlsZUlkKTtcclxuICAgIGZpZWxkRGVmSWQgPSBmaWVsZERlZklkID09IG51bGwgPyAnJyA6IGVuY29kZVVSSUNvbXBvbmVudChmaWVsZERlZklkKTtcclxuICAgIHNpemUgPSBzaXplID09IG51bGwgPyAxMjggOiBzaXplO1xyXG4gICAgc2l6ZUggPSBzaXplSCA9PSBudWxsID8gc2l6ZSA6IHNpemVIO1xyXG4gICAgY29uc3QgdXJsID0gYC9JSC5hc2h4P3R5PSR7dHlwZX0mbW9JZD0ke21vSWR9JmlkPSR7ZmlsZUlkfSZmZElkPSR7ZmllbGREZWZJZH0mc2k9JHtzaXplfSZzaUg9JHtzaXplSH1gO1xyXG4gICAgcmV0dXJuIHVybDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGlzRnVuY3Rpb24oZnVuY3Rpb25Ub0NoZWNrKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gZnVuY3Rpb25Ub0NoZWNrICYmIHt9LnRvU3RyaW5nLmNhbGwoZnVuY3Rpb25Ub0NoZWNrKSA9PT0gJ1tvYmplY3QgRnVuY3Rpb25dJztcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gRGV2aWNlV2lkdGgoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB3aW5kb3cuaW5uZXJXaWR0aCA+IDAgPyB3aW5kb3cuaW5uZXJXaWR0aCA6IHNjcmVlbi53aWR0aDtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0SGVhZGVyVmFsdWUoZmllbGRWYWx1ZSk6IGFueSB7XHJcbiAgICBpZiAodHlwZW9mIGZpZWxkVmFsdWUgIT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgcmV0dXJuIGZpZWxkVmFsdWU7XHJcbiAgICB9XHJcbiAgICBjb25zdCB2YWx1ZSA9IGZpZWxkVmFsdWUuVmFsdWU7XHJcbiAgICBjb25zdCB2YWx1ZUNhcHRpb246IHN0cmluZyA9IGZpZWxkVmFsdWUuVmFsdWUkQ2FwdGlvbjtcclxuICAgIGxldCB2YWx1ZU9iamVjdENhcHRpb24gPSBudWxsO1xyXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICB2YWx1ZU9iamVjdENhcHRpb24gPSBmaWVsZFZhbHVlLlZhbHVlLiRDYXB0aW9uO1xyXG4gICAgfVxyXG4gICAgaWYgKHZhbHVlT2JqZWN0Q2FwdGlvbikge1xyXG4gICAgICAgIHJldHVybiB2YWx1ZU9iamVjdENhcHRpb247XHJcbiAgICB9XHJcbiAgICBpZiAodmFsdWVDYXB0aW9uICYmICF2YWx1ZUNhcHRpb24uc3RhcnRzV2l0aCgndG1wJykpIHtcclxuICAgICAgICByZXR1cm4gdmFsdWVDYXB0aW9uO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHZhbHVlO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBlbGVtZW50SW5WaWV3cG9ydDIoZWw6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IHRvcCA9IGVsLm9mZnNldFRvcDtcclxuICAgIGxldCBsZWZ0ID0gZWwub2Zmc2V0TGVmdDtcclxuICAgIGNvbnN0IHdpZHRoID0gZWwub2Zmc2V0V2lkdGg7XHJcbiAgICBjb25zdCBoZWlnaHQgPSBlbC5vZmZzZXRIZWlnaHQ7XHJcblxyXG4gICAgd2hpbGUgKGVsLm9mZnNldFBhcmVudCkge1xyXG4gICAgICAgIGVsID0gZWwub2Zmc2V0UGFyZW50O1xyXG4gICAgICAgIHRvcCArPSBlbC5vZmZzZXRUb3A7XHJcbiAgICAgICAgbGVmdCArPSBlbC5vZmZzZXRMZWZ0O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiAoXHJcbiAgICAgICAgdG9wIDwgd2luZG93LnBhZ2VZT2Zmc2V0ICsgd2luZG93LmlubmVySGVpZ2h0ICYmXHJcbiAgICAgICAgbGVmdCA8IHdpbmRvdy5wYWdlWE9mZnNldCArIHdpbmRvdy5pbm5lcldpZHRoICYmXHJcbiAgICAgICAgdG9wICsgaGVpZ2h0ID4gd2luZG93LnBhZ2VZT2Zmc2V0ICYmXHJcbiAgICAgICAgbGVmdCArIHdpZHRoID4gd2luZG93LnBhZ2VYT2Zmc2V0XHJcbiAgICApO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBQcmV2ZW50RGVmYXVsRXZlbnQoZSk6IHZvaWQge1xyXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGUucHJldmVudERlZmF1bHQoKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldENvbXBvbmVudERlZmluZWQoXHJcbiAgICBjb250cm9sVWk6IHsgb3JpZ2luYWxYdHlwZTogc3RyaW5nIH0sXHJcbiAgICBjdXN0b21VaVNldHRpbmc6IHsgTW9kdWxlOiBzdHJpbmc7IE5hbWU6IHN0cmluZzsgU2VsZWN0b3I6IHN0cmluZyB9XHJcbik6IHtcclxuICAgIG1vZHVsZU5hbWU6IHN0cmluZztcclxuICAgIG1vZHVsZVBhdGg6IHN0cmluZztcclxuICAgIGNvbXBvbmVudE5hbWU6IHN0cmluZztcclxuICAgIHNlbGVjdG9yOiBzdHJpbmc7XHJcbn0ge1xyXG4gICAgbGV0IG1vZHVsZU5hbWUgPSBCYXJzYUFwaS5Mb2dpbkZvcm1EYXRhLkRlZmF1bHRVaU1vZHVsZTtcclxuICAgIGxldCBtb2R1bGVLZWJhYk5hbWUgPSBCYXJzYUFwaS5Db21tb24uVXRpbC5HZXRLZWJhYkNhc2UobW9kdWxlTmFtZSk7XHJcbiAgICBsZXQgY29tcG9uZW50TmFtZSA9IGNvbnRyb2xVaS5vcmlnaW5hbFh0eXBlLnJlcGxhY2UoJy4nLCAnJykucmVwbGFjZSgnXycsICcnKTtcclxuICAgIGxldCBzZWxlY3Rvcjogc3RyaW5nID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuR2V0S2ViYWJDYXNlKGNvbXBvbmVudE5hbWUpO1xyXG4gICAgc2VsZWN0b3IgPSBzZWxlY3Rvci5zdWJzdHJpbmcoMSwgc2VsZWN0b3IubGVuZ3RoKTtcclxuICAgIHNlbGVjdG9yID0gQmFyc2FBcGkuTG9naW5Gb3JtRGF0YS5DdXN0b21VaVByZWZpeCArICctJyArIHNlbGVjdG9yO1xyXG4gICAgaWYgKGN1c3RvbVVpU2V0dGluZyAmJiBjdXN0b21VaVNldHRpbmcuTW9kdWxlKSB7XHJcbiAgICAgICAgbW9kdWxlTmFtZSA9IGN1c3RvbVVpU2V0dGluZy5Nb2R1bGU7XHJcbiAgICAgICAgbW9kdWxlS2ViYWJOYW1lID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuR2V0S2ViYWJDYXNlKG1vZHVsZU5hbWUpO1xyXG4gICAgICAgIGNvbXBvbmVudE5hbWUgPSBjdXN0b21VaVNldHRpbmcuTmFtZTtcclxuICAgICAgICBzZWxlY3RvciA9IGN1c3RvbVVpU2V0dGluZy5TZWxlY3RvcjtcclxuICAgIH1cclxuICAgIGNvbnN0IG1vZHVsZVBhdGggPSBtb2R1bGVLZWJhYk5hbWUuc2xpY2UoMSwgbW9kdWxlS2ViYWJOYW1lLmxlbmd0aCk7XHJcbiAgICByZXR1cm4geyBtb2R1bGVOYW1lLCBtb2R1bGVQYXRoLCBjb21wb25lbnROYW1lLCBzZWxlY3RvciB9O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGV2aWNlSXNQaG9uZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBEZXZpY2UuaXNQaG9uZSgpO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBnZXREZXZpY2VJc0Rlc2t0b3AoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gRGV2aWNlLmlzVGFibGV0KCk7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIGdldERldmljZUlzVGFibGV0KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIERldmljZS5pc1RhYmxldCgpO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBnZXREZXZpY2VJc01vYmlsZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoJ21vYmknKSA+IDAgfHwgZ2V0RGV2aWNlSXNQaG9uZSgpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29udHJvbFNpemVNb2RlKGVsOiBIVE1MRWxlbWVudCwgZGV2aWNlU2l6ZTogJ3MnIHwgJ20nIHwgJ2wnIHwgJ3hsJyA9ICdsJyk6IEFiYnJldmF0aW9uRGV2aWNlU2l6ZSB7XHJcbiAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IGVsLm9mZnNldFdpZHRoO1xyXG4gICAgaWYgKGNvbnRhaW5lcldpZHRoID09PSAwKSB7XHJcbiAgICAgICAgcmV0dXJuIGRldmljZVNpemU7XHJcbiAgICB9XHJcbiAgICBpZiAoZGV2aWNlU2l6ZSA9PT0gJ3MnIHx8IGNvbnRhaW5lcldpZHRoIDwgNjAwKSB7XHJcbiAgICAgICAgZGV2aWNlU2l6ZSA9ICdzJztcclxuICAgIH0gZWxzZSBpZiAoZGV2aWNlU2l6ZSA9PT0gJ20nIHx8IChjb250YWluZXJXaWR0aCA+IDYwMCAmJiBjb250YWluZXJXaWR0aCA8IDEyMDApKSB7XHJcbiAgICAgICAgZGV2aWNlU2l6ZSA9ICdtJztcclxuICAgIH1cclxuICAgIHJldHVybiBkZXZpY2VTaXplO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0Qnl0ZXMoXHJcbiAgICBieXRlcyxcclxuICAgIGRlY2ltYWxzID0gMixcclxuICAgIHNpemU6ICdCeXRlcycgfCAnS0InIHwgJ01CJyB8ICdHQicgfCAnVEInIHwgJ1BCJyB8ICdFQicgfCAnWkInIHwgJ1lCJ1xyXG4pOiBzdHJpbmcge1xyXG4gICAgaWYgKGJ5dGVzID09PSAwKSB7XHJcbiAgICAgICAgcmV0dXJuICcwIEJ5dGVzJztcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBrID0gMTAyNDtcclxuICAgIGNvbnN0IGRtID0gZGVjaW1hbHMgPCAwID8gMCA6IGRlY2ltYWxzO1xyXG4gICAgY29uc3Qgc2l6ZXMgPSBbJ0J5dGVzJywgJ0tCJywgJ01CJywgJ0dCJywgJ1RCJywgJ1BCJywgJ0VCJywgJ1pCJywgJ1lCJ107XHJcbiAgICBjb25zdCBpID0gc2l6ZXMuZmluZEluZGV4KChjKSA9PiBjID09PSBzaXplKTtcclxuICAgIHJldHVybiBwYXJzZUZsb2F0KChieXRlcyAvIE1hdGgucG93KGssIGkpKS50b0ZpeGVkKGRtKSkgKyAnICcgKyBzaXplc1tpXTtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0VmFsaWRFeHRlbnNpb24odmFsaWRFeHRlbnNpb25zKTogc3RyaW5nIHtcclxuICAgIGxldCBfdmFsaWRFeHRlbnNpb25zID0gJyc7XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWxpZEV4dGVuc2lvbnMpKSB7XHJcbiAgICAgICAgX3ZhbGlkRXh0ZW5zaW9ucyA9IHZhbGlkRXh0ZW5zaW9ucy5tYXAoKGMpID0+ICcuJyArIGMuRXh0ZW5zaW9uKS5qb2luKCcsJyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gX3ZhbGlkRXh0ZW5zaW9ucztcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0SWNvbih0eXBlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIEJhcnNhQXBpLkNvbW1vbi5GaWxlLkZpbGVJY29uRGljdDEyOFt0eXBlXTtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gaXNJbWFnZSh0eXBlKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXR5cGUpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICB0eXBlID0gdHlwZS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgcmV0dXJuIFsnaW1nJywgJ3BuZycsICdqcGVnJywgJ2pwZycsICdnaWYnLCAnYm1wJywgJ3RpZmYnLCAnaW1hZ2UnXS5pbmRleE9mKHR5cGUpID4gLTE7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBHZXRBbGxDb2x1bW5zU29ydGVkKGNvbnRleHQpOiBBcnJheTxSZXBvcnRWaWV3Q29sdW1uPiB7XHJcbiAgICBjb25zdCBhbGxDb2x1bW5zID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUoY29udGV4dCwgJ1NldHRpbmcuVmlldy5Db2x1bW5zJywgW10pLmZpbHRlcihcclxuICAgICAgICAoYykgPT4gYy5OYW1lICE9PSAnSWQnICYmIGMuTmFtZSAhPT0gJyRTdHlsZUluZGV4JyAmJiAhYy5IaWRkZW5cclxuICAgICk7XHJcblxyXG4gICAgY29uc3QgY29sTGlzdDogQ29sU2V0dGluZ1tdID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUoXHJcbiAgICAgICAgY29udGV4dCxcclxuICAgICAgICAnU2V0dGluZy5WaWV3LkdyaWRTZXR0aW5nLkNvbFNldHRpbmdMaXN0JyxcclxuICAgICAgICBbXVxyXG4gICAgKTtcclxuICAgIGNvbnN0IGNvbHVtbnMgPSBuZXcgQXJyYXk8UmVwb3J0Vmlld0NvbHVtbj4oKTtcclxuICAgIGNvbExpc3QuZm9yRWFjaCgoY29sUykgPT4ge1xyXG4gICAgICAgIGNvbnN0IGNvbHVtbiA9IGFsbENvbHVtbnMuZmluZCgoYykgPT4gYy5OYW1lID09PSBjb2xTLk5hbWUpO1xyXG4gICAgICAgIGlmIChjb2x1bW4pIHtcclxuICAgICAgICAgICAgY29sdW1ucy5wdXNoKHsgLi4uY29sdW1uLCBIaWRkZW46IGNvbFMuSXNIaWRkZW4sIFdpZHRoOiBjb2xTLldpZHRoIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgYWxsQ29sdW1ucy5mb3JFYWNoKChjb2x1bW4sIGluZGV4KSA9PiB7XHJcbiAgICAgICAgY29uc3QgY29sU2V0dGluZyA9IGNvbExpc3QuZmluZCgoYykgPT4gYy5OYW1lID09PSBjb2x1bW4uTmFtZSk7XHJcbiAgICAgICAgaWYgKCFjb2xTZXR0aW5nKSB7XHJcbiAgICAgICAgICAgIGNvbHVtbnMuc3BsaWNlKGluZGV4LCAwLCB7IC4uLmNvbHVtbiwgSGlkZGVuOiBjb2xMaXN0Lmxlbmd0aCA+IDAgPyB0cnVlIDogZmFsc2UgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gY29sdW1ucztcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0R3JpZFNldHRpbmdzKGNvbnRleHQpOiBHcmlkU2V0dGluZyB7XHJcbiAgICBjb25zdCBncmlkU2V0dGluZyA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKGNvbnRleHQsICdTZXR0aW5nLlZpZXcuR3JpZFNldHRpbmcnLCBudWxsKTtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgQ29sU2V0dGluZ0xpc3Q6IGdyaWRTZXR0aW5nPy5Db2xTZXR0aW5nTGlzdCA/PyBudWxsLFxyXG4gICAgICAgIFNvcnRTZXR0aW5nTGlzdDogZ3JpZFNldHRpbmc/LlNvcnRTZXR0aW5nTGlzdCA/PyBbXSxcclxuICAgICAgICBBdXRvU2l6ZUNvbHVtbnM6IGdyaWRTZXR0aW5nPy5BdXRvU2l6ZUNvbHVtbnMgPz8gZmFsc2VcclxuICAgIH07XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIEdldERlZmF1bHRNb09iamVjdEluZm8odHlwZURlZklkOiBzdHJpbmcpOiBNZXRhb2JqZWN0RGF0YU1vZGVsIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgSWQ6ICcwJyxcclxuICAgICAgICAkQ2FwdGlvbjogJycsXHJcbiAgICAgICAgJFR5cGVEZWZJZDogdHlwZURlZklkLFxyXG4gICAgICAgICRTdGF0ZTogJ05ldycsXHJcbiAgICAgICAgJFR5cGU6ICdDb21tb24uTWV0YU9iamVjdFdlYicsXHJcbiAgICAgICAgJEZpZWxkRGljdDoge31cclxuICAgIH07XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIGdldExheW91dDk0T2JqZWN0SW5mbygpOiBMYXlvdXRTZXR0aW5nIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgVHlwZTogJ1Jvb3QnLFxyXG4gICAgICAgIENvbnRyb2xJZDogJ9ix24zYtNmHJyxcclxuICAgICAgICB4dHlwZTogJ0x5LkxheW91dENvbnRhaW5lcicsXHJcbiAgICAgICAgQm91bmRzOiB7IHg6IDAsIHk6IDAsIHdpZHRoOiA0MzIsIGhlaWdodDogMjQgfSxcclxuICAgICAgICBpdGVtczogW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBUeXBlOiAnVmVydGljYWxKb2luJyxcclxuICAgICAgICAgICAgICAgIHh0eXBlOiAnTHkuTGF5b3V0Sm9pbicsXHJcbiAgICAgICAgICAgICAgICBJc1ZlcnRpY2FsOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgQm91bmRzOiB7IHg6IDAsIHk6IDAsIHdpZHRoOiA0MzIsIGhlaWdodDogODIgfSxcclxuICAgICAgICAgICAgICAgIGl0ZW1zOiBbXVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgXVxyXG4gICAgfTtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9ybVNldHRpbmdzKHR5cGVEZWZJZDogc3RyaW5nKTogRm9ybVNldHRpbmcge1xyXG4gICAgY29uc3QgbW8gPSBHZXREZWZhdWx0TW9PYmplY3RJbmZvKHR5cGVEZWZJZCk7XHJcblxyXG4gICAgY29uc3QgZm9ybVBhbmVsU2V0dGluZ3M6IEZvcm1TZXR0aW5nID0ge1xyXG4gICAgICAgIFZpZXc6IHtcclxuICAgICAgICAgICAgTGF5b3V0OTQ6IGdldExheW91dDk0T2JqZWN0SW5mbyxcclxuICAgICAgICAgICAgQ29udHJvbEluZm86IFtdLFxyXG4gICAgICAgICAgICBUeXBlRGVmSWQ6IHR5cGVEZWZJZFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgSXNTZWFyY2hQYW5lbDogdHJ1ZSxcclxuICAgICAgICBEYXRhOiB7XHJcbiAgICAgICAgICAgIE1vOiBtb1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICByZXR1cm4gZm9ybVBhbmVsU2V0dGluZ3M7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUZvcm1QYW5lbE1ldGFDb25kaXRpb25zKFxyXG4gICAgdHlwZURlZklkOiBzdHJpbmcsXHJcbiAgICBjb250cm9sc0luZm86IEdlbmVyYWxDb250cm9sSW5mb01vZGVsW10sXHJcbiAgICBjb250cm9sTmFtZTogc3RyaW5nLFxyXG4gICAgdmFsdWU6IGFueVxyXG4pOiBhbnkge1xyXG4gICAgY29uc3QgZm9ybVNldHRpbmdzID0gZ2V0Rm9ybVNldHRpbmdzKHR5cGVEZWZJZCk7XHJcbiAgICBmb3JtU2V0dGluZ3MuVmlldy5Db250cm9sSW5mbyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoY29udHJvbHNJbmZvKSk7XHJcblxyXG4gICAgZm9ybVNldHRpbmdzLlZpZXcuTGF5b3V0OTQuaXRlbXNbMF0uaXRlbXMucHVzaCguLi5jb250cm9sc0luZm8ubWFwKChjKSA9PiBnZXRMYXlvdXRDb250cm9sKGMuQ29udHJvbE5hbWUpKSk7XHJcbiAgICBmb3JtU2V0dGluZ3MuRGF0YS5Nb1tjb250cm9sTmFtZV0gPSB2YWx1ZTtcclxuICAgIGNvbnN0IGZvcm1QYW5lbEN0cmxyID0gbmV3IEJhcnNhQXBpLlVsLkZvcm1QYW5lbEN0cmxyKHtcclxuICAgICAgICBTZXR0aW5nOiBmb3JtU2V0dGluZ3MsXHJcbiAgICAgICAgRmVhdHVyZXM6IHtcclxuICAgICAgICAgICAgV29ya2Zsb3c6IGZhbHNlLFxyXG4gICAgICAgICAgICBUb29sYmFyOiBmYWxzZSxcclxuICAgICAgICAgICAgSW5mb0JhcjogZmFsc2VcclxuICAgICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBmb3JtUGFuZWxDdHJscjtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmV3TW9HcmlkRWRpdG9yKGZvcm1TZXR0aW5nczogRm9ybVNldHRpbmcsIHR5cGVkZWZJZDogc3RyaW5nKTogUGFydGlhbDxGb3JtU2V0dGluZz4ge1xyXG4gICAgY29uc3QgbmV3Rm9ybVNldHRpbmdzOiBGb3JtU2V0dGluZyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZm9ybVNldHRpbmdzKSk7XHJcbiAgICByZXR1cm4geyAuLi5uZXdGb3JtU2V0dGluZ3MuRGF0YS5NbywgJFR5cGVEZWZJZDogdHlwZWRlZklkIH07XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUdyaWRFZGl0b3JGb3JtUGFuZWwoXHJcbiAgICBmb3JtU2V0dGluZ3M6IEZvcm1TZXR0aW5nLFxyXG4gICAgbW86IE1ldGFvYmplY3REYXRhTW9kZWwsXHJcbiAgICB0eXBlZGVmOiBzdHJpbmcsXHJcbiAgICByZWxhdGlvbjogYW55LFxyXG4gICAgcmV3cml0ZUxheW91dDogYm9vbGVhbiA9IHRydWVcclxuKTogYW55IHtcclxuICAgIGNvbnN0IG5ld0Zvcm1TZXR0aW5nczogRm9ybVNldHRpbmcgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGZvcm1TZXR0aW5ncykpO1xyXG4gICAgbmV3Rm9ybVNldHRpbmdzLkRhdGEuTW8gPSB7IC4uLm1vLCAkVHlwZURlZklkOiB0eXBlZGVmIH07XHJcbiAgICBpZiAocmV3cml0ZUxheW91dCkge1xyXG4gICAgICAgIG5ld0Zvcm1TZXR0aW5ncy5WaWV3LkxheW91dDk0ID0gZ2V0TGF5b3V0OTRPYmplY3RJbmZvKCk7XHJcbiAgICAgICAgbmV3Rm9ybVNldHRpbmdzLlZpZXcuTGF5b3V0OTQuaXRlbXNbMF0uaXRlbXMucHVzaChcclxuICAgICAgICAgICAgLi4ubmV3Rm9ybVNldHRpbmdzLlZpZXcuQ29udHJvbEluZm8ubWFwKChjKSA9PlxyXG4gICAgICAgICAgICAgICAgZ2V0TGF5b3V0Q29udHJvbChjLkNvbnRyb2xOYW1lLCBjLkNvbnRyb2xGaWVsZENhcHRpb25UcmFuc2xhdGVkLCBmYWxzZSlcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBmb3JtUmVxdWVzdFBhcmFtcyA9IG5ldyBCYXJzYUFwaS5VbC5Gb3JtUmVxdWVzdFBhcmFtcyh7XHJcbiAgICAgICAgTW9JZDogbmV3Rm9ybVNldHRpbmdzLkRhdGEuTW8uSWQsXHJcbiAgICAgICAgVHlwZURlZklkOiB0eXBlZGVmLFxyXG4gICAgICAgIFJlbGF0aW9uOiByZWxhdGlvblxyXG4gICAgICAgIC8vIE1vQ29udGV4dDoge1xyXG4gICAgICAgIC8vICAgICBSZXBvcnRJZDogJycsXHJcbiAgICAgICAgLy8gICAgIFZpZXdJZDogJycsXHJcbiAgICAgICAgLy8gICAgIFZpZXdOYW1lOiAnJyxcclxuICAgICAgICAvLyAgICAgQ29uZEZvcm1hdGluZzogJycsXHJcbiAgICAgICAgLy8gICAgIEluY2x1ZGVJblJlcG9ydDogJydcclxuICAgICAgICAvLyB9XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IGZvcm1QYW5lbEN0cmxyID0gbmV3IEJhcnNhQXBpLlVsLkZvcm1QYW5lbEN0cmxyKHtcclxuICAgICAgICBTZXR0aW5nOiBuZXdGb3JtU2V0dGluZ3MsXHJcbiAgICAgICAgUmVsYXRpb246IHJlbGF0aW9uLFxyXG4gICAgICAgIEZlYXR1cmVzOiB7XHJcbiAgICAgICAgICAgIFdvcmtmbG93OiBmYWxzZSxcclxuICAgICAgICAgICAgVG9vbGJhcjogZmFsc2UsXHJcbiAgICAgICAgICAgIEluZm9CYXI6IGZhbHNlXHJcbiAgICAgICAgfSxcclxuICAgICAgICBGb3JtUmVxdWVzdFBhcmFtczogZm9ybVJlcXVlc3RQYXJhbXNcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGZvcm1QYW5lbEN0cmxyO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0TGF5b3V0Q29udHJvbChcclxuICAgIGNvbnRyb2xOYW1lOiBzdHJpbmcsXHJcbiAgICBjb250cm9sQ2FwdGlvbjogc3RyaW5nID0gJycsXHJcbiAgICBoaWRlOiBib29sZWFuID0gdHJ1ZVxyXG4pOiBQYXJ0aWFsPEdlbmVyYWxDb250cm9sSW5mb01vZGVsPiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIHh0eXBlOiAnTHkuTGF5b3V0Q29udHJvbCcsXHJcbiAgICAgICAgVHlwZTogJ0xheW91dENvbnRyb2xJdGVtJyxcclxuICAgICAgICBDb250cm9sSWQ6IGNvbnRyb2xOYW1lLFxyXG4gICAgICAgIElzVmVydGljYWw6IGZhbHNlLFxyXG4gICAgICAgIFRleHRMb2NhdGlvbjogJ1JpZ2h0JyxcclxuICAgICAgICBUZXh0VmlzaWJsZTogZmFsc2UsXHJcbiAgICAgICAgVmlzaWJsZTogIWhpZGUsXHJcbiAgICAgICAgaGlkZSxcclxuICAgICAgICBVc2VMYXlvdXRJdGVtVGV4dEZvckNvbnRyb2w6IGZhbHNlLFxyXG4gICAgICAgIENhcHRpb246IGNvbnRyb2xDYXB0aW9uLFxyXG4gICAgICAgIEFjY2Vzc2libGVOYW1lOiAnJyxcclxuICAgICAgICBCb3VuZHM6IHsgeDogMCwgeTogMCwgd2lkdGg6IDQzMiwgaGVpZ2h0OiAyNCB9LFxyXG4gICAgICAgIE1pblNpemU6IHsgd2lkdGg6IDg5LCBoZWlnaHQ6IDI0IH0sXHJcbiAgICAgICAgTWF4U2l6ZTogeyB3aWR0aDogMCwgaGVpZ2h0OiAyNCB9LFxyXG4gICAgICAgIENvbnRyb2xCb3VuZHM6IHsgd2lkdGg6IDM4OCwgaGVpZ2h0OiAyMCB9LFxyXG4gICAgICAgIENvbnRyb2xNaW5TaXplOiB7IHdpZHRoOiA0NSwgaGVpZ2h0OiAyMCB9LFxyXG4gICAgICAgIENvbnRyb2xNYXhTaXplOiB7IHdpZHRoOiAwLCBoZWlnaHQ6IDIwIH0sXHJcbiAgICAgICAgUGFkZGluZzogWzIsIDIsIDIsIDJdLFxyXG4gICAgICAgIExhYmVsU2l6ZTogeyB3aWR0aDogMzUsIGhlaWdodDogMTMgfSxcclxuICAgICAgICBvcmlnaW5hbFh0eXBlOiAnJ1xyXG4gICAgfTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldENvbnRyb2xMaXN0KFxyXG4gICAgbW86IE1ldGFvYmplY3REYXRhTW9kZWwsXHJcbiAgICBjb250cm9sRGJOYW1lczogc3RyaW5nW10sXHJcbiAgICBpc1NlYXJjaFBhbmVsOiBib29sZWFuLFxyXG4gICAgaXNHcmlkRWRpdG9yOiBib29sZWFuXHJcbik6IFByb21pc2U8R2VuZXJhbENvbnRyb2xJbmZvTW9kZWxbXT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPEdlbmVyYWxDb250cm9sSW5mb01vZGVsW10+KChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgICBCYXJzYUFwaS5Db21tb24uQWpheC5HZXRTZXJ2ZXJEYXRhKFxyXG4gICAgICAgICAgICAnRm9ybTk0LkdldENvbnRyb2xJbmZvcycsXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGNvbnRyb2xJbmZvUGFyYW1ldGVyOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgRmllbGREYk5hbWVzOiBjb250cm9sRGJOYW1lcyxcclxuICAgICAgICAgICAgICAgICAgICBNbzogbmV3IEJhcnNhQXBpLkNvbW1vbi5NZXRhT2JqZWN0V2ViKG1vKSxcclxuICAgICAgICAgICAgICAgICAgICBJc1NlYXJjaFBhbmVsOiBpc1NlYXJjaFBhbmVsLFxyXG4gICAgICAgICAgICAgICAgICAgIElzR3JpZEVkaXRvcjogaXNHcmlkRWRpdG9yXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIChtKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXNvbHZlKG0pO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICB9KTtcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgTnpTYWZlQW55ID0gYW55O1xyXG5leHBvcnQgdHlwZSBOdW1iZXJJbnB1dCA9IG51bWJlciB8IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGw7XHJcbmV4cG9ydCBpbnRlcmZhY2UgTmdTdHlsZUludGVyZmFjZSB7XHJcbiAgICBba2xhc3M6IHN0cmluZ106IE56U2FmZUFueTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJbmRleGFibGVPYmplY3Qge1xyXG4gICAgW2tleTogc3RyaW5nXTogTnpTYWZlQW55O1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBzaGFsbG93RXF1YWwob2JqQT86IEluZGV4YWJsZU9iamVjdCwgb2JqQj86IEluZGV4YWJsZU9iamVjdCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKG9iakEgPT09IG9iakIpIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodHlwZW9mIG9iakEgIT09ICdvYmplY3QnIHx8ICFvYmpBIHx8IHR5cGVvZiBvYmpCICE9PSAnb2JqZWN0JyB8fCAhb2JqQikge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBrZXlzQSA9IE9iamVjdC5rZXlzKG9iakEpO1xyXG4gICAgY29uc3Qga2V5c0IgPSBPYmplY3Qua2V5cyhvYmpCKTtcclxuXHJcbiAgICBpZiAoa2V5c0EubGVuZ3RoICE9PSBrZXlzQi5sZW5ndGgpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgYkhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5iaW5kKG9iakIpO1xyXG5cclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvcHJlZmVyLWZvci1vZlxyXG4gICAgZm9yIChsZXQgaWR4ID0gMDsgaWR4IDwga2V5c0EubGVuZ3RoOyBpZHgrKykge1xyXG4gICAgICAgIGNvbnN0IGtleSA9IGtleXNBW2lkeF07XHJcbiAgICAgICAgaWYgKCFiSGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChvYmpBW2tleV0gIT09IG9iakJba2V5XSkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0cnVlO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiB0b051bWJlcih2YWx1ZTogbnVtYmVyIHwgc3RyaW5nKTogbnVtYmVyO1xyXG5leHBvcnQgZnVuY3Rpb24gdG9OdW1iZXI8RD4odmFsdWU6IG51bWJlciB8IHN0cmluZywgZmFsbGJhY2s6IEQpOiBudW1iZXIgfCBEO1xyXG5leHBvcnQgZnVuY3Rpb24gdG9OdW1iZXIodmFsdWU6IG51bWJlciB8IHN0cmluZywgZmFsbGJhY2tWYWx1ZTogbnVtYmVyID0gMCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gX2lzTnVtYmVyVmFsdWUodmFsdWUpID8gTnVtYmVyKHZhbHVlKSA6IGZhbGxiYWNrVmFsdWU7XHJcbn1cclxuZnVuY3Rpb24gcHJvcERlY29yYXRvckZhY3Rvcnk8VCwgRD4oXHJcbiAgICBuYW1lOiBzdHJpbmcsXHJcbiAgICBmYWxsYmFjazogKHY6IFQpID0+IERcclxuKTogKHRhcmdldDogTnpTYWZlQW55LCBwcm9wTmFtZTogc3RyaW5nKSA9PiB2b2lkIHtcclxuICAgIGZ1bmN0aW9uIHByb3BEZWNvcmF0b3IoXHJcbiAgICAgICAgdGFyZ2V0OiBOelNhZmVBbnksXHJcbiAgICAgICAgcHJvcE5hbWU6IHN0cmluZyxcclxuICAgICAgICBvcmlnaW5hbERlc2NyaXB0b3I/OiBUeXBlZFByb3BlcnR5RGVzY3JpcHRvcjxOelNhZmVBbnk+XHJcbiAgICApOiBOelNhZmVBbnkge1xyXG4gICAgICAgIGNvbnN0IHByaXZhdGVQcm9wTmFtZSA9IGAkJF9fem9ycm9Qcm9wRGVjb3JhdG9yX18ke3Byb3BOYW1lfWA7XHJcblxyXG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGFyZ2V0LCBwcml2YXRlUHJvcE5hbWUpKSB7XHJcbiAgICAgICAgICAgIC8vIHdhcm4oYFRoZSBwcm9wIFwiJHtwcml2YXRlUHJvcE5hbWV9XCIgaXMgYWxyZWFkeSBleGlzdCwgaXQgd2lsbCBiZSBvdmVycmlkZWQgYnkgJHtuYW1lfSBkZWNvcmF0b3IuYCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBwcml2YXRlUHJvcE5hbWUsIHtcclxuICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICB3cml0YWJsZTogdHJ1ZVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBnZXQoKTogc3RyaW5nIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBvcmlnaW5hbERlc2NyaXB0b3IgJiYgb3JpZ2luYWxEZXNjcmlwdG9yLmdldFxyXG4gICAgICAgICAgICAgICAgICAgID8gb3JpZ2luYWxEZXNjcmlwdG9yLmdldC5iaW5kKHRoaXMpKClcclxuICAgICAgICAgICAgICAgICAgICA6IHRoaXNbcHJpdmF0ZVByb3BOYW1lXTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgc2V0KHZhbHVlOiBUKTogdm9pZCB7XHJcbiAgICAgICAgICAgICAgICBpZiAob3JpZ2luYWxEZXNjcmlwdG9yICYmIG9yaWdpbmFsRGVzY3JpcHRvci5zZXQpIHtcclxuICAgICAgICAgICAgICAgICAgICBvcmlnaW5hbERlc2NyaXB0b3Iuc2V0LmJpbmQodGhpcykoZmFsbGJhY2sodmFsdWUpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXNbcHJpdmF0ZVByb3BOYW1lXSA9IGZhbGxiYWNrKHZhbHVlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHByb3BEZWNvcmF0b3I7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIElucHV0TnVtYmVyKGZhbGxiYWNrVmFsdWU/OiBOelNhZmVBbnkpOiBOelNhZmVBbnkge1xyXG4gICAgcmV0dXJuIHByb3BEZWNvcmF0b3JGYWN0b3J5KCdJbnB1dE51bWJlcicsICh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKSA9PiB0b051bWJlcih2YWx1ZSwgZmFsbGJhY2tWYWx1ZSkpO1xyXG59XHJcbmV4cG9ydCBlbnVtIEFmZml4UmVzcG9uZEV2ZW50cyB7XHJcbiAgICByZXNpemUgPSAncmVzaXplJyxcclxuICAgIHNjcm9sbCA9ICdzY3JvbGwnLFxyXG4gICAgdG91Y2hzdGFydCA9ICd0b3VjaHN0YXJ0JyxcclxuICAgIHRvdWNobW92ZSA9ICd0b3VjaG1vdmUnLFxyXG4gICAgdG91Y2hlbmQgPSAndG91Y2hlbmQnLFxyXG4gICAgcGFnZXNob3cgPSAncGFnZXNob3cnLFxyXG4gICAgbG9hZCA9ICdMT0FEJ1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgU2ltcGxlUmVjdCB7XHJcbiAgICB0b3A6IG51bWJlcjtcclxuICAgIGxlZnQ6IG51bWJlcjtcclxuICAgIHdpZHRoPzogbnVtYmVyO1xyXG4gICAgaGVpZ2h0PzogbnVtYmVyO1xyXG4gICAgYm90dG9tPzogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaXNUYXJnZXRXaW5kb3codGFyZ2V0OiBFbGVtZW50IHwgV2luZG93KTogdGFyZ2V0IGlzIFdpbmRvdyB7XHJcbiAgICByZXR1cm4gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGFyZ2V0ID09PSB3aW5kb3c7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRUYXJnZXRSZWN0KHRhcmdldDogRWxlbWVudCB8IFdpbmRvdyk6IFNpbXBsZVJlY3Qge1xyXG4gICAgcmV0dXJuICFpc1RhcmdldFdpbmRvdyh0YXJnZXQpXHJcbiAgICAgICAgPyB0YXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcclxuICAgICAgICA6IHtcclxuICAgICAgICAgICAgICB0b3A6IDAsXHJcbiAgICAgICAgICAgICAgbGVmdDogMCxcclxuICAgICAgICAgICAgICBib3R0b206IDBcclxuICAgICAgICAgIH07XHJcbn1cclxuLyogZXNsaW50LWRpc2FibGUgbm8taW52YWxpZC10aGlzICovXHJcbmV4cG9ydCBjb25zdCBhdmFpbGFibGVQcmVmaXhlcyA9IFsnbW96JywgJ21zJywgJ3dlYmtpdCddO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHJlcXVlc3RBbmltYXRpb25GcmFtZVBvbHlmaWxsKCk6IHR5cGVvZiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUge1xyXG4gICAgbGV0IGxhc3RUaW1lID0gMDtcclxuICAgIHJldHVybiBmdW5jdGlvbiAoY2FsbGJhY2s6IEZyYW1lUmVxdWVzdENhbGxiYWNrKTogYW55IHtcclxuICAgICAgICBjb25zdCBjdXJyVGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG4gICAgICAgIGNvbnN0IHRpbWVUb0NhbGwgPSBNYXRoLm1heCgwLCAxNiAtIChjdXJyVGltZSAtIGxhc3RUaW1lKSk7XHJcbiAgICAgICAgY29uc3QgaWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgY2FsbGJhY2soY3VyclRpbWUgKyB0aW1lVG9DYWxsKTtcclxuICAgICAgICB9LCB0aW1lVG9DYWxsKTtcclxuICAgICAgICBsYXN0VGltZSA9IGN1cnJUaW1lICsgdGltZVRvQ2FsbDtcclxuICAgICAgICByZXR1cm4gaWQ7XHJcbiAgICB9O1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBFeGVjdXRlRHluYW1pY0NvbW1hbmQoY29tbWFuZDogeyBJZDogc3RyaW5nIH0sIG1vOiBNZXRhb2JqZWN0RGF0YU1vZGVsIHwgbnVsbCA9IG51bGwpOiB2b2lkIHtcclxuICAgIGNvbnN0IGUgPSB7IGNvbW1hbmQsIER5bmFtaWNTZXR0aW5nOiBtbywgTW86IG1vIH07XHJcbiAgICBCYXJzYUFwaS5Db21tb24uQ3VzdG9tQ29kZU1hbmFnZXIuUnVuRHluYW1pY0NvbW1hbmQoY29tbWFuZC5JZCwgZSk7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIEV4ZWN1dGVXb3JrZmxvd0Nob2ljZURlZihzY29wZSwgcGFyYW0sIHN1Y2Nlc3M6IChyZXN1bHQpID0+IHZvaWQsIGZhaWxlZDogKGVycm9yKSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICBCYXJzYUFwaS5Db21tb24uQWpheC5HZXRTZXJ2ZXJEYXRhKFxyXG4gICAgICAgICdXb3JrZmxvdzk0LkNob2ljZVNlbGVjdCcsXHJcbiAgICAgICAgcGFyYW0sXHJcbiAgICAgICAgKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgICBzdWNjZXNzKHJlc3VsdCk7XHJcbiAgICAgICAgfSwgLy8gc3VjY2Vzc1xyXG4gICAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgICBmYWlsZWQoZXJyb3IpO1xyXG4gICAgICAgIH0sIC8vICBlcnJvclxyXG4gICAgICAgICgpID0+IHt9LCAvLyBkb1JldHVyblxyXG4gICAgICAgIHNjb3BlLFxyXG4gICAgICAgIHRydWVcclxuICAgICk7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlcXVlc3RBbmltYXRpb25GcmFtZSgpOiB0eXBlb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lIHtcclxuICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgIHJldHVybiAoKSA9PiAwO1xyXG4gICAgfVxyXG4gICAgaWYgKHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUpIHtcclxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vdnVlanMvdnVlL2lzc3Vlcy80NDY1XHJcbiAgICAgICAgcmV0dXJuIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUuYmluZCh3aW5kb3cpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHByZWZpeCA9IGF2YWlsYWJsZVByZWZpeGVzLmZpbHRlcigoa2V5KSA9PiBgJHtrZXl9UmVxdWVzdEFuaW1hdGlvbkZyYW1lYCBpbiB3aW5kb3cpWzBdO1xyXG5cclxuICAgIHJldHVybiBwcmVmaXggPyAod2luZG93IGFzIE56U2FmZUFueSlbYCR7cHJlZml4fVJlcXVlc3RBbmltYXRpb25GcmFtZWBdIDogcmVxdWVzdEFuaW1hdGlvbkZyYW1lUG9seWZpbGwoKTtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gY2FuY2VsUmVxdWVzdEFuaW1hdGlvbkZyYW1lKGlkOiBudW1iZXIpOiBOelNhZmVBbnkge1xyXG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBpZiAod2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKSB7XHJcbiAgICAgICAgcmV0dXJuIHdpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZShpZCk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBwcmVmaXggPSBhdmFpbGFibGVQcmVmaXhlcy5maWx0ZXIoXHJcbiAgICAgICAgKGtleSkgPT4gYCR7a2V5fUNhbmNlbEFuaW1hdGlvbkZyYW1lYCBpbiB3aW5kb3cgfHwgYCR7a2V5fUNhbmNlbFJlcXVlc3RBbmltYXRpb25GcmFtZWAgaW4gd2luZG93XHJcbiAgICApWzBdO1xyXG5cclxuICAgIHJldHVybiBwcmVmaXhcclxuICAgICAgICA/IChcclxuICAgICAgICAgICAgICAod2luZG93IGFzIE56U2FmZUFueSlbYCR7cHJlZml4fUNhbmNlbEFuaW1hdGlvbkZyYW1lYF0gfHxcclxuICAgICAgICAgICAgICAod2luZG93IGFzIE56U2FmZUFueSlbYCR7cHJlZml4fUNhbmNlbFJlcXVlc3RBbmltYXRpb25GcmFtZWBdXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgIC5jYWxsKHRoaXMsIGlkKVxyXG4gICAgICAgIDogY2xlYXJUaW1lb3V0KGlkKTtcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgRWFzeWluZ0ZuID0gKHQ6IG51bWJlciwgYjogbnVtYmVyLCBjOiBudW1iZXIsIGQ6IG51bWJlcikgPT4gbnVtYmVyO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGVhc2VJbk91dEN1YmljKHQ6IG51bWJlciwgYjogbnVtYmVyLCBjOiBudW1iZXIsIGQ6IG51bWJlcik6IG51bWJlciB7XHJcbiAgICBjb25zdCBjYyA9IGMgLSBiO1xyXG4gICAgbGV0IHR0ID0gdCAvIChkIC8gMik7XHJcbiAgICBpZiAodHQgPCAxKSB7XHJcbiAgICAgICAgcmV0dXJuIChjYyAvIDIpICogdHQgKiB0dCAqIHR0ICsgYjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIChjYyAvIDIpICogKCh0dCAtPSAyKSAqIHR0ICogdHQgKyAyKSArIGI7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTnpTY3JvbGxUb09wdGlvbnMge1xyXG4gICAgLyoqIEFuaW1hdGlvbiBkdXJhdGlvbiwgZGVmYXVsdCBhcyA0NTAgKi9cclxuICAgIGR1cmF0aW9uPzogbnVtYmVyO1xyXG4gICAgLyoqIFNjcm9sbCBjb250YWluZXIsIGRlZmF1bHQgYXMgd2luZG93ICovXHJcbiAgICBlYXNpbmc/OiBFYXN5aW5nRm47XHJcbiAgICAvKiogU2Nyb2xsIGVuZCBjYWxsYmFjayAqL1xyXG4gICAgY2FsbGJhY2s/KCk6IHZvaWQ7XHJcbn1cclxuZXhwb3J0IGNvbnN0IFdvcmRNaW1lVHlwZSA9XHJcbiAgICAnLmRvYywuZG9jeCxhcHBsaWNhdGlvbi9tc3dvcmQsYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZG9jdW1lbnQnO1xyXG5leHBvcnQgY29uc3QgSW1hZ2VNaW1lVHlwZSA9ICcuanBlZywuanBnLC5naWYsLnBuZywuYm1wLC50aWYsaW1hZ2UvKic7XHJcbmV4cG9ydCBjb25zdCBQZGZNaW1lVHlwZSA9ICcucGRmJztcclxuZXhwb3J0IGNvbnN0IEFsbEZpbGVzTWltZVR5cGUgPSAnLnR4dCwucHB0LC5wZGYsLionO1xyXG5leHBvcnQgY29uc3QgVmlkZW9NaW1lVHlwZSA9ICd2aWRlby8qJztcclxuZXhwb3J0IGNvbnN0IEF1ZGlvTWltZVR5cGUgPSAnYXVkaW8vKic7XHJcbiJdfQ==
|
|
@@ -6,10 +6,14 @@ export class CopyDirective extends BaseDirective {
|
|
|
6
6
|
/**
|
|
7
7
|
*
|
|
8
8
|
*/
|
|
9
|
-
constructor(_toastService, _el) {
|
|
9
|
+
constructor(_toastService, _el, _renderer2) {
|
|
10
10
|
super(_el);
|
|
11
11
|
this._toastService = _toastService;
|
|
12
12
|
this._el = _el;
|
|
13
|
+
this._renderer2 = _renderer2;
|
|
14
|
+
if (!navigator.clipboard) {
|
|
15
|
+
this._renderer2.addClass(this._el.nativeElement, 'hide');
|
|
16
|
+
}
|
|
13
17
|
}
|
|
14
18
|
doCopy() {
|
|
15
19
|
const inputEl = this._inputEl;
|
|
@@ -33,7 +37,7 @@ export class CopyDirective extends BaseDirective {
|
|
|
33
37
|
this._inputEl = inputEl;
|
|
34
38
|
}
|
|
35
39
|
}
|
|
36
|
-
CopyDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: CopyDirective, deps: [{ token: TOAST_SERVICE, optional: true }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
40
|
+
CopyDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: CopyDirective, deps: [{ token: TOAST_SERVICE, optional: true }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
|
|
37
41
|
CopyDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.7", type: CopyDirective, selector: "[copy]", inputs: { copy: "copy" }, host: { listeners: { "click": "doCopy()" } }, usesInheritance: true, ngImport: i0 });
|
|
38
42
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: CopyDirective, decorators: [{
|
|
39
43
|
type: Directive,
|
|
@@ -45,10 +49,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
|
|
|
45
49
|
}, {
|
|
46
50
|
type: Inject,
|
|
47
51
|
args: [TOAST_SERVICE]
|
|
48
|
-
}] }, { type: i0.ElementRef }]; }, propDecorators: { copy: [{
|
|
52
|
+
}] }, { type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { copy: [{
|
|
49
53
|
type: Input
|
|
50
54
|
}], doCopy: [{
|
|
51
55
|
type: HostListener,
|
|
52
56
|
args: ['click']
|
|
53
57
|
}] } });
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29weS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1ub3Zpbi1yYXktY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvY29weS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFVLFFBQVEsRUFBRSxNQUFNLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDaEgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFNckQsTUFBTSxPQUFPLGFBQWMsU0FBUSxhQUFhO0lBRzVDOztPQUVHO0lBQ0gsWUFDaUQsYUFBMkIsRUFDOUQsR0FBZSxFQUNmLFVBQXFCO1FBRS9CLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUprQyxrQkFBYSxHQUFiLGFBQWEsQ0FBYztRQUM5RCxRQUFHLEdBQUgsR0FBRyxDQUFZO1FBQ2YsZUFBVSxHQUFWLFVBQVUsQ0FBVztRQUcvQixJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRTtZQUN0QixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsQ0FBQztTQUM1RDtJQUNMLENBQUM7SUFHRCxNQUFNO1FBQ0YsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUM5QixPQUFPLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDMUIsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBQ3pCLDJCQUEyQjtRQUMzQixRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDbEIsUUFBUSxDQUFDLGlCQUFpQixDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsd0JBQXdCO1FBQzdFLHlDQUF5QztRQUN6QyxTQUFTLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUMsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksV0FBVyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7U0FDekU7SUFDTCxDQUFDO0lBQ0QsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQTRCLENBQUM7UUFDbEQsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoRCxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDL0IsR0FBRyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztJQUM1QixDQUFDOzswR0F0Q1EsYUFBYSxrQkFPRSxhQUFhOzhGQVA1QixhQUFhOzJGQUFiLGFBQWE7a0JBSHpCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLFFBQVE7aUJBQ3JCOzswQkFRUSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLGFBQWE7NkZBTjVCLElBQUk7c0JBQVosS0FBSztnQkFpQk4sTUFBTTtzQkFETCxZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uSW5pdCwgT3B0aW9uYWwsIEluamVjdCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlRGlyZWN0aXZlIH0gZnJvbSAnLi9iYXNlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBUT0FTVF9TRVJWSUNFIH0gZnJvbSAnLi4vaW5qZGVjdGlvbi10b2tlbnMnO1xuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvdG9hc3Quc2VydmljZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2NvcHldJ1xufSlcbmV4cG9ydCBjbGFzcyBDb3B5RGlyZWN0aXZlIGV4dGVuZHMgQmFzZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KCkgY29weTogc3RyaW5nO1xuICAgIF9pbnB1dEVsOiBIVE1MSW5wdXRFbGVtZW50O1xuICAgIC8qKlxuICAgICAqXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoVE9BU1RfU0VSVklDRSkgcHJvdGVjdGVkIF90b2FzdFNlcnZpY2U6IFRvYXN0U2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIF9lbDogRWxlbWVudFJlZixcbiAgICAgICAgcHJvdGVjdGVkIF9yZW5kZXJlcjI6IFJlbmRlcmVyMlxuICAgICkge1xuICAgICAgICBzdXBlcihfZWwpO1xuICAgICAgICBpZiAoIW5hdmlnYXRvci5jbGlwYm9hcmQpIHtcbiAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyMi5hZGRDbGFzcyh0aGlzLl9lbC5uYXRpdmVFbGVtZW50LCAnaGlkZScpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxuICAgIGRvQ29weSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaW5wdXRFbCA9IHRoaXMuX2lucHV0RWw7XG4gICAgICAgIGlucHV0RWwudmFsdWUgPSB0aGlzLmNvcHk7XG4gICAgICAgIGNvbnN0IGNvcHlUZXh0ID0gaW5wdXRFbDtcbiAgICAgICAgLyogU2VsZWN0IHRoZSB0ZXh0IGZpZWxkICovXG4gICAgICAgIGNvcHlUZXh0LnNlbGVjdCgpO1xuICAgICAgICBjb3B5VGV4dC5zZXRTZWxlY3Rpb25SYW5nZSgwLCBpbnB1dEVsLnZhbHVlLmxlbmd0aCk7IC8qIEZvciBtb2JpbGUgZGV2aWNlcyAqL1xuICAgICAgICAvKiBDb3B5IHRoZSB0ZXh0IGluc2lkZSB0aGUgdGV4dCBmaWVsZCAqL1xuICAgICAgICBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChjb3B5VGV4dC52YWx1ZSk7XG4gICAgICAgIGlmICh0aGlzLl90b2FzdFNlcnZpY2UpIHtcbiAgICAgICAgICAgIHRoaXMuX3RvYXN0U2VydmljZS5vcGVuKGAgJHt0aGlzLmNvcHl9IGNvcGllZC4gYCwgeyBkdXJhdGlvbjogNTAwMCB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgY29uc3QgZG9tID0gdGhpcy5fZWwubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgY29uc3QgaW5wdXRFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XG4gICAgICAgIGlucHV0RWwuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgICAgZG9tLmFwcGVuZENoaWxkKGlucHV0RWwpO1xuICAgICAgICB0aGlzLl9pbnB1dEVsID0gaW5wdXRFbDtcbiAgICB9XG59XG4iXX0=
|
|
@@ -58,4 +58,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
|
|
|
58
58
|
type: Input,
|
|
59
59
|
args: ['renderUlvViewer']
|
|
60
60
|
}] } });
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyLXVsdi12aWV3ZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etbm92aW4tcmF5LWNvcmUvc3JjL2xpYi9kaXJlY3RpdmVzL3JlbmRlci11bHYtdmlld2VyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBSUgsU0FBUyxFQUdULEtBQUssRUFHUixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUM7OztBQU1oRSxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsYUFBYTtJQUl2RCxZQUNZLFNBQW1CLEVBQ25CLGNBQTZCLEVBQzdCLElBQXNCLEVBQ3RCLElBQXVCLEVBQ3JCLEdBQWU7UUFFekIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBTkgsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNuQixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUM3QixTQUFJLEdBQUosSUFBSSxDQUFrQjtRQUN0QixTQUFJLEdBQUosSUFBSSxDQUFtQjtRQUNyQixRQUFHLEdBQUgsR0FBRyxDQUFZO0lBRzdCLENBQUM7SUFDRCxlQUFlO1FBQ1gsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBQ0QsV0FBVztRQUNQLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwQixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUM1QjtJQUNMLENBQUM7SUFDRCxPQUFPO1FBQ0gsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUM1QixJQUFJLE9BQU8sRUFBRTtZQUNULE1BQU0sZUFBZSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3ZHLE1BQU0sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsZUFBZSxDQUFDLENBQUM7WUFDMUcsSUFBSSxDQUFDLGNBQWM7aUJBQ2QsWUFBWSxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDO2lCQUM3RSxJQUFJLENBQ0QsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFDM0IsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUNSLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO2dCQUNkLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRSxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDdkMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO2dCQUNyQywyRkFBMkY7Z0JBQzNGLE9BQU8sQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQztnQkFDdkMsdUNBQXVDO2dCQUN2QyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNyQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzlCLENBQUMsQ0FBQyxDQUNMO2lCQUNBLFNBQVMsRUFBRSxDQUFDO1NBQ3BCO0lBQ0wsQ0FBQzs7cUhBOUNRLHdCQUF3Qjt5R0FBeEIsd0JBQXdCOzJGQUF4Qix3QkFBd0I7a0JBSHBDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG1CQUFtQjtpQkFDaEM7bU5BRVksSUFBSTtzQkFBWixLQUFLO2dCQUNvQixNQUFNO3NCQUEvQixLQUFLO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBBZnRlclZpZXdJbml0LFxyXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBDb21wb25lbnRSZWYsXHJcbiAgICBEaXJlY3RpdmUsXHJcbiAgICBFbGVtZW50UmVmLFxyXG4gICAgSW5qZWN0b3IsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uRGVzdHJveSxcclxuICAgIFZpZXdDb250YWluZXJSZWZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgZGVsYXksIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBCYXJzYUFwaSB9IGZyb20gJy4uL2Fic3RyYWN0LWNsYXNzZXMnO1xyXG5cclxuaW1wb3J0IHsgQmFzZURpcmVjdGl2ZSB9IGZyb20gJy4vYmFzZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBnZXRDb21wb25lbnREZWZpbmVkLCBnZXRVbmlxdWVJZCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IFBvcnRhbFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9wb3J0YWwuc2VydmljZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiAnW3JlbmRlclVsdlZpZXdlcl0nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZW5kZXJVbHZWaWV3ZXJEaXJlY3RpdmUgZXh0ZW5kcyBCYXNlRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuICAgIEBJbnB1dCgpIG1hc2s6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoJ3JlbmRlclVsdlZpZXdlcicpIHZpZXdlcjtcclxuICAgIGNvbXBvbmVudDogQ29tcG9uZW50UmVmPGFueT47XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIF9pbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICAgICAgcHJpdmF0ZSBfcG9ydGFsU2VydmljZTogUG9ydGFsU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF92Y3I6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICAgICAgcHJpdmF0ZSBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgICAgICBwcm90ZWN0ZWQgX2VsOiBFbGVtZW50UmVmXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcihfZWwpO1xyXG4gICAgfVxyXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xyXG4gICAgICAgIHRoaXMuX3JlbmRlcigpO1xyXG4gICAgfVxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcclxuICAgICAgICBpZiAodGhpcy5jb21wb25lbnQpIHtcclxuICAgICAgICAgICAgdGhpcy5jb21wb25lbnQuZGVzdHJveSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIF9yZW5kZXIoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgY29udGV4dCA9IHRoaXMudmlld2VyO1xyXG4gICAgICAgIGlmIChjb250ZXh0KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGN1c3RvbVVpU2V0dGluZyA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKGNvbnRleHQuU2V0dGluZywgJ0NsYXNzTmFtZXMuQ3VzdG9tVWknLCBudWxsKTtcclxuICAgICAgICAgICAgY29uc3QgeyBtb2R1bGVOYW1lLCBtb2R1bGVQYXRoLCBjb21wb25lbnROYW1lLCBzZWxlY3RvciB9ID0gZ2V0Q29tcG9uZW50RGVmaW5lZChjb250ZXh0LCBjdXN0b21VaVNldHRpbmcpO1xyXG4gICAgICAgICAgICB0aGlzLl9wb3J0YWxTZXJ2aWNlXHJcbiAgICAgICAgICAgICAgICAuZ2V0Q29tcG9uZW50KG1vZHVsZU5hbWUsIG1vZHVsZVBhdGgsIGNvbXBvbmVudE5hbWUsIHNlbGVjdG9yLCB0aGlzLl9pbmplY3RvcilcclxuICAgICAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSxcclxuICAgICAgICAgICAgICAgICAgICBkZWxheSgwKSxcclxuICAgICAgICAgICAgICAgICAgICB0YXAoKGNvbXBvbmVudCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnQuaW5zdGFuY2UuaWQgPSBnZXRVbmlxdWVJZCg0KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50Lmluc3RhbmNlLmNvbnRleHQgPSBjb250ZXh0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjb21wb25lbnQuaW5zdGFuY2UubW9EYXRhTGlzdD1CYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZShjb250ZXh0LCdtb0RhdGFMaXN0JyxbXSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQuY29udHJvbFVpID0gY29tcG9uZW50Lmluc3RhbmNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjb250ZXh0LnZpZXdlciA9IGNvbXBvbmVudC5pbnN0YW5jZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb21wb25lbnQgPSBjb21wb25lbnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3Zjci5pbnNlcnQoY29tcG9uZW50Lmhvc3RWaWV3KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -31,4 +31,4 @@ export * from './find-column-by-db-name.pipe';
|
|
|
31
31
|
export * from './filter-columns-by-details.pipe';
|
|
32
32
|
export * from './mo-info-ulv-data.pipe';
|
|
33
33
|
export * from './reverse.pipe';
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1ub3Zpbi1yYXktY29yZS9zcmMvbGliL3BpcGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL21vLXJlcG9ydC12YWx1ZS5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9udW1lcmFsLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2dyb3VwYnkucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29udGV4dC1tZW51LnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2hlYWRlci1mYWNldC12YWx1ZS5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9zZXBlcmF0b3ItZml4LnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbnZlcnQtdG8tc3R5bGUucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vdGxiQnV0dG9ucy5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9yZW1vdmUtbmV3bGluZS5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9tby12YWx1ZS5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9maWx0ZXIucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZmlsdGVyLXRhYi5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9tby1yZXBvcnQtdmFsdWUtY29uY2F0LnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2ZpbHRlci1zdHJpbmcucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc29ydC5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9iYmItdHJhbnNsYXRlLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2JhcnNhLWljb24tZGljdC5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9maWxlaW5mby1jb3VudC5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9jb250cm9sLXVpLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3Zpc2libGUtdmFsdWUucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZGF0ZS10aW1lLXRvLWNhcHRpb24ucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZmlsdGVyLXRvb2xiYXItY29udHJvbC5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9tdWx0aXBsZS1ncm91cGJ5LnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3BpY3R1cmUtZmllbGQtc291cmNlLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Zpb3JpLWljb24ucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY2FuLXVwbG9hZC5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saXN0LWNvdW50LnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3RvdGFsLXN1bW1hcnkucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbWVyZ2UtZmllbGRzLXRvLWNvbHVtbnMucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZmluZC1jb2x1bW4tYnktZGItbmFtZS5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9maWx0ZXItY29sdW1ucy1ieS1kZXRhaWxzLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL21vLWluZm8tdWx2LWRhdGEucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcmV2ZXJzZS5waXBlJztcclxuIl19
|
|
@@ -9947,10 +9947,14 @@ class CopyDirective extends BaseDirective {
|
|
|
9947
9947
|
/**
|
|
9948
9948
|
*
|
|
9949
9949
|
*/
|
|
9950
|
-
constructor(_toastService, _el) {
|
|
9950
|
+
constructor(_toastService, _el, _renderer2) {
|
|
9951
9951
|
super(_el);
|
|
9952
9952
|
this._toastService = _toastService;
|
|
9953
9953
|
this._el = _el;
|
|
9954
|
+
this._renderer2 = _renderer2;
|
|
9955
|
+
if (!navigator.clipboard) {
|
|
9956
|
+
this._renderer2.addClass(this._el.nativeElement, 'hide');
|
|
9957
|
+
}
|
|
9954
9958
|
}
|
|
9955
9959
|
doCopy() {
|
|
9956
9960
|
const inputEl = this._inputEl;
|
|
@@ -9974,7 +9978,7 @@ class CopyDirective extends BaseDirective {
|
|
|
9974
9978
|
this._inputEl = inputEl;
|
|
9975
9979
|
}
|
|
9976
9980
|
}
|
|
9977
|
-
CopyDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: CopyDirective, deps: [{ token: TOAST_SERVICE, optional: true }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
9981
|
+
CopyDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: CopyDirective, deps: [{ token: TOAST_SERVICE, optional: true }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
|
|
9978
9982
|
CopyDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.7", type: CopyDirective, selector: "[copy]", inputs: { copy: "copy" }, host: { listeners: { "click": "doCopy()" } }, usesInheritance: true, ngImport: i0 });
|
|
9979
9983
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: CopyDirective, decorators: [{
|
|
9980
9984
|
type: Directive,
|
|
@@ -9987,7 +9991,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
|
|
|
9987
9991
|
}, {
|
|
9988
9992
|
type: Inject,
|
|
9989
9993
|
args: [TOAST_SERVICE]
|
|
9990
|
-
}] }, { type: i0.ElementRef }];
|
|
9994
|
+
}] }, { type: i0.ElementRef }, { type: i0.Renderer2 }];
|
|
9991
9995
|
}, propDecorators: { copy: [{
|
|
9992
9996
|
type: Input
|
|
9993
9997
|
}], doCopy: [{
|