payload 2.12.1 → 2.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1032) hide show
  1. package/auth.js +1 -1
  2. package/components/elements.js +1 -1
  3. package/components/fields/Array.js +1 -1
  4. package/components/fields/Blocks.js +1 -1
  5. package/components/fields/Cell.js +1 -1
  6. package/components/fields/Checkbox.js +1 -1
  7. package/components/fields/Code.js +1 -1
  8. package/components/fields/DateTime.js +1 -1
  9. package/components/fields/Email.js +1 -1
  10. package/components/fields/Group.js +1 -1
  11. package/components/fields/Json.js +1 -1
  12. package/components/fields/Number.js +1 -1
  13. package/components/fields/Password.js +1 -1
  14. package/components/fields/RadioGroup/RadioInput.js +1 -1
  15. package/components/fields/RadioGroup/index.js +1 -1
  16. package/components/fields/Relationship.js +1 -1
  17. package/components/fields/RichText.js +1 -1
  18. package/components/fields/Row.js +1 -1
  19. package/components/fields/Select.js +1 -1
  20. package/components/fields/Text.js +1 -1
  21. package/components/fields/Textarea.js +1 -1
  22. package/components/fields/Upload.js +1 -1
  23. package/components/forms.js +1 -1
  24. package/components/graphics.js +1 -1
  25. package/components/hooks.js +1 -1
  26. package/components/icons.js +1 -1
  27. package/components/index.js +2 -2
  28. package/components/preferences.js +1 -1
  29. package/components/root.js +1 -1
  30. package/components/templates.js +1 -1
  31. package/components/utilities.js +1 -1
  32. package/components/views/Cell.js +1 -1
  33. package/components/views/Dashboard.js +1 -1
  34. package/components/views/Edit.js +1 -1
  35. package/components/views/List.js +1 -1
  36. package/components.js +1 -1
  37. package/config.js +1 -1
  38. package/database.d.ts +1 -1
  39. package/database.js +4 -1
  40. package/dist/admin/Root.js +1 -1
  41. package/dist/admin/api.js +1 -1
  42. package/dist/admin/assets/assets.d.js +1 -1
  43. package/dist/admin/components/elements/ArrayAction/index.js +1 -1
  44. package/dist/admin/components/elements/ArrayAction/types.js +1 -1
  45. package/dist/admin/components/elements/Autosave/index.js +1 -1
  46. package/dist/admin/components/elements/Autosave/types.js +1 -1
  47. package/dist/admin/components/elements/Banner/index.js +1 -1
  48. package/dist/admin/components/elements/Banner/types.js +1 -1
  49. package/dist/admin/components/elements/Button/index.js +1 -1
  50. package/dist/admin/components/elements/Button/types.js +1 -1
  51. package/dist/admin/components/elements/Card/index.js +1 -1
  52. package/dist/admin/components/elements/Card/types.js +1 -1
  53. package/dist/admin/components/elements/CodeEditor/CodeEditor.js +1 -1
  54. package/dist/admin/components/elements/CodeEditor/index.js +1 -1
  55. package/dist/admin/components/elements/CodeEditor/types.js +1 -1
  56. package/dist/admin/components/elements/Collapsible/index.js +1 -1
  57. package/dist/admin/components/elements/Collapsible/provider.js +1 -1
  58. package/dist/admin/components/elements/Collapsible/types.js +1 -1
  59. package/dist/admin/components/elements/ColumnSelector/index.js +1 -1
  60. package/dist/admin/components/elements/ColumnSelector/types.js +1 -1
  61. package/dist/admin/components/elements/CopyToClipboard/index.js +1 -1
  62. package/dist/admin/components/elements/CopyToClipboard/types.js +1 -1
  63. package/dist/admin/components/elements/DatePicker/DatePicker.js +1 -1
  64. package/dist/admin/components/elements/DatePicker/index.js +1 -1
  65. package/dist/admin/components/elements/DatePicker/types.js +1 -1
  66. package/dist/admin/components/elements/DeleteDocument/index.d.ts.map +1 -1
  67. package/dist/admin/components/elements/DeleteDocument/index.js +1 -1
  68. package/dist/admin/components/elements/DeleteDocument/types.js +1 -1
  69. package/dist/admin/components/elements/DeleteMany/index.js +1 -1
  70. package/dist/admin/components/elements/DeleteMany/types.js +1 -1
  71. package/dist/admin/components/elements/DocumentControls/index.js +2 -2
  72. package/dist/admin/components/elements/DocumentDrawer/DrawerContent.js +1 -1
  73. package/dist/admin/components/elements/DocumentDrawer/index.js +1 -1
  74. package/dist/admin/components/elements/DocumentDrawer/types.js +1 -1
  75. package/dist/admin/components/elements/DocumentFields/index.js +1 -1
  76. package/dist/admin/components/elements/DocumentHeader/Tabs/Tab/index.js +1 -1
  77. package/dist/admin/components/elements/DocumentHeader/Tabs/getCustomViews.js +1 -1
  78. package/dist/admin/components/elements/DocumentHeader/Tabs/getViewConfig.js +1 -1
  79. package/dist/admin/components/elements/DocumentHeader/Tabs/index.js +1 -1
  80. package/dist/admin/components/elements/DocumentHeader/Tabs/tabs.js +1 -1
  81. package/dist/admin/components/elements/DocumentHeader/Tabs/types.js +1 -1
  82. package/dist/admin/components/elements/DocumentHeader/index.js +1 -1
  83. package/dist/admin/components/elements/DraggableSortable/DraggableSortableItem/index.js +1 -1
  84. package/dist/admin/components/elements/DraggableSortable/DraggableSortableItem/types.js +1 -1
  85. package/dist/admin/components/elements/DraggableSortable/index.js +1 -1
  86. package/dist/admin/components/elements/DraggableSortable/types.js +1 -1
  87. package/dist/admin/components/elements/DraggableSortable/useDraggableSortable/index.js +1 -1
  88. package/dist/admin/components/elements/DraggableSortable/useDraggableSortable/types.js +1 -1
  89. package/dist/admin/components/elements/Drawer/index.js +1 -1
  90. package/dist/admin/components/elements/Drawer/types.js +1 -1
  91. package/dist/admin/components/elements/Drawer/useDrawerSlug.js +1 -1
  92. package/dist/admin/components/elements/Dropzone/index.js +1 -1
  93. package/dist/admin/components/elements/DuplicateDocument/index.d.ts.map +1 -1
  94. package/dist/admin/components/elements/DuplicateDocument/index.js +8 -3
  95. package/dist/admin/components/elements/DuplicateDocument/types.js +1 -1
  96. package/dist/admin/components/elements/EditMany/index.js +4 -4
  97. package/dist/admin/components/elements/EditMany/types.js +1 -1
  98. package/dist/admin/components/elements/EditUpload/index.js +1 -1
  99. package/dist/admin/components/elements/ErrorPill/index.js +1 -1
  100. package/dist/admin/components/elements/ErrorPill/types.js +1 -1
  101. package/dist/admin/components/elements/Eyebrow/index.js +1 -1
  102. package/dist/admin/components/elements/Eyebrow/types.js +1 -1
  103. package/dist/admin/components/elements/FieldSelect/index.js +1 -1
  104. package/dist/admin/components/elements/FileDetails/Meta/index.js +1 -1
  105. package/dist/admin/components/elements/FileDetails/Meta/types.js +1 -1
  106. package/dist/admin/components/elements/FileDetails/index.js +1 -1
  107. package/dist/admin/components/elements/FileDetails/types.js +1 -1
  108. package/dist/admin/components/elements/GenerateConfirmation/index.js +1 -1
  109. package/dist/admin/components/elements/GenerateConfirmation/types.js +1 -1
  110. package/dist/admin/components/elements/Gutter/index.js +1 -1
  111. package/dist/admin/components/elements/Hamburger/index.js +1 -1
  112. package/dist/admin/components/elements/Header/index.js +1 -1
  113. package/dist/admin/components/elements/IDLabel/index.js +1 -1
  114. package/dist/admin/components/elements/ListControls/getTextFieldsToBeSearched.js +1 -1
  115. package/dist/admin/components/elements/ListControls/index.js +1 -1
  116. package/dist/admin/components/elements/ListControls/types.js +1 -1
  117. package/dist/admin/components/elements/ListDrawer/DrawerContent.js +1 -1
  118. package/dist/admin/components/elements/ListDrawer/index.js +1 -1
  119. package/dist/admin/components/elements/ListDrawer/types.js +1 -1
  120. package/dist/admin/components/elements/ListSelection/index.js +1 -1
  121. package/dist/admin/components/elements/Loading/index.js +1 -1
  122. package/dist/admin/components/elements/Localizer/LocalizerLabel/index.js +1 -1
  123. package/dist/admin/components/elements/Localizer/index.js +1 -1
  124. package/dist/admin/components/elements/Logout/index.js +1 -1
  125. package/dist/admin/components/elements/Nav/NavToggler/index.js +1 -1
  126. package/dist/admin/components/elements/Nav/context.js +1 -1
  127. package/dist/admin/components/elements/Nav/index.js +1 -1
  128. package/dist/admin/components/elements/NavGroup/index.js +1 -1
  129. package/dist/admin/components/elements/Paginator/ClickableArrow/index.js +1 -1
  130. package/dist/admin/components/elements/Paginator/ClickableArrow/types.js +1 -1
  131. package/dist/admin/components/elements/Paginator/Page/index.js +1 -1
  132. package/dist/admin/components/elements/Paginator/Page/types.js +1 -1
  133. package/dist/admin/components/elements/Paginator/Separator/index.js +1 -1
  134. package/dist/admin/components/elements/Paginator/index.js +1 -1
  135. package/dist/admin/components/elements/Paginator/types.js +1 -1
  136. package/dist/admin/components/elements/PerPage/index.js +1 -1
  137. package/dist/admin/components/elements/Pill/index.js +1 -1
  138. package/dist/admin/components/elements/Pill/types.js +1 -1
  139. package/dist/admin/components/elements/Popup/PopupButtonList/index.d.ts +1 -0
  140. package/dist/admin/components/elements/Popup/PopupButtonList/index.d.ts.map +1 -1
  141. package/dist/admin/components/elements/Popup/PopupButtonList/index.js +3 -2
  142. package/dist/admin/components/elements/Popup/PopupTrigger/index.js +1 -1
  143. package/dist/admin/components/elements/Popup/PopupTrigger/types.js +1 -1
  144. package/dist/admin/components/elements/Popup/index.js +1 -1
  145. package/dist/admin/components/elements/Popup/types.js +1 -1
  146. package/dist/admin/components/elements/PreviewButton/index.js +1 -1
  147. package/dist/admin/components/elements/PreviewSizes/index.js +1 -1
  148. package/dist/admin/components/elements/Publish/index.d.ts +6 -2
  149. package/dist/admin/components/elements/Publish/index.d.ts.map +1 -1
  150. package/dist/admin/components/elements/Publish/index.js +1 -1
  151. package/dist/admin/components/elements/PublishMany/index.js +1 -1
  152. package/dist/admin/components/elements/PublishMany/types.js +1 -1
  153. package/dist/admin/components/elements/ReactSelect/ClearIndicator/index.js +1 -1
  154. package/dist/admin/components/elements/ReactSelect/Control/index.js +1 -1
  155. package/dist/admin/components/elements/ReactSelect/MultiValue/index.js +1 -1
  156. package/dist/admin/components/elements/ReactSelect/MultiValueLabel/index.js +1 -1
  157. package/dist/admin/components/elements/ReactSelect/MultiValueRemove/index.js +1 -1
  158. package/dist/admin/components/elements/ReactSelect/SingleValue/index.js +1 -1
  159. package/dist/admin/components/elements/ReactSelect/ValueContainer/index.js +1 -1
  160. package/dist/admin/components/elements/ReactSelect/index.js +1 -1
  161. package/dist/admin/components/elements/ReactSelect/types.js +1 -1
  162. package/dist/admin/components/elements/RenderTitle/index.js +1 -1
  163. package/dist/admin/components/elements/RenderTitle/types.js +1 -1
  164. package/dist/admin/components/elements/Save/index.js +1 -1
  165. package/dist/admin/components/elements/SaveDraft/index.js +1 -1
  166. package/dist/admin/components/elements/SearchFilter/index.js +1 -1
  167. package/dist/admin/components/elements/SearchFilter/types.js +1 -1
  168. package/dist/admin/components/elements/ShimmerEffect/index.js +1 -1
  169. package/dist/admin/components/elements/SortColumn/index.js +1 -1
  170. package/dist/admin/components/elements/SortColumn/types.js +1 -1
  171. package/dist/admin/components/elements/SortComplex/index.js +1 -1
  172. package/dist/admin/components/elements/SortComplex/types.js +1 -1
  173. package/dist/admin/components/elements/Status/index.js +1 -1
  174. package/dist/admin/components/elements/StepNav/index.js +1 -1
  175. package/dist/admin/components/elements/StepNav/types.js +1 -1
  176. package/dist/admin/components/elements/Table/index.js +1 -1
  177. package/dist/admin/components/elements/Table/types.js +1 -1
  178. package/dist/admin/components/elements/TableColumns/buildColumns.js +1 -1
  179. package/dist/admin/components/elements/TableColumns/columnReducer.js +1 -1
  180. package/dist/admin/components/elements/TableColumns/getInitialColumns.js +1 -1
  181. package/dist/admin/components/elements/TableColumns/index.js +1 -1
  182. package/dist/admin/components/elements/Thumbnail/index.js +1 -1
  183. package/dist/admin/components/elements/Thumbnail/types.js +1 -1
  184. package/dist/admin/components/elements/ThumbnailCard/index.js +1 -1
  185. package/dist/admin/components/elements/ThumbnailCard/types.js +1 -1
  186. package/dist/admin/components/elements/Tooltip/index.js +1 -1
  187. package/dist/admin/components/elements/Tooltip/types.js +1 -1
  188. package/dist/admin/components/elements/UnpublishMany/index.js +1 -1
  189. package/dist/admin/components/elements/UnpublishMany/types.js +1 -1
  190. package/dist/admin/components/elements/ViewDescription/index.js +1 -1
  191. package/dist/admin/components/elements/ViewDescription/types.js +1 -1
  192. package/dist/admin/components/elements/WhereBuilder/Condition/Date/index.js +1 -1
  193. package/dist/admin/components/elements/WhereBuilder/Condition/Date/types.js +1 -1
  194. package/dist/admin/components/elements/WhereBuilder/Condition/Number/index.js +1 -1
  195. package/dist/admin/components/elements/WhereBuilder/Condition/Number/types.js +1 -1
  196. package/dist/admin/components/elements/WhereBuilder/Condition/Relationship/index.js +1 -1
  197. package/dist/admin/components/elements/WhereBuilder/Condition/Relationship/optionsReducer.js +1 -1
  198. package/dist/admin/components/elements/WhereBuilder/Condition/Relationship/types.js +1 -1
  199. package/dist/admin/components/elements/WhereBuilder/Condition/Select/index.js +1 -1
  200. package/dist/admin/components/elements/WhereBuilder/Condition/Select/types.js +1 -1
  201. package/dist/admin/components/elements/WhereBuilder/Condition/Text/index.js +1 -1
  202. package/dist/admin/components/elements/WhereBuilder/Condition/Text/types.js +1 -1
  203. package/dist/admin/components/elements/WhereBuilder/Condition/index.js +1 -1
  204. package/dist/admin/components/elements/WhereBuilder/Condition/types.js +1 -1
  205. package/dist/admin/components/elements/WhereBuilder/field-types.js +1 -1
  206. package/dist/admin/components/elements/WhereBuilder/index.js +1 -1
  207. package/dist/admin/components/elements/WhereBuilder/reducer.js +1 -1
  208. package/dist/admin/components/elements/WhereBuilder/transformWhereQuery.js +1 -1
  209. package/dist/admin/components/elements/WhereBuilder/types.js +1 -1
  210. package/dist/admin/components/elements/WhereBuilder/validateWhereQuery.js +1 -1
  211. package/dist/admin/components/elements/elements.spec.js +1 -1
  212. package/dist/admin/components/elements/types.d.ts +1 -1
  213. package/dist/admin/components/elements/types.d.ts.map +1 -1
  214. package/dist/admin/components/elements/types.js +1 -1
  215. package/dist/admin/components/forms/Error/index.js +1 -1
  216. package/dist/admin/components/forms/Error/types.js +1 -1
  217. package/dist/admin/components/forms/FieldDescription/index.js +1 -1
  218. package/dist/admin/components/forms/FieldDescription/types.js +1 -1
  219. package/dist/admin/components/forms/Form/WatchFormErrors.js +1 -1
  220. package/dist/admin/components/forms/Form/buildFieldSchemaMap.js +1 -1
  221. package/dist/admin/components/forms/Form/buildInitialState.js +1 -1
  222. package/dist/admin/components/forms/Form/buildStateFromSchema/addFieldStatePromise.js +1 -1
  223. package/dist/admin/components/forms/Form/buildStateFromSchema/buildStateFromSchema.spec.js +1 -1
  224. package/dist/admin/components/forms/Form/buildStateFromSchema/index.js +1 -1
  225. package/dist/admin/components/forms/Form/buildStateFromSchema/iterateFields.js +1 -1
  226. package/dist/admin/components/forms/Form/context.js +1 -1
  227. package/dist/admin/components/forms/Form/createNestedFieldPath.js +1 -1
  228. package/dist/admin/components/forms/Form/errorMessages.js +1 -1
  229. package/dist/admin/components/forms/Form/fieldReducer.js +1 -1
  230. package/dist/admin/components/forms/Form/getDataByPath.js +1 -1
  231. package/dist/admin/components/forms/Form/getSiblingData.js +1 -1
  232. package/dist/admin/components/forms/Form/index.js +1 -1
  233. package/dist/admin/components/forms/Form/initContextState.js +1 -1
  234. package/dist/admin/components/forms/Form/reduceFieldsToValues.js +1 -1
  235. package/dist/admin/components/forms/Form/rows.js +1 -1
  236. package/dist/admin/components/forms/Form/types.js +1 -1
  237. package/dist/admin/components/forms/Label/index.js +1 -1
  238. package/dist/admin/components/forms/Label/types.js +1 -1
  239. package/dist/admin/components/forms/NullifyField/index.js +1 -1
  240. package/dist/admin/components/forms/RenderFields/filterFields.js +1 -1
  241. package/dist/admin/components/forms/RenderFields/index.js +1 -1
  242. package/dist/admin/components/forms/RenderFields/types.js +1 -1
  243. package/dist/admin/components/forms/RowLabel/index.js +1 -1
  244. package/dist/admin/components/forms/RowLabel/types.js +1 -1
  245. package/dist/admin/components/forms/Submit/index.js +1 -1
  246. package/dist/admin/components/forms/WatchChildErrors/index.js +1 -1
  247. package/dist/admin/components/forms/field-types/Array/ArrayRow.js +1 -1
  248. package/dist/admin/components/forms/field-types/Array/index.js +1 -1
  249. package/dist/admin/components/forms/field-types/Array/types.js +1 -1
  250. package/dist/admin/components/forms/field-types/Blocks/BlockRow.js +1 -1
  251. package/dist/admin/components/forms/field-types/Blocks/BlocksDrawer/BlockSearch/index.js +1 -1
  252. package/dist/admin/components/forms/field-types/Blocks/BlocksDrawer/index.js +1 -1
  253. package/dist/admin/components/forms/field-types/Blocks/BlocksDrawer/types.js +1 -1
  254. package/dist/admin/components/forms/field-types/Blocks/RowActions.js +1 -1
  255. package/dist/admin/components/forms/field-types/Blocks/SectionTitle/index.js +1 -1
  256. package/dist/admin/components/forms/field-types/Blocks/SectionTitle/types.js +1 -1
  257. package/dist/admin/components/forms/field-types/Blocks/index.js +1 -1
  258. package/dist/admin/components/forms/field-types/Blocks/types.js +1 -1
  259. package/dist/admin/components/forms/field-types/Checkbox/Input.js +1 -1
  260. package/dist/admin/components/forms/field-types/Checkbox/index.js +1 -1
  261. package/dist/admin/components/forms/field-types/Checkbox/types.js +1 -1
  262. package/dist/admin/components/forms/field-types/Code/index.js +1 -1
  263. package/dist/admin/components/forms/field-types/Code/types.js +1 -1
  264. package/dist/admin/components/forms/field-types/Collapsible/index.d.ts.map +1 -1
  265. package/dist/admin/components/forms/field-types/Collapsible/index.js +29 -23
  266. package/dist/admin/components/forms/field-types/Collapsible/types.js +1 -1
  267. package/dist/admin/components/forms/field-types/ConfirmPassword/index.js +1 -1
  268. package/dist/admin/components/forms/field-types/ConfirmPassword/types.js +1 -1
  269. package/dist/admin/components/forms/field-types/DateTime/Input.js +1 -1
  270. package/dist/admin/components/forms/field-types/DateTime/index.js +1 -1
  271. package/dist/admin/components/forms/field-types/DateTime/types.js +1 -1
  272. package/dist/admin/components/forms/field-types/Email/index.js +1 -1
  273. package/dist/admin/components/forms/field-types/Email/types.js +1 -1
  274. package/dist/admin/components/forms/field-types/Group/index.js +1 -1
  275. package/dist/admin/components/forms/field-types/Group/provider.js +1 -1
  276. package/dist/admin/components/forms/field-types/Group/types.js +1 -1
  277. package/dist/admin/components/forms/field-types/HiddenInput/index.js +1 -1
  278. package/dist/admin/components/forms/field-types/HiddenInput/types.js +1 -1
  279. package/dist/admin/components/forms/field-types/JSON/index.d.ts.map +1 -1
  280. package/dist/admin/components/forms/field-types/JSON/index.js +21 -2
  281. package/dist/admin/components/forms/field-types/JSON/types.js +1 -1
  282. package/dist/admin/components/forms/field-types/Number/index.js +1 -1
  283. package/dist/admin/components/forms/field-types/Number/types.js +1 -1
  284. package/dist/admin/components/forms/field-types/Password/index.js +1 -1
  285. package/dist/admin/components/forms/field-types/Password/types.js +1 -1
  286. package/dist/admin/components/forms/field-types/Point/index.js +1 -1
  287. package/dist/admin/components/forms/field-types/Point/types.js +1 -1
  288. package/dist/admin/components/forms/field-types/RadioGroup/Input.js +1 -1
  289. package/dist/admin/components/forms/field-types/RadioGroup/RadioInput/index.js +1 -1
  290. package/dist/admin/components/forms/field-types/RadioGroup/RadioInput/types.js +1 -1
  291. package/dist/admin/components/forms/field-types/RadioGroup/index.js +1 -1
  292. package/dist/admin/components/forms/field-types/RadioGroup/types.js +1 -1
  293. package/dist/admin/components/forms/field-types/Relationship/AddNew/index.js +1 -1
  294. package/dist/admin/components/forms/field-types/Relationship/AddNew/types.js +1 -1
  295. package/dist/admin/components/forms/field-types/Relationship/AddNew/useRelatedCollections.js +1 -1
  296. package/dist/admin/components/forms/field-types/Relationship/createRelationMap.js +1 -1
  297. package/dist/admin/components/forms/field-types/Relationship/findOptionsByValue.js +1 -1
  298. package/dist/admin/components/forms/field-types/Relationship/index.js +1 -1
  299. package/dist/admin/components/forms/field-types/Relationship/optionsReducer.js +1 -1
  300. package/dist/admin/components/forms/field-types/Relationship/select-components/MultiValueLabel/index.js +1 -1
  301. package/dist/admin/components/forms/field-types/Relationship/select-components/SingleValue/index.js +1 -1
  302. package/dist/admin/components/forms/field-types/Relationship/types.js +1 -1
  303. package/dist/admin/components/forms/field-types/RichText/index.js +1 -1
  304. package/dist/admin/components/forms/field-types/RichText/types.d.ts +3 -1
  305. package/dist/admin/components/forms/field-types/RichText/types.d.ts.map +1 -1
  306. package/dist/admin/components/forms/field-types/RichText/types.js +1 -1
  307. package/dist/admin/components/forms/field-types/Row/index.js +1 -1
  308. package/dist/admin/components/forms/field-types/Row/provider.js +1 -1
  309. package/dist/admin/components/forms/field-types/Row/types.js +1 -1
  310. package/dist/admin/components/forms/field-types/Select/Input.js +1 -1
  311. package/dist/admin/components/forms/field-types/Select/index.js +1 -1
  312. package/dist/admin/components/forms/field-types/Select/types.js +1 -1
  313. package/dist/admin/components/forms/field-types/Tabs/index.d.ts.map +1 -1
  314. package/dist/admin/components/forms/field-types/Tabs/index.js +28 -24
  315. package/dist/admin/components/forms/field-types/Tabs/provider.js +1 -1
  316. package/dist/admin/components/forms/field-types/Tabs/types.js +1 -1
  317. package/dist/admin/components/forms/field-types/Text/Input.js +1 -1
  318. package/dist/admin/components/forms/field-types/Text/index.js +1 -1
  319. package/dist/admin/components/forms/field-types/Text/types.js +1 -1
  320. package/dist/admin/components/forms/field-types/Textarea/Input.js +1 -1
  321. package/dist/admin/components/forms/field-types/Textarea/index.js +1 -1
  322. package/dist/admin/components/forms/field-types/Textarea/types.js +1 -1
  323. package/dist/admin/components/forms/field-types/UI/index.js +1 -1
  324. package/dist/admin/components/forms/field-types/Upload/Input.js +1 -1
  325. package/dist/admin/components/forms/field-types/Upload/index.js +1 -1
  326. package/dist/admin/components/forms/field-types/Upload/types.js +1 -1
  327. package/dist/admin/components/forms/field-types/getFilterOptionsQuery.js +1 -1
  328. package/dist/admin/components/forms/field-types/index.js +1 -1
  329. package/dist/admin/components/forms/field-types/shared.js +1 -1
  330. package/dist/admin/components/forms/useField/index.js +1 -1
  331. package/dist/admin/components/forms/useField/types.js +1 -1
  332. package/dist/admin/components/forms/withCondition/WatchCondition.js +1 -1
  333. package/dist/admin/components/forms/withCondition/index.js +1 -1
  334. package/dist/admin/components/graphics/Account/Default/index.js +1 -1
  335. package/dist/admin/components/graphics/Account/Gravatar/index.js +1 -1
  336. package/dist/admin/components/graphics/Account/index.js +1 -1
  337. package/dist/admin/components/graphics/DefaultBlockImage/index.js +1 -1
  338. package/dist/admin/components/graphics/ExternalLink/index.js +1 -1
  339. package/dist/admin/components/graphics/File/index.js +1 -1
  340. package/dist/admin/components/graphics/Icon/index.js +1 -1
  341. package/dist/admin/components/graphics/Logo/index.js +1 -1
  342. package/dist/admin/components/graphics/Search/index.js +1 -1
  343. package/dist/admin/components/icons/Calendar/index.js +1 -1
  344. package/dist/admin/components/icons/Check/index.js +1 -1
  345. package/dist/admin/components/icons/Chevron/index.js +1 -1
  346. package/dist/admin/components/icons/CloseMenu/index.js +1 -1
  347. package/dist/admin/components/icons/CodeBlock/index.js +1 -1
  348. package/dist/admin/components/icons/Copy/index.js +1 -1
  349. package/dist/admin/components/icons/Drag/index.js +1 -1
  350. package/dist/admin/components/icons/Edit/index.js +1 -1
  351. package/dist/admin/components/icons/Line/index.js +1 -1
  352. package/dist/admin/components/icons/Link/index.js +1 -1
  353. package/dist/admin/components/icons/LogOut/index.js +1 -1
  354. package/dist/admin/components/icons/Menu/index.js +1 -1
  355. package/dist/admin/components/icons/MinimizeMaximize/index.js +1 -1
  356. package/dist/admin/components/icons/More/index.js +1 -1
  357. package/dist/admin/components/icons/Plus/index.js +1 -1
  358. package/dist/admin/components/icons/Search/index.js +1 -1
  359. package/dist/admin/components/icons/Swap/index.js +1 -1
  360. package/dist/admin/components/icons/X/index.js +1 -1
  361. package/dist/admin/components/index.js +1 -1
  362. package/dist/admin/components/modals/LeaveWithoutSaving/index.js +1 -1
  363. package/dist/admin/components/modals/StayLoggedIn/index.js +1 -1
  364. package/dist/admin/components/modals/StayLoggedIn/types.js +1 -1
  365. package/dist/admin/components/templates/Default/index.js +1 -1
  366. package/dist/admin/components/templates/Default/types.js +1 -1
  367. package/dist/admin/components/templates/Minimal/index.js +1 -1
  368. package/dist/admin/components/templates/Minimal/types.js +1 -1
  369. package/dist/admin/components/utilities/ActionsProvider/index.js +1 -1
  370. package/dist/admin/components/utilities/Auth/index.js +1 -1
  371. package/dist/admin/components/utilities/Auth/types.js +1 -1
  372. package/dist/admin/components/utilities/Config/index.js +1 -1
  373. package/dist/admin/components/utilities/CustomProvider/index.js +1 -1
  374. package/dist/admin/components/utilities/DocumentEvents/index.js +1 -1
  375. package/dist/admin/components/utilities/DocumentEvents/types.js +1 -1
  376. package/dist/admin/components/utilities/DocumentInfo/index.js +1 -1
  377. package/dist/admin/components/utilities/DocumentInfo/types.js +1 -1
  378. package/dist/admin/components/utilities/EditDepth/index.js +1 -1
  379. package/dist/admin/components/utilities/FormQueryParams/index.js +1 -1
  380. package/dist/admin/components/utilities/GetFilterOptions/index.js +1 -1
  381. package/dist/admin/components/utilities/I18n/index.js +1 -1
  382. package/dist/admin/components/utilities/LoadingOverlay/index.js +1 -1
  383. package/dist/admin/components/utilities/LoadingOverlay/reducer.js +1 -1
  384. package/dist/admin/components/utilities/LoadingOverlay/types.js +1 -1
  385. package/dist/admin/components/utilities/Locale/index.js +1 -1
  386. package/dist/admin/components/utilities/Meta/index.js +1 -1
  387. package/dist/admin/components/utilities/Meta/types.js +1 -1
  388. package/dist/admin/components/utilities/OperationProvider/index.js +1 -1
  389. package/dist/admin/components/utilities/Portal/index.js +1 -1
  390. package/dist/admin/components/utilities/Preferences/index.js +1 -1
  391. package/dist/admin/components/utilities/RenderCustomComponent/index.js +1 -1
  392. package/dist/admin/components/utilities/RenderCustomComponent/types.js +1 -1
  393. package/dist/admin/components/utilities/SearchParams/index.js +1 -1
  394. package/dist/admin/components/utilities/Theme/index.js +1 -1
  395. package/dist/admin/components/utilities/WithMergedProps/index.js +1 -1
  396. package/dist/admin/components/views/API/index.js +1 -1
  397. package/dist/admin/components/views/Account/Default.js +1 -1
  398. package/dist/admin/components/views/Account/Settings/index.js +1 -1
  399. package/dist/admin/components/views/Account/ToggleTheme/index.js +1 -1
  400. package/dist/admin/components/views/Account/index.js +1 -1
  401. package/dist/admin/components/views/Account/types.js +1 -1
  402. package/dist/admin/components/views/CreateFirstUser/index.js +1 -1
  403. package/dist/admin/components/views/CreateFirstUser/types.js +1 -1
  404. package/dist/admin/components/views/Dashboard/Default.js +1 -1
  405. package/dist/admin/components/views/Dashboard/index.js +1 -1
  406. package/dist/admin/components/views/Dashboard/types.js +1 -1
  407. package/dist/admin/components/views/ForgotPassword/index.js +1 -1
  408. package/dist/admin/components/views/Global/Default/index.js +1 -1
  409. package/dist/admin/components/views/Global/Default.js +1 -1
  410. package/dist/admin/components/views/Global/Routes/CustomComponent.js +1 -1
  411. package/dist/admin/components/views/Global/Routes/custom.js +1 -1
  412. package/dist/admin/components/views/Global/Routes/index.js +1 -1
  413. package/dist/admin/components/views/Global/index.js +1 -1
  414. package/dist/admin/components/views/Global/types.js +1 -1
  415. package/dist/admin/components/views/LivePreview/Context/collisionDetection.js +1 -1
  416. package/dist/admin/components/views/LivePreview/Context/context.js +1 -1
  417. package/dist/admin/components/views/LivePreview/Context/index.js +1 -1
  418. package/dist/admin/components/views/LivePreview/Context/sizeReducer.js +1 -1
  419. package/dist/admin/components/views/LivePreview/Device/index.js +1 -1
  420. package/dist/admin/components/views/LivePreview/DeviceContainer/index.js +1 -1
  421. package/dist/admin/components/views/LivePreview/IFrame/index.js +1 -1
  422. package/dist/admin/components/views/LivePreview/Preview/index.js +1 -1
  423. package/dist/admin/components/views/LivePreview/Toolbar/Controls/index.js +1 -1
  424. package/dist/admin/components/views/LivePreview/Toolbar/SizeInput/index.js +1 -1
  425. package/dist/admin/components/views/LivePreview/Toolbar/index.js +1 -1
  426. package/dist/admin/components/views/LivePreview/ToolbarArea/index.js +1 -1
  427. package/dist/admin/components/views/LivePreview/index.js +1 -1
  428. package/dist/admin/components/views/LivePreview/usePopupWindow.js +1 -1
  429. package/dist/admin/components/views/Login/index.js +1 -1
  430. package/dist/admin/components/views/Logout/index.js +1 -1
  431. package/dist/admin/components/views/NotFound/index.js +1 -1
  432. package/dist/admin/components/views/ResetPassword/index.js +1 -1
  433. package/dist/admin/components/views/Routes/collections.js +1 -1
  434. package/dist/admin/components/views/Routes/custom.js +1 -1
  435. package/dist/admin/components/views/Routes/globals.js +1 -1
  436. package/dist/admin/components/views/Routes/index.js +1 -1
  437. package/dist/admin/components/views/Unauthorized/index.js +1 -1
  438. package/dist/admin/components/views/Verify/index.js +1 -1
  439. package/dist/admin/components/views/Version/Compare/index.js +1 -1
  440. package/dist/admin/components/views/Version/Compare/types.js +1 -1
  441. package/dist/admin/components/views/Version/RenderFieldsToDiff/Label/index.js +1 -1
  442. package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +1 -1
  443. package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/Nested/index.js +1 -1
  444. package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/Relationship/index.js +1 -1
  445. package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/Select/index.js +1 -1
  446. package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/Tabs/index.js +1 -1
  447. package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/Text/index.js +1 -1
  448. package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/diffMethods.js +1 -1
  449. package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/index.js +1 -1
  450. package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/styles.js +1 -1
  451. package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/types.js +1 -1
  452. package/dist/admin/components/views/Version/RenderFieldsToDiff/index.js +1 -1
  453. package/dist/admin/components/views/Version/RenderFieldsToDiff/types.js +1 -1
  454. package/dist/admin/components/views/Version/Restore/index.js +1 -1
  455. package/dist/admin/components/views/Version/Restore/types.js +1 -1
  456. package/dist/admin/components/views/Version/SelectLocales/index.js +1 -1
  457. package/dist/admin/components/views/Version/SelectLocales/types.js +1 -1
  458. package/dist/admin/components/views/Version/Version.js +1 -1
  459. package/dist/admin/components/views/Version/index.js +1 -1
  460. package/dist/admin/components/views/Version/shared.js +1 -1
  461. package/dist/admin/components/views/Version/types.js +1 -1
  462. package/dist/admin/components/views/Versions/Default.js +1 -1
  463. package/dist/admin/components/views/Versions/columns.js +1 -1
  464. package/dist/admin/components/views/Versions/index.js +1 -1
  465. package/dist/admin/components/views/Versions/types.js +1 -1
  466. package/dist/admin/components/views/collections/Edit/Auth/APIKey.js +1 -1
  467. package/dist/admin/components/views/collections/Edit/Auth/index.js +1 -1
  468. package/dist/admin/components/views/collections/Edit/Auth/types.js +1 -1
  469. package/dist/admin/components/views/collections/Edit/Default/index.js +1 -1
  470. package/dist/admin/components/views/collections/Edit/Default.js +3 -3
  471. package/dist/admin/components/views/collections/Edit/Routes/CustomComponent.js +1 -1
  472. package/dist/admin/components/views/collections/Edit/Routes/custom.js +1 -1
  473. package/dist/admin/components/views/collections/Edit/Routes/index.js +1 -1
  474. package/dist/admin/components/views/collections/Edit/SetStepNav.js +1 -1
  475. package/dist/admin/components/views/collections/Edit/Upload/index.js +1 -1
  476. package/dist/admin/components/views/collections/Edit/Upload/types.js +1 -1
  477. package/dist/admin/components/views/collections/Edit/formatFields.js +1 -1
  478. package/dist/admin/components/views/collections/Edit/index.js +1 -1
  479. package/dist/admin/components/views/collections/Edit/types.js +1 -1
  480. package/dist/admin/components/views/collections/List/Cell/cellTypes.spec.js +1 -1
  481. package/dist/admin/components/views/collections/List/Cell/field-types/Array/index.js +1 -1
  482. package/dist/admin/components/views/collections/List/Cell/field-types/Blocks/index.js +1 -1
  483. package/dist/admin/components/views/collections/List/Cell/field-types/Checkbox/index.js +1 -1
  484. package/dist/admin/components/views/collections/List/Cell/field-types/Code/index.js +1 -1
  485. package/dist/admin/components/views/collections/List/Cell/field-types/Date/index.js +1 -1
  486. package/dist/admin/components/views/collections/List/Cell/field-types/File/index.js +1 -1
  487. package/dist/admin/components/views/collections/List/Cell/field-types/JSON/index.js +1 -1
  488. package/dist/admin/components/views/collections/List/Cell/field-types/Relationship/index.js +1 -1
  489. package/dist/admin/components/views/collections/List/Cell/field-types/Richtext/index.js +1 -1
  490. package/dist/admin/components/views/collections/List/Cell/field-types/Select/index.js +1 -1
  491. package/dist/admin/components/views/collections/List/Cell/field-types/Textarea/index.js +1 -1
  492. package/dist/admin/components/views/collections/List/Cell/field-types/index.js +1 -1
  493. package/dist/admin/components/views/collections/List/Cell/index.js +1 -1
  494. package/dist/admin/components/views/collections/List/Cell/types.js +1 -1
  495. package/dist/admin/components/views/collections/List/Default.js +1 -1
  496. package/dist/admin/components/views/collections/List/RelationshipProvider/index.js +1 -1
  497. package/dist/admin/components/views/collections/List/RelationshipProvider/reducer.js +1 -1
  498. package/dist/admin/components/views/collections/List/SelectAll/index.js +1 -1
  499. package/dist/admin/components/views/collections/List/SelectRow/index.js +1 -1
  500. package/dist/admin/components/views/collections/List/SelectionProvider/index.js +1 -1
  501. package/dist/admin/components/views/collections/List/formatFields.js +1 -1
  502. package/dist/admin/components/views/collections/List/index.js +1 -1
  503. package/dist/admin/components/views/collections/List/types.js +1 -1
  504. package/dist/admin/components/views/types.js +1 -1
  505. package/dist/admin/components.config.js +1 -1
  506. package/dist/admin/hooks/useDebounce.js +1 -1
  507. package/dist/admin/hooks/useDebouncedCallback.js +1 -1
  508. package/dist/admin/hooks/useDelay.js +1 -1
  509. package/dist/admin/hooks/useDelayedRender.js +1 -1
  510. package/dist/admin/hooks/useHotkey.js +1 -1
  511. package/dist/admin/hooks/useIntersect.js +1 -1
  512. package/dist/admin/hooks/useMountEffect.js +1 -1
  513. package/dist/admin/hooks/usePayloadAPI.js +1 -1
  514. package/dist/admin/hooks/useThrottledEffect.js +1 -1
  515. package/dist/admin/hooks/useThumbnail.js +1 -1
  516. package/dist/admin/hooks/useTitle.js +1 -1
  517. package/dist/admin/hooks/useUseAsTitle.js +1 -1
  518. package/dist/admin/index.js +1 -1
  519. package/dist/admin/utilities/formatDate/getSupportedDateLocale.d.ts.map +1 -1
  520. package/dist/admin/utilities/formatDate/getSupportedDateLocale.js +27 -2
  521. package/dist/admin/utilities/formatDate/index.js +1 -1
  522. package/dist/admin/utilities/getOffsetTop.js +1 -1
  523. package/dist/admin/utilities/getSupportedMonacoLocale.js +1 -1
  524. package/dist/admin/utilities/groupNavItems.js +1 -1
  525. package/dist/admin/utilities/scrollToID.js +1 -1
  526. package/dist/admin/utilities/setsAreEqual.js +1 -1
  527. package/dist/admin/utilities/useResize.js +1 -1
  528. package/dist/auth/baseFields/accountLock.js +1 -1
  529. package/dist/auth/baseFields/apiKey.js +1 -1
  530. package/dist/auth/baseFields/auth.js +1 -1
  531. package/dist/auth/baseFields/verification.js +1 -1
  532. package/dist/auth/crypto.js +1 -1
  533. package/dist/auth/defaultAccess.js +1 -1
  534. package/dist/auth/defaultUser.js +1 -1
  535. package/dist/auth/executeAccess.js +1 -1
  536. package/dist/auth/getExecuteStaticAccess.js +1 -1
  537. package/dist/auth/getExtractJWT.js +1 -1
  538. package/dist/auth/graphql/resolvers/access.js +1 -1
  539. package/dist/auth/graphql/resolvers/forgotPassword.js +1 -1
  540. package/dist/auth/graphql/resolvers/init.js +1 -1
  541. package/dist/auth/graphql/resolvers/login.js +1 -1
  542. package/dist/auth/graphql/resolvers/logout.js +1 -1
  543. package/dist/auth/graphql/resolvers/me.js +1 -1
  544. package/dist/auth/graphql/resolvers/refresh.js +1 -1
  545. package/dist/auth/graphql/resolvers/resetPassword.js +1 -1
  546. package/dist/auth/graphql/resolvers/unlock.js +1 -1
  547. package/dist/auth/graphql/resolvers/verifyEmail.js +1 -1
  548. package/dist/auth/index.js +1 -1
  549. package/dist/auth/init.js +1 -1
  550. package/dist/auth/isLocked.js +1 -1
  551. package/dist/auth/operations/access.js +1 -1
  552. package/dist/auth/operations/forgotPassword.js +1 -1
  553. package/dist/auth/operations/getFieldsToSign.js +1 -1
  554. package/dist/auth/operations/init.js +1 -1
  555. package/dist/auth/operations/local/forgotPassword.js +1 -1
  556. package/dist/auth/operations/local/index.js +1 -1
  557. package/dist/auth/operations/local/login.js +1 -1
  558. package/dist/auth/operations/local/resetPassword.js +1 -1
  559. package/dist/auth/operations/local/unlock.js +1 -1
  560. package/dist/auth/operations/local/verifyEmail.js +1 -1
  561. package/dist/auth/operations/login.d.ts.map +1 -1
  562. package/dist/auth/operations/login.js +17 -1
  563. package/dist/auth/operations/logout.js +1 -1
  564. package/dist/auth/operations/me.js +1 -1
  565. package/dist/auth/operations/refresh.js +1 -1
  566. package/dist/auth/operations/registerFirstUser.js +1 -1
  567. package/dist/auth/operations/resetPassword.js +1 -1
  568. package/dist/auth/operations/unlock.js +1 -1
  569. package/dist/auth/operations/verifyEmail.js +1 -1
  570. package/dist/auth/requestHandlers/access.js +1 -1
  571. package/dist/auth/requestHandlers/forgotPassword.js +1 -1
  572. package/dist/auth/requestHandlers/init.js +1 -1
  573. package/dist/auth/requestHandlers/login.js +1 -1
  574. package/dist/auth/requestHandlers/logout.js +1 -1
  575. package/dist/auth/requestHandlers/me.js +1 -1
  576. package/dist/auth/requestHandlers/refresh.js +1 -1
  577. package/dist/auth/requestHandlers/registerFirstUser.js +1 -1
  578. package/dist/auth/requestHandlers/resetPassword.js +1 -1
  579. package/dist/auth/requestHandlers/unlock.js +1 -1
  580. package/dist/auth/requestHandlers/verifyEmail.js +1 -1
  581. package/dist/auth/sendVerificationEmail.js +1 -1
  582. package/dist/auth/strategies/apiKey.js +1 -1
  583. package/dist/auth/strategies/jwt.js +1 -1
  584. package/dist/auth/strategies/local/authenticate.js +1 -1
  585. package/dist/auth/strategies/local/generatePasswordSaltHash.js +1 -1
  586. package/dist/auth/strategies/local/incrementLoginAttempts.js +1 -1
  587. package/dist/auth/strategies/local/register.js +1 -1
  588. package/dist/auth/strategies/local/resetLoginAttempts.js +1 -1
  589. package/dist/auth/types.js +1 -1
  590. package/dist/bin/build.js +1 -1
  591. package/dist/bin/generateGraphQLSchema.js +1 -1
  592. package/dist/bin/generateTypes.js +1 -1
  593. package/dist/bin/index.js +1 -1
  594. package/dist/bin/migrate.js +1 -1
  595. package/dist/bundlers/mocks/db-mongodb.js +1 -1
  596. package/dist/bundlers/mocks/db-postgres.js +1 -1
  597. package/dist/bundlers/mocks/dotENV.js +1 -1
  598. package/dist/bundlers/mocks/emptyModule.js +1 -1
  599. package/dist/bundlers/mocks/fileMock.js +1 -1
  600. package/dist/bundlers/types.js +1 -1
  601. package/dist/collections/bindCollection.js +1 -1
  602. package/dist/collections/buildEndpoints.js +1 -1
  603. package/dist/collections/config/build.js +1 -1
  604. package/dist/collections/config/defaults.js +1 -1
  605. package/dist/collections/config/sanitize.js +1 -1
  606. package/dist/collections/config/schema.d.ts.map +1 -1
  607. package/dist/collections/config/schema.js +4 -2
  608. package/dist/collections/config/types.d.ts +8 -2
  609. package/dist/collections/config/types.d.ts.map +1 -1
  610. package/dist/collections/config/types.js +1 -1
  611. package/dist/collections/dataloader.js +1 -1
  612. package/dist/collections/graphql/init.js +1 -1
  613. package/dist/collections/graphql/resolvers/create.js +1 -1
  614. package/dist/collections/graphql/resolvers/delete.js +1 -1
  615. package/dist/collections/graphql/resolvers/docAccess.js +1 -1
  616. package/dist/collections/graphql/resolvers/find.js +1 -1
  617. package/dist/collections/graphql/resolvers/findByID.js +1 -1
  618. package/dist/collections/graphql/resolvers/findVersionByID.js +1 -1
  619. package/dist/collections/graphql/resolvers/findVersions.js +1 -1
  620. package/dist/collections/graphql/resolvers/restoreVersion.js +1 -1
  621. package/dist/collections/graphql/resolvers/update.js +1 -1
  622. package/dist/collections/graphql/types.js +1 -1
  623. package/dist/collections/initHTTP.js +1 -1
  624. package/dist/collections/initLocal.js +1 -1
  625. package/dist/collections/operations/create.js +1 -1
  626. package/dist/collections/operations/delete.js +1 -1
  627. package/dist/collections/operations/deleteByID.js +1 -1
  628. package/dist/collections/operations/docAccess.js +1 -1
  629. package/dist/collections/operations/find.js +1 -1
  630. package/dist/collections/operations/findByID.js +1 -1
  631. package/dist/collections/operations/findVersionByID.js +1 -1
  632. package/dist/collections/operations/findVersions.js +1 -1
  633. package/dist/collections/operations/local/create.js +1 -1
  634. package/dist/collections/operations/local/delete.js +1 -1
  635. package/dist/collections/operations/local/find.js +1 -1
  636. package/dist/collections/operations/local/findByID.js +1 -1
  637. package/dist/collections/operations/local/findVersionByID.js +1 -1
  638. package/dist/collections/operations/local/findVersions.js +1 -1
  639. package/dist/collections/operations/local/index.js +1 -1
  640. package/dist/collections/operations/local/restoreVersion.js +1 -1
  641. package/dist/collections/operations/local/update.js +1 -1
  642. package/dist/collections/operations/restoreVersion.js +1 -1
  643. package/dist/collections/operations/update.js +2 -3
  644. package/dist/collections/operations/updateByID.js +2 -2
  645. package/dist/collections/operations/utils.js +1 -1
  646. package/dist/collections/requestHandlers/create.js +1 -1
  647. package/dist/collections/requestHandlers/delete.js +1 -1
  648. package/dist/collections/requestHandlers/deleteByID.d.ts.map +1 -1
  649. package/dist/collections/requestHandlers/deleteByID.js +8 -2
  650. package/dist/collections/requestHandlers/docAccess.js +1 -1
  651. package/dist/collections/requestHandlers/find.js +1 -1
  652. package/dist/collections/requestHandlers/findByID.d.ts.map +1 -1
  653. package/dist/collections/requestHandlers/findByID.js +8 -2
  654. package/dist/collections/requestHandlers/findVersionByID.d.ts.map +1 -1
  655. package/dist/collections/requestHandlers/findVersionByID.js +8 -2
  656. package/dist/collections/requestHandlers/findVersions.js +1 -1
  657. package/dist/collections/requestHandlers/restoreVersion.d.ts.map +1 -1
  658. package/dist/collections/requestHandlers/restoreVersion.js +8 -2
  659. package/dist/collections/requestHandlers/update.js +1 -1
  660. package/dist/collections/requestHandlers/updateByID.d.ts.map +1 -1
  661. package/dist/collections/requestHandlers/updateByID.js +8 -2
  662. package/dist/config/build.js +1 -1
  663. package/dist/config/clientFiles.js +1 -1
  664. package/dist/config/defaults.js +1 -1
  665. package/dist/config/find.js +1 -1
  666. package/dist/config/load.js +1 -1
  667. package/dist/config/sanitize.js +1 -1
  668. package/dist/config/schema.js +1 -1
  669. package/dist/config/shared/adminViewSchema.js +1 -1
  670. package/dist/config/shared/componentSchema.js +1 -1
  671. package/dist/config/types.js +1 -1
  672. package/dist/config/validate.js +1 -1
  673. package/dist/database/combineQueries.js +1 -1
  674. package/dist/database/createDatabaseAdapter.js +1 -1
  675. package/dist/database/flattenWhereToOperators.js +1 -1
  676. package/dist/database/getLocalizedPaths.js +1 -1
  677. package/dist/database/migrations/createMigration.js +1 -1
  678. package/dist/database/migrations/getMigrations.js +1 -1
  679. package/dist/database/migrations/migrate.js +1 -1
  680. package/dist/database/migrations/migrateDown.js +1 -1
  681. package/dist/database/migrations/migrateRefresh.js +1 -1
  682. package/dist/database/migrations/migrateReset.js +1 -1
  683. package/dist/database/migrations/migrateStatus.js +1 -1
  684. package/dist/database/migrations/migrationTemplate.js +1 -1
  685. package/dist/database/migrations/migrationsCollection.js +1 -1
  686. package/dist/database/migrations/readMigrationFiles.js +1 -1
  687. package/dist/database/queryValidation/types.js +1 -1
  688. package/dist/database/queryValidation/validateQueryPaths.js +1 -1
  689. package/dist/database/queryValidation/validateSearchParams.js +1 -1
  690. package/dist/database/types.d.ts +4 -0
  691. package/dist/database/types.d.ts.map +1 -1
  692. package/dist/database/types.js +1 -1
  693. package/dist/email/build.js +1 -1
  694. package/dist/email/defaults.js +1 -1
  695. package/dist/email/mockHandler.js +1 -1
  696. package/dist/email/sendEmail.js +1 -1
  697. package/dist/email/types.js +1 -1
  698. package/dist/errors/APIError.js +1 -1
  699. package/dist/errors/AuthenticationError.js +1 -1
  700. package/dist/errors/DuplicateCollection.js +1 -1
  701. package/dist/errors/DuplicateFieldName.js +1 -1
  702. package/dist/errors/DuplicateGlobal.js +1 -1
  703. package/dist/errors/ErrorDeletingFile.js +1 -1
  704. package/dist/errors/FileUploadError.js +1 -1
  705. package/dist/errors/Forbidden.js +1 -1
  706. package/dist/errors/InvalidConfiguration.js +1 -1
  707. package/dist/errors/InvalidFieldName.js +1 -1
  708. package/dist/errors/InvalidFieldRelationship.js +1 -1
  709. package/dist/errors/InvalidSchema.js +1 -1
  710. package/dist/errors/LockedAuth.js +1 -1
  711. package/dist/errors/MissingCollectionLabel.js +1 -1
  712. package/dist/errors/MissingEditorProps.d.ts +7 -0
  713. package/dist/errors/MissingEditorProps.d.ts.map +1 -0
  714. package/dist/errors/MissingEditorProps.js +25 -0
  715. package/dist/errors/MissingFieldInputOptions.js +1 -1
  716. package/dist/errors/MissingFieldType.js +1 -1
  717. package/dist/errors/MissingFile.js +1 -1
  718. package/dist/errors/NotFound.js +1 -1
  719. package/dist/errors/QueryError.js +1 -1
  720. package/dist/errors/TimestampsRequired.js +1 -1
  721. package/dist/errors/UnathorizedError.js +1 -1
  722. package/dist/errors/ValidationError.js +1 -1
  723. package/dist/errors/index.js +1 -1
  724. package/dist/errors/types.js +1 -1
  725. package/dist/exports/auth.js +1 -1
  726. package/dist/exports/components/elements.js +1 -1
  727. package/dist/exports/components/fields/Array.js +1 -1
  728. package/dist/exports/components/fields/Blocks.js +1 -1
  729. package/dist/exports/components/fields/Cell.js +1 -1
  730. package/dist/exports/components/fields/Checkbox.js +1 -1
  731. package/dist/exports/components/fields/Code.js +1 -1
  732. package/dist/exports/components/fields/DateTime.js +1 -1
  733. package/dist/exports/components/fields/Email.js +1 -1
  734. package/dist/exports/components/fields/Group.js +1 -1
  735. package/dist/exports/components/fields/Json.js +1 -1
  736. package/dist/exports/components/fields/Number.js +1 -1
  737. package/dist/exports/components/fields/Password.js +1 -1
  738. package/dist/exports/components/fields/RadioGroup/RadioInput.js +1 -1
  739. package/dist/exports/components/fields/RadioGroup/index.js +1 -1
  740. package/dist/exports/components/fields/Relationship.js +1 -1
  741. package/dist/exports/components/fields/RichText.js +1 -1
  742. package/dist/exports/components/fields/Row.js +1 -1
  743. package/dist/exports/components/fields/Select.js +1 -1
  744. package/dist/exports/components/fields/Text.js +1 -1
  745. package/dist/exports/components/fields/Textarea.js +1 -1
  746. package/dist/exports/components/fields/Upload.js +1 -1
  747. package/dist/exports/components/forms.js +1 -1
  748. package/dist/exports/components/graphics.js +1 -1
  749. package/dist/exports/components/hooks.js +1 -1
  750. package/dist/exports/components/icons.js +1 -1
  751. package/dist/exports/components/preferences.js +1 -1
  752. package/dist/exports/components/root.js +1 -1
  753. package/dist/exports/components/templates.js +1 -1
  754. package/dist/exports/components/utilities.js +1 -1
  755. package/dist/exports/components/views/Cell.js +1 -1
  756. package/dist/exports/components/views/Dashboard.js +1 -1
  757. package/dist/exports/components/views/Edit.js +1 -1
  758. package/dist/exports/components/views/List.js +1 -1
  759. package/dist/exports/components.js +1 -1
  760. package/dist/exports/config.js +1 -1
  761. package/dist/exports/database.d.ts +1 -1
  762. package/dist/exports/database.d.ts.map +1 -1
  763. package/dist/exports/database.js +4 -1
  764. package/dist/exports/errors.js +1 -1
  765. package/dist/exports/fields/validations.js +1 -1
  766. package/dist/exports/graphql.js +1 -1
  767. package/dist/exports/types.d.ts +2 -2
  768. package/dist/exports/types.d.ts.map +1 -1
  769. package/dist/exports/types.js +1 -1
  770. package/dist/exports/utilities.js +1 -1
  771. package/dist/exports/versions.js +1 -1
  772. package/dist/express/admin.js +1 -1
  773. package/dist/express/middleware/authenticate.js +1 -1
  774. package/dist/express/middleware/convertPayload.js +1 -1
  775. package/dist/express/middleware/corsHeaders.js +1 -1
  776. package/dist/express/middleware/defaultPayload.js +1 -1
  777. package/dist/express/middleware/errorHandler.js +1 -1
  778. package/dist/express/middleware/i18n.js +1 -1
  779. package/dist/express/middleware/identifyAPI.js +1 -1
  780. package/dist/express/middleware/index.js +1 -1
  781. package/dist/express/mountEndpoints.js +1 -1
  782. package/dist/express/responses/formatError.js +1 -1
  783. package/dist/express/responses/formatSuccess.js +1 -1
  784. package/dist/express/setRequestContext.js +1 -1
  785. package/dist/express/static.js +1 -1
  786. package/dist/express/types.js +1 -1
  787. package/dist/fields/baseFields/baseBlockFields.js +1 -1
  788. package/dist/fields/baseFields/baseIDField.js +1 -1
  789. package/dist/fields/config/sanitize.d.ts +7 -1
  790. package/dist/fields/config/sanitize.d.ts.map +1 -1
  791. package/dist/fields/config/sanitize.js +16 -8
  792. package/dist/fields/config/sanitize.spec.js +1 -1
  793. package/dist/fields/config/schema.d.ts.map +1 -1
  794. package/dist/fields/config/schema.js +8 -2
  795. package/dist/fields/config/types.d.ts +31 -1
  796. package/dist/fields/config/types.d.ts.map +1 -1
  797. package/dist/fields/config/types.js +1 -1
  798. package/dist/fields/getDefaultValue.js +1 -1
  799. package/dist/fields/hooks/afterChange/index.js +1 -1
  800. package/dist/fields/hooks/afterChange/promise.js +1 -1
  801. package/dist/fields/hooks/afterChange/traverseFields.js +1 -1
  802. package/dist/fields/hooks/afterRead/index.js +1 -1
  803. package/dist/fields/hooks/afterRead/promise.js +1 -1
  804. package/dist/fields/hooks/afterRead/relationshipPopulationPromise.js +1 -1
  805. package/dist/fields/hooks/afterRead/traverseFields.js +1 -1
  806. package/dist/fields/hooks/beforeChange/cloneDataFromOriginalDoc.js +1 -1
  807. package/dist/fields/hooks/beforeChange/getExistingRowDoc.js +1 -1
  808. package/dist/fields/hooks/beforeChange/index.js +1 -1
  809. package/dist/fields/hooks/beforeChange/promise.js +1 -1
  810. package/dist/fields/hooks/beforeChange/traverseFields.js +1 -1
  811. package/dist/fields/hooks/beforeValidate/index.js +1 -1
  812. package/dist/fields/hooks/beforeValidate/promise.js +1 -1
  813. package/dist/fields/hooks/beforeValidate/traverseFields.js +1 -1
  814. package/dist/fields/mergeBaseFields.js +1 -1
  815. package/dist/fields/sortableFieldTypes.js +1 -1
  816. package/dist/fields/validations.d.ts +1 -0
  817. package/dist/fields/validations.d.ts.map +1 -1
  818. package/dist/fields/validations.js +43 -2
  819. package/dist/fields/validations.spec.js +1 -1
  820. package/dist/globals/buildEndpoints.js +1 -1
  821. package/dist/globals/config/build.js +1 -1
  822. package/dist/globals/config/sanitize.js +1 -1
  823. package/dist/globals/config/schema.d.ts.map +1 -1
  824. package/dist/globals/config/schema.js +3 -2
  825. package/dist/globals/config/types.d.ts +8 -4
  826. package/dist/globals/config/types.d.ts.map +1 -1
  827. package/dist/globals/config/types.js +1 -1
  828. package/dist/globals/graphql/init.js +1 -1
  829. package/dist/globals/graphql/resolvers/docAccess.js +1 -1
  830. package/dist/globals/graphql/resolvers/findOne.js +1 -1
  831. package/dist/globals/graphql/resolvers/findVersionByID.js +1 -1
  832. package/dist/globals/graphql/resolvers/findVersions.js +1 -1
  833. package/dist/globals/graphql/resolvers/index.js +1 -1
  834. package/dist/globals/graphql/resolvers/restoreVersion.js +1 -1
  835. package/dist/globals/graphql/resolvers/update.js +1 -1
  836. package/dist/globals/initHTTP.js +1 -1
  837. package/dist/globals/initLocal.js +1 -1
  838. package/dist/globals/operations/docAccess.js +1 -1
  839. package/dist/globals/operations/findOne.js +1 -1
  840. package/dist/globals/operations/findVersionByID.js +1 -1
  841. package/dist/globals/operations/findVersions.js +1 -1
  842. package/dist/globals/operations/local/findOne.js +1 -1
  843. package/dist/globals/operations/local/findVersionByID.js +1 -1
  844. package/dist/globals/operations/local/findVersions.js +1 -1
  845. package/dist/globals/operations/local/index.js +1 -1
  846. package/dist/globals/operations/local/restoreVersion.js +1 -1
  847. package/dist/globals/operations/local/update.js +1 -1
  848. package/dist/globals/operations/restoreVersion.js +1 -1
  849. package/dist/globals/operations/update.js +1 -1
  850. package/dist/globals/requestHandlers/docAccess.js +1 -1
  851. package/dist/globals/requestHandlers/findOne.js +1 -1
  852. package/dist/globals/requestHandlers/findVersionByID.js +1 -1
  853. package/dist/globals/requestHandlers/findVersions.js +1 -1
  854. package/dist/globals/requestHandlers/restoreVersion.js +1 -1
  855. package/dist/globals/requestHandlers/update.js +1 -1
  856. package/dist/graphql/errorHandler.js +1 -1
  857. package/dist/graphql/graphQLHandler.js +1 -1
  858. package/dist/graphql/initPlayground.js +1 -1
  859. package/dist/graphql/registerSchema.js +1 -1
  860. package/dist/graphql/schema/buildFallbackLocaleInputType.js +1 -1
  861. package/dist/graphql/schema/buildLocaleInputType.js +1 -1
  862. package/dist/graphql/schema/buildMutationInputType.js +1 -1
  863. package/dist/graphql/schema/buildObjectType.js +1 -1
  864. package/dist/graphql/schema/buildPaginatedListType.js +1 -1
  865. package/dist/graphql/schema/buildPoliciesType.js +1 -1
  866. package/dist/graphql/schema/buildWhereInputType.js +1 -1
  867. package/dist/graphql/schema/fieldToWhereInputSchemaMap.js +1 -1
  868. package/dist/graphql/schema/isFieldNullable.js +1 -1
  869. package/dist/graphql/schema/operators.js +1 -1
  870. package/dist/graphql/schema/recursivelyBuildNestedPaths.js +1 -1
  871. package/dist/graphql/schema/withNullableType.js +1 -1
  872. package/dist/graphql/schema/withOperators.js +1 -1
  873. package/dist/graphql/utilities/combineParentName.js +1 -1
  874. package/dist/graphql/utilities/formatName.js +1 -1
  875. package/dist/graphql/utilities/formatName.spec.js +1 -1
  876. package/dist/graphql/utilities/formatOptions.js +1 -1
  877. package/dist/graphql/utilities/getCheckIfLocaleObject.js +1 -1
  878. package/dist/graphql/utilities/uppercase.js +1 -1
  879. package/dist/graphql/utilities/wrapCustomResolver.js +1 -1
  880. package/dist/index.js +1 -1
  881. package/dist/initHTTP.js +1 -1
  882. package/dist/localization/middleware.js +1 -1
  883. package/dist/localization/sanitizeFallbackLocale.js +1 -1
  884. package/dist/payload.js +1 -1
  885. package/dist/preferences/deleteUserPreferences.js +1 -1
  886. package/dist/preferences/operations/delete.js +1 -1
  887. package/dist/preferences/operations/findOne.js +1 -1
  888. package/dist/preferences/operations/update.js +1 -1
  889. package/dist/preferences/preferencesCollection.js +1 -1
  890. package/dist/preferences/requestHandlers/delete.js +1 -1
  891. package/dist/preferences/requestHandlers/findOne.js +1 -1
  892. package/dist/preferences/requestHandlers/update.js +1 -1
  893. package/dist/preferences/types.js +1 -1
  894. package/dist/translations/ar.json +5 -1
  895. package/dist/translations/az.json +5 -2
  896. package/dist/translations/bg.json +5 -1
  897. package/dist/translations/cs.json +5 -1
  898. package/dist/translations/de.json +5 -1
  899. package/dist/translations/defaultOptions.js +1 -1
  900. package/dist/translations/en.json +2 -0
  901. package/dist/translations/es.json +5 -1
  902. package/dist/translations/extractTranslations.js +1 -1
  903. package/dist/translations/fa.json +5 -1
  904. package/dist/translations/fr.json +5 -1
  905. package/dist/translations/hr.json +5 -1
  906. package/dist/translations/hu.json +5 -1
  907. package/dist/translations/index.d.ts +116 -1
  908. package/dist/translations/index.d.ts.map +1 -1
  909. package/dist/translations/index.js +1 -1
  910. package/dist/translations/init.js +1 -1
  911. package/dist/translations/it.json +5 -1
  912. package/dist/translations/ja.json +5 -1
  913. package/dist/translations/ko.json +4 -0
  914. package/dist/translations/my.json +5 -1
  915. package/dist/translations/nb.json +5 -1
  916. package/dist/translations/nl.json +5 -1
  917. package/dist/translations/pl.json +4 -0
  918. package/dist/translations/pt.json +5 -1
  919. package/dist/translations/ro.json +5 -1
  920. package/dist/translations/rs-latin.json +4 -0
  921. package/dist/translations/rs.json +4 -0
  922. package/dist/translations/ru.json +5 -1
  923. package/dist/translations/sv.json +5 -1
  924. package/dist/translations/th.json +5 -1
  925. package/dist/translations/tr.json +5 -1
  926. package/dist/translations/translation-schema.json +8 -0
  927. package/dist/translations/type.js +1 -1
  928. package/dist/translations/ua.json +6 -2
  929. package/dist/translations/vi.json +5 -1
  930. package/dist/translations/zh-tw.json +6 -4
  931. package/dist/translations/zh.json +4 -0
  932. package/dist/types/constants.js +1 -1
  933. package/dist/types/index.js +1 -1
  934. package/dist/uploads/canResizeImage.js +1 -1
  935. package/dist/uploads/cropImage.js +1 -1
  936. package/dist/uploads/deleteAssociatedFiles.js +1 -1
  937. package/dist/uploads/docWithFilenameExists.js +1 -1
  938. package/dist/uploads/fileExists.js +1 -1
  939. package/dist/uploads/formatFilesize.js +1 -1
  940. package/dist/uploads/generateFileData.d.ts.map +1 -1
  941. package/dist/uploads/generateFileData.js +4 -3
  942. package/dist/uploads/getBaseFields.js +1 -1
  943. package/dist/uploads/getExternalFile.d.ts +3 -2
  944. package/dist/uploads/getExternalFile.d.ts.map +1 -1
  945. package/dist/uploads/getExternalFile.js +20 -3
  946. package/dist/uploads/getFileByPath.js +1 -1
  947. package/dist/uploads/getImageSize.js +1 -1
  948. package/dist/uploads/getSafeFilename.js +1 -1
  949. package/dist/uploads/imageResizer.js +1 -1
  950. package/dist/uploads/isImage.js +1 -1
  951. package/dist/uploads/mimeTypeValidator.js +1 -1
  952. package/dist/uploads/mimeTypeValidator.spec.js +1 -1
  953. package/dist/uploads/saveBufferToFile.js +1 -1
  954. package/dist/uploads/types.d.ts +6 -0
  955. package/dist/uploads/types.d.ts.map +1 -1
  956. package/dist/uploads/types.js +1 -1
  957. package/dist/uploads/unlinkTempFiles.js +1 -1
  958. package/dist/uploads/uploadFiles.js +1 -1
  959. package/dist/utilities/canUseDOM.js +1 -1
  960. package/dist/utilities/checkDuplicateCollections.js +1 -1
  961. package/dist/utilities/combineMerge.js +1 -1
  962. package/dist/utilities/commitTransaction.js +1 -1
  963. package/dist/utilities/configToJSONSchema.d.ts +1 -1
  964. package/dist/utilities/configToJSONSchema.d.ts.map +1 -1
  965. package/dist/utilities/configToJSONSchema.js +9 -8
  966. package/dist/utilities/configToJSONSchema.spec.js +1 -1
  967. package/dist/utilities/convertData.js +1 -1
  968. package/dist/utilities/createArrayFromCommaDelineated.js +1 -1
  969. package/dist/utilities/createLocalReq.d.ts.map +1 -1
  970. package/dist/utilities/createLocalReq.js +9 -2
  971. package/dist/utilities/deepCopyObject.js +1 -1
  972. package/dist/utilities/deepMerge.js +1 -1
  973. package/dist/utilities/fieldSchemaToJSON.js +1 -1
  974. package/dist/utilities/findLocaleFromCode.js +1 -1
  975. package/dist/utilities/flattenTopLevelFields.js +1 -1
  976. package/dist/utilities/formatLabels.js +1 -1
  977. package/dist/utilities/formatLabels.spec.js +1 -1
  978. package/dist/utilities/getCSSVariable.js +1 -1
  979. package/dist/utilities/getCollectionIDFieldTypes.js +1 -1
  980. package/dist/utilities/getCookieExpiration.js +1 -1
  981. package/dist/utilities/getEntityPolicies.js +1 -1
  982. package/dist/utilities/getIDType.js +1 -1
  983. package/dist/utilities/getObjectDotNotation.js +1 -1
  984. package/dist/utilities/getTranslation.js +1 -1
  985. package/dist/utilities/getUniqueListBy.js +1 -1
  986. package/dist/utilities/groupOrTabHasRequiredSubfield.js +1 -1
  987. package/dist/utilities/initTransaction.js +1 -1
  988. package/dist/utilities/isNumber.js +1 -1
  989. package/dist/utilities/isValidID.js +1 -1
  990. package/dist/utilities/isolateObjectProperty.js +1 -1
  991. package/dist/utilities/killTransaction.js +1 -1
  992. package/dist/utilities/logger.js +1 -1
  993. package/dist/utilities/mapAsync.js +1 -1
  994. package/dist/utilities/overwriteMerge.js +1 -1
  995. package/dist/utilities/parseCookies.js +1 -1
  996. package/dist/utilities/sanitizeCollectionID.d.ts +9 -0
  997. package/dist/utilities/sanitizeCollectionID.d.ts.map +1 -0
  998. package/dist/utilities/sanitizeCollectionID.js +30 -0
  999. package/dist/utilities/sanitizeInternalFields.js +1 -1
  1000. package/dist/utilities/setsAreEqual.js +1 -1
  1001. package/dist/utilities/splitPathByArrayFields.js +1 -1
  1002. package/dist/utilities/telemetry/events/adminInit.js +1 -1
  1003. package/dist/utilities/telemetry/events/serverInit.js +1 -1
  1004. package/dist/utilities/telemetry/index.js +1 -1
  1005. package/dist/utilities/telemetry/oneWayHash.js +1 -1
  1006. package/dist/utilities/timestamp.js +1 -1
  1007. package/dist/utilities/toKebabCase.js +1 -1
  1008. package/dist/utilities/wait.js +1 -1
  1009. package/dist/utilities/wordBoundariesRegex.js +1 -1
  1010. package/dist/versions/baseFields.js +1 -1
  1011. package/dist/versions/buildCollectionFields.js +1 -1
  1012. package/dist/versions/buildGlobalFields.js +1 -1
  1013. package/dist/versions/deleteCollectionVersions.js +1 -1
  1014. package/dist/versions/drafts/appendVersionToQueryKey.js +1 -1
  1015. package/dist/versions/drafts/getQueryDraftsSort.js +1 -1
  1016. package/dist/versions/drafts/replaceWithDraftIfAvailable.js +1 -1
  1017. package/dist/versions/enforceMaxVersions.js +1 -1
  1018. package/dist/versions/getLatestCollectionVersion.d.ts.map +1 -1
  1019. package/dist/versions/getLatestCollectionVersion.js +3 -1
  1020. package/dist/versions/getLatestGlobalVersion.js +1 -1
  1021. package/dist/versions/getVersionsModelName.d.ts +5 -0
  1022. package/dist/versions/getVersionsModelName.d.ts.map +1 -1
  1023. package/dist/versions/getVersionsModelName.js +1 -1
  1024. package/dist/versions/saveVersion.js +2 -2
  1025. package/dist/versions/types.js +1 -1
  1026. package/errors.js +1 -1
  1027. package/graphql.js +1 -1
  1028. package/package.json +1 -1
  1029. package/types.d.ts +2 -2
  1030. package/types.js +1 -1
  1031. package/utilities.js +1 -1
  1032. package/versions.js +1 -1
