@vendure/admin-ui 1.3.4 → 1.4.2

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 (252) hide show
  1. package/bundles/vendure-admin-ui-catalog.umd.js +87 -162
  2. package/bundles/vendure-admin-ui-catalog.umd.js.map +1 -1
  3. package/bundles/vendure-admin-ui-core.umd.js +2022 -404
  4. package/bundles/vendure-admin-ui-core.umd.js.map +1 -1
  5. package/bundles/vendure-admin-ui-customer.umd.js +79 -57
  6. package/bundles/vendure-admin-ui-customer.umd.js.map +1 -1
  7. package/bundles/vendure-admin-ui-marketing.umd.js +11 -1
  8. package/bundles/vendure-admin-ui-marketing.umd.js.map +1 -1
  9. package/bundles/vendure-admin-ui-order.umd.js +10 -2
  10. package/bundles/vendure-admin-ui-order.umd.js.map +1 -1
  11. package/bundles/vendure-admin-ui-settings.umd.js +156 -153
  12. package/bundles/vendure-admin-ui-settings.umd.js.map +1 -1
  13. package/catalog/components/collection-detail/collection-detail.component.d.ts +0 -1
  14. package/catalog/components/collection-list/collection-list.component.d.ts +3 -0
  15. package/catalog/components/facet-detail/facet-detail.component.d.ts +0 -1
  16. package/catalog/components/facet-list/facet-list.component.d.ts +3 -5
  17. package/catalog/components/product-detail/product-detail.component.d.ts +0 -1
  18. package/catalog/vendure-admin-ui-catalog.metadata.json +1 -1
  19. package/core/app.component.d.ts +1 -0
  20. package/core/common/base-detail.component.d.ts +42 -1
  21. package/core/common/base-entity-resolver.d.ts +28 -1
  22. package/core/common/base-list.component.d.ts +75 -1
  23. package/core/common/component-registry-types.d.ts +46 -0
  24. package/core/common/generated-types.d.ts +282 -23
  25. package/core/common/utilities/get-default-ui-language.d.ts +1 -0
  26. package/core/common/version.d.ts +1 -1
  27. package/core/components/app-shell/app-shell.component.d.ts +1 -1
  28. package/core/components/ui-language-switcher-dialog/ui-language-switcher-dialog.component.d.ts +17 -4
  29. package/core/components/user-menu/user-menu.component.d.ts +1 -1
  30. package/core/data/client-state/client-defaults.d.ts +1 -1
  31. package/core/data/definitions/client-definitions.d.ts +3 -1
  32. package/core/data/definitions/customer-definitions.d.ts +1 -0
  33. package/core/data/definitions/settings-definitions.d.ts +1 -0
  34. package/core/data/providers/client-data.service.d.ts +3 -1
  35. package/core/data/providers/data.service.d.ts +54 -12
  36. package/core/data/providers/settings-data.service.d.ts +3 -0
  37. package/core/data/query-result.d.ts +11 -2
  38. package/core/providers/custom-detail-component/custom-detail-component-types.d.ts +25 -0
  39. package/core/providers/custom-detail-component/custom-detail-component.service.d.ts +15 -0
  40. package/core/providers/custom-field-component/custom-field-component.service.d.ts +3 -3
  41. package/core/providers/local-storage/local-storage.service.d.ts +1 -0
  42. package/core/providers/modal/modal.service.d.ts +41 -12
  43. package/core/providers/nav-builder/nav-builder-types.d.ts +19 -1
  44. package/core/providers/nav-builder/nav-builder.service.d.ts +14 -10
  45. package/core/providers/notification/notification.service.d.ts +37 -0
  46. package/core/public_api.d.ts +8 -0
  47. package/core/shared/components/action-bar-items/action-bar-items.component.d.ts +2 -1
  48. package/core/shared/components/asset-picker-dialog/asset-picker-dialog.component.d.ts +18 -0
  49. package/core/shared/components/asset-preview/asset-preview.component.d.ts +0 -1
  50. package/core/shared/components/chip/chip.component.d.ts +20 -0
  51. package/core/shared/components/currency-input/currency-input.component.d.ts +11 -0
  52. package/core/shared/components/custom-detail-component-host/custom-detail-component-host.component.d.ts +17 -0
  53. package/core/shared/components/data-table/data-table.component.d.ts +59 -0
  54. package/core/shared/components/datetime-picker/datetime-picker.component.d.ts +17 -0
  55. package/core/shared/components/dropdown/dropdown.component.d.ts +25 -0
  56. package/core/shared/components/extension-host/extension-host.service.d.ts +3 -1
  57. package/core/shared/components/facet-value-selector/facet-value-selector.component.d.ts +22 -0
  58. package/core/shared/components/modal-dialog/modal-dialog.component.d.ts +1 -1
  59. package/core/shared/components/object-tree/object-tree.component.d.ts +8 -0
  60. package/core/shared/components/order-state-label/order-state-label.component.d.ts +10 -0
  61. package/core/shared/components/product-selector/product-selector.component.d.ts +12 -0
  62. package/core/shared/components/rich-text-editor/rich-text-editor.component.d.ts +12 -1
  63. package/core/shared/components/tabbed-custom-fields/tabbed-custom-fields.component.d.ts +21 -0
  64. package/core/shared/components/ui-extension-point/ui-extension-point.component.d.ts +15 -0
  65. package/core/shared/directives/if-multichannel.directive.d.ts +14 -0
  66. package/core/shared/directives/if-permissions.directive.d.ts +3 -0
  67. package/core/shared/dynamic-form-inputs/boolean-form-input/boolean-form-input.component.d.ts +7 -0
  68. package/core/shared/dynamic-form-inputs/code-editor-form-input/json-editor-form-input.component.d.ts +32 -0
  69. package/core/shared/dynamic-form-inputs/currency-form-input/currency-form-input.component.d.ts +7 -0
  70. package/core/shared/dynamic-form-inputs/customer-group-form-input/customer-group-form-input.component.d.ts +8 -0
  71. package/core/shared/dynamic-form-inputs/date-form-input/date-form-input.component.d.ts +10 -0
  72. package/core/shared/dynamic-form-inputs/facet-value-form-input/facet-value-form-input.component.d.ts +8 -0
  73. package/core/shared/dynamic-form-inputs/number-form-input/number-form-input.component.d.ts +12 -0
  74. package/core/shared/dynamic-form-inputs/password-form-input/password-form-input.component.d.ts +7 -0
  75. package/core/shared/dynamic-form-inputs/product-selector-form-input/product-selector-form-input.component.d.ts +8 -0
  76. package/core/shared/dynamic-form-inputs/register-dynamic-input-components.d.ts +40 -3
  77. package/core/shared/dynamic-form-inputs/relation-form-input/relation-form-input.component.d.ts +9 -0
  78. package/core/shared/dynamic-form-inputs/rich-text-form-input/rich-text-form-input.component.d.ts +16 -0
  79. package/core/shared/dynamic-form-inputs/select-form-input/select-form-input.component.d.ts +9 -0
  80. package/core/shared/dynamic-form-inputs/text-form-input/text-form-input.component.d.ts +12 -3
  81. package/core/shared/dynamic-form-inputs/textarea-form-input/textarea-form-input.component.d.ts +7 -0
  82. package/core/shared/pipes/asset-preview.pipe.d.ts +14 -0
  83. package/core/shared/pipes/duration.pipe.d.ts +8 -0
  84. package/core/shared/pipes/file-size.pipe.d.ts +8 -0
  85. package/core/shared/pipes/has-permission.pipe.d.ts +3 -1
  86. package/core/shared/pipes/locale-currency-name.pipe.d.ts +8 -0
  87. package/core/shared/pipes/locale-currency.pipe.d.ts +12 -0
  88. package/core/shared/pipes/locale-date.pipe.d.ts +7 -0
  89. package/core/shared/pipes/locale-language-name.pipe.d.ts +9 -1
  90. package/core/shared/pipes/locale-region-name.pipe.d.ts +18 -0
  91. package/core/shared/pipes/time-ago.pipe.d.ts +8 -0
  92. package/core/vendure-admin-ui-core.metadata.json +1 -1
  93. package/customer/components/customer-detail/customer-detail.component.d.ts +2 -3
  94. package/customer/components/customer-group-detail-dialog/customer-group-detail-dialog.component.d.ts +14 -3
  95. package/customer/vendure-admin-ui-customer.metadata.json +1 -1
  96. package/esm2015/catalog/catalog.module.js +29 -28
  97. package/esm2015/catalog/components/asset-detail/asset-detail.component.js +2 -10
  98. package/esm2015/catalog/components/collection-detail/collection-detail.component.js +3 -16
  99. package/esm2015/catalog/components/collection-list/collection-list.component.js +23 -5
  100. package/esm2015/catalog/components/facet-detail/facet-detail.component.js +3 -15
  101. package/esm2015/catalog/components/facet-list/facet-list.component.js +24 -9
  102. package/esm2015/catalog/components/product-assets/product-assets.component.js +2 -2
  103. package/esm2015/catalog/components/product-detail/product-detail.component.js +5 -27
  104. package/esm2015/catalog/components/product-variants-list/product-variants-list.component.js +3 -3
  105. package/esm2015/catalog/components/update-product-option-dialog/update-product-option-dialog.component.js +2 -2
  106. package/esm2015/catalog/components/variant-price-detail/variant-price-detail.component.js +2 -2
  107. package/esm2015/core/app.component.js +20 -2
  108. package/esm2015/core/common/base-detail.component.js +53 -1
  109. package/esm2015/core/common/base-entity-resolver.js +29 -2
  110. package/esm2015/core/common/base-list.component.js +76 -2
  111. package/esm2015/core/common/component-registry-types.js +1 -1
  112. package/esm2015/core/common/generated-types.js +1 -1
  113. package/esm2015/core/common/introspection-result.js +249 -183
  114. package/esm2015/core/common/utilities/get-default-ui-language.js +9 -1
  115. package/esm2015/core/common/version.js +2 -2
  116. package/esm2015/core/components/app-shell/app-shell.component.js +12 -7
  117. package/esm2015/core/components/main-nav/main-nav.component.js +2 -2
  118. package/esm2015/core/components/ui-language-switcher-dialog/ui-language-switcher-dialog.component.js +281 -5
  119. package/esm2015/core/components/user-menu/user-menu.component.js +3 -3
  120. package/esm2015/core/data/client-state/client-defaults.js +5 -2
  121. package/esm2015/core/data/client-state/client-resolvers.js +32 -33
  122. package/esm2015/core/data/definitions/client-definitions.js +18 -3
  123. package/esm2015/core/data/definitions/customer-definitions.js +21 -25
  124. package/esm2015/core/data/definitions/settings-definitions.js +50 -5
  125. package/esm2015/core/data/providers/client-data.service.js +15 -4
  126. package/esm2015/core/data/providers/data.service.js +44 -2
  127. package/esm2015/core/data/providers/settings-data.service.js +12 -4
  128. package/esm2015/core/data/query-result.js +14 -4
  129. package/esm2015/core/providers/custom-detail-component/custom-detail-component-types.js +2 -0
  130. package/esm2015/core/providers/custom-detail-component/custom-detail-component.service.js +44 -0
  131. package/esm2015/core/providers/custom-field-component/custom-field-component.service.js +6 -6
  132. package/esm2015/core/providers/local-storage/local-storage.service.js +1 -1
  133. package/esm2015/core/providers/modal/modal.service.js +20 -12
  134. package/esm2015/core/providers/nav-builder/nav-builder-types.js +1 -1
  135. package/esm2015/core/providers/nav-builder/nav-builder.service.js +15 -11
  136. package/esm2015/core/providers/notification/notification.service.js +24 -1
  137. package/esm2015/core/public_api.js +9 -1
  138. package/esm2015/core/shared/components/action-bar/action-bar.component.js +1 -1
  139. package/esm2015/core/shared/components/action-bar-items/action-bar-items.component.js +3 -3
  140. package/esm2015/core/shared/components/address-form/address-form.component.js +2 -2
  141. package/esm2015/core/shared/components/asset-picker-dialog/asset-picker-dialog.component.js +19 -1
  142. package/esm2015/core/shared/components/asset-preview/asset-preview.component.js +2 -6
  143. package/esm2015/core/shared/components/chip/chip.component.js +12 -1
  144. package/esm2015/core/shared/components/currency-input/currency-input.component.js +12 -1
  145. package/esm2015/core/shared/components/custom-detail-component-host/custom-detail-component-host.component.js +44 -0
  146. package/esm2015/core/shared/components/data-table/data-table.component.js +60 -1
  147. package/esm2015/core/shared/components/datetime-picker/datetime-picker.component.js +17 -1
  148. package/esm2015/core/shared/components/dropdown/dropdown.component.js +26 -1
  149. package/esm2015/core/shared/components/extension-host/extension-host.component.js +3 -3
  150. package/esm2015/core/shared/components/extension-host/extension-host.service.js +16 -2
  151. package/esm2015/core/shared/components/facet-value-selector/facet-value-selector.component.js +23 -1
  152. package/esm2015/core/shared/components/modal-dialog/modal-dialog.component.js +2 -2
  153. package/esm2015/core/shared/components/object-tree/object-tree.component.js +9 -1
  154. package/esm2015/core/shared/components/order-state-label/order-state-label.component.js +11 -1
  155. package/esm2015/core/shared/components/product-selector/product-selector.component.js +13 -1
  156. package/esm2015/core/shared/components/rich-text-editor/rich-text-editor.component.js +14 -3
  157. package/esm2015/core/shared/components/tabbed-custom-fields/tabbed-custom-fields.component.js +48 -0
  158. package/esm2015/core/shared/components/title-input/title-input.component.js +1 -1
  159. package/esm2015/core/shared/components/ui-extension-point/ui-extension-point.component.js +31 -0
  160. package/esm2015/core/shared/directives/if-multichannel.directive.js +15 -1
  161. package/esm2015/core/shared/directives/if-permissions.directive.js +4 -1
  162. package/esm2015/core/shared/dynamic-form-inputs/boolean-form-input/boolean-form-input.component.js +8 -1
  163. package/esm2015/core/shared/dynamic-form-inputs/code-editor-form-input/json-editor-form-input.component.js +125 -0
  164. package/esm2015/core/shared/dynamic-form-inputs/currency-form-input/currency-form-input.component.js +8 -1
  165. package/esm2015/core/shared/dynamic-form-inputs/customer-group-form-input/customer-group-form-input.component.js +9 -1
  166. package/esm2015/core/shared/dynamic-form-inputs/date-form-input/date-form-input.component.js +21 -2
  167. package/esm2015/core/shared/dynamic-form-inputs/dynamic-form-input/dynamic-form-input.component.js +4 -3
  168. package/esm2015/core/shared/dynamic-form-inputs/facet-value-form-input/facet-value-form-input.component.js +9 -1
  169. package/esm2015/core/shared/dynamic-form-inputs/number-form-input/number-form-input.component.js +29 -2
  170. package/esm2015/core/shared/dynamic-form-inputs/password-form-input/password-form-input.component.js +8 -1
  171. package/esm2015/core/shared/dynamic-form-inputs/product-selector-form-input/product-selector-form-input.component.js +9 -1
  172. package/esm2015/core/shared/dynamic-form-inputs/register-dynamic-input-components.js +42 -2
  173. package/esm2015/core/shared/dynamic-form-inputs/relation-form-input/relation-form-input.component.js +10 -1
  174. package/esm2015/core/shared/dynamic-form-inputs/rich-text-form-input/rich-text-form-input.component.js +20 -0
  175. package/esm2015/core/shared/dynamic-form-inputs/select-form-input/select-form-input.component.js +14 -2
  176. package/esm2015/core/shared/dynamic-form-inputs/text-form-input/text-form-input.component.js +17 -2
  177. package/esm2015/core/shared/dynamic-form-inputs/textarea-form-input/textarea-form-input.component.js +8 -1
  178. package/esm2015/core/shared/pipes/asset-preview.pipe.js +15 -1
  179. package/esm2015/core/shared/pipes/duration.pipe.js +9 -1
  180. package/esm2015/core/shared/pipes/file-size.pipe.js +9 -1
  181. package/esm2015/core/shared/pipes/has-permission.pipe.js +4 -2
  182. package/esm2015/core/shared/pipes/locale-base.pipe.js +7 -4
  183. package/esm2015/core/shared/pipes/locale-currency-name.pipe.js +9 -1
  184. package/esm2015/core/shared/pipes/locale-currency.pipe.js +13 -1
  185. package/esm2015/core/shared/pipes/locale-date.pipe.js +8 -1
  186. package/esm2015/core/shared/pipes/locale-language-name.pipe.js +10 -2
  187. package/esm2015/core/shared/pipes/locale-region-name.pipe.js +48 -0
  188. package/esm2015/core/shared/pipes/time-ago.pipe.js +9 -1
  189. package/esm2015/core/shared/shared.module.js +13 -1
  190. package/esm2015/customer/components/customer-detail/customer-detail.component.js +5 -16
  191. package/esm2015/customer/components/customer-group-detail-dialog/customer-group-detail-dialog.component.js +32 -3
  192. package/esm2015/customer/components/customer-group-list/customer-group-list.component.js +22 -18
  193. package/esm2015/marketing/components/promotion-detail/promotion-detail.component.js +9 -2
  194. package/esm2015/order/components/order-detail/order-detail.component.js +11 -3
  195. package/esm2015/settings/components/admin-detail/admin-detail.component.js +3 -14
  196. package/esm2015/settings/components/channel-detail/channel-detail.component.js +3 -14
  197. package/esm2015/settings/components/country-detail/country-detail.component.js +11 -3
  198. package/esm2015/settings/components/country-list/country-list.component.js +19 -7
  199. package/esm2015/settings/components/global-settings/global-settings.component.js +3 -14
  200. package/esm2015/settings/components/payment-method-detail/payment-method-detail.component.js +9 -2
  201. package/esm2015/settings/components/profile/profile.component.js +3 -14
  202. package/esm2015/settings/components/shipping-method-detail/shipping-method-detail.component.js +3 -16
  203. package/esm2015/settings/components/tax-category-detail/tax-category-detail.component.js +13 -3
  204. package/esm2015/settings/components/tax-rate-detail/tax-rate-detail.component.js +9 -2
  205. package/esm2015/settings/components/zone-detail-dialog/zone-detail-dialog.component.js +32 -3
  206. package/esm2015/settings/components/zone-list/zone-list.component.js +19 -8
  207. package/fesm2015/vendure-admin-ui-catalog.js +83 -102
  208. package/fesm2015/vendure-admin-ui-catalog.js.map +1 -1
  209. package/fesm2015/vendure-admin-ui-core.js +1865 -341
  210. package/fesm2015/vendure-admin-ui-core.js.map +1 -1
  211. package/fesm2015/vendure-admin-ui-customer.js +54 -34
  212. package/fesm2015/vendure-admin-ui-customer.js.map +1 -1
  213. package/fesm2015/vendure-admin-ui-marketing.js +8 -1
  214. package/fesm2015/vendure-admin-ui-marketing.js.map +1 -1
  215. package/fesm2015/vendure-admin-ui-order.js +10 -2
  216. package/fesm2015/vendure-admin-ui-order.js.map +1 -1
  217. package/fesm2015/vendure-admin-ui-settings.js +110 -85
  218. package/fesm2015/vendure-admin-ui-settings.js.map +1 -1
  219. package/marketing/components/promotion-detail/promotion-detail.component.d.ts +2 -1
  220. package/marketing/vendure-admin-ui-marketing.metadata.json +1 -1
  221. package/order/vendure-admin-ui-order.metadata.json +1 -1
  222. package/package.json +6 -5
  223. package/settings/components/admin-detail/admin-detail.component.d.ts +0 -1
  224. package/settings/components/channel-detail/channel-detail.component.d.ts +0 -1
  225. package/settings/components/country-detail/country-detail.component.d.ts +2 -1
  226. package/settings/components/country-list/country-list.component.d.ts +7 -2
  227. package/settings/components/global-settings/global-settings.component.d.ts +0 -1
  228. package/settings/components/payment-method-detail/payment-method-detail.component.d.ts +2 -1
  229. package/settings/components/profile/profile.component.d.ts +0 -1
  230. package/settings/components/shipping-method-detail/shipping-method-detail.component.d.ts +0 -1
  231. package/settings/components/tax-category-detail/tax-category-detail.component.d.ts +2 -1
  232. package/settings/components/tax-rate-detail/tax-rate-detail.component.d.ts +2 -1
  233. package/settings/components/zone-detail-dialog/zone-detail-dialog.component.d.ts +14 -3
  234. package/settings/components/zone-list/zone-list.component.d.ts +6 -2
  235. package/settings/vendure-admin-ui-settings.metadata.json +1 -1
  236. package/static/i18n-messages/cs.json +7 -0
  237. package/static/i18n-messages/de.json +7 -0
  238. package/static/i18n-messages/en.json +7 -0
  239. package/static/i18n-messages/es.json +8 -1
  240. package/static/i18n-messages/fr.json +7 -0
  241. package/static/i18n-messages/it.json +7 -0
  242. package/static/i18n-messages/pl.json +7 -0
  243. package/static/i18n-messages/pt_BR.json +7 -0
  244. package/static/i18n-messages/pt_PT.json +7 -0
  245. package/static/i18n-messages/ru.json +7 -0
  246. package/static/i18n-messages/uk.json +7 -0
  247. package/static/i18n-messages/zh_Hans.json +7 -0
  248. package/static/i18n-messages/zh_Hant.json +7 -0
  249. package/static/styles/global/_utilities.scss +3 -1
  250. package/static/styles/theme/dark.scss +9 -0
  251. package/static/styles/theme/default.scss +8 -0
  252. package/static/theme.min.css +1 -1
@@ -75,6 +75,8 @@ export const DELETE_COUNTRY = gql `
75
75
  export const ZONE_FRAGMENT = gql `
