@techextensor/tab-core-utility 2.2.188 → 2.2.191

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.
Files changed (73) hide show
  1. package/esm2022/index.mjs +1 -5
  2. package/esm2022/lib/tab-core-utility/app/constants/api-constants.mjs +15 -27
  3. package/esm2022/lib/tab-core-utility/app/constants/common.mjs +50 -14
  4. package/esm2022/lib/tab-core-utility/app/constants/storage-constants.mjs +2 -2
  5. package/esm2022/lib/tab-core-utility/app/crud/tab-crud.service.mjs +54 -41
  6. package/esm2022/lib/tab-core-utility/app/crud/tab-delete.service.mjs +30 -84
  7. package/esm2022/lib/tab-core-utility/app/crud/tab-formio.service.mjs +12 -141
  8. package/esm2022/lib/tab-core-utility/app/crud/tab-get.service.mjs +35 -136
  9. package/esm2022/lib/tab-core-utility/app/crud/tab-insert.service.mjs +38 -89
  10. package/esm2022/lib/tab-core-utility/app/crud/tab-update.service.mjs +129 -159
  11. package/esm2022/lib/tab-core-utility/app/enums/query.enum.mjs +7 -7
  12. package/esm2022/lib/tab-core-utility/app/helpers/common/app.helpers.mjs +19 -26
  13. package/esm2022/lib/tab-core-utility/app/helpers/common/dsq.helpers.mjs +11 -9
  14. package/esm2022/lib/tab-core-utility/app/helpers/common/meta-data.helpers.mjs +13 -13
  15. package/esm2022/lib/tab-core-utility/app/helpers/common/req-res.helpers.mjs +45 -7
  16. package/esm2022/lib/tab-core-utility/app/helpers/common/where-clause.helpers.mjs +76 -79
  17. package/esm2022/lib/tab-core-utility/app/helpers/screen/grid.helpers.mjs +4 -8
  18. package/esm2022/lib/tab-core-utility/app/helpers/screen/screen.helpers.mjs +33 -8
  19. package/esm2022/lib/tab-core-utility/app/interfaces/common.interface.mjs +1 -1
  20. package/esm2022/lib/tab-core-utility/app/models/api-query.class.mjs +1 -39
  21. package/esm2022/lib/tab-core-utility/app/models/app-field.model.mjs +7 -36
  22. package/esm2022/lib/tab-core-utility/app/models/app-object.model.mjs +47 -84
  23. package/esm2022/lib/tab-core-utility/app/models/app-screen.model.mjs +13 -24
  24. package/esm2022/lib/tab-core-utility/app/models/data-source-query.model.mjs +23 -57
  25. package/esm2022/lib/tab-core-utility/app/models/filter.model.mjs +10 -21
  26. package/esm2022/lib/tab-core-utility/app/models/parameter.model.mjs +6 -12
  27. package/esm2022/lib/tab-core-utility/app/models/sort.model.mjs +4 -11
  28. package/esm2022/lib/tab-core-utility/app/utils/json.util.mjs +16 -17
  29. package/esm2022/lib/tab-core-utility/app/utils/req-res.util.mjs +55 -1
  30. package/esm2022/lib/tab-core-utility/app/utils/tab-app.util.mjs +164 -1
  31. package/esm2022/lib/tab-core-utility/core/http-client/api.service.mjs +1 -78
  32. package/index.d.ts +0 -4
  33. package/lib/tab-core-utility/app/constants/api-constants.d.ts +12 -15
  34. package/lib/tab-core-utility/app/constants/common.d.ts +0 -9
  35. package/lib/tab-core-utility/app/constants/storage-constants.d.ts +1 -1
  36. package/lib/tab-core-utility/app/crud/tab-crud.service.d.ts +1 -8
  37. package/lib/tab-core-utility/app/crud/tab-delete.service.d.ts +10 -20
  38. package/lib/tab-core-utility/app/crud/tab-formio.service.d.ts +6 -33
  39. package/lib/tab-core-utility/app/crud/tab-get.service.d.ts +3 -45
  40. package/lib/tab-core-utility/app/crud/tab-insert.service.d.ts +21 -16
  41. package/lib/tab-core-utility/app/crud/tab-update.service.d.ts +19 -34
  42. package/lib/tab-core-utility/app/enums/query.enum.d.ts +6 -3
  43. package/lib/tab-core-utility/app/helpers/common/app.helpers.d.ts +8 -5
  44. package/lib/tab-core-utility/app/helpers/common/dsq.helpers.d.ts +0 -3
  45. package/lib/tab-core-utility/app/helpers/common/meta-data.helpers.d.ts +3 -3
  46. package/lib/tab-core-utility/app/helpers/common/req-res.helpers.d.ts +51 -7
  47. package/lib/tab-core-utility/app/helpers/common/where-clause.helpers.d.ts +0 -1
  48. package/lib/tab-core-utility/app/helpers/screen/grid.helpers.d.ts +1 -2
  49. package/lib/tab-core-utility/app/helpers/screen/screen.helpers.d.ts +0 -1
  50. package/lib/tab-core-utility/app/interfaces/common.interface.d.ts +2 -51
  51. package/lib/tab-core-utility/app/models/api-query.class.d.ts +9 -54
  52. package/lib/tab-core-utility/app/models/app-field.model.d.ts +2 -4
  53. package/lib/tab-core-utility/app/models/app-object.model.d.ts +3 -5
  54. package/lib/tab-core-utility/app/models/app-screen.model.d.ts +2 -2
  55. package/lib/tab-core-utility/app/models/data-source-query.model.d.ts +2 -7
  56. package/lib/tab-core-utility/app/models/filter.model.d.ts +2 -2
  57. package/lib/tab-core-utility/app/models/parameter.model.d.ts +2 -2
  58. package/lib/tab-core-utility/app/models/sort.model.d.ts +1 -1
  59. package/lib/tab-core-utility/app/utils/json.util.d.ts +2 -3
  60. package/lib/tab-core-utility/app/utils/req-res.util.d.ts +9 -1
  61. package/lib/tab-core-utility/app/utils/tab-app.util.d.ts +61 -0
  62. package/lib/tab-core-utility/core/http-client/api.service.d.ts +0 -46
  63. package/package.json +2 -3
  64. package/esm2022/lib/tab-core-utility/app/helpers/response.adapter.mjs +0 -38
  65. package/esm2022/lib/tab-core-utility/app/interfaces/signalr.interface.mjs +0 -42
  66. package/esm2022/lib/tab-core-utility/core/service/signalr/operation-tracker.service.mjs +0 -90
  67. package/esm2022/lib/tab-core-utility/core/service/signalr/signalr-infrastructure.service.mjs +0 -268
  68. package/esm2022/lib/tab-core-utility/core/service/signalr/signalr.service.mjs +0 -207
  69. package/lib/tab-core-utility/app/helpers/response.adapter.d.ts +0 -22
  70. package/lib/tab-core-utility/app/interfaces/signalr.interface.d.ts +0 -84
  71. package/lib/tab-core-utility/core/service/signalr/operation-tracker.service.d.ts +0 -40
  72. package/lib/tab-core-utility/core/service/signalr/signalr-infrastructure.service.d.ts +0 -73
  73. package/lib/tab-core-utility/core/service/signalr/signalr.service.d.ts +0 -122
package/esm2022/index.mjs CHANGED
@@ -42,7 +42,6 @@ export * from './lib/tab-core-utility/app/interfaces/user.interface';
42
42
  export * from './lib/tab-core-utility/app/interfaces/orgInfo.interface';
43
43
  export * from './lib/tab-core-utility/app/interfaces/schema.interface';
44
44
  export * from './lib/tab-core-utility/app/interfaces/grid.interface';
45
- export * from './lib/tab-core-utility/app/interfaces/signalr.interface';
46
45
  // App / models
47
46
  export * from './lib/tab-core-utility/app/models/api-query.class';
48
47
  export * from './lib/tab-core-utility/app/models/app-object.class';
@@ -76,12 +75,9 @@ export * from './lib/tab-core-utility/core/service/translation.service';
76
75
  export * from './lib/tab-core-utility/core/service/notification.service';
77
76
  export * from './lib/tab-core-utility/core/service/confirmation.service';
78
77
  export * from './lib/tab-core-utility/core/service/encryption.service';
79
- export * from './lib/tab-core-utility/core/service/signalr/signalr.service';
80
- export * from './lib/tab-core-utility/core/service/signalr/signalr-infrastructure.service';
81
- export * from './lib/tab-core-utility/core/service/signalr/operation-tracker.service';
82
78
  // Pipe
83
79
  export * from './lib/tab-core-utility/core/pipe/translate.pipe';
84
80
  // Provider
85
81
  export * from './lib/tab-core-utility/core/provider/translation.provider';
