@rocketshow/designer 1.40.0 → 1.44.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (191) hide show
  1. package/fesm2022/rocketshow-designer.mjs +1389 -1148
  2. package/fesm2022/rocketshow-designer.mjs.map +1 -1
  3. package/index.d.ts +1676 -5
  4. package/package.json +2 -4
  5. package/rocketshow-designer-1.44.0.tgz +0 -0
  6. package/esm2022/lib/array-sort-pipe.mjs +0 -30
  7. package/esm2022/lib/designer.component.mjs +0 -672
  8. package/esm2022/lib/designer.module.mjs +0 -186
  9. package/esm2022/lib/designer.service.mjs +0 -14
  10. package/esm2022/lib/dropzone/dropzone.component.mjs +0 -93
  11. package/esm2022/lib/effect/effect-curve/effect-curve.component.mjs +0 -577
  12. package/esm2022/lib/effect/effect-pan-tilt/effect-pan-tilt.component.mjs +0 -36
  13. package/esm2022/lib/effect/effect.component.mjs +0 -174
  14. package/esm2022/lib/error-dialog/error-dialog.component.mjs +0 -75
  15. package/esm2022/lib/fixture/fixture-capability/fixture-capability-channel/fixture-capability-channel.component.mjs +0 -370
  16. package/esm2022/lib/fixture/fixture-capability/fixture-capability-color/fixture-capability-color.component.mjs +0 -147
  17. package/esm2022/lib/fixture/fixture-capability/fixture-capability-color-wheel/fixture-capability-color-wheel.component.mjs +0 -213
  18. package/esm2022/lib/fixture/fixture-capability/fixture-capability-dimmer/fixture-capability-dimmer.component.mjs +0 -78
  19. package/esm2022/lib/fixture/fixture-capability/fixture-capability-pan-tilt/fixture-capability-pan-tilt.component.mjs +0 -119
  20. package/esm2022/lib/fixture/fixture-capability/fixture-capability.component.mjs +0 -191
  21. package/esm2022/lib/fixture/fixture-channel/fixture-channel.component.mjs +0 -162
  22. package/esm2022/lib/fixture/fixture-settings/fixture-settings-position/fixture-settings-position.component.mjs +0 -365
  23. package/esm2022/lib/fixture/fixture-settings/fixture-settings-stage/fixture-settings-stage.component.mjs +0 -151
  24. package/esm2022/lib/fixture/fixture-settings/fixture-settings.component.mjs +0 -46
  25. package/esm2022/lib/fixture/fixture.component.mjs +0 -148
  26. package/esm2022/lib/fixture-pool/fixture-pool-create-from-file/fixture-pool-create-from-file.component.mjs +0 -145
  27. package/esm2022/lib/fixture-pool/fixture-pool.component.mjs +0 -641
  28. package/esm2022/lib/intro/intro.component.mjs +0 -95
  29. package/esm2022/lib/master-dimmer/master-dimmer.component.mjs +0 -66
  30. package/esm2022/lib/models/cached-fixture-capability.mjs +0 -9
  31. package/esm2022/lib/models/cached-fixture-channel.mjs +0 -7
  32. package/esm2022/lib/models/cached-fixture.mjs +0 -6
  33. package/esm2022/lib/models/color.mjs +0 -8
  34. package/esm2022/lib/models/composition.mjs +0 -46
  35. package/esm2022/lib/models/effect-curve-profile-channel.mjs +0 -15
  36. package/esm2022/lib/models/effect-curve.mjs +0 -69
  37. package/esm2022/lib/models/effect-pan-tilt.mjs +0 -19
  38. package/esm2022/lib/models/effect.mjs +0 -12
  39. package/esm2022/lib/models/fixture-capability-value.mjs +0 -15
  40. package/esm2022/lib/models/fixture-capability.mjs +0 -127
  41. package/esm2022/lib/models/fixture-channel-value.mjs +0 -11
  42. package/esm2022/lib/models/fixture-channel.mjs +0 -24
  43. package/esm2022/lib/models/fixture-matrix-pixel-group-constraints.mjs +0 -27
  44. package/esm2022/lib/models/fixture-matrix-pixel-group.mjs +0 -12
  45. package/esm2022/lib/models/fixture-matrix.mjs +0 -25
  46. package/esm2022/lib/models/fixture-mode-channel.mjs +0 -26
  47. package/esm2022/lib/models/fixture-mode.mjs +0 -17
  48. package/esm2022/lib/models/fixture-physical.mjs +0 -14
  49. package/esm2022/lib/models/fixture-profile.mjs +0 -85
  50. package/esm2022/lib/models/fixture-wheel-slot.mjs +0 -26
  51. package/esm2022/lib/models/fixture-wheel.mjs +0 -15
  52. package/esm2022/lib/models/fixture.mjs +0 -40
  53. package/esm2022/lib/models/preset-fixture.mjs +0 -10
  54. package/esm2022/lib/models/preset-region-scene.mjs +0 -8
  55. package/esm2022/lib/models/preset.mjs +0 -65
  56. package/esm2022/lib/models/project.mjs +0 -78
  57. package/esm2022/lib/models/scene-playback-region.mjs +0 -11
  58. package/esm2022/lib/models/scene.mjs +0 -27
  59. package/esm2022/lib/preset/preset-settings/preset-settings.component.mjs +0 -194
  60. package/esm2022/lib/preset/preset.component.mjs +0 -131
  61. package/esm2022/lib/preview/models/color-changer-3d.mjs +0 -52
  62. package/esm2022/lib/preview/models/fixture-3d.mjs +0 -260
  63. package/esm2022/lib/preview/models/moving-head-3d.mjs +0 -115
  64. package/esm2022/lib/preview/preview.component.mjs +0 -216
  65. package/esm2022/lib/project/project-browser/project-browser.component.mjs +0 -143
  66. package/esm2022/lib/project/project-import/project-import.component.mjs +0 -107
  67. package/esm2022/lib/project/project-save/project-save.component.mjs +0 -178
  68. package/esm2022/lib/project/project-share/project-share.component.mjs +0 -71
  69. package/esm2022/lib/scene/scene-settings/scene-settings.component.mjs +0 -146
  70. package/esm2022/lib/scene/scene.component.mjs +0 -110
  71. package/esm2022/lib/services/animation.service.mjs +0 -16
  72. package/esm2022/lib/services/config.service.mjs +0 -28
  73. package/esm2022/lib/services/effect.service.mjs +0 -14
  74. package/esm2022/lib/services/error-dialog.service.mjs +0 -39
  75. package/esm2022/lib/services/fixture-pool.service.mjs +0 -30
  76. package/esm2022/lib/services/fixture.service.mjs +0 -699
  77. package/esm2022/lib/services/hotkey-target-exclude.service.mjs +0 -24
  78. package/esm2022/lib/services/intro.service.mjs +0 -140
  79. package/esm2022/lib/services/preset.service.mjs +0 -450
  80. package/esm2022/lib/services/preview-mesh.service.mjs +0 -57
  81. package/esm2022/lib/services/preview.service.mjs +0 -481
  82. package/esm2022/lib/services/project-load.service.mjs +0 -206
  83. package/esm2022/lib/services/project.service.mjs +0 -93
  84. package/esm2022/lib/services/scene.service.mjs +0 -164
  85. package/esm2022/lib/services/timeline.service.mjs +0 -726
  86. package/esm2022/lib/services/user-ensure-login.service.mjs +0 -38
  87. package/esm2022/lib/services/user.service.mjs +0 -89
  88. package/esm2022/lib/services/uuid.service.mjs +0 -23
  89. package/esm2022/lib/services/warning-dialog.service.mjs +0 -38
  90. package/esm2022/lib/timeline/composition-settings/composition-settings.component.mjs +0 -304
  91. package/esm2022/lib/timeline/timeline-grid/timeline-grid.component.mjs +0 -216
  92. package/esm2022/lib/timeline/timeline.component.mjs +0 -418
  93. package/esm2022/lib/user/user-login/user-login.component.mjs +0 -144
  94. package/esm2022/lib/user/user-register/user-register.component.mjs +0 -220
  95. package/esm2022/lib/wait-dialog/wait-dialog.component.mjs +0 -26
  96. package/esm2022/lib/warning-dialog/warning-dialog.component.mjs +0 -68
  97. package/esm2022/public_api.mjs +0 -7
  98. package/esm2022/rocketshow-designer.mjs +0 -5
  99. package/lib/array-sort-pipe.d.ts +0 -7
  100. package/lib/designer.component.d.ts +0 -73
  101. package/lib/designer.module.d.ts +0 -57
  102. package/lib/designer.service.d.ts +0 -6
  103. package/lib/dropzone/dropzone.component.d.ts +0 -24
  104. package/lib/effect/effect-curve/effect-curve.component.d.ts +0 -59
  105. package/lib/effect/effect-pan-tilt/effect-pan-tilt.component.d.ts +0 -15
  106. package/lib/effect/effect.component.d.ts +0 -22
  107. package/lib/error-dialog/error-dialog.component.d.ts +0 -17
  108. package/lib/fixture/fixture-capability/fixture-capability-channel/fixture-capability-channel.component.d.ts +0 -41
  109. package/lib/fixture/fixture-capability/fixture-capability-color/fixture-capability-color.component.d.ts +0 -26
  110. package/lib/fixture/fixture-capability/fixture-capability-color-wheel/fixture-capability-color-wheel.component.d.ts +0 -34
  111. package/lib/fixture/fixture-capability/fixture-capability-dimmer/fixture-capability-dimmer.component.d.ts +0 -15
  112. package/lib/fixture/fixture-capability/fixture-capability-pan-tilt/fixture-capability-pan-tilt.component.d.ts +0 -18
  113. package/lib/fixture/fixture-capability/fixture-capability.component.d.ts +0 -31
  114. package/lib/fixture/fixture-channel/fixture-channel.component.d.ts +0 -25
  115. package/lib/fixture/fixture-settings/fixture-settings-position/fixture-settings-position.component.d.ts +0 -32
  116. package/lib/fixture/fixture-settings/fixture-settings-stage/fixture-settings-stage.component.d.ts +0 -14
  117. package/lib/fixture/fixture-settings/fixture-settings.component.d.ts +0 -14
  118. package/lib/fixture/fixture.component.d.ts +0 -25
  119. package/lib/fixture-pool/fixture-pool-create-from-file/fixture-pool-create-from-file.component.d.ts +0 -28
  120. package/lib/fixture-pool/fixture-pool.component.d.ts +0 -62
  121. package/lib/intro/intro.component.d.ts +0 -11
  122. package/lib/master-dimmer/master-dimmer.component.d.ts +0 -15
  123. package/lib/models/cached-fixture-capability.d.ts +0 -11
  124. package/lib/models/cached-fixture-channel.d.ts +0 -11
  125. package/lib/models/cached-fixture.d.ts +0 -11
  126. package/lib/models/color.d.ts +0 -6
  127. package/lib/models/composition.d.ts +0 -19
  128. package/lib/models/effect-curve-profile-channel.d.ts +0 -5
  129. package/lib/models/effect-curve.d.ts +0 -15
  130. package/lib/models/effect-pan-tilt.d.ts +0 -6
  131. package/lib/models/effect.d.ts +0 -6
  132. package/lib/models/fixture-capability-value.d.ts +0 -10
  133. package/lib/models/fixture-capability.d.ts +0 -117
  134. package/lib/models/fixture-channel-value.d.ts +0 -6
  135. package/lib/models/fixture-channel.d.ts +0 -9
  136. package/lib/models/fixture-matrix-pixel-group-constraints.d.ts +0 -8
  137. package/lib/models/fixture-matrix-pixel-group.d.ts +0 -6
  138. package/lib/models/fixture-matrix.d.ts +0 -6
  139. package/lib/models/fixture-mode-channel.d.ts +0 -8
  140. package/lib/models/fixture-mode.d.ts +0 -8
  141. package/lib/models/fixture-physical.d.ts +0 -4
  142. package/lib/models/fixture-profile.d.ts +0 -39
  143. package/lib/models/fixture-wheel-slot.d.ts +0 -17
  144. package/lib/models/fixture-wheel.d.ts +0 -5
  145. package/lib/models/fixture.d.ts +0 -23
  146. package/lib/models/preset-fixture.d.ts +0 -5
  147. package/lib/models/preset-region-scene.d.ts +0 -9
  148. package/lib/models/preset.d.ts +0 -20
  149. package/lib/models/project.d.ts +0 -31
  150. package/lib/models/scene-playback-region.d.ts +0 -6
  151. package/lib/models/scene.d.ts +0 -11
  152. package/lib/preset/preset-settings/preset-settings.component.d.ts +0 -22
  153. package/lib/preset/preset.component.d.ts +0 -25
  154. package/lib/preview/models/color-changer-3d.d.ts +0 -16
  155. package/lib/preview/models/fixture-3d.d.ts +0 -38
  156. package/lib/preview/models/moving-head-3d.d.ts +0 -23
  157. package/lib/preview/preview.component.d.ts +0 -38
  158. package/lib/project/project-browser/project-browser.component.d.ts +0 -27
  159. package/lib/project/project-import/project-import.component.d.ts +0 -23
  160. package/lib/project/project-save/project-save.component.d.ts +0 -28
  161. package/lib/project/project-share/project-share.component.d.ts +0 -16
  162. package/lib/scene/scene-settings/scene-settings.component.d.ts +0 -20
  163. package/lib/scene/scene.component.d.ts +0 -22
  164. package/lib/services/animation.service.d.ts +0 -7
  165. package/lib/services/config.service.d.ts +0 -20
  166. package/lib/services/effect.service.d.ts +0 -8
  167. package/lib/services/error-dialog.service.d.ts +0 -12
  168. package/lib/services/fixture-pool.service.d.ts +0 -10
  169. package/lib/services/fixture.service.d.ts +0 -70
  170. package/lib/services/hotkey-target-exclude.service.d.ts +0 -7
  171. package/lib/services/intro.service.d.ts +0 -21
  172. package/lib/services/preset.service.d.ts +0 -64
  173. package/lib/services/preview-mesh.service.d.ts +0 -14
  174. package/lib/services/preview.service.d.ts +0 -42
  175. package/lib/services/project-load.service.d.ts +0 -36
  176. package/lib/services/project.service.d.ts +0 -26
  177. package/lib/services/scene.service.d.ts +0 -30
  178. package/lib/services/timeline.service.d.ts +0 -70
  179. package/lib/services/user-ensure-login.service.d.ts +0 -14
  180. package/lib/services/user.service.d.ts +0 -22
  181. package/lib/services/uuid.service.d.ts +0 -7
  182. package/lib/services/warning-dialog.service.d.ts +0 -12
  183. package/lib/timeline/composition-settings/composition-settings.component.d.ts +0 -48
  184. package/lib/timeline/timeline-grid/timeline-grid.component.d.ts +0 -22
  185. package/lib/timeline/timeline.component.d.ts +0 -50
  186. package/lib/user/user-login/user-login.component.d.ts +0 -21
  187. package/lib/user/user-register/user-register.component.d.ts +0 -26
  188. package/lib/wait-dialog/wait-dialog.component.d.ts +0 -8
  189. package/lib/warning-dialog/warning-dialog.component.d.ts +0 -16
  190. package/public_api.d.ts +0 -3
  191. package/rocketshow-designer-1.40.0.tgz +0 -0
