@pepperi-addons/ngx-lib 0.2.61 → 0.3.0-beta.1

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 (301) hide show
  1. package/address/address.component.theme.scss +4 -7
  2. package/address/pepperi-addons-ngx-lib-address.metadata.json +1 -1
  3. package/attachment/attachment.component.d.ts +1 -0
  4. package/attachment/attachment.component.theme.scss +3 -2
  5. package/attachment/pepperi-addons-ngx-lib-attachment.metadata.json +1 -1
  6. package/bread-crumbs/bread-crumbs.component.theme.scss +7 -7
  7. package/bread-crumbs/pepperi-addons-ngx-lib-bread-crumbs.metadata.json +1 -1
  8. package/bundles/pepperi-addons-ngx-lib-address.umd.js +1 -1
  9. package/bundles/pepperi-addons-ngx-lib-address.umd.js.map +1 -1
  10. package/bundles/pepperi-addons-ngx-lib-attachment.umd.js +7 -2
  11. package/bundles/pepperi-addons-ngx-lib-attachment.umd.js.map +1 -1
  12. package/bundles/pepperi-addons-ngx-lib-bread-crumbs.umd.js +1 -1
  13. package/bundles/pepperi-addons-ngx-lib-bread-crumbs.umd.js.map +1 -1
  14. package/bundles/pepperi-addons-ngx-lib-button.umd.js +1 -1
  15. package/bundles/pepperi-addons-ngx-lib-button.umd.js.map +1 -1
  16. package/bundles/pepperi-addons-ngx-lib-checkbox.umd.js +4 -1
  17. package/bundles/pepperi-addons-ngx-lib-checkbox.umd.js.map +1 -1
  18. package/bundles/pepperi-addons-ngx-lib-color.umd.js +8 -3
  19. package/bundles/pepperi-addons-ngx-lib-color.umd.js.map +1 -1
  20. package/bundles/pepperi-addons-ngx-lib-date.umd.js +4 -1
  21. package/bundles/pepperi-addons-ngx-lib-date.umd.js.map +1 -1
  22. package/bundles/pepperi-addons-ngx-lib-dialog.umd.js +1 -1
  23. package/bundles/pepperi-addons-ngx-lib-dialog.umd.js.map +1 -1
  24. package/bundles/pepperi-addons-ngx-lib-field-title.umd.js +1 -1
  25. package/bundles/pepperi-addons-ngx-lib-field-title.umd.js.map +1 -1
  26. package/bundles/pepperi-addons-ngx-lib-files-uploader.umd.js +1 -1
  27. package/bundles/pepperi-addons-ngx-lib-files-uploader.umd.js.map +1 -1
  28. package/bundles/pepperi-addons-ngx-lib-form.umd.js +19 -16
  29. package/bundles/pepperi-addons-ngx-lib-form.umd.js.map +1 -1
  30. package/bundles/pepperi-addons-ngx-lib-group-buttons.umd.js +1 -1
  31. package/bundles/pepperi-addons-ngx-lib-group-buttons.umd.js.map +1 -1
  32. package/bundles/pepperi-addons-ngx-lib-image.umd.js +7 -2
  33. package/bundles/pepperi-addons-ngx-lib-image.umd.js.map +1 -1
  34. package/bundles/pepperi-addons-ngx-lib-images-filmstrip.umd.js +7 -2
  35. package/bundles/pepperi-addons-ngx-lib-images-filmstrip.umd.js.map +1 -1
  36. package/bundles/pepperi-addons-ngx-lib-list.umd.js +1 -1
  37. package/bundles/pepperi-addons-ngx-lib-list.umd.js.map +1 -1
  38. package/bundles/pepperi-addons-ngx-lib-quantity-selector.umd.js +7 -2
  39. package/bundles/pepperi-addons-ngx-lib-quantity-selector.umd.js.map +1 -1
  40. package/bundles/pepperi-addons-ngx-lib-query-builder.umd.js +1104 -0
  41. package/bundles/pepperi-addons-ngx-lib-query-builder.umd.js.map +1 -0
  42. package/bundles/pepperi-addons-ngx-lib-rich-html-textarea.umd.js +7 -2
  43. package/bundles/pepperi-addons-ngx-lib-rich-html-textarea.umd.js.map +1 -1
  44. package/bundles/pepperi-addons-ngx-lib-select.umd.js +7 -2
  45. package/bundles/pepperi-addons-ngx-lib-select.umd.js.map +1 -1
  46. package/bundles/pepperi-addons-ngx-lib-separator.umd.js +9 -1
  47. package/bundles/pepperi-addons-ngx-lib-separator.umd.js.map +1 -1
  48. package/bundles/pepperi-addons-ngx-lib-side-bar.umd.js +1 -1
  49. package/bundles/pepperi-addons-ngx-lib-side-bar.umd.js.map +1 -1
  50. package/bundles/pepperi-addons-ngx-lib-signature.umd.js +7 -2
  51. package/bundles/pepperi-addons-ngx-lib-signature.umd.js.map +1 -1
  52. package/bundles/pepperi-addons-ngx-lib-slider.umd.js +1 -1
  53. package/bundles/pepperi-addons-ngx-lib-slider.umd.js.map +1 -1
  54. package/bundles/pepperi-addons-ngx-lib-smart-filters.umd.js +306 -39
  55. package/bundles/pepperi-addons-ngx-lib-smart-filters.umd.js.map +1 -1
  56. package/bundles/pepperi-addons-ngx-lib-textarea.umd.js +7 -2
  57. package/bundles/pepperi-addons-ngx-lib-textarea.umd.js.map +1 -1
  58. package/bundles/pepperi-addons-ngx-lib-textbox.umd.js +5 -3
  59. package/bundles/pepperi-addons-ngx-lib-textbox.umd.js.map +1 -1
  60. package/bundles/pepperi-addons-ngx-lib-top-bar.umd.js +1 -1
  61. package/bundles/pepperi-addons-ngx-lib-top-bar.umd.js.map +1 -1
  62. package/bundles/pepperi-addons-ngx-lib.umd.js +3 -1
  63. package/bundles/pepperi-addons-ngx-lib.umd.js.map +1 -1
  64. package/button/button.component.theme.scss +0 -2
  65. package/button/pepperi-addons-ngx-lib-button.metadata.json +1 -1
  66. package/checkbox/checkbox.component.theme.scss +0 -2
  67. package/checkbox/pepperi-addons-ngx-lib-checkbox.metadata.json +1 -1
  68. package/color/color-picker.component.theme.scss +122 -128
  69. package/color/color.component.d.ts +1 -0
  70. package/color/color.component.theme.scss +0 -7
  71. package/color/pepperi-addons-ngx-lib-color.metadata.json +1 -1
  72. package/core/customization/customization.service.d.ts +1 -0
  73. package/date/date.component.theme.scss +163 -169
  74. package/date/pepperi-addons-ngx-lib-date.metadata.json +1 -1
  75. package/dialog/dialog.component.theme.scss +4 -4
  76. package/dialog/pepperi-addons-ngx-lib-dialog.metadata.json +1 -1
  77. package/esm2015/address/address.component.js +2 -2
  78. package/esm2015/attachment/attachment.component.js +8 -3
  79. package/esm2015/bread-crumbs/bread-crumbs.component.js +2 -2
  80. package/esm2015/button/button.component.js +2 -2
  81. package/esm2015/checkbox/checkbox.component.js +5 -2
  82. package/esm2015/color/color-picker.component.js +2 -2
  83. package/esm2015/color/color.component.js +8 -3
  84. package/esm2015/core/customization/customization.service.js +4 -2
  85. package/esm2015/date/date.component.js +5 -2
  86. package/esm2015/dialog/dialog.component.js +2 -2
  87. package/esm2015/field-title/field-title.component.js +2 -2
  88. package/esm2015/files-uploader/files-uploader.component.js +2 -2
  89. package/esm2015/form/indicators.component.js +2 -2
  90. package/esm2015/form/internal-button.component.js +20 -17
  91. package/esm2015/group-buttons/group-buttons.component.js +2 -2
  92. package/esm2015/image/image.component.js +8 -3
  93. package/esm2015/images-filmstrip/images-filmstrip.component.js +8 -3
  94. package/esm2015/list/list-total.component.js +2 -2
  95. package/esm2015/quantity-selector/quantity-selector.component.js +8 -3
  96. package/esm2015/query-builder/common/model/field.js +2 -0
  97. package/esm2015/query-builder/common/model/filter.js +2 -0
  98. package/esm2015/query-builder/common/model/legacy.js +2 -0
  99. package/esm2015/query-builder/common/model/operator-unit.js +42 -0
  100. package/esm2015/query-builder/common/model/operator.js +207 -0
  101. package/esm2015/query-builder/common/model/structure.js +2 -0
  102. package/esm2015/query-builder/common/model/type-map.js +27 -0
  103. package/esm2015/query-builder/common/model/type.js +6 -0
  104. package/esm2015/query-builder/common/services/output-query.service.js +111 -0
  105. package/esm2015/query-builder/common/services/type-convertor.service.js +40 -0
  106. package/esm2015/query-builder/pepperi-addons-ngx-lib-query-builder.js +9 -0
  107. package/esm2015/query-builder/public-api.js +8 -0
  108. package/esm2015/query-builder/query-builder-item/query-builder-item.component.js +116 -0
  109. package/esm2015/query-builder/query-builder-section/query-builder-section.component.js +64 -0
  110. package/esm2015/query-builder/query-builder.component.js +104 -0
  111. package/esm2015/query-builder/query-builder.module.js +35 -0
  112. package/esm2015/query-builder/query-builder.service.js +282 -0
  113. package/esm2015/rich-html-textarea/rich-html-textarea.component.js +8 -3
  114. package/esm2015/select/select.component.js +8 -3
  115. package/esm2015/separator/separator.component.js +10 -2
  116. package/esm2015/side-bar/side-bar.component.js +2 -2
  117. package/esm2015/signature/signature.component.js +8 -3
  118. package/esm2015/slider/slider.component.js +2 -2
  119. package/esm2015/smart-filters/boolean-filter/boolean-filter.component.js +23 -3
  120. package/esm2015/smart-filters/common/model/base-filter-component.js +35 -8
  121. package/esm2015/smart-filters/common/model/creator.js +8 -2
  122. package/esm2015/smart-filters/common/model/field.js +12 -1
  123. package/esm2015/smart-filters/common/model/operator.js +8 -8
  124. package/esm2015/smart-filters/common/model/type.js +1 -1
  125. package/esm2015/smart-filters/date-filter/date-filter.component.js +45 -2
  126. package/esm2015/smart-filters/multi-select-filter/multi-select-filter.component.js +53 -14
  127. package/esm2015/smart-filters/number-filter/number-filter.component.js +27 -2
  128. package/esm2015/smart-filters/public-api.js +2 -1
  129. package/esm2015/smart-filters/smart-filters.component.js +2 -2
  130. package/esm2015/smart-filters/smart-filters.module.js +16 -3
  131. package/esm2015/smart-filters/text-filter/text-filter.component.js +79 -0
  132. package/esm2015/textarea/textarea.component.js +8 -3
  133. package/esm2015/textbox/textbox.component.js +6 -4
  134. package/esm2015/top-bar/top-bar.component.js +2 -2
  135. package/fesm2015/pepperi-addons-ngx-lib-address.js +1 -1
  136. package/fesm2015/pepperi-addons-ngx-lib-address.js.map +1 -1
  137. package/fesm2015/pepperi-addons-ngx-lib-attachment.js +7 -2
  138. package/fesm2015/pepperi-addons-ngx-lib-attachment.js.map +1 -1
  139. package/fesm2015/pepperi-addons-ngx-lib-bread-crumbs.js +1 -1
  140. package/fesm2015/pepperi-addons-ngx-lib-bread-crumbs.js.map +1 -1
  141. package/fesm2015/pepperi-addons-ngx-lib-button.js +1 -1
  142. package/fesm2015/pepperi-addons-ngx-lib-button.js.map +1 -1
  143. package/fesm2015/pepperi-addons-ngx-lib-checkbox.js +4 -1
  144. package/fesm2015/pepperi-addons-ngx-lib-checkbox.js.map +1 -1
  145. package/fesm2015/pepperi-addons-ngx-lib-color.js +8 -3
  146. package/fesm2015/pepperi-addons-ngx-lib-color.js.map +1 -1
  147. package/fesm2015/pepperi-addons-ngx-lib-date.js +4 -1
  148. package/fesm2015/pepperi-addons-ngx-lib-date.js.map +1 -1
  149. package/fesm2015/pepperi-addons-ngx-lib-dialog.js +1 -1
  150. package/fesm2015/pepperi-addons-ngx-lib-dialog.js.map +1 -1
  151. package/fesm2015/pepperi-addons-ngx-lib-field-title.js +1 -1
  152. package/fesm2015/pepperi-addons-ngx-lib-field-title.js.map +1 -1
  153. package/fesm2015/pepperi-addons-ngx-lib-files-uploader.js +1 -1
  154. package/fesm2015/pepperi-addons-ngx-lib-files-uploader.js.map +1 -1
  155. package/fesm2015/pepperi-addons-ngx-lib-form.js +19 -16
  156. package/fesm2015/pepperi-addons-ngx-lib-form.js.map +1 -1
  157. package/fesm2015/pepperi-addons-ngx-lib-group-buttons.js +1 -1
  158. package/fesm2015/pepperi-addons-ngx-lib-group-buttons.js.map +1 -1
  159. package/fesm2015/pepperi-addons-ngx-lib-image.js +7 -2
  160. package/fesm2015/pepperi-addons-ngx-lib-image.js.map +1 -1
  161. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.js +7 -2
  162. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.js.map +1 -1
  163. package/fesm2015/pepperi-addons-ngx-lib-list.js +1 -1
  164. package/fesm2015/pepperi-addons-ngx-lib-list.js.map +1 -1
  165. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.js +7 -2
  166. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.js.map +1 -1
  167. package/fesm2015/pepperi-addons-ngx-lib-query-builder.js +1014 -0
  168. package/fesm2015/pepperi-addons-ngx-lib-query-builder.js.map +1 -0
  169. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.js +7 -2
  170. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.js.map +1 -1
  171. package/fesm2015/pepperi-addons-ngx-lib-select.js +7 -2
  172. package/fesm2015/pepperi-addons-ngx-lib-select.js.map +1 -1
  173. package/fesm2015/pepperi-addons-ngx-lib-separator.js +9 -1
  174. package/fesm2015/pepperi-addons-ngx-lib-separator.js.map +1 -1
  175. package/fesm2015/pepperi-addons-ngx-lib-side-bar.js +1 -1
  176. package/fesm2015/pepperi-addons-ngx-lib-side-bar.js.map +1 -1
  177. package/fesm2015/pepperi-addons-ngx-lib-signature.js +7 -2
  178. package/fesm2015/pepperi-addons-ngx-lib-signature.js.map +1 -1
  179. package/fesm2015/pepperi-addons-ngx-lib-slider.js +1 -1
  180. package/fesm2015/pepperi-addons-ngx-lib-slider.js.map +1 -1
  181. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.js +293 -36
  182. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.js.map +1 -1
  183. package/fesm2015/pepperi-addons-ngx-lib-textarea.js +7 -2
  184. package/fesm2015/pepperi-addons-ngx-lib-textarea.js.map +1 -1
  185. package/fesm2015/pepperi-addons-ngx-lib-textbox.js +5 -3
  186. package/fesm2015/pepperi-addons-ngx-lib-textbox.js.map +1 -1
  187. package/fesm2015/pepperi-addons-ngx-lib-top-bar.js +1 -1
  188. package/fesm2015/pepperi-addons-ngx-lib-top-bar.js.map +1 -1
  189. package/fesm2015/pepperi-addons-ngx-lib.js +3 -1
  190. package/fesm2015/pepperi-addons-ngx-lib.js.map +1 -1
  191. package/field-title/field-title.component.theme.scss +0 -2
  192. package/field-title/pepperi-addons-ngx-lib-field-title.metadata.json +1 -1
  193. package/files-uploader/files-uploader.component.theme.scss +3 -2
  194. package/files-uploader/pepperi-addons-ngx-lib-files-uploader.metadata.json +1 -1
  195. package/form/indicators.component.theme.scss +5 -5
  196. package/form/internal-button.component.d.ts +0 -1
  197. package/form/pepperi-addons-ngx-lib-form.metadata.json +1 -1
  198. package/group-buttons/group-buttons.component.theme.scss +11 -11
  199. package/group-buttons/pepperi-addons-ngx-lib-group-buttons.metadata.json +1 -1
  200. package/image/image.component.d.ts +1 -0
  201. package/image/image.component.theme.scss +28 -27
  202. package/image/pepperi-addons-ngx-lib-image.metadata.json +1 -1
  203. package/images-filmstrip/images-filmstrip.component.d.ts +1 -0
  204. package/images-filmstrip/images-filmstrip.component.theme.scss +27 -26
  205. package/images-filmstrip/pepperi-addons-ngx-lib-images-filmstrip.metadata.json +1 -1
  206. package/list/list-total.component.theme.scss +6 -6
  207. package/list/pepperi-addons-ngx-lib-list.metadata.json +1 -1
  208. package/package.json +5 -5
  209. package/page-layout/page-layout.component.theme.scss +6 -6
  210. package/pepperi-addons-ngx-lib.metadata.json +1 -1
  211. package/quantity-selector/pepperi-addons-ngx-lib-quantity-selector.metadata.json +1 -1
  212. package/quantity-selector/quantity-selector.component.d.ts +1 -0
  213. package/quantity-selector/quantity-selector.component.theme.scss +21 -21
  214. package/query-builder/common/model/field.d.ts +8 -0
  215. package/query-builder/common/model/filter.d.ts +6 -0
  216. package/query-builder/common/model/legacy.d.ts +29 -0
  217. package/query-builder/common/model/operator-unit.d.ts +13 -0
  218. package/query-builder/common/model/operator.d.ts +21 -0
  219. package/query-builder/common/model/structure.d.ts +4 -0
  220. package/query-builder/common/model/type-map.d.ts +12 -0
  221. package/query-builder/common/model/type.d.ts +4 -0
  222. package/query-builder/common/services/output-query.service.d.ts +44 -0
  223. package/query-builder/common/services/type-convertor.service.d.ts +10 -0
  224. package/query-builder/package.json +14 -0
  225. package/query-builder/pepperi-addons-ngx-lib-query-builder.d.ts +8 -0
  226. package/query-builder/pepperi-addons-ngx-lib-query-builder.metadata.json +1 -0
  227. package/query-builder/public-api.d.ts +4 -0
  228. package/query-builder/query-builder-item/query-builder-item.component.d.ts +37 -0
  229. package/query-builder/query-builder-section/query-builder-section.component.d.ts +27 -0
  230. package/query-builder/query-builder-section/query-builder-section.component.theme.scss +7 -0
  231. package/query-builder/query-builder.component.d.ts +35 -0
  232. package/query-builder/query-builder.module.d.ts +2 -0
  233. package/query-builder/query-builder.service.d.ts +94 -0
  234. package/rich-html-textarea/pepperi-addons-ngx-lib-rich-html-textarea.metadata.json +1 -1
  235. package/rich-html-textarea/rich-html-textarea.component.d.ts +1 -0
  236. package/rich-html-textarea/rich-html-textarea.component.theme.scss +77 -70
  237. package/select/pepperi-addons-ngx-lib-select.metadata.json +1 -1
  238. package/select/select.component.d.ts +1 -0
  239. package/select/select.component.theme.scss +98 -2
  240. package/separator/pepperi-addons-ngx-lib-separator.metadata.json +1 -1
  241. package/separator/separator.component.theme.scss +1 -1
  242. package/side-bar/pepperi-addons-ngx-lib-side-bar.metadata.json +1 -1
  243. package/side-bar/side-bar.component.theme.scss +17 -16
  244. package/signature/pepperi-addons-ngx-lib-signature.metadata.json +1 -1
  245. package/signature/signature.component.d.ts +1 -0
  246. package/signature/signature.component.theme.scss +5 -21
  247. package/slider/pepperi-addons-ngx-lib-slider.metadata.json +1 -1
  248. package/slider/slider.component.theme.scss +54 -53
  249. package/smart-filters/boolean-filter/boolean-filter.component.d.ts +6 -1
  250. package/smart-filters/common/model/base-filter-component.d.ts +7 -0
  251. package/smart-filters/common/model/field.d.ts +4 -0
  252. package/smart-filters/common/model/operator.d.ts +1 -0
  253. package/smart-filters/common/model/type.d.ts +2 -2
  254. package/smart-filters/date-filter/date-filter.component.d.ts +8 -1
  255. package/smart-filters/multi-select-filter/multi-select-filter.component.d.ts +6 -0
  256. package/smart-filters/number-filter/number-filter.component.d.ts +5 -0
  257. package/smart-filters/pepperi-addons-ngx-lib-smart-filters.metadata.json +1 -1
  258. package/smart-filters/public-api.d.ts +1 -0
  259. package/smart-filters/smart-filters.component.theme.scss +6 -7
  260. package/smart-filters/text-filter/text-filter.component.d.ts +17 -0
  261. package/src/assets/i18n/en.ngx-lib.json +2 -1
  262. package/src/core/style/abstracts/breakpoints.scss +4 -2
  263. package/src/core/style/abstracts/functions.scss +232 -216
  264. package/src/core/style/abstracts/mixins.scss +191 -188
  265. package/src/core/style/base/base.scss +125 -124
  266. package/src/core/style/base/grids.scss +1 -1
  267. package/src/core/style/base/typography.scss +66 -62
  268. package/src/core/style/components/button.scss +57 -60
  269. package/src/core/style/components/checkbox.scss +41 -38
  270. package/src/core/style/components/datetime.scss +182 -22
  271. package/src/core/style/components/file.scss +159 -141
  272. package/src/core/style/components/general.scss +175 -287
  273. package/src/core/style/components/input.scss +22 -24
  274. package/src/core/style/components/quantity-selector.scss +15 -12
  275. package/src/core/style/components/radio-button.scss +22 -38
  276. package/src/core/style/components/select.scss +184 -182
  277. package/src/core/style/components/signature.scss +14 -12
  278. package/src/core/style/components/splitter.scss +58 -55
  279. package/src/core/style/components/textarea.scss +90 -78
  280. package/textarea/pepperi-addons-ngx-lib-textarea.metadata.json +1 -1
  281. package/textarea/textarea.component.d.ts +1 -0
  282. package/textarea/textarea.component.theme.scss +3 -2
  283. package/textbox/pepperi-addons-ngx-lib-textbox.metadata.json +1 -1
  284. package/textbox/textbox.component.theme.scss +1 -1
  285. package/theming.scss +50 -144
  286. package/top-bar/pepperi-addons-ngx-lib-top-bar.metadata.json +1 -1
  287. package/top-bar/top-bar.component.theme.scss +7 -7
  288. package/form/form.component.theme.scss +0 -2
  289. package/form/internal-button.component.theme.scss +0 -2
  290. package/form/internal-menu.component.theme.scss +0 -3
  291. package/list/list-actions.component.theme.scss +0 -3
  292. package/list/list-carousel.component.theme.scss +0 -9
  293. package/list/list-chooser.component.theme.scss +0 -3
  294. package/list/list-pager.component.theme.scss +0 -3
  295. package/list/list-sorting.component.theme.scss +0 -3
  296. package/list/list-views.component.theme.scss +0 -3
  297. package/list/list.component.theme.scss +0 -5
  298. package/list/list_old.component.theme.scss +0 -5
  299. package/menu/menu.component.theme.scss +0 -2
  300. package/search/search.component.theme.scss +0 -3
  301. package/textbox-icon/textbox-icon.component.theme.scss +0 -3
@@ -29,6 +29,7 @@ export class PepQuantitySelectorComponent {
29
29
  this.controlType = 'qs';
30
30
  this.form = null;
31
31
  this.showTitle = true;
32
+ this.renderTitle = true;
32
33
  this.layoutType = 'form';
33
34
  this.isActive = false;
34
35
  // Get default style from theme.
@@ -168,6 +169,9 @@ export class PepQuantitySelectorComponent {
168
169
  this.standAlone = true;
169
170
  this.setForm();
170
171
  this.renderer.addClass(this.element.nativeElement, PepCustomizationService.STAND_ALONE_FIELD_CLASS_NAME);
172
+ if (!this.renderTitle) {
173
+ this.renderer.addClass(this.element.nativeElement, PepCustomizationService.STAND_ALONE_FIELD_NO_SPACING_CLASS_NAME);
174
+ }
171
175
  }
172
176
  this.qsWidthSubject
173
177
  .asObservable()
@@ -400,7 +404,7 @@ PepQuantitySelectorComponent.MINUS = '[-]';
400
404
  PepQuantitySelectorComponent.decorators = [
401
405
  { type: Component, args: [{
402
406
  selector: 'pep-quantity-selector',
403
- template: "<ng-container [formGroup]=\"form\">\n <ng-template #pepTemplate>\n <div #QSCont class=\"pep-quantity-selector-container {{ styleType }}\" [ngClass]=\"{\n 'hide-qs-actions' : layoutType === 'card' && rowSpan <= 1,\n 'pep-table-quantity-selector': layoutType === 'table',\n 'one-row': rowSpan === 1,\n caution: isCaution,\n 'matrix-qs': type === 'qsForMatrix',\n 'zero-quantity': formattedValue === '0'\n }\">\n <pep-field-title *ngIf=\"layoutType !== 'table' && layoutType !== 'card'\" [label]=\"label\"\n [mandatory]=\"mandatory\" [disabled]=\"disabled\" [showTitle]=\"showTitle\" [xAlignment]=\"xAlignment\">\n </pep-field-title>\n\n <ng-container *ngIf=\"type == 'qs'\">\n <ng-container *ngIf=\"readonly; then readonlyBlock; else editableQSBlock\"></ng-container>\n <ng-template #readonlyBlock>\n <button [id]=\"key\" mat-button class=\"pep-button {{ styleType }} disable \"\n [ngClass]=\"{caution: isCaution, md: rowSpan !== 1, xs: rowSpan === 1}\"\n title=\"{{ formattedValue }}\" disabled=\"true\">\n <span class=\"ellipsis\">\n {{ formattedValue }}\n </span>\n </button>\n </ng-template>\n <ng-template #editableQSBlock>\n <mat-form-field appearance=\"outline\">\n <input pepQsValidation [allowDecimal]=\"allowDecimal\" type=\"decimalNumber\" inputmode=\"decimal\"\n matInput #QSInput name=\"{{ key }}\" class=\"body-lg ellipsis\" title=\"{{ formattedValue }}\"\n autocomplete=\"off\" [id]=\"key\" [formControlName]=\"key\" [value]=\"displayValue\"\n (click)=\"$event.target.setSelectionRange(0, 999)\" (keydown)=\"onKeydown($event)\"\n (blur)=\"onBlur($event)\" (focus)=\"onFocus($event)\" />\n <button *ngIf=\"showQsBtn\" mat-button matPrefix (click)=\"decrement($event)\"\n class=\"pep-button icon-button sm weak qs-action\" [disabled]=\"disabled\" [ngClass]=\"{ disable: disabled, caution: isCaution && styleType !== 'strong',\n 'keep-background-on-focus': styleType === 'strong'}\">\n <mat-icon>\n <pep-icon name=\"number_minus\">\n </pep-icon>\n </mat-icon>\n </button>\n <button *ngIf=\"showQsBtn\" mat-button matSuffix (click)=\"increment($event)\"\n class=\"pep-button icon-button sm weak qs-action\" [disabled]=\"disabled\" [ngClass]=\"{ disable: disabled, caution: isCaution && styleType !== 'strong',\n 'keep-background-on-focus': styleType === 'strong'}\">\n <mat-icon>\n <pep-icon name=\"number_plus\">\n </pep-icon>\n </mat-icon>\n </button>\n <mat-error *ngIf=\"messages?.length > 0\">\n <span class=\"qs-error body-xs\" *ngFor=\"let msg of messages\"> {{ msg.Key | translate }} :\n {{ msg.Value }} </span>\n </mat-error>\n </mat-form-field>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"type == 'qsForMatrix'\">\n <ng-container *ngIf=\"readonly; then readonlyBlock; else editableQSBlock\"></ng-container>\n <ng-template #readonlyBlock>\n <button [id]=\"key\" mat-button class=\"pep-button {{ styleType }} disable\" disabled=\"true\"\n [ngClass]=\"{caution: isCaution, md: rowSpan !== 1, xs: rowSpan === 1}\">\n X\n </button>\n </ng-template>\n <ng-template #editableQSBlock>\n <span *ngIf=\" xAlignment=='right'\" class=\" body-sm additional-value prefix\"\n matBadge=\"{{ additionalValue }}\" matBadgePosition=\"before\"\n matBadgeSize=\"rowSpan === 1 ? small : medium\" [@showHide]=\"getAdditionalValue\"></span>\n\n <mat-form-field appearance=\"outline\" (mouseleave)=\"!isInFocus ? onMatrixMouseleave($event) : null\">\n <input pepQsValidation [allowDecimal]=\"allowDecimal\" type=\"decimalNumber\" inputmode=\"decimal\"\n matInput #QSInput name=\"{{ key }}\" title=\"{{ formattedValue }}\" class=\"body-sm ellipsis\"\n autocomplete=\"off\" [id]=\"key\" [formControlName]=\"key\" [value]=\"displayValue\"\n (click)=\"onMatrixClick($event); $event.target.setSelectionRange(0, 999)\"\n (keydown)=\"onKeydown($event)\" (blur)=\"onMatrixBlur($event)\"\n (focus)=\"onMatrixMouseEnter($event); onFocus($event)\"\n (mouseenter)=\"onMatrixMouseEnter($event)\" />\n\n <mat-error *ngIf=\"messages?.length > 0\">\n <span class=\"qs-error body-xs\" *ngFor=\"let msg of messages\"> {{ msg.Key | translate }} :\n {{ msg.Value }} </span>\n </mat-error>\n </mat-form-field>\n\n <span *ngIf=\"xAlignment != 'right'\" class=\"body-sm additional-value suffix\"\n matBadge=\"{{ additionalValue }}\" matBadgePosition=\"before\"\n matBadgeSize=\"rowSpan === 1 ? small : medium\" [@showHide]=\"getAdditionalValue\"></span>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"type == 'button'\">\n <ng-container *ngIf=\"(value | pepToNumber) == 0; then regularBlock; else withBadgeBlock\">\n </ng-container>\n <ng-template #regularBlock>\n <button mat-button [disabled]=\"disabled\" class=\"pep-button {{ styleType }} \" [id]=\"key\"\n name=\"{{ key }}\"\n [ngClass]=\"{ disable: disabled, caution: isCaution, md: rowSpan !== 1, xs: rowSpan === 1}\"\n [title]=\"'QS.ORDER' | translate\" (click)=\"enterChildren($event)\">\n <span class=\"ellipsis\">\n {{ 'QS.ORDER' | translate }}\n </span>\n </button>\n </ng-template>\n <ng-template #withBadgeBlock>\n <button mat-button matBadge=\"{{ formattedValue }}\"\n matBadgePosition=\"{{xAlignment == 'right' ? 'before' : 'after'}}\"\n [matBadgeSize]=\"layoutType === 'card' && rowSpan === 1 ? 'small' : 'medium'\"\n class=\"pep-button {{ styleType }} \" [id]=\"key\" name=\"{{ key }}\" [ngClass]=\"{ disable: disabled, caution: isCaution, md: rowSpan !== 1, xs: rowSpan === 1,\n 'right-alignment': xAlignment == 'right', 'left-alignment': xAlignment != 'right'}\"\n [title]=\"'QS.ORDER' | translate\" (click)=\"enterChildren($event)\" [disabled]=\"disabled\">\n <span class=\"ellipsis\">\n {{ 'QS.ORDER' | translate }}\n </span>\n </button>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"type == 'packageButton'\">\n <button mat-button class=\"pep-button {{ styleType }} \" [id]=\"key\" name=\"{{ key }}\"\n [ngClass]=\"{ disable: disabled, caution: isCaution, md: rowSpan !== 1, xs: rowSpan === 1}\"\n [title]=\"'QS.ORDER' | translate\" (click)=\"enterPackage($event)\" [disabled]=\"disabled\">\n <span class=\"ellipsis\">\n {{ 'QS.ORDER' | translate }} &#40;{{ formattedValue }}&#41;\n </span>\n </button>\n </ng-container>\n </div>\n </ng-template>\n\n <ng-container *ngIf=\"layoutType === 'form'\">\n <ng-container *ngTemplateOutlet=\"pepTemplate\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"layoutType === 'card'\">\n <ng-container *ngTemplateOutlet=\"pepTemplate\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"layoutType === 'table'\">\n <ng-container *ngTemplateOutlet=\"pepTemplate\"></ng-container>\n </ng-container>\n</ng-container>",
407
+ template: "<ng-container [formGroup]=\"form\">\n <ng-template #pepTemplate>\n <div #QSCont class=\"pep-quantity-selector-container {{ styleType }}\" [ngClass]=\"{\n 'hide-qs-actions' : layoutType === 'card' && rowSpan <= 1,\n 'pep-table-quantity-selector': layoutType === 'table',\n 'one-row': rowSpan === 1,\n caution: isCaution,\n 'matrix-qs': type === 'qsForMatrix',\n 'zero-quantity': formattedValue === '0'\n }\">\n <pep-field-title *ngIf=\"renderTitle && layoutType !== 'table' && layoutType !== 'card'\" [label]=\"label\"\n [mandatory]=\"mandatory\" [disabled]=\"disabled\" [showTitle]=\"showTitle\" [xAlignment]=\"xAlignment\">\n </pep-field-title>\n\n <ng-container *ngIf=\"type == 'qs'\">\n <ng-container *ngIf=\"readonly; then readonlyBlock; else editableQSBlock\"></ng-container>\n <ng-template #readonlyBlock>\n <button [id]=\"key\" mat-button class=\"pep-button {{ styleType }} disable \"\n [ngClass]=\"{caution: isCaution, md: rowSpan !== 1, xs: rowSpan === 1}\"\n title=\"{{ formattedValue }}\" disabled=\"true\">\n <span class=\"ellipsis\">\n {{ formattedValue }}\n </span>\n </button>\n </ng-template>\n <ng-template #editableQSBlock>\n <mat-form-field appearance=\"outline\">\n <input pepQsValidation [allowDecimal]=\"allowDecimal\" type=\"decimalNumber\" inputmode=\"decimal\"\n matInput #QSInput name=\"{{ key }}\" class=\"body-lg ellipsis\" title=\"{{ formattedValue }}\"\n autocomplete=\"off\" [id]=\"key\" [formControlName]=\"key\" [value]=\"displayValue\"\n (click)=\"$event.target.setSelectionRange(0, 999)\" (keydown)=\"onKeydown($event)\"\n (blur)=\"onBlur($event)\" (focus)=\"onFocus($event)\" />\n <button *ngIf=\"showQsBtn\" mat-button matPrefix (click)=\"decrement($event)\"\n class=\"pep-button icon-button sm weak qs-action\" [disabled]=\"disabled\" [ngClass]=\"{ disable: disabled, caution: isCaution && styleType !== 'strong',\n 'keep-background-on-focus': styleType === 'strong'}\">\n <mat-icon>\n <pep-icon name=\"number_minus\">\n </pep-icon>\n </mat-icon>\n </button>\n <button *ngIf=\"showQsBtn\" mat-button matSuffix (click)=\"increment($event)\"\n class=\"pep-button icon-button sm weak qs-action\" [disabled]=\"disabled\" [ngClass]=\"{ disable: disabled, caution: isCaution && styleType !== 'strong',\n 'keep-background-on-focus': styleType === 'strong'}\">\n <mat-icon>\n <pep-icon name=\"number_plus\">\n </pep-icon>\n </mat-icon>\n </button>\n <mat-error *ngIf=\"messages?.length > 0\">\n <span class=\"qs-error body-xs\" *ngFor=\"let msg of messages\"> {{ msg.Key | translate }} :\n {{ msg.Value }} </span>\n </mat-error>\n </mat-form-field>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"type == 'qsForMatrix'\">\n <ng-container *ngIf=\"readonly; then readonlyBlock; else editableQSBlock\"></ng-container>\n <ng-template #readonlyBlock>\n <button [id]=\"key\" mat-button class=\"pep-button {{ styleType }} disable\" disabled=\"true\"\n [ngClass]=\"{caution: isCaution, md: rowSpan !== 1, xs: rowSpan === 1}\">\n X\n </button>\n </ng-template>\n <ng-template #editableQSBlock>\n <span *ngIf=\" xAlignment=='right'\" class=\" body-sm additional-value prefix\"\n matBadge=\"{{ additionalValue }}\" matBadgePosition=\"before\"\n matBadgeSize=\"rowSpan === 1 ? small : medium\" [@showHide]=\"getAdditionalValue\"></span>\n\n <mat-form-field appearance=\"outline\" (mouseleave)=\"!isInFocus ? onMatrixMouseleave($event) : null\">\n <input pepQsValidation [allowDecimal]=\"allowDecimal\" type=\"decimalNumber\" inputmode=\"decimal\"\n matInput #QSInput name=\"{{ key }}\" title=\"{{ formattedValue }}\" class=\"body-sm ellipsis\"\n autocomplete=\"off\" [id]=\"key\" [formControlName]=\"key\" [value]=\"displayValue\"\n (click)=\"onMatrixClick($event); $event.target.setSelectionRange(0, 999)\"\n (keydown)=\"onKeydown($event)\" (blur)=\"onMatrixBlur($event)\"\n (focus)=\"onMatrixMouseEnter($event); onFocus($event)\"\n (mouseenter)=\"onMatrixMouseEnter($event)\" />\n\n <mat-error *ngIf=\"messages?.length > 0\">\n <span class=\"qs-error body-xs\" *ngFor=\"let msg of messages\"> {{ msg.Key | translate }} :\n {{ msg.Value }} </span>\n </mat-error>\n </mat-form-field>\n\n <span *ngIf=\"xAlignment != 'right'\" class=\"body-sm additional-value suffix\"\n matBadge=\"{{ additionalValue }}\" matBadgePosition=\"before\"\n matBadgeSize=\"rowSpan === 1 ? small : medium\" [@showHide]=\"getAdditionalValue\"></span>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"type == 'button'\">\n <ng-container *ngIf=\"(value | pepToNumber) == 0; then regularBlock; else withBadgeBlock\">\n </ng-container>\n <ng-template #regularBlock>\n <button mat-button [disabled]=\"disabled\" class=\"pep-button {{ styleType }} \" [id]=\"key\"\n name=\"{{ key }}\"\n [ngClass]=\"{ disable: disabled, caution: isCaution, md: rowSpan !== 1, xs: rowSpan === 1}\"\n [title]=\"'QS.ORDER' | translate\" (click)=\"enterChildren($event)\">\n <span class=\"ellipsis\">\n {{ 'QS.ORDER' | translate }}\n </span>\n </button>\n </ng-template>\n <ng-template #withBadgeBlock>\n <button mat-button matBadge=\"{{ formattedValue }}\"\n matBadgePosition=\"{{xAlignment == 'right' ? 'before' : 'after'}}\"\n [matBadgeSize]=\"layoutType === 'card' && rowSpan === 1 ? 'small' : 'medium'\"\n class=\"pep-button {{ styleType }} \" [id]=\"key\" name=\"{{ key }}\" [ngClass]=\"{ disable: disabled, caution: isCaution, md: rowSpan !== 1, xs: rowSpan === 1,\n 'right-alignment': xAlignment == 'right', 'left-alignment': xAlignment != 'right'}\"\n [title]=\"'QS.ORDER' | translate\" (click)=\"enterChildren($event)\" [disabled]=\"disabled\">\n <span class=\"ellipsis\">\n {{ 'QS.ORDER' | translate }}\n </span>\n </button>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"type == 'packageButton'\">\n <button mat-button class=\"pep-button {{ styleType }} \" [id]=\"key\" name=\"{{ key }}\"\n [ngClass]=\"{ disable: disabled, caution: isCaution, md: rowSpan !== 1, xs: rowSpan === 1}\"\n [title]=\"'QS.ORDER' | translate\" (click)=\"enterPackage($event)\" [disabled]=\"disabled\">\n <span class=\"ellipsis\">\n {{ 'QS.ORDER' | translate }} &#40;{{ formattedValue }}&#41;\n </span>\n </button>\n </ng-container>\n </div>\n </ng-template>\n\n <ng-container *ngIf=\"layoutType === 'form'\">\n <ng-container *ngTemplateOutlet=\"pepTemplate\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"layoutType === 'card'\">\n <ng-container *ngTemplateOutlet=\"pepTemplate\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"layoutType === 'table'\">\n <ng-container *ngTemplateOutlet=\"pepTemplate\"></ng-container>\n </ng-container>\n</ng-container>",
404
408
  changeDetection: ChangeDetectionStrategy.OnPush,
405
409
  animations: [
406
410
  trigger('showHide', [
@@ -416,7 +420,7 @@ PepQuantitySelectorComponent.decorators = [
416
420
  transition('hide => show', animate('250ms ease-in')),
417
421
  ]),
418
422
  ],
419
- styles: [":host{height:inherit;display:grid}.pep-quantity-selector-container,.pepperi-quantity-selector-container{display:flex;flex-flow:wrap;align-items:center;min-width:2rem;width:100%;height:inherit}.pep-quantity-selector-container input::-webkit-inner-spin-button,.pep-quantity-selector-container input::-webkit-outer-spin-button,.pepperi-quantity-selector-container input::-webkit-inner-spin-button,.pepperi-quantity-selector-container input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.pep-quantity-selector-container input[type=number],.pepperi-quantity-selector-container input[type=number]{-moz-appearance:textfield}.pep-quantity-selector-container .mat-input-element,.pepperi-quantity-selector-container .mat-input-element{padding:0 .25rem;text-align:center;font-weight:600;font-weight:var(--pep-font-weight-bold,600);width:100%}.pep-quantity-selector-container .mat-form-field .mat-form-field-wrapper .mat-form-field-subscript-wrapper,.pepperi-quantity-selector-container .mat-form-field .mat-form-field-wrapper .mat-form-field-subscript-wrapper{height:unset}.pep-quantity-selector-container .pep-button,.pep-quantity-selector-container .pepperi-button,.pepperi-quantity-selector-container .pep-button,.pepperi-quantity-selector-container .pepperi-button{width:100%}.pep-quantity-selector-container .pep-button.qs-action,.pep-quantity-selector-container .pepperi-button.qs-action,.pepperi-quantity-selector-container .pep-button.qs-action,.pepperi-quantity-selector-container .pepperi-button.qs-action{min-width:2rem;line-height:2rem;width:2rem!important;height:2rem!important}.pep-quantity-selector-container .pep-button.qs-action .mat-icon,.pep-quantity-selector-container .pepperi-button.qs-action .mat-icon,.pepperi-quantity-selector-container .pep-button.qs-action .mat-icon,.pepperi-quantity-selector-container .pepperi-button.qs-action .mat-icon{height:inherit;width:inherit}.pep-quantity-selector-container .qs-error,.pepperi-quantity-selector-container .qs-error{display:block}.pep-quantity-selector-container.hide-qs-actions .pep-button.qs-action,.pep-quantity-selector-container.hide-qs-actions .pepperi-button.qs-action,.pepperi-quantity-selector-container.hide-qs-actions .pep-button.qs-action,.pepperi-quantity-selector-container.hide-qs-actions .pepperi-button.qs-action{display:none}.pep-quantity-selector-container.matrix-qs .additional-value,.pepperi-quantity-selector-container.matrix-qs .additional-value{height:1.25rem;top:calc(.25rem * -1);top:calc(var(--pep-spacing-xs, .25rem) * -1);transform:unset!important;display:flex;align-self:flex-start;justify-content:flex-end}.pep-quantity-selector-container.matrix-qs .additional-value.prefix,.pepperi-quantity-selector-container.matrix-qs .additional-value.prefix{left:calc(.5rem * -1)!important;left:calc(var(--pep-spacing-sm, .5rem) * -1)!important}.pep-quantity-selector-container.matrix-qs .additional-value.suffix,.pepperi-quantity-selector-container.matrix-qs .additional-value.suffix{right:calc(.5rem * -1)!important;right:calc(var(--pep-spacing-sm, .5rem) * -1)!important}.pep-quantity-selector-container.matrix-qs .additional-value .mat-badge-content,.pepperi-quantity-selector-container.matrix-qs .additional-value .mat-badge-content{z-index:97;min-width:1.5rem;width:-webkit-fit-content!important;width:-moz-fit-content!important;width:fit-content!important;border-radius:.625rem;padding:0 .5rem;top:calc(.5rem * -1)!important;top:calc(var(--pep-spacing-sm, .5rem) * -1)!important;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:inherit}.pep-quantity-selector-container.matrix-qs .disable,.pepperi-quantity-selector-container.matrix-qs .disable{min-width:.5rem;padding:0 .25rem}.pep-quantity-selector-container.pep-table-quantity-selector .pep-button:not(.qs-action),.pep-quantity-selector-container.pep-table-quantity-selector .pepperi-button:not(.qs-action),.pep-quantity-selector-container.pepperi-table-quantity-selector .pep-button:not(.qs-action),.pep-quantity-selector-container.pepperi-table-quantity-selector .pepperi-button:not(.qs-action),.pepperi-quantity-selector-container.pep-table-quantity-selector .pep-button:not(.qs-action),.pepperi-quantity-selector-container.pep-table-quantity-selector .pepperi-button:not(.qs-action),.pepperi-quantity-selector-container.pepperi-table-quantity-selector .pep-button:not(.qs-action),.pepperi-quantity-selector-container.pepperi-table-quantity-selector .pepperi-button:not(.qs-action){height:2rem;line-height:2rem}.pep-quantity-selector-container.pep-table-quantity-selector .pep-button.qs-action,.pep-quantity-selector-container.pep-table-quantity-selector .pepperi-button.qs-action,.pep-quantity-selector-container.pepperi-table-quantity-selector .pep-button.qs-action,.pep-quantity-selector-container.pepperi-table-quantity-selector .pepperi-button.qs-action,.pepperi-quantity-selector-container.pep-table-quantity-selector .pep-button.qs-action,.pepperi-quantity-selector-container.pep-table-quantity-selector .pepperi-button.qs-action,.pepperi-quantity-selector-container.pepperi-table-quantity-selector .pep-button.qs-action,.pepperi-quantity-selector-container.pepperi-table-quantity-selector .pepperi-button.qs-action{min-width:1.5rem;line-height:1.5rem;width:1.5rem!important;height:1.5rem!important}"]
423
+ styles: [":host{height:inherit;display:grid}::ng-deep .pep-quantity-selector-container,::ng-deep .pepperi-quantity-selector-container{display:flex;flex-flow:wrap;align-items:center;min-width:2rem;width:100%;height:inherit}::ng-deep .pep-quantity-selector-container input::-webkit-inner-spin-button,::ng-deep .pep-quantity-selector-container input::-webkit-outer-spin-button,::ng-deep .pepperi-quantity-selector-container input::-webkit-inner-spin-button,::ng-deep .pepperi-quantity-selector-container input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}::ng-deep .pep-quantity-selector-container input[type=number],::ng-deep .pepperi-quantity-selector-container input[type=number]{-moz-appearance:textfield}::ng-deep .pep-quantity-selector-container .mat-input-element,::ng-deep .pepperi-quantity-selector-container .mat-input-element{padding:0 .25rem;text-align:center;font-weight:600;font-weight:var(--pep-font-weight-bold,600);width:100%}::ng-deep .pep-quantity-selector-container .mat-form-field .mat-form-field-wrapper .mat-form-field-subscript-wrapper,::ng-deep .pepperi-quantity-selector-container .mat-form-field .mat-form-field-wrapper .mat-form-field-subscript-wrapper{height:unset}::ng-deep .pep-quantity-selector-container .mat-form-field .mat-form-field-wrapper .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container .mat-form-field .mat-form-field-wrapper .mat-form-field-flex{padding:0 .25rem!important}::ng-deep .pep-quantity-selector-container .pep-button,::ng-deep .pep-quantity-selector-container .pepperi-button,::ng-deep .pepperi-quantity-selector-container .pep-button,::ng-deep .pepperi-quantity-selector-container .pepperi-button{width:100%}::ng-deep .pep-quantity-selector-container .pep-button.qs-action,::ng-deep .pep-quantity-selector-container .pepperi-button.qs-action,::ng-deep .pepperi-quantity-selector-container .pep-button.qs-action,::ng-deep .pepperi-quantity-selector-container .pepperi-button.qs-action{min-width:2rem;line-height:2rem;width:2rem!important;height:2rem!important}::ng-deep .pep-quantity-selector-container .pep-button.qs-action .mat-icon,::ng-deep .pep-quantity-selector-container .pepperi-button.qs-action .mat-icon,::ng-deep .pepperi-quantity-selector-container .pep-button.qs-action .mat-icon,::ng-deep .pepperi-quantity-selector-container .pepperi-button.qs-action .mat-icon{height:inherit;width:inherit}::ng-deep .pep-quantity-selector-container .qs-error,::ng-deep .pepperi-quantity-selector-container .qs-error{display:block}::ng-deep .pep-quantity-selector-container.hide-qs-actions .pep-button.qs-action,::ng-deep .pep-quantity-selector-container.hide-qs-actions .pepperi-button.qs-action,::ng-deep .pepperi-quantity-selector-container.hide-qs-actions .pep-button.qs-action,::ng-deep .pepperi-quantity-selector-container.hide-qs-actions .pepperi-button.qs-action{display:none}::ng-deep .pep-quantity-selector-container.matrix-qs .additional-value,::ng-deep .pepperi-quantity-selector-container.matrix-qs .additional-value{height:1.25rem;top:calc(.25rem * -1);top:calc(var(--pep-spacing-xs, .25rem) * -1);transform:unset!important;display:flex;align-self:flex-start;justify-content:flex-end}::ng-deep .pep-quantity-selector-container.matrix-qs .additional-value.prefix,::ng-deep .pepperi-quantity-selector-container.matrix-qs .additional-value.prefix{left:calc(.5rem * -1)!important;left:calc(var(--pep-spacing-sm, .5rem) * -1)!important}::ng-deep .pep-quantity-selector-container.matrix-qs .additional-value.suffix,::ng-deep .pepperi-quantity-selector-container.matrix-qs .additional-value.suffix{right:calc(.5rem * -1)!important;right:calc(var(--pep-spacing-sm, .5rem) * -1)!important}::ng-deep .pep-quantity-selector-container.matrix-qs .additional-value .mat-badge-content,::ng-deep .pepperi-quantity-selector-container.matrix-qs .additional-value .mat-badge-content{z-index:97;min-width:1.5rem;width:-webkit-fit-content!important;width:-moz-fit-content!important;width:fit-content!important;border-radius:.625rem;padding:0 .5rem;top:calc(.5rem * -1)!important;top:calc(var(--pep-spacing-sm, .5rem) * -1)!important;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:inherit}::ng-deep .pep-quantity-selector-container.matrix-qs .disable,::ng-deep .pepperi-quantity-selector-container.matrix-qs .disable{min-width:.5rem;padding:0 .25rem}::ng-deep .pep-quantity-selector-container.pep-table-quantity-selector .pep-button:not(.qs-action),::ng-deep .pep-quantity-selector-container.pep-table-quantity-selector .pepperi-button:not(.qs-action),::ng-deep .pep-quantity-selector-container.pepperi-table-quantity-selector .pep-button:not(.qs-action),::ng-deep .pep-quantity-selector-container.pepperi-table-quantity-selector .pepperi-button:not(.qs-action),::ng-deep .pepperi-quantity-selector-container.pep-table-quantity-selector .pep-button:not(.qs-action),::ng-deep .pepperi-quantity-selector-container.pep-table-quantity-selector .pepperi-button:not(.qs-action),::ng-deep .pepperi-quantity-selector-container.pepperi-table-quantity-selector .pep-button:not(.qs-action),::ng-deep .pepperi-quantity-selector-container.pepperi-table-quantity-selector .pepperi-button:not(.qs-action){height:2rem;line-height:2rem}::ng-deep .pep-quantity-selector-container.pep-table-quantity-selector .pep-button.qs-action,::ng-deep .pep-quantity-selector-container.pep-table-quantity-selector .pepperi-button.qs-action,::ng-deep .pep-quantity-selector-container.pepperi-table-quantity-selector .pep-button.qs-action,::ng-deep .pep-quantity-selector-container.pepperi-table-quantity-selector .pepperi-button.qs-action,::ng-deep .pepperi-quantity-selector-container.pep-table-quantity-selector .pep-button.qs-action,::ng-deep .pepperi-quantity-selector-container.pep-table-quantity-selector .pepperi-button.qs-action,::ng-deep .pepperi-quantity-selector-container.pepperi-table-quantity-selector .pep-button.qs-action,::ng-deep .pepperi-quantity-selector-container.pepperi-table-quantity-selector .pepperi-button.qs-action{min-width:1.5rem;line-height:1.5rem;width:1.5rem!important;height:1.5rem!important}::ng-deep .pep-quantity-selector-container.pep-table-quantity-selector .mat-form-field .mat-form-field-wrapper,::ng-deep .pep-quantity-selector-container.pepperi-table-quantity-selector .mat-form-field .mat-form-field-wrapper,::ng-deep .pepperi-quantity-selector-container.pep-table-quantity-selector .mat-form-field .mat-form-field-wrapper,::ng-deep .pepperi-quantity-selector-container.pepperi-table-quantity-selector .mat-form-field .mat-form-field-wrapper{margin-top:0!important}", "::ng-deep .pep-quantity-selector-container:not(.strong) .mat-form-field .mat-input-element,::ng-deep .pepperi-quantity-selector-container:not(.strong) .mat-form-field .mat-input-element{color:#1a1a1a;color:hsl(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%))}::ng-deep .pep-quantity-selector-container:not(.strong).zero-quantity .mat-form-field .mat-input-element,::ng-deep .pepperi-quantity-selector-container:not(.strong).zero-quantity .mat-form-field .mat-input-element{color:rgba(26,26,26,.7);color:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.7)}::ng-deep .pep-quantity-selector-container:not(.strong).zero-quantity button,::ng-deep .pepperi-quantity-selector-container:not(.strong).zero-quantity button{color:rgba(26,26,26,.7);color:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.7)}::ng-deep .pep-quantity-selector-container.weak .mat-form-field .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.weak .mat-form-field .mat-form-field-flex{background:rgba(26,26,26,.12);background:hsla(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),var(--pep-color-qs-l,10%),.12)}::ng-deep .pep-quantity-selector-container.weak .mat-form-field:hover .ignore-disabled .mat-form-field-flex,::ng-deep .pep-quantity-selector-container.weak .mat-form-field:hover:not(.mat-form-field-disabled) .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.weak .mat-form-field:hover .ignore-disabled .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.weak .mat-form-field:hover:not(.mat-form-field-disabled) .mat-form-field-flex{background:rgba(26,26,26,.16);background:hsla(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),var(--pep-color-qs-l,10%),.16)}::ng-deep .pep-quantity-selector-container.weak .mat-form-field.mat-focused .ignore-disabled .mat-form-field-flex,::ng-deep .pep-quantity-selector-container.weak .mat-form-field.mat-focused:not(.mat-form-field-disabled) .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.weak .mat-form-field.mat-focused .ignore-disabled .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.weak .mat-form-field.mat-focused:not(.mat-form-field-disabled) .mat-form-field-flex{box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.08);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.08);position:relative;box-shadow:0 0 0 .25rem rgba(23,102,166,.5);box-shadow:0 0 0 var(--pep-spacing-xs,.25rem) hsla(var(--pep-color-text-link-h,207),var(--pep-color-text-link-s,76%),var(--pep-color-text-link-l,37%),.5)}::ng-deep .pep-quantity-selector-container.weak .mat-form-field.mat-focused .ignore-disabled .mat-form-field-flex:not(.keep-background-on-focus),::ng-deep .pep-quantity-selector-container.weak .mat-form-field.mat-focused:not(.mat-form-field-disabled) .mat-form-field-flex:not(.keep-background-on-focus),::ng-deep .pepperi-quantity-selector-container.weak .mat-form-field.mat-focused .ignore-disabled .mat-form-field-flex:not(.keep-background-on-focus),::ng-deep .pepperi-quantity-selector-container.weak .mat-form-field.mat-focused:not(.mat-form-field-disabled) .mat-form-field-flex:not(.keep-background-on-focus){background:#fff;background:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%))}::ng-deep .pep-quantity-selector-container.weak .mat-form-field.mat-focused .ignore-disabled .mat-form-field-flex:after,::ng-deep .pep-quantity-selector-container.weak .mat-form-field.mat-focused:not(.mat-form-field-disabled) .mat-form-field-flex:after,::ng-deep .pepperi-quantity-selector-container.weak .mat-form-field.mat-focused .ignore-disabled .mat-form-field-flex:after,::ng-deep .pepperi-quantity-selector-container.weak .mat-form-field.mat-focused:not(.mat-form-field-disabled) .mat-form-field-flex:after{z-index:0;content:\"\";transition:all .25s;display:block;position:absolute;top:0;bottom:0;left:0;right:0;border-radius:inherit;border:1px solid #1a1a1a;border:1px solid hsl(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),var(--pep-color-qs-l,10%))}::ng-deep .pep-quantity-selector-container.weak .mat-form-field.active .ignore-disabled .mat-form-field-flex,::ng-deep .pep-quantity-selector-container.weak .mat-form-field.active:not(.mat-form-field-disabled) .mat-form-field-flex,::ng-deep .pep-quantity-selector-container.weak .mat-form-field:active .ignore-disabled .mat-form-field-flex,::ng-deep .pep-quantity-selector-container.weak .mat-form-field:active:not(.mat-form-field-disabled) .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.weak .mat-form-field.active .ignore-disabled .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.weak .mat-form-field.active:not(.mat-form-field-disabled) .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.weak .mat-form-field:active .ignore-disabled .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.weak .mat-form-field:active:not(.mat-form-field-disabled) .mat-form-field-flex{box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.08);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.08);position:relative}::ng-deep .pep-quantity-selector-container.weak .mat-form-field.active .ignore-disabled .mat-form-field-flex:not(.keep-background-on-focus),::ng-deep .pep-quantity-selector-container.weak .mat-form-field.active:not(.mat-form-field-disabled) .mat-form-field-flex:not(.keep-background-on-focus),::ng-deep .pep-quantity-selector-container.weak .mat-form-field:active .ignore-disabled .mat-form-field-flex:not(.keep-background-on-focus),::ng-deep .pep-quantity-selector-container.weak .mat-form-field:active:not(.mat-form-field-disabled) .mat-form-field-flex:not(.keep-background-on-focus),::ng-deep .pepperi-quantity-selector-container.weak .mat-form-field.active .ignore-disabled .mat-form-field-flex:not(.keep-background-on-focus),::ng-deep .pepperi-quantity-selector-container.weak .mat-form-field.active:not(.mat-form-field-disabled) .mat-form-field-flex:not(.keep-background-on-focus),::ng-deep .pepperi-quantity-selector-container.weak .mat-form-field:active .ignore-disabled .mat-form-field-flex:not(.keep-background-on-focus),::ng-deep .pepperi-quantity-selector-container.weak .mat-form-field:active:not(.mat-form-field-disabled) .mat-form-field-flex:not(.keep-background-on-focus){background:#fff;background:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%))}::ng-deep .pep-quantity-selector-container.weak .mat-form-field.active .ignore-disabled .mat-form-field-flex:after,::ng-deep .pep-quantity-selector-container.weak .mat-form-field.active:not(.mat-form-field-disabled) .mat-form-field-flex:after,::ng-deep .pep-quantity-selector-container.weak .mat-form-field:active .ignore-disabled .mat-form-field-flex:after,::ng-deep .pep-quantity-selector-container.weak .mat-form-field:active:not(.mat-form-field-disabled) .mat-form-field-flex:after,::ng-deep .pepperi-quantity-selector-container.weak .mat-form-field.active .ignore-disabled .mat-form-field-flex:after,::ng-deep .pepperi-quantity-selector-container.weak .mat-form-field.active:not(.mat-form-field-disabled) .mat-form-field-flex:after,::ng-deep .pepperi-quantity-selector-container.weak .mat-form-field:active .ignore-disabled .mat-form-field-flex:after,::ng-deep .pepperi-quantity-selector-container.weak .mat-form-field:active:not(.mat-form-field-disabled) .mat-form-field-flex:after{z-index:0;content:\"\";transition:all .25s;display:block;position:absolute;top:0;bottom:0;left:0;right:0;border-radius:inherit;border:1px solid #1a1a1a;border:1px solid hsl(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),var(--pep-color-qs-l,10%))}::ng-deep .pep-quantity-selector-container.weak .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.weak .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex{box-shadow:unset;border:unset;color:rgba(26,26,26,.35)!important;color:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)!important;background:rgba(26,26,26,.04)!important;background:hsla(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),var(--pep-color-qs-l,10%),.04)!important}::ng-deep .pep-quantity-selector-container.weak .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex:after,::ng-deep .pepperi-quantity-selector-container.weak .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex:after{border:unset}::ng-deep .pep-quantity-selector-container.weak .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex .svg-icon,::ng-deep .pepperi-quantity-selector-container.weak .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex .svg-icon{fill:rgba(26,26,26,.35);fill:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)}::ng-deep .pep-quantity-selector-container.weak .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex .svg-icon.stroke,::ng-deep .pepperi-quantity-selector-container.weak .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex .svg-icon.stroke{fill:unset;stroke:rgba(26,26,26,.35);stroke:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)}::ng-deep .pep-quantity-selector-container.weak .pep-button,::ng-deep .pep-quantity-selector-container.weak .pepperi-button,::ng-deep .pepperi-quantity-selector-container.weak .pep-button,::ng-deep .pepperi-quantity-selector-container.weak .pepperi-button{background:rgba(26,26,26,.12);background:hsla(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),var(--pep-color-qs-l,10%),.12)}::ng-deep .pep-quantity-selector-container.weak .pep-button:hover,::ng-deep .pep-quantity-selector-container.weak .pepperi-button:hover,::ng-deep .pepperi-quantity-selector-container.weak .pep-button:hover,::ng-deep .pepperi-quantity-selector-container.weak .pepperi-button:hover{background:rgba(26,26,26,.16);background:hsla(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),var(--pep-color-qs-l,10%),.16)}::ng-deep .pep-quantity-selector-container.weak .pep-button:focus,::ng-deep .pep-quantity-selector-container.weak .pepperi-button:focus,::ng-deep .pepperi-quantity-selector-container.weak .pep-button:focus,::ng-deep .pepperi-quantity-selector-container.weak .pepperi-button:focus{box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.08);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.08);position:relative;box-shadow:0 0 0 .25rem rgba(23,102,166,.5);box-shadow:0 0 0 var(--pep-spacing-xs,.25rem) hsla(var(--pep-color-text-link-h,207),var(--pep-color-text-link-s,76%),var(--pep-color-text-link-l,37%),.5)}::ng-deep .pep-quantity-selector-container.weak .pep-button:focus:not(.keep-background-on-focus),::ng-deep .pep-quantity-selector-container.weak .pepperi-button:focus:not(.keep-background-on-focus),::ng-deep .pepperi-quantity-selector-container.weak .pep-button:focus:not(.keep-background-on-focus),::ng-deep .pepperi-quantity-selector-container.weak .pepperi-button:focus:not(.keep-background-on-focus){background:#fff;background:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%))}::ng-deep .pep-quantity-selector-container.weak .pep-button:focus:after,::ng-deep .pep-quantity-selector-container.weak .pepperi-button:focus:after,::ng-deep .pepperi-quantity-selector-container.weak .pep-button:focus:after,::ng-deep .pepperi-quantity-selector-container.weak .pepperi-button:focus:after{z-index:0;content:\"\";transition:all .25s;display:block;position:absolute;top:0;bottom:0;left:0;right:0;border-radius:inherit;border:1px solid #1a1a1a;border:1px solid hsl(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),var(--pep-color-qs-l,10%))}::ng-deep .pep-quantity-selector-container.weak .pep-button:active,::ng-deep .pep-quantity-selector-container.weak .pepperi-button:active,::ng-deep .pepperi-quantity-selector-container.weak .pep-button:active,::ng-deep .pepperi-quantity-selector-container.weak .pepperi-button:active{box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.08);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.08);position:relative}::ng-deep .pep-quantity-selector-container.weak .pep-button:active:not(.keep-background-on-focus),::ng-deep .pep-quantity-selector-container.weak .pepperi-button:active:not(.keep-background-on-focus),::ng-deep .pepperi-quantity-selector-container.weak .pep-button:active:not(.keep-background-on-focus),::ng-deep .pepperi-quantity-selector-container.weak .pepperi-button:active:not(.keep-background-on-focus){background:#fff;background:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%))}::ng-deep .pep-quantity-selector-container.weak .pep-button:active:after,::ng-deep .pep-quantity-selector-container.weak .pepperi-button:active:after,::ng-deep .pepperi-quantity-selector-container.weak .pep-button:active:after,::ng-deep .pepperi-quantity-selector-container.weak .pepperi-button:active:after{z-index:0;content:\"\";transition:all .25s;display:block;position:absolute;top:0;bottom:0;left:0;right:0;border-radius:inherit;border:1px solid #1a1a1a;border:1px solid hsl(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),var(--pep-color-qs-l,10%))}::ng-deep .pep-quantity-selector-container.weak .pep-button:disabled:not(.ignore-disabled),::ng-deep .pep-quantity-selector-container.weak .pepperi-button:disabled:not(.ignore-disabled),::ng-deep .pepperi-quantity-selector-container.weak .pep-button:disabled:not(.ignore-disabled),::ng-deep .pepperi-quantity-selector-container.weak .pepperi-button:disabled:not(.ignore-disabled){box-shadow:unset;border:unset;color:rgba(26,26,26,.35)!important;color:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)!important;background:rgba(26,26,26,.04)!important;background:hsla(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),var(--pep-color-qs-l,10%),.04)!important}::ng-deep .pep-quantity-selector-container.weak .pep-button:disabled:not(.ignore-disabled):after,::ng-deep .pep-quantity-selector-container.weak .pepperi-button:disabled:not(.ignore-disabled):after,::ng-deep .pepperi-quantity-selector-container.weak .pep-button:disabled:not(.ignore-disabled):after,::ng-deep .pepperi-quantity-selector-container.weak .pepperi-button:disabled:not(.ignore-disabled):after{border:unset}::ng-deep .pep-quantity-selector-container.weak .pep-button:disabled:not(.ignore-disabled) .svg-icon,::ng-deep .pep-quantity-selector-container.weak .pepperi-button:disabled:not(.ignore-disabled) .svg-icon,::ng-deep .pepperi-quantity-selector-container.weak .pep-button:disabled:not(.ignore-disabled) .svg-icon,::ng-deep .pepperi-quantity-selector-container.weak .pepperi-button:disabled:not(.ignore-disabled) .svg-icon{fill:rgba(26,26,26,.35);fill:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)}::ng-deep .pep-quantity-selector-container.weak .pep-button:disabled:not(.ignore-disabled) .svg-icon.stroke,::ng-deep .pep-quantity-selector-container.weak .pepperi-button:disabled:not(.ignore-disabled) .svg-icon.stroke,::ng-deep .pepperi-quantity-selector-container.weak .pep-button:disabled:not(.ignore-disabled) .svg-icon.stroke,::ng-deep .pepperi-quantity-selector-container.weak .pepperi-button:disabled:not(.ignore-disabled) .svg-icon.stroke{fill:unset;stroke:rgba(26,26,26,.35);stroke:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)}::ng-deep .pep-quantity-selector-container.weak .pep-button.qs-action,::ng-deep .pep-quantity-selector-container.weak .pepperi-button.qs-action,::ng-deep .pepperi-quantity-selector-container.weak .pep-button.qs-action,::ng-deep .pepperi-quantity-selector-container.weak .pepperi-button.qs-action{background:rgba(26,26,26,.12);background:hsla(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),var(--pep-color-qs-l,10%),.12);box-shadow:unset;border:unset;z-index:1}::ng-deep .pep-quantity-selector-container.weak .pep-button.qs-action:hover,::ng-deep .pep-quantity-selector-container.weak .pepperi-button.qs-action:hover,::ng-deep .pepperi-quantity-selector-container.weak .pep-button.qs-action:hover,::ng-deep .pepperi-quantity-selector-container.weak .pepperi-button.qs-action:hover{background:rgba(26,26,26,.16);background:hsla(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),var(--pep-color-qs-l,10%),.16)}::ng-deep .pep-quantity-selector-container.weak .pep-button.qs-action:focus,::ng-deep .pep-quantity-selector-container.weak .pepperi-button.qs-action:focus,::ng-deep .pepperi-quantity-selector-container.weak .pep-button.qs-action:focus,::ng-deep .pepperi-quantity-selector-container.weak .pepperi-button.qs-action:focus{box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.08);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.08);position:relative;box-shadow:0 0 0 .25rem rgba(23,102,166,.5);box-shadow:0 0 0 var(--pep-spacing-xs,.25rem) hsla(var(--pep-color-text-link-h,207),var(--pep-color-text-link-s,76%),var(--pep-color-text-link-l,37%),.5)}::ng-deep .pep-quantity-selector-container.weak .pep-button.qs-action:focus:not(.keep-background-on-focus),::ng-deep .pep-quantity-selector-container.weak .pepperi-button.qs-action:focus:not(.keep-background-on-focus),::ng-deep .pepperi-quantity-selector-container.weak .pep-button.qs-action:focus:not(.keep-background-on-focus),::ng-deep .pepperi-quantity-selector-container.weak .pepperi-button.qs-action:focus:not(.keep-background-on-focus){background:#fff;background:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%))}::ng-deep .pep-quantity-selector-container.weak .pep-button.qs-action:focus:after,::ng-deep .pep-quantity-selector-container.weak .pepperi-button.qs-action:focus:after,::ng-deep .pepperi-quantity-selector-container.weak .pep-button.qs-action:focus:after,::ng-deep .pepperi-quantity-selector-container.weak .pepperi-button.qs-action:focus:after{z-index:0;content:\"\";transition:all .25s;display:block;position:absolute;top:0;bottom:0;left:0;right:0;border-radius:inherit;border:1px solid #1a1a1a;border:1px solid hsl(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),var(--pep-color-qs-l,10%))}::ng-deep .pep-quantity-selector-container.weak .pep-button.qs-action:active,::ng-deep .pep-quantity-selector-container.weak .pepperi-button.qs-action:active,::ng-deep .pepperi-quantity-selector-container.weak .pep-button.qs-action:active,::ng-deep .pepperi-quantity-selector-container.weak .pepperi-button.qs-action:active{box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.08);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.08);position:relative}::ng-deep .pep-quantity-selector-container.weak .pep-button.qs-action:active:not(.keep-background-on-focus),::ng-deep .pep-quantity-selector-container.weak .pepperi-button.qs-action:active:not(.keep-background-on-focus),::ng-deep .pepperi-quantity-selector-container.weak .pep-button.qs-action:active:not(.keep-background-on-focus),::ng-deep .pepperi-quantity-selector-container.weak .pepperi-button.qs-action:active:not(.keep-background-on-focus){background:#fff;background:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%))}::ng-deep .pep-quantity-selector-container.weak .pep-button.qs-action:active:after,::ng-deep .pep-quantity-selector-container.weak .pepperi-button.qs-action:active:after,::ng-deep .pepperi-quantity-selector-container.weak .pep-button.qs-action:active:after,::ng-deep .pepperi-quantity-selector-container.weak .pepperi-button.qs-action:active:after{z-index:0;content:\"\";transition:all .25s;display:block;position:absolute;top:0;bottom:0;left:0;right:0;border-radius:inherit;border:1px solid #1a1a1a;border:1px solid hsl(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),var(--pep-color-qs-l,10%))}::ng-deep .pep-quantity-selector-container.weak .pep-button.qs-action:disabled:not(.ignore-disabled),::ng-deep .pep-quantity-selector-container.weak .pepperi-button.qs-action:disabled:not(.ignore-disabled),::ng-deep .pepperi-quantity-selector-container.weak .pep-button.qs-action:disabled:not(.ignore-disabled),::ng-deep .pepperi-quantity-selector-container.weak .pepperi-button.qs-action:disabled:not(.ignore-disabled){box-shadow:unset;border:unset;color:rgba(26,26,26,.35)!important;color:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)!important;background:rgba(26,26,26,.04)!important;background:hsla(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),var(--pep-color-qs-l,10%),.04)!important}::ng-deep .pep-quantity-selector-container.weak .pep-button.qs-action:disabled:not(.ignore-disabled):after,::ng-deep .pep-quantity-selector-container.weak .pepperi-button.qs-action:disabled:not(.ignore-disabled):after,::ng-deep .pepperi-quantity-selector-container.weak .pep-button.qs-action:disabled:not(.ignore-disabled):after,::ng-deep .pepperi-quantity-selector-container.weak .pepperi-button.qs-action:disabled:not(.ignore-disabled):after{border:unset}::ng-deep .pep-quantity-selector-container.weak .pep-button.qs-action:disabled:not(.ignore-disabled) .svg-icon,::ng-deep .pep-quantity-selector-container.weak .pepperi-button.qs-action:disabled:not(.ignore-disabled) .svg-icon,::ng-deep .pepperi-quantity-selector-container.weak .pep-button.qs-action:disabled:not(.ignore-disabled) .svg-icon,::ng-deep .pepperi-quantity-selector-container.weak .pepperi-button.qs-action:disabled:not(.ignore-disabled) .svg-icon{fill:rgba(26,26,26,.35);fill:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)}::ng-deep .pep-quantity-selector-container.weak .pep-button.qs-action:disabled:not(.ignore-disabled) .svg-icon.stroke,::ng-deep .pep-quantity-selector-container.weak .pepperi-button.qs-action:disabled:not(.ignore-disabled) .svg-icon.stroke,::ng-deep .pepperi-quantity-selector-container.weak .pep-button.qs-action:disabled:not(.ignore-disabled) .svg-icon.stroke,::ng-deep .pepperi-quantity-selector-container.weak .pepperi-button.qs-action:disabled:not(.ignore-disabled) .svg-icon.stroke{fill:unset;stroke:rgba(26,26,26,.35);stroke:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)}::ng-deep .pep-quantity-selector-container.weak.caution .mat-form-field .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.weak.caution .mat-form-field .mat-form-field-flex{background:rgba(230,0,0,.12);background:hsla(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),var(--pep-color-system-caution-l,45%),.12)}::ng-deep .pep-quantity-selector-container.weak.caution .mat-form-field:hover .ignore-disabled .mat-form-field-flex,::ng-deep .pep-quantity-selector-container.weak.caution .mat-form-field:hover:not(.mat-form-field-disabled) .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.weak.caution .mat-form-field:hover .ignore-disabled .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.weak.caution .mat-form-field:hover:not(.mat-form-field-disabled) .mat-form-field-flex{background:rgba(230,0,0,.16);background:hsla(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),var(--pep-color-system-caution-l,45%),.16)}::ng-deep .pep-quantity-selector-container.weak.caution .mat-form-field.mat-focused .ignore-disabled .mat-form-field-flex,::ng-deep .pep-quantity-selector-container.weak.caution .mat-form-field.mat-focused:not(.mat-form-field-disabled) .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.weak.caution .mat-form-field.mat-focused .ignore-disabled .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.weak.caution .mat-form-field.mat-focused:not(.mat-form-field-disabled) .mat-form-field-flex{box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.08);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.08);position:relative;box-shadow:0 0 0 .25rem rgba(23,102,166,.5);box-shadow:0 0 0 var(--pep-spacing-xs,.25rem) hsla(var(--pep-color-text-link-h,207),var(--pep-color-text-link-s,76%),var(--pep-color-text-link-l,37%),.5)}::ng-deep .pep-quantity-selector-container.weak.caution .mat-form-field.mat-focused .ignore-disabled .mat-form-field-flex:not(.keep-background-on-focus),::ng-deep .pep-quantity-selector-container.weak.caution .mat-form-field.mat-focused:not(.mat-form-field-disabled) .mat-form-field-flex:not(.keep-background-on-focus),::ng-deep .pepperi-quantity-selector-container.weak.caution .mat-form-field.mat-focused .ignore-disabled .mat-form-field-flex:not(.keep-background-on-focus),::ng-deep .pepperi-quantity-selector-container.weak.caution .mat-form-field.mat-focused:not(.mat-form-field-disabled) .mat-form-field-flex:not(.keep-background-on-focus){background:#fff;background:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%))}::ng-deep .pep-quantity-selector-container.weak.caution .mat-form-field.mat-focused .ignore-disabled .mat-form-field-flex:after,::ng-deep .pep-quantity-selector-container.weak.caution .mat-form-field.mat-focused:not(.mat-form-field-disabled) .mat-form-field-flex:after,::ng-deep .pepperi-quantity-selector-container.weak.caution .mat-form-field.mat-focused .ignore-disabled .mat-form-field-flex:after,::ng-deep .pepperi-quantity-selector-container.weak.caution .mat-form-field.mat-focused:not(.mat-form-field-disabled) .mat-form-field-flex:after{z-index:0;content:\"\";transition:all .25s;display:block;position:absolute;top:0;bottom:0;left:0;right:0;border-radius:inherit;border:1px solid #e60000;border:1px solid hsl(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),var(--pep-color-system-caution-l,45%))}::ng-deep .pep-quantity-selector-container.weak.caution .mat-form-field.active .ignore-disabled .mat-form-field-flex,::ng-deep .pep-quantity-selector-container.weak.caution .mat-form-field.active:not(.mat-form-field-disabled) .mat-form-field-flex,::ng-deep .pep-quantity-selector-container.weak.caution .mat-form-field:active .ignore-disabled .mat-form-field-flex,::ng-deep .pep-quantity-selector-container.weak.caution .mat-form-field:active:not(.mat-form-field-disabled) .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.weak.caution .mat-form-field.active .ignore-disabled .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.weak.caution .mat-form-field.active:not(.mat-form-field-disabled) .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.weak.caution .mat-form-field:active .ignore-disabled .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.weak.caution .mat-form-field:active:not(.mat-form-field-disabled) .mat-form-field-flex{box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.08);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.08);position:relative}::ng-deep .pep-quantity-selector-container.weak.caution .mat-form-field.active .ignore-disabled .mat-form-field-flex:not(.keep-background-on-focus),::ng-deep .pep-quantity-selector-container.weak.caution .mat-form-field.active:not(.mat-form-field-disabled) .mat-form-field-flex:not(.keep-background-on-focus),::ng-deep .pep-quantity-selector-container.weak.caution .mat-form-field:active .ignore-disabled .mat-form-field-flex:not(.keep-background-on-focus),::ng-deep .pep-quantity-selector-container.weak.caution .mat-form-field:active:not(.mat-form-field-disabled) .mat-form-field-flex:not(.keep-background-on-focus),::ng-deep .pepperi-quantity-selector-container.weak.caution .mat-form-field.active .ignore-disabled .mat-form-field-flex:not(.keep-background-on-focus),::ng-deep .pepperi-quantity-selector-container.weak.caution .mat-form-field.active:not(.mat-form-field-disabled) .mat-form-field-flex:not(.keep-background-on-focus),::ng-deep .pepperi-quantity-selector-container.weak.caution .mat-form-field:active .ignore-disabled .mat-form-field-flex:not(.keep-background-on-focus),::ng-deep .pepperi-quantity-selector-container.weak.caution .mat-form-field:active:not(.mat-form-field-disabled) .mat-form-field-flex:not(.keep-background-on-focus){background:#fff;background:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%))}::ng-deep .pep-quantity-selector-container.weak.caution .mat-form-field.active .ignore-disabled .mat-form-field-flex:after,::ng-deep .pep-quantity-selector-container.weak.caution .mat-form-field.active:not(.mat-form-field-disabled) .mat-form-field-flex:after,::ng-deep .pep-quantity-selector-container.weak.caution .mat-form-field:active .ignore-disabled .mat-form-field-flex:after,::ng-deep .pep-quantity-selector-container.weak.caution .mat-form-field:active:not(.mat-form-field-disabled) .mat-form-field-flex:after,::ng-deep .pepperi-quantity-selector-container.weak.caution .mat-form-field.active .ignore-disabled .mat-form-field-flex:after,::ng-deep .pepperi-quantity-selector-container.weak.caution .mat-form-field.active:not(.mat-form-field-disabled) .mat-form-field-flex:after,::ng-deep .pepperi-quantity-selector-container.weak.caution .mat-form-field:active .ignore-disabled .mat-form-field-flex:after,::ng-deep .pepperi-quantity-selector-container.weak.caution .mat-form-field:active:not(.mat-form-field-disabled) .mat-form-field-flex:after{z-index:0;content:\"\";transition:all .25s;display:block;position:absolute;top:0;bottom:0;left:0;right:0;border-radius:inherit;border:1px solid #e60000;border:1px solid hsl(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),var(--pep-color-system-caution-l,45%))}::ng-deep .pep-quantity-selector-container.weak.caution .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.weak.caution .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex{box-shadow:unset;border:unset;color:rgba(26,26,26,.35)!important;color:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)!important;background:rgba(230,0,0,.04)!important;background:hsla(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),var(--pep-color-system-caution-l,45%),.04)!important}::ng-deep .pep-quantity-selector-container.weak.caution .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex:after,::ng-deep .pepperi-quantity-selector-container.weak.caution .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex:after{border:unset}::ng-deep .pep-quantity-selector-container.weak.caution .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex .svg-icon,::ng-deep .pepperi-quantity-selector-container.weak.caution .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex .svg-icon{fill:rgba(26,26,26,.35);fill:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)}::ng-deep .pep-quantity-selector-container.weak.caution .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex .svg-icon.stroke,::ng-deep .pepperi-quantity-selector-container.weak.caution .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex .svg-icon.stroke{fill:unset;stroke:rgba(26,26,26,.35);stroke:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)}::ng-deep .pep-quantity-selector-container.weak.caution .pep-button,::ng-deep .pep-quantity-selector-container.weak.caution .pepperi-button,::ng-deep .pepperi-quantity-selector-container.weak.caution .pep-button,::ng-deep .pepperi-quantity-selector-container.weak.caution .pepperi-button{background:rgba(230,0,0,.12);background:hsla(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),var(--pep-color-system-caution-l,45%),.12)}::ng-deep .pep-quantity-selector-container.weak.caution .pep-button:hover,::ng-deep .pep-quantity-selector-container.weak.caution .pepperi-button:hover,::ng-deep .pepperi-quantity-selector-container.weak.caution .pep-button:hover,::ng-deep .pepperi-quantity-selector-container.weak.caution .pepperi-button:hover{background:rgba(230,0,0,.16);background:hsla(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),var(--pep-color-system-caution-l,45%),.16)}::ng-deep .pep-quantity-selector-container.weak.caution .pep-button:focus,::ng-deep .pep-quantity-selector-container.weak.caution .pepperi-button:focus,::ng-deep .pepperi-quantity-selector-container.weak.caution .pep-button:focus,::ng-deep .pepperi-quantity-selector-container.weak.caution .pepperi-button:focus{box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.08);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.08);position:relative;box-shadow:0 0 0 .25rem rgba(23,102,166,.5);box-shadow:0 0 0 var(--pep-spacing-xs,.25rem) hsla(var(--pep-color-text-link-h,207),var(--pep-color-text-link-s,76%),var(--pep-color-text-link-l,37%),.5)}::ng-deep .pep-quantity-selector-container.weak.caution .pep-button:focus:not(.keep-background-on-focus),::ng-deep .pep-quantity-selector-container.weak.caution .pepperi-button:focus:not(.keep-background-on-focus),::ng-deep .pepperi-quantity-selector-container.weak.caution .pep-button:focus:not(.keep-background-on-focus),::ng-deep .pepperi-quantity-selector-container.weak.caution .pepperi-button:focus:not(.keep-background-on-focus){background:#fff;background:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%))}::ng-deep .pep-quantity-selector-container.weak.caution .pep-button:focus:after,::ng-deep .pep-quantity-selector-container.weak.caution .pepperi-button:focus:after,::ng-deep .pepperi-quantity-selector-container.weak.caution .pep-button:focus:after,::ng-deep .pepperi-quantity-selector-container.weak.caution .pepperi-button:focus:after{z-index:0;content:\"\";transition:all .25s;display:block;position:absolute;top:0;bottom:0;left:0;right:0;border-radius:inherit;border:1px solid #e60000;border:1px solid hsl(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),var(--pep-color-system-caution-l,45%))}::ng-deep .pep-quantity-selector-container.weak.caution .pep-button:active,::ng-deep .pep-quantity-selector-container.weak.caution .pepperi-button:active,::ng-deep .pepperi-quantity-selector-container.weak.caution .pep-button:active,::ng-deep .pepperi-quantity-selector-container.weak.caution .pepperi-button:active{box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.08);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.08);position:relative}::ng-deep .pep-quantity-selector-container.weak.caution .pep-button:active:not(.keep-background-on-focus),::ng-deep .pep-quantity-selector-container.weak.caution .pepperi-button:active:not(.keep-background-on-focus),::ng-deep .pepperi-quantity-selector-container.weak.caution .pep-button:active:not(.keep-background-on-focus),::ng-deep .pepperi-quantity-selector-container.weak.caution .pepperi-button:active:not(.keep-background-on-focus){background:#fff;background:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%))}::ng-deep .pep-quantity-selector-container.weak.caution .pep-button:active:after,::ng-deep .pep-quantity-selector-container.weak.caution .pepperi-button:active:after,::ng-deep .pepperi-quantity-selector-container.weak.caution .pep-button:active:after,::ng-deep .pepperi-quantity-selector-container.weak.caution .pepperi-button:active:after{z-index:0;content:\"\";transition:all .25s;display:block;position:absolute;top:0;bottom:0;left:0;right:0;border-radius:inherit;border:1px solid #e60000;border:1px solid hsl(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),var(--pep-color-system-caution-l,45%))}::ng-deep .pep-quantity-selector-container.weak.caution .pep-button:disabled:not(.ignore-disabled),::ng-deep .pep-quantity-selector-container.weak.caution .pepperi-button:disabled:not(.ignore-disabled),::ng-deep .pepperi-quantity-selector-container.weak.caution .pep-button:disabled:not(.ignore-disabled),::ng-deep .pepperi-quantity-selector-container.weak.caution .pepperi-button:disabled:not(.ignore-disabled){box-shadow:unset;border:unset;color:rgba(26,26,26,.35)!important;color:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)!important;background:rgba(230,0,0,.04)!important;background:hsla(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),var(--pep-color-system-caution-l,45%),.04)!important}::ng-deep .pep-quantity-selector-container.weak.caution .pep-button:disabled:not(.ignore-disabled):after,::ng-deep .pep-quantity-selector-container.weak.caution .pepperi-button:disabled:not(.ignore-disabled):after,::ng-deep .pepperi-quantity-selector-container.weak.caution .pep-button:disabled:not(.ignore-disabled):after,::ng-deep .pepperi-quantity-selector-container.weak.caution .pepperi-button:disabled:not(.ignore-disabled):after{border:unset}::ng-deep .pep-quantity-selector-container.weak.caution .pep-button:disabled:not(.ignore-disabled) .svg-icon,::ng-deep .pep-quantity-selector-container.weak.caution .pepperi-button:disabled:not(.ignore-disabled) .svg-icon,::ng-deep .pepperi-quantity-selector-container.weak.caution .pep-button:disabled:not(.ignore-disabled) .svg-icon,::ng-deep .pepperi-quantity-selector-container.weak.caution .pepperi-button:disabled:not(.ignore-disabled) .svg-icon{fill:rgba(26,26,26,.35);fill:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)}::ng-deep .pep-quantity-selector-container.weak.caution .pep-button:disabled:not(.ignore-disabled) .svg-icon.stroke,::ng-deep .pep-quantity-selector-container.weak.caution .pepperi-button:disabled:not(.ignore-disabled) .svg-icon.stroke,::ng-deep .pepperi-quantity-selector-container.weak.caution .pep-button:disabled:not(.ignore-disabled) .svg-icon.stroke,::ng-deep .pepperi-quantity-selector-container.weak.caution .pepperi-button:disabled:not(.ignore-disabled) .svg-icon.stroke{fill:unset;stroke:rgba(26,26,26,.35);stroke:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)}::ng-deep .pep-quantity-selector-container.weak.caution .pep-button.qs-action,::ng-deep .pep-quantity-selector-container.weak.caution .pepperi-button.qs-action,::ng-deep .pepperi-quantity-selector-container.weak.caution .pep-button.qs-action,::ng-deep .pepperi-quantity-selector-container.weak.caution .pepperi-button.qs-action{background:rgba(230,0,0,.12);background:hsla(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),var(--pep-color-system-caution-l,45%),.12);box-shadow:unset;border:unset;z-index:1}::ng-deep .pep-quantity-selector-container.weak.caution .pep-button.qs-action:hover,::ng-deep .pep-quantity-selector-container.weak.caution .pepperi-button.qs-action:hover,::ng-deep .pepperi-quantity-selector-container.weak.caution .pep-button.qs-action:hover,::ng-deep .pepperi-quantity-selector-container.weak.caution .pepperi-button.qs-action:hover{background:rgba(230,0,0,.16);background:hsla(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),var(--pep-color-system-caution-l,45%),.16)}::ng-deep .pep-quantity-selector-container.weak.caution .pep-button.qs-action:focus,::ng-deep .pep-quantity-selector-container.weak.caution .pepperi-button.qs-action:focus,::ng-deep .pepperi-quantity-selector-container.weak.caution .pep-button.qs-action:focus,::ng-deep .pepperi-quantity-selector-container.weak.caution .pepperi-button.qs-action:focus{box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.08);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.08);position:relative;box-shadow:0 0 0 .25rem rgba(23,102,166,.5);box-shadow:0 0 0 var(--pep-spacing-xs,.25rem) hsla(var(--pep-color-text-link-h,207),var(--pep-color-text-link-s,76%),var(--pep-color-text-link-l,37%),.5)}::ng-deep .pep-quantity-selector-container.weak.caution .pep-button.qs-action:focus:not(.keep-background-on-focus),::ng-deep .pep-quantity-selector-container.weak.caution .pepperi-button.qs-action:focus:not(.keep-background-on-focus),::ng-deep .pepperi-quantity-selector-container.weak.caution .pep-button.qs-action:focus:not(.keep-background-on-focus),::ng-deep .pepperi-quantity-selector-container.weak.caution .pepperi-button.qs-action:focus:not(.keep-background-on-focus){background:#fff;background:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%))}::ng-deep .pep-quantity-selector-container.weak.caution .pep-button.qs-action:focus:after,::ng-deep .pep-quantity-selector-container.weak.caution .pepperi-button.qs-action:focus:after,::ng-deep .pepperi-quantity-selector-container.weak.caution .pep-button.qs-action:focus:after,::ng-deep .pepperi-quantity-selector-container.weak.caution .pepperi-button.qs-action:focus:after{z-index:0;content:\"\";transition:all .25s;display:block;position:absolute;top:0;bottom:0;left:0;right:0;border-radius:inherit;border:1px solid #e60000;border:1px solid hsl(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),var(--pep-color-system-caution-l,45%))}::ng-deep .pep-quantity-selector-container.weak.caution .pep-button.qs-action:active,::ng-deep .pep-quantity-selector-container.weak.caution .pepperi-button.qs-action:active,::ng-deep .pepperi-quantity-selector-container.weak.caution .pep-button.qs-action:active,::ng-deep .pepperi-quantity-selector-container.weak.caution .pepperi-button.qs-action:active{box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.08);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.08);position:relative}::ng-deep .pep-quantity-selector-container.weak.caution .pep-button.qs-action:active:not(.keep-background-on-focus),::ng-deep .pep-quantity-selector-container.weak.caution .pepperi-button.qs-action:active:not(.keep-background-on-focus),::ng-deep .pepperi-quantity-selector-container.weak.caution .pep-button.qs-action:active:not(.keep-background-on-focus),::ng-deep .pepperi-quantity-selector-container.weak.caution .pepperi-button.qs-action:active:not(.keep-background-on-focus){background:#fff;background:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%))}::ng-deep .pep-quantity-selector-container.weak.caution .pep-button.qs-action:active:after,::ng-deep .pep-quantity-selector-container.weak.caution .pepperi-button.qs-action:active:after,::ng-deep .pepperi-quantity-selector-container.weak.caution .pep-button.qs-action:active:after,::ng-deep .pepperi-quantity-selector-container.weak.caution .pepperi-button.qs-action:active:after{z-index:0;content:\"\";transition:all .25s;display:block;position:absolute;top:0;bottom:0;left:0;right:0;border-radius:inherit;border:1px solid #e60000;border:1px solid hsl(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),var(--pep-color-system-caution-l,45%))}::ng-deep .pep-quantity-selector-container.weak.caution .pep-button.qs-action:disabled:not(.ignore-disabled),::ng-deep .pep-quantity-selector-container.weak.caution .pepperi-button.qs-action:disabled:not(.ignore-disabled),::ng-deep .pepperi-quantity-selector-container.weak.caution .pep-button.qs-action:disabled:not(.ignore-disabled),::ng-deep .pepperi-quantity-selector-container.weak.caution .pepperi-button.qs-action:disabled:not(.ignore-disabled){box-shadow:unset;border:unset;color:rgba(26,26,26,.35)!important;color:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)!important;background:rgba(230,0,0,.04)!important;background:hsla(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),var(--pep-color-system-caution-l,45%),.04)!important}::ng-deep .pep-quantity-selector-container.weak.caution .pep-button.qs-action:disabled:not(.ignore-disabled):after,::ng-deep .pep-quantity-selector-container.weak.caution .pepperi-button.qs-action:disabled:not(.ignore-disabled):after,::ng-deep .pepperi-quantity-selector-container.weak.caution .pep-button.qs-action:disabled:not(.ignore-disabled):after,::ng-deep .pepperi-quantity-selector-container.weak.caution .pepperi-button.qs-action:disabled:not(.ignore-disabled):after{border:unset}::ng-deep .pep-quantity-selector-container.weak.caution .pep-button.qs-action:disabled:not(.ignore-disabled) .svg-icon,::ng-deep .pep-quantity-selector-container.weak.caution .pepperi-button.qs-action:disabled:not(.ignore-disabled) .svg-icon,::ng-deep .pepperi-quantity-selector-container.weak.caution .pep-button.qs-action:disabled:not(.ignore-disabled) .svg-icon,::ng-deep .pepperi-quantity-selector-container.weak.caution .pepperi-button.qs-action:disabled:not(.ignore-disabled) .svg-icon{fill:rgba(26,26,26,.35);fill:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)}::ng-deep .pep-quantity-selector-container.weak.caution .pep-button.qs-action:disabled:not(.ignore-disabled) .svg-icon.stroke,::ng-deep .pep-quantity-selector-container.weak.caution .pepperi-button.qs-action:disabled:not(.ignore-disabled) .svg-icon.stroke,::ng-deep .pepperi-quantity-selector-container.weak.caution .pep-button.qs-action:disabled:not(.ignore-disabled) .svg-icon.stroke,::ng-deep .pepperi-quantity-selector-container.weak.caution .pepperi-button.qs-action:disabled:not(.ignore-disabled) .svg-icon.stroke{fill:unset;stroke:rgba(26,26,26,.35);stroke:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)}::ng-deep .pep-quantity-selector-container.regular .mat-form-field .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.regular .mat-form-field .mat-form-field-flex{background:#fafafa;background:hsl(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),98%);box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.08);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.08);position:relative}::ng-deep .pep-quantity-selector-container.regular .mat-form-field .mat-form-field-flex:after,::ng-deep .pepperi-quantity-selector-container.regular .mat-form-field .mat-form-field-flex:after{z-index:0;content:\"\";transition:all .25s;display:block;position:absolute;top:0;bottom:0;left:0;right:0;border-radius:inherit;border:1px solid hsl(0,0%,calc(10% + 30%));border:1px solid hsl(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),calc(var(--pep-color-qs-l, 10%) + 30%))}::ng-deep .pep-quantity-selector-container.regular .mat-form-field:hover .ignore-disabled .mat-form-field-flex,::ng-deep .pep-quantity-selector-container.regular .mat-form-field:hover:not(.mat-form-field-disabled) .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.regular .mat-form-field:hover .ignore-disabled .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.regular .mat-form-field:hover:not(.mat-form-field-disabled) .mat-form-field-flex{background:#fafafa;background:hsl(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),98%);box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.16);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.16);position:relative}::ng-deep .pep-quantity-selector-container.regular .mat-form-field:hover .ignore-disabled .mat-form-field-flex:after,::ng-deep .pep-quantity-selector-container.regular .mat-form-field:hover:not(.mat-form-field-disabled) .mat-form-field-flex:after,::ng-deep .pepperi-quantity-selector-container.regular .mat-form-field:hover .ignore-disabled .mat-form-field-flex:after,::ng-deep .pepperi-quantity-selector-container.regular .mat-form-field:hover:not(.mat-form-field-disabled) .mat-form-field-flex:after{z-index:0;content:\"\";transition:all .25s;display:block;position:absolute;top:0;bottom:0;left:0;right:0;border-radius:inherit;border:1px solid hsl(0,0%,calc(10% + 20%));border:1px solid hsl(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),calc(var(--pep-color-qs-l, 10%) + 20%))}::ng-deep .pep-quantity-selector-container.regular .mat-form-field.mat-focused .ignore-disabled .mat-form-field-flex,::ng-deep .pep-quantity-selector-container.regular .mat-form-field.mat-focused:not(.mat-form-field-disabled) .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.regular .mat-form-field.mat-focused .ignore-disabled .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.regular .mat-form-field.mat-focused:not(.mat-form-field-disabled) .mat-form-field-flex{background:#e0e0e0;background:hsl(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),88%);box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.16);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.16);position:relative;box-shadow:0 0 0 .25rem rgba(23,102,166,.5);box-shadow:0 0 0 var(--pep-spacing-xs,.25rem) hsla(var(--pep-color-text-link-h,207),var(--pep-color-text-link-s,76%),var(--pep-color-text-link-l,37%),.5)}::ng-deep .pep-quantity-selector-container.regular .mat-form-field.mat-focused .ignore-disabled .mat-form-field-flex:after,::ng-deep .pep-quantity-selector-container.regular .mat-form-field.mat-focused:not(.mat-form-field-disabled) .mat-form-field-flex:after,::ng-deep .pepperi-quantity-selector-container.regular .mat-form-field.mat-focused .ignore-disabled .mat-form-field-flex:after,::ng-deep .pepperi-quantity-selector-container.regular .mat-form-field.mat-focused:not(.mat-form-field-disabled) .mat-form-field-flex:after{z-index:0;content:\"\";transition:all .25s;display:block;position:absolute;top:0;bottom:0;left:0;right:0;border-radius:inherit;border:1px solid #1a1a1a;border:1px solid hsl(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),var(--pep-color-qs-l,10%))}::ng-deep .pep-quantity-selector-container.regular .mat-form-field.active .ignore-disabled .mat-form-field-flex,::ng-deep .pep-quantity-selector-container.regular .mat-form-field.active:not(.mat-form-field-disabled) .mat-form-field-flex,::ng-deep .pep-quantity-selector-container.regular .mat-form-field:active .ignore-disabled .mat-form-field-flex,::ng-deep .pep-quantity-selector-container.regular .mat-form-field:active:not(.mat-form-field-disabled) .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.regular .mat-form-field.active .ignore-disabled .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.regular .mat-form-field.active:not(.mat-form-field-disabled) .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.regular .mat-form-field:active .ignore-disabled .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.regular .mat-form-field:active:not(.mat-form-field-disabled) .mat-form-field-flex{background:#e0e0e0;background:hsl(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),88%);box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.32);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.32);position:relative}::ng-deep .pep-quantity-selector-container.regular .mat-form-field.active .ignore-disabled .mat-form-field-flex:after,::ng-deep .pep-quantity-selector-container.regular .mat-form-field.active:not(.mat-form-field-disabled) .mat-form-field-flex:after,::ng-deep .pep-quantity-selector-container.regular .mat-form-field:active .ignore-disabled .mat-form-field-flex:after,::ng-deep .pep-quantity-selector-container.regular .mat-form-field:active:not(.mat-form-field-disabled) .mat-form-field-flex:after,::ng-deep .pepperi-quantity-selector-container.regular .mat-form-field.active .ignore-disabled .mat-form-field-flex:after,::ng-deep .pepperi-quantity-selector-container.regular .mat-form-field.active:not(.mat-form-field-disabled) .mat-form-field-flex:after,::ng-deep .pepperi-quantity-selector-container.regular .mat-form-field:active .ignore-disabled .mat-form-field-flex:after,::ng-deep .pepperi-quantity-selector-container.regular .mat-form-field:active:not(.mat-form-field-disabled) .mat-form-field-flex:after{z-index:0;content:\"\";transition:all .25s;display:block;position:absolute;top:0;bottom:0;left:0;right:0;border-radius:inherit;border:1px solid #1a1a1a;border:1px solid hsl(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),var(--pep-color-qs-l,10%))}::ng-deep .pep-quantity-selector-container.regular .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.regular .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex{box-shadow:unset;border:unset;color:rgba(26,26,26,.35)!important;color:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)!important;background:#e0e0e0!important;background:hsl(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),88%)!important;box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.04)!important;box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.04)!important;position:relative}::ng-deep .pep-quantity-selector-container.regular .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex:after,::ng-deep .pepperi-quantity-selector-container.regular .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex:after{border:unset}::ng-deep .pep-quantity-selector-container.regular .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex .svg-icon,::ng-deep .pepperi-quantity-selector-container.regular .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex .svg-icon{fill:rgba(26,26,26,.35);fill:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)}::ng-deep .pep-quantity-selector-container.regular .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex .svg-icon.stroke,::ng-deep .pepperi-quantity-selector-container.regular .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex .svg-icon.stroke{fill:unset;stroke:rgba(26,26,26,.35);stroke:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)}::ng-deep .pep-quantity-selector-container.regular .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex:after,::ng-deep .pepperi-quantity-selector-container.regular .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex:after{z-index:0;content:\"\";transition:all .25s;display:block;position:absolute;top:0;bottom:0;left:0;right:0;border-radius:inherit;border:1px solid rgba(26,26,26,.08);border:1px solid hsla(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),var(--pep-color-qs-l,10%),.08)}::ng-deep .pep-quantity-selector-container.regular .pep-button,::ng-deep .pep-quantity-selector-container.regular .pepperi-button,::ng-deep .pepperi-quantity-selector-container.regular .pep-button,::ng-deep .pepperi-quantity-selector-container.regular .pepperi-button{background:#fafafa;background:hsl(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),98%);box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.08);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.08);border:1px solid hsl(0,0%,calc(10% + 30%));border:1px solid hsl(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),calc(var(--pep-color-qs-l, 10%) + 30%))}::ng-deep .pep-quantity-selector-container.regular .pep-button:hover,::ng-deep .pep-quantity-selector-container.regular .pepperi-button:hover,::ng-deep .pepperi-quantity-selector-container.regular .pep-button:hover,::ng-deep .pepperi-quantity-selector-container.regular .pepperi-button:hover{background:#fafafa;background:hsl(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),98%);box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.16);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.16);border:1px solid hsl(0,0%,calc(10% + 20%));border:1px solid hsl(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),calc(var(--pep-color-qs-l, 10%) + 20%))}::ng-deep .pep-quantity-selector-container.regular .pep-button:focus,::ng-deep .pep-quantity-selector-container.regular .pepperi-button:focus,::ng-deep .pepperi-quantity-selector-container.regular .pep-button:focus,::ng-deep .pepperi-quantity-selector-container.regular .pepperi-button:focus{background:#e0e0e0;background:hsl(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),88%);box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.16);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.16);border:1px solid #1a1a1a;border:1px solid hsl(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),var(--pep-color-qs-l,10%));box-shadow:0 0 0 .25rem rgba(23,102,166,.5);box-shadow:0 0 0 var(--pep-spacing-xs,.25rem) hsla(var(--pep-color-text-link-h,207),var(--pep-color-text-link-s,76%),var(--pep-color-text-link-l,37%),.5)}::ng-deep .pep-quantity-selector-container.regular .pep-button:active,::ng-deep .pep-quantity-selector-container.regular .pepperi-button:active,::ng-deep .pepperi-quantity-selector-container.regular .pep-button:active,::ng-deep .pepperi-quantity-selector-container.regular .pepperi-button:active{background:#e0e0e0;background:hsl(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),88%);box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.32);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.32);border:1px solid #1a1a1a;border:1px solid hsl(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),var(--pep-color-qs-l,10%))}::ng-deep .pep-quantity-selector-container.regular .pep-button:disabled:not(.ignore-disabled),::ng-deep .pep-quantity-selector-container.regular .pepperi-button:disabled:not(.ignore-disabled),::ng-deep .pepperi-quantity-selector-container.regular .pep-button:disabled:not(.ignore-disabled),::ng-deep .pepperi-quantity-selector-container.regular .pepperi-button:disabled:not(.ignore-disabled){box-shadow:unset;border:unset;color:rgba(26,26,26,.35)!important;color:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)!important;background:#e0e0e0!important;background:hsl(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),88%)!important;box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.04)!important;box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.04)!important;border:1px solid rgba(26,26,26,.08);border:1px solid hsla(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),var(--pep-color-qs-l,10%),.08)}::ng-deep .pep-quantity-selector-container.regular .pep-button:disabled:not(.ignore-disabled):after,::ng-deep .pep-quantity-selector-container.regular .pepperi-button:disabled:not(.ignore-disabled):after,::ng-deep .pepperi-quantity-selector-container.regular .pep-button:disabled:not(.ignore-disabled):after,::ng-deep .pepperi-quantity-selector-container.regular .pepperi-button:disabled:not(.ignore-disabled):after{border:unset}::ng-deep .pep-quantity-selector-container.regular .pep-button:disabled:not(.ignore-disabled) .svg-icon,::ng-deep .pep-quantity-selector-container.regular .pepperi-button:disabled:not(.ignore-disabled) .svg-icon,::ng-deep .pepperi-quantity-selector-container.regular .pep-button:disabled:not(.ignore-disabled) .svg-icon,::ng-deep .pepperi-quantity-selector-container.regular .pepperi-button:disabled:not(.ignore-disabled) .svg-icon{fill:rgba(26,26,26,.35);fill:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)}::ng-deep .pep-quantity-selector-container.regular .pep-button:disabled:not(.ignore-disabled) .svg-icon.stroke,::ng-deep .pep-quantity-selector-container.regular .pepperi-button:disabled:not(.ignore-disabled) .svg-icon.stroke,::ng-deep .pepperi-quantity-selector-container.regular .pep-button:disabled:not(.ignore-disabled) .svg-icon.stroke,::ng-deep .pepperi-quantity-selector-container.regular .pepperi-button:disabled:not(.ignore-disabled) .svg-icon.stroke{fill:unset;stroke:rgba(26,26,26,.35);stroke:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)}::ng-deep .pep-quantity-selector-container.regular .pep-button.qs-action,::ng-deep .pep-quantity-selector-container.regular .pepperi-button.qs-action,::ng-deep .pepperi-quantity-selector-container.regular .pep-button.qs-action,::ng-deep .pepperi-quantity-selector-container.regular .pepperi-button.qs-action{background:rgba(26,26,26,.12);background:hsla(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),var(--pep-color-qs-l,10%),.12);box-shadow:unset;border:unset;z-index:1}::ng-deep .pep-quantity-selector-container.regular .pep-button.qs-action:hover,::ng-deep .pep-quantity-selector-container.regular .pepperi-button.qs-action:hover,::ng-deep .pepperi-quantity-selector-container.regular .pep-button.qs-action:hover,::ng-deep .pepperi-quantity-selector-container.regular .pepperi-button.qs-action:hover{background:rgba(26,26,26,.16);background:hsla(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),var(--pep-color-qs-l,10%),.16)}::ng-deep .pep-quantity-selector-container.regular .pep-button.qs-action:focus,::ng-deep .pep-quantity-selector-container.regular .pepperi-button.qs-action:focus,::ng-deep .pepperi-quantity-selector-container.regular .pep-button.qs-action:focus,::ng-deep .pepperi-quantity-selector-container.regular .pepperi-button.qs-action:focus{box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.08);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.08);position:relative;box-shadow:0 0 0 .25rem rgba(23,102,166,.5);box-shadow:0 0 0 var(--pep-spacing-xs,.25rem) hsla(var(--pep-color-text-link-h,207),var(--pep-color-text-link-s,76%),var(--pep-color-text-link-l,37%),.5)}::ng-deep .pep-quantity-selector-container.regular .pep-button.qs-action:focus:not(.keep-background-on-focus),::ng-deep .pep-quantity-selector-container.regular .pepperi-button.qs-action:focus:not(.keep-background-on-focus),::ng-deep .pepperi-quantity-selector-container.regular .pep-button.qs-action:focus:not(.keep-background-on-focus),::ng-deep .pepperi-quantity-selector-container.regular .pepperi-button.qs-action:focus:not(.keep-background-on-focus){background:#fff;background:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%))}::ng-deep .pep-quantity-selector-container.regular .pep-button.qs-action:focus:after,::ng-deep .pep-quantity-selector-container.regular .pepperi-button.qs-action:focus:after,::ng-deep .pepperi-quantity-selector-container.regular .pep-button.qs-action:focus:after,::ng-deep .pepperi-quantity-selector-container.regular .pepperi-button.qs-action:focus:after{z-index:0;content:\"\";transition:all .25s;display:block;position:absolute;top:0;bottom:0;left:0;right:0;border-radius:inherit;border:1px solid #1a1a1a;border:1px solid hsl(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),var(--pep-color-qs-l,10%))}::ng-deep .pep-quantity-selector-container.regular .pep-button.qs-action:active,::ng-deep .pep-quantity-selector-container.regular .pepperi-button.qs-action:active,::ng-deep .pepperi-quantity-selector-container.regular .pep-button.qs-action:active,::ng-deep .pepperi-quantity-selector-container.regular .pepperi-button.qs-action:active{box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.08);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.08);position:relative}::ng-deep .pep-quantity-selector-container.regular .pep-button.qs-action:active:not(.keep-background-on-focus),::ng-deep .pep-quantity-selector-container.regular .pepperi-button.qs-action:active:not(.keep-background-on-focus),::ng-deep .pepperi-quantity-selector-container.regular .pep-button.qs-action:active:not(.keep-background-on-focus),::ng-deep .pepperi-quantity-selector-container.regular .pepperi-button.qs-action:active:not(.keep-background-on-focus){background:#fff;background:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%))}::ng-deep .pep-quantity-selector-container.regular .pep-button.qs-action:active:after,::ng-deep .pep-quantity-selector-container.regular .pepperi-button.qs-action:active:after,::ng-deep .pepperi-quantity-selector-container.regular .pep-button.qs-action:active:after,::ng-deep .pepperi-quantity-selector-container.regular .pepperi-button.qs-action:active:after{z-index:0;content:\"\";transition:all .25s;display:block;position:absolute;top:0;bottom:0;left:0;right:0;border-radius:inherit;border:1px solid #1a1a1a;border:1px solid hsl(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),var(--pep-color-qs-l,10%))}::ng-deep .pep-quantity-selector-container.regular .pep-button.qs-action:disabled:not(.ignore-disabled),::ng-deep .pep-quantity-selector-container.regular .pepperi-button.qs-action:disabled:not(.ignore-disabled),::ng-deep .pepperi-quantity-selector-container.regular .pep-button.qs-action:disabled:not(.ignore-disabled),::ng-deep .pepperi-quantity-selector-container.regular .pepperi-button.qs-action:disabled:not(.ignore-disabled){box-shadow:unset;border:unset;color:rgba(26,26,26,.35)!important;color:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)!important;background:rgba(26,26,26,.04)!important;background:hsla(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),var(--pep-color-qs-l,10%),.04)!important}::ng-deep .pep-quantity-selector-container.regular .pep-button.qs-action:disabled:not(.ignore-disabled):after,::ng-deep .pep-quantity-selector-container.regular .pepperi-button.qs-action:disabled:not(.ignore-disabled):after,::ng-deep .pepperi-quantity-selector-container.regular .pep-button.qs-action:disabled:not(.ignore-disabled):after,::ng-deep .pepperi-quantity-selector-container.regular .pepperi-button.qs-action:disabled:not(.ignore-disabled):after{border:unset}::ng-deep .pep-quantity-selector-container.regular .pep-button.qs-action:disabled:not(.ignore-disabled) .svg-icon,::ng-deep .pep-quantity-selector-container.regular .pepperi-button.qs-action:disabled:not(.ignore-disabled) .svg-icon,::ng-deep .pepperi-quantity-selector-container.regular .pep-button.qs-action:disabled:not(.ignore-disabled) .svg-icon,::ng-deep .pepperi-quantity-selector-container.regular .pepperi-button.qs-action:disabled:not(.ignore-disabled) .svg-icon{fill:rgba(26,26,26,.35);fill:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)}::ng-deep .pep-quantity-selector-container.regular .pep-button.qs-action:disabled:not(.ignore-disabled) .svg-icon.stroke,::ng-deep .pep-quantity-selector-container.regular .pepperi-button.qs-action:disabled:not(.ignore-disabled) .svg-icon.stroke,::ng-deep .pepperi-quantity-selector-container.regular .pep-button.qs-action:disabled:not(.ignore-disabled) .svg-icon.stroke,::ng-deep .pepperi-quantity-selector-container.regular .pepperi-button.qs-action:disabled:not(.ignore-disabled) .svg-icon.stroke{fill:unset;stroke:rgba(26,26,26,.35);stroke:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)}::ng-deep .pep-quantity-selector-container.regular.caution .mat-form-field .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.regular.caution .mat-form-field .mat-form-field-flex{background:#fff5f5;background:hsl(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),98%);box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.08);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.08);position:relative}::ng-deep .pep-quantity-selector-container.regular.caution .mat-form-field .mat-form-field-flex:after,::ng-deep .pepperi-quantity-selector-container.regular.caution .mat-form-field .mat-form-field-flex:after{z-index:0;content:\"\";transition:all .25s;display:block;position:absolute;top:0;bottom:0;left:0;right:0;border-radius:inherit;border:1px solid hsl(360,100%,calc(45% + 30%));border:1px solid hsl(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),calc(var(--pep-color-system-caution-l, 45%) + 30%))}::ng-deep .pep-quantity-selector-container.regular.caution .mat-form-field:hover .ignore-disabled .mat-form-field-flex,::ng-deep .pep-quantity-selector-container.regular.caution .mat-form-field:hover:not(.mat-form-field-disabled) .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.regular.caution .mat-form-field:hover .ignore-disabled .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.regular.caution .mat-form-field:hover:not(.mat-form-field-disabled) .mat-form-field-flex{background:#fff5f5;background:hsl(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),98%);box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.16);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.16);position:relative}::ng-deep .pep-quantity-selector-container.regular.caution .mat-form-field:hover .ignore-disabled .mat-form-field-flex:after,::ng-deep .pep-quantity-selector-container.regular.caution .mat-form-field:hover:not(.mat-form-field-disabled) .mat-form-field-flex:after,::ng-deep .pepperi-quantity-selector-container.regular.caution .mat-form-field:hover .ignore-disabled .mat-form-field-flex:after,::ng-deep .pepperi-quantity-selector-container.regular.caution .mat-form-field:hover:not(.mat-form-field-disabled) .mat-form-field-flex:after{z-index:0;content:\"\";transition:all .25s;display:block;position:absolute;top:0;bottom:0;left:0;right:0;border-radius:inherit;border:1px solid hsl(360,100%,calc(45% + 20%));border:1px solid hsl(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),calc(var(--pep-color-system-caution-l, 45%) + 20%))}::ng-deep .pep-quantity-selector-container.regular.caution .mat-form-field.mat-focused .ignore-disabled .mat-form-field-flex,::ng-deep .pep-quantity-selector-container.regular.caution .mat-form-field.mat-focused:not(.mat-form-field-disabled) .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.regular.caution .mat-form-field.mat-focused .ignore-disabled .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.regular.caution .mat-form-field.mat-focused:not(.mat-form-field-disabled) .mat-form-field-flex{background:#ffc2c2;background:hsl(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),88%);box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.16);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.16);position:relative;box-shadow:0 0 0 .25rem rgba(23,102,166,.5);box-shadow:0 0 0 var(--pep-spacing-xs,.25rem) hsla(var(--pep-color-text-link-h,207),var(--pep-color-text-link-s,76%),var(--pep-color-text-link-l,37%),.5)}::ng-deep .pep-quantity-selector-container.regular.caution .mat-form-field.mat-focused .ignore-disabled .mat-form-field-flex:after,::ng-deep .pep-quantity-selector-container.regular.caution .mat-form-field.mat-focused:not(.mat-form-field-disabled) .mat-form-field-flex:after,::ng-deep .pepperi-quantity-selector-container.regular.caution .mat-form-field.mat-focused .ignore-disabled .mat-form-field-flex:after,::ng-deep .pepperi-quantity-selector-container.regular.caution .mat-form-field.mat-focused:not(.mat-form-field-disabled) .mat-form-field-flex:after{z-index:0;content:\"\";transition:all .25s;display:block;position:absolute;top:0;bottom:0;left:0;right:0;border-radius:inherit;border:1px solid #e60000;border:1px solid hsl(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),var(--pep-color-system-caution-l,45%))}::ng-deep .pep-quantity-selector-container.regular.caution .mat-form-field.active .ignore-disabled .mat-form-field-flex,::ng-deep .pep-quantity-selector-container.regular.caution .mat-form-field.active:not(.mat-form-field-disabled) .mat-form-field-flex,::ng-deep .pep-quantity-selector-container.regular.caution .mat-form-field:active .ignore-disabled .mat-form-field-flex,::ng-deep .pep-quantity-selector-container.regular.caution .mat-form-field:active:not(.mat-form-field-disabled) .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.regular.caution .mat-form-field.active .ignore-disabled .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.regular.caution .mat-form-field.active:not(.mat-form-field-disabled) .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.regular.caution .mat-form-field:active .ignore-disabled .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.regular.caution .mat-form-field:active:not(.mat-form-field-disabled) .mat-form-field-flex{background:#ffc2c2;background:hsl(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),88%);box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.32);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.32);position:relative}::ng-deep .pep-quantity-selector-container.regular.caution .mat-form-field.active .ignore-disabled .mat-form-field-flex:after,::ng-deep .pep-quantity-selector-container.regular.caution .mat-form-field.active:not(.mat-form-field-disabled) .mat-form-field-flex:after,::ng-deep .pep-quantity-selector-container.regular.caution .mat-form-field:active .ignore-disabled .mat-form-field-flex:after,::ng-deep .pep-quantity-selector-container.regular.caution .mat-form-field:active:not(.mat-form-field-disabled) .mat-form-field-flex:after,::ng-deep .pepperi-quantity-selector-container.regular.caution .mat-form-field.active .ignore-disabled .mat-form-field-flex:after,::ng-deep .pepperi-quantity-selector-container.regular.caution .mat-form-field.active:not(.mat-form-field-disabled) .mat-form-field-flex:after,::ng-deep .pepperi-quantity-selector-container.regular.caution .mat-form-field:active .ignore-disabled .mat-form-field-flex:after,::ng-deep .pepperi-quantity-selector-container.regular.caution .mat-form-field:active:not(.mat-form-field-disabled) .mat-form-field-flex:after{z-index:0;content:\"\";transition:all .25s;display:block;position:absolute;top:0;bottom:0;left:0;right:0;border-radius:inherit;border:1px solid #e60000;border:1px solid hsl(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),var(--pep-color-system-caution-l,45%))}::ng-deep .pep-quantity-selector-container.regular.caution .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.regular.caution .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex{box-shadow:unset;border:unset;color:rgba(26,26,26,.35)!important;color:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)!important;background:#ffc2c2!important;background:hsl(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),88%)!important;box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.04)!important;box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.04)!important;position:relative}::ng-deep .pep-quantity-selector-container.regular.caution .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex:after,::ng-deep .pepperi-quantity-selector-container.regular.caution .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex:after{border:unset}::ng-deep .pep-quantity-selector-container.regular.caution .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex .svg-icon,::ng-deep .pepperi-quantity-selector-container.regular.caution .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex .svg-icon{fill:rgba(26,26,26,.35);fill:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)}::ng-deep .pep-quantity-selector-container.regular.caution .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex .svg-icon.stroke,::ng-deep .pepperi-quantity-selector-container.regular.caution .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex .svg-icon.stroke{fill:unset;stroke:rgba(26,26,26,.35);stroke:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)}::ng-deep .pep-quantity-selector-container.regular.caution .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex:after,::ng-deep .pepperi-quantity-selector-container.regular.caution .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex:after{z-index:0;content:\"\";transition:all .25s;display:block;position:absolute;top:0;bottom:0;left:0;right:0;border-radius:inherit;border:1px solid rgba(230,0,0,.08);border:1px solid hsla(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),var(--pep-color-system-caution-l,45%),.08)}::ng-deep .pep-quantity-selector-container.regular.caution .pep-button,::ng-deep .pep-quantity-selector-container.regular.caution .pepperi-button,::ng-deep .pepperi-quantity-selector-container.regular.caution .pep-button,::ng-deep .pepperi-quantity-selector-container.regular.caution .pepperi-button{background:#fff5f5;background:hsl(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),98%);box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.08);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.08);border:1px solid hsl(360,100%,calc(45% + 30%));border:1px solid hsl(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),calc(var(--pep-color-system-caution-l, 45%) + 30%))}::ng-deep .pep-quantity-selector-container.regular.caution .pep-button:hover,::ng-deep .pep-quantity-selector-container.regular.caution .pepperi-button:hover,::ng-deep .pepperi-quantity-selector-container.regular.caution .pep-button:hover,::ng-deep .pepperi-quantity-selector-container.regular.caution .pepperi-button:hover{background:#fff5f5;background:hsl(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),98%);box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.16);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.16);border:1px solid hsl(360,100%,calc(45% + 20%));border:1px solid hsl(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),calc(var(--pep-color-system-caution-l, 45%) + 20%))}::ng-deep .pep-quantity-selector-container.regular.caution .pep-button:focus,::ng-deep .pep-quantity-selector-container.regular.caution .pepperi-button:focus,::ng-deep .pepperi-quantity-selector-container.regular.caution .pep-button:focus,::ng-deep .pepperi-quantity-selector-container.regular.caution .pepperi-button:focus{background:#ffc2c2;background:hsl(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),88%);box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.16);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.16);border:1px solid #e60000;border:1px solid hsl(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),var(--pep-color-system-caution-l,45%));box-shadow:0 0 0 .25rem rgba(23,102,166,.5);box-shadow:0 0 0 var(--pep-spacing-xs,.25rem) hsla(var(--pep-color-text-link-h,207),var(--pep-color-text-link-s,76%),var(--pep-color-text-link-l,37%),.5)}::ng-deep .pep-quantity-selector-container.regular.caution .pep-button:active,::ng-deep .pep-quantity-selector-container.regular.caution .pepperi-button:active,::ng-deep .pepperi-quantity-selector-container.regular.caution .pep-button:active,::ng-deep .pepperi-quantity-selector-container.regular.caution .pepperi-button:active{background:#ffc2c2;background:hsl(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),88%);box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.32);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.32);border:1px solid #e60000;border:1px solid hsl(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),var(--pep-color-system-caution-l,45%))}::ng-deep .pep-quantity-selector-container.regular.caution .pep-button:disabled:not(.ignore-disabled),::ng-deep .pep-quantity-selector-container.regular.caution .pepperi-button:disabled:not(.ignore-disabled),::ng-deep .pepperi-quantity-selector-container.regular.caution .pep-button:disabled:not(.ignore-disabled),::ng-deep .pepperi-quantity-selector-container.regular.caution .pepperi-button:disabled:not(.ignore-disabled){box-shadow:unset;border:unset;color:rgba(26,26,26,.35)!important;color:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)!important;background:#ffc2c2!important;background:hsl(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),88%)!important;box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.04)!important;box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.04)!important;border:1px solid rgba(230,0,0,.08);border:1px solid hsla(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),var(--pep-color-system-caution-l,45%),.08)}::ng-deep .pep-quantity-selector-container.regular.caution .pep-button:disabled:not(.ignore-disabled):after,::ng-deep .pep-quantity-selector-container.regular.caution .pepperi-button:disabled:not(.ignore-disabled):after,::ng-deep .pepperi-quantity-selector-container.regular.caution .pep-button:disabled:not(.ignore-disabled):after,::ng-deep .pepperi-quantity-selector-container.regular.caution .pepperi-button:disabled:not(.ignore-disabled):after{border:unset}::ng-deep .pep-quantity-selector-container.regular.caution .pep-button:disabled:not(.ignore-disabled) .svg-icon,::ng-deep .pep-quantity-selector-container.regular.caution .pepperi-button:disabled:not(.ignore-disabled) .svg-icon,::ng-deep .pepperi-quantity-selector-container.regular.caution .pep-button:disabled:not(.ignore-disabled) .svg-icon,::ng-deep .pepperi-quantity-selector-container.regular.caution .pepperi-button:disabled:not(.ignore-disabled) .svg-icon{fill:rgba(26,26,26,.35);fill:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)}::ng-deep .pep-quantity-selector-container.regular.caution .pep-button:disabled:not(.ignore-disabled) .svg-icon.stroke,::ng-deep .pep-quantity-selector-container.regular.caution .pepperi-button:disabled:not(.ignore-disabled) .svg-icon.stroke,::ng-deep .pepperi-quantity-selector-container.regular.caution .pep-button:disabled:not(.ignore-disabled) .svg-icon.stroke,::ng-deep .pepperi-quantity-selector-container.regular.caution .pepperi-button:disabled:not(.ignore-disabled) .svg-icon.stroke{fill:unset;stroke:rgba(26,26,26,.35);stroke:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)}::ng-deep .pep-quantity-selector-container.regular.caution .pep-button.qs-action,::ng-deep .pep-quantity-selector-container.regular.caution .pepperi-button.qs-action,::ng-deep .pepperi-quantity-selector-container.regular.caution .pep-button.qs-action,::ng-deep .pepperi-quantity-selector-container.regular.caution .pepperi-button.qs-action{background:rgba(230,0,0,.12);background:hsla(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),var(--pep-color-system-caution-l,45%),.12);box-shadow:unset;border:unset;z-index:1}::ng-deep .pep-quantity-selector-container.regular.caution .pep-button.qs-action:hover,::ng-deep .pep-quantity-selector-container.regular.caution .pepperi-button.qs-action:hover,::ng-deep .pepperi-quantity-selector-container.regular.caution .pep-button.qs-action:hover,::ng-deep .pepperi-quantity-selector-container.regular.caution .pepperi-button.qs-action:hover{background:rgba(230,0,0,.16);background:hsla(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),var(--pep-color-system-caution-l,45%),.16)}::ng-deep .pep-quantity-selector-container.regular.caution .pep-button.qs-action:focus,::ng-deep .pep-quantity-selector-container.regular.caution .pepperi-button.qs-action:focus,::ng-deep .pepperi-quantity-selector-container.regular.caution .pep-button.qs-action:focus,::ng-deep .pepperi-quantity-selector-container.regular.caution .pepperi-button.qs-action:focus{box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.08);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.08);position:relative;box-shadow:0 0 0 .25rem rgba(23,102,166,.5);box-shadow:0 0 0 var(--pep-spacing-xs,.25rem) hsla(var(--pep-color-text-link-h,207),var(--pep-color-text-link-s,76%),var(--pep-color-text-link-l,37%),.5)}::ng-deep .pep-quantity-selector-container.regular.caution .pep-button.qs-action:focus:not(.keep-background-on-focus),::ng-deep .pep-quantity-selector-container.regular.caution .pepperi-button.qs-action:focus:not(.keep-background-on-focus),::ng-deep .pepperi-quantity-selector-container.regular.caution .pep-button.qs-action:focus:not(.keep-background-on-focus),::ng-deep .pepperi-quantity-selector-container.regular.caution .pepperi-button.qs-action:focus:not(.keep-background-on-focus){background:#fff;background:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%))}::ng-deep .pep-quantity-selector-container.regular.caution .pep-button.qs-action:focus:after,::ng-deep .pep-quantity-selector-container.regular.caution .pepperi-button.qs-action:focus:after,::ng-deep .pepperi-quantity-selector-container.regular.caution .pep-button.qs-action:focus:after,::ng-deep .pepperi-quantity-selector-container.regular.caution .pepperi-button.qs-action:focus:after{z-index:0;content:\"\";transition:all .25s;display:block;position:absolute;top:0;bottom:0;left:0;right:0;border-radius:inherit;border:1px solid #e60000;border:1px solid hsl(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),var(--pep-color-system-caution-l,45%))}::ng-deep .pep-quantity-selector-container.regular.caution .pep-button.qs-action:active,::ng-deep .pep-quantity-selector-container.regular.caution .pepperi-button.qs-action:active,::ng-deep .pepperi-quantity-selector-container.regular.caution .pep-button.qs-action:active,::ng-deep .pepperi-quantity-selector-container.regular.caution .pepperi-button.qs-action:active{box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.08);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.08);position:relative}::ng-deep .pep-quantity-selector-container.regular.caution .pep-button.qs-action:active:not(.keep-background-on-focus),::ng-deep .pep-quantity-selector-container.regular.caution .pepperi-button.qs-action:active:not(.keep-background-on-focus),::ng-deep .pepperi-quantity-selector-container.regular.caution .pep-button.qs-action:active:not(.keep-background-on-focus),::ng-deep .pepperi-quantity-selector-container.regular.caution .pepperi-button.qs-action:active:not(.keep-background-on-focus){background:#fff;background:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%))}::ng-deep .pep-quantity-selector-container.regular.caution .pep-button.qs-action:active:after,::ng-deep .pep-quantity-selector-container.regular.caution .pepperi-button.qs-action:active:after,::ng-deep .pepperi-quantity-selector-container.regular.caution .pep-button.qs-action:active:after,::ng-deep .pepperi-quantity-selector-container.regular.caution .pepperi-button.qs-action:active:after{z-index:0;content:\"\";transition:all .25s;display:block;position:absolute;top:0;bottom:0;left:0;right:0;border-radius:inherit;border:1px solid #e60000;border:1px solid hsl(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),var(--pep-color-system-caution-l,45%))}::ng-deep .pep-quantity-selector-container.regular.caution .pep-button.qs-action:disabled:not(.ignore-disabled),::ng-deep .pep-quantity-selector-container.regular.caution .pepperi-button.qs-action:disabled:not(.ignore-disabled),::ng-deep .pepperi-quantity-selector-container.regular.caution .pep-button.qs-action:disabled:not(.ignore-disabled),::ng-deep .pepperi-quantity-selector-container.regular.caution .pepperi-button.qs-action:disabled:not(.ignore-disabled){box-shadow:unset;border:unset;color:rgba(26,26,26,.35)!important;color:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)!important;background:rgba(230,0,0,.04)!important;background:hsla(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),var(--pep-color-system-caution-l,45%),.04)!important}::ng-deep .pep-quantity-selector-container.regular.caution .pep-button.qs-action:disabled:not(.ignore-disabled):after,::ng-deep .pep-quantity-selector-container.regular.caution .pepperi-button.qs-action:disabled:not(.ignore-disabled):after,::ng-deep .pepperi-quantity-selector-container.regular.caution .pep-button.qs-action:disabled:not(.ignore-disabled):after,::ng-deep .pepperi-quantity-selector-container.regular.caution .pepperi-button.qs-action:disabled:not(.ignore-disabled):after{border:unset}::ng-deep .pep-quantity-selector-container.regular.caution .pep-button.qs-action:disabled:not(.ignore-disabled) .svg-icon,::ng-deep .pep-quantity-selector-container.regular.caution .pepperi-button.qs-action:disabled:not(.ignore-disabled) .svg-icon,::ng-deep .pepperi-quantity-selector-container.regular.caution .pep-button.qs-action:disabled:not(.ignore-disabled) .svg-icon,::ng-deep .pepperi-quantity-selector-container.regular.caution .pepperi-button.qs-action:disabled:not(.ignore-disabled) .svg-icon{fill:rgba(26,26,26,.35);fill:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)}::ng-deep .pep-quantity-selector-container.regular.caution .pep-button.qs-action:disabled:not(.ignore-disabled) .svg-icon.stroke,::ng-deep .pep-quantity-selector-container.regular.caution .pepperi-button.qs-action:disabled:not(.ignore-disabled) .svg-icon.stroke,::ng-deep .pepperi-quantity-selector-container.regular.caution .pep-button.qs-action:disabled:not(.ignore-disabled) .svg-icon.stroke,::ng-deep .pepperi-quantity-selector-container.regular.caution .pepperi-button.qs-action:disabled:not(.ignore-disabled) .svg-icon.stroke{fill:unset;stroke:rgba(26,26,26,.35);stroke:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)}::ng-deep .pep-quantity-selector-container.strong .mat-form-field .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.strong .mat-form-field .mat-form-field-flex{font-weight:600;font-weight:var(--pep-font-weight-bold,600);background:#1a1a1a;background:hsl(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),var(--pep-color-qs-l,10%));box-shadow:0 .25rem .5rem 0 rgba(26,26,26,.08);box-shadow:var(--pep-shadow-sm-offset,0 .25rem .5rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.08);color:#fff;color:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%))}::ng-deep .pep-quantity-selector-container.strong .mat-form-field .mat-form-field-flex .svg-icon,::ng-deep .pepperi-quantity-selector-container.strong .mat-form-field .mat-form-field-flex .svg-icon{fill:#fff;fill:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%))}::ng-deep .pep-quantity-selector-container.strong .mat-form-field .mat-form-field-flex .svg-icon.stroke,::ng-deep .pepperi-quantity-selector-container.strong .mat-form-field .mat-form-field-flex .svg-icon.stroke{fill:unset;stroke:#fff;stroke:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%))}::ng-deep .pep-quantity-selector-container.strong .mat-form-field:hover .ignore-disabled .mat-form-field-flex,::ng-deep .pep-quantity-selector-container.strong .mat-form-field:hover:not(.mat-form-field-disabled) .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.strong .mat-form-field:hover .ignore-disabled .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.strong .mat-form-field:hover:not(.mat-form-field-disabled) .mat-form-field-flex{background:hsl(0,0%,calc(10% - 8%));background:hsl(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),calc(var(--pep-color-qs-l, 10%) - 8%));box-shadow:0 .25rem .5rem 0 rgba(26,26,26,.16);box-shadow:var(--pep-shadow-sm-offset,0 .25rem .5rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.16)}::ng-deep .pep-quantity-selector-container.strong .mat-form-field.mat-focused .ignore-disabled .mat-form-field-flex,::ng-deep .pep-quantity-selector-container.strong .mat-form-field.mat-focused:not(.mat-form-field-disabled) .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.strong .mat-form-field.mat-focused .ignore-disabled .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.strong .mat-form-field.mat-focused:not(.mat-form-field-disabled) .mat-form-field-flex{background:hsl(0,0%,calc(10% - 15%));background:hsl(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),calc(var(--pep-color-qs-l, 10%) - 15%));box-shadow:0 .25rem .5rem 0 rgba(26,26,26,.08);box-shadow:var(--pep-shadow-sm-offset,0 .25rem .5rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.08);box-shadow:0 0 0 .25rem rgba(23,102,166,.5);box-shadow:0 0 0 var(--pep-spacing-xs,.25rem) hsla(var(--pep-color-text-link-h,207),var(--pep-color-text-link-s,76%),var(--pep-color-text-link-l,37%),.5)}::ng-deep .pep-quantity-selector-container.strong .mat-form-field.active .ignore-disabled .mat-form-field-flex,::ng-deep .pep-quantity-selector-container.strong .mat-form-field.active:not(.mat-form-field-disabled) .mat-form-field-flex,::ng-deep .pep-quantity-selector-container.strong .mat-form-field:active .ignore-disabled .mat-form-field-flex,::ng-deep .pep-quantity-selector-container.strong .mat-form-field:active:not(.mat-form-field-disabled) .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.strong .mat-form-field.active .ignore-disabled .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.strong .mat-form-field.active:not(.mat-form-field-disabled) .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.strong .mat-form-field:active .ignore-disabled .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.strong .mat-form-field:active:not(.mat-form-field-disabled) .mat-form-field-flex{background:hsl(0,0%,calc(10% - 15%));background:hsl(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),calc(var(--pep-color-qs-l, 10%) - 15%));box-shadow:0 .25rem .5rem 0 rgba(26,26,26,.32);box-shadow:var(--pep-shadow-sm-offset,0 .25rem .5rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.32)}::ng-deep .pep-quantity-selector-container.strong .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.strong .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex{box-shadow:unset;border:unset;background:#1a1a1a!important;background:hsl(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),var(--pep-color-qs-l,10%))!important;opacity:.5!important;color:#fff;color:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%))}::ng-deep .pep-quantity-selector-container.strong .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex:after,::ng-deep .pepperi-quantity-selector-container.strong .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex:after{border:unset}::ng-deep .pep-quantity-selector-container.strong .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex .svg-icon,::ng-deep .pepperi-quantity-selector-container.strong .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex .svg-icon{fill:rgba(26,26,26,.35);fill:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)}::ng-deep .pep-quantity-selector-container.strong .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex .svg-icon.stroke,::ng-deep .pepperi-quantity-selector-container.strong .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex .svg-icon.stroke{stroke:rgba(26,26,26,.35);stroke:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)}::ng-deep .pep-quantity-selector-container.strong .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex .svg-icon,::ng-deep .pepperi-quantity-selector-container.strong .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex .svg-icon{fill:#fff;fill:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%))}::ng-deep .pep-quantity-selector-container.strong .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex .svg-icon.stroke,::ng-deep .pepperi-quantity-selector-container.strong .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex .svg-icon.stroke{fill:unset;stroke:#fff;stroke:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%))}::ng-deep .pep-quantity-selector-container.strong .pep-button,::ng-deep .pep-quantity-selector-container.strong .pepperi-button,::ng-deep .pepperi-quantity-selector-container.strong .pep-button,::ng-deep .pepperi-quantity-selector-container.strong .pepperi-button{font-weight:600;font-weight:var(--pep-font-weight-bold,600);background:#1a1a1a;background:hsl(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),var(--pep-color-qs-l,10%));box-shadow:0 .25rem .5rem 0 rgba(26,26,26,.08);box-shadow:var(--pep-shadow-sm-offset,0 .25rem .5rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.08);color:#fff;color:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%))}::ng-deep .pep-quantity-selector-container.strong .pep-button .svg-icon,::ng-deep .pep-quantity-selector-container.strong .pepperi-button .svg-icon,::ng-deep .pepperi-quantity-selector-container.strong .pep-button .svg-icon,::ng-deep .pepperi-quantity-selector-container.strong .pepperi-button .svg-icon{fill:#fff;fill:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%))}::ng-deep .pep-quantity-selector-container.strong .pep-button .svg-icon.stroke,::ng-deep .pep-quantity-selector-container.strong .pepperi-button .svg-icon.stroke,::ng-deep .pepperi-quantity-selector-container.strong .pep-button .svg-icon.stroke,::ng-deep .pepperi-quantity-selector-container.strong .pepperi-button .svg-icon.stroke{fill:unset;stroke:#fff;stroke:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%))}::ng-deep .pep-quantity-selector-container.strong .pep-button:hover,::ng-deep .pep-quantity-selector-container.strong .pepperi-button:hover,::ng-deep .pepperi-quantity-selector-container.strong .pep-button:hover,::ng-deep .pepperi-quantity-selector-container.strong .pepperi-button:hover{background:hsl(0,0%,calc(10% - 8%));background:hsl(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),calc(var(--pep-color-qs-l, 10%) - 8%));box-shadow:0 .25rem .5rem 0 rgba(26,26,26,.16);box-shadow:var(--pep-shadow-sm-offset,0 .25rem .5rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.16)}::ng-deep .pep-quantity-selector-container.strong .pep-button:focus,::ng-deep .pep-quantity-selector-container.strong .pepperi-button:focus,::ng-deep .pepperi-quantity-selector-container.strong .pep-button:focus,::ng-deep .pepperi-quantity-selector-container.strong .pepperi-button:focus{background:hsl(0,0%,calc(10% - 15%));background:hsl(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),calc(var(--pep-color-qs-l, 10%) - 15%));box-shadow:0 .25rem .5rem 0 rgba(26,26,26,.08);box-shadow:var(--pep-shadow-sm-offset,0 .25rem .5rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.08);box-shadow:0 0 0 .25rem rgba(23,102,166,.5);box-shadow:0 0 0 var(--pep-spacing-xs,.25rem) hsla(var(--pep-color-text-link-h,207),var(--pep-color-text-link-s,76%),var(--pep-color-text-link-l,37%),.5)}::ng-deep .pep-quantity-selector-container.strong .pep-button:active,::ng-deep .pep-quantity-selector-container.strong .pepperi-button:active,::ng-deep .pepperi-quantity-selector-container.strong .pep-button:active,::ng-deep .pepperi-quantity-selector-container.strong .pepperi-button:active{background:hsl(0,0%,calc(10% - 15%));background:hsl(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),calc(var(--pep-color-qs-l, 10%) - 15%));box-shadow:0 .25rem .5rem 0 rgba(26,26,26,.32);box-shadow:var(--pep-shadow-sm-offset,0 .25rem .5rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.32)}::ng-deep .pep-quantity-selector-container.strong .pep-button:disabled:not(.ignore-disabled),::ng-deep .pep-quantity-selector-container.strong .pepperi-button:disabled:not(.ignore-disabled),::ng-deep .pepperi-quantity-selector-container.strong .pep-button:disabled:not(.ignore-disabled),::ng-deep .pepperi-quantity-selector-container.strong .pepperi-button:disabled:not(.ignore-disabled){box-shadow:unset;border:unset;background:#1a1a1a!important;background:hsl(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),var(--pep-color-qs-l,10%))!important;opacity:.5!important;color:#fff;color:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%))}::ng-deep .pep-quantity-selector-container.strong .pep-button:disabled:not(.ignore-disabled):after,::ng-deep .pep-quantity-selector-container.strong .pepperi-button:disabled:not(.ignore-disabled):after,::ng-deep .pepperi-quantity-selector-container.strong .pep-button:disabled:not(.ignore-disabled):after,::ng-deep .pepperi-quantity-selector-container.strong .pepperi-button:disabled:not(.ignore-disabled):after{border:unset}::ng-deep .pep-quantity-selector-container.strong .pep-button:disabled:not(.ignore-disabled) .svg-icon,::ng-deep .pep-quantity-selector-container.strong .pepperi-button:disabled:not(.ignore-disabled) .svg-icon,::ng-deep .pepperi-quantity-selector-container.strong .pep-button:disabled:not(.ignore-disabled) .svg-icon,::ng-deep .pepperi-quantity-selector-container.strong .pepperi-button:disabled:not(.ignore-disabled) .svg-icon{fill:rgba(26,26,26,.35);fill:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)}::ng-deep .pep-quantity-selector-container.strong .pep-button:disabled:not(.ignore-disabled) .svg-icon.stroke,::ng-deep .pep-quantity-selector-container.strong .pepperi-button:disabled:not(.ignore-disabled) .svg-icon.stroke,::ng-deep .pepperi-quantity-selector-container.strong .pep-button:disabled:not(.ignore-disabled) .svg-icon.stroke,::ng-deep .pepperi-quantity-selector-container.strong .pepperi-button:disabled:not(.ignore-disabled) .svg-icon.stroke{stroke:rgba(26,26,26,.35);stroke:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)}::ng-deep .pep-quantity-selector-container.strong .pep-button:disabled:not(.ignore-disabled) .svg-icon,::ng-deep .pep-quantity-selector-container.strong .pepperi-button:disabled:not(.ignore-disabled) .svg-icon,::ng-deep .pepperi-quantity-selector-container.strong .pep-button:disabled:not(.ignore-disabled) .svg-icon,::ng-deep .pepperi-quantity-selector-container.strong .pepperi-button:disabled:not(.ignore-disabled) .svg-icon{fill:#fff;fill:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%))}::ng-deep .pep-quantity-selector-container.strong .pep-button:disabled:not(.ignore-disabled) .svg-icon.stroke,::ng-deep .pep-quantity-selector-container.strong .pepperi-button:disabled:not(.ignore-disabled) .svg-icon.stroke,::ng-deep .pepperi-quantity-selector-container.strong .pep-button:disabled:not(.ignore-disabled) .svg-icon.stroke,::ng-deep .pepperi-quantity-selector-container.strong .pepperi-button:disabled:not(.ignore-disabled) .svg-icon.stroke{fill:unset;stroke:#fff;stroke:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%))}::ng-deep .pep-quantity-selector-container.strong .pep-button.qs-action,::ng-deep .pep-quantity-selector-container.strong .pepperi-button.qs-action,::ng-deep .pepperi-quantity-selector-container.strong .pep-button.qs-action,::ng-deep .pepperi-quantity-selector-container.strong .pepperi-button.qs-action{background:rgba(26,26,26,.12);background:hsla(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),var(--pep-color-qs-l,10%),.12);box-shadow:unset;border:unset;z-index:1}::ng-deep .pep-quantity-selector-container.strong .pep-button.qs-action:hover,::ng-deep .pep-quantity-selector-container.strong .pepperi-button.qs-action:hover,::ng-deep .pepperi-quantity-selector-container.strong .pep-button.qs-action:hover,::ng-deep .pepperi-quantity-selector-container.strong .pepperi-button.qs-action:hover{background:rgba(26,26,26,.16);background:hsla(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),var(--pep-color-qs-l,10%),.16)}::ng-deep .pep-quantity-selector-container.strong .pep-button.qs-action:focus,::ng-deep .pep-quantity-selector-container.strong .pepperi-button.qs-action:focus,::ng-deep .pepperi-quantity-selector-container.strong .pep-button.qs-action:focus,::ng-deep .pepperi-quantity-selector-container.strong .pepperi-button.qs-action:focus{box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.08);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.08);position:relative;box-shadow:0 0 0 .25rem rgba(23,102,166,.5);box-shadow:0 0 0 var(--pep-spacing-xs,.25rem) hsla(var(--pep-color-text-link-h,207),var(--pep-color-text-link-s,76%),var(--pep-color-text-link-l,37%),.5)}::ng-deep .pep-quantity-selector-container.strong .pep-button.qs-action:focus:not(.keep-background-on-focus),::ng-deep .pep-quantity-selector-container.strong .pepperi-button.qs-action:focus:not(.keep-background-on-focus),::ng-deep .pepperi-quantity-selector-container.strong .pep-button.qs-action:focus:not(.keep-background-on-focus),::ng-deep .pepperi-quantity-selector-container.strong .pepperi-button.qs-action:focus:not(.keep-background-on-focus){background:#fff;background:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%))}::ng-deep .pep-quantity-selector-container.strong .pep-button.qs-action:focus:after,::ng-deep .pep-quantity-selector-container.strong .pepperi-button.qs-action:focus:after,::ng-deep .pepperi-quantity-selector-container.strong .pep-button.qs-action:focus:after,::ng-deep .pepperi-quantity-selector-container.strong .pepperi-button.qs-action:focus:after{z-index:0;content:\"\";transition:all .25s;display:block;position:absolute;top:0;bottom:0;left:0;right:0;border-radius:inherit;border:1px solid #1a1a1a;border:1px solid hsl(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),var(--pep-color-qs-l,10%))}::ng-deep .pep-quantity-selector-container.strong .pep-button.qs-action:active,::ng-deep .pep-quantity-selector-container.strong .pepperi-button.qs-action:active,::ng-deep .pepperi-quantity-selector-container.strong .pep-button.qs-action:active,::ng-deep .pepperi-quantity-selector-container.strong .pepperi-button.qs-action:active{box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.08);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.08);position:relative}::ng-deep .pep-quantity-selector-container.strong .pep-button.qs-action:active:not(.keep-background-on-focus),::ng-deep .pep-quantity-selector-container.strong .pepperi-button.qs-action:active:not(.keep-background-on-focus),::ng-deep .pepperi-quantity-selector-container.strong .pep-button.qs-action:active:not(.keep-background-on-focus),::ng-deep .pepperi-quantity-selector-container.strong .pepperi-button.qs-action:active:not(.keep-background-on-focus){background:#fff;background:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%))}::ng-deep .pep-quantity-selector-container.strong .pep-button.qs-action:active:after,::ng-deep .pep-quantity-selector-container.strong .pepperi-button.qs-action:active:after,::ng-deep .pepperi-quantity-selector-container.strong .pep-button.qs-action:active:after,::ng-deep .pepperi-quantity-selector-container.strong .pepperi-button.qs-action:active:after{z-index:0;content:\"\";transition:all .25s;display:block;position:absolute;top:0;bottom:0;left:0;right:0;border-radius:inherit;border:1px solid #1a1a1a;border:1px solid hsl(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),var(--pep-color-qs-l,10%))}::ng-deep .pep-quantity-selector-container.strong .pep-button.qs-action:disabled:not(.ignore-disabled),::ng-deep .pep-quantity-selector-container.strong .pepperi-button.qs-action:disabled:not(.ignore-disabled),::ng-deep .pepperi-quantity-selector-container.strong .pep-button.qs-action:disabled:not(.ignore-disabled),::ng-deep .pepperi-quantity-selector-container.strong .pepperi-button.qs-action:disabled:not(.ignore-disabled){box-shadow:unset;border:unset;color:rgba(26,26,26,.35)!important;color:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)!important;background:rgba(26,26,26,.04)!important;background:hsla(var(--pep-color-qs-h,0),var(--pep-color-qs-s,0%),var(--pep-color-qs-l,10%),.04)!important}::ng-deep .pep-quantity-selector-container.strong .pep-button.qs-action:disabled:not(.ignore-disabled):after,::ng-deep .pep-quantity-selector-container.strong .pepperi-button.qs-action:disabled:not(.ignore-disabled):after,::ng-deep .pepperi-quantity-selector-container.strong .pep-button.qs-action:disabled:not(.ignore-disabled):after,::ng-deep .pepperi-quantity-selector-container.strong .pepperi-button.qs-action:disabled:not(.ignore-disabled):after{border:unset}::ng-deep .pep-quantity-selector-container.strong .pep-button.qs-action:disabled:not(.ignore-disabled) .svg-icon,::ng-deep .pep-quantity-selector-container.strong .pepperi-button.qs-action:disabled:not(.ignore-disabled) .svg-icon,::ng-deep .pepperi-quantity-selector-container.strong .pep-button.qs-action:disabled:not(.ignore-disabled) .svg-icon,::ng-deep .pepperi-quantity-selector-container.strong .pepperi-button.qs-action:disabled:not(.ignore-disabled) .svg-icon{fill:rgba(26,26,26,.35);fill:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)}::ng-deep .pep-quantity-selector-container.strong .pep-button.qs-action:disabled:not(.ignore-disabled) .svg-icon.stroke,::ng-deep .pep-quantity-selector-container.strong .pepperi-button.qs-action:disabled:not(.ignore-disabled) .svg-icon.stroke,::ng-deep .pepperi-quantity-selector-container.strong .pep-button.qs-action:disabled:not(.ignore-disabled) .svg-icon.stroke,::ng-deep .pepperi-quantity-selector-container.strong .pepperi-button.qs-action:disabled:not(.ignore-disabled) .svg-icon.stroke{fill:unset;stroke:rgba(26,26,26,.35);stroke:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)}::ng-deep .pep-quantity-selector-container.strong.caution .mat-form-field .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.strong.caution .mat-form-field .mat-form-field-flex{font-weight:600;font-weight:var(--pep-font-weight-bold,600);background:#e60000;background:hsl(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),var(--pep-color-system-caution-l,45%));box-shadow:0 .25rem .5rem 0 rgba(26,26,26,.08);box-shadow:var(--pep-shadow-sm-offset,0 .25rem .5rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.08);color:#fff;color:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%))}::ng-deep .pep-quantity-selector-container.strong.caution .mat-form-field .mat-form-field-flex .svg-icon,::ng-deep .pepperi-quantity-selector-container.strong.caution .mat-form-field .mat-form-field-flex .svg-icon{fill:#fff;fill:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%))}::ng-deep .pep-quantity-selector-container.strong.caution .mat-form-field .mat-form-field-flex .svg-icon.stroke,::ng-deep .pepperi-quantity-selector-container.strong.caution .mat-form-field .mat-form-field-flex .svg-icon.stroke{fill:unset;stroke:#fff;stroke:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%))}::ng-deep .pep-quantity-selector-container.strong.caution .mat-form-field:hover .ignore-disabled .mat-form-field-flex,::ng-deep .pep-quantity-selector-container.strong.caution .mat-form-field:hover:not(.mat-form-field-disabled) .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.strong.caution .mat-form-field:hover .ignore-disabled .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.strong.caution .mat-form-field:hover:not(.mat-form-field-disabled) .mat-form-field-flex{background:hsl(360,100%,calc(45% - 8%));background:hsl(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),calc(var(--pep-color-system-caution-l, 45%) - 8%));box-shadow:0 .25rem .5rem 0 rgba(26,26,26,.16);box-shadow:var(--pep-shadow-sm-offset,0 .25rem .5rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.16)}::ng-deep .pep-quantity-selector-container.strong.caution .mat-form-field.mat-focused .ignore-disabled .mat-form-field-flex,::ng-deep .pep-quantity-selector-container.strong.caution .mat-form-field.mat-focused:not(.mat-form-field-disabled) .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.strong.caution .mat-form-field.mat-focused .ignore-disabled .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.strong.caution .mat-form-field.mat-focused:not(.mat-form-field-disabled) .mat-form-field-flex{background:hsl(360,100%,calc(45% - 15%));background:hsl(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),calc(var(--pep-color-system-caution-l, 45%) - 15%));box-shadow:0 .25rem .5rem 0 rgba(26,26,26,.08);box-shadow:var(--pep-shadow-sm-offset,0 .25rem .5rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.08);box-shadow:0 0 0 .25rem rgba(23,102,166,.5);box-shadow:0 0 0 var(--pep-spacing-xs,.25rem) hsla(var(--pep-color-text-link-h,207),var(--pep-color-text-link-s,76%),var(--pep-color-text-link-l,37%),.5)}::ng-deep .pep-quantity-selector-container.strong.caution .mat-form-field.active .ignore-disabled .mat-form-field-flex,::ng-deep .pep-quantity-selector-container.strong.caution .mat-form-field.active:not(.mat-form-field-disabled) .mat-form-field-flex,::ng-deep .pep-quantity-selector-container.strong.caution .mat-form-field:active .ignore-disabled .mat-form-field-flex,::ng-deep .pep-quantity-selector-container.strong.caution .mat-form-field:active:not(.mat-form-field-disabled) .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.strong.caution .mat-form-field.active .ignore-disabled .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.strong.caution .mat-form-field.active:not(.mat-form-field-disabled) .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.strong.caution .mat-form-field:active .ignore-disabled .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.strong.caution .mat-form-field:active:not(.mat-form-field-disabled) .mat-form-field-flex{background:hsl(360,100%,calc(45% - 15%));background:hsl(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),calc(var(--pep-color-system-caution-l, 45%) - 15%));box-shadow:0 .25rem .5rem 0 rgba(26,26,26,.32);box-shadow:var(--pep-shadow-sm-offset,0 .25rem .5rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.32)}::ng-deep .pep-quantity-selector-container.strong.caution .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex,::ng-deep .pepperi-quantity-selector-container.strong.caution .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex{box-shadow:unset;border:unset;background:#e60000!important;background:hsl(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),var(--pep-color-system-caution-l,45%))!important;opacity:.5!important;color:#fff;color:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%))}::ng-deep .pep-quantity-selector-container.strong.caution .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex:after,::ng-deep .pepperi-quantity-selector-container.strong.caution .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex:after{border:unset}::ng-deep .pep-quantity-selector-container.strong.caution .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex .svg-icon,::ng-deep .pepperi-quantity-selector-container.strong.caution .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex .svg-icon{fill:rgba(26,26,26,.35);fill:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)}::ng-deep .pep-quantity-selector-container.strong.caution .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex .svg-icon.stroke,::ng-deep .pepperi-quantity-selector-container.strong.caution .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex .svg-icon.stroke{stroke:rgba(26,26,26,.35);stroke:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)}::ng-deep .pep-quantity-selector-container.strong.caution .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex .svg-icon,::ng-deep .pepperi-quantity-selector-container.strong.caution .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex .svg-icon{fill:#fff;fill:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%))}::ng-deep .pep-quantity-selector-container.strong.caution .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex .svg-icon.stroke,::ng-deep .pepperi-quantity-selector-container.strong.caution .mat-form-field.mat-form-field-disabled:not(.ignore-disabled) .mat-form-field-flex .svg-icon.stroke{fill:unset;stroke:#fff;stroke:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%))}::ng-deep .pep-quantity-selector-container.strong.caution .pep-button,::ng-deep .pep-quantity-selector-container.strong.caution .pepperi-button,::ng-deep .pepperi-quantity-selector-container.strong.caution .pep-button,::ng-deep .pepperi-quantity-selector-container.strong.caution .pepperi-button{font-weight:600;font-weight:var(--pep-font-weight-bold,600);background:#e60000;background:hsl(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),var(--pep-color-system-caution-l,45%));box-shadow:0 .25rem .5rem 0 rgba(26,26,26,.08);box-shadow:var(--pep-shadow-sm-offset,0 .25rem .5rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.08);color:#fff;color:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%))}::ng-deep .pep-quantity-selector-container.strong.caution .pep-button .svg-icon,::ng-deep .pep-quantity-selector-container.strong.caution .pepperi-button .svg-icon,::ng-deep .pepperi-quantity-selector-container.strong.caution .pep-button .svg-icon,::ng-deep .pepperi-quantity-selector-container.strong.caution .pepperi-button .svg-icon{fill:#fff;fill:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%))}::ng-deep .pep-quantity-selector-container.strong.caution .pep-button .svg-icon.stroke,::ng-deep .pep-quantity-selector-container.strong.caution .pepperi-button .svg-icon.stroke,::ng-deep .pepperi-quantity-selector-container.strong.caution .pep-button .svg-icon.stroke,::ng-deep .pepperi-quantity-selector-container.strong.caution .pepperi-button .svg-icon.stroke{fill:unset;stroke:#fff;stroke:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%))}::ng-deep .pep-quantity-selector-container.strong.caution .pep-button:hover,::ng-deep .pep-quantity-selector-container.strong.caution .pepperi-button:hover,::ng-deep .pepperi-quantity-selector-container.strong.caution .pep-button:hover,::ng-deep .pepperi-quantity-selector-container.strong.caution .pepperi-button:hover{background:hsl(360,100%,calc(45% - 8%));background:hsl(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),calc(var(--pep-color-system-caution-l, 45%) - 8%));box-shadow:0 .25rem .5rem 0 rgba(26,26,26,.16);box-shadow:var(--pep-shadow-sm-offset,0 .25rem .5rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.16)}::ng-deep .pep-quantity-selector-container.strong.caution .pep-button:focus,::ng-deep .pep-quantity-selector-container.strong.caution .pepperi-button:focus,::ng-deep .pepperi-quantity-selector-container.strong.caution .pep-button:focus,::ng-deep .pepperi-quantity-selector-container.strong.caution .pepperi-button:focus{background:hsl(360,100%,calc(45% - 15%));background:hsl(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),calc(var(--pep-color-system-caution-l, 45%) - 15%));box-shadow:0 .25rem .5rem 0 rgba(26,26,26,.08);box-shadow:var(--pep-shadow-sm-offset,0 .25rem .5rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.08);box-shadow:0 0 0 .25rem rgba(23,102,166,.5);box-shadow:0 0 0 var(--pep-spacing-xs,.25rem) hsla(var(--pep-color-text-link-h,207),var(--pep-color-text-link-s,76%),var(--pep-color-text-link-l,37%),.5)}::ng-deep .pep-quantity-selector-container.strong.caution .pep-button:active,::ng-deep .pep-quantity-selector-container.strong.caution .pepperi-button:active,::ng-deep .pepperi-quantity-selector-container.strong.caution .pep-button:active,::ng-deep .pepperi-quantity-selector-container.strong.caution .pepperi-button:active{background:hsl(360,100%,calc(45% - 15%));background:hsl(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),calc(var(--pep-color-system-caution-l, 45%) - 15%));box-shadow:0 .25rem .5rem 0 rgba(26,26,26,.32);box-shadow:var(--pep-shadow-sm-offset,0 .25rem .5rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.32)}::ng-deep .pep-quantity-selector-container.strong.caution .pep-button:disabled:not(.ignore-disabled),::ng-deep .pep-quantity-selector-container.strong.caution .pepperi-button:disabled:not(.ignore-disabled),::ng-deep .pepperi-quantity-selector-container.strong.caution .pep-button:disabled:not(.ignore-disabled),::ng-deep .pepperi-quantity-selector-container.strong.caution .pepperi-button:disabled:not(.ignore-disabled){box-shadow:unset;border:unset;background:#e60000!important;background:hsl(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),var(--pep-color-system-caution-l,45%))!important;opacity:.5!important;color:#fff;color:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%))}::ng-deep .pep-quantity-selector-container.strong.caution .pep-button:disabled:not(.ignore-disabled):after,::ng-deep .pep-quantity-selector-container.strong.caution .pepperi-button:disabled:not(.ignore-disabled):after,::ng-deep .pepperi-quantity-selector-container.strong.caution .pep-button:disabled:not(.ignore-disabled):after,::ng-deep .pepperi-quantity-selector-container.strong.caution .pepperi-button:disabled:not(.ignore-disabled):after{border:unset}::ng-deep .pep-quantity-selector-container.strong.caution .pep-button:disabled:not(.ignore-disabled) .svg-icon,::ng-deep .pep-quantity-selector-container.strong.caution .pepperi-button:disabled:not(.ignore-disabled) .svg-icon,::ng-deep .pepperi-quantity-selector-container.strong.caution .pep-button:disabled:not(.ignore-disabled) .svg-icon,::ng-deep .pepperi-quantity-selector-container.strong.caution .pepperi-button:disabled:not(.ignore-disabled) .svg-icon{fill:rgba(26,26,26,.35);fill:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)}::ng-deep .pep-quantity-selector-container.strong.caution .pep-button:disabled:not(.ignore-disabled) .svg-icon.stroke,::ng-deep .pep-quantity-selector-container.strong.caution .pepperi-button:disabled:not(.ignore-disabled) .svg-icon.stroke,::ng-deep .pepperi-quantity-selector-container.strong.caution .pep-button:disabled:not(.ignore-disabled) .svg-icon.stroke,::ng-deep .pepperi-quantity-selector-container.strong.caution .pepperi-button:disabled:not(.ignore-disabled) .svg-icon.stroke{stroke:rgba(26,26,26,.35);stroke:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)}::ng-deep .pep-quantity-selector-container.strong.caution .pep-button:disabled:not(.ignore-disabled) .svg-icon,::ng-deep .pep-quantity-selector-container.strong.caution .pepperi-button:disabled:not(.ignore-disabled) .svg-icon,::ng-deep .pepperi-quantity-selector-container.strong.caution .pep-button:disabled:not(.ignore-disabled) .svg-icon,::ng-deep .pepperi-quantity-selector-container.strong.caution .pepperi-button:disabled:not(.ignore-disabled) .svg-icon{fill:#fff;fill:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%))}::ng-deep .pep-quantity-selector-container.strong.caution .pep-button:disabled:not(.ignore-disabled) .svg-icon.stroke,::ng-deep .pep-quantity-selector-container.strong.caution .pepperi-button:disabled:not(.ignore-disabled) .svg-icon.stroke,::ng-deep .pepperi-quantity-selector-container.strong.caution .pep-button:disabled:not(.ignore-disabled) .svg-icon.stroke,::ng-deep .pepperi-quantity-selector-container.strong.caution .pepperi-button:disabled:not(.ignore-disabled) .svg-icon.stroke{fill:unset;stroke:#fff;stroke:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%))}::ng-deep .pep-quantity-selector-container.strong.caution .pep-button.qs-action,::ng-deep .pep-quantity-selector-container.strong.caution .pepperi-button.qs-action,::ng-deep .pepperi-quantity-selector-container.strong.caution .pep-button.qs-action,::ng-deep .pepperi-quantity-selector-container.strong.caution .pepperi-button.qs-action{background:rgba(230,0,0,.12);background:hsla(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),var(--pep-color-system-caution-l,45%),.12);box-shadow:unset;border:unset;z-index:1}::ng-deep .pep-quantity-selector-container.strong.caution .pep-button.qs-action:hover,::ng-deep .pep-quantity-selector-container.strong.caution .pepperi-button.qs-action:hover,::ng-deep .pepperi-quantity-selector-container.strong.caution .pep-button.qs-action:hover,::ng-deep .pepperi-quantity-selector-container.strong.caution .pepperi-button.qs-action:hover{background:rgba(230,0,0,.16);background:hsla(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),var(--pep-color-system-caution-l,45%),.16)}::ng-deep .pep-quantity-selector-container.strong.caution .pep-button.qs-action:focus,::ng-deep .pep-quantity-selector-container.strong.caution .pepperi-button.qs-action:focus,::ng-deep .pepperi-quantity-selector-container.strong.caution .pep-button.qs-action:focus,::ng-deep .pepperi-quantity-selector-container.strong.caution .pepperi-button.qs-action:focus{box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.08);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.08);position:relative;box-shadow:0 0 0 .25rem rgba(23,102,166,.5);box-shadow:0 0 0 var(--pep-spacing-xs,.25rem) hsla(var(--pep-color-text-link-h,207),var(--pep-color-text-link-s,76%),var(--pep-color-text-link-l,37%),.5)}::ng-deep .pep-quantity-selector-container.strong.caution .pep-button.qs-action:focus:not(.keep-background-on-focus),::ng-deep .pep-quantity-selector-container.strong.caution .pepperi-button.qs-action:focus:not(.keep-background-on-focus),::ng-deep .pepperi-quantity-selector-container.strong.caution .pep-button.qs-action:focus:not(.keep-background-on-focus),::ng-deep .pepperi-quantity-selector-container.strong.caution .pepperi-button.qs-action:focus:not(.keep-background-on-focus){background:#fff;background:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%))}::ng-deep .pep-quantity-selector-container.strong.caution .pep-button.qs-action:focus:after,::ng-deep .pep-quantity-selector-container.strong.caution .pepperi-button.qs-action:focus:after,::ng-deep .pepperi-quantity-selector-container.strong.caution .pep-button.qs-action:focus:after,::ng-deep .pepperi-quantity-selector-container.strong.caution .pepperi-button.qs-action:focus:after{z-index:0;content:\"\";transition:all .25s;display:block;position:absolute;top:0;bottom:0;left:0;right:0;border-radius:inherit;border:1px solid #e60000;border:1px solid hsl(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),var(--pep-color-system-caution-l,45%))}::ng-deep .pep-quantity-selector-container.strong.caution .pep-button.qs-action:active,::ng-deep .pep-quantity-selector-container.strong.caution .pepperi-button.qs-action:active,::ng-deep .pepperi-quantity-selector-container.strong.caution .pep-button.qs-action:active,::ng-deep .pepperi-quantity-selector-container.strong.caution .pepperi-button.qs-action:active{box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.08);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.08);position:relative}::ng-deep .pep-quantity-selector-container.strong.caution .pep-button.qs-action:active:not(.keep-background-on-focus),::ng-deep .pep-quantity-selector-container.strong.caution .pepperi-button.qs-action:active:not(.keep-background-on-focus),::ng-deep .pepperi-quantity-selector-container.strong.caution .pep-button.qs-action:active:not(.keep-background-on-focus),::ng-deep .pepperi-quantity-selector-container.strong.caution .pepperi-button.qs-action:active:not(.keep-background-on-focus){background:#fff;background:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%))}::ng-deep .pep-quantity-selector-container.strong.caution .pep-button.qs-action:active:after,::ng-deep .pep-quantity-selector-container.strong.caution .pepperi-button.qs-action:active:after,::ng-deep .pepperi-quantity-selector-container.strong.caution .pep-button.qs-action:active:after,::ng-deep .pepperi-quantity-selector-container.strong.caution .pepperi-button.qs-action:active:after{z-index:0;content:\"\";transition:all .25s;display:block;position:absolute;top:0;bottom:0;left:0;right:0;border-radius:inherit;border:1px solid #e60000;border:1px solid hsl(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),var(--pep-color-system-caution-l,45%))}::ng-deep .pep-quantity-selector-container.strong.caution .pep-button.qs-action:disabled:not(.ignore-disabled),::ng-deep .pep-quantity-selector-container.strong.caution .pepperi-button.qs-action:disabled:not(.ignore-disabled),::ng-deep .pepperi-quantity-selector-container.strong.caution .pep-button.qs-action:disabled:not(.ignore-disabled),::ng-deep .pepperi-quantity-selector-container.strong.caution .pepperi-button.qs-action:disabled:not(.ignore-disabled){box-shadow:unset;border:unset;color:rgba(26,26,26,.35)!important;color:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)!important;background:rgba(230,0,0,.04)!important;background:hsla(var(--pep-color-system-caution-h,360),var(--pep-color-system-caution-s,100%),var(--pep-color-system-caution-l,45%),.04)!important}::ng-deep .pep-quantity-selector-container.strong.caution .pep-button.qs-action:disabled:not(.ignore-disabled):after,::ng-deep .pep-quantity-selector-container.strong.caution .pepperi-button.qs-action:disabled:not(.ignore-disabled):after,::ng-deep .pepperi-quantity-selector-container.strong.caution .pep-button.qs-action:disabled:not(.ignore-disabled):after,::ng-deep .pepperi-quantity-selector-container.strong.caution .pepperi-button.qs-action:disabled:not(.ignore-disabled):after{border:unset}::ng-deep .pep-quantity-selector-container.strong.caution .pep-button.qs-action:disabled:not(.ignore-disabled) .svg-icon,::ng-deep .pep-quantity-selector-container.strong.caution .pepperi-button.qs-action:disabled:not(.ignore-disabled) .svg-icon,::ng-deep .pepperi-quantity-selector-container.strong.caution .pep-button.qs-action:disabled:not(.ignore-disabled) .svg-icon,::ng-deep .pepperi-quantity-selector-container.strong.caution .pepperi-button.qs-action:disabled:not(.ignore-disabled) .svg-icon{fill:rgba(26,26,26,.35);fill:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)}::ng-deep .pep-quantity-selector-container.strong.caution .pep-button.qs-action:disabled:not(.ignore-disabled) .svg-icon.stroke,::ng-deep .pep-quantity-selector-container.strong.caution .pepperi-button.qs-action:disabled:not(.ignore-disabled) .svg-icon.stroke,::ng-deep .pepperi-quantity-selector-container.strong.caution .pep-button.qs-action:disabled:not(.ignore-disabled) .svg-icon.stroke,::ng-deep .pepperi-quantity-selector-container.strong.caution .pepperi-button.qs-action:disabled:not(.ignore-disabled) .svg-icon.stroke{fill:unset;stroke:rgba(26,26,26,.35);stroke:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)}::ng-deep .pep-quantity-selector-container.matrix-qs .additional-value .mat-badge-content,::ng-deep .pepperi-quantity-selector-container.matrix-qs .additional-value .mat-badge-content{font-weight:600;font-weight:var(--pep-font-weight-bold,600);background:#5d8109;background:hsl(var(--pep-color-strong-h,78),var(--pep-color-strong-s,87%),var(--pep-color-strong-l,27%));box-shadow:0 .25rem .5rem 0 rgba(26,26,26,.08);box-shadow:var(--pep-shadow-sm-offset,0 .25rem .5rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.08);color:#fff;color:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%));background-color:#1a1a1a!important;background-color:hsl(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%))!important;box-shadow:0 .25rem .5rem 0 rgba(26,26,26,.32);box-shadow:var(--pep-shadow-sm-offset,0 .25rem .5rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.32)}::ng-deep .pep-quantity-selector-container.matrix-qs .additional-value .mat-badge-content .svg-icon,::ng-deep .pepperi-quantity-selector-container.matrix-qs .additional-value .mat-badge-content .svg-icon{fill:#fff;fill:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%))}::ng-deep .pep-quantity-selector-container.matrix-qs .additional-value .mat-badge-content .svg-icon.stroke,::ng-deep .pepperi-quantity-selector-container.matrix-qs .additional-value .mat-badge-content .svg-icon.stroke{fill:unset;stroke:#fff;stroke:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%))}"]
420
424
  },] }
421
425
  ];
422
426
  PepQuantitySelectorComponent.ctorParameters = () => [
@@ -445,6 +449,7 @@ PepQuantitySelectorComponent.propDecorators = {
445
449
  visible: [{ type: Input }],
446
450
  form: [{ type: Input }],
447
451
  showTitle: [{ type: Input }],
452
+ renderTitle: [{ type: Input }],
448
453
  layoutType: [{ type: Input }],
449
454
  isActive: [{ type: Input }],
450
455
  styleType: [{ type: Input }],
@@ -453,4 +458,4 @@ PepQuantitySelectorComponent.propDecorators = {
453
458
  QSCont: [{ type: ViewChild, args: ['QSCont',] }],
454
459
  QSInput: [{ type: ViewChild, args: ['QSInput',] }]
455
460
  };
456
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVhbnRpdHktc2VsZWN0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpYi9xdWFudGl0eS1zZWxlY3Rvci9xdWFudGl0eS1zZWxlY3Rvci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFJVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixTQUFTLEVBQ1QsVUFBVSxFQUNWLGlCQUFpQixFQUNqQix1QkFBdUIsRUFDdkIsU0FBUyxHQUVaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDSCxPQUFPLEVBQ1AsS0FBSyxFQUNMLEtBQUssRUFDTCxPQUFPLEVBQ1AsVUFBVSxHQUNiLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUdILHVCQUF1QixFQUV2Qiw0QkFBNEIsRUFHNUIsd0JBQXdCLEVBQ3hCLG1CQUFtQixHQUN0QixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxlQUFlLEVBQWEsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNELE9BQU8sRUFBZ0Isb0JBQW9CLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUE0QnZELE1BQU0sT0FBTyw0QkFBNEI7SUFzS3JDLFlBQ1ksRUFBcUIsRUFDckIsb0JBQTZDLEVBQzdDLFFBQW1CLEVBQ25CLE9BQW1CLEVBQ25CLFNBQTJCLEVBQzNCLGdCQUFxQztRQUxyQyxPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUNyQix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXlCO1FBQzdDLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUNuQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENB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QUFnQixDQUFDLENBQUM7d0JBQ3JELFVBQVUsQ0FBQyxjQUFjLEVBQUUsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO3FCQUN2RCxDQUFDO2lCQUNMOzthQUNKOzs7WUFyREcsaUJBQWlCO1lBZ0JqQix1QkFBdUI7WUFkdkIsU0FBUztZQUhULFVBQVU7WUEyQkwsZ0JBQWdCO1lBSnJCLG1CQUFtQjs7O2tCQXVDbEIsS0FBSztvQkFHTCxLQUFLOzZCQWlCTCxLQUFLO29CQWdCTCxLQUFLO21CQUNMLEtBQUs7d0JBQ0wsS0FBSzt1QkFDTCxLQUFLO3VCQUNMLEtBQUs7d0JBR0wsS0FBSzt5QkFTTCxLQUFLO3NCQUNMLEtBQUs7MkJBQ0wsS0FBSzs4QkFDTCxLQUFLOytCQUdMLEtBQUs7c0JBdUNMLEtBQUs7bUJBcUJMLEtBQUs7d0JBQ0wsS0FBSzt5QkFDTCxLQUFLO3VCQUNMLEtBQUs7d0JBR0wsS0FBSzswQkFLTCxNQUFNOzJCQUdOLE1BQU07cUJBR04sU0FBUyxTQUFDLFFBQVE7c0JBQ2xCLFNBQVMsU0FBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgT25Jbml0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBWaWV3Q2hpbGQsXG4gICAgRWxlbWVudFJlZixcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBSZW5kZXJlcjIsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICAgIHRyaWdnZXIsXG4gICAgc3RhdGUsXG4gICAgc3R5bGUsXG4gICAgYW5pbWF0ZSxcbiAgICB0cmFuc2l0aW9uLFxufSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7XG4gICAgUGVwTGF5b3V0VHlwZSxcbiAgICBQZXBTdHlsZVR5cGUsXG4gICAgUGVwQ3VzdG9taXphdGlvblNlcnZpY2UsXG4gICAgUGVwSG9yaXpvbnRhbEFsaWdubWVudCxcbiAgICBERUZBVUxUX0hPUklaT05UQUxfQUxJR05NRU5ULFxuICAgIElQZXBGaWVsZENsaWNrRXZlbnQsXG4gICAgUGVwUXVhbnRpdHlTZWxlY3RvckZpZWxkVHlwZSxcbiAgICBQZXBRdWFudGl0eVNlbGVjdG9yRmllbGQsXG4gICAgUGVwVXRpbGl0aWVzU2VydmljZSxcbn0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWInO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmcm9tRXZlbnQsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwZXAtcXVhbnRpdHktc2VsZWN0b3InLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9xdWFudGl0eS1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vcXVhbnRpdHktc2VsZWN0b3IuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBhbmltYXRpb25zOiBbXG4gICAgICAgIHRyaWdnZXIoJ3Nob3dIaWRlJywgW1xuICAgICAgICAgICAgc3RhdGUoXG4gICAgICAgICAgICAgICAgJ3Nob3cnLFxuICAgICAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSxcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAnc2NhbGUoMSknLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgc3RhdGUoXG4gICAgICAgICAgICAgICAgJ2hpZGUnLFxuICAgICAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMCxcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAnc2NhbGUoMCknLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgdHJhbnNpdGlvbignc2hvdyA9PiBoaWRlJywgYW5pbWF0ZSgnMjUwbXMgZWFzZS1vdXQnKSksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCdoaWRlID0+IHNob3cnLCBhbmltYXRlKCcyNTBtcyBlYXNlLWluJykpLFxuICAgICAgICBdKSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBQZXBRdWFudGl0eVNlbGVjdG9yQ29tcG9uZW50XG4gICAgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICBwdWJsaWMgc3RhdGljIEVOVEVSX0NISUxEUkVOID0gJ1tFbnRlckNoaWxkcmVuXSc7XG4gICAgcHVibGljIHN0YXRpYyBFTlRFUl9QQUNLQUdFID0gJ1tFbnRlclBhY2thZ2VdJztcbiAgICBwdWJsaWMgc3RhdGljIFBMVVMgPSAnWytdJztcbiAgICBwdWJsaWMgc3RhdGljIE1JTlVTID0gJ1stXSc7XG5cbiAgICBASW5wdXQoKSBrZXkgPSAnJztcblxuICAgIHByaXZhdGUgX3ZhbHVlID0gbnVsbDtcbiAgICBASW5wdXQoKVxuICAgIHNldCB2YWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgIHZhbHVlID0gJyc7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuXG4gICAgICAgIGlmICh0aGlzLl9jYWxjdWxhdGVGb3JtYXR0ZWRWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5zZXRGb3JtYXR0ZWRWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9mb3JtYXR0ZWRWYWx1ZSA9IG51bGw7XG4gICAgQElucHV0KClcbiAgICBzZXQgZm9ybWF0dGVkVmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICB2YWx1ZSA9ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuX2NhbGN1bGF0ZUZvcm1hdHRlZFZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLl9jYWxjdWxhdGVGb3JtYXR0ZWRWYWx1ZSA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZXRGb3JtYXR0ZWRWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuICAgIGdldCBmb3JtYXR0ZWRWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fZm9ybWF0dGVkVmFsdWU7XG4gICAgfVxuXG4gICAgQElucHV0KCkgbGFiZWwgPSAnJztcbiAgICBASW5wdXQoKSB0eXBlOiBQZXBRdWFudGl0eVNlbGVjdG9yRmllbGRUeXBlID0gJ3FzJztcbiAgICBASW5wdXQoKSBtYW5kYXRvcnkgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHJlYWRvbmx5ID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIF90ZXh0Q29sb3IgPSAnJztcbiAgICBASW5wdXQoKVxuICAgIHNldCB0ZXh0Q29sb3IodmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLl90ZXh0Q29sb3IgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5pc0NhdXRpb24gPSB2YWx1ZSA9PT0gJyNGRjAwMDAnO1xuICAgIH1cbiAgICBnZXQgdGV4dENvbG9yKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl90ZXh0Q29sb3I7XG4gICAgfVxuXG4gICAgQElucHV0KCkgeEFsaWdubWVudDogUGVwSG9yaXpvbnRhbEFsaWdubWVudCA9IERFRkFVTFRfSE9SSVpPTlRBTF9BTElHTk1FTlQ7XG4gICAgQElucHV0KCkgcm93U3BhbiA9IDE7XG4gICAgQElucHV0KCkgYWxsb3dEZWNpbWFsID0gZmFsc2U7XG4gICAgQElucHV0KCkgYWRkaXRpb25hbFZhbHVlID0gJyc7XG5cbiAgICBwcml2YXRlIF9ub3RpZmljYXRpb25JbmZvOiBhbnk7XG4gICAgQElucHV0KClcbiAgICBzZXQgbm90aWZpY2F0aW9uSW5mbyh2YWx1ZTogYW55KSB7XG4gICAgICAgIHRoaXMuX25vdGlmaWNhdGlvbkluZm8gPSB2YWx1ZTtcblxuICAgICAgICBjb25zdCBtZXNzYWdlcyA9IHZhbHVlICYmIHZhbHVlID4gMCA/IEpTT04ucGFyc2UodmFsdWUpLk1lc3NhZ2VzIDogJyc7XG4gICAgICAgIGlmIChtZXNzYWdlcyAmJiBtZXNzYWdlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAvLyBSZXBsYWNlIHRoZSBtc2cga2V5cy5cbiAgICAgICAgICAgIGZvciAoY29uc3QgbXNnIG9mIG1lc3NhZ2VzKSB7XG4gICAgICAgICAgICAgICAgaWYgKG1zZy5LZXkgPT09ICdJbnZlbnRvcnlfTGltaXRfTXNnJykge1xuICAgICAgICAgICAgICAgICAgICBtc2cuS2V5ID0gJ01FU1NBR0VTLkVSUk9SX0lOVkVOVE9SWV9MSU1JVCc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChtc2cuS2V5ID09PSAnQ2FzZV9RdWFudGl0eV9MaW1pdF9Nc2cnKSB7XG4gICAgICAgICAgICAgICAgICAgIG1zZy5LZXkgPSAnTUVTU0FHRVMuRVJST1JfQ0FTRV9RVUFOVElUWV9MSU1JVCc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChtc2cuS2V5ID09PSAnTWluX1F1YW50aXR5X0xpbWl0X01zZycpIHtcbiAgICAgICAgICAgICAgICAgICAgbXNnLktleSA9ICdNRVNTQUdFUy5FUlJPUl9NSU5fUVVBTlRJVFlfTElNSVQnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobXNnLktleSA9PT0gJ01heF9RdWFudGl0eV9MaW1pdF9Nc2cnKSB7XG4gICAgICAgICAgICAgICAgICAgIG1zZy5LZXkgPSAnTUVTU0FHRVMuRVJST1JfTUFYX1FVQU5USVRZX0xJTUlUJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMubWVzc2FnZXMgPSBtZXNzYWdlcztcblxuICAgICAgICAgICAgY29uc3QgZmllbGRDb250cm9sID0gdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMua2V5XTtcbiAgICAgICAgICAgIGZpZWxkQ29udHJvbC5zZXRFcnJvcnMoe1xuICAgICAgICAgICAgICAgIHNlcnZlckVycm9yOiAnRXJyb3InLFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRoaXMuc2FtZUVsZW1lbnRJblRoZVdhbnRlZFJvdyA9IG51bGw7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5RU0lucHV0ICYmIHRoaXMuUVNJbnB1dC5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuUVNJbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgMTUwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgbm90aWZpY2F0aW9uSW5mbygpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbm90aWZpY2F0aW9uSW5mbztcbiAgICB9XG5cbiAgICBwcml2YXRlIF92aXNpYmxlID0gdHJ1ZTtcbiAgICBASW5wdXQoKVxuICAgIHNldCB2aXNpYmxlKHZpc2libGU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fdmlzaWJsZSA9IHZpc2libGU7XG4gICAgICAgIGlmICh2aXNpYmxlKSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKFxuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgICdoaWRkZW4tZWxlbWVudCdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKFxuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgICdoaWRkZW4tZWxlbWVudCdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IHZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl92aXNpYmxlO1xuICAgIH1cblxuICAgIGNvbnRyb2xUeXBlID0gJ3FzJztcblxuICAgIEBJbnB1dCgpIGZvcm06IEZvcm1Hcm91cCA9IG51bGw7XG4gICAgQElucHV0KCkgc2hvd1RpdGxlID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBsYXlvdXRUeXBlOiBQZXBMYXlvdXRUeXBlID0gJ2Zvcm0nO1xuICAgIEBJbnB1dCgpIGlzQWN0aXZlID0gZmFsc2U7XG5cbiAgICAvLyBHZXQgZGVmYXVsdCBzdHlsZSBmcm9tIHRoZW1lLlxuICAgIEBJbnB1dCgpXG4gICAgc3R5bGVUeXBlOiBQZXBTdHlsZVR5cGUgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShcbiAgICAgICAgUGVwQ3VzdG9taXphdGlvblNlcnZpY2UuU1RZTEVfUVNfS0VZXG4gICAgKSBhcyBQZXBTdHlsZVR5cGU7IC8vJ3N0cm9uZyc7XG5cbiAgICBAT3V0cHV0KClcbiAgICB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIGVsZW1lbnRDbGljazogRXZlbnRFbWl0dGVyPElQZXBGaWVsZENsaWNrRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxJUGVwRmllbGRDbGlja0V2ZW50PigpO1xuXG4gICAgQFZpZXdDaGlsZCgnUVNDb250JykgUVNDb250OiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoJ1FTSW5wdXQnKSBRU0lucHV0OiBFbGVtZW50UmVmO1xuXG4gICAgcHJpdmF0ZSBfY2FsY3VsYXRlRm9ybWF0dGVkVmFsdWUgPSB0cnVlO1xuICAgIGdldCBjYWxjdWxhdGVGb3JtYXR0ZWRWYWx1ZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NhbGN1bGF0ZUZvcm1hdHRlZFZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3llZDogU3ViamVjdDx2b2lkPjtcbiAgICBwcml2YXRlIHFzV2lkdGhTdWJqZWN0OiBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPjtcbiAgICBsYXN0UXNDb250Q2xpZW50V2lkdGggPSAwO1xuICAgIHNob3dRc0J0biA9IHRydWU7XG5cbiAgICBzdGFuZEFsb25lID0gZmFsc2U7XG4gICAgaXNJbkZvY3VzID0gZmFsc2U7XG4gICAgaXNNYXRyaXhGb2N1cyA9IGZhbHNlO1xuXG4gICAgaXNDYXV0aW9uID0gZmFsc2U7XG4gICAgbWVzc2FnZXM6IEFycmF5PGFueT4gPSBudWxsO1xuXG4gICAgc2FtZUVsZW1lbnRJblRoZVdhbnRlZFJvdyA9IG51bGw7XG5cbiAgICBpc0VtcHR5S2V5ID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgY3VzdG9taXphdGlvblNlcnZpY2U6IFBlcEN1c3RvbWl6YXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgdXRpbGl0aWVzU2VydmljZTogUGVwVXRpbGl0aWVzU2VydmljZVxuICAgICkge1xuICAgICAgICB0aGlzLl9kZXN0cm95ZWQgPSBuZXcgU3ViamVjdCgpO1xuICAgICAgICB0aGlzLnFzV2lkdGhTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdCgwKTtcbiAgICB9XG5cbiAgICBzZXRGb3JtKCkge1xuICAgICAgICBjb25zdCBwZXBGaWVsZCA9IG5ldyBQZXBRdWFudGl0eVNlbGVjdG9yRmllbGQoe1xuICAgICAgICAgICAga2V5OiB0aGlzLmtleSxcbiAgICAgICAgICAgIHZhbHVlOiB0aGlzLnZhbHVlLFxuICAgICAgICAgICAgbWFuZGF0b3J5OiB0aGlzLm1hbmRhdG9yeSxcbiAgICAgICAgICAgIHJlYWRvbmx5OiB0aGlzLnJlYWRvbmx5LFxuICAgICAgICAgICAgZGlzYWJsZWQ6IHRoaXMuZGlzYWJsZWQsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmZvcm0gPSB0aGlzLmN1c3RvbWl6YXRpb25TZXJ2aWNlLmdldERlZmF1bHRGcm9tR3JvdXAocGVwRmllbGQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0Rm9ybWF0dGVkVmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAodGhpcy5fY2FsY3VsYXRlRm9ybWF0dGVkVmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX2Zvcm1hdHRlZFZhbHVlID0gdGhpcy51dGlsaXRpZXNTZXJ2aWNlLmZvcm1hdE51bWJlcih2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9mb3JtYXR0ZWRWYWx1ZSA9IHZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy51cGRhdGVGb3JtRmllbGRWYWx1ZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlRm9ybUZpZWxkVmFsdWUoKSB7XG4gICAgICAgIHRoaXMuY3VzdG9taXphdGlvblNlcnZpY2UudXBkYXRlRm9ybUZpZWxkVmFsdWUoXG4gICAgICAgICAgICB0aGlzLmZvcm0sXG4gICAgICAgICAgICB0aGlzLmtleSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0dGVkVmFsdWVcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgZGlzcGxheVZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHJlcyA9IHRoaXMuaXNJbkZvY3VzXG4gICAgICAgICAgICA/IHBhcnNlRmxvYXQodGhpcy52YWx1ZSkudG9TdHJpbmcoKVxuICAgICAgICAgICAgOiB0aGlzLmZvcm1hdHRlZFZhbHVlO1xuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXREZXN0cm95ZXIoKSB7XG4gICAgICAgIHJldHVybiB0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKHRoaXMua2V5ID09PSAnJykge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNFbXB0eUtleSA9IHRydWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuc3RhbmRBbG9uZSA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnNldEZvcm0oKTtcblxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICBQZXBDdXN0b21pemF0aW9uU2VydmljZS5TVEFORF9BTE9ORV9GSUVMRF9DTEFTU19OQU1FXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5xc1dpZHRoU3ViamVjdFxuICAgICAgICAgICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAgICAgICAucGlwZSh0aGlzLmdldERlc3Ryb3llcigpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgocXNXaWR0aDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXR1cFFzQnV0dG9ucyhxc1dpZHRoKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMudXBkYXRlRm9ybUZpZWxkVmFsdWUoKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIC8vXG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldFFzVmlldygpO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IGFueSk6IHZvaWQge1xuICAgICAgICAvLyBCdWcgZml4IGZvciBhZGRvbnMgd2hlbiB0aGUga2V5IGlzICcnIGluIHRoZSBuZ09uSW5pdCBmb3Igc29tZSByZXNvblxuICAgICAgICBpZiAodGhpcy5pc0VtcHR5S2V5ICYmIHRoaXMua2V5ICE9PSAnJykge1xuICAgICAgICAgICAgdGhpcy5zZXRGb3JtKCk7XG4gICAgICAgIH1cblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNUb1RoZVNhbWVFbGVtZW50SW5UaGVXYW50ZWRSb3coKTtcbiAgICAgICAgfSwgMTUwKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZGVzdHJveWVkLm5leHQoKTtcbiAgICAgICAgdGhpcy5fZGVzdHJveWVkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgZ2V0IGdldEFkZGl0aW9uYWxWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5hZGRpdGlvbmFsVmFsdWUubGVuZ3RoID4gMCA/ICdzaG93JyA6ICdoaWRlJztcbiAgICB9XG5cbiAgICBnZXRQYXJlbnRCeUNsYXNzKGVsLCBwYXJlbnRTZWxlY3RvciAvKiBvcHRpb25hbCAqLyk6IGFueSB7XG4gICAgICAgIC8vIElmIG5vIHBhcmVudFNlbGVjdG9yIGRlZmluZWQgd2lsbCBidWJibGUgdXAgYWxsIHRoZSB3YXkgdG8gKmRvY3VtZW50KlxuICAgICAgICBpZiAocGFyZW50U2VsZWN0b3IgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcGFyZW50U2VsZWN0b3IgPSBkb2N1bWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBwID0gZWwucGFyZW50Tm9kZTtcblxuICAgICAgICB3aGlsZSAoXG4gICAgICAgICAgICBwICYmXG4gICAgICAgICAgICAhcD8uY2xhc3NMaXN0Py5jb250YWlucyhwYXJlbnRTZWxlY3RvcikgJiZcbiAgICAgICAgICAgIHBhcmVudFNlbGVjdG9yICE9PSBkb2N1bWVudFxuICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IG8gPSBwO1xuICAgICAgICAgICAgcCA9IG8/LnBhcmVudE5vZGUgfHwgbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBwPy5jbGFzc05hbWUuaW5kZXhPZihwYXJlbnRTZWxlY3RvcikgPiAtMSA/IHAgOiBudWxsO1xuICAgIH1cblxuICAgIGdldFNhbWVFbGVtZW50SW5UaGVXYW50ZWRSb3dCeUNsYXNzTmFtZShldmVudDogYW55LCBpc05leHQgPSB0cnVlKTogYW55IHtcbiAgICAgICAgY29uc3QgZXZlbnRUYXJnZXQgPSBldmVudC50YXJnZXQgfHwgZXZlbnQuc3JjRWxlbWVudDtcbiAgICAgICAgbGV0IHNhbWVFbGVtZW50SW5UaGVXYW50ZWRSb3dCeUNsYXNzTmFtZTtcblxuICAgICAgICBsZXQgcGFyZW50U2VsZWN0b3I7XG4gICAgICAgIGlmICh0aGlzLmxheW91dFR5cGUgPT09ICd0YWJsZScpIHtcbiAgICAgICAgICAgIHBhcmVudFNlbGVjdG9yID0gdGhpcy5nZXRQYXJlbnRCeUNsYXNzKGV2ZW50VGFyZ2V0LCAndGFibGUtcm93Jyk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5sYXlvdXRUeXBlID09PSAnY2FyZCcpIHtcbiAgICAgICAgICAgIHBhcmVudFNlbGVjdG9yID0gdGhpcy5nZXRQYXJlbnRCeUNsYXNzKGV2ZW50VGFyZ2V0LCAnY2FyZC12aWV3Jyk7XG4gICAgICAgICAgICBpZiAoIXBhcmVudFNlbGVjdG9yKSB7XG4gICAgICAgICAgICAgICAgcGFyZW50U2VsZWN0b3IgPSB0aGlzLmdldFBhcmVudEJ5Q2xhc3MoXG4gICAgICAgICAgICAgICAgICAgIGV2ZW50VGFyZ2V0LFxuICAgICAgICAgICAgICAgICAgICAnbGluZS12aWV3J1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBwYXJlbnRTZWxlY3Rvci5uZXh0RWxlbWVudFNpYmxpbmcgPT09IG51bGwgJiZcbiAgICAgICAgICAgIHBhcmVudFNlbGVjdG9yLnByZXZpb3VzRWxlbWVudFNpYmxpbmcgPT09IG51bGxcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBzYW1lRWxlbWVudEluVGhlV2FudGVkUm93QnlDbGFzc05hbWUgPSBudWxsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGlzTmV4dCkge1xuICAgICAgICAgICAgICAgIGlmIChwYXJlbnRTZWxlY3Rvci5uZXh0RWxlbWVudFNpYmxpbmcgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgc2FtZUVsZW1lbnRJblRoZVdhbnRlZFJvd0J5Q2xhc3NOYW1lID0gcGFyZW50U2VsZWN0b3IucGFyZW50RWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKFxuICAgICAgICAgICAgICAgICAgICAgICAgJ1tuYW1lPScgKyB0aGlzLmtleSArICddJ1xuICAgICAgICAgICAgICAgICAgICApWzBdO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHNhbWVFbGVtZW50SW5UaGVXYW50ZWRSb3dCeUNsYXNzTmFtZSA9IHBhcmVudFNlbGVjdG9yLm5leHRFbGVtZW50U2libGluZy5xdWVyeVNlbGVjdG9yQWxsKFxuICAgICAgICAgICAgICAgICAgICAgICAgJ1tuYW1lPScgKyB0aGlzLmtleSArICddJ1xuICAgICAgICAgICAgICAgICAgICApWzBdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKHBhcmVudFNlbGVjdG9yLnByZXZpb3VzRWxlbWVudFNpYmxpbmcgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudHNMaXN0ID0gcGFyZW50U2VsZWN0b3IucGFyZW50RWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKFxuICAgICAgICAgICAgICAgICAgICAgICAgJ1tuYW1lPScgKyB0aGlzLmtleSArICddJ1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICBzYW1lRWxlbWVudEluVGhlV2FudGVkUm93QnlDbGFzc05hbWUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHNMaXN0W2VsZW1lbnRzTGlzdC5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzYW1lRWxlbWVudEluVGhlV2FudGVkUm93QnlDbGFzc05hbWUgPSBwYXJlbnRTZWxlY3Rvci5wcmV2aW91c0VsZW1lbnRTaWJsaW5nLnF1ZXJ5U2VsZWN0b3JBbGwoXG4gICAgICAgICAgICAgICAgICAgICAgICAnW25hbWU9JyArIHRoaXMua2V5ICsgJ10nXG4gICAgICAgICAgICAgICAgICAgIClbMF07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHNhbWVFbGVtZW50SW5UaGVXYW50ZWRSb3dCeUNsYXNzTmFtZTtcbiAgICB9XG5cbiAgICBzZXRTYW1lRWxlbWVudEluVGhlV2FudGVkUm93KGV2ZW50OiBhbnksIGlzTmV4dCA9IHRydWUpOiB2b2lkIHtcbiAgICAgICAgLy8gTmF2aWdhdGUgdG8gdGhlIFFTIGluIHRoZSBuZXh0IHJvdy5cbiAgICAgICAgaWYgKHRoaXMubGF5b3V0VHlwZSA9PT0gJ2NhcmQnIHx8IHRoaXMubGF5b3V0VHlwZSA9PT0gJ3RhYmxlJykge1xuICAgICAgICAgICAgdGhpcy5zYW1lRWxlbWVudEluVGhlV2FudGVkUm93ID0gdGhpcy5nZXRTYW1lRWxlbWVudEluVGhlV2FudGVkUm93QnlDbGFzc05hbWUoXG4gICAgICAgICAgICAgICAgZXZlbnQsXG4gICAgICAgICAgICAgICAgaXNOZXh0XG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5RU0lucHV0Lm5hdGl2ZUVsZW1lbnQuYmx1cigpO1xuICAgIH1cblxuICAgIGZvY3VzVG9UaGVTYW1lRWxlbWVudEluVGhlV2FudGVkUm93KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zYW1lRWxlbWVudEluVGhlV2FudGVkUm93KSB7XG4gICAgICAgICAgICBjb25zdCBlbGVtID0gdGhpcy5zYW1lRWxlbWVudEluVGhlV2FudGVkUm93O1xuICAgICAgICAgICAgLy8gSWYgdGhpcyBpcyByZWd1bGFyIGl0ZW0gKHFzIGFuZCBub3QgYnV0dG9uKSAuXG4gICAgICAgICAgICBpZiAoZWxlbSBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQgJiYgZWxlbS50eXBlID09PSAndGV4dCcpIHtcbiAgICAgICAgICAgICAgICBlbGVtLmNsaWNrKCk7XG4gICAgICAgICAgICAgICAgZWxlbS5zZWxlY3QoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFyZW50RWxlbSA9IGVsZW0ucGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICBwYXJlbnRFbGVtLmNsaWNrKCk7XG4gICAgICAgICAgICAgICAgZWxlbS5mb2N1cygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zYW1lRWxlbWVudEluVGhlV2FudGVkUm93ID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNsZWFuRXJyb3IoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGZpZWxkQ29udHJvbCA9IHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLmtleV07XG5cbiAgICAgICAgLy8gQ2xlYW4gdGhlIGVycm9yIG1lc3NhZ2VcbiAgICAgICAgaWYgKHRoaXMubWVzc2FnZXMgJiYgdGhpcy5tZXNzYWdlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2VzID0gdGhpcy5ub3RpZmljYXRpb25JbmZvID0gbnVsbDtcbiAgICAgICAgICAgIGZpZWxkQ29udHJvbC5zZXRFcnJvcnMobnVsbCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbk1hdHJpeE1vdXNlRW50ZXIoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzTWF0cml4Rm9jdXMgPSB0cnVlO1xuICAgIH1cblxuICAgIG9uTWF0cml4TW91c2VsZWF2ZShldmVudDogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNNYXRyaXhGb2N1cyA9IGZhbHNlO1xuICAgIH1cblxuICAgIG9uTWF0cml4Q2xpY2soZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzSW5Gb2N1cyA9IHRydWU7XG5cbiAgICAgICAgaWYgKHRoaXMuUVNJbnB1dCAmJiB0aGlzLlFTSW5wdXQubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5RU0lucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uTWF0cml4Qmx1cihldmVudDogYW55KTogdm9pZCB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICFldmVudC5yZWxhdGVkVGFyZ2V0IHx8XG4gICAgICAgICAgICBldmVudC5yZWxhdGVkVGFyZ2V0LmNsYXNzTmFtZS5pbmRleE9mKCdxcycpIDwgMFxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuaXNNYXRyaXhGb2N1cyA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5vbkJsdXIoZXZlbnQpO1xuICAgIH1cblxuICAgIG9uRm9jdXMoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzSW5Gb2N1cyA9IHRydWU7XG4gICAgfVxuXG4gICAgaXNEaWZmZXJlbnRWYWx1ZSh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGxldCByZXMgPSBmYWxzZTtcblxuICAgICAgICBjb25zdCBjdXJyZW50VmFsdWUgPSB0aGlzLnV0aWxpdGllc1NlcnZpY2UuY29lcmNlTnVtYmVyUHJvcGVydHkoXG4gICAgICAgICAgICB0aGlzLnZhbHVlXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gdGhpcy51dGlsaXRpZXNTZXJ2aWNlLmNvZXJjZU51bWJlclByb3BlcnR5KHZhbHVlKTtcblxuICAgICAgICByZXMgPSBjdXJyZW50VmFsdWUgIT09IG5ld1ZhbHVlO1xuXG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuXG4gICAgb25CbHVyKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0luRm9jdXMgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jbGVhbkVycm9yKCk7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gZXZlbnQudGFyZ2V0ID8gZXZlbnQudGFyZ2V0LnZhbHVlIDogZXZlbnQ7XG5cbiAgICAgICAgaWYgKHZhbHVlICE9PSB0aGlzLnZhbHVlICYmIHRoaXMuaXNEaWZmZXJlbnRWYWx1ZSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcblxuICAgICAgICAgICAgLy8gSWYgdGhlIHVzZXIgaXMgc2V0dGluZyB0aGUgZm9ybWF0dGVkIHZhbHVlIHRoZW4gc2V0IHRoZSB2YWx1ZSB0aWxsIHRoZSB1c2VyIGZvcm1hdCBpdCBhbmQgcmV0dXJuIGl0IGJhY2suXG4gICAgICAgICAgICBpZiAoIXRoaXMuX2NhbGN1bGF0ZUZvcm1hdHRlZFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZm9ybWF0dGVkVmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5mb2N1c1RvVGhlU2FtZUVsZW1lbnRJblRoZVdhbnRlZFJvdygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25LZXlkb3duKGV2ZW50KTogYW55IHtcbiAgICAgICAgY29uc3Qga2V5Ym9hcmRFdmVudCA9IGV2ZW50IGFzIEtleWJvYXJkRXZlbnQ7XG5cbiAgICAgICAgaWYgKGtleWJvYXJkRXZlbnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICB0aGlzLnNldFNhbWVFbGVtZW50SW5UaGVXYW50ZWRSb3coXG4gICAgICAgICAgICAgICAga2V5Ym9hcmRFdmVudCxcbiAgICAgICAgICAgICAgICAha2V5Ym9hcmRFdmVudC5zaGlmdEtleVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaW5jcmVtZW50KGV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnN0YW5kQWxvbmUpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLnV0aWxpdGllc1NlcnZpY2UuaW5jcmVtZW50TnVtYmVyKHRoaXMudmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5lbGVtZW50Q2xpY2suZW1pdCh7XG4gICAgICAgICAgICBrZXk6IHRoaXMua2V5LFxuICAgICAgICAgICAgdmFsdWU6IFBlcFF1YW50aXR5U2VsZWN0b3JDb21wb25lbnQuUExVUyxcbiAgICAgICAgICAgIGNvbnRyb2xUeXBlOiB0aGlzLmNvbnRyb2xUeXBlLFxuICAgICAgICAgICAgZXZlbnRXaGljaDogZXZlbnQud2hpY2gsXG4gICAgICAgIH0pO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG5cbiAgICBkZWNyZW1lbnQoZXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc3RhbmRBbG9uZSkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMudXRpbGl0aWVzU2VydmljZS5kZWNyZW1lbnROdW1iZXIodGhpcy52YWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmVsZW1lbnRDbGljay5lbWl0KHtcbiAgICAgICAgICAgIGtleTogdGhpcy5rZXksXG4gICAgICAgICAgICB2YWx1ZTogUGVwUXVhbnRpdHlTZWxlY3RvckNvbXBvbmVudC5NSU5VUyxcbiAgICAgICAgICAgIGNvbnRyb2xUeXBlOiB0aGlzLmNvbnRyb2xUeXBlLFxuICAgICAgICAgICAgZXZlbnRXaGljaDogZXZlbnQud2hpY2gsXG4gICAgICAgIH0pO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG5cbiAgICBlbnRlckNoaWxkcmVuKGV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWxlbWVudENsaWNrLmVtaXQoe1xuICAgICAgICAgICAga2V5OiB0aGlzLmtleSxcbiAgICAgICAgICAgIHZhbHVlOiBQZXBRdWFudGl0eVNlbGVjdG9yQ29tcG9uZW50LkVOVEVSX0NISUxEUkVOLFxuICAgICAgICAgICAgY29udHJvbFR5cGU6IHRoaXMuY29udHJvbFR5cGUsXG4gICAgICAgICAgICBldmVudFdoaWNoOiBldmVudC53aGljaCxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZW50ZXJQYWNrYWdlKGV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWxlbWVudENsaWNrLmVtaXQoe1xuICAgICAgICAgICAga2V5OiB0aGlzLmtleSxcbiAgICAgICAgICAgIHZhbHVlOiBQZXBRdWFudGl0eVNlbGVjdG9yQ29tcG9uZW50LkVOVEVSX1BBQ0tBR0UsXG4gICAgICAgICAgICBjb250cm9sVHlwZTogdGhpcy5jb250cm9sVHlwZSxcbiAgICAgICAgICAgIGV2ZW50V2hpY2g6IGV2ZW50LndoaWNoLFxuICAgICAgICAgICAgb3RoZXJEYXRhOiB0aGlzLm5vdGlmaWNhdGlvbkluZm8sXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNldHVwUXNCdXR0b25zKHFzV2lkdGg6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNob3dRc0J0biA9IHFzV2lkdGggPiAxMjA7XG5cbiAgICAgICAgaWYgKCF0aGlzLmNkWydkZXN0cm95ZWQnXSkge1xuICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRRc1ZpZXcoKTogdm9pZCB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMuUVNDb250ICYmXG4gICAgICAgICAgICB0aGlzLlFTQ29udC5uYXRpdmVFbGVtZW50ICYmXG4gICAgICAgICAgICB0aGlzLlFTQ29udC5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoID4gMFxuICAgICAgICApIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucXNXaWR0aFN1YmplY3QubmV4dCh0aGlzLlFTQ29udC5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoKTtcbiAgICAgICAgICAgIH0sIDApO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
461
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVhbnRpdHktc2VsZWN0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpYi9xdWFudGl0eS1zZWxlY3Rvci9xdWFudGl0eS1zZWxlY3Rvci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFJVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixTQUFTLEVBQ1QsVUFBVSxFQUNWLGlCQUFpQixFQUNqQix1QkFBdUIsRUFDdkIsU0FBUyxHQUVaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDSCxPQUFPLEVBQ1AsS0FBSyxFQUNMLEtBQUssRUFDTCxPQUFPLEVBQ1AsVUFBVSxHQUNiLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUdILHVCQUF1QixFQUV2Qiw0QkFBNEIsRUFHNUIsd0JBQXdCLEVBQ3hCLG1CQUFtQixHQUN0QixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxlQUFlLEVBQWEsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNELE9BQU8sRUFBZ0Isb0JBQW9CLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUE0QnZELE1BQU0sT0FBTyw0QkFBNEI7SUF1S3JDLFlBQ1ksRUFBcUIsRUFDckIsb0JBQTZDLEVBQzdDLFFBQW1CLEVBQ25CLE9BQW1CLEVBQ25CLFNBQTJCLEVBQzNCLGdCQUFxQztRQUxyQyxPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUNyQix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXlCO1FBQzdDLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUNuQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENB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LFNBQVMsRUFBRSxVQUFVO3lCQUN4QixDQUFDLENBQ0w7d0JBQ0QsS0FBSyxDQUNELE1BQU0sRUFDTixLQUFLLENBQUM7NEJBQ0YsT0FBTyxFQUFFLENBQUM7NEJBQ1YsU0FBUyxFQUFFLFVBQVU7eUJBQ3hCLENBQUMsQ0FDTDt3QkFDRCxVQUFVLENBQUMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO3dCQUNyRCxVQUFVLENBQUMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztxQkFDdkQsQ0FBQztpQkFDTDs7YUFDSjs7O1lBckRHLGlCQUFpQjtZQWdCakIsdUJBQXVCO1lBZHZCLFNBQVM7WUFIVCxVQUFVO1lBMkJMLGdCQUFnQjtZQUpyQixtQkFBbUI7OztrQkF1Q2xCLEtBQUs7b0JBR0wsS0FBSzs2QkFpQkwsS0FBSztvQkFnQkwsS0FBSzttQkFDTCxLQUFLO3dCQUNMLEtBQUs7dUJBQ0wsS0FBSzt1QkFDTCxLQUFLO3dCQUdMLEtBQUs7eUJBU0wsS0FBSztzQkFDTCxLQUFLOzJCQUNMLEtBQUs7OEJBQ0wsS0FBSzsrQkFHTCxLQUFLO3NCQXVDTCxLQUFLO21CQXFCTCxLQUFLO3dCQUNMLEtBQUs7MEJBQ0wsS0FBSzt5QkFDTCxLQUFLO3VCQUNMLEtBQUs7d0JBR0wsS0FBSzswQkFLTCxNQUFNOzJCQUdOLE1BQU07cUJBR04sU0FBUyxTQUFDLFFBQVE7c0JBQ2xCLFNBQVMsU0FBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgT25Jbml0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBWaWV3Q2hpbGQsXG4gICAgRWxlbWVudFJlZixcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBSZW5kZXJlcjIsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICAgIHRyaWdnZXIsXG4gICAgc3RhdGUsXG4gICAgc3R5bGUsXG4gICAgYW5pbWF0ZSxcbiAgICB0cmFuc2l0aW9uLFxufSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7XG4gICAgUGVwTGF5b3V0VHlwZSxcbiAgICBQZXBTdHlsZVR5cGUsXG4gICAgUGVwQ3VzdG9taXphdGlvblNlcnZpY2UsXG4gICAgUGVwSG9yaXpvbnRhbEFsaWdubWVudCxcbiAgICBERUZBVUxUX0hPUklaT05UQUxfQUxJR05NRU5ULFxuICAgIElQZXBGaWVsZENsaWNrRXZlbnQsXG4gICAgUGVwUXVhbnRpdHlTZWxlY3RvckZpZWxkVHlwZSxcbiAgICBQZXBRdWFudGl0eVNlbGVjdG9yRmllbGQsXG4gICAgUGVwVXRpbGl0aWVzU2VydmljZSxcbn0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWInO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmcm9tRXZlbnQsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwZXAtcXVhbnRpdHktc2VsZWN0b3InLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9xdWFudGl0eS1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vcXVhbnRpdHktc2VsZWN0b3IuY29tcG9uZW50LnNjc3MnLCAnLi9xdWFudGl0eS1zZWxlY3Rvci5jb21wb25lbnQudGhlbWUuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGFuaW1hdGlvbnM6IFtcbiAgICAgICAgdHJpZ2dlcignc2hvd0hpZGUnLCBbXG4gICAgICAgICAgICBzdGF0ZShcbiAgICAgICAgICAgICAgICAnc2hvdycsXG4gICAgICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLFxuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICdzY2FsZSgxKScsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBzdGF0ZShcbiAgICAgICAgICAgICAgICAnaGlkZScsXG4gICAgICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLFxuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICdzY2FsZSgwKScsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCdzaG93ID0+IGhpZGUnLCBhbmltYXRlKCcyNTBtcyBlYXNlLW91dCcpKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJ2hpZGUgPT4gc2hvdycsIGFuaW1hdGUoJzI1MG1zIGVhc2UtaW4nKSksXG4gICAgICAgIF0pLFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFBlcFF1YW50aXR5U2VsZWN0b3JDb21wb25lbnRcbiAgICBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAgIHB1YmxpYyBzdGF0aWMgRU5URVJfQ0hJTERSRU4gPSAnW0VudGVyQ2hpbGRyZW5dJztcbiAgICBwdWJsaWMgc3RhdGljIEVOVEVSX1BBQ0tBR0UgPSAnW0VudGVyUGFja2FnZV0nO1xuICAgIHB1YmxpYyBzdGF0aWMgUExVUyA9ICdbK10nO1xuICAgIHB1YmxpYyBzdGF0aWMgTUlOVVMgPSAnWy1dJztcblxuICAgIEBJbnB1dCgpIGtleSA9ICcnO1xuXG4gICAgcHJpdmF0ZSBfdmFsdWUgPSBudWxsO1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgdmFsdWUgPSAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG5cbiAgICAgICAgaWYgKHRoaXMuX2NhbGN1bGF0ZUZvcm1hdHRlZFZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnNldEZvcm1hdHRlZFZhbHVlKHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgdmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2Zvcm1hdHRlZFZhbHVlID0gbnVsbDtcbiAgICBASW5wdXQoKVxuICAgIHNldCBmb3JtYXR0ZWRWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgIHZhbHVlID0gJyc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5fY2FsY3VsYXRlRm9ybWF0dGVkVmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX2NhbGN1bGF0ZUZvcm1hdHRlZFZhbHVlID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNldEZvcm1hdHRlZFZhbHVlKHZhbHVlKTtcbiAgICB9XG4gICAgZ2V0IGZvcm1hdHRlZFZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9mb3JtYXR0ZWRWYWx1ZTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBsYWJlbCA9ICcnO1xuICAgIEBJbnB1dCgpIHR5cGU6IFBlcFF1YW50aXR5U2VsZWN0b3JGaWVsZFR5cGUgPSAncXMnO1xuICAgIEBJbnB1dCgpIG1hbmRhdG9yeSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gICAgQElucHV0KCkgcmVhZG9ubHkgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgX3RleHRDb2xvciA9ICcnO1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRleHRDb2xvcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX3RleHRDb2xvciA9IHZhbHVlO1xuICAgICAgICB0aGlzLmlzQ2F1dGlvbiA9IHZhbHVlID09PSAnI0ZGMDAwMCc7XG4gICAgfVxuICAgIGdldCB0ZXh0Q29sb3IoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RleHRDb2xvcjtcbiAgICB9XG5cbiAgICBASW5wdXQoKSB4QWxpZ25tZW50OiBQZXBIb3Jpem9udGFsQWxpZ25tZW50ID0gREVGQVVMVF9IT1JJWk9OVEFMX0FMSUdOTUVOVDtcbiAgICBASW5wdXQoKSByb3dTcGFuID0gMTtcbiAgICBASW5wdXQoKSBhbGxvd0RlY2ltYWwgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBhZGRpdGlvbmFsVmFsdWUgPSAnJztcblxuICAgIHByaXZhdGUgX25vdGlmaWNhdGlvbkluZm86IGFueTtcbiAgICBASW5wdXQoKVxuICAgIHNldCBub3RpZmljYXRpb25JbmZvKHZhbHVlOiBhbnkpIHtcbiAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9uSW5mbyA9IHZhbHVlO1xuXG4gICAgICAgIGNvbnN0IG1lc3NhZ2VzID0gdmFsdWUgJiYgdmFsdWUgPiAwID8gSlNPTi5wYXJzZSh2YWx1ZSkuTWVzc2FnZXMgOiAnJztcbiAgICAgICAgaWYgKG1lc3NhZ2VzICYmIG1lc3NhZ2VzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIC8vIFJlcGxhY2UgdGhlIG1zZyBrZXlzLlxuICAgICAgICAgICAgZm9yIChjb25zdCBtc2cgb2YgbWVzc2FnZXMpIHtcbiAgICAgICAgICAgICAgICBpZiAobXNnLktleSA9PT0gJ0ludmVudG9yeV9MaW1pdF9Nc2cnKSB7XG4gICAgICAgICAgICAgICAgICAgIG1zZy5LZXkgPSAnTUVTU0FHRVMuRVJST1JfSU5WRU5UT1JZX0xJTUlUJztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1zZy5LZXkgPT09ICdDYXNlX1F1YW50aXR5X0xpbWl0X01zZycpIHtcbiAgICAgICAgICAgICAgICAgICAgbXNnLktleSA9ICdNRVNTQUdFUy5FUlJPUl9DQVNFX1FVQU5USVRZX0xJTUlUJztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1zZy5LZXkgPT09ICdNaW5fUXVhbnRpdHlfTGltaXRfTXNnJykge1xuICAgICAgICAgICAgICAgICAgICBtc2cuS2V5ID0gJ01FU1NBR0VTLkVSUk9SX01JTl9RVUFOVElUWV9MSU1JVCc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChtc2cuS2V5ID09PSAnTWF4X1F1YW50aXR5X0xpbWl0X01zZycpIHtcbiAgICAgICAgICAgICAgICAgICAgbXNnLktleSA9ICdNRVNTQUdFUy5FUlJPUl9NQVhfUVVBTlRJVFlfTElNSVQnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5tZXNzYWdlcyA9IG1lc3NhZ2VzO1xuXG4gICAgICAgICAgICBjb25zdCBmaWVsZENvbnRyb2wgPSB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5rZXldO1xuICAgICAgICAgICAgZmllbGRDb250cm9sLnNldEVycm9ycyh7XG4gICAgICAgICAgICAgICAgc2VydmVyRXJyb3I6ICdFcnJvcicsXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy5zYW1lRWxlbWVudEluVGhlV2FudGVkUm93ID0gbnVsbDtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLlFTSW5wdXQgJiYgdGhpcy5RU0lucHV0Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5RU0lucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCAxNTApO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldCBub3RpZmljYXRpb25JbmZvKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ub3RpZmljYXRpb25JbmZvO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3Zpc2libGUgPSB0cnVlO1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHZpc2libGUodmlzaWJsZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl92aXNpYmxlID0gdmlzaWJsZTtcbiAgICAgICAgaWYgKHZpc2libGUpIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MoXG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgJ2hpZGRlbi1lbGVtZW50J1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoXG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgJ2hpZGRlbi1lbGVtZW50J1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgdmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Zpc2libGU7XG4gICAgfVxuXG4gICAgY29udHJvbFR5cGUgPSAncXMnO1xuXG4gICAgQElucHV0KCkgZm9ybTogRm9ybUdyb3VwID0gbnVsbDtcbiAgICBASW5wdXQoKSBzaG93VGl0bGUgPSB0cnVlO1xuICAgIEBJbnB1dCgpIHJlbmRlclRpdGxlID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBsYXlvdXRUeXBlOiBQZXBMYXlvdXRUeXBlID0gJ2Zvcm0nO1xuICAgIEBJbnB1dCgpIGlzQWN0aXZlID0gZmFsc2U7XG5cbiAgICAvLyBHZXQgZGVmYXVsdCBzdHlsZSBmcm9tIHRoZW1lLlxuICAgIEBJbnB1dCgpXG4gICAgc3R5bGVUeXBlOiBQZXBTdHlsZVR5cGUgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShcbiAgICAgICAgUGVwQ3VzdG9taXphdGlvblNlcnZpY2UuU1RZTEVfUVNfS0VZXG4gICAgKSBhcyBQZXBTdHlsZVR5cGU7IC8vJ3N0cm9uZyc7XG5cbiAgICBAT3V0cHV0KClcbiAgICB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIGVsZW1lbnRDbGljazogRXZlbnRFbWl0dGVyPElQZXBGaWVsZENsaWNrRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxJUGVwRmllbGRDbGlja0V2ZW50PigpO1xuXG4gICAgQFZpZXdDaGlsZCgnUVNDb250JykgUVNDb250OiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoJ1FTSW5wdXQnKSBRU0lucHV0OiBFbGVtZW50UmVmO1xuXG4gICAgcHJpdmF0ZSBfY2FsY3VsYXRlRm9ybWF0dGVkVmFsdWUgPSB0cnVlO1xuICAgIGdldCBjYWxjdWxhdGVGb3JtYXR0ZWRWYWx1ZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NhbGN1bGF0ZUZvcm1hdHRlZFZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3llZDogU3ViamVjdDx2b2lkPjtcbiAgICBwcml2YXRlIHFzV2lkdGhTdWJqZWN0OiBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPjtcbiAgICBsYXN0UXNDb250Q2xpZW50V2lkdGggPSAwO1xuICAgIHNob3dRc0J0biA9IHRydWU7XG5cbiAgICBzdGFuZEFsb25lID0gZmFsc2U7XG4gICAgaXNJbkZvY3VzID0gZmFsc2U7XG4gICAgaXNNYXRyaXhGb2N1cyA9IGZhbHNlO1xuXG4gICAgaXNDYXV0aW9uID0gZmFsc2U7XG4gICAgbWVzc2FnZXM6IEFycmF5PGFueT4gPSBudWxsO1xuXG4gICAgc2FtZUVsZW1lbnRJblRoZVdhbnRlZFJvdyA9IG51bGw7XG5cbiAgICBpc0VtcHR5S2V5ID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgY3VzdG9taXphdGlvblNlcnZpY2U6IFBlcEN1c3RvbWl6YXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgdXRpbGl0aWVzU2VydmljZTogUGVwVXRpbGl0aWVzU2VydmljZVxuICAgICkge1xuICAgICAgICB0aGlzLl9kZXN0cm95ZWQgPSBuZXcgU3ViamVjdCgpO1xuICAgICAgICB0aGlzLnFzV2lkdGhTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdCgwKTtcbiAgICB9XG5cbiAgICBzZXRGb3JtKCkge1xuICAgICAgICBjb25zdCBwZXBGaWVsZCA9IG5ldyBQZXBRdWFudGl0eVNlbGVjdG9yRmllbGQoe1xuICAgICAgICAgICAga2V5OiB0aGlzLmtleSxcbiAgICAgICAgICAgIHZhbHVlOiB0aGlzLnZhbHVlLFxuICAgICAgICAgICAgbWFuZGF0b3J5OiB0aGlzLm1hbmRhdG9yeSxcbiAgICAgICAgICAgIHJlYWRvbmx5OiB0aGlzLnJlYWRvbmx5LFxuICAgICAgICAgICAgZGlzYWJsZWQ6IHRoaXMuZGlzYWJsZWQsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmZvcm0gPSB0aGlzLmN1c3RvbWl6YXRpb25TZXJ2aWNlLmdldERlZmF1bHRGcm9tR3JvdXAocGVwRmllbGQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0Rm9ybWF0dGVkVmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAodGhpcy5fY2FsY3VsYXRlRm9ybWF0dGVkVmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX2Zvcm1hdHRlZFZhbHVlID0gdGhpcy51dGlsaXRpZXNTZXJ2aWNlLmZvcm1hdE51bWJlcih2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9mb3JtYXR0ZWRWYWx1ZSA9IHZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy51cGRhdGVGb3JtRmllbGRWYWx1ZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlRm9ybUZpZWxkVmFsdWUoKSB7XG4gICAgICAgIHRoaXMuY3VzdG9taXphdGlvblNlcnZpY2UudXBkYXRlRm9ybUZpZWxkVmFsdWUoXG4gICAgICAgICAgICB0aGlzLmZvcm0sXG4gICAgICAgICAgICB0aGlzLmtleSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0dGVkVmFsdWVcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgZGlzcGxheVZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHJlcyA9IHRoaXMuaXNJbkZvY3VzXG4gICAgICAgICAgICA/IHBhcnNlRmxvYXQodGhpcy52YWx1ZSkudG9TdHJpbmcoKVxuICAgICAgICAgICAgOiB0aGlzLmZvcm1hdHRlZFZhbHVlO1xuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXREZXN0cm95ZXIoKSB7XG4gICAgICAgIHJldHVybiB0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKHRoaXMua2V5ID09PSAnJykge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNFbXB0eUtleSA9IHRydWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuc3RhbmRBbG9uZSA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnNldEZvcm0oKTtcblxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICBQZXBDdXN0b21pemF0aW9uU2VydmljZS5TVEFORF9BTE9ORV9GSUVMRF9DTEFTU19OQU1FXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBpZiAoIXRoaXMucmVuZGVyVGl0bGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgUGVwQ3VzdG9taXphdGlvblNlcnZpY2UuU1RBTkRfQUxPTkVfRklFTERfTk9fU1BBQ0lOR19DTEFTU19OQU1FXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucXNXaWR0aFN1YmplY3RcbiAgICAgICAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgICAgICAgLnBpcGUodGhpcy5nZXREZXN0cm95ZXIoKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHFzV2lkdGg6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0dXBRc0J1dHRvbnMocXNXaWR0aCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnVwZGF0ZUZvcm1GaWVsZFZhbHVlKCk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICAvL1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRRc1ZpZXcoKTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgLy8gQnVnIGZpeCBmb3IgYWRkb25zIHdoZW4gdGhlIGtleSBpcyAnJyBpbiB0aGUgbmdPbkluaXQgZm9yIHNvbWUgcmVzb25cbiAgICAgICAgaWYgKHRoaXMuaXNFbXB0eUtleSAmJiB0aGlzLmtleSAhPT0gJycpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0Rm9ybSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzVG9UaGVTYW1lRWxlbWVudEluVGhlV2FudGVkUm93KCk7XG4gICAgICAgIH0sIDE1MCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2Rlc3Ryb3llZC5uZXh0KCk7XG4gICAgICAgIHRoaXMuX2Rlc3Ryb3llZC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIGdldCBnZXRBZGRpdGlvbmFsVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRkaXRpb25hbFZhbHVlLmxlbmd0aCA+IDAgPyAnc2hvdycgOiAnaGlkZSc7XG4gICAgfVxuXG4gICAgZ2V0UGFyZW50QnlDbGFzcyhlbCwgcGFyZW50U2VsZWN0b3IgLyogb3B0aW9uYWwgKi8pOiBhbnkge1xuICAgICAgICAvLyBJZiBubyBwYXJlbnRTZWxlY3RvciBkZWZpbmVkIHdpbGwgYnViYmxlIHVwIGFsbCB0aGUgd2F5IHRvICpkb2N1bWVudCpcbiAgICAgICAgaWYgKHBhcmVudFNlbGVjdG9yID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHBhcmVudFNlbGVjdG9yID0gZG9jdW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgcCA9IGVsLnBhcmVudE5vZGU7XG5cbiAgICAgICAgd2hpbGUgKFxuICAgICAgICAgICAgcCAmJlxuICAgICAgICAgICAgIXA/LmNsYXNzTGlzdD8uY29udGFpbnMocGFyZW50U2VsZWN0b3IpICYmXG4gICAgICAgICAgICBwYXJlbnRTZWxlY3RvciAhPT0gZG9jdW1lbnRcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBvID0gcDtcbiAgICAgICAgICAgIHAgPSBvPy5wYXJlbnROb2RlIHx8IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcD8uY2xhc3NOYW1lLmluZGV4T2YocGFyZW50U2VsZWN0b3IpID4gLTEgPyBwIDogbnVsbDtcbiAgICB9XG5cbiAgICBnZXRTYW1lRWxlbWVudEluVGhlV2FudGVkUm93QnlDbGFzc05hbWUoZXZlbnQ6IGFueSwgaXNOZXh0ID0gdHJ1ZSk6IGFueSB7XG4gICAgICAgIGNvbnN0IGV2ZW50VGFyZ2V0ID0gZXZlbnQudGFyZ2V0IHx8IGV2ZW50LnNyY0VsZW1lbnQ7XG4gICAgICAgIGxldCBzYW1lRWxlbWVudEluVGhlV2FudGVkUm93QnlDbGFzc05hbWU7XG5cbiAgICAgICAgbGV0IHBhcmVudFNlbGVjdG9yO1xuICAgICAgICBpZiAodGhpcy5sYXlvdXRUeXBlID09PSAndGFibGUnKSB7XG4gICAgICAgICAgICBwYXJlbnRTZWxlY3RvciA9IHRoaXMuZ2V0UGFyZW50QnlDbGFzcyhldmVudFRhcmdldCwgJ3RhYmxlLXJvdycpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMubGF5b3V0VHlwZSA9PT0gJ2NhcmQnKSB7XG4gICAgICAgICAgICBwYXJlbnRTZWxlY3RvciA9IHRoaXMuZ2V0UGFyZW50QnlDbGFzcyhldmVudFRhcmdldCwgJ2NhcmQtdmlldycpO1xuICAgICAgICAgICAgaWYgKCFwYXJlbnRTZWxlY3Rvcikge1xuICAgICAgICAgICAgICAgIHBhcmVudFNlbGVjdG9yID0gdGhpcy5nZXRQYXJlbnRCeUNsYXNzKFxuICAgICAgICAgICAgICAgICAgICBldmVudFRhcmdldCxcbiAgICAgICAgICAgICAgICAgICAgJ2xpbmUtdmlldydcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgcGFyZW50U2VsZWN0b3IubmV4dEVsZW1lbnRTaWJsaW5nID09PSBudWxsICYmXG4gICAgICAgICAgICBwYXJlbnRTZWxlY3Rvci5wcmV2aW91c0VsZW1lbnRTaWJsaW5nID09PSBudWxsXG4gICAgICAgICkge1xuICAgICAgICAgICAgc2FtZUVsZW1lbnRJblRoZVdhbnRlZFJvd0J5Q2xhc3NOYW1lID0gbnVsbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChpc05leHQpIHtcbiAgICAgICAgICAgICAgICBpZiAocGFyZW50U2VsZWN0b3IubmV4dEVsZW1lbnRTaWJsaW5nID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHNhbWVFbGVtZW50SW5UaGVXYW50ZWRSb3dCeUNsYXNzTmFtZSA9IHBhcmVudFNlbGVjdG9yLnBhcmVudEVsZW1lbnQucXVlcnlTZWxlY3RvckFsbChcbiAgICAgICAgICAgICAgICAgICAgICAgICdbbmFtZT0nICsgdGhpcy5rZXkgKyAnXSdcbiAgICAgICAgICAgICAgICAgICAgKVswXTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzYW1lRWxlbWVudEluVGhlV2FudGVkUm93QnlDbGFzc05hbWUgPSBwYXJlbnRTZWxlY3Rvci5uZXh0RWxlbWVudFNpYmxpbmcucXVlcnlTZWxlY3RvckFsbChcbiAgICAgICAgICAgICAgICAgICAgICAgICdbbmFtZT0nICsgdGhpcy5rZXkgKyAnXSdcbiAgICAgICAgICAgICAgICAgICAgKVswXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChwYXJlbnRTZWxlY3Rvci5wcmV2aW91c0VsZW1lbnRTaWJsaW5nID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRzTGlzdCA9IHBhcmVudFNlbGVjdG9yLnBhcmVudEVsZW1lbnQucXVlcnlTZWxlY3RvckFsbChcbiAgICAgICAgICAgICAgICAgICAgICAgICdbbmFtZT0nICsgdGhpcy5rZXkgKyAnXSdcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgc2FtZUVsZW1lbnRJblRoZVdhbnRlZFJvd0J5Q2xhc3NOYW1lID1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzTGlzdFtlbGVtZW50c0xpc3QubGVuZ3RoIC0gMV07XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc2FtZUVsZW1lbnRJblRoZVdhbnRlZFJvd0J5Q2xhc3NOYW1lID0gcGFyZW50U2VsZWN0b3IucHJldmlvdXNFbGVtZW50U2libGluZy5xdWVyeVNlbGVjdG9yQWxsKFxuICAgICAgICAgICAgICAgICAgICAgICAgJ1tuYW1lPScgKyB0aGlzLmtleSArICddJ1xuICAgICAgICAgICAgICAgICAgICApWzBdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzYW1lRWxlbWVudEluVGhlV2FudGVkUm93QnlDbGFzc05hbWU7XG4gICAgfVxuXG4gICAgc2V0U2FtZUVsZW1lbnRJblRoZVdhbnRlZFJvdyhldmVudDogYW55LCBpc05leHQgPSB0cnVlKTogdm9pZCB7XG4gICAgICAgIC8vIE5hdmlnYXRlIHRvIHRoZSBRUyBpbiB0aGUgbmV4dCByb3cuXG4gICAgICAgIGlmICh0aGlzLmxheW91dFR5cGUgPT09ICdjYXJkJyB8fCB0aGlzLmxheW91dFR5cGUgPT09ICd0YWJsZScpIHtcbiAgICAgICAgICAgIHRoaXMuc2FtZUVsZW1lbnRJblRoZVdhbnRlZFJvdyA9IHRoaXMuZ2V0U2FtZUVsZW1lbnRJblRoZVdhbnRlZFJvd0J5Q2xhc3NOYW1lKFxuICAgICAgICAgICAgICAgIGV2ZW50LFxuICAgICAgICAgICAgICAgIGlzTmV4dFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuUVNJbnB1dC5uYXRpdmVFbGVtZW50LmJsdXIoKTtcbiAgICB9XG5cbiAgICBmb2N1c1RvVGhlU2FtZUVsZW1lbnRJblRoZVdhbnRlZFJvdygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc2FtZUVsZW1lbnRJblRoZVdhbnRlZFJvdykge1xuICAgICAgICAgICAgY29uc3QgZWxlbSA9IHRoaXMuc2FtZUVsZW1lbnRJblRoZVdhbnRlZFJvdztcbiAgICAgICAgICAgIC8vIElmIHRoaXMgaXMgcmVndWxhciBpdGVtIChxcyBhbmQgbm90IGJ1dHRvbikgLlxuICAgICAgICAgICAgaWYgKGVsZW0gaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50ICYmIGVsZW0udHlwZSA9PT0gJ3RleHQnKSB7XG4gICAgICAgICAgICAgICAgZWxlbS5jbGljaygpO1xuICAgICAgICAgICAgICAgIGVsZW0uc2VsZWN0KCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudEVsZW0gPSBlbGVtLnBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgcGFyZW50RWxlbS5jbGljaygpO1xuICAgICAgICAgICAgICAgIGVsZW0uZm9jdXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc2FtZUVsZW1lbnRJblRoZVdhbnRlZFJvdyA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjbGVhbkVycm9yKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBmaWVsZENvbnRyb2wgPSB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5rZXldO1xuXG4gICAgICAgIC8vIENsZWFuIHRoZSBlcnJvciBtZXNzYWdlXG4gICAgICAgIGlmICh0aGlzLm1lc3NhZ2VzICYmIHRoaXMubWVzc2FnZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5tZXNzYWdlcyA9IHRoaXMubm90aWZpY2F0aW9uSW5mbyA9IG51bGw7XG4gICAgICAgICAgICBmaWVsZENvbnRyb2wuc2V0RXJyb3JzKG51bGwpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25NYXRyaXhNb3VzZUVudGVyKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc01hdHJpeEZvY3VzID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBvbk1hdHJpeE1vdXNlbGVhdmUoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzTWF0cml4Rm9jdXMgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBvbk1hdHJpeENsaWNrKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0luRm9jdXMgPSB0cnVlO1xuXG4gICAgICAgIGlmICh0aGlzLlFTSW5wdXQgJiYgdGhpcy5RU0lucHV0Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuUVNJbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbk1hdHJpeEJsdXIoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICAhZXZlbnQucmVsYXRlZFRhcmdldCB8fFxuICAgICAgICAgICAgZXZlbnQucmVsYXRlZFRhcmdldC5jbGFzc05hbWUuaW5kZXhPZigncXMnKSA8IDBcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLmlzTWF0cml4Rm9jdXMgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMub25CbHVyKGV2ZW50KTtcbiAgICB9XG5cbiAgICBvbkZvY3VzKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0luRm9jdXMgPSB0cnVlO1xuICAgIH1cblxuICAgIGlzRGlmZmVyZW50VmFsdWUodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBsZXQgcmVzID0gZmFsc2U7XG5cbiAgICAgICAgY29uc3QgY3VycmVudFZhbHVlID0gdGhpcy51dGlsaXRpZXNTZXJ2aWNlLmNvZXJjZU51bWJlclByb3BlcnR5KFxuICAgICAgICAgICAgdGhpcy52YWx1ZVxuICAgICAgICApO1xuICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IHRoaXMudXRpbGl0aWVzU2VydmljZS5jb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSk7XG5cbiAgICAgICAgcmVzID0gY3VycmVudFZhbHVlICE9PSBuZXdWYWx1ZTtcblxuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cblxuICAgIG9uQmx1cihldmVudDogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNJbkZvY3VzID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY2xlYW5FcnJvcigpO1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGV2ZW50LnRhcmdldCA/IGV2ZW50LnRhcmdldC52YWx1ZSA6IGV2ZW50O1xuXG4gICAgICAgIGlmICh2YWx1ZSAhPT0gdGhpcy52YWx1ZSAmJiB0aGlzLmlzRGlmZmVyZW50VmFsdWUodmFsdWUpKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG5cbiAgICAgICAgICAgIC8vIElmIHRoZSB1c2VyIGlzIHNldHRpbmcgdGhlIGZvcm1hdHRlZCB2YWx1ZSB0aGVuIHNldCB0aGUgdmFsdWUgdGlsbCB0aGUgdXNlciBmb3JtYXQgaXQgYW5kIHJldHVybiBpdCBiYWNrLlxuICAgICAgICAgICAgaWYgKCF0aGlzLl9jYWxjdWxhdGVGb3JtYXR0ZWRWYWx1ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2Zvcm1hdHRlZFZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNUb1RoZVNhbWVFbGVtZW50SW5UaGVXYW50ZWRSb3coKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uS2V5ZG93bihldmVudCk6IGFueSB7XG4gICAgICAgIGNvbnN0IGtleWJvYXJkRXZlbnQgPSBldmVudCBhcyBLZXlib2FyZEV2ZW50O1xuXG4gICAgICAgIGlmIChrZXlib2FyZEV2ZW50LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgICAgdGhpcy5zZXRTYW1lRWxlbWVudEluVGhlV2FudGVkUm93KFxuICAgICAgICAgICAgICAgIGtleWJvYXJkRXZlbnQsXG4gICAgICAgICAgICAgICAgIWtleWJvYXJkRXZlbnQuc2hpZnRLZXlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGluY3JlbWVudChldmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zdGFuZEFsb25lKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy51dGlsaXRpZXNTZXJ2aWNlLmluY3JlbWVudE51bWJlcih0aGlzLnZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZWxlbWVudENsaWNrLmVtaXQoe1xuICAgICAgICAgICAga2V5OiB0aGlzLmtleSxcbiAgICAgICAgICAgIHZhbHVlOiBQZXBRdWFudGl0eVNlbGVjdG9yQ29tcG9uZW50LlBMVVMsXG4gICAgICAgICAgICBjb250cm9sVHlwZTogdGhpcy5jb250cm9sVHlwZSxcbiAgICAgICAgICAgIGV2ZW50V2hpY2g6IGV2ZW50LndoaWNoLFxuICAgICAgICB9KTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuXG4gICAgZGVjcmVtZW50KGV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnN0YW5kQWxvbmUpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLnV0aWxpdGllc1NlcnZpY2UuZGVjcmVtZW50TnVtYmVyKHRoaXMudmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5lbGVtZW50Q2xpY2suZW1pdCh7XG4gICAgICAgICAgICBrZXk6IHRoaXMua2V5LFxuICAgICAgICAgICAgdmFsdWU6IFBlcFF1YW50aXR5U2VsZWN0b3JDb21wb25lbnQuTUlOVVMsXG4gICAgICAgICAgICBjb250cm9sVHlwZTogdGhpcy5jb250cm9sVHlwZSxcbiAgICAgICAgICAgIGV2ZW50V2hpY2g6IGV2ZW50LndoaWNoLFxuICAgICAgICB9KTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuXG4gICAgZW50ZXJDaGlsZHJlbihldmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVsZW1lbnRDbGljay5lbWl0KHtcbiAgICAgICAgICAgIGtleTogdGhpcy5rZXksXG4gICAgICAgICAgICB2YWx1ZTogUGVwUXVhbnRpdHlTZWxlY3RvckNvbXBvbmVudC5FTlRFUl9DSElMRFJFTixcbiAgICAgICAgICAgIGNvbnRyb2xUeXBlOiB0aGlzLmNvbnRyb2xUeXBlLFxuICAgICAgICAgICAgZXZlbnRXaGljaDogZXZlbnQud2hpY2gsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGVudGVyUGFja2FnZShldmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVsZW1lbnRDbGljay5lbWl0KHtcbiAgICAgICAgICAgIGtleTogdGhpcy5rZXksXG4gICAgICAgICAgICB2YWx1ZTogUGVwUXVhbnRpdHlTZWxlY3RvckNvbXBvbmVudC5FTlRFUl9QQUNLQUdFLFxuICAgICAgICAgICAgY29udHJvbFR5cGU6IHRoaXMuY29udHJvbFR5cGUsXG4gICAgICAgICAgICBldmVudFdoaWNoOiBldmVudC53aGljaCxcbiAgICAgICAgICAgIG90aGVyRGF0YTogdGhpcy5ub3RpZmljYXRpb25JbmZvLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzZXR1cFFzQnV0dG9ucyhxc1dpZHRoOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zaG93UXNCdG4gPSBxc1dpZHRoID4gMTIwO1xuXG4gICAgICAgIGlmICghdGhpcy5jZFsnZGVzdHJveWVkJ10pIHtcbiAgICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2V0UXNWaWV3KCk6IHZvaWQge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLlFTQ29udCAmJlxuICAgICAgICAgICAgdGhpcy5RU0NvbnQubmF0aXZlRWxlbWVudCAmJlxuICAgICAgICAgICAgdGhpcy5RU0NvbnQubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aCA+IDBcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnFzV2lkdGhTdWJqZWN0Lm5leHQodGhpcy5RU0NvbnQubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aCk7XG4gICAgICAgICAgICB9LCAwKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==