86
82
  export * from './lib/tab-core-utility/core/provider/notification.provider';
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2RhdGEtYWNjZXNzL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxrQkFBa0I7QUFDbEIsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMscURBQXFELENBQUM7QUFDcEUsY0FBYyx3REFBd0QsQ0FBQztBQUV2RSxhQUFhO0FBQ2IsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLHVEQUF1RCxDQUFDO0FBQ3RFLGNBQWMscURBQXFELENBQUM7QUFFcEUsYUFBYTtBQUNiLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLGdEQUFnRCxDQUFDO0FBRS9ELGdCQUFnQjtBQUNoQixjQUFjLHVEQUF1RCxDQUFDO0FBQ3RFLGNBQWMsdUVBQXVFLENBQUM7QUFDdEYsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLDJEQUEyRCxDQUFDO0FBQzFFLGNBQWMsZ0VBQWdFLENBQUM7QUFDL0UsY0FBYyw0REFBNEQsQ0FBQztBQUMzRSxjQUFjLDZEQUE2RCxDQUFDO0FBRTVFLGNBQWMseURBQXlELENBQUM7QUFDeEUsY0FBYyxvRUFBb0UsQ0FBQztBQUNuRixjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsZ0VBQWdFLENBQUM7QUFDL0UsY0FBYywwREFBMEQsQ0FBQztBQUN6RSxjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLHNGQUFzRjtBQUV0RixtQkFBbUI7QUFDbkIsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYyx5REFBeUQsQ0FBQztBQUN4RSxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYyx5REFBeUQsQ0FBQztBQUV4RSxlQUFlO0FBQ2YsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyw2REFBNkQsQ0FBQztBQUU1RSxjQUFjO0FBQ2QsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsK0NBQStDLENBQUM7QUFFOUQsT0FBTztBQUNQLGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLHFEQUFxRCxDQUFDO0FBQ3BFLGNBQWMsaURBQWlELENBQUM7QUFFaEUsT0FBTztBQUNQLCtGQUErRjtBQUMvRixpRkFBaUY7QUFDakYsd0ZBQXdGO0FBRXhGLGNBQWMsdURBQXVELENBQUM7QUFDdEUsY0FBYyxxREFBcUQsQ0FBQztBQUVwRSwrREFBK0Q7QUFHL0QsUUFBUTtBQUVSLDZEQUE2RDtBQUM3RCw0REFBNEQ7QUFDNUQsMERBQTBEO0FBRTFELFVBQVU7QUFDVixjQUFjLHlEQUF5RCxDQUFDO0FBQ3hFLGNBQWMsMERBQTBELENBQUM7QUFDekUsY0FBYywwREFBMEQsQ0FBQztBQUN6RSxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsNkRBQTZELENBQUM7QUFDNUUsY0FBYyw0RUFBNEUsQ0FBQztBQUMzRixjQUFjLHVFQUF1RSxDQUFDO0FBRXRGLE9BQU87QUFDUCxjQUFjLGlEQUFpRCxDQUFDO0FBRWhFLFdBQVc7QUFDWCxjQUFjLDJEQUEyRCxDQUFDO0FBQzFFLGNBQWMsNERBQTRELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBcHAgLyBjb25zdGFudHNcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvY29uc3RhbnRzL2FwaS1jb25zdGFudHMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9jb25zdGFudHMvY29tbW9uJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvY29uc3RhbnRzL2Vycm9yLW1lc3NhZ2VzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvY29uc3RhbnRzL3N0b3JhZ2UtY29uc3RhbnRzJztcclxuXHJcbi8vIEFwcCAvIGNydWRcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvY3J1ZC90YWItY3J1ZC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvY3J1ZC90YWItZ2V0LnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9jcnVkL3RhYi1mb3JtaW8uc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2NydWQvdGFiLWluc2VydC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvY3J1ZC90YWItZGVsZXRlLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9jcnVkL3RhYi11cGRhdGUuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2NydWQvdGFiLXdvcmtmbG93LnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9jcnVkL3RhYi1ibHVlcHJpbnQuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2NydWQvdGFiLXJlbGVhc2Uuc2VydmljZSc7XHJcblxyXG4vLyBBcHAgLyBlbnVtXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2VudW1zL2NvbW1vbi5lbnVtJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvZW51bXMvY29udHJvbGxlcnMuZW51bSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2VudW1zL2RzcS5lbnVtJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvZW51bXMvcGVybWlzc2lvbi5lbnVtJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvZW51bXMvcXVlcnkuZW51bSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2VudW1zL3dvcmtmbG93LmVudW0nO1xyXG5cclxuLy8gQXBwIC8gaGVscGVyc1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9oZWxwZXJzL2NvbW1vbi9hcHAuaGVscGVycyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2hlbHBlcnMvY29tbW9uL3VzZXItcGVyc29uYWxpemF0aW9uLmhlbHBlcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2hlbHBlcnMvY29tbW9uL2RzcS5oZWxwZXJzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaGVscGVycy9jb21tb24vcmVxLXJlcy5oZWxwZXJzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaGVscGVycy9jb21tb24vd2hlcmUtY2xhdXNlLmhlbHBlcnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9oZWxwZXJzL2NvbW1vbi90ZW1wbGF0ZS5oZWxwZXJzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaGVscGVycy9jb21tb24vbWV0YS1kYXRhLmhlbHBlcnMnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaGVscGVycy9zY3JlZW4vZm9ybXMuaGVscGVycyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2hlbHBlcnMvc2NyZWVuL2dyaWQtY29sdW1uLWRhdGEuaGVscGVycyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2hlbHBlcnMvc2NyZWVuL2dyaWQuaGVscGVycyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2hlbHBlcnMvc2NyZWVuL21lZGlhLXVwbG9hZC5oZWxwZXJzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaGVscGVycy9zY3JlZW4vcGx1Z2luLmhlbHBlcnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9oZWxwZXJzL3NjcmVlbi9zY3JlZW4uaGVscGVycyc7XHJcbi8vIGV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2hlbHBlcnMvc2NyZWVuL2Z0cC1tZWRpYS11cGxvYWQuaGVscGVycyc7XHJcblxyXG4vLyBBcHAgLyBpbnRlcmZhY2VzXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2ludGVyZmFjZXMvYXV0aC5pbnRlcmZhY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9pbnRlcmZhY2VzL2NvbW1vbi5pbnRlcmZhY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9pbnRlcmZhY2VzL3VzZXIuaW50ZXJmYWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaW50ZXJmYWNlcy9vcmdJbmZvLmludGVyZmFjZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2ludGVyZmFjZXMvc2NoZW1hLmludGVyZmFjZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2ludGVyZmFjZXMvZ3JpZC5pbnRlcmZhY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9pbnRlcmZhY2VzL3NpZ25hbHIuaW50ZXJmYWNlJztcclxuXHJcbi8vIEFwcCAvIG1vZGVsc1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9tb2RlbHMvYXBpLXF1ZXJ5LmNsYXNzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvbW9kZWxzL2FwcC1vYmplY3QuY2xhc3MnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9tb2RlbHMvY29tbW9uLmNsYXNzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvbW9kZWxzL2RhdGEtc291cmNlLXF1ZXJpZXMuY2xhc3MnO1xyXG5cclxuLy8gQXBwIC8gdXRpbHNcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvdXRpbHMvZmlsdGVyLnV0aWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC91dGlscy9mb3JtLWJ1aWxkZXIudXRpbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL3V0aWxzL2pzb24udXRpbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL3V0aWxzL29wZXJhdG9ycy51dGlsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvdXRpbHMvcmVxLXJlcy51dGlsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvdXRpbHMvdGFiLWFwcC51dGlsJztcclxuXHJcbi8vIEF1dGhcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hdXRoL2F1dGguc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXV0aC9sb2NhbC1zdG9yYWdlLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2F1dGgvc2Vzc2lvbi1zdG9yYWdlLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2F1dGgvaWRiLXN0b3JhZ2Uuc2VydmljZSc7XHJcblxyXG4vLyBDb3JlXHJcbi8vIGV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvY29yZS9lcnJvci1oYW5kbGVyL2Vycm9yLWhhbmRsZXItaW50ZXJjZXB0b3Iuc2VydmljZSc7XHJcbi8vIGV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvY29yZS9lcnJvci1oYW5kbGVyL2Vycm9yLWhhbmRsZXIuc3RvcmUnO1xyXG4vLyBleHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2NvcmUvZXJyb3ItaGFuZGxlci9tb2RlbHMvZXJyb3ItaGFuZGxlci5zdGF0ZSc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2NvcmUvaHR0cC1jbGllbnQvYXBpLXVybC50b2tlbic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvY29yZS9odHRwLWNsaWVudC9hcGkuc2VydmljZSc7XHJcblxyXG4vLyBleHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2NvcmUvdXRpbC9hdXRoLnV0aWxzJztcclxuXHJcblxyXG4vLyBzdG9yZVxyXG5cclxuLy8gZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9zdG9yZS9vcmdpbmZvLnN0b3JlJ1xyXG4vLyBleHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L3N0b3JlL3NjaGVtYS5zdG9yZSdcclxuLy8gZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9zdG9yZS9hdXRoLnN0b3JlJ1xyXG5cclxuLy8gU2VydmljZVxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2NvcmUvc2VydmljZS90cmFuc2xhdGlvbi5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9jb3JlL3NlcnZpY2Uvbm90aWZpY2F0aW9uLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2NvcmUvc2VydmljZS9jb25maXJtYXRpb24uc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvY29yZS9zZXJ2aWNlL2VuY3J5cHRpb24uc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvY29yZS9zZXJ2aWNlL3NpZ25hbHIvc2lnbmFsci5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9jb3JlL3NlcnZpY2Uvc2lnbmFsci9zaWduYWxyLWluZnJhc3RydWN0dXJlLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2NvcmUvc2VydmljZS9zaWduYWxyL29wZXJhdGlvbi10cmFja2VyLnNlcnZpY2UnO1xyXG5cclxuLy8gUGlwZVxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2NvcmUvcGlwZS90cmFuc2xhdGUucGlwZSc7XHJcblxyXG4vLyBQcm92aWRlclxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2NvcmUvcHJvdmlkZXIvdHJhbnNsYXRpb24ucHJvdmlkZXInO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2NvcmUvcHJvdmlkZXIvbm90aWZpY2F0aW9uLnByb3ZpZGVyJztcclxuXHJcbiJdfQ==
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2RhdGEtYWNjZXNzL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxrQkFBa0I7QUFDbEIsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMscURBQXFELENBQUM7QUFDcEUsY0FBYyx3REFBd0QsQ0FBQztBQUV2RSxhQUFhO0FBQ2IsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLHVEQUF1RCxDQUFDO0FBQ3RFLGNBQWMscURBQXFELENBQUM7QUFFcEUsYUFBYTtBQUNiLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLGdEQUFnRCxDQUFDO0FBRS9ELGdCQUFnQjtBQUNoQixjQUFjLHVEQUF1RCxDQUFDO0FBQ3RFLGNBQWMsdUVBQXVFLENBQUM7QUFDdEYsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLDJEQUEyRCxDQUFDO0FBQzFFLGNBQWMsZ0VBQWdFLENBQUM7QUFDL0UsY0FBYyw0REFBNEQsQ0FBQztBQUMzRSxjQUFjLDZEQUE2RCxDQUFDO0FBRTVFLGNBQWMseURBQXlELENBQUM7QUFDeEUsY0FBYyxvRUFBb0UsQ0FBQztBQUNuRixjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsZ0VBQWdFLENBQUM7QUFDL0UsY0FBYywwREFBMEQsQ0FBQztBQUN6RSxjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLHNGQUFzRjtBQUV0RixtQkFBbUI7QUFDbkIsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYyx5REFBeUQsQ0FBQztBQUN4RSxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsc0RBQXNELENBQUM7QUFFckUsZUFBZTtBQUNmLGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsNkRBQTZELENBQUM7QUFFNUUsY0FBYztBQUNkLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLCtDQUErQyxDQUFDO0FBRTlELE9BQU87QUFDUCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyxxREFBcUQsQ0FBQztBQUNwRSxjQUFjLGlEQUFpRCxDQUFDO0FBRWhFLE9BQU87QUFDUCwrRkFBK0Y7QUFDL0YsaUZBQWlGO0FBQ2pGLHdGQUF3RjtBQUV4RixjQUFjLHVEQUF1RCxDQUFDO0FBQ3RFLGNBQWMscURBQXFELENBQUM7QUFFcEUsK0RBQStEO0FBRy9ELFFBQVE7QUFFUiw2REFBNkQ7QUFDN0QsNERBQTREO0FBQzVELDBEQUEwRDtBQUUxRCxVQUFVO0FBQ1YsY0FBYyx5REFBeUQsQ0FBQztBQUN4RSxjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLGNBQWMsMERBQTBELENBQUM7QUFDekUsY0FBYyx3REFBd0QsQ0FBQztBQUV2RSxPQUFPO0FBQ1AsY0FBYyxpREFBaUQsQ0FBQztBQUVoRSxXQUFXO0FBQ1gsY0FBYywyREFBMkQsQ0FBQztBQUMxRSxjQUFjLDREQUE0RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQXBwIC8gY29uc3RhbnRzXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2NvbnN0YW50cy9hcGktY29uc3RhbnRzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvY29uc3RhbnRzL2NvbW1vbic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2NvbnN0YW50cy9lcnJvci1tZXNzYWdlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2NvbnN0YW50cy9zdG9yYWdlLWNvbnN0YW50cyc7XHJcblxyXG4vLyBBcHAgLyBjcnVkXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2NydWQvdGFiLWNydWQuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2NydWQvdGFiLWdldC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvY3J1ZC90YWItZm9ybWlvLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9jcnVkL3RhYi1pbnNlcnQuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2NydWQvdGFiLWRlbGV0ZS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvY3J1ZC90YWItdXBkYXRlLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9jcnVkL3RhYi13b3JrZmxvdy5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvY3J1ZC90YWItYmx1ZXByaW50LnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9jcnVkL3RhYi1yZWxlYXNlLnNlcnZpY2UnO1xyXG5cclxuLy8gQXBwIC8gZW51bVxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9lbnVtcy9jb21tb24uZW51bSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2VudW1zL2NvbnRyb2xsZXJzLmVudW0nO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9lbnVtcy9kc3EuZW51bSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2VudW1zL3Blcm1pc3Npb24uZW51bSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2VudW1zL3F1ZXJ5LmVudW0nO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9lbnVtcy93b3JrZmxvdy5lbnVtJztcclxuXHJcbi8vIEFwcCAvIGhlbHBlcnNcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaGVscGVycy9jb21tb24vYXBwLmhlbHBlcnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9oZWxwZXJzL2NvbW1vbi91c2VyLXBlcnNvbmFsaXphdGlvbi5oZWxwZXInO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9oZWxwZXJzL2NvbW1vbi9kc3EuaGVscGVycyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2hlbHBlcnMvY29tbW9uL3JlcS1yZXMuaGVscGVycyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2hlbHBlcnMvY29tbW9uL3doZXJlLWNsYXVzZS5oZWxwZXJzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaGVscGVycy9jb21tb24vdGVtcGxhdGUuaGVscGVycyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2hlbHBlcnMvY29tbW9uL21ldGEtZGF0YS5oZWxwZXJzJztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2hlbHBlcnMvc2NyZWVuL2Zvcm1zLmhlbHBlcnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9oZWxwZXJzL3NjcmVlbi9ncmlkLWNvbHVtbi1kYXRhLmhlbHBlcnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9oZWxwZXJzL3NjcmVlbi9ncmlkLmhlbHBlcnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9oZWxwZXJzL3NjcmVlbi9tZWRpYS11cGxvYWQuaGVscGVycyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2hlbHBlcnMvc2NyZWVuL3BsdWdpbi5oZWxwZXJzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaGVscGVycy9zY3JlZW4vc2NyZWVuLmhlbHBlcnMnO1xyXG4vLyBleHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9oZWxwZXJzL3NjcmVlbi9mdHAtbWVkaWEtdXBsb2FkLmhlbHBlcnMnO1xyXG5cclxuLy8gQXBwIC8gaW50ZXJmYWNlc1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9pbnRlcmZhY2VzL2F1dGguaW50ZXJmYWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaW50ZXJmYWNlcy9jb21tb24uaW50ZXJmYWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaW50ZXJmYWNlcy91c2VyLmludGVyZmFjZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2ludGVyZmFjZXMvb3JnSW5mby5pbnRlcmZhY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9pbnRlcmZhY2VzL3NjaGVtYS5pbnRlcmZhY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9pbnRlcmZhY2VzL2dyaWQuaW50ZXJmYWNlJztcclxuXHJcbi8vIEFwcCAvIG1vZGVsc1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9tb2RlbHMvYXBpLXF1ZXJ5LmNsYXNzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvbW9kZWxzL2FwcC1vYmplY3QuY2xhc3MnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9tb2RlbHMvY29tbW9uLmNsYXNzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvbW9kZWxzL2RhdGEtc291cmNlLXF1ZXJpZXMuY2xhc3MnO1xyXG5cclxuLy8gQXBwIC8gdXRpbHNcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvdXRpbHMvZmlsdGVyLnV0aWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC91dGlscy9mb3JtLWJ1aWxkZXIudXRpbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL3V0aWxzL2pzb24udXRpbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL3V0aWxzL29wZXJhdG9ycy51dGlsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvdXRpbHMvcmVxLXJlcy51dGlsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvdXRpbHMvdGFiLWFwcC51dGlsJztcclxuXHJcbi8vIEF1dGhcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9hdXRoL2F1dGguc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvYXV0aC9sb2NhbC1zdG9yYWdlLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2F1dGgvc2Vzc2lvbi1zdG9yYWdlLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2F1dGgvaWRiLXN0b3JhZ2Uuc2VydmljZSc7XHJcblxyXG4vLyBDb3JlXHJcbi8vIGV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvY29yZS9lcnJvci1oYW5kbGVyL2Vycm9yLWhhbmRsZXItaW50ZXJjZXB0b3Iuc2VydmljZSc7XHJcbi8vIGV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvY29yZS9lcnJvci1oYW5kbGVyL2Vycm9yLWhhbmRsZXIuc3RvcmUnO1xyXG4vLyBleHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2NvcmUvZXJyb3ItaGFuZGxlci9tb2RlbHMvZXJyb3ItaGFuZGxlci5zdGF0ZSc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2NvcmUvaHR0cC1jbGllbnQvYXBpLXVybC50b2tlbic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvY29yZS9odHRwLWNsaWVudC9hcGkuc2VydmljZSc7XHJcblxyXG4vLyBleHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2NvcmUvdXRpbC9hdXRoLnV0aWxzJztcclxuXHJcblxyXG4vLyBzdG9yZVxyXG5cclxuLy8gZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9zdG9yZS9vcmdpbmZvLnN0b3JlJ1xyXG4vLyBleHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L3N0b3JlL3NjaGVtYS5zdG9yZSdcclxuLy8gZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9zdG9yZS9hdXRoLnN0b3JlJ1xyXG5cclxuLy8gU2VydmljZVxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2NvcmUvc2VydmljZS90cmFuc2xhdGlvbi5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFiLWNvcmUtdXRpbGl0eS9jb3JlL3NlcnZpY2Uvbm90aWZpY2F0aW9uLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWItY29yZS11dGlsaXR5L2NvcmUvc2VydmljZS9jb25maXJtYXRpb24uc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvY29yZS9zZXJ2aWNlL2VuY3J5cHRpb24uc2VydmljZSc7XHJcblxyXG4vLyBQaXBlXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvY29yZS9waXBlL3RyYW5zbGF0ZS5waXBlJztcclxuXHJcbi8vIFByb3ZpZGVyXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvY29yZS9wcm92aWRlci90cmFuc2xhdGlvbi5wcm92aWRlcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1jb3JlLXV0aWxpdHkvY29yZS9wcm92aWRlci9ub3RpZmljYXRpb24ucHJvdmlkZXInO1xyXG5cclxuIl19
@@ -5,12 +5,16 @@ export const API = {
5
5
  // workflowEndPoint: 'http://192.168.10.181/',
6
6
  novuBackendUrl: 'https://novuapi.techextensor.com',
7
7
  novuSocketUrl: 'https://novuws.techextensor.com',
8
+ insert: 'CRUD/Insert',
8
9
  bulkInsert: 'CRUD/BulkInsert',
10
+ update: 'CRUD/Update',
11
+ delete: 'CRUD/Delete',
9
12
  select: 'CRUD/Select',
10
- screen: 'screen',
11
- listsGet: 'lists/Get',
13
+ getDSQ: 'CRUD/DSQ',
14
+ getScreen: 'Layout/GetScreen',
15
+ getListFromDsq: 'List/Get?dataSourceQueryId=',
12
16
  buildApp: 'Application/BuildApp',
13
- metadataSchema: 'metadata/schema',
17
+ getSchema: 'Application/GetSchemaFile',
14
18
  login: 'identity/login',
15
19
  pluginUpload: 'Plugins/Upload',
16
20
  getFile: 'Plugins/GetFileById',
@@ -23,13 +27,13 @@ export const API = {
23
27
  multipleFileUpload: 'File/UploadFile',
24
28
  deleteFile: 'File/DeleteFile',
25
29
  getMediaFile: 'File/GetFile',
26
- auditGetHistory: 'audit/gethistory',
30
+ getHistory: 'GetHistory',
27
31
  changePassword: 'identity/ChangePassword',
28
32
  restpassword: 'identity/ResetPassword',
29
33
  getImage: 'File/GetImage',
30
34
  pmjayImport: 'ImportData',
31
- screenData: 'formio/screendata',
32
- processRequest: 'formio/processrequest',
35
+ getScreenData: 'FormIO/GetScreenData',
36
+ processRequest: 'FormIO/ProcessRequest',
33
37
  getNextStatus: 'Transition/GetNextStatus',
34
38
  updateStatus: 'Transition/UpdateStatus',
35
39
  registerUser: 'identity/register',
@@ -43,7 +47,7 @@ export const API = {
43
47
  registerAppObjects: 'Application/RegisterAppObjects',
44
48
  languageResource: 'Resources/LanguageResource',
45
49
  refreshToken: 'identity/Refresh',
46
- globalSearch: 'globalsearch/search',
50
+ search: 'Search',
47
51
  cloneDsq: 'Application/CloneDSQ',
48
52
  InsertScreenPerformanceAnalytics: 'ElasticSearch/InsertScreenPerformanceAnalytics',
49
53
  GenerateHttpRequest: 'CRUD/GenerateHttpRequest',
@@ -51,10 +55,10 @@ export const API = {
51
55
  GetSummaryOfPerformanceAnalytics: 'ElasticSearch/GetSummaryOfPerformanceAnalytics',
52
56
  GetDataJsonByType: 'Tenant/GetDataJsonByType',
53
57
  SyncAppFields: 'Application/SyncAppFields',
54
- reportExport: 'report/export',
58
+ exportReport: 'report/ExportReport',
55
59
  RefreshGlobalSearchData: 'ElasticSearch/RefreshGlobalSearchData',
56
60
  RefreshRecordInfoData: 'DataIntegrity/RefreshRecordInfoData',
57
- reportDownload: 'report/download',
61
+ downloadReportFile: 'report/DownloadReportFile',
58
62
  sendReport: 'report/SendReport',
59
63
  GetReleaseJSONDifference: 'Release/GetReleaseJSONDifference',
60
64
  GetDataDifference: 'Release/GetDataDifference',
@@ -62,22 +66,6 @@ export const API = {
62
66
  Execute: 'DataBaseExecution/Execute',
63
67
  GetAllDocumnets: 'Documents/GetAllDocuments',
64
68
  GetDocumentById: 'Documents/GetDocumentById',
65
- ExecuteWorkflow: 'Workflow/Execute',
66
- QueriesExecute: 'Queries/execute',
67
- QueriesSelect: 'queries/select',
68
- recordsInsert: 'records/insert',
69
- recordsUpdate: 'records/update',
70
- recordsDelete: 'records/delete',
69
+ ExecuteWorkflow: 'Workflow/Execute'
71
70
  };
72
- export const APIServices = {
73
- crudService: 'crudService',
74
- metadataService: 'metadataService',
75
- formioService: 'formioService',
76
- identityService: 'identityService',
77
- codeExecutorService: 'codeExecutorService',
78
- notificationService: 'notificationService',
79
- workflowService: 'workflowService',
80
- kibanaService: 'kibanaService',
81
- reportService: 'reportService'
82
- };
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWNvbnN0YW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9jb25zdGFudHMvYXBpLWNvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUc7SUFDakIscUJBQXFCLEVBQUUsY0FBYyxFQUFFLFNBQVM7SUFDaEQsMkJBQTJCLEVBQUUsY0FBYyxFQUFFLE1BQU07SUFDbkQsa0RBQWtEO0lBQ2xELDhDQUE4QztJQUM5QyxjQUFjLEVBQUUsa0NBQWtDO0lBQ2xELGFBQWEsRUFBRSxpQ0FBaUM7SUFFaEQsVUFBVSxFQUFFLGlCQUFpQjtJQUM3QixNQUFNLEVBQUUsYUFBYTtJQUNyQixNQUFNLEVBQUUsUUFBUTtJQUNoQixRQUFRLEVBQUUsV0FBVztJQUNyQixRQUFRLEVBQUUsc0JBQXNCO0lBQ2hDLGNBQWMsRUFBRSxpQkFBaUI7SUFDakMsS0FBSyxFQUFFLGdCQUFnQjtJQUN2QixZQUFZLEVBQUUsZ0JBQWdCO0lBQzlCLE9BQU8sRUFBRSxxQkFBcUI7SUFDOUIsa0JBQWtCLEVBQUUsZ0JBQWdCO0lBQ3BDLGFBQWEsRUFBRSxnQkFBZ0I7SUFDL0IsVUFBVSxFQUFFLHdCQUF3QjtJQUNwQyxTQUFTLEVBQUUsV0FBVztJQUN0Qix5QkFBeUI7SUFDekIsVUFBVSxFQUFFLGFBQWE7SUFDekIsa0JBQWtCLEVBQUUsaUJBQWlCO0lBQ3JDLFVBQVUsRUFBRSxpQkFBaUI7SUFDN0IsWUFBWSxFQUFFLGNBQWM7SUFDNUIsZUFBZSxFQUFFLGtCQUFrQjtJQUNuQyxjQUFjLEVBQUUseUJBQXlCO0lBQ3pDLFlBQVksRUFBRSx3QkFBd0I7SUFDdEMsUUFBUSxFQUFFLGVBQWU7SUFDekIsV0FBVyxFQUFFLFlBQVk7SUFDekIsVUFBVSxFQUFFLG1CQUFtQjtJQUMvQixjQUFjLEVBQUUsdUJBQXVCO0lBQ3ZDLGFBQWEsRUFBRSwwQkFBMEI7SUFDekMsWUFBWSxFQUFFLHlCQUF5QjtJQUN2QyxZQUFZLEVBQUUsbUJBQW1CO0lBQ2pDLGNBQWMsRUFBRSx5QkFBeUI7SUFDekMsYUFBYSxFQUFFLDJCQUEyQjtJQUMxQyxjQUFjLEVBQUUseUJBQXlCO0lBQ3pDLGlCQUFpQixFQUFFLDRCQUE0QjtJQUMvQyxnQkFBZ0IsRUFBRSx5QkFBeUI7SUFDM0MscUJBQXFCLEVBQUUsOEJBQThCO0lBQ3JELHlDQUF5QztJQUN6QyxrQkFBa0IsRUFBRSxnQ0FBZ0M7SUFDcEQsZ0JBQWdCLEVBQUUsNEJBQTRCO0lBQzlDLFlBQVksRUFBRSxrQkFBa0I7SUFDaEMsWUFBWSxFQUFFLHFCQUFxQjtJQUNuQyxRQUFRLEVBQUUsc0JBQXNCO0lBQ2hDLGdDQUFnQyxFQUM5QixnREFBZ0Q7SUFDbEQsbUJBQW1CLEVBQUUsMEJBQTBCO0lBQy9DLCtCQUErQixFQUFHLCtDQUErQztJQUNqRixnQ0FBZ0MsRUFBRyxnREFBZ0Q7SUFDbkYsaUJBQWlCLEVBQUUsMEJBQTBCO0lBQzdDLGFBQWEsRUFBRywyQkFBMkI7SUFDM0MsWUFBWSxFQUFFLGVBQWU7SUFDN0IsdUJBQXVCLEVBQUcsdUNBQXVDO0lBQ2pFLHFCQUFxQixFQUFFLHFDQUFxQztJQUM1RCxjQUFjLEVBQUUsaUJBQWlCO0lBQ2pDLFVBQVUsRUFBRyxtQkFBbUI7SUFDaEMsd0JBQXdCLEVBQUMsa0NBQWtDO0lBQzNELGlCQUFpQixFQUFDLDJCQUEyQjtJQUM3QyxjQUFjLEVBQUUsdUJBQXVCO0lBQ3ZDLE9BQU8sRUFBRSwyQkFBMkI7SUFDcEMsZUFBZSxFQUFFLDJCQUEyQjtJQUM1QyxlQUFlLEVBQUUsMkJBQTJCO0lBQzVDLGVBQWUsRUFBRSxrQkFBa0I7SUFDbkMsY0FBYyxFQUFFLGlCQUFpQjtJQUNqQyxhQUFhLEVBQUUsZ0JBQWdCO0lBQy9CLGFBQWEsRUFBRSxnQkFBZ0I7SUFDL0IsYUFBYSxFQUFFLGdCQUFnQjtJQUMvQixhQUFhLEVBQUUsZ0JBQWdCO0NBQ2hDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQTJDO0lBQ2pFLFdBQVcsRUFBRSxhQUFhO0lBQzFCLGVBQWUsRUFBRSxpQkFBaUI7SUFDbEMsYUFBYSxFQUFFLGVBQWU7SUFDOUIsZUFBZSxFQUFFLGlCQUFpQjtJQUNsQyxtQkFBbUIsRUFBRSxxQkFBcUI7SUFDMUMsbUJBQW1CLEVBQUUscUJBQXFCO0lBQzFDLGVBQWUsRUFBRSxpQkFBaUI7SUFDbEMsYUFBYSxFQUFFLGVBQWU7SUFDOUIsYUFBYSxFQUFFLGVBQWU7Q0FDL0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQVBJU2VydmljZU5hbWUgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2NvbW1vbi5pbnRlcmZhY2UnO1xyXG5cclxuZXhwb3J0IGNvbnN0IEFQSSA9IHtcclxuICBhcHBsaWNhdGlvbklkZW50aWZpZXI6ICcwMmRQbEdYQ0tDUHknLCAvL3Bob2VuaXhcclxuICBhcHBsaWNhdGlvbklkZW50aWZpZXJGb3JQTVM6ICdxcW1Yd2VHQjFEYkcnLCAvLyBwbXNcclxuICAvLyBlbmRwb2ludDogJ2h0dHA6Ly8xOTIuMTY4LjEwLjE4MTo4NDQxL2FwaS92MS8nLFxyXG4gIC8vIHdvcmtmbG93RW5kUG9pbnQ6ICdodHRwOi8vMTkyLjE2OC4xMC4xODEvJyxcclxuICBub3Z1QmFja2VuZFVybDogJ2h0dHBzOi8vbm92dWFwaS50ZWNoZXh0ZW5zb3IuY29tJyxcclxuICBub3Z1U29ja2V0VXJsOiAnaHR0cHM6Ly9ub3Z1d3MudGVjaGV4dGVuc29yLmNvbScsXHJcblxyXG4gIGJ1bGtJbnNlcnQ6ICdDUlVEL0J1bGtJbnNlcnQnLFxyXG4gIHNlbGVjdDogJ0NSVUQvU2VsZWN0JyxcclxuICBzY3JlZW46ICdzY3JlZW4nLFxyXG4gIGxpc3RzR2V0OiAnbGlzdHMvR2V0JyxcclxuICBidWlsZEFwcDogJ0FwcGxpY2F0aW9uL0J1aWxkQXBwJyxcclxuICBtZXRhZGF0YVNjaGVtYTogJ21ldGFkYXRhL3NjaGVtYScsXHJcbiAgbG9naW46ICdpZGVudGl0eS9sb2dpbicsXHJcbiAgcGx1Z2luVXBsb2FkOiAnUGx1Z2lucy9VcGxvYWQnLFxyXG4gIGdldEZpbGU6ICdQbHVnaW5zL0dldEZpbGVCeUlkJyxcclxuICBnZXRBbGxQbHVnaW5CeVR5cGU6ICdQbHVnaW5zL0dldEFsbCcsXHJcbiAgdGVtcGxhdGVQYXJzZTogJ1RlbXBsYXRlL1BhcnNlJyxcclxuICBwdWJsaXNoQXBwOiAnQXBwbGljYXRpb24vUHVibGlzaEFwcCcsXHJcbiAgZ2V0cmVjb3JkOiAnR2V0UmVjb3JkJyxcclxuICAvLyByYXdTUUw6ICdDUlVEL1Jhd1NRTCcsXHJcbiAgZmlsZVVwbG9hZDogJ0ZpbGUvVXBsb2FkJyxcclxuICBtdWx0aXBsZUZpbGVVcGxvYWQ6ICdGaWxlL1VwbG9hZEZpbGUnLFxyXG4gIGRlbGV0ZUZpbGU6ICdGaWxlL0RlbGV0ZUZpbGUnLFxyXG4gIGdldE1lZGlhRmlsZTogJ0ZpbGUvR2V0RmlsZScsXHJcbiAgYXVkaXRHZXRIaXN0b3J5OiAnYXVkaXQvZ2V0aGlzdG9yeScsXHJcbiAgY2hhbmdlUGFzc3dvcmQ6ICdpZGVudGl0eS9DaGFuZ2VQYXNzd29yZCcsXHJcbiAgcmVzdHBhc3N3b3JkOiAnaWRlbnRpdHkvUmVzZXRQYXNzd29yZCcsXHJcbiAgZ2V0SW1hZ2U6ICdGaWxlL0dldEltYWdlJyxcclxuICBwbWpheUltcG9ydDogJ0ltcG9ydERhdGEnLFxyXG4gIHNjcmVlbkRhdGE6ICdmb3JtaW8vc2NyZWVuZGF0YScsXHJcbiAgcHJvY2Vzc1JlcXVlc3Q6ICdmb3JtaW8vcHJvY2Vzc3JlcXVlc3QnLFxyXG4gIGdldE5leHRTdGF0dXM6ICdUcmFuc2l0aW9uL0dldE5leHRTdGF0dXMnLFxyXG4gIHVwZGF0ZVN0YXR1czogJ1RyYW5zaXRpb24vVXBkYXRlU3RhdHVzJyxcclxuICByZWdpc3RlclVzZXI6ICdpZGVudGl0eS9yZWdpc3RlcicsXHJcbiAgZ2V0VXNlckRldGFpbHM6ICdpZGVudGl0eS9HZXRVc2VyRGV0YWlscycsXHJcbiAgZ2V0UGVybWlzc2lvbjogJ0FwcGxpY2F0aW9uL0dldFBlcm1pc3Npb24nLFxyXG4gIHRlc3RDb25uZWN0aW9uOiAnTWV0YURhdGEvVGVzdENvbm5lY3Rpb24nLFxyXG4gIHBlcmZvcm1WYWxpZGF0aW9uOiAnTWV0YURhdGEvUGVyZm9ybVZhbGlkYXRpb24nLFxyXG4gIHNldFRhYkNvbXBvbmVudHM6ICdUZW5hbnQvU2V0VGFiQ29tcG9uZW50cycsXHJcbiAgQnVpbGRGb3JtSU9Db21wb25lbnRzOiAnRm9ybUlPL0J1aWxkRm9ybUlPQ29tcG9uZW50cycsXHJcbiAgLy8gZmlsZU1hbmFnZXJVcGxvYWQ6J0ZpbGVNYW5hZ2VyL1VwbG9hZCdcclxuICByZWdpc3RlckFwcE9iamVjdHM6ICdBcHBsaWNhdGlvbi9SZWdpc3RlckFwcE9iamVjdHMnLFxyXG4gIGxhbmd1YWdlUmVzb3VyY2U6ICdSZXNvdXJjZXMvTGFuZ3VhZ2VSZXNvdXJjZScsXHJcbiAgcmVmcmVzaFRva2VuOiAnaWRlbnRpdHkvUmVmcmVzaCcsXHJcbiAgZ2xvYmFsU2VhcmNoOiAnZ2xvYmFsc2VhcmNoL3NlYXJjaCcsXHJcbiAgY2xvbmVEc3E6ICdBcHBsaWNhdGlvbi9DbG9uZURTUScsXHJcbiAgSW5zZXJ0U2NyZWVuUGVyZm9ybWFuY2VBbmFseXRpY3M6XHJcbiAgICAnRWxhc3RpY1NlYXJjaC9JbnNlcnRTY3JlZW5QZXJmb3JtYW5jZUFuYWx5dGljcycsXHJcbiAgR2VuZXJhdGVIdHRwUmVxdWVzdDogJ0NSVUQvR2VuZXJhdGVIdHRwUmVxdWVzdCcsXHJcbiAgR2V0RGV0YWlsT2ZQZXJmb3JtYW5jZUFuYWx5dGljcyA6ICdFbGFzdGljU2VhcmNoL0dldERldGFpbE9mUGVyZm9ybWFuY2VBbmFseXRpY3MnLFxyXG4gIEdldFN1bW1hcnlPZlBlcmZvcm1hbmNlQW5hbHl0aWNzIDogJ0VsYXN0aWNTZWFyY2gvR2V0U3VtbWFyeU9mUGVyZm9ybWFuY2VBbmFseXRpY3MnLFxyXG4gIEdldERhdGFKc29uQnlUeXBlOiAnVGVuYW50L0dldERhdGFKc29uQnlUeXBlJyxcclxuICBTeW5jQXBwRmllbGRzIDogJ0FwcGxpY2F0aW9uL1N5bmNBcHBGaWVsZHMnLFxyXG4gIHJlcG9ydEV4cG9ydDogJ3JlcG9ydC9leHBvcnQnLFxyXG4gIFJlZnJlc2hHbG9iYWxTZWFyY2hEYXRhIDogJ0VsYXN0aWNTZWFyY2gvUmVmcmVzaEdsb2JhbFNlYXJjaERhdGEnLFxyXG4gIFJlZnJlc2hSZWNvcmRJbmZvRGF0YTogJ0RhdGFJbnRlZ3JpdHkvUmVmcmVzaFJlY29yZEluZm9EYXRhJyxcclxuICByZXBvcnREb3dubG9hZDogJ3JlcG9ydC9kb3dubG9hZCcsXHJcbiAgc2VuZFJlcG9ydCA6ICdyZXBvcnQvU2VuZFJlcG9ydCcsXHJcbiAgR2V0UmVsZWFzZUpTT05EaWZmZXJlbmNlOidSZWxlYXNlL0dldFJlbGVhc2VKU09ORGlmZmVyZW5jZScsXHJcbiAgR2V0RGF0YURpZmZlcmVuY2U6J1JlbGVhc2UvR2V0RGF0YURpZmZlcmVuY2UnLFxyXG4gIFJlZ2lzdGVyVGVuYW50OiAnVGVuYW50L1JlZ2lzdGVyVGVuYW50JyxcclxuICBFeGVjdXRlOiAnRGF0YUJhc2VFeGVjdXRpb24vRXhlY3V0ZScsXHJcbiAgR2V0QWxsRG9jdW1uZXRzOiAnRG9jdW1lbnRzL0dldEFsbERvY3VtZW50cycsXHJcbiAgR2V0RG9jdW1lbnRCeUlkOiAnRG9jdW1lbnRzL0dldERvY3VtZW50QnlJZCcsXHJcbiAgRXhlY3V0ZVdvcmtmbG93OiAnV29ya2Zsb3cvRXhlY3V0ZScsXHJcbiAgUXVlcmllc0V4ZWN1dGU6ICdRdWVyaWVzL2V4ZWN1dGUnLFxyXG4gIFF1ZXJpZXNTZWxlY3Q6ICdxdWVyaWVzL3NlbGVjdCcsXHJcbiAgcmVjb3Jkc0luc2VydDogJ3JlY29yZHMvaW5zZXJ0JyxcclxuICByZWNvcmRzVXBkYXRlOiAncmVjb3Jkcy91cGRhdGUnLFxyXG4gIHJlY29yZHNEZWxldGU6ICdyZWNvcmRzL2RlbGV0ZScsXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgQVBJU2VydmljZXM6IFJlY29yZDxBUElTZXJ2aWNlTmFtZSwgQVBJU2VydmljZU5hbWU+ID0ge1xyXG4gIGNydWRTZXJ2aWNlOiAnY3J1ZFNlcnZpY2UnLFxyXG4gIG1ldGFkYXRhU2VydmljZTogJ21ldGFkYXRhU2VydmljZScsXHJcbiAgZm9ybWlvU2VydmljZTogJ2Zvcm1pb1NlcnZpY2UnLFxyXG4gIGlkZW50aXR5U2VydmljZTogJ2lkZW50aXR5U2VydmljZScsXHJcbiAgY29kZUV4ZWN1dG9yU2VydmljZTogJ2NvZGVFeGVjdXRvclNlcnZpY2UnLFxyXG4gIG5vdGlmaWNhdGlvblNlcnZpY2U6ICdub3RpZmljYXRpb25TZXJ2aWNlJyxcclxuICB3b3JrZmxvd1NlcnZpY2U6ICd3b3JrZmxvd1NlcnZpY2UnLFxyXG4gIGtpYmFuYVNlcnZpY2U6ICdraWJhbmFTZXJ2aWNlJyxcclxuICByZXBvcnRTZXJ2aWNlOiAncmVwb3J0U2VydmljZSdcclxufTsiXX0=
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWNvbnN0YW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9jb25zdGFudHMvYXBpLWNvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUc7SUFDakIscUJBQXFCLEVBQUUsY0FBYyxFQUFFLFNBQVM7SUFDaEQsMkJBQTJCLEVBQUUsY0FBYyxFQUFFLE1BQU07SUFDbkQsa0RBQWtEO0lBQ2xELDhDQUE4QztJQUM5QyxjQUFjLEVBQUUsa0NBQWtDO0lBQ2xELGFBQWEsRUFBRSxpQ0FBaUM7SUFFaEQsTUFBTSxFQUFFLGFBQWE7SUFDckIsVUFBVSxFQUFFLGlCQUFpQjtJQUM3QixNQUFNLEVBQUUsYUFBYTtJQUNyQixNQUFNLEVBQUUsYUFBYTtJQUNyQixNQUFNLEVBQUUsYUFBYTtJQUNyQixNQUFNLEVBQUUsVUFBVTtJQUNsQixTQUFTLEVBQUUsa0JBQWtCO0lBQzdCLGNBQWMsRUFBRSw2QkFBNkI7SUFDN0MsUUFBUSxFQUFFLHNCQUFzQjtJQUNoQyxTQUFTLEVBQUUsMkJBQTJCO0lBQ3RDLEtBQUssRUFBRSxnQkFBZ0I7SUFDdkIsWUFBWSxFQUFFLGdCQUFnQjtJQUM5QixPQUFPLEVBQUUscUJBQXFCO0lBQzlCLGtCQUFrQixFQUFFLGdCQUFnQjtJQUNwQyxhQUFhLEVBQUUsZ0JBQWdCO0lBQy9CLFVBQVUsRUFBRSx3QkFBd0I7SUFDcEMsU0FBUyxFQUFFLFdBQVc7SUFDdEIseUJBQXlCO0lBQ3pCLFVBQVUsRUFBRSxhQUFhO0lBQ3pCLGtCQUFrQixFQUFFLGlCQUFpQjtJQUNyQyxVQUFVLEVBQUUsaUJBQWlCO0lBQzdCLFlBQVksRUFBRSxjQUFjO0lBQzVCLFVBQVUsRUFBRSxZQUFZO0lBQ3hCLGNBQWMsRUFBRSx5QkFBeUI7SUFDekMsWUFBWSxFQUFFLHdCQUF3QjtJQUN0QyxRQUFRLEVBQUUsZUFBZTtJQUN6QixXQUFXLEVBQUUsWUFBWTtJQUN6QixhQUFhLEVBQUUsc0JBQXNCO0lBQ3JDLGNBQWMsRUFBRSx1QkFBdUI7SUFDdkMsYUFBYSxFQUFFLDBCQUEwQjtJQUN6QyxZQUFZLEVBQUUseUJBQXlCO0lBQ3ZDLFlBQVksRUFBRSxtQkFBbUI7SUFDakMsY0FBYyxFQUFFLHlCQUF5QjtJQUN6QyxhQUFhLEVBQUUsMkJBQTJCO0lBQzFDLGNBQWMsRUFBRSx5QkFBeUI7SUFDekMsaUJBQWlCLEVBQUUsNEJBQTRCO0lBQy9DLGdCQUFnQixFQUFFLHlCQUF5QjtJQUMzQyxxQkFBcUIsRUFBRSw4QkFBOEI7SUFDckQseUNBQXlDO0lBQ3pDLGtCQUFrQixFQUFFLGdDQUFnQztJQUNwRCxnQkFBZ0IsRUFBRSw0QkFBNEI7SUFDOUMsWUFBWSxFQUFFLGtCQUFrQjtJQUNoQyxNQUFNLEVBQUUsUUFBUTtJQUNoQixRQUFRLEVBQUUsc0JBQXNCO0lBQ2hDLGdDQUFnQyxFQUM5QixnREFBZ0Q7SUFDbEQsbUJBQW1CLEVBQUUsMEJBQTBCO0lBQy9DLCtCQUErQixFQUFHLCtDQUErQztJQUNqRixnQ0FBZ0MsRUFBRyxnREFBZ0Q7SUFDbkYsaUJBQWlCLEVBQUUsMEJBQTBCO0lBQzdDLGFBQWEsRUFBRywyQkFBMkI7SUFDM0MsWUFBWSxFQUFHLHFCQUFxQjtJQUNwQyx1QkFBdUIsRUFBRyx1Q0FBdUM7SUFDakUscUJBQXFCLEVBQUUscUNBQXFDO0lBQzVELGtCQUFrQixFQUFHLDJCQUEyQjtJQUNoRCxVQUFVLEVBQUcsbUJBQW1CO0lBQ2hDLHdCQUF3QixFQUFDLGtDQUFrQztJQUMzRCxpQkFBaUIsRUFBQywyQkFBMkI7SUFDN0MsY0FBYyxFQUFFLHVCQUF1QjtJQUN2QyxPQUFPLEVBQUUsMkJBQTJCO0lBQ3BDLGVBQWUsRUFBRSwyQkFBMkI7SUFDNUMsZUFBZSxFQUFFLDJCQUEyQjtJQUM1QyxlQUFlLEVBQUUsa0JBQWtCO0NBQ3BDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgQVBJID0ge1xyXG4gIGFwcGxpY2F0aW9uSWRlbnRpZmllcjogJzAyZFBsR1hDS0NQeScsIC8vcGhvZW5peFxyXG4gIGFwcGxpY2F0aW9uSWRlbnRpZmllckZvclBNUzogJ3FxbVh3ZUdCMURiRycsIC8vIHBtc1xyXG4gIC8vIGVuZHBvaW50OiAnaHR0cDovLzE5Mi4xNjguMTAuMTgxOjg0NDEvYXBpL3YxLycsXHJcbiAgLy8gd29ya2Zsb3dFbmRQb2ludDogJ2h0dHA6Ly8xOTIuMTY4LjEwLjE4MS8nLFxyXG4gIG5vdnVCYWNrZW5kVXJsOiAnaHR0cHM6Ly9ub3Z1YXBpLnRlY2hleHRlbnNvci5jb20nLFxyXG4gIG5vdnVTb2NrZXRVcmw6ICdodHRwczovL25vdnV3cy50ZWNoZXh0ZW5zb3IuY29tJyxcclxuXHJcbiAgaW5zZXJ0OiAnQ1JVRC9JbnNlcnQnLFxyXG4gIGJ1bGtJbnNlcnQ6ICdDUlVEL0J1bGtJbnNlcnQnLFxyXG4gIHVwZGF0ZTogJ0NSVUQvVXBkYXRlJyxcclxuICBkZWxldGU6ICdDUlVEL0RlbGV0ZScsXHJcbiAgc2VsZWN0OiAnQ1JVRC9TZWxlY3QnLFxyXG4gIGdldERTUTogJ0NSVUQvRFNRJyxcclxuICBnZXRTY3JlZW46ICdMYXlvdXQvR2V0U2NyZWVuJyxcclxuICBnZXRMaXN0RnJvbURzcTogJ0xpc3QvR2V0P2RhdGFTb3VyY2VRdWVyeUlkPScsXHJcbiAgYnVpbGRBcHA6ICdBcHBsaWNhdGlvbi9CdWlsZEFwcCcsXHJcbiAgZ2V0U2NoZW1hOiAnQXBwbGljYXRpb24vR2V0U2NoZW1hRmlsZScsXHJcbiAgbG9naW46ICdpZGVudGl0eS9sb2dpbicsXHJcbiAgcGx1Z2luVXBsb2FkOiAnUGx1Z2lucy9VcGxvYWQnLFxyXG4gIGdldEZpbGU6ICdQbHVnaW5zL0dldEZpbGVCeUlkJyxcclxuICBnZXRBbGxQbHVnaW5CeVR5cGU6ICdQbHVnaW5zL0dldEFsbCcsXHJcbiAgdGVtcGxhdGVQYXJzZTogJ1RlbXBsYXRlL1BhcnNlJyxcclxuICBwdWJsaXNoQXBwOiAnQXBwbGljYXRpb24vUHVibGlzaEFwcCcsXHJcbiAgZ2V0cmVjb3JkOiAnR2V0UmVjb3JkJyxcclxuICAvLyByYXdTUUw6ICdDUlVEL1Jhd1NRTCcsXHJcbiAgZmlsZVVwbG9hZDogJ0ZpbGUvVXBsb2FkJyxcclxuICBtdWx0aXBsZUZpbGVVcGxvYWQ6ICdGaWxlL1VwbG9hZEZpbGUnLFxyXG4gIGRlbGV0ZUZpbGU6ICdGaWxlL0RlbGV0ZUZpbGUnLFxyXG4gIGdldE1lZGlhRmlsZTogJ0ZpbGUvR2V0RmlsZScsXHJcbiAgZ2V0SGlzdG9yeTogJ0dldEhpc3RvcnknLFxyXG4gIGNoYW5nZVBhc3N3b3JkOiAnaWRlbnRpdHkvQ2hhbmdlUGFzc3dvcmQnLFxyXG4gIHJlc3RwYXNzd29yZDogJ2lkZW50aXR5L1Jlc2V0UGFzc3dvcmQnLFxyXG4gIGdldEltYWdlOiAnRmlsZS9HZXRJbWFnZScsXHJcbiAgcG1qYXlJbXBvcnQ6ICdJbXBvcnREYXRhJyxcclxuICBnZXRTY3JlZW5EYXRhOiAnRm9ybUlPL0dldFNjcmVlbkRhdGEnLFxyXG4gIHByb2Nlc3NSZXF1ZXN0OiAnRm9ybUlPL1Byb2Nlc3NSZXF1ZXN0JyxcclxuICBnZXROZXh0U3RhdHVzOiAnVHJhbnNpdGlvbi9HZXROZXh0U3RhdHVzJyxcclxuICB1cGRhdGVTdGF0dXM6ICdUcmFuc2l0aW9uL1VwZGF0ZVN0YXR1cycsXHJcbiAgcmVnaXN0ZXJVc2VyOiAnaWRlbnRpdHkvcmVnaXN0ZXInLFxyXG4gIGdldFVzZXJEZXRhaWxzOiAnaWRlbnRpdHkvR2V0VXNlckRldGFpbHMnLFxyXG4gIGdldFBlcm1pc3Npb246ICdBcHBsaWNhdGlvbi9HZXRQZXJtaXNzaW9uJyxcclxuICB0ZXN0Q29ubmVjdGlvbjogJ01ldGFEYXRhL1Rlc3RDb25uZWN0aW9uJyxcclxuICBwZXJmb3JtVmFsaWRhdGlvbjogJ01ldGFEYXRhL1BlcmZvcm1WYWxpZGF0aW9uJyxcclxuICBzZXRUYWJDb21wb25lbnRzOiAnVGVuYW50L1NldFRhYkNvbXBvbmVudHMnLFxyXG4gIEJ1aWxkRm9ybUlPQ29tcG9uZW50czogJ0Zvcm1JTy9CdWlsZEZvcm1JT0NvbXBvbmVudHMnLFxyXG4gIC8vIGZpbGVNYW5hZ2VyVXBsb2FkOidGaWxlTWFuYWdlci9VcGxvYWQnXHJcbiAgcmVnaXN0ZXJBcHBPYmplY3RzOiAnQXBwbGljYXRpb24vUmVnaXN0ZXJBcHBPYmplY3RzJyxcclxuICBsYW5ndWFnZVJlc291cmNlOiAnUmVzb3VyY2VzL0xhbmd1YWdlUmVzb3VyY2UnLFxyXG4gIHJlZnJlc2hUb2tlbjogJ2lkZW50aXR5L1JlZnJlc2gnLFxyXG4gIHNlYXJjaDogJ1NlYXJjaCcsXHJcbiAgY2xvbmVEc3E6ICdBcHBsaWNhdGlvbi9DbG9uZURTUScsXHJcbiAgSW5zZXJ0U2NyZWVuUGVyZm9ybWFuY2VBbmFseXRpY3M6XHJcbiAgICAnRWxhc3RpY1NlYXJjaC9JbnNlcnRTY3JlZW5QZXJmb3JtYW5jZUFuYWx5dGljcycsXHJcbiAgR2VuZXJhdGVIdHRwUmVxdWVzdDogJ0NSVUQvR2VuZXJhdGVIdHRwUmVxdWVzdCcsXHJcbiAgR2V0RGV0YWlsT2ZQZXJmb3JtYW5jZUFuYWx5dGljcyA6ICdFbGFzdGljU2VhcmNoL0dldERldGFpbE9mUGVyZm9ybWFuY2VBbmFseXRpY3MnLFxyXG4gIEdldFN1bW1hcnlPZlBlcmZvcm1hbmNlQW5hbHl0aWNzIDogJ0VsYXN0aWNTZWFyY2gvR2V0U3VtbWFyeU9mUGVyZm9ybWFuY2VBbmFseXRpY3MnLFxyXG4gIEdldERhdGFKc29uQnlUeXBlOiAnVGVuYW50L0dldERhdGFKc29uQnlUeXBlJyxcclxuICBTeW5jQXBwRmllbGRzIDogJ0FwcGxpY2F0aW9uL1N5bmNBcHBGaWVsZHMnLFxyXG4gIGV4cG9ydFJlcG9ydCA6ICdyZXBvcnQvRXhwb3J0UmVwb3J0JyxcclxuICBSZWZyZXNoR2xvYmFsU2VhcmNoRGF0YSA6ICdFbGFzdGljU2VhcmNoL1JlZnJlc2hHbG9iYWxTZWFyY2hEYXRhJyxcclxuICBSZWZyZXNoUmVjb3JkSW5mb0RhdGE6ICdEYXRhSW50ZWdyaXR5L1JlZnJlc2hSZWNvcmRJbmZvRGF0YScsXHJcbiAgZG93bmxvYWRSZXBvcnRGaWxlIDogJ3JlcG9ydC9Eb3dubG9hZFJlcG9ydEZpbGUnLFxyXG4gIHNlbmRSZXBvcnQgOiAncmVwb3J0L1NlbmRSZXBvcnQnLFxyXG4gIEdldFJlbGVhc2VKU09ORGlmZmVyZW5jZTonUmVsZWFzZS9HZXRSZWxlYXNlSlNPTkRpZmZlcmVuY2UnLFxyXG4gIEdldERhdGFEaWZmZXJlbmNlOidSZWxlYXNlL0dldERhdGFEaWZmZXJlbmNlJyxcclxuICBSZWdpc3RlclRlbmFudDogJ1RlbmFudC9SZWdpc3RlclRlbmFudCcsXHJcbiAgRXhlY3V0ZTogJ0RhdGFCYXNlRXhlY3V0aW9uL0V4ZWN1dGUnLFxyXG4gIEdldEFsbERvY3VtbmV0czogJ0RvY3VtZW50cy9HZXRBbGxEb2N1bWVudHMnLFxyXG4gIEdldERvY3VtZW50QnlJZDogJ0RvY3VtZW50cy9HZXREb2N1bWVudEJ5SWQnLFxyXG4gIEV4ZWN1dGVXb3JrZmxvdzogJ1dvcmtmbG93L0V4ZWN1dGUnXHJcbn07XHJcbiJdfQ==
@@ -1,20 +1,56 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ // import { inject } from '@angular/core';
3
+ // import { IdbService } from '../../auth/idb-storage.service';
4
+ // import { SessionStorageService } from '../../auth/session-storage.service';
5
+ // import { Application } from '../models/app-object.class';
6
+ // import { StorageConstants } from './storage-constants';
7
+ // import { InjectionToken } from "@angular/core";
8
+ // const sessionStorageService = inject(SessionStorageService);
9
+ // const sessionStorageService = new SessionStorageService();
10
+ // const idbService = new IdbService();
11
+ // export const Common = {
12
+ // // applicationCode: sessionStorageService.getSessionStorage(StorageConstants.applicationCode)
13
+ // // ? String(
14
+ // // sessionStorageService.getSessionStorage(StorageConstants.applicationCode)
15
+ // // )
16
+ // // : StorageConstants.TAB,
17
+ // applicationCode: sessionStorageService.getSessionStorage(StorageConstants.applicationCode) ? String(
18
+ // sessionStorageService.getSessionStorage(StorageConstants.applicationCode)
19
+ // ) : 'TAB_Rewrite',
20
+ // staticApplicationCode:'TAB_Rewrite',
21
+ // tabJson: null,
22
+ // tabUserPersonalizedData: null,
23
+ // tabUserPermissions: null,
24
+ // appInfo: null,
25
+ // orgId: '1B602229-57F9-4DF8-860C-586A96E5BC68',
26
+ // staticToken: 'bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJoYXJkaWsudGhha2thckB0ZWNoZXh0ZW5zb3IuY29tIiwianRpIjoiMDBlMzA2ZTctMjE3ZS00MzI2LTg0ZDEtNmZjY2E1NmYwMWY0IiwiZW1haWwiOiJoYXJkaWsudGhha2thckB0ZWNoZXh0ZW5zb3IuY29tIiwiaWQiOiIwYjYwMDY5ZS02ZTM4LTQ0YTUtODMyYS1lMTBmYWQ3MTUyYjYiLCJsb2NhbGVTZXR0aW5nIjoie1wiVGltZVpvbmVJZFwiOlwiSW5kaWEgU3RhbmRhcmQgVGltZVwiLFwiTG9jYWxlXCI6MCxcIkxhbmd1YWdlXCI6MCxcIkRhdGVGb3JtYXRcIjpcImRkLU1NLXl5eXlcIixcIlRpbWVGb3JtYXRcIjpcImhoOm1tOnNzIHR0XCIsXCJOdW1iZXJGb3JtYXRcIjpudWxsLFwiQ3VycmVuY3lcIjpudWxsfSIsInJvbGUiOiJBZG1pbmlzdHJhdG9yIiwiUm9sZUlkcyI6IjJjYjQzMWE2LTUxZWUtNDYzZS04NDBjLTNhMThjNWZlOTE1MCIsIm5iZiI6MTcxNDAyNTkwNSwiZXhwIjoxNzQ1NTYxOTA1LCJpYXQiOjE3MTQwMjU5MDV9.FrguHY0px3wnitfgsodTJpexFr5Fzvbx5USDBF66mQA',
27
+ // };
28
+ // /**
29
+ // * Get schema Data From IDd and add to tabJson.
30
+ // */
31
+ // async function getLocalStorageTabData() {
32
+ // try {
33
+ // let data: any = await idbService.getItem(StorageConstants.tabData)
34
+ // console.log('data', data);
35
+ // if (data) {
36
+ // Common.tabJson = data;
37
+ // }
38
+ // } catch (error) {
39
+ // console.error('Error fetching data:', error);
40
+ // }
41
+ // }
42
+ // getLocalStorageTabData();
2
43
  export class Common {
3
44
  static { this.i18n = {}; }
4
- /**
5
- * Initialize the static variables
6
- * Called once at application startup from the main app
7
- */
45
+ // Initialize the static variables
8
46
  static init(environment) {
9
- Common.environmentName = environment?.name;
10
- Common.applicationCode = environment?.commonConfig?.applicationCode;
11
- Common.tabJson = environment?.commonConfig?.tabJson;
12
- Common.tabUserPersonalizedData = environment?.commonConfig?.tabUserPersonalizedData;
13
- Common.tabUserPermissions = environment?.commonConfig?.tabUserPermissions;
14
- Common.tabAppObjectAccess = environment?.commonConfig?.tabAppObjectAccess;
15
- Common.staticToken = environment?.commonConfig?.staticToken;
16
- Common.apiServiceUrls = environment?.apiServiceUrls || {};
17
- Common.signalRHubUrl = environment?.signalRHubUrl || '';
47
+ Common.environmentName = environment.name;
48
+ Common.applicationCode = environment.commonConfig.applicationCode;
49
+ Common.tabJson = environment.commonConfig.tabJson;
50
+ Common.tabUserPersonalizedData = environment.commonConfig.tabUserPersonalizedData;
51
+ Common.tabUserPermissions = environment.commonConfig.tabUserPermissions;
52
+ Common.tabAppObjectAccess = environment.commonConfig.tabAppObjectAccess;
53
+ Common.staticToken = environment.commonConfig.staticToken;
18
54
  }
19
55
  }
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kYXRhLWFjY2Vzcy9zcmMvbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2NvbnN0YW50cy9jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBSXZELE1BQU0sT0FBTyxNQUFNO2FBUUQsU0FBSSxHQUFRLEVBQUUsQ0FBQztJQVE3Qjs7O09BR0c7SUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQWdCO1FBQ2pDLE1BQU0sQ0FBQyxlQUFlLEdBQUcsV0FBVyxFQUFFLElBQUksQ0FBQztRQUMzQyxNQUFNLENBQUMsZUFBZSxHQUFHLFdBQVcsRUFBRSxZQUFZLEVBQUUsZUFBZSxDQUFDO1FBQ3BFLE1BQU0sQ0FBQyxPQUFPLEdBQUcsV0FBVyxFQUFFLFlBQVksRUFBRSxPQUFPLENBQUM7UUFDcEQsTUFBTSxDQUFDLHVCQUF1QixHQUFHLFdBQVcsRUFBRSxZQUFZLEVBQUUsdUJBQXVCLENBQUM7UUFDcEYsTUFBTSxDQUFDLGtCQUFrQixHQUFHLFdBQVcsRUFBRSxZQUFZLEVBQUUsa0JBQWtCLENBQUM7UUFDMUUsTUFBTSxDQUFDLGtCQUFrQixHQUFHLFdBQVcsRUFBRSxZQUFZLEVBQUUsa0JBQWtCLENBQUM7UUFDMUUsTUFBTSxDQUFDLFdBQVcsR0FBRyxXQUFXLEVBQUUsWUFBWSxFQUFFLFdBQVcsQ0FBQztRQUM1RCxNQUFNLENBQUMsY0FBYyxHQUFHLFdBQVcsRUFBRSxjQUFjLElBQUksRUFBRSxDQUFDO1FBQzFELE1BQU0sQ0FBQyxhQUFhLEdBQUcsV0FBVyxFQUFFLGFBQWEsSUFBSSxFQUFFLENBQUM7SUFDMUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cclxuXHJcbmltcG9ydCB7IEFQSVNlcnZpY2VVcmxzIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9jb21tb24uaW50ZXJmYWNlJztcclxuXHJcbmV4cG9ydCBjbGFzcyBDb21tb24ge1xyXG4gICAgcHVibGljIHN0YXRpYyBlbnZpcm9ubWVudE5hbWU6IHN0cmluZztcclxuICAgIHB1YmxpYyBzdGF0aWMgYXBwbGljYXRpb25Db2RlOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgc3RhdGljIHRhYkpzb246IGFueTtcclxuICAgIHB1YmxpYyBzdGF0aWMgdGFiVXNlclBlcnNvbmFsaXplZERhdGE6IGFueTtcclxuICAgIHB1YmxpYyBzdGF0aWMgdGFiVXNlclBlcm1pc3Npb25zOiBhbnk7XHJcbiAgICBwdWJsaWMgc3RhdGljIHRhYkFwcE9iamVjdEFjY2VzczogYW55O1xyXG4gICAgcHVibGljIHN0YXRpYyBzdGF0aWNUb2tlbjogYW55O1xyXG4gICAgcHVibGljIHN0YXRpYyBpMThuOiBhbnkgPSB7fTtcclxuXHJcbiAgICAvKiogTWljcm9zZXJ2aWNlIFVSTHMgY29uZmlndXJhdGlvbiAtIE5FVyBmb3IgbWljcm9zZXJ2aWNlcyBhcmNoaXRlY3R1cmUgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgYXBpU2VydmljZVVybHM6IEFQSVNlcnZpY2VVcmxzO1xyXG5cclxuICAgIC8qKiBTaWduYWxSIGh1YiBVUkwgZm9yIHJlYWwtdGltZSBub3RpZmljYXRpb25zICovXHJcbiAgICBwdWJsaWMgc3RhdGljIHNpZ25hbFJIdWJVcmw6IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluaXRpYWxpemUgdGhlIHN0YXRpYyB2YXJpYWJsZXNcclxuICAgICAqIENhbGxlZCBvbmNlIGF0IGFwcGxpY2F0aW9uIHN0YXJ0dXAgZnJvbSB0aGUgbWFpbiBhcHBcclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBpbml0KGVudmlyb25tZW50OiBhbnkpIHtcclxuICAgICAgQ29tbW9uLmVudmlyb25tZW50TmFtZSA9IGVudmlyb25tZW50Py5uYW1lO1xyXG4gICAgICBDb21tb24uYXBwbGljYXRpb25Db2RlID0gZW52aXJvbm1lbnQ/LmNvbW1vbkNvbmZpZz8uYXBwbGljYXRpb25Db2RlO1xyXG4gICAgICBDb21tb24udGFiSnNvbiA9IGVudmlyb25tZW50Py5jb21tb25Db25maWc/LnRhYkpzb247XHJcbiAgICAgIENvbW1vbi50YWJVc2VyUGVyc29uYWxpemVkRGF0YSA9IGVudmlyb25tZW50Py5jb21tb25Db25maWc/LnRhYlVzZXJQZXJzb25hbGl6ZWREYXRhO1xyXG4gICAgICBDb21tb24udGFiVXNlclBlcm1pc3Npb25zID0gZW52aXJvbm1lbnQ/LmNvbW1vbkNvbmZpZz8udGFiVXNlclBlcm1pc3Npb25zO1xyXG4gICAgICBDb21tb24udGFiQXBwT2JqZWN0QWNjZXNzID0gZW52aXJvbm1lbnQ/LmNvbW1vbkNvbmZpZz8udGFiQXBwT2JqZWN0QWNjZXNzO1xyXG4gICAgICBDb21tb24uc3RhdGljVG9rZW4gPSBlbnZpcm9ubWVudD8uY29tbW9uQ29uZmlnPy5zdGF0aWNUb2tlbjtcclxuICAgICAgQ29tbW9uLmFwaVNlcnZpY2VVcmxzID0gZW52aXJvbm1lbnQ/LmFwaVNlcnZpY2VVcmxzIHx8IHt9O1xyXG4gICAgICBDb21tb24uc2lnbmFsUkh1YlVybCA9IGVudmlyb25tZW50Py5zaWduYWxSSHViVXJsIHx8ICcnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4iXX0=
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kYXRhLWFjY2Vzcy9zcmMvbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2NvbnN0YW50cy9jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBRXZELDBDQUEwQztBQUMxQywrREFBK0Q7QUFDL0QsOEVBQThFO0FBQzlFLDREQUE0RDtBQUM1RCwwREFBMEQ7QUFFMUQsa0RBQWtEO0FBRWxELCtEQUErRDtBQUMvRCw2REFBNkQ7QUFDN0QsdUNBQXVDO0FBR3ZDLDBCQUEwQjtBQUMxQixrR0FBa0c7QUFDbEcsZUFBZTtBQUNmLHFGQUFxRjtBQUNyRixXQUFXO0FBQ1gsaUNBQWlDO0FBRWpDLHlHQUF5RztBQUN6RyxnRkFBZ0Y7QUFDaEYsdUJBQXVCO0FBRXZCLHlDQUF5QztBQUN6QyxtQkFBbUI7QUFDbkIsbUNBQW1DO0FBQ25DLDhCQUE4QjtBQUM5QixtQkFBbUI7QUFDbkIsbURBQW1EO0FBQ25ELGl2QkFBaXZCO0FBQ2p2QixLQUFLO0FBR0wsTUFBTTtBQUNOLGtEQUFrRDtBQUNsRCxNQUFNO0FBQ04sNENBQTRDO0FBQzVDLFVBQVU7QUFDVix5RUFBeUU7QUFDekUsaUNBQWlDO0FBQ2pDLGtCQUFrQjtBQUNsQiwrQkFBK0I7QUFDL0IsUUFBUTtBQUNSLHNCQUFzQjtBQUN0QixvREFBb0Q7QUFDcEQsTUFBTTtBQUNOLElBQUk7QUFDSiw0QkFBNEI7QUFFNUIsTUFBTSxPQUFPLE1BQU07YUFRRCxTQUFJLEdBQVEsRUFBRSxDQUFDO0lBRTdCLGtDQUFrQztJQUMzQixNQUFNLENBQUMsSUFBSSxDQUFDLFdBQWdCO1FBQ2pDLE1BQU0sQ0FBQyxlQUFlLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQztRQUMxQyxNQUFNLENBQUMsZUFBZSxHQUFHLFdBQVcsQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDO1FBQ2xFLE1BQU0sQ0FBQyxPQUFPLEdBQUcsV0FBVyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUM7UUFDbEQsTUFBTSxDQUFDLHVCQUF1QixHQUFHLFdBQVcsQ0FBQyxZQUFZLENBQUMsdUJBQXVCLENBQUM7UUFDbEYsTUFBTSxDQUFDLGtCQUFrQixHQUFHLFdBQVcsQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUM7UUFDeEUsTUFBTSxDQUFDLGtCQUFrQixHQUFHLFdBQVcsQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUM7UUFDeEUsTUFBTSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQztJQUM1RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xyXG5cclxuLy8gaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbi8vIGltcG9ydCB7IElkYlNlcnZpY2UgfSBmcm9tICcuLi8uLi9hdXRoL2lkYi1zdG9yYWdlLnNlcnZpY2UnO1xyXG4vLyBpbXBvcnQgeyBTZXNzaW9uU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9hdXRoL3Nlc3Npb24tc3RvcmFnZS5zZXJ2aWNlJztcclxuLy8gaW1wb3J0IHsgQXBwbGljYXRpb24gfSBmcm9tICcuLi9tb2RlbHMvYXBwLW9iamVjdC5jbGFzcyc7XHJcbi8vIGltcG9ydCB7IFN0b3JhZ2VDb25zdGFudHMgfSBmcm9tICcuL3N0b3JhZ2UtY29uc3RhbnRzJztcclxuXHJcbi8vIGltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbi8vIGNvbnN0IHNlc3Npb25TdG9yYWdlU2VydmljZSA9IGluamVjdChTZXNzaW9uU3RvcmFnZVNlcnZpY2UpO1xyXG4vLyBjb25zdCBzZXNzaW9uU3RvcmFnZVNlcnZpY2UgPSBuZXcgU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlKCk7XHJcbi8vIGNvbnN0IGlkYlNlcnZpY2UgPSBuZXcgSWRiU2VydmljZSgpO1xyXG5cclxuXHJcbi8vIGV4cG9ydCBjb25zdCBDb21tb24gPSB7XHJcbi8vIC8vICAgYXBwbGljYXRpb25Db2RlOiBzZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0U2Vzc2lvblN0b3JhZ2UoU3RvcmFnZUNvbnN0YW50cy5hcHBsaWNhdGlvbkNvZGUpXHJcbi8vIC8vID8gU3RyaW5nKFxyXG4vLyAvLyAgICAgICBzZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0U2Vzc2lvblN0b3JhZ2UoU3RvcmFnZUNvbnN0YW50cy5hcHBsaWNhdGlvbkNvZGUpXHJcbi8vIC8vICAgICApXHJcbi8vIC8vICAgICA6IFN0b3JhZ2VDb25zdGFudHMuVEFCLFxyXG5cclxuLy8gICBhcHBsaWNhdGlvbkNvZGU6IHNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRTZXNzaW9uU3RvcmFnZShTdG9yYWdlQ29uc3RhbnRzLmFwcGxpY2F0aW9uQ29kZSkgPyBTdHJpbmcoXHJcbi8vICAgICBzZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0U2Vzc2lvblN0b3JhZ2UoU3RvcmFnZUNvbnN0YW50cy5hcHBsaWNhdGlvbkNvZGUpXHJcbi8vICAgKSA6ICdUQUJfUmV3cml0ZScsXHJcblxyXG4vLyAgIHN0YXRpY0FwcGxpY2F0aW9uQ29kZTonVEFCX1Jld3JpdGUnLFxyXG4vLyAgIHRhYkpzb246IG51bGwsXHJcbi8vICAgdGFiVXNlclBlcnNvbmFsaXplZERhdGE6IG51bGwsXHJcbi8vICAgdGFiVXNlclBlcm1pc3Npb25zOiBudWxsLFxyXG4vLyAgIGFwcEluZm86IG51bGwsXHJcbi8vICAgb3JnSWQ6ICcxQjYwMjIyOS01N0Y5LTRERjgtODYwQy01ODZBOTZFNUJDNjgnLFxyXG4vLyAgIHN0YXRpY1Rva2VuOiAnYmVhcmVyIGV5SmhiR2NpT2lKSVV6STFOaUlzSW5SNWNDSTZJa3BYVkNKOS5leUp6ZFdJaU9pSm9ZWEprYVdzdWRHaGhhMnRoY2tCMFpXTm9aWGgwWlc1emIzSXVZMjl0SWl3aWFuUnBJam9pTURCbE16QTJaVGN0TWpFM1pTMDBNekkyTFRnMFpERXRObVpqWTJFMU5tWXdNV1kwSWl3aVpXMWhhV3dpT2lKb1lYSmthV3N1ZEdoaGEydGhja0IwWldOb1pYaDBaVzV6YjNJdVkyOXRJaXdpYVdRaU9pSXdZall3TURZNVpTMDJaVE00TFRRMFlUVXRPRE15WVMxbE1UQm1ZV1EzTVRVeVlqWWlMQ0pzYjJOaGJHVlRaWFIwYVc1bklqb2llMXdpVkdsdFpWcHZibVZKWkZ3aU9sd2lTVzVrYVdFZ1UzUmhibVJoY21RZ1ZHbHRaVndpTEZ3aVRHOWpZV3hsWENJNk1DeGNJa3hoYm1kMVlXZGxYQ0k2TUN4Y0lrUmhkR1ZHYjNKdFlYUmNJanBjSW1Sa0xVMU5MWGw1ZVhsY0lpeGNJbFJwYldWR2IzSnRZWFJjSWpwY0ltaG9PbTF0T25OeklIUjBYQ0lzWENKT2RXMWlaWEpHYjNKdFlYUmNJanB1ZFd4c0xGd2lRM1Z5Y21WdVkzbGNJanB1ZFd4c2ZTSXNJbkp2YkdVaU9pSkJaRzFwYm1semRISmhkRzl5SWl3aVVtOXNaVWxrY3lJNklqSmpZalF6TVdFMkxUVXhaV1V0TkRZelpTMDROREJqTFROaE1UaGpOV1psT1RFMU1DSXNJbTVpWmlJNk1UY3hOREF5TlRrd05Td2laWGh3SWpveE56UTFOVFl4T1RBMUxDSnBZWFFpT2pFM01UUXdNalU1TURWOS5Gcmd1SFkwcHgzd25pdGZnc29kVEpwZXhGcjVGenZieDVVU0RCRjY2bVFBJyxcclxuLy8gfTtcclxuXHJcblxyXG4vLyAvKipcclxuLy8gICogR2V0IHNjaGVtYSBEYXRhIEZyb20gSURkIGFuZCBhZGQgdG8gdGFiSnNvbi5cclxuLy8gICovXHJcbi8vIGFzeW5jIGZ1bmN0aW9uIGdldExvY2FsU3RvcmFnZVRhYkRhdGEoKSB7XHJcbi8vICAgdHJ5IHtcclxuLy8gICAgIGxldCBkYXRhOiBhbnkgPSBhd2FpdCBpZGJTZXJ2aWNlLmdldEl0ZW0oU3RvcmFnZUNvbnN0YW50cy50YWJEYXRhKVxyXG4vLyAgICAgY29uc29sZS5sb2coJ2RhdGEnLCBkYXRhKTtcclxuLy8gICAgIGlmIChkYXRhKSB7XHJcbi8vICAgICAgIENvbW1vbi50YWJKc29uID0gZGF0YTtcclxuLy8gICAgIH1cclxuLy8gICB9IGNhdGNoIChlcnJvcikge1xyXG4vLyAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgZGF0YTonLCBlcnJvcik7XHJcbi8vICAgfVxyXG4vLyB9XHJcbi8vIGdldExvY2FsU3RvcmFnZVRhYkRhdGEoKTtcclxuXHJcbmV4cG9ydCBjbGFzcyBDb21tb24ge1xyXG4gICAgcHVibGljIHN0YXRpYyBlbnZpcm9ubWVudE5hbWU6IHN0cmluZztcclxuICAgIHB1YmxpYyBzdGF0aWMgYXBwbGljYXRpb25Db2RlOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgc3RhdGljIHRhYkpzb246IGFueTtcclxuICAgIHB1YmxpYyBzdGF0aWMgdGFiVXNlclBlcnNvbmFsaXplZERhdGE6IGFueTtcclxuICAgIHB1YmxpYyBzdGF0aWMgdGFiVXNlclBlcm1pc3Npb25zOiBhbnk7XHJcbiAgICBwdWJsaWMgc3RhdGljIHRhYkFwcE9iamVjdEFjY2VzczogYW55O1xyXG4gICAgcHVibGljIHN0YXRpYyBzdGF0aWNUb2tlbjogYW55O1xyXG4gICAgcHVibGljIHN0YXRpYyBpMThuOiBhbnkgPSB7fTtcclxuXHJcbiAgICAvLyBJbml0aWFsaXplIHRoZSBzdGF0aWMgdmFyaWFibGVzXHJcbiAgICBwdWJsaWMgc3RhdGljIGluaXQoZW52aXJvbm1lbnQ6IGFueSkge1xyXG4gICAgICBDb21tb24uZW52aXJvbm1lbnROYW1lID0gZW52aXJvbm1lbnQubmFtZTtcclxuICAgICAgQ29tbW9uLmFwcGxpY2F0aW9uQ29kZSA9IGVudmlyb25tZW50LmNvbW1vbkNvbmZpZy5hcHBsaWNhdGlvbkNvZGU7XHJcbiAgICAgIENvbW1vbi50YWJKc29uID0gZW52aXJvbm1lbnQuY29tbW9uQ29uZmlnLnRhYkpzb247XHJcbiAgICAgIENvbW1vbi50YWJVc2VyUGVyc29uYWxpemVkRGF0YSA9IGVudmlyb25tZW50LmNvbW1vbkNvbmZpZy50YWJVc2VyUGVyc29uYWxpemVkRGF0YTtcclxuICAgICAgQ29tbW9uLnRhYlVzZXJQZXJtaXNzaW9ucyA9IGVudmlyb25tZW50LmNvbW1vbkNvbmZpZy50YWJVc2VyUGVybWlzc2lvbnM7XHJcbiAgICAgIENvbW1vbi50YWJBcHBPYmplY3RBY2Nlc3MgPSBlbnZpcm9ubWVudC5jb21tb25Db25maWcudGFiQXBwT2JqZWN0QWNjZXNzO1xyXG4gICAgICBDb21tb24uc3RhdGljVG9rZW4gPSBlbnZpcm9ubWVudC5jb21tb25Db25maWcuc3RhdGljVG9rZW47XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiJdfQ==
@@ -22,6 +22,6 @@ export const StorageConstants = {
22
22
  refreshTokenExpiry: 'refreshTokenExpiry',
23
23
  appNavigationMapping: 'appNavigationMapping',
24
24
  tokenInfo: 'tokenInfo',
25
- EnvironmentId: 'EnvironmentId'
25
+ Environment: 'Environment'
26
26
  };
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS1jb25zdGFudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2RhdGEtYWNjZXNzL3NyYy9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvY29uc3RhbnRzL3N0b3JhZ2UtY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHO0lBQzlCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLGVBQWUsRUFBRSxpQkFBaUI7SUFDbEMsUUFBUSxFQUFFLFVBQVU7SUFDcEIsS0FBSyxFQUFFLE9BQU87SUFDZCxXQUFXLEVBQUUsYUFBYTtJQUMxQixRQUFRLEVBQUUsVUFBVTtJQUNwQixhQUFhLEVBQUUsZUFBZTtJQUM5Qix1QkFBdUIsRUFBRSx5QkFBeUI7SUFDbEQsS0FBSyxFQUFDLE9BQU87SUFDYixhQUFhLEVBQUMsZUFBZTtJQUM3QixlQUFlLEVBQUMsaUJBQWlCO0lBQ2pDLGFBQWEsRUFBQyxlQUFlO0lBQzdCLGtCQUFrQixFQUFFLG9CQUFvQjtJQUN4Qyx1QkFBdUIsRUFBRSx5QkFBeUI7SUFDbEQsa0JBQWtCLEVBQUUsb0JBQW9CO0lBQ3hDLGNBQWMsRUFBRSxnQkFBZ0I7SUFDaEMsT0FBTyxFQUFFLFNBQVM7SUFDbEIsZUFBZSxFQUFFLGlCQUFpQjtJQUNsQyxZQUFZLEVBQUUsY0FBYztJQUM1QixrQkFBa0IsRUFBRSxvQkFBb0I7SUFDeEMsb0JBQW9CLEVBQUUsc0JBQXNCO0lBQzVDLFNBQVMsRUFBRSxXQUFXO0lBQ3RCLGFBQWEsRUFBRSxlQUFlO0NBQy9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgU3RvcmFnZUNvbnN0YW50cyA9IHtcclxuICB0YWJEYXRhOiAndGFiRGF0YScsXHJcbiAgb3JnSW5mbzogJ29yZ0luZm8nLFxyXG4gIGFwcGxpY2F0aW9uQ29kZTogJ2FwcGxpY2F0aW9uQ29kZScsXHJcbiAgdXNlckluZm86ICd1c2VySW5mbycsXHJcbiAgdG9rZW46ICd0b2tlbicsXHJcbiAgc3RhdGljVG9rZW46ICdzdGF0aWNUb2tlbicsXHJcbiAgVGVuYW50SWQ6ICdUZW5hbnRJZCcsXHJcbiAgQXV0aG9yaXphdGlvbjogJ0F1dGhvcml6YXRpb24nLFxyXG4gIHRhYlVzZXJQZXJzb25hbGl6ZWREYXRhOiAndGFiVXNlclBlcnNvbmFsaXplZERhdGEnLFxyXG4gIEFwcElkOidBcHBJZCcsXHJcbiAgc2NyZWVuQ29udGV4dDonc2NyZWVuQ29udGV4dCcsXHJcbiAgZW52aXJvbm1lbnRNb2RlOidlbnZpcm9ubWVudE1vZGUnLFxyXG4gIGVudmlyb25tZW50SWQ6J2Vudmlyb25tZW50SWQnLFxyXG4gIHRhYkFwcE9iamVjdEFjY2VzczogJ3RhYkFwcE9iamVjdEFjY2VzcycsXHJcbiAgc2NyZWVuTmF2aWdhdGlvbk1hcHBpbmc6ICdzY3JlZW5OYXZpZ2F0aW9uTWFwcGluZycsXHJcbiAgdGFiVXNlclBlcm1pc3Npb25zOiAndGFiVXNlclBlcm1pc3Npb25zJyxcclxuICBjb25maWd1cmF0aW9uczogJ2NvbmZpZ3VyYXRpb25zJyxcclxuICBhcHBJbmZvOiAnYXBwSW5mbycsXHJcbiAgZW52aXJvbm1lbnRJbmZvOiAnZW52aXJvbm1lbnRJbmZvJyxcclxuICByZWZyZXNoVG9rZW46ICdyZWZyZXNoVG9rZW4nLFxyXG4gIHJlZnJlc2hUb2tlbkV4cGlyeTogJ3JlZnJlc2hUb2tlbkV4cGlyeScsXHJcbiAgYXBwTmF2aWdhdGlvbk1hcHBpbmc6ICdhcHBOYXZpZ2F0aW9uTWFwcGluZycsXHJcbiAgdG9rZW5JbmZvOiAndG9rZW5JbmZvJyxcclxuICBFbnZpcm9ubWVudElkOiAnRW52aXJvbm1lbnRJZCdcclxufTtcclxuIl19
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS1jb25zdGFudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2RhdGEtYWNjZXNzL3NyYy9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvY29uc3RhbnRzL3N0b3JhZ2UtY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHO0lBQzlCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLGVBQWUsRUFBRSxpQkFBaUI7SUFDbEMsUUFBUSxFQUFFLFVBQVU7SUFDcEIsS0FBSyxFQUFFLE9BQU87SUFDZCxXQUFXLEVBQUUsYUFBYTtJQUMxQixRQUFRLEVBQUUsVUFBVTtJQUNwQixhQUFhLEVBQUUsZUFBZTtJQUM5Qix1QkFBdUIsRUFBRSx5QkFBeUI7SUFDbEQsS0FBSyxFQUFDLE9BQU87SUFDYixhQUFhLEVBQUMsZUFBZTtJQUM3QixlQUFlLEVBQUMsaUJBQWlCO0lBQ2pDLGFBQWEsRUFBQyxlQUFlO0lBQzdCLGtCQUFrQixFQUFFLG9CQUFvQjtJQUN4Qyx1QkFBdUIsRUFBRSx5QkFBeUI7SUFDbEQsa0JBQWtCLEVBQUUsb0JBQW9CO0lBQ3hDLGNBQWMsRUFBRSxnQkFBZ0I7SUFDaEMsT0FBTyxFQUFFLFNBQVM7SUFDbEIsZUFBZSxFQUFFLGlCQUFpQjtJQUNsQyxZQUFZLEVBQUUsY0FBYztJQUM1QixrQkFBa0IsRUFBRSxvQkFBb0I7SUFDeEMsb0JBQW9CLEVBQUUsc0JBQXNCO0lBQzVDLFNBQVMsRUFBRSxXQUFXO0lBQ3RCLFdBQVcsRUFBRSxhQUFhO0NBQzNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgU3RvcmFnZUNvbnN0YW50cyA9IHtcclxuICB0YWJEYXRhOiAndGFiRGF0YScsXHJcbiAgb3JnSW5mbzogJ29yZ0luZm8nLFxyXG4gIGFwcGxpY2F0aW9uQ29kZTogJ2FwcGxpY2F0aW9uQ29kZScsXHJcbiAgdXNlckluZm86ICd1c2VySW5mbycsXHJcbiAgdG9rZW46ICd0b2tlbicsXHJcbiAgc3RhdGljVG9rZW46ICdzdGF0aWNUb2tlbicsXHJcbiAgVGVuYW50SWQ6ICdUZW5hbnRJZCcsXHJcbiAgQXV0aG9yaXphdGlvbjogJ0F1dGhvcml6YXRpb24nLFxyXG4gIHRhYlVzZXJQZXJzb25hbGl6ZWREYXRhOiAndGFiVXNlclBlcnNvbmFsaXplZERhdGEnLFxyXG4gIEFwcElkOidBcHBJZCcsXHJcbiAgc2NyZWVuQ29udGV4dDonc2NyZWVuQ29udGV4dCcsXHJcbiAgZW52aXJvbm1lbnRNb2RlOidlbnZpcm9ubWVudE1vZGUnLFxyXG4gIGVudmlyb25tZW50SWQ6J2Vudmlyb25tZW50SWQnLFxyXG4gIHRhYkFwcE9iamVjdEFjY2VzczogJ3RhYkFwcE9iamVjdEFjY2VzcycsXHJcbiAgc2NyZWVuTmF2aWdhdGlvbk1hcHBpbmc6ICdzY3JlZW5OYXZpZ2F0aW9uTWFwcGluZycsXHJcbiAgdGFiVXNlclBlcm1pc3Npb25zOiAndGFiVXNlclBlcm1pc3Npb25zJyxcclxuICBjb25maWd1cmF0aW9uczogJ2NvbmZpZ3VyYXRpb25zJyxcclxuICBhcHBJbmZvOiAnYXBwSW5mbycsXHJcbiAgZW52aXJvbm1lbnRJbmZvOiAnZW52aXJvbm1lbnRJbmZvJyxcclxuICByZWZyZXNoVG9rZW46ICdyZWZyZXNoVG9rZW4nLFxyXG4gIHJlZnJlc2hUb2tlbkV4cGlyeTogJ3JlZnJlc2hUb2tlbkV4cGlyeScsXHJcbiAgYXBwTmF2aWdhdGlvbk1hcHBpbmc6ICdhcHBOYXZpZ2F0aW9uTWFwcGluZycsXHJcbiAgdG9rZW5JbmZvOiAndG9rZW5JbmZvJyxcclxuICBFbnZpcm9ubWVudDogJ0Vudmlyb25tZW50J1xyXG59O1xyXG4iXX0=
@@ -1,7 +1,7 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
  import { inject, Injectable } from "@angular/core";
3
3
  import { MetadataHelper } from "../helpers/common/meta-data.helpers";
4
- import { getBulkInsertFields, getBulkInsertValues, removeBlankValue } from "../utils/json.util";
4
+ import { createDynamicData, getBulkInsertFields, getBulkInsertValues, removeBlankValue } from "../utils/json.util";
5
5
  import { APIFilterCriteria } from "../models/api-query.class";
6
6
  import { RequestResponseHelper } from "../helpers/common/req-res.helpers";
7
7
  import { DSQHelper } from "../helpers/common/dsq.helpers";
@@ -10,10 +10,6 @@ import { ConjuctionClause, FilterValueType, RelationalOperator } from "../enums/
10
10
  import { API } from "../constants/api-constants";
11
11
  import { getHeaders } from "../utils/req-res.util";
12
12
  import { ApiService } from "../../core/http-client/api.service";
13
- import { TabGetService } from "./tab-get.service";
14
- import { TabInsertService } from "./tab-insert.service";
15
- import { TabUpdateService } from "./tab-update.service";
16
- import { TabDeleteService } from "./tab-delete.service";
17
13
  import * as i0 from "@angular/core";
18
14
  export class TabCrudService {
19
15
  constructor() {
@@ -21,10 +17,6 @@ export class TabCrudService {
21
17
  this._requestResponseHelper = inject(RequestResponseHelper);
22
18
  this._dsqHelper = inject(DSQHelper);
23
19
  this._apiService = inject(ApiService);
24
- this._tabGetService = inject(TabGetService);
25
- this._tabInsertService = inject(TabInsertService);
26
- this._tabUpdateService = inject(TabUpdateService);
27
- this._tabDeleteService = inject(TabDeleteService);
28
20
  }
29
21
  /**
30
22
  * Returns the AppObjectModel from the given payload.
@@ -55,12 +47,14 @@ export class TabCrudService {
55
47
  * @param keepPrimaryKey Optional flag to retain primary key fields. Defaults to false.
56
48
  * @returns A new object with only valid fields.
57
49
  */
58
- filterValidAppObjectFields(data, appObject, keepPrimaryKey = false) {
50
+ filterValidAppObjectFields(data, appObject, keepPrimaryKey = false, removeEmptyValues = true) {
59
51
  if (!data || typeof data !== 'object')
60
52
  throw new Error('Invalid data');
61
53
  const filteredData = JSON.parse(JSON.stringify(data));
62
- // Remove fields with blank values
63
- removeBlankValue(filteredData);
54
+ // Remove fields with blank values (only for insert, not for update)
55
+ if (removeEmptyValues) {
56
+ removeBlankValue(filteredData);
57
+ }
64
58
  // Iterate over each key in the filtered data
65
59
  Object.keys(filteredData)?.forEach((key) => {
66
60
  const appField = appObject.field(key);
@@ -86,22 +80,22 @@ export class TabCrudService {
86
80
  removeBlankValue(criteria);
87
81
  // Create a new APIFilterCriteria object
88
82
  const whereClause = new APIFilterCriteria();
89
- whereClause.filters = [];
83
+ whereClause.Filters = [];
90
84
  // Iterate over each key in the criteria and add it to the where clause
91
- Object.keys(criteria)?.forEach((key, index) => {
85
+ Object.keys(criteria)?.forEach((key) => {
92
86
  const filter = {
93
- conjunction: ConjuctionClause.AND, // conjuction clause is AND by default
94
- fieldName: crudTableName + '.' + key, // field name
95
- operator: RelationalOperator.EqualTo, // relational operator is EqualTo by default
96
- valueType: FilterValueType.Literal, // value type is Literal by default
87
+ ConjuctionClause: ConjuctionClause.AND, // conjuction clause is AND by default
88
+ FieldID: crudTableName + '.' + key, // combine the CRUD table name with the field name
89
+ RelationalOperator: RelationalOperator.EqualTo, // relational operator is EqualTo by default
90
+ ValueType: FilterValueType.Literal, // value type is Literal by default
97
91
  value: criteria[key], // set the value of the filter
98
- sequence: index + 1, // set the sequence starting from 1
99
- groupId: 0 // set the group ID to 0 by default
92
+ Sequence: 0, // set the sequence to 0 by default
93
+ GroupID: 0 // set the group ID to 0 by default
100
94
  };
101
- whereClause.filters.push(filter); // add the filter to the array of filters
95
+ whereClause.Filters.push(filter); // add the filter to the array of filters
102
96
  });
103
97
  // Set the filter logic to '1'
104
- whereClause.filterLogic = '1';
98
+ whereClause.FilterLogic = '1';
105
99
  // Return the generated where clause
106
100
  return whereClause;
107
101
  }
@@ -119,24 +113,35 @@ export class TabCrudService {
119
113
  // Validate the AppObjectModel and DataSourceQueryModel
120
114
  if (!appObject || !dsq)
121
115
  throw new Error('AppObject or DataSourceQuery not found');
122
- // Use TabGetService.executeRAWDSQWithName to avoid code duplication
123
- return this._tabGetService.executeRAWDSQWithName({
124
- AppObjectName: appObject.ObjectName,
125
- DSQName: dsq.QueryName,
126
- ...payload.criteria
127
- }, headers);
116
+ // Get the headers from the payload
117
+ const header = getHeaders(headers);
118
+ // Execute the GET request
119
+ return this._apiService.post(
120
+ // The URL for the GET request
121
+ `${API.getDSQ}/${appObject?.ObjectName}/${dsq?.QueryName}`,
122
+ // The criteria for the query
123
+ payload.criteria,
124
+ // The headers for the request
125
+ header);
128
126
  }
129
127
  /**
130
128
  * Inserts data into the specified table.
131
- * NEW: Delegates to TabInsertService which uses /records/insert endpoint with SYNC/ASYNC support
132
129
  * @param payload The payload containing the data to insert and the AppObjectModel ID.
133
130
  * @param headers Optional headers for the request.
134
- * @returns An observable of the response from the API (returns insertedId only).
131
+ * @returns An observable of the response from the API.
135
132
  */
136
133
  insert(payload, headers) {
137
134
  const appObject = this.getAppObjectFromPayload(payload);
138
- // Delegate to TabInsertService - it handles new API with SYNC/ASYNC automatically
139
- return this._tabInsertService.insertByObjectId(appObject.ID, { data: payload.data }, headers);
135
+ // Filter out invalid fields from the data based on the AppObjectModel
136
+ const filteredData = this.filterValidAppObjectFields(payload.data, appObject);
137
+ // Create a where clause for the insert operation
138
+ const whereClause = this.generateWhereClause({}, appObject.SystemDBTableName, true);
139
+ // Transform the data into the format required by the API
140
+ const transformedData = createDynamicData(filteredData);
141
+ // Generate the payload for the API request
142
+ const apiPayload = this._requestResponseHelper.insertPayload(appObject.SystemDBTableName, whereClause, transformedData);
143
+ // Execute the query
144
+ return this._dsqHelper.executeQuery(apiPayload, QueryType.Insert, headers);
140
145
  }
141
146
  bulkInsert(payload, headers) {
142
147
  const appObject = this.getAppObjectFromPayload(payload);
@@ -152,19 +157,27 @@ export class TabCrudService {
152
157
  }
153
158
  /**
154
159
  * Updates data in the specified table.
155
- * NEW: Delegates to TabUpdateService which uses /records/update endpoint with SYNC/ASYNC support
156
160
  * @param payload The payload containing the data to update, the criteria for the update, and the AppObjectModel ID.
157
161
  * @param headers Optional headers for the request.
158
162
  * @returns An observable of the response from the API.
159
163
  */
160
164
  update(payload, headers) {
161
165
  const appObject = this.getAppObjectFromPayload(payload);
162
- // Delegate to TabUpdateService - it handles new API with SYNC/ASYNC automatically
163
- return this._tabUpdateService.updateByObjectId(appObject.ID, { data: payload.data }, headers);
166
+ // Filter out invalid fields from the data based on the AppObjectModel (preserve blank values for update)
167
+ const filteredData = this.filterValidAppObjectFields(payload.data, appObject, false, false);
168
+ // Generate a where clause based on the criteria provided
169
+ const whereClause = this.generateWhereClause(payload.criteria, appObject.SystemDBTableName);
170
+ if (!whereClause?.Filters?.length)
171
+ throw new Error('Invalid criteria');
172
+ // Transform the data into the format required by the API
173
+ const transformedData = createDynamicData(filteredData);
174
+ // Generate the payload for the API request
175
+ const apiPayload = this._requestResponseHelper.updateRequestPayload(appObject.SystemDBTableName, whereClause, transformedData);
176
+ // Execute the query
177
+ return this._dsqHelper.executeQuery(apiPayload, QueryType.Update, headers);
164
178
  }
165
179
  /**
166
180
  * Deletes data from the specified table.
167
- * NEW: Delegates to TabDeleteService which uses /records/delete endpoint with SYNC/ASYNC support
168
181
  * @param payload The payload containing the criteria for the delete and the AppObjectModel ID.
169
182
  * @param headers Optional headers for the request.
170
183
  * @returns An observable of the response from the API.
@@ -173,12 +186,12 @@ export class TabCrudService {
173
186
  const appObject = this.getAppObjectFromPayload(payload);
174
187
  // Generate a where clause based on the criteria provided
175
188
  const whereClause = this.generateWhereClause(payload.criteria, appObject.SystemDBTableName);
176
- if (!whereClause?.filters?.length)
189
+ if (!whereClause?.Filters?.length)
177
190
  throw new Error('Invalid criteria');
178
- // Generate the payload for the API request (NEW format: { entityName, whereClause })
191
+ // Generate the payload for the API request
179
192
  const apiPayload = this._requestResponseHelper.deletePayload(appObject.SystemDBTableName, whereClause);
180
- // Delegate to TabDeleteService - it handles new API with SYNC/ASYNC automatically
181
- return this._tabDeleteService.delete(apiPayload, headers);
193
+ // Execute the query
194
+ return this._dsqHelper.executeQuery(apiPayload, QueryType.Delete, headers);
182
195
  }
183
196
  // /**
184
197
  // * Executes a stored procedure using raw SQL.
@@ -226,4 +239,4 @@ export class TabCrudService {
226
239
  type: Injectable,
227
240
  args: [{ providedIn: 'root' }]
228
241
  }], null, null); })();
229
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWNydWQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9jcnVkL3RhYi1jcnVkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR25ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRSxPQUFPLEVBQXFCLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkgsT0FBTyxFQUFnQyxpQkFBaUIsRUFBZ0IsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUcxRixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFF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bUJBREQsTUFBTTs7aUZBQ25CLGNBQWM7Y0FEMUIsVUFBVTtlQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cclxuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQ29tbW9uQXBpUmVzcG9uc2UsIENydWRCYXNlUGF5bG9hZCwgRGVsZXRlUGF5bG9hZCwgZXhlY3V0ZVN0b3JlZFByb2NlZHVyZVBheWxvYWQsIEdldFBheWxvYWQsIEluc2VydFBheWxvYWQsIFVwZGF0ZVBheWxvYWQgfSBmcm9tIFwiLi4vaW50ZXJmYWNlcy9jb21tb24uaW50ZXJmYWNlXCI7XHJcbmltcG9ydCB7IEFwcE9iamVjdE1vZGVsIH0gZnJvbSBcIi4uL21vZGVscy9hcHAtb2JqZWN0Lm1vZGVsXCI7XHJcbmltcG9ydCB7IE1ldGFkYXRhSGVscGVyIH0gZnJvbSBcIi4uL2hlbHBlcnMvY29tbW9uL21ldGEtZGF0YS5oZWxwZXJzXCI7XHJcbmltcG9ydCB7IGNyZWF0ZUR5bmFtaWNEYXRhLCBnZXRCdWxrSW5zZXJ0RmllbGRzLCBnZXRCdWxrSW5zZXJ0VmFsdWVzLCByZW1vdmVCbGFua1ZhbHVlIH0gZnJvbSBcIi4uL3V0aWxzL2pzb24udXRpbFwiO1xyXG5pbXBvcnQgeyBBUElCdWxrSW5zZXJ0RmllbGRzVmFsdWVTZXRzLCBBUElGaWx0ZXJDcml0ZXJpYSwgQVBJVmFsdWVTZXRzIH0gZnJvbSBcIi4uL21vZGVscy9hcGktcXVlcnkuY2xhc3NcIjtcclxuaW1wb3J0IHsgUmVxdWVzdFJlc3BvbnNlSGVscGVyIH0gZnJvbSBcIi4uL2hlbHBlcnMvY29tbW9uL3JlcS1yZXMuaGVscGVyc1wiO1xyXG5pbXBvcnQgeyBEU1FIZWxwZXIgfSBmcm9tIFwiLi4vaGVscGVycy9jb21tb24vZHNxLmhlbHBlcnNcIjtcclxuaW1wb3J0IHsgUXVlcnlUeXBlIH0gZnJvbSBcIi4uL2VudW1zL3F1ZXJ5LmVudW1cIjtcclxuaW1wb3J0IHsgQ29uanVjdGlvbkNsYXVzZSwgRmlsdGVyVmFsdWVUeXBlLCBSZWxhdGlvbmFsT3BlcmF0b3IgfSBmcm9tIFwiLi4vZW51bXMvZHNxLmVudW1cIjtcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IERhdGFTb3VyY2VRdWVyeU1vZGVsIH0gZnJvbSBcIi4uL21vZGVscy9kYXRhLXNvdXJjZS1xdWVyeS5tb2RlbFwiO1xyXG5pbXBvcnQgeyBBUEkgfSBmcm9tIFwiLi4vY29uc3RhbnRzL2FwaS1jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgZ2V0SGVhZGVycyB9IGZyb20gXCIuLi91dGlscy9yZXEtcmVzLnV0aWxcIjtcclxuaW1wb3J0IHsgQXBpU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL2h0dHAtY2xpZW50L2FwaS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFRhYkdldFNlcnZpY2UgfSBmcm9tIFwiLi90YWItZ2V0LnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVGFiSW5zZXJ0U2VydmljZSB9IGZyb20gXCIuL3RhYi1pbnNlcnQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBUYWJVcGRhdGVTZXJ2aWNlIH0gZnJvbSBcIi4vdGFiLXVwZGF0ZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFRhYkRlbGV0ZVNlcnZpY2UgfSBmcm9tIFwiLi90YWItZGVsZXRlLnNlcnZpY2VcIjtcclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBUYWJDcnVkU2VydmljZSB7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9tZXRhZGF0YUhlbHBlcjogTWV0YWRhdGFIZWxwZXIgPSBpbmplY3QoTWV0YWRhdGFIZWxwZXIpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBfcmVxdWVzdFJlc3BvbnNlSGVscGVyOiBSZXF1ZXN0UmVzcG9uc2VIZWxwZXIgPSBpbmplY3QoUmVxdWVzdFJlc3BvbnNlSGVscGVyKTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2RzcUhlbHBlcjogRFNRSGVscGVyID0gaW5qZWN0KERTUUhlbHBlcik7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9hcGlTZXJ2aWNlID0gaW5qZWN0KEFwaVNlcnZpY2UpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBfdGFiR2V0U2VydmljZSA9IGluamVjdChUYWJHZXRTZXJ2aWNlKTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3RhYkluc2VydFNlcnZpY2UgPSBpbmplY3QoVGFiSW5zZXJ0U2VydmljZSk7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF90YWJVcGRhdGVTZXJ2aWNlID0gaW5qZWN0KFRhYlVwZGF0ZVNlcnZpY2UpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBfdGFiRGVsZXRlU2VydmljZSA9IGluamVjdChUYWJEZWxldGVTZXJ2aWNlKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgdGhlIEFwcE9iamVjdE1vZGVsIGZyb20gdGhlIGdpdmVuIHBheWxvYWQuXHJcbiAgICAgKiBAcGFyYW0gcGF5bG9hZCBUaGUgcGF5bG9hZCB3aXRoIGVpdGhlciBkYXRhU291cmNlUXVlcnlJZE9yTmFtZSBvciBhcHBPYmplY3RJZE9yTmFtZS5cclxuICAgICAqIEByZXR1cm5zIFRoZSBBcHBPYmplY3RNb2RlbC5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBnZXRBcHBPYmplY3RGcm9tUGF5bG9hZChwYXlsb2FkOiBDcnVkQmFzZVBheWxvYWQpOiBBcHBPYmplY3RNb2RlbCB7XHJcbiAgICAgICAgbGV0IGFwcE9iamVjdDtcclxuXHJcbiAgICAgICAgaWYgKHBheWxvYWQ/LmRhdGFTb3VyY2VRdWVyeUlkT3JOYW1lKSB7XHJcbiAgICAgICAgICAgIC8vIElmIGRhdGFTb3VyY2VRdWVyeUlkT3JOYW1lIGlzIGdpdmVuLCBnZXQgdGhlIEFwcE9iamVjdE1vZGVsIGZyb20gdGhlIGRhdGEgc291cmNlIHF1ZXJ5XHJcbiAgICAgICAgICAgIGFwcE9iamVjdCA9IHRoaXMuX21ldGFkYXRhSGVscGVyLmdldERhdGFTb3VyY2VRdWVyeUJ5SWRPck5hbWUocGF5bG9hZC5kYXRhU291cmNlUXVlcnlJZE9yTmFtZSk/LnBhcmVudEFwcE9iamVjdDtcclxuXHJcbiAgICAgICAgfSBlbHNlIGlmIChwYXlsb2FkPy5hcHBPYmplY3RJZE9yTmFtZSkge1xyXG4gICAgICAgICAgICAvLyBJZiBhcHBPYmplY3RJZE9yTmFtZSBpcyBnaXZlbiwgZ2V0IHRoZSBBcHBPYmplY3RNb2RlbCBkaXJlY3RseVxyXG4gICAgICAgICAgICBhcHBPYmplY3QgPSB0aGlzLl9tZXRhZGF0YUhlbHBlci5nZXRBcHBPYmplY3RCeUlkT3JOYW1lKHBheWxvYWQuYXBwT2JqZWN0SWRPck5hbWUpO1xyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghYXBwT2JqZWN0Py5JRCkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0FwcE9iamVjdCBub3QgZm91bmQnKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBhcHBPYmplY3Q7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGaWx0ZXJzIG91dCBpbnZhbGlkIGZpZWxkcyBmcm9tIHRoZSBwcm92aWRlZCBkYXRhIGJhc2VkIG9uIHRoZSBBcHBPYmplY3RNb2RlbC5cclxuICAgICAqIE9wdGlvbmFsbHkgcmV0YWlucyBwcmltYXJ5IGtleSBmaWVsZHMuXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSBkYXRhIFRoZSBkYXRhIG9iamVjdCB0byBmaWx0ZXIuXHJcbiAgICAgKiBAcGFyYW0gYXBwT2JqZWN0IFRoZSBBcHBPYmplY3RNb2RlbCB1c2VkIHRvIHZhbGlkYXRlIHRoZSBmaWVsZHMuXHJcbiAgICAgKiBAcGFyYW0ga2VlcFByaW1hcnlLZXkgT3B0aW9uYWwgZmxhZyB0byByZXRhaW4gcHJpbWFyeSBrZXkgZmllbGRzLiBEZWZhdWx0cyB0byBmYWxzZS5cclxuICAgICAqIEByZXR1cm5zIEEgbmV3IG9iamVjdCB3aXRoIG9ubHkgdmFsaWQgZmllbGRzLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGZpbHRlclZhbGlkQXBwT2JqZWN0RmllbGRzKGRhdGE6IGFueSwgYXBwT2JqZWN0OiBBcHBPYmplY3RNb2RlbCwga2VlcFByaW1hcnlLZXkgPSBmYWxzZSkge1xyXG4gICAgICAgIGlmICghZGF0YSB8fCB0eXBlb2YgZGF0YSAhPT0gJ29iamVjdCcpIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBkYXRhJyk7XHJcblxyXG4gICAgICAgIGNvbnN0IGZpbHRlcmVkRGF0YSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xyXG5cclxuICAgICAgICAvLyBSZW1vdmUgZmllbGRzIHdpdGggYmxhbmsgdmFsdWVzXHJcbiAgICAgICAgcmVtb3ZlQmxhbmtWYWx1ZShmaWx0ZXJlZERhdGEpO1xyXG5cclxuICAgICAgICAvLyBJdGVyYXRlIG92ZXIgZWFjaCBrZXkgaW4gdGhlIGZpbHRlcmVkIGRhdGFcclxuICAgICAgICBPYmplY3Qua2V5cyhmaWx0ZXJlZERhdGEpPy5mb3JFYWNoKChrZXkpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgYXBwRmllbGQgPSBhcHBPYmplY3QuZmllbGQoa2V5KTtcclxuICAgICAgICAgICAgY29uc3QgY2hpbGRGaWVsZCA9IGFwcE9iamVjdC5DaGlsZFJlbGF0aW9uU2hpcHM/LnNvbWUoKHgpID0+IHg/LmNoaWxkRGV0YWlscz8uTG9va3VwT2JqZWN0ID09PSBrZXkpO1xyXG5cclxuICAgICAgICAgICAgLy8gRGVsZXRlIHRoZSBmaWVsZCBpZiBpdCBpcyBub3QgdmFsaWQgb3IgaWYgcHJpbWFyeSBrZXlzIHNob3VsZCBub3QgYmUga2VwdFxyXG4gICAgICAgICAgICBpZiAoIShhcHBGaWVsZCB8fCBjaGlsZEZpZWxkKSB8fCAoIWtlZXBQcmltYXJ5S2V5ICYmIGFwcEZpZWxkPy5Jc1ByaW1hcnlLZXkpKSB7XHJcbiAgICAgICAgICAgICAgICBkZWxldGUgZmlsdGVyZWREYXRhW2tleV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGZpbHRlcmVkRGF0YTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdlbmVyYXRlcyBhIHdoZXJlIGNsYXVzZSBiYXNlZCBvbiB0aGUgY3JpdGVyaWEgcHJvdmlkZWQuXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSBjcml0ZXJpYSBUaGUgY3JpdGVyaWEgb2JqZWN0IHRvIGdlbmVyYXRlIHRoZSB3aGVyZSBjbGF1c2UgZnJvbS5cclxuICAgICAqIEBwYXJhbSBjcnVkVGFibGVOYW1lIFRoZSBDUlVEIHRhYmxlIG5hbWUgdG8gdXNlIGluIHRoZSB3aGVyZSBjbGF1c2UuXHJcbiAgICAgKiBAcmV0dXJucyBBIG5ldyBBUElGaWx0ZXJDcml0ZXJpYSBvYmplY3Qgd2l0aCB0aGUgZ2VuZXJhdGVkIHdoZXJlIGNsYXVzZS5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBnZW5lcmF0ZVdoZXJlQ2xhdXNlKGNyaXRlcmlhOiBhbnksIGNydWRUYWJsZU5hbWU6IHN0cmluZywgcHJvdmlkZUVtcHR5V2hlcmVDbGF1c2UgPSBmYWxzZSk6IEFQSUZpbHRlckNyaXRlcmlhIHtcclxuICAgICAgICBpZiAoIXByb3ZpZGVFbXB0eVdoZXJlQ2xhdXNlICYmICghY3JpdGVyaWEgfHwgdHlwZW9mIGNyaXRlcmlhICE9PSAnb2JqZWN0JyB8fCAhT2JqZWN0LmtleXMoY3JpdGVyaWEpKSkgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGNyaXRlcmlhJyk7XHJcblxyXG4gICAgICAgIC8vIFJlbW92ZSBibGFuayB2YWx1ZXMgZnJvbSB0aGUgY3JpdGVyaWFcclxuICAgICAgICByZW1vdmVCbGFua1ZhbHVlKGNyaXRlcmlhKTtcclxuXHJcbiAgICAgICAgLy8gQ3JlYXRlIGEgbmV3IEFQSUZpbHRlckNyaXRlcmlhIG9iamVjdFxyXG4gICAgICAgIGNvbnN0IHdoZXJlQ2xhdXNlID0gbmV3IEFQSUZpbHRlckNyaXRlcmlhKCk7XHJcbiAgICAgICAgd2hlcmVDbGF1c2UuZmlsdGVycyA9IFtdO1xyXG5cclxuICAgICAgICAvLyBJdGVyYXRlIG92ZXIgZWFjaCBrZXkgaW4gdGhlIGNyaXRlcmlhIGFuZCBhZGQgaXQgdG8gdGhlIHdoZXJlIGNsYXVzZVxyXG4gICAgICAgIE9iamVjdC5rZXlzKGNyaXRlcmlhKT8uZm9yRWFjaCgoa2V5OiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgZmlsdGVyID0ge1xyXG4gICAgICAgICAgICAgICAgY29uanVuY3Rpb246IENvbmp1Y3Rpb25DbGF1c2UuQU5ELCAvLyBjb25qdWN0aW9uIGNsYXVzZSBpcyBBTkQgYnkgZGVmYXVsdFxyXG4gICAgICAgICAgICAgICAgZmllbGROYW1lOiBjcnVkVGFibGVOYW1lICsgJy4nICsga2V5LCAvLyBmaWVsZCBuYW1lXHJcbiAgICAgICAgICAgICAgICBvcGVyYXRvcjogUmVsYXRpb25hbE9wZXJhdG9yLkVxdWFsVG8sIC8vIHJlbGF0aW9uYWwgb3BlcmF0b3IgaXMgRXF1YWxUbyBieSBkZWZhdWx0XHJcbiAgICAgICAgICAgICAgICB2YWx1ZVR5cGU6IEZpbHRlclZhbHVlVHlwZS5MaXRlcmFsLCAvLyB2YWx1ZSB0eXBlIGlzIExpdGVyYWwgYnkgZGVmYXVsdFxyXG4gICAgICAgICAgICAgICAgdmFsdWU6IGNyaXRlcmlhW2tleV0sIC8vIHNldCB0aGUgdmFsdWUgb2YgdGhlIGZpbHRlclxyXG4gICAgICAgICAgICAgICAgc2VxdWVuY2U6IGluZGV4ICsgMSwgLy8gc2V0IHRoZSBzZXF1ZW5jZSBzdGFydGluZyBmcm9tIDFcclxuICAgICAgICAgICAgICAgIGdyb3VwSWQ6IDAgLy8gc2V0IHRoZSBncm91cCBJRCB0byAwIGJ5IGRlZmF1bHRcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgd2hlcmVDbGF1c2UuZmlsdGVycy5wdXNoKGZpbHRlcik7IC8vIGFkZCB0aGUgZmlsdGVyIHRvIHRoZSBhcnJheSBvZiBmaWx0ZXJzXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIC8vIFNldCB0aGUgZmlsdGVyIGxvZ2ljIHRvICcxJ1xyXG4gICAgICAgIHdoZXJlQ2xhdXNlLmZpbHRlckxvZ2ljID0gJzEnO1xyXG5cclxuICAgICAgICAvLyBSZXR1cm4gdGhlIGdlbmVyYXRlZCB3aGVyZSBjbGF1c2VcclxuICAgICAgICByZXR1cm4gd2hlcmVDbGF1c2U7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFeGVjdXRlcyBhIEdFVCByZXF1ZXN0IHRvIHJldHJpZXZlIGRhdGEgZnJvbSB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlIHF1ZXJ5LlxyXG4gICAgICogQHBhcmFtIHBheWxvYWQgVGhlIHBheWxvYWQgY29udGFpbmluZyB0aGUgY3JpdGVyaWEgZm9yIHRoZSBxdWVyeSBhbmQgdGhlIEFwcE9iamVjdE1vZGVsIElELlxyXG4gICAgICogQHBhcmFtIGhlYWRlcnMgT3B0aW9uYWwgaGVhZGVycyBmb3IgdGhlIHJlcXVlc3QuXHJcbiAgICAgKiBAcmV0dXJucyBBbiBvYnNlcnZhYmxlIG9mIHRoZSByZXNwb25zZSBmcm9tIHRoZSBBUEkuXHJcbiAgICAgKi9cclxuICAgIGdldChwYXlsb2FkOiBHZXRQYXlsb2FkLCBoZWFkZXJzPzogYW55KTogT2JzZXJ2YWJsZTxDb21tb25BcGlSZXNwb25zZT4ge1xyXG4gICAgICAgIC8vIEdldCB0aGUgQXBwT2JqZWN0TW9kZWwgZnJvbSB0aGUgcGF5bG9hZFxyXG4gICAgICAgIGNvbnN0IGFwcE9iamVjdDogQXBwT2JqZWN0TW9kZWwgPSB0aGlzLmdldEFwcE9iamVjdEZyb21QYXlsb2FkKHBheWxvYWQpO1xyXG5cclxuICAgICAgICAvLyBHZXQgdGhlIERhdGFTb3VyY2VRdWVyeU1vZGVsIGZyb20gdGhlIEFwcE9iamVjdE1vZGVsXHJcbiAgICAgICAgY29uc3QgZHNxOiBEYXRhU291cmNlUXVlcnlNb2RlbCB8IHVuZGVmaW5lZCA9IGFwcE9iamVjdC5kYXRhU291cmNlUXVlcnkocGF5bG9hZC5kYXRhU291cmNlUXVlcnlJZE9yTmFtZSk7XHJcblxyXG4gICAgICAgIC8vIFZhbGlkYXRlIHRoZSBBcHBPYmplY3RNb2RlbCBhbmQgRGF0YVNvdXJjZVF1ZXJ5TW9kZWxcclxuICAgICAgICBpZiAoIWFwcE9iamVjdCB8fCAhZHNxKSB0aHJvdyBuZXcgRXJyb3IoJ0FwcE9iamVjdCBvciBEYXRhU291cmNlUXVlcnkgbm90IGZvdW5kJyk7XHJcblxyXG4gICAgICAgIC8vIFVzZSBUYWJHZXRTZXJ2aWNlLmV4ZWN1dGVSQVdEU1FXaXRoTmFtZSB0byBhdm9pZCBjb2RlIGR1cGxpY2F0aW9uXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RhYkdldFNlcnZpY2UuZXhlY3V0ZVJBV0RTUVdpdGhOYW1lKHtcclxuICAgICAgICAgICAgQXBwT2JqZWN0TmFtZTogYXBwT2JqZWN0Lk9iamVjdE5hbWUsXHJcbiAgICAgICAgICAgIERTUU5hbWU6IGRzcS5RdWVyeU5hbWUsXHJcbiAgICAgICAgICAgIC4uLnBheWxvYWQuY3JpdGVyaWFcclxuICAgICAgICB9LCBoZWFkZXJzKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEluc2VydHMgZGF0YSBpbnRvIHRoZSBzcGVjaWZpZWQgdGFibGUuXHJcbiAgICAgKiBORVc6IERlbGVnYXRlcyB0byBUYWJJbnNlcnRTZXJ2aWNlIHdoaWNoIHVzZXMgL3JlY29yZHMvaW5zZXJ0IGVuZHBvaW50IHdpdGggU1lOQy9BU1lOQyBzdXBwb3J0XHJcbiAgICAgKiBAcGFyYW0gcGF5bG9hZCBUaGUgcGF5bG9hZCBjb250YWluaW5nIHRoZSBkYXRhIHRvIGluc2VydCBhbmQgdGhlIEFwcE9iamVjdE1vZGVsIElELlxyXG4gICAgICogQHBhcmFtIGhlYWRlcnMgT3B0aW9uYWwgaGVhZGVycyBmb3IgdGhlIHJlcXVlc3QuXHJcbiAgICAgKiBAcmV0dXJucyBBbiBvYnNlcnZhYmxlIG9mIHRoZSByZXNwb25zZSBmcm9tIHRoZSBBUEkgKHJldHVybnMgaW5zZXJ0ZWRJZCBvbmx5KS5cclxuICAgICAqL1xyXG4gICAgaW5zZXJ0KHBheWxvYWQ6IEluc2VydFBheWxvYWQsIGhlYWRlcnM/OiBhbnkpOiBPYnNlcnZhYmxlPENvbW1vbkFwaVJlc3BvbnNlPiB7XHJcbiAgICAgICAgY29uc3QgYXBwT2JqZWN0OiBBcHBPYmplY3RNb2RlbCA9IHRoaXMuZ2V0QXBwT2JqZWN0RnJvbVBheWxvYWQocGF5bG9hZCk7XHJcblxyXG4gICAgICAgIC8vIERlbGVnYXRlIHRvIFRhYkluc2VydFNlcnZpY2UgLSBpdCBoYW5kbGVzIG5ldyBBUEkgd2l0aCBTWU5DL0FTWU5DIGF1dG9tYXRpY2FsbHlcclxuICAgICAgICByZXR1cm4gdGhpcy5fdGFiSW5zZXJ0U2VydmljZS5pbnNlcnRCeU9iamVjdElkKGFwcE9iamVjdC5JRCwgeyBkYXRhOiBwYXlsb2FkLmRhdGEgfSwgaGVhZGVycykgYXMgT2JzZXJ2YWJsZTxDb21tb25BcGlSZXNwb25zZT47XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGJ1bGtJbnNlcnQocGF5bG9hZDogSW5zZXJ0UGF5bG9hZCwgaGVhZGVycz86IGFueSk6IE9ic2VydmFibGU8Q29tbW9uQXBpUmVzcG9uc2U+IHtcclxuICAgICAgICBjb25zdCBhcHBPYmplY3Q6IEFwcE9iamVjdE1vZGVsID0gdGhpcy5nZXRBcHBPYmplY3RGcm9tUGF5bG9hZChwYXlsb2FkKTtcclxuICAgICAgICAvLyBDcmVhdGUgYSB3aGVyZSBjbGF1c2UgZm9yIHRoZSBpbnNlcnQgb3BlcmF0aW9uXHJcbiAgICAgICAgY29uc3Qgd2hlcmVDbGF1c2U6IEFQSUZpbHRlckNyaXRlcmlhID0gdGhpcy5nZW5lcmF0ZVdoZXJlQ2xhdXNlKHt9LCBhcHBPYmplY3QuU3lzdGVtREJUYWJsZU5hbWUsIHRydWUpO1xyXG5cclxuICAgICAgICAvLyBUcmFuc2Zvcm0gdGhlIGRhdGEgaW50byB0aGUgZm9ybWF0IHJlcXVpcmVkIGJ5IHRoZSBBUElcclxuICAgICAgICBjb25zdCB0cmFuc2Zvcm1lZEZpZWxkczogc3RyaW5nW10gPSBnZXRCdWxrSW5zZXJ0RmllbGRzKHBheWxvYWQuZGF0YSk7XHJcbiAgICAgICAgY29uc3QgdHJhbnNmb3JtZWRWYWx1ZXM6IEFQSUJ1bGtJbnNlcnRGaWVsZHNWYWx1ZVNldHNbXSA9IGdldEJ1bGtJbnNlcnRWYWx1ZXMocGF5bG9hZC5kYXRhKTtcclxuICAgICAgICAvLyBHZW5lcmF0ZSB0aGUgcGF5bG9hZCBmb3IgdGhlIEFQSSByZXF1ZXN0XHJcbiAgICAgICAgY29uc3QgYXBpUGF5bG9hZCA9IHRoaXMuX3JlcXVlc3RSZXNwb25zZUhlbHBlci5idWxrSW5zZXJ0UGF5bG9hZChhcHBPYmplY3QuU3lzdGVtREJUYWJsZU5hbWUsIHdoZXJlQ2xhdXNlLCB0cmFuc2Zvcm1lZFZhbHVlcywgdHJhbnNmb3JtZWRGaWVsZHMpO1xyXG4gICAgICAgIC8vIEV4ZWN1dGUgdGhlIHF1ZXJ5XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RzcUhlbHBlci5leGVjdXRlUXVlcnkoYXBpUGF5bG9hZCwgUXVlcnlUeXBlLkJ1bGtJbnNlcnQsIGhlYWRlcnMpIGFzIE9ic2VydmFibGU8Q29tbW9uQXBpUmVzcG9uc2U+O1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBVcGRhdGVzIGRhdGEgaW4gdGhlIHNwZWNpZmllZCB0YWJsZS5cclxuICAgICAqIE5FVzogRGVsZWdhdGVzIHRvIFRhYlVwZGF0ZVNlcnZpY2Ugd2hpY2ggdXNlcyAvcmVjb3Jkcy91cGRhdGUgZW5kcG9pbnQgd2l0aCBTWU5DL0FTWU5DIHN1cHBvcnRcclxuICAgICAqIEBwYXJhbSBwYXlsb2FkIFRoZSBwYXlsb2FkIGNvbnRhaW5pbmcgdGhlIGRhdGEgdG8gdXBkYXRlLCB0aGUgY3JpdGVyaWEgZm9yIHRoZSB1cGRhdGUsIGFuZCB0aGUgQXBwT2JqZWN0TW9kZWwgSUQuXHJcbiAgICAgKiBAcGFyYW0gaGVhZGVycyBPcHRpb25hbCBoZWFkZXJzIGZvciB0aGUgcmVxdWVzdC5cclxuICAgICAqIEByZXR1cm5zIEFuIG9ic2VydmFibGUgb2YgdGhlIHJlc3BvbnNlIGZyb20gdGhlIEFQSS5cclxuICAgICAqL1xyXG4gICAgdXBkYXRlKHBheWxvYWQ6IFVwZGF0ZVBheWxvYWQsIGhlYWRlcnM/OiBhbnkpOiBPYnNlcnZhYmxlPENvbW1vbkFwaVJlc3BvbnNlPiB7XHJcbiAgICAgICAgY29uc3QgYXBwT2JqZWN0OiBBcHBPYmplY3RNb2RlbCA9IHRoaXMuZ2V0QXBwT2JqZWN0RnJvbVBheWxvYWQocGF5bG9hZCk7XHJcblxyXG4gICAgICAgIC8vIERlbGVnYXRlIHRvIFRhYlVwZGF0ZVNlcnZpY2UgLSBpdCBoYW5kbGVzIG5ldyBBUEkgd2l0aCBTWU5DL0FTWU5DIGF1dG9tYXRpY2FsbHlcclxuICAgICAgICByZXR1cm4gdGhpcy5fdGFiVXBkYXRlU2VydmljZS51cGRhdGVCeU9iamVjdElkKGFwcE9iamVjdC5JRCwgeyBkYXRhOiBwYXlsb2FkLmRhdGEgfSwgaGVhZGVycykgYXMgT2JzZXJ2YWJsZTxDb21tb25BcGlSZXNwb25zZT47XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEZWxldGVzIGRhdGEgZnJvbSB0aGUgc3BlY2lmaWVkIHRhYmxlLlxyXG4gICAgICogTkVXOiBEZWxlZ2F0ZXMgdG8gVGFiRGVsZXRlU2VydmljZSB3aGljaCB1c2VzIC9yZWNvcmRzL2RlbGV0ZSBlbmRwb2ludCB3aXRoIFNZTkMvQVNZTkMgc3VwcG9ydFxyXG4gICAgICogQHBhcmFtIHBheWxvYWQgVGhlIHBheWxvYWQgY29udGFpbmluZyB0aGUgY3JpdGVyaWEgZm9yIHRoZSBkZWxldGUgYW5kIHRoZSBBcHBPYmplY3RNb2RlbCBJRC5cclxuICAgICAqIEBwYXJhbSBoZWFkZXJzIE9wdGlvbmFsIGhlYWRlcnMgZm9yIHRoZSByZXF1ZXN0LlxyXG4gICAgICogQHJldHVybnMgQW4gb2JzZXJ2YWJsZSBvZiB0aGUgcmVzcG9uc2UgZnJvbSB0aGUgQVBJLlxyXG4gICAgICovXHJcbiAgICBkZWxldGUocGF5bG9hZDogRGVsZXRlUGF5bG9hZCwgaGVhZGVycz86IGFueSk6IE9ic2VydmFibGU8Q29tbW9uQXBpUmVzcG9uc2U+IHtcclxuICAgICAgICBjb25zdCBhcHBPYmplY3Q6IEFwcE9iamVjdE1vZGVsID0gdGhpcy5nZXRBcHBPYmplY3RGcm9tUGF5bG9hZChwYXlsb2FkKTtcclxuXHJcbiAgICAgICAgLy8gR2VuZXJhdGUgYSB3aGVyZSBjbGF1c2UgYmFzZWQgb24gdGhlIGNyaXRlcmlhIHByb3ZpZGVkXHJcbiAgICAgICAgY29uc3Qgd2hlcmVDbGF1c2U6IEFQSUZpbHRlckNyaXRlcmlhID0gdGhpcy5nZW5lcmF0ZVdoZXJlQ2xhdXNlKHBheWxvYWQuY3JpdGVyaWEsIGFwcE9iamVjdC5TeXN0ZW1EQlRhYmxlTmFtZSk7XHJcbiAgICAgICAgaWYgKCF3aGVyZUNsYXVzZT8uZmlsdGVycz8ubGVuZ3RoKSB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgY3JpdGVyaWEnKTtcclxuXHJcbiAgICAgICAgLy8gR2VuZXJhdGUgdGhlIHBheWxvYWQgZm9yIHRoZSBBUEkgcmVxdWVzdCAoTkVXIGZvcm1hdDogeyBlbnRpdHlOYW1lLCB3aGVyZUNsYXVzZSB9KVxyXG4gICAgICAgIGNvbnN0IGFwaVBheWxvYWQgPSB0aGlzLl9yZXF1ZXN0UmVzcG9uc2VIZWxwZXIuZGVsZXRlUGF5bG9hZChhcHBPYmplY3QuU3lzdGVtREJUYWJsZU5hbWUsIHdoZXJlQ2xhdXNlKTtcclxuXHJcbiAgICAgICAgLy8gRGVsZWdhdGUgdG8gVGFiRGVsZXRlU2VydmljZSAtIGl0IGhhbmRsZXMgbmV3IEFQSSB3aXRoIFNZTkMvQVNZTkMgYXV0b21hdGljYWxseVxyXG4gICAgICAgIHJldHVybiB0aGlzLl90YWJEZWxldGVTZXJ2aWNlLmRlbGV0ZShhcGlQYXlsb2FkLCBoZWFkZXJzKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAvKipcclxuICAgIC8vICAqIEV4ZWN1dGVzIGEgc3RvcmVkIHByb2NlZHVyZSB1c2luZyByYXcgU1FMLlxyXG4gICAgLy8gICogQHBhcmFtIHNwIFRoZSBzdG9yZWQgcHJvY2VkdXJlIHF1ZXJ5IHN0cmluZy5cclxuICAgIC8vICAqIEBwYXJhbSBoZWFkZXJzIE9wdGlvbmFsIGhlYWRlcnMgZm9yIHRoZSByZXF1ZXN0LlxyXG4gICAgLy8gICogQHJldHVybnMgVGhlIHJlc3VsdCBvZiB0aGUgQVBJIFBPU1QgcmVxdWVzdC5cclxuICAgIC8vICAqL1xyXG4gICAgLy8gZXhlY3V0ZVNwKHNwOiBzdHJpbmcsIGhlYWRlcnM/OiBhbnkpOiBPYnNlcnZhYmxlPENvbW1vbkFwaVJlc3BvbnNlPiB7XHJcbiAgICAvLyAgICAgLy8gUmV0cmlldmUgaGVhZGVycyBmb3IgdGhlIHJlcXVlc3RcclxuICAgIC8vICAgICBjb25zdCBoZWFkZXIgPSBnZXRIZWFkZXJzKGhlYWRlcnMpO1xyXG5cclxuICAgIC8vICAgICAvLyBFeGVjdXRlIHRoZSBzdG9yZWQgcHJvY2VkdXJlIHVzaW5nIGEgUE9TVCByZXF1ZXN0XHJcbiAgICAvLyAgICAgcmV0dXJuIHRoaXMuX2FwaVNlcnZpY2UucG9zdChgJHtBUEkucmF3U1FMfT9xdWVyeT0ke3NwfWAsIHt9LCBoZWFkZXIpIGFzIE9ic2VydmFibGU8Q29tbW9uQXBpUmVzcG9uc2U+O1xyXG4gICAgLy8gfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIEV4ZWN1dGVzIGEgc3RvcmVkIHByb2NlZHVyZSBiYXNlZCBvbiB0aGUgZ2l2ZW4gcGFyYW1ldGVycy5cclxuICAgICAqIEBwYXJhbSBwYXlsb2FkIFRoZSBwYXlsb2FkIGNvbnRhaW5pbmcgdGhlIG9iamVjdCBuYW1lLCBvYmplY3QgdHlwZSwgYW5kIHBhcmFtZXRlcnMgZm9yIHRoZSBzdG9yZWQgcHJvY2VkdXJlLlxyXG4gICAgICogQHBhcmFtIGhlYWRlcnMgT3B0aW9uYWwgaGVhZGVycyBmb3IgdGhlIHJlcXVlc3QuXHJcbiAgICAgKiBAcmV0dXJucyBBbiBvYnNlcnZhYmxlIG9mIHRoZSByZXNwb25zZSBmcm9tIHRoZSBBUEkuXHJcbiAgICAgKi9cclxuICAgIGV4ZWN1dGVTdG9yZWRQcm9jZWR1cmUocGF5bG9hZDogZXhlY3V0ZVN0b3JlZFByb2NlZHVyZVBheWxvYWQsIGhlYWRlcnM/OiBhbnkpOiBPYnNlcnZhYmxlPENvbW1vbkFwaVJlc3BvbnNlPiB7XHJcbiAgICAgICAgaWYgKCFoZWFkZXJzKSB7XHJcbiAgICAgICAgICAgIGhlYWRlcnMgPSBnZXRIZWFkZXJzKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBDb252ZXJ0IHRoZSBwYXJhbWV0ZXJzIG9iamVjdCB0byB0aGUgcmVxdWlyZWQgZm9ybWF0XHJcbiAgICAgICAgY29uc3QgcGFyYW1zOiBhbnkgPSBbXTtcclxuICAgICAgICBpZiAodHlwZW9mIHBheWxvYWQ/LlBhcmFtZXRlcnMgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgICAgIC8vIEl0ZXJhdGUgb3ZlciB0aGUgcGFyYW1ldGVycyBhbmQgY3JlYXRlIHRoZSByZXF1aXJlZCBmb3JtYXRcclxuICAgICAgICAgICAgT2JqZWN0LmtleXMocGF5bG9hZC5QYXJhbWV0ZXJzKS5mb3JFYWNoKChrZXk6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcGFyYW1zLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgICAgIE5hbWU6IGtleSxcclxuICAgICAgICAgICAgICAgICAgICBWYWx1ZTogcGF5bG9hZC5QYXJhbWV0ZXJzW2tleV1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIEV4ZWN1dGUgdGhlIHN0b3JlZCBwcm9jZWR1cmVcclxuICAgICAgICByZXR1cm4gdGhpcy5fYXBpU2VydmljZS5wb3N0KEFQSS5FeGVjdXRlLCB7XHJcbiAgICAgICAgICAgIC4uLnBheWxvYWQsXHJcbiAgICAgICAgICAgIFBhcmFtZXRlcnM6IHBhcmFtcyxcclxuICAgICAgICB9LCBoZWFkZXJzKTtcclxuICAgIH1cclxufVxyXG4iXX0=
242
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWNydWQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9jcnVkL3RhYi1jcnVkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR25ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNuSCxPQUFPLEVBQWdDLGlCQUFpQixFQUFnQixNQUFNLDJCQUEyQixDQUFDO0FBQzFHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRzFGLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOztBQUdoRSxNQUFNLE9BQU8sY0FBYztJQUQzQjtRQUVxQixvQkFBZSxHQUFtQixNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDekQsMkJBQXNCLEdBQTBCLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQzlFLGVBQVUsR0FBYyxNQUFNLENBQUMsU0FBUyxD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LE9BQWE7UUFDeEUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ1gsT0FBTyxHQUFHLFVBQVUsRUFBRSxDQUFDO1FBQzNCLENBQUM7UUFFRCx1REFBdUQ7UUFDdkQsTUFBTSxNQUFNLEdBQVEsRUFBRSxDQUFDO1FBQ3ZCLElBQUksT0FBTyxPQUFPLEVBQUUsVUFBVSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzFDLDZEQUE2RDtZQUM3RCxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDakQsTUFBTSxDQUFDLElBQUksQ0FBQztvQkFDUixJQUFJLEVBQUUsR0FBRztvQkFDVCxLQUFLLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUM7aUJBQ2pDLENBQUMsQ0FBQztZQUNQLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztRQUVELCtCQUErQjtRQUMvQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUU7WUFDdEMsR0FBRyxPQUFPO1lBQ1YsVUFBVSxFQUFFLE1BQU07U0FDckIsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNoQixDQUFDOytFQWxRUSxjQUFjO3VFQUFkLGNBQWMsV0FBZCxjQUFjLG1CQURELE1BQU07O2lGQUNuQixjQUFjO2NBRDFCLFVBQVU7ZUFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXHJcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IENvbW1vbkFwaVJlc3BvbnNlLCBDcnVkQmFzZVBheWxvYWQsIERlbGV0ZVBheWxvYWQsIGV4ZWN1dGVTdG9yZWRQcm9jZWR1cmVQYXlsb2FkLCBHZXRQYXlsb2FkLCBJbnNlcnRQYXlsb2FkLCBVcGRhdGVQYXlsb2FkIH0gZnJvbSBcIi4uL2ludGVyZmFjZXMvY29tbW9uLmludGVyZmFjZVwiO1xyXG5pbXBvcnQgeyBBcHBPYmplY3RNb2RlbCB9IGZyb20gXCIuLi9tb2RlbHMvYXBwLW9iamVjdC5tb2RlbFwiO1xyXG5pbXBvcnQgeyBNZXRhZGF0YUhlbHBlciB9IGZyb20gXCIuLi9oZWxwZXJzL2NvbW1vbi9tZXRhLWRhdGEuaGVscGVyc1wiO1xyXG5pbXBvcnQgeyBjcmVhdGVEeW5hbWljRGF0YSwgZ2V0QnVsa0luc2VydEZpZWxkcywgZ2V0QnVsa0luc2VydFZhbHVlcywgcmVtb3ZlQmxhbmtWYWx1ZSB9IGZyb20gXCIuLi91dGlscy9qc29uLnV0aWxcIjtcclxuaW1wb3J0IHsgQVBJQnVsa0luc2VydEZpZWxkc1ZhbHVlU2V0cywgQVBJRmlsdGVyQ3JpdGVyaWEsIEFQSVZhbHVlU2V0cyB9IGZyb20gXCIuLi9tb2RlbHMvYXBpLXF1ZXJ5LmNsYXNzXCI7XHJcbmltcG9ydCB7IFJlcXVlc3RSZXNwb25zZUhlbHBlciB9IGZyb20gXCIuLi9oZWxwZXJzL2NvbW1vbi9yZXEtcmVzLmhlbHBlcnNcIjtcclxuaW1wb3J0IHsgRFNRSGVscGVyIH0gZnJvbSBcIi4uL2hlbHBlcnMvY29tbW9uL2RzcS5oZWxwZXJzXCI7XHJcbmltcG9ydCB7IFF1ZXJ5VHlwZSB9IGZyb20gXCIuLi9lbnVtcy9xdWVyeS5lbnVtXCI7XHJcbmltcG9ydCB7IENvbmp1Y3Rpb25DbGF1c2UsIEZpbHRlclZhbHVlVHlwZSwgUmVsYXRpb25hbE9wZXJhdG9yIH0gZnJvbSBcIi4uL2VudW1zL2RzcS5lbnVtXCI7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBEYXRhU291cmNlUXVlcnlNb2RlbCB9IGZyb20gXCIuLi9tb2RlbHMvZGF0YS1zb3VyY2UtcXVlcnkubW9kZWxcIjtcclxuaW1wb3J0IHsgQVBJIH0gZnJvbSBcIi4uL2NvbnN0YW50cy9hcGktY29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IGdldEhlYWRlcnMgfSBmcm9tIFwiLi4vdXRpbHMvcmVxLXJlcy51dGlsXCI7XHJcbmltcG9ydCB7IEFwaVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS9odHRwLWNsaWVudC9hcGkuc2VydmljZVwiO1xyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIFRhYkNydWRTZXJ2aWNlIHtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX21ldGFkYXRhSGVscGVyOiBNZXRhZGF0YUhlbHBlciA9IGluamVjdChNZXRhZGF0YUhlbHBlcik7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9yZXF1ZXN0UmVzcG9uc2VIZWxwZXI6IFJlcXVlc3RSZXNwb25zZUhlbHBlciA9IGluamVjdChSZXF1ZXN0UmVzcG9uc2VIZWxwZXIpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZHNxSGVscGVyOiBEU1FIZWxwZXIgPSBpbmplY3QoRFNRSGVscGVyKTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2FwaVNlcnZpY2UgPSBpbmplY3QoQXBpU2VydmljZSk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIHRoZSBBcHBPYmplY3RNb2RlbCBmcm9tIHRoZSBnaXZlbiBwYXlsb2FkLlxyXG4gICAgICogQHBhcmFtIHBheWxvYWQgVGhlIHBheWxvYWQgd2l0aCBlaXRoZXIgZGF0YVNvdXJjZVF1ZXJ5SWRPck5hbWUgb3IgYXBwT2JqZWN0SWRPck5hbWUuXHJcbiAgICAgKiBAcmV0dXJucyBUaGUgQXBwT2JqZWN0TW9kZWwuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgZ2V0QXBwT2JqZWN0RnJvbVBheWxvYWQocGF5bG9hZDogQ3J1ZEJhc2VQYXlsb2FkKTogQXBwT2JqZWN0TW9kZWwge1xyXG4gICAgICAgIGxldCBhcHBPYmplY3Q7XHJcblxyXG4gICAgICAgIGlmIChwYXlsb2FkPy5kYXRhU291cmNlUXVlcnlJZE9yTmFtZSkge1xyXG4gICAgICAgICAgICAvLyBJZiBkYXRhU291cmNlUXVlcnlJZE9yTmFtZSBpcyBnaXZlbiwgZ2V0IHRoZSBBcHBPYmplY3RNb2RlbCBmcm9tIHRoZSBkYXRhIHNvdXJjZSBxdWVyeVxyXG4gICAgICAgICAgICBhcHBPYmplY3QgPSB0aGlzLl9tZXRhZGF0YUhlbHBlci5nZXREYXRhU291cmNlUXVlcnlCeUlkT3JOYW1lKHBheWxvYWQuZGF0YVNvdXJjZVF1ZXJ5SWRPck5hbWUpPy5wYXJlbnRBcHBPYmplY3Q7XHJcblxyXG4gICAgICAgIH0gZWxzZSBpZiAocGF5bG9hZD8uYXBwT2JqZWN0SWRPck5hbWUpIHtcclxuICAgICAgICAgICAgLy8gSWYgYXBwT2JqZWN0SWRPck5hbWUgaXMgZ2l2ZW4sIGdldCB0aGUgQXBwT2JqZWN0TW9kZWwgZGlyZWN0bHlcclxuICAgICAgICAgICAgYXBwT2JqZWN0ID0gdGhpcy5fbWV0YWRhdGFIZWxwZXIuZ2V0QXBwT2JqZWN0QnlJZE9yTmFtZShwYXlsb2FkLmFwcE9iamVjdElkT3JOYW1lKTtcclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIWFwcE9iamVjdD8uSUQpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBcHBPYmplY3Qgbm90IGZvdW5kJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gYXBwT2JqZWN0O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRmlsdGVycyBvdXQgaW52YWxpZCBmaWVsZHMgZnJvbSB0aGUgcHJvdmlkZWQgZGF0YSBiYXNlZCBvbiB0aGUgQXBwT2JqZWN0TW9kZWwuXHJcbiAgICAgKiBPcHRpb25hbGx5IHJldGFpbnMgcHJpbWFyeSBrZXkgZmllbGRzLlxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0gZGF0YSBUaGUgZGF0YSBvYmplY3QgdG8gZmlsdGVyLlxyXG4gICAgICogQHBhcmFtIGFwcE9iamVjdCBUaGUgQXBwT2JqZWN0TW9kZWwgdXNlZCB0byB2YWxpZGF0ZSB0aGUgZmllbGRzLlxyXG4gICAgICogQHBhcmFtIGtlZXBQcmltYXJ5S2V5IE9wdGlvbmFsIGZsYWcgdG8gcmV0YWluIHByaW1hcnkga2V5IGZpZWxkcy4gRGVmYXVsdHMgdG8gZmFsc2UuXHJcbiAgICAgKiBAcmV0dXJucyBBIG5ldyBvYmplY3Qgd2l0aCBvbmx5IHZhbGlkIGZpZWxkcy5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBmaWx0ZXJWYWxpZEFwcE9iamVjdEZpZWxkcyhkYXRhOiBhbnksIGFwcE9iamVjdDogQXBwT2JqZWN0TW9kZWwsIGtlZXBQcmltYXJ5S2V5ID0gZmFsc2UsIHJlbW92ZUVtcHR5VmFsdWVzID0gdHJ1ZSkge1xyXG4gICAgICAgIGlmICghZGF0YSB8fCB0eXBlb2YgZGF0YSAhPT0gJ29iamVjdCcpIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBkYXRhJyk7XHJcblxyXG4gICAgICAgIGNvbnN0IGZpbHRlcmVkRGF0YSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xyXG5cclxuICAgICAgICAvLyBSZW1vdmUgZmllbGRzIHdpdGggYmxhbmsgdmFsdWVzIChvbmx5IGZvciBpbnNlcnQsIG5vdCBmb3IgdXBkYXRlKVxyXG4gICAgICAgIGlmIChyZW1vdmVFbXB0eVZhbHVlcykge1xyXG4gICAgICAgICAgICByZW1vdmVCbGFua1ZhbHVlKGZpbHRlcmVkRGF0YSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBJdGVyYXRlIG92ZXIgZWFjaCBrZXkgaW4gdGhlIGZpbHRlcmVkIGRhdGFcclxuICAgICAgICBPYmplY3Qua2V5cyhmaWx0ZXJlZERhdGEpPy5mb3JFYWNoKChrZXkpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgYXBwRmllbGQgPSBhcHBPYmplY3QuZmllbGQoa2V5KTtcclxuICAgICAgICAgICAgY29uc3QgY2hpbGRGaWVsZCA9IGFwcE9iamVjdC5DaGlsZFJlbGF0aW9uU2hpcHM/LnNvbWUoKHgpID0+IHg/LmNoaWxkRGV0YWlscz8uTG9va3VwT2JqZWN0ID09PSBrZXkpO1xyXG5cclxuICAgICAgICAgICAgLy8gRGVsZXRlIHRoZSBmaWVsZCBpZiBpdCBpcyBub3QgdmFsaWQgb3IgaWYgcHJpbWFyeSBrZXlzIHNob3VsZCBub3QgYmUga2VwdFxyXG4gICAgICAgICAgICBpZiAoIShhcHBGaWVsZCB8fCBjaGlsZEZpZWxkKSB8fCAoIWtlZXBQcmltYXJ5S2V5ICYmIGFwcEZpZWxkPy5Jc1ByaW1hcnlLZXkpKSB7XHJcbiAgICAgICAgICAgICAgICBkZWxldGUgZmlsdGVyZWREYXRhW2tleV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGZpbHRlcmVkRGF0YTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdlbmVyYXRlcyBhIHdoZXJlIGNsYXVzZSBiYXNlZCBvbiB0aGUgY3JpdGVyaWEgcHJvdmlkZWQuXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSBjcml0ZXJpYSBUaGUgY3JpdGVyaWEgb2JqZWN0IHRvIGdlbmVyYXRlIHRoZSB3aGVyZSBjbGF1c2UgZnJvbS5cclxuICAgICAqIEBwYXJhbSBjcnVkVGFibGVOYW1lIFRoZSBDUlVEIHRhYmxlIG5hbWUgdG8gdXNlIGluIHRoZSB3aGVyZSBjbGF1c2UuXHJcbiAgICAgKiBAcmV0dXJucyBBIG5ldyBBUElGaWx0ZXJDcml0ZXJpYSBvYmplY3Qgd2l0aCB0aGUgZ2VuZXJhdGVkIHdoZXJlIGNsYXVzZS5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBnZW5lcmF0ZVdoZXJlQ2xhdXNlKGNyaXRlcmlhOiBhbnksIGNydWRUYWJsZU5hbWU6IHN0cmluZywgcHJvdmlkZUVtcHR5V2hlcmVDbGF1c2UgPSBmYWxzZSk6IEFQSUZpbHRlckNyaXRlcmlhIHtcclxuICAgICAgICBpZiAoIXByb3ZpZGVFbXB0eVdoZXJlQ2xhdXNlICYmICghY3JpdGVyaWEgfHwgdHlwZW9mIGNyaXRlcmlhICE9PSAnb2JqZWN0JyB8fCAhT2JqZWN0LmtleXMoY3JpdGVyaWEpKSkgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGNyaXRlcmlhJyk7XHJcblxyXG4gICAgICAgIC8vIFJlbW92ZSBibGFuayB2YWx1ZXMgZnJvbSB0aGUgY3JpdGVyaWFcclxuICAgICAgICByZW1vdmVCbGFua1ZhbHVlKGNyaXRlcmlhKTtcclxuXHJcbiAgICAgICAgLy8gQ3JlYXRlIGEgbmV3IEFQSUZpbHRlckNyaXRlcmlhIG9iamVjdFxyXG4gICAgICAgIGNvbnN0IHdoZXJlQ2xhdXNlID0gbmV3IEFQSUZpbHRlckNyaXRlcmlhKCk7XHJcbiAgICAgICAgd2hlcmVDbGF1c2UuRmlsdGVycyA9IFtdO1xyXG5cclxuICAgICAgICAvLyBJdGVyYXRlIG92ZXIgZWFjaCBrZXkgaW4gdGhlIGNyaXRlcmlhIGFuZCBhZGQgaXQgdG8gdGhlIHdoZXJlIGNsYXVzZVxyXG4gICAgICAgIE9iamVjdC5rZXlzKGNyaXRlcmlhKT8uZm9yRWFjaCgoa2V5OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgZmlsdGVyID0ge1xyXG4gICAgICAgICAgICAgICAgQ29uanVjdGlvbkNsYXVzZTogQ29uanVjdGlvbkNsYXVzZS5BTkQsIC8vIGNvbmp1Y3Rpb24gY2xhdXNlIGlzIEFORCBieSBkZWZhdWx0XHJcbiAgICAgICAgICAgICAgICBGaWVsZElEOiBjcnVkVGFibGVOYW1lICsgJy4nICsga2V5LCAvLyBjb21iaW5lIHRoZSBDUlVEIHRhYmxlIG5hbWUgd2l0aCB0aGUgZmllbGQgbmFtZVxyXG4gICAgICAgICAgICAgICAgUmVsYXRpb25hbE9wZXJhdG9yOiBSZWxhdGlvbmFsT3BlcmF0b3IuRXF1YWxUbywgLy8gcmVsYXRpb25hbCBvcGVyYXRvciBpcyBFcXVhbFRvIGJ5IGRlZmF1bHRcclxuICAgICAgICAgICAgICAgIFZhbHVlVHlwZTogRmlsdGVyVmFsdWVUeXBlLkxpdGVyYWwsIC8vIHZhbHVlIHR5cGUgaXMgTGl0ZXJhbCBieSBkZWZhdWx0XHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogY3JpdGVyaWFba2V5XSwgLy8gc2V0IHRoZSB2YWx1ZSBvZiB0aGUgZmlsdGVyXHJcbiAgICAgICAgICAgICAgICBTZXF1ZW5jZTogMCwgLy8gc2V0IHRoZSBzZXF1ZW5jZSB0byAwIGJ5IGRlZmF1bHRcclxuICAgICAgICAgICAgICAgIEdyb3VwSUQ6IDAgLy8gc2V0IHRoZSBncm91cCBJRCB0byAwIGJ5IGRlZmF1bHRcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgd2hlcmVDbGF1c2UuRmlsdGVycy5wdXNoKGZpbHRlcik7IC8vIGFkZCB0aGUgZmlsdGVyIHRvIHRoZSBhcnJheSBvZiBmaWx0ZXJzXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIC8vIFNldCB0aGUgZmlsdGVyIGxvZ2ljIHRvICcxJ1xyXG4gICAgICAgIHdoZXJlQ2xhdXNlLkZpbHRlckxvZ2ljID0gJzEnO1xyXG5cclxuICAgICAgICAvLyBSZXR1cm4gdGhlIGdlbmVyYXRlZCB3aGVyZSBjbGF1c2VcclxuICAgICAgICByZXR1cm4gd2hlcmVDbGF1c2U7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFeGVjdXRlcyBhIEdFVCByZXF1ZXN0IHRvIHJldHJpZXZlIGRhdGEgZnJvbSB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlIHF1ZXJ5LlxyXG4gICAgICogQHBhcmFtIHBheWxvYWQgVGhlIHBheWxvYWQgY29udGFpbmluZyB0aGUgY3JpdGVyaWEgZm9yIHRoZSBxdWVyeSBhbmQgdGhlIEFwcE9iamVjdE1vZGVsIElELlxyXG4gICAgICogQHBhcmFtIGhlYWRlcnMgT3B0aW9uYWwgaGVhZGVycyBmb3IgdGhlIHJlcXVlc3QuXHJcbiAgICAgKiBAcmV0dXJucyBBbiBvYnNlcnZhYmxlIG9mIHRoZSByZXNwb25zZSBmcm9tIHRoZSBBUEkuXHJcbiAgICAgKi9cclxuICAgIGdldChwYXlsb2FkOiBHZXRQYXlsb2FkLCBoZWFkZXJzPzogYW55KTogT2JzZXJ2YWJsZTxDb21tb25BcGlSZXNwb25zZT4ge1xyXG4gICAgICAgIC8vIEdldCB0aGUgQXBwT2JqZWN0TW9kZWwgZnJvbSB0aGUgcGF5bG9hZFxyXG4gICAgICAgIGNvbnN0IGFwcE9iamVjdDogQXBwT2JqZWN0TW9kZWwgPSB0aGlzLmdldEFwcE9iamVjdEZyb21QYXlsb2FkKHBheWxvYWQpO1xyXG5cclxuICAgICAgICAvLyBHZXQgdGhlIERhdGFTb3VyY2VRdWVyeU1vZGVsIGZyb20gdGhlIEFwcE9iamVjdE1vZGVsXHJcbiAgICAgICAgY29uc3QgZHNxOiBEYXRhU291cmNlUXVlcnlNb2RlbCB8IHVuZGVmaW5lZCA9IGFwcE9iamVjdC5kYXRhU291cmNlUXVlcnkocGF5bG9hZC5kYXRhU291cmNlUXVlcnlJZE9yTmFtZSk7XHJcblxyXG4gICAgICAgIC8vIFZhbGlkYXRlIHRoZSBBcHBPYmplY3RNb2RlbCBhbmQgRGF0YVNvdXJjZVF1ZXJ5TW9kZWxcclxuICAgICAgICBpZiAoIWFwcE9iamVjdCB8fCAhZHNxKSB0aHJvdyBuZXcgRXJyb3IoJ0FwcE9iamVjdCBvciBEYXRhU291cmNlUXVlcnkgbm90IGZvdW5kJyk7XHJcblxyXG4gICAgICAgIC8vIEdldCB0aGUgaGVhZGVycyBmcm9tIHRoZSBwYXlsb2FkXHJcbiAgICAgICAgY29uc3QgaGVhZGVyID0gZ2V0SGVhZGVycyhoZWFkZXJzKTtcclxuXHJcbiAgICAgICAgLy8gRXhlY3V0ZSB0aGUgR0VUIHJlcXVlc3RcclxuICAgICAgICByZXR1cm4gdGhpcy5fYXBpU2VydmljZS5wb3N0KFxyXG4gICAgICAgICAgICAvLyBUaGUgVVJMIGZvciB0aGUgR0VUIHJlcXVlc3RcclxuICAgICAgICAgICAgYCR7QVBJLmdldERTUX0vJHthcHBPYmplY3Q/Lk9iamVjdE5hbWV9LyR7ZHNxPy5RdWVyeU5hbWV9YCxcclxuICAgICAgICAgICAgLy8gVGhlIGNyaXRlcmlhIGZvciB0aGUgcXVlcnlcclxuICAgICAgICAgICAgcGF5bG9hZC5jcml0ZXJpYSxcclxuICAgICAgICAgICAgLy8gVGhlIGhlYWRlcnMgZm9yIHRoZSByZXF1ZXN0XHJcbiAgICAgICAgICAgIGhlYWRlclxyXG4gICAgICAgICkgYXMgT2JzZXJ2YWJsZTxDb21tb25BcGlSZXNwb25zZT47XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbnNlcnRzIGRhdGEgaW50byB0aGUgc3BlY2lmaWVkIHRhYmxlLlxyXG4gICAgICogQHBhcmFtIHBheWxvYWQgVGhlIHBheWxvYWQgY29udGFpbmluZyB0aGUgZGF0YSB0byBpbnNlcnQgYW5kIHRoZSBBcHBPYmplY3RNb2RlbCBJRC5cclxuICAgICAqIEBwYXJhbSBoZWFkZXJzIE9wdGlvbmFsIGhlYWRlcnMgZm9yIHRoZSByZXF1ZXN0LlxyXG4gICAgICogQHJldHVybnMgQW4gb2JzZXJ2YWJsZSBvZiB0aGUgcmVzcG9uc2UgZnJvbSB0aGUgQVBJLlxyXG4gICAgICovXHJcbiAgICBpbnNlcnQocGF5bG9hZDogSW5zZXJ0UGF5bG9hZCwgaGVhZGVycz86IGFueSk6IE9ic2VydmFibGU8Q29tbW9uQXBpUmVzcG9uc2U+IHtcclxuICAgICAgICBjb25zdCBhcHBPYmplY3Q6IEFwcE9iamVjdE1vZGVsID0gdGhpcy5nZXRBcHBPYmplY3RGcm9tUGF5bG9hZChwYXlsb2FkKTtcclxuXHJcbiAgICAgICAgLy8gRmlsdGVyIG91dCBpbnZhbGlkIGZpZWxkcyBmcm9tIHRoZSBkYXRhIGJhc2VkIG9uIHRoZSBBcHBPYmplY3RNb2RlbFxyXG4gICAgICAgIGNvbnN0IGZpbHRlcmVkRGF0YTogYW55ID0gdGhpcy5maWx0ZXJWYWxpZEFwcE9iamVjdEZpZWxkcyhwYXlsb2FkLmRhdGEsIGFwcE9iamVjdCk7XHJcblxyXG4gICAgICAgIC8vIENyZWF0ZSBhIHdoZXJlIGNsYXVzZSBmb3IgdGhlIGluc2VydCBvcGVyYXRpb25cclxuICAgICAgICBjb25zdCB3aGVyZUNsYXVzZTogQVBJRmlsdGVyQ3JpdGVyaWEgPSB0aGlzLmdlbmVyYXRlV2hlcmVDbGF1c2Uoe30sIGFwcE9iamVjdC5TeXN0ZW1EQlRhYmxlTmFtZSwgdHJ1ZSk7XHJcblxyXG4gICAgICAgIC8vIFRyYW5zZm9ybSB0aGUgZGF0YSBpbnRvIHRoZSBmb3JtYXQgcmVxdWlyZWQgYnkgdGhlIEFQSVxyXG4gICAgICAgIGNvbnN0IHRyYW5zZm9ybWVkRGF0YTogQVBJVmFsdWVTZXRzW10gPSBjcmVhdGVEeW5hbWljRGF0YShmaWx0ZXJlZERhdGEpO1xyXG5cclxuICAgICAgICAvLyBHZW5lcmF0ZSB0aGUgcGF5bG9hZCBmb3IgdGhlIEFQSSByZXF1ZXN0XHJcbiAgICAgICAgY29uc3QgYXBpUGF5bG9hZCA9IHRoaXMuX3JlcXVlc3RSZXNwb25zZUhlbHBlci5pbnNlcnRQYXlsb2FkKGFwcE9iamVjdC5TeXN0ZW1EQlRhYmxlTmFtZSwgd2hlcmVDbGF1c2UsIHRyYW5zZm9ybWVkRGF0YSk7XHJcblxyXG4gICAgICAgIC8vIEV4ZWN1dGUgdGhlIHF1ZXJ5XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RzcUhlbHBlci5leGVjdXRlUXVlcnkoYXBpUGF5bG9hZCwgUXVlcnlUeXBlLkluc2VydCwgaGVhZGVycykgYXMgT2JzZXJ2YWJsZTxDb21tb25BcGlSZXNwb25zZT47XHJcbiAgICB9XHJcbiAgICBidWxrSW5zZXJ0KHBheWxvYWQ6IEluc2VydFBheWxvYWQsIGhlYWRlcnM/OiBhbnkpOiBPYnNlcnZhYmxlPENvbW1vbkFwaVJlc3BvbnNlPiB7XHJcbiAgICAgICAgY29uc3QgYXBwT2JqZWN0OiBBcHBPYmplY3RNb2RlbCA9IHRoaXMuZ2V0QXBwT2JqZWN0RnJvbVBheWxvYWQocGF5bG9hZCk7XHJcbiAgICAgICAgLy8gQ3JlYXRlIGEgd2hlcmUgY2xhdXNlIGZvciB0aGUgaW5zZXJ0IG9wZXJhdGlvblxyXG4gICAgICAgIGNvbnN0IHdoZXJlQ2xhdXNlOiBBUElGaWx0ZXJDcml0ZXJpYSA9IHRoaXMuZ2VuZXJhdGVXaGVyZUNsYXVzZSh7fSwgYXBwT2JqZWN0LlN5c3RlbURCVGFibGVOYW1lLCB0cnVlKTtcclxuXHJcbiAgICAgICAgLy8gVHJhbnNmb3JtIHRoZSBkYXRhIGludG8gdGhlIGZvcm1hdCByZXF1aXJlZCBieSB0aGUgQVBJXHJcbiAgICAgICAgY29uc3QgdHJhbnNmb3JtZWRGaWVsZHM6IHN0cmluZ1tdID0gZ2V0QnVsa0luc2VydEZpZWxkcyhwYXlsb2FkLmRhdGEpO1xyXG4gICAgICAgIGNvbnN0IHRyYW5zZm9ybWVkVmFsdWVzOiBBUElCdWxrSW5zZXJ0RmllbGRzVmFsdWVTZXRzW10gPSBnZXRCdWxrSW5zZXJ0VmFsdWVzKHBheWxvYWQuZGF0YSk7XHJcbiAgICAgICAgLy8gR2VuZXJhdGUgdGhlIHBheWxvYWQgZm9yIHRoZSBBUEkgcmVxdWVzdFxyXG4gICAgICAgIGNvbnN0IGFwaVBheWxvYWQgPSB0aGlzLl9yZXF1ZXN0UmVzcG9uc2VIZWxwZXIuYnVsa0luc2VydFBheWxvYWQoYXBwT2JqZWN0LlN5c3RlbURCVGFibGVOYW1lLCB3aGVyZUNsYXVzZSwgdHJhbnNmb3JtZWRWYWx1ZXMsIHRyYW5zZm9ybWVkRmllbGRzKTtcclxuICAgICAgICAvLyBFeGVjdXRlIHRoZSBxdWVyeVxyXG4gICAgICAgIHJldHVybiB0aGlzLl9kc3FIZWxwZXIuZXhlY3V0ZVF1ZXJ5KGFwaVBheWxvYWQsIFF1ZXJ5VHlwZS5CdWxrSW5zZXJ0LCBoZWFkZXJzKSBhcyBPYnNlcnZhYmxlPENvbW1vbkFwaVJlc3BvbnNlPjtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogVXBkYXRlcyBkYXRhIGluIHRoZSBzcGVjaWZpZWQgdGFibGUuXHJcbiAgICAgKiBAcGFyYW0gcGF5bG9hZCBUaGUgcGF5bG9hZCBjb250YWluaW5nIHRoZSBkYXRhIHRvIHVwZGF0ZSwgdGhlIGNyaXRlcmlhIGZvciB0aGUgdXBkYXRlLCBhbmQgdGhlIEFwcE9iamVjdE1vZGVsIElELlxyXG4gICAgICogQHBhcmFtIGhlYWRlcnMgT3B0aW9uYWwgaGVhZGVycyBmb3IgdGhlIHJlcXVlc3QuXHJcbiAgICAgKiBAcmV0dXJucyBBbiBvYnNlcnZhYmxlIG9mIHRoZSByZXNwb25zZSBmcm9tIHRoZSBBUEkuXHJcbiAgICAgKi9cclxuICAgIHVwZGF0ZShwYXlsb2FkOiBVcGRhdGVQYXlsb2FkLCBoZWFkZXJzPzogYW55KTogT2JzZXJ2YWJsZTxDb21tb25BcGlSZXNwb25zZT4ge1xyXG4gICAgICAgIGNvbnN0IGFwcE9iamVjdDogQXBwT2JqZWN0TW9kZWwgPSB0aGlzLmdldEFwcE9iamVjdEZyb21QYXlsb2FkKHBheWxvYWQpO1xyXG5cclxuICAgICAgICAvLyBGaWx0ZXIgb3V0IGludmFsaWQgZmllbGRzIGZyb20gdGhlIGRhdGEgYmFzZWQgb24gdGhlIEFwcE9iamVjdE1vZGVsIChwcmVzZXJ2ZSBibGFuayB2YWx1ZXMgZm9yIHVwZGF0ZSlcclxuICAgICAgICBjb25zdCBmaWx0ZXJlZERhdGE6IGFueSA9IHRoaXMuZmlsdGVyVmFsaWRBcHBPYmplY3RGaWVsZHMocGF5bG9hZC5kYXRhLCBhcHBPYmplY3QsIGZhbHNlLCBmYWxzZSk7XHJcblxyXG4gICAgICAgIC8vIEdlbmVyYXRlIGEgd2hlcmUgY2xhdXNlIGJhc2VkIG9uIHRoZSBjcml0ZXJpYSBwcm92aWRlZFxyXG4gICAgICAgIGNvbnN0IHdoZXJlQ2xhdXNlOiBBUElGaWx0ZXJDcml0ZXJpYSA9IHRoaXMuZ2VuZXJhdGVXaGVyZUNsYXVzZShwYXlsb2FkLmNyaXRlcmlhLCBhcHBPYmplY3QuU3lzdGVtREJUYWJsZU5hbWUpO1xyXG4gICAgICAgIGlmICghd2hlcmVDbGF1c2U/LkZpbHRlcnM/Lmxlbmd0aCkgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGNyaXRlcmlhJyk7XHJcblxyXG4gICAgICAgIC8vIFRyYW5zZm9ybSB0aGUgZGF0YSBpbnRvIHRoZSBmb3JtYXQgcmVxdWlyZWQgYnkgdGhlIEFQSVxyXG4gICAgICAgIGNvbnN0IHRyYW5zZm9ybWVkRGF0YTogQVBJVmFsdWVTZXRzW10gPSBjcmVhdGVEeW5hbWljRGF0YShmaWx0ZXJlZERhdGEpO1xyXG5cclxuICAgICAgICAvLyBHZW5lcmF0ZSB0aGUgcGF5bG9hZCBmb3IgdGhlIEFQSSByZXF1ZXN0XHJcbiAgICAgICAgY29uc3QgYXBpUGF5bG9hZCA9IHRoaXMuX3JlcXVlc3RSZXNwb25zZUhlbHBlci51cGRhdGVSZXF1ZXN0UGF5bG9hZChhcHBPYmplY3QuU3lzdGVtREJUYWJsZU5hbWUsIHdoZXJlQ2xhdXNlLCB0cmFuc2Zvcm1lZERhdGEpO1xyXG5cclxuICAgICAgICAvLyBFeGVjdXRlIHRoZSBxdWVyeVxyXG4gICAgICAgIHJldHVybiB0aGlzLl9kc3FIZWxwZXIuZXhlY3V0ZVF1ZXJ5KGFwaVBheWxvYWQsIFF1ZXJ5VHlwZS5VcGRhdGUsIGhlYWRlcnMpIGFzIE9ic2VydmFibGU8Q29tbW9uQXBpUmVzcG9uc2U+O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVsZXRlcyBkYXRhIGZyb20gdGhlIHNwZWNpZmllZCB0YWJsZS5cclxuICAgICAqIEBwYXJhbSBwYXlsb2FkIFRoZSBwYXlsb2FkIGNvbnRhaW5pbmcgdGhlIGNyaXRlcmlhIGZvciB0aGUgZGVsZXRlIGFuZCB0aGUgQXBwT2JqZWN0TW9kZWwgSUQuXHJcbiAgICAgKiBAcGFyYW0gaGVhZGVycyBPcHRpb25hbCBoZWFkZXJzIGZvciB0aGUgcmVxdWVzdC5cclxuICAgICAqIEByZXR1cm5zIEFuIG9ic2VydmFibGUgb2YgdGhlIHJlc3BvbnNlIGZyb20gdGhlIEFQSS5cclxuICAgICAqL1xyXG4gICAgZGVsZXRlKHBheWxvYWQ6IERlbGV0ZVBheWxvYWQsIGhlYWRlcnM/OiBhbnkpOiBPYnNlcnZhYmxlPENvbW1vbkFwaVJlc3BvbnNlPiB7XHJcbiAgICAgICAgY29uc3QgYXBwT2JqZWN0OiBBcHBPYmplY3RNb2RlbCA9IHRoaXMuZ2V0QXBwT2JqZWN0RnJvbVBheWxvYWQocGF5bG9hZCk7XHJcblxyXG4gICAgICAgIC8vIEdlbmVyYXRlIGEgd2hlcmUgY2xhdXNlIGJhc2VkIG9uIHRoZSBjcml0ZXJpYSBwcm92aWRlZFxyXG4gICAgICAgIGNvbnN0IHdoZXJlQ2xhdXNlOiBBUElGaWx0ZXJDcml0ZXJpYSA9IHRoaXMuZ2VuZXJhdGVXaGVyZUNsYXVzZShwYXlsb2FkLmNyaXRlcmlhLCBhcHBPYmplY3QuU3lzdGVtREJUYWJsZU5hbWUpO1xyXG4gICAgICAgIGlmICghd2hlcmVDbGF1c2U/LkZpbHRlcnM/Lmxlbmd0aCkgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGNyaXRlcmlhJyk7XHJcblxyXG4gICAgICAgIC8vIEdlbmVyYXRlIHRoZSBwYXlsb2FkIGZvciB0aGUgQVBJIHJlcXVlc3RcclxuICAgICAgICBjb25zdCBhcGlQYXlsb2FkID0gdGhpcy5fcmVxdWVzdFJlc3BvbnNlSGVscGVyLmRlbGV0ZVBheWxvYWQoYXBwT2JqZWN0LlN5c3RlbURCVGFibGVOYW1lLCB3aGVyZUNsYXVzZSk7XHJcblxyXG4gICAgICAgIC8vIEV4ZWN1dGUgdGhlIHF1ZXJ5XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RzcUhlbHBlci5leGVjdXRlUXVlcnkoYXBpUGF5bG9hZCwgUXVlcnlUeXBlLkRlbGV0ZSwgaGVhZGVycykgYXMgT2JzZXJ2YWJsZTxDb21tb25BcGlSZXNwb25zZT47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gLyoqXHJcbiAgICAvLyAgKiBFeGVjdXRlcyBhIHN0b3JlZCBwcm9jZWR1cmUgdXNpbmcgcmF3IFNRTC5cclxuICAgIC8vICAqIEBwYXJhbSBzcCBUaGUgc3RvcmVkIHByb2NlZHVyZSBxdWVyeSBzdHJpbmcuXHJcbiAgICAvLyAgKiBAcGFyYW0gaGVhZGVycyBPcHRpb25hbCBoZWFkZXJzIGZvciB0aGUgcmVxdWVzdC5cclxuICAgIC8vICAqIEByZXR1cm5zIFRoZSByZXN1bHQgb2YgdGhlIEFQSSBQT1NUIHJlcXVlc3QuXHJcbiAgICAvLyAgKi9cclxuICAgIC8vIGV4ZWN1dGVTcChzcDogc3RyaW5nLCBoZWFkZXJzPzogYW55KTogT2JzZXJ2YWJsZTxDb21tb25BcGlSZXNwb25zZT4ge1xyXG4gICAgLy8gICAgIC8vIFJldHJpZXZlIGhlYWRlcnMgZm9yIHRoZSByZXF1ZXN0XHJcbiAgICAvLyAgICAgY29uc3QgaGVhZGVyID0gZ2V0SGVhZGVycyhoZWFkZXJzKTtcclxuXHJcbiAgICAvLyAgICAgLy8gRXhlY3V0ZSB0aGUgc3RvcmVkIHByb2NlZHVyZSB1c2luZyBhIFBPU1QgcmVxdWVzdFxyXG4gICAgLy8gICAgIHJldHVybiB0aGlzLl9hcGlTZXJ2aWNlLnBvc3QoYCR7QVBJLnJhd1NRTH0/cXVlcnk9JHtzcH1gLCB7fSwgaGVhZGVyKSBhcyBPYnNlcnZhYmxlPENvbW1vbkFwaVJlc3BvbnNlPjtcclxuICAgIC8vIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFeGVjdXRlcyBhIHN0b3JlZCBwcm9jZWR1cmUgYmFzZWQgb24gdGhlIGdpdmVuIHBhcmFtZXRlcnMuXHJcbiAgICAgKiBAcGFyYW0gcGF5bG9hZCBUaGUgcGF5bG9hZCBjb250YWluaW5nIHRoZSBvYmplY3QgbmFtZSwgb2JqZWN0IHR5cGUsIGFuZCBwYXJhbWV0ZXJzIGZvciB0aGUgc3RvcmVkIHByb2NlZHVyZS5cclxuICAgICAqIEBwYXJhbSBoZWFkZXJzIE9wdGlvbmFsIGhlYWRlcnMgZm9yIHRoZSByZXF1ZXN0LlxyXG4gICAgICogQHJldHVybnMgQW4gb2JzZXJ2YWJsZSBvZiB0aGUgcmVzcG9uc2UgZnJvbSB0aGUgQVBJLlxyXG4gICAgICovXHJcbiAgICBleGVjdXRlU3RvcmVkUHJvY2VkdXJlKHBheWxvYWQ6IGV4ZWN1dGVTdG9yZWRQcm9jZWR1cmVQYXlsb2FkLCBoZWFkZXJzPzogYW55KTogT2JzZXJ2YWJsZTxDb21tb25BcGlSZXNwb25zZT4ge1xyXG4gICAgICAgIGlmICghaGVhZGVycykge1xyXG4gICAgICAgICAgICBoZWFkZXJzID0gZ2V0SGVhZGVycygpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gQ29udmVydCB0aGUgcGFyYW1ldGVycyBvYmplY3QgdG8gdGhlIHJlcXVpcmVkIGZvcm1hdFxyXG4gICAgICAgIGNvbnN0IHBhcmFtczogYW55ID0gW107XHJcbiAgICAgICAgaWYgKHR5cGVvZiBwYXlsb2FkPy5QYXJhbWV0ZXJzID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgICAvLyBJdGVyYXRlIG92ZXIgdGhlIHBhcmFtZXRlcnMgYW5kIGNyZWF0ZSB0aGUgcmVxdWlyZWQgZm9ybWF0XHJcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKHBheWxvYWQuUGFyYW1ldGVycykuZm9yRWFjaCgoa2V5OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIHBhcmFtcy5wdXNoKHtcclxuICAgICAgICAgICAgICAgICAgICBOYW1lOiBrZXksXHJcbiAgICAgICAgICAgICAgICAgICAgVmFsdWU6IHBheWxvYWQuUGFyYW1ldGVyc1trZXldXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBFeGVjdXRlIHRoZSBzdG9yZWQgcHJvY2VkdXJlXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FwaVNlcnZpY2UucG9zdChBUEkuRXhlY3V0ZSwge1xyXG4gICAgICAgICAgICAuLi5wYXlsb2FkLFxyXG4gICAgICAgICAgICBQYXJhbWV0ZXJzOiBwYXJhbXMsXHJcbiAgICAgICAgfSwgaGVhZGVycyk7XHJcbiAgICB9XHJcbn1cclxuIl19