@@ -64,6 +64,7 @@ _export(exports, {
64
64
  return upload;
65
65
  }
66
66
  });
67
+ const _ajv = /*#__PURE__*/ _interop_require_default(require("ajv"));
67
68
  const _canUseDOM = /*#__PURE__*/ _interop_require_default(require("../utilities/canUseDOM"));
68
69
  const _getIDType = require("../utilities/getIDType");
69
70
  const _isNumber = require("../utilities/isNumber");
@@ -167,13 +168,53 @@ const code = (value, { required, t })=>{
167
168
  }
168
169
  return true;
169
170
  };
170
- const json = (value, { jsonError, required, t })=>{
171
+ const json = async (value, { jsonError, jsonSchema, required, t })=>{
171
172
  if (required && !value) {
172
173
  return t('validation:required');
173
174
  }
174
175
  if (jsonError !== undefined) {
175
176
  return t('validation:invalidInput');
176
177
  }
178
+ const isNotEmpty = (value)=>{
179
+ if (value === undefined || value === null) {
180
+ return false;
181
+ }
182
+ if (Array.isArray(value) && value.length === 0) {
183
+ return false;
184
+ }
185
+ if (typeof value === 'object' && Object.keys(value).length === 0) {
186
+ return false;
187
+ }
188
+ return true;
189
+ };
190
+ const fetchSchema = ({ uri, schema })=>{
191
+ if (uri && schema) return schema;
192
+ return fetch(uri).then((response)=>{
193
+ if (!response.ok) {
194
+ throw new Error('Network response was not ok');
195
+ }
196
+ return response.json();
197
+ }).then((json)=>{
198
+ const jsonSchemaSanitizations = {
199
+ id: undefined,
200
+ $id: json.id,
201
+ $schema: 'http://json-schema.org/draft-07/schema#'
202
+ };
203
+ return Object.assign(json, jsonSchemaSanitizations);
204
+ });
205
+ };
206
+ if (!_canUseDOM.default && jsonSchema && isNotEmpty(value)) {
207
+ try {
208
+ jsonSchema.schema = await fetchSchema(jsonSchema);
209
+ const { schema } = jsonSchema;
210
+ const ajv = new _ajv.default();
211
+ if (!ajv.validate(schema, value)) {
212
+ return t(ajv.errorsText());
213
+ }
214
+ } catch (error) {
215
+ return t(error.message);
216
+ }
217
+ }
177
218
  return true;
178
219
  };
179
220
  const checkbox = (value, { required, t })=>{
@@ -488,4 +529,4 @@ const _default = {
488
529
  upload
489
530
  };
490
531
 
491
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWVsZHMvdmFsaWRhdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSaWNoVGV4dEFkYXB0ZXIgfSBmcm9tICcuLi9leHBvcnRzL3R5cGVzJ1xuaW1wb3J0IHR5cGUge1xuICBBcnJheUZpZWxkLFxuICBCbG9ja0ZpZWxkLFxuICBDaGVja2JveEZpZWxkLFxuICBDb2RlRmllbGQsXG4gIERhdGVGaWVsZCxcbiAgRW1haWxGaWVsZCxcbiAgSlNPTkZpZWxkLFxuICBOdW1iZXJGaWVsZCxcbiAgUG9pbnRGaWVsZCxcbiAgUmFkaW9GaWVsZCxcbiAgUmVsYXRpb25zaGlwRmllbGQsXG4gIFJlbGF0aW9uc2hpcFZhbHVlLFxuICBSaWNoVGV4dEZpZWxkLFxuICBTZWxlY3RGaWVsZCxcbiAgVGV4dEZpZWxkLFxuICBUZXh0YXJlYUZpZWxkLFxuICBVcGxvYWRGaWVsZCxcbiAgVmFsaWRhdGUsXG59IGZyb20gJy4vY29uZmlnL3R5cGVzJ1xuXG5pbXBvcnQgY2FuVXNlRE9NIGZyb20gJy4uL3V0aWxpdGllcy9jYW5Vc2VET00nXG5pbXBvcnQgeyBnZXRJRFR5cGUgfSBmcm9tICcuLi91dGlsaXRpZXMvZ2V0SURUeXBlJ1xuaW1wb3J0IHsgaXNOdW1iZXIgfSBmcm9tICcuLi91dGlsaXRpZXMvaXNOdW1iZXInXG5pbXBvcnQgeyBpc1ZhbGlkSUQgfSBmcm9tICcuLi91dGlsaXRpZXMvaXNWYWxpZElEJ1xuaW1wb3J0IHsgZmllbGRBZmZlY3RzRGF0YSB9IGZyb20gJy4vY29uZmlnL3R5cGVzJ1xuXG5leHBvcnQgY29uc3QgdGV4dDogVmFsaWRhdGU8dW5rbm93biwgdW5rbm93biwgVGV4dEZpZWxkPiA9IChcbiAgdmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdLFxuICB7IGNvbmZpZywgaGFzTWFueSwgbWF4TGVuZ3RoOiBmaWVsZE1heExlbmd0aCwgbWF4Um93cywgbWluTGVuZ3RoLCBtaW5Sb3dzLCByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIGxldCBtYXhMZW5ndGg6IG51bWJlclxuXG4gIGlmICghcmVxdWlyZWQpIHtcbiAgICBpZiAoIXZhbHVlKSByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgaWYgKGhhc01hbnkgPT09IHRydWUpIHtcbiAgICBjb25zdCBsZW5ndGhWYWxpZGF0aW9uUmVzdWx0ID0gdmFsaWRhdGVBcnJheUxlbmd0aCh2YWx1ZSwgeyBtYXhSb3dzLCBtaW5Sb3dzLCByZXF1aXJlZCwgdCB9KVxuICAgIGlmICh0eXBlb2YgbGVuZ3RoVmFsaWRhdGlvblJlc3VsdCA9PT0gJ3N0cmluZycpIHJldHVybiBsZW5ndGhWYWxpZGF0aW9uUmVzdWx0XG4gIH1cblxuICBpZiAodHlwZW9mIGNvbmZpZz8uZGVmYXVsdE1heFRleHRMZW5ndGggPT09ICdudW1iZXInKSBtYXhMZW5ndGggPSBjb25maWcuZGVmYXVsdE1heFRleHRMZW5ndGhcbiAgaWYgKHR5cGVvZiBmaWVsZE1heExlbmd0aCA9PT0gJ251bWJlcicpIG1heExlbmd0aCA9IGZpZWxkTWF4TGVuZ3RoXG5cbiAgY29uc3Qgc3RyaW5nc1RvVmFsaWRhdGU6IHN0cmluZ1tdID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV1cblxuICBmb3IgKGNvbnN0IHN0cmluZ1ZhbHVlIG9mIHN0cmluZ3NUb1ZhbGlkYXRlKSB7XG4gICAgY29uc3QgbGVuZ3RoID0gc3RyaW5nVmFsdWU/Lmxlbmd0aCB8fCAwXG5cbiAgICBpZiAodHlwZW9mIG1heExlbmd0aCA9PT0gJ251bWJlcicgJiYgbGVuZ3RoID4gbWF4TGVuZ3RoKSB7XG4gICAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpzaG9ydGVyVGhhbk1heCcsIHsgbGFiZWw6IHQoJ3ZhbHVlJyksIG1heExlbmd0aCwgc3RyaW5nVmFsdWUgfSlcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIG1pbkxlbmd0aCA9PT0gJ251bWJlcicgJiYgbGVuZ3RoIDwgbWluTGVuZ3RoKSB7XG4gICAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpsb25nZXJUaGFuTWluJywgeyBsYWJlbDogdCgndmFsdWUnKSwgbWluTGVuZ3RoLCBzdHJpbmdWYWx1ZSB9KVxuICAgIH1cbiAgfVxuXG4gIGlmIChyZXF1aXJlZCkge1xuICAgIGlmICghKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgfHwgQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHx8IHZhbHVlPy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVkJylcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgcGFzc3dvcmQ6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIFRleHRGaWVsZD4gPSAoXG4gIHZhbHVlOiBzdHJpbmcsXG4gIHsgY29uZmlnLCBtYXhMZW5ndGg6IGZpZWxkTWF4TGVuZ3RoLCBtaW5MZW5ndGgsIHBheWxvYWQsIHJlcXVpcmVkLCB0IH0sXG4pID0+IHtcbiAgbGV0IG1heExlbmd0aDogbnVtYmVyXG5cbiAgaWYgKHR5cGVvZiBjb25maWc/LmRlZmF1bHRNYXhUZXh0TGVuZ3RoID09PSAnbnVtYmVyJykgbWF4TGVuZ3RoID0gY29uZmlnLmRlZmF1bHRNYXhUZXh0TGVuZ3RoXG4gIGlmICh0eXBlb2YgZmllbGRNYXhMZW5ndGggPT09ICdudW1iZXInKSBtYXhMZW5ndGggPSBmaWVsZE1heExlbmd0aFxuXG4gIGlmICh2YWx1ZSAmJiBtYXhMZW5ndGggJiYgdmFsdWUubGVuZ3RoID4gbWF4TGVuZ3RoKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246c2hvcnRlclRoYW5NYXgnLCB7IG1heExlbmd0aCB9KVxuICB9XG5cbiAgaWYgKHZhbHVlICYmIG1pbkxlbmd0aCAmJiB2YWx1ZS5sZW5ndGggPCBtaW5MZW5ndGgpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpsb25nZXJUaGFuTWluJywgeyBtaW5MZW5ndGggfSlcbiAgfVxuXG4gIGlmIChyZXF1aXJlZCAmJiAhdmFsdWUpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlZCcpXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgZW1haWw6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIEVtYWlsRmllbGQ+ID0gKHZhbHVlOiBzdHJpbmcsIHsgcmVxdWlyZWQsIHQgfSkgPT4ge1xuICBpZiAoKHZhbHVlICYmICEvXFxTW15cXHNAXSpAXFxTK1xcLlxcUysvLnRlc3QodmFsdWUpKSB8fCAoIXZhbHVlICYmIHJlcXVpcmVkKSkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOmVtYWlsQWRkcmVzcycpXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgdGV4dGFyZWE6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIFRleHRhcmVhRmllbGQ+ID0gKFxuICB2YWx1ZTogc3RyaW5nLFxuICB7IGNvbmZpZywgbWF4TGVuZ3RoOiBmaWVsZE1heExlbmd0aCwgbWluTGVuZ3RoLCBwYXlsb2FkLCByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIGxldCBtYXhMZW5ndGg6IG51bWJlclxuXG4gIGlmICh0eXBlb2YgY29uZmlnPy5kZWZhdWx0TWF4VGV4dExlbmd0aCA9PT0gJ251bWJlcicpIG1heExlbmd0aCA9IGNvbmZpZy5kZWZhdWx0TWF4VGV4dExlbmd0aFxuICBpZiAodHlwZW9mIGZpZWxkTWF4TGVuZ3RoID09PSAnbnVtYmVyJykgbWF4TGVuZ3RoID0gZmllbGRNYXhMZW5ndGhcbiAgaWYgKHZhbHVlICYmIG1heExlbmd0aCAmJiB2YWx1ZS5sZW5ndGggPiBtYXhMZW5ndGgpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpzaG9ydGVyVGhhbk1heCcsIHsgbWF4TGVuZ3RoIH0pXG4gIH1cblxuICBpZiAodmFsdWUgJiYgbWluTGVuZ3RoICYmIHZhbHVlLmxlbmd0aCA8IG1pbkxlbmd0aCkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOmxvbmdlclRoYW5NaW4nLCB7IG1pbkxlbmd0aCB9KVxuICB9XG5cbiAgaWYgKHJlcXVpcmVkICYmICF2YWx1ZSkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVkJylcbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmV4cG9ydCBjb25zdCBjb2RlOiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBDb2RlRmllbGQ+ID0gKHZhbHVlOiBzdHJpbmcsIHsgcmVxdWlyZWQsIHQgfSkgPT4ge1xuICBpZiAocmVxdWlyZWQgJiYgdmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVkJylcbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmV4cG9ydCBjb25zdCBqc29uOiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBKU09ORmllbGQgJiB7IGpzb25FcnJvcj86IHN0cmluZyB9PiA9IChcbiAgdmFsdWU6IHN0cmluZyxcbiAgeyBqc29uRXJyb3IsIHJlcXVpcmVkLCB0IH0sXG4pID0+IHtcbiAgaWYgKHJlcXVpcmVkICYmICF2YWx1ZSkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVkJylcbiAgfVxuXG4gIGlmIChqc29uRXJyb3IgIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOmludmFsaWRJbnB1dCcpXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgY2hlY2tib3g6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIENoZWNrYm94RmllbGQ+ID0gKFxuICB2YWx1ZTogYm9vbGVhbixcbiAgeyByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIGlmICgodmFsdWUgJiYgdHlwZW9mIHZhbHVlICE9PSAnYm9vbGVhbicpIHx8IChyZXF1aXJlZCAmJiB0eXBlb2YgdmFsdWUgIT09ICdib29sZWFuJykpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjp0cnVlT3JGYWxzZScpXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgZGF0ZTogVmFsaWRhdGU8dW5rbm93biwgdW5rbm93biwgRGF0ZUZpZWxkPiA9ICh2YWx1ZSwgeyByZXF1aXJlZCwgdCB9KSA9PiB7XG4gIGlmICh2YWx1ZSAmJiAhaXNOYU4oRGF0ZS5wYXJzZSh2YWx1ZS50b1N0cmluZygpKSkpIHtcbiAgICAvKiBlc2xpbnQtZGlzYWJsZS1saW5lICovXG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIGlmICh2YWx1ZSkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOm5vdFZhbGlkRGF0ZScsIHsgdmFsdWUgfSlcbiAgfVxuXG4gIGlmIChyZXF1aXJlZCkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVkJylcbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmV4cG9ydCBjb25zdCByaWNoVGV4dDogVmFsaWRhdGU8b2JqZWN0LCB1bmtub3duLCBSaWNoVGV4dEZpZWxkLCBSaWNoVGV4dEZpZWxkPiA9IGFzeW5jIChcbiAgdmFsdWUsXG4gIG9wdGlvbnMsXG4pID0+IHtcbiAgY29uc3QgZWRpdG9yOiBSaWNoVGV4dEFkYXB0ZXIgPSBvcHRpb25zPy5lZGl0b3JcblxuICByZXR1cm4gYXdhaXQgZWRpdG9yLnZhbGlkYXRlKHZhbHVlLCBvcHRpb25zKVxufVxuXG5jb25zdCB2YWxpZGF0ZUFycmF5TGVuZ3RoOiBhbnkgPSAoXG4gIHZhbHVlLFxuICBvcHRpb25zOiB7XG4gICAgbWF4Um93cz86IG51bWJlclxuICAgIG1pblJvd3M/OiBudW1iZXJcbiAgICByZXF1aXJlZD86IGJvb2xlYW5cbiAgICB0OiAoa2V5OiBzdHJpbmcsIG9wdGlvbnM/OiB7IFtrZXk6IHN0cmluZ106IG51bWJlciB8IHN0cmluZyB9KSA9PiBzdHJpbmdcbiAgfSxcbikgPT4ge1xuICBjb25zdCB7IG1heFJvd3MsIG1pblJvd3MsIHJlcXVpcmVkLCB0IH0gPSBvcHRpb25zXG5cbiAgY29uc3QgYXJyYXlMZW5ndGggPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlLmxlbmd0aCA6IDBcblxuICBpZiAoIXJlcXVpcmVkICYmIGFycmF5TGVuZ3RoID09PSAwKSByZXR1cm4gdHJ1ZVxuXG4gIGlmIChtaW5Sb3dzICYmIGFycmF5TGVuZ3RoIDwgbWluUm93cykge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVzQXRMZWFzdCcsIHsgY291bnQ6IG1pblJvd3MsIGxhYmVsOiB0KCdyb3dzJykgfSlcbiAgfVxuXG4gIGlmIChtYXhSb3dzICYmIGFycmF5TGVuZ3RoID4gbWF4Um93cykge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVzTm9Nb3JlVGhhbicsIHsgY291bnQ6IG1heFJvd3MsIGxhYmVsOiB0KCdyb3dzJykgfSlcbiAgfVxuXG4gIGlmIChyZXF1aXJlZCAmJiAhYXJyYXlMZW5ndGgpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlc0F0TGVhc3QnLCB7IGNvdW50OiAxLCBsYWJlbDogdCgncm93JykgfSlcbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmV4cG9ydCBjb25zdCBudW1iZXI6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIE51bWJlckZpZWxkPiA9IChcbiAgdmFsdWU6IG51bWJlciB8IG51bWJlcltdLFxuICB7IGhhc01hbnksIG1heCwgbWF4Um93cywgbWluLCBtaW5Sb3dzLCByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIGlmIChoYXNNYW55ID09PSB0cnVlKSB7XG4gICAgY29uc3QgbGVuZ3RoVmFsaWRhdGlvblJlc3VsdCA9IHZhbGlkYXRlQXJyYXlMZW5ndGgodmFsdWUsIHsgbWF4Um93cywgbWluUm93cywgcmVxdWlyZWQsIHQgfSlcbiAgICBpZiAodHlwZW9mIGxlbmd0aFZhbGlkYXRpb25SZXN1bHQgPT09ICdzdHJpbmcnKSByZXR1cm4gbGVuZ3RoVmFsaWRhdGlvblJlc3VsdFxuICB9XG5cbiAgaWYgKCF2YWx1ZSAmJiAhaXNOdW1iZXIodmFsdWUpKSB7XG4gICAgLy8gaWYgbm8gdmFsdWUgaXMgcHJlc2VudCwgdmFsaWRhdGUgYmFzZWQgb24gcmVxdWlyZWRcbiAgICBpZiAocmVxdWlyZWQpIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVkJylcbiAgICBpZiAoIXJlcXVpcmVkKSByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgY29uc3QgbnVtYmVyc1RvVmFsaWRhdGU6IG51bWJlcltdID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV1cblxuICBmb3IgKGNvbnN0IG51bWJlciBvZiBudW1iZXJzVG9WYWxpZGF0ZSkge1xuICAgIGlmICghaXNOdW1iZXIobnVtYmVyKSkgcmV0dXJuIHQoJ3ZhbGlkYXRpb246ZW50ZXJOdW1iZXInKVxuXG4gICAgY29uc3QgbnVtYmVyVmFsdWUgPSBwYXJzZUZsb2F0KG51bWJlciBhcyB1bmtub3duIGFzIHN0cmluZylcblxuICAgIGlmICh0eXBlb2YgbWF4ID09PSAnbnVtYmVyJyAmJiBudW1iZXJWYWx1ZSA+IG1heCkge1xuICAgICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246Z3JlYXRlclRoYW5NYXgnLCB7IGxhYmVsOiB0KCd2YWx1ZScpLCBtYXgsIHZhbHVlIH0pXG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBtaW4gPT09ICdudW1iZXInICYmIG51bWJlclZhbHVlIDwgbWluKSB7XG4gICAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpsZXNzVGhhbk1pbicsIHsgbGFiZWw6IHQoJ3ZhbHVlJyksIG1pbiwgdmFsdWUgfSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgYXJyYXk6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIEFycmF5RmllbGQ+ID0gKFxuICB2YWx1ZSxcbiAgeyBtYXhSb3dzLCBtaW5Sb3dzLCByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIHJldHVybiB2YWxpZGF0ZUFycmF5TGVuZ3RoKHZhbHVlLCB7IG1heFJvd3MsIG1pblJvd3MsIHJlcXVpcmVkLCB0IH0pXG59XG5cbmV4cG9ydCBjb25zdCBibG9ja3M6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIEJsb2NrRmllbGQ+ID0gKFxuICB2YWx1ZSxcbiAgeyBtYXhSb3dzLCBtaW5Sb3dzLCByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIHJldHVybiB2YWxpZGF0ZUFycmF5TGVuZ3RoKHZhbHVlLCB7IG1heFJvd3MsIG1pblJvd3MsIHJlcXVpcmVkLCB0IH0pXG59XG5cbmNvbnN0IHZhbGlkYXRlRmlsdGVyT3B0aW9uczogVmFsaWRhdGUgPSBhc3luYyAoXG4gIHZhbHVlLFxuICB7IGlkLCBkYXRhLCBmaWx0ZXJPcHRpb25zLCBwYXlsb2FkLCByZWxhdGlvblRvLCByZXEsIHNpYmxpbmdEYXRhLCB0LCB1c2VyIH0sXG4pID0+IHtcbiAgaWYgKCFjYW5Vc2VET00gJiYgdHlwZW9mIGZpbHRlck9wdGlvbnMgIT09ICd1bmRlZmluZWQnICYmIHZhbHVlKSB7XG4gICAgY29uc3Qgb3B0aW9uczoge1xuICAgICAgW2NvbGxlY3Rpb246IHN0cmluZ106IChudW1iZXIgfCBzdHJpbmcpW11cbiAgICB9ID0ge31cblxuICAgIGNvbnN0IGZhbHNlQ29sbGVjdGlvbnM6IHN0cmluZ1tdID0gW11cbiAgICBjb25zdCBjb2xsZWN0aW9ucyA9IHR5cGVvZiByZWxhdGlvblRvID09PSAnc3RyaW5nJyA/IFtyZWxhdGlvblRvXSA6IHJlbGF0aW9uVG9cbiAgICBjb25zdCB2YWx1ZXMgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXVxuXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBjb2xsZWN0aW9ucy5tYXAoYXN5bmMgKGNvbGxlY3Rpb24pID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBsZXQgb3B0aW9uRmlsdGVyID1cbiAgICAgICAgICAgIHR5cGVvZiBmaWx0ZXJPcHRpb25zID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgICAgID8gYXdhaXQgZmlsdGVyT3B0aW9ucyh7XG4gICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICAgICAgICByZWxhdGlvblRvOiBjb2xsZWN0aW9uLFxuICAgICAgICAgICAgICAgICAgc2libGluZ0RhdGEsXG4gICAgICAgICAgICAgICAgICB1c2VyLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIDogZmlsdGVyT3B0aW9uc1xuXG4gICAgICAgICAgaWYgKG9wdGlvbkZpbHRlciA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgb3B0aW9uRmlsdGVyID0gbnVsbFxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHZhbHVlSURzOiAobnVtYmVyIHwgc3RyaW5nKVtdID0gW11cblxuICAgICAgICAgIHZhbHVlcy5mb3JFYWNoKCh2YWwpID0+IHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsID09PSAnb2JqZWN0JyAmJiB2YWw/LnZhbHVlKSB7XG4gICAgICAgICAgICAgIHZhbHVlSURzLnB1c2godmFsLnZhbHVlKVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHZhbCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgICAgdmFsdWVJRHMucHVzaCh2YWwpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcblxuICAgICAgICAgIGlmICh2YWx1ZUlEcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCBmaW5kV2hlcmUgPSB7XG4gICAgICAgICAgICAgIGFuZDogW3sgaWQ6IHsgaW46IHZhbHVlSURzIH0gfV0sXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChvcHRpb25GaWx0ZXIpIGZpbmRXaGVyZS5hbmQucHVzaChvcHRpb25GaWx0ZXIpXG5cbiAgICAgICAgICAgIGlmIChvcHRpb25GaWx0ZXIgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgIGZhbHNlQ29sbGVjdGlvbnMucHVzaChvcHRpb25GaWx0ZXIpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHBheWxvYWQuZmluZCh7XG4gICAgICAgICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgICAgICAgIGRlcHRoOiAwLFxuICAgICAgICAgICAgICBsaW1pdDogMCxcbiAgICAgICAgICAgICAgcGFnaW5hdGlvbjogZmFsc2UsXG4gICAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgICAgd2hlcmU6IGZpbmRXaGVyZSxcbiAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgIG9wdGlvbnNbY29sbGVjdGlvbl0gPSByZXN1bHQuZG9jcy5tYXAoKGRvYykgPT4gZG9jLmlkKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvcHRpb25zW2NvbGxlY3Rpb25dID0gW11cbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIHJlcS5wYXlsb2FkLmxvZ2dlci5lcnJvcih7XG4gICAgICAgICAgICBlcnIsXG4gICAgICAgICAgICBtc2c6IGBFcnJvciB2YWxpZGF0aW5nIGZpbHRlciBvcHRpb25zIGZvciBjb2xsZWN0aW9uICR7Y29sbGVjdGlvbn1gLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgb3B0aW9uc1tjb2xsZWN0aW9uXSA9IFtdXG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgIClcblxuICAgIGNvbnN0IGludmFsaWRSZWxhdGlvbnNoaXBzID0gdmFsdWVzLmZpbHRlcigodmFsKSA9PiB7XG4gICAgICBsZXQgY29sbGVjdGlvbjogc3RyaW5nXG4gICAgICBsZXQgcmVxdWVzdGVkSUQ6IG51bWJlciB8IHN0cmluZ1xuXG4gICAgICBpZiAodHlwZW9mIHJlbGF0aW9uVG8gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNvbGxlY3Rpb24gPSByZWxhdGlvblRvXG5cbiAgICAgICAgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiB2YWwgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgcmVxdWVzdGVkSUQgPSB2YWxcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShyZWxhdGlvblRvKSAmJiB0eXBlb2YgdmFsID09PSAnb2JqZWN0JyAmJiB2YWw/LnJlbGF0aW9uVG8pIHtcbiAgICAgICAgY29sbGVjdGlvbiA9IHZhbC5yZWxhdGlvblRvXG4gICAgICAgIHJlcXVlc3RlZElEID0gdmFsLnZhbHVlXG4gICAgICB9XG5cbiAgICAgIGlmIChmYWxzZUNvbGxlY3Rpb25zLmZpbmQoKHNsdWcpID0+IHJlbGF0aW9uVG8gPT09IHNsdWcpKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBvcHRpb25zW2NvbGxlY3Rpb25dLmluZGV4T2YocmVxdWVzdGVkSUQpID09PSAtMVxuICAgIH0pXG5cbiAgICBpZiAoaW52YWxpZFJlbGF0aW9uc2hpcHMubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIGludmFsaWRSZWxhdGlvbnNoaXBzLnJlZHVjZSgoZXJyLCBpbnZhbGlkLCBpKSA9PiB7XG4gICAgICAgIHJldHVybiBgJHtlcnJ9ICR7SlNPTi5zdHJpbmdpZnkoaW52YWxpZCl9JHtcbiAgICAgICAgICBpbnZhbGlkUmVsYXRpb25zaGlwcy5sZW5ndGggPT09IGkgKyAxID8gJywnIDogJydcbiAgICAgICAgfSBgXG4gICAgICB9LCB0KCd2YWxpZGF0aW9uOmludmFsaWRTZWxlY3Rpb25zJykpIGFzIHN0cmluZ1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgdXBsb2FkOiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBVcGxvYWRGaWVsZD4gPSAodmFsdWU6IHN0cmluZywgb3B0aW9ucykgPT4ge1xuICBpZiAoIXZhbHVlICYmIG9wdGlvbnMucmVxdWlyZWQpIHtcbiAgICByZXR1cm4gb3B0aW9ucy50KCd2YWxpZGF0aW9uOnJlcXVpcmVkJylcbiAgfVxuXG4gIGlmICghY2FuVXNlRE9NICYmIHR5cGVvZiB2YWx1ZSAhPT0gJ3VuZGVmaW5lZCcgJiYgdmFsdWUgIT09IG51bGwpIHtcbiAgICBjb25zdCBpZEZpZWxkID0gb3B0aW9ucz8uY29uZmlnPy5jb2xsZWN0aW9uc1xuICAgICAgPy5maW5kKChjb2xsZWN0aW9uKSA9PiBjb2xsZWN0aW9uLnNsdWcgPT09IG9wdGlvbnMucmVsYXRpb25UbylcbiAgICAgID8uZmllbGRzPy5maW5kKChmaWVsZCkgPT4gZmllbGRBZmZlY3RzRGF0YShmaWVsZCkgJiYgZmllbGQubmFtZSA9PT0gJ2lkJylcblxuICAgIGNvbnN0IHR5cGUgPSBnZXRJRFR5cGUoaWRGaWVsZCwgb3B0aW9ucz8ucGF5bG9hZD8uZGI/LmRlZmF1bHRJRFR5cGUpXG5cbiAgICBpZiAoIWlzVmFsaWRJRCh2YWx1ZSwgdHlwZSkpIHtcbiAgICAgIHJldHVybiBvcHRpb25zLnQoJ3ZhbGlkYXRpb246dmFsaWRVcGxvYWRJRCcpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHZhbGlkYXRlRmlsdGVyT3B0aW9ucyh2YWx1ZSwgb3B0aW9ucylcbn1cblxuZXhwb3J0IGNvbnN0IHJlbGF0aW9uc2hpcDogVmFsaWRhdGU8dW5rbm93biwgdW5rbm93biwgUmVsYXRpb25zaGlwRmllbGQ+ID0gYXN5bmMgKFxuICB2YWx1ZTogUmVsYXRpb25zaGlwVmFsdWUsXG4gIG9wdGlvbnMsXG4pID0+IHtcbiAgY29uc3QgeyBjb25maWcsIG1heFJvd3MsIG1pblJvd3MsIHBheWxvYWQsIHJlbGF0aW9uVG8sIHJlcXVpcmVkLCB0IH0gPSBvcHRpb25zXG5cbiAgaWYgKCghdmFsdWUgfHwgKEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA9PT0gMCkpICYmIHJlcXVpcmVkKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246cmVxdWlyZWQnKVxuICB9XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICBpZiAobWluUm93cyAmJiB2YWx1ZS5sZW5ndGggPCBtaW5Sb3dzKSB7XG4gICAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpsZXNzVGhhbk1pbicsIHsgbGFiZWw6IHQoJ3Jvd3MnKSwgbWluOiBtaW5Sb3dzLCB2YWx1ZTogdmFsdWUubGVuZ3RoIH0pXG4gICAgfVxuXG4gICAgaWYgKG1heFJvd3MgJiYgdmFsdWUubGVuZ3RoID4gbWF4Um93cykge1xuICAgICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246Z3JlYXRlclRoYW5NYXgnLCB7IGxhYmVsOiB0KCdyb3dzJyksIG1heDogbWF4Um93cywgdmFsdWU6IHZhbHVlLmxlbmd0aCB9KVxuICAgIH1cbiAgfVxuXG4gIGlmICghY2FuVXNlRE9NICYmIHR5cGVvZiB2YWx1ZSAhPT0gJ3VuZGVmaW5lZCcgJiYgdmFsdWUgIT09IG51bGwpIHtcbiAgICBjb25zdCB2YWx1ZXMgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXVxuXG4gICAgY29uc3QgaW52YWxpZFJlbGF0aW9uc2hpcHMgPSB2YWx1ZXMuZmlsdGVyKCh2YWwpID0+IHtcbiAgICAgIGxldCBjb2xsZWN0aW9uU2x1Zzogc3RyaW5nXG4gICAgICBsZXQgcmVxdWVzdGVkSURcblxuICAgICAgaWYgKHR5cGVvZiByZWxhdGlvblRvID09PSAnc3RyaW5nJykge1xuICAgICAgICBjb2xsZWN0aW9uU2x1ZyA9IHJlbGF0aW9uVG9cblxuICAgICAgICAvLyBjdXN0b20gaWRcbiAgICAgICAgaWYgKHZhbCkge1xuICAgICAgICAgIHJlcXVlc3RlZElEID0gdmFsXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkocmVsYXRpb25UbykgJiYgdHlwZW9mIHZhbCA9PT0gJ29iamVjdCcgJiYgdmFsPy5yZWxhdGlvblRvKSB7XG4gICAgICAgIGNvbGxlY3Rpb25TbHVnID0gdmFsLnJlbGF0aW9uVG9cbiAgICAgICAgcmVxdWVzdGVkSUQgPSB2YWwudmFsdWVcbiAgICAgIH1cblxuICAgICAgaWYgKHJlcXVlc3RlZElEID09PSBudWxsKSByZXR1cm4gZmFsc2VcblxuICAgICAgY29uc3QgaWRGaWVsZCA9IGNvbmZpZz8uY29sbGVjdGlvbnNcbiAgICAgICAgPy5maW5kKChjb2xsZWN0aW9uKSA9PiBjb2xsZWN0aW9uLnNsdWcgPT09IGNvbGxlY3Rpb25TbHVnKVxuICAgICAgICA/LmZpZWxkcz8uZmluZCgoZmllbGQpID0+IGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpICYmIGZpZWxkLm5hbWUgPT09ICdpZCcpXG5cbiAgICAgIGNvbnN0IHR5cGUgPSBnZXRJRFR5cGUoaWRGaWVsZCwgcGF5bG9hZD8uZGI/LmRlZmF1bHRJRFR5cGUpXG5cbiAgICAgIHJldHVybiAhaXNWYWxpZElEKHJlcXVlc3RlZElELCB0eXBlKVxuICAgIH0pXG5cbiAgICBpZiAoaW52YWxpZFJlbGF0aW9uc2hpcHMubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIGBUaGlzIHJlbGF0aW9uc2hpcCBmaWVsZCBoYXMgdGhlIGZvbGxvd2luZyBpbnZhbGlkIHJlbGF0aW9uc2hpcHM6ICR7aW52YWxpZFJlbGF0aW9uc2hpcHNcbiAgICAgICAgLm1hcCgoZXJyLCBpbnZhbGlkKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGAke2Vycn0gJHtKU09OLnN0cmluZ2lmeShpbnZhbGlkKX1gXG4gICAgICAgIH0pXG4gICAgICAgIC5qb2luKCcsICcpfWBcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdmFsaWRhdGVGaWx0ZXJPcHRpb25zKHZhbHVlLCBvcHRpb25zKVxufVxuXG5leHBvcnQgY29uc3Qgc2VsZWN0OiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBTZWxlY3RGaWVsZD4gPSAoXG4gIHZhbHVlLFxuICB7IGhhc01hbnksIG9wdGlvbnMsIHJlcXVpcmVkLCB0IH0sXG4pID0+IHtcbiAgaWYgKFxuICAgIEFycmF5LmlzQXJyYXkodmFsdWUpICYmXG4gICAgdmFsdWUuc29tZShcbiAgICAgIChpbnB1dCkgPT5cbiAgICAgICAgIW9wdGlvbnMuc29tZShcbiAgICAgICAgICAob3B0aW9uKSA9PiBvcHRpb24gPT09IGlucHV0IHx8ICh0eXBlb2Ygb3B0aW9uICE9PSAnc3RyaW5nJyAmJiBvcHRpb24/LnZhbHVlID09PSBpbnB1dCksXG4gICAgICAgICksXG4gICAgKVxuICApIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjppbnZhbGlkU2VsZWN0aW9uJylcbiAgfVxuXG4gIGlmIChcbiAgICB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmXG4gICAgIW9wdGlvbnMuc29tZShcbiAgICAgIChvcHRpb24pID0+IG9wdGlvbiA9PT0gdmFsdWUgfHwgKHR5cGVvZiBvcHRpb24gIT09ICdzdHJpbmcnICYmIG9wdGlvbi52YWx1ZSA9PT0gdmFsdWUpLFxuICAgIClcbiAgKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246aW52YWxpZFNlbGVjdGlvbicpXG4gIH1cblxuICBpZiAoXG4gICAgcmVxdWlyZWQgJiZcbiAgICAodHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJyB8fFxuICAgICAgdmFsdWUgPT09IG51bGwgfHxcbiAgICAgIChoYXNNYW55ICYmIEFycmF5LmlzQXJyYXkodmFsdWUpICYmICh2YWx1ZSBhcyBbXSk/Lmxlbmd0aCA9PT0gMCkpXG4gICkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVkJylcbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmV4cG9ydCBjb25zdCByYWRpbzogVmFsaWRhdGU8dW5rbm93biwgdW5rbm93biwgUmFkaW9GaWVsZD4gPSAodmFsdWUsIHsgb3B0aW9ucywgcmVxdWlyZWQsIHQgfSkgPT4ge1xuICBpZiAodmFsdWUpIHtcbiAgICBjb25zdCB2YWx1ZU1hdGNoZXNPcHRpb24gPSBvcHRpb25zLnNvbWUoXG4gICAgICAob3B0aW9uKSA9PiBvcHRpb24gPT09IHZhbHVlIHx8ICh0eXBlb2Ygb3B0aW9uICE9PSAnc3RyaW5nJyAmJiBvcHRpb24udmFsdWUgPT09IHZhbHVlKSxcbiAgICApXG4gICAgcmV0dXJuIHZhbHVlTWF0Y2hlc09wdGlvbiB8fCB0KCd2YWxpZGF0aW9uOmludmFsaWRTZWxlY3Rpb24nKVxuICB9XG5cbiAgcmV0dXJuIHJlcXVpcmVkID8gdCgndmFsaWRhdGlvbjpyZXF1aXJlZCcpIDogdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgcG9pbnQ6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIFBvaW50RmllbGQ+ID0gKFxuICB2YWx1ZTogW251bWJlciB8IHN0cmluZywgbnVtYmVyIHwgc3RyaW5nXSA9IFsnJywgJyddLFxuICB7IHJlcXVpcmVkLCB0IH0sXG4pID0+IHtcbiAgY29uc3QgbG5nID0gcGFyc2VGbG9hdChTdHJpbmcodmFsdWVbMF0pKVxuICBjb25zdCBsYXQgPSBwYXJzZUZsb2F0KFN0cmluZyh2YWx1ZVsxXSkpXG4gIGlmIChcbiAgICByZXF1aXJlZCAmJlxuICAgICgodmFsdWVbMF0gJiYgdmFsdWVbMV0gJiYgdHlwZW9mIGxuZyAhPT0gJ251bWJlcicgJiYgdHlwZW9mIGxhdCAhPT0gJ251bWJlcicpIHx8XG4gICAgICBOdW1iZXIuaXNOYU4obG5nKSB8fFxuICAgICAgTnVtYmVyLmlzTmFOKGxhdCkgfHxcbiAgICAgIChBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5sZW5ndGggIT09IDIpKVxuICApIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlc1R3b051bWJlcnMnKVxuICB9XG5cbiAgaWYgKCh2YWx1ZVsxXSAmJiBOdW1iZXIuaXNOYU4obG5nKSkgfHwgKHZhbHVlWzBdICYmIE51bWJlci5pc05hTihsYXQpKSkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOmludmFsaWRJbnB1dCcpXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGFycmF5LFxuICBibG9ja3MsXG4gIGNoZWNrYm94LFxuICBjb2RlLFxuICBkYXRlLFxuICBlbWFpbCxcbiAganNvbixcbiAgbnVtYmVyLFxuICBwYXNzd29yZCxcbiAgcG9pbnQsXG4gIHJhZGlvLFxuICByZWxhdGlvbnNoaXAsXG4gIHJpY2hUZXh0LFxuICBzZWxlY3QsXG4gIHRleHQsXG4gIHRleHRhcmVhLFxuICB1cGxvYWQsXG59XG4iXSwibmFtZXMiOlsiYXJyYXkiLCJibG9ja3MiLCJjaGVja2JveCIsImNvZGUiLCJkYXRlIiwiZW1haWwiLCJqc29uIiwibnVtYmVyIiwicGFzc3dvcmQiLCJwb2ludCIsInJhZGlvIiwicmVsYXRpb25zaGlwIiwicmljaFRleHQiLCJzZWxlY3QiLCJ0ZXh0IiwidGV4dGFyZWEiLCJ1cGxvYWQiLCJ2YWx1ZSIsImNvbmZpZyIsImhhc01hbnkiLCJtYXhMZW5ndGgiLCJmaWVsZE1heExlbmd0aCIsIm1heFJvd3MiLCJtaW5MZW5ndGgiLCJtaW5Sb3dzIiwicmVxdWlyZWQiLCJ0IiwibGVuZ3RoVmFsaWRhdGlvblJlc3VsdCIsInZhbGlkYXRlQXJyYXlMZW5ndGgiLCJkZWZhdWx0TWF4VGV4dExlbmd0aCIsInN0cmluZ3NUb1ZhbGlkYXRlIiwiQXJyYXkiLCJpc0FycmF5Iiwic3RyaW5nVmFsdWUiLCJsZW5ndGgiLCJsYWJlbCIsInBheWxvYWQiLCJ0ZXN0IiwidW5kZWZpbmVkIiwianNvbkVycm9yIiwiaXNOYU4iLCJEYXRlIiwicGFyc2UiLCJ0b1N0cmluZyIsIm9wdGlvbnMiLCJlZGl0b3IiLCJ2YWxpZGF0ZSIsImFycmF5TGVuZ3RoIiwiY291bnQiLCJtYXgiLCJtaW4iLCJpc051bWJlciIsIm51bWJlcnNUb1ZhbGlkYXRlIiwibnVtYmVyVmFsdWUiLCJwYXJzZUZsb2F0IiwidmFsaWRhdGVGaWx0ZXJPcHRpb25zIiwiaWQiLCJkYXRhIiwiZmlsdGVyT3B0aW9ucyIsInJlbGF0aW9uVG8iLCJyZXEiLCJzaWJsaW5nRGF0YSIsInVzZXIiLCJjYW5Vc2VET00iLCJmYWxzZUNvbGxlY3Rpb25zIiwiY29sbGVjdGlvbnMiLCJ2YWx1ZXMiLCJQcm9taXNlIiwiYWxsIiwibWFwIiwiY29sbGVjdGlvbiIsIm9wdGlvbkZpbHRlciIsInZhbHVlSURzIiwiZm9yRWFjaCIsInZhbCIsInB1c2giLCJmaW5kV2hlcmUiLCJhbmQiLCJpbiIsInJlc3VsdCIsImZpbmQiLCJkZXB0aCIsImxpbWl0IiwicGFnaW5hdGlvbiIsIndoZXJlIiwiZG9jcyIsImRvYyIsImVyciIsImxvZ2dlciIsImVycm9yIiwibXNnIiwiaW52YWxpZFJlbGF0aW9uc2hpcHMiLCJmaWx0ZXIiLCJyZXF1ZXN0ZWRJRCIsInNsdWciLCJpbmRleE9mIiwicmVkdWNlIiwiaW52YWxpZCIsImkiLCJKU09OIiwic3RyaW5naWZ5IiwiaWRGaWVsZCIsImZpZWxkcyIsImZpZWxkIiwiZmllbGRBZmZlY3RzRGF0YSIsIm5hbWUiLCJ0eXBlIiwiZ2V0SURUeXBlIiwiZGIiLCJkZWZhdWx0SURUeXBlIiwiaXNWYWxpZElEIiwiY29sbGVjdGlvblNsdWciLCJqb2luIiwic29tZSIsImlucHV0Iiwib3B0aW9uIiwidmFsdWVNYXRjaGVzT3B0aW9uIiwibG5nIiwiU3RyaW5nIiwibGF0IiwiTnVtYmVyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztJQXdQYUEsS0FBSztlQUFMQTs7SUFPQUMsTUFBTTtlQUFOQTs7SUE1R0FDLFFBQVE7ZUFBUkE7O0lBdkJBQyxJQUFJO2VBQUpBOztJQWtDQUMsSUFBSTtlQUFKQTs7SUFzWGIsT0FrQkM7ZUFsQkQ7O0lBdmJhQyxLQUFLO2VBQUxBOztJQXVDQUMsSUFBSTtlQUFKQTs7SUFrRkFDLE1BQU07ZUFBTkE7O0lBakpBQyxRQUFRO2VBQVJBOztJQXdiQUMsS0FBSztlQUFMQTs7SUFYQUMsS0FBSztlQUFMQTs7SUFyR0FDLFlBQVk7ZUFBWkE7O0lBOU5BQyxRQUFRO2VBQVJBOztJQThSQUMsTUFBTTtlQUFOQTs7SUFqYkFDLElBQUk7ZUFBSkE7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
532
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWVsZHMvdmFsaWRhdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEFqdiBmcm9tICdhanYnXG5pbXBvcnQgdHlwZSB7IFJpY2hUZXh0QWRhcHRlciB9IGZyb20gJy4uL2V4cG9ydHMvdHlwZXMnXG5pbXBvcnQgdHlwZSB7XG4gIEFycmF5RmllbGQsXG4gIEJsb2NrRmllbGQsXG4gIENoZWNrYm94RmllbGQsXG4gIENvZGVGaWVsZCxcbiAgRGF0ZUZpZWxkLFxuICBFbWFpbEZpZWxkLFxuICBKU09ORmllbGQsXG4gIE51bWJlckZpZWxkLFxuICBQb2ludEZpZWxkLFxuICBSYWRpb0ZpZWxkLFxuICBSZWxhdGlvbnNoaXBGaWVsZCxcbiAgUmVsYXRpb25zaGlwVmFsdWUsXG4gIFJpY2hUZXh0RmllbGQsXG4gIFNlbGVjdEZpZWxkLFxuICBUZXh0RmllbGQsXG4gIFRleHRhcmVhRmllbGQsXG4gIFVwbG9hZEZpZWxkLFxuICBWYWxpZGF0ZSxcbn0gZnJvbSAnLi9jb25maWcvdHlwZXMnXG5cbmltcG9ydCBjYW5Vc2VET00gZnJvbSAnLi4vdXRpbGl0aWVzL2NhblVzZURPTSdcbmltcG9ydCB7IGdldElEVHlwZSB9IGZyb20gJy4uL3V0aWxpdGllcy9nZXRJRFR5cGUnXG5pbXBvcnQgeyBpc051bWJlciB9IGZyb20gJy4uL3V0aWxpdGllcy9pc051bWJlcidcbmltcG9ydCB7IGlzVmFsaWRJRCB9IGZyb20gJy4uL3V0aWxpdGllcy9pc1ZhbGlkSUQnXG5pbXBvcnQgeyBmaWVsZEFmZmVjdHNEYXRhIH0gZnJvbSAnLi9jb25maWcvdHlwZXMnXG5cbmV4cG9ydCBjb25zdCB0ZXh0OiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBUZXh0RmllbGQ+ID0gKFxuICB2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10sXG4gIHsgY29uZmlnLCBoYXNNYW55LCBtYXhMZW5ndGg6IGZpZWxkTWF4TGVuZ3RoLCBtYXhSb3dzLCBtaW5MZW5ndGgsIG1pblJvd3MsIHJlcXVpcmVkLCB0IH0sXG4pID0+IHtcbiAgbGV0IG1heExlbmd0aDogbnVtYmVyXG5cbiAgaWYgKCFyZXF1aXJlZCkge1xuICAgIGlmICghdmFsdWUpIHJldHVybiB0cnVlXG4gIH1cblxuICBpZiAoaGFzTWFueSA9PT0gdHJ1ZSkge1xuICAgIGNvbnN0IGxlbmd0aFZhbGlkYXRpb25SZXN1bHQgPSB2YWxpZGF0ZUFycmF5TGVuZ3RoKHZhbHVlLCB7IG1heFJvd3MsIG1pblJvd3MsIHJlcXVpcmVkLCB0IH0pXG4gICAgaWYgKHR5cGVvZiBsZW5ndGhWYWxpZGF0aW9uUmVzdWx0ID09PSAnc3RyaW5nJykgcmV0dXJuIGxlbmd0aFZhbGlkYXRpb25SZXN1bHRcbiAgfVxuXG4gIGlmICh0eXBlb2YgY29uZmlnPy5kZWZhdWx0TWF4VGV4dExlbmd0aCA9PT0gJ251bWJlcicpIG1heExlbmd0aCA9IGNvbmZpZy5kZWZhdWx0TWF4VGV4dExlbmd0aFxuICBpZiAodHlwZW9mIGZpZWxkTWF4TGVuZ3RoID09PSAnbnVtYmVyJykgbWF4TGVuZ3RoID0gZmllbGRNYXhMZW5ndGhcblxuICBjb25zdCBzdHJpbmdzVG9WYWxpZGF0ZTogc3RyaW5nW10gPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXVxuXG4gIGZvciAoY29uc3Qgc3RyaW5nVmFsdWUgb2Ygc3RyaW5nc1RvVmFsaWRhdGUpIHtcbiAgICBjb25zdCBsZW5ndGggPSBzdHJpbmdWYWx1ZT8ubGVuZ3RoIHx8IDBcblxuICAgIGlmICh0eXBlb2YgbWF4TGVuZ3RoID09PSAnbnVtYmVyJyAmJiBsZW5ndGggPiBtYXhMZW5ndGgpIHtcbiAgICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnNob3J0ZXJUaGFuTWF4JywgeyBsYWJlbDogdCgndmFsdWUnKSwgbWF4TGVuZ3RoLCBzdHJpbmdWYWx1ZSB9KVxuICAgIH1cblxuICAgIGlmICh0eXBlb2YgbWluTGVuZ3RoID09PSAnbnVtYmVyJyAmJiBsZW5ndGggPCBtaW5MZW5ndGgpIHtcbiAgICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOmxvbmdlclRoYW5NaW4nLCB7IGxhYmVsOiB0KCd2YWx1ZScpLCBtaW5MZW5ndGgsIHN0cmluZ1ZhbHVlIH0pXG4gICAgfVxuICB9XG5cbiAgaWYgKHJlcXVpcmVkKSB7XG4gICAgaWYgKCEodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyB8fCBBcnJheS5pc0FycmF5KHZhbHVlKSkgfHwgdmFsdWU/Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246cmVxdWlyZWQnKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmV4cG9ydCBjb25zdCBwYXNzd29yZDogVmFsaWRhdGU8dW5rbm93biwgdW5rbm93biwgVGV4dEZpZWxkPiA9IChcbiAgdmFsdWU6IHN0cmluZyxcbiAgeyBjb25maWcsIG1heExlbmd0aDogZmllbGRNYXhMZW5ndGgsIG1pbkxlbmd0aCwgcGF5bG9hZCwgcmVxdWlyZWQsIHQgfSxcbikgPT4ge1xuICBsZXQgbWF4TGVuZ3RoOiBudW1iZXJcblxuICBpZiAodHlwZW9mIGNvbmZpZz8uZGVmYXVsdE1heFRleHRMZW5ndGggPT09ICdudW1iZXInKSBtYXhMZW5ndGggPSBjb25maWcuZGVmYXVsdE1heFRleHRMZW5ndGhcbiAgaWYgKHR5cGVvZiBmaWVsZE1heExlbmd0aCA9PT0gJ251bWJlcicpIG1heExlbmd0aCA9IGZpZWxkTWF4TGVuZ3RoXG5cbiAgaWYgKHZhbHVlICYmIG1heExlbmd0aCAmJiB2YWx1ZS5sZW5ndGggPiBtYXhMZW5ndGgpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpzaG9ydGVyVGhhbk1heCcsIHsgbWF4TGVuZ3RoIH0pXG4gIH1cblxuICBpZiAodmFsdWUgJiYgbWluTGVuZ3RoICYmIHZhbHVlLmxlbmd0aCA8IG1pbkxlbmd0aCkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOmxvbmdlclRoYW5NaW4nLCB7IG1pbkxlbmd0aCB9KVxuICB9XG5cbiAgaWYgKHJlcXVpcmVkICYmICF2YWx1ZSkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVkJylcbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmV4cG9ydCBjb25zdCBlbWFpbDogVmFsaWRhdGU8dW5rbm93biwgdW5rbm93biwgRW1haWxGaWVsZD4gPSAodmFsdWU6IHN0cmluZywgeyByZXF1aXJlZCwgdCB9KSA9PiB7XG4gIGlmICgodmFsdWUgJiYgIS9cXFNbXlxcc0BdKkBcXFMrXFwuXFxTKy8udGVzdCh2YWx1ZSkpIHx8ICghdmFsdWUgJiYgcmVxdWlyZWQpKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246ZW1haWxBZGRyZXNzJylcbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmV4cG9ydCBjb25zdCB0ZXh0YXJlYTogVmFsaWRhdGU8dW5rbm93biwgdW5rbm93biwgVGV4dGFyZWFGaWVsZD4gPSAoXG4gIHZhbHVlOiBzdHJpbmcsXG4gIHsgY29uZmlnLCBtYXhMZW5ndGg6IGZpZWxkTWF4TGVuZ3RoLCBtaW5MZW5ndGgsIHBheWxvYWQsIHJlcXVpcmVkLCB0IH0sXG4pID0+IHtcbiAgbGV0IG1heExlbmd0aDogbnVtYmVyXG5cbiAgaWYgKHR5cGVvZiBjb25maWc/LmRlZmF1bHRNYXhUZXh0TGVuZ3RoID09PSAnbnVtYmVyJykgbWF4TGVuZ3RoID0gY29uZmlnLmRlZmF1bHRNYXhUZXh0TGVuZ3RoXG4gIGlmICh0eXBlb2YgZmllbGRNYXhMZW5ndGggPT09ICdudW1iZXInKSBtYXhMZW5ndGggPSBmaWVsZE1heExlbmd0aFxuICBpZiAodmFsdWUgJiYgbWF4TGVuZ3RoICYmIHZhbHVlLmxlbmd0aCA+IG1heExlbmd0aCkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnNob3J0ZXJUaGFuTWF4JywgeyBtYXhMZW5ndGggfSlcbiAgfVxuXG4gIGlmICh2YWx1ZSAmJiBtaW5MZW5ndGggJiYgdmFsdWUubGVuZ3RoIDwgbWluTGVuZ3RoKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246bG9uZ2VyVGhhbk1pbicsIHsgbWluTGVuZ3RoIH0pXG4gIH1cblxuICBpZiAocmVxdWlyZWQgJiYgIXZhbHVlKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246cmVxdWlyZWQnKVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IGNvZGU6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIENvZGVGaWVsZD4gPSAodmFsdWU6IHN0cmluZywgeyByZXF1aXJlZCwgdCB9KSA9PiB7XG4gIGlmIChyZXF1aXJlZCAmJiB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246cmVxdWlyZWQnKVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IGpzb246IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIEpTT05GaWVsZCAmIHsganNvbkVycm9yPzogc3RyaW5nIH0+ID0gYXN5bmMgKFxuICB2YWx1ZTogc3RyaW5nLFxuICB7IGpzb25FcnJvciwganNvblNjaGVtYSwgcmVxdWlyZWQsIHQgfSxcbikgPT4ge1xuICBpZiAocmVxdWlyZWQgJiYgIXZhbHVlKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246cmVxdWlyZWQnKVxuICB9XG5cbiAgaWYgKGpzb25FcnJvciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246aW52YWxpZElucHV0JylcbiAgfVxuXG4gIGNvbnN0IGlzTm90RW1wdHkgPSAodmFsdWUpID0+IHtcbiAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgT2JqZWN0LmtleXModmFsdWUpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIGNvbnN0IGZldGNoU2NoZW1hID0gKHsgdXJpLCBzY2hlbWEgfSkgPT4ge1xuICAgIGlmICh1cmkgJiYgc2NoZW1hKSByZXR1cm4gc2NoZW1hXG4gICAgcmV0dXJuIGZldGNoKHVyaSlcbiAgICAgIC50aGVuKChyZXNwb25zZSkgPT4ge1xuICAgICAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdOZXR3b3JrIHJlc3BvbnNlIHdhcyBub3Qgb2snKVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXNwb25zZS5qc29uKClcbiAgICAgIH0pXG4gICAgICAudGhlbigoanNvbikgPT4ge1xuICAgICAgICBjb25zdCBqc29uU2NoZW1hU2FuaXRpemF0aW9ucyA9IHtcbiAgICAgICAgICBpZDogdW5kZWZpbmVkLFxuICAgICAgICAgICRpZDoganNvbi5pZCxcbiAgICAgICAgICAkc2NoZW1hOiAnaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNy9zY2hlbWEjJyxcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihqc29uLCBqc29uU2NoZW1hU2FuaXRpemF0aW9ucylcbiAgICAgIH0pXG4gIH1cblxuICBpZiAoIWNhblVzZURPTSAmJiBqc29uU2NoZW1hICYmIGlzTm90RW1wdHkodmFsdWUpKSB7XG4gICAgdHJ5IHtcbiAgICAgIGpzb25TY2hlbWEuc2NoZW1hID0gYXdhaXQgZmV0Y2hTY2hlbWEoanNvblNjaGVtYSlcbiAgICAgIGNvbnN0IHsgc2NoZW1hIH0gPSBqc29uU2NoZW1hXG4gICAgICBjb25zdCBhanYgPSBuZXcgQWp2KClcblxuICAgICAgaWYgKCFhanYudmFsaWRhdGUoc2NoZW1hLCB2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIHQoYWp2LmVycm9yc1RleHQoKSlcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgcmV0dXJuIHQoZXJyb3IubWVzc2FnZSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgY2hlY2tib3g6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIENoZWNrYm94RmllbGQ+ID0gKFxuICB2YWx1ZTogYm9vbGVhbixcbiAgeyByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIGlmICgodmFsdWUgJiYgdHlwZW9mIHZhbHVlICE9PSAnYm9vbGVhbicpIHx8IChyZXF1aXJlZCAmJiB0eXBlb2YgdmFsdWUgIT09ICdib29sZWFuJykpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjp0cnVlT3JGYWxzZScpXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgZGF0ZTogVmFsaWRhdGU8dW5rbm93biwgdW5rbm93biwgRGF0ZUZpZWxkPiA9ICh2YWx1ZSwgeyByZXF1aXJlZCwgdCB9KSA9PiB7XG4gIGlmICh2YWx1ZSAmJiAhaXNOYU4oRGF0ZS5wYXJzZSh2YWx1ZS50b1N0cmluZygpKSkpIHtcbiAgICAvKiBlc2xpbnQtZGlzYWJsZS1saW5lICovXG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIGlmICh2YWx1ZSkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOm5vdFZhbGlkRGF0ZScsIHsgdmFsdWUgfSlcbiAgfVxuXG4gIGlmIChyZXF1aXJlZCkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVkJylcbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmV4cG9ydCBjb25zdCByaWNoVGV4dDogVmFsaWRhdGU8b2JqZWN0LCB1bmtub3duLCBSaWNoVGV4dEZpZWxkLCBSaWNoVGV4dEZpZWxkPiA9IGFzeW5jIChcbiAgdmFsdWUsXG4gIG9wdGlvbnMsXG4pID0+IHtcbiAgY29uc3QgZWRpdG9yOiBSaWNoVGV4dEFkYXB0ZXIgPSBvcHRpb25zPy5lZGl0b3JcblxuICByZXR1cm4gYXdhaXQgZWRpdG9yLnZhbGlkYXRlKHZhbHVlLCBvcHRpb25zKVxufVxuXG5jb25zdCB2YWxpZGF0ZUFycmF5TGVuZ3RoOiBhbnkgPSAoXG4gIHZhbHVlLFxuICBvcHRpb25zOiB7XG4gICAgbWF4Um93cz86IG51bWJlclxuICAgIG1pblJvd3M/OiBudW1iZXJcbiAgICByZXF1aXJlZD86IGJvb2xlYW5cbiAgICB0OiAoa2V5OiBzdHJpbmcsIG9wdGlvbnM/OiB7IFtrZXk6IHN0cmluZ106IG51bWJlciB8IHN0cmluZyB9KSA9PiBzdHJpbmdcbiAgfSxcbikgPT4ge1xuICBjb25zdCB7IG1heFJvd3MsIG1pblJvd3MsIHJlcXVpcmVkLCB0IH0gPSBvcHRpb25zXG5cbiAgY29uc3QgYXJyYXlMZW5ndGggPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlLmxlbmd0aCA6IDBcblxuICBpZiAoIXJlcXVpcmVkICYmIGFycmF5TGVuZ3RoID09PSAwKSByZXR1cm4gdHJ1ZVxuXG4gIGlmIChtaW5Sb3dzICYmIGFycmF5TGVuZ3RoIDwgbWluUm93cykge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVzQXRMZWFzdCcsIHsgY291bnQ6IG1pblJvd3MsIGxhYmVsOiB0KCdyb3dzJykgfSlcbiAgfVxuXG4gIGlmIChtYXhSb3dzICYmIGFycmF5TGVuZ3RoID4gbWF4Um93cykge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVzTm9Nb3JlVGhhbicsIHsgY291bnQ6IG1heFJvd3MsIGxhYmVsOiB0KCdyb3dzJykgfSlcbiAgfVxuXG4gIGlmIChyZXF1aXJlZCAmJiAhYXJyYXlMZW5ndGgpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlc0F0TGVhc3QnLCB7IGNvdW50OiAxLCBsYWJlbDogdCgncm93JykgfSlcbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmV4cG9ydCBjb25zdCBudW1iZXI6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIE51bWJlckZpZWxkPiA9IChcbiAgdmFsdWU6IG51bWJlciB8IG51bWJlcltdLFxuICB7IGhhc01hbnksIG1heCwgbWF4Um93cywgbWluLCBtaW5Sb3dzLCByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIGlmIChoYXNNYW55ID09PSB0cnVlKSB7XG4gICAgY29uc3QgbGVuZ3RoVmFsaWRhdGlvblJlc3VsdCA9IHZhbGlkYXRlQXJyYXlMZW5ndGgodmFsdWUsIHsgbWF4Um93cywgbWluUm93cywgcmVxdWlyZWQsIHQgfSlcbiAgICBpZiAodHlwZW9mIGxlbmd0aFZhbGlkYXRpb25SZXN1bHQgPT09ICdzdHJpbmcnKSByZXR1cm4gbGVuZ3RoVmFsaWRhdGlvblJlc3VsdFxuICB9XG5cbiAgaWYgKCF2YWx1ZSAmJiAhaXNOdW1iZXIodmFsdWUpKSB7XG4gICAgLy8gaWYgbm8gdmFsdWUgaXMgcHJlc2VudCwgdmFsaWRhdGUgYmFzZWQgb24gcmVxdWlyZWRcbiAgICBpZiAocmVxdWlyZWQpIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVkJylcbiAgICBpZiAoIXJlcXVpcmVkKSByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgY29uc3QgbnVtYmVyc1RvVmFsaWRhdGU6IG51bWJlcltdID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV1cblxuICBmb3IgKGNvbnN0IG51bWJlciBvZiBudW1iZXJzVG9WYWxpZGF0ZSkge1xuICAgIGlmICghaXNOdW1iZXIobnVtYmVyKSkgcmV0dXJuIHQoJ3ZhbGlkYXRpb246ZW50ZXJOdW1iZXInKVxuXG4gICAgY29uc3QgbnVtYmVyVmFsdWUgPSBwYXJzZUZsb2F0KG51bWJlciBhcyB1bmtub3duIGFzIHN0cmluZylcblxuICAgIGlmICh0eXBlb2YgbWF4ID09PSAnbnVtYmVyJyAmJiBudW1iZXJWYWx1ZSA+IG1heCkge1xuICAgICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246Z3JlYXRlclRoYW5NYXgnLCB7IGxhYmVsOiB0KCd2YWx1ZScpLCBtYXgsIHZhbHVlIH0pXG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBtaW4gPT09ICdudW1iZXInICYmIG51bWJlclZhbHVlIDwgbWluKSB7XG4gICAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpsZXNzVGhhbk1pbicsIHsgbGFiZWw6IHQoJ3ZhbHVlJyksIG1pbiwgdmFsdWUgfSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgYXJyYXk6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIEFycmF5RmllbGQ+ID0gKFxuICB2YWx1ZSxcbiAgeyBtYXhSb3dzLCBtaW5Sb3dzLCByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIHJldHVybiB2YWxpZGF0ZUFycmF5TGVuZ3RoKHZhbHVlLCB7IG1heFJvd3MsIG1pblJvd3MsIHJlcXVpcmVkLCB0IH0pXG59XG5cbmV4cG9ydCBjb25zdCBibG9ja3M6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIEJsb2NrRmllbGQ+ID0gKFxuICB2YWx1ZSxcbiAgeyBtYXhSb3dzLCBtaW5Sb3dzLCByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIHJldHVybiB2YWxpZGF0ZUFycmF5TGVuZ3RoKHZhbHVlLCB7IG1heFJvd3MsIG1pblJvd3MsIHJlcXVpcmVkLCB0IH0pXG59XG5cbmNvbnN0IHZhbGlkYXRlRmlsdGVyT3B0aW9uczogVmFsaWRhdGUgPSBhc3luYyAoXG4gIHZhbHVlLFxuICB7IGlkLCBkYXRhLCBmaWx0ZXJPcHRpb25zLCBwYXlsb2FkLCByZWxhdGlvblRvLCByZXEsIHNpYmxpbmdEYXRhLCB0LCB1c2VyIH0sXG4pID0+IHtcbiAgaWYgKCFjYW5Vc2VET00gJiYgdHlwZW9mIGZpbHRlck9wdGlvbnMgIT09ICd1bmRlZmluZWQnICYmIHZhbHVlKSB7XG4gICAgY29uc3Qgb3B0aW9uczoge1xuICAgICAgW2NvbGxlY3Rpb246IHN0cmluZ106IChudW1iZXIgfCBzdHJpbmcpW11cbiAgICB9ID0ge31cblxuICAgIGNvbnN0IGZhbHNlQ29sbGVjdGlvbnM6IHN0cmluZ1tdID0gW11cbiAgICBjb25zdCBjb2xsZWN0aW9ucyA9IHR5cGVvZiByZWxhdGlvblRvID09PSAnc3RyaW5nJyA/IFtyZWxhdGlvblRvXSA6IHJlbGF0aW9uVG9cbiAgICBjb25zdCB2YWx1ZXMgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXVxuXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBjb2xsZWN0aW9ucy5tYXAoYXN5bmMgKGNvbGxlY3Rpb24pID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBsZXQgb3B0aW9uRmlsdGVyID1cbiAgICAgICAgICAgIHR5cGVvZiBmaWx0ZXJPcHRpb25zID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgICAgID8gYXdhaXQgZmlsdGVyT3B0aW9ucyh7XG4gICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICAgICAgICByZWxhdGlvblRvOiBjb2xsZWN0aW9uLFxuICAgICAgICAgICAgICAgICAgc2libGluZ0RhdGEsXG4gICAgICAgICAgICAgICAgICB1c2VyLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIDogZmlsdGVyT3B0aW9uc1xuXG4gICAgICAgICAgaWYgKG9wdGlvbkZpbHRlciA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgb3B0aW9uRmlsdGVyID0gbnVsbFxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHZhbHVlSURzOiAobnVtYmVyIHwgc3RyaW5nKVtdID0gW11cblxuICAgICAgICAgIHZhbHVlcy5mb3JFYWNoKCh2YWwpID0+IHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsID09PSAnb2JqZWN0JyAmJiB2YWw/LnZhbHVlKSB7XG4gICAgICAgICAgICAgIHZhbHVlSURzLnB1c2godmFsLnZhbHVlKVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHZhbCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgICAgdmFsdWVJRHMucHVzaCh2YWwpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcblxuICAgICAgICAgIGlmICh2YWx1ZUlEcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCBmaW5kV2hlcmUgPSB7XG4gICAgICAgICAgICAgIGFuZDogW3sgaWQ6IHsgaW46IHZhbHVlSURzIH0gfV0sXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChvcHRpb25GaWx0ZXIpIGZpbmRXaGVyZS5hbmQucHVzaChvcHRpb25GaWx0ZXIpXG5cbiAgICAgICAgICAgIGlmIChvcHRpb25GaWx0ZXIgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgIGZhbHNlQ29sbGVjdGlvbnMucHVzaChvcHRpb25GaWx0ZXIpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHBheWxvYWQuZmluZCh7XG4gICAgICAgICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgICAgICAgIGRlcHRoOiAwLFxuICAgICAgICAgICAgICBsaW1pdDogMCxcbiAgICAgICAgICAgICAgcGFnaW5hdGlvbjogZmFsc2UsXG4gICAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgICAgd2hlcmU6IGZpbmRXaGVyZSxcbiAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgIG9wdGlvbnNbY29sbGVjdGlvbl0gPSByZXN1bHQuZG9jcy5tYXAoKGRvYykgPT4gZG9jLmlkKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvcHRpb25zW2NvbGxlY3Rpb25dID0gW11cbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIHJlcS5wYXlsb2FkLmxvZ2dlci5lcnJvcih7XG4gICAgICAgICAgICBlcnIsXG4gICAgICAgICAgICBtc2c6IGBFcnJvciB2YWxpZGF0aW5nIGZpbHRlciBvcHRpb25zIGZvciBjb2xsZWN0aW9uICR7Y29sbGVjdGlvbn1gLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgb3B0aW9uc1tjb2xsZWN0aW9uXSA9IFtdXG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgIClcblxuICAgIGNvbnN0IGludmFsaWRSZWxhdGlvbnNoaXBzID0gdmFsdWVzLmZpbHRlcigodmFsKSA9PiB7XG4gICAgICBsZXQgY29sbGVjdGlvbjogc3RyaW5nXG4gICAgICBsZXQgcmVxdWVzdGVkSUQ6IG51bWJlciB8IHN0cmluZ1xuXG4gICAgICBpZiAodHlwZW9mIHJlbGF0aW9uVG8gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNvbGxlY3Rpb24gPSByZWxhdGlvblRvXG5cbiAgICAgICAgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiB2YWwgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgcmVxdWVzdGVkSUQgPSB2YWxcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShyZWxhdGlvblRvKSAmJiB0eXBlb2YgdmFsID09PSAnb2JqZWN0JyAmJiB2YWw/LnJlbGF0aW9uVG8pIHtcbiAgICAgICAgY29sbGVjdGlvbiA9IHZhbC5yZWxhdGlvblRvXG4gICAgICAgIHJlcXVlc3RlZElEID0gdmFsLnZhbHVlXG4gICAgICB9XG5cbiAgICAgIGlmIChmYWxzZUNvbGxlY3Rpb25zLmZpbmQoKHNsdWcpID0+IHJlbGF0aW9uVG8gPT09IHNsdWcpKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBvcHRpb25zW2NvbGxlY3Rpb25dLmluZGV4T2YocmVxdWVzdGVkSUQpID09PSAtMVxuICAgIH0pXG5cbiAgICBpZiAoaW52YWxpZFJlbGF0aW9uc2hpcHMubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIGludmFsaWRSZWxhdGlvbnNoaXBzLnJlZHVjZSgoZXJyLCBpbnZhbGlkLCBpKSA9PiB7XG4gICAgICAgIHJldHVybiBgJHtlcnJ9ICR7SlNPTi5zdHJpbmdpZnkoaW52YWxpZCl9JHtcbiAgICAgICAgICBpbnZhbGlkUmVsYXRpb25zaGlwcy5sZW5ndGggPT09IGkgKyAxID8gJywnIDogJydcbiAgICAgICAgfSBgXG4gICAgICB9LCB0KCd2YWxpZGF0aW9uOmludmFsaWRTZWxlY3Rpb25zJykpIGFzIHN0cmluZ1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgdXBsb2FkOiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBVcGxvYWRGaWVsZD4gPSAodmFsdWU6IHN0cmluZywgb3B0aW9ucykgPT4ge1xuICBpZiAoIXZhbHVlICYmIG9wdGlvbnMucmVxdWlyZWQpIHtcbiAgICByZXR1cm4gb3B0aW9ucy50KCd2YWxpZGF0aW9uOnJlcXVpcmVkJylcbiAgfVxuXG4gIGlmICghY2FuVXNlRE9NICYmIHR5cGVvZiB2YWx1ZSAhPT0gJ3VuZGVmaW5lZCcgJiYgdmFsdWUgIT09IG51bGwpIHtcbiAgICBjb25zdCBpZEZpZWxkID0gb3B0aW9ucz8uY29uZmlnPy5jb2xsZWN0aW9uc1xuICAgICAgPy5maW5kKChjb2xsZWN0aW9uKSA9PiBjb2xsZWN0aW9uLnNsdWcgPT09IG9wdGlvbnMucmVsYXRpb25UbylcbiAgICAgID8uZmllbGRzPy5maW5kKChmaWVsZCkgPT4gZmllbGRBZmZlY3RzRGF0YShmaWVsZCkgJiYgZmllbGQubmFtZSA9PT0gJ2lkJylcblxuICAgIGNvbnN0IHR5cGUgPSBnZXRJRFR5cGUoaWRGaWVsZCwgb3B0aW9ucz8ucGF5bG9hZD8uZGI/LmRlZmF1bHRJRFR5cGUpXG5cbiAgICBpZiAoIWlzVmFsaWRJRCh2YWx1ZSwgdHlwZSkpIHtcbiAgICAgIHJldHVybiBvcHRpb25zLnQoJ3ZhbGlkYXRpb246dmFsaWRVcGxvYWRJRCcpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHZhbGlkYXRlRmlsdGVyT3B0aW9ucyh2YWx1ZSwgb3B0aW9ucylcbn1cblxuZXhwb3J0IGNvbnN0IHJlbGF0aW9uc2hpcDogVmFsaWRhdGU8dW5rbm93biwgdW5rbm93biwgUmVsYXRpb25zaGlwRmllbGQ+ID0gYXN5bmMgKFxuICB2YWx1ZTogUmVsYXRpb25zaGlwVmFsdWUsXG4gIG9wdGlvbnMsXG4pID0+IHtcbiAgY29uc3QgeyBjb25maWcsIG1heFJvd3MsIG1pblJvd3MsIHBheWxvYWQsIHJlbGF0aW9uVG8sIHJlcXVpcmVkLCB0IH0gPSBvcHRpb25zXG5cbiAgaWYgKCghdmFsdWUgfHwgKEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA9PT0gMCkpICYmIHJlcXVpcmVkKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246cmVxdWlyZWQnKVxuICB9XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICBpZiAobWluUm93cyAmJiB2YWx1ZS5sZW5ndGggPCBtaW5Sb3dzKSB7XG4gICAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpsZXNzVGhhbk1pbicsIHsgbGFiZWw6IHQoJ3Jvd3MnKSwgbWluOiBtaW5Sb3dzLCB2YWx1ZTogdmFsdWUubGVuZ3RoIH0pXG4gICAgfVxuXG4gICAgaWYgKG1heFJvd3MgJiYgdmFsdWUubGVuZ3RoID4gbWF4Um93cykge1xuICAgICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246Z3JlYXRlclRoYW5NYXgnLCB7IGxhYmVsOiB0KCdyb3dzJyksIG1heDogbWF4Um93cywgdmFsdWU6IHZhbHVlLmxlbmd0aCB9KVxuICAgIH1cbiAgfVxuXG4gIGlmICghY2FuVXNlRE9NICYmIHR5cGVvZiB2YWx1ZSAhPT0gJ3VuZGVmaW5lZCcgJiYgdmFsdWUgIT09IG51bGwpIHtcbiAgICBjb25zdCB2YWx1ZXMgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXVxuXG4gICAgY29uc3QgaW52YWxpZFJlbGF0aW9uc2hpcHMgPSB2YWx1ZXMuZmlsdGVyKCh2YWwpID0+IHtcbiAgICAgIGxldCBjb2xsZWN0aW9uU2x1Zzogc3RyaW5nXG4gICAgICBsZXQgcmVxdWVzdGVkSURcblxuICAgICAgaWYgKHR5cGVvZiByZWxhdGlvblRvID09PSAnc3RyaW5nJykge1xuICAgICAgICBjb2xsZWN0aW9uU2x1ZyA9IHJlbGF0aW9uVG9cblxuICAgICAgICAvLyBjdXN0b20gaWRcbiAgICAgICAgaWYgKHZhbCkge1xuICAgICAgICAgIHJlcXVlc3RlZElEID0gdmFsXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkocmVsYXRpb25UbykgJiYgdHlwZW9mIHZhbCA9PT0gJ29iamVjdCcgJiYgdmFsPy5yZWxhdGlvblRvKSB7XG4gICAgICAgIGNvbGxlY3Rpb25TbHVnID0gdmFsLnJlbGF0aW9uVG9cbiAgICAgICAgcmVxdWVzdGVkSUQgPSB2YWwudmFsdWVcbiAgICAgIH1cblxuICAgICAgaWYgKHJlcXVlc3RlZElEID09PSBudWxsKSByZXR1cm4gZmFsc2VcblxuICAgICAgY29uc3QgaWRGaWVsZCA9IGNvbmZpZz8uY29sbGVjdGlvbnNcbiAgICAgICAgPy5maW5kKChjb2xsZWN0aW9uKSA9PiBjb2xsZWN0aW9uLnNsdWcgPT09IGNvbGxlY3Rpb25TbHVnKVxuICAgICAgICA/LmZpZWxkcz8uZmluZCgoZmllbGQpID0+IGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpICYmIGZpZWxkLm5hbWUgPT09ICdpZCcpXG5cbiAgICAgIGNvbnN0IHR5cGUgPSBnZXRJRFR5cGUoaWRGaWVsZCwgcGF5bG9hZD8uZGI/LmRlZmF1bHRJRFR5cGUpXG5cbiAgICAgIHJldHVybiAhaXNWYWxpZElEKHJlcXVlc3RlZElELCB0eXBlKVxuICAgIH0pXG5cbiAgICBpZiAoaW52YWxpZFJlbGF0aW9uc2hpcHMubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIGBUaGlzIHJlbGF0aW9uc2hpcCBmaWVsZCBoYXMgdGhlIGZvbGxvd2luZyBpbnZhbGlkIHJlbGF0aW9uc2hpcHM6ICR7aW52YWxpZFJlbGF0aW9uc2hpcHNcbiAgICAgICAgLm1hcCgoZXJyLCBpbnZhbGlkKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGAke2Vycn0gJHtKU09OLnN0cmluZ2lmeShpbnZhbGlkKX1gXG4gICAgICAgIH0pXG4gICAgICAgIC5qb2luKCcsICcpfWBcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdmFsaWRhdGVGaWx0ZXJPcHRpb25zKHZhbHVlLCBvcHRpb25zKVxufVxuXG5leHBvcnQgY29uc3Qgc2VsZWN0OiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBTZWxlY3RGaWVsZD4gPSAoXG4gIHZhbHVlLFxuICB7IGhhc01hbnksIG9wdGlvbnMsIHJlcXVpcmVkLCB0IH0sXG4pID0+IHtcbiAgaWYgKFxuICAgIEFycmF5LmlzQXJyYXkodmFsdWUpICYmXG4gICAgdmFsdWUuc29tZShcbiAgICAgIChpbnB1dCkgPT5cbiAgICAgICAgIW9wdGlvbnMuc29tZShcbiAgICAgICAgICAob3B0aW9uKSA9PiBvcHRpb24gPT09IGlucHV0IHx8ICh0eXBlb2Ygb3B0aW9uICE9PSAnc3RyaW5nJyAmJiBvcHRpb24/LnZhbHVlID09PSBpbnB1dCksXG4gICAgICAgICksXG4gICAgKVxuICApIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjppbnZhbGlkU2VsZWN0aW9uJylcbiAgfVxuXG4gIGlmIChcbiAgICB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmXG4gICAgIW9wdGlvbnMuc29tZShcbiAgICAgIChvcHRpb24pID0+IG9wdGlvbiA9PT0gdmFsdWUgfHwgKHR5cGVvZiBvcHRpb24gIT09ICdzdHJpbmcnICYmIG9wdGlvbi52YWx1ZSA9PT0gdmFsdWUpLFxuICAgIClcbiAgKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246aW52YWxpZFNlbGVjdGlvbicpXG4gIH1cblxuICBpZiAoXG4gICAgcmVxdWlyZWQgJiZcbiAgICAodHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJyB8fFxuICAgICAgdmFsdWUgPT09IG51bGwgfHxcbiAgICAgIChoYXNNYW55ICYmIEFycmF5LmlzQXJyYXkodmFsdWUpICYmICh2YWx1ZSBhcyBbXSk/Lmxlbmd0aCA9PT0gMCkpXG4gICkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVkJylcbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmV4cG9ydCBjb25zdCByYWRpbzogVmFsaWRhdGU8dW5rbm93biwgdW5rbm93biwgUmFkaW9GaWVsZD4gPSAodmFsdWUsIHsgb3B0aW9ucywgcmVxdWlyZWQsIHQgfSkgPT4ge1xuICBpZiAodmFsdWUpIHtcbiAgICBjb25zdCB2YWx1ZU1hdGNoZXNPcHRpb24gPSBvcHRpb25zLnNvbWUoXG4gICAgICAob3B0aW9uKSA9PiBvcHRpb24gPT09IHZhbHVlIHx8ICh0eXBlb2Ygb3B0aW9uICE9PSAnc3RyaW5nJyAmJiBvcHRpb24udmFsdWUgPT09IHZhbHVlKSxcbiAgICApXG4gICAgcmV0dXJuIHZhbHVlTWF0Y2hlc09wdGlvbiB8fCB0KCd2YWxpZGF0aW9uOmludmFsaWRTZWxlY3Rpb24nKVxuICB9XG5cbiAgcmV0dXJuIHJlcXVpcmVkID8gdCgndmFsaWRhdGlvbjpyZXF1aXJlZCcpIDogdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgcG9pbnQ6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIFBvaW50RmllbGQ+ID0gKFxuICB2YWx1ZTogW251bWJlciB8IHN0cmluZywgbnVtYmVyIHwgc3RyaW5nXSA9IFsnJywgJyddLFxuICB7IHJlcXVpcmVkLCB0IH0sXG4pID0+IHtcbiAgY29uc3QgbG5nID0gcGFyc2VGbG9hdChTdHJpbmcodmFsdWVbMF0pKVxuICBjb25zdCBsYXQgPSBwYXJzZUZsb2F0KFN0cmluZyh2YWx1ZVsxXSkpXG4gIGlmIChcbiAgICByZXF1aXJlZCAmJlxuICAgICgodmFsdWVbMF0gJiYgdmFsdWVbMV0gJiYgdHlwZW9mIGxuZyAhPT0gJ251bWJlcicgJiYgdHlwZW9mIGxhdCAhPT0gJ251bWJlcicpIHx8XG4gICAgICBOdW1iZXIuaXNOYU4obG5nKSB8fFxuICAgICAgTnVtYmVyLmlzTmFOKGxhdCkgfHxcbiAgICAgIChBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5sZW5ndGggIT09IDIpKVxuICApIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlc1R3b051bWJlcnMnKVxuICB9XG5cbiAgaWYgKCh2YWx1ZVsxXSAmJiBOdW1iZXIuaXNOYU4obG5nKSkgfHwgKHZhbHVlWzBdICYmIE51bWJlci5pc05hTihsYXQpKSkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOmludmFsaWRJbnB1dCcpXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGFycmF5LFxuICBibG9ja3MsXG4gIGNoZWNrYm94LFxuICBjb2RlLFxuICBkYXRlLFxuICBlbWFpbCxcbiAganNvbixcbiAgbnVtYmVyLFxuICBwYXNzd29yZCxcbiAgcG9pbnQsXG4gIHJhZGlvLFxuICByZWxhdGlvbnNoaXAsXG4gIHJpY2hUZXh0LFxuICBzZWxlY3QsXG4gIHRleHQsXG4gIHRleHRhcmVhLFxuICB1cGxvYWQsXG59XG4iXSwibmFtZXMiOlsiYXJyYXkiLCJibG9ja3MiLCJjaGVja2JveCIsImNvZGUiLCJkYXRlIiwiZW1haWwiLCJqc29uIiwibnVtYmVyIiwicGFzc3dvcmQiLCJwb2ludCIsInJhZGlvIiwicmVsYXRpb25zaGlwIiwicmljaFRleHQiLCJzZWxlY3QiLCJ0ZXh0IiwidGV4dGFyZWEiLCJ1cGxvYWQiLCJ2YWx1ZSIsImNvbmZpZyIsImhhc01hbnkiLCJtYXhMZW5ndGgiLCJmaWVsZE1heExlbmd0aCIsIm1heFJvd3MiLCJtaW5MZW5ndGgiLCJtaW5Sb3dzIiwicmVxdWlyZWQiLCJ0IiwibGVuZ3RoVmFsaWRhdGlvblJlc3VsdCIsInZhbGlkYXRlQXJyYXlMZW5ndGgiLCJkZWZhdWx0TWF4VGV4dExlbmd0aCIsInN0cmluZ3NUb1ZhbGlkYXRlIiwiQXJyYXkiLCJpc0FycmF5Iiwic3RyaW5nVmFsdWUiLCJsZW5ndGgiLCJsYWJlbCIsInBheWxvYWQiLCJ0ZXN0IiwidW5kZWZpbmVkIiwianNvbkVycm9yIiwianNvblNjaGVtYSIsImlzTm90RW1wdHkiLCJPYmplY3QiLCJrZXlzIiwiZmV0Y2hTY2hlbWEiLCJ1cmkiLCJzY2hlbWEiLCJmZXRjaCIsInRoZW4iLCJyZXNwb25zZSIsIm9rIiwiRXJyb3IiLCJqc29uU2NoZW1hU2FuaXRpemF0aW9ucyIsImlkIiwiJGlkIiwiJHNjaGVtYSIsImFzc2lnbiIsImNhblVzZURPTSIsImFqdiIsIkFqdiIsInZhbGlkYXRlIiwiZXJyb3JzVGV4dCIsImVycm9yIiwibWVzc2FnZSIsImlzTmFOIiwiRGF0ZSIsInBhcnNlIiwidG9TdHJpbmciLCJvcHRpb25zIiwiZWRpdG9yIiwiYXJyYXlMZW5ndGgiLCJjb3VudCIsIm1heCIsIm1pbiIsImlzTnVtYmVyIiwibnVtYmVyc1RvVmFsaWRhdGUiLCJudW1iZXJWYWx1ZSIsInBhcnNlRmxvYXQiLCJ2YWxpZGF0ZUZpbHRlck9wdGlvbnMiLCJkYXRhIiwiZmlsdGVyT3B0aW9ucyIsInJlbGF0aW9uVG8iLCJyZXEiLCJzaWJsaW5nRGF0YSIsInVzZXIiLCJmYWxzZUNvbGxlY3Rpb25zIiwiY29sbGVjdGlvbnMiLCJ2YWx1ZXMiLCJQcm9taXNlIiwiYWxsIiwibWFwIiwiY29sbGVjdGlvbiIsIm9wdGlvbkZpbHRlciIsInZhbHVlSURzIiwiZm9yRWFjaCIsInZhbCIsInB1c2giLCJmaW5kV2hlcmUiLCJhbmQiLCJpbiIsInJlc3VsdCIsImZpbmQiLCJkZXB0aCIsImxpbWl0IiwicGFnaW5hdGlvbiIsIndoZXJlIiwiZG9jcyIsImRvYyIsImVyciIsImxvZ2dlciIsIm1zZyIsImludmFsaWRSZWxhdGlvbnNoaXBzIiwiZmlsdGVyIiwicmVxdWVzdGVkSUQiLCJzbHVnIiwiaW5kZXhPZiIsInJlZHVjZSIsImludmFsaWQiLCJpIiwiSlNPTiIsInN0cmluZ2lmeSIsImlkRmllbGQiLCJmaWVsZHMiLCJmaWVsZCIsImZpZWxkQWZmZWN0c0RhdGEiLCJuYW1lIiwidHlwZSIsImdldElEVHlwZSIsImRiIiwiZGVmYXVsdElEVHlwZSIsImlzVmFsaWRJRCIsImNvbGxlY3Rpb25TbHVnIiwiam9pbiIsInNvbWUiLCJpbnB1dCIsIm9wdGlvbiIsInZhbHVlTWF0Y2hlc09wdGlvbiIsImxuZyIsIlN0cmluZyIsImxhdCIsIk51bWJlciJdLCJyYW5nZU1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztJQTBTYUEsS0FBSztlQUFMQTs7SUFPQUMsTUFBTTtlQUFOQTs7SUE1R0FDLFFBQVE7ZUFBUkE7O0lBeEVBQyxJQUFJO2VBQUpBOztJQW1GQUMsSUFBSTtlQUFKQTs7SUFz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
@@ -645,4 +645,4 @@ describe('Field Validations', ()=>{
645
645
  });
646
646
  });