76
76
  fragment Zone on Zone {
77
77
  id
78
+ createdAt
79
+ updatedAt
78
80
  name
79
81
  members {
80
82
  ...Country
@@ -85,10 +87,7 @@ export const ZONE_FRAGMENT = gql `
85
87
  export const GET_ZONES = gql `
86
88
  query GetZones {
87
89
  zones {
88
- id
89
- createdAt
90
- updatedAt
91
- name
90
+ ...Zone
92
91
  members {
93
92
  createdAt
94
93
  updatedAt
@@ -99,6 +98,7 @@ export const GET_ZONES = gql `
99
98
  }
100
99
  }
101
100
  }
101
+ ${ZONE_FRAGMENT}
102
102
  `;
103
103
  export const GET_ZONE = gql `
104
104
  query GetZone($id: ID!) {
@@ -230,6 +230,29 @@ export const GET_TAX_RATE_LIST = gql `
230
230
  }
231
231
  ${TAX_RATE_FRAGMENT}
232
232
  `;
233
+ export const GET_TAX_RATE_LIST_SIMPLE = gql `
234
+ query GetTaxRateListSimple($options: TaxRateListOptions) {
235
+ taxRates(options: $options) {
236
+ items {
237
+ id
238
+ createdAt
239
+ updatedAt
240
+ name
241
+ enabled
242
+ value
243
+ category {
244
+ id
245
+ name
246
+ }
247
+ zone {
248
+ id
249
+ name
250
+ }
251
+ }
252
+ totalItems
253
+ }
254
+ }
255
+ `;
233
256
  export const GET_TAX_RATE = gql `
234
257
  query GetTaxRate($id: ID!) {
235
258
  taxRate(id: $id) {
@@ -457,6 +480,7 @@ export const CUSTOM_FIELD_CONFIG_FRAGMENT = gql `
457
480
  }
458
481
  readonly
459
482
  nullable
483
+ ui
460
484
  }
461
485
  `;
462
486
  export const STRING_CUSTOM_FIELD_FRAGMENT = gql `
@@ -594,9 +618,15 @@ export const GET_SERVER_CONFIG = gql `
594
618
  Collection {
595
619
  ...CustomFields
596
620
  }
621
+ Country {
622
+ ...CustomFields
623
+ }
597
624
  Customer {
598
625
  ...CustomFields
599
626
  }
627
+ CustomerGroup {
628
+ ...CustomFields
629
+ }
600
630
  Facet {
601
631
  ...CustomFields
602
632
  }
@@ -615,6 +645,9 @@ export const GET_SERVER_CONFIG = gql `
615
645
  OrderLine {
616
646
  ...CustomFields
617
647
  }
648
+ PaymentMethod {
649
+ ...CustomFields
650
+ }
618
651
  Product {
619
652
  ...CustomFields
620
653
  }
@@ -627,12 +660,24 @@ export const GET_SERVER_CONFIG = gql `
627
660
  ProductVariant {
628
661
  ...CustomFields
629
662
  }
663
+ Promotion {
664
+ ...CustomFields
665
+ }
630
666
  ShippingMethod {
631
667
  ...CustomFields
632
668
  }
669
+ TaxCategory {
670
+ ...CustomFields
671
+ }
672
+ TaxRate {
673
+ ...CustomFields
674
+ }
633
675
  User {
634
676
  ...CustomFields
635
677
  }
678
+ Zone {
679
+ ...CustomFields
680
+ }
636
681
  }
637
682
  }
638
683
  }
@@ -720,4 +765,4 @@ export const RUN_PENDING_SEARCH_INDEX_UPDATES = gql `
720
765
  }
721
766
  }
722
767
  `;
723
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MtZGVmaW5pdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL2RhdGEvZGVmaW5pdGlvbnMvc2V0dGluZ3MtZGVmaW5pdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFDSCxtQ0FBbUMsRUFDbkMsK0JBQStCLEVBQy9CLHFCQUFxQixHQUN4QixNQUFNLHNCQUFzQixDQUFDO0FBRTlCLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Q0FjbEMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7O0NBWWxDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7Ozs7O0NBV3pDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFBOzs7Ozs7TUFNeEIsZ0JBQWdCO0NBQ3JCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsR0FBRyxDQUFBOzs7Ozs7TUFNM0IsZ0JBQWdCO0NBQ3JCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsR0FBRyxDQUFBOzs7Ozs7TUFNM0IsZ0JBQWdCO0NBQ3JCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsR0FBRyxDQUFBOzs7Ozs7O0NBT2hDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsR0FBRyxDQUFBOzs7Ozs7OztNQVExQixnQkFBZ0I7Q0FDckIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBaUIzQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1B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QztBQUVGLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxHQUFHLENBQUE7Ozs7OztNQU0zQixpQkFBaUI7Q0FDdEIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLEdBQUcsQ0FBQTs7Ozs7OztDQU9wQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQTs7Ozs7O01BTXZCLGlCQUFpQjtDQUN0QixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQTs7Ozs7O01BTXBCLGlCQUFpQjtDQUN0QixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQUcsR0FBRyxDQUFBOzs7O0NBSWxELENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBRyxHQUFHLENBQUE7Ozs7OztDQU1sRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ3FsIH0gZnJvbSAnYXBvbGxvLWFuZ3VsYXInO1xyXG5cclxuaW1wb3J0IHtcclxuICAgIENPTkZJR1VSQUJMRV9PUEVSQVRJT05fREVGX0ZSQUdNRU5ULFxyXG4gICAgQ09ORklHVVJBQkxFX09QRVJBVElPTl9GUkFHTUVOVCxcclxuICAgIEVSUk9SX1JFU1VMVF9GUkFHTUVOVCxcclxufSBmcm9tICcuL3NoYXJlZC1kZWZpbml0aW9ucyc7XHJcblxyXG5leHBvcnQgY29uc3QgQ09VTlRSWV9GUkFHTUVOVCA9IGdxbGBcclxuICAgIGZyYWdtZW50IENvdW50cnkgb24gQ291bnRyeSB7XHJcbiAgICAgICAgaWRcclxuICAgICAgICBjcmVhdGVkQXRcclxuICAgICAgICB1cGRhdGVkQXRcclxuICAgICAgICBjb2RlXHJcbiAgICAgICAgbmFtZVxyXG4gICAgICAgIGVuYWJsZWRcclxuICAgICAgICB0cmFuc2xhdGlvbnMge1xyXG4gICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICBsYW5ndWFnZUNvZGVcclxuICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBHRVRfQ09VTlRSWV9MSVNUID0gZ3FsYFxyXG4gICAgcXVlcnkgR2V0Q291bnRyeUxpc3QoJG9wdGlvbnM6IENvdW50cnlMaXN0T3B0aW9ucykge1xyXG4gICAgICAgIGNvdW50cmllcyhvcHRpb25zOiAkb3B0aW9ucykge1xyXG4gICAgICAgICAgICBpdGVtcyB7XHJcbiAgICAgICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICAgICAgY29kZVxyXG4gICAgICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgICAgICAgICAgZW5hYmxlZFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRvdGFsSXRlbXNcclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgR0VUX0FWQUlMQUJMRV9DT1VOVFJJRVMgPSBncWxgXHJcbiAgICBxdWVyeSBHZXRBdmFpbGFibGVDb3VudHJpZXMge1xyXG4gICAgICAgIGNvdW50cmllcyhvcHRpb25zOiB7IGZpbHRlcjogeyBlbmFibGVkOiB7IGVxOiB0cnVlIH0gfSB9KSB7XHJcbiAgICAgICAgICAgIGl0ZW1zIHtcclxuICAgICAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgICAgICBjb2RlXHJcbiAgICAgICAgICAgICAgICBuYW1lXHJcbiAgICAgICAgICAgICAgICBlbmFibGVkXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgR0VUX0NPVU5UUlkgPSBncWxgXHJcbiAgICBxdWVyeSBHZXRDb3VudHJ5KCRpZDogSUQhKSB7XHJcbiAgICAgICAgY291bnRyeShpZDogJGlkKSB7XHJcbiAgICAgICAgICAgIC4uLkNvdW50cnlcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke0NPVU5UUllfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgQ1JFQVRFX0NPVU5UUlkgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBDcmVhdGVDb3VudHJ5KCRpbnB1dDogQ3JlYXRlQ291bnRyeUlucHV0ISkge1xyXG4gICAgICAgIGNyZWF0ZUNvdW50cnkoaW5wdXQ6ICRpbnB1dCkge1xyXG4gICAgICAgICAgICAuLi5Db3VudHJ5XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtDT1VOVFJZX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFVQREFURV9DT1VOVFJZID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gVXBkYXRlQ291bnRyeSgkaW5wdXQ6IFVwZGF0ZUNvdW50cnlJbnB1dCEpIHtcclxuICAgICAgICB1cGRhdGVDb3VudHJ5KGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgLi4uQ291bnRyeVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7Q09VTlRSWV9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBERUxFVEVfQ09VTlRSWSA9IGdxbGBcclxuICAgIG11dGF0aW9uIERlbGV0ZUNvdW50cnkoJGlkOiBJRCEpIHtcclxuICAgICAgICBkZWxldGVDb3VudHJ5KGlkOiAkaWQpIHtcclxuICAgICAgICAgICAgcmVzdWx0XHJcbiAgICAgICAgICAgIG1lc3NhZ2VcclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgWk9ORV9GUkFHTUVOVCA9IGdxbGBcclxuICAgIGZyYWdtZW50IFpvbmUgb24gWm9uZSB7XHJcbiAgICAgICAgaWRcclxuICAgICAgICBuYW1lXHJcbiAgICAgICAgbWVtYmVycyB7XHJcbiAgICAgICAgICAgIC4uLkNvdW50cnlcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke0NPVU5UUllfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgR0VUX1pPTkVTID0gZ3FsYFxyXG4gICAgcXVlcnkgR2V0Wm9uZXMge1xyXG4gICAgICAgIHpvbmVzIHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgY3JlYXRlZEF0XHJcbiAgICAgICAgICAgIHVwZGF0ZWRBdFxyXG4gICAgICAgICAgICBuYW1lXHJcbiAgICAgICAgICAgIG1lbWJlcnMge1xyXG4gICAgICAgICAgICAgICAgY3JlYXRlZEF0XHJcbiAgICAgICAgICAgICAgICB1cGRhdGVkQXRcclxuICAgICAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgICAgICBuYW1lXHJcbiAgICAgICAgICAgICAgICBjb2RlXHJcbiAgICAgICAgICAgICAgICBlbmFibGVkXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgR0VUX1pPTkUgPSBncWxgXHJcbiAgICBxdWVyeSBHZXRab25lKCRpZDogSUQhKSB7XHJcbiAgICAgICAgem9uZShpZDogJGlkKSB7XHJcbiAgICAgICAgICAgIC4uLlpvbmVcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke1pPTkVfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgQ1JFQVRFX1pPTkUgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBDcmVhdGVab25lKCRpbnB1dDogQ3JlYXRlWm9uZUlucHV0ISkge1xyXG4gICAgICAgIGNyZWF0ZVpvbmUoaW5wdXQ6ICRpbnB1dCkge1xyXG4gICAgICAgICAgICAuLi5ab25lXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtaT05FX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFVQREFURV9aT05FID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gVXBkYXRlWm9uZSgkaW5wdXQ6IFVwZGF0ZVpvbmVJbnB1dCEpIHtcclxuICAgICAgICB1cGRhdGVab25lKGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgLi4uWm9uZVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7Wk9ORV9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBERUxFVEVfWk9ORSA9IGdxbGBcclxuICAgIG11dGF0aW9uIERlbGV0ZVpvbmUoJGlkOiBJRCEpIHtcclxuICAgICAgICBkZWxldGVab25lKGlkOiAkaWQpIHtcclxuICAgICAgICAgICAgbWVzc2FnZVxyXG4gICAgICAgICAgICByZXN1bHRcclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgQUREX01FTUJFUlNfVE9fWk9ORSA9IGdxbGBcclxuICAgIG11dGF0aW9uIEFkZE1lbWJlcnNUb1pvbmUoJHpvbmVJZDogSUQhLCAkbWVtYmVySWRzOiBbSUQhXSEpIHtcclxuICAgICAgICBhZGRNZW1iZXJzVG9ab25lKHpvbmVJZDogJHpvbmVJZCwgbWVtYmVySWRzOiAkbWVtYmVySWRzKSB7XHJcbiAgICAgICAgICAgIC4uLlpvbmVcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke1pPTkVfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgUkVNT1ZFX01FTUJFUlNfRlJPTV9aT05FID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gUmVtb3ZlTWVtYmVyc0Zyb21ab25lKCR6b25lSWQ6IElEISwgJG1lbWJlcklkczogW0lEIV0hKSB7XHJcbiAgICAgICAgcmVtb3ZlTWVtYmVyc0Zyb21ab25lKHpvbmVJZDogJHpvbmVJZCwgbWVtYmVySWRzOiAkbWVtYmVySWRzKSB7XHJcbiAgICAgICAgICAgIC4uLlpvbmVcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke1pPTkVfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgVEFYX0NBVEVHT1JZX0ZSQUdNRU5UID0gZ3FsYFxyXG4gICAgZnJhZ21lbnQgVGF4Q2F0ZWdvcnkgb24gVGF4Q2F0ZWdvcnkge1xyXG4gICAgICAgIGlkXHJcbiAgICAgICAgY3JlYXRlZEF0XHJcbiAgICAgICAgdXBkYXRlZEF0XHJcbiAgICAgICAgbmFtZVxyXG4gICAgICAgIGlzRGVmYXVsdFxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEdFVF9UQVhfQ0FURUdPUklFUyA9IGdxbGBcclxuICAgIHF1ZXJ5IEdldFRheENhdGVnb3JpZXMge1xyXG4gICAgICAgIHRheENhdGVnb3JpZXMge1xyXG4gICAgICAgICAgICAuLi5UYXhDYXRlZ29yeVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7VEFYX0NBVEVHT1JZX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEdFVF9UQVhfQ0FURUdPUlkgPSBncWxgXHJcbiAgICBxdWVyeSBHZXRUYXhDYXRlZ29yeSgkaWQ6IElEISkge1xyXG4gICAgICAgIHRheENhdGVnb3J5KGlkOiAkaWQpIHtcclxuICAgICAgICAgICAgLi4uVGF4Q2F0ZWdvcnlcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke1RBWF9DQVRFR09SWV9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBDUkVBVEVfVEFYX0NBVEVHT1JZID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gQ3JlYXRlVGF4Q2F0ZWdvcnkoJGlucHV0OiBDcmVhdGVUYXhDYXRlZ29yeUlucHV0ISkge1xyXG4gICAgICAgIGNyZWF0ZVRheENhdGVnb3J5KGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgLi4uVGF4Q2F0ZWdvcnlcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke1RBWF9DQVRFR09SWV9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBVUERBVEVfVEFYX0NBVEVHT1JZID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gVXBkYXRlVGF4Q2F0ZWdvcnkoJGlucHV0OiBVcGRhdGVUYXhDYXRlZ29yeUlucHV0ISkge1xyXG4gICAgICAgIHVwZGF0ZVRheENhdGVnb3J5KGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgLi4uVGF4Q2F0ZWdvcnlcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke1RBWF9DQVRFR09SWV9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBERUxFVEVfVEFYX0NBVEVHT1JZID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gRGVsZXRlVGF4Q2F0ZWdvcnkoJGlkOiBJRCEpIHtcclxuICAgICAgICBkZWxldGVUYXhDYXRlZ29yeShpZDogJGlkKSB7XHJcbiAgICAgICAgICAgIHJlc3VsdFxyXG4gICAgICAgICAgICBtZXNzYWdlXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFRBWF9SQVRFX0ZSQUdNRU5UID0gZ3FsYFxyXG4gICAgZnJhZ21lbnQgVGF4UmF0ZSBvbiBUYXhSYXRlIHtcclxuICAgICAgICBpZFxyXG4gICAgICAgIGNyZWF0ZWRBdFxyXG4gICAgICAgIHVwZGF0ZWRBdFxyXG4gICAgICAgIG5hbWVcclxuICAgICAgICBlbmFibGVkXHJcbiAgICAgICAgdmFsdWVcclxuICAgICAgICBjYXRlZ29yeSB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIG5hbWVcclxuICAgICAgICB9XHJcbiAgICAgICAgem9uZSB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIG5hbWVcclxuICAgICAgICB9XHJcbiAgICAgICAgY3VzdG9tZXJHcm91cCB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIG5hbWVcclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgR0VUX1RBWF9SQVRFX0xJU1QgPSBncWxgXHJcbiAgICBxdWVyeSBHZXRUYXhSYXRlTGlzdCgkb3B0aW9uczogVGF4UmF0ZUxpc3RPcHRpb25zKSB7XHJcbiAgICAgICAgdGF4UmF0ZXMob3B0aW9uczogJG9wdGlvbnMpIHtcclxuICAgICAgICAgICAgaXRlbXMge1xyXG4gICAgICAgICAgICAgICAgLi4uVGF4UmF0ZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRvdGFsSXRlbXNcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke1RBWF9SQVRFX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEdFVF9UQVhfUkFURSA9IGdxbGBcclxuICAgIHF1ZXJ5IEdldFRheFJhdGUoJGlkOiBJRCEpIHtcclxuICAgICAgICB0YXhSYXRlKGlkOiAkaWQpIHtcclxuICAgICAgICAgICAgLi4uVGF4UmF0ZVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7VEFYX1JBVEVfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgQ1JFQVRFX1RBWF9SQVRFID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gQ3JlYXRlVGF4UmF0ZSgkaW5wdXQ6IENyZWF0ZVRheFJhdGVJbnB1dCEpIHtcclxuICAgICAgICBjcmVhdGVUYXhSYXRlKGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgLi4uVGF4UmF0ZVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7VEFYX1JBVEVfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgVVBEQVRFX1RBWF9SQVRFID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gVXBkYXRlVGF4UmF0ZSgkaW5wdXQ6IFVwZGF0ZVRheFJhdGVJbnB1dCEpIHtcclxuICAgICAgICB1cGRhdGVUYXhSYXRlKGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgLi4uVGF4UmF0ZVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7VEFYX1JBVEVfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgREVMRVRFX1RBWF9SQVRFID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gRGVsZXRlVGF4UmF0ZSgkaWQ6IElEISkge1xyXG4gICAgICAgIGRlbGV0ZVRheFJhdGUoaWQ6ICRpZCkge1xyXG4gICAgICAgICAgICByZXN1bHRcclxuICAgICAgICAgICAgbWVzc2FnZVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBDSEFOTkVMX0ZSQUdNRU5UID0gZ3FsYFxyXG4gICAgZnJhZ21lbnQgQ2hhbm5lbCBvbiBDaGFubmVsIHtcclxuICAgICAgICBpZFxyXG4gICAgICAgIGNyZWF0ZWRBdFxyXG4gICAgICAgIHVwZGF0ZWRBdFxyXG4gICAgICAgIGNvZGVcclxuICAgICAgICB0b2tlblxyXG4gICAgICAgIHByaWNlc0luY2x1ZGVUYXhcclxuICAgICAgICBjdXJyZW5jeUNvZGVcclxuICAgICAgICBkZWZhdWx0TGFuZ3VhZ2VDb2RlXHJcbiAgICAgICAgZGVmYXVsdFNoaXBwaW5nWm9uZSB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIG5hbWVcclxuICAgICAgICB9XHJcbiAgICAgICAgZGVmYXVsdFRheFpvbmUge1xyXG4gICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICBuYW1lXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEdFVF9DSEFOTkVMUyA9IGdxbGBcclxuICAgIHF1ZXJ5IEdldENoYW5uZWxzIHtcclxuICAgICAgICBjaGFubmVscyB7XHJcbiAgICAgICAgICAgIC4uLkNoYW5uZWxcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke0NIQU5ORUxfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgR0VUX0NIQU5ORUwgPSBncWxgXHJcbiAgICBxdWVyeSBHZXRDaGFubmVsKCRpZDogSUQhKSB7XHJcbiAgICAgICAgY2hhbm5lbChpZDogJGlkKSB7XHJcbiAgICAgICAgICAgIC4uLkNoYW5uZWxcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke0NIQU5ORUxfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgR0VUX0FDVElWRV9DSEFOTkVMID0gZ3FsYFxyXG4gICAgcXVlcnkgR2V0QWN0aXZlQ2hhbm5lbCB7XHJcbiAgICAgICAgYWN0aXZlQ2hhbm5lbCB7XHJcbiAgICAgICAgICAgIC4uLkNoYW5uZWxcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke0NIQU5ORUxfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgQ1JFQVRFX0NIQU5ORUwgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBDcmVhdGVDaGFubmVsKCRpbnB1dDogQ3JlYXRlQ2hhbm5lbElucHV0ISkge1xyXG4gICAgICAgIGNyZWF0ZUNoYW5uZWwoaW5wdXQ6ICRpbnB1dCkge1xyXG4gICAgICAgICAgICAuLi5DaGFubmVsXHJcbiAgICAgICAgICAgIC4uLkVycm9yUmVzdWx0XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtDSEFOTkVMX0ZSQUdNRU5UfVxyXG4gICAgJHtFUlJPUl9SRVNVTFRfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgVVBEQVRFX0NIQU5ORUwgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBVcGRhdGVDaGFubmVsKCRpbnB1dDogVXBkYXRlQ2hhbm5lbElucHV0ISkge1xyXG4gICAgICAgIHVwZGF0ZUNoYW5uZWwoaW5wdXQ6ICRpbnB1dCkge1xyXG4gICAgICAgICAgICAuLi5DaGFubmVsXHJcbiAgICAgICAgICAgIC4uLkVycm9yUmVzdWx0XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtDSEFOTkVMX0ZSQUdNRU5UfVxyXG4gICAgJHtFUlJPUl9SRVNVTFRfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgREVMRVRFX0NIQU5ORUwgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBEZWxldGVDaGFubmVsKCRpZDogSUQhKSB7XHJcbiAgICAgICAgZGVsZXRlQ2hhbm5lbChpZDogJGlkKSB7XHJcbiAgICAgICAgICAgIHJlc3VsdFxyXG4gICAgICAgICAgICBtZXNzYWdlXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFBBWU1FTlRfTUVUSE9EX0ZSQUdNRU5UID0gZ3FsYFxyXG4gICAgZnJhZ21lbnQgUGF5bWVudE1ldGhvZCBvbiBQYXltZW50TWV0aG9kIHtcclxuICAgICAgICBpZFxyXG4gICAgICAgIGNyZWF0ZWRBdFxyXG4gICAgICAgIHVwZGF0ZWRBdFxyXG4gICAgICAgIG5hbWVcclxuICAgICAgICBjb2RlXHJcbiAgICAgICAgZGVzY3JpcHRpb25cclxuICAgICAgICBlbmFibGVkXHJcbiAgICAgICAgY2hlY2tlciB7XHJcbiAgICAgICAgICAgIC4uLkNvbmZpZ3VyYWJsZU9wZXJhdGlvblxyXG4gICAgICAgIH1cclxuICAgICAgICBoYW5kbGVyIHtcclxuICAgICAgICAgICAgLi4uQ29uZmlndXJhYmxlT3BlcmF0aW9uXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtDT05GSUdVUkFCTEVfT1BFUkFUSU9OX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEdFVF9QQVlNRU5UX01FVEhPRF9MSVNUID0gZ3FsYFxyXG4gICAgcXVlcnkgR2V0UGF5bWVudE1ldGhvZExpc3QoJG9wdGlvbnM6IFBheW1lbnRNZXRob2RMaXN0T3B0aW9ucyEpIHtcclxuICAgICAgICBwYXltZW50TWV0aG9kcyhvcHRpb25zOiAkb3B0aW9ucykge1xyXG4gICAgICAgICAgICBpdGVtcyB7XHJcbiAgICAgICAgICAgICAgICAuLi5QYXltZW50TWV0aG9kXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdG90YWxJdGVtc1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7UEFZTUVOVF9NRVRIT0RfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgR0VUX1BBWU1FTlRfTUVUSE9EX09QRVJBVElPTlMgPSBncWxgXHJcbiAgICBxdWVyeSBHZXRQYXltZW50TWV0aG9kT3BlcmF0aW9ucyB7XHJcbiAgICAgICAgcGF5bWVudE1ldGhvZEVsaWdpYmlsaXR5Q2hlY2tlcnMge1xyXG4gICAgICAgICAgICAuLi5Db25maWd1cmFibGVPcGVyYXRpb25EZWZcclxuICAgICAgICB9XHJcbiAgICAgICAgcGF5bWVudE1ldGhvZEhhbmRsZXJzIHtcclxuICAgICAgICAgICAgLi4uQ29uZmlndXJhYmxlT3BlcmF0aW9uRGVmXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtDT05GSUdVUkFCTEVfT1BFUkFUSU9OX0RFRl9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBHRVRfUEFZTUVOVF9NRVRIT0QgPSBncWxgXHJcbiAgICBxdWVyeSBHZXRQYXltZW50TWV0aG9kKCRpZDogSUQhKSB7XHJcbiAgICAgICAgcGF5bWVudE1ldGhvZChpZDogJGlkKSB7XHJcbiAgICAgICAgICAgIC4uLlBheW1lbnRNZXRob2RcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke1BBWU1FTlRfTUVUSE9EX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IENSRUFURV9QQVlNRU5UX01FVEhPRCA9IGdxbGBcclxuICAgIG11dGF0aW9uIENyZWF0ZVBheW1lbnRNZXRob2QoJGlucHV0OiBDcmVhdGVQYXltZW50TWV0aG9kSW5wdXQhKSB7XHJcbiAgICAgICAgY3JlYXRlUGF5bWVudE1ldGhvZChpbnB1dDogJGlucHV0KSB7XHJcbiAgICAgICAgICAgIC4uLlBheW1lbnRNZXRob2RcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke1BBWU1FTlRfTUVUSE9EX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFVQREFURV9QQVlNRU5UX01FVEhPRCA9IGdxbGBcclxuICAgIG11dGF0aW9uIFVwZGF0ZVBheW1lbnRNZXRob2QoJGlucHV0OiBVcGRhdGVQYXltZW50TWV0aG9kSW5wdXQhKSB7XHJcbiAgICAgICAgdXBkYXRlUGF5bWVudE1ldGhvZChpbnB1dDogJGlucHV0KSB7XHJcbiAgICAgICAgICAgIC4uLlBheW1lbnRNZXRob2RcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke1BBWU1FTlRfTUVUSE9EX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IERFTEVURV9QQVlNRU5UX01FVEhPRCA9IGdxbGBcclxuICAgIG11dGF0aW9uIERlbGV0ZVBheW1lbnRNZXRob2QoJGlkOiBJRCEsICRmb3JjZTogQm9vbGVhbikge1xyXG4gICAgICAgIGRlbGV0ZVBheW1lbnRNZXRob2QoaWQ6ICRpZCwgZm9yY2U6ICRmb3JjZSkge1xyXG4gICAgICAgICAgICByZXN1bHRcclxuICAgICAgICAgICAgbWVzc2FnZVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBHTE9CQUxfU0VUVElOR1NfRlJBR01FTlQgPSBncWxgXHJcbiAgICBmcmFnbWVudCBHbG9iYWxTZXR0aW5ncyBvbiBHbG9iYWxTZXR0aW5ncyB7XHJcbiAgICAgICAgaWRcclxuICAgICAgICBhdmFpbGFibGVMYW5ndWFnZXNcclxuICAgICAgICB0cmFja0ludmVudG9yeVxyXG4gICAgICAgIG91dE9mU3RvY2tUaHJlc2hvbGRcclxuICAgICAgICBzZXJ2ZXJDb25maWcge1xyXG4gICAgICAgICAgICBwZXJtaXNzaW9ucyB7XHJcbiAgICAgICAgICAgICAgICBuYW1lXHJcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvblxyXG4gICAgICAgICAgICAgICAgYXNzaWduYWJsZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIG9yZGVyUHJvY2VzcyB7XHJcbiAgICAgICAgICAgICAgICBuYW1lXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgR0VUX0dMT0JBTF9TRVRUSU5HUyA9IGdxbGBcclxuICAgIHF1ZXJ5IEdldEdsb2JhbFNldHRpbmdzIHtcclxuICAgICAgICBnbG9iYWxTZXR0aW5ncyB7XHJcbiAgICAgICAgICAgIC4uLkdsb2JhbFNldHRpbmdzXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtHTE9CQUxfU0VUVElOR1NfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgVVBEQVRFX0dMT0JBTF9TRVRUSU5HUyA9IGdxbGBcclxuICAgIG11dGF0aW9uIFVwZGF0ZUdsb2JhbFNldHRpbmdzKCRpbnB1dDogVXBkYXRlR2xvYmFsU2V0dGluZ3NJbnB1dCEpIHtcclxuICAgICAgICB1cGRhdGVHbG9iYWxTZXR0aW5ncyhpbnB1dDogJGlucHV0KSB7XHJcbiAgICAgICAgICAgIC4uLkdsb2JhbFNldHRpbmdzXHJcbiAgICAgICAgICAgIC4uLkVycm9yUmVzdWx0XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtHTE9CQUxfU0VUVElOR1NfRlJBR01FTlR9XHJcbiAgICAke0VSUk9SX1JFU1VMVF9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBDVVNUT01fRklFTERfQ09ORklHX0ZSQUdNRU5UID0gZ3FsYFxyXG4gICAgZnJhZ21lbnQgQ3VzdG9tRmllbGRDb25maWcgb24gQ3VzdG9tRmllbGQge1xyXG4gICAgICAgIG5hbWVcclxuICAgICAgICB0eXBlXHJcbiAgICAgICAgbGlzdFxyXG4gICAgICAgIGRlc2NyaXB0aW9uIHtcclxuICAgICAgICAgICAgbGFuZ3VhZ2VDb2RlXHJcbiAgICAgICAgICAgIHZhbHVlXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxhYmVsIHtcclxuICAgICAgICAgICAgbGFuZ3VhZ2VDb2RlXHJcbiAgICAgICAgICAgIHZhbHVlXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgbnVsbGFibGVcclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBTVFJJTkdfQ1VTVE9NX0ZJRUxEX0ZSQUdNRU5UID0gZ3FsYFxyXG4gICAgZnJhZ21lbnQgU3RyaW5nQ3VzdG9tRmllbGQgb24gU3RyaW5nQ3VzdG9tRmllbGRDb25maWcge1xyXG4gICAgICAgIC4uLkN1c3RvbUZpZWxkQ29uZmlnXHJcbiAgICAgICAgcGF0dGVyblxyXG4gICAgICAgIG9wdGlvbnMge1xyXG4gICAgICAgICAgICBsYWJlbCB7XHJcbiAgICAgICAgICAgICAgICBsYW5ndWFnZUNvZGVcclxuICAgICAgICAgICAgICAgIHZhbHVlXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdmFsdWVcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke0NVU1RPTV9GSUVMRF9DT05GSUdfRlJBR01FTlR9XHJcbmA7XHJcbmV4cG9ydCBjb25zdCBMT0NBTEVfU1RSSU5HX0NVU1RPTV9GSUVMRF9GUkFHTUVOVCA9IGdxbGBcclxuICAgIGZyYWdtZW50IExvY2FsZVN0cmluZ0N1c3RvbUZpZWxkIG9uIExvY2FsZVN0cmluZ0N1c3RvbUZpZWxkQ29uZmlnIHtcclxuICAgICAgICAuLi5DdXN0b21GaWVsZENvbmZpZ1xyXG4gICAgICAgIHBhdHRlcm5cclxuICAgIH1cclxuICAgICR7Q1VTVE9NX0ZJRUxEX0NPTkZJR19GUkFHTUVOVH1cclxuYDtcclxuZXhwb3J0IGNvbnN0IFRFWFRfQ1VTVE9NX0ZJRUxEX0ZSQUdNRU5UID0gZ3FsYFxyXG4gICAgZnJhZ21lbnQgVGV4dEN1c3RvbUZpZWxkIG9uIFRleHRDdXN0b21GaWVsZENvbmZpZyB7XHJcbiAgICAgICAgLi4uQ3VzdG9tRmllbGRDb25maWdcclxuICAgIH1cclxuICAgICR7Q1VTVE9NX0ZJRUxEX0NPTkZJR19GUkFHTUVOVH1cclxuYDtcclxuZXhwb3J0IGNvbnN0IEJPT0xFQU5fQ1VTVE9NX0ZJRUxEX0ZSQUdNRU5UID0gZ3FsYFxyXG4gICAgZnJhZ21lbnQgQm9vbGVhbkN1c3RvbUZpZWxkIG9uIEJvb2xlYW5DdXN0b21GaWVsZENvbmZpZyB7XHJcbiAgICAgICAgLi4uQ3VzdG9tRmllbGRDb25maWdcclxuICAgIH1cclxuICAgICR7Q1VTVE9NX0ZJRUxEX0NPTkZJR19GUkFHTUVOVH1cclxuYDtcclxuZXhwb3J0IGNvbnN0IElOVF9DVVNUT01fRklFTERfRlJBR01FTlQgPSBncWxgXHJcbiAgICBmcmFnbWVudCBJbnRDdXN0b21GaWVsZCBvbiBJbnRDdXN0b21GaWVsZENvbmZpZyB7XHJcbiAgICAgICAgLi4uQ3VzdG9tRmllbGRDb25maWdcclxuICAgICAgICBpbnRNaW46IG1pblxyXG4gICAgICAgIGludE1heDogbWF4XHJcbiAgICAgICAgaW50U3RlcDogc3RlcFxyXG4gICAgfVxyXG4gICAgJHtDVVNUT01fRklFTERfQ09ORklHX0ZSQUdNRU5UfVxyXG5gO1xyXG5leHBvcnQgY29uc3QgRkxPQVRfQ1VTVE9NX0ZJRUxEX0ZSQUdNRU5UID0gZ3FsYFxyXG4gICAgZnJhZ21lbnQgRmxvYXRDdXN0b21GaWVsZCBvbiBGbG9hdEN1c3RvbUZpZWxkQ29uZmlnIHtcclxuICAgICAgICAuLi5DdXN0b21GaWVsZENvbmZpZ1xyXG4gICAgICAgIGZsb2F0TWluOiBtaW5cclxuICAgICAgICBmbG9hdE1heDogbWF4XHJcbiAgICAgICAgZmxvYXRTdGVwOiBzdGVwXHJcbiAgICB9XHJcbiAgICAke0NVU1RPTV9GSUVMRF9DT05GSUdfRlJBR01FTlR9XHJcbmA7XHJcbmV4cG9ydCBjb25zdCBEQVRFX1RJTUVfQ1VTVE9NX0ZJRUxEX0ZSQUdNRU5UID0gZ3FsYFxyXG4gICAgZnJhZ21lbnQgRGF0ZVRpbWVDdXN0b21GaWVsZCBvbiBEYXRlVGltZUN1c3RvbUZpZWxkQ29uZmlnIHtcclxuICAgICAgICAuLi5DdXN0b21GaWVsZENvbmZpZ1xyXG4gICAgICAgIGRhdGV0aW1lTWluOiBtaW5cclxuICAgICAgICBkYXRldGltZU1heDogbWF4XHJcbiAgICAgICAgZGF0ZXRpbWVTdGVwOiBzdGVwXHJcbiAgICB9XHJcbiAgICAke0NVU1RPTV9GSUVMRF9DT05GSUdfRlJBR01FTlR9XHJcbmA7XHJcbmV4cG9ydCBjb25zdCBSRUxBVElPTl9DVVNUT01fRklFTERfRlJBR01FTlQgPSBncWxgXHJcbiAgICBmcmFnbWVudCBSZWxhdGlvbkN1c3RvbUZpZWxkIG9uIFJlbGF0aW9uQ3VzdG9tRmllbGRDb25maWcge1xyXG4gICAgICAgIC4uLkN1c3RvbUZpZWxkQ29uZmlnXHJcbiAgICAgICAgZW50aXR5XHJcbiAgICAgICAgc2NhbGFyRmllbGRzXHJcbiAgICB9XHJcbiAgICAke0NVU1RPTV9GSUVMRF9DT05GSUdfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgQUxMX0NVU1RPTV9GSUVMRFNfRlJBR01FTlQgPSBncWxgXHJcbiAgICBmcmFnbWVudCBDdXN0b21GaWVsZHMgb24gQ3VzdG9tRmllbGQge1xyXG4gICAgICAgIC4uLiBvbiBTdHJpbmdDdXN0b21GaWVsZENvbmZpZyB7XHJcbiAgICAgICAgICAgIC4uLlN0cmluZ0N1c3RvbUZpZWxkXHJcbiAgICAgICAgfVxyXG4gICAgICAgIC4uLiBvbiBMb2NhbGVTdHJpbmdDdXN0b21GaWVsZENvbmZpZyB7XHJcbiAgICAgICAgICAgIC4uLkxvY2FsZVN0cmluZ0N1c3RvbUZpZWxkXHJcbiAgICAgICAgfVxyXG4gICAgICAgIC4uLiBvbiBUZXh0Q3VzdG9tRmllbGRDb25maWcge1xyXG4gICAgICAgICAgICAuLi5UZXh0Q3VzdG9tRmllbGRcclxuICAgICAgICB9XHJcbiAgICAgICAgLi4uIG9uIEJvb2xlYW5DdXN0b21GaWVsZENvbmZpZyB7XHJcbiAgICAgICAgICAgIC4uLkJvb2xlYW5DdXN0b21GaWVsZFxyXG4gICAgICAgIH1cclxuICAgICAgICAuLi4gb24gSW50Q3VzdG9tRmllbGRDb25maWcge1xyXG4gICAgICAgICAgICAuLi5JbnRDdXN0b21GaWVsZFxyXG4gICAgICAgIH1cclxuICAgICAgICAuLi4gb24gRmxvYXRDdXN0b21GaWVsZENvbmZpZyB7XHJcbiAgICAgICAgICAgIC4uLkZsb2F0Q3VzdG9tRmllbGRcclxuICAgICAgICB9XHJcbiAgICAgICAgLi4uIG9uIERhdGVUaW1lQ3VzdG9tRmllbGRDb25maWcge1xyXG4gICAgICAgICAgICAuLi5EYXRlVGltZUN1c3RvbUZpZWxkXHJcbiAgICAgICAgfVxyXG4gICAgICAgIC4uLiBvbiBSZWxhdGlvbkN1c3RvbUZpZWxkQ29uZmlnIHtcclxuICAgICAgICAgICAgLi4uUmVsYXRpb25DdXN0b21GaWVsZFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7U1RSSU5HX0NVU1RPTV9GSUVMRF9GUkFHTUVOVH1cclxuICAgICR7TE9DQUxFX1NUUklOR19DVVNUT01fRklFTERfRlJBR01FTlR9XHJcbiAgICAke1RFWFRfQ1VTVE9NX0ZJRUxEX0ZSQUdNRU5UfVxyXG4gICAgJHtCT09MRUFOX0NVU1RPTV9GSUVMRF9GUkFHTUVOVH1cclxuICAgICR7SU5UX0NVU1RPTV9GSUVMRF9GUkFHTUVOVH1cclxuICAgICR7RkxPQVRfQ1VTVE9NX0ZJRUxEX0ZSQUdNRU5UfVxyXG4gICAgJHtEQVRFX1RJTUVfQ1VTVE9NX0ZJRUxEX0ZSQUdNRU5UfVxyXG4gICAgJHtSRUxBVElPTl9DVVNUT01fRklFTERfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgR0VUX1NFUlZFUl9DT05GSUcgPSBncWxgXHJcbiAgICBxdWVyeSBHZXRTZXJ2ZXJDb25maWcge1xyXG4gICAgICAgIGdsb2JhbFNldHRpbmdzIHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgc2VydmVyQ29uZmlnIHtcclxuICAgICAgICAgICAgICAgIG9yZGVyUHJvY2VzcyB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgICAgICAgICAgICAgIHRvXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBwZXJtaXR0ZWRBc3NldFR5cGVzXHJcbiAgICAgICAgICAgICAgICBwZXJtaXNzaW9ucyB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgYXNzaWduYWJsZVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY3VzdG9tRmllbGRDb25maWcge1xyXG4gICAgICAgICAgICAgICAgICAgIEFkZHJlc3Mge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5DdXN0b21GaWVsZHNcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgQWRtaW5pc3RyYXRvciB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLkN1c3RvbUZpZWxkc1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBBc3NldCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLkN1c3RvbUZpZWxkc1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBDaGFubmVsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLi4uQ3VzdG9tRmllbGRzXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpb24ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5DdXN0b21GaWVsZHNcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgQ3VzdG9tZXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5DdXN0b21GaWVsZHNcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgRmFjZXQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5DdXN0b21GaWVsZHNcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgRmFjZXRWYWx1ZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLkN1c3RvbUZpZWxkc1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBGdWxmaWxsbWVudCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLkN1c3RvbUZpZWxkc1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBHbG9iYWxTZXR0aW5ncyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLkN1c3RvbUZpZWxkc1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBPcmRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLkN1c3RvbUZpZWxkc1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBPcmRlckxpbmUge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5DdXN0b21GaWVsZHNcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgUHJvZHVjdCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLkN1c3RvbUZpZWxkc1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBQcm9kdWN0T3B0aW9uIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLi4uQ3VzdG9tRmllbGRzXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIFByb2R1Y3RPcHRpb25Hcm91cCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLkN1c3RvbUZpZWxkc1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBQcm9kdWN0VmFyaWFudCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLkN1c3RvbUZpZWxkc1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBTaGlwcGluZ01ldGhvZCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLkN1c3RvbUZpZWxkc1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBVc2VyIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLi4uQ3VzdG9tRmllbGRzXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtBTExfQ1VTVE9NX0ZJRUxEU19GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBKT0JfSU5GT19GUkFHTUVOVCA9IGdxbGBcclxuICAgIGZyYWdtZW50IEpvYkluZm8gb24gSm9iIHtcclxuICAgICAgICBpZFxyXG4gICAgICAgIGNyZWF0ZWRBdFxyXG4gICAgICAgIHN0YXJ0ZWRBdFxyXG4gICAgICAgIHNldHRsZWRBdFxyXG4gICAgICAgIHF1ZXVlTmFtZVxyXG4gICAgICAgIHN0YXRlXHJcbiAgICAgICAgaXNTZXR0bGVkXHJcbiAgICAgICAgcHJvZ3Jlc3NcclxuICAgICAgICBkdXJhdGlvblxyXG4gICAgICAgIGRhdGFcclxuICAgICAgICByZXN1bHRcclxuICAgICAgICBlcnJvclxyXG4gICAgICAgIHJldHJpZXNcclxuICAgICAgICBhdHRlbXB0c1xyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEdFVF9KT0JfSU5GTyA9IGdxbGBcclxuICAgIHF1ZXJ5IEdldEpvYkluZm8oJGlkOiBJRCEpIHtcclxuICAgICAgICBqb2Ioam9iSWQ6ICRpZCkge1xyXG4gICAgICAgICAgICAuLi5Kb2JJbmZvXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtKT0JfSU5GT19GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBHRVRfSk9CU19MSVNUID0gZ3FsYFxyXG4gICAgcXVlcnkgR2V0QWxsSm9icygkb3B0aW9uczogSm9iTGlzdE9wdGlvbnMpIHtcclxuICAgICAgICBqb2JzKG9wdGlvbnM6ICRvcHRpb25zKSB7XHJcbiAgICAgICAgICAgIGl0ZW1zIHtcclxuICAgICAgICAgICAgICAgIC4uLkpvYkluZm9cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0b3RhbEl0ZW1zXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtKT0JfSU5GT19GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBHRVRfSk9CU19CWV9JRCA9IGdxbGBcclxuICAgIHF1ZXJ5IEdldEpvYnNCeUlkKCRpZHM6IFtJRCFdISkge1xyXG4gICAgICAgIGpvYnNCeUlkKGpvYklkczogJGlkcykge1xyXG4gICAgICAgICAgICAuLi5Kb2JJbmZvXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtKT0JfSU5GT19GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBHRVRfSk9CX1FVRVVFX0xJU1QgPSBncWxgXHJcbiAgICBxdWVyeSBHZXRKb2JRdWV1ZUxpc3Qge1xyXG4gICAgICAgIGpvYlF1ZXVlcyB7XHJcbiAgICAgICAgICAgIG5hbWVcclxuICAgICAgICAgICAgcnVubmluZ1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBDQU5DRUxfSk9CID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gQ2FuY2VsSm9iKCRpZDogSUQhKSB7XHJcbiAgICAgICAgY2FuY2VsSm9iKGpvYklkOiAkaWQpIHtcclxuICAgICAgICAgICAgLi4uSm9iSW5mb1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7Sk9CX0lORk9fRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgUkVJTkRFWCA9IGdxbGBcclxuICAgIG11dGF0aW9uIFJlaW5kZXgge1xyXG4gICAgICAgIHJlaW5kZXgge1xyXG4gICAgICAgICAgICAuLi5Kb2JJbmZvXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtKT0JfSU5GT19GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBHRVRfUEVORElOR19TRUFSQ0hfSU5ERVhfVVBEQVRFUyA9IGdxbGBcclxuICAgIHF1ZXJ5IEdldFBlbmRpbmdTZWFyY2hJbmRleFVwZGF0ZXMge1xyXG4gICAgICAgIHBlbmRpbmdTZWFyY2hJbmRleFVwZGF0ZXNcclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBSVU5fUEVORElOR19TRUFSQ0hfSU5ERVhfVVBEQVRFUyA9IGdxbGBcclxuICAgIG11dGF0aW9uIFJ1blBlbmRpbmdTZWFyY2hJbmRleFVwZGF0ZXMge1xyXG4gICAgICAgIHJ1blBlbmRpbmdTZWFyY2hJbmRleFVwZGF0ZXMge1xyXG4gICAgICAgICAgICBzdWNjZXNzXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5gO1xyXG4iXX0=
768
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MtZGVmaW5pdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL2RhdGEvZGVmaW5pdGlvbnMvc2V0dGluZ3MtZGVmaW5pdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFDSCxtQ0FBbUMsRUFDbkMsK0JBQStCLEVBQy9CLHFCQUFxQixHQUN4QixNQUFNLHNCQUFzQixDQUFDO0FBRTlCLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Q0FjbEMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7O0NBWWxDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7Ozs7O0NBV3pDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFBOzs7Ozs7TUFNeEIsZ0JBQWdCO0NBQ3JCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsR0FBRyxDQUFBOzs7Ozs7TUFNM0IsZ0JBQWdCO0NBQ3JCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsR0FBRyxDQUFBOzs7Ozs7TUFNM0IsZ0JBQWdCO0NBQ3JCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsR0FBRyxDQUFBOzs7Ozs7O0NBT2hDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7O01BVTFCLGdCQUFnQjtDQUNyQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7TUFjdEIsYUFBYTtDQUNsQixDQUFDO0FBRUYsTUFB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RyxDQUFBOzs7Ozs7TUFNekIsaUJBQWlCO0NBQ3RCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7TUFTMUIsaUJBQWlCO0NBQ3RCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsR0FBRyxDQUFBOzs7Ozs7TUFNM0IsaUJBQWlCO0NBQ3RCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7Q0FPcEMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUE7Ozs7OztNQU12QixpQkFBaUI7Q0FDdEIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUE7Ozs7OztNQU1wQixpQkFBaUI7Q0FDdEIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUFHLEdBQUcsQ0FBQTs7OztDQUlsRCxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Q0FNbEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdxbCB9IGZyb20gJ2Fwb2xsby1hbmd1bGFyJztcclxuXHJcbmltcG9ydCB7XHJcbiAgICBDT05GSUdVUkFCTEVfT1BFUkFUSU9OX0RFRl9GUkFHTUVOVCxcclxuICAgIENPTkZJR1VSQUJMRV9PUEVSQVRJT05fRlJBR01FTlQsXHJcbiAgICBFUlJPUl9SRVNVTFRfRlJBR01FTlQsXHJcbn0gZnJvbSAnLi9zaGFyZWQtZGVmaW5pdGlvbnMnO1xyXG5cclxuZXhwb3J0IGNvbnN0IENPVU5UUllfRlJBR01FTlQgPSBncWxgXHJcbiAgICBmcmFnbWVudCBDb3VudHJ5IG9uIENvdW50cnkge1xyXG4gICAgICAgIGlkXHJcbiAgICAgICAgY3JlYXRlZEF0XHJcbiAgICAgICAgdXBkYXRlZEF0XHJcbiAgICAgICAgY29kZVxyXG4gICAgICAgIG5hbWVcclxuICAgICAgICBlbmFibGVkXHJcbiAgICAgICAgdHJhbnNsYXRpb25zIHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgbGFuZ3VhZ2VDb2RlXHJcbiAgICAgICAgICAgIG5hbWVcclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgR0VUX0NPVU5UUllfTElTVCA9IGdxbGBcclxuICAgIHF1ZXJ5IEdldENvdW50cnlMaXN0KCRvcHRpb25zOiBDb3VudHJ5TGlzdE9wdGlvbnMpIHtcclxuICAgICAgICBjb3VudHJpZXMob3B0aW9uczogJG9wdGlvbnMpIHtcclxuICAgICAgICAgICAgaXRlbXMge1xyXG4gICAgICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgICAgIGNvZGVcclxuICAgICAgICAgICAgICAgIG5hbWVcclxuICAgICAgICAgICAgICAgIGVuYWJsZWRcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0b3RhbEl0ZW1zXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEdFVF9BVkFJTEFCTEVfQ09VTlRSSUVTID0gZ3FsYFxyXG4gICAgcXVlcnkgR2V0QXZhaWxhYmxlQ291bnRyaWVzIHtcclxuICAgICAgICBjb3VudHJpZXMob3B0aW9uczogeyBmaWx0ZXI6IHsgZW5hYmxlZDogeyBlcTogdHJ1ZSB9IH0gfSkge1xyXG4gICAgICAgICAgICBpdGVtcyB7XHJcbiAgICAgICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICAgICAgY29kZVxyXG4gICAgICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgICAgICAgICAgZW5hYmxlZFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEdFVF9DT1VOVFJZID0gZ3FsYFxyXG4gICAgcXVlcnkgR2V0Q291bnRyeSgkaWQ6IElEISkge1xyXG4gICAgICAgIGNvdW50cnkoaWQ6ICRpZCkge1xyXG4gICAgICAgICAgICAuLi5Db3VudHJ5XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtDT1VOVFJZX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IENSRUFURV9DT1VOVFJZID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gQ3JlYXRlQ291bnRyeSgkaW5wdXQ6IENyZWF0ZUNvdW50cnlJbnB1dCEpIHtcclxuICAgICAgICBjcmVhdGVDb3VudHJ5KGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgLi4uQ291bnRyeVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7Q09VTlRSWV9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBVUERBVEVfQ09VTlRSWSA9IGdxbGBcclxuICAgIG11dGF0aW9uIFVwZGF0ZUNvdW50cnkoJGlucHV0OiBVcGRhdGVDb3VudHJ5SW5wdXQhKSB7XHJcbiAgICAgICAgdXBkYXRlQ291bnRyeShpbnB1dDogJGlucHV0KSB7XHJcbiAgICAgICAgICAgIC4uLkNvdW50cnlcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke0NPVU5UUllfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgREVMRVRFX0NPVU5UUlkgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBEZWxldGVDb3VudHJ5KCRpZDogSUQhKSB7XHJcbiAgICAgICAgZGVsZXRlQ291bnRyeShpZDogJGlkKSB7XHJcbiAgICAgICAgICAgIHJlc3VsdFxyXG4gICAgICAgICAgICBtZXNzYWdlXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFpPTkVfRlJBR01FTlQgPSBncWxgXHJcbiAgICBmcmFnbWVudCBab25lIG9uIFpvbmUge1xyXG4gICAgICAgIGlkXHJcbiAgICAgICAgY3JlYXRlZEF0XHJcbiAgICAgICAgdXBkYXRlZEF0XHJcbiAgICAgICAgbmFtZVxyXG4gICAgICAgIG1lbWJlcnMge1xyXG4gICAgICAgICAgICAuLi5Db3VudHJ5XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtDT1VOVFJZX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEdFVF9aT05FUyA9IGdxbGBcclxuICAgIHF1ZXJ5IEdldFpvbmVzIHtcclxuICAgICAgICB6b25lcyB7XHJcbiAgICAgICAgICAgIC4uLlpvbmVcclxuICAgICAgICAgICAgbWVtYmVycyB7XHJcbiAgICAgICAgICAgICAgICBjcmVhdGVkQXRcclxuICAgICAgICAgICAgICAgIHVwZGF0ZWRBdFxyXG4gICAgICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgICAgIG5hbWVcclxuICAgICAgICAgICAgICAgIGNvZGVcclxuICAgICAgICAgICAgICAgIGVuYWJsZWRcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7Wk9ORV9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBHRVRfWk9ORSA9IGdxbGBcclxuICAgIHF1ZXJ5IEdldFpvbmUoJGlkOiBJRCEpIHtcclxuICAgICAgICB6b25lKGlkOiAkaWQpIHtcclxuICAgICAgICAgICAgLi4uWm9uZVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7Wk9ORV9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBDUkVBVEVfWk9ORSA9IGdxbGBcclxuICAgIG11dGF0aW9uIENyZWF0ZVpvbmUoJGlucHV0OiBDcmVhdGVab25lSW5wdXQhKSB7XHJcbiAgICAgICAgY3JlYXRlWm9uZShpbnB1dDogJGlucHV0KSB7XHJcbiAgICAgICAgICAgIC4uLlpvbmVcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke1pPTkVfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgVVBEQVRFX1pPTkUgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBVcGRhdGVab25lKCRpbnB1dDogVXBkYXRlWm9uZUlucHV0ISkge1xyXG4gICAgICAgIHVwZGF0ZVpvbmUoaW5wdXQ6ICRpbnB1dCkge1xyXG4gICAgICAgICAgICAuLi5ab25lXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtaT05FX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IERFTEVURV9aT05FID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gRGVsZXRlWm9uZSgkaWQ6IElEISkge1xyXG4gICAgICAgIGRlbGV0ZVpvbmUoaWQ6ICRpZCkge1xyXG4gICAgICAgICAgICBtZXNzYWdlXHJcbiAgICAgICAgICAgIHJlc3VsdFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBBRERfTUVNQkVSU19UT19aT05FID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gQWRkTWVtYmVyc1RvWm9uZSgkem9uZUlkOiBJRCEsICRtZW1iZXJJZHM6IFtJRCFdISkge1xyXG4gICAgICAgIGFkZE1lbWJlcnNUb1pvbmUoem9uZUlkOiAkem9uZUlkLCBtZW1iZXJJZHM6ICRtZW1iZXJJZHMpIHtcclxuICAgICAgICAgICAgLi4uWm9uZVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7Wk9ORV9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBSRU1PVkVfTUVNQkVSU19GUk9NX1pPTkUgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBSZW1vdmVNZW1iZXJzRnJvbVpvbmUoJHpvbmVJZDogSUQhLCAkbWVtYmVySWRzOiBbSUQhXSEpIHtcclxuICAgICAgICByZW1vdmVNZW1iZXJzRnJvbVpvbmUoem9uZUlkOiAkem9uZUlkLCBtZW1iZXJJZHM6ICRtZW1iZXJJZHMpIHtcclxuICAgICAgICAgICAgLi4uWm9uZVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7Wk9ORV9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBUQVhfQ0FURUdPUllfRlJBR01FTlQgPSBncWxgXHJcbiAgICBmcmFnbWVudCBUYXhDYXRlZ29yeSBvbiBUYXhDYXRlZ29yeSB7XHJcbiAgICAgICAgaWRcclxuICAgICAgICBjcmVhdGVkQXRcclxuICAgICAgICB1cGRhdGVkQXRcclxuICAgICAgICBuYW1lXHJcbiAgICAgICAgaXNEZWZhdWx0XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgR0VUX1RBWF9DQVRFR09SSUVTID0gZ3FsYFxyXG4gICAgcXVlcnkgR2V0VGF4Q2F0ZWdvcmllcyB7XHJcbiAgICAgICAgdGF4Q2F0ZWdvcmllcyB7XHJcbiAgICAgICAgICAgIC4uLlRheENhdGVnb3J5XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtUQVhfQ0FURUdPUllfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgR0VUX1RBWF9DQVRFR09SWSA9IGdxbGBcclxuICAgIHF1ZXJ5IEdldFRheENhdGVnb3J5KCRpZDogSUQhKSB7XHJcbiAgICAgICAgdGF4Q2F0ZWdvcnkoaWQ6ICRpZCkge1xyXG4gICAgICAgICAgICAuLi5UYXhDYXRlZ29yeVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7VEFYX0NBVEVHT1JZX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IENSRUFURV9UQVhfQ0FURUdPUlkgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBDcmVhdGVUYXhDYXRlZ29yeSgkaW5wdXQ6IENyZWF0ZVRheENhdGVnb3J5SW5wdXQhKSB7XHJcbiAgICAgICAgY3JlYXRlVGF4Q2F0ZWdvcnkoaW5wdXQ6ICRpbnB1dCkge1xyXG4gICAgICAgICAgICAuLi5UYXhDYXRlZ29yeVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7VEFYX0NBVEVHT1JZX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFVQREFURV9UQVhfQ0FURUdPUlkgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBVcGRhdGVUYXhDYXRlZ29yeSgkaW5wdXQ6IFVwZGF0ZVRheENhdGVnb3J5SW5wdXQhKSB7XHJcbiAgICAgICAgdXBkYXRlVGF4Q2F0ZWdvcnkoaW5wdXQ6ICRpbnB1dCkge1xyXG4gICAgICAgICAgICAuLi5UYXhDYXRlZ29yeVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7VEFYX0NBVEVHT1JZX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IERFTEVURV9UQVhfQ0FURUdPUlkgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBEZWxldGVUYXhDYXRlZ29yeSgkaWQ6IElEISkge1xyXG4gICAgICAgIGRlbGV0ZVRheENhdGVnb3J5KGlkOiAkaWQpIHtcclxuICAgICAgICAgICAgcmVzdWx0XHJcbiAgICAgICAgICAgIG1lc3NhZ2VcclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgVEFYX1JBVEVfRlJBR01FTlQgPSBncWxgXHJcbiAgICBmcmFnbWVudCBUYXhSYXRlIG9uIFRheFJhdGUge1xyXG4gICAgICAgIGlkXHJcbiAgICAgICAgY3JlYXRlZEF0XHJcbiAgICAgICAgdXBkYXRlZEF0XHJcbiAgICAgICAgbmFtZVxyXG4gICAgICAgIGVuYWJsZWRcclxuICAgICAgICB2YWx1ZVxyXG4gICAgICAgIGNhdGVnb3J5IHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgIH1cclxuICAgICAgICB6b25lIHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgIH1cclxuICAgICAgICBjdXN0b21lckdyb3VwIHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBHRVRfVEFYX1JBVEVfTElTVCA9IGdxbGBcclxuICAgIHF1ZXJ5IEdldFRheFJhdGVMaXN0KCRvcHRpb25zOiBUYXhSYXRlTGlzdE9wdGlvbnMpIHtcclxuICAgICAgICB0YXhSYXRlcyhvcHRpb25zOiAkb3B0aW9ucykge1xyXG4gICAgICAgICAgICBpdGVtcyB7XHJcbiAgICAgICAgICAgICAgICAuLi5UYXhSYXRlXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdG90YWxJdGVtc1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7VEFYX1JBVEVfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgR0VUX1RBWF9SQVRFX0xJU1RfU0lNUExFID0gZ3FsYFxyXG4gICAgcXVlcnkgR2V0VGF4UmF0ZUxpc3RTaW1wbGUoJG9wdGlvbnM6IFRheFJhdGVMaXN0T3B0aW9ucykge1xyXG4gICAgICAgIHRheFJhdGVzKG9wdGlvbnM6ICRvcHRpb25zKSB7XHJcbiAgICAgICAgICAgIGl0ZW1zIHtcclxuICAgICAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgICAgICBjcmVhdGVkQXRcclxuICAgICAgICAgICAgICAgIHVwZGF0ZWRBdFxyXG4gICAgICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgICAgICAgICAgZW5hYmxlZFxyXG4gICAgICAgICAgICAgICAgdmFsdWVcclxuICAgICAgICAgICAgICAgIGNhdGVnb3J5IHtcclxuICAgICAgICAgICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICAgICAgICAgIG5hbWVcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHpvbmUge1xyXG4gICAgICAgICAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRvdGFsSXRlbXNcclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgR0VUX1RBWF9SQVRFID0gZ3FsYFxyXG4gICAgcXVlcnkgR2V0VGF4UmF0ZSgkaWQ6IElEISkge1xyXG4gICAgICAgIHRheFJhdGUoaWQ6ICRpZCkge1xyXG4gICAgICAgICAgICAuLi5UYXhSYXRlXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtUQVhfUkFURV9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBDUkVBVEVfVEFYX1JBVEUgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBDcmVhdGVUYXhSYXRlKCRpbnB1dDogQ3JlYXRlVGF4UmF0ZUlucHV0ISkge1xyXG4gICAgICAgIGNyZWF0ZVRheFJhdGUoaW5wdXQ6ICRpbnB1dCkge1xyXG4gICAgICAgICAgICAuLi5UYXhSYXRlXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtUQVhfUkFURV9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBVUERBVEVfVEFYX1JBVEUgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBVcGRhdGVUYXhSYXRlKCRpbnB1dDogVXBkYXRlVGF4UmF0ZUlucHV0ISkge1xyXG4gICAgICAgIHVwZGF0ZVRheFJhdGUoaW5wdXQ6ICRpbnB1dCkge1xyXG4gICAgICAgICAgICAuLi5UYXhSYXRlXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtUQVhfUkFURV9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBERUxFVEVfVEFYX1JBVEUgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBEZWxldGVUYXhSYXRlKCRpZDogSUQhKSB7XHJcbiAgICAgICAgZGVsZXRlVGF4UmF0ZShpZDogJGlkKSB7XHJcbiAgICAgICAgICAgIHJlc3VsdFxyXG4gICAgICAgICAgICBtZXNzYWdlXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IENIQU5ORUxfRlJBR01FTlQgPSBncWxgXHJcbiAgICBmcmFnbWVudCBDaGFubmVsIG9uIENoYW5uZWwge1xyXG4gICAgICAgIGlkXHJcbiAgICAgICAgY3JlYXRlZEF0XHJcbiAgICAgICAgdXBkYXRlZEF0XHJcbiAgICAgICAgY29kZVxyXG4gICAgICAgIHRva2VuXHJcbiAgICAgICAgcHJpY2VzSW5jbHVkZVRheFxyXG4gICAgICAgIGN1cnJlbmN5Q29kZVxyXG4gICAgICAgIGRlZmF1bHRMYW5ndWFnZUNvZGVcclxuICAgICAgICBkZWZhdWx0U2hpcHBpbmdab25lIHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgIH1cclxuICAgICAgICBkZWZhdWx0VGF4Wm9uZSB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIG5hbWVcclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgR0VUX0NIQU5ORUxTID0gZ3FsYFxyXG4gICAgcXVlcnkgR2V0Q2hhbm5lbHMge1xyXG4gICAgICAgIGNoYW5uZWxzIHtcclxuICAgICAgICAgICAgLi4uQ2hhbm5lbFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7Q0hBTk5FTF9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBHRVRfQ0hBTk5FTCA9IGdxbGBcclxuICAgIHF1ZXJ5IEdldENoYW5uZWwoJGlkOiBJRCEpIHtcclxuICAgICAgICBjaGFubmVsKGlkOiAkaWQpIHtcclxuICAgICAgICAgICAgLi4uQ2hhbm5lbFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7Q0hBTk5FTF9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBHRVRfQUNUSVZFX0NIQU5ORUwgPSBncWxgXHJcbiAgICBxdWVyeSBHZXRBY3RpdmVDaGFubmVsIHtcclxuICAgICAgICBhY3RpdmVDaGFubmVsIHtcclxuICAgICAgICAgICAgLi4uQ2hhbm5lbFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7Q0hBTk5FTF9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBDUkVBVEVfQ0hBTk5FTCA9IGdxbGBcclxuICAgIG11dGF0aW9uIENyZWF0ZUNoYW5uZWwoJGlucHV0OiBDcmVhdGVDaGFubmVsSW5wdXQhKSB7XHJcbiAgICAgICAgY3JlYXRlQ2hhbm5lbChpbnB1dDogJGlucHV0KSB7XHJcbiAgICAgICAgICAgIC4uLkNoYW5uZWxcclxuICAgICAgICAgICAgLi4uRXJyb3JSZXN1bHRcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke0NIQU5ORUxfRlJBR01FTlR9XHJcbiAgICAke0VSUk9SX1JFU1VMVF9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBVUERBVEVfQ0hBTk5FTCA9IGdxbGBcclxuICAgIG11dGF0aW9uIFVwZGF0ZUNoYW5uZWwoJGlucHV0OiBVcGRhdGVDaGFubmVsSW5wdXQhKSB7XHJcbiAgICAgICAgdXBkYXRlQ2hhbm5lbChpbnB1dDogJGlucHV0KSB7XHJcbiAgICAgICAgICAgIC4uLkNoYW5uZWxcclxuICAgICAgICAgICAgLi4uRXJyb3JSZXN1bHRcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke0NIQU5ORUxfRlJBR01FTlR9XHJcbiAgICAke0VSUk9SX1JFU1VMVF9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBERUxFVEVfQ0hBTk5FTCA9IGdxbGBcclxuICAgIG11dGF0aW9uIERlbGV0ZUNoYW5uZWwoJGlkOiBJRCEpIHtcclxuICAgICAgICBkZWxldGVDaGFubmVsKGlkOiAkaWQpIHtcclxuICAgICAgICAgICAgcmVzdWx0XHJcbiAgICAgICAgICAgIG1lc3NhZ2VcclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgUEFZTUVOVF9NRVRIT0RfRlJBR01FTlQgPSBncWxgXHJcbiAgICBmcmFnbWVudCBQYXltZW50TWV0aG9kIG9uIFBheW1lbnRNZXRob2Qge1xyXG4gICAgICAgIGlkXHJcbiAgICAgICAgY3JlYXRlZEF0XHJcbiAgICAgICAgdXBkYXRlZEF0XHJcbiAgICAgICAgbmFtZVxyXG4gICAgICAgIGNvZGVcclxuICAgICAgICBkZXNjcmlwdGlvblxyXG4gICAgICAgIGVuYWJsZWRcclxuICAgICAgICBjaGVja2VyIHtcclxuICAgICAgICAgICAgLi4uQ29uZmlndXJhYmxlT3BlcmF0aW9uXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGhhbmRsZXIge1xyXG4gICAgICAgICAgICAuLi5Db25maWd1cmFibGVPcGVyYXRpb25cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke0NPTkZJR1VSQUJMRV9PUEVSQVRJT05fRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgR0VUX1BBWU1FTlRfTUVUSE9EX0xJU1QgPSBncWxgXHJcbiAgICBxdWVyeSBHZXRQYXltZW50TWV0aG9kTGlzdCgkb3B0aW9uczogUGF5bWVudE1ldGhvZExpc3RPcHRpb25zISkge1xyXG4gICAgICAgIHBheW1lbnRNZXRob2RzKG9wdGlvbnM6ICRvcHRpb25zKSB7XHJcbiAgICAgICAgICAgIGl0ZW1zIHtcclxuICAgICAgICAgICAgICAgIC4uLlBheW1lbnRNZXRob2RcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0b3RhbEl0ZW1zXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtQQVlNRU5UX01FVEhPRF9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBHRVRfUEFZTUVOVF9NRVRIT0RfT1BFUkFUSU9OUyA9IGdxbGBcclxuICAgIHF1ZXJ5IEdldFBheW1lbnRNZXRob2RPcGVyYXRpb25zIHtcclxuICAgICAgICBwYXltZW50TWV0aG9kRWxpZ2liaWxpdHlDaGVja2VycyB7XHJcbiAgICAgICAgICAgIC4uLkNvbmZpZ3VyYWJsZU9wZXJhdGlvbkRlZlxyXG4gICAgICAgIH1cclxuICAgICAgICBwYXltZW50TWV0aG9kSGFuZGxlcnMge1xyXG4gICAgICAgICAgICAuLi5Db25maWd1cmFibGVPcGVyYXRpb25EZWZcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke0NPTkZJR1VSQUJMRV9PUEVSQVRJT05fREVGX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEdFVF9QQVlNRU5UX01FVEhPRCA9IGdxbGBcclxuICAgIHF1ZXJ5IEdldFBheW1lbnRNZXRob2QoJGlkOiBJRCEpIHtcclxuICAgICAgICBwYXltZW50TWV0aG9kKGlkOiAkaWQpIHtcclxuICAgICAgICAgICAgLi4uUGF5bWVudE1ldGhvZFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7UEFZTUVOVF9NRVRIT0RfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgQ1JFQVRFX1BBWU1FTlRfTUVUSE9EID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gQ3JlYXRlUGF5bWVudE1ldGhvZCgkaW5wdXQ6IENyZWF0ZVBheW1lbnRNZXRob2RJbnB1dCEpIHtcclxuICAgICAgICBjcmVhdGVQYXltZW50TWV0aG9kKGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgLi4uUGF5bWVudE1ldGhvZFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7UEFZTUVOVF9NRVRIT0RfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgVVBEQVRFX1BBWU1FTlRfTUVUSE9EID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gVXBkYXRlUGF5bWVudE1ldGhvZCgkaW5wdXQ6IFVwZGF0ZVBheW1lbnRNZXRob2RJbnB1dCEpIHtcclxuICAgICAgICB1cGRhdGVQYXltZW50TWV0aG9kKGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgLi4uUGF5bWVudE1ldGhvZFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7UEFZTUVOVF9NRVRIT0RfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgREVMRVRFX1BBWU1FTlRfTUVUSE9EID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gRGVsZXRlUGF5bWVudE1ldGhvZCgkaWQ6IElEISwgJGZvcmNlOiBCb29sZWFuKSB7XHJcbiAgICAgICAgZGVsZXRlUGF5bWVudE1ldGhvZChpZDogJGlkLCBmb3JjZTogJGZvcmNlKSB7XHJcbiAgICAgICAgICAgIHJlc3VsdFxyXG4gICAgICAgICAgICBtZXNzYWdlXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEdMT0JBTF9TRVRUSU5HU19GUkFHTUVOVCA9IGdxbGBcclxuICAgIGZyYWdtZW50IEdsb2JhbFNldHRpbmdzIG9uIEdsb2JhbFNldHRpbmdzIHtcclxuICAgICAgICBpZFxyXG4gICAgICAgIGF2YWlsYWJsZUxhbmd1YWdlc1xyXG4gICAgICAgIHRyYWNrSW52ZW50b3J5XHJcbiAgICAgICAgb3V0T2ZTdG9ja1RocmVzaG9sZFxyXG4gICAgICAgIHNlcnZlckNvbmZpZyB7XHJcbiAgICAgICAgICAgIHBlcm1pc3Npb25zIHtcclxuICAgICAgICAgICAgICAgIG5hbWVcclxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uXHJcbiAgICAgICAgICAgICAgICBhc3NpZ25hYmxlXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgb3JkZXJQcm9jZXNzIHtcclxuICAgICAgICAgICAgICAgIG5hbWVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBHRVRfR0xPQkFMX1NFVFRJTkdTID0gZ3FsYFxyXG4gICAgcXVlcnkgR2V0R2xvYmFsU2V0dGluZ3Mge1xyXG4gICAgICAgIGdsb2JhbFNldHRpbmdzIHtcclxuICAgICAgICAgICAgLi4uR2xvYmFsU2V0dGluZ3NcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke0dMT0JBTF9TRVRUSU5HU19GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBVUERBVEVfR0xPQkFMX1NFVFRJTkdTID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gVXBkYXRlR2xvYmFsU2V0dGluZ3MoJGlucHV0OiBVcGRhdGVHbG9iYWxTZXR0aW5nc0lucHV0ISkge1xyXG4gICAgICAgIHVwZGF0ZUdsb2JhbFNldHRpbmdzKGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgLi4uR2xvYmFsU2V0dGluZ3NcclxuICAgICAgICAgICAgLi4uRXJyb3JSZXN1bHRcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke0dMT0JBTF9TRVRUSU5HU19GUkFHTUVOVH1cclxuICAgICR7RVJST1JfUkVTVUxUX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IENVU1RPTV9GSUVMRF9DT05GSUdfRlJBR01FTlQgPSBncWxgXHJcbiAgICBmcmFnbWVudCBDdXN0b21GaWVsZENvbmZpZyBvbiBDdXN0b21GaWVsZCB7XHJcbiAgICAgICAgbmFtZVxyXG4gICAgICAgIHR5cGVcclxuICAgICAgICBsaXN0XHJcbiAgICAgICAgZGVzY3JpcHRpb24ge1xyXG4gICAgICAgICAgICBsYW5ndWFnZUNvZGVcclxuICAgICAgICAgICAgdmFsdWVcclxuICAgICAgICB9XHJcbiAgICAgICAgbGFiZWwge1xyXG4gICAgICAgICAgICBsYW5ndWFnZUNvZGVcclxuICAgICAgICAgICAgdmFsdWVcclxuICAgICAgICB9XHJcbiAgICAgICAgcmVhZG9ubHlcclxuICAgICAgICBudWxsYWJsZVxyXG4gICAgICAgIHVpXHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgU1RSSU5HX0NVU1RPTV9GSUVMRF9GUkFHTUVOVCA9IGdxbGBcclxuICAgIGZyYWdtZW50IFN0cmluZ0N1c3RvbUZpZWxkIG9uIFN0cmluZ0N1c3RvbUZpZWxkQ29uZmlnIHtcclxuICAgICAgICAuLi5DdXN0b21GaWVsZENvbmZpZ1xyXG4gICAgICAgIHBhdHRlcm5cclxuICAgICAgICBvcHRpb25zIHtcclxuICAgICAgICAgICAgbGFiZWwge1xyXG4gICAgICAgICAgICAgICAgbGFuZ3VhZ2VDb2RlXHJcbiAgICAgICAgICAgICAgICB2YWx1ZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHZhbHVlXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtDVVNUT01fRklFTERfQ09ORklHX0ZSQUdNRU5UfVxyXG5gO1xyXG5leHBvcnQgY29uc3QgTE9DQUxFX1NUUklOR19DVVNUT01fRklFTERfRlJBR01FTlQgPSBncWxgXHJcbiAgICBmcmFnbWVudCBMb2NhbGVTdHJpbmdDdXN0b21GaWVsZCBvbiBMb2NhbGVTdHJpbmdDdXN0b21GaWVsZENvbmZpZyB7XHJcbiAgICAgICAgLi4uQ3VzdG9tRmllbGRDb25maWdcclxuICAgICAgICBwYXR0ZXJuXHJcbiAgICB9XHJcbiAgICAke0NVU1RPTV9GSUVMRF9DT05GSUdfRlJBR01FTlR9XHJcbmA7XHJcbmV4cG9ydCBjb25zdCBURVhUX0NVU1RPTV9GSUVMRF9GUkFHTUVOVCA9IGdxbGBcclxuICAgIGZyYWdtZW50IFRleHRDdXN0b21GaWVsZCBvbiBUZXh0Q3VzdG9tRmllbGRDb25maWcge1xyXG4gICAgICAgIC4uLkN1c3RvbUZpZWxkQ29uZmlnXHJcbiAgICB9XHJcbiAgICAke0NVU1RPTV9GSUVMRF9DT05GSUdfRlJBR01FTlR9XHJcbmA7XHJcbmV4cG9ydCBjb25zdCBCT09MRUFOX0NVU1RPTV9GSUVMRF9GUkFHTUVOVCA9IGdxbGBcclxuICAgIGZyYWdtZW50IEJvb2xlYW5DdXN0b21GaWVsZCBvbiBCb29sZWFuQ3VzdG9tRmllbGRDb25maWcge1xyXG4gICAgICAgIC4uLkN1c3RvbUZpZWxkQ29uZmlnXHJcbiAgICB9XHJcbiAgICAke0NVU1RPTV9GSUVMRF9DT05GSUdfRlJBR01FTlR9XHJcbmA7XHJcbmV4cG9ydCBjb25zdCBJTlRfQ1VTVE9NX0ZJRUxEX0ZSQUdNRU5UID0gZ3FsYFxyXG4gICAgZnJhZ21lbnQgSW50Q3VzdG9tRmllbGQgb24gSW50Q3VzdG9tRmllbGRDb25maWcge1xyXG4gICAgICAgIC4uLkN1c3RvbUZpZWxkQ29uZmlnXHJcbiAgICAgICAgaW50TWluOiBtaW5cclxuICAgICAgICBpbnRNYXg6IG1heFxyXG4gICAgICAgIGludFN0ZXA6IHN0ZXBcclxuICAgIH1cclxuICAgICR7Q1VTVE9NX0ZJRUxEX0NPTkZJR19GUkFHTUVOVH1cclxuYDtcclxuZXhwb3J0IGNvbnN0IEZMT0FUX0NVU1RPTV9GSUVMRF9GUkFHTUVOVCA9IGdxbGBcclxuICAgIGZyYWdtZW50IEZsb2F0Q3VzdG9tRmllbGQgb24gRmxvYXRDdXN0b21GaWVsZENvbmZpZyB7XHJcbiAgICAgICAgLi4uQ3VzdG9tRmllbGRDb25maWdcclxuICAgICAgICBmbG9hdE1pbjogbWluXHJcbiAgICAgICAgZmxvYXRNYXg6IG1heFxyXG4gICAgICAgIGZsb2F0U3RlcDogc3RlcFxyXG4gICAgfVxyXG4gICAgJHtDVVNUT01fRklFTERfQ09ORklHX0ZSQUdNRU5UfVxyXG5gO1xyXG5leHBvcnQgY29uc3QgREFURV9USU1FX0NVU1RPTV9GSUVMRF9GUkFHTUVOVCA9IGdxbGBcclxuICAgIGZyYWdtZW50IERhdGVUaW1lQ3VzdG9tRmllbGQgb24gRGF0ZVRpbWVDdXN0b21GaWVsZENvbmZpZyB7XHJcbiAgICAgICAgLi4uQ3VzdG9tRmllbGRDb25maWdcclxuICAgICAgICBkYXRldGltZU1pbjogbWluXHJcbiAgICAgICAgZGF0ZXRpbWVNYXg6IG1heFxyXG4gICAgICAgIGRhdGV0aW1lU3RlcDogc3RlcFxyXG4gICAgfVxyXG4gICAgJHtDVVNUT01fRklFTERfQ09ORklHX0ZSQUdNRU5UfVxyXG5gO1xyXG5leHBvcnQgY29uc3QgUkVMQVRJT05fQ1VTVE9NX0ZJRUxEX0ZSQUdNRU5UID0gZ3FsYFxyXG4gICAgZnJhZ21lbnQgUmVsYXRpb25DdXN0b21GaWVsZCBvbiBSZWxhdGlvbkN1c3RvbUZpZWxkQ29uZmlnIHtcclxuICAgICAgICAuLi5DdXN0b21GaWVsZENvbmZpZ1xyXG4gICAgICAgIGVudGl0eVxyXG4gICAgICAgIHNjYWxhckZpZWxkc1xyXG4gICAgfVxyXG4gICAgJHtDVVNUT01fRklFTERfQ09ORklHX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEFMTF9DVVNUT01fRklFTERTX0ZSQUdNRU5UID0gZ3FsYFxyXG4gICAgZnJhZ21lbnQgQ3VzdG9tRmllbGRzIG9uIEN1c3RvbUZpZWxkIHtcclxuICAgICAgICAuLi4gb24gU3RyaW5nQ3VzdG9tRmllbGRDb25maWcge1xyXG4gICAgICAgICAgICAuLi5TdHJpbmdDdXN0b21GaWVsZFxyXG4gICAgICAgIH1cclxuICAgICAgICAuLi4gb24gTG9jYWxlU3RyaW5nQ3VzdG9tRmllbGRDb25maWcge1xyXG4gICAgICAgICAgICAuLi5Mb2NhbGVTdHJpbmdDdXN0b21GaWVsZFxyXG4gICAgICAgIH1cclxuICAgICAgICAuLi4gb24gVGV4dEN1c3RvbUZpZWxkQ29uZmlnIHtcclxuICAgICAgICAgICAgLi4uVGV4dEN1c3RvbUZpZWxkXHJcbiAgICAgICAgfVxyXG4gICAgICAgIC4uLiBvbiBCb29sZWFuQ3VzdG9tRmllbGRDb25maWcge1xyXG4gICAgICAgICAgICAuLi5Cb29sZWFuQ3VzdG9tRmllbGRcclxuICAgICAgICB9XHJcbiAgICAgICAgLi4uIG9uIEludEN1c3RvbUZpZWxkQ29uZmlnIHtcclxuICAgICAgICAgICAgLi4uSW50Q3VzdG9tRmllbGRcclxuICAgICAgICB9XHJcbiAgICAgICAgLi4uIG9uIEZsb2F0Q3VzdG9tRmllbGRDb25maWcge1xyXG4gICAgICAgICAgICAuLi5GbG9hdEN1c3RvbUZpZWxkXHJcbiAgICAgICAgfVxyXG4gICAgICAgIC4uLiBvbiBEYXRlVGltZUN1c3RvbUZpZWxkQ29uZmlnIHtcclxuICAgICAgICAgICAgLi4uRGF0ZVRpbWVDdXN0b21GaWVsZFxyXG4gICAgICAgIH1cclxuICAgICAgICAuLi4gb24gUmVsYXRpb25DdXN0b21GaWVsZENvbmZpZyB7XHJcbiAgICAgICAgICAgIC4uLlJlbGF0aW9uQ3VzdG9tRmllbGRcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke1NUUklOR19DVVNUT01fRklFTERfRlJBR01FTlR9XHJcbiAgICAke0xPQ0FMRV9TVFJJTkdfQ1VTVE9NX0ZJRUxEX0ZSQUdNRU5UfVxyXG4gICAgJHtURVhUX0NVU1RPTV9GSUVMRF9GUkFHTUVOVH1cclxuICAgICR7Qk9PTEVBTl9DVVNUT01fRklFTERfRlJBR01FTlR9XHJcbiAgICAke0lOVF9DVVNUT01fRklFTERfRlJBR01FTlR9XHJcbiAgICAke0ZMT0FUX0NVU1RPTV9GSUVMRF9GUkFHTUVOVH1cclxuICAgICR7REFURV9USU1FX0NVU1RPTV9GSUVMRF9GUkFHTUVOVH1cclxuICAgICR7UkVMQVRJT05fQ1VTVE9NX0ZJRUxEX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEdFVF9TRVJWRVJfQ09ORklHID0gZ3FsYFxyXG4gICAgcXVlcnkgR2V0U2VydmVyQ29uZmlnIHtcclxuICAgICAgICBnbG9iYWxTZXR0aW5ncyB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIHNlcnZlckNvbmZpZyB7XHJcbiAgICAgICAgICAgICAgICBvcmRlclByb2Nlc3Mge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWVcclxuICAgICAgICAgICAgICAgICAgICB0b1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcGVybWl0dGVkQXNzZXRUeXBlc1xyXG4gICAgICAgICAgICAgICAgcGVybWlzc2lvbnMge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWVcclxuICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvblxyXG4gICAgICAgICAgICAgICAgICAgIGFzc2lnbmFibGVcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGN1c3RvbUZpZWxkQ29uZmlnIHtcclxuICAgICAgICAgICAgICAgICAgICBBZGRyZXNzIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLi4uQ3VzdG9tRmllbGRzXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIEFkbWluaXN0cmF0b3Ige1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5DdXN0b21GaWVsZHNcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgQXNzZXQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5DdXN0b21GaWVsZHNcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgQ2hhbm5lbCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLkN1c3RvbUZpZWxkc1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aW9uIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLi4uQ3VzdG9tRmllbGRzXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIENvdW50cnkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5DdXN0b21GaWVsZHNcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgQ3VzdG9tZXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5DdXN0b21GaWVsZHNcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgQ3VzdG9tZXJHcm91cCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLkN1c3RvbUZpZWxkc1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBGYWNldCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLkN1c3RvbUZpZWxkc1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBGYWNldFZhbHVlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLi4uQ3VzdG9tRmllbGRzXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIEZ1bGZpbGxtZW50IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLi4uQ3VzdG9tRmllbGRzXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIEdsb2JhbFNldHRpbmdzIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLi4uQ3VzdG9tRmllbGRzXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIE9yZGVyIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLi4uQ3VzdG9tRmllbGRzXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIE9yZGVyTGluZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLkN1c3RvbUZpZWxkc1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBQYXltZW50TWV0aG9kIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLi4uQ3VzdG9tRmllbGRzXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIFByb2R1Y3Qge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5DdXN0b21GaWVsZHNcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgUHJvZHVjdE9wdGlvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLkN1c3RvbUZpZWxkc1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBQcm9kdWN0T3B0aW9uR3JvdXAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5DdXN0b21GaWVsZHNcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgUHJvZHVjdFZhcmlhbnQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5DdXN0b21GaWVsZHNcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgUHJvbW90aW9uIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLi4uQ3VzdG9tRmllbGRzXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIFNoaXBwaW5nTWV0aG9kIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLi4uQ3VzdG9tRmllbGRzXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIFRheENhdGVnb3J5IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLi4uQ3VzdG9tRmllbGRzXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIFRheFJhdGUge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5DdXN0b21GaWVsZHNcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgVXNlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLkN1c3RvbUZpZWxkc1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBab25lIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLi4uQ3VzdG9tRmllbGRzXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtBTExfQ1VTVE9NX0ZJRUxEU19GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBKT0JfSU5GT19GUkFHTUVOVCA9IGdxbGBcclxuICAgIGZyYWdtZW50IEpvYkluZm8gb24gSm9iIHtcclxuICAgICAgICBpZFxyXG4gICAgICAgIGNyZWF0ZWRBdFxyXG4gICAgICAgIHN0YXJ0ZWRBdFxyXG4gICAgICAgIHNldHRsZWRBdFxyXG4gICAgICAgIHF1ZXVlTmFtZVxyXG4gICAgICAgIHN0YXRlXHJcbiAgICAgICAgaXNTZXR0bGVkXHJcbiAgICAgICAgcHJvZ3Jlc3NcclxuICAgICAgICBkdXJhdGlvblxyXG4gICAgICAgIGRhdGFcclxuICAgICAgICByZXN1bHRcclxuICAgICAgICBlcnJvclxyXG4gICAgICAgIHJldHJpZXNcclxuICAgICAgICBhdHRlbXB0c1xyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEdFVF9KT0JfSU5GTyA9IGdxbGBcclxuICAgIHF1ZXJ5IEdldEpvYkluZm8oJGlkOiBJRCEpIHtcclxuICAgICAgICBqb2Ioam9iSWQ6ICRpZCkge1xyXG4gICAgICAgICAgICAuLi5Kb2JJbmZvXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtKT0JfSU5GT19GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBHRVRfSk9CU19MSVNUID0gZ3FsYFxyXG4gICAgcXVlcnkgR2V0QWxsSm9icygkb3B0aW9uczogSm9iTGlzdE9wdGlvbnMpIHtcclxuICAgICAgICBqb2JzKG9wdGlvbnM6ICRvcHRpb25zKSB7XHJcbiAgICAgICAgICAgIGl0ZW1zIHtcclxuICAgICAgICAgICAgICAgIC4uLkpvYkluZm9cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0b3RhbEl0ZW1zXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtKT0JfSU5GT19GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBHRVRfSk9CU19CWV9JRCA9IGdxbGBcclxuICAgIHF1ZXJ5IEdldEpvYnNCeUlkKCRpZHM6IFtJRCFdISkge1xyXG4gICAgICAgIGpvYnNCeUlkKGpvYklkczogJGlkcykge1xyXG4gICAgICAgICAgICAuLi5Kb2JJbmZvXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtKT0JfSU5GT19GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBHRVRfSk9CX1FVRVVFX0xJU1QgPSBncWxgXHJcbiAgICBxdWVyeSBHZXRKb2JRdWV1ZUxpc3Qge1xyXG4gICAgICAgIGpvYlF1ZXVlcyB7XHJcbiAgICAgICAgICAgIG5hbWVcclxuICAgICAgICAgICAgcnVubmluZ1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBDQU5DRUxfSk9CID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gQ2FuY2VsSm9iKCRpZDogSUQhKSB7XHJcbiAgICAgICAgY2FuY2VsSm9iKGpvYklkOiAkaWQpIHtcclxuICAgICAgICAgICAgLi4uSm9iSW5mb1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7Sk9CX0lORk9fRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgUkVJTkRFWCA9IGdxbGBcclxuICAgIG11dGF0aW9uIFJlaW5kZXgge1xyXG4gICAgICAgIHJlaW5kZXgge1xyXG4gICAgICAgICAgICAuLi5Kb2JJbmZvXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtKT0JfSU5GT19GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBHRVRfUEVORElOR19TRUFSQ0hfSU5ERVhfVVBEQVRFUyA9IGdxbGBcclxuICAgIHF1ZXJ5IEdldFBlbmRpbmdTZWFyY2hJbmRleFVwZGF0ZXMge1xyXG4gICAgICAgIHBlbmRpbmdTZWFyY2hJbmRleFVwZGF0ZXNcclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBSVU5fUEVORElOR19TRUFSQ0hfSU5ERVhfVVBEQVRFUyA9IGdxbGBcclxuICAgIG11dGF0aW9uIFJ1blBlbmRpbmdTZWFyY2hJbmRleFVwZGF0ZXMge1xyXG4gICAgICAgIHJ1blBlbmRpbmdTZWFyY2hJbmRleFVwZGF0ZXMge1xyXG4gICAgICAgICAgICBzdWNjZXNzXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5gO1xyXG4iXX0=
@@ -1,4 +1,4 @@
1
- import { GET_NEWTORK_STATUS, GET_UI_STATE, GET_USER_STATUS, REQUEST_COMPLETED, REQUEST_STARTED, SET_ACTIVE_CHANNEL, SET_AS_LOGGED_IN, SET_AS_LOGGED_OUT, SET_CONTENT_LANGUAGE, SET_UI_LANGUAGE, SET_UI_THEME, UPDATE_USER_CHANNELS, } from '../definitions/client-definitions';
1
+ import { GET_NEWTORK_STATUS, GET_UI_STATE, GET_USER_STATUS, REQUEST_COMPLETED, REQUEST_STARTED, SET_ACTIVE_CHANNEL, SET_AS_LOGGED_IN, SET_AS_LOGGED_OUT, SET_CONTENT_LANGUAGE, SET_DISPLAY_UI_EXTENSION_POINTS, SET_UI_LANGUAGE_AND_LOCALE, SET_UI_LOCALE, SET_UI_THEME, UPDATE_USER_CHANNELS, } from '../definitions/client-definitions';
2
2
  /**
3
3
  * Note: local queries all have a fetch-policy of "cache-first" explicitly specified due to:
4
4
  * https://github.com/apollographql/apollo-link-state/issues/236
@@ -35,9 +35,15 @@ export class ClientDataService {
35
35
  uiState() {
36
36
  return this.baseDataService.query(GET_UI_STATE, {}, 'cache-first');
37
37
  }
38
- setUiLanguage(languageCode) {
39
- return this.baseDataService.mutate(SET_UI_LANGUAGE, {
38
+ setUiLanguage(languageCode, locale) {
39
+ return this.baseDataService.mutate(SET_UI_LANGUAGE_AND_LOCALE, {
40
40
  languageCode,
41
+ locale,
42
+ });
43
+ }
44
+ setUiLocale(locale) {
45
+ return this.baseDataService.mutate(SET_UI_LOCALE, {
46
+ locale,
41
47
  });
42
48
  }
43
49
  setContentLanguage(languageCode) {
@@ -50,6 +56,11 @@ export class ClientDataService {
50
56
  theme,
51
57
  });
52
58
  }
59
+ setDisplayUiExtensionPoints(display) {
60
+ return this.baseDataService.mutate(SET_DISPLAY_UI_EXTENSION_POINTS, {
61
+ display,
62
+ });
63
+ }
53
64
  setActiveChannel(channelId) {
54
65
  return this.baseDataService.mutate(SET_ACTIVE_CHANNEL, {
55
66
  channelId,
@@ -61,4 +72,4 @@ export class ClientDataService {
61
72
  });
62
73
  }
63
74
  }
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LWRhdGEuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvZGF0YS9wcm92aWRlcnMvY2xpZW50LWRhdGEuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFnQkEsT0FBTyxFQUNILGtCQUFrQixFQUNsQixZQUFZLEVBQ1osZUFBZSxFQUNmLGlCQUFpQixFQUNqQixlQUFlLEVBQ2Ysa0JBQWtCLEVBQ2xCLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDakIsb0JBQW9CLEVBQ3BCLGVBQWUsRUFDZixZQUFZLEVBQ1osb0JBQW9CLEdBQ3ZCLE1BQU0sbUNBQW1DLENBQUM7QUFJM0M7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLGlCQUFpQjtJQUMxQixZQUFvQixlQUFnQztRQUFoQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7SUFBRyxDQUFDO0lBRXhELFlBQVk7UUFDUixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUEwQixlQUFlLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRUQsZUFBZTtRQUNYLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQTRCLGlCQUFpQixDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVELGdCQUFnQjtRQUNaLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQXlCLGtCQUFrQixFQUFFLEVBQUUsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUNyRyxDQUFDO0lBRUQsWUFBWSxDQUFDLFFBQWdCLEVBQUUsZUFBdUIsRUFBRSxRQUE4QjtRQUNsRixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUM5QixnQkFBZ0IsRUFDaEI7WUFDSSxLQUFLLEVBQUU7Z0JBQ0gsUUFBUTtnQkFDUixTQUFTLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsRUFBRTtnQkFDaEMsZUFBZTtnQkFDZixRQUFRO2FBQ1g7U0FDSixDQUNKLENBQUM7SUFDTixDQUFDO0lBRUQsTUFBTTtRQUNGLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsVUFBVTtRQUNOLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQXNCLGVBQWUsRUFBRSxFQUFFLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDL0YsQ0FBQztJQUVELE9BQU87UUFDSCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFtQixZQUFZLEVBQUUsRUFBRSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFFRCxhQUFhLENBQUMsWUFBMEI7UUFDcEMsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBa0QsZUFBZSxFQUFFO1lBQ2pHLFlBQVk7U0FDZixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsWUFBMEI7UUFDekMsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FDOUIsb0JBQW9CLEVBQ3BCO1lBQ0ksWUFBWTtTQUNmLENBQ0osQ0FBQztJQUNOLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBYTtRQUNwQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUE0QyxZQUFZLEVBQUU7WUFDeEYsS0FBSztTQUNSLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxTQUFpQjtRQUM5QixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUM5QixrQkFBa0IsRUFDbEI7WUFDSSxTQUFTO1NBQ1osQ0FDSixDQUFDO0lBQ04sQ0FBQztJQUVELGtCQUFrQixDQUFDLFFBQW1DO1FBQ2xELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQzlCLG9CQUFvQixFQUNwQjtZQUNJLFFBQVE7U0FDWCxDQUNKLENBQUM7SUFDTixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQ3VycmVudFVzZXJDaGFubmVsLFxyXG4gICAgQ3VycmVudFVzZXJDaGFubmVsSW5wdXQsXHJcbiAgICBHZXROZXR3b3JrU3RhdHVzLFxyXG4gICAgR2V0VWlTdGF0ZSxcclxuICAgIEdldFVzZXJTdGF0dXMsXHJcbiAgICBMYW5ndWFnZUNvZGUsXHJcbiAgICBSZXF1ZXN0Q29tcGxldGVkLFxyXG4gICAgUmVxdWVzdFN0YXJ0ZWQsXHJcbiAgICBTZXRBY3RpdmVDaGFubmVsLFxyXG4gICAgU2V0QXNMb2dnZWRJbixcclxuICAgIFNldENvbnRlbnRMYW5ndWFnZSxcclxuICAgIFNldFVpTGFuZ3VhZ2UsXHJcbiAgICBTZXRVaVRoZW1lLFxyXG4gICAgVXBkYXRlVXNlckNoYW5uZWxzLFxyXG59IGZyb20gJy4uLy4uL2NvbW1vbi9nZW5lcmF0ZWQtdHlwZXMnO1xyXG5pbXBvcnQge1xyXG4gICAgR0VUX05FV1RPUktfU1RBVFVTLFxyXG4gICAgR0VUX1VJX1NUQVRFLFxyXG4gICAgR0VUX1VTRVJfU1RBVFVTLFxyXG4gICAgUkVRVUVTVF9DT01QTEVURUQsXHJcbiAgICBSRVFVRVNUX1NUQVJURUQsXHJcbiAgICBTRVRfQUNUSVZFX0NIQU5ORUwsXHJcbiAgICBTRVRfQVNfTE9HR0VEX0lOLFxyXG4gICAgU0VUX0FTX0xPR0dFRF9PVVQsXHJcbiAgICBTRVRfQ09OVEVOVF9MQU5HVUFHRSxcclxuICAgIFNFVF9VSV9MQU5HVUFHRSxcclxuICAgIFNFVF9VSV9USEVNRSxcclxuICAgIFVQREFURV9VU0VSX0NIQU5ORUxTLFxyXG59IGZyb20gJy4uL2RlZmluaXRpb25zL2NsaWVudC1kZWZpbml0aW9ucyc7XHJcblxyXG5pbXBvcnQgeyBCYXNlRGF0YVNlcnZpY2UgfSBmcm9tICcuL2Jhc2UtZGF0YS5zZXJ2aWNlJztcclxuXHJcbi8qKlxyXG4gKiBOb3RlOiBsb2NhbCBxdWVyaWVzIGFsbCBoYXZlIGEgZmV0Y2gtcG9saWN5IG9mIFwiY2FjaGUtZmlyc3RcIiBleHBsaWNpdGx5IHNwZWNpZmllZCBkdWUgdG86XHJcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9hcG9sbG9ncmFwaHFsL2Fwb2xsby1saW5rLXN0YXRlL2lzc3Vlcy8yMzZcclxuICovXHJcbmV4cG9ydCBjbGFzcyBDbGllbnREYXRhU2VydmljZSB7XHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGJhc2VEYXRhU2VydmljZTogQmFzZURhdGFTZXJ2aWNlKSB7fVxyXG5cclxuICAgIHN0YXJ0UmVxdWVzdCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5iYXNlRGF0YVNlcnZpY2UubXV0YXRlPFJlcXVlc3RTdGFydGVkLk11dGF0aW9uPihSRVFVRVNUX1NUQVJURUQpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbXBsZXRlUmVxdWVzdCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5iYXNlRGF0YVNlcnZpY2UubXV0YXRlPFJlcXVlc3RDb21wbGV0ZWQuTXV0YXRpb24+KFJFUVVFU1RfQ09NUExFVEVEKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXROZXR3b3JrU3RhdHVzKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmJhc2VEYXRhU2VydmljZS5xdWVyeTxHZXROZXR3b3JrU3RhdHVzLlF1ZXJ5PihHRVRfTkVXVE9SS19TVEFUVVMsIHt9LCAnY2FjaGUtZmlyc3QnKTtcclxuICAgIH1cclxuXHJcbiAgICBsb2dpblN1Y2Nlc3ModXNlcm5hbWU6IHN0cmluZywgYWN0aXZlQ2hhbm5lbElkOiBzdHJpbmcsIGNoYW5uZWxzOiBDdXJyZW50VXNlckNoYW5uZWxbXSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmJhc2VEYXRhU2VydmljZS5tdXRhdGU8U2V0QXNMb2dnZWRJbi5NdXRhdGlvbiwgU2V0QXNMb2dnZWRJbi5WYXJpYWJsZXM+KFxyXG4gICAgICAgICAgICBTRVRfQVNfTE9HR0VEX0lOLFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBpbnB1dDoge1xyXG4gICAgICAgICAgICAgICAgICAgIHVzZXJuYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgIGxvZ2luVGltZTogRGF0ZS5ub3coKS50b1N0cmluZygpLFxyXG4gICAgICAgICAgICAgICAgICAgIGFjdGl2ZUNoYW5uZWxJZCxcclxuICAgICAgICAgICAgICAgICAgICBjaGFubmVscyxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBsb2dPdXQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYmFzZURhdGFTZXJ2aWNlLm11dGF0ZShTRVRfQVNfTE9HR0VEX09VVCk7XHJcbiAgICB9XHJcblxyXG4gICAgdXNlclN0YXR1cygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5iYXNlRGF0YVNlcnZpY2UucXVlcnk8R2V0VXNlclN0YXR1cy5RdWVyeT4oR0VUX1VTRVJfU1RBVFVTLCB7fSwgJ2NhY2hlLWZpcnN0Jyk7XHJcbiAgICB9XHJcblxyXG4gICAgdWlTdGF0ZSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5iYXNlRGF0YVNlcnZpY2UucXVlcnk8R2V0VWlTdGF0ZS5RdWVyeT4oR0VUX1VJX1NUQVRFLCB7fSwgJ2NhY2hlLWZpcnN0Jyk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0VWlMYW5ndWFnZShsYW5ndWFnZUNvZGU6IExhbmd1YWdlQ29kZSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmJhc2VEYXRhU2VydmljZS5tdXRhdGU8U2V0VWlMYW5ndWFnZS5NdXRhdGlvbiwgU2V0VWlMYW5ndWFnZS5WYXJpYWJsZXM+KFNFVF9VSV9MQU5HVUFHRSwge1xyXG4gICAgICAgICAgICBsYW5ndWFnZUNvZGUsXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0Q29udGVudExhbmd1YWdlKGxhbmd1YWdlQ29kZTogTGFuZ3VhZ2VDb2RlKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYmFzZURhdGFTZXJ2aWNlLm11dGF0ZTxTZXRDb250ZW50TGFuZ3VhZ2UuTXV0YXRpb24sIFNldENvbnRlbnRMYW5ndWFnZS5WYXJpYWJsZXM+KFxyXG4gICAgICAgICAgICBTRVRfQ09OVEVOVF9MQU5HVUFHRSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgbGFuZ3VhZ2VDb2RlLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0VWlUaGVtZSh0aGVtZTogc3RyaW5nKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYmFzZURhdGFTZXJ2aWNlLm11dGF0ZTxTZXRVaVRoZW1lLk11dGF0aW9uLCBTZXRVaVRoZW1lLlZhcmlhYmxlcz4oU0VUX1VJX1RIRU1FLCB7XHJcbiAgICAgICAgICAgIHRoZW1lLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHNldEFjdGl2ZUNoYW5uZWwoY2hhbm5lbElkOiBzdHJpbmcpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5iYXNlRGF0YVNlcnZpY2UubXV0YXRlPFNldEFjdGl2ZUNoYW5uZWwuTXV0YXRpb24sIFNldEFjdGl2ZUNoYW5uZWwuVmFyaWFibGVzPihcclxuICAgICAgICAgICAgU0VUX0FDVElWRV9DSEFOTkVMLFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBjaGFubmVsSWQsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVVc2VyQ2hhbm5lbHMoY2hhbm5lbHM6IEN1cnJlbnRVc2VyQ2hhbm5lbElucHV0W10pIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5iYXNlRGF0YVNlcnZpY2UubXV0YXRlPFVwZGF0ZVVzZXJDaGFubmVscy5NdXRhdGlvbiwgVXBkYXRlVXNlckNoYW5uZWxzLlZhcmlhYmxlcz4oXHJcbiAgICAgICAgICAgIFVQREFURV9VU0VSX0NIQU5ORUxTLFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBjaGFubmVscyxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LWRhdGEuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvZGF0YS9wcm92aWRlcnMvY2xpZW50LWRhdGEuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrQkEsT0FBTyxFQUNILGtCQUFrQixFQUNsQixZQUFZLEVBQ1osZUFBZSxFQUNmLGlCQUFpQixFQUNqQixlQUFlLEVBQ2Ysa0JBQWtCLEVBQ2xCLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDakIsb0JBQW9CLEVBQ3BCLCtCQUErQixFQUMvQiwwQkFBMEIsRUFDMUIsYUFBYSxFQUNiLFlBQVksRUFDWixvQkFBb0IsR0FDdkIsTUFBTSxtQ0FBbUMsQ0FBQztBQUkzQzs7O0dBR0c7QUFDSCxNQUFNLE9BQU8saUJBQWlCO0lBQzFCLFlBQW9CLGVBQWdDO1FBQWhDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtJQUFHLENBQUM7SUFFeEQsWUFBWTtRQUNSLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQTBCLGVBQWUsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFFRCxlQUFlO1FBQ1gsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBNEIsaUJBQWlCLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBRUQsZ0JBQWdCO1FBQ1osT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBeUIsa0JBQWtCLEVBQUUsRUFBRSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ3JHLENBQUM7SUFFRCxZQUFZLENBQUMsUUFBZ0IsRUFBRSxlQUF1QixFQUFFLFFBQThCO1FBQ2xGLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQzlCLGdCQUFnQixFQUNoQjtZQUNJLEtBQUssRUFBRTtnQkFDSCxRQUFRO2dCQUNSLFNBQVMsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFO2dCQUNoQyxlQUFlO2dCQUNmLFFBQVE7YUFDWDtTQUNKLENBQ0osQ0FBQztJQUNOLENBQUM7SUFFRCxNQUFNO1FBQ0YsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxVQUFVO1FBQ04sT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBc0IsZUFBZSxFQUFFLEVBQUUsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUMvRixDQUFDO0lBRUQsT0FBTztRQUNILE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQW1CLFlBQVksRUFBRSxFQUFFLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUVELGFBQWEsQ0FBQyxZQUEwQixFQUFFLE1BQWU7UUFDckQsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FDOUIsMEJBQTBCLEVBQzFCO1lBQ0ksWUFBWTtZQUNaLE1BQU07U0FDVCxDQUNKLENBQUM7SUFDTixDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQTBCO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQThDLGFBQWEsRUFBRTtZQUMzRixNQUFNO1NBQ1QsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGtCQUFrQixDQUFDLFlBQTBCO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQzlCLG9CQUFvQixFQUNwQjtZQUNJLFlBQVk7U0FDZixDQUNKLENBQUM7SUFDTixDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWE7UUFDcEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBNEMsWUFBWSxFQUFFO1lBQ3hGLEtBQUs7U0FDUixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsMkJBQTJCLENBQUMsT0FBZ0I7UUFDeEMsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FHaEMsK0JBQStCLEVBQUU7WUFDL0IsT0FBTztTQUNWLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxTQUFpQjtRQUM5QixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUM5QixrQkFBa0IsRUFDbEI7WUFDSSxTQUFTO1NBQ1osQ0FDSixDQUFDO0lBQ04sQ0FBQztJQUVELGtCQUFrQixDQUFDLFFBQW1DO1FBQ2xELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQzlCLG9CQUFvQixFQUNwQjtZQUNJLFFBQVE7U0FDWCxDQUNKLENBQUM7SUFDTixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQ3VycmVudFVzZXJDaGFubmVsLFxyXG4gICAgQ3VycmVudFVzZXJDaGFubmVsSW5wdXQsXHJcbiAgICBHZXROZXR3b3JrU3RhdHVzLFxyXG4gICAgR2V0VWlTdGF0ZSxcclxuICAgIEdldFVzZXJTdGF0dXMsXHJcbiAgICBMYW5ndWFnZUNvZGUsXHJcbiAgICBSZXF1ZXN0Q29tcGxldGVkLFxyXG4gICAgUmVxdWVzdFN0YXJ0ZWQsXHJcbiAgICBTZXRBY3RpdmVDaGFubmVsLFxyXG4gICAgU2V0QXNMb2dnZWRJbixcclxuICAgIFNldENvbnRlbnRMYW5ndWFnZSxcclxuICAgIFNldERpc3BsYXlVaUV4dGVuc2lvblBvaW50cyxcclxuICAgIFNldFVpTGFuZ3VhZ2UsXHJcbiAgICBTZXRVaUxvY2FsZSxcclxuICAgIFNldFVpVGhlbWUsXHJcbiAgICBVcGRhdGVVc2VyQ2hhbm5lbHMsXHJcbn0gZnJvbSAnLi4vLi4vY29tbW9uL2dlbmVyYXRlZC10eXBlcyc7XHJcbmltcG9ydCB7XHJcbiAgICBHRVRfTkVXVE9SS19TVEFUVVMsXHJcbiAgICBHRVRfVUlfU1RBVEUsXHJcbiAgICBHRVRfVVNFUl9TVEFUVVMsXHJcbiAgICBSRVFVRVNUX0NPTVBMRVRFRCxcclxuICAgIFJFUVVFU1RfU1RBUlRFRCxcclxuICAgIFNFVF9BQ1RJVkVfQ0hBTk5FTCxcclxuICAgIFNFVF9BU19MT0dHRURfSU4sXHJcbiAgICBTRVRfQVNfTE9HR0VEX09VVCxcclxuICAgIFNFVF9DT05URU5UX0xBTkdVQUdFLFxyXG4gICAgU0VUX0RJU1BMQVlfVUlfRVhURU5TSU9OX1BPSU5UUyxcclxuICAgIFNFVF9VSV9MQU5HVUFHRV9BTkRfTE9DQUxFLFxyXG4gICAgU0VUX1VJX0xPQ0FMRSxcclxuICAgIFNFVF9VSV9USEVNRSxcclxuICAgIFVQREFURV9VU0VSX0NIQU5ORUxTLFxyXG59IGZyb20gJy4uL2RlZmluaXRpb25zL2NsaWVudC1kZWZpbml0aW9ucyc7XHJcblxyXG5pbXBvcnQgeyBCYXNlRGF0YVNlcnZpY2UgfSBmcm9tICcuL2Jhc2UtZGF0YS5zZXJ2aWNlJztcclxuXHJcbi8qKlxyXG4gKiBOb3RlOiBsb2NhbCBxdWVyaWVzIGFsbCBoYXZlIGEgZmV0Y2gtcG9saWN5IG9mIFwiY2FjaGUtZmlyc3RcIiBleHBsaWNpdGx5IHNwZWNpZmllZCBkdWUgdG86XHJcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9hcG9sbG9ncmFwaHFsL2Fwb2xsby1saW5rLXN0YXRlL2lzc3Vlcy8yMzZcclxuICovXHJcbmV4cG9ydCBjbGFzcyBDbGllbnREYXRhU2VydmljZSB7XHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGJhc2VEYXRhU2VydmljZTogQmFzZURhdGFTZXJ2aWNlKSB7fVxyXG5cclxuICAgIHN0YXJ0UmVxdWVzdCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5iYXNlRGF0YVNlcnZpY2UubXV0YXRlPFJlcXVlc3RTdGFydGVkLk11dGF0aW9uPihSRVFVRVNUX1NUQVJURUQpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbXBsZXRlUmVxdWVzdCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5iYXNlRGF0YVNlcnZpY2UubXV0YXRlPFJlcXVlc3RDb21wbGV0ZWQuTXV0YXRpb24+KFJFUVVFU1RfQ09NUExFVEVEKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXROZXR3b3JrU3RhdHVzKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmJhc2VEYXRhU2VydmljZS5xdWVyeTxHZXROZXR3b3JrU3RhdHVzLlF1ZXJ5PihHRVRfTkVXVE9SS19TVEFUVVMsIHt9LCAnY2FjaGUtZmlyc3QnKTtcclxuICAgIH1cclxuXHJcbiAgICBsb2dpblN1Y2Nlc3ModXNlcm5hbWU6IHN0cmluZywgYWN0aXZlQ2hhbm5lbElkOiBzdHJpbmcsIGNoYW5uZWxzOiBDdXJyZW50VXNlckNoYW5uZWxbXSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmJhc2VEYXRhU2VydmljZS5tdXRhdGU8U2V0QXNMb2dnZWRJbi5NdXRhdGlvbiwgU2V0QXNMb2dnZWRJbi5WYXJpYWJsZXM+KFxyXG4gICAgICAgICAgICBTRVRfQVNfTE9HR0VEX0lOLFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBpbnB1dDoge1xyXG4gICAgICAgICAgICAgICAgICAgIHVzZXJuYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgIGxvZ2luVGltZTogRGF0ZS5ub3coKS50b1N0cmluZygpLFxyXG4gICAgICAgICAgICAgICAgICAgIGFjdGl2ZUNoYW5uZWxJZCxcclxuICAgICAgICAgICAgICAgICAgICBjaGFubmVscyxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBsb2dPdXQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYmFzZURhdGFTZXJ2aWNlLm11dGF0ZShTRVRfQVNfTE9HR0VEX09VVCk7XHJcbiAgICB9XHJcblxyXG4gICAgdXNlclN0YXR1cygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5iYXNlRGF0YVNlcnZpY2UucXVlcnk8R2V0VXNlclN0YXR1cy5RdWVyeT4oR0VUX1VTRVJfU1RBVFVTLCB7fSwgJ2NhY2hlLWZpcnN0Jyk7XHJcbiAgICB9XHJcblxyXG4gICAgdWlTdGF0ZSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5iYXNlRGF0YVNlcnZpY2UucXVlcnk8R2V0VWlTdGF0ZS5RdWVyeT4oR0VUX1VJX1NUQVRFLCB7fSwgJ2NhY2hlLWZpcnN0Jyk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0VWlMYW5ndWFnZShsYW5ndWFnZUNvZGU6IExhbmd1YWdlQ29kZSwgbG9jYWxlPzogc3RyaW5nKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYmFzZURhdGFTZXJ2aWNlLm11dGF0ZTxTZXRVaUxhbmd1YWdlLk11dGF0aW9uLCBTZXRVaUxhbmd1YWdlLlZhcmlhYmxlcz4oXHJcbiAgICAgICAgICAgIFNFVF9VSV9MQU5HVUFHRV9BTkRfTE9DQUxFLFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBsYW5ndWFnZUNvZGUsXHJcbiAgICAgICAgICAgICAgICBsb2NhbGUsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRVaUxvY2FsZShsb2NhbGU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmJhc2VEYXRhU2VydmljZS5tdXRhdGU8U2V0VWlMb2NhbGUuTXV0YXRpb24sIFNldFVpTG9jYWxlLlZhcmlhYmxlcz4oU0VUX1VJX0xPQ0FMRSwge1xyXG4gICAgICAgICAgICBsb2NhbGUsXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0Q29udGVudExhbmd1YWdlKGxhbmd1YWdlQ29kZTogTGFuZ3VhZ2VDb2RlKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYmFzZURhdGFTZXJ2aWNlLm11dGF0ZTxTZXRDb250ZW50TGFuZ3VhZ2UuTXV0YXRpb24sIFNldENvbnRlbnRMYW5ndWFnZS5WYXJpYWJsZXM+KFxyXG4gICAgICAgICAgICBTRVRfQ09OVEVOVF9MQU5HVUFHRSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgbGFuZ3VhZ2VDb2RlLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0VWlUaGVtZSh0aGVtZTogc3RyaW5nKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYmFzZURhdGFTZXJ2aWNlLm11dGF0ZTxTZXRVaVRoZW1lLk11dGF0aW9uLCBTZXRVaVRoZW1lLlZhcmlhYmxlcz4oU0VUX1VJX1RIRU1FLCB7XHJcbiAgICAgICAgICAgIHRoZW1lLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHNldERpc3BsYXlVaUV4dGVuc2lvblBvaW50cyhkaXNwbGF5OiBib29sZWFuKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYmFzZURhdGFTZXJ2aWNlLm11dGF0ZTxcclxuICAgICAgICAgICAgU2V0RGlzcGxheVVpRXh0ZW5zaW9uUG9pbnRzLk11dGF0aW9uLFxyXG4gICAgICAgICAgICBTZXREaXNwbGF5VWlFeHRlbnNpb25Qb2ludHMuVmFyaWFibGVzXHJcbiAgICAgICAgPihTRVRfRElTUExBWV9VSV9FWFRFTlNJT05fUE9JTlRTLCB7XHJcbiAgICAgICAgICAgIGRpc3BsYXksXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0QWN0aXZlQ2hhbm5lbChjaGFubmVsSWQ6IHN0cmluZykge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmJhc2VEYXRhU2VydmljZS5tdXRhdGU8U2V0QWN0aXZlQ2hhbm5lbC5NdXRhdGlvbiwgU2V0QWN0aXZlQ2hhbm5lbC5WYXJpYWJsZXM+KFxyXG4gICAgICAgICAgICBTRVRfQUNUSVZFX0NIQU5ORUwsXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGNoYW5uZWxJZCxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZVVzZXJDaGFubmVscyhjaGFubmVsczogQ3VycmVudFVzZXJDaGFubmVsSW5wdXRbXSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmJhc2VEYXRhU2VydmljZS5tdXRhdGU8VXBkYXRlVXNlckNoYW5uZWxzLk11dGF0aW9uLCBVcGRhdGVVc2VyQ2hhbm5lbHMuVmFyaWFibGVzPihcclxuICAgICAgICAgICAgVVBEQVRFX1VTRVJfQ0hBTk5FTFMsXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGNoYW5uZWxzLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -11,7 +11,19 @@ import { ProductDataService } from './product-data.service';
11
11
  import { PromotionDataService } from './promotion-data.service';
12
12
  import { SettingsDataService } from './settings-data.service';
13
13
  import { ShippingMethodDataService } from './shipping-method-data.service';
14
+ /**
15
+ * @description
16
+ * Used to interact with the Admin API via GraphQL queries. Internally this service uses the
17
+ * Apollo Client, which means it maintains a normalized entity cache. For this reason, it is
18
+ * advisable to always select the `id` field of any entity, which will allow the returned data
19
+ * to be effectively cached.
20
+ *
21
+ * @docsCategory providers
22
+ * @docsPage DataService
23
+ * @docsWeight 0
24
+ */
14
25
  export class DataService {
26
+ /** @internal */
15
27
  constructor(baseDataService) {
16
28
  this.baseDataService = baseDataService;
17
29
  this.promotion = new PromotionDataService(baseDataService);
@@ -27,13 +39,43 @@ export class DataService {
27
39
  this.shippingMethod = new ShippingMethodDataService(baseDataService);
28
40
  }
29
41
  /**
30
- * Perform a GraphQL query.
42
+ * @description
43
+ * Perform a GraphQL query. Returns a {@link QueryResult} which allows further control over
44
+ * they type of result returned, e.g. stream of values, single value etc.
45
+ *
46
+ * @example
47
+ * ```TypeScript
48
+ * const result$ = this.dataService.query(gql`
49
+ * query MyQuery($id: ID!) {
50
+ * product(id: $id) {
51
+ * id
52
+ * name
53
+ * slug
54
+ * }
55
+ * },
56
+ * { id: 123 },
57
+ * ).mapSingle(data => data.product);
58
+ * ```
31
59
  */
32
60
  query(query, variables, fetchPolicy = 'cache-and-network') {
33
61
  return this.baseDataService.query(query, variables, fetchPolicy);
34
62
  }
35
63
  /**
64
+ * @description
36
65
  * Perform a GraphQL mutation.
66
+ *
67
+ * @example
68
+ * ```TypeScript
69
+ * const result$ = this.dataService.mutate(gql`
70
+ * mutation MyMutation($input: UpdateEntityInput!) {
71
+ * updateEntity(input: $input) {
72
+ * id
73
+ * name
74
+ * }
75
+ * },
76
+ * { input: updateEntityInput },
77
+ * );
78
+ * ```
37
79
  */
38
80
  mutate(mutation, variables, update) {
39
81
  return this.baseDataService.mutate(mutation, variables, update);
@@ -45,4 +87,4 @@ DataService.decorators = [
45
87
  DataService.ctorParameters = () => [
46
88
  { type: BaseDataService }
47
89
  ];
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9kYXRhL3Byb3ZpZGVycy9kYXRhLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU8zQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRzNFLE1BQU0sT0FBTyxXQUFXO0lBYXBCLFlBQW9CLGVBQWdDO1FBQWhDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksb0JBQW9CLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLHdCQUF3QixDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxlQUFlLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLHFCQUFxQixDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksaUJBQWlCLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksbUJBQW1CLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLG1CQUFtQixDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSx5QkFBeUIsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLLENBQ0QsS0FBbUIsRUFDbkIsU0FBYSxFQUNiLGNBQXFDLG1CQUFtQjtRQUV4RCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUNGLFFBQXNCLEVBQ3RCLFNBQWEsRUFDYixNQUE2QjtRQUU3QixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDcEUsQ0FBQzs7O1lBaERKLFVBQVU7OztZQVhGLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE11dGF0aW9uVXBkYXRlckZuLCBXYXRjaFF1ZXJ5RmV0Y2hQb2xpY3kgfSBmcm9tICdAYXBvbGxvL2NsaWVudC9jb3JlJztcclxuaW1wb3J0IHsgRG9jdW1lbnROb2RlIH0gZnJvbSAnZ3JhcGhxbCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IFF1ZXJ5UmVzdWx0IH0gZnJvbSAnLi4vcXVlcnktcmVzdWx0JztcclxuXHJcbmltcG9ydCB7IEFkbWluaXN0cmF0b3JEYXRhU2VydmljZSB9IGZyb20gJy4vYWRtaW5pc3RyYXRvci1kYXRhLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBdXRoRGF0YVNlcnZpY2UgfSBmcm9tICcuL2F1dGgtZGF0YS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQmFzZURhdGFTZXJ2aWNlIH0gZnJvbSAnLi9iYXNlLWRhdGEuc2VydmljZSc7XHJcbmltcG9ydCB7IENsaWVudERhdGFTZXJ2aWNlIH0gZnJvbSAnLi9jbGllbnQtZGF0YS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29sbGVjdGlvbkRhdGFTZXJ2aWNlIH0gZnJvbSAnLi9jb2xsZWN0aW9uLWRhdGEuc2VydmljZSc7XHJcbmltcG9ydCB7IEN1c3RvbWVyRGF0YVNlcnZpY2UgfSBmcm9tICcuL2N1c3RvbWVyLWRhdGEuc2VydmljZSc7XHJcbmltcG9ydCB7IEZhY2V0RGF0YVNlcnZpY2UgfSBmcm9tICcuL2ZhY2V0LWRhdGEuc2VydmljZSc7XHJcbmltcG9ydCB7IE9yZGVyRGF0YVNlcnZpY2UgfSBmcm9tICcuL29yZGVyLWRhdGEuc2VydmljZSc7XHJcbmltcG9ydCB7IFByb2R1Y3REYXRhU2VydmljZSB9IGZyb20gJy4vcHJvZHVjdC1kYXRhLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQcm9tb3Rpb25EYXRhU2VydmljZSB9IGZyb20gJy4vcHJvbW90aW9uLWRhdGEuc2VydmljZSc7XHJcbmltcG9ydCB7IFNldHRpbmdzRGF0YVNlcnZpY2UgfSBmcm9tICcuL3NldHRpbmdzLWRhdGEuc2VydmljZSc7XHJcbmltcG9ydCB7IFNoaXBwaW5nTWV0aG9kRGF0YVNlcnZpY2UgfSBmcm9tICcuL3NoaXBwaW5nLW1ldGhvZC1kYXRhLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgRGF0YVNlcnZpY2Uge1xyXG4gICAgcHJvbW90aW9uOiBQcm9tb3Rpb25EYXRhU2VydmljZTtcclxuICAgIGFkbWluaXN0cmF0b3I6IEFkbWluaXN0cmF0b3JEYXRhU2VydmljZTtcclxuICAgIGF1dGg6IEF1dGhEYXRhU2VydmljZTtcclxuICAgIGNvbGxlY3Rpb246IENvbGxlY3Rpb25EYXRhU2VydmljZTtcclxuICAgIHByb2R1Y3Q6IFByb2R1Y3REYXRhU2VydmljZTtcclxuICAgIGNsaWVudDogQ2xpZW50RGF0YVNlcnZpY2U7XHJcbiAgICBmYWNldDogRmFjZXREYXRhU2VydmljZTtcclxuICAgIG9yZGVyOiBPcmRlckRhdGFTZXJ2aWNlO1xyXG4gICAgc2V0dGluZ3M6IFNldHRpbmdzRGF0YVNlcnZpY2U7XHJcbiAgICBjdXN0b21lcjogQ3VzdG9tZXJEYXRhU2VydmljZTtcclxuICAgIHNoaXBwaW5nTWV0aG9kOiBTaGlwcGluZ01ldGhvZERhdGFTZXJ2aWNlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgYmFzZURhdGFTZXJ2aWNlOiBCYXNlRGF0YVNlcnZpY2UpIHtcclxuICAgICAgICB0aGlzLnByb21vdGlvbiA9IG5ldyBQcm9tb3Rpb25EYXRhU2VydmljZShiYXNlRGF0YVNlcnZpY2UpO1xyXG4gICAgICAgIHRoaXMuYWRtaW5pc3RyYXRvciA9IG5ldyBBZG1pbmlzdHJhdG9yRGF0YVNlcnZpY2UoYmFzZURhdGFTZXJ2aWNlKTtcclxuICAgICAgICB0aGlzLmF1dGggPSBuZXcgQXV0aERhdGFTZXJ2aWNlKGJhc2VEYXRhU2VydmljZSk7XHJcbiAgICAgICAgdGhpcy5jb2xsZWN0aW9uID0gbmV3IENvbGxlY3Rpb25EYXRhU2VydmljZShiYXNlRGF0YVNlcnZpY2UpO1xyXG4gICAgICAgIHRoaXMucHJvZHVjdCA9IG5ldyBQcm9kdWN0RGF0YVNlcnZpY2UoYmFzZURhdGFTZXJ2aWNlKTtcclxuICAgICAgICB0aGlzLmNsaWVudCA9IG5ldyBDbGllbnREYXRhU2VydmljZShiYXNlRGF0YVNlcnZpY2UpO1xyXG4gICAgICAgIHRoaXMuZmFjZXQgPSBuZXcgRmFjZXREYXRhU2VydmljZShiYXNlRGF0YVNlcnZpY2UpO1xyXG4gICAgICAgIHRoaXMub3JkZXIgPSBuZXcgT3JkZXJEYXRhU2VydmljZShiYXNlRGF0YVNlcnZpY2UpO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MgPSBuZXcgU2V0dGluZ3NEYXRhU2VydmljZShiYXNlRGF0YVNlcnZpY2UpO1xyXG4gICAgICAgIHRoaXMuY3VzdG9tZXIgPSBuZXcgQ3VzdG9tZXJEYXRhU2VydmljZShiYXNlRGF0YVNlcnZpY2UpO1xyXG4gICAgICAgIHRoaXMuc2hpcHBpbmdNZXRob2QgPSBuZXcgU2hpcHBpbmdNZXRob2REYXRhU2VydmljZShiYXNlRGF0YVNlcnZpY2UpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUGVyZm9ybSBhIEdyYXBoUUwgcXVlcnkuXHJcbiAgICAgKi9cclxuICAgIHF1ZXJ5PFQsIFYgPSBSZWNvcmQ8c3RyaW5nLCBhbnk+PihcclxuICAgICAgICBxdWVyeTogRG9jdW1lbnROb2RlLFxyXG4gICAgICAgIHZhcmlhYmxlcz86IFYsXHJcbiAgICAgICAgZmV0Y2hQb2xpY3k6IFdhdGNoUXVlcnlGZXRjaFBvbGljeSA9ICdjYWNoZS1hbmQtbmV0d29yaycsXHJcbiAgICApOiBRdWVyeVJlc3VsdDxULCBWPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYmFzZURhdGFTZXJ2aWNlLnF1ZXJ5KHF1ZXJ5LCB2YXJpYWJsZXMsIGZldGNoUG9saWN5KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFBlcmZvcm0gYSBHcmFwaFFMIG11dGF0aW9uLlxyXG4gICAgICovXHJcbiAgICBtdXRhdGU8VCwgViA9IFJlY29yZDxzdHJpbmcsIGFueT4+KFxyXG4gICAgICAgIG11dGF0aW9uOiBEb2N1bWVudE5vZGUsXHJcbiAgICAgICAgdmFyaWFibGVzPzogVixcclxuICAgICAgICB1cGRhdGU/OiBNdXRhdGlvblVwZGF0ZXJGbjxUPixcclxuICAgICk6IE9ic2VydmFibGU8VD4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmJhc2VEYXRhU2VydmljZS5tdXRhdGUobXV0YXRpb24sIHZhcmlhYmxlcywgdXBkYXRlKTtcclxuICAgIH1cclxufVxyXG4iXX0=
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9kYXRhL3Byb3ZpZGVycy9kYXRhLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU8zQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRTNFOzs7Ozs7Ozs7O0dBVUc7QUFFSCxNQUFNLE9BQU8sV0FBVztJQWFwQixnQkFBZ0I7SUFDaEIsWUFBb0IsZUFBZ0M7UUFBaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxvQkFBb0IsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksd0JBQXdCLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLGVBQWUsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUkscUJBQXFCLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksZ0JBQWdCLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksbUJBQW1CLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLHlCQUF5QixDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Ba0JHO0lBQ0gsS0FBSyxDQUNELEtBQW1CLEVBQ25CLFNBQWEsRUFDYixjQUFxQyxtQkFBbUI7UUFFeEQsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7OztPQWdCRztJQUNILE1BQU0sQ0FDRixRQUFzQixFQUN0QixTQUFhLEVBQ2IsTUFBNkI7UUFFN0IsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3BFLENBQUM7OztZQS9FSixVQUFVOzs7WUF0QkYsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTXV0YXRpb25VcGRhdGVyRm4sIFdhdGNoUXVlcnlGZXRjaFBvbGljeSB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2NvcmUnO1xyXG5pbXBvcnQgeyBEb2N1bWVudE5vZGUgfSBmcm9tICdncmFwaHFsJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgUXVlcnlSZXN1bHQgfSBmcm9tICcuLi9xdWVyeS1yZXN1bHQnO1xyXG5cclxuaW1wb3J0IHsgQWRtaW5pc3RyYXRvckRhdGFTZXJ2aWNlIH0gZnJvbSAnLi9hZG1pbmlzdHJhdG9yLWRhdGEuc2VydmljZSc7XHJcbmltcG9ydCB7IEF1dGhEYXRhU2VydmljZSB9IGZyb20gJy4vYXV0aC1kYXRhLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCYXNlRGF0YVNlcnZpY2UgfSBmcm9tICcuL2Jhc2UtZGF0YS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ2xpZW50RGF0YVNlcnZpY2UgfSBmcm9tICcuL2NsaWVudC1kYXRhLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb2xsZWN0aW9uRGF0YVNlcnZpY2UgfSBmcm9tICcuL2NvbGxlY3Rpb24tZGF0YS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ3VzdG9tZXJEYXRhU2VydmljZSB9IGZyb20gJy4vY3VzdG9tZXItZGF0YS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRmFjZXREYXRhU2VydmljZSB9IGZyb20gJy4vZmFjZXQtZGF0YS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgT3JkZXJEYXRhU2VydmljZSB9IGZyb20gJy4vb3JkZXItZGF0YS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUHJvZHVjdERhdGFTZXJ2aWNlIH0gZnJvbSAnLi9wcm9kdWN0LWRhdGEuc2VydmljZSc7XHJcbmltcG9ydCB7IFByb21vdGlvbkRhdGFTZXJ2aWNlIH0gZnJvbSAnLi9wcm9tb3Rpb24tZGF0YS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2V0dGluZ3NEYXRhU2VydmljZSB9IGZyb20gJy4vc2V0dGluZ3MtZGF0YS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2hpcHBpbmdNZXRob2REYXRhU2VydmljZSB9IGZyb20gJy4vc2hpcHBpbmctbWV0aG9kLWRhdGEuc2VydmljZSc7XHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uXHJcbiAqIFVzZWQgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgQWRtaW4gQVBJIHZpYSBHcmFwaFFMIHF1ZXJpZXMuIEludGVybmFsbHkgdGhpcyBzZXJ2aWNlIHVzZXMgdGhlXHJcbiAqIEFwb2xsbyBDbGllbnQsIHdoaWNoIG1lYW5zIGl0IG1haW50YWlucyBhIG5vcm1hbGl6ZWQgZW50aXR5IGNhY2hlLiBGb3IgdGhpcyByZWFzb24sIGl0IGlzXHJcbiAqIGFkdmlzYWJsZSB0byBhbHdheXMgc2VsZWN0IHRoZSBgaWRgIGZpZWxkIG9mIGFueSBlbnRpdHksIHdoaWNoIHdpbGwgYWxsb3cgdGhlIHJldHVybmVkIGRhdGFcclxuICogdG8gYmUgZWZmZWN0aXZlbHkgY2FjaGVkLlxyXG4gKlxyXG4gKiBAZG9jc0NhdGVnb3J5IHByb3ZpZGVyc1xyXG4gKiBAZG9jc1BhZ2UgRGF0YVNlcnZpY2VcclxuICogQGRvY3NXZWlnaHQgMFxyXG4gKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgRGF0YVNlcnZpY2Uge1xyXG4gICAgLyoqIEBpbnRlcm5hbCAqLyBwcm9tb3Rpb246IFByb21vdGlvbkRhdGFTZXJ2aWNlO1xyXG4gICAgLyoqIEBpbnRlcm5hbCAqLyBhZG1pbmlzdHJhdG9yOiBBZG1pbmlzdHJhdG9yRGF0YVNlcnZpY2U7XHJcbiAgICAvKiogQGludGVybmFsICovIGF1dGg6IEF1dGhEYXRhU2VydmljZTtcclxuICAgIC8qKiBAaW50ZXJuYWwgKi8gY29sbGVjdGlvbjogQ29sbGVjdGlvbkRhdGFTZXJ2aWNlO1xyXG4gICAgLyoqIEBpbnRlcm5hbCAqLyBwcm9kdWN0OiBQcm9kdWN0RGF0YVNlcnZpY2U7XHJcbiAgICAvKiogQGludGVybmFsICovIGNsaWVudDogQ2xpZW50RGF0YVNlcnZpY2U7XHJcbiAgICAvKiogQGludGVybmFsICovIGZhY2V0OiBGYWNldERhdGFTZXJ2aWNlO1xyXG4gICAgLyoqIEBpbnRlcm5hbCAqLyBvcmRlcjogT3JkZXJEYXRhU2VydmljZTtcclxuICAgIC8qKiBAaW50ZXJuYWwgKi8gc2V0dGluZ3M6IFNldHRpbmdzRGF0YVNlcnZpY2U7XHJcbiAgICAvKiogQGludGVybmFsICovIGN1c3RvbWVyOiBDdXN0b21lckRhdGFTZXJ2aWNlO1xyXG4gICAgLyoqIEBpbnRlcm5hbCAqLyBzaGlwcGluZ01ldGhvZDogU2hpcHBpbmdNZXRob2REYXRhU2VydmljZTtcclxuXHJcbiAgICAvKiogQGludGVybmFsICovXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGJhc2VEYXRhU2VydmljZTogQmFzZURhdGFTZXJ2aWNlKSB7XHJcbiAgICAgICAgdGhpcy5wcm9tb3Rpb24gPSBuZXcgUHJvbW90aW9uRGF0YVNlcnZpY2UoYmFzZURhdGFTZXJ2aWNlKTtcclxuICAgICAgICB0aGlzLmFkbWluaXN0cmF0b3IgPSBuZXcgQWRtaW5pc3RyYXRvckRhdGFTZXJ2aWNlKGJhc2VEYXRhU2VydmljZSk7XHJcbiAgICAgICAgdGhpcy5hdXRoID0gbmV3IEF1dGhEYXRhU2VydmljZShiYXNlRGF0YVNlcnZpY2UpO1xyXG4gICAgICAgIHRoaXMuY29sbGVjdGlvbiA9IG5ldyBDb2xsZWN0aW9uRGF0YVNlcnZpY2UoYmFzZURhdGFTZXJ2aWNlKTtcclxuICAgICAgICB0aGlzLnByb2R1Y3QgPSBuZXcgUHJvZHVjdERhdGFTZXJ2aWNlKGJhc2VEYXRhU2VydmljZSk7XHJcbiAgICAgICAgdGhpcy5jbGllbnQgPSBuZXcgQ2xpZW50RGF0YVNlcnZpY2UoYmFzZURhdGFTZXJ2aWNlKTtcclxuICAgICAgICB0aGlzLmZhY2V0ID0gbmV3IEZhY2V0RGF0YVNlcnZpY2UoYmFzZURhdGFTZXJ2aWNlKTtcclxuICAgICAgICB0aGlzLm9yZGVyID0gbmV3IE9yZGVyRGF0YVNlcnZpY2UoYmFzZURhdGFTZXJ2aWNlKTtcclxuICAgICAgICB0aGlzLnNldHRpbmdzID0gbmV3IFNldHRpbmdzRGF0YVNlcnZpY2UoYmFzZURhdGFTZXJ2aWNlKTtcclxuICAgICAgICB0aGlzLmN1c3RvbWVyID0gbmV3IEN1c3RvbWVyRGF0YVNlcnZpY2UoYmFzZURhdGFTZXJ2aWNlKTtcclxuICAgICAgICB0aGlzLnNoaXBwaW5nTWV0aG9kID0gbmV3IFNoaXBwaW5nTWV0aG9kRGF0YVNlcnZpY2UoYmFzZURhdGFTZXJ2aWNlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBkZXNjcmlwdGlvblxyXG4gICAgICogUGVyZm9ybSBhIEdyYXBoUUwgcXVlcnkuIFJldHVybnMgYSB7QGxpbmsgUXVlcnlSZXN1bHR9IHdoaWNoIGFsbG93cyBmdXJ0aGVyIGNvbnRyb2wgb3ZlclxyXG4gICAgICogdGhleSB0eXBlIG9mIHJlc3VsdCByZXR1cm5lZCwgZS5nLiBzdHJlYW0gb2YgdmFsdWVzLCBzaW5nbGUgdmFsdWUgZXRjLlxyXG4gICAgICpcclxuICAgICAqIEBleGFtcGxlXHJcbiAgICAgKiBgYGBUeXBlU2NyaXB0XHJcbiAgICAgKiBjb25zdCByZXN1bHQkID0gdGhpcy5kYXRhU2VydmljZS5xdWVyeShncWxgXHJcbiAgICAgKiAgIHF1ZXJ5IE15UXVlcnkoJGlkOiBJRCEpIHtcclxuICAgICAqICAgICBwcm9kdWN0KGlkOiAkaWQpIHtcclxuICAgICAqICAgICAgIGlkXHJcbiAgICAgKiAgICAgICBuYW1lXHJcbiAgICAgKiAgICAgICBzbHVnXHJcbiAgICAgKiAgICAgfVxyXG4gICAgICogICB9LFxyXG4gICAgICogICB7IGlkOiAxMjMgfSxcclxuICAgICAqICkubWFwU2luZ2xlKGRhdGEgPT4gZGF0YS5wcm9kdWN0KTtcclxuICAgICAqIGBgYFxyXG4gICAgICovXHJcbiAgICBxdWVyeTxULCBWID0gUmVjb3JkPHN0cmluZywgYW55Pj4oXHJcbiAgICAgICAgcXVlcnk6IERvY3VtZW50Tm9kZSxcclxuICAgICAgICB2YXJpYWJsZXM/OiBWLFxyXG4gICAgICAgIGZldGNoUG9saWN5OiBXYXRjaFF1ZXJ5RmV0Y2hQb2xpY3kgPSAnY2FjaGUtYW5kLW5ldHdvcmsnLFxyXG4gICAgKTogUXVlcnlSZXN1bHQ8VCwgVj4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmJhc2VEYXRhU2VydmljZS5xdWVyeShxdWVyeSwgdmFyaWFibGVzLCBmZXRjaFBvbGljeSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAZGVzY3JpcHRpb25cclxuICAgICAqIFBlcmZvcm0gYSBHcmFwaFFMIG11dGF0aW9uLlxyXG4gICAgICpcclxuICAgICAqIEBleGFtcGxlXHJcbiAgICAgKiBgYGBUeXBlU2NyaXB0XHJcbiAgICAgKiBjb25zdCByZXN1bHQkID0gdGhpcy5kYXRhU2VydmljZS5tdXRhdGUoZ3FsYFxyXG4gICAgICogICBtdXRhdGlvbiBNeU11dGF0aW9uKCRpbnB1dDogVXBkYXRlRW50aXR5SW5wdXQhKSB7XHJcbiAgICAgKiAgICAgdXBkYXRlRW50aXR5KGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAqICAgICAgIGlkXHJcbiAgICAgKiAgICAgICBuYW1lXHJcbiAgICAgKiAgICAgfVxyXG4gICAgICogICB9LFxyXG4gICAgICogICB7IGlucHV0OiB1cGRhdGVFbnRpdHlJbnB1dCB9LFxyXG4gICAgICogKTtcclxuICAgICAqIGBgYFxyXG4gICAgICovXHJcbiAgICBtdXRhdGU8VCwgViA9IFJlY29yZDxzdHJpbmcsIGFueT4+KFxyXG4gICAgICAgIG11dGF0aW9uOiBEb2N1bWVudE5vZGUsXHJcbiAgICAgICAgdmFyaWFibGVzPzogVixcclxuICAgICAgICB1cGRhdGU/OiBNdXRhdGlvblVwZGF0ZXJGbjxUPixcclxuICAgICk6IE9ic2VydmFibGU8VD4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmJhc2VEYXRhU2VydmljZS5tdXRhdGUobXV0YXRpb24sIHZhcmlhYmxlcywgdXBkYXRlKTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -1,6 +1,6 @@
1
1
  import { pick } from '@vendure/common/lib/pick';
2
2
  import { JobState, } from '../../common/generated-types';
3
- import { ADD_MEMBERS_TO_ZONE, CANCEL_JOB, CREATE_CHANNEL, CREATE_COUNTRY, CREATE_PAYMENT_METHOD, CREATE_TAX_CATEGORY, CREATE_TAX_RATE, CREATE_ZONE, DELETE_CHANNEL, DELETE_COUNTRY, DELETE_PAYMENT_METHOD, DELETE_TAX_CATEGORY, DELETE_TAX_RATE, DELETE_ZONE, GET_ACTIVE_CHANNEL, GET_AVAILABLE_COUNTRIES, GET_CHANNEL, GET_CHANNELS, GET_COUNTRY, GET_COUNTRY_LIST, GET_GLOBAL_SETTINGS, GET_JOBS_BY_ID, GET_JOBS_LIST, GET_JOB_INFO, GET_JOB_QUEUE_LIST, GET_PAYMENT_METHOD, GET_PAYMENT_METHOD_LIST, GET_PAYMENT_METHOD_OPERATIONS, GET_TAX_CATEGORIES, GET_TAX_CATEGORY, GET_TAX_RATE, GET_TAX_RATE_LIST, GET_ZONES, REMOVE_MEMBERS_FROM_ZONE, UPDATE_CHANNEL, UPDATE_COUNTRY, UPDATE_GLOBAL_SETTINGS, UPDATE_PAYMENT_METHOD, UPDATE_TAX_CATEGORY, UPDATE_TAX_RATE, UPDATE_ZONE, } from '../definitions/settings-definitions';
3
+ import { ADD_MEMBERS_TO_ZONE, CANCEL_JOB, CREATE_CHANNEL, CREATE_COUNTRY, CREATE_PAYMENT_METHOD, CREATE_TAX_CATEGORY, CREATE_TAX_RATE, CREATE_ZONE, DELETE_CHANNEL, DELETE_COUNTRY, DELETE_PAYMENT_METHOD, DELETE_TAX_CATEGORY, DELETE_TAX_RATE, DELETE_ZONE, GET_ACTIVE_CHANNEL, GET_AVAILABLE_COUNTRIES, GET_CHANNEL, GET_CHANNELS, GET_COUNTRY, GET_COUNTRY_LIST, GET_GLOBAL_SETTINGS, GET_JOBS_BY_ID, GET_JOBS_LIST, GET_JOB_INFO, GET_JOB_QUEUE_LIST, GET_PAYMENT_METHOD, GET_PAYMENT_METHOD_LIST, GET_PAYMENT_METHOD_OPERATIONS, GET_TAX_CATEGORIES, GET_TAX_CATEGORY, GET_TAX_RATE, GET_TAX_RATE_LIST, GET_TAX_RATE_LIST_SIMPLE, GET_ZONES, REMOVE_MEMBERS_FROM_ZONE, UPDATE_CHANNEL, UPDATE_COUNTRY, UPDATE_GLOBAL_SETTINGS, UPDATE_PAYMENT_METHOD, UPDATE_TAX_CATEGORY, UPDATE_TAX_RATE, UPDATE_ZONE, } from '../definitions/settings-definitions';
4
4
  export class SettingsDataService {
5
5
  constructor(baseDataService) {
6
6
  this.baseDataService = baseDataService;
@@ -24,12 +24,12 @@ export class SettingsDataService {
24
24
  }
25
25
  createCountry(input) {
26
26
  return this.baseDataService.mutate(CREATE_COUNTRY, {
27
- input: pick(input, ['code', 'enabled', 'translations']),
27
+ input: pick(input, ['code', 'enabled', 'translations', 'customFields']),
28
28
  });
29
29
  }
30
30
  updateCountry(input) {
31
31
  return this.baseDataService.mutate(UPDATE_COUNTRY, {
32
- input: pick(input, ['id', 'code', 'enabled', 'translations']),
32
+ input: pick(input, ['id', 'code', 'enabled', 'translations', 'customFields']),
33
33
  });
34
34
  }
35
35
  deleteCountry(id) {
@@ -101,6 +101,14 @@ export class SettingsDataService {
101
101
  },
102
102
  }, fetchPolicy);
103
103
  }
104
+ getTaxRatesSimple(take = 10, skip = 0, fetchPolicy) {
105
+ return this.baseDataService.query(GET_TAX_RATE_LIST_SIMPLE, {
106
+ options: {
107
+ take,
108
+ skip,
109
+ },
110
+ }, fetchPolicy);
111
+ }
104
112
  getTaxRate(id) {
105
113
  return this.baseDataService.query(GET_TAX_RATE, {
106
114
  id,
@@ -220,4 +228,4 @@ export class SettingsDataService {
220
228
  });
221
229
  }
222
230
  }
223
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MtZGF0YS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9kYXRhL3Byb3ZpZGVycy9zZXR0aW5ncy1kYXRhLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRWhELE9BQU8sRUEwQ0gsUUFBUSxHQWdCWCxNQUFNLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sRUFDSCxtQkFBbUIsRUFDbkIsVUFBVSxFQUNWLGNBQWMsRUFDZCxjQUFjLEVBQ2QscUJBQXFCLEVBQ3JCLG1CQUFtQixFQUNuQixlQUFlLEVBQ2YsV0FBVyxFQUNYLGNBQWMsRUFDZCxjQUFjLEVBQ2QscUJBQXFCLEVBQ3JCLG1CQUFtQixFQUNuQixlQUFlLEVBQ2YsV0FBVyxFQUNYLGtCQUFrQixFQUNsQix1QkFBdUIsRUFDdkIsV0FBVyxFQUNYLFlBQVksRUFDWixXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2hCLG1CQUFtQixFQUNuQixjQUFjLEVBQ2QsYUFBYSxFQUNiLFlBQVksRUFDWixrQkFBa0IsRUFDbEIsa0JBQWtCLEVBQ2xCLHVCQUF1QixFQUN2Qiw2QkFBNkIsRUFDN0Isa0JBQWtCLEVBQ2xCLGdCQUFnQixFQUNoQixZQUFZLEVBQ1osaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCx3QkFBd0IsRUFDeEIsY0FBYyxFQUNkLGNBQWMsRUFDZCxzQkFBc0IsRUFDdEIscUJBQXFCLEVBQ3JCLG1CQUFtQixFQUNuQixlQUFlLEVBQ2YsV0FBVyxHQUNkLE1BQU0scUNBQXFDLENBQUM7QUFJN0MsTUFBTSxPQUFPLG1CQUFtQjtJQUM1QixZQUFvQixlQUFnQztRQUFoQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7SUFBRyxDQUFDO0lBRXhELFlBQVksQ0FBQyxPQUFlLEVBQUUsRUFBRSxPQUFlLENBQUMsRUFBRSxVQUFtQjtRQUNqRSxP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QU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQTJDLGNBQWMsRUFBRTtZQUN4RixHQUFHO1NBQ04sQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFVBQVUsQ0FBQyxPQUF3QjtRQUMvQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUM3QixhQUFhLEVBQ2I7WUFDSSxPQUFPO1NBQ1YsRUFDRCxhQUFhLENBQ2hCLENBQUM7SUFDTixDQUFDO0lBRUQsWUFBWTtRQUNSLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQXdCLGtCQUFrQixDQUFDLENBQUM7SUFDakYsQ0FBQztJQUVELGNBQWM7UUFDVixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUF5QyxhQUFhLEVBQUU7WUFDckYsT0FBTyxFQUFFO2dCQUNMLE1BQU0sRUFBRTtvQkFDSixLQUFLLEVBQUU7d0JBQ0gsRUFBRSxFQUFFLFFBQVEsQ0FBQyxPQUFPO3FCQUN2QjtpQkFDSjthQUNKO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFNBQVMsQ0FBQyxFQUFVO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQTBDLFVBQVUsRUFBRTtZQUNwRixFQUFFO1NBQ0wsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmV0Y2hQb2xpY3ksIFdhdGNoUXVlcnlGZXRjaFBvbGljeSB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2NvcmUnO1xyXG5pbXBvcnQgeyBwaWNrIH0gZnJvbSAnQHZlbmR1cmUvY29tbW9uL2xpYi9waWNrJztcclxuXHJcbmltcG9ydCB7XHJcbiAgICBBZGRNZW1iZXJzVG9ab25lLFxyXG4gICAgQ2FuY2VsSm9iLFxyXG4gICAgQ3JlYXRlQ2hhbm5lbCxcclxuICAgIENyZWF0ZUNoYW5uZWxJbnB1dCxcclxuICAgIENyZWF0ZUNvdW50cnksXHJcbiAgICBDcmVhdGVDb3VudHJ5SW5wdXQsXHJcbiAgICBDcmVhdGVQYXltZW50TWV0aG9kLFxyXG4gICAgQ3JlYXRlUGF5bWVudE1ldGhvZElucHV0LFxyXG4gICAgQ3JlYXRlVGF4Q2F0ZWdvcnksXHJcbiAgICBDcmVhdGVUYXhDYXRlZ29yeUlucHV0LFxyXG4gICAgQ3JlYXRlVGF4UmF0ZSxcclxuICAgIENyZWF0ZVRheFJhdGVJbnB1dCxcclxuICAgIENyZWF0ZVpvbmUsXHJcbiAgICBDcmVhdGVab25lSW5wdXQsXHJcbiAgICBEZWxldGVDaGFubmVsLFxyXG4gICAgRGVsZXRlQ291bnRyeSxcclxuICAgIERlbGV0ZVBheW1lbnRNZXRob2QsXHJcbiAgICBEZWxldGVUYXhDYXRlZ29yeSxcclxuICAgIERlbGV0ZVRheFJhdGUsXHJcbiAgICBEZWxldGVab25lLFxyXG4gICAgR2V0QWN0aXZlQ2hhbm5lbCxcclxuICAgIEdldEFsbEpvYnMsXHJcbiAgICBHZXRBdmFpbGFibGVDb3VudHJpZXMsXHJcbiAgICBHZXRDaGFubmVsLFxyXG4gICAgR2V0Q2hhbm5lbHMsXHJcbiAgICBHZXRDb3VudHJ5LFxyXG4gICAgR2V0Q291bnRyeUxpc3QsXHJcbiAgICBHZXRHbG9iYWxTZXR0aW5ncyxcclxuICAgIEdldEpvYkluZm8sXHJcbiAgICBHZXRKb2JRdWV1ZUxpc3QsXHJcbiAgICBHZXRKb2JzQnlJZCxcclxuICAgIEdldFBheW1lbnRNZXRob2QsXHJcbiAgICBHZXRQYXltZW50TWV0aG9kTGlzdCxcclxuICAgIEdldFBheW1lbnRNZXRob2RPcGVyYXRpb25zLFxyXG4gICAgR2V0VGF4Q2F0ZWdvcmllcyxcclxuICAgIEdldFRheENhdGVnb3J5LFxyXG4gICAgR2V0VGF4UmF0ZSxcclxuICAgIEdldFRheFJhdGVMaXN0LFxyXG4gICAgR2V0Wm9uZSxcclxuICAgIEdldFpvbmVzLFxyXG4gICAgSm9iTGlzdE9wdGlvbnMsXHJcbiAgICBKb2JTdGF0ZSxcclxuICAgIFJlbW92ZU1lbWJlcnNGcm9tWm9uZSxcclxuICAgIFVwZGF0ZUNoYW5uZWwsXHJcbiAgICBVcGRhdGVDaGFubmVsSW5wdXQsXHJcbiAgICBVcGRhdGVDb3VudHJ5LFxyXG4gICAgVXBkYXRlQ291bnRyeUlucHV0LFxyXG4gICAgVXBkYXRlR2xvYmFsU2V0dGluZ3MsXHJcbiAgICBVcGRhdGVHbG9iYWxTZXR0aW5nc0lucHV0LFxyXG4gICAgVXBkYXRlUGF5bWVudE1ldGhvZCxcclxuICAgIFVwZGF0ZVBheW1lbnRNZXRob2RJbnB1dCxcclxuICAgIFVwZGF0ZVRheENhdGVnb3J5LFxyXG4gICAgVXBkYXRlVGF4Q2F0ZWdvcnlJbnB1dCxcclxuICAgIFVwZGF0ZVRheFJhdGUsXHJcbiAgICBVcGRhdGVUYXhSYXRlSW5wdXQsXHJcbiAgICBVcGRhdGVab25lLFxyXG4gICAgVXBkYXRlWm9uZUlucHV0LFxyXG59IGZyb20gJy4uLy4uL2NvbW1vbi9nZW5lcmF0ZWQtdHlwZXMnO1xyXG5pbXBvcnQge1xyXG4gICAgQUREX01FTUJFUlNfVE9fWk9ORSxcclxuICAgIENBTkNFTF9KT0IsXHJcbiAgICBDUkVBVEVfQ0hBTk5FTCxcclxuICAgIENSRUFURV9DT1VOVFJZLFxyXG4gICAgQ1JFQVRFX1BBWU1FTlRfTUVUSE9ELFxyXG4gICAgQ1JFQVRFX1RBWF9DQVRFR09SWSxcclxuICAgIENSRUFURV9UQVhfUkFURSxcclxuICAgIENSRUFURV9aT05FLFxyXG4gICAgREVMRVRFX0NIQU5ORUwsXHJcbiAgICBERUxFVEVfQ09VTlRSWSxcclxuICAgIERFTEVURV9QQVlNRU5UX01FVEhPRCxcclxuICAgIERFTEVURV9UQVhfQ0FURUdPUlksXHJcbiAgICBERUxFVEVfVEFYX1JBVEUsXHJcbiAgICBERUxFVEVfWk9ORSxcclxuICAgIEdFVF9BQ1RJVkVfQ0hBTk5FTCxcclxuICAgIEdFVF9BVkFJTEFCTEVfQ09VTlRSSUVTLFxyXG4gICAgR0VUX0NIQU5ORUwsXHJcbiAgICBHRVRfQ0hBTk5FTFMsXHJcbiAgICBHRVRfQ09VTlRSWSxcclxuICAgIEdFVF9DT1VOVFJZX0xJU1QsXHJcbiAgICBHRVRfR0xPQkFMX1NFVFRJTkdTLFxyXG4gICAgR0VUX0pPQlNfQllfSUQsXHJcbiAgICBHRVRfSk9CU19MSVNULFxyXG4gICAgR0VUX0pPQl9JTkZPLFxyXG4gICAgR0VUX0pPQl9RVUVVRV9MSVNULFxyXG4gICAgR0VUX1BBWU1FTlRfTUVUSE9ELFxyXG4gICAgR0VUX1BBWU1FTlRfTUVUSE9EX0xJU1QsXHJcbiAgICBHRVRfUEFZTUVOVF9NRVRIT0RfT1BFUkFUSU9OUyxcclxuICAgIEdFVF9UQVhfQ0FURUdPUklFUyxcclxuICAgIEdFVF9UQVhfQ0FURUdPUlksXHJcbiAgICBHRVRfVEFYX1JBVEUsXHJcbiAgICBHRVRfVEFYX1JBVEVfTElTVCxcclxuICAgIEdFVF9aT05FUyxcclxuICAgIFJFTU9WRV9NRU1CRVJTX0ZST01fWk9ORSxcclxuICAgIFVQREFURV9DSEFOTkVMLFxyXG4gICAgVVBEQVRFX0NPVU5UUlksXHJcbiAgICBVUERBVEVfR0xPQkFMX1NFVFRJTkdTLFxyXG4gICAgVVBEQVRFX1BBWU1FTlRfTUVUSE9ELFxyXG4gICAgVVBEQVRFX1RBWF9DQVRFR09SWSxcclxuICAgIFVQREFURV9UQVhfUkFURSxcclxuICAgIFVQREFURV9aT05FLFxyXG59IGZyb20gJy4uL2RlZmluaXRpb25zL3NldHRpbmdzLWRlZmluaXRpb25zJztcclxuXHJcbmltcG9ydCB7IEJhc2VEYXRhU2VydmljZSB9IGZyb20gJy4vYmFzZS1kYXRhLnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0IGNsYXNzIFNldHRpbmdzRGF0YVNlcnZpY2Uge1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBiYXNlRGF0YVNlcnZpY2U6IEJhc2VEYXRhU2VydmljZSkge31cclxuXHJcbiAgICBnZXRDb3VudHJpZXModGFrZTogbnVtYmVyID0gMTAsIHNraXA6IG51bWJlciA9IDAsIGZpbHRlclRlcm0/OiBzdHJpbmcpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5iYXNlRGF0YVNlcnZpY2UucXVlcnk8R2V0Q291bnRyeUxpc3QuUXVlcnksIEdldENvdW50cnlMaXN0LlZhcmlhYmxlcz4oR0VUX0NPVU5UUllfTElTVCwge1xyXG4gICAgICAgICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgICAgICAgICB0YWtlLFxyXG4gICAgICAgICAgICAgICAgc2tpcCxcclxuICAgICAgICAgICAgICAgIGZpbHRlcjoge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IGZpbHRlclRlcm0gPyB7IGNvbnRhaW5zOiBmaWx0ZXJUZXJtIH0gOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRBdmFpbGFibGVDb3VudHJpZXMoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYmFzZURhdGFTZXJ2aWNlLnF1ZXJ5PEdldEF2YWlsYWJsZUNvdW50cmllcy5RdWVyeT4oR0VUX0FWQUlMQUJMRV9DT1VOVFJJRVMpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldENvdW50cnkoaWQ6IHN0cmluZykge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmJhc2VEYXRhU2VydmljZS5xdWVyeTxHZXRDb3VudHJ5LlF1ZXJ5LCBHZXRDb3VudHJ5LlZhcmlhYmxlcz4oR0VUX0NPVU5UUlksIHsgaWQgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgY3JlYXRlQ291bnRyeShpbnB1dDogQ3JlYXRlQ291bnRyeUlucHV0KSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYmFzZURhdGFTZXJ2aWNlLm11dGF0ZTxDcmVhdGVDb3VudHJ5Lk11dGF0aW9uLCBDcmVhdGVDb3VudHJ5LlZhcmlhYmxlcz4oQ1JFQVRFX0NPVU5UUlksIHtcclxuICAgICAgICAgICAgaW5wdXQ6IHBpY2soaW5wdXQsIFsnY29kZScsICdlbmFibGVkJywgJ3RyYW5zbGF0aW9ucyddKSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVDb3VudHJ5KGlucHV0OiBVcGRhdGVDb3VudHJ5SW5wdXQpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5iYXNlRGF0YVNlcnZpY2UubXV0YXRlPFVwZGF0ZUNvdW50cnkuTXV0YXRpb24sIFVwZGF0ZUNvdW50cnkuVmFyaWFibGVzPihVUERBVEVfQ09VTlRSWSwge1xyXG4gICAgICAgICAgICBpbnB1dDogcGljayhpbnB1dCwgWydpZCcsICdjb2RlJywgJ2VuYWJsZWQnLCAndHJhbnNsYXRpb25zJ10pLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGRlbGV0ZUNvdW50cnkoaWQ6IHN0cmluZykge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmJhc2VEYXRhU2VydmljZS5tdXRhdGU8RGVsZXRlQ291bnRyeS5NdXRhdGlvbiwgRGVsZXRlQ291bnRyeS5WYXJpYWJsZXM+KERFTEVURV9DT1VOVFJZLCB7XHJcbiAgICAgICAgICAgIGlkLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFpvbmVzKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmJhc2VEYXRhU2VydmljZS5xdWVyeTxHZXRab25lcy5RdWVyeT4oR0VUX1pPTkVTKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRab25lKGlkOiBzdHJpbmcpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5iYXNlRGF0YVNlcnZpY2UucXVlcnk8R2V0Wm9uZS5RdWVyeSwgR2V0Wm9uZS5WYXJpYWJsZXM+KEdFVF9aT05FUywgeyBpZCB9KTtcclxuICAgIH1cclxuXHJcbiAgICBjcmVhdGVab25lKGlucHV0OiBDcmVhdGVab25lSW5wdXQpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5iYXNlRGF0YVNlcnZpY2UubXV0YXRlPENyZWF0ZVpvbmUuTXV0YXRpb24sIENyZWF0ZVpvbmUuVmFyaWFibGVzPihDUkVBVEVfWk9ORSwge1xyXG4gICAgICAgICAgICBpbnB1dCxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVab25lKGlucHV0OiBVcGRhdGVab25lSW5wdXQpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5iYXNlRGF0YVNlcnZpY2UubXV0YXRlPFVwZGF0ZVpvbmUuTXV0YXRpb24sIFVwZGF0ZVpvbmUuVmFyaWFibGVzPihVUERBVEVfWk9ORSwge1xyXG4gICAgICAgICAgICBpbnB1dCxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBkZWxldGVab25lKGlkOiBzdHJpbmcpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5iYXNlRGF0YVNlcnZpY2UubXV0YXRlPERlbGV0ZVpvbmUuTXV0YXRpb24sIERlbGV0ZVpvbmUuVmFyaWFibGVzPihERUxFVEVfWk9ORSwge1xyXG4gICAgICAgICAgICBpZCxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBhZGRNZW1iZXJzVG9ab25lKHpvbmVJZDogc3RyaW5nLCBtZW1iZXJJZHM6IHN0cmluZ1tdKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYmFzZURhdGFTZXJ2aWNlLm11dGF0ZTxBZGRNZW1iZXJzVG9ab25lLk11dGF0aW9uLCBBZGRNZW1iZXJzVG9ab25lLlZhcmlhYmxlcz4oXHJcbiAgICAgICAgICAgIEFERF9NRU1CRVJTX1RPX1pPTkUsXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHpvbmVJZCxcclxuICAgICAgICAgICAgICAgIG1lbWJlcklkcyxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZU1lbWJlcnNGcm9tWm9uZSh6b25lSWQ6IHN0cmluZywgbWVtYmVySWRzOiBzdHJpbmdbXSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmJhc2VEYXRhU2VydmljZS5tdXRhdGU8UmVtb3ZlTWVtYmVyc0Zyb21ab25lLk11dGF0aW9uLCBSZW1vdmVNZW1iZXJzRnJvbVpvbmUuVmFyaWFibGVzPihcclxuICAgICAgICAgICAgUkVNT1ZFX01FTUJFUlNfRlJPTV9aT05FLFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB6b25lSWQsXHJcbiAgICAgICAgICAgICAgICBtZW1iZXJJZHMsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRUYXhDYXRlZ29yaWVzKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmJhc2VEYXRhU2VydmljZS5xdWVyeTxHZXRUYXhDYXRlZ29yaWVzLlF1ZXJ5PihHRVRfVEFYX0NBVEVHT1JJRVMpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFRheENhdGVnb3J5KGlkOiBzdHJpbmcpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5iYXNlRGF0YVNlcnZpY2UucXVlcnk8R2V0VGF4Q2F0ZWdvcnkuUXVlcnksIEdldFRheENhdGVnb3J5LlZhcmlhYmxlcz4oR0VUX1RBWF9DQVRFR09SWSwge1xyXG4gICAgICAgICAgICBpZCxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBjcmVhdGVUYXhDYXRlZ29yeShpbnB1dDogQ3JlYXRlVGF4Q2F0ZWdvcnlJbnB1dCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmJhc2VEYXRhU2VydmljZS5tdXRhdGU8Q3JlYXRlVGF4Q2F0ZWdvcnkuTXV0YXRpb24sIENyZWF0ZVRheENhdGVnb3J5LlZhcmlhYmxlcz4oXHJcbiAgICAgICAgICAgIENSRUFURV9UQVhfQ0FURUdPUlksXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGlucHV0LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlVGF4Q2F0ZWdvcnkoaW5wdXQ6IFVwZGF0ZVRheENhdGVnb3J5SW5wdXQpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5iYXNlRGF0YVNlcnZpY2UubXV0YXRlPFVwZGF0ZVRheENhdGVnb3J5Lk11dGF0aW9uLCBVcGRhdGVUYXhDYXRlZ29yeS5WYXJpYWJsZXM+KFxyXG4gICAgICAgICAgICBVUERBVEVfVEFYX0NBVEVHT1JZLFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBpbnB1dCxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGRlbGV0ZVRheENhdGVnb3J5KGlkOiBzdHJpbmcpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5iYXNlRGF0YVNlcnZpY2UubXV0YXRlPERlbGV0ZVRheENhdGVnb3J5Lk11dGF0aW9uLCBEZWxldGVUYXhSYXRlLlZhcmlhYmxlcz4oXHJcbiAgICAgICAgICAgIERFTEVURV9UQVhfQ0FURUdPUlksXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGlkLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0VGF4UmF0ZXModGFrZTogbnVtYmVyID0gMTAsIHNraXA6IG51bWJlciA9IDAsIGZldGNoUG9saWN5PzogRmV0Y2hQb2xpY3kpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5iYXNlRGF0YVNlcnZpY2UucXVlcnk8R2V0VGF4UmF0ZUxpc3QuUXVlcnksIEdldFRheFJhdGVMaXN0LlZhcmlhYmxlcz4oXHJcbiAgICAgICAgICAgIEdFVF9UQVhfUkFURV9MSVNULFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGFrZSxcclxuICAgICAgICAgICAgICAgICAgICBza2lwLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZmV0Y2hQb2xpY3ksXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRUYXhSYXRlKGlkOiBzdHJpbmcpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5iYXNlRGF0YVNlcnZpY2UucXVlcnk8R2V0VGF4UmF0ZS5RdWVyeSwgR2V0VGF4UmF0ZS5WYXJpYWJsZXM+KEdFVF9UQVhfUkFURSwge1xyXG4gICAgICAgICAgICBpZCxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBjcmVhdGVUYXhSYXRlKGlucHV0OiBDcmVhdGVUYXhSYXRlSW5wdXQpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5iYXNlRGF0YVNlcnZpY2UubXV0YXRlPENyZWF0ZVRheFJhdGUuTXV0YXRpb24sIENyZWF0ZVRheFJhdGUuVmFyaWFibGVzPihDUkVBVEVfVEFYX1JBVEUsIHtcclxuICAgICAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlVGF4UmF0ZShpbnB1dDogVXBkYXRlVGF4UmF0ZUlucHV0KSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYmFzZURhdGFTZXJ2aWNlLm11dGF0ZTxVcGRhdGVUYXhSYXRlLk11dGF0aW9uLCBVcGRhdGVUYXhSYXRlLlZhcmlhYmxlcz4oVVBEQVRFX1RBWF9SQVRFLCB7XHJcbiAgICAgICAgICAgIGlucHV0LFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGRlbGV0ZVRheFJhdGUoaWQ6IHN0cmluZykge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmJhc2VEYXRhU2VydmljZS5tdXRhdGU8RGVsZXRlVGF4UmF0ZS5NdXRhdGlvbiwgRGVsZXRlVGF4UmF0ZS5WYXJpYWJsZXM+KERFTEVURV9UQVhfUkFURSwge1xyXG4gICAgICAgICAgICBpZCxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRDaGFubmVscygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5iYXNlRGF0YVNlcnZpY2UucXVlcnk8R2V0Q2hhbm5lbHMuUXVlcnk+KEdFVF9DSEFOTkVMUyk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0Q2hhbm5lbChpZDogc3RyaW5nKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYmFzZURhdGFTZXJ2aWNlLnF1ZXJ5PEdldENoYW5uZWwuUXVlcnksIEdldENoYW5uZWwuVmFyaWFibGVzPihHRVRfQ0hBTk5FTCwge1xyXG4gICAgICAgICAgICBpZCxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRBY3RpdmVDaGFubmVsKGZldGNoUG9saWN5PzogRmV0Y2hQb2xpY3kpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5iYXNlRGF0YVNlcnZpY2UucXVlcnk8R2V0QWN0aXZlQ2hhbm5lbC5RdWVyeSwgR2V0QWN0aXZlQ2hhbm5lbC5WYXJpYWJsZXM+KFxyXG4gICAgICAgICAgICBHRVRfQUNUSVZFX0NIQU5ORUwsXHJcbiAgICAgICAgICAgIHt9LFxyXG4gICAgICAgICAgICBmZXRjaFBvbGljeSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGNyZWF0ZUNoYW5uZWwoaW5wdXQ6IENyZWF0ZUNoYW5uZWxJbnB1dCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmJhc2VEYXRhU2VydmljZS5tdXRhdGU8Q3JlYXRlQ2hhbm5lbC5NdXRhdGlvbiwgQ3JlYXRlQ2hhbm5lbC5WYXJpYWJsZXM+KENSRUFURV9DSEFOTkVMLCB7XHJcbiAgICAgICAgICAgIGlucHV0LFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZUNoYW5uZWwoaW5wdXQ6IFVwZGF0ZUNoYW5uZWxJbnB1dCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmJhc2VEYXRhU2VydmljZS5tdXRhdGU8VXBkYXRlQ2hhbm5lbC5NdXRhdGlvbiwgVXBkYXRlQ2hhbm5lbC5WYXJpYWJsZXM+KFVQREFURV9DSEFOTkVMLCB7XHJcbiAgICAgICAgICAgIGlucHV0LFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGRlbGV0ZUNoYW5uZWwoaWQ6IHN0cmluZykge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmJhc2VEYXRhU2VydmljZS5tdXRhdGU8RGVsZXRlQ2hhbm5lbC5NdXRhdGlvbiwgRGVsZXRlQ2hhbm5lbC5WYXJpYWJsZXM+KERFTEVURV9DSEFOTkVMLCB7XHJcbiAgICAgICAgICAgIGlkLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFBheW1lbnRNZXRob2RzKHRha2U6IG51bWJlciA9IDEwLCBza2lwOiBudW1iZXIgPSAwKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYmFzZURhdGFTZXJ2aWNlLnF1ZXJ5PEdldFBheW1lbnRNZXRob2RMaXN0LlF1ZXJ5LCBHZXRQYXltZW50TWV0aG9kTGlzdC5WYXJpYWJsZXM+KFxyXG4gICAgICAgICAgICBHRVRfUEFZTUVOVF9NRVRIT0RfTElTVCxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgICAgICAgICAgICAgIHNraXAsXHJcbiAgICAgICAgICAgICAgICAgICAgdGFrZSxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRQYXltZW50TWV0aG9kKGlkOiBzdHJpbmcpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5iYXNlRGF0YVNlcnZpY2UucXVlcnk8R2V0UGF5bWVudE1ldGhvZC5RdWVyeSwgR2V0UGF5bWVudE1ldGhvZC5WYXJpYWJsZXM+KFxyXG4gICAgICAgICAgICBHRVRfUEFZTUVOVF9NRVRIT0QsXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGlkLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgY3JlYXRlUGF5bWVudE1ldGhvZChpbnB1dDogQ3JlYXRlUGF5bWVudE1ldGhvZElucHV0KSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYmFzZURhdGFTZXJ2aWNlLm11dGF0ZTxDcmVhdGVQYXltZW50TWV0aG9kLk11dGF0aW9uLCBDcmVhdGVQYXltZW50TWV0aG9kLlZhcmlhYmxlcz4oXHJcbiAgICAgICAgICAgIENSRUFURV9QQVlNRU5UX01FVEhPRCxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVQYXltZW50TWV0aG9kKGlucHV0OiBVcGRhdGVQYXltZW50TWV0aG9kSW5wdXQpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5iYXNlRGF0YVNlcnZpY2UubXV0YXRlPFVwZGF0ZVBheW1lbnRNZXRob2QuTXV0YXRpb24sIFVwZGF0ZVBheW1lbnRNZXRob2QuVmFyaWFibGVzPihcclxuICAgICAgICAgICAgVVBEQVRFX1BBWU1FTlRfTUVUSE9ELFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBpbnB1dCxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGRlbGV0ZVBheW1lbnRNZXRob2QoaWQ6IHN0cmluZywgZm9yY2U6IGJvb2xlYW4pIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5iYXNlRGF0YVNlcnZpY2UubXV0YXRlPERlbGV0ZVBheW1lbnRNZXRob2QuTXV0YXRpb24sIERlbGV0ZVBheW1lbnRNZXRob2QuVmFyaWFibGVzPihcclxuICAgICAgICAgICAgREVMRVRFX1BBWU1FTlRfTUVUSE9ELFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBpZCxcclxuICAgICAgICAgICAgICAgIGZvcmNlLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UGF5bWVudE1ldGhvZE9wZXJhdGlvbnMoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYmFzZURhdGFTZXJ2aWNlLnF1ZXJ5PEdldFBheW1lbnRNZXRob2RPcGVyYXRpb25zLlF1ZXJ5PihHRVRfUEFZTUVOVF9NRVRIT0RfT1BFUkFUSU9OUyk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0R2xvYmFsU2V0dGluZ3MoZmV0Y2hQb2xpY3k/OiBXYXRjaFF1ZXJ5RmV0Y2hQb2xpY3kpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5iYXNlRGF0YVNlcnZpY2UucXVlcnk8R2V0R2xvYmFsU2V0dGluZ3MuUXVlcnk+KFxyXG4gICAgICAgICAgICBHRVRfR0xPQkFMX1NFVFRJTkdTLFxyXG4gICAgICAgICAgICB1bmRlZmluZWQsXHJcbiAgICAgICAgICAgIGZldGNoUG9saWN5LFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlR2xvYmFsU2V0dGluZ3MoaW5wdXQ6IFVwZGF0ZUdsb2JhbFNldHRpbmdzSW5wdXQpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5iYXNlRGF0YVNlcnZpY2UubXV0YXRlPFVwZGF0ZUdsb2JhbFNldHRpbmdzLk11dGF0aW9uLCBVcGRhdGVHbG9iYWxTZXR0aW5ncy5WYXJpYWJsZXM+KFxyXG4gICAgICAgICAgICBVUERBVEVfR0xPQkFMX1NFVFRJTkdTLFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBpbnB1dCxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEpvYihpZDogc3RyaW5nKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYmFzZURhdGFTZXJ2aWNlLnF1ZXJ5PEdldEpvYkluZm8uUXVlcnksIEdldEpvYkluZm8uVmFyaWFibGVzPihHRVRfSk9CX0lORk8sIHsgaWQgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcG9sbEpvYnMoaWRzOiBzdHJpbmdbXSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmJhc2VEYXRhU2VydmljZS5xdWVyeTxHZXRKb2JzQnlJZC5RdWVyeSwgR2V0Sm9ic0J5SWQuVmFyaWFibGVzPihHRVRfSk9CU19CWV9JRCwge1xyXG4gICAgICAgICAgICBpZHMsXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0QWxsSm9icyhvcHRpb25zPzogSm9iTGlzdE9wdGlvbnMpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5iYXNlRGF0YVNlcnZpY2UucXVlcnk8R2V0QWxsSm9icy5RdWVyeSwgR2V0QWxsSm9icy5WYXJpYWJsZXM+KFxyXG4gICAgICAgICAgICBHRVRfSk9CU19MSVNULFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBvcHRpb25zLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAnY2FjaGUtZmlyc3QnLFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0Sm9iUXVldWVzKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmJhc2VEYXRhU2VydmljZS5xdWVyeTxHZXRKb2JRdWV1ZUxpc3QuUXVlcnk+KEdFVF9KT0JfUVVFVUVfTElTVCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UnVubmluZ0pvYnMoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYmFzZURhdGFTZXJ2aWNlLnF1ZXJ5PEdldEFsbEpvYnMuUXVlcnksIEdldEFsbEpvYnMuVmFyaWFibGVzPihHRVRfSk9CU19MSVNULCB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcclxuICAgICAgICAgICAgICAgIGZpbHRlcjoge1xyXG4gICAgICAgICAgICAgICAgICAgIHN0YXRlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVxOiBKb2JTdGF0ZS5SVU5OSU5HLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNhbmNlbEpvYihpZDogc3RyaW5nKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYmFzZURhdGFTZXJ2aWNlLm11dGF0ZTxDYW5jZWxKb2IuTXV0YXRpb24sIENhbmNlbEpvYi5WYXJpYWJsZXM+KENBTkNFTF9KT0IsIHtcclxuICAgICAgICAgICAgaWQsXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuIl19
231
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MtZGF0YS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9kYXRhL3Byb3ZpZGVycy9zZXR0aW5ncy1kYXRhLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRWhELE9BQU8sRUEyQ0gsUUFBUSxHQWdCWCxNQUFNLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sRUFDSCxtQkFBbUIsRUFDbkIsVUFBVSxFQUNWLGNBQWMsRUFDZCxjQUFjLEVBQ2QscUJBQXFCLEVBQ3JCLG1CQUFtQixFQUNuQixlQUFlLEVBQ2YsV0FBVyxFQUNYLGNBQWMsRUFDZCxjQUFjLEVBQ2QscUJBQXFCLEVBQ3JCLG1CQUFtQixFQUNuQixlQUFlLEVBQ2YsV0FBVyxFQUNYLGtCQUFrQixFQUNsQix1QkFBdUIsRUFDdkIsV0FBVyxFQUNYLFlBQVksRUFDWixXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2hCLG1CQUFtQixFQUNuQixjQUFjLEVBQ2QsYUFBYSxFQUNiLFlBQVksRUFDWixrQkFBa0IsRUFDbEIsa0JBQWtCLEVBQ2xCLHVCQUF1QixFQUN2Qiw2QkFBNkIsRUFDN0Isa0JBQWtCLEVBQ2xCLGdCQUFnQixFQUNoQixZQUFZLEVBQ1osaUJBQWlCLEVBQ2pCLHdCQUF3QixFQUN4QixTQUFTLEVBQ1Qsd0JBQXdCLEVBQ3hCLGNBQWMsRUFDZCxjQUFjLEVBQ2Qsc0JBQXNCLEVBQ3RCLHFCQUFxQixFQUNyQixtQkFBbUIsRUFDbkIsZUFBZSxFQUNmLFdBQVcsR0FDZCxNQUFNLHFDQUFxQyxDQUFDO0FBSTdDLE1BQU0sT0FBTyxtQkFBbUI7SUFDNUIsWUFBb0IsZUFBZ0M7UUFBaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO0lBQUcsQ0FBQztJQUV4RCxZQUFZLENBQUMsT0FBZSxFQUFFLEVBQUUsT0FBZSxDQUFDLEVBQUUs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QUFPLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUM5QixzQkFBc0IsRUFDdEI7WUFDSSxLQUFLO1NBQ1IsQ0FDSixDQUFDO0lBQ04sQ0FBQztJQUVELE1BQU0sQ0FBQyxFQUFVO1FBQ2IsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBeUMsWUFBWSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNwRyxDQUFDO0lBRUQsUUFBUSxDQUFDLEdBQWE7UUFDbEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBMkMsY0FBYyxFQUFFO1lBQ3hGLEdBQUc7U0FDTixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsVUFBVSxDQUFDLE9BQXdCO1FBQy9CLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQzdCLGFBQWEsRUFDYjtZQUNJLE9BQU87U0FDVixFQUNELGFBQWEsQ0FDaEIsQ0FBQztJQUNOLENBQUM7SUFFRCxZQUFZO1FBQ1IsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBd0Isa0JBQWtCLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRUQsY0FBYztRQUNWLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQXlDLGFBQWEsRUFBRTtZQUNyRixPQUFPLEVBQUU7Z0JBQ0wsTUFBTSxFQUFFO29CQUNKLEtBQUssRUFBRTt3QkFDSCxFQUFFLEVBQUUsUUFBUSxDQUFDLE9BQU87cUJBQ3ZCO2lCQUNKO2FBQ0o7U0FDSixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsU0FBUyxDQUFDLEVBQVU7UUFDaEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBMEMsVUFBVSxFQUFFO1lBQ3BGLEVBQUU7U0FDTCxDQUFDLENBQUM7SUFDUCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGZXRjaFBvbGljeSwgV2F0Y2hRdWVyeUZldGNoUG9saWN5IH0gZnJvbSAnQGFwb2xsby9jbGllbnQvY29yZSc7XHJcbmltcG9ydCB7IHBpY2sgfSBmcm9tICdAdmVuZHVyZS9jb21tb24vbGliL3BpY2snO1xyXG5cclxuaW1wb3J0IHtcclxuICAgIEFkZE1lbWJlcnNUb1pvbmUsXHJcbiAgICBDYW5jZWxKb2IsXHJcbiAgICBDcmVhdGVDaGFubmVsLFxyXG4gICAgQ3JlYXRlQ2hhbm5lbElucHV0LFxyXG4gICAgQ3JlYXRlQ291bnRyeSxcclxuICAgIENyZWF0ZUNvdW50cnlJbnB1dCxcclxuICAgIENyZWF0ZVBheW1lbnRNZXRob2QsXHJcbiAgICBDcmVhdGVQYXltZW50TWV0aG9kSW5wdXQsXHJcbiAgICBDcmVhdGVUYXhDYXRlZ29yeSxcclxuICAgIENyZWF0ZVRheENhdGVnb3J5SW5wdXQsXHJcbiAgICBDcmVhdGVUYXhSYXRlLFxyXG4gICAgQ3JlYXRlVGF4UmF0ZUlucHV0LFxyXG4gICAgQ3JlYXRlWm9uZSxcclxuICAgIENyZWF0ZVpvbmVJbnB1dCxcclxuICAgIERlbGV0ZUNoYW5uZWwsXHJcbiAgICBEZWxldGVDb3VudHJ5LFxyXG4gICAgRGVsZXRlUGF5bWVudE1ldGhvZCxcclxuICAgIERlbGV0ZVRheENhdGVnb3J5LFxyXG4gICAgRGVsZXRlVGF4UmF0ZSxcclxuICAgIERlbGV0ZVpvbmUsXHJcbiAgICBHZXRBY3RpdmVDaGFubmVsLFxyXG4gICAgR2V0QWxsSm9icyxcclxuICAgIEdldEF2YWlsYWJsZUNvdW50cmllcyxcclxuICAgIEdldENoYW5uZWwsXHJcbiAgICBHZXRDaGFubmVscyxcclxuICAgIEdldENvdW50cnksXHJcbiAgICBHZXRDb3VudHJ5TGlzdCxcclxuICAgIEdldEdsb2JhbFNldHRpbmdzLFxyXG4gICAgR2V0Sm9iSW5mbyxcclxuICAgIEdldEpvYlF1ZXVlTGlzdCxcclxuICAgIEdldEpvYnNCeUlkLFxyXG4gICAgR2V0UGF5bWVudE1ldGhvZCxcclxuICAgIEdldFBheW1lbnRNZXRob2RMaXN0LFxyXG4gICAgR2V0UGF5bWVudE1ldGhvZE9wZXJhdGlvbnMsXHJcbiAgICBHZXRUYXhDYXRlZ29yaWVzLFxyXG4gICAgR2V0VGF4Q2F0ZWdvcnksXHJcbiAgICBHZXRUYXhSYXRlLFxyXG4gICAgR2V0VGF4UmF0ZUxpc3QsXHJcbiAgICBHZXRUYXhSYXRlTGlzdFNpbXBsZSxcclxuICAgIEdldFpvbmUsXHJcbiAgICBHZXRab25lcyxcclxuICAgIEpvYkxpc3RPcHRpb25zLFxyXG4gICAgSm9iU3RhdGUsXHJcbiAgICBSZW1vdmVNZW1iZXJzRnJvbVpvbmUsXHJcbiAgICBVcGRhdGVDaGFubmVsLFxyXG4gICAgVXBkYXRlQ2hhbm5lbElucHV0LFxyXG4gICAgVXBkYXRlQ291bnRyeSxcclxuICAgIFVwZGF0ZUNvdW50cnlJbnB1dCxcclxuICAgIFVwZGF0ZUdsb2JhbFNldHRpbmdzLFxyXG4gICAgVXBkYXRlR2xvYmFsU2V0dGluZ3NJbnB1dCxcclxuICAgIFVwZGF0ZVBheW1lbnRNZXRob2QsXHJcbiAgICBVcGRhdGVQYXltZW50TWV0aG9kSW5wdXQsXHJcbiAgICBVcGRhdGVUYXhDYXRlZ29yeSxcclxuICAgIFVwZGF0ZVRheENhdGVnb3J5SW5wdXQsXHJcbiAgICBVcGRhdGVUYXhSYXRlLFxyXG4gICAgVXBkYXRlVGF4UmF0ZUlucHV0LFxyXG4gICAgVXBkYXRlWm9uZSxcclxuICAgIFVwZGF0ZVpvbmVJbnB1dCxcclxufSBmcm9tICcuLi8uLi9jb21tb24vZ2VuZXJhdGVkLXR5cGVzJztcclxuaW1wb3J0IHtcclxuICAgIEFERF9NRU1CRVJTX1RPX1pPTkUsXHJcbiAgICBDQU5DRUxfSk9CLFxyXG4gICAgQ1JFQVRFX0NIQU5ORUwsXHJcbiAgICBDUkVBVEVfQ09VTlRSWSxcclxuICAgIENSRUFURV9QQVlNRU5UX01FVEhPRCxcclxuICAgIENSRUFURV9UQVhfQ0FURUdPUlksXHJcbiAgICBDUkVBVEVfVEFYX1JBVEUsXHJcbiAgICBDUkVBVEVfWk9ORSxcclxuICAgIERFTEVURV9DSEFOTkVMLFxyXG4gICAgREVMRVRFX0NPVU5UUlksXHJcbiAgICBERUxFVEVfUEFZTUVOVF9NRVRIT0QsXHJcbiAgICBERUxFVEVfVEFYX0NBVEVHT1JZLFxyXG4gICAgREVMRVRFX1RBWF9SQVRFLFxyXG4gICAgREVMRVRFX1pPTkUsXHJcbiAgICBHRVRfQUNUSVZFX0NIQU5ORUwsXHJcbiAgICBHRVRfQVZBSUxBQkxFX0NPVU5UUklFUyxcclxuICAgIEdFVF9DSEFOTkVMLFxyXG4gICAgR0VUX0NIQU5ORUxTLFxyXG4gICAgR0VUX0NPVU5UUlksXHJcbiAgICBHRVRfQ09VTlRSWV9MSVNULFxyXG4gICAgR0VUX0dMT0JBTF9TRVRUSU5HUyxcclxuICAgIEdFVF9KT0JTX0JZX0lELFxyXG4gICAgR0VUX0pPQlNfTElTVCxcclxuICAgIEdFVF9KT0JfSU5GTyxcclxuICAgIEdFVF9KT0JfUVVFVUVfTElTVCxcclxuICAgIEdFVF9QQVlNRU5UX01FVEhPRCxcclxuICAgIEdFVF9QQVlNRU5UX01FVEhPRF9MSVNULFxyXG4gICAgR0VUX1BBWU1FTlRfTUVUSE9EX09QRVJBVElPTlMsXHJcbiAgICBHRVRfVEFYX0NBVEVHT1JJRVMsXHJcbiAgICBHRVRfVEFYX0NBVEVHT1JZLFxyXG4gICAgR0VUX1RBWF9SQVRFLFxyXG4gICAgR0VUX1RBWF9SQVRFX0xJU1QsXHJcbiAgICBHRVRfVEFYX1JBVEVfTElTVF9TSU1QTEUsXHJcbiAgICBHRVRfWk9ORVMsXHJcbiAgICBSRU1PVkVfTUVNQkVSU19GUk9NX1pPTkUsXHJcbiAgICBVUERBVEVfQ0hBTk5FTCxcclxuICAgIFVQREFURV9DT1VOVFJZLFxyXG4gICAgVVBEQVRFX0dMT0JBTF9TRVRUSU5HUyxcclxuICAgIFVQREFURV9QQVlNRU5UX01FVEhPRCxcclxuICAgIFVQREFURV9UQVhfQ0FURUdPUlksXHJcbiAgICBVUERBVEVfVEFYX1JBVEUsXHJcbiAgICBVUERBVEVfWk9ORSxcclxufSBmcm9tICcuLi9kZWZpbml0aW9ucy9zZXR0aW5ncy1kZWZpbml0aW9ucyc7XHJcblxyXG5pbXBvcnQgeyBCYXNlRGF0YVNlcnZpY2UgfSBmcm9tICcuL2Jhc2UtZGF0YS5zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCBjbGFzcyBTZXR0aW5nc0RhdGFTZXJ2aWNlIHtcclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgYmFzZURhdGFTZXJ2aWNlOiBCYXNlRGF0YVNlcnZpY2UpIHt9XHJcblxyXG4gICAgZ2V0Q291bnRyaWVzKHRha2U6IG51bWJlciA9IDEwLCBza2lwOiBudW1iZXIgPSAwLCBmaWx0ZXJUZXJtPzogc3RyaW5nKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYmFzZURhdGFTZXJ2aWNlLnF1ZXJ5PEdldENvdW50cnlMaXN0LlF1ZXJ5LCBHZXRDb3VudHJ5TGlzdC5WYXJpYWJsZXM+KEdFVF9DT1VOVFJZX0xJU1QsIHtcclxuICAgICAgICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgICAgICAgICAgdGFrZSxcclxuICAgICAgICAgICAgICAgIHNraXAsXHJcbiAgICAgICAgICAgICAgICBmaWx0ZXI6IHtcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBmaWx0ZXJUZXJtID8geyBjb250YWluczogZmlsdGVyVGVybSB9IDogbnVsbCxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0QXZhaWxhYmxlQ291bnRyaWVzKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmJhc2VEYXRhU2VydmljZS5xdWVyeTxHZXRBdmFpbGFibGVDb3VudHJpZXMuUXVlcnk+KEdFVF9BVkFJTEFCTEVfQ09VTlRSSUVTKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRDb3VudHJ5KGlkOiBzdHJpbmcpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5iYXNlRGF0YVNlcnZpY2UucXVlcnk8R2V0Q291bnRyeS5RdWVyeSwgR2V0Q291bnRyeS5WYXJpYWJsZXM+KEdFVF9DT1VOVFJZLCB7IGlkIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNyZWF0ZUNvdW50cnkoaW5wdXQ6IENyZWF0ZUNvdW50cnlJbnB1dCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmJhc2VEYXRhU2VydmljZS5tdXRhdGU8Q3JlYXRlQ291bnRyeS5NdXRhdGlvbiwgQ3JlYXRlQ291bnRyeS5WYXJpYWJsZXM+KENSRUFURV9DT1VOVFJZLCB7XHJcbiAgICAgICAgICAgIGlucHV0OiBwaWNrKGlucHV0LCBbJ2NvZGUnLCAnZW5hYmxlZCcsICd0cmFuc2xhdGlvbnMnLCAnY3VzdG9tRmllbGRzJ10pLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZUNvdW50cnkoaW5wdXQ6IFVwZGF0ZUNvdW50cnlJbnB1dCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmJhc2VEYXRhU2VydmljZS5tdXRhdGU8VXBkYXRlQ291bnRyeS5NdXRhdGlvbiwgVXBkYXRlQ291bnRyeS5WYXJpYWJsZXM+KFVQREFURV9DT1VOVFJZLCB7XHJcbiAgICAgICAgICAgIGlucHV0OiBwaWNrKGlucHV0LCBbJ2lkJywgJ2NvZGUnLCAnZW5hYmxlZCcsICd0cmFuc2xhdGlvbnMnLCAnY3VzdG9tRmllbGRzJ10pLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGRlbGV0ZUNvdW50cnkoaWQ6IHN0cmluZykge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmJhc2VEYXRhU2VydmljZS5tdXRhdGU8RGVsZXRlQ291bnRyeS5NdXRhdGlvbiwgRGVsZXRlQ291bnRyeS5WYXJpYWJsZXM+KERFTEVURV9DT1VOVFJZLCB7XHJcbiAgICAgICAgICAgIGlkLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFpvbmVzKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmJhc2VEYXRhU2VydmljZS5xdWVyeTxHZXRab25lcy5RdWVyeT4oR0VUX1pPTkVTKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRab25lKGlkOiBzdHJpbmcpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5iYXNlRGF0YVNlcnZpY2UucXVlcnk8R2V0Wm9uZS5RdWVyeSwgR2V0Wm9uZS5WYXJpYWJsZXM+KEdFVF9aT05FUywgeyBpZCB9KTtcclxuICAgIH1cclxuXHJcbiAgICBjcmVhdGVab25lKGlucHV0OiBDcmVhdGVab25lSW5wdXQpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5iYXNlRGF0YVNlcnZpY2UubXV0YXRlPENyZWF0ZVpvbmUuTXV0YXRpb24sIENyZWF0ZVpvbmUuVmFyaWFibGVzPihDUkVBVEVfWk9ORSwge1xyXG4gICAgICAgICAgICBpbnB1dCxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVab25lKGlucHV0OiBVcGRhdGVab25lSW5wdXQpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5iYXNlRGF0YVNlcnZpY2UubXV0YXRlPFVwZGF0ZVpvbmUuTXV0YXRpb24sIFVwZGF0ZVpvbmUuVmFyaWFibGVzPihVUERBVEVfWk9ORSwge1xyXG4gICAgICAgICAgICBpbnB1dCxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBkZWxldGVab25lKGlkOiBzdHJpbmcpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5iYXNlRGF0YVNlcnZpY2UubXV0YXRlPERlbGV0ZVpvbmUuTXV0YXRpb24sIERlbGV0ZVpvbmUuVmFyaWFibGVzPihERUxFVEVfWk9ORSwge1xyXG4gICAgICAgICAgICBpZCxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBhZGRNZW1iZXJzVG9ab25lKHpvbmVJZDogc3RyaW5nLCBtZW1iZXJJZHM6IHN0cmluZ1tdKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYmFzZURhdGFTZXJ2aWNlLm11dGF0ZTxBZGRNZW1iZXJzVG9ab25lLk11dGF0aW9uLCBBZGRNZW1iZXJzVG9ab25lLlZhcmlhYmxlcz4oXHJcbiAgICAgICAgICAgIEFERF9NRU1CRVJTX1RPX1pPTkUsXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHpvbmVJZCxcclxuICAgICAgICAgICAgICAgIG1lbWJlcklkcyxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZU1lbWJlcnNGcm9tWm9uZSh6b25lSWQ6IHN0cmluZywgbWVtYmVySWRzOiBzdHJpbmdbXSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmJhc2VEYXRhU2VydmljZS5tdXRhdGU8UmVtb3ZlTWVtYmVyc0Zyb21ab25lLk11dGF0aW9uLCBSZW1vdmVNZW1iZXJzRnJvbVpvbmUuVmFyaWFibGVzPihcclxuICAgICAgICAgICAgUkVNT1ZFX01FTUJFUlNfRlJPTV9aT05FLFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB6b25lSWQsXHJcbiAgICAgICAgICAgICAgICBtZW1iZXJJZHMsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRUYXhDYXRlZ29yaWVzKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmJhc2VEYXRhU2VydmljZS5xdWVyeTxHZXRUYXhDYXRlZ29yaWVzLlF1ZXJ5PihHRVRfVEFYX0NBVEVHT1JJRVMpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFRheENhdGVnb3J5KGlkOiBzdHJpbmcpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5iYXNlRGF0YVNlcnZpY2UucXVlcnk8R2V0VGF4Q2F0ZWdvcnkuUXVlcnksIEdldFRheENhdGVnb3J5LlZhcmlhYmxlcz4oR0VUX1RBWF9DQVRFR09SWSwge1xyXG4gICAgICAgICAgICBpZCxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBjcmVhdGVUYXhDYXRlZ29yeShpbnB1dDogQ3JlYXRlVGF4Q2F0ZWdvcnlJbnB1dCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmJhc2VEYXRhU2VydmljZS5tdXRhdGU8Q3JlYXRlVGF4Q2F0ZWdvcnkuTXV0YXRpb24sIENyZWF0ZVRheENhdGVnb3J5LlZhcmlhYmxlcz4oXHJcbiAgICAgICAgICAgIENSRUFURV9UQVhfQ0FURUdPUlksXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGlucHV0LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlVGF4Q2F0ZWdvcnkoaW5wdXQ6IFVwZGF0ZVRheENhdGVnb3J5SW5wdXQpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5iYXNlRGF0YVNlcnZpY2UubXV0YXRlPFVwZGF0ZVRheENhdGVnb3J5Lk11dGF0aW9uLCBVcGRhdGVUYXhDYXRlZ29yeS5WYXJpYWJsZXM+KFxyXG4gICAgICAgICAgICBVUERBVEVfVEFYX0NBVEVHT1JZLFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBpbnB1dCxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGRlbGV0ZVRheENhdGVnb3J5KGlkOiBzdHJpbmcpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5iYXNlRGF0YVNlcnZpY2UubXV0YXRlPERlbGV0ZVRheENhdGVnb3J5Lk11dGF0aW9uLCBEZWxldGVUYXhSYXRlLlZhcmlhYmxlcz4oXHJcbiAgICAgICAgICAgIERFTEVURV9UQVhfQ0FURUdPUlksXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGlkLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0VGF4UmF0ZXModGFrZTogbnVtYmVyID0gMTAsIHNraXA6IG51bWJlciA9IDAsIGZldGNoUG9saWN5PzogRmV0Y2hQb2xpY3kpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5iYXNlRGF0YVNlcnZpY2UucXVlcnk8R2V0VGF4UmF0ZUxpc3QuUXVlcnksIEdldFRheFJhdGVMaXN0LlZhcmlhYmxlcz4oXHJcbiAgICAgICAgICAgIEdFVF9UQVhfUkFURV9MSVNULFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGFrZSxcclxuICAgICAgICAgICAgICAgICAgICBza2lwLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZmV0Y2hQb2xpY3ksXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRUYXhSYXRlc1NpbXBsZSh0YWtlOiBudW1iZXIgPSAxMCwgc2tpcDogbnVtYmVyID0gMCwgZmV0Y2hQb2xpY3k/OiBGZXRjaFBvbGljeSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmJhc2VEYXRhU2VydmljZS5xdWVyeTxHZXRUYXhSYXRlTGlzdFNpbXBsZS5RdWVyeSwgR2V0VGF4UmF0ZUxpc3RTaW1wbGUuVmFyaWFibGVzPihcclxuICAgICAgICAgICAgR0VUX1RBWF9SQVRFX0xJU1RfU0lNUExFLFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGFrZSxcclxuICAgICAgICAgICAgICAgICAgICBza2lwLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZmV0Y2hQb2xpY3ksXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRUYXhSYXRlKGlkOiBzdHJpbmcpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5iYXNlRGF0YVNlcnZpY2UucXVlcnk8R2V0VGF4UmF0ZS5RdWVyeSwgR2V0VGF4UmF0ZS5WYXJpYWJsZXM+KEdFVF9UQVhfUkFURSwge1xyXG4gICAgICAgICAgICBpZCxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBjcmVhdGVUYXhSYXRlKGlucHV0OiBDcmVhdGVUYXhSYXRlSW5wdXQpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5iYXNlRGF0YVNlcnZpY2UubXV0YXRlPENyZWF0ZVRheFJhdGUuTXV0YXRpb24sIENyZWF0ZVRheFJhdGUuVmFyaWFibGVzPihDUkVBVEVfVEFYX1JBVEUsIHtcclxuICAgICAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlVGF4UmF0ZShpbnB1dDogVXBkYXRlVGF4UmF0ZUlucHV0KSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYmFzZURhdGFTZXJ2aWNlLm11dGF0ZTxVcGRhdGVUYXhSYXRlLk11dGF0aW9uLCBVcGRhdGVUYXhSYXRlLlZhcmlhYmxlcz4oVVBEQVRFX1RBWF9SQVRFLCB7XHJcbiAgICAgICAgICAgIGlucHV0LFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGRlbGV0ZVRheFJhdGUoaWQ6IHN0cmluZykge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmJhc2VEYXRhU2VydmljZS5tdXRhdGU8RGVsZXRlVGF4UmF0ZS5NdXRhdGlvbiwgRGVsZXRlVGF4UmF0ZS5WYXJpYWJsZXM+KERFTEVURV9UQVhfUkFURSwge1xyXG4gICAgICAgICAgICBpZCxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRDaGFubmVscygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5iYXNlRGF0YVNlcnZpY2UucXVlcnk8R2V0Q2hhbm5lbHMuUXVlcnk+KEdFVF9DSEFOTkVMUyk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0Q2hhbm5lbChpZDogc3RyaW5nKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYmFzZURhdGFTZXJ2aWNlLnF1ZXJ5PEdldENoYW5uZWwuUXVlcnksIEdldENoYW5uZWwuVmFyaWFibGVzPihHRVRfQ0hBTk5FTCwge1xyXG4gICAgICAgICAgICBpZCxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRBY3RpdmVDaGFubmVsKGZldGNoUG9saWN5PzogRmV0Y2hQb2xpY3kpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5iYXNlRGF0YVNlcnZpY2UucXVlcnk8R2V0QWN0aXZlQ2hhbm5lbC5RdWVyeSwgR2V0QWN0aXZlQ2hhbm5lbC5WYXJpYWJsZXM+KFxyXG4gICAgICAgICAgICBHRVRfQUNUSVZFX0NIQU5ORUwsXHJcbiAgICAgICAgICAgIHt9LFxyXG4gICAgICAgICAgICBmZXRjaFBvbGljeSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGNyZWF0ZUNoYW5uZWwoaW5wdXQ6IENyZWF0ZUNoYW5uZWxJbnB1dCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmJhc2VEYXRhU2VydmljZS5tdXRhdGU8Q3JlYXRlQ2hhbm5lbC5NdXRhdGlvbiwgQ3JlYXRlQ2hhbm5lbC5WYXJpYWJsZXM+KENSRUFURV9DSEFOTkVMLCB7XHJcbiAgICAgICAgICAgIGlucHV0LFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZUNoYW5uZWwoaW5wdXQ6IFVwZGF0ZUNoYW5uZWxJbnB1dCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmJhc2VEYXRhU2VydmljZS5tdXRhdGU8VXBkYXRlQ2hhbm5lbC5NdXRhdGlvbiwgVXBkYXRlQ2hhbm5lbC5WYXJpYWJsZXM+KFVQREFURV9DSEFOTkVMLCB7XHJcbiAgICAgICAgICAgIGlucHV0LFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGRlbGV0ZUNoYW5uZWwoaWQ6IHN0cmluZykge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmJhc2VEYXRhU2VydmljZS5tdXRhdGU8RGVsZXRlQ2hhbm5lbC5NdXRhdGlvbiwgRGVsZXRlQ2hhbm5lbC5WYXJpYWJsZXM+KERFTEVURV9DSEFOTkVMLCB7XHJcbiAgICAgICAgICAgIGlkLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFBheW1lbnRNZXRob2RzKHRha2U6IG51bWJlciA9IDEwLCBza2lwOiBudW1iZXIgPSAwKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYmFzZURhdGFTZXJ2aWNlLnF1ZXJ5PEdldFBheW1lbnRNZXRob2RMaXN0LlF1ZXJ5LCBHZXRQYXltZW50TWV0aG9kTGlzdC5WYXJpYWJsZXM+KFxyXG4gICAgICAgICAgICBHRVRfUEFZTUVOVF9NRVRIT0RfTElTVCxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgICAgICAgICAgICAgIHNraXAsXHJcbiAgICAgICAgICAgICAgICAgICAgdGFrZSxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRQYXltZW50TWV0aG9kKGlkOiBzdHJpbmcpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5iYXNlRGF0YVNlcnZpY2UucXVlcnk8R2V0UGF5bWVudE1ldGhvZC5RdWVyeSwgR2V0UGF5bWVudE1ldGhvZC5WYXJpYWJsZXM+KFxyXG4gICAgICAgICAgICBHRVRfUEFZTUVOVF9NRVRIT0QsXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGlkLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgY3JlYXRlUGF5bWVudE1ldGhvZChpbnB1dDogQ3JlYXRlUGF5bWVudE1ldGhvZElucHV0KSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYmFzZURhdGFTZXJ2aWNlLm11dGF0ZTxDcmVhdGVQYXltZW50TWV0aG9kLk11dGF0aW9uLCBDcmVhdGVQYXltZW50TWV0aG9kLlZhcmlhYmxlcz4oXHJcbiAgICAgICAgICAgIENSRUFURV9QQVlNRU5UX01FVEhPRCxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVQYXltZW50TWV0aG9kKGlucHV0OiBVcGRhdGVQYXltZW50TWV0aG9kSW5wdXQpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5iYXNlRGF0YVNlcnZpY2UubXV0YXRlPFVwZGF0ZVBheW1lbnRNZXRob2QuTXV0YXRpb24sIFVwZGF0ZVBheW1lbnRNZXRob2QuVmFyaWFibGVzPihcclxuICAgICAgICAgICAgVVBEQVRFX1BBWU1FTlRfTUVUSE9ELFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBpbnB1dCxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGRlbGV0ZVBheW1lbnRNZXRob2QoaWQ6IHN0cmluZywgZm9yY2U6IGJvb2xlYW4pIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5iYXNlRGF0YVNlcnZpY2UubXV0YXRlPERlbGV0ZVBheW1lbnRNZXRob2QuTXV0YXRpb24sIERlbGV0ZVBheW1lbnRNZXRob2QuVmFyaWFibGVzPihcclxuICAgICAgICAgICAgREVMRVRFX1BBWU1FTlRfTUVUSE9ELFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBpZCxcclxuICAgICAgICAgICAgICAgIGZvcmNlLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UGF5bWVudE1ldGhvZE9wZXJhdGlvbnMoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYmFzZURhdGFTZXJ2aWNlLnF1ZXJ5PEdldFBheW1lbnRNZXRob2RPcGVyYXRpb25zLlF1ZXJ5PihHRVRfUEFZTUVOVF9NRVRIT0RfT1BFUkFUSU9OUyk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0R2xvYmFsU2V0dGluZ3MoZmV0Y2hQb2xpY3k/OiBXYXRjaFF1ZXJ5RmV0Y2hQb2xpY3kpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5iYXNlRGF0YVNlcnZpY2UucXVlcnk8R2V0R2xvYmFsU2V0dGluZ3MuUXVlcnk+KFxyXG4gICAgICAgICAgICBHRVRfR0xPQkFMX1NFVFRJTkdTLFxyXG4gICAgICAgICAgICB1bmRlZmluZWQsXHJcbiAgICAgICAgICAgIGZldGNoUG9saWN5LFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlR2xvYmFsU2V0dGluZ3MoaW5wdXQ6IFVwZGF0ZUdsb2JhbFNldHRpbmdzSW5wdXQpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5iYXNlRGF0YVNlcnZpY2UubXV0YXRlPFVwZGF0ZUdsb2JhbFNldHRpbmdzLk11dGF0aW9uLCBVcGRhdGVHbG9iYWxTZXR0aW5ncy5WYXJpYWJsZXM+KFxyXG4gICAgICAgICAgICBVUERBVEVfR0xPQkFMX1NFVFRJTkdTLFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBpbnB1dCxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEpvYihpZDogc3RyaW5nKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYmFzZURhdGFTZXJ2aWNlLnF1ZXJ5PEdldEpvYkluZm8uUXVlcnksIEdldEpvYkluZm8uVmFyaWFibGVzPihHRVRfSk9CX0lORk8sIHsgaWQgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcG9sbEpvYnMoaWRzOiBzdHJpbmdbXSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmJhc2VEYXRhU2VydmljZS5xdWVyeTxHZXRKb2JzQnlJZC5RdWVyeSwgR2V0Sm9ic0J5SWQuVmFyaWFibGVzPihHRVRfSk9CU19CWV9JRCwge1xyXG4gICAgICAgICAgICBpZHMsXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0QWxsSm9icyhvcHRpb25zPzogSm9iTGlzdE9wdGlvbnMpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5iYXNlRGF0YVNlcnZpY2UucXVlcnk8R2V0QWxsSm9icy5RdWVyeSwgR2V0QWxsSm9icy5WYXJpYWJsZXM+KFxyXG4gICAgICAgICAgICBHRVRfSk9CU19MSVNULFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBvcHRpb25zLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAnY2FjaGUtZmlyc3QnLFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0Sm9iUXVldWVzKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmJhc2VEYXRhU2VydmljZS5xdWVyeTxHZXRKb2JRdWV1ZUxpc3QuUXVlcnk+KEdFVF9KT0JfUVVFVUVfTElTVCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UnVubmluZ0pvYnMoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYmFzZURhdGFTZXJ2aWNlLnF1ZXJ5PEdldEFsbEpvYnMuUXVlcnksIEdldEFsbEpvYnMuVmFyaWFibGVzPihHRVRfSk9CU19MSVNULCB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcclxuICAgICAgICAgICAgICAgIGZpbHRlcjoge1xyXG4gICAgICAgICAgICAgICAgICAgIHN0YXRlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVxOiBKb2JTdGF0ZS5SVU5OSU5HLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNhbmNlbEpvYihpZDogc3RyaW5nKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYmFzZURhdGFTZXJ2aWNlLm11dGF0ZTxDYW5jZWxKb2IuTXV0YXRpb24sIENhbmNlbEpvYi5WYXJpYWJsZXM+KENBTkNFTF9KT0IsIHtcclxuICAgICAgICAgICAgaWQsXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuIl19