payload 2.5.0 → 2.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (176) hide show
  1. package/components/styles.css +1 -1
  2. package/dist/admin/components/elements/DocumentFields/index.d.ts.map +1 -1
  3. package/dist/admin/components/elements/DocumentFields/index.js +5 -2
  4. package/dist/admin/components/elements/DocumentHeader/Tabs/Tab/index.d.ts.map +1 -1
  5. package/dist/admin/components/elements/DocumentHeader/Tabs/Tab/index.js +3 -3
  6. package/dist/admin/components/elements/EditUpload/index.scss +6 -0
  7. package/dist/admin/components/elements/Header/index.scss +4 -0
  8. package/dist/admin/components/elements/ListDrawer/DrawerContent.js +2 -2
  9. package/dist/admin/components/elements/Popup/PopupButtonList/index.scss +9 -2
  10. package/dist/admin/components/elements/Popup/index.scss +20 -2
  11. package/dist/admin/components/elements/WhereBuilder/Condition/Relationship/index.js +2 -2
  12. package/dist/admin/components/forms/Form/buildStateFromSchema/iterateFields.js +3 -3
  13. package/dist/admin/components/forms/Form/fieldReducer.js +3 -3
  14. package/dist/admin/components/forms/RenderFields/index.scss +1 -0
  15. package/dist/admin/components/forms/field-types/JSON/index.d.ts.map +1 -1
  16. package/dist/admin/components/forms/field-types/JSON/index.js +17 -9
  17. package/dist/admin/components/forms/field-types/Text/Input.d.ts +3 -0
  18. package/dist/admin/components/forms/field-types/Text/Input.d.ts.map +1 -1
  19. package/dist/admin/components/forms/field-types/Text/Input.js +33 -5
  20. package/dist/admin/components/forms/field-types/Text/index.d.ts.map +1 -1
  21. package/dist/admin/components/forms/field-types/Text/index.js +48 -5
  22. package/dist/admin/components/forms/field-types/Text/index.scss +4 -2
  23. package/dist/admin/components/forms/withCondition/WatchCondition.js +3 -3
  24. package/dist/admin/components/modals/LeaveWithoutSaving/index.d.ts.map +1 -1
  25. package/dist/admin/components/modals/LeaveWithoutSaving/index.js +10 -2
  26. package/dist/admin/components/templates/Default/index.scss +5 -0
  27. package/dist/admin/components/views/API/index.d.ts.map +1 -1
  28. package/dist/admin/components/views/API/index.js +4 -1
  29. package/dist/admin/components/views/Account/index.d.ts.map +1 -1
  30. package/dist/admin/components/views/Account/index.js +3 -4
  31. package/dist/admin/components/views/Global/Default.d.ts.map +1 -1
  32. package/dist/admin/components/views/Global/Default.js +4 -1
  33. package/dist/admin/components/views/Global/index.js +2 -2
  34. package/dist/admin/components/views/LivePreview/index.d.ts.map +1 -1
  35. package/dist/admin/components/views/LivePreview/index.js +4 -1
  36. package/dist/admin/components/views/Version/Version.d.ts.map +1 -1
  37. package/dist/admin/components/views/Version/Version.js +4 -1
  38. package/dist/admin/components/views/Versions/index.d.ts.map +1 -1
  39. package/dist/admin/components/views/Versions/index.js +4 -1
  40. package/dist/admin/components/views/collections/Edit/Default.d.ts.map +1 -1
  41. package/dist/admin/components/views/collections/Edit/Default.js +4 -1
  42. package/dist/admin/components/views/collections/Edit/formatFields.js +2 -2
  43. package/dist/admin/components/views/collections/Edit/index.js +2 -2
  44. package/dist/admin/components/views/collections/List/index.d.ts.map +1 -1
  45. package/dist/admin/components/views/collections/List/index.js +4 -1
  46. package/dist/admin/hooks/useTitle.d.ts.map +1 -1
  47. package/dist/admin/hooks/useTitle.js +9 -2
  48. package/dist/auth/graphql/resolvers/access.d.ts.map +1 -1
  49. package/dist/auth/graphql/resolvers/access.js +3 -3
  50. package/dist/auth/graphql/resolvers/forgotPassword.d.ts.map +1 -1
  51. package/dist/auth/graphql/resolvers/forgotPassword.js +3 -3
  52. package/dist/auth/graphql/resolvers/init.d.ts.map +1 -1
  53. package/dist/auth/graphql/resolvers/init.js +3 -3
  54. package/dist/auth/graphql/resolvers/login.d.ts.map +1 -1
  55. package/dist/auth/graphql/resolvers/login.js +3 -3
  56. package/dist/auth/graphql/resolvers/logout.d.ts.map +1 -1
  57. package/dist/auth/graphql/resolvers/logout.js +3 -3
  58. package/dist/auth/graphql/resolvers/me.d.ts.map +1 -1
  59. package/dist/auth/graphql/resolvers/me.js +3 -3
  60. package/dist/auth/graphql/resolvers/refresh.d.ts.map +1 -1
  61. package/dist/auth/graphql/resolvers/refresh.js +3 -3
  62. package/dist/auth/graphql/resolvers/resetPassword.d.ts.map +1 -1
  63. package/dist/auth/graphql/resolvers/resetPassword.js +8 -5
  64. package/dist/auth/graphql/resolvers/unlock.d.ts.map +1 -1
  65. package/dist/auth/graphql/resolvers/unlock.js +3 -3
  66. package/dist/auth/graphql/resolvers/verifyEmail.d.ts.map +1 -1
  67. package/dist/auth/graphql/resolvers/verifyEmail.js +8 -5
  68. package/dist/auth/operations/local/login.d.ts.map +1 -1
  69. package/dist/auth/operations/local/login.js +9 -5
  70. package/dist/auth/strategies/local/incrementLoginAttempts.js +2 -2
  71. package/dist/collections/graphql/resolvers/create.d.ts.map +1 -1
  72. package/dist/collections/graphql/resolvers/create.js +7 -6
  73. package/dist/collections/graphql/resolvers/delete.d.ts.map +1 -1
  74. package/dist/collections/graphql/resolvers/delete.js +10 -5
  75. package/dist/collections/graphql/resolvers/docAccess.js +3 -3
  76. package/dist/collections/graphql/resolvers/find.d.ts.map +1 -1
  77. package/dist/collections/graphql/resolvers/find.js +10 -5
  78. package/dist/collections/graphql/resolvers/findByID.d.ts.map +1 -1
  79. package/dist/collections/graphql/resolvers/findByID.js +10 -6
  80. package/dist/collections/graphql/resolvers/findVersionByID.d.ts.map +1 -1
  81. package/dist/collections/graphql/resolvers/findVersionByID.js +10 -5
  82. package/dist/collections/graphql/resolvers/findVersions.d.ts.map +1 -1
  83. package/dist/collections/graphql/resolvers/findVersions.js +10 -5
  84. package/dist/collections/graphql/resolvers/restoreVersion.js +3 -3
  85. package/dist/collections/graphql/resolvers/update.d.ts.map +1 -1
  86. package/dist/collections/graphql/resolvers/update.js +10 -5
  87. package/dist/collections/operations/local/create.d.ts.map +1 -1
  88. package/dist/collections/operations/local/create.js +8 -5
  89. package/dist/collections/operations/local/delete.d.ts.map +1 -1
  90. package/dist/collections/operations/local/delete.js +8 -5
  91. package/dist/collections/operations/local/find.d.ts.map +1 -1
  92. package/dist/collections/operations/local/find.js +8 -12
  93. package/dist/collections/operations/local/findByID.d.ts.map +1 -1
  94. package/dist/collections/operations/local/findByID.js +8 -12
  95. package/dist/collections/operations/local/findVersionByID.d.ts.map +1 -1
  96. package/dist/collections/operations/local/findVersionByID.js +8 -12
  97. package/dist/collections/operations/local/findVersions.d.ts.map +1 -1
  98. package/dist/collections/operations/local/findVersions.js +8 -5
  99. package/dist/collections/operations/local/restoreVersion.d.ts.map +1 -1
  100. package/dist/collections/operations/local/restoreVersion.js +7 -3
  101. package/dist/collections/operations/local/update.d.ts.map +1 -1
  102. package/dist/collections/operations/local/update.js +7 -4
  103. package/dist/config/schema.d.ts.map +1 -1
  104. package/dist/config/schema.js +2 -1
  105. package/dist/config/types.d.ts +4 -0
  106. package/dist/config/types.d.ts.map +1 -1
  107. package/dist/config/types.js +1 -1
  108. package/dist/database/migrations/migrate.d.ts.map +1 -1
  109. package/dist/database/migrations/migrate.js +11 -11
  110. package/dist/database/migrations/migrateDown.d.ts.map +1 -1
  111. package/dist/database/migrations/migrateDown.js +11 -9
  112. package/dist/database/migrations/migrateRefresh.d.ts.map +1 -1
  113. package/dist/database/migrations/migrateRefresh.js +16 -15
  114. package/dist/database/migrations/migrateReset.d.ts.map +1 -1
  115. package/dist/database/migrations/migrateReset.js +11 -9
  116. package/dist/database/migrations/migrationTemplate.d.ts +1 -1
  117. package/dist/database/migrations/migrationTemplate.d.ts.map +1 -1
  118. package/dist/database/migrations/migrationTemplate.js +3 -3
  119. package/dist/database/migrations/migrationsCollection.d.ts.map +1 -1
  120. package/dist/database/migrations/migrationsCollection.js +4 -3
  121. package/dist/database/types.d.ts +8 -6
  122. package/dist/database/types.d.ts.map +1 -1
  123. package/dist/express/middleware/index.js +3 -3
  124. package/dist/fields/config/schema.d.ts.map +1 -1
  125. package/dist/fields/config/schema.js +12 -2
  126. package/dist/fields/config/types.d.ts +15 -1
  127. package/dist/fields/config/types.d.ts.map +1 -1
  128. package/dist/fields/config/types.js +1 -1
  129. package/dist/fields/hooks/beforeChange/promise.js +3 -3
  130. package/dist/fields/validations.d.ts.map +1 -1
  131. package/dist/fields/validations.js +33 -11
  132. package/dist/globals/graphql/resolvers/docAccess.js +3 -3
  133. package/dist/globals/graphql/resolvers/findOne.js +3 -3
  134. package/dist/globals/graphql/resolvers/findVersionByID.js +3 -3
  135. package/dist/globals/graphql/resolvers/findVersions.js +3 -3
  136. package/dist/globals/graphql/resolvers/restoreVersion.js +3 -3
  137. package/dist/globals/graphql/resolvers/update.js +3 -3
  138. package/dist/globals/operations/local/findOne.d.ts.map +1 -1
  139. package/dist/globals/operations/local/findOne.js +5 -3
  140. package/dist/globals/operations/local/findVersionByID.d.ts.map +1 -1
  141. package/dist/globals/operations/local/findVersionByID.js +6 -3
  142. package/dist/globals/operations/local/findVersions.d.ts.map +1 -1
  143. package/dist/globals/operations/local/findVersions.js +6 -3
  144. package/dist/globals/operations/local/restoreVersion.d.ts.map +1 -1
  145. package/dist/globals/operations/local/restoreVersion.js +6 -3
  146. package/dist/globals/operations/local/update.d.ts.map +1 -1
  147. package/dist/globals/operations/local/update.js +6 -3
  148. package/dist/graphql/registerSchema.d.ts.map +1 -1
  149. package/dist/graphql/registerSchema.js +2 -3
  150. package/dist/graphql/schema/buildMutationInputType.d.ts.map +1 -1
  151. package/dist/graphql/schema/buildMutationInputType.js +2 -2
  152. package/dist/graphql/schema/buildObjectType.d.ts.map +1 -1
  153. package/dist/graphql/schema/buildObjectType.js +13 -10
  154. package/dist/graphql/utilities/wrapCustomResolver.d.ts.map +1 -1
  155. package/dist/graphql/utilities/wrapCustomResolver.js +3 -3
  156. package/dist/localization/middleware.d.ts +1 -5
  157. package/dist/localization/middleware.d.ts.map +1 -1
  158. package/dist/localization/middleware.js +36 -40
  159. package/dist/payload.d.ts +0 -1
  160. package/dist/payload.d.ts.map +1 -1
  161. package/dist/payload.js +1 -1
  162. package/dist/translations/defaultOptions.js +3 -1
  163. package/dist/utilities/configToJSONSchema.d.ts.map +1 -1
  164. package/dist/utilities/configToJSONSchema.js +14 -1
  165. package/dist/utilities/initTransaction.d.ts.map +1 -1
  166. package/dist/utilities/initTransaction.js +4 -2
  167. package/dist/utilities/isValidID.d.ts.map +1 -1
  168. package/dist/utilities/isValidID.js +11 -2
  169. package/dist/utilities/isolateObjectProperty.d.ts +5 -0
  170. package/dist/utilities/isolateObjectProperty.d.ts.map +1 -0
  171. package/dist/utilities/isolateObjectProperty.js +38 -0
  172. package/dist/versions/buildCollectionFields.js +13 -13
  173. package/package.json +4 -4
  174. package/dist/utilities/isolateTransactionID.d.ts +0 -6
  175. package/dist/utilities/isolateTransactionID.d.ts.map +0 -1
  176. package/dist/utilities/isolateTransactionID.js +0 -38
@@ -18,9 +18,9 @@ function _interop_require_default(obj) {
18
18
  };
19
19
  }