647
647
 
648
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWVsZHMvdmFsaWRhdGlvbnMuc3BlYy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFZhbGlkYXRlT3B0aW9ucyB9IGZyb20gJy4vY29uZmlnL3R5cGVzJ1xuXG5pbXBvcnQgeyBudW1iZXIsIHBhc3N3b3JkLCBwb2ludCwgcmVsYXRpb25zaGlwLCBzZWxlY3QsIHRleHQsIHRleHRhcmVhIH0gZnJvbSAnLi92YWxpZGF0aW9ucydcblxuY29uc3QgdCA9IGplc3QuZm4oKHN0cmluZykgPT4gc3RyaW5nKVxuXG5sZXQgb3B0aW9uczogVmFsaWRhdGVPcHRpb25zPGFueSwgYW55LCBhbnk+ID0ge1xuICBkYXRhOiB1bmRlZmluZWQsXG4gIG9wZXJhdGlvbjogJ2NyZWF0ZScsXG4gIHNpYmxpbmdEYXRhOiB1bmRlZmluZWQsXG4gIHQsXG59XG5cbmRlc2NyaWJlKCdGaWVsZCBWYWxpZGF0aW9ucycsICgpID0+IHtcbiAgZGVzY3JpYmUoJ3RleHQnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCB2YWxpZGF0ZScsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9ICd0ZXN0J1xuICAgICAgY29uc3QgcmVzdWx0ID0gdGV4dCh2YWwsIG9wdGlvbnMpXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHNob3cgcmVxdWlyZWQgbWVzc2FnZScsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9IHVuZGVmaW5lZFxuICAgICAgY29uc3QgcmVzdWx0ID0gdGV4dCh2YWwsIHsgLi4ub3B0aW9ucywgcmVxdWlyZWQ6IHRydWUgfSlcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmUoJ3ZhbGlkYXRpb246cmVxdWlyZWQnKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCBoYW5kbGUgdW5kZWZpbmVkJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gdW5kZWZpbmVkXG4gICAgICBjb25zdCByZXN1bHQgPSB0ZXh0KHZhbCwgb3B0aW9ucylcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmUodHJ1ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUgbWF4TGVuZ3RoJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gJ3Rvb2xvbmcnXG4gICAgICBjb25zdCByZXN1bHQgPSB0ZXh0KHZhbCwgeyAuLi5vcHRpb25zLCBtYXhMZW5ndGg6IDUgfSlcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmUoJ3ZhbGlkYXRpb246c2hvcnRlclRoYW5NYXgnKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSBtaW5MZW5ndGgnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSAnc2hvcnQnXG4gICAgICBjb25zdCByZXN1bHQgPSB0ZXh0KHZhbCwgeyAuLi5vcHRpb25zLCBtaW5MZW5ndGg6IDEwIH0pXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKCd2YWxpZGF0aW9uOmxvbmdlclRoYW5NaW4nKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSBtYXhMZW5ndGggd2l0aCBubyB2YWx1ZScsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9IHVuZGVmaW5lZFxuICAgICAgY29uc3QgcmVzdWx0ID0gdGV4dCh2YWwsIHsgLi4ub3B0aW9ucywgbWF4TGVuZ3RoOiA1IH0pXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHZhbGlkYXRlIG1pbkxlbmd0aCB3aXRoIG5vIHZhbHVlJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gdW5kZWZpbmVkXG4gICAgICBjb25zdCByZXN1bHQgPSB0ZXh0KHZhbCwgeyAuLi5vcHRpb25zLCBtaW5MZW5ndGg6IDEwIH0pXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHZhbGlkYXRlIGFuIGFycmF5IG9mIHRleHRzJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gWyd0ZXN0J11cbiAgICAgIGNvbnN0IHJlc3VsdCA9IHRleHQodmFsLCB7IC4uLm9wdGlvbnMsIGhhc01hbnk6IHRydWUgfSlcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmUodHJ1ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgaGFuZGxlIHJlcXVpcmVkIGFycmF5IG9mIHRleHRzJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gWyd0ZXN0J11cbiAgICAgIGNvbnN0IHJlc3VsdCA9IHRleHQodmFsLCB7IC4uLm9wdGlvbnMsIGhhc01hbnk6IHRydWUsIHJlcXVpcmVkOiB0cnVlIH0pXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKHRydWUpXG4gICAgfSlcbiAgfSlcblxuICBkZXNjcmliZSgndGV4dGFyZWEnLCAoKSA9PiB7XG4gICAgb3B0aW9ucyA9IHsgLi4ub3B0aW9ucywgZmllbGQ6IHsgbmFtZTogJ3Rlc3QnLCB0eXBlOiAndGV4dGFyZWEnIH0gfVxuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSAndGVzdCdcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHRleHRhcmVhKHZhbCwgb3B0aW9ucylcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmUodHJ1ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgc2hvdyByZXF1aXJlZCBtZXNzYWdlJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gdW5kZWZpbmVkXG4gICAgICBjb25zdCByZXN1bHQgPSB0ZXh0YXJlYSh2YWwsIHsgLi4ub3B0aW9ucywgcmVxdWlyZWQ6IHRydWUgfSlcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmUoJ3ZhbGlkYXRpb246cmVxdWlyZWQnKVxuICAgIH0pXG5cbiAgICBpdCgnc2hvdWxkIGhhbmRsZSB1bmRlZmluZWQnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSB1bmRlZmluZWRcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHRleHRhcmVhKHZhbCwgb3B0aW9ucylcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmUodHJ1ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUgbWF4TGVuZ3RoJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gJ3Rvb2xvbmcnXG4gICAgICBjb25zdCByZXN1bHQgPSB0ZXh0YXJlYSh2YWwsIHsgLi4ub3B0aW9ucywgbWF4TGVuZ3RoOiA1IH0pXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKCd2YWxpZGF0aW9uOnNob3J0ZXJUaGFuTWF4JylcbiAgICB9KVxuXG4gICAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSBtaW5MZW5ndGgnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSAnc2hvcnQnXG4gICAgICBjb25zdCByZXN1bHQgPSB0ZXh0YXJlYSh2YWwsIHsgLi4ub3B0aW9ucywgbWluTGVuZ3RoOiAxMCB9KVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZSgndmFsaWRhdGlvbjpsb25nZXJUaGFuTWluJylcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUgbWF4TGVuZ3RoIHdpdGggbm8gdmFsdWUnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSB1bmRlZmluZWRcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHRleHRhcmVhKHZhbCwgeyAuLi5vcHRpb25zLCBtYXhMZW5ndGg6IDUgfSlcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmUodHJ1ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUgbWluTGVuZ3RoIHdpdGggbm8gdmFsdWUnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSB1bmRlZmluZWRcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHRleHRhcmVhKHZhbCwgeyAuLi5vcHRpb25zLCBtaW5MZW5ndGg6IDEwIH0pXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKHRydWUpXG4gICAgfSlcbiAgfSlcblxuICBkZXNjcmliZSgncGFzc3dvcmQnLCAoKSA9PiB7XG4gICAgY29uc3QgcGFzc3dvcmRPcHRpb25zID0ge1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIG5hbWU6ICd0ZXN0JyxcbiAgICAgIHR5cGU6ICdwYXNzd29yZCcsXG4gICAgfVxuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSAndGVzdCdcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHBhc3N3b3JkKHZhbCwgcGFzc3dvcmRPcHRpb25zKVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZSh0cnVlKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCBzaG93IHJlcXVpcmVkIG1lc3NhZ2UnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSB1bmRlZmluZWRcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHBhc3N3b3JkKHZhbCwgeyAuLi5wYXNzd29yZE9wdGlvbnMsIHJlcXVpcmVkOiB0cnVlIH0pXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKCd2YWxpZGF0aW9uOnJlcXVpcmVkJylcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgaGFuZGxlIHVuZGVmaW5lZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9IHVuZGVmaW5lZFxuICAgICAgY29uc3QgcmVzdWx0ID0gcGFzc3dvcmQodmFsLCBwYXNzd29yZE9wdGlvbnMpXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHZhbGlkYXRlIG1heExlbmd0aCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9ICd0b29sb25nJ1xuICAgICAgY29uc3QgcmVzdWx0ID0gcGFzc3dvcmQodmFsLCB7IC4uLnBhc3N3b3JkT3B0aW9ucywgbWF4TGVuZ3RoOiA1IH0pXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKCd2YWxpZGF0aW9uOnNob3J0ZXJUaGFuTWF4JylcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUgbWluTGVuZ3RoJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gJ3Nob3J0J1xuICAgICAgY29uc3QgcmVzdWx0ID0gcGFzc3dvcmQodmFsLCB7IC4uLnBhc3N3b3JkT3B0aW9ucywgbWluTGVuZ3RoOiAxMCB9KVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZSgndmFsaWRhdGlvbjpsb25nZXJUaGFuTWluJylcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUgbWF4TGVuZ3RoIHdpdGggbm8gdmFsdWUnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSB1bmRlZmluZWRcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHBhc3N3b3JkKHZhbCwgeyAuLi5wYXNzd29yZE9wdGlvbnMsIG1heExlbmd0aDogNSB9KVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZSh0cnVlKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSBtaW5MZW5ndGggd2l0aCBubyB2YWx1ZScsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9IHVuZGVmaW5lZFxuICAgICAgY29uc3QgcmVzdWx0ID0gcGFzc3dvcmQodmFsLCB7IC4uLnBhc3N3b3JkT3B0aW9ucywgbWluTGVuZ3RoOiAxMCB9KVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZSh0cnVlKVxuICAgIH0pXG4gIH0pXG5cbiAgZGVzY3JpYmUoJ3BvaW50JywgKCkgPT4ge1xuICAgIGNvbnN0IHBvaW50T3B0aW9ucyA9IHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBuYW1lOiAncG9pbnQnLFxuICAgICAgdHlwZTogJ3BvaW50JyxcbiAgICB9XG4gICAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSBudW1iZXJzJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gWycwLjEnLCAnMC4yJ11cbiAgICAgIGNvbnN0IHJlc3VsdCA9IHBvaW50KHZhbCwgcG9pbnRPcHRpb25zKVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZSh0cnVlKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSBzdHJpbmdzIHRoYXQgY291bGQgYmUgbnVtYmVycycsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9IFsnMC4xJywgJzAuMiddXG4gICAgICBjb25zdCByZXN1bHQgPSBwb2ludCh2YWwsIHBvaW50T3B0aW9ucylcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmUodHJ1ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgc2hvdyByZXF1aXJlZCBtZXNzYWdlIHdoZW4gdW5kZWZpbmVkJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gdW5kZWZpbmVkXG4gICAgICBjb25zdCByZXN1bHQgPSBwb2ludCh2YWwsIHsgLi4ucG9pbnRPcHRpb25zLCByZXF1aXJlZDogdHJ1ZSB9KVxuICAgICAgZXhwZWN0KHJlc3VsdCkubm90LnRvQmUodHJ1ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgc2hvdyByZXF1aXJlZCBtZXNzYWdlIHdoZW4gYXJyYXknLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSBbXVxuICAgICAgY29uc3QgcmVzdWx0ID0gcG9pbnQodmFsLCB7IC4uLnBvaW50T3B0aW9ucywgcmVxdWlyZWQ6IHRydWUgfSlcbiAgICAgIGV4cGVjdChyZXN1bHQpLm5vdC50b0JlKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHNob3cgcmVxdWlyZWQgbWVzc2FnZSB3aGVuIGFycmF5IG9mIHVuZGVmaW5lZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9IFt1bmRlZmluZWQsIHVuZGVmaW5lZF1cbiAgICAgIGNvbnN0IHJlc3VsdCA9IHBvaW50KHZhbCwgeyAuLi5wb2ludE9wdGlvbnMsIHJlcXVpcmVkOiB0cnVlIH0pXG4gICAgICBleHBlY3QocmVzdWx0KS5ub3QudG9CZSh0cnVlKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCBoYW5kbGUgdW5kZWZpbmVkIG5vdCByZXF1aXJlZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9IHVuZGVmaW5lZFxuICAgICAgY29uc3QgcmVzdWx0ID0gcGFzc3dvcmQodmFsLCBwb2ludE9wdGlvbnMpXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIGhhbmRsZSBlbXB0eSBhcnJheSBub3QgcmVxdWlyZWQnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSBbXVxuICAgICAgY29uc3QgcmVzdWx0ID0gcG9pbnQodmFsLCBwb2ludE9wdGlvbnMpXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIGhhbmRsZSBhcnJheSBvZiB1bmRlZmluZWQgbm90IHJlcXVpcmVkJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gW3VuZGVmaW5lZCwgdW5kZWZpbmVkXVxuICAgICAgY29uc3QgcmVzdWx0ID0gcG9pbnQodmFsLCBwb2ludE9wdGlvbnMpXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHByZXZlbnQgdGV4dCBpbnB1dCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9IFsnYmFkJywgJ2lucHV0J11cbiAgICAgIGNvbnN0IHJlc3VsdCA9IHBvaW50KHZhbCwgcG9pbnRPcHRpb25zKVxuICAgICAgZXhwZWN0KHJlc3VsdCkubm90LnRvQmUodHJ1ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgcHJldmVudCBtaXNzaW5nIHZhbHVlJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gWzAuMV1cbiAgICAgIGNvbnN0IHJlc3VsdCA9IHBvaW50KHZhbCwgcG9pbnRPcHRpb25zKVxuICAgICAgZXhwZWN0KHJlc3VsdCkubm90LnRvQmUodHJ1ZSlcbiAgICB9KVxuICB9KVxuXG4gIGRlc2NyaWJlKCdyZWxhdGlvbnNoaXAnLCAoKSA9PiB7XG4gICAgY29uc3QgcmVsYXRpb25Db2xsZWN0aW9uID0ge1xuICAgICAgZmllbGRzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnaWQnLFxuICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBzbHVnOiAncmVsYXRpb24nLFxuICAgIH1cblxuICAgIGNvbnN0IHJlbGF0aW9uc2hpcE9wdGlvbnMgPSB7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgY29uZmlnOiB7XG4gICAgICAgIGNvbGxlY3Rpb25zOiBbcmVsYXRpb25Db2xsZWN0aW9uXSxcbiAgICAgIH0sXG4gICAgICBwYXlsb2FkOiB7XG4gICAgICAgIGNvbGxlY3Rpb25zOiB7XG4gICAgICAgICAgcmVsYXRpb246IHtcbiAgICAgICAgICAgIGNvbmZpZzogcmVsYXRpb25Db2xsZWN0aW9uLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgcmVsYXRpb25UbzogJ3JlbGF0aW9uJyxcbiAgICB9XG4gICAgaXQoJ3Nob3VsZCBoYW5kbGUgcmVxdWlyZWQnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSB1bmRlZmluZWRcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlbGF0aW9uc2hpcCh2YWwsIHsgLi4ucmVsYXRpb25zaGlwT3B0aW9ucywgcmVxdWlyZWQ6IHRydWUgfSlcbiAgICAgIGV4cGVjdChyZXN1bHQpLm5vdC50b0JlKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIGhhbmRsZSByZXF1aXJlZCB3aXRoIGhhc01hbnknLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSBbXVxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVsYXRpb25zaGlwKHZhbCwge1xuICAgICAgICAuLi5yZWxhdGlvbnNoaXBPcHRpb25zLFxuICAgICAgICBoYXNNYW55OiB0cnVlLFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgIH0pXG4gICAgICBleHBlY3QocmVzdWx0KS5ub3QudG9CZSh0cnVlKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCBlbmZvcmNlIGhhc01hbnkgbWluJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgbWluT3B0aW9ucyA9IHtcbiAgICAgICAgLi4ucmVsYXRpb25zaGlwT3B0aW9ucyxcbiAgICAgICAgaGFzTWFueTogdHJ1ZSxcbiAgICAgICAgbWluUm93czogMixcbiAgICAgIH1cblxuICAgICAgY29uc3QgdmFsID0gWydhJ11cblxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVsYXRpb25zaGlwKHZhbCwgbWluT3B0aW9ucylcbiAgICAgIGV4cGVjdChyZXN1bHQpLm5vdC50b0JlKHRydWUpXG5cbiAgICAgIGNvbnN0IGFsbG93ZWQgPSBhd2FpdCByZWxhdGlvbnNoaXAoWydhJywgJ2InXSwgbWluT3B0aW9ucylcbiAgICAgIGV4cGVjdChhbGxvd2VkKS50b1N0cmljdEVxdWFsKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIGVuZm9yY2UgaGFzTWFueSBtYXgnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBtYXhPcHRpb25zID0ge1xuICAgICAgICAuLi5yZWxhdGlvbnNoaXBPcHRpb25zLFxuICAgICAgICBoYXNNYW55OiB0cnVlLFxuICAgICAgICBtYXhSb3dzOiAyLFxuICAgICAgfVxuICAgICAgbGV0IHZhbCA9IFsnYScsICdiJywgJ2MnXVxuXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZWxhdGlvbnNoaXAodmFsLCBtYXhPcHRpb25zKVxuICAgICAgZXhwZWN0KHJlc3VsdCkubm90LnRvQmUodHJ1ZSlcblxuICAgICAgdmFsID0gWydhJ11cbiAgICAgIGNvbnN0IGFsbG93ZWQgPSBhd2FpdCByZWxhdGlvbnNoaXAodmFsLCBtYXhPcHRpb25zKVxuICAgICAgZXhwZWN0KGFsbG93ZWQpLnRvU3RyaWN0RXF1YWwodHJ1ZSlcbiAgICB9KVxuICB9KVxuXG4gIGRlc2NyaWJlKCdzZWxlY3QnLCAoKSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0T3B0aW9ucyA9IHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBvcHRpb25zOiBbJ29uZScsICd0d28nLCAndGhyZWUnXSxcbiAgICAgIHR5cGU6ICdzZWxlY3QnLFxuICAgIH1cbiAgICBjb25zdCBvcHRpb25zUmVxdWlyZWQgPSB7XG4gICAgICAuLi5zZWxlY3RPcHRpb25zLFxuICAgICAgb3B0aW9uczogW1xuICAgICAgICB7XG4gICAgICAgICAgbGFiZWw6ICdPbmUnLFxuICAgICAgICAgIHZhbHVlOiAnb25lJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGxhYmVsOiAndHdvJyxcbiAgICAgICAgICB2YWx1ZTogJ3R3bycsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBsYWJlbDogJ3RocmVlJyxcbiAgICAgICAgICB2YWx1ZTogJ3RocmVlJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICB9XG4gICAgY29uc3Qgb3B0aW9uc1dpdGhFbXB0eVN0cmluZyA9IHtcbiAgICAgIC4uLnNlbGVjdE9wdGlvbnMsXG4gICAgICBvcHRpb25zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBsYWJlbDogJ05vbmUnLFxuICAgICAgICAgIHZhbHVlOiAnJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGxhYmVsOiAnT3B0aW9uJyxcbiAgICAgICAgICB2YWx1ZTogJ29wdGlvbicsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH1cbiAgICBpdCgnc2hvdWxkIGFsbG93IHZhbGlkIGlucHV0JywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gJ29uZSdcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHNlbGVjdCh2YWwsIHNlbGVjdE9wdGlvbnMpXG4gICAgICBleHBlY3QocmVzdWx0KS50b1N0cmljdEVxdWFsKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHByZXZlbnQgaW52YWxpZCBpbnB1dCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9ICdiYWQnXG4gICAgICBjb25zdCByZXN1bHQgPSBzZWxlY3QodmFsLCBzZWxlY3RPcHRpb25zKVxuICAgICAgZXhwZWN0KHJlc3VsdCkubm90LnRvU3RyaWN0RXF1YWwodHJ1ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgYWxsb3cgbnVsbCBpbnB1dCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9IG51bGxcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHNlbGVjdCh2YWwsIHNlbGVjdE9wdGlvbnMpXG4gICAgICBleHBlY3QocmVzdWx0KS50b1N0cmljdEVxdWFsKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIGFsbG93IHVuZGVmaW5lZCBpbnB1dCcsICgpID0+IHtcbiAgICAgIGxldCB2YWxcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHNlbGVjdCh2YWwsIHNlbGVjdE9wdGlvbnMpXG4gICAgICBleHBlY3QocmVzdWx0KS50b1N0cmljdEVxdWFsKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHByZXZlbnQgZW1wdHkgc3RyaW5nIGlucHV0JywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gJydcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHNlbGVjdCh2YWwsIHNlbGVjdE9wdGlvbnMpXG4gICAgICBleHBlY3QocmVzdWx0KS5ub3QudG9TdHJpY3RFcXVhbCh0cnVlKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCBwcmV2ZW50IHVuZGVmaW5lZCBpbnB1dCB3aXRoIHJlcXVpcmVkJywgKCkgPT4ge1xuICAgICAgbGV0IHZhbFxuICAgICAgY29uc3QgcmVzdWx0ID0gc2VsZWN0KHZhbCwgb3B0aW9uc1JlcXVpcmVkKVxuICAgICAgZXhwZWN0KHJlc3VsdCkubm90LnRvU3RyaWN0RXF1YWwodHJ1ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgcHJldmVudCBlbXB0eSBzdHJpbmcgaW5wdXQgd2l0aCByZXF1aXJlZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHNlbGVjdCgnJywgb3B0aW9uc1JlcXVpcmVkKVxuICAgICAgZXhwZWN0KHJlc3VsdCkubm90LnRvU3RyaWN0RXF1YWwodHJ1ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgcHJldmVudCB1bmRlZmluZWQgaW5wdXQgd2l0aCByZXF1aXJlZCBhbmQgaGFzTWFueScsICgpID0+IHtcbiAgICAgIGxldCB2YWxcbiAgICAgIG9wdGlvbnMuaGFzTWFueSA9IHRydWVcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHNlbGVjdCh2YWwsIG9wdGlvbnNSZXF1aXJlZClcbiAgICAgIGV4cGVjdChyZXN1bHQpLm5vdC50b1N0cmljdEVxdWFsKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHByZXZlbnQgZW1wdHkgYXJyYXkgaW5wdXQgd2l0aCByZXF1aXJlZCBhbmQgaGFzTWFueScsICgpID0+IHtcbiAgICAgIG9wdGlvbnNSZXF1aXJlZC5oYXNNYW55ID0gdHJ1ZVxuICAgICAgY29uc3QgcmVzdWx0ID0gc2VsZWN0KFtdLCBvcHRpb25zUmVxdWlyZWQpXG4gICAgICBleHBlY3QocmVzdWx0KS5ub3QudG9TdHJpY3RFcXVhbCh0cnVlKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCBwcmV2ZW50IGVtcHR5IHN0cmluZyBhcnJheSBpbnB1dCB3aXRoIHJlcXVpcmVkIGFuZCBoYXNNYW55JywgKCkgPT4ge1xuICAgICAgb3B0aW9ucy5oYXNNYW55ID0gdHJ1ZVxuICAgICAgY29uc3QgcmVzdWx0ID0gc2VsZWN0KFsnJ10sIG9wdGlvbnNSZXF1aXJlZClcbiAgICAgIGV4cGVjdChyZXN1bHQpLm5vdC50b1N0cmljdEVxdWFsKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHByZXZlbnQgbnVsbCBpbnB1dCB3aXRoIHJlcXVpcmVkIGFuZCBoYXNNYW55JywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gbnVsbFxuICAgICAgb3B0aW9ucy5oYXNNYW55ID0gdHJ1ZVxuICAgICAgY29uc3QgcmVzdWx0ID0gc2VsZWN0KHZhbCwgb3B0aW9uc1JlcXVpcmVkKVxuICAgICAgZXhwZWN0KHJlc3VsdCkubm90LnRvU3RyaWN0RXF1YWwodHJ1ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgYWxsb3cgdmFsaWQgaW5wdXQgd2l0aCBvcHRpb24gb2JqZWN0cycsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9ICdvbmUnXG4gICAgICBvcHRpb25zLmhhc01hbnkgPSBmYWxzZVxuICAgICAgY29uc3QgcmVzdWx0ID0gc2VsZWN0KHZhbCwgb3B0aW9uc1JlcXVpcmVkKVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9TdHJpY3RFcXVhbCh0cnVlKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCBwcmV2ZW50IGludmFsaWQgaW5wdXQgd2l0aCBvcHRpb24gb2JqZWN0cycsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9ICdiYWQnXG4gICAgICBvcHRpb25zLmhhc01hbnkgPSBmYWxzZVxuICAgICAgY29uc3QgcmVzdWx0ID0gc2VsZWN0KHZhbCwgb3B0aW9uc1JlcXVpcmVkKVxuICAgICAgZXhwZWN0KHJlc3VsdCkubm90LnRvU3RyaWN0RXF1YWwodHJ1ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgYWxsb3cgZW1wdHkgc3RyaW5nIGlucHV0IHdpdGggb3B0aW9uIG9iamVjdCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9ICcnXG4gICAgICBjb25zdCByZXN1bHQgPSBzZWxlY3QodmFsLCBvcHRpb25zV2l0aEVtcHR5U3RyaW5nKVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9TdHJpY3RFcXVhbCh0cnVlKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCBhbGxvdyBlbXB0eSBzdHJpbmcgaW5wdXQgd2l0aCBvcHRpb24gb2JqZWN0IGFuZCByZXF1aXJlZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9ICcnXG4gICAgICBvcHRpb25zV2l0aEVtcHR5U3RyaW5nLnJlcXVpcmVkID0gdHJ1ZVxuICAgICAgY29uc3QgcmVzdWx0ID0gc2VsZWN0KHZhbCwgb3B0aW9uc1dpdGhFbXB0eVN0cmluZylcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvU3RyaWN0RXF1YWwodHJ1ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgYWxsb3cgdmFsaWQgaW5wdXQgd2l0aCBoYXNNYW55JywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gWydvbmUnLCAndHdvJ11cbiAgICAgIGNvbnN0IHJlc3VsdCA9IHNlbGVjdCh2YWwsIHNlbGVjdE9wdGlvbnMpXG4gICAgICBleHBlY3QocmVzdWx0KS50b1N0cmljdEVxdWFsKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHByZXZlbnQgaW52YWxpZCBpbnB1dCB3aXRoIGhhc01hbnknLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSBbJ29uZScsICdiYWQnXVxuICAgICAgY29uc3QgcmVzdWx0ID0gc2VsZWN0KHZhbCwgc2VsZWN0T3B0aW9ucylcbiAgICAgIGV4cGVjdChyZXN1bHQpLm5vdC50b1N0cmljdEVxdWFsKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIGFsbG93IHZhbGlkIGlucHV0IHdpdGggaGFzTWFueSBvcHRpb24gb2JqZWN0cycsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9IFsnb25lJywgJ3RocmVlJ11cbiAgICAgIG9wdGlvbnNSZXF1aXJlZC5oYXNNYW55ID0gdHJ1ZVxuICAgICAgY29uc3QgcmVzdWx0ID0gc2VsZWN0KHZhbCwgb3B0aW9uc1JlcXVpcmVkKVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9TdHJpY3RFcXVhbCh0cnVlKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCBwcmV2ZW50IGludmFsaWQgaW5wdXQgd2l0aCBoYXNNYW55IG9wdGlvbiBvYmplY3RzJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gWyd0aHJlZScsICdiYWQnXVxuICAgICAgb3B0aW9uc1JlcXVpcmVkLmhhc01hbnkgPSB0cnVlXG4gICAgICBjb25zdCByZXN1bHQgPSBzZWxlY3QodmFsLCBvcHRpb25zUmVxdWlyZWQpXG4gICAgICBleHBlY3QocmVzdWx0KS5ub3QudG9TdHJpY3RFcXVhbCh0cnVlKVxuICAgIH0pXG4gIH0pXG4gIGRlc2NyaWJlKCdudW1iZXInLCAoKSA9PiB7XG4gICAgY29uc3QgbnVtYmVyT3B0aW9ucyA9IHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBuYW1lOiAndGVzdCcsXG4gICAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICB9XG4gICAgaXQoJ3Nob3VsZCB2YWxpZGF0ZScsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9IDFcbiAgICAgIGNvbnN0IHJlc3VsdCA9IG51bWJlcih2YWwsIG51bWJlck9wdGlvbnMpXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHZhbGlkYXRlIDAnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSAwXG4gICAgICBjb25zdCByZXN1bHQgPSBudW1iZXIodmFsLCB7IC4uLm51bWJlck9wdGlvbnMsIHJlcXVpcmVkOiB0cnVlIH0pXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHZhbGlkYXRlIDInLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSAxLjVcbiAgICAgIGNvbnN0IHJlc3VsdCA9IG51bWJlcih2YWwsIG51bWJlck9wdGlvbnMpXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHNob3cgaW52YWxpZCBudW1iZXIgbWVzc2FnZScsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9ICd0ZXN0J1xuICAgICAgY29uc3QgcmVzdWx0ID0gbnVtYmVyKHZhbCwgeyAuLi5udW1iZXJPcHRpb25zIH0pXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKCd2YWxpZGF0aW9uOmVudGVyTnVtYmVyJylcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgaGFuZGxlIGVtcHR5IHZhbHVlJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gJydcbiAgICAgIGNvbnN0IHJlc3VsdCA9IG51bWJlcih2YWwsIHsgLi4ubnVtYmVyT3B0aW9ucyB9KVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZSh0cnVlKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCBoYW5kbGUgcmVxdWlyZWQgdmFsdWUnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSAnJ1xuICAgICAgY29uc3QgcmVzdWx0ID0gbnVtYmVyKHZhbCwgeyAuLi5udW1iZXJPcHRpb25zLCByZXF1aXJlZDogdHJ1ZSB9KVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZSgndmFsaWRhdGlvbjpyZXF1aXJlZCcpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHZhbGlkYXRlIG1pblZhbHVlJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gMi40XG4gICAgICBjb25zdCByZXN1bHQgPSBudW1iZXIodmFsLCB7IC4uLm51bWJlck9wdGlvbnMsIG1pbjogMi41IH0pXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKCd2YWxpZGF0aW9uOmxlc3NUaGFuTWluJylcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUgbWF4VmFsdWUnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSAxLjI1XG4gICAgICBjb25zdCByZXN1bHQgPSBudW1iZXIodmFsLCB7IC4uLm51bWJlck9wdGlvbnMsIG1heDogMSB9KVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZSgndmFsaWRhdGlvbjpncmVhdGVyVGhhbk1heCcpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHZhbGlkYXRlIGFuIGFycmF5IG9mIG51bWJlcnMnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSBbMS4yNSwgMi41XVxuICAgICAgY29uc3QgcmVzdWx0ID0gbnVtYmVyKHZhbCwgeyAuLi5udW1iZXJPcHRpb25zLCBoYXNNYW55OiB0cnVlIH0pXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHZhbGlkYXRlIGFuIGFycmF5IG9mIG51bWJlcnMgdXNpbmcgbWluJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gWzEuMjUsIDIuNV1cbiAgICAgIGNvbnN0IHJlc3VsdCA9IG51bWJlcih2YWwsIHsgLi4ubnVtYmVyT3B0aW9ucywgaGFzTWFueTogdHJ1ZSwgbWluOiAzIH0pXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKCd2YWxpZGF0aW9uOmxlc3NUaGFuTWluJylcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUgYW4gYXJyYXkgb2YgbnVtYmVycyB1c2luZyBtYXgnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSBbMS4yNSwgMi41XVxuICAgICAgY29uc3QgcmVzdWx0ID0gbnVtYmVyKHZhbCwgeyAuLi5udW1iZXJPcHRpb25zLCBoYXNNYW55OiB0cnVlLCBtYXg6IDEgfSlcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmUoJ3ZhbGlkYXRpb246Z3JlYXRlclRoYW5NYXgnKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSBhbiBhcnJheSBvZiBudW1iZXJzIHVzaW5nIG1pblJvd3MnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSBbMS4yNSwgMi41XVxuICAgICAgY29uc3QgcmVzdWx0ID0gbnVtYmVyKHZhbCwgeyAuLi5udW1iZXJPcHRpb25zLCBoYXNNYW55OiB0cnVlLCBtaW5Sb3dzOiA0IH0pXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKCd2YWxpZGF0aW9uOnJlcXVpcmVzQXRMZWFzdCcpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHZhbGlkYXRlIGFuIGFycmF5IG9mIG51bWJlcnMgdXNpbmcgbWF4Um93cycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9IFsxLjI1LCAyLjUsIDMuNV1cbiAgICAgIGNvbnN0IHJlc3VsdCA9IG51bWJlcih2YWwsIHsgLi4ubnVtYmVyT3B0aW9ucywgaGFzTWFueTogdHJ1ZSwgbWF4Um93czogMiB9KVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZSgndmFsaWRhdGlvbjpyZXF1aXJlc05vTW9yZVRoYW4nKVxuICAgIH0pXG4gIH0pXG59KVxuIl0sIm5hbWVzIjpbInQiLCJqZXN0IiwiZm4iLCJzdHJpbmciLCJvcHRpb25zIiwiZGF0YSIsInVuZGVmaW5lZCIsIm9wZXJhdGlvbiIsInNpYmxpbmdEYXRhIiwiZGVzY3JpYmUiLCJpdCIsInZhbCIsInJlc3VsdCIsInRleHQiLCJleHBlY3QiLCJ0b0JlIiwicmVxdWlyZWQiLCJtYXhMZW5ndGgiLCJtaW5MZW5ndGgiLCJoYXNNYW55IiwiZmllbGQiLCJuYW1lIiwidHlwZSIsInRleHRhcmVhIiwicGFzc3dvcmRPcHRpb25zIiwicGFzc3dvcmQiLCJwb2ludE9wdGlvbnMiLCJwb2ludCIsIm5vdCIsInJlbGF0aW9uQ29sbGVjdGlvbiIsImZpZWxkcyIsInNsdWciLCJyZWxhdGlvbnNoaXBPcHRpb25zIiwiY29uZmlnIiwiY29sbGVjdGlvbnMiLCJwYXlsb2FkIiwicmVsYXRpb24iLCJyZWxhdGlvblRvIiwicmVsYXRpb25zaGlwIiwibWluT3B0aW9ucyIsIm1pblJvd3MiLCJhbGxvd2VkIiwidG9TdHJpY3RFcXVhbCIsIm1heE9wdGlvbnMiLCJtYXhSb3dzIiwic2VsZWN0T3B0aW9ucyIsIm9wdGlvbnNSZXF1aXJlZCIsImxhYmVsIiwidmFsdWUiLCJvcHRpb25zV2l0aEVtcHR5U3RyaW5nIiwic2VsZWN0IiwibnVtYmVyT3B0aW9ucyIsIm51bWJlciIsIm1pbiIsIm1heCJdLCJtYXBwaW5ncyI6Ijs7Ozs2QkFFOEU7QUFFOUUsTUFBTUEsSUFBSUMsS0FBS0MsRUFBRSxDQUFDLENBQUNDLFNBQVdBO0FBRTlCLElBQUlDLFVBQTBDO0lBQzVDQyxNQUFNQztJQUNOQyxXQUFXO0lBQ1hDLGFBQWFGO0lBQ2JOO0FBQ0Y7QUFFQVMsU0FBUyxxQkFBcUI7SUFDNUJBLFNBQVMsUUFBUTtR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
648
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWVsZHMvdmFsaWRhdGlvbnMuc3BlYy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFZhbGlkYXRlT3B0aW9ucyB9IGZyb20gJy4vY29uZmlnL3R5cGVzJ1xuXG5pbXBvcnQgeyBudW1iZXIsIHBhc3N3b3JkLCBwb2ludCwgcmVsYXRpb25zaGlwLCBzZWxlY3QsIHRleHQsIHRleHRhcmVhIH0gZnJvbSAnLi92YWxpZGF0aW9ucydcblxuY29uc3QgdCA9IGplc3QuZm4oKHN0cmluZykgPT4gc3RyaW5nKVxuXG5sZXQgb3B0aW9uczogVmFsaWRhdGVPcHRpb25zPGFueSwgYW55LCBhbnk+ID0ge1xuICBkYXRhOiB1bmRlZmluZWQsXG4gIG9wZXJhdGlvbjogJ2NyZWF0ZScsXG4gIHNpYmxpbmdEYXRhOiB1bmRlZmluZWQsXG4gIHQsXG59XG5cbmRlc2NyaWJlKCdGaWVsZCBWYWxpZGF0aW9ucycsICgpID0+IHtcbiAgZGVzY3JpYmUoJ3RleHQnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCB2YWxpZGF0ZScsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9ICd0ZXN0J1xuICAgICAgY29uc3QgcmVzdWx0ID0gdGV4dCh2YWwsIG9wdGlvbnMpXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHNob3cgcmVxdWlyZWQgbWVzc2FnZScsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9IHVuZGVmaW5lZFxuICAgICAgY29uc3QgcmVzdWx0ID0gdGV4dCh2YWwsIHsgLi4ub3B0aW9ucywgcmVxdWlyZWQ6IHRydWUgfSlcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmUoJ3ZhbGlkYXRpb246cmVxdWlyZWQnKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCBoYW5kbGUgdW5kZWZpbmVkJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gdW5kZWZpbmVkXG4gICAgICBjb25zdCByZXN1bHQgPSB0ZXh0KHZhbCwgb3B0aW9ucylcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmUodHJ1ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUgbWF4TGVuZ3RoJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gJ3Rvb2xvbmcnXG4gICAgICBjb25zdCByZXN1bHQgPSB0ZXh0KHZhbCwgeyAuLi5vcHRpb25zLCBtYXhMZW5ndGg6IDUgfSlcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmUoJ3ZhbGlkYXRpb246c2hvcnRlclRoYW5NYXgnKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSBtaW5MZW5ndGgnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSAnc2hvcnQnXG4gICAgICBjb25zdCByZXN1bHQgPSB0ZXh0KHZhbCwgeyAuLi5vcHRpb25zLCBtaW5MZW5ndGg6IDEwIH0pXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKCd2YWxpZGF0aW9uOmxvbmdlclRoYW5NaW4nKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSBtYXhMZW5ndGggd2l0aCBubyB2YWx1ZScsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9IHVuZGVmaW5lZFxuICAgICAgY29uc3QgcmVzdWx0ID0gdGV4dCh2YWwsIHsgLi4ub3B0aW9ucywgbWF4TGVuZ3RoOiA1IH0pXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHZhbGlkYXRlIG1pbkxlbmd0aCB3aXRoIG5vIHZhbHVlJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gdW5kZWZpbmVkXG4gICAgICBjb25zdCByZXN1bHQgPSB0ZXh0KHZhbCwgeyAuLi5vcHRpb25zLCBtaW5MZW5ndGg6IDEwIH0pXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHZhbGlkYXRlIGFuIGFycmF5IG9mIHRleHRzJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gWyd0ZXN0J11cbiAgICAgIGNvbnN0IHJlc3VsdCA9IHRleHQodmFsLCB7IC4uLm9wdGlvbnMsIGhhc01hbnk6IHRydWUgfSlcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmUodHJ1ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgaGFuZGxlIHJlcXVpcmVkIGFycmF5IG9mIHRleHRzJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gWyd0ZXN0J11cbiAgICAgIGNvbnN0IHJlc3VsdCA9IHRleHQodmFsLCB7IC4uLm9wdGlvbnMsIGhhc01hbnk6IHRydWUsIHJlcXVpcmVkOiB0cnVlIH0pXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKHRydWUpXG4gICAgfSlcbiAgfSlcblxuICBkZXNjcmliZSgndGV4dGFyZWEnLCAoKSA9PiB7XG4gICAgb3B0aW9ucyA9IHsgLi4ub3B0aW9ucywgZmllbGQ6IHsgbmFtZTogJ3Rlc3QnLCB0eXBlOiAndGV4dGFyZWEnIH0gfVxuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSAndGVzdCdcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHRleHRhcmVhKHZhbCwgb3B0aW9ucylcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmUodHJ1ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgc2hvdyByZXF1aXJlZCBtZXNzYWdlJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gdW5kZWZpbmVkXG4gICAgICBjb25zdCByZXN1bHQgPSB0ZXh0YXJlYSh2YWwsIHsgLi4ub3B0aW9ucywgcmVxdWlyZWQ6IHRydWUgfSlcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmUoJ3ZhbGlkYXRpb246cmVxdWlyZWQnKVxuICAgIH0pXG5cbiAgICBpdCgnc2hvdWxkIGhhbmRsZSB1bmRlZmluZWQnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSB1bmRlZmluZWRcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHRleHRhcmVhKHZhbCwgb3B0aW9ucylcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmUodHJ1ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUgbWF4TGVuZ3RoJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gJ3Rvb2xvbmcnXG4gICAgICBjb25zdCByZXN1bHQgPSB0ZXh0YXJlYSh2YWwsIHsgLi4ub3B0aW9ucywgbWF4TGVuZ3RoOiA1IH0pXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKCd2YWxpZGF0aW9uOnNob3J0ZXJUaGFuTWF4JylcbiAgICB9KVxuXG4gICAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSBtaW5MZW5ndGgnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSAnc2hvcnQnXG4gICAgICBjb25zdCByZXN1bHQgPSB0ZXh0YXJlYSh2YWwsIHsgLi4ub3B0aW9ucywgbWluTGVuZ3RoOiAxMCB9KVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZSgndmFsaWRhdGlvbjpsb25nZXJUaGFuTWluJylcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUgbWF4TGVuZ3RoIHdpdGggbm8gdmFsdWUnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSB1bmRlZmluZWRcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHRleHRhcmVhKHZhbCwgeyAuLi5vcHRpb25zLCBtYXhMZW5ndGg6IDUgfSlcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmUodHJ1ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUgbWluTGVuZ3RoIHdpdGggbm8gdmFsdWUnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSB1bmRlZmluZWRcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHRleHRhcmVhKHZhbCwgeyAuLi5vcHRpb25zLCBtaW5MZW5ndGg6IDEwIH0pXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKHRydWUpXG4gICAgfSlcbiAgfSlcblxuICBkZXNjcmliZSgncGFzc3dvcmQnLCAoKSA9PiB7XG4gICAgY29uc3QgcGFzc3dvcmRPcHRpb25zID0ge1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIG5hbWU6ICd0ZXN0JyxcbiAgICAgIHR5cGU6ICdwYXNzd29yZCcsXG4gICAgfVxuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSAndGVzdCdcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHBhc3N3b3JkKHZhbCwgcGFzc3dvcmRPcHRpb25zKVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZSh0cnVlKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCBzaG93IHJlcXVpcmVkIG1lc3NhZ2UnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSB1bmRlZmluZWRcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHBhc3N3b3JkKHZhbCwgeyAuLi5wYXNzd29yZE9wdGlvbnMsIHJlcXVpcmVkOiB0cnVlIH0pXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKCd2YWxpZGF0aW9uOnJlcXVpcmVkJylcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgaGFuZGxlIHVuZGVmaW5lZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9IHVuZGVmaW5lZFxuICAgICAgY29uc3QgcmVzdWx0ID0gcGFzc3dvcmQodmFsLCBwYXNzd29yZE9wdGlvbnMpXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHZhbGlkYXRlIG1heExlbmd0aCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9ICd0b29sb25nJ1xuICAgICAgY29uc3QgcmVzdWx0ID0gcGFzc3dvcmQodmFsLCB7IC4uLnBhc3N3b3JkT3B0aW9ucywgbWF4TGVuZ3RoOiA1IH0pXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKCd2YWxpZGF0aW9uOnNob3J0ZXJUaGFuTWF4JylcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUgbWluTGVuZ3RoJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gJ3Nob3J0J1xuICAgICAgY29uc3QgcmVzdWx0ID0gcGFzc3dvcmQodmFsLCB7IC4uLnBhc3N3b3JkT3B0aW9ucywgbWluTGVuZ3RoOiAxMCB9KVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZSgndmFsaWRhdGlvbjpsb25nZXJUaGFuTWluJylcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUgbWF4TGVuZ3RoIHdpdGggbm8gdmFsdWUnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSB1bmRlZmluZWRcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHBhc3N3b3JkKHZhbCwgeyAuLi5wYXNzd29yZE9wdGlvbnMsIG1heExlbmd0aDogNSB9KVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZSh0cnVlKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSBtaW5MZW5ndGggd2l0aCBubyB2YWx1ZScsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9IHVuZGVmaW5lZFxuICAgICAgY29uc3QgcmVzdWx0ID0gcGFzc3dvcmQodmFsLCB7IC4uLnBhc3N3b3JkT3B0aW9ucywgbWluTGVuZ3RoOiAxMCB9KVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZSh0cnVlKVxuICAgIH0pXG4gIH0pXG5cbiAgZGVzY3JpYmUoJ3BvaW50JywgKCkgPT4ge1xuICAgIGNvbnN0IHBvaW50T3B0aW9ucyA9IHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBuYW1lOiAncG9pbnQnLFxuICAgICAgdHlwZTogJ3BvaW50JyxcbiAgICB9XG4gICAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSBudW1iZXJzJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gWycwLjEnLCAnMC4yJ11cbiAgICAgIGNvbnN0IHJlc3VsdCA9IHBvaW50KHZhbCwgcG9pbnRPcHRpb25zKVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZSh0cnVlKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSBzdHJpbmdzIHRoYXQgY291bGQgYmUgbnVtYmVycycsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9IFsnMC4xJywgJzAuMiddXG4gICAgICBjb25zdCByZXN1bHQgPSBwb2ludCh2YWwsIHBvaW50T3B0aW9ucylcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmUodHJ1ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgc2hvdyByZXF1aXJlZCBtZXNzYWdlIHdoZW4gdW5kZWZpbmVkJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gdW5kZWZpbmVkXG4gICAgICBjb25zdCByZXN1bHQgPSBwb2ludCh2YWwsIHsgLi4ucG9pbnRPcHRpb25zLCByZXF1aXJlZDogdHJ1ZSB9KVxuICAgICAgZXhwZWN0KHJlc3VsdCkubm90LnRvQmUodHJ1ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgc2hvdyByZXF1aXJlZCBtZXNzYWdlIHdoZW4gYXJyYXknLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSBbXVxuICAgICAgY29uc3QgcmVzdWx0ID0gcG9pbnQodmFsLCB7IC4uLnBvaW50T3B0aW9ucywgcmVxdWlyZWQ6IHRydWUgfSlcbiAgICAgIGV4cGVjdChyZXN1bHQpLm5vdC50b0JlKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHNob3cgcmVxdWlyZWQgbWVzc2FnZSB3aGVuIGFycmF5IG9mIHVuZGVmaW5lZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9IFt1bmRlZmluZWQsIHVuZGVmaW5lZF1cbiAgICAgIGNvbnN0IHJlc3VsdCA9IHBvaW50KHZhbCwgeyAuLi5wb2ludE9wdGlvbnMsIHJlcXVpcmVkOiB0cnVlIH0pXG4gICAgICBleHBlY3QocmVzdWx0KS5ub3QudG9CZSh0cnVlKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCBoYW5kbGUgdW5kZWZpbmVkIG5vdCByZXF1aXJlZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9IHVuZGVmaW5lZFxuICAgICAgY29uc3QgcmVzdWx0ID0gcGFzc3dvcmQodmFsLCBwb2ludE9wdGlvbnMpXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIGhhbmRsZSBlbXB0eSBhcnJheSBub3QgcmVxdWlyZWQnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSBbXVxuICAgICAgY29uc3QgcmVzdWx0ID0gcG9pbnQodmFsLCBwb2ludE9wdGlvbnMpXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIGhhbmRsZSBhcnJheSBvZiB1bmRlZmluZWQgbm90IHJlcXVpcmVkJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gW3VuZGVmaW5lZCwgdW5kZWZpbmVkXVxuICAgICAgY29uc3QgcmVzdWx0ID0gcG9pbnQodmFsLCBwb2ludE9wdGlvbnMpXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHByZXZlbnQgdGV4dCBpbnB1dCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9IFsnYmFkJywgJ2lucHV0J11cbiAgICAgIGNvbnN0IHJlc3VsdCA9IHBvaW50KHZhbCwgcG9pbnRPcHRpb25zKVxuICAgICAgZXhwZWN0KHJlc3VsdCkubm90LnRvQmUodHJ1ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgcHJldmVudCBtaXNzaW5nIHZhbHVlJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gWzAuMV1cbiAgICAgIGNvbnN0IHJlc3VsdCA9IHBvaW50KHZhbCwgcG9pbnRPcHRpb25zKVxuICAgICAgZXhwZWN0KHJlc3VsdCkubm90LnRvQmUodHJ1ZSlcbiAgICB9KVxuICB9KVxuXG4gIGRlc2NyaWJlKCdyZWxhdGlvbnNoaXAnLCAoKSA9PiB7XG4gICAgY29uc3QgcmVsYXRpb25Db2xsZWN0aW9uID0ge1xuICAgICAgZmllbGRzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnaWQnLFxuICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBzbHVnOiAncmVsYXRpb24nLFxuICAgIH1cblxuICAgIGNvbnN0IHJlbGF0aW9uc2hpcE9wdGlvbnMgPSB7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgY29uZmlnOiB7XG4gICAgICAgIGNvbGxlY3Rpb25zOiBbcmVsYXRpb25Db2xsZWN0aW9uXSxcbiAgICAgIH0sXG4gICAgICBwYXlsb2FkOiB7XG4gICAgICAgIGNvbGxlY3Rpb25zOiB7XG4gICAgICAgICAgcmVsYXRpb246IHtcbiAgICAgICAgICAgIGNvbmZpZzogcmVsYXRpb25Db2xsZWN0aW9uLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgcmVsYXRpb25UbzogJ3JlbGF0aW9uJyxcbiAgICB9XG4gICAgaXQoJ3Nob3VsZCBoYW5kbGUgcmVxdWlyZWQnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSB1bmRlZmluZWRcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlbGF0aW9uc2hpcCh2YWwsIHsgLi4ucmVsYXRpb25zaGlwT3B0aW9ucywgcmVxdWlyZWQ6IHRydWUgfSlcbiAgICAgIGV4cGVjdChyZXN1bHQpLm5vdC50b0JlKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIGhhbmRsZSByZXF1aXJlZCB3aXRoIGhhc01hbnknLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSBbXVxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVsYXRpb25zaGlwKHZhbCwge1xuICAgICAgICAuLi5yZWxhdGlvbnNoaXBPcHRpb25zLFxuICAgICAgICBoYXNNYW55OiB0cnVlLFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgIH0pXG4gICAgICBleHBlY3QocmVzdWx0KS5ub3QudG9CZSh0cnVlKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCBlbmZvcmNlIGhhc01hbnkgbWluJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgbWluT3B0aW9ucyA9IHtcbiAgICAgICAgLi4ucmVsYXRpb25zaGlwT3B0aW9ucyxcbiAgICAgICAgaGFzTWFueTogdHJ1ZSxcbiAgICAgICAgbWluUm93czogMixcbiAgICAgIH1cblxuICAgICAgY29uc3QgdmFsID0gWydhJ11cblxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVsYXRpb25zaGlwKHZhbCwgbWluT3B0aW9ucylcbiAgICAgIGV4cGVjdChyZXN1bHQpLm5vdC50b0JlKHRydWUpXG5cbiAgICAgIGNvbnN0IGFsbG93ZWQgPSBhd2FpdCByZWxhdGlvbnNoaXAoWydhJywgJ2InXSwgbWluT3B0aW9ucylcbiAgICAgIGV4cGVjdChhbGxvd2VkKS50b1N0cmljdEVxdWFsKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIGVuZm9yY2UgaGFzTWFueSBtYXgnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBtYXhPcHRpb25zID0ge1xuICAgICAgICAuLi5yZWxhdGlvbnNoaXBPcHRpb25zLFxuICAgICAgICBoYXNNYW55OiB0cnVlLFxuICAgICAgICBtYXhSb3dzOiAyLFxuICAgICAgfVxuICAgICAgbGV0IHZhbCA9IFsnYScsICdiJywgJ2MnXVxuXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZWxhdGlvbnNoaXAodmFsLCBtYXhPcHRpb25zKVxuICAgICAgZXhwZWN0KHJlc3VsdCkubm90LnRvQmUodHJ1ZSlcblxuICAgICAgdmFsID0gWydhJ11cbiAgICAgIGNvbnN0IGFsbG93ZWQgPSBhd2FpdCByZWxhdGlvbnNoaXAodmFsLCBtYXhPcHRpb25zKVxuICAgICAgZXhwZWN0KGFsbG93ZWQpLnRvU3RyaWN0RXF1YWwodHJ1ZSlcbiAgICB9KVxuICB9KVxuXG4gIGRlc2NyaWJlKCdzZWxlY3QnLCAoKSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0T3B0aW9ucyA9IHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBvcHRpb25zOiBbJ29uZScsICd0d28nLCAndGhyZWUnXSxcbiAgICAgIHR5cGU6ICdzZWxlY3QnLFxuICAgIH1cbiAgICBjb25zdCBvcHRpb25zUmVxdWlyZWQgPSB7XG4gICAgICAuLi5zZWxlY3RPcHRpb25zLFxuICAgICAgb3B0aW9uczogW1xuICAgICAgICB7XG4gICAgICAgICAgbGFiZWw6ICdPbmUnLFxuICAgICAgICAgIHZhbHVlOiAnb25lJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGxhYmVsOiAndHdvJyxcbiAgICAgICAgICB2YWx1ZTogJ3R3bycsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBsYWJlbDogJ3RocmVlJyxcbiAgICAgICAgICB2YWx1ZTogJ3RocmVlJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICB9XG4gICAgY29uc3Qgb3B0aW9uc1dpdGhFbXB0eVN0cmluZyA9IHtcbiAgICAgIC4uLnNlbGVjdE9wdGlvbnMsXG4gICAgICBvcHRpb25zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBsYWJlbDogJ05vbmUnLFxuICAgICAgICAgIHZhbHVlOiAnJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGxhYmVsOiAnT3B0aW9uJyxcbiAgICAgICAgICB2YWx1ZTogJ29wdGlvbicsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH1cbiAgICBpdCgnc2hvdWxkIGFsbG93IHZhbGlkIGlucHV0JywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gJ29uZSdcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHNlbGVjdCh2YWwsIHNlbGVjdE9wdGlvbnMpXG4gICAgICBleHBlY3QocmVzdWx0KS50b1N0cmljdEVxdWFsKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHByZXZlbnQgaW52YWxpZCBpbnB1dCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9ICdiYWQnXG4gICAgICBjb25zdCByZXN1bHQgPSBzZWxlY3QodmFsLCBzZWxlY3RPcHRpb25zKVxuICAgICAgZXhwZWN0KHJlc3VsdCkubm90LnRvU3RyaWN0RXF1YWwodHJ1ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgYWxsb3cgbnVsbCBpbnB1dCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9IG51bGxcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHNlbGVjdCh2YWwsIHNlbGVjdE9wdGlvbnMpXG4gICAgICBleHBlY3QocmVzdWx0KS50b1N0cmljdEVxdWFsKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIGFsbG93IHVuZGVmaW5lZCBpbnB1dCcsICgpID0+IHtcbiAgICAgIGxldCB2YWxcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHNlbGVjdCh2YWwsIHNlbGVjdE9wdGlvbnMpXG4gICAgICBleHBlY3QocmVzdWx0KS50b1N0cmljdEVxdWFsKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHByZXZlbnQgZW1wdHkgc3RyaW5nIGlucHV0JywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gJydcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHNlbGVjdCh2YWwsIHNlbGVjdE9wdGlvbnMpXG4gICAgICBleHBlY3QocmVzdWx0KS5ub3QudG9TdHJpY3RFcXVhbCh0cnVlKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCBwcmV2ZW50IHVuZGVmaW5lZCBpbnB1dCB3aXRoIHJlcXVpcmVkJywgKCkgPT4ge1xuICAgICAgbGV0IHZhbFxuICAgICAgY29uc3QgcmVzdWx0ID0gc2VsZWN0KHZhbCwgb3B0aW9uc1JlcXVpcmVkKVxuICAgICAgZXhwZWN0KHJlc3VsdCkubm90LnRvU3RyaWN0RXF1YWwodHJ1ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgcHJldmVudCBlbXB0eSBzdHJpbmcgaW5wdXQgd2l0aCByZXF1aXJlZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHNlbGVjdCgnJywgb3B0aW9uc1JlcXVpcmVkKVxuICAgICAgZXhwZWN0KHJlc3VsdCkubm90LnRvU3RyaWN0RXF1YWwodHJ1ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgcHJldmVudCB1bmRlZmluZWQgaW5wdXQgd2l0aCByZXF1aXJlZCBhbmQgaGFzTWFueScsICgpID0+IHtcbiAgICAgIGxldCB2YWxcbiAgICAgIG9wdGlvbnMuaGFzTWFueSA9IHRydWVcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHNlbGVjdCh2YWwsIG9wdGlvbnNSZXF1aXJlZClcbiAgICAgIGV4cGVjdChyZXN1bHQpLm5vdC50b1N0cmljdEVxdWFsKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHByZXZlbnQgZW1wdHkgYXJyYXkgaW5wdXQgd2l0aCByZXF1aXJlZCBhbmQgaGFzTWFueScsICgpID0+IHtcbiAgICAgIG9wdGlvbnNSZXF1aXJlZC5oYXNNYW55ID0gdHJ1ZVxuICAgICAgY29uc3QgcmVzdWx0ID0gc2VsZWN0KFtdLCBvcHRpb25zUmVxdWlyZWQpXG4gICAgICBleHBlY3QocmVzdWx0KS5ub3QudG9TdHJpY3RFcXVhbCh0cnVlKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCBwcmV2ZW50IGVtcHR5IHN0cmluZyBhcnJheSBpbnB1dCB3aXRoIHJlcXVpcmVkIGFuZCBoYXNNYW55JywgKCkgPT4ge1xuICAgICAgb3B0aW9ucy5oYXNNYW55ID0gdHJ1ZVxuICAgICAgY29uc3QgcmVzdWx0ID0gc2VsZWN0KFsnJ10sIG9wdGlvbnNSZXF1aXJlZClcbiAgICAgIGV4cGVjdChyZXN1bHQpLm5vdC50b1N0cmljdEVxdWFsKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHByZXZlbnQgbnVsbCBpbnB1dCB3aXRoIHJlcXVpcmVkIGFuZCBoYXNNYW55JywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gbnVsbFxuICAgICAgb3B0aW9ucy5oYXNNYW55ID0gdHJ1ZVxuICAgICAgY29uc3QgcmVzdWx0ID0gc2VsZWN0KHZhbCwgb3B0aW9uc1JlcXVpcmVkKVxuICAgICAgZXhwZWN0KHJlc3VsdCkubm90LnRvU3RyaWN0RXF1YWwodHJ1ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgYWxsb3cgdmFsaWQgaW5wdXQgd2l0aCBvcHRpb24gb2JqZWN0cycsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9ICdvbmUnXG4gICAgICBvcHRpb25zLmhhc01hbnkgPSBmYWxzZVxuICAgICAgY29uc3QgcmVzdWx0ID0gc2VsZWN0KHZhbCwgb3B0aW9uc1JlcXVpcmVkKVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9TdHJpY3RFcXVhbCh0cnVlKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCBwcmV2ZW50IGludmFsaWQgaW5wdXQgd2l0aCBvcHRpb24gb2JqZWN0cycsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9ICdiYWQnXG4gICAgICBvcHRpb25zLmhhc01hbnkgPSBmYWxzZVxuICAgICAgY29uc3QgcmVzdWx0ID0gc2VsZWN0KHZhbCwgb3B0aW9uc1JlcXVpcmVkKVxuICAgICAgZXhwZWN0KHJlc3VsdCkubm90LnRvU3RyaWN0RXF1YWwodHJ1ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgYWxsb3cgZW1wdHkgc3RyaW5nIGlucHV0IHdpdGggb3B0aW9uIG9iamVjdCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9ICcnXG4gICAgICBjb25zdCByZXN1bHQgPSBzZWxlY3QodmFsLCBvcHRpb25zV2l0aEVtcHR5U3RyaW5nKVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9TdHJpY3RFcXVhbCh0cnVlKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCBhbGxvdyBlbXB0eSBzdHJpbmcgaW5wdXQgd2l0aCBvcHRpb24gb2JqZWN0IGFuZCByZXF1aXJlZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9ICcnXG4gICAgICBvcHRpb25zV2l0aEVtcHR5U3RyaW5nLnJlcXVpcmVkID0gdHJ1ZVxuICAgICAgY29uc3QgcmVzdWx0ID0gc2VsZWN0KHZhbCwgb3B0aW9uc1dpdGhFbXB0eVN0cmluZylcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvU3RyaWN0RXF1YWwodHJ1ZSlcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgYWxsb3cgdmFsaWQgaW5wdXQgd2l0aCBoYXNNYW55JywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gWydvbmUnLCAndHdvJ11cbiAgICAgIGNvbnN0IHJlc3VsdCA9IHNlbGVjdCh2YWwsIHNlbGVjdE9wdGlvbnMpXG4gICAgICBleHBlY3QocmVzdWx0KS50b1N0cmljdEVxdWFsKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHByZXZlbnQgaW52YWxpZCBpbnB1dCB3aXRoIGhhc01hbnknLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSBbJ29uZScsICdiYWQnXVxuICAgICAgY29uc3QgcmVzdWx0ID0gc2VsZWN0KHZhbCwgc2VsZWN0T3B0aW9ucylcbiAgICAgIGV4cGVjdChyZXN1bHQpLm5vdC50b1N0cmljdEVxdWFsKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIGFsbG93IHZhbGlkIGlucHV0IHdpdGggaGFzTWFueSBvcHRpb24gb2JqZWN0cycsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9IFsnb25lJywgJ3RocmVlJ11cbiAgICAgIG9wdGlvbnNSZXF1aXJlZC5oYXNNYW55ID0gdHJ1ZVxuICAgICAgY29uc3QgcmVzdWx0ID0gc2VsZWN0KHZhbCwgb3B0aW9uc1JlcXVpcmVkKVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9TdHJpY3RFcXVhbCh0cnVlKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCBwcmV2ZW50IGludmFsaWQgaW5wdXQgd2l0aCBoYXNNYW55IG9wdGlvbiBvYmplY3RzJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gWyd0aHJlZScsICdiYWQnXVxuICAgICAgb3B0aW9uc1JlcXVpcmVkLmhhc01hbnkgPSB0cnVlXG4gICAgICBjb25zdCByZXN1bHQgPSBzZWxlY3QodmFsLCBvcHRpb25zUmVxdWlyZWQpXG4gICAgICBleHBlY3QocmVzdWx0KS5ub3QudG9TdHJpY3RFcXVhbCh0cnVlKVxuICAgIH0pXG4gIH0pXG4gIGRlc2NyaWJlKCdudW1iZXInLCAoKSA9PiB7XG4gICAgY29uc3QgbnVtYmVyT3B0aW9ucyA9IHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBuYW1lOiAndGVzdCcsXG4gICAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICB9XG4gICAgaXQoJ3Nob3VsZCB2YWxpZGF0ZScsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9IDFcbiAgICAgIGNvbnN0IHJlc3VsdCA9IG51bWJlcih2YWwsIG51bWJlck9wdGlvbnMpXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHZhbGlkYXRlIDAnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSAwXG4gICAgICBjb25zdCByZXN1bHQgPSBudW1iZXIodmFsLCB7IC4uLm51bWJlck9wdGlvbnMsIHJlcXVpcmVkOiB0cnVlIH0pXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHZhbGlkYXRlIDInLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSAxLjVcbiAgICAgIGNvbnN0IHJlc3VsdCA9IG51bWJlcih2YWwsIG51bWJlck9wdGlvbnMpXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHNob3cgaW52YWxpZCBudW1iZXIgbWVzc2FnZScsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9ICd0ZXN0J1xuICAgICAgY29uc3QgcmVzdWx0ID0gbnVtYmVyKHZhbCwgeyAuLi5udW1iZXJPcHRpb25zIH0pXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKCd2YWxpZGF0aW9uOmVudGVyTnVtYmVyJylcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgaGFuZGxlIGVtcHR5IHZhbHVlJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gJydcbiAgICAgIGNvbnN0IHJlc3VsdCA9IG51bWJlcih2YWwsIHsgLi4ubnVtYmVyT3B0aW9ucyB9KVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZSh0cnVlKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCBoYW5kbGUgcmVxdWlyZWQgdmFsdWUnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSAnJ1xuICAgICAgY29uc3QgcmVzdWx0ID0gbnVtYmVyKHZhbCwgeyAuLi5udW1iZXJPcHRpb25zLCByZXF1aXJlZDogdHJ1ZSB9KVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZSgndmFsaWRhdGlvbjpyZXF1aXJlZCcpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHZhbGlkYXRlIG1pblZhbHVlJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gMi40XG4gICAgICBjb25zdCByZXN1bHQgPSBudW1iZXIodmFsLCB7IC4uLm51bWJlck9wdGlvbnMsIG1pbjogMi41IH0pXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKCd2YWxpZGF0aW9uOmxlc3NUaGFuTWluJylcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUgbWF4VmFsdWUnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSAxLjI1XG4gICAgICBjb25zdCByZXN1bHQgPSBudW1iZXIodmFsLCB7IC4uLm51bWJlck9wdGlvbnMsIG1heDogMSB9KVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZSgndmFsaWRhdGlvbjpncmVhdGVyVGhhbk1heCcpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHZhbGlkYXRlIGFuIGFycmF5IG9mIG51bWJlcnMnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSBbMS4yNSwgMi41XVxuICAgICAgY29uc3QgcmVzdWx0ID0gbnVtYmVyKHZhbCwgeyAuLi5udW1iZXJPcHRpb25zLCBoYXNNYW55OiB0cnVlIH0pXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKHRydWUpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHZhbGlkYXRlIGFuIGFycmF5IG9mIG51bWJlcnMgdXNpbmcgbWluJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsID0gWzEuMjUsIDIuNV1cbiAgICAgIGNvbnN0IHJlc3VsdCA9IG51bWJlcih2YWwsIHsgLi4ubnVtYmVyT3B0aW9ucywgaGFzTWFueTogdHJ1ZSwgbWluOiAzIH0pXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKCd2YWxpZGF0aW9uOmxlc3NUaGFuTWluJylcbiAgICB9KVxuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUgYW4gYXJyYXkgb2YgbnVtYmVycyB1c2luZyBtYXgnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSBbMS4yNSwgMi41XVxuICAgICAgY29uc3QgcmVzdWx0ID0gbnVtYmVyKHZhbCwgeyAuLi5udW1iZXJPcHRpb25zLCBoYXNNYW55OiB0cnVlLCBtYXg6IDEgfSlcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmUoJ3ZhbGlkYXRpb246Z3JlYXRlclRoYW5NYXgnKVxuICAgIH0pXG4gICAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSBhbiBhcnJheSBvZiBudW1iZXJzIHVzaW5nIG1pblJvd3MnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSBbMS4yNSwgMi41XVxuICAgICAgY29uc3QgcmVzdWx0ID0gbnVtYmVyKHZhbCwgeyAuLi5udW1iZXJPcHRpb25zLCBoYXNNYW55OiB0cnVlLCBtaW5Sb3dzOiA0IH0pXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKCd2YWxpZGF0aW9uOnJlcXVpcmVzQXRMZWFzdCcpXG4gICAgfSlcbiAgICBpdCgnc2hvdWxkIHZhbGlkYXRlIGFuIGFycmF5IG9mIG51bWJlcnMgdXNpbmcgbWF4Um93cycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9IFsxLjI1LCAyLjUsIDMuNV1cbiAgICAgIGNvbnN0IHJlc3VsdCA9IG51bWJlcih2YWwsIHsgLi4ubnVtYmVyT3B0aW9ucywgaGFzTWFueTogdHJ1ZSwgbWF4Um93czogMiB9KVxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZSgndmFsaWRhdGlvbjpyZXF1aXJlc05vTW9yZVRoYW4nKVxuICAgIH0pXG4gIH0pXG59KVxuIl0sIm5hbWVzIjpbInQiLCJqZXN0IiwiZm4iLCJzdHJpbmciLCJvcHRpb25zIiwiZGF0YSIsInVuZGVmaW5lZCIsIm9wZXJhdGlvbiIsInNpYmxpbmdEYXRhIiwiZGVzY3JpYmUiLCJpdCIsInZhbCIsInJlc3VsdCIsInRleHQiLCJleHBlY3QiLCJ0b0JlIiwicmVxdWlyZWQiLCJtYXhMZW5ndGgiLCJtaW5MZW5ndGgiLCJoYXNNYW55IiwiZmllbGQiLCJuYW1lIiwidHlwZSIsInRleHRhcmVhIiwicGFzc3dvcmRPcHRpb25zIiwicGFzc3dvcmQiLCJwb2ludE9wdGlvbnMiLCJwb2ludCIsIm5vdCIsInJlbGF0aW9uQ29sbGVjdGlvbiIsImZpZWxkcyIsInNsdWciLCJyZWxhdGlvbnNoaXBPcHRpb25zIiwiY29uZmlnIiwiY29sbGVjdGlvbnMiLCJwYXlsb2FkIiwicmVsYXRpb24iLCJyZWxhdGlvblRvIiwicmVsYXRpb25zaGlwIiwibWluT3B0aW9ucyIsIm1pblJvd3MiLCJhbGxvd2VkIiwidG9TdHJpY3RFcXVhbCIsIm1heE9wdGlvbnMiLCJtYXhSb3dzIiwic2VsZWN0T3B0aW9ucyIsIm9wdGlvbnNSZXF1aXJlZCIsImxhYmVsIiwidmFsdWUiLCJvcHRpb25zV2l0aEVtcHR5U3RyaW5nIiwic2VsZWN0IiwibnVtYmVyT3B0aW9ucyIsIm51bWJlciIsIm1pbiIsIm1heCJdLCJyYW5nZU1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
@@ -60,4 +60,4 @@ const buildEndpoints = (global)=>{
60
60
  };
