@lowcodeunit/applications-flow-common 1.33.79-merge-with-social-ish-02 → 1.33.83-lets-get-social-ish

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 (229) hide show
  1. package/bundles/lowcodeunit-applications-flow-common.umd.js +5238 -0
  2. package/bundles/lowcodeunit-applications-flow-common.umd.js.map +1 -0
  3. package/bundles/lowcodeunit-applications-flow-common.umd.min.js +16 -0
  4. package/bundles/lowcodeunit-applications-flow-common.umd.min.js.map +1 -0
  5. package/esm2015/lcu.api.js +26 -0
  6. package/esm2015/lib/applications-flow.module.js +171 -0
  7. package/esm2015/lib/elements/analytics-card/analytics-card.component.js +21 -0
  8. package/esm2015/lib/elements/base-form/base-form.component.js +61 -0
  9. package/esm2015/lib/elements/card-carousel/card-carousel.component.js +67 -0
  10. package/esm2015/lib/elements/column-info-card/column-info-card.component.js +31 -0
  11. package/esm2015/lib/elements/dynamic-tabs/dynamic-tabs.component.js +69 -0
  12. package/esm2015/lib/elements/feed-card-sm/feed-card-sm.component.js +31 -0
  13. package/esm2015/lib/elements/form-card/form-card.component.js +22 -0
  14. package/esm2015/lib/elements/gh-control/gh-control.component.js +72 -0
  15. package/esm2015/lib/elements/main-feed-card/main-feed-card.component.js +24 -0
  16. package/esm2015/lib/elements/project-info-card/project-info-card.component.js +32 -0
  17. package/esm2015/lib/elements/projects/controls/builds/builds.component.js +31 -0
  18. package/esm2015/lib/elements/projects/controls/create-project-wizard/create-project-wizard.component.js +145 -0
  19. package/esm2015/lib/elements/projects/controls/forms/source-control/source-control.component.js +265 -0
  20. package/esm2015/lib/elements/projects/controls/git-auth/git-auth.component.js +25 -0
  21. package/esm2015/lib/elements/projects/controls/header/header.component.js +75 -0
  22. package/esm2015/lib/elements/projects/controls/hosting-details-form-group/hosting-details-form-group.component.js +102 -0
  23. package/esm2015/lib/elements/projects/controls/project-items/project-items.component.js +49 -0
  24. package/esm2015/lib/elements/projects/controls/project-tabs/project-tabs.component.js +91 -0
  25. package/esm2015/lib/elements/projects/controls/recent-activities/recent-activities.component.js +15 -0
  26. package/esm2015/lib/elements/projects/controls/tabs/apps-flow/apps-flow.component.js +592 -0
  27. package/esm2015/lib/elements/projects/controls/tabs/apps-flow/npm-package-select/npm-package-select.component.js +62 -0
  28. package/esm2015/lib/elements/projects/controls/tabs/devops/devops.component.js +202 -0
  29. package/esm2015/lib/elements/projects/controls/tabs/dfs-modifiers/dfs-modifiers.component.js +178 -0
  30. package/esm2015/lib/elements/projects/controls/tabs/domains/domains.component.js +133 -0
  31. package/esm2015/lib/elements/projects/controls/tabs/general/forms/base-form-test/base-form-test.component.js +86 -0
  32. package/esm2015/lib/elements/projects/controls/tabs/general/forms/project-details/project-details.component.js +129 -0
  33. package/esm2015/lib/elements/projects/controls/tabs/general/forms/root-directory/root-directory.component.js +113 -0
  34. package/esm2015/lib/elements/projects/controls/tabs/general/general.component.js +46 -0
  35. package/esm2015/lib/elements/projects/projects.component.js +226 -0
  36. package/esm2015/lib/elements/slotted-card/slotted-card.component.js +26 -0
  37. package/esm2015/lib/elements/three-column/three-column.component.js +32 -0
  38. package/esm2015/lib/elements/two-column-header/two-column-header.component.js +15 -0
  39. package/esm2015/lib/models/actions.model.js +3 -0
  40. package/esm2015/lib/models/base-form-config.model.js +6 -0
  41. package/esm2015/lib/models/card-form-config.model.js +6 -0
  42. package/esm2015/lib/models/card-slot.model.js +3 -0
  43. package/esm2015/lib/models/dev-settings-preset.model.js +3 -0
  44. package/esm2015/lib/models/domain.model.js +3 -0
  45. package/esm2015/lib/models/dynamic-tabs.model.js +6 -0
  46. package/esm2015/lib/models/form-actions.model.js +3 -0
  47. package/esm2015/lib/models/form.model.js +6 -0
  48. package/esm2015/lib/models/form.values.model.js +11 -0
  49. package/esm2015/lib/models/project-actions.model.js +6 -0
  50. package/esm2015/lib/models/slot-action.model.js +3 -0
  51. package/esm2015/lib/services/applications-flow-events.service.js +83 -0
  52. package/esm2015/lib/services/applications-flow.service.js +136 -0
  53. package/esm2015/lib/services/forms.service.js +131 -0
  54. package/esm2015/lib/services/npm.service.js +79 -0
  55. package/esm2015/lib/services/project.service.js +318 -0
  56. package/esm2015/lib/state/applications-flow-state.context.js +37 -0
  57. package/esm2015/lib/state/applications-flow.state.js +72 -0
  58. package/esm2015/lowcodeunit-applications-flow-common.js +30 -0
  59. package/fesm2015/lowcodeunit-applications-flow-common.js +3993 -0
  60. package/fesm2015/lowcodeunit-applications-flow-common.js.map +1 -0
  61. package/lcu.api.d.ts +2 -28
  62. package/lcu.api.d.ts.map +1 -0
  63. package/lib/applications-flow.module.d.ts +1 -39
  64. package/lib/applications-flow.module.d.ts.map +1 -0
  65. package/lib/elements/analytics-card/analytics-card.component.d.ts +1 -3
  66. package/lib/elements/analytics-card/analytics-card.component.d.ts.map +1 -0
  67. package/lib/elements/base-form/base-form.component.d.ts +1 -3
  68. package/lib/elements/base-form/base-form.component.d.ts.map +1 -0
  69. package/lib/elements/card-carousel/card-carousel.component.d.ts +14 -0
  70. package/lib/elements/card-carousel/card-carousel.component.d.ts.map +1 -0
  71. package/lib/elements/column-info-card/column-info-card.component.d.ts +1 -3
  72. package/lib/elements/column-info-card/column-info-card.component.d.ts.map +1 -0
  73. package/lib/elements/dynamic-tabs/dynamic-tabs.component.d.ts +1 -3
  74. package/lib/elements/dynamic-tabs/dynamic-tabs.component.d.ts.map +1 -0
  75. package/lib/elements/feed-card-sm/feed-card-sm.component.d.ts +1 -3
  76. package/lib/elements/feed-card-sm/feed-card-sm.component.d.ts.map +1 -0
  77. package/lib/elements/form-card/form-card.component.d.ts +1 -3
  78. package/lib/elements/form-card/form-card.component.d.ts.map +1 -0
  79. package/lib/elements/gh-control/gh-control.component.d.ts +1 -3
  80. package/lib/elements/gh-control/gh-control.component.d.ts.map +1 -0
  81. package/lib/elements/main-feed-card/main-feed-card.component.d.ts +1 -3
  82. package/lib/elements/main-feed-card/main-feed-card.component.d.ts.map +1 -0
  83. package/lib/elements/project-info-card/project-info-card.component.d.ts +1 -3
  84. package/lib/elements/project-info-card/project-info-card.component.d.ts.map +1 -0
  85. package/lib/elements/projects/controls/builds/builds.component.d.ts +1 -3
  86. package/lib/elements/projects/controls/builds/builds.component.d.ts.map +1 -0
  87. package/lib/elements/projects/controls/create-project-wizard/create-project-wizard.component.d.ts +1 -3
  88. package/lib/elements/projects/controls/create-project-wizard/create-project-wizard.component.d.ts.map +1 -0
  89. package/lib/elements/projects/controls/forms/source-control/source-control.component.d.ts +1 -3
  90. package/lib/elements/projects/controls/forms/source-control/source-control.component.d.ts.map +1 -0
  91. package/lib/elements/projects/controls/git-auth/git-auth.component.d.ts +1 -3
  92. package/lib/elements/projects/controls/git-auth/git-auth.component.d.ts.map +1 -0
  93. package/lib/elements/projects/controls/header/header.component.d.ts +1 -3
  94. package/lib/elements/projects/controls/header/header.component.d.ts.map +1 -0
  95. package/lib/elements/projects/controls/hosting-details-form-group/hosting-details-form-group.component.d.ts +1 -3
  96. package/lib/elements/projects/controls/hosting-details-form-group/hosting-details-form-group.component.d.ts.map +1 -0
  97. package/lib/elements/projects/controls/project-items/project-items.component.d.ts +1 -3
  98. package/lib/elements/projects/controls/project-items/project-items.component.d.ts.map +1 -0
  99. package/lib/elements/projects/controls/project-tabs/project-tabs.component.d.ts +1 -3
  100. package/lib/elements/projects/controls/project-tabs/project-tabs.component.d.ts.map +1 -0
  101. package/lib/elements/projects/controls/recent-activities/recent-activities.component.d.ts +1 -3
  102. package/lib/elements/projects/controls/recent-activities/recent-activities.component.d.ts.map +1 -0
  103. package/lib/elements/projects/controls/tabs/apps-flow/apps-flow.component.d.ts +1 -3
  104. package/lib/elements/projects/controls/tabs/apps-flow/apps-flow.component.d.ts.map +1 -0
  105. package/lib/elements/projects/controls/tabs/apps-flow/npm-package-select/npm-package-select.component.d.ts +1 -3
  106. package/lib/elements/projects/controls/tabs/apps-flow/npm-package-select/npm-package-select.component.d.ts.map +1 -0
  107. package/lib/elements/projects/controls/tabs/devops/devops.component.d.ts +1 -3
  108. package/lib/elements/projects/controls/tabs/devops/devops.component.d.ts.map +1 -0
  109. package/lib/elements/projects/controls/tabs/dfs-modifiers/dfs-modifiers.component.d.ts +1 -3
  110. package/lib/elements/projects/controls/tabs/dfs-modifiers/dfs-modifiers.component.d.ts.map +1 -0
  111. package/lib/elements/projects/controls/tabs/domains/domains.component.d.ts +1 -3
  112. package/lib/elements/projects/controls/tabs/domains/domains.component.d.ts.map +1 -0
  113. package/lib/elements/projects/controls/tabs/general/forms/base-form-test/base-form-test.component.d.ts +1 -3
  114. package/lib/elements/projects/controls/tabs/general/forms/base-form-test/base-form-test.component.d.ts.map +1 -0
  115. package/lib/elements/projects/controls/tabs/general/forms/project-details/project-details.component.d.ts +1 -3
  116. package/lib/elements/projects/controls/tabs/general/forms/project-details/project-details.component.d.ts.map +1 -0
  117. package/lib/elements/projects/controls/tabs/general/forms/root-directory/root-directory.component.d.ts +1 -3
  118. package/lib/elements/projects/controls/tabs/general/forms/root-directory/root-directory.component.d.ts.map +1 -0
  119. package/lib/elements/projects/controls/tabs/general/general.component.d.ts +1 -3
  120. package/lib/elements/projects/controls/tabs/general/general.component.d.ts.map +1 -0
  121. package/lib/elements/projects/projects.component.d.ts +1 -3
  122. package/lib/elements/projects/projects.component.d.ts.map +1 -0
  123. package/lib/elements/slotted-card/slotted-card.component.d.ts +1 -3
  124. package/lib/elements/slotted-card/slotted-card.component.d.ts.map +1 -0
  125. package/lib/elements/three-column/three-column.component.d.ts +1 -3
  126. package/lib/elements/three-column/three-column.component.d.ts.map +1 -0
  127. package/lib/elements/two-column-header/two-column-header.component.d.ts +1 -3
  128. package/lib/elements/two-column-header/two-column-header.component.d.ts.map +1 -0
  129. package/lib/models/actions.model.d.ts +1 -0
  130. package/lib/models/actions.model.d.ts.map +1 -0
  131. package/lib/models/base-form-config.model.d.ts +1 -0
  132. package/lib/models/base-form-config.model.d.ts.map +1 -0
  133. package/lib/models/card-form-config.model.d.ts +1 -0
  134. package/lib/models/card-form-config.model.d.ts.map +1 -0
  135. package/lib/models/card-slot.model.d.ts +1 -0
  136. package/lib/models/card-slot.model.d.ts.map +1 -0
  137. package/lib/models/dev-settings-preset.model.d.ts +1 -0
  138. package/lib/models/dev-settings-preset.model.d.ts.map +1 -0
  139. package/lib/models/domain.model.d.ts +1 -0
  140. package/lib/models/domain.model.d.ts.map +1 -0
  141. package/lib/models/dynamic-tabs.model.d.ts +1 -0
  142. package/lib/models/dynamic-tabs.model.d.ts.map +1 -0
  143. package/lib/models/form-actions.model.d.ts +1 -0
  144. package/lib/models/form-actions.model.d.ts.map +1 -0
  145. package/lib/models/form.model.d.ts +1 -0
  146. package/lib/models/form.model.d.ts.map +1 -0
  147. package/lib/models/form.values.model.d.ts +1 -0
  148. package/lib/models/form.values.model.d.ts.map +1 -0
  149. package/lib/models/project-actions.model.d.ts +1 -0
  150. package/lib/models/project-actions.model.d.ts.map +1 -0
  151. package/lib/models/slot-action.model.d.ts +1 -0
  152. package/lib/models/slot-action.model.d.ts.map +1 -0
  153. package/lib/services/applications-flow-events.service.d.ts +1 -3
  154. package/lib/services/applications-flow-events.service.d.ts.map +1 -0
  155. package/lib/services/applications-flow.service.d.ts +1 -3
  156. package/lib/services/applications-flow.service.d.ts.map +1 -0
  157. package/lib/services/forms.service.d.ts +1 -3
  158. package/lib/services/forms.service.d.ts.map +1 -0
  159. package/lib/services/npm.service.d.ts +1 -3
  160. package/lib/services/npm.service.d.ts.map +1 -0
  161. package/lib/services/project.service.d.ts +1 -3
  162. package/lib/services/project.service.d.ts.map +1 -0
  163. package/lib/state/applications-flow-state.context.d.ts +1 -3
  164. package/lib/state/applications-flow-state.context.d.ts.map +1 -0
  165. package/lib/state/applications-flow.state.d.ts +1 -0
  166. package/lib/state/applications-flow.state.d.ts.map +1 -0
  167. package/lowcodeunit-applications-flow-common.d.ts +26 -1
  168. package/lowcodeunit-applications-flow-common.d.ts.map +1 -0
  169. package/lowcodeunit-applications-flow-common.metadata.json +1 -0
  170. package/package.json +12 -20
  171. package/esm2020/lcu.api.mjs +0 -53
  172. package/esm2020/lib/applications-flow.module.mjs +0 -248
  173. package/esm2020/lib/elements/analytics-card/analytics-card.component.mjs +0 -28
  174. package/esm2020/lib/elements/base-form/base-form.component.mjs +0 -57
  175. package/esm2020/lib/elements/column-info-card/column-info-card.component.mjs +0 -50
  176. package/esm2020/lib/elements/dynamic-tabs/dynamic-tabs.component.mjs +0 -74
  177. package/esm2020/lib/elements/feed-card-sm/feed-card-sm.component.mjs +0 -40
  178. package/esm2020/lib/elements/flow-tool/flow-tool.component.mjs +0 -30
  179. package/esm2020/lib/elements/form-card/form-card.component.mjs +0 -33
  180. package/esm2020/lib/elements/gh-control/gh-control.component.mjs +0 -78
  181. package/esm2020/lib/elements/main-feed-card/main-feed-card.component.mjs +0 -34
  182. package/esm2020/lib/elements/project-info-card/project-info-card.component.mjs +0 -46
  183. package/esm2020/lib/elements/projects/controls/builds/builds.component.mjs +0 -35
  184. package/esm2020/lib/elements/projects/controls/create-project-wizard/create-project-wizard.component.mjs +0 -145
  185. package/esm2020/lib/elements/projects/controls/forms/source-control/source-control.component.mjs +0 -287
  186. package/esm2020/lib/elements/projects/controls/git-auth/git-auth.component.mjs +0 -26
  187. package/esm2020/lib/elements/projects/controls/header/header.component.mjs +0 -83
  188. package/esm2020/lib/elements/projects/controls/hosting-details-form-group/hosting-details-form-group.component.mjs +0 -118
  189. package/esm2020/lib/elements/projects/controls/project-items/project-items.component.mjs +0 -54
  190. package/esm2020/lib/elements/projects/controls/project-tabs/project-tabs.component.mjs +0 -103
  191. package/esm2020/lib/elements/projects/controls/recent-activities/recent-activities.component.mjs +0 -14
  192. package/esm2020/lib/elements/projects/controls/tabs/apps-flow/apps-flow.component.mjs +0 -563
  193. package/esm2020/lib/elements/projects/controls/tabs/apps-flow/npm-package-select/npm-package-select.component.mjs +0 -72
  194. package/esm2020/lib/elements/projects/controls/tabs/devops/devops.component.mjs +0 -242
  195. package/esm2020/lib/elements/projects/controls/tabs/dfs-modifiers/dfs-modifiers.component.mjs +0 -179
  196. package/esm2020/lib/elements/projects/controls/tabs/domains/domains.component.mjs +0 -137
  197. package/esm2020/lib/elements/projects/controls/tabs/general/forms/base-form-test/base-form-test.component.mjs +0 -90
  198. package/esm2020/lib/elements/projects/controls/tabs/general/forms/project-details/project-details.component.mjs +0 -142
  199. package/esm2020/lib/elements/projects/controls/tabs/general/forms/root-directory/root-directory.component.mjs +0 -124
  200. package/esm2020/lib/elements/projects/controls/tabs/general/general.component.mjs +0 -40
  201. package/esm2020/lib/elements/projects/projects.component.mjs +0 -219
  202. package/esm2020/lib/elements/slotted-card/slotted-card.component.mjs +0 -40
  203. package/esm2020/lib/elements/three-column/three-column.component.mjs +0 -30
  204. package/esm2020/lib/elements/two-column-header/two-column-header.component.mjs +0 -15
  205. package/esm2020/lib/models/actions.model.mjs +0 -3
  206. package/esm2020/lib/models/base-form-config.model.mjs +0 -6
  207. package/esm2020/lib/models/card-form-config.model.mjs +0 -6
  208. package/esm2020/lib/models/card-slot.model.mjs +0 -3
  209. package/esm2020/lib/models/dev-settings-preset.model.mjs +0 -3
  210. package/esm2020/lib/models/domain.model.mjs +0 -3
  211. package/esm2020/lib/models/dynamic-tabs.model.mjs +0 -6
  212. package/esm2020/lib/models/form-actions.model.mjs +0 -3
  213. package/esm2020/lib/models/form.model.mjs +0 -6
  214. package/esm2020/lib/models/form.values.model.mjs +0 -11
  215. package/esm2020/lib/models/project-actions.model.mjs +0 -6
  216. package/esm2020/lib/models/slot-action.model.mjs +0 -3
  217. package/esm2020/lib/services/applications-flow-events.service.mjs +0 -84
  218. package/esm2020/lib/services/applications-flow.service.mjs +0 -132
  219. package/esm2020/lib/services/forms.service.mjs +0 -132
  220. package/esm2020/lib/services/npm.service.mjs +0 -77
  221. package/esm2020/lib/services/project.service.mjs +0 -303
  222. package/esm2020/lib/state/applications-flow-state.context.mjs +0 -36
  223. package/esm2020/lib/state/applications-flow.state.mjs +0 -72
  224. package/esm2020/lowcodeunit-applications-flow-common.mjs +0 -5
  225. package/fesm2015/lowcodeunit-applications-flow-common.mjs +0 -4062
  226. package/fesm2015/lowcodeunit-applications-flow-common.mjs.map +0 -1
  227. package/fesm2020/lowcodeunit-applications-flow-common.mjs +0 -4009
  228. package/fesm2020/lowcodeunit-applications-flow-common.mjs.map +0 -1
  229. package/lib/elements/flow-tool/flow-tool.component.d.ts +0 -17
