payload 2.0.11 → 2.0.13

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 (220) hide show
  1. package/.eslintrc.js +58 -0
  2. package/dist/admin/components/elements/ArrayAction/index.scss +0 -2
  3. package/dist/admin/components/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
  4. package/dist/admin/components/elements/DocumentDrawer/DrawerContent.js +3 -1
  5. package/dist/admin/components/elements/DocumentFields/index.d.ts +16 -0
  6. package/dist/admin/components/elements/DocumentFields/index.d.ts.map +1 -0
  7. package/dist/admin/components/elements/DocumentFields/index.js +69 -0
  8. package/dist/admin/components/{views/Global/Default → elements/DocumentFields}/index.scss +10 -13
  9. package/dist/admin/components/elements/DuplicateDocument/index.d.ts.map +1 -1
  10. package/dist/admin/components/elements/DuplicateDocument/index.js +3 -1
  11. package/dist/admin/components/elements/ListControls/index.d.ts +1 -2
  12. package/dist/admin/components/elements/ListControls/index.d.ts.map +1 -1
  13. package/dist/admin/components/elements/ListControls/index.js +14 -25
  14. package/dist/admin/components/elements/ListControls/types.d.ts +3 -0
  15. package/dist/admin/components/elements/ListControls/types.d.ts.map +1 -1
  16. package/dist/admin/components/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
  17. package/dist/admin/components/elements/ListDrawer/DrawerContent.js +60 -15
  18. package/dist/admin/components/elements/Localizer/index.d.ts.map +1 -1
  19. package/dist/admin/components/elements/Localizer/index.js +21 -13
  20. package/dist/admin/components/elements/Popup/PopupButtonList/index.d.ts +1 -0
  21. package/dist/admin/components/elements/Popup/PopupButtonList/index.d.ts.map +1 -1
  22. package/dist/admin/components/elements/Popup/PopupButtonList/index.js +3 -2
  23. package/dist/admin/components/elements/Popup/PopupButtonList/index.scss +6 -1
  24. package/dist/admin/components/elements/ReactSelect/MultiValue/index.d.ts.map +1 -1
  25. package/dist/admin/components/elements/ReactSelect/MultiValue/index.js +4 -3
  26. package/dist/admin/components/elements/ReactSelect/index.js +3 -3
  27. package/dist/admin/components/elements/ReactSelect/types.d.ts +0 -4
  28. package/dist/admin/components/elements/ReactSelect/types.d.ts.map +1 -1
  29. package/dist/admin/components/elements/SaveDraft/index.d.ts.map +1 -1
  30. package/dist/admin/components/elements/SaveDraft/index.js +4 -3
  31. package/dist/admin/components/elements/SearchFilter/index.d.ts.map +1 -1
  32. package/dist/admin/components/elements/SearchFilter/index.js +4 -32
  33. package/dist/admin/components/elements/SearchFilter/types.d.ts +1 -2
  34. package/dist/admin/components/elements/SearchFilter/types.d.ts.map +1 -1
  35. package/dist/admin/components/elements/Status/index.d.ts.map +1 -1
  36. package/dist/admin/components/elements/Status/index.js +3 -1
  37. package/dist/admin/components/elements/TableColumns/index.d.ts.map +1 -1
  38. package/dist/admin/components/elements/TableColumns/index.js +8 -13
  39. package/dist/admin/components/elements/WhereBuilder/Condition/index.js +2 -2
  40. package/dist/admin/components/forms/RenderFields/index.d.ts.map +1 -1
  41. package/dist/admin/components/forms/RenderFields/index.js +1 -1
  42. package/dist/admin/components/forms/field-types/RichText/types.d.ts +6 -1
  43. package/dist/admin/components/forms/field-types/RichText/types.d.ts.map +1 -1
  44. package/dist/admin/components/forms/field-types/Row/index.d.ts.map +1 -1
  45. package/dist/admin/components/forms/field-types/Row/index.js +9 -5
  46. package/dist/admin/components/forms/field-types/Row/index.scss +22 -18
  47. package/dist/admin/components/utilities/DocumentInfo/index.d.ts.map +1 -1
  48. package/dist/admin/components/utilities/DocumentInfo/index.js +19 -11
  49. package/dist/admin/components/utilities/Preferences/index.d.ts +6 -1
  50. package/dist/admin/components/utilities/Preferences/index.d.ts.map +1 -1
  51. package/dist/admin/components/utilities/Preferences/index.js +55 -5
  52. package/dist/admin/components/views/Account/Default.d.ts +5 -1
  53. package/dist/admin/components/views/Account/Default.d.ts.map +1 -1
  54. package/dist/admin/components/views/Account/Default.js +29 -72
  55. package/dist/admin/components/views/Account/Settings/index.d.ts +6 -0
  56. package/dist/admin/components/views/Account/Settings/index.d.ts.map +1 -0
  57. package/dist/admin/components/views/Account/Settings/index.js +48 -0
  58. package/dist/admin/components/views/Account/Settings/index.scss +45 -0
  59. package/dist/admin/components/views/Account/index.d.ts.map +1 -1
  60. package/dist/admin/components/views/Account/index.js +18 -12
  61. package/dist/admin/components/views/Account/index.scss +7 -35
  62. package/dist/admin/components/views/Global/Default/index.d.ts +4 -2
  63. package/dist/admin/components/views/Global/Default/index.d.ts.map +1 -1
  64. package/dist/admin/components/views/Global/Default/index.js +16 -58
  65. package/dist/admin/components/views/Global/Default.d.ts +5 -2
  66. package/dist/admin/components/views/Global/Default.d.ts.map +1 -1
  67. package/dist/admin/components/views/Global/Default.js +6 -3
  68. package/dist/admin/components/views/Global/Routes/CustomComponent.d.ts.map +1 -1
  69. package/dist/admin/components/views/Global/Routes/CustomComponent.js +3 -2
  70. package/dist/admin/components/views/Global/Routes/index.d.ts +4 -1
  71. package/dist/admin/components/views/Global/Routes/index.d.ts.map +1 -1
  72. package/dist/admin/components/views/Global/Routes/index.js +1 -1
  73. package/dist/admin/components/views/Global/index.d.ts.map +1 -1
  74. package/dist/admin/components/views/Global/index.js +3 -1
  75. package/dist/admin/components/views/LivePreview/Context/index.d.ts.map +1 -1
  76. package/dist/admin/components/views/LivePreview/Context/index.js +6 -4
  77. package/dist/admin/components/views/LivePreview/index.d.ts +4 -1
  78. package/dist/admin/components/views/LivePreview/index.d.ts.map +1 -1
  79. package/dist/admin/components/views/LivePreview/index.js +20 -13
  80. package/dist/admin/components/views/Version/SelectLocales/index.js +3 -9
  81. package/dist/admin/components/views/Version/SelectLocales/types.d.ts +4 -4
  82. package/dist/admin/components/views/Version/SelectLocales/types.d.ts.map +1 -1
  83. package/dist/admin/components/views/Version/Version.d.ts.map +1 -1
  84. package/dist/admin/components/views/Version/Version.js +11 -3
  85. package/dist/admin/components/views/Version/types.d.ts +0 -4
  86. package/dist/admin/components/views/Version/types.d.ts.map +1 -1
  87. package/dist/admin/components/views/collections/Edit/Default/index.d.ts +4 -1
  88. package/dist/admin/components/views/collections/Edit/Default/index.d.ts.map +1 -1
  89. package/dist/admin/components/views/collections/Edit/Default/index.js +27 -61
  90. package/dist/admin/components/views/collections/Edit/Default/index.scss +5 -158
  91. package/dist/admin/components/views/collections/Edit/Default.d.ts +5 -2
  92. package/dist/admin/components/views/collections/Edit/Default.d.ts.map +1 -1
  93. package/dist/admin/components/views/collections/Edit/Default.js +6 -3
  94. package/dist/admin/components/views/collections/Edit/Routes/index.d.ts +4 -1
  95. package/dist/admin/components/views/collections/Edit/Routes/index.d.ts.map +1 -1
  96. package/dist/admin/components/views/collections/Edit/Routes/index.js +1 -1
  97. package/dist/admin/components/views/collections/Edit/index.d.ts.map +1 -1
  98. package/dist/admin/components/views/collections/Edit/index.js +3 -1
  99. package/dist/admin/components/views/collections/List/Default.d.ts.map +1 -1
  100. package/dist/admin/components/views/collections/List/Default.js +7 -5
  101. package/dist/admin/components/views/collections/List/index.d.ts.map +1 -1
  102. package/dist/admin/components/views/collections/List/index.js +68 -17
  103. package/dist/admin/components/views/collections/List/types.d.ts +4 -0
  104. package/dist/admin/components/views/collections/List/types.d.ts.map +1 -1
  105. package/dist/admin/hooks/useUseAsTitle.d.ts +3 -0
  106. package/dist/admin/hooks/useUseAsTitle.d.ts.map +1 -0
  107. package/dist/admin/hooks/useUseAsTitle.js +24 -0
  108. package/dist/auth/operations/forgotPassword.d.ts.map +1 -1
  109. package/dist/auth/operations/forgotPassword.js +4 -1
  110. package/dist/auth/operations/local/forgotPassword.js +2 -2
  111. package/dist/auth/operations/local/login.js +2 -2
  112. package/dist/auth/operations/local/resetPassword.d.ts.map +1 -1
  113. package/dist/auth/operations/local/resetPassword.js +2 -2
  114. package/dist/auth/operations/local/unlock.js +2 -2
  115. package/dist/auth/operations/local/verifyEmail.js +2 -2
  116. package/dist/auth/operations/login.d.ts.map +1 -1
  117. package/dist/auth/operations/login.js +9 -2
  118. package/dist/auth/operations/logout.d.ts.map +1 -1
  119. package/dist/auth/operations/logout.js +2 -1
  120. package/dist/auth/operations/me.d.ts.map +1 -1
  121. package/dist/auth/operations/me.js +2 -1
  122. package/dist/auth/operations/refresh.d.ts.map +1 -1
  123. package/dist/auth/operations/refresh.js +4 -1
  124. package/dist/collections/config/types.d.ts +33 -1
  125. package/dist/collections/config/types.d.ts.map +1 -1
  126. package/dist/collections/config/types.js +1 -1
  127. package/dist/collections/operations/create.d.ts.map +1 -1
  128. package/dist/collections/operations/create.js +21 -32
  129. package/dist/collections/operations/delete.d.ts.map +1 -1
  130. package/dist/collections/operations/delete.js +8 -2
  131. package/dist/collections/operations/deleteByID.d.ts.map +1 -1
  132. package/dist/collections/operations/deleteByID.js +8 -2
  133. package/dist/collections/operations/find.d.ts.map +1 -1
  134. package/dist/collections/operations/find.js +7 -2
  135. package/dist/collections/operations/findByID.d.ts.map +1 -1
  136. package/dist/collections/operations/findByID.js +7 -2
  137. package/dist/collections/operations/findVersionByID.d.ts.map +1 -1
  138. package/dist/collections/operations/findVersionByID.js +5 -2
  139. package/dist/collections/operations/findVersions.d.ts.map +1 -1
  140. package/dist/collections/operations/findVersions.js +5 -2
  141. package/dist/collections/operations/local/find.js +2 -2
  142. package/dist/collections/operations/local/findByID.js +2 -2
  143. package/dist/collections/operations/local/findVersionByID.js +2 -2
  144. package/dist/collections/operations/restoreVersion.d.ts.map +1 -1
  145. package/dist/collections/operations/restoreVersion.js +7 -3
  146. package/dist/collections/operations/update.d.ts.map +1 -1
  147. package/dist/collections/operations/update.js +17 -6
  148. package/dist/collections/operations/updateByID.d.ts.map +1 -1
  149. package/dist/collections/operations/updateByID.js +17 -6
  150. package/dist/collections/operations/utils.d.ts +21 -1
  151. package/dist/collections/operations/utils.d.ts.map +1 -1
  152. package/dist/collections/operations/utils.js +3 -2
  153. package/dist/config/schema.d.ts.map +1 -1
  154. package/dist/config/schema.js +4 -3
  155. package/dist/exports/types.d.ts +1 -0
  156. package/dist/exports/types.d.ts.map +1 -1
  157. package/dist/exports/types.js +19 -15
  158. package/dist/express/middleware/errorHandler.d.ts.map +1 -1
  159. package/dist/express/middleware/errorHandler.js +3 -3
  160. package/dist/fields/config/schema.d.ts.map +1 -1
  161. package/dist/fields/config/schema.js +5 -4
  162. package/dist/fields/config/types.d.ts +8 -1
  163. package/dist/fields/config/types.d.ts.map +1 -1
  164. package/dist/fields/config/types.js +1 -1
  165. package/dist/fields/hooks/afterChange/index.d.ts +3 -2
  166. package/dist/fields/hooks/afterChange/index.d.ts.map +1 -1
  167. package/dist/fields/hooks/afterChange/index.js +5 -3
  168. package/dist/fields/hooks/afterChange/promise.d.ts +5 -1
  169. package/dist/fields/hooks/afterChange/promise.d.ts.map +1 -1
  170. package/dist/fields/hooks/afterChange/promise.js +17 -2
  171. package/dist/fields/hooks/afterChange/traverseFields.d.ts +5 -1
  172. package/dist/fields/hooks/afterChange/traverseFields.d.ts.map +1 -1
  173. package/dist/fields/hooks/afterChange/traverseFields.js +4 -2
  174. package/dist/fields/hooks/afterRead/index.d.ts +2 -1
  175. package/dist/fields/hooks/afterRead/index.d.ts.map +1 -1
  176. package/dist/fields/hooks/afterRead/index.js +5 -3
  177. package/dist/fields/hooks/afterRead/promise.d.ts +5 -1
  178. package/dist/fields/hooks/afterRead/promise.d.ts.map +1 -1
  179. package/dist/fields/hooks/afterRead/promise.js +38 -4
  180. package/dist/fields/hooks/afterRead/traverseFields.d.ts +5 -1
  181. package/dist/fields/hooks/afterRead/traverseFields.d.ts.map +1 -1
  182. package/dist/fields/hooks/afterRead/traverseFields.js +4 -2
  183. package/dist/fields/hooks/beforeChange/index.d.ts +3 -2
  184. package/dist/fields/hooks/beforeChange/index.d.ts.map +1 -1
  185. package/dist/fields/hooks/beforeChange/index.js +5 -3
  186. package/dist/fields/hooks/beforeChange/promise.d.ts +5 -1
  187. package/dist/fields/hooks/beforeChange/promise.d.ts.map +1 -1
  188. package/dist/fields/hooks/beforeChange/promise.js +17 -2
  189. package/dist/fields/hooks/beforeChange/traverseFields.d.ts +5 -1
  190. package/dist/fields/hooks/beforeChange/traverseFields.d.ts.map +1 -1
  191. package/dist/fields/hooks/beforeChange/traverseFields.js +4 -2
  192. package/dist/fields/hooks/beforeValidate/index.d.ts +3 -2
  193. package/dist/fields/hooks/beforeValidate/index.d.ts.map +1 -1
  194. package/dist/fields/hooks/beforeValidate/index.js +5 -3
  195. package/dist/fields/hooks/beforeValidate/promise.d.ts +5 -1
  196. package/dist/fields/hooks/beforeValidate/promise.d.ts.map +1 -1
  197. package/dist/fields/hooks/beforeValidate/promise.js +19 -4
  198. package/dist/fields/hooks/beforeValidate/traverseFields.d.ts +5 -1
  199. package/dist/fields/hooks/beforeValidate/traverseFields.d.ts.map +1 -1
  200. package/dist/fields/hooks/beforeValidate/traverseFields.js +4 -2
  201. package/dist/globals/config/types.d.ts +16 -0
  202. package/dist/globals/config/types.d.ts.map +1 -1
  203. package/dist/globals/operations/findOne.d.ts.map +1 -1
  204. package/dist/globals/operations/findOne.js +7 -2
  205. package/dist/globals/operations/findVersionByID.d.ts.map +1 -1
  206. package/dist/globals/operations/findVersionByID.js +7 -2
  207. package/dist/globals/operations/findVersions.d.ts.map +1 -1
  208. package/dist/globals/operations/findVersions.js +5 -2
  209. package/dist/globals/operations/restoreVersion.d.ts.map +1 -1
  210. package/dist/globals/operations/restoreVersion.js +9 -3
  211. package/dist/globals/operations/update.d.ts.map +1 -1
  212. package/dist/globals/operations/update.js +19 -6
  213. package/dist/graphql/errorHandler.js +2 -2
  214. package/dist/graphql/schema/buildMutationInputType.js +2 -2
  215. package/dist/graphql/schema/buildObjectType.d.ts.map +1 -1
  216. package/dist/graphql/schema/buildObjectType.js +8 -3
  217. package/dist/preferences/operations/update.js +7 -7
  218. package/package.json +2 -2
  219. package/types.d.ts +1 -0
  220. package/types.js +19 -15
@@ -18,7 +18,7 @@ function _interop_require_default(obj) {
18
18
  default: obj
19
19
  };
20
20
  }
