@fundamental-ngx/platform 0.44.1-rc.3 → 0.45.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (277) hide show
  1. package/action-bar/action-bar.component.d.ts +1 -6
  2. package/action-bar/action-bar.module.d.ts +3 -4
  3. package/button/button.module.d.ts +2 -3
  4. package/dynamic-page/dynamic-page-header/header/dynamic-page-header.component.d.ts +1 -3
  5. package/esm2022/action-bar/action-bar.component.mjs +3 -5
  6. package/esm2022/action-bar/action-bar.module.mjs +5 -26
  7. package/esm2022/approval-flow/approval-flow-add-node/approval-flow-add-node.component.mjs +5 -5
  8. package/esm2022/approval-flow/approval-flow-approver-details/approval-flow-approver-details.component.mjs +5 -5
  9. package/esm2022/approval-flow/approval-flow-messages/approval-flow-messages.component.mjs +1 -1
  10. package/esm2022/approval-flow/approval-flow-select-type/approval-flow-select-type.component.mjs +5 -5
  11. package/esm2022/approval-flow/approval-flow-team-list/approval-flow-team-list.component.mjs +3 -3
  12. package/esm2022/approval-flow/approval-flow-user-details/approval-flow-user-details.component.mjs +1 -1
  13. package/esm2022/approval-flow/approval-flow-user-list/approval-flow-user-list.component.mjs +3 -3
  14. package/esm2022/approval-flow/approval-flow.component.mjs +1 -1
  15. package/esm2022/button/button.module.mjs +5 -6
  16. package/esm2022/dynamic-page/dynamic-page-header/header/dynamic-page-header.component.mjs +2 -8
  17. package/esm2022/dynamic-page/dynamic-page.component.mjs +1 -1
  18. package/esm2022/feed-input/feed-input.component.mjs +3 -17
  19. package/esm2022/form/checkbox/checkbox.component.mjs +3 -50
  20. package/esm2022/form/checkbox/checkbox.module.mjs +5 -26
  21. package/esm2022/form/checkbox-group/checkbox-group.component.mjs +10 -38
  22. package/esm2022/form/checkbox-group/checkbox-group.module.mjs +5 -23
  23. package/esm2022/form/combobox/combobox/combobox.component.mjs +1 -1
  24. package/esm2022/form/combobox/combobox-mobile/combobox/combobox-mobile.component.mjs +1 -1
  25. package/esm2022/form/combobox/combobox.module.mjs +4 -8
  26. package/esm2022/form/date-picker/date-picker.component.mjs +4 -66
  27. package/esm2022/form/date-picker/date-picker.module.mjs +5 -26
  28. package/esm2022/form/datetime-picker/datetime-picker.component.mjs +3 -56
  29. package/esm2022/form/datetime-picker/datetime-picker.module.mjs +5 -26
  30. package/esm2022/form/form-generator/controls/dynamic-form-generator-checkbox/dynamic-form-generator-checkbox.component.mjs +2 -2
  31. package/esm2022/form/form-generator/controls/dynamic-form-generator-datepicker/dynamic-form-generator-datepicker.component.mjs +2 -2
  32. package/esm2022/form/form-generator/controls/dynamic-form-generator-editor/dynamic-form-generator-editor.component.mjs +2 -2
  33. package/esm2022/form/form-generator/controls/dynamic-form-generator-select/dynamic-form-generator-select.component.mjs +2 -2
  34. package/esm2022/form/form-generator/form-generator/form-generator.component.mjs +35 -60
  35. package/esm2022/form/form-generator/form-generator-field/form-generator-field.component.mjs +1 -1
  36. package/esm2022/form/form-generator/interfaces/dynamic-form-item.mjs +1 -1
  37. package/esm2022/form/form-group/fdp-form.module.mjs +1 -5
  38. package/esm2022/form/form-group/form-field/form-field.component.mjs +5 -41
  39. package/esm2022/form/form-group/form-group-header/form-group-header.component.mjs +1 -1
  40. package/esm2022/form/form-group/form-group.component.mjs +5 -29
  41. package/esm2022/form/index.mjs +1 -2
  42. package/esm2022/form/input/fdp-input.module.mjs +5 -23
  43. package/esm2022/form/input-group/input-group.module.mjs +4 -22
  44. package/esm2022/form/multi-combobox/multi-combobox/multi-combobox.component.mjs +1 -1
  45. package/esm2022/form/multi-combobox/multi-combobox-mobile/multi-combobox/multi-combobox-mobile.component.mjs +1 -1
  46. package/esm2022/form/multi-combobox/multi-combobox.module.mjs +4 -8
  47. package/esm2022/form/multi-input/multi-input-mobile/multi-input-mobile.component.mjs +1 -1
  48. package/esm2022/form/multi-input/multi-input.component.mjs +3 -3
  49. package/esm2022/form/multi-input/multi-input.module.mjs +4 -8
  50. package/esm2022/form/platform-file-uploader/platform-file-uploader.component.mjs +9 -27
  51. package/esm2022/form/platform-file-uploader/platform-file-uploader.module.mjs +5 -23
  52. package/esm2022/form/radio-group/radio/radio.component.mjs +3 -22
  53. package/esm2022/form/radio-group/radio-group.component.mjs +1 -1
  54. package/esm2022/form/radio-group/radio-group.module.mjs +4 -17
  55. package/esm2022/form/select/select/select.component.mjs +5 -23
  56. package/esm2022/form/select/select.module.mjs +4 -20
  57. package/esm2022/form/step-input/number/number-step-input.component.mjs +1 -1
  58. package/esm2022/form/step-input/step-input.module.mjs +4 -8
  59. package/esm2022/form/switch/switch/switch.component.mjs +1 -1
  60. package/esm2022/form/switch/switch.module.mjs +5 -23
  61. package/esm2022/form/text-area/text-area.component.mjs +4 -21
  62. package/esm2022/form/text-area/text-area.module.mjs +4 -8
  63. package/esm2022/form/time-picker/time-picker.module.mjs +5 -26
  64. package/esm2022/icon-tab-bar/components/icon-tab-bar-filter-type/icon-tab-bar-filter-type.component.mjs +1 -1
  65. package/esm2022/icon-tab-bar/components/icon-tab-bar-icon-type/icon-tab-bar-icon-type.component.mjs +1 -1
  66. package/esm2022/icon-tab-bar/components/icon-tab-bar-process-type/icon-tab-bar-process-type.component.mjs +1 -1
  67. package/esm2022/icon-tab-bar/components/icon-tab-bar-text-type/icon-tab-bar-text-type.component.mjs +1 -1
  68. package/esm2022/link/link.component.mjs +3 -3
  69. package/esm2022/list/action-list-item/action-list-item.component.mjs +1 -1
  70. package/esm2022/list/base-list-item.mjs +6 -49
  71. package/esm2022/list/display-list-item/display-list-item.component.mjs +1 -1
  72. package/esm2022/list/free-content-list-item/free-content-list-item.component.mjs +3 -3
  73. package/esm2022/list/list-group-header.component.mjs +2 -8
  74. package/esm2022/list/list.component.mjs +1 -1
  75. package/esm2022/list/list.module.mjs +2 -9
  76. package/esm2022/list/object-list-item/object-list-item.component.mjs +1 -1
  77. package/esm2022/list/object-list-item/object-list-item.module.mjs +4 -17
  78. package/esm2022/list/standard-list-item/standard-list-item.component.mjs +3 -3
  79. package/esm2022/list/standard-list-item/standard-list-item.module.mjs +4 -8
  80. package/esm2022/menu/menu.module.mjs +5 -37
  81. package/esm2022/menu-button/menu-button.module.mjs +5 -23
  82. package/esm2022/message-popover/components/message-view/message-view.component.mjs +2 -2
  83. package/esm2022/message-popover/message-popover.component.mjs +4 -5
  84. package/esm2022/panel/panel.module.mjs +5 -17
  85. package/esm2022/search-field/search-field-mobile/search-field/search-field-mobile.component.mjs +1 -1
  86. package/esm2022/search-field/search-field.component.mjs +8 -45
  87. package/esm2022/search-field/search-field.module.mjs +4 -19
  88. package/esm2022/settings-generator/controls/theme-selector-list/theme-selector-list.component.mjs +2 -2
  89. package/esm2022/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-icon/settings-generator-sidebar-icon.component.mjs +1 -1
  90. package/esm2022/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-layout.component.mjs +1 -1
  91. package/esm2022/settings-generator/settings-generator-content/settings-generator-content.component.mjs +1 -1
  92. package/esm2022/settings-generator/settings-generator-content/settings-generator-section/settings-generator-section.component.mjs +1 -1
  93. package/esm2022/shared/form/form-field.mjs +1 -1
  94. package/esm2022/shared/form/form-options.mjs +1 -1
  95. package/esm2022/shared/form/hint-options.mjs +1 -1
  96. package/esm2022/shared/index.mjs +1 -2
  97. package/esm2022/slider/slider.component.mjs +1 -1
  98. package/esm2022/slider/slider.module.mjs +5 -6
  99. package/esm2022/smart-filter-bar/components/smart-filter-bar-condition-field/base-smart-filter-bar-condition-field.mjs +6 -10
  100. package/esm2022/smart-filter-bar/components/smart-filter-bar-condition-field/smart-filter-bar-condition-field.component.mjs +10 -12
  101. package/esm2022/smart-filter-bar/components/smart-filter-bar-conditions-dialog/smart-filter-bar-conditions-dialog.component.mjs +8 -11
  102. package/esm2022/smart-filter-bar/components/smart-filter-bar-settings-dialog/smart-filter-bar-settings-dialog.component.mjs +40 -45
  103. package/esm2022/smart-filter-bar/interfaces/smart-filter-bar-condition.mjs +1 -1
  104. package/esm2022/smart-filter-bar/interfaces/smart-filter-bar-settings-dialog-config.mjs +1 -1
  105. package/esm2022/smart-filter-bar/interfaces/strategy-labels.type.mjs +1 -1
  106. package/esm2022/smart-filter-bar/smart-filter-bar.class.mjs +1 -1
  107. package/esm2022/smart-filter-bar/smart-filter-bar.component.mjs +5 -72
  108. package/esm2022/split-menu-button/split-menu-button.module.mjs +5 -23
  109. package/esm2022/table/components/table-cell-header-popover/table-cell-header-popover.component.mjs +1 -1
  110. package/esm2022/table/components/table-editable-cell/table-editable-cell.component.mjs +1 -1
  111. package/esm2022/table/components/table-p13-dialog/columns/columns.component.mjs +3 -3
  112. package/esm2022/table/components/table-p13-dialog/filtering/filter-rule.component.mjs +1 -1
  113. package/esm2022/table/components/table-p13-dialog/filtering/filtering.component.mjs +3 -3
  114. package/esm2022/table/components/table-p13-dialog/grouping/grouping.component.mjs +3 -3
  115. package/esm2022/table/components/table-p13-dialog/sorting/sorting.component.mjs +3 -3
  116. package/esm2022/table/components/table-popping-row/table-popping-row.component.mjs +1 -1
  117. package/esm2022/table/components/table-toolbar/table-toolbar.component.mjs +1 -1
  118. package/esm2022/table/components/table-view-settings-dialog/filtering/filter-multi-select.component.mjs +1 -1
  119. package/esm2022/table/components/table-view-settings-dialog/filtering/filter-single-select.component.mjs +1 -1
  120. package/esm2022/table/components/table-view-settings-dialog/filtering/filter-step.component.mjs +3 -3
  121. package/esm2022/table/components/table-view-settings-dialog/filtering/filters-list-step.component.mjs +1 -1
  122. package/esm2022/table/components/table-view-settings-dialog/filtering/filters.component.mjs +1 -1
  123. package/esm2022/table/components/table-view-settings-dialog/grouping/grouping.component.mjs +1 -1
  124. package/esm2022/table/components/table-view-settings-dialog/sorting/sorting.component.mjs +1 -1
  125. package/esm2022/table/table.component.mjs +1 -1
  126. package/esm2022/table/table.module.mjs +1 -5
  127. package/esm2022/thumbnail/thumbnail-details/thumbnail-details.component.mjs +5 -5
  128. package/esm2022/thumbnail/thumbnail-image/thumbnail-image.component.mjs +3 -3
  129. package/esm2022/upload-collection/dialogs/move-to/move-to.component.mjs +1 -1
  130. package/esm2022/upload-collection/dialogs/new-folder/new-folder.component.mjs +1 -1
  131. package/esm2022/upload-collection/models/upload-collection.models.mjs +1 -1
  132. package/esm2022/upload-collection/upload-collection/upload-collection.component.mjs +4 -29
  133. package/esm2022/upload-collection/upload-collection.module.mjs +4 -8
  134. package/esm2022/value-help-dialog/components/define-tab/define-tab.component.mjs +2 -27
  135. package/esm2022/value-help-dialog/components/select-tab/select-tab.component.mjs +3 -17
  136. package/esm2022/value-help-dialog/index.mjs +1 -2
  137. package/esm2022/value-help-dialog/value-help-dialog/value-help-dialog.component.mjs +4 -43
  138. package/esm2022/value-help-dialog/value-help-dialog.module.mjs +4 -22
  139. package/esm2022/variant-management/components/manage-variant-item/manage-variant-item.component.mjs +3 -3
  140. package/esm2022/variant-management/components/manage-variants-dialog/manage-variants-dialog.component.mjs +1 -1
  141. package/esm2022/variant-management/variant-management.component.mjs +1 -1
  142. package/esm2022/wizard-generator/components/dialog-wizard-generator/dialog-wizard-generator.component.mjs +1 -1
  143. package/esm2022/wizard-generator/components/wizard-generator/wizard-generator.component.mjs +1 -1
  144. package/esm2022/wizard-generator/components/wizard-generator-step/wizard-generator-step.component.mjs +1 -1
  145. package/esm2022/wizard-generator/components/wizard-summary-step/wizard-summary-section/wizard-summary-section.component.mjs +1 -1
  146. package/feed-input/feed-input.component.d.ts +1 -9
  147. package/fesm2022/fundamental-ngx-platform-action-bar.mjs +7 -29
  148. package/fesm2022/fundamental-ngx-platform-action-bar.mjs.map +1 -1
  149. package/fesm2022/fundamental-ngx-platform-approval-flow.mjs +25 -25
  150. package/fesm2022/fundamental-ngx-platform-approval-flow.mjs.map +1 -1
  151. package/fesm2022/fundamental-ngx-platform-button.mjs +5 -5
  152. package/fesm2022/fundamental-ngx-platform-button.mjs.map +1 -1
  153. package/fesm2022/fundamental-ngx-platform-dynamic-page.mjs +3 -8
  154. package/fesm2022/fundamental-ngx-platform-dynamic-page.mjs.map +1 -1
  155. package/fesm2022/fundamental-ngx-platform-feed-input.mjs +2 -16
  156. package/fesm2022/fundamental-ngx-platform-feed-input.mjs.map +1 -1
  157. package/fesm2022/fundamental-ngx-platform-form.mjs +138 -716
  158. package/fesm2022/fundamental-ngx-platform-form.mjs.map +1 -1
  159. package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs +4 -4
  160. package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs.map +1 -1
  161. package/fesm2022/fundamental-ngx-platform-link.mjs +2 -2
  162. package/fesm2022/fundamental-ngx-platform-link.mjs.map +1 -1
  163. package/fesm2022/fundamental-ngx-platform-list.mjs +23 -93
  164. package/fesm2022/fundamental-ngx-platform-list.mjs.map +1 -1
  165. package/fesm2022/fundamental-ngx-platform-menu-button.mjs +5 -22
  166. package/fesm2022/fundamental-ngx-platform-menu-button.mjs.map +1 -1
  167. package/fesm2022/fundamental-ngx-platform-menu.mjs +4 -36
  168. package/fesm2022/fundamental-ngx-platform-menu.mjs.map +1 -1
  169. package/fesm2022/fundamental-ngx-platform-message-popover.mjs +2 -2
  170. package/fesm2022/fundamental-ngx-platform-message-popover.mjs.map +1 -1
  171. package/fesm2022/fundamental-ngx-platform-panel.mjs +5 -16
  172. package/fesm2022/fundamental-ngx-platform-panel.mjs.map +1 -1
  173. package/fesm2022/fundamental-ngx-platform-search-field.mjs +12 -63
  174. package/fesm2022/fundamental-ngx-platform-search-field.mjs.map +1 -1
  175. package/fesm2022/fundamental-ngx-platform-settings-generator.mjs +5 -5
  176. package/fesm2022/fundamental-ngx-platform-settings-generator.mjs.map +1 -1
  177. package/fesm2022/fundamental-ngx-platform-shared.mjs +2 -116
  178. package/fesm2022/fundamental-ngx-platform-shared.mjs.map +1 -1
  179. package/fesm2022/fundamental-ngx-platform-slider.mjs +6 -6
  180. package/fesm2022/fundamental-ngx-platform-slider.mjs.map +1 -1
  181. package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs +71 -146
  182. package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs.map +1 -1
  183. package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs +5 -22
  184. package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs.map +1 -1
  185. package/fesm2022/fundamental-ngx-platform-table.mjs +23 -26
  186. package/fesm2022/fundamental-ngx-platform-table.mjs.map +1 -1
  187. package/fesm2022/fundamental-ngx-platform-thumbnail.mjs +6 -6
  188. package/fesm2022/fundamental-ngx-platform-thumbnail.mjs.map +1 -1
  189. package/fesm2022/fundamental-ngx-platform-upload-collection.mjs +9 -37
  190. package/fesm2022/fundamental-ngx-platform-upload-collection.mjs.map +1 -1
  191. package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs +11 -147
  192. package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs.map +1 -1
  193. package/fesm2022/fundamental-ngx-platform-variant-management.mjs +4 -4
  194. package/fesm2022/fundamental-ngx-platform-variant-management.mjs.map +1 -1
  195. package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs +4 -4
  196. package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs.map +1 -1
  197. package/form/checkbox/checkbox.component.d.ts +3 -19
  198. package/form/checkbox/checkbox.module.d.ts +3 -4
  199. package/form/checkbox-group/checkbox-group.component.d.ts +5 -16
  200. package/form/checkbox-group/checkbox-group.module.d.ts +2 -3
  201. package/form/combobox/combobox.module.d.ts +2 -3
  202. package/form/date-picker/date-picker.component.d.ts +1 -35
  203. package/form/date-picker/date-picker.module.d.ts +2 -3
  204. package/form/datetime-picker/datetime-picker.component.d.ts +1 -33
  205. package/form/datetime-picker/datetime-picker.module.d.ts +2 -3
  206. package/form/form-generator/form-generator/form-generator.component.d.ts +8 -18
  207. package/form/form-generator/interfaces/dynamic-form-item.d.ts +1 -13
  208. package/form/form-group/fdp-form.module.d.ts +12 -13
  209. package/form/form-group/form-field/form-field.component.d.ts +2 -17
  210. package/form/form-group/form-group.component.d.ts +2 -14
  211. package/form/index.d.ts +0 -1
  212. package/form/input/fdp-input.module.d.ts +2 -3
  213. package/form/input-group/input-group.module.d.ts +2 -3
  214. package/form/multi-combobox/multi-combobox.module.d.ts +2 -3
  215. package/form/multi-input/multi-input.module.d.ts +2 -3
  216. package/form/platform-file-uploader/platform-file-uploader.component.d.ts +5 -11
  217. package/form/platform-file-uploader/platform-file-uploader.module.d.ts +2 -3
  218. package/form/radio-group/radio/radio.component.d.ts +1 -8
  219. package/form/radio-group/radio-group.module.d.ts +2 -3
  220. package/form/select/select/select.component.d.ts +1 -8
  221. package/form/select/select.module.d.ts +2 -3
  222. package/form/step-input/step-input.module.d.ts +2 -3
  223. package/form/switch/switch.module.d.ts +2 -3
  224. package/form/text-area/text-area.component.d.ts +1 -6
  225. package/form/text-area/text-area.module.d.ts +3 -4
  226. package/form/time-picker/time-picker.module.d.ts +2 -3
  227. package/fundamental-ngx-platform-v0.45.0.tgz +0 -0
  228. package/list/base-list-item.d.ts +2 -27
  229. package/list/list-group-header.component.d.ts +1 -3
  230. package/list/list.module.d.ts +7 -8
  231. package/list/object-list-item/object-list-item.module.d.ts +2 -3
  232. package/list/standard-list-item/standard-list-item.module.d.ts +2 -3
  233. package/menu/menu.module.d.ts +2 -3
  234. package/menu-button/menu-button.module.d.ts +2 -3
  235. package/package.json +4 -4
  236. package/panel/panel.module.d.ts +2 -3
  237. package/schematics/ng-add/index.js +1 -1
  238. package/search-field/search-field.component.d.ts +1 -18
  239. package/search-field/search-field.module.d.ts +4 -5
  240. package/shared/form/form-field.d.ts +1 -17
  241. package/shared/form/form-options.d.ts +0 -3
  242. package/shared/form/hint-options.d.ts +0 -7
  243. package/shared/index.d.ts +0 -1
  244. package/slider/slider.module.d.ts +2 -3
  245. package/smart-filter-bar/components/smart-filter-bar-condition-field/base-smart-filter-bar-condition-field.d.ts +1 -3
  246. package/smart-filter-bar/components/smart-filter-bar-condition-field/smart-filter-bar-condition-field.component.d.ts +1 -2
  247. package/smart-filter-bar/components/smart-filter-bar-settings-dialog/smart-filter-bar-settings-dialog.component.d.ts +8 -8
  248. package/smart-filter-bar/interfaces/smart-filter-bar-condition.d.ts +0 -6
  249. package/smart-filter-bar/interfaces/smart-filter-bar-settings-dialog-config.d.ts +0 -6
  250. package/smart-filter-bar/interfaces/strategy-labels.type.d.ts +1 -1
  251. package/smart-filter-bar/smart-filter-bar.class.d.ts +0 -3
  252. package/smart-filter-bar/smart-filter-bar.component.d.ts +1 -43
  253. package/split-menu-button/split-menu-button.module.d.ts +2 -3
  254. package/table/table.module.d.ts +5 -6
  255. package/upload-collection/models/upload-collection.models.d.ts +0 -2
  256. package/upload-collection/upload-collection/upload-collection.component.d.ts +1 -16
  257. package/upload-collection/upload-collection.module.d.ts +1 -1
  258. package/value-help-dialog/components/define-tab/define-tab.component.d.ts +1 -11
  259. package/value-help-dialog/components/select-tab/select-tab.component.d.ts +1 -7
  260. package/value-help-dialog/index.d.ts +0 -1
  261. package/value-help-dialog/value-help-dialog/value-help-dialog.component.d.ts +1 -21
  262. package/value-help-dialog/value-help-dialog.module.d.ts +32 -34
  263. package/esm2022/form/form-group/deprecated-form-group-compact.directive.mjs +0 -30
  264. package/esm2022/shared/platform-content-density-deprecations/directives/platform-compact-deprecation.directive.mjs +0 -24
  265. package/esm2022/shared/platform-content-density-deprecations/directives/platform-content-density-deprecation.directive.mjs +0 -68
  266. package/esm2022/shared/platform-content-density-deprecations/index.mjs +0 -5
  267. package/esm2022/shared/platform-content-density-deprecations/platform-content-density-deprecations.module.mjs +0 -19
  268. package/esm2022/shared/platform-content-density-deprecations/providers/module-deprecation.provider.mjs +0 -13
  269. package/esm2022/value-help-dialog/components/value-help-dialog-search/value-help-dialog-search.component.mjs +0 -46
  270. package/form/form-group/deprecated-form-group-compact.directive.d.ts +0 -8
  271. package/fundamental-ngx-platform-v0.44.1-rc.3.tgz +0 -0
  272. package/shared/platform-content-density-deprecations/directives/platform-compact-deprecation.directive.d.ts +0 -8
  273. package/shared/platform-content-density-deprecations/directives/platform-content-density-deprecation.directive.d.ts +0 -10
  274. package/shared/platform-content-density-deprecations/index.d.ts +0 -4
  275. package/shared/platform-content-density-deprecations/platform-content-density-deprecations.module.d.ts +0 -9
  276. package/shared/platform-content-density-deprecations/providers/module-deprecation.provider.d.ts +0 -3
  277. package/value-help-dialog/components/value-help-dialog-search/value-help-dialog-search.component.d.ts +0 -20
@@ -16,16 +16,16 @@
16
16
  *
17
17
  *
18
18
  */
19
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, ContentChildren, ElementRef, EventEmitter, forwardRef, Inject, Input, isDevMode, Optional, Output, QueryList, TemplateRef, ViewChild, ViewEncapsulation } from '@angular/core';
19
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, ContentChildren, ElementRef, EventEmitter, forwardRef, Inject, Input, Optional, Output, QueryList, TemplateRef, ViewChild, ViewEncapsulation } from '@angular/core';
20
20
  import { ControlContainer, FormGroup, NgForm } from '@angular/forms';
21
21
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
22
22
  import { debounceTime, takeUntil } from 'rxjs/operators';
23
23
  import { Subject, Subscription } from 'rxjs';
24
- import { resizeObservable, warnOnce } from '@fundamental-ngx/cdk/utils';
24
+ import { resizeObservable } from '@fundamental-ngx/cdk/utils';
25
25
  import { FormGroupContainer } from '@fundamental-ngx/platform/shared';
26
26
  import { FieldGroup, getField, getFormField, isFieldChild, isFieldGroupChild, isFieldGroupWrapperChild } from '../form-helpers';
27
27
  import { FormFieldErrorDirective } from './form-field-error/form-field-error.directive';
28
- import { DefaultGapLayout, DefaultHorizontalFieldLayout, DefaultHorizontalLabelLayout, DefaultVerticalFieldLayout, DefaultVerticalLabelLayout, FORM_GROUP_CHILD_FIELD_TOKEN } from './constants';
28
+ import { DefaultGapLayout, DefaultHorizontalFieldLayout, DefaultHorizontalLabelLayout, DefaultVerticalFieldLayout, FORM_GROUP_CHILD_FIELD_TOKEN } from './constants';
29
29
  import { generateColumnClass, normalizeColumnLayout } from './helpers';
30
30
  import { FormFieldLayoutService } from './services/form-field-layout.service';
31
31
  import { FDP_FORM_FIELD_HINT_OPTIONS_DEFAULT } from './fdp-form.tokens';
@@ -119,25 +119,6 @@ let formGroupUniqueId = 0;
119
119
  *
120
120
  */
