payload 2.0.11-beta.0 → 2.0.12

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 (211) hide show
  1. package/.eslintrc.js +58 -0
  2. package/components/index.js +2 -2
  3. package/dist/admin/components/elements/DeleteDocument/index.d.ts.map +1 -1
  4. package/dist/admin/components/elements/DeleteDocument/index.js +2 -2
  5. package/dist/admin/components/elements/DocumentControls/index.scss +1 -1
  6. package/dist/admin/components/elements/DocumentFields/index.d.ts +14 -0
  7. package/dist/admin/components/elements/DocumentFields/index.d.ts.map +1 -0
  8. package/dist/admin/components/elements/DocumentFields/index.js +70 -0
  9. package/dist/admin/components/{views/Global/Default → elements/DocumentFields}/index.scss +5 -13
  10. package/dist/admin/components/elements/DocumentHeader/Tabs/Tab/index.d.ts.map +1 -1
  11. package/dist/admin/components/elements/DocumentHeader/Tabs/Tab/index.js +3 -2
  12. package/dist/admin/components/elements/DocumentHeader/Tabs/Tab/index.scss +13 -0
  13. package/dist/admin/components/elements/DocumentHeader/Tabs/tabs.js +2 -2
  14. package/dist/admin/components/elements/Drawer/index.d.ts.map +1 -1
  15. package/dist/admin/components/elements/Drawer/index.js +5 -6
  16. package/dist/admin/components/elements/Drawer/index.scss +20 -11
  17. package/dist/admin/components/elements/DuplicateDocument/index.d.ts.map +1 -1
  18. package/dist/admin/components/elements/DuplicateDocument/index.js +3 -1
  19. package/dist/admin/components/elements/EditUpload/index.d.ts.map +1 -1
  20. package/dist/admin/components/elements/EditUpload/index.js +6 -6
  21. package/dist/admin/components/elements/Hamburger/index.d.ts.map +1 -1
  22. package/dist/admin/components/elements/Hamburger/index.js +5 -5
  23. package/dist/admin/components/elements/Hamburger/index.scss +18 -9
  24. package/dist/admin/components/elements/Header/index.d.ts.map +1 -1
  25. package/dist/admin/components/elements/Header/index.js +5 -3
  26. package/dist/admin/components/elements/Header/index.scss +19 -1
  27. package/dist/admin/components/elements/ListControls/index.d.ts +1 -2
  28. package/dist/admin/components/elements/ListControls/index.d.ts.map +1 -1
  29. package/dist/admin/components/elements/ListControls/index.js +14 -25
  30. package/dist/admin/components/elements/ListControls/types.d.ts +3 -0
  31. package/dist/admin/components/elements/ListControls/types.d.ts.map +1 -1
  32. package/dist/admin/components/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
  33. package/dist/admin/components/elements/ListDrawer/DrawerContent.js +59 -14
  34. package/dist/admin/components/elements/Logout/index.d.ts +3 -1
  35. package/dist/admin/components/elements/Logout/index.d.ts.map +1 -1
  36. package/dist/admin/components/elements/Logout/index.js +9 -5
  37. package/dist/admin/components/elements/Nav/NavToggler/index.d.ts +1 -0
  38. package/dist/admin/components/elements/Nav/NavToggler/index.d.ts.map +1 -1
  39. package/dist/admin/components/elements/Nav/NavToggler/index.js +3 -2
  40. package/dist/admin/components/elements/Nav/index.d.ts.map +1 -1
  41. package/dist/admin/components/elements/Nav/index.js +6 -2
  42. package/dist/admin/components/elements/Nav/index.scss +0 -1
  43. package/dist/admin/components/elements/NavGroup/index.d.ts.map +1 -1
  44. package/dist/admin/components/elements/NavGroup/index.js +10 -7
  45. package/dist/admin/components/elements/Popup/PopupTrigger/index.js +2 -1
  46. package/dist/admin/components/elements/ReactSelect/MultiValue/index.d.ts.map +1 -1
  47. package/dist/admin/components/elements/ReactSelect/MultiValue/index.js +4 -3
  48. package/dist/admin/components/elements/ReactSelect/index.js +3 -3
  49. package/dist/admin/components/elements/ReactSelect/types.d.ts +0 -4
  50. package/dist/admin/components/elements/ReactSelect/types.d.ts.map +1 -1
  51. package/dist/admin/components/elements/SearchFilter/index.d.ts.map +1 -1
  52. package/dist/admin/components/elements/SearchFilter/index.js +4 -32
  53. package/dist/admin/components/elements/SearchFilter/types.d.ts +1 -2
  54. package/dist/admin/components/elements/SearchFilter/types.d.ts.map +1 -1
  55. package/dist/admin/components/elements/StepNav/index.d.ts.map +1 -1
  56. package/dist/admin/components/elements/StepNav/index.js +14 -6
  57. package/dist/admin/components/elements/StepNav/index.scss +21 -0
  58. package/dist/admin/components/elements/WhereBuilder/Condition/index.js +2 -2
  59. package/dist/admin/components/forms/field-types/RichText/types.d.ts +6 -1
  60. package/dist/admin/components/forms/field-types/RichText/types.d.ts.map +1 -1
  61. package/dist/admin/components/graphics/Account/Default/index.scss +1 -0
  62. package/dist/admin/components/graphics/Icon/index.js +2 -2
  63. package/dist/admin/components/templates/Default/index.js +11 -11
  64. package/dist/admin/components/views/Account/Default.d.ts.map +1 -1
  65. package/dist/admin/components/views/Account/Default.js +27 -71
  66. package/dist/admin/components/views/Account/Settings/index.d.ts +6 -0
  67. package/dist/admin/components/views/Account/Settings/index.d.ts.map +1 -0
  68. package/dist/admin/components/views/Account/Settings/index.js +48 -0
  69. package/dist/admin/components/views/Account/Settings/index.scss +45 -0
  70. package/dist/admin/components/views/Account/index.scss +7 -35
  71. package/dist/admin/components/views/Global/Default/index.d.ts +0 -1
  72. package/dist/admin/components/views/Global/Default/index.d.ts.map +1 -1
  73. package/dist/admin/components/views/Global/Default/index.js +14 -57
  74. package/dist/admin/components/views/Global/Routes/index.d.ts.map +1 -1
  75. package/dist/admin/components/views/Global/Routes/index.js +2 -2
  76. package/dist/admin/components/views/LivePreview/Toolbar/Controls/index.d.ts.map +1 -1
  77. package/dist/admin/components/views/LivePreview/Toolbar/Controls/index.js +2 -1
  78. package/dist/admin/components/views/LivePreview/Toolbar/SizeInput/index.d.ts.map +1 -1
  79. package/dist/admin/components/views/LivePreview/Toolbar/SizeInput/index.js +2 -1
  80. package/dist/admin/components/views/collections/Edit/Default/index.d.ts.map +1 -1
  81. package/dist/admin/components/views/collections/Edit/Default/index.js +25 -60
  82. package/dist/admin/components/views/collections/Edit/Default/index.scss +5 -158
  83. package/dist/admin/components/views/collections/Edit/Routes/index.d.ts.map +1 -1
  84. package/dist/admin/components/views/collections/Edit/Routes/index.js +2 -2
  85. package/dist/admin/components/views/collections/List/Default.d.ts.map +1 -1
  86. package/dist/admin/components/views/collections/List/Default.js +7 -5
  87. package/dist/admin/components/views/collections/List/index.d.ts.map +1 -1
  88. package/dist/admin/components/views/collections/List/index.js +56 -6
  89. package/dist/admin/components/views/collections/List/types.d.ts +4 -0
  90. package/dist/admin/components/views/collections/List/types.d.ts.map +1 -1
  91. package/dist/admin/hooks/useUseAsTitle.d.ts +3 -0
  92. package/dist/admin/hooks/useUseAsTitle.d.ts.map +1 -0
  93. package/dist/admin/hooks/useUseAsTitle.js +24 -0
  94. package/dist/admin/scss/vars.scss +7 -3
  95. package/dist/auth/operations/forgotPassword.d.ts.map +1 -1
  96. package/dist/auth/operations/forgotPassword.js +4 -1
  97. package/dist/auth/operations/local/forgotPassword.js +2 -2
  98. package/dist/auth/operations/local/login.js +2 -2
  99. package/dist/auth/operations/local/resetPassword.d.ts.map +1 -1
  100. package/dist/auth/operations/local/resetPassword.js +2 -2
  101. package/dist/auth/operations/local/unlock.js +2 -2
  102. package/dist/auth/operations/local/verifyEmail.js +2 -2
  103. package/dist/auth/operations/login.d.ts.map +1 -1
  104. package/dist/auth/operations/login.js +9 -2
  105. package/dist/auth/operations/logout.d.ts.map +1 -1
  106. package/dist/auth/operations/logout.js +2 -1
  107. package/dist/auth/operations/me.d.ts.map +1 -1
  108. package/dist/auth/operations/me.js +2 -1
  109. package/dist/auth/operations/refresh.d.ts.map +1 -1
  110. package/dist/auth/operations/refresh.js +4 -1
  111. package/dist/bin/generateTypes.d.ts.map +1 -1
  112. package/dist/bin/generateTypes.js +6 -3
  113. package/dist/collections/config/types.d.ts +33 -1
  114. package/dist/collections/config/types.d.ts.map +1 -1
  115. package/dist/collections/config/types.js +1 -1
  116. package/dist/collections/operations/create.d.ts.map +1 -1
  117. package/dist/collections/operations/create.js +21 -32
  118. package/dist/collections/operations/delete.d.ts.map +1 -1
  119. package/dist/collections/operations/delete.js +8 -2
  120. package/dist/collections/operations/deleteByID.d.ts.map +1 -1
  121. package/dist/collections/operations/deleteByID.js +8 -2
  122. package/dist/collections/operations/find.d.ts.map +1 -1
  123. package/dist/collections/operations/find.js +7 -2
  124. package/dist/collections/operations/findByID.d.ts.map +1 -1
  125. package/dist/collections/operations/findByID.js +7 -2
  126. package/dist/collections/operations/findVersionByID.d.ts.map +1 -1
  127. package/dist/collections/operations/findVersionByID.js +5 -2
  128. package/dist/collections/operations/findVersions.d.ts.map +1 -1
  129. package/dist/collections/operations/findVersions.js +5 -2
  130. package/dist/collections/operations/local/find.js +2 -2
  131. package/dist/collections/operations/local/findByID.js +2 -2
  132. package/dist/collections/operations/local/findVersionByID.js +2 -2
  133. package/dist/collections/operations/restoreVersion.d.ts.map +1 -1
  134. package/dist/collections/operations/restoreVersion.js +7 -3
  135. package/dist/collections/operations/update.d.ts.map +1 -1
  136. package/dist/collections/operations/update.js +17 -6
  137. package/dist/collections/operations/updateByID.d.ts.map +1 -1
  138. package/dist/collections/operations/updateByID.js +17 -6
  139. package/dist/collections/operations/utils.d.ts +21 -1
  140. package/dist/collections/operations/utils.d.ts.map +1 -1
  141. package/dist/collections/operations/utils.js +3 -2
  142. package/dist/config/schema.d.ts.map +1 -1
  143. package/dist/config/schema.js +5 -3
  144. package/dist/config/types.d.ts +2 -0
  145. package/dist/config/types.d.ts.map +1 -1
  146. package/dist/config/types.js +1 -1
  147. package/dist/express/middleware/errorHandler.d.ts.map +1 -1
  148. package/dist/express/middleware/errorHandler.js +3 -3
  149. package/dist/fields/config/schema.d.ts.map +1 -1
  150. package/dist/fields/config/schema.js +5 -4
  151. package/dist/fields/config/types.d.ts +8 -1
  152. package/dist/fields/config/types.d.ts.map +1 -1
  153. package/dist/fields/config/types.js +1 -1
  154. package/dist/fields/hooks/afterChange/index.d.ts +3 -2
  155. package/dist/fields/hooks/afterChange/index.d.ts.map +1 -1
  156. package/dist/fields/hooks/afterChange/index.js +5 -3
  157. package/dist/fields/hooks/afterChange/promise.d.ts +5 -1
  158. package/dist/fields/hooks/afterChange/promise.d.ts.map +1 -1
  159. package/dist/fields/hooks/afterChange/promise.js +17 -2
  160. package/dist/fields/hooks/afterChange/traverseFields.d.ts +5 -1
  161. package/dist/fields/hooks/afterChange/traverseFields.d.ts.map +1 -1
  162. package/dist/fields/hooks/afterChange/traverseFields.js +4 -2
  163. package/dist/fields/hooks/afterRead/index.d.ts +2 -1
  164. package/dist/fields/hooks/afterRead/index.d.ts.map +1 -1
  165. package/dist/fields/hooks/afterRead/index.js +5 -3
  166. package/dist/fields/hooks/afterRead/promise.d.ts +5 -1
  167. package/dist/fields/hooks/afterRead/promise.d.ts.map +1 -1
  168. package/dist/fields/hooks/afterRead/promise.js +38 -4
  169. package/dist/fields/hooks/afterRead/traverseFields.d.ts +5 -1
  170. package/dist/fields/hooks/afterRead/traverseFields.d.ts.map +1 -1
  171. package/dist/fields/hooks/afterRead/traverseFields.js +4 -2
  172. package/dist/fields/hooks/beforeChange/index.d.ts +3 -2
  173. package/dist/fields/hooks/beforeChange/index.d.ts.map +1 -1
  174. package/dist/fields/hooks/beforeChange/index.js +5 -3
  175. package/dist/fields/hooks/beforeChange/promise.d.ts +5 -1
  176. package/dist/fields/hooks/beforeChange/promise.d.ts.map +1 -1
  177. package/dist/fields/hooks/beforeChange/promise.js +17 -2
  178. package/dist/fields/hooks/beforeChange/traverseFields.d.ts +5 -1
  179. package/dist/fields/hooks/beforeChange/traverseFields.d.ts.map +1 -1
  180. package/dist/fields/hooks/beforeChange/traverseFields.js +4 -2
  181. package/dist/fields/hooks/beforeValidate/index.d.ts +3 -2
  182. package/dist/fields/hooks/beforeValidate/index.d.ts.map +1 -1
  183. package/dist/fields/hooks/beforeValidate/index.js +5 -3
  184. package/dist/fields/hooks/beforeValidate/promise.d.ts +5 -1
  185. package/dist/fields/hooks/beforeValidate/promise.d.ts.map +1 -1
  186. package/dist/fields/hooks/beforeValidate/promise.js +19 -4
  187. package/dist/fields/hooks/beforeValidate/traverseFields.d.ts +5 -1
  188. package/dist/fields/hooks/beforeValidate/traverseFields.d.ts.map +1 -1
  189. package/dist/fields/hooks/beforeValidate/traverseFields.js +4 -2
  190. package/dist/globals/config/types.d.ts +16 -0
  191. package/dist/globals/config/types.d.ts.map +1 -1
  192. package/dist/globals/operations/findOne.d.ts.map +1 -1
  193. package/dist/globals/operations/findOne.js +7 -2
  194. package/dist/globals/operations/findVersionByID.d.ts.map +1 -1
  195. package/dist/globals/operations/findVersionByID.js +7 -2
  196. package/dist/globals/operations/findVersions.d.ts.map +1 -1
  197. package/dist/globals/operations/findVersions.js +5 -2
  198. package/dist/globals/operations/restoreVersion.d.ts.map +1 -1
  199. package/dist/globals/operations/restoreVersion.js +9 -3
  200. package/dist/globals/operations/update.d.ts.map +1 -1
  201. package/dist/globals/operations/update.js +19 -6
  202. package/dist/graphql/errorHandler.js +2 -2
  203. package/dist/graphql/schema/buildObjectType.d.ts.map +1 -1
  204. package/dist/graphql/schema/buildObjectType.js +8 -3
  205. package/dist/graphql/schema/buildPoliciesType.d.ts.map +1 -1
  206. package/dist/graphql/schema/buildPoliciesType.js +4 -1
  207. package/dist/uploads/generateFileData.d.ts.map +1 -1
  208. package/dist/uploads/generateFileData.js +2 -1
  209. package/dist/versions/saveVersion.d.ts.map +1 -1
  210. package/dist/versions/saveVersion.js +3 -4
  211. package/package.json +4 -4