21
- const promise = async ({ id, context, data, doc, field, operation, overrideAccess, req, siblingData, siblingDoc })=>{
21
+ const promise = async ({ id, collection, context, data, doc, field, global, operation, overrideAccess, req, siblingData, siblingDoc })=>{
22
22
  if ((0, _types.fieldAffectsData)(field)) {
23
23
  if (field.name === 'id') {
24
24
  if (field.type === 'number' && typeof siblingData[field.name] === 'string') {
@@ -147,8 +147,11 @@ const promise = async ({ id, context, data, doc, field, operation, overrideAcces
147
147
  await field.hooks.beforeValidate.reduce(async (priorHook, currentHook)=>{
148
148
  await priorHook;
149
149
  const hookedValue = await currentHook({
150
+ collection,
150
151
  context,
151
152
  data,
153
+ field,
154
+ global,
152
155
  operation,
153
156
  originalDoc: doc,
154
157
  req,
@@ -198,10 +201,12 @@ const promise = async ({ id, context, data, doc, field, operation, overrideAcces
198
201
  const groupDoc = siblingDoc[field.name];
199
202
  await (0, _traverseFields.traverseFields)({
200
203
  id,
204
+ collection,
201
205
  context,
202
206
  data,
203
207
  doc,
204
208
  fields: field.fields,
209
+ global,
205
210
  operation,
206
211
  overrideAccess,
207
212
  req,
@@ -215,13 +220,15 @@ const promise = async ({ id, context, data, doc, field, operation, overrideAcces
215
220
  const rows = siblingData[field.name];
216
221
  if (Array.isArray(rows)) {
217
222
  const promises = [];
218
- rows.forEach((row, i)=>{
223
+ rows.forEach((row)=>{
219
224
  promises.push((0, _traverseFields.traverseFields)({
220
225
  id,
226
+ collection,
221
227
  context,
222
228
  data,
223
229
  doc,
224
230
  fields: field.fields,
231
+ global,
225
232
  operation,
226
233
  overrideAccess,
227
234
  req,
@@ -238,7 +245,7 @@ const promise = async ({ id, context, data, doc, field, operation, overrideAcces
238
245
  const rows = siblingData[field.name];
239
246
  if (Array.isArray(rows)) {
240
247
  const promises = [];
241
- rows.forEach((row, i)=>{
248
+ rows.forEach((row)=>{
242
249
  const rowSiblingDoc = (0, _getExistingRowDoc.getExistingRowDoc)(row, siblingDoc[field.name]);
243
250
  const blockTypeToMatch = row.blockType || rowSiblingDoc.blockType;
244
251
  const block = field.blocks.find((blockType)=>blockType.slug === blockTypeToMatch);
@@ -246,10 +253,12 @@ const promise = async ({ id, context, data, doc, field, operation, overrideAcces
246
253
  row.blockType = blockTypeToMatch;
247
254
  promises.push((0, _traverseFields.traverseFields)({
248
255
  id,
256
+ collection,
249
257
  context,
250
258
  data,
251
259
  doc,
252
260
  fields: block.fields,
261
+ global,
253
262
  operation,
254
263
  overrideAccess,
255
264
  req,
@@ -267,10 +276,12 @@ const promise = async ({ id, context, data, doc, field, operation, overrideAcces
267
276
  {
268
277
  await (0, _traverseFields.traverseFields)({
269
278
  id,
279
+ collection,
270
280
  context,
271
281
  data,
272
282
  doc,
273
283
  fields: field.fields,
284
+ global,
274
285
  operation,
275
286
  overrideAccess,
276
287
  req,
@@ -294,10 +305,12 @@ const promise = async ({ id, context, data, doc, field, operation, overrideAcces
294
305
  }
295
306
  await (0, _traverseFields.traverseFields)({
296
307
  id,
308
+ collection,
297
309
  context,
298
310
  data,
299
311
  doc,
300
312
  fields: field.fields,
313
+ global,
301
314
  operation,
302
315
  overrideAccess,
303
316
  req,
@@ -310,6 +323,7 @@ const promise = async ({ id, context, data, doc, field, operation, overrideAcces
310
323
  {
311
324
  await (0, _traverseFields.traverseFields)({
312
325
  id,
326
+ collection,
313
327
  context,
314
328
  data,
315
329
  doc,
@@ -317,6 +331,7 @@ const promise = async ({ id, context, data, doc, field, operation, overrideAcces
317
331
  ...tab,
318
332
  type: 'tab'
319
333
  })),
334
+ global,
320
335
  operation,
321
336
  overrideAccess,
322
337
  req,
@@ -332,4 +347,4 @@ const promise = async ({ id, context, data, doc, field, operation, overrideAcces
332
347
  }
333
348
  };
334
349
 
335
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZHMvaG9va3MvYmVmb3JlVmFsaWRhdGUvcHJvbWlzZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1wYXJhbS1yZWFzc2lnbiAqL1xuaW1wb3J0IHR5cGUgeyBQYXlsb2FkUmVxdWVzdCwgUmVxdWVzdENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9leHByZXNzL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBGaWVsZCwgVGFiQXNGaWVsZCB9IGZyb20gJy4uLy4uL2NvbmZpZy90eXBlcydcblxuaW1wb3J0IHsgZmllbGRBZmZlY3RzRGF0YSwgdGFiSGFzTmFtZSwgdmFsdWVJc1ZhbHVlV2l0aFJlbGF0aW9uIH0gZnJvbSAnLi4vLi4vY29uZmlnL3R5cGVzJ1xuaW1wb3J0IGdldFZhbHVlV2l0aERlZmF1bHQgZnJvbSAnLi4vLi4vZ2V0RGVmYXVsdFZhbHVlJ1xuaW1wb3J0IHsgY2xvbmVEYXRhRnJvbU9yaWdpbmFsRG9jIH0gZnJvbSAnLi4vYmVmb3JlQ2hhbmdlL2Nsb25lRGF0YUZyb21PcmlnaW5hbERvYydcbmltcG9ydCB7IGdldEV4aXN0aW5nUm93RG9jIH0gZnJvbSAnLi4vYmVmb3JlQ2hhbmdlL2dldEV4aXN0aW5nUm93RG9jJ1xuaW1wb3J0IHsgdHJhdmVyc2VGaWVsZHMgfSBmcm9tICcuL3RyYXZlcnNlRmllbGRzJ1xuXG50eXBlIEFyZ3M8VD4gPSB7XG4gIGNvbnRleHQ6IFJlcXVlc3RDb250ZXh0XG4gIGRhdGE6IFRcbiAgZG9jOiBUXG4gIGZpZWxkOiBGaWVsZCB8IFRhYkFzRmllbGRcbiAgaWQ/OiBudW1iZXIgfCBzdHJpbmdcbiAgb3BlcmF0aW9uOiAnY3JlYXRlJyB8ICd1cGRhdGUnXG4gIG92ZXJyaWRlQWNjZXNzOiBib29sZWFuXG4gIHJlcTogUGF5bG9hZFJlcXVlc3RcbiAgc2libGluZ0RhdGE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gIHNpYmxpbmdEb2M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG59XG5cbi8vIFRoaXMgZnVuY3Rpb24gaXMgcmVzcG9uc2libGUgZm9yIHRoZSBmb2xsb3dpbmcgYWN0aW9ucywgaW4gb3JkZXI6XG4vLyAtIFNhbml0aXplIGluY29taW5nIGRhdGFcbi8vIC0gRXhlY3V0ZSBmaWVsZCBob29rc1xuLy8gLSBFeGVjdXRlIGZpZWxkIGFjY2VzcyBjb250cm9sXG4vLyAtIE1lcmdlIG9yaWdpbmFsIGRvY3VtZW50IGRhdGEgaW50byBpbmNvbWluZyBkYXRhXG4vLyAtIENvbXB1dGUgZGVmYXVsdCB2YWx1ZXMgZm9yIHVuZGVmaW5lZCBmaWVsZHNcblxuZXhwb3J0IGNvbnN0IHByb21pc2UgPSBhc3luYyA8VD4oe1xuICBpZCxcbiAgY29udGV4dCxcbiAgZGF0YSxcbiAgZG9jLFxuICBmaWVsZCxcbiAgb3BlcmF0aW9uLFxuICBvdmVycmlkZUFjY2VzcyxcbiAgcmVxLFxuICBzaWJsaW5nRGF0YSxcbiAgc2libGluZ0RvYyxcbn06IEFyZ3M8VD4pOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgaWYgKGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpKSB7XG4gICAgaWYgKGZpZWxkLm5hbWUgPT09ICdpZCcpIHtcbiAgICAgIGlmIChmaWVsZC50eXBlID09PSAnbnVtYmVyJyAmJiB0eXBlb2Ygc2libGluZ0RhdGFbZmllbGQubmFtZV0gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gc2libGluZ0RhdGFbZmllbGQubmFtZV0gYXMgc3RyaW5nXG5cbiAgICAgICAgc2libGluZ0RhdGFbZmllbGQubmFtZV0gPSBwYXJzZUZsb2F0KHZhbHVlKVxuICAgICAgfVxuXG4gICAgICBpZiAoXG4gICAgICAgIGZpZWxkLnR5cGUgPT09ICd0ZXh0JyAmJlxuICAgICAgICB0eXBlb2Ygc2libGluZ0RhdGFbZmllbGQubmFtZV0/LnRvU3RyaW5nID09PSAnZnVuY3Rpb24nICYmXG4gICAgICAgIHR5cGVvZiBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSAhPT0gJ3N0cmluZydcbiAgICAgICkge1xuICAgICAgICBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSA9IHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdLnRvU3RyaW5nKClcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTYW5pdGl6ZSBpbmNvbWluZyBkYXRhXG4gICAgc3dpdGNoIChmaWVsZC50eXBlKSB7XG4gICAgICBjYXNlICdudW1iZXInOiB7XG4gICAgICAgIGlmICh0eXBlb2Ygc2libGluZ0RhdGFbZmllbGQubmFtZV0gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgY29uc3QgdmFsdWUgPSBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSBhcyBzdHJpbmdcbiAgICAgICAgICBjb25zdCB0cmltbWVkID0gdmFsdWUudHJpbSgpXG4gICAgICAgICAgc2libGluZ0RhdGFbZmllbGQubmFtZV0gPSB0cmltbWVkLmxlbmd0aCA9PT0gMCA/IG51bGwgOiBwYXJzZUZsb2F0KHRyaW1tZWQpXG4gICAgICAgIH1cblxuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBjYXNlICdwb2ludCc6IHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoc2libGluZ0RhdGFbZmllbGQubmFtZV0pKSB7XG4gICAgICAgICAgc2libGluZ0RhdGFbZmllbGQubmFtZV0gPSAoc2libGluZ0RhdGFbZmllbGQubmFtZV0gYXMgc3RyaW5nW10pLm1hcCgoY29vcmRpbmF0ZSwgaSkgPT4ge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBjb29yZGluYXRlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdW2ldIGFzIHN0cmluZ1xuICAgICAgICAgICAgICBjb25zdCB0cmltbWVkID0gdmFsdWUudHJpbSgpXG4gICAgICAgICAgICAgIHJldHVybiB0cmltbWVkLmxlbmd0aCA9PT0gMCA/IG51bGwgOiBwYXJzZUZsb2F0KHRyaW1tZWQpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gY29vcmRpbmF0ZVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cblxuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBjYXNlICdjaGVja2JveCc6IHtcbiAgICAgICAgaWYgKHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID09PSAndHJ1ZScpIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID0gdHJ1ZVxuICAgICAgICBpZiAoc2libGluZ0RhdGFbZmllbGQubmFtZV0gPT09ICdmYWxzZScpIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID0gZmFsc2VcbiAgICAgICAgaWYgKHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID09PSAnJykgc2libGluZ0RhdGFbZmllbGQubmFtZV0gPSBmYWxzZVxuXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ3JpY2hUZXh0Jzoge1xuICAgICAgICBpZiAodHlwZW9mIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByaWNoVGV4dEpTT04gPSBKU09OLnBhcnNlKHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdIGFzIHN0cmluZylcbiAgICAgICAgICAgIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID0gcmljaFRleHRKU09OXG4gICAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICAvLyBEaXNyZWdhcmQgdGhpcyBkYXRhIGFzIGl0IGlzIG5vdCB2YWxpZC5cbiAgICAgICAgICAgIC8vIFdpbGwgYmUgcmVwb3J0ZWQgdG8gdXNlciBieSBmaWVsZCB2YWxpZGF0aW9uXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgY2FzZSAncmVsYXRpb25zaGlwJzpcbiAgICAgIGNhc2UgJ3VwbG9hZCc6IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID09PSAnJyB8fFxuICAgICAgICAgIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID09PSAnbm9uZScgfHxcbiAgICAgICAgICBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSA9PT0gJ251bGwnIHx8XG4gICAgICAgICAgc2libGluZ0RhdGFbZmllbGQubmFtZV0gPT09IG51bGxcbiAgICAgICAgKSB7XG4gICAgICAgICAgaWYgKGZpZWxkLnR5cGUgPT09ICdyZWxhdGlvbnNoaXAnICYmIGZpZWxkLmhhc01hbnkgPT09IHRydWUpIHtcbiAgICAgICAgICAgIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID0gW11cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc2libGluZ0RhdGFbZmllbGQubmFtZV0gPSBudWxsXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdmFsdWUgPSBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXVxuXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGZpZWxkLnJlbGF0aW9uVG8pKSB7XG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICB2YWx1ZS5mb3JFYWNoKChyZWxhdGVkRG9jOiB7IHJlbGF0aW9uVG86IHN0cmluZzsgdmFsdWU6IHVua25vd24gfSwgaSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCByZWxhdGVkQ29sbGVjdGlvbiA9IHJlcS5wYXlsb2FkLmNvbmZpZy5jb2xsZWN0aW9ucy5maW5kKFxuICAgICAgICAgICAgICAgIChjb2xsZWN0aW9uKSA9PiBjb2xsZWN0aW9uLnNsdWcgPT09IHJlbGF0ZWREb2MucmVsYXRpb25UbyxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBjb25zdCByZWxhdGlvbnNoaXBJREZpZWxkID0gcmVsYXRlZENvbGxlY3Rpb24uZmllbGRzLmZpbmQoXG4gICAgICAgICAgICAgICAgKGNvbGxlY3Rpb25GaWVsZCkgPT5cbiAgICAgICAgICAgICAgICAgIGZpZWxkQWZmZWN0c0RhdGEoY29sbGVjdGlvbkZpZWxkKSAmJiBjb2xsZWN0aW9uRmllbGQubmFtZSA9PT0gJ2lkJyxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBpZiAocmVsYXRpb25zaGlwSURGaWVsZD8udHlwZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgICAgICBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXVtpXSA9IHtcbiAgICAgICAgICAgICAgICAgIC4uLnJlbGF0ZWREb2MsXG4gICAgICAgICAgICAgICAgICB2YWx1ZTogcGFyc2VGbG9hdChyZWxhdGVkRG9jLnZhbHVlIGFzIHN0cmluZyksXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBmaWVsZC50eXBlID09PSAncmVsYXRpb25zaGlwJyAmJlxuICAgICAgICAgICAgZmllbGQuaGFzTWFueSAhPT0gdHJ1ZSAmJlxuICAgICAgICAgICAgdmFsdWVJc1ZhbHVlV2l0aFJlbGF0aW9uKHZhbHVlKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgcmVsYXRlZENvbGxlY3Rpb24gPSByZXEucGF5bG9hZC5jb25maWcuY29sbGVjdGlvbnMuZmluZChcbiAgICAgICAgICAgICAgKGNvbGxlY3Rpb24pID0+IGNvbGxlY3Rpb24uc2x1ZyA9PT0gdmFsdWUucmVsYXRpb25UbyxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIGNvbnN0IHJlbGF0aW9uc2hpcElERmllbGQgPSByZWxhdGVkQ29sbGVjdGlvbi5maWVsZHMuZmluZChcbiAgICAgICAgICAgICAgKGNvbGxlY3Rpb25GaWVsZCkgPT5cbiAgICAgICAgICAgICAgICBmaWVsZEFmZmVjdHNEYXRhKGNvbGxlY3Rpb25GaWVsZCkgJiYgY29sbGVjdGlvbkZpZWxkLm5hbWUgPT09ICdpZCcsXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBpZiAocmVsYXRpb25zaGlwSURGaWVsZD8udHlwZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgICAgc2libGluZ0RhdGFbZmllbGQubmFtZV0gPSB7IC4uLnZhbHVlLCB2YWx1ZTogcGFyc2VGbG9hdCh2YWx1ZS52YWx1ZSBhcyBzdHJpbmcpIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICB2YWx1ZS5mb3JFYWNoKChyZWxhdGVkRG9jOiB1bmtub3duLCBpKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHJlbGF0ZWRDb2xsZWN0aW9uID0gcmVxLnBheWxvYWQuY29uZmlnLmNvbGxlY3Rpb25zLmZpbmQoXG4gICAgICAgICAgICAgICAgKGNvbGxlY3Rpb24pID0+IGNvbGxlY3Rpb24uc2x1ZyA9PT0gZmllbGQucmVsYXRpb25UbyxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBjb25zdCByZWxhdGlvbnNoaXBJREZpZWxkID0gcmVsYXRlZENvbGxlY3Rpb24uZmllbGRzLmZpbmQoXG4gICAgICAgICAgICAgICAgKGNvbGxlY3Rpb25GaWVsZCkgPT5cbiAgICAgICAgICAgICAgICAgIGZpZWxkQWZmZWN0c0RhdGEoY29sbGVjdGlvbkZpZWxkKSAmJiBjb2xsZWN0aW9uRmllbGQubmFtZSA9PT0gJ2lkJyxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBpZiAocmVsYXRpb25zaGlwSURGaWVsZD8udHlwZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgICAgICBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXVtpXSA9IHBhcnNlRmxvYXQocmVsYXRlZERvYyBhcyBzdHJpbmcpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChmaWVsZC50eXBlID09PSAncmVsYXRpb25zaGlwJyAmJiBmaWVsZC5oYXNNYW55ICE9PSB0cnVlICYmIHZhbHVlKSB7XG4gICAgICAgICAgICBjb25zdCByZWxhdGVkQ29sbGVjdGlvbiA9IHJlcS5wYXlsb2FkLmNvbmZpZy5jb2xsZWN0aW9ucy5maW5kKFxuICAgICAgICAgICAgICAoY29sbGVjdGlvbikgPT4gY29sbGVjdGlvbi5zbHVnID09PSBmaWVsZC5yZWxhdGlvblRvLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgY29uc3QgcmVsYXRpb25zaGlwSURGaWVsZCA9IHJlbGF0ZWRDb2xsZWN0aW9uLmZpZWxkcy5maW5kKFxuICAgICAgICAgICAgICAoY29sbGVjdGlvbkZpZWxkKSA9PlxuICAgICAgICAgICAgICAgIGZpZWxkQWZmZWN0c0RhdGEoY29sbGVjdGlvbkZpZWxkKSAmJiBjb2xsZWN0aW9uRmllbGQubmFtZSA9PT0gJ2lkJyxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIGlmIChyZWxhdGlvbnNoaXBJREZpZWxkPy50eXBlID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgICBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSA9IHBhcnNlRmxvYXQodmFsdWUgYXMgc3RyaW5nKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBjYXNlICdhcnJheSc6XG4gICAgICBjYXNlICdibG9ja3MnOiB7XG4gICAgICAgIC8vIEhhbmRsZSBjYXNlcyBvZiBhcnJheXMgYmVpbmcgaW50ZW50aW9uYWxseSBzZXQgdG8gMFxuICAgICAgICBpZiAoc2libGluZ0RhdGFbZmllbGQubmFtZV0gPT09ICcwJyB8fCBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSA9PT0gMCkge1xuICAgICAgICAgIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID0gW11cbiAgICAgICAgfVxuXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG5cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBFeGVjdXRlIGhvb2tzXG4gICAgaWYgKGZpZWxkLmhvb2tzPy5iZWZvcmVWYWxpZGF0ZSkge1xuICAgICAgYXdhaXQgZmllbGQuaG9va3MuYmVmb3JlVmFsaWRhdGUucmVkdWNlKGFzeW5jIChwcmlvckhvb2ssIGN1cnJlbnRIb29rKSA9PiB7XG4gICAgICAgIGF3YWl0IHByaW9ySG9va1xuXG4gICAgICAgIGNvbnN0IGhvb2tlZFZhbHVlID0gYXdhaXQgY3VycmVudEhvb2soe1xuICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgZGF0YSxcbiAgICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgICAgb3JpZ2luYWxEb2M6IGRvYyxcbiAgICAgICAgICByZXEsXG4gICAgICAgICAgc2libGluZ0RhdGEsXG4gICAgICAgICAgdmFsdWU6IHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdLFxuICAgICAgICB9KVxuXG4gICAgICAgIGlmIChob29rZWRWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgc2libGluZ0RhdGFbZmllbGQubmFtZV0gPSBob29rZWRWYWx1ZVxuICAgICAgICB9XG4gICAgICB9LCBQcm9taXNlLnJlc29sdmUoKSlcbiAgICB9XG5cbiAgICAvLyBFeGVjdXRlIGFjY2VzcyBjb250cm9sXG4gICAgaWYgKGZpZWxkLmFjY2VzcyAmJiBmaWVsZC5hY2Nlc3Nbb3BlcmF0aW9uXSkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gb3ZlcnJpZGVBY2Nlc3NcbiAgICAgICAgPyB0cnVlXG4gICAgICAgIDogYXdhaXQgZmllbGQuYWNjZXNzW29wZXJhdGlvbl0oeyBpZCwgZGF0YSwgZG9jLCByZXEsIHNpYmxpbmdEYXRhIH0pXG5cbiAgICAgIGlmICghcmVzdWx0KSB7XG4gICAgICAgIGRlbGV0ZSBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0eXBlb2Ygc2libGluZ0RhdGFbZmllbGQubmFtZV0gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAvLyBJZiBubyBpbmNvbWluZyBkYXRhLCBidXQgZXhpc3RpbmcgZG9jdW1lbnQgZGF0YSBpcyBmb3VuZCwgbWVyZ2UgaXQgaW5cbiAgICAgIGlmICh0eXBlb2Ygc2libGluZ0RvY1tmaWVsZC5uYW1lXSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgc2libGluZ0RhdGFbZmllbGQubmFtZV0gPSBjbG9uZURhdGFGcm9tT3JpZ2luYWxEb2Moc2libGluZ0RvY1tmaWVsZC5uYW1lXSlcblxuICAgICAgICAvLyBPdGhlcndpc2UgY29tcHV0ZSBkZWZhdWx0IHZhbHVlXG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBmaWVsZC5kZWZhdWx0VmFsdWUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID0gYXdhaXQgZ2V0VmFsdWVXaXRoRGVmYXVsdCh7XG4gICAgICAgICAgZGVmYXVsdFZhbHVlOiBmaWVsZC5kZWZhdWx0VmFsdWUsXG4gICAgICAgICAgbG9jYWxlOiByZXEubG9jYWxlLFxuICAgICAgICAgIHVzZXI6IHJlcS51c2VyLFxuICAgICAgICAgIHZhbHVlOiBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBUcmF2ZXJzZSBzdWJmaWVsZHNcbiAgc3dpdGNoIChmaWVsZC50eXBlKSB7XG4gICAgY2FzZSAnZ3JvdXAnOiB7XG4gICAgICBpZiAodHlwZW9mIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdICE9PSAnb2JqZWN0Jykgc2libGluZ0RhdGFbZmllbGQubmFtZV0gPSB7fVxuICAgICAgaWYgKHR5cGVvZiBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdICE9PSAnb2JqZWN0Jykgc2libGluZ0RvY1tmaWVsZC5uYW1lXSA9IHt9XG5cbiAgICAgIGNvbnN0IGdyb3VwRGF0YSA9IHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gICAgICBjb25zdCBncm91cERvYyA9IHNpYmxpbmdEb2NbZmllbGQubmFtZV0gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj5cblxuICAgICAgYXdhaXQgdHJhdmVyc2VGaWVsZHMoe1xuICAgICAgICBpZCxcbiAgICAgICAgY29udGV4dCxcbiAgICAgICAgZGF0YSxcbiAgICAgICAgZG9jLFxuICAgICAgICBmaWVsZHM6IGZpZWxkLmZpZWxkcyxcbiAgICAgICAgb3BlcmF0aW9uLFxuICAgICAgICBvdmVycmlkZUFjY2VzcyxcbiAgICAgICAgcmVxLFxuICAgICAgICBzaWJsaW5nRGF0YTogZ3JvdXBEYXRhLFxuICAgICAgICBzaWJsaW5nRG9jOiBncm91cERvYyxcbiAgICAgIH0pXG5cbiAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgY2FzZSAnYXJyYXknOiB7XG4gICAgICBjb25zdCByb3dzID0gc2libGluZ0RhdGFbZmllbGQubmFtZV1cblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkocm93cykpIHtcbiAgICAgICAgY29uc3QgcHJvbWlzZXMgPSBbXVxuICAgICAgICByb3dzLmZvckVhY2goKHJvdywgaSkgPT4ge1xuICAgICAgICAgIHByb21pc2VzLnB1c2goXG4gICAgICAgICAgICB0cmF2ZXJzZUZpZWxkcyh7XG4gICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgICBkb2MsXG4gICAgICAgICAgICAgIGZpZWxkczogZmllbGQuZmllbGRzLFxuICAgICAgICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgICAgICAgIG92ZXJyaWRlQWNjZXNzLFxuICAgICAgICAgICAgICByZXEsXG4gICAgICAgICAgICAgIHNpYmxpbmdEYXRhOiByb3csXG4gICAgICAgICAgICAgIHNpYmxpbmdEb2M6IGdldEV4aXN0aW5nUm93RG9jKHJvdywgc2libGluZ0RvY1tmaWVsZC5uYW1lXSksXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICApXG4gICAgICAgIH0pXG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKVxuICAgICAgfVxuICAgICAgYnJlYWtcbiAgICB9XG5cbiAgICBjYXNlICdibG9ja3MnOiB7XG4gICAgICBjb25zdCByb3dzID0gc2libGluZ0RhdGFbZmllbGQubmFtZV1cblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkocm93cykpIHtcbiAgICAgICAgY29uc3QgcHJvbWlzZXMgPSBbXVxuICAgICAgICByb3dzLmZvckVhY2goKHJvdywgaSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHJvd1NpYmxpbmdEb2MgPSBnZXRFeGlzdGluZ1Jvd0RvYyhyb3csIHNpYmxpbmdEb2NbZmllbGQubmFtZV0pXG4gICAgICAgICAgY29uc3QgYmxvY2tUeXBlVG9NYXRjaCA9IHJvdy5ibG9ja1R5cGUgfHwgcm93U2libGluZ0RvYy5ibG9ja1R5cGVcbiAgICAgICAgICBjb25zdCBibG9jayA9IGZpZWxkLmJsb2Nrcy5maW5kKChibG9ja1R5cGUpID0+IGJsb2NrVHlwZS5zbHVnID09PSBibG9ja1R5cGVUb01hdGNoKVxuXG4gICAgICAgICAgaWYgKGJsb2NrKSB7XG4gICAgICAgICAgICByb3cuYmxvY2tUeXBlID0gYmxvY2tUeXBlVG9NYXRjaFxuXG4gICAgICAgICAgICBwcm9taXNlcy5wdXNoKFxuICAgICAgICAgICAgICB0cmF2ZXJzZUZpZWxkcyh7XG4gICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgICAgIGRvYyxcbiAgICAgICAgICAgICAgICBmaWVsZHM6IGJsb2NrLmZpZWxkcyxcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgICAgICAgICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgICAgICAgICAgICAgcmVxLFxuICAgICAgICAgICAgICAgIHNpYmxpbmdEYXRhOiByb3csXG4gICAgICAgICAgICAgICAgc2libGluZ0RvYzogcm93U2libGluZ0RvYyxcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcylcbiAgICAgIH1cblxuICAgICAgYnJlYWtcbiAgICB9XG5cbiAgICBjYXNlICdyb3cnOlxuICAgIGNhc2UgJ2NvbGxhcHNpYmxlJzoge1xuICAgICAgYXdhaXQgdHJhdmVyc2VGaWVsZHMoe1xuICAgICAgICBpZCxcbiAgICAgICAgY29udGV4dCxcbiAgICAgICAgZGF0YSxcbiAgICAgICAgZG9jLFxuICAgICAgICBmaWVsZHM6IGZpZWxkLmZpZWxkcyxcbiAgICAgICAgb3BlcmF0aW9uLFxuICAgICAgICBvdmVycmlkZUFjY2VzcyxcbiAgICAgICAgcmVxLFxuICAgICAgICBzaWJsaW5nRGF0YSxcbiAgICAgICAgc2libGluZ0RvYyxcbiAgICAgIH0pXG5cbiAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgY2FzZSAndGFiJzoge1xuICAgICAgbGV0IHRhYlNpYmxpbmdEYXRhXG4gICAgICBsZXQgdGFiU2libGluZ0RvY1xuICAgICAgaWYgKHRhYkhhc05hbWUoZmllbGQpKSB7XG4gICAgICAgIGlmICh0eXBlb2Ygc2libGluZ0RhdGFbZmllbGQubmFtZV0gIT09ICdvYmplY3QnKSBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSA9IHt9XG4gICAgICAgIGlmICh0eXBlb2Ygc2libGluZ0RvY1tmaWVsZC5uYW1lXSAhPT0gJ29iamVjdCcpIHNpYmxpbmdEb2NbZmllbGQubmFtZV0gPSB7fVxuXG4gICAgICAgIHRhYlNpYmxpbmdEYXRhID0gc2libGluZ0RhdGFbZmllbGQubmFtZV0gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgICAgICAgdGFiU2libGluZ0RvYyA9IHNpYmxpbmdEb2NbZmllbGQubmFtZV0gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRhYlNpYmxpbmdEYXRhID0gc2libGluZ0RhdGFcbiAgICAgICAgdGFiU2libGluZ0RvYyA9IHNpYmxpbmdEb2NcbiAgICAgIH1cblxuICAgICAgYXdhaXQgdHJhdmVyc2VGaWVsZHMoe1xuICAgICAgICBpZCxcbiAgICAgICAgY29udGV4dCxcbiAgICAgICAgZGF0YSxcbiAgICAgICAgZG9jLFxuICAgICAgICBmaWVsZHM6IGZpZWxkLmZpZWxkcyxcbiAgICAgICAgb3BlcmF0aW9uLFxuICAgICAgICBvdmVycmlkZUFjY2VzcyxcbiAgICAgICAgcmVxLFxuICAgICAgICBzaWJsaW5nRGF0YTogdGFiU2libGluZ0RhdGEsXG4gICAgICAgIHNpYmxpbmdEb2M6IHRhYlNpYmxpbmdEb2MsXG4gICAgICB9KVxuXG4gICAgICBicmVha1xuICAgIH1cblxuICAgIGNhc2UgJ3RhYnMnOiB7XG4gICAgICBhd2FpdCB0cmF2ZXJzZUZpZWxkcyh7XG4gICAgICAgIGlkLFxuICAgICAgICBjb250ZXh0LFxuICAgICAgICBkYXRhLFxuICAgICAgICBkb2MsXG4gICAgICAgIGZpZWxkczogZmllbGQudGFicy5tYXAoKHRhYikgPT4gKHsgLi4udGFiLCB0eXBlOiAndGFiJyB9KSksXG4gICAgICAgIG9wZXJhdGlvbixcbiAgICAgICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgICAgIHJlcSxcbiAgICAgICAgc2libGluZ0RhdGEsXG4gICAgICAgIHNpYmxpbmdEb2MsXG4gICAgICB9KVxuXG4gICAgICBicmVha1xuICAgIH1cblxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIGJyZWFrXG4gICAgfVxuICB9XG59XG4iXSwibmFtZXMiOlsicHJvbWlzZSIsImlkIiwiY29udGV4dCIsImRhdGEiLCJkb2MiLCJmaWVsZCIsIm9wZXJhdGlvbiIsIm92ZXJyaWRlQWNjZXNzIiwicmVxIiwic2libGluZ0RhdGEiLCJzaWJsaW5nRG9jIiwiZmllbGRBZmZlY3RzRGF0YSIsIm5hbWUiLCJ0eXBlIiwidmFsdWUiLCJwYXJzZUZsb2F0IiwidG9TdHJpbmciLCJ0cmltbWVkIiwidHJpbSIsImxlbmd0aCIsIkFycmF5IiwiaXNBcnJheSIsIm1hcCIsImNvb3JkaW5hdGUiLCJpIiwicmljaFRleHRKU09OIiwiSlNPTiIsInBhcnNlIiwiaGFzTWFueSIsInJlbGF0aW9uVG8iLCJmb3JFYWNoIiwicmVsYXRlZERvYyIsInJlbGF0ZWRDb2xsZWN0aW9uIiwicGF5bG9hZCIsImNvbmZpZyIsImNvbGxlY3Rpb25zIiwiZmluZCIsImNvbGxlY3Rpb24iLCJzbHVnIiwicmVsYXRpb25zaGlwSURGaWVsZCIsImZpZWxkcyIsImNvbGxlY3Rpb25GaWVsZCIsInZhbHVlSXNWYWx1ZVdpdGhSZWxhdGlvbiIsImhvb2tzIiwiYmVmb3JlVmFsaWRhdGUiLCJyZWR1Y2UiLCJwcmlvckhvb2siLCJjdXJyZW50SG9vayIsImhvb2tlZFZhbHVlIiwib3JpZ2luYWxEb2MiLCJ1bmRlZmluZWQiLCJQcm9taXNlIiwicmVzb2x2ZSIsImFjY2VzcyIsInJlc3VsdCIsImNsb25lRGF0YUZyb21PcmlnaW5hbERvYyIsImRlZmF1bHRWYWx1ZSIsImdldFZhbHVlV2l0aERlZmF1bHQiLCJsb2NhbGUiLCJ1c2VyIiwiZ3JvdXBEYXRhIiwiZ3JvdXBEb2MiLCJ0cmF2ZXJzZUZpZWxkcyIsInJvd3MiLCJwcm9taXNlcyIsInJvdyIsInB1c2giLCJnZXRFeGlzdGluZ1Jvd0RvYyIsImFsbCIsInJvd1NpYmxpbmdEb2MiLCJibG9ja1R5cGVUb01hdGNoIiwiYmxvY2tUeXBlIiwiYmxvY2siLCJibG9ja3MiLCJ0YWJTaWJsaW5nRGF0YSIsInRhYlNpYmxpbmdEb2MiLCJ0YWJIYXNOYW1lIiwidGFicyIsInRhYiJdLCJtYXBwaW5ncyI6IkFBQUEsb0NBQW9DOzs7OytCQThCdkJBOzs7ZUFBQUE7Ozt1QkExQjBEO3dFQUN2QzswQ0FDUzttQ0FDUDtnQ0FDSDs7Ozs7O0FBc0J4QixNQUFNQSxVQUFVLE9BQVUs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
350
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZHMvaG9va3MvYmVmb3JlVmFsaWRhdGUvcHJvbWlzZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1wYXJhbS1yZWFzc2lnbiAqL1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBQYXlsb2FkUmVxdWVzdCwgUmVxdWVzdENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9leHByZXNzL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRHbG9iYWxDb25maWcgfSBmcm9tICcuLi8uLi8uLi9nbG9iYWxzL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgRmllbGQsIFRhYkFzRmllbGQgfSBmcm9tICcuLi8uLi9jb25maWcvdHlwZXMnXG5cbmltcG9ydCB7IGZpZWxkQWZmZWN0c0RhdGEsIHRhYkhhc05hbWUsIHZhbHVlSXNWYWx1ZVdpdGhSZWxhdGlvbiB9IGZyb20gJy4uLy4uL2NvbmZpZy90eXBlcydcbmltcG9ydCBnZXRWYWx1ZVdpdGhEZWZhdWx0IGZyb20gJy4uLy4uL2dldERlZmF1bHRWYWx1ZSdcbmltcG9ydCB7IGNsb25lRGF0YUZyb21PcmlnaW5hbERvYyB9IGZyb20gJy4uL2JlZm9yZUNoYW5nZS9jbG9uZURhdGFGcm9tT3JpZ2luYWxEb2MnXG5pbXBvcnQgeyBnZXRFeGlzdGluZ1Jvd0RvYyB9IGZyb20gJy4uL2JlZm9yZUNoYW5nZS9nZXRFeGlzdGluZ1Jvd0RvYydcbmltcG9ydCB7IHRyYXZlcnNlRmllbGRzIH0gZnJvbSAnLi90cmF2ZXJzZUZpZWxkcydcblxudHlwZSBBcmdzPFQ+ID0ge1xuICBjb2xsZWN0aW9uOiBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnIHwgbnVsbFxuICBjb250ZXh0OiBSZXF1ZXN0Q29udGV4dFxuICBkYXRhOiBUXG4gIGRvYzogVFxuICBmaWVsZDogRmllbGQgfCBUYWJBc0ZpZWxkXG4gIGdsb2JhbDogU2FuaXRpemVkR2xvYmFsQ29uZmlnIHwgbnVsbFxuICBpZD86IG51bWJlciB8IHN0cmluZ1xuICBvcGVyYXRpb246ICdjcmVhdGUnIHwgJ3VwZGF0ZSdcbiAgb3ZlcnJpZGVBY2Nlc3M6IGJvb2xlYW5cbiAgcmVxOiBQYXlsb2FkUmVxdWVzdFxuICBzaWJsaW5nRGF0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgc2libGluZ0RvYzogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbn1cblxuLy8gVGhpcyBmdW5jdGlvbiBpcyByZXNwb25zaWJsZSBmb3IgdGhlIGZvbGxvd2luZyBhY3Rpb25zLCBpbiBvcmRlcjpcbi8vIC0gU2FuaXRpemUgaW5jb21pbmcgZGF0YVxuLy8gLSBFeGVjdXRlIGZpZWxkIGhvb2tzXG4vLyAtIEV4ZWN1dGUgZmllbGQgYWNjZXNzIGNvbnRyb2xcbi8vIC0gTWVyZ2Ugb3JpZ2luYWwgZG9jdW1lbnQgZGF0YSBpbnRvIGluY29taW5nIGRhdGFcbi8vIC0gQ29tcHV0ZSBkZWZhdWx0IHZhbHVlcyBmb3IgdW5kZWZpbmVkIGZpZWxkc1xuXG5leHBvcnQgY29uc3QgcHJvbWlzZSA9IGFzeW5jIDxUPih7XG4gIGlkLFxuICBjb2xsZWN0aW9uLFxuICBjb250ZXh0LFxuICBkYXRhLFxuICBkb2MsXG4gIGZpZWxkLFxuICBnbG9iYWwsXG4gIG9wZXJhdGlvbixcbiAgb3ZlcnJpZGVBY2Nlc3MsXG4gIHJlcSxcbiAgc2libGluZ0RhdGEsXG4gIHNpYmxpbmdEb2MsXG59OiBBcmdzPFQ+KTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gIGlmIChmaWVsZEFmZmVjdHNEYXRhKGZpZWxkKSkge1xuICAgIGlmIChmaWVsZC5uYW1lID09PSAnaWQnKSB7XG4gICAgICBpZiAoZmllbGQudHlwZSA9PT0gJ251bWJlcicgJiYgdHlwZW9mIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID09PSAnc3RyaW5nJykge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdIGFzIHN0cmluZ1xuXG4gICAgICAgIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID0gcGFyc2VGbG9hdCh2YWx1ZSlcbiAgICAgIH1cblxuICAgICAgaWYgKFxuICAgICAgICBmaWVsZC50eXBlID09PSAndGV4dCcgJiZcbiAgICAgICAgdHlwZW9mIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdPy50b1N0cmluZyA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgICAgICB0eXBlb2Ygc2libGluZ0RhdGFbZmllbGQubmFtZV0gIT09ICdzdHJpbmcnXG4gICAgICApIHtcbiAgICAgICAgc2libGluZ0RhdGFbZmllbGQubmFtZV0gPSBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXS50b1N0cmluZygpXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2FuaXRpemUgaW5jb21pbmcgZGF0YVxuICAgIHN3aXRjaCAoZmllbGQudHlwZSkge1xuICAgICAgY2FzZSAnbnVtYmVyJzoge1xuICAgICAgICBpZiAodHlwZW9mIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIGNvbnN0IHZhbHVlID0gc2libGluZ0RhdGFbZmllbGQubmFtZV0gYXMgc3RyaW5nXG4gICAgICAgICAgY29uc3QgdHJpbW1lZCA9IHZhbHVlLnRyaW0oKVxuICAgICAgICAgIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID0gdHJpbW1lZC5sZW5ndGggPT09IDAgPyBudWxsIDogcGFyc2VGbG9hdCh0cmltbWVkKVxuICAgICAgICB9XG5cbiAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgY2FzZSAncG9pbnQnOiB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdKSkge1xuICAgICAgICAgIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID0gKHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdIGFzIHN0cmluZ1tdKS5tYXAoKGNvb3JkaW5hdGUsIGkpID0+IHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY29vcmRpbmF0ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXVtpXSBhcyBzdHJpbmdcbiAgICAgICAgICAgICAgY29uc3QgdHJpbW1lZCA9IHZhbHVlLnRyaW0oKVxuICAgICAgICAgICAgICByZXR1cm4gdHJpbW1lZC5sZW5ndGggPT09IDAgPyBudWxsIDogcGFyc2VGbG9hdCh0cmltbWVkKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGNvb3JkaW5hdGVcbiAgICAgICAgICB9KVxuICAgICAgICB9XG5cbiAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgY2FzZSAnY2hlY2tib3gnOiB7XG4gICAgICAgIGlmIChzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSA9PT0gJ3RydWUnKSBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSA9IHRydWVcbiAgICAgICAgaWYgKHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID09PSAnZmFsc2UnKSBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSA9IGZhbHNlXG4gICAgICAgIGlmIChzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSA9PT0gJycpIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID0gZmFsc2VcblxuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBjYXNlICdyaWNoVGV4dCc6IHtcbiAgICAgICAgaWYgKHR5cGVvZiBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmljaFRleHRKU09OID0gSlNPTi5wYXJzZShzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSBhcyBzdHJpbmcpXG4gICAgICAgICAgICBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSA9IHJpY2hUZXh0SlNPTlxuICAgICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgLy8gRGlzcmVnYXJkIHRoaXMgZGF0YSBhcyBpdCBpcyBub3QgdmFsaWQuXG4gICAgICAgICAgICAvLyBXaWxsIGJlIHJlcG9ydGVkIHRvIHVzZXIgYnkgZmllbGQgdmFsaWRhdGlvblxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ3JlbGF0aW9uc2hpcCc6XG4gICAgICBjYXNlICd1cGxvYWQnOiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSA9PT0gJycgfHxcbiAgICAgICAgICBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSA9PT0gJ25vbmUnIHx8XG4gICAgICAgICAgc2libGluZ0RhdGFbZmllbGQubmFtZV0gPT09ICdudWxsJyB8fFxuICAgICAgICAgIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID09PSBudWxsXG4gICAgICAgICkge1xuICAgICAgICAgIGlmIChmaWVsZC50eXBlID09PSAncmVsYXRpb25zaGlwJyAmJiBmaWVsZC5oYXNNYW55ID09PSB0cnVlKSB7XG4gICAgICAgICAgICBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSA9IFtdXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID0gbnVsbFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHZhbHVlID0gc2libGluZ0RhdGFbZmllbGQubmFtZV1cblxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShmaWVsZC5yZWxhdGlvblRvKSkge1xuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgdmFsdWUuZm9yRWFjaCgocmVsYXRlZERvYzogeyByZWxhdGlvblRvOiBzdHJpbmc7IHZhbHVlOiB1bmtub3duIH0sIGkpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgcmVsYXRlZENvbGxlY3Rpb24gPSByZXEucGF5bG9hZC5jb25maWcuY29sbGVjdGlvbnMuZmluZChcbiAgICAgICAgICAgICAgICAoY29sbGVjdGlvbikgPT4gY29sbGVjdGlvbi5zbHVnID09PSByZWxhdGVkRG9jLnJlbGF0aW9uVG8sXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgY29uc3QgcmVsYXRpb25zaGlwSURGaWVsZCA9IHJlbGF0ZWRDb2xsZWN0aW9uLmZpZWxkcy5maW5kKFxuICAgICAgICAgICAgICAgIChjb2xsZWN0aW9uRmllbGQpID0+XG4gICAgICAgICAgICAgICAgICBmaWVsZEFmZmVjdHNEYXRhKGNvbGxlY3Rpb25GaWVsZCkgJiYgY29sbGVjdGlvbkZpZWxkLm5hbWUgPT09ICdpZCcsXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgaWYgKHJlbGF0aW9uc2hpcElERmllbGQ/LnR5cGUgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICAgICAgc2libGluZ0RhdGFbZmllbGQubmFtZV1baV0gPSB7XG4gICAgICAgICAgICAgICAgICAuLi5yZWxhdGVkRG9jLFxuICAgICAgICAgICAgICAgICAgdmFsdWU6IHBhcnNlRmxvYXQocmVsYXRlZERvYy52YWx1ZSBhcyBzdHJpbmcpLFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZmllbGQudHlwZSA9PT0gJ3JlbGF0aW9uc2hpcCcgJiZcbiAgICAgICAgICAgIGZpZWxkLmhhc01hbnkgIT09IHRydWUgJiZcbiAgICAgICAgICAgIHZhbHVlSXNWYWx1ZVdpdGhSZWxhdGlvbih2YWx1ZSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IHJlbGF0ZWRDb2xsZWN0aW9uID0gcmVxLnBheWxvYWQuY29uZmlnLmNvbGxlY3Rpb25zLmZpbmQoXG4gICAgICAgICAgICAgIChjb2xsZWN0aW9uKSA9PiBjb2xsZWN0aW9uLnNsdWcgPT09IHZhbHVlLnJlbGF0aW9uVG8sXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBjb25zdCByZWxhdGlvbnNoaXBJREZpZWxkID0gcmVsYXRlZENvbGxlY3Rpb24uZmllbGRzLmZpbmQoXG4gICAgICAgICAgICAgIChjb2xsZWN0aW9uRmllbGQpID0+XG4gICAgICAgICAgICAgICAgZmllbGRBZmZlY3RzRGF0YShjb2xsZWN0aW9uRmllbGQpICYmIGNvbGxlY3Rpb25GaWVsZC5uYW1lID09PSAnaWQnLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgaWYgKHJlbGF0aW9uc2hpcElERmllbGQ/LnR5cGUgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICAgIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID0geyAuLi52YWx1ZSwgdmFsdWU6IHBhcnNlRmxvYXQodmFsdWUudmFsdWUgYXMgc3RyaW5nKSB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgdmFsdWUuZm9yRWFjaCgocmVsYXRlZERvYzogdW5rbm93biwgaSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCByZWxhdGVkQ29sbGVjdGlvbiA9IHJlcS5wYXlsb2FkLmNvbmZpZy5jb2xsZWN0aW9ucy5maW5kKFxuICAgICAgICAgICAgICAgIChjb2xsZWN0aW9uKSA9PiBjb2xsZWN0aW9uLnNsdWcgPT09IGZpZWxkLnJlbGF0aW9uVG8sXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgY29uc3QgcmVsYXRpb25zaGlwSURGaWVsZCA9IHJlbGF0ZWRDb2xsZWN0aW9uLmZpZWxkcy5maW5kKFxuICAgICAgICAgICAgICAgIChjb2xsZWN0aW9uRmllbGQpID0+XG4gICAgICAgICAgICAgICAgICBmaWVsZEFmZmVjdHNEYXRhKGNvbGxlY3Rpb25GaWVsZCkgJiYgY29sbGVjdGlvbkZpZWxkLm5hbWUgPT09ICdpZCcsXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgaWYgKHJlbGF0aW9uc2hpcElERmllbGQ/LnR5cGUgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICAgICAgc2libGluZ0RhdGFbZmllbGQubmFtZV1baV0gPSBwYXJzZUZsb2F0KHJlbGF0ZWREb2MgYXMgc3RyaW5nKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZmllbGQudHlwZSA9PT0gJ3JlbGF0aW9uc2hpcCcgJiYgZmllbGQuaGFzTWFueSAhPT0gdHJ1ZSAmJiB2YWx1ZSkge1xuICAgICAgICAgICAgY29uc3QgcmVsYXRlZENvbGxlY3Rpb24gPSByZXEucGF5bG9hZC5jb25maWcuY29sbGVjdGlvbnMuZmluZChcbiAgICAgICAgICAgICAgKGNvbGxlY3Rpb24pID0+IGNvbGxlY3Rpb24uc2x1ZyA9PT0gZmllbGQucmVsYXRpb25UbyxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIGNvbnN0IHJlbGF0aW9uc2hpcElERmllbGQgPSByZWxhdGVkQ29sbGVjdGlvbi5maWVsZHMuZmluZChcbiAgICAgICAgICAgICAgKGNvbGxlY3Rpb25GaWVsZCkgPT5cbiAgICAgICAgICAgICAgICBmaWVsZEFmZmVjdHNEYXRhKGNvbGxlY3Rpb25GaWVsZCkgJiYgY29sbGVjdGlvbkZpZWxkLm5hbWUgPT09ICdpZCcsXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBpZiAocmVsYXRpb25zaGlwSURGaWVsZD8udHlwZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgICAgc2libGluZ0RhdGFbZmllbGQubmFtZV0gPSBwYXJzZUZsb2F0KHZhbHVlIGFzIHN0cmluZylcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgY2FzZSAnYXJyYXknOlxuICAgICAgY2FzZSAnYmxvY2tzJzoge1xuICAgICAgICAvLyBIYW5kbGUgY2FzZXMgb2YgYXJyYXlzIGJlaW5nIGludGVudGlvbmFsbHkgc2V0IHRvIDBcbiAgICAgICAgaWYgKHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID09PSAnMCcgfHwgc2libGluZ0RhdGFbZmllbGQubmFtZV0gPT09IDApIHtcbiAgICAgICAgICBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSA9IFtdXG4gICAgICAgIH1cblxuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRXhlY3V0ZSBob29rc1xuICAgIGlmIChmaWVsZC5ob29rcz8uYmVmb3JlVmFsaWRhdGUpIHtcbiAgICAgIGF3YWl0IGZpZWxkLmhvb2tzLmJlZm9yZVZhbGlkYXRlLnJlZHVjZShhc3luYyAocHJpb3JIb29rLCBjdXJyZW50SG9vaykgPT4ge1xuICAgICAgICBhd2FpdCBwcmlvckhvb2tcblxuICAgICAgICBjb25zdCBob29rZWRWYWx1ZSA9IGF3YWl0IGN1cnJlbnRIb29rKHtcbiAgICAgICAgICBjb2xsZWN0aW9uLFxuICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgZGF0YSxcbiAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICBnbG9iYWwsXG4gICAgICAgICAgb3BlcmF0aW9uLFxuICAgICAgICAgIG9yaWdpbmFsRG9jOiBkb2MsXG4gICAgICAgICAgcmVxLFxuICAgICAgICAgIHNpYmxpbmdEYXRhLFxuICAgICAgICAgIHZhbHVlOiBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSxcbiAgICAgICAgfSlcblxuICAgICAgICBpZiAoaG9va2VkVmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID0gaG9va2VkVmFsdWVcbiAgICAgICAgfVxuICAgICAgfSwgUHJvbWlzZS5yZXNvbHZlKCkpXG4gICAgfVxuXG4gICAgLy8gRXhlY3V0ZSBhY2Nlc3MgY29udHJvbFxuICAgIGlmIChmaWVsZC5hY2Nlc3MgJiYgZmllbGQuYWNjZXNzW29wZXJhdGlvbl0pIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IG92ZXJyaWRlQWNjZXNzXG4gICAgICAgID8gdHJ1ZVxuICAgICAgICA6IGF3YWl0IGZpZWxkLmFjY2Vzc1tvcGVyYXRpb25dKHsgaWQsIGRhdGEsIGRvYywgcmVxLCBzaWJsaW5nRGF0YSB9KVxuXG4gICAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgICBkZWxldGUgc2libGluZ0RhdGFbZmllbGQubmFtZV1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID09PSAndW5kZWZpbmVkJykge1xuICAgICAgLy8gSWYgbm8gaW5jb21pbmcgZGF0YSwgYnV0IGV4aXN0aW5nIGRvY3VtZW50IGRhdGEgaXMgZm91bmQsIG1lcmdlIGl0IGluXG4gICAgICBpZiAodHlwZW9mIHNpYmxpbmdEb2NbZmllbGQubmFtZV0gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID0gY2xvbmVEYXRhRnJvbU9yaWdpbmFsRG9jKHNpYmxpbmdEb2NbZmllbGQubmFtZV0pXG5cbiAgICAgICAgLy8gT3RoZXJ3aXNlIGNvbXB1dGUgZGVmYXVsdCB2YWx1ZVxuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZmllbGQuZGVmYXVsdFZhbHVlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSA9IGF3YWl0IGdldFZhbHVlV2l0aERlZmF1bHQoe1xuICAgICAgICAgIGRlZmF1bHRWYWx1ZTogZmllbGQuZGVmYXVsdFZhbHVlLFxuICAgICAgICAgIGxvY2FsZTogcmVxLmxvY2FsZSxcbiAgICAgICAgICB1c2VyOiByZXEudXNlcixcbiAgICAgICAgICB2YWx1ZTogc2libGluZ0RhdGFbZmllbGQubmFtZV0sXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gVHJhdmVyc2Ugc3ViZmllbGRzXG4gIHN3aXRjaCAoZmllbGQudHlwZSkge1xuICAgIGNhc2UgJ2dyb3VwJzoge1xuICAgICAgaWYgKHR5cGVvZiBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSAhPT0gJ29iamVjdCcpIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID0ge31cbiAgICAgIGlmICh0eXBlb2Ygc2libGluZ0RvY1tmaWVsZC5uYW1lXSAhPT0gJ29iamVjdCcpIHNpYmxpbmdEb2NbZmllbGQubmFtZV0gPSB7fVxuXG4gICAgICBjb25zdCBncm91cERhdGEgPSBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICAgICAgY29uc3QgZ3JvdXBEb2MgPSBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+XG5cbiAgICAgIGF3YWl0IHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgaWQsXG4gICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgIGNvbnRleHQsXG4gICAgICAgIGRhdGEsXG4gICAgICAgIGRvYyxcbiAgICAgICAgZmllbGRzOiBmaWVsZC5maWVsZHMsXG4gICAgICAgIGdsb2JhbCxcbiAgICAgICAgb3BlcmF0aW9uLFxuICAgICAgICBvdmVycmlkZUFjY2VzcyxcbiAgICAgICAgcmVxLFxuICAgICAgICBzaWJsaW5nRGF0YTogZ3JvdXBEYXRhLFxuICAgICAgICBzaWJsaW5nRG9jOiBncm91cERvYyxcbiAgICAgIH0pXG5cbiAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgY2FzZSAnYXJyYXknOiB7XG4gICAgICBjb25zdCByb3dzID0gc2libGluZ0RhdGFbZmllbGQubmFtZV1cblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkocm93cykpIHtcbiAgICAgICAgY29uc3QgcHJvbWlzZXMgPSBbXVxuICAgICAgICByb3dzLmZvckVhY2goKHJvdykgPT4ge1xuICAgICAgICAgIHByb21pc2VzLnB1c2goXG4gICAgICAgICAgICB0cmF2ZXJzZUZpZWxkcyh7XG4gICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICBjb2xsZWN0aW9uLFxuICAgICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgICBkb2MsXG4gICAgICAgICAgICAgIGZpZWxkczogZmllbGQuZmllbGRzLFxuICAgICAgICAgICAgICBnbG9iYWwsXG4gICAgICAgICAgICAgIG9wZXJhdGlvbixcbiAgICAgICAgICAgICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgICAgc2libGluZ0RhdGE6IHJvdyxcbiAgICAgICAgICAgICAgc2libGluZ0RvYzogZ2V0RXhpc3RpbmdSb3dEb2Mocm93LCBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdKSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIClcbiAgICAgICAgfSlcbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpXG4gICAgICB9XG4gICAgICBicmVha1xuICAgIH1cblxuICAgIGNhc2UgJ2Jsb2Nrcyc6IHtcbiAgICAgIGNvbnN0IHJvd3MgPSBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXVxuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShyb3dzKSkge1xuICAgICAgICBjb25zdCBwcm9taXNlcyA9IFtdXG4gICAgICAgIHJvd3MuZm9yRWFjaCgocm93KSA9PiB7XG4gICAgICAgICAgY29uc3Qgcm93U2libGluZ0RvYyA9IGdldEV4aXN0aW5nUm93RG9jKHJvdywgc2libGluZ0RvY1tmaWVsZC5uYW1lXSlcbiAgICAgICAgICBjb25zdCBibG9ja1R5cGVUb01hdGNoID0gcm93LmJsb2NrVHlwZSB8fCByb3dTaWJsaW5nRG9jLmJsb2NrVHlwZVxuICAgICAgICAgIGNvbnN0IGJsb2NrID0gZmllbGQuYmxvY2tzLmZpbmQoKGJsb2NrVHlwZSkgPT4gYmxvY2tUeXBlLnNsdWcgPT09IGJsb2NrVHlwZVRvTWF0Y2gpXG5cbiAgICAgICAgICBpZiAoYmxvY2spIHtcbiAgICAgICAgICAgIHJvdy5ibG9ja1R5cGUgPSBibG9ja1R5cGVUb01hdGNoXG5cbiAgICAgICAgICAgIHByb21pc2VzLnB1c2goXG4gICAgICAgICAgICAgIHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uLFxuICAgICAgICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgICAgICBkb2MsXG4gICAgICAgICAgICAgICAgZmllbGRzOiBibG9jay5maWVsZHMsXG4gICAgICAgICAgICAgICAgZ2xvYmFsLFxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbixcbiAgICAgICAgICAgICAgICBvdmVycmlkZUFjY2VzcyxcbiAgICAgICAgICAgICAgICByZXEsXG4gICAgICAgICAgICAgICAgc2libGluZ0RhdGE6IHJvdyxcbiAgICAgICAgICAgICAgICBzaWJsaW5nRG9jOiByb3dTaWJsaW5nRG9jLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKVxuICAgICAgfVxuXG4gICAgICBicmVha1xuICAgIH1cblxuICAgIGNhc2UgJ3Jvdyc6XG4gICAgY2FzZSAnY29sbGFwc2libGUnOiB7XG4gICAgICBhd2FpdCB0cmF2ZXJzZUZpZWxkcyh7XG4gICAgICAgIGlkLFxuICAgICAgICBjb2xsZWN0aW9uLFxuICAgICAgICBjb250ZXh0LFxuICAgICAgICBkYXRhLFxuICAgICAgICBkb2MsXG4gICAgICAgIGZpZWxkczogZmllbGQuZmllbGRzLFxuICAgICAgICBnbG9iYWwsXG4gICAgICAgIG9wZXJhdGlvbixcbiAgICAgICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgICAgIHJlcSxcbiAgICAgICAgc2libGluZ0RhdGEsXG4gICAgICAgIHNpYmxpbmdEb2MsXG4gICAgICB9KVxuXG4gICAgICBicmVha1xuICAgIH1cblxuICAgIGNhc2UgJ3RhYic6IHtcbiAgICAgIGxldCB0YWJTaWJsaW5nRGF0YVxuICAgICAgbGV0IHRhYlNpYmxpbmdEb2NcbiAgICAgIGlmICh0YWJIYXNOYW1lKGZpZWxkKSkge1xuICAgICAgICBpZiAodHlwZW9mIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdICE9PSAnb2JqZWN0Jykgc2libGluZ0RhdGFbZmllbGQubmFtZV0gPSB7fVxuICAgICAgICBpZiAodHlwZW9mIHNpYmxpbmdEb2NbZmllbGQubmFtZV0gIT09ICdvYmplY3QnKSBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdID0ge31cblxuICAgICAgICB0YWJTaWJsaW5nRGF0YSA9IHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gICAgICAgIHRhYlNpYmxpbmdEb2MgPSBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0YWJTaWJsaW5nRGF0YSA9IHNpYmxpbmdEYXRhXG4gICAgICAgIHRhYlNpYmxpbmdEb2MgPSBzaWJsaW5nRG9jXG4gICAgICB9XG5cbiAgICAgIGF3YWl0IHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgaWQsXG4gICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgIGNvbnRleHQsXG4gICAgICAgIGRhdGEsXG4gICAgICAgIGRvYyxcbiAgICAgICAgZmllbGRzOiBmaWVsZC5maWVsZHMsXG4gICAgICAgIGdsb2JhbCxcbiAgICAgICAgb3BlcmF0aW9uLFxuICAgICAgICBvdmVycmlkZUFjY2VzcyxcbiAgICAgICAgcmVxLFxuICAgICAgICBzaWJsaW5nRGF0YTogdGFiU2libGluZ0RhdGEsXG4gICAgICAgIHNpYmxpbmdEb2M6IHRhYlNpYmxpbmdEb2MsXG4gICAgICB9KVxuXG4gICAgICBicmVha1xuICAgIH1cblxuICAgIGNhc2UgJ3RhYnMnOiB7XG4gICAgICBhd2FpdCB0cmF2ZXJzZUZpZWxkcyh7XG4gICAgICAgIGlkLFxuICAgICAgICBjb2xsZWN0aW9uLFxuICAgICAgICBjb250ZXh0LFxuICAgICAgICBkYXRhLFxuICAgICAgICBkb2MsXG4gICAgICAgIGZpZWxkczogZmllbGQudGFicy5tYXAoKHRhYikgPT4gKHsgLi4udGFiLCB0eXBlOiAndGFiJyB9KSksXG4gICAgICAgIGdsb2JhbCxcbiAgICAgICAgb3BlcmF0aW9uLFxuICAgICAgICBvdmVycmlkZUFjY2VzcyxcbiAgICAgICAgcmVxLFxuICAgICAgICBzaWJsaW5nRGF0YSxcbiAgICAgICAgc2libGluZ0RvYyxcbiAgICAgIH0pXG5cbiAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgZGVmYXVsdDoge1xuICAgICAgYnJlYWtcbiAgICB9XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJwcm9taXNlIiwiaWQiLCJjb2xsZWN0aW9uIiwiY29udGV4dCIsImRhdGEiLCJkb2MiLCJmaWVsZCIsImdsb2JhbCIsIm9wZXJhdGlvbiIsIm92ZXJyaWRlQWNjZXNzIiwicmVxIiwic2libGluZ0RhdGEiLCJzaWJsaW5nRG9jIiwiZmllbGRBZmZlY3RzRGF0YSIsIm5hbWUiLCJ0eXBlIiwidmFsdWUiLCJwYXJzZUZsb2F0IiwidG9TdHJpbmciLCJ0cmltbWVkIiwidHJpbSIsImxlbmd0aCIsIkFycmF5IiwiaXNBcnJheSIsIm1hcCIsImNvb3JkaW5hdGUiLCJpIiwicmljaFRleHRKU09OIiwiSlNPTiIsInBhcnNlIiwiaGFzTWFueSIsInJlbGF0aW9uVG8iLCJmb3JFYWNoIiwicmVsYXRlZERvYyIsInJlbGF0ZWRDb2xsZWN0aW9uIiwicGF5bG9hZCIsImNvbmZpZyIsImNvbGxlY3Rpb25zIiwiZmluZCIsInNsdWciLCJyZWxhdGlvbnNoaXBJREZpZWxkIiwiZmllbGRzIiwiY29sbGVjdGlvbkZpZWxkIiwidmFsdWVJc1ZhbHVlV2l0aFJlbGF0aW9uIiwiaG9va3MiLCJiZWZvcmVWYWxpZGF0ZSIsInJlZHVjZSIsInByaW9ySG9vayIsImN1cnJlbnRIb29rIiwiaG9va2VkVmFsdWUiLCJvcmlnaW5hbERvYyIsInVuZGVmaW5lZCIsIlByb21pc2UiLCJyZXNvbHZlIiwiYWNjZXNzIiwicmVzdWx0IiwiY2xvbmVEYXRhRnJvbU9yaWdpbmFsRG9jIiwiZGVmYXVsdFZhbHVlIiwiZ2V0VmFsdWVXaXRoRGVmYXVsdCIsImxvY2FsZSIsInVzZXIiLCJncm91cERhdGEiLCJncm91cERvYyIsInRyYXZlcnNlRmllbGRzIiwicm93cyIsInByb21pc2VzIiwicm93IiwicHVzaCIsImdldEV4aXN0aW5nUm93RG9jIiwiYWxsIiwicm93U2libGluZ0RvYyIsImJsb2NrVHlwZVRvTWF0Y2giLCJibG9ja1R5cGUiLCJibG9jayIsImJsb2NrcyIsInRhYlNpYmxpbmdEYXRhIiwidGFiU2libGluZ0RvYyIsInRhYkhhc05hbWUiLCJ0YWJzIiwidGFiIl0sIm1hcHBpbmdzIjoiQUFBQSxvQ0FBb0M7Ozs7K0JBa0N2QkE7OztlQUFBQTs7O3VCQTVCMEQ7d0VBQ3ZDOzBDQUNTO21DQUNQO2dDQUNIOzs7Ozs7QUF3QnhCLE1BQU1BLFVBQVUsT0FBVSxFQUMvQkMsRUFBRSxFQUNGQyxVQUFVLEVBQ1ZDLE9BQU8sRUFDUEMsSUFBSSxFQUNKQyxHQUFHLEVBQ0hDLEtBQUssRUFDTEMsTUFBTSxFQUNOQyxTQUFTLEVBQ1RDLGNBQWMsRUFDZEMsR0FBRyxFQUNIQyxXQUFXLEVBQ1hDLFVBQVUsRUFDRjtJQUNSLElBQUlDLElBQUFBLHVCQUFnQixFQUFDUCxRQUFRO1FBQzNCLElBQUlBLE1BQU1RLElBQUksS0FBSyxNQUFNO1lBQ3ZCLElBQUlSLE1BQU1TLElBQUksS0FBSyxZQUFZLE9BQU9KLFdBQVcsQ0FBQ0wsTUFBTVEsSUFBSSxDQUFDLEtBQUssVUFBVTtnQkFDMUUsTUFBTUUsUUFBUUwsV0FBVyxDQUFDTCxNQUFNUSxJQUFJLENBQUM7Z0JBRXJDSCxXQUFXLENBQUNMLE1BQU1RLElBQUksQ0FBQyxHQUFHRyxXQUFXRDtZQUN2QztZQUVBLElBQ0VWLE1BQU1TLElBQUksS0FBSyxVQUNmLE9BQU9KLFdBQVcsQ0FBQ0wsTUFBTVEsSUFBSSxDQUFDLEVBQUVJLGFBQWEsY0FDN0MsT0FBT1AsV0FBVyxDQUFDTCxNQUFNUSxJQUFJLENBQUMsS0FBSyxVQUNuQztnQkFDQUgsV0FBVyxDQUFDTCxNQUFNUSxJQUFJLENBQUMsR0FBR0gsV0FBVyxDQUFDTCxNQUFNUSxJQUFJLENBQUMsQ0FBQ0ksUUFBUTtZQUM1RDtRQUNGO1FBRUEseUJBQXlCO1FBQ3pCLE9BQVFaLE1BQU1TLElBQUk7WUFDaEIsS0FBSztnQkFBVTtvQkFDYixJQUFJLE9BQU9KLFdBQVcsQ0FBQ0wsTUFBTVEsSUFBSSxDQUFDLEtBQUssVUFBVTt3QkFDL0MsTUFBTUUsUUFBUUwsV0FBVyxDQUFDTCxNQUFNUSxJQUFJLENBQUM7d0JBQ3JDLE1BQU1LLFVBQVVILE1BQU1JLElBQUk7d0JBQzFCVCxXQUFXLENBQUNMLE1BQU1RLElBQUksQ0FBQyxHQUFHSyxRQUFRRSxNQUFNLEtBQUssSUFBSSxPQUFPSixXQUFXRTtvQkFDckU7b0JBRUE7Z0JBQ0Y7WUFFQSxLQUFLO2dCQUFTO29CQUNaLElBQUlHLE1BQU1DLE9BQU8sQ0FBQ1osV0FBVyxDQUFDTCxNQUFNUSxJQUFJLENBQUMsR0FBRzt3QkFDMUNILFdBQVcsQ0FBQ0wsTUFBTVEsSUFBSSxDQUFDLEdBQUcsQUFBQ0gsV0FBVyxDQUFDTCxNQUFNUSxJQUFJLENBQUMsQ0FBY1UsR0FBRyxDQUFDLENBQUNDLFlBQVlDOzRCQUMvRSxJQUFJLE9BQU9ELGVBQWUsVUFBVTtnQ0FDbEMsTUFBTVQsUUFBUUwsV0FBVyxDQUFDTCxNQUFNUSxJQUFJLENBQUMsQ0FBQ1ksRUFBRTtnQ0FDeEMsTUFBTVAsVUFBVUgsTUFBTUksSUFBSTtnQ0FDMUIsT0FBT0QsUUFBUUUsTUFBTSxLQUFLLElBQUksT0FBT0osV0FBV0U7NEJBQ2xEOzRCQUNBLE9BQU9NO3dCQUNUO29CQUNGO29CQUVBO2dCQUNGO1lBRUEsS0FBSztnQkFBWTtvQkFDZixJQUFJZCxXQUFXLENBQUNMLE1BQU1RLElBQUksQ0FBQyxLQUFLLFFBQVFILFdBQVcsQ0FBQ0wsTUFBTVEsSUFBSSxDQUFDLEdBQUc7b0JBQ2xFLElBQUlILFdBQVcsQ0FBQ0wsTUFBTVEsSUFBSSxDQUFDLEtBQUssU0FBU0gsV0FBVyxDQUFDTCxNQUFNUSxJQUFJLENBQUMsR0FBRztvQkFDbkUsSUFBSUgsV0FBVyxDQUFDTCxNQUFNUSxJQUFJLENBQUMsS0FBSyxJQUFJSCxXQUFXLENBQUNMLE1BQU1RLElBQUksQ0FBQyxHQUFHO29CQUU5RDtnQkFDRjtZQUVBLEtBQUs7Z0JBQVk7b0JBQ2YsSUFBSSxPQUFPSCxXQUFXLENBQUNMLE1BQU1RLElBQUksQ0FBQyxLQUFLLFVBQVU7d0JBQy9DLElBQUk7NEJBQ0YsTUFBTWEsZUFBZUMsS0FBS0MsS0FBSyxDQUFDbEIsV0FBVyxDQUFDTCxNQUFNUSxJQUFJLENBQUM7NEJBQ3ZESCxXQUFXLENBQUNMLE1BQU1RLElBQUksQ0FBQyxHQUFHYTt3QkFDNUIsRUFBRSxPQUFNO3dCQUNOLDBDQUEwQzt3QkFDMUMsK0NBQStDO3dCQUNqRDtvQkFDRjtvQkFFQTtnQkFDRjtZQUVBLEtBQUs7WUFDTCxLQUFLO2dCQUFVO29CQUNiLElBQ0VoQixXQUFXLENBQUNMLE1BQU1RLElBQUksQ0FBQyxLQUFLLE1BQzVCSCxXQUFXLENBQUNMLE1BQU1RLElBQUksQ0FBQyxLQUFLLFVBQzVCSCxXQUFXLENBQUNMLE1BQU1RLElBQUksQ0FBQyxLQUFLLFVBQzVCSCxXQUFXLENBQUNMLE1BQU1RLElBQUksQ0FBQyxLQUFLLE1BQzVCO3dCQUNBLElBQUlSLE1BQU1TLElBQUksS0FBSyxrQkFBa0JULE1BQU13QixPQUFPLEtBQUssTUFBTTs0QkFDM0RuQixXQUFXLENBQUNMLE1BQU1RLElBQUksQ0FBQyxHQUFHLEVBQUU7d0JBQzlCLE9BQU87NEJBQ0xILFdBQVcsQ0FBQ0wsTUFBTVEsSUFBSSxDQUFDLEdBQUc7d0JBQzVCO29CQUNGO29CQUVBLE1BQU1FLFFBQVFMLFdBQVcsQ0FBQ0wsTUFBTVEsSUFBSSxDQUFDO29CQUVyQyxJQUFJUSxNQUFNQyxPQUFPLENBQUNqQixNQUFNeUIsVUFBVSxHQUFHO3dCQUNuQyxJQUFJVCxNQUFNQyxPQUFPLENBQUNQLFFBQVE7NEJBQ3hCQSxNQUFNZ0IsT0FBTyxDQUFDLENBQUNDLFlBQW9EUDtnQ0FDakUsTUFBTVEsb0JBQW9CeEIsSUFBSXlCLE9BQU8sQ0FBQ0MsTUFBTSxDQUFDQyxXQUFXLENBQUNDLElBQUksQ0FDM0QsQ0FBQ3BDLGFBQWVBLFdBQVdxQyxJQUFJLEtBQUtOLFdBQVdGLFVBQVU7Z0NBRTNELE1BQU1TLHNCQUFzQk4sa0JBQWtCTyxNQUFNLENBQUNILElBQUksQ0FDdkQsQ0FBQ0ksa0JBQ0M3QixJQUFBQSx1QkFBZ0IsRUFBQzZCLG9CQUFvQkEsZ0JBQWdCNUIsSUFBSSxLQUFLO2dDQUVsRSxJQUFJMEIscUJBQXFCekIsU0FBUyxVQUFVO29DQUMxQ0osV0FBVyxDQUFDTCxNQUFNUSxJQUFJLENBQUMsQ0FBQ1ksRUFBRSxHQUFHO3dDQUMzQixHQUFHTyxVQUFVO3dDQUNiakIsT0FBT0MsV0FBV2dCLFdBQVdqQixLQUFLO29DQUNwQztnQ0FDRjs0QkFDRjt3QkFDRjt3QkFDQSxJQUNFVixNQUFNUyxJQUFJLEtBQUssa0JBQ2ZULE1BQU13QixPQUFPLEtBQUssUUFDbEJhLElBQUFBLCtCQUF3QixFQUFDM0IsUUFDekI7NEJBQ0EsTUFBTWtCLG9CQUFvQnhCLElBQUl5QixPQUFPLENBQUNDLE1BQU0sQ0FBQ0MsV0FBVyxDQUFDQyxJQUFJLENBQzNELENBQUNwQyxhQUFlQSxXQUFXcUMsSUFBSSxLQUFLdkIsTUFBTWUsVUFBVTs0QkFFdEQsTUFBTVMsc0JBQXNCTixrQkFBa0JPLE1BQU0sQ0FBQ0gsSUFBSSxDQUN2RCxDQUFDSSxrQkFDQzdCLElBQUFBLHVCQUFnQixFQUFDNkIsb0JBQW9CQSxnQkFBZ0I1QixJQUFJLEtBQUs7NEJBRWxFLElBQUkwQixxQkFBcUJ6QixTQUFTLFVBQVU7Z0NBQzFDSixXQUFXLENBQUNMLE1BQU1RLElBQUksQ0FBQyxHQUFHO29DQUFFLEdBQUdFLEtBQUs7b0NBQUVBLE9BQU9DLFdBQVdELE1BQU1BLEtBQUs7Z0NBQVk7NEJBQ2pGO3dCQUNGO29CQUNGLE9BQU87d0JBQ0wsSUFBSU0sTUFBTUMsT0FBTyxDQUFDUCxRQUFROzRCQUN4QkEsTUFBTWdCLE9BQU8sQ0FBQyxDQUFDQyxZQUFxQlA7Z0NBQ2xDLE1BQU1RLG9CQUFvQnhCLElBQUl5QixPQUFPLENBQUNDLE1BQU0sQ0FBQ0MsV0FBVyxDQUFDQyxJQUFJLENBQzNELENBQUNwQyxhQUFlQSxXQUFXcUMsSUFBSSxLQUFLakMsTUFBTXlCLFVBQVU7Z0NBRXRELE1BQU1TLHNCQUFzQk4sa0JBQWtCTyxNQUFNLENBQUNILElBQUksQ0FDdkQsQ0FBQ0ksa0JBQ0M3QixJQUFBQSx1QkFBZ0IsRUFBQzZCLG9CQUFvQkEsZ0JBQWdCNUIsSUFBSSxLQUFLO2dDQUVsRSxJQUFJMEIscUJBQXFCekIsU0FBUyxVQUFVO29DQUMxQ0osV0FBVyxDQUFDTCxNQUFNUSxJQUFJLENBQUMsQ0FBQ1ksRUFBRSxHQUFHVCxXQUFXZ0I7Z0NBQzFDOzRCQUNGO3dCQUNGO3dCQUNBLElBQUkzQixNQUFNUyxJQUFJLEtBQUssa0JBQWtCVCxNQUFNd0IsT0FBTyxLQUFLLFFBQVFkLE9BQU87NEJBQ3BFLE1BQU1rQixvQkFBb0J4QixJQUFJeUIsT0FBTyxDQUFDQyxNQUFNLENBQUNDLFdBQVcsQ0FBQ0MsSUFBSSxDQUMzRCxDQUFDcEMsYUFBZUEsV0FBV3FDLElBQUksS0FBS2pDLE1BQU15QixVQUFVOzRCQUV0RCxNQUFNUyxzQkFBc0JOLGtCQUFrQk8sTUFBTSxDQUFDSCxJQUFJLENBQ3ZELENBQUNJLGtCQUNDN0IsSUFBQUEsdUJBQWdCLEVBQUM2QixvQkFBb0JBLGdCQUFnQjVCLElBQUksS0FBSzs0QkFFbEUsSUFBSTBCLHFCQUFxQnpCLFNBQVMsVUFBVTtnQ0FDMUNKLFdBQVcsQ0FBQ0wsTUFBTVEsSUFBSSxDQUFDLEdBQUdHLFdBQVdEOzRCQUN2Qzt3QkFDRjtvQkFDRjtvQkFDQTtnQkFDRjtZQUVBLEtBQUs7WUFDTCxLQUFLO2dCQUFVO29CQUNiLHNEQUFzRDtvQkFDdEQsSUFBSUwsV0FBVyxDQUFDTCxNQUFNUSxJQUFJLENBQUMsS0FBSyxPQUFPSCxXQUFXLENBQUNMLE1BQU1RLElBQUksQ0FBQyxLQUFLLEdBQUc7d0JBQ3BFSCxXQUFXLENBQUNMLE1BQU1RLElBQUksQ0FBQyxHQUFHLEVBQUU7b0JBQzlCO29CQUVBO2dCQUNGO1lBRUE7Z0JBQVM7b0JBQ1A7Z0JBQ0Y7UUFDRjtRQUVBLGdCQUFnQjtRQUNoQixJQUFJUixNQUFNc0MsS0FBSyxFQUFFQyxnQkFBZ0I7WUFDL0IsTUFBTXZDLE1BQU1zQyxLQUFLLENBQUNDLGNBQWMsQ0FBQ0MsTUFBTSxDQUFDLE9BQU9DLFdBQVdDO2dCQUN4RCxNQUFNRDtnQkFFTixNQUFNRSxjQUFjLE1BQU1ELFlBQVk7b0JBQ3BDOUM7b0JBQ0FDO29CQUNBQztvQkFDQUU7b0JBQ0FDO29CQUNBQztvQkFDQTBDLGFBQWE3QztvQkFDYks7b0JBQ0FDO29CQUNBSyxPQUFPTCxXQUFXLENBQUNMLE1BQU1RLElBQUksQ0FBQztnQkFDaEM7Z0JBRUEsSUFBSW1DLGdCQUFnQkUsV0FBVztvQkFDN0J4QyxXQUFXLENBQUNMLE1BQU1RLElBQUksQ0FBQyxHQUFHbUM7Z0JBQzVCO1lBQ0YsR0FBR0csUUFBUUMsT0FBTztRQUNwQjtRQUVBLHlCQUF5QjtRQUN6QixJQUFJL0MsTUFBTWdELE1BQU0sSUFBSWhELE1BQU1nRCxNQUFNLENBQUM5QyxVQUFVLEVBQUU7WUFDM0MsTUFBTStDLFNBQVM5QyxpQkFDWCxPQUNBLE1BQU1ILE1BQU1nRCxNQUFNLENBQUM5QyxVQUFVLENBQUM7Z0JBQUVQO2dCQUFJRztnQkFBTUM7Z0JBQUtLO2dCQUFLQztZQUFZO1lBRXBFLElBQUksQ0FBQzRDLFFBQVE7Z0JBQ1gsT0FBTzVDLFdBQVcsQ0FBQ0wsTUFBTVEsSUFBSSxDQUFDO1lBQ2hDO1FBQ0Y7UUFFQSxJQUFJLE9BQU9ILFdBQVcsQ0FBQ0wsTUFBTVEsSUFBSSxDQUFDLEtBQUssYUFBYTtZQUNsRCx3RUFBd0U7WUFDeEUsSUFBSSxPQUFPRixVQUFVLENBQUNOLE1BQU1RLElBQUksQ0FBQyxLQUFLLGFBQWE7Z0JBQ2pESCxXQUFXLENBQUNMLE1BQU1RLElBQUksQ0FBQyxHQUFHMEMsSUFBQUEsa0RBQXdCLEVBQUM1QyxVQUFVLENBQUNOLE1BQU1RLElBQUksQ0FBQztZQUV6RSxrQ0FBa0M7WUFDcEMsT0FBTyxJQUFJLE9BQU9SLE1BQU1tRCxZQUFZLEtBQUssYUFBYTtnQkFDcEQ5QyxXQUFXLENBQUNMLE1BQU1RLElBQUksQ0FBQyxHQUFHLE1BQU00QyxJQUFBQSx3QkFBbUIsRUFBQztvQkFDbERELGNBQWNuRCxNQUFNbUQsWUFBWTtvQkFDaENFLFFBQVFqRCxJQUFJaUQsTUFBTTtvQkFDbEJDLE1BQU1sRCxJQUFJa0QsSUFBSTtvQkFDZDVDLE9BQU9MLFdBQVcsQ0FBQ0wsTUFBTVEsSUFBSSxDQUFDO2dCQUNoQztZQUNGO1FBQ0Y7SUFDRjtJQUVBLHFCQUFxQjtJQUNyQixPQUFRUixNQUFNUyxJQUFJO1FBQ2hCLEtBQUs7WUFBUztnQkFDWixJQUFJLE9BQU9KLFdBQVcsQ0FBQ0wsTUFBTVEsSUFBSSxDQUFDLEtBQUssVUFBVUgsV0FBVyxDQUFDTCxNQUFNUSxJQUFJLENBQUMsR0FBRyxDQUFDO2dCQUM1RSxJQUFJLE9BQU9GLFVBQVUsQ0FBQ04sTUFBTVEsSUFBSSxDQUFDLEtBQUssVUFBVUYsVUFBVSxDQUFDTixNQUFNUSxJQUFJLENBQUMsR0FBRyxDQUFDO2dCQUUxRSxNQUFNK0MsWUFBWWxELFdBQVcsQ0FBQ0wsTUFBTVEsSUFBSSxDQUFDO2dCQUN6QyxNQUFNZ0QsV0FBV2xELFVBQVUsQ0FBQ04sTUFBTVEsSUFBSSxDQUFDO2dCQUV2QyxNQUFNaUQsSUFBQUEsOEJBQWMsRUFBQztvQkFDbkI5RDtvQkFDQUM7b0JBQ0FDO29CQUNBQztvQkFDQUM7b0JBQ0FvQyxRQUFRbkMsTUFBTW1DLE1BQU07b0JBQ3BCbEM7b0JBQ0FDO29CQUNBQztvQkFDQUM7b0JBQ0FDLGFBQWFrRDtvQkFDYmpELFlBQVlrRDtnQkFDZDtnQkFFQTtZQUNGO1FBRUEsS0FBSztZQUFTO2dCQUNaLE1BQU1FLE9BQU9yRCxXQUFXLENBQUNMLE1BQU1RLElBQUksQ0FBQztnQkFFcEMsSUFBSVEsTUFBTUMsT0FBTyxDQUFDeUMsT0FBTztvQkFDdkIsTUFBTUMsV0FBVyxFQUFFO29CQUNuQkQsS0FBS2hDLE9BQU8sQ0FBQyxDQUFDa0M7d0JBQ1pELFNBQVNFLElBQUksQ0FDWEosSUFBQUEsOEJBQWMsRUFBQzs0QkFDYjlEOzRCQUNBQzs0QkFDQUM7NEJBQ0FDOzRCQUNBQzs0QkFDQW9DLFFBQVFuQyxNQUFNbUMsTUFBTTs0QkFDcEJsQzs0QkFDQUM7NEJBQ0FDOzRCQUNBQzs0QkFDQUMsYUFBYXVEOzRCQUNidEQsWUFBWXdELElBQUFBLG9DQUFpQixFQUFDRixLQUFLdEQsVUFBVSxDQUFDTixNQUFNUSxJQUFJLENBQUM7d0JBQzNEO29CQUVKO29CQUNBLE1BQU1zQyxRQUFRaUIsR0FBRyxDQUFDSjtnQkFDcEI7Z0JBQ0E7WUFDRjtRQUVBLEtBQUs7WUFBVTtnQkFDYixNQUFNRCxPQUFPckQsV0FBVyxDQUFDTCxNQUFNUSxJQUFJLENBQUM7Z0JBRXBDLElBQUlRLE1BQU1DLE9BQU8sQ0FBQ3lDLE9BQU87b0JBQ3ZCLE1BQU1DLFdBQVcsRUFBRTtvQkFDbkJELEtBQUtoQyxPQUFPLENBQUMsQ0FBQ2tDO3dCQUNaLE1BQU1JLGdCQUFnQkYsSUFBQUEsb0NBQWlCLEVBQUNGLEtBQUt0RCxVQUFVLENBQUNOLE1BQU1RLElBQUksQ0FBQzt3QkFDbkUsTUFBTXlELG1CQUFtQkwsSUFBSU0sU0FBUyxJQUFJRixjQUFjRSxTQUFTO3dCQUNqRSxNQUFNQyxRQUFRbkUsTUFBTW9FLE1BQU0sQ0FBQ3BDLElBQUksQ0FBQyxDQUFDa0MsWUFBY0EsVUFBVWpDLElBQUksS0FBS2dDO3dCQUVsRSxJQUFJRSxPQUFPOzRCQUNUUCxJQUFJTSxTQUFTLEdBQUdEOzRCQUVoQk4sU0FBU0UsSUFBSSxDQUNYSixJQUFBQSw4QkFBYyxFQUFDO2dDQUNiOUQ7Z0NBQ0FDO2dDQUNBQztnQ0FDQUM7Z0NBQ0FDO2dDQUNBb0MsUUFBUWdDLE1BQU1oQyxNQUFNO2dDQUNwQmxDO2dDQUNBQztnQ0FDQUM7Z0NBQ0FDO2dDQUNBQyxhQUFhdUQ7Z0NBQ2J0RCxZQUFZMEQ7NEJBQ2Q7d0JBRUo7b0JBQ0Y7b0JBQ0EsTUFBTWxCLFFBQVFpQixHQUFHLENBQUNKO2dCQUNwQjtnQkFFQTtZQUNGO1FBRUEsS0FBSztRQUNMLEtBQUs7WUFBZTtnQkFDbEIsTUFBTUYsSUFBQUEsOEJBQWMsRUFBQztvQkFDbkI5RDtvQkFDQUM7b0JBQ0FDO29CQUNBQztvQkFDQUM7b0JBQ0FvQyxRQUFRbkMsTUFBTW1DLE1BQU07b0JBQ3BCbEM7b0JBQ0FDO29CQUNBQztvQkFDQUM7b0JBQ0FDO29CQUNBQztnQkFDRjtnQkFFQTtZQUNGO1FBRUEsS0FBSztZQUFPO2dCQUNWLElBQUkrRDtnQkFDSixJQUFJQztnQkFDSixJQUFJQyxJQUFBQSxpQkFBVSxFQUFDdkUsUUFBUTtvQkFDckIsSUFBSSxPQUFPSyxXQUFXLENBQUNMLE1BQU1RLElBQUksQ0FBQyxLQUFLLFVBQVVILFdBQVcsQ0FBQ0wsTUFBTVEsSUFBSSxDQUFDLEdBQUcsQ0FBQztvQkFDNUUsSUFBSSxPQUFPRixVQUFVLENBQUNOLE1BQU1RLElBQUksQ0FBQyxLQUFLLFVBQVVGLFVBQVUsQ0FBQ04sTUFBTVEsSUFBSSxDQUFDLEdBQUcsQ0FBQztvQkFFMUU2RCxpQkFBaUJoRSxXQUFXLENBQUNMLE1BQU1RLElBQUksQ0FBQztvQkFDeEM4RCxnQkFBZ0JoRSxVQUFVLENBQUNOLE1BQU1RLElBQUksQ0FBQztnQkFDeEMsT0FBTztvQkFDTDZELGlCQUFpQmhFO29CQUNqQmlFLGdCQUFnQmhFO2dCQUNsQjtnQkFFQSxNQUFNbUQsSUFBQUEsOEJBQWMsRUFBQztvQkFDbkI5RDtvQkFDQUM7b0JBQ0FDO29CQUNBQztvQkFDQUM7b0JBQ0FvQyxRQUFRbkMsTUFBTW1DLE1BQU07b0JBQ3BCbEM7b0JBQ0FDO29CQUNBQztvQkFDQUM7b0JBQ0FDLGFBQWFnRTtvQkFDYi9ELFlBQVlnRTtnQkFDZDtnQkFFQTtZQUNGO1FBRUEsS0FBSztZQUFRO2dCQUNYLE1BQU1iLElBQUFBLDhCQUFjLEVBQUM7b0JBQ25COUQ7b0JBQ0FDO29CQUNBQztvQkFDQUM7b0JBQ0FDO29CQUNBb0MsUUFBUW5DLE1BQU13RSxJQUFJLENBQUN0RCxHQUFHLENBQUMsQ0FBQ3VELE1BQVMsQ0FBQTs0QkFBRSxHQUFHQSxHQUFHOzRCQUFFaEUsTUFBTTt3QkFBTSxDQUFBO29CQUN2RFI7b0JBQ0FDO29CQUNBQztvQkFDQUM7b0JBQ0FDO29CQUNBQztnQkFDRjtnQkFFQTtZQUNGO1FBRUE7WUFBUztnQkFDUDtZQUNGO0lBQ0Y7QUFDRiJ9
@@ -1,10 +1,14 @@
1
+ import type { SanitizedCollectionConfig } from '../../../collections/config/types';
1
2
  import type { PayloadRequest, RequestContext } from '../../../express/types';
3
+ import type { SanitizedGlobalConfig } from '../../../globals/config/types';
2
4
  import type { Field, TabAsField } from '../../config/types';
3
5
  type Args<T> = {
6
+ collection: SanitizedCollectionConfig | null;
4
7
  context: RequestContext;
5
8
  data: T;
6
9
  doc: T;
7
10
  fields: (Field | TabAsField)[];
11
+ global: SanitizedGlobalConfig | null;
8
12
  id?: number | string;
9
13
  operation: 'create' | 'update';
10
14
  overrideAccess: boolean;
@@ -12,6 +16,6 @@ type Args<T> = {
12
16
  siblingData: Record<string, unknown>;
13
17
  siblingDoc: Record<string, unknown>;
14
18
  };
15
- export declare const traverseFields: <T>({ id, context, data, doc, fields, operation, overrideAccess, req, siblingData, siblingDoc, }: Args<T>) => Promise<void>;
19
+ export declare const traverseFields: <T>({ id, collection, context, data, doc, fields, global, operation, overrideAccess, req, siblingData, siblingDoc, }: Args<T>) => Promise<void>;
16
20
  export {};
17
21
  //# sourceMappingURL=traverseFields.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../../../../src/fields/hooks/beforeValidate/traverseFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5E,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAI3D,KAAK,IAAI,CAAC,CAAC,IAAI;IACb,OAAO,EAAE,cAAc,CAAA;IACvB,IAAI,EAAE,CAAC,CAAA;IACP,GAAG,EAAE,CAAC,CAAA;IACN,MAAM,EAAE,CAAC,KAAK,GAAG,UAAU,CAAC,EAAE,CAAA;IAC9B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC9B,cAAc,EAAE,OAAO,CAAA;IACvB,GAAG,EAAE,cAAc,CAAA;IACnB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACpC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACpC,CAAA;AAED,eAAO,MAAM,cAAc,gHAWd,QAAQ,IAAI,CAmBxB,CAAA"}
1
+ {"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../../../../src/fields/hooks/beforeValidate/traverseFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AAClF,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AAC1E,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAI3D,KAAK,IAAI,CAAC,CAAC,IAAI;IACb,UAAU,EAAE,yBAAyB,GAAG,IAAI,CAAA;IAC5C,OAAO,EAAE,cAAc,CAAA;IACvB,IAAI,EAAE,CAAC,CAAA;IACP,GAAG,EAAE,CAAC,CAAA;IACN,MAAM,EAAE,CAAC,KAAK,GAAG,UAAU,CAAC,EAAE,CAAA;IAC9B,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAAA;IACpC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC9B,cAAc,EAAE,OAAO,CAAA;IACvB,GAAG,EAAE,cAAc,CAAA;IACnB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACpC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACpC,CAAA;AAED,eAAO,MAAM,cAAc,oIAad,QAAQ,IAAI,CAqBxB,CAAA"}
@@ -9,15 +9,17 @@ Object.defineProperty(exports, "traverseFields", {
9
9
  }
10
10
  });
11
11
  const _promise = require("./promise");
12
- const traverseFields = async ({ id, context, data, doc, fields, operation, overrideAccess, req, siblingData, siblingDoc })=>{
12
+ const traverseFields = async ({ id, collection, context, data, doc, fields, global, operation, overrideAccess, req, siblingData, siblingDoc })=>{
13
13
  const promises = [];
14
14
  fields.forEach((field)=>{
15
15
  promises.push((0, _promise.promise)({
16
16
  id,
17
+ collection,
17
18
  context,
18
19
  data,
19
20
  doc,
20
21
  field,
22
+ global,
21
23
  operation,
22
24
  overrideAccess,
23
25
  req,
@@ -28,4 +30,4 @@ const traverseFields = async ({ id, context, data, doc, fields, operation, overr
28
30
  await Promise.all(promises);
29
31
  };
30
32
 
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZHMvaG9va3MvYmVmb3JlVmFsaWRhdGUvdHJhdmVyc2VGaWVsZHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQYXlsb2FkUmVxdWVzdCwgUmVxdWVzdENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9leHByZXNzL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBGaWVsZCwgVGFiQXNGaWVsZCB9IGZyb20gJy4uLy4uL2NvbmZpZy90eXBlcydcblxuaW1wb3J0IHsgcHJvbWlzZSB9IGZyb20gJy4vcHJvbWlzZSdcblxudHlwZSBBcmdzPFQ+ID0ge1xuICBjb250ZXh0OiBSZXF1ZXN0Q29udGV4dFxuICBkYXRhOiBUXG4gIGRvYzogVFxuICBmaWVsZHM6IChGaWVsZCB8IFRhYkFzRmllbGQpW11cbiAgaWQ/OiBudW1iZXIgfCBzdHJpbmdcbiAgb3BlcmF0aW9uOiAnY3JlYXRlJyB8ICd1cGRhdGUnXG4gIG92ZXJyaWRlQWNjZXNzOiBib29sZWFuXG4gIHJlcTogUGF5bG9hZFJlcXVlc3RcbiAgc2libGluZ0RhdGE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gIHNpYmxpbmdEb2M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG59XG5cbmV4cG9ydCBjb25zdCB0cmF2ZXJzZUZpZWxkcyA9IGFzeW5jIDxUPih7XG4gIGlkLFxuICBjb250ZXh0LFxuICBkYXRhLFxuICBkb2MsXG4gIGZpZWxkcyxcbiAgb3BlcmF0aW9uLFxuICBvdmVycmlkZUFjY2VzcyxcbiAgcmVxLFxuICBzaWJsaW5nRGF0YSxcbiAgc2libGluZ0RvYyxcbn06IEFyZ3M8VD4pOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgY29uc3QgcHJvbWlzZXMgPSBbXVxuICBmaWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgICBwcm9taXNlcy5wdXNoKFxuICAgICAgcHJvbWlzZSh7XG4gICAgICAgIGlkLFxuICAgICAgICBjb250ZXh0LFxuICAgICAgICBkYXRhLFxuICAgICAgICBkb2MsXG4gICAgICAgIGZpZWxkLFxuICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgIG92ZXJyaWRlQWNjZXNzLFxuICAgICAgICByZXEsXG4gICAgICAgIHNpYmxpbmdEYXRhLFxuICAgICAgICBzaWJsaW5nRG9jLFxuICAgICAgfSksXG4gICAgKVxuICB9KVxuICBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcylcbn1cbiJdLCJuYW1lcyI6WyJ0cmF2ZXJzZUZpZWxkcyIsImlkIiwiY29udGV4dCIsImRhdGEiLCJkb2MiLCJmaWVsZHMiLCJvcGVyYXRpb24iLCJvdmVycmlkZUFjY2VzcyIsInJlcSIsInNpYmxpbmdEYXRhIiwic2libGluZ0RvYyIsInByb21pc2VzIiwiZm9yRWFjaCIsImZpZWxkIiwicHVzaCIsInByb21pc2UiLCJQcm9taXNlIiwiYWxsIl0sIm1hcHBpbmdzIjoiOzs7OytCQWtCYUE7OztlQUFBQTs7O3lCQWZXO0FBZWpCLE1BQU1BLGlCQUFpQixPQUFVLEVBQ3RDQyxFQUFFLEVBQ0ZDLE9BQU8sRUFDUEMsSUFBSSxFQUNKQyxHQUFHLEVBQ0hDLE1BQU0sRUFDTkMsU0FBUyxFQUNUQyxjQUFjLEVBQ2RDLEdBQUcsRUFDSEMsV0FBVyxFQUNYQyxVQUFVLEVBQ0Y7SUFDUixNQUFNQyxXQUFXLEVBQUU7SUFDbkJOLE9BQU9PLE9BQU8sQ0FBQyxDQUFDQztRQUNkRixTQUFTRyxJQUFJLENBQ1hDLElBQUFBLGdCQUFPLEVBQUM7WUFDTmQ7WUFDQUM7WUFDQUM7WUFDQUM7WUFDQVM7WUFDQVA7WUFDQUM7WUFDQUM7WUFDQUM7WUFDQUM7UUFDRjtJQUVKO0lBQ0EsTUFBTU0sUUFBUUMsR0FBRyxDQUFDTjtBQUNwQiJ9
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZHMvaG9va3MvYmVmb3JlVmFsaWRhdGUvdHJhdmVyc2VGaWVsZHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBQYXlsb2FkUmVxdWVzdCwgUmVxdWVzdENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9leHByZXNzL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRHbG9iYWxDb25maWcgfSBmcm9tICcuLi8uLi8uLi9nbG9iYWxzL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgRmllbGQsIFRhYkFzRmllbGQgfSBmcm9tICcuLi8uLi9jb25maWcvdHlwZXMnXG5cbmltcG9ydCB7IHByb21pc2UgfSBmcm9tICcuL3Byb21pc2UnXG5cbnR5cGUgQXJnczxUPiA9IHtcbiAgY29sbGVjdGlvbjogU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZyB8IG51bGxcbiAgY29udGV4dDogUmVxdWVzdENvbnRleHRcbiAgZGF0YTogVFxuICBkb2M6IFRcbiAgZmllbGRzOiAoRmllbGQgfCBUYWJBc0ZpZWxkKVtdXG4gIGdsb2JhbDogU2FuaXRpemVkR2xvYmFsQ29uZmlnIHwgbnVsbFxuICBpZD86IG51bWJlciB8IHN0cmluZ1xuICBvcGVyYXRpb246ICdjcmVhdGUnIHwgJ3VwZGF0ZSdcbiAgb3ZlcnJpZGVBY2Nlc3M6IGJvb2xlYW5cbiAgcmVxOiBQYXlsb2FkUmVxdWVzdFxuICBzaWJsaW5nRGF0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgc2libGluZ0RvYzogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbn1cblxuZXhwb3J0IGNvbnN0IHRyYXZlcnNlRmllbGRzID0gYXN5bmMgPFQ+KHtcbiAgaWQsXG4gIGNvbGxlY3Rpb24sXG4gIGNvbnRleHQsXG4gIGRhdGEsXG4gIGRvYyxcbiAgZmllbGRzLFxuICBnbG9iYWwsXG4gIG9wZXJhdGlvbixcbiAgb3ZlcnJpZGVBY2Nlc3MsXG4gIHJlcSxcbiAgc2libGluZ0RhdGEsXG4gIHNpYmxpbmdEb2MsXG59OiBBcmdzPFQ+KTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gIGNvbnN0IHByb21pc2VzID0gW11cbiAgZmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7XG4gICAgcHJvbWlzZXMucHVzaChcbiAgICAgIHByb21pc2Uoe1xuICAgICAgICBpZCxcbiAgICAgICAgY29sbGVjdGlvbixcbiAgICAgICAgY29udGV4dCxcbiAgICAgICAgZGF0YSxcbiAgICAgICAgZG9jLFxuICAgICAgICBmaWVsZCxcbiAgICAgICAgZ2xvYmFsLFxuICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgIG92ZXJyaWRlQWNjZXNzLFxuICAgICAgICByZXEsXG4gICAgICAgIHNpYmxpbmdEYXRhLFxuICAgICAgICBzaWJsaW5nRG9jLFxuICAgICAgfSksXG4gICAgKVxuICB9KVxuICBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcylcbn1cbiJdLCJuYW1lcyI6WyJ0cmF2ZXJzZUZpZWxkcyIsImlkIiwiY29sbGVjdGlvbiIsImNvbnRleHQiLCJkYXRhIiwiZG9jIiwiZmllbGRzIiwiZ2xvYmFsIiwib3BlcmF0aW9uIiwib3ZlcnJpZGVBY2Nlc3MiLCJyZXEiLCJzaWJsaW5nRGF0YSIsInNpYmxpbmdEb2MiLCJwcm9taXNlcyIsImZvckVhY2giLCJmaWVsZCIsInB1c2giLCJwcm9taXNlIiwiUHJvbWlzZSIsImFsbCJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFzQmFBOzs7ZUFBQUE7Ozt5QkFqQlc7QUFpQmpCLE1BQU1BLGlCQUFpQixPQUFVLEVBQ3RDQyxFQUFFLEVBQ0ZDLFVBQVUsRUFDVkMsT0FBTyxFQUNQQyxJQUFJLEVBQ0pDLEdBQUcsRUFDSEMsTUFBTSxFQUNOQyxNQUFNLEVBQ05DLFNBQVMsRUFDVEMsY0FBYyxFQUNkQyxHQUFHLEVBQ0hDLFdBQVcsRUFDWEMsVUFBVSxFQUNGO0lBQ1IsTUFBTUMsV0FBVyxFQUFFO0lBQ25CUCxPQUFPUSxPQUFPLENBQUMsQ0FBQ0M7UUFDZEYsU0FBU0csSUFBSSxDQUNYQyxJQUFBQSxnQkFBTyxFQUFDO1lBQ05oQjtZQUNBQztZQUNBQztZQUNBQztZQUNBQztZQUNBVTtZQUNBUjtZQUNBQztZQUNBQztZQUNBQztZQUNBQztZQUNBQztRQUNGO0lBRUo7SUFDQSxNQUFNTSxRQUFRQyxHQUFHLENBQUNOO0FBQ3BCIn0=
@@ -4,6 +4,7 @@ import type { CustomPreviewButtonProps, CustomPublishButtonProps, CustomSaveButt
4
4
  import type { User } from '../../auth/types';
5
5
  import type { Access, AdminViewComponent, EditView, Endpoint, EntityDescription, GeneratePreviewURL, LivePreviewConfig } from '../../config/types';
6
6
  import type { PayloadRequest } from '../../express/types';
7
+ import type { RequestContext } from '../../express/types';
7
8
  import type { Field } from '../../fields/config/types';
8
9
  import type { Where } from '../../types';
9
10
  import type { IncomingGlobalVersions, SanitizedGlobalVersions } from '../../versions/types';
@@ -11,27 +12,42 @@ export type TypeWithID = {
11
12
  id: number | string;
12
13
  };
13
14
  export type BeforeValidateHook = (args: {
15
+ context: RequestContext;
14
16
  data?: any;
17
+ /** The global which this hook is being run on */
18
+ global: SanitizedGlobalConfig;
15
19
  originalDoc?: any;
16
20
  req?: PayloadRequest;
17
21
  }) => any;
18
22
  export type BeforeChangeHook = (args: {
23
+ context: RequestContext;
19
24
  data: any;
25
+ /** The global which this hook is being run on */
26
+ global: SanitizedGlobalConfig;
20
27
  originalDoc?: any;
21
28
  req: PayloadRequest;
22
29
  }) => any;
23
30
  export type AfterChangeHook = (args: {
31
+ context: RequestContext;
24
32
  doc: any;
33
+ /** The global which this hook is being run on */
34
+ global: SanitizedGlobalConfig;
25
35
  previousDoc: any;
26
36
  req: PayloadRequest;
27
37
  }) => any;
28
38
  export type BeforeReadHook = (args: {
39
+ context: RequestContext;
29
40
  doc: any;
41
+ /** The global which this hook is being run on */
42
+ global: SanitizedGlobalConfig;
30
43
  req: PayloadRequest;
31
44
  }) => any;
32
45
  export type AfterReadHook = (args: {
46
+ context: RequestContext;
33
47
  doc: any;
34
48
  findMany?: boolean;
49
+ /** The global which this hook is being run on */
50
+ global: SanitizedGlobalConfig;
35
51
  query?: Where;
36
52
  req: PayloadRequest;
37
53
  }) => any;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/globals/config/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/globals/config/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"findOne.d.ts","sourceRoot":"","sources":["../../../src/globals/operations/findOne.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEzD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAQ5D,KAAK,IAAI,GAAG;IACV,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,YAAY,EAAE,qBAAqB,CAAA;IACnC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,GAAG,EAAE,cAAc,CAAA;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,iBAAe,OAAO,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CA+GhF;AAED,eAAe,OAAO,CAAA"}
1
+ {"version":3,"file":"findOne.d.ts","sourceRoot":"","sources":["../../../src/globals/operations/findOne.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEzD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAQ5D,KAAK,IAAI,GAAG;IACV,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,YAAY,EAAE,qBAAqB,CAAA;IACnC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,GAAG,EAAE,cAAc,CAAA;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,iBAAe,OAAO,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAoHhF;AAED,eAAe,OAAO,CAAA"}
@@ -62,7 +62,9 @@ async function findOne(args) {
62
62
  await globalConfig.hooks.beforeRead.reduce(async (priorHook, hook)=>{
63
63
  await priorHook;
64
64
  doc = await hook({
65
+ context: req.context,
65
66
  doc,
67
+ global: globalConfig,
66
68
  req
67
69
  }) || doc;
68
70
  }, Promise.resolve());
@@ -70,10 +72,11 @@ async function findOne(args) {
70
72
  // Execute field-level hooks and access
71
73
  // /////////////////////////////////////
72
74
  doc = await (0, _afterRead.afterRead)({
75
+ collection: null,
73
76
  context: req.context,
74
77
  depth,
75
78
  doc,
76
- entityConfig: globalConfig,
79
+ global: globalConfig,
77
80
  overrideAccess,
78
81
  req,
79
82
  showHiddenFields
@@ -84,7 +87,9 @@ async function findOne(args) {
84
87
  await globalConfig.hooks.afterRead.reduce(async (priorHook, hook)=>{
85
88
  await priorHook;
86
89
  doc = await hook({
90
+ context: req.context,
87
91
  doc,
92
+ global: globalConfig,
88
93
  req
89
94
  }) || doc;
90
95
  }, Promise.resolve());
@@ -103,4 +108,4 @@ async function findOne(args) {
103
108
  }
104
109
  const _default = findOne;
105
110
 
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9nbG9iYWxzL29wZXJhdGlvbnMvZmluZE9uZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFjY2Vzc1Jlc3VsdCB9IGZyb20gJy4uLy4uL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgUGF5bG9hZFJlcXVlc3QgfSBmcm9tICcuLi8uLi9leHByZXNzL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBXaGVyZSB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRHbG9iYWxDb25maWcgfSBmcm9tICcuLi9jb25maWcvdHlwZXMnXG5cbmltcG9ydCBleGVjdXRlQWNjZXNzIGZyb20gJy4uLy4uL2F1dGgvZXhlY3V0ZUFjY2VzcydcbmltcG9ydCB7IGFmdGVyUmVhZCB9IGZyb20gJy4uLy4uL2ZpZWxkcy9ob29rcy9hZnRlclJlYWQnXG5pbXBvcnQgeyBpbml0VHJhbnNhY3Rpb24gfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvaW5pdFRyYW5zYWN0aW9uJ1xuaW1wb3J0IHsga2lsbFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2tpbGxUcmFuc2FjdGlvbidcbmltcG9ydCByZXBsYWNlV2l0aERyYWZ0SWZBdmFpbGFibGUgZnJvbSAnLi4vLi4vdmVyc2lvbnMvZHJhZnRzL3JlcGxhY2VXaXRoRHJhZnRJZkF2YWlsYWJsZSdcblxudHlwZSBBcmdzID0ge1xuICBkZXB0aD86IG51bWJlclxuICBkcmFmdD86IGJvb2xlYW5cbiAgZ2xvYmFsQ29uZmlnOiBTYW5pdGl6ZWRHbG9iYWxDb25maWdcbiAgbG9jYWxlPzogc3RyaW5nXG4gIG92ZXJyaWRlQWNjZXNzPzogYm9vbGVhblxuICByZXE6IFBheWxvYWRSZXF1ZXN0XG4gIHNob3dIaWRkZW5GaWVsZHM/OiBib29sZWFuXG4gIHNsdWc6IHN0cmluZ1xufVxuXG5hc3luYyBmdW5jdGlvbiBmaW5kT25lPFQgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4oYXJnczogQXJncyk6IFByb21pc2U8VD4ge1xuICBjb25zdCB7XG4gICAgZGVwdGgsXG4gICAgZHJhZnQ6IGRyYWZ0RW5hYmxlZCA9IGZhbHNlLFxuICAgIGdsb2JhbENvbmZpZyxcbiAgICBvdmVycmlkZUFjY2VzcyA9IGZhbHNlLFxuICAgIHJlcTogeyBsb2NhbGUsIHBheWxvYWQgfSxcbiAgICByZXEsXG4gICAgc2hvd0hpZGRlbkZpZWxkcyxcbiAgICBzbHVnLFxuICB9ID0gYXJnc1xuXG4gIHRyeSB7XG4gICAgY29uc3Qgc2hvdWxkQ29tbWl0ID0gYXdhaXQgaW5pdFRyYW5zYWN0aW9uKHJlcSlcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBSZXRyaWV2ZSBhbmQgZXhlY3V0ZSBhY2Nlc3NcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBsZXQgYWNjZXNzUmVzdWx0OiBBY2Nlc3NSZXN1bHRcblxuICAgIGlmICghb3ZlcnJpZGVBY2Nlc3MpIHtcbiAgICAgIGFjY2Vzc1Jlc3VsdCA9IGF3YWl0IGV4ZWN1dGVBY2Nlc3MoeyByZXEgfSwgZ2xvYmFsQ29uZmlnLmFjY2Vzcy5yZWFkKVxuICAgIH1cblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBQZXJmb3JtIGRhdGFiYXNlIG9wZXJhdGlvblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGxldCBkb2MgPSBhd2FpdCByZXEucGF5bG9hZC5kYi5maW5kR2xvYmFsKHtcbiAgICAgIGxvY2FsZSxcbiAgICAgIHJlcSxcbiAgICAgIHNsdWcsXG4gICAgICB3aGVyZTogb3ZlcnJpZGVBY2Nlc3MgPyB1bmRlZmluZWQgOiAoYWNjZXNzUmVzdWx0IGFzIFdoZXJlKSxcbiAgICB9KVxuICAgIGlmICghZG9jKSB7XG4gICAgICBkb2MgPSB7fVxuICAgIH1cblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBSZXBsYWNlIGRvY3VtZW50IHdpdGggZHJhZnQgaWYgYXZhaWxhYmxlXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgaWYgKGdsb2JhbENvbmZpZy52ZXJzaW9ucz8uZHJhZnRzICYmIGRyYWZ0RW5hYmxlZCkge1xuICAgICAgZG9jID0gYXdhaXQgcmVwbGFjZVdpdGhEcmFmdElmQXZhaWxhYmxlKHtcbiAgICAgICAgYWNjZXNzUmVzdWx0LFxuICAgICAgICBkb2MsXG4gICAgICAgIGVudGl0eTogZ2xvYmFsQ29uZmlnLFxuICAgICAgICBlbnRpdHlUeXBlOiAnZ2xvYmFsJyxcbiAgICAgICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgICAgIHJlcSxcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIEV4ZWN1dGUgYmVmb3JlIGdsb2JhbCBob29rXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgYXdhaXQgZ2xvYmFsQ29uZmlnLmhvb2tzLmJlZm9yZVJlYWQucmVkdWNlKGFzeW5jIChwcmlvckhvb2ssIGhvb2spID0+IHtcbiAgICAgIGF3YWl0IHByaW9ySG9va1xuXG4gICAgICBkb2MgPVxuICAgICAgICAoYXdhaXQgaG9vayh7XG4gICAgICAgICAgZG9jLFxuICAgICAgICAgIHJlcSxcbiAgICAgICAgfSkpIHx8IGRvY1xuICAgIH0sIFByb21pc2UucmVzb2x2ZSgpKVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIEV4ZWN1dGUgZmllbGQtbGV2ZWwgaG9va3MgYW5kIGFjY2Vzc1xuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGRvYyA9IGF3YWl0IGFmdGVyUmVhZCh7XG4gICAgICBjb250ZXh0OiByZXEuY29udGV4dCxcbiAgICAgIGRlcHRoLFxuICAgICAgZG9jLFxuICAgICAgZW50aXR5Q29uZmlnOiBnbG9iYWxDb25maWcsXG4gICAgICBvdmVycmlkZUFjY2VzcyxcbiAgICAgIHJlcSxcbiAgICAgIHNob3dIaWRkZW5GaWVsZHMsXG4gICAgfSlcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBFeGVjdXRlIGFmdGVyIGdsb2JhbCBob29rXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgYXdhaXQgZ2xvYmFsQ29uZmlnLmhvb2tzLmFmdGVyUmVhZC5yZWR1Y2UoYXN5bmMgKHByaW9ySG9vaywgaG9vaykgPT4ge1xuICAgICAgYXdhaXQgcHJpb3JIb29rXG5cbiAgICAgIGRvYyA9XG4gICAgICAgIChhd2FpdCBob29rKHtcbiAgICAgICAgICBkb2MsXG4gICAgICAgICAgcmVxLFxuICAgICAgICB9KSkgfHwgZG9jXG4gICAgfSwgUHJvbWlzZS5yZXNvbHZlKCkpXG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gUmV0dXJuIHJlc3VsdHNcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBpZiAoc2hvdWxkQ29tbWl0KSBhd2FpdCBwYXlsb2FkLmRiLmNvbW1pdFRyYW5zYWN0aW9uKHJlcS50cmFuc2FjdGlvbklEKVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIFJldHVybiByZXN1bHRzXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgcmV0dXJuIGRvY1xuICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgIGF3YWl0IGtpbGxUcmFuc2FjdGlvbihyZXEpXG4gICAgdGhyb3cgZXJyb3JcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBmaW5kT25lXG4iXSwibmFtZXMiOlsiZmluZE9uZSIsImFyZ3MiLCJkZXB0aCIsImRyYWZ0IiwiZHJhZnRFbmFibGVkIiwiZ2xvYmFsQ29uZmlnIiwib3ZlcnJpZGVBY2Nlc3MiLCJyZXEiLCJsb2NhbGUiLCJwYXlsb2FkIiwic2hvd0hpZGRlbkZpZWxkcyIsInNsdWciLCJzaG91bGRDb21taXQiLCJpbml0VHJhbnNhY3Rpb24iLCJhY2Nlc3NSZXN1bHQiLCJleGVjdXRlQWNjZXNzIiwiYWNjZXNzIiwicmVhZCIsImRvYyIsImRiIiwiZmluZEdsb2JhbCIsIndoZXJlIiwidW5kZWZpbmVkIiwidmVyc2lvbnMiLCJkcmFmdHMiLCJyZXBsYWNlV2l0aERyYWZ0SWZBdmFpbGFibGUiLCJlbnRpdHkiLCJlbnRpdHlUeXBlIiwiaG9va3MiLCJiZWZvcmVSZWFkIiwicmVkdWNlIiwicHJpb3JIb29rIiwiaG9vayIsIlByb21pc2UiLCJyZXNvbHZlIiwiYWZ0ZXJSZWFkIiwiY29udGV4dCIsImVudGl0eUNvbmZpZyIsImNvbW1pdFRyYW5zYWN0aW9uIiwidHJhbnNhY3Rpb25JRCIsImVycm9yIiwia2lsbFRyYW5zYWN0aW9uIl0sIm1hcHBpbmdzIjoiOzs7OytCQXVJQTs7O2VBQUE7OztzRUFsSTBCOzJCQUNBO2lDQUNNO2lDQUNBO29GQUNROzs7Ozs7QUFheEMsZUFBZUEsUUFBMkNDLElBQVU7SUFDbEUsTUFBTSxFQUNKQyxLQUFLLEVBQ0xDLE9BQU9DLGVBQWUsS0FBSyxFQUMzQkMsWUFBWSxFQUNaQyxpQkFBaUIsS0FBSyxFQUN0QkMsS0FBSyxFQUFFQyxNQUFNLEVBQUVDLE9BQU8sRUFBRSxFQUN4QkYsR0FBRyxFQUNIRyxnQkFBZ0IsRUFDaEJDLElBQUksRUFDTCxHQUFHVjtJQUVKLElBQUk7UUFDRixNQUFNVyxlQUFlLE1BQU1DLElBQUFBLGdDQUFlLEVBQUNOO1FBRTNDLHdDQUF3QztRQUN4Qyw4QkFBOEI7UUFDOUIsd0NBQXdDO1FBRXhDLElBQUlPO1FBRUosSUFBSSxDQUFDUixnQkFBZ0I7WUFDbkJRLGVBQWUsTUFBTUMsSUFBQUEsc0JBQWEsRUFBQztnQkFBRVI7WUFBSSxHQUFHRixhQUFhVyxNQUFNLENBQUNDLElBQUk7UUFDdEU7UUFFQSx3Q0FBd0M7UUFDeEMsNkJBQTZCO1FBQzdCLHdDQUF3QztRQUV4QyxJQUFJQyxNQUFNLE1BQU1YLElBQUlFLE9BQU8sQ0FBQ1UsRUFBRSxDQUFDQyxVQUFVLENBQUM7WUFDeENaO1lBQ0FEO1lBQ0FJO1lBQ0FVLE9BQU9mLGlCQUFpQmdCLFlBQWFSO1FBQ3ZDO1FBQ0EsSUFBSSxDQUFDSSxLQUFLO1lBQ1JBLE1BQU0sQ0FBQztRQUNUO1FBRUEsd0NBQXdDO1FBQ3hDLDJDQUEyQztRQUMzQyx3Q0FBd0M7UUFFeEMsSUFBSWIsYUFBYWtCLFFBQVEsRUFBRUMsVUFBVXBCLGNBQWM7WUFDakRjLE1BQU0sTUFBTU8sSUFBQUEsb0NBQTJCLEVBQUM7Z0JBQ3RDWDtnQkFDQUk7Z0JBQ0FRLFFBQVFyQjtnQkFDUnNCLFlBQVk7Z0JBQ1pyQjtnQkFDQUM7WUFDRjtRQUNGO1FBRUEsd0NBQXdDO1FBQ3hDLDZCQUE2QjtRQUM3Qix3Q0FBd0M7UUFFeEMsTUFBTUYsYUFBYXVCLEtBQUssQ0FBQ0MsVUFBVSxDQUFDQyxNQUFNLENBQUMsT0FBT0MsV0FBV0M7WUFDM0QsTUFBTUQ7WUFFTmIsTUFDRSxBQUFDLE1BQU1jLEtBQUs7Z0JBQ1ZkO2dCQUNBWDtZQUNGLE1BQU9XO1FBQ1gsR0FBR2UsUUFBUUMsT0FBTztRQUVsQix3Q0FBd0M7UUFDeEMsdUNBQXVDO1FBQ3ZDLHdDQUF3QztRQUV4Q2hCLE1BQU0sTUFBTWlCLElBQUFBLG9CQUFTLEVBQUM7WUFDcEJDLFNBQVM3QixJQUFJNkIsT0FBTztZQUNwQmxDO1lBQ0FnQjtZQUNBbUIsY0FBY2hDO1lBQ2RDO1lBQ0FDO1lBQ0FHO1FBQ0Y7UUFFQSx3Q0FBd0M7UUFDeEMsNEJBQTRCO1FBQzVCLHdDQUF3QztRQUV4QyxNQUFNTCxhQUFhdUIsS0FBSyxDQUFDTyxTQUFTLENBQUNMLE1BQU0sQ0FBQyxPQUFPQyxXQUFXQztZQUMxRCxNQUFNRDtZQUVOYixNQUNFLEFBQUMsTUFBTWMsS0FBSztnQkFDVmQ7Z0JBQ0FYO1lBQ0YsTUFBT1c7UUFDWCxHQUFHZSxRQUFRQyxPQUFPO1FBRWxCLHdDQUF3QztRQUN4QyxpQkFBaUI7UUFDakIsd0NBQXdDO1FBRXhDLElBQUl0QixjQUFjLE1BQU1ILFFBQVFVLEVBQUUsQ0FBQ21CLGlCQUFpQixDQUFDL0IsSUFBSWdDLGFBQWE7UUFFdEUsd0NBQXdDO1FBQ3hDLGlCQUFpQjtRQUNqQix3Q0FBd0M7UUFFeEMsT0FBT3JCO0lBQ1QsRUFBRSxPQUFPc0IsT0FBZ0I7UUFDdkIsTUFBTUMsSUFBQUEsZ0NBQWUsRUFBQ2xDO1FBQ3RCLE1BQU1pQztJQUNSO0FBQ0Y7TUFFQSxXQUFleEMifQ==
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9nbG9iYWxzL29wZXJhdGlvbnMvZmluZE9uZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFjY2Vzc1Jlc3VsdCB9IGZyb20gJy4uLy4uL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgUGF5bG9hZFJlcXVlc3QgfSBmcm9tICcuLi8uLi9leHByZXNzL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBXaGVyZSB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRHbG9iYWxDb25maWcgfSBmcm9tICcuLi9jb25maWcvdHlwZXMnXG5cbmltcG9ydCBleGVjdXRlQWNjZXNzIGZyb20gJy4uLy4uL2F1dGgvZXhlY3V0ZUFjY2VzcydcbmltcG9ydCB7IGFmdGVyUmVhZCB9IGZyb20gJy4uLy4uL2ZpZWxkcy9ob29rcy9hZnRlclJlYWQnXG5pbXBvcnQgeyBpbml0VHJhbnNhY3Rpb24gfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvaW5pdFRyYW5zYWN0aW9uJ1xuaW1wb3J0IHsga2lsbFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2tpbGxUcmFuc2FjdGlvbidcbmltcG9ydCByZXBsYWNlV2l0aERyYWZ0SWZBdmFpbGFibGUgZnJvbSAnLi4vLi4vdmVyc2lvbnMvZHJhZnRzL3JlcGxhY2VXaXRoRHJhZnRJZkF2YWlsYWJsZSdcblxudHlwZSBBcmdzID0ge1xuICBkZXB0aD86IG51bWJlclxuICBkcmFmdD86IGJvb2xlYW5cbiAgZ2xvYmFsQ29uZmlnOiBTYW5pdGl6ZWRHbG9iYWxDb25maWdcbiAgbG9jYWxlPzogc3RyaW5nXG4gIG92ZXJyaWRlQWNjZXNzPzogYm9vbGVhblxuICByZXE6IFBheWxvYWRSZXF1ZXN0XG4gIHNob3dIaWRkZW5GaWVsZHM/OiBib29sZWFuXG4gIHNsdWc6IHN0cmluZ1xufVxuXG5hc3luYyBmdW5jdGlvbiBmaW5kT25lPFQgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4oYXJnczogQXJncyk6IFByb21pc2U8VD4ge1xuICBjb25zdCB7XG4gICAgZGVwdGgsXG4gICAgZHJhZnQ6IGRyYWZ0RW5hYmxlZCA9IGZhbHNlLFxuICAgIGdsb2JhbENvbmZpZyxcbiAgICBvdmVycmlkZUFjY2VzcyA9IGZhbHNlLFxuICAgIHJlcTogeyBsb2NhbGUsIHBheWxvYWQgfSxcbiAgICByZXEsXG4gICAgc2hvd0hpZGRlbkZpZWxkcyxcbiAgICBzbHVnLFxuICB9ID0gYXJnc1xuXG4gIHRyeSB7XG4gICAgY29uc3Qgc2hvdWxkQ29tbWl0ID0gYXdhaXQgaW5pdFRyYW5zYWN0aW9uKHJlcSlcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBSZXRyaWV2ZSBhbmQgZXhlY3V0ZSBhY2Nlc3NcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBsZXQgYWNjZXNzUmVzdWx0OiBBY2Nlc3NSZXN1bHRcblxuICAgIGlmICghb3ZlcnJpZGVBY2Nlc3MpIHtcbiAgICAgIGFjY2Vzc1Jlc3VsdCA9IGF3YWl0IGV4ZWN1dGVBY2Nlc3MoeyByZXEgfSwgZ2xvYmFsQ29uZmlnLmFjY2Vzcy5yZWFkKVxuICAgIH1cblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBQZXJmb3JtIGRhdGFiYXNlIG9wZXJhdGlvblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGxldCBkb2MgPSBhd2FpdCByZXEucGF5bG9hZC5kYi5maW5kR2xvYmFsKHtcbiAgICAgIGxvY2FsZSxcbiAgICAgIHJlcSxcbiAgICAgIHNsdWcsXG4gICAgICB3aGVyZTogb3ZlcnJpZGVBY2Nlc3MgPyB1bmRlZmluZWQgOiAoYWNjZXNzUmVzdWx0IGFzIFdoZXJlKSxcbiAgICB9KVxuICAgIGlmICghZG9jKSB7XG4gICAgICBkb2MgPSB7fVxuICAgIH1cblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBSZXBsYWNlIGRvY3VtZW50IHdpdGggZHJhZnQgaWYgYXZhaWxhYmxlXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgaWYgKGdsb2JhbENvbmZpZy52ZXJzaW9ucz8uZHJhZnRzICYmIGRyYWZ0RW5hYmxlZCkge1xuICAgICAgZG9jID0gYXdhaXQgcmVwbGFjZVdpdGhEcmFmdElmQXZhaWxhYmxlKHtcbiAgICAgICAgYWNjZXNzUmVzdWx0LFxuICAgICAgICBkb2MsXG4gICAgICAgIGVudGl0eTogZ2xvYmFsQ29uZmlnLFxuICAgICAgICBlbnRpdHlUeXBlOiAnZ2xvYmFsJyxcbiAgICAgICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgICAgIHJlcSxcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIEV4ZWN1dGUgYmVmb3JlIGdsb2JhbCBob29rXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgYXdhaXQgZ2xvYmFsQ29uZmlnLmhvb2tzLmJlZm9yZVJlYWQucmVkdWNlKGFzeW5jIChwcmlvckhvb2ssIGhvb2spID0+IHtcbiAgICAgIGF3YWl0IHByaW9ySG9va1xuXG4gICAgICBkb2MgPVxuICAgICAgICAoYXdhaXQgaG9vayh7XG4gICAgICAgICAgY29udGV4dDogcmVxLmNvbnRleHQsXG4gICAgICAgICAgZG9jLFxuICAgICAgICAgIGdsb2JhbDogZ2xvYmFsQ29uZmlnLFxuICAgICAgICAgIHJlcSxcbiAgICAgICAgfSkpIHx8IGRvY1xuICAgIH0sIFByb21pc2UucmVzb2x2ZSgpKVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIEV4ZWN1dGUgZmllbGQtbGV2ZWwgaG9va3MgYW5kIGFjY2Vzc1xuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGRvYyA9IGF3YWl0IGFmdGVyUmVhZCh7XG4gICAgICBjb2xsZWN0aW9uOiBudWxsLFxuICAgICAgY29udGV4dDogcmVxLmNvbnRleHQsXG4gICAgICBkZXB0aCxcbiAgICAgIGRvYyxcbiAgICAgIGdsb2JhbDogZ2xvYmFsQ29uZmlnLFxuICAgICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgICByZXEsXG4gICAgICBzaG93SGlkZGVuRmllbGRzLFxuICAgIH0pXG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gRXhlY3V0ZSBhZnRlciBnbG9iYWwgaG9va1xuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGF3YWl0IGdsb2JhbENvbmZpZy5ob29rcy5hZnRlclJlYWQucmVkdWNlKGFzeW5jIChwcmlvckhvb2ssIGhvb2spID0+IHtcbiAgICAgIGF3YWl0IHByaW9ySG9va1xuXG4gICAgICBkb2MgPVxuICAgICAgICAoYXdhaXQgaG9vayh7XG4gICAgICAgICAgY29udGV4dDogcmVxLmNvbnRleHQsXG4gICAgICAgICAgZG9jLFxuICAgICAgICAgIGdsb2JhbDogZ2xvYmFsQ29uZmlnLFxuICAgICAgICAgIHJlcSxcbiAgICAgICAgfSkpIHx8IGRvY1xuICAgIH0sIFByb21pc2UucmVzb2x2ZSgpKVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIFJldHVybiByZXN1bHRzXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgaWYgKHNob3VsZENvbW1pdCkgYXdhaXQgcGF5bG9hZC5kYi5jb21taXRUcmFuc2FjdGlvbihyZXEudHJhbnNhY3Rpb25JRClcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBSZXR1cm4gcmVzdWx0c1xuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIHJldHVybiBkb2NcbiAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICBhd2FpdCBraWxsVHJhbnNhY3Rpb24ocmVxKVxuICAgIHRocm93IGVycm9yXG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgZmluZE9uZVxuIl0sIm5hbWVzIjpbImZpbmRPbmUiLCJhcmdzIiwiZGVwdGgiLCJkcmFmdCIsImRyYWZ0RW5hYmxlZCIsImdsb2JhbENvbmZpZyIsIm92ZXJyaWRlQWNjZXNzIiwicmVxIiwibG9jYWxlIiwicGF5bG9hZCIsInNob3dIaWRkZW5GaWVsZHMiLCJzbHVnIiwic2hvdWxkQ29tbWl0IiwiaW5pdFRyYW5zYWN0aW9uIiwiYWNjZXNzUmVzdWx0IiwiZXhlY3V0ZUFjY2VzcyIsImFjY2VzcyIsInJlYWQiLCJkb2MiLCJkYiIsImZpbmRHbG9iYWwiLCJ3aGVyZSIsInVuZGVmaW5lZCIsInZlcnNpb25zIiwiZHJhZnRzIiwicmVwbGFjZVdpdGhEcmFmdElmQXZhaWxhYmxlIiwiZW50aXR5IiwiZW50aXR5VHlwZSIsImhvb2tzIiwiYmVmb3JlUmVhZCIsInJlZHVjZSIsInByaW9ySG9vayIsImhvb2siLCJjb250ZXh0IiwiZ2xvYmFsIiwiUHJvbWlzZSIsInJlc29sdmUiLCJhZnRlclJlYWQiLCJjb2xsZWN0aW9uIiwiY29tbWl0VHJhbnNhY3Rpb24iLCJ0cmFuc2FjdGlvbklEIiwiZXJyb3IiLCJraWxsVHJhbnNhY3Rpb24iXSwibWFwcGluZ3MiOiI7Ozs7K0JBNElBOzs7ZUFBQTs7O3NFQXZJMEI7MkJBQ0E7aUNBQ007aUNBQ0E7b0ZBQ1E7Ozs7OztBQWF4QyxlQUFlQSxRQUEyQ0MsSUFBVTtJQUNsRSxNQUFNLEVBQ0pDLEtBQUssRUFDTEMsT0FBT0MsZUFBZSxLQUFLLEVB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
@@ -1 +1 @@
1
- {"version":3,"file":"findVersionByID.d.ts","sourceRoot":"","sources":["../../../src/globals/operations/findVersionByID.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAS5D,MAAM,MAAM,SAAS,GAAG;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,YAAY,EAAE,qBAAqB,CAAA;IACnC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,GAAG,EAAE,cAAc,CAAA;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B,CAAA;AAED,iBAAe,eAAe,CAAC,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CA+G9F;AAED,eAAe,eAAe,CAAA"}
1
+ {"version":3,"file":"findVersionByID.d.ts","sourceRoot":"","sources":["../../../src/globals/operations/findVersionByID.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAS5D,MAAM,MAAM,SAAS,GAAG;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,YAAY,EAAE,qBAAqB,CAAA;IACnC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,GAAG,EAAE,cAAc,CAAA;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B,CAAA;AAED,iBAAe,eAAe,CAAC,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAoH9F;AAED,eAAe,eAAe,CAAA"}
@@ -65,7 +65,9 @@ async function findVersionByID(args) {
65
65
  await globalConfig.hooks.beforeRead.reduce(async (priorHook, hook)=>{
66
66
  await priorHook;
67
67
  result = await hook({
68
+ context: req.context,
68
69
  doc: result.version,
70
+ global: globalConfig,
69
71
  req
70
72
  }) || result.version;
71
73
  }, Promise.resolve());
@@ -73,11 +75,12 @@ async function findVersionByID(args) {
73
75
  // afterRead - Fields
74
76
  // /////////////////////////////////////
75
77
  result.version = await (0, _afterRead.afterRead)({
78
+ collection: null,
76
79
  context: req.context,
77
80
  currentDepth,
78
81
  depth,
79
82
  doc: result.version,
80
- entityConfig: globalConfig,
83
+ global: globalConfig,
81
84
  overrideAccess,
82
85
  req,
83
86
  showHiddenFields
@@ -88,7 +91,9 @@ async function findVersionByID(args) {
88
91
  await globalConfig.hooks.afterRead.reduce(async (priorHook, hook)=>{
89
92
  await priorHook;
90
93
  result.version = await hook({
94
+ context: req.context,
91
95
  doc: result.version,
96
+ global: globalConfig,
92
97
  query: findGlobalVersionsArgs.where,
93
98
  req
94
99
  }) || result.version;
@@ -105,4 +110,4 @@ async function findVersionByID(args) {
105
110
  }
106
111
  const _default = findVersionByID;
107
112
 
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9nbG9iYWxzL29wZXJhdGlvbnMvZmluZFZlcnNpb25CeUlELnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXVuZGVyc2NvcmUtZGFuZ2xlICovXG5pbXBvcnQgdHlwZSB7IEZpbmRHbG9iYWxWZXJzaW9uc0FyZ3MgfSBmcm9tICcuLi8uLi9kYXRhYmFzZS90eXBlcydcbmltcG9ydCB0eXBlIHsgUGF5bG9hZFJlcXVlc3QgfSBmcm9tICcuLi8uLi9leHByZXNzL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBUeXBlV2l0aFZlcnNpb24gfSBmcm9tICcuLi8uLi92ZXJzaW9ucy90eXBlcydcbmltcG9ydCB0eXBlIHsgU2FuaXRpemVkR2xvYmFsQ29uZmlnIH0gZnJvbSAnLi4vY29uZmlnL3R5cGVzJ1xuXG5pbXBvcnQgZXhlY3V0ZUFjY2VzcyBmcm9tICcuLi8uLi9hdXRoL2V4ZWN1dGVBY2Nlc3MnXG5pbXBvcnQgeyBjb21iaW5lUXVlcmllcyB9IGZyb20gJy4uLy4uL2RhdGFiYXNlL2NvbWJpbmVRdWVyaWVzJ1xuaW1wb3J0IHsgRm9yYmlkZGVuLCBOb3RGb3VuZCB9IGZyb20gJy4uLy4uL2Vycm9ycydcbmltcG9ydCB7IGFmdGVyUmVhZCB9IGZyb20gJy4uLy4uL2ZpZWxkcy9ob29rcy9hZnRlclJlYWQnXG5pbXBvcnQgeyBpbml0VHJhbnNhY3Rpb24gfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvaW5pdFRyYW5zYWN0aW9uJ1xuaW1wb3J0IHsga2lsbFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2tpbGxUcmFuc2FjdGlvbidcblxuZXhwb3J0IHR5cGUgQXJndW1lbnRzID0ge1xuICBjdXJyZW50RGVwdGg/OiBudW1iZXJcbiAgZGVwdGg/OiBudW1iZXJcbiAgZGlzYWJsZUVycm9ycz86IGJvb2xlYW5cbiAgZ2xvYmFsQ29uZmlnOiBTYW5pdGl6ZWRHbG9iYWxDb25maWdcbiAgaWQ6IG51bWJlciB8IHN0cmluZ1xuICBvdmVycmlkZUFjY2Vzcz86IGJvb2xlYW5cbiAgcmVxOiBQYXlsb2FkUmVxdWVzdFxuICBzaG93SGlkZGVuRmllbGRzPzogYm9vbGVhblxufVxuXG5hc3luYyBmdW5jdGlvbiBmaW5kVmVyc2lvbkJ5SUQ8VCBleHRlbmRzIFR5cGVXaXRoVmVyc2lvbjxUPiA9IGFueT4oYXJnczogQXJndW1lbnRzKTogUHJvbWlzZTxUPiB7XG4gIGNvbnN0IHtcbiAgICBpZCxcbiAgICBjdXJyZW50RGVwdGgsXG4gICAgZGVwdGgsXG4gICAgZGlzYWJsZUVycm9ycyxcbiAgICBnbG9iYWxDb25maWcsXG4gICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgcmVxOiB7IGxvY2FsZSwgcGF5bG9hZCwgdCB9LFxuICAgIHJlcSxcbiAgICBzaG93SGlkZGVuRmllbGRzLFxuICB9ID0gYXJnc1xuXG4gIHRyeSB7XG4gICAgY29uc3Qgc2hvdWxkQ29tbWl0ID0gYXdhaXQgaW5pdFRyYW5zYWN0aW9uKHJlcSlcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBBY2Nlc3NcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBjb25zdCBhY2Nlc3NSZXN1bHRzID0gIW92ZXJyaWRlQWNjZXNzXG4gICAgICA/IGF3YWl0IGV4ZWN1dGVBY2Nlc3MoeyBpZCwgZGlzYWJsZUVycm9ycywgcmVxIH0sIGdsb2JhbENvbmZpZy5hY2Nlc3MucmVhZFZlcnNpb25zKVxuICAgICAgOiB0cnVlXG5cbiAgICAvLyBJZiBlcnJvcnMgYXJlIGRpc2FibGVkLCBhbmQgYWNjZXNzIHJldHVybnMgZmFsc2UsIHJldHVybiBudWxsXG4gICAgaWYgKGFjY2Vzc1Jlc3VsdHMgPT09IGZhbHNlKSByZXR1cm4gbnVsbFxuXG4gICAgY29uc3QgaGFzV2hlcmVBY2Nlc3MgPSB0eXBlb2YgYWNjZXNzUmVzdWx0cyA9PT0gJ29iamVjdCdcblxuICAgIGNvbnN0IGZpbmRHbG9iYWxWZXJzaW9uc0FyZ3M6IEZpbmRHbG9iYWxWZXJzaW9uc0FyZ3MgPSB7XG4gICAgICBnbG9iYWw6IGdsb2JhbENvbmZpZy5zbHVnLFxuICAgICAgbGltaXQ6IDEsXG4gICAgICBsb2NhbGUsXG4gICAgICByZXEsXG4gICAgICB3aGVyZTogY29tYmluZVF1ZXJpZXMoeyBpZDogeyBlcXVhbHM6IGlkIH0gfSwgYWNjZXNzUmVzdWx0cyksXG4gICAgfVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIEZpbmQgYnkgSURcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBpZiAoIWZpbmRHbG9iYWxWZXJzaW9uc0FyZ3Mud2hlcmUuYW5kWzBdLmlkKSB0aHJvdyBuZXcgTm90Rm91bmQodClcblxuICAgIGNvbnN0IHsgZG9jczogcmVzdWx0cyB9ID0gYXdhaXQgcGF5bG9hZC5kYi5maW5kR2xvYmFsVmVyc2lvbnMoZmluZEdsb2JhbFZlcnNpb25zQXJncylcbiAgICBpZiAoIXJlc3VsdHMgfHwgcmVzdWx0cz8ubGVuZ3RoID09PSAwKSB7XG4gICAgICBpZiAoIWRpc2FibGVFcnJvcnMpIHtcbiAgICAgICAgaWYgKCFoYXNXaGVyZUFjY2VzcykgdGhyb3cgbmV3IE5vdEZvdW5kKHQpXG4gICAgICAgIGlmIChoYXNXaGVyZUFjY2VzcykgdGhyb3cgbmV3IEZvcmJpZGRlbih0KVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cblxuICAgIC8vIENsb25lIHRoZSByZXN1bHQgLSBpdCBtYXkgaGF2ZSBjb21lIGJhY2sgbWVtb2l6ZWRcbiAgICBsZXQgcmVzdWx0ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShyZXN1bHRzWzBdKSlcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBiZWZvcmVSZWFkIC0gQ29sbGVjdGlvblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGF3YWl0IGdsb2JhbENvbmZpZy5ob29rcy5iZWZvcmVSZWFkLnJlZHVjZShhc3luYyAocHJpb3JIb29rLCBob29rKSA9PiB7XG4gICAgICBhd2FpdCBwcmlvckhvb2tcblxuICAgICAgcmVzdWx0ID1cbiAgICAgICAgKGF3YWl0IGhvb2soe1xuICAgICAgICAgIGRvYzogcmVzdWx0LnZlcnNpb24sXG4gICAgICAgICAgcmVxLFxuICAgICAgICB9KSkgfHwgcmVzdWx0LnZlcnNpb25cbiAgICB9LCBQcm9taXNlLnJlc29sdmUoKSlcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBhZnRlclJlYWQgLSBGaWVsZHNcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICByZXN1bHQudmVyc2lvbiA9IGF3YWl0IGFmdGVyUmVhZCh7XG4gICAgICBjb250ZXh0OiByZXEuY29udGV4dCxcbiAgICAgIGN1cnJlbnREZXB0aCxcbiAgICAgIGRlcHRoLFxuICAgICAgZG9jOiByZXN1bHQudmVyc2lvbixcbiAgICAgIGVudGl0eUNvbmZpZzogZ2xvYmFsQ29uZmlnLFxuICAgICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgICByZXEsXG4gICAgICBzaG93SGlkZGVuRmllbGRzLFxuICAgIH0pXG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gYWZ0ZXJSZWFkIC0gR2xvYmFsXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgYXdhaXQgZ2xvYmFsQ29uZmlnLmhvb2tzLmFmdGVyUmVhZC5yZWR1Y2UoYXN5bmMgKHByaW9ySG9vaywgaG9vaykgPT4ge1xuICAgICAgYXdhaXQgcHJpb3JIb29rXG5cbiAgICAgIHJlc3VsdC52ZXJzaW9uID1cbiAgICAgICAgKGF3YWl0IGhvb2soe1xuICAgICAgICAgIGRvYzogcmVzdWx0LnZlcnNpb24sXG4gICAgICAgICAgcXVlcnk6IGZpbmRHbG9iYWxWZXJzaW9uc0FyZ3Mud2hlcmUsXG4gICAgICAgICAgcmVxLFxuICAgICAgICB9KSkgfHwgcmVzdWx0LnZlcnNpb25cbiAgICB9LCBQcm9taXNlLnJlc29sdmUoKSlcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBSZXR1cm4gcmVzdWx0c1xuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGlmIChzaG91bGRDb21taXQpIGF3YWl0IHBheWxvYWQuZGIuY29tbWl0VHJhbnNhY3Rpb24ocmVxLnRyYW5zYWN0aW9uSUQpXG5cbiAgICByZXR1cm4gcmVzdWx0XG4gIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgYXdhaXQga2lsbFRyYW5zYWN0aW9uKHJlcSlcbiAgICB0aHJvdyBlcnJvclxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZpbmRWZXJzaW9uQnlJRFxuIl0sIm5hbWVzIjpbImZpbmRWZXJzaW9uQnlJRCIsImFyZ3MiLCJpZCIsImN1cnJlbnREZXB0aCIsImRlcHRoIiwiZGlzYWJsZUVycm9ycyIsImdsb2JhbENvbmZpZyIsIm92ZXJyaWRlQWNjZXNzIiwicmVxIiwibG9jYWxlIiwicGF5bG9hZCIsInQiLCJzaG93SGlkZGVuRmllbGRzIiwic2hvdWxkQ29tbWl0IiwiaW5pdFRyYW5zYWN0aW9uIiwiYWNjZXNzUmVzdWx0cyIsImV4ZWN1dGVBY2Nlc3MiLCJhY2Nlc3MiLCJyZWFkVmVyc2lvbnMiLCJoYXNXaGVyZUFjY2VzcyIsImZpbmRHbG9iYWxWZXJzaW9uc0FyZ3MiLCJnbG9iYWwiLCJzbHVnIiwibGltaXQiLCJ3aGVyZSIsImNvbWJpbmVRdWVyaWVzIiwiZXF1YWxzIiwiYW5kIiwiTm90Rm91bmQiLCJkb2NzIiwicmVzdWx0cyIsImRiIiwiZmluZEdsb2JhbFZlcnNpb25zIiwibGVuZ3RoIiwiRm9yYmlkZGVuIiwicmVzdWx0IiwiSlNPTiIsInBhcnNlIiwic3RyaW5naWZ5IiwiaG9va3MiLCJiZWZvcmVSZWFkIiwicmVkdWNlIiwicHJpb3JIb29rIiwiaG9vayIsImRvYyIsInZlcnNpb24iLCJQcm9taXNlIiwicmVzb2x2ZSIsImFmdGVyUmVhZCIsImNvbnRleHQiLCJlbnRpdHlDb25maWciLCJxdWVyeSIsImNvbW1pdFRyYW5zYWN0aW9uIiwidHJhbnNhY3Rpb25JRCIsImVycm9yIiwia2lsbFRyYW5zYWN0aW9uIl0sIm1hcHBpbmdzIjoiQUFBQSx1Q0FBdUM7Ozs7K0JBeUl2Qzs7O2VBQUE7OztzRUFuSTBCO2dDQUNLO3dCQUNLOzJCQUNWO2lDQUNNO2lDQUNBOzs7Ozs7QUFhaEMsZUFBZUEsZ0JBQW9EQyxJQUFlO0lBQ2hGLE1BQU0sRUFDSkMsRUFBRSxFQUNGQyxZQUFZLEVBQ1pDLEtBQUssRUFDTEMsYUFBYSxFQUNiQyxZQUFZLEVBQ1pDLGNBQWMsRUFDZEMsS0FBSyxFQUFFQyxNQUFNLEVBQUVDLE9BQU8sRUFBRUMsQ0FBQyxFQUFFLEVBQzNCSCxHQUFHLEVBQ0hJLGdCQUFnQixFQUNqQixHQUFHWDtJQUVKLElBQUk7UUFDRixNQUFNWSxlQUFlLE1BQU1DLElBQUFBLGdDQUFlLEVBQUNOO1FBRTNDLHdDQUF3QztRQUN4QyxTQUFTO1FBQ1Qsd0NBQXdDO1FBRXhDLE1BQU1PLGdCQUFnQixDQUFDUixpQkFDbkIsTUFBTVMsSUFBQUEsc0JBQWEsRUFBQztZQUFFZDtZQUFJRztZQUFlRztRQUFJLEdBQUdGLGFBQWFXLE1BQU0sQ0FBQ0MsWUFBWSxJQUNoRjtRQUVKLGdFQUFnRTtRQUNoRSxJQUFJSCxrQkFBa0IsT0FBTyxPQUFPO1FBRXBDLE1BQU1JLGlCQUFpQixPQUFPSixrQkFBa0I7UUFFaEQsTUFBTUsseUJBQWlEO1lBQ3JEQyxRQUFRZixhQUFhZ0IsSUFBSTtZQUN6QkMsT0FBTztZQUNQZDtZQUNBRDtZQUNBZ0IsT0FBT0MsSUFBQUEsOEJBQWMsRUFBQztnQkFBRXZCLElBQUk7b0JBQUV3QixRQUFReEI7Z0JBQUc7WUFBRSxHQUFHYTtRQUNoRDtRQUVBLHdDQUF3QztRQUN4QyxhQUFhO1FBQ2Isd0NBQXdDO1FBRXhDLElBQUksQ0FBQ0ssdUJBQXVCSSxLQUFLLENBQUNHLEdBQUcsQ0FBQyxFQUFFLENBQUN6QixFQUFFLEVBQUUsTUFBTSxJQUFJMEIsZ0JBQVEsQ0FBQ2pCO1FBRWhFLE1BQU0sRUFBRWtCLE1BQU1DLE9BQU8sRUFBRSxHQUFHLE1BQU1wQixRQUFRcUIsRUFBRSxDQUFDQyxrQkFBa0IsQ0FBQ1o7UUFDOUQsSUFBSSxDQUFDVSxXQUFXQSxTQUFTRyxXQUFXLEdBQUc7WUFDckMsSUFBSSxDQUFDNUIsZUFBZTtnQkFDbEIsSUFBSSxDQUFDYyxnQkFBZ0IsTUFBTSxJQUFJUyxnQkFBUSxDQUFDakI7Z0JBQ3hDLElBQUlRLGdCQUFnQixNQUFNLElBQUllLGlCQUFTLENBQUN2QjtZQUMxQztZQUVBLE9BQU87UUFDVDtRQUVBLG9EQUFvRDtRQUNwRCxJQUFJd0IsU0FBU0MsS0FBS0MsS0FBSyxDQUFDRCxLQUFLRSxTQUFTLENBQUNSLE9BQU8sQ0FBQyxFQUFFO1FBRWpELHdDQUF3QztRQUN4QywwQkFBMEI7UUFDMUIsd0NBQXdDO1FBRXhDLE1BQU14QixhQUFhaUMsS0FBSyxDQUFDQyxVQUFVLENBQUNDLE1BQU0sQ0FBQyxPQUFPQyxXQUFXQztZQUMzRCxNQUFNRDtZQUVOUCxTQUNFLEFBQUMsTUFBTVEsS0FBSztnQkFDVkMsS0FBS1QsT0FBT1UsT0FBTztnQkFDbkJyQztZQUNGLE1BQU8yQixPQUFPVSxPQUFPO1FBQ3pCLEdBQUdDLFFBQVFDLE9BQU87UUFFbEIsd0NBQXdDO1FBQ3hDLHFCQUFxQjtRQUNyQix3Q0FBd0M7UUFFeENaLE9BQU9VLE9BQU8sR0FBRyxNQUFNRyxJQUFBQSxvQkFBUyxFQUFDO1lBQy9CQyxTQUFTekMsSUFBSXlDLE9BQU87WUFDcEI5QztZQUNBQztZQUNBd0MsS0FBS1QsT0FBT1UsT0FBTztZQUNuQkssY0FBYzVDO1lBQ2RDO1lBQ0FDO1lBQ0FJO1FBQ0Y7UUFFQSx3Q0FBd0M7UUFDeEMscUJBQXFCO1FBQ3JCLHdDQUF3QztRQUV4QyxNQUFNTixhQUFhaUMsS0FBSyxDQUFDUyxTQUFTLENBQUNQLE1BQU0sQ0FBQyxPQUFPQyxXQUFXQztZQUMxRCxNQUFNRDtZQUVOUCxPQUFPVSxPQUFPLEdBQ1osQUFBQyxNQUFNRixLQUFLO2dCQUNWQyxLQUFLVCxPQUFPVSxPQUFPO2dCQUNuQk0sT0FBTy9CLHVCQUF1QkksS0FBSztnQkFDbkNoQjtZQUNGLE1BQU8yQixPQUFPVSxPQUFPO1FBQ3pCLEdBQUdDLFFBQVFDLE9BQU87UUFFbEIsd0NBQXdDO1FBQ3hDLGlCQUFpQjtRQUNqQix3Q0FBd0M7UUFFeEMsSUFBSWxDLGNBQWMsTUFBTUgsUUFBUXFCLEVBQUUsQ0FBQ3FCLGlCQUFpQixDQUFDNUMsSUFBSTZDLGFBQWE7UUFFdEUsT0FBT2xCO0lBQ1QsRUFBRSxPQUFPbUIsT0FBZ0I7UUFDdkIsTUFBTUMsSUFBQUEsZ0NBQWUsRUFBQy9DO1FBQ3RCLE1BQU04QztJQUNSO0FBQ0Y7TUFFQSxXQUFldEQifQ==
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9nbG9iYWxzL29wZXJhdGlvbnMvZmluZFZlcnNpb25CeUlELnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXVuZGVyc2NvcmUtZGFuZ2xlICovXG5pbXBvcnQgdHlwZSB7IEZpbmRHbG9iYWxWZXJzaW9uc0FyZ3MgfSBmcm9tICcuLi8uLi9kYXRhYmFzZS90eXBlcydcbmltcG9ydCB0eXBlIHsgUGF5bG9hZFJlcXVlc3QgfSBmcm9tICcuLi8uLi9leHByZXNzL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBUeXBlV2l0aFZlcnNpb24gfSBmcm9tICcuLi8uLi92ZXJzaW9ucy90eXBlcydcbmltcG9ydCB0eXBlIHsgU2FuaXRpemVkR2xvYmFsQ29uZmlnIH0gZnJvbSAnLi4vY29uZmlnL3R5cGVzJ1xuXG5pbXBvcnQgZXhlY3V0ZUFjY2VzcyBmcm9tICcuLi8uLi9hdXRoL2V4ZWN1dGVBY2Nlc3MnXG5pbXBvcnQgeyBjb21iaW5lUXVlcmllcyB9IGZyb20gJy4uLy4uL2RhdGFiYXNlL2NvbWJpbmVRdWVyaWVzJ1xuaW1wb3J0IHsgRm9yYmlkZGVuLCBOb3RGb3VuZCB9IGZyb20gJy4uLy4uL2Vycm9ycydcbmltcG9ydCB7IGFmdGVyUmVhZCB9IGZyb20gJy4uLy4uL2ZpZWxkcy9ob29rcy9hZnRlclJlYWQnXG5pbXBvcnQgeyBpbml0VHJhbnNhY3Rpb24gfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvaW5pdFRyYW5zYWN0aW9uJ1xuaW1wb3J0IHsga2lsbFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2tpbGxUcmFuc2FjdGlvbidcblxuZXhwb3J0IHR5cGUgQXJndW1lbnRzID0ge1xuICBjdXJyZW50RGVwdGg/OiBudW1iZXJcbiAgZGVwdGg/OiBudW1iZXJcbiAgZGlzYWJsZUVycm9ycz86IGJvb2xlYW5cbiAgZ2xvYmFsQ29uZmlnOiBTYW5pdGl6ZWRHbG9iYWxDb25maWdcbiAgaWQ6IG51bWJlciB8IHN0cmluZ1xuICBvdmVycmlkZUFjY2Vzcz86IGJvb2xlYW5cbiAgcmVxOiBQYXlsb2FkUmVxdWVzdFxuICBzaG93SGlkZGVuRmllbGRzPzogYm9vbGVhblxufVxuXG5hc3luYyBmdW5jdGlvbiBmaW5kVmVyc2lvbkJ5SUQ8VCBleHRlbmRzIFR5cGVXaXRoVmVyc2lvbjxUPiA9IGFueT4oYXJnczogQXJndW1lbnRzKTogUHJvbWlzZTxUPiB7XG4gIGNvbnN0IHtcbiAgICBpZCxcbiAgICBjdXJyZW50RGVwdGgsXG4gICAgZGVwdGgsXG4gICAgZGlzYWJsZUVycm9ycyxcbiAgICBnbG9iYWxDb25maWcsXG4gICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgcmVxOiB7IGxvY2FsZSwgcGF5bG9hZCwgdCB9LFxuICAgIHJlcSxcbiAgICBzaG93SGlkZGVuRmllbGRzLFxuICB9ID0gYXJnc1xuXG4gIHRyeSB7XG4gICAgY29uc3Qgc2hvdWxkQ29tbWl0ID0gYXdhaXQgaW5pdFRyYW5zYWN0aW9uKHJlcSlcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBBY2Nlc3NcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBjb25zdCBhY2Nlc3NSZXN1bHRzID0gIW92ZXJyaWRlQWNjZXNzXG4gICAgICA/IGF3YWl0IGV4ZWN1dGVBY2Nlc3MoeyBpZCwgZGlzYWJsZUVycm9ycywgcmVxIH0sIGdsb2JhbENvbmZpZy5hY2Nlc3MucmVhZFZlcnNpb25zKVxuICAgICAgOiB0cnVlXG5cbiAgICAvLyBJZiBlcnJvcnMgYXJlIGRpc2FibGVkLCBhbmQgYWNjZXNzIHJldHVybnMgZmFsc2UsIHJldHVybiBudWxsXG4gICAgaWYgKGFjY2Vzc1Jlc3VsdHMgPT09IGZhbHNlKSByZXR1cm4gbnVsbFxuXG4gICAgY29uc3QgaGFzV2hlcmVBY2Nlc3MgPSB0eXBlb2YgYWNjZXNzUmVzdWx0cyA9PT0gJ29iamVjdCdcblxuICAgIGNvbnN0IGZpbmRHbG9iYWxWZXJzaW9uc0FyZ3M6IEZpbmRHbG9iYWxWZXJzaW9uc0FyZ3MgPSB7XG4gICAgICBnbG9iYWw6IGdsb2JhbENvbmZpZy5zbHVnLFxuICAgICAgbGltaXQ6IDEsXG4gICAgICBsb2NhbGUsXG4gICAgICByZXEsXG4gICAgICB3aGVyZTogY29tYmluZVF1ZXJpZXMoeyBpZDogeyBlcXVhbHM6IGlkIH0gfSwgYWNjZXNzUmVzdWx0cyksXG4gICAgfVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIEZpbmQgYnkgSURcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBpZiAoIWZpbmRHbG9iYWxWZXJzaW9uc0FyZ3Mud2hlcmUuYW5kWzBdLmlkKSB0aHJvdyBuZXcgTm90Rm91bmQodClcblxuICAgIGNvbnN0IHsgZG9jczogcmVzdWx0cyB9ID0gYXdhaXQgcGF5bG9hZC5kYi5maW5kR2xvYmFsVmVyc2lvbnMoZmluZEdsb2JhbFZlcnNpb25zQXJncylcbiAgICBpZiAoIXJlc3VsdHMgfHwgcmVzdWx0cz8ubGVuZ3RoID09PSAwKSB7XG4gICAgICBpZiAoIWRpc2FibGVFcnJvcnMpIHtcbiAgICAgICAgaWYgKCFoYXNXaGVyZUFjY2VzcykgdGhyb3cgbmV3IE5vdEZvdW5kKHQpXG4gICAgICAgIGlmIChoYXNXaGVyZUFjY2VzcykgdGhyb3cgbmV3IEZvcmJpZGRlbih0KVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cblxuICAgIC8vIENsb25lIHRoZSByZXN1bHQgLSBpdCBtYXkgaGF2ZSBjb21lIGJhY2sgbWVtb2l6ZWRcbiAgICBsZXQgcmVzdWx0ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShyZXN1bHRzWzBdKSlcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBiZWZvcmVSZWFkIC0gQ29sbGVjdGlvblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGF3YWl0IGdsb2JhbENvbmZpZy5ob29rcy5iZWZvcmVSZWFkLnJlZHVjZShhc3luYyAocHJpb3JIb29rLCBob29rKSA9PiB7XG4gICAgICBhd2FpdCBwcmlvckhvb2tcblxuICAgICAgcmVzdWx0ID1cbiAgICAgICAgKGF3YWl0IGhvb2soe1xuICAgICAgICAgIGNvbnRleHQ6IHJlcS5jb250ZXh0LFxuICAgICAgICAgIGRvYzogcmVzdWx0LnZlcnNpb24sXG4gICAgICAgICAgZ2xvYmFsOiBnbG9iYWxDb25maWcsXG4gICAgICAgICAgcmVxLFxuICAgICAgICB9KSkgfHwgcmVzdWx0LnZlcnNpb25cbiAgICB9LCBQcm9taXNlLnJlc29sdmUoKSlcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBhZnRlclJlYWQgLSBGaWVsZHNcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICByZXN1bHQudmVyc2lvbiA9IGF3YWl0IGFmdGVyUmVhZCh7XG4gICAgICBjb2xsZWN0aW9uOiBudWxsLFxuICAgICAgY29udGV4dDogcmVxLmNvbnRleHQsXG4gICAgICBjdXJyZW50RGVwdGgsXG4gICAgICBkZXB0aCxcbiAgICAgIGRvYzogcmVzdWx0LnZlcnNpb24sXG4gICAgICBnbG9iYWw6IGdsb2JhbENvbmZpZyxcbiAgICAgIG92ZXJyaWRlQWNjZXNzLFxuICAgICAgcmVxLFxuICAgICAgc2hvd0hpZGRlbkZpZWxkcyxcbiAgICB9KVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIGFmdGVyUmVhZCAtIEdsb2JhbFxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGF3YWl0IGdsb2JhbENvbmZpZy5ob29rcy5hZnRlclJlYWQucmVkdWNlKGFzeW5jIChwcmlvckhvb2ssIGhvb2spID0+IHtcbiAgICAgIGF3YWl0IHByaW9ySG9va1xuXG4gICAgICByZXN1bHQudmVyc2lvbiA9XG4gICAgICAgIChhd2FpdCBob29rKHtcbiAgICAgICAgICBjb250ZXh0OiByZXEuY29udGV4dCxcbiAgICAgICAgICBkb2M6IHJlc3VsdC52ZXJzaW9uLFxuICAgICAgICAgIGdsb2JhbDogZ2xvYmFsQ29uZmlnLFxuICAgICAgICAgIHF1ZXJ5OiBmaW5kR2xvYmFsVmVyc2lvbnNBcmdzLndoZXJlLFxuICAgICAgICAgIHJlcSxcbiAgICAgICAgfSkpIHx8IHJlc3VsdC52ZXJzaW9uXG4gICAgfSwgUHJvbWlzZS5yZXNvbHZlKCkpXG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gUmV0dXJuIHJlc3VsdHNcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBpZiAoc2hvdWxkQ29tbWl0KSBhd2FpdCBwYXlsb2FkLmRiLmNvbW1pdFRyYW5zYWN0aW9uKHJlcS50cmFuc2FjdGlvbklEKVxuXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgIGF3YWl0IGtpbGxUcmFuc2FjdGlvbihyZXEpXG4gICAgdGhyb3cgZXJyb3JcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBmaW5kVmVyc2lvbkJ5SURcbiJdLCJuYW1lcyI6WyJmaW5kVmVyc2lvbkJ5SUQiLCJhcmdzIiwiaWQiLCJjdXJyZW50RGVwdGgiLCJkZXB0aCIsImRpc2FibGVFcnJvcnMiLCJnbG9iYWxDb25maWciLCJvdmVycmlkZUFjY2VzcyIsInJlcSIsImxvY2FsZSIsInBheWxvYWQiLCJ0Iiwic2hvd0hpZGRlbkZpZWxkcyIsInNob3VsZENvbW1pdCIsImluaXRUcmFuc2FjdGlvbiIsImFjY2Vzc1Jlc3VsdHMiLCJleGVjdXRlQWNjZXNzIiwiYWNjZXNzIiwicmVhZFZlcnNpb25zIiwiaGFzV2hlcmVBY2Nlc3MiLCJmaW5kR2xvYmFsVmVyc2lvbnNBcmdzIiwiZ2xvYmFsIiwic2x1ZyIsImxpbWl0Iiwid2hlcmUiLCJjb21iaW5lUXVlcmllcyIsImVxdWFscyIsImFuZCIsIk5vdEZvdW5kIiwiZG9jcyIsInJlc3VsdHMiLCJkYiIsImZpbmRHbG9iYWxWZXJzaW9ucyIsImxlbmd0aCIsIkZvcmJpZGRlbiIsInJlc3VsdCIsIkpTT04iLCJwYXJzZSIsInN0cmluZ2lmeSIsImhvb2tzIiwiYmVmb3JlUmVhZCIsInJlZHVjZSIsInByaW9ySG9vayIsImhvb2siLCJjb250ZXh0IiwiZG9jIiwidmVyc2lvbiIsIlByb21pc2UiLCJyZXNvbHZlIiwiYWZ0ZXJSZWFkIiwiY29sbGVjdGlvbiIsInF1ZXJ5IiwiY29tbWl0VHJhbnNhY3Rpb24iLCJ0cmFuc2FjdGlvbklEIiwiZXJyb3IiLCJraWxsVHJhbnNhY3Rpb24iXSwibWFwcGluZ3MiOiJBQUFBLHVDQUF1Qzs7OzsrQkE4SXZDOzs7ZUFBQTs7O3NFQXhJMEI7Z0NBQ0s7d0JBQ0s7MkJBQ1Y7aUNBQ007aUNBQ0E7Ozs7OztBQWFoQyxlQUFlQSxnQkFBb0RDLElBQWU7SUFDaEYsTUFBTSxFQUNKQyxFQUFFLEVBQ0ZDLFlBQVksRUFDWkMsS0FBSyxFQUNMQyxhQUFhLEVBQ2JDLFlBQVksRUFDWkMsY0FBYyxFQUNkQyxLQUFLLEVBQUVDLE1BQU0sRUFBRUMsT0FBTyxFQUFFQyxDQUFDLEVBQUUsRUFDM0JILEdBQUcsRUFDSEksZ0JBQWdCLEVBQ2pCLEdBQUdYO0lBRUosSUFBSTtRQUNGLE1BQU1ZLGVBQWUsTUFBTUMsSUFBQUEsZ0NBQWUsRUFBQ047UUFFM0Msd0NBQXdDO1FBQ3hDLFNBQVM7UUFDVCx3Q0FBd0M7UUFFeEMsTUFBTU8sZ0JBQWdCLENBQUNSLGlCQUNuQixNQUFNUyxJQUFBQSxzQkFBYSxFQUFDO1lBQUVkO1lBQUlHO1lBQWVHO1FBQUksR0FBR0YsYUFBYVcsTUFBTSxDQUFDQyxZQUFZLElB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
@@ -1 +1 @@
1
- {"version":3,"file":"findVersions.d.ts","sourceRoot":"","sources":["../../../src/globals/operations/findVersions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAW5D,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,qBAAqB,CAAA;IACnC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,cAAc,CAAA;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,CAAA;AAED,iBAAe,YAAY,CAAC,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,EACtD,IAAI,EAAE,SAAS,GACd,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAiH3B;AAED,eAAe,YAAY,CAAA"}
1
+ {"version":3,"file":"findVersions.d.ts","sourceRoot":"","sources":["../../../src/globals/operations/findVersions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAW5D,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,qBAAqB,CAAA;IACnC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,cAAc,CAAA;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,CAAA;AAED,iBAAe,YAAY,CAAC,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,EACtD,IAAI,EAAE,SAAS,GACd,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAwH3B;AAED,eAAe,YAAY,CAAA"}