121
121
  export class FormGroupComponent {
122
- /**
123
- * @deprecated
124
- * Use labelColumnLayout, fieldColumnLayout and gapColumnLayout properties.
125
- *
126
- * Defines form field label placement.
127
- */
128
- set labelLayout(value) {
129
- if (isDevMode()) {
130
- warnOnce('LabelLayout input property is deprecated. Please use labelColumnLayout, fieldColumnLayout and gapColumnLayout properties instead');
131
- }
132
- this._labelLayout = value;
133
- this.labelColumnLayout =
134
- this._labelLayout === 'horizontal' ? DefaultHorizontalLabelLayout : DefaultVerticalLabelLayout;
135
- this.fieldColumnLayout =
136
- this._labelLayout === 'horizontal' ? DefaultHorizontalFieldLayout : DefaultVerticalFieldLayout;
137
- }
138
- get labelLayout() {
139
- return this._labelLayout;
140
- }
141
122
  /**
142
123
  * Defines column layout for inline items.
143
124
  */
@@ -209,8 +190,6 @@ export class FormGroupComponent {
209
190
  /** @hidden */
210
191
  this._useForm = false;
211
192
  /** @hidden */
212
- this._hintPlacement = 'right';
213
- /** @hidden */
214
193
  this._destroyed = new Subject();
215
194
  /** @hidden */
216
195
  this._subscriptions = new Subscription();
@@ -405,7 +384,6 @@ export class FormGroupComponent {
405
384
  */
406
385
  _updateFormFieldProperties(formField) {
407
386
  if (this.unifiedLayout) {
408
- formField.hintPlacement = this._hintPlacement;
409
387
  formField.editable = this.editable;
410
388
  formField.noLabelLayout = this.noLabelLayout;
411
389
  }
@@ -488,7 +466,7 @@ export class FormGroupComponent {
488
466
  .subscribe(() => this._cd.markForCheck()));
489
467
  }
490
468
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: FormGroupComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1.ControlContainer, optional: true }, { token: i2.ContentDensityObserver }, { token: FDP_FORM_FIELD_HINT_OPTIONS_DEFAULT }], target: i0.ɵɵFactoryTarget.Component }); }
491
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: FormGroupComponent, selector: "fdp-form-group", inputs: { id: "id", name: "name", editable: "editable", noLabelLayout: "noLabelLayout", class: "class", hint: "hint", labelLayout: "labelLayout", inlineColumnLayout: "inlineColumnLayout", labelColumnLayout: "labelColumnLayout", fieldColumnLayout: "fieldColumnLayout", gapColumnLayout: "gapColumnLayout", formGroup: "formGroup", topTitle: "topTitle", mainTitle: "mainTitle", hideMainTItle: "hideMainTItle", object: "object", i18Strings: "i18Strings", useForm: "useForm", columnLayout: "columnLayout", unifiedLayout: "unifiedLayout" }, outputs: { onSubmit: "onSubmit" }, providers: [formGroupProvider, FormFieldLayoutService, contentDensityObserverProviders()], queries: [{ propertyName: "i18Template", first: true, predicate: ["i18n"], descendants: true, static: true }, { propertyName: "_errorDirectives", predicate: FormFieldErrorDirective }, { propertyName: "formGroupChildren", predicate: FORM_GROUP_CHILD_FIELD_TOKEN, descendants: true }], viewQueries: [{ propertyName: "nativeForm", first: true, predicate: ["nativeForm"], descendants: true, read: NgForm }], usesOnChanges: true, ngImport: i0, template: "<form #nativeForm (ngSubmit)=\"onSubmit.emit($event)\" *ngIf=\"useForm; else body\" [id]=\"id\" [name]=\"name\">\n <ng-container *ngTemplateOutlet=\"body\"></ng-container>\n</form>\n\n<ng-template #body>\n <!-- Render fields and field groups with assigned columns -->\n <ng-container *ngTemplateOutlet=\"fields\"></ng-container>\n</ng-template>\n\n<ng-template #fields>\n <div *ngIf=\"mainTitle && !hideMainTItle\" class=\"fd-form-header\">\n <ng-template [ngTemplateOutlet]=\"mainTitleTemplate\"></ng-template>\n </div>\n\n <div\n class=\"fd-container fd-form-layout-grid-container\"\n [class.is-compact]=\"contentDensityObserver.isCompact$ | async\"\n >\n <div *ngFor=\"let column of formRows | keyvalue; trackBy: trackByFn\" class=\"fd-row\">\n <div\n *ngFor=\"let fields of column | fieldGroupRowValue | keyvalue; trackBy: trackByFn; let index = index\"\n class=\"fd-col fd-form-group\"\n [class]=\"xlCol\"\n >\n <div class=\"fd-row\" *ngIf=\"$fieldGroup(column.value) as value\">\n <div class=\"fd-col\">\n <div *ngIf=\"value.label\" fdp-form-group-header [fieldGroup]=\"index === 0 ? value : null\"></div>\n </div>\n </div>\n\n <div *ngFor=\"let field of fields.value; trackBy: trackByFieldName\" class=\"fd-row fd-form-item\">\n <div class=\"fd-col\" [class]=\"_inlineColumnLayoutClass\" [style.order]=\"field.rank\">\n <ng-container *ngTemplateOutlet=\"field?.renderer || null\"></ng-container>\n </div>\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n\n<!-- For nested form-group -->\n<ng-content select=\"fdp-form-group\"></ng-content>\n\n<ng-template #mainTitleTemplate>\n <ng-container *ngIf=\"_hintOptions?.content && _hintOptions.position === 'before'\">\n <ng-template [ngTemplateOutlet]=\"hintTemplate\"></ng-template>\n </ng-container>\n\n <h5 class=\"fd-form-header__text\">\n {{ mainTitle }}\n </h5>\n\n <ng-container *ngIf=\"_hintOptions?.content && _hintOptions.position === 'after'\">\n <ng-template [ngTemplateOutlet]=\"hintTemplate\"></ng-template>\n </ng-container>\n\n <ng-template #hintTemplate>\n <span fd-link [undecorated]=\"true\">\n <fd-icon\n [fd-inline-help]=\"_hintOptions.content\"\n [glyph]=\"_hintOptions.glyph\"\n [placement]=\"_hintOptions.placement || null\"\n [triggers]=\"_hintOptions.trigger || []\"\n tabindex=\"0\"\n ></fd-icon>\n </span>\n </ng-template>\n</ng-template>\n", styles: [".fd-col,.fd-container,.fd-row{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-col:after,.fd-col:before,.fd-container:after,.fd-container:before,.fd-row:after,.fd-row:before{box-sizing:inherit;font-size:inherit}.fd-container{-ms-flex-wrap:wrap;-webkit-box-flex:0;-ms-flex:0 0 100%;display:flex;flex:0 0 100%;flex-wrap:wrap;padding:0 .25rem;position:relative}.fd-container .fd-row{margin-left:-.25rem;margin-right:-.25rem;min-width:calc(100% + .5rem)}.fd-container>.fd-row>.fd-col{padding-bottom:.25rem;padding-top:.25rem}.fd-container.fd-container--no-gap .fd-row,.fd-container.fd-container--no-horizontal-gap .fd-row{margin-left:0;margin-right:0}.fd-container.fd-container--no-gap .fd-row .fd-col,.fd-container.fd-container--no-horizontal-gap .fd-row .fd-col{padding-left:0;padding-right:0}.fd-container.fd-container--no-gap>.fd-row>.fd-col,.fd-container.fd-container--no-vertical-gap>.fd-row>.fd-col{padding-bottom:0;padding-top:0}.fd-container[dir=rtl],[dir=rtl] .fd-container{direction:rtl}.fd-row{-ms-flex-wrap:wrap;-webkit-box-flex:0;-ms-flex:0 0 100%;display:flex;flex:0 0 100%;flex-wrap:wrap;min-width:100%;position:relative}.fd-col{max-width:100%;min-width:100%;padding-left:.25rem;padding-right:.25rem}.fd-col--0{max-width:0;min-width:0%}.fd-col--offset-0{margin-left:0}.fd-col--offset-0[dir=rtl],[dir=rtl] .fd-col--offset-0{margin-left:0;margin-right:0}.fd-col--offset-after-0{margin-right:0}.fd-col--offset-after-0[dir=rtl],[dir=rtl] .fd-col--offset-after-0{margin-left:0;margin-right:0}.fd-col--1{max-width:8.3333333333%;min-width:8.3333333333%}.fd-col--offset-1{margin-left:8.3333333333%}.fd-col--offset-1[dir=rtl],[dir=rtl] .fd-col--offset-1{margin-left:0;margin-right:8.3333333333%}.fd-col--offset-after-1{margin-right:8.3333333333%}.fd-col--offset-after-1[dir=rtl],[dir=rtl] .fd-col--offset-after-1{margin-left:8.3333333333%;margin-right:0}.fd-col--2{max-width:16.6666666667%;min-width:16.6666666667%}.fd-col--offset-2{margin-left:16.6666666667%}.fd-col--offset-2[dir=rtl],[dir=rtl] .fd-col--offset-2{margin-left:0;margin-right:16.6666666667%}.fd-col--offset-after-2{margin-right:16.6666666667%}.fd-col--offset-after-2[dir=rtl],[dir=rtl] .fd-col--offset-after-2{margin-left:16.6666666667%;margin-right:0}.fd-col--3{max-width:25%;min-width:25%}.fd-col--offset-3{margin-left:25%}.fd-col--offset-3[dir=rtl],[dir=rtl] .fd-col--offset-3{margin-left:0;margin-right:25%}.fd-col--offset-after-3{margin-right:25%}.fd-col--offset-after-3[dir=rtl],[dir=rtl] .fd-col--offset-after-3{margin-left:25%;margin-right:0}.fd-col--4{max-width:33.3333333333%;min-width:33.3333333333%}.fd-col--offset-4{margin-left:33.3333333333%}.fd-col--offset-4[dir=rtl],[dir=rtl] .fd-col--offset-4{margin-left:0;margin-right:33.3333333333%}.fd-col--offset-after-4{margin-right:33.3333333333%}.fd-col--offset-after-4[dir=rtl],[dir=rtl] .fd-col--offset-after-4{margin-left:33.3333333333%;margin-right:0}.fd-col--5{max-width:41.6666666667%;min-width:41.6666666667%}.fd-col--offset-5{margin-left:41.6666666667%}.fd-col--offset-5[dir=rtl],[dir=rtl] .fd-col--offset-5{margin-left:0;margin-right:41.6666666667%}.fd-col--offset-after-5{margin-right:41.6666666667%}.fd-col--offset-after-5[dir=rtl],[dir=rtl] .fd-col--offset-after-5{margin-left:41.6666666667%;margin-right:0}.fd-col--6{max-width:50%;min-width:50%}.fd-col--offset-6{margin-left:50%}.fd-col--offset-6[dir=rtl],[dir=rtl] .fd-col--offset-6{margin-left:0;margin-right:50%}.fd-col--offset-after-6{margin-right:50%}.fd-col--offset-after-6[dir=rtl],[dir=rtl] .fd-col--offset-after-6{margin-left:50%;margin-right:0}.fd-col--7{max-width:58.3333333333%;min-width:58.3333333333%}.fd-col--offset-7{margin-left:58.3333333333%}.fd-col--offset-7[dir=rtl],[dir=rtl] .fd-col--offset-7{margin-left:0;margin-right:58.3333333333%}.fd-col--offset-after-7{margin-right:58.3333333333%}.fd-col--offset-after-7[dir=rtl],[dir=rtl] .fd-col--offset-after-7{margin-left:58.3333333333%;margin-right:0}.fd-col--8{max-width:66.6666666667%;min-width:66.6666666667%}.fd-col--offset-8{margin-left:66.6666666667%}.fd-col--offset-8[dir=rtl],[dir=rtl] .fd-col--offset-8{margin-left:0;margin-right:66.6666666667%}.fd-col--offset-after-8{margin-right:66.6666666667%}.fd-col--offset-after-8[dir=rtl],[dir=rtl] .fd-col--offset-after-8{margin-left:66.6666666667%;margin-right:0}.fd-col--9{max-width:75%;min-width:75%}.fd-col--offset-9{margin-left:75%}.fd-col--offset-9[dir=rtl],[dir=rtl] .fd-col--offset-9{margin-left:0;margin-right:75%}.fd-col--offset-after-9{margin-right:75%}.fd-col--offset-after-9[dir=rtl],[dir=rtl] .fd-col--offset-after-9{margin-left:75%;margin-right:0}.fd-col--10{max-width:83.3333333333%;min-width:83.3333333333%}.fd-col--offset-10{margin-left:83.3333333333%}.fd-col--offset-10[dir=rtl],[dir=rtl] .fd-col--offset-10{margin-left:0;margin-right:83.3333333333%}.fd-col--offset-after-10{margin-right:83.3333333333%}.fd-col--offset-after-10[dir=rtl],[dir=rtl] .fd-col--offset-after-10{margin-left:83.3333333333%;margin-right:0}.fd-col--11{max-width:91.6666666667%;min-width:91.6666666667%}.fd-col--offset-11{margin-left:91.6666666667%}.fd-col--offset-11[dir=rtl],[dir=rtl] .fd-col--offset-11{margin-left:0;margin-right:91.6666666667%}.fd-col--offset-after-11{margin-right:91.6666666667%}.fd-col--offset-after-11[dir=rtl],[dir=rtl] .fd-col--offset-after-11{margin-left:91.6666666667%;margin-right:0}.fd-col--12{max-width:100%;min-width:100%}.fd-col--offset-12{margin-left:100%}.fd-col--offset-12[dir=rtl],[dir=rtl] .fd-col--offset-12{margin-left:0;margin-right:100%}.fd-col--offset-after-12{margin-right:100%}.fd-col--offset-after-12[dir=rtl],[dir=rtl] .fd-col--offset-after-12{margin-left:100%;margin-right:0}.fd-col--full{flex:1;max-width:none;min-width:8.3333333333%}.fd-col--wrap{flex-wrap:wrap}@media (min-width: 600px){.fd-container{padding:0 .5rem}.fd-container .fd-row{margin-left:-.5rem;margin-right:-.5rem;min-width:calc(100% + 1rem)}.fd-container>.fd-row>.fd-col{padding-bottom:.5rem;padding-top:.5rem}.fd-col{padding-left:.5rem;padding-right:.5rem}.fd-col-md--0{max-width:0;min-width:0%}.fd-col-md--offset-0{margin-left:0}.fd-col-md--offset-0[dir=rtl],[dir=rtl] .fd-col-md--offset-0{margin-left:0;margin-right:0}.fd-col-md--offset-after-0{margin-right:0}.fd-col-md--offset-after-0[dir=rtl],[dir=rtl] .fd-col-md--offset-after-0{margin-left:0;margin-right:0}.fd-col-md--1{max-width:8.3333333333%;min-width:8.3333333333%}.fd-col-md--offset-1{margin-left:8.3333333333%}.fd-col-md--offset-1[dir=rtl],[dir=rtl] .fd-col-md--offset-1{margin-left:0;margin-right:8.3333333333%}.fd-col-md--offset-after-1{margin-right:8.3333333333%}.fd-col-md--offset-after-1[dir=rtl],[dir=rtl] .fd-col-md--offset-after-1{margin-left:8.3333333333%;margin-right:0}.fd-col-md--2{max-width:16.6666666667%;min-width:16.6666666667%}.fd-col-md--offset-2{margin-left:16.6666666667%}.fd-col-md--offset-2[dir=rtl],[dir=rtl] .fd-col-md--offset-2{margin-left:0;margin-right:16.6666666667%}.fd-col-md--offset-after-2{margin-right:16.6666666667%}.fd-col-md--offset-after-2[dir=rtl],[dir=rtl] .fd-col-md--offset-after-2{margin-left:16.6666666667%;margin-right:0}.fd-col-md--3{max-width:25%;min-width:25%}.fd-col-md--offset-3{margin-left:25%}.fd-col-md--offset-3[dir=rtl],[dir=rtl] .fd-col-md--offset-3{margin-left:0;margin-right:25%}.fd-col-md--offset-after-3{margin-right:25%}.fd-col-md--offset-after-3[dir=rtl],[dir=rtl] .fd-col-md--offset-after-3{margin-left:25%;margin-right:0}.fd-col-md--4{max-width:33.3333333333%;min-width:33.3333333333%}.fd-col-md--offset-4{margin-left:33.3333333333%}.fd-col-md--offset-4[dir=rtl],[dir=rtl] .fd-col-md--offset-4{margin-left:0;margin-right:33.3333333333%}.fd-col-md--offset-after-4{margin-right:33.3333333333%}.fd-col-md--offset-after-4[dir=rtl],[dir=rtl] .fd-col-md--offset-after-4{margin-left:33.3333333333%;margin-right:0}.fd-col-md--5{max-width:41.6666666667%;min-width:41.6666666667%}.fd-col-md--offset-5{margin-left:41.6666666667%}.fd-col-md--offset-5[dir=rtl],[dir=rtl] .fd-col-md--offset-5{margin-left:0;margin-right:41.6666666667%}.fd-col-md--offset-after-5{margin-right:41.6666666667%}.fd-col-md--offset-after-5[dir=rtl],[dir=rtl] .fd-col-md--offset-after-5{margin-left:41.6666666667%;margin-right:0}.fd-col-md--6{max-width:50%;min-width:50%}.fd-col-md--offset-6{margin-left:50%}.fd-col-md--offset-6[dir=rtl],[dir=rtl] .fd-col-md--offset-6{margin-left:0;margin-right:50%}.fd-col-md--offset-after-6{margin-right:50%}.fd-col-md--offset-after-6[dir=rtl],[dir=rtl] .fd-col-md--offset-after-6{margin-left:50%;margin-right:0}.fd-col-md--7{max-width:58.3333333333%;min-width:58.3333333333%}.fd-col-md--offset-7{margin-left:58.3333333333%}.fd-col-md--offset-7[dir=rtl],[dir=rtl] .fd-col-md--offset-7{margin-left:0;margin-right:58.3333333333%}.fd-col-md--offset-after-7{margin-right:58.3333333333%}.fd-col-md--offset-after-7[dir=rtl],[dir=rtl] .fd-col-md--offset-after-7{margin-left:58.3333333333%;margin-right:0}.fd-col-md--8{max-width:66.6666666667%;min-width:66.6666666667%}.fd-col-md--offset-8{margin-left:66.6666666667%}.fd-col-md--offset-8[dir=rtl],[dir=rtl] .fd-col-md--offset-8{margin-left:0;margin-right:66.6666666667%}.fd-col-md--offset-after-8{margin-right:66.6666666667%}.fd-col-md--offset-after-8[dir=rtl],[dir=rtl] .fd-col-md--offset-after-8{margin-left:66.6666666667%;margin-right:0}.fd-col-md--9{max-width:75%;min-width:75%}.fd-col-md--offset-9{margin-left:75%}.fd-col-md--offset-9[dir=rtl],[dir=rtl] .fd-col-md--offset-9{margin-left:0;margin-right:75%}.fd-col-md--offset-after-9{margin-right:75%}.fd-col-md--offset-after-9[dir=rtl],[dir=rtl] .fd-col-md--offset-after-9{margin-left:75%;margin-right:0}.fd-col-md--10{max-width:83.3333333333%;min-width:83.3333333333%}.fd-col-md--offset-10{margin-left:83.3333333333%}.fd-col-md--offset-10[dir=rtl],[dir=rtl] .fd-col-md--offset-10{margin-left:0;margin-right:83.3333333333%}.fd-col-md--offset-after-10{margin-right:83.3333333333%}.fd-col-md--offset-after-10[dir=rtl],[dir=rtl] .fd-col-md--offset-after-10{margin-left:83.3333333333%;margin-right:0}.fd-col-md--11{max-width:91.6666666667%;min-width:91.6666666667%}.fd-col-md--offset-11{margin-left:91.6666666667%}.fd-col-md--offset-11[dir=rtl],[dir=rtl] .fd-col-md--offset-11{margin-left:0;margin-right:91.6666666667%}.fd-col-md--offset-after-11{margin-right:91.6666666667%}.fd-col-md--offset-after-11[dir=rtl],[dir=rtl] .fd-col-md--offset-after-11{margin-left:91.6666666667%;margin-right:0}.fd-col-md--12{max-width:100%;min-width:100%}.fd-col-md--offset-12{margin-left:100%}.fd-col-md--offset-12[dir=rtl],[dir=rtl] .fd-col-md--offset-12{margin-left:0;margin-right:100%}.fd-col-md--offset-after-12{margin-right:100%}.fd-col-md--offset-after-12[dir=rtl],[dir=rtl] .fd-col-md--offset-after-12{margin-left:100%;margin-right:0}}@media (min-width: 1024px){.fd-col-lg--0{max-width:0;min-width:0%}.fd-col-lg--offset-0{margin-left:0}.fd-col-lg--offset-0[dir=rtl],[dir=rtl] .fd-col-lg--offset-0{margin-left:0;margin-right:0}.fd-col-lg--offset-after-0{margin-right:0}.fd-col-lg--offset-after-0[dir=rtl],[dir=rtl] .fd-col-lg--offset-after-0{margin-left:0;margin-right:0}.fd-col-lg--1{max-width:8.3333333333%;min-width:8.3333333333%}.fd-col-lg--offset-1{margin-left:8.3333333333%}.fd-col-lg--offset-1[dir=rtl],[dir=rtl] .fd-col-lg--offset-1{margin-left:0;margin-right:8.3333333333%}.fd-col-lg--offset-after-1{margin-right:8.3333333333%}.fd-col-lg--offset-after-1[dir=rtl],[dir=rtl] .fd-col-lg--offset-after-1{margin-left:8.3333333333%;margin-right:0}.fd-col-lg--2{max-width:16.6666666667%;min-width:16.6666666667%}.fd-col-lg--offset-2{margin-left:16.6666666667%}.fd-col-lg--offset-2[dir=rtl],[dir=rtl] .fd-col-lg--offset-2{margin-left:0;margin-right:16.6666666667%}.fd-col-lg--offset-after-2{margin-right:16.6666666667%}.fd-col-lg--offset-after-2[dir=rtl],[dir=rtl] .fd-col-lg--offset-after-2{margin-left:16.6666666667%;margin-right:0}.fd-col-lg--3{max-width:25%;min-width:25%}.fd-col-lg--offset-3{margin-left:25%}.fd-col-lg--offset-3[dir=rtl],[dir=rtl] .fd-col-lg--offset-3{margin-left:0;margin-right:25%}.fd-col-lg--offset-after-3{margin-right:25%}.fd-col-lg--offset-after-3[dir=rtl],[dir=rtl] .fd-col-lg--offset-after-3{margin-left:25%;margin-right:0}.fd-col-lg--4{max-width:33.3333333333%;min-width:33.3333333333%}.fd-col-lg--offset-4{margin-left:33.3333333333%}.fd-col-lg--offset-4[dir=rtl],[dir=rtl] .fd-col-lg--offset-4{margin-left:0;margin-right:33.3333333333%}.fd-col-lg--offset-after-4{margin-right:33.3333333333%}.fd-col-lg--offset-after-4[dir=rtl],[dir=rtl] .fd-col-lg--offset-after-4{margin-left:33.3333333333%;margin-right:0}.fd-col-lg--5{max-width:41.6666666667%;min-width:41.6666666667%}.fd-col-lg--offset-5{margin-left:41.6666666667%}.fd-col-lg--offset-5[dir=rtl],[dir=rtl] .fd-col-lg--offset-5{margin-left:0;margin-right:41.6666666667%}.fd-col-lg--offset-after-5{margin-right:41.6666666667%}.fd-col-lg--offset-after-5[dir=rtl],[dir=rtl] .fd-col-lg--offset-after-5{margin-left:41.6666666667%;margin-right:0}.fd-col-lg--6{max-width:50%;min-width:50%}.fd-col-lg--offset-6{margin-left:50%}.fd-col-lg--offset-6[dir=rtl],[dir=rtl] .fd-col-lg--offset-6{margin-left:0;margin-right:50%}.fd-col-lg--offset-after-6{margin-right:50%}.fd-col-lg--offset-after-6[dir=rtl],[dir=rtl] .fd-col-lg--offset-after-6{margin-left:50%;margin-right:0}.fd-col-lg--7{max-width:58.3333333333%;min-width:58.3333333333%}.fd-col-lg--offset-7{margin-left:58.3333333333%}.fd-col-lg--offset-7[dir=rtl],[dir=rtl] .fd-col-lg--offset-7{margin-left:0;margin-right:58.3333333333%}.fd-col-lg--offset-after-7{margin-right:58.3333333333%}.fd-col-lg--offset-after-7[dir=rtl],[dir=rtl] .fd-col-lg--offset-after-7{margin-left:58.3333333333%;margin-right:0}.fd-col-lg--8{max-width:66.6666666667%;min-width:66.6666666667%}.fd-col-lg--offset-8{margin-left:66.6666666667%}.fd-col-lg--offset-8[dir=rtl],[dir=rtl] .fd-col-lg--offset-8{margin-left:0;margin-right:66.6666666667%}.fd-col-lg--offset-after-8{margin-right:66.6666666667%}.fd-col-lg--offset-after-8[dir=rtl],[dir=rtl] .fd-col-lg--offset-after-8{margin-left:66.6666666667%;margin-right:0}.fd-col-lg--9{max-width:75%;min-width:75%}.fd-col-lg--offset-9{margin-left:75%}.fd-col-lg--offset-9[dir=rtl],[dir=rtl] .fd-col-lg--offset-9{margin-left:0;margin-right:75%}.fd-col-lg--offset-after-9{margin-right:75%}.fd-col-lg--offset-after-9[dir=rtl],[dir=rtl] .fd-col-lg--offset-after-9{margin-left:75%;margin-right:0}.fd-col-lg--10{max-width:83.3333333333%;min-width:83.3333333333%}.fd-col-lg--offset-10{margin-left:83.3333333333%}.fd-col-lg--offset-10[dir=rtl],[dir=rtl] .fd-col-lg--offset-10{margin-left:0;margin-right:83.3333333333%}.fd-col-lg--offset-after-10{margin-right:83.3333333333%}.fd-col-lg--offset-after-10[dir=rtl],[dir=rtl] .fd-col-lg--offset-after-10{margin-left:83.3333333333%;margin-right:0}.fd-col-lg--11{max-width:91.6666666667%;min-width:91.6666666667%}.fd-col-lg--offset-11{margin-left:91.6666666667%}.fd-col-lg--offset-11[dir=rtl],[dir=rtl] .fd-col-lg--offset-11{margin-left:0;margin-right:91.6666666667%}.fd-col-lg--offset-after-11{margin-right:91.6666666667%}.fd-col-lg--offset-after-11[dir=rtl],[dir=rtl] .fd-col-lg--offset-after-11{margin-left:91.6666666667%;margin-right:0}.fd-col-lg--12{max-width:100%;min-width:100%}.fd-col-lg--offset-12{margin-left:100%}.fd-col-lg--offset-12[dir=rtl],[dir=rtl] .fd-col-lg--offset-12{margin-left:0;margin-right:100%}.fd-col-lg--offset-after-12{margin-right:100%}.fd-col-lg--offset-after-12[dir=rtl],[dir=rtl] .fd-col-lg--offset-after-12{margin-left:100%;margin-right:0}}@media (min-width: 1440px){.fd-col-xl--0{max-width:0;min-width:0%}.fd-col-xl--offset-0{margin-left:0}.fd-col-xl--offset-0[dir=rtl],[dir=rtl] .fd-col-xl--offset-0{margin-left:0;margin-right:0}.fd-col-xl--offset-after-0{margin-right:0}.fd-col-xl--offset-after-0[dir=rtl],[dir=rtl] .fd-col-xl--offset-after-0{margin-left:0;margin-right:0}.fd-col-xl--1{max-width:8.3333333333%;min-width:8.3333333333%}.fd-col-xl--offset-1{margin-left:8.3333333333%}.fd-col-xl--offset-1[dir=rtl],[dir=rtl] .fd-col-xl--offset-1{margin-left:0;margin-right:8.3333333333%}.fd-col-xl--offset-after-1{margin-right:8.3333333333%}.fd-col-xl--offset-after-1[dir=rtl],[dir=rtl] .fd-col-xl--offset-after-1{margin-left:8.3333333333%;margin-right:0}.fd-col-xl--2{max-width:16.6666666667%;min-width:16.6666666667%}.fd-col-xl--offset-2{margin-left:16.6666666667%}.fd-col-xl--offset-2[dir=rtl],[dir=rtl] .fd-col-xl--offset-2{margin-left:0;margin-right:16.6666666667%}.fd-col-xl--offset-after-2{margin-right:16.6666666667%}.fd-col-xl--offset-after-2[dir=rtl],[dir=rtl] .fd-col-xl--offset-after-2{margin-left:16.6666666667%;margin-right:0}.fd-col-xl--3{max-width:25%;min-width:25%}.fd-col-xl--offset-3{margin-left:25%}.fd-col-xl--offset-3[dir=rtl],[dir=rtl] .fd-col-xl--offset-3{margin-left:0;margin-right:25%}.fd-col-xl--offset-after-3{margin-right:25%}.fd-col-xl--offset-after-3[dir=rtl],[dir=rtl] .fd-col-xl--offset-after-3{margin-left:25%;margin-right:0}.fd-col-xl--4{max-width:33.3333333333%;min-width:33.3333333333%}.fd-col-xl--offset-4{margin-left:33.3333333333%}.fd-col-xl--offset-4[dir=rtl],[dir=rtl] .fd-col-xl--offset-4{margin-left:0;margin-right:33.3333333333%}.fd-col-xl--offset-after-4{margin-right:33.3333333333%}.fd-col-xl--offset-after-4[dir=rtl],[dir=rtl] .fd-col-xl--offset-after-4{margin-left:33.3333333333%;margin-right:0}.fd-col-xl--5{max-width:41.6666666667%;min-width:41.6666666667%}.fd-col-xl--offset-5{margin-left:41.6666666667%}.fd-col-xl--offset-5[dir=rtl],[dir=rtl] .fd-col-xl--offset-5{margin-left:0;margin-right:41.6666666667%}.fd-col-xl--offset-after-5{margin-right:41.6666666667%}.fd-col-xl--offset-after-5[dir=rtl],[dir=rtl] .fd-col-xl--offset-after-5{margin-left:41.6666666667%;margin-right:0}.fd-col-xl--6{max-width:50%;min-width:50%}.fd-col-xl--offset-6{margin-left:50%}.fd-col-xl--offset-6[dir=rtl],[dir=rtl] .fd-col-xl--offset-6{margin-left:0;margin-right:50%}.fd-col-xl--offset-after-6{margin-right:50%}.fd-col-xl--offset-after-6[dir=rtl],[dir=rtl] .fd-col-xl--offset-after-6{margin-left:50%;margin-right:0}.fd-col-xl--7{max-width:58.3333333333%;min-width:58.3333333333%}.fd-col-xl--offset-7{margin-left:58.3333333333%}.fd-col-xl--offset-7[dir=rtl],[dir=rtl] .fd-col-xl--offset-7{margin-left:0;margin-right:58.3333333333%}.fd-col-xl--offset-after-7{margin-right:58.3333333333%}.fd-col-xl--offset-after-7[dir=rtl],[dir=rtl] .fd-col-xl--offset-after-7{margin-left:58.3333333333%;margin-right:0}.fd-col-xl--8{max-width:66.6666666667%;min-width:66.6666666667%}.fd-col-xl--offset-8{margin-left:66.6666666667%}.fd-col-xl--offset-8[dir=rtl],[dir=rtl] .fd-col-xl--offset-8{margin-left:0;margin-right:66.6666666667%}.fd-col-xl--offset-after-8{margin-right:66.6666666667%}.fd-col-xl--offset-after-8[dir=rtl],[dir=rtl] .fd-col-xl--offset-after-8{margin-left:66.6666666667%;margin-right:0}.fd-col-xl--9{max-width:75%;min-width:75%}.fd-col-xl--offset-9{margin-left:75%}.fd-col-xl--offset-9[dir=rtl],[dir=rtl] .fd-col-xl--offset-9{margin-left:0;margin-right:75%}.fd-col-xl--offset-after-9{margin-right:75%}.fd-col-xl--offset-after-9[dir=rtl],[dir=rtl] .fd-col-xl--offset-after-9{margin-left:75%;margin-right:0}.fd-col-xl--10{max-width:83.3333333333%;min-width:83.3333333333%}.fd-col-xl--offset-10{margin-left:83.3333333333%}.fd-col-xl--offset-10[dir=rtl],[dir=rtl] .fd-col-xl--offset-10{margin-left:0;margin-right:83.3333333333%}.fd-col-xl--offset-after-10{margin-right:83.3333333333%}.fd-col-xl--offset-after-10[dir=rtl],[dir=rtl] .fd-col-xl--offset-after-10{margin-left:83.3333333333%;margin-right:0}.fd-col-xl--11{max-width:91.6666666667%;min-width:91.6666666667%}.fd-col-xl--offset-11{margin-left:91.6666666667%}.fd-col-xl--offset-11[dir=rtl],[dir=rtl] .fd-col-xl--offset-11{margin-left:0;margin-right:91.6666666667%}.fd-col-xl--offset-after-11{margin-right:91.6666666667%}.fd-col-xl--offset-after-11[dir=rtl],[dir=rtl] .fd-col-xl--offset-after-11{margin-left:91.6666666667%;margin-right:0}.fd-col-xl--12{max-width:100%;min-width:100%}.fd-col-xl--offset-12{margin-left:100%}.fd-col-xl--offset-12[dir=rtl],[dir=rtl] .fd-col-xl--offset-12{margin-left:0;margin-right:100%}.fd-col-xl--offset-after-12{margin-right:100%}.fd-col-xl--offset-after-12[dir=rtl],[dir=rtl] .fd-col-xl--offset-after-12{margin-left:100%;margin-right:0}}.fd-container.fd-form-layout-grid-container .fd-form-group,.fd-container.fd-form-layout-grid-container.fd-form-group{padding:1rem!important}.fd-container.fd-form-layout-grid-container .fd-form-group .fd-form-group,.fd-container.fd-form-layout-grid-container.fd-form-group .fd-form-group{padding:0!important}.fd-container.fd-form-layout-grid-container .fd-form-group .fd-form-item .fd-form-label,.fd-container.fd-form-layout-grid-container.fd-form-group .fd-form-item .fd-form-label{margin-right:0;white-space:normal}.fd-container.fd-form-layout-grid-container .fd-form-group .fd-form-item .fd-form-label[dir=rtl],.fd-container.fd-form-layout-grid-container.fd-form-group .fd-form-item .fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-form-group .fd-form-item .fd-form-label,[dir=rtl] .fd-container.fd-form-layout-grid-container.fd-form-group .fd-form-item .fd-form-label{margin-left:0;margin-right:0}.fd-container.fd-form-layout-grid-container .fd-form-group .fd-form-item .fd-form-label--required,.fd-container.fd-form-layout-grid-container.fd-form-group .fd-form-item .fd-form-label--required{padding-right:.5rem}.fd-container.fd-form-layout-grid-container .fd-form-group .fd-form-item .fd-form-label--required[dir=rtl],.fd-container.fd-form-layout-grid-container.fd-form-group .fd-form-item .fd-form-label--required[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-form-group .fd-form-item .fd-form-label--required,[dir=rtl] .fd-container.fd-form-layout-grid-container.fd-form-group .fd-form-item .fd-form-label--required{padding-left:.5rem;padding-right:0}.fd-container.fd-form-layout-grid-container .fd-row{flex-direction:row}.fd-container.fd-form-layout-grid-container .fd-row .fd-col{overflow:hidden;padding-bottom:0;padding-top:0;text-overflow:ellipsis;white-space:nowrap}.fd-container.fd-form-layout-grid-container .fd-row .fd-col:not(.fd-form-group){align-self:center}@media (min-width: 0){.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--vertical .fd-form-group .fd-form-item,.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--vertical.fd-form-group .fd-form-item{margin-top:.625rem}.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--vertical .fd-form-group .fd-form-item:first-of-type,.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--vertical.fd-form-group .fd-form-item:first-of-type{margin-top:0}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--1>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--1>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col--1>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--2>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--2>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col--2>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--3>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--3>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col--3>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--4>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--4>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col--4>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--5>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--5>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col--5>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--6>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--6>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col--6>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--7>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--7>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col--7>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--8>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--8>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col--8>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--9>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--9>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col--9>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--10>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--10>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col--10>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--11>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--11>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col--11>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--12>.fd-form-label,.fd-container.fd-form-layout-grid-container .fd-row .fd-col>.fd-form-label{float:left;padding-bottom:.125rem;text-align:left;width:auto}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--12>.fd-form-label[dir=rtl],.fd-container.fd-form-layout-grid-container .fd-row .fd-col>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col--12>.fd-form-label,[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col>.fd-form-label{float:right;text-align:right}}@media (min-width: 0) and (max-width: 599px){.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container .fd-form-group .fd-form-item,.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container.fd-form-group .fd-form-item{margin-top:.625rem}.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container .fd-form-group .fd-form-item:first-of-type,.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container.fd-form-group .fd-form-item:first-of-type{margin-top:0}}@media (min-width: 600px){.fd-container.fd-form-layout-grid-container{padding:0 .25rem}.fd-container.fd-form-layout-grid-container .fd-row{margin:0 -.25rem;min-width:calc(100% + .5rem)}.fd-container.fd-form-layout-grid-container .fd-row .fd-col{padding:0 .25rem}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--1>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--1>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--1>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--2>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--2>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--2>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--3>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--3>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--3>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--4>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--4>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--4>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--5>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--5>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--5>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--6>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--6>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--6>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--7>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--7>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--7>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--8>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--8>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--8>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--9>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--9>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--9>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--10>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--10>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--10>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--11>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--11>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--11>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--12>.fd-form-label,.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md>.fd-form-label{float:left;padding-bottom:.125rem;text-align:left;width:auto}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--12>.fd-form-label[dir=rtl],.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--12>.fd-form-label,[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-md>.fd-form-label{float:right;text-align:right}}@media (min-width: 600px) and (max-width: 1023px){.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--md-vertical .fd-form-group .fd-form-item,.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--md-vertical.fd-form-group .fd-form-item{margin-top:.625rem}.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--md-vertical .fd-form-group .fd-form-item:first-of-type,.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--md-vertical.fd-form-group .fd-form-item:first-of-type{margin-top:0}}@media (min-width: 1024px){.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--1>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--1>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--1>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--2>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--2>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--2>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--3>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--3>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--3>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--4>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--4>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--4>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--5>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--5>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--5>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--6>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--6>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--6>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--7>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--7>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--7>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--8>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--8>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--8>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--9>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--9>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--9>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--10>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--10>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--10>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--11>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--11>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--11>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--12>.fd-form-label,.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg>.fd-form-label{float:left;padding-bottom:.125rem;text-align:left;width:auto}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--12>.fd-form-label[dir=rtl],.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--12>.fd-form-label,[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg>.fd-form-label{float:right;text-align:right}}@media (min-width: 1024px) and (max-width: 1443px){.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--lg-vertical .fd-form-group .fd-form-item,.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--lg-vertical.fd-form-group .fd-form-item{margin-top:.625rem}.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--lg-vertical .fd-form-group .fd-form-item:first-of-type,.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--lg-vertical.fd-form-group .fd-form-item:first-of-type{margin-top:0}}@media (min-width: 1440px){.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--xl-vertical .fd-form-group .fd-form-item,.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--xl-vertical.fd-form-group .fd-form-item{margin-top:.625rem}.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--xl-vertical .fd-form-group .fd-form-item:first-of-type,.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--xl-vertical.fd-form-group .fd-form-item:first-of-type{margin-top:0}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--1>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--1>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--1>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--2>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--2>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--2>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--3>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--3>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--3>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--4>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--4>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--4>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--5>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--5>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--5>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--6>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--6>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--6>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--7>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--7>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--7>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--8>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--8>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--8>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--9>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--9>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--9>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--10>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--10>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--10>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--11>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--11>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--11>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--12>.fd-form-label,.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl>.fd-form-label{float:left;padding-bottom:.125rem;text-align:left;width:auto}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--12>.fd-form-label[dir=rtl],.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--12>.fd-form-label,[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl>.fd-form-label{float:right;text-align:right}}/*!\n.fd-section+(--full-bleed, --no-border)\n .fd-section__header\n .fd-section__title\n .fd-section__actions\n .fd-section__footer\n*/.fd-section{-webkit-box-sizing:border-box;background-color:var(--sapToolbar_Background);border:0;border-bottom:none;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:1rem .5rem 1.5rem}.fd-section:after,.fd-section:before{box-sizing:inherit;font-size:inherit}.fd-section:after{clear:both;content:\"\";display:table}@media (min-width: 600px){.fd-section{padding-left:2rem;padding-right:2rem}}@media (min-width: 1440px){.fd-section{padding-left:3rem;padding-right:3rem}}.fd-section--no-border,.fd-section:last-child{border-bottom:0}.fd-section--bleed,.fd-section--full-bleed{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-section--bleed:after,.fd-section--bleed:before,.fd-section--full-bleed:after,.fd-section--full-bleed:before{box-sizing:inherit;font-size:inherit}.fd-section--bleed .fd-section__footer,.fd-section--bleed .fd-section__header,.fd-section--full-bleed .fd-section__footer,.fd-section--full-bleed .fd-section__header{padding-left:.5rem;padding-right:.5rem}@media (min-width: 600px){.fd-section--bleed .fd-section__footer,.fd-section--bleed .fd-section__header,.fd-section--full-bleed .fd-section__footer,.fd-section--full-bleed .fd-section__header{padding-left:2rem;padding-right:2rem}}@media (min-width: 1440px){.fd-section--bleed .fd-section__footer,.fd-section--bleed .fd-section__header,.fd-section--full-bleed .fd-section__footer,.fd-section--full-bleed .fd-section__header{padding-left:3rem;padding-right:3rem}}.fd-section__header{-webkit-box-sizing:border-box;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0 0 1.5rem;min-height:1.5rem;padding:0}.fd-section__header:after,.fd-section__header:before{box-sizing:inherit;font-size:inherit}.fd-section__title{-webkit-box-sizing:border-box;-webkit-box-flex:1;-ms-flex:1;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapTitleColor);flex:1;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-size:var(--sapFontHeader2Size);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);line-height:2rem;margin:0;padding:0}.fd-section__title:after,.fd-section__title:before{box-sizing:inherit;font-size:inherit}.fd-section__actions{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0 0 0 auto;padding:0}.fd-section__actions:after,.fd-section__actions:before{box-sizing:inherit;font-size:inherit}.fd-section__footer{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;justify-content:center;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-section__footer:after,.fd-section__footer:before{box-sizing:inherit;font-size:inherit}/*!\n .fd-form-group(--inline)\n*/.fd-form-group{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-form-group:after,.fd-form-group:before{box-sizing:inherit;font-size:inherit}.fd-form-group--inline{-webkit-box-pack:start;-ms-flex-pack:start;-ms-flex-wrap:wrap;flex-direction:row;flex-wrap:wrap;justify-content:flex-start}.fd-form-group--inline,.fd-form-group__header{display:flex}.fd-form-group__header{-webkit-box-sizing:border-box;align-items:center;background-color:var(--sapGroup_TitleBackground);border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:2.75rem;line-height:var(--sapContent_LineHeight);margin:0;padding:0;width:100%}.fd-form-group__header:after,.fd-form-group__header:before{box-sizing:inherit;font-size:inherit}.fd-form-group__header[class*=-compact],.fd-form-group__header[class*=-condensed],[class*=-compact] .fd-form-group__header:not([class*=-cozy]),[class*=-condensed] .fd-form-group__header:not([class*=-cozy]){height:2rem}.fd-form-group__header-text{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapGroup_TitleTextColor);font-family:var(--sapFontFamily);font-family:var(--sapFontHeaderFamily);font-size:var(--sapFontSize);font-size:var(--sapFontHeader6Size);font-weight:400;font-weight:700;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;overflow:hidden;padding:0;text-overflow:ellipsis;white-space:nowrap}.fd-form-group__header-text:after,.fd-form-group__header-text:before{box-sizing:inherit;font-size:inherit}/*!\n * Fundamental Library Styles v0.28.3\n * Copyright (c) 2023 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *//*!\n.fd-form-header\n .fd-form-header__text\n*/.fd-form-header{-webkit-box-sizing:border-box;-webkit-box-align:center;-ms-flex-align:center;-webkit-box-shadow:0 var(--fdFormHeader_Border_Width) 0 var(--sapGroup_TitleBorderColor);align-items:center;background-color:var(--sapGroup_TitleBackground);border:0;box-shadow:0 var(--fdFormHeader_Border_Width) 0 var(--sapGroup_TitleBorderColor);box-sizing:border-box;color:var(--sapTextColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:2.75rem;line-height:var(--sapContent_LineHeight);margin:0;padding:0 1rem;width:100%}.fd-form-header:after,.fd-form-header:before{box-sizing:inherit;font-size:inherit}.fd-form-header__text{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapGroup_TitleTextColor);font-family:var(--sapFontFamily);font-family:var(--sapFontHeaderFamily);font-size:var(--sapFontSize);font-size:var(--sapFontHeader4Size);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;overflow:hidden;padding:0;text-overflow:ellipsis;white-space:nowrap}.fd-form-header__text:after,.fd-form-header__text:before{box-sizing:inherit;font-size:inherit}fdp-form-group{display:block}.fd-form-label{overflow:hidden}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.InlineHelpDirective, selector: "[fd-inline-help]:not([fd-inline-help-template]), [fd-inline-help-template]:not([fd-inline-help])", inputs: ["triggers", "noArrow", "closeOnEscapeKey", "closeOnOutsideClick", "fd-inline-help", "fd-inline-help-template"] }, { kind: "component", type: i5.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }, { kind: "component", type: i6.LinkComponent, selector: "[fdLink], [fd-link], [fd-breadcrumb-link]", inputs: ["class", "emphasized", "disabled", "inverted", "subtle", "undecorated"] }, { kind: "component", type: i7.FormGroupHeaderComponent, selector: "[fdp-form-group-header]", inputs: ["fieldGroup"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: i8.FieldGroupRowValuePipe, name: "fieldGroupRowValue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
469
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: FormGroupComponent, selector: "fdp-form-group", inputs: { id: "id", name: "name", editable: "editable", noLabelLayout: "noLabelLayout", class: "class", hint: "hint", inlineColumnLayout: "inlineColumnLayout", labelColumnLayout: "labelColumnLayout", fieldColumnLayout: "fieldColumnLayout", gapColumnLayout: "gapColumnLayout", formGroup: "formGroup", topTitle: "topTitle", mainTitle: "mainTitle", hideMainTItle: "hideMainTItle", object: "object", i18Strings: "i18Strings", useForm: "useForm", columnLayout: "columnLayout", unifiedLayout: "unifiedLayout" }, outputs: { onSubmit: "onSubmit" }, providers: [formGroupProvider, FormFieldLayoutService, contentDensityObserverProviders()], queries: [{ propertyName: "i18Template", first: true, predicate: ["i18n"], descendants: true, static: true }, { propertyName: "_errorDirectives", predicate: FormFieldErrorDirective }, { propertyName: "formGroupChildren", predicate: FORM_GROUP_CHILD_FIELD_TOKEN, descendants: true }], viewQueries: [{ propertyName: "nativeForm", first: true, predicate: ["nativeForm"], descendants: true, read: NgForm }], usesOnChanges: true, ngImport: i0, template: "<form #nativeForm (ngSubmit)=\"onSubmit.emit($event)\" *ngIf=\"useForm; else body\" [id]=\"id\" [name]=\"name\">\n <ng-container *ngTemplateOutlet=\"body\"></ng-container>\n</form>\n\n<ng-template #body>\n <!-- Render fields and field groups with assigned columns -->\n <ng-container *ngTemplateOutlet=\"fields\"></ng-container>\n</ng-template>\n\n<ng-template #fields>\n <div *ngIf=\"mainTitle && !hideMainTItle\" class=\"fd-form-header\">\n <ng-template [ngTemplateOutlet]=\"mainTitleTemplate\"></ng-template>\n </div>\n\n <div\n class=\"fd-container fd-form-layout-grid-container\"\n [class.is-compact]=\"contentDensityObserver.isCompact$ | async\"\n >\n <div *ngFor=\"let column of formRows | keyvalue; trackBy: trackByFn\" class=\"fd-row\">\n <div\n *ngFor=\"let fields of column | fieldGroupRowValue | keyvalue; trackBy: trackByFn; let index = index\"\n class=\"fd-col fd-form-group\"\n [class]=\"xlCol\"\n >\n <div class=\"fd-row\" *ngIf=\"$fieldGroup(column.value) as value\">\n <div class=\"fd-col\">\n <div *ngIf=\"value.label\" fdp-form-group-header [fieldGroup]=\"index === 0 ? value : null\"></div>\n </div>\n </div>\n\n <div *ngFor=\"let field of fields.value; trackBy: trackByFieldName\" class=\"fd-row fd-form-item\">\n <div class=\"fd-col\" [class]=\"_inlineColumnLayoutClass\" [style.order]=\"field.rank\">\n <ng-container *ngTemplateOutlet=\"field?.renderer || null\"></ng-container>\n </div>\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n\n<!-- For nested form-group -->\n<ng-content select=\"fdp-form-group\"></ng-content>\n\n<ng-template #mainTitleTemplate>\n <ng-container *ngIf=\"_hintOptions?.content && _hintOptions.position === 'before'\">\n <ng-template [ngTemplateOutlet]=\"hintTemplate\"></ng-template>\n </ng-container>\n\n <h5 class=\"fd-form-header__text\">\n {{ mainTitle }}\n </h5>\n\n <ng-container *ngIf=\"_hintOptions?.content && _hintOptions.position === 'after'\">\n <ng-template [ngTemplateOutlet]=\"hintTemplate\"></ng-template>\n </ng-container>\n\n <ng-template #hintTemplate>\n <span fd-link [undecorated]=\"true\">\n <fd-icon\n [fd-inline-help]=\"_hintOptions.content\"\n [glyph]=\"_hintOptions.glyph\"\n [placement]=\"_hintOptions.placement || null\"\n [triggers]=\"_hintOptions.trigger || []\"\n tabindex=\"0\"\n ></fd-icon>\n </span>\n </ng-template>\n</ng-template>\n", styles: [".fd-col,.fd-container,.fd-row{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-col:after,.fd-col:before,.fd-container:after,.fd-container:before,.fd-row:after,.fd-row:before{box-sizing:inherit;font-size:inherit}.fd-container{-ms-flex-wrap:wrap;-webkit-box-flex:0;-ms-flex:0 0 100%;display:flex;flex:0 0 100%;flex-wrap:wrap;padding:0 .25rem;position:relative}.fd-container .fd-row{margin-left:-.25rem;margin-right:-.25rem;min-width:calc(100% + .5rem)}.fd-container>.fd-row>.fd-col{padding-bottom:.25rem;padding-top:.25rem}.fd-container.fd-container--no-gap .fd-row,.fd-container.fd-container--no-horizontal-gap .fd-row{margin-left:0;margin-right:0}.fd-container.fd-container--no-gap .fd-row .fd-col,.fd-container.fd-container--no-horizontal-gap .fd-row .fd-col{padding-left:0;padding-right:0}.fd-container.fd-container--no-gap>.fd-row>.fd-col,.fd-container.fd-container--no-vertical-gap>.fd-row>.fd-col{padding-bottom:0;padding-top:0}.fd-container[dir=rtl],[dir=rtl] .fd-container{direction:rtl}.fd-row{-ms-flex-wrap:wrap;-webkit-box-flex:0;-ms-flex:0 0 100%;display:flex;flex:0 0 100%;flex-wrap:wrap;min-width:100%;position:relative}.fd-col{max-width:100%;min-width:100%;padding-left:.25rem;padding-right:.25rem}.fd-col--0{max-width:0;min-width:0%}.fd-col--offset-0{margin-left:0}.fd-col--offset-0[dir=rtl],[dir=rtl] .fd-col--offset-0{margin-left:0;margin-right:0}.fd-col--offset-after-0{margin-right:0}.fd-col--offset-after-0[dir=rtl],[dir=rtl] .fd-col--offset-after-0{margin-left:0;margin-right:0}.fd-col--1{max-width:8.3333333333%;min-width:8.3333333333%}.fd-col--offset-1{margin-left:8.3333333333%}.fd-col--offset-1[dir=rtl],[dir=rtl] .fd-col--offset-1{margin-left:0;margin-right:8.3333333333%}.fd-col--offset-after-1{margin-right:8.3333333333%}.fd-col--offset-after-1[dir=rtl],[dir=rtl] .fd-col--offset-after-1{margin-left:8.3333333333%;margin-right:0}.fd-col--2{max-width:16.6666666667%;min-width:16.6666666667%}.fd-col--offset-2{margin-left:16.6666666667%}.fd-col--offset-2[dir=rtl],[dir=rtl] .fd-col--offset-2{margin-left:0;margin-right:16.6666666667%}.fd-col--offset-after-2{margin-right:16.6666666667%}.fd-col--offset-after-2[dir=rtl],[dir=rtl] .fd-col--offset-after-2{margin-left:16.6666666667%;margin-right:0}.fd-col--3{max-width:25%;min-width:25%}.fd-col--offset-3{margin-left:25%}.fd-col--offset-3[dir=rtl],[dir=rtl] .fd-col--offset-3{margin-left:0;margin-right:25%}.fd-col--offset-after-3{margin-right:25%}.fd-col--offset-after-3[dir=rtl],[dir=rtl] .fd-col--offset-after-3{margin-left:25%;margin-right:0}.fd-col--4{max-width:33.3333333333%;min-width:33.3333333333%}.fd-col--offset-4{margin-left:33.3333333333%}.fd-col--offset-4[dir=rtl],[dir=rtl] .fd-col--offset-4{margin-left:0;margin-right:33.3333333333%}.fd-col--offset-after-4{margin-right:33.3333333333%}.fd-col--offset-after-4[dir=rtl],[dir=rtl] .fd-col--offset-after-4{margin-left:33.3333333333%;margin-right:0}.fd-col--5{max-width:41.6666666667%;min-width:41.6666666667%}.fd-col--offset-5{margin-left:41.6666666667%}.fd-col--offset-5[dir=rtl],[dir=rtl] .fd-col--offset-5{margin-left:0;margin-right:41.6666666667%}.fd-col--offset-after-5{margin-right:41.6666666667%}.fd-col--offset-after-5[dir=rtl],[dir=rtl] .fd-col--offset-after-5{margin-left:41.6666666667%;margin-right:0}.fd-col--6{max-width:50%;min-width:50%}.fd-col--offset-6{margin-left:50%}.fd-col--offset-6[dir=rtl],[dir=rtl] .fd-col--offset-6{margin-left:0;margin-right:50%}.fd-col--offset-after-6{margin-right:50%}.fd-col--offset-after-6[dir=rtl],[dir=rtl] .fd-col--offset-after-6{margin-left:50%;margin-right:0}.fd-col--7{max-width:58.3333333333%;min-width:58.3333333333%}.fd-col--offset-7{margin-left:58.3333333333%}.fd-col--offset-7[dir=rtl],[dir=rtl] .fd-col--offset-7{margin-left:0;margin-right:58.3333333333%}.fd-col--offset-after-7{margin-right:58.3333333333%}.fd-col--offset-after-7[dir=rtl],[dir=rtl] .fd-col--offset-after-7{margin-left:58.3333333333%;margin-right:0}.fd-col--8{max-width:66.6666666667%;min-width:66.6666666667%}.fd-col--offset-8{margin-left:66.6666666667%}.fd-col--offset-8[dir=rtl],[dir=rtl] .fd-col--offset-8{margin-left:0;margin-right:66.6666666667%}.fd-col--offset-after-8{margin-right:66.6666666667%}.fd-col--offset-after-8[dir=rtl],[dir=rtl] .fd-col--offset-after-8{margin-left:66.6666666667%;margin-right:0}.fd-col--9{max-width:75%;min-width:75%}.fd-col--offset-9{margin-left:75%}.fd-col--offset-9[dir=rtl],[dir=rtl] .fd-col--offset-9{margin-left:0;margin-right:75%}.fd-col--offset-after-9{margin-right:75%}.fd-col--offset-after-9[dir=rtl],[dir=rtl] .fd-col--offset-after-9{margin-left:75%;margin-right:0}.fd-col--10{max-width:83.3333333333%;min-width:83.3333333333%}.fd-col--offset-10{margin-left:83.3333333333%}.fd-col--offset-10[dir=rtl],[dir=rtl] .fd-col--offset-10{margin-left:0;margin-right:83.3333333333%}.fd-col--offset-after-10{margin-right:83.3333333333%}.fd-col--offset-after-10[dir=rtl],[dir=rtl] .fd-col--offset-after-10{margin-left:83.3333333333%;margin-right:0}.fd-col--11{max-width:91.6666666667%;min-width:91.6666666667%}.fd-col--offset-11{margin-left:91.6666666667%}.fd-col--offset-11[dir=rtl],[dir=rtl] .fd-col--offset-11{margin-left:0;margin-right:91.6666666667%}.fd-col--offset-after-11{margin-right:91.6666666667%}.fd-col--offset-after-11[dir=rtl],[dir=rtl] .fd-col--offset-after-11{margin-left:91.6666666667%;margin-right:0}.fd-col--12{max-width:100%;min-width:100%}.fd-col--offset-12{margin-left:100%}.fd-col--offset-12[dir=rtl],[dir=rtl] .fd-col--offset-12{margin-left:0;margin-right:100%}.fd-col--offset-after-12{margin-right:100%}.fd-col--offset-after-12[dir=rtl],[dir=rtl] .fd-col--offset-after-12{margin-left:100%;margin-right:0}.fd-col--full{flex:1;max-width:none;min-width:8.3333333333%}.fd-col--wrap{flex-wrap:wrap}@media (min-width: 600px){.fd-container{padding:0 .5rem}.fd-container .fd-row{margin-left:-.5rem;margin-right:-.5rem;min-width:calc(100% + 1rem)}.fd-container>.fd-row>.fd-col{padding-bottom:.5rem;padding-top:.5rem}.fd-col{padding-left:.5rem;padding-right:.5rem}.fd-col-md--0{max-width:0;min-width:0%}.fd-col-md--offset-0{margin-left:0}.fd-col-md--offset-0[dir=rtl],[dir=rtl] .fd-col-md--offset-0{margin-left:0;margin-right:0}.fd-col-md--offset-after-0{margin-right:0}.fd-col-md--offset-after-0[dir=rtl],[dir=rtl] .fd-col-md--offset-after-0{margin-left:0;margin-right:0}.fd-col-md--1{max-width:8.3333333333%;min-width:8.3333333333%}.fd-col-md--offset-1{margin-left:8.3333333333%}.fd-col-md--offset-1[dir=rtl],[dir=rtl] .fd-col-md--offset-1{margin-left:0;margin-right:8.3333333333%}.fd-col-md--offset-after-1{margin-right:8.3333333333%}.fd-col-md--offset-after-1[dir=rtl],[dir=rtl] .fd-col-md--offset-after-1{margin-left:8.3333333333%;margin-right:0}.fd-col-md--2{max-width:16.6666666667%;min-width:16.6666666667%}.fd-col-md--offset-2{margin-left:16.6666666667%}.fd-col-md--offset-2[dir=rtl],[dir=rtl] .fd-col-md--offset-2{margin-left:0;margin-right:16.6666666667%}.fd-col-md--offset-after-2{margin-right:16.6666666667%}.fd-col-md--offset-after-2[dir=rtl],[dir=rtl] .fd-col-md--offset-after-2{margin-left:16.6666666667%;margin-right:0}.fd-col-md--3{max-width:25%;min-width:25%}.fd-col-md--offset-3{margin-left:25%}.fd-col-md--offset-3[dir=rtl],[dir=rtl] .fd-col-md--offset-3{margin-left:0;margin-right:25%}.fd-col-md--offset-after-3{margin-right:25%}.fd-col-md--offset-after-3[dir=rtl],[dir=rtl] .fd-col-md--offset-after-3{margin-left:25%;margin-right:0}.fd-col-md--4{max-width:33.3333333333%;min-width:33.3333333333%}.fd-col-md--offset-4{margin-left:33.3333333333%}.fd-col-md--offset-4[dir=rtl],[dir=rtl] .fd-col-md--offset-4{margin-left:0;margin-right:33.3333333333%}.fd-col-md--offset-after-4{margin-right:33.3333333333%}.fd-col-md--offset-after-4[dir=rtl],[dir=rtl] .fd-col-md--offset-after-4{margin-left:33.3333333333%;margin-right:0}.fd-col-md--5{max-width:41.6666666667%;min-width:41.6666666667%}.fd-col-md--offset-5{margin-left:41.6666666667%}.fd-col-md--offset-5[dir=rtl],[dir=rtl] .fd-col-md--offset-5{margin-left:0;margin-right:41.6666666667%}.fd-col-md--offset-after-5{margin-right:41.6666666667%}.fd-col-md--offset-after-5[dir=rtl],[dir=rtl] .fd-col-md--offset-after-5{margin-left:41.6666666667%;margin-right:0}.fd-col-md--6{max-width:50%;min-width:50%}.fd-col-md--offset-6{margin-left:50%}.fd-col-md--offset-6[dir=rtl],[dir=rtl] .fd-col-md--offset-6{margin-left:0;margin-right:50%}.fd-col-md--offset-after-6{margin-right:50%}.fd-col-md--offset-after-6[dir=rtl],[dir=rtl] .fd-col-md--offset-after-6{margin-left:50%;margin-right:0}.fd-col-md--7{max-width:58.3333333333%;min-width:58.3333333333%}.fd-col-md--offset-7{margin-left:58.3333333333%}.fd-col-md--offset-7[dir=rtl],[dir=rtl] .fd-col-md--offset-7{margin-left:0;margin-right:58.3333333333%}.fd-col-md--offset-after-7{margin-right:58.3333333333%}.fd-col-md--offset-after-7[dir=rtl],[dir=rtl] .fd-col-md--offset-after-7{margin-left:58.3333333333%;margin-right:0}.fd-col-md--8{max-width:66.6666666667%;min-width:66.6666666667%}.fd-col-md--offset-8{margin-left:66.6666666667%}.fd-col-md--offset-8[dir=rtl],[dir=rtl] .fd-col-md--offset-8{margin-left:0;margin-right:66.6666666667%}.fd-col-md--offset-after-8{margin-right:66.6666666667%}.fd-col-md--offset-after-8[dir=rtl],[dir=rtl] .fd-col-md--offset-after-8{margin-left:66.6666666667%;margin-right:0}.fd-col-md--9{max-width:75%;min-width:75%}.fd-col-md--offset-9{margin-left:75%}.fd-col-md--offset-9[dir=rtl],[dir=rtl] .fd-col-md--offset-9{margin-left:0;margin-right:75%}.fd-col-md--offset-after-9{margin-right:75%}.fd-col-md--offset-after-9[dir=rtl],[dir=rtl] .fd-col-md--offset-after-9{margin-left:75%;margin-right:0}.fd-col-md--10{max-width:83.3333333333%;min-width:83.3333333333%}.fd-col-md--offset-10{margin-left:83.3333333333%}.fd-col-md--offset-10[dir=rtl],[dir=rtl] .fd-col-md--offset-10{margin-left:0;margin-right:83.3333333333%}.fd-col-md--offset-after-10{margin-right:83.3333333333%}.fd-col-md--offset-after-10[dir=rtl],[dir=rtl] .fd-col-md--offset-after-10{margin-left:83.3333333333%;margin-right:0}.fd-col-md--11{max-width:91.6666666667%;min-width:91.6666666667%}.fd-col-md--offset-11{margin-left:91.6666666667%}.fd-col-md--offset-11[dir=rtl],[dir=rtl] .fd-col-md--offset-11{margin-left:0;margin-right:91.6666666667%}.fd-col-md--offset-after-11{margin-right:91.6666666667%}.fd-col-md--offset-after-11[dir=rtl],[dir=rtl] .fd-col-md--offset-after-11{margin-left:91.6666666667%;margin-right:0}.fd-col-md--12{max-width:100%;min-width:100%}.fd-col-md--offset-12{margin-left:100%}.fd-col-md--offset-12[dir=rtl],[dir=rtl] .fd-col-md--offset-12{margin-left:0;margin-right:100%}.fd-col-md--offset-after-12{margin-right:100%}.fd-col-md--offset-after-12[dir=rtl],[dir=rtl] .fd-col-md--offset-after-12{margin-left:100%;margin-right:0}}@media (min-width: 1024px){.fd-col-lg--0{max-width:0;min-width:0%}.fd-col-lg--offset-0{margin-left:0}.fd-col-lg--offset-0[dir=rtl],[dir=rtl] .fd-col-lg--offset-0{margin-left:0;margin-right:0}.fd-col-lg--offset-after-0{margin-right:0}.fd-col-lg--offset-after-0[dir=rtl],[dir=rtl] .fd-col-lg--offset-after-0{margin-left:0;margin-right:0}.fd-col-lg--1{max-width:8.3333333333%;min-width:8.3333333333%}.fd-col-lg--offset-1{margin-left:8.3333333333%}.fd-col-lg--offset-1[dir=rtl],[dir=rtl] .fd-col-lg--offset-1{margin-left:0;margin-right:8.3333333333%}.fd-col-lg--offset-after-1{margin-right:8.3333333333%}.fd-col-lg--offset-after-1[dir=rtl],[dir=rtl] .fd-col-lg--offset-after-1{margin-left:8.3333333333%;margin-right:0}.fd-col-lg--2{max-width:16.6666666667%;min-width:16.6666666667%}.fd-col-lg--offset-2{margin-left:16.6666666667%}.fd-col-lg--offset-2[dir=rtl],[dir=rtl] .fd-col-lg--offset-2{margin-left:0;margin-right:16.6666666667%}.fd-col-lg--offset-after-2{margin-right:16.6666666667%}.fd-col-lg--offset-after-2[dir=rtl],[dir=rtl] .fd-col-lg--offset-after-2{margin-left:16.6666666667%;margin-right:0}.fd-col-lg--3{max-width:25%;min-width:25%}.fd-col-lg--offset-3{margin-left:25%}.fd-col-lg--offset-3[dir=rtl],[dir=rtl] .fd-col-lg--offset-3{margin-left:0;margin-right:25%}.fd-col-lg--offset-after-3{margin-right:25%}.fd-col-lg--offset-after-3[dir=rtl],[dir=rtl] .fd-col-lg--offset-after-3{margin-left:25%;margin-right:0}.fd-col-lg--4{max-width:33.3333333333%;min-width:33.3333333333%}.fd-col-lg--offset-4{margin-left:33.3333333333%}.fd-col-lg--offset-4[dir=rtl],[dir=rtl] .fd-col-lg--offset-4{margin-left:0;margin-right:33.3333333333%}.fd-col-lg--offset-after-4{margin-right:33.3333333333%}.fd-col-lg--offset-after-4[dir=rtl],[dir=rtl] .fd-col-lg--offset-after-4{margin-left:33.3333333333%;margin-right:0}.fd-col-lg--5{max-width:41.6666666667%;min-width:41.6666666667%}.fd-col-lg--offset-5{margin-left:41.6666666667%}.fd-col-lg--offset-5[dir=rtl],[dir=rtl] .fd-col-lg--offset-5{margin-left:0;margin-right:41.6666666667%}.fd-col-lg--offset-after-5{margin-right:41.6666666667%}.fd-col-lg--offset-after-5[dir=rtl],[dir=rtl] .fd-col-lg--offset-after-5{margin-left:41.6666666667%;margin-right:0}.fd-col-lg--6{max-width:50%;min-width:50%}.fd-col-lg--offset-6{margin-left:50%}.fd-col-lg--offset-6[dir=rtl],[dir=rtl] .fd-col-lg--offset-6{margin-left:0;margin-right:50%}.fd-col-lg--offset-after-6{margin-right:50%}.fd-col-lg--offset-after-6[dir=rtl],[dir=rtl] .fd-col-lg--offset-after-6{margin-left:50%;margin-right:0}.fd-col-lg--7{max-width:58.3333333333%;min-width:58.3333333333%}.fd-col-lg--offset-7{margin-left:58.3333333333%}.fd-col-lg--offset-7[dir=rtl],[dir=rtl] .fd-col-lg--offset-7{margin-left:0;margin-right:58.3333333333%}.fd-col-lg--offset-after-7{margin-right:58.3333333333%}.fd-col-lg--offset-after-7[dir=rtl],[dir=rtl] .fd-col-lg--offset-after-7{margin-left:58.3333333333%;margin-right:0}.fd-col-lg--8{max-width:66.6666666667%;min-width:66.6666666667%}.fd-col-lg--offset-8{margin-left:66.6666666667%}.fd-col-lg--offset-8[dir=rtl],[dir=rtl] .fd-col-lg--offset-8{margin-left:0;margin-right:66.6666666667%}.fd-col-lg--offset-after-8{margin-right:66.6666666667%}.fd-col-lg--offset-after-8[dir=rtl],[dir=rtl] .fd-col-lg--offset-after-8{margin-left:66.6666666667%;margin-right:0}.fd-col-lg--9{max-width:75%;min-width:75%}.fd-col-lg--offset-9{margin-left:75%}.fd-col-lg--offset-9[dir=rtl],[dir=rtl] .fd-col-lg--offset-9{margin-left:0;margin-right:75%}.fd-col-lg--offset-after-9{margin-right:75%}.fd-col-lg--offset-after-9[dir=rtl],[dir=rtl] .fd-col-lg--offset-after-9{margin-left:75%;margin-right:0}.fd-col-lg--10{max-width:83.3333333333%;min-width:83.3333333333%}.fd-col-lg--offset-10{margin-left:83.3333333333%}.fd-col-lg--offset-10[dir=rtl],[dir=rtl] .fd-col-lg--offset-10{margin-left:0;margin-right:83.3333333333%}.fd-col-lg--offset-after-10{margin-right:83.3333333333%}.fd-col-lg--offset-after-10[dir=rtl],[dir=rtl] .fd-col-lg--offset-after-10{margin-left:83.3333333333%;margin-right:0}.fd-col-lg--11{max-width:91.6666666667%;min-width:91.6666666667%}.fd-col-lg--offset-11{margin-left:91.6666666667%}.fd-col-lg--offset-11[dir=rtl],[dir=rtl] .fd-col-lg--offset-11{margin-left:0;margin-right:91.6666666667%}.fd-col-lg--offset-after-11{margin-right:91.6666666667%}.fd-col-lg--offset-after-11[dir=rtl],[dir=rtl] .fd-col-lg--offset-after-11{margin-left:91.6666666667%;margin-right:0}.fd-col-lg--12{max-width:100%;min-width:100%}.fd-col-lg--offset-12{margin-left:100%}.fd-col-lg--offset-12[dir=rtl],[dir=rtl] .fd-col-lg--offset-12{margin-left:0;margin-right:100%}.fd-col-lg--offset-after-12{margin-right:100%}.fd-col-lg--offset-after-12[dir=rtl],[dir=rtl] .fd-col-lg--offset-after-12{margin-left:100%;margin-right:0}}@media (min-width: 1440px){.fd-col-xl--0{max-width:0;min-width:0%}.fd-col-xl--offset-0{margin-left:0}.fd-col-xl--offset-0[dir=rtl],[dir=rtl] .fd-col-xl--offset-0{margin-left:0;margin-right:0}.fd-col-xl--offset-after-0{margin-right:0}.fd-col-xl--offset-after-0[dir=rtl],[dir=rtl] .fd-col-xl--offset-after-0{margin-left:0;margin-right:0}.fd-col-xl--1{max-width:8.3333333333%;min-width:8.3333333333%}.fd-col-xl--offset-1{margin-left:8.3333333333%}.fd-col-xl--offset-1[dir=rtl],[dir=rtl] .fd-col-xl--offset-1{margin-left:0;margin-right:8.3333333333%}.fd-col-xl--offset-after-1{margin-right:8.3333333333%}.fd-col-xl--offset-after-1[dir=rtl],[dir=rtl] .fd-col-xl--offset-after-1{margin-left:8.3333333333%;margin-right:0}.fd-col-xl--2{max-width:16.6666666667%;min-width:16.6666666667%}.fd-col-xl--offset-2{margin-left:16.6666666667%}.fd-col-xl--offset-2[dir=rtl],[dir=rtl] .fd-col-xl--offset-2{margin-left:0;margin-right:16.6666666667%}.fd-col-xl--offset-after-2{margin-right:16.6666666667%}.fd-col-xl--offset-after-2[dir=rtl],[dir=rtl] .fd-col-xl--offset-after-2{margin-left:16.6666666667%;margin-right:0}.fd-col-xl--3{max-width:25%;min-width:25%}.fd-col-xl--offset-3{margin-left:25%}.fd-col-xl--offset-3[dir=rtl],[dir=rtl] .fd-col-xl--offset-3{margin-left:0;margin-right:25%}.fd-col-xl--offset-after-3{margin-right:25%}.fd-col-xl--offset-after-3[dir=rtl],[dir=rtl] .fd-col-xl--offset-after-3{margin-left:25%;margin-right:0}.fd-col-xl--4{max-width:33.3333333333%;min-width:33.3333333333%}.fd-col-xl--offset-4{margin-left:33.3333333333%}.fd-col-xl--offset-4[dir=rtl],[dir=rtl] .fd-col-xl--offset-4{margin-left:0;margin-right:33.3333333333%}.fd-col-xl--offset-after-4{margin-right:33.3333333333%}.fd-col-xl--offset-after-4[dir=rtl],[dir=rtl] .fd-col-xl--offset-after-4{margin-left:33.3333333333%;margin-right:0}.fd-col-xl--5{max-width:41.6666666667%;min-width:41.6666666667%}.fd-col-xl--offset-5{margin-left:41.6666666667%}.fd-col-xl--offset-5[dir=rtl],[dir=rtl] .fd-col-xl--offset-5{margin-left:0;margin-right:41.6666666667%}.fd-col-xl--offset-after-5{margin-right:41.6666666667%}.fd-col-xl--offset-after-5[dir=rtl],[dir=rtl] .fd-col-xl--offset-after-5{margin-left:41.6666666667%;margin-right:0}.fd-col-xl--6{max-width:50%;min-width:50%}.fd-col-xl--offset-6{margin-left:50%}.fd-col-xl--offset-6[dir=rtl],[dir=rtl] .fd-col-xl--offset-6{margin-left:0;margin-right:50%}.fd-col-xl--offset-after-6{margin-right:50%}.fd-col-xl--offset-after-6[dir=rtl],[dir=rtl] .fd-col-xl--offset-after-6{margin-left:50%;margin-right:0}.fd-col-xl--7{max-width:58.3333333333%;min-width:58.3333333333%}.fd-col-xl--offset-7{margin-left:58.3333333333%}.fd-col-xl--offset-7[dir=rtl],[dir=rtl] .fd-col-xl--offset-7{margin-left:0;margin-right:58.3333333333%}.fd-col-xl--offset-after-7{margin-right:58.3333333333%}.fd-col-xl--offset-after-7[dir=rtl],[dir=rtl] .fd-col-xl--offset-after-7{margin-left:58.3333333333%;margin-right:0}.fd-col-xl--8{max-width:66.6666666667%;min-width:66.6666666667%}.fd-col-xl--offset-8{margin-left:66.6666666667%}.fd-col-xl--offset-8[dir=rtl],[dir=rtl] .fd-col-xl--offset-8{margin-left:0;margin-right:66.6666666667%}.fd-col-xl--offset-after-8{margin-right:66.6666666667%}.fd-col-xl--offset-after-8[dir=rtl],[dir=rtl] .fd-col-xl--offset-after-8{margin-left:66.6666666667%;margin-right:0}.fd-col-xl--9{max-width:75%;min-width:75%}.fd-col-xl--offset-9{margin-left:75%}.fd-col-xl--offset-9[dir=rtl],[dir=rtl] .fd-col-xl--offset-9{margin-left:0;margin-right:75%}.fd-col-xl--offset-after-9{margin-right:75%}.fd-col-xl--offset-after-9[dir=rtl],[dir=rtl] .fd-col-xl--offset-after-9{margin-left:75%;margin-right:0}.fd-col-xl--10{max-width:83.3333333333%;min-width:83.3333333333%}.fd-col-xl--offset-10{margin-left:83.3333333333%}.fd-col-xl--offset-10[dir=rtl],[dir=rtl] .fd-col-xl--offset-10{margin-left:0;margin-right:83.3333333333%}.fd-col-xl--offset-after-10{margin-right:83.3333333333%}.fd-col-xl--offset-after-10[dir=rtl],[dir=rtl] .fd-col-xl--offset-after-10{margin-left:83.3333333333%;margin-right:0}.fd-col-xl--11{max-width:91.6666666667%;min-width:91.6666666667%}.fd-col-xl--offset-11{margin-left:91.6666666667%}.fd-col-xl--offset-11[dir=rtl],[dir=rtl] .fd-col-xl--offset-11{margin-left:0;margin-right:91.6666666667%}.fd-col-xl--offset-after-11{margin-right:91.6666666667%}.fd-col-xl--offset-after-11[dir=rtl],[dir=rtl] .fd-col-xl--offset-after-11{margin-left:91.6666666667%;margin-right:0}.fd-col-xl--12{max-width:100%;min-width:100%}.fd-col-xl--offset-12{margin-left:100%}.fd-col-xl--offset-12[dir=rtl],[dir=rtl] .fd-col-xl--offset-12{margin-left:0;margin-right:100%}.fd-col-xl--offset-after-12{margin-right:100%}.fd-col-xl--offset-after-12[dir=rtl],[dir=rtl] .fd-col-xl--offset-after-12{margin-left:100%;margin-right:0}}.fd-container.fd-form-layout-grid-container .fd-form-group,.fd-container.fd-form-layout-grid-container.fd-form-group{padding:1rem!important}.fd-container.fd-form-layout-grid-container .fd-form-group .fd-form-group,.fd-container.fd-form-layout-grid-container.fd-form-group .fd-form-group{padding:0!important}.fd-container.fd-form-layout-grid-container .fd-form-group .fd-form-item .fd-form-label,.fd-container.fd-form-layout-grid-container.fd-form-group .fd-form-item .fd-form-label{margin-right:0;white-space:normal}.fd-container.fd-form-layout-grid-container .fd-form-group .fd-form-item .fd-form-label[dir=rtl],.fd-container.fd-form-layout-grid-container.fd-form-group .fd-form-item .fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-form-group .fd-form-item .fd-form-label,[dir=rtl] .fd-container.fd-form-layout-grid-container.fd-form-group .fd-form-item .fd-form-label{margin-left:0;margin-right:0}.fd-container.fd-form-layout-grid-container .fd-form-group .fd-form-item .fd-form-label--required,.fd-container.fd-form-layout-grid-container.fd-form-group .fd-form-item .fd-form-label--required{padding-right:.5rem}.fd-container.fd-form-layout-grid-container .fd-form-group .fd-form-item .fd-form-label--required[dir=rtl],.fd-container.fd-form-layout-grid-container.fd-form-group .fd-form-item .fd-form-label--required[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-form-group .fd-form-item .fd-form-label--required,[dir=rtl] .fd-container.fd-form-layout-grid-container.fd-form-group .fd-form-item .fd-form-label--required{padding-left:.5rem;padding-right:0}.fd-container.fd-form-layout-grid-container .fd-row{flex-direction:row}.fd-container.fd-form-layout-grid-container .fd-row .fd-col{overflow:hidden;padding-bottom:0;padding-top:0;text-overflow:ellipsis;white-space:nowrap}.fd-container.fd-form-layout-grid-container .fd-row .fd-col:not(.fd-form-group){align-self:center}@media (min-width: 0){.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--vertical .fd-form-group .fd-form-item,.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--vertical.fd-form-group .fd-form-item{margin-top:.625rem}.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--vertical .fd-form-group .fd-form-item:first-of-type,.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--vertical.fd-form-group .fd-form-item:first-of-type{margin-top:0}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--1>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--1>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col--1>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--2>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--2>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col--2>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--3>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--3>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col--3>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--4>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--4>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col--4>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--5>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--5>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col--5>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--6>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--6>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col--6>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--7>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--7>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col--7>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--8>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--8>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col--8>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--9>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--9>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col--9>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--10>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--10>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col--10>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--11>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--11>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col--11>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--12>.fd-form-label,.fd-container.fd-form-layout-grid-container .fd-row .fd-col>.fd-form-label{float:left;padding-bottom:.125rem;text-align:left;width:auto}.fd-container.fd-form-layout-grid-container .fd-row .fd-col--12>.fd-form-label[dir=rtl],.fd-container.fd-form-layout-grid-container .fd-row .fd-col>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col--12>.fd-form-label,[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col>.fd-form-label{float:right;text-align:right}}@media (min-width: 0) and (max-width: 599px){.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container .fd-form-group .fd-form-item,.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container.fd-form-group .fd-form-item{margin-top:.625rem}.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container .fd-form-group .fd-form-item:first-of-type,.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container.fd-form-group .fd-form-item:first-of-type{margin-top:0}}@media (min-width: 600px){.fd-container.fd-form-layout-grid-container{padding:0 .25rem}.fd-container.fd-form-layout-grid-container .fd-row{margin:0 -.25rem;min-width:calc(100% + .5rem)}.fd-container.fd-form-layout-grid-container .fd-row .fd-col{padding:0 .25rem}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--1>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--1>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--1>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--2>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--2>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--2>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--3>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--3>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--3>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--4>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--4>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--4>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--5>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--5>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--5>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--6>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--6>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--6>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--7>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--7>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--7>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--8>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--8>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--8>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--9>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--9>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--9>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--10>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--10>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--10>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--11>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--11>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--11>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--12>.fd-form-label,.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md>.fd-form-label{float:left;padding-bottom:.125rem;text-align:left;width:auto}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--12>.fd-form-label[dir=rtl],.fd-container.fd-form-layout-grid-container .fd-row .fd-col-md>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-md--12>.fd-form-label,[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-md>.fd-form-label{float:right;text-align:right}}@media (min-width: 600px) and (max-width: 1023px){.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--md-vertical .fd-form-group .fd-form-item,.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--md-vertical.fd-form-group .fd-form-item{margin-top:.625rem}.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--md-vertical .fd-form-group .fd-form-item:first-of-type,.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--md-vertical.fd-form-group .fd-form-item:first-of-type{margin-top:0}}@media (min-width: 1024px){.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--1>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--1>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--1>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--2>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--2>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--2>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--3>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--3>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--3>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--4>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--4>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--4>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--5>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--5>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--5>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--6>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--6>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--6>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--7>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--7>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--7>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--8>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--8>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--8>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--9>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--9>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--9>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--10>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--10>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--10>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--11>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--11>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--11>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--12>.fd-form-label,.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg>.fd-form-label{float:left;padding-bottom:.125rem;text-align:left;width:auto}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--12>.fd-form-label[dir=rtl],.fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg--12>.fd-form-label,[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-lg>.fd-form-label{float:right;text-align:right}}@media (min-width: 1024px) and (max-width: 1443px){.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--lg-vertical .fd-form-group .fd-form-item,.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--lg-vertical.fd-form-group .fd-form-item{margin-top:.625rem}.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--lg-vertical .fd-form-group .fd-form-item:first-of-type,.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--lg-vertical.fd-form-group .fd-form-item:first-of-type{margin-top:0}}@media (min-width: 1440px){.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--xl-vertical .fd-form-group .fd-form-item,.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--xl-vertical.fd-form-group .fd-form-item{margin-top:.625rem}.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--xl-vertical .fd-form-group .fd-form-item:first-of-type,.fd-container.fd-form-layout-grid-container.fd-form-layout-grid-container--xl-vertical.fd-form-group .fd-form-item:first-of-type{margin-top:0}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--1>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--1>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--1>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--2>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--2>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--2>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--3>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--3>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--3>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--4>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--4>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--4>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--5>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--5>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--5>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--6>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--6>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--6>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--7>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--7>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--7>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--8>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--8>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--8>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--9>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--9>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--9>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--10>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--10>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--10>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--11>.fd-form-label{float:right;padding-bottom:0;text-align:right;width:100%}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--11>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--11>.fd-form-label{float:left;text-align:left}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--12>.fd-form-label,.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl>.fd-form-label{float:left;padding-bottom:.125rem;text-align:left;width:auto}.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--12>.fd-form-label[dir=rtl],.fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl>.fd-form-label[dir=rtl],[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl--12>.fd-form-label,[dir=rtl] .fd-container.fd-form-layout-grid-container .fd-row .fd-col-xl>.fd-form-label{float:right;text-align:right}}/*!\n.fd-section+(--full-bleed, --no-border)\n .fd-section__header\n .fd-section__title\n .fd-section__actions\n .fd-section__footer\n*/.fd-section{-webkit-box-sizing:border-box;background-color:var(--sapToolbar_Background);border:0;border-bottom:none;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:1rem .5rem 1.5rem}.fd-section:after,.fd-section:before{box-sizing:inherit;font-size:inherit}.fd-section:after{clear:both;content:\"\";display:table}@media (min-width: 600px){.fd-section{padding-left:2rem;padding-right:2rem}}@media (min-width: 1440px){.fd-section{padding-left:3rem;padding-right:3rem}}.fd-section--no-border,.fd-section:last-child{border-bottom:0}.fd-section--bleed,.fd-section--full-bleed{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-section--bleed:after,.fd-section--bleed:before,.fd-section--full-bleed:after,.fd-section--full-bleed:before{box-sizing:inherit;font-size:inherit}.fd-section--bleed .fd-section__footer,.fd-section--bleed .fd-section__header,.fd-section--full-bleed .fd-section__footer,.fd-section--full-bleed .fd-section__header{padding-left:.5rem;padding-right:.5rem}@media (min-width: 600px){.fd-section--bleed .fd-section__footer,.fd-section--bleed .fd-section__header,.fd-section--full-bleed .fd-section__footer,.fd-section--full-bleed .fd-section__header{padding-left:2rem;padding-right:2rem}}@media (min-width: 1440px){.fd-section--bleed .fd-section__footer,.fd-section--bleed .fd-section__header,.fd-section--full-bleed .fd-section__footer,.fd-section--full-bleed .fd-section__header{padding-left:3rem;padding-right:3rem}}.fd-section__header{-webkit-box-sizing:border-box;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0 0 1.5rem;min-height:1.5rem;padding:0}.fd-section__header:after,.fd-section__header:before{box-sizing:inherit;font-size:inherit}.fd-section__title{-webkit-box-sizing:border-box;-webkit-box-flex:1;-ms-flex:1;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapTitleColor);flex:1;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-size:var(--sapFontHeader2Size);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);line-height:2rem;margin:0;padding:0}.fd-section__title:after,.fd-section__title:before{box-sizing:inherit;font-size:inherit}.fd-section__actions{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0 0 0 auto;padding:0}.fd-section__actions:after,.fd-section__actions:before{box-sizing:inherit;font-size:inherit}.fd-section__footer{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;justify-content:center;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-section__footer:after,.fd-section__footer:before{box-sizing:inherit;font-size:inherit}/*!\n .fd-form-group(--inline)\n*/.fd-form-group{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-form-group:after,.fd-form-group:before{box-sizing:inherit;font-size:inherit}.fd-form-group--inline{-webkit-box-pack:start;-ms-flex-pack:start;-ms-flex-wrap:wrap;flex-direction:row;flex-wrap:wrap;justify-content:flex-start}.fd-form-group--inline,.fd-form-group__header{display:flex}.fd-form-group__header{-webkit-box-sizing:border-box;align-items:center;background-color:var(--sapGroup_TitleBackground);border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:2.75rem;line-height:var(--sapContent_LineHeight);margin:0;padding:0;width:100%}.fd-form-group__header:after,.fd-form-group__header:before{box-sizing:inherit;font-size:inherit}.fd-form-group__header[class*=-compact],.fd-form-group__header[class*=-condensed],[class*=-compact] .fd-form-group__header:not([class*=-cozy]),[class*=-condensed] .fd-form-group__header:not([class*=-cozy]){height:2rem}.fd-form-group__header-text{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapGroup_TitleTextColor);font-family:var(--sapFontFamily);font-family:var(--sapFontHeaderFamily);font-size:var(--sapFontSize);font-size:var(--sapFontHeader6Size);font-weight:400;font-weight:700;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;overflow:hidden;padding:0;text-overflow:ellipsis;white-space:nowrap}.fd-form-group__header-text:after,.fd-form-group__header-text:before{box-sizing:inherit;font-size:inherit}/*!\n * Fundamental Library Styles v0.28.3\n * Copyright (c) 2023 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *//*!\n.fd-form-header\n .fd-form-header__text\n*/.fd-form-header{-webkit-box-sizing:border-box;-webkit-box-align:center;-ms-flex-align:center;-webkit-box-shadow:0 var(--fdFormHeader_Border_Width) 0 var(--sapGroup_TitleBorderColor);align-items:center;background-color:var(--sapGroup_TitleBackground);border:0;box-shadow:0 var(--fdFormHeader_Border_Width) 0 var(--sapGroup_TitleBorderColor);box-sizing:border-box;color:var(--sapTextColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:2.75rem;line-height:var(--sapContent_LineHeight);margin:0;padding:0 1rem;width:100%}.fd-form-header:after,.fd-form-header:before{box-sizing:inherit;font-size:inherit}.fd-form-header__text{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapGroup_TitleTextColor);font-family:var(--sapFontFamily);font-family:var(--sapFontHeaderFamily);font-size:var(--sapFontSize);font-size:var(--sapFontHeader4Size);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;overflow:hidden;padding:0;text-overflow:ellipsis;white-space:nowrap}.fd-form-header__text:after,.fd-form-header__text:before{box-sizing:inherit;font-size:inherit}fdp-form-group{display:block}.fd-form-label{overflow:hidden}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.InlineHelpDirective, selector: "[fd-inline-help]:not([fd-inline-help-template]), [fd-inline-help-template]:not([fd-inline-help])", inputs: ["triggers", "noArrow", "closeOnEscapeKey", "closeOnOutsideClick", "fd-inline-help"] }, { kind: "component", type: i5.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }, { kind: "component", type: i6.LinkComponent, selector: "[fdLink], [fd-link]", inputs: ["class", "emphasized", "disabled", "inverted", "subtle", "undecorated"] }, { kind: "component", type: i7.FormGroupHeaderComponent, selector: "[fdp-form-group-header]", inputs: ["fieldGroup"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: i8.FieldGroupRowValuePipe, name: "fieldGroupRowValue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
492
470
  }
493
471
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: FormGroupComponent, decorators: [{
494
472
  type: Component,
@@ -510,8 +488,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
510
488
  type: Input
511
489
  }], hint: [{
512
490
  type: Input
513
- }], labelLayout: [{
514
- type: Input
515
491
  }], inlineColumnLayout: [{
516
492
  type: Input
517
493
  }], labelColumnLayout: [{
@@ -555,4 +531,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
555
531
  type: ContentChildren,
556
532
  args: [FORM_GROUP_CHILD_FIELD_TOKEN, { descendants: true }]
557
533
  }] } });