@@ -1,287 +0,0 @@
1
- import { Component, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
2
- import { COMMA, ENTER } from '@angular/cdk/keycodes';
3
- import { Validators, FormControl, } from '@angular/forms';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/forms";
6
- import * as i2 from "../../../../../services/applications-flow.service";
7
- import * as i3 from "../../../../../services/applications-flow-events.service";
8
- import * as i4 from "@angular/material/form-field";
9
- import * as i5 from "@angular/material/icon";
10
- import * as i6 from "@angular/material/select";
11
- import * as i7 from "@angular/material/core";
12
- import * as i8 from "@angular/material/button";
13
- import * as i9 from "@angular/material/autocomplete";
14
- import * as i10 from "@angular/material/chips";
15
- import * as i11 from "@lowcodeunit/app-host-common";
16
- import * as i12 from "@angular/common";
17
- import * as i13 from "@angular/material/tooltip";
18
- import * as i14 from "@angular/material/input";
19
- import * as i15 from "@angular/flex-layout/extended";
20
- export class SourceControlFormControlsComponent {
21
- // Constructors
22
- constructor(formBuilder, appsFlowSvc, appsFlowEventsSvc) {
23
- this.formBuilder = formBuilder;
24
- this.appsFlowSvc = appsFlowSvc;
25
- this.appsFlowEventsSvc = appsFlowEventsSvc;
26
- this.SeparatorKeysCodes = [ENTER, COMMA];
27
- this.BranchesChanged = new EventEmitter();
28
- this.SelectedBranches = [];
29
- this.SourceControl = {};
30
- this.SourceControlRoot = '';
31
- this.UseBranches = true;
32
- }
33
- // Fields
34
- // Properties
35
- get BranchesFormControl() {
36
- return this.FormGroup.get(this.SourceControlRoot + 'branches');
37
- }
38
- get BuildPathFormControl() {
39
- return this.FormGroup.get(this.SourceControlRoot + 'buildPath');
40
- }
41
- get MainBranchFormControl() {
42
- return this.FormGroup.get(this.SourceControlRoot + 'mainBranch');
43
- }
44
- get OrganizationFormControl() {
45
- return this.FormGroup.get(this.SourceControlRoot + 'organization');
46
- }
47
- get RepositoryFormControl() {
48
- return this.FormGroup.get(this.SourceControlRoot + 'repository');
49
- }
50
- // Life Cycle
51
- ngAfterViewInit() { }
52
- ngOnDestroy() {
53
- this.destroyFormControls();
54
- }
55
- ngOnInit() {
56
- this.setupFormControls();
57
- this.RefreshOrganizations();
58
- }
59
- // API Methods
60
- AddBranchOption(event) {
61
- this.addBranchOption(event.value);
62
- event.input.value = '';
63
- }
64
- BranchOptionSelected(event) {
65
- this.addBranchOption(event.option.value);
66
- }
67
- BuildPathChanged(event) {
68
- }
69
- CreateRepository() {
70
- this.CreatingRepository = true;
71
- this.RepositoryFormControl.reset();
72
- }
73
- CancelCreateRepository() {
74
- this.CreatingRepository = false;
75
- }
76
- MainBranchChanged(event) {
77
- this.emitBranchesChanged();
78
- }
79
- OrganizationChanged(event) {
80
- const org = this.OrganizationFormControl;
81
- this.RepositoryFormControl.reset();
82
- if (this.UseBranches) {
83
- this.BranchesFormControl.reset();
84
- this.SelectedBranches = [];
85
- }
86
- this.listRepositories();
87
- }
88
- RefreshOrganizations() {
89
- // this.Loading = true;
90
- this.listOrganizations();
91
- this.OrganizationFormControl?.reset();
92
- this.RepositoryFormControl?.reset();
93
- if (this.UseBranches) {
94
- this.BranchesFormControl?.reset();
95
- }
96
- }
97
- RemoveBranchOption(option) {
98
- const index = this.SelectedBranches.indexOf(option);
99
- if (index >= 0) {
100
- this.SelectedBranches.splice(index, 1);
101
- }
102
- this.emitBranchesChanged();
103
- }
104
- RepositoryChanged(event) {
105
- const repo = this.RepositoryFormControl;
106
- if (this.UseBranches) {
107
- this.BranchesFormControl.reset();
108
- this.SelectedBranches = [];
109
- this.listBranches();
110
- }
111
- if (!this.UseBranches) {
112
- this.listBuildPaths();
113
- }
114
- }
115
- SaveRepository() {
116
- this.Loading = true;
117
- const org = this.OrganizationFormControl.value;
118
- const repoName = this.RepositoryFormControl.value;
119
- this.appsFlowSvc
120
- .CreateRepository(org, repoName)
121
- .subscribe((response) => {
122
- if (response.Status.Code === 0) {
123
- this.listRepositories(repoName);
124
- this.CreatingRepository = false;
125
- }
126
- else {
127
- // TODO: Need to surface an error to the user...
128
- this.Loading = false;
129
- }
130
- });
131
- }
132
- // Helpers
133
- addBranchOption(value) {
134
- value = (value || '').trim();
135
- if (value && this.SelectedBranches.indexOf(value) < 0) {
136
- this.SelectedBranches.push(value);
137
- }
138
- this.BranchesInput.nativeElement.blur();
139
- this.emitBranchesChanged();
140
- }
141
- destroyFormControls() {
142
- this.FormGroup.removeControl([this.SourceControlRoot, 'mainBranch'].join(''));
143
- this.FormGroup.removeControl([this.SourceControlRoot, 'branches'].join(''));
144
- this.FormGroup.removeControl([this.SourceControlRoot, 'buildPath'].join(''));
145
- this.SelectedBranches = [];
146
- this.FormGroup.removeControl([this.SourceControlRoot, 'organization'].join(''));
147
- this.FormGroup.removeControl([this.SourceControlRoot, 'repository'].join(''));
148
- }
149
- emitBranchesChanged() {
150
- if (this.SelectedBranches?.length > 0 &&
151
- (!this.MainBranchFormControl.value ||
152
- this.SelectedBranches.indexOf(this.MainBranchFormControl.value) < 0)) {
153
- this.MainBranchFormControl.setValue(this.SelectedBranches.find((branch) => branch === 'main' || branch === 'master') || this.SelectedBranches[0]);
154
- }
155
- else if (this.SelectedBranches?.length <= 0) {
156
- this.MainBranchFormControl.reset();
157
- }
158
- this.BranchesFormControl.setValue(this.SelectedBranches.join(','));
159
- this.BranchesChanged.emit(this.SelectedBranches || []);
160
- }
161
- listBranches() {
162
- if (this.UseBranches) {
163
- this.Loading = true;
164
- this.appsFlowSvc
165
- .ListBranches(this.OrganizationFormControl.value, this.RepositoryFormControl.value)
166
- .subscribe((response) => {
167
- this.BranchOptions = response.Model;
168
- this.Loading = false;
169
- if (this.SourceControl?.Branches?.length > 0) {
170
- this.SelectedBranches = this.SourceControl.Branches;
171
- }
172
- else if (this.BranchOptions?.length === 1) {
173
- this.BranchesFormControl.setValue(this.BranchOptions[0].Name);
174
- this.SelectedBranches = [this.BranchOptions[0].Name];
175
- }
176
- this.emitBranchesChanged();
177
- this.listBuildPaths();
178
- });
179
- }
180
- }
181
- listBuildPaths() {
182
- if (this.UseBuildPath) {
183
- this.Loading = true;
184
- this.appsFlowSvc
185
- .ListBuildPaths(this.OrganizationFormControl.value, this.RepositoryFormControl.value)
186
- .subscribe((response) => {
187
- this.BuildPathOptions = response.Model;
188
- this.Loading = false;
189
- if (this.BuildPathOptions?.length === 1) {
190
- this.BuildPathFormControl.setValue(this.BuildPathOptions[0]);
191
- }
192
- });
193
- }
194
- }
195
- listOrganizations() {
196
- this.Loading = true;
197
- this.appsFlowSvc
198
- .ListOrganizations()
199
- .subscribe((response) => {
200
- this.OrganizationOptions = response.Model;
201
- this.Loading = false;
202
- if (this.SourceControl?.Organization) {
203
- setTimeout(() => {
204
- this.OrganizationFormControl.setValue(this.SourceControl.Organization);
205
- this.listRepositories(this.SourceControl?.Repository);
206
- }, 0);
207
- }
208
- });
209
- }
210
- listRepositories(activeRepo = null) {
211
- this.Loading = true;
212
- this.appsFlowSvc
213
- .ListRepositories(this.OrganizationFormControl.value)
214
- .subscribe((response) => {
215
- this.RepositoryOptions = response.Model;
216
- this.Loading = false;
217
- if (activeRepo) {
218
- setTimeout(() => {
219
- this.RepositoryFormControl.setValue(activeRepo);
220
- this.listBranches();
221
- if (!this.UseBranches) {
222
- this.listBuildPaths();
223
- }
224
- }, 0);
225
- }
226
- else if (this.RepositoryOptions?.length <= 0) {
227
- this.CreatingRepository = true;
228
- }
229
- });
230
- }
231
- setupFormControls() {
232
- this.destroyFormControls();
233
- this.FormGroup.addControl([this.SourceControlRoot, 'organization'].join(''), new FormControl(this.SourceControl.Organization ?? '', Validators.required));
234
- this.FormGroup.addControl([this.SourceControlRoot, 'repository'].join(''), new FormControl(this.SourceControl.Repository ?? '', Validators.required));
235
- if (this.UseBranches) {
236
- this.FormGroup.addControl([this.SourceControlRoot, 'branches'].join(''), new FormControl(this.SourceControl?.Branches ?? '', Validators.required));
237
- this.SelectedBranches = this.SourceControl?.Branches;
238
- this.FormGroup.addControl([this.SourceControlRoot, 'mainBranch'].join(''), new FormControl(this.SourceControl.MainBranch ?? '', Validators.required));
239
- }
240
- if (this.UseBuildPath) {
241
- this.FormGroup.addControl([this.SourceControlRoot, 'buildPath'].join(''), new FormControl(this.BuildPath ?? '', Validators.required));
242
- }
243
- }
244
- }
245
- SourceControlFormControlsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: SourceControlFormControlsComponent, deps: [{ token: i1.FormBuilder }, { token: i2.ApplicationsFlowService }, { token: i3.ApplicationsFlowEventsService }], target: i0.ɵɵFactoryTarget.Component });
246
- SourceControlFormControlsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: SourceControlFormControlsComponent, selector: "lcu-source-control-form-controls", inputs: { BranchesDisabled: ["branches-disabled", "BranchesDisabled"], BuildPath: ["build-path", "BuildPath"], BuildPathDisabled: ["build-path-disabled", "BuildPathDisabled"], FormGroup: ["form-group", "FormGroup"], OrganizationDisabled: ["org-disabled", "OrganizationDisabled"], RepositoryDisabled: ["repo-disabled", "RepositoryDisabled"], SourceControl: ["source-control", "SourceControl"], SourceControlRoot: ["source-control-root", "SourceControlRoot"], UseBranches: ["use-branches", "UseBranches"], UseBuildPath: ["use-build-path", "UseBuildPath"] }, outputs: { BranchesChanged: "branches-changed" }, viewQueries: [{ propertyName: "BranchesInput", first: true, predicate: ["branches"], descendants: true }], ngImport: i0, template: "<div [formGroup]=\"FormGroup\">\n <div class=\"card\" *ngIf=\"OrganizationFormControl?.valid || !Loading\">\n <mat-form-field\n class=\"mat-full-width with-hint\"\n *ngIf=\"OrganizationOptions?.length > 0\"\n >\n <mat-icon class=\"org-icon\" matPrefix>corporate_fare</mat-icon>\n\n <mat-select\n [formControlName]=\"SourceControlRoot + 'organization'\"\n placeholder=\"Organization\"\n (selectionChange)=\"OrganizationChanged($event)\"\n [disabled]=\"Loading || OrganizationDisabled\"\n required\n >\n <ng-container *ngFor=\"let orgOpt of OrganizationOptions\">\n <mat-option [value]=\"orgOpt.Name\">\n {{ orgOpt.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n\n <mat-icon matSuffix (click)=\"RefreshOrganizations()\" matTooltip=\"Refresh Organization\"> refresh </mat-icon>\n\n <a\n matSuffix\n href=\"/.oauth/github?oauth-force-edit=true\"\n target=\"_blank\"\n color=\"accent\"\n >\n <mat-icon color=\"accent\" matTooltip=\"Re-authorize Organizations\"> launch </mat-icon>\n </a>\n\n <mat-hint>\n If you don't have an organization or would like to create a new one,\n <a\n href=\"https://github.com/account/organizations/new\"\n target=\"_blank\"\n >\n start here\n </a>\n </mat-hint>\n </mat-form-field>\n </div>\n\n <div\n class=\"card\"\n *ngIf=\"\n RepositoryFormControl?.valid ||\n (OrganizationFormControl?.valid && !Loading)\n \"\n >\n <mat-form-field class=\"mat-full-width\">\n <mat-icon class=\"org-icon\" matPrefix>description</mat-icon>\n\n <mat-select\n [formControlName]=\"SourceControlRoot + 'repository'\"\n [placeholder]=\"\n OrganizationFormControl?.valid\n ? 'Repository'\n : 'Repository (select organization first)'\n \"\n [disabled]=\"\n !OrganizationFormControl?.valid || Loading || RepositoryDisabled\n \"\n (selectionChange)=\"RepositoryChanged($event)\"\n *ngIf=\"!CreatingRepository\"\n required\n >\n <ng-container *ngFor=\"let repoOpt of RepositoryOptions\">\n <mat-option [value]=\"repoOpt.Name\">\n {{ repoOpt.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n\n <input\n matInput\n placeholder=\"Repository (creates new if does not exist)\"\n [formControlName]=\"SourceControlRoot + 'repository'\"\n *ngIf=\"CreatingRepository\"\n [fxHide]=\"Loading || RepositoryDisabled\"\n required\n />\n\n <mat-icon\n matSuffix\n (click)=\"CreateRepository()\"\n [fxHide]=\"Loading || RepositoryDisabled\"\n *ngIf=\"!CreatingRepository && OrganizationFormControl?.valid\"\n >\n add_circle\n </mat-icon>\n\n <button mat-button type=\"button\" \n (click)=\"SaveRepository()\" \n *ngIf=\"CreatingRepository && RepositoryFormControl?.valid\">\n\n <mat-icon\n matSuffix\n color=\"primary\"\n >\n save\n </mat-icon>\n </button>\n\n <button mat-button type=\"button\" \n (click)=\"CancelCreateRepository()\"\n *ngIf=\"CreatingRepository\">\n\n <mat-icon\n matSuffix\n \n >\n cancel\n </mat-icon>\n </button>\n </mat-form-field>\n </div>\n\n <div\n class=\"card\"\n *ngIf=\"\n (BranchesFormControl?.valid ||\n (OrganizationFormControl?.valid &&\n RepositoryFormControl?.valid &&\n !Loading)) &&\n !CreatingRepository &&\n UseBranches\n \"\n >\n <mat-form-field class=\"mat-full-width\">\n <mat-icon class=\"org-icon\" matPrefix>account_tree</mat-icon>\n\n <mat-label>Selected Branches</mat-label>\n\n <mat-autocomplete\n (optionSelected)=\"BranchOptionSelected($event)\"\n #branchOptions=\"matAutocomplete\"\n >\n <ng-container *ngFor=\"let branchOpt of BranchOptions\">\n <mat-option [value]=\"branchOpt.Name\">\n {{ branchOpt.Name }}\n </mat-option>\n </ng-container>\n </mat-autocomplete>\n\n <mat-chip-list #selectedBranches>\n <mat-chip\n [removable]=\"true\"\n (removed)=\"RemoveBranchOption(selBranch)\"\n *ngFor=\"let selBranch of SelectedBranches\"\n >\n {{ selBranch }}\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip>\n\n <input\n matInput\n placeholder=\"New Branch...\"\n [formControlName]=\"SourceControlRoot + 'branches'\"\n #branches\n [matAutocomplete]=\"branchOptions\"\n [matChipInputFor]=\"selectedBranches\"\n [matChipInputSeparatorKeyCodes]=\"SeparatorKeysCodes\"\n [matChipInputAddOnBlur]=\"true\"\n (matChipInputTokenEnd)=\"AddBranchOption($event)\"\n [disabled]=\"Loading || BranchesDisabled\"\n required\n />\n </mat-chip-list>\n </mat-form-field>\n\n <mat-form-field\n class=\"mat-full-width with-hint\"\n [fxShow]=\"SelectedBranches?.length > 1\"\n >\n <mat-icon class=\"org-icon\" matPrefix>account_tree</mat-icon>\n\n <mat-select\n [formControlName]=\"SourceControlRoot + 'mainBranch'\"\n placeholder=\"Main Branch\"\n [disabled]=\"Loading || BranchesDisabled\"\n (selectionChange)=\"MainBranchChanged($event)\"\n required\n >\n <ng-container *ngFor=\"let branch of SelectedBranches\">\n <mat-option [value]=\"branch\">\n {{ branch }}\n </mat-option>\n </ng-container>\n </mat-select>\n\n <mat-icon matSuffix (click)=\"RefreshOrganizations()\"> refresh </mat-icon>\n\n <a\n matSuffix\n mat-icon-button\n href=\"/.oauth/github?oauth-force-edit=true\"\n \n target=\"_blank\"\n color=\"accent\"\n >\n <mat-icon\n matTooltip=\"Re-authorize Organizations\"\n color=\"accent\"> launch </mat-icon>\n </a>\n\n <mat-hint>\n If you don't have an organization or would like to create a new one,\n <a\n href=\"https://github.com/account/organizations/new\"\n target=\"_blank\"\n >\n start here\n </a>\n </mat-hint>\n </mat-form-field>\n </div>\n\n <div\n class=\"card\"\n *ngIf=\"\n (BuildPathFormControl?.valid ||\n (OrganizationFormControl?.valid &&\n RepositoryFormControl?.valid &&\n !Loading)) &&\n !CreatingRepository &&\n UseBuildPath\n \"\n >\n <mat-form-field class=\"mat-full-width with-hint\">\n <mat-icon class=\"org-icon\" matPrefix>build</mat-icon>\n\n <mat-select\n [formControlName]=\"SourceControlRoot + 'buildPath'\"\n placeholder=\"Build Path\"\n [disabled]=\"Loading || BuildPathDisabled\"\n (selectionChange)=\"BuildPathChanged($event)\"\n required\n >\n <ng-container *ngFor=\"let buildPath of BuildPathOptions\">\n <mat-option [value]=\"buildPath\">\n {{ buildPath }}\n </mat-option>\n </ng-container>\n </mat-select>\n\n <mat-hint>\n The build path identifies which build action to use for your\n configuration.\n </mat-hint>\n </mat-form-field>\n </div>\n\n <div *ngIf=\"Loading\">\n <div class=\"spread\">\n <lcu-loader style=\"margin: auto\" [loading]=\"true\"></lcu-loader>\n\n <div class=\"margin-3\">\n <h4 class=\"mat-title\" *ngIf=\"!OrganizationFormControl?.valid\">\n Loading organizations\n </h4>\n\n <h4\n class=\"mat-title\"\n *ngIf=\"\n OrganizationFormControl?.valid && !RepositoryFormControl?.valid\n \"\n >\n Loading repositories\n </h4>\n\n <h4\n class=\"mat-title\"\n *ngIf=\"RepositoryFormControl?.valid && !BranchesFormControl?.valid\"\n >\n Loading branches\n </h4>\n\n <h4\n class=\"mat-title\"\n *ngIf=\"\n (RepositoryFormControl?.valid || BranchesFormControl?.valid) &&\n !BuildPathFormControl?.valid\n \"\n >\n Loading build paths\n </h4>\n </div>\n </div>\n </div>\n</div>\n", styles: ["@import\"https://fonts.googleapis.com/icon?family=Material+Icons\";@import\"https://fonts.googleapis.com/css?family=Encode+Sans+Condensed:400,900&display=swap\";@import\"https://fonts.googleapis.com/css?family=Open+Sans:300,400,700&display=swap\";.disable-autofill-background-default input:-webkit-autofill,.disable-autofill-background-default input:-webkit-autofill:hover,.disable-autofill-background-default input:-webkit-autofill:focus,.disable-autofill-background-default textarea:-webkit-autofill,.disable-autofill-background-default textarea:-webkit-autofill:hover,.disable-autofill-background-default textarea:-webkit-autofill:focus,.disable-autofill-background-default select:-webkit-autofill,.disable-autofill-background-default select:-webkit-autofill:hover,.disable-autofill-background-default select:-webkit-autofill:focus{-webkit-transition:background-color 5000s!important;transition:background-color 5000s!important}.list-item-disabled{opacity:.5;filter:alpha(opacity=50);cursor:not-allowed!important}.filler{flex:1 1 auto;display:inline-block!important}.sticky{position:sticky;z-index:750;top:0}.inline{display:inline-block}.contents,.page-element{display:contents}.mat-spinner{margin:auto}.mat-full-width{width:100%}.spread{margin:2rem}.spread-thin{margin:1rem}.overlay{position:sticky!important}.overlay.top{top:0}.overlay.bottom{bottom:0}.margin-0{margin:0!important}.margin-top-0,.margin-y-0{margin-top:0!important}.margin-right-0,.margin-x-0{margin-right:0!important}.margin-bottom-0,.margin-y-0{margin-bottom:0!important}.margin-left-0,.margin-x-0{margin-left:0!important}.margin-1{margin:.25rem!important}.margin-top-1,.margin-y-1{margin-top:.25rem!important}.margin-right-1,.margin-x-1{margin-right:.25rem!important}.margin-bottom-1,.margin-y-1{margin-bottom:.25rem!important}.margin-left-1,.margin-x-1{margin-left:.25rem!important}.margin-2{margin:.5rem!important}.margin-top-2,.margin-y-2{margin-top:.5rem!important}.margin-right-2,.margin-x-2{margin-right:.5rem!important}.margin-bottom-2,.margin-y-2{margin-bottom:.5rem!important}.margin-left-2,.margin-x-2{margin-left:.5rem!important}.margin-3{margin:1rem!important}.margin-top-3,.margin-y-3{margin-top:1rem!important}.margin-top-bottom-3{margin:1rem 0!important}.margin-right-3,.margin-x-3{margin-right:1rem!important}.margin-bottom-3,.margin-y-3{margin-bottom:1rem!important}.margin-left-3,.margin-x-3{margin-left:1rem!important}.margin-4{margin:2rem!important}.margin-top-4,.margin-y-4{margin-top:2rem!important}.margin-right-4,.margin-x-4{margin-right:2rem!important}.margin-bottom-4,.margin-y-4{margin-bottom:2rem!important}.margin-left-4,.margin-x-4{margin-left:2rem!important}.margin-right-5,.margin-x-5{margin-right:4rem!important}.margin-bottom-5,.margin-y-5{margin-bottom:4rem!important}.margin-left-5,.margin-x-5{margin-left:4rem!important}.margin-5{margin:4rem!important}.margin-top-5,.margin-y-5{margin-top:4rem!important}.margin-right-6,.margin-x-6{margin-right:4.5rem!important}.margin-bottom-6,.margin-y-6{margin-bottom:4.5rem!important}.margin-left-6,.margin-x-6{margin-left:4.5rem!important}.margin-7{margin:6rem!important}.margin-top-7,.margin-y-7{margin-top:6rem!important}.margin-right-7,.margin-x-7{margin-right:6rem!important}.margin-bottom-7,.margin-y-7{margin-bottom:6rem!important}.margin-left-7,.margin-x-7{margin-left:6rem!important}.margin-8{margin:7.5rem!important}.margin-top-8,.margin-y-8{margin-top:7.5rem!important}.margin-right-8,.margin-x-8{margin-right:7.5rem!important}.margin-bottom-8,.margin-y-8{margin-bottom:7.5rem!important}.margin-left-8,.margin-x-8{margin-left:7.5rem!important}.margin-9{margin:9rem!important}.margin-top-9,.margin-y-9{margin-top:9rem!important}.margin-right-9,.margin-x-9{margin-right:9rem!important}.margin-bottom-9,.margin-y-9{margin-bottom:9rem!important}.margin-left-9,.margin-x-9{margin-left:9rem!important}.padding-0{padding:0!important}.padding-top-0,.padding-y-0{padding-top:0!important}.padding-right-0,.padding-x-0{padding-right:0!important}.padding-bottom-0,.padding-y-0{padding-bottom:0!important}.padding-left-0,.padding-x-0{padding-left:0!important}.padding-1{padding:.25rem!important}.padding-top-1,.padding-y-1{padding-top:.25rem!important}.padding-right-1,.padding-x-1{padding-right:.25rem!important}.padding-bottom-1,.padding-y-1{padding-bottom:.25rem!important}.padding-left-1,.padding-x-1{padding-left:.25rem!important}.padding-2{padding:.5rem!important}.padding-top-2,.padding-y-2{padding-top:.5rem!important}.padding-right-2,.padding-x-2{padding-right:.5rem!important}.padding-bottom-2,.padding-y-2{padding-bottom:.5rem!important}.padding-left-2,.padding-x-2{padding-left:.5rem!important}.padding-3{padding:1rem!important}.padding-top-3,.padding-y-3{padding-top:1rem!important}.padding-right-3,.padding-x-3{padding-right:1rem!important}.padding-bottom-3,.padding-y-3{padding-bottom:1rem!important}.padding-left-3,.padding-x-3{padding-left:1rem!important}.padding-4{padding:2rem!important}.padding-top-4,.padding-y-4{padding-top:2rem!important}.padding-right-4,.padding-x-4{padding-right:2rem!important}.padding-bottom-4,.padding-y-4{padding-bottom:2rem!important}.padding-left-4,.padding-x-4{padding-left:2rem!important}.padding-5{padding:4rem!important}.padding-top-5,.padding-y-5{padding-top:4rem!important}.padding-right-5,.padding-x-5{padding-right:4rem!important}.padding-bottom-5,.padding-y-5{padding-bottom:4rem!important}.padding-left-5,.padding-x-5{padding-left:4rem!important}.margin-n1{margin:-.25rem!important}.margin-top-n1,.margin-y-n1{margin-top:-.25rem!important}.margin-right-n1,.margin-x-n1{margin-right:-.25rem!important}.margin-bottom-n1,.margin-y-n1{margin-bottom:-.25rem!important}.margin-left-n1,.margin-x-n1{margin-left:-.25rem!important}.margin-n2{margin:-.5rem!important}.margin-top-n2,.margin-y-n2{margin-top:-.5rem!important}.margin-right-n2,.margin-x-n2{margin-right:-.5rem!important}.margin-bottom-n2,.margin-y-n2{margin-bottom:-.5rem!important}.margin-left-n2,.margin-x-n2{margin-left:-.5rem!important}.margin-n3{margin:-1rem!important}.margin-top-n3,.margin-y-n3{margin-top:-1rem!important}.margin-right-n3,.margin-x-n3{margin-right:-1rem!important}.margin-bottom-n3,.margin-y-n3{margin-bottom:-1rem!important}.margin-left-n3,.margin-x-n3{margin-left:-1rem!important}.margin-n4{margin:-2rem!important}.margin-top-n4,.margin-y-n4{margin-top:-2rem!important}.margin-right-n4,.margin-x-n4{margin-right:-2rem!important}.margin-bottom-n4,.margin-y-n4{margin-bottom:-2rem!important}.margin-left-n4,.margin-x-n4{margin-left:-2rem!important}.margin-n5{margin:-4rem!important}.margin-top-n5,.margin-y-n5{margin-top:-4rem!important}.margin-right-n5,.margin-x-n5{margin-right:-4rem!important}.margin-bottom-n5,.margin-y-n5{margin-bottom:-4rem!important}.margin-left-n5,.margin-x-n5{margin-left:-4rem!important}.margin-auto{margin:auto!important}.margin-top-auto,.margin-y-auto{margin-top:auto!important}.margin-right-auto,.margin-x-auto{margin-right:auto!important}.margin-bottom-auto,.margin-y-auto{margin-bottom:auto!important}.margin-left-auto,.margin-x-auto{margin-left:auto!important}@media (min-width: 576px){.margin-sm-0{margin:0!important}.margin-top-sm-0,.margin-y-sm-0{margin-top:0!important}.margin-right-sm-0,.margin-x-sm-0{margin-right:0!important}.margin-bottom-sm-0,.margin-y-sm-0{margin-bottom:0!important}.margin-left-sm-0,.margin-x-sm-0{margin-left:0!important}.margin-sm-1{margin:.25rem!important}.margin-top-sm-1,.margin-y-sm-1{margin-top:.25rem!important}.margin-right-sm-1,.margin-x-sm-1{margin-right:.25rem!important}.margin-bottom-sm-1,.margin-y-sm-1{margin-bottom:.25rem!important}.margin-left-sm-1,.margin-x-sm-1{margin-left:.25rem!important}.margin-sm-2{margin:.5rem!important}.margin-top-sm-2,.margin-y-sm-2{margin-top:.5rem!important}.margin-right-sm-2,.margin-x-sm-2{margin-right:.5rem!important}.margin-bottom-sm-2,.margin-y-sm-2{margin-bottom:.5rem!important}.margin-left-sm-2,.margin-x-sm-2{margin-left:.5rem!important}.margin-sm-3{margin:1rem!important}.margin-top-sm-3,.margin-y-sm-3{margin-top:1rem!important}.margin-right-sm-3,.margin-x-sm-3{margin-right:1rem!important}.margin-bottom-sm-3,.margin-y-sm-3{margin-bottom:1rem!important}.margin-left-sm-3,.margin-x-sm-3{margin-left:1rem!important}.margin-sm-4{margin:2rem!important}.margin-top-sm-4,.margin-y-sm-4{margin-top:2rem!important}.margin-right-sm-4,.margin-x-sm-4{margin-right:2rem!important}.margin-bottom-sm-4,.margin-y-sm-4{margin-bottom:2rem!important}.margin-left-sm-4,.margin-x-sm-4{margin-left:2rem!important}.margin-sm-5{margin:4rem!important}.margin-top-sm-5,.margin-y-sm-5{margin-top:4rem!important}.margin-right-sm-5,.margin-x-sm-5{margin-right:4rem!important}.margin-bottom-sm-5,.margin-y-sm-5{margin-bottom:4rem!important}.margin-left-sm-5,.margin-x-sm-5{margin-left:4rem!important}.padding-sm-0{padding:0!important}.padding-top-sm-0,.padding-y-sm-0{padding-top:0!important}.padding-right-sm-0,.padding-x-sm-0{padding-right:0!important}.padding-bottom-sm-0,.padding-y-sm-0{padding-bottom:0!important}.padding-left-sm-0,.padding-x-sm-0{padding-left:0!important}.padding-sm-1{padding:.25rem!important}.padding-top-sm-1,.padding-y-sm-1{padding-top:.25rem!important}.padding-right-sm-1,.padding-x-sm-1{padding-right:.25rem!important}.padding-bottom-sm-1,.padding-y-sm-1{padding-bottom:.25rem!important}.padding-left-sm-1,.padding-x-sm-1{padding-left:.25rem!important}.padding-sm-2{padding:.5rem!important}.padding-top-sm-2,.padding-y-sm-2{padding-top:.5rem!important}.padding-right-sm-2,.padding-x-sm-2{padding-right:.5rem!important}.padding-bottom-sm-2,.padding-y-sm-2{padding-bottom:.5rem!important}.padding-left-sm-2,.padding-x-sm-2{padding-left:.5rem!important}.padding-sm-3{padding:1rem!important}.padding-top-sm-3,.padding-y-sm-3{padding-top:1rem!important}.padding-right-sm-3,.padding-x-sm-3{padding-right:1rem!important}.padding-bottom-sm-3,.padding-y-sm-3{padding-bottom:1rem!important}.padding-left-sm-3,.padding-x-sm-3{padding-left:1rem!important}.padding-sm-4{padding:2rem!important}.padding-top-sm-4,.padding-y-sm-4{padding-top:2rem!important}.padding-right-sm-4,.padding-x-sm-4{padding-right:2rem!important}.padding-bottom-sm-4,.padding-y-sm-4{padding-bottom:2rem!important}.padding-left-sm-4,.padding-x-sm-4{padding-left:2rem!important}.padding-sm-5{padding:4rem!important}.padding-top-sm-5,.padding-y-sm-5{padding-top:4rem!important}.padding-right-sm-5,.padding-x-sm-5{padding-right:4rem!important}.padding-bottom-sm-5,.padding-y-sm-5{padding-bottom:4rem!important}.padding-left-sm-5,.padding-x-sm-5{padding-left:4rem!important}.margin-sm-n1{margin:-.25rem!important}.margin-top-sm-n1,.margin-y-sm-n1{margin-top:-.25rem!important}.margin-right-sm-n1,.margin-x-sm-n1{margin-right:-.25rem!important}.margin-bottom-sm-n1,.margin-y-sm-n1{margin-bottom:-.25rem!important}.margin-left-sm-n1,.margin-x-sm-n1{margin-left:-.25rem!important}.margin-sm-n2{margin:-.5rem!important}.margin-top-sm-n2,.margin-y-sm-n2{margin-top:-.5rem!important}.margin-right-sm-n2,.margin-x-sm-n2{margin-right:-.5rem!important}.margin-bottom-sm-n2,.margin-y-sm-n2{margin-bottom:-.5rem!important}.margin-left-sm-n2,.margin-x-sm-n2{margin-left:-.5rem!important}.margin-sm-n3{margin:-1rem!important}.margin-top-sm-n3,.margin-y-sm-n3{margin-top:-1rem!important}.margin-right-sm-n3,.margin-x-sm-n3{margin-right:-1rem!important}.margin-bottom-sm-n3,.margin-y-sm-n3{margin-bottom:-1rem!important}.margin-left-sm-n3,.margin-x-sm-n3{margin-left:-1rem!important}.margin-sm-n4{margin:-2rem!important}.margin-top-sm-n4,.margin-y-sm-n4{margin-top:-2rem!important}.margin-right-sm-n4,.margin-x-sm-n4{margin-right:-2rem!important}.margin-bottom-sm-n4,.margin-y-sm-n4{margin-bottom:-2rem!important}.margin-left-sm-n4,.margin-x-sm-n4{margin-left:-2rem!important}.margin-sm-n5{margin:-4rem!important}.margin-top-sm-n5,.margin-y-sm-n5{margin-top:-4rem!important}.margin-right-sm-n5,.margin-x-sm-n5{margin-right:-4rem!important}.margin-bottom-sm-n5,.margin-y-sm-n5{margin-bottom:-4rem!important}.margin-left-sm-n5,.margin-x-sm-n5{margin-left:-4rem!important}.margin-sm-auto{margin:auto!important}.margin-top-sm-auto,.margin-y-sm-auto{margin-top:auto!important}.margin-right-sm-auto,.margin-x-sm-auto{margin-right:auto!important}.margin-bottom-sm-auto,.margin-y-sm-auto{margin-bottom:auto!important}.margin-left-sm-auto,.margin-x-sm-auto{margin-left:auto!important}}@media (min-width: 768px){.margin-md-0{margin:0!important}.margin-top-md-0,.margin-y-md-0{margin-top:0!important}.margin-right-md-0,.margin-x-md-0{margin-right:0!important}.margin-bottom-md-0,.margin-y-md-0{margin-bottom:0!important}.margin-left-md-0,.margin-x-md-0{margin-left:0!important}.margin-md-1{margin:.25rem!important}.margin-top-md-1,.margin-y-md-1{margin-top:.25rem!important}.margin-right-md-1,.margin-x-md-1{margin-right:.25rem!important}.margin-bottom-md-1,.margin-y-md-1{margin-bottom:.25rem!important}.margin-left-md-1,.margin-x-md-1{margin-left:.25rem!important}.margin-md-2{margin:.5rem!important}.margin-top-md-2,.margin-y-md-2{margin-top:.5rem!important}.margin-right-md-2,.margin-x-md-2{margin-right:.5rem!important}.margin-bottom-md-2,.margin-y-md-2{margin-bottom:.5rem!important}.margin-left-md-2,.margin-x-md-2{margin-left:.5rem!important}.margin-md-3{margin:1rem!important}.margin-top-md-3,.margin-y-md-3{margin-top:1rem!important}.margin-right-md-3,.margin-x-md-3{margin-right:1rem!important}.margin-bottom-md-3,.margin-y-md-3{margin-bottom:1rem!important}.margin-left-md-3,.margin-x-md-3{margin-left:1rem!important}.margin-md-4{margin:2rem!important}.margin-top-md-4,.margin-y-md-4{margin-top:2rem!important}.margin-right-md-4,.margin-x-md-4{margin-right:2rem!important}.margin-bottom-md-4,.margin-y-md-4{margin-bottom:2rem!important}.margin-left-md-4,.margin-x-md-4{margin-left:2rem!important}.margin-md-5{margin:4rem!important}.margin-top-md-5,.margin-y-md-5{margin-top:4rem!important}.margin-right-md-5,.margin-x-md-5{margin-right:4rem!important}.margin-bottom-md-5,.margin-y-md-5{margin-bottom:4rem!important}.margin-left-md-5,.margin-x-md-5{margin-left:4rem!important}.padding-md-0{padding:0!important}.padding-top-md-0,.padding-y-md-0{padding-top:0!important}.padding-right-md-0,.padding-x-md-0{padding-right:0!important}.padding-bottom-md-0,.padding-y-md-0{padding-bottom:0!important}.padding-left-md-0,.padding-x-md-0{padding-left:0!important}.padding-md-1{padding:.25rem!important}.padding-top-md-1,.padding-y-md-1{padding-top:.25rem!important}.padding-right-md-1,.padding-x-md-1{padding-right:.25rem!important}.padding-bottom-md-1,.padding-y-md-1{padding-bottom:.25rem!important}.padding-left-md-1,.padding-x-md-1{padding-left:.25rem!important}.padding-md-2{padding:.5rem!important}.padding-top-md-2,.padding-y-md-2{padding-top:.5rem!important}.padding-right-md-2,.padding-x-md-2{padding-right:.5rem!important}.padding-bottom-md-2,.padding-y-md-2{padding-bottom:.5rem!important}.padding-left-md-2,.padding-x-md-2{padding-left:.5rem!important}.padding-md-3{padding:1rem!important}.padding-top-md-3,.padding-y-md-3{padding-top:1rem!important}.padding-right-md-3,.padding-x-md-3{padding-right:1rem!important}.padding-bottom-md-3,.padding-y-md-3{padding-bottom:1rem!important}.padding-left-md-3,.padding-x-md-3{padding-left:1rem!important}.padding-md-4{padding:2rem!important}.padding-top-md-4,.padding-y-md-4{padding-top:2rem!important}.padding-right-md-4,.padding-x-md-4{padding-right:2rem!important}.padding-bottom-md-4,.padding-y-md-4{padding-bottom:2rem!important}.padding-left-md-4,.padding-x-md-4{padding-left:2rem!important}.padding-md-5{padding:4rem!important}.padding-top-md-5,.padding-y-md-5{padding-top:4rem!important}.padding-right-md-5,.padding-x-md-5{padding-right:4rem!important}.padding-bottom-md-5,.padding-y-md-5{padding-bottom:4rem!important}.padding-left-md-5,.padding-x-md-5{padding-left:4rem!important}.margin-md-n1{margin:-.25rem!important}.margin-top-md-n1,.margin-y-md-n1{margin-top:-.25rem!important}.margin-right-md-n1,.margin-x-md-n1{margin-right:-.25rem!important}.margin-bottom-md-n1,.margin-y-md-n1{margin-bottom:-.25rem!important}.margin-left-md-n1,.margin-x-md-n1{margin-left:-.25rem!important}.margin-md-n2{margin:-.5rem!important}.margin-top-md-n2,.margin-y-md-n2{margin-top:-.5rem!important}.margin-right-md-n2,.margin-x-md-n2{margin-right:-.5rem!important}.margin-bottom-md-n2,.margin-y-md-n2{margin-bottom:-.5rem!important}.margin-left-md-n2,.margin-x-md-n2{margin-left:-.5rem!important}.margin-md-n3{margin:-1rem!important}.margin-top-md-n3,.margin-y-md-n3{margin-top:-1rem!important}.margin-right-md-n3,.margin-x-md-n3{margin-right:-1rem!important}.margin-bottom-md-n3,.margin-y-md-n3{margin-bottom:-1rem!important}.margin-left-md-n3,.margin-x-md-n3{margin-left:-1rem!important}.margin-md-n4{margin:-2rem!important}.margin-top-md-n4,.margin-y-md-n4{margin-top:-2rem!important}.margin-right-md-n4,.margin-x-md-n4{margin-right:-2rem!important}.margin-bottom-md-n4,.margin-y-md-n4{margin-bottom:-2rem!important}.margin-left-md-n4,.margin-x-md-n4{margin-left:-2rem!important}.margin-md-n5{margin:-4rem!important}.margin-top-md-n5,.margin-y-md-n5{margin-top:-4rem!important}.margin-right-md-n5,.margin-x-md-n5{margin-right:-4rem!important}.margin-bottom-md-n5,.margin-y-md-n5{margin-bottom:-4rem!important}.margin-left-md-n5,.margin-x-md-n5{margin-left:-4rem!important}.margin-md-auto{margin:auto!important}.margin-top-md-auto,.margin-y-md-auto{margin-top:auto!important}.margin-right-md-auto,.margin-x-md-auto{margin-right:auto!important}.margin-bottom-md-auto,.margin-y-md-auto{margin-bottom:auto!important}.margin-left-md-auto,.margin-x-md-auto{margin-left:auto!important}}@media (min-width: 992px){.margin-lg-0{margin:0!important}.margin-top-lg-0,.margin-y-lg-0{margin-top:0!important}.margin-right-lg-0,.margin-x-lg-0{margin-right:0!important}.margin-bottom-lg-0,.margin-y-lg-0{margin-bottom:0!important}.margin-left-lg-0,.margin-x-lg-0{margin-left:0!important}.margin-lg-1{margin:.25rem!important}.margin-top-lg-1,.margin-y-lg-1{margin-top:.25rem!important}.margin-right-lg-1,.margin-x-lg-1{margin-right:.25rem!important}.margin-bottom-lg-1,.margin-y-lg-1{margin-bottom:.25rem!important}.margin-left-lg-1,.margin-x-lg-1{margin-left:.25rem!important}.margin-lg-2{margin:.5rem!important}.margin-top-lg-2,.margin-y-lg-2{margin-top:.5rem!important}.margin-right-lg-2,.margin-x-lg-2{margin-right:.5rem!important}.margin-bottom-lg-2,.margin-y-lg-2{margin-bottom:.5rem!important}.margin-left-lg-2,.margin-x-lg-2{margin-left:.5rem!important}.margin-lg-3{margin:1rem!important}.margin-top-lg-3,.margin-y-lg-3{margin-top:1rem!important}.margin-right-lg-3,.margin-x-lg-3{margin-right:1rem!important}.margin-bottom-lg-3,.margin-y-lg-3{margin-bottom:1rem!important}.margin-left-lg-3,.margin-x-lg-3{margin-left:1rem!important}.margin-lg-4{margin:2rem!important}.margin-top-lg-4,.margin-y-lg-4{margin-top:2rem!important}.margin-right-lg-4,.margin-x-lg-4{margin-right:2rem!important}.margin-bottom-lg-4,.margin-y-lg-4{margin-bottom:2rem!important}.margin-left-lg-4,.margin-x-lg-4{margin-left:2rem!important}.margin-lg-5{margin:4rem!important}.margin-top-lg-5,.margin-y-lg-5{margin-top:4rem!important}.margin-right-lg-5,.margin-x-lg-5{margin-right:4rem!important}.margin-bottom-lg-5,.margin-y-lg-5{margin-bottom:4rem!important}.margin-left-lg-5,.margin-x-lg-5{margin-left:4rem!important}.padding-lg-0{padding:0!important}.padding-top-lg-0,.padding-y-lg-0{padding-top:0!important}.padding-right-lg-0,.padding-x-lg-0{padding-right:0!important}.padding-bottom-lg-0,.padding-y-lg-0{padding-bottom:0!important}.padding-left-lg-0,.padding-x-lg-0{padding-left:0!important}.padding-lg-1{padding:.25rem!important}.padding-top-lg-1,.padding-y-lg-1{padding-top:.25rem!important}.padding-right-lg-1,.padding-x-lg-1{padding-right:.25rem!important}.padding-bottom-lg-1,.padding-y-lg-1{padding-bottom:.25rem!important}.padding-left-lg-1,.padding-x-lg-1{padding-left:.25rem!important}.padding-lg-2{padding:.5rem!important}.padding-top-lg-2,.padding-y-lg-2{padding-top:.5rem!important}.padding-right-lg-2,.padding-x-lg-2{padding-right:.5rem!important}.padding-bottom-lg-2,.padding-y-lg-2{padding-bottom:.5rem!important}.padding-left-lg-2,.padding-x-lg-2{padding-left:.5rem!important}.padding-lg-3{padding:1rem!important}.padding-top-lg-3,.padding-y-lg-3{padding-top:1rem!important}.padding-right-lg-3,.padding-x-lg-3{padding-right:1rem!important}.padding-bottom-lg-3,.padding-y-lg-3{padding-bottom:1rem!important}.padding-left-lg-3,.padding-x-lg-3{padding-left:1rem!important}.padding-lg-4{padding:2rem!important}.padding-top-lg-4,.padding-y-lg-4{padding-top:2rem!important}.padding-right-lg-4,.padding-x-lg-4{padding-right:2rem!important}.padding-bottom-lg-4,.padding-y-lg-4{padding-bottom:2rem!important}.padding-left-lg-4,.padding-x-lg-4{padding-left:2rem!important}.padding-lg-5{padding:4rem!important}.padding-top-lg-5,.padding-y-lg-5{padding-top:4rem!important}.padding-right-lg-5,.padding-x-lg-5{padding-right:4rem!important}.padding-bottom-lg-5,.padding-y-lg-5{padding-bottom:4rem!important}.padding-left-lg-5,.padding-x-lg-5{padding-left:4rem!important}.margin-lg-n1{margin:-.25rem!important}.margin-top-lg-n1,.margin-y-lg-n1{margin-top:-.25rem!important}.margin-right-lg-n1,.margin-x-lg-n1{margin-right:-.25rem!important}.margin-bottom-lg-n1,.margin-y-lg-n1{margin-bottom:-.25rem!important}.margin-left-lg-n1,.margin-x-lg-n1{margin-left:-.25rem!important}.margin-lg-n2{margin:-.5rem!important}.margin-top-lg-n2,.margin-y-lg-n2{margin-top:-.5rem!important}.margin-right-lg-n2,.margin-x-lg-n2{margin-right:-.5rem!important}.margin-bottom-lg-n2,.margin-y-lg-n2{margin-bottom:-.5rem!important}.margin-left-lg-n2,.margin-x-lg-n2{margin-left:-.5rem!important}.margin-lg-n3{margin:-1rem!important}.margin-top-lg-n3,.margin-y-lg-n3{margin-top:-1rem!important}.margin-right-lg-n3,.margin-x-lg-n3{margin-right:-1rem!important}.margin-bottom-lg-n3,.margin-y-lg-n3{margin-bottom:-1rem!important}.margin-left-lg-n3,.margin-x-lg-n3{margin-left:-1rem!important}.margin-lg-n4{margin:-2rem!important}.margin-top-lg-n4,.margin-y-lg-n4{margin-top:-2rem!important}.margin-right-lg-n4,.margin-x-lg-n4{margin-right:-2rem!important}.margin-bottom-lg-n4,.margin-y-lg-n4{margin-bottom:-2rem!important}.margin-left-lg-n4,.margin-x-lg-n4{margin-left:-2rem!important}.margin-lg-n5{margin:-4rem!important}.margin-top-lg-n5,.margin-y-lg-n5{margin-top:-4rem!important}.margin-right-lg-n5,.margin-x-lg-n5{margin-right:-4rem!important}.margin-bottom-lg-n5,.margin-y-lg-n5{margin-bottom:-4rem!important}.margin-left-lg-n5,.margin-x-lg-n5{margin-left:-4rem!important}.margin-lg-auto{margin:auto!important}.margin-top-lg-auto,.margin-y-lg-auto{margin-top:auto!important}.margin-right-lg-auto,.margin-x-lg-auto{margin-right:auto!important}.margin-bottom-lg-auto,.margin-y-lg-auto{margin-bottom:auto!important}.margin-left-lg-auto,.margin-x-lg-auto{margin-left:auto!important}}@media (min-width: 1200px){.margin-xl-0{margin:0!important}.margin-top-xl-0,.margin-y-xl-0{margin-top:0!important}.margin-right-xl-0,.margin-x-xl-0{margin-right:0!important}.margin-bottom-xl-0,.margin-y-xl-0{margin-bottom:0!important}.margin-left-xl-0,.margin-x-xl-0{margin-left:0!important}.margin-xl-1{margin:.25rem!important}.margin-top-xl-1,.margin-y-xl-1{margin-top:.25rem!important}.margin-right-xl-1,.margin-x-xl-1{margin-right:.25rem!important}.margin-bottom-xl-1,.margin-y-xl-1{margin-bottom:.25rem!important}.margin-left-xl-1,.margin-x-xl-1{margin-left:.25rem!important}.margin-xl-2{margin:.5rem!important}.margin-top-xl-2,.margin-y-xl-2{margin-top:.5rem!important}.margin-right-xl-2,.margin-x-xl-2{margin-right:.5rem!important}.margin-bottom-xl-2,.margin-y-xl-2{margin-bottom:.5rem!important}.margin-left-xl-2,.margin-x-xl-2{margin-left:.5rem!important}.margin-xl-3{margin:1rem!important}.margin-top-xl-3,.margin-y-xl-3{margin-top:1rem!important}.margin-right-xl-3,.margin-x-xl-3{margin-right:1rem!important}.margin-bottom-xl-3,.margin-y-xl-3{margin-bottom:1rem!important}.margin-left-xl-3,.margin-x-xl-3{margin-left:1rem!important}.margin-xl-4{margin:2rem!important}.margin-top-xl-4,.margin-y-xl-4{margin-top:2rem!important}.margin-right-xl-4,.margin-x-xl-4{margin-right:2rem!important}.margin-bottom-xl-4,.margin-y-xl-4{margin-bottom:2rem!important}.margin-left-xl-4,.margin-x-xl-4{margin-left:2rem!important}.margin-xl-5{margin:4rem!important}.margin-top-xl-5,.margin-y-xl-5{margin-top:4rem!important}.margin-right-xl-5,.margin-x-xl-5{margin-right:4rem!important}.margin-bottom-xl-5,.margin-y-xl-5{margin-bottom:4rem!important}.margin-left-xl-5,.margin-x-xl-5{margin-left:4rem!important}.padding-xl-0{padding:0!important}.padding-top-xl-0,.padding-y-xl-0{padding-top:0!important}.padding-right-xl-0,.padding-x-xl-0{padding-right:0!important}.padding-bottom-xl-0,.padding-y-xl-0{padding-bottom:0!important}.padding-left-xl-0,.padding-x-xl-0{padding-left:0!important}.padding-xl-1{padding:.25rem!important}.padding-top-xl-1,.padding-y-xl-1{padding-top:.25rem!important}.padding-right-xl-1,.padding-x-xl-1{padding-right:.25rem!important}.padding-bottom-xl-1,.padding-y-xl-1{padding-bottom:.25rem!important}.padding-left-xl-1,.padding-x-xl-1{padding-left:.25rem!important}.padding-xl-2{padding:.5rem!important}.padding-top-xl-2,.padding-y-xl-2{padding-top:.5rem!important}.padding-right-xl-2,.padding-x-xl-2{padding-right:.5rem!important}.padding-bottom-xl-2,.padding-y-xl-2{padding-bottom:.5rem!important}.padding-left-xl-2,.padding-x-xl-2{padding-left:.5rem!important}.padding-xl-3{padding:1rem!important}.padding-top-xl-3,.padding-y-xl-3{padding-top:1rem!important}.padding-right-xl-3,.padding-x-xl-3{padding-right:1rem!important}.padding-bottom-xl-3,.padding-y-xl-3{padding-bottom:1rem!important}.padding-left-xl-3,.padding-x-xl-3{padding-left:1rem!important}.padding-xl-4{padding:2rem!important}.padding-top-xl-4,.padding-y-xl-4{padding-top:2rem!important}.padding-right-xl-4,.padding-x-xl-4{padding-right:2rem!important}.padding-bottom-xl-4,.padding-y-xl-4{padding-bottom:2rem!important}.padding-left-xl-4,.padding-x-xl-4{padding-left:2rem!important}.padding-xl-5{padding:4rem!important}.padding-top-xl-5,.padding-y-xl-5{padding-top:4rem!important}.padding-right-xl-5,.padding-x-xl-5{padding-right:4rem!important}.padding-bottom-xl-5,.padding-y-xl-5{padding-bottom:4rem!important}.padding-left-xl-5,.padding-x-xl-5{padding-left:4rem!important}.margin-xl-n1{margin:-.25rem!important}.margin-top-xl-n1,.margin-y-xl-n1{margin-top:-.25rem!important}.margin-right-xl-n1,.margin-x-xl-n1{margin-right:-.25rem!important}.margin-bottom-xl-n1,.margin-y-xl-n1{margin-bottom:-.25rem!important}.margin-left-xl-n1,.margin-x-xl-n1{margin-left:-.25rem!important}.margin-xl-n2{margin:-.5rem!important}.margin-top-xl-n2,.margin-y-xl-n2{margin-top:-.5rem!important}.margin-right-xl-n2,.margin-x-xl-n2{margin-right:-.5rem!important}.margin-bottom-xl-n2,.margin-y-xl-n2{margin-bottom:-.5rem!important}.margin-left-xl-n2,.margin-x-xl-n2{margin-left:-.5rem!important}.margin-xl-n3{margin:-1rem!important}.margin-top-xl-n3,.margin-y-xl-n3{margin-top:-1rem!important}.margin-right-xl-n3,.margin-x-xl-n3{margin-right:-1rem!important}.margin-bottom-xl-n3,.margin-y-xl-n3{margin-bottom:-1rem!important}.margin-left-xl-n3,.margin-x-xl-n3{margin-left:-1rem!important}.margin-xl-n4{margin:-2rem!important}.margin-top-xl-n4,.margin-y-xl-n4{margin-top:-2rem!important}.margin-right-xl-n4,.margin-x-xl-n4{margin-right:-2rem!important}.margin-bottom-xl-n4,.margin-y-xl-n4{margin-bottom:-2rem!important}.margin-left-xl-n4,.margin-x-xl-n4{margin-left:-2rem!important}.margin-xl-n5{margin:-4rem!important}.margin-top-xl-n5,.margin-y-xl-n5{margin-top:-4rem!important}.margin-right-xl-n5,.margin-x-xl-n5{margin-right:-4rem!important}.margin-bottom-xl-n5,.margin-y-xl-n5{margin-bottom:-4rem!important}.margin-left-xl-n5,.margin-x-xl-n5{margin-left:-4rem!important}.margin-xl-auto{margin:auto!important}.margin-top-xl-auto,.margin-y-xl-auto{margin-top:auto!important}.margin-right-xl-auto,.margin-x-xl-auto{margin-right:auto!important}.margin-bottom-xl-auto,.margin-y-xl-auto{margin-bottom:auto!important}.margin-left-xl-auto,.margin-x-xl-auto{margin-left:auto!important}}.h1{font-size:2em}.h2{font-size:1.5em}.h3{font-size:1.17em}.h4{font-size:1em}.h5{font-size:.83em}.h6{font-size:.67em}.cursor-alias{cursor:alias}.cursor-all-scroll{cursor:all-scroll}.cursor-auto{cursor:auto}.cursor-cell{cursor:cell}.cursor-context-menu{cursor:context-menu}.cursor-col-resize{cursor:col-resize}.cursor-copy{cursor:copy}.cursor-crosshair{cursor:crosshair}.cursor-default{cursor:default}.cursor-e-resize{cursor:e-resize}.cursor-ew-resize{cursor:ew-resize}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-help{cursor:help}.cursor-move{cursor:move}.cursor-n-resize{cursor:n-resize}.cursor-ne-resize{cursor:ne-resize}.cursor-nesw-resize{cursor:nesw-resize}.cursor-ns-resize{cursor:ns-resize}.cursor-nw-resize{cursor:nw-resize}.cursor-nwse-resize{cursor:nwse-resize}.cursor-no-drop{cursor:no-drop}.cursor-none{cursor:none}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-progress{cursor:progress}.cursor-row-resize{cursor:row-resize}.cursor-s-resize{cursor:s-resize}.cursor-se-resize{cursor:se-resize}.cursor-sw-resize{cursor:sw-resize}.cursor-text{cursor:text}.cursor-w-resize{cursor:w-resize}.cursor-wait{cursor:wait}.cursor-zoom-in{cursor:zoom-in}.cursor-zoom-out{cursor:zoom-out}.mat-tooltip{font-size:16px!important}html,body{height:100%}body{margin:0;padding:0;font-family:opens sans regular,sans-serif}iframe{border:none}.mat-badge-content{font-weight:600;font-size:12px;font-family:Roboto,Helvetica Neue,sans-serif}.mat-badge-small .mat-badge-content{font-size:9px}.mat-badge-large .mat-badge-content{font-size:24px}.mat-h1,.mat-headline,.mat-typography h1{font:400 24px/32px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2,.mat-title,.mat-typography h2{font:500 20px/32px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3,.mat-subheading-2,.mat-typography h3{font:400 16px/28px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4,.mat-subheading-1,.mat-typography h4{font:400 15px/24px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5,.mat-typography h5{font:400 11.62px/20px Roboto,Helvetica Neue,sans-serif;margin:0 0 12px}.mat-h6,.mat-typography h6{font:400 9.38px/20px Roboto,Helvetica Neue,sans-serif;margin:0 0 12px}.mat-body-strong,.mat-body-2{font:500 14px/24px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.mat-body,.mat-body-1,.mat-typography{font:400 14px/20px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.mat-body p,.mat-body-1 p,.mat-typography p{margin:0 0 12px}.mat-small,.mat-caption{font:400 12px/20px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.mat-display-4,.mat-typography .mat-display-4{font:300 112px/112px Roboto,Helvetica Neue,sans-serif;letter-spacing:-.05em;margin:0 0 56px}.mat-display-3,.mat-typography .mat-display-3{font:400 56px/56px Roboto,Helvetica Neue,sans-serif;letter-spacing:-.02em;margin:0 0 64px}.mat-display-2,.mat-typography .mat-display-2{font:400 45px/48px Roboto,Helvetica Neue,sans-serif;letter-spacing:-.005em;margin:0 0 64px}.mat-display-1,.mat-typography .mat-display-1{font:400 34px/40px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container{font:400 14px/20px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.mat-button,.mat-raised-button,.mat-icon-button,.mat-stroked-button,.mat-flat-button,.mat-fab,.mat-mini-fab{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px;font-weight:500}.mat-button-toggle,.mat-card{font-family:Roboto,Helvetica Neue,sans-serif}.mat-card-title{font-size:24px;font-weight:500}.mat-card-header .mat-card-title{font-size:20px}.mat-card-subtitle,.mat-card-content{font-size:14px}.mat-checkbox{font-family:Roboto,Helvetica Neue,sans-serif}.mat-checkbox-layout .mat-checkbox-label{line-height:24px}.mat-chip{font-size:14px;font-weight:500}.mat-chip .mat-chip-trailing-icon.mat-icon,.mat-chip .mat-chip-remove.mat-icon{font-size:18px}.mat-table{font-family:Roboto,Helvetica Neue,sans-serif}.mat-header-cell{font-size:12px;font-weight:500}.mat-cell,.mat-footer-cell{font-size:14px}.mat-calendar{font-family:Roboto,Helvetica Neue,sans-serif}.mat-calendar-body{font-size:13px}.mat-calendar-body-label,.mat-calendar-period-button{font-size:14px;font-weight:500}.mat-calendar-table-header th{font-size:11px;font-weight:400}.mat-dialog-title{font:500 20px/32px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.mat-expansion-panel-header{font-family:Roboto,Helvetica Neue,sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content{font:400 14px/20px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.mat-form-field{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.mat-form-field-wrapper{padding-bottom:1.34375em}.mat-form-field-prefix .mat-icon,.mat-form-field-suffix .mat-icon{font-size:150%;line-height:1.125}.mat-form-field-prefix .mat-icon-button,.mat-form-field-suffix .mat-icon-button{height:1.5em;width:1.5em}.mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field-suffix .mat-icon-button .mat-icon{height:1.125em;line-height:1.125}.mat-form-field-infix{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.34375em) scale(.75);width:133.3333333333%}.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.34374em) scale(.75);width:133.3333433333%}.mat-form-field-label-wrapper{top:-.84375em;padding-top:.84375em}.mat-form-field-label{top:1.34375em}.mat-form-field-underline{bottom:1.34375em}.mat-form-field-subscript-wrapper{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy .mat-form-field-wrapper{padding-bottom:1.25em}.mat-form-field-appearance-legacy .mat-form-field-infix{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.001px);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.00101px);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.00102px);width:133.3333533333%}.mat-form-field-appearance-legacy .mat-form-field-label{top:1.28125em}.mat-form-field-appearance-legacy .mat-form-field-underline{bottom:1.25em}.mat-form-field-appearance-legacy .mat-form-field-subscript-wrapper{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28122em) scale(.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28121em) scale(.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.2812em) scale(.75)}}.mat-form-field-appearance-fill .mat-form-field-infix{padding:.25em 0 .75em}.mat-form-field-appearance-fill .mat-form-field-label{top:1.09375em;margin-top:-.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-.59375em) scale(.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-.59374em) scale(.75);width:133.3333433333%}.mat-form-field-appearance-outline .mat-form-field-infix{padding:1em 0}.mat-form-field-appearance-outline .mat-form-field-label{top:1.84375em;margin-top:-.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.59375em) scale(.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.59374em) scale(.75);width:133.3333433333%}.mat-grid-tile-header,.mat-grid-tile-footer{font-size:14px}.mat-grid-tile-header .mat-line,.mat-grid-tile-footer .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header .mat-line:nth-child(n+2),.mat-grid-tile-footer .mat-line:nth-child(n+2){font-size:12px}input.mat-input-element{margin-top:-.0625em}.mat-menu-item{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px;font-weight:400}.mat-paginator,.mat-paginator-page-size .mat-select-trigger{font-family:Roboto,Helvetica Neue,sans-serif;font-size:12px}.mat-radio-button,.mat-select{font-family:Roboto,Helvetica Neue,sans-serif}.mat-select-trigger{height:1.125em}.mat-slide-toggle-content{font-family:Roboto,Helvetica Neue,sans-serif}.mat-slider-thumb-label-text{font-family:Roboto,Helvetica Neue,sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical,.mat-stepper-horizontal{font-family:Roboto,Helvetica Neue,sans-serif}.mat-step-label{font-size:14px;font-weight:400}.mat-step-sub-label-error{font-weight:400}.mat-step-label-error{font-size:14px}.mat-step-label-selected{font-size:14px;font-weight:500}.mat-tab-group{font-family:Roboto,Helvetica Neue,sans-serif}.mat-tab-label,.mat-tab-link{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px;font-weight:500}.mat-toolbar,.mat-toolbar h1,.mat-toolbar h2,.mat-toolbar h3,.mat-toolbar h4,.mat-toolbar h5,.mat-toolbar h6{font:500 20px/32px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;margin:0}.mat-tooltip{font-family:Roboto,Helvetica Neue,sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item,.mat-list-option{font-family:Roboto,Helvetica Neue,sans-serif}.mat-list-base .mat-list-item{font-size:16px}.mat-list-base .mat-list-item .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base .mat-list-item .mat-line:nth-child(n+2){font-size:14px}.mat-list-base .mat-list-option{font-size:16px}.mat-list-base .mat-list-option .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base .mat-list-option .mat-line:nth-child(n+2){font-size:14px}.mat-list-base .mat-subheader{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense] .mat-list-item{font-size:12px}.mat-list-base[dense] .mat-list-item .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense] .mat-list-item .mat-line:nth-child(n+2){font-size:12px}.mat-list-base[dense] .mat-list-option{font-size:12px}.mat-list-base[dense] .mat-list-option .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense] .mat-list-option .mat-line:nth-child(n+2){font-size:12px}.mat-list-base[dense] .mat-subheader{font-family:Roboto,Helvetica Neue,sans-serif;font-size:12px;font-weight:500}.mat-option{font-family:Roboto,Helvetica Neue,sans-serif;font-size:16px}.mat-optgroup-label{font:500 14px/24px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.mat-simple-snackbar{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px}.mat-simple-snackbar-action{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree{font-family:Roboto,Helvetica Neue,sans-serif}.mat-tree-node,.mat-nested-tree-node{font-weight:400;font-size:14px}.mat-ripple{overflow:hidden;position:relative}.mat-ripple:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0,0,.2,1);transform:scale(0)}.cdk-high-contrast-active .mat-ripple-element{display:none}.cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop,.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{padding:2px 0!important;box-sizing:content-box!important;height:auto!important;overflow:hidden!important}textarea.cdk-textarea-autosize-measuring-firefox{padding:2px 0!important;box-sizing:content-box!important;height:0!important}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}.mat-focus-indicator,.mat-mdc-focus-indicator{position:relative}.title,.header{font-family:Encode Sans Condensed,sans-serif;font-weight:900}.paragraph-title,.tagline{font-family:Open Sans,sans-serif;font-weight:400}.paragraph-title-bold .tagLine-bold{font-family:Open Sans,sans-serif;font-weight:700}.plain-text,.remarks{font-family:Open Sans,sans-serif;font-weight:300}.plain-text-bold{font-family:Open Sans,sans-serif;font-weight:700}.flex-column{box-sizing:border-box;display:flex;flex-direction:column}.flex-row{box-sizing:border-box;display:flex;flex-direction:row}.flex-row-center{align-items:center;justify-content:center}.mat-button-large{line-height:48px;font-size:18px;font-weight:700;padding:0 24px!important}.mat-round{border-radius:.5em}:root{--initial-primary: #4a918e;--initial-accent: #9cd8d7;--initial-warn: #ef4351;--initial-dark-background: #222222;--initial-light-background: #f2f2f2;--initial-light-background: white;--initial-light-text: rgba(0, 0, 0, .87);--initial-dark-text: rgba(255, 255, 255, .87);--background: #050505;--orange-accent: #ff9800;--green-accent: #00e676;--yellow-accent: #fdd835;--purple-accent: #9c27b0;--cyan-accent: rgba(132, 255, 255, .75);--pink-accent: #e91e63;--success: #00e676}body{background-color:var(--initial-dark-background)}::ng-deep .mat-tooltip{font-size:16px!important}:host .valid-control{color:var(--green-accent)}:host .invalid-control{color:var(--theme-warn-500)}:host .actions .item:not(:last-child){margin-right:0}:host .project-thumbnail img{height:50px;width:auto}:host .active{background-color:var(--theme-accent-400);transition:background-color 1s linear}:host .inactive{background-color:#f2f5a900;transition:background-color 1s linear}:host .expansion-panel{width:100%;margin-bottom:10px}:host .expansion-container{max-height:300px;overflow-y:auto}:host .divider-fill-vert{background-color:var(--theme-accent-500);min-height:100%;top:10%;bottom:10%;min-width:5px}:host .divider-fill-hor{background-color:var(--theme-accent-500);height:5px;width:100%}:host .form-disabled{background-color:#797979;opacity:.5;border-radius:4px}::ng-deep input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,input:-webkit-autofill:active{-webkit-transition:background-color 5000s ease-in-out 0s;transition:background-color 5000s ease-in-out 0s;-webkit-text-fill-color:#FFFFFFDE}@media (max-width: 768px){.spread{margin:1em!important}}@media (max-width: 480px){.spread{margin:.5em!important}}.spinner-logo{display:none!important}:host ::ng-deep a{text-decoration:none;color:#4a918e}\n"], components: [{ type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i6.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i7.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i8.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i9.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { type: i10.MatChipList, selector: "mat-chip-list", inputs: ["errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { type: i8.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-icon-button], a[mat-fab], a[mat-mini-fab], a[mat-stroked-button], a[mat-flat-button]", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matButton", "matAnchor"] }, { type: i11.LoaderComponent, selector: "lcu-loader", inputs: ["diameter", "hide-inner", "loading"] }], directives: [{ type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.MatPrefix, selector: "[matPrefix]" }, { type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i12.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.MatSuffix, selector: "[matSuffix]" }, { type: i13.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i4.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { type: i14.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i15.DefaultShowHideDirective, selector: " [fxShow], [fxShow.print], [fxShow.xs], [fxShow.sm], [fxShow.md], [fxShow.lg], [fxShow.xl], [fxShow.lt-sm], [fxShow.lt-md], [fxShow.lt-lg], [fxShow.lt-xl], [fxShow.gt-xs], [fxShow.gt-sm], [fxShow.gt-md], [fxShow.gt-lg], [fxHide], [fxHide.print], [fxHide.xs], [fxHide.sm], [fxHide.md], [fxHide.lg], [fxHide.xl], [fxHide.lt-sm], [fxHide.lt-md], [fxHide.lt-lg], [fxHide.lt-xl], [fxHide.gt-xs], [fxHide.gt-sm], [fxHide.gt-md], [fxHide.gt-lg]", inputs: ["fxShow", "fxShow.print", "fxShow.xs", "fxShow.sm", "fxShow.md", "fxShow.lg", "fxShow.xl", "fxShow.lt-sm", "fxShow.lt-md", "fxShow.lt-lg", "fxShow.lt-xl", "fxShow.gt-xs", "fxShow.gt-sm", "fxShow.gt-md", "fxShow.gt-lg", "fxHide", "fxHide.print", "fxHide.xs", "fxHide.sm", "fxHide.md", "fxHide.lg", "fxHide.xl", "fxHide.lt-sm", "fxHide.lt-md", "fxHide.lt-lg", "fxHide.lt-xl", "fxHide.gt-xs", "fxHide.gt-sm", "fxHide.gt-md", "fxHide.gt-lg"] }, { type: i4.MatLabel, selector: "mat-label" }, { type: i10.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { type: i10.MatChipRemove, selector: "[matChipRemove]" }, { type: i9.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { type: i10.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }] });
247
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: SourceControlFormControlsComponent, decorators: [{
248
- type: Component,
249
- args: [{ selector: 'lcu-source-control-form-controls', template: "<div [formGroup]=\"FormGroup\">\n <div class=\"card\" *ngIf=\"OrganizationFormControl?.valid || !Loading\">\n <mat-form-field\n class=\"mat-full-width with-hint\"\n *ngIf=\"OrganizationOptions?.length > 0\"\n >\n <mat-icon class=\"org-icon\" matPrefix>corporate_fare</mat-icon>\n\n <mat-select\n [formControlName]=\"SourceControlRoot + 'organization'\"\n placeholder=\"Organization\"\n (selectionChange)=\"OrganizationChanged($event)\"\n [disabled]=\"Loading || OrganizationDisabled\"\n required\n >\n <ng-container *ngFor=\"let orgOpt of OrganizationOptions\">\n <mat-option [value]=\"orgOpt.Name\">\n {{ orgOpt.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n\n <mat-icon matSuffix (click)=\"RefreshOrganizations()\" matTooltip=\"Refresh Organization\"> refresh </mat-icon>\n\n <a\n matSuffix\n href=\"/.oauth/github?oauth-force-edit=true\"\n target=\"_blank\"\n color=\"accent\"\n >\n <mat-icon color=\"accent\" matTooltip=\"Re-authorize Organizations\"> launch </mat-icon>\n </a>\n\n <mat-hint>\n If you don't have an organization or would like to create a new one,\n <a\n href=\"https://github.com/account/organizations/new\"\n target=\"_blank\"\n >\n start here\n </a>\n </mat-hint>\n </mat-form-field>\n </div>\n\n <div\n class=\"card\"\n *ngIf=\"\n RepositoryFormControl?.valid ||\n (OrganizationFormControl?.valid && !Loading)\n \"\n >\n <mat-form-field class=\"mat-full-width\">\n <mat-icon class=\"org-icon\" matPrefix>description</mat-icon>\n\n <mat-select\n [formControlName]=\"SourceControlRoot + 'repository'\"\n [placeholder]=\"\n OrganizationFormControl?.valid\n ? 'Repository'\n : 'Repository (select organization first)'\n \"\n [disabled]=\"\n !OrganizationFormControl?.valid || Loading || RepositoryDisabled\n \"\n (selectionChange)=\"RepositoryChanged($event)\"\n *ngIf=\"!CreatingRepository\"\n required\n >\n <ng-container *ngFor=\"let repoOpt of RepositoryOptions\">\n <mat-option [value]=\"repoOpt.Name\">\n {{ repoOpt.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n\n <input\n matInput\n placeholder=\"Repository (creates new if does not exist)\"\n [formControlName]=\"SourceControlRoot + 'repository'\"\n *ngIf=\"CreatingRepository\"\n [fxHide]=\"Loading || RepositoryDisabled\"\n required\n />\n\n <mat-icon\n matSuffix\n (click)=\"CreateRepository()\"\n [fxHide]=\"Loading || RepositoryDisabled\"\n *ngIf=\"!CreatingRepository && OrganizationFormControl?.valid\"\n >\n add_circle\n </mat-icon>\n\n <button mat-button type=\"button\" \n (click)=\"SaveRepository()\" \n *ngIf=\"CreatingRepository && RepositoryFormControl?.valid\">\n\n <mat-icon\n matSuffix\n color=\"primary\"\n >\n save\n </mat-icon>\n </button>\n\n <button mat-button type=\"button\" \n (click)=\"CancelCreateRepository()\"\n *ngIf=\"CreatingRepository\">\n\n <mat-icon\n matSuffix\n \n >\n cancel\n </mat-icon>\n </button>\n </mat-form-field>\n </div>\n\n <div\n class=\"card\"\n *ngIf=\"\n (BranchesFormControl?.valid ||\n (OrganizationFormControl?.valid &&\n RepositoryFormControl?.valid &&\n !Loading)) &&\n !CreatingRepository &&\n UseBranches\n \"\n >\n <mat-form-field class=\"mat-full-width\">\n <mat-icon class=\"org-icon\" matPrefix>account_tree</mat-icon>\n\n <mat-label>Selected Branches</mat-label>\n\n <mat-autocomplete\n (optionSelected)=\"BranchOptionSelected($event)\"\n #branchOptions=\"matAutocomplete\"\n >\n <ng-container *ngFor=\"let branchOpt of BranchOptions\">\n <mat-option [value]=\"branchOpt.Name\">\n {{ branchOpt.Name }}\n </mat-option>\n </ng-container>\n </mat-autocomplete>\n\n <mat-chip-list #selectedBranches>\n <mat-chip\n [removable]=\"true\"\n (removed)=\"RemoveBranchOption(selBranch)\"\n *ngFor=\"let selBranch of SelectedBranches\"\n >\n {{ selBranch }}\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip>\n\n <input\n matInput\n placeholder=\"New Branch...\"\n [formControlName]=\"SourceControlRoot + 'branches'\"\n #branches\n [matAutocomplete]=\"branchOptions\"\n [matChipInputFor]=\"selectedBranches\"\n [matChipInputSeparatorKeyCodes]=\"SeparatorKeysCodes\"\n [matChipInputAddOnBlur]=\"true\"\n (matChipInputTokenEnd)=\"AddBranchOption($event)\"\n [disabled]=\"Loading || BranchesDisabled\"\n required\n />\n </mat-chip-list>\n </mat-form-field>\n\n <mat-form-field\n class=\"mat-full-width with-hint\"\n [fxShow]=\"SelectedBranches?.length > 1\"\n >\n <mat-icon class=\"org-icon\" matPrefix>account_tree</mat-icon>\n\n <mat-select\n [formControlName]=\"SourceControlRoot + 'mainBranch'\"\n placeholder=\"Main Branch\"\n [disabled]=\"Loading || BranchesDisabled\"\n (selectionChange)=\"MainBranchChanged($event)\"\n required\n >\n <ng-container *ngFor=\"let branch of SelectedBranches\">\n <mat-option [value]=\"branch\">\n {{ branch }}\n </mat-option>\n </ng-container>\n </mat-select>\n\n <mat-icon matSuffix (click)=\"RefreshOrganizations()\"> refresh </mat-icon>\n\n <a\n matSuffix\n mat-icon-button\n href=\"/.oauth/github?oauth-force-edit=true\"\n \n target=\"_blank\"\n color=\"accent\"\n >\n <mat-icon\n matTooltip=\"Re-authorize Organizations\"\n color=\"accent\"> launch </mat-icon>\n </a>\n\n <mat-hint>\n If you don't have an organization or would like to create a new one,\n <a\n href=\"https://github.com/account/organizations/new\"\n target=\"_blank\"\n >\n start here\n </a>\n </mat-hint>\n </mat-form-field>\n </div>\n\n <div\n class=\"card\"\n *ngIf=\"\n (BuildPathFormControl?.valid ||\n (OrganizationFormControl?.valid &&\n RepositoryFormControl?.valid &&\n !Loading)) &&\n !CreatingRepository &&\n UseBuildPath\n \"\n >\n <mat-form-field class=\"mat-full-width with-hint\">\n <mat-icon class=\"org-icon\" matPrefix>build</mat-icon>\n\n <mat-select\n [formControlName]=\"SourceControlRoot + 'buildPath'\"\n placeholder=\"Build Path\"\n [disabled]=\"Loading || BuildPathDisabled\"\n (selectionChange)=\"BuildPathChanged($event)\"\n required\n >\n <ng-container *ngFor=\"let buildPath of BuildPathOptions\">\n <mat-option [value]=\"buildPath\">\n {{ buildPath }}\n </mat-option>\n </ng-container>\n </mat-select>\n\n <mat-hint>\n The build path identifies which build action to use for your\n configuration.\n </mat-hint>\n </mat-form-field>\n </div>\n\n <div *ngIf=\"Loading\">\n <div class=\"spread\">\n <lcu-loader style=\"margin: auto\" [loading]=\"true\"></lcu-loader>\n\n <div class=\"margin-3\">\n <h4 class=\"mat-title\" *ngIf=\"!OrganizationFormControl?.valid\">\n Loading organizations\n </h4>\n\n <h4\n class=\"mat-title\"\n *ngIf=\"\n OrganizationFormControl?.valid && !RepositoryFormControl?.valid\n \"\n >\n Loading repositories\n </h4>\n\n <h4\n class=\"mat-title\"\n *ngIf=\"RepositoryFormControl?.valid && !BranchesFormControl?.valid\"\n >\n Loading branches\n </h4>\n\n <h4\n class=\"mat-title\"\n *ngIf=\"\n (RepositoryFormControl?.valid || BranchesFormControl?.valid) &&\n !BuildPathFormControl?.valid\n \"\n >\n Loading build paths\n </h4>\n </div>\n </div>\n </div>\n</div>\n", styles: ["@import\"https://fonts.googleapis.com/icon?family=Material+Icons\";@import\"https://fonts.googleapis.com/css?family=Encode+Sans+Condensed:400,900&display=swap\";@import\"https://fonts.googleapis.com/css?family=Open+Sans:300,400,700&display=swap\";.disable-autofill-background-default input:-webkit-autofill,.disable-autofill-background-default input:-webkit-autofill:hover,.disable-autofill-background-default input:-webkit-autofill:focus,.disable-autofill-background-default textarea:-webkit-autofill,.disable-autofill-background-default textarea:-webkit-autofill:hover,.disable-autofill-background-default textarea:-webkit-autofill:focus,.disable-autofill-background-default select:-webkit-autofill,.disable-autofill-background-default select:-webkit-autofill:hover,.disable-autofill-background-default select:-webkit-autofill:focus{-webkit-transition:background-color 5000s!important;transition:background-color 5000s!important}.list-item-disabled{opacity:.5;filter:alpha(opacity=50);cursor:not-allowed!important}.filler{flex:1 1 auto;display:inline-block!important}.sticky{position:sticky;z-index:750;top:0}.inline{display:inline-block}.contents,.page-element{display:contents}.mat-spinner{margin:auto}.mat-full-width{width:100%}.spread{margin:2rem}.spread-thin{margin:1rem}.overlay{position:sticky!important}.overlay.top{top:0}.overlay.bottom{bottom:0}.margin-0{margin:0!important}.margin-top-0,.margin-y-0{margin-top:0!important}.margin-right-0,.margin-x-0{margin-right:0!important}.margin-bottom-0,.margin-y-0{margin-bottom:0!important}.margin-left-0,.margin-x-0{margin-left:0!important}.margin-1{margin:.25rem!important}.margin-top-1,.margin-y-1{margin-top:.25rem!important}.margin-right-1,.margin-x-1{margin-right:.25rem!important}.margin-bottom-1,.margin-y-1{margin-bottom:.25rem!important}.margin-left-1,.margin-x-1{margin-left:.25rem!important}.margin-2{margin:.5rem!important}.margin-top-2,.margin-y-2{margin-top:.5rem!important}.margin-right-2,.margin-x-2{margin-right:.5rem!important}.margin-bottom-2,.margin-y-2{margin-bottom:.5rem!important}.margin-left-2,.margin-x-2{margin-left:.5rem!important}.margin-3{margin:1rem!important}.margin-top-3,.margin-y-3{margin-top:1rem!important}.margin-top-bottom-3{margin:1rem 0!important}.margin-right-3,.margin-x-3{margin-right:1rem!important}.margin-bottom-3,.margin-y-3{margin-bottom:1rem!important}.margin-left-3,.margin-x-3{margin-left:1rem!important}.margin-4{margin:2rem!important}.margin-top-4,.margin-y-4{margin-top:2rem!important}.margin-right-4,.margin-x-4{margin-right:2rem!important}.margin-bottom-4,.margin-y-4{margin-bottom:2rem!important}.margin-left-4,.margin-x-4{margin-left:2rem!important}.margin-right-5,.margin-x-5{margin-right:4rem!important}.margin-bottom-5,.margin-y-5{margin-bottom:4rem!important}.margin-left-5,.margin-x-5{margin-left:4rem!important}.margin-5{margin:4rem!important}.margin-top-5,.margin-y-5{margin-top:4rem!important}.margin-right-6,.margin-x-6{margin-right:4.5rem!important}.margin-bottom-6,.margin-y-6{margin-bottom:4.5rem!important}.margin-left-6,.margin-x-6{margin-left:4.5rem!important}.margin-7{margin:6rem!important}.margin-top-7,.margin-y-7{margin-top:6rem!important}.margin-right-7,.margin-x-7{margin-right:6rem!important}.margin-bottom-7,.margin-y-7{margin-bottom:6rem!important}.margin-left-7,.margin-x-7{margin-left:6rem!important}.margin-8{margin:7.5rem!important}.margin-top-8,.margin-y-8{margin-top:7.5rem!important}.margin-right-8,.margin-x-8{margin-right:7.5rem!important}.margin-bottom-8,.margin-y-8{margin-bottom:7.5rem!important}.margin-left-8,.margin-x-8{margin-left:7.5rem!important}.margin-9{margin:9rem!important}.margin-top-9,.margin-y-9{margin-top:9rem!important}.margin-right-9,.margin-x-9{margin-right:9rem!important}.margin-bottom-9,.margin-y-9{margin-bottom:9rem!important}.margin-left-9,.margin-x-9{margin-left:9rem!important}.padding-0{padding:0!important}.padding-top-0,.padding-y-0{padding-top:0!important}.padding-right-0,.padding-x-0{padding-right:0!important}.padding-bottom-0,.padding-y-0{padding-bottom:0!important}.padding-left-0,.padding-x-0{padding-left:0!important}.padding-1{padding:.25rem!important}.padding-top-1,.padding-y-1{padding-top:.25rem!important}.padding-right-1,.padding-x-1{padding-right:.25rem!important}.padding-bottom-1,.padding-y-1{padding-bottom:.25rem!important}.padding-left-1,.padding-x-1{padding-left:.25rem!important}.padding-2{padding:.5rem!important}.padding-top-2,.padding-y-2{padding-top:.5rem!important}.padding-right-2,.padding-x-2{padding-right:.5rem!important}.padding-bottom-2,.padding-y-2{padding-bottom:.5rem!important}.padding-left-2,.padding-x-2{padding-left:.5rem!important}.padding-3{padding:1rem!important}.padding-top-3,.padding-y-3{padding-top:1rem!important}.padding-right-3,.padding-x-3{padding-right:1rem!important}.padding-bottom-3,.padding-y-3{padding-bottom:1rem!important}.padding-left-3,.padding-x-3{padding-left:1rem!important}.padding-4{padding:2rem!important}.padding-top-4,.padding-y-4{padding-top:2rem!important}.padding-right-4,.padding-x-4{padding-right:2rem!important}.padding-bottom-4,.padding-y-4{padding-bottom:2rem!important}.padding-left-4,.padding-x-4{padding-left:2rem!important}.padding-5{padding:4rem!important}.padding-top-5,.padding-y-5{padding-top:4rem!important}.padding-right-5,.padding-x-5{padding-right:4rem!important}.padding-bottom-5,.padding-y-5{padding-bottom:4rem!important}.padding-left-5,.padding-x-5{padding-left:4rem!important}.margin-n1{margin:-.25rem!important}.margin-top-n1,.margin-y-n1{margin-top:-.25rem!important}.margin-right-n1,.margin-x-n1{margin-right:-.25rem!important}.margin-bottom-n1,.margin-y-n1{margin-bottom:-.25rem!important}.margin-left-n1,.margin-x-n1{margin-left:-.25rem!important}.margin-n2{margin:-.5rem!important}.margin-top-n2,.margin-y-n2{margin-top:-.5rem!important}.margin-right-n2,.margin-x-n2{margin-right:-.5rem!important}.margin-bottom-n2,.margin-y-n2{margin-bottom:-.5rem!important}.margin-left-n2,.margin-x-n2{margin-left:-.5rem!important}.margin-n3{margin:-1rem!important}.margin-top-n3,.margin-y-n3{margin-top:-1rem!important}.margin-right-n3,.margin-x-n3{margin-right:-1rem!important}.margin-bottom-n3,.margin-y-n3{margin-bottom:-1rem!important}.margin-left-n3,.margin-x-n3{margin-left:-1rem!important}.margin-n4{margin:-2rem!important}.margin-top-n4,.margin-y-n4{margin-top:-2rem!important}.margin-right-n4,.margin-x-n4{margin-right:-2rem!important}.margin-bottom-n4,.margin-y-n4{margin-bottom:-2rem!important}.margin-left-n4,.margin-x-n4{margin-left:-2rem!important}.margin-n5{margin:-4rem!important}.margin-top-n5,.margin-y-n5{margin-top:-4rem!important}.margin-right-n5,.margin-x-n5{margin-right:-4rem!important}.margin-bottom-n5,.margin-y-n5{margin-bottom:-4rem!important}.margin-left-n5,.margin-x-n5{margin-left:-4rem!important}.margin-auto{margin:auto!important}.margin-top-auto,.margin-y-auto{margin-top:auto!important}.margin-right-auto,.margin-x-auto{margin-right:auto!important}.margin-bottom-auto,.margin-y-auto{margin-bottom:auto!important}.margin-left-auto,.margin-x-auto{margin-left:auto!important}@media (min-width: 576px){.margin-sm-0{margin:0!important}.margin-top-sm-0,.margin-y-sm-0{margin-top:0!important}.margin-right-sm-0,.margin-x-sm-0{margin-right:0!important}.margin-bottom-sm-0,.margin-y-sm-0{margin-bottom:0!important}.margin-left-sm-0,.margin-x-sm-0{margin-left:0!important}.margin-sm-1{margin:.25rem!important}.margin-top-sm-1,.margin-y-sm-1{margin-top:.25rem!important}.margin-right-sm-1,.margin-x-sm-1{margin-right:.25rem!important}.margin-bottom-sm-1,.margin-y-sm-1{margin-bottom:.25rem!important}.margin-left-sm-1,.margin-x-sm-1{margin-left:.25rem!important}.margin-sm-2{margin:.5rem!important}.margin-top-sm-2,.margin-y-sm-2{margin-top:.5rem!important}.margin-right-sm-2,.margin-x-sm-2{margin-right:.5rem!important}.margin-bottom-sm-2,.margin-y-sm-2{margin-bottom:.5rem!important}.margin-left-sm-2,.margin-x-sm-2{margin-left:.5rem!important}.margin-sm-3{margin:1rem!important}.margin-top-sm-3,.margin-y-sm-3{margin-top:1rem!important}.margin-right-sm-3,.margin-x-sm-3{margin-right:1rem!important}.margin-bottom-sm-3,.margin-y-sm-3{margin-bottom:1rem!important}.margin-left-sm-3,.margin-x-sm-3{margin-left:1rem!important}.margin-sm-4{margin:2rem!important}.margin-top-sm-4,.margin-y-sm-4{margin-top:2rem!important}.margin-right-sm-4,.margin-x-sm-4{margin-right:2rem!important}.margin-bottom-sm-4,.margin-y-sm-4{margin-bottom:2rem!important}.margin-left-sm-4,.margin-x-sm-4{margin-left:2rem!important}.margin-sm-5{margin:4rem!important}.margin-top-sm-5,.margin-y-sm-5{margin-top:4rem!important}.margin-right-sm-5,.margin-x-sm-5{margin-right:4rem!important}.margin-bottom-sm-5,.margin-y-sm-5{margin-bottom:4rem!important}.margin-left-sm-5,.margin-x-sm-5{margin-left:4rem!important}.padding-sm-0{padding:0!important}.padding-top-sm-0,.padding-y-sm-0{padding-top:0!important}.padding-right-sm-0,.padding-x-sm-0{padding-right:0!important}.padding-bottom-sm-0,.padding-y-sm-0{padding-bottom:0!important}.padding-left-sm-0,.padding-x-sm-0{padding-left:0!important}.padding-sm-1{padding:.25rem!important}.padding-top-sm-1,.padding-y-sm-1{padding-top:.25rem!important}.padding-right-sm-1,.padding-x-sm-1{padding-right:.25rem!important}.padding-bottom-sm-1,.padding-y-sm-1{padding-bottom:.25rem!important}.padding-left-sm-1,.padding-x-sm-1{padding-left:.25rem!important}.padding-sm-2{padding:.5rem!important}.padding-top-sm-2,.padding-y-sm-2{padding-top:.5rem!important}.padding-right-sm-2,.padding-x-sm-2{padding-right:.5rem!important}.padding-bottom-sm-2,.padding-y-sm-2{padding-bottom:.5rem!important}.padding-left-sm-2,.padding-x-sm-2{padding-left:.5rem!important}.padding-sm-3{padding:1rem!important}.padding-top-sm-3,.padding-y-sm-3{padding-top:1rem!important}.padding-right-sm-3,.padding-x-sm-3{padding-right:1rem!important}.padding-bottom-sm-3,.padding-y-sm-3{padding-bottom:1rem!important}.padding-left-sm-3,.padding-x-sm-3{padding-left:1rem!important}.padding-sm-4{padding:2rem!important}.padding-top-sm-4,.padding-y-sm-4{padding-top:2rem!important}.padding-right-sm-4,.padding-x-sm-4{padding-right:2rem!important}.padding-bottom-sm-4,.padding-y-sm-4{padding-bottom:2rem!important}.padding-left-sm-4,.padding-x-sm-4{padding-left:2rem!important}.padding-sm-5{padding:4rem!important}.padding-top-sm-5,.padding-y-sm-5{padding-top:4rem!important}.padding-right-sm-5,.padding-x-sm-5{padding-right:4rem!important}.padding-bottom-sm-5,.padding-y-sm-5{padding-bottom:4rem!important}.padding-left-sm-5,.padding-x-sm-5{padding-left:4rem!important}.margin-sm-n1{margin:-.25rem!important}.margin-top-sm-n1,.margin-y-sm-n1{margin-top:-.25rem!important}.margin-right-sm-n1,.margin-x-sm-n1{margin-right:-.25rem!important}.margin-bottom-sm-n1,.margin-y-sm-n1{margin-bottom:-.25rem!important}.margin-left-sm-n1,.margin-x-sm-n1{margin-left:-.25rem!important}.margin-sm-n2{margin:-.5rem!important}.margin-top-sm-n2,.margin-y-sm-n2{margin-top:-.5rem!important}.margin-right-sm-n2,.margin-x-sm-n2{margin-right:-.5rem!important}.margin-bottom-sm-n2,.margin-y-sm-n2{margin-bottom:-.5rem!important}.margin-left-sm-n2,.margin-x-sm-n2{margin-left:-.5rem!important}.margin-sm-n3{margin:-1rem!important}.margin-top-sm-n3,.margin-y-sm-n3{margin-top:-1rem!important}.margin-right-sm-n3,.margin-x-sm-n3{margin-right:-1rem!important}.margin-bottom-sm-n3,.margin-y-sm-n3{margin-bottom:-1rem!important}.margin-left-sm-n3,.margin-x-sm-n3{margin-left:-1rem!important}.margin-sm-n4{margin:-2rem!important}.margin-top-sm-n4,.margin-y-sm-n4{margin-top:-2rem!important}.margin-right-sm-n4,.margin-x-sm-n4{margin-right:-2rem!important}.margin-bottom-sm-n4,.margin-y-sm-n4{margin-bottom:-2rem!important}.margin-left-sm-n4,.margin-x-sm-n4{margin-left:-2rem!important}.margin-sm-n5{margin:-4rem!important}.margin-top-sm-n5,.margin-y-sm-n5{margin-top:-4rem!important}.margin-right-sm-n5,.margin-x-sm-n5{margin-right:-4rem!important}.margin-bottom-sm-n5,.margin-y-sm-n5{margin-bottom:-4rem!important}.margin-left-sm-n5,.margin-x-sm-n5{margin-left:-4rem!important}.margin-sm-auto{margin:auto!important}.margin-top-sm-auto,.margin-y-sm-auto{margin-top:auto!important}.margin-right-sm-auto,.margin-x-sm-auto{margin-right:auto!important}.margin-bottom-sm-auto,.margin-y-sm-auto{margin-bottom:auto!important}.margin-left-sm-auto,.margin-x-sm-auto{margin-left:auto!important}}@media (min-width: 768px){.margin-md-0{margin:0!important}.margin-top-md-0,.margin-y-md-0{margin-top:0!important}.margin-right-md-0,.margin-x-md-0{margin-right:0!important}.margin-bottom-md-0,.margin-y-md-0{margin-bottom:0!important}.margin-left-md-0,.margin-x-md-0{margin-left:0!important}.margin-md-1{margin:.25rem!important}.margin-top-md-1,.margin-y-md-1{margin-top:.25rem!important}.margin-right-md-1,.margin-x-md-1{margin-right:.25rem!important}.margin-bottom-md-1,.margin-y-md-1{margin-bottom:.25rem!important}.margin-left-md-1,.margin-x-md-1{margin-left:.25rem!important}.margin-md-2{margin:.5rem!important}.margin-top-md-2,.margin-y-md-2{margin-top:.5rem!important}.margin-right-md-2,.margin-x-md-2{margin-right:.5rem!important}.margin-bottom-md-2,.margin-y-md-2{margin-bottom:.5rem!important}.margin-left-md-2,.margin-x-md-2{margin-left:.5rem!important}.margin-md-3{margin:1rem!important}.margin-top-md-3,.margin-y-md-3{margin-top:1rem!important}.margin-right-md-3,.margin-x-md-3{margin-right:1rem!important}.margin-bottom-md-3,.margin-y-md-3{margin-bottom:1rem!important}.margin-left-md-3,.margin-x-md-3{margin-left:1rem!important}.margin-md-4{margin:2rem!important}.margin-top-md-4,.margin-y-md-4{margin-top:2rem!important}.margin-right-md-4,.margin-x-md-4{margin-right:2rem!important}.margin-bottom-md-4,.margin-y-md-4{margin-bottom:2rem!important}.margin-left-md-4,.margin-x-md-4{margin-left:2rem!important}.margin-md-5{margin:4rem!important}.margin-top-md-5,.margin-y-md-5{margin-top:4rem!important}.margin-right-md-5,.margin-x-md-5{margin-right:4rem!important}.margin-bottom-md-5,.margin-y-md-5{margin-bottom:4rem!important}.margin-left-md-5,.margin-x-md-5{margin-left:4rem!important}.padding-md-0{padding:0!important}.padding-top-md-0,.padding-y-md-0{padding-top:0!important}.padding-right-md-0,.padding-x-md-0{padding-right:0!important}.padding-bottom-md-0,.padding-y-md-0{padding-bottom:0!important}.padding-left-md-0,.padding-x-md-0{padding-left:0!important}.padding-md-1{padding:.25rem!important}.padding-top-md-1,.padding-y-md-1{padding-top:.25rem!important}.padding-right-md-1,.padding-x-md-1{padding-right:.25rem!important}.padding-bottom-md-1,.padding-y-md-1{padding-bottom:.25rem!important}.padding-left-md-1,.padding-x-md-1{padding-left:.25rem!important}.padding-md-2{padding:.5rem!important}.padding-top-md-2,.padding-y-md-2{padding-top:.5rem!important}.padding-right-md-2,.padding-x-md-2{padding-right:.5rem!important}.padding-bottom-md-2,.padding-y-md-2{padding-bottom:.5rem!important}.padding-left-md-2,.padding-x-md-2{padding-left:.5rem!important}.padding-md-3{padding:1rem!important}.padding-top-md-3,.padding-y-md-3{padding-top:1rem!important}.padding-right-md-3,.padding-x-md-3{padding-right:1rem!important}.padding-bottom-md-3,.padding-y-md-3{padding-bottom:1rem!important}.padding-left-md-3,.padding-x-md-3{padding-left:1rem!important}.padding-md-4{padding:2rem!important}.padding-top-md-4,.padding-y-md-4{padding-top:2rem!important}.padding-right-md-4,.padding-x-md-4{padding-right:2rem!important}.padding-bottom-md-4,.padding-y-md-4{padding-bottom:2rem!important}.padding-left-md-4,.padding-x-md-4{padding-left:2rem!important}.padding-md-5{padding:4rem!important}.padding-top-md-5,.padding-y-md-5{padding-top:4rem!important}.padding-right-md-5,.padding-x-md-5{padding-right:4rem!important}.padding-bottom-md-5,.padding-y-md-5{padding-bottom:4rem!important}.padding-left-md-5,.padding-x-md-5{padding-left:4rem!important}.margin-md-n1{margin:-.25rem!important}.margin-top-md-n1,.margin-y-md-n1{margin-top:-.25rem!important}.margin-right-md-n1,.margin-x-md-n1{margin-right:-.25rem!important}.margin-bottom-md-n1,.margin-y-md-n1{margin-bottom:-.25rem!important}.margin-left-md-n1,.margin-x-md-n1{margin-left:-.25rem!important}.margin-md-n2{margin:-.5rem!important}.margin-top-md-n2,.margin-y-md-n2{margin-top:-.5rem!important}.margin-right-md-n2,.margin-x-md-n2{margin-right:-.5rem!important}.margin-bottom-md-n2,.margin-y-md-n2{margin-bottom:-.5rem!important}.margin-left-md-n2,.margin-x-md-n2{margin-left:-.5rem!important}.margin-md-n3{margin:-1rem!important}.margin-top-md-n3,.margin-y-md-n3{margin-top:-1rem!important}.margin-right-md-n3,.margin-x-md-n3{margin-right:-1rem!important}.margin-bottom-md-n3,.margin-y-md-n3{margin-bottom:-1rem!important}.margin-left-md-n3,.margin-x-md-n3{margin-left:-1rem!important}.margin-md-n4{margin:-2rem!important}.margin-top-md-n4,.margin-y-md-n4{margin-top:-2rem!important}.margin-right-md-n4,.margin-x-md-n4{margin-right:-2rem!important}.margin-bottom-md-n4,.margin-y-md-n4{margin-bottom:-2rem!important}.margin-left-md-n4,.margin-x-md-n4{margin-left:-2rem!important}.margin-md-n5{margin:-4rem!important}.margin-top-md-n5,.margin-y-md-n5{margin-top:-4rem!important}.margin-right-md-n5,.margin-x-md-n5{margin-right:-4rem!important}.margin-bottom-md-n5,.margin-y-md-n5{margin-bottom:-4rem!important}.margin-left-md-n5,.margin-x-md-n5{margin-left:-4rem!important}.margin-md-auto{margin:auto!important}.margin-top-md-auto,.margin-y-md-auto{margin-top:auto!important}.margin-right-md-auto,.margin-x-md-auto{margin-right:auto!important}.margin-bottom-md-auto,.margin-y-md-auto{margin-bottom:auto!important}.margin-left-md-auto,.margin-x-md-auto{margin-left:auto!important}}@media (min-width: 992px){.margin-lg-0{margin:0!important}.margin-top-lg-0,.margin-y-lg-0{margin-top:0!important}.margin-right-lg-0,.margin-x-lg-0{margin-right:0!important}.margin-bottom-lg-0,.margin-y-lg-0{margin-bottom:0!important}.margin-left-lg-0,.margin-x-lg-0{margin-left:0!important}.margin-lg-1{margin:.25rem!important}.margin-top-lg-1,.margin-y-lg-1{margin-top:.25rem!important}.margin-right-lg-1,.margin-x-lg-1{margin-right:.25rem!important}.margin-bottom-lg-1,.margin-y-lg-1{margin-bottom:.25rem!important}.margin-left-lg-1,.margin-x-lg-1{margin-left:.25rem!important}.margin-lg-2{margin:.5rem!important}.margin-top-lg-2,.margin-y-lg-2{margin-top:.5rem!important}.margin-right-lg-2,.margin-x-lg-2{margin-right:.5rem!important}.margin-bottom-lg-2,.margin-y-lg-2{margin-bottom:.5rem!important}.margin-left-lg-2,.margin-x-lg-2{margin-left:.5rem!important}.margin-lg-3{margin:1rem!important}.margin-top-lg-3,.margin-y-lg-3{margin-top:1rem!important}.margin-right-lg-3,.margin-x-lg-3{margin-right:1rem!important}.margin-bottom-lg-3,.margin-y-lg-3{margin-bottom:1rem!important}.margin-left-lg-3,.margin-x-lg-3{margin-left:1rem!important}.margin-lg-4{margin:2rem!important}.margin-top-lg-4,.margin-y-lg-4{margin-top:2rem!important}.margin-right-lg-4,.margin-x-lg-4{margin-right:2rem!important}.margin-bottom-lg-4,.margin-y-lg-4{margin-bottom:2rem!important}.margin-left-lg-4,.margin-x-lg-4{margin-left:2rem!important}.margin-lg-5{margin:4rem!important}.margin-top-lg-5,.margin-y-lg-5{margin-top:4rem!important}.margin-right-lg-5,.margin-x-lg-5{margin-right:4rem!important}.margin-bottom-lg-5,.margin-y-lg-5{margin-bottom:4rem!important}.margin-left-lg-5,.margin-x-lg-5{margin-left:4rem!important}.padding-lg-0{padding:0!important}.padding-top-lg-0,.padding-y-lg-0{padding-top:0!important}.padding-right-lg-0,.padding-x-lg-0{padding-right:0!important}.padding-bottom-lg-0,.padding-y-lg-0{padding-bottom:0!important}.padding-left-lg-0,.padding-x-lg-0{padding-left:0!important}.padding-lg-1{padding:.25rem!important}.padding-top-lg-1,.padding-y-lg-1{padding-top:.25rem!important}.padding-right-lg-1,.padding-x-lg-1{padding-right:.25rem!important}.padding-bottom-lg-1,.padding-y-lg-1{padding-bottom:.25rem!important}.padding-left-lg-1,.padding-x-lg-1{padding-left:.25rem!important}.padding-lg-2{padding:.5rem!important}.padding-top-lg-2,.padding-y-lg-2{padding-top:.5rem!important}.padding-right-lg-2,.padding-x-lg-2{padding-right:.5rem!important}.padding-bottom-lg-2,.padding-y-lg-2{padding-bottom:.5rem!important}.padding-left-lg-2,.padding-x-lg-2{padding-left:.5rem!important}.padding-lg-3{padding:1rem!important}.padding-top-lg-3,.padding-y-lg-3{padding-top:1rem!important}.padding-right-lg-3,.padding-x-lg-3{padding-right:1rem!important}.padding-bottom-lg-3,.padding-y-lg-3{padding-bottom:1rem!important}.padding-left-lg-3,.padding-x-lg-3{padding-left:1rem!important}.padding-lg-4{padding:2rem!important}.padding-top-lg-4,.padding-y-lg-4{padding-top:2rem!important}.padding-right-lg-4,.padding-x-lg-4{padding-right:2rem!important}.padding-bottom-lg-4,.padding-y-lg-4{padding-bottom:2rem!important}.padding-left-lg-4,.padding-x-lg-4{padding-left:2rem!important}.padding-lg-5{padding:4rem!important}.padding-top-lg-5,.padding-y-lg-5{padding-top:4rem!important}.padding-right-lg-5,.padding-x-lg-5{padding-right:4rem!important}.padding-bottom-lg-5,.padding-y-lg-5{padding-bottom:4rem!important}.padding-left-lg-5,.padding-x-lg-5{padding-left:4rem!important}.margin-lg-n1{margin:-.25rem!important}.margin-top-lg-n1,.margin-y-lg-n1{margin-top:-.25rem!important}.margin-right-lg-n1,.margin-x-lg-n1{margin-right:-.25rem!important}.margin-bottom-lg-n1,.margin-y-lg-n1{margin-bottom:-.25rem!important}.margin-left-lg-n1,.margin-x-lg-n1{margin-left:-.25rem!important}.margin-lg-n2{margin:-.5rem!important}.margin-top-lg-n2,.margin-y-lg-n2{margin-top:-.5rem!important}.margin-right-lg-n2,.margin-x-lg-n2{margin-right:-.5rem!important}.margin-bottom-lg-n2,.margin-y-lg-n2{margin-bottom:-.5rem!important}.margin-left-lg-n2,.margin-x-lg-n2{margin-left:-.5rem!important}.margin-lg-n3{margin:-1rem!important}.margin-top-lg-n3,.margin-y-lg-n3{margin-top:-1rem!important}.margin-right-lg-n3,.margin-x-lg-n3{margin-right:-1rem!important}.margin-bottom-lg-n3,.margin-y-lg-n3{margin-bottom:-1rem!important}.margin-left-lg-n3,.margin-x-lg-n3{margin-left:-1rem!important}.margin-lg-n4{margin:-2rem!important}.margin-top-lg-n4,.margin-y-lg-n4{margin-top:-2rem!important}.margin-right-lg-n4,.margin-x-lg-n4{margin-right:-2rem!important}.margin-bottom-lg-n4,.margin-y-lg-n4{margin-bottom:-2rem!important}.margin-left-lg-n4,.margin-x-lg-n4{margin-left:-2rem!important}.margin-lg-n5{margin:-4rem!important}.margin-top-lg-n5,.margin-y-lg-n5{margin-top:-4rem!important}.margin-right-lg-n5,.margin-x-lg-n5{margin-right:-4rem!important}.margin-bottom-lg-n5,.margin-y-lg-n5{margin-bottom:-4rem!important}.margin-left-lg-n5,.margin-x-lg-n5{margin-left:-4rem!important}.margin-lg-auto{margin:auto!important}.margin-top-lg-auto,.margin-y-lg-auto{margin-top:auto!important}.margin-right-lg-auto,.margin-x-lg-auto{margin-right:auto!important}.margin-bottom-lg-auto,.margin-y-lg-auto{margin-bottom:auto!important}.margin-left-lg-auto,.margin-x-lg-auto{margin-left:auto!important}}@media (min-width: 1200px){.margin-xl-0{margin:0!important}.margin-top-xl-0,.margin-y-xl-0{margin-top:0!important}.margin-right-xl-0,.margin-x-xl-0{margin-right:0!important}.margin-bottom-xl-0,.margin-y-xl-0{margin-bottom:0!important}.margin-left-xl-0,.margin-x-xl-0{margin-left:0!important}.margin-xl-1{margin:.25rem!important}.margin-top-xl-1,.margin-y-xl-1{margin-top:.25rem!important}.margin-right-xl-1,.margin-x-xl-1{margin-right:.25rem!important}.margin-bottom-xl-1,.margin-y-xl-1{margin-bottom:.25rem!important}.margin-left-xl-1,.margin-x-xl-1{margin-left:.25rem!important}.margin-xl-2{margin:.5rem!important}.margin-top-xl-2,.margin-y-xl-2{margin-top:.5rem!important}.margin-right-xl-2,.margin-x-xl-2{margin-right:.5rem!important}.margin-bottom-xl-2,.margin-y-xl-2{margin-bottom:.5rem!important}.margin-left-xl-2,.margin-x-xl-2{margin-left:.5rem!important}.margin-xl-3{margin:1rem!important}.margin-top-xl-3,.margin-y-xl-3{margin-top:1rem!important}.margin-right-xl-3,.margin-x-xl-3{margin-right:1rem!important}.margin-bottom-xl-3,.margin-y-xl-3{margin-bottom:1rem!important}.margin-left-xl-3,.margin-x-xl-3{margin-left:1rem!important}.margin-xl-4{margin:2rem!important}.margin-top-xl-4,.margin-y-xl-4{margin-top:2rem!important}.margin-right-xl-4,.margin-x-xl-4{margin-right:2rem!important}.margin-bottom-xl-4,.margin-y-xl-4{margin-bottom:2rem!important}.margin-left-xl-4,.margin-x-xl-4{margin-left:2rem!important}.margin-xl-5{margin:4rem!important}.margin-top-xl-5,.margin-y-xl-5{margin-top:4rem!important}.margin-right-xl-5,.margin-x-xl-5{margin-right:4rem!important}.margin-bottom-xl-5,.margin-y-xl-5{margin-bottom:4rem!important}.margin-left-xl-5,.margin-x-xl-5{margin-left:4rem!important}.padding-xl-0{padding:0!important}.padding-top-xl-0,.padding-y-xl-0{padding-top:0!important}.padding-right-xl-0,.padding-x-xl-0{padding-right:0!important}.padding-bottom-xl-0,.padding-y-xl-0{padding-bottom:0!important}.padding-left-xl-0,.padding-x-xl-0{padding-left:0!important}.padding-xl-1{padding:.25rem!important}.padding-top-xl-1,.padding-y-xl-1{padding-top:.25rem!important}.padding-right-xl-1,.padding-x-xl-1{padding-right:.25rem!important}.padding-bottom-xl-1,.padding-y-xl-1{padding-bottom:.25rem!important}.padding-left-xl-1,.padding-x-xl-1{padding-left:.25rem!important}.padding-xl-2{padding:.5rem!important}.padding-top-xl-2,.padding-y-xl-2{padding-top:.5rem!important}.padding-right-xl-2,.padding-x-xl-2{padding-right:.5rem!important}.padding-bottom-xl-2,.padding-y-xl-2{padding-bottom:.5rem!important}.padding-left-xl-2,.padding-x-xl-2{padding-left:.5rem!important}.padding-xl-3{padding:1rem!important}.padding-top-xl-3,.padding-y-xl-3{padding-top:1rem!important}.padding-right-xl-3,.padding-x-xl-3{padding-right:1rem!important}.padding-bottom-xl-3,.padding-y-xl-3{padding-bottom:1rem!important}.padding-left-xl-3,.padding-x-xl-3{padding-left:1rem!important}.padding-xl-4{padding:2rem!important}.padding-top-xl-4,.padding-y-xl-4{padding-top:2rem!important}.padding-right-xl-4,.padding-x-xl-4{padding-right:2rem!important}.padding-bottom-xl-4,.padding-y-xl-4{padding-bottom:2rem!important}.padding-left-xl-4,.padding-x-xl-4{padding-left:2rem!important}.padding-xl-5{padding:4rem!important}.padding-top-xl-5,.padding-y-xl-5{padding-top:4rem!important}.padding-right-xl-5,.padding-x-xl-5{padding-right:4rem!important}.padding-bottom-xl-5,.padding-y-xl-5{padding-bottom:4rem!important}.padding-left-xl-5,.padding-x-xl-5{padding-left:4rem!important}.margin-xl-n1{margin:-.25rem!important}.margin-top-xl-n1,.margin-y-xl-n1{margin-top:-.25rem!important}.margin-right-xl-n1,.margin-x-xl-n1{margin-right:-.25rem!important}.margin-bottom-xl-n1,.margin-y-xl-n1{margin-bottom:-.25rem!important}.margin-left-xl-n1,.margin-x-xl-n1{margin-left:-.25rem!important}.margin-xl-n2{margin:-.5rem!important}.margin-top-xl-n2,.margin-y-xl-n2{margin-top:-.5rem!important}.margin-right-xl-n2,.margin-x-xl-n2{margin-right:-.5rem!important}.margin-bottom-xl-n2,.margin-y-xl-n2{margin-bottom:-.5rem!important}.margin-left-xl-n2,.margin-x-xl-n2{margin-left:-.5rem!important}.margin-xl-n3{margin:-1rem!important}.margin-top-xl-n3,.margin-y-xl-n3{margin-top:-1rem!important}.margin-right-xl-n3,.margin-x-xl-n3{margin-right:-1rem!important}.margin-bottom-xl-n3,.margin-y-xl-n3{margin-bottom:-1rem!important}.margin-left-xl-n3,.margin-x-xl-n3{margin-left:-1rem!important}.margin-xl-n4{margin:-2rem!important}.margin-top-xl-n4,.margin-y-xl-n4{margin-top:-2rem!important}.margin-right-xl-n4,.margin-x-xl-n4{margin-right:-2rem!important}.margin-bottom-xl-n4,.margin-y-xl-n4{margin-bottom:-2rem!important}.margin-left-xl-n4,.margin-x-xl-n4{margin-left:-2rem!important}.margin-xl-n5{margin:-4rem!important}.margin-top-xl-n5,.margin-y-xl-n5{margin-top:-4rem!important}.margin-right-xl-n5,.margin-x-xl-n5{margin-right:-4rem!important}.margin-bottom-xl-n5,.margin-y-xl-n5{margin-bottom:-4rem!important}.margin-left-xl-n5,.margin-x-xl-n5{margin-left:-4rem!important}.margin-xl-auto{margin:auto!important}.margin-top-xl-auto,.margin-y-xl-auto{margin-top:auto!important}.margin-right-xl-auto,.margin-x-xl-auto{margin-right:auto!important}.margin-bottom-xl-auto,.margin-y-xl-auto{margin-bottom:auto!important}.margin-left-xl-auto,.margin-x-xl-auto{margin-left:auto!important}}.h1{font-size:2em}.h2{font-size:1.5em}.h3{font-size:1.17em}.h4{font-size:1em}.h5{font-size:.83em}.h6{font-size:.67em}.cursor-alias{cursor:alias}.cursor-all-scroll{cursor:all-scroll}.cursor-auto{cursor:auto}.cursor-cell{cursor:cell}.cursor-context-menu{cursor:context-menu}.cursor-col-resize{cursor:col-resize}.cursor-copy{cursor:copy}.cursor-crosshair{cursor:crosshair}.cursor-default{cursor:default}.cursor-e-resize{cursor:e-resize}.cursor-ew-resize{cursor:ew-resize}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-help{cursor:help}.cursor-move{cursor:move}.cursor-n-resize{cursor:n-resize}.cursor-ne-resize{cursor:ne-resize}.cursor-nesw-resize{cursor:nesw-resize}.cursor-ns-resize{cursor:ns-resize}.cursor-nw-resize{cursor:nw-resize}.cursor-nwse-resize{cursor:nwse-resize}.cursor-no-drop{cursor:no-drop}.cursor-none{cursor:none}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-progress{cursor:progress}.cursor-row-resize{cursor:row-resize}.cursor-s-resize{cursor:s-resize}.cursor-se-resize{cursor:se-resize}.cursor-sw-resize{cursor:sw-resize}.cursor-text{cursor:text}.cursor-w-resize{cursor:w-resize}.cursor-wait{cursor:wait}.cursor-zoom-in{cursor:zoom-in}.cursor-zoom-out{cursor:zoom-out}.mat-tooltip{font-size:16px!important}html,body{height:100%}body{margin:0;padding:0;font-family:opens sans regular,sans-serif}iframe{border:none}.mat-badge-content{font-weight:600;font-size:12px;font-family:Roboto,Helvetica Neue,sans-serif}.mat-badge-small .mat-badge-content{font-size:9px}.mat-badge-large .mat-badge-content{font-size:24px}.mat-h1,.mat-headline,.mat-typography h1{font:400 24px/32px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2,.mat-title,.mat-typography h2{font:500 20px/32px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3,.mat-subheading-2,.mat-typography h3{font:400 16px/28px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4,.mat-subheading-1,.mat-typography h4{font:400 15px/24px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5,.mat-typography h5{font:400 11.62px/20px Roboto,Helvetica Neue,sans-serif;margin:0 0 12px}.mat-h6,.mat-typography h6{font:400 9.38px/20px Roboto,Helvetica Neue,sans-serif;margin:0 0 12px}.mat-body-strong,.mat-body-2{font:500 14px/24px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.mat-body,.mat-body-1,.mat-typography{font:400 14px/20px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.mat-body p,.mat-body-1 p,.mat-typography p{margin:0 0 12px}.mat-small,.mat-caption{font:400 12px/20px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.mat-display-4,.mat-typography .mat-display-4{font:300 112px/112px Roboto,Helvetica Neue,sans-serif;letter-spacing:-.05em;margin:0 0 56px}.mat-display-3,.mat-typography .mat-display-3{font:400 56px/56px Roboto,Helvetica Neue,sans-serif;letter-spacing:-.02em;margin:0 0 64px}.mat-display-2,.mat-typography .mat-display-2{font:400 45px/48px Roboto,Helvetica Neue,sans-serif;letter-spacing:-.005em;margin:0 0 64px}.mat-display-1,.mat-typography .mat-display-1{font:400 34px/40px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container{font:400 14px/20px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.mat-button,.mat-raised-button,.mat-icon-button,.mat-stroked-button,.mat-flat-button,.mat-fab,.mat-mini-fab{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px;font-weight:500}.mat-button-toggle,.mat-card{font-family:Roboto,Helvetica Neue,sans-serif}.mat-card-title{font-size:24px;font-weight:500}.mat-card-header .mat-card-title{font-size:20px}.mat-card-subtitle,.mat-card-content{font-size:14px}.mat-checkbox{font-family:Roboto,Helvetica Neue,sans-serif}.mat-checkbox-layout .mat-checkbox-label{line-height:24px}.mat-chip{font-size:14px;font-weight:500}.mat-chip .mat-chip-trailing-icon.mat-icon,.mat-chip .mat-chip-remove.mat-icon{font-size:18px}.mat-table{font-family:Roboto,Helvetica Neue,sans-serif}.mat-header-cell{font-size:12px;font-weight:500}.mat-cell,.mat-footer-cell{font-size:14px}.mat-calendar{font-family:Roboto,Helvetica Neue,sans-serif}.mat-calendar-body{font-size:13px}.mat-calendar-body-label,.mat-calendar-period-button{font-size:14px;font-weight:500}.mat-calendar-table-header th{font-size:11px;font-weight:400}.mat-dialog-title{font:500 20px/32px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.mat-expansion-panel-header{font-family:Roboto,Helvetica Neue,sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content{font:400 14px/20px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.mat-form-field{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.mat-form-field-wrapper{padding-bottom:1.34375em}.mat-form-field-prefix .mat-icon,.mat-form-field-suffix .mat-icon{font-size:150%;line-height:1.125}.mat-form-field-prefix .mat-icon-button,.mat-form-field-suffix .mat-icon-button{height:1.5em;width:1.5em}.mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field-suffix .mat-icon-button .mat-icon{height:1.125em;line-height:1.125}.mat-form-field-infix{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.34375em) scale(.75);width:133.3333333333%}.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.34374em) scale(.75);width:133.3333433333%}.mat-form-field-label-wrapper{top:-.84375em;padding-top:.84375em}.mat-form-field-label{top:1.34375em}.mat-form-field-underline{bottom:1.34375em}.mat-form-field-subscript-wrapper{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy .mat-form-field-wrapper{padding-bottom:1.25em}.mat-form-field-appearance-legacy .mat-form-field-infix{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.001px);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.00101px);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.00102px);width:133.3333533333%}.mat-form-field-appearance-legacy .mat-form-field-label{top:1.28125em}.mat-form-field-appearance-legacy .mat-form-field-underline{bottom:1.25em}.mat-form-field-appearance-legacy .mat-form-field-subscript-wrapper{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28122em) scale(.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28121em) scale(.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.2812em) scale(.75)}}.mat-form-field-appearance-fill .mat-form-field-infix{padding:.25em 0 .75em}.mat-form-field-appearance-fill .mat-form-field-label{top:1.09375em;margin-top:-.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-.59375em) scale(.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-.59374em) scale(.75);width:133.3333433333%}.mat-form-field-appearance-outline .mat-form-field-infix{padding:1em 0}.mat-form-field-appearance-outline .mat-form-field-label{top:1.84375em;margin-top:-.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.59375em) scale(.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.59374em) scale(.75);width:133.3333433333%}.mat-grid-tile-header,.mat-grid-tile-footer{font-size:14px}.mat-grid-tile-header .mat-line,.mat-grid-tile-footer .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header .mat-line:nth-child(n+2),.mat-grid-tile-footer .mat-line:nth-child(n+2){font-size:12px}input.mat-input-element{margin-top:-.0625em}.mat-menu-item{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px;font-weight:400}.mat-paginator,.mat-paginator-page-size .mat-select-trigger{font-family:Roboto,Helvetica Neue,sans-serif;font-size:12px}.mat-radio-button,.mat-select{font-family:Roboto,Helvetica Neue,sans-serif}.mat-select-trigger{height:1.125em}.mat-slide-toggle-content{font-family:Roboto,Helvetica Neue,sans-serif}.mat-slider-thumb-label-text{font-family:Roboto,Helvetica Neue,sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical,.mat-stepper-horizontal{font-family:Roboto,Helvetica Neue,sans-serif}.mat-step-label{font-size:14px;font-weight:400}.mat-step-sub-label-error{font-weight:400}.mat-step-label-error{font-size:14px}.mat-step-label-selected{font-size:14px;font-weight:500}.mat-tab-group{font-family:Roboto,Helvetica Neue,sans-serif}.mat-tab-label,.mat-tab-link{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px;font-weight:500}.mat-toolbar,.mat-toolbar h1,.mat-toolbar h2,.mat-toolbar h3,.mat-toolbar h4,.mat-toolbar h5,.mat-toolbar h6{font:500 20px/32px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;margin:0}.mat-tooltip{font-family:Roboto,Helvetica Neue,sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item,.mat-list-option{font-family:Roboto,Helvetica Neue,sans-serif}.mat-list-base .mat-list-item{font-size:16px}.mat-list-base .mat-list-item .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base .mat-list-item .mat-line:nth-child(n+2){font-size:14px}.mat-list-base .mat-list-option{font-size:16px}.mat-list-base .mat-list-option .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base .mat-list-option .mat-line:nth-child(n+2){font-size:14px}.mat-list-base .mat-subheader{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense] .mat-list-item{font-size:12px}.mat-list-base[dense] .mat-list-item .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense] .mat-list-item .mat-line:nth-child(n+2){font-size:12px}.mat-list-base[dense] .mat-list-option{font-size:12px}.mat-list-base[dense] .mat-list-option .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense] .mat-list-option .mat-line:nth-child(n+2){font-size:12px}.mat-list-base[dense] .mat-subheader{font-family:Roboto,Helvetica Neue,sans-serif;font-size:12px;font-weight:500}.mat-option{font-family:Roboto,Helvetica Neue,sans-serif;font-size:16px}.mat-optgroup-label{font:500 14px/24px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.mat-simple-snackbar{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px}.mat-simple-snackbar-action{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree{font-family:Roboto,Helvetica Neue,sans-serif}.mat-tree-node,.mat-nested-tree-node{font-weight:400;font-size:14px}.mat-ripple{overflow:hidden;position:relative}.mat-ripple:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0,0,.2,1);transform:scale(0)}.cdk-high-contrast-active .mat-ripple-element{display:none}.cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop,.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{padding:2px 0!important;box-sizing:content-box!important;height:auto!important;overflow:hidden!important}textarea.cdk-textarea-autosize-measuring-firefox{padding:2px 0!important;box-sizing:content-box!important;height:0!important}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}.mat-focus-indicator,.mat-mdc-focus-indicator{position:relative}.title,.header{font-family:Encode Sans Condensed,sans-serif;font-weight:900}.paragraph-title,.tagline{font-family:Open Sans,sans-serif;font-weight:400}.paragraph-title-bold .tagLine-bold{font-family:Open Sans,sans-serif;font-weight:700}.plain-text,.remarks{font-family:Open Sans,sans-serif;font-weight:300}.plain-text-bold{font-family:Open Sans,sans-serif;font-weight:700}.flex-column{box-sizing:border-box;display:flex;flex-direction:column}.flex-row{box-sizing:border-box;display:flex;flex-direction:row}.flex-row-center{align-items:center;justify-content:center}.mat-button-large{line-height:48px;font-size:18px;font-weight:700;padding:0 24px!important}.mat-round{border-radius:.5em}:root{--initial-primary: #4a918e;--initial-accent: #9cd8d7;--initial-warn: #ef4351;--initial-dark-background: #222222;--initial-light-background: #f2f2f2;--initial-light-background: white;--initial-light-text: rgba(0, 0, 0, .87);--initial-dark-text: rgba(255, 255, 255, .87);--background: #050505;--orange-accent: #ff9800;--green-accent: #00e676;--yellow-accent: #fdd835;--purple-accent: #9c27b0;--cyan-accent: rgba(132, 255, 255, .75);--pink-accent: #e91e63;--success: #00e676}body{background-color:var(--initial-dark-background)}::ng-deep .mat-tooltip{font-size:16px!important}:host .valid-control{color:var(--green-accent)}:host .invalid-control{color:var(--theme-warn-500)}:host .actions .item:not(:last-child){margin-right:0}:host .project-thumbnail img{height:50px;width:auto}:host .active{background-color:var(--theme-accent-400);transition:background-color 1s linear}:host .inactive{background-color:#f2f5a900;transition:background-color 1s linear}:host .expansion-panel{width:100%;margin-bottom:10px}:host .expansion-container{max-height:300px;overflow-y:auto}:host .divider-fill-vert{background-color:var(--theme-accent-500);min-height:100%;top:10%;bottom:10%;min-width:5px}:host .divider-fill-hor{background-color:var(--theme-accent-500);height:5px;width:100%}:host .form-disabled{background-color:#797979;opacity:.5;border-radius:4px}::ng-deep input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,input:-webkit-autofill:active{-webkit-transition:background-color 5000s ease-in-out 0s;transition:background-color 5000s ease-in-out 0s;-webkit-text-fill-color:#FFFFFFDE}@media (max-width: 768px){.spread{margin:1em!important}}@media (max-width: 480px){.spread{margin:.5em!important}}.spinner-logo{display:none!important}:host ::ng-deep a{text-decoration:none;color:#4a918e}\n"] }]
250
- }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.ApplicationsFlowService }, { type: i3.ApplicationsFlowEventsService }]; }, propDecorators: { BranchesChanged: [{
251
- type: Output,
252
- args: ['branches-changed']
253
- }], BranchesDisabled: [{
254
- type: Input,
255
- args: ['branches-disabled']
256
- }], BranchesInput: [{
257
- type: ViewChild,
258
- args: ['branches']
259
- }], BuildPath: [{
260
- type: Input,
261
- args: ['build-path']
262
- }], BuildPathDisabled: [{
263
- type: Input,
264
- args: ['build-path-disabled']
265
- }], FormGroup: [{
266
- type: Input,
267
- args: ['form-group']
268
- }], OrganizationDisabled: [{
269
- type: Input,
270
- args: ['org-disabled']
271
- }], RepositoryDisabled: [{
272
- type: Input,
273
- args: ['repo-disabled']
274
- }], SourceControl: [{
275
- type: Input,
276
- args: ['source-control']
277
- }], SourceControlRoot: [{
278
- type: Input,
279
- args: ['source-control-root']
280
- }], UseBranches: [{
281
- type: Input,
282
- args: ['use-branches']
283
- }], UseBuildPath: [{
284
- type: Input,
285
- args: ['use-build-path']
286
- }] } });
287
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLWNvbnRyb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvZWxlbWVudHMvcHJvamVjdHMvY29udHJvbHMvZm9ybXMvc291cmNlLWNvbnRyb2wvc291cmNlLWNvbnRyb2wuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvZWxlbWVudHMvcHJvamVjdHMvY29udHJvbHMvZm9ybXMvc291cmNlLWNvbnRyb2wvc291cmNlLWNvbnRyb2wuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBR0wsVUFBVSxFQUVWLFdBQVcsR0FDWixNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7OztBQW1CeEIsTUFBTSxPQUFPLGtDQUFrQztJQThFN0MsZ0JBQWdCO0lBQ2hCLFlBQ1ksV0FBd0IsRUFDeEIsV0FBb0MsRUFDcEMsaUJBQWdEO1FBRmhELGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGdCQUFXLEdBQVgsV0FBVyxDQUF5QjtRQUNwQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQStCO1FBbEI1Qyx1QkFBa0IsR0FBRyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQVUsQ0FBQztRQW9CM0QsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTFDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFFM0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7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dUJBQUMsWUFBWTtnQkFJWixpQkFBaUI7c0JBRHZCLEtBQUs7dUJBQUMscUJBQXFCO2dCQVlyQixTQUFTO3NCQURmLEtBQUs7dUJBQUMsWUFBWTtnQkFVWixvQkFBb0I7c0JBRDFCLEtBQUs7dUJBQUMsY0FBYztnQkFjZCxrQkFBa0I7c0JBRHhCLEtBQUs7dUJBQUMsZUFBZTtnQkFVZixhQUFhO3NCQURuQixLQUFLO3VCQUFDLGdCQUFnQjtnQkFJaEIsaUJBQWlCO3NCQUR2QixLQUFLO3VCQUFDLHFCQUFxQjtnQkFJckIsV0FBVztzQkFEakIsS0FBSzt1QkFBQyxjQUFjO2dCQUlkLFlBQVk7c0JBRGxCLEtBQUs7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ09NTUEsIEVOVEVSIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7XG4gIEZvcm1Hcm91cCxcbiAgRm9ybUJ1aWxkZXIsXG4gIFZhbGlkYXRvcnMsXG4gIEFic3RyYWN0Q29udHJvbCxcbiAgRm9ybUNvbnRyb2wsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHsgTWF0Q2hpcElucHV0RXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcyc7XG5pbXBvcnQgeyBNYXRTZWxlY3RDaGFuZ2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHsgQmFzZVJlc3BvbnNlLCBCYXNlTW9kZWxlZFJlc3BvbnNlIH0gZnJvbSAnQGxjdS9jb21tb24nO1xuaW1wb3J0IHtcbiAgR2l0SHViQnJhbmNoLFxuICBHaXRIdWJPcmdhbml6YXRpb24sXG4gIEdpdEh1YlJlcG9zaXRvcnksXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uL3N0YXRlL2FwcGxpY2F0aW9ucy1mbG93LnN0YXRlJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uc0Zsb3dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2VydmljZXMvYXBwbGljYXRpb25zLWZsb3cuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbnNGbG93RXZlbnRzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NlcnZpY2VzL2FwcGxpY2F0aW9ucy1mbG93LWV2ZW50cy5zZXJ2aWNlJztcbmltcG9ydCB7IEVhQ1NvdXJjZUNvbnRyb2wgfSBmcm9tICdAc2VtYW50aWNqcy9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsY3Utc291cmNlLWNvbnRyb2wtZm9ybS1jb250cm9scycsXG4gIHRlbXBsYXRlVXJsOiAnLi9zb3VyY2UtY29udHJvbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NvdXJjZS1jb250cm9sLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNvdXJjZUNvbnRyb2xGb3JtQ29udHJvbHNDb21wb25lbnRcbiAgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIE9uSW5pdFxue1xuICAvLyAgRmllbGRzXG5cbiAgLy8gIFByb3BlcnRpZXNcbiAgcHVibGljIGdldCBCcmFuY2hlc0Zvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgcmV0dXJuIHRoaXMuRm9ybUdyb3VwLmdldCh0aGlzLlNvdXJjZUNvbnRyb2xSb290ICsgJ2JyYW5jaGVzJyk7XG4gIH1cblxuICBAT3V0cHV0KCdicmFuY2hlcy1jaGFuZ2VkJylcbiAgcHVibGljIEJyYW5jaGVzQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEFycmF5PHN0cmluZz4+O1xuXG4gIEBJbnB1dCgnYnJhbmNoZXMtZGlzYWJsZWQnKVxuICBwdWJsaWMgQnJhbmNoZXNEaXNhYmxlZDogYm9vbGVhbjtcblxuICBAVmlld0NoaWxkKCdicmFuY2hlcycpXG4gIHB1YmxpYyBCcmFuY2hlc0lucHV0OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gIHB1YmxpYyBCcmFuY2hPcHRpb25zOiBHaXRIdWJCcmFuY2hbXTtcblxuICBASW5wdXQoJ2J1aWxkLXBhdGgnKVxuICBwdWJsaWMgQnVpbGRQYXRoOiBzdHJpbmc7XG5cbiAgQElucHV0KCdidWlsZC1wYXRoLWRpc2FibGVkJylcbiAgcHVibGljIEJ1aWxkUGF0aERpc2FibGVkOiBib29sZWFuO1xuXG4gIHB1YmxpYyBnZXQgQnVpbGRQYXRoRm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICByZXR1cm4gdGhpcy5Gb3JtR3JvdXAuZ2V0KHRoaXMuU291cmNlQ29udHJvbFJvb3QgKyAnYnVpbGRQYXRoJyk7XG4gIH1cblxuICBwdWJsaWMgQnVpbGRQYXRoT3B0aW9uczogc3RyaW5nW107XG5cbiAgcHVibGljIENyZWF0aW5nUmVwb3NpdG9yeTogYm9vbGVhbjtcblxuICBASW5wdXQoJ2Zvcm0tZ3JvdXAnKVxuICBwdWJsaWMgRm9ybUdyb3VwOiBGb3JtR3JvdXA7XG5cbiAgcHVibGljIExvYWRpbmc6IGJvb2xlYW47XG5cbiAgcHVibGljIGdldCBNYWluQnJhbmNoRm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICByZXR1cm4gdGhpcy5Gb3JtR3JvdXAuZ2V0KHRoaXMuU291cmNlQ29udHJvbFJvb3QgKyAnbWFpbkJyYW5jaCcpO1xuICB9XG5cbiAgQElucHV0KCdvcmctZGlzYWJsZWQnKVxuICBwdWJsaWMgT3JnYW5pemF0aW9uRGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgcHVibGljIGdldCBPcmdhbml6YXRpb25Gb3JtQ29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgIHJldHVybiB0aGlzLkZvcm1Hcm91cC5nZXQodGhpcy5Tb3VyY2VDb250cm9sUm9vdCArICdvcmdhbml6YXRpb24nKTtcbiAgfVxuXG4gIHB1YmxpYyBPcmdhbml6YXRpb25PcHRpb25zOiBHaXRIdWJPcmdhbml6YXRpb25bXTtcblxuICBwdWJsaWMgZ2V0IFJlcG9zaXRvcnlGb3JtQ29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgIHJldHVybiB0aGlzLkZvcm1Hcm91cC5nZXQodGhpcy5Tb3VyY2VDb250cm9sUm9vdCArICdyZXBvc2l0b3J5Jyk7XG4gIH1cblxuICBASW5wdXQoJ3JlcG8tZGlzYWJsZWQnKVxuICBwdWJsaWMgUmVwb3NpdG9yeURpc2FibGVkOiBib29sZWFuO1xuXG4gIHB1YmxpYyBSZXBvc2l0b3J5T3B0aW9uczogR2l0SHViUmVwb3NpdG9yeVtdO1xuXG4gIHB1YmxpYyBTZWxlY3RlZEJyYW5jaGVzOiBzdHJpbmdbXTtcblxuICBwdWJsaWMgcmVhZG9ubHkgU2VwYXJhdG9yS2V5c0NvZGVzID0gW0VOVEVSLCBDT01NQV0gYXMgY29uc3Q7XG5cbiAgQElucHV0KCdzb3VyY2UtY29udHJvbCcpXG4gIHB1YmxpYyBTb3VyY2VDb250cm9sOiBFYUNTb3VyY2VDb250cm9sO1xuXG4gIEBJbnB1dCgnc291cmNlLWNvbnRyb2wtcm9vdCcpXG4gIHB1YmxpYyBTb3VyY2VDb250cm9sUm9vdDogc3RyaW5nO1xuXG4gIEBJbnB1dCgndXNlLWJyYW5jaGVzJylcbiAgcHVibGljIFVzZUJyYW5jaGVzOiBib29sZWFuO1xuXG4gIEBJbnB1dCgndXNlLWJ1aWxkLXBhdGgnKVxuICBwdWJsaWMgVXNlQnVpbGRQYXRoOiBib29sZWFuO1xuXG4gIC8vICBDb25zdHJ1Y3RvcnNcbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcbiAgICBwcm90ZWN0ZWQgYXBwc0Zsb3dTdmM6IEFwcGxpY2F0aW9uc0Zsb3dTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBhcHBzRmxvd0V2ZW50c1N2YzogQXBwbGljYXRpb25zRmxvd0V2ZW50c1NlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5CcmFuY2hlc0NoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICB0aGlzLlNlbGVjdGVkQnJhbmNoZXMgPSBbXTtcblxuICAgIHRoaXMuU291cmNlQ29udHJvbCA9IHt9O1xuXG4gICAgdGhpcy5Tb3VyY2VDb250cm9sUm9vdCA9ICcnO1xuXG4gICAgdGhpcy5Vc2VCcmFuY2hlcyA9IHRydWU7XG4gIH1cblxuICAvLyAgTGlmZSBDeWNsZVxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge31cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95Rm9ybUNvbnRyb2xzKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXR1cEZvcm1Db250cm9scygpO1xuXG4gICAgdGhpcy5SZWZyZXNoT3JnYW5pemF0aW9ucygpO1xuICB9XG5cbiAgLy8gIEFQSSBNZXRob2RzXG4gIHB1YmxpYyBBZGRCcmFuY2hPcHRpb24oZXZlbnQ6IE1hdENoaXBJbnB1dEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5hZGRCcmFuY2hPcHRpb24oZXZlbnQudmFsdWUpO1xuXG4gICAgZXZlbnQuaW5wdXQudmFsdWUgPSAnJztcbiAgfVxuXG4gIHB1YmxpYyBCcmFuY2hPcHRpb25TZWxlY3RlZChldmVudDogTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuYWRkQnJhbmNoT3B0aW9uKGV2ZW50Lm9wdGlvbi52YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgQnVpbGRQYXRoQ2hhbmdlZChldmVudDogTWF0U2VsZWN0Q2hhbmdlKTogdm9pZCB7XG4gIH1cblxuICBwdWJsaWMgQ3JlYXRlUmVwb3NpdG9yeSgpOiB2b2lkIHtcbiAgICB0aGlzLkNyZWF0aW5nUmVwb3NpdG9yeSA9IHRydWU7XG5cbiAgICB0aGlzLlJlcG9zaXRvcnlGb3JtQ29udHJvbC5yZXNldCgpO1xuICB9XG5cbiAgcHVibGljIENhbmNlbENyZWF0ZVJlcG9zaXRvcnkoKTogdm9pZCB7XG4gICAgdGhpcy5DcmVhdGluZ1JlcG9zaXRvcnkgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBNYWluQnJhbmNoQ2hhbmdlZChldmVudDogTWF0U2VsZWN0Q2hhbmdlKTogdm9pZCB7XG4gICAgdGhpcy5lbWl0QnJhbmNoZXNDaGFuZ2VkKCk7XG4gIH1cblxuICBwdWJsaWMgT3JnYW5pemF0aW9uQ2hhbmdlZChldmVudDogTWF0U2VsZWN0Q2hhbmdlKTogdm9pZCB7XG4gICAgY29uc3Qgb3JnID0gdGhpcy5Pcmdhbml6YXRpb25Gb3JtQ29udHJvbDtcblxuICAgIHRoaXMuUmVwb3NpdG9yeUZvcm1Db250cm9sLnJlc2V0KCk7XG5cbiAgICBpZiAodGhpcy5Vc2VCcmFuY2hlcykge1xuICAgICAgdGhpcy5CcmFuY2hlc0Zvcm1Db250cm9sLnJlc2V0KCk7XG5cbiAgICAgIHRoaXMuU2VsZWN0ZWRCcmFuY2hlcyA9IFtdO1xuICAgIH1cblxuICAgIHRoaXMubGlzdFJlcG9zaXRvcmllcygpO1xuICB9XG5cbiAgcHVibGljIFJlZnJlc2hPcmdhbml6YXRpb25zKCk6IHZvaWQge1xuICAgIC8vIHRoaXMuTG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5saXN0T3JnYW5pemF0aW9ucygpO1xuXG4gICAgdGhpcy5Pcmdhbml6YXRpb25Gb3JtQ29udHJvbD8ucmVzZXQoKTtcblxuICAgIHRoaXMuUmVwb3NpdG9yeUZvcm1Db250cm9sPy5yZXNldCgpO1xuXG4gICAgaWYgKHRoaXMuVXNlQnJhbmNoZXMpIHtcbiAgICAgIHRoaXMuQnJhbmNoZXNGb3JtQ29udHJvbD8ucmVzZXQoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgUmVtb3ZlQnJhbmNoT3B0aW9uKG9wdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLlNlbGVjdGVkQnJhbmNoZXMuaW5kZXhPZihvcHRpb24pO1xuXG4gICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgIHRoaXMuU2VsZWN0ZWRCcmFuY2hlcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIH1cblxuICAgIHRoaXMuZW1pdEJyYW5jaGVzQ2hhbmdlZCgpO1xuICB9XG5cbiAgcHVibGljIFJlcG9zaXRvcnlDaGFuZ2VkKGV2ZW50OiBNYXRTZWxlY3RDaGFuZ2UpOiB2b2lkIHtcbiAgICBjb25zdCByZXBvID0gdGhpcy5SZXBvc2l0b3J5Rm9ybUNvbnRyb2w7XG5cbiAgICBpZiAodGhpcy5Vc2VCcmFuY2hlcykge1xuICAgICAgdGhpcy5CcmFuY2hlc0Zvcm1Db250cm9sLnJlc2V0KCk7XG5cbiAgICAgIHRoaXMuU2VsZWN0ZWRCcmFuY2hlcyA9IFtdO1xuXG4gICAgICB0aGlzLmxpc3RCcmFuY2hlcygpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5Vc2VCcmFuY2hlcykge1xuICAgICAgdGhpcy5saXN0QnVpbGRQYXRocygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBTYXZlUmVwb3NpdG9yeSgpOiB2b2lkIHtcbiAgICB0aGlzLkxvYWRpbmcgPSB0cnVlO1xuXG4gICAgY29uc3Qgb3JnID0gdGhpcy5Pcmdhbml6YXRpb25Gb3JtQ29udHJvbC52YWx1ZTtcblxuICAgIGNvbnN0IHJlcG9OYW1lID0gdGhpcy5SZXBvc2l0b3J5Rm9ybUNvbnRyb2wudmFsdWU7XG5cbiAgICB0aGlzLmFwcHNGbG93U3ZjXG4gICAgICAuQ3JlYXRlUmVwb3NpdG9yeShvcmcsIHJlcG9OYW1lKVxuICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2U6IEJhc2VSZXNwb25zZSkgPT4ge1xuICAgICAgICBpZiAocmVzcG9uc2UuU3RhdHVzLkNvZGUgPT09IDApIHtcbiAgICAgICAgICB0aGlzLmxpc3RSZXBvc2l0b3JpZXMocmVwb05hbWUpO1xuXG4gICAgICAgICAgdGhpcy5DcmVhdGluZ1JlcG9zaXRvcnkgPSBmYWxzZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyAgVE9ETzogIE5lZWQgdG8gc3VyZmFjZSBhbiBlcnJvciB0byB0aGUgdXNlci4uLlxuXG4gICAgICAgICAgdGhpcy5Mb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgLy8gIEhlbHBlcnNcbiAgcHJvdGVjdGVkIGFkZEJyYW5jaE9wdGlvbih2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdmFsdWUgPSAodmFsdWUgfHwgJycpLnRyaW0oKTtcblxuICAgIGlmICh2YWx1ZSAmJiB0aGlzLlNlbGVjdGVkQnJhbmNoZXMuaW5kZXhPZih2YWx1ZSkgPCAwKSB7XG4gICAgICB0aGlzLlNlbGVjdGVkQnJhbmNoZXMucHVzaCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgdGhpcy5CcmFuY2hlc0lucHV0Lm5hdGl2ZUVsZW1lbnQuYmx1cigpO1xuXG4gICAgdGhpcy5lbWl0QnJhbmNoZXNDaGFuZ2VkKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZGVzdHJveUZvcm1Db250cm9scygpOiB2b2lkIHtcbiAgICB0aGlzLkZvcm1Hcm91cC5yZW1vdmVDb250cm9sKFxuICAgICAgW3RoaXMuU291cmNlQ29udHJvbFJvb3QsICdtYWluQnJhbmNoJ10uam9pbignJylcbiAgICApO1xuXG4gICAgdGhpcy5Gb3JtR3JvdXAucmVtb3ZlQ29udHJvbChbdGhpcy5Tb3VyY2VDb250cm9sUm9vdCwgJ2JyYW5jaGVzJ10uam9pbignJykpO1xuXG4gICAgdGhpcy5Gb3JtR3JvdXAucmVtb3ZlQ29udHJvbChbdGhpcy5Tb3VyY2VDb250cm9sUm9vdCwgJ2J1aWxkUGF0aCddLmpvaW4oJycpKTtcblxuICAgIHRoaXMuU2VsZWN0ZWRCcmFuY2hlcyA9IFtdO1xuXG4gICAgdGhpcy5Gb3JtR3JvdXAucmVtb3ZlQ29udHJvbChcbiAgICAgIFt0aGlzLlNvdXJjZUNvbnRyb2xSb290LCAnb3JnYW5pemF0aW9uJ10uam9pbignJylcbiAgICApO1xuXG4gICAgdGhpcy5Gb3JtR3JvdXAucmVtb3ZlQ29udHJvbChcbiAgICAgIFt0aGlzLlNvdXJjZUNvbnRyb2xSb290LCAncmVwb3NpdG9yeSddLmpvaW4oJycpXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBlbWl0QnJhbmNoZXNDaGFuZ2VkKCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIHRoaXMuU2VsZWN0ZWRCcmFuY2hlcz8ubGVuZ3RoID4gMCAmJlxuICAgICAgKCF0aGlzLk1haW5CcmFuY2hGb3JtQ29udHJvbC52YWx1ZSB8fFxuICAgICAgICB0aGlzLlNlbGVjdGVkQnJhbmNoZXMuaW5kZXhPZih0aGlzLk1haW5CcmFuY2hGb3JtQ29udHJvbC52YWx1ZSkgPCAwKVxuICAgICkge1xuICAgICAgdGhpcy5NYWluQnJhbmNoRm9ybUNvbnRyb2wuc2V0VmFsdWUoXG4gICAgICAgIHRoaXMuU2VsZWN0ZWRCcmFuY2hlcy5maW5kKFxuICAgICAgICAgIChicmFuY2gpID0+IGJyYW5jaCA9PT0gJ21haW4nIHx8IGJyYW5jaCA9PT0gJ21hc3RlcidcbiAgICAgICAgKSB8fCB0aGlzLlNlbGVjdGVkQnJhbmNoZXNbMF1cbiAgICAgICk7XG4gICAgfSBlbHNlIGlmICh0aGlzLlNlbGVjdGVkQnJhbmNoZXM/Lmxlbmd0aCA8PSAwKSB7XG4gICAgICB0aGlzLk1haW5CcmFuY2hGb3JtQ29udHJvbC5yZXNldCgpO1xuICAgIH1cblxuICAgIHRoaXMuQnJhbmNoZXNGb3JtQ29udHJvbC5zZXRWYWx1ZSh0aGlzLlNlbGVjdGVkQnJhbmNoZXMuam9pbignLCcpKTtcblxuICAgIHRoaXMuQnJhbmNoZXNDaGFuZ2VkLmVtaXQodGhpcy5TZWxlY3RlZEJyYW5jaGVzIHx8IFtdKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBsaXN0QnJhbmNoZXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuVXNlQnJhbmNoZXMpIHtcbiAgICAgIHRoaXMuTG9hZGluZyA9IHRydWU7XG5cbiAgICAgIHRoaXMuYXBwc0Zsb3dTdmNcbiAgICAgICAgLkxpc3RCcmFuY2hlcyhcbiAgICAgICAgICB0aGlzLk9yZ2FuaXphdGlvbkZvcm1Db250cm9sLnZhbHVlLFxuICAgICAgICAgIHRoaXMuUmVwb3NpdG9yeUZvcm1Db250cm9sLnZhbHVlXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2U6IEJhc2VNb2RlbGVkUmVzcG9uc2U8R2l0SHViQnJhbmNoW10+KSA9PiB7XG4gICAgICAgICAgdGhpcy5CcmFuY2hPcHRpb25zID0gcmVzcG9uc2UuTW9kZWw7XG5cbiAgICAgICAgICB0aGlzLkxvYWRpbmcgPSBmYWxzZTtcblxuICAgICAgICAgIGlmICh0aGlzLlNvdXJjZUNvbnRyb2w/LkJyYW5jaGVzPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLlNlbGVjdGVkQnJhbmNoZXMgPSB0aGlzLlNvdXJjZUNvbnRyb2wuQnJhbmNoZXM7XG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLkJyYW5jaE9wdGlvbnM/Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgdGhpcy5CcmFuY2hlc0Zvcm1Db250cm9sLnNldFZhbHVlKHRoaXMuQnJhbmNoT3B0aW9uc1swXS5OYW1lKTtcblxuICAgICAgICAgICAgdGhpcy5TZWxlY3RlZEJyYW5jaGVzID0gW3RoaXMuQnJhbmNoT3B0aW9uc1swXS5OYW1lXTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLmVtaXRCcmFuY2hlc0NoYW5nZWQoKTtcblxuICAgICAgICAgIHRoaXMubGlzdEJ1aWxkUGF0aHMoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGxpc3RCdWlsZFBhdGhzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLlVzZUJ1aWxkUGF0aCkge1xuICAgICAgdGhpcy5Mb2FkaW5nID0gdHJ1ZTtcblxuICAgICAgdGhpcy5hcHBzRmxvd1N2Y1xuICAgICAgICAuTGlzdEJ1aWxkUGF0aHMoXG4gICAgICAgICAgdGhpcy5Pcmdhbml6YXRpb25Gb3JtQ29udHJvbC52YWx1ZSxcbiAgICAgICAgICB0aGlzLlJlcG9zaXRvcnlGb3JtQ29udHJvbC52YWx1ZVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlOiBCYXNlTW9kZWxlZFJlc3BvbnNlPHN0cmluZ1tdPikgPT4ge1xuICAgICAgICAgIHRoaXMuQnVpbGRQYXRoT3B0aW9ucyA9IHJlc3BvbnNlLk1vZGVsO1xuXG4gICAgICAgICAgdGhpcy5Mb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgICBpZiAodGhpcy5CdWlsZFBhdGhPcHRpb25zPy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgIHRoaXMuQnVpbGRQYXRoRm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy5CdWlsZFBhdGhPcHRpb25zWzBdKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBsaXN0T3JnYW5pemF0aW9ucygpOiB2b2lkIHtcbiAgICB0aGlzLkxvYWRpbmcgPSB0cnVlO1xuXG4gICAgdGhpcy5hcHBzRmxvd1N2Y1xuICAgICAgLkxpc3RPcmdhbml6YXRpb25zKClcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlOiBCYXNlTW9kZWxlZFJlc3BvbnNlPEdpdEh1Yk9yZ2FuaXphdGlvbltdPikgPT4ge1xuICAgICAgICB0aGlzLk9yZ2FuaXphdGlvbk9wdGlvbnMgPSByZXNwb25zZS5Nb2RlbDtcblxuICAgICAgICB0aGlzLkxvYWRpbmcgPSBmYWxzZTtcblxuICAgICAgICBpZiAodGhpcy5Tb3VyY2VDb250cm9sPy5Pcmdhbml6YXRpb24pIHtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuT3JnYW5pemF0aW9uRm9ybUNvbnRyb2wuc2V0VmFsdWUoXG4gICAgICAgICAgICAgIHRoaXMuU291cmNlQ29udHJvbC5Pcmdhbml6YXRpb25cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHRoaXMubGlzdFJlcG9zaXRvcmllcyh0aGlzLlNvdXJjZUNvbnRyb2w/LlJlcG9zaXRvcnkpO1xuICAgICAgICAgIH0sIDApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBsaXN0UmVwb3NpdG9yaWVzKGFjdGl2ZVJlcG86IHN0cmluZyA9IG51bGwpOiB2b2lkIHtcbiAgICB0aGlzLkxvYWRpbmcgPSB0cnVlO1xuXG4gICAgdGhpcy5hcHBzRmxvd1N2Y1xuICAgICAgLkxpc3RSZXBvc2l0b3JpZXModGhpcy5Pcmdhbml6YXRpb25Gb3JtQ29udHJvbC52YWx1ZSlcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlOiBCYXNlTW9kZWxlZFJlc3BvbnNlPEdpdEh1YlJlcG9zaXRvcnlbXT4pID0+IHtcbiAgICAgICAgdGhpcy5SZXBvc2l0b3J5T3B0aW9ucyA9IHJlc3BvbnNlLk1vZGVsO1xuXG4gICAgICAgIHRoaXMuTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgICAgIGlmIChhY3RpdmVSZXBvKSB7XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLlJlcG9zaXRvcnlGb3JtQ29udHJvbC5zZXRWYWx1ZShhY3RpdmVSZXBvKTtcblxuICAgICAgICAgICAgdGhpcy5saXN0QnJhbmNoZXMoKTtcblxuICAgICAgICAgICAgaWYgKCF0aGlzLlVzZUJyYW5jaGVzKSB7XG4gICAgICAgICAgICAgIHRoaXMubGlzdEJ1aWxkUGF0aHMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LCAwKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLlJlcG9zaXRvcnlPcHRpb25zPy5sZW5ndGggPD0gMCkge1xuICAgICAgICAgIHRoaXMuQ3JlYXRpbmdSZXBvc2l0b3J5ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0dXBGb3JtQ29udHJvbHMoKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95Rm9ybUNvbnRyb2xzKCk7XG5cbiAgICB0aGlzLkZvcm1Hcm91cC5hZGRDb250cm9sKFxuICAgICAgW3RoaXMuU291cmNlQ29udHJvbFJvb3QsICdvcmdhbml6YXRpb24nXS5qb2luKCcnKSxcbiAgICAgIG5ldyBGb3JtQ29udHJvbChcbiAgICAgICAgdGhpcy5Tb3VyY2VDb250cm9sLk9yZ2FuaXphdGlvbiA/PyAnJyxcbiAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZFxuICAgICAgKVxuICAgICk7XG5cbiAgICB0aGlzLkZvcm1Hcm91cC5hZGRDb250cm9sKFxuICAgICAgW3RoaXMuU291cmNlQ29udHJvbFJvb3QsICdyZXBvc2l0b3J5J10uam9pbignJyksXG4gICAgICBuZXcgRm9ybUNvbnRyb2wodGhpcy5Tb3VyY2VDb250cm9sLlJlcG9zaXRvcnkgPz8gJycsIFZhbGlkYXRvcnMucmVxdWlyZWQpXG4gICAgKTtcblxuICAgIGlmICh0aGlzLlVzZUJyYW5jaGVzKSB7XG4gICAgICB0aGlzLkZvcm1Hcm91cC5hZGRDb250cm9sKFxuICAgICAgICBbdGhpcy5Tb3VyY2VDb250cm9sUm9vdCwgJ2JyYW5jaGVzJ10uam9pbignJyksXG4gICAgICAgIG5ldyBGb3JtQ29udHJvbCh0aGlzLlNvdXJjZUNvbnRyb2w/LkJyYW5jaGVzID8/ICcnLCBWYWxpZGF0b3JzLnJlcXVpcmVkKVxuICAgICAgKTtcblxuICAgICAgdGhpcy5TZWxlY3RlZEJyYW5jaGVzID0gdGhpcy5Tb3VyY2VDb250cm9sPy5CcmFuY2hlcztcblxuICAgICAgdGhpcy5Gb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICAgW3RoaXMuU291cmNlQ29udHJvbFJvb3QsICdtYWluQnJhbmNoJ10uam9pbignJyksXG4gICAgICAgIG5ldyBGb3JtQ29udHJvbChcbiAgICAgICAgICB0aGlzLlNvdXJjZUNvbnRyb2wuTWFpbkJyYW5jaCA/PyAnJyxcbiAgICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuVXNlQnVpbGRQYXRoKSB7XG4gICAgICB0aGlzLkZvcm1Hcm91cC5hZGRDb250cm9sKFxuICAgICAgICBbdGhpcy5Tb3VyY2VDb250cm9sUm9vdCwgJ2J1aWxkUGF0aCddLmpvaW4oJycpLFxuICAgICAgICBuZXcgRm9ybUNvbnRyb2wodGhpcy5CdWlsZFBhdGggPz8gJycsIFZhbGlkYXRvcnMucmVxdWlyZWQpXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBbZm9ybUdyb3VwXT1cIkZvcm1Hcm91cFwiPlxuICA8ZGl2IGNsYXNzPVwiY2FyZFwiICpuZ0lmPVwiT3JnYW5pemF0aW9uRm9ybUNvbnRyb2w/LnZhbGlkIHx8ICFMb2FkaW5nXCI+XG4gICAgPG1hdC1mb3JtLWZpZWxkXG4gICAgICBjbGFzcz1cIm1hdC1mdWxsLXdpZHRoIHdpdGgtaGludFwiXG4gICAgICAqbmdJZj1cIk9yZ2FuaXphdGlvbk9wdGlvbnM/Lmxlbmd0aCA+IDBcIlxuICAgID5cbiAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm9yZy1pY29uXCIgbWF0UHJlZml4PmNvcnBvcmF0ZV9mYXJlPC9tYXQtaWNvbj5cblxuICAgICAgPG1hdC1zZWxlY3RcbiAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJTb3VyY2VDb250cm9sUm9vdCArICdvcmdhbml6YXRpb24nXCJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJPcmdhbml6YXRpb25cIlxuICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIk9yZ2FuaXphdGlvbkNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJMb2FkaW5nIHx8IE9yZ2FuaXphdGlvbkRpc2FibGVkXCJcbiAgICAgICAgcmVxdWlyZWRcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgb3JnT3B0IG9mIE9yZ2FuaXphdGlvbk9wdGlvbnNcIj5cbiAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwib3JnT3B0Lk5hbWVcIj5cbiAgICAgICAgICAgIHt7IG9yZ09wdC5OYW1lIH19XG4gICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbWF0LXNlbGVjdD5cblxuICAgICAgPG1hdC1pY29uIG1hdFN1ZmZpeCAoY2xpY2spPVwiUmVmcmVzaE9yZ2FuaXphdGlvbnMoKVwiIG1hdFRvb2x0aXA9XCJSZWZyZXNoIE9yZ2FuaXphdGlvblwiPiByZWZyZXNoIDwvbWF0LWljb24+XG5cbiAgICAgIDxhXG4gICAgICAgIG1hdFN1ZmZpeFxuICAgICAgICBocmVmPVwiLy5vYXV0aC9naXRodWI/b2F1dGgtZm9yY2UtZWRpdD10cnVlXCJcbiAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgY29sb3I9XCJhY2NlbnRcIlxuICAgICAgPlxuICAgICAgICA8bWF0LWljb24gY29sb3I9XCJhY2NlbnRcIiBtYXRUb29sdGlwPVwiUmUtYXV0aG9yaXplIE9yZ2FuaXphdGlvbnNcIj4gbGF1bmNoIDwvbWF0LWljb24+XG4gICAgICA8L2E+XG5cbiAgICAgIDxtYXQtaGludD5cbiAgICAgICAgSWYgeW91IGRvbid0IGhhdmUgYW4gb3JnYW5pemF0aW9uIG9yIHdvdWxkIGxpa2UgdG8gY3JlYXRlIGEgbmV3IG9uZSxcbiAgICAgICAgPGFcbiAgICAgICAgICBocmVmPVwiaHR0cHM6Ly9naXRodWIuY29tL2FjY291bnQvb3JnYW5pemF0aW9ucy9uZXdcIlxuICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgID5cbiAgICAgICAgICBzdGFydCBoZXJlXG4gICAgICAgIDwvYT5cbiAgICAgIDwvbWF0LWhpbnQ+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgPC9kaXY+XG5cbiAgPGRpdlxuICAgIGNsYXNzPVwiY2FyZFwiXG4gICAgKm5nSWY9XCJcbiAgICAgIFJlcG9zaXRvcnlGb3JtQ29udHJvbD8udmFsaWQgfHxcbiAgICAgIChPcmdhbml6YXRpb25Gb3JtQ29udHJvbD8udmFsaWQgJiYgIUxvYWRpbmcpXG4gICAgXCJcbiAgPlxuICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cIm1hdC1mdWxsLXdpZHRoXCI+XG4gICAgICA8bWF0LWljb24gY2xhc3M9XCJvcmctaWNvblwiIG1hdFByZWZpeD5kZXNjcmlwdGlvbjwvbWF0LWljb24+XG5cbiAgICAgIDxtYXQtc2VsZWN0XG4gICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiU291cmNlQ29udHJvbFJvb3QgKyAncmVwb3NpdG9yeSdcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiXG4gICAgICAgICAgT3JnYW5pemF0aW9uRm9ybUNvbnRyb2w/LnZhbGlkXG4gICAgICAgICAgICA/ICdSZXBvc2l0b3J5J1xuICAgICAgICAgICAgOiAnUmVwb3NpdG9yeSAoc2VsZWN0IG9yZ2FuaXphdGlvbiBmaXJzdCknXG4gICAgICAgIFwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJcbiAgICAgICAgICAhT3JnYW5pemF0aW9uRm9ybUNvbnRyb2w/LnZhbGlkIHx8IExvYWRpbmcgfHwgUmVwb3NpdG9yeURpc2FibGVkXG4gICAgICAgIFwiXG4gICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwiUmVwb3NpdG9yeUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICpuZ0lmPVwiIUNyZWF0aW5nUmVwb3NpdG9yeVwiXG4gICAgICAgIHJlcXVpcmVkXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHJlcG9PcHQgb2YgUmVwb3NpdG9yeU9wdGlvbnNcIj5cbiAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwicmVwb09wdC5OYW1lXCI+XG4gICAgICAgICAgICB7eyByZXBvT3B0Lk5hbWUgfX1cbiAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9tYXQtc2VsZWN0PlxuXG4gICAgICA8aW5wdXRcbiAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJSZXBvc2l0b3J5IChjcmVhdGVzIG5ldyBpZiBkb2VzIG5vdCBleGlzdClcIlxuICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cIlNvdXJjZUNvbnRyb2xSb290ICsgJ3JlcG9zaXRvcnknXCJcbiAgICAgICAgKm5nSWY9XCJDcmVhdGluZ1JlcG9zaXRvcnlcIlxuICAgICAgICBbZnhIaWRlXT1cIkxvYWRpbmcgfHwgUmVwb3NpdG9yeURpc2FibGVkXCJcbiAgICAgICAgcmVxdWlyZWRcbiAgICAgIC8+XG5cbiAgICAgIDxtYXQtaWNvblxuICAgICAgICBtYXRTdWZmaXhcbiAgICAgICAgKGNsaWNrKT1cIkNyZWF0ZVJlcG9zaXRvcnkoKVwiXG4gICAgICAgIFtmeEhpZGVdPVwiTG9hZGluZyB8fCBSZXBvc2l0b3J5RGlzYWJsZWRcIlxuICAgICAgICAqbmdJZj1cIiFDcmVhdGluZ1JlcG9zaXRvcnkgJiYgT3JnYW5pemF0aW9uRm9ybUNvbnRyb2w/LnZhbGlkXCJcbiAgICAgID5cbiAgICAgICAgYWRkX2NpcmNsZVxuICAgICAgPC9tYXQtaWNvbj5cblxuICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIHR5cGU9XCJidXR0b25cIiBcbiAgICAgICAgKGNsaWNrKT1cIlNhdmVSZXBvc2l0b3J5KClcIiBcbiAgICAgICAgKm5nSWY9XCJDcmVhdGluZ1JlcG9zaXRvcnkgJiYgUmVwb3NpdG9yeUZvcm1Db250cm9sPy52YWxpZFwiPlxuXG4gICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgIG1hdFN1ZmZpeFxuICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgID5cbiAgICAgICAgICBzYXZlXG4gICAgICAgIDwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cblxuICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIHR5cGU9XCJidXR0b25cIiBcbiAgICAgICAgKGNsaWNrKT1cIkNhbmNlbENyZWF0ZVJlcG9zaXRvcnkoKVwiXG4gICAgICAgICpuZ0lmPVwiQ3JlYXRpbmdSZXBvc2l0b3J5XCI+XG5cbiAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgbWF0U3VmZml4XG4gICAgICAgICAgXG4gICAgICAgID5cbiAgICAgICAgICBjYW5jZWxcbiAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gIDwvZGl2PlxuXG4gIDxkaXZcbiAgICBjbGFzcz1cImNhcmRcIlxuICAgICpuZ0lmPVwiXG4gICAgICAoQnJhbmNoZXNGb3JtQ29udHJvbD8udmFsaWQgfHxcbiAgICAgICAgKE9yZ2FuaXphdGlvbkZvcm1Db250cm9sPy52YWxpZCAmJlxuICAgICAgICAgIFJlcG9zaXRvcnlGb3JtQ29udHJvbD8udmFsaWQgJiZcbiAgICAgICAgICAhTG9hZGluZykpICYmXG4gICAgICAhQ3JlYXRpbmdSZXBvc2l0b3J5ICYmXG4gICAgICBVc2VCcmFuY2hlc1xuICAgIFwiXG4gID5cbiAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJtYXQtZnVsbC13aWR0aFwiPlxuICAgICAgPG1hdC1pY29uIGNsYXNzPVwib3JnLWljb25cIiBtYXRQcmVmaXg+YWNjb3VudF90cmVlPC9tYXQtaWNvbj5cblxuICAgICAgPG1hdC1sYWJlbD5TZWxlY3RlZCBCcmFuY2hlczwvbWF0LWxhYmVsPlxuXG4gICAgICA8bWF0LWF1dG9jb21wbGV0ZVxuICAgICAgICAob3B0aW9uU2VsZWN0ZWQpPVwiQnJhbmNoT3B0aW9uU2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICAgICNicmFuY2hPcHRpb25zPVwibWF0QXV0b2NvbXBsZXRlXCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYnJhbmNoT3B0IG9mIEJyYW5jaE9wdGlvbnNcIj5cbiAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiYnJhbmNoT3B0Lk5hbWVcIj5cbiAgICAgICAgICAgIHt7IGJyYW5jaE9wdC5OYW1lIH19XG4gICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cblxuICAgICAgPG1hdC1jaGlwLWxpc3QgI3NlbGVjdGVkQnJhbmNoZXM+XG4gICAgICAgIDxtYXQtY2hpcFxuICAgICAgICAgIFtyZW1vdmFibGVdPVwidHJ1ZVwiXG4gICAgICAgICAgKHJlbW92ZWQpPVwiUmVtb3ZlQnJhbmNoT3B0aW9uKHNlbEJyYW5jaClcIlxuICAgICAgICAgICpuZ0Zvcj1cImxldCBzZWxCcmFuY2ggb2YgU2VsZWN0ZWRCcmFuY2hlc1wiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBzZWxCcmFuY2ggfX1cbiAgICAgICAgICA8bWF0LWljb24gbWF0Q2hpcFJlbW92ZT5jYW5jZWw8L21hdC1pY29uPlxuICAgICAgICA8L21hdC1jaGlwPlxuXG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJOZXcgQnJhbmNoLi4uXCJcbiAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cIlNvdXJjZUNvbnRyb2xSb290ICsgJ2JyYW5jaGVzJ1wiXG4gICAgICAgICAgI2JyYW5jaGVzXG4gICAgICAgICAgW21hdEF1dG9jb21wbGV0ZV09XCJicmFuY2hPcHRpb25zXCJcbiAgICAgICAgICBbbWF0Q2hpcElucHV0Rm9yXT1cInNlbGVjdGVkQnJhbmNoZXNcIlxuICAgICAgICAgIFttYXRDaGlwSW5wdXRTZXBhcmF0b3JLZXlDb2Rlc109XCJTZXBhcmF0b3JLZXlzQ29kZXNcIlxuICAgICAgICAgIFttYXRDaGlwSW5wdXRBZGRPbkJsdXJdPVwidHJ1ZVwiXG4gICAgICAgICAgKG1hdENoaXBJbnB1dFRva2VuRW5kKT1cIkFkZEJyYW5jaE9wdGlvbigkZXZlbnQpXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiTG9hZGluZyB8fCBCcmFuY2hlc0Rpc2FibGVkXCJcbiAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAvPlxuICAgICAgPC9tYXQtY2hpcC1saXN0PlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICA8bWF0LWZvcm0tZmllbGRcbiAgICAgIGNsYXNzPVwibWF0LWZ1bGwtd2lkdGggd2l0aC1oaW50XCJcbiAgICAgIFtmeFNob3ddPVwiU2VsZWN0ZWRCcmFuY2hlcz8ubGVuZ3RoID4gMVwiXG4gICAgPlxuICAgICAgPG1hdC1pY29uIGNsYXNzPVwib3JnLWljb25cIiBtYXRQcmVmaXg+YWNjb3VudF90cmVlPC9tYXQtaWNvbj5cblxuICAgICAgPG1hdC1zZWxlY3RcbiAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJTb3VyY2VDb250cm9sUm9vdCArICdtYWluQnJhbmNoJ1wiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwiTWFpbiBCcmFuY2hcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiTG9hZGluZyB8fCBCcmFuY2hlc0Rpc2FibGVkXCJcbiAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJNYWluQnJhbmNoQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgcmVxdWlyZWRcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYnJhbmNoIG9mIFNlbGVjdGVkQnJhbmNoZXNcIj5cbiAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiYnJhbmNoXCI+XG4gICAgICAgICAgICB7eyBicmFuY2ggfX1cbiAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9tYXQtc2VsZWN0PlxuXG4gICAgICA8bWF0LWljb24gbWF0U3VmZml4IChjbGljayk9XCJSZWZyZXNoT3JnYW5pemF0aW9ucygpXCI+IHJlZnJlc2ggPC9tYXQtaWNvbj5cblxuICAgICAgPGFcbiAgICAgICAgbWF0U3VmZml4XG4gICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICBocmVmPVwiLy5vYXV0aC9naXRodWI/b2F1dGgtZm9yY2UtZWRpdD10cnVlXCJcbiAgICAgICAgXG4gICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgIGNvbG9yPVwiYWNjZW50XCJcbiAgICAgID5cbiAgICAgICAgPG1hdC1pY29uXG4gICAgICAgIG1hdFRvb2x0aXA9XCJSZS1hdXRob3JpemUgT3JnYW5pemF0aW9uc1wiXG4gICAgICAgIGNvbG9yPVwiYWNjZW50XCI+IGxhdW5jaCA8L21hdC1pY29uPlxuICAgICAgPC9hPlxuXG4gICAgICA8bWF0LWhpbnQ+XG4gICAgICAgIElmIHlvdSBkb24ndCBoYXZlIGFuIG9yZ2FuaXphdGlvbiBvciB3b3VsZCBsaWtlIHRvIGNyZWF0ZSBhIG5ldyBvbmUsXG4gICAgICAgIDxhXG4gICAgICAgICAgaHJlZj1cImh0dHBzOi8vZ2l0aHViLmNvbS9hY2NvdW50L29yZ2FuaXphdGlvbnMvbmV3XCJcbiAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICA+XG4gICAgICAgICAgc3RhcnQgaGVyZVxuICAgICAgICA8L2E+XG4gICAgICA8L21hdC1oaW50PlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gIDwvZGl2PlxuXG4gIDxkaXZcbiAgICBjbGFzcz1cImNhcmRcIlxuICAgICpuZ0lmPVwiXG4gICAgICAoQnVpbGRQYXRoRm9ybUNvbnRyb2w/LnZhbGlkIHx8XG4gICAgICAgIChPcmdhbml6YXRpb25Gb3JtQ29udHJvbD8udmFsaWQgJiZcbiAgICAgICAgICBSZXBvc2l0b3J5Rm9ybUNvbnRyb2w/LnZhbGlkICYmXG4gICAgICAgICAgIUxvYWRpbmcpKSAmJlxuICAgICAgIUNyZWF0aW5nUmVwb3NpdG9yeSAmJlxuICAgICAgVXNlQnVpbGRQYXRoXG4gICAgXCJcbiAgPlxuICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cIm1hdC1mdWxsLXdpZHRoIHdpdGgtaGludFwiPlxuICAgICAgPG1hdC1pY29uIGNsYXNzPVwib3JnLWljb25cIiBtYXRQcmVmaXg+YnVpbGQ8L21hdC1pY29uPlxuXG4gICAgICA8bWF0LXNlbGVjdFxuICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cIlNvdXJjZUNvbnRyb2xSb290ICsgJ2J1aWxkUGF0aCdcIlxuICAgICAgICBwbGFjZWhvbGRlcj1cIkJ1aWxkIFBhdGhcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiTG9hZGluZyB8fCBCdWlsZFBhdGhEaXNhYmxlZFwiXG4gICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwiQnVpbGRQYXRoQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgcmVxdWlyZWRcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYnVpbGRQYXRoIG9mIEJ1aWxkUGF0aE9wdGlvbnNcIj5cbiAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiYnVpbGRQYXRoXCI+XG4gICAgICAgICAgICB7eyBidWlsZFBhdGggfX1cbiAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9tYXQtc2VsZWN0PlxuXG4gICAgICA8bWF0LWhpbnQ+XG4gICAgICAgIFRoZSBidWlsZCBwYXRoIGlkZW50aWZpZXMgd2hpY2ggYnVpbGQgYWN0aW9uIHRvIHVzZSBmb3IgeW91clxuICAgICAgICBjb25maWd1cmF0aW9uLlxuICAgICAgPC9tYXQtaGludD5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICA8L2Rpdj5cblxuICA8ZGl2ICpuZ0lmPVwiTG9hZGluZ1wiPlxuICAgIDxkaXYgY2xhc3M9XCJzcHJlYWRcIj5cbiAgICAgIDxsY3UtbG9hZGVyIHN0eWxlPVwibWFyZ2luOiBhdXRvXCIgW2xvYWRpbmddPVwidHJ1ZVwiPjwvbGN1LWxvYWRlcj5cblxuICAgICAgPGRpdiBjbGFzcz1cIm1hcmdpbi0zXCI+XG4gICAgICAgIDxoNCBjbGFzcz1cIm1hdC10aXRsZVwiICpuZ0lmPVwiIU9yZ2FuaXphdGlvbkZvcm1Db250cm9sPy52YWxpZFwiPlxuICAgICAgICAgIExvYWRpbmcgb3JnYW5pemF0aW9uc1xuICAgICAgICA8L2g0PlxuXG4gICAgICAgIDxoNFxuICAgICAgICAgIGNsYXNzPVwibWF0LXRpdGxlXCJcbiAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgT3JnYW5pemF0aW9uRm9ybUNvbnRyb2w/LnZhbGlkICYmICFSZXBvc2l0b3J5Rm9ybUNvbnRyb2w/LnZhbGlkXG4gICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICAgIExvYWRpbmcgcmVwb3NpdG9yaWVzXG4gICAgICAgIDwvaDQ+XG5cbiAgICAgICAgPGg0XG4gICAgICAgICAgY2xhc3M9XCJtYXQtdGl0bGVcIlxuICAgICAgICAgICpuZ0lmPVwiUmVwb3NpdG9yeUZvcm1Db250cm9sPy52YWxpZCAmJiAhQnJhbmNoZXNGb3JtQ29udHJvbD8udmFsaWRcIlxuICAgICAgICA+XG4gICAgICAgICAgTG9hZGluZyBicmFuY2hlc1xuICAgICAgICA8L2g0PlxuXG4gICAgICAgIDxoNFxuICAgICAgICAgIGNsYXNzPVwibWF0LXRpdGxlXCJcbiAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgKFJlcG9zaXRvcnlGb3JtQ29udHJvbD8udmFsaWQgfHwgQnJhbmNoZXNGb3JtQ29udHJvbD8udmFsaWQpICYmXG4gICAgICAgICAgICAhQnVpbGRQYXRoRm9ybUNvbnRyb2w/LnZhbGlkXG4gICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICAgIExvYWRpbmcgYnVpbGQgcGF0aHNcbiAgICAgICAgPC9oND5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19