20
20
  const promise = async ({ id, collection, context, data, doc, docWithLocales, errors, field, global, mergeLocaleActions, operation, path, req, siblingData, siblingDoc, siblingDocWithLocales, skipValidation })=>{
21
- const passesCondition = field.admin?.condition ? field.admin.condition(data, siblingData, {
21
+ const passesCondition = field.admin?.condition ? Boolean(field.admin.condition(data, siblingData, {
22
22
  user: req.user
23
- }) : true;
23
+ })) : true;
24
24
  let skipValidationFromHere = skipValidation || !passesCondition;
25
25
  const defaultLocale = req.payload.config?.localization ? req.payload.config.localization?.defaultLocale : 'en';
26
26
  const operationLocale = req.locale || defaultLocale;
@@ -314,4 +314,4 @@ const promise = async ({ id, collection, context, data, doc, docWithLocales, err
314
314
  }
315
315
  };
316
316
 
317
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZHMvaG9va3MvYmVmb3JlQ2hhbmdlL3Byb21pc2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbmltcG9ydCBtZXJnZSBmcm9tICdkZWVwbWVyZ2UnXG5cbmltcG9ydCB0eXBlIHsgU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZyB9IGZyb20gJy4uLy4uLy4uL2NvbGxlY3Rpb25zL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgUGF5bG9hZFJlcXVlc3QsIFJlcXVlc3RDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vZXhwcmVzcy90eXBlcydcbmltcG9ydCB0eXBlIHsgU2FuaXRpemVkR2xvYmFsQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vZ2xvYmFscy9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IE9wZXJhdGlvbiB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBGaWVsZCwgVGFiQXNGaWVsZCB9IGZyb20gJy4uLy4uL2NvbmZpZy90eXBlcydcblxuaW1wb3J0IHsgZmllbGRBZmZlY3RzRGF0YSwgdGFiSGFzTmFtZSB9IGZyb20gJy4uLy4uL2NvbmZpZy90eXBlcydcbmltcG9ydCB7IGdldEV4aXN0aW5nUm93RG9jIH0gZnJvbSAnLi9nZXRFeGlzdGluZ1Jvd0RvYydcbmltcG9ydCB7IHRyYXZlcnNlRmllbGRzIH0gZnJvbSAnLi90cmF2ZXJzZUZpZWxkcydcblxudHlwZSBBcmdzID0ge1xuICBjb2xsZWN0aW9uOiBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnIHwgbnVsbFxuICBjb250ZXh0OiBSZXF1ZXN0Q29udGV4dFxuICBkYXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICBkb2M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gIGRvY1dpdGhMb2NhbGVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICBlcnJvcnM6IHsgZmllbGQ6IHN0cmluZzsgbWVzc2FnZTogc3RyaW5nIH1bXVxuICBmaWVsZDogRmllbGQgfCBUYWJBc0ZpZWxkXG4gIGdsb2JhbDogU2FuaXRpemVkR2xvYmFsQ29uZmlnIHwgbnVsbFxuICBpZD86IG51bWJlciB8IHN0cmluZ1xuICBtZXJnZUxvY2FsZUFjdGlvbnM6ICgoKSA9PiB2b2lkKVtdXG4gIG9wZXJhdGlvbjogT3BlcmF0aW9uXG4gIHBhdGg6IHN0cmluZ1xuICByZXE6IFBheWxvYWRSZXF1ZXN0XG4gIHNpYmxpbmdEYXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICBzaWJsaW5nRG9jOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICBzaWJsaW5nRG9jV2l0aExvY2FsZXM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICBza2lwVmFsaWRhdGlvbjogYm9vbGVhblxufVxuXG4vLyBUaGlzIGZ1bmN0aW9uIGlzIHJlc3BvbnNpYmxlIGZvciB0aGUgZm9sbG93aW5nIGFjdGlvbnMsIGluIG9yZGVyOlxuLy8gLSBSdW4gY29uZGl0aW9uXG4vLyAtIEV4ZWN1dGUgZmllbGQgaG9va3Ncbi8vIC0gVmFsaWRhdGUgZGF0YVxuLy8gLSBUcmFuc2Zvcm0gZGF0YSBmb3Igc3RvcmFnZVxuLy8gLSBVbmZsYXR0ZW4gbG9jYWxlc1xuXG5leHBvcnQgY29uc3QgcHJvbWlzZSA9IGFzeW5jICh7XG4gIGlkLFxuICBjb2xsZWN0aW9uLFxuICBjb250ZXh0LFxuICBkYXRhLFxuICBkb2MsXG4gIGRvY1dpdGhMb2NhbGVzLFxuICBlcnJvcnMsXG4gIGZpZWxkLFxuICBnbG9iYWwsXG4gIG1lcmdlTG9jYWxlQWN0aW9ucyxcbiAgb3BlcmF0aW9uLFxuICBwYXRoLFxuICByZXEsXG4gIHNpYmxpbmdEYXRhLFxuICBzaWJsaW5nRG9jLFxuICBzaWJsaW5nRG9jV2l0aExvY2FsZXMsXG4gIHNraXBWYWxpZGF0aW9uLFxufTogQXJncyk6IFByb21pc2U8dm9pZD4gPT4ge1xuICBjb25zdCBwYXNzZXNDb25kaXRpb24gPSBmaWVsZC5hZG1pbj8uY29uZGl0aW9uXG4gICAgPyBmaWVsZC5hZG1pbi5jb25kaXRpb24oZGF0YSwgc2libGluZ0RhdGEsIHsgdXNlcjogcmVxLnVzZXIgfSlcbiAgICA6IHRydWVcbiAgbGV0IHNraXBWYWxpZGF0aW9uRnJvbUhlcmUgPSBza2lwVmFsaWRhdGlvbiB8fCAhcGFzc2VzQ29uZGl0aW9uXG5cbiAgY29uc3QgZGVmYXVsdExvY2FsZSA9IHJlcS5wYXlsb2FkLmNvbmZpZz8ubG9jYWxpemF0aW9uXG4gICAgPyByZXEucGF5bG9hZC5jb25maWcubG9jYWxpemF0aW9uPy5kZWZhdWx0TG9jYWxlXG4gICAgOiAnZW4nXG4gIGNvbnN0IG9wZXJhdGlvbkxvY2FsZSA9IHJlcS5sb2NhbGUgfHwgZGVmYXVsdExvY2FsZVxuXG4gIGlmIChmaWVsZEFmZmVjdHNEYXRhKGZpZWxkKSkge1xuICAgIC8vIHNraXAgdmFsaWRhdGlvbiBpZiB0aGUgZmllbGQgaXMgbG9jYWxpemVkIGFuZCB0aGUgaW5jb21pbmcgZGF0YSBpcyBudWxsXG4gICAgaWYgKGZpZWxkLmxvY2FsaXplZCAmJiBvcGVyYXRpb25Mb2NhbGUgIT09IGRlZmF1bHRMb2NhbGUpIHtcbiAgICAgIGlmIChbJ2FycmF5JywgJ2Jsb2NrcyddLmluY2x1ZGVzKGZpZWxkLnR5cGUpICYmIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID09PSBudWxsKSB7XG4gICAgICAgIHNraXBWYWxpZGF0aW9uRnJvbUhlcmUgPSB0cnVlXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRXhlY3V0ZSBob29rc1xuICAgIGlmIChmaWVsZC5ob29rcz8uYmVmb3JlQ2hhbmdlKSB7XG4gICAgICBhd2FpdCBmaWVsZC5ob29rcy5iZWZvcmVDaGFuZ2UucmVkdWNlKGFzeW5jIChwcmlvckhvb2ssIGN1cnJlbnRIb29rKSA9PiB7XG4gICAgICAgIGF3YWl0IHByaW9ySG9va1xuXG4gICAgICAgIGNvbnN0IGhvb2tlZFZhbHVlID0gYXdhaXQgY3VycmVudEhvb2soe1xuICAgICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICBkYXRhLFxuICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgIGdsb2JhbCxcbiAgICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgICAgb3JpZ2luYWxEb2M6IGRvYyxcbiAgICAgICAgICByZXEsXG4gICAgICAgICAgc2libGluZ0RhdGEsXG4gICAgICAgICAgdmFsdWU6IHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdLFxuICAgICAgICB9KVxuXG4gICAgICAgIGlmIChob29rZWRWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgc2libGluZ0RhdGFbZmllbGQubmFtZV0gPSBob29rZWRWYWx1ZVxuICAgICAgICB9XG4gICAgICB9LCBQcm9taXNlLnJlc29sdmUoKSlcbiAgICB9XG5cbiAgICAvLyBWYWxpZGF0ZVxuICAgIGlmICghc2tpcFZhbGlkYXRpb25Gcm9tSGVyZSAmJiBmaWVsZC52YWxpZGF0ZSkge1xuICAgICAgY29uc3QgdmFsdWVUb1ZhbGlkYXRlID0gc2libGluZ0RhdGFbZmllbGQubmFtZV1cbiAgICAgIGxldCBqc29uRXJyb3JcblxuICAgICAgaWYgKGZpZWxkLnR5cGUgPT09ICdqc29uJyAmJiB0eXBlb2Ygc2libGluZ0RhdGFbZmllbGQubmFtZV0gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgSlNPTi5wYXJzZShzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSBhcyBzdHJpbmcpXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBqc29uRXJyb3IgPSBlXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgdmFsaWRhdGlvblJlc3VsdCA9IGF3YWl0IGZpZWxkLnZhbGlkYXRlKHZhbHVlVG9WYWxpZGF0ZSwge1xuICAgICAgICAuLi5maWVsZCxcbiAgICAgICAgaWQsXG4gICAgICAgIGNvbmZpZzogcmVxLnBheWxvYWQuY29uZmlnLFxuICAgICAgICBkYXRhOiBtZXJnZShkb2MsIGRhdGEsIHsgYXJyYXlNZXJnZTogKF8sIHNvdXJjZSkgPT4gc291cmNlIH0pLFxuICAgICAgICBqc29uRXJyb3IsXG4gICAgICAgIG9wZXJhdGlvbixcbiAgICAgICAgcGF5bG9hZDogcmVxLnBheWxvYWQsXG4gICAgICAgIHJlcSxcbiAgICAgICAgc2libGluZ0RhdGE6IG1lcmdlKHNpYmxpbmdEb2MsIHNpYmxpbmdEYXRhLCB7IGFycmF5TWVyZ2U6IChfLCBzb3VyY2UpID0+IHNvdXJjZSB9KSxcbiAgICAgICAgdDogcmVxLnQsXG4gICAgICAgIHVzZXI6IHJlcS51c2VyLFxuICAgICAgfSlcblxuICAgICAgaWYgKHR5cGVvZiB2YWxpZGF0aW9uUmVzdWx0ID09PSAnc3RyaW5nJykge1xuICAgICAgICBlcnJvcnMucHVzaCh7XG4gICAgICAgICAgZmllbGQ6IGAke3BhdGh9JHtmaWVsZC5uYW1lfWAsXG4gICAgICAgICAgbWVzc2FnZTogdmFsaWRhdGlvblJlc3VsdCxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBQdXNoIG1lcmdlIGxvY2FsZSBhY3Rpb24gaWYgYXBwbGljYWJsZVxuICAgIGlmIChmaWVsZC5sb2NhbGl6ZWQpIHtcbiAgICAgIG1lcmdlTG9jYWxlQWN0aW9ucy5wdXNoKCgpID0+IHtcbiAgICAgICAgaWYgKHJlcS5wYXlsb2FkLmNvbmZpZy5sb2NhbGl6YXRpb24pIHtcbiAgICAgICAgICBjb25zdCB7IGxvY2FsaXphdGlvbiB9ID0gcmVxLnBheWxvYWQuY29uZmlnXG4gICAgICAgICAgY29uc3QgbG9jYWxlRGF0YSA9IGxvY2FsaXphdGlvbi5sb2NhbGVDb2Rlcy5yZWR1Y2UoKGxvY2FsaXplZFZhbHVlcywgbG9jYWxlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmaWVsZFZhbHVlID1cbiAgICAgICAgICAgICAgbG9jYWxlID09PSByZXEubG9jYWxlXG4gICAgICAgICAgICAgICAgPyBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXVxuICAgICAgICAgICAgICAgIDogc2libGluZ0RvY1dpdGhMb2NhbGVzPy5bZmllbGQubmFtZV0/Lltsb2NhbGVdXG5cbiAgICAgICAgICAgIC8vIHVwZGF0ZSBsb2NhbGUgdmFsdWUgaWYgaXQncyBub3QgdW5kZWZpbmVkXG4gICAgICAgICAgICBpZiAodHlwZW9mIGZpZWxkVmFsdWUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4ubG9jYWxpemVkVmFsdWVzLFxuICAgICAgICAgICAgICAgIFtsb2NhbGVdOiBmaWVsZFZhbHVlLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBsb2NhbGl6ZWRWYWx1ZXNcbiAgICAgICAgICB9LCB7fSlcblxuICAgICAgICAgIC8vIElmIHRoZXJlIGFyZSBsb2NhbGVzIHdpdGggZGF0YSwgc2V0IHRoZSBkYXRhXG4gICAgICAgICAgaWYgKE9iamVjdC5rZXlzKGxvY2FsZURhdGEpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID0gbG9jYWxlRGF0YVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICBzd2l0Y2ggKGZpZWxkLnR5cGUpIHtcbiAgICBjYXNlICdwb2ludCc6IHtcbiAgICAgIC8vIFRyYW5zZm9ybSBwb2ludCBkYXRhIGZvciBzdG9yYWdlXG4gICAgICBpZiAoXG4gICAgICAgIEFycmF5LmlzQXJyYXkoc2libGluZ0RhdGFbZmllbGQubmFtZV0pICYmXG4gICAgICAgIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdWzBdICE9PSBudWxsICYmXG4gICAgICAgIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdWzFdICE9PSBudWxsXG4gICAgICApIHtcbiAgICAgICAgc2libGluZ0RhdGFbZmllbGQubmFtZV0gPSB7XG4gICAgICAgICAgY29vcmRpbmF0ZXM6IFtcbiAgICAgICAgICAgIHBhcnNlRmxvYXQoc2libGluZ0RhdGFbZmllbGQubmFtZV1bMF0pLFxuICAgICAgICAgICAgcGFyc2VGbG9hdChzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXVsxXSksXG4gICAgICAgICAgXSxcbiAgICAgICAgICB0eXBlOiAnUG9pbnQnLFxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgY2FzZSAnZ3JvdXAnOiB7XG4gICAgICBpZiAodHlwZW9mIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdICE9PSAnb2JqZWN0Jykgc2libGluZ0RhdGFbZmllbGQubmFtZV0gPSB7fVxuICAgICAgaWYgKHR5cGVvZiBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdICE9PSAnb2JqZWN0Jykgc2libGluZ0RvY1tmaWVsZC5uYW1lXSA9IHt9XG4gICAgICBpZiAodHlwZW9mIHNpYmxpbmdEb2NXaXRoTG9jYWxlc1tmaWVsZC5uYW1lXSAhPT0gJ29iamVjdCcpXG4gICAgICAgIHNpYmxpbmdEb2NXaXRoTG9jYWxlc1tmaWVsZC5uYW1lXSA9IHt9XG5cbiAgICAgIGF3YWl0IHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgaWQsXG4gICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgIGNvbnRleHQsXG4gICAgICAgIGRhdGEsXG4gICAgICAgIGRvYyxcbiAgICAgICAgZG9jV2l0aExvY2FsZXMsXG4gICAgICAgIGVycm9ycyxcbiAgICAgICAgZmllbGRzOiBmaWVsZC5maWVsZHMsXG4gICAgICAgIGdsb2JhbCxcbiAgICAgICAgbWVyZ2VMb2NhbGVBY3Rpb25zLFxuICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgIHBhdGg6IGAke3BhdGh9JHtmaWVsZC5uYW1lfS5gLFxuICAgICAgICByZXEsXG4gICAgICAgIHNpYmxpbmdEYXRhOiBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgICAgICAgc2libGluZ0RvYzogc2libGluZ0RvY1tmaWVsZC5uYW1lXSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgICAgICAgc2libGluZ0RvY1dpdGhMb2NhbGVzOiBzaWJsaW5nRG9jV2l0aExvY2FsZXNbZmllbGQubmFtZV0gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICAgICAgIHNraXBWYWxpZGF0aW9uOiBza2lwVmFsaWRhdGlvbkZyb21IZXJlLFxuICAgICAgfSlcblxuICAgICAgYnJlYWtcbiAgICB9XG5cbiAgICBjYXNlICdhcnJheSc6IHtcbiAgICAgIGNvbnN0IHJvd3MgPSBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXVxuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShyb3dzKSkge1xuICAgICAgICBjb25zdCBwcm9taXNlcyA9IFtdXG4gICAgICAgIHJvd3MuZm9yRWFjaCgocm93LCBpKSA9PiB7XG4gICAgICAgICAgcHJvbWlzZXMucHVzaChcbiAgICAgICAgICAgIHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICAgIGRvYyxcbiAgICAgICAgICAgICAgZG9jV2l0aExvY2FsZXMsXG4gICAgICAgICAgICAgIGVycm9ycyxcbiAgICAgICAgICAgICAgZmllbGRzOiBmaWVsZC5maWVsZHMsXG4gICAgICAgICAgICAgIGdsb2JhbCxcbiAgICAgICAgICAgICAgbWVyZ2VMb2NhbGVBY3Rpb25zLFxuICAgICAgICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgICAgICAgIHBhdGg6IGAke3BhdGh9JHtmaWVsZC5uYW1lfS4ke2l9LmAsXG4gICAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgICAgc2libGluZ0RhdGE6IHJvdyxcbiAgICAgICAgICAgICAgc2libGluZ0RvYzogZ2V0RXhpc3RpbmdSb3dEb2Mocm93LCBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdKSxcbiAgICAgICAgICAgICAgc2libGluZ0RvY1dpdGhMb2NhbGVzOiBnZXRFeGlzdGluZ1Jvd0RvYyhyb3csIHNpYmxpbmdEb2NXaXRoTG9jYWxlc1tmaWVsZC5uYW1lXSksXG4gICAgICAgICAgICAgIHNraXBWYWxpZGF0aW9uOiBza2lwVmFsaWRhdGlvbkZyb21IZXJlLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKVxuICAgICAgICB9KVxuXG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKVxuICAgICAgfVxuXG4gICAgICBicmVha1xuICAgIH1cblxuICAgIGNhc2UgJ2Jsb2Nrcyc6IHtcbiAgICAgIGNvbnN0IHJvd3MgPSBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXVxuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShyb3dzKSkge1xuICAgICAgICBjb25zdCBwcm9taXNlcyA9IFtdXG4gICAgICAgIHJvd3MuZm9yRWFjaCgocm93LCBpKSA9PiB7XG4gICAgICAgICAgY29uc3Qgcm93U2libGluZ0RvYyA9IGdldEV4aXN0aW5nUm93RG9jKHJvdywgc2libGluZ0RvY1tmaWVsZC5uYW1lXSlcbiAgICAgICAgICBjb25zdCByb3dTaWJsaW5nRG9jV2l0aExvY2FsZXMgPSBnZXRFeGlzdGluZ1Jvd0RvYyhyb3csIHNpYmxpbmdEb2NXaXRoTG9jYWxlc1tmaWVsZC5uYW1lXSlcblxuICAgICAgICAgIGNvbnN0IGJsb2NrVHlwZVRvTWF0Y2ggPSByb3cuYmxvY2tUeXBlIHx8IHJvd1NpYmxpbmdEb2MuYmxvY2tUeXBlXG4gICAgICAgICAgY29uc3QgYmxvY2sgPSBmaWVsZC5ibG9ja3MuZmluZCgoYmxvY2tUeXBlKSA9PiBibG9ja1R5cGUuc2x1ZyA9PT0gYmxvY2tUeXBlVG9NYXRjaClcblxuICAgICAgICAgIGlmIChibG9jaykge1xuICAgICAgICAgICAgcHJvbWlzZXMucHVzaChcbiAgICAgICAgICAgICAgdHJhdmVyc2VGaWVsZHMoe1xuICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgICAgIGRvYyxcbiAgICAgICAgICAgICAgICBkb2NXaXRoTG9jYWxlcyxcbiAgICAgICAgICAgICAgICBlcnJvcnMsXG4gICAgICAgICAgICAgICAgZmllbGRzOiBibG9jay5maWVsZHMsXG4gICAgICAgICAgICAgICAgZ2xvYmFsLFxuICAgICAgICAgICAgICAgIG1lcmdlTG9jYWxlQWN0aW9ucyxcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgICAgICAgICAgcGF0aDogYCR7cGF0aH0ke2ZpZWxkLm5hbWV9LiR7aX0uYCxcbiAgICAgICAgICAgICAgICByZXEsXG4gICAgICAgICAgICAgICAgc2libGluZ0RhdGE6IHJvdyxcbiAgICAgICAgICAgICAgICBzaWJsaW5nRG9jOiByb3dTaWJsaW5nRG9jLFxuICAgICAgICAgICAgICAgIHNpYmxpbmdEb2NXaXRoTG9jYWxlczogcm93U2libGluZ0RvY1dpdGhMb2NhbGVzLFxuICAgICAgICAgICAgICAgIHNraXBWYWxpZGF0aW9uOiBza2lwVmFsaWRhdGlvbkZyb21IZXJlLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG5cbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpXG4gICAgICB9XG5cbiAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgY2FzZSAncm93JzpcbiAgICBjYXNlICdjb2xsYXBzaWJsZSc6IHtcbiAgICAgIGF3YWl0IHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgaWQsXG4gICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgIGNvbnRleHQsXG4gICAgICAgIGRhdGEsXG4gICAgICAgIGRvYyxcbiAgICAgICAgZG9jV2l0aExvY2FsZXMsXG4gICAgICAgIGVycm9ycyxcbiAgICAgICAgZmllbGRzOiBmaWVsZC5maWVsZHMsXG4gICAgICAgIGdsb2JhbCxcbiAgICAgICAgbWVyZ2VMb2NhbGVBY3Rpb25zLFxuICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgIHBhdGgsXG4gICAgICAgIHJlcSxcbiAgICAgICAgc2libGluZ0RhdGEsXG4gICAgICAgIHNpYmxpbmdEb2MsXG4gICAgICAgIHNpYmxpbmdEb2NXaXRoTG9jYWxlcyxcbiAgICAgICAgc2tpcFZhbGlkYXRpb246IHNraXBWYWxpZGF0aW9uRnJvbUhlcmUsXG4gICAgICB9KVxuXG4gICAgICBicmVha1xuICAgIH1cblxuICAgIGNhc2UgJ3RhYic6IHtcbiAgICAgIGxldCB0YWJQYXRoID0gcGF0aFxuICAgICAgbGV0IHRhYlNpYmxpbmdEYXRhID0gc2libGluZ0RhdGFcbiAgICAgIGxldCB0YWJTaWJsaW5nRG9jID0gc2libGluZ0RvY1xuICAgICAgbGV0IHRhYlNpYmxpbmdEb2NXaXRoTG9jYWxlcyA9IHNpYmxpbmdEb2NXaXRoTG9jYWxlc1xuXG4gICAgICBpZiAodGFiSGFzTmFtZShmaWVsZCkpIHtcbiAgICAgICAgdGFiUGF0aCA9IGAke3BhdGh9JHtmaWVsZC5uYW1lfS5gXG4gICAgICAgIGlmICh0eXBlb2Ygc2libGluZ0RhdGFbZmllbGQubmFtZV0gIT09ICdvYmplY3QnKSBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSA9IHt9XG4gICAgICAgIGlmICh0eXBlb2Ygc2libGluZ0RvY1tmaWVsZC5uYW1lXSAhPT0gJ29iamVjdCcpIHNpYmxpbmdEb2NbZmllbGQubmFtZV0gPSB7fVxuICAgICAgICBpZiAodHlwZW9mIHNpYmxpbmdEb2NXaXRoTG9jYWxlc1tmaWVsZC5uYW1lXSAhPT0gJ29iamVjdCcpXG4gICAgICAgICAgc2libGluZ0RvY1dpdGhMb2NhbGVzW2ZpZWxkLm5hbWVdID0ge31cblxuICAgICAgICB0YWJTaWJsaW5nRGF0YSA9IHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gICAgICAgIHRhYlNpYmxpbmdEb2MgPSBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gICAgICAgIHRhYlNpYmxpbmdEb2NXaXRoTG9jYWxlcyA9IHNpYmxpbmdEb2NXaXRoTG9jYWxlc1tmaWVsZC5uYW1lXSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICAgICAgfVxuXG4gICAgICBhd2FpdCB0cmF2ZXJzZUZpZWxkcyh7XG4gICAgICAgIGlkLFxuICAgICAgICBjb2xsZWN0aW9uLFxuICAgICAgICBjb250ZXh0LFxuICAgICAgICBkYXRhLFxuICAgICAgICBkb2MsXG4gICAgICAgIGRvY1dpdGhMb2NhbGVzLFxuICAgICAgICBlcnJvcnMsXG4gICAgICAgIGZpZWxkczogZmllbGQuZmllbGRzLFxuICAgICAgICBnbG9iYWwsXG4gICAgICAgIG1lcmdlTG9jYWxlQWN0aW9ucyxcbiAgICAgICAgb3BlcmF0aW9uLFxuICAgICAgICBwYXRoOiB0YWJQYXRoLFxuICAgICAgICByZXEsXG4gICAgICAgIHNpYmxpbmdEYXRhOiB0YWJTaWJsaW5nRGF0YSxcbiAgICAgICAgc2libGluZ0RvYzogdGFiU2libGluZ0RvYyxcbiAgICAgICAgc2libGluZ0RvY1dpdGhMb2NhbGVzOiB0YWJTaWJsaW5nRG9jV2l0aExvY2FsZXMsXG4gICAgICAgIHNraXBWYWxpZGF0aW9uOiBza2lwVmFsaWRhdGlvbkZyb21IZXJlLFxuICAgICAgfSlcblxuICAgICAgYnJlYWtcbiAgICB9XG5cbiAgICBjYXNlICd0YWJzJzoge1xuICAgICAgYXdhaXQgdHJhdmVyc2VGaWVsZHMoe1xuICAgICAgICBpZCxcbiAgICAgICAgY29sbGVjdGlvbixcbiAgICAgICAgY29udGV4dCxcbiAgICAgICAgZGF0YSxcbiAgICAgICAgZG9jLFxuICAgICAgICBkb2NXaXRoTG9jYWxlcyxcbiAgICAgICAgZXJyb3JzLFxuICAgICAgICBmaWVsZHM6IGZpZWxkLnRhYnMubWFwKCh0YWIpID0+ICh7IC4uLnRhYiwgdHlwZTogJ3RhYicgfSkpLFxuICAgICAgICBnbG9iYWwsXG4gICAgICAgIG1lcmdlTG9jYWxlQWN0aW9ucyxcbiAgICAgICAgb3BlcmF0aW9uLFxuICAgICAgICBwYXRoLFxuICAgICAgICByZXEsXG4gICAgICAgIHNpYmxpbmdEYXRhLFxuICAgICAgICBzaWJsaW5nRG9jLFxuICAgICAgICBzaWJsaW5nRG9jV2l0aExvY2FsZXMsXG4gICAgICAgIHNraXBWYWxpZGF0aW9uOiBza2lwVmFsaWRhdGlvbkZyb21IZXJlLFxuICAgICAgfSlcblxuICAgICAgYnJlYWtcbiAgICB9XG5cbiAgICBkZWZhdWx0OiB7XG4gICAgICBicmVha1xuICAgIH1cbiAgfVxufVxuIl0sIm5hbWVzIjpbInByb21pc2UiLCJpZCIsImNvbGxlY3Rpb24iLCJjb250ZXh0IiwiZGF0YSIsImRvYyIsImRvY1dpdGhMb2NhbGVzIiwiZXJyb3JzIiwiZmllbGQiLCJnbG9iYWwiLCJtZXJnZUxvY2FsZUFjdGlvbnMiLCJvcGVyYXRpb24iLCJwYXRoIiwicmVxIiwic2libGluZ0RhdGEiLCJzaWJsaW5nRG9jIiwic2libGluZ0RvY1dpdGhMb2NhbGVzIiwic2tpcFZhbGlkYXRpb24iLCJwYXNzZXNDb25kaXRpb24iLCJhZG1pbiIsImNvbmRpdGlvbiIsInVzZXIiLCJza2lwVmFsaWRhdGlvbkZyb21IZXJlIiwiZGVmYXVsdExvY2FsZSIsInBheWxvYWQiLCJjb25maWciLCJsb2NhbGl6YXRpb24iLCJvcGVyYXRpb25Mb2NhbGUiLCJsb2NhbGUiLCJmaWVsZEFmZmVjdHNEYXRhIiwibG9jYWxpemVkIiwiaW5jbHVkZXMiLCJ0eXBlIiwibmFtZSIsImhvb2tzIiwiYmVmb3JlQ2hhbmdlIiwicmVkdWNlIiwicHJpb3JIb29rIiwiY3VycmVudEhvb2siLCJob29rZWRWYWx1ZSIsIm9yaWdpbmFsRG9jIiwidmFsdWUiLCJ1bmRlZmluZWQiLCJQcm9taXNlIiwicmVzb2x2ZSIsInZhbGlkYXRlIiwidmFsdWVUb1ZhbGlkYXRlIiwianNvbkVycm9yIiwiSlNPTiIsInBhcnNlIiwiZSIsInZhbGlkYXRpb25SZXN1bHQiLCJtZXJnZSIsImFycmF5TWVyZ2UiLCJfIiwic291cmNlIiwidCIsInB1c2giLCJtZXNzYWdlIiwibG9jYWxlRGF0YSIsImxvY2FsZUNvZGVzIiwibG9jYWxpemVkVmFsdWVzIiwiZmllbGRWYWx1ZSIsIk9iamVjdCIsImtleXMiLCJsZW5ndGgiLCJBcnJheSIsImlzQXJyYXkiLCJjb29yZGluYXRlcyIsInBhcnNlRmxvYXQiLCJ0cmF2ZXJzZUZpZWxkcyIsImZpZWxkcyIsInJvd3MiLCJwcm9taXNlcyIsImZvckVhY2giLCJyb3ciLCJpIiwiZ2V0RXhpc3RpbmdSb3dEb2MiLCJhbGwiLCJyb3dTaWJsaW5nRG9jIiwicm93U2libGluZ0RvY1dpdGhMb2NhbGVzIiwiYmxvY2tUeXBlVG9NYXRjaCIsImJsb2NrVHlwZSIsImJsb2NrIiwiYmxvY2tzIiwiZmluZCIsInNsdWciLCJ0YWJQYXRoIiwidGFiU2libGluZ0RhdGEiLCJ0YWJTaWJsaW5nRG9jIiwidGFiU2libGluZ0RvY1dpdGhMb2NhbGVzIiwidGFiSGFzTmFtZSIsInRhYnMiLCJtYXAiLCJ0YWIiXSwibWFwcGluZ3MiOiJBQUFBLG9DQUFvQzs7OzsrQkF3Q3ZCQTs7O2VBQUFBOzs7a0VBdkNLO3VCQVEyQjttQ0FDWDtnQ0FDSDs7Ozs7O0FBNkJ4QixNQUFNQSxVQUFVLE9BQU8sRUFDNUJDLEVBQUUsRUFDRkMsVUFBVSxFQUNWQyxPQUFPLEVBQ1BDLElBQUksRUFDSkMsR0FBRyxFQUNIQyxjQUFjLEVBQ2RDLE1BQU0sRUFDTkMsS0FBSyxFQUNMQyxNQUFNLEVBQ05DLGtCQUFrQixFQUNsQkMsU0FBUyxFQUNUQyxJQUFJLEVBQ0pDLEdBQUcsRUFDSEMsV0FBVyxFQUNYQyxVQUFVLEVBQ1ZDLHFCQUFxQixFQUNyQkMsY0FBYyxFQUNUO0lBQ0wsTUFBTUMsa0JBQWtCVixNQUFNVyxLQUFLLEVBQUVDLFlBQ2pDWixNQUFNVyxLQUFLLENBQUNDLFNBQVMsQ0FBQ2hCLE1BQU1VLGFBQWE7UUFBRU8sTUFBTVIsSUFBSVEsSUFBSTtJQUFDLEtBQzFEO0lBQ0osSUFBSUMseUJBQXlCTCxrQkFBa0IsQ0FBQ0M7SUFFaEQsTUFBTUssZ0JBQWdCVixJQUFJVyxPQUFPLENBQUNDLE1BQU0sRUFBRUMsZUFDdENiLElBQUlXLE9BQU8sQ0FBQ0MsTUFBTSxDQUFDQyxZQUFZLEVBQUVILGdCQUNqQztJQUNKLE1BQU1JLGtCQUFrQmQsSUFBSWUsTUFBTSxJQUFJTDtJQUV0QyxJQUFJTSxJQUFBQSx1QkFBZ0IsRUFBQ3JCLFFBQVE7UUFDM0IsMEVBQTBFO1FBQzFFLElBQUlBLE1BQU1zQixTQUFTLElBQUlILG9CQUFvQkosZUFBZTtZQUN4RCxJQUFJO2dCQUFDO2dCQUFTO2FBQVMsQ0FBQ1EsUUFBUSxDQUFDdkIsTUFBTXdCLElBQUksS0FBS2xCLFdBQVcsQ0FBQ04sTUFBTXlCLElBQUksQ0FBQyxLQUFLLE1BQU07Z0JBQ2hGWCx5QkFBeUI7WUFDM0I7UUFDRjtRQUVBLGdCQUFnQjtRQUNoQixJQUFJZCxNQUFNMEIsS0FBSyxFQUFFQyxjQUFjO1lBQzdCLE1BQU0zQixNQUFNMEIsS0FBSyxDQUFDQyxZQUFZLENBQUNDLE1BQU0sQ0FBQyxPQUFPQyxXQUFXQztnQkFDdEQsTUFBTUQ7Z0JBRU4sTUFBTUUsY0FBYyxNQUFNRCxZQUFZO29CQUNwQ3BDO29CQUNBQztvQkFDQUM7b0JBQ0FJO29CQUNBQztvQkFDQUU7b0JBQ0E2QixhQUFhbkM7b0JBQ2JRO29CQUNBQztvQkFDQTJCLE9BQU8zQixXQUFXLENBQUNOLE1BQU15QixJQUFJLENBQUM7Z0JBQ2hDO2dCQUVBLElBQUlNLGdCQUFnQkcsV0FBVztvQkFDN0I1QixXQUFXLENBQUNOLE1BQU15QixJQUFJLENBQUMsR0FBR007Z0JBQzVCO1lBQ0YsR0FBR0ksUUFBUUMsT0FBTztRQUNwQjtRQUVBLFdBQVc7UUFDWCxJQUFJLENBQUN0QiwwQkFBMEJkLE1BQU1xQyxRQUFRLEVBQUU7WUFDN0MsTUFBTUMsa0JBQWtCaEMsV0FBVyxDQUFDTixNQUFNeUIsSUFBSSxDQUFDO1lBQy9DLElBQUljO1lBRUosSUFBSXZDLE1BQU13QixJQUFJLEtBQUssVUFBVSxPQUFPbEIsV0FBVyxDQUFDTixNQUFNeUIsSUFBSSxDQUFDLEtBQUssVUFBVTtnQkFDeEUsSUFBSTtvQkFDRmUsS0FBS0MsS0FBSyxDQUFDbkMsV0FBVyxDQUFDTixNQUFNeUIsSUFBSSxDQUFDO2dCQUNwQyxFQUFFLE9BQU9pQixHQUFHO29CQUNWSCxZQUFZRztnQkFDZDtZQUNGO1lBRUEsTUFBTUMsbUJBQW1CLE1BQU0zQyxNQUFNcUMsUUFBUSxDQUFDQyxpQkFBaUI7Z0JBQzdELEdBQUd0QyxLQUFLO2dCQUNSUDtnQkFDQXdCLFFBQVFaLElBQUlXLE9BQU8sQ0FBQ0MsTUFBTTtnQkFDMUJyQixNQUFNZ0QsSUFBQUEsa0JBQUssRUFBQy9DLEtBQUtELE1BQU07b0JBQUVpRCxZQUFZLENBQUNDLEdBQUdDLFNBQVdBO2dCQUFPO2dCQUMzRFI7Z0JBQ0FwQztnQkFDQWEsU0FBU1gsSUFBSVcsT0FBTztnQkFDcEJYO2dCQUNBQyxhQUFhc0MsSUFBQUEsa0JBQUssRUFBQ3JDLFlBQVlELGFBQWE7b0JBQUV1QyxZQUFZLENBQUNDLEdBQUdDLFNBQVdBO2dCQUFPO2dCQUNoRkMsR0FBRzNDLElBQUkyQyxDQUFDO2dCQUNSbkMsTUFBTVIsSUFBSVEsSUFBSTtZQUNoQjtZQUVBLElBQUksT0FBTzhCLHFCQUFxQixVQUFVO2dCQUN4QzVDLE9BQU9rRCxJQUFJLENBQUM7b0JBQ1ZqRCxPQUFPLENBQUMsRUFBRUksS0FBSyxFQUFFSixNQUFNeUIsSUFBSSxDQUFDLENBQUM7b0JBQzdCeUIsU0FBU1A7Z0JBQ1g7WUFDRjtRQUNGO1FBRUEseUNBQXlDO1FBQ3pDLElBQUkzQyxNQUFNc0IsU0FBUyxFQUFFO1lBQ25CcEIsbUJBQW1CK0MsSUFBSSxDQUFDO2dCQUN0QixJQUFJNUMsSUFBSVcsT0FBTyxDQUFDQyxNQUFNLENBQUNDLFlBQVksRUFBRTtvQkFDbkMsTUFBTSxFQUFFQSxZQUFZLEVBQUUsR0FBR2IsSUFBSVcsT0FBTyxDQUFDQyxNQUFNO29CQUMzQyxNQUFNa0MsYUFBYWpDLGFBQWFrQyxXQUFXLENBQUN4QixNQUFNLENBQUMsQ0FBQ3lCLGlCQUFpQmpDO3dCQUNuRSxNQUFNa0MsYUFDSmxDLFdBQVdmLElBQUllLE1BQU0sR0FDakJkLFdBQVcsQ0FBQ04sTUFBTXlCLElBQUksQ0FBQyxHQUN2QmpCLHVCQUF1QixDQUFDUixNQUFNeUIsSUFBSSxDQUFDLEVBQUUsQ0FBQ0wsT0FBTzt3QkFFbkQsNENBQTRDO3dCQUM1QyxJQUFJLE9BQU9rQyxlQUFlLGFBQWE7NEJBQ3JDLE9BQU87Z0NBQ0wsR0FBR0QsZUFBZTtnQ0FDbEIsQ0FBQ2pDLE9BQU8sRUFBRWtDOzRCQUNaO3dCQUNGO3dCQUVBLE9BQU9EO29CQUNULEdBQUcsQ0FBQztvQkFFSiwrQ0FBK0M7b0JBQy9DLElBQUlFLE9BQU9DLElBQUksQ0FBQ0wsWUFBWU0sTUFBTSxHQUFHLEdBQUc7d0JBQ3RDbkQsV0FBVyxDQUFDTixNQUFNeUIsSUFBSSxDQUFDLEdBQUcwQjtvQkFDNUI7Z0JBQ0Y7WUFDRjtRQUNGO0lBQ0Y7SUFFQSxPQUFRbkQsTUFBTXdCLElBQUk7UUFDaEIsS0FBSztZQUFTO2dCQUNaLG1DQUFtQztnQkFDbkMsSUFDRWtDLE1BQU1DLE9BQU8sQ0FBQ3JELFdBQVcsQ0FBQ04sTUFBTXlCLElBQUksQ0FBQyxLQUNyQ25CLFdBQVcsQ0FBQ04sTUFBTXlCLElBQUksQ0FBQyxDQUFDLEVBQUUsS0FBSyxRQUMvQm5CLFdBQVcsQ0FBQ04sTUFBTXlCLElBQUksQ0FBQyxDQUFDLEVBQUUsS0FBSyxNQUMvQjtvQkFDQW5CLFdBQVcsQ0FBQ04sTUFBTXlCLElBQUksQ0FBQyxHQUFHO3dCQUN4Qm1DLGFBQWE7NEJBQ1hDLFdBQVd2RCxXQUFXLENBQUNOLE1BQU15QixJQUFJLENBQUMsQ0FBQyxFQUFFOzRCQUNyQ29DLFdBQVd2RCxXQUFXLENBQUNOLE1BQU15QixJQUFJLENBQUMsQ0FBQyxFQUFFO3lCQUN0Qzt3QkFDREQsTUFBTTtvQkFDUjtnQkFDRjtnQkFFQTtZQUNGO1FBRUEsS0FBSztZQUFTO2dCQUNaLElBQUksT0FBT2xCLFdBQVcsQ0FBQ04sTUFBTXlCLElBQUksQ0FBQyxLQUFLLFVBQVVuQixXQUFXLENBQUNOLE1BQU15QixJQUFJLENBQUMsR0FBRyxDQUFDO2dCQUM1RSxJQUFJLE9BQU9sQixVQUFVLENBQUNQLE1BQU15QixJQUFJLENBQUMsS0FBSyxVQUFVbEIsVUFBVSxDQUFDUCxNQUFNeUIsSUFBSSxDQUFDLEdBQUcsQ0FBQztnQkFDMUUsSUFBSSxPQUFPakIscUJBQXFCLENBQUNSLE1BQU15QixJQUFJLENBQUMsS0FBSyxVQUMvQ2pCLHFCQUFxQixDQUFDUixNQUFNeUIsSUFBSSxDQUFDLEdBQUcsQ0FBQztnQkFFdkMsTUFBTXFDLElBQUFBLDhCQUFjLEVBQUM7b0JBQ25CckU7b0JBQ0FDO29CQUNBQztvQkFDQUM7b0JBQ0FDO29CQUNBQztvQkFDQUM7b0JBQ0FnRSxRQUFRL0QsTUFBTStELE1BQU07b0JBQ3BCOUQ7b0JBQ0FDO29CQUNBQztvQkFDQUMsTUFBTSxDQUFDLEVBQUVBLEtBQUssRUFBRUosTUFBTXlCLElBQUksQ0FBQyxDQUFDLENBQUM7b0JBQzdCcEI7b0JBQ0FDLGFBQWFBLFdBQVcsQ0FBQ04sTUFBTXlCLElBQUksQ0FBQztvQkFDcENsQixZQUFZQSxVQUFVLENBQUNQLE1BQU15QixJQUFJLENBQUM7b0JBQ2xDakIsdUJBQXVCQSxxQkFBcUIsQ0FBQ1IsTUFBTXlCLElBQUksQ0FBQztvQkFDeERoQixnQkFBZ0JLO2dCQUNsQjtnQkFFQTtZQUNGO1FBRUEsS0FBSztZQUFTO2dCQUNaLE1BQU1rRCxPQUFPMUQsV0FBVyxDQUFDTixNQUFNeUIsSUFBSSxDQUFDO2dCQUVwQyxJQUFJaUMsTUFBTUMsT0FBTyxDQUFDSyxPQUFPO29CQUN2QixNQUFNQyxXQUFXLEVBQUU7b0JBQ25CRCxLQUFLRSxPQUFPLENBQUMsQ0FBQ0MsS0FBS0M7d0JBQ2pCSCxTQUFTaEIsSUFBSSxDQUNYYSxJQUFBQSw4QkFBYyxFQUFDOzRCQUNickU7NEJBQ0FDOzRCQUNBQzs0QkFDQUM7NEJBQ0FDOzRCQUNBQzs0QkFDQUM7NEJBQ0FnRSxRQUFRL0QsTUFBTStELE1BQU07NEJBQ3BCOUQ7NEJBQ0FDOzRCQUNBQzs0QkFDQUMsTUFBTSxDQUFDLEVBQUVBLEtBQUssRUFBRUosTUFBTXlCLElBQUksQ0FBQyxDQUFDLEVBQUUyQyxFQUFFLENBQUMsQ0FBQzs0QkFDbEMvRDs0QkFDQUMsYUFBYTZEOzRCQUNiNUQsWUFBWThELElBQUFBLG9DQUFpQixFQUFDRixLQUFLNUQsVUFBVSxDQUFDUCxNQUFNeUIsSUFBSSxDQUFDOzRCQUN6RGpCLHVCQUF1QjZELElBQUFBLG9DQUFpQixFQUFDRixLQUFLM0QscUJBQXFCLENBQUNSLE1BQU15QixJQUFJLENBQUM7NEJBQy9FaEIsZ0JBQWdCSzt3QkFDbEI7b0JBRUo7b0JBRUEsTUFBTXFCLFFBQVFtQyxHQUFHLENBQUNMO2dCQUNwQjtnQkFFQTtZQUNGO1FBRUEsS0FBSztZQUFVO2dCQUNiLE1BQU1ELE9BQU8xRCxXQUFXLENBQUNOLE1BQU15QixJQUFJLENBQUM7Z0JBRXBDLElBQUlpQyxNQUFNQyxPQUFPLENBQUNLLE9BQU87b0JBQ3ZCLE1BQU1DLFdBQVcsRUFBRTtvQkFDbkJELEtBQUtFLE9BQU8sQ0FBQyxDQUFDQyxLQUFLQzt3QkFDakIsTUFBTUcsZ0JBQWdCRixJQUFBQSxvQ0FBaUIsRUFBQ0YsS0FBSzVELFVBQVUsQ0FBQ1AsTUFBTXlCLElBQUksQ0FBQzt3QkFDbkUsTUFBTStDLDJCQUEyQkgsSUFBQUEsb0NBQWlCLEVBQUNGLEtBQUszRCxxQkFBcUIsQ0FBQ1IsTUFBTXlCLElBQUksQ0FBQzt3QkFFekYsTUFBTWdELG1CQUFtQk4sSUFBSU8sU0FBUyxJQUFJSCxjQUFjRyxTQUFTO3dCQUNqRSxNQUFNQyxRQUFRM0UsTUFBTTRFLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDLENBQUNILFlBQWNBLFVBQVVJLElBQUksS0FBS0w7d0JBRWxFLElBQUlFLE9BQU87NEJBQ1RWLFNBQVNoQixJQUFJLENBQ1hhLElBQUFBLDhCQUFjLEVBQUM7Z0NBQ2JyRTtnQ0FDQUM7Z0NBQ0FDO2dDQUNBQztnQ0FDQUM7Z0NBQ0FDO2dDQUNBQztnQ0FDQWdFLFFBQVFZLE1BQU1aLE1BQU07Z0NBQ3BCOUQ7Z0NBQ0FDO2dDQUNBQztnQ0FDQUMsTUFBTSxDQUFDLEVBQUVBLEtBQUssRUFBRUosTUFBTXlCLElBQUksQ0FBQyxDQUFDLEVBQUUyQyxFQUFFLENBQUMsQ0FBQztnQ0FDbEMvRDtnQ0FDQUMsYUFBYTZEO2dDQUNiNUQsWUFBWWdFO2dDQUNaL0QsdUJBQXVCZ0U7Z0NBQ3ZCL0QsZ0JBQWdCSzs0QkFDbEI7d0JBRUo7b0JBQ0Y7b0JBRUEsTUFBTXFCLFFBQVFtQyxHQUFHLENBQUNMO2dCQUNwQjtnQkFFQTtZQUNGO1FBRUEsS0FBSztRQUNMLEtBQUs7WUFBZTtnQkFDbEIsTUFBTUgsSUFBQUEsOEJBQWMsRUFBQztvQkFDbkJyRTtvQkFDQUM7b0JBQ0FDO29CQUNBQztvQkFDQUM7b0JBQ0FDO29CQUNBQztvQkFDQWdFLFFBQVEvRCxNQUFNK0QsTUFBTTtvQkFDcEI5RDtvQkFDQUM7b0JBQ0FDO29CQUNBQztvQkFDQUM7b0JBQ0FDO29CQUNBQztvQkFDQUM7b0JBQ0FDLGdCQUFnQks7Z0JBQ2xCO2dCQUVBO1lBQ0Y7UUFFQSxLQUFLO1lBQU87Z0JBQ1YsSUFBSWlFLFVBQVUzRTtnQkFDZCxJQUFJNEUsaUJBQWlCMUU7Z0JBQ3JCLElBQUkyRSxnQkFBZ0IxRTtnQkFDcEIsSUFBSTJFLDJCQUEyQjFFO2dCQUUvQixJQUFJMkUsSUFBQUEsaUJBQVUsRUFBQ25GLFFBQVE7b0JBQ3JCK0UsVUFBVSxDQUFDLEVBQUUzRSxLQUFLLEVBQUVKLE1BQU15QixJQUFJLENBQUMsQ0FBQyxDQUFDO29CQUNqQyxJQUFJLE9BQU9uQixXQUFXLENBQUNOLE1BQU15QixJQUFJLENBQUMsS0FBSyxVQUFVbkIsV0FBVyxDQUFDTixNQUFNeUIsSUFBSSxDQUFDLEdBQUcsQ0FBQztvQkFDNUUsSUFBSSxPQUFPbEIsVUFBVSxDQUFDUCxNQUFNeUIsSUFBSSxDQUFDLEtBQUssVUFBVWxCLFVBQVUsQ0FBQ1AsTUFBTXlCLElBQUksQ0FBQyxHQUFHLENBQUM7b0JBQzFFLElBQUksT0FBT2pCLHFCQUFxQixDQUFDUixNQUFNeUIsSUFBSSxDQUFDLEtBQUssVUFDL0NqQixxQkFBcUIsQ0FBQ1IsTUFBTXlCLElBQUksQ0FBQyxHQUFHLENBQUM7b0JBRXZDdUQsaUJBQWlCMUUsV0FBVyxDQUFDTixNQUFNeUIsSUFBSSxDQUFDO29CQUN4Q3dELGdCQUFnQjFFLFVBQVUsQ0FBQ1AsTUFBTXlCLElBQUksQ0FBQztvQkFDdEN5RCwyQkFBMkIxRSxxQkFBcUIsQ0FBQ1IsTUFBTXlCLElBQUksQ0FBQztnQkFDOUQ7Z0JBRUEsTUFBTXFDLElBQUFBLDhCQUFjLEVBQUM7b0JBQ25CckU7b0JBQ0FDO29CQUNBQztvQkFDQUM7b0JBQ0FDO29CQUNBQztvQkFDQUM7b0JBQ0FnRSxRQUFRL0QsTUFBTStELE1BQU07b0JBQ3BCOUQ7b0JBQ0FDO29CQUNBQztvQkFDQUMsTUFBTTJFO29CQUNOMUU7b0JBQ0FDLGFBQWEwRTtvQkFDYnpFLFlBQVkwRTtvQkFDWnpFLHVCQUF1QjBFO29CQUN2QnpFLGdCQUFnQks7Z0JBQ2xCO2dCQUVBO1lBQ0Y7UUFFQSxLQUFLO1lBQVE7Z0JBQ1gsTUFBTWdELElBQUFBLDhCQUFjLEVBQUM7b0JBQ25CckU7b0JBQ0FDO29CQUNBQztvQkFDQUM7b0JBQ0FDO29CQUNBQztvQkFDQUM7b0JBQ0FnRSxRQUFRL0QsTUFBTW9GLElBQUksQ0FBQ0MsR0FBRyxDQUFDLENBQUNDLE1BQVMsQ0FBQTs0QkFBRSxHQUFHQSxHQUFHOzRCQUFFOUQsTUFBTTt3QkFBTSxDQUFBO29CQUN2RHZCO29CQUNBQztvQkFDQUM7b0JBQ0FDO29CQUNBQztvQkFDQUM7b0JBQ0FDO29CQUNBQztvQkFDQUMsZ0JBQWdCSztnQkFDbEI7Z0JBRUE7WUFDRjtRQUVBO1lBQVM7Z0JBQ1A7WUFDRjtJQUNGO0FBQ0YifQ==
317
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZHMvaG9va3MvYmVmb3JlQ2hhbmdlL3Byb21pc2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbmltcG9ydCBtZXJnZSBmcm9tICdkZWVwbWVyZ2UnXG5cbmltcG9ydCB0eXBlIHsgU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZyB9IGZyb20gJy4uLy4uLy4uL2NvbGxlY3Rpb25zL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgUGF5bG9hZFJlcXVlc3QsIFJlcXVlc3RDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vZXhwcmVzcy90eXBlcydcbmltcG9ydCB0eXBlIHsgU2FuaXRpemVkR2xvYmFsQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vZ2xvYmFscy9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IE9wZXJhdGlvbiB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBGaWVsZCwgVGFiQXNGaWVsZCB9IGZyb20gJy4uLy4uL2NvbmZpZy90eXBlcydcblxuaW1wb3J0IHsgZmllbGRBZmZlY3RzRGF0YSwgdGFiSGFzTmFtZSB9IGZyb20gJy4uLy4uL2NvbmZpZy90eXBlcydcbmltcG9ydCB7IGdldEV4aXN0aW5nUm93RG9jIH0gZnJvbSAnLi9nZXRFeGlzdGluZ1Jvd0RvYydcbmltcG9ydCB7IHRyYXZlcnNlRmllbGRzIH0gZnJvbSAnLi90cmF2ZXJzZUZpZWxkcydcblxudHlwZSBBcmdzID0ge1xuICBjb2xsZWN0aW9uOiBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnIHwgbnVsbFxuICBjb250ZXh0OiBSZXF1ZXN0Q29udGV4dFxuICBkYXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICBkb2M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gIGRvY1dpdGhMb2NhbGVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICBlcnJvcnM6IHsgZmllbGQ6IHN0cmluZzsgbWVzc2FnZTogc3RyaW5nIH1bXVxuICBmaWVsZDogRmllbGQgfCBUYWJBc0ZpZWxkXG4gIGdsb2JhbDogU2FuaXRpemVkR2xvYmFsQ29uZmlnIHwgbnVsbFxuICBpZD86IG51bWJlciB8IHN0cmluZ1xuICBtZXJnZUxvY2FsZUFjdGlvbnM6ICgoKSA9PiB2b2lkKVtdXG4gIG9wZXJhdGlvbjogT3BlcmF0aW9uXG4gIHBhdGg6IHN0cmluZ1xuICByZXE6IFBheWxvYWRSZXF1ZXN0XG4gIHNpYmxpbmdEYXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICBzaWJsaW5nRG9jOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICBzaWJsaW5nRG9jV2l0aExvY2FsZXM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICBza2lwVmFsaWRhdGlvbjogYm9vbGVhblxufVxuXG4vLyBUaGlzIGZ1bmN0aW9uIGlzIHJlc3BvbnNpYmxlIGZvciB0aGUgZm9sbG93aW5nIGFjdGlvbnMsIGluIG9yZGVyOlxuLy8gLSBSdW4gY29uZGl0aW9uXG4vLyAtIEV4ZWN1dGUgZmllbGQgaG9va3Ncbi8vIC0gVmFsaWRhdGUgZGF0YVxuLy8gLSBUcmFuc2Zvcm0gZGF0YSBmb3Igc3RvcmFnZVxuLy8gLSBVbmZsYXR0ZW4gbG9jYWxlc1xuXG5leHBvcnQgY29uc3QgcHJvbWlzZSA9IGFzeW5jICh7XG4gIGlkLFxuICBjb2xsZWN0aW9uLFxuICBjb250ZXh0LFxuICBkYXRhLFxuICBkb2MsXG4gIGRvY1dpdGhMb2NhbGVzLFxuICBlcnJvcnMsXG4gIGZpZWxkLFxuICBnbG9iYWwsXG4gIG1lcmdlTG9jYWxlQWN0aW9ucyxcbiAgb3BlcmF0aW9uLFxuICBwYXRoLFxuICByZXEsXG4gIHNpYmxpbmdEYXRhLFxuICBzaWJsaW5nRG9jLFxuICBzaWJsaW5nRG9jV2l0aExvY2FsZXMsXG4gIHNraXBWYWxpZGF0aW9uLFxufTogQXJncyk6IFByb21pc2U8dm9pZD4gPT4ge1xuICBjb25zdCBwYXNzZXNDb25kaXRpb24gPSBmaWVsZC5hZG1pbj8uY29uZGl0aW9uXG4gICAgPyBCb29sZWFuKGZpZWxkLmFkbWluLmNvbmRpdGlvbihkYXRhLCBzaWJsaW5nRGF0YSwgeyB1c2VyOiByZXEudXNlciB9KSlcbiAgICA6IHRydWVcbiAgbGV0IHNraXBWYWxpZGF0aW9uRnJvbUhlcmUgPSBza2lwVmFsaWRhdGlvbiB8fCAhcGFzc2VzQ29uZGl0aW9uXG5cbiAgY29uc3QgZGVmYXVsdExvY2FsZSA9IHJlcS5wYXlsb2FkLmNvbmZpZz8ubG9jYWxpemF0aW9uXG4gICAgPyByZXEucGF5bG9hZC5jb25maWcubG9jYWxpemF0aW9uPy5kZWZhdWx0TG9jYWxlXG4gICAgOiAnZW4nXG4gIGNvbnN0IG9wZXJhdGlvbkxvY2FsZSA9IHJlcS5sb2NhbGUgfHwgZGVmYXVsdExvY2FsZVxuXG4gIGlmIChmaWVsZEFmZmVjdHNEYXRhKGZpZWxkKSkge1xuICAgIC8vIHNraXAgdmFsaWRhdGlvbiBpZiB0aGUgZmllbGQgaXMgbG9jYWxpemVkIGFuZCB0aGUgaW5jb21pbmcgZGF0YSBpcyBudWxsXG4gICAgaWYgKGZpZWxkLmxvY2FsaXplZCAmJiBvcGVyYXRpb25Mb2NhbGUgIT09IGRlZmF1bHRMb2NhbGUpIHtcbiAgICAgIGlmIChbJ2FycmF5JywgJ2Jsb2NrcyddLmluY2x1ZGVzKGZpZWxkLnR5cGUpICYmIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID09PSBudWxsKSB7XG4gICAgICAgIHNraXBWYWxpZGF0aW9uRnJvbUhlcmUgPSB0cnVlXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRXhlY3V0ZSBob29rc1xuICAgIGlmIChmaWVsZC5ob29rcz8uYmVmb3JlQ2hhbmdlKSB7XG4gICAgICBhd2FpdCBmaWVsZC5ob29rcy5iZWZvcmVDaGFuZ2UucmVkdWNlKGFzeW5jIChwcmlvckhvb2ssIGN1cnJlbnRIb29rKSA9PiB7XG4gICAgICAgIGF3YWl0IHByaW9ySG9va1xuXG4gICAgICAgIGNvbnN0IGhvb2tlZFZhbHVlID0gYXdhaXQgY3VycmVudEhvb2soe1xuICAgICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICBkYXRhLFxuICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgIGdsb2JhbCxcbiAgICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgICAgb3JpZ2luYWxEb2M6IGRvYyxcbiAgICAgICAgICByZXEsXG4gICAgICAgICAgc2libGluZ0RhdGEsXG4gICAgICAgICAgdmFsdWU6IHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdLFxuICAgICAgICB9KVxuXG4gICAgICAgIGlmIChob29rZWRWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgc2libGluZ0RhdGFbZmllbGQubmFtZV0gPSBob29rZWRWYWx1ZVxuICAgICAgICB9XG4gICAgICB9LCBQcm9taXNlLnJlc29sdmUoKSlcbiAgICB9XG5cbiAgICAvLyBWYWxpZGF0ZVxuICAgIGlmICghc2tpcFZhbGlkYXRpb25Gcm9tSGVyZSAmJiBmaWVsZC52YWxpZGF0ZSkge1xuICAgICAgY29uc3QgdmFsdWVUb1ZhbGlkYXRlID0gc2libGluZ0RhdGFbZmllbGQubmFtZV1cbiAgICAgIGxldCBqc29uRXJyb3JcblxuICAgICAgaWYgKGZpZWxkLnR5cGUgPT09ICdqc29uJyAmJiB0eXBlb2Ygc2libGluZ0RhdGFbZmllbGQubmFtZV0gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgSlNPTi5wYXJzZShzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSBhcyBzdHJpbmcpXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBqc29uRXJyb3IgPSBlXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgdmFsaWRhdGlvblJlc3VsdCA9IGF3YWl0IGZpZWxkLnZhbGlkYXRlKHZhbHVlVG9WYWxpZGF0ZSwge1xuICAgICAgICAuLi5maWVsZCxcbiAgICAgICAgaWQsXG4gICAgICAgIGNvbmZpZzogcmVxLnBheWxvYWQuY29uZmlnLFxuICAgICAgICBkYXRhOiBtZXJnZShkb2MsIGRhdGEsIHsgYXJyYXlNZXJnZTogKF8sIHNvdXJjZSkgPT4gc291cmNlIH0pLFxuICAgICAgICBqc29uRXJyb3IsXG4gICAgICAgIG9wZXJhdGlvbixcbiAgICAgICAgcGF5bG9hZDogcmVxLnBheWxvYWQsXG4gICAgICAgIHJlcSxcbiAgICAgICAgc2libGluZ0RhdGE6IG1lcmdlKHNpYmxpbmdEb2MsIHNpYmxpbmdEYXRhLCB7IGFycmF5TWVyZ2U6IChfLCBzb3VyY2UpID0+IHNvdXJjZSB9KSxcbiAgICAgICAgdDogcmVxLnQsXG4gICAgICAgIHVzZXI6IHJlcS51c2VyLFxuICAgICAgfSlcblxuICAgICAgaWYgKHR5cGVvZiB2YWxpZGF0aW9uUmVzdWx0ID09PSAnc3RyaW5nJykge1xuICAgICAgICBlcnJvcnMucHVzaCh7XG4gICAgICAgICAgZmllbGQ6IGAke3BhdGh9JHtmaWVsZC5uYW1lfWAsXG4gICAgICAgICAgbWVzc2FnZTogdmFsaWRhdGlvblJlc3VsdCxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBQdXNoIG1lcmdlIGxvY2FsZSBhY3Rpb24gaWYgYXBwbGljYWJsZVxuICAgIGlmIChmaWVsZC5sb2NhbGl6ZWQpIHtcbiAgICAgIG1lcmdlTG9jYWxlQWN0aW9ucy5wdXNoKCgpID0+IHtcbiAgICAgICAgaWYgKHJlcS5wYXlsb2FkLmNvbmZpZy5sb2NhbGl6YXRpb24pIHtcbiAgICAgICAgICBjb25zdCB7IGxvY2FsaXphdGlvbiB9ID0gcmVxLnBheWxvYWQuY29uZmlnXG4gICAgICAgICAgY29uc3QgbG9jYWxlRGF0YSA9IGxvY2FsaXphdGlvbi5sb2NhbGVDb2Rlcy5yZWR1Y2UoKGxvY2FsaXplZFZhbHVlcywgbG9jYWxlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmaWVsZFZhbHVlID1cbiAgICAgICAgICAgICAgbG9jYWxlID09PSByZXEubG9jYWxlXG4gICAgICAgICAgICAgICAgPyBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXVxuICAgICAgICAgICAgICAgIDogc2libGluZ0RvY1dpdGhMb2NhbGVzPy5bZmllbGQubmFtZV0/Lltsb2NhbGVdXG5cbiAgICAgICAgICAgIC8vIHVwZGF0ZSBsb2NhbGUgdmFsdWUgaWYgaXQncyBub3QgdW5kZWZpbmVkXG4gICAgICAgICAgICBpZiAodHlwZW9mIGZpZWxkVmFsdWUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4ubG9jYWxpemVkVmFsdWVzLFxuICAgICAgICAgICAgICAgIFtsb2NhbGVdOiBmaWVsZFZhbHVlLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBsb2NhbGl6ZWRWYWx1ZXNcbiAgICAgICAgICB9LCB7fSlcblxuICAgICAgICAgIC8vIElmIHRoZXJlIGFyZSBsb2NhbGVzIHdpdGggZGF0YSwgc2V0IHRoZSBkYXRhXG4gICAgICAgICAgaWYgKE9iamVjdC5rZXlzKGxvY2FsZURhdGEpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID0gbG9jYWxlRGF0YVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICBzd2l0Y2ggKGZpZWxkLnR5cGUpIHtcbiAgICBjYXNlICdwb2ludCc6IHtcbiAgICAgIC8vIFRyYW5zZm9ybSBwb2ludCBkYXRhIGZvciBzdG9yYWdlXG4gICAgICBpZiAoXG4gICAgICAgIEFycmF5LmlzQXJyYXkoc2libGluZ0RhdGFbZmllbGQubmFtZV0pICYmXG4gICAgICAgIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdWzBdICE9PSBudWxsICYmXG4gICAgICAgIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdWzFdICE9PSBudWxsXG4gICAgICApIHtcbiAgICAgICAgc2libGluZ0RhdGFbZmllbGQubmFtZV0gPSB7XG4gICAgICAgICAgY29vcmRpbmF0ZXM6IFtcbiAgICAgICAgICAgIHBhcnNlRmxvYXQoc2libGluZ0RhdGFbZmllbGQubmFtZV1bMF0pLFxuICAgICAgICAgICAgcGFyc2VGbG9hdChzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXVsxXSksXG4gICAgICAgICAgXSxcbiAgICAgICAgICB0eXBlOiAnUG9pbnQnLFxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgY2FzZSAnZ3JvdXAnOiB7XG4gICAgICBpZiAodHlwZW9mIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdICE9PSAnb2JqZWN0Jykgc2libGluZ0RhdGFbZmllbGQubmFtZV0gPSB7fVxuICAgICAgaWYgKHR5cGVvZiBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdICE9PSAnb2JqZWN0Jykgc2libGluZ0RvY1tmaWVsZC5uYW1lXSA9IHt9XG4gICAgICBpZiAodHlwZW9mIHNpYmxpbmdEb2NXaXRoTG9jYWxlc1tmaWVsZC5uYW1lXSAhPT0gJ29iamVjdCcpXG4gICAgICAgIHNpYmxpbmdEb2NXaXRoTG9jYWxlc1tmaWVsZC5uYW1lXSA9IHt9XG5cbiAgICAgIGF3YWl0IHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgaWQsXG4gICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgIGNvbnRleHQsXG4gICAgICAgIGRhdGEsXG4gICAgICAgIGRvYyxcbiAgICAgICAgZG9jV2l0aExvY2FsZXMsXG4gICAgICAgIGVycm9ycyxcbiAgICAgICAgZmllbGRzOiBmaWVsZC5maWVsZHMsXG4gICAgICAgIGdsb2JhbCxcbiAgICAgICAgbWVyZ2VMb2NhbGVBY3Rpb25zLFxuICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgIHBhdGg6IGAke3BhdGh9JHtmaWVsZC5uYW1lfS5gLFxuICAgICAgICByZXEsXG4gICAgICAgIHNpYmxpbmdEYXRhOiBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgICAgICAgc2libGluZ0RvYzogc2libGluZ0RvY1tmaWVsZC5uYW1lXSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgICAgICAgc2libGluZ0RvY1dpdGhMb2NhbGVzOiBzaWJsaW5nRG9jV2l0aExvY2FsZXNbZmllbGQubmFtZV0gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICAgICAgIHNraXBWYWxpZGF0aW9uOiBza2lwVmFsaWRhdGlvbkZyb21IZXJlLFxuICAgICAgfSlcblxuICAgICAgYnJlYWtcbiAgICB9XG5cbiAgICBjYXNlICdhcnJheSc6IHtcbiAgICAgIGNvbnN0IHJvd3MgPSBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXVxuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShyb3dzKSkge1xuICAgICAgICBjb25zdCBwcm9taXNlcyA9IFtdXG4gICAgICAgIHJvd3MuZm9yRWFjaCgocm93LCBpKSA9PiB7XG4gICAgICAgICAgcHJvbWlzZXMucHVzaChcbiAgICAgICAgICAgIHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICAgIGRvYyxcbiAgICAgICAgICAgICAgZG9jV2l0aExvY2FsZXMsXG4gICAgICAgICAgICAgIGVycm9ycyxcbiAgICAgICAgICAgICAgZmllbGRzOiBmaWVsZC5maWVsZHMsXG4gICAgICAgICAgICAgIGdsb2JhbCxcbiAgICAgICAgICAgICAgbWVyZ2VMb2NhbGVBY3Rpb25zLFxuICAgICAgICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgICAgICAgIHBhdGg6IGAke3BhdGh9JHtmaWVsZC5uYW1lfS4ke2l9LmAsXG4gICAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgICAgc2libGluZ0RhdGE6IHJvdyxcbiAgICAgICAgICAgICAgc2libGluZ0RvYzogZ2V0RXhpc3RpbmdSb3dEb2Mocm93LCBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdKSxcbiAgICAgICAgICAgICAgc2libGluZ0RvY1dpdGhMb2NhbGVzOiBnZXRFeGlzdGluZ1Jvd0RvYyhyb3csIHNpYmxpbmdEb2NXaXRoTG9jYWxlc1tmaWVsZC5uYW1lXSksXG4gICAgICAgICAgICAgIHNraXBWYWxpZGF0aW9uOiBza2lwVmFsaWRhdGlvbkZyb21IZXJlLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKVxuICAgICAgICB9KVxuXG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKVxuICAgICAgfVxuXG4gICAgICBicmVha1xuICAgIH1cblxuICAgIGNhc2UgJ2Jsb2Nrcyc6IHtcbiAgICAgIGNvbnN0IHJvd3MgPSBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXVxuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShyb3dzKSkge1xuICAgICAgICBjb25zdCBwcm9taXNlcyA9IFtdXG4gICAgICAgIHJvd3MuZm9yRWFjaCgocm93LCBpKSA9PiB7XG4gICAgICAgICAgY29uc3Qgcm93U2libGluZ0RvYyA9IGdldEV4aXN0aW5nUm93RG9jKHJvdywgc2libGluZ0RvY1tmaWVsZC5uYW1lXSlcbiAgICAgICAgICBjb25zdCByb3dTaWJsaW5nRG9jV2l0aExvY2FsZXMgPSBnZXRFeGlzdGluZ1Jvd0RvYyhyb3csIHNpYmxpbmdEb2NXaXRoTG9jYWxlc1tmaWVsZC5uYW1lXSlcblxuICAgICAgICAgIGNvbnN0IGJsb2NrVHlwZVRvTWF0Y2ggPSByb3cuYmxvY2tUeXBlIHx8IHJvd1NpYmxpbmdEb2MuYmxvY2tUeXBlXG4gICAgICAgICAgY29uc3QgYmxvY2sgPSBmaWVsZC5ibG9ja3MuZmluZCgoYmxvY2tUeXBlKSA9PiBibG9ja1R5cGUuc2x1ZyA9PT0gYmxvY2tUeXBlVG9NYXRjaClcblxuICAgICAgICAgIGlmIChibG9jaykge1xuICAgICAgICAgICAgcHJvbWlzZXMucHVzaChcbiAgICAgICAgICAgICAgdHJhdmVyc2VGaWVsZHMoe1xuICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgICAgIGRvYyxcbiAgICAgICAgICAgICAgICBkb2NXaXRoTG9jYWxlcyxcbiAgICAgICAgICAgICAgICBlcnJvcnMsXG4gICAgICAgICAgICAgICAgZmllbGRzOiBibG9jay5maWVsZHMsXG4gICAgICAgICAgICAgICAgZ2xvYmFsLFxuICAgICAgICAgICAgICAgIG1lcmdlTG9jYWxlQWN0aW9ucyxcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgICAgICAgICAgcGF0aDogYCR7cGF0aH0ke2ZpZWxkLm5hbWV9LiR7aX0uYCxcbiAgICAgICAgICAgICAgICByZXEsXG4gICAgICAgICAgICAgICAgc2libGluZ0RhdGE6IHJvdyxcbiAgICAgICAgICAgICAgICBzaWJsaW5nRG9jOiByb3dTaWJsaW5nRG9jLFxuICAgICAgICAgICAgICAgIHNpYmxpbmdEb2NXaXRoTG9jYWxlczogcm93U2libGluZ0RvY1dpdGhMb2NhbGVzLFxuICAgICAgICAgICAgICAgIHNraXBWYWxpZGF0aW9uOiBza2lwVmFsaWRhdGlvbkZyb21IZXJlLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG5cbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpXG4gICAgICB9XG5cbiAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgY2FzZSAncm93JzpcbiAgICBjYXNlICdjb2xsYXBzaWJsZSc6IHtcbiAgICAgIGF3YWl0IHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgaWQsXG4gICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgIGNvbnRleHQsXG4gICAgICAgIGRhdGEsXG4gICAgICAgIGRvYyxcbiAgICAgICAgZG9jV2l0aExvY2FsZXMsXG4gICAgICAgIGVycm9ycyxcbiAgICAgICAgZmllbGRzOiBmaWVsZC5maWVsZHMsXG4gICAgICAgIGdsb2JhbCxcbiAgICAgICAgbWVyZ2VMb2NhbGVBY3Rpb25zLFxuICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgIHBhdGgsXG4gICAgICAgIHJlcSxcbiAgICAgICAgc2libGluZ0RhdGEsXG4gICAgICAgIHNpYmxpbmdEb2MsXG4gICAgICAgIHNpYmxpbmdEb2NXaXRoTG9jYWxlcyxcbiAgICAgICAgc2tpcFZhbGlkYXRpb246IHNraXBWYWxpZGF0aW9uRnJvbUhlcmUsXG4gICAgICB9KVxuXG4gICAgICBicmVha1xuICAgIH1cblxuICAgIGNhc2UgJ3RhYic6IHtcbiAgICAgIGxldCB0YWJQYXRoID0gcGF0aFxuICAgICAgbGV0IHRhYlNpYmxpbmdEYXRhID0gc2libGluZ0RhdGFcbiAgICAgIGxldCB0YWJTaWJsaW5nRG9jID0gc2libGluZ0RvY1xuICAgICAgbGV0IHRhYlNpYmxpbmdEb2NXaXRoTG9jYWxlcyA9IHNpYmxpbmdEb2NXaXRoTG9jYWxlc1xuXG4gICAgICBpZiAodGFiSGFzTmFtZShmaWVsZCkpIHtcbiAgICAgICAgdGFiUGF0aCA9IGAke3BhdGh9JHtmaWVsZC5uYW1lfS5gXG4gICAgICAgIGlmICh0eXBlb2Ygc2libGluZ0RhdGFbZmllbGQubmFtZV0gIT09ICdvYmplY3QnKSBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSA9IHt9XG4gICAgICAgIGlmICh0eXBlb2Ygc2libGluZ0RvY1tmaWVsZC5uYW1lXSAhPT0gJ29iamVjdCcpIHNpYmxpbmdEb2NbZmllbGQubmFtZV0gPSB7fVxuICAgICAgICBpZiAodHlwZW9mIHNpYmxpbmdEb2NXaXRoTG9jYWxlc1tmaWVsZC5uYW1lXSAhPT0gJ29iamVjdCcpXG4gICAgICAgICAgc2libGluZ0RvY1dpdGhMb2NhbGVzW2ZpZWxkLm5hbWVdID0ge31cblxuICAgICAgICB0YWJTaWJsaW5nRGF0YSA9IHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gICAgICAgIHRhYlNpYmxpbmdEb2MgPSBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gICAgICAgIHRhYlNpYmxpbmdEb2NXaXRoTG9jYWxlcyA9IHNpYmxpbmdEb2NXaXRoTG9jYWxlc1tmaWVsZC5uYW1lXSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICAgICAgfVxuXG4gICAgICBhd2FpdCB0cmF2ZXJzZUZpZWxkcyh7XG4gICAgICAgIGlkLFxuICAgICAgICBjb2xsZWN0aW9uLFxuICAgICAgICBjb250ZXh0LFxuICAgICAgICBkYXRhLFxuICAgICAgICBkb2MsXG4gICAgICAgIGRvY1dpdGhMb2NhbGVzLFxuICAgICAgICBlcnJvcnMsXG4gICAgICAgIGZpZWxkczogZmllbGQuZmllbGRzLFxuICAgICAgICBnbG9iYWwsXG4gICAgICAgIG1lcmdlTG9jYWxlQWN0aW9ucyxcbiAgICAgICAgb3BlcmF0aW9uLFxuICAgICAgICBwYXRoOiB0YWJQYXRoLFxuICAgICAgICByZXEsXG4gICAgICAgIHNpYmxpbmdEYXRhOiB0YWJTaWJsaW5nRGF0YSxcbiAgICAgICAgc2libGluZ0RvYzogdGFiU2libGluZ0RvYyxcbiAgICAgICAgc2libGluZ0RvY1dpdGhMb2NhbGVzOiB0YWJTaWJsaW5nRG9jV2l0aExvY2FsZXMsXG4gICAgICAgIHNraXBWYWxpZGF0aW9uOiBza2lwVmFsaWRhdGlvbkZyb21IZXJlLFxuICAgICAgfSlcblxuICAgICAgYnJlYWtcbiAgICB9XG5cbiAgICBjYXNlICd0YWJzJzoge1xuICAgICAgYXdhaXQgdHJhdmVyc2VGaWVsZHMoe1xuICAgICAgICBpZCxcbiAgICAgICAgY29sbGVjdGlvbixcbiAgICAgICAgY29udGV4dCxcbiAgICAgICAgZGF0YSxcbiAgICAgICAgZG9jLFxuICAgICAgICBkb2NXaXRoTG9jYWxlcyxcbiAgICAgICAgZXJyb3JzLFxuICAgICAgICBmaWVsZHM6IGZpZWxkLnRhYnMubWFwKCh0YWIpID0+ICh7IC4uLnRhYiwgdHlwZTogJ3RhYicgfSkpLFxuICAgICAgICBnbG9iYWwsXG4gICAgICAgIG1lcmdlTG9jYWxlQWN0aW9ucyxcbiAgICAgICAgb3BlcmF0aW9uLFxuICAgICAgICBwYXRoLFxuICAgICAgICByZXEsXG4gICAgICAgIHNpYmxpbmdEYXRhLFxuICAgICAgICBzaWJsaW5nRG9jLFxuICAgICAgICBzaWJsaW5nRG9jV2l0aExvY2FsZXMsXG4gICAgICAgIHNraXBWYWxpZGF0aW9uOiBza2lwVmFsaWRhdGlvbkZyb21IZXJlLFxuICAgICAgfSlcblxuICAgICAgYnJlYWtcbiAgICB9XG5cbiAgICBkZWZhdWx0OiB7XG4gICAgICBicmVha1xuICAgIH1cbiAgfVxufVxuIl0sIm5hbWVzIjpbInByb21pc2UiLCJpZCIsImNvbGxlY3Rpb24iLCJjb250ZXh0IiwiZGF0YSIsImRvYyIsImRvY1dpdGhMb2NhbGVzIiwiZXJyb3JzIiwiZmllbGQiLCJnbG9iYWwiLCJtZXJnZUxvY2FsZUFjdGlvbnMiLCJvcGVyYXRpb24iLCJwYXRoIiwicmVxIiwic2libGluZ0RhdGEiLCJzaWJsaW5nRG9jIiwic2libGluZ0RvY1dpdGhMb2NhbGVzIiwic2tpcFZhbGlkYXRpb24iLCJwYXNzZXNDb25kaXRpb24iLCJhZG1pbiIsImNvbmRpdGlvbiIsIkJvb2xlYW4iLCJ1c2VyIiwic2tpcFZhbGlkYXRpb25Gcm9tSGVyZSIsImRlZmF1bHRMb2NhbGUiLCJwYXlsb2FkIiwiY29uZmlnIiwibG9jYWxpemF0aW9uIiwib3BlcmF0aW9uTG9jYWxlIiwibG9jYWxlIiwiZmllbGRBZmZlY3RzRGF0YSIsImxvY2FsaXplZCIsImluY2x1ZGVzIiwidHlwZSIsIm5hbWUiLCJob29rcyIsImJlZm9yZUNoYW5nZSIsInJlZHVjZSIsInByaW9ySG9vayIsImN1cnJlbnRIb29rIiwiaG9va2VkVmFsdWUiLCJvcmlnaW5hbERvYyIsInZhbHVlIiwidW5kZWZpbmVkIiwiUHJvbWlzZSIsInJlc29sdmUiLCJ2YWxpZGF0ZSIsInZhbHVlVG9WYWxpZGF0ZSIsImpzb25FcnJvciIsIkpTT04iLCJwYXJzZSIsImUiLCJ2YWxpZGF0aW9uUmVzdWx0IiwibWVyZ2UiLCJhcnJheU1lcmdlIiwiXyIsInNvdXJjZSIsInQiLCJwdXNoIiwibWVzc2FnZSIsImxvY2FsZURhdGEiLCJsb2NhbGVDb2RlcyIsImxvY2FsaXplZFZhbHVlcyIsImZpZWxkVmFsdWUiLCJPYmplY3QiLCJrZXlzIiwibGVuZ3RoIiwiQXJyYXkiLCJpc0FycmF5IiwiY29vcmRpbmF0ZXMiLCJwYXJzZUZsb2F0IiwidHJhdmVyc2VGaWVsZHMiLCJmaWVsZHMiLCJyb3dzIiwicHJvbWlzZXMiLCJmb3JFYWNoIiwicm93IiwiaSIsImdldEV4aXN0aW5nUm93RG9jIiwiYWxsIiwicm93U2libGluZ0RvYyIsInJvd1NpYmxpbmdEb2NXaXRoTG9jYWxlcyIsImJsb2NrVHlwZVRvTWF0Y2giLCJibG9ja1R5cGUiLCJibG9jayIsImJsb2NrcyIsImZpbmQiLCJzbHVnIiwidGFiUGF0aCIsInRhYlNpYmxpbmdEYXRhIiwidGFiU2libGluZ0RvYyIsInRhYlNpYmxpbmdEb2NXaXRoTG9jYWxlcyIsInRhYkhhc05hbWUiLCJ0YWJzIiwibWFwIiwidGFiIl0sIm1hcHBpbmdzIjoiQUFBQSxvQ0FBb0M7Ozs7K0JBd0N2QkE7OztlQUFBQTs7O2tFQXZDSzt1QkFRMkI7bUNBQ1g7Z0NBQ0g7Ozs7OztBQTZCeEIsTUFBTUEsVUFBVSxPQUFPLEVBQzVCQyxFQUFFLEVBQ0ZDLFVBQVUsRUFDVkMsT0FBTyxFQUNQQyxJQUFJLEVBQ0pDLEdBQUcsRUFDSEMsY0FBYyxFQUNkQyxNQUFNLEVBQ05DLEtBQUssRUFDTEMsTUFBTSxFQUNOQyxrQkFBa0IsRUFDbEJDLFNBQVMsRUFDVEMsSUFBSSxFQUNKQyxHQUFHLEVBQ0hDLFdBQVcsRUFDWEMsVUFBVSxFQUNWQyxxQkFBcUIsRUFDckJDLGNBQWMsRUFDVDtJQUNMLE1BQU1DLGtC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
@@ -1 +1 @@
1
- {"version":3,"file":"validations.d.ts","sourceRoot":"","sources":["../../src/fields/validations.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,aAAa,EACb,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAS,EACT,WAAW,EACX,UAAU,EACV,UAAU,EACV,iBAAiB,EAEjB,aAAa,EACb,WAAW,EACX,SAAS,EACT,aAAa,EACb,WAAW,EACX,QAAQ,EACT,MAAM,gBAAgB,CAAA;AAQvB,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAuBtD,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAsB1D,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAMxD,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAqB9D,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAMtD,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAa/E,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAS9D,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAetD,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,CAO5E,CAAA;AAgCD,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAgC1D,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAKxD,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAKzD,CAAA;AA6GD,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAkB1D,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,iBAAiB,CA8DtE,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAmC1D,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CASxD,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAqBxD,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAED,wBAkBC"}
1
+ {"version":3,"file":"validations.d.ts","sourceRoot":"","sources":["../../src/fields/validations.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,aAAa,EACb,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAS,EACT,WAAW,EACX,UAAU,EACV,UAAU,EACV,iBAAiB,EAEjB,aAAa,EACb,WAAW,EACX,SAAS,EACT,aAAa,EACb,WAAW,EACX,QAAQ,EACT,MAAM,gBAAgB,CAAA;AAQvB,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAuCtD,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAsB1D,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAMxD,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAqB9D,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAMtD,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAa/E,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAS9D,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAetD,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,CAO5E,CAAA;AAgCD,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAgC1D,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAKxD,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAKzD,CAAA;AA6GD,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAkB1D,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,iBAAiB,CA8DtE,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAmC1D,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CASxD,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAqBxD,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAED,wBAkBC"}
@@ -74,19 +74,41 @@ function _interop_require_default(obj) {
74
74
  default: obj
75
75
  };
76
76
  }
77
- const text = (value, { config, maxLength: fieldMaxLength, minLength, required, t })=>{
77
+ const text = (value, { config, hasMany, maxLength: fieldMaxLength, maxRows, minLength, minRows, required, t })=>{
78
78
  let maxLength;
79
- if (typeof config?.defaultMaxTextLength === 'number') maxLength = config.defaultMaxTextLength;
80
- if (typeof fieldMaxLength === 'number') maxLength = fieldMaxLength;
81
- if (value && maxLength && value.length > maxLength) {
82
- return t('validation:shorterThanMax', {
83
- maxLength
84
- });
79
+ if (!required) {
80
+ if (!value) return true;
85
81
  }
86
- if (value && minLength && value?.length < minLength) {
87
- return t('validation:longerThanMin', {
88
- minLength
82
+ if (hasMany === true) {
83
+ const lengthValidationResult = validateArrayLength(value, {
84
+ maxRows,
85
+ minRows,
86
+ required,
87
+ t
89
88
  });
89
+ if (typeof lengthValidationResult === 'string') return lengthValidationResult;
90
+ }
91
+ if (typeof config?.defaultMaxTextLength === 'number') maxLength = config.defaultMaxTextLength;
92
+ if (typeof fieldMaxLength === 'number') maxLength = fieldMaxLength;
93
+ const stringsToValidate = Array.isArray(value) ? value : [
94
+ value
95
+ ];
96
+ for (const stringValue of stringsToValidate){
97
+ const length = stringValue?.length || 0;
98
+ if (typeof maxLength === 'number' && length > maxLength) {
99
+ return t('validation:shorterThanMax', {
100
+ label: t('value'),
101
+ maxLength,
102
+ stringValue
103
+ });
104
+ }
105
+ if (typeof minLength === 'number' && length < minLength) {
106
+ return t('validation:longerThanMin', {
107
+ label: t('value'),
108
+ minLength,
109
+ stringValue
110
+ });
111
+ }
90
112
  }
91
113
  if (required) {
92
114
  if (typeof value !== 'string' || value?.length === 0) {
@@ -458,4 +480,4 @@ const _default = {
458
480
  upload
459
481
  };
460
482
 
461
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWVsZHMvdmFsaWRhdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSaWNoVGV4dEFkYXB0ZXIgfSBmcm9tICcuLi9leHBvcnRzL3R5cGVzJ1xuaW1wb3J0IHR5cGUge1xuICBBcnJheUZpZWxkLFxuICBCbG9ja0ZpZWxkLFxuICBDaGVja2JveEZpZWxkLFxuICBDb2RlRmllbGQsXG4gIERhdGVGaWVsZCxcbiAgRW1haWxGaWVsZCxcbiAgSlNPTkZpZWxkLFxuICBOdW1iZXJGaWVsZCxcbiAgUG9pbnRGaWVsZCxcbiAgUmFkaW9GaWVsZCxcbiAgUmVsYXRpb25zaGlwRmllbGQsXG4gIFJlbGF0aW9uc2hpcFZhbHVlLFxuICBSaWNoVGV4dEZpZWxkLFxuICBTZWxlY3RGaWVsZCxcbiAgVGV4dEZpZWxkLFxuICBUZXh0YXJlYUZpZWxkLFxuICBVcGxvYWRGaWVsZCxcbiAgVmFsaWRhdGUsXG59IGZyb20gJy4vY29uZmlnL3R5cGVzJ1xuXG5pbXBvcnQgY2FuVXNlRE9NIGZyb20gJy4uL3V0aWxpdGllcy9jYW5Vc2VET00nXG5pbXBvcnQgeyBnZXRJRFR5cGUgfSBmcm9tICcuLi91dGlsaXRpZXMvZ2V0SURUeXBlJ1xuaW1wb3J0IHsgaXNOdW1iZXIgfSBmcm9tICcuLi91dGlsaXRpZXMvaXNOdW1iZXInXG5pbXBvcnQgeyBpc1ZhbGlkSUQgfSBmcm9tICcuLi91dGlsaXRpZXMvaXNWYWxpZElEJ1xuaW1wb3J0IHsgZmllbGRBZmZlY3RzRGF0YSB9IGZyb20gJy4vY29uZmlnL3R5cGVzJ1xuXG5leHBvcnQgY29uc3QgdGV4dDogVmFsaWRhdGU8dW5rbm93biwgdW5rbm93biwgVGV4dEZpZWxkPiA9IChcbiAgdmFsdWU6IHN0cmluZyxcbiAgeyBjb25maWcsIG1heExlbmd0aDogZmllbGRNYXhMZW5ndGgsIG1pbkxlbmd0aCwgcmVxdWlyZWQsIHQgfSxcbikgPT4ge1xuICBsZXQgbWF4TGVuZ3RoOiBudW1iZXJcblxuICBpZiAodHlwZW9mIGNvbmZpZz8uZGVmYXVsdE1heFRleHRMZW5ndGggPT09ICdudW1iZXInKSBtYXhMZW5ndGggPSBjb25maWcuZGVmYXVsdE1heFRleHRMZW5ndGhcbiAgaWYgKHR5cGVvZiBmaWVsZE1heExlbmd0aCA9PT0gJ251bWJlcicpIG1heExlbmd0aCA9IGZpZWxkTWF4TGVuZ3RoXG4gIGlmICh2YWx1ZSAmJiBtYXhMZW5ndGggJiYgdmFsdWUubGVuZ3RoID4gbWF4TGVuZ3RoKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246c2hvcnRlclRoYW5NYXgnLCB7IG1heExlbmd0aCB9KVxuICB9XG5cbiAgaWYgKHZhbHVlICYmIG1pbkxlbmd0aCAmJiB2YWx1ZT8ubGVuZ3RoIDwgbWluTGVuZ3RoKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246bG9uZ2VyVGhhbk1pbicsIHsgbWluTGVuZ3RoIH0pXG4gIH1cblxuICBpZiAocmVxdWlyZWQpIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJyB8fCB2YWx1ZT8ubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlZCcpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IHBhc3N3b3JkOiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBUZXh0RmllbGQ+ID0gKFxuICB2YWx1ZTogc3RyaW5nLFxuICB7IGNvbmZpZywgbWF4TGVuZ3RoOiBmaWVsZE1heExlbmd0aCwgbWluTGVuZ3RoLCBwYXlsb2FkLCByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIGxldCBtYXhMZW5ndGg6IG51bWJlclxuXG4gIGlmICh0eXBlb2YgY29uZmlnPy5kZWZhdWx0TWF4VGV4dExlbmd0aCA9PT0gJ251bWJlcicpIG1heExlbmd0aCA9IGNvbmZpZy5kZWZhdWx0TWF4VGV4dExlbmd0aFxuICBpZiAodHlwZW9mIGZpZWxkTWF4TGVuZ3RoID09PSAnbnVtYmVyJykgbWF4TGVuZ3RoID0gZmllbGRNYXhMZW5ndGhcblxuICBpZiAodmFsdWUgJiYgbWF4TGVuZ3RoICYmIHZhbHVlLmxlbmd0aCA+IG1heExlbmd0aCkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnNob3J0ZXJUaGFuTWF4JywgeyBtYXhMZW5ndGggfSlcbiAgfVxuXG4gIGlmICh2YWx1ZSAmJiBtaW5MZW5ndGggJiYgdmFsdWUubGVuZ3RoIDwgbWluTGVuZ3RoKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246bG9uZ2VyVGhhbk1pbicsIHsgbWluTGVuZ3RoIH0pXG4gIH1cblxuICBpZiAocmVxdWlyZWQgJiYgIXZhbHVlKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246cmVxdWlyZWQnKVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IGVtYWlsOiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBFbWFpbEZpZWxkPiA9ICh2YWx1ZTogc3RyaW5nLCB7IHJlcXVpcmVkLCB0IH0pID0+IHtcbiAgaWYgKCh2YWx1ZSAmJiAhL1xcU1teXFxzQF0qQFxcUytcXC5cXFMrLy50ZXN0KHZhbHVlKSkgfHwgKCF2YWx1ZSAmJiByZXF1aXJlZCkpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjplbWFpbEFkZHJlc3MnKVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IHRleHRhcmVhOiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBUZXh0YXJlYUZpZWxkPiA9IChcbiAgdmFsdWU6IHN0cmluZyxcbiAgeyBjb25maWcsIG1heExlbmd0aDogZmllbGRNYXhMZW5ndGgsIG1pbkxlbmd0aCwgcGF5bG9hZCwgcmVxdWlyZWQsIHQgfSxcbikgPT4ge1xuICBsZXQgbWF4TGVuZ3RoOiBudW1iZXJcblxuICBpZiAodHlwZW9mIGNvbmZpZz8uZGVmYXVsdE1heFRleHRMZW5ndGggPT09ICdudW1iZXInKSBtYXhMZW5ndGggPSBjb25maWcuZGVmYXVsdE1heFRleHRMZW5ndGhcbiAgaWYgKHR5cGVvZiBmaWVsZE1heExlbmd0aCA9PT0gJ251bWJlcicpIG1heExlbmd0aCA9IGZpZWxkTWF4TGVuZ3RoXG4gIGlmICh2YWx1ZSAmJiBtYXhMZW5ndGggJiYgdmFsdWUubGVuZ3RoID4gbWF4TGVuZ3RoKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246c2hvcnRlclRoYW5NYXgnLCB7IG1heExlbmd0aCB9KVxuICB9XG5cbiAgaWYgKHZhbHVlICYmIG1pbkxlbmd0aCAmJiB2YWx1ZS5sZW5ndGggPCBtaW5MZW5ndGgpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpsb25nZXJUaGFuTWluJywgeyBtaW5MZW5ndGggfSlcbiAgfVxuXG4gIGlmIChyZXF1aXJlZCAmJiAhdmFsdWUpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlZCcpXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgY29kZTogVmFsaWRhdGU8dW5rbm93biwgdW5rbm93biwgQ29kZUZpZWxkPiA9ICh2YWx1ZTogc3RyaW5nLCB7IHJlcXVpcmVkLCB0IH0pID0+IHtcbiAgaWYgKHJlcXVpcmVkICYmIHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlZCcpXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QganNvbjogVmFsaWRhdGU8dW5rbm93biwgdW5rbm93biwgSlNPTkZpZWxkICYgeyBqc29uRXJyb3I/OiBzdHJpbmcgfT4gPSAoXG4gIHZhbHVlOiBzdHJpbmcsXG4gIHsganNvbkVycm9yLCByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIGlmIChyZXF1aXJlZCAmJiAhdmFsdWUpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlZCcpXG4gIH1cblxuICBpZiAoanNvbkVycm9yICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjppbnZhbGlkSW5wdXQnKVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IGNoZWNrYm94OiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBDaGVja2JveEZpZWxkPiA9IChcbiAgdmFsdWU6IGJvb2xlYW4sXG4gIHsgcmVxdWlyZWQsIHQgfSxcbikgPT4ge1xuICBpZiAoKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSAhPT0gJ2Jvb2xlYW4nKSB8fCAocmVxdWlyZWQgJiYgdHlwZW9mIHZhbHVlICE9PSAnYm9vbGVhbicpKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246dHJ1ZU9yRmFsc2UnKVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IGRhdGU6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIERhdGVGaWVsZD4gPSAodmFsdWUsIHsgcmVxdWlyZWQsIHQgfSkgPT4ge1xuICBpZiAodmFsdWUgJiYgIWlzTmFOKERhdGUucGFyc2UodmFsdWUudG9TdHJpbmcoKSkpKSB7XG4gICAgLyogZXNsaW50LWRpc2FibGUtbGluZSAqL1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICBpZiAodmFsdWUpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpub3RWYWxpZERhdGUnLCB7IHZhbHVlIH0pXG4gIH1cblxuICBpZiAocmVxdWlyZWQpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlZCcpXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgcmljaFRleHQ6IFZhbGlkYXRlPG9iamVjdCwgdW5rbm93biwgUmljaFRleHRGaWVsZCwgUmljaFRleHRGaWVsZD4gPSBhc3luYyAoXG4gIHZhbHVlLFxuICBvcHRpb25zLFxuKSA9PiB7XG4gIGNvbnN0IGVkaXRvcjogUmljaFRleHRBZGFwdGVyID0gb3B0aW9ucz8uZWRpdG9yXG5cbiAgcmV0dXJuIGF3YWl0IGVkaXRvci52YWxpZGF0ZSh2YWx1ZSwgb3B0aW9ucylcbn1cblxuY29uc3QgdmFsaWRhdGVBcnJheUxlbmd0aDogYW55ID0gKFxuICB2YWx1ZSxcbiAgb3B0aW9uczoge1xuICAgIG1heFJvd3M/OiBudW1iZXJcbiAgICBtaW5Sb3dzPzogbnVtYmVyXG4gICAgcmVxdWlyZWQ/OiBib29sZWFuXG4gICAgdDogKGtleTogc3RyaW5nLCBvcHRpb25zPzogeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfCBzdHJpbmcgfSkgPT4gc3RyaW5nXG4gIH0sXG4pID0+IHtcbiAgY29uc3QgeyBtYXhSb3dzLCBtaW5Sb3dzLCByZXF1aXJlZCwgdCB9ID0gb3B0aW9uc1xuXG4gIGNvbnN0IGFycmF5TGVuZ3RoID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZS5sZW5ndGggOiAwXG5cbiAgaWYgKCFyZXF1aXJlZCAmJiBhcnJheUxlbmd0aCA9PT0gMCkgcmV0dXJuIHRydWVcblxuICBpZiAobWluUm93cyAmJiBhcnJheUxlbmd0aCA8IG1pblJvd3MpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlc0F0TGVhc3QnLCB7IGNvdW50OiBtaW5Sb3dzLCBsYWJlbDogdCgncm93cycpIH0pXG4gIH1cblxuICBpZiAobWF4Um93cyAmJiBhcnJheUxlbmd0aCA+IG1heFJvd3MpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlc05vTW9yZVRoYW4nLCB7IGNvdW50OiBtYXhSb3dzLCBsYWJlbDogdCgncm93cycpIH0pXG4gIH1cblxuICBpZiAocmVxdWlyZWQgJiYgIWFycmF5TGVuZ3RoKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246cmVxdWlyZXNBdExlYXN0JywgeyBjb3VudDogMSwgbGFiZWw6IHQoJ3JvdycpIH0pXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgbnVtYmVyOiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBOdW1iZXJGaWVsZD4gPSAoXG4gIHZhbHVlOiBudW1iZXIgfCBudW1iZXJbXSxcbiAgeyBoYXNNYW55LCBtYXgsIG1heFJvd3MsIG1pbiwgbWluUm93cywgcmVxdWlyZWQsIHQgfSxcbikgPT4ge1xuICBpZiAoaGFzTWFueSA9PT0gdHJ1ZSkge1xuICAgIGNvbnN0IGxlbmd0aFZhbGlkYXRpb25SZXN1bHQgPSB2YWxpZGF0ZUFycmF5TGVuZ3RoKHZhbHVlLCB7IG1heFJvd3MsIG1pblJvd3MsIHJlcXVpcmVkLCB0IH0pXG4gICAgaWYgKHR5cGVvZiBsZW5ndGhWYWxpZGF0aW9uUmVzdWx0ID09PSAnc3RyaW5nJykgcmV0dXJuIGxlbmd0aFZhbGlkYXRpb25SZXN1bHRcbiAgfVxuXG4gIGlmICghdmFsdWUgJiYgIWlzTnVtYmVyKHZhbHVlKSkge1xuICAgIC8vIGlmIG5vIHZhbHVlIGlzIHByZXNlbnQsIHZhbGlkYXRlIGJhc2VkIG9uIHJlcXVpcmVkXG4gICAgaWYgKHJlcXVpcmVkKSByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlZCcpXG4gICAgaWYgKCFyZXF1aXJlZCkgcmV0dXJuIHRydWVcbiAgfVxuXG4gIGNvbnN0IG51bWJlcnNUb1ZhbGlkYXRlOiBudW1iZXJbXSA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdXG5cbiAgZm9yIChjb25zdCBudW1iZXIgb2YgbnVtYmVyc1RvVmFsaWRhdGUpIHtcbiAgICBpZiAoIWlzTnVtYmVyKG51bWJlcikpIHJldHVybiB0KCd2YWxpZGF0aW9uOmVudGVyTnVtYmVyJylcblxuICAgIGNvbnN0IG51bWJlclZhbHVlID0gcGFyc2VGbG9hdChudW1iZXIgYXMgdW5rbm93biBhcyBzdHJpbmcpXG5cbiAgICBpZiAodHlwZW9mIG1heCA9PT0gJ251bWJlcicgJiYgbnVtYmVyVmFsdWUgPiBtYXgpIHtcbiAgICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOmdyZWF0ZXJUaGFuTWF4JywgeyBsYWJlbDogdCgndmFsdWUnKSwgbWF4LCB2YWx1ZSB9KVxuICAgIH1cblxuICAgIGlmICh0eXBlb2YgbWluID09PSAnbnVtYmVyJyAmJiBudW1iZXJWYWx1ZSA8IG1pbikge1xuICAgICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246bGVzc1RoYW5NaW4nLCB7IGxhYmVsOiB0KCd2YWx1ZScpLCBtaW4sIHZhbHVlIH0pXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IGFycmF5OiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBBcnJheUZpZWxkPiA9IChcbiAgdmFsdWUsXG4gIHsgbWF4Um93cywgbWluUm93cywgcmVxdWlyZWQsIHQgfSxcbikgPT4ge1xuICByZXR1cm4gdmFsaWRhdGVBcnJheUxlbmd0aCh2YWx1ZSwgeyBtYXhSb3dzLCBtaW5Sb3dzLCByZXF1aXJlZCwgdCB9KVxufVxuXG5leHBvcnQgY29uc3QgYmxvY2tzOiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBCbG9ja0ZpZWxkPiA9IChcbiAgdmFsdWUsXG4gIHsgbWF4Um93cywgbWluUm93cywgcmVxdWlyZWQsIHQgfSxcbikgPT4ge1xuICByZXR1cm4gdmFsaWRhdGVBcnJheUxlbmd0aCh2YWx1ZSwgeyBtYXhSb3dzLCBtaW5Sb3dzLCByZXF1aXJlZCwgdCB9KVxufVxuXG5jb25zdCB2YWxpZGF0ZUZpbHRlck9wdGlvbnM6IFZhbGlkYXRlID0gYXN5bmMgKFxuICB2YWx1ZSxcbiAgeyBpZCwgZGF0YSwgZmlsdGVyT3B0aW9ucywgcGF5bG9hZCwgcmVsYXRpb25UbywgcmVxLCBzaWJsaW5nRGF0YSwgdCwgdXNlciB9LFxuKSA9PiB7XG4gIGlmICghY2FuVXNlRE9NICYmIHR5cGVvZiBmaWx0ZXJPcHRpb25zICE9PSAndW5kZWZpbmVkJyAmJiB2YWx1ZSkge1xuICAgIGNvbnN0IG9wdGlvbnM6IHtcbiAgICAgIFtjb2xsZWN0aW9uOiBzdHJpbmddOiAobnVtYmVyIHwgc3RyaW5nKVtdXG4gICAgfSA9IHt9XG5cbiAgICBjb25zdCBmYWxzZUNvbGxlY3Rpb25zOiBzdHJpbmdbXSA9IFtdXG4gICAgY29uc3QgY29sbGVjdGlvbnMgPSB0eXBlb2YgcmVsYXRpb25UbyA9PT0gJ3N0cmluZycgPyBbcmVsYXRpb25Ub10gOiByZWxhdGlvblRvXG4gICAgY29uc3QgdmFsdWVzID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV1cblxuICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgY29sbGVjdGlvbnMubWFwKGFzeW5jIChjb2xsZWN0aW9uKSA9PiB7XG4gICAgICAgIGxldCBvcHRpb25GaWx0ZXIgPVxuICAgICAgICAgIHR5cGVvZiBmaWx0ZXJPcHRpb25zID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgICA/IGF3YWl0IGZpbHRlck9wdGlvbnMoe1xuICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICAgICAgcmVsYXRpb25UbzogY29sbGVjdGlvbixcbiAgICAgICAgICAgICAgICBzaWJsaW5nRGF0YSxcbiAgICAgICAgICAgICAgICB1c2VyLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgOiBmaWx0ZXJPcHRpb25zXG5cbiAgICAgICAgaWYgKG9wdGlvbkZpbHRlciA9PT0gdHJ1ZSkge1xuICAgICAgICAgIG9wdGlvbkZpbHRlciA9IG51bGxcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHZhbHVlSURzOiAobnVtYmVyIHwgc3RyaW5nKVtdID0gW11cblxuICAgICAgICB2YWx1ZXMuZm9yRWFjaCgodmFsKSA9PiB7XG4gICAgICAgICAgaWYgKHR5cGVvZiB2YWwgPT09ICdvYmplY3QnICYmIHZhbD8udmFsdWUpIHtcbiAgICAgICAgICAgIHZhbHVlSURzLnB1c2godmFsLnZhbHVlKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh0eXBlb2YgdmFsID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgdmFsID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgdmFsdWVJRHMucHVzaCh2YWwpXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuXG4gICAgICAgIGlmICh2YWx1ZUlEcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgY29uc3QgZmluZFdoZXJlID0ge1xuICAgICAgICAgICAgYW5kOiBbeyBpZDogeyBpbjogdmFsdWVJRHMgfSB9XSxcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAob3B0aW9uRmlsdGVyKSBmaW5kV2hlcmUuYW5kLnB1c2gob3B0aW9uRmlsdGVyKVxuXG4gICAgICAgICAgaWYgKG9wdGlvbkZpbHRlciA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGZhbHNlQ29sbGVjdGlvbnMucHVzaChvcHRpb25GaWx0ZXIpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcGF5bG9hZC5maW5kKHtcbiAgICAgICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgICAgICBkZXB0aDogMCxcbiAgICAgICAgICAgIGxpbWl0OiAwLFxuICAgICAgICAgICAgcGFnaW5hdGlvbjogZmFsc2UsXG4gICAgICAgICAgICByZXEsXG4gICAgICAgICAgICB3aGVyZTogZmluZFdoZXJlLFxuICAgICAgICAgIH0pXG5cbiAgICAgICAgICBvcHRpb25zW2NvbGxlY3Rpb25dID0gcmVzdWx0LmRvY3MubWFwKChkb2MpID0+IGRvYy5pZClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvcHRpb25zW2NvbGxlY3Rpb25dID0gW11cbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgKVxuXG4gICAgY29uc3QgaW52YWxpZFJlbGF0aW9uc2hpcHMgPSB2YWx1ZXMuZmlsdGVyKCh2YWwpID0+IHtcbiAgICAgIGxldCBjb2xsZWN0aW9uOiBzdHJpbmdcbiAgICAgIGxldCByZXF1ZXN0ZWRJRDogbnVtYmVyIHwgc3RyaW5nXG5cbiAgICAgIGlmICh0eXBlb2YgcmVsYXRpb25UbyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgY29sbGVjdGlvbiA9IHJlbGF0aW9uVG9cblxuICAgICAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHZhbCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICByZXF1ZXN0ZWRJRCA9IHZhbFxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHJlbGF0aW9uVG8pICYmIHR5cGVvZiB2YWwgPT09ICdvYmplY3QnICYmIHZhbD8ucmVsYXRpb25Ubykge1xuICAgICAgICBjb2xsZWN0aW9uID0gdmFsLnJlbGF0aW9uVG9cbiAgICAgICAgcmVxdWVzdGVkSUQgPSB2YWwudmFsdWVcbiAgICAgIH1cblxuICAgICAgaWYgKGZhbHNlQ29sbGVjdGlvbnMuZmluZCgoc2x1ZykgPT4gcmVsYXRpb25UbyA9PT0gc2x1ZykpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG9wdGlvbnNbY29sbGVjdGlvbl0uaW5kZXhPZihyZXF1ZXN0ZWRJRCkgPT09IC0xXG4gICAgfSlcblxuICAgIGlmIChpbnZhbGlkUmVsYXRpb25zaGlwcy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gaW52YWxpZFJlbGF0aW9uc2hpcHMucmVkdWNlKChlcnIsIGludmFsaWQsIGkpID0+IHtcbiAgICAgICAgcmV0dXJuIGAke2Vycn0gJHtKU09OLnN0cmluZ2lmeShpbnZhbGlkKX0ke1xuICAgICAgICAgIGludmFsaWRSZWxhdGlvbnNoaXBzLmxlbmd0aCA9PT0gaSArIDEgPyAnLCcgOiAnJ1xuICAgICAgICB9IGBcbiAgICAgIH0sIHQoJ3ZhbGlkYXRpb246aW52YWxpZFNlbGVjdGlvbnMnKSkgYXMgc3RyaW5nXG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmV4cG9ydCBjb25zdCB1cGxvYWQ6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIFVwbG9hZEZpZWxkPiA9ICh2YWx1ZTogc3RyaW5nLCBvcHRpb25zKSA9PiB7XG4gIGlmICghdmFsdWUgJiYgb3B0aW9ucy5yZXF1aXJlZCkge1xuICAgIHJldHVybiBvcHRpb25zLnQoJ3ZhbGlkYXRpb246cmVxdWlyZWQnKVxuICB9XG5cbiAgaWYgKCFjYW5Vc2VET00gJiYgdHlwZW9mIHZhbHVlICE9PSAndW5kZWZpbmVkJyAmJiB2YWx1ZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IGlkRmllbGQgPSBvcHRpb25zPy5jb25maWc/LmNvbGxlY3Rpb25zXG4gICAgICA/LmZpbmQoKGNvbGxlY3Rpb24pID0+IGNvbGxlY3Rpb24uc2x1ZyA9PT0gb3B0aW9ucy5yZWxhdGlvblRvKVxuICAgICAgPy5maWVsZHM/LmZpbmQoKGZpZWxkKSA9PiBmaWVsZEFmZmVjdHNEYXRhKGZpZWxkKSAmJiBmaWVsZC5uYW1lID09PSAnaWQnKVxuXG4gICAgY29uc3QgdHlwZSA9IGdldElEVHlwZShpZEZpZWxkLCBvcHRpb25zPy5wYXlsb2FkPy5kYj8uZGVmYXVsdElEVHlwZSlcblxuICAgIGlmICghaXNWYWxpZElEKHZhbHVlLCB0eXBlKSkge1xuICAgICAgcmV0dXJuIG9wdGlvbnMudCgndmFsaWRhdGlvbjp2YWxpZFVwbG9hZElEJylcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdmFsaWRhdGVGaWx0ZXJPcHRpb25zKHZhbHVlLCBvcHRpb25zKVxufVxuXG5leHBvcnQgY29uc3QgcmVsYXRpb25zaGlwOiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBSZWxhdGlvbnNoaXBGaWVsZD4gPSBhc3luYyAoXG4gIHZhbHVlOiBSZWxhdGlvbnNoaXBWYWx1ZSxcbiAgb3B0aW9ucyxcbikgPT4ge1xuICBjb25zdCB7IGNvbmZpZywgbWF4Um93cywgbWluUm93cywgcGF5bG9hZCwgcmVsYXRpb25UbywgcmVxdWlyZWQsIHQgfSA9IG9wdGlvbnNcblxuICBpZiAoKCF2YWx1ZSB8fCAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID09PSAwKSkgJiYgcmVxdWlyZWQpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlZCcpXG4gIH1cblxuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID4gMCkge1xuICAgIGlmIChtaW5Sb3dzICYmIHZhbHVlLmxlbmd0aCA8IG1pblJvd3MpIHtcbiAgICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOmxlc3NUaGFuTWluJywgeyBsYWJlbDogdCgncm93cycpLCBtaW46IG1pblJvd3MsIHZhbHVlOiB2YWx1ZS5sZW5ndGggfSlcbiAgICB9XG5cbiAgICBpZiAobWF4Um93cyAmJiB2YWx1ZS5sZW5ndGggPiBtYXhSb3dzKSB7XG4gICAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpncmVhdGVyVGhhbk1heCcsIHsgbGFiZWw6IHQoJ3Jvd3MnKSwgbWF4OiBtYXhSb3dzLCB2YWx1ZTogdmFsdWUubGVuZ3RoIH0pXG4gICAgfVxuICB9XG5cbiAgaWYgKCFjYW5Vc2VET00gJiYgdHlwZW9mIHZhbHVlICE9PSAndW5kZWZpbmVkJyAmJiB2YWx1ZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHZhbHVlcyA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdXG5cbiAgICBjb25zdCBpbnZhbGlkUmVsYXRpb25zaGlwcyA9IHZhbHVlcy5maWx0ZXIoKHZhbCkgPT4ge1xuICAgICAgbGV0IGNvbGxlY3Rpb25TbHVnOiBzdHJpbmdcbiAgICAgIGxldCByZXF1ZXN0ZWRJRFxuXG4gICAgICBpZiAodHlwZW9mIHJlbGF0aW9uVG8gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNvbGxlY3Rpb25TbHVnID0gcmVsYXRpb25Ub1xuXG4gICAgICAgIC8vIGN1c3RvbSBpZFxuICAgICAgICBpZiAodmFsKSB7XG4gICAgICAgICAgcmVxdWVzdGVkSUQgPSB2YWxcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShyZWxhdGlvblRvKSAmJiB0eXBlb2YgdmFsID09PSAnb2JqZWN0JyAmJiB2YWw/LnJlbGF0aW9uVG8pIHtcbiAgICAgICAgY29sbGVjdGlvblNsdWcgPSB2YWwucmVsYXRpb25Ub1xuICAgICAgICByZXF1ZXN0ZWRJRCA9IHZhbC52YWx1ZVxuICAgICAgfVxuXG4gICAgICBpZiAocmVxdWVzdGVkSUQgPT09IG51bGwpIHJldHVybiBmYWxzZVxuXG4gICAgICBjb25zdCBpZEZpZWxkID0gY29uZmlnPy5jb2xsZWN0aW9uc1xuICAgICAgICA/LmZpbmQoKGNvbGxlY3Rpb24pID0+IGNvbGxlY3Rpb24uc2x1ZyA9PT0gY29sbGVjdGlvblNsdWcpXG4gICAgICAgID8uZmllbGRzPy5maW5kKChmaWVsZCkgPT4gZmllbGRBZmZlY3RzRGF0YShmaWVsZCkgJiYgZmllbGQubmFtZSA9PT0gJ2lkJylcblxuICAgICAgY29uc3QgdHlwZSA9IGdldElEVHlwZShpZEZpZWxkLCBwYXlsb2FkPy5kYj8uZGVmYXVsdElEVHlwZSlcblxuICAgICAgcmV0dXJuICFpc1ZhbGlkSUQocmVxdWVzdGVkSUQsIHR5cGUpXG4gICAgfSlcblxuICAgIGlmIChpbnZhbGlkUmVsYXRpb25zaGlwcy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gYFRoaXMgcmVsYXRpb25zaGlwIGZpZWxkIGhhcyB0aGUgZm9sbG93aW5nIGludmFsaWQgcmVsYXRpb25zaGlwczogJHtpbnZhbGlkUmVsYXRpb25zaGlwc1xuICAgICAgICAubWFwKChlcnIsIGludmFsaWQpID0+IHtcbiAgICAgICAgICByZXR1cm4gYCR7ZXJyfSAke0pTT04uc3RyaW5naWZ5KGludmFsaWQpfWBcbiAgICAgICAgfSlcbiAgICAgICAgLmpvaW4oJywgJyl9YFxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB2YWxpZGF0ZUZpbHRlck9wdGlvbnModmFsdWUsIG9wdGlvbnMpXG59XG5cbmV4cG9ydCBjb25zdCBzZWxlY3Q6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIFNlbGVjdEZpZWxkPiA9IChcbiAgdmFsdWUsXG4gIHsgaGFzTWFueSwgb3B0aW9ucywgcmVxdWlyZWQsIHQgfSxcbikgPT4ge1xuICBpZiAoXG4gICAgQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiZcbiAgICB2YWx1ZS5zb21lKFxuICAgICAgKGlucHV0KSA9PlxuICAgICAgICAhb3B0aW9ucy5zb21lKFxuICAgICAgICAgIChvcHRpb24pID0+IG9wdGlvbiA9PT0gaW5wdXQgfHwgKHR5cGVvZiBvcHRpb24gIT09ICdzdHJpbmcnICYmIG9wdGlvbj8udmFsdWUgPT09IGlucHV0KSxcbiAgICAgICAgKSxcbiAgICApXG4gICkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOmludmFsaWRTZWxlY3Rpb24nKVxuICB9XG5cbiAgaWYgKFxuICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiZcbiAgICAhb3B0aW9ucy5zb21lKFxuICAgICAgKG9wdGlvbikgPT4gb3B0aW9uID09PSB2YWx1ZSB8fCAodHlwZW9mIG9wdGlvbiAhPT0gJ3N0cmluZycgJiYgb3B0aW9uLnZhbHVlID09PSB2YWx1ZSksXG4gICAgKVxuICApIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjppbnZhbGlkU2VsZWN0aW9uJylcbiAgfVxuXG4gIGlmIChcbiAgICByZXF1aXJlZCAmJlxuICAgICh0eXBlb2YgdmFsdWUgPT09ICd1bmRlZmluZWQnIHx8XG4gICAgICB2YWx1ZSA9PT0gbnVsbCB8fFxuICAgICAgKGhhc01hbnkgJiYgQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgKHZhbHVlIGFzIFtdKT8ubGVuZ3RoID09PSAwKSlcbiAgKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246cmVxdWlyZWQnKVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IHJhZGlvOiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBSYWRpb0ZpZWxkPiA9ICh2YWx1ZSwgeyBvcHRpb25zLCByZXF1aXJlZCwgdCB9KSA9PiB7XG4gIGlmICh2YWx1ZSkge1xuICAgIGNvbnN0IHZhbHVlTWF0Y2hlc09wdGlvbiA9IG9wdGlvbnMuc29tZShcbiAgICAgIChvcHRpb24pID0+IG9wdGlvbiA9PT0gdmFsdWUgfHwgKHR5cGVvZiBvcHRpb24gIT09ICdzdHJpbmcnICYmIG9wdGlvbi52YWx1ZSA9PT0gdmFsdWUpLFxuICAgIClcbiAgICByZXR1cm4gdmFsdWVNYXRjaGVzT3B0aW9uIHx8IHQoJ3ZhbGlkYXRpb246aW52YWxpZFNlbGVjdGlvbicpXG4gIH1cblxuICByZXR1cm4gcmVxdWlyZWQgPyB0KCd2YWxpZGF0aW9uOnJlcXVpcmVkJykgOiB0cnVlXG59XG5cbmV4cG9ydCBjb25zdCBwb2ludDogVmFsaWRhdGU8dW5rbm93biwgdW5rbm93biwgUG9pbnRGaWVsZD4gPSAoXG4gIHZhbHVlOiBbbnVtYmVyIHwgc3RyaW5nLCBudW1iZXIgfCBzdHJpbmddID0gWycnLCAnJ10sXG4gIHsgcmVxdWlyZWQsIHQgfSxcbikgPT4ge1xuICBjb25zdCBsbmcgPSBwYXJzZUZsb2F0KFN0cmluZyh2YWx1ZVswXSkpXG4gIGNvbnN0IGxhdCA9IHBhcnNlRmxvYXQoU3RyaW5nKHZhbHVlWzFdKSlcbiAgaWYgKFxuICAgIHJlcXVpcmVkICYmXG4gICAgKCh2YWx1ZVswXSAmJiB2YWx1ZVsxXSAmJiB0eXBlb2YgbG5nICE9PSAnbnVtYmVyJyAmJiB0eXBlb2YgbGF0ICE9PSAnbnVtYmVyJykgfHxcbiAgICAgIE51bWJlci5pc05hTihsbmcpIHx8XG4gICAgICBOdW1iZXIuaXNOYU4obGF0KSB8fFxuICAgICAgKEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCAhPT0gMikpXG4gICkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVzVHdvTnVtYmVycycpXG4gIH1cblxuICBpZiAoKHZhbHVlWzFdICYmIE51bWJlci5pc05hTihsbmcpKSB8fCAodmFsdWVbMF0gJiYgTnVtYmVyLmlzTmFOKGxhdCkpKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246aW52YWxpZElucHV0JylcbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgYXJyYXksXG4gIGJsb2NrcyxcbiAgY2hlY2tib3gsXG4gIGNvZGUsXG4gIGRhdGUsXG4gIGVtYWlsLFxuICBqc29uLFxuICBudW1iZXIsXG4gIHBhc3N3b3JkLFxuICBwb2ludCxcbiAgcmFkaW8sXG4gIHJlbGF0aW9uc2hpcCxcbiAgcmljaFRleHQsXG4gIHNlbGVjdCxcbiAgdGV4dCxcbiAgdGV4dGFyZWEsXG4gIHVwbG9hZCxcbn1cbiJdLCJuYW1lcyI6WyJ0ZXh0IiwicGFzc3dvcmQiLCJlbWFpbCIsInRleHRhcmVhIiwiY29kZSIsImpzb24iLCJjaGVja2JveCIsImRhdGUiLCJyaWNoVGV4dCIsIm51bWJlciIsImFycmF5IiwiYmxvY2tzIiwidXBsb2FkIiwicmVsYXRpb25zaGlwIiwic2VsZWN0IiwicmFkaW8iLCJwb2ludCIsInZhbHVlIiwiY29uZmlnIiwibWF4TGVuZ3RoIiwiZmllbGRNYXhMZW5ndGgiLCJtaW5MZW5ndGgiLCJyZXF1aXJlZCIsInQiLCJkZWZhdWx0TWF4VGV4dExlbmd0aCIsImxlbmd0aCIsInBheWxvYWQiLCJ0ZXN0IiwidW5kZWZpbmVkIiwianNvbkVycm9yIiwiaXNOYU4iLCJEYXRlIiwicGFyc2UiLCJ0b1N0cmluZyIsIm9wdGlvbnMiLCJlZGl0b3IiLCJ2YWxpZGF0ZSIsInZhbGlkYXRlQXJyYXlMZW5ndGgiLCJtYXhSb3dzIiwibWluUm93cyIsImFycmF5TGVuZ3RoIiwiQXJyYXkiLCJpc0FycmF5IiwiY291bnQiLCJsYWJlbCIsImhhc01hbnkiLCJtYXgiLCJtaW4iLCJsZW5ndGhWYWxpZGF0aW9uUmVzdWx0IiwiaXNOdW1iZXIiLCJudW1iZXJzVG9WYWxpZGF0ZSIsIm51bWJlclZhbHVlIiwicGFyc2VGbG9hdCIsInZhbGlkYXRlRmlsdGVyT3B0aW9ucyIsImlkIiwiZGF0YSIsImZpbHRlck9wdGlvbnMiLCJyZWxhdGlvblRvIiwicmVxIiwic2libGluZ0RhdGEiLCJ1c2VyIiwiY2FuVXNlRE9NIiwiZmFsc2VDb2xsZWN0aW9ucyIsImNvbGxlY3Rpb25zIiwidmFsdWVzIiwiUHJvbWlzZSIsImFsbCIsIm1hcCIsImNvbGxlY3Rpb24iLCJvcHRpb25GaWx0ZXIiLCJ2YWx1ZUlEcyIsImZvckVhY2giLCJ2YWwiLCJwdXNoIiwiZmluZFdoZXJlIiwiYW5kIiwiaW4iLCJyZXN1bHQiLCJmaW5kIiwiZGVwdGgiLCJsaW1pdCIsInBhZ2luYXRpb24iLCJ3aGVyZSIsImRvY3MiLCJkb2MiLCJpbnZhbGlkUmVsYXRpb25zaGlwcyIsImZpbHRlciIsInJlcXVlc3RlZElEIiwic2x1ZyIsImluZGV4T2YiLCJyZWR1Y2UiLCJlcnIiLCJpbnZhbGlkIiwiaSIsIkpTT04iLCJzdHJpbmdpZnkiLCJpZEZpZWxkIiwiZmllbGRzIiwiZmllbGQiLCJmaWVsZEFmZmVjdHNEYXRhIiwibmFtZSIsInR5cGUiLCJnZXRJRFR5cGUiLCJkYiIsImRlZmF1bHRJRFR5cGUiLCJpc1ZhbGlkSUQiLCJjb2xsZWN0aW9uU2x1ZyIsImpvaW4iLCJzb21lIiwiaW5wdXQiLCJvcHRpb24iLCJ2YWx1ZU1hdGNoZXNPcHRpb24iLCJsbmciLCJTdHJpbmciLCJsYXQiLCJOdW1iZXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBNEJhQSxJQUFJO2VBQUpBOztJQXlCQUMsUUFBUTtlQUFSQTs7SUF3QkFDLEtBQUs7ZUFBTEE7O0lBUUFDLFFBQVE7ZUFBUkE7O0lBdUJBQyxJQUFJO2VBQUpBOztJQVFBQyxJQUFJO2VBQUpBOztJQWVBQyxRQUFRO2VBQVJBOztJQVdBQyxJQUFJO2VBQUpBOztJQWlCQUMsUUFBUTtlQUFSQTs7SUF1Q0FDLE1BQU07ZUFBTkE7O0lBa0NBQyxLQUFLO2VBQUxBOztJQU9BQyxNQUFNO2VBQU5BOztJQWtIQUMsTUFBTTtlQUFOQTs7SUFvQkFDLFlBQVk7ZUFBWkE7O0lBZ0VBQyxNQUFNO2VBQU5BOztJQXFDQUMsS0FBSztlQUFMQTs7SUFXQUMsS0FBSztlQUFMQTs7SUF1QmIsT0FrQkM7ZUFsQkQ7OztrRUF0ZXNCOzJCQUNJOzBCQUNEOzJCQUNDO3VCQUNPOzs7Ozs7QUFFMUIsTUFBTWhC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
483
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWVsZHMvdmFsaWRhdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSaWNoVGV4dEFkYXB0ZXIgfSBmcm9tICcuLi9leHBvcnRzL3R5cGVzJ1xuaW1wb3J0IHR5cGUge1xuICBBcnJheUZpZWxkLFxuICBCbG9ja0ZpZWxkLFxuICBDaGVja2JveEZpZWxkLFxuICBDb2RlRmllbGQsXG4gIERhdGVGaWVsZCxcbiAgRW1haWxGaWVsZCxcbiAgSlNPTkZpZWxkLFxuICBOdW1iZXJGaWVsZCxcbiAgUG9pbnRGaWVsZCxcbiAgUmFkaW9GaWVsZCxcbiAgUmVsYXRpb25zaGlwRmllbGQsXG4gIFJlbGF0aW9uc2hpcFZhbHVlLFxuICBSaWNoVGV4dEZpZWxkLFxuICBTZWxlY3RGaWVsZCxcbiAgVGV4dEZpZWxkLFxuICBUZXh0YXJlYUZpZWxkLFxuICBVcGxvYWRGaWVsZCxcbiAgVmFsaWRhdGUsXG59IGZyb20gJy4vY29uZmlnL3R5cGVzJ1xuXG5pbXBvcnQgY2FuVXNlRE9NIGZyb20gJy4uL3V0aWxpdGllcy9jYW5Vc2VET00nXG5pbXBvcnQgeyBnZXRJRFR5cGUgfSBmcm9tICcuLi91dGlsaXRpZXMvZ2V0SURUeXBlJ1xuaW1wb3J0IHsgaXNOdW1iZXIgfSBmcm9tICcuLi91dGlsaXRpZXMvaXNOdW1iZXInXG5pbXBvcnQgeyBpc1ZhbGlkSUQgfSBmcm9tICcuLi91dGlsaXRpZXMvaXNWYWxpZElEJ1xuaW1wb3J0IHsgZmllbGRBZmZlY3RzRGF0YSB9IGZyb20gJy4vY29uZmlnL3R5cGVzJ1xuXG5leHBvcnQgY29uc3QgdGV4dDogVmFsaWRhdGU8dW5rbm93biwgdW5rbm93biwgVGV4dEZpZWxkPiA9IChcbiAgdmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdLFxuICB7IGNvbmZpZywgaGFzTWFueSwgbWF4TGVuZ3RoOiBmaWVsZE1heExlbmd0aCwgbWF4Um93cywgbWluTGVuZ3RoLCBtaW5Sb3dzLCByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIGxldCBtYXhMZW5ndGg6IG51bWJlclxuXG4gIGlmICghcmVxdWlyZWQpIHtcbiAgICBpZiAoIXZhbHVlKSByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgaWYgKGhhc01hbnkgPT09IHRydWUpIHtcbiAgICBjb25zdCBsZW5ndGhWYWxpZGF0aW9uUmVzdWx0ID0gdmFsaWRhdGVBcnJheUxlbmd0aCh2YWx1ZSwgeyBtYXhSb3dzLCBtaW5Sb3dzLCByZXF1aXJlZCwgdCB9KVxuICAgIGlmICh0eXBlb2YgbGVuZ3RoVmFsaWRhdGlvblJlc3VsdCA9PT0gJ3N0cmluZycpIHJldHVybiBsZW5ndGhWYWxpZGF0aW9uUmVzdWx0XG4gIH1cblxuICBpZiAodHlwZW9mIGNvbmZpZz8uZGVmYXVsdE1heFRleHRMZW5ndGggPT09ICdudW1iZXInKSBtYXhMZW5ndGggPSBjb25maWcuZGVmYXVsdE1heFRleHRMZW5ndGhcbiAgaWYgKHR5cGVvZiBmaWVsZE1heExlbmd0aCA9PT0gJ251bWJlcicpIG1heExlbmd0aCA9IGZpZWxkTWF4TGVuZ3RoXG5cbiAgY29uc3Qgc3RyaW5nc1RvVmFsaWRhdGU6IHN0cmluZ1tdID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV1cblxuICBmb3IgKGNvbnN0IHN0cmluZ1ZhbHVlIG9mIHN0cmluZ3NUb1ZhbGlkYXRlKSB7XG4gICAgY29uc3QgbGVuZ3RoID0gc3RyaW5nVmFsdWU/Lmxlbmd0aCB8fCAwXG5cbiAgICBpZiAodHlwZW9mIG1heExlbmd0aCA9PT0gJ251bWJlcicgJiYgbGVuZ3RoID4gbWF4TGVuZ3RoKSB7XG4gICAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpzaG9ydGVyVGhhbk1heCcsIHsgbGFiZWw6IHQoJ3ZhbHVlJyksIG1heExlbmd0aCwgc3RyaW5nVmFsdWUgfSlcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIG1pbkxlbmd0aCA9PT0gJ251bWJlcicgJiYgbGVuZ3RoIDwgbWluTGVuZ3RoKSB7XG4gICAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpsb25nZXJUaGFuTWluJywgeyBsYWJlbDogdCgndmFsdWUnKSwgbWluTGVuZ3RoLCBzdHJpbmdWYWx1ZSB9KVxuICAgIH1cbiAgfVxuXG4gIGlmIChyZXF1aXJlZCkge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnIHx8IHZhbHVlPy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVkJylcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgcGFzc3dvcmQ6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIFRleHRGaWVsZD4gPSAoXG4gIHZhbHVlOiBzdHJpbmcsXG4gIHsgY29uZmlnLCBtYXhMZW5ndGg6IGZpZWxkTWF4TGVuZ3RoLCBtaW5MZW5ndGgsIHBheWxvYWQsIHJlcXVpcmVkLCB0IH0sXG4pID0+IHtcbiAgbGV0IG1heExlbmd0aDogbnVtYmVyXG5cbiAgaWYgKHR5cGVvZiBjb25maWc/LmRlZmF1bHRNYXhUZXh0TGVuZ3RoID09PSAnbnVtYmVyJykgbWF4TGVuZ3RoID0gY29uZmlnLmRlZmF1bHRNYXhUZXh0TGVuZ3RoXG4gIGlmICh0eXBlb2YgZmllbGRNYXhMZW5ndGggPT09ICdudW1iZXInKSBtYXhMZW5ndGggPSBmaWVsZE1heExlbmd0aFxuXG4gIGlmICh2YWx1ZSAmJiBtYXhMZW5ndGggJiYgdmFsdWUubGVuZ3RoID4gbWF4TGVuZ3RoKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246c2hvcnRlclRoYW5NYXgnLCB7IG1heExlbmd0aCB9KVxuICB9XG5cbiAgaWYgKHZhbHVlICYmIG1pbkxlbmd0aCAmJiB2YWx1ZS5sZW5ndGggPCBtaW5MZW5ndGgpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpsb25nZXJUaGFuTWluJywgeyBtaW5MZW5ndGggfSlcbiAgfVxuXG4gIGlmIChyZXF1aXJlZCAmJiAhdmFsdWUpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlZCcpXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgZW1haWw6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIEVtYWlsRmllbGQ+ID0gKHZhbHVlOiBzdHJpbmcsIHsgcmVxdWlyZWQsIHQgfSkgPT4ge1xuICBpZiAoKHZhbHVlICYmICEvXFxTW15cXHNAXSpAXFxTK1xcLlxcUysvLnRlc3QodmFsdWUpKSB8fCAoIXZhbHVlICYmIHJlcXVpcmVkKSkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOmVtYWlsQWRkcmVzcycpXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgdGV4dGFyZWE6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIFRleHRhcmVhRmllbGQ+ID0gKFxuICB2YWx1ZTogc3RyaW5nLFxuICB7IGNvbmZpZywgbWF4TGVuZ3RoOiBmaWVsZE1heExlbmd0aCwgbWluTGVuZ3RoLCBwYXlsb2FkLCByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIGxldCBtYXhMZW5ndGg6IG51bWJlclxuXG4gIGlmICh0eXBlb2YgY29uZmlnPy5kZWZhdWx0TWF4VGV4dExlbmd0aCA9PT0gJ251bWJlcicpIG1heExlbmd0aCA9IGNvbmZpZy5kZWZhdWx0TWF4VGV4dExlbmd0aFxuICBpZiAodHlwZW9mIGZpZWxkTWF4TGVuZ3RoID09PSAnbnVtYmVyJykgbWF4TGVuZ3RoID0gZmllbGRNYXhMZW5ndGhcbiAgaWYgKHZhbHVlICYmIG1heExlbmd0aCAmJiB2YWx1ZS5sZW5ndGggPiBtYXhMZW5ndGgpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpzaG9ydGVyVGhhbk1heCcsIHsgbWF4TGVuZ3RoIH0pXG4gIH1cblxuICBpZiAodmFsdWUgJiYgbWluTGVuZ3RoICYmIHZhbHVlLmxlbmd0aCA8IG1pbkxlbmd0aCkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOmxvbmdlclRoYW5NaW4nLCB7IG1pbkxlbmd0aCB9KVxuICB9XG5cbiAgaWYgKHJlcXVpcmVkICYmICF2YWx1ZSkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVkJylcbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmV4cG9ydCBjb25zdCBjb2RlOiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBDb2RlRmllbGQ+ID0gKHZhbHVlOiBzdHJpbmcsIHsgcmVxdWlyZWQsIHQgfSkgPT4ge1xuICBpZiAocmVxdWlyZWQgJiYgdmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVkJylcbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmV4cG9ydCBjb25zdCBqc29uOiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBKU09ORmllbGQgJiB7IGpzb25FcnJvcj86IHN0cmluZyB9PiA9IChcbiAgdmFsdWU6IHN0cmluZyxcbiAgeyBqc29uRXJyb3IsIHJlcXVpcmVkLCB0IH0sXG4pID0+IHtcbiAgaWYgKHJlcXVpcmVkICYmICF2YWx1ZSkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVkJylcbiAgfVxuXG4gIGlmIChqc29uRXJyb3IgIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOmludmFsaWRJbnB1dCcpXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgY2hlY2tib3g6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIENoZWNrYm94RmllbGQ+ID0gKFxuICB2YWx1ZTogYm9vbGVhbixcbiAgeyByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIGlmICgodmFsdWUgJiYgdHlwZW9mIHZhbHVlICE9PSAnYm9vbGVhbicpIHx8IChyZXF1aXJlZCAmJiB0eXBlb2YgdmFsdWUgIT09ICdib29sZWFuJykpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjp0cnVlT3JGYWxzZScpXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgZGF0ZTogVmFsaWRhdGU8dW5rbm93biwgdW5rbm93biwgRGF0ZUZpZWxkPiA9ICh2YWx1ZSwgeyByZXF1aXJlZCwgdCB9KSA9PiB7XG4gIGlmICh2YWx1ZSAmJiAhaXNOYU4oRGF0ZS5wYXJzZSh2YWx1ZS50b1N0cmluZygpKSkpIHtcbiAgICAvKiBlc2xpbnQtZGlzYWJsZS1saW5lICovXG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIGlmICh2YWx1ZSkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOm5vdFZhbGlkRGF0ZScsIHsgdmFsdWUgfSlcbiAgfVxuXG4gIGlmIChyZXF1aXJlZCkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVkJylcbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmV4cG9ydCBjb25zdCByaWNoVGV4dDogVmFsaWRhdGU8b2JqZWN0LCB1bmtub3duLCBSaWNoVGV4dEZpZWxkLCBSaWNoVGV4dEZpZWxkPiA9IGFzeW5jIChcbiAgdmFsdWUsXG4gIG9wdGlvbnMsXG4pID0+IHtcbiAgY29uc3QgZWRpdG9yOiBSaWNoVGV4dEFkYXB0ZXIgPSBvcHRpb25zPy5lZGl0b3JcblxuICByZXR1cm4gYXdhaXQgZWRpdG9yLnZhbGlkYXRlKHZhbHVlLCBvcHRpb25zKVxufVxuXG5jb25zdCB2YWxpZGF0ZUFycmF5TGVuZ3RoOiBhbnkgPSAoXG4gIHZhbHVlLFxuICBvcHRpb25zOiB7XG4gICAgbWF4Um93cz86IG51bWJlclxuICAgIG1pblJvd3M/OiBudW1iZXJcbiAgICByZXF1aXJlZD86IGJvb2xlYW5cbiAgICB0OiAoa2V5OiBzdHJpbmcsIG9wdGlvbnM/OiB7IFtrZXk6IHN0cmluZ106IG51bWJlciB8IHN0cmluZyB9KSA9PiBzdHJpbmdcbiAgfSxcbikgPT4ge1xuICBjb25zdCB7IG1heFJvd3MsIG1pblJvd3MsIHJlcXVpcmVkLCB0IH0gPSBvcHRpb25zXG5cbiAgY29uc3QgYXJyYXlMZW5ndGggPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlLmxlbmd0aCA6IDBcblxuICBpZiAoIXJlcXVpcmVkICYmIGFycmF5TGVuZ3RoID09PSAwKSByZXR1cm4gdHJ1ZVxuXG4gIGlmIChtaW5Sb3dzICYmIGFycmF5TGVuZ3RoIDwgbWluUm93cykge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVzQXRMZWFzdCcsIHsgY291bnQ6IG1pblJvd3MsIGxhYmVsOiB0KCdyb3dzJykgfSlcbiAgfVxuXG4gIGlmIChtYXhSb3dzICYmIGFycmF5TGVuZ3RoID4gbWF4Um93cykge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVzTm9Nb3JlVGhhbicsIHsgY291bnQ6IG1heFJvd3MsIGxhYmVsOiB0KCdyb3dzJykgfSlcbiAgfVxuXG4gIGlmIChyZXF1aXJlZCAmJiAhYXJyYXlMZW5ndGgpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlc0F0TGVhc3QnLCB7IGNvdW50OiAxLCBsYWJlbDogdCgncm93JykgfSlcbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmV4cG9ydCBjb25zdCBudW1iZXI6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIE51bWJlckZpZWxkPiA9IChcbiAgdmFsdWU6IG51bWJlciB8IG51bWJlcltdLFxuICB7IGhhc01hbnksIG1heCwgbWF4Um93cywgbWluLCBtaW5Sb3dzLCByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIGlmIChoYXNNYW55ID09PSB0cnVlKSB7XG4gICAgY29uc3QgbGVuZ3RoVmFsaWRhdGlvblJlc3VsdCA9IHZhbGlkYXRlQXJyYXlMZW5ndGgodmFsdWUsIHsgbWF4Um93cywgbWluUm93cywgcmVxdWlyZWQsIHQgfSlcbiAgICBpZiAodHlwZW9mIGxlbmd0aFZhbGlkYXRpb25SZXN1bHQgPT09ICdzdHJpbmcnKSByZXR1cm4gbGVuZ3RoVmFsaWRhdGlvblJlc3VsdFxuICB9XG5cbiAgaWYgKCF2YWx1ZSAmJiAhaXNOdW1iZXIodmFsdWUpKSB7XG4gICAgLy8gaWYgbm8gdmFsdWUgaXMgcHJlc2VudCwgdmFsaWRhdGUgYmFzZWQgb24gcmVxdWlyZWRcbiAgICBpZiAocmVxdWlyZWQpIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVkJylcbiAgICBpZiAoIXJlcXVpcmVkKSByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgY29uc3QgbnVtYmVyc1RvVmFsaWRhdGU6IG51bWJlcltdID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV1cblxuICBmb3IgKGNvbnN0IG51bWJlciBvZiBudW1iZXJzVG9WYWxpZGF0ZSkge1xuICAgIGlmICghaXNOdW1iZXIobnVtYmVyKSkgcmV0dXJuIHQoJ3ZhbGlkYXRpb246ZW50ZXJOdW1iZXInKVxuXG4gICAgY29uc3QgbnVtYmVyVmFsdWUgPSBwYXJzZUZsb2F0KG51bWJlciBhcyB1bmtub3duIGFzIHN0cmluZylcblxuICAgIGlmICh0eXBlb2YgbWF4ID09PSAnbnVtYmVyJyAmJiBudW1iZXJWYWx1ZSA+IG1heCkge1xuICAgICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246Z3JlYXRlclRoYW5NYXgnLCB7IGxhYmVsOiB0KCd2YWx1ZScpLCBtYXgsIHZhbHVlIH0pXG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBtaW4gPT09ICdudW1iZXInICYmIG51bWJlclZhbHVlIDwgbWluKSB7XG4gICAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpsZXNzVGhhbk1pbicsIHsgbGFiZWw6IHQoJ3ZhbHVlJyksIG1pbiwgdmFsdWUgfSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgYXJyYXk6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIEFycmF5RmllbGQ+ID0gKFxuICB2YWx1ZSxcbiAgeyBtYXhSb3dzLCBtaW5Sb3dzLCByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIHJldHVybiB2YWxpZGF0ZUFycmF5TGVuZ3RoKHZhbHVlLCB7IG1heFJvd3MsIG1pblJvd3MsIHJlcXVpcmVkLCB0IH0pXG59XG5cbmV4cG9ydCBjb25zdCBibG9ja3M6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIEJsb2NrRmllbGQ+ID0gKFxuICB2YWx1ZSxcbiAgeyBtYXhSb3dzLCBtaW5Sb3dzLCByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIHJldHVybiB2YWxpZGF0ZUFycmF5TGVuZ3RoKHZhbHVlLCB7IG1heFJvd3MsIG1pblJvd3MsIHJlcXVpcmVkLCB0IH0pXG59XG5cbmNvbnN0IHZhbGlkYXRlRmlsdGVyT3B0aW9uczogVmFsaWRhdGUgPSBhc3luYyAoXG4gIHZhbHVlLFxuICB7IGlkLCBkYXRhLCBmaWx0ZXJPcHRpb25zLCBwYXlsb2FkLCByZWxhdGlvblRvLCByZXEsIHNpYmxpbmdEYXRhLCB0LCB1c2VyIH0sXG4pID0+IHtcbiAgaWYgKCFjYW5Vc2VET00gJiYgdHlwZW9mIGZpbHRlck9wdGlvbnMgIT09ICd1bmRlZmluZWQnICYmIHZhbHVlKSB7XG4gICAgY29uc3Qgb3B0aW9uczoge1xuICAgICAgW2NvbGxlY3Rpb246IHN0cmluZ106IChudW1iZXIgfCBzdHJpbmcpW11cbiAgICB9ID0ge31cblxuICAgIGNvbnN0IGZhbHNlQ29sbGVjdGlvbnM6IHN0cmluZ1tdID0gW11cbiAgICBjb25zdCBjb2xsZWN0aW9ucyA9IHR5cGVvZiByZWxhdGlvblRvID09PSAnc3RyaW5nJyA/IFtyZWxhdGlvblRvXSA6IHJlbGF0aW9uVG9cbiAgICBjb25zdCB2YWx1ZXMgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXVxuXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBjb2xsZWN0aW9ucy5tYXAoYXN5bmMgKGNvbGxlY3Rpb24pID0+IHtcbiAgICAgICAgbGV0IG9wdGlvbkZpbHRlciA9XG4gICAgICAgICAgdHlwZW9mIGZpbHRlck9wdGlvbnMgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgID8gYXdhaXQgZmlsdGVyT3B0aW9ucyh7XG4gICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgICAgICByZWxhdGlvblRvOiBjb2xsZWN0aW9uLFxuICAgICAgICAgICAgICAgIHNpYmxpbmdEYXRhLFxuICAgICAgICAgICAgICAgIHVzZXIsXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICA6IGZpbHRlck9wdGlvbnNcblxuICAgICAgICBpZiAob3B0aW9uRmlsdGVyID09PSB0cnVlKSB7XG4gICAgICAgICAgb3B0aW9uRmlsdGVyID0gbnVsbFxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdmFsdWVJRHM6IChudW1iZXIgfCBzdHJpbmcpW10gPSBbXVxuXG4gICAgICAgIHZhbHVlcy5mb3JFYWNoKCh2YWwpID0+IHtcbiAgICAgICAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ29iamVjdCcgJiYgdmFsPy52YWx1ZSkge1xuICAgICAgICAgICAgdmFsdWVJRHMucHVzaCh2YWwudmFsdWUpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiB2YWwgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICB2YWx1ZUlEcy5wdXNoKHZhbClcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG5cbiAgICAgICAgaWYgKHZhbHVlSURzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBjb25zdCBmaW5kV2hlcmUgPSB7XG4gICAgICAgICAgICBhbmQ6IFt7IGlkOiB7IGluOiB2YWx1ZUlEcyB9IH1dLFxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChvcHRpb25GaWx0ZXIpIGZpbmRXaGVyZS5hbmQucHVzaChvcHRpb25GaWx0ZXIpXG5cbiAgICAgICAgICBpZiAob3B0aW9uRmlsdGVyID09PSBmYWxzZSkge1xuICAgICAgICAgICAgZmFsc2VDb2xsZWN0aW9ucy5wdXNoKG9wdGlvbkZpbHRlcilcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBwYXlsb2FkLmZpbmQoe1xuICAgICAgICAgICAgY29sbGVjdGlvbixcbiAgICAgICAgICAgIGRlcHRoOiAwLFxuICAgICAgICAgICAgbGltaXQ6IDAsXG4gICAgICAgICAgICBwYWdpbmF0aW9uOiBmYWxzZSxcbiAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgIHdoZXJlOiBmaW5kV2hlcmUsXG4gICAgICAgICAgfSlcblxuICAgICAgICAgIG9wdGlvbnNbY29sbGVjdGlvbl0gPSByZXN1bHQuZG9jcy5tYXAoKGRvYykgPT4gZG9jLmlkKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG9wdGlvbnNbY29sbGVjdGlvbl0gPSBbXVxuICAgICAgICB9XG4gICAgICB9KSxcbiAgICApXG5cbiAgICBjb25zdCBpbnZhbGlkUmVsYXRpb25zaGlwcyA9IHZhbHVlcy5maWx0ZXIoKHZhbCkgPT4ge1xuICAgICAgbGV0IGNvbGxlY3Rpb246IHN0cmluZ1xuICAgICAgbGV0IHJlcXVlc3RlZElEOiBudW1iZXIgfCBzdHJpbmdcblxuICAgICAgaWYgKHR5cGVvZiByZWxhdGlvblRvID09PSAnc3RyaW5nJykge1xuICAgICAgICBjb2xsZWN0aW9uID0gcmVsYXRpb25Ub1xuXG4gICAgICAgIGlmICh0eXBlb2YgdmFsID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgdmFsID09PSAnbnVtYmVyJykge1xuICAgICAgICAgIHJlcXVlc3RlZElEID0gdmFsXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkocmVsYXRpb25UbykgJiYgdHlwZW9mIHZhbCA9PT0gJ29iamVjdCcgJiYgdmFsPy5yZWxhdGlvblRvKSB7XG4gICAgICAgIGNvbGxlY3Rpb24gPSB2YWwucmVsYXRpb25Ub1xuICAgICAgICByZXF1ZXN0ZWRJRCA9IHZhbC52YWx1ZVxuICAgICAgfVxuXG4gICAgICBpZiAoZmFsc2VDb2xsZWN0aW9ucy5maW5kKChzbHVnKSA9PiByZWxhdGlvblRvID09PSBzbHVnKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gb3B0aW9uc1tjb2xsZWN0aW9uXS5pbmRleE9mKHJlcXVlc3RlZElEKSA9PT0gLTFcbiAgICB9KVxuXG4gICAgaWYgKGludmFsaWRSZWxhdGlvbnNoaXBzLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiBpbnZhbGlkUmVsYXRpb25zaGlwcy5yZWR1Y2UoKGVyciwgaW52YWxpZCwgaSkgPT4ge1xuICAgICAgICByZXR1cm4gYCR7ZXJyfSAke0pTT04uc3RyaW5naWZ5KGludmFsaWQpfSR7XG4gICAgICAgICAgaW52YWxpZFJlbGF0aW9uc2hpcHMubGVuZ3RoID09PSBpICsgMSA/ICcsJyA6ICcnXG4gICAgICAgIH0gYFxuICAgICAgfSwgdCgndmFsaWRhdGlvbjppbnZhbGlkU2VsZWN0aW9ucycpKSBhcyBzdHJpbmdcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IHVwbG9hZDogVmFsaWRhdGU8dW5rbm93biwgdW5rbm93biwgVXBsb2FkRmllbGQ+ID0gKHZhbHVlOiBzdHJpbmcsIG9wdGlvbnMpID0+IHtcbiAgaWYgKCF2YWx1ZSAmJiBvcHRpb25zLnJlcXVpcmVkKSB7XG4gICAgcmV0dXJuIG9wdGlvbnMudCgndmFsaWRhdGlvbjpyZXF1aXJlZCcpXG4gIH1cblxuICBpZiAoIWNhblVzZURPTSAmJiB0eXBlb2YgdmFsdWUgIT09ICd1bmRlZmluZWQnICYmIHZhbHVlICE9PSBudWxsKSB7XG4gICAgY29uc3QgaWRGaWVsZCA9IG9wdGlvbnM/LmNvbmZpZz8uY29sbGVjdGlvbnNcbiAgICAgID8uZmluZCgoY29sbGVjdGlvbikgPT4gY29sbGVjdGlvbi5zbHVnID09PSBvcHRpb25zLnJlbGF0aW9uVG8pXG4gICAgICA/LmZpZWxkcz8uZmluZCgoZmllbGQpID0+IGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpICYmIGZpZWxkLm5hbWUgPT09ICdpZCcpXG5cbiAgICBjb25zdCB0eXBlID0gZ2V0SURUeXBlKGlkRmllbGQsIG9wdGlvbnM/LnBheWxvYWQ/LmRiPy5kZWZhdWx0SURUeXBlKVxuXG4gICAgaWYgKCFpc1ZhbGlkSUQodmFsdWUsIHR5cGUpKSB7XG4gICAgICByZXR1cm4gb3B0aW9ucy50KCd2YWxpZGF0aW9uOnZhbGlkVXBsb2FkSUQnKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB2YWxpZGF0ZUZpbHRlck9wdGlvbnModmFsdWUsIG9wdGlvbnMpXG59XG5cbmV4cG9ydCBjb25zdCByZWxhdGlvbnNoaXA6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIFJlbGF0aW9uc2hpcEZpZWxkPiA9IGFzeW5jIChcbiAgdmFsdWU6IFJlbGF0aW9uc2hpcFZhbHVlLFxuICBvcHRpb25zLFxuKSA9PiB7XG4gIGNvbnN0IHsgY29uZmlnLCBtYXhSb3dzLCBtaW5Sb3dzLCBwYXlsb2FkLCByZWxhdGlvblRvLCByZXF1aXJlZCwgdCB9ID0gb3B0aW9uc1xuXG4gIGlmICgoIXZhbHVlIHx8IChBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5sZW5ndGggPT09IDApKSAmJiByZXF1aXJlZCkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVkJylcbiAgfVxuXG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5sZW5ndGggPiAwKSB7XG4gICAgaWYgKG1pblJvd3MgJiYgdmFsdWUubGVuZ3RoIDwgbWluUm93cykge1xuICAgICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246bGVzc1RoYW5NaW4nLCB7IGxhYmVsOiB0KCdyb3dzJyksIG1pbjogbWluUm93cywgdmFsdWU6IHZhbHVlLmxlbmd0aCB9KVxuICAgIH1cblxuICAgIGlmIChtYXhSb3dzICYmIHZhbHVlLmxlbmd0aCA+IG1heFJvd3MpIHtcbiAgICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOmdyZWF0ZXJUaGFuTWF4JywgeyBsYWJlbDogdCgncm93cycpLCBtYXg6IG1heFJvd3MsIHZhbHVlOiB2YWx1ZS5sZW5ndGggfSlcbiAgICB9XG4gIH1cblxuICBpZiAoIWNhblVzZURPTSAmJiB0eXBlb2YgdmFsdWUgIT09ICd1bmRlZmluZWQnICYmIHZhbHVlICE9PSBudWxsKSB7XG4gICAgY29uc3QgdmFsdWVzID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV1cblxuICAgIGNvbnN0IGludmFsaWRSZWxhdGlvbnNoaXBzID0gdmFsdWVzLmZpbHRlcigodmFsKSA9PiB7XG4gICAgICBsZXQgY29sbGVjdGlvblNsdWc6IHN0cmluZ1xuICAgICAgbGV0IHJlcXVlc3RlZElEXG5cbiAgICAgIGlmICh0eXBlb2YgcmVsYXRpb25UbyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgY29sbGVjdGlvblNsdWcgPSByZWxhdGlvblRvXG5cbiAgICAgICAgLy8gY3VzdG9tIGlkXG4gICAgICAgIGlmICh2YWwpIHtcbiAgICAgICAgICByZXF1ZXN0ZWRJRCA9IHZhbFxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHJlbGF0aW9uVG8pICYmIHR5cGVvZiB2YWwgPT09ICdvYmplY3QnICYmIHZhbD8ucmVsYXRpb25Ubykge1xuICAgICAgICBjb2xsZWN0aW9uU2x1ZyA9IHZhbC5yZWxhdGlvblRvXG4gICAgICAgIHJlcXVlc3RlZElEID0gdmFsLnZhbHVlXG4gICAgICB9XG5cbiAgICAgIGlmIChyZXF1ZXN0ZWRJRCA9PT0gbnVsbCkgcmV0dXJuIGZhbHNlXG5cbiAgICAgIGNvbnN0IGlkRmllbGQgPSBjb25maWc/LmNvbGxlY3Rpb25zXG4gICAgICAgID8uZmluZCgoY29sbGVjdGlvbikgPT4gY29sbGVjdGlvbi5zbHVnID09PSBjb2xsZWN0aW9uU2x1ZylcbiAgICAgICAgPy5maWVsZHM/LmZpbmQoKGZpZWxkKSA9PiBmaWVsZEFmZmVjdHNEYXRhKGZpZWxkKSAmJiBmaWVsZC5uYW1lID09PSAnaWQnKVxuXG4gICAgICBjb25zdCB0eXBlID0gZ2V0SURUeXBlKGlkRmllbGQsIHBheWxvYWQ/LmRiPy5kZWZhdWx0SURUeXBlKVxuXG4gICAgICByZXR1cm4gIWlzVmFsaWRJRChyZXF1ZXN0ZWRJRCwgdHlwZSlcbiAgICB9KVxuXG4gICAgaWYgKGludmFsaWRSZWxhdGlvbnNoaXBzLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiBgVGhpcyByZWxhdGlvbnNoaXAgZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgaW52YWxpZCByZWxhdGlvbnNoaXBzOiAke2ludmFsaWRSZWxhdGlvbnNoaXBzXG4gICAgICAgIC5tYXAoKGVyciwgaW52YWxpZCkgPT4ge1xuICAgICAgICAgIHJldHVybiBgJHtlcnJ9ICR7SlNPTi5zdHJpbmdpZnkoaW52YWxpZCl9YFxuICAgICAgICB9KVxuICAgICAgICAuam9pbignLCAnKX1gXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHZhbGlkYXRlRmlsdGVyT3B0aW9ucyh2YWx1ZSwgb3B0aW9ucylcbn1cblxuZXhwb3J0IGNvbnN0IHNlbGVjdDogVmFsaWRhdGU8dW5rbm93biwgdW5rbm93biwgU2VsZWN0RmllbGQ+ID0gKFxuICB2YWx1ZSxcbiAgeyBoYXNNYW55LCBvcHRpb25zLCByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIGlmIChcbiAgICBBcnJheS5pc0FycmF5KHZhbHVlKSAmJlxuICAgIHZhbHVlLnNvbWUoXG4gICAgICAoaW5wdXQpID0+XG4gICAgICAgICFvcHRpb25zLnNvbWUoXG4gICAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uID09PSBpbnB1dCB8fCAodHlwZW9mIG9wdGlvbiAhPT0gJ3N0cmluZycgJiYgb3B0aW9uPy52YWx1ZSA9PT0gaW5wdXQpLFxuICAgICAgICApLFxuICAgIClcbiAgKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246aW52YWxpZFNlbGVjdGlvbicpXG4gIH1cblxuICBpZiAoXG4gICAgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJlxuICAgICFvcHRpb25zLnNvbWUoXG4gICAgICAob3B0aW9uKSA9PiBvcHRpb24gPT09IHZhbHVlIHx8ICh0eXBlb2Ygb3B0aW9uICE9PSAnc3RyaW5nJyAmJiBvcHRpb24udmFsdWUgPT09IHZhbHVlKSxcbiAgICApXG4gICkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOmludmFsaWRTZWxlY3Rpb24nKVxuICB9XG5cbiAgaWYgKFxuICAgIHJlcXVpcmVkICYmXG4gICAgKHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcgfHxcbiAgICAgIHZhbHVlID09PSBudWxsIHx8XG4gICAgICAoaGFzTWFueSAmJiBBcnJheS5pc0FycmF5KHZhbHVlKSAmJiAodmFsdWUgYXMgW10pPy5sZW5ndGggPT09IDApKVxuICApIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlZCcpXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgcmFkaW86IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIFJhZGlvRmllbGQ+ID0gKHZhbHVlLCB7IG9wdGlvbnMsIHJlcXVpcmVkLCB0IH0pID0+IHtcbiAgaWYgKHZhbHVlKSB7XG4gICAgY29uc3QgdmFsdWVNYXRjaGVzT3B0aW9uID0gb3B0aW9ucy5zb21lKFxuICAgICAgKG9wdGlvbikgPT4gb3B0aW9uID09PSB2YWx1ZSB8fCAodHlwZW9mIG9wdGlvbiAhPT0gJ3N0cmluZycgJiYgb3B0aW9uLnZhbHVlID09PSB2YWx1ZSksXG4gICAgKVxuICAgIHJldHVybiB2YWx1ZU1hdGNoZXNPcHRpb24gfHwgdCgndmFsaWRhdGlvbjppbnZhbGlkU2VsZWN0aW9uJylcbiAgfVxuXG4gIHJldHVybiByZXF1aXJlZCA/IHQoJ3ZhbGlkYXRpb246cmVxdWlyZWQnKSA6IHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IHBvaW50OiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBQb2ludEZpZWxkPiA9IChcbiAgdmFsdWU6IFtudW1iZXIgfCBzdHJpbmcsIG51bWJlciB8IHN0cmluZ10gPSBbJycsICcnXSxcbiAgeyByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIGNvbnN0IGxuZyA9IHBhcnNlRmxvYXQoU3RyaW5nKHZhbHVlWzBdKSlcbiAgY29uc3QgbGF0ID0gcGFyc2VGbG9hdChTdHJpbmcodmFsdWVbMV0pKVxuICBpZiAoXG4gICAgcmVxdWlyZWQgJiZcbiAgICAoKHZhbHVlWzBdICYmIHZhbHVlWzFdICYmIHR5cGVvZiBsbmcgIT09ICdudW1iZXInICYmIHR5cGVvZiBsYXQgIT09ICdudW1iZXInKSB8fFxuICAgICAgTnVtYmVyLmlzTmFOKGxuZykgfHxcbiAgICAgIE51bWJlci5pc05hTihsYXQpIHx8XG4gICAgICAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoICE9PSAyKSlcbiAgKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246cmVxdWlyZXNUd29OdW1iZXJzJylcbiAgfVxuXG4gIGlmICgodmFsdWVbMV0gJiYgTnVtYmVyLmlzTmFOKGxuZykpIHx8ICh2YWx1ZVswXSAmJiBOdW1iZXIuaXNOYU4obGF0KSkpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjppbnZhbGlkSW5wdXQnKVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBhcnJheSxcbiAgYmxvY2tzLFxuICBjaGVja2JveCxcbiAgY29kZSxcbiAgZGF0ZSxcbiAgZW1haWwsXG4gIGpzb24sXG4gIG51bWJlcixcbiAgcGFzc3dvcmQsXG4gIHBvaW50LFxuICByYWRpbyxcbiAgcmVsYXRpb25zaGlwLFxuICByaWNoVGV4dCxcbiAgc2VsZWN0LFxuICB0ZXh0LFxuICB0ZXh0YXJlYSxcbiAgdXBsb2FkLFxufVxuIl0sIm5hbWVzIjpbInRleHQiLCJwYXNzd29yZCIsImVtYWlsIiwidGV4dGFyZWEiLCJjb2RlIiwianNvbiIsImNoZWNrYm94IiwiZGF0ZSIsInJpY2hUZXh0IiwibnVtYmVyIiwiYXJyYXkiLCJibG9ja3MiLCJ1cGxvYWQiLCJyZWxhdGlvbnNoaXAiLCJzZWxlY3QiLCJyYWRpbyIsInBvaW50IiwidmFsdWUiLCJjb25maWciLCJoYXNNYW55IiwibWF4TGVuZ3RoIiwiZmllbGRNYXhMZW5ndGgiLCJtYXhSb3dzIiwibWluTGVuZ3RoIiwibWluUm93cyIsInJlcXVpcmVkIiwidCIsImxlbmd0aFZhbGlkYXRpb25SZXN1bHQiLCJ2YWxpZGF0ZUFycmF5TGVuZ3RoIiwiZGVmYXVsdE1heFRleHRMZW5ndGgiLCJzdHJpbmdzVG9WYWxpZGF0ZSIsIkFycmF5IiwiaXNBcnJheSIsInN0cmluZ1ZhbHVlIiwibGVuZ3RoIiwibGFiZWwiLCJwYXlsb2FkIiwidGVzdCIsInVuZGVmaW5lZCIsImpzb25FcnJvciIsImlzTmFOIiwiRGF0ZSIsInBhcnNlIiwidG9TdHJpbmciLCJvcHRpb25zIiwiZWRpdG9yIiwidmFsaWRhdGUiLCJhcnJheUxlbmd0aCIsImNvdW50IiwibWF4IiwibWluIiwiaXNOdW1iZXIiLCJudW1iZXJzVG9WYWxpZGF0ZSIsIm51bWJlclZhbHVlIiwicGFyc2VGbG9hdCIsInZhbGlkYXRlRmlsdGVyT3B0aW9ucyIsImlkIiwiZGF0YSIsImZpbHRlck9wdGlvbnMiLCJyZWxhdGlvblRvIiwicmVxIiwic2libGluZ0RhdGEiLCJ1c2VyIiwiY2FuVXNlRE9NIiwiZmFsc2VDb2xsZWN0aW9ucyIsImNvbGxlY3Rpb25zIiwidmFsdWVzIiwiUHJvbWlzZSIsImFsbCIsIm1hcCIsImNvbGxlY3Rpb24iLCJvcHRpb25GaWx0ZXIiLCJ2YWx1ZUlEcyIsImZvckVhY2giLCJ2YWwiLCJwdXNoIiwiZmluZFdoZXJlIiwiYW5kIiwiaW4iLCJyZXN1bHQiLCJmaW5kIiwiZGVwdGgiLCJsaW1pdCIsInBhZ2luYXRpb24iLCJ3aGVyZSIsImRvY3MiLCJkb2MiLCJpbnZhbGlkUmVsYXRpb25zaGlwcyIsImZpbHRlciIsInJlcXVlc3RlZElEIiwic2x1ZyIsImluZGV4T2YiLCJyZWR1Y2UiLCJlcnIiLCJpbnZhbGlkIiwiaSIsIkpTT04iLCJzdHJpbmdpZnkiLCJpZEZpZWxkIiwiZmllbGRzIiwiZmllbGQiLCJmaWVsZEFmZmVjdHNEYXRhIiwibmFtZSIsInR5cGUiLCJnZXRJRFR5cGUiLCJkYiIsImRlZmF1bHRJRFR5cGUiLCJpc1ZhbGlkSUQiLCJjb2xsZWN0aW9uU2x1ZyIsImpvaW4iLCJzb21lIiwiaW5wdXQiLCJvcHRpb24iLCJ2YWx1ZU1hdGNoZXNPcHRpb24iLCJsbmciLCJTdHJpbmciLCJsYXQiLCJOdW1iZXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBNEJhQSxJQUFJO2VBQUpBOztJQXlDQUMsUUFBUTtlQUFSQTs7SUF3QkFDLEtBQUs7ZUFBTEE7O0lBUUFDLFFBQVE7ZUFBUkE7O0lBdUJBQyxJQUFJO2VBQUpBOztJQVFBQyxJQUFJO2VBQUpBOztJQWVBQyxRQUFRO2VBQVJBOztJQVdBQyxJQUFJO2VBQUpBOztJQWlCQUMsUUFBUTtlQUFSQTs7SUF1Q0FDLE1BQU07ZUFBTkE7O0lBa0NBQyxLQUFLO2VBQUxBOztJQU9BQyxNQUFNO2VBQU5BOztJQWtIQUMsTUFBTTtlQUFOQTs7SUFvQkFDLFlBQVk7ZUFBWkE7O0lBZ0VBQyxNQUFNO2VBQU5BOztJQXFDQUMsS0FBSztlQUFMQTs7SUFXQUMsS0FBSztlQUFMQTs7SUF1QmIsT0FrQkM7ZUFsQkQ7OztrRUF0ZnNCOzJCQUNJOzBCQUNEOzJCQUNDO3VCQUNPOzs7Ozs7QUFFMUIsTUFBTWhCLE9BQThDLENBQ3pEaUIsT0FDQSxFQUFFQyxNQUFNLEVBQUVDLE9BQU8sRUFBRUMsV0FBV0MsY0FBYyxFQUFFQyxPQUFPLEVBQUVDLFNBQVMsRUFBRUMsT0FBTyxFQUFFQyxRQUFRLEVBQUVDLENBQUMsRUFBRTtJQUV4RixJQUFJTjtJQUVKLElBQUksQ0FBQ0ssVUFBVTtRQUNiLElBQUksQ0FBQ1IsT0FBTyxPQUFPO0lBQ3JCO0lBRUEsSUFBSUUsWUFBWSxNQUFNO1FBQ3BCLE1BQU1RLHlCQUF5QkMsb0JBQW9CWCxPQUFPO1lBQUVLO1lBQVNFO1lBQVNDO1lBQVVDO1FBQUU7UUFDMUYsSUFBSSxPQUFPQywyQkFBMkIsVUFBVSxPQUFPQTtJQUN6RDtJQUVBLElBQUksT0FBT1QsUUFBUVcseUJBQXlCLFVBQVVULFlBQVlGLE9BQU9XLG9CQUFvQjtJQUM3RixJQUFJLE9BQU9SLG1CQUFtQixVQUFVRCxZQUFZQztJQUVwRCxNQUFNUyxvQkFBOEJDLE1BQU1DLE9BQU8sQ0FBQ2YsU0FBU0EsUUFBUTtRQUFDQTtLQUFNO0lBRTFFLEtBQUssTUFBTWdCLGVBQWVILGtCQUFtQjtRQUMzQyxNQUFNSSxTQUFTRCxhQUFhQyxVQUFVO1FBRXRDLElBQUksT0FBT2QsY0FBYyxZQUFZYyxTQUFTZCxXQUFXO1lBQ3ZELE9BQU9NLEVBQUUsNkJBQTZCO2dCQUFFUyxPQUFPVCxFQUFFO2dCQUFVTjtnQkFBV2E7WUFBWTtRQUNwRjtRQUVBLElBQUksT0FBT1YsY0FBYyxZQUFZVyxTQUFTWCxXQUFXO1lBQ3ZELE9BQU9HLEVBQUUsNEJBQTRCO2dCQUFFUyxPQUFPVCxFQUFFO2dCQUFVSDtnQkFBV1U7WUFBWTtRQUNuRjtJQUNGO0lBRUEsSUFBSVIsVUFBVTtRQUNaLElBQUksT0FBT1IsVUFBVSxZQUFZQSxPQUFPaUIsV0FBVyxHQUFHO1lBQ3BELE9BQU9SLEVBQUU7UUFDWDtJQUNGO0lBRUEsT0FBTztBQUNUO0FBRU8sTUFBTXpCLFdBQWtELENBQzdEZ0IsT0FDQSxFQUFFQyxNQUFNLEVBQUVFLFdBQVdDLGNBQWMsRUFBRUUsU0FBUyxFQUFFYSxPQUFPLEVBQUVYLFFBQVEsRUFBRUMsQ0FBQyxFQUFFO0lBRXRFLElBQUlOO0lBRUosSUFBSSxPQUFPRixRQUFRVyx5QkFBeUIsVUFBVVQsWUFBWUYsT0FBT1csb0JBQW9CO0lBQzdGLElBQUksT0FBT1IsbUJBQW1CLFVBQVVELFlBQVlDO0lBRXBELElBQUlKLFNBQVNHLGFBQWFILE1BQU1pQixNQUFNLEdBQUdkLFdBQVc7UUFDbEQsT0FBT00sRUFBRSw2QkFBNkI7WUFBRU47UUFBVTtJQUNwRDtJQUVBLElBQUlILFNBQVNNLGFBQWFOLE1BQU1pQixNQUFNLEdBQUdYLFdBQVc7UUFDbEQsT0FBT0csRUFBRSw0QkFBNEI7WUFBRUg7UUFBVTtJQUNuRDtJQUVBLElBQUlFLFlBQVksQ0FBQ1IsT0FBTztRQUN0QixPQUFPUyxFQUFFO0lBQ1g7SUFFQSxPQUFPO0FBQ1Q7QUFFTyxNQUFNeEIsUUFBZ0QsQ0FBQ2UsT0FBZSxFQUFFUSxRQUFRLEVBQUVDLENBQUMsRUFBRTtJQUMxRixJQUFJLEFBQUNULFNBQVMsQ0FBQyxxQkFBcUJvQixJQUFJLENBQUNwQixVQUFZLENBQUNBLFNBQVNRLFVBQVc7UUFDeEUsT0FBT0MsRUFBRTtJQUNYO0lBRUEsT0FBTztBQUNUO0FBRU8sTUFBTXZCLFdBQXNELENBQ2pFYyxPQUNBLEVBQUVDLE1BQU0sRUFBRUUsV0FBV0MsY0FBYyxFQUFFRSxTQUFTLEVBQUVhLE9BQU8sRUFBRVgsUUFBUSxFQUFFQyxDQUFDLEVBQUU7SUFFdEUsSUFBSU47SUFFSixJQUFJLE9BQU9GLFFBQVFXLHlCQUF5QixVQUFVVCxZQUFZRixPQUFPVyxvQkFBb0I7SUFDN0YsSUFBSSxPQUFPUixtQkFBbUIsVUFBVUQsWUFBWUM7SUFDcEQsSUFBSUosU0FBU0csYUFBYUgsTUFBTWlCLE1BQU0sR0FBR2QsV0FBVztRQUNsRCxPQUFPTSxFQUFFLDZCQUE2QjtZQUFFTjtRQUFVO0lBQ3BEO0lBRUEsSUFBSUgsU0FBU00sYUFBYU4sTUFBTWlCLE1BQU0sR0FBR1gsV0FBVztRQUNsRCxPQUFPRyxFQUFFLDRCQUE0QjtZQUFFSDtRQUFVO0lBQ25EO0lBRUEsSUFBSUUsWUFBWSxDQUFDUixPQUFPO1FBQ3RCLE9BQU9TLEVBQUU7SUFDWDtJQUVBLE9BQU87QUFDVDtBQUVPLE1BQU10QixPQUE4QyxDQUFDYSxPQUFlLEVBQUVRLFFBQVEsRUFBRUMsQ0FBQyxFQUFFO0lBQ3hGLElBQUlELFlBQVlSLFVBQVVxQixXQUFXO1FBQ25DLE9BQU9aLEVBQUU7SUFDWDtJQUVBLE9BQU87QUFDVDtBQUVPLE1BQU1yQixPQUF1RSxDQUNsRlksT0FDQSxFQUFFc0IsU0FBUyxFQUFFZCxRQUFRLEVBQUVDLENBQUMsRUFBRTtJQUUxQixJQUFJRCxZQUFZLENBQUNSLE9BQU87UUFDdEIsT0FBT1MsRUFBRTtJQUNYO0lBRUEsSUFBSWEsY0FBY0QsV0FBVztRQUMzQixPQUFPWixFQUFFO0lBQ1g7SUFFQSxPQUFPO0FBQ1Q7QUFFTyxNQUFNcEIsV0FBc0QsQ0FDakVXLE9BQ0EsRUFBRVEsUUFBUSxFQUFFQyxDQUFDLEVBQUU7SUFFZixJQUFJLEFBQUNULFNBQVMsT0FBT0EsVUFBVSxhQUFlUSxZQUFZLE9BQU9SLFVBQVUsV0FBWTtRQUNyRixPQUFPUyxFQUFFO0lBQ1g7SUFFQSxPQUFPO0FBQ1Q7QUFFTyxNQUFNbkIsT0FBOEMsQ0FBQ1UsT0FBTyxFQUFFUSxRQUFRLEVBQUVDLENBQUMsRUFBRTtJQUNoRixJQUFJVCxTQUFTLENBQUN1QixNQUFNQyxLQUFLQyxLQUFLLENBQUN6QixNQUFNMEIsUUFBUSxNQUFNO1FBQ2pELHVCQUF1QixHQUN2QixPQUFPO0lBQ1Q7SUFFQSxJQUFJMUIsT0FBTztRQUNULE9BQU9TLEVBQUUsMkJBQTJCO1lBQUVUO1FBQU07SUFDOUM7SUFFQSxJQUFJUSxVQUFVO1FBQ1osT0FBT0MsRUFBRTtJQUNYO0lBRUEsT0FBTztBQUNUO0FBRU8sTUFBTWxCLFdBQW9FLE9BQy9FUyxPQUNBMkI7SUFFQSxNQUFNQyxTQUEwQkQsU0FBU0M7SUFFekMsT0FBTyxNQUFNQSxPQUFPQyxRQUFRLENBQUM3QixPQUFPMkI7QUFDdEM7QUFFQSxNQUFNaEIsc0JBQTJCLENBQy9CWCxPQUNBMkI7SUFPQSxNQUFNLEVBQUV0QixPQUFPLEVBQUVFLE9BQU8sRUFBRUMsUUFBUSxFQUFFQyxDQUFDLEVBQUUsR0FBR2tCO0lBRTFDLE1BQU1HLGNBQWNoQixNQUFNQyxPQUFPLENBQUNmLFNBQVNBLE1BQU1pQixNQUFNLEdBQUc7SUFFMUQsSUFBSSxDQUFDVCxZQUFZc0IsZ0JBQWdCLEdBQUcsT0FBTztJQUUzQyxJQUFJdkIsV0FBV3VCLGNBQWN2QixTQUFTO1FBQ3BDLE9BQU9FLEVBQUUsOEJBQThCO1lBQUVzQixPQUFPeEI7WUFBU1csT0FBT1QsRUFBRTtRQUFRO0lBQzVFO0lBRUEsSUFBSUosV0FBV3lCLGNBQWN6QixTQUFTO1FBQ3BDLE9BQU9JLEVBQUUsaUNBQWlDO1lBQUVzQixPQUFPMUI7WUFBU2EsT0FBT1QsRUFBRTtRQUFRO0lBQy9FO0lBRUEsSUFBSUQsWUFBWSxDQUFDc0IsYUFBYTtRQUM1QixPQUFPckIsRUFBRSw4QkFBOEI7WUFBRXNCLE9BQU87WUFBR2IsT0FBT1QsRUFBRTtRQUFPO0lBQ3JFO0lBRUEsT0FBTztBQUNUO0FBRU8sTUFBTWpCLFNBQWtELENBQzdEUSxPQUNBLEVBQUVFLE9BQU8sRUFBRThCLEdBQUcsRUFBRTNCLE9BQU8sRUFBRTRCLEdBQUcsRUFBRTFCLE9BQU8sRUFBRUMsUUFBUSxFQUFFQyxDQUFDLEVBQUU7SUFFcEQsSUFBSVAsWUFBWSxNQUFNO1FBQ3BCLE1BQU1RLHlCQUF5QkMsb0JBQW9CWCxPQUFPO1lBQUVLO1lBQVNFO1lBQVNDO1lBQVVDO1FBQUU7UUFDMUYsSUFBSSxPQUFPQywyQkFBMkIsVUFBVSxPQUFPQTtJQUN6RDtJQUVBLElBQUksQ0FBQ1YsU0FBUyxDQUFDa0MsSUFBQUEsa0JBQVEsRUFBQ2xDLFFBQVE7UUFDOUIscURBQXFEO1FBQ3JELElBQUlRLFVBQVUsT0FBT0MsRUFBRTtRQUN2QixJQUFJLENBQUNELFVBQVUsT0FBTztJQUN4QjtJQUVBLE1BQU0yQixvQkFBOEJyQixNQUFNQyxPQUFPLENBQUNmLFNBQVNBLFFBQVE7UUFBQ0E7S0FBTTtJQUUxRSxLQUFLLE1BQU1SLFVBQVUyQyxrQkFBbUI7UUFDdEMsSUFBSSxDQUFDRCxJQUFBQSxrQkFBUSxFQUFDMUMsU0FBUyxPQUFPaUIsRUFBRTtRQUVoQyxNQUFNMkIsY0FBY0MsV0FBVzdDO1FBRS9CLElBQUksT0FBT3dDLFFBQVEsWUFBWUksY0FBY0osS0FBSztZQUNoRCxPQUFPdkIsRUFBRSw2QkFBNkI7Z0JBQUVTLE9BQU9ULEVBQUU7Z0JBQVV1QjtnQkFBS2hDO1lBQU07UUFDeEU7UUFFQSxJQUFJLE9BQU9pQyxRQUFRLFlBQVlHLGNBQWNILEtBQUs7WUFDaEQsT0FBT3hCLEVBQUUsMEJBQTBCO2dCQUFFUyxPQUFPVCxFQUFFO2dCQUFVd0I7Z0JBQUtqQztZQUFNO1FBQ3JFO0lBQ0Y7SUFFQSxPQUFPO0FBQ1Q7QUFFTyxNQUFNUCxRQUFnRCxDQUMzRE8sT0FDQSxFQUFFSyxPQUFPLEVBQUVFLE9BQU8sRUFBRUMsUUFBUSxFQUFFQyxDQUFDLEVBQUU7SUFFakMsT0FBT0Usb0JBQW9CWCxPQUFPO1FBQUVLO1FBQVNFO1FBQVNDO1FBQVVDO0lBQUU7QUFDcEU7QUFFTyxNQUFNZixTQUFpRCxDQUM1RE0sT0FDQSxFQUFFSyxPQUFPLEVBQUVFLE9BQU8sRUFBRUMsUUFBUSxFQUFFQyxDQUFDLEVBQUU7SUFFakMsT0FBT0Usb0JBQW9CWCxPQUFPO1FBQUVLO1FBQVNFO1FBQVNDO1FBQVVDO0lBQUU7QUFDcEU7QUFFQSxNQUFNNkIsd0JBQWtDLE9BQ3RDdEMsT0FDQSxFQUFFdUMsRUFBRSxFQUFFQyxJQUFJLEVBQUVDLGFBQWEsRUFBRXRCLE9BQU8sRUFBRXVCLFVBQVUsRUFBRUMsR0FBRyxFQUFFQyxXQUFXLEVBQUVuQyxDQUFDLEVBQUVvQyxJQUFJLEVBQUU7SUFFM0UsSUFBSSxDQUFDQyxrQkFBUyxJQUFJLE9BQU9MLGtCQUFrQixlQUFlekMsT0FBTztRQUMvRCxNQUFNMkIsVUFFRixDQUFDO1FBRUwsTUFBTW9CLG1CQUE2QixFQUFFO1FBQ3JDLE1BQU1DLGNBQWMsT0FBT04sZUFBZSxXQUFXO1lBQUNBO1NBQVcsR0FBR0E7UUFDcEUsTUFBTU8sU0FBU25DLE1BQU1DLE9BQU8sQ0FBQ2YsU0FBU0EsUUFBUTtZQUFDQTtTQUFNO1FBRXJELE1BQU1rRCxRQUFRQyxHQUFHLENBQ2ZILFlBQVlJLEdBQUcsQ0FBQyxPQUFPQztZQUNyQixJQUFJQyxlQUNGLE9BQU9iLGtCQUFrQixhQUNyQixNQUFNQSxjQUFjO2dCQUNsQkY7Z0JBQ0FDO2dCQUNBRSxZQUFZVztnQkFDWlQ7Z0JBQ0FDO1lBQ0YsS0FDQUo7WUFFTixJQUFJYSxpQkFBaUIsTUFBTTtnQkFDekJBLGVBQWU7WUFDakI7WUFFQSxNQUFNQyxXQUFnQyxFQUFFO1lBRXhDTixPQUFPTyxPQUFPLENBQUMsQ0FBQ0M7Z0JBQ2QsSUFBSSxPQUFPQSxRQUFRLFlBQVlBLEtBQUt6RCxPQUFPO29CQUN6Q3VELFNBQVNHLElBQUksQ0FBQ0QsSUFBSXpELEtBQUs7Z0JBQ3pCO2dCQUVBLElBQUksT0FBT3lELFFBQVEsWUFBWSxPQUFPQSxRQUFRLFVBQVU7b0JBQ3RERixTQUFTRyxJQUFJLENBQUNEO2dCQUNoQjtZQUNGO1lBRUEsSUFBSUYsU0FBU3RDLE1BQU0sR0FBRyxHQUFHO2dCQUN2QixNQUFNMEMsWUFBWTtvQkFDaEJDLEtBQUs7d0JBQUM7NEJBQUVyQixJQUFJO2dDQUFFc0IsSUFBSU47NEJBQVM7d0JBQUU7cUJBQUU7Z0JBQ2pDO2dCQUVBLElBQUlELGNBQWNLLFVBQVVDLEdBQUcsQ0FBQ0YsSUFBSSxDQUFDSjtnQkFFckMsSUFBSUEsaUJBQWlCLE9BQU87b0JBQzFCUCxpQkFBaUJXLElBQUksQ0FBQ0o7Z0JBQ3hCO2dCQUVBLE1BQU1RLFNBQVMsTUFBTTNDLFFBQVE0QyxJQUFJLENBQUM7b0JBQ2hDVjtvQkFDQVcsT0FBTztvQkFDUEMsT0FBTztvQkFDUEMsWUFBWTtvQkFDWnZCO29CQUNBd0IsT0FBT1I7Z0JBQ1Q7Z0JBRUFoQyxPQUFPLENBQUMwQixXQUFXLEdBQUdTLE9BQU9NLElBQUksQ0FBQ2hCLEdBQUcsQ0FBQyxDQUFDaUIsTUFBUUEsSUFBSTlCLEVBQUU7WUFDdkQsT0FBTztnQkFDTFosT0FBTyxDQUFDMEIsV0FBVyxHQUFHLEVBQUU7WUFDMUI7UUFDRjtRQUdGLE1BQU1pQix1QkFBdUJyQixPQUFPc0IsTUFBTSxDQUFDLENBQUNkO1lBQzFDLElBQUlKO1lBQ0osSUFBSW1CO1lBRUosSUFBSSxPQUFPOUIsZUFBZSxVQUFVO2dCQUNsQ1csYUFBYVg7Z0JBRWIsSUFBSSxPQUFPZSxRQUFRLFlBQVksT0FBT0EsUUFBUSxVQUFVO29CQUN0RGUsY0FBY2Y7Z0JBQ2hCO1lBQ0Y7WUFFQSxJQUFJM0MsTUFBTUMsT0FBTyxDQUFDMkIsZUFBZSxPQUFPZSxRQUFRLFlBQVlBLEtBQUtmLFlBQVk7Z0JBQzNFVyxhQUFhSSxJQUFJZixVQUFVO2dCQUMzQjhCLGNBQWNmLElBQUl6RCxLQUFLO1lBQ3pCO1lBRUEsSUFBSStDLGlCQUFpQmdCLElBQUksQ0FBQyxDQUFDVSxPQUFTL0IsZUFBZStCLE9BQU87Z0JBQ3hELE9BQU87WUFDVDtZQUVBLE9BQU85QyxPQUFPLENBQUMwQixXQUFXLENBQUNxQixPQUFPLENBQUNGLGlCQUFpQixDQUFDO1FBQ3ZEO1FBRUEsSUFBSUYscUJBQXFCckQsTUFBTSxHQUFHLEdBQUc7WUFDbkMsT0FBT3FELHFCQUFxQkssTUFBTSxDQUFDLENBQUNDLEtBQUtDLFNBQVNDO2dCQUNoRCxPQUFPLENBQUMsRUFBRUYsSUFBSSxDQUFDLEVBQUVHLEtBQUtDLFNBQVMsQ0FBQ0gsU0FBUyxFQUN2Q1AscUJBQXFCckQsTUFBTSxLQUFLNkQsSUFBSSxJQUFJLE1BQU0sR0FDL0MsQ0FBQyxDQUFDO1lBQ0wsR0FBR3JFLEVBQUU7UUFDUDtRQUVBLE9BQU87SUFDVDtJQUVBLE9BQU87QUFDVDtBQUVPLE1BQU1kLFNBQWtELENBQUNLLE9BQWUyQjtJQUM3RSxJQUFJLENBQUMzQixTQUFTMkIsUUFBUW5CLFFBQVEsRUFBRTtRQUM5QixPQUFPbUIsUUFBUWxCLENBQUMsQ0FBQztJQUNuQjtJQUVBLElBQUksQ0FBQ3FDLGtCQUFTLElBQUksT0FBTzlDLFVBQVUsZUFBZUEsVUFBVSxNQUFNO1FBQ2hFLE1BQU1pRixVQUFVdEQsU0FBUzFCLFFBQVErQyxhQUM3QmUsS0FBSyxDQUFDVixhQUFlQSxXQUFXb0IsSUFBSSxLQUFLOUMsUUFBUWUsVUFBVSxHQUMzRHdDLFFBQVFuQixLQUFLLENBQUNvQixRQUFVQyxJQUFBQSx1QkFBZ0IsRUFBQ0QsVUFBVUEsTUFBTUUsSUFBSSxLQUFLO1FBRXRFLE1BQU1DLE9BQU9DLElBQUFBLG9CQUFTLEVBQUNOLFNBQVN0RCxTQUFTUixTQUFTcUUsSUFBSUM7UUFFdEQsSUFBSSxDQUFDQyxJQUFBQSxvQkFBUyxFQUFDMUYsT0FBT3NGLE9BQU87WUFDM0IsT0FBTzNELFFBQVFsQixDQUFDLENBQUM7UUFDbkI7SUFDRjtJQUVBLE9BQU82QixzQkFBc0J0QyxPQUFPMkI7QUFDdEM7QUFFTyxNQUFNL0IsZUFBOEQsT0FDekVJLE9BQ0EyQjtJQUVBLE1BQU0sRUFBRTFCLE1BQU0sRUFBRUksT0FBTyxFQUFFRSxPQUFPLEVBQUVZLE9BQU8sRUFBRXVCLFVBQVUsRUFBRWxDLFFBQVEsRUFBRUMsQ0FBQyxFQUFFLEdBQUdrQjtJQUV2RSxJQUFJLEFBQUMsQ0FBQSxDQUFDM0IsU0FBVWMsTUFBTUMsT0FBTyxDQUFDZixVQUFVQSxNQUFNaUIsTUFBTSxLQUFLLENBQUMsS0FBTVQsVUFBVTtRQUN4RSxPQUFPQyxFQUFFO0lBQ1g7SUFFQSxJQUFJSyxNQUFNQyxPQUFPLENBQUNmLFVBQVVBLE1BQU1pQixNQUFNLEdBQUcsR0FBRztRQUM1QyxJQUFJVixXQUFXUCxNQUFNaUIsTUFBTSxHQUFHVixTQUFTO1lBQ3JDLE9BQU9FLEVBQUUsMEJBQTBCO2dCQUFFUyxPQUFPVCxFQUFFO2dCQUFTd0IsS0FBSzFCO2dCQUFTUCxPQUFPQSxNQUFNaUIsTUFBTTtZQUFDO1FBQzNGO1FBRUEsSUFBSVosV0FBV0wsTUFBTWlCLE1BQU0sR0FBR1osU0FBUztZQUNyQyxPQUFPSSxFQUFFLDZCQUE2QjtnQkFBRVMsT0FBT1QsRUFBRTtnQkFBU3VCLEtBQUszQjtnQkFBU0wsT0FBT0EsTUFBTWlCLE1BQU07WUFBQztRQUM5RjtJQUNGO0lBRUEsSUFBSSxDQUFDNkIsa0JBQVMsSUFBSSxPQUFPOUMsVUFBVSxlQUFlQSxVQUFVLE1BQU07UUFDaEUsTUFBTWlELFNBQVNuQyxNQUFNQyxPQUFPLENBQUNmLFNBQVNBLFFBQVE7WUFBQ0E7U0FBTTtRQUVyRCxNQUFNc0UsdUJBQXVCckIsT0FBT3NCLE1BQU0sQ0FBQyxDQUFDZDtZQUMxQyxJQUFJa0M7WUFDSixJQUFJbkI7WUFFSixJQUFJLE9BQU85QixlQUFlLFVBQVU7Z0JBQ2xDaUQsaUJBQWlCakQ7Z0JBRWpCLFlBQVk7Z0JBQ1osSUFBSWUsS0FBSztvQkFDUGUsY0FBY2Y7Z0JBQ2hCO1lBQ0Y7WUFFQSxJQUFJM0MsTUFBTUMsT0FBTyxDQUFDMkIsZUFBZSxPQUFPZSxRQUFRLFlBQVlBLEtBQUtmLFlBQVk7Z0JBQzNFaUQsaUJBQWlCbEMsSUFBSWYsVUFBVTtnQkFDL0I4QixjQUFjZixJQUFJekQsS0FBSztZQUN6QjtZQUVBLElBQUl3RSxnQkFBZ0IsTUFBTSxPQUFPO1lBRWpDLE1BQU1TLFVBQVVoRixRQUFRK0MsYUFDcEJlLEtBQUssQ0FBQ1YsYUFBZUEsV0FBV29CLElBQUksS0FBS2tCLGlCQUN6Q1QsUUFBUW5CLEtBQUssQ0FBQ29CLFFBQVVDLElBQUFBLHVCQUFnQixFQUFDRCxVQUFVQSxNQUFNRSxJQUFJLEtBQUs7WUFFdEUsTUFBTUMsT0FBT0MsSUFBQUEsb0JBQVMsRUFBQ04sU0FBUzlELFNBQVNxRSxJQUFJQztZQUU3QyxPQUFPLENBQUNDLElBQUFBLG9CQUFTLEVBQUNsQixhQUFhYztRQUNqQztRQUVBLElBQUloQixxQkFBcUJyRCxNQUFNLEdBQUcsR0FBRztZQUNuQyxPQUFPLENBQUMsaUVBQWlFLEVBQUVxRCxxQkFDeEVsQixHQUFHLENBQUMsQ0FBQ3dCLEtBQUtDO2dCQUNULE9BQU8sQ0FBQyxFQUFFRCxJQUFJLENBQUMsRUFBRUcsS0FBS0MsU0FBUyxDQUFDSCxTQUFTLENBQUM7WUFDNUMsR0FDQ2UsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUNqQjtJQUNGO0lBRUEsT0FBT3RELHNCQUFzQnRDLE9BQU8yQjtBQUN0QztBQUVPLE1BQU05QixTQUFrRCxDQUM3REcsT0FDQSxFQUFFRSxPQUFPLEVBQUV5QixPQUFPLEVBQUVuQixRQUFRLEVBQUVDLENBQUMsRUFBRTtJQUVqQyxJQUNFSyxNQUFNQyxPQUFPLENBQUNmLFVBQ2RBLE1BQU02RixJQUFJLENBQ1IsQ0FBQ0MsUUFDQyxDQUFDbkUsUUFBUWtFLElBQUksQ0FDWCxDQUFDRSxTQUFXQSxXQUFXRCxTQUFVLE9BQU9DLFdBQVcsWUFBWUEsUUFBUS9GLFVBQVU4RixTQUd2RjtRQUNBLE9BQU9yRixFQUFFO0lBQ1g7SUFFQSxJQUNFLE9BQU9ULFVBQVUsWUFDakIsQ0FBQzJCLFFBQVFrRSxJQUFJLENBQ1gsQ0FBQ0UsU0FBV0EsV0FBVy9GLFNBQVUsT0FBTytGLFdBQVcsWUFBWUEsT0FBTy9GLEtBQUssS0FBS0EsUUFFbEY7UUFDQSxPQUFPUyxFQUFFO0lBQ1g7SUFFQSxJQUNFRCxZQUNDLENBQUEsT0FBT1IsVUFBVSxlQUNoQkEsVUFBVSxRQUNURSxXQUFXWSxNQUFNQyxPQUFPLENBQUNmLFVBQVUsQUFBQ0EsT0FBY2lCLFdBQVcsQ0FBQyxHQUNqRTtRQUNBLE9BQU9SLEVBQUU7SUFDWDtJQUVBLE9BQU87QUFDVDtBQUVPLE1BQU1YLFFBQWdELENBQUNFLE9BQU8sRUFBRTJCLE9BQU8sRUFBRW5CLFFBQVEsRUFBRUMsQ0FBQyxFQUFFO0lBQzNGLElBQUlULE9BQU87UUFDVCxNQUFNZ0cscUJBQXFCckUsUUFBUWtFLElBQUksQ0FDckMsQ0FBQ0UsU0FBV0EsV0FBVy9GLFNBQVUsT0FBTytGLFdBQVcsWUFBWUEsT0FBTy9GLEtBQUssS0FBS0E7UUFFbEYsT0FBT2dHLHNCQUFzQnZGLEVBQUU7SUFDakM7SUFFQSxPQUFPRCxXQUFXQyxFQUFFLHlCQUF5QjtBQUMvQztBQUVPLE1BQU1WLFFBQWdELENBQzNEQyxRQUE0QztJQUFDO0lBQUk7Q0FBRyxFQUNwRCxFQUFFUSxRQUFRLEVBQUVDLENBQUMsRUFBRTtJQUVmLE1BQU13RixNQUFNNUQsV0FBVzZELE9BQU9sRyxLQUFLLENBQUMsRUFBRTtJQUN0QyxNQUFNbUcsTUFBTTlELFdBQVc2RCxPQUFPbEcsS0FBSyxDQUFDLEVBQUU7SUFDdEMsSUFDRVEsWUFDQyxDQUFBLEFBQUNSLEtBQUssQ0FBQyxFQUFFLElBQUlBLEtBQUssQ0FBQyxFQUFFLElBQUksT0FBT2lHLFFBQVEsWUFBWSxPQUFPRSxRQUFRLFlBQ2xFQyxPQUFPN0UsS0FBSyxDQUFDMEUsUUFDYkcsT0FBTzdFLEtBQUssQ0FBQzRFLFFBQ1pyRixNQUFNQyxPQUFPLENBQUNmLFVBQVVBLE1BQU1pQixNQUFNLEtBQUssQ0FBQyxHQUM3QztRQUNBLE9BQU9SLEVBQUU7SUFDWDtJQUVBLElBQUksQUFBQ1QsS0FBSyxDQUFDLEVBQUUsSUFBSW9HLE9BQU83RSxLQUFLLENBQUMwRSxRQUFVakcsS0FBSyxDQUFDLEVBQUUsSUFBSW9HLE9BQU83RSxLQUFLLENBQUM0RSxNQUFPO1FBQ3RFLE9BQU8xRixFQUFFO0lBQ1g7SUFFQSxPQUFPO0FBQ1Q7TUFFQSxXQUFlO0lBQ2JoQjtJQUNBQztJQUNBTDtJQUNBRjtJQUNBRztJQUNBTDtJQUNBRztJQUNBSTtJQUNBUjtJQUNBZTtJQUNBRDtJQUNBRjtJQUNBTDtJQUNBTTtJQUNBZDtJQUNBRztJQUNBUztBQUNGIn0=
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "docAccessResolver", {
8
8
  return docAccessResolver;
9
9
  }
10
10
  });
11
- const _isolateTransactionID = /*#__PURE__*/ _interop_require_default(require("../../../utilities/isolateTransactionID"));
11
+ const _isolateObjectProperty = /*#__PURE__*/ _interop_require_default(require("../../../utilities/isolateObjectProperty"));
12
12
  const _docAccess = require("../../operations/docAccess");
13
13
  function _interop_require_default(obj) {
14
14
  return obj && obj.__esModule ? obj : {
@@ -19,10 +19,10 @@ function docAccessResolver(global) {
19
19
  async function resolver(_, context) {
20
20
  return (0, _docAccess.docAccess)({
21
21
  globalConfig: global,
22
- req: (0, _isolateTransactionID.default)(context.req)
22
+ req: (0, _isolateObjectProperty.default)(context.req, 'transactionID')
23
23
  });
24
24
  }
25
25
  return resolver;
26
26
  }
27
27
 
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9nbG9iYWxzL2dyYXBocWwvcmVzb2x2ZXJzL2RvY0FjY2Vzcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENvbGxlY3Rpb25QZXJtaXNzaW9uLCBHbG9iYWxQZXJtaXNzaW9uIH0gZnJvbSAnLi4vLi4vLi4vYXV0aCdcbmltcG9ydCB0eXBlIHsgUGF5bG9hZFJlcXVlc3QgfSBmcm9tICcuLi8uLi8uLi9leHByZXNzL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRHbG9iYWxDb25maWcgfSBmcm9tICcuLi8uLi9jb25maWcvdHlwZXMnXG5cbmltcG9ydCBpc29sYXRlVHJhbnNhY3Rpb25JRCBmcm9tICcuLi8uLi8uLi91dGlsaXRpZXMvaXNvbGF0ZVRyYW5zYWN0aW9uSUQnXG5pbXBvcnQgeyBkb2NBY2Nlc3MgfSBmcm9tICcuLi8uLi9vcGVyYXRpb25zL2RvY0FjY2VzcydcblxuZXhwb3J0IHR5cGUgUmVzb2x2ZXIgPSAoXG4gIF86IHVua25vd24sXG4gIGNvbnRleHQ6IHtcbiAgICByZXE6IFBheWxvYWRSZXF1ZXN0XG4gICAgcmVzOiBSZXNwb25zZVxuICB9LFxuKSA9PiBQcm9taXNlPENvbGxlY3Rpb25QZXJtaXNzaW9uIHwgR2xvYmFsUGVybWlzc2lvbj5cblxuZXhwb3J0IGZ1bmN0aW9uIGRvY0FjY2Vzc1Jlc29sdmVyKGdsb2JhbDogU2FuaXRpemVkR2xvYmFsQ29uZmlnKTogUmVzb2x2ZXIge1xuICBhc3luYyBmdW5jdGlvbiByZXNvbHZlcihfLCBjb250ZXh0KSB7XG4gICAgcmV0dXJuIGRvY0FjY2Vzcyh7XG4gICAgICBnbG9iYWxDb25maWc6IGdsb2JhbCxcbiAgICAgIHJlcTogaXNvbGF0ZVRyYW5zYWN0aW9uSUQoY29udGV4dC5yZXEpLFxuICAgIH0pXG4gIH1cblxuICByZXR1cm4gcmVzb2x2ZXJcbn1cbiJdLCJuYW1lcyI6WyJkb2NBY2Nlc3NSZXNvbHZlciIsImdsb2JhbCIsInJlc29sdmVyIiwiXyIsImNvbnRleHQiLCJkb2NBY2Nlc3MiLCJnbG9iYWxDb25maWciLCJyZXEiLCJpc29sYXRlVHJhbnNhY3Rpb25JRCJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFlZ0JBOzs7ZUFBQUE7Ozs2RUFYaUI7MkJBQ1A7Ozs7OztBQVVuQixTQUFTQSxrQkFBa0JDLE1BQTZCO0lBQzdELGVBQWVDLFNBQVNDLENBQUMsRUFBRUMsT0FBTztRQUNoQyxPQUFPQyxJQUFBQSxvQkFBUyxFQUFDO1lBQ2ZDLGNBQWNMO1lBQ2RNLEtBQUtDLElBQUFBLDZCQUFvQixFQUFDSixRQUFRRyxHQUFHO1FBQ3ZDO0lBQ0Y7SUFFQSxPQUFPTDtBQUNUIn0=
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9nbG9iYWxzL2dyYXBocWwvcmVzb2x2ZXJzL2RvY0FjY2Vzcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENvbGxlY3Rpb25QZXJtaXNzaW9uLCBHbG9iYWxQZXJtaXNzaW9uIH0gZnJvbSAnLi4vLi4vLi4vYXV0aCdcbmltcG9ydCB0eXBlIHsgUGF5bG9hZFJlcXVlc3QgfSBmcm9tICcuLi8uLi8uLi9leHByZXNzL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRHbG9iYWxDb25maWcgfSBmcm9tICcuLi8uLi9jb25maWcvdHlwZXMnXG5cbmltcG9ydCBpc29sYXRlT2JqZWN0UHJvcGVydHkgZnJvbSAnLi4vLi4vLi4vdXRpbGl0aWVzL2lzb2xhdGVPYmplY3RQcm9wZXJ0eSdcbmltcG9ydCB7IGRvY0FjY2VzcyB9IGZyb20gJy4uLy4uL29wZXJhdGlvbnMvZG9jQWNjZXNzJ1xuXG5leHBvcnQgdHlwZSBSZXNvbHZlciA9IChcbiAgXzogdW5rbm93bixcbiAgY29udGV4dDoge1xuICAgIHJlcTogUGF5bG9hZFJlcXVlc3RcbiAgICByZXM6IFJlc3BvbnNlXG4gIH0sXG4pID0+IFByb21pc2U8Q29sbGVjdGlvblBlcm1pc3Npb24gfCBHbG9iYWxQZXJtaXNzaW9uPlxuXG5leHBvcnQgZnVuY3Rpb24gZG9jQWNjZXNzUmVzb2x2ZXIoZ2xvYmFsOiBTYW5pdGl6ZWRHbG9iYWxDb25maWcpOiBSZXNvbHZlciB7XG4gIGFzeW5jIGZ1bmN0aW9uIHJlc29sdmVyKF8sIGNvbnRleHQpIHtcbiAgICByZXR1cm4gZG9jQWNjZXNzKHtcbiAgICAgIGdsb2JhbENvbmZpZzogZ2xvYmFsLFxuICAgICAgcmVxOiBpc29sYXRlT2JqZWN0UHJvcGVydHk8UGF5bG9hZFJlcXVlc3Q+KGNvbnRleHQucmVxLCAndHJhbnNhY3Rpb25JRCcpLFxuICAgIH0pXG4gIH1cblxuICByZXR1cm4gcmVzb2x2ZXJcbn1cbiJdLCJuYW1lcyI6WyJkb2NBY2Nlc3NSZXNvbHZlciIsImdsb2JhbCIsInJlc29sdmVyIiwiXyIsImNvbnRleHQiLCJkb2NBY2Nlc3MiLCJnbG9iYWxDb25maWciLCJyZXEiLCJpc29sYXRlT2JqZWN0UHJvcGVydHkiXSwibWFwcGluZ3MiOiI7Ozs7K0JBZWdCQTs7O2VBQUFBOzs7OEVBWGtCOzJCQUNSOzs7Ozs7QUFVbkIsU0FBU0Esa0JBQWtCQyxNQUE2QjtJQUM3RCxlQUFlQyxTQUFTQyxDQUFDLEVBQUVDLE9BQU87UUFDaEMsT0FBT0MsSUFBQUEsb0JBQVMsRUFBQztZQUNmQyxjQUFjTDtZQUNkTSxLQUFLQyxJQUFBQSw4QkFBcUIsRUFBaUJKLFFBQVFHLEdBQUcsRUFBRTtRQUMxRDtJQUNGO0lBRUEsT0FBT0w7QUFDVCJ9
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "default", {
8
8
  return findOneResolver;
9
9
  }
10
10
  });
11
- const _isolateTransactionID = /*#__PURE__*/ _interop_require_default(require("../../../utilities/isolateTransactionID"));
11
+ const _isolateObjectProperty = /*#__PURE__*/ _interop_require_default(require("../../../utilities/isolateObjectProperty"));
12
12
  const _findOne = /*#__PURE__*/ _interop_require_default(require("../../operations/findOne"));
13
13
  function _interop_require_default(obj) {
14
14
  return obj && obj.__esModule ? obj : {
@@ -24,7 +24,7 @@ function findOneResolver(globalConfig) {
24
24
  depth: 0,
25
25
  draft: args.draft,
26
26
  globalConfig,
27
- req: (0, _isolateTransactionID.default)(context.req),
27
+ req: (0, _isolateObjectProperty.default)(context.req, 'transactionID'),
28
28
  slug
29
29
  };
30
30
  const result = await (0, _findOne.default)(options);
@@ -32,4 +32,4 @@ function findOneResolver(globalConfig) {
32
32
  };
33
33
  }
34
34
 
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9nbG9iYWxzL2dyYXBocWwvcmVzb2x2ZXJzL2ZpbmRPbmUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cblxuaW1wb3J0IHR5cGUgeyBEb2N1bWVudCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRHbG9iYWxDb25maWcgfSBmcm9tICcuLi8uLi9jb25maWcvdHlwZXMnXG5cbmltcG9ydCBpc29sYXRlVHJhbnNhY3Rpb25JRCBmcm9tICcuLi8uLi8uLi91dGlsaXRpZXMvaXNvbGF0ZVRyYW5zYWN0aW9uSUQnXG5pbXBvcnQgZmluZE9uZSBmcm9tICcuLi8uLi9vcGVyYXRpb25zL2ZpbmRPbmUnXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGZpbmRPbmVSZXNvbHZlcihnbG9iYWxDb25maWc6IFNhbml0aXplZEdsb2JhbENvbmZpZyk6IERvY3VtZW50IHtcbiAgcmV0dXJuIGFzeW5jIGZ1bmN0aW9uIHJlc29sdmVyKF8sIGFyZ3MsIGNvbnRleHQpIHtcbiAgICBpZiAoYXJncy5sb2NhbGUpIGNvbnRleHQucmVxLmxvY2FsZSA9IGFyZ3MubG9jYWxlXG4gICAgaWYgKGFyZ3MuZmFsbGJhY2tMb2NhbGUpIGNvbnRleHQucmVxLmZhbGxiYWNrTG9jYWxlID0gYXJncy5mYWxsYmFja0xvY2FsZVxuXG4gICAgY29uc3QgeyBzbHVnIH0gPSBnbG9iYWxDb25maWdcblxuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICBkZXB0aDogMCxcbiAgICAgIGRyYWZ0OiBhcmdzLmRyYWZ0LFxuICAgICAgZ2xvYmFsQ29uZmlnLFxuICAgICAgcmVxOiBpc29sYXRlVHJhbnNhY3Rpb25JRChjb250ZXh0LnJlcSksXG4gICAgICBzbHVnLFxuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGZpbmRPbmUob3B0aW9ucylcbiAgICByZXR1cm4gcmVzdWx0XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJmaW5kT25lUmVzb2x2ZXIiLCJnbG9iYWxDb25maWciLCJyZXNvbHZlciIsIl8iLCJhcmdzIiwiY29udGV4dCIsImxvY2FsZSIsInJlcSIsImZhbGxiYWNrTG9jYWxlIiwic2x1ZyIsIm9wdGlvbnMiLCJkZXB0aCIsImRyYWZ0IiwiaXNvbGF0ZVRyYW5zYWN0aW9uSUQiLCJyZXN1bHQiLCJmaW5kT25lIl0sIm1hcHBpbmdzIjoiQUFBQSxvQ0FBb0M7Ozs7K0JBUXBDOzs7ZUFBd0JBOzs7NkVBSFM7Z0VBQ2I7Ozs7OztBQUVMLFNBQVNBLGdCQUFnQkMsWUFBbUM7SUFDekUsT0FBTyxlQUFlQyxTQUFTQyxDQUFDLEVBQUVDLElBQUksRUFBRUMsT0FBTztRQUM3QyxJQUFJRCxLQUFLRSxNQUFNLEVBQUVELFFBQVFFLEdBQUcsQ0FBQ0QsTUFBTSxHQUFHRixLQUFLRSxNQUFNO1FBQ2pELElBQUlGLEtBQUtJLGNBQWMsRUFBRUgsUUFBUUUsR0FBRyxDQUFDQyxjQUFjLEdBQUdKLEtBQUtJLGNBQWM7UUFFekUsTUFBTSxFQUFFQyxJQUFJLEVBQUUsR0FBR1I7UUFFakIsTUFBTVMsVUFBVTtZQUNkQyxPQUFPO1lBQ1BDLE9BQU9SLEtBQUtRLEtBQUs7WUFDakJYO1lBQ0FNLEtBQUtNLElBQUFBLDZCQUFvQixFQUFDUixRQUFRRSxHQUFHO1lBQ3JDRTtRQUNGO1FBRUEsTUFBTUssU0FBUyxNQUFNQyxJQUFBQSxnQkFBTyxFQUFDTDtRQUM3QixPQUFPSTtJQUNUO0FBQ0YifQ==
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9nbG9iYWxzL2dyYXBocWwvcmVzb2x2ZXJzL2ZpbmRPbmUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cblxuaW1wb3J0IHR5cGUgeyBEb2N1bWVudCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRHbG9iYWxDb25maWcgfSBmcm9tICcuLi8uLi9jb25maWcvdHlwZXMnXG5cbmltcG9ydCBpc29sYXRlT2JqZWN0UHJvcGVydHkgZnJvbSAnLi4vLi4vLi4vdXRpbGl0aWVzL2lzb2xhdGVPYmplY3RQcm9wZXJ0eSdcbmltcG9ydCBmaW5kT25lIGZyb20gJy4uLy4uL29wZXJhdGlvbnMvZmluZE9uZSdcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZmluZE9uZVJlc29sdmVyKGdsb2JhbENvbmZpZzogU2FuaXRpemVkR2xvYmFsQ29uZmlnKTogRG9jdW1lbnQge1xuICByZXR1cm4gYXN5bmMgZnVuY3Rpb24gcmVzb2x2ZXIoXywgYXJncywgY29udGV4dCkge1xuICAgIGlmIChhcmdzLmxvY2FsZSkgY29udGV4dC5yZXEubG9jYWxlID0gYXJncy5sb2NhbGVcbiAgICBpZiAoYXJncy5mYWxsYmFja0xvY2FsZSkgY29udGV4dC5yZXEuZmFsbGJhY2tMb2NhbGUgPSBhcmdzLmZhbGxiYWNrTG9jYWxlXG5cbiAgICBjb25zdCB7IHNsdWcgfSA9IGdsb2JhbENvbmZpZ1xuXG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIGRlcHRoOiAwLFxuICAgICAgZHJhZnQ6IGFyZ3MuZHJhZnQsXG4gICAgICBnbG9iYWxDb25maWcsXG4gICAgICByZXE6IGlzb2xhdGVPYmplY3RQcm9wZXJ0eShjb250ZXh0LnJlcSwgJ3RyYW5zYWN0aW9uSUQnKSxcbiAgICAgIHNsdWcsXG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZmluZE9uZShvcHRpb25zKVxuICAgIHJldHVybiByZXN1bHRcbiAgfVxufVxuIl0sIm5hbWVzIjpbImZpbmRPbmVSZXNvbHZlciIsImdsb2JhbENvbmZpZyIsInJlc29sdmVyIiwiXyIsImFyZ3MiLCJjb250ZXh0IiwibG9jYWxlIiwicmVxIiwiZmFsbGJhY2tMb2NhbGUiLCJzbHVnIiwib3B0aW9ucyIsImRlcHRoIiwiZHJhZnQiLCJpc29sYXRlT2JqZWN0UHJvcGVydHkiLCJyZXN1bHQiLCJmaW5kT25lIl0sIm1hcHBpbmdzIjoiQUFBQSxvQ0FBb0M7Ozs7K0JBUXBDOzs7ZUFBd0JBOzs7OEVBSFU7Z0VBQ2Q7Ozs7OztBQUVMLFNBQVNBLGdCQUFnQkMsWUFBbUM7SUFDekUsT0FBTyxlQUFlQyxTQUFTQyxDQUFDLEVBQUVDLElBQUksRUFBRUMsT0FBTztRQUM3QyxJQUFJRCxLQUFLRSxNQUFNLEVBQUVELFFBQVFFLEdBQUcsQ0FBQ0QsTUFBTSxHQUFHRixLQUFLRSxNQUFNO1FBQ2pELElBQUlGLEtBQUtJLGNBQWMsRUFBRUgsUUFBUUUsR0FBRyxDQUFDQyxjQUFjLEdBQUdKLEtBQUtJLGNBQWM7UUFFekUsTUFBTSxFQUFFQyxJQUFJLEVBQUUsR0FBR1I7UUFFakIsTUFBTVMsVUFBVTtZQUNkQyxPQUFPO1lBQ1BDLE9BQU9SLEtBQUtRLEtBQUs7WUFDakJYO1lBQ0FNLEtBQUtNLElBQUFBLDhCQUFxQixFQUFDUixRQUFRRSxHQUFHLEVBQUU7WUFDeENFO1FBQ0Y7UUFFQSxNQUFNSyxTQUFTLE1BQU1DLElBQUFBLGdCQUFPLEVBQUNMO1FBQzdCLE9BQU9JO0lBQ1Q7QUFDRiJ9
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "default", {
8
8
  return findVersionByIDResolver;
9
9
  }
10
10
  });
11
- const _isolateTransactionID = /*#__PURE__*/ _interop_require_default(require("../../../utilities/isolateTransactionID"));
11
+ const _isolateObjectProperty = /*#__PURE__*/ _interop_require_default(require("../../../utilities/isolateObjectProperty"));
12
12
  const _findVersionByID = /*#__PURE__*/ _interop_require_default(require("../../operations/findVersionByID"));
13
13
  function _interop_require_default(obj) {
14
14
  return obj && obj.__esModule ? obj : {
@@ -24,11 +24,11 @@ function findVersionByIDResolver(globalConfig) {
24
24
  depth: 0,
25
25
  draft: args.draft,
26
26
  globalConfig,
27
- req: (0, _isolateTransactionID.default)(context.req)
27
+ req: (0, _isolateObjectProperty.default)(context.req, 'transactionID')
28
28
  };
29
29
  const result = await (0, _findVersionByID.default)(options);
30
30
  return result;
31
31
  };
32
32
  }
33
33
 
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9nbG9iYWxzL2dyYXBocWwvcmVzb2x2ZXJzL2ZpbmRWZXJzaW9uQnlJRC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1wYXJhbS1yZWFzc2lnbiAqL1xuaW1wb3J0IHR5cGUgeyBSZXNwb25zZSB9IGZyb20gJ2V4cHJlc3MnXG5cbmltcG9ydCB0eXBlIHsgUGF5bG9hZFJlcXVlc3QgfSBmcm9tICcuLi8uLi8uLi9leHByZXNzL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBEb2N1bWVudCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRHbG9iYWxDb25maWcgfSBmcm9tICcuLi8uLi9jb25maWcvdHlwZXMnXG5cbmltcG9ydCBpc29sYXRlVHJhbnNhY3Rpb25JRCBmcm9tICcuLi8uLi8uLi91dGlsaXRpZXMvaXNvbGF0ZVRyYW5zYWN0aW9uSUQnXG5pbXBvcnQgZmluZFZlcnNpb25CeUlEIGZyb20gJy4uLy4uL29wZXJhdGlvbnMvZmluZFZlcnNpb25CeUlEJ1xuXG5leHBvcnQgdHlwZSBSZXNvbHZlciA9IChcbiAgXzogdW5rbm93bixcbiAgYXJnczoge1xuICAgIGRyYWZ0PzogYm9vbGVhblxuICAgIGZhbGxiYWNrTG9jYWxlPzogc3RyaW5nXG4gICAgaWQ6IG51bWJlciB8IHN0cmluZ1xuICAgIGxvY2FsZT86IHN0cmluZ1xuICB9LFxuICBjb250ZXh0OiB7XG4gICAgcmVxOiBQYXlsb2FkUmVxdWVzdFxuICAgIHJlczogUmVzcG9uc2VcbiAgfSxcbikgPT4gUHJvbWlzZTxEb2N1bWVudD5cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZmluZFZlcnNpb25CeUlEUmVzb2x2ZXIoZ2xvYmFsQ29uZmlnOiBTYW5pdGl6ZWRHbG9iYWxDb25maWcpOiBSZXNvbHZlciB7XG4gIHJldHVybiBhc3luYyBmdW5jdGlvbiByZXNvbHZlcihfLCBhcmdzLCBjb250ZXh0KSB7XG4gICAgaWYgKGFyZ3MubG9jYWxlKSBjb250ZXh0LnJlcS5sb2NhbGUgPSBhcmdzLmxvY2FsZVxuICAgIGlmIChhcmdzLmZhbGxiYWNrTG9jYWxlKSBjb250ZXh0LnJlcS5mYWxsYmFja0xvY2FsZSA9IGFyZ3MuZmFsbGJhY2tMb2NhbGVcblxuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICBpZDogYXJncy5pZCxcbiAgICAgIGRlcHRoOiAwLFxuICAgICAgZHJhZnQ6IGFyZ3MuZHJhZnQsXG4gICAgICBnbG9iYWxDb25maWcsXG4gICAgICByZXE6IGlzb2xhdGVUcmFuc2FjdGlvbklEKGNvbnRleHQucmVxKSxcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBmaW5kVmVyc2lvbkJ5SUQob3B0aW9ucylcbiAgICByZXR1cm4gcmVzdWx0XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJmaW5kVmVyc2lvbkJ5SURSZXNvbHZlciIsImdsb2JhbENvbmZpZyIsInJlc29sdmVyIiwiXyIsImFyZ3MiLCJjb250ZXh0IiwibG9jYWxlIiwicmVxIiwiZmFsbGJhY2tMb2NhbGUiLCJvcHRpb25zIiwiaWQiLCJkZXB0aCIsImRyYWZ0IiwiaXNvbGF0ZVRyYW5zYWN0aW9uSUQiLCJyZXN1bHQiLCJmaW5kVmVyc2lvbkJ5SUQiXSwibWFwcGluZ3MiOiJBQUFBLG9DQUFvQzs7OzsrQkF3QnBDOzs7ZUFBd0JBOzs7NkVBakJTO3dFQUNMOzs7Ozs7QUFnQmIsU0FBU0Esd0JBQXdCQyxZQUFtQztJQUNqRixPQUFPLGVBQWVDLFNBQVNDLENBQUMsRUFBRUMsSUFBSSxFQUFFQyxPQUFPO1FBQzdDLElBQUlELEtBQUtFLE1BQU0sRUFBRUQsUUFBUUUsR0FBRyxDQUFDRCxNQUFNLEdBQUdGLEtBQUtFLE1BQU07UUFDakQsSUFBSUYsS0FBS0ksY0FBYyxFQUFFSCxRQUFRRSxHQUFHLENBQUNDLGNBQWMsR0FBR0osS0FBS0ksY0FBYztRQUV6RSxNQUFNQyxVQUFVO1lBQ2RDLElBQUlOLEtBQUtNLEVBQUU7WUFDWEMsT0FBTztZQUNQQyxPQUFPUixLQUFLUSxLQUFLO1lBQ2pCWDtZQUNBTSxLQUFLTSxJQUFBQSw2QkFBb0IsRUFBQ1IsUUFBUUUsR0FBRztRQUN2QztRQUVBLE1BQU1PLFNBQVMsTUFBTUMsSUFBQUEsd0JBQWUsRUFBQ047UUFDckMsT0FBT0s7SUFDVDtBQUNGIn0=
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9nbG9iYWxzL2dyYXBocWwvcmVzb2x2ZXJzL2ZpbmRWZXJzaW9uQnlJRC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1wYXJhbS1yZWFzc2lnbiAqL1xuaW1wb3J0IHR5cGUgeyBSZXNwb25zZSB9IGZyb20gJ2V4cHJlc3MnXG5cbmltcG9ydCB0eXBlIHsgUGF5bG9hZFJlcXVlc3QgfSBmcm9tICcuLi8uLi8uLi9leHByZXNzL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBEb2N1bWVudCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRHbG9iYWxDb25maWcgfSBmcm9tICcuLi8uLi9jb25maWcvdHlwZXMnXG5cbmltcG9ydCBpc29sYXRlT2JqZWN0UHJvcGVydHkgZnJvbSAnLi4vLi4vLi4vdXRpbGl0aWVzL2lzb2xhdGVPYmplY3RQcm9wZXJ0eSdcbmltcG9ydCBmaW5kVmVyc2lvbkJ5SUQgZnJvbSAnLi4vLi4vb3BlcmF0aW9ucy9maW5kVmVyc2lvbkJ5SUQnXG5cbmV4cG9ydCB0eXBlIFJlc29sdmVyID0gKFxuICBfOiB1bmtub3duLFxuICBhcmdzOiB7XG4gICAgZHJhZnQ/OiBib29sZWFuXG4gICAgZmFsbGJhY2tMb2NhbGU/OiBzdHJpbmdcbiAgICBpZDogbnVtYmVyIHwgc3RyaW5nXG4gICAgbG9jYWxlPzogc3RyaW5nXG4gIH0sXG4gIGNvbnRleHQ6IHtcbiAgICByZXE6IFBheWxvYWRSZXF1ZXN0XG4gICAgcmVzOiBSZXNwb25zZVxuICB9LFxuKSA9PiBQcm9taXNlPERvY3VtZW50PlxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBmaW5kVmVyc2lvbkJ5SURSZXNvbHZlcihnbG9iYWxDb25maWc6IFNhbml0aXplZEdsb2JhbENvbmZpZyk6IFJlc29sdmVyIHtcbiAgcmV0dXJuIGFzeW5jIGZ1bmN0aW9uIHJlc29sdmVyKF8sIGFyZ3MsIGNvbnRleHQpIHtcbiAgICBpZiAoYXJncy5sb2NhbGUpIGNvbnRleHQucmVxLmxvY2FsZSA9IGFyZ3MubG9jYWxlXG4gICAgaWYgKGFyZ3MuZmFsbGJhY2tMb2NhbGUpIGNvbnRleHQucmVxLmZhbGxiYWNrTG9jYWxlID0gYXJncy5mYWxsYmFja0xvY2FsZVxuXG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIGlkOiBhcmdzLmlkLFxuICAgICAgZGVwdGg6IDAsXG4gICAgICBkcmFmdDogYXJncy5kcmFmdCxcbiAgICAgIGdsb2JhbENvbmZpZyxcbiAgICAgIHJlcTogaXNvbGF0ZU9iamVjdFByb3BlcnR5PFBheWxvYWRSZXF1ZXN0Pihjb250ZXh0LnJlcSwgJ3RyYW5zYWN0aW9uSUQnKSxcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBmaW5kVmVyc2lvbkJ5SUQob3B0aW9ucylcbiAgICByZXR1cm4gcmVzdWx0XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJmaW5kVmVyc2lvbkJ5SURSZXNvbHZlciIsImdsb2JhbENvbmZpZyIsInJlc29sdmVyIiwiXyIsImFyZ3MiLCJjb250ZXh0IiwibG9jYWxlIiwicmVxIiwiZmFsbGJhY2tMb2NhbGUiLCJvcHRpb25zIiwiaWQiLCJkZXB0aCIsImRyYWZ0IiwiaXNvbGF0ZU9iamVjdFByb3BlcnR5IiwicmVzdWx0IiwiZmluZFZlcnNpb25CeUlEIl0sIm1hcHBpbmdzIjoiQUFBQSxvQ0FBb0M7Ozs7K0JBd0JwQzs7O2VBQXdCQTs7OzhFQWpCVTt3RUFDTjs7Ozs7O0FBZ0JiLFNBQVNBLHdCQUF3QkMsWUFBbUM7SUFDakYsT0FBTyxlQUFlQyxTQUFTQyxDQUFDLEVBQUVDLElBQUksRUFBRUMsT0FBTztRQUM3QyxJQUFJRCxLQUFLRSxNQUFNLEVBQUVELFFBQVFFLEdBQUcsQ0FBQ0QsTUFBTSxHQUFHRixLQUFLRSxNQUFNO1FBQ2pELElBQUlGLEtBQUtJLGNBQWMsRUFBRUgsUUFBUUUsR0FBRyxDQUFDQyxjQUFjLEdBQUdKLEtBQUtJLGNBQWM7UUFFekUsTUFBTUMsVUFBVTtZQUNkQyxJQUFJTixLQUFLTSxFQUFFO1lBQ1hDLE9BQU87WUFDUEMsT0FBT1IsS0FBS1EsS0FBSztZQUNqQlg7WUFDQU0sS0FBS00sSUFBQUEsOEJBQXFCLEVBQWlCUixRQUFRRSxHQUFHLEVBQUU7UUFDMUQ7UUFFQSxNQUFNTyxTQUFTLE1BQU1DLElBQUFBLHdCQUFlLEVBQUNOO1FBQ3JDLE9BQU9LO0lBQ1Q7QUFDRiJ9
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "default", {
8
8
  return findVersionsResolver;
9
9
  }
10
10
  });
11
- const _isolateTransactionID = /*#__PURE__*/ _interop_require_default(require("../../../utilities/isolateTransactionID"));
11
+ const _isolateObjectProperty = /*#__PURE__*/ _interop_require_default(require("../../../utilities/isolateObjectProperty"));
12
12
  const _findVersions = /*#__PURE__*/ _interop_require_default(require("../../operations/findVersions"));
13
13
  function _interop_require_default(obj) {
14
14
  return obj && obj.__esModule ? obj : {
@@ -22,7 +22,7 @@ function findVersionsResolver(globalConfig) {
22
22
  globalConfig,
23
23
  limit: args.limit,
24
24
  page: args.page,
25
- req: (0, _isolateTransactionID.default)(context.req),
25
+ req: (0, _isolateObjectProperty.default)(context.req, 'transactionID'),
26
26
  sort: args.sort,
27
27
  where: args.where
28
28
  };
@@ -31,4 +31,4 @@ function findVersionsResolver(globalConfig) {
31
31
  };
32
32
  }
33
33
 
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9nbG9iYWxzL2dyYXBocWwvcmVzb2x2ZXJzL2ZpbmRWZXJzaW9ucy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJlc3BvbnNlIH0gZnJvbSAnZXhwcmVzcydcblxuaW1wb3J0IHR5cGUgeyBQYXlsb2FkUmVxdWVzdCB9IGZyb20gJy4uLy4uLy4uL2V4cHJlc3MvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IERvY3VtZW50LCBXaGVyZSB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRHbG9iYWxDb25maWcgfSBmcm9tICcuLi8uLi9jb25maWcvdHlwZXMnXG5cbmltcG9ydCBpc29sYXRlVHJhbnNhY3Rpb25JRCBmcm9tICcuLi8uLi8uLi91dGlsaXRpZXMvaXNvbGF0ZVRyYW5zYWN0aW9uSUQnXG5pbXBvcnQgZmluZFZlcnNpb25zIGZyb20gJy4uLy4uL29wZXJhdGlvbnMvZmluZFZlcnNpb25zJ1xuXG5leHBvcnQgdHlwZSBSZXNvbHZlciA9IChcbiAgXzogdW5rbm93bixcbiAgYXJnczoge1xuICAgIGZhbGxiYWNrTG9jYWxlPzogc3RyaW5nXG4gICAgbGltaXQ/OiBudW1iZXJcbiAgICBsb2NhbGU/OiBzdHJpbmdcbiAgICBwYWdlPzogbnVtYmVyXG4gICAgc29ydD86IHN0cmluZ1xuICAgIHdoZXJlOiBXaGVyZVxuICB9LFxuICBjb250ZXh0OiB7XG4gICAgcmVxOiBQYXlsb2FkUmVxdWVzdFxuICAgIHJlczogUmVzcG9uc2VcbiAgfSxcbikgPT4gUHJvbWlzZTxEb2N1bWVudD5cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZmluZFZlcnNpb25zUmVzb2x2ZXIoZ2xvYmFsQ29uZmlnOiBTYW5pdGl6ZWRHbG9iYWxDb25maWcpOiBSZXNvbHZlciB7XG4gIHJldHVybiBhc3luYyBmdW5jdGlvbiByZXNvbHZlcihfLCBhcmdzLCBjb250ZXh0KSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIGRlcHRoOiAwLFxuICAgICAgZ2xvYmFsQ29uZmlnLFxuICAgICAgbGltaXQ6IGFyZ3MubGltaXQsXG4gICAgICBwYWdlOiBhcmdzLnBhZ2UsXG4gICAgICByZXE6IGlzb2xhdGVUcmFuc2FjdGlvbklEKGNvbnRleHQucmVxKSxcbiAgICAgIHNvcnQ6IGFyZ3Muc29ydCxcbiAgICAgIHdoZXJlOiBhcmdzLndoZXJlLFxuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGZpbmRWZXJzaW9ucyhvcHRpb25zKVxuXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9XG59XG4iXSwibmFtZXMiOlsiZmluZFZlcnNpb25zUmVzb2x2ZXIiLCJnbG9iYWxDb25maWciLCJyZXNvbHZlciIsIl8iLCJhcmdzIiwiY29udGV4dCIsIm9wdGlvbnMiLCJkZXB0aCIsImxpbWl0IiwicGFnZSIsInJlcSIsImlzb2xhdGVUcmFuc2FjdGlvbklEIiwic29ydCIsIndoZXJlIiwicmVzdWx0IiwiZmluZFZlcnNpb25zIl0sIm1hcHBpbmdzIjoiOzs7OytCQXlCQTs7O2VBQXdCQTs7OzZFQW5CUztxRUFDUjs7Ozs7O0FBa0JWLFNBQVNBLHFCQUFxQkMsWUFBbUM7SUFDOUUsT0FBTyxlQUFlQyxTQUFTQyxDQUFDLEVBQUVDLElBQUksRUFBRUMsT0FBTztRQUM3QyxNQUFNQyxVQUFVO1lBQ2RDLE9BQU87WUFDUE47WUFDQU8sT0FBT0osS0FBS0ksS0FBSztZQUNqQkMsTUFBTUwsS0FBS0ssSUFBSTtZQUNmQyxLQUFLQyxJQUFBQSw2QkFBb0IsRUFBQ04sUUFBUUssR0FBRztZQUNyQ0UsTUFBTVIsS0FBS1EsSUFBSTtZQUNmQyxPQUFPVCxLQUFLUyxLQUFLO1FBQ25CO1FBRUEsTUFBTUMsU0FBUyxNQUFNQyxJQUFBQSxxQkFBWSxFQUFDVDtRQUVsQyxPQUFPUTtJQUNUO0FBQ0YifQ==
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9nbG9iYWxzL2dyYXBocWwvcmVzb2x2ZXJzL2ZpbmRWZXJzaW9ucy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJlc3BvbnNlIH0gZnJvbSAnZXhwcmVzcydcblxuaW1wb3J0IHR5cGUgeyBQYXlsb2FkUmVxdWVzdCB9IGZyb20gJy4uLy4uLy4uL2V4cHJlc3MvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IERvY3VtZW50LCBXaGVyZSB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRHbG9iYWxDb25maWcgfSBmcm9tICcuLi8uLi9jb25maWcvdHlwZXMnXG5cbmltcG9ydCBpc29sYXRlT2JqZWN0UHJvcGVydHkgZnJvbSAnLi4vLi4vLi4vdXRpbGl0aWVzL2lzb2xhdGVPYmplY3RQcm9wZXJ0eSdcbmltcG9ydCBmaW5kVmVyc2lvbnMgZnJvbSAnLi4vLi4vb3BlcmF0aW9ucy9maW5kVmVyc2lvbnMnXG5cbmV4cG9ydCB0eXBlIFJlc29sdmVyID0gKFxuICBfOiB1bmtub3duLFxuICBhcmdzOiB7XG4gICAgZmFsbGJhY2tMb2NhbGU/OiBzdHJpbmdcbiAgICBsaW1pdD86IG51bWJlclxuICAgIGxvY2FsZT86IHN0cmluZ1xuICAgIHBhZ2U/OiBudW1iZXJcbiAgICBzb3J0Pzogc3RyaW5nXG4gICAgd2hlcmU6IFdoZXJlXG4gIH0sXG4gIGNvbnRleHQ6IHtcbiAgICByZXE6IFBheWxvYWRSZXF1ZXN0XG4gICAgcmVzOiBSZXNwb25zZVxuICB9LFxuKSA9PiBQcm9taXNlPERvY3VtZW50PlxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBmaW5kVmVyc2lvbnNSZXNvbHZlcihnbG9iYWxDb25maWc6IFNhbml0aXplZEdsb2JhbENvbmZpZyk6IFJlc29sdmVyIHtcbiAgcmV0dXJuIGFzeW5jIGZ1bmN0aW9uIHJlc29sdmVyKF8sIGFyZ3MsIGNvbnRleHQpIHtcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgZGVwdGg6IDAsXG4gICAgICBnbG9iYWxDb25maWcsXG4gICAgICBsaW1pdDogYXJncy5saW1pdCxcbiAgICAgIHBhZ2U6IGFyZ3MucGFnZSxcbiAgICAgIHJlcTogaXNvbGF0ZU9iamVjdFByb3BlcnR5PFBheWxvYWRSZXF1ZXN0Pihjb250ZXh0LnJlcSwgJ3RyYW5zYWN0aW9uSUQnKSxcbiAgICAgIHNvcnQ6IGFyZ3Muc29ydCxcbiAgICAgIHdoZXJlOiBhcmdzLndoZXJlLFxuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGZpbmRWZXJzaW9ucyhvcHRpb25zKVxuXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9XG59XG4iXSwibmFtZXMiOlsiZmluZFZlcnNpb25zUmVzb2x2ZXIiLCJnbG9iYWxDb25maWciLCJyZXNvbHZlciIsIl8iLCJhcmdzIiwiY29udGV4dCIsIm9wdGlvbnMiLCJkZXB0aCIsImxpbWl0IiwicGFnZSIsInJlcSIsImlzb2xhdGVPYmplY3RQcm9wZXJ0eSIsInNvcnQiLCJ3aGVyZSIsInJlc3VsdCIsImZpbmRWZXJzaW9ucyJdLCJtYXBwaW5ncyI6Ijs7OzsrQkF5QkE7OztlQUF3QkE7Ozs4RUFuQlU7cUVBQ1Q7Ozs7OztBQWtCVixTQUFTQSxxQkFBcUJDLFlBQW1DO0lBQzlFLE9BQU8sZUFBZUMsU0FBU0MsQ0FBQyxFQUFFQyxJQUFJLEVBQUVDLE9BQU87UUFDN0MsTUFBTUMsVUFBVTtZQUNkQyxPQUFPO1lBQ1BOO1lBQ0FPLE9BQU9KLEtBQUtJLEtBQUs7WUFDakJDLE1BQU1MLEtBQUtLLElBQUk7WUFDZkMsS0FBS0MsSUFBQUEsOEJBQXFCLEVBQWlCTixRQUFRSyxHQUFHLEVBQUU7WUFDeERFLE1BQU1SLEtBQUtRLElBQUk7WUFDZkMsT0FBT1QsS0FBS1MsS0FBSztRQUNuQjtRQUVBLE1BQU1DLFNBQVMsTUFBTUMsSUFBQUEscUJBQVksRUFBQ1Q7UUFFbEMsT0FBT1E7SUFDVDtBQUNGIn0=
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "default", {
8
8
  return restoreVersionResolver;
9
9
  }
10
10
  });
11
- const _isolateTransactionID = /*#__PURE__*/ _interop_require_default(require("../../../utilities/isolateTransactionID"));
11
+ const _isolateObjectProperty = /*#__PURE__*/ _interop_require_default(require("../../../utilities/isolateObjectProperty"));
12
12
  const _restoreVersion = /*#__PURE__*/ _interop_require_default(require("../../operations/restoreVersion"));
13
13
  function _interop_require_default(obj) {
14
14
  return obj && obj.__esModule ? obj : {
@@ -21,11 +21,11 @@ function restoreVersionResolver(globalConfig) {
21
21
  id: args.id,
22
22
  depth: 0,
23
23
  globalConfig,
24
- req: (0, _isolateTransactionID.default)(context.req)
24
+ req: (0, _isolateObjectProperty.default)(context.req, 'transactionID')
25
25
  };
26
26
  const result = await (0, _restoreVersion.default)(options);
27
27
  return result;
28
28
  };
29
29
  }
30
30
 
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9nbG9iYWxzL2dyYXBocWwvcmVzb2x2ZXJzL3Jlc3RvcmVWZXJzaW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXBhcmFtLXJlYXNzaWduICovXG5cbmltcG9ydCB0eXBlIHsgUGF5bG9hZFJlcXVlc3QgfSBmcm9tICcuLi8uLi8uLi9leHByZXNzL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBEb2N1bWVudCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRHbG9iYWxDb25maWcgfSBmcm9tICcuLi8uLi9jb25maWcvdHlwZXMnXG5cbmltcG9ydCBpc29sYXRlVHJhbnNhY3Rpb25JRCBmcm9tICcuLi8uLi8uLi91dGlsaXRpZXMvaXNvbGF0ZVRyYW5zYWN0aW9uSUQnXG5pbXBvcnQgcmVzdG9yZVZlcnNpb24gZnJvbSAnLi4vLi4vb3BlcmF0aW9ucy9yZXN0b3JlVmVyc2lvbidcblxudHlwZSBSZXNvbHZlciA9IChcbiAgXzogdW5rbm93bixcbiAgYXJnczoge1xuICAgIGlkOiBudW1iZXIgfCBzdHJpbmdcbiAgfSxcbiAgY29udGV4dDoge1xuICAgIHJlcTogUGF5bG9hZFJlcXVlc3RcbiAgICByZXM6IFJlc3BvbnNlXG4gIH0sXG4pID0+IFByb21pc2U8RG9jdW1lbnQ+XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiByZXN0b3JlVmVyc2lvblJlc29sdmVyKGdsb2JhbENvbmZpZzogU2FuaXRpemVkR2xvYmFsQ29uZmlnKTogUmVzb2x2ZXIge1xuICByZXR1cm4gYXN5bmMgZnVuY3Rpb24gcmVzb2x2ZXIoXywgYXJncywgY29udGV4dCkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICBpZDogYXJncy5pZCxcbiAgICAgIGRlcHRoOiAwLFxuICAgICAgZ2xvYmFsQ29uZmlnLFxuICAgICAgcmVxOiBpc29sYXRlVHJhbnNhY3Rpb25JRChjb250ZXh0LnJlcSksXG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVzdG9yZVZlcnNpb24ob3B0aW9ucylcbiAgICByZXR1cm4gcmVzdWx0XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJyZXN0b3JlVmVyc2lvblJlc29sdmVyIiwiZ2xvYmFsQ29uZmlnIiwicmVzb2x2ZXIiLCJfIiwiYXJncyIsImNvbnRleHQiLCJvcHRpb25zIiwiaWQiLCJkZXB0aCIsInJlcSIsImlzb2xhdGVUcmFuc2FjdGlvbklEIiwicmVzdWx0IiwicmVzdG9yZVZlcnNpb24iXSwibWFwcGluZ3MiOiJBQUFBLG9DQUFvQzs7OzsrQkFtQnBDOzs7ZUFBd0JBOzs7NkVBYlM7dUVBQ047Ozs7OztBQVlaLFNBQVNBLHVCQUF1QkMsWUFBbUM7SUFDaEYsT0FBTyxlQUFlQyxTQUFTQyxDQUFDLEVBQUVDLElBQUksRUFBRUMsT0FBTztRQUM3QyxNQUFNQyxVQUFVO1lBQ2RDLElBQUlILEtBQUtHLEVBQUU7WUFDWEMsT0FBTztZQUNQUDtZQUNBUSxLQUFLQyxJQUFBQSw2QkFBb0IsRUFBQ0wsUUFBUUksR0FBRztRQUN2QztRQUVBLE1BQU1FLFNBQVMsTUFBTUMsSUFBQUEsdUJBQWMsRUFBQ047UUFDcEMsT0FBT0s7SUFDVDtBQUNGIn0=
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9nbG9iYWxzL2dyYXBocWwvcmVzb2x2ZXJzL3Jlc3RvcmVWZXJzaW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXBhcmFtLXJlYXNzaWduICovXG5cbmltcG9ydCB0eXBlIHsgUGF5bG9hZFJlcXVlc3QgfSBmcm9tICcuLi8uLi8uLi9leHByZXNzL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBEb2N1bWVudCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRHbG9iYWxDb25maWcgfSBmcm9tICcuLi8uLi9jb25maWcvdHlwZXMnXG5cbmltcG9ydCBpc29sYXRlT2JqZWN0UHJvcGVydHkgZnJvbSAnLi4vLi4vLi4vdXRpbGl0aWVzL2lzb2xhdGVPYmplY3RQcm9wZXJ0eSdcbmltcG9ydCByZXN0b3JlVmVyc2lvbiBmcm9tICcuLi8uLi9vcGVyYXRpb25zL3Jlc3RvcmVWZXJzaW9uJ1xuXG50eXBlIFJlc29sdmVyID0gKFxuICBfOiB1bmtub3duLFxuICBhcmdzOiB7XG4gICAgaWQ6IG51bWJlciB8IHN0cmluZ1xuICB9LFxuICBjb250ZXh0OiB7XG4gICAgcmVxOiBQYXlsb2FkUmVxdWVzdFxuICAgIHJlczogUmVzcG9uc2VcbiAgfSxcbikgPT4gUHJvbWlzZTxEb2N1bWVudD5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJlc3RvcmVWZXJzaW9uUmVzb2x2ZXIoZ2xvYmFsQ29uZmlnOiBTYW5pdGl6ZWRHbG9iYWxDb25maWcpOiBSZXNvbHZlciB7XG4gIHJldHVybiBhc3luYyBmdW5jdGlvbiByZXNvbHZlcihfLCBhcmdzLCBjb250ZXh0KSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIGlkOiBhcmdzLmlkLFxuICAgICAgZGVwdGg6IDAsXG4gICAgICBnbG9iYWxDb25maWcsXG4gICAgICByZXE6IGlzb2xhdGVPYmplY3RQcm9wZXJ0eTxQYXlsb2FkUmVxdWVzdD4oY29udGV4dC5yZXEsICd0cmFuc2FjdGlvbklEJyksXG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVzdG9yZVZlcnNpb24ob3B0aW9ucylcbiAgICByZXR1cm4gcmVzdWx0XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJyZXN0b3JlVmVyc2lvblJlc29sdmVyIiwiZ2xvYmFsQ29uZmlnIiwicmVzb2x2ZXIiLCJfIiwiYXJncyIsImNvbnRleHQiLCJvcHRpb25zIiwiaWQiLCJkZXB0aCIsInJlcSIsImlzb2xhdGVPYmplY3RQcm9wZXJ0eSIsInJlc3VsdCIsInJlc3RvcmVWZXJzaW9uIl0sIm1hcHBpbmdzIjoiQUFBQSxvQ0FBb0M7Ozs7K0JBbUJwQzs7O2VBQXdCQTs7OzhFQWJVO3VFQUNQOzs7Ozs7QUFZWixTQUFTQSx1QkFBdUJDLFlBQW1DO0lBQ2hGLE9BQU8sZUFBZUMsU0FBU0MsQ0FBQyxFQUFFQyxJQUFJLEVBQUVDLE9BQU87UUFDN0MsTUFBTUMsVUFBVTtZQUNkQyxJQUFJSCxLQUFLRyxFQUFFO1lBQ1hDLE9BQU87WUFDUFA7WUFDQVEsS0FBS0MsSUFBQUEsOEJBQXFCLEVBQWlCTCxRQUFRSSxHQUFHLEVBQUU7UUFDMUQ7UUFFQSxNQUFNRSxTQUFTLE1BQU1DLElBQUFBLHVCQUFjLEVBQUNOO1FBQ3BDLE9BQU9LO0lBQ1Q7QUFDRiJ9
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "default", {
8
8
  return updateResolver;
9
9
  }
10
10
  });
11
- const _isolateTransactionID = /*#__PURE__*/ _interop_require_default(require("../../../utilities/isolateTransactionID"));
11
+ const _isolateObjectProperty = /*#__PURE__*/ _interop_require_default(require("../../../utilities/isolateObjectProperty"));
12
12
  const _update = /*#__PURE__*/ _interop_require_default(require("../../operations/update"));
13
13
  function _interop_require_default(obj) {
14
14
  return obj && obj.__esModule ? obj : {
@@ -25,7 +25,7 @@ function updateResolver(globalConfig) {
25
25
  depth: 0,
26
26
  draft: args.draft,
27
27
  globalConfig,
28
- req: (0, _isolateTransactionID.default)(context.req),
28
+ req: (0, _isolateObjectProperty.default)(context.req, 'transactionID'),
29
29
  slug
30
30
  };
31
31
  const result = await (0, _update.default)(options);
@@ -33,4 +33,4 @@ function updateResolver(globalConfig) {
33
33
  };
34
34
  }
35
35
 
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9nbG9iYWxzL2dyYXBocWwvcmVzb2x2ZXJzL3VwZGF0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1wYXJhbS1yZWFzc2lnbiAqL1xuaW1wb3J0IHR5cGUgeyBEZWVwUGFydGlhbCB9IGZyb20gJ3RzLWVzc2VudGlhbHMnXG5cbmltcG9ydCB0eXBlIHsgR2VuZXJhdGVkVHlwZXMgfSBmcm9tICcuLi8uLi8uLi8nXG5pbXBvcnQgdHlwZSB7IFBheWxvYWRSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vLi4vZXhwcmVzcy90eXBlcydcbmltcG9ydCB0eXBlIHsgU2FuaXRpemVkR2xvYmFsQ29uZmlnIH0gZnJvbSAnLi4vLi4vY29uZmlnL3R5cGVzJ1xuXG5pbXBvcnQgaXNvbGF0ZVRyYW5zYWN0aW9uSUQgZnJvbSAnLi4vLi4vLi4vdXRpbGl0aWVzL2lzb2xhdGVUcmFuc2FjdGlvbklEJ1xuaW1wb3J0IHVwZGF0ZSBmcm9tICcuLi8uLi9vcGVyYXRpb25zL3VwZGF0ZSdcblxudHlwZSBSZXNvbHZlcjxUU2x1ZyBleHRlbmRzIGtleW9mIEdlbmVyYXRlZFR5cGVzWydnbG9iYWxzJ10+ID0gKFxuICBfOiB1bmtub3duLFxuICBhcmdzOiB7XG4gICAgZGF0YT86IERlZXBQYXJ0aWFsPE9taXQ8R2VuZXJhdGVkVHlwZXNbJ2dsb2JhbHMnXVtUU2x1Z10sICdpZCc+PlxuICAgIGRyYWZ0PzogYm9vbGVhblxuICAgIGZhbGxiYWNrTG9jYWxlPzogc3RyaW5nXG4gICAgbG9jYWxlPzogc3RyaW5nXG4gIH0sXG4gIGNvbnRleHQ6IHtcbiAgICByZXE6IFBheWxvYWRSZXF1ZXN0XG4gICAgcmVzOiBSZXNwb25zZVxuICB9LFxuKSA9PiBQcm9taXNlPEdlbmVyYXRlZFR5cGVzWydnbG9iYWxzJ11bVFNsdWddPlxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1cGRhdGVSZXNvbHZlcjxUU2x1ZyBleHRlbmRzIGtleW9mIEdlbmVyYXRlZFR5cGVzWydnbG9iYWxzJ10+KFxuICBnbG9iYWxDb25maWc6IFNhbml0aXplZEdsb2JhbENvbmZpZyxcbik6IFJlc29sdmVyPFRTbHVnPiB7XG4gIHJldHVybiBhc3luYyBmdW5jdGlvbiByZXNvbHZlcihfLCBhcmdzLCBjb250ZXh0KSB7XG4gICAgaWYgKGFyZ3MubG9jYWxlKSBjb250ZXh0LnJlcS5sb2NhbGUgPSBhcmdzLmxvY2FsZVxuICAgIGlmIChhcmdzLmZhbGxiYWNrTG9jYWxlKSBjb250ZXh0LnJlcS5mYWxsYmFja0xvY2FsZSA9IGFyZ3MuZmFsbGJhY2tMb2NhbGVcblxuICAgIGNvbnN0IHsgc2x1ZyB9ID0gZ2xvYmFsQ29uZmlnXG5cbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgZGF0YTogYXJncy5kYXRhLFxuICAgICAgZGVwdGg6IDAsXG4gICAgICBkcmFmdDogYXJncy5kcmFmdCxcbiAgICAgIGdsb2JhbENvbmZpZyxcbiAgICAgIHJlcTogaXNvbGF0ZVRyYW5zYWN0aW9uSUQoY29udGV4dC5yZXEpLFxuICAgICAgc2x1ZyxcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB1cGRhdGU8VFNsdWc+KG9wdGlvbnMpXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9XG59XG4iXSwibmFtZXMiOlsidXBkYXRlUmVzb2x2ZXIiLCJnbG9iYWxDb25maWciLCJyZXNvbHZlciIsIl8iLCJhcmdzIiwiY29udGV4dCIsImxvY2FsZSIsInJlcSIsImZhbGxiYWNrTG9jYWxlIiwic2x1ZyIsIm9wdGlvbnMiLCJkYXRhIiwiZGVwdGgiLCJkcmFmdCIsImlzb2xhdGVUcmFuc2FjdGlvbklEIiwicmVzdWx0IiwidXBkYXRlIl0sIm1hcHBpbmdzIjoiQUFBQSxvQ0FBb0M7Ozs7K0JBd0JwQzs7O2VBQXdCQTs7OzZFQWpCUzsrREFDZDs7Ozs7O0FBZ0JKLFNBQVNBLGVBQ3RCQyxZQUFtQztJQUVuQyxPQUFPLGVBQWVDLFNBQVNDLENBQUMsRUFBRUMsSUFBSSxFQUFFQyxPQUFPO1FBQzdDLElBQUlELEtBQUtFLE1BQU0sRUFBRUQsUUFBUUUsR0FBRyxDQUFDRCxNQUFNLEdBQUdGLEtBQUtFLE1BQU07UUFDakQsSUFBSUYsS0FBS0ksY0FBYyxFQUFFSCxRQUFRRSxHQUFHLENBQUNDLGNBQWMsR0FBR0osS0FBS0ksY0FBYztRQUV6RSxNQUFNLEVBQUVDLElBQUksRUFBRSxHQUFHUjtRQUVqQixNQUFNUyxVQUFVO1lBQ2RDLE1BQU1QLEtBQUtPLElBQUk7WUFDZkMsT0FBTztZQUNQQyxPQUFPVCxLQUFLUyxLQUFLO1lBQ2pCWjtZQUNBTSxLQUFLTyxJQUFBQSw2QkFBb0IsRUFBQ1QsUUFBUUUsR0FBRztZQUNyQ0U7UUFDRjtRQUVBLE1BQU1NLFNBQVMsTUFBTUMsSUFBQUEsZUFBTSxFQUFRTjtRQUNuQyxPQUFPSztJQUNUO0FBQ0YifQ==
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9nbG9iYWxzL2dyYXBocWwvcmVzb2x2ZXJzL3VwZGF0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1wYXJhbS1yZWFzc2lnbiAqL1xuaW1wb3J0IHR5cGUgeyBEZWVwUGFydGlhbCB9IGZyb20gJ3RzLWVzc2VudGlhbHMnXG5cbmltcG9ydCB0eXBlIHsgR2VuZXJhdGVkVHlwZXMgfSBmcm9tICcuLi8uLi8uLi8nXG5pbXBvcnQgdHlwZSB7IFBheWxvYWRSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vLi4vZXhwcmVzcy90eXBlcydcbmltcG9ydCB0eXBlIHsgU2FuaXRpemVkR2xvYmFsQ29uZmlnIH0gZnJvbSAnLi4vLi4vY29uZmlnL3R5cGVzJ1xuXG5pbXBvcnQgaXNvbGF0ZU9iamVjdFByb3BlcnR5IGZyb20gJy4uLy4uLy4uL3V0aWxpdGllcy9pc29sYXRlT2JqZWN0UHJvcGVydHknXG5pbXBvcnQgdXBkYXRlIGZyb20gJy4uLy4uL29wZXJhdGlvbnMvdXBkYXRlJ1xuXG50eXBlIFJlc29sdmVyPFRTbHVnIGV4dGVuZHMga2V5b2YgR2VuZXJhdGVkVHlwZXNbJ2dsb2JhbHMnXT4gPSAoXG4gIF86IHVua25vd24sXG4gIGFyZ3M6IHtcbiAgICBkYXRhPzogRGVlcFBhcnRpYWw8T21pdDxHZW5lcmF0ZWRUeXBlc1snZ2xvYmFscyddW1RTbHVnXSwgJ2lkJz4+XG4gICAgZHJhZnQ/OiBib29sZWFuXG4gICAgZmFsbGJhY2tMb2NhbGU/OiBzdHJpbmdcbiAgICBsb2NhbGU/OiBzdHJpbmdcbiAgfSxcbiAgY29udGV4dDoge1xuICAgIHJlcTogUGF5bG9hZFJlcXVlc3RcbiAgICByZXM6IFJlc3BvbnNlXG4gIH0sXG4pID0+IFByb21pc2U8R2VuZXJhdGVkVHlwZXNbJ2dsb2JhbHMnXVtUU2x1Z10+XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVwZGF0ZVJlc29sdmVyPFRTbHVnIGV4dGVuZHMga2V5b2YgR2VuZXJhdGVkVHlwZXNbJ2dsb2JhbHMnXT4oXG4gIGdsb2JhbENvbmZpZzogU2FuaXRpemVkR2xvYmFsQ29uZmlnLFxuKTogUmVzb2x2ZXI8VFNsdWc+IHtcbiAgcmV0dXJuIGFzeW5jIGZ1bmN0aW9uIHJlc29sdmVyKF8sIGFyZ3MsIGNvbnRleHQpIHtcbiAgICBpZiAoYXJncy5sb2NhbGUpIGNvbnRleHQucmVxLmxvY2FsZSA9IGFyZ3MubG9jYWxlXG4gICAgaWYgKGFyZ3MuZmFsbGJhY2tMb2NhbGUpIGNvbnRleHQucmVxLmZhbGxiYWNrTG9jYWxlID0gYXJncy5mYWxsYmFja0xvY2FsZVxuXG4gICAgY29uc3QgeyBzbHVnIH0gPSBnbG9iYWxDb25maWdcblxuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICBkYXRhOiBhcmdzLmRhdGEsXG4gICAgICBkZXB0aDogMCxcbiAgICAgIGRyYWZ0OiBhcmdzLmRyYWZ0LFxuICAgICAgZ2xvYmFsQ29uZmlnLFxuICAgICAgcmVxOiBpc29sYXRlT2JqZWN0UHJvcGVydHk8UGF5bG9hZFJlcXVlc3Q+KGNvbnRleHQucmVxLCAndHJhbnNhY3Rpb25JRCcpLFxuICAgICAgc2x1ZyxcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB1cGRhdGU8VFNsdWc+KG9wdGlvbnMpXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9XG59XG4iXSwibmFtZXMiOlsidXBkYXRlUmVzb2x2ZXIiLCJnbG9iYWxDb25maWciLCJyZXNvbHZlciIsIl8iLCJhcmdzIiwiY29udGV4dCIsImxvY2FsZSIsInJlcSIsImZhbGxiYWNrTG9jYWxlIiwic2x1ZyIsIm9wdGlvbnMiLCJkYXRhIiwiZGVwdGgiLCJkcmFmdCIsImlzb2xhdGVPYmplY3RQcm9wZXJ0eSIsInJlc3VsdCIsInVwZGF0ZSJdLCJtYXBwaW5ncyI6IkFBQUEsb0NBQW9DOzs7OytCQXdCcEM7OztlQUF3QkE7Ozs4RUFqQlU7K0RBQ2Y7Ozs7OztBQWdCSixTQUFTQSxlQUN0QkMsWUFBbUM7SUFFbkMsT0FBTyxlQUFlQyxTQUFTQyxDQUFDLEVBQUVDLElBQUksRUFBRUMsT0FBTztRQUM3QyxJQUFJRCxLQUFLRSxNQUFNLEVBQUVELFFBQVFFLEdBQUcsQ0FBQ0QsTUFBTSxHQUFHRixLQUFLRSxNQUFNO1FBQ2pELElBQUlGLEtBQUtJLGNBQWMsRUFBRUgsUUFBUUUsR0FBRyxDQUFDQyxjQUFjLEdBQUdKLEtBQUtJLGNBQWM7UUFFekUsTUFBTSxFQUFFQyxJQUFJLEVBQUUsR0FBR1I7UUFFakIsTUFBTVMsVUFBVTtZQUNkQyxNQUFNUCxLQUFLTyxJQUFJO1lBQ2ZDLE9BQU87WUFDUEMsT0FBT1QsS0FBS1MsS0FBSztZQUNqQlo7WUFDQU0sS0FBS08sSUFBQUEsOEJBQXFCLEVBQWlCVCxRQUFRRSxHQUFHLEVBQUU7WUFDeERFO1FBQ0Y7UUFFQSxNQUFNTSxTQUFTLE1BQU1DLElBQUFBLGVBQU0sRUFBUU47UUFDbkMsT0FBT0s7SUFDVDtBQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"findOne.d.ts","sourceRoot":"","sources":["../../../../src/globals/operations/local/findOne.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAQ9C,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS,MAAM,cAAc,CAAC,SAAS,CAAC,IAAI;IAC/D,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,GAAG,CAAC,EAAE,cAAc,CAAA;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,IAAI,EAAE,CAAC,CAAA;IACP,IAAI,CAAC,EAAE,QAAQ,CAAA;CAChB,CAAA;AAED,wBAA8B,YAAY,CAAC,CAAC,SAAS,MAAM,cAAc,CAAC,SAAS,CAAC,EAClF,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAClB,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CA8CvC"}
1
+ {"version":3,"file":"findOne.d.ts","sourceRoot":"","sources":["../../../../src/globals/operations/local/findOne.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAQ9C,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS,MAAM,cAAc,CAAC,SAAS,CAAC,IAAI;IAC/D,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,GAAG,CAAC,EAAE,cAAc,CAAA;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,IAAI,EAAE,CAAC,CAAA;IACP,IAAI,CAAC,EAAE,QAAQ,CAAA;CAChB,CAAA;AAED,wBAA8B,YAAY,CAAC,CAAC,SAAS,MAAM,cAAc,CAAC,SAAS,CAAC,EAClF,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAClB,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAqDvC"}