@@ -1,24 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class HotkeyTargetExcludeService {
4
- constructor() { }
5
- exclude(event) {
6
- // don't react on certain targets (e.g. the user is inside an input field)
7
- if (!event.target) {
8
- return false;
9
- }
10
- if (event.target.nodeName === 'INPUT') {
11
- return true;
12
- }
13
- return false;
14
- }
15
- static { this.ɵfac = function HotkeyTargetExcludeService_Factory(t) { return new (t || HotkeyTargetExcludeService)(); }; }
16
- static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: HotkeyTargetExcludeService, factory: HotkeyTargetExcludeService.ɵfac, providedIn: 'root' }); }
17
- }
18
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(HotkeyTargetExcludeService, [{
19
- type: Injectable,
20
- args: [{
21
- providedIn: 'root',
22
- }]
23
- }], () => [], null); })();
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG90a2V5LXRhcmdldC1leGNsdWRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ25lci9zcmMvbGliL3NlcnZpY2VzL2hvdGtleS10YXJnZXQtZXhjbHVkZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSzNDLE1BQU0sT0FBTywwQkFBMEI7SUFDckMsZ0JBQWUsQ0FBQztJQUVoQixPQUFPLENBQUMsS0FBVTtRQUNoQiwwRUFBMEU7UUFDMUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNsQixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxLQUFLLE9BQU8sRUFBRSxDQUFDO1lBQ3RDLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzsyRkFkVSwwQkFBMEI7dUVBQTFCLDBCQUEwQixXQUExQiwwQkFBMEIsbUJBRnpCLE1BQU07O2lGQUVQLDBCQUEwQjtjQUh0QyxVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBIb3RrZXlUYXJnZXRFeGNsdWRlU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBleGNsdWRlKGV2ZW50OiBhbnkpOiBib29sZWFuIHtcbiAgICAvLyBkb24ndCByZWFjdCBvbiBjZXJ0YWluIHRhcmdldHMgKGUuZy4gdGhlIHVzZXIgaXMgaW5zaWRlIGFuIGlucHV0IGZpZWxkKVxuICAgIGlmICghZXZlbnQudGFyZ2V0KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LnRhcmdldC5ub2RlTmFtZSA9PT0gJ0lOUFVUJykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iXX0=
@@ -1,140 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { Subject } from 'rxjs';
3
- import { ConfigService } from './config.service';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "./config.service";
6
- export class IntroService {
7
- constructor(configService) {
8
- this.configService = configService;
9
- this.showIntro = false;
10
- this.activeStep = 'start';
11
- this.positionTopPercentage = 50;
12
- this.positionLeftPercentage = 50;
13
- this.stylePosition = 'top: calc(50% - 150px); left: calc(50% - 200px);';
14
- this.stepChanged = new Subject();
15
- }
16
- refresh() {
17
- // called, as soon as the config has been updated
18
- if (this.configService.intro) {
19
- if (localStorage.getItem('showIntro')) {
20
- this.showIntro = localStorage.getItem('showIntro') === 'true';
21
- }
22
- else {
23
- this.showIntro = true;
24
- }
25
- }
26
- }
27
- setShowIntro(value) {
28
- this.showIntro = value;
29
- if (value) {
30
- localStorage.setItem('showIntro', 'true');
31
- }
32
- else {
33
- localStorage.setItem('showIntro', 'false');
34
- }
35
- this.stepChanged.next();
36
- }
37
- reset() {
38
- this.activeStep = 'start';
39
- this.setShowIntro(true);
40
- this.stepChanged.next();
41
- }
42
- showStep(step) {
43
- if (!this.showIntro) {
44
- return false;
45
- }
46
- if (this.activeStep !== step) {
47
- return false;
48
- }
49
- return true;
50
- }
51
- next() {
52
- switch (this.activeStep) {
53
- case 'start':
54
- this.activeStep = 'preview';
55
- this.positionTopPercentage = 60;
56
- this.positionLeftPercentage = 40;
57
- break;
58
- case 'preview':
59
- this.activeStep = 'fixtures';
60
- this.positionTopPercentage = 40;
61
- this.positionLeftPercentage = 30;
62
- break;
63
- case 'fixtures':
64
- this.activeStep = 'presets';
65
- this.positionTopPercentage = 30;
66
- this.positionLeftPercentage = 50;
67
- break;
68
- case 'presets':
69
- this.activeStep = 'capabilities';
70
- this.positionTopPercentage = 50;
71
- this.positionLeftPercentage = 60;
72
- break;
73
- case 'capabilities':
74
- this.activeStep = 'scenes';
75
- this.positionTopPercentage = 50;
76
- this.positionLeftPercentage = 40;
77
- break;
78
- case 'scenes':
79
- this.activeStep = 'timeline';
80
- this.positionTopPercentage = 40;
81
- this.positionLeftPercentage = 50;
82
- break;
83
- case 'timeline':
84
- this.activeStep = 'finish';
85
- this.positionTopPercentage = 50;
86
- this.positionLeftPercentage = 50;
87
- break;
88
- }
89
- this.stepChanged.next();
90
- }
91
- back() {
92
- switch (this.activeStep) {
93
- case 'preview':
94
- this.activeStep = 'start';
95
- this.positionTopPercentage = 50;
96
- this.positionLeftPercentage = 50;
97
- break;
98
- case 'fixtures':
99
- this.activeStep = 'preview';
100
- this.positionTopPercentage = 60;
101
- this.positionLeftPercentage = 40;
102
- break;
103
- case 'presets':
104
- this.activeStep = 'fixtures';
105
- this.positionTopPercentage = 30;
106
- this.positionLeftPercentage = 50;
107
- break;
108
- case 'capabilities':
109
- this.activeStep = 'presets';
110
- this.positionTopPercentage = 40;
111
- this.positionLeftPercentage = 30;
112
- break;
113
- case 'scenes':
114
- this.activeStep = 'capabilities';
115
- this.positionTopPercentage = 50;
116
- this.positionLeftPercentage = 60;
117
- break;
118
- case 'timeline':
119
- this.activeStep = 'scenes';
120
- this.positionTopPercentage = 50;
121
- this.positionLeftPercentage = 40;
122
- break;
123
- case 'finish':
124
- this.activeStep = 'timeline';
125
- this.positionTopPercentage = 40;
126
- this.positionLeftPercentage = 50;
127
- break;
128
- }
129
- this.stepChanged.next();
130
- }
131
- static { this.ɵfac = function IntroService_Factory(t) { return new (t || IntroService)(i0.ɵɵinject(i1.ConfigService)); }; }
132
- static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: IntroService, factory: IntroService.ɵfac, providedIn: 'root' }); }
133
- }
134
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(IntroService, [{
135
- type: Injectable,
136
- args: [{
137
- providedIn: 'root',
138
- }]
139
- }], () => [{ type: i1.ConfigService }], null); })();
140
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50cm8uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbmVyL3NyYy9saWIvc2VydmljZXMvaW50cm8uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7QUFLakQsTUFBTSxPQUFPLFlBQVk7SUFRdkIsWUFBb0IsYUFBNEI7UUFBNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFQaEQsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixlQUFVLEdBQUcsT0FBTyxDQUFDO1FBQ3JCLDBCQUFxQixHQUFHLEVBQUUsQ0FBQztRQUMzQiwyQkFBc0IsR0FBRyxFQUFFLENBQUM7UUFDNUIsa0JBQWEsR0FBRyxrREFBa0QsQ0FBQztRQUNuRSxnQkFBVyxHQUFrQixJQUFJLE9BQU8sRUFBUSxDQUFDO0lBRUUsQ0FBQztJQUVwRCxPQUFPO1FBQ0wsaURBQWlEO1FBQ2pELElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUM3QixJQUFJLFlBQVksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztnQkFDdEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxLQUFLLE1BQU0sQ0FBQztZQUNoRSxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDeEIsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQWM7UUFDekIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxLQUFLLEVBQUUsQ0FBQztZ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MUIsQ0FBQzs2RUFuSVUsWUFBWTt1RUFBWixZQUFZLFdBQVosWUFBWSxtQkFGWCxNQUFNOztpRkFFUCxZQUFZO2NBSHhCLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuL2NvbmZpZy5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEludHJvU2VydmljZSB7XG4gIHNob3dJbnRybyA9IGZhbHNlO1xuICBhY3RpdmVTdGVwID0gJ3N0YXJ0JztcbiAgcG9zaXRpb25Ub3BQZXJjZW50YWdlID0gNTA7XG4gIHBvc2l0aW9uTGVmdFBlcmNlbnRhZ2UgPSA1MDtcbiAgc3R5bGVQb3NpdGlvbiA9ICd0b3A6IGNhbGMoNTAlIC0gMTUwcHgpOyBsZWZ0OiBjYWxjKDUwJSAtIDIwMHB4KTsnO1xuICBzdGVwQ2hhbmdlZDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb25maWdTZXJ2aWNlOiBDb25maWdTZXJ2aWNlKSB7fVxuXG4gIHJlZnJlc2goKSB7XG4gICAgLy8gY2FsbGVkLCBhcyBzb29uIGFzIHRoZSBjb25maWcgaGFzIGJlZW4gdXBkYXRlZFxuICAgIGlmICh0aGlzLmNvbmZpZ1NlcnZpY2UuaW50cm8pIHtcbiAgICAgIGlmIChsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnc2hvd0ludHJvJykpIHtcbiAgICAgICAgdGhpcy5zaG93SW50cm8gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnc2hvd0ludHJvJykgPT09ICd0cnVlJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2hvd0ludHJvID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzZXRTaG93SW50cm8odmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNob3dJbnRybyA9IHZhbHVlO1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3Nob3dJbnRybycsICd0cnVlJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdzaG93SW50cm8nLCAnZmFsc2UnKTtcbiAgICB9XG4gICAgdGhpcy5zdGVwQ2hhbmdlZC5uZXh0KCk7XG4gIH1cblxuICByZXNldCgpIHtcbiAgICB0aGlzLmFjdGl2ZVN0ZXAgPSAnc3RhcnQnO1xuICAgIHRoaXMuc2V0U2hvd0ludHJvKHRydWUpO1xuICAgIHRoaXMuc3RlcENoYW5nZWQubmV4dCgpO1xuICB9XG5cbiAgc2hvd1N0ZXAoc3RlcDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLnNob3dJbnRybykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmFjdGl2ZVN0ZXAgIT09IHN0ZXApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIG5leHQoKSB7XG4gICAgc3dpdGNoICh0aGlzLmFjdGl2ZVN0ZXApIHtcbiAgICAgIGNhc2UgJ3N0YXJ0JzpcbiAgICAgICAgdGhpcy5hY3RpdmVTdGVwID0gJ3ByZXZpZXcnO1xuICAgICAgICB0aGlzLnBvc2l0aW9uVG9wUGVyY2VudGFnZSA9IDYwO1xuICAgICAgICB0aGlzLnBvc2l0aW9uTGVmdFBlcmNlbnRhZ2UgPSA0MDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdwcmV2aWV3JzpcbiAgICAgICAgdGhpcy5hY3RpdmVTdGVwID0gJ2ZpeHR1cmVzJztcbiAgICAgICAgdGhpcy5wb3NpdGlvblRvcFBlcmNlbnRhZ2UgPSA0MDtcbiAgICAgICAgdGhpcy5wb3NpdGlvbkxlZnRQZXJjZW50YWdlID0gMzA7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZml4dHVyZXMnOlxuICAgICAgICB0aGlzLmFjdGl2ZVN0ZXAgPSAncHJlc2V0cyc7XG4gICAgICAgIHRoaXMucG9zaXRpb25Ub3BQZXJjZW50YWdlID0gMzA7XG4gICAgICAgIHRoaXMucG9zaXRpb25MZWZ0UGVyY2VudGFnZSA9IDUwO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3ByZXNldHMnOlxuICAgICAgICB0aGlzLmFjdGl2ZVN0ZXAgPSAnY2FwYWJpbGl0aWVzJztcbiAgICAgICAgdGhpcy5wb3NpdGlvblRvcFBlcmNlbnRhZ2UgPSA1MDtcbiAgICAgICAgdGhpcy5wb3NpdGlvbkxlZnRQZXJjZW50YWdlID0gNjA7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnY2FwYWJpbGl0aWVzJzpcbiAgICAgICAgdGhpcy5hY3RpdmVTdGVwID0gJ3NjZW5lcyc7XG4gICAgICAgIHRoaXMucG9zaXRpb25Ub3BQZXJjZW50YWdlID0gNTA7XG4gICAgICAgIHRoaXMucG9zaXRpb25MZWZ0UGVyY2VudGFnZSA9IDQwO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3NjZW5lcyc6XG4gICAgICAgIHRoaXMuYWN0aXZlU3RlcCA9ICd0aW1lbGluZSc7XG4gICAgICAgIHRoaXMucG9zaXRpb25Ub3BQZXJjZW50YWdlID0gNDA7XG4gICAgICAgIHRoaXMucG9zaXRpb25MZWZ0UGVyY2VudGFnZSA9IDUwO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3RpbWVsaW5lJzpcbiAgICAgICAgdGhpcy5hY3RpdmVTdGVwID0gJ2ZpbmlzaCc7XG4gICAgICAgIHRoaXMucG9zaXRpb25Ub3BQZXJjZW50YWdlID0gNTA7XG4gICAgICAgIHRoaXMucG9zaXRpb25MZWZ0UGVyY2VudGFnZSA9IDUwO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICB0aGlzLnN0ZXBDaGFuZ2VkLm5leHQoKTtcbiAgfVxuXG4gIGJhY2soKSB7XG4gICAgc3dpdGNoICh0aGlzLmFjdGl2ZVN0ZXApIHtcbiAgICAgIGNhc2UgJ3ByZXZpZXcnOlxuICAgICAgICB0aGlzLmFjdGl2ZVN0ZXAgPSAnc3RhcnQnO1xuICAgICAgICB0aGlzLnBvc2l0aW9uVG9wUGVyY2VudGFnZSA9IDUwO1xuICAgICAgICB0aGlzLnBvc2l0aW9uTGVmdFBlcmNlbnRhZ2UgPSA1MDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdmaXh0dXJlcyc6XG4gICAgICAgIHRoaXMuYWN0aXZlU3RlcCA9ICdwcmV2aWV3JztcbiAgICAgICAgdGhpcy5wb3NpdGlvblRvcFBlcmNlbnRhZ2UgPSA2MDtcbiAgICAgICAgdGhpcy5wb3NpdGlvbkxlZnRQZXJjZW50YWdlID0gNDA7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncHJlc2V0cyc6XG4gICAgICAgIHRoaXMuYWN0aXZlU3RlcCA9ICdmaXh0dXJlcyc7XG4gICAgICAgIHRoaXMucG9zaXRpb25Ub3BQZXJjZW50YWdlID0gMzA7XG4gICAgICAgIHRoaXMucG9zaXRpb25MZWZ0UGVyY2VudGFnZSA9IDUwO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2NhcGFiaWxpdGllcyc6XG4gICAgICAgIHRoaXMuYWN0aXZlU3RlcCA9ICdwcmVzZXRzJztcbiAgICAgICAgdGhpcy5wb3NpdGlvblRvcFBlcmNlbnRhZ2UgPSA0MDtcbiAgICAgICAgdGhpcy5wb3NpdGlvbkxlZnRQZXJjZW50YWdlID0gMzA7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc2NlbmVzJzpcbiAgICAgICAgdGhpcy5hY3RpdmVTdGVwID0gJ2NhcGFiaWxpdGllcyc7XG4gICAgICAgIHRoaXMucG9zaXRpb25Ub3BQZXJjZW50YWdlID0gNTA7XG4gICAgICAgIHRoaXMucG9zaXRpb25MZWZ0UGVyY2VudGFnZSA9IDYwO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3RpbWVsaW5lJzpcbiAgICAgICAgdGhpcy5hY3RpdmVTdGVwID0gJ3NjZW5lcyc7XG4gICAgICAgIHRoaXMucG9zaXRpb25Ub3BQZXJjZW50YWdlID0gNTA7XG4gICAgICAgIHRoaXMucG9zaXRpb25MZWZ0UGVyY2VudGFnZSA9IDQwO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2ZpbmlzaCc6XG4gICAgICAgIHRoaXMuYWN0aXZlU3RlcCA9ICd0aW1lbGluZSc7XG4gICAgICAgIHRoaXMucG9zaXRpb25Ub3BQZXJjZW50YWdlID0gNDA7XG4gICAgICAgIHRoaXMucG9zaXRpb25MZWZ0UGVyY2VudGFnZSA9IDUwO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICB0aGlzLnN0ZXBDaGFuZ2VkLm5leHQoKTtcbiAgfVxufVxuIl19