61
61
  const _default = buildEndpoints;
62
62
 
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nbG9iYWxzL2J1aWxkRW5kcG9pbnRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRW5kcG9pbnQgfSBmcm9tICcuLi9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZEdsb2JhbENvbmZpZyB9IGZyb20gJy4vY29uZmlnL3R5cGVzJ1xuXG5pbXBvcnQgZG9jQWNjZXNzUmVxdWVzdEhhbmRsZXIgZnJvbSAnLi9yZXF1ZXN0SGFuZGxlcnMvZG9jQWNjZXNzJ1xuaW1wb3J0IGZpbmRPbmUgZnJvbSAnLi9yZXF1ZXN0SGFuZGxlcnMvZmluZE9uZSdcbmltcG9ydCBmaW5kVmVyc2lvbkJ5SUQgZnJvbSAnLi9yZXF1ZXN0SGFuZGxlcnMvZmluZFZlcnNpb25CeUlEJ1xuaW1wb3J0IGZpbmRWZXJzaW9ucyBmcm9tICcuL3JlcXVlc3RIYW5kbGVycy9maW5kVmVyc2lvbnMnXG5pbXBvcnQgcmVzdG9yZVZlcnNpb24gZnJvbSAnLi9yZXF1ZXN0SGFuZGxlcnMvcmVzdG9yZVZlcnNpb24nXG5pbXBvcnQgdXBkYXRlIGZyb20gJy4vcmVxdWVzdEhhbmRsZXJzL3VwZGF0ZSdcblxuY29uc3QgYnVpbGRFbmRwb2ludHMgPSAoZ2xvYmFsOiBTYW5pdGl6ZWRHbG9iYWxDb25maWcpOiBFbmRwb2ludFtdID0+IHtcbiAgaWYgKCFnbG9iYWwuZW5kcG9pbnRzKSByZXR1cm4gW11cbiAgY29uc3QgZW5kcG9pbnRzID0gWy4uLmdsb2JhbC5lbmRwb2ludHNdXG5cbiAgaWYgKGdsb2JhbC52ZXJzaW9ucykge1xuICAgIGVuZHBvaW50cy5wdXNoKFxuICAgICAge1xuICAgICAgICBoYW5kbGVyOiBmaW5kVmVyc2lvbnMoZ2xvYmFsKSxcbiAgICAgICAgbWV0aG9kOiAnZ2V0JyxcbiAgICAgICAgcGF0aDogJy92ZXJzaW9ucycsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBoYW5kbGVyOiBmaW5kVmVyc2lvbkJ5SUQoZ2xvYmFsKSxcbiAgICAgICAgbWV0aG9kOiAnZ2V0JyxcbiAgICAgICAgcGF0aDogJy92ZXJzaW9ucy86aWQnLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaGFuZGxlcjogcmVzdG9yZVZlcnNpb24oZ2xvYmFsKSxcbiAgICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICAgIHBhdGg6ICcvdmVyc2lvbnMvOmlkJyxcbiAgICAgIH0sXG4gICAgKVxuICB9XG5cbiAgZW5kcG9pbnRzLnB1c2goXG4gICAge1xuICAgICAgaGFuZGxlcjogYXN5bmMgKHJlcSwgcmVzLCBuZXh0KSA9PiBkb2NBY2Nlc3NSZXF1ZXN0SGFuZGxlcihyZXEsIHJlcywgbmV4dCwgZ2xvYmFsKSxcbiAgICAgIG1ldGhvZDogJ2dldCcsXG4gICAgICBwYXRoOiAnL2FjY2VzcycsXG4gICAgfSxcbiAgICB7XG4gICAgICBoYW5kbGVyOiBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IGRvY0FjY2Vzc1JlcXVlc3RIYW5kbGVyKHJlcSwgcmVzLCBuZXh0LCBnbG9iYWwpLFxuICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICBwYXRoOiAnL2FjY2VzcycsXG4gICAgfSxcbiAgICB7XG4gICAgICBoYW5kbGVyOiBmaW5kT25lKGdsb2JhbCksXG4gICAgICBtZXRob2Q6ICdnZXQnLFxuICAgICAgcGF0aDogJy8nLFxuICAgIH0sXG4gICAge1xuICAgICAgaGFuZGxlcjogdXBkYXRlKGdsb2JhbCksXG4gICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgIHBhdGg6ICcvJyxcbiAgICB9LFxuICApXG5cbiAgcmV0dXJuIGVuZHBvaW50c1xufVxuXG5leHBvcnQgZGVmYXVsdCBidWlsZEVuZHBvaW50c1xuIl0sIm5hbWVzIjpbImJ1aWxkRW5kcG9pbnRzIiwiZ2xvYmFsIiwiZW5kcG9pbnRzIiwidmVyc2lvbnMiLCJwdXNoIiwiaGFuZGxlciIsImZpbmRWZXJzaW9ucyIsIm1ldGhvZCIsInBhdGgiLCJmaW5kVmVyc2lvbkJ5SUQiLCJyZXN0b3JlVmVyc2lvbiIsInJlcSIsInJlcyIsIm5leHQiLCJkb2NBY2Nlc3NSZXF1ZXN0SGFuZGxlciIsImZpbmRPbmUiLCJ1cGRhdGUiXSwibWFwcGluZ3MiOiI7Ozs7K0JBNERBOzs7ZUFBQTs7O2tFQXpEb0M7Z0VBQ2hCO3dFQUNRO3FFQUNIO3VFQUNFOytEQUNSOzs7Ozs7QUFFbkIsTUFBTUEsaUJBQWlCLENBQUNDO0lBQ3RCLElBQUksQ0FBQ0EsT0FBT0MsU0FBUyxFQUFFLE9BQU8sRUFBRTtJQUNoQyxNQUFNQSxZQUFZO1dBQUlELE9BQU9DLFNBQVM7S0FBQztJQUV2QyxJQUFJRCxPQUFPRSxRQUFRLEVBQUU7UUFDbkJELFVBQVVFLElBQUksQ0FDWjtZQUNFQyxTQUFTQyxJQUFBQSxxQkFBWSxFQUFDTDtZQUN0Qk0sUUFBUTtZQUNSQyxNQUFNO1FBQ1IsR0FDQTtZQUNFSCxTQUFTSSxJQUFBQSx3QkFBZSxFQUFDUjtZQUN6Qk0sUUFBUTtZQUNSQyxNQUFNO1FBQ1IsR0FDQTtZQUNFSCxTQUFTSyxJQUFBQSx1QkFBYyxFQUFDVDtZQUN4Qk0sUUFBUTtZQUNSQyxNQUFNO1FBQ1I7SUFFSjtJQUVBTixVQUFVRSxJQUFJLENBQ1o7UUFDRUMsU0FBUyxPQUFPTSxLQUFLQyxLQUFLQyxPQUFTQyxJQUFBQSxrQkFBdUIsRUFBQ0gsS0FBS0MsS0FBS0MsTUFBTVo7UUFDM0VNLFFBQVE7UUFDUkMsTUFBTTtJQUNSLEdBQ0E7UUFDRUgsU0FBUyxPQUFPTSxLQUFLQyxLQUFLQyxPQUFTQyxJQUFBQSxrQkFBdUIsRUFBQ0gsS0FBS0MsS0FBS0MsTUFBTVo7UUFDM0VNLFFBQVE7UUFDUkMsTUFBTTtJQUNSLEdBQ0E7UUFDRUgsU0FBU1UsSUFBQUEsZ0JBQU8sRUFBQ2Q7UUFDakJNLFFBQVE7UUFDUkMsTUFBTTtJQUNSLEdBQ0E7UUFDRUgsU0FBU1csSUFBQUEsZUFBTSxFQUFDZjtRQUNoQk0sUUFBUTtRQUNSQyxNQUFNO0lBQ1I7SUFHRixPQUFPTjtBQUNUO01BRUEsV0FBZUYifQ==
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nbG9iYWxzL2J1aWxkRW5kcG9pbnRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRW5kcG9pbnQgfSBmcm9tICcuLi9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZEdsb2JhbENvbmZpZyB9IGZyb20gJy4vY29uZmlnL3R5cGVzJ1xuXG5pbXBvcnQgZG9jQWNjZXNzUmVxdWVzdEhhbmRsZXIgZnJvbSAnLi9yZXF1ZXN0SGFuZGxlcnMvZG9jQWNjZXNzJ1xuaW1wb3J0IGZpbmRPbmUgZnJvbSAnLi9yZXF1ZXN0SGFuZGxlcnMvZmluZE9uZSdcbmltcG9ydCBmaW5kVmVyc2lvbkJ5SUQgZnJvbSAnLi9yZXF1ZXN0SGFuZGxlcnMvZmluZFZlcnNpb25CeUlEJ1xuaW1wb3J0IGZpbmRWZXJzaW9ucyBmcm9tICcuL3JlcXVlc3RIYW5kbGVycy9maW5kVmVyc2lvbnMnXG5pbXBvcnQgcmVzdG9yZVZlcnNpb24gZnJvbSAnLi9yZXF1ZXN0SGFuZGxlcnMvcmVzdG9yZVZlcnNpb24nXG5pbXBvcnQgdXBkYXRlIGZyb20gJy4vcmVxdWVzdEhhbmRsZXJzL3VwZGF0ZSdcblxuY29uc3QgYnVpbGRFbmRwb2ludHMgPSAoZ2xvYmFsOiBTYW5pdGl6ZWRHbG9iYWxDb25maWcpOiBFbmRwb2ludFtdID0+IHtcbiAgaWYgKCFnbG9iYWwuZW5kcG9pbnRzKSByZXR1cm4gW11cbiAgY29uc3QgZW5kcG9pbnRzID0gWy4uLmdsb2JhbC5lbmRwb2ludHNdXG5cbiAgaWYgKGdsb2JhbC52ZXJzaW9ucykge1xuICAgIGVuZHBvaW50cy5wdXNoKFxuICAgICAge1xuICAgICAgICBoYW5kbGVyOiBmaW5kVmVyc2lvbnMoZ2xvYmFsKSxcbiAgICAgICAgbWV0aG9kOiAnZ2V0JyxcbiAgICAgICAgcGF0aDogJy92ZXJzaW9ucycsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBoYW5kbGVyOiBmaW5kVmVyc2lvbkJ5SUQoZ2xvYmFsKSxcbiAgICAgICAgbWV0aG9kOiAnZ2V0JyxcbiAgICAgICAgcGF0aDogJy92ZXJzaW9ucy86aWQnLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaGFuZGxlcjogcmVzdG9yZVZlcnNpb24oZ2xvYmFsKSxcbiAgICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICAgIHBhdGg6ICcvdmVyc2lvbnMvOmlkJyxcbiAgICAgIH0sXG4gICAgKVxuICB9XG5cbiAgZW5kcG9pbnRzLnB1c2goXG4gICAge1xuICAgICAgaGFuZGxlcjogYXN5bmMgKHJlcSwgcmVzLCBuZXh0KSA9PiBkb2NBY2Nlc3NSZXF1ZXN0SGFuZGxlcihyZXEsIHJlcywgbmV4dCwgZ2xvYmFsKSxcbiAgICAgIG1ldGhvZDogJ2dldCcsXG4gICAgICBwYXRoOiAnL2FjY2VzcycsXG4gICAgfSxcbiAgICB7XG4gICAgICBoYW5kbGVyOiBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IGRvY0FjY2Vzc1JlcXVlc3RIYW5kbGVyKHJlcSwgcmVzLCBuZXh0LCBnbG9iYWwpLFxuICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICBwYXRoOiAnL2FjY2VzcycsXG4gICAgfSxcbiAgICB7XG4gICAgICBoYW5kbGVyOiBmaW5kT25lKGdsb2JhbCksXG4gICAgICBtZXRob2Q6ICdnZXQnLFxuICAgICAgcGF0aDogJy8nLFxuICAgIH0sXG4gICAge1xuICAgICAgaGFuZGxlcjogdXBkYXRlKGdsb2JhbCksXG4gICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgIHBhdGg6ICcvJyxcbiAgICB9LFxuICApXG5cbiAgcmV0dXJuIGVuZHBvaW50c1xufVxuXG5leHBvcnQgZGVmYXVsdCBidWlsZEVuZHBvaW50c1xuIl0sIm5hbWVzIjpbImJ1aWxkRW5kcG9pbnRzIiwiZ2xvYmFsIiwiZW5kcG9pbnRzIiwidmVyc2lvbnMiLCJwdXNoIiwiaGFuZGxlciIsImZpbmRWZXJzaW9ucyIsIm1ldGhvZCIsInBhdGgiLCJmaW5kVmVyc2lvbkJ5SUQiLCJyZXN0b3JlVmVyc2lvbiIsInJlcSIsInJlcyIsIm5leHQiLCJkb2NBY2Nlc3NSZXF1ZXN0SGFuZGxlciIsImZpbmRPbmUiLCJ1cGRhdGUiXSwicmFuZ2VNYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyIsIm1hcHBpbmdzIjoiOzs7OytCQTREQTs7O2VBQUE7OztrRUF6RG9DO2dFQUNoQjt3RUFDUTtxRUFDSDt1RUFDRTsrREFDUjs7Ozs7O0FBRW5CLE1BQU1BLGlCQUFpQixDQUFDQztJQUN0QixJQUFJLENBQUNBLE9BQU9DLFNBQVMsRUFBRSxPQUFPLEVBQUU7SUFDaEMsTUFBTUEsWUFBWTtXQUFJRCxPQUFPQyxTQUFTO0tBQUM7SUFFdkMsSUFBSUQsT0FBT0UsUUFBUSxFQUFFO1FBQ25CRCxVQUFVRSxJQUFJLENBQ1o7WUFDRUMsU0FBU0MsSUFBQUEscUJBQVksRUFBQ0w7WUFDdEJNLFFBQVE7WUFDUkMsTUFBTTtRQUNSLEdBQ0E7WUFDRUgsU0FBU0ksSUFBQUEsd0JBQWUsRUFBQ1I7WUFDekJNLFFBQVE7WUFDUkMsTUFBTTtRQUNSLEdBQ0E7WUFDRUgsU0FBU0ssSUFBQUEsdUJBQWMsRUFBQ1Q7WUFDeEJNLFFBQVE7WUFDUkMsTUFBTTtRQUNSO0lBRUo7SUFFQU4sVUFBVUUsSUFBSSxDQUNaO1FBQ0VDLFNBQVMsT0FBT00sS0FBS0MsS0FBS0MsT0FBU0MsSUFBQUEsa0JBQXVCLEVBQUNILEtBQUtDLEtBQUtDLE1BQU1aO1FBQzNFTSxRQUFRO1FBQ1JDLE1BQU07SUFDUixHQUNBO1FBQ0VILFNBQVMsT0FBT00sS0FBS0MsS0FBS0MsT0FBU0MsSUFBQUEsa0JBQXVCLEVBQUNILEtBQUtDLEtBQUtDLE1BQU1aO1FBQzNFTSxRQUFRO1FBQ1JDLE1BQU07SUFDUixHQUNBO1FBQ0VILFNBQVNVLElBQUFBLGdCQUFPLEVBQUNkO1FBQ2pCTSxRQUFRO1FBQ1JDLE1BQU07SUFDUixHQUNBO1FBQ0VILFNBQVNXLElBQUFBLGVBQU0sRUFBQ2Y7UUFDaEJNLFFBQVE7UUFDUkMsTUFBTTtJQUNSO0lBR0YsT0FBT047QUFDVDtNQUVBLFdBQWVGIn0=
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
 
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJyYW5nZU1hcHBpbmdzIjoiIiwibWFwcGluZ3MiOiIifQ==
@@ -106,4 +106,4 @@ const sanitizeGlobals = (config)=>{
106
106
  };
