@gipisistemas/ng-core 1.1.3 → 1.1.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (99) hide show
  1. package/assets/styles/colors.scss +5 -1
  2. package/bundles/gipisistemas-ng-core.umd.js +2098 -1285
  3. package/bundles/gipisistemas-ng-core.umd.js.map +1 -1
  4. package/bundles/gipisistemas-ng-core.umd.min.js +10 -9
  5. package/bundles/gipisistemas-ng-core.umd.min.js.map +1 -1
  6. package/core/gipi-components/models/sort.model.d.ts +3 -3
  7. package/core/utils/array.util.d.ts +2 -2
  8. package/core/utils/object.util.d.ts +3 -5
  9. package/core/utils/string.util.d.ts +4 -0
  10. package/esm2015/core/gipi-components/models/sort.model.js +1 -1
  11. package/esm2015/core/gipi-components/services/abstract-crud.service.js +18 -24
  12. package/esm2015/core/utils/array.util.js +4 -2
  13. package/esm2015/core/utils/object.util.js +5 -9
  14. package/esm2015/core/utils/string.util.js +27 -1
  15. package/esm2015/gipi-components.js +11 -1
  16. package/esm2015/shared/components/input/input.component.js +46 -23
  17. package/esm2015/shared/components/select-entity-paged/shared/select-search/select-search.component.js +2 -2
  18. package/esm2015/shared/components/table/table.component.js +1 -1
  19. package/esm2015/shared/gipi-components/abstract-form/abstract-form.component.js +1 -1
  20. package/esm2015/shared/gipi-components/button/button.component.js +18 -2
  21. package/esm2015/shared/gipi-components/card/card.component.js +113 -0
  22. package/esm2015/shared/gipi-components/datepicker/datepicker/datepicker.component.js +8 -3
  23. package/esm2015/shared/gipi-components/empty-state/empty-state.component.js +30 -0
  24. package/esm2015/shared/gipi-components/input-select-paged/input-search/input-search.component.js +2 -2
  25. package/esm2015/shared/gipi-components/layout-grid/col.directive.js +4 -4
  26. package/esm2015/shared/gipi-components/month-year-picker/month-year-picker.component.js +2 -2
  27. package/esm2015/shared/gipi-components/notification/notification.component.js +8 -3
  28. package/esm2015/shared/gipi-components/popover/shared/popover-trigger.js +4 -4
  29. package/esm2015/shared/gipi-components/sidebar/sidenav/sidenav.component.js +35 -3
  30. package/esm2015/shared/gipi-components/slide-toggle/slide-toggle.component.js +113 -0
  31. package/esm2015/shared/gipi-components/split-button/split-button.component.js +243 -0
  32. package/esm2015/shared/gipi-components/tabs/shared/dynamic-tab.directive.js +18 -0
  33. package/esm2015/shared/gipi-components/tabs/shared/tab.model.js +8 -0
  34. package/esm2015/shared/gipi-components/tabs/tab/tab.component.js +66 -0
  35. package/esm2015/shared/gipi-components/tabs/tab-group/tab-group.component.js +123 -0
  36. package/esm2015/shared/gipi-components/textarea/textarea.component.js +298 -0
  37. package/esm2015/shared/shared.module.js +22 -16
  38. package/esm2015/shared.js +1 -5
  39. package/esm5/core/gipi-components/models/sort.model.js +1 -1
  40. package/esm5/core/gipi-components/services/abstract-crud.service.js +18 -24
  41. package/esm5/core/utils/array.util.js +4 -3
  42. package/esm5/core/utils/object.util.js +5 -9
  43. package/esm5/core/utils/string.util.js +27 -1
  44. package/esm5/gipi-components.js +11 -1
  45. package/esm5/shared/components/input/input.component.js +46 -23
  46. package/esm5/shared/components/select-entity-paged/shared/select-search/select-search.component.js +2 -2
  47. package/esm5/shared/components/table/table.component.js +1 -1
  48. package/esm5/shared/gipi-components/abstract-form/abstract-form.component.js +1 -1
  49. package/esm5/shared/gipi-components/button/button.component.js +22 -2
  50. package/esm5/shared/gipi-components/card/card.component.js +135 -0
  51. package/esm5/shared/gipi-components/datepicker/datepicker/datepicker.component.js +8 -3
  52. package/esm5/shared/gipi-components/empty-state/empty-state.component.js +33 -0
  53. package/esm5/shared/gipi-components/input-select-paged/input-search/input-search.component.js +2 -2
  54. package/esm5/shared/gipi-components/layout-grid/col.directive.js +4 -4
  55. package/esm5/shared/gipi-components/month-year-picker/month-year-picker.component.js +2 -2
  56. package/esm5/shared/gipi-components/notification/notification.component.js +8 -3
  57. package/esm5/shared/gipi-components/popover/shared/popover-trigger.js +4 -4
  58. package/esm5/shared/gipi-components/sidebar/sidenav/sidenav.component.js +35 -3
  59. package/esm5/shared/gipi-components/slide-toggle/slide-toggle.component.js +127 -0
  60. package/esm5/shared/gipi-components/split-button/split-button.component.js +249 -0
  61. package/esm5/shared/gipi-components/tabs/shared/dynamic-tab.directive.js +19 -0
  62. package/esm5/shared/gipi-components/tabs/shared/tab.model.js +10 -0
  63. package/esm5/shared/gipi-components/tabs/tab/tab.component.js +67 -0
  64. package/esm5/shared/gipi-components/tabs/tab-group/tab-group.component.js +131 -0
  65. package/esm5/shared/gipi-components/textarea/textarea.component.js +352 -0
  66. package/esm5/shared/shared.module.js +22 -16
  67. package/esm5/shared.js +1 -5
  68. package/fesm2015/gipisistemas-ng-core.js +1991 -1274
  69. package/fesm2015/gipisistemas-ng-core.js.map +1 -1
  70. package/fesm5/gipisistemas-ng-core.js +2088 -1281
  71. package/fesm5/gipisistemas-ng-core.js.map +1 -1
  72. package/gipi-components.d.ts +9 -0
  73. package/gipisistemas-ng-core.metadata.json +1 -1
  74. package/package.json +1 -2
  75. package/shared/components/input/input.component.d.ts +13 -11
  76. package/shared/components/table/table.component.d.ts +3 -3
  77. package/shared/gipi-components/button/button.component.d.ts +14 -0
  78. package/shared/gipi-components/card/card.component.d.ts +23 -0
  79. package/shared/gipi-components/empty-state/empty-state.component.d.ts +5 -0
  80. package/shared/gipi-components/notification/notification.component.d.ts +1 -0
  81. package/shared/gipi-components/sidebar/sidenav/sidenav.component.d.ts +7 -0
  82. package/shared/gipi-components/slide-toggle/slide-toggle.component.d.ts +27 -0
  83. package/shared/gipi-components/split-button/split-button.component.d.ts +60 -0
  84. package/shared/{directives → gipi-components/tabs/shared}/dynamic-tab.directive.d.ts +1 -1
  85. package/shared/gipi-components/tabs/shared/tab.model.d.ts +12 -0
  86. package/shared/{components → gipi-components/tabs}/tab/tab.component.d.ts +4 -2
  87. package/shared/gipi-components/tabs/tab-group/tab-group.component.d.ts +22 -0
  88. package/shared/gipi-components/textarea/textarea.component.d.ts +68 -0
  89. package/shared.d.ts +0 -4
  90. package/esm2015/shared/components/select-button/select-button.component.js +0 -181
  91. package/esm2015/shared/components/tab/tab.component.js +0 -57
  92. package/esm2015/shared/components/tab-group/tab-group.component.js +0 -117
  93. package/esm2015/shared/directives/dynamic-tab.directive.js +0 -18
  94. package/esm5/shared/components/select-button/select-button.component.js +0 -195
  95. package/esm5/shared/components/tab/tab.component.js +0 -58
  96. package/esm5/shared/components/tab-group/tab-group.component.js +0 -125
  97. package/esm5/shared/directives/dynamic-tab.directive.js +0 -19
  98. package/shared/components/select-button/select-button.component.d.ts +0 -35
  99. package/shared/components/tab-group/tab-group.component.d.ts +0 -22
@@ -582,4 +582,4 @@ TableComponent = __decorate([
582
582
  __metadata("design:paramtypes", [NgZone])
583
583
  ], TableComponent);
584
584
  export { TableComponent };