558
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvZm9ybS9mb3JtLWdyb3VwL2Zvcm0tZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vZm9ybS1ncm91cC9mb3JtLWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUNILE9BQU8sRUFHSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osZUFBZSxFQUNmLFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsU0FBUyxFQUlULFFBQVEsRUFDUixNQUFNLEVBRU4sU0FBUyxFQUVULFdBQVcsRUFDWCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBbUIsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RGLE9BQU8sRUFBZ0IscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTdDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RSxPQUFPLEVBSUgsa0JBQWtCLEVBTXJCLE1BQU0sa0NBQWtDLENBQUM7QUFFMUMsT0FBTyxFQUdILFVBQVUsRUFDVixRQUFRLEVBQ1IsWUFBWSxFQUNaLFlBQVksRUFDWixpQkFBaUIsRUFDakIsd0JBQXdCLEVBQzNCLE1B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SUFBSTtzQkFESCxLQUFLO2dCQVVGLFdBQVc7c0JBRGQsS0FBSztnQkFzQkYsa0JBQWtCO3NCQURyQixLQUFLO2dCQW9CTixpQkFBaUI7c0JBRGhCLEtBQUs7Z0JBT04saUJBQWlCO3NCQURoQixLQUFLO2dCQU9OLGVBQWU7c0JBRGQsS0FBSztnQkFLTixTQUFTO3NCQURSLEtBQUs7Z0JBS04sUUFBUTtzQkFEUCxLQUFLO2dCQUtOLFNBQVM7c0JBRFIsS0FBSztnQkFLTixhQUFhO3NCQURaLEtBQUs7Z0JBT04sTUFBTTtzQkFETCxLQUFLO2dCQVlOLFVBQVU7c0JBRFQsS0FBSztnQkFLRixPQUFPO3NCQURWLEtBQUs7Z0JBYU4sWUFBWTtzQkFEWCxLQUFLO2dCQUtOLGFBQWE7c0JBRFosS0FBSzs7UUFPTiwrREFBK0Q7UUFDL0QsUUFBUTtzQkFGUCxNQUFNO2dCQVFQLFVBQVU7c0JBRFQsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO2dCQUt6QyxXQUFXO3NCQURWLFlBQVk7dUJBQUMsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFLOUIsZ0JBQWdCO3NCQUR2QixlQUFlO3VCQUFDLHVCQUF1QjtnQkFzQjlCLGlCQUFpQjtzQkFEMUIsZUFBZTt1QkFBQyw0QkFBbUMsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBGLiBLb2xhclxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICpcbiAqXG4gKi9cbmltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIGlzRGV2TW9kZSxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgUHJvdmlkZXIsXG4gICAgUXVlcnlMaXN0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBDb250cm9sQ29udGFpbmVyLCBGb3JtR3JvdXAsIE5nRm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IHJlc2l6ZU9ic2VydmFibGUsIHdhcm5PbmNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHtcbiAgICBDb2x1bW5MYXlvdXQsXG4gICAgRmllbGRIaW50T3B0aW9ucyxcbiAgICBGb3JtRmllbGRHcm91cCxcbiAgICBGb3JtR3JvdXBDb250YWluZXIsXG4gICAgSGludElucHV0LFxuICAgIEhpbnRPcHRpb25zLFxuICAgIEhpbnRQbGFjZW1lbnQsXG4gICAgTGFiZWxMYXlvdXQsXG4gICAgUGxhdGZvcm1Gb3JtRmllbGRcbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9zaGFyZWQnO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQge1xuICAgIEZpZWxkLFxuICAgIEZpZWxkQ29sdW1uLFxuICAgIEZpZWxkR3JvdXAsXG4gICAgZ2V0RmllbGQsXG4gICAgZ2V0Rm9ybUZpZWxkLFxuICAgIGlzRmllbGRDaGlsZCxcbiAgICBpc0ZpZWxkR3JvdXBDaGlsZCxcbiAgICBpc0ZpZWxkR3JvdXBXcmFwcGVyQ2hpbGRcbn0gZnJvbSAnLi4vZm9ybS1oZWxwZXJzJztcbmltcG9ydCB7IEZvcm1GaWVsZEVycm9yRGlyZWN0aXZlIH0gZnJvbSAnLi9mb3JtLWZpZWxkLWVycm9yL2Zvcm0tZmllbGQtZXJyb3IuZGlyZWN0aXZlJztcbmltcG9ydCB7IEZvcm1GaWVsZENvbXBvbmVudCB9IGZyb20gJy4vZm9ybS1maWVsZC9mb3JtLWZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICAgIERlZmF1bHRHYXBMYXlvdXQsXG4gICAgRGVmYXVsdEhvcml6b250YWxGaWVsZExheW91dCxcbiAgICBEZWZhdWx0SG9yaXpvbnRhbExhYmVsTGF5b3V0LFxuICAgIERlZmF1bHRWZXJ0aWNhbEZpZWxkTGF5b3V0LFxuICAgIERlZmF1bHRWZXJ0aWNhbExhYmVsTGF5b3V0LFxuICAgIEZPUk1fR1JPVVBfQ0hJTERfRklFTERfVE9LRU5cbn0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgZ2VuZXJhdGVDb2x1bW5DbGFzcywgbm9ybWFsaXplQ29sdW1uTGF5b3V0IH0gZnJvbSAnLi9oZWxwZXJzJztcbmltcG9ydCB7IEZvcm1GaWVsZExheW91dFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2Zvcm0tZmllbGQtbGF5b3V0LnNlcnZpY2UnO1xuaW1wb3J0IHsgRkRQX0ZPUk1fRklFTERfSElOVF9PUFRJT05TX0RFRkFVTFQgfSBmcm9tICcuL2ZkcC1mb3JtLnRva2Vucyc7XG5pbXBvcnQgeyBjb250ZW50RGVuc2l0eU9ic2VydmVyUHJvdmlkZXJzLCBDb250ZW50RGVuc2l0eU9ic2VydmVyIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2NvbnRlbnQtZGVuc2l0eSc7XG5pbXBvcnQgeyBGb3JtRmllbGQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay9mb3Jtcyc7XG5cbmV4cG9ydCBjb25zdCBmb3JtR3JvdXBQcm92aWRlcjogUHJvdmlkZXIgPSB7XG4gICAgcHJvdmlkZTogRm9ybUdyb3VwQ29udGFpbmVyLFxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZvcm1Hcm91cENvbXBvbmVudClcbn07XG5cbnR5cGUgRm9ybUdyb3VwRmllbGQgPSAoRm9ybUZpZWxkIHwgRm9ybUZpZWxkR3JvdXApICYgeyBoaW50T3B0aW9ucz86IEhpbnRPcHRpb25zIH07XG5cbmxldCBmb3JtR3JvdXBVbmlxdWVJZCA9IDA7XG5cbi8qKlxuICpcbiAqIEZvcm1Hcm91cCByZXByZXNlbnQgaGlnaCBvcmRlciBjb250YWluZXIgYWdncmVnYXRpbmcgRm9ybUZpZWxkcyBhbmQgYWJpbGl0eSB0byBkaXN0cmlidXRlIHRoZXNlXG4gKiBmaWVsZHMgaW50byBjb2x1bW5zLiBJdCBtYWlubHkgaGlkZXMgaW1wbGVtZW50YXRpb24gZGV0YWlscyB0aGF0IHdlIG5lZWQgdG8gZGVhbCB3aXRoIGV2ZXJ5XG4gKiB0aW1lIHdlIGFyZSBidWlsZGluZyBhIGZvcm0uIFdlIGhhdmUgaW5wdXQgZmllbGRzICwgZXJyb3IgbWFuYWdlbWVudHMsIGRpZmZlcmVudCBzdGF0ZXMsXG4gKiBoaW50cyBhbmQgbWFueSBtb3JlLlxuICpcbiAqIFdlbGwgYmVoYXZlZCBmb3JtIHRoYXQgaGFzIGluZm9ybWF0aW9uIHNpZGUgYnkgc2lkZSBpbiBtdWx0aXBsZVxuICogY29sdW1ucyBuZWVkcyB0byBhbHNvIGtub3cgaG93IHRvIG1lcmdlIHByb3Blcmx5LlxuICpcbiAqIEp1c3QgdG8gZ2V0IHRoZSBpZGVhIGFib3V0IHRoZSBzdHJ1Y3R1cmUgd2l0aG91dCBhY3R1YWwgaW5wdXQgY29tcG9uZW50cyBpbnNpZGVcbiAqXG4gKiBgYGBodG1sXG4gKiA8ZmRwLWZvcm0tZ3JvdXAgW2hpbnRQbGFjZW1lbnRdPVwiJ2lubGluZSdcIiBjb2x1bW5MYXlvdXQ9XCJYTDItTDItTTEtUzFcIj5cbiAqICAgIDxmZHAtZm9ybS1maWVsZCBbaWRdPVwiJ0ZpZWxkIEEnXCIgW3JhbmtdPVwiMTBcIiBjb2x1bW49XCIxXCI+XG4gKiAgICA8L2ZkcC1mb3JtLWZpZWxkPlxuICpcbiAqICAgIDxmZHAtZm9ybS1maWVsZCBbaWRdPVwiJ0ZpZWxkIEInXCIgW3JhbmtdPVwiMzBcIiBjb2x1bW49XCIxXCI+XG4gKiAgICA8L2ZkcC1mb3JtLWZpZWxkPlxuICpcbiAqICAgIDxmZHAtZm9ybS1maWVsZCBbaWRdPVwiJ0ZpZWxkIEMnXCIgIFtyYW5rXT1cIjIwXCIgY29sdW1uPVwiMVwiPlxuICogICAgPC9mZHAtZm9ybS1maWVsZD5cbiAqXG4gKiAgICA8ZmRwLWZvcm0tZmllbGQgW2lkXT1cIkZpZWxkIERcIiAgW3JhbmtdPVwiMjBcIiBjb2x1bW49XCIyXCI+XG4gKiAgICA8L2ZkcC1mb3JtLWZpZWxkPlxuICpcbiAqXG4gKiAgICA8ZmRwLWZvcm0tZmllbGQgW2lkXT1cIidGaWVsZCBFJ1wiIFtyYW5rXT1cIjMwXCIgY29sdW1uPVwiMlwiPlxuICogICAgPC9mZHAtZm9ybS1maWVsZD5cbiAqIDwvZmRwLWZvcm0tZ3JvdXA+XG5cbiAqXG4gKiBgYGBgXG4gKlxuICpcbiAqIFdoaWNoIGNhbiBiZSB0cmFuc2xhdGVkIGxpa2UgdGhpc1xuICogW0ZpZWxkIEFdIC0gRmlyc3QgY29sdW1uLCByYW5rIDEwXG4gKiBbRmllbGQgQl0gLSBGaXJzdCBjb2x1bW4sIHJhbmsgMzBcbiAqIFtGaWVsZCBDXSAtIEZpcnN0IGNvbHVtbiwgcmFuayAyMFxuICogW0ZpZWxkIERdIC0gU2Vjb25kIGNvbHVtbiwgcmFuayAyMFxuICogW0ZpZWxkIEVdIC0gU2Vjb25kIGNvbHVtbiwgcmFuayAzMFxuICpcbiAqIFdoYXQgd2UgZXhwZWN0IHRoYXQgaXQgY3JlYXRlcyBmb2xsb3dpbmcgZm9ybSB3aXRoIHR3byBjb2x1bW4gbGF5b3V0OlxuICogW0ZpZWxkIEFdICAgICAgW0ZpZWxkIERdXG4gKiBbRmllbGQgQ10gICAgICBbRmllbGQgRV1cbiAqIFtGaWVsZCBCXVxuICpcbiAqIFlvdSBjYW4gc2VlIGFsbCBpcyBzb3J0ZWQgYWNjb3JkaW5nbHkgYnkgcmFuayAoQyBnb2VzIGJlZm9yZSBCKS5cbiAqXG4gKiBXaGVuIHlvdSBtb3ZlIGludG8gc21hbGxlciBkZXZpY2UgYW5kIGFsbCBpcyBtZXJnZWQgaW50byBvbmUgY29sdW1ucyB0aGUgbmFpdmUgc29sdXRpb24gd291bGQgYmU6XG4gKlxuICogW0ZpZWxkIEFdXG4gKiBbRmllbGQgQ11cbiAqIFtGaWVsZCBCXVxuICogW0ZpZWxkIERdXG4gKiBbRmllbGQgRV1cbiAqXG4gKiBUaGUgZmllbGRzIG5lZWRzIHRvIHJlc3RydWN0dXJlIGFjY29yZGluZyB0byB0aGVpciBvcmlnaW5hbCBwb3NpdGlvbmluZy4gV2hlbiBGaWVsZCBEIHdhcyBvbiB0aGVcbiAqIHRvcCB3aHkgd2Ugc2hvdWxkIG1vdmUgaXQgdG8gdGhlIGJvdHRvbT8gVGhlIG1vcmUgY29ycmVjdCBzb2x1dGlvbiBzaG91bGQgYmUgZm9sbG93aW5nLlxuICpcbiAqIFtGaWVsZCBBXVxuICogW0ZpZWxkIERdXG4gKiBbRmllbGQgQ11cbiAqIFtGaWVsZCBFXVxuICogW0ZpZWxkIEJdXG4gKlxuICogRmllbGRzIG5pY2VseSBtZXJnZSB0b2dldGhlci4gdGhleSBkb24ndCB3cmFwLlxuICpcbiAqXG4gKiBCZXNpZGVzIHRoaXMgbGF5b3V0IHN1cHBvcnQgaXQgYWxzbyB3cmFwcyBmb3JtIGZ1bmN0aW9uYWxpdHkgYW5kIGl0IGNhbiB3b3JrIHdpdGggRm9ybUdyb3VwLlxuICogWW91IGNhbiBhbHNvIGRlY2lkZSBpZiB5b3Ugd2FudCB5b3VyIGZvcm0gd2l0aCA8Zm9ybT4gZWxlbWVudCBvciB3aXRob3V0IGl0LlxuICpcbiAqXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRwLWZvcm0tZ3JvdXAnLFxuICAgIHRlbXBsYXRlVXJsOiAnZm9ybS1ncm91cC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZm9ybS1ncm91cC5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJvdmlkZXJzOiBbZm9ybUdyb3VwUHJvdmlkZXIsIEZvcm1GaWVsZExheW91dFNlcnZpY2UsIGNvbnRlbnREZW5zaXR5T2JzZXJ2ZXJQcm92aWRlcnMoKV1cbn0pXG5leHBvcnQgY2xhc3MgRm9ybUdyb3VwQ29tcG9uZW50XG4gICAgaW1wbGVtZW50cyBGb3JtR3JvdXBDb250YWluZXIsIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXNcbntcbiAgICAvKiogSWQgZm9yIHRoZSBmb3JtIGdyb3VwIGVsZW1lbnQgKi9cbiAgICBASW5wdXQoKVxuICAgIGlkID0gYGZkcC1mb3JtLWdyb3VwLSR7Zm9ybUdyb3VwVW5pcXVlSWQrK31gO1xuXG4gICAgLyoqIE5hbWUgcHJvcGVydHkgdG8gYmUgc2V0IG9uIGEgZm9ybS4gV2lsbCBiZSB1c2VkIGlmIGB1c2VGb3JtYCBpcyBzZXQgdG8gdHJ1ZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgbmFtZTogc3RyaW5nO1xuXG4gICAgLyoqIEluZGljYXRlcyBpZiBncm91cCBpcyBlZGl0YWJsZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgZWRpdGFibGUgPSB0cnVlO1xuXG4gICAgLyoqIEluZGljYXRlcyB3aGVuIGxhYmVscyBzaG91bGQgbm90IGJlIGRpc3BsYXllZCAqL1xuICAgIEBJbnB1dCgpXG4gICAgbm9MYWJlbExheW91dCA9IGZhbHNlO1xuXG4gICAgLyoqIFVzZXIncyBjdXN0b20gY2xhc3NlcyAqL1xuICAgIEBJbnB1dCgpXG4gICAgY2xhc3M6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEZvcm0gZ3JvdXAgaGludCBvcHRpb25zXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBoaW50OiBIaW50SW5wdXQ7XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqIFVzZSBsYWJlbENvbHVtbkxheW91dCwgZmllbGRDb2x1bW5MYXlvdXQgYW5kIGdhcENvbHVtbkxheW91dCBwcm9wZXJ0aWVzLlxuICAgICAqXG4gICAgICogRGVmaW5lcyBmb3JtIGZpZWxkIGxhYmVsIHBsYWNlbWVudC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBsYWJlbExheW91dCh2YWx1ZTogTGFiZWxMYXlvdXQpIHtcbiAgICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XG4gICAgICAgICAgICB3YXJuT25jZShcbiAgICAgICAgICAgICAgICAnTGFiZWxMYXlvdXQgaW5wdXQgcHJvcGVydHkgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBsYWJlbENvbHVtbkxheW91dCwgZmllbGRDb2x1bW5MYXlvdXQgYW5kIGdhcENvbHVtbkxheW91dCBwcm9wZXJ0aWVzIGluc3RlYWQnXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2xhYmVsTGF5b3V0ID0gdmFsdWU7XG5cbiAgICAgICAgdGhpcy5sYWJlbENvbHVtbkxheW91dCA9XG4gICAgICAgICAgICB0aGlzLl9sYWJlbExheW91dCA9PT0gJ2hvcml6b250YWwnID8gRGVmYXVsdEhvcml6b250YWxMYWJlbExheW91dCA6IERlZmF1bHRWZXJ0aWNhbExhYmVsTGF5b3V0O1xuICAgICAgICB0aGlzLmZpZWxkQ29sdW1uTGF5b3V0ID1cbiAgICAgICAgICAgIHRoaXMuX2xhYmVsTGF5b3V0ID09PSAnaG9yaXpvbnRhbCcgPyBEZWZhdWx0SG9yaXpvbnRhbEZpZWxkTGF5b3V0IDogRGVmYXVsdFZlcnRpY2FsRmllbGRMYXlvdXQ7XG4gICAgfVxuICAgIGdldCBsYWJlbExheW91dCgpOiBMYWJlbExheW91dCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9sYWJlbExheW91dDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIGNvbHVtbiBsYXlvdXQgZm9yIGlubGluZSBpdGVtcy5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBpbmxpbmVDb2x1bW5MYXlvdXQodmFsdWU6IENvbHVtbkxheW91dCkge1xuICAgICAgICB0aGlzLl9pbmxpbmVDb2x1bW5MYXlvdXQgPSBub3JtYWxpemVDb2x1bW5MYXlvdXQodmFsdWUpO1xuICAgICAgICB0aGlzLl91cGRhdGVJbmxpbmVDb2x1bW5MYXlvdXQoKTtcbiAgICB9XG5cbiAgICBnZXQgaW5saW5lQ29sdW1uTGF5b3V0KCk6IENvbHVtbkxheW91dCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbmxpbmVDb2x1bW5MYXlvdXQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfaW5saW5lQ29sdW1uTGF5b3V0Q2xhc3M6IHN0cmluZztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfaW5saW5lQ29sdW1uTGF5b3V0ID0gRGVmYXVsdFZlcnRpY2FsRmllbGRMYXlvdXQ7XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIGxhYmVsJ3MgY29sdW1uIGxheW91dC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGxhYmVsQ29sdW1uTGF5b3V0OiBDb2x1bW5MYXlvdXQgPSBEZWZhdWx0SG9yaXpvbnRhbExhYmVsTGF5b3V0O1xuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyBmaWVsZCdzIGNvbHVtbiBsYXlvdXQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBmaWVsZENvbHVtbkxheW91dDogQ29sdW1uTGF5b3V0ID0gRGVmYXVsdEhvcml6b250YWxGaWVsZExheW91dDtcblxuICAgIC8qKlxuICAgICAqIERlZmluZXMgZ2FwIGNvbHVtbiBsYXlvdXQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBnYXBDb2x1bW5MYXlvdXQ6IENvbHVtbkxheW91dCA9IERlZmF1bHRHYXBMYXlvdXQ7XG5cbiAgICAvKiogQW5ndWxhciBGb3JtR3JvdXAgd2hlcmUgYWxsIHVuZGVybHlpbmcgY29udHJvbHMgd2lsbCBiZSBhdHRhY2hlZCB0by4gKi9cbiAgICBASW5wdXQoKVxuICAgIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG4gICAgLyoqIFRoaXMgaXMgcmF0aGVyIHNpbXBsZSBmb3Igbm93IGp1c3QgdG8gaGF2ZSBzb21lIFNlY3Rpb24gVGl0bGUgaWYgbmVlZGVkICovXG4gICAgQElucHV0KClcbiAgICB0b3BUaXRsZTogc3RyaW5nO1xuXG4gICAgLyoqIEZvcm0ncyBtYWluIHRpdGxlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgbWFpblRpdGxlOiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIFdoZXRoZXIgdG8gaGlkZSBmb3JtJ3MgbWFpbiB0aXRsZS4gRGVmYXVsdCBpcyBmYWxzZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIGhpZGVNYWluVEl0bGUgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIENvbnZlbmllbnQgd2F5IHRvIGluaXRpYWxpemUgaW50ZXJuYWwgRm9ybUNvbnRyb2xzIGZyb20gb2JqZWN0XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBvYmplY3Q6IGFueTtcblxuICAgIC8qKlxuICAgICAqIFRyYW5zbGF0aW9ucyB0ZW1wbGF0ZSByZWZlcmVuY2UuXG4gICAgICpcbiAgICAgKiBUaGlzIGlzIGp1c3QgaGVyZSB0byBzdXBwb3J0IHNldmVyYWwgd2F5cyB0byBwYXNzIHRyYW5zbGF0aW9uLlxuICAgICAqXG4gICAgICogT25lIHdheSBpcyB0byBwcm92aWRlIG5nLXRlbXBsYXRlICNpMThuIGluc2lkZSB0aGUgZm9ybS1ncm91cCB0YWcgYW5kIHRoZSBvdGhlciBvbmVcbiAgICAgKiBzb21lIGdsb2JhbCBvbmUgYXMgYmluZGluZ1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgaTE4U3RyaW5nczogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKiBXaGV0aGVyIHRvIHdyYXAgYWxsIHRoZSBwcm92aWRlZCBjb250ZW50IGluIGEgYDxmb3JtPmAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB1c2VGb3JtKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5fdXNlRm9ybSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIGdldCB1c2VGb3JtKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdXNlRm9ybTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTcGVjaWZ5IHRoZSBjb2x1bW4gbGF5b3V0IGluIHRoZSBmb3JtYXQgYFhMbi1Mbi1Nbi1TbmAgd2hlcmUgbiBpcyB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgYW5kIGNhbiBiZSBkaWZmZXJlbnQgZm9yIGVhY2ggc2l6ZS5cbiAgICAgKiBlZzogWEwyLUwyLU0yLVMxIHdvdWxkIGNyZWF0ZSAyLWNvbHVtbiBsYXlvdXRzIGZvciBYTCwgTCwgYW5kIE0gc2l6ZXMgYW5kIHNpbmdsZS1jb2x1bW4gbGF5b3V0IGZvciBTIHNpemUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBjb2x1bW5MYXlvdXQ6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKiogV2hldGhlciBhbGwgZm9ybSBpdGVtcyBzaG91bGQgaGF2ZSBpZGVudGljYWwgbGF5b3V0IHByb3ZpZGVkIGZvciBmb3JtIGdyb3VwICovXG4gICAgQElucHV0KClcbiAgICB1bmlmaWVkTGF5b3V0ID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIG9uU3VibWl0IGV2ZW50XG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtb24tcHJlZml4XG4gICAgb25TdWJtaXQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICAvKipcbiAgICAgKiBOYXRpdmUgZm9ybSBlbGVtZW50LiBBdmFpbGFibGUgd2l0aCBgW3VzZUZvcm1dPVwidHJ1ZVwiYCBpbnB1dCBwcm9wZXJ0eS5cbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKCduYXRpdmVGb3JtJywgeyByZWFkOiBOZ0Zvcm0gfSlcbiAgICBuYXRpdmVGb3JtOiBOZ0Zvcm07XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ2kxOG4nLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIGkxOFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkcmVuKEZvcm1GaWVsZEVycm9yRGlyZWN0aXZlKVxuICAgIHByaXZhdGUgX2Vycm9yRGlyZWN0aXZlczogUXVlcnlMaXN0PEZvcm1GaWVsZEVycm9yRGlyZWN0aXZlPjtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKlxuICAgICAqIEtlZXAgdHJhY2sgb2YgYWRkZWQgZm9ybSBmaWVsZHMgY2hpbGRyZW4gaW4gY29ycmVjdCBvcmRlci5cbiAgICAgKlxuICAgICAqIFNpbmNlIFwiZGVzY2VuZGFudHM6IHRydWVcIiBpbmNsdWRlcyBmaWVsZHMgb2YgbmVzdGVkIGZvcm0gZ3JvdXAgYXMgd2VsbC5cbiAgICAgKlxuICAgICAqIFdlIGFyZSBmb3JjZWQgdG8gdXNlIFwiQ29udGVudENoaWxkcmVuXCIgc28gRm9ybUZpZWxkIGNoaWxkcmVuIGNhbiBiZSB1c2VkXG4gICAgICogd2l0aCBvcHRpb25hbCByZW5kZXJpbmcgKG5nSWYpIHNhZmVseS5cbiAgICAgKlxuICAgICAqIEZvcm0gZmllbGRzIHdpdGhpbiB0aGUgZm9ybUdyb3VwIGlzIGRyaXZlbiBieSBtdWx0aS16b25lIGxheW91dCBzdXBwb3J0LiBXZSBuZWVkIHRvIGJlXG4gICAgICogYWJsZSB0byBhZGQgbnVtYmVyIG9mIEZvcm1GaWVsZHMsIGFuZCBiYXNlZCBvbiBnaXZlbiBjb25maWd1cmF0aW9uICh6b25lLCByYW5rKSByZW5kZXIgdGhlbVxuICAgICAqIHVuZGVyIGNvcnJlY3Qgem9uZSAgKHRvcCwgYm90dG9tLCBsZWZ0LCByaWdodCkuXG4gICAgICpcbiAgICAgKiBXZSB3YW50IHRvIG1ha2Ugc3VyZSB0aGF0IHdlIGRvbid0IGluY2x1ZGUgY29udGVudCBhbmQgdGhlbiB0cnkgdG8gc29tZWhvdyBwb3NpdGlvbiBpdCBhcyBpdFxuICAgICAqIHdvdWxkIGxlYWQgdG8gdGhlIFVJIHdoZXJlIHVzZXIgY2FuIHNlZSBlbGVtZW50aW5nIG1vdmluZyBhcyB5b3UgdHJ5IHRvIHBvc2l0aW9uIGl0LlxuICAgICAqXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihGT1JNX0dST1VQX0NISUxEX0ZJRUxEX1RPS0VOIGFzIGFueSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIHByb3RlY3RlZCBmb3JtR3JvdXBDaGlsZHJlbjogUXVlcnlMaXN0PEZvcm1Hcm91cEZpZWxkPjtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKlxuICAgICAqIExpc3Qgb2YgZGlyZWN0IEZkcEZvcm1Hcm91cCdzIGNoaWxkcmVuLlxuICAgICAqXG4gICAgICogU2luY2UgXCJmb3JtR3JvdXBDaGlsZHJlblwiIHVzZXMgXCJ7IGRlc2NlbmRhbnRzOiB0cnVlIH1cIiBvcHRpb24gdGhhdCBtZWFuc1xuICAgICAqIFwiZm9ybUdyb3VwQ2hpbGRyZW5cIiB3aWxsIGtlZXAgdHJhY2sgb2YgbmVzdGVkIEZkcEZvcm1Hcm91cCBmaWVsZHMgYXMgd2VsbC5cbiAgICAgKiBUaGlzIGxpc3QgcmVsaWVzIG9uIHRoZSBpbmplY3Rpb24gbWVjaGFuaXNtIHNvIG5lc3RlZCBGZHBGb3JtR3JvdXAncyBmaWVsZHMvZmllbGRHcm91cHNcbiAgICAgKiB3aWxsIGJlIG9taXR0ZWRcbiAgICAgKi9cbiAgICBwcml2YXRlIF9mb3JtR3JvdXBEaXJlY3RDaGlsZHJlbjogQXJyYXk8Rm9ybUdyb3VwRmllbGQ+ID0gW107XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHhsQ29sdW1uc051bWJlcjogbnVtYmVyO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbGdDb2x1bW5zTnVtYmVyOiBudW1iZXI7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBtZENvbHVtbnNOdW1iZXI6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBVc2VyIHJlc3BvbnNpdmUgbGF5b3V0XG4gICAgICovXG4gICAgeGxDb2w6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBQYWNrZWQgZmllbGRzIHdoaWNoIHNob3VsZCBiZSByZW5kZXJlZFxuICAgICAqL1xuICAgIGZvcm1Sb3dzOiB7IFtrZXk6IG51bWJlcl06IEZpZWxkQ29sdW1uIHwgRmllbGRHcm91cCB9ID0ge307XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9oaW50T3B0aW9uczogSGludE9wdGlvbnM7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3VzZUZvcm0gPSBmYWxzZTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2hpbnRQbGFjZW1lbnQ6IEhpbnRQbGFjZW1lbnQgPSAncmlnaHQnO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9sYWJlbExheW91dDogTGFiZWxMYXlvdXQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBfZGVzdHJveWVkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX2NkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIGZvcm1Db250YWluZXI6IENvbnRyb2xDb250YWluZXIsXG4gICAgICAgIHJlYWRvbmx5IGNvbnRlbnREZW5zaXR5T2JzZXJ2ZXI6IENvbnRlbnREZW5zaXR5T2JzZXJ2ZXIsXG4gICAgICAgIEBJbmplY3QoRkRQX0ZPUk1fRklFTERfSElOVF9PUFRJT05TX0RFRkFVTFQpIHByaXZhdGUgX2RlZmF1bHRIaW50T3B0aW9uczogRmllbGRIaW50T3B0aW9uc1xuICAgICkge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cCA9IDxGb3JtR3JvdXA+KHRoaXMuZm9ybUNvbnRhaW5lciA/IHRoaXMuZm9ybUNvbnRhaW5lci5jb250cm9sIDogbmV3IEZvcm1Hcm91cCh7fSkpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICB0aGlzLmJ1aWxkQ29tcG9uZW50Q3NzQ2xhc3MoKTtcbiAgICAgICAgaWYgKGNoYW5nZXMuaGludCkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmhpbnQgPT09ICdzdHJpbmcnIHx8IHRoaXMuaGludCBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5faGludE9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuX2RlZmF1bHRIaW50T3B0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogdGhpcy5oaW50XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5faGludE9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuX2RlZmF1bHRIaW50T3B0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5oaW50XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5mb3JtR3JvdXApIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7fSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5idWlsZENvbXBvbmVudENzc0NsYXNzKCk7XG4gICAgICAgIHRoaXMuX3VwZGF0ZUlubGluZUNvbHVtbkxheW91dCgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmkxOFN0cmluZ3MgPSB0aGlzLmkxOFN0cmluZ3MgPyB0aGlzLmkxOFN0cmluZ3MgOiB0aGlzLmkxOFRlbXBsYXRlO1xuXG4gICAgICAgIHRoaXMuX3NldFVzZXJMYXlvdXQoKTtcbiAgICAgICAgdGhpcy5fdXBkYXRlRmllbGRCeUNvbHVtbigpO1xuICAgICAgICB0aGlzLl91cGRhdGVGb3JtRmllbGRzUHJvcGVydGllcygpO1xuICAgICAgICB0aGlzLl9saXN0ZW5Ub0Zvcm1Hcm91cENoaWxkcmVuKCk7XG4gICAgICAgIHRoaXMuX2xpc3RlbkZvcm1GaWVsZENvbHVtbkNoYW5nZSgpO1xuICAgICAgICB0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pMThTdHJpbmdzID0gdGhpcy5pMThTdHJpbmdzID8gdGhpcy5pMThTdHJpbmdzIDogdGhpcy5pMThUZW1wbGF0ZTtcblxuICAgICAgICB0aGlzLl9zZXRVc2VyTGF5b3V0KCk7XG4gICAgICAgIHRoaXMuX3VwZGF0ZUZpZWxkQnlDb2x1bW4oKTtcbiAgICAgICAgdGhpcy5fdXBkYXRlRm9ybUZpZWxkc1Byb3BlcnRpZXMoKTtcbiAgICAgICAgdGhpcy5fbGlzdGVuVG9Gb3JtR3JvdXBDaGlsZHJlbigpO1xuICAgICAgICB0aGlzLl9saXN0ZW5Gb3JtRmllbGRDb2x1bW5DaGFuZ2UoKTtcbiAgICAgICAgdGhpcy5fdHJhY2tGb3JtR3JvdXBSZXNpemUoKTtcbiAgICAgICAgdGhpcy5fY2QubWFya0ZvckNoZWNrKCk7XG5cbiAgICAgICAgdGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2Rlc3Ryb3llZC5uZXh0KCk7XG4gICAgICAgIHRoaXMuX2Rlc3Ryb3llZC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBhZGRGb3JtRmllbGQoZm9ybUZpZWxkOiBQbGF0Zm9ybUZvcm1GaWVsZCk6IHZvaWQge1xuICAgICAgICAvLyBJdCdzIG5lZWRlZCB0byBzZXQgZGVmYXVsdCBGb3JtRmllbGQgcHJvcGVydGllc1xuICAgICAgICAvLyBvbiBlYXJseSBzdGFnZSBvdGhlcndpc2UgdmFsaWRhdGlvbiBlcnJvcnNcbiAgICAgICAgLy8gd2lsbCBiZSB0aHJvd24gb24gRm9ybUZpZWxkIGxldmVsIChlLmcuIGkxOHN0cmluZyBhcmUgbm90IGRlZmluZWQpXG4gICAgICAgIHRoaXMuX3VwZGF0ZUZvcm1GaWVsZFByb3BlcnRpZXMoZm9ybUZpZWxkKTtcbiAgICAgICAgLy8ga2VlcCB0cmFjayBvZiBkaXJlY3RseSByZWdpc3RlcmVkIGNoaWxkcmVuXG4gICAgICAgIHRoaXMuX2FkZERpcmVjdEZvcm1Hcm91cENoaWxkKGZvcm1GaWVsZCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZW1vdmVGb3JtRmllbGQoZm9ybUZpZWxkOiBQbGF0Zm9ybUZvcm1GaWVsZCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9yZW1vdmVEaXJlY3RGb3JtR3JvdXBDaGlsZChmb3JtRmllbGQpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgYWRkRm9ybUZpZWxkR3JvdXAoZm9ybUZpZWxkR3JvdXA6IEZvcm1GaWVsZEdyb3VwKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2FkZERpcmVjdEZvcm1Hcm91cENoaWxkKGZvcm1GaWVsZEdyb3VwKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlbW92ZUZvcm1GaWVsZEdyb3VwKGZvcm1GaWVsZEdyb3VwOiBGb3JtRmllbGRHcm91cCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9yZW1vdmVEaXJlY3RGb3JtR3JvdXBDaGlsZChmb3JtRmllbGRHcm91cCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBhZGRGb3JtQ29udHJvbChuYW1lOiBzdHJpbmcsIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5zZXRDb250cm9sKG5hbWUsIGNvbnRyb2wpO1xuICAgICAgICAvLyBsZXR0aW5nIGNvbnRyb2wgdG8gc2V0IHZhbHVlLiB3aGVuIHByb3ZpZGVkIHZhbHVlIGlzICdmYWxzZScuXG4gICAgICAgIGlmICh0aGlzLm9iamVjdCkge1xuICAgICAgICAgICAgY29udHJvbC5wYXRjaFZhbHVlKHRoaXMub2JqZWN0W25hbWVdKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVtb3ZlRm9ybUNvbnRyb2wobmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLnJlbW92ZUNvbnRyb2wobmFtZSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICB0cmFja0J5Rm4oaW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBpbmRleDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHRyYWNrQnlGaWVsZE5hbWUoaW5kZXg6IG51bWJlciwgZmllbGQ6IEZpZWxkKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIGZpZWxkID8gZmllbGQubmFtZSA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGJ1aWxkQ29tcG9uZW50Q3NzQ2xhc3MoKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gWydmZC1jb250YWluZXInLCB0aGlzLmNsYXNzXTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiB1c2VkIGZvciB0ZW1wbGF0ZSBzaWRlIFR5cGUgY29ycmVjdGlvbiAqL1xuICAgICRmaWVsZEdyb3VwID0gKGY6IGFueSk6IEZpZWxkR3JvdXAgPT4gZjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGlzdGVuVG9Gb3JtR3JvdXBDaGlsZHJlbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXBDaGlsZHJlbi5jaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl91cGRhdGVGaWVsZEJ5Q29sdW1uKCk7XG4gICAgICAgICAgICB0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9saXN0ZW5Gb3JtRmllbGRDb2x1bW5DaGFuZ2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwQ2hpbGRyZW4uZm9yRWFjaCgoZmllbGQ6IEZvcm1Hcm91cEZpZWxkKSA9PlxuICAgICAgICAgICAgKDxGb3JtRmllbGRDb21wb25lbnQ+ZmllbGQpLm9uQ29sdW1uQ2hhbmdlPy5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95ZWQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZUZpZWxkQnlDb2x1bW4oKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEFzc2lnbiBhIGZpZWxkcyBvciBmaWVsZCBncm91cCB0byBzcGVjaWZpZWQgY29sdW1ucyB3aXRoIHJhbmsuXG4gICAgICogaWYgYGNvbHVtbkxheW91dFR5cGVgIGlzIGdpdmVuIGEgZmllbGRzIHdpdGhvdXQgY29sdW1uIHByb3BlcnR5IHdpbGwgc2V0IG9uIGxhc3QgY29sdW1uLlxuICAgICAqIE90aGVyd2lzZSB0aGUgZmllbGRzIHNldCAxIGNvbHVtbi5cbiAgICAgKi9cbiAgICBwcml2YXRlIF91cGRhdGVGaWVsZEJ5Q29sdW1uKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBmb3JtQ2hpbGRyZW4gPSB0aGlzLl9nZXRGb3JtR3JvdXBDaGlsZHJlbigpO1xuICAgICAgICBjb25zdCByb3dzOiB7IFtrZXk6IG51bWJlcl06IEZpZWxkQ29sdW1uIHwgRmllbGRHcm91cCB9ID0ge307XG4gICAgICAgIGxldCByb3dOdW1iZXIgPSAwO1xuICAgICAgICBsZXQgY29sdW1uczogRmllbGRDb2x1bW4gPSB7fTtcblxuICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIGZvcm1DaGlsZHJlbikge1xuICAgICAgICAgICAgaWYgKGlzRmllbGRDaGlsZChjaGlsZCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWVsZCA9IGdldEZpZWxkKGNoaWxkKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjb2x1bW5OdW1iZXIgPSB0aGlzLl92YWxpZGF0ZUZpZWxkQ29sdW1uKGNoaWxkLmNvbHVtbik7XG5cbiAgICAgICAgICAgICAgICBpZiAoIWNvbHVtbnNbY29sdW1uTnVtYmVyXSkge1xuICAgICAgICAgICAgICAgICAgICBjb2x1bW5zW2NvbHVtbk51bWJlcl0gPSBbXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29sdW1uc1tjb2x1bW5OdW1iZXJdLnB1c2goZmllbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoaXNGaWVsZEdyb3VwQ2hpbGQoY2hpbGQpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmllbGRHcm91cENvbHVtbnM6IEZpZWxkQ29sdW1uID0ge307XG4gICAgICAgICAgICAgICAgaWYgKE9iamVjdC5rZXlzKGNvbHVtbnMpLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICByb3dzW3Jvd051bWJlcl0gPSBjb2x1bW5zO1xuICAgICAgICAgICAgICAgICAgICBjb2x1bW5zID0ge307XG4gICAgICAgICAgICAgICAgICAgIHJvd051bWJlcisrO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwRmllbGRzID0gY2hpbGQuZmllbGRzLm1hcCgoZmllbGQpID0+IGdldEZpZWxkKGZpZWxkKSk7XG4gICAgICAgICAgICAgICAgZ3JvdXBGaWVsZHMuZm9yRWFjaCgoZ3JvdXBGaWVsZCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb2x1bW5OdW1iZXIgPSB0aGlzLl92YWxpZGF0ZUZpZWxkQ29sdW1uKGdyb3VwRmllbGQuY29sdW1uKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoIWZpZWxkR3JvdXBDb2x1bW5zW2NvbHVtbk51bWJlcl0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkR3JvdXBDb2x1bW5zW2NvbHVtbk51bWJlcl0gPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBmaWVsZEdyb3VwQ29sdW1uc1tjb2x1bW5OdW1iZXJdLnB1c2goZ3JvdXBGaWVsZCk7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICByb3dzW3Jvd051bWJlcl0gPSBuZXcgRmllbGRHcm91cChjaGlsZC5sYWJlbCwgZmllbGRHcm91cENvbHVtbnMsIGNoaWxkLmhpbnRPcHRpb25zKTtcbiAgICAgICAgICAgICAgICByb3dOdW1iZXIrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByb3dzW3Jvd051bWJlcl0gPSBjb2x1bW5zO1xuICAgICAgICB0aGlzLmZvcm1Sb3dzID0gcm93cztcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBWYWxpZGF0ZSBjb2x1bW4gbnVtYmVyICovXG4gICAgcHJpdmF0ZSBfdmFsaWRhdGVGaWVsZENvbHVtbihjb2x1bW5OdW1iZXI6IG51bWJlciB8IHVuZGVmaW5lZCk6IG51bWJlciB7XG4gICAgICAgIGlmICh0aGlzLmNvbHVtbkxheW91dCAmJiBjb2x1bW5OdW1iZXIpIHtcbiAgICAgICAgICAgIGlmIChpc05hTihjb2x1bW5OdW1iZXIpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnB1dCBhIHZhbGlkIGNvbHVtbiBudW1iZXInKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGNvbHVtbk51bWJlciA+IHRoaXMueGxDb2x1bW5zTnVtYmVyKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb2x1bW5zIGNhbm5vdCBiZSBtb3JlIHRoYW4gJHt0aGlzLnhsQ29sdW1uc051bWJlcn1gKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGNvbHVtbk51bWJlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLnhsQ29sdW1uc051bWJlcjtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3VwZGF0ZUZvcm1GaWVsZHNQcm9wZXJ0aWVzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9nZXRGb3JtR3JvdXBDaGlsZHJlbigpLmZvckVhY2goKGZvcm1GaWVsZDogRm9ybUdyb3VwRmllbGQpID0+IHtcbiAgICAgICAgICAgIGlmIChpc0ZpZWxkQ2hpbGQoZm9ybUZpZWxkKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZUZvcm1GaWVsZFByb3BlcnRpZXMoZm9ybUZpZWxkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGlzRmllbGRHcm91cENoaWxkKGZvcm1GaWVsZCkpIHtcbiAgICAgICAgICAgICAgICBmb3JtRmllbGQuZmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB0aGlzLl91cGRhdGVGb3JtRmllbGRQcm9wZXJ0aWVzKGdldEZvcm1GaWVsZChmaWVsZCkpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIFBhc3Mgc29tZSBnbG9iYWwgcHJvcGVydGllcyB0byBlYWNoIGZpZWxkLiBFdmVuIGZvcm1Hcm91cCBjbmEgYmUgaW5qZWN0IGRpcmVjdGx5IGluc2lkZSBmb3JtXG4gICAgICogZmllbGQgd2UgYXJlIHVzaW5nIGhlcmUgYSBzZXR0ZXIgbWV0aG9kIHRvIGluaXRpYWxpemUgdGhlXG4gICAgICpcbiAgICAgKi9cbiAgICBwcml2YXRlIF91cGRhdGVGb3JtRmllbGRQcm9wZXJ0aWVzKGZvcm1GaWVsZDogUGxhdGZvcm1Gb3JtRmllbGQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMudW5pZmllZExheW91dCkge1xuICAgICAgICAgICAgZm9ybUZpZWxkLmhpbnRQbGFjZW1lbnQgPSB0aGlzLl9oaW50UGxhY2VtZW50O1xuICAgICAgICAgICAgZm9ybUZpZWxkLmVkaXRhYmxlID0gdGhpcy5lZGl0YWJsZTtcbiAgICAgICAgICAgIGZvcm1GaWVsZC5ub0xhYmVsTGF5b3V0ID0gdGhpcy5ub0xhYmVsTGF5b3V0O1xuICAgICAgICB9XG4gICAgICAgIGZvcm1GaWVsZC5zZXREZWZhdWx0Q29sdW1uTGF5b3V0KCk7XG4gICAgICAgIGZvcm1GaWVsZC5pMThTdHJpbmdzID0gZm9ybUZpZWxkLmkxOFN0cmluZ3MgPyBmb3JtRmllbGQuaTE4U3RyaW5ncyA6IHRoaXMuaTE4U3RyaW5ncztcbiAgICAgICAgZm9ybUZpZWxkLnNldEVycm9yRGlyZWN0aXZlcyh0aGlzLl9lcnJvckRpcmVjdGl2ZXMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBpZiBgY29sdW1uTGF5b3V0VHlwZWAgaXMgZ2l2ZW4sIHNldCB0aG9zZSBjb2x1bW4gbGF5b3V0cyBhcHByb3ByaWF0ZWx5LiBPdGhlcndpc2UsIGEgbGF5b3V0IHdpbGwgc2V0IG9uIDEgY29sdW1uXG4gICAgICovXG4gICAgcHJpdmF0ZSBfc2V0VXNlckxheW91dCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuY29sdW1uTGF5b3V0KSB7XG4gICAgICAgICAgICB0aGlzLl9nZXRDb2x1bW5OdW1iZXJzKHRoaXMuY29sdW1uTGF5b3V0KTtcbiAgICAgICAgICAgIGlmIChpc05hTih0aGlzLnhsQ29sdW1uc051bWJlcikgfHwgaXNOYU4odGhpcy5sZ0NvbHVtbnNOdW1iZXIpIHx8IGlzTmFOKHRoaXMubWRDb2x1bW5zTnVtYmVyKSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW5wdXQgYSB2YWxpZCBudW1iZXIgZm9yIGNvbHVtbnMnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLnhsQ29sdW1uc051bWJlciA+IDEyIHx8IHRoaXMubGdDb2x1bW5zTnVtYmVyID4gMTIgfHwgdGhpcy5tZENvbHVtbnNOdW1iZXIgPiAxMikge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ29sdW1ucyBjYW5ub3QgYmUgbW9yZSB0aGFuIDEyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBsZ0NvbHVtbnMgPSAxMiAvIHRoaXMubGdDb2x1bW5zTnVtYmVyO1xuICAgICAgICAgICAgY29uc3QgbWRDb2x1bW5zID0gMTIgLyB0aGlzLm1kQ29sdW1uc051bWJlcjtcbiAgICAgICAgICAgIGNvbnN0IHhsQ29sdW1ucyA9IDEyIC8gdGhpcy54bENvbHVtbnNOdW1iZXI7XG5cbiAgICAgICAgICAgIC8vIGZvciBgbGdgIHNpbmdsZS1jb2x1bW4gbGF5b3V0LCBTdHlsZXMgZG9lcyBub3QgdXNlIGFueSBjbGFzcywgYW5kIHByb3ZpZGluZyBgZmQtY29sLWxnLS0xMmAgaGFzIHVuaW50ZW5kZWQgc2lkZS1lZmZlY3RzXG4gICAgICAgICAgICAvLyB0aGVyZWZvcmUsIHdlIHJlbW92ZSB0aGUgbGcgY2xhc3MgZm9yIHNpbmdsZS1jb2x1bW4gbGF5b3V0XG4gICAgICAgICAgICBpZiAobGdDb2x1bW5zID09PSAxMikge1xuICAgICAgICAgICAgICAgIHRoaXMueGxDb2wgPSBgZmQtY29sLXhsLS0ke3hsQ29sdW1uc30gZmQtY29sLW1kLS0ke21kQ29sdW1uc31gO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnhsQ29sID0gYGZkLWNvbC14bC0tJHt4bENvbHVtbnN9IGZkLWNvbC1tZC0tJHttZENvbHVtbnN9IGZkLWNvbC1sZy0tJHtsZ0NvbHVtbnN9YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMueGxDb2wgPSBgZmQtY29sLXhsLS0xMiBmZC1jb2wtbWQtLTEyIGZkLWNvbC1sZy0tMTJgO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nZXRDb2x1bW5OdW1iZXJzKGxheW91dDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IFt4bCwgbGcsIG1kXSA9IGxheW91dC5zcGxpdCgnLScpO1xuICAgICAgICB0aGlzLnhsQ29sdW1uc051bWJlciA9IHBhcnNlSW50KHhsLnNsaWNlKDIsIHhsLmxlbmd0aCksIDEwKTtcbiAgICAgICAgdGhpcy5sZ0NvbHVtbnNOdW1iZXIgPSBwYXJzZUludChsZy5zbGljZSgxLCBsZy5sZW5ndGgpLCAxMCk7XG4gICAgICAgIHRoaXMubWRDb2x1bW5zTnVtYmVyID0gcGFyc2VJbnQobWQuc2xpY2UoMSwgbWQubGVuZ3RoKSwgMTApO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfYWRkRGlyZWN0Rm9ybUdyb3VwQ2hpbGQoY2hpbGQ6IEZvcm1Hcm91cEZpZWxkKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9mb3JtR3JvdXBEaXJlY3RDaGlsZHJlbi5pbmRleE9mKGNoaWxkKSA+IC0xKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fZm9ybUdyb3VwRGlyZWN0Q2hpbGRyZW4ucHVzaChjaGlsZCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9yZW1vdmVEaXJlY3RGb3JtR3JvdXBDaGlsZChjaGlsZDogUGxhdGZvcm1Gb3JtRmllbGQgfCBGb3JtRmllbGRHcm91cCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9mb3JtR3JvdXBEaXJlY3RDaGlsZHJlbiA9IHRoaXMuX2Zvcm1Hcm91cERpcmVjdENoaWxkcmVuLmZpbHRlcigoX2NoaWxkKSA9PiBfY2hpbGQgIT09IGNoaWxkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogR2V0IGRpcmVjdCBmb3JtIGdyb3VwIGNoaWxkcmVuIGluIHRoZSBvcmlnaW5hbCBvcmRlclxuICAgICAqL1xuICAgIHByaXZhdGUgX2dldEZvcm1Hcm91cENoaWxkcmVuKCk6IEZvcm1Hcm91cEZpZWxkW10ge1xuICAgICAgICBpZiAoIXRoaXMuZm9ybUdyb3VwQ2hpbGRyZW4pIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjaGlsZHJlbiA9IHRoaXMuZm9ybUdyb3VwQ2hpbGRyZW5cbiAgICAgICAgICAgIC50b0FycmF5KClcbiAgICAgICAgICAgIC5tYXAoKGNoaWxkKSA9PiAoaXNGaWVsZEdyb3VwV3JhcHBlckNoaWxkKGNoaWxkKSA/IGNoaWxkLmZpZWxkUmVuZGVyZXIgOiBjaGlsZCkpO1xuXG4gICAgICAgIHJldHVybiBjaGlsZHJlbi5maWx0ZXIoKGNoaWxkKSA9PiB0aGlzLl9mb3JtR3JvdXBEaXJlY3RDaGlsZHJlbi5pbmNsdWRlcyhjaGlsZCkpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdXBkYXRlSW5saW5lQ29sdW1uTGF5b3V0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9pbmxpbmVDb2x1bW5MYXlvdXRDbGFzcyA9IGdlbmVyYXRlQ29sdW1uQ2xhc3ModGhpcy5pbmxpbmVDb2x1bW5MYXlvdXQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBoYXZlIHRvIHRyaWdnZXIgY2hhbmdlIGRldGVjdGlvbiBoZXJlIGluIG9yZGVyIHRvIHJlLWNoZWNrIGNvbnRlbnRzXG4gICAgICogaW5zaWRlIFwiRm9ybUZpZWxkLnJlbmRlcmVyXCIgdGVtcGxhdGUgZXZlcnkgdGltZSBjb21wb25lbnQncyBkaW1lbnNpb25zIGNoYW5nZWRcbiAgICAgKi9cbiAgICBwcml2YXRlIF90cmFja0Zvcm1Hcm91cFJlc2l6ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgICAgICByZXNpemVPYnNlcnZhYmxlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KVxuICAgICAgICAgICAgICAgIC5waXBlKGRlYm91bmNlVGltZSgyMCkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKSlcbiAgICAgICAgKTtcbiAgICB9XG59XG4iLCI8Zm9ybSAjbmF0aXZlRm9ybSAobmdTdWJtaXQpPVwib25TdWJtaXQuZW1pdCgkZXZlbnQpXCIgKm5nSWY9XCJ1c2VGb3JtOyBlbHNlIGJvZHlcIiBbaWRdPVwiaWRcIiBbbmFtZV09XCJuYW1lXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJvZHlcIj48L25nLWNvbnRhaW5lcj5cbjwvZm9ybT5cblxuPG5nLXRlbXBsYXRlICNib2R5PlxuICAgIDwhLS0gIFJlbmRlciBmaWVsZHMgYW5kIGZpZWxkIGdyb3VwcyB3aXRoIGFzc2lnbmVkIGNvbHVtbnMgLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImZpZWxkc1wiPjwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNmaWVsZHM+XG4gICAgPGRpdiAqbmdJZj1cIm1haW5UaXRsZSAmJiAhaGlkZU1haW5USXRsZVwiIGNsYXNzPVwiZmQtZm9ybS1oZWFkZXJcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm1haW5UaXRsZVRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJmZC1jb250YWluZXIgZmQtZm9ybS1sYXlvdXQtZ3JpZC1jb250YWluZXJcIlxuICAgICAgICBbY2xhc3MuaXMtY29tcGFjdF09XCJjb250ZW50RGVuc2l0eU9ic2VydmVyLmlzQ29tcGFjdCQgfCBhc3luY1wiXG4gICAgPlxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgZm9ybVJvd3MgfCBrZXl2YWx1ZTsgdHJhY2tCeTogdHJhY2tCeUZuXCIgY2xhc3M9XCJmZC1yb3dcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgZmllbGRzIG9mIGNvbHVtbiB8IGZpZWxkR3JvdXBSb3dWYWx1ZSB8IGtleXZhbHVlOyB0cmFja0J5OiB0cmFja0J5Rm47IGxldCBpbmRleCA9IGluZGV4XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZkLWNvbCBmZC1mb3JtLWdyb3VwXCJcbiAgICAgICAgICAgICAgICBbY2xhc3NdPVwieGxDb2xcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmZC1yb3dcIiAqbmdJZj1cIiRmaWVsZEdyb3VwKGNvbHVtbi52YWx1ZSkgYXMgdmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZkLWNvbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInZhbHVlLmxhYmVsXCIgZmRwLWZvcm0tZ3JvdXAtaGVhZGVyIFtmaWVsZEdyb3VwXT1cImluZGV4ID09PSAwID8gdmFsdWUgOiBudWxsXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZmllbGQgb2YgZmllbGRzLnZhbHVlOyB0cmFja0J5OiB0cmFja0J5RmllbGROYW1lXCIgY2xhc3M9XCJmZC1yb3cgZmQtZm9ybS1pdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmZC1jb2xcIiBbY2xhc3NdPVwiX2lubGluZUNvbHVtbkxheW91dENsYXNzXCIgW3N0eWxlLm9yZGVyXT1cImZpZWxkLnJhbmtcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmaWVsZD8ucmVuZGVyZXIgfHwgbnVsbFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjwhLS0gRm9yIG5lc3RlZCBmb3JtLWdyb3VwIC0tPlxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiZmRwLWZvcm0tZ3JvdXBcIj48L25nLWNvbnRlbnQ+XG5cbjxuZy10ZW1wbGF0ZSAjbWFpblRpdGxlVGVtcGxhdGU+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIl9oaW50T3B0aW9ucz8uY29udGVudCAmJiBfaGludE9wdGlvbnMucG9zaXRpb24gPT09ICdiZWZvcmUnXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJoaW50VGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPGg1IGNsYXNzPVwiZmQtZm9ybS1oZWFkZXJfX3RleHRcIj5cbiAgICAgICAge3sgbWFpblRpdGxlIH19XG4gICAgPC9oNT5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJfaGludE9wdGlvbnM/LmNvbnRlbnQgJiYgX2hpbnRPcHRpb25zLnBvc2l0aW9uID09PSAnYWZ0ZXInXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJoaW50VGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLXRlbXBsYXRlICNoaW50VGVtcGxhdGU+XG4gICAgICAgIDxzcGFuIGZkLWxpbmsgW3VuZGVjb3JhdGVkXT1cInRydWVcIj5cbiAgICAgICAgICAgIDxmZC1pY29uXG4gICAgICAgICAgICAgICAgW2ZkLWlubGluZS1oZWxwXT1cIl9oaW50T3B0aW9ucy5jb250ZW50XCJcbiAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiX2hpbnRPcHRpb25zLmdseXBoXCJcbiAgICAgICAgICAgICAgICBbcGxhY2VtZW50XT1cIl9oaW50T3B0aW9ucy5wbGFjZW1lbnQgfHwgbnVsbFwiXG4gICAgICAgICAgICAgICAgW3RyaWdnZXJzXT1cIl9oaW50T3B0aW9ucy50cmlnZ2VyIHx8IFtdXCJcbiAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgPjwvZmQtaWNvbj5cbiAgICAgICAgPC9zcGFuPlxuICAgIDwvbmctdGVtcGxhdGU+XG48L25nLXRlbXBsYXRlPlxuIl19
534
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvZm9ybS9mb3JtLWdyb3VwL2Zvcm0tZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vZm9ybS1ncm91cC9mb3JtLWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUNILE9BQU8sRUFHSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osZUFBZSxFQUNmLFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBSUwsUUFBUSxFQUNSLE1BQU0sRUFFTixTQUFTLEVBRVQsV0FBVyxFQUNYLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFtQixnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEYsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFN0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUlILGtCQUFrQixFQUlyQixNQUFNLGtDQUFrQyxDQUFDO0FBRTFDLE9BQU8sRUFHSCxVQUFVLEVBQ1YsUUFBUSxFQUNSLFlBQVksRUFDWixZQUFZLEVBQ1osaUJBQWlCLEVBQ2pCLHdCQUF3QixFQUMzQixNQUFNLGlCQUFpQixDQUFDO0FBQ3pC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QkFEMUIsZUFBZTt1QkFBQyw0QkFBbUMsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBGLiBLb2xhclxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICpcbiAqXG4gKi9cbmltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBQcm92aWRlcixcbiAgICBRdWVyeUxpc3QsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIENvbnRyb2xDb250YWluZXIsIEZvcm1Hcm91cCwgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgcmVzaXplT2JzZXJ2YWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7XG4gICAgQ29sdW1uTGF5b3V0LFxuICAgIEZpZWxkSGludE9wdGlvbnMsXG4gICAgRm9ybUZpZWxkR3JvdXAsXG4gICAgRm9ybUdyb3VwQ29udGFpbmVyLFxuICAgIEhpbnRJbnB1dCxcbiAgICBIaW50T3B0aW9ucyxcbiAgICBQbGF0Zm9ybUZvcm1GaWVsZFxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3NoYXJlZCc7XG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7XG4gICAgRmllbGQsXG4gICAgRmllbGRDb2x1bW4sXG4gICAgRmllbGRHcm91cCxcbiAgICBnZXRGaWVsZCxcbiAgICBnZXRGb3JtRmllbGQsXG4gICAgaXNGaWVsZENoaWxkLFxuICAgIGlzRmllbGRHcm91cENoaWxkLFxuICAgIGlzRmllbGRHcm91cFdyYXBwZXJDaGlsZFxufSBmcm9tICcuLi9mb3JtLWhlbHBlcnMnO1xuaW1wb3J0IHsgRm9ybUZpZWxkRXJyb3JEaXJlY3RpdmUgfSBmcm9tICcuL2Zvcm0tZmllbGQtZXJyb3IvZm9ybS1maWVsZC1lcnJvci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRm9ybUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtLWZpZWxkL2Zvcm0tZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7XG4gICAgRGVmYXVsdEdhcExheW91dCxcbiAgICBEZWZhdWx0SG9yaXpvbnRhbEZpZWxkTGF5b3V0LFxuICAgIERlZmF1bHRIb3Jpem9udGFsTGFiZWxMYXlvdXQsXG4gICAgRGVmYXVsdFZlcnRpY2FsRmllbGRMYXlvdXQsXG4gICAgRk9STV9HUk9VUF9DSElMRF9GSUVMRF9UT0tFTlxufSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBnZW5lcmF0ZUNvbHVtbkNsYXNzLCBub3JtYWxpemVDb2x1bW5MYXlvdXQgfSBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0IHsgRm9ybUZpZWxkTGF5b3V0U2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvZm9ybS1maWVsZC1sYXlvdXQuc2VydmljZSc7XG5pbXBvcnQgeyBGRFBfRk9STV9GSUVMRF9ISU5UX09QVElPTlNfREVGQVVMVCB9IGZyb20gJy4vZmRwLWZvcm0udG9rZW5zJztcbmltcG9ydCB7IGNvbnRlbnREZW5zaXR5T2JzZXJ2ZXJQcm92aWRlcnMsIENvbnRlbnREZW5zaXR5T2JzZXJ2ZXIgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvY29udGVudC1kZW5zaXR5JztcbmltcG9ydCB7IEZvcm1GaWVsZCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL2Zvcm1zJztcblxuZXhwb3J0IGNvbnN0IGZvcm1Hcm91cFByb3ZpZGVyOiBQcm92aWRlciA9IHtcbiAgICBwcm92aWRlOiBGb3JtR3JvdXBDb250YWluZXIsXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRm9ybUdyb3VwQ29tcG9uZW50KVxufTtcblxudHlwZSBGb3JtR3JvdXBGaWVsZCA9IChGb3JtRmllbGQgfCBGb3JtRmllbGRHcm91cCkgJiB7IGhpbnRPcHRpb25zPzogSGludE9wdGlvbnMgfTtcblxubGV0IGZvcm1Hcm91cFVuaXF1ZUlkID0gMDtcblxuLyoqXG4gKlxuICogRm9ybUdyb3VwIHJlcHJlc2VudCBoaWdoIG9yZGVyIGNvbnRhaW5lciBhZ2dyZWdhdGluZyBGb3JtRmllbGRzIGFuZCBhYmlsaXR5IHRvIGRpc3RyaWJ1dGUgdGhlc2VcbiAqIGZpZWxkcyBpbnRvIGNvbHVtbnMuIEl0IG1haW5seSBoaWRlcyBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzIHRoYXQgd2UgbmVlZCB0byBkZWFsIHdpdGggZXZlcnlcbiAqIHRpbWUgd2UgYXJlIGJ1aWxkaW5nIGEgZm9ybS4gV2UgaGF2ZSBpbnB1dCBmaWVsZHMgLCBlcnJvciBtYW5hZ2VtZW50cywgZGlmZmVyZW50IHN0YXRlcyxcbiAqIGhpbnRzIGFuZCBtYW55IG1vcmUuXG4gKlxuICogV2VsbCBiZWhhdmVkIGZvcm0gdGhhdCBoYXMgaW5mb3JtYXRpb24gc2lkZSBieSBzaWRlIGluIG11bHRpcGxlXG4gKiBjb2x1bW5zIG5lZWRzIHRvIGFsc28ga25vdyBob3cgdG8gbWVyZ2UgcHJvcGVybHkuXG4gKlxuICogSnVzdCB0byBnZXQgdGhlIGlkZWEgYWJvdXQgdGhlIHN0cnVjdHVyZSB3aXRob3V0IGFjdHVhbCBpbnB1dCBjb21wb25lbnRzIGluc2lkZVxuICpcbiAqIGBgYGh0bWxcbiAqIDxmZHAtZm9ybS1ncm91cCBbaGludFBsYWNlbWVudF09XCInaW5saW5lJ1wiIGNvbHVtbkxheW91dD1cIlhMMi1MMi1NMS1TMVwiPlxuICogICAgPGZkcC1mb3JtLWZpZWxkIFtpZF09XCInRmllbGQgQSdcIiBbcmFua109XCIxMFwiIGNvbHVtbj1cIjFcIj5cbiAqICAgIDwvZmRwLWZvcm0tZmllbGQ+XG4gKlxuICogICAgPGZkcC1mb3JtLWZpZWxkIFtpZF09XCInRmllbGQgQidcIiBbcmFua109XCIzMFwiIGNvbHVtbj1cIjFcIj5cbiAqICAgIDwvZmRwLWZvcm0tZmllbGQ+XG4gKlxuICogICAgPGZkcC1mb3JtLWZpZWxkIFtpZF09XCInRmllbGQgQydcIiAgW3JhbmtdPVwiMjBcIiBjb2x1bW49XCIxXCI+XG4gKiAgICA8L2ZkcC1mb3JtLWZpZWxkPlxuICpcbiAqICAgIDxmZHAtZm9ybS1maWVsZCBbaWRdPVwiRmllbGQgRFwiICBbcmFua109XCIyMFwiIGNvbHVtbj1cIjJcIj5cbiAqICAgIDwvZmRwLWZvcm0tZmllbGQ+XG4gKlxuICpcbiAqICAgIDxmZHAtZm9ybS1maWVsZCBbaWRdPVwiJ0ZpZWxkIEUnXCIgW3JhbmtdPVwiMzBcIiBjb2x1bW49XCIyXCI+XG4gKiAgICA8L2ZkcC1mb3JtLWZpZWxkPlxuICogPC9mZHAtZm9ybS1ncm91cD5cblxuICpcbiAqIGBgYGBcbiAqXG4gKlxuICogV2hpY2ggY2FuIGJlIHRyYW5zbGF0ZWQgbGlrZSB0aGlzXG4gKiBbRmllbGQgQV0gLSBGaXJzdCBjb2x1bW4sIHJhbmsgMTBcbiAqIFtGaWVsZCBCXSAtIEZpcnN0IGNvbHVtbiwgcmFuayAzMFxuICogW0ZpZWxkIENdIC0gRmlyc3QgY29sdW1uLCByYW5rIDIwXG4gKiBbRmllbGQgRF0gLSBTZWNvbmQgY29sdW1uLCByYW5rIDIwXG4gKiBbRmllbGQgRV0gLSBTZWNvbmQgY29sdW1uLCByYW5rIDMwXG4gKlxuICogV2hhdCB3ZSBleHBlY3QgdGhhdCBpdCBjcmVhdGVzIGZvbGxvd2luZyBmb3JtIHdpdGggdHdvIGNvbHVtbiBsYXlvdXQ6XG4gKiBbRmllbGQgQV0gICAgICBbRmllbGQgRF1cbiAqIFtGaWVsZCBDXSAgICAgIFtGaWVsZCBFXVxuICogW0ZpZWxkIEJdXG4gKlxuICogWW91IGNhbiBzZWUgYWxsIGlzIHNvcnRlZCBhY2NvcmRpbmdseSBieSByYW5rIChDIGdvZXMgYmVmb3JlIEIpLlxuICpcbiAqIFdoZW4geW91IG1vdmUgaW50byBzbWFsbGVyIGRldmljZSBhbmQgYWxsIGlzIG1lcmdlZCBpbnRvIG9uZSBjb2x1bW5zIHRoZSBuYWl2ZSBzb2x1dGlvbiB3b3VsZCBiZTpcbiAqXG4gKiBbRmllbGQgQV1cbiAqIFtGaWVsZCBDXVxuICogW0ZpZWxkIEJdXG4gKiBbRmllbGQgRF1cbiAqIFtGaWVsZCBFXVxuICpcbiAqIFRoZSBmaWVsZHMgbmVlZHMgdG8gcmVzdHJ1Y3R1cmUgYWNjb3JkaW5nIHRvIHRoZWlyIG9yaWdpbmFsIHBvc2l0aW9uaW5nLiBXaGVuIEZpZWxkIEQgd2FzIG9uIHRoZVxuICogdG9wIHdoeSB3ZSBzaG91bGQgbW92ZSBpdCB0byB0aGUgYm90dG9tPyBUaGUgbW9yZSBjb3JyZWN0IHNvbHV0aW9uIHNob3VsZCBiZSBmb2xsb3dpbmcuXG4gKlxuICogW0ZpZWxkIEFdXG4gKiBbRmllbGQgRF1cbiAqIFtGaWVsZCBDXVxuICogW0ZpZWxkIEVdXG4gKiBbRmllbGQgQl1cbiAqXG4gKiBGaWVsZHMgbmljZWx5IG1lcmdlIHRvZ2V0aGVyLiB0aGV5IGRvbid0IHdyYXAuXG4gKlxuICpcbiAqIEJlc2lkZXMgdGhpcyBsYXlvdXQgc3VwcG9ydCBpdCBhbHNvIHdyYXBzIGZvcm0gZnVuY3Rpb25hbGl0eSBhbmQgaXQgY2FuIHdvcmsgd2l0aCBGb3JtR3JvdXAuXG4gKiBZb3UgY2FuIGFsc28gZGVjaWRlIGlmIHlvdSB3YW50IHlvdXIgZm9ybSB3aXRoIDxmb3JtPiBlbGVtZW50IG9yIHdpdGhvdXQgaXQuXG4gKlxuICpcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtZm9ybS1ncm91cCcsXG4gICAgdGVtcGxhdGVVcmw6ICdmb3JtLWdyb3VwLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9mb3JtLWdyb3VwLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtmb3JtR3JvdXBQcm92aWRlciwgRm9ybUZpZWxkTGF5b3V0U2VydmljZSwgY29udGVudERlbnNpdHlPYnNlcnZlclByb3ZpZGVycygpXVxufSlcbmV4cG9ydCBjbGFzcyBGb3JtR3JvdXBDb21wb25lbnRcbiAgICBpbXBsZW1lbnRzIEZvcm1Hcm91cENvbnRhaW5lciwgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlc1xue1xuICAgIC8qKiBJZCBmb3IgdGhlIGZvcm0gZ3JvdXAgZWxlbWVudCAqL1xuICAgIEBJbnB1dCgpXG4gICAgaWQgPSBgZmRwLWZvcm0tZ3JvdXAtJHtmb3JtR3JvdXBVbmlxdWVJZCsrfWA7XG5cbiAgICAvKiogTmFtZSBwcm9wZXJ0eSB0byBiZSBzZXQgb24gYSBmb3JtLiBXaWxsIGJlIHVzZWQgaWYgYHVzZUZvcm1gIGlzIHNldCB0byB0cnVlICovXG4gICAgQElucHV0KClcbiAgICBuYW1lOiBzdHJpbmc7XG5cbiAgICAvKiogSW5kaWNhdGVzIGlmIGdyb3VwIGlzIGVkaXRhYmxlICovXG4gICAgQElucHV0KClcbiAgICBlZGl0YWJsZSA9IHRydWU7XG5cbiAgICAvKiogSW5kaWNhdGVzIHdoZW4gbGFiZWxzIHNob3VsZCBub3QgYmUgZGlzcGxheWVkICovXG4gICAgQElucHV0KClcbiAgICBub0xhYmVsTGF5b3V0ID0gZmFsc2U7XG5cbiAgICAvKiogVXNlcidzIGN1c3RvbSBjbGFzc2VzICovXG4gICAgQElucHV0KClcbiAgICBjbGFzczogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogRm9ybSBncm91cCBoaW50IG9wdGlvbnNcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGhpbnQ6IEhpbnRJbnB1dDtcblxuICAgIC8qKlxuICAgICAqIERlZmluZXMgY29sdW1uIGxheW91dCBmb3IgaW5saW5lIGl0ZW1zLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGlubGluZUNvbHVtbkxheW91dCh2YWx1ZTogQ29sdW1uTGF5b3V0KSB7XG4gICAgICAgIHRoaXMuX2lubGluZUNvbHVtbkxheW91dCA9IG5vcm1hbGl6ZUNvbHVtbkxheW91dCh2YWx1ZSk7XG4gICAgICAgIHRoaXMuX3VwZGF0ZUlubGluZUNvbHVtbkxheW91dCgpO1xuICAgIH1cblxuICAgIGdldCBpbmxpbmVDb2x1bW5MYXlvdXQoKTogQ29sdW1uTGF5b3V0IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lubGluZUNvbHVtbkxheW91dDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9pbmxpbmVDb2x1bW5MYXlvdXRDbGFzczogc3RyaW5nO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pbmxpbmVDb2x1bW5MYXlvdXQgPSBEZWZhdWx0VmVydGljYWxGaWVsZExheW91dDtcblxuICAgIC8qKlxuICAgICAqIERlZmluZXMgbGFiZWwncyBjb2x1bW4gbGF5b3V0LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgbGFiZWxDb2x1bW5MYXlvdXQ6IENvbHVtbkxheW91dCA9IERlZmF1bHRIb3Jpem9udGFsTGFiZWxMYXlvdXQ7XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIGZpZWxkJ3MgY29sdW1uIGxheW91dC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGZpZWxkQ29sdW1uTGF5b3V0OiBDb2x1bW5MYXlvdXQgPSBEZWZhdWx0SG9yaXpvbnRhbEZpZWxkTGF5b3V0O1xuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyBnYXAgY29sdW1uIGxheW91dC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGdhcENvbHVtbkxheW91dDogQ29sdW1uTGF5b3V0ID0gRGVmYXVsdEdhcExheW91dDtcblxuICAgIC8qKiBBbmd1bGFyIEZvcm1Hcm91cCB3aGVyZSBhbGwgdW5kZXJseWluZyBjb250cm9scyB3aWxsIGJlIGF0dGFjaGVkIHRvLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZm9ybUdyb3VwOiBGb3JtR3JvdXA7XG5cbiAgICAvKiogVGhpcyBpcyByYXRoZXIgc2ltcGxlIGZvciBub3cganVzdCB0byBoYXZlIHNvbWUgU2VjdGlvbiBUaXRsZSBpZiBuZWVkZWQgKi9cbiAgICBASW5wdXQoKVxuICAgIHRvcFRpdGxlOiBzdHJpbmc7XG5cbiAgICAvKiogRm9ybSdzIG1haW4gdGl0bGUuICovXG4gICAgQElucHV0KClcbiAgICBtYWluVGl0bGU6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKiogV2hldGhlciB0byBoaWRlIGZvcm0ncyBtYWluIHRpdGxlLiBEZWZhdWx0IGlzIGZhbHNlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgaGlkZU1haW5USXRsZSA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQ29udmVuaWVudCB3YXkgdG8gaW5pdGlhbGl6ZSBpbnRlcm5hbCBGb3JtQ29udHJvbHMgZnJvbSBvYmplY3RcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIG9iamVjdDogYW55O1xuXG4gICAgLyoqXG4gICAgICogVHJhbnNsYXRpb25zIHRlbXBsYXRlIHJlZmVyZW5jZS5cbiAgICAgKlxuICAgICAqIFRoaXMgaXMganVzdCBoZXJlIHRvIHN1cHBvcnQgc2V2ZXJhbCB3YXlzIHRvIHBhc3MgdHJhbnNsYXRpb24uXG4gICAgICpcbiAgICAgKiBPbmUgd2F5IGlzIHRvIHByb3ZpZGUgbmctdGVtcGxhdGUgI2kxOG4gaW5zaWRlIHRoZSBmb3JtLWdyb3VwIHRhZyBhbmQgdGhlIG90aGVyIG9uZVxuICAgICAqIHNvbWUgZ2xvYmFsIG9uZSBhcyBiaW5kaW5nXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBpMThTdHJpbmdzOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgLyoqIFdoZXRoZXIgdG8gd3JhcCBhbGwgdGhlIHByb3ZpZGVkIGNvbnRlbnQgaW4gYSBgPGZvcm0+YCAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHVzZUZvcm0odmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl91c2VGb3JtID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgZ2V0IHVzZUZvcm0oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl91c2VGb3JtO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNwZWNpZnkgdGhlIGNvbHVtbiBsYXlvdXQgaW4gdGhlIGZvcm1hdCBgWExuLUxuLU1uLVNuYCB3aGVyZSBuIGlzIHRoZSBudW1iZXIgb2YgY29sdW1ucyBhbmQgY2FuIGJlIGRpZmZlcmVudCBmb3IgZWFjaCBzaXplLlxuICAgICAqIGVnOiBYTDItTDItTTItUzEgd291bGQgY3JlYXRlIDItY29sdW1uIGxheW91dHMgZm9yIFhMLCBMLCBhbmQgTSBzaXplcyBhbmQgc2luZ2xlLWNvbHVtbiBsYXlvdXQgZm9yIFMgc2l6ZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGNvbHVtbkxheW91dDogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKiBXaGV0aGVyIGFsbCBmb3JtIGl0ZW1zIHNob3VsZCBoYXZlIGlkZW50aWNhbCBsYXlvdXQgcHJvdmlkZWQgZm9yIGZvcm0gZ3JvdXAgKi9cbiAgICBASW5wdXQoKVxuICAgIHVuaWZpZWRMYXlvdXQgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogb25TdWJtaXQgZXZlbnRcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1vbi1wcmVmaXhcbiAgICBvblN1Ym1pdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIC8qKlxuICAgICAqIE5hdGl2ZSBmb3JtIGVsZW1lbnQuIEF2YWlsYWJsZSB3aXRoIGBbdXNlRm9ybV09XCJ0cnVlXCJgIGlucHV0IHByb3BlcnR5LlxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoJ25hdGl2ZUZvcm0nLCB7IHJlYWQ6IE5nRm9ybSB9KVxuICAgIG5hdGl2ZUZvcm06IE5nRm9ybTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZCgnaTE4bicsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgaTE4VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGRyZW4oRm9ybUZpZWxkRXJyb3JEaXJlY3RpdmUpXG4gICAgcHJpdmF0ZSBfZXJyb3JEaXJlY3RpdmVzOiBRdWVyeUxpc3Q8Rm9ybUZpZWxkRXJyb3JEaXJlY3RpdmU+O1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqXG4gICAgICogS2VlcCB0cmFjayBvZiBhZGRlZCBmb3JtIGZpZWxkcyBjaGlsZHJlbiBpbiBjb3JyZWN0IG9yZGVyLlxuICAgICAqXG4gICAgICogU2luY2UgXCJkZXNjZW5kYW50czogdHJ1ZVwiIGluY2x1ZGVzIGZpZWxkcyBvZiBuZXN0ZWQgZm9ybSBncm91cCBhcyB3ZWxsLlxuICAgICAqXG4gICAgICogV2UgYXJlIGZvcmNlZCB0byB1c2UgXCJDb250ZW50Q2hpbGRyZW5cIiBzbyBGb3JtRmllbGQgY2hpbGRyZW4gY2FuIGJlIHVzZWRcbiAgICAgKiB3aXRoIG9wdGlvbmFsIHJlbmRlcmluZyAobmdJZikgc2FmZWx5LlxuICAgICAqXG4gICAgICogRm9ybSBmaWVsZHMgd2l0aGluIHRoZSBmb3JtR3JvdXAgaXMgZHJpdmVuIGJ5IG11bHRpLXpvbmUgbGF5b3V0IHN1cHBvcnQuIFdlIG5lZWQgdG8gYmVcbiAgICAgKiBhYmxlIHRvIGFkZCBudW1iZXIgb2YgRm9ybUZpZWxkcywgYW5kIGJhc2VkIG9uIGdpdmVuIGNvbmZpZ3VyYXRpb24gKHpvbmUsIHJhbmspIHJlbmRlciB0aGVtXG4gICAgICogdW5kZXIgY29ycmVjdCB6b25lICAodG9wLCBib3R0b20sIGxlZnQsIHJpZ2h0KS5cbiAgICAgKlxuICAgICAqIFdlIHdhbnQgdG8gbWFrZSBzdXJlIHRoYXQgd2UgZG9uJ3QgaW5jbHVkZSBjb250ZW50IGFuZCB0aGVuIHRyeSB0byBzb21laG93IHBvc2l0aW9uIGl0IGFzIGl0XG4gICAgICogd291bGQgbGVhZCB0byB0aGUgVUkgd2hlcmUgdXNlciBjYW4gc2VlIGVsZW1lbnRpbmcgbW92aW5nIGFzIHlvdSB0cnkgdG8gcG9zaXRpb24gaXQuXG4gICAgICpcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkcmVuKEZPUk1fR1JPVVBfQ0hJTERfRklFTERfVE9LRU4gYXMgYW55LCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gICAgcHJvdGVjdGVkIGZvcm1Hcm91cENoaWxkcmVuOiBRdWVyeUxpc3Q8Rm9ybUdyb3VwRmllbGQ+O1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqXG4gICAgICogTGlzdCBvZiBkaXJlY3QgRmRwRm9ybUdyb3VwJ3MgY2hpbGRyZW4uXG4gICAgICpcbiAgICAgKiBTaW5jZSBcImZvcm1Hcm91cENoaWxkcmVuXCIgdXNlcyBcInsgZGVzY2VuZGFudHM6IHRydWUgfVwiIG9wdGlvbiB0aGF0IG1lYW5zXG4gICAgICogXCJmb3JtR3JvdXBDaGlsZHJlblwiIHdpbGwga2VlcCB0cmFjayBvZiBuZXN0ZWQgRmRwRm9ybUdyb3VwIGZpZWxkcyBhcyB3ZWxsLlxuICAgICAqIFRoaXMgbGlzdCByZWxpZXMgb24gdGhlIGluamVjdGlvbiBtZWNoYW5pc20gc28gbmVzdGVkIEZkcEZvcm1Hcm91cCdzIGZpZWxkcy9maWVsZEdyb3Vwc1xuICAgICAqIHdpbGwgYmUgb21pdHRlZFxuICAgICAqL1xuICAgIHByaXZhdGUgX2Zvcm1Hcm91cERpcmVjdENoaWxkcmVuOiBBcnJheTxGb3JtR3JvdXBGaWVsZD4gPSBbXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgeGxDb2x1bW5zTnVtYmVyOiBudW1iZXI7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBsZ0NvbHVtbnNOdW1iZXI6IG51bWJlcjtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG1kQ29sdW1uc051bWJlcjogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIFVzZXIgcmVzcG9uc2l2ZSBsYXlvdXRcbiAgICAgKi9cbiAgICB4bENvbDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIFBhY2tlZCBmaWVsZHMgd2hpY2ggc2hvdWxkIGJlIHJlbmRlcmVkXG4gICAgICovXG4gICAgZm9ybVJvd3M6IHsgW2tleTogbnVtYmVyXTogRmllbGRDb2x1bW4gfCBGaWVsZEdyb3VwIH0gPSB7fTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2hpbnRPcHRpb25zOiBIaW50T3B0aW9ucztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdXNlRm9ybSA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgX2Rlc3Ryb3llZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9jZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBmb3JtQ29udGFpbmVyOiBDb250cm9sQ29udGFpbmVyLFxuICAgICAgICByZWFkb25seSBjb250ZW50RGVuc2l0eU9ic2VydmVyOiBDb250ZW50RGVuc2l0eU9ic2VydmVyLFxuICAgICAgICBASW5qZWN0KEZEUF9GT1JNX0ZJRUxEX0hJTlRfT1BUSU9OU19ERUZBVUxUKSBwcml2YXRlIF9kZWZhdWx0SGludE9wdGlvbnM6IEZpZWxkSGludE9wdGlvbnNcbiAgICApIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAgPSA8Rm9ybUdyb3VwPih0aGlzLmZvcm1Db250YWluZXIgPyB0aGlzLmZvcm1Db250YWluZXIuY29udHJvbCA6IG5ldyBGb3JtR3JvdXAoe30pKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5idWlsZENvbXBvbmVudENzc0NsYXNzKCk7XG4gICAgICAgIGlmIChjaGFuZ2VzLmhpbnQpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdGhpcy5oaW50ID09PSAnc3RyaW5nJyB8fCB0aGlzLmhpbnQgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZikge1xuICAgICAgICAgICAgICAgIHRoaXMuX2hpbnRPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgICAgICAuLi50aGlzLl9kZWZhdWx0SGludE9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHRoaXMuaGludFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX2hpbnRPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgICAgICAuLi50aGlzLl9kZWZhdWx0SGludE9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuaGludFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZm9ybUdyb3VwKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe30pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYnVpbGRDb21wb25lbnRDc3NDbGFzcygpO1xuICAgICAgICB0aGlzLl91cGRhdGVJbmxpbmVDb2x1bW5MYXlvdXQoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pMThTdHJpbmdzID0gdGhpcy5pMThTdHJpbmdzID8gdGhpcy5pMThTdHJpbmdzIDogdGhpcy5pMThUZW1wbGF0ZTtcblxuICAgICAgICB0aGlzLl9zZXRVc2VyTGF5b3V0KCk7XG4gICAgICAgIHRoaXMuX3VwZGF0ZUZpZWxkQnlDb2x1bW4oKTtcbiAgICAgICAgdGhpcy5fdXBkYXRlRm9ybUZpZWxkc1Byb3BlcnRpZXMoKTtcbiAgICAgICAgdGhpcy5fbGlzdGVuVG9Gb3JtR3JvdXBDaGlsZHJlbigpO1xuICAgICAgICB0aGlzLl9saXN0ZW5Gb3JtRmllbGRDb2x1bW5DaGFuZ2UoKTtcbiAgICAgICAgdGhpcy5fY2QubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaTE4U3RyaW5ncyA9IHRoaXMuaTE4U3RyaW5ncyA/IHRoaXMuaTE4U3RyaW5ncyA6IHRoaXMuaTE4VGVtcGxhdGU7XG5cbiAgICAgICAgdGhpcy5fc2V0VXNlckxheW91dCgpO1xuICAgICAgICB0aGlzLl91cGRhdGVGaWVsZEJ5Q29sdW1uKCk7XG4gICAgICAgIHRoaXMuX3VwZGF0ZUZvcm1GaWVsZHNQcm9wZXJ0aWVzKCk7XG4gICAgICAgIHRoaXMuX2xpc3RlblRvRm9ybUdyb3VwQ2hpbGRyZW4oKTtcbiAgICAgICAgdGhpcy5fbGlzdGVuRm9ybUZpZWxkQ29sdW1uQ2hhbmdlKCk7XG4gICAgICAgIHRoaXMuX3RyYWNrRm9ybUdyb3VwUmVzaXplKCk7XG4gICAgICAgIHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xuXG4gICAgICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9kZXN0cm95ZWQubmV4dCgpO1xuICAgICAgICB0aGlzLl9kZXN0cm95ZWQuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgYWRkRm9ybUZpZWxkKGZvcm1GaWVsZDogUGxhdGZvcm1Gb3JtRmllbGQpOiB2b2lkIHtcbiAgICAgICAgLy8gSXQncyBuZWVkZWQgdG8gc2V0IGRlZmF1bHQgRm9ybUZpZWxkIHByb3BlcnRpZXNcbiAgICAgICAgLy8gb24gZWFybHkgc3RhZ2Ugb3RoZXJ3aXNlIHZhbGlkYXRpb24gZXJyb3JzXG4gICAgICAgIC8vIHdpbGwgYmUgdGhyb3duIG9uIEZvcm1GaWVsZCBsZXZlbCAoZS5nLiBpMThzdHJpbmcgYXJlIG5vdCBkZWZpbmVkKVxuICAgICAgICB0aGlzLl91cGRhdGVGb3JtRmllbGRQcm9wZXJ0aWVzKGZvcm1GaWVsZCk7XG4gICAgICAgIC8vIGtlZXAgdHJhY2sgb2YgZGlyZWN0bHkgcmVnaXN0ZXJlZCBjaGlsZHJlblxuICAgICAgICB0aGlzLl9hZGREaXJlY3RGb3JtR3JvdXBDaGlsZChmb3JtRmllbGQpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVtb3ZlRm9ybUZpZWxkKGZvcm1GaWVsZDogUGxhdGZvcm1Gb3JtRmllbGQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmVtb3ZlRGlyZWN0Rm9ybUdyb3VwQ2hpbGQoZm9ybUZpZWxkKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGFkZEZvcm1GaWVsZEdyb3VwKGZvcm1GaWVsZEdyb3VwOiBGb3JtRmllbGRHcm91cCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9hZGREaXJlY3RGb3JtR3JvdXBDaGlsZChmb3JtRmllbGRHcm91cCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZW1vdmVGb3JtRmllbGRHcm91cChmb3JtRmllbGRHcm91cDogRm9ybUZpZWxkR3JvdXApOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmVtb3ZlRGlyZWN0Rm9ybUdyb3VwQ2hpbGQoZm9ybUZpZWxkR3JvdXApO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgYWRkRm9ybUNvbnRyb2wobmFtZTogc3RyaW5nLCBjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuc2V0Q29udHJvbChuYW1lLCBjb250cm9sKTtcbiAgICAgICAgLy8gbGV0dGluZyBjb250cm9sIHRvIHNldCB2YWx1ZS4gd2hlbiBwcm92aWRlZCB2YWx1ZSBpcyAnZmFsc2UnLlxuICAgICAgICBpZiAodGhpcy5vYmplY3QpIHtcbiAgICAgICAgICAgIGNvbnRyb2wucGF0Y2hWYWx1ZSh0aGlzLm9iamVjdFtuYW1lXSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlbW92ZUZvcm1Db250cm9sKG5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5yZW1vdmVDb250cm9sKG5hbWUpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgdHJhY2tCeUZuKGluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICB0cmFja0J5RmllbGROYW1lKGluZGV4OiBudW1iZXIsIGZpZWxkOiBGaWVsZCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiBmaWVsZCA/IGZpZWxkLm5hbWUgOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBidWlsZENvbXBvbmVudENzc0NsYXNzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIFsnZmQtY29udGFpbmVyJywgdGhpcy5jbGFzc107XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gdXNlZCBmb3IgdGVtcGxhdGUgc2lkZSBUeXBlIGNvcnJlY3Rpb24gKi9cbiAgICAkZmllbGRHcm91cCA9IChmOiBhbnkpOiBGaWVsZEdyb3VwID0+IGY7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2xpc3RlblRvRm9ybUdyb3VwQ2hpbGRyZW4oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwQ2hpbGRyZW4uY2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fdXBkYXRlRmllbGRCeUNvbHVtbigpO1xuICAgICAgICAgICAgdGhpcy5fY2QubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGlzdGVuRm9ybUZpZWxkQ29sdW1uQ2hhbmdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cENoaWxkcmVuLmZvckVhY2goKGZpZWxkOiBGb3JtR3JvdXBGaWVsZCkgPT5cbiAgICAgICAgICAgICg8Rm9ybUZpZWxkQ29tcG9uZW50PmZpZWxkKS5vbkNvbHVtbkNoYW5nZT8ucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVGaWVsZEJ5Q29sdW1uKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2QubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBBc3NpZ24gYSBmaWVsZHMgb3IgZmllbGQgZ3JvdXAgdG8gc3BlY2lmaWVkIGNvbHVtbnMgd2l0aCByYW5rLlxuICAgICAqIGlmIGBjb2x1bW5MYXlvdXRUeXBlYCBpcyBnaXZlbiBhIGZpZWxkcyB3aXRob3V0IGNvbHVtbiBwcm9wZXJ0eSB3aWxsIHNldCBvbiBsYXN0IGNvbHVtbi5cbiAgICAgKiBPdGhlcndpc2UgdGhlIGZpZWxkcyBzZXQgMSBjb2x1bW4uXG4gICAgICovXG4gICAgcHJpdmF0ZSBfdXBkYXRlRmllbGRCeUNvbHVtbigpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZm9ybUNoaWxkcmVuID0gdGhpcy5fZ2V0Rm9ybUdyb3VwQ2hpbGRyZW4oKTtcbiAgICAgICAgY29uc3Qgcm93czogeyBba2V5OiBudW1iZXJdOiBGaWVsZENvbHVtbiB8IEZpZWxkR3JvdXAgfSA9IHt9O1xuICAgICAgICBsZXQgcm93TnVtYmVyID0gMDtcbiAgICAgICAgbGV0IGNvbHVtbnM6IEZpZWxkQ29sdW1uID0ge307XG5cbiAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBmb3JtQ2hpbGRyZW4pIHtcbiAgICAgICAgICAgIGlmIChpc0ZpZWxkQ2hpbGQoY2hpbGQpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmllbGQgPSBnZXRGaWVsZChjaGlsZCk7XG4gICAgICAgICAgICAgICAgY29uc3QgY29sdW1uTnVtYmVyID0gdGhpcy5fdmFsaWRhdGVGaWVsZENvbHVtbihjaGlsZC5jb2x1bW4pO1xuXG4gICAgICAgICAgICAgICAgaWYgKCFjb2x1bW5zW2NvbHVtbk51bWJlcl0pIHtcbiAgICAgICAgICAgICAgICAgICAgY29sdW1uc1tjb2x1bW5OdW1iZXJdID0gW107XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbHVtbnNbY29sdW1uTnVtYmVyXS5wdXNoKGZpZWxkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGlzRmllbGRHcm91cENoaWxkKGNoaWxkKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpZWxkR3JvdXBDb2x1bW5zOiBGaWVsZENvbHVtbiA9IHt9O1xuICAgICAgICAgICAgICAgIGlmIChPYmplY3Qua2V5cyhjb2x1bW5zKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgcm93c1tyb3dOdW1iZXJdID0gY29sdW1ucztcbiAgICAgICAgICAgICAgICAgICAgY29sdW1ucyA9IHt9O1xuICAgICAgICAgICAgICAgICAgICByb3dOdW1iZXIrKztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBncm91cEZpZWxkcyA9IGNoaWxkLmZpZWxkcy5tYXAoKGZpZWxkKSA9PiBnZXRGaWVsZChmaWVsZCkpO1xuICAgICAgICAgICAgICAgIGdyb3VwRmllbGRzLmZvckVhY2goKGdyb3VwRmllbGQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29sdW1uTnVtYmVyID0gdGhpcy5fdmFsaWRhdGVGaWVsZENvbHVtbihncm91cEZpZWxkLmNvbHVtbik7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCFmaWVsZEdyb3VwQ29sdW1uc1tjb2x1bW5OdW1iZXJdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZEdyb3VwQ29sdW1uc1tjb2x1bW5OdW1iZXJdID0gW107XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZmllbGRHcm91cENvbHVtbnNbY29sdW1uTnVtYmVyXS5wdXNoKGdyb3VwRmllbGQpO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgcm93c1tyb3dOdW1iZXJdID0gbmV3IEZpZWxkR3JvdXAoY2hpbGQubGFiZWwsIGZpZWxkR3JvdXBDb2x1bW5zLCBjaGlsZC5oaW50T3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgcm93TnVtYmVyKys7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcm93c1tyb3dOdW1iZXJdID0gY29sdW1ucztcbiAgICAgICAgdGhpcy5mb3JtUm93cyA9IHJvd3M7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gVmFsaWRhdGUgY29sdW1uIG51bWJlciAqL1xuICAgIHByaXZhdGUgX3ZhbGlkYXRlRmllbGRDb2x1bW4oY29sdW1uTnVtYmVyOiBudW1iZXIgfCB1bmRlZmluZWQpOiBudW1iZXIge1xuICAgICAgICBpZiAodGhpcy5jb2x1bW5MYXlvdXQgJiYgY29sdW1uTnVtYmVyKSB7XG4gICAgICAgICAgICBpZiAoaXNOYU4oY29sdW1uTnVtYmVyKSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW5wdXQgYSB2YWxpZCBjb2x1bW4gbnVtYmVyJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChjb2x1bW5OdW1iZXIgPiB0aGlzLnhsQ29sdW1uc051bWJlcikge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQ29sdW1ucyBjYW5ub3QgYmUgbW9yZSB0aGFuICR7dGhpcy54bENvbHVtbnNOdW1iZXJ9YCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBjb2x1bW5OdW1iZXI7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy54bENvbHVtbnNOdW1iZXI7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF91cGRhdGVGb3JtRmllbGRzUHJvcGVydGllcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZ2V0Rm9ybUdyb3VwQ2hpbGRyZW4oKS5mb3JFYWNoKChmb3JtRmllbGQ6IEZvcm1Hcm91cEZpZWxkKSA9PiB7XG4gICAgICAgICAgICBpZiAoaXNGaWVsZENoaWxkKGZvcm1GaWVsZCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVGb3JtRmllbGRQcm9wZXJ0aWVzKGZvcm1GaWVsZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChpc0ZpZWxkR3JvdXBDaGlsZChmb3JtRmllbGQpKSB7XG4gICAgICAgICAgICAgICAgZm9ybUZpZWxkLmZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4gdGhpcy5fdXBkYXRlRm9ybUZpZWxkUHJvcGVydGllcyhnZXRGb3JtRmllbGQoZmllbGQpKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBQYXNzIHNvbWUgZ2xvYmFsIHByb3BlcnRpZXMgdG8gZWFjaCBmaWVsZC4gRXZlbiBmb3JtR3JvdXAgY25hIGJlIGluamVjdCBkaXJlY3RseSBpbnNpZGUgZm9ybVxuICAgICAqIGZpZWxkIHdlIGFyZSB1c2luZyBoZXJlIGEgc2V0dGVyIG1ldGhvZCB0byBpbml0aWFsaXplIHRoZVxuICAgICAqXG4gICAgICovXG4gICAgcHJpdmF0ZSBfdXBkYXRlRm9ybUZpZWxkUHJvcGVydGllcyhmb3JtRmllbGQ6IFBsYXRmb3JtRm9ybUZpZWxkKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnVuaWZpZWRMYXlvdXQpIHtcbiAgICAgICAgICAgIGZvcm1GaWVsZC5lZGl0YWJsZSA9IHRoaXMuZWRpdGFibGU7XG4gICAgICAgICAgICBmb3JtRmllbGQubm9MYWJlbExheW91dCA9IHRoaXMubm9MYWJlbExheW91dDtcbiAgICAgICAgfVxuICAgICAgICBmb3JtRmllbGQuc2V0RGVmYXVsdENvbHVtbkxheW91dCgpO1xuICAgICAgICBmb3JtRmllbGQuaTE4U3RyaW5ncyA9IGZvcm1GaWVsZC5pMThTdHJpbmdzID8gZm9ybUZpZWxkLmkxOFN0cmluZ3MgOiB0aGlzLmkxOFN0cmluZ3M7XG4gICAgICAgIGZvcm1GaWVsZC5zZXRFcnJvckRpcmVjdGl2ZXModGhpcy5fZXJyb3JEaXJlY3RpdmVzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogaWYgYGNvbHVtbkxheW91dFR5cGVgIGlzIGdpdmVuLCBzZXQgdGhvc2UgY29sdW1uIGxheW91dHMgYXBwcm9wcmlhdGVseS4gT3RoZXJ3aXNlLCBhIGxheW91dCB3aWxsIHNldCBvbiAxIGNvbHVtblxuICAgICAqL1xuICAgIHByaXZhdGUgX3NldFVzZXJMYXlvdXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNvbHVtbkxheW91dCkge1xuICAgICAgICAgICAgdGhpcy5fZ2V0Q29sdW1uTnVtYmVycyh0aGlzLmNvbHVtbkxheW91dCk7XG4gICAgICAgICAgICBpZiAoaXNOYU4odGhpcy54bENvbHVtbnNOdW1iZXIpIHx8IGlzTmFOKHRoaXMubGdDb2x1bW5zTnVtYmVyKSB8fCBpc05hTih0aGlzLm1kQ29sdW1uc051bWJlcikpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0lucHV0IGEgdmFsaWQgbnVtYmVyIGZvciBjb2x1bW5zJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy54bENvbHVtbnNOdW1iZXIgPiAxMiB8fCB0aGlzLmxnQ29sdW1uc051bWJlciA+IDEyIHx8IHRoaXMubWRDb2x1bW5zTnVtYmVyID4gMTIpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvbHVtbnMgY2Fubm90IGJlIG1vcmUgdGhhbiAxMicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbGdDb2x1bW5zID0gMTIgLyB0aGlzLmxnQ29sdW1uc051bWJlcjtcbiAgICAgICAgICAgIGNvbnN0IG1kQ29sdW1ucyA9IDEyIC8gdGhpcy5tZENvbHVtbnNOdW1iZXI7XG4gICAgICAgICAgICBjb25zdCB4bENvbHVtbnMgPSAxMiAvIHRoaXMueGxDb2x1bW5zTnVtYmVyO1xuXG4gICAgICAgICAgICAvLyBmb3IgYGxnYCBzaW5nbGUtY29sdW1uIGxheW91dCwgU3R5bGVzIGRvZXMgbm90IHVzZSBhbnkgY2xhc3MsIGFuZCBwcm92aWRpbmcgYGZkLWNvbC1sZy0tMTJgIGhhcyB1bmludGVuZGVkIHNpZGUtZWZmZWN0c1xuICAgICAgICAgICAgLy8gdGhlcmVmb3JlLCB3ZSByZW1vdmUgdGhlIGxnIGNsYXNzIGZvciBzaW5nbGUtY29sdW1uIGxheW91dFxuICAgICAgICAgICAgaWYgKGxnQ29sdW1ucyA9PT0gMTIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnhsQ29sID0gYGZkLWNvbC14bC0tJHt4bENvbHVtbnN9IGZkLWNvbC1tZC0tJHttZENvbHVtbnN9YDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy54bENvbCA9IGBmZC1jb2wteGwtLSR7eGxDb2x1bW5zfSBmZC1jb2wtbWQtLSR7bWRDb2x1bW5zfSBmZC1jb2wtbGctLSR7bGdDb2x1bW5zfWA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnhsQ29sID0gYGZkLWNvbC14bC0tMTIgZmQtY29sLW1kLS0xMiBmZC1jb2wtbGctLTEyYDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2V0Q29sdW1uTnVtYmVycyhsYXlvdXQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBbeGwsIGxnLCBtZF0gPSBsYXlvdXQuc3BsaXQoJy0nKTtcbiAgICAgICAgdGhpcy54bENvbHVtbnNOdW1iZXIgPSBwYXJzZUludCh4bC5zbGljZSgyLCB4bC5sZW5ndGgpLCAxMCk7XG4gICAgICAgIHRoaXMubGdDb2x1bW5zTnVtYmVyID0gcGFyc2VJbnQobGcuc2xpY2UoMSwgbGcubGVuZ3RoKSwgMTApO1xuICAgICAgICB0aGlzLm1kQ29sdW1uc051bWJlciA9IHBhcnNlSW50KG1kLnNsaWNlKDEsIG1kLmxlbmd0aCksIDEwKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2FkZERpcmVjdEZvcm1Hcm91cENoaWxkKGNoaWxkOiBGb3JtR3JvdXBGaWVsZCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fZm9ybUdyb3VwRGlyZWN0Q2hpbGRyZW4uaW5kZXhPZihjaGlsZCkgPiAtMSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2Zvcm1Hcm91cERpcmVjdENoaWxkcmVuLnB1c2goY2hpbGQpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfcmVtb3ZlRGlyZWN0Rm9ybUdyb3VwQ2hpbGQoY2hpbGQ6IFBsYXRmb3JtRm9ybUZpZWxkIHwgRm9ybUZpZWxkR3JvdXApOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZm9ybUdyb3VwRGlyZWN0Q2hpbGRyZW4gPSB0aGlzLl9mb3JtR3JvdXBEaXJlY3RDaGlsZHJlbi5maWx0ZXIoKF9jaGlsZCkgPT4gX2NoaWxkICE9PSBjaGlsZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEdldCBkaXJlY3QgZm9ybSBncm91cCBjaGlsZHJlbiBpbiB0aGUgb3JpZ2luYWwgb3JkZXJcbiAgICAgKi9cbiAgICBwcml2YXRlIF9nZXRGb3JtR3JvdXBDaGlsZHJlbigpOiBGb3JtR3JvdXBGaWVsZFtdIHtcbiAgICAgICAgaWYgKCF0aGlzLmZvcm1Hcm91cENoaWxkcmVuKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY2hpbGRyZW4gPSB0aGlzLmZvcm1Hcm91cENoaWxkcmVuXG4gICAgICAgICAgICAudG9BcnJheSgpXG4gICAgICAgICAgICAubWFwKChjaGlsZCkgPT4gKGlzRmllbGRHcm91cFdyYXBwZXJDaGlsZChjaGlsZCkgPyBjaGlsZC5maWVsZFJlbmRlcmVyIDogY2hpbGQpKTtcblxuICAgICAgICByZXR1cm4gY2hpbGRyZW4uZmlsdGVyKChjaGlsZCkgPT4gdGhpcy5fZm9ybUdyb3VwRGlyZWN0Q2hpbGRyZW4uaW5jbHVkZXMoY2hpbGQpKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3VwZGF0ZUlubGluZUNvbHVtbkxheW91dCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faW5saW5lQ29sdW1uTGF5b3V0Q2xhc3MgPSBnZW5lcmF0ZUNvbHVtbkNsYXNzKHRoaXMuaW5saW5lQ29sdW1uTGF5b3V0KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogaGF2ZSB0byB0cmlnZ2VyIGNoYW5nZSBkZXRlY3Rpb24gaGVyZSBpbiBvcmRlciB0byByZS1jaGVjayBjb250ZW50c1xuICAgICAqIGluc2lkZSBcIkZvcm1GaWVsZC5yZW5kZXJlclwiIHRlbXBsYXRlIGV2ZXJ5IHRpbWUgY29tcG9uZW50J3MgZGltZW5zaW9ucyBjaGFuZ2VkXG4gICAgICovXG4gICAgcHJpdmF0ZSBfdHJhY2tGb3JtR3JvdXBSZXNpemUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgICAgICAgcmVzaXplT2JzZXJ2YWJsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudClcbiAgICAgICAgICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoMjApKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fY2QubWFya0ZvckNoZWNrKCkpXG4gICAgICAgICk7XG4gICAgfVxufVxuIiwiPGZvcm0gI25hdGl2ZUZvcm0gKG5nU3VibWl0KT1cIm9uU3VibWl0LmVtaXQoJGV2ZW50KVwiICpuZ0lmPVwidXNlRm9ybTsgZWxzZSBib2R5XCIgW2lkXT1cImlkXCIgW25hbWVdPVwibmFtZVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJib2R5XCI+PC9uZy1jb250YWluZXI+XG48L2Zvcm0+XG5cbjxuZy10ZW1wbGF0ZSAjYm9keT5cbiAgICA8IS0tICBSZW5kZXIgZmllbGRzIGFuZCBmaWVsZCBncm91cHMgd2l0aCBhc3NpZ25lZCBjb2x1bW5zIC0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmaWVsZHNcIj48L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZmllbGRzPlxuICAgIDxkaXYgKm5nSWY9XCJtYWluVGl0bGUgJiYgIWhpZGVNYWluVEl0bGVcIiBjbGFzcz1cImZkLWZvcm0taGVhZGVyXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJtYWluVGl0bGVUZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZmQtY29udGFpbmVyIGZkLWZvcm0tbGF5b3V0LWdyaWQtY29udGFpbmVyXCJcbiAgICAgICAgW2NsYXNzLmlzLWNvbXBhY3RdPVwiY29udGVudERlbnNpdHlPYnNlcnZlci5pc0NvbXBhY3QkIHwgYXN5bmNcIlxuICAgID5cbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGZvcm1Sb3dzIHwga2V5dmFsdWU7IHRyYWNrQnk6IHRyYWNrQnlGblwiIGNsYXNzPVwiZmQtcm93XCI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGZpZWxkcyBvZiBjb2x1bW4gfCBmaWVsZEdyb3VwUm93VmFsdWUgfCBrZXl2YWx1ZTsgdHJhY2tCeTogdHJhY2tCeUZuOyBsZXQgaW5kZXggPSBpbmRleFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmZC1jb2wgZmQtZm9ybS1ncm91cFwiXG4gICAgICAgICAgICAgICAgW2NsYXNzXT1cInhsQ29sXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmQtcm93XCIgKm5nSWY9XCIkZmllbGRHcm91cChjb2x1bW4udmFsdWUpIGFzIHZhbHVlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmZC1jb2xcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ2YWx1ZS5sYWJlbFwiIGZkcC1mb3JtLWdyb3VwLWhlYWRlciBbZmllbGRHcm91cF09XCJpbmRleCA9PT0gMCA/IHZhbHVlIDogbnVsbFwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGZpZWxkIG9mIGZpZWxkcy52YWx1ZTsgdHJhY2tCeTogdHJhY2tCeUZpZWxkTmFtZVwiIGNsYXNzPVwiZmQtcm93IGZkLWZvcm0taXRlbVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmQtY29sXCIgW2NsYXNzXT1cIl9pbmxpbmVDb2x1bW5MYXlvdXRDbGFzc1wiIFtzdHlsZS5vcmRlcl09XCJmaWVsZC5yYW5rXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZmllbGQ/LnJlbmRlcmVyIHx8IG51bGxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48IS0tIEZvciBuZXN0ZWQgZm9ybS1ncm91cCAtLT5cbjxuZy1jb250ZW50IHNlbGVjdD1cImZkcC1mb3JtLWdyb3VwXCI+PC9uZy1jb250ZW50PlxuXG48bmctdGVtcGxhdGUgI21haW5UaXRsZVRlbXBsYXRlPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJfaGludE9wdGlvbnM/LmNvbnRlbnQgJiYgX2hpbnRPcHRpb25zLnBvc2l0aW9uID09PSAnYmVmb3JlJ1wiPlxuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiaGludFRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxoNSBjbGFzcz1cImZkLWZvcm0taGVhZGVyX190ZXh0XCI+XG4gICAgICAgIHt7IG1haW5UaXRsZSB9fVxuICAgIDwvaDU+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiX2hpbnRPcHRpb25zPy5jb250ZW50ICYmIF9oaW50T3B0aW9ucy5wb3NpdGlvbiA9PT0gJ2FmdGVyJ1wiPlxuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiaGludFRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy10ZW1wbGF0ZSAjaGludFRlbXBsYXRlPlxuICAgICAgICA8c3BhbiBmZC1saW5rIFt1bmRlY29yYXRlZF09XCJ0cnVlXCI+XG4gICAgICAgICAgICA8ZmQtaWNvblxuICAgICAgICAgICAgICAgIFtmZC1pbmxpbmUtaGVscF09XCJfaGludE9wdGlvbnMuY29udGVudFwiXG4gICAgICAgICAgICAgICAgW2dseXBoXT1cIl9oaW50T3B0aW9ucy5nbHlwaFwiXG4gICAgICAgICAgICAgICAgW3BsYWNlbWVudF09XCJfaGludE9wdGlvbnMucGxhY2VtZW50IHx8IG51bGxcIlxuICAgICAgICAgICAgICAgIFt0cmlnZ2Vyc109XCJfaGludE9wdGlvbnMudHJpZ2dlciB8fCBbXVwiXG4gICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgID48L2ZkLWljb24+XG4gICAgICAgIDwvc3Bhbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==