107
107
  const _default = sanitizeGlobals;
108
108
 
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9nbG9iYWxzL2NvbmZpZy9zYW5pdGl6ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENvbmZpZyB9IGZyb20gJy4uLy4uL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgU2FuaXRpemVkR2xvYmFsQ29uZmlnIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IGRlZmF1bHRBY2Nlc3MgZnJvbSAnLi4vLi4vYXV0aC9kZWZhdWx0QWNjZXNzJ1xuaW1wb3J0IHsgc2FuaXRpemVGaWVsZHMgfSBmcm9tICcuLi8uLi9maWVsZHMvY29uZmlnL3Nhbml0aXplJ1xuaW1wb3J0IHsgZmllbGRBZmZlY3RzRGF0YSB9IGZyb20gJy4uLy4uL2ZpZWxkcy9jb25maWcvdHlwZXMnXG5pbXBvcnQgbWVyZ2VCYXNlRmllbGRzIGZyb20gJy4uLy4uL2ZpZWxkcy9tZXJnZUJhc2VGaWVsZHMnXG5pbXBvcnQgdHJhbnNsYXRpb25zIGZyb20gJy4uLy4uL3RyYW5zbGF0aW9ucydcbmltcG9ydCB7IHRvV29yZHMgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvZm9ybWF0TGFiZWxzJ1xuaW1wb3J0IGJhc2VWZXJzaW9uRmllbGRzIGZyb20gJy4uLy4uL3ZlcnNpb25zL2Jhc2VGaWVsZHMnXG5cbmNvbnN0IHNhbml0aXplR2xvYmFscyA9IChjb25maWc6IENvbmZpZyk6IFNhbml0aXplZEdsb2JhbENvbmZpZ1tdID0+IHtcbiAgY29uc3QgeyBjb2xsZWN0aW9ucywgZ2xvYmFscyB9ID0gY29uZmlnXG5cbiAgY29uc3Qgc2FuaXRpemVkR2xvYmFscyA9IGdsb2JhbHMubWFwKChnbG9iYWwpID0+IHtcbiAgICBjb25zdCBzYW5pdGl6ZWRHbG9iYWwgPSB7IC4uLmdsb2JhbCB9XG5cbiAgICBzYW5pdGl6ZWRHbG9iYWwubGFiZWwgPSBzYW5pdGl6ZWRHbG9iYWwubGFiZWwgfHwgdG9Xb3JkcyhzYW5pdGl6ZWRHbG9iYWwuc2x1ZylcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIEVuc3VyZSB0aGF0IGNvbGxlY3Rpb24gaGFzIHJlcXVpcmVkIG9iamVjdCBzdHJ1Y3R1cmVcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIHNhbml0aXplZEdsb2JhbC5lbmRwb2ludHMgPSBzYW5pdGl6ZWRHbG9iYWwuZW5kcG9pbnRzID8/IFtdXG4gICAgaWYgKCFzYW5pdGl6ZWRHbG9iYWwuaG9va3MpIHNhbml0aXplZEdsb2JhbC5ob29rcyA9IHt9XG4gICAgaWYgKCFzYW5pdGl6ZWRHbG9iYWwuYWNjZXNzKSBzYW5pdGl6ZWRHbG9iYWwuYWNjZXNzID0ge31cbiAgICBpZiAoIXNhbml0aXplZEdsb2JhbC5hZG1pbikgc2FuaXRpemVkR2xvYmFsLmFkbWluID0ge31cblxuICAgIGlmICghc2FuaXRpemVkR2xvYmFsLmFjY2Vzcy5yZWFkKSBzYW5pdGl6ZWRHbG9iYWwuYWNjZXNzLnJlYWQgPSBkZWZhdWx0QWNjZXNzXG4gICAgaWYgKCFzYW5pdGl6ZWRHbG9iYWwuYWNjZXNzLnVwZGF0ZSkgc2FuaXRpemVkR2xvYmFsLmFjY2Vzcy51cGRhdGUgPSBkZWZhdWx0QWNjZXNzXG5cbiAgICBpZiAoIXNhbml0aXplZEdsb2JhbC5ob29rcy5iZWZvcmVWYWxpZGF0ZSkgc2FuaXRpemVkR2xvYmFsLmhvb2tzLmJlZm9yZVZhbGlkYXRlID0gW11cbiAgICBpZiAoIXNhbml0aXplZEdsb2JhbC5ob29rcy5iZWZvcmVDaGFuZ2UpIHNhbml0aXplZEdsb2JhbC5ob29rcy5iZWZvcmVDaGFuZ2UgPSBbXVxuICAgIGlmICghc2FuaXRpemVkR2xvYmFsLmhvb2tzLmFmdGVyQ2hhbmdlKSBzYW5pdGl6ZWRHbG9iYWwuaG9va3MuYWZ0ZXJDaGFuZ2UgPSBbXVxuICAgIGlmICghc2FuaXRpemVkR2xvYmFsLmhvb2tzLmJlZm9yZVJlYWQpIHNhbml0aXplZEdsb2JhbC5ob29rcy5iZWZvcmVSZWFkID0gW11cbiAgICBpZiAoIXNhbml0aXplZEdsb2JhbC5ob29rcy5hZnRlclJlYWQpIHNhbml0aXplZEdsb2JhbC5ob29rcy5hZnRlclJlYWQgPSBbXVxuXG4gICAgaWYgKHNhbml0aXplZEdsb2JhbC52ZXJzaW9ucykge1xuICAgICAgaWYgKHNhbml0aXplZEdsb2JhbC52ZXJzaW9ucyA9PT0gdHJ1ZSkgc2FuaXRpemVkR2xvYmFsLnZlcnNpb25zID0geyBkcmFmdHM6IGZhbHNlIH1cblxuICAgICAgaWYgKHNhbml0aXplZEdsb2JhbC52ZXJzaW9ucy5kcmFmdHMpIHtcbiAgICAgICAgaWYgKHNhbml0aXplZEdsb2JhbC52ZXJzaW9ucy5kcmFmdHMgPT09IHRydWUpIHtcbiAgICAgICAgICBzYW5pdGl6ZWRHbG9iYWwudmVyc2lvbnMuZHJhZnRzID0ge1xuICAgICAgICAgICAgYXV0b3NhdmU6IGZhbHNlLFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzYW5pdGl6ZWRHbG9iYWwudmVyc2lvbnMuZHJhZnRzLmF1dG9zYXZlID09PSB0cnVlKSB7XG4gICAgICAgICAgc2FuaXRpemVkR2xvYmFsLnZlcnNpb25zLmRyYWZ0cy5hdXRvc2F2ZSA9IHtcbiAgICAgICAgICAgIGludGVydmFsOiAyMDAwLFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHNhbml0aXplZEdsb2JhbC5maWVsZHMgPSBtZXJnZUJhc2VGaWVsZHMoc2FuaXRpemVkR2xvYmFsLmZpZWxkcywgYmFzZVZlcnNpb25GaWVsZHMpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFzYW5pdGl6ZWRHbG9iYWwuY3VzdG9tKSBzYW5pdGl6ZWRHbG9iYWwuY3VzdG9tID0ge31cblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIFNhbml0aXplIGZpZWxkc1xuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIGxldCBoYXNVcGRhdGVkQXQgPSBudWxsXG4gICAgbGV0IGhhc0NyZWF0ZWRBdCA9IG51bGxcbiAgICBzYW5pdGl6ZWRHbG9iYWwuZmllbGRzLnNvbWUoKGZpZWxkKSA9PiB7XG4gICAgICBpZiAoZmllbGRBZmZlY3RzRGF0YShmaWVsZCkpIHtcbiAgICAgICAgaWYgKGZpZWxkLm5hbWUgPT09ICd1cGRhdGVkQXQnKSBoYXNVcGRhdGVkQXQgPSB0cnVlXG4gICAgICAgIGlmIChmaWVsZC5uYW1lID09PSAnY3JlYXRlZEF0JykgaGFzQ3JlYXRlZEF0ID0gdHJ1ZVxuICAgICAgfVxuICAgICAgcmV0dXJuIGhhc0NyZWF0ZWRBdCAmJiBoYXNVcGRhdGVkQXRcbiAgICB9KVxuICAgIGlmICghaGFzVXBkYXRlZEF0KSB7XG4gICAgICBzYW5pdGl6ZWRHbG9iYWwuZmllbGRzLnB1c2goe1xuICAgICAgICBuYW1lOiAndXBkYXRlZEF0JyxcbiAgICAgICAgYWRtaW46IHtcbiAgICAgICAgICBkaXNhYmxlQnVsa0VkaXQ6IHRydWUsXG4gICAgICAgICAgaGlkZGVuOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBsYWJlbDogdHJhbnNsYXRpb25zWydnZW5lcmFsOnVwZGF0ZWRBdCddLFxuICAgICAgICB0eXBlOiAnZGF0ZScsXG4gICAgICB9KVxuICAgIH1cbiAgICBpZiAoIWhhc0NyZWF0ZWRBdCkge1xuICAgICAgc2FuaXRpemVkR2xvYmFsLmZpZWxkcy5wdXNoKHtcbiAgICAgICAgbmFtZTogJ2NyZWF0ZWRBdCcsXG4gICAgICAgIGFkbWluOiB7XG4gICAgICAgICAgZGlzYWJsZUJ1bGtFZGl0OiB0cnVlLFxuICAgICAgICAgIGhpZGRlbjogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgbGFiZWw6IHRyYW5zbGF0aW9uc1snZ2VuZXJhbDpjcmVhdGVkQXQnXSxcbiAgICAgICAgdHlwZTogJ2RhdGUnLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICBjb25zdCB2YWxpZFJlbGF0aW9uc2hpcHMgPSBjb2xsZWN0aW9ucy5tYXAoKGMpID0+IGMuc2x1ZykgfHwgW11cbiAgICBzYW5pdGl6ZWRHbG9iYWwuZmllbGRzID0gc2FuaXRpemVGaWVsZHMoe1xuICAgICAgY29uZmlnLFxuICAgICAgZmllbGRzOiBzYW5pdGl6ZWRHbG9iYWwuZmllbGRzLFxuICAgICAgdmFsaWRSZWxhdGlvbnNoaXBzLFxuICAgIH0pXG5cbiAgICByZXR1cm4gc2FuaXRpemVkR2xvYmFsIGFzIFNhbml0aXplZEdsb2JhbENvbmZpZ1xuICB9KVxuXG4gIHJldHVybiBzYW5pdGl6ZWRHbG9iYWxzXG59XG5cbmV4cG9ydCBkZWZhdWx0IHNhbml0aXplR2xvYmFsc1xuIl0sIm5hbWVzIjpbInNhbml0aXplR2xvYmFscyIsImNvbmZpZyIsImNvbGxlY3Rpb25zIiwiZ2xvYmFscyIsInNhbml0aXplZEdsb2JhbHMiLCJtYXAiLCJnbG9iYWwiLCJzYW5pdGl6ZWRHbG9iYWwiLCJsYWJlbCIsInRvV29yZHMiLCJzbHVnIiwiZW5kcG9pbnRzIiwiaG9va3MiLCJhY2Nlc3MiLCJhZG1pbiIsInJlYWQiLCJkZWZhdWx0QWNjZXNzIiwidXBkYXRlIiwiYmVmb3JlVmFsaWRhdGUiLCJiZWZvcmVDaGFuZ2UiLCJhZnRlckNoYW5nZSIsImJlZm9yZVJlYWQiLCJhZnRlclJlYWQiLCJ2ZXJzaW9ucyIsImRyYWZ0cyIsImF1dG9zYXZlIiwiaW50ZXJ2YWwiLCJmaWVsZHMiLCJtZXJnZUJhc2VGaWVsZHMiLCJiYXNlVmVyc2lvbkZpZWxkcyIsImN1c3RvbSIsImhhc1VwZGF0ZWRBdCIsImhhc0NyZWF0ZWRBdCIsInNvbWUiLCJmaWVsZCIsImZpZWxkQWZmZWN0c0RhdGEiLCJuYW1lIiwicHVzaCIsImRpc2FibGVCdWxrRWRpdCIsImhpZGRlbiIsInRyYW5zbGF0aW9ucyIsInR5cGUiLCJ2YWxpZFJlbGF0aW9uc2hpcHMiLCJjIiwic2FuaXRpemVGaWVsZHMiXSwibWFwcGluZ3MiOiI7Ozs7K0JBMkdBOzs7ZUFBQTs7O3NFQXhHMEI7MEJBQ0s7dUJBQ0U7d0VBQ0w7cUVBQ0g7OEJB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
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9nbG9iYWxzL2NvbmZpZy9zYW5pdGl6ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENvbmZpZyB9IGZyb20gJy4uLy4uL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgU2FuaXRpemVkR2xvYmFsQ29uZmlnIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IGRlZmF1bHRBY2Nlc3MgZnJvbSAnLi4vLi4vYXV0aC9kZWZhdWx0QWNjZXNzJ1xuaW1wb3J0IHsgc2FuaXRpemVGaWVsZHMgfSBmcm9tICcuLi8uLi9maWVsZHMvY29uZmlnL3Nhbml0aXplJ1xuaW1wb3J0IHsgZmllbGRBZmZlY3RzRGF0YSB9IGZyb20gJy4uLy4uL2ZpZWxkcy9jb25maWcvdHlwZXMnXG5pbXBvcnQgbWVyZ2VCYXNlRmllbGRzIGZyb20gJy4uLy4uL2ZpZWxkcy9tZXJnZUJhc2VGaWVsZHMnXG5pbXBvcnQgdHJhbnNsYXRpb25zIGZyb20gJy4uLy4uL3RyYW5zbGF0aW9ucydcbmltcG9ydCB7IHRvV29yZHMgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvZm9ybWF0TGFiZWxzJ1xuaW1wb3J0IGJhc2VWZXJzaW9uRmllbGRzIGZyb20gJy4uLy4uL3ZlcnNpb25zL2Jhc2VGaWVsZHMnXG5cbmNvbnN0IHNhbml0aXplR2xvYmFscyA9IChjb25maWc6IENvbmZpZyk6IFNhbml0aXplZEdsb2JhbENvbmZpZ1tdID0+IHtcbiAgY29uc3QgeyBjb2xsZWN0aW9ucywgZ2xvYmFscyB9ID0gY29uZmlnXG5cbiAgY29uc3Qgc2FuaXRpemVkR2xvYmFscyA9IGdsb2JhbHMubWFwKChnbG9iYWwpID0+IHtcbiAgICBjb25zdCBzYW5pdGl6ZWRHbG9iYWwgPSB7IC4uLmdsb2JhbCB9XG5cbiAgICBzYW5pdGl6ZWRHbG9iYWwubGFiZWwgPSBzYW5pdGl6ZWRHbG9iYWwubGFiZWwgfHwgdG9Xb3JkcyhzYW5pdGl6ZWRHbG9iYWwuc2x1ZylcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIEVuc3VyZSB0aGF0IGNvbGxlY3Rpb24gaGFzIHJlcXVpcmVkIG9iamVjdCBzdHJ1Y3R1cmVcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIHNhbml0aXplZEdsb2JhbC5lbmRwb2ludHMgPSBzYW5pdGl6ZWRHbG9iYWwuZW5kcG9pbnRzID8/IFtdXG4gICAgaWYgKCFzYW5pdGl6ZWRHbG9iYWwuaG9va3MpIHNhbml0aXplZEdsb2JhbC5ob29rcyA9IHt9XG4gICAgaWYgKCFzYW5pdGl6ZWRHbG9iYWwuYWNjZXNzKSBzYW5pdGl6ZWRHbG9iYWwuYWNjZXNzID0ge31cbiAgICBpZiAoIXNhbml0aXplZEdsb2JhbC5hZG1pbikgc2FuaXRpemVkR2xvYmFsLmFkbWluID0ge31cblxuICAgIGlmICghc2FuaXRpemVkR2xvYmFsLmFjY2Vzcy5yZWFkKSBzYW5pdGl6ZWRHbG9iYWwuYWNjZXNzLnJlYWQgPSBkZWZhdWx0QWNjZXNzXG4gICAgaWYgKCFzYW5pdGl6ZWRHbG9iYWwuYWNjZXNzLnVwZGF0ZSkgc2FuaXRpemVkR2xvYmFsLmFjY2Vzcy51cGRhdGUgPSBkZWZhdWx0QWNjZXNzXG5cbiAgICBpZiAoIXNhbml0aXplZEdsb2JhbC5ob29rcy5iZWZvcmVWYWxpZGF0ZSkgc2FuaXRpemVkR2xvYmFsLmhvb2tzLmJlZm9yZVZhbGlkYXRlID0gW11cbiAgICBpZiAoIXNhbml0aXplZEdsb2JhbC5ob29rcy5iZWZvcmVDaGFuZ2UpIHNhbml0aXplZEdsb2JhbC5ob29rcy5iZWZvcmVDaGFuZ2UgPSBbXVxuICAgIGlmICghc2FuaXRpemVkR2xvYmFsLmhvb2tzLmFmdGVyQ2hhbmdlKSBzYW5pdGl6ZWRHbG9iYWwuaG9va3MuYWZ0ZXJDaGFuZ2UgPSBbXVxuICAgIGlmICghc2FuaXRpemVkR2xvYmFsLmhvb2tzLmJlZm9yZVJlYWQpIHNhbml0aXplZEdsb2JhbC5ob29rcy5iZWZvcmVSZWFkID0gW11cbiAgICBpZiAoIXNhbml0aXplZEdsb2JhbC5ob29rcy5hZnRlclJlYWQpIHNhbml0aXplZEdsb2JhbC5ob29rcy5hZnRlclJlYWQgPSBbXVxuXG4gICAgaWYgKHNhbml0aXplZEdsb2JhbC52ZXJzaW9ucykge1xuICAgICAgaWYgKHNhbml0aXplZEdsb2JhbC52ZXJzaW9ucyA9PT0gdHJ1ZSkgc2FuaXRpemVkR2xvYmFsLnZlcnNpb25zID0geyBkcmFmdHM6IGZhbHNlIH1cblxuICAgICAgaWYgKHNhbml0aXplZEdsb2JhbC52ZXJzaW9ucy5kcmFmdHMpIHtcbiAgICAgICAgaWYgKHNhbml0aXplZEdsb2JhbC52ZXJzaW9ucy5kcmFmdHMgPT09IHRydWUpIHtcbiAgICAgICAgICBzYW5pdGl6ZWRHbG9iYWwudmVyc2lvbnMuZHJhZnRzID0ge1xuICAgICAgICAgICAgYXV0b3NhdmU6IGZhbHNlLFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzYW5pdGl6ZWRHbG9iYWwudmVyc2lvbnMuZHJhZnRzLmF1dG9zYXZlID09PSB0cnVlKSB7XG4gICAgICAgICAgc2FuaXRpemVkR2xvYmFsLnZlcnNpb25zLmRyYWZ0cy5hdXRvc2F2ZSA9IHtcbiAgICAgICAgICAgIGludGVydmFsOiAyMDAwLFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHNhbml0aXplZEdsb2JhbC5maWVsZHMgPSBtZXJnZUJhc2VGaWVsZHMoc2FuaXRpemVkR2xvYmFsLmZpZWxkcywgYmFzZVZlcnNpb25GaWVsZHMpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFzYW5pdGl6ZWRHbG9iYWwuY3VzdG9tKSBzYW5pdGl6ZWRHbG9iYWwuY3VzdG9tID0ge31cblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIFNhbml0aXplIGZpZWxkc1xuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIGxldCBoYXNVcGRhdGVkQXQgPSBudWxsXG4gICAgbGV0IGhhc0NyZWF0ZWRBdCA9IG51bGxcbiAgICBzYW5pdGl6ZWRHbG9iYWwuZmllbGRzLnNvbWUoKGZpZWxkKSA9PiB7XG4gICAgICBpZiAoZmllbGRBZmZlY3RzRGF0YShmaWVsZCkpIHtcbiAgICAgICAgaWYgKGZpZWxkLm5hbWUgPT09ICd1cGRhdGVkQXQnKSBoYXNVcGRhdGVkQXQgPSB0cnVlXG4gICAgICAgIGlmIChmaWVsZC5uYW1lID09PSAnY3JlYXRlZEF0JykgaGFzQ3JlYXRlZEF0ID0gdHJ1ZVxuICAgICAgfVxuICAgICAgcmV0dXJuIGhhc0NyZWF0ZWRBdCAmJiBoYXNVcGRhdGVkQXRcbiAgICB9KVxuICAgIGlmICghaGFzVXBkYXRlZEF0KSB7XG4gICAgICBzYW5pdGl6ZWRHbG9iYWwuZmllbGRzLnB1c2goe1xuICAgICAgICBuYW1lOiAndXBkYXRlZEF0JyxcbiAgICAgICAgYWRtaW46IHtcbiAgICAgICAgICBkaXNhYmxlQnVsa0VkaXQ6IHRydWUsXG4gICAgICAgICAgaGlkZGVuOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBsYWJlbDogdHJhbnNsYXRpb25zWydnZW5lcmFsOnVwZGF0ZWRBdCddLFxuICAgICAgICB0eXBlOiAnZGF0ZScsXG4gICAgICB9KVxuICAgIH1cbiAgICBpZiAoIWhhc0NyZWF0ZWRBdCkge1xuICAgICAgc2FuaXRpemVkR2xvYmFsLmZpZWxkcy5wdXNoKHtcbiAgICAgICAgbmFtZTogJ2NyZWF0ZWRBdCcsXG4gICAgICAgIGFkbWluOiB7XG4gICAgICAgICAgZGlzYWJsZUJ1bGtFZGl0OiB0cnVlLFxuICAgICAgICAgIGhpZGRlbjogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgbGFiZWw6IHRyYW5zbGF0aW9uc1snZ2VuZXJhbDpjcmVhdGVkQXQnXSxcbiAgICAgICAgdHlwZTogJ2RhdGUnLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICBjb25zdCB2YWxpZFJlbGF0aW9uc2hpcHMgPSBjb2xsZWN0aW9ucy5tYXAoKGMpID0+IGMuc2x1ZykgfHwgW11cbiAgICBzYW5pdGl6ZWRHbG9iYWwuZmllbGRzID0gc2FuaXRpemVGaWVsZHMoe1xuICAgICAgY29uZmlnLFxuICAgICAgZmllbGRzOiBzYW5pdGl6ZWRHbG9iYWwuZmllbGRzLFxuICAgICAgdmFsaWRSZWxhdGlvbnNoaXBzLFxuICAgIH0pXG5cbiAgICByZXR1cm4gc2FuaXRpemVkR2xvYmFsIGFzIFNhbml0aXplZEdsb2JhbENvbmZpZ1xuICB9KVxuXG4gIHJldHVybiBzYW5pdGl6ZWRHbG9iYWxzXG59XG5cbmV4cG9ydCBkZWZhdWx0IHNhbml0aXplR2xvYmFsc1xuIl0sIm5hbWVzIjpbInNhbml0aXplR2xvYmFscyIsImNvbmZpZyIsImNvbGxlY3Rpb25zIiwiZ2xvYmFscyIsInNhbml0aXplZEdsb2JhbHMiLCJtYXAiLCJnbG9iYWwiLCJzYW5pdGl6ZWRHbG9iYWwiLCJsYWJlbCIsInRvV29yZHMiLCJzbHVnIiwiZW5kcG9pbnRzIiwiaG9va3MiLCJhY2Nlc3MiLCJhZG1pbiIsInJlYWQiLCJkZWZhdWx0QWNjZXNzIiwidXBkYXRlIiwiYmVmb3JlVmFsaWRhdGUiLCJiZWZvcmVDaGFuZ2UiLCJhZnRlckNoYW5nZSIsImJlZm9yZVJlYWQiLCJhZnRlclJlYWQiLCJ2ZXJzaW9ucyIsImRyYWZ0cyIsImF1dG9zYXZlIiwiaW50ZXJ2YWwiLCJmaWVsZHMiLCJtZXJnZUJhc2VGaWVsZHMiLCJiYXNlVmVyc2lvbkZpZWxkcyIsImN1c3RvbSIsImhhc1VwZGF0ZWRBdCIsImhhc0NyZWF0ZWRBdCIsInNvbWUiLCJmaWVsZCIsImZpZWxkQWZmZWN0c0RhdGEiLCJuYW1lIiwicHVzaCIsImRpc2FibGVCdWxrRWRpdCIsImhpZGRlbiIsInRyYW5zbGF0aW9ucyIsInR5cGUiLCJ2YWxpZFJlbGF0aW9uc2hpcHMiLCJjIiwic2FuaXRpemVGaWVsZHMiXSwicmFuZ2VNYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/globals/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AASrB,QAAA,MAAM,YAAY,uBA+EN,CAAA;AAEZ,eAAe,YAAY,CAAA"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/globals/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AASrB,QAAA,MAAM,YAAY,uBAgFN,CAAA;AAEZ,eAAe,YAAY,CAAA"}
@@ -17,6 +17,7 @@ function _interop_require_default(obj) {
17
17
  };