585
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGdpcGlzaXN0ZW1hcy9uZy1jb3JlLyIsInNvdXJjZXMiOlsic2hhcmVkL2NvbXBvbmVudHMvdGFibGUvdGFibGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0SyxPQUFPLEVBQW1CLFlBQVksRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQXVCLE1BQU0sbUJBQW1CLENBQUM7QUFDcEgsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBZ0J0RixJQUFhLGNBQWMsR0FBM0IsTUFBYSxjQUFjO0lBd0h2QixZQUFvQixPQUFlO1FBQWYsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQXRINUIsa0JBQWEsR0FBUSxFQUFFLENBQUM7UUFFeEIsc0JBQWlCLEdBQVcsR0FBRyxDQUFDO1FBQ2hDLG9CQUFlLEdBQVEsSUFBSSxDQUFDO1FBRTVCLHNCQUFpQixHQUFVLEVBQUUsQ0FBQztRQW1CNUIsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUV4QixZQUFPLEdBQXFCLEVBQUUsQ0FBQztRQVcv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LEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztnQkFDN0UsS0FBSyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztnQkFDekMsVUFBVSxDQUFDLHdCQUF3QixFQUFFLE9BQU8sQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO2FBQ3hGLENBQUM7U0FDTDs7S0FDSixDQUFDO3FDQXlIK0IsTUFBTTtHQXhIMUIsY0FBYyxDQXNjMUI7U0F0Y1ksY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE5nWm9uZSwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0SGVhZGVyUm93RGVmLCBNYXRQYWdpbmF0b3IsIE1hdFNvcnQsIE1hdFRhYmxlRGF0YVNvdXJjZSwgU29ydCwgU29ydERpcmVjdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWxheSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQXJyYXlVdGlsLCBPYmplY3RVdGlsLCBTdHJpbmdVdGlsIH0gZnJvbSAnLi4vLi4vLi4vY29yZSc7XG5pbXBvcnQgeyBUYWJsZUNvbHVtbkRUTyB9IGZyb20gJy4uLy4uLy4uL2NvcmUvbW9kZWxzL2R0by90YWJsZS1jb2x1bW4uZHRvJztcbmltcG9ydCB7IFRhYmxlR3JvdXBIZWFkZXJEVE8gfSBmcm9tICcuLi8uLi8uLi9jb3JlL21vZGVscy9kdG8vdGFibGUtZ3JvdXAtaGVhZGVyLmR0byc7XG5pbXBvcnQgeyBUYWJsZVBhZ2VFdmVudERUTyB9IGZyb20gJy4uLy4uLy4uL2NvcmUvbW9kZWxzL2R0by90YWJsZS1wYWdlLWV2ZW50LmR0byc7XG5cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdpdHNzLXRhYmxlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3RhYmxlLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgYW5pbWF0aW9uczogW1xuICAgICAgICB0cmlnZ2VyKCdkZXRhaWxFeHBhbmQnLCBbXG4gICAgICAgICAgICBzdGF0ZSgnY29sbGFwc2VkJywgc3R5bGUoeyBoZWlnaHQ6ICcwcHgnLCBtaW5IZWlnaHQ6ICcwJywgZGlzcGxheTogJ25vbmUnIH0pKSxcbiAgICAgICAgICAgIHN0YXRlKCdleHBhbmRlZCcsIHN0eWxlKHsgaGVpZ2h0OiAnKicgfSkpLFxuICAgICAgICAgICAgdHJhbnNpdGlvbignZXhwYW5kZWQgPD0+IGNvbGxhcHNlZCcsIGFuaW1hdGUoJzIyNW1zIGN1YmljLWJlemllcigwLjQsIDAuMCwgMC4yLCAxKScpKSxcbiAgICAgICAgXSksXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVDb21wb25lbnQ8VD4gaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMsIE9uSW5pdCB7XG5cbiAgICBwdWJsaWMgX2V4cGFuZGVkUm93czogVFtdID0gW107XG5cbiAgICBwdWJsaWMgX3Njcm9sbEhlaWdodENhbGM6IG51bWJlciA9IDQxMDtcbiAgICBwdWJsaWMgX2lzUG9wb3ZlckhvdmVyOiBhbnkgPSBudWxsO1xuICAgIHB1YmxpYyBfY29udGV4dFBvcG92ZXI6IFQ7XG4gICAgcHVibGljIF9kaXNwbGF5ZWRDb2x1bW5zOiBhbnlbXSA9IFtdO1xuICAgIHB1YmxpYyBfZGF0YVNvdXJjZTogTWF0VGFibGVEYXRhU291cmNlPFQgfCBUYWJsZUdyb3VwSGVhZGVyRFRPPjtcblxuICAgIEBWaWV3Q2hpbGQoTWF0U29ydCwgeyBzdGF0aWM6IHRydWUgfSkgbWF0U29ydDogTWF0U29ydDtcbiAgICBAVmlld0NoaWxkKE1hdFBhZ2luYXRvciwgeyBzdGF0aWM6IHRydWUgfSkgbWF0UGFnaW5hdG9yOiBNYXRQYWdpbmF0b3I7XG4gICAgQFZpZXdDaGlsZCgnZnJvbnRlbmRQYWdpbmF0b3InLCB7IHN0YXRpYzogZmFsc2UgfSkgbWF0RnJvbnRlbmRQYWdpbmF0b3I6IE1hdFBhZ2luYXRvcjtcbiAgICBAVmlld0NoaWxkKCdiYWNrZW5kUGFnaW5hdG9yJywgeyBzdGF0aWM6IGZhbHNlIH0pIG1hdEJhY2tlbmRQYWdpbmF0b3I6IE1hdFBhZ2luYXRvcjtcblxuICAgIEBWaWV3Q2hpbGQoJ21hdEhlYWRlclJvdycsIHsgc3RhdGljOiB0cnVlIH0pIHByaXZhdGUgX21hdEhlYWRlclJvd1JlZjogVGVtcGxhdGVSZWY8TWF0SGVhZGVyUm93RGVmPjtcbiAgICBAVmlld0NoaWxkKCdmcm9udGVuZFBhZ2luYXRvcicsIHsgc3RhdGljOiB0cnVlIH0pIHByaXZhdGUgX21hdEZyb250ZW5kUGFnaW5hdG9yUm93UmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIEBWaWV3Q2hpbGQoJ2JhY2tlbmRQYWdpbmF0b3InLCB7IHN0YXRpYzogdHJ1ZSB9KSBwcml2YXRlIF9tYXRCYWNrZW5kUGFnaW5hdG9yUm93UmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQENvbnRlbnRDaGlsZCgnYWN0aW9ucycsIHsgc3RhdGljOiBmYWxzZSB9KSBhY3Rpb25zUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIEBDb250ZW50Q2hpbGQoJ2FjdGlvbnNQb3BvdmVyJywgeyBzdGF0aWM6IGZhbHNlIH0pIGFjdGlvbnNQb3BvdmVyUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIEBDb250ZW50Q2hpbGQoJ2Zvb3RlcicsIHsgc3RhdGljOiBmYWxzZSB9KSBmb290ZXJSZWY6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgQENvbnRlbnRDaGlsZCgnZXhwYW5kZWQnLCB7IHN0YXRpYzogZmFsc2UgfSkgZXhwYW5kZWRSZWY6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgQENvbnRlbnRDaGlsZCgnZ3JvdXBIZWFkZXInLCB7IHN0YXRpYzogZmFsc2UgfSkgZ3JvdXBIZWFkZXJSZWY6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgQENvbnRlbnRDaGlsZCgnZ3JvdXBGb290ZXInLCB7IHN0YXRpYzogZmFsc2UgfSkgZ3JvdXBGb290ZXJSZWY6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBASW5wdXQoKSBzaGFkb3c6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpIGNvbHVtbnM6IFRhYmxlQ29sdW1uRFRPW10gPSBbXTtcblxuICAgIHByaXZhdGUgX2RhdGFWYWx1ZTogVFtdO1xuICAgIEBJbnB1dCgpIGdldCBkYXRhKCk6IFRbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kYXRhVmFsdWU7XG4gICAgfVxuICAgIHNldCBkYXRhKGRhdGE6IFRbXSkge1xuICAgICAgICB0aGlzLl9kYXRhVmFsdWUgPSBkYXRhO1xuICAgICAgICB0aGlzLmRhdGFDaGFuZ2UuZW1pdCh0aGlzLl9kYXRhVmFsdWUpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHBhZ2luYXRvcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgYmFja2VuZFBhZ2luYXRpb246IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgQElucHV0KCkgcGFnaW5hdG9yUGFnZUluZGV4OiBudW1iZXIgPSAwO1xuXG4gICAgQElucHV0KCkgcGFnaW5hdG9yTGVuZ3RoOiBudW1iZXIgPSAwO1xuXG4gICAgQElucHV0KCkgcGFnaW5hdG9yUGFnZVNpemU6IG51bWJlciA9IDEwO1xuXG4gICAgQElucHV0KCkgcGFnaW5hdG9yUGFnZVNpemVPcHRpb25zOiBudW1iZXJbXSA9IFsxMCwgMjAsIDMwXTtcblxuICAgIEBJbnB1dCgpIHNob3dQYWdlU2l6ZU9wdGlvbnM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpIGxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpIGV4cGFuZGFibGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpIHNob3dIZWFkZXI6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgQElucHV0KCkgY29sdW1uSW5pdGlhbDogbnVtYmVyO1xuXG4gICAgQElucHV0KCkgY29sdW1uRmluYWw6IG51bWJlcjtcblxuICAgIEBJbnB1dCgpIGhlYWRlclN0aWNreTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgZ3JvdXBCeUNvbHVtbjogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgZ3JvdXBIZWFkZXJTdGlja3k6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpIGdyb3VwU3RhcnRFeHBhbmRlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgaGlnaGxpZ2h0Um93Rm46IChyb3c6IFQgfCBUYWJsZUdyb3VwSGVhZGVyRFRPKSA9PiBib29sZWFuO1xuXG4gICAgQElucHV0KCkgaW5maW5pdGVTY3JvbGw6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpIHNjcm9sbERlbGF5OiBudW1iZXIgPSAxMDAwO1xuXG4gICAgQElucHV0KCkgc2Nyb2xsT2Zmc2V0OiBudW1iZXIgPSAxMDAwO1xuXG4gICAgQElucHV0KCkgc2Nyb2xsSGVpZ3RoOiBudW1iZXI7XG5cbiAgICBASW5wdXQoKSBpc0ZpbHRlcmluZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KCdjb2x1bW5FeHBhbmRhYmxlRml4ZWQnKSBzaG93Q29sdW1uRXhwYW5kYWJsZUZpeGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKSBleHBhbmRhYmxlT25lUm93OiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKSBpZ25vcmVDaGlsZHJlbkV4cGFuZFJvdzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgc29ydDogYm9vbGVhbiA9IHRydWU7XG4gICAgQElucHV0KCkgY2xlYXJTb3J0OiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgc29ydEFjdGl2ZTogc3RyaW5nID0gJyc7XG4gICAgQElucHV0KCkgc29ydERpcmVjdGlvbjogU29ydERpcmVjdGlvbiA9ICdhc2MnO1xuXG4gICAgQE91dHB1dCgpIHJvd0V4cGFuZGVkOiBFdmVudEVtaXR0ZXI8VD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGRhdGFDaGFuZ2U6IEV2ZW50RW1pdHRlcjxUW10+ID0gbmV3IEV2ZW50RW1pdHRlcih0cnVlKTtcbiAgICBAT3V0cHV0KCkgcGFnZTogRXZlbnRFbWl0dGVyPFRhYmxlUGFnZUV2ZW50RFRPPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgcm93SG92ZXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgcHVibGljIGdldCBtYXRUYWJsZUhlaWd0aCgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICBsZXQgaGVhZGVyUm93SGVpZ2h0OiBudW1iZXI7XG4gICAgICAgIGlmICghT2JqZWN0VXRpbC5pc051bGwodGhpcy5fbWF0SGVhZGVyUm93UmVmKSkge1xuICAgICAgICAgICAgaGVhZGVyUm93SGVpZ2h0ID0gKHRoaXMuX21hdEhlYWRlclJvd1JlZi5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLmNsaWVudEhlaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBwYWdpbmF0b3JSb3dIZWlnaHQ6IG51bWJlcjtcbiAgICAgICAgY29uc3QgcGFnaW5hdG9yUmVmID0gdGhpcy5iYWNrZW5kUGFnaW5hdGlvbiA/IHRoaXMuX21hdEJhY2tlbmRQYWdpbmF0b3JSb3dSZWYgOiB0aGlzLl9tYXRGcm9udGVuZFBhZ2luYXRvclJvd1JlZjtcbiAgICAgICAgaWYgKCFPYmplY3RVdGlsLmlzTnVsbChwYWdpbmF0b3JSZWYpKSB7XG4gICAgICAgICAgICBwYWdpbmF0b3JSb3dIZWlnaHQgPSAocGFnaW5hdG9yUmVmLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuY2xpZW50SGVpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbWF0SGVhZGVyd0hlaWdodDogbnVtYmVyID0gaGVhZGVyUm93SGVpZ2h0IHx8IDYwO1xuICAgICAgICBjb25zdCBtYXRQYWdpbmF0b3JIZWlnaHQ6IG51bWJlciA9IHBhZ2luYXRvclJvd0hlaWdodCB8fCA1NztcblxuICAgICAgICBjb25zdCBwYWdlU2l6ZTogbnVtYmVyID0gdGhpcy5wYWdpbmF0b3JQYWdlU2l6ZSAmJiAodGhpcy5wYWdpbmF0b3JQYWdlU2l6ZSA8PSAxMCkgPyB0aGlzLnBhZ2luYXRvclBhZ2VTaXplIDogMTA7XG4gICAgICAgIGNvbnN0IHNldEhlaWd0aDogYm9vbGVhbiA9IHRoaXMuaGVhZGVyU3RpY2t5ICYmICh0aGlzLmRhdGEubGVuZ3RoID4gcGFnZVNpemUpO1xuXG4gICAgICAgIHJldHVybiBvZihzZXRIZWlndGggPyBgJHsoKDU3ICogcGFnZVNpemUpICsgbWF0SGVhZGVyd0hlaWdodCArIG1hdFBhZ2luYXRvckhlaWdodCl9cHhgIDogJ2F1dG8nKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9uZ1pvbmU6IE5nWm9uZSkgeyB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHsgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGlmICghT2JqZWN0VXRpbC5pc051bGwodGhpcy5fZGF0YVNvdXJjZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9kYXRhU291cmNlLnNvcnQgPSB0aGlzLm1hdFNvcnQ7XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5wYWdpbmF0b3IgJiYgIXRoaXMuYmFja2VuZFBhZ2luYXRpb24gJiYgIXRoaXMuaW5maW5pdGVTY3JvbGwpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGF0YVNvdXJjZS5wYWdpbmF0b3IgPSB0aGlzLm1hdEZyb250ZW5kUGFnaW5hdG9yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRoaXMucGFnaW5hdG9yICYmICh0aGlzLmJhY2tlbmRQYWdpbmF0aW9uIHx8IHRoaXMuaW5maW5pdGVTY3JvbGwpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vblBhZ2Uoe1xuICAgICAgICAgICAgICAgICAgICBwYWdlU2l6ZTogdGhpcy5wYWdpbmF0b3JQYWdlU2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgcGFnaW5hdG9yUGFnZVNpemVPcHRpb25zOiB0aGlzLnBhZ2luYXRvclBhZ2VTaXplT3B0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgcGFnZUluZGV4OiAwLFxuICAgICAgICAgICAgICAgICAgICBsZW5ndGg6IDAsXG4gICAgICAgICAgICAgICAgICAgIHByZXZpb3VzUGFnZUluZGV4OiAwXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghT2JqZWN0VXRpbC5pc051bGwodGhpcy5hY3Rpb25zUG9wb3ZlclJlZikpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jb250ZXh0UG9wb3ZlciA9IG51bGw7XG4gICAgICAgICAgICAgICAgdGhpcy5faXNQb3BvdmVySG92ZXIgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlUG9wb3ZlcigwKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHBvcG92ZXI6IEhUTUxFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhYmxlLXBvcG92ZXInKTtcbiAgICAgICAgICAgICAgICBpZiAoIU9iamVjdFV0aWwuaXNOdWxsKHBvcG92ZXIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHBvcG92ZXIuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGlmIChjaGFuZ2VzLmRhdGEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jcmVhdGVEYXRhU291cmNlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NyZWF0ZURhdGFTb3VyY2UoKTogdm9pZCB7XG4gICAgICAgIGxldCBjb2x1bW5zOiBzdHJpbmdbXSA9IHRoaXMuY29sdW1ucy5maWx0ZXIoYyA9PiBjLnZpc2libGUpLm1hcChjID0+IGMucHJvcGVydHkpO1xuICAgICAgICBpZiAoIU9iamVjdFV0aWwuaXNOdWxsKHRoaXMuZXhwYW5kZWRSZWYpKSB7XG4gICAgICAgICAgICBjb2x1bW5zID0gWydleHBhbmRlZENvbHVtbicsIC4uLmNvbHVtbnNdO1xuICAgICAgICB9XG4gICAgICAgIGlmICghT2JqZWN0VXRpbC5pc051bGwodGhpcy5hY3Rpb25zUmVmKSkge1xuICAgICAgICAgICAgY29sdW1ucyA9IFsuLi5jb2x1bW5zLCAnYWN0aW9uc0NvbHVtbiddO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2Rpc3BsYXllZENvbHVtbnMgPSBjb2x1bW5zO1xuXG4gICAgICAgIGlmICh0aGlzLmluZmluaXRlU2Nyb2xsKSB7XG4gICAgICAgICAgICBsZXQgZGF0YUFsbDogVFtdID0gW107XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5pc0ZpbHRlcmluZykge1xuICAgICAgICAgICAgICAgIGlmICghT2JqZWN0VXRpbC5pc051bGwodGhpcy5fZGF0YVNvdXJjZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0YUFsbCA9IEFycmF5VXRpbC5jbG9uZSh0aGlzLl9kYXRhU291cmNlLmRhdGEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFBcnJheVV0aWwuaXNFbXB0eSh0aGlzLmRhdGEpKSB7XG4gICAgICAgICAgICAgICAgZGF0YUFsbC5wdXNoKC4uLnRoaXMuZGF0YSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuX2RhdGFTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlKFtdKTtcbiAgICAgICAgICAgIGlmICghU3RyaW5nVXRpbC5pc0VtcHR5KHRoaXMuZ3JvdXBCeUNvbHVtbikgJiYgIU9iamVjdFV0aWwuaXNOdWxsKHRoaXMuZ3JvdXBIZWFkZXJSZWYpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZGF0YVNvdXJjZS5kYXRhID0gdGhpcy5nZW5lcmV0ZUdyb3Vwc0J5Q29sdW1uKGRhdGFBbGwpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9kYXRhU291cmNlLmRhdGEgPSBkYXRhQWxsO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmRhdGEgPSBkYXRhQWxsO1xuICAgICAgICAgICAgdGhpcy5kYXRhQ2hhbmdlLmVtaXQodGhpcy5kYXRhKTtcbiAgICAgICAgICAgIHRoaXMuY2FsY1Njcm9sbEhlaWdodCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZGF0YVNvdXJjZSA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2UoW10pO1xuICAgICAgICAgICAgaWYgKCFTdHJpbmdVdGlsLmlzRW1wdHkodGhpcy5ncm91cEJ5Q29sdW1uKSAmJiAhT2JqZWN0VXRpbC5pc051bGwodGhpcy5ncm91cEhlYWRlclJlZikpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9kYXRhU291cmNlLmRhdGEgPSB0aGlzLmdlbmVyZXRlR3JvdXBzQnlDb2x1bW4odGhpcy5kYXRhKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZGF0YVNvdXJjZS5kYXRhID0gdGhpcy5kYXRhO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFBcnJheVV0aWwuaXNFbXB0eSh0aGlzLl9kYXRhU291cmNlLmRhdGEpKSB7XG4gICAgICAgICAgICB0aGlzLl9kYXRhU291cmNlLnNvcnQgPSB0aGlzLm1hdFNvcnQ7XG4gICAgICAgICAgICB0aGlzLnNldFNvcnRpbmdEYXRhQWNjZXNzb3IoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnBhZ2luYXRvciAmJiAhdGhpcy5iYWNrZW5kUGFnaW5hdGlvbikge1xuICAgICAgICAgICAgdGhpcy5fZGF0YVNvdXJjZS5wYWdpbmF0b3IgPSB0aGlzLm1hdEZyb250ZW5kUGFnaW5hdG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gaWYgKCF0aGlzLmdyb3VwU3RhcnRFeHBhbmRlZCAmJiAodGhpcy5ncm91cEhlYWRlclJlZiB8fCAodGhpcy5leHBhbmRhYmxlICYmIHRoaXMuZXhwYW5kZWRSZWYpKSAmJiAhQXJyYXlVdGlsLmlzRW1wdHkodGhpcy5fZGF0YVNvdXJjZS5kYXRhKSkge1xuICAgICAgICAvLyB0aGlzLl9kYXRhU291cmNlLmRhdGEuZm9yRWFjaChyb3cgPT4gdGhpcy5hZGRDb2xsYXBzZShyb3cpKTtcbiAgICAgICAgLy8gfVxuICAgIH1cblxuICAgIGNhbGNTY3JvbGxIZWlnaHQoKTogdm9pZCB7XG4gICAgICAgIGlmICgodGhpcy5fZGF0YVNvdXJjZSAmJiAodGhpcy5fZGF0YVNvdXJjZS5kYXRhLmxlbmd0aCA+IDApKSAmJiAoTWF0aC5mbG9vcih0aGlzLl9zY3JvbGxIZWlnaHRDYWxjKSA8PSA3MDApKSB7XG4gICAgICAgICAgICB0aGlzLl9zY3JvbGxIZWlnaHRDYWxjID0gMTMwICsgKHRoaXMuX2RhdGFTb3VyY2UuZGF0YS5sZW5ndGggKiA0OCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblBhZ2UocGFnZUV2ZW50OiBUYWJsZVBhZ2VFdmVudERUTyk6IHZvaWQge1xuICAgICAgICB0aGlzLnBhZ2luYXRvclBhZ2VTaXplID0gcGFnZUV2ZW50LnBhZ2VTaXplO1xuICAgICAgICBwYWdlRXZlbnQucGFnaW5hdG9yUGFnZVNpemVPcHRpb25zID0gQXJyYXlVdGlsLmlzRW1wdHkocGFnZUV2ZW50LnBhZ2luYXRvclBhZ2VTaXplT3B0aW9ucykgPyB0aGlzLnBhZ2luYXRvclBhZ2VTaXplT3B0aW9ucyA6IHBhZ2VFdmVudC5wYWdpbmF0b3JQYWdlU2l6ZU9wdGlvbnM7XG4gICAgICAgIHRoaXMucGFnZS5lbWl0KHBhZ2VFdmVudCk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzRXhwYW5kZWRSb3cocm93OiBUKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIGlmIChBcnJheVV0aWwuaXNFbXB0eSh0aGlzLl9leHBhbmRlZFJvd3MpKSB7XG4gICAgICAgICAgICByZXR1cm4gb2YoZmFsc2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaW5kZXg6IG51bWJlciA9IHRoaXMuX2V4cGFuZGVkUm93cy5maW5kSW5kZXgociA9PiByID09PSByb3cpO1xuICAgICAgICByZXR1cm4gb2YoaW5kZXggPj0gMCk7XG4gICAgfVxuXG4gICAgcHVibGljIHRvZ2dsZUV4cGFuZFJvdyhyb3c6IFQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaW5kZXg6IG51bWJlciA9IHRoaXMuX2V4cGFuZGVkUm93cy5maW5kSW5kZXgociA9PiByID09PSByb3cpO1xuICAgICAgICBpZiAoQXJyYXlVdGlsLmlzRW1wdHkodGhpcy5fZXhwYW5kZWRSb3dzKSB8fCAoaW5kZXggPCAwKSkge1xuICAgICAgICAgICAgdGhpcy5fZXhwYW5kZWRSb3dzID0gW3Jvd107XG4gICAgICAgICAgICB0aGlzLnJvd0V4cGFuZGVkLmVtaXQocm93KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IF9leHBhbmRlZFJvd3NBdXg6IFRbXSA9IEFycmF5VXRpbC5jbG9uZSh0aGlzLl9leHBhbmRlZFJvd3MpO1xuICAgICAgICBfZXhwYW5kZWRSb3dzQXV4LnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIHRoaXMuX2V4cGFuZGVkUm93cyA9IEFycmF5VXRpbC5jbG9uZShfZXhwYW5kZWRSb3dzQXV4KTtcbiAgICAgICAgdGhpcy5yb3dFeHBhbmRlZC5lbWl0KG51bGwpO1xuICAgIH1cblxuICAgIHNvcnREYXRhKHNvcnQ6IFNvcnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaW5maW5pdGVTY3JvbGwpIHtcbiAgICAgICAgICAgIHRoaXMuZGF0YSA9IFtdO1xuICAgICAgICAgICAgdGhpcy5kYXRhQ2hhbmdlLmVtaXQoW10pO1xuICAgICAgICAgICAgdGhpcy5fZGF0YVNvdXJjZSA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2UoW10pO1xuICAgICAgICAgICAgdGhpcy5jYWxjU2Nyb2xsSGVpZ2h0KCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm9uUGFnZSh7XG4gICAgICAgICAgICBwYWdlU2l6ZTogdGhpcy5wYWdpbmF0b3JQYWdlU2l6ZSxcbiAgICAgICAgICAgIHBhZ2VJbmRleDogMCxcbiAgICAgICAgICAgIGxlbmd0aDogMCxcbiAgICAgICAgICAgIHByZXZpb3VzUGFnZUluZGV4OiAwLFxuICAgICAgICAgICAgcGFnaW5hdG9yUGFnZVNpemVPcHRpb25zOiB0aGlzLnBhZ2luYXRvclBhZ2VTaXplT3B0aW9ucyxcbiAgICAgICAgICAgIHNvcnQ6IHNvcnRcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNob3dQb3BvdmVyKGV2ZW50OiBNb3VzZUV2ZW50LCBkYXRhOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcG9wb3ZlcjogSFRNTEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFibGUtcG9wb3ZlcicpO1xuICAgICAgICBpZiAoIU9iamVjdFV0aWwuaXNOdWxsKHBvcG92ZXIpKSB7XG4gICAgICAgICAgICBwb3BvdmVyLnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcblxuICAgICAgICAgICAgaWYgKCF0aGlzLmxvYWRpbmcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkb21SZWN0UG9wb3ZlciA9IHBvcG92ZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRvbVJlY3RSb3cgPSAoZXZlbnQuY3VycmVudFRhcmdldCBhcyBIVE1MRWxlbWVudCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNlbGxzID0gKGV2ZW50LmN1cnJlbnRUYXJnZXQgYXMgSFRNTFRhYmxlUm93RWxlbWVudCkuY2hpbGRyZW47XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGRvbVJlY3RQb3BvdmVyICYmIGRvbVJlY3RSb3cpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvcG92ZXIuc3R5bGUudmlzaWJpbGl0eSA9ICd2aXNpYmxlJztcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvcG92ZXIuc3R5bGUudG9wID0gYCR7KGRvbVJlY3RSb3cudG9wICsgZG9tUmVjdFJvdy5oZWlnaHQpIC0gMX1weGA7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzdGFydFBvc2l0aW9uOiBudW1iZXIgPSAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGVuZFBvc2l0aW9uOiBudW1iZXIgPSAwO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5jb2x1bW5Jbml0aWFsICYmICh0aGlzLmNvbHVtbkluaXRpYWwgPj0gMCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWNlbGxzW3RoaXMuY29sdW1uSW5pdGlhbF0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbml0aWFsIGNvbHVtbiB1bmRlZmluZWQgb3IgbnVsbCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydFBvc2l0aW9uID0gY2VsbHNbdGhpcy5jb2x1bW5Jbml0aWFsXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydFBvc2l0aW9uID0gZG9tUmVjdFJvdy5sZWZ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5jb2x1bW5GaW5hbCAmJiAodGhpcy5jb2x1bW5GaW5hbCA+PSAwKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghY2VsbHNbdGhpcy5jb2x1bW5GaW5hbF0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdGaW5hbCBjb2x1bW4gdW5kZWZpbmVkIG9yIG51bGwnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kUG9zaXRpb24gPSBjZWxsc1t0aGlzLmNvbHVtbkZpbmFsXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0IC0gZG9tUmVjdFBvcG92ZXIud2lkdGg7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZFBvc2l0aW9uID0gZG9tUmVjdFJvdy5yaWdodCAtIGRvbVJlY3RQb3BvdmVyLndpZHRoO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnQuY2xpZW50WCA+IHN0YXJ0UG9zaXRpb24gKyAxNSAmJiBldmVudC5jbGllbnRYIDwgZW5kUG9zaXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9wb3Zlci5zdHlsZS5sZWZ0ID0gYCR7ZXZlbnQuY2xpZW50WCAtIDE1fXB4YDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmNsaWVudFggPD0gc3RhcnRQb3NpdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3BvdmVyLnN0eWxlLmxlZnQgPSBgJHtzdGFydFBvc2l0aW9ufXB4YDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmNsaWVudFggPj0gZW5kUG9zaXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9wb3Zlci5zdHlsZS5sZWZ0ID0gYCR7ZW5kUG9zaXRpb259cHhgO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yb3dIb3Zlci5lbWl0KGRhdGEpO1xuICAgICAgICB0aGlzLl9jb250ZXh0UG9wb3ZlciA9IGRhdGE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgc2hvd1BvcG92ZXIoZXZlbnQ6IE1vdXNlRXZlbnQsIGRhdGE6IGFueSk6IHZvaWQge1xuICAgICAgICBjb25zdCBwb3BvdmVyOiBIVE1MRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YWJsZS1wb3BvdmVyJyk7XG4gICAgICAgIGlmICghT2JqZWN0VXRpbC5pc051bGwocG9wb3ZlcikpIHtcbiAgICAgICAgICAgIHBvcG92ZXIuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nO1xuXG4gICAgICAgICAgICBpZiAoIXRoaXMubG9hZGluZykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRvbVJlY3RQb3BvdmVyID0gcG9wb3Zlci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBkb21SZWN0Um93ID0gKGV2ZW50LmN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNlbGxzID0gKGV2ZW50LmN1cnJlbnRUYXJnZXQgYXMgSFRNTFRhYmxlUm93RWxlbWVudCkuY2hpbGRyZW47XG5cbiAgICAgICAgICAgICAgICBpZiAoZG9tUmVjdFBvcG92ZXIgJiYgZG9tUmVjdFJvdykge1xuICAgICAgICAgICAgICAgICAgICBwb3BvdmVyLnN0eWxlLnZpc2liaWxpdHkgPSAndmlzaWJsZSc7XG4gICAgICAgICAgICAgICAgICAgIHBvcG92ZXIuc3R5bGUudG9wID0gYCR7KGRvbVJlY3RSb3cudG9wICsgZG9tUmVjdFJvdy5oZWlnaHQpIC0gMX1weGA7XG5cbiAgICAgICAgICAgICAgICAgICAgbGV0IHN0YXJ0UG9zaXRpb246IG51bWJlciA9IDA7XG4gICAgICAgICAgICAgICAgICAgIGxldCBlbmRQb3NpdGlvbjogbnVtYmVyID0gMDtcblxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5jb2x1bW5Jbml0aWFsICYmICh0aGlzLmNvbHVtbkluaXRpYWwgPj0gMCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghY2VsbHNbdGhpcy5jb2x1bW5Jbml0aWFsXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW5pdGlhbCBjb2x1bW4gdW5kZWZpbmVkIG9yIG51bGwnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0UG9zaXRpb24gPSBjZWxsc1t0aGlzLmNvbHVtbkluaXRpYWxdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydFBvc2l0aW9uID0gZG9tUmVjdFJvdy5sZWZ0O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuY29sdW1uRmluYWwgJiYgKHRoaXMuY29sdW1uRmluYWwgPj0gMCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghY2VsbHNbdGhpcy5jb2x1bW5GaW5hbF0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZpbmFsIGNvbHVtbiB1bmRlZmluZWQgb3IgbnVsbCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZW5kUG9zaXRpb24gPSBjZWxsc1t0aGlzLmNvbHVtbkZpbmFsXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0IC0gZG9tUmVjdFBvcG92ZXIud2lkdGg7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRQb3NpdGlvbiA9IGRvbVJlY3RSb3cucmlnaHQgLSBkb21SZWN0UG9wb3Zlci53aWR0aDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmNsaWVudFggPiBzdGFydFBvc2l0aW9uICsgMTUgJiYgZXZlbnQuY2xpZW50WCA8IGVuZFBvc2l0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9wb3Zlci5zdHlsZS5sZWZ0ID0gYCR7ZXZlbnQuY2xpZW50WCAtIDE1fXB4YDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQuY2xpZW50WCA8PSBzdGFydFBvc2l0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9wb3Zlci5zdHlsZS5sZWZ0ID0gYCR7c3RhcnRQb3NpdGlvbn1weGA7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmNsaWVudFggPj0gZW5kUG9zaXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3BvdmVyLnN0eWxlLmxlZnQgPSBgJHtlbmRQb3NpdGlvbn1weGA7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJvd0hvdmVyLmVtaXQoZGF0YSk7XG4gICAgICAgIHRoaXMuX2NvbnRleHRQb3BvdmVyID0gZGF0YTtcbiAgICB9XG4gICAgKi9cblxuICAgIGNsb3NlUG9wb3Zlcih0aW1lOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgb2YobnVsbCkucGlwZShkZWxheSh0aW1lKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGlmICghT2JqZWN0VXRpbC5pc051bGwodGhpcy5faXNQb3BvdmVySG92ZXIpICYmICF0aGlzLl9pc1BvcG92ZXJIb3Zlcikge1xuICAgICAgICAgICAgICAgIGlmICghT2JqZWN0VXRpbC5pc051bGwodGhpcy5faXNQb3BvdmVySG92ZXIpICYmICFPYmplY3RVdGlsLmlzTnVsbCh0aGlzLmFjdGlvbnNQb3BvdmVyUmVmKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwb3BvdmVyOiBIVE1MRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YWJsZS1wb3BvdmVyJyk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghT2JqZWN0VXRpbC5pc051bGwocG9wb3ZlcikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvcG92ZXIuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuX2NvbnRleHRQb3BvdmVyID0gbnVsbDtcbiAgICAgICAgICAgICAgICB0aGlzLl9pc1BvcG92ZXJIb3ZlciA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNldFNvcnRpbmdEYXRhQWNjZXNzb3IoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2RhdGFTb3VyY2Uuc29ydGluZ0RhdGFBY2Nlc3NvciA9IChkYXRhOiBhbnksIHNvcnRIZWFkZXJJZDogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZGF0YVtzb3J0SGVhZGVySWRdID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBkYXRhW3NvcnRIZWFkZXJJZF0udG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBkYXRhW3NvcnRIZWFkZXJJZF07XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gZ3JvdXAgaGVhZGVyXG4gICAgZ2VuZXJldGVHcm91cHNCeUNvbHVtbihkYXRhOiBhbnlbXSk6IFRhYmxlR3JvdXBIZWFkZXJEVE9bXSB7XG4gICAgICAgIGNvbnN0IGdyb3Vwczoge30gPSBkYXRhLnJlZHVjZSgoZ3JvdXAsIHJvdykgPT4ge1xuICAgICAgICAgICAgY29uc3QgZGF0YUNvbHVtbjogc3RyaW5nID0gcm93W3RoaXMuZ3JvdXBCeUNvbHVtbl0udG9TdHJpbmcoKTtcbiAgICAgICAgICAgIGlmICghZ3JvdXBbZGF0YUNvbHVtbl0pIHtcbiAgICAgICAgICAgICAgICBncm91cFtkYXRhQ29sdW1uXSA9IFtdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZ3JvdXBbZGF0YUNvbHVtbl0ucHVzaChyb3cpO1xuICAgICAgICAgICAgcmV0dXJuIGdyb3VwO1xuICAgICAgICB9LCB7fSk7XG5cbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKGdyb3VwcykubWFwKGdyb3VwVmFsdWUgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBUYWJsZUdyb3VwSGVhZGVyRFRPKGdyb3VwVmFsdWUsIGdyb3Vwc1tncm91cFZhbHVlXSwgZ3JvdXBzW2dyb3VwVmFsdWVdLmxlbmd0aCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldEhpZ2hsaWdodFJvdyhyb3c6IFQgfCBUYWJsZUdyb3VwSGVhZGVyRFRPKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghT2JqZWN0VXRpbC5pc051bGwocm93KSkge1xuICAgICAgICAgICAgaWYgKCFPYmplY3RVdGlsLmlzTnVsbCh0aGlzLmhpZ2hsaWdodFJvd0ZuKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmhpZ2hsaWdodFJvd0ZuKHJvdyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGdldEluZGV4Um93KHJvdzogVCB8IFRhYmxlR3JvdXBIZWFkZXJEVE8pOiBudW1iZXIge1xuICAgICAgICBpZiAoIU9iamVjdFV0aWwuaXNOdWxsKHRoaXMuX2RhdGFTb3VyY2UpICYmICFBcnJheVV0aWwuaXNFbXB0eSh0aGlzLl9kYXRhU291cmNlLmRhdGEpICYmICFPYmplY3RVdGlsLmlzTnVsbChyb3cpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZGF0YVNvdXJjZS5kYXRhLmZpbmRJbmRleChyID0+IHIgPT09IHJvdyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBpbmZpbml0ZSBzY3JvbGxcbiAgICBoYXNNb3JlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuX2RhdGFTb3VyY2UgfHwgKHRoaXMuX2RhdGFTb3VyY2UuZGF0YS5sZW5ndGggPCB0aGlzLnBhZ2luYXRvckxlbmd0aCk7XG4gICAgfVxuXG4gICAgaGFuZGxlU2Nyb2xsKHNjcm9sbGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmIChzY3JvbGxlZCAmJiB0aGlzLmhhc01vcmUoKSkge1xuICAgICAgICAgICAgdGhpcy5vblBhZ2Uoe1xuICAgICAgICAgICAgICAgIHBhZ2VTaXplOiB0aGlzLnBhZ2luYXRvclBhZ2VTaXplLFxuICAgICAgICAgICAgICAgIHBhZ2VJbmRleDogdGhpcy5wYWdpbmF0b3JQYWdlSW5kZXgsXG4gICAgICAgICAgICAgICAgbGVuZ3RoOiB0aGlzLnBhZ2luYXRvckxlbmd0aCxcbiAgICAgICAgICAgICAgICBwcmV2aW91c1BhZ2VJbmRleDogdGhpcy5wYWdpbmF0b3JQYWdlSW5kZXgsXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy5wYWdpbmF0b3JQYWdlSW5kZXggKz0gMTtcbiAgICAgICAgfVxuICAgIH1cblxufVxuIl19
585
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGdpcGlzaXN0ZW1hcy9uZy1jb3JlLyIsInNvdXJjZXMiOlsic2hhcmVkL2NvbXBvbmVudHMvdGFibGUvdGFibGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0SyxPQUFPLEVBQW1CLFlBQVksRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQXVCLE1BQU0sbUJBQW1CLENBQUM7QUFDcEgsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBZ0J0RixJQUFhLGNBQWMsR0FBM0IsTUFBYSxjQUFjO0lBd0h2QixZQUFvQixPQUFlO1FBQWYsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQXRINUIsa0JBQWEsR0FBUSxFQUFFLENBQUM7UUFFeEIsc0JBQWlCLEdBQVcsR0FBRyxDQUFDO1FBQ2hDLG9CQUFlLEdBQVEsSUFBSSxDQUFDO1FBRTVCLHNCQUFpQixHQUFVLEVBQUUsQ0FBQztRQW1CNUIsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUV4QixZQUFPLEdBQXFCLEVBQUUsQ0FBQztRQVcv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QUFPLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztnQkFDN0UsS0FBSyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztnQkFDekMsVUFBVSxDQUFDLHdCQUF3QixFQUFFLE9BQU8sQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO2FBQ3hGLENBQUM7U0FDTDs7S0FDSixDQUFDO3FDQXlIK0IsTUFBTTtHQXhIMUIsY0FBYyxDQXNjMUI7U0F0Y1ksY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE5nWm9uZSwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0SGVhZGVyUm93RGVmLCBNYXRQYWdpbmF0b3IsIE1hdFNvcnQsIE1hdFRhYmxlRGF0YVNvdXJjZSwgU29ydCwgU29ydERpcmVjdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWxheSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQXJyYXlVdGlsLCBPYmplY3RVdGlsLCBTdHJpbmdVdGlsIH0gZnJvbSAnLi4vLi4vLi4vY29yZSc7XG5pbXBvcnQgeyBUYWJsZUNvbHVtbkRUTyB9IGZyb20gJy4uLy4uLy4uL2NvcmUvbW9kZWxzL2R0by90YWJsZS1jb2x1bW4uZHRvJztcbmltcG9ydCB7IFRhYmxlR3JvdXBIZWFkZXJEVE8gfSBmcm9tICcuLi8uLi8uLi9jb3JlL21vZGVscy9kdG8vdGFibGUtZ3JvdXAtaGVhZGVyLmR0byc7XG5pbXBvcnQgeyBUYWJsZVBhZ2VFdmVudERUTyB9IGZyb20gJy4uLy4uLy4uL2NvcmUvbW9kZWxzL2R0by90YWJsZS1wYWdlLWV2ZW50LmR0byc7XG5cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdpdHNzLXRhYmxlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3RhYmxlLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgYW5pbWF0aW9uczogW1xuICAgICAgICB0cmlnZ2VyKCdkZXRhaWxFeHBhbmQnLCBbXG4gICAgICAgICAgICBzdGF0ZSgnY29sbGFwc2VkJywgc3R5bGUoeyBoZWlnaHQ6ICcwcHgnLCBtaW5IZWlnaHQ6ICcwJywgZGlzcGxheTogJ25vbmUnIH0pKSxcbiAgICAgICAgICAgIHN0YXRlKCdleHBhbmRlZCcsIHN0eWxlKHsgaGVpZ2h0OiAnKicgfSkpLFxuICAgICAgICAgICAgdHJhbnNpdGlvbignZXhwYW5kZWQgPD0+IGNvbGxhcHNlZCcsIGFuaW1hdGUoJzIyNW1zIGN1YmljLWJlemllcigwLjQsIDAuMCwgMC4yLCAxKScpKSxcbiAgICAgICAgXSksXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVDb21wb25lbnQ8VD4gaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMsIE9uSW5pdCB7XG5cbiAgICBwdWJsaWMgX2V4cGFuZGVkUm93czogVFtdID0gW107XG5cbiAgICBwdWJsaWMgX3Njcm9sbEhlaWdodENhbGM6IG51bWJlciA9IDQxMDtcbiAgICBwdWJsaWMgX2lzUG9wb3ZlckhvdmVyOiBhbnkgPSBudWxsO1xuICAgIHB1YmxpYyBfY29udGV4dFBvcG92ZXI6IFQ7XG4gICAgcHVibGljIF9kaXNwbGF5ZWRDb2x1bW5zOiBhbnlbXSA9IFtdO1xuICAgIHB1YmxpYyBfZGF0YVNvdXJjZTogTWF0VGFibGVEYXRhU291cmNlPFQgfCBUYWJsZUdyb3VwSGVhZGVyRFRPPjtcblxuICAgIEBWaWV3Q2hpbGQoTWF0U29ydCwgeyBzdGF0aWM6IHRydWUgfSkgbWF0U29ydDogTWF0U29ydDtcbiAgICBAVmlld0NoaWxkKE1hdFBhZ2luYXRvciwgeyBzdGF0aWM6IHRydWUgfSkgbWF0UGFnaW5hdG9yOiBNYXRQYWdpbmF0b3I7XG4gICAgQFZpZXdDaGlsZCgnZnJvbnRlbmRQYWdpbmF0b3InLCB7IHN0YXRpYzogZmFsc2UgfSkgbWF0RnJvbnRlbmRQYWdpbmF0b3I6IE1hdFBhZ2luYXRvcjtcbiAgICBAVmlld0NoaWxkKCdiYWNrZW5kUGFnaW5hdG9yJywgeyBzdGF0aWM6IGZhbHNlIH0pIG1hdEJhY2tlbmRQYWdpbmF0b3I6IE1hdFBhZ2luYXRvcjtcblxuICAgIEBWaWV3Q2hpbGQoJ21hdEhlYWRlclJvdycsIHsgc3RhdGljOiB0cnVlIH0pIHByaXZhdGUgX21hdEhlYWRlclJvd1JlZjogVGVtcGxhdGVSZWY8TWF0SGVhZGVyUm93RGVmPjtcbiAgICBAVmlld0NoaWxkKCdmcm9udGVuZFBhZ2luYXRvcicsIHsgc3RhdGljOiB0cnVlIH0pIHByaXZhdGUgX21hdEZyb250ZW5kUGFnaW5hdG9yUm93UmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIEBWaWV3Q2hpbGQoJ2JhY2tlbmRQYWdpbmF0b3InLCB7IHN0YXRpYzogdHJ1ZSB9KSBwcml2YXRlIF9tYXRCYWNrZW5kUGFnaW5hdG9yUm93UmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQENvbnRlbnRDaGlsZCgnYWN0aW9ucycsIHsgc3RhdGljOiBmYWxzZSB9KSBhY3Rpb25zUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIEBDb250ZW50Q2hpbGQoJ2FjdGlvbnNQb3BvdmVyJywgeyBzdGF0aWM6IGZhbHNlIH0pIGFjdGlvbnNQb3BvdmVyUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIEBDb250ZW50Q2hpbGQoJ2Zvb3RlcicsIHsgc3RhdGljOiBmYWxzZSB9KSBmb290ZXJSZWY6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgQENvbnRlbnRDaGlsZCgnZXhwYW5kZWQnLCB7IHN0YXRpYzogZmFsc2UgfSkgZXhwYW5kZWRSZWY6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgQENvbnRlbnRDaGlsZCgnZ3JvdXBIZWFkZXInLCB7IHN0YXRpYzogZmFsc2UgfSkgZ3JvdXBIZWFkZXJSZWY6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgQENvbnRlbnRDaGlsZCgnZ3JvdXBGb290ZXInLCB7IHN0YXRpYzogZmFsc2UgfSkgZ3JvdXBGb290ZXJSZWY6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBASW5wdXQoKSBzaGFkb3c6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpIGNvbHVtbnM6IFRhYmxlQ29sdW1uRFRPW10gPSBbXTtcblxuICAgIHByaXZhdGUgX2RhdGFWYWx1ZTogKFQgfCBUYWJsZUdyb3VwSGVhZGVyRFRPKVtdO1xuICAgIEBJbnB1dCgpIGdldCBkYXRhKCk6IChUIHwgVGFibGVHcm91cEhlYWRlckRUTylbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kYXRhVmFsdWU7XG4gICAgfVxuICAgIHNldCBkYXRhKGRhdGE6IChUIHwgVGFibGVHcm91cEhlYWRlckRUTylbXSkge1xuICAgICAgICB0aGlzLl9kYXRhVmFsdWUgPSBkYXRhO1xuICAgICAgICB0aGlzLmRhdGFDaGFuZ2UuZW1pdCh0aGlzLl9kYXRhVmFsdWUpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHBhZ2luYXRvcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgYmFja2VuZFBhZ2luYXRpb246IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgQElucHV0KCkgcGFnaW5hdG9yUGFnZUluZGV4OiBudW1iZXIgPSAwO1xuXG4gICAgQElucHV0KCkgcGFnaW5hdG9yTGVuZ3RoOiBudW1iZXIgPSAwO1xuXG4gICAgQElucHV0KCkgcGFnaW5hdG9yUGFnZVNpemU6IG51bWJlciA9IDEwO1xuXG4gICAgQElucHV0KCkgcGFnaW5hdG9yUGFnZVNpemVPcHRpb25zOiBudW1iZXJbXSA9IFsxMCwgMjAsIDMwXTtcblxuICAgIEBJbnB1dCgpIHNob3dQYWdlU2l6ZU9wdGlvbnM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpIGxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpIGV4cGFuZGFibGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpIHNob3dIZWFkZXI6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgQElucHV0KCkgY29sdW1uSW5pdGlhbDogbnVtYmVyO1xuXG4gICAgQElucHV0KCkgY29sdW1uRmluYWw6IG51bWJlcjtcblxuICAgIEBJbnB1dCgpIGhlYWRlclN0aWNreTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgZ3JvdXBCeUNvbHVtbjogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgZ3JvdXBIZWFkZXJTdGlja3k6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpIGdyb3VwU3RhcnRFeHBhbmRlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgaGlnaGxpZ2h0Um93Rm46IChyb3c6IFQgfCBUYWJsZUdyb3VwSGVhZGVyRFRPKSA9PiBib29sZWFuO1xuXG4gICAgQElucHV0KCkgaW5maW5pdGVTY3JvbGw6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpIHNjcm9sbERlbGF5OiBudW1iZXIgPSAxMDAwO1xuXG4gICAgQElucHV0KCkgc2Nyb2xsT2Zmc2V0OiBudW1iZXIgPSAxMDAwO1xuXG4gICAgQElucHV0KCkgc2Nyb2xsSGVpZ3RoOiBudW1iZXI7XG5cbiAgICBASW5wdXQoKSBpc0ZpbHRlcmluZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KCdjb2x1bW5FeHBhbmRhYmxlRml4ZWQnKSBzaG93Q29sdW1uRXhwYW5kYWJsZUZpeGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKSBleHBhbmRhYmxlT25lUm93OiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKSBpZ25vcmVDaGlsZHJlbkV4cGFuZFJvdzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgc29ydDogYm9vbGVhbiA9IHRydWU7XG4gICAgQElucHV0KCkgY2xlYXJTb3J0OiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgc29ydEFjdGl2ZTogc3RyaW5nID0gJyc7XG4gICAgQElucHV0KCkgc29ydERpcmVjdGlvbjogU29ydERpcmVjdGlvbiA9ICdhc2MnO1xuXG4gICAgQE91dHB1dCgpIHJvd0V4cGFuZGVkOiBFdmVudEVtaXR0ZXI8VD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGRhdGFDaGFuZ2U6IEV2ZW50RW1pdHRlcjwoVCB8IFRhYmxlR3JvdXBIZWFkZXJEVE8pW10+ID0gbmV3IEV2ZW50RW1pdHRlcih0cnVlKTtcbiAgICBAT3V0cHV0KCkgcGFnZTogRXZlbnRFbWl0dGVyPFRhYmxlUGFnZUV2ZW50RFRPPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgcm93SG92ZXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgcHVibGljIGdldCBtYXRUYWJsZUhlaWd0aCgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICBsZXQgaGVhZGVyUm93SGVpZ2h0OiBudW1iZXI7XG4gICAgICAgIGlmICghT2JqZWN0VXRpbC5pc051bGwodGhpcy5fbWF0SGVhZGVyUm93UmVmKSkge1xuICAgICAgICAgICAgaGVhZGVyUm93SGVpZ2h0ID0gKHRoaXMuX21hdEhlYWRlclJvd1JlZi5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLmNsaWVudEhlaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBwYWdpbmF0b3JSb3dIZWlnaHQ6IG51bWJlcjtcbiAgICAgICAgY29uc3QgcGFnaW5hdG9yUmVmID0gdGhpcy5iYWNrZW5kUGFnaW5hdGlvbiA/IHRoaXMuX21hdEJhY2tlbmRQYWdpbmF0b3JSb3dSZWYgOiB0aGlzLl9tYXRGcm9udGVuZFBhZ2luYXRvclJvd1JlZjtcbiAgICAgICAgaWYgKCFPYmplY3RVdGlsLmlzTnVsbChwYWdpbmF0b3JSZWYpKSB7XG4gICAgICAgICAgICBwYWdpbmF0b3JSb3dIZWlnaHQgPSAocGFnaW5hdG9yUmVmLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuY2xpZW50SGVpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbWF0SGVhZGVyd0hlaWdodDogbnVtYmVyID0gaGVhZGVyUm93SGVpZ2h0IHx8IDYwO1xuICAgICAgICBjb25zdCBtYXRQYWdpbmF0b3JIZWlnaHQ6IG51bWJlciA9IHBhZ2luYXRvclJvd0hlaWdodCB8fCA1NztcblxuICAgICAgICBjb25zdCBwYWdlU2l6ZTogbnVtYmVyID0gdGhpcy5wYWdpbmF0b3JQYWdlU2l6ZSAmJiAodGhpcy5wYWdpbmF0b3JQYWdlU2l6ZSA8PSAxMCkgPyB0aGlzLnBhZ2luYXRvclBhZ2VTaXplIDogMTA7XG4gICAgICAgIGNvbnN0IHNldEhlaWd0aDogYm9vbGVhbiA9IHRoaXMuaGVhZGVyU3RpY2t5ICYmICh0aGlzLmRhdGEubGVuZ3RoID4gcGFnZVNpemUpO1xuXG4gICAgICAgIHJldHVybiBvZihzZXRIZWlndGggPyBgJHsoKDU3ICogcGFnZVNpemUpICsgbWF0SGVhZGVyd0hlaWdodCArIG1hdFBhZ2luYXRvckhlaWdodCl9cHhgIDogJ2F1dG8nKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9uZ1pvbmU6IE5nWm9uZSkgeyB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHsgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGlmICghT2JqZWN0VXRpbC5pc051bGwodGhpcy5fZGF0YVNvdXJjZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9kYXRhU291cmNlLnNvcnQgPSB0aGlzLm1hdFNvcnQ7XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5wYWdpbmF0b3IgJiYgIXRoaXMuYmFja2VuZFBhZ2luYXRpb24gJiYgIXRoaXMuaW5maW5pdGVTY3JvbGwpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGF0YVNvdXJjZS5wYWdpbmF0b3IgPSB0aGlzLm1hdEZyb250ZW5kUGFnaW5hdG9yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRoaXMucGFnaW5hdG9yICYmICh0aGlzLmJhY2tlbmRQYWdpbmF0aW9uIHx8IHRoaXMuaW5maW5pdGVTY3JvbGwpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vblBhZ2Uoe1xuICAgICAgICAgICAgICAgICAgICBwYWdlU2l6ZTogdGhpcy5wYWdpbmF0b3JQYWdlU2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgcGFnaW5hdG9yUGFnZVNpemVPcHRpb25zOiB0aGlzLnBhZ2luYXRvclBhZ2VTaXplT3B0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgcGFnZUluZGV4OiAwLFxuICAgICAgICAgICAgICAgICAgICBsZW5ndGg6IDAsXG4gICAgICAgICAgICAgICAgICAgIHByZXZpb3VzUGFnZUluZGV4OiAwXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghT2JqZWN0VXRpbC5pc051bGwodGhpcy5hY3Rpb25zUG9wb3ZlclJlZikpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jb250ZXh0UG9wb3ZlciA9IG51bGw7XG4gICAgICAgICAgICAgICAgdGhpcy5faXNQb3BvdmVySG92ZXIgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlUG9wb3ZlcigwKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHBvcG92ZXI6IEhUTUxFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhYmxlLXBvcG92ZXInKTtcbiAgICAgICAgICAgICAgICBpZiAoIU9iamVjdFV0aWwuaXNOdWxsKHBvcG92ZXIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHBvcG92ZXIuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGlmIChjaGFuZ2VzLmRhdGEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jcmVhdGVEYXRhU291cmNlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NyZWF0ZURhdGFTb3VyY2UoKTogdm9pZCB7XG4gICAgICAgIGxldCBjb2x1bW5zOiBzdHJpbmdbXSA9IHRoaXMuY29sdW1ucy5maWx0ZXIoYyA9PiBjLnZpc2libGUpLm1hcChjID0+IGMucHJvcGVydHkpO1xuICAgICAgICBpZiAoIU9iamVjdFV0aWwuaXNOdWxsKHRoaXMuZXhwYW5kZWRSZWYpKSB7XG4gICAgICAgICAgICBjb2x1bW5zID0gWydleHBhbmRlZENvbHVtbicsIC4uLmNvbHVtbnNdO1xuICAgICAgICB9XG4gICAgICAgIGlmICghT2JqZWN0VXRpbC5pc051bGwodGhpcy5hY3Rpb25zUmVmKSkge1xuICAgICAgICAgICAgY29sdW1ucyA9IFsuLi5jb2x1bW5zLCAnYWN0aW9uc0NvbHVtbiddO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2Rpc3BsYXllZENvbHVtbnMgPSBjb2x1bW5zO1xuXG4gICAgICAgIGlmICh0aGlzLmluZmluaXRlU2Nyb2xsKSB7XG4gICAgICAgICAgICBsZXQgZGF0YUFsbDogKFQgfCBUYWJsZUdyb3VwSGVhZGVyRFRPKVtdID0gW107XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5pc0ZpbHRlcmluZykge1xuICAgICAgICAgICAgICAgIGlmICghT2JqZWN0VXRpbC5pc051bGwodGhpcy5fZGF0YVNvdXJjZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0YUFsbCA9IEFycmF5VXRpbC5jbG9uZSh0aGlzLl9kYXRhU291cmNlLmRhdGEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFBcnJheVV0aWwuaXNFbXB0eSh0aGlzLmRhdGEpKSB7XG4gICAgICAgICAgICAgICAgZGF0YUFsbC5wdXNoKC4uLnRoaXMuZGF0YSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuX2RhdGFTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlKFtdKTtcbiAgICAgICAgICAgIGlmICghU3RyaW5nVXRpbC5pc0VtcHR5KHRoaXMuZ3JvdXBCeUNvbHVtbikgJiYgIU9iamVjdFV0aWwuaXNOdWxsKHRoaXMuZ3JvdXBIZWFkZXJSZWYpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZGF0YVNvdXJjZS5kYXRhID0gdGhpcy5nZW5lcmV0ZUdyb3Vwc0J5Q29sdW1uKGRhdGFBbGwpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9kYXRhU291cmNlLmRhdGEgPSBkYXRhQWxsO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmRhdGEgPSBkYXRhQWxsO1xuICAgICAgICAgICAgdGhpcy5kYXRhQ2hhbmdlLmVtaXQodGhpcy5kYXRhKTtcbiAgICAgICAgICAgIHRoaXMuY2FsY1Njcm9sbEhlaWdodCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZGF0YVNvdXJjZSA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2UoW10pO1xuICAgICAgICAgICAgaWYgKCFTdHJpbmdVdGlsLmlzRW1wdHkodGhpcy5ncm91cEJ5Q29sdW1uKSAmJiAhT2JqZWN0VXRpbC5pc051bGwodGhpcy5ncm91cEhlYWRlclJlZikpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9kYXRhU291cmNlLmRhdGEgPSB0aGlzLmdlbmVyZXRlR3JvdXBzQnlDb2x1bW4odGhpcy5kYXRhKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZGF0YVNvdXJjZS5kYXRhID0gdGhpcy5kYXRhO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFBcnJheVV0aWwuaXNFbXB0eSh0aGlzLl9kYXRhU291cmNlLmRhdGEpKSB7XG4gICAgICAgICAgICB0aGlzLl9kYXRhU291cmNlLnNvcnQgPSB0aGlzLm1hdFNvcnQ7XG4gICAgICAgICAgICB0aGlzLnNldFNvcnRpbmdEYXRhQWNjZXNzb3IoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnBhZ2luYXRvciAmJiAhdGhpcy5iYWNrZW5kUGFnaW5hdGlvbikge1xuICAgICAgICAgICAgdGhpcy5fZGF0YVNvdXJjZS5wYWdpbmF0b3IgPSB0aGlzLm1hdEZyb250ZW5kUGFnaW5hdG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gaWYgKCF0aGlzLmdyb3VwU3RhcnRFeHBhbmRlZCAmJiAodGhpcy5ncm91cEhlYWRlclJlZiB8fCAodGhpcy5leHBhbmRhYmxlICYmIHRoaXMuZXhwYW5kZWRSZWYpKSAmJiAhQXJyYXlVdGlsLmlzRW1wdHkodGhpcy5fZGF0YVNvdXJjZS5kYXRhKSkge1xuICAgICAgICAvLyB0aGlzLl9kYXRhU291cmNlLmRhdGEuZm9yRWFjaChyb3cgPT4gdGhpcy5hZGRDb2xsYXBzZShyb3cpKTtcbiAgICAgICAgLy8gfVxuICAgIH1cblxuICAgIGNhbGNTY3JvbGxIZWlnaHQoKTogdm9pZCB7XG4gICAgICAgIGlmICgodGhpcy5fZGF0YVNvdXJjZSAmJiAodGhpcy5fZGF0YVNvdXJjZS5kYXRhLmxlbmd0aCA+IDApKSAmJiAoTWF0aC5mbG9vcih0aGlzLl9zY3JvbGxIZWlnaHRDYWxjKSA8PSA3MDApKSB7XG4gICAgICAgICAgICB0aGlzLl9zY3JvbGxIZWlnaHRDYWxjID0gMTMwICsgKHRoaXMuX2RhdGFTb3VyY2UuZGF0YS5sZW5ndGggKiA0OCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblBhZ2UocGFnZUV2ZW50OiBUYWJsZVBhZ2VFdmVudERUTyk6IHZvaWQge1xuICAgICAgICB0aGlzLnBhZ2luYXRvclBhZ2VTaXplID0gcGFnZUV2ZW50LnBhZ2VTaXplO1xuICAgICAgICBwYWdlRXZlbnQucGFnaW5hdG9yUGFnZVNpemVPcHRpb25zID0gQXJyYXlVdGlsLmlzRW1wdHkocGFnZUV2ZW50LnBhZ2luYXRvclBhZ2VTaXplT3B0aW9ucykgPyB0aGlzLnBhZ2luYXRvclBhZ2VTaXplT3B0aW9ucyA6IHBhZ2VFdmVudC5wYWdpbmF0b3JQYWdlU2l6ZU9wdGlvbnM7XG4gICAgICAgIHRoaXMucGFnZS5lbWl0KHBhZ2VFdmVudCk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzRXhwYW5kZWRSb3cocm93OiBUKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIGlmIChBcnJheVV0aWwuaXNFbXB0eSh0aGlzLl9leHBhbmRlZFJvd3MpKSB7XG4gICAgICAgICAgICByZXR1cm4gb2YoZmFsc2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaW5kZXg6IG51bWJlciA9IHRoaXMuX2V4cGFuZGVkUm93cy5maW5kSW5kZXgociA9PiByID09PSByb3cpO1xuICAgICAgICByZXR1cm4gb2YoaW5kZXggPj0gMCk7XG4gICAgfVxuXG4gICAgcHVibGljIHRvZ2dsZUV4cGFuZFJvdyhyb3c6IFQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaW5kZXg6IG51bWJlciA9IHRoaXMuX2V4cGFuZGVkUm93cy5maW5kSW5kZXgociA9PiByID09PSByb3cpO1xuICAgICAgICBpZiAoQXJyYXlVdGlsLmlzRW1wdHkodGhpcy5fZXhwYW5kZWRSb3dzKSB8fCAoaW5kZXggPCAwKSkge1xuICAgICAgICAgICAgdGhpcy5fZXhwYW5kZWRSb3dzID0gW3Jvd107XG4gICAgICAgICAgICB0aGlzLnJvd0V4cGFuZGVkLmVtaXQocm93KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IF9leHBhbmRlZFJvd3NBdXg6IFRbXSA9IEFycmF5VXRpbC5jbG9uZSh0aGlzLl9leHBhbmRlZFJvd3MpO1xuICAgICAgICBfZXhwYW5kZWRSb3dzQXV4LnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIHRoaXMuX2V4cGFuZGVkUm93cyA9IEFycmF5VXRpbC5jbG9uZShfZXhwYW5kZWRSb3dzQXV4KTtcbiAgICAgICAgdGhpcy5yb3dFeHBhbmRlZC5lbWl0KG51bGwpO1xuICAgIH1cblxuICAgIHNvcnREYXRhKHNvcnQ6IFNvcnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaW5maW5pdGVTY3JvbGwpIHtcbiAgICAgICAgICAgIHRoaXMuZGF0YSA9IFtdO1xuICAgICAgICAgICAgdGhpcy5kYXRhQ2hhbmdlLmVtaXQoW10pO1xuICAgICAgICAgICAgdGhpcy5fZGF0YVNvdXJjZSA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2UoW10pO1xuICAgICAgICAgICAgdGhpcy5jYWxjU2Nyb2xsSGVpZ2h0KCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm9uUGFnZSh7XG4gICAgICAgICAgICBwYWdlU2l6ZTogdGhpcy5wYWdpbmF0b3JQYWdlU2l6ZSxcbiAgICAgICAgICAgIHBhZ2VJbmRleDogMCxcbiAgICAgICAgICAgIGxlbmd0aDogMCxcbiAgICAgICAgICAgIHByZXZpb3VzUGFnZUluZGV4OiAwLFxuICAgICAgICAgICAgcGFnaW5hdG9yUGFnZVNpemVPcHRpb25zOiB0aGlzLnBhZ2luYXRvclBhZ2VTaXplT3B0aW9ucyxcbiAgICAgICAgICAgIHNvcnQ6IHNvcnRcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNob3dQb3BvdmVyKGV2ZW50OiBNb3VzZUV2ZW50LCBkYXRhOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcG9wb3ZlcjogSFRNTEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFibGUtcG9wb3ZlcicpO1xuICAgICAgICBpZiAoIU9iamVjdFV0aWwuaXNOdWxsKHBvcG92ZXIpKSB7XG4gICAgICAgICAgICBwb3BvdmVyLnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcblxuICAgICAgICAgICAgaWYgKCF0aGlzLmxvYWRpbmcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkb21SZWN0UG9wb3ZlciA9IHBvcG92ZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRvbVJlY3RSb3cgPSAoZXZlbnQuY3VycmVudFRhcmdldCBhcyBIVE1MRWxlbWVudCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNlbGxzID0gKGV2ZW50LmN1cnJlbnRUYXJnZXQgYXMgSFRNTFRhYmxlUm93RWxlbWVudCkuY2hpbGRyZW47XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGRvbVJlY3RQb3BvdmVyICYmIGRvbVJlY3RSb3cpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvcG92ZXIuc3R5bGUudmlzaWJpbGl0eSA9ICd2aXNpYmxlJztcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvcG92ZXIuc3R5bGUudG9wID0gYCR7KGRvbVJlY3RSb3cudG9wICsgZG9tUmVjdFJvdy5oZWlnaHQpIC0gMX1weGA7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzdGFydFBvc2l0aW9uOiBudW1iZXIgPSAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGVuZFBvc2l0aW9uOiBudW1iZXIgPSAwO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5jb2x1bW5Jbml0aWFsICYmICh0aGlzLmNvbHVtbkluaXRpYWwgPj0gMCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWNlbGxzW3RoaXMuY29sdW1uSW5pdGlhbF0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbml0aWFsIGNvbHVtbiB1bmRlZmluZWQgb3IgbnVsbCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydFBvc2l0aW9uID0gY2VsbHNbdGhpcy5jb2x1bW5Jbml0aWFsXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydFBvc2l0aW9uID0gZG9tUmVjdFJvdy5sZWZ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5jb2x1bW5GaW5hbCAmJiAodGhpcy5jb2x1bW5GaW5hbCA+PSAwKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghY2VsbHNbdGhpcy5jb2x1bW5GaW5hbF0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdGaW5hbCBjb2x1bW4gdW5kZWZpbmVkIG9yIG51bGwnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kUG9zaXRpb24gPSBjZWxsc1t0aGlzLmNvbHVtbkZpbmFsXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0IC0gZG9tUmVjdFBvcG92ZXIud2lkdGg7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZFBvc2l0aW9uID0gZG9tUmVjdFJvdy5yaWdodCAtIGRvbVJlY3RQb3BvdmVyLndpZHRoO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnQuY2xpZW50WCA+IHN0YXJ0UG9zaXRpb24gKyAxNSAmJiBldmVudC5jbGllbnRYIDwgZW5kUG9zaXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9wb3Zlci5zdHlsZS5sZWZ0ID0gYCR7ZXZlbnQuY2xpZW50WCAtIDE1fXB4YDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmNsaWVudFggPD0gc3RhcnRQb3NpdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3BvdmVyLnN0eWxlLmxlZnQgPSBgJHtzdGFydFBvc2l0aW9ufXB4YDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmNsaWVudFggPj0gZW5kUG9zaXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9wb3Zlci5zdHlsZS5sZWZ0ID0gYCR7ZW5kUG9zaXRpb259cHhgO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yb3dIb3Zlci5lbWl0KGRhdGEpO1xuICAgICAgICB0aGlzLl9jb250ZXh0UG9wb3ZlciA9IGRhdGE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgc2hvd1BvcG92ZXIoZXZlbnQ6IE1vdXNlRXZlbnQsIGRhdGE6IGFueSk6IHZvaWQge1xuICAgICAgICBjb25zdCBwb3BvdmVyOiBIVE1MRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YWJsZS1wb3BvdmVyJyk7XG4gICAgICAgIGlmICghT2JqZWN0VXRpbC5pc051bGwocG9wb3ZlcikpIHtcbiAgICAgICAgICAgIHBvcG92ZXIuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nO1xuXG4gICAgICAgICAgICBpZiAoIXRoaXMubG9hZGluZykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRvbVJlY3RQb3BvdmVyID0gcG9wb3Zlci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBkb21SZWN0Um93ID0gKGV2ZW50LmN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNlbGxzID0gKGV2ZW50LmN1cnJlbnRUYXJnZXQgYXMgSFRNTFRhYmxlUm93RWxlbWVudCkuY2hpbGRyZW47XG5cbiAgICAgICAgICAgICAgICBpZiAoZG9tUmVjdFBvcG92ZXIgJiYgZG9tUmVjdFJvdykge1xuICAgICAgICAgICAgICAgICAgICBwb3BvdmVyLnN0eWxlLnZpc2liaWxpdHkgPSAndmlzaWJsZSc7XG4gICAgICAgICAgICAgICAgICAgIHBvcG92ZXIuc3R5bGUudG9wID0gYCR7KGRvbVJlY3RSb3cudG9wICsgZG9tUmVjdFJvdy5oZWlnaHQpIC0gMX1weGA7XG5cbiAgICAgICAgICAgICAgICAgICAgbGV0IHN0YXJ0UG9zaXRpb246IG51bWJlciA9IDA7XG4gICAgICAgICAgICAgICAgICAgIGxldCBlbmRQb3NpdGlvbjogbnVtYmVyID0gMDtcblxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5jb2x1bW5Jbml0aWFsICYmICh0aGlzLmNvbHVtbkluaXRpYWwgPj0gMCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghY2VsbHNbdGhpcy5jb2x1bW5Jbml0aWFsXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW5pdGlhbCBjb2x1bW4gdW5kZWZpbmVkIG9yIG51bGwnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0UG9zaXRpb24gPSBjZWxsc1t0aGlzLmNvbHVtbkluaXRpYWxdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydFBvc2l0aW9uID0gZG9tUmVjdFJvdy5sZWZ0O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuY29sdW1uRmluYWwgJiYgKHRoaXMuY29sdW1uRmluYWwgPj0gMCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghY2VsbHNbdGhpcy5jb2x1bW5GaW5hbF0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZpbmFsIGNvbHVtbiB1bmRlZmluZWQgb3IgbnVsbCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZW5kUG9zaXRpb24gPSBjZWxsc1t0aGlzLmNvbHVtbkZpbmFsXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0IC0gZG9tUmVjdFBvcG92ZXIud2lkdGg7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRQb3NpdGlvbiA9IGRvbVJlY3RSb3cucmlnaHQgLSBkb21SZWN0UG9wb3Zlci53aWR0aDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmNsaWVudFggPiBzdGFydFBvc2l0aW9uICsgMTUgJiYgZXZlbnQuY2xpZW50WCA8IGVuZFBvc2l0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9wb3Zlci5zdHlsZS5sZWZ0ID0gYCR7ZXZlbnQuY2xpZW50WCAtIDE1fXB4YDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQuY2xpZW50WCA8PSBzdGFydFBvc2l0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9wb3Zlci5zdHlsZS5sZWZ0ID0gYCR7c3RhcnRQb3NpdGlvbn1weGA7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmNsaWVudFggPj0gZW5kUG9zaXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3BvdmVyLnN0eWxlLmxlZnQgPSBgJHtlbmRQb3NpdGlvbn1weGA7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJvd0hvdmVyLmVtaXQoZGF0YSk7XG4gICAgICAgIHRoaXMuX2NvbnRleHRQb3BvdmVyID0gZGF0YTtcbiAgICB9XG4gICAgKi9cblxuICAgIGNsb3NlUG9wb3Zlcih0aW1lOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgb2YobnVsbCkucGlwZShkZWxheSh0aW1lKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGlmICghT2JqZWN0VXRpbC5pc051bGwodGhpcy5faXNQb3BvdmVySG92ZXIpICYmICF0aGlzLl9pc1BvcG92ZXJIb3Zlcikge1xuICAgICAgICAgICAgICAgIGlmICghT2JqZWN0VXRpbC5pc051bGwodGhpcy5faXNQb3BvdmVySG92ZXIpICYmICFPYmplY3RVdGlsLmlzTnVsbCh0aGlzLmFjdGlvbnNQb3BvdmVyUmVmKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwb3BvdmVyOiBIVE1MRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YWJsZS1wb3BvdmVyJyk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghT2JqZWN0VXRpbC5pc051bGwocG9wb3ZlcikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvcG92ZXIuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuX2NvbnRleHRQb3BvdmVyID0gbnVsbDtcbiAgICAgICAgICAgICAgICB0aGlzLl9pc1BvcG92ZXJIb3ZlciA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNldFNvcnRpbmdEYXRhQWNjZXNzb3IoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2RhdGFTb3VyY2Uuc29ydGluZ0RhdGFBY2Nlc3NvciA9IChkYXRhOiBhbnksIHNvcnRIZWFkZXJJZDogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZGF0YVtzb3J0SGVhZGVySWRdID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBkYXRhW3NvcnRIZWFkZXJJZF0udG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBkYXRhW3NvcnRIZWFkZXJJZF07XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gZ3JvdXAgaGVhZGVyXG4gICAgZ2VuZXJldGVHcm91cHNCeUNvbHVtbihkYXRhOiBhbnlbXSk6IFRhYmxlR3JvdXBIZWFkZXJEVE9bXSB7XG4gICAgICAgIGNvbnN0IGdyb3Vwczoge30gPSBkYXRhLnJlZHVjZSgoZ3JvdXAsIHJvdykgPT4ge1xuICAgICAgICAgICAgY29uc3QgZGF0YUNvbHVtbjogc3RyaW5nID0gcm93W3RoaXMuZ3JvdXBCeUNvbHVtbl0udG9TdHJpbmcoKTtcbiAgICAgICAgICAgIGlmICghZ3JvdXBbZGF0YUNvbHVtbl0pIHtcbiAgICAgICAgICAgICAgICBncm91cFtkYXRhQ29sdW1uXSA9IFtdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZ3JvdXBbZGF0YUNvbHVtbl0ucHVzaChyb3cpO1xuICAgICAgICAgICAgcmV0dXJuIGdyb3VwO1xuICAgICAgICB9LCB7fSk7XG5cbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKGdyb3VwcykubWFwKGdyb3VwVmFsdWUgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBUYWJsZUdyb3VwSGVhZGVyRFRPKGdyb3VwVmFsdWUsIGdyb3Vwc1tncm91cFZhbHVlXSwgZ3JvdXBzW2dyb3VwVmFsdWVdLmxlbmd0aCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldEhpZ2hsaWdodFJvdyhyb3c6IFQgfCBUYWJsZUdyb3VwSGVhZGVyRFRPKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghT2JqZWN0VXRpbC5pc051bGwocm93KSkge1xuICAgICAgICAgICAgaWYgKCFPYmplY3RVdGlsLmlzTnVsbCh0aGlzLmhpZ2hsaWdodFJvd0ZuKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmhpZ2hsaWdodFJvd0ZuKHJvdyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGdldEluZGV4Um93KHJvdzogVCB8IFRhYmxlR3JvdXBIZWFkZXJEVE8pOiBudW1iZXIge1xuICAgICAgICBpZiAoIU9iamVjdFV0aWwuaXNOdWxsKHRoaXMuX2RhdGFTb3VyY2UpICYmICFBcnJheVV0aWwuaXNFbXB0eSh0aGlzLl9kYXRhU291cmNlLmRhdGEpICYmICFPYmplY3RVdGlsLmlzTnVsbChyb3cpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZGF0YVNvdXJjZS5kYXRhLmZpbmRJbmRleChyID0+IHIgPT09IHJvdyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBpbmZpbml0ZSBzY3JvbGxcbiAgICBoYXNNb3JlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuX2RhdGFTb3VyY2UgfHwgKHRoaXMuX2RhdGFTb3VyY2UuZGF0YS5sZW5ndGggPCB0aGlzLnBhZ2luYXRvckxlbmd0aCk7XG4gICAgfVxuXG4gICAgaGFuZGxlU2Nyb2xsKHNjcm9sbGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmIChzY3JvbGxlZCAmJiB0aGlzLmhhc01vcmUoKSkge1xuICAgICAgICAgICAgdGhpcy5vblBhZ2Uoe1xuICAgICAgICAgICAgICAgIHBhZ2VTaXplOiB0aGlzLnBhZ2luYXRvclBhZ2VTaXplLFxuICAgICAgICAgICAgICAgIHBhZ2VJbmRleDogdGhpcy5wYWdpbmF0b3JQYWdlSW5kZXgsXG4gICAgICAgICAgICAgICAgbGVuZ3RoOiB0aGlzLnBhZ2luYXRvckxlbmd0aCxcbiAgICAgICAgICAgICAgICBwcmV2aW91c1BhZ2VJbmRleDogdGhpcy5wYWdpbmF0b3JQYWdlSW5kZXgsXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy5wYWdpbmF0b3JQYWdlSW5kZXggKz0gMTtcbiAgICAgICAgfVxuICAgIH1cblxufVxuIl19
@@ -99,7 +99,7 @@ GIPIAbstractFormComponent = GIPIAbstractFormComponent_1 = __decorate([
99
99
  Component({
100
100
  selector: `gipi-abstract-form`,
101
101
  exportAs: 'gipiAbstractForm',
102
- template: "<div [style.flex-direction]=\"flexDirection\"\n [style.align-items]=\"alignItems\"\n [style.justify-content]=\"justifyContent\"\n [style.gap]=\"getGap\"\n [style.padding]=\"getPadding\"\n class=\"form-content\"\n [class.space-bottom]=\"!dialog\"\n [class.form-dialog]=\"dialog\">\n <ng-content> </ng-content>\n</div>\n<div class=\"form-footer\"\n [style.margin-inline]=\"getPadding\"\n *ngIf=\"GIPIActionRowComponent\">\n <ng-content select=\"gipi-action-row\"> </ng-content>\n</div>",
102
+ template: "<div class=\"form-content\"\n [class.form-dialog]=\"dialog\"\n [class.space-bottom]=\"!dialog\"\n [style.flex-direction]=\"flexDirection\"\n [style.align-items]=\"alignItems\"\n [style.justify-content]=\"justifyContent\"\n [style.gap]=\"getGap\"\n [style.padding]=\"getPadding\">\n <ng-content> </ng-content>\n</div>\n<div class=\"form-footer\"\n [style.margin-inline]=\"getPadding\"\n *ngIf=\"GIPIActionRowComponent\">\n <ng-content select=\"gipi-action-row\"> </ng-content>\n</div>",
103
103
  providers: [
104
104
  {
105
105
  provide: NG_VALUE_ACCESSOR,
@@ -37,6 +37,22 @@ let GIPIButtonComponent = GIPIButtonComponent_1 = class GIPIButtonComponent {
37
37
  this.onFocus = new EventEmitter(true);
38
38
  this.onBlur = new EventEmitter(true);
39
39
  }
40
+ get internalButtonClass() {
41
+ return {
42
+ 'button-base': true,
43
+ 'button-primary': (this.isButtonPrimary || this.isButtonPrimaryIcon),
44
+ 'button-primary-icon': this.isButtonPrimaryIcon,
45
+ 'button-secondary': (this.isButtonSecondary || this.isButtonSecondaryIcon),
46
+ 'button-secondary-icon': this.isButtonSecondaryIcon,
47
+ 'button-tertiary': (this.isButtonTertiary || this.isButtonTertiaryIcon),
48
+ 'button-tertiary-icon': this.isButtonTertiaryIcon,
49
+ 'button-link': this.isButtonLink,
50
+ 'button-only-icon': this.isButtonIcon,
51
+ 'button-for-input': this.isForInput,
52
+ 'button-notification': this.notification,
53
+ 'button-action': this.isButtonAction
54
+ };
55
+ }
40
56
  ngOnInit() { }
41
57
  ngOnDestroy() {
42
58
  if (this.popoverTrigger) {
@@ -232,7 +248,7 @@ GIPIButtonComponent = GIPIButtonComponent_1 = __decorate([
232
248
  selector: `gipi-button[gipi-primary], gipi-button[gipi-primary-icon], gipi-button[gipi-secondary], gipi-button[gipi-secondary-icon],
233
249
  gipi-button[gipi-tertiary], gipi-button[gipi-link], gipi-button[gipi-icon], gipi-button[gipi-action]`,
234
250
  exportAs: 'gipiButton',
235
- template: "<button [attr.id]=\"id\"\n [attr.name]=\"name\"\n [attr.type]=\"type\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : label\"\n [attr.title]=\"title ? title : label\"\n [disabled]=\"disabled || loading\"\n [matTooltip]=\"tooltip\"\n role=\"button\"\n [class]=\"buttonClass\"\n [ngClass]=\"{'button-base': true,\n 'button-primary': (isButtonPrimary || isButtonPrimaryIcon),\n 'button-primary-icon': isButtonPrimaryIcon,\n 'button-secondary': (isButtonSecondary || isButtonSecondaryIcon),\n 'button-secondary-icon': isButtonSecondaryIcon,\n 'button-tertiary': (isButtonTertiary || isButtonTertiaryIcon),\n 'button-tertiary-icon': isButtonTertiaryIcon,\n 'button-link': isButtonLink,\n 'button-only-icon': isButtonIcon,\n 'button-for-input': isForInput,\n 'button-notification': notification,\n 'button-action': isButtonAction}\"\n [style.padding.px]=\"buttonPadding\"\n #popoverTrigger=\"popoverTrigger\"\n [popoverTriggerFor]=\"btnPopover\"\n [popoverTriggerOn]=\"popover ? 'click' : 'none'\"\n [popoverBackdropCloseOnClick]=\"true\"\n (opened)=\"onOpenPopover.emit()\"\n (closed)=\"onClosePopover.emit()\"\n (click)=\"handleClick($event)\"\n (focus)=\"handleFocus($event)\"\n (blur)=\"handleBlur($event)\">\n\n <span [ngClass]=\"{'button-content': true,\n 'button-disabled': disabled,\n 'button-icon-left': ((iconPos === 'left') && label),\n 'button-icon-right': ((iconPos === 'right') && label),\n 'button-icon-top': ((iconPos === 'top') && label),\n 'button-icon-bottom': ((iconPos === 'bottom') && label),\n 'button-icon-center': (iconPos === 'center')}\">\n\n <mat-icon *ngIf=\"svgIcon || icon\"\n [svgIcon]=\"svgIcon\"\n [style.width.px]=\"iconWidth\"\n [style.height.px]=\"iconHeight\">\n {{ (!svgIcon && icon) ? icon : '' }}\n </mat-icon>\n\n <span class=\"button-label\"\n [attr.aria-hidden]=\"(icon || svgIcon) && !label\"\n *ngIf=\"!isButtonIcon && label\">\n {{ label }}\n </span>\n </span>\n\n</button>\n<gipi-overlay *ngIf=\"overlay && !popover\"\n [(visible)]=\"_overlayVisible\"\n [appendTo]=\"'body'\"\n (onShow)=\"onShowOverlay.emit()\">\n <ng-content> </ng-content>\n</gipi-overlay>\n\n<gipi-popover #btnPopover=\"gipiPopover\"\n [popoverOverlapTrigger]=\"false\"\n [popoverCloseOnClick]=\"false\"\n [popoverArrowWidth]=\"0\"\n [popoverOffsetY]=\"3\">\n <div class=\"btn-popover-content\">\n <ng-content> </ng-content>\n </div>\n</gipi-popover>",
251
+ template: "<button [attr.id]=\"id\"\n [attr.name]=\"name\"\n [attr.type]=\"type\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : label\"\n [attr.title]=\"title ? title : label\"\n [disabled]=\"disabled || loading\"\n [matTooltip]=\"tooltip\"\n role=\"button\"\n [class]=\"buttonClass\"\n [ngClass]=\"internalButtonClass\"\n [style.padding.px]=\"buttonPadding\"\n #popoverTrigger=\"popoverTrigger\"\n [popoverTriggerFor]=\"btnPopover\"\n [popoverTriggerOn]=\"popover ? 'click' : 'none'\"\n [popoverBackdropCloseOnClick]=\"true\"\n (opened)=\"onOpenPopover.emit()\"\n (closed)=\"onClosePopover.emit()\"\n (click)=\"handleClick($event)\"\n (focus)=\"handleFocus($event)\"\n (blur)=\"handleBlur($event)\">\n <span [ngClass]=\"{'button-content': true,\n 'button-disabled': disabled,\n 'button-icon-left': ((iconPos === 'left') && label),\n 'button-icon-right': ((iconPos === 'right') && label),\n 'button-icon-top': ((iconPos === 'top') && label),\n 'button-icon-bottom': ((iconPos === 'bottom') && label),\n 'button-icon-center': (iconPos === 'center')}\">\n <mat-icon *ngIf=\"svgIcon || icon\"\n [svgIcon]=\"svgIcon\"\n [style.width.px]=\"iconWidth\"\n [style.height.px]=\"iconHeight\"\n [style.font-size.px]=\"iconWidth || iconHeight\">\n {{ (!svgIcon && icon) ? icon : '' }}\n </mat-icon>\n\n <span class=\"button-label\"\n [attr.aria-hidden]=\"(icon || svgIcon) && !label\"\n *ngIf=\"!isButtonIcon && label\">\n {{ label }}\n </span>\n </span>\n</button>\n\n<gipi-overlay *ngIf=\"overlay && !popover\"\n [(visible)]=\"_overlayVisible\"\n [appendTo]=\"'body'\"\n (onShow)=\"onShowOverlay.emit()\">\n <ng-content> </ng-content>\n</gipi-overlay>\n\n<gipi-popover #btnPopover=\"gipiPopover\"\n [popoverOverlapTrigger]=\"false\"\n [popoverCloseOnClick]=\"false\"\n [popoverArrowWidth]=\"0\"\n [popoverOffsetY]=\"3\"\n [fxHide]=\"!popover\">\n <div class=\"btn-popover-content\">\n <ng-content> </ng-content>\n </div>\n</gipi-popover>",
236
252
  providers: [
237
253
  {
238
254
  provide: NG_VALUE_ACCESSOR,
@@ -248,4 +264,4 @@ GIPIButtonComponent = GIPIButtonComponent_1 = __decorate([
248
264
  __metadata("design:paramtypes", [ElementRef])
249
265
  ], GIPIButtonComponent);
250
266
  export { GIPIButtonComponent };
251
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BnaXBpc2lzdGVtYXMvbmctY29yZS8iLCJzb3VyY2VzIjpbInNoYXJlZC9naXBpLWNvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNJLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBcUJ2RSxJQUFhLG1CQUFtQiwyQkFBaEMsTUFBYSxtQkFBbUI7SUE4RDVCLFlBQW9CLFdBQXVCO1FBQXZCLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBNURsQyxvQkFBZSxHQUFZLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNuRSx3QkFBbUIsR0FBWSxJQUFJLENBQUMsa0JBQWtCLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUM1RSxzQkFBaUIsR0FBWSxJQUFJLENBQUMsa0JBQWtCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN2RSwwQkFBcUIsR0FBWSxJQUFJLENBQUMsa0JBQWtCLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUNoRixxQkFBZ0IsR0FBWSxJQUFJLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDckUseUJBQW9CLEdBQVksSUFBSSxDQUFDLGtCQUFrQixDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDOUUsaUJBQVksR0FBWSxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDN0QsaUJBQVksR0FBWSxJQUFJLENBQUMsa0JB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QTlJWSxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkLCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgR0lQSVBvcG92ZXJUcmlnZ2VyIH0gZnJvbSAnLi4vcG9wb3Zlci9zaGFyZWQvcG9wb3Zlci10cmlnZ2VyJztcblxudHlwZSBCdXR0b25JY29uUG9zaXRpb24gPSAnbGVmdCcgfCAncmlnaHQnIHwgJ3RvcCcgfCAnYm90dG9tJyB8ICdjZW50ZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogYGdpcGktYnV0dG9uW2dpcGktcHJpbWFyeV0sIGdpcGktYnV0dG9uW2dpcGktcHJpbWFyeS1pY29uXSwgZ2lwaS1idXR0b25bZ2lwaS1zZWNvbmRhcnldLCBnaXBpLWJ1dHRvbltnaXBpLXNlY29uZGFyeS1pY29uXSxcbiAgICAgICAgICAgICAgIGdpcGktYnV0dG9uW2dpcGktdGVydGlhcnldLCBnaXBpLWJ1dHRvbltnaXBpLWxpbmtdLCBnaXBpLWJ1dHRvbltnaXBpLWljb25dLCBnaXBpLWJ1dHRvbltnaXBpLWFjdGlvbl1gLFxuICAgIGV4cG9ydEFzOiAnZ2lwaUJ1dHRvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2J1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYnV0dG9uLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCk6IHR5cGVvZiBHSVBJQnV0dG9uQ29tcG9uZW50ID0+IEdJUElCdXR0b25Db21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfVxuICAgIF0sXG4gICAgaG9zdDoge1xuICAgICAgICAnY2xhc3MnOiAnZ2lwaS1idXR0b24nLFxuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgR0lQSUJ1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICAgIHJlYWRvbmx5IGlzQnV0dG9uUHJpbWFyeTogYm9vbGVhbiA9IHRoaXMuX2hhc0hvc3RBdHRyaWJ1dGVzKCdnaXBpLXByaW1hcnknKTtcbiAgICByZWFkb25seSBpc0J1dHRvblByaW1hcnlJY29uOiBib29sZWFuID0gdGhpcy5faGFzSG9zdEF0dHJpYnV0ZXMoJ2dpcGktcHJpbWFyeS1pY29uJyk7XG4gICAgcmVhZG9ubHkgaXNCdXR0b25TZWNvbmRhcnk6IGJvb2xlYW4gPSB0aGlzLl9oYXNIb3N0QXR0cmlidXRlcygnZ2lwaS1zZWNvbmRhcnknKTtcbiAgICByZWFkb25seSBpc0J1dHRvblNlY29uZGFyeUljb246IGJvb2xlYW4gPSB0aGlzLl9oYXNIb3N0QXR0cmlidXRlcygnZ2lwaS1zZWNvbmRhcnktaWNvbicpO1xuICAgIHJlYWRvbmx5IGlzQnV0dG9uVGVydGlhcnk6IGJvb2xlYW4gPSB0aGlzLl9oYXNIb3N0QXR0cmlidXRlcygnZ2lwaS10ZXJ0aWFyeScpO1xuICAgIHJlYWRvbmx5IGlzQnV0dG9uVGVydGlhcnlJY29uOiBib29sZWFuID0gdGhpcy5faGFzSG9zdEF0dHJpYnV0ZXMoJ2dpcGktdGVydGlhcnktaWNvbicpO1xuICAgIHJlYWRvbmx5IGlzQnV0dG9uTGluazogYm9vbGVhbiA9IHRoaXMuX2hhc0hvc3RBdHRyaWJ1dGVzKCdnaXBpLWxpbmsnKTtcbiAgICByZWFkb25seSBpc0J1dHRvbkljb246IGJvb2xlYW4gPSB0aGlzLl9oYXNIb3N0QXR0cmlidXRlcygnZ2lwaS1pY29uJyk7XG4gICAgcmVhZG9ubHkgaXNCdXR0b25BY3Rpb246IGJvb2xlYW4gPSB0aGlzLl9oYXNIb3N0QXR0cmlidXRlcygnZ2lwaS1hY3Rpb24nKTtcblxuICAgIF9vdmVybGF5VmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQFZpZXdDaGlsZChHSVBJUG9wb3ZlclRyaWdnZXIsIHsgc3RhdGljOiBmYWxzZSB9KSBwb3BvdmVyVHJpZ2dlcjogR0lQSVBvcG92ZXJUcmlnZ2VyO1xuXG4gICAgQElucHV0KCkgaWQ6IHN0cmluZztcblxuICAgIEBJbnB1dCgpIG5hbWU6IHN0cmluZztcblxuICAgIEBJbnB1dCgpIHR5cGU6ICdidXR0b24nIHwgJ3N1Ym1pdCcgfCAncmVzZXQnID0gJ2J1dHRvbic7XG5cbiAgICBASW5wdXQoKSBhcmlhTGFiZWw6IHN0cmluZyA9ICcnO1xuXG4gICAgQElucHV0KCkgdGl0bGU6IHN0cmluZyA9ICcnO1xuXG4gICAgQElucHV0KCkgbGFiZWw6IHN0cmluZyA9ICcnO1xuXG4gICAgQElucHV0KCkgYnV0dG9uQ2xhc3M6IHN0cmluZztcblxuICAgIEBJbnB1dCgpIGJ1dHRvblBhZGRpbmc6IG51bWJlciB8IHN0cmluZztcblxuICAgIEBJbnB1dCgpIGljb25XaWR0aDogbnVtYmVyIHwgc3RyaW5nO1xuICAgIEBJbnB1dCgpIGljb25IZWlnaHQ6IG51bWJlciB8IHN0cmluZztcblxuICAgIEBJbnB1dCgpIGljb246IHN0cmluZyA9IG51bGw7XG5cbiAgICBASW5wdXQoKSBzdmdJY29uOiBzdHJpbmcgPSBudWxsO1xuXG4gICAgQElucHV0KCkgaWNvblBvczogQnV0dG9uSWNvblBvc2l0aW9uID0gJ2xlZnQnO1xuXG4gICAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpIGxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpIG5vdGlmaWNhdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgdG9vbHRpcDogc3RyaW5nID0gJyc7XG5cbiAgICBASW5wdXQoKSBwb3BvdmVyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKSBvdmVybGF5OiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBASW5wdXQoJ2ZvcklucHV0JykgaXNGb3JJbnB1dDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQE91dHB1dCgpIG9uU2hvd092ZXJsYXk6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgICBAT3V0cHV0KCkgb25PcGVuUG9wb3ZlcjogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAgIEBPdXRwdXQoKSBvbkNsb3NlUG9wb3ZlcjogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAgIEBPdXRwdXQoJ2NsaWNrJykgb25DbGljazogRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50Pih0cnVlKTtcbiAgICBAT3V0cHV0KCdmb2N1cycpIG9uRm9jdXM6IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4odHJ1ZSk7XG4gICAgQE91dHB1dCgnYmx1cicpIG9uQmx1cjogRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50Pih0cnVlKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHsgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7IH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5wb3BvdmVyVHJpZ2dlcikge1xuICAgICAgICAgICAgdGhpcy5wb3BvdmVyVHJpZ2dlci5kZXN0cm95UG9wb3ZlcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0SG9zdEVsZW1lbnQoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9oYXNIb3N0QXR0cmlidXRlcyguLi5hdHRyaWJ1dGVzOiBzdHJpbmdbXSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gYXR0cmlidXRlcy5zb21lKGF0dHJpYnV0ZSA9PiB0aGlzLmdldEhvc3RFbGVtZW50KCkuaGFzQXR0cmlidXRlKGF0dHJpYnV0ZSkpO1xuICAgIH1cblxuICAgIHRvZ2dsZU92ZXJsYXkoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMubG9hZGluZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fb3ZlcmxheVZpc2libGUgPSAhdGhpcy5fb3ZlcmxheVZpc2libGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzaG93UG9wb3ZlcigpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5sb2FkaW5nKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnBvcG92ZXJUcmlnZ2VyLm9wZW5Qb3BvdmVyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjbG9zZVBvcG92ZXIoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMubG9hZGluZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5wb3BvdmVyVHJpZ2dlci5jbG9zZVBvcG92ZXIoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhhbmRsZUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMubG9hZGluZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMub3ZlcmxheSkge1xuICAgICAgICAgICAgICAgIHRoaXMudG9nZ2xlT3ZlcmxheSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5vbkNsaWNrLmVtaXQoZXZlbnQpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoYW5kbGVGb2N1cyhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLmxvYWRpbmcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMub25Gb2N1cy5lbWl0KGV2ZW50KTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGFuZGxlQmx1cihldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLmxvYWRpbmcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMub25CbHVyLmVtaXQoZXZlbnQpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcbiAgICBvblJlc2l6ZShldmVudDogVUlFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5wb3BvdmVyVHJpZ2dlcikge1xuICAgICAgICAgICAgdGhpcy5wb3BvdmVyVHJpZ2dlci5jbG9zZVBvcG92ZXIoKTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxuXG59XG4iXX0=
267
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BnaXBpc2lzdGVtYXMvbmctY29yZS8iLCJzb3VyY2VzIjpbInNoYXJlZC9naXBpLWNvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNJLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBcUJ2RSxJQUFhLG1CQUFtQiwyQkFBaEMsTUFBYSxtQkFBbUI7SUErRTVCLFlBQW9CLFdBQXVCO1FBQXZCLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBN0VsQyxvQkFBZSxHQUFZLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNuRSx3QkFBbUIsR0FBWSxJQUFJLENBQUMsa0JBQWtCLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUM1RSxzQkFBaUIsR0FBWSxJQUFJLENBQUMsa0JBQWtCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN2RSwwQkFBcUIsR0FBWSxJQUFJLENBQUMsa0JBQWtCLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUNoRixxQkFBZ0IsR0FBWSxJQUFJLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDckUseUJBQW9CLEdBQVksSUFBSSxDQUFDLGtCQUFrQixDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDOUUsaUJBQVksR0FBWSxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDN0QsaUJBQVksR0FBWSxJQUFJLENBQUMsa0JB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WTsyREFBa0M7QUFDdkQ7SUFBaEIsTUFBTSxDQUFDLE9BQU8sQ0FBQzs4QkFBVSxZQUFZO29EQUFrRDtBQUN2RTtJQUFoQixNQUFNLENBQUMsT0FBTyxDQUFDOzhCQUFVLFlBQVk7b0RBQWtEO0FBQ3hFO0lBQWYsTUFBTSxDQUFDLE1BQU0sQ0FBQzs4QkFBUyxZQUFZO21EQUFrRDtBQTRGdEY7SUFEQyxZQUFZLENBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7O3FDQUMxQixPQUFPOzttREFLdEI7QUE3SlEsbUJBQW1CO0lBakIvQixTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUU7b0hBQ3NHO1FBQ2hILFFBQVEsRUFBRSxZQUFZO1FBQ3RCLHk1RUFBc0M7UUFFdEMsU0FBUyxFQUFFO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUErQixFQUFFLENBQUMscUJBQW1CLENBQUM7Z0JBQzlFLEtBQUssRUFBRSxJQUFJO2FBQ2Q7U0FDSjtRQUNELElBQUksRUFBRTtZQUNGLE9BQU8sRUFBRSxhQUFhO1NBQ3pCOztLQUNKLENBQUM7cUNBZ0ZtQyxVQUFVO0dBL0VsQyxtQkFBbUIsQ0ErSi9CO1NBL0pZLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBHSVBJUG9wb3ZlclRyaWdnZXIgfSBmcm9tICcuLi9wb3BvdmVyL3NoYXJlZC9wb3BvdmVyLXRyaWdnZXInO1xuXG50eXBlIEJ1dHRvbkljb25Qb3NpdGlvbiA9ICdsZWZ0JyB8ICdyaWdodCcgfCAndG9wJyB8ICdib3R0b20nIHwgJ2NlbnRlcic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBgZ2lwaS1idXR0b25bZ2lwaS1wcmltYXJ5XSwgZ2lwaS1idXR0b25bZ2lwaS1wcmltYXJ5LWljb25dLCBnaXBpLWJ1dHRvbltnaXBpLXNlY29uZGFyeV0sIGdpcGktYnV0dG9uW2dpcGktc2Vjb25kYXJ5LWljb25dLFxuICAgICAgICAgICAgICAgZ2lwaS1idXR0b25bZ2lwaS10ZXJ0aWFyeV0sIGdpcGktYnV0dG9uW2dpcGktbGlua10sIGdpcGktYnV0dG9uW2dpcGktaWNvbl0sIGdpcGktYnV0dG9uW2dpcGktYWN0aW9uXWAsXG4gICAgZXhwb3J0QXM6ICdnaXBpQnV0dG9uJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9idXR0b24uY29tcG9uZW50LnNjc3MnXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKTogdHlwZW9mIEdJUElCdXR0b25Db21wb25lbnQgPT4gR0lQSUJ1dHRvbkNvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9XG4gICAgXSxcbiAgICBob3N0OiB7XG4gICAgICAgICdjbGFzcyc6ICdnaXBpLWJ1dHRvbicsXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBHSVBJQnV0dG9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gICAgcmVhZG9ubHkgaXNCdXR0b25QcmltYXJ5OiBib29sZWFuID0gdGhpcy5faGFzSG9zdEF0dHJpYnV0ZXMoJ2dpcGktcHJpbWFyeScpO1xuICAgIHJlYWRvbmx5IGlzQnV0dG9uUHJpbWFyeUljb246IGJvb2xlYW4gPSB0aGlzLl9oYXNIb3N0QXR0cmlidXRlcygnZ2lwaS1wcmltYXJ5LWljb24nKTtcbiAgICByZWFkb25seSBpc0J1dHRvblNlY29uZGFyeTogYm9vbGVhbiA9IHRoaXMuX2hhc0hvc3RBdHRyaWJ1dGVzKCdnaXBpLXNlY29uZGFyeScpO1xuICAgIHJlYWRvbmx5IGlzQnV0dG9uU2Vjb25kYXJ5SWNvbjogYm9vbGVhbiA9IHRoaXMuX2hhc0hvc3RBdHRyaWJ1dGVzKCdnaXBpLXNlY29uZGFyeS1pY29uJyk7XG4gICAgcmVhZG9ubHkgaXNCdXR0b25UZXJ0aWFyeTogYm9vbGVhbiA9IHRoaXMuX2hhc0hvc3RBdHRyaWJ1dGVzKCdnaXBpLXRlcnRpYXJ5Jyk7XG4gICAgcmVhZG9ubHkgaXNCdXR0b25UZXJ0aWFyeUljb246IGJvb2xlYW4gPSB0aGlzLl9oYXNIb3N0QXR0cmlidXRlcygnZ2lwaS10ZXJ0aWFyeS1pY29uJyk7XG4gICAgcmVhZG9ubHkgaXNCdXR0b25MaW5rOiBib29sZWFuID0gdGhpcy5faGFzSG9zdEF0dHJpYnV0ZXMoJ2dpcGktbGluaycpO1xuICAgIHJlYWRvbmx5IGlzQnV0dG9uSWNvbjogYm9vbGVhbiA9IHRoaXMuX2hhc0hvc3RBdHRyaWJ1dGVzKCdnaXBpLWljb24nKTtcbiAgICByZWFkb25seSBpc0J1dHRvbkFjdGlvbjogYm9vbGVhbiA9IHRoaXMuX2hhc0hvc3RBdHRyaWJ1dGVzKCdnaXBpLWFjdGlvbicpO1xuXG4gICAgX292ZXJsYXlWaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBAVmlld0NoaWxkKEdJUElQb3BvdmVyVHJpZ2dlciwgeyBzdGF0aWM6IGZhbHNlIH0pIHBvcG92ZXJUcmlnZ2VyOiBHSVBJUG9wb3ZlclRyaWdnZXI7XG5cbiAgICBASW5wdXQoKSBpZDogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgbmFtZTogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgdHlwZTogJ2J1dHRvbicgfCAnc3VibWl0JyB8ICdyZXNldCcgPSAnYnV0dG9uJztcblxuICAgIEBJbnB1dCgpIGFyaWFMYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgICBASW5wdXQoKSB0aXRsZTogc3RyaW5nID0gJyc7XG5cbiAgICBASW5wdXQoKSBsYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgICBASW5wdXQoKSBidXR0b25DbGFzczogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgYnV0dG9uUGFkZGluZzogbnVtYmVyIHwgc3RyaW5nO1xuXG4gICAgQElucHV0KCkgaWNvbldpZHRoOiBudW1iZXIgfCBzdHJpbmc7XG4gICAgQElucHV0KCkgaWNvbkhlaWdodDogbnVtYmVyIHwgc3RyaW5nO1xuXG4gICAgQElucHV0KCkgaWNvbjogc3RyaW5nID0gbnVsbDtcblxuICAgIEBJbnB1dCgpIHN2Z0ljb246IHN0cmluZyA9IG51bGw7XG5cbiAgICBASW5wdXQoKSBpY29uUG9zOiBCdXR0b25JY29uUG9zaXRpb24gPSAnbGVmdCc7XG5cbiAgICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgbm90aWZpY2F0aW9uOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKSB0b29sdGlwOiBzdHJpbmcgPSAnJztcblxuICAgIEBJbnB1dCgpIHBvcG92ZXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpIG92ZXJsYXk6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCgnZm9ySW5wdXQnKSBpc0ZvcklucHV0OiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBAT3V0cHV0KCkgb25TaG93T3ZlcmxheTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAgIEBPdXRwdXQoKSBvbk9wZW5Qb3BvdmVyOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gICAgQE91dHB1dCgpIG9uQ2xvc2VQb3BvdmVyOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gICAgQE91dHB1dCgnY2xpY2snKSBvbkNsaWNrOiBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KHRydWUpO1xuICAgIEBPdXRwdXQoJ2ZvY3VzJykgb25Gb2N1czogRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50Pih0cnVlKTtcbiAgICBAT3V0cHV0KCdibHVyJykgb25CbHVyOiBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KHRydWUpO1xuXG4gICAgcHVibGljIGdldCBpbnRlcm5hbEJ1dHRvbkNsYXNzKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgJ2J1dHRvbi1iYXNlJzogdHJ1ZSxcbiAgICAgICAgICAgICdidXR0b24tcHJpbWFyeSc6ICh0aGlzLmlzQnV0dG9uUHJpbWFyeSB8fCB0aGlzLmlzQnV0dG9uUHJpbWFyeUljb24pLFxuICAgICAgICAgICAgJ2J1dHRvbi1wcmltYXJ5LWljb24nOiB0aGlzLmlzQnV0dG9uUHJpbWFyeUljb24sXG4gICAgICAgICAgICAnYnV0dG9uLXNlY29uZGFyeSc6ICh0aGlzLmlzQnV0dG9uU2Vjb25kYXJ5IHx8IHRoaXMuaXNCdXR0b25TZWNvbmRhcnlJY29uKSxcbiAgICAgICAgICAgICdidXR0b24tc2Vjb25kYXJ5LWljb24nOiB0aGlzLmlzQnV0dG9uU2Vjb25kYXJ5SWNvbixcbiAgICAgICAgICAgICdidXR0b24tdGVydGlhcnknOiAodGhpcy5pc0J1dHRvblRlcnRpYXJ5IHx8IHRoaXMuaXNCdXR0b25UZXJ0aWFyeUljb24pLFxuICAgICAgICAgICAgJ2J1dHRvbi10ZXJ0aWFyeS1pY29uJzogdGhpcy5pc0J1dHRvblRlcnRpYXJ5SWNvbixcbiAgICAgICAgICAgICdidXR0b24tbGluayc6IHRoaXMuaXNCdXR0b25MaW5rLFxuICAgICAgICAgICAgJ2J1dHRvbi1vbmx5LWljb24nOiB0aGlzLmlzQnV0dG9uSWNvbixcbiAgICAgICAgICAgICdidXR0b24tZm9yLWlucHV0JzogdGhpcy5pc0ZvcklucHV0LFxuICAgICAgICAgICAgJ2J1dHRvbi1ub3RpZmljYXRpb24nOiB0aGlzLm5vdGlmaWNhdGlvbixcbiAgICAgICAgICAgICdidXR0b24tYWN0aW9uJzogdGhpcy5pc0J1dHRvbkFjdGlvblxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHsgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7IH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5wb3BvdmVyVHJpZ2dlcikge1xuICAgICAgICAgICAgdGhpcy5wb3BvdmVyVHJpZ2dlci5kZXN0cm95UG9wb3ZlcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0SG9zdEVsZW1lbnQoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9oYXNIb3N0QXR0cmlidXRlcyguLi5hdHRyaWJ1dGVzOiBzdHJpbmdbXSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gYXR0cmlidXRlcy5zb21lKGF0dHJpYnV0ZSA9PiB0aGlzLmdldEhvc3RFbGVtZW50KCkuaGFzQXR0cmlidXRlKGF0dHJpYnV0ZSkpO1xuICAgIH1cblxuICAgIHRvZ2dsZU92ZXJsYXkoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMubG9hZGluZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fb3ZlcmxheVZpc2libGUgPSAhdGhpcy5fb3ZlcmxheVZpc2libGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzaG93UG9wb3ZlcigpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5sb2FkaW5nKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnBvcG92ZXJUcmlnZ2VyLm9wZW5Qb3BvdmVyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjbG9zZVBvcG92ZXIoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMubG9hZGluZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5wb3BvdmVyVHJpZ2dlci5jbG9zZVBvcG92ZXIoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhhbmRsZUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMubG9hZGluZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMub3ZlcmxheSkge1xuICAgICAgICAgICAgICAgIHRoaXMudG9nZ2xlT3ZlcmxheSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5vbkNsaWNrLmVtaXQoZXZlbnQpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoYW5kbGVGb2N1cyhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLmxvYWRpbmcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMub25Gb2N1cy5lbWl0KGV2ZW50KTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGFuZGxlQmx1cihldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLmxvYWRpbmcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMub25CbHVyLmVtaXQoZXZlbnQpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcbiAgICBvblJlc2l6ZShldmVudDogVUlFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5wb3BvdmVyVHJpZ2dlcikge1xuICAgICAgICAgICAgdGhpcy5wb3BvdmVyVHJpZ2dlci5jbG9zZVBvcG92ZXIoKTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxuXG59XG4iXX0=
@@ -0,0 +1,113 @@
1
+ var GIPICardComponent_1;
2
+ import { __decorate, __metadata } from "tslib";
3
+ import { ChangeDetectorRef, Component, ElementRef, forwardRef, Input, OnInit } from '@angular/core';
4
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
5
+ let nextUniqueId = 0;
6
+ let GIPICardComponent = GIPICardComponent_1 = class GIPICardComponent {
7
+ constructor(elementRef, _changeDetectorRef) {
8
+ this.elementRef = elementRef;
9
+ this._changeDetectorRef = _changeDetectorRef;
10
+ this._uniqueId = `gipi-card-${++nextUniqueId}`;
11
+ this._id = '';
12
+ this._name = '';
13
+ this._loading = false;
14
+ this._shadow = true;
15
+ this._padding = true;
16
+ }
17
+ get id() {
18
+ return this._id;
19
+ }
20
+ set id(value) {
21
+ this._id = value || this._uniqueId;
22
+ }
23
+ get name() {
24
+ return this._name;
25
+ }
26
+ set name(value) {
27
+ this._name = value || this._uniqueId;
28
+ }
29
+ get loading() {
30
+ return this._loading;
31
+ }
32
+ set loading(value) {
33
+ if (value !== this.loading) {
34
+ this._loading = value;
35
+ this._changeDetectorRef.markForCheck();
36
+ }
37
+ }
38
+ get shadow() {
39
+ return this._shadow;
40
+ }
41
+ set shadow(value) {
42
+ if (value !== this.shadow) {
43
+ this._shadow = value;
44
+ this._changeDetectorRef.markForCheck();
45
+ }
46
+ }
47
+ get padding() {
48
+ return this._padding;
49
+ }
50
+ set padding(value) {
51
+ if (value !== this.padding) {
52
+ this._padding = value;
53
+ this._changeDetectorRef.markForCheck();
54
+ }
55
+ }
56
+ ngOnInit() { }
57
+ };
58
+ GIPICardComponent.ctorParameters = () => [
59
+ { type: ElementRef },
60
+ { type: ChangeDetectorRef }
61
+ ];
62
+ __decorate([
63
+ Input(),
64
+ __metadata("design:type", String),
65
+ __metadata("design:paramtypes", [String])
66
+ ], GIPICardComponent.prototype, "id", null);
67
+ __decorate([
68
+ Input(),
69
+ __metadata("design:type", String),
70
+ __metadata("design:paramtypes", [String])
71
+ ], GIPICardComponent.prototype, "name", null);
72
+ __decorate([
73
+ Input(),
74
+ __metadata("design:type", Boolean),
75
+ __metadata("design:paramtypes", [Boolean])
76
+ ], GIPICardComponent.prototype, "loading", null);
77
+ __decorate([
78
+ Input(),
79
+ __metadata("design:type", Boolean),
80
+ __metadata("design:paramtypes", [Boolean])
81
+ ], GIPICardComponent.prototype, "shadow", null);
82
+ __decorate([
83
+ Input(),
84
+ __metadata("design:type", Boolean),
85
+ __metadata("design:paramtypes", [Boolean])
86
+ ], GIPICardComponent.prototype, "padding", null);
87
+ GIPICardComponent = GIPICardComponent_1 = __decorate([
88
+ Component({
89
+ selector: 'gipi-card',
90
+ exportAs: 'gipiCard',
91
+ template: "<ng-content></ng-content>",
92
+ providers: [
93
+ {
94
+ provide: NG_VALUE_ACCESSOR,
95
+ useExisting: forwardRef(() => GIPICardComponent_1),
96
+ multi: true
97
+ }
98
+ ],
99
+ host: {
100
+ 'class': 'gipi-card',
101
+ '[attr.id]': 'id',
102
+ '[attr.name]': 'name',
103
+ '[class.shadow-none]': '!shadow',
104
+ '[class.padding-none]': '!padding',
105
+ '[class.loading]': 'loading',
106
+ },
107
+ styles: [":host{display:block;flex:1;border-radius:.2rem;box-shadow:0 3px 1px -2px rgba(0,0,0,.14),0 2px 2px 0 rgba(0,0,0,.098),0 1px 5px 0 rgba(0,0,0,.084);padding:1.6rem}.padding-none{padding:0!important}.shadow-none{box-shadow:none!important}"]
108
+ }),
109
+ __metadata("design:paramtypes", [ElementRef,
110
+ ChangeDetectorRef])
111
+ ], GIPICardComponent);
112
+ export { GIPICardComponent };
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ2lwaXNpc3RlbWFzL25nLWNvcmUvIiwic291cmNlcyI6WyJzaGFyZWQvZ2lwaS1jb21wb25lbnRzL2NhcmQvY2FyZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRCxJQUFJLFlBQVksR0FBVyxDQUFDLENBQUM7QUF1QjdCLElBQWEsaUJBQWlCLHlCQUE5QixNQUFhLGlCQUFpQjtJQXFEMUIsWUFDVyxVQUFzQixFQUNyQixrQkFBcUM7UUFEdEMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUNyQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBckR2QyxjQUFTLEdBQVcsYUFBYSxFQUFFLFlBQVksRUFBRSxDQUFDO1FBRXBELFFBQUcsR0FBVyxFQUFFLENBQUM7UUFRakIsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQVFuQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBVzFCLFlBQU8sR0FBWSxJQUFJLENBQUM7UUFXeEIsYUFBUSxHQUFZLElBQUksQ0FBQztJQWM3QixDQUFDO0lBbkRJLElBQUksRUFBRTtRQUNYLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNwQixDQUFDO0lBQ0QsSUFBSSxFQUFFLENBQUMsS0FBYTtRQUNoQixJQUFJLENBQUMsR0FBRyxHQUFHLEtBQUssSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3ZDLENBQUM7SUFHUSxJQUFJLElBQUk7UUFDYixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUNELElBQUksSUFBSSxDQUFDLEtBQWE7UUFDbEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN6QyxDQUFDO0lBR1EsSUFBSSxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBQ0QsSUFBSSxPQUFPLENBQUMsS0FBYztRQUN0QixJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUMxQztJQUNMLENBQUM7SUFHUSxJQUFJLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUNELElBQUksTUFBTSxDQUFDLEtBQWM7UUFDckIsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNyQixJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDMUM7SUFDTCxDQUFDO0lBR1EsSUFBSSxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBQ0QsSUFBSSxPQUFPLENBQUMsS0FBYztRQUN0QixJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUMxQztJQUNMLENBQUM7SUFPRCxRQUFRLEtBQVcsQ0FBQztDQUV2QixDQUFBOztZQU4wQixVQUFVO1lBQ0QsaUJBQWlCOztBQWxEeEM7SUFBUixLQUFLLEVBQUU7OzsyQ0FFUDtBQU1RO0lBQVIsS0FBSyxFQUFFOzs7NkNBRVA7QUFNUTtJQUFSLEtBQUssRUFBRTs7O2dEQUVQO0FBU1E7SUFBUixLQUFLLEVBQUU7OzsrQ0FFUDtBQVNRO0lBQVIsS0FBSyxFQUFFOzs7Z0RBRVA7QUE3Q1EsaUJBQWlCO0lBckI3QixTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUUsV0FBVztRQUNyQixRQUFRLEVBQUUsVUFBVTtRQUNwQixxQ0FBb0M7UUFFcEMsU0FBUyxFQUFFO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxtQkFBaUIsQ0FBQztnQkFDaEQsS0FBSyxFQUFFLElBQUk7YUFDZDtTQUNKO1FBQ0QsSUFBSSxFQUFFO1lBQ0YsT0FBTyxFQUFFLFdBQVc7WUFDcEIsV0FBVyxFQUFFLElBQUk7WUFDakIsYUFBYSxFQUFFLE1BQU07WUFDckIscUJBQXFCLEVBQUUsU0FBUztZQUNoQyxzQkFBc0IsRUFBRSxVQUFVO1lBQ2xDLGlCQUFpQixFQUFFLFNBQVM7U0FDL0I7O0tBQ0osQ0FBQztxQ0F1RHlCLFVBQVU7UUFDRCxpQkFBaUI7R0F2RHhDLGlCQUFpQixDQTREN0I7U0E1RFksaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgZm9yd2FyZFJlZiwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmxldCBuZXh0VW5pcXVlSWQ6IG51bWJlciA9IDA7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZ2lwaS1jYXJkJyxcbiAgICBleHBvcnRBczogJ2dpcGlDYXJkJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY2FyZC5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEdJUElDYXJkQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ2NsYXNzJzogJ2dpcGktY2FyZCcsXG4gICAgICAgICdbYXR0ci5pZF0nOiAnaWQnLFxuICAgICAgICAnW2F0dHIubmFtZV0nOiAnbmFtZScsXG4gICAgICAgICdbY2xhc3Muc2hhZG93LW5vbmVdJzogJyFzaGFkb3cnLFxuICAgICAgICAnW2NsYXNzLnBhZGRpbmctbm9uZV0nOiAnIXBhZGRpbmcnLFxuICAgICAgICAnW2NsYXNzLmxvYWRpbmddJzogJ2xvYWRpbmcnLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIEdJUElDYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICAgIHByb3RlY3RlZCBfdW5pcXVlSWQ6IHN0cmluZyA9IGBnaXBpLWNhcmQtJHsrK25leHRVbmlxdWVJZH1gO1xuXG4gICAgcHJpdmF0ZSBfaWQ6IHN0cmluZyA9ICcnO1xuICAgIEBJbnB1dCgpIGdldCBpZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5faWQ7XG4gICAgfVxuICAgIHNldCBpZCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX2lkID0gdmFsdWUgfHwgdGhpcy5fdW5pcXVlSWQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfbmFtZTogc3RyaW5nID0gJyc7XG4gICAgQElucHV0KCkgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX25hbWU7XG4gICAgfVxuICAgIHNldCBuYW1lKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fbmFtZSA9IHZhbHVlIHx8IHRoaXMuX3VuaXF1ZUlkO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBnZXQgbG9hZGluZygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xvYWRpbmc7XG4gICAgfVxuICAgIHNldCBsb2FkaW5nKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIGlmICh2YWx1ZSAhPT0gdGhpcy5sb2FkaW5nKSB7XG4gICAgICAgICAgICB0aGlzLl9sb2FkaW5nID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX3NoYWRvdzogYm9vbGVhbiA9IHRydWU7XG4gICAgQElucHV0KCkgZ2V0IHNoYWRvdygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NoYWRvdztcbiAgICB9XG4gICAgc2V0IHNoYWRvdyh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICBpZiAodmFsdWUgIT09IHRoaXMuc2hhZG93KSB7XG4gICAgICAgICAgICB0aGlzLl9zaGFkb3cgPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcGFkZGluZzogYm9vbGVhbiA9IHRydWU7XG4gICAgQElucHV0KCkgZ2V0IHBhZGRpbmcoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wYWRkaW5nO1xuICAgIH1cbiAgICBzZXQgcGFkZGluZyh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICBpZiAodmFsdWUgIT09IHRoaXMucGFkZGluZykge1xuICAgICAgICAgICAgdGhpcy5fcGFkZGluZyA9IHZhbHVlO1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICApIHsgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7IH1cblxufVxuIl19
@@ -3,6 +3,7 @@ import { __decorate, __metadata } from "tslib";
3
3
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
4
4
  import { ChangeDetectorRef, Component, ElementRef, forwardRef, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';
5
5
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
6
+ import { ObjectUtil } from './../../../../core/utils/object.util';
6
7
  import * as moment_ from 'moment';
7
8
  const moment = moment_;
8
9
  import { BrowserUtil } from '../../../../core/utils/browser.util';
@@ -32,14 +33,18 @@ let DatepickerComponent = DatepickerComponent_1 = class DatepickerComponent {
32
33
  }
33
34
  set minDate(value) {
34
35
  this._minDate = value;
35
- this._minDate.setHours(0, 0, 0, 0);
36
+ if (!ObjectUtil.isNull(value)) {
37
+ this._minDate.setHours(0, 0, 0, 0);
38
+ }
36
39
  }
37
40
  get maxDate() {
38
41
  return this._maxDate;
39
42
  }
40
43
  set maxDate(value) {
41
44
  this._maxDate = value;
42
- this._maxDate.setHours(0, 0, 0, 0);
45
+ if (!ObjectUtil.isNull(value)) {
46
+ this._maxDate.setHours(0, 0, 0, 0);
47
+ }
43
48
  }
44
49
  get required() {
45
50
  return this._required;
@@ -215,4 +220,4 @@ DatepickerComponent = DatepickerComponent_1 = __decorate([
215
220
  ChangeDetectorRef])
216
221
  ], DatepickerComponent);
217
222
  export { DatepickerComponent };
218
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ2lwaXNpc3RlbWFzL25nLWNvcmUvIiwic291cmNlcyI6WyJzaGFyZWQvZ2lwaS1jb21wb25lbnRzL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci9kYXRlcGlja2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUgsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpFLE9BQU8sS0FBSyxPQUFPLE1BQU0sUUFBUSxDQUFDO0FBQ2xDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQztBQUV2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDbEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRTVELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRTFFLElBQUksWUFBWSxHQUFHLENBQUMsQ0FBQztBQWtCckIsSUFBYSxtQkFBbUIsMkJBQWhDLE1BQWEsbUJBQW1CO0lBb0Y1QixZQUNXLFVBQXNCLEVBQ3JCLGtCQUFxQztRQUR0QyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3JCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFsRnpDLFVBQUssR0FBVyxtQkFBbUIsWUFBWSxFQUFFLEVBQUUsQ0FBQztRQUVuRCxPQUFFLEdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxPQUFPLENBQUM7UUFFbEMsU0FBSSxHQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssT0FBTyxDQUFDO1FBRXBDLFVB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QUFDOzhCQUdNLElBQUk7cUNBQUosSUFBSTtrREFEdEI7QUFPYTtJQUFiLEtBQUssQ0FBQyxLQUFLLENBQUM7OEJBR00sSUFBSTtxQ0FBSixJQUFJO2tEQUR0QjtBQU9RO0lBQVIsS0FBSyxFQUFFOzs7bURBRVA7QUFNUTtJQUFSLEtBQUssRUFBRTs7O21EQUVQO0FBTVE7SUFBUixLQUFLLEVBQUU7OzttREFFUDtBQU1RO0lBQVIsS0FBSyxFQUFFOzs7cURBRVA7QUFNUTtJQUFSLEtBQUssRUFBRTs4QkFHUyxJQUFJO3FDQUFKLElBQUk7Z0RBRHBCO0FBckVRLG1CQUFtQjtJQWhCL0IsU0FBUyxDQUFDO1FBQ1AsUUFBUSxFQUFFLGlCQUFpQjtRQUMzQixRQUFRLEVBQUUsZ0JBQWdCO1FBQzFCLGs1Q0FBMEM7UUFFMUMsU0FBUyxFQUFFO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUErQixFQUFFLENBQUMscUJBQW1CLENBQUM7Z0JBQzlFLEtBQUssRUFBRSxJQUFJO2FBQ2Q7U0FDSjtRQUNELElBQUksRUFBRTtZQUNGLE9BQU8sRUFBRSxpQkFBaUI7U0FDN0I7O0tBQ0osQ0FBQztxQ0FzRnlCLFVBQVU7UUFDRCxpQkFBaUI7R0F0RnhDLG1CQUFtQixDQXVKL0I7U0F2SlksbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIGZvcndhcmRSZWYsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCAqIGFzIG1vbWVudF8gZnJvbSAnbW9tZW50JztcbmNvbnN0IG1vbWVudCA9IG1vbWVudF87XG5cbmltcG9ydCB7IEJyb3dzZXJVdGlsIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS91dGlscy9icm93c2VyLnV0aWwnO1xuaW1wb3J0IHsgRGF0ZVV0aWwgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3V0aWxzL2RhdGUudXRpbCc7XG5pbXBvcnQgeyBEYXRlRmlsdGVyRm4gfSBmcm9tICcuLi9tYXQtZGF0ZXBpY2tlci9kYXRlcGlja2VyLWlucHV0LWJhc2UnO1xuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlclRvZ2dsZSB9IGZyb20gJy4uL21hdC1kYXRlcGlja2VyL2RhdGVwaWNrZXItdG9nZ2xlJztcblxubGV0IG5leHRVbmlxdWVJZCA9IDA7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZ2lwaS1kYXRlcGlja2VyJyxcbiAgICBleHBvcnRBczogJ2dpcGlEYXRlUGlja2VyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZGF0ZXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpOiB0eXBlb2YgRGF0ZXBpY2tlckNvbXBvbmVudCA9PiBEYXRlcGlja2VyQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH0sXG4gICAgXSxcbiAgICBob3N0OiB7XG4gICAgICAgICdjbGFzcyc6ICdnaXBpLWRhdGVwaWNrZXInLFxuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgRGF0ZXBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG5cbiAgICBAVmlld0NoaWxkKE1hdERhdGVwaWNrZXJUb2dnbGUsIHsgc3RhdGljOiB0cnVlIH0pIG1hdERhdGVwaWNrZXJUb2dnbGVSZWY6IE1hdERhdGVwaWNrZXJUb2dnbGU8RGF0ZT47XG5cbiAgICBwcml2YXRlIF9uYW1lOiBzdHJpbmcgPSBgZ2lwaS1kYXRlLXJhbmdlLSR7bmV4dFVuaXF1ZUlkKyt9YDtcblxuICAgIEBJbnB1dCgpIGlkOiBzdHJpbmcgPSBgJHt0aGlzLl9uYW1lfS1kYXRlYDtcblxuICAgIEBJbnB1dCgpIG5hbWU6IHN0cmluZyA9IGAke3RoaXMuX25hbWV9LWRhdGVgO1xuXG4gICAgQElucHV0KCkgbGFiZWw6IHN0cmluZyA9ICcnO1xuXG4gICAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICdfXy9fXy9fX19fJztcblxuICAgIEBJbnB1dCgpIGhlbHA6IHN0cmluZyA9ICcnO1xuXG4gICAgcHJpdmF0ZSBfbWluRGF0ZTogRGF0ZSA9IG5ldyBEYXRlKCcwMS8wMS8yMDAwJyk7XG4gICAgQElucHV0KCdtaW4nKSBnZXQgbWluRGF0ZSgpOiBEYXRlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21pbkRhdGU7XG4gICAgfVxuICAgIHNldCBtaW5EYXRlKHZhbHVlOiBEYXRlKSB7XG4gICAgICAgIHRoaXMuX21pbkRhdGUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5fbWluRGF0ZS5zZXRIb3VycygwLCAwLCAwLCAwKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9tYXhEYXRlOiBEYXRlO1xuICAgIEBJbnB1dCgnbWF4JykgZ2V0IG1heERhdGUoKTogRGF0ZSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9tYXhEYXRlO1xuICAgIH1cbiAgICBzZXQgbWF4RGF0ZSh2YWx1ZTogRGF0ZSkge1xuICAgICAgICB0aGlzLl9tYXhEYXRlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuX21heERhdGUuc2V0SG91cnMoMCwgMCwgMCwgMCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBnZXQgcmVxdWlyZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXF1aXJlZDtcbiAgICB9XG4gICAgc2V0IHJlcXVpcmVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX3JlcXVpcmVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9yZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGdldCByZWFkb25seSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlYWRvbmx5O1xuICAgIH1cbiAgICBzZXQgcmVhZG9ubHkodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fcmVhZG9ubHkgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gICAgfVxuICAgIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZGF0ZUZpbHRlcjogRGF0ZUZpbHRlckZuPERhdGU+ID0gbnVsbDtcbiAgICBASW5wdXQoKSBnZXQgZGF0ZUZpbHRlcigpOiBEYXRlRmlsdGVyRm48RGF0ZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGF0ZUZpbHRlcjtcbiAgICB9XG4gICAgc2V0IGRhdGVGaWx0ZXIodmFsdWU6IERhdGVGaWx0ZXJGbjxEYXRlPikge1xuICAgICAgICB0aGlzLl9kYXRlRmlsdGVyID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdmFsdWU6IERhdGU7XG4gICAgQElucHV0KCkgZ2V0IHZhbHVlKCk6IERhdGUge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gICAgfVxuICAgIHNldCB2YWx1ZSh2YWx1ZTogRGF0ZSkge1xuICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuX3ZhbHVlKTtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQodGhpcy5fdmFsdWUpO1xuICAgIH1cblxuICAgIG9uQ2hhbmdlOiBGdW5jdGlvbiA9ICgpID0+IHsgfTtcblxuICAgIG9uVG91Y2hlZDogRnVuY3Rpb24gPSAoKSA9PiB7IH07XG5cbiAgICBwdWJsaWMgZ2V0IGZvcm1hdHRlZFZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICApIHsgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7IH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQgeyB9XG5cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBEYXRlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBGdW5jdGlvbik6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IEZ1bmN0aW9uKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uSW5wdXRDb250ZW50Q2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnJlYWRvbmx5IHx8ICF0aGlzLm1hdERhdGVwaWNrZXJUb2dnbGVSZWYpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZW5lcmF0ZWREYXRlKHZhbHVlRGF0ZTogc3RyaW5nLCBrZXlVcDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpZiAoIWtleVVwICYmIEJyb3dzZXJVdGlsLmdldEJyb3dzZXIoKSA9PT0gJ0ZpcmVmb3gnKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgbWF0Y2ggPSBmYWxzZTtcbiAgICAgICAgaWYgKHZhbHVlRGF0ZS5pbmNsdWRlcygnLycpICYmICgha2V5VXAgfHwgdmFsdWVEYXRlLmxlbmd0aCA9PT0gMTApKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gbW9tZW50KHZhbHVlRGF0ZSwgJ0REL01NL1lZWVknKS50b0RhdGUoKTtcbiAgICAgICAgICAgIG1hdGNoID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIGlmICghdmFsdWVEYXRlLmluY2x1ZGVzKCcvJykgJiYgKCFrZXlVcCB8fCB2YWx1ZURhdGUubGVuZ3RoID09PSA4KSkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IG1vbWVudCh2YWx1ZURhdGUsICdERE1NWVlZWScpLnRvRGF0ZSgpO1xuICAgICAgICAgICAgbWF0Y2ggPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKEJyb3dzZXJVdGlsLmdldEJyb3dzZXIoKSAhPT0gJ0ZpcmVmb3gnKSB7XG4gICAgICAgICAgICBpZiAobWF0Y2ggJiYgIURhdGVVdGlsLmlzVmFsaWQodGhpcy52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKG1hdGNoICYmICF0aGlzLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyB2YWxpZGF0ZU1pbkFuZE1heERhdGUodmFsdWVEYXRlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZGF0ZUlucHV0ID0gbW9tZW50KHZhbHVlRGF0ZSwgJ0REL01NL1lZWVknKS50b0RhdGUoKTtcbiAgICAgICAgaWYgKERhdGVVdGlsLmlzTGVzc1RoYW4oZGF0ZUlucHV0LCB0aGlzLm1pbkRhdGUpKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gdW5kZWZpbmVkO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMubWF4RGF0ZSkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IChEYXRlVXRpbC5pc0dyZWF0ZXJUaGFuKGRhdGVJbnB1dCwgdGhpcy5tYXhEYXRlKSA/IHVuZGVmaW5lZCA6IGRhdGVJbnB1dCk7XG4gICAgICAgIH1cbiAgICB9XG5cbn1cbiJdfQ==
223
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ2lwaXNpc3RlbWFzL25nLWNvcmUvIiwic291cmNlcyI6WyJzaGFyZWQvZ2lwaS1jb21wb25lbnRzL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci9kYXRlcGlja2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUgsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUVsRSxPQUFPLEtBQUssT0FBTyxNQUFNLFFBQVEsQ0FBQztBQUNsQyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUM7QUFFdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUU1RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUUxRSxJQUFJLFlBQVksR0FBRyxDQUFDLENBQUM7QUFrQnJCLElBQWEsbUJBQW1CLDJCQUFoQyxNQUFhLG1CQUFtQjtJQXdGNUIsWUFDVyxVQUFzQixFQUNyQixrQkFBcUM7UUFEdEMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUNyQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBdEZ6QyxVQUFLLEdBQVcsbUJBQW1CLFlBQVksRUFBRSxFQUFFLENBQUM7UUFFbkQsT0FBRSxHQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssT0FBTyxDQUFDO1FBRWxDLFNBQUks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RUFBRTs7K0NBQW1DO0FBRWxDO0lBQVIsS0FBSyxFQUFFOztpREFBcUM7QUFFcEM7SUFBUixLQUFLLEVBQUU7O2tEQUFvQjtBQUVuQjtJQUFSLEtBQUssRUFBRTs7d0RBQW9DO0FBRW5DO0lBQVIsS0FBSyxFQUFFOztpREFBbUI7QUFHYjtJQUFiLEtBQUssQ0FBQyxLQUFLLENBQUM7OEJBR00sSUFBSTtxQ0FBSixJQUFJO2tEQUR0QjtBQVNhO0lBQWIsS0FBSyxDQUFDLEtBQUssQ0FBQzs4QkFHTSxJQUFJO3FDQUFKLElBQUk7a0RBRHRCO0FBU1E7SUFBUixLQUFLLEVBQUU7OzttREFFUDtBQU1RO0lBQVIsS0FBSyxFQUFFOzs7bURBRVA7QUFNUTtJQUFSLEtBQUssRUFBRTs7O21EQUVQO0FBTVE7SUFBUixLQUFLLEVBQUU7OztxREFFUDtBQU1RO0lBQVIsS0FBSyxFQUFFOzhCQUdTLElBQUk7cUNBQUosSUFBSTtnREFEcEI7QUF6RVEsbUJBQW1CO0lBaEIvQixTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUUsaUJBQWlCO1FBQzNCLFFBQVEsRUFBRSxnQkFBZ0I7UUFDMUIsazVDQUEwQztRQUUxQyxTQUFTLEVBQUU7WUFDUDtnQkFDSSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQStCLEVBQUUsQ0FBQyxxQkFBbUIsQ0FBQztnQkFDOUUsS0FBSyxFQUFFLElBQUk7YUFDZDtTQUNKO1FBQ0QsSUFBSSxFQUFFO1lBQ0YsT0FBTyxFQUFFLGlCQUFpQjtTQUM3Qjs7S0FDSixDQUFDO3FDQTBGeUIsVUFBVTtRQUNELGlCQUFpQjtHQTFGeEMsbUJBQW1CLENBMkovQjtTQTNKWSxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgZm9yd2FyZFJlZiwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE9iamVjdFV0aWwgfSBmcm9tICcuLy4uLy4uLy4uLy4uL2NvcmUvdXRpbHMvb2JqZWN0LnV0aWwnO1xuXG5pbXBvcnQgKiBhcyBtb21lbnRfIGZyb20gJ21vbWVudCc7XG5jb25zdCBtb21lbnQgPSBtb21lbnRfO1xuXG5pbXBvcnQgeyBCcm93c2VyVXRpbCB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvdXRpbHMvYnJvd3Nlci51dGlsJztcbmltcG9ydCB7IERhdGVVdGlsIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS91dGlscy9kYXRlLnV0aWwnO1xuaW1wb3J0IHsgRGF0ZUZpbHRlckZuIH0gZnJvbSAnLi4vbWF0LWRhdGVwaWNrZXIvZGF0ZXBpY2tlci1pbnB1dC1iYXNlJztcbmltcG9ydCB7IE1hdERhdGVwaWNrZXJUb2dnbGUgfSBmcm9tICcuLi9tYXQtZGF0ZXBpY2tlci9kYXRlcGlja2VyLXRvZ2dsZSc7XG5cbmxldCBuZXh0VW5pcXVlSWQgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2dpcGktZGF0ZXBpY2tlcicsXG4gICAgZXhwb3J0QXM6ICdnaXBpRGF0ZVBpY2tlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RhdGVwaWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RhdGVwaWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKTogdHlwZW9mIERhdGVwaWNrZXJDb21wb25lbnQgPT4gRGF0ZXBpY2tlckNvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9LFxuICAgIF0sXG4gICAgaG9zdDoge1xuICAgICAgICAnY2xhc3MnOiAnZ2lwaS1kYXRlcGlja2VyJyxcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIERhdGVwaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuXG4gICAgQFZpZXdDaGlsZChNYXREYXRlcGlja2VyVG9nZ2xlLCB7IHN0YXRpYzogdHJ1ZSB9KSBtYXREYXRlcGlja2VyVG9nZ2xlUmVmOiBNYXREYXRlcGlja2VyVG9nZ2xlPERhdGU+O1xuXG4gICAgcHJpdmF0ZSBfbmFtZTogc3RyaW5nID0gYGdpcGktZGF0ZS1yYW5nZS0ke25leHRVbmlxdWVJZCsrfWA7XG5cbiAgICBASW5wdXQoKSBpZDogc3RyaW5nID0gYCR7dGhpcy5fbmFtZX0tZGF0ZWA7XG5cbiAgICBASW5wdXQoKSBuYW1lOiBzdHJpbmcgPSBgJHt0aGlzLl9uYW1lfS1kYXRlYDtcblxuICAgIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgPSAnJztcblxuICAgIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnX18vX18vX19fXyc7XG5cbiAgICBASW5wdXQoKSBoZWxwOiBzdHJpbmcgPSAnJztcblxuICAgIHByaXZhdGUgX21pbkRhdGU6IERhdGUgPSBuZXcgRGF0ZSgnMDEvMDEvMjAwMCcpO1xuICAgIEBJbnB1dCgnbWluJykgZ2V0IG1pbkRhdGUoKTogRGF0ZSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9taW5EYXRlO1xuICAgIH1cbiAgICBzZXQgbWluRGF0ZSh2YWx1ZTogRGF0ZSkge1xuICAgICAgICB0aGlzLl9taW5EYXRlID0gdmFsdWU7XG4gICAgICAgIGlmICghT2JqZWN0VXRpbC5pc051bGwodmFsdWUpKSB7XG4gICAgICAgICAgICB0aGlzLl9taW5EYXRlLnNldEhvdXJzKDAsIDAsIDAsIDApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfbWF4RGF0ZTogRGF0ZTtcbiAgICBASW5wdXQoJ21heCcpIGdldCBtYXhEYXRlKCk6IERhdGUge1xuICAgICAgICByZXR1cm4gdGhpcy5fbWF4RGF0ZTtcbiAgICB9XG4gICAgc2V0IG1heERhdGUodmFsdWU6IERhdGUpIHtcbiAgICAgICAgdGhpcy5fbWF4RGF0ZSA9IHZhbHVlO1xuICAgICAgICBpZiAoIU9iamVjdFV0aWwuaXNOdWxsKHZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy5fbWF4RGF0ZS5zZXRIb3VycygwLCAwLCAwLCAwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX3JlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVxdWlyZWQ7XG4gICAgfVxuICAgIHNldCByZXF1aXJlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9yZXF1aXJlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcmVhZG9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBnZXQgcmVhZG9ubHkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZWFkb25seTtcbiAgICB9XG4gICAgc2V0IHJlYWRvbmx5KHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX3JlYWRvbmx5ID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9kaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICAgIH1cbiAgICBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2RhdGVGaWx0ZXI6IERhdGVGaWx0ZXJGbjxEYXRlPiA9IG51bGw7XG4gICAgQElucHV0KCkgZ2V0IGRhdGVGaWx0ZXIoKTogRGF0ZUZpbHRlckZuPERhdGU+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGVGaWx0ZXI7XG4gICAgfVxuICAgIHNldCBkYXRlRmlsdGVyKHZhbHVlOiBEYXRlRmlsdGVyRm48RGF0ZT4pIHtcbiAgICAgICAgdGhpcy5fZGF0ZUZpbHRlciA9IHZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3ZhbHVlOiBEYXRlO1xuICAgIEBJbnB1dCgpIGdldCB2YWx1ZSgpOiBEYXRlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICAgIH1cbiAgICBzZXQgdmFsdWUodmFsdWU6IERhdGUpIHtcbiAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLl92YWx1ZSk7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkKHRoaXMuX3ZhbHVlKTtcbiAgICB9XG5cbiAgICBvbkNoYW5nZTogRnVuY3Rpb24gPSAoKSA9PiB7IH07XG5cbiAgICBvblRvdWNoZWQ6IEZ1bmN0aW9uID0gKCkgPT4geyB9O1xuXG4gICAgcHVibGljIGdldCBmb3JtYXR0ZWRWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgKSB7IH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQgeyB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHsgfVxuXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogRGF0ZSk6IHZvaWQge1xuICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogRnVuY3Rpb24pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBGdW5jdGlvbik6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbklucHV0Q29udGVudENsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5yZWFkb25seSB8fCAhdGhpcy5tYXREYXRlcGlja2VyVG9nZ2xlUmVmKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2VuZXJhdGVkRGF0ZSh2YWx1ZURhdGU6IHN0cmluZywga2V5VXA6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKCFrZXlVcCAmJiBCcm93c2VyVXRpbC5nZXRCcm93c2VyKCkgPT09ICdGaXJlZm94Jykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IG1hdGNoID0gZmFsc2U7XG4gICAgICAgIGlmICh2YWx1ZURhdGUuaW5jbHVkZXMoJy8nKSAmJiAoIWtleVVwIHx8IHZhbHVlRGF0ZS5sZW5ndGggPT09IDEwKSkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IG1vbWVudCh2YWx1ZURhdGUsICdERC9NTS9ZWVlZJykudG9EYXRlKCk7XG4gICAgICAgICAgICBtYXRjaCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAoIXZhbHVlRGF0ZS5pbmNsdWRlcygnLycpICYmICgha2V5VXAgfHwgdmFsdWVEYXRlLmxlbmd0aCA9PT0gOCkpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBtb21lbnQodmFsdWVEYXRlLCAnRERNTVlZWVknKS50b0RhdGUoKTtcbiAgICAgICAgICAgIG1hdGNoID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChCcm93c2VyVXRpbC5nZXRCcm93c2VyKCkgIT09ICdGaXJlZm94Jykge1xuICAgICAgICAgICAgaWYgKG1hdGNoICYmICFEYXRlVXRpbC5pc1ZhbGlkKHRoaXMudmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChtYXRjaCAmJiAhdGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgdmFsaWRhdGVNaW5BbmRNYXhEYXRlKHZhbHVlRGF0ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGRhdGVJbnB1dCA9IG1vbWVudCh2YWx1ZURhdGUsICdERC9NTS9ZWVlZJykudG9EYXRlKCk7XG4gICAgICAgIGlmIChEYXRlVXRpbC5pc0xlc3NUaGFuKGRhdGVJbnB1dCwgdGhpcy5taW5EYXRlKSkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLm1heERhdGUpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSAoRGF0ZVV0aWwuaXNHcmVhdGVyVGhhbihkYXRlSW5wdXQsIHRoaXMubWF4RGF0ZSkgPyB1bmRlZmluZWQgOiBkYXRlSW5wdXQpO1xuICAgICAgICB9XG4gICAgfVxuXG59XG4iXX0=
@@ -0,0 +1,30 @@
1
+ var GIPIEmptyStateComponent_1;
2
+ import { __decorate, __metadata } from "tslib";
3
+ import { ChangeDetectionStrategy, Component, forwardRef } from '@angular/core';
4
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
5
+ let GIPIEmptyStateComponent = GIPIEmptyStateComponent_1 = class GIPIEmptyStateComponent {
6
+ constructor() { }
7
+ ngOnInit() { }
8
+ };
9
+ GIPIEmptyStateComponent = GIPIEmptyStateComponent_1 = __decorate([
10
+ Component({
11
+ selector: 'gipi-empty-state',
12
+ exportAs: 'gipiEmptyState',
13
+ template: "<mat-icon>sentiment_very_dissatisfied</mat-icon>\nNenhum registro foi encontrado",
14
+ providers: [
15
+ {
16
+ provide: NG_VALUE_ACCESSOR,
17
+ useExisting: forwardRef(() => GIPIEmptyStateComponent_1),
18
+ multi: true
19
+ }
20
+ ],
21
+ host: {
22
+ 'class': 'gipi-empty-state',
23
+ },
24
+ changeDetection: ChangeDetectionStrategy.OnPush,
25
+ styles: [":host{display:flex;align-items:center;justify-content:center;flex-direction:column;font-size:1.4rem;font-weight:600;color:#131313;padding:2.4rem 0}:host>mat-icon{font-size:3.2rem;height:3.2rem;width:3.2rem;margin-bottom:5px}"]
26
+ }),
27
+ __metadata("design:paramtypes", [])
28
+ ], GIPIEmptyStateComponent);
29
+ export { GIPIEmptyStateComponent };
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wdHktc3RhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGdpcGlzaXN0ZW1hcy9uZy1jb3JlLyIsInNvdXJjZXMiOlsic2hhcmVkL2dpcGktY29tcG9uZW50cy9lbXB0eS1zdGF0ZS9lbXB0eS1zdGF0ZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQW1CbkQsSUFBYSx1QkFBdUIsK0JBQXBDLE1BQWEsdUJBQXVCO0lBRWhDLGdCQUFnQixDQUFDO0lBRWpCLFFBQVEsS0FBVyxDQUFDO0NBRXZCLENBQUE7QUFOWSx1QkFBdUI7SUFqQm5DLFNBQVMsQ0FBQztRQUNQLFFBQVEsRUFBRSxrQkFBa0I7UUFDNUIsUUFBUSxFQUFFLGdCQUFnQjtRQUMxQiw0RkFBMkM7UUFFM0MsU0FBUyxFQUFFO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx5QkFBdUIsQ0FBQztnQkFDdEQsS0FBSyxFQUFFLElBQUk7YUFDZDtTQUNKO1FBQ0QsSUFBSSxFQUFFO1lBQ0YsT0FBTyxFQUFFLGtCQUFrQjtTQUM5QjtRQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOztLQUNsRCxDQUFDOztHQUNXLHVCQUF1QixDQU1uQztTQU5ZLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGZvcndhcmRSZWYsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZ2lwaS1lbXB0eS1zdGF0ZScsXG4gICAgZXhwb3J0QXM6ICdnaXBpRW1wdHlTdGF0ZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2VtcHR5LXN0YXRlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9lbXB0eS1zdGF0ZS5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEdJUElFbXB0eVN0YXRlQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ2NsYXNzJzogJ2dpcGktZW1wdHktc3RhdGUnLFxuICAgIH0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgR0lQSUVtcHR5U3RhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgY29uc3RydWN0b3IoKSB7IH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQgeyB9XG5cbn1cbiJdfQ==