@projectcor/maia-components 2.35.4-2 → 2.35.4-4

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 (105) hide show
  1. package/lib/App.js +19 -44
  2. package/lib/components/atoms/ApprovalBox/ApprovalBox.js +63 -4
  3. package/lib/components/atoms/ApprovalBox/ApprovalBox.spec.js +31 -3
  4. package/lib/components/atoms/ApprovalBox/ApprovalBox.styles.js +16 -4
  5. package/lib/components/atoms/ContextMentionChip/buildChipElement.js +12 -1
  6. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +127 -5
  7. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.js +2 -29
  8. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.styles.js +24 -33
  9. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +2 -19
  10. package/lib/components/atoms/MAIAInput/MAIAInput.js +234 -17
  11. package/lib/components/atoms/MAIAInput/MAIAInput.spec.js +84 -2
  12. package/lib/components/atoms/MAIAInput/styles.js +15 -11
  13. package/lib/components/atoms/SkillsDropdown/SkillsDropdown.js +208 -0
  14. package/lib/components/atoms/SkillsDropdown/SkillsDropdown.spec.js +107 -0
  15. package/lib/components/atoms/SkillsDropdown/SkillsDropdown.styles.js +77 -0
  16. package/lib/components/atoms/SkillsDropdown/index.js +2 -0
  17. package/lib/components/atoms/icons/PlusIcon.js +29 -0
  18. package/lib/components/atoms/icons/SkillCreatedByIcon.js +20 -0
  19. package/lib/components/atoms/icons/SkillVisibilityEveryoneIcon.js +23 -0
  20. package/lib/components/atoms/icons/SkillVisibilityOnlyMeIcon.js +23 -0
  21. package/lib/components/atoms/icons/SkillsNavIcon.js +4 -7
  22. package/lib/components/atoms/icons/index.js +5 -1
  23. package/lib/components/index.js +1 -2
  24. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.js +34 -11
  25. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.spec.js +77 -0
  26. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +7 -9
  27. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +4 -8
  28. package/lib/components/molecules/ChatAIMessages/newStyles.js +26 -29
  29. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +62 -24
  30. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +70 -69
  31. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.js +333 -242
  32. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.spec.js +128 -0
  33. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.styles.js +131 -104
  34. package/lib/components/molecules/ChatFooter/ChatFooter.js +15 -5
  35. package/lib/components/molecules/ChatFooter/ChatFooter.spec.js +1 -8
  36. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.js +1 -3
  37. package/lib/components/molecules/Sidebar/Sidebar.js +36 -33
  38. package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +2 -2
  39. package/lib/components/molecules/Sidebar/Sidebar.spec.js +8 -19
  40. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +21 -12
  41. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.js +8 -1
  42. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.js +430 -184
  43. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.spec.js +100 -22
  44. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.styles.js +131 -74
  45. package/lib/constants/config.js +1 -4
  46. package/lib/constants/permissions/index.js +2 -2
  47. package/lib/constants/permissions/utils.js +3 -6
  48. package/lib/hooks/useAgentModel/useCreateAgent.js +6 -6
  49. package/lib/hooks/useAgentModel/useCreateAgent.spec.js +95 -0
  50. package/lib/hooks/useAgentModel/useUpdateAgent.js +6 -6
  51. package/lib/hooks/useAgentModel/useUpdateAgent.spec.js +96 -0
  52. package/lib/hooks/useChatManager/useChatManager.js +5 -4
  53. package/lib/hooks/useContextMentions.js +96 -56
  54. package/lib/hooks/useEntitySearch.js +92 -278
  55. package/lib/hooks/useEvent.js +15 -2
  56. package/lib/hooks/useEvent.spec.js +7 -2
  57. package/lib/hooks/useMentionAllowedTypes.js +9 -25
  58. package/lib/hooks/useMentionAllowedTypes.spec.js +4 -15
  59. package/lib/hooks/useMentionPopover.js +9 -33
  60. package/lib/hooks/useSkillsCatalog.js +66 -0
  61. package/lib/hooks/useSkillsCatalog.spec.js +88 -0
  62. package/lib/index.js +2 -5
  63. package/lib/lang/br/index.js +39 -32
  64. package/lib/lang/en/index.js +39 -32
  65. package/lib/lang/es/index.js +40 -33
  66. package/lib/lang/fr/index.js +39 -32
  67. package/lib/services/maia/Agents/setAgentToolGroups.js +2 -2
  68. package/lib/services/maia/Agents/setAgentToolGroups.spec.js +3 -3
  69. package/lib/services/maia/Orchestrator/orchestrator.js +6 -3
  70. package/lib/services/maia/Orchestrator/orchestrator.spec.js +72 -0
  71. package/lib/services/maia/Skills/createSkill.js +1 -1
  72. package/lib/services/maia/Skills/createSkill.spec.js +14 -5
  73. package/lib/services/maia/Skills/getSkills.js +70 -40
  74. package/lib/services/maia/Skills/getSkills.spec.js +152 -0
  75. package/lib/services/maia/Skills/updateSkill.js +1 -1
  76. package/lib/services/maia/Skills/updateSkill.spec.js +11 -4
  77. package/lib/styles/cascade.js +3 -29
  78. package/lib/styles/transitions.js +1 -3
  79. package/lib/types/agentModal.js +1 -1
  80. package/lib/types/global.d.js +1 -1
  81. package/lib/types/skill.js +1 -1
  82. package/lib/utils/contextMentionTriggers.js +2 -5
  83. package/lib/utils/contextMentionTriggers.spec.js +8 -6
  84. package/lib/utils/normalizeAgentConnectors.js +44 -16
  85. package/lib/utils/normalizeAgentConnectors.spec.js +43 -13
  86. package/lib/utils/renderContextMentions.js +39 -18
  87. package/package.json +1 -1
  88. package/lib/components/organisms/ChatAIPage/ChatAIPage.js +0 -486
  89. package/lib/components/organisms/ChatAIPage/ChatAIPage.spec.js +0 -231
  90. package/lib/components/organisms/ChatAIPage/ChatAIPage.styles.js +0 -16
  91. package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.js +0 -253
  92. package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.spec.js +0 -139
  93. package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.styles.js +0 -13
  94. package/lib/components/organisms/ChatAIPage/ChatAIPageHome.js +0 -229
  95. package/lib/components/organisms/ChatAIPage/ChatAIPageHome.spec.js +0 -142
  96. package/lib/components/organisms/ChatAIPage/ChatAIPageHome.styles.js +0 -144
  97. package/lib/components/organisms/ChatAIPage/getDaypart.js +0 -9
  98. package/lib/components/organisms/ChatAIPage/getDaypart.spec.js +0 -19
  99. package/lib/components/organisms/ChatAIPage/index.js +0 -3
  100. package/lib/components/organisms/ChatAIPage/pageHomeMockCards.js +0 -17
  101. package/lib/dev/DevMaiaPage.js +0 -30
  102. package/lib/hooks/useIsMaiaPageRoute.js +0 -26
  103. package/lib/hooks/useIsMaiaPageRoute.spec.js +0 -26
  104. package/lib/utils/maiaPageRoute.js +0 -24
  105. package/lib/utils/maiaPageRoute.spec.js +0 -23