18
18
  }
19
19
  const globalSchema = _joi.default.object().keys({
20
+ slug: _joi.default.string().required(),
20
21
  access: _joi.default.object({
21
22
  read: _joi.default.func(),
22
23
  readVersions: _joi.default.func(),
@@ -50,6 +51,7 @@ const globalSchema = _joi.default.object().keys({
50
51
  preview: _joi.default.func()
51
52
  }),
52
53
  custom: _joi.default.object().pattern(_joi.default.string(), _joi.default.any()),
54
+ dbName: _joi.default.alternatives().try(_joi.default.string(), _joi.default.func()),
53
55
  endpoints: _schema.endpointsSchema,
54
56
  fields: _joi.default.array(),
55
57
  graphQL: _joi.default.alternatives().try(_joi.default.object().keys({
@@ -65,7 +67,6 @@ const globalSchema = _joi.default.object().keys({
65
67
  label: _joi.default.alternatives().try(_joi.default.string(), _joi.default.object().pattern(_joi.default.string(), [
66
68
  _joi.default.string()
67
69
  ])),
68
- slug: _joi.default.string().required(),
69
70
  typescript: _joi.default.object().keys({
70
71
  interface: _joi.default.string()
71
72
  }),
@@ -80,4 +81,4 @@ const globalSchema = _joi.default.object().keys({
80
81
  }).unknown();
81
82
  const _default = globalSchema;
82
83
 
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9nbG9iYWxzL2NvbmZpZy9zY2hlbWEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGpvaSBmcm9tICdqb2knXG5cbmltcG9ydCB7IGVuZHBvaW50c1NjaGVtYSB9IGZyb20gJy4uLy4uL2NvbmZpZy9zY2hlbWEnXG5pbXBvcnQge1xuICBjb21wb25lbnRTY2hlbWEsXG4gIGN1c3RvbVZpZXdTY2hlbWEsXG4gIGxpdmVQcmV2aWV3U2NoZW1hLFxufSBmcm9tICcuLi8uLi9jb25maWcvc2hhcmVkL2NvbXBvbmVudFNjaGVtYSdcblxuY29uc3QgZ2xvYmFsU2NoZW1hID0gam9pXG4gIC5vYmplY3QoKVxuICAua2V5cyh7XG4gICAgYWNjZXNzOiBqb2kub2JqZWN0KHtcbiAgICAgIHJlYWQ6IGpvaS5mdW5jKCksXG4gICAgICByZWFkVmVyc2lvbnM6IGpvaS5mdW5jKCksXG4gICAgICB1cGRhdGU6IGpvaS5mdW5jKCksXG4gICAgfSksXG4gICAgYWRtaW46IGpvaS5vYmplY3Qoe1xuICAgICAgY29tcG9uZW50czogam9pLm9iamVjdCh7XG4gICAgICAgIGVsZW1lbnRzOiBqb2kub2JqZWN0KHtcbiAgICAgICAgICBQcmV2aWV3QnV0dG9uOiBjb21wb25lbnRTY2hlbWEsXG4gICAgICAgICAgUHVibGlzaEJ1dHRvbjogY29tcG9uZW50U2NoZW1hLFxuICAgICAgICAgIFNhdmVCdXR0b246IGNvbXBvbmVudFNjaGVtYSxcbiAgICAgICAgICBTYXZlRHJhZnRCdXR0b246IGNvbXBvbmVudFNjaGVtYSxcbiAgICAgICAgfSksXG4gICAgICAgIHZpZXdzOiBqb2kub2JqZWN0KHtcbiAgICAgICAgICBFZGl0OiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KFxuICAgICAgICAgICAgY29tcG9uZW50U2NoZW1hLFxuICAgICAgICAgICAgam9pLm9iamVjdCh7XG4gICAgICAgICAgICAgIEFQSTogam9pLmFsdGVybmF0aXZlcygpLnRyeShjb21wb25lbnRTY2hlbWEsIGN1c3RvbVZpZXdTY2hlbWEpLFxuICAgICAgICAgICAgICBEZWZhdWx0OiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KGNvbXBvbmVudFNjaGVtYSwgY3VzdG9tVmlld1NjaGVtYSksXG4gICAgICAgICAgICAgIFByZXZpZXc6IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoY29tcG9uZW50U2NoZW1hLCBjdXN0b21WaWV3U2NoZW1hKSxcbiAgICAgICAgICAgICAgVmVyc2lvbjogam9pLmFsdGVybmF0aXZlcygpLnRyeShjb21wb25lbnRTY2hlbWEsIGN1c3RvbVZpZXdTY2hlbWEpLFxuICAgICAgICAgICAgICBWZXJzaW9uczogam9pLmFsdGVybmF0aXZlcygpLnRyeShjb21wb25lbnRTY2hlbWEsIGN1c3RvbVZpZXdTY2hlbWEpLFxuICAgICAgICAgICAgICAvLyBSZWxhdGlvbnNoaXBzXG4gICAgICAgICAgICAgIC8vIFJlZmVyZW5jZXNcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICksXG4gICAgICAgIH0pLFxuICAgICAgfSksXG4gICAgICBkZXNjcmlwdGlvbjogam9pLmFsdGVybmF0aXZlcygpLnRyeShqb2kuc3RyaW5nKCksIGNvbXBvbmVudFNjaGVtYSksXG4gICAgICBncm91cDogam9pXG4gICAgICAgIC5hbHRlcm5hdGl2ZXMoKVxuICAgICAgICAudHJ5KGpvaS5zdHJpbmcoKSwgam9pLm9iamVjdCgpLnBhdHRlcm4oam9pLnN0cmluZygpLCBbam9pLnN0cmluZygpXSkpLFxuICAgICAgaGlkZGVuOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KGpvaS5ib29sZWFuKCksIGpvaS5mdW5jKCkpLFxuICAgICAgaGlkZUFQSVVSTDogam9pLmJvb2xlYW4oKSxcbiAgICAgIGxpdmVQcmV2aWV3OiBqb2kub2JqZWN0KGxpdmVQcmV2aWV3U2NoZW1hKSxcbiAgICAgIHByZXZpZXc6IGpvaS5mdW5jKCksXG4gICAgfSksXG4gICAgY3VzdG9tOiBqb2kub2JqZWN0KCkucGF0dGVybihqb2kuc3RyaW5nKCksIGpvaS5hbnkoKSksXG4gICAgZW5kcG9pbnRzOiBlbmRwb2ludHNTY2hlbWEsXG4gICAgZmllbGRzOiBqb2kuYXJyYXkoKSxcbiAgICBncmFwaFFMOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KFxuICAgICAgam9pLm9iamVjdCgpLmtleXMoe1xuICAgICAgICBuYW1lOiBqb2kuc3RyaW5nKCksXG4gICAgICB9KSxcbiAgICAgIGpvaS5ib29sZWFuKCksXG4gICAgKSxcbiAgICBob29rczogam9pLm9iamVjdCh7XG4gICAgICBhZnRlckNoYW5nZTogam9pLmFycmF5KCkuaXRlbXMoam9pLmZ1bmMoKSksXG4gICAgICBhZnRlclJlYWQ6IGpvaS5hcnJheSgpLml0ZW1zKGpvaS5mdW5jKCkpLFxuICAgICAgYmVmb3JlQ2hhbmdlOiBqb2kuYXJyYXkoKS5pdGVtcyhqb2kuZnVuYygpKSxcbiAgICAgIGJlZm9yZVJlYWQ6IGpvaS5hcnJheSgpLml0ZW1zKGpvaS5mdW5jKCkpLFxuICAgICAgYmVmb3JlVmFsaWRhdGU6IGpvaS5hcnJheSgpLml0ZW1zKGpvaS5mdW5jKCkpLFxuICAgIH0pLFxuICAgIGxhYmVsOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KGpvaS5zdHJpbmcoKSwgam9pLm9iamVjdCgpLnBhdHRlcm4oam9pLnN0cmluZygpLCBbam9pLnN0cmluZygpXSkpLFxuICAgIHNsdWc6IGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICAgIHR5cGVzY3JpcHQ6IGpvaS5vYmplY3QoKS5rZXlzKHtcbiAgICAgIGludGVyZmFjZTogam9pLnN0cmluZygpLFxuICAgIH0pLFxuICAgIHZlcnNpb25zOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KFxuICAgICAgam9pLm9iamVjdCh7XG4gICAgICAgIGRyYWZ0czogam9pLmFsdGVybmF0aXZlcygpLnRyeShcbiAgICAgICAgICBqb2kub2JqZWN0KHtcbiAgICAgICAgICAgIGF1dG9zYXZlOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KFxuICAgICAgICAgICAgICBqb2kuYm9vbGVhbigpLFxuICAgICAgICAgICAgICBqb2kub2JqZWN0KHtcbiAgICAgICAgICAgICAgICBpbnRlcnZhbDogam9pLm51bWJlcigpLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgfSksXG4gICAgICAgICAgam9pLmJvb2xlYW4oKSxcbiAgICAgICAgKSxcbiAgICAgICAgbWF4OiBqb2kubnVtYmVyKCksXG4gICAgICB9KSxcbiAgICAgIGpvaS5ib29sZWFuKCksXG4gICAgKSxcbiAgfSlcbiAgLnVua25vd24oKVxuXG5leHBvcnQgZGVmYXVsdCBnbG9iYWxTY2hlbWFcbiJdLCJuYW1lcyI6WyJnbG9iYWxTY2hlbWEiLCJqb2kiLCJvYmplY3QiLCJrZXlzIiwiYWNjZXNzIiwicmVhZCIsImZ1bmMiLCJyZWFkVmVyc2lvbnMiLCJ1cGRhdGUiLCJhZG1pbiIsImNvbXBvbmVudHMiLCJlbGVtZW50cyIsIlByZXZpZXdCdXR0b24iLCJjb21wb25lbnRTY2hlbWEiLCJQdWJsaXNoQnV0dG9uIiwiU2F2ZUJ1dHRvbiIsIlNhdmVEcmFmdEJ1dHRvbiIsInZpZXdzIiwiRWRpdCIsImFsdGVybmF0aXZlcyIsInRyeSIsIkFQSSIsImN1c3RvbVZpZXdTY2hlbWEiLCJEZWZhdWx0IiwiUHJldmlldyIsIlZlcnNpb24iLCJWZXJzaW9ucyIsImRlc2NyaXB0aW9uIiwic3RyaW5nIiwiZ3JvdXAiLCJwYXR0ZXJuIiwiaGlkZGVuIiwiYm9vbGVhbiIsImhpZGVBUElVUkwiLCJsaXZlUHJldmlldyIsImxpdmVQcmV2aWV3U2NoZW1hIiwicHJldmlldyIsImN1c3RvbSIsImFueSIsImVuZHBvaW50cyIsImVuZHBvaW50c1NjaGVtYSIsImZpZWxkcyIsImFycmF5IiwiZ3JhcGhRTCIsIm5hbWUiLCJob29rcyIsImFmdGVyQ2hhbmdlIiwiaXRlbXMiLCJhZnRlclJlYWQiLCJiZWZvcmVDaGFuZ2UiLCJiZWZvcmVSZWFkIiwiYmVmb3JlVmFsaWRhdGUiLCJsYWJlbCIsInNsdWciLCJyZXF1aXJlZCIsInR5cGVzY3JpcHQiLCJpbnRlcmZhY2UiLCJ2ZXJzaW9ucyIsImRyYWZ0cyIsImF1dG9zYXZlIiwiaW50ZXJ2YWwiLCJudW1iZXIiLCJtYXgiLCJ1bmtub3duIl0sIm1hcHBpbmdzIjoiOzs7OytCQTBGQTs7O2VBQUE7Ozs0REExRmdCO3dCQUVnQjtpQ0FLekI7Ozs7OztBQUVQLE1BQU1BLGVBQWVDLFlBQUcsQ0FDckJDLE1BQU0sR0FDTkMsSUFBSSxDQUFDO0lBQ0pDLFFBQVFILFlBQUcsQ0FBQ0MsTUFBTSxDQUFDO1FBQ2pCRyxNQUFNSixZQUFHLENBQUNLLElBQUk7UUFDZEMsY0FBY04sWUFBRyxDQUFDSyxJQUFJO1FBQ3RCRSxRQUFRUCxZQUFHLENBQUNLLElBQUk7SUFDbEI7SUFDQUcsT0FBT1IsWUFBRyxDQUFDQyxNQUFNLENBQUM7UUFDaEJRLFlBQVlULFlBQUcsQ0FBQ0MsTUFBTSxDQUFDO1lBQ3JCUyxVQUFVVixZQUFHLENBQUNDLE1BQU0sQ0FBQztnQkFDbkJVLGVBQWVDLGdDQUFlO2dCQUM5QkMsZUFBZUQsZ0NBQWU7Z0JBQzlCRSxZQUFZRixnQ0FBZTtnQkFDM0JHLGlCQUFpQkgsZ0NBQWU7WUFDbEM7WUFDQUksT0FBT2hCLFlBQUcsQ0FBQ0MsTUFBTSxDQUFDO2dCQUNoQmdCLE1BQU1qQixZQUFHLENBQUNrQixZQUFZLEdBQUdDLEdBQUcsQ0FDMUJQLGdDQUFlLEVBQ2ZaLFlBQUcsQ0FBQ0MsTUFBTSxDQUFDO29CQUNUbUIsS0FBS3BCLFlBQUcsQ0FBQ2tCLFlBQVksR0FBR0MsR0FBRyxDQUFDUCxnQ0FBZSxFQUFFUyxpQ0FBZ0I7b0JBQzdEQyxTQUFTdEIsWUFBRyxDQUFDa0IsWUFBWSxHQUFHQyxHQUFHLENBQUNQLGdDQUFlLEVBQUVTLGlDQUFnQjtvQkFDakVFLFNBQVN2QixZQUFHLENBQUNrQixZQUFZLEdBQUdDLEdBQUcsQ0FBQ1AsZ0NBQWUsRUFBRVMsaUNBQWdCO29CQUNqRUcsU0FBU3hCLFlBQUcsQ0FBQ2tCLFlBQVksR0FB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
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9nbG9iYWxzL2NvbmZpZy9zY2hlbWEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGpvaSBmcm9tICdqb2knXG5cbmltcG9ydCB7IGVuZHBvaW50c1NjaGVtYSB9IGZyb20gJy4uLy4uL2NvbmZpZy9zY2hlbWEnXG5pbXBvcnQge1xuICBjb21wb25lbnRTY2hlbWEsXG4gIGN1c3RvbVZpZXdTY2hlbWEsXG4gIGxpdmVQcmV2aWV3U2NoZW1hLFxufSBmcm9tICcuLi8uLi9jb25maWcvc2hhcmVkL2NvbXBvbmVudFNjaGVtYSdcblxuY29uc3QgZ2xvYmFsU2NoZW1hID0gam9pXG4gIC5vYmplY3QoKVxuICAua2V5cyh7XG4gICAgc2x1Zzogam9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gICAgYWNjZXNzOiBqb2kub2JqZWN0KHtcbiAgICAgIHJlYWQ6IGpvaS5mdW5jKCksXG4gICAgICByZWFkVmVyc2lvbnM6IGpvaS5mdW5jKCksXG4gICAgICB1cGRhdGU6IGpvaS5mdW5jKCksXG4gICAgfSksXG4gICAgYWRtaW46IGpvaS5vYmplY3Qoe1xuICAgICAgY29tcG9uZW50czogam9pLm9iamVjdCh7XG4gICAgICAgIGVsZW1lbnRzOiBqb2kub2JqZWN0KHtcbiAgICAgICAgICBQcmV2aWV3QnV0dG9uOiBjb21wb25lbnRTY2hlbWEsXG4gICAgICAgICAgUHVibGlzaEJ1dHRvbjogY29tcG9uZW50U2NoZW1hLFxuICAgICAgICAgIFNhdmVCdXR0b246IGNvbXBvbmVudFNjaGVtYSxcbiAgICAgICAgICBTYXZlRHJhZnRCdXR0b246IGNvbXBvbmVudFNjaGVtYSxcbiAgICAgICAgfSksXG4gICAgICAgIHZpZXdzOiBqb2kub2JqZWN0KHtcbiAgICAgICAgICBFZGl0OiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KFxuICAgICAgICAgICAgY29tcG9uZW50U2NoZW1hLFxuICAgICAgICAgICAgam9pLm9iamVjdCh7XG4gICAgICAgICAgICAgIEFQSTogam9pLmFsdGVybmF0aXZlcygpLnRyeShjb21wb25lbnRTY2hlbWEsIGN1c3RvbVZpZXdTY2hlbWEpLFxuICAgICAgICAgICAgICBEZWZhdWx0OiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KGNvbXBvbmVudFNjaGVtYSwgY3VzdG9tVmlld1NjaGVtYSksXG4gICAgICAgICAgICAgIFByZXZpZXc6IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoY29tcG9uZW50U2NoZW1hLCBjdXN0b21WaWV3U2NoZW1hKSxcbiAgICAgICAgICAgICAgVmVyc2lvbjogam9pLmFsdGVybmF0aXZlcygpLnRyeShjb21wb25lbnRTY2hlbWEsIGN1c3RvbVZpZXdTY2hlbWEpLFxuICAgICAgICAgICAgICBWZXJzaW9uczogam9pLmFsdGVybmF0aXZlcygpLnRyeShjb21wb25lbnRTY2hlbWEsIGN1c3RvbVZpZXdTY2hlbWEpLFxuICAgICAgICAgICAgICAvLyBSZWxhdGlvbnNoaXBzXG4gICAgICAgICAgICAgIC8vIFJlZmVyZW5jZXNcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICksXG4gICAgICAgIH0pLFxuICAgICAgfSksXG4gICAgICBkZXNjcmlwdGlvbjogam9pLmFsdGVybmF0aXZlcygpLnRyeShqb2kuc3RyaW5nKCksIGNvbXBvbmVudFNjaGVtYSksXG4gICAgICBncm91cDogam9pXG4gICAgICAgIC5hbHRlcm5hdGl2ZXMoKVxuICAgICAgICAudHJ5KGpvaS5zdHJpbmcoKSwgam9pLm9iamVjdCgpLnBhdHRlcm4oam9pLnN0cmluZygpLCBbam9pLnN0cmluZygpXSkpLFxuICAgICAgaGlkZGVuOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KGpvaS5ib29sZWFuKCksIGpvaS5mdW5jKCkpLFxuICAgICAgaGlkZUFQSVVSTDogam9pLmJvb2xlYW4oKSxcbiAgICAgIGxpdmVQcmV2aWV3OiBqb2kub2JqZWN0KGxpdmVQcmV2aWV3U2NoZW1hKSxcbiAgICAgIHByZXZpZXc6IGpvaS5mdW5jKCksXG4gICAgfSksXG4gICAgY3VzdG9tOiBqb2kub2JqZWN0KCkucGF0dGVybihqb2kuc3RyaW5nKCksIGpvaS5hbnkoKSksXG4gICAgZGJOYW1lOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KGpvaS5zdHJpbmcoKSwgam9pLmZ1bmMoKSksXG4gICAgZW5kcG9pbnRzOiBlbmRwb2ludHNTY2hlbWEsXG4gICAgZmllbGRzOiBqb2kuYXJyYXkoKSxcbiAgICBncmFwaFFMOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KFxuICAgICAgam9pLm9iamVjdCgpLmtleXMoe1xuICAgICAgICBuYW1lOiBqb2kuc3RyaW5nKCksXG4gICAgICB9KSxcbiAgICAgIGpvaS5ib29sZWFuKCksXG4gICAgKSxcbiAgICBob29rczogam9pLm9iamVjdCh7XG4gICAgICBhZnRlckNoYW5nZTogam9pLmFycmF5KCkuaXRlbXMoam9pLmZ1bmMoKSksXG4gICAgICBhZnRlclJlYWQ6IGpvaS5hcnJheSgpLml0ZW1zKGpvaS5mdW5jKCkpLFxuICAgICAgYmVmb3JlQ2hhbmdlOiBqb2kuYXJyYXkoKS5pdGVtcyhqb2kuZnVuYygpKSxcbiAgICAgIGJlZm9yZVJlYWQ6IGpvaS5hcnJheSgpLml0ZW1zKGpvaS5mdW5jKCkpLFxuICAgICAgYmVmb3JlVmFsaWRhdGU6IGpvaS5hcnJheSgpLml0ZW1zKGpvaS5mdW5jKCkpLFxuICAgIH0pLFxuICAgIGxhYmVsOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KGpvaS5zdHJpbmcoKSwgam9pLm9iamVjdCgpLnBhdHRlcm4oam9pLnN0cmluZygpLCBbam9pLnN0cmluZygpXSkpLFxuICAgIHR5cGVzY3JpcHQ6IGpvaS5vYmplY3QoKS5rZXlzKHtcbiAgICAgIGludGVyZmFjZTogam9pLnN0cmluZygpLFxuICAgIH0pLFxuICAgIHZlcnNpb25zOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KFxuICAgICAgam9pLm9iamVjdCh7XG4gICAgICAgIGRyYWZ0czogam9pLmFsdGVybmF0aXZlcygpLnRyeShcbiAgICAgICAgICBqb2kub2JqZWN0KHtcbiAgICAgICAgICAgIGF1dG9zYXZlOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KFxuICAgICAgICAgICAgICBqb2kuYm9vbGVhbigpLFxuICAgICAgICAgICAgICBqb2kub2JqZWN0KHtcbiAgICAgICAgICAgICAgICBpbnRlcnZhbDogam9pLm51bWJlcigpLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgfSksXG4gICAgICAgICAgam9pLmJvb2xlYW4oKSxcbiAgICAgICAgKSxcbiAgICAgICAgbWF4OiBqb2kubnVtYmVyKCksXG4gICAgICB9KSxcbiAgICAgIGpvaS5ib29sZWFuKCksXG4gICAgKSxcbiAgfSlcbiAgLnVua25vd24oKVxuXG5leHBvcnQgZGVmYXVsdCBnbG9iYWxTY2hlbWFcbiJdLCJuYW1lcyI6WyJnbG9iYWxTY2hlbWEiLCJqb2kiLCJvYmplY3QiLCJrZXlzIiwic2x1ZyIsInN0cmluZyIsInJlcXVpcmVkIiwiYWNjZXNzIiwicmVhZCIsImZ1bmMiLCJyZWFkVmVyc2lvbnMiLCJ1cGRhdGUiLCJhZG1pbiIsImNvbXBvbmVudHMiLCJlbGVtZW50cyIsIlByZXZpZXdCdXR0b24iLCJjb21wb25lbnRTY2hlbWEiLCJQdWJsaXNoQnV0dG9uIiwiU2F2ZUJ1dHRvbiIsIlNhdmVEcmFmdEJ1dHRvbiIsInZpZXdzIiwiRWRpdCIsImFsdGVybmF0aXZlcyIsInRyeSIsIkFQSSIsImN1c3RvbVZpZXdTY2hlbWEiLCJEZWZhdWx0IiwiUHJldmlldyIsIlZlcnNpb24iLCJWZXJzaW9ucyIsImRlc2NyaXB0aW9uIiwiZ3JvdXAiLCJwYXR0ZXJuIiwiaGlkZGVuIiwiYm9vbGVhbiIsImhpZGVBUElVUkwiLCJsaXZlUHJldmlldyIsImxpdmVQcmV2aWV3U2NoZW1hIiwicHJldmlldyIsImN1c3RvbSIsImFueSIsImRiTmFtZSIsImVuZHBvaW50cyIsImVuZHBvaW50c1NjaGVtYSIsImZpZWxkcyIsImFycmF5IiwiZ3JhcGhRTCIsIm5hbWUiLCJob29rcyIsImFmdGVyQ2hhbmdlIiwiaXRlbXMiLCJhZnRlclJlYWQiLCJiZWZvcmVDaGFuZ2UiLCJiZWZvcmVSZWFkIiwiYmVmb3JlVmFsaWRhdGUiLCJsYWJlbCIsInR5cGVzY3JpcHQiLCJpbnRlcmZhY2UiLCJ2ZXJzaW9ucyIsImRyYWZ0cyIsImF1dG9zYXZlIiwiaW50ZXJ2YWwiLCJudW1iZXIiLCJtYXgiLCJ1bmtub3duIl0sInJhbmdlTWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsiLCJtYXBwaW5ncyI6Ijs7OzsrQkEyRkE7OztlQUFBOzs7NERBM0ZnQjt3QkFFZ0I7aUNBS3pCOzs7Ozs7QUFFUCxNQUFNQSxlQUFlQyxZQUFHLENBQ3JCQyxNQUFNLEdBQ05DLElBQUksQ0FBQztJQUNKQyxNQUFNSCxZQUFHLENBQUNJLE1BQU0sR0FBR0MsUUFBUTtJQUMzQkMsUUFBUU4sWUFBRyxDQUFDQyxNQUFNLENBQUM7UUFDakJNLE1BQU1QLFlBQUcsQ0FBQ1EsSUFBSTtRQUNkQyxjQUFjVCxZQUFHLENBQUNRLElBQUk7UUFDdEJFLFFBQVFWLFlBQUcsQ0FBQ1EsSUFBSTtJQUNsQjtJQUNBRyxPQUFPWCxZQUFHLENBQUNDLE1BQU0sQ0FBQztRQUNoQlcsWUFBWVosWUFBRyxDQUFDQyxNQUFNLENBQUM7WUFDckJZLFVBQVViLFlBQUcsQ0FBQ0MsTUFBTSxDQUFDO2dCQUNuQmEsZUFBZUMsZ0NBQWU7Z0JBQzlCQyxlQUFlRCxnQ0FBZTtnQkFDOUJFLFlBQVlGLGdDQUFlO2dCQUMzQkcsaUJBQWlCSCxnQ0FBZTtZQUNsQztZQUNBSSxPQUFPbkIsWUFBRyxDQUFDQyxNQUFNLENBQUM7Z0JBQ2hCbUIsTUFBTXBCLFlBQUcsQ0FBQ3FCLFlBQVksR0FBR0MsR0FBRyxDQUMxQlAsZ0NBQWUsRUFDZmYsWUFBRyxDQUFDQyxNQUFNLENBQUM7b0JBQ1RzQixLQUFLdkIsWUFBRyxDQUFDcUIs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