@@ -60,11 +60,12 @@ async function findVersions(args) {
60
60
  docs: await Promise.all(paginatedDocs.docs.map(async (data)=>({
61
61
  ...data,
62
62
  version: await (0, _afterRead.afterRead)({
63
+ collection: null,
63
64
  context: req.context,
64
65
  depth,
65
66
  doc: data.version,
66
- entityConfig: globalConfig,
67
67
  findMany: true,
68
+ global: globalConfig,
68
69
  overrideAccess,
69
70
  req,
70
71
  showHiddenFields
@@ -81,8 +82,10 @@ async function findVersions(args) {
81
82
  await globalConfig.hooks.afterRead.reduce(async (priorHook, hook)=>{
82
83
  await priorHook;
83
84
  docRef.version = await hook({
85
+ context: req.context,
84
86
  doc: doc.version,
85
87
  findMany: true,
88
+ global: globalConfig,
86
89
  query: fullWhere,
87
90
  req
88
91
  }) || doc.version;
@@ -106,4 +109,4 @@ async function findVersions(args) {
106
109
  }
107
110
  const _default = findVersions;
108
111
 
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9nbG9iYWxzL29wZXJhdGlvbnMvZmluZFZlcnNpb25zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUGFnaW5hdGVkRG9jcyB9IGZyb20gJy4uLy4uL2RhdGFiYXNlL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBQYXlsb2FkUmVxdWVzdCB9IGZyb20gJy4uLy4uL2V4cHJlc3MvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFdoZXJlIH0gZnJvbSAnLi4vLi4vdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFR5cGVXaXRoVmVyc2lvbiB9IGZyb20gJy4uLy4uL3ZlcnNpb25zL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRHbG9iYWxDb25maWcgfSBmcm9tICcuLi9jb25maWcvdHlwZXMnXG5cbmltcG9ydCBleGVjdXRlQWNjZXNzIGZyb20gJy4uLy4uL2F1dGgvZXhlY3V0ZUFjY2VzcydcbmltcG9ydCB7IGNvbWJpbmVRdWVyaWVzIH0gZnJvbSAnLi4vLi4vZGF0YWJhc2UvY29tYmluZVF1ZXJpZXMnXG5pbXBvcnQgeyB2YWxpZGF0ZVF1ZXJ5UGF0aHMgfSBmcm9tICcuLi8uLi9kYXRhYmFzZS9xdWVyeVZhbGlkYXRpb24vdmFsaWRhdGVRdWVyeVBhdGhzJ1xuaW1wb3J0IHsgYWZ0ZXJSZWFkIH0gZnJvbSAnLi4vLi4vZmllbGRzL2hvb2tzL2FmdGVyUmVhZCdcbmltcG9ydCB7IGluaXRUcmFuc2FjdGlvbiB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9pbml0VHJhbnNhY3Rpb24nXG5pbXBvcnQgeyBraWxsVHJhbnNhY3Rpb24gfSBmcm9tICcuLi8uLi91dGlsaXRpZXMva2lsbFRyYW5zYWN0aW9uJ1xuaW1wb3J0IHNhbml0aXplSW50ZXJuYWxGaWVsZHMgZnJvbSAnLi4vLi4vdXRpbGl0aWVzL3Nhbml0aXplSW50ZXJuYWxGaWVsZHMnXG5pbXBvcnQgeyBidWlsZFZlcnNpb25HbG9iYWxGaWVsZHMgfSBmcm9tICcuLi8uLi92ZXJzaW9ucy9idWlsZEdsb2JhbEZpZWxkcydcblxuZXhwb3J0IHR5cGUgQXJndW1lbnRzID0ge1xuICBkZXB0aD86IG51bWJlclxuICBnbG9iYWxDb25maWc6IFNhbml0aXplZEdsb2JhbENvbmZpZ1xuICBsaW1pdD86IG51bWJlclxuICBvdmVycmlkZUFjY2Vzcz86IGJvb2xlYW5cbiAgcGFnZT86IG51bWJlclxuICByZXE/OiBQYXlsb2FkUmVxdWVzdFxuICBzaG93SGlkZGVuRmllbGRzPzogYm9vbGVhblxuICBzb3J0Pzogc3RyaW5nXG4gIHdoZXJlPzogV2hlcmVcbn1cblxuYXN5bmMgZnVuY3Rpb24gZmluZFZlcnNpb25zPFQgZXh0ZW5kcyBUeXBlV2l0aFZlcnNpb248VD4+KFxuICBhcmdzOiBBcmd1bWVudHMsXG4pOiBQcm9taXNlPFBhZ2luYXRlZERvY3M8VD4+IHtcbiAgY29uc3Qge1xuICAgIGRlcHRoLFxuICAgIGdsb2JhbENvbmZpZyxcbiAgICBsaW1pdCxcbiAgICBvdmVycmlkZUFjY2VzcyxcbiAgICBwYWdlLFxuICAgIHJlcTogeyBsb2NhbGUsIHBheWxvYWQgfSxcbiAgICByZXEsXG4gICAgc2hvd0hpZGRlbkZpZWxkcyxcbiAgICBzb3J0LFxuICAgIHdoZXJlLFxuICB9ID0gYXJnc1xuXG4gIGNvbnN0IHZlcnNpb25GaWVsZHMgPSBidWlsZFZlcnNpb25HbG9iYWxGaWVsZHMoZ2xvYmFsQ29uZmlnKVxuXG4gIHRyeSB7XG4gICAgY29uc3Qgc2hvdWxkQ29tbWl0ID0gYXdhaXQgaW5pdFRyYW5zYWN0aW9uKHJlcSlcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBBY2Nlc3NcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBjb25zdCBhY2Nlc3NSZXN1bHRzID0gIW92ZXJyaWRlQWNjZXNzXG4gICAgICA/IGF3YWl0IGV4ZWN1dGVBY2Nlc3MoeyByZXEgfSwgZ2xvYmFsQ29uZmlnLmFjY2Vzcy5yZWFkVmVyc2lvbnMpXG4gICAgICA6IHRydWVcblxuICAgIGF3YWl0IHZhbGlkYXRlUXVlcnlQYXRocyh7XG4gICAgICBnbG9iYWxDb25maWcsXG4gICAgICBvdmVycmlkZUFjY2VzcyxcbiAgICAgIHJlcSxcbiAgICAgIHZlcnNpb25GaWVsZHMsXG4gICAgICB3aGVyZSxcbiAgICB9KVxuXG4gICAgY29uc3QgZnVsbFdoZXJlID0gY29tYmluZVF1ZXJpZXMod2hlcmUsIGFjY2Vzc1Jlc3VsdHMpXG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gRmluZFxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGNvbnN0IHBhZ2luYXRlZERvY3MgPSBhd2FpdCBwYXlsb2FkLmRiLmZpbmRHbG9iYWxWZXJzaW9uczxUPih7XG4gICAgICBnbG9iYWw6IGdsb2JhbENvbmZpZy5zbHVnLFxuICAgICAgbGltaXQ6IGxpbWl0ID8/IDEwLFxuICAgICAgbG9jYWxlLFxuICAgICAgcGFnZTogcGFnZSB8fCAxLFxuICAgICAgcmVxLFxuICAgICAgc29ydCxcbiAgICAgIHdoZXJlOiBmdWxsV2hlcmUsXG4gICAgfSlcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBhZnRlclJlYWQgLSBGaWVsZHNcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBsZXQgcmVzdWx0ID0ge1xuICAgICAgLi4ucGFnaW5hdGVkRG9jcyxcbiAgICAgIGRvY3M6IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICBwYWdpbmF0ZWREb2NzLmRvY3MubWFwKGFzeW5jIChkYXRhKSA9PiAoe1xuICAgICAgICAgIC4uLmRhdGEsXG4gICAgICAgICAgdmVyc2lvbjogYXdhaXQgYWZ0ZXJSZWFkKHtcbiAgICAgICAgICAgIGNvbnRleHQ6IHJlcS5jb250ZXh0LFxuICAgICAgICAgICAgZGVwdGgsXG4gICAgICAgICAgICBkb2M6IGRhdGEudmVyc2lvbixcbiAgICAgICAgICAgIGVudGl0eUNvbmZpZzogZ2xvYmFsQ29uZmlnLFxuICAgICAgICAgICAgZmluZE1hbnk6IHRydWUsXG4gICAgICAgICAgICBvdmVycmlkZUFjY2VzcyxcbiAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgIHNob3dIaWRkZW5GaWVsZHMsXG4gICAgICAgICAgfSksXG4gICAgICAgIH0pKSxcbiAgICAgICksXG4gICAgfSBhcyBQYWdpbmF0ZWREb2NzPFQ+XG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gYWZ0ZXJSZWFkIC0gR2xvYmFsXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgcmVzdWx0ID0ge1xuICAgICAgLi4ucmVzdWx0LFxuICAgICAgZG9jczogYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgIHJlc3VsdC5kb2NzLm1hcChhc3luYyAoZG9jKSA9PiB7XG4gICAgICAgICAgY29uc3QgZG9jUmVmID0gZG9jXG5cbiAgICAgICAgICBhd2FpdCBnbG9iYWxDb25maWcuaG9va3MuYWZ0ZXJSZWFkLnJlZHVjZShhc3luYyAocHJpb3JIb29rLCBob29rKSA9PiB7XG4gICAgICAgICAgICBhd2FpdCBwcmlvckhvb2tcblxuICAgICAgICAgICAgZG9jUmVmLnZlcnNpb24gPVxuICAgICAgICAgICAgICAoYXdhaXQgaG9vayh7IGRvYzogZG9jLnZlcnNpb24sIGZpbmRNYW55OiB0cnVlLCBxdWVyeTogZnVsbFdoZXJlLCByZXEgfSkpIHx8XG4gICAgICAgICAgICAgIGRvYy52ZXJzaW9uXG4gICAgICAgICAgfSwgUHJvbWlzZS5yZXNvbHZlKCkpXG5cbiAgICAgICAgICByZXR1cm4gZG9jUmVmXG4gICAgICAgIH0pLFxuICAgICAgKSxcbiAgICB9XG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gUmV0dXJuIHJlc3VsdHNcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICByZXN1bHQgPSB7XG4gICAgICAuLi5yZXN1bHQsXG4gICAgICBkb2NzOiByZXN1bHQuZG9jcy5tYXAoKGRvYykgPT4gc2FuaXRpemVJbnRlcm5hbEZpZWxkczxUPihkb2MpKSxcbiAgICB9XG5cbiAgICBpZiAoc2hvdWxkQ29tbWl0KSBhd2FpdCBwYXlsb2FkLmRiLmNvbW1pdFRyYW5zYWN0aW9uKHJlcS50cmFuc2FjdGlvbklEKVxuXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgIGF3YWl0IGtpbGxUcmFuc2FjdGlvbihyZXEpXG4gICAgdGhyb3cgZXJyb3JcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBmaW5kVmVyc2lvbnNcbiJdLCJuYW1lcyI6WyJmaW5kVmVyc2lvbnMiLCJhcmdzIiwiZGVwdGgiLCJnbG9iYWxDb25maWciLCJsaW1pdCIsIm92ZXJyaWRlQWNjZXNzIiwicGFnZSIsInJlcSIsImxvY2FsZSIsInBheWxvYWQiLCJzaG93SGlkZGVuRmllbGRzIiwic29ydCIsIndoZXJlIiwidmVyc2lvbkZpZWxkcyIsImJ1aWxkVmVyc2lvbkdsb2JhbEZpZWxkcyIsInNob3VsZENvbW1pdCIsImluaXRUcmFuc2FjdGlvbiIsImFjY2Vzc1Jlc3VsdHMiLCJleGVjdXRlQWNjZXNzIiwiYWNjZXNzIiwicmVhZFZlcnNpb25zIiwidmFsaWRhdGVRdWVyeVBhdGhzIiwiZnVsbFdoZXJlIiwiY29tYmluZVF1ZXJpZXMiLCJwYWdpbmF0ZWREb2NzIiwiZGIiLCJmaW5kR2xvYmFsVmVyc2lvbnMiLCJnbG9iYWwiLCJzbHVnIiwicmVzdWx0IiwiZG9jcyIsIlByb21pc2UiLCJhbGwiLCJtYXAiLCJkYXRhIiwidmVyc2lvbiIsImFmdGVyUmVhZCIsImNvbnRleHQiLCJkb2MiLCJlbnRpdHlDb25maWciLCJmaW5kTWFueSIsImRvY1JlZiIsImhvb2tzIiwicmVkdWNlIiwicHJpb3JIb29rIiwiaG9vayIsInF1ZXJ5IiwicmVzb2x2ZSIsInNhbml0aXplSW50ZXJuYWxGaWVsZHMiLCJjb21taXRUcmFuc2FjdGlvbiIsInRyYW5zYWN0aW9uSUQiLCJlcnJvciIsImtpbGxUcmFuc2FjdGlvbiJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFnSkE7OztlQUFBOzs7c0VBMUkwQjtnQ0FDSztvQ0FDSTsyQkFDVDtpQ0FDTTtpQ0FDQTsrRUFDRzttQ0FDTTs7Ozs7O0FBY3pDLGVBQWVBLGFBQ2JDLElBQWU7SUFFZixNQUFNLEVBQ0pDLEtBQUssRUFDTEMsWUFBWSxFQUNaQyxLQUFLLEVBQ0xDLGNBQWMsRUFDZEMsSUFBSSxFQUNKQyxLQUFLLEVBQUVDLE1BQU0sRUFBRUMsT0FBTyxFQUFFLEVBQ3hCRixHQUFHLEVBQ0hHLGdCQUFnQixFQUNoQkMsSUFBSSxFQUNKQyxLQUFLLEVBQ04sR0FBR1g7SUFFSixNQUFNWSxnQkFBZ0JDLElBQUFBLDJDQUF3QixFQUFDWDtJQUUvQyxJQUFJO1FBQ0YsTUFBTVksZUFBZSxNQUFNQyxJQUFBQSxnQ0FBZSxFQUFDVDtRQUUzQyx3Q0FBd0M7UUFDeEMsU0FBUztRQUNULHdDQUF3QztRQUV4QyxNQUFNVSxnQkFBZ0IsQ0FBQ1osaUJBQ25CLE1BQU1hLElBQUFBLHNCQUFhLEVBQUM7WUFBRVg7UUFBSSxHQUFHSixhQUFhZ0IsTUFBTSxDQUFDQyxZQUFZLElBQzdEO1FBRUosTUFBTUMsSUFBQUEsc0NBQWtCLEVBQUM7WUFDdkJsQjtZQUNBRTtZQUNBRTtZQUNBTTtZQUNBRDtRQUNGO1FBRUEsTUFBTVUsWUFBWUMsSUFBQUEsOEJBQWMsRUFBQ1gsT0FBT0s7UUFFeEMsd0NBQXdDO1FBQ3hDLE9BQU87UUFDUCx3Q0FBd0M7UUFFeEMsTUFBTU8sZ0JBQWdCLE1BQU1mLFFBQVFnQixFQUFFLENBQUNDLGtCQUFrQixDQUFJO1lBQzNEQyxRQUFReEIsYUFBYXlCLElBQUk7WUFDekJ4QixPQUFPQSxTQUFTO1lBQ2hCSTtZQUNBRixNQUFNQSxRQUFRO1lBQ2RDO1lBQ0FJO1lBQ0FDLE9BQU9VO1FBQ1Q7UUFFQSx3Q0FBd0M7UUFDeEMscUJBQXFCO1FBQ3JCLHdDQUF3QztRQUV4QyxJQUFJTyxTQUFTO1lBQ1gsR0FBR0wsYUFBYTtZQUNoQk0sTUFBTSxNQUFNQyxRQUFRQyxHQUFHLENBQ3JCUixjQUFjTSxJQUFJLENBQUNHLEdBQUcsQ0FBQyxPQUFPQyxPQUFVLENBQUE7b0JBQ3RDLEdBQUdBLElBQUk7b0JBQ1BDLFNBQVMsTUFBTUMsSUFBQUEsb0JBQVMsRUFBQzt3QkFDdkJDLFNBQVM5QixJQUFJOEIsT0FBTzt3QkFDcEJuQzt3QkFDQW9DLEtBQUtKLEtBQUtDLE9BQU87d0JBQ2pCSSxjQUFjcEM7d0JBQ2RxQyxVQUFVO3dCQUNWbkM7d0JBQ0FFO3dCQUNBRztvQkFDRjtnQkFDRixDQUFBO1FBRUo7UUFFQSx3Q0FBd0M7UUFDeEMscUJBQXFCO1FBQ3JCLHdDQUF3QztRQUV4Q21CLFNBQVM7WUFDUCxHQUFHQSxNQUFNO1lBQ1RDLE1BQU0sTUFBTUMsUUFBUUMsR0FBRyxDQUNyQkgsT0FBT0MsSUFBSSxDQUFDRyxHQUFHLENBQUMsT0FBT0s7Z0JBQ3JCLE1BQU1HLFNBQVNIO2dCQUVmLE1BQU1uQyxhQUFhdUMsS0FBSyxDQUFDTixTQUFTLENBQUNPLE1BQU0sQ0FBQyxPQUFPQyxXQUFXQztvQkFDMUQsTUFBTUQ7b0JBRU5ILE9BQU9OLE9BQU8sR0FDWixBQUFDLE1BQU1VLEtBQUs7d0JBQUVQLEtBQUtBLElBQUlILE9BQU87d0JBQUVLLFVBQVU7d0JBQU1NLE9BQU94Qjt3QkFBV2Y7b0JBQUksTUFDdEUrQixJQUFJSCxPQUFPO2dCQUNmLEdBQUdKLFFBQVFnQixPQUFPO2dCQUVsQixPQUFPTjtZQUNUO1FBRUo7UUFFQSx3Q0FBd0M7UUFDeEMsaUJBQWlCO1FBQ2pCLHdDQUF3QztRQUV4Q1osU0FBUztZQUNQLEdBQUdBLE1BQU07WUFDVEMsTUFBTUQsT0FBT0MsSUFBSSxDQUFDRyxHQUFHLENBQUMsQ0FBQ0ssTUFBUVUsSUFBQUEsK0JBQXNCLEVBQUlWO1FBQzNEO1FBRUEsSUFBSXZCLGNBQWMsTUFBTU4sUUFBUWdCLEVBQUUsQ0FBQ3dCLGlCQUFpQixDQUFDMUMsSUFBSTJDLGFBQWE7UUFFdEUsT0FBT3JCO0lBQ1QsRUFBRSxPQUFPc0IsT0FBZ0I7UUFDdkIsTUFBTUMsSUFBQUEsZ0NBQWUsRUFBQzdDO1FBQ3RCLE1BQU00QztJQUNSO0FBQ0Y7TUFFQSxXQUFlbkQifQ==
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9nbG9iYWxzL29wZXJhdGlvbnMvZmluZFZlcnNpb25zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUGFnaW5hdGVkRG9jcyB9IGZyb20gJy4uLy4uL2RhdGFiYXNlL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBQYXlsb2FkUmVxdWVzdCB9IGZyb20gJy4uLy4uL2V4cHJlc3MvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFdoZXJlIH0gZnJvbSAnLi4vLi4vdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFR5cGVXaXRoVmVyc2lvbiB9IGZyb20gJy4uLy4uL3ZlcnNpb25zL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRHbG9iYWxDb25maWcgfSBmcm9tICcuLi9jb25maWcvdHlwZXMnXG5cbmltcG9ydCBleGVjdXRlQWNjZXNzIGZyb20gJy4uLy4uL2F1dGgvZXhlY3V0ZUFjY2VzcydcbmltcG9ydCB7IGNvbWJpbmVRdWVyaWVzIH0gZnJvbSAnLi4vLi4vZGF0YWJhc2UvY29tYmluZVF1ZXJpZXMnXG5pbXBvcnQgeyB2YWxpZGF0ZVF1ZXJ5UGF0aHMgfSBmcm9tICcuLi8uLi9kYXRhYmFzZS9xdWVyeVZhbGlkYXRpb24vdmFsaWRhdGVRdWVyeVBhdGhzJ1xuaW1wb3J0IHsgYWZ0ZXJSZWFkIH0gZnJvbSAnLi4vLi4vZmllbGRzL2hvb2tzL2FmdGVyUmVhZCdcbmltcG9ydCB7IGluaXRUcmFuc2FjdGlvbiB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9pbml0VHJhbnNhY3Rpb24nXG5pbXBvcnQgeyBraWxsVHJhbnNhY3Rpb24gfSBmcm9tICcuLi8uLi91dGlsaXRpZXMva2lsbFRyYW5zYWN0aW9uJ1xuaW1wb3J0IHNhbml0aXplSW50ZXJuYWxGaWVsZHMgZnJvbSAnLi4vLi4vdXRpbGl0aWVzL3Nhbml0aXplSW50ZXJuYWxGaWVsZHMnXG5pbXBvcnQgeyBidWlsZFZlcnNpb25HbG9iYWxGaWVsZHMgfSBmcm9tICcuLi8uLi92ZXJzaW9ucy9idWlsZEdsb2JhbEZpZWxkcydcblxuZXhwb3J0IHR5cGUgQXJndW1lbnRzID0ge1xuICBkZXB0aD86IG51bWJlclxuICBnbG9iYWxDb25maWc6IFNhbml0aXplZEdsb2JhbENvbmZpZ1xuICBsaW1pdD86IG51bWJlclxuICBvdmVycmlkZUFjY2Vzcz86IGJvb2xlYW5cbiAgcGFnZT86IG51bWJlclxuICByZXE/OiBQYXlsb2FkUmVxdWVzdFxuICBzaG93SGlkZGVuRmllbGRzPzogYm9vbGVhblxuICBzb3J0Pzogc3RyaW5nXG4gIHdoZXJlPzogV2hlcmVcbn1cblxuYXN5bmMgZnVuY3Rpb24gZmluZFZlcnNpb25zPFQgZXh0ZW5kcyBUeXBlV2l0aFZlcnNpb248VD4+KFxuICBhcmdzOiBBcmd1bWVudHMsXG4pOiBQcm9taXNlPFBhZ2luYXRlZERvY3M8VD4+IHtcbiAgY29uc3Qge1xuICAgIGRlcHRoLFxuICAgIGdsb2JhbENvbmZpZyxcbiAgICBsaW1pdCxcbiAgICBvdmVycmlkZUFjY2VzcyxcbiAgICBwYWdlLFxuICAgIHJlcTogeyBsb2NhbGUsIHBheWxvYWQgfSxcbiAgICByZXEsXG4gICAgc2hvd0hpZGRlbkZpZWxkcyxcbiAgICBzb3J0LFxuICAgIHdoZXJlLFxuICB9ID0gYXJnc1xuXG4gIGNvbnN0IHZlcnNpb25GaWVsZHMgPSBidWlsZFZlcnNpb25HbG9iYWxGaWVsZHMoZ2xvYmFsQ29uZmlnKVxuXG4gIHRyeSB7XG4gICAgY29uc3Qgc2hvdWxkQ29tbWl0ID0gYXdhaXQgaW5pdFRyYW5zYWN0aW9uKHJlcSlcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBBY2Nlc3NcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBjb25zdCBhY2Nlc3NSZXN1bHRzID0gIW92ZXJyaWRlQWNjZXNzXG4gICAgICA/IGF3YWl0IGV4ZWN1dGVBY2Nlc3MoeyByZXEgfSwgZ2xvYmFsQ29uZmlnLmFjY2Vzcy5yZWFkVmVyc2lvbnMpXG4gICAgICA6IHRydWVcblxuICAgIGF3YWl0IHZhbGlkYXRlUXVlcnlQYXRocyh7XG4gICAgICBnbG9iYWxDb25maWcsXG4gICAgICBvdmVycmlkZUFjY2VzcyxcbiAgICAgIHJlcSxcbiAgICAgIHZlcnNpb25GaWVsZHMsXG4gICAgICB3aGVyZSxcbiAgICB9KVxuXG4gICAgY29uc3QgZnVsbFdoZXJlID0gY29tYmluZVF1ZXJpZXMod2hlcmUsIGFjY2Vzc1Jlc3VsdHMpXG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gRmluZFxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGNvbnN0IHBhZ2luYXRlZERvY3MgPSBhd2FpdCBwYXlsb2FkLmRiLmZpbmRHbG9iYWxWZXJzaW9uczxUPih7XG4gICAgICBnbG9iYWw6IGdsb2JhbENvbmZpZy5zbHVnLFxuICAgICAgbGltaXQ6IGxpbWl0ID8/IDEwLFxuICAgICAgbG9jYWxlLFxuICAgICAgcGFnZTogcGFnZSB8fCAxLFxuICAgICAgcmVxLFxuICAgICAgc29ydCxcbiAgICAgIHdoZXJlOiBmdWxsV2hlcmUsXG4gICAgfSlcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBhZnRlclJlYWQgLSBGaWVsZHNcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBsZXQgcmVzdWx0ID0ge1xuICAgICAgLi4ucGFnaW5hdGVkRG9jcyxcbiAgICAgIGRvY3M6IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICBwYWdpbmF0ZWREb2NzLmRvY3MubWFwKGFzeW5jIChkYXRhKSA9PiAoe1xuICAgICAgICAgIC4uLmRhdGEsXG4gICAgICAgICAgdmVyc2lvbjogYXdhaXQgYWZ0ZXJSZWFkKHtcbiAgICAgICAgICAgIGNvbGxlY3Rpb246IG51bGwsXG4gICAgICAgICAgICBjb250ZXh0OiByZXEuY29udGV4dCxcbiAgICAgICAgICAgIGRlcHRoLFxuICAgICAgICAgICAgZG9jOiBkYXRhLnZlcnNpb24sXG4gICAgICAgICAgICBmaW5kTWFueTogdHJ1ZSxcbiAgICAgICAgICAgIGdsb2JhbDogZ2xvYmFsQ29uZmlnLFxuICAgICAgICAgICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgICAgICAgICByZXEsXG4gICAgICAgICAgICBzaG93SGlkZGVuRmllbGRzLFxuICAgICAgICAgIH0pLFxuICAgICAgICB9KSksXG4gICAgICApLFxuICAgIH0gYXMgUGFnaW5hdGVkRG9jczxUPlxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIGFmdGVyUmVhZCAtIEdsb2JhbFxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIHJlc3VsdCA9IHtcbiAgICAgIC4uLnJlc3VsdCxcbiAgICAgIGRvY3M6IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICByZXN1bHQuZG9jcy5tYXAoYXN5bmMgKGRvYykgPT4ge1xuICAgICAgICAgIGNvbnN0IGRvY1JlZiA9IGRvY1xuXG4gICAgICAgICAgYXdhaXQgZ2xvYmFsQ29uZmlnLmhvb2tzLmFmdGVyUmVhZC5yZWR1Y2UoYXN5bmMgKHByaW9ySG9vaywgaG9vaykgPT4ge1xuICAgICAgICAgICAgYXdhaXQgcHJpb3JIb29rXG5cbiAgICAgICAgICAgIGRvY1JlZi52ZXJzaW9uID1cbiAgICAgICAgICAgICAgKGF3YWl0IGhvb2soe1xuICAgICAgICAgICAgICAgIGNvbnRleHQ6IHJlcS5jb250ZXh0LFxuICAgICAgICAgICAgICAgIGRvYzogZG9jLnZlcnNpb24sXG4gICAgICAgICAgICAgICAgZmluZE1hbnk6IHRydWUsXG4gICAgICAgICAgICAgICAgZ2xvYmFsOiBnbG9iYWxDb25maWcsXG4gICAgICAgICAgICAgICAgcXVlcnk6IGZ1bGxXaGVyZSxcbiAgICAgICAgICAgICAgICByZXEsXG4gICAgICAgICAgICAgIH0pKSB8fCBkb2MudmVyc2lvblxuICAgICAgICAgIH0sIFByb21pc2UucmVzb2x2ZSgpKVxuXG4gICAgICAgICAgcmV0dXJuIGRvY1JlZlxuICAgICAgICB9KSxcbiAgICAgICksXG4gICAgfVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIFJldHVybiByZXN1bHRzXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgcmVzdWx0ID0ge1xuICAgICAgLi4ucmVzdWx0LFxuICAgICAgZG9jczogcmVzdWx0LmRvY3MubWFwKChkb2MpID0+IHNhbml0aXplSW50ZXJuYWxGaWVsZHM8VD4oZG9jKSksXG4gICAgfVxuXG4gICAgaWYgKHNob3VsZENvbW1pdCkgYXdhaXQgcGF5bG9hZC5kYi5jb21taXRUcmFuc2FjdGlvbihyZXEudHJhbnNhY3Rpb25JRClcblxuICAgIHJldHVybiByZXN1bHRcbiAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICBhd2FpdCBraWxsVHJhbnNhY3Rpb24ocmVxKVxuICAgIHRocm93IGVycm9yXG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgZmluZFZlcnNpb25zXG4iXSwibmFtZXMiOlsiZmluZFZlcnNpb25zIiwiYXJncyIsImRlcHRoIiwiZ2xvYmFsQ29uZmlnIiwibGltaXQiLCJvdmVycmlkZUFjY2VzcyIsInBhZ2UiLCJyZXEiLCJsb2NhbGUiLCJwYXlsb2FkIiwic2hvd0hpZGRlbkZpZWxkcyIsInNvcnQiLCJ3aGVyZSIsInZlcnNpb25GaWVsZHMiLCJidWlsZFZlcnNpb25HbG9iYWxGaWVsZHMiLCJzaG91bGRDb21taXQiLCJpbml0VHJhbnNhY3Rpb24iLCJhY2Nlc3NSZXN1bHRzIiwiZXhlY3V0ZUFjY2VzcyIsImFjY2VzcyIsInJlYWRWZXJzaW9ucyIsInZhbGlkYXRlUXVlcnlQYXRocyIsImZ1bGxXaGVyZSIsImNvbWJpbmVRdWVyaWVzIiwicGFnaW5hdGVkRG9jcyIsImRiIiwiZmluZEdsb2JhbFZlcnNpb25zIiwiZ2xvYmFsIiwic2x1ZyIsInJlc3VsdCIsImRvY3MiLCJQcm9taXNlIiwiYWxsIiwibWFwIiwiZGF0YSIsInZlcnNpb24iLCJhZnRlclJlYWQiLCJjb2xsZWN0aW9uIiwiY29udGV4dCIsImRvYyIsImZpbmRNYW55IiwiZG9jUmVmIiwiaG9va3MiLCJyZWR1Y2UiLCJwcmlvckhvb2siLCJob29rIiwicXVlcnkiLCJyZXNvbHZlIiwic2FuaXRpemVJbnRlcm5hbEZpZWxkcyIsImNvbW1pdFRyYW5zYWN0aW9uIiwidHJhbnNhY3Rpb25JRCIsImVycm9yIiwia2lsbFRyYW5zYWN0aW9uIl0sIm1hcHBpbmdzIjoiOzs7OytCQXVKQTs7O2VBQUE7OztzRUFqSjBCO2dDQUNLO29DQUNJOzJCQUNUO2lDQUNNO2lDQUNBOytFQUNHO21DQUNNOzs7Ozs7QUFjekMsZUFBZUEsYUFDYkMsSUFBZTtJQUVmLE1BQU0sRUFDSkMsS0FBSyxFQUNMQyxZQUFZLEVBQ1pDLEtBQUssRUFDTEMsY0FBYyxFQUNkQyxJQUFJLEVBQ0pDLEtBQUssRUFBRUMsTUFBTSxFQUFFQyxPQUFPLEVBQUUsRUFDeEJGLEdBQUcsRUFDSEcsZ0JBQWdCLEVBQ2hCQyxJQUFJLEVBQ0pDLEtBQUssRUFDTixHQUFHWDtJQUVKLE1BQU1ZLGdCQUFnQkMsSUFBQUEsMkNBQXdCLEVBQUNYO0lBRS9DLElBQUk7UUFDRixNQUFNWSxlQUFlLE1BQU1DLElBQUFBLGdDQUFlLEVBQUNUO1FBRTNDLHdDQUF3QztRQUN4QyxTQUFTO1FBQ1Qsd0NBQXdDO1FBRXhDLE1BQU1VLGdCQUFnQixDQUFDWixpQkFDbkIsTUFBTWEsSUFBQUEsc0JBQWEsRUFBQztZQUFFWDtRQUFJLEdBQUdKLGFBQWFnQixNQUFNLENBQUNDLFlBQVksSUFDN0Q7UUFFSixNQUFNQyxJQUFBQSxzQ0FBa0IsRUFBQztZQUN2QmxCO1lBQ0FFO1lBQ0FFO1lBQ0FNO1lBQ0FEO1FBQ0Y7UUFFQSxNQUFNVSxZQUFZQyxJQUFBQSw4QkFBYyxFQUFDWCxPQUFPSztRQUV4Qyx3Q0FBd0M7UUFDeEMsT0FBTztRQUNQLHdDQUF3QztRQUV4QyxNQUFNTyxnQkFBZ0IsTUFBTWYsUUFBUWdCLEVBQUUsQ0FBQ0Msa0JBQWtCLENBQUk7WUFDM0RDLFFBQVF4QixhQUFheUIsSUFBSTtZQUN6QnhCLE9BQU9BLFNBQVM7WUFDaEJJO1lBQ0FGLE1BQU1BLFFBQVE7WUFDZEM7WUFDQUk7WUFDQUMsT0FBT1U7UUFDVDtRQUVBLHdDQUF3QztRQUN4QyxxQkFBcUI7UUFDckIsd0NBQXdDO1FBRXhDLElBQUlPLFNBQVM7WUFDWCxHQUFHTCxhQUFhO1lBQ2hCTSxNQUFNLE1BQU1DLFFBQVFDLEdBQUcsQ0FDckJSLGNBQWNNLElBQUksQ0FBQ0csR0FBRyxDQUFDLE9BQU9DLE9BQVUsQ0FBQTtvQkFDdEMsR0FBR0EsSUFBSTtvQkFDUEMsU0FBUyxNQUFNQyxJQUFBQSxvQkFBUyxFQUFDO3dCQUN2QkMsWUFBWTt3QkFDWkMsU0FBUy9CLElBQUkrQixPQUFPO3dCQUNwQnBDO3dCQUNBcUMsS0FBS0wsS0FBS0MsT0FBTzt3QkFDakJLLFVBQVU7d0JBQ1ZiLFFBQVF4Qjt3QkFDUkU7d0JBQ0FFO3dCQUNBRztvQkFDRjtnQkFDRixDQUFBO1FBRUo7UUFFQSx3Q0FBd0M7UUFDeEMscUJBQXFCO1FBQ3JCLHdDQUF3QztRQUV4Q21CLFNBQVM7WUFDUCxHQUFHQSxNQUFNO1lBQ1RDLE1BQU0sTUFBTUMsUUFBUUMsR0FBRyxDQUNyQkgsT0FBT0MsSUFBSSxDQUFDRyxHQUFHLENBQUMsT0FBT007Z0JBQ3JCLE1BQU1FLFNBQVNGO2dCQUVmLE1BQU1wQyxhQUFhdUMsS0FBSyxDQUFDTixTQUFTLENBQUNPLE1BQU0sQ0FBQyxPQUFPQyxXQUFXQztvQkFDMUQsTUFBTUQ7b0JBRU5ILE9BQU9OLE9BQU8sR0FDWixBQUFDLE1BQU1VLEtBQUs7d0JBQ1ZQLFNBQVMvQixJQUFJK0IsT0FBTzt3QkFDcEJDLEtBQUtBLElBQUlKLE9BQU87d0JBQ2hCSyxVQUFVO3dCQUNWYixRQUFReEI7d0JBQ1IyQyxPQUFPeEI7d0JBQ1BmO29CQUNGLE1BQU9nQyxJQUFJSixPQUFPO2dCQUN0QixHQUFHSixRQUFRZ0IsT0FBTztnQkFFbEIsT0FBT047WUFDVDtRQUVKO1FBRUEsd0NBQXdDO1FBQ3hDLGlCQUFpQjtRQUNqQix3Q0FBd0M7UUFFeENaLFNBQVM7WUFDUCxHQUFHQSxNQUFNO1lBQ1RDLE1BQU1ELE9BQU9DLElBQUksQ0FBQ0csR0FBRyxDQUFDLENBQUNNLE1BQVFTLElBQUFBLCtCQUFzQixFQUFJVDtRQUMzRDtRQUVBLElBQUl4QixjQUFjLE1BQU1OLFFBQVFnQixFQUFFLENBQUN3QixpQkFBaUIsQ0FBQzFDLElBQUkyQyxhQUFhO1FBRXRFLE9BQU9yQjtJQUNULEVBQUUsT0FBT3NCLE9BQWdCO1FBQ3ZCLE1BQU1DLElBQUFBLGdDQUFlLEVBQUM3QztRQUN0QixNQUFNNEM7SUFDUjtBQUNGO01BRUEsV0FBZW5EIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"restoreVersion.d.ts","sourceRoot":"","sources":["../../../src/globals/operations/restoreVersion.ts"],"names":[],"mappings":"AAAA,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,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,qBAAqB,CAAA;IACnC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,GAAG,CAAC,EAAE,cAAc,CAAA;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B,CAAA;AAED,iBAAe,cAAc,CAAC,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CA0I7F;AAED,eAAe,cAAc,CAAA"}
1
+ {"version":3,"file":"restoreVersion.d.ts","sourceRoot":"","sources":["../../../src/globals/operations/restoreVersion.ts"],"names":[],"mappings":"AAAA,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,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,qBAAqB,CAAA;IACnC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,GAAG,CAAC,EAAE,cAAc,CAAA;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B,CAAA;AAED,iBAAe,cAAc,CAAC,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAgJ7F;AAED,eAAe,cAAc,CAAA"}
@@ -81,10 +81,11 @@ async function restoreVersion(args) {
81
81
  // afterRead - Fields
82
82
  // /////////////////////////////////////
83
83
  result = await (0, _afterRead.afterRead)({
84
+ collection: null,
84
85
  context: req.context,
85
86
  depth,
86
87
  doc: result,
87
- entityConfig: globalConfig,
88
+ global: globalConfig,
88
89
  overrideAccess,
89
90
  req,
90
91
  showHiddenFields
@@ -95,7 +96,9 @@ async function restoreVersion(args) {
95
96
  await globalConfig.hooks.afterRead.reduce(async (priorHook, hook)=>{
96
97
  await priorHook;
97
98
  result = await hook({
99
+ context: req.context,
98
100
  doc: result,
101
+ global: globalConfig,
99
102
  req
100
103
  }) || result;
101
104
  }, Promise.resolve());
@@ -103,10 +106,11 @@ async function restoreVersion(args) {
103
106
  // afterChange - Fields
104
107
  // /////////////////////////////////////
105
108
  result = await (0, _afterChange.afterChange)({
109
+ collection: null,
106
110
  context: req.context,
107
111
  data: result,
108
112
  doc: result,
109
- entityConfig: globalConfig,
113
+ global: globalConfig,
110
114
  operation: 'update',
111
115
  previousDoc,
112
116
  req
@@ -117,7 +121,9 @@ async function restoreVersion(args) {
117
121
  await globalConfig.hooks.afterChange.reduce(async (priorHook, hook)=>{
118
122
  await priorHook;
119
123
  result = await hook({
124
+ context: req.context,
120
125
  doc: result,
126
+ global: globalConfig,
121
127
  previousDoc,
122
128
  req
123
129
  }) || result;
@@ -131,4 +137,4 @@ async function restoreVersion(args) {
131
137
  }
132
138
  const _default = restoreVersion;
133
139
 
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9nbG9iYWxzL29wZXJhdGlvbnMvcmVzdG9yZVZlcnNpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQYXlsb2FkUmVxdWVzdCB9IGZyb20gJy4uLy4uL2V4cHJlc3MvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFR5cGVXaXRoVmVyc2lvbiB9IGZyb20gJy4uLy4uL3ZlcnNpb25zL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRHbG9iYWxDb25maWcgfSBmcm9tICcuLi9jb25maWcvdHlwZXMnXG5cbmltcG9ydCBleGVjdXRlQWNjZXNzIGZyb20gJy4uLy4uL2F1dGgvZXhlY3V0ZUFjY2VzcydcbmltcG9ydCB7IE5vdEZvdW5kIH0gZnJvbSAnLi4vLi4vZXJyb3JzJ1xuaW1wb3J0IHsgYWZ0ZXJDaGFuZ2UgfSBmcm9tICcuLi8uLi9maWVsZHMvaG9va3MvYWZ0ZXJDaGFuZ2UnXG5pbXBvcnQgeyBhZnRlclJlYWQgfSBmcm9tICcuLi8uLi9maWVsZHMvaG9va3MvYWZ0ZXJSZWFkJ1xuaW1wb3J0IHsgaW5pdFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2luaXRUcmFuc2FjdGlvbidcbmltcG9ydCB7IGtpbGxUcmFuc2FjdGlvbiB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9raWxsVHJhbnNhY3Rpb24nXG5cbmV4cG9ydCB0eXBlIEFyZ3VtZW50cyA9IHtcbiAgZGVwdGg/OiBudW1iZXJcbiAgZ2xvYmFsQ29uZmlnOiBTYW5pdGl6ZWRHbG9iYWxDb25maWdcbiAgaWQ6IG51bWJlciB8IHN0cmluZ1xuICBvdmVycmlkZUFjY2Vzcz86IGJvb2xlYW5cbiAgcmVxPzogUGF5bG9hZFJlcXVlc3RcbiAgc2hvd0hpZGRlbkZpZWxkcz86IGJvb2xlYW5cbn1cblxuYXN5bmMgZnVuY3Rpb24gcmVzdG9yZVZlcnNpb248VCBleHRlbmRzIFR5cGVXaXRoVmVyc2lvbjxUPiA9IGFueT4oYXJnczogQXJndW1lbnRzKTogUHJvbWlzZTxUPiB7XG4gIGNvbnN0IHtcbiAgICBpZCxcbiAgICBkZXB0aCxcbiAgICBnbG9iYWxDb25maWcsXG4gICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgcmVxOiB7IHBheWxvYWQsIHQgfSxcbiAgICByZXEsXG4gICAgc2hvd0hpZGRlbkZpZWxkcyxcbiAgfSA9IGFyZ3NcblxuICB0cnkge1xuICAgIGNvbnN0IHNob3VsZENvbW1pdCA9IGF3YWl0IGluaXRUcmFuc2FjdGlvbihyZXEpXG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gQWNjZXNzXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgaWYgKCFvdmVycmlkZUFjY2Vzcykge1xuICAgICAgYXdhaXQgZXhlY3V0ZUFjY2Vzcyh7IHJlcSB9LCBnbG9iYWxDb25maWcuYWNjZXNzLnVwZGF0ZSlcbiAgICB9XG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gUmV0cmlldmUgb3JpZ2luYWwgcmF3IHZlcnNpb25cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBjb25zdCB7IGRvY3M6IHZlcnNpb25Eb2NzIH0gPSBhd2FpdCBwYXlsb2FkLmRiLmZpbmRHbG9iYWxWZXJzaW9uczxhbnk+KHtcbiAgICAgIGdsb2JhbDogZ2xvYmFsQ29uZmlnLnNsdWcsXG4gICAgICBsaW1pdDogMSxcbiAgICAgIHJlcSxcbiAgICAgIHdoZXJlOiB7IGlkOiB7IGVxdWFsczogaWQgfSB9LFxuICAgIH0pXG5cbiAgICBpZiAoIXZlcnNpb25Eb2NzIHx8IHZlcnNpb25Eb2NzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kKHQpXG4gICAgfVxuXG4gICAgY29uc3QgcmF3VmVyc2lvbiA9IHZlcnNpb25Eb2NzWzBdXG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gZmV0Y2ggcHJldmlvdXNEb2NcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBjb25zdCBwcmV2aW91c0RvYyA9IGF3YWl0IHBheWxvYWQuZmluZEdsb2JhbCh7XG4gICAgICBkZXB0aCxcbiAgICAgIHJlcSxcbiAgICAgIHNsdWc6IGdsb2JhbENvbmZpZy5zbHVnLFxuICAgIH0pXG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gVXBkYXRlIGdsb2JhbFxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGNvbnN0IGdsb2JhbCA9IGF3YWl0IHBheWxvYWQuZGIuZmluZEdsb2JhbCh7XG4gICAgICByZXEsXG4gICAgICBzbHVnOiBnbG9iYWxDb25maWcuc2x1ZyxcbiAgICB9KVxuXG4gICAgbGV0IHJlc3VsdCA9IHJhd1ZlcnNpb24udmVyc2lvblxuXG4gICAgaWYgKGdsb2JhbCkge1xuICAgICAgcmVzdWx0ID0gYXdhaXQgcGF5bG9hZC5kYi51cGRhdGVHbG9iYWwoe1xuICAgICAgICBkYXRhOiByZXN1bHQsXG4gICAgICAgIHJlcSxcbiAgICAgICAgc2x1ZzogZ2xvYmFsQ29uZmlnLnNsdWcsXG4gICAgICB9KVxuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHQgPSBhd2FpdCBwYXlsb2FkLmRiLmNyZWF0ZUdsb2JhbCh7XG4gICAgICAgIGRhdGE6IHJlc3VsdCxcbiAgICAgICAgcmVxLFxuICAgICAgICBzbHVnOiBnbG9iYWxDb25maWcuc2x1ZyxcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIGFmdGVyUmVhZCAtIEZpZWxkc1xuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIHJlc3VsdCA9IGF3YWl0IGFmdGVyUmVhZCh7XG4gICAgICBjb250ZXh0OiByZXEuY29udGV4dCxcbiAgICAgIGRlcHRoLFxuICAgICAgZG9jOiByZXN1bHQsXG4gICAgICBlbnRpdHlDb25maWc6IGdsb2JhbENvbmZpZyxcbiAgICAgIG92ZXJyaWRlQWNjZXNzLFxuICAgICAgcmVxLFxuICAgICAgc2hvd0hpZGRlbkZpZWxkcyxcbiAgICB9KVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIGFmdGVyUmVhZCAtIEdsb2JhbFxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGF3YWl0IGdsb2JhbENvbmZpZy5ob29rcy5hZnRlclJlYWQucmVkdWNlKGFzeW5jIChwcmlvckhvb2ssIGhvb2spID0+IHtcbiAgICAgIGF3YWl0IHByaW9ySG9va1xuXG4gICAgICByZXN1bHQgPVxuICAgICAgICAoYXdhaXQgaG9vayh7XG4gICAgICAgICAgZG9jOiByZXN1bHQsXG4gICAgICAgICAgcmVxLFxuICAgICAgICB9KSkgfHwgcmVzdWx0XG4gICAgfSwgUHJvbWlzZS5yZXNvbHZlKCkpXG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gYWZ0ZXJDaGFuZ2UgLSBGaWVsZHNcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICByZXN1bHQgPSBhd2FpdCBhZnRlckNoYW5nZSh7XG4gICAgICBjb250ZXh0OiByZXEuY29udGV4dCxcbiAgICAgIGRhdGE6IHJlc3VsdCxcbiAgICAgIGRvYzogcmVzdWx0LFxuICAgICAgZW50aXR5Q29uZmlnOiBnbG9iYWxDb25maWcsXG4gICAgICBvcGVyYXRpb246ICd1cGRhdGUnLFxuICAgICAgcHJldmlvdXNEb2MsXG4gICAgICByZXEsXG4gICAgfSlcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBhZnRlckNoYW5nZSAtIEdsb2JhbFxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGF3YWl0IGdsb2JhbENvbmZpZy5ob29rcy5hZnRlckNoYW5nZS5yZWR1Y2UoYXN5bmMgKHByaW9ySG9vaywgaG9vaykgPT4ge1xuICAgICAgYXdhaXQgcHJpb3JIb29rXG5cbiAgICAgIHJlc3VsdCA9XG4gICAgICAgIChhd2FpdCBob29rKHtcbiAgICAgICAgICBkb2M6IHJlc3VsdCxcbiAgICAgICAgICBwcmV2aW91c0RvYyxcbiAgICAgICAgICByZXEsXG4gICAgICAgIH0pKSB8fCByZXN1bHRcbiAgICB9LCBQcm9taXNlLnJlc29sdmUoKSlcblxuICAgIGlmIChzaG91bGRDb21taXQpIGF3YWl0IHBheWxvYWQuZGIuY29tbWl0VHJhbnNhY3Rpb24ocmVxLnRyYW5zYWN0aW9uSUQpXG5cbiAgICByZXR1cm4gcmVzdWx0XG4gIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgYXdhaXQga2lsbFRyYW5zYWN0aW9uKHJlcSlcbiAgICB0aHJvdyBlcnJvclxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHJlc3RvcmVWZXJzaW9uXG4iXSwibmFtZXMiOlsicmVzdG9yZVZlcnNpb24iLCJhcmdzIiwiaWQiLCJkZXB0aCIsImdsb2JhbENvbmZpZyIsIm92ZXJyaWRlQWNjZXNzIiwicmVxIiwicGF5bG9hZCIsInQiLCJzaG93SGlkZGVuRmllbGRzIiwic2hvdWxkQ29tbWl0IiwiaW5pdFRyYW5zYWN0aW9uIiwiZXhlY3V0ZUFjY2VzcyIsImFjY2VzcyIsInVwZGF0ZSIsImRvY3MiLCJ2ZXJzaW9uRG9jcyIsImRiIiwiZmluZEdsb2JhbFZlcnNpb25zIiwiZ2xvYmFsIiwic2x1ZyIsImxpbWl0Iiwid2hlcmUiLCJlcXVhbHMiLCJsZW5ndGgiLCJOb3RGb3VuZCIsInJhd1ZlcnNpb24iLCJwcmV2aW91c0RvYyIsImZpbmRHbG9iYWwiLCJyZXN1bHQiLCJ2ZXJzaW9uIiwidXBkYXRlR2xvYmFsIiwiZGF0YSIsImNyZWF0ZUdsb2JhbCIsImFmdGVyUmVhZCIsImNvbnRleHQiLCJkb2MiLCJlbnRpdHlDb25maWciLCJob29rcyIsInJlZHVjZSIsInByaW9ySG9vayIsImhvb2siLCJQcm9taXNlIiwicmVzb2x2ZSIsImFmdGVyQ2hhbmdlIiwib3BlcmF0aW9uIiwiY29tbWl0VHJhbnNhY3Rpb24iLCJ0cmFuc2FjdGlvbklEIiwiZXJyb3IiLCJraWxsVHJhbnNhY3Rpb24iXSwibWFwcGluZ3MiOiI7Ozs7K0JBZ0tBOzs7ZUFBQTs7O3NFQTVKMEI7d0JBQ0Q7NkJBQ0c7MkJBQ0Y7aUNBQ007aUNBQ0E7Ozs7OztBQVdoQyxlQUFlQSxlQUFtREMsSUFBZTtJQUMvRSxNQUFNLEVBQ0pDLEVBQUUsRUFDRkMsS0FBSyxFQUNMQyxZQUFZLEVBQ1pDLGNBQWMsRUFDZEMsS0FBSyxFQUFFQyxPQUFPLEVBQUVDLENBQUMsRUFBRSxFQUNuQkYsR0FBRyxFQUNIRyxnQkFBZ0IsRUFDakIsR0FBR1I7SUFFSixJQUFJO1FBQ0YsTUFBTVMsZUFBZSxNQUFNQyxJQUFBQSxnQ0FBZSxFQUFDTDtRQUUzQyx3Q0FBd0M7UUFDeEMsU0FBUztRQUNULHdDQUF3QztRQUV4QyxJQUFJLENBQUNELGdCQUFnQjtZQUNuQixNQUFNTyxJQUFBQSxzQkFBYSxFQUFDO2dCQUFFTjtZQUFJLEdBQUdGLGFBQWFTLE1BQU0sQ0FBQ0MsTUFBTTtRQUN6RDtRQUVBLHdDQUF3QztRQUN4QyxnQ0FBZ0M7UUFDaEMsd0NBQXdDO1FBRXhDLE1BQU0sRUFBRUMsTUFBTUMsV0FBVyxFQUFFLEdBQUcsTUFBTVQsUUFBUVUsRUFBRSxDQUFDQyxrQkFBa0IsQ0FBTTtZQUNyRUMsUUFBUWYsYUFBYWdCLElBQUk7WUFDekJDLE9BQU87WUFDUGY7WUFDQWdCLE9BQU87Z0JBQUVwQixJQUFJO29CQUFFcUIsUUFBUXJCO2dCQUFHO1lBQUU7UUFD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
140
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9nbG9iYWxzL29wZXJhdGlvbnMvcmVzdG9yZVZlcnNpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQYXlsb2FkUmVxdWVzdCB9IGZyb20gJy4uLy4uL2V4cHJlc3MvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFR5cGVXaXRoVmVyc2lvbiB9IGZyb20gJy4uLy4uL3ZlcnNpb25zL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRHbG9iYWxDb25maWcgfSBmcm9tICcuLi9jb25maWcvdHlwZXMnXG5cbmltcG9ydCBleGVjdXRlQWNjZXNzIGZyb20gJy4uLy4uL2F1dGgvZXhlY3V0ZUFjY2VzcydcbmltcG9ydCB7IE5vdEZvdW5kIH0gZnJvbSAnLi4vLi4vZXJyb3JzJ1xuaW1wb3J0IHsgYWZ0ZXJDaGFuZ2UgfSBmcm9tICcuLi8uLi9maWVsZHMvaG9va3MvYWZ0ZXJDaGFuZ2UnXG5pbXBvcnQgeyBhZnRlclJlYWQgfSBmcm9tICcuLi8uLi9maWVsZHMvaG9va3MvYWZ0ZXJSZWFkJ1xuaW1wb3J0IHsgaW5pdFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2luaXRUcmFuc2FjdGlvbidcbmltcG9ydCB7IGtpbGxUcmFuc2FjdGlvbiB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9raWxsVHJhbnNhY3Rpb24nXG5cbmV4cG9ydCB0eXBlIEFyZ3VtZW50cyA9IHtcbiAgZGVwdGg/OiBudW1iZXJcbiAgZ2xvYmFsQ29uZmlnOiBTYW5pdGl6ZWRHbG9iYWxDb25maWdcbiAgaWQ6IG51bWJlciB8IHN0cmluZ1xuICBvdmVycmlkZUFjY2Vzcz86IGJvb2xlYW5cbiAgcmVxPzogUGF5bG9hZFJlcXVlc3RcbiAgc2hvd0hpZGRlbkZpZWxkcz86IGJvb2xlYW5cbn1cblxuYXN5bmMgZnVuY3Rpb24gcmVzdG9yZVZlcnNpb248VCBleHRlbmRzIFR5cGVXaXRoVmVyc2lvbjxUPiA9IGFueT4oYXJnczogQXJndW1lbnRzKTogUHJvbWlzZTxUPiB7XG4gIGNvbnN0IHtcbiAgICBpZCxcbiAgICBkZXB0aCxcbiAgICBnbG9iYWxDb25maWcsXG4gICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgcmVxOiB7IHBheWxvYWQsIHQgfSxcbiAgICByZXEsXG4gICAgc2hvd0hpZGRlbkZpZWxkcyxcbiAgfSA9IGFyZ3NcblxuICB0cnkge1xuICAgIGNvbnN0IHNob3VsZENvbW1pdCA9IGF3YWl0IGluaXRUcmFuc2FjdGlvbihyZXEpXG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gQWNjZXNzXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgaWYgKCFvdmVycmlkZUFjY2Vzcykge1xuICAgICAgYXdhaXQgZXhlY3V0ZUFjY2Vzcyh7IHJlcSB9LCBnbG9iYWxDb25maWcuYWNjZXNzLnVwZGF0ZSlcbiAgICB9XG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gUmV0cmlldmUgb3JpZ2luYWwgcmF3IHZlcnNpb25cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBjb25zdCB7IGRvY3M6IHZlcnNpb25Eb2NzIH0gPSBhd2FpdCBwYXlsb2FkLmRiLmZpbmRHbG9iYWxWZXJzaW9uczxhbnk+KHtcbiAgICAgIGdsb2JhbDogZ2xvYmFsQ29uZmlnLnNsdWcsXG4gICAgICBsaW1pdDogMSxcbiAgICAgIHJlcSxcbiAgICAgIHdoZXJlOiB7IGlkOiB7IGVxdWFsczogaWQgfSB9LFxuICAgIH0pXG5cbiAgICBpZiAoIXZlcnNpb25Eb2NzIHx8IHZlcnNpb25Eb2NzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kKHQpXG4gICAgfVxuXG4gICAgY29uc3QgcmF3VmVyc2lvbiA9IHZlcnNpb25Eb2NzWzBdXG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gZmV0Y2ggcHJldmlvdXNEb2NcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBjb25zdCBwcmV2aW91c0RvYyA9IGF3YWl0IHBheWxvYWQuZmluZEdsb2JhbCh7XG4gICAgICBkZXB0aCxcbiAgICAgIHJlcSxcbiAgICAgIHNsdWc6IGdsb2JhbENvbmZpZy5zbHVnLFxuICAgIH0pXG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gVXBkYXRlIGdsb2JhbFxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGNvbnN0IGdsb2JhbCA9IGF3YWl0IHBheWxvYWQuZGIuZmluZEdsb2JhbCh7XG4gICAgICByZXEsXG4gICAgICBzbHVnOiBnbG9iYWxDb25maWcuc2x1ZyxcbiAgICB9KVxuXG4gICAgbGV0IHJlc3VsdCA9IHJhd1ZlcnNpb24udmVyc2lvblxuXG4gICAgaWYgKGdsb2JhbCkge1xuICAgICAgcmVzdWx0ID0gYXdhaXQgcGF5bG9hZC5kYi51cGRhdGVHbG9iYWwoe1xuICAgICAgICBkYXRhOiByZXN1bHQsXG4gICAgICAgIHJlcSxcbiAgICAgICAgc2x1ZzogZ2xvYmFsQ29uZmlnLnNsdWcsXG4gICAgICB9KVxuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHQgPSBhd2FpdCBwYXlsb2FkLmRiLmNyZWF0ZUdsb2JhbCh7XG4gICAgICAgIGRhdGE6IHJlc3VsdCxcbiAgICAgICAgcmVxLFxuICAgICAgICBzbHVnOiBnbG9iYWxDb25maWcuc2x1ZyxcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIGFmdGVyUmVhZCAtIEZpZWxkc1xuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIHJlc3VsdCA9IGF3YWl0IGFmdGVyUmVhZCh7XG4gICAgICBjb2xsZWN0aW9uOiBudWxsLFxuICAgICAgY29udGV4dDogcmVxLmNvbnRleHQsXG4gICAgICBkZXB0aCxcbiAgICAgIGRvYzogcmVzdWx0LFxuICAgICAgZ2xvYmFsOiBnbG9iYWxDb25maWcsXG4gICAgICBvdmVycmlkZUFjY2VzcyxcbiAgICAgIHJlcSxcbiAgICAgIHNob3dIaWRkZW5GaWVsZHMsXG4gICAgfSlcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBhZnRlclJlYWQgLSBHbG9iYWxcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBhd2FpdCBnbG9iYWxDb25maWcuaG9va3MuYWZ0ZXJSZWFkLnJlZHVjZShhc3luYyAocHJpb3JIb29rLCBob29rKSA9PiB7XG4gICAgICBhd2FpdCBwcmlvckhvb2tcblxuICAgICAgcmVzdWx0ID1cbiAgICAgICAgKGF3YWl0IGhvb2soe1xuICAgICAgICAgIGNvbnRleHQ6IHJlcS5jb250ZXh0LFxuICAgICAgICAgIGRvYzogcmVzdWx0LFxuICAgICAgICAgIGdsb2JhbDogZ2xvYmFsQ29uZmlnLFxuICAgICAgICAgIHJlcSxcbiAgICAgICAgfSkpIHx8IHJlc3VsdFxuICAgIH0sIFByb21pc2UucmVzb2x2ZSgpKVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIGFmdGVyQ2hhbmdlIC0gRmllbGRzXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgcmVzdWx0ID0gYXdhaXQgYWZ0ZXJDaGFuZ2Uoe1xuICAgICAgY29sbGVjdGlvbjogbnVsbCxcbiAgICAgIGNvbnRleHQ6IHJlcS5jb250ZXh0LFxuICAgICAgZGF0YTogcmVzdWx0LFxuICAgICAgZG9jOiByZXN1bHQsXG4gICAgICBnbG9iYWw6IGdsb2JhbENvbmZpZyxcbiAgICAgIG9wZXJhdGlvbjogJ3VwZGF0ZScsXG4gICAgICBwcmV2aW91c0RvYyxcbiAgICAgIHJlcSxcbiAgICB9KVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIGFmdGVyQ2hhbmdlIC0gR2xvYmFsXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgYXdhaXQgZ2xvYmFsQ29uZmlnLmhvb2tzLmFmdGVyQ2hhbmdlLnJlZHVjZShhc3luYyAocHJpb3JIb29rLCBob29rKSA9PiB7XG4gICAgICBhd2FpdCBwcmlvckhvb2tcblxuICAgICAgcmVzdWx0ID1cbiAgICAgICAgKGF3YWl0IGhvb2soe1xuICAgICAgICAgIGNvbnRleHQ6IHJlcS5jb250ZXh0LFxuICAgICAgICAgIGRvYzogcmVzdWx0LFxuICAgICAgICAgIGdsb2JhbDogZ2xvYmFsQ29uZmlnLFxuICAgICAgICAgIHByZXZpb3VzRG9jLFxuICAgICAgICAgIHJlcSxcbiAgICAgICAgfSkpIHx8IHJlc3VsdFxuICAgIH0sIFByb21pc2UucmVzb2x2ZSgpKVxuXG4gICAgaWYgKHNob3VsZENvbW1pdCkgYXdhaXQgcGF5bG9hZC5kYi5jb21taXRUcmFuc2FjdGlvbihyZXEudHJhbnNhY3Rpb25JRClcblxuICAgIHJldHVybiByZXN1bHRcbiAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICBhd2FpdCBraWxsVHJhbnNhY3Rpb24ocmVxKVxuICAgIHRocm93IGVycm9yXG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgcmVzdG9yZVZlcnNpb25cbiJdLCJuYW1lcyI6WyJyZXN0b3JlVmVyc2lvbiIsImFyZ3MiLCJpZCIsImRlcHRoIiwiZ2xvYmFsQ29uZmlnIiwib3ZlcnJpZGVBY2Nlc3MiLCJyZXEiLCJwYXlsb2FkIiwidCIsInNob3dIaWRkZW5GaWVsZHMiLCJzaG91bGRDb21taXQiLCJpbml0VHJhbnNhY3Rpb24iLCJleGVjdXRlQWNjZXNzIiwiYWNjZXNzIiwidXBkYXRlIiwiZG9jcyIsInZlcnNpb25Eb2NzIiwiZGIiLCJmaW5kR2xvYmFsVmVyc2lvbnMiLCJnbG9iYWwiLCJzbHVnIiwibGltaXQiLCJ3aGVyZSIsImVxdWFscyIsImxlbmd0aCIsIk5vdEZvdW5kIiwicmF3VmVyc2lvbiIsInByZXZpb3VzRG9jIiwiZmluZEdsb2JhbCIsInJlc3VsdCIsInZlcnNpb24iLCJ1cGRhdGVHbG9iYWwiLCJkYXRhIiwiY3JlYXRlR2xvYmFsIiwiYWZ0ZXJSZWFkIiwiY29sbGVjdGlvbiIsImNvbnRleHQiLCJkb2MiLCJob29rcyIsInJlZHVjZSIsInByaW9ySG9vayIsImhvb2siLCJQcm9taXNlIiwicmVzb2x2ZSIsImFmdGVyQ2hhbmdlIiwib3BlcmF0aW9uIiwiY29tbWl0VHJhbnNhY3Rpb24iLCJ0cmFuc2FjdGlvbklEIiwiZXJyb3IiLCJraWxsVHJhbnNhY3Rpb24iXSwibWFwcGluZ3MiOiI7Ozs7K0JBc0tBOzs7ZUFBQTs7O3NFQWxLMEI7d0JBQ0Q7NkJBQ0c7MkJBQ0Y7aUNBQ007aUNBQ0E7Ozs7OztBQVdoQyxlQUFlQSxlQUFtREMsSUFBZTtJQUMvRSxNQUFNLEVBQ0pDLEVBQUUsRUFDRkMsS0FBSyxFQUNMQyxZQUFZLEVBQ1pDLGNBQWMsRUFDZEMsS0FBSyxFQUFFQyxPQUFPLEVBQUVDLENBQUMsRUFBRSxFQUNuQkYsR0FBRyxFQUNIRyxnQkFBZ0IsRUFDakIsR0FBR1I7SUFFSixJQUFJO1FBQ0YsTUFBTVMsZUFBZSxNQUFNQyxJQUFBQSxnQ0FBZSxFQUFDTDtRQUUzQyx3Q0FBd0M7UUFDeEMsU0FBUztRQUNULHdDQUF3QztRQUV4QyxJQUFJLENBQUNELGdCQUFnQjtZQUNuQixNQUFNTyxJQUFBQSxzQkFBYSxFQUFDO2dCQUFFTjtZQUFJLEdBQUdGLGFBQWFTLE1BQU0sQ0FBQ0MsTUFBTTtRQUN6RDtRQUVBLHdDQUF3QztRQUN4QyxnQ0FBZ0M7UUFDaEMsd0NBQXdDO1FB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
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/globals/operations/update.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAEhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAA;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEzD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAY5D,KAAK,IAAI,CAAC,CAAC,SAAS;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;CAAE,IAAI;IACpE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA;IAChC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,YAAY,EAAE,qBAAqB,CAAA;IACnC,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,MAAM,CAAC,KAAK,SAAS,MAAM,cAAc,CAAC,SAAS,CAAC,EACjE,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,GAC3C,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CA8O3C;AAED,eAAe,MAAM,CAAA"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/globals/operations/update.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAEhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAA;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEzD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAY5D,KAAK,IAAI,CAAC,CAAC,SAAS;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;CAAE,IAAI;IACpE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA;IAChC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,YAAY,EAAE,qBAAqB,CAAA;IACnC,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,MAAM,CAAC,KAAK,SAAS,MAAM,cAAc,CAAC,SAAS,CAAC,EACjE,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,GAC3C,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CA2P3C;AAED,eAAe,MAAM,CAAA"}
@@ -58,10 +58,11 @@ async function update(args) {
58
58
  }
59
59
  }
60
60
  const originalDoc = await (0, _afterRead.afterRead)({
61
+ collection: null,
61
62
  context: req.context,
62
63
  depth: 0,
63
64
  doc: globalJSON,
64
- entityConfig: globalConfig,
65
+ global: globalConfig,
65
66
  overrideAccess: true,
66
67
  req,
67
68
  showHiddenFields
@@ -70,10 +71,11 @@ async function update(args) {
70
71
  // beforeValidate - Fields
71
72
  // /////////////////////////////////////
72
73
  data = await (0, _beforeValidate.beforeValidate)({
74
+ collection: null,
73
75
  context: req.context,
74
76
  data,
75
77
  doc: originalDoc,
76
- entityConfig: globalConfig,
78
+ global: globalConfig,
77
79
  operation: 'update',
78
80
  overrideAccess,
79
81
  req
@@ -84,7 +86,9 @@ async function update(args) {
84
86
  await globalConfig.hooks.beforeValidate.reduce(async (priorHook, hook)=>{
85
87
  await priorHook;
86
88
  data = await hook({
89
+ context: req.context,
87
90
  data,
91
+ global: globalConfig,
88
92
  originalDoc,
89
93
  req
90
94
  }) || data;
@@ -95,7 +99,9 @@ async function update(args) {
95
99
  await globalConfig.hooks.beforeChange.reduce(async (priorHook, hook)=>{
96
100
  await priorHook;
97
101
  data = await hook({
102
+ context: req.context,
98
103
  data,
104
+ global: globalConfig,
99
105
  originalDoc,
100
106
  req
101
107
  }) || data;
@@ -104,11 +110,12 @@ async function update(args) {
104
110
  // beforeChange - Fields
105
111
  // /////////////////////////////////////
106
112
  let result = await (0, _beforeChange.beforeChange)({
113
+ collection: null,
107
114
  context: req.context,
108
115
  data,
109
116
  doc: originalDoc,
110
117
  docWithLocales: globalJSON,
111
- entityConfig: globalConfig,
118
+ global: globalConfig,
112
119
  operation: 'update',
113
120
  req,
114
121
  skipValidation: shouldSaveDraft
@@ -152,10 +159,11 @@ async function update(args) {
152
159
  // afterRead - Fields
153
160
  // /////////////////////////////////////
154
161
  result = await (0, _afterRead.afterRead)({
162
+ collection: null,
155
163
  context: req.context,
156
164
  depth,
157
165
  doc: result,
158
- entityConfig: globalConfig,
166
+ global: globalConfig,
159
167
  overrideAccess,
160
168
  req,
161
169
  showHiddenFields
@@ -166,7 +174,9 @@ async function update(args) {
166
174
  await globalConfig.hooks.afterRead.reduce(async (priorHook, hook)=>{
167
175
  await priorHook;
168
176
  result = await hook({
177
+ context: req.context,
169
178
  doc: result,
179
+ global: globalConfig,
170
180
  req
171
181
  }) || result;
172
182
  }, Promise.resolve());
@@ -174,10 +184,11 @@ async function update(args) {
174
184
  // afterChange - Fields
175
185
  // /////////////////////////////////////
176
186
  result = await (0, _afterChange.afterChange)({
187
+ collection: null,
177
188
  context: req.context,
178
189
  data,
179
190
  doc: result,
180
- entityConfig: globalConfig,
191
+ global: globalConfig,
181
192
  operation: 'update',
182
193
  previousDoc: originalDoc,
183
194
  req
@@ -188,7 +199,9 @@ async function update(args) {
188
199
  await globalConfig.hooks.afterChange.reduce(async (priorHook, hook)=>{
189
200
  await priorHook;
190
201
  result = await hook({
202
+ context: req.context,
191
203
  doc: result,
204
+ global: globalConfig,
192
205
  previousDoc: originalDoc,
193
206
  req
194
207
  }) || result;
@@ -205,4 +218,4 @@ async function update(args) {
205
218
  }
206
219
  const _default = update;
207
220
 
208
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9nbG9iYWxzL29wZXJhdGlvbnMvdXBkYXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRGVlcFBhcnRpYWwgfSBmcm9tICd0cy1lc3NlbnRpYWxzJ1xuXG5pbXBvcnQgdHlwZSB7IEdlbmVyYXRlZFR5cGVzIH0gZnJvbSAnLi4vLi4vJ1xuaW1wb3J0IHR5cGUgeyBQYXlsb2FkUmVxdWVzdCB9IGZyb20gJy4uLy4uL2V4cHJlc3MvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFdoZXJlIH0gZnJvbSAnLi4vLi4vdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZEdsb2JhbENvbmZpZyB9IGZyb20gJy4uL2NvbmZpZy90eXBlcydcblxuaW1wb3J0IGV4ZWN1dGVBY2Nlc3MgZnJvbSAnLi4vLi4vYXV0aC9leGVjdXRlQWNjZXNzJ1xuaW1wb3J0IHsgYWZ0ZXJDaGFuZ2UgfSBmcm9tICcuLi8uLi9maWVsZHMvaG9va3MvYWZ0ZXJDaGFuZ2UnXG5pbXBvcnQgeyBhZnRlclJlYWQgfSBmcm9tICcuLi8uLi9maWVsZHMvaG9va3MvYWZ0ZXJSZWFkJ1xuaW1wb3J0IHsgYmVmb3JlQ2hhbmdlIH0gZnJvbSAnLi4vLi4vZmllbGRzL2hvb2tzL2JlZm9yZUNoYW5nZSdcbmltcG9ydCB7IGJlZm9yZVZhbGlkYXRlIH0gZnJvbSAnLi4vLi4vZmllbGRzL2hvb2tzL2JlZm9yZVZhbGlkYXRlJ1xuaW1wb3J0IHsgaW5pdFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2luaXRUcmFuc2FjdGlvbidcbmltcG9ydCB7IGtpbGxUcmFuc2FjdGlvbiB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9raWxsVHJhbnNhY3Rpb24nXG5pbXBvcnQgeyBnZXRMYXRlc3RHbG9iYWxWZXJzaW9uIH0gZnJvbSAnLi4vLi4vdmVyc2lvbnMvZ2V0TGF0ZXN0R2xvYmFsVmVyc2lvbidcbmltcG9ydCB7IHNhdmVWZXJzaW9uIH0gZnJvbSAnLi4vLi4vdmVyc2lvbnMvc2F2ZVZlcnNpb24nXG5cbnR5cGUgQXJnczxUIGV4dGVuZHMgeyBbZmllbGQ6IG51bWJlciB8IHN0cmluZyB8IHN5bWJvbF06IHVua25vd24gfT4gPSB7XG4gIGF1dG9zYXZlPzogYm9vbGVhblxuICBkYXRhOiBEZWVwUGFydGlhbDxPbWl0PFQsICdpZCc+PlxuICBkZXB0aD86IG51bWJlclxuICBkcmFmdD86IGJvb2xlYW5cbiAgZ2xvYmFsQ29uZmlnOiBTYW5pdGl6ZWRHbG9iYWxDb25maWdcbiAgb3ZlcnJpZGVBY2Nlc3M/OiBib29sZWFuXG4gIHJlcTogUGF5bG9hZFJlcXVlc3RcbiAgc2hvd0hpZGRlbkZpZWxkcz86IGJvb2xlYW5cbiAgc2x1Zzogc3RyaW5nXG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwZGF0ZTxUU2x1ZyBleHRlbmRzIGtleW9mIEdlbmVyYXRlZFR5cGVzWydnbG9iYWxzJ10+KFxuICBhcmdzOiBBcmdzPEdlbmVyYXRlZFR5cGVzWydnbG9iYWxzJ11bVFNsdWddPixcbik6IFByb21pc2U8R2VuZXJhdGVkVHlwZXNbJ2dsb2JhbHMnXVtUU2x1Z10+IHtcbiAgY29uc3Qge1xuICAgIGF1dG9zYXZlLFxuICAgIGRlcHRoLFxuICAgIGRyYWZ0OiBkcmFmdEFyZyxcbiAgICBnbG9iYWxDb25maWcsXG4gICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgcmVxOiB7IGxvY2FsZSwgcGF5bG9hZCB9LFxuICAgIHJlcSxcbiAgICBzaG93SGlkZGVuRmllbGRzLFxuICAgIHNsdWcsXG4gIH0gPSBhcmdzXG5cbiAgdHJ5IHtcbiAgICBjb25zdCBzaG91bGRDb21taXQgPSBhd2FpdCBpbml0VHJhbnNhY3Rpb24ocmVxKVxuXG4gICAgbGV0IHsgZGF0YSB9ID0gYXJnc1xuXG4gICAgY29uc3Qgc2hvdWxkU2F2ZURyYWZ0ID0gQm9vbGVhbihkcmFmdEFyZyAmJiBnbG9iYWxDb25maWcudmVyc2lvbnM/LmRyYWZ0cylcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyAxLiBSZXRyaWV2ZSBhbmQgZXhlY3V0ZSBhY2Nlc3NcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBjb25zdCBhY2Nlc3NSZXN1bHRzID0gIW92ZXJyaWRlQWNjZXNzXG4gICAgICA/IGF3YWl0IGV4ZWN1dGVBY2Nlc3MoXG4gICAgICAgICAge1xuICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGdsb2JhbENvbmZpZy5hY2Nlc3MudXBkYXRlLFxuICAgICAgICApXG4gICAgICA6IHRydWVcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBSZXRyaWV2ZSBkb2N1bWVudFxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGNvbnN0IHF1ZXJ5OiBXaGVyZSA9IG92ZXJyaWRlQWNjZXNzID8gdW5kZWZpbmVkIDogKGFjY2Vzc1Jlc3VsdHMgYXMgV2hlcmUpXG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gMi4gUmV0cmlldmUgZG9jdW1lbnRcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgY29uc3QgeyBnbG9iYWwsIGdsb2JhbEV4aXN0cyB9ID0gYXdhaXQgZ2V0TGF0ZXN0R2xvYmFsVmVyc2lvbih7XG4gICAgICBjb25maWc6IGdsb2JhbENvbmZpZyxcbiAgICAgIGxvY2FsZSxcbiAgICAgIHBheWxvYWQsXG4gICAgICByZXEsXG4gICAgICBzbHVnLFxuICAgICAgd2hlcmU6IHF1ZXJ5LFxuICAgIH0pXG5cbiAgICBsZXQgZ2xvYmFsSlNPTjogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fVxuXG4gICAgaWYgKGdsb2JhbCkge1xuICAgICAgZ2xvYmFsSlNPTiA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZ2xvYmFsKSlcblxuICAgICAgaWYgKGdsb2JhbEpTT04uX2lkKSB7XG4gICAgICAgIGRlbGV0ZSBnbG9iYWxKU09OLl9pZFxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IG9yaWdpbmFsRG9jID0gYXdhaXQgYWZ0ZXJSZWFkKHtcbiAgICAgIGNvbnRleHQ6IHJlcS5jb250ZXh0LFxuICAgICAgZGVwdGg6IDAsXG4gICAgICBkb2M6IGdsb2JhbEpTT04sXG4gICAgICBlbnRpdHlDb25maWc6IGdsb2JhbENvbmZpZyxcbiAgICAgIG92ZXJyaWRlQWNjZXNzOiB0cnVlLFxuICAgICAgcmVxLFxuICAgICAgc2hvd0hpZGRlbkZpZWxkcyxcbiAgICB9KVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIGJlZm9yZVZhbGlkYXRlIC0gRmllbGRzXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgZGF0YSA9IGF3YWl0IGJlZm9yZVZhbGlkYXRlKHtcbiAgICAgIGNvbnRleHQ6IHJlcS5jb250ZXh0LFxuICAgICAgZGF0YSxcbiAgICAgIGRvYzogb3JpZ2luYWxEb2MsXG4gICAgICBlbnRpdHlDb25maWc6IGdsb2JhbENvbmZpZyxcbiAgICAgIG9wZXJhdGlvbjogJ3VwZGF0ZScsXG4gICAgICBvdmVycmlkZUFjY2VzcyxcbiAgICAgIHJlcSxcbiAgICB9KVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIGJlZm9yZVZhbGlkYXRlIC0gR2xvYmFsXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgYXdhaXQgZ2xvYmFsQ29uZmlnLmhvb2tzLmJlZm9yZVZhbGlkYXRlLnJlZHVjZShhc3luYyAocHJpb3JIb29rLCBob29rKSA9PiB7XG4gICAgICBhd2FpdCBwcmlvckhvb2tcblxuICAgICAgZGF0YSA9XG4gICAgICAgIChhd2FpdCBob29rKHtcbiAgICAgICAgICBkYXRhLFxuICAgICAgICAgIG9yaWdpbmFsRG9jLFxuICAgICAgICAgIHJlcSxcbiAgICAgICAgfSkpIHx8IGRhdGFcbiAgICB9LCBQcm9taXNlLnJlc29sdmUoKSlcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBiZWZvcmVDaGFuZ2UgLSBHbG9iYWxcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBhd2FpdCBnbG9iYWxDb25maWcuaG9va3MuYmVmb3JlQ2hhbmdlLnJlZHVjZShhc3luYyAocHJpb3JIb29rLCBob29rKSA9PiB7XG4gICAgICBhd2FpdCBwcmlvckhvb2tcblxuICAgICAgZGF0YSA9XG4gICAgICAgIChhd2FpdCBob29rKHtcbiAgICAgICAgICBkYXRhLFxuICAgICAgICAgIG9yaWdpbmFsRG9jLFxuICAgICAgICAgIHJlcSxcbiAgICAgICAgfSkpIHx8IGRhdGFcbiAgICB9LCBQcm9taXNlLnJlc29sdmUoKSlcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBiZWZvcmVDaGFuZ2UgLSBGaWVsZHNcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBsZXQgcmVzdWx0ID0gYXdhaXQgYmVmb3JlQ2hhbmdlKHtcbiAgICAgIGNvbnRleHQ6IHJlcS5jb250ZXh0LFxuICAgICAgZGF0YSxcbiAgICAgIGRvYzogb3JpZ2luYWxEb2MsXG4gICAgICBkb2NXaXRoTG9jYWxlczogZ2xvYmFsSlNPTixcbiAgICAgIGVudGl0eUNvbmZpZzogZ2xvYmFsQ29uZmlnLFxuICAgICAgb3BlcmF0aW9uOiAndXBkYXRlJyxcbiAgICAgIHJlcSxcbiAgICAgIHNraXBWYWxpZGF0aW9uOiBzaG91bGRTYXZlRHJhZnQsXG4gICAgfSlcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBVcGRhdGVcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBpZiAoIXNob3VsZFNhdmVEcmFmdCkge1xuICAgICAgaWYgKGdsb2JhbEV4aXN0cykge1xuICAgICAgICByZXN1bHQgPSBhd2FpdCBwYXlsb2FkLmRiLnVwZGF0ZUdsb2JhbCh7XG4gICAgICAgICAgZGF0YTogcmVzdWx0LFxuICAgICAgICAgIHJlcSxcbiAgICAgICAgICBzbHVnLFxuICAgICAgICB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0ID0gYXdhaXQgcGF5bG9hZC5kYi5jcmVhdGVHbG9iYWwoe1xuICAgICAgICAgIGRhdGE6IHJlc3VsdCxcbiAgICAgICAgICByZXEsXG4gICAgICAgICAgc2x1ZyxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gQ3JlYXRlIHZlcnNpb25cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBpZiAoZ2xvYmFsQ29uZmlnLnZlcnNpb25zKSB7XG4gICAgICByZXN1bHQgPSBhd2FpdCBzYXZlVmVyc2lvbih7XG4gICAgICAgIGF1dG9zYXZlLFxuICAgICAgICBkb2NXaXRoTG9jYWxlczoge1xuICAgICAgICAgIC4uLnJlc3VsdCxcbiAgICAgICAgICBjcmVhdGVkQXQ6IHJlc3VsdC5jcmVhdGVkQXQsXG4gICAgICAgICAgdXBkYXRlZEF0OiByZXN1bHQudXBkYXRlZEF0LFxuICAgICAgICB9LFxuICAgICAgICBkcmFmdDogc2hvdWxkU2F2ZURyYWZ0LFxuICAgICAgICBnbG9iYWw6IGdsb2JhbENvbmZpZyxcbiAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgcmVxLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gYWZ0ZXJSZWFkIC0gRmllbGRzXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgcmVzdWx0ID0gYXdhaXQgYWZ0ZXJSZWFkKHtcbiAgICAgIGNvbnRleHQ6IHJlcS5jb250ZXh0LFxuICAgICAgZGVwdGgsXG4gICAgICBkb2M6IHJlc3VsdCxcbiAgICAgIGVudGl0eUNvbmZpZzogZ2xvYmFsQ29uZmlnLFxuICAgICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgICByZXEsXG4gICAgICBzaG93SGlkZGVuRmllbGRzLFxuICAgIH0pXG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gYWZ0ZXJSZWFkIC0gR2xvYmFsXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgYXdhaXQgZ2xvYmFsQ29uZmlnLmhvb2tzLmFmdGVyUmVhZC5yZWR1Y2UoYXN5bmMgKHByaW9ySG9vaywgaG9vaykgPT4ge1xuICAgICAgYXdhaXQgcHJpb3JIb29rXG5cbiAgICAgIHJlc3VsdCA9XG4gICAgICAgIChhd2FpdCBob29rKHtcbiAgICAgICAgICBkb2M6IHJlc3VsdCxcbiAgICAgICAgICByZXEsXG4gICAgICAgIH0pKSB8fCByZXN1bHRcbiAgICB9LCBQcm9taXNlLnJlc29sdmUoKSlcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBhZnRlckNoYW5nZSAtIEZpZWxkc1xuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIHJlc3VsdCA9IGF3YWl0IGFmdGVyQ2hhbmdlKHtcbiAgICAgIGNvbnRleHQ6IHJlcS5jb250ZXh0LFxuICAgICAgZGF0YSxcbiAgICAgIGRvYzogcmVzdWx0LFxuICAgICAgZW50aXR5Q29uZmlnOiBnbG9iYWxDb25maWcsXG4gICAgICBvcGVyYXRpb246ICd1cGRhdGUnLFxuICAgICAgcHJldmlvdXNEb2M6IG9yaWdpbmFsRG9jLFxuICAgICAgcmVxLFxuICAgIH0pXG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gYWZ0ZXJDaGFuZ2UgLSBHbG9iYWxcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBhd2FpdCBnbG9iYWxDb25maWcuaG9va3MuYWZ0ZXJDaGFuZ2UucmVkdWNlKGFzeW5jIChwcmlvckhvb2ssIGhvb2spID0+IHtcbiAgICAgIGF3YWl0IHByaW9ySG9va1xuXG4gICAgICByZXN1bHQgPVxuICAgICAgICAoYXdhaXQgaG9vayh7XG4gICAgICAgICAgZG9jOiByZXN1bHQsXG4gICAgICAgICAgcHJldmlvdXNEb2M6IG9yaWdpbmFsRG9jLFxuICAgICAgICAgIHJlcSxcbiAgICAgICAgfSkpIHx8IHJlc3VsdFxuICAgIH0sIFByb21pc2UucmVzb2x2ZSgpKVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIFJldHVybiByZXN1bHRzXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgaWYgKHNob3VsZENvbW1pdCkgYXdhaXQgcGF5bG9hZC5kYi5jb21taXRUcmFuc2FjdGlvbihyZXEudHJhbnNhY3Rpb25JRClcblxuICAgIHJldHVybiByZXN1bHRcbiAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICBhd2FpdCBraWxsVHJhbnNhY3Rpb24ocmVxKVxuICAgIHRocm93IGVycm9yXG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgdXBkYXRlXG4iXSwibmFtZXMiOlsidXBkYXRlIiwiYXJncyIsImF1dG9zYXZlIiwiZGVwdGgiLCJkcmFmdCIsImRyYWZ0QXJnIiwiZ2xvYmFsQ29uZmlnIiwib3ZlcnJpZGVBY2Nlc3MiLCJyZXEiLCJsb2NhbGUiLCJwYXlsb2FkIiwic2hvd0hpZGRlbkZpZWxkcyIsInNsdWciLCJzaG91bGRDb21taXQiLCJpbml0VHJhbnNhY3Rpb24iLCJkYXRhIiwic2hvdWxkU2F2ZURyYWZ0IiwiQm9vbGVhbiIsInZlcnNpb25zIiwiZHJhZnRzIiwiYWNjZXNzUmVzdWx0cyIsImV4ZWN1dGVBY2Nlc3MiLCJhY2Nlc3MiLCJxdWVyeSIsInVuZGVmaW5lZCIsImdsb2JhbCIsImdsb2JhbEV4aXN0cyIsImdldExhdGVzdEdsb2JhbFZlcnNpb24iLCJjb25maWciLCJ3aGVyZSIsImdsb2JhbEpTT04iLCJKU09OIiwicGFyc2UiLCJzdHJpbmdpZnkiLCJfaWQiLCJvcmlnaW5hbERvYyIsImFmdGVyUmVhZCIsImNvbnRleHQiLCJkb2MiLCJlbnRpdHlDb25maWciLCJiZWZvcmVWYWxpZGF0ZSIsIm9wZXJhdGlvbiIsImhvb2tzIiwicmVkdWNlIiwicHJpb3JIb29rIiwiaG9vayIsIlByb21pc2UiLCJyZXNvbHZlIiwiYmVmb3JlQ2hhbmdlIiwicmVzdWx0IiwiZG9jV2l0aExvY2FsZXMiLCJza2lwVmFsaWRhdGlvbiIsImRiIiwidXBkYXRlR2xvYmFsIiwiY3JlYXRlR2xvYmFsIiwic2F2ZVZlcnNpb24iLCJjcmVhdGVkQXQiLCJ1cGRhdGVkQXQiLCJhZnRlckNoYW5nZSIsInByZXZpb3VzRG9jIiwiY29tbWl0VHJhbnNhY3Rpb24iLCJ0cmFuc2FjdGlvbklEIiwiZXJyb3IiLCJraWxsVHJhbnNhY3Rpb24iXSwibWFwcGluZ3MiOiI7Ozs7K0JBK1FBOzs7ZUFBQTs7O3NFQXhRMEI7NkJBQ0U7MkJBQ0Y7OEJBQ0c7Z0NBQ0U7aUNBQ0M7aUNBQ0E7d0NBQ087NkJBQ1g7Ozs7OztBQWM1QixlQUFlQSxPQUNiQyxJQUE0QztJQUU1QyxNQUFNLEVBQ0pDLFFBQVEsRUFDUkMsS0FBSyxFQUNMQyxPQUFPQyxRQUFRLEVBQ2ZDLFlB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
221
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9nbG9iYWxzL29wZXJhdGlvbnMvdXBkYXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRGVlcFBhcnRpYWwgfSBmcm9tICd0cy1lc3NlbnRpYWxzJ1xuXG5pbXBvcnQgdHlwZSB7IEdlbmVyYXRlZFR5cGVzIH0gZnJvbSAnLi4vLi4vJ1xuaW1wb3J0IHR5cGUgeyBQYXlsb2FkUmVxdWVzdCB9IGZyb20gJy4uLy4uL2V4cHJlc3MvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFdoZXJlIH0gZnJvbSAnLi4vLi4vdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZEdsb2JhbENvbmZpZyB9IGZyb20gJy4uL2NvbmZpZy90eXBlcydcblxuaW1wb3J0IGV4ZWN1dGVBY2Nlc3MgZnJvbSAnLi4vLi4vYXV0aC9leGVjdXRlQWNjZXNzJ1xuaW1wb3J0IHsgYWZ0ZXJDaGFuZ2UgfSBmcm9tICcuLi8uLi9maWVsZHMvaG9va3MvYWZ0ZXJDaGFuZ2UnXG5pbXBvcnQgeyBhZnRlclJlYWQgfSBmcm9tICcuLi8uLi9maWVsZHMvaG9va3MvYWZ0ZXJSZWFkJ1xuaW1wb3J0IHsgYmVmb3JlQ2hhbmdlIH0gZnJvbSAnLi4vLi4vZmllbGRzL2hvb2tzL2JlZm9yZUNoYW5nZSdcbmltcG9ydCB7IGJlZm9yZVZhbGlkYXRlIH0gZnJvbSAnLi4vLi4vZmllbGRzL2hvb2tzL2JlZm9yZVZhbGlkYXRlJ1xuaW1wb3J0IHsgaW5pdFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2luaXRUcmFuc2FjdGlvbidcbmltcG9ydCB7IGtpbGxUcmFuc2FjdGlvbiB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9raWxsVHJhbnNhY3Rpb24nXG5pbXBvcnQgeyBnZXRMYXRlc3RHbG9iYWxWZXJzaW9uIH0gZnJvbSAnLi4vLi4vdmVyc2lvbnMvZ2V0TGF0ZXN0R2xvYmFsVmVyc2lvbidcbmltcG9ydCB7IHNhdmVWZXJzaW9uIH0gZnJvbSAnLi4vLi4vdmVyc2lvbnMvc2F2ZVZlcnNpb24nXG5cbnR5cGUgQXJnczxUIGV4dGVuZHMgeyBbZmllbGQ6IG51bWJlciB8IHN0cmluZyB8IHN5bWJvbF06IHVua25vd24gfT4gPSB7XG4gIGF1dG9zYXZlPzogYm9vbGVhblxuICBkYXRhOiBEZWVwUGFydGlhbDxPbWl0PFQsICdpZCc+PlxuICBkZXB0aD86IG51bWJlclxuICBkcmFmdD86IGJvb2xlYW5cbiAgZ2xvYmFsQ29uZmlnOiBTYW5pdGl6ZWRHbG9iYWxDb25maWdcbiAgb3ZlcnJpZGVBY2Nlc3M/OiBib29sZWFuXG4gIHJlcTogUGF5bG9hZFJlcXVlc3RcbiAgc2hvd0hpZGRlbkZpZWxkcz86IGJvb2xlYW5cbiAgc2x1Zzogc3RyaW5nXG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwZGF0ZTxUU2x1ZyBleHRlbmRzIGtleW9mIEdlbmVyYXRlZFR5cGVzWydnbG9iYWxzJ10+KFxuICBhcmdzOiBBcmdzPEdlbmVyYXRlZFR5cGVzWydnbG9iYWxzJ11bVFNsdWddPixcbik6IFByb21pc2U8R2VuZXJhdGVkVHlwZXNbJ2dsb2JhbHMnXVtUU2x1Z10+IHtcbiAgY29uc3Qge1xuICAgIGF1dG9zYXZlLFxuICAgIGRlcHRoLFxuICAgIGRyYWZ0OiBkcmFmdEFyZyxcbiAgICBnbG9iYWxDb25maWcsXG4gICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgcmVxOiB7IGxvY2FsZSwgcGF5bG9hZCB9LFxuICAgIHJlcSxcbiAgICBzaG93SGlkZGVuRmllbGRzLFxuICAgIHNsdWcsXG4gIH0gPSBhcmdzXG5cbiAgdHJ5IHtcbiAgICBjb25zdCBzaG91bGRDb21taXQgPSBhd2FpdCBpbml0VHJhbnNhY3Rpb24ocmVxKVxuXG4gICAgbGV0IHsgZGF0YSB9ID0gYXJnc1xuXG4gICAgY29uc3Qgc2hvdWxkU2F2ZURyYWZ0ID0gQm9vbGVhbihkcmFmdEFyZyAmJiBnbG9iYWxDb25maWcudmVyc2lvbnM/LmRyYWZ0cylcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyAxLiBSZXRyaWV2ZSBhbmQgZXhlY3V0ZSBhY2Nlc3NcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBjb25zdCBhY2Nlc3NSZXN1bHRzID0gIW92ZXJyaWRlQWNjZXNzXG4gICAgICA/IGF3YWl0IGV4ZWN1dGVBY2Nlc3MoXG4gICAgICAgICAge1xuICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGdsb2JhbENvbmZpZy5hY2Nlc3MudXBkYXRlLFxuICAgICAgICApXG4gICAgICA6IHRydWVcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBSZXRyaWV2ZSBkb2N1bWVudFxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGNvbnN0IHF1ZXJ5OiBXaGVyZSA9IG92ZXJyaWRlQWNjZXNzID8gdW5kZWZpbmVkIDogKGFjY2Vzc1Jlc3VsdHMgYXMgV2hlcmUpXG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gMi4gUmV0cmlldmUgZG9jdW1lbnRcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgY29uc3QgeyBnbG9iYWwsIGdsb2JhbEV4aXN0cyB9ID0gYXdhaXQgZ2V0TGF0ZXN0R2xvYmFsVmVyc2lvbih7XG4gICAgICBjb25maWc6IGdsb2JhbENvbmZpZyxcbiAgICAgIGxvY2FsZSxcbiAgICAgIHBheWxvYWQsXG4gICAgICByZXEsXG4gICAgICBzbHVnLFxuICAgICAgd2hlcmU6IHF1ZXJ5LFxuICAgIH0pXG5cbiAgICBsZXQgZ2xvYmFsSlNPTjogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fVxuXG4gICAgaWYgKGdsb2JhbCkge1xuICAgICAgZ2xvYmFsSlNPTiA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZ2xvYmFsKSlcblxuICAgICAgaWYgKGdsb2JhbEpTT04uX2lkKSB7XG4gICAgICAgIGRlbGV0ZSBnbG9iYWxKU09OLl9pZFxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IG9yaWdpbmFsRG9jID0gYXdhaXQgYWZ0ZXJSZWFkKHtcbiAgICAgIGNvbGxlY3Rpb246IG51bGwsXG4gICAgICBjb250ZXh0OiByZXEuY29udGV4dCxcbiAgICAgIGRlcHRoOiAwLFxuICAgICAgZG9jOiBnbG9iYWxKU09OLFxuICAgICAgZ2xvYmFsOiBnbG9iYWxDb25maWcsXG4gICAgICBvdmVycmlkZUFjY2VzczogdHJ1ZSxcbiAgICAgIHJlcSxcbiAgICAgIHNob3dIaWRkZW5GaWVsZHMsXG4gICAgfSlcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBiZWZvcmVWYWxpZGF0ZSAtIEZpZWxkc1xuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGRhdGEgPSBhd2FpdCBiZWZvcmVWYWxpZGF0ZSh7XG4gICAgICBjb2xsZWN0aW9uOiBudWxsLFxuICAgICAgY29udGV4dDogcmVxLmNvbnRleHQsXG4gICAgICBkYXRhLFxuICAgICAgZG9jOiBvcmlnaW5hbERvYyxcbiAgICAgIGdsb2JhbDogZ2xvYmFsQ29uZmlnLFxuICAgICAgb3BlcmF0aW9uOiAndXBkYXRlJyxcbiAgICAgIG92ZXJyaWRlQWNjZXNzLFxuICAgICAgcmVxLFxuICAgIH0pXG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gYmVmb3JlVmFsaWRhdGUgLSBHbG9iYWxcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBhd2FpdCBnbG9iYWxDb25maWcuaG9va3MuYmVmb3JlVmFsaWRhdGUucmVkdWNlKGFzeW5jIChwcmlvckhvb2ssIGhvb2spID0+IHtcbiAgICAgIGF3YWl0IHByaW9ySG9va1xuXG4gICAgICBkYXRhID1cbiAgICAgICAgKGF3YWl0IGhvb2soe1xuICAgICAgICAgIGNvbnRleHQ6IHJlcS5jb250ZXh0LFxuICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgZ2xvYmFsOiBnbG9iYWxDb25maWcsXG4gICAgICAgICAgb3JpZ2luYWxEb2MsXG4gICAgICAgICAgcmVxLFxuICAgICAgICB9KSkgfHwgZGF0YVxuICAgIH0sIFByb21pc2UucmVzb2x2ZSgpKVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIGJlZm9yZUNoYW5nZSAtIEdsb2JhbFxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGF3YWl0IGdsb2JhbENvbmZpZy5ob29rcy5iZWZvcmVDaGFuZ2UucmVkdWNlKGFzeW5jIChwcmlvckhvb2ssIGhvb2spID0+IHtcbiAgICAgIGF3YWl0IHByaW9ySG9va1xuXG4gICAgICBkYXRhID1cbiAgICAgICAgKGF3YWl0IGhvb2soe1xuICAgICAgICAgIGNvbnRleHQ6IHJlcS5jb250ZXh0LFxuICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgZ2xvYmFsOiBnbG9iYWxDb25maWcsXG4gICAgICAgICAgb3JpZ2luYWxEb2MsXG4gICAgICAgICAgcmVxLFxuICAgICAgICB9KSkgfHwgZGF0YVxuICAgIH0sIFByb21pc2UucmVzb2x2ZSgpKVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIGJlZm9yZUNoYW5nZSAtIEZpZWxkc1xuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGxldCByZXN1bHQgPSBhd2FpdCBiZWZvcmVDaGFuZ2Uoe1xuICAgICAgY29sbGVjdGlvbjogbnVsbCxcbiAgICAgIGNvbnRleHQ6IHJlcS5jb250ZXh0LFxuICAgICAgZGF0YSxcbiAgICAgIGRvYzogb3JpZ2luYWxEb2MsXG4gICAgICBkb2NXaXRoTG9jYWxlczogZ2xvYmFsSlNPTixcbiAgICAgIGdsb2JhbDogZ2xvYmFsQ29uZmlnLFxuICAgICAgb3BlcmF0aW9uOiAndXBkYXRlJyxcbiAgICAgIHJlcSxcbiAgICAgIHNraXBWYWxpZGF0aW9uOiBzaG91bGRTYXZlRHJhZnQsXG4gICAgfSlcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBVcGRhdGVcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBpZiAoIXNob3VsZFNhdmVEcmFmdCkge1xuICAgICAgaWYgKGdsb2JhbEV4aXN0cykge1xuICAgICAgICByZXN1bHQgPSBhd2FpdCBwYXlsb2FkLmRiLnVwZGF0ZUdsb2JhbCh7XG4gICAgICAgICAgZGF0YTogcmVzdWx0LFxuICAgICAgICAgIHJlcSxcbiAgICAgICAgICBzbHVnLFxuICAgICAgICB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0ID0gYXdhaXQgcGF5bG9hZC5kYi5jcmVhdGVHbG9iYWwoe1xuICAgICAgICAgIGRhdGE6IHJlc3VsdCxcbiAgICAgICAgICByZXEsXG4gICAgICAgICAgc2x1ZyxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gQ3JlYXRlIHZlcnNpb25cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBpZiAoZ2xvYmFsQ29uZmlnLnZlcnNpb25zKSB7XG4gICAgICByZXN1bHQgPSBhd2FpdCBzYXZlVmVyc2lvbih7XG4gICAgICAgIGF1dG9zYXZlLFxuICAgICAgICBkb2NXaXRoTG9jYWxlczoge1xuICAgICAgICAgIC4uLnJlc3VsdCxcbiAgICAgICAgICBjcmVhdGVkQXQ6IHJlc3VsdC5jcmVhdGVkQXQsXG4gICAgICAgICAgdXBkYXRlZEF0OiByZXN1bHQudXBkYXRlZEF0LFxuICAgICAgICB9LFxuICAgICAgICBkcmFmdDogc2hvdWxkU2F2ZURyYWZ0LFxuICAgICAgICBnbG9iYWw6IGdsb2JhbENvbmZpZyxcbiAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgcmVxLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gYWZ0ZXJSZWFkIC0gRmllbGRzXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgcmVzdWx0ID0gYXdhaXQgYWZ0ZXJSZWFkKHtcbiAgICAgIGNvbGxlY3Rpb246IG51bGwsXG4gICAgICBjb250ZXh0OiByZXEuY29udGV4dCxcbiAgICAgIGRlcHRoLFxuICAgICAgZG9jOiByZXN1bHQsXG4gICAgICBnbG9iYWw6IGdsb2JhbENvbmZpZyxcbiAgICAgIG92ZXJyaWRlQWNjZXNzLFxuICAgICAgcmVxLFxuICAgICAgc2hvd0hpZGRlbkZpZWxkcyxcbiAgICB9KVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIGFmdGVyUmVhZCAtIEdsb2JhbFxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGF3YWl0IGdsb2JhbENvbmZpZy5ob29rcy5hZnRlclJlYWQucmVkdWNlKGFzeW5jIChwcmlvckhvb2ssIGhvb2spID0+IHtcbiAgICAgIGF3YWl0IHByaW9ySG9va1xuXG4gICAgICByZXN1bHQgPVxuICAgICAgICAoYXdhaXQgaG9vayh7XG4gICAgICAgICAgY29udGV4dDogcmVxLmNvbnRleHQsXG4gICAgICAgICAgZG9jOiByZXN1bHQsXG4gICAgICAgICAgZ2xvYmFsOiBnbG9iYWxDb25maWcsXG4gICAgICAgICAgcmVxLFxuICAgICAgICB9KSkgfHwgcmVzdWx0XG4gICAgfSwgUHJvbWlzZS5yZXNvbHZlKCkpXG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gYWZ0ZXJDaGFuZ2UgLSBGaWVsZHNcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICByZXN1bHQgPSBhd2FpdCBhZnRlckNoYW5nZSh7XG4gICAgICBjb2xsZWN0aW9uOiBudWxsLFxuICAgICAgY29udGV4dDogcmVxLmNvbnRleHQsXG4gICAgICBkYXRhLFxuICAgICAgZG9jOiByZXN1bHQsXG4gICAgICBnbG9iYWw6IGdsb2JhbENvbmZpZyxcbiAgICAgIG9wZXJhdGlvbjogJ3VwZGF0ZScsXG4gICAgICBwcmV2aW91c0RvYzogb3JpZ2luYWxEb2MsXG4gICAgICByZXEsXG4gICAgfSlcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBhZnRlckNoYW5nZSAtIEdsb2JhbFxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGF3YWl0IGdsb2JhbENvbmZpZy5ob29rcy5hZnRlckNoYW5nZS5yZWR1Y2UoYXN5bmMgKHByaW9ySG9vaywgaG9vaykgPT4ge1xuICAgICAgYXdhaXQgcHJpb3JIb29rXG5cbiAgICAgIHJlc3VsdCA9XG4gICAgICAgIChhd2FpdCBob29rKHtcbiAgICAgICAgICBjb250ZXh0OiByZXEuY29udGV4dCxcbiAgICAgICAgICBkb2M6IHJlc3VsdCxcbiAgICAgICAgICBnbG9iYWw6IGdsb2JhbENvbmZpZyxcbiAgICAgICAgICBwcmV2aW91c0RvYzogb3JpZ2luYWxEb2MsXG4gICAgICAgICAgcmVxLFxuICAgICAgICB9KSkgfHwgcmVzdWx0XG4gICAgfSwgUHJvbWlzZS5yZXNvbHZlKCkpXG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gUmV0dXJuIHJlc3VsdHNcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBpZiAoc2hvdWxkQ29tbWl0KSBhd2FpdCBwYXlsb2FkLmRiLmNvbW1pdFRyYW5zYWN0aW9uKHJlcS50cmFuc2FjdGlvbklEKVxuXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgIGF3YWl0IGtpbGxUcmFuc2FjdGlvbihyZXEpXG4gICAgdGhyb3cgZXJyb3JcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCB1cGRhdGVcbiJdLCJuYW1lcyI6WyJ1cGRhdGUiLCJhcmdzIiwiYXV0b3NhdmUiLCJkZXB0aCIsImRyYWZ0IiwiZHJhZnRBcmciLCJnbG9iYWxDb25maWciLCJvdmVycmlkZUFjY2VzcyIsInJlcSIsImxvY2FsZSIsInBheWxvYWQiLCJzaG93SGlkZGVuRmllbGRzIiwic2x1ZyIsInNob3VsZENvbW1pdCIsImluaXRUcmFuc2FjdGlvbiIsImRhdGEiLCJzaG91bGRTYXZlRHJhZnQiLCJCb29sZWFuIiwidmVyc2lvbnMiLCJkcmFmdHMiLCJhY2Nlc3NSZXN1bHRzIiwiZXhlY3V0ZUFjY2VzcyIsImFjY2VzcyIsInF1ZXJ5IiwidW5kZWZpbmVkIiwiZ2xvYmFsIiwiZ2xvYmFsRXhpc3RzIiwiZ2V0TGF0ZXN0R2xvYmFsVmVyc2lvbiIsImNvbmZpZyIsIndoZXJlIiwiZ2xvYmFsSlNPTiIsIkpTT04iLCJwYXJzZSIsInN0cmluZ2lmeSIsIl9pZCIsIm9yaWdpbmFsRG9jIiwiYWZ0ZXJSZWFkIiwiY29sbGVjdGlvbiIsImNvbnRleHQiLCJkb2MiLCJiZWZvcmVWYWxpZGF0ZSIsIm9wZXJhdGlvbiIsImhvb2tzIiwicmVkdWNlIiwicHJpb3JIb29rIiwiaG9vayIsIlByb21pc2UiLCJyZXNvbHZlIiwiYmVmb3JlQ2hhbmdlIiwicmVzdWx0IiwiZG9jV2l0aExvY2FsZXMiLCJza2lwVmFsaWRhdGlvbiIsImRiIiwidXBkYXRlR2xvYmFsIiwiY3JlYXRlR2xvYmFsIiwic2F2ZVZlcnNpb24iLCJjcmVhdGVkQXQiLCJ1cGRhdGVkQXQiLCJhZnRlckNoYW5nZSIsInByZXZpb3VzRG9jIiwiY29tbWl0VHJhbnNhY3Rpb24iLCJ0cmFuc2FjdGlvbklEIiwiZXJyb3IiLCJraWxsVHJhbnNhY3Rpb24iXSwibWFwcGluZ3MiOiI7Ozs7K0JBNFJBOzs7ZUFBQTs7O3NFQXJSMEI7NkJBQ0U7MkJBQ0Y7OEJBQ0c7Z0NBQ0U7aUNBQ0M7aUNBQ0E7d0NBQ087NkJBQ1g7Ozs7OztBQWM1QixlQUFlQSxPQUNiQyxJQUE0QztJQUU1QyxNQUFNLEVBQ0pDLFFBQVEsRUFDUkMsS0FBSyxFQUNMQyxPQUFPQyxRQUFRLEVBQ2ZDLFlBQVksRUFDWkMsY0FBYyxFQUNkQyxLQUFLLEVBQUVDLE1BQU0sRUFBRUMsT0FBTyxFQUFFLEVBQ3hCRixHQUFHLEVBQ0hHLGdCQUFnQixFQUNoQkMsSUFBSSxFQUNMLEdBQUdYO0lBRUosSUFBSTtRQUNGLE1BQU1ZLGVBQWUsTUFBTUMsSUFBQUEsZ0NBQWUsRUFBQ047UUFFM0MsSUFBSSxFQUFFTyxJQUFJLEVBQUUsR0FBR2Q7UUFFZixNQUFNZSxrQkFBa0JDLFFBQVFaLFlBQVlDLGFBQWFZLFFBQVEsRUFBRUM7UUFFbkUsd0NBQXdDO1FBQ3hDLGlDQUFpQztRQUNqQyx3Q0FBd0M7UUFFeEMsTUFBTUMsZ0JBQWdCLENBQUNiLGlCQUNuQixNQUFNYyxJQUFBQSxzQkFBYSxFQUNqQjtZQUNFTjtZQUNBUDtRQUNGLEdBQ0FGLGFBQWFnQixNQUFNLENBQUN0QixNQUFNLElBRTVCO1FBRUosd0NBQXdDO1FBQ3hDLG9CQUFvQjtRQUNwQix3Q0FBd0M7UUFFeEMsTUFBTXVCLFFBQWVoQixpQkFBaUJpQixZQUFhSjtRQUVuRCx3Q0FBd0M7UUFDeEMsdUJBQXVCO1FBQ3ZCLHdDQUF3QztRQUN4QyxNQUFNLEVBQUVLLE1BQU0sRUFBRUMsWUFBWSxFQUFFLEdBQUcsTUFBTUMsSUFB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
@@ -35,7 +35,7 @@ const errorHandler = async (payload, err, debug, afterErrorHook)=>{
35
35
  path: err.path
36
36
  };
37
37
  if (afterErrorHook) {
38
- ({ response } = await afterErrorHook(err, response, null) || {
38
+ ({ response } = await afterErrorHook(err, response, null, null) || {
39
39
  response
40
40
  });
41
41
  }
@@ -43,4 +43,4 @@ const errorHandler = async (payload, err, debug, afterErrorHook)=>{
43
43
  };
44
44
  const _default = errorHandler;
45
45
 
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ncmFwaHFsL2Vycm9ySGFuZGxlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEdyYXBoUUxGb3JtYXR0ZWRFcnJvciB9IGZyb20gJ2dyYXBocWwnXG5cbmltcG9ydCBodHRwU3RhdHVzIGZyb20gJ2h0dHAtc3RhdHVzJ1xuXG5pbXBvcnQgdHlwZSB7IEFmdGVyRXJyb3JIb29rIH0gZnJvbSAnLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBQYXlsb2FkIH0gZnJvbSAnLi4vcGF5bG9hZCdcblxuY29uc3QgZXJyb3JIYW5kbGVyID0gYXN5bmMgKFxuICBwYXlsb2FkOiBQYXlsb2FkLFxuICBlcnI6IGFueSxcbiAgZGVidWc6IGJvb2xlYW4sXG4gIGFmdGVyRXJyb3JIb29rOiBBZnRlckVycm9ySG9vayxcbik6IFByb21pc2U8R3JhcGhRTEZvcm1hdHRlZEVycm9yPiA9PiB7XG4gIGNvbnN0IHN0YXR1cyA9IGVyci5vcmlnaW5hbEVycm9yLnN0YXR1cyB8fCBodHRwU3RhdHVzLklOVEVSTkFMX1NFUlZFUl9FUlJPUlxuICBsZXQgZXJyb3JNZXNzYWdlID0gZXJyLm1lc3NhZ2VcblxuICBwYXlsb2FkLmxvZ2dlci5lcnJvcihlcnIuc3RhY2spXG5cbiAgLy8gSW50ZXJuYWwgc2VydmVyIGVycm9ycyBjYW4gY29udGFpbiBhbnl0aGluZywgaW5jbHVkaW5nIHBvdGVudGlhbGx5IHNlbnNpdGl2ZSBkYXRhLlxuICAvLyBUaGVyZWZvcmUsIGVycm9yIGRldGFpbHMgd2lsbCBiZSBoaWRkZW4gZnJvbSB0aGUgcmVzcG9uc2UgdW5sZXNzIGBjb25maWcuZGVidWdgIGlzIGB0cnVlYFxuICBpZiAoIWRlYnVnICYmIHN0YXR1cyA9PT0gaHR0cFN0YXR1cy5JTlRFUk5BTF9TRVJWRVJfRVJST1IpIHtcbiAgICBlcnJvck1lc3NhZ2UgPSAnU29tZXRoaW5nIHdlbnQgd3JvbmcuJ1xuICB9XG5cbiAgbGV0IHJlc3BvbnNlOiBHcmFwaFFMRm9ybWF0dGVkRXJyb3IgPSB7XG4gICAgZXh0ZW5zaW9uczoge1xuICAgICAgbmFtZTogZXJyPy5vcmlnaW5hbEVycm9yPy5uYW1lIHx8IHVuZGVmaW5lZCxcbiAgICAgIGRhdGE6IChlcnIgJiYgZXJyLm9yaWdpbmFsRXJyb3IgJiYgZXJyLm9yaWdpbmFsRXJyb3IuZGF0YSkgfHwgdW5kZWZpbmVkLFxuICAgICAgc3RhY2s6IGRlYnVnID8gZXJyLnN0YWNrIDogdW5kZWZpbmVkLFxuICAgICAgc3RhdHVzQ29kZTogc3RhdHVzLFxuICAgIH0sXG4gICAgbG9jYXRpb25zOiBlcnIubG9jYXRpb25zLFxuICAgIG1lc3NhZ2U6IGVycm9yTWVzc2FnZSxcbiAgICBwYXRoOiBlcnIucGF0aCxcbiAgfVxuXG4gIGlmIChhZnRlckVycm9ySG9vaykge1xuICAgIDsoeyByZXNwb25zZSB9ID0gKGF3YWl0IGFmdGVyRXJyb3JIb29rKGVyciwgcmVzcG9uc2UsIG51bGwpKSB8fCB7IHJlc3BvbnNlIH0pXG4gIH1cblxuICByZXR1cm4gcmVzcG9uc2Vcbn1cblxuZXhwb3J0IGRlZmF1bHQgZXJyb3JIYW5kbGVyXG4iXSwibmFtZXMiOlsiZXJyb3JIYW5kbGVyIiwicGF5bG9hZCIsImVyciIsImRlYnVnIiwiYWZ0ZXJFcnJvckhvb2siLCJzdGF0dXMiLCJvcmlnaW5hbEVycm9yIiwiaHR0cFN0YXR1cyIsIklOVEVSTkFMX1NFUlZFUl9FUlJPUiIsImVycm9yTWVzc2FnZSIsIm1lc3NhZ2UiLCJsb2dnZXIiLCJlcnJvciIsInN0YWNrIiwicmVzcG9uc2UiLCJleHRlbnNpb25zIiwibmFtZSIsInVuZGVmaW5lZCIsImRhdGEiLCJzdGF0dXNDb2RlIiwibG9jYXRpb25zIiwicGF0aCJdLCJtYXBwaW5ncyI6Ijs7OzsrQkEyQ0E7OztlQUFBOzs7bUVBekN1Qjs7Ozs7O0FBS3ZCLE1BQU1BLGVBQWUsT0FDbkJDLFNBQ0FDLEtBQ0FDLE9BQ0FDO0lBRUEsTUFBTUMsU0FBU0gsSUFBSUksYUFBYSxDQUFDRCxNQUFNLElBQUlFLG1CQUFVLENBQUNDLHFCQUFxQjtJQUMzRSxJQUFJQyxlQUFlUCxJQUFJUSxPQUFPO0lBRTlCVCxRQUFRVSxNQUFNLENBQUNDLEtBQUssQ0FBQ1YsSUFBSVcsS0FBSztJQUU5QixxRkFBcUY7SUFDckYsNEZBQTRGO0lBQzVGLElBQUksQ0FBQ1YsU0FBU0UsV0FBV0UsbUJBQVUsQ0FBQ0MscUJBQXFCLEVBQUU7UUFDekRDLGVBQWU7SUFDakI7SUFFQSxJQUFJSyxXQUFrQztRQUNwQ0MsWUFBWTtZQUNWQyxNQUFNZCxLQUFLSSxlQUFlVSxRQUFRQztZQUNsQ0MsTUFBTSxBQUFDaEIsT0FBT0EsSUFBSUksYUFBYSxJQUFJSixJQUFJSSxhQUFhLENBQUNZLElBQUksSUFBS0Q7WUFDOURKLE9BQU9WLFFBQVFELElBQUlXLEtBQUssR0FBR0k7WUFDM0JFLFlBQVlkO1FBQ2Q7UUFDQWUsV0FBV2xCLElBQUlrQixTQUFTO1FBQ3hCVixTQUFTRDtRQUNUWSxNQUFNbkIsSUFBSW1CLElBQUk7SUFDaEI7SUFFQSxJQUFJakIsZ0JBQWdCO1FBQ2hCLENBQUEsRUFBRVUsUUFBUSxFQUFFLEdBQUcsQUFBQyxNQUFNVixlQUFlRixLQUFLWSxVQUFVLFNBQVU7WUFBRUE7UUFBUyxDQUFBO0lBQzdFO0lBRUEsT0FBT0E7QUFDVDtNQUVBLFdBQWVkIn0=
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ncmFwaHFsL2Vycm9ySGFuZGxlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEdyYXBoUUxGb3JtYXR0ZWRFcnJvciB9IGZyb20gJ2dyYXBocWwnXG5cbmltcG9ydCBodHRwU3RhdHVzIGZyb20gJ2h0dHAtc3RhdHVzJ1xuXG5pbXBvcnQgdHlwZSB7IEFmdGVyRXJyb3JIb29rIH0gZnJvbSAnLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBQYXlsb2FkIH0gZnJvbSAnLi4vcGF5bG9hZCdcblxuY29uc3QgZXJyb3JIYW5kbGVyID0gYXN5bmMgKFxuICBwYXlsb2FkOiBQYXlsb2FkLFxuICBlcnI6IGFueSxcbiAgZGVidWc6IGJvb2xlYW4sXG4gIGFmdGVyRXJyb3JIb29rOiBBZnRlckVycm9ySG9vayxcbik6IFByb21pc2U8R3JhcGhRTEZvcm1hdHRlZEVycm9yPiA9PiB7XG4gIGNvbnN0IHN0YXR1cyA9IGVyci5vcmlnaW5hbEVycm9yLnN0YXR1cyB8fCBodHRwU3RhdHVzLklOVEVSTkFMX1NFUlZFUl9FUlJPUlxuICBsZXQgZXJyb3JNZXNzYWdlID0gZXJyLm1lc3NhZ2VcblxuICBwYXlsb2FkLmxvZ2dlci5lcnJvcihlcnIuc3RhY2spXG5cbiAgLy8gSW50ZXJuYWwgc2VydmVyIGVycm9ycyBjYW4gY29udGFpbiBhbnl0aGluZywgaW5jbHVkaW5nIHBvdGVudGlhbGx5IHNlbnNpdGl2ZSBkYXRhLlxuICAvLyBUaGVyZWZvcmUsIGVycm9yIGRldGFpbHMgd2lsbCBiZSBoaWRkZW4gZnJvbSB0aGUgcmVzcG9uc2UgdW5sZXNzIGBjb25maWcuZGVidWdgIGlzIGB0cnVlYFxuICBpZiAoIWRlYnVnICYmIHN0YXR1cyA9PT0gaHR0cFN0YXR1cy5JTlRFUk5BTF9TRVJWRVJfRVJST1IpIHtcbiAgICBlcnJvck1lc3NhZ2UgPSAnU29tZXRoaW5nIHdlbnQgd3JvbmcuJ1xuICB9XG5cbiAgbGV0IHJlc3BvbnNlOiBHcmFwaFFMRm9ybWF0dGVkRXJyb3IgPSB7XG4gICAgZXh0ZW5zaW9uczoge1xuICAgICAgbmFtZTogZXJyPy5vcmlnaW5hbEVycm9yPy5uYW1lIHx8IHVuZGVmaW5lZCxcbiAgICAgIGRhdGE6IChlcnIgJiYgZXJyLm9yaWdpbmFsRXJyb3IgJiYgZXJyLm9yaWdpbmFsRXJyb3IuZGF0YSkgfHwgdW5kZWZpbmVkLFxuICAgICAgc3RhY2s6IGRlYnVnID8gZXJyLnN0YWNrIDogdW5kZWZpbmVkLFxuICAgICAgc3RhdHVzQ29kZTogc3RhdHVzLFxuICAgIH0sXG4gICAgbG9jYXRpb25zOiBlcnIubG9jYXRpb25zLFxuICAgIG1lc3NhZ2U6IGVycm9yTWVzc2FnZSxcbiAgICBwYXRoOiBlcnIucGF0aCxcbiAgfVxuXG4gIGlmIChhZnRlckVycm9ySG9vaykge1xuICAgIDsoeyByZXNwb25zZSB9ID0gKGF3YWl0IGFmdGVyRXJyb3JIb29rKGVyciwgcmVzcG9uc2UsIG51bGwsIG51bGwpKSB8fCB7IHJlc3BvbnNlIH0pXG4gIH1cblxuICByZXR1cm4gcmVzcG9uc2Vcbn1cblxuZXhwb3J0IGRlZmF1bHQgZXJyb3JIYW5kbGVyXG4iXSwibmFtZXMiOlsiZXJyb3JIYW5kbGVyIiwicGF5bG9hZCIsImVyciIsImRlYnVnIiwiYWZ0ZXJFcnJvckhvb2siLCJzdGF0dXMiLCJvcmlnaW5hbEVycm9yIiwiaHR0cFN0YXR1cyIsIklOVEVSTkFMX1NFUlZFUl9FUlJPUiIsImVycm9yTWVzc2FnZSIsIm1lc3NhZ2UiLCJsb2dnZXIiLCJlcnJvciIsInN0YWNrIiwicmVzcG9uc2UiLCJleHRlbnNpb25zIiwibmFtZSIsInVuZGVmaW5lZCIsImRhdGEiLCJzdGF0dXNDb2RlIiwibG9jYXRpb25zIiwicGF0aCJdLCJtYXBwaW5ncyI6Ijs7OzsrQkEyQ0E7OztlQUFBOzs7bUVBekN1Qjs7Ozs7O0FBS3ZCLE1BQU1BLGVBQWUsT0FDbkJDLFNBQ0FDLEtBQ0FDLE9BQ0FDO0lBRUEsTUFBTUMsU0FBU0gsSUFBSUksYUFBYSxDQUFDRCxNQUFNLElBQUlFLG1CQUFVLENBQUNDLHFCQUFxQjtJQUMzRSxJQUFJQyxlQUFlUCxJQUFJUSxPQUFPO0lBRTlCVCxRQUFRVSxNQUFNLENBQUNDLEtBQUssQ0FBQ1YsSUFBSVcsS0FBSztJQUU5QixxRkFBcUY7SUFDckYsNEZBQTRGO0lBQzVGLElBQUksQ0FBQ1YsU0FBU0UsV0FBV0UsbUJBQVUsQ0FBQ0MscUJBQXFCLEVBQUU7UUFDekRDLGVBQWU7SUFDakI7SUFFQSxJQUFJSyxXQUFrQztRQUNwQ0MsWUFBWTtZQUNWQyxNQUFNZCxLQUFLSSxlQUFlVSxRQUFRQztZQUNsQ0MsTUFBTSxBQUFDaEIsT0FBT0EsSUFBSUksYUFBYSxJQUFJSixJQUFJSSxhQUFhLENBQUNZLElBQUksSUFBS0Q7WUFDOURKLE9BQU9WLFFBQVFELElBQUlXLEtBQUssR0FBR0k7WUFDM0JFLFlBQVlkO1FBQ2Q7UUFDQWUsV0FBV2xCLElBQUlrQixTQUFTO1FBQ3hCVixTQUFTRDtRQUNUWSxNQUFNbkIsSUFBSW1CLElBQUk7SUFDaEI7SUFFQSxJQUFJakIsZ0JBQWdCO1FBQ2hCLENBQUEsRUFBRVUsUUFBUSxFQUFFLEdBQUcsQUFBQyxNQUFNVixlQUFlRixLQUFLWSxVQUFVLE1BQU0sU0FBVTtZQUFFQTtRQUFTLENBQUE7SUFDbkY7SUFFQSxPQUFPQTtBQUNUO01BRUEsV0FBZWQifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"buildObjectType.d.ts","sourceRoot":"","sources":["../../../src/graphql/schema/buildObjectType.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAe,MAAM,SAAS,CAAA;AAE9D,OAAO,EAOL,iBAAiB,EAGlB,MAAM,SAAS,CAAA;AAMhB,OAAO,KAAK,EAQV,KAAK,EAcN,MAAM,2BAA2B,CAAA;AAClC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAuB5C,MAAM,MAAM,gBAAgB,GAAG;IAC7B,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;CAC7C,CAAA;AAED,KAAK,IAAI,GAAG;IACV,UAAU,CAAC,EAAE,gBAAgB,CAAA;IAC7B,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,iBAAS,eAAe,CAAC,EACvB,IAAI,EACJ,UAAe,EACf,MAAM,EACN,aAAa,EACb,UAAU,EACV,OAAO,GACR,EAAE,IAAI,GAAG,iBAAiB,CAygB1B;AAED,eAAe,eAAe,CAAA"}
1
+ {"version":3,"file":"buildObjectType.d.ts","sourceRoot":"","sources":["../../../src/graphql/schema/buildObjectType.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAe,MAAM,SAAS,CAAA;AAE9D,OAAO,EAOL,iBAAiB,EAGlB,MAAM,SAAS,CAAA;AAMhB,OAAO,KAAK,EAQV,KAAK,EAcN,MAAM,2BAA2B,CAAA;AAClC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAuB5C,MAAM,MAAM,gBAAgB,GAAG;IAC7B,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;CAC7C,CAAA;AAED,KAAK,IAAI,GAAG;IACV,UAAU,CAAC,EAAE,gBAAgB,CAAA;IAC7B,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,iBAAS,eAAe,CAAC,EACvB,IAAI,EACJ,UAAe,EACf,MAAM,EACN,aAAa,EACb,UAAU,EACV,OAAO,GACR,EAAE,IAAI,GAAG,iBAAiB,CA8gB1B;AAED,eAAe,eAAe,CAAA"}
@@ -315,8 +315,13 @@ function buildObjectType({ name, baseFields = {}, fields, forceNullable, parentN
315
315
  let depth = payload.config.defaultDepth;
316
316
  if (typeof args.depth !== 'undefined') depth = args.depth;
317
317
  const editor = field?.editor;
318
- if (editor?.afterReadPromise) {
319
- await editor?.afterReadPromise({
318
+ // RichText fields have their own depth argument in GraphQL.
319
+ // This is why the populationPromise (which populates richtext fields like uploads and relationships)
320
+ // is run here again, with the provided depth.
321
+ // In the graphql find.ts resolver, the depth is then hard-coded to 0.
322
+ // Effectively, this means that the populationPromise for GraphQL is only run here, and not in the find.ts resolver / normal population promise.
323
+ if (editor?.populationPromise) {
324
+ await editor?.populationPromise({
320
325
  depth,
321
326
  field,
322
327
  req: context.req,
@@ -469,4 +474,4 @@ function buildObjectType({ name, baseFields = {}, fields, forceNullable, parentN
469
474
  }
470
475
  const _default = buildObjectType;
471
476
 
472
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ncmFwaHFsL3NjaGVtYS9idWlsZE9iamVjdFR5cGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVzZS1iZWZvcmUtZGVmaW5lICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1hd2FpdC1pbi1sb29wICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1yZXN0cmljdGVkLXN5bnRheCAqL1xuaW1wb3J0IHR5cGUgeyBHcmFwaFFMRmllbGRDb25maWcsIEdyYXBoUUxUeXBlIH0gZnJvbSAnZ3JhcGhxbCdcblxuaW1wb3J0IHtcbiAgR3JhcGhRTEJvb2xlYW4sXG4gIEdyYXBoUUxFbnVtVHlwZSxcbiAgR3JhcGhRTEZsb2F0LFxuICBHcmFwaFFMSW50LFxuICBHcmFwaFFMTGlzdCxcbiAgR3JhcGhRTE5vbk51bGwsXG4gIEdyYXBoUUxPYmplY3RUeXBlLFxuICBHcmFwaFFMU3RyaW5nLFxuICBHcmFwaFFMVW5pb25UeXBlLFxufSBmcm9tICdncmFwaHFsJ1xuaW1wb3J0IHsgRGF0ZVRpbWVSZXNvbHZlciwgRW1haWxBZGRyZXNzUmVzb2x2ZXIgfSBmcm9tICdncmFwaHFsLXNjYWxhcnMnXG4vKiBlc2xpbnQtZGlzYWJsZSBuby11c2UtYmVmb3JlLWRlZmluZSAqL1xuaW1wb3J0IHsgR3JhcGhRTEpTT04gfSBmcm9tICdncmFwaHFsLXR5cGUtanNvbidcblxuaW1wb3J0IHR5cGUgeyBSaWNoVGV4dEFkYXB0ZXIgfSBmcm9tICcuLi8uLi9hZG1pbi9jb21wb25lbnRzL2Zvcm1zL2ZpZWxkLXR5cGVzL1JpY2hUZXh0L3R5cGVzJ1xuaW1wb3J0IHR5cGUge1xuICBBcnJheUZpZWxkLFxuICBCbG9ja0ZpZWxkLFxuICBDaGVja2JveEZpZWxkLFxuICBDb2RlRmllbGQsXG4gIENvbGxhcHNpYmxlRmllbGQsXG4gIERhdGVGaWVsZCxcbiAgRW1haWxGaWVsZCxcbiAgRmllbGQsXG4gIEdyb3VwRmllbGQsXG4gIEpTT05GaWVsZCxcbiAgTnVtYmVyRmllbGQsXG4gIFBvaW50RmllbGQsXG4gIFJhZGlvRmllbGQsXG4gIFJlbGF0aW9uc2hpcEZpZWxkLFxuICBSaWNoVGV4dEZpZWxkLFxuICBSb3dGaWVsZCxcbiAgU2VsZWN0RmllbGQsXG4gIFRhYnNGaWVsZCxcbiAgVGV4dEZpZWxkLFxuICBUZXh0YXJlYUZpZWxkLFxuICBVcGxvYWRGaWVsZCxcbn0gZnJvbSAnLi4vLi4vZmllbGRzL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgUGF5bG9hZCB9IGZyb20gJy4uLy4uL3BheWxvYWQnXG5cbmltcG9ydCB7IHRhYkhhc05hbWUgfSBmcm9tICcuLi8uLi9maWVsZHMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHsgdG9Xb3JkcyB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9mb3JtYXRMYWJlbHMnXG5pbXBvcnQgY29tYmluZVBhcmVudE5hbWUgZnJvbSAnLi4vdXRpbGl0aWVzL2NvbWJpbmVQYXJlbnROYW1lJ1xuaW1wb3J0IGZvcm1hdE5hbWUgZnJvbSAnLi4vdXRpbGl0aWVzL2Zvcm1hdE5hbWUnXG5pbXBvcnQgZm9ybWF0T3B0aW9ucyBmcm9tICcuLi91dGlsaXRpZXMvZm9ybWF0T3B0aW9ucydcbmltcG9ydCBidWlsZFdoZXJlSW5wdXRUeXBlIGZyb20gJy4vYnVpbGRXaGVyZUlucHV0VHlwZSdcbmltcG9ydCBpc0ZpZWxkTnVsbGFibGUgZnJvbSAnLi9pc0ZpZWxkTnVsbGFibGUnXG5pbXBvcnQgd2l0aE51bGxhYmxlVHlwZSBmcm9tICcuL3dpdGhOdWxsYWJsZVR5cGUnXG5cbnR5cGUgTG9jYWxlSW5wdXRUeXBlID0ge1xuICBmYWxsYmFja0xvY2FsZToge1xuICAgIHR5cGU6IEdyYXBoUUxUeXBlXG4gIH1cbiAgbG9jYWxlOiB7XG4gICAgdHlwZTogR3JhcGhRTFR5cGVcbiAgfVxuICB3aGVyZToge1xuICAgIHR5cGU6IEdyYXBoUUxUeXBlXG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgT2JqZWN0VHlwZUNvbmZpZyA9IHtcbiAgW3BhdGg6IHN0cmluZ106IEdyYXBoUUxGaWVsZENvbmZpZzxhbnksIGFueT5cbn1cblxudHlwZSBBcmdzID0ge1xuICBiYXNlRmllbGRzPzogT2JqZWN0VHlwZUNvbmZpZ1xuICBmaWVsZHM6IEZpZWxkW11cbiAgZm9yY2VOdWxsYWJsZT86IGJvb2xlYW5cbiAgbmFtZTogc3RyaW5nXG4gIHBhcmVudE5hbWU6IHN0cmluZ1xuICBwYXlsb2FkOiBQYXlsb2FkXG59XG5cbmZ1bmN0aW9uIGJ1aWxkT2JqZWN0VHlwZSh7XG4gIG5hbWUsXG4gIGJhc2VGaWVsZHMgPSB7fSxcbiAgZmllbGRzLFxuICBmb3JjZU51bGxhYmxlLFxuICBwYXJlbnROYW1lLFxuICBwYXlsb2FkLFxufTogQXJncyk6IEdyYXBoUUxPYmplY3RUeXBlIHtcbiAgY29uc3QgZmllbGRUb1NjaGVtYU1hcCA9IHtcbiAgICBhcnJheTogKG9iamVjdFR5cGVDb25maWc6IE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBBcnJheUZpZWxkKSA9PiB7XG4gICAgICBjb25zdCBpbnRlcmZhY2VOYW1lID1cbiAgICAgICAgZmllbGQ/LmludGVyZmFjZU5hbWUgfHwgY29tYmluZVBhcmVudE5hbWUocGFyZW50TmFtZSwgdG9Xb3JkcyhmaWVsZC5uYW1lLCB0cnVlKSlcblxuICAgICAgaWYgKCFwYXlsb2FkLnR5cGVzLmFycmF5VHlwZXNbaW50ZXJmYWNlTmFtZV0pIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgIHBheWxvYWQudHlwZXMuYXJyYXlUeXBlc1tpbnRlcmZhY2VOYW1lXSA9IGJ1aWxkT2JqZWN0VHlwZSh7XG4gICAgICAgICAgbmFtZTogaW50ZXJmYWNlTmFtZSxcbiAgICAgICAgICBmaWVsZHM6IGZpZWxkLmZpZWxkcyxcbiAgICAgICAgICBmb3JjZU51bGxhYmxlOiBpc0ZpZWxkTnVsbGFibGUoZmllbGQsIGZvcmNlTnVsbGFibGUpLFxuICAgICAgICAgIHBhcmVudE5hbWU6IGludGVyZmFjZU5hbWUsXG4gICAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgY29uc3QgYXJyYXlUeXBlID0gbmV3IEdyYXBoUUxMaXN0KG5ldyBHcmFwaFFMTm9uTnVsbChwYXlsb2FkLnR5cGVzLmFycmF5VHlwZXNbaW50ZXJmYWNlTmFtZV0pKVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5vYmplY3RUeXBlQ29uZmlnLFxuICAgICAgICBbZmllbGQubmFtZV06IHsgdHlwZTogd2l0aE51bGxhYmxlVHlwZShmaWVsZCwgYXJyYXlUeXBlKSB9LFxuICAgICAgfVxuICAgIH0sXG4gICAgYmxvY2tzOiAob2JqZWN0VHlwZUNvbmZpZzogT2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IEJsb2NrRmllbGQpID0+IHtcbiAgICAgIGNvbnN0IGJsb2NrVHlwZXMgPSBmaWVsZC5ibG9ja3MubWFwKChibG9jaykgPT4ge1xuICAgICAgICBpZiAoIXBheWxvYWQudHlwZXMuYmxvY2tUeXBlc1tibG9jay5zbHVnXSkge1xuICAgICAgICAgIGNvbnN0IGludGVyZmFjZU5hbWUgPVxuICAgICAgICAgICAgYmxvY2s/LmludGVyZmFjZU5hbWUgfHwgYmxvY2s/LmdyYXBoUUw/LnNpbmd1bGFyTmFtZSB8fCB0b1dvcmRzKGJsb2NrLnNsdWcsIHRydWUpXG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgICAgcGF5bG9hZC50eXBlcy5ibG9ja1R5cGVzW2Jsb2NrLnNsdWddID0gYnVpbGRPYmplY3RUeXBlKHtcbiAgICAgICAgICAgIG5hbWU6IGludGVyZmFjZU5hbWUsXG4gICAgICAgICAgICBmaWVsZHM6IFtcbiAgICAgICAgICAgICAgLi4uYmxvY2suZmllbGRzLFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ2Jsb2NrVHlwZScsXG4gICAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGZvcmNlTnVsbGFibGUsXG4gICAgICAgICAgICBwYXJlbnROYW1lOiBpbnRlcmZhY2VOYW1lLFxuICAgICAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHBheWxvYWQudHlwZXMuYmxvY2tUeXBlc1tibG9jay5zbHVnXVxuICAgICAgfSlcblxuICAgICAgY29uc3QgZnVsbE5hbWUgPSBjb21iaW5lUGFyZW50TmFtZShwYXJlbnROYW1lLCB0b1dvcmRzKGZpZWxkLm5hbWUsIHRydWUpKVxuXG4gICAgICBjb25zdCB0eXBlID0gbmV3IEdyYXBoUUxMaXN0KFxuICAgICAgICBuZXcgR3JhcGhRTE5vbk51bGwoXG4gICAgICAgICAgbmV3IEdyYXBoUUxVbmlvblR5cGUoe1xuICAgICAgICAgICAgbmFtZTogZnVsbE5hbWUsXG4gICAgICAgICAgICByZXNvbHZlVHlwZTogKGRhdGEpID0+IHBheWxvYWQudHlwZXMuYmxvY2tUeXBlc1tkYXRhLmJsb2NrVHlwZV0ubmFtZSxcbiAgICAgICAgICAgIHR5cGVzOiBibG9ja1R5cGVzLFxuICAgICAgICAgIH0pLFxuICAgICAgICApLFxuICAgICAgKVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5vYmplY3RUeXBlQ29uZmlnLFxuICAgICAgICBbZmllbGQubmFtZV06IHsgdHlwZTogd2l0aE51bGxhYmxlVHlwZShmaWVsZCwgdHlwZSkgfSxcbiAgICAgIH1cbiAgICB9LFxuICAgIGNoZWNrYm94OiAob2JqZWN0VHlwZUNvbmZpZzogT2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IENoZWNrYm94RmllbGQpID0+ICh7XG4gICAgICAuLi5vYmplY3RUeXBlQ29uZmlnLFxuICAgICAgW2ZpZWxkLm5hbWVdOiB7IHR5cGU6IHdpdGhOdWxsYWJsZVR5cGUoZmllbGQsIEdyYXBoUUxCb29sZWFuLCBmb3JjZU51bGxhYmxlKSB9LFxuICAgIH0pLFxuICAgIGNvZGU6IChvYmplY3RUeXBlQ29uZmlnOiBPYmplY3RUeXBlQ29uZmlnLCBmaWVsZDogQ29kZUZpZWxkKSA9PiAoe1xuICAgICAgLi4ub2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgIFtmaWVsZC5uYW1lXTogeyB0eXBlOiB3aXRoTnVsbGFibGVUeXBlKGZpZWxkLCBHcmFwaFFMU3RyaW5nLCBmb3JjZU51bGxhYmxlKSB9LFxuICAgIH0pLFxuICAgIGNvbGxhcHNpYmxlOiAob2JqZWN0VHlwZUNvbmZpZzogT2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IENvbGxhcHNpYmxlRmllbGQpID0+XG4gICAgICBmaWVsZC5maWVsZHMucmVkdWNlKChvYmplY3RUeXBlQ29uZmlnV2l0aENvbGxhcHNpYmxlRmllbGRzLCBzdWJGaWVsZCkgPT4ge1xuICAgICAgICBjb25zdCBhZGRTdWJGaWVsZCA9IGZpZWxkVG9TY2hlbWFNYXBbc3ViRmllbGQudHlwZV1cbiAgICAgICAgaWYgKGFkZFN1YkZpZWxkKSByZXR1cm4gYWRkU3ViRmllbGQob2JqZWN0VHlwZUNvbmZpZ1dpdGhDb2xsYXBzaWJsZUZpZWxkcywgc3ViRmllbGQpXG4gICAgICAgIHJldHVybiBvYmplY3RUeXBlQ29uZmlnV2l0aENvbGxhcHNpYmxlRmllbGRzXG4gICAgICB9LCBvYmplY3RUeXBlQ29uZmlnKSxcbiAgICBkYXRlOiAob2JqZWN0VHlwZUNvbmZpZzogT2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IERhdGVGaWVsZCkgPT4gKHtcbiAgICAgIC4uLm9iamVjdFR5cGVDb25maWcsXG4gICAgICBbZmllbGQubmFtZV06IHsgdHlwZTogd2l0aE51bGxhYmxlVHlwZShmaWVsZCwgRGF0ZVRpbWVSZXNvbHZlciwgZm9yY2VOdWxsYWJsZSkgfSxcbiAgICB9KSxcbiAgICBlbWFpbDogKG9iamVjdFR5cGVDb25maWc6IE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBFbWFpbEZpZWxkKSA9PiAoe1xuICAgICAgLi4ub2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgIFtmaWVsZC5uYW1lXTogeyB0eXBlOiB3aXRoTnVsbGFibGVUeXBlKGZpZWxkLCBFbWFpbEFkZHJlc3NSZXNvbHZlciwgZm9yY2VOdWxsYWJsZSkgfSxcbiAgICB9KSxcbiAgICBncm91cDogKG9iamVjdFR5cGVDb25maWc6IE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBHcm91cEZpZWxkKSA9PiB7XG4gICAgICBjb25zdCBpbnRlcmZhY2VOYW1lID1cbiAgICAgICAgZmllbGQ/LmludGVyZmFjZU5hbWUgfHwgY29tYmluZVBhcmVudE5hbWUocGFyZW50TmFtZSwgdG9Xb3JkcyhmaWVsZC5uYW1lLCB0cnVlKSlcblxuICAgICAgaWYgKCFwYXlsb2FkLnR5cGVzLmdyb3VwVHlwZXNbaW50ZXJmYWNlTmFtZV0pIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgIHBheWxvYWQudHlwZXMuZ3JvdXBUeXBlc1tpbnRlcmZhY2VOYW1lXSA9IGJ1aWxkT2JqZWN0VHlwZSh7XG4gICAgICAgICAgbmFtZTogaW50ZXJmYWNlTmFtZSxcbiAgICAgICAgICBmaWVsZHM6IGZpZWxkLmZpZWxkcyxcbiAgICAgICAgICBmb3JjZU51bGxhYmxlOiBpc0ZpZWxkTnVsbGFibGUoZmllbGQsIGZvcmNlTnVsbGFibGUpLFxuICAgICAgICAgIHBhcmVudE5hbWU6IGludGVyZmFjZU5hbWUsXG4gICAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ub2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgICAgW2ZpZWxkLm5hbWVdOiB7IHR5cGU6IHBheWxvYWQudHlwZXMuZ3JvdXBUeXBlc1tpbnRlcmZhY2VOYW1lXSB9LFxuICAgICAgfVxuICAgIH0sXG4gICAganNvbjogKG9iamVjdFR5cGVDb25maWc6IE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBKU09ORmllbGQpID0+ICh7XG4gICAgICAuLi5vYmplY3RUeXBlQ29uZmlnLFxuICAgICAgW2ZpZWxkLm5hbWVdOiB7IHR5cGU6IHdpdGhOdWxsYWJsZVR5cGUoZmllbGQsIEdyYXBoUUxKU09OLCBmb3JjZU51bGxhYmxlKSB9LFxuICAgIH0pLFxuICAgIG51bWJlcjogKG9iamVjdFR5cGVDb25maWc6IE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBOdW1iZXJGaWVsZCkgPT4ge1xuICAgICAgY29uc3QgdHlwZSA9IGZpZWxkPy5uYW1lID09PSAnaWQnID8gR3JhcGhRTEludCA6IEdyYXBoUUxGbG9hdFxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ub2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgICAgW2ZpZWxkLm5hbWVdOiB7XG4gICAgICAgICAgdHlwZTogd2l0aE51bGxhYmxlVHlwZShcbiAgICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgICAgZmllbGQ/Lmhhc01hbnkgPT09IHRydWUgPyBuZXcgR3JhcGhRTExpc3QodHlwZSkgOiB0eXBlLFxuICAgICAgICAgICAgZm9yY2VOdWxsYWJsZSxcbiAgICAgICAgICApLFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH0sXG4gICAgcG9pbnQ6IChvYmplY3RUeXBlQ29uZmlnOiBPYmplY3RUeXBlQ29uZmlnLCBmaWVsZDogUG9pbnRGaWVsZCkgPT4gKHtcbiAgICAgIC4uLm9iamVjdFR5cGVDb25maWcsXG4gICAgICBbZmllbGQubmFtZV06IHtcbiAgICAgICAgdHlwZTogd2l0aE51bGxhYmxlVHlwZShcbiAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICBuZXcgR3JhcGhRTExpc3QobmV3IEdyYXBoUUxOb25OdWxsKEdyYXBoUUxGbG9hdCkpLFxuICAgICAgICAgIGZvcmNlTnVsbGFibGUsXG4gICAgICAgICksXG4gICAgICB9LFxuICAgIH0pLFxuICAgIHJhZGlvOiAob2JqZWN0VHlwZUNvbmZpZzogT2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IFJhZGlvRmllbGQpID0+ICh7XG4gICAgICAuLi5vYmplY3RUeXBlQ29uZmlnLFxuICAgICAgW2ZpZWxkLm5hbWVdOiB7XG4gICAgICAgIHR5cGU6IHdpdGhOdWxsYWJsZVR5cGUoXG4gICAgICAgICAgZmllbGQsXG4gICAgICAgICAgbmV3IEdyYXBoUUxFbnVtVHlwZSh7XG4gICAgICAgICAgICBuYW1lOiBjb21iaW5lUGFyZW50TmFtZShwYXJlbnROYW1lLCBmaWVsZC5uYW1lKSxcbiAgICAgICAgICAgIHZhbHVlczogZm9ybWF0T3B0aW9ucyhmaWVsZCksXG4gICAgICAgICAgfSksXG4gICAgICAgICAgZm9yY2VOdWxsYWJsZSxcbiAgICAgICAgKSxcbiAgICAgIH0sXG4gICAgfSksXG4gICAgcmVsYXRpb25zaGlwOiAob2JqZWN0VHlwZUNvbmZpZzogT2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IFJlbGF0aW9uc2hpcEZpZWxkKSA9PiB7XG4gICAgICBjb25zdCB7IHJlbGF0aW9uVG8gfSA9IGZpZWxkXG4gICAgICBjb25zdCBpc1JlbGF0ZWRUb01hbnlDb2xsZWN0aW9ucyA9IEFycmF5LmlzQXJyYXkocmVsYXRpb25UbylcbiAgICAgIGNvbnN0IGhhc01hbnlWYWx1ZXMgPSBmaWVsZC5oYXNNYW55XG4gICAgICBjb25zdCByZWxhdGlvbnNoaXBOYW1lID0gY29tYmluZVBhcmVudE5hbWUocGFyZW50TmFtZSwgdG9Xb3JkcyhmaWVsZC5uYW1lLCB0cnVlKSlcblxuICAgICAgbGV0IHR5cGVcbiAgICAgIGxldCByZWxhdGlvblRvVHlwZSA9IG51bGxcblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkocmVsYXRpb25UbykpIHtcbiAgICAgICAgcmVsYXRpb25Ub1R5cGUgPSBuZXcgR3JhcGhRTEVudW1UeXBlKHtcbiAgICAgICAgICBuYW1lOiBgJHtyZWxhdGlvbnNoaXBOYW1lfV9SZWxhdGlvblRvYCxcbiAgICAgICAgICB2YWx1ZXM6IHJlbGF0aW9uVG8ucmVkdWNlKFxuICAgICAgICAgICAgKHJlbGF0aW9ucywgcmVsYXRpb24pID0+ICh7XG4gICAgICAgICAgICAgIC4uLnJlbGF0aW9ucyxcbiAgICAgICAgICAgICAgW2Zvcm1hdE5hbWUocmVsYXRpb24pXToge1xuICAgICAgICAgICAgICAgIHZhbHVlOiByZWxhdGlvbixcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAge30sXG4gICAgICAgICAgKSxcbiAgICAgICAgfSlcblxuICAgICAgICBjb25zdCB0eXBlcyA9IHJlbGF0aW9uVG8ubWFwKChyZWxhdGlvbikgPT4gcGF5bG9hZC5jb2xsZWN0aW9uc1tyZWxhdGlvbl0uZ3JhcGhRTC50eXBlKVxuXG4gICAgICAgIHR5cGUgPSBuZXcgR3JhcGhRTE9iamVjdFR5cGUoe1xuICAgICAgICAgIG5hbWU6IGAke3JlbGF0aW9uc2hpcE5hbWV9X1JlbGF0aW9uc2hpcGAsXG4gICAgICAgICAgZmllbGRzOiB7XG4gICAgICAgICAgICByZWxhdGlvblRvOiB7XG4gICAgICAgICAgICAgIHR5cGU6IHJlbGF0aW9uVG9UeXBlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgIHR5cGU6IG5ldyBHcmFwaFFMVW5pb25UeXBlKHtcbiAgICAgICAgICAgICAgICBuYW1lOiByZWxhdGlvbnNoaXBOYW1lLFxuICAgICAgICAgICAgICAgIGFzeW5jIHJlc29sdmVUeXBlKGRhdGEsIHsgcmVxIH0pIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBwYXlsb2FkLmNvbGxlY3Rpb25zW2RhdGEuY29sbGVjdGlvbl0uZ3JhcGhRTC50eXBlLm5hbWVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHR5cGVzLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIDsoeyB0eXBlIH0gPSBwYXlsb2FkLmNvbGxlY3Rpb25zW3JlbGF0aW9uVG9dLmdyYXBoUUwpXG4gICAgICB9XG5cbiAgICAgIC8vIElmIHRoZSByZWxhdGlvbnNoaXBUeXBlIGlzIHVuZGVmaW5lZCBhdCB0aGlzIHBvaW50LFxuICAgICAgLy8gaXQgY2FuIGJlIGFzc3VtZWQgdGhhdCB0aGlzIGJsb2NrVHlwZSBjYW4gaGF2ZSBhIHJlbGF0aW9uc2hpcFxuICAgICAgLy8gdG8gaXRzZWxmLiBUaGVyZWZvcmUsIHdlIHNldCB0aGUgcmVsYXRpb25zaGlwVHlwZSBlcXVhbCB0byB0aGUgYmxvY2tUeXBlXG4gICAgICAvLyB0aGF0IGlzIGN1cnJlbnRseSBiZWluZyBjcmVhdGVkLlxuXG4gICAgICB0eXBlID0gdHlwZSB8fCBuZXdseUNyZWF0ZWRCbG9ja1R5cGVcblxuICAgICAgY29uc3QgcmVsYXRpb25zaGlwQXJnczoge1xuICAgICAgICBmYWxsYmFja0xvY2FsZT86IHVua25vd25cbiAgICAgICAgbGltaXQ/OiB1bmtub3duXG4gICAgICAgIGxvY2FsZT86IHVua25vd25cbiAgICAgICAgcGFnZT86IHVua25vd25cbiAgICAgICAgd2hlcmU/OiB1bmtub3duXG4gICAgICB9ID0ge31cblxuICAgICAgaWYgKHBheWxvYWQuY29uZmlnLmxvY2FsaXphdGlvbikge1xuICAgICAgICByZWxhdGlvbnNoaXBBcmdzLmxvY2FsZSA9IHtcbiAgICAgICAgICB0eXBlOiBwYXlsb2FkLnR5cGVzLmxvY2FsZUlucHV0VHlwZSxcbiAgICAgICAgfVxuXG4gICAgICAgIHJlbGF0aW9uc2hpcEFyZ3MuZmFsbGJhY2tMb2NhbGUgPSB7XG4gICAgICAgICAgdHlwZTogcGF5bG9hZC50eXBlcy5mYWxsYmFja0xvY2FsZUlucHV0VHlwZSxcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCByZWxhdGlvbnNoaXAgPSB7XG4gICAgICAgIGFyZ3M6IHJlbGF0aW9uc2hpcEFyZ3MsXG4gICAgICAgIGV4dGVuc2lvbnM6IHsgY29tcGxleGl0eTogMTAgfSxcbiAgICAgICAgYXN5bmMgcmVzb2x2ZShwYXJlbnQsIGFyZ3MsIGNvbnRleHQpIHtcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9IHBhcmVudFtmaWVsZC5uYW1lXVxuICAgICAgICAgIGNvbnN0IGxvY2FsZSA9IGFyZ3MubG9jYWxlIHx8IGNvbnRleHQucmVxLmxvY2FsZVxuICAgICAgICAgIGNvbnN0IGZhbGxiYWNrTG9jYWxlID0gYXJncy5mYWxsYmFja0xvY2FsZSB8fCBjb250ZXh0LnJlcS5mYWxsYmFja0xvY2FsZVxuICAgICAgICAgIGxldCByZWxhdGVkQ29sbGVjdGlvblNsdWcgPSBmaWVsZC5yZWxhdGlvblRvXG5cbiAgICAgICAgICBpZiAoaGFzTWFueVZhbHVlcykge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0cyA9IFtdXG4gICAgICAgICAgICBjb25zdCByZXN1bHRQcm9taXNlcyA9IFtdXG5cbiAgICAgICAgICAgIGNvbnN0IGNyZWF0ZVBvcHVsYXRpb25Qcm9taXNlID0gYXN5bmMgKHJlbGF0ZWREb2MsIGkpID0+IHtcbiAgICAgICAgICAgICAgbGV0IGlkID0gcmVsYXRlZERvY1xuICAgICAgICAgICAgICBsZXQgY29sbGVjdGlvblNsdWcgPSBmaWVsZC5yZWxhdGlvblRvXG5cbiAgICAgICAgICAgICAgaWYgKGlzUmVsYXRlZFRvTWFueUNvbGxlY3Rpb25zKSB7XG4gICAgICAgICAgICAgICAgY29sbGVjdGlvblNsdWcgPSByZWxhdGVkRG9jLnJlbGF0aW9uVG9cbiAgICAgICAgICAgICAgICBpZCA9IHJlbGF0ZWREb2MudmFsdWVcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGNvbnRleHQucmVxLnBheWxvYWREYXRhTG9hZGVyLmxvYWQoXG4gICAgICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoW1xuICAgICAgICAgICAgICAgICAgY29udGV4dC5yZXEudHJhbnNhY3Rpb25JRCxcbiAgICAgICAgICAgICAgICAgIGNvbGxlY3Rpb25TbHVnLFxuICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAwLFxuICAgICAgICAgICAgICAgICAgMCxcbiAgICAgICAgICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICAgICAgICAgIGZhbGxiYWNrTG9jYWxlLFxuICAgICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgICAgKVxuXG4gICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNSZWxhdGVkVG9NYW55Q29sbGVjdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgIHJlc3VsdHNbaV0gPSB7XG4gICAgICAgICAgICAgICAgICAgIHJlbGF0aW9uVG86IGNvbGxlY3Rpb25TbHVnLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgICAgICAgIC4uLnJlc3VsdCxcbiAgICAgICAgICAgICAgICAgICAgICBjb2xsZWN0aW9uOiBjb2xsZWN0aW9uU2x1ZyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgcmVzdWx0c1tpXSA9IHJlc3VsdFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgdmFsdWUuZm9yRWFjaCgocmVsYXRlZERvYywgaSkgPT4ge1xuICAgICAgICAgICAgICAgIHJlc3VsdFByb21pc2VzLnB1c2goY3JlYXRlUG9wdWxhdGlvblByb21pc2UocmVsYXRlZERvYywgaSkpXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKHJlc3VsdFByb21pc2VzKVxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdHNcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBsZXQgaWQgPSB2YWx1ZVxuICAgICAgICAgIGlmIChpc1JlbGF0ZWRUb01hbnlDb2xsZWN0aW9ucyAmJiB2YWx1ZSkge1xuICAgICAgICAgICAgaWQgPSB2YWx1ZS52YWx1ZVxuICAgICAgICAgICAgcmVsYXRlZENvbGxlY3Rpb25TbHVnID0gdmFsdWUucmVsYXRpb25Ub1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChpZCkge1xuICAgICAgICAgICAgY29uc3QgcmVsYXRlZERvY3VtZW50ID0gYXdhaXQgY29udGV4dC5yZXEucGF5bG9hZERhdGFMb2FkZXIubG9hZChcbiAgICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoW1xuICAgICAgICAgICAgICAgIGNvbnRleHQucmVxLnRyYW5zYWN0aW9uSUQsXG4gICAgICAgICAgICAgICAgcmVsYXRlZENvbGxlY3Rpb25TbHVnLFxuICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgIDAsXG4gICAgICAgICAgICAgICAgMCxcbiAgICAgICAgICAgICAgICBsb2NhbGUsXG4gICAgICAgICAgICAgICAgZmFsbGJhY2tMb2NhbGUsXG4gICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgKVxuXG4gICAgICAgICAgICBpZiAocmVsYXRlZERvY3VtZW50KSB7XG4gICAgICAgICAgICAgIGlmIChpc1JlbGF0ZWRUb01hbnlDb2xsZWN0aW9ucykge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICByZWxhdGlvblRvOiByZWxhdGVkQ29sbGVjdGlvblNsdWcsXG4gICAgICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgICAgICAuLi5yZWxhdGVkRG9jdW1lbnQsXG4gICAgICAgICAgICAgICAgICAgIGNvbGxlY3Rpb246IHJlbGF0ZWRDb2xsZWN0aW9uU2x1ZyxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgcmV0dXJuIHJlbGF0ZWREb2N1bWVudFxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgIH0sXG4gICAgICAgIHR5cGU6IHdpdGhOdWxsYWJsZVR5cGUoXG4gICAgICAgICAgZmllbGQsXG4gICAgICAgICAgaGFzTWFueVZhbHVlcyA/IG5ldyBHcmFwaFFMTGlzdChuZXcgR3JhcGhRTE5vbk51bGwodHlwZSkpIDogdHlwZSxcbiAgICAgICAgICBmb3JjZU51bGxhYmxlLFxuICAgICAgICApLFxuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5vYmplY3RUeXBlQ29uZmlnLFxuICAgICAgICBbZmllbGQubmFtZV06IHJlbGF0aW9uc2hpcCxcbiAgICAgIH1cbiAgICB9LFxuICAgIHJpY2hUZXh0OiAob2JqZWN0VHlwZUNvbmZpZzogT2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IFJpY2hUZXh0RmllbGQpID0+ICh7XG4gICAgICAuLi5vYmplY3RUeXBlQ29uZmlnLFxuICAgICAgW2ZpZWxkLm5hbWVdOiB7XG4gICAgICAgIGFyZ3M6IHtcbiAgICAgICAgICBkZXB0aDoge1xuICAgICAgICAgICAgdHlwZTogR3JhcGhRTEludCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBhc3luYyByZXNvbHZlKHBhcmVudCwgYXJncywgY29udGV4dCkge1xuICAgICAgICAgIGxldCBkZXB0aCA9IHBheWxvYWQuY29uZmlnLmRlZmF1bHREZXB0aFxuICAgICAgICAgIGlmICh0eXBlb2YgYXJncy5kZXB0aCAhPT0gJ3VuZGVmaW5lZCcpIGRlcHRoID0gYXJncy5kZXB0aFxuICAgICAgICAgIGNvbnN0IGVkaXRvcjogUmljaFRleHRBZGFwdGVyID0gZmllbGQ/LmVkaXRvclxuXG4gICAgICAgICAgaWYgKGVkaXRvcj8uYWZ0ZXJSZWFkUHJvbWlzZSkge1xuICAgICAgICAgICAgYXdhaXQgZWRpdG9yPy5hZnRlclJlYWRQcm9taXNlKHtcbiAgICAgICAgICAgICAgZGVwdGgsXG4gICAgICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgICAgICByZXE6IGNvbnRleHQucmVxLFxuICAgICAgICAgICAgICBzaG93SGlkZGVuRmllbGRzOiBmYWxzZSxcbiAgICAgICAgICAgICAgc2libGluZ0RvYzogcGFyZW50LFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gcGFyZW50W2ZpZWxkLm5hbWVdXG4gICAgICAgIH0sXG4gICAgICAgIHR5cGU6IHdpdGhOdWxsYWJsZVR5cGUoZmllbGQsIEdyYXBoUUxKU09OLCBmb3JjZU51bGxhYmxlKSxcbiAgICAgIH0sXG4gICAgfSksXG4gICAgcm93OiAob2JqZWN0VHlwZUNvbmZpZzogT2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IFJvd0ZpZWxkKSA9PlxuICAgICAgZmllbGQuZmllbGRzLnJlZHVjZSgob2JqZWN0VHlwZUNvbmZpZ1dpdGhSb3dGaWVsZHMsIHN1YkZpZWxkKSA9PiB7XG4gICAgICAgIGNvbnN0IGFkZFN1YkZpZWxkID0gZmllbGRUb1NjaGVtYU1hcFtzdWJGaWVsZC50eXBlXVxuICAgICAgICBpZiAoYWRkU3ViRmllbGQpIHJldHVybiBhZGRTdWJGaWVsZChvYmplY3RUeXBlQ29uZmlnV2l0aFJvd0ZpZWxkcywgc3ViRmllbGQpXG4gICAgICAgIHJldHVybiBvYmplY3RUeXBlQ29uZmlnV2l0aFJvd0ZpZWxkc1xuICAgICAgfSwgb2JqZWN0VHlwZUNvbmZpZyksXG4gICAgc2VsZWN0OiAob2JqZWN0VHlwZUNvbmZpZzogT2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IFNlbGVjdEZpZWxkKSA9PiB7XG4gICAgICBjb25zdCBmdWxsTmFtZSA9IGNvbWJpbmVQYXJlbnROYW1lKHBhcmVudE5hbWUsIGZpZWxkLm5hbWUpXG5cbiAgICAgIGxldCB0eXBlOiBHcmFwaFFMVHlwZSA9IG5ldyBHcmFwaFFMRW51bVR5cGUoe1xuICAgICAgICBuYW1lOiBmdWxsTmFtZSxcbiAgICAgICAgdmFsdWVzOiBmb3JtYXRPcHRpb25zKGZpZWxkKSxcbiAgICAgIH0pXG5cbiAgICAgIHR5cGUgPSBmaWVsZC5oYXNNYW55ID8gbmV3IEdyYXBoUUxMaXN0KG5ldyBHcmFwaFFMTm9uTnVsbCh0eXBlKSkgOiB0eXBlXG4gICAgICB0eXBlID0gd2l0aE51bGxhYmxlVHlwZShmaWVsZCwgdHlwZSwgZm9yY2VOdWxsYWJsZSlcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ub2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgICAgW2ZpZWxkLm5hbWVdOiB7IHR5cGUgfSxcbiAgICAgIH1cbiAgICB9LFxuICAgIHRhYnM6IChvYmplY3RUeXBlQ29uZmlnOiBPYmplY3RUeXBlQ29uZmlnLCBmaWVsZDogVGFic0ZpZWxkKSA9PlxuICAgICAgZmllbGQudGFicy5yZWR1Y2UoKHRhYlNjaGVtYSwgdGFiKSA9PiB7XG4gICAgICAgIGlmICh0YWJIYXNOYW1lKHRhYikpIHtcbiAgICAgICAgICBjb25zdCBpbnRlcmZhY2VOYW1lID1cbiAgICAgICAgICAgIHRhYj8uaW50ZXJmYWNlTmFtZSB8fCBjb21iaW5lUGFyZW50TmFtZShwYXJlbnROYW1lLCB0b1dvcmRzKHRhYi5uYW1lLCB0cnVlKSlcblxuICAgICAgICAgIGlmICghcGF5bG9hZC50eXBlcy50YWJUeXBlc1tpbnRlcmZhY2VOYW1lXSkge1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgICAgICBwYXlsb2FkLnR5cGVzLnRhYlR5cGVzW2ludGVyZmFjZU5hbWVdID0gYnVpbGRPYmplY3RUeXBlKHtcbiAgICAgICAgICAgICAgbmFtZTogaW50ZXJmYWNlTmFtZSxcbiAgICAgICAgICAgICAgZmllbGRzOiB0YWIuZmllbGRzLFxuICAgICAgICAgICAgICBmb3JjZU51bGxhYmxlLFxuICAgICAgICAgICAgICBwYXJlbnROYW1lOiBpbnRlcmZhY2VOYW1lLFxuICAgICAgICAgICAgICBwYXlsb2FkLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4udGFiU2NoZW1hLFxuICAgICAgICAgICAgW3RhYi5uYW1lXTogeyB0eXBlOiBwYXlsb2FkLnR5cGVzLnRhYlR5cGVzW2ludGVyZmFjZU5hbWVdIH0sXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi50YWJTY2hlbWEsXG4gICAgICAgICAgLi4udGFiLmZpZWxkcy5yZWR1Y2UoKHN1YkZpZWxkU2NoZW1hLCBzdWJGaWVsZCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYWRkU3ViRmllbGQgPSBmaWVsZFRvU2NoZW1hTWFwW3N1YkZpZWxkLnR5cGVdXG4gICAgICAgICAgICBpZiAoYWRkU3ViRmllbGQpIHJldHVybiBhZGRTdWJGaWVsZChzdWJGaWVsZFNjaGVtYSwgc3ViRmllbGQpXG4gICAgICAgICAgICByZXR1cm4gc3ViRmllbGRTY2hlbWFcbiAgICAgICAgICB9LCB0YWJTY2hlbWEpLFxuICAgICAgICB9XG4gICAgICB9LCBvYmplY3RUeXBlQ29uZmlnKSxcbiAgICB0ZXh0OiAob2JqZWN0VHlwZUNvbmZpZzogT2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IFRleHRGaWVsZCkgPT4gKHtcbiAgICAgIC4uLm9iamVjdFR5cGVDb25maWcsXG4gICAgICBbZmllbGQubmFtZV06IHsgdHlwZTogd2l0aE51bGxhYmxlVHlwZShmaWVsZCwgR3JhcGhRTFN0cmluZywgZm9yY2VOdWxsYWJsZSkgfSxcbiAgICB9KSxcbiAgICB0ZXh0YXJlYTogKG9iamVjdFR5cGVDb25maWc6IE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBUZXh0YXJlYUZpZWxkKSA9PiAoe1xuICAgICAgLi4ub2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgIFtmaWVsZC5uYW1lXTogeyB0eXBlOiB3aXRoTnVsbGFibGVUeXBlKGZpZWxkLCBHcmFwaFFMU3RyaW5nLCBmb3JjZU51bGxhYmxlKSB9LFxuICAgIH0pLFxuICAgIHVwbG9hZDogKG9iamVjdFR5cGVDb25maWc6IE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBVcGxvYWRGaWVsZCkgPT4ge1xuICAgICAgY29uc3QgeyByZWxhdGlvblRvIH0gPSBmaWVsZFxuXG4gICAgICBjb25zdCB1cGxvYWROYW1lID0gY29tYmluZVBhcmVudE5hbWUocGFyZW50TmFtZSwgdG9Xb3JkcyhmaWVsZC5uYW1lLCB0cnVlKSlcblxuICAgICAgLy8gSWYgdGhlIHJlbGF0aW9uc2hpcFR5cGUgaXMgdW5kZWZpbmVkIGF0IHRoaXMgcG9pbnQsXG4gICAgICAvLyBpdCBjYW4gYmUgYXNzdW1lZCB0aGF0IHRoaXMgYmxvY2tUeXBlIGNhbiBoYXZlIGEgcmVsYXRpb25zaGlwXG4gICAgICAvLyB0byBpdHNlbGYuIFRoZXJlZm9yZSwgd2Ugc2V0IHRoZSByZWxhdGlvbnNoaXBUeXBlIGVxdWFsIHRvIHRoZSBibG9ja1R5cGVcbiAgICAgIC8vIHRoYXQgaXMgY3VycmVudGx5IGJlaW5nIGNyZWF0ZWQuXG5cbiAgICAgIGNvbnN0IHR5cGUgPSB3aXRoTnVsbGFibGVUeXBlKFxuICAgICAgICBmaWVsZCxcbiAgICAgICAgcGF5bG9hZC5jb2xsZWN0aW9uc1tyZWxhdGlvblRvXS5ncmFwaFFMLnR5cGUgfHwgbmV3bHlDcmVhdGVkQmxvY2tUeXBlLFxuICAgICAgICBmb3JjZU51bGxhYmxlLFxuICAgICAgKVxuXG4gICAgICBjb25zdCB1cGxvYWRBcmdzID0ge30gYXMgTG9jYWxlSW5wdXRUeXBlXG5cbiAgICAgIGlmIChwYXlsb2FkLmNvbmZpZy5sb2NhbGl6YXRpb24pIHtcbiAgICAgICAgdXBsb2FkQXJncy5sb2NhbGUgPSB7XG4gICAgICAgICAgdHlwZTogcGF5bG9hZC50eXBlcy5sb2NhbGVJbnB1dFR5cGUsXG4gICAgICAgIH1cblxuICAgICAgICB1cGxvYWRBcmdzLmZhbGxiYWNrTG9jYWxlID0ge1xuICAgICAgICAgIHR5cGU6IHBheWxvYWQudHlwZXMuZmFsbGJhY2tMb2NhbGVJbnB1dFR5cGUsXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVsYXRlZENvbGxlY3Rpb25TbHVnID0gZmllbGQucmVsYXRpb25Ub1xuXG4gICAgICBjb25zdCB1cGxvYWQgPSB7XG4gICAgICAgIGFyZ3M6IHVwbG9hZEFyZ3MsXG4gICAgICAgIGV4dGVuc2lvbnM6IHsgY29tcGxleGl0eTogMjAgfSxcbiAgICAgICAgYXN5bmMgcmVzb2x2ZShwYXJlbnQsIGFyZ3MsIGNvbnRleHQpIHtcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9IHBhcmVudFtmaWVsZC5uYW1lXVxuICAgICAgICAgIGNvbnN0IGxvY2FsZSA9IGFyZ3MubG9jYWxlIHx8IGNvbnRleHQucmVxLmxvY2FsZVxuICAgICAgICAgIGNvbnN0IGZhbGxiYWNrTG9jYWxlID0gYXJncy5mYWxsYmFja0xvY2FsZSB8fCBjb250ZXh0LnJlcS5mYWxsYmFja0xvY2FsZVxuICAgICAgICAgIGNvbnN0IGlkID0gdmFsdWVcblxuICAgICAgICAgIGlmIChpZCkge1xuICAgICAgICAgICAgY29uc3QgcmVsYXRlZERvY3VtZW50ID0gYXdhaXQgY29udGV4dC5yZXEucGF5bG9hZERhdGFMb2FkZXIubG9hZChcbiAgICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoW1xuICAgICAgICAgICAgICAgIGNvbnRleHQucmVxLnRyYW5zYWN0aW9uSUQsXG4gICAgICAgICAgICAgICAgcmVsYXRlZENvbGxlY3Rpb25TbHVnLFxuICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgIDAsXG4gICAgICAgICAgICAgICAgMCxcbiAgICAgICAgICAgICAgICBsb2NhbGUsXG4gICAgICAgICAgICAgICAgZmFsbGJhY2tMb2NhbGUsXG4gICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgKVxuXG4gICAgICAgICAgICByZXR1cm4gcmVsYXRlZERvY3VtZW50IHx8IG51bGxcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICB9LFxuICAgICAgICB0eXBlLFxuICAgICAgfVxuXG4gICAgICBjb25zdCB3aGVyZUZpZWxkcyA9IHBheWxvYWQuY29sbGVjdGlvbnNbcmVsYXRpb25Ub10uY29uZmlnLmZpZWxkc1xuXG4gICAgICB1cGxvYWQuYXJncy53aGVyZSA9IHtcbiAgICAgICAgdHlwZTogYnVpbGRXaGVyZUlucHV0VHlwZSh7XG4gICAgICAgICAgbmFtZTogdXBsb2FkTmFtZSxcbiAgICAgICAgICBmaWVsZHM6IHdoZXJlRmllbGRzLFxuICAgICAgICAgIHBhcmVudE5hbWU6IHVwbG9hZE5hbWUsXG4gICAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgfSksXG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLm9iamVjdFR5cGVDb25maWcsXG4gICAgICAgIFtmaWVsZC5uYW1lXTogdXBsb2FkLFxuICAgICAgfVxuICAgIH0sXG4gIH1cblxuICBjb25zdCBvYmplY3RTY2hlbWEgPSB7XG4gICAgbmFtZSxcbiAgICBmaWVsZHM6ICgpID0+XG4gICAgICBmaWVsZHMucmVkdWNlKChvYmplY3RUeXBlQ29uZmlnLCBmaWVsZCkgPT4ge1xuICAgICAgICBjb25zdCBmaWVsZFNjaGVtYSA9IGZpZWxkVG9TY2hlbWFNYXBbZmllbGQudHlwZV1cblxuICAgICAgICBpZiAodHlwZW9mIGZpZWxkU2NoZW1hICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgcmV0dXJuIG9iamVjdFR5cGVDb25maWdcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4ub2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgICAgICAuLi5maWVsZFNjaGVtYShvYmplY3RUeXBlQ29uZmlnLCBmaWVsZCksXG4gICAgICAgIH1cbiAgICAgIH0sIGJhc2VGaWVsZHMpLFxuICB9XG5cbiAgY29uc3QgbmV3bHlDcmVhdGVkQmxvY2tUeXBlID0gbmV3IEdyYXBoUUxPYmplY3RUeXBlKG9iamVjdFNjaGVtYSlcblxuICByZXR1cm4gbmV3bHlDcmVhdGVkQmxvY2tUeXBlXG59XG5cbmV4cG9ydCBkZWZhdWx0IGJ1aWxkT2JqZWN0VHlwZVxuIl0sIm5hbWVzIjpbImJ1aWxkT2JqZWN0VHlwZSIsIm5hbWUiLCJiYXNlRmllbGRzIiwiZmllbGRzIiwiZm9yY2VOdWxsYWJsZSIsInBhcmVudE5hbWUiLCJwYXlsb2FkIiwiZmllbGRUb1NjaGVtYU1hcCIsImFycmF5Iiwib2JqZWN0VHlwZUNvbmZpZyIsImZpZWxkIiwiaW50ZXJmYWNlTmFtZSIsImNvbWJpbmVQYXJlbnROYW1lIiwidG9Xb3JkcyIsInR5cGVzIiwiYXJyYXlUeXBlcyIsImlzRmllbGROdWxsYWJsZSIsImFycmF5VHlwZSIsIkdyYXBoUUxMaXN0IiwiR3JhcGhRTE5vbk51bGwiLCJ0eXBlIiwid2l0aE51bGxhYmxlVHlwZSIsImJsb2NrcyIsImJsb2NrVHlwZXMiLCJtYXAiLCJibG9jayIsInNsdWciLCJncmFwaFFMIiwic2luZ3VsYXJOYW1lIiwiZnVsbE5hbWUiLCJHcmFwaFFMVW5pb25UeXBlIiwicmVzb2x2ZVR5cGUiLCJkYXRhIiwiYmxvY2tUeXBlIiwiY2hlY2tib3giLCJHcmFwaFFMQm9vbGVhbiIsImNvZGUiLCJHcmFwaFFMU3RyaW5nIiwiY29sbGFwc2libGUiLCJyZWR1Y2UiLCJvYmplY3RUeXBlQ29uZmlnV2l0aENvbGxhcHNpYmxlRmllbGRzIiwic3ViRmllbGQiLCJhZGRTdWJGaWVsZCIsImRhdGUiLCJEYXRlVGltZVJlc29sdmVyIiwiZW1haWwiLCJFbWFpbEFkZHJlc3NSZXNvbHZlciIsImdyb3VwIiwiZ3JvdXBUeXBlcyIsImpzb24iLCJHcmFwaFFMSlNPTiIsIm51bWJlciIsIkdyYXBoUUxJbnQiLCJHcmFwaFFMRmxvYXQiLCJoYXNNYW55IiwicG9pbnQiLCJyYWRpbyIsIkdyYXBoUUxFbnVtVHlwZSIsInZhbHVlcyIsImZvcm1hdE9wdGlvbnMiLCJyZWxhdGlvbnNoaXAiLCJyZWxhdGlvblRvIiwiaXNSZWxhdGVkVG9NYW55Q29sbGVjdGlvbnMiLCJBcnJheSIsImlzQXJyYXkiLCJoYXNNYW55VmFsdWVzIiwicmVsYXRpb25zaGlwTmFtZSIsInJlbGF0aW9uVG9UeXBlIiwicmVsYXRpb25zIiwicmVsYXRpb24iLCJmb3JtYXROYW1lIiwidmFsdWUiLCJjb2xsZWN0aW9ucyIsIkdyYXBoUUxPYmplY3RUeXBlIiwicmVxIiwiY29sbGVjdGlvbiIsIm5ld2x5Q3JlYXRlZEJsb2NrVHlwZSIsInJlbGF0aW9uc2hpcEFyZ3MiLCJjb25maWciLCJsb2NhbGl6YXRpb24iLCJsb2NhbGUiLCJsb2NhbGVJbnB1dFR5cGUiLCJmYWxsYmFja0xvY2FsZSIsImZhbGxiYWNrTG9jYWxlSW5wdXRUeXBlIiwiYXJncyIsImV4dGVuc2lvbnMiLCJjb21wbGV4aXR5IiwicmVzb2x2ZSIsInBhcmVudCIsImNvbnRleHQiLCJyZWxhdGVkQ29sbGVjdGlvblNsdWciLCJyZXN1bHRzIiwicmVzdWx0UHJvbWlzZXMiLCJjcmVhdGVQb3B1bGF0aW9uUHJvbWlzZSIsInJlbGF0ZWREb2MiLCJpIiwiaWQiLCJjb2xsZWN0aW9uU2x1ZyIsInJlc3VsdCIsInBheWxvYWREYXRhTG9hZGVyIiwibG9hZCIsIkpTT04iLCJzdHJpbmdpZnkiLCJ0cmFuc2FjdGlvbklEIiwiZm9yRWFjaCIsInB1c2giLCJQcm9taXNlIiwiYWxsIiwicmVsYXRlZERvY3VtZW50IiwicmljaFRleHQiLCJkZXB0aCIsImRlZmF1bHREZXB0aCIsImVkaXRvciIsImFmdGVyUmVhZFByb21pc2UiLCJzaG93SGlkZGVuRmllbGRzIiwic2libGluZ0RvYyIsInJvdyIsIm9iamVjdFR5cGVDb25maWdXaXRoUm93RmllbGRzIiwic2VsZWN0IiwidGFicyIsInRhYlNjaGVtYSIsInRhYiIsInRhYkhhc05hbWUiLCJ0YWJUeXBlcyIsInN1YkZpZWxkU2NoZW1hIiwidGV4dCIsInRleHRhcmVhIiwidXBsb2FkIiwidXBsb2FkTmFtZSIsInVwbG9hZEFyZ3MiLCJ3aGVyZUZpZWxkcyIsIndoZXJlIiwiYnVpbGRXaGVyZUlucHV0VHlwZSIsIm9iamVjdFNjaGVtYSIsImZpZWxkU2NoZW1hIl0sIm1hcHBpbmdzIjoiQUFBQSwwREFBMEQsR0FDMUQsbUNBQW1DLEdBQ25DLHVDQUF1Qzs7OzsrQkFnbUJ2Qzs7O2VBQUE7Ozt5QkFubEJPO2dDQUNnRDtpQ0FFM0I7dUJBNEJEOzhCQUNIOzBFQUNNO21FQUNQO3NFQUNHOzRFQUNNO3dFQUNKO3lFQUNDOzs7Ozs7QUEyQjdCLFNBQVNBLGdCQUFnQixFQUN2QkMsSUFBSSxFQUNKQyxhQUFhLENBQUMsQ0FBQyxFQUNmQyxNQUFNLEVBQ05DLGFBQWEsRUFDYkMsVUFBVSxFQUNWQyxPQUFPLEVBQ0Y7SUFDTCxNQUFNQyxtQkFBbUI7UUFDdkJDLE9BQU8sQ0FBQ0Msa0JBQW9DQztZQUMxQyxNQUFNQyxnQkFDSkQsT0FBT0MsaUJBQWlCQyxJQUFBQSwwQkFBaUIsRUFBQ1AsWUFBWVEsSUFBQUEscUJBQU8sRUFBQ0gsTUFBTVQsSUFBSSxFQUFFO1lBRTVFLElBQUksQ0FBQ0ssUUFBUVEsS0FBSyxDQUFDQyxVQUFVLENBQUNKLGNBQWMsRUFBRTtnQkFDNUMsNkNBQTZDO2dCQUM3Q0wsUUFBUVEsS0FBSyxDQUFDQyxVQUFVLENBQUNKLGNBQWMsR0FBR1gsZ0JBQWdCO29CQUN4REMsTUFBTVU7b0JBQ05SLFFBQVFPLE1BQU1QLE1BQU07b0JBQ3BCQyxlQUFlWSxJQUFBQSx3QkFBZSxFQUFDTixPQUFPTjtvQkFDdENDLFlBQVlNO29CQUNa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
477
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ncmFwaHFsL3NjaGVtYS9idWlsZE9iamVjdFR5cGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVzZS1iZWZvcmUtZGVmaW5lICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1hd2FpdC1pbi1sb29wICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1yZXN0cmljdGVkLXN5bnRheCAqL1xuaW1wb3J0IHR5cGUgeyBHcmFwaFFMRmllbGRDb25maWcsIEdyYXBoUUxUeXBlIH0gZnJvbSAnZ3JhcGhxbCdcblxuaW1wb3J0IHtcbiAgR3JhcGhRTEJvb2xlYW4sXG4gIEdyYXBoUUxFbnVtVHlwZSxcbiAgR3JhcGhRTEZsb2F0LFxuICBHcmFwaFFMSW50LFxuICBHcmFwaFFMTGlzdCxcbiAgR3JhcGhRTE5vbk51bGwsXG4gIEdyYXBoUUxPYmplY3RUeXBlLFxuICBHcmFwaFFMU3RyaW5nLFxuICBHcmFwaFFMVW5pb25UeXBlLFxufSBmcm9tICdncmFwaHFsJ1xuaW1wb3J0IHsgRGF0ZVRpbWVSZXNvbHZlciwgRW1haWxBZGRyZXNzUmVzb2x2ZXIgfSBmcm9tICdncmFwaHFsLXNjYWxhcnMnXG4vKiBlc2xpbnQtZGlzYWJsZSBuby11c2UtYmVmb3JlLWRlZmluZSAqL1xuaW1wb3J0IHsgR3JhcGhRTEpTT04gfSBmcm9tICdncmFwaHFsLXR5cGUtanNvbidcblxuaW1wb3J0IHR5cGUgeyBSaWNoVGV4dEFkYXB0ZXIgfSBmcm9tICcuLi8uLi9hZG1pbi9jb21wb25lbnRzL2Zvcm1zL2ZpZWxkLXR5cGVzL1JpY2hUZXh0L3R5cGVzJ1xuaW1wb3J0IHR5cGUge1xuICBBcnJheUZpZWxkLFxuICBCbG9ja0ZpZWxkLFxuICBDaGVja2JveEZpZWxkLFxuICBDb2RlRmllbGQsXG4gIENvbGxhcHNpYmxlRmllbGQsXG4gIERhdGVGaWVsZCxcbiAgRW1haWxGaWVsZCxcbiAgRmllbGQsXG4gIEdyb3VwRmllbGQsXG4gIEpTT05GaWVsZCxcbiAgTnVtYmVyRmllbGQsXG4gIFBvaW50RmllbGQsXG4gIFJhZGlvRmllbGQsXG4gIFJlbGF0aW9uc2hpcEZpZWxkLFxuICBSaWNoVGV4dEZpZWxkLFxuICBSb3dGaWVsZCxcbiAgU2VsZWN0RmllbGQsXG4gIFRhYnNGaWVsZCxcbiAgVGV4dEZpZWxkLFxuICBUZXh0YXJlYUZpZWxkLFxuICBVcGxvYWRGaWVsZCxcbn0gZnJvbSAnLi4vLi4vZmllbGRzL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgUGF5bG9hZCB9IGZyb20gJy4uLy4uL3BheWxvYWQnXG5cbmltcG9ydCB7IHRhYkhhc05hbWUgfSBmcm9tICcuLi8uLi9maWVsZHMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHsgdG9Xb3JkcyB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9mb3JtYXRMYWJlbHMnXG5pbXBvcnQgY29tYmluZVBhcmVudE5hbWUgZnJvbSAnLi4vdXRpbGl0aWVzL2NvbWJpbmVQYXJlbnROYW1lJ1xuaW1wb3J0IGZvcm1hdE5hbWUgZnJvbSAnLi4vdXRpbGl0aWVzL2Zvcm1hdE5hbWUnXG5pbXBvcnQgZm9ybWF0T3B0aW9ucyBmcm9tICcuLi91dGlsaXRpZXMvZm9ybWF0T3B0aW9ucydcbmltcG9ydCBidWlsZFdoZXJlSW5wdXRUeXBlIGZyb20gJy4vYnVpbGRXaGVyZUlucHV0VHlwZSdcbmltcG9ydCBpc0ZpZWxkTnVsbGFibGUgZnJvbSAnLi9pc0ZpZWxkTnVsbGFibGUnXG5pbXBvcnQgd2l0aE51bGxhYmxlVHlwZSBmcm9tICcuL3dpdGhOdWxsYWJsZVR5cGUnXG5cbnR5cGUgTG9jYWxlSW5wdXRUeXBlID0ge1xuICBmYWxsYmFja0xvY2FsZToge1xuICAgIHR5cGU6IEdyYXBoUUxUeXBlXG4gIH1cbiAgbG9jYWxlOiB7XG4gICAgdHlwZTogR3JhcGhRTFR5cGVcbiAgfVxuICB3aGVyZToge1xuICAgIHR5cGU6IEdyYXBoUUxUeXBlXG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgT2JqZWN0VHlwZUNvbmZpZyA9IHtcbiAgW3BhdGg6IHN0cmluZ106IEdyYXBoUUxGaWVsZENvbmZpZzxhbnksIGFueT5cbn1cblxudHlwZSBBcmdzID0ge1xuICBiYXNlRmllbGRzPzogT2JqZWN0VHlwZUNvbmZpZ1xuICBmaWVsZHM6IEZpZWxkW11cbiAgZm9yY2VOdWxsYWJsZT86IGJvb2xlYW5cbiAgbmFtZTogc3RyaW5nXG4gIHBhcmVudE5hbWU6IHN0cmluZ1xuICBwYXlsb2FkOiBQYXlsb2FkXG59XG5cbmZ1bmN0aW9uIGJ1aWxkT2JqZWN0VHlwZSh7XG4gIG5hbWUsXG4gIGJhc2VGaWVsZHMgPSB7fSxcbiAgZmllbGRzLFxuICBmb3JjZU51bGxhYmxlLFxuICBwYXJlbnROYW1lLFxuICBwYXlsb2FkLFxufTogQXJncyk6IEdyYXBoUUxPYmplY3RUeXBlIHtcbiAgY29uc3QgZmllbGRUb1NjaGVtYU1hcCA9IHtcbiAgICBhcnJheTogKG9iamVjdFR5cGVDb25maWc6IE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBBcnJheUZpZWxkKSA9PiB7XG4gICAgICBjb25zdCBpbnRlcmZhY2VOYW1lID1cbiAgICAgICAgZmllbGQ/LmludGVyZmFjZU5hbWUgfHwgY29tYmluZVBhcmVudE5hbWUocGFyZW50TmFtZSwgdG9Xb3JkcyhmaWVsZC5uYW1lLCB0cnVlKSlcblxuICAgICAgaWYgKCFwYXlsb2FkLnR5cGVzLmFycmF5VHlwZXNbaW50ZXJmYWNlTmFtZV0pIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgIHBheWxvYWQudHlwZXMuYXJyYXlUeXBlc1tpbnRlcmZhY2VOYW1lXSA9IGJ1aWxkT2JqZWN0VHlwZSh7XG4gICAgICAgICAgbmFtZTogaW50ZXJmYWNlTmFtZSxcbiAgICAgICAgICBmaWVsZHM6IGZpZWxkLmZpZWxkcyxcbiAgICAgICAgICBmb3JjZU51bGxhYmxlOiBpc0ZpZWxkTnVsbGFibGUoZmllbGQsIGZvcmNlTnVsbGFibGUpLFxuICAgICAgICAgIHBhcmVudE5hbWU6IGludGVyZmFjZU5hbWUsXG4gICAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgY29uc3QgYXJyYXlUeXBlID0gbmV3IEdyYXBoUUxMaXN0KG5ldyBHcmFwaFFMTm9uTnVsbChwYXlsb2FkLnR5cGVzLmFycmF5VHlwZXNbaW50ZXJmYWNlTmFtZV0pKVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5vYmplY3RUeXBlQ29uZmlnLFxuICAgICAgICBbZmllbGQubmFtZV06IHsgdHlwZTogd2l0aE51bGxhYmxlVHlwZShmaWVsZCwgYXJyYXlUeXBlKSB9LFxuICAgICAgfVxuICAgIH0sXG4gICAgYmxvY2tzOiAob2JqZWN0VHlwZUNvbmZpZzogT2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IEJsb2NrRmllbGQpID0+IHtcbiAgICAgIGNvbnN0IGJsb2NrVHlwZXMgPSBmaWVsZC5ibG9ja3MubWFwKChibG9jaykgPT4ge1xuICAgICAgICBpZiAoIXBheWxvYWQudHlwZXMuYmxvY2tUeXBlc1tibG9jay5zbHVnXSkge1xuICAgICAgICAgIGNvbnN0IGludGVyZmFjZU5hbWUgPVxuICAgICAgICAgICAgYmxvY2s/LmludGVyZmFjZU5hbWUgfHwgYmxvY2s/LmdyYXBoUUw/LnNpbmd1bGFyTmFtZSB8fCB0b1dvcmRzKGJsb2NrLnNsdWcsIHRydWUpXG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgICAgcGF5bG9hZC50eXBlcy5ibG9ja1R5cGVzW2Jsb2NrLnNsdWddID0gYnVpbGRPYmplY3RUeXBlKHtcbiAgICAgICAgICAgIG5hbWU6IGludGVyZmFjZU5hbWUsXG4gICAgICAgICAgICBmaWVsZHM6IFtcbiAgICAgICAgICAgICAgLi4uYmxvY2suZmllbGRzLFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ2Jsb2NrVHlwZScsXG4gICAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGZvcmNlTnVsbGFibGUsXG4gICAgICAgICAgICBwYXJlbnROYW1lOiBpbnRlcmZhY2VOYW1lLFxuICAgICAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHBheWxvYWQudHlwZXMuYmxvY2tUeXBlc1tibG9jay5zbHVnXVxuICAgICAgfSlcblxuICAgICAgY29uc3QgZnVsbE5hbWUgPSBjb21iaW5lUGFyZW50TmFtZShwYXJlbnROYW1lLCB0b1dvcmRzKGZpZWxkLm5hbWUsIHRydWUpKVxuXG4gICAgICBjb25zdCB0eXBlID0gbmV3IEdyYXBoUUxMaXN0KFxuICAgICAgICBuZXcgR3JhcGhRTE5vbk51bGwoXG4gICAgICAgICAgbmV3IEdyYXBoUUxVbmlvblR5cGUoe1xuICAgICAgICAgICAgbmFtZTogZnVsbE5hbWUsXG4gICAgICAgICAgICByZXNvbHZlVHlwZTogKGRhdGEpID0+IHBheWxvYWQudHlwZXMuYmxvY2tUeXBlc1tkYXRhLmJsb2NrVHlwZV0ubmFtZSxcbiAgICAgICAgICAgIHR5cGVzOiBibG9ja1R5cGVzLFxuICAgICAgICAgIH0pLFxuICAgICAgICApLFxuICAgICAgKVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5vYmplY3RUeXBlQ29uZmlnLFxuICAgICAgICBbZmllbGQubmFtZV06IHsgdHlwZTogd2l0aE51bGxhYmxlVHlwZShmaWVsZCwgdHlwZSkgfSxcbiAgICAgIH1cbiAgICB9LFxuICAgIGNoZWNrYm94OiAob2JqZWN0VHlwZUNvbmZpZzogT2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IENoZWNrYm94RmllbGQpID0+ICh7XG4gICAgICAuLi5vYmplY3RUeXBlQ29uZmlnLFxuICAgICAgW2ZpZWxkLm5hbWVdOiB7IHR5cGU6IHdpdGhOdWxsYWJsZVR5cGUoZmllbGQsIEdyYXBoUUxCb29sZWFuLCBmb3JjZU51bGxhYmxlKSB9LFxuICAgIH0pLFxuICAgIGNvZGU6IChvYmplY3RUeXBlQ29uZmlnOiBPYmplY3RUeXBlQ29uZmlnLCBmaWVsZDogQ29kZUZpZWxkKSA9PiAoe1xuICAgICAgLi4ub2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgIFtmaWVsZC5uYW1lXTogeyB0eXBlOiB3aXRoTnVsbGFibGVUeXBlKGZpZWxkLCBHcmFwaFFMU3RyaW5nLCBmb3JjZU51bGxhYmxlKSB9LFxuICAgIH0pLFxuICAgIGNvbGxhcHNpYmxlOiAob2JqZWN0VHlwZUNvbmZpZzogT2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IENvbGxhcHNpYmxlRmllbGQpID0+XG4gICAgICBmaWVsZC5maWVsZHMucmVkdWNlKChvYmplY3RUeXBlQ29uZmlnV2l0aENvbGxhcHNpYmxlRmllbGRzLCBzdWJGaWVsZCkgPT4ge1xuICAgICAgICBjb25zdCBhZGRTdWJGaWVsZCA9IGZpZWxkVG9TY2hlbWFNYXBbc3ViRmllbGQudHlwZV1cbiAgICAgICAgaWYgKGFkZFN1YkZpZWxkKSByZXR1cm4gYWRkU3ViRmllbGQob2JqZWN0VHlwZUNvbmZpZ1dpdGhDb2xsYXBzaWJsZUZpZWxkcywgc3ViRmllbGQpXG4gICAgICAgIHJldHVybiBvYmplY3RUeXBlQ29uZmlnV2l0aENvbGxhcHNpYmxlRmllbGRzXG4gICAgICB9LCBvYmplY3RUeXBlQ29uZmlnKSxcbiAgICBkYXRlOiAob2JqZWN0VHlwZUNvbmZpZzogT2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IERhdGVGaWVsZCkgPT4gKHtcbiAgICAgIC4uLm9iamVjdFR5cGVDb25maWcsXG4gICAgICBbZmllbGQubmFtZV06IHsgdHlwZTogd2l0aE51bGxhYmxlVHlwZShmaWVsZCwgRGF0ZVRpbWVSZXNvbHZlciwgZm9yY2VOdWxsYWJsZSkgfSxcbiAgICB9KSxcbiAgICBlbWFpbDogKG9iamVjdFR5cGVDb25maWc6IE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBFbWFpbEZpZWxkKSA9PiAoe1xuICAgICAgLi4ub2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgIFtmaWVsZC5uYW1lXTogeyB0eXBlOiB3aXRoTnVsbGFibGVUeXBlKGZpZWxkLCBFbWFpbEFkZHJlc3NSZXNvbHZlciwgZm9yY2VOdWxsYWJsZSkgfSxcbiAgICB9KSxcbiAgICBncm91cDogKG9iamVjdFR5cGVDb25maWc6IE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBHcm91cEZpZWxkKSA9PiB7XG4gICAgICBjb25zdCBpbnRlcmZhY2VOYW1lID1cbiAgICAgICAgZmllbGQ/LmludGVyZmFjZU5hbWUgfHwgY29tYmluZVBhcmVudE5hbWUocGFyZW50TmFtZSwgdG9Xb3JkcyhmaWVsZC5uYW1lLCB0cnVlKSlcblxuICAgICAgaWYgKCFwYXlsb2FkLnR5cGVzLmdyb3VwVHlwZXNbaW50ZXJmYWNlTmFtZV0pIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgIHBheWxvYWQudHlwZXMuZ3JvdXBUeXBlc1tpbnRlcmZhY2VOYW1lXSA9IGJ1aWxkT2JqZWN0VHlwZSh7XG4gICAgICAgICAgbmFtZTogaW50ZXJmYWNlTmFtZSxcbiAgICAgICAgICBmaWVsZHM6IGZpZWxkLmZpZWxkcyxcbiAgICAgICAgICBmb3JjZU51bGxhYmxlOiBpc0ZpZWxkTnVsbGFibGUoZmllbGQsIGZvcmNlTnVsbGFibGUpLFxuICAgICAgICAgIHBhcmVudE5hbWU6IGludGVyZmFjZU5hbWUsXG4gICAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ub2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgICAgW2ZpZWxkLm5hbWVdOiB7IHR5cGU6IHBheWxvYWQudHlwZXMuZ3JvdXBUeXBlc1tpbnRlcmZhY2VOYW1lXSB9LFxuICAgICAgfVxuICAgIH0sXG4gICAganNvbjogKG9iamVjdFR5cGVDb25maWc6IE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBKU09ORmllbGQpID0+ICh7XG4gICAgICAuLi5vYmplY3RUeXBlQ29uZmlnLFxuICAgICAgW2ZpZWxkLm5hbWVdOiB7IHR5cGU6IHdpdGhOdWxsYWJsZVR5cGUoZmllbGQsIEdyYXBoUUxKU09OLCBmb3JjZU51bGxhYmxlKSB9LFxuICAgIH0pLFxuICAgIG51bWJlcjogKG9iamVjdFR5cGVDb25maWc6IE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBOdW1iZXJGaWVsZCkgPT4ge1xuICAgICAgY29uc3QgdHlwZSA9IGZpZWxkPy5uYW1lID09PSAnaWQnID8gR3JhcGhRTEludCA6IEdyYXBoUUxGbG9hdFxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ub2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgICAgW2ZpZWxkLm5hbWVdOiB7XG4gICAgICAgICAgdHlwZTogd2l0aE51bGxhYmxlVHlwZShcbiAgICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgICAgZmllbGQ/Lmhhc01hbnkgPT09IHRydWUgPyBuZXcgR3JhcGhRTExpc3QodHlwZSkgOiB0eXBlLFxuICAgICAgICAgICAgZm9yY2VOdWxsYWJsZSxcbiAgICAgICAgICApLFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH0sXG4gICAgcG9pbnQ6IChvYmplY3RUeXBlQ29uZmlnOiBPYmplY3RUeXBlQ29uZmlnLCBmaWVsZDogUG9pbnRGaWVsZCkgPT4gKHtcbiAgICAgIC4uLm9iamVjdFR5cGVDb25maWcsXG4gICAgICBbZmllbGQubmFtZV06IHtcbiAgICAgICAgdHlwZTogd2l0aE51bGxhYmxlVHlwZShcbiAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICBuZXcgR3JhcGhRTExpc3QobmV3IEdyYXBoUUxOb25OdWxsKEdyYXBoUUxGbG9hdCkpLFxuICAgICAgICAgIGZvcmNlTnVsbGFibGUsXG4gICAgICAgICksXG4gICAgICB9LFxuICAgIH0pLFxuICAgIHJhZGlvOiAob2JqZWN0VHlwZUNvbmZpZzogT2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IFJhZGlvRmllbGQpID0+ICh7XG4gICAgICAuLi5vYmplY3RUeXBlQ29uZmlnLFxuICAgICAgW2ZpZWxkLm5hbWVdOiB7XG4gICAgICAgIHR5cGU6IHdpdGhOdWxsYWJsZVR5cGUoXG4gICAgICAgICAgZmllbGQsXG4gICAgICAgICAgbmV3IEdyYXBoUUxFbnVtVHlwZSh7XG4gICAgICAgICAgICBuYW1lOiBjb21iaW5lUGFyZW50TmFtZShwYXJlbnROYW1lLCBmaWVsZC5uYW1lKSxcbiAgICAgICAgICAgIHZhbHVlczogZm9ybWF0T3B0aW9ucyhmaWVsZCksXG4gICAgICAgICAgfSksXG4gICAgICAgICAgZm9yY2VOdWxsYWJsZSxcbiAgICAgICAgKSxcbiAgICAgIH0sXG4gICAgfSksXG4gICAgcmVsYXRpb25zaGlwOiAob2JqZWN0VHlwZUNvbmZpZzogT2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IFJlbGF0aW9uc2hpcEZpZWxkKSA9PiB7XG4gICAgICBjb25zdCB7IHJlbGF0aW9uVG8gfSA9IGZpZWxkXG4gICAgICBjb25zdCBpc1JlbGF0ZWRUb01hbnlDb2xsZWN0aW9ucyA9IEFycmF5LmlzQXJyYXkocmVsYXRpb25UbylcbiAgICAgIGNvbnN0IGhhc01hbnlWYWx1ZXMgPSBmaWVsZC5oYXNNYW55XG4gICAgICBjb25zdCByZWxhdGlvbnNoaXBOYW1lID0gY29tYmluZVBhcmVudE5hbWUocGFyZW50TmFtZSwgdG9Xb3JkcyhmaWVsZC5uYW1lLCB0cnVlKSlcblxuICAgICAgbGV0IHR5cGVcbiAgICAgIGxldCByZWxhdGlvblRvVHlwZSA9IG51bGxcblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkocmVsYXRpb25UbykpIHtcbiAgICAgICAgcmVsYXRpb25Ub1R5cGUgPSBuZXcgR3JhcGhRTEVudW1UeXBlKHtcbiAgICAgICAgICBuYW1lOiBgJHtyZWxhdGlvbnNoaXBOYW1lfV9SZWxhdGlvblRvYCxcbiAgICAgICAgICB2YWx1ZXM6IHJlbGF0aW9uVG8ucmVkdWNlKFxuICAgICAgICAgICAgKHJlbGF0aW9ucywgcmVsYXRpb24pID0+ICh7XG4gICAgICAgICAgICAgIC4uLnJlbGF0aW9ucyxcbiAgICAgICAgICAgICAgW2Zvcm1hdE5hbWUocmVsYXRpb24pXToge1xuICAgICAgICAgICAgICAgIHZhbHVlOiByZWxhdGlvbixcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAge30sXG4gICAgICAgICAgKSxcbiAgICAgICAgfSlcblxuICAgICAgICBjb25zdCB0eXBlcyA9IHJlbGF0aW9uVG8ubWFwKChyZWxhdGlvbikgPT4gcGF5bG9hZC5jb2xsZWN0aW9uc1tyZWxhdGlvbl0uZ3JhcGhRTC50eXBlKVxuXG4gICAgICAgIHR5cGUgPSBuZXcgR3JhcGhRTE9iamVjdFR5cGUoe1xuICAgICAgICAgIG5hbWU6IGAke3JlbGF0aW9uc2hpcE5hbWV9X1JlbGF0aW9uc2hpcGAsXG4gICAgICAgICAgZmllbGRzOiB7XG4gICAgICAgICAgICByZWxhdGlvblRvOiB7XG4gICAgICAgICAgICAgIHR5cGU6IHJlbGF0aW9uVG9UeXBlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgIHR5cGU6IG5ldyBHcmFwaFFMVW5pb25UeXBlKHtcbiAgICAgICAgICAgICAgICBuYW1lOiByZWxhdGlvbnNoaXBOYW1lLFxuICAgICAgICAgICAgICAgIGFzeW5jIHJlc29sdmVUeXBlKGRhdGEsIHsgcmVxIH0pIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBwYXlsb2FkLmNvbGxlY3Rpb25zW2RhdGEuY29sbGVjdGlvbl0uZ3JhcGhRTC50eXBlLm5hbWVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHR5cGVzLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIDsoeyB0eXBlIH0gPSBwYXlsb2FkLmNvbGxlY3Rpb25zW3JlbGF0aW9uVG9dLmdyYXBoUUwpXG4gICAgICB9XG5cbiAgICAgIC8vIElmIHRoZSByZWxhdGlvbnNoaXBUeXBlIGlzIHVuZGVmaW5lZCBhdCB0aGlzIHBvaW50LFxuICAgICAgLy8gaXQgY2FuIGJlIGFzc3VtZWQgdGhhdCB0aGlzIGJsb2NrVHlwZSBjYW4gaGF2ZSBhIHJlbGF0aW9uc2hpcFxuICAgICAgLy8gdG8gaXRzZWxmLiBUaGVyZWZvcmUsIHdlIHNldCB0aGUgcmVsYXRpb25zaGlwVHlwZSBlcXVhbCB0byB0aGUgYmxvY2tUeXBlXG4gICAgICAvLyB0aGF0IGlzIGN1cnJlbnRseSBiZWluZyBjcmVhdGVkLlxuXG4gICAgICB0eXBlID0gdHlwZSB8fCBuZXdseUNyZWF0ZWRCbG9ja1R5cGVcblxuICAgICAgY29uc3QgcmVsYXRpb25zaGlwQXJnczoge1xuICAgICAgICBmYWxsYmFja0xvY2FsZT86IHVua25vd25cbiAgICAgICAgbGltaXQ/OiB1bmtub3duXG4gICAgICAgIGxvY2FsZT86IHVua25vd25cbiAgICAgICAgcGFnZT86IHVua25vd25cbiAgICAgICAgd2hlcmU/OiB1bmtub3duXG4gICAgICB9ID0ge31cblxuICAgICAgaWYgKHBheWxvYWQuY29uZmlnLmxvY2FsaXphdGlvbikge1xuICAgICAgICByZWxhdGlvbnNoaXBBcmdzLmxvY2FsZSA9IHtcbiAgICAgICAgICB0eXBlOiBwYXlsb2FkLnR5cGVzLmxvY2FsZUlucHV0VHlwZSxcbiAgICAgICAgfVxuXG4gICAgICAgIHJlbGF0aW9uc2hpcEFyZ3MuZmFsbGJhY2tMb2NhbGUgPSB7XG4gICAgICAgICAgdHlwZTogcGF5bG9hZC50eXBlcy5mYWxsYmFja0xvY2FsZUlucHV0VHlwZSxcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCByZWxhdGlvbnNoaXAgPSB7XG4gICAgICAgIGFyZ3M6IHJlbGF0aW9uc2hpcEFyZ3MsXG4gICAgICAgIGV4dGVuc2lvbnM6IHsgY29tcGxleGl0eTogMTAgfSxcbiAgICAgICAgYXN5bmMgcmVzb2x2ZShwYXJlbnQsIGFyZ3MsIGNvbnRleHQpIHtcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9IHBhcmVudFtmaWVsZC5uYW1lXVxuICAgICAgICAgIGNvbnN0IGxvY2FsZSA9IGFyZ3MubG9jYWxlIHx8IGNvbnRleHQucmVxLmxvY2FsZVxuICAgICAgICAgIGNvbnN0IGZhbGxiYWNrTG9jYWxlID0gYXJncy5mYWxsYmFja0xvY2FsZSB8fCBjb250ZXh0LnJlcS5mYWxsYmFja0xvY2FsZVxuICAgICAgICAgIGxldCByZWxhdGVkQ29sbGVjdGlvblNsdWcgPSBmaWVsZC5yZWxhdGlvblRvXG5cbiAgICAgICAgICBpZiAoaGFzTWFueVZhbHVlcykge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0cyA9IFtdXG4gICAgICAgICAgICBjb25zdCByZXN1bHRQcm9taXNlcyA9IFtdXG5cbiAgICAgICAgICAgIGNvbnN0IGNyZWF0ZVBvcHVsYXRpb25Qcm9taXNlID0gYXN5bmMgKHJlbGF0ZWREb2MsIGkpID0+IHtcbiAgICAgICAgICAgICAgbGV0IGlkID0gcmVsYXRlZERvY1xuICAgICAgICAgICAgICBsZXQgY29sbGVjdGlvblNsdWcgPSBmaWVsZC5yZWxhdGlvblRvXG5cbiAgICAgICAgICAgICAgaWYgKGlzUmVsYXRlZFRvTWFueUNvbGxlY3Rpb25zKSB7XG4gICAgICAgICAgICAgICAgY29sbGVjdGlvblNsdWcgPSByZWxhdGVkRG9jLnJlbGF0aW9uVG9cbiAgICAgICAgICAgICAgICBpZCA9IHJlbGF0ZWREb2MudmFsdWVcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGNvbnRleHQucmVxLnBheWxvYWREYXRhTG9hZGVyLmxvYWQoXG4gICAgICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoW1xuICAgICAgICAgICAgICAgICAgY29udGV4dC5yZXEudHJhbnNhY3Rpb25JRCxcbiAgICAgICAgICAgICAgICAgIGNvbGxlY3Rpb25TbHVnLFxuICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAwLFxuICAgICAgICAgICAgICAgICAgMCxcbiAgICAgICAgICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICAgICAgICAgIGZhbGxiYWNrTG9jYWxlLFxuICAgICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgICAgKVxuXG4gICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNSZWxhdGVkVG9NYW55Q29sbGVjdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgIHJlc3VsdHNbaV0gPSB7XG4gICAgICAgICAgICAgICAgICAgIHJlbGF0aW9uVG86IGNvbGxlY3Rpb25TbHVnLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgICAgICAgIC4uLnJlc3VsdCxcbiAgICAgICAgICAgICAgICAgICAgICBjb2xsZWN0aW9uOiBjb2xsZWN0aW9uU2x1ZyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgcmVzdWx0c1tpXSA9IHJlc3VsdFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgdmFsdWUuZm9yRWFjaCgocmVsYXRlZERvYywgaSkgPT4ge1xuICAgICAgICAgICAgICAgIHJlc3VsdFByb21pc2VzLnB1c2goY3JlYXRlUG9wdWxhdGlvblByb21pc2UocmVsYXRlZERvYywgaSkpXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKHJlc3VsdFByb21pc2VzKVxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdHNcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBsZXQgaWQgPSB2YWx1ZVxuICAgICAgICAgIGlmIChpc1JlbGF0ZWRUb01hbnlDb2xsZWN0aW9ucyAmJiB2YWx1ZSkge1xuICAgICAgICAgICAgaWQgPSB2YWx1ZS52YWx1ZVxuICAgICAgICAgICAgcmVsYXRlZENvbGxlY3Rpb25TbHVnID0gdmFsdWUucmVsYXRpb25Ub1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChpZCkge1xuICAgICAgICAgICAgY29uc3QgcmVsYXRlZERvY3VtZW50ID0gYXdhaXQgY29udGV4dC5yZXEucGF5bG9hZERhdGFMb2FkZXIubG9hZChcbiAgICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoW1xuICAgICAgICAgICAgICAgIGNvbnRleHQucmVxLnRyYW5zYWN0aW9uSUQsXG4gICAgICAgICAgICAgICAgcmVsYXRlZENvbGxlY3Rpb25TbHVnLFxuICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgIDAsXG4gICAgICAgICAgICAgICAgMCxcbiAgICAgICAgICAgICAgICBsb2NhbGUsXG4gICAgICAgICAgICAgICAgZmFsbGJhY2tMb2NhbGUsXG4gICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgKVxuXG4gICAgICAgICAgICBpZiAocmVsYXRlZERvY3VtZW50KSB7XG4gICAgICAgICAgICAgIGlmIChpc1JlbGF0ZWRUb01hbnlDb2xsZWN0aW9ucykge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICByZWxhdGlvblRvOiByZWxhdGVkQ29sbGVjdGlvblNsdWcsXG4gICAgICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgICAgICAuLi5yZWxhdGVkRG9jdW1lbnQsXG4gICAgICAgICAgICAgICAgICAgIGNvbGxlY3Rpb246IHJlbGF0ZWRDb2xsZWN0aW9uU2x1ZyxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgcmV0dXJuIHJlbGF0ZWREb2N1bWVudFxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgIH0sXG4gICAgICAgIHR5cGU6IHdpdGhOdWxsYWJsZVR5cGUoXG4gICAgICAgICAgZmllbGQsXG4gICAgICAgICAgaGFzTWFueVZhbHVlcyA/IG5ldyBHcmFwaFFMTGlzdChuZXcgR3JhcGhRTE5vbk51bGwodHlwZSkpIDogdHlwZSxcbiAgICAgICAgICBmb3JjZU51bGxhYmxlLFxuICAgICAgICApLFxuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5vYmplY3RUeXBlQ29uZmlnLFxuICAgICAgICBbZmllbGQubmFtZV06IHJlbGF0aW9uc2hpcCxcbiAgICAgIH1cbiAgICB9LFxuICAgIHJpY2hUZXh0OiAob2JqZWN0VHlwZUNvbmZpZzogT2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IFJpY2hUZXh0RmllbGQpID0+ICh7XG4gICAgICAuLi5vYmplY3RUeXBlQ29uZmlnLFxuICAgICAgW2ZpZWxkLm5hbWVdOiB7XG4gICAgICAgIGFyZ3M6IHtcbiAgICAgICAgICBkZXB0aDoge1xuICAgICAgICAgICAgdHlwZTogR3JhcGhRTEludCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBhc3luYyByZXNvbHZlKHBhcmVudCwgYXJncywgY29udGV4dCkge1xuICAgICAgICAgIGxldCBkZXB0aCA9IHBheWxvYWQuY29uZmlnLmRlZmF1bHREZXB0aFxuICAgICAgICAgIGlmICh0eXBlb2YgYXJncy5kZXB0aCAhPT0gJ3VuZGVmaW5lZCcpIGRlcHRoID0gYXJncy5kZXB0aFxuICAgICAgICAgIGNvbnN0IGVkaXRvcjogUmljaFRleHRBZGFwdGVyID0gZmllbGQ/LmVkaXRvclxuXG4gICAgICAgICAgLy8gUmljaFRleHQgZmllbGRzIGhhdmUgdGhlaXIgb3duIGRlcHRoIGFyZ3VtZW50IGluIEdyYXBoUUwuXG4gICAgICAgICAgLy8gVGhpcyBpcyB3aHkgdGhlIHBvcHVsYXRpb25Qcm9taXNlICh3aGljaCBwb3B1bGF0ZXMgcmljaHRleHQgZmllbGRzIGxpa2UgdXBsb2FkcyBhbmQgcmVsYXRpb25zaGlwcylcbiAgICAgICAgICAvLyBpcyBydW4gaGVyZSBhZ2Fpbiwgd2l0aCB0aGUgcHJvdmlkZWQgZGVwdGguXG4gICAgICAgICAgLy8gSW4gdGhlIGdyYXBocWwgZmluZC50cyByZXNvbHZlciwgdGhlIGRlcHRoIGlzIHRoZW4gaGFyZC1jb2RlZCB0byAwLlxuICAgICAgICAgIC8vIEVmZmVjdGl2ZWx5LCB0aGlzIG1lYW5zIHRoYXQgdGhlIHBvcHVsYXRpb25Qcm9taXNlIGZvciBHcmFwaFFMIGlzIG9ubHkgcnVuIGhlcmUsIGFuZCBub3QgaW4gdGhlIGZpbmQudHMgcmVzb2x2ZXIgLyBub3JtYWwgcG9wdWxhdGlvbiBwcm9taXNlLlxuICAgICAgICAgIGlmIChlZGl0b3I/LnBvcHVsYXRpb25Qcm9taXNlKSB7XG4gICAgICAgICAgICBhd2FpdCBlZGl0b3I/LnBvcHVsYXRpb25Qcm9taXNlKHtcbiAgICAgICAgICAgICAgZGVwdGgsXG4gICAgICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgICAgICByZXE6IGNvbnRleHQucmVxLFxuICAgICAgICAgICAgICBzaG93SGlkZGVuRmllbGRzOiBmYWxzZSxcbiAgICAgICAgICAgICAgc2libGluZ0RvYzogcGFyZW50LFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gcGFyZW50W2ZpZWxkLm5hbWVdXG4gICAgICAgIH0sXG4gICAgICAgIHR5cGU6IHdpdGhOdWxsYWJsZVR5cGUoZmllbGQsIEdyYXBoUUxKU09OLCBmb3JjZU51bGxhYmxlKSxcbiAgICAgIH0sXG4gICAgfSksXG4gICAgcm93OiAob2JqZWN0VHlwZUNvbmZpZzogT2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IFJvd0ZpZWxkKSA9PlxuICAgICAgZmllbGQuZmllbGRzLnJlZHVjZSgob2JqZWN0VHlwZUNvbmZpZ1dpdGhSb3dGaWVsZHMsIHN1YkZpZWxkKSA9PiB7XG4gICAgICAgIGNvbnN0IGFkZFN1YkZpZWxkID0gZmllbGRUb1NjaGVtYU1hcFtzdWJGaWVsZC50eXBlXVxuICAgICAgICBpZiAoYWRkU3ViRmllbGQpIHJldHVybiBhZGRTdWJGaWVsZChvYmplY3RUeXBlQ29uZmlnV2l0aFJvd0ZpZWxkcywgc3ViRmllbGQpXG4gICAgICAgIHJldHVybiBvYmplY3RUeXBlQ29uZmlnV2l0aFJvd0ZpZWxkc1xuICAgICAgfSwgb2JqZWN0VHlwZUNvbmZpZyksXG4gICAgc2VsZWN0OiAob2JqZWN0VHlwZUNvbmZpZzogT2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IFNlbGVjdEZpZWxkKSA9PiB7XG4gICAgICBjb25zdCBmdWxsTmFtZSA9IGNvbWJpbmVQYXJlbnROYW1lKHBhcmVudE5hbWUsIGZpZWxkLm5hbWUpXG5cbiAgICAgIGxldCB0eXBlOiBHcmFwaFFMVHlwZSA9IG5ldyBHcmFwaFFMRW51bVR5cGUoe1xuICAgICAgICBuYW1lOiBmdWxsTmFtZSxcbiAgICAgICAgdmFsdWVzOiBmb3JtYXRPcHRpb25zKGZpZWxkKSxcbiAgICAgIH0pXG5cbiAgICAgIHR5cGUgPSBmaWVsZC5oYXNNYW55ID8gbmV3IEdyYXBoUUxMaXN0KG5ldyBHcmFwaFFMTm9uTnVsbCh0eXBlKSkgOiB0eXBlXG4gICAgICB0eXBlID0gd2l0aE51bGxhYmxlVHlwZShmaWVsZCwgdHlwZSwgZm9yY2VOdWxsYWJsZSlcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ub2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgICAgW2ZpZWxkLm5hbWVdOiB7IHR5cGUgfSxcbiAgICAgIH1cbiAgICB9LFxuICAgIHRhYnM6IChvYmplY3RUeXBlQ29uZmlnOiBPYmplY3RUeXBlQ29uZmlnLCBmaWVsZDogVGFic0ZpZWxkKSA9PlxuICAgICAgZmllbGQudGFicy5yZWR1Y2UoKHRhYlNjaGVtYSwgdGFiKSA9PiB7XG4gICAgICAgIGlmICh0YWJIYXNOYW1lKHRhYikpIHtcbiAgICAgICAgICBjb25zdCBpbnRlcmZhY2VOYW1lID1cbiAgICAgICAgICAgIHRhYj8uaW50ZXJmYWNlTmFtZSB8fCBjb21iaW5lUGFyZW50TmFtZShwYXJlbnROYW1lLCB0b1dvcmRzKHRhYi5uYW1lLCB0cnVlKSlcblxuICAgICAgICAgIGlmICghcGF5bG9hZC50eXBlcy50YWJUeXBlc1tpbnRlcmZhY2VOYW1lXSkge1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgICAgICBwYXlsb2FkLnR5cGVzLnRhYlR5cGVzW2ludGVyZmFjZU5hbWVdID0gYnVpbGRPYmplY3RUeXBlKHtcbiAgICAgICAgICAgICAgbmFtZTogaW50ZXJmYWNlTmFtZSxcbiAgICAgICAgICAgICAgZmllbGRzOiB0YWIuZmllbGRzLFxuICAgICAgICAgICAgICBmb3JjZU51bGxhYmxlLFxuICAgICAgICAgICAgICBwYXJlbnROYW1lOiBpbnRlcmZhY2VOYW1lLFxuICAgICAgICAgICAgICBwYXlsb2FkLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4udGFiU2NoZW1hLFxuICAgICAgICAgICAgW3RhYi5uYW1lXTogeyB0eXBlOiBwYXlsb2FkLnR5cGVzLnRhYlR5cGVzW2ludGVyZmFjZU5hbWVdIH0sXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi50YWJTY2hlbWEsXG4gICAgICAgICAgLi4udGFiLmZpZWxkcy5yZWR1Y2UoKHN1YkZpZWxkU2NoZW1hLCBzdWJGaWVsZCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYWRkU3ViRmllbGQgPSBmaWVsZFRvU2NoZW1hTWFwW3N1YkZpZWxkLnR5cGVdXG4gICAgICAgICAgICBpZiAoYWRkU3ViRmllbGQpIHJldHVybiBhZGRTdWJGaWVsZChzdWJGaWVsZFNjaGVtYSwgc3ViRmllbGQpXG4gICAgICAgICAgICByZXR1cm4gc3ViRmllbGRTY2hlbWFcbiAgICAgICAgICB9LCB0YWJTY2hlbWEpLFxuICAgICAgICB9XG4gICAgICB9LCBvYmplY3RUeXBlQ29uZmlnKSxcbiAgICB0ZXh0OiAob2JqZWN0VHlwZUNvbmZpZzogT2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IFRleHRGaWVsZCkgPT4gKHtcbiAgICAgIC4uLm9iamVjdFR5cGVDb25maWcsXG4gICAgICBbZmllbGQubmFtZV06IHsgdHlwZTogd2l0aE51bGxhYmxlVHlwZShmaWVsZCwgR3JhcGhRTFN0cmluZywgZm9yY2VOdWxsYWJsZSkgfSxcbiAgICB9KSxcbiAgICB0ZXh0YXJlYTogKG9iamVjdFR5cGVDb25maWc6IE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBUZXh0YXJlYUZpZWxkKSA9PiAoe1xuICAgICAgLi4ub2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgIFtmaWVsZC5uYW1lXTogeyB0eXBlOiB3aXRoTnVsbGFibGVUeXBlKGZpZWxkLCBHcmFwaFFMU3RyaW5nLCBmb3JjZU51bGxhYmxlKSB9LFxuICAgIH0pLFxuICAgIHVwbG9hZDogKG9iamVjdFR5cGVDb25maWc6IE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBVcGxvYWRGaWVsZCkgPT4ge1xuICAgICAgY29uc3QgeyByZWxhdGlvblRvIH0gPSBmaWVsZFxuXG4gICAgICBjb25zdCB1cGxvYWROYW1lID0gY29tYmluZVBhcmVudE5hbWUocGFyZW50TmFtZSwgdG9Xb3JkcyhmaWVsZC5uYW1lLCB0cnVlKSlcblxuICAgICAgLy8gSWYgdGhlIHJlbGF0aW9uc2hpcFR5cGUgaXMgdW5kZWZpbmVkIGF0IHRoaXMgcG9pbnQsXG4gICAgICAvLyBpdCBjYW4gYmUgYXNzdW1lZCB0aGF0IHRoaXMgYmxvY2tUeXBlIGNhbiBoYXZlIGEgcmVsYXRpb25zaGlwXG4gICAgICAvLyB0byBpdHNlbGYuIFRoZXJlZm9yZSwgd2Ugc2V0IHRoZSByZWxhdGlvbnNoaXBUeXBlIGVxdWFsIHRvIHRoZSBibG9ja1R5cGVcbiAgICAgIC8vIHRoYXQgaXMgY3VycmVudGx5IGJlaW5nIGNyZWF0ZWQuXG5cbiAgICAgIGNvbnN0IHR5cGUgPSB3aXRoTnVsbGFibGVUeXBlKFxuICAgICAgICBmaWVsZCxcbiAgICAgICAgcGF5bG9hZC5jb2xsZWN0aW9uc1tyZWxhdGlvblRvXS5ncmFwaFFMLnR5cGUgfHwgbmV3bHlDcmVhdGVkQmxvY2tUeXBlLFxuICAgICAgICBmb3JjZU51bGxhYmxlLFxuICAgICAgKVxuXG4gICAgICBjb25zdCB1cGxvYWRBcmdzID0ge30gYXMgTG9jYWxlSW5wdXRUeXBlXG5cbiAgICAgIGlmIChwYXlsb2FkLmNvbmZpZy5sb2NhbGl6YXRpb24pIHtcbiAgICAgICAgdXBsb2FkQXJncy5sb2NhbGUgPSB7XG4gICAgICAgICAgdHlwZTogcGF5bG9hZC50eXBlcy5sb2NhbGVJbnB1dFR5cGUsXG4gICAgICAgIH1cblxuICAgICAgICB1cGxvYWRBcmdzLmZhbGxiYWNrTG9jYWxlID0ge1xuICAgICAgICAgIHR5cGU6IHBheWxvYWQudHlwZXMuZmFsbGJhY2tMb2NhbGVJbnB1dFR5cGUsXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVsYXRlZENvbGxlY3Rpb25TbHVnID0gZmllbGQucmVsYXRpb25Ub1xuXG4gICAgICBjb25zdCB1cGxvYWQgPSB7XG4gICAgICAgIGFyZ3M6IHVwbG9hZEFyZ3MsXG4gICAgICAgIGV4dGVuc2lvbnM6IHsgY29tcGxleGl0eTogMjAgfSxcbiAgICAgICAgYXN5bmMgcmVzb2x2ZShwYXJlbnQsIGFyZ3MsIGNvbnRleHQpIHtcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9IHBhcmVudFtmaWVsZC5uYW1lXVxuICAgICAgICAgIGNvbnN0IGxvY2FsZSA9IGFyZ3MubG9jYWxlIHx8IGNvbnRleHQucmVxLmxvY2FsZVxuICAgICAgICAgIGNvbnN0IGZhbGxiYWNrTG9jYWxlID0gYXJncy5mYWxsYmFja0xvY2FsZSB8fCBjb250ZXh0LnJlcS5mYWxsYmFja0xvY2FsZVxuICAgICAgICAgIGNvbnN0IGlkID0gdmFsdWVcblxuICAgICAgICAgIGlmIChpZCkge1xuICAgICAgICAgICAgY29uc3QgcmVsYXRlZERvY3VtZW50ID0gYXdhaXQgY29udGV4dC5yZXEucGF5bG9hZERhdGFMb2FkZXIubG9hZChcbiAgICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoW1xuICAgICAgICAgICAgICAgIGNvbnRleHQucmVxLnRyYW5zYWN0aW9uSUQsXG4gICAgICAgICAgICAgICAgcmVsYXRlZENvbGxlY3Rpb25TbHVnLFxuICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgIDAsXG4gICAgICAgICAgICAgICAgMCxcbiAgICAgICAgICAgICAgICBsb2NhbGUsXG4gICAgICAgICAgICAgICAgZmFsbGJhY2tMb2NhbGUsXG4gICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgKVxuXG4gICAgICAgICAgICByZXR1cm4gcmVsYXRlZERvY3VtZW50IHx8IG51bGxcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICB9LFxuICAgICAgICB0eXBlLFxuICAgICAgfVxuXG4gICAgICBjb25zdCB3aGVyZUZpZWxkcyA9IHBheWxvYWQuY29sbGVjdGlvbnNbcmVsYXRpb25Ub10uY29uZmlnLmZpZWxkc1xuXG4gICAgICB1cGxvYWQuYXJncy53aGVyZSA9IHtcbiAgICAgICAgdHlwZTogYnVpbGRXaGVyZUlucHV0VHlwZSh7XG4gICAgICAgICAgbmFtZTogdXBsb2FkTmFtZSxcbiAgICAgICAgICBmaWVsZHM6IHdoZXJlRmllbGRzLFxuICAgICAgICAgIHBhcmVudE5hbWU6IHVwbG9hZE5hbWUsXG4gICAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgfSksXG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLm9iamVjdFR5cGVDb25maWcsXG4gICAgICAgIFtmaWVsZC5uYW1lXTogdXBsb2FkLFxuICAgICAgfVxuICAgIH0sXG4gIH1cblxuICBjb25zdCBvYmplY3RTY2hlbWEgPSB7XG4gICAgbmFtZSxcbiAgICBmaWVsZHM6ICgpID0+XG4gICAgICBmaWVsZHMucmVkdWNlKChvYmplY3RUeXBlQ29uZmlnLCBmaWVsZCkgPT4ge1xuICAgICAgICBjb25zdCBmaWVsZFNjaGVtYSA9IGZpZWxkVG9TY2hlbWFNYXBbZmllbGQudHlwZV1cblxuICAgICAgICBpZiAodHlwZW9mIGZpZWxkU2NoZW1hICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgcmV0dXJuIG9iamVjdFR5cGVDb25maWdcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4ub2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgICAgICAuLi5maWVsZFNjaGVtYShvYmplY3RUeXBlQ29uZmlnLCBmaWVsZCksXG4gICAgICAgIH1cbiAgICAgIH0sIGJhc2VGaWVsZHMpLFxuICB9XG5cbiAgY29uc3QgbmV3bHlDcmVhdGVkQmxvY2tUeXBlID0gbmV3IEdyYXBoUUxPYmplY3RUeXBlKG9iamVjdFNjaGVtYSlcblxuICByZXR1cm4gbmV3bHlDcmVhdGVkQmxvY2tUeXBlXG59XG5cbmV4cG9ydCBkZWZhdWx0IGJ1aWxkT2JqZWN0VHlwZVxuIl0sIm5hbWVzIjpbImJ1aWxkT2JqZWN0VHlwZSIsIm5hbWUiLCJiYXNlRmllbGRzIiwiZmllbGRzIiwiZm9yY2VOdWxsYWJsZSIsInBhcmVudE5hbWUiLCJwYXlsb2FkIiwiZmllbGRUb1NjaGVtYU1hcCIsImFycmF5Iiwib2JqZWN0VHlwZUNvbmZpZyIsImZpZWxkIiwiaW50ZXJmYWNlTmFtZSIsImNvbWJpbmVQYXJlbnROYW1lIiwidG9Xb3JkcyIsInR5cGVzIiwiYXJyYXlUeXBlcyIsImlzRmllbGROdWxsYWJsZSIsImFycmF5VHlwZSIsIkdyYXBoUUxMaXN0IiwiR3JhcGhRTE5vbk51bGwiLCJ0eXBlIiwid2l0aE51bGxhYmxlVHlwZSIsImJsb2NrcyIsImJsb2NrVHlwZXMiLCJtYXAiLCJibG9jayIsInNsdWciLCJncmFwaFFMIiwic2luZ3VsYXJOYW1lIiwiZnVsbE5hbWUiLCJHcmFwaFFMVW5pb25UeXBlIiwicmVzb2x2ZVR5cGUiLCJkYXRhIiwiYmxvY2tUeXBlIiwiY2hlY2tib3giLCJHcmFwaFFMQm9vbGVhbiIsImNvZGUiLCJHcmFwaFFMU3RyaW5nIiwiY29sbGFwc2libGUiLCJyZWR1Y2UiLCJvYmplY3RUeXBlQ29uZmlnV2l0aENvbGxhcHNpYmxlRmllbGRzIiwic3ViRmllbGQiLCJhZGRTdWJGaWVsZCIsImRhdGUiLCJEYXRlVGltZVJlc29sdmVyIiwiZW1haWwiLCJFbWFpbEFkZHJlc3NSZXNvbHZlciIsImdyb3VwIiwiZ3JvdXBUeXBlcyIsImpzb24iLCJHcmFwaFFMSlNPTiIsIm51bWJlciIsIkdyYXBoUUxJbnQiLCJHcmFwaFFMRmxvYXQiLCJoYXNNYW55IiwicG9pbnQiLCJyYWRpbyIsIkdyYXBoUUxFbnVtVHlwZSIsInZhbHVlcyIsImZvcm1hdE9wdGlvbnMiLCJyZWxhdGlvbnNoaXAiLCJyZWxhdGlvblRvIiwiaXNSZWxhdGVkVG9NYW55Q29sbGVjdGlvbnMiLCJBcnJheSIsImlzQXJyYXkiLCJoYXNNYW55VmFsdWVzIiwicmVsYXRpb25zaGlwTmFtZSIsInJlbGF0aW9uVG9UeXBlIiwicmVsYXRpb25zIiwicmVsYXRpb24iLCJmb3JtYXROYW1lIiwidmFsdWUiLCJjb2xsZWN0aW9ucyIsIkdyYXBoUUxPYmplY3RUeXBlIiwicmVxIiwiY29sbGVjdGlvbiIsIm5ld2x5Q3JlYXRlZEJsb2NrVHlwZSIsInJlbGF0aW9uc2hpcEFyZ3MiLCJjb25maWciLCJsb2NhbGl6YXRpb24iLCJsb2NhbGUiLCJsb2NhbGVJbnB1dFR5cGUiLCJmYWxsYmFja0xvY2FsZSIsImZhbGxiYWNrTG9jYWxlSW5wdXRUeXBlIiwiYXJncyIsImV4dGVuc2lvbnMiLCJjb21wbGV4aXR5IiwicmVzb2x2ZSIsInBhcmVudCIsImNvbnRleHQiLCJyZWxhdGVkQ29sbGVjdGlvblNsdWciLCJyZXN1bHRzIiwicmVzdWx0UHJvbWlzZXMiLCJjcmVhdGVQb3B1bGF0aW9uUHJvbWlzZSIsInJlbGF0ZWREb2MiLCJpIiwiaWQiLCJjb2xsZWN0aW9uU2x1ZyIsInJlc3VsdCIsInBheWxvYWREYXRhTG9hZGVyIiwibG9hZCIsIkpTT04iLCJzdHJpbmdpZnkiLCJ0cmFuc2FjdGlvbklEIiwiZm9yRWFjaCIsInB1c2giLCJQcm9taXNlIiwiYWxsIiwicmVsYXRlZERvY3VtZW50IiwicmljaFRleHQiLCJkZXB0aCIsImRlZmF1bHREZXB0aCIsImVkaXRvciIsInBvcHVsYXRpb25Qcm9taXNlIiwic2hvd0hpZGRlbkZpZWxkcyIsInNpYmxpbmdEb2MiLCJyb3ciLCJvYmplY3RUeXBlQ29uZmlnV2l0aFJvd0ZpZWxkcyIsInNlbGVjdCIsInRhYnMiLCJ0YWJTY2hlbWEiLCJ0YWIiLCJ0YWJIYXNOYW1lIiwidGFiVHlwZXMiLCJzdWJGaWVsZFNjaGVtYSIsInRleHQiLCJ0ZXh0YXJlYSIsInVwbG9hZCIsInVwbG9hZE5hbWUiLCJ1cGxvYWRBcmdzIiwid2hlcmVGaWVsZHMiLCJ3aGVyZSIsImJ1aWxkV2hlcmVJbnB1dFR5cGUiLCJvYmplY3RTY2hlbWEiLCJmaWVsZFNjaGVtYSJdLCJtYXBwaW5ncyI6IkFBQUEsMERBQTBELEdBQzFELG1DQUFtQyxHQUNuQyx1Q0FBdUM7Ozs7K0JBcW1CdkM7OztlQUFBOzs7eUJBeGxCTztnQ0FDZ0Q7aUNBRTNCO3VCQTRCRDs4QkFDSDswRUFDTTttRUFDUDtz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