@@ -1,18 +1,31 @@
1
- import { buildAgentConnectorsFromTaskAccess, buildAgentToolGroupsRequest, deriveTaskAccessFromToolGroupSlugs, normalizeAgentConnectors, withNormalizedConnectors } from './normalizeAgentConnectors';
1
+ import { buildAgentConnectorsFromCorAccess, buildAgentToolGroupsRequest, DEFAULT_COR_ACCESS, deriveCorAccessFromToolGroupSlugs, normalizeAgentConnectors, withNormalizedConnectors } from './normalizeAgentConnectors';
2
2
  describe('normalizeAgentConnectors', function () {
3
- it('builds tool group slugs from the task-access switch', function () {
4
- expect(buildAgentToolGroupsRequest(true)).toEqual(['tareas', 'proyectos']);
5
- expect(buildAgentToolGroupsRequest(false)).toEqual([]);
3
+ it('builds tool group slugs from each COR toggle', function () {
4
+ expect(buildAgentToolGroupsRequest(DEFAULT_COR_ACCESS)).toEqual(['clientes', 'proyectos', 'tareas']);
5
+ expect(buildAgentToolGroupsRequest({
6
+ clientes: false,
7
+ proyectos: true,
8
+ tareas: false
9
+ })).toEqual(['proyectos']);
10
+ expect(buildAgentToolGroupsRequest({
11
+ clientes: false,
12
+ proyectos: false,
13
+ tareas: false
14
+ })).toEqual([]);
6
15
  });
7
- it('hydrates COR and MCP connectors from the switch', function () {
8
- expect(buildAgentConnectorsFromTaskAccess(true)).toEqual([{
16
+ it('hydrates COR and MCP connectors from the toggles', function () {
17
+ expect(buildAgentConnectorsFromCorAccess(DEFAULT_COR_ACCESS)).toEqual([{
9
18
  group: 'COR',
10
- slugs: ['tareas', 'proyectos']
19
+ slugs: ['clientes', 'proyectos', 'tareas']
11
20
  }, {
12
21
  group: 'MCP',
13
22
  slugs: []
14
23
  }]);
15
- expect(buildAgentConnectorsFromTaskAccess(false)[0].slugs).toEqual([]);
24
+ expect(buildAgentConnectorsFromCorAccess({
25
+ clientes: false,
26
+ proyectos: false,
27
+ tareas: false
28
+ })[0].slugs).toEqual([]);
16
29
  });
17
30
  it('returns undefined for non-arrays or connectors without a group', function () {
18
31
  expect(normalizeAgentConnectors(null)).toBeUndefined();
@@ -32,10 +45,27 @@ describe('normalizeAgentConnectors', function () {
32
45
  slugs: ['tareas', 'proyectos']
33
46
  }]);
34
47
  });
35
- it('derives task access from non-empty slug arrays', function () {
36
- expect(deriveTaskAccessFromToolGroupSlugs(['tareas'])).toBe(true);
37
- expect(deriveTaskAccessFromToolGroupSlugs([''])).toBe(false);
38
- expect(deriveTaskAccessFromToolGroupSlugs(null)).toBe(false);
48
+ it('derives each COR toggle from its own slug, including legacy aliases', function () {
49
+ expect(deriveCorAccessFromToolGroupSlugs(['tareas'])).toEqual({
50
+ clientes: false,
51
+ proyectos: false,
52
+ tareas: true
53
+ });
54
+ expect(deriveCorAccessFromToolGroupSlugs(['client_read', 'proyectos'])).toEqual({
55
+ clientes: true,
56
+ proyectos: true,
57
+ tareas: false
58
+ });
59
+ expect(deriveCorAccessFromToolGroupSlugs([''])).toEqual({
60
+ clientes: false,
61
+ proyectos: false,
62
+ tareas: false
63
+ });
64
+ expect(deriveCorAccessFromToolGroupSlugs(null)).toEqual({
65
+ clientes: false,
66
+ proyectos: false,
67
+ tareas: false
68
+ });
39
69
  });
40
70
  it('replaces connectors only when they normalize to something', function () {
41
71
  var withConnectors = {
@@ -56,4 +86,4 @@ describe('normalizeAgentConnectors', function () {
56
86
  expect(withNormalizedConnectors(without)).toBe(without);
57
87
  });
58
88
  });
59
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJidWlsZEFnZW50Q29ubmVjdG9yc0Zyb21UYXNrQWNjZXNzIiwiYnVpbGRBZ2VudFRvb2xHcm91cHNSZXF1ZXN0IiwiZGVyaXZlVGFza0FjY2Vzc0Zyb21Ub29sR3JvdXBTbHVncyIsIm5vcm1hbGl6ZUFnZW50Q29ubmVjdG9ycyIsIndpdGhOb3JtYWxpemVkQ29ubmVjdG9ycyIsImRlc2NyaWJlIiwiaXQiLCJleHBlY3QiLCJ0b0VxdWFsIiwiZ3JvdXAiLCJzbHVncyIsInRvQmVVbmRlZmluZWQiLCJ0b0JlIiwid2l0aENvbm5lY3RvcnMiLCJpZCIsImNvbm5lY3RvcnMiLCJ3aXRob3V0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL25vcm1hbGl6ZUFnZW50Q29ubmVjdG9ycy5zcGVjLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGJ1aWxkQWdlbnRDb25uZWN0b3JzRnJvbVRhc2tBY2Nlc3MsXG4gIGJ1aWxkQWdlbnRUb29sR3JvdXBzUmVxdWVzdCxcbiAgZGVyaXZlVGFza0FjY2Vzc0Zyb21Ub29sR3JvdXBTbHVncyxcbiAgbm9ybWFsaXplQWdlbnRDb25uZWN0b3JzLFxuICB3aXRoTm9ybWFsaXplZENvbm5lY3RvcnMsXG59IGZyb20gJy4vbm9ybWFsaXplQWdlbnRDb25uZWN0b3JzJ1xuXG5kZXNjcmliZSgnbm9ybWFsaXplQWdlbnRDb25uZWN0b3JzJywgKCkgPT4ge1xuICBpdCgnYnVpbGRzIHRvb2wgZ3JvdXAgc2x1Z3MgZnJvbSB0aGUgdGFzay1hY2Nlc3Mgc3dpdGNoJywgKCkgPT4ge1xuICAgIGV4cGVjdChidWlsZEFnZW50VG9vbEdyb3Vwc1JlcXVlc3QodHJ1ZSkpLnRvRXF1YWwoWyd0YXJlYXMnLCAncHJveWVjdG9zJ10pXG4gICAgZXhwZWN0KGJ1aWxkQWdlbnRUb29sR3JvdXBzUmVxdWVzdChmYWxzZSkpLnRvRXF1YWwoW10pXG4gIH0pXG5cbiAgaXQoJ2h5ZHJhdGVzIENPUiBhbmQgTUNQIGNvbm5lY3RvcnMgZnJvbSB0aGUgc3dpdGNoJywgKCkgPT4ge1xuICAgIGV4cGVjdChidWlsZEFnZW50Q29ubmVjdG9yc0Zyb21UYXNrQWNjZXNzKHRydWUpKS50b0VxdWFsKFtcbiAgICAgIHsgZ3JvdXA6ICdDT1InLCBzbHVnczogWyd0YXJlYXMnLCAncHJveWVjdG9zJ10gfSxcbiAgICAgIHsgZ3JvdXA6ICdNQ1AnLCBzbHVnczogW10gfSxcbiAgICBdKVxuICAgIGV4cGVjdChidWlsZEFnZW50Q29ubmVjdG9yc0Zyb21UYXNrQWNjZXNzKGZhbHNlKVswXS5zbHVncykudG9FcXVhbChbXSlcbiAgfSlcblxuICBpdCgncmV0dXJucyB1bmRlZmluZWQgZm9yIG5vbi1hcnJheXMgb3IgY29ubmVjdG9ycyB3aXRob3V0IGEgZ3JvdXAnLCAoKSA9PiB7XG4gICAgZXhwZWN0KG5vcm1hbGl6ZUFnZW50Q29ubmVjdG9ycyhudWxsKSkudG9CZVVuZGVmaW5lZCgpXG4gICAgZXhwZWN0KG5vcm1hbGl6ZUFnZW50Q29ubmVjdG9ycyhbeyBzbHVnczogWyd0YXJlYXMnXSB9XSkpLnRvQmVVbmRlZmluZWQoKVxuICB9KVxuXG4gIGl0KCdrZWVwcyB2YWxpZCBncm91cHMgYW5kIHN0cmluZyBzbHVncycsICgpID0+IHtcbiAgICBleHBlY3QoXG4gICAgICBub3JtYWxpemVBZ2VudENvbm5lY3RvcnMoW1xuICAgICAgICB7IGdyb3VwOiAnQ09SJywgc2x1Z3M6IFsndGFyZWFzJywgMSwgJ3Byb3llY3RvcyddIH0sXG4gICAgICAgIHsgZ3JvdXA6ICcnLCBzbHVnczogWyd4J10gfSxcbiAgICAgIF0pXG4gICAgKS50b0VxdWFsKFt7IGdyb3VwOiAnQ09SJywgc2x1Z3M6IFsndGFyZWFzJywgJ3Byb3llY3RvcyddIH1dKVxuICB9KVxuXG4gIGl0KCdkZXJpdmVzIHRhc2sgYWNjZXNzIGZyb20gbm9uLWVtcHR5IHNsdWcgYXJyYXlzJywgKCkgPT4ge1xuICAgIGV4cGVjdChkZXJpdmVUYXNrQWNjZXNzRnJvbVRvb2xHcm91cFNsdWdzKFsndGFyZWFzJ10pKS50b0JlKHRydWUpXG4gICAgZXhwZWN0KGRlcml2ZVRhc2tBY2Nlc3NGcm9tVG9vbEdyb3VwU2x1Z3MoWycnXSkpLnRvQmUoZmFsc2UpXG4gICAgZXhwZWN0KGRlcml2ZVRhc2tBY2Nlc3NGcm9tVG9vbEdyb3VwU2x1Z3MobnVsbCkpLnRvQmUoZmFsc2UpXG4gIH0pXG5cbiAgaXQoJ3JlcGxhY2VzIGNvbm5lY3RvcnMgb25seSB3aGVuIHRoZXkgbm9ybWFsaXplIHRvIHNvbWV0aGluZycsICgpID0+IHtcbiAgICBjb25zdCB3aXRoQ29ubmVjdG9ycyA9IHsgaWQ6ICcxJywgY29ubmVjdG9yczogW3sgZ3JvdXA6ICdDT1InLCBzbHVnczogWyd0YXJlYXMnXSB9XSB9XG4gICAgZXhwZWN0KHdpdGhOb3JtYWxpemVkQ29ubmVjdG9ycyh3aXRoQ29ubmVjdG9ycykuY29ubmVjdG9ycykudG9FcXVhbChbeyBncm91cDogJ0NPUicsIHNsdWdzOiBbJ3RhcmVhcyddIH1dKVxuICAgIGNvbnN0IHdpdGhvdXQgPSB7IGlkOiAnMScsIGNvbm5lY3RvcnM6IFtdIH1cbiAgICBleHBlY3Qod2l0aE5vcm1hbGl6ZWRDb25uZWN0b3JzKHdpdGhvdXQpKS50b0JlKHdpdGhvdXQpXG4gIH0pXG59KVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUNFQSxrQ0FBa0MsRUFDbENDLDJCQUEyQixFQUMzQkMsa0NBQWtDLEVBQ2xDQyx3QkFBd0IsRUFDeEJDLHdCQUF3QixRQUNuQiw0QkFBNEI7QUFFbkNDLFFBQVEsQ0FBQywwQkFBMEIsRUFBRSxZQUFNO0VBQ3pDQyxFQUFFLENBQUMscURBQXFELEVBQUUsWUFBTTtJQUM5REMsTUFBTSxDQUFDTiwyQkFBMkIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDTyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDMUVELE1BQU0sQ0FBQ04sMkJBQTJCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQ08sT0FBTyxDQUFDLEVBQUUsQ0FBQztFQUN4RCxD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
89
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJidWlsZEFnZW50Q29ubmVjdG9yc0Zyb21Db3JBY2Nlc3MiLCJidWlsZEFnZW50VG9vbEdyb3Vwc1JlcXVlc3QiLCJERUZBVUxUX0NPUl9BQ0NFU1MiLCJkZXJpdmVDb3JBY2Nlc3NGcm9tVG9vbEdyb3VwU2x1Z3MiLCJub3JtYWxpemVBZ2VudENvbm5lY3RvcnMiLCJ3aXRoTm9ybWFsaXplZENvbm5lY3RvcnMiLCJkZXNjcmliZSIsIml0IiwiZXhwZWN0IiwidG9FcXVhbCIsImNsaWVudGVzIiwicHJveWVjdG9zIiwidGFyZWFzIiwiZ3JvdXAiLCJzbHVncyIsInRvQmVVbmRlZmluZWQiLCJ3aXRoQ29ubmVjdG9ycyIsImlkIiwiY29ubmVjdG9ycyIsIndpdGhvdXQiLCJ0b0JlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL25vcm1hbGl6ZUFnZW50Q29ubmVjdG9ycy5zcGVjLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGJ1aWxkQWdlbnRDb25uZWN0b3JzRnJvbUNvckFjY2VzcyxcbiAgYnVpbGRBZ2VudFRvb2xHcm91cHNSZXF1ZXN0LFxuICBERUZBVUxUX0NPUl9BQ0NFU1MsXG4gIGRlcml2ZUNvckFjY2Vzc0Zyb21Ub29sR3JvdXBTbHVncyxcbiAgbm9ybWFsaXplQWdlbnRDb25uZWN0b3JzLFxuICB3aXRoTm9ybWFsaXplZENvbm5lY3RvcnMsXG59IGZyb20gJy4vbm9ybWFsaXplQWdlbnRDb25uZWN0b3JzJ1xuXG5kZXNjcmliZSgnbm9ybWFsaXplQWdlbnRDb25uZWN0b3JzJywgKCkgPT4ge1xuICBpdCgnYnVpbGRzIHRvb2wgZ3JvdXAgc2x1Z3MgZnJvbSBlYWNoIENPUiB0b2dnbGUnLCAoKSA9PiB7XG4gICAgZXhwZWN0KGJ1aWxkQWdlbnRUb29sR3JvdXBzUmVxdWVzdChERUZBVUxUX0NPUl9BQ0NFU1MpKS50b0VxdWFsKFsnY2xpZW50ZXMnLCAncHJveWVjdG9zJywgJ3RhcmVhcyddKVxuICAgIGV4cGVjdChidWlsZEFnZW50VG9vbEdyb3Vwc1JlcXVlc3QoeyBjbGllbnRlczogZmFsc2UsIHByb3llY3RvczogdHJ1ZSwgdGFyZWFzOiBmYWxzZSB9KSkudG9FcXVhbChbJ3Byb3llY3RvcyddKVxuICAgIGV4cGVjdChidWlsZEFnZW50VG9vbEdyb3Vwc1JlcXVlc3QoeyBjbGllbnRlczogZmFsc2UsIHByb3llY3RvczogZmFsc2UsIHRhcmVhczogZmFsc2UgfSkpLnRvRXF1YWwoW10pXG4gIH0pXG5cbiAgaXQoJ2h5ZHJhdGVzIENPUiBhbmQgTUNQIGNvbm5lY3RvcnMgZnJvbSB0aGUgdG9nZ2xlcycsICgpID0+IHtcbiAgICBleHBlY3QoYnVpbGRBZ2VudENvbm5lY3RvcnNGcm9tQ29yQWNjZXNzKERFRkFVTFRfQ09SX0FDQ0VTUykpLnRvRXF1YWwoW1xuICAgICAgeyBncm91cDogJ0NPUicsIHNsdWdzOiBbJ2NsaWVudGVzJywgJ3Byb3llY3RvcycsICd0YXJlYXMnXSB9LFxuICAgICAgeyBncm91cDogJ01DUCcsIHNsdWdzOiBbXSB9LFxuICAgIF0pXG4gICAgZXhwZWN0KGJ1aWxkQWdlbnRDb25uZWN0b3JzRnJvbUNvckFjY2Vzcyh7IGNsaWVudGVzOiBmYWxzZSwgcHJveWVjdG9zOiBmYWxzZSwgdGFyZWFzOiBmYWxzZSB9KVswXS5zbHVncykudG9FcXVhbChbXSlcbiAgfSlcblxuICBpdCgncmV0dXJucyB1bmRlZmluZWQgZm9yIG5vbi1hcnJheXMgb3IgY29ubmVjdG9ycyB3aXRob3V0IGEgZ3JvdXAnLCAoKSA9PiB7XG4gICAgZXhwZWN0KG5vcm1hbGl6ZUFnZW50Q29ubmVjdG9ycyhudWxsKSkudG9CZVVuZGVmaW5lZCgpXG4gICAgZXhwZWN0KG5vcm1hbGl6ZUFnZW50Q29ubmVjdG9ycyhbeyBzbHVnczogWyd0YXJlYXMnXSB9XSkpLnRvQmVVbmRlZmluZWQoKVxuICB9KVxuXG4gIGl0KCdrZWVwcyB2YWxpZCBncm91cHMgYW5kIHN0cmluZyBzbHVncycsICgpID0+IHtcbiAgICBleHBlY3QoXG4gICAgICBub3JtYWxpemVBZ2VudENvbm5lY3RvcnMoW1xuICAgICAgICB7IGdyb3VwOiAnQ09SJywgc2x1Z3M6IFsndGFyZWFzJywgMSwgJ3Byb3llY3RvcyddIH0sXG4gICAgICAgIHsgZ3JvdXA6ICcnLCBzbHVnczogWyd4J10gfSxcbiAgICAgIF0pXG4gICAgKS50b0VxdWFsKFt7IGdyb3VwOiAnQ09SJywgc2x1Z3M6IFsndGFyZWFzJywgJ3Byb3llY3RvcyddIH1dKVxuICB9KVxuXG4gIGl0KCdkZXJpdmVzIGVhY2ggQ09SIHRvZ2dsZSBmcm9tIGl0cyBvd24gc2x1ZywgaW5jbHVkaW5nIGxlZ2FjeSBhbGlhc2VzJywgKCkgPT4ge1xuICAgIGV4cGVjdChkZXJpdmVDb3JBY2Nlc3NGcm9tVG9vbEdyb3VwU2x1Z3MoWyd0YXJlYXMnXSkpLnRvRXF1YWwoe1xuICAgICAgY2xpZW50ZXM6IGZhbHNlLFxuICAgICAgcHJveWVjdG9zOiBmYWxzZSxcbiAgICAgIHRhcmVhczogdHJ1ZSxcbiAgICB9KVxuICAgIGV4cGVjdChkZXJpdmVDb3JBY2Nlc3NGcm9tVG9vbEdyb3VwU2x1Z3MoWydjbGllbnRfcmVhZCcsICdwcm95ZWN0b3MnXSkpLnRvRXF1YWwoe1xuICAgICAgY2xpZW50ZXM6IHRydWUsXG4gICAgICBwcm95ZWN0b3M6IHRydWUsXG4gICAgICB0YXJlYXM6IGZhbHNlLFxuICAgIH0pXG4gICAgZXhwZWN0KGRlcml2ZUNvckFjY2Vzc0Zyb21Ub29sR3JvdXBTbHVncyhbJyddKSkudG9FcXVhbCh7XG4gICAgICBjbGllbnRlczogZmFsc2UsXG4gICAgICBwcm95ZWN0b3M6IGZhbHNlLFxuICAgICAgdGFyZWFzOiBmYWxzZSxcbiAgICB9KVxuICAgIGV4cGVjdChkZXJpdmVDb3JBY2Nlc3NGcm9tVG9vbEdyb3VwU2x1Z3MobnVsbCkpLnRvRXF1YWwoe1xuICAgICAgY2xpZW50ZXM6IGZhbHNlLFxuICAgICAgcHJveWVjdG9zOiBmYWxzZSxcbiAgICAgIHRhcmVhczogZmFsc2UsXG4gICAgfSlcbiAgfSlcblxuICBpdCgncmVwbGFjZXMgY29ubmVjdG9ycyBvbmx5IHdoZW4gdGhleSBub3JtYWxpemUgdG8gc29tZXRoaW5nJywgKCkgPT4ge1xuICAgIGNvbnN0IHdpdGhDb25uZWN0b3JzID0geyBpZDogJzEnLCBjb25uZWN0b3JzOiBbeyBncm91cDogJ0NPUicsIHNsdWdzOiBbJ3RhcmVhcyddIH1dIH1cbiAgICBleHBlY3Qod2l0aE5vcm1hbGl6ZWRDb25uZWN0b3JzKHdpdGhDb25uZWN0b3JzKS5jb25uZWN0b3JzKS50b0VxdWFsKFt7IGdyb3VwOiAnQ09SJywgc2x1Z3M6IFsndGFyZWFzJ10gfV0pXG4gICAgY29uc3Qgd2l0aG91dCA9IHsgaWQ6ICcxJywgY29ubmVjdG9yczogW10gfVxuICAgIGV4cGVjdCh3aXRoTm9ybWFsaXplZENvbm5lY3RvcnMod2l0aG91dCkpLnRvQmUod2l0aG91dClcbiAgfSlcbn0pXG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQ0VBLGlDQUFpQyxFQUNqQ0MsMkJBQTJCLEVBQzNCQyxrQkFBa0IsRUFDbEJDLGlDQUFpQyxFQUNqQ0Msd0JBQXdCLEVBQ3hCQyx3QkFBd0IsUUFDbkIsNEJBQTRCO0FBRW5DQyxRQUFRLENBQUMsMEJBQTBCLEVBQUUsWUFBTTtFQUN6Q0MsRUFBRSxDQUFDLDhDQUE4QyxFQUFFLFlBQU07SUFDdkRDLE1BQU0sQ0FBQ1AsMkJBQTJCLENBQUNDLGtCQUFrQixDQUFDLENBQUMsQ0FBQ08sT0FBTyxDQUFDLENBQUMsVUFBVSxFQUFFLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNwR0QsTUFBTSxDQUFDUCwyQkFBMkIsQ0FBQztNQUFFUyxRQUFRLEVBQUUsS0FBSztNQUFFQyxTQUFTLEVBQUUsSUFBSTtNQUFFQyxNQUFNLEVBQUU7SUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDSCxPQUFPLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMvR0QsTUFBTSxDQUFDUCwyQkFBMkIsQ0FBQztNQUFFUyxRQUFRLEVBQUUsS0FBSztNQUFFQyxTQUFTLEVBQUUs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
@@ -3,6 +3,7 @@ import styled, { css } from 'styled-components';
3
3
  import { CONTEXT_MENTION_CHIP_CLASS } from '../types/contextMention';
4
4
  import { MENTION_CHIP_COLORS, MENTION_CHIP_NON_TASK_HOVER_BG } from '../components/atoms/ContextMentionChip/ContextMentionChip.styles';
5
5
  import { SlashCommandChip } from '../components/atoms/SlashCommandChip';
6
+ import { SCSlashChip } from '../components/atoms/SlashCommandChip/SlashCommandChip.styles';
6
7
  import { SLASH_COMMAND_MARKER_REGEX } from './slashCommandMarker';
7
8
  import { VIOLET_IA_COLORS } from '../styles/config';
8
9
  import { SCTaskLink } from '../components/molecules/ChatAIMessages/newStyles';
@@ -93,6 +94,20 @@ var splitLabelFirstWord = function splitLabelFirstWord(label) {
93
94
  rest: normalized.slice(firstWhitespaceIdx)
94
95
  };
95
96
  };
97
+
98
+ /** Las skills se muestran como `#nombre`, con el mismo estilo que los slash commands. */
99
+ var formatSkillLabel = function formatSkillLabel(label) {
100
+ return "#".concat(label.trim().replace(/^(@\/|#)/, ''));
101
+ };
102
+ var SkillInlineChip = function SkillInlineChip(_ref) {
103
+ var label = _ref.label;
104
+ return /*#__PURE__*/_jsx(SCSlashChip, {
105
+ className: CONTEXT_MENTION_CHIP_CLASS,
106
+ "data-mention-type": "skill",
107
+ "data-mention-surface": "chat",
108
+ children: formatSkillLabel(label)
109
+ });
110
+ };
96
111
  var INLINE_MENTION_HOVER_BG = {
97
112
  project: VIOLET_IA_COLORS[100]
98
113
  };
@@ -107,31 +122,31 @@ var inlineMentionHoverCss = function inlineMentionHoverCss(type, isClickable) {
107
122
  var SCInlineMention = styled.span.withConfig({
108
123
  displayName: "renderContextMentions__SCInlineMention",
109
124
  componentId: "sc-f3uz3m-0"
110
- })(["display:inline;padding:2px 4px;margin:0 1px;border-radius:4px;font-family:var(--cor-typography-font-family,'Work Sans');font-weight:500;font-size:inherit;line-height:inherit;background:", ";color:", ";white-space:normal;overflow-wrap:break-word;word-break:break-word;cursor:", ";text-decoration:none;box-sizing:border-box;&:hover{", "}"], function (_ref) {
125
+ })(["display:inline;padding:2px 4px;margin:0 1px;border-radius:4px;font-family:var(--cor-typography-font-family,'Work Sans');font-weight:500;font-size:inherit;line-height:inherit;background:", ";color:", ";white-space:normal;overflow-wrap:break-word;word-break:break-word;cursor:", ";text-decoration:none;box-sizing:border-box;&:hover{", "}"], function (_ref2) {
111
126
  var _MENTION_CHIP_COLORS$;
112
- var $type = _ref.$type;
127
+ var $type = _ref2.$type;
113
128
  return ((_MENTION_CHIP_COLORS$ = MENTION_CHIP_COLORS[$type]) !== null && _MENTION_CHIP_COLORS$ !== void 0 ? _MENTION_CHIP_COLORS$ : MENTION_CHIP_COLORS.user).bg;
114
- }, function (_ref2) {
129
+ }, function (_ref3) {
115
130
  var _MENTION_CHIP_COLORS$2;
116
- var $type = _ref2.$type;
131
+ var $type = _ref3.$type;
117
132
  return ((_MENTION_CHIP_COLORS$2 = MENTION_CHIP_COLORS[$type]) !== null && _MENTION_CHIP_COLORS$2 !== void 0 ? _MENTION_CHIP_COLORS$2 : MENTION_CHIP_COLORS.user).fg;
118
- }, function (_ref3) {
119
- var $isClickable = _ref3.$isClickable;
120
- return $isClickable ? 'pointer' : 'default';
121
133
  }, function (_ref4) {
122
- var $type = _ref4.$type,
123
- $isClickable = _ref4.$isClickable;
134
+ var $isClickable = _ref4.$isClickable;
135
+ return $isClickable ? 'pointer' : 'default';
136
+ }, function (_ref5) {
137
+ var $type = _ref5.$type,
138
+ $isClickable = _ref5.$isClickable;
124
139
  return inlineMentionHoverCss($type, $isClickable);
125
140
  });
126
141
  var SCInlineMentionIcon = styled.span.withConfig({
127
142
  displayName: "renderContextMentions__SCInlineMentionIcon",
128
143
  componentId: "sc-f3uz3m-1"
129
- })(["display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;margin-right:2px;width:", ";height:", ";"], function (_ref5) {
130
- var $task = _ref5.$task;
131
- return $task ? '16px' : '14px';
132
- }, function (_ref6) {
144
+ })(["display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;margin-right:2px;width:", ";height:", ";"], function (_ref6) {
133
145
  var $task = _ref6.$task;
134
146
  return $task ? '16px' : '14px';
147
+ }, function (_ref7) {
148
+ var $task = _ref7.$task;
149
+ return $task ? '16px' : '14px';
135
150
  });
136
151
  var SCInlineMentionIconRow = styled.span.withConfig({
137
152
  displayName: "renderContextMentions__SCInlineMentionIconRow",
@@ -156,6 +171,9 @@ export var renderMentionLink = function renderMentionLink(href, children) {
156
171
  type = _parseMentionProtocol.type,
157
172
  id = _parseMentionProtocol.id;
158
173
  var label = mentionChildrenToLabel(children);
174
+ if (type === 'skill') return /*#__PURE__*/_jsx(SkillInlineChip, {
175
+ label: label
176
+ });
159
177
  var isTask = type === 'task';
160
178
  var iconSize = isTask ? 16 : 14;
161
179
  var taskUrl = "/tasks/".concat(id, "/detail");
@@ -263,11 +281,14 @@ var getMentionUrl = function getMentionUrl(type, id) {
263
281
  return null;
264
282
  }
265
283
  };
266
- var MentionChip = function MentionChip(_ref7) {
267
- var type = _ref7.type,
268
- id = _ref7.id,
269
- label = _ref7.label;
284
+ var MentionChip = function MentionChip(_ref8) {
285
+ var type = _ref8.type,
286
+ id = _ref8.id,
287
+ label = _ref8.label;
270
288
  var normalizedLabel = normalizeContextMentionLabel(label);
289
+ if (type === 'skill') return /*#__PURE__*/_jsx(SkillInlineChip, {
290
+ label: normalizedLabel
291
+ });
271
292
  var url = getMentionUrl(type, id);
272
293
  var isClickable = !!url;
273
294
  var isTask = type === 'task';
@@ -396,4 +417,4 @@ export var renderTextWithMentions = function renderTextWithMentions(text) {
396
417
  if (lastIdx < text.length) out.push(text.slice(lastIdx));
397
418
  return out;
398
419
  };
399
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTUyIsIk1FTlRJT05fQ0hJUF9DT0xPUlMiLCJNRU5USU9OX0NISVBfTk9OX1RBU0tfSE9WRVJfQkciLCJTbGFzaENvbW1hbmRDaGlwIiwiU0xBU0hfQ09NTUFORF9NQVJLRVJfUkVHRVgiLCJWSU9MRVRfSUFfQ09MT1JTIiwiU0NUYXNrTGluayIsImdldENvbnRleHRNZW50aW9uSWNvbiIsIm5vcm1hbGl6ZUNvbnRleHRNZW50aW9uTGFiZWwiLCJvcGVuVGFza0luQ29yUGFuZWwiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJNRU5USU9OX01BUktFUl9SRUdFWCIsIk1BSUFfTUVOVElPTl9QUk9UT0NPTCIsIklOQ09NUExFVEVfTUVOVElPTl9NQVJLRVJfUkVHRVgiLCJJTkNPTVBMRVRFX1NMQVNIX01BUktFUl9SRUdFWCIsIkFMTE9XRURfVFlQRVMiLCJwYXJzZU1lbnRpb25Qcm90b2NvbEhyZWYiLCJocmVmIiwicmVzdCIsInNsaWNlIiwibGVuZ3RoIiwic2xhc2hJZHgiLCJpbmRleE9mIiwicmF3VHlwZSIsInJhd0lkIiwiaWQiLCJkZWNvZGVVUklDb21wb25lbnQiLCJfdW51c2VkIiwidHlwZSIsImluY2x1ZGVzIiwic2VyaWFsaXplTWVudGlvbiIsIm1lbnRpb24iLCJjb25jYXQiLCJsYWJlbCIsInRyYW5zZm9ybU1lbnRpb25NYXJrZXJzIiwidGV4dCIsInJlcGxhY2UiLCJfbSIsInNhZmVMYWJlbCIsIlN0cmluZyIsImVuY29kZVVSSUNvbXBvbmVudCIsIm1lbnRpb25DaGlsZHJlblRvTGFiZWwiLCJjaGlsZHJlbiIsIkFycmF5IiwiaXNBcnJheSIsIm1hcCIsImMiLCJqb2luIiwic3BsaXRMYWJlbEZpcnN0V29yZCIsIm5vcm1hbGl6ZWQiLCJ0cmltIiwiZmlyc3RXb3JkIiwiZmlyc3RXaGl0ZXNwYWNlSWR4Iiwic2VhcmNoIiwiSU5MSU5FX01FTlRJT05fSE9WRVJfQkciLCJwcm9qZWN0IiwiaW5saW5lTWVudGlvbkhvdmVyQ3NzIiwiaXNDbGlja2FibGUiLCJfSU5MSU5FX01FTlRJT05fSE9WRVIiLCJiZyIsIlNDSW5saW5lTWVudGlvbiIsInNwYW4iLCJ3aXRoQ29uZmlnIiwiZGlzcGxheU5hbWUiLCJjb21wb25lbnRJZCIsIl9yZWYiLCJfTUVOVElPTl9DSElQX0NPTE9SUyQiLCIkdHlwZSIsInVzZXIiLCJfcmVmMiIsIl9NRU5USU9OX0NISVBfQ09MT1JTJDIiLCJmZyIsIl9yZWYzIiwiJGlzQ2xpY2thYmxlIiwiX3JlZjQiLCJTQ0lubGluZU1lbnRpb25JY29uIiwiX3JlZjUiLCIkdGFzayIsIl9yZWY2IiwiU0NJbmxpbmVNZW50aW9uSWNvblJvdyIsIlNDSW5saW5lTWVudGlvbldvcmQiLCJTQ0lubGluZU1lbnRpb25SZXN0IiwicmVuZGVyTWVudGlvbkxpbmsiLCJzdGFydHNXaXRoIiwiX3BhcnNlTWVudGlvblByb3RvY29sIiwiaXNUYXNrIiwiaWNvblNpemUiLCJ0YXNrVXJsIiwiaGFuZGxlVGFza0NsaWNrIiwiZSIsIm1ldGFLZXkiLCJjdHJsS2V5IiwicHJldmVudERlZmF1bHQiLCJzdG9wUHJvcGFnYXRpb24iLCJoYW5kbGVUYXNrS2V5RG93biIsImtleSIsImNsYXNzTmFtZSIsIm9uQ2xpY2siLCJvbktleURvd24iLCJpc1Byb2plY3QiLCJwcm9qZWN0VXJsIiwic2hvd0ljb24iLCJfc3BsaXRMYWJlbEZpcnN0V29yZCIsImhhbmRsZVByb2plY3RDbGljayIsIndpbmRvdyIsIm9wZW4iLCJ1bmRlZmluZWQiLCJyb2xlIiwidGFiSW5kZXgiLCJzdHJpcE1lbnRpb25NYXJrZXJzIiwiX3R5cGUiLCJfaWQiLCJmb3JtYXRDaGF0TGlzdFRpdGxlTWVudGlvbnMiLCJ3aXRob3V0TWVudGlvbnMiLCJzbGFzaFJlZ2V4IiwiUmVnRXhwIiwic291cmNlIiwid2l0aG91dFNsYXNoIiwid2l0aG91dEluY29tcGxldGVTbGFzaCIsImdldE1lbnRpb25VcmwiLCJNZW50aW9uQ2hpcCIsIl9yZWY3Iiwibm9ybWFsaXplZExhYmVsIiwidXJsIiwiX3NwbGl0TGFiZWxGaXJzdFdvcmQyIiwiaGFuZGxlQ2xpY2siLCJoYW5kbGVLZXlEb3duIiwiaGFzSW5saW5lTWFya2VycyIsImNvbGxlY3RJbmxpbmVNYXJrZXJzIiwibWFya2VycyIsImxhc3RJbmRleCIsIm0iLCJleGVjIiwiX20yIiwiX20zIiwiX3NsaWNlZFRvQXJyYXkiLCJwdXNoIiwia2luZCIsImluZGV4IiwicyIsInNvcnQiLCJhIiwiYiIsInJlbmRlclRleHRXaXRoTWVudGlvbnMiLCJvdXQiLCJsYXN0SWR4IiwiZm9yRWFjaCIsIm1hcmtlciIsImlubGluZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9yZW5kZXJDb250ZXh0TWVudGlvbnMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlYWN0Tm9kZSwgUmVhY3RFbGVtZW50LCBNb3VzZUV2ZW50LCBLZXlib2FyZEV2ZW50IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgc3R5bGVkLCB7IGNzcyB9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJ1xuaW1wb3J0IHsgQ29udGV4dEVudGl0eVR5cGUsIENvbnRleHRNZW50aW9uLCBDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTUyB9IGZyb20gJy4uL3R5cGVzL2NvbnRleHRNZW50aW9uJ1xuaW1wb3J0IHtcbiAgTUVOVElPTl9DSElQX0NPTE9SUyxcbiAgTUVOVElPTl9DSElQX05PTl9UQVNLX0hPVkVSX0JHLFxufSBmcm9tICcuLi9jb21wb25lbnRzL2F0b21zL0NvbnRleHRNZW50aW9uQ2hpcC9Db250ZXh0TWVudGlvbkNoaXAuc3R5bGVzJ1xuaW1wb3J0IHsgU2xhc2hDb21tYW5kQ2hpcCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYXRvbXMvU2xhc2hDb21tYW5kQ2hpcCdcbmltcG9ydCB7IFNMQVNIX0NPTU1BTkRfTUFSS0VSX1JFR0VYIH0gZnJvbSAnLi9zbGFzaENvbW1hbmRNYXJrZXInXG5pbXBvcnQgeyBWSU9MRVRfSUFfQ09MT1JTIH0gZnJvbSAnLi4vc3R5bGVzL2NvbmZpZydcbmltcG9ydCB7IFNDVGFza0xpbmsgfSBmcm9tICcuLi9jb21wb25lbnRzL21vbGVjdWxlcy9DaGF0QUlNZXNzYWdlcy9uZXdTdHlsZXMnXG5pbXBvcnQgeyBnZXRDb250ZXh0TWVudGlvbkljb24gfSBmcm9tICcuL2NvbnRleHRNZW50aW9uSWNvbnMnXG5pbXBvcnQgeyBub3JtYWxpemVDb250ZXh0TWVudGlvbkxhYmVsIH0gZnJvbSAnLi9jb250ZXh0TWVudGlvbkxhYmVsJ1xuaW1wb3J0IHsgb3BlblRhc2tJbkNvclBhbmVsIH0gZnJvbSAnLi9vcGVuVGFza0luQ29yUGFuZWwnXG5cbi8qKlxuICogRm9ybWF0byBkZWwgbWFyY2Fkb3IgcXVlIHZpYWphIGVuIGVsIHRleHRvIGRlbCBtZW5zYWplOlxuICogICBbW21lbnRpb246PHR5cGU+OjxpZD58PGxhYmVsPl1dXG4gKlxuICogRWwgZWRpdG9yIGxvIGVtaXRlIGN1YW5kbyBzZXJpYWxpemEgZWwgY29udGVudGVkaXRhYmxlLCBlbCBiYWNrZW5kIGxvXG4gKiBwZXJzaXN0ZSB0YWwgY3VhbCB5IGFsIHJlbmRlcml6YXIgc2UgdHJhbnNmb3JtYSBlbiB1biBsaW5rIG1hcmtkb3duIGNvblxuICogdW4gcHJvdG9jb2xvIHByb3BpbyBxdWUgYEN1c3RvbUxpbmtgIGludGVyY2VwdGEgeSBkaWJ1amEgY29tbyBzcGFuXG4gKiBlc3RpbGFkby5cbiAqXG4gKiBQb3Igc2VwYXJhZG8sIGxhIG1ldGFkYXRhIGBjb250ZXh0X21lc3NhZ2VgIGxsZXZhIGxvcyB2YWxvcmVzIGxpbXBpb3NcbiAqIChpZCArIG5hbWUpIHBhcmEgcXVlIGVsIGJhY2tlbmQgcHVlZGEgaW50ZXJwcmV0YXIgbGFzIGVudGlkYWRlcyBzaW5cbiAqIHRlbmVyIHF1ZSBwYXJzZWFyIGVsIHRleHRvLlxuICovXG4vKipcbiAqIExhYmVsIHB1ZWRlIGNvbnRlbmVyIGBdYCAoZWo6IFwiW0VkdWNhdGVdQmxvZyBQb3N0IC4uLlwiKSwgcG9yIGVzb1xuICogc2UgY2FwdHVyYSBkZSBmb3JtYSBsYXp5IGhhc3RhIGVsIGNpZXJyZSByZWFsIGBdXWAuXG4gKi9cbmV4cG9ydCBjb25zdCBNRU5USU9OX01BUktFUl9SRUdFWCA9IC9cXFtcXFttZW50aW9uOihjbGllbnR8cHJvamVjdHx0YXNrfHVzZXJ8bWNwfHNraWxsKTooW158XFxdXSspXFx8KFtcXHNcXFNdKj8pXFxdXFxdL2dcbmV4cG9ydCBjb25zdCBNQUlBX01FTlRJT05fUFJPVE9DT0wgPSAnbWFpYS1tZW50aW9uOi8vJ1xuY29uc3QgSU5DT01QTEVURV9NRU5USU9OX01BUktFUl9SRUdFWCA9IC9cXFtcXFttZW50aW9uOltcXHNcXFNdKiQvXG5jb25zdCBJTkNPTVBMRVRFX1NMQVNIX01BUktFUl9SRUdFWCA9IC9cXFtcXFtzbGFzaF9jb21tYW5kOltefFxcXV0rXFx8KFtcXHNcXFNdKikkL1xuXG5jb25zdCBBTExPV0VEX1RZUEVTOiBDb250ZXh0RW50aXR5VHlwZVtdID0gWydjbGllbnQnLCAncHJvamVjdCcsICd0YXNrJywgJ3VzZXInLCAnbWNwJywgJ3NraWxsJ11cblxuY29uc3QgcGFyc2VNZW50aW9uUHJvdG9jb2xIcmVmID0gKGhyZWY6IHN0cmluZyk6IHsgdHlwZTogQ29udGV4dEVudGl0eVR5cGU7IGlkOiBzdHJpbmcgfSA9PiB7XG4gIGNvbnN0IHJlc3QgPSBocmVmLnNsaWNlKE1BSUFfTUVOVElPTl9QUk9UT0NPTC5sZW5ndGgpXG4gIGNvbnN0IHNsYXNoSWR4ID0gcmVzdC5pbmRleE9mKCcvJylcbiAgY29uc3QgcmF3VHlwZSA9IHNsYXNoSWR4ID49IDAgPyByZXN0LnNsaWNlKDAsIHNsYXNoSWR4KSA6IHJlc3RcbiAgY29uc3QgcmF3SWQgPSBzbGFzaElkeCA+PSAwID8gcmVzdC5zbGljZShzbGFzaElkeCArIDEpIDogJydcbiAgbGV0IGlkID0gJydcbiAgdHJ5IHtcbiAgICBpZCA9IHJhd0lkID8gZGVjb2RlVVJJQ29tcG9uZW50KHJhd0lkKSA6ICcnXG4gIH0gY2F0Y2gge1xuICAgIGlkID0gcmF3SWRcbiAgfVxuICBjb25zdCB0eXBlID0gQUxMT1dFRF9UWVBFUy5pbmNsdWRlcyhyYXdUeXBlIGFzIENvbnRleHRFbnRpdHlUeXBlKSA/IChyYXdUeXBlIGFzIENvbnRleHRFbnRpdHlUeXBlKSA6ICd1c2VyJ1xuICByZXR1cm4geyB0eXBlLCBpZCB9XG59XG5cbi8qKiBHZW5lcmEgZWwgbWFyY2Fkb3IgcGFyYSB1biBtZW50aW9uIGRhZG8uIExvIHVzYSBlbCBlZGl0b3IgYWwgc2VyaWFsaXphci4gKi9cbmV4cG9ydCBjb25zdCBzZXJpYWxpemVNZW50aW9uID0gKG1lbnRpb246IENvbnRleHRNZW50aW9uKTogc3RyaW5nID0+XG4gIGBbW21lbnRpb246JHttZW50aW9uLnR5cGV9OiR7bWVudGlvbi5pZH18JHttZW50aW9uLmxhYmVsfV1dYFxuXG4vKipcbiAqIENvbnZpZXJ0ZSBjYWRhIGBbW21lbnRpb246Li4uXV1gIGVuIHVuIGxpbmsgbWFya2Rvd24gY29uIHByb3RvY29sbyBwcm9waW9cbiAqIHBhcmEgcXVlIFN0cmVhbWRvd24gbG8gZW1pdGEgY29tbyBgPGE+YCB5IGBDdXN0b21MaW5rYCBsbyBpbnRlcmNlcHRlLlxuICovXG5leHBvcnQgY29uc3QgdHJhbnNmb3JtTWVudGlvbk1hcmtlcnMgPSAodGV4dDogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgaWYgKCF0ZXh0KSByZXR1cm4gdGV4dFxuICByZXR1cm4gdGV4dC5yZXBsYWNlKE1FTlRJT05fTUFSS0VSX1JFR0VYLCAoX20sIHR5cGUsIGlkLCBsYWJlbCkgPT4ge1xuICAgIGNvbnN0IHNhZmVMYWJlbCA9IFN0cmluZyhsYWJlbCkucmVwbGFjZSgvW1xcXFxcXF1dL2csICdcXFxcJCYnKVxuICAgIHJldHVybiBgWyR7c2FmZUxhYmVsfV0oJHtNQUlBX01FTlRJT05fUFJPVE9DT0x9JHt0eXBlfS8ke2VuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoaWQpKX0pYFxuICB9KVxufVxuXG5jb25zdCBtZW50aW9uQ2hpbGRyZW5Ub0xhYmVsID0gKGNoaWxkcmVuOiBSZWFjdE5vZGUpOiBzdHJpbmcgPT4ge1xuICBpZiAodHlwZW9mIGNoaWxkcmVuID09PSAnc3RyaW5nJykgcmV0dXJuIG5vcm1hbGl6ZUNvbnRleHRNZW50aW9uTGFiZWwoY2hpbGRyZW4pXG4gIGlmIChjaGlsZHJlbiA9PSBudWxsIHx8IGNoaWxkcmVuID09PSBmYWxzZSkgcmV0dXJuICcnXG4gIGlmIChBcnJheS5pc0FycmF5KGNoaWxkcmVuKSkge1xuICAgIHJldHVybiBub3JtYWxpemVDb250ZXh0TWVudGlvbkxhYmVsKGNoaWxkcmVuLm1hcChjID0+ICh0eXBlb2YgYyA9PT0gJ3N0cmluZycgPyBjIDogJycpKS5qb2luKCcnKSlcbiAgfVxuICByZXR1cm4gbm9ybWFsaXplQ29udGV4dE1lbnRpb25MYWJlbChTdHJpbmcoY2hpbGRyZW4pKVxufVxuXG5jb25zdCBzcGxpdExhYmVsRmlyc3RXb3JkID0gKGxhYmVsOiBzdHJpbmcpOiB7IGZpcnN0V29yZDogc3RyaW5nOyByZXN0OiBzdHJpbmcgfSA9PiB7XG4gIGNvbnN0IG5vcm1hbGl6ZWQgPSBub3JtYWxpemVDb250ZXh0TWVudGlvbkxhYmVsKGxhYmVsKS50cmltKClcbiAgaWYgKCFub3JtYWxpemVkKSByZXR1cm4geyBmaXJzdFdvcmQ6ICcnLCByZXN0OiAnJyB9XG4gIGNvbnN0IGZpcnN0V2hpdGVzcGFjZUlkeCA9IG5vcm1hbGl6ZWQuc2VhcmNoKC9cXHMvKVxuICBpZiAoZmlyc3RXaGl0ZXNwYWNlSWR4IDwgMCkgcmV0dXJuIHsgZmlyc3RXb3JkOiBub3JtYWxpemVkLCByZXN0OiAnJyB9XG4gIHJldHVybiB7XG4gICAgZmlyc3RXb3JkOiBub3JtYWxpemVkLnNsaWNlKDAsIGZpcnN0V2hpdGVzcGFjZUlkeCksXG4gICAgcmVzdDogbm9ybWFsaXplZC5zbGljZShmaXJzdFdoaXRlc3BhY2VJZHgpLFxuICB9XG59XG5cbmNvbnN0IElOTElORV9NRU5USU9OX0hPVkVSX0JHOiBQYXJ0aWFsPFJlY29yZDxDb250ZXh0RW50aXR5VHlwZSwgc3RyaW5nPj4gPSB7XG4gIHByb2plY3Q6IFZJT0xFVF9JQV9DT0xPUlNbMTAwXSxcbn1cblxuY29uc3QgaW5saW5lTWVudGlvbkhvdmVyQ3NzID0gKHR5cGU6IENvbnRleHRFbnRpdHlUeXBlLCBpc0NsaWNrYWJsZT86IGJvb2xlYW4pID0+IHtcbiAgaWYgKHR5cGUgPT09ICdza2lsbCcpIHJldHVybiBjc3NgYFxuICBjb25zdCBiZyA9IElOTElORV9NRU5USU9OX0hPVkVSX0JHW3R5cGVdID8/IE1FTlRJT05fQ0hJUF9OT05fVEFTS19IT1ZFUl9CR1xuICByZXR1cm4gY3NzYFxuICAgIGJhY2tncm91bmQ6ICR7Ymd9O1xuICAgIG9wYWNpdHk6ICR7aXNDbGlja2FibGUgPyAwLjk1IDogMX07XG4gIGBcbn1cblxuLyoqIFNwYW4gaW5saW5lIGVzdGlsYWRvIChtZW5jaW9uZXMgbm8tdGFzayBlbiBjaGF0KS4gKi9cbmNvbnN0IFNDSW5saW5lTWVudGlvbiA9IHN0eWxlZC5zcGFuPHsgJHR5cGU6IENvbnRleHRFbnRpdHlUeXBlOyAkaXNDbGlja2FibGU/OiBib29sZWFuIH0+YFxuICBkaXNwbGF5OiBpbmxpbmU7XG4gIHBhZGRpbmc6IDJweCA0cHg7XG4gIG1hcmdpbjogMCAxcHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWNvci10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5LCAnV29yayBTYW5zJyk7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIGJhY2tncm91bmQ6ICR7KHsgJHR5cGUgfSkgPT4gKE1FTlRJT05fQ0hJUF9DT0xPUlNbJHR5cGVdID8/IE1FTlRJT05fQ0hJUF9DT0xPUlMudXNlcikuYmd9O1xuICBjb2xvcjogJHsoeyAkdHlwZSB9KSA9PiAoTUVOVElPTl9DSElQX0NPTE9SU1skdHlwZV0gPz8gTUVOVElPTl9DSElQX0NPTE9SUy51c2VyKS5mZ307XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gIGN1cnNvcjogJHsoeyAkaXNDbGlja2FibGUgfSkgPT4gKCRpc0NsaWNrYWJsZSA/ICdwb2ludGVyJyA6ICdkZWZhdWx0Jyl9O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgJjpob3ZlciB7XG4gICAgJHsoeyAkdHlwZSwgJGlzQ2xpY2thYmxlIH0pID0+IGlubGluZU1lbnRpb25Ib3ZlckNzcygkdHlwZSwgJGlzQ2xpY2thYmxlKX1cbiAgfVxuYFxuXG5jb25zdCBTQ0lubGluZU1lbnRpb25JY29uID0gc3R5bGVkLnNwYW48eyAkdGFzaz86IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luLXJpZ2h0OiAycHg7XG4gIHdpZHRoOiAkeyh7ICR0YXNrIH0pID0+ICgkdGFzayA/ICcxNnB4JyA6ICcxNHB4Jyl9O1xuICBoZWlnaHQ6ICR7KHsgJHRhc2sgfSkgPT4gKCR0YXNrID8gJzE2cHgnIDogJzE0cHgnKX07XG5gXG5cbmNvbnN0IFNDSW5saW5lTWVudGlvbkljb25Sb3cgPSBzdHlsZWQuc3BhbmBcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG1heC13aWR0aDogMTAwJTtcbmBcblxuY29uc3QgU0NJbmxpbmVNZW50aW9uV29yZCA9IHN0eWxlZC5zcGFuYFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuYFxuXG5jb25zdCBTQ0lubGluZU1lbnRpb25SZXN0ID0gc3R5bGVkLnNwYW5gXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5gXG5cbi8qKlxuICogU2kgZWwgaHJlZiBjb3JyZXNwb25kZSBhbCBwcm90b2NvbG8gZGUgbWVudGlvbiwgZGV2dWVsdmUgdW4gbm9kbyBlc3RpbGFkbyBwb3IgdGlwby5cbiAqIExhcyB0YXJlYXMgdXNhbiBgPGE+YCBjb21vIGxvcyBlbmxhY2VzIGRlIHRhcmVhIGRlbCBhZ2VudGUgKGAuaGFzLXRhc2stbGlua3NgKS5cbiAqL1xuZXhwb3J0IGNvbnN0IHJlbmRlck1lbnRpb25MaW5rID0gKGhyZWY6IHN0cmluZyB8IHVuZGVmaW5lZCwgY2hpbGRyZW46IFJlYWN0Tm9kZSk6IFJlYWN0Tm9kZSB8IG51bGwgPT4ge1xuICBpZiAoIWhyZWYgfHwgIWhyZWYuc3RhcnRzV2l0aChNQUlBX01FTlRJT05fUFJPVE9DT0wpKSByZXR1cm4gbnVsbFxuICBjb25zdCB7IHR5cGUsIGlkIH0gPSBwYXJzZU1lbnRpb25Qcm90b2NvbEhyZWYoaHJlZilcbiAgY29uc3QgbGFiZWwgPSBtZW50aW9uQ2hpbGRyZW5Ub0xhYmVsKGNoaWxkcmVuKVxuICBjb25zdCBpc1Rhc2sgPSB0eXBlID09PSAndGFzaydcbiAgY29uc3QgaWNvblNpemUgPSBpc1Rhc2sgPyAxNiA6IDE0XG4gIGNvbnN0IHRhc2tVcmwgPSBgL3Rhc2tzLyR7aWR9L2RldGFpbGBcblxuICBjb25zdCBoYW5kbGVUYXNrQ2xpY2sgPSAoZTogTW91c2VFdmVudDxIVE1MQW5jaG9yRWxlbWVudD4pID0+IHtcbiAgICBpZiAoZS5tZXRhS2V5IHx8IGUuY3RybEtleSkgcmV0dXJuXG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgIG9wZW5UYXNrSW5Db3JQYW5lbChpZCwgJ2RldGFpbCcpXG4gIH1cblxuICBjb25zdCBoYW5kbGVUYXNrS2V5RG93biA9IChlOiBLZXlib2FyZEV2ZW50PEhUTUxBbmNob3JFbGVtZW50PikgPT4ge1xuICAgIGlmIChlLmtleSAhPT0gJ0VudGVyJyAmJiBlLmtleSAhPT0gJyAnKSByZXR1cm5cbiAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICBvcGVuVGFza0luQ29yUGFuZWwoaWQsICdkZXRhaWwnKVxuICB9XG5cbiAgaWYgKGlzVGFzaykge1xuICAgIHJldHVybiAoXG4gICAgICA8U0NUYXNrTGlua1xuICAgICAgICBocmVmPXt0YXNrVXJsfVxuICAgICAgICBjbGFzc05hbWU9e0NPTlRFWFRfTUVOVElPTl9DSElQX0NMQVNTfVxuICAgICAgICBkYXRhLWNvci1saW5rPVwidGFza1wiXG4gICAgICAgIGRhdGEtbWVudGlvbi10eXBlPXt0eXBlfVxuICAgICAgICBkYXRhLW1lbnRpb24tc3VyZmFjZT1cImNoYXRcIlxuICAgICAgICBvbkNsaWNrPXtoYW5kbGVUYXNrQ2xpY2t9XG4gICAgICAgIG9uS2V5RG93bj17aGFuZGxlVGFza0tleURvd259XG4gICAgICA+XG4gICAgICAgIHtsYWJlbH1cbiAgICAgIDwvU0NUYXNrTGluaz5cbiAgICApXG4gIH1cblxuICBjb25zdCBpc1Byb2plY3QgPSB0eXBlID09PSAncHJvamVjdCdcbiAgY29uc3QgcHJvamVjdFVybCA9IGlzUHJvamVjdCA/IGAvcHJvamVjdHMvJHtpZH0vZGFzaGJvYXJkYCA6IG51bGxcbiAgY29uc3Qgc2hvd0ljb24gPSAhaXNQcm9qZWN0XG4gIGNvbnN0IHsgZmlyc3RXb3JkLCByZXN0IH0gPSBzcGxpdExhYmVsRmlyc3RXb3JkKGxhYmVsKVxuXG4gIGNvbnN0IGhhbmRsZVByb2plY3RDbGljayA9IChlOiBNb3VzZUV2ZW50PEhUTUxTcGFuRWxlbWVudD4pID0+IHtcbiAgICBpZiAoIXByb2plY3RVcmwpIHJldHVyblxuICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICB3aW5kb3cub3Blbihwcm9qZWN0VXJsLCAnX2JsYW5rJylcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFNDSW5saW5lTWVudGlvblxuICAgICAgJHR5cGU9e3R5cGV9XG4gICAgICAkaXNDbGlja2FibGU9e2lzUHJvamVjdH1cbiAgICAgIGNsYXNzTmFtZT17Q09OVEVYVF9NRU5USU9OX0NISVBfQ0xBU1N9XG4gICAgICBkYXRhLW1lbnRpb24tdHlwZT17dHlwZX1cbiAgICAgIGRhdGEtbWVudGlvbi1zdXJmYWNlPVwiY2hhdFwiXG4gICAgICBvbkNsaWNrPXtpc1Byb2plY3QgPyBoYW5kbGVQcm9qZWN0Q2xpY2sgOiB1bmRlZmluZWR9XG4gICAgICByb2xlPXtpc1Byb2plY3QgPyAnYnV0dG9uJyA6IHVuZGVmaW5lZH1cbiAgICAgIHRhYkluZGV4PXtpc1Byb2plY3QgPyAwIDogdW5kZWZpbmVkfVxuICAgID5cbiAgICAgIHtzaG93SWNvbiA/IChcbiAgICAgICAgPD5cbiAgICAgICAgICA8U0NJbmxpbmVNZW50aW9uSWNvblJvdz5cbiAgICAgICAgICAgIDxTQ0lubGluZU1lbnRpb25JY29uICR0YXNrPXtpc1Rhc2t9PlxuICAgICAgICAgICAgICB7Z2V0Q29udGV4dE1lbnRpb25JY29uKHR5cGUsIE1FTlRJT05fQ0hJUF9DT0xPUlNbdHlwZV0uZmcsIGlkLCBpY29uU2l6ZSl9XG4gICAgICAgICAgICA8L1NDSW5saW5lTWVudGlvbkljb24+XG4gICAgICAgICAgICA8U0NJbmxpbmVNZW50aW9uV29yZD57Zmlyc3RXb3JkfTwvU0NJbmxpbmVNZW50aW9uV29yZD5cbiAgICAgICAgICA8L1NDSW5saW5lTWVudGlvbkljb25Sb3c+XG4gICAgICAgICAge3Jlc3QgPyA8U0NJbmxpbmVNZW50aW9uUmVzdD57cmVzdH08L1NDSW5saW5lTWVudGlvblJlc3Q+IDogbnVsbH1cbiAgICAgICAgPC8+XG4gICAgICApIDogbnVsbH1cbiAgICAgIHshc2hvd0ljb24gPyBsYWJlbCA6IG51bGx9XG4gICAgPC9TQ0lubGluZU1lbnRpb24+XG4gIClcbn1cblxuLyoqIFF1aXRhIGxvcyBtYXJrZXJzIGRlbCB0ZXh0bywgZGVqYW5kbyBzb2xvIGBsYWJlbGAuIMOadGlsIHBhcmEgZmFsbGJhY2sgcGxhbm8uICovXG5leHBvcnQgY29uc3Qgc3RyaXBNZW50aW9uTWFya2VycyA9ICh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcgPT5cbiAgdGV4dC5yZXBsYWNlKE1FTlRJT05fTUFSS0VSX1JFR0VYLCAoX20sIF90eXBlLCBfaWQsIGxhYmVsKSA9PiBub3JtYWxpemVDb250ZXh0TWVudGlvbkxhYmVsKFN0cmluZyhsYWJlbCkpKVxuXG4vKipcbiAqIFTDrXR1bG9zIGRlIGNvbnZlcnNhY2nDs24gKHAuIGVqLiBgbGFzdF9xdWVzdGlvbmAgZGVyaXZhZG8gZGVsIHByaW1lciBtZW5zYWplKSBwdWVkZW5cbiAqIGluY2x1aXIgZWwgdGV4dG8gc2VyaWFsaXphZG8gYFtbbWVudGlvbjp0eXBlOmlkfGxhYmVsXV1gLiBQYXJhIHNpZGViYXIgeSBsaXN0YWRvcyxcbiAqIHJlZW1wbGF6YSBjYWRhIGJsb3F1ZSBwb3IgYGxhYmVsYCBlbiB0ZXh0byBwbGFubywgc2luIGVsIG1hcmNhZG9yIGNydWRvLlxuICovXG5leHBvcnQgY29uc3QgZm9ybWF0Q2hhdExpc3RUaXRsZU1lbnRpb25zID0gKHRleHQ6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBzdHJpbmcgPT4ge1xuICBpZiAodGV4dCA9PSBudWxsIHx8IHRleHQgPT09ICcnKSByZXR1cm4gdGV4dCA/PyAnJ1xuICBjb25zdCB3aXRob3V0TWVudGlvbnMgPSB0ZXh0LnJlcGxhY2UoTUVOVElPTl9NQVJLRVJfUkVHRVgsIChfbSwgX3R5cGUsIF9pZCwgbGFiZWwpID0+XG4gICAgbm9ybWFsaXplQ29udGV4dE1lbnRpb25MYWJlbChTdHJpbmcobGFiZWwpLnRyaW0oKSlcbiAgKVxuICBjb25zdCBzbGFzaFJlZ2V4ID0gbmV3IFJlZ0V4cChTTEFTSF9DT01NQU5EX01BUktFUl9SRUdFWC5zb3VyY2UsICdnJylcbiAgY29uc3Qgd2l0aG91dFNsYXNoID0gd2l0aG91dE1lbnRpb25zLnJlcGxhY2Uoc2xhc2hSZWdleCwgKF9tLCBfaWQsIGxhYmVsKSA9PiBgLyR7U3RyaW5nKGxhYmVsKS50cmltKCl9YClcbiAgY29uc3Qgd2l0aG91dEluY29tcGxldGVTbGFzaCA9IHdpdGhvdXRTbGFzaC5yZXBsYWNlKFxuICAgIElOQ09NUExFVEVfU0xBU0hfTUFSS0VSX1JFR0VYLFxuICAgIChfbSwgbGFiZWwpID0+IGAvJHtTdHJpbmcobGFiZWwpLnRyaW0oKX1gXG4gIClcbiAgcmV0dXJuIHdpdGhvdXRJbmNvbXBsZXRlU2xhc2gucmVwbGFjZShJTkNPTVBMRVRFX01FTlRJT05fTUFSS0VSX1JFR0VYLCAnJykudHJpbSgpXG59XG5cbi8qKiBHZW5lcmEgbGEgVVJMIGRlIG5hdmVnYWNpw7NuIHBhcmEgdW4gbWVudGlvbiBzZWfDum4gc3UgdGlwby4gKi9cbmNvbnN0IGdldE1lbnRpb25VcmwgPSAodHlwZTogQ29udGV4dEVudGl0eVR5cGUsIGlkOiBzdHJpbmcgfCBudW1iZXIpOiBzdHJpbmcgfCBudWxsID0+IHtcbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSAnY2xpZW50JzpcbiAgICAgIHJldHVybiBgL2NsaWVudHMvJHtpZH1gXG4gICAgY2FzZSAncHJvamVjdCc6XG4gICAgICByZXR1cm4gYC9wcm9qZWN0cy8ke2lkfS9kYXNoYm9hcmRgXG4gICAgY2FzZSAndGFzayc6XG4gICAgICByZXR1cm4gYC90YXNrcy8ke2lkfS9kZXRhaWxgXG4gICAgY2FzZSAndXNlcic6XG4gICAgICByZXR1cm4gbnVsbCAvLyBMb3MgdXNlcnMgbm8gc29uIGNsaWNrZWFibGVzXG4gICAgY2FzZSAnbWNwJzpcbiAgICAgIHJldHVybiBudWxsXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBudWxsXG4gIH1cbn1cblxuY29uc3QgTWVudGlvbkNoaXAgPSAoeyB0eXBlLCBpZCwgbGFiZWwgfTogeyB0eXBlOiBDb250ZXh0RW50aXR5VHlwZTsgaWQ6IHN0cmluZzsgbGFiZWw6IHN0cmluZyB9KSA9PiB7XG4gIGNvbnN0IG5vcm1hbGl6ZWRMYWJlbCA9IG5vcm1hbGl6ZUNvbnRleHRNZW50aW9uTGFiZWwobGFiZWwpXG4gIGNvbnN0IHVybCA9IGdldE1lbnRpb25VcmwodHlwZSwgaWQpXG4gIGNvbnN0IGlzQ2xpY2thYmxlID0gISF1cmxcbiAgY29uc3QgaXNUYXNrID0gdHlwZSA9PT0gJ3Rhc2snXG4gIGNvbnN0IGlzUHJvamVjdCA9IHR5cGUgPT09ICdwcm9qZWN0J1xuICBjb25zdCBzaG93SWNvbiA9ICFpc1Byb2plY3RcbiAgY29uc3QgaWNvblNpemUgPSBpc1Rhc2sgPyAxNiA6IDE0XG4gIGNvbnN0IHsgZmlyc3RXb3JkLCByZXN0IH0gPSBzcGxpdExhYmVsRmlyc3RXb3JkKG5vcm1hbGl6ZWRMYWJlbClcblxuICBjb25zdCBoYW5kbGVDbGljayA9IChlOiBNb3VzZUV2ZW50PEhUTUxBbmNob3JFbGVtZW50IHwgSFRNTFNwYW5FbGVtZW50PikgPT4ge1xuICAgIGlmICghaXNDbGlja2FibGUgfHwgIXVybCkgcmV0dXJuXG4gICAgaWYgKHR5cGUgPT09ICd0YXNrJykge1xuICAgICAgaWYgKGUubWV0YUtleSB8fCBlLmN0cmxLZXkpIHJldHVyblxuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICBvcGVuVGFza0luQ29yUGFuZWwoaWQsICdkZXRhaWwnKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgIHdpbmRvdy5vcGVuKHVybCwgJ19ibGFuaycpXG4gIH1cblxuICBjb25zdCBoYW5kbGVLZXlEb3duID0gKGU6IEtleWJvYXJkRXZlbnQ8SFRNTEFuY2hvckVsZW1lbnQgfCBIVE1MU3BhbkVsZW1lbnQ+KSA9PiB7XG4gICAgaWYgKCFpc0NsaWNrYWJsZSB8fCB0eXBlICE9PSAndGFzaycpIHJldHVyblxuICAgIGlmIChlLmtleSAhPT0gJ0VudGVyJyAmJiBlLmtleSAhPT0gJyAnKSByZXR1cm5cbiAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICBvcGVuVGFza0luQ29yUGFuZWwoaWQsICdkZXRhaWwnKVxuICB9XG5cbiAgaWYgKHR5cGUgPT09ICd0YXNrJykge1xuICAgIHJldHVybiAoXG4gICAgICA8U0NUYXNrTGlua1xuICAgICAgICBocmVmPXt1cmwgPz8gJyMnfVxuICAgICAgICBjbGFzc05hbWU9e0NPTlRFWFRfTUVOVElPTl9DSElQX0NMQVNTfVxuICAgICAgICBkYXRhLWNvci1saW5rPVwidGFza1wiXG4gICAgICAgIGRhdGEtbWVudGlvbi10eXBlPVwidGFza1wiXG4gICAgICAgIGRhdGEtbWVudGlvbi1zdXJmYWNlPVwiY2hhdFwiXG4gICAgICAgIG9uQ2xpY2s9e2hhbmRsZUNsaWNrfVxuICAgICAgICBvbktleURvd249e2hhbmRsZUtleURvd259XG4gICAgICA+XG4gICAgICAgIHtub3JtYWxpemVkTGFiZWx9XG4gICAgICA8L1NDVGFza0xpbms+XG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8U0NJbmxpbmVNZW50aW9uXG4gICAgICAkdHlwZT17dHlwZX1cbiAgICAgICRpc0NsaWNrYWJsZT17aXNDbGlja2FibGV9XG4gICAgICBjbGFzc05hbWU9e0NPTlRFWFRfTUVOVElPTl9DSElQX0NMQVNTfVxuICAgICAgZGF0YS1tZW50aW9uLXR5cGU9e3R5cGV9XG4gICAgICBkYXRhLW1lbnRpb24tc3VyZmFjZT1cImNoYXRcIlxuICAgICAgb25DbGljaz17aXNDbGlja2FibGUgPyBoYW5kbGVDbGljayA6IHVuZGVmaW5lZH1cbiAgICAgIHJvbGU9e2lzQ2xpY2thYmxlID8gJ2J1dHRvbicgOiB1bmRlZmluZWR9XG4gICAgICB0YWJJbmRleD17aXNDbGlja2FibGUgPyAwIDogdW5kZWZpbmVkfVxuICAgID5cbiAgICAgIHtzaG93SWNvbiA/IChcbiAgICAgICAgPD5cbiAgICAgICAgICA8U0NJbmxpbmVNZW50aW9uSWNvblJvdz5cbiAgICAgICAgICAgIDxTQ0lubGluZU1lbnRpb25JY29uICR0YXNrPXtpc1Rhc2t9PlxuICAgICAgICAgICAgICB7Z2V0Q29udGV4dE1lbnRpb25JY29uKHR5cGUsIE1FTlRJT05fQ0hJUF9DT0xPUlNbdHlwZV0uZmcsIGlkLCBpY29uU2l6ZSl9XG4gICAgICAgICAgICA8L1NDSW5saW5lTWVudGlvbkljb24+XG4gICAgICAgICAgICA8U0NJbmxpbmVNZW50aW9uV29yZD57Zmlyc3RXb3JkfTwvU0NJbmxpbmVNZW50aW9uV29yZD5cbiAgICAgICAgICA8L1NDSW5saW5lTWVudGlvbkljb25Sb3c+XG4gICAgICAgICAge3Jlc3QgPyA8U0NJbmxpbmVNZW50aW9uUmVzdD57cmVzdH08L1NDSW5saW5lTWVudGlvblJlc3Q+IDogbnVsbH1cbiAgICAgICAgPC8+XG4gICAgICApIDogbnVsbH1cbiAgICAgIHshc2hvd0ljb24gPyBub3JtYWxpemVkTGFiZWwgOiBudWxsfVxuICAgIDwvU0NJbmxpbmVNZW50aW9uPlxuICApXG59XG5cbmV4cG9ydCBjb25zdCBoYXNJbmxpbmVNYXJrZXJzID0gKHRleHQ6IHN0cmluZyk6IGJvb2xlYW4gPT4ge1xuICBpZiAoIXRleHQpIHJldHVybiBmYWxzZVxuICByZXR1cm4gdGV4dC5pbmNsdWRlcygnW1ttZW50aW9uOicpIHx8IHRleHQuaW5jbHVkZXMoJ1tbc2xhc2hfY29tbWFuZDonKVxufVxuXG50eXBlIElubGluZU1hcmtlciA9XG4gIHwgeyBraW5kOiAnbWVudGlvbic7IGluZGV4OiBudW1iZXI7IGxlbmd0aDogbnVtYmVyOyB0eXBlOiBDb250ZXh0RW50aXR5VHlwZTsgaWQ6IHN0cmluZzsgbGFiZWw6IHN0cmluZyB9XG4gIHwgeyBraW5kOiAnc2xhc2gnOyBpbmRleDogbnVtYmVyOyBsZW5ndGg6IG51bWJlcjsgaWQ6IHN0cmluZzsgbGFiZWw6IHN0cmluZyB9XG5cbmNvbnN0IGNvbGxlY3RJbmxpbmVNYXJrZXJzID0gKHRleHQ6IHN0cmluZyk6IElubGluZU1hcmtlcltdID0+IHtcbiAgY29uc3QgbWFya2VyczogSW5saW5lTWFya2VyW10gPSBbXVxuXG4gIE1FTlRJT05fTUFSS0VSX1JFR0VYLmxhc3RJbmRleCA9IDBcbiAgbGV0IG06IFJlZ0V4cEV4ZWNBcnJheSB8IG51bGwgPSBNRU5USU9OX01BUktFUl9SRUdFWC5leGVjKHRleHQpXG4gIHdoaWxlIChtKSB7XG4gICAgY29uc3QgWywgcmF3VHlwZSwgaWQsIGxhYmVsXSA9IG1cbiAgICBjb25zdCB0eXBlID0gQUxMT1dFRF9UWVBFUy5pbmNsdWRlcyhyYXdUeXBlIGFzIENvbnRleHRFbnRpdHlUeXBlKSA/IChyYXdUeXBlIGFzIENvbnRleHRFbnRpdHlUeXBlKSA6ICd1c2VyJ1xuICAgIG1hcmtlcnMucHVzaCh7IGtpbmQ6ICdtZW50aW9uJywgaW5kZXg6IG0uaW5kZXgsIGxlbmd0aDogbVswXS5sZW5ndGgsIHR5cGUsIGlkLCBsYWJlbCB9KVxuICAgIG0gPSBNRU5USU9OX01BUktFUl9SRUdFWC5leGVjKHRleHQpXG4gIH1cblxuICBjb25zdCBzbGFzaFJlZ2V4ID0gbmV3IFJlZ0V4cChTTEFTSF9DT01NQU5EX01BUktFUl9SRUdFWC5zb3VyY2UsICdnJylcbiAgbGV0IHM6IFJlZ0V4cEV4ZWNBcnJheSB8IG51bGwgPSBzbGFzaFJlZ2V4LmV4ZWModGV4dClcbiAgd2hpbGUgKHMpIHtcbiAgICBtYXJrZXJzLnB1c2goeyBraW5kOiAnc2xhc2gnLCBpbmRleDogcy5pbmRleCwgbGVuZ3RoOiBzWzBdLmxlbmd0aCwgaWQ6IHNbMV0sIGxhYmVsOiBzWzJdIH0pXG4gICAgcyA9IHNsYXNoUmVnZXguZXhlYyh0ZXh0KVxuICB9XG5cbiAgcmV0dXJuIG1hcmtlcnMuc29ydCgoYSwgYikgPT4gYS5pbmRleCAtIGIuaW5kZXgpXG59XG5cbmV4cG9ydCBjb25zdCByZW5kZXJUZXh0V2l0aE1lbnRpb25zID0gKHRleHQ6IHN0cmluZyk6IEFycmF5PHN0cmluZyB8IFJlYWN0RWxlbWVudD4gPT4ge1xuICBpZiAoIXRleHQpIHJldHVybiBbdGV4dF1cbiAgY29uc3QgbWFya2VycyA9IGNvbGxlY3RJbmxpbmVNYXJrZXJzKHRleHQpXG4gIGlmIChtYXJrZXJzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIFt0ZXh0XVxuXG4gIGNvbnN0IG91dDogQXJyYXk8c3RyaW5nIHwgUmVhY3RFbGVtZW50PiA9IFtdXG4gIGxldCBsYXN0SWR4ID0gMFxuICBtYXJrZXJzLmZvckVhY2gobWFya2VyID0+IHtcbiAgICBpZiAobWFya2VyLmluZGV4ID4gbGFzdElkeCkgb3V0LnB1c2godGV4dC5zbGljZShsYXN0SWR4LCBtYXJrZXIuaW5kZXgpKVxuICAgIGlmIChtYXJrZXIua2luZCA9PT0gJ21lbnRpb24nKSB7XG4gICAgICBvdXQucHVzaChcbiAgICAgICAgPE1lbnRpb25DaGlwXG4gICAgICAgICAga2V5PXtgbWVudGlvbi0ke21hcmtlci5pbmRleH0tJHttYXJrZXIudHlwZX0tJHttYXJrZXIuaWR9YH1cbiAgICAgICAgICB0eXBlPXttYXJrZXIudHlwZX1cbiAgICAgICAgICBpZD17bWFya2VyLmlkfVxuICAgICAgICAgIGxhYmVsPXttYXJrZXIubGFiZWx9XG4gICAgICAgIC8+XG4gICAgICApXG4gICAgfSBlbHNlIHtcbiAgICAgIG91dC5wdXNoKDxTbGFzaENvbW1hbmRDaGlwIGtleT17YHNsYXNoLSR7bWFya2VyLmluZGV4fS0ke21hcmtlci5pZH1gfSBsYWJlbD17bWFya2VyLmxhYmVsfSBpbmxpbmU9e2ZhbHNlfSAvPilcbiAgICB9XG4gICAgbGFzdElkeCA9IG1hcmtlci5pbmRleCArIG1hcmtlci5sZW5ndGhcbiAgfSlcbiAgaWYgKGxhc3RJZHggPCB0ZXh0Lmxlbmd0aCkgb3V0LnB1c2godGV4dC5zbGljZShsYXN0SWR4KSlcbiAgcmV0dXJuIG91dFxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBT0EsTUFBTSxJQUFJQyxHQUFHLFFBQVEsbUJBQW1C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
420
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTUyIsIk1FTlRJT05fQ0hJUF9DT0xPUlMiLCJNRU5USU9OX0NISVBfTk9OX1RBU0tfSE9WRVJfQkciLCJTbGFzaENvbW1hbmRDaGlwIiwiU0NTbGFzaENoaXAiLCJTTEFTSF9DT01NQU5EX01BUktFUl9SRUdFWCIsIlZJT0xFVF9JQV9DT0xPUlMiLCJTQ1Rhc2tMaW5rIiwiZ2V0Q29udGV4dE1lbnRpb25JY29uIiwibm9ybWFsaXplQ29udGV4dE1lbnRpb25MYWJlbCIsIm9wZW5UYXNrSW5Db3JQYW5lbCIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJGcmFnbWVudCIsIl9GcmFnbWVudCIsIk1FTlRJT05fTUFSS0VSX1JFR0VYIiwiTUFJQV9NRU5USU9OX1BST1RPQ09MIiwiSU5DT01QTEVURV9NRU5USU9OX01BUktFUl9SRUdFWCIsIklOQ09NUExFVEVfU0xBU0hfTUFSS0VSX1JFR0VYIiwiQUxMT1dFRF9UWVBFUyIsInBhcnNlTWVudGlvblByb3RvY29sSHJlZiIsImhyZWYiLCJyZXN0Iiwic2xpY2UiLCJsZW5ndGgiLCJzbGFzaElkeCIsImluZGV4T2YiLCJyYXdUeXBlIiwicmF3SWQiLCJpZCIsImRlY29kZVVSSUNvbXBvbmVudCIsIl91bnVzZWQiLCJ0eXBlIiwiaW5jbHVkZXMiLCJzZXJpYWxpemVNZW50aW9uIiwibWVudGlvbiIsImNvbmNhdCIsImxhYmVsIiwidHJhbnNmb3JtTWVudGlvbk1hcmtlcnMiLCJ0ZXh0IiwicmVwbGFjZSIsIl9tIiwic2FmZUxhYmVsIiwiU3RyaW5nIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwibWVudGlvbkNoaWxkcmVuVG9MYWJlbCIsImNoaWxkcmVuIiwiQXJyYXkiLCJpc0FycmF5IiwibWFwIiwiYyIsImpvaW4iLCJzcGxpdExhYmVsRmlyc3RXb3JkIiwibm9ybWFsaXplZCIsInRyaW0iLCJmaXJzdFdvcmQiLCJmaXJzdFdoaXRlc3BhY2VJZHgiLCJzZWFyY2giLCJmb3JtYXRTa2lsbExhYmVsIiwiU2tpbGxJbmxpbmVDaGlwIiwiX3JlZiIsImNsYXNzTmFtZSIsIklOTElORV9NRU5USU9OX0hPVkVSX0JHIiwicHJvamVjdCIsImlubGluZU1lbnRpb25Ib3ZlckNzcyIsImlzQ2xpY2thYmxlIiwiX0lOTElORV9NRU5USU9OX0hPVkVSIiwiYmciLCJTQ0lubGluZU1lbnRpb24iLCJzcGFuIiwid2l0aENvbmZpZyIsImRpc3BsYXlOYW1lIiwiY29tcG9uZW50SWQiLCJfcmVmMiIsIl9NRU5USU9OX0NISVBfQ09MT1JTJCIsIiR0eXBlIiwidXNlciIsIl9yZWYzIiwiX01FTlRJT05fQ0hJUF9DT0xPUlMkMiIsImZnIiwiX3JlZjQiLCIkaXNDbGlja2FibGUiLCJfcmVmNSIsIlNDSW5saW5lTWVudGlvbkljb24iLCJfcmVmNiIsIiR0YXNrIiwiX3JlZjciLCJTQ0lubGluZU1lbnRpb25JY29uUm93IiwiU0NJbmxpbmVNZW50aW9uV29yZCIsIlNDSW5saW5lTWVudGlvblJlc3QiLCJyZW5kZXJNZW50aW9uTGluayIsInN0YXJ0c1dpdGgiLCJfcGFyc2VNZW50aW9uUHJvdG9jb2wiLCJpc1Rhc2siLCJpY29uU2l6ZSIsInRhc2tVcmwiLCJoYW5kbGVUYXNrQ2xpY2siLCJlIiwibWV0YUtleSIsImN0cmxLZXkiLCJwcmV2ZW50RGVmYXVsdCIsInN0b3BQcm9wYWdhdGlvbiIsImhhbmRsZVRhc2tLZXlEb3duIiwia2V5Iiwib25DbGljayIsIm9uS2V5RG93biIsImlzUHJvamVjdCIsInByb2plY3RVcmwiLCJzaG93SWNvbiIsIl9zcGxpdExhYmVsRmlyc3RXb3JkIiwiaGFuZGxlUHJvamVjdENsaWNrIiwid2luZG93Iiwib3BlbiIsInVuZGVmaW5lZCIsInJvbGUiLCJ0YWJJbmRleCIsInN0cmlwTWVudGlvbk1hcmtlcnMiLCJfdHlwZSIsIl9pZCIsImZvcm1hdENoYXRMaXN0VGl0bGVNZW50aW9ucyIsIndpdGhvdXRNZW50aW9ucyIsInNsYXNoUmVnZXgiLCJSZWdFeHAiLCJzb3VyY2UiLCJ3aXRob3V0U2xhc2giLCJ3aXRob3V0SW5jb21wbGV0ZVNsYXNoIiwiZ2V0TWVudGlvblVybCIsIk1lbnRpb25DaGlwIiwiX3JlZjgiLCJub3JtYWxpemVkTGFiZWwiLCJ1cmwiLCJfc3BsaXRMYWJlbEZpcnN0V29yZDIiLCJoYW5kbGVDbGljayIsImhhbmRsZUtleURvd24iLCJoYXNJbmxpbmVNYXJrZXJzIiwiY29sbGVjdElubGluZU1hcmtlcnMiLCJtYXJrZXJzIiwibGFzdEluZGV4IiwibSIsImV4ZWMiLCJfbTIiLCJfbTMiLCJfc2xpY2VkVG9BcnJheSIsInB1c2giLCJraW5kIiwiaW5kZXgiLCJzIiwic29ydCIsImEiLCJiIiwicmVuZGVyVGV4dFdpdGhNZW50aW9ucyIsIm91dCIsImxhc3RJZHgiLCJmb3JFYWNoIiwibWFya2VyIiwiaW5saW5lIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3JlbmRlckNvbnRleHRNZW50aW9ucy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVhY3ROb2RlLCBSZWFjdEVsZW1lbnQsIE1vdXNlRXZlbnQsIEtleWJvYXJkRXZlbnQgfSBmcm9tICdyZWFjdCdcbmltcG9ydCBzdHlsZWQsIHsgY3NzIH0gZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnXG5pbXBvcnQgeyBDb250ZXh0RW50aXR5VHlwZSwgQ29udGV4dE1lbnRpb24sIENPTlRFWFRfTUVOVElPTl9DSElQX0NMQVNTIH0gZnJvbSAnLi4vdHlwZXMvY29udGV4dE1lbnRpb24nXG5pbXBvcnQge1xuICBNRU5USU9OX0NISVBfQ09MT1JTLFxuICBNRU5USU9OX0NISVBfTk9OX1RBU0tfSE9WRVJfQkcsXG59IGZyb20gJy4uL2NvbXBvbmVudHMvYXRvbXMvQ29udGV4dE1lbnRpb25DaGlwL0NvbnRleHRNZW50aW9uQ2hpcC5zdHlsZXMnXG5pbXBvcnQgeyBTbGFzaENvbW1hbmRDaGlwIH0gZnJvbSAnLi4vY29tcG9uZW50cy9hdG9tcy9TbGFzaENvbW1hbmRDaGlwJ1xuaW1wb3J0IHsgU0NTbGFzaENoaXAgfSBmcm9tICcuLi9jb21wb25lbnRzL2F0b21zL1NsYXNoQ29tbWFuZENoaXAvU2xhc2hDb21tYW5kQ2hpcC5zdHlsZXMnXG5pbXBvcnQgeyBTTEFTSF9DT01NQU5EX01BUktFUl9SRUdFWCB9IGZyb20gJy4vc2xhc2hDb21tYW5kTWFya2VyJ1xuaW1wb3J0IHsgVklPTEVUX0lBX0NPTE9SUyB9IGZyb20gJy4uL3N0eWxlcy9jb25maWcnXG5pbXBvcnQgeyBTQ1Rhc2tMaW5rIH0gZnJvbSAnLi4vY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEFJTWVzc2FnZXMvbmV3U3R5bGVzJ1xuaW1wb3J0IHsgZ2V0Q29udGV4dE1lbnRpb25JY29uIH0gZnJvbSAnLi9jb250ZXh0TWVudGlvbkljb25zJ1xuaW1wb3J0IHsgbm9ybWFsaXplQ29udGV4dE1lbnRpb25MYWJlbCB9IGZyb20gJy4vY29udGV4dE1lbnRpb25MYWJlbCdcbmltcG9ydCB7IG9wZW5UYXNrSW5Db3JQYW5lbCB9IGZyb20gJy4vb3BlblRhc2tJbkNvclBhbmVsJ1xuXG4vKipcbiAqIEZvcm1hdG8gZGVsIG1hcmNhZG9yIHF1ZSB2aWFqYSBlbiBlbCB0ZXh0byBkZWwgbWVuc2FqZTpcbiAqICAgW1ttZW50aW9uOjx0eXBlPjo8aWQ+fDxsYWJlbD5dXVxuICpcbiAqIEVsIGVkaXRvciBsbyBlbWl0ZSBjdWFuZG8gc2VyaWFsaXphIGVsIGNvbnRlbnRlZGl0YWJsZSwgZWwgYmFja2VuZCBsb1xuICogcGVyc2lzdGUgdGFsIGN1YWwgeSBhbCByZW5kZXJpemFyIHNlIHRyYW5zZm9ybWEgZW4gdW4gbGluayBtYXJrZG93biBjb25cbiAqIHVuIHByb3RvY29sbyBwcm9waW8gcXVlIGBDdXN0b21MaW5rYCBpbnRlcmNlcHRhIHkgZGlidWphIGNvbW8gc3BhblxuICogZXN0aWxhZG8uXG4gKlxuICogUG9yIHNlcGFyYWRvLCBsYSBtZXRhZGF0YSBgY29udGV4dF9tZXNzYWdlYCBsbGV2YSBsb3MgdmFsb3JlcyBsaW1waW9zXG4gKiAoaWQgKyBuYW1lKSBwYXJhIHF1ZSBlbCBiYWNrZW5kIHB1ZWRhIGludGVycHJldGFyIGxhcyBlbnRpZGFkZXMgc2luXG4gKiB0ZW5lciBxdWUgcGFyc2VhciBlbCB0ZXh0by5cbiAqL1xuLyoqXG4gKiBMYWJlbCBwdWVkZSBjb250ZW5lciBgXWAgKGVqOiBcIltFZHVjYXRlXUJsb2cgUG9zdCAuLi5cIiksIHBvciBlc29cbiAqIHNlIGNhcHR1cmEgZGUgZm9ybWEgbGF6eSBoYXN0YSBlbCBjaWVycmUgcmVhbCBgXV1gLlxuICovXG5leHBvcnQgY29uc3QgTUVOVElPTl9NQVJLRVJfUkVHRVggPSAvXFxbXFxbbWVudGlvbjooY2xpZW50fHByb2plY3R8dGFza3x1c2VyfG1jcHxza2lsbCk6KFtefFxcXV0rKVxcfChbXFxzXFxTXSo/KVxcXVxcXS9nXG5leHBvcnQgY29uc3QgTUFJQV9NRU5USU9OX1BST1RPQ09MID0gJ21haWEtbWVudGlvbjovLydcbmNvbnN0IElOQ09NUExFVEVfTUVOVElPTl9NQVJLRVJfUkVHRVggPSAvXFxbXFxbbWVudGlvbjpbXFxzXFxTXSokL1xuY29uc3QgSU5DT01QTEVURV9TTEFTSF9NQVJLRVJfUkVHRVggPSAvXFxbXFxbc2xhc2hfY29tbWFuZDpbXnxcXF1dK1xcfChbXFxzXFxTXSopJC9cblxuY29uc3QgQUxMT1dFRF9UWVBFUzogQ29udGV4dEVudGl0eVR5cGVbXSA9IFsnY2xpZW50JywgJ3Byb2plY3QnLCAndGFzaycsICd1c2VyJywgJ21jcCcsICdza2lsbCddXG5cbmNvbnN0IHBhcnNlTWVudGlvblByb3RvY29sSHJlZiA9IChocmVmOiBzdHJpbmcpOiB7IHR5cGU6IENvbnRleHRFbnRpdHlUeXBlOyBpZDogc3RyaW5nIH0gPT4ge1xuICBjb25zdCByZXN0ID0gaHJlZi5zbGljZShNQUlBX01FTlRJT05fUFJPVE9DT0wubGVuZ3RoKVxuICBjb25zdCBzbGFzaElkeCA9IHJlc3QuaW5kZXhPZignLycpXG4gIGNvbnN0IHJhd1R5cGUgPSBzbGFzaElkeCA+PSAwID8gcmVzdC5zbGljZSgwLCBzbGFzaElkeCkgOiByZXN0XG4gIGNvbnN0IHJhd0lkID0gc2xhc2hJZHggPj0gMCA/IHJlc3Quc2xpY2Uoc2xhc2hJZHggKyAxKSA6ICcnXG4gIGxldCBpZCA9ICcnXG4gIHRyeSB7XG4gICAgaWQgPSByYXdJZCA/IGRlY29kZVVSSUNvbXBvbmVudChyYXdJZCkgOiAnJ1xuICB9IGNhdGNoIHtcbiAgICBpZCA9IHJhd0lkXG4gIH1cbiAgY29uc3QgdHlwZSA9IEFMTE9XRURfVFlQRVMuaW5jbHVkZXMocmF3VHlwZSBhcyBDb250ZXh0RW50aXR5VHlwZSkgPyAocmF3VHlwZSBhcyBDb250ZXh0RW50aXR5VHlwZSkgOiAndXNlcidcbiAgcmV0dXJuIHsgdHlwZSwgaWQgfVxufVxuXG4vKiogR2VuZXJhIGVsIG1hcmNhZG9yIHBhcmEgdW4gbWVudGlvbiBkYWRvLiBMbyB1c2EgZWwgZWRpdG9yIGFsIHNlcmlhbGl6YXIuICovXG5leHBvcnQgY29uc3Qgc2VyaWFsaXplTWVudGlvbiA9IChtZW50aW9uOiBDb250ZXh0TWVudGlvbik6IHN0cmluZyA9PlxuICBgW1ttZW50aW9uOiR7bWVudGlvbi50eXBlfToke21lbnRpb24uaWR9fCR7bWVudGlvbi5sYWJlbH1dXWBcblxuLyoqXG4gKiBDb252aWVydGUgY2FkYSBgW1ttZW50aW9uOi4uLl1dYCBlbiB1biBsaW5rIG1hcmtkb3duIGNvbiBwcm90b2NvbG8gcHJvcGlvXG4gKiBwYXJhIHF1ZSBTdHJlYW1kb3duIGxvIGVtaXRhIGNvbW8gYDxhPmAgeSBgQ3VzdG9tTGlua2AgbG8gaW50ZXJjZXB0ZS5cbiAqL1xuZXhwb3J0IGNvbnN0IHRyYW5zZm9ybU1lbnRpb25NYXJrZXJzID0gKHRleHQ6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGlmICghdGV4dCkgcmV0dXJuIHRleHRcbiAgcmV0dXJuIHRleHQucmVwbGFjZShNRU5USU9OX01BUktFUl9SRUdFWCwgKF9tLCB0eXBlLCBpZCwgbGFiZWwpID0+IHtcbiAgICBjb25zdCBzYWZlTGFiZWwgPSBTdHJpbmcobGFiZWwpLnJlcGxhY2UoL1tcXFxcXFxdXS9nLCAnXFxcXCQmJylcbiAgICByZXR1cm4gYFske3NhZmVMYWJlbH1dKCR7TUFJQV9NRU5USU9OX1BST1RPQ09MfSR7dHlwZX0vJHtlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKGlkKSl9KWBcbiAgfSlcbn1cblxuY29uc3QgbWVudGlvbkNoaWxkcmVuVG9MYWJlbCA9IChjaGlsZHJlbjogUmVhY3ROb2RlKTogc3RyaW5nID0+IHtcbiAgaWYgKHR5cGVvZiBjaGlsZHJlbiA9PT0gJ3N0cmluZycpIHJldHVybiBub3JtYWxpemVDb250ZXh0TWVudGlvbkxhYmVsKGNoaWxkcmVuKVxuICBpZiAoY2hpbGRyZW4gPT0gbnVsbCB8fCBjaGlsZHJlbiA9PT0gZmFsc2UpIHJldHVybiAnJ1xuICBpZiAoQXJyYXkuaXNBcnJheShjaGlsZHJlbikpIHtcbiAgICByZXR1cm4gbm9ybWFsaXplQ29udGV4dE1lbnRpb25MYWJlbChjaGlsZHJlbi5tYXAoYyA9PiAodHlwZW9mIGMgPT09ICdzdHJpbmcnID8gYyA6ICcnKSkuam9pbignJykpXG4gIH1cbiAgcmV0dXJuIG5vcm1hbGl6ZUNvbnRleHRNZW50aW9uTGFiZWwoU3RyaW5nKGNoaWxkcmVuKSlcbn1cblxuY29uc3Qgc3BsaXRMYWJlbEZpcnN0V29yZCA9IChsYWJlbDogc3RyaW5nKTogeyBmaXJzdFdvcmQ6IHN0cmluZzsgcmVzdDogc3RyaW5nIH0gPT4ge1xuICBjb25zdCBub3JtYWxpemVkID0gbm9ybWFsaXplQ29udGV4dE1lbnRpb25MYWJlbChsYWJlbCkudHJpbSgpXG4gIGlmICghbm9ybWFsaXplZCkgcmV0dXJuIHsgZmlyc3RXb3JkOiAnJywgcmVzdDogJycgfVxuICBjb25zdCBmaXJzdFdoaXRlc3BhY2VJZHggPSBub3JtYWxpemVkLnNlYXJjaCgvXFxzLylcbiAgaWYgKGZpcnN0V2hpdGVzcGFjZUlkeCA8IDApIHJldHVybiB7IGZpcnN0V29yZDogbm9ybWFsaXplZCwgcmVzdDogJycgfVxuICByZXR1cm4ge1xuICAgIGZpcnN0V29yZDogbm9ybWFsaXplZC5zbGljZSgwLCBmaXJzdFdoaXRlc3BhY2VJZHgpLFxuICAgIHJlc3Q6IG5vcm1hbGl6ZWQuc2xpY2UoZmlyc3RXaGl0ZXNwYWNlSWR4KSxcbiAgfVxufVxuXG4vKiogTGFzIHNraWxscyBzZSBtdWVzdHJhbiBjb21vIGAjbm9tYnJlYCwgY29uIGVsIG1pc21vIGVzdGlsbyBxdWUgbG9zIHNsYXNoIGNvbW1hbmRzLiAqL1xuY29uc3QgZm9ybWF0U2tpbGxMYWJlbCA9IChsYWJlbDogc3RyaW5nKTogc3RyaW5nID0+IGAjJHtsYWJlbC50cmltKCkucmVwbGFjZSgvXihAXFwvfCMpLywgJycpfWBcblxuY29uc3QgU2tpbGxJbmxpbmVDaGlwID0gKHsgbGFiZWwgfTogeyBsYWJlbDogc3RyaW5nIH0pOiBSZWFjdEVsZW1lbnQgPT4gKFxuICA8U0NTbGFzaENoaXAgY2xhc3NOYW1lPXtDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTU30gZGF0YS1tZW50aW9uLXR5cGU9XCJza2lsbFwiIGRhdGEtbWVudGlvbi1zdXJmYWNlPVwiY2hhdFwiPlxuICAgIHtmb3JtYXRTa2lsbExhYmVsKGxhYmVsKX1cbiAgPC9TQ1NsYXNoQ2hpcD5cbilcblxuY29uc3QgSU5MSU5FX01FTlRJT05fSE9WRVJfQkc6IFBhcnRpYWw8UmVjb3JkPENvbnRleHRFbnRpdHlUeXBlLCBzdHJpbmc+PiA9IHtcbiAgcHJvamVjdDogVklPTEVUX0lBX0NPTE9SU1sxMDBdLFxufVxuXG5jb25zdCBpbmxpbmVNZW50aW9uSG92ZXJDc3MgPSAodHlwZTogQ29udGV4dEVudGl0eVR5cGUsIGlzQ2xpY2thYmxlPzogYm9vbGVhbikgPT4ge1xuICBpZiAodHlwZSA9PT0gJ3NraWxsJykgcmV0dXJuIGNzc2BgXG4gIGNvbnN0IGJnID0gSU5MSU5FX01FTlRJT05fSE9WRVJfQkdbdHlwZV0gPz8gTUVOVElPTl9DSElQX05PTl9UQVNLX0hPVkVSX0JHXG4gIHJldHVybiBjc3NgXG4gICAgYmFja2dyb3VuZDogJHtiZ307XG4gICAgb3BhY2l0eTogJHtpc0NsaWNrYWJsZSA/IDAuOTUgOiAxfTtcbiAgYFxufVxuXG4vKiogU3BhbiBpbmxpbmUgZXN0aWxhZG8gKG1lbmNpb25lcyBuby10YXNrIGVuIGNoYXQpLiAqL1xuY29uc3QgU0NJbmxpbmVNZW50aW9uID0gc3R5bGVkLnNwYW48eyAkdHlwZTogQ29udGV4dEVudGl0eVR5cGU7ICRpc0NsaWNrYWJsZT86IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGlubGluZTtcbiAgcGFkZGluZzogMnB4IDRweDtcbiAgbWFyZ2luOiAwIDFweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBmb250LWZhbWlseTogdmFyKC0tY29yLXR5cG9ncmFwaHktZm9udC1mYW1pbHksICdXb3JrIFNhbnMnKTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgYmFja2dyb3VuZDogJHsoeyAkdHlwZSB9KSA9PiAoTUVOVElPTl9DSElQX0NPTE9SU1skdHlwZV0gPz8gTUVOVElPTl9DSElQX0NPTE9SUy51c2VyKS5iZ307XG4gIGNvbG9yOiAkeyh7ICR0eXBlIH0pID0+IChNRU5USU9OX0NISVBfQ09MT1JTWyR0eXBlXSA/PyBNRU5USU9OX0NISVBfQ09MT1JTLnVzZXIpLmZnfTtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgY3Vyc29yOiAkeyh7ICRpc0NsaWNrYWJsZSB9KSA9PiAoJGlzQ2xpY2thYmxlID8gJ3BvaW50ZXInIDogJ2RlZmF1bHQnKX07XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAmOmhvdmVyIHtcbiAgICAkeyh7ICR0eXBlLCAkaXNDbGlja2FibGUgfSkgPT4gaW5saW5lTWVudGlvbkhvdmVyQ3NzKCR0eXBlLCAkaXNDbGlja2FibGUpfVxuICB9XG5gXG5cbmNvbnN0IFNDSW5saW5lTWVudGlvbkljb24gPSBzdHlsZWQuc3Bhbjx7ICR0YXNrPzogYm9vbGVhbiB9PmBcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW4tcmlnaHQ6IDJweDtcbiAgd2lkdGg6ICR7KHsgJHRhc2sgfSkgPT4gKCR0YXNrID8gJzE2cHgnIDogJzE0cHgnKX07XG4gIGhlaWdodDogJHsoeyAkdGFzayB9KSA9PiAoJHRhc2sgPyAnMTZweCcgOiAnMTRweCcpfTtcbmBcblxuY29uc3QgU0NJbmxpbmVNZW50aW9uSWNvblJvdyA9IHN0eWxlZC5zcGFuYFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuYFxuXG5jb25zdCBTQ0lubGluZU1lbnRpb25Xb3JkID0gc3R5bGVkLnNwYW5gXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5gXG5cbmNvbnN0IFNDSW5saW5lTWVudGlvblJlc3QgPSBzdHlsZWQuc3BhbmBcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbmBcblxuLyoqXG4gKiBTaSBlbCBocmVmIGNvcnJlc3BvbmRlIGFsIHByb3RvY29sbyBkZSBtZW50aW9uLCBkZXZ1ZWx2ZSB1biBub2RvIGVzdGlsYWRvIHBvciB0aXBvLlxuICogTGFzIHRhcmVhcyB1c2FuIGA8YT5gIGNvbW8gbG9zIGVubGFjZXMgZGUgdGFyZWEgZGVsIGFnZW50ZSAoYC5oYXMtdGFzay1saW5rc2ApLlxuICovXG5leHBvcnQgY29uc3QgcmVuZGVyTWVudGlvbkxpbmsgPSAoaHJlZjogc3RyaW5nIHwgdW5kZWZpbmVkLCBjaGlsZHJlbjogUmVhY3ROb2RlKTogUmVhY3ROb2RlIHwgbnVsbCA9PiB7XG4gIGlmICghaHJlZiB8fCAhaHJlZi5zdGFydHNXaXRoKE1BSUFfTUVOVElPTl9QUk9UT0NPTCkpIHJldHVybiBudWxsXG4gIGNvbnN0IHsgdHlwZSwgaWQgfSA9IHBhcnNlTWVudGlvblByb3RvY29sSHJlZihocmVmKVxuICBjb25zdCBsYWJlbCA9IG1lbnRpb25DaGlsZHJlblRvTGFiZWwoY2hpbGRyZW4pXG4gIGlmICh0eXBlID09PSAnc2tpbGwnKSByZXR1cm4gPFNraWxsSW5saW5lQ2hpcCBsYWJlbD17bGFiZWx9IC8+XG4gIGNvbnN0IGlzVGFzayA9IHR5cGUgPT09ICd0YXNrJ1xuICBjb25zdCBpY29uU2l6ZSA9IGlzVGFzayA/IDE2IDogMTRcbiAgY29uc3QgdGFza1VybCA9IGAvdGFza3MvJHtpZH0vZGV0YWlsYFxuXG4gIGNvbnN0IGhhbmRsZVRhc2tDbGljayA9IChlOiBNb3VzZUV2ZW50PEhUTUxBbmNob3JFbGVtZW50PikgPT4ge1xuICAgIGlmIChlLm1ldGFLZXkgfHwgZS5jdHJsS2V5KSByZXR1cm5cbiAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgb3BlblRhc2tJbkNvclBhbmVsKGlkLCAnZGV0YWlsJylcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVRhc2tLZXlEb3duID0gKGU6IEtleWJvYXJkRXZlbnQ8SFRNTEFuY2hvckVsZW1lbnQ+KSA9PiB7XG4gICAgaWYgKGUua2V5ICE9PSAnRW50ZXInICYmIGUua2V5ICE9PSAnICcpIHJldHVyblxuICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgIG9wZW5UYXNrSW5Db3JQYW5lbChpZCwgJ2RldGFpbCcpXG4gIH1cblxuICBpZiAoaXNUYXNrKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTQ1Rhc2tMaW5rXG4gICAgICAgIGhyZWY9e3Rhc2tVcmx9XG4gICAgICAgIGNsYXNzTmFtZT17Q09OVEVYVF9NRU5USU9OX0NISVBfQ0xBU1N9XG4gICAgICAgIGRhdGEtY29yLWxpbms9XCJ0YXNrXCJcbiAgICAgICAgZGF0YS1tZW50aW9uLXR5cGU9e3R5cGV9XG4gICAgICAgIGRhdGEtbWVudGlvbi1zdXJmYWNlPVwiY2hhdFwiXG4gICAgICAgIG9uQ2xpY2s9e2hhbmRsZVRhc2tDbGlja31cbiAgICAgICAgb25LZXlEb3duPXtoYW5kbGVUYXNrS2V5RG93bn1cbiAgICAgID5cbiAgICAgICAge2xhYmVsfVxuICAgICAgPC9TQ1Rhc2tMaW5rPlxuICAgIClcbiAgfVxuXG4gIGNvbnN0IGlzUHJvamVjdCA9IHR5cGUgPT09ICdwcm9qZWN0J1xuICBjb25zdCBwcm9qZWN0VXJsID0gaXNQcm9qZWN0ID8gYC9wcm9qZWN0cy8ke2lkfS9kYXNoYm9hcmRgIDogbnVsbFxuICBjb25zdCBzaG93SWNvbiA9ICFpc1Byb2plY3RcbiAgY29uc3QgeyBmaXJzdFdvcmQsIHJlc3QgfSA9IHNwbGl0TGFiZWxGaXJzdFdvcmQobGFiZWwpXG5cbiAgY29uc3QgaGFuZGxlUHJvamVjdENsaWNrID0gKGU6IE1vdXNlRXZlbnQ8SFRNTFNwYW5FbGVtZW50PikgPT4ge1xuICAgIGlmICghcHJvamVjdFVybCkgcmV0dXJuXG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgIHdpbmRvdy5vcGVuKHByb2plY3RVcmwsICdfYmxhbmsnKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8U0NJbmxpbmVNZW50aW9uXG4gICAgICAkdHlwZT17dHlwZX1cbiAgICAgICRpc0NsaWNrYWJsZT17aXNQcm9qZWN0fVxuICAgICAgY2xhc3NOYW1lPXtDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTU31cbiAgICAgIGRhdGEtbWVudGlvbi10eXBlPXt0eXBlfVxuICAgICAgZGF0YS1tZW50aW9uLXN1cmZhY2U9XCJjaGF0XCJcbiAgICAgIG9uQ2xpY2s9e2lzUHJvamVjdCA/IGhhbmRsZVByb2plY3RDbGljayA6IHVuZGVmaW5lZH1cbiAgICAgIHJvbGU9e2lzUHJvamVjdCA/ICdidXR0b24nIDogdW5kZWZpbmVkfVxuICAgICAgdGFiSW5kZXg9e2lzUHJvamVjdCA/IDAgOiB1bmRlZmluZWR9XG4gICAgPlxuICAgICAge3Nob3dJY29uID8gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxTQ0lubGluZU1lbnRpb25JY29uUm93PlxuICAgICAgICAgICAgPFNDSW5saW5lTWVudGlvbkljb24gJHRhc2s9e2lzVGFza30+XG4gICAgICAgICAgICAgIHtnZXRDb250ZXh0TWVudGlvbkljb24odHlwZSwgTUVOVElPTl9DSElQX0NPTE9SU1t0eXBlXS5mZywgaWQsIGljb25TaXplKX1cbiAgICAgICAgICAgIDwvU0NJbmxpbmVNZW50aW9uSWNvbj5cbiAgICAgICAgICAgIDxTQ0lubGluZU1lbnRpb25Xb3JkPntmaXJzdFdvcmR9PC9TQ0lubGluZU1lbnRpb25Xb3JkPlxuICAgICAgICAgIDwvU0NJbmxpbmVNZW50aW9uSWNvblJvdz5cbiAgICAgICAgICB7cmVzdCA/IDxTQ0lubGluZU1lbnRpb25SZXN0PntyZXN0fTwvU0NJbmxpbmVNZW50aW9uUmVzdD4gOiBudWxsfVxuICAgICAgICA8Lz5cbiAgICAgICkgOiBudWxsfVxuICAgICAgeyFzaG93SWNvbiA/IGxhYmVsIDogbnVsbH1cbiAgICA8L1NDSW5saW5lTWVudGlvbj5cbiAgKVxufVxuXG4vKiogUXVpdGEgbG9zIG1hcmtlcnMgZGVsIHRleHRvLCBkZWphbmRvIHNvbG8gYGxhYmVsYC4gw5p0aWwgcGFyYSBmYWxsYmFjayBwbGFuby4gKi9cbmV4cG9ydCBjb25zdCBzdHJpcE1lbnRpb25NYXJrZXJzID0gKHRleHQ6IHN0cmluZyk6IHN0cmluZyA9PlxuICB0ZXh0LnJlcGxhY2UoTUVOVElPTl9NQVJLRVJfUkVHRVgsIChfbSwgX3R5cGUsIF9pZCwgbGFiZWwpID0+IG5vcm1hbGl6ZUNvbnRleHRNZW50aW9uTGFiZWwoU3RyaW5nKGxhYmVsKSkpXG5cbi8qKlxuICogVMOtdHVsb3MgZGUgY29udmVyc2FjacOzbiAocC4gZWouIGBsYXN0X3F1ZXN0aW9uYCBkZXJpdmFkbyBkZWwgcHJpbWVyIG1lbnNhamUpIHB1ZWRlblxuICogaW5jbHVpciBlbCB0ZXh0byBzZXJpYWxpemFkbyBgW1ttZW50aW9uOnR5cGU6aWR8bGFiZWxdXWAuIFBhcmEgc2lkZWJhciB5IGxpc3RhZG9zLFxuICogcmVlbXBsYXphIGNhZGEgYmxvcXVlIHBvciBgbGFiZWxgIGVuIHRleHRvIHBsYW5vLCBzaW4gZWwgbWFyY2Fkb3IgY3J1ZG8uXG4gKi9cbmV4cG9ydCBjb25zdCBmb3JtYXRDaGF0TGlzdFRpdGxlTWVudGlvbnMgPSAodGV4dDogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCk6IHN0cmluZyA9PiB7XG4gIGlmICh0ZXh0ID09IG51bGwgfHwgdGV4dCA9PT0gJycpIHJldHVybiB0ZXh0ID8/ICcnXG4gIGNvbnN0IHdpdGhvdXRNZW50aW9ucyA9IHRleHQucmVwbGFjZShNRU5USU9OX01BUktFUl9SRUdFWCwgKF9tLCBfdHlwZSwgX2lkLCBsYWJlbCkgPT5cbiAgICBub3JtYWxpemVDb250ZXh0TWVudGlvbkxhYmVsKFN0cmluZyhsYWJlbCkudHJpbSgpKVxuICApXG4gIGNvbnN0IHNsYXNoUmVnZXggPSBuZXcgUmVnRXhwKFNMQVNIX0NPTU1BTkRfTUFSS0VSX1JFR0VYLnNvdXJjZSwgJ2cnKVxuICBjb25zdCB3aXRob3V0U2xhc2ggPSB3aXRob3V0TWVudGlvbnMucmVwbGFjZShzbGFzaFJlZ2V4LCAoX20sIF9pZCwgbGFiZWwpID0+IGAvJHtTdHJpbmcobGFiZWwpLnRyaW0oKX1gKVxuICBjb25zdCB3aXRob3V0SW5jb21wbGV0ZVNsYXNoID0gd2l0aG91dFNsYXNoLnJlcGxhY2UoXG4gICAgSU5DT01QTEVURV9TTEFTSF9NQVJLRVJfUkVHRVgsXG4gICAgKF9tLCBsYWJlbCkgPT4gYC8ke1N0cmluZyhsYWJlbCkudHJpbSgpfWBcbiAgKVxuICByZXR1cm4gd2l0aG91dEluY29tcGxldGVTbGFzaC5yZXBsYWNlKElOQ09NUExFVEVfTUVOVElPTl9NQVJLRVJfUkVHRVgsICcnKS50cmltKClcbn1cblxuLyoqIEdlbmVyYSBsYSBVUkwgZGUgbmF2ZWdhY2nDs24gcGFyYSB1biBtZW50aW9uIHNlZ8O6biBzdSB0aXBvLiAqL1xuY29uc3QgZ2V0TWVudGlvblVybCA9ICh0eXBlOiBDb250ZXh0RW50aXR5VHlwZSwgaWQ6IHN0cmluZyB8IG51bWJlcik6IHN0cmluZyB8IG51bGwgPT4ge1xuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlICdjbGllbnQnOlxuICAgICAgcmV0dXJuIGAvY2xpZW50cy8ke2lkfWBcbiAgICBjYXNlICdwcm9qZWN0JzpcbiAgICAgIHJldHVybiBgL3Byb2plY3RzLyR7aWR9L2Rhc2hib2FyZGBcbiAgICBjYXNlICd0YXNrJzpcbiAgICAgIHJldHVybiBgL3Rhc2tzLyR7aWR9L2RldGFpbGBcbiAgICBjYXNlICd1c2VyJzpcbiAgICAgIHJldHVybiBudWxsIC8vIExvcyB1c2VycyBubyBzb24gY2xpY2tlYWJsZXNcbiAgICBjYXNlICdtY3AnOlxuICAgICAgcmV0dXJuIG51bGxcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIG51bGxcbiAgfVxufVxuXG5jb25zdCBNZW50aW9uQ2hpcCA9ICh7IHR5cGUsIGlkLCBsYWJlbCB9OiB7IHR5cGU6IENvbnRleHRFbnRpdHlUeXBlOyBpZDogc3RyaW5nOyBsYWJlbDogc3RyaW5nIH0pID0+IHtcbiAgY29uc3Qgbm9ybWFsaXplZExhYmVsID0gbm9ybWFsaXplQ29udGV4dE1lbnRpb25MYWJlbChsYWJlbClcbiAgaWYgKHR5cGUgPT09ICdza2lsbCcpIHJldHVybiA8U2tpbGxJbmxpbmVDaGlwIGxhYmVsPXtub3JtYWxpemVkTGFiZWx9IC8+XG4gIGNvbnN0IHVybCA9IGdldE1lbnRpb25VcmwodHlwZSwgaWQpXG4gIGNvbnN0IGlzQ2xpY2thYmxlID0gISF1cmxcbiAgY29uc3QgaXNUYXNrID0gdHlwZSA9PT0gJ3Rhc2snXG4gIGNvbnN0IGlzUHJvamVjdCA9IHR5cGUgPT09ICdwcm9qZWN0J1xuICBjb25zdCBzaG93SWNvbiA9ICFpc1Byb2plY3RcbiAgY29uc3QgaWNvblNpemUgPSBpc1Rhc2sgPyAxNiA6IDE0XG4gIGNvbnN0IHsgZmlyc3RXb3JkLCByZXN0IH0gPSBzcGxpdExhYmVsRmlyc3RXb3JkKG5vcm1hbGl6ZWRMYWJlbClcblxuICBjb25zdCBoYW5kbGVDbGljayA9IChlOiBNb3VzZUV2ZW50PEhUTUxBbmNob3JFbGVtZW50IHwgSFRNTFNwYW5FbGVtZW50PikgPT4ge1xuICAgIGlmICghaXNDbGlja2FibGUgfHwgIXVybCkgcmV0dXJuXG4gICAgaWYgKHR5cGUgPT09ICd0YXNrJykge1xuICAgICAgaWYgKGUubWV0YUtleSB8fCBlLmN0cmxLZXkpIHJldHVyblxuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICBvcGVuVGFza0luQ29yUGFuZWwoaWQsICdkZXRhaWwnKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgIHdpbmRvdy5vcGVuKHVybCwgJ19ibGFuaycpXG4gIH1cblxuICBjb25zdCBoYW5kbGVLZXlEb3duID0gKGU6IEtleWJvYXJkRXZlbnQ8SFRNTEFuY2hvckVsZW1lbnQgfCBIVE1MU3BhbkVsZW1lbnQ+KSA9PiB7XG4gICAgaWYgKCFpc0NsaWNrYWJsZSB8fCB0eXBlICE9PSAndGFzaycpIHJldHVyblxuICAgIGlmIChlLmtleSAhPT0gJ0VudGVyJyAmJiBlLmtleSAhPT0gJyAnKSByZXR1cm5cbiAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICBvcGVuVGFza0luQ29yUGFuZWwoaWQsICdkZXRhaWwnKVxuICB9XG5cbiAgaWYgKHR5cGUgPT09ICd0YXNrJykge1xuICAgIHJldHVybiAoXG4gICAgICA8U0NUYXNrTGlua1xuICAgICAgICBocmVmPXt1cmwgPz8gJyMnfVxuICAgICAgICBjbGFzc05hbWU9e0NPTlRFWFRfTUVOVElPTl9DSElQX0NMQVNTfVxuICAgICAgICBkYXRhLWNvci1saW5rPVwidGFza1wiXG4gICAgICAgIGRhdGEtbWVudGlvbi10eXBlPVwidGFza1wiXG4gICAgICAgIGRhdGEtbWVudGlvbi1zdXJmYWNlPVwiY2hhdFwiXG4gICAgICAgIG9uQ2xpY2s9e2hhbmRsZUNsaWNrfVxuICAgICAgICBvbktleURvd249e2hhbmRsZUtleURvd259XG4gICAgICA+XG4gICAgICAgIHtub3JtYWxpemVkTGFiZWx9XG4gICAgICA8L1NDVGFza0xpbms+XG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8U0NJbmxpbmVNZW50aW9uXG4gICAgICAkdHlwZT17dHlwZX1cbiAgICAgICRpc0NsaWNrYWJsZT17aXNDbGlja2FibGV9XG4gICAgICBjbGFzc05hbWU9e0NPTlRFWFRfTUVOVElPTl9DSElQX0NMQVNTfVxuICAgICAgZGF0YS1tZW50aW9uLXR5cGU9e3R5cGV9XG4gICAgICBkYXRhLW1lbnRpb24tc3VyZmFjZT1cImNoYXRcIlxuICAgICAgb25DbGljaz17aXNDbGlja2FibGUgPyBoYW5kbGVDbGljayA6IHVuZGVmaW5lZH1cbiAgICAgIHJvbGU9e2lzQ2xpY2thYmxlID8gJ2J1dHRvbicgOiB1bmRlZmluZWR9XG4gICAgICB0YWJJbmRleD17aXNDbGlja2FibGUgPyAwIDogdW5kZWZpbmVkfVxuICAgID5cbiAgICAgIHtzaG93SWNvbiA/IChcbiAgICAgICAgPD5cbiAgICAgICAgICA8U0NJbmxpbmVNZW50aW9uSWNvblJvdz5cbiAgICAgICAgICAgIDxTQ0lubGluZU1lbnRpb25JY29uICR0YXNrPXtpc1Rhc2t9PlxuICAgICAgICAgICAgICB7Z2V0Q29udGV4dE1lbnRpb25JY29uKHR5cGUsIE1FTlRJT05fQ0hJUF9DT0xPUlNbdHlwZV0uZmcsIGlkLCBpY29uU2l6ZSl9XG4gICAgICAgICAgICA8L1NDSW5saW5lTWVudGlvbkljb24+XG4gICAgICAgICAgICA8U0NJbmxpbmVNZW50aW9uV29yZD57Zmlyc3RXb3JkfTwvU0NJbmxpbmVNZW50aW9uV29yZD5cbiAgICAgICAgICA8L1NDSW5saW5lTWVudGlvbkljb25Sb3c+XG4gICAgICAgICAge3Jlc3QgPyA8U0NJbmxpbmVNZW50aW9uUmVzdD57cmVzdH08L1NDSW5saW5lTWVudGlvblJlc3Q+IDogbnVsbH1cbiAgICAgICAgPC8+XG4gICAgICApIDogbnVsbH1cbiAgICAgIHshc2hvd0ljb24gPyBub3JtYWxpemVkTGFiZWwgOiBudWxsfVxuICAgIDwvU0NJbmxpbmVNZW50aW9uPlxuICApXG59XG5cbmV4cG9ydCBjb25zdCBoYXNJbmxpbmVNYXJrZXJzID0gKHRleHQ6IHN0cmluZyk6IGJvb2xlYW4gPT4ge1xuICBpZiAoIXRleHQpIHJldHVybiBmYWxzZVxuICByZXR1cm4gdGV4dC5pbmNsdWRlcygnW1ttZW50aW9uOicpIHx8IHRleHQuaW5jbHVkZXMoJ1tbc2xhc2hfY29tbWFuZDonKVxufVxuXG50eXBlIElubGluZU1hcmtlciA9XG4gIHwgeyBraW5kOiAnbWVudGlvbic7IGluZGV4OiBudW1iZXI7IGxlbmd0aDogbnVtYmVyOyB0eXBlOiBDb250ZXh0RW50aXR5VHlwZTsgaWQ6IHN0cmluZzsgbGFiZWw6IHN0cmluZyB9XG4gIHwgeyBraW5kOiAnc2xhc2gnOyBpbmRleDogbnVtYmVyOyBsZW5ndGg6IG51bWJlcjsgaWQ6IHN0cmluZzsgbGFiZWw6IHN0cmluZyB9XG5cbmNvbnN0IGNvbGxlY3RJbmxpbmVNYXJrZXJzID0gKHRleHQ6IHN0cmluZyk6IElubGluZU1hcmtlcltdID0+IHtcbiAgY29uc3QgbWFya2VyczogSW5saW5lTWFya2VyW10gPSBbXVxuXG4gIE1FTlRJT05fTUFSS0VSX1JFR0VYLmxhc3RJbmRleCA9IDBcbiAgbGV0IG06IFJlZ0V4cEV4ZWNBcnJheSB8IG51bGwgPSBNRU5USU9OX01BUktFUl9SRUdFWC5leGVjKHRleHQpXG4gIHdoaWxlIChtKSB7XG4gICAgY29uc3QgWywgcmF3VHlwZSwgaWQsIGxhYmVsXSA9IG1cbiAgICBjb25zdCB0eXBlID0gQUxMT1dFRF9UWVBFUy5pbmNsdWRlcyhyYXdUeXBlIGFzIENvbnRleHRFbnRpdHlUeXBlKSA/IChyYXdUeXBlIGFzIENvbnRleHRFbnRpdHlUeXBlKSA6ICd1c2VyJ1xuICAgIG1hcmtlcnMucHVzaCh7IGtpbmQ6ICdtZW50aW9uJywgaW5kZXg6IG0uaW5kZXgsIGxlbmd0aDogbVswXS5sZW5ndGgsIHR5cGUsIGlkLCBsYWJlbCB9KVxuICAgIG0gPSBNRU5USU9OX01BUktFUl9SRUdFWC5leGVjKHRleHQpXG4gIH1cblxuICBjb25zdCBzbGFzaFJlZ2V4ID0gbmV3IFJlZ0V4cChTTEFTSF9DT01NQU5EX01BUktFUl9SRUdFWC5zb3VyY2UsICdnJylcbiAgbGV0IHM6IFJlZ0V4cEV4ZWNBcnJheSB8IG51bGwgPSBzbGFzaFJlZ2V4LmV4ZWModGV4dClcbiAgd2hpbGUgKHMpIHtcbiAgICBtYXJrZXJzLnB1c2goeyBraW5kOiAnc2xhc2gnLCBpbmRleDogcy5pbmRleCwgbGVuZ3RoOiBzWzBdLmxlbmd0aCwgaWQ6IHNbMV0sIGxhYmVsOiBzWzJdIH0pXG4gICAgcyA9IHNsYXNoUmVnZXguZXhlYyh0ZXh0KVxuICB9XG5cbiAgcmV0dXJuIG1hcmtlcnMuc29ydCgoYSwgYikgPT4gYS5pbmRleCAtIGIuaW5kZXgpXG59XG5cbmV4cG9ydCBjb25zdCByZW5kZXJUZXh0V2l0aE1lbnRpb25zID0gKHRleHQ6IHN0cmluZyk6IEFycmF5PHN0cmluZyB8IFJlYWN0RWxlbWVudD4gPT4ge1xuICBpZiAoIXRleHQpIHJldHVybiBbdGV4dF1cbiAgY29uc3QgbWFya2VycyA9IGNvbGxlY3RJbmxpbmVNYXJrZXJzKHRleHQpXG4gIGlmIChtYXJrZXJzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIFt0ZXh0XVxuXG4gIGNvbnN0IG91dDogQXJyYXk8c3RyaW5nIHwgUmVhY3RFbGVtZW50PiA9IFtdXG4gIGxldCBsYXN0SWR4ID0gMFxuICBtYXJrZXJzLmZvckVhY2gobWFya2VyID0+IHtcbiAgICBpZiAobWFya2VyLmluZGV4ID4gbGFzdElkeCkgb3V0LnB1c2godGV4dC5zbGljZShsYXN0SWR4LCBtYXJrZXIuaW5kZXgpKVxuICAgIGlmIChtYXJrZXIua2luZCA9PT0gJ21lbnRpb24nKSB7XG4gICAgICBvdXQucHVzaChcbiAgICAgICAgPE1lbnRpb25DaGlwXG4gICAgICAgICAga2V5PXtgbWVudGlvbi0ke21hcmtlci5pbmRleH0tJHttYXJrZXIudHlwZX0tJHttYXJrZXIuaWR9YH1cbiAgICAgICAgICB0eXBlPXttYXJrZXIudHlwZX1cbiAgICAgICAgICBpZD17bWFya2VyLmlkfVxuICAgICAgICAgIGxhYmVsPXttYXJrZXIubGFiZWx9XG4gICAgICAgIC8+XG4gICAgICApXG4gICAgfSBlbHNlIHtcbiAgICAgIG91dC5wdXNoKDxTbGFzaENvbW1hbmRDaGlwIGtleT17YHNsYXNoLSR7bWFya2VyLmluZGV4fS0ke21hcmtlci5pZH1gfSBsYWJlbD17bWFya2VyLmxhYmVsfSBpbmxpbmU9e2ZhbHNlfSAvPilcbiAgICB9XG4gICAgbGFzdElkeCA9IG1hcmtlci5pbmRleCArIG1hcmtlci5sZW5ndGhcbiAgfSlcbiAgaWYgKGxhc3RJZHggPCB0ZXh0Lmxlbmd0aCkgb3V0LnB1c2godGV4dC5zbGljZShsYXN0SWR4KSlcbiAgcmV0dXJuIG91dFxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBT0EsTUFBTSxJQUFJQyxHQUFHLFFBQVEsbUJBQW1CO0FBQy9DLFNBQTRDQywwQkFBMEIsUUFBUSx5QkFBeUI7QUFDdkcsU0FDRUMsbUJBQW1CLEVBQ25CQyw4QkFBOEIsUUFDekIsa0VBQWtFO0FBQ3pFLFNBQVNDLGdCQUFnQixRQUFRLHNDQUFzQztBQUN2RSxTQUFTQyxXQUFXLFFBQVEsOERBQThEO0FBQzFGLFNBQVNDLDBCQUEwQixRQUFRLHNCQUFzQjtBQUNqRSxTQUFTQyxnQkFBZ0IsUUFBUSxrQkFBa0I7QUFDbkQsU0FBU0MsVUFBVSxRQUFRLGtEQUFrRDtBQUM3RSxTQUFTQyxxQkFBcUIsUUFBUSx1QkFBdUI7QUFDN0QsU0FBU0MsNEJBQTRCLFFBQVEsdUJBQXVCO0FBQ3BFLFNBQVNDLGtCQUFrQixRQUFRLHNCQUFzQjs7QUFFekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUhBLFNBQUFDLEdBQUEsSUFBQUMsSUFBQSxFQUFBQyxJQUFBLElBQUFDLEtBQUEsRUFBQUMsUUFBQSxJQUFBQyxTQUFBO0FBSUEsT0FBTyxJQUFNQyxvQkFBb0IsR0FBRyw2RUFBNkU7QUFDakgsT0FBTyxJQUFNQyxxQkFBcUIsR0FBRyxpQkFBaUI7QUFDdEQsSUFBTUMsK0JBQStCLEdBQUcsc0JBQXNCO0FBQzlELElBQU1DLDZCQUE2QixHQUFHLHVDQUF1QztBQUU3RSxJQUFNQyxhQUFrQyxHQUFHLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUM7QUFFaEcsSUFBTUMsd0JBQXdCLEdBQUcsU0FBM0JBLHdCQUF3QkEsQ0FBSUMsSUFBWSxFQUE4QztFQUMxRixJQUFNQyxJQUFJLEdBQUdELElBQUksQ0FBQ0UsS0FBSyxDQUFDUCxxQkFBcUIsQ0FBQ1EsTUFBTSxDQUFDO0VBQ3JELElBQU1DLFFBQVEsR0FBR0gsSUFBSSxDQUFDSSxPQUFPLENBQUMsR0FBRyxDQUFDO0VBQ2xDLElBQU1DLE9BQU8sR0FBR0YsUUFBUSxJQUFJLENBQUMsR0FBR0gsSUFBSSxDQUFDQyxLQUFLLENBQUMsQ0FBQyxFQUFFRSxRQUFRLENBQUMsR0FBR0gsSUFBSTtFQUM5RCxJQUFNTSxLQUFLLEdBQUdILFFBQVEsSUFBSSxDQUFDLEdBQUdILElBQUksQ0FBQ0MsS0FBSyxDQUFDRSxRQUFRLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRTtFQUMzRCxJQUFJSSxFQUFFLEdBQUcsRUFBRTtFQUNYLElBQUk7SUFDRkEsRUFBRSxHQUFHRCxLQUFLLEdBQUdFLGtCQUFrQixDQUFDRixLQUFLLENBQUMsR0FBRyxFQUFFO0VBQzdDLENBQUMsQ0FBQyxPQUFBRyxPQUFBLEVBQU07SUFDTkYsRUFBRSxHQUFHRCxLQUFLO0VBQ1o7RUFDQSxJQUFNSSxJQUFJLEdBQUdiLGFBQWEsQ0FBQ2MsUUFBUSxDQUFDTixPQUE0QixDQUFDLEdBQUlBLE9BQU8sR0FBeUIsTUFBTTtFQUMzRyxPQUFPO0lBQUVLLElBQUksRUFBSkEsSUFBSTtJQUFFSCxFQUFFLEVBQUZBO0VBQUcsQ0FBQztBQUNyQixDQUFDOztBQUVEO0FBQ0EsT0FBTyxJQUFNSyxnQkFBZ0IsR0FBRyxTQUFuQkEsZ0JBQWdCQSxDQUFJQyxPQUF1QjtFQUFBLG9CQUFBQyxNQUFBLENBQ3pDRCxPQUFPLENBQUNILElBQUksT0FBQUksTUFBQSxDQUFJRCxPQUFPLENBQUNOLEVBQUUsT0FBQU8sTUFBQSxDQUFJRCxPQUFPLENBQUNFLEtBQUs7QUFBQSxDQUFJOztBQUU5RDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sSUFBTUMsdUJBQXVCLEdBQUcsU0FBMUJBLHVCQUF1QkEsQ0FBSUMsSUFBWSxFQUFhO0VBQy9ELElBQUksQ0FBQ0EsSUFBSSxFQUFFLE9BQU9BLElBQUk7RUFDdEIsT0FBT0EsSUFBSSxDQUFDQyxPQUFPLENBQUN6QixvQkFBb0IsRUFBRSxVQUFDMEIsRUFBRSxFQUFFVCxJQUFJLEVBQUVILEVBQUUsRUFBRVEsS0FBSyxFQUFLO0lBQ2pFLElBQU1LLFNBQVMsR0FBR0MsTUFBTSxDQUFDTixLQUFLLENBQUMsQ0FBQ0csT0FBTyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDMUQsV0FBQUosTUFBQSxDQUFXTSxTQUFTLFFBQUFOLE1BQUEsQ0FBS3BCLHFCQUFxQixFQUFBb0IsTUFBQSxDQUFHSixJQUFJLE9BQUFJLE1BQUEsQ0FBSVEsa0JBQWtCLENBQUNELE1BQU0sQ0FBQ2QsRUFBRSxDQUFDLENBQUM7RUFDekYsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELElBQU1nQixzQkFBc0IsR0FBRyxTQUF6QkEsc0JBQXNCQSxDQUFJQyxRQUFtQixFQUFhO0VBQzlELElBQUksT0FBT0EsUUFBUSxLQUFLLFFBQVEsRUFBRSxPQUFPdkMsNEJBQTRCLENBQUN1QyxRQUFRLENBQUM7RUFDL0UsSUFBSUEsUUFBUSxJQUFJLElBQUksSUFBSUEsUUFBUSxLQUFLLEtBQUssRUFBRSxPQUFPLEVBQUU7RUFDckQsSUFBSUMsS0FBSyxDQUFDQyxPQUFPLENBQUNGLFFBQVEsQ0FBQyxFQUFFO0lBQzNCLE9BQU92Qyw0QkFBNEIsQ0FBQ3VDLFFBQVEsQ0FBQ0csR0FBRyxDQUFDLFVBQUFDLENBQUM7TUFBQSxPQUFLLE9BQU9BLENBQUMsS0FBSyxRQUFRLEdBQUdBLENBQUMsR0FBRyxFQUFFO0lBQUEsQ0FBQyxDQUFDLENBQUNDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztFQUNuRztFQUNBLE9BQU81Qyw0QkFBNEIsQ0FBQ29DLE1BQU0sQ0FBQ0csUUFBUSxDQUFDLENBQUM7QUFDdkQsQ0FBQztBQUVELElBQU1NLG1CQUFtQixHQUFHLFNBQXRCQSxtQkFBbUJBLENBQUlmLEtBQWEsRUFBMEM7RUFDbEYsSUFBTWdCLFVBQVUsR0FBRzlDLDRCQUE0QixDQUFDOEIsS0FBSyxDQUFDLENBQUNpQixJQUFJLENBQUMsQ0FBQztFQUM3RCxJQUFJLENBQUNELFVBQVUsRUFBRSxPQUFPO0lBQUVFLFNBQVMsRUFBRSxFQUFFO0lBQUVqQyxJQUFJLEVBQUU7RUFBRyxDQUFDO0VBQ25ELElBQU1rQyxrQkFBa0IsR0FBR0gsVUFBVSxDQUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDO0VBQ2xELElBQUlELGtCQUFrQixHQUFHLENBQUMsRUFBRSxPQUFPO0lBQUVELFNBQVMsRUFBRUYsVUFBVTtJQUFFL0IsSUFBSSxFQUFFO0VBQUcsQ0FBQztFQUN0RSxPQUFPO0lBQ0xpQyxTQUFTLEVBQUVGLFVBQVUsQ0FBQzlCLEtBQUssQ0FBQyxDQUFDLEVBQUVpQyxrQkFBa0IsQ0FBQztJQUNsRGxDLElBQUksRUFBRStCLFVBQVUsQ0FBQzlCLEtBQUssQ0FBQ2lDLGtCQUFrQjtFQUMzQyxDQUFDO0FBQ0gsQ0FBQzs7QUFFRDtBQUNBLElBQU1FLGdCQUFnQixHQUFHLFNBQW5CQSxnQkFBZ0JBLENBQUlyQixLQUFhO0VBQUEsV0FBQUQsTUFBQSxDQUFpQkMsS0FBSyxDQUFDaUIsSUFBSSxDQUFDLENBQUMsQ0FBQ2QsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUM7QUFBQSxDQUFFO0FBRTlGLElBQU1tQixlQUFlLEdBQUcsU0FBbEJBLGVBQWVBLENBQUFDLElBQUE7RUFBQSxJQUFNdkIsS0FBSyxHQUFBdUIsSUFBQSxDQUFMdkIsS0FBSztFQUFBLG9CQUM5QjNCLElBQUEsQ0FBQ1IsV0FBVztJQUFDMkQsU0FBUyxFQUFFL0QsMEJBQTJCO0lBQUMscUJBQWtCLE9BQU87SUFBQyx3QkFBcUIsTUFBTTtJQUFBZ0QsUUFBQSxFQUN0R1ksZ0JBQWdCLENBQUNyQixLQUFLO0VBQUMsQ0FDYixDQUFDO0FBQUEsQ0FDZjtBQUVELElBQU15Qix1QkFBbUUsR0FBRztFQUMxRUMsT0FBTyxFQUFFM0QsZ0JBQWdCLENBQUMsR0FBRztBQUMvQixDQUFDO0FBRUQsSUFBTTRELHFCQUFxQixHQUFHLFNBQXhCQSxxQkFBcUJBLENBQUloQyxJQUF1QixFQUFFaUMsV0FBcUIsRUFBSztFQUFBLElBQUFDLHFCQUFBO0VBQ2hGLElBQUlsQyxJQUFJLEtBQUssT0FBTyxFQUFFLE9BQU9uQyxHQUFHO0VBQ2hDLElBQU1zRSxFQUFFLElBQUFELHFCQUFBLEdBQUdKLHVCQUF1QixDQUFDOUIsSUFBSSxDQUFDLGNBQUFrQyxxQkFBQSxjQUFBQSxxQkFBQSxHQUFJbEUsOEJBQThCO0VBQzFFLE9BQU9ILEdBQUcsb0NBQ01zRSxFQUFFLEVBQ0xGLFdBQVcsR0FBRyxJQUFJLEdBQUcsQ0FBQztBQUVyQyxDQUFDOztBQUVEO0FBQ0EsSUFBTUcsZUFBZSxHQUFHeEUsTUFBTSxDQUFDeUUsSUFBSSxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLHdWQVNuQixVQUFBQyxLQUFBO0VBQUEsSUFBQUMscUJBQUE7RUFBQSxJQUFHQyxLQUFLLEdBQUFGLEtBQUEsQ0FBTEUsS0FBSztFQUFBLE9BQU8sRUFBQUQscUJBQUEsR0FBQzNFLG1CQUFtQixDQUFDNEUsS0FBSyxDQUFDLGNBQUFELHFCQUFBLGNBQUFBLHFCQUFBLEdBQUkzRSxtQkFBbUIsQ0FBQzZFLElBQUksRUFBRVQsRUFBRTtBQUFBLEdBQy9FLFVBQUFVLEtBQUE7RUFBQSxJQUFBQyxzQkFBQTtFQUFBLElBQUdILEtBQUssR0FBQUUsS0FBQSxDQUFMRixLQUFLO0VBQUEsT0FBTyxFQUFBRyxzQkFBQSxHQUFDL0UsbUJBQW1CLENBQUM0RSxLQUFLLENBQUMsY0FBQUcsc0JBQUEsY0FBQUEsc0JBQUEsR0FBSS9FLG1CQUFtQixDQUFDNkUsSUFBSSxFQUFFRyxFQUFFO0FBQUEsR0FJekUsVUFBQUMsS0FBQTtFQUFBLElBQUdDLFlBQVksR0FBQUQsS0FBQSxDQUFaQyxZQUFZO0VBQUEsT0FBUUEsWUFBWSxHQUFHLFNBQVMsR0FBRyxTQUFTO0FBQUEsQ0FBQyxFQUtsRSxVQUFBQyxLQUFBO0VBQUEsSUFBR1AsS0FBSyxHQUFBTyxLQUFBLENBQUxQLEtBQUs7SUFBRU0sWUFBWSxHQUFBQyxLQUFBLENBQVpELFlBQVk7RUFBQSxPQUFPakIscUJBQXFCLENBQUNXLEtBQUssRUFBRU0sWUFBWSxDQUFDO0FBQUEsRUFFNUU7QUFFRCxJQUFNRSxtQkFBbUIsR0FBR3ZGLE1BQU0sQ0FBQ3lFLElBQUksQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSxxSUFNNUIsVUFBQVksS0FBQTtFQUFBLElBQUdDLEtBQUssR0FBQUQsS0FBQSxDQUFMQyxLQUFLO0VBQUEsT0FBUUEsS0FBSyxHQUFHLE1BQU0sR0FBRyxNQUFNO0FBQUEsQ0FBQyxFQUN2QyxVQUFBQyxLQUFBO0VBQUEsSUFBR0QsS0FBSyxHQUFBQyxLQUFBLENBQUxELEtBQUs7RUFBQSxPQUFRQSxLQUFLLEdBQUcsTUFBTSxHQUFHLE1BQU07QUFBQSxDQUFDLENBQ25EO0FBRUQsSUFBTUUsc0JBQXNCLEdBQUczRixNQUFNLENBQUN5RSxJQUFJLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsdUdBTXpDO0FBRUQsSUFBTWdCLG1CQUFtQixHQUFHNUYsTUFBTSxDQUFDeUUsSUFBSSxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLGlEQUd0QztBQUVELElBQU1pQixtQkFBbUIsR0FBRzdGLE1BQU0sQ0FBQ3lFLElBQUksQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSw4QkFFdEM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLElBQU1rQixpQkFBaUIsR0FBRyxTQUFwQkEsaUJBQWlCQSxDQUFJckUsSUFBd0IsRUFBRXlCLFFBQW1CLEVBQXVCO0VBQ3BHLElBQUksQ0FBQ3pCLElBQUksSUFBSSxDQUFDQSxJQUFJLENBQUNzRSxVQUFVLENBQUMzRSxxQkFBcUIsQ0FBQyxFQUFFLE9BQU8sSUFBSTtFQUNqRSxJQUFBNEUscUJBQUEsR0FBcUJ4RSx3QkFBd0IsQ0FBQ0MsSUFBSSxDQUFDO0lBQTNDVyxJQUFJLEdBQUE0RCxxQkFBQSxDQUFKNUQsSUFBSTtJQUFFSCxFQUFFLEdBQUErRCxxQkFBQSxDQUFGL0QsRUFBRTtFQUNoQixJQUFNUSxLQUFLLEdBQUdRLHNCQUFzQixDQUFDQyxRQUFRLENBQUM7RUFDOUMsSUFBSWQsSUFBSSxLQUFLLE9BQU8sRUFBRSxvQkFBT3RCLElBQUEsQ0FBQ2lELGVBQWU7SUFBQ3RCLEtBQUssRUFBRUE7RUFBTSxDQUFFLENBQUM7RUFDOUQsSUFBTXdELE1BQU0sR0FBRzdELElBQUksS0FBSyxNQUFNO0VBQzlCLElBQU04RCxRQUFRLEdBQUdELE1BQU0sR0FBRyxFQUFFLEdBQUcsRUFBRTtFQUNqQyxJQUFNRSxPQUFPLGFBQUEzRCxNQUFBLENBQWFQLEVBQUUsWUFBUztFQUVyQyxJQUFNbUUsZUFBZSxHQUFHLFNBQWxCQSxlQUFlQSxDQUFJQyxDQUFnQyxFQUFLO0lBQzVELElBQUlBLENBQUMsQ0FBQ0MsT0FBTyxJQUFJRCxDQUFDLENBQUNFLE9BQU8sRUFBRTtJQUM1QkYsQ0FBQyxDQUFDRyxjQUFjLENBQUMsQ0FBQztJQUNsQkgsQ0FBQyxDQUFDSSxlQUFlLENBQUMsQ0FBQztJQUNuQjdGLGtCQUFrQixDQUFDcUIsRUFBRSxFQUFFLFFBQVEsQ0FBQztFQUNsQyxDQUFDO0VBRUQsSUFBTXlFLGlCQUFpQixHQUFHLFNBQXBCQSxpQkFBaUJBLENBQUlMLENBQW1DLEVBQUs7SUFDakUsSUFBSUEsQ0FBQyxDQUFDTSxHQUFHLEtBQUssT0FBTyxJQUFJTixDQUFDLENBQUNNLEdBQUcsS0FBSyxHQUFHLEVBQUU7SUFDeENOLENBQUMsQ0FBQ0csY0FBYyxDQUFDLENBQUM7SUFDbEI1RixrQkFBa0IsQ0FBQ3FCLEVBQUUsRUFBRSxRQUFRLENBQUM7RUFDbEMsQ0FBQztFQUVELElBQUlnRSxNQUFNLEVBQUU7SUFDVixvQkFDRW5GLElBQUEsQ0FBQ0wsVUFBVTtNQUNUZ0IsSUFBSSxFQUFFMEUsT0FBUTtNQUNkbEMsU0FBUyxFQUFFL0QsMEJBQTJCO01BQ3RDLGlCQUFjLE1BQU07TUFDcEIscUJBQW1Ca0MsSUFBSztNQUN4Qix3QkFBcUIsTUFBTTtNQUMzQndFLE9BQU8sRUFBRVIsZUFBZ0I7TUFDekJTLFNBQVMsRUFBRUgsaUJBQWtCO01BQUF4RCxRQUFBLEVBRTVCVDtJQUFLLENBQ0ksQ0FBQztFQUVqQjtFQUVBLElBQU1xRSxTQUFTLEdBQUcxRSxJQUFJLEtBQUssU0FBUztFQUNwQyxJQUFNMkUsVUFBVSxHQUFHRCxTQUFTLGdCQUFBdEUsTUFBQSxDQUFnQlAsRUFBRSxrQkFBZSxJQUFJO0VBQ2pFLElBQU0rRSxRQUFRLEdBQUcsQ0FBQ0YsU0FBUztFQUMzQixJQUFBRyxvQkFBQSxHQUE0QnpELG1CQUFtQixDQUFDZixLQUFLLENBQUM7SUFBOUNrQixTQUFTLEdBQUFzRCxvQkFBQSxDQUFUdEQsU0FBUztJQUFFakMsSUFBSSxHQUFBdUYsb0JBQUEsQ0FBSnZGLElBQUk7RUFFdkIsSUFBTXdGLGtCQUFrQixHQUFHLFNBQXJCQSxrQkFBa0JBLENBQUliLENBQThCLEVBQUs7SUFDN0QsSUFBSSxDQUFDVSxVQUFVLEVBQUU7SUFDakJWLENBQUMsQ0FBQ0csY0FBYyxDQUFDLENBQUM7SUFDbEJILENBQUMsQ0FBQ0ksZUFBZSxDQUFDLENBQUM7SUFDbkJVLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDTCxVQUFVLEVBQUUsUUFBUSxDQUFDO0VBQ25DLENBQUM7RUFFRCxvQkFDRS9GLEtBQUEsQ0FBQ3dELGVBQWU7SUFDZE8sS0FBSyxFQUFFM0MsSUFBSztJQUNaaUQsWUFBWSxFQUFFeUIsU0FBVTtJQUN4QjdDLFNBQVMsRUFBRS9ELDBCQUEyQjtJQUN0QyxxQkFBbUJrQyxJQUFLO0lBQ3hCLHdCQUFxQixNQUFNO0lBQzNCd0UsT0FBTyxFQUFFRSxTQUFTLEdBQUdJLGtCQUFrQixHQUFHRyxTQUFVO0lBQ3BEQyxJQUFJLEVBQUVSLFNBQVMsR0FBRyxRQUFRLEdBQUdPLFNBQVU7SUFDdkNFLFFBQVEsRUFBRVQsU0FBUyxHQUFHLENBQUMsR0FBR08sU0FBVTtJQUFBbkUsUUFBQSxHQUVuQzhELFFBQVEsZ0JBQ1BoRyxLQUFBLENBQUFFLFNBQUE7TUFBQWdDLFFBQUEsZ0JBQ0VsQyxLQUFBLENBQUMyRSxzQkFBc0I7UUFBQXpDLFFBQUEsZ0JBQ3JCcEMsSUFBQSxDQUFDeUUsbUJBQW1CO1VBQUNFLEtBQUssRUFBRVEsTUFBTztVQUFBL0MsUUFBQSxFQUNoQ3hDLHFCQUFxQixDQUFDMEIsSUFBSSxFQUFFakMsbUJBQW1CLENBQUNpQyxJQUFJLENBQUMsQ0FBQytDLEVBQUUsRUFBRWxELEVBQUUsRUFBRWlFLFFBQVE7UUFBQyxDQUNyRCxDQUFDLGVBQ3RCcEYsSUFBQSxDQUFDOEUsbUJBQW1CO1VBQUExQyxRQUFBLEVBQUVTO1FBQVMsQ0FBc0IsQ0FBQztNQUFBLENBQ2hDLENBQUMsRUFDeEJqQyxJQUFJLGdCQUFHWixJQUFBLENBQUMrRSxtQkFBbUI7UUFBQTNDLFFBQUEsRUFBRXhCO01BQUksQ0FBc0IsQ0FBQyxHQUFHLElBQUk7SUFBQSxDQUNoRSxDQUFDLEdBQ0QsSUFBSSxFQUNQLENBQUNzRixRQUFRLEdBQUd2RSxLQUFLLEdBQUcsSUFBSTtFQUFBLENBQ1YsQ0FBQztBQUV0QixDQUFDOztBQUVEO0FBQ0EsT0FBTyxJQUFNK0UsbUJBQW1CLEdBQUcsU0FBdEJBLG1CQUFtQkEsQ0FBSTdFLElBQVk7RUFBQSxPQUM5Q0EsSUFBSSxDQUFDQyxPQUFPLENBQUN6QixvQkFBb0IsRUFBRSxVQUFDMEIsRUFBRSxFQUFFNEUsS0FBSyxFQUFFQyxHQUFHLEVBQUVqRixLQUFLO0lBQUEsT0FBSzlCLDRCQUE0QixDQUFDb0MsTUFBTSxDQUFDTixLQUFLLENBQUMsQ0FBQztFQUFBLEVBQUM7QUFBQTs7QUFFNUc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sSUFBTWtGLDJCQUEyQixHQUFHLFNBQTlCQSwyQkFBMkJBLENBQUloRixJQUErQixFQUFhO0VBQ3RGLElBQUlBLElBQUksSUFBSSxJQUFJLElBQUlBLElBQUksS0FBSyxFQUFFLEVBQUUsT0FBT0EsSUFBSSxhQUFKQSxJQUFJLGNBQUpBLElBQUksR0FBSSxFQUFFO0VBQ2xELElBQU1pRixlQUFlLEdBQUdqRixJQUFJLENBQUNDLE9BQU8sQ0FBQ3pCLG9CQUFvQixFQUFFLFVBQUMwQixFQUFFLEVBQUU0RSxLQUFLLEVBQUVDLEdBQUcsRUFBRWpGLEtBQUs7SUFBQSxPQUMvRTlCLDRCQUE0QixDQUFDb0MsTUFBTSxDQUFDTixLQUFLLENBQUMsQ0FBQ2lCLElBQUksQ0FBQyxDQUFDLENBQUM7RUFBQSxDQUNwRCxDQUFDO0VBQ0QsSUFBTW1FLFVBQVUsR0FBRyxJQUFJQyxNQUFNLENBQUN2SCwwQkFBMEIsQ0FBQ3dILE1BQU0sRUFBRSxHQUFHLENBQUM7RUFDckUsSUFBTUMsWUFBWSxHQUFHSixlQUFlLENBQUNoRixPQUFPLENBQUNpRixVQUFVLEVBQUUsVUFBQ2hGLEVBQUUsRUFBRTZFLEdBQUcsRUFBRWpGLEtBQUs7SUFBQSxXQUFBRCxNQUFBLENBQVNPLE1BQU0sQ0FBQ04sS0FBSyxDQUFDLENBQUNpQixJQUFJLENBQUMsQ0FBQztFQUFBLENBQUUsQ0FBQztFQUN4RyxJQUFNdUUsc0JBQXNCLEdBQUdELFlBQVksQ0FBQ3BGLE9BQU8sQ0FDakR0Qiw2QkFBNkIsRUFDN0IsVUFBQ3VCLEVBQUUsRUFBRUosS0FBSztJQUFBLFdBQUFELE1BQUEsQ0FBU08sTUFBTSxDQUFDTixLQUFLLENBQUMsQ0FBQ2lCLElBQUksQ0FBQyxDQUFDO0VBQUEsQ0FDekMsQ0FBQztFQUNELE9BQU91RSxzQkFBc0IsQ0FBQ3JGLE9BQU8sQ0FBQ3ZCLCtCQUErQixFQUFFLEVBQUUsQ0FBQyxDQUFDcUMsSUFBSSxDQUFDLENBQUM7QUFDbkYsQ0FBQzs7QUFFRDtBQUNBLElBQU13RSxhQUFhLEdBQUcsU0FBaEJBLGFBQWFBLENBQUk5RixJQUF1QixFQUFFSCxFQUFtQixFQUFvQjtFQUNyRixRQUFRRyxJQUFJO0lBQ1YsS0FBSyxRQUFRO01BQ1gsbUJBQUFJLE1BQUEsQ0FBbUJQLEVBQUU7SUFDdkIsS0FBSyxTQUFTO01BQ1osb0JBQUFPLE1BQUEsQ0FBb0JQLEVBQUU7SUFDeEIsS0FBSyxNQUFNO01BQ1QsaUJBQUFPLE1BQUEsQ0FBaUJQLEVBQUU7SUFDckIsS0FBSyxNQUFNO01BQ1QsT0FBTyxJQUFJO0lBQUM7SUFDZCxLQUFLLEtBQUs7TUFDUixPQUFPLElBQUk7SUFDYjtNQUNFLE9BQU8sSUFBSTtFQUNmO0FBQ0YsQ0FBQztBQUVELElBQU1rRyxXQUFXLEdBQUcsU0FBZEEsV0FBV0EsQ0FBQUMsS0FBQSxFQUFvRjtFQUFBLElBQTlFaEcsSUFBSSxHQUFBZ0csS0FBQSxDQUFKaEcsSUFBSTtJQUFFSCxFQUFFLEdBQUFtRyxLQUFBLENBQUZuRyxFQUFFO0lBQUVRLEtBQUssR0FBQTJGLEtBQUEsQ0FBTDNGLEtBQUs7RUFDcEMsSUFBTTRGLGVBQWUsR0FBRzFILDRCQUE0QixDQUFDOEIsS0FBSyxDQUFDO0VBQzNELElBQUlMLElBQUksS0FBSyxPQUFPLEVBQUUsb0JBQU90QixJQUFBLENBQUNpRCxlQUFlO0lBQUN0QixLQUFLLEVBQUU0RjtFQUFnQixDQUFFLENBQUM7RUFDeEUsSUFBTUMsR0FBRyxHQUFHSixhQUFhLENBQUM5RixJQUFJLEVBQUVILEVBQUUsQ0FBQztFQUNuQyxJQUFNb0MsV0FBVyxHQUFHLENBQUMsQ0FBQ2lFLEdBQUc7RUFDekIsSUFBTXJDLE1BQU0sR0FBRzdELElBQUksS0FBSyxNQUFNO0VBQzlCLElBQU0wRSxTQUFTLEdBQUcxRSxJQUFJLEtBQUssU0FBUztFQUNwQyxJQUFNNEUsUUFBUSxHQUFHLENBQUNGLFNBQVM7RUFDM0IsSUFBTVosUUFBUSxHQUFHRCxNQUFNLEdBQUcsRUFBRSxHQUFHLEVBQUU7RUFDakMsSUFBQXNDLHFCQUFBLEdBQTRCL0UsbUJBQW1CLENBQUM2RSxlQUFlLENBQUM7SUFBeEQxRSxTQUFTLEdBQUE0RSxxQkFBQSxDQUFUNUUsU0FBUztJQUFFakMsSUFBSSxHQUFBNkcscUJBQUEsQ0FBSjdHLElBQUk7RUFFdkIsSUFBTThHLFdBQVcsR0FBRyxTQUFkQSxXQUFXQSxDQUFJbkMsQ0FBa0QsRUFBSztJQUMxRSxJQUFJLENBQUNoQyxXQUFXLElBQUksQ0FBQ2lFLEdBQUcsRUFBRTtJQUMxQixJQUFJbEcsSUFBSSxLQUFLLE1BQU0sRUFBRTtNQUNuQixJQUFJaUUsQ0FBQyxDQUFDQyxPQUFPLElBQUlELENBQUMsQ0FBQ0UsT0FBTyxFQUFFO01BQzVCRixDQUFDLENBQUNHLGNBQWMsQ0FBQyxDQUFDO01BQ2xCSCxDQUFDLENBQUNJLGVBQWUsQ0FBQyxDQUFDO01BQ25CN0Ysa0JBQWtCLENBQUNxQixFQUFFLEVBQUUsUUFBUSxDQUFDO01BQ2hDO0lBQ0Y7SUFDQW9FLENBQUMsQ0FBQ0csY0FBYyxDQUFDLENBQUM7SUFDbEJXLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDa0IsR0FBRyxFQUFFLFFBQVEsQ0FBQztFQUM1QixDQUFDO0VBRUQsSUFBTUcsYUFBYSxHQUFHLFNBQWhCQSxhQUFhQSxDQUFJcEMsQ0FBcUQsRUFBSztJQUMvRSxJQUFJLENBQUNoQyxXQUFXLElBQUlqQyxJQUFJLEtBQUssTUFBTSxFQUFFO0lBQ3JDLElBQUlpRSxDQUFDLENBQUNNLEdBQUcsS0FBSyxPQUFPLElBQUlOLENBQUMsQ0FBQ00sR0FBRyxLQUFLLEdBQUcsRUFBRTtJQUN4Q04sQ0FBQyxDQUFDRyxjQUFjLENBQUMsQ0FBQztJQUNsQjVGLGtCQUFrQixDQUFDcUIsRUFBRSxFQUFFLFFBQVEsQ0FBQztFQUNsQyxDQUFDO0VBRUQsSUFBSUcsSUFBSSxLQUFLLE1BQU0sRUFBRTtJQUNuQixvQkFDRXRCLElBQUEsQ0FBQ0wsVUFBVTtNQUNUZ0IsSUFBSSxFQUFFNkcsR0FBRyxhQUFIQSxHQUFHLGNBQUhBLEdBQUcsR0FBSSxHQUFJO01BQ2pCckUsU0FBUyxFQUFFL0QsMEJBQTJCO01BQ3RDLGlCQUFjLE1BQU07TUFDcEIscUJBQWtCLE1BQU07TUFDeEIsd0JBQXFCLE1BQU07TUFDM0IwRyxPQUFPLEVBQUU0QixXQUFZO01BQ3JCM0IsU0FBUyxFQUFFNEIsYUFBYztNQUFBdkYsUUFBQSxFQUV4Qm1GO0lBQWUsQ0FDTixDQUFDO0VBRWpCO0VBRUEsb0JBQ0VySCxLQUFBLENBQUN3RCxlQUFlO0lBQ2RPLEtBQUssRUFBRTNDLElBQUs7SUFDWmlELFlBQVksRUFBRWhCLFdBQVk7SUFDMUJKLFNBQVMsRUFBRS9ELDBCQUEyQjtJQUN0QyxxQkFBbUJrQyxJQUFLO0lBQ3hCLHdCQUFxQixNQUFNO0lBQzNCd0UsT0FBTyxFQUFFdkMsV0FBVyxHQUFHbUUsV0FBVyxHQUFHbkIsU0FBVTtJQUMvQ0MsSUFBSSxFQUFFakQsV0FBVyxHQUFHLFFBQVEsR0FBR2dELFNBQVU7SUFDekNFLFFBQVEsRUFBRWxELFdBQVcsR0FBRyxDQUFDLEdBQUdnRCxTQUFVO0lBQUFuRSxRQUFBLEdBRXJDOEQsUUFBUSxnQkFDUGhHLEtBQUEsQ0FBQUUsU0FBQTtNQUFBZ0MsUUFBQSxnQkFDRWxDLEtBQUEsQ0FBQzJFLHNCQUFzQjtRQUFBekMsUUFBQSxnQkFDckJwQyxJQUFBLENBQUN5RSxtQkFBbUI7VUFBQ0UsS0FBSyxFQUFFUSxNQUFPO1VBQUEvQyxRQUFBLEVBQ2hDeEMscUJBQXFCLENBQUMwQixJQUFJLEVBQUVqQyxtQkFBbUIsQ0FBQ2lDLElBQUksQ0FBQyxDQUFDK0MsRUFBRSxFQUFFbEQsRUFBRSxFQUFFaUUsUUFBUTtRQUFDLENBQ3JELENBQUMsZUFDdEJwRixJQUFBLENBQUM4RSxtQkFBbUI7VUFBQTFDLFFBQUEsRUFBRVM7UUFBUyxDQUFzQixDQUFDO01BQUEsQ0FDaEMsQ0FBQyxFQUN4QmpDLElBQUksZ0JBQUdaLElBQUEsQ0FBQytFLG1CQUFtQjtRQUFBM0MsUUFBQSxFQUFFeEI7TUFBSSxDQUFzQixDQUFDLEdBQUcsSUFBSTtJQUFBLENBQ2hFLENBQUMsR0FDRCxJQUFJLEVBQ1AsQ0FBQ3NGLFFBQVEsR0FBR3FCLGVBQWUsR0FBRyxJQUFJO0VBQUEsQ0FDcEIsQ0FBQztBQUV0QixDQUFDO0FBRUQsT0FBTyxJQUFNSyxnQkFBZ0IsR0FBRyxTQUFuQkEsZ0JBQWdCQSxDQUFJL0YsSUFBWSxFQUFjO0VBQ3pELElBQUksQ0FBQ0EsSUFBSSxFQUFFLE9BQU8sS0FBSztFQUN2QixPQUFPQSxJQUFJLENBQUNOLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSU0sSUFBSSxDQUFDTixRQUFRLENBQUMsa0JBQWtCLENBQUM7QUFDekUsQ0FBQztBQU1ELElBQU1zRyxvQkFBb0IsR0FBRyxTQUF2QkEsb0JBQW9CQSxDQUFJaEcsSUFBWSxFQUFxQjtFQUM3RCxJQUFNaUcsT0FBdUIsR0FBRyxFQUFFO0VBRWxDekgsb0JBQW9CLENBQUMwSCxTQUFTLEdBQUcsQ0FBQztFQUNsQyxJQUFJQyxDQUF5QixHQUFHM0gsb0JBQW9CLENBQUM0SCxJQUFJLENBQUNwRyxJQUFJLENBQUM7RUFDL0QsT0FBT21HLENBQUMsRUFBRTtJQUNSLElBQUFFLEdBQUEsR0FBK0JGLENBQUM7TUFBQUcsR0FBQSxHQUFBQyxjQUFBLENBQUFGLEdBQUE7TUFBdkJqSCxPQUFPLEdBQUFrSCxHQUFBO01BQUVoSCxFQUFFLEdBQUFnSCxHQUFBO01BQUV4RyxLQUFLLEdBQUF3RyxHQUFBO0lBQzNCLElBQU03RyxJQUFJLEdBQUdiLGFBQWEsQ0FBQ2MsUUFBUSxDQUFDTixPQUE0QixDQUFDLEdBQUlBLE9BQU8sR0FBeUIsTUFBTTtJQUMzRzZHLE9BQU8sQ0FBQ08sSUFBSSxDQUFDO01BQUVDLElBQUksRUFBRSxTQUFTO01BQUVDLEtBQUssRUFBRVAsQ0FBQyxDQUFDTyxLQUFLO01BQUV6SCxNQUFNLEVBQUVrSCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUNsSCxNQUFNO01BQUVRLElBQUksRUFBSkEsSUFBSTtNQUFFSCxFQUFFLEVBQUZBLEVBQUU7TUFBRVEsS0FBSyxFQUFMQTtJQUFNLENBQUMsQ0FBQztJQUN2RnFHLENBQUMsR0FBRzNILG9CQUFvQixDQUFDNEgsSUFBSSxDQUFDcEcsSUFBSSxDQUFDO0VBQ3JDO0VBRUEsSUFBTWtGLFVBQVUsR0FBRyxJQUFJQyxNQUFNLENBQUN2SCwwQkFBMEIsQ0FBQ3dILE1BQU0sRUFBRSxHQUFHLENBQUM7RUFDckUsSUFBSXVCLENBQXlCLEdBQUd6QixVQUFVLENBQUNrQixJQUFJLENBQUNwRyxJQUFJLENBQUM7RUFDckQsT0FBTzJHLENBQUMsRUFBRTtJQUNSVixPQUFPLENBQUNPLElBQUksQ0FBQztNQUFFQyxJQUFJLEVBQUUsT0FBTztNQUFFQyxLQUFLLEVBQUVDLENBQUMsQ0FBQ0QsS0FBSztNQUFFekgsTUFBTSxFQUFFMEgsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDMUgsTUFBTTtNQUFFSyxFQUFFLEVBQUVxSCxDQUFDLENBQUMsQ0FBQyxDQUFDO01BQUU3RyxLQUFLLEVBQUU2RyxDQUFDLENBQUMsQ0FBQztJQUFFLENBQUMsQ0FBQztJQUMzRkEsQ0FBQyxHQUFHekIsVUFBVSxDQUFDa0IsSUFBSSxDQUFDcEcsSUFBSSxDQUFDO0VBQzNCO0VBRUEsT0FBT2lHLE9BQU8sQ0FBQ1csSUFBSSxDQUFDLFVBQUNDLENBQUMsRUFBRUMsQ0FBQztJQUFBLE9BQUtELENBQUMsQ0FBQ0gsS0FBSyxHQUFHSSxDQUFDLENBQUNKLEtBQUs7RUFBQSxFQUFDO0FBQ2xELENBQUM7QUFFRCxPQUFPLElBQU1LLHNCQUFzQixHQUFHLFNBQXpCQSxzQkFBc0JBLENBQUkvRyxJQUFZLEVBQW1DO0VBQ3BGLElBQUksQ0FBQ0EsSUFBSSxFQUFFLE9BQU8sQ0FBQ0EsSUFBSSxDQUFDO0VBQ3hCLElBQU1pRyxPQUFPLEdBQUdELG9CQUFvQixDQUFDaEcsSUFBSSxDQUFDO0VBQzFDLElBQUlpRyxPQUFPLENBQUNoSCxNQUFNLEtBQUssQ0FBQyxFQUFFLE9BQU8sQ0FBQ2UsSUFBSSxDQUFDO0VBRXZDLElBQU1nSCxHQUFpQyxHQUFHLEVBQUU7RUFDNUMsSUFBSUMsT0FBTyxHQUFHLENBQUM7RUFDZmhCLE9BQU8sQ0FBQ2lCLE9BQU8sQ0FBQyxVQUFBQyxNQUFNLEVBQUk7SUFDeEIsSUFBSUEsTUFBTSxDQUFDVCxLQUFLLEdBQUdPLE9BQU8sRUFBRUQsR0FBRyxDQUFDUixJQUFJLENBQUN4RyxJQUFJLENBQUNoQixLQUFLLENBQUNpSSxPQUFPLEVBQUVFLE1BQU0sQ0FBQ1QsS0FBSyxDQUFDLENBQUM7SUFDdkUsSUFBSVMsTUFBTSxDQUFDVixJQUFJLEtBQUssU0FBUyxFQUFFO01BQzdCTyxHQUFHLENBQUNSLElBQUksY0FDTnJJLElBQUEsQ0FBQ3FILFdBQVc7UUFFVi9GLElBQUksRUFBRTBILE1BQU0sQ0FBQzFILElBQUs7UUFDbEJILEVBQUUsRUFBRTZILE1BQU0sQ0FBQzdILEVBQUc7UUFDZFEsS0FBSyxFQUFFcUgsTUFBTSxDQUFDckg7TUFBTSxjQUFBRCxNQUFBLENBSEpzSCxNQUFNLENBQUNULEtBQUssT0FBQTdHLE1BQUEsQ0FBSXNILE1BQU0sQ0FBQzFILElBQUksT0FBQUksTUFBQSxDQUFJc0gsTUFBTSxDQUFDN0gsRUFBRSxDQUl6RCxDQUNILENBQUM7SUFDSCxDQUFDLE1BQU07TUFDTDBILEdBQUcsQ0FBQ1IsSUFBSSxjQUFDckksSUFBQSxDQUFDVCxnQkFBZ0I7UUFBNENvQyxLQUFLLEVBQUVxSCxNQUFNLENBQUNySCxLQUFNO1FBQUNzSCxNQUFNLEVBQUU7TUFBTSxZQUFBdkgsTUFBQSxDQUFoRXNILE1BQU0sQ0FBQ1QsS0FBSyxPQUFBN0csTUFBQSxDQUFJc0gsTUFBTSxDQUFDN0gsRUFBRSxDQUF5QyxDQUFDLENBQUM7SUFDL0c7SUFDQTJILE9BQU8sR0FBR0UsTUFBTSxDQUFDVCxLQUFLLEdBQUdTLE1BQU0sQ0FBQ2xJLE1BQU07RUFDeEMsQ0FBQyxDQUFDO0VBQ0YsSUFBSWdJLE9BQU8sR0FBR2pILElBQUksQ0FBQ2YsTUFBTSxFQUFFK0gsR0FBRyxDQUFDUixJQUFJLENBQUN4RyxJQUFJLENBQUNoQixLQUFLLENBQUNpSSxPQUFPLENBQUMsQ0FBQztFQUN4RCxPQUFPRCxHQUFHO0FBQ1osQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@projectcor/maia-components",
3
- "version": "2.35.4-2",
3
+ "version": "2.35.4-4",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "repository": {