@codeperfect/eslint-plugin 2.4.0 → 2.5.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 (131) hide show
  1. package/dist/codeperfect-eslint-plugin-1.0.0.tgz +0 -0
  2. package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-options.d.ts.map +1 -1
  3. package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-options.js +4 -2
  4. package/dist/domain/architecture/consistent-barrel-files/exports-only-rule.d.ts.map +1 -1
  5. package/dist/domain/architecture/consistent-barrel-files/exports-only-rule.js +2 -4
  6. package/dist/domain/architecture/consistent-barrel-files/no-import-export-aliases-rule.d.ts.map +1 -1
  7. package/dist/domain/architecture/consistent-barrel-files/no-import-export-aliases-rule.js +4 -134
  8. package/dist/domain/architecture/consistent-barrel-files/no-import-export-aliases-utilities.d.ts +14 -0
  9. package/dist/domain/architecture/consistent-barrel-files/no-import-export-aliases-utilities.d.ts.map +1 -0
  10. package/dist/domain/architecture/consistent-barrel-files/no-import-export-aliases-utilities.js +154 -0
  11. package/dist/domain/architecture/consistent-barrel-files/no-import-export-extensions-rule.d.ts.map +1 -1
  12. package/dist/domain/architecture/consistent-barrel-files/no-import-export-extensions-rule.js +10 -12
  13. package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.d.ts.map +1 -1
  14. package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.js +4 -11
  15. package/dist/domain/architecture/no-unused-exports/no-unused-exports-declaration-utilities.d.ts +14 -0
  16. package/dist/domain/architecture/no-unused-exports/no-unused-exports-declaration-utilities.d.ts.map +1 -0
  17. package/dist/domain/architecture/no-unused-exports/no-unused-exports-declaration-utilities.js +187 -0
  18. package/dist/domain/architecture/no-unused-exports/no-unused-exports-identifier-utilities.d.ts +26 -0
  19. package/dist/domain/architecture/no-unused-exports/no-unused-exports-identifier-utilities.d.ts.map +1 -0
  20. package/dist/domain/architecture/no-unused-exports/no-unused-exports-identifier-utilities.js +95 -0
  21. package/dist/domain/architecture/no-unused-exports/no-unused-exports-pattern-utilities.d.ts +32 -0
  22. package/dist/domain/architecture/no-unused-exports/no-unused-exports-pattern-utilities.d.ts.map +1 -0
  23. package/dist/domain/architecture/no-unused-exports/no-unused-exports-pattern-utilities.js +78 -0
  24. package/dist/domain/architecture/no-unused-exports/no-unused-exports-public-api-usage-utilities.d.ts +18 -0
  25. package/dist/domain/architecture/no-unused-exports/no-unused-exports-public-api-usage-utilities.d.ts.map +1 -0
  26. package/dist/domain/architecture/no-unused-exports/no-unused-exports-public-api-usage-utilities.js +45 -0
  27. package/dist/domain/architecture/no-unused-exports/no-unused-exports-record-utilities.d.ts +34 -0
  28. package/dist/domain/architecture/no-unused-exports/no-unused-exports-record-utilities.d.ts.map +1 -0
  29. package/dist/domain/architecture/no-unused-exports/no-unused-exports-record-utilities.js +44 -0
  30. package/dist/domain/architecture/no-unused-exports/no-unused-exports-symbol-utilities.d.ts +59 -0
  31. package/dist/domain/architecture/no-unused-exports/no-unused-exports-symbol-utilities.d.ts.map +1 -0
  32. package/dist/domain/architecture/no-unused-exports/no-unused-exports-symbol-utilities.js +133 -0
  33. package/dist/domain/architecture/no-unused-exports/no-unused-exports-usage-utilities.d.ts +28 -0
  34. package/dist/domain/architecture/no-unused-exports/no-unused-exports-usage-utilities.d.ts.map +1 -0
  35. package/dist/domain/architecture/no-unused-exports/no-unused-exports-usage-utilities.js +106 -0
  36. package/dist/domain/architecture/no-unused-exports/no-unused-exports-utilities.d.ts +21 -21
  37. package/dist/domain/architecture/no-unused-exports/no-unused-exports-utilities.d.ts.map +1 -1
  38. package/dist/domain/architecture/no-unused-exports/no-unused-exports-utilities.js +24 -587
  39. package/dist/domain/core/no-multiple-declarators/rule-utilities.d.ts +58 -0
  40. package/dist/domain/core/no-multiple-declarators/rule-utilities.d.ts.map +1 -0
  41. package/dist/domain/core/no-multiple-declarators/rule-utilities.js +204 -0
  42. package/dist/domain/core/no-multiple-declarators/rule.d.ts.map +1 -1
  43. package/dist/domain/core/no-multiple-declarators/rule.js +9 -211
  44. package/dist/domain/core/no-multiple-declarators/types.js +2 -2
  45. package/dist/domain/core/prefer-interface-types/rule-utilities.d.ts +57 -0
  46. package/dist/domain/core/prefer-interface-types/rule-utilities.d.ts.map +1 -0
  47. package/dist/domain/core/prefer-interface-types/rule-utilities.js +105 -0
  48. package/dist/domain/core/prefer-interface-types/rule.d.ts.map +1 -1
  49. package/dist/domain/core/prefer-interface-types/rule.js +2 -104
  50. package/dist/domain/docs/no-interface-member-docs/comment-removal-ranges.d.ts +25 -0
  51. package/dist/domain/docs/no-interface-member-docs/comment-removal-ranges.d.ts.map +1 -0
  52. package/dist/domain/docs/no-interface-member-docs/comment-removal-ranges.js +64 -0
  53. package/dist/domain/docs/no-interface-member-docs/comment-utilities.d.ts +2 -24
  54. package/dist/domain/docs/no-interface-member-docs/comment-utilities.d.ts.map +1 -1
  55. package/dist/domain/docs/no-interface-member-docs/comment-utilities.js +3 -65
  56. package/dist/domain/docs/no-interface-member-docs/parameter-tags.js +2 -2
  57. package/dist/domain/docs/no-interface-member-docs/parameter-utilities.js +2 -2
  58. package/dist/domain/docs/no-interface-member-docs/rule.d.ts.map +1 -1
  59. package/dist/domain/docs/no-interface-member-docs/rule.js +3 -2
  60. package/dist/domain/docs/require-example-language/examples-collect.d.ts +15 -0
  61. package/dist/domain/docs/require-example-language/examples-collect.d.ts.map +1 -0
  62. package/dist/domain/docs/require-example-language/examples-collect.js +113 -0
  63. package/dist/domain/docs/require-example-language/examples.d.ts +24 -13
  64. package/dist/domain/docs/require-example-language/examples.d.ts.map +1 -1
  65. package/dist/domain/docs/require-example-language/examples.js +2 -111
  66. package/dist/domain/docs/require-example-language/fixes.js +4 -4
  67. package/dist/domain/docs/require-example-language/rule.d.ts.map +1 -1
  68. package/dist/domain/docs/require-example-language/rule.js +9 -8
  69. package/dist/domain/docs/require-example-language/types.d.ts.map +1 -1
  70. package/dist/domain/docs/require-example-language/types.js +1 -1
  71. package/dist/domain/testing/aaa/analyzer.analysis.helpers.d.ts.map +1 -1
  72. package/dist/domain/testing/aaa/analyzer.analysis.helpers.js +8 -8
  73. package/dist/domain/testing/aaa/analyzer.assertions.helpers.d.ts.map +1 -1
  74. package/dist/domain/testing/aaa/analyzer.assertions.helpers.js +10 -9
  75. package/dist/domain/testing/aaa/analyzer.assertions.operands.d.ts.map +1 -1
  76. package/dist/domain/testing/aaa/analyzer.assertions.operands.js +2 -5
  77. package/dist/domain/testing/aaa/analyzer.classification.helpers.js +14 -16
  78. package/dist/domain/testing/aaa/analyzer.classification.traversal.js +6 -4
  79. package/dist/domain/testing/aaa/analyzer.super.d.ts.map +1 -1
  80. package/dist/domain/testing/aaa/analyzer.super.js +10 -8
  81. package/dist/domain/testing/assert-actual-expected-names/rule.d.ts.map +1 -1
  82. package/dist/domain/testing/assert-actual-expected-names/rule.js +21 -23
  83. package/dist/domain/testing/enforce-aaa-phase-purity/pattern-identifiers.d.ts.map +1 -1
  84. package/dist/domain/testing/enforce-aaa-phase-purity/pattern-identifiers.js +1 -1
  85. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.d.ts.map +1 -1
  86. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.js +2 -160
  87. package/dist/domain/testing/enforce-aaa-phase-purity/statement-purity-reporters.d.ts +41 -0
  88. package/dist/domain/testing/enforce-aaa-phase-purity/statement-purity-reporters.d.ts.map +1 -0
  89. package/dist/domain/testing/enforce-aaa-phase-purity/statement-purity-reporters.js +161 -0
  90. package/dist/domain/testing/enforce-aaa-structure/missing-section-fixes.d.ts.map +1 -1
  91. package/dist/domain/testing/enforce-aaa-structure/missing-section-fixes.js +2 -2
  92. package/dist/domain/testing/enforce-aaa-structure/rule-section-reporting.d.ts +81 -0
  93. package/dist/domain/testing/enforce-aaa-structure/rule-section-reporting.d.ts.map +1 -0
  94. package/dist/domain/testing/enforce-aaa-structure/rule-section-reporting.js +181 -0
  95. package/dist/domain/testing/enforce-aaa-structure/rule.d.ts.map +1 -1
  96. package/dist/domain/testing/enforce-aaa-structure/rule.js +28 -217
  97. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-detection.d.ts +29 -0
  98. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-detection.d.ts.map +1 -0
  99. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-detection.js +200 -0
  100. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-names.d.ts +12 -0
  101. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-names.d.ts.map +1 -0
  102. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-names.js +151 -0
  103. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-reporting.d.ts +16 -0
  104. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-reporting.d.ts.map +1 -0
  105. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-reporting.js +109 -0
  106. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule.d.ts.map +1 -1
  107. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule.js +18 -450
  108. package/dist/domain/testing/prefer-vi-mocked-import/fix-import-updates.d.ts.map +1 -1
  109. package/dist/domain/testing/prefer-vi-mocked-import/fix-import-updates.js +7 -4
  110. package/dist/domain/testing/prefer-vi-mocked-import/fix-imports.d.ts.map +1 -1
  111. package/dist/domain/testing/prefer-vi-mocked-import/fix-imports.js +7 -4
  112. package/dist/domain/testing/prefer-vi-mocked-import/fix.js +2 -2
  113. package/dist/domain/testing/prefer-vi-mocked-import/match-collisions.d.ts +18 -0
  114. package/dist/domain/testing/prefer-vi-mocked-import/match-collisions.d.ts.map +1 -0
  115. package/dist/domain/testing/prefer-vi-mocked-import/match-collisions.js +162 -0
  116. package/dist/domain/testing/prefer-vi-mocked-import/match-rewrites.d.ts.map +1 -1
  117. package/dist/domain/testing/prefer-vi-mocked-import/match-rewrites.js +5 -4
  118. package/dist/domain/testing/prefer-vi-mocked-import/match-seeds.d.ts +29 -0
  119. package/dist/domain/testing/prefer-vi-mocked-import/match-seeds.d.ts.map +1 -0
  120. package/dist/domain/testing/prefer-vi-mocked-import/match-seeds.js +100 -0
  121. package/dist/domain/testing/prefer-vi-mocked-import/match.d.ts.map +1 -1
  122. package/dist/domain/testing/prefer-vi-mocked-import/match.js +5 -246
  123. package/dist/domain/testing/prefer-vi-mocked-import/rule.d.ts.map +1 -1
  124. package/dist/domain/testing/prefer-vi-mocked-import/rule.js +18 -20
  125. package/dist/domain/testing/require-act-result-capture/rule.d.ts.map +1 -1
  126. package/dist/domain/testing/require-act-result-capture/rule.js +47 -21
  127. package/dist/domain/testing/require-test-companion/rule.d.ts.map +1 -1
  128. package/dist/domain/testing/require-test-companion/rule.js +2 -4
  129. package/dist/domain/testing/single-act-statement/rule.d.ts.map +1 -1
  130. package/dist/domain/testing/single-act-statement/rule.js +20 -22
  131. package/package.json +35 -38
@@ -12,25 +12,25 @@ import { visitNode } from "./analyzer.super.helpers.js";
12
12
  * ```
13
13
  */
14
14
  function hasAsyncLogic(statement) {
15
- let foundAsyncLogic = false;
15
+ let wasAsyncLogicFound = false;
16
16
  visitStatementWithoutDeferredBodies(statement, (node) => {
17
17
  if (node.type === "AwaitExpression") {
18
- foundAsyncLogic = true;
18
+ wasAsyncLogicFound = true;
19
19
  return;
20
20
  }
21
21
  if (node.type === "CallExpression" &&
22
22
  node.callee.type === "MemberExpression" &&
23
23
  node.callee.property.type === "Identifier" &&
24
24
  ["catch", "finally", "then"].includes(node.callee.property.name)) {
25
- foundAsyncLogic = true;
25
+ wasAsyncLogicFound = true;
26
26
  return;
27
27
  }
28
28
  if (node.type === "NewExpression" &&
29
29
  getExpressionName(node.callee) === "Promise") {
30
- foundAsyncLogic = true;
30
+ wasAsyncLogicFound = true;
31
31
  }
32
32
  });
33
- return foundAsyncLogic;
33
+ return wasAsyncLogicFound;
34
34
  }
35
35
  /**
36
36
  * Checks for await usage.
@@ -42,13 +42,13 @@ function hasAsyncLogic(statement) {
42
42
  * ```
43
43
  */
44
44
  function hasAwait(statement) {
45
- let foundAwait = false;
45
+ let wasAwaitFound = false;
46
46
  visitStatementWithoutDeferredBodies(statement, (node) => {
47
47
  if (node.type === "AwaitExpression") {
48
- foundAwait = true;
48
+ wasAwaitFound = true;
49
49
  }
50
50
  });
51
- return foundAwait;
51
+ return wasAwaitFound;
52
52
  }
53
53
  /**
54
54
  * Checks for blank lines before comments.
@@ -99,13 +99,11 @@ function hasCapturableActResult(statement) {
99
99
  * ```
100
100
  */
101
101
  function hasMutation(statement) {
102
- let foundMutation = false;
102
+ let wasMutationFound = false;
103
103
  visitNode(statement, (node) => {
104
- if (node.type === "AssignmentExpression" ||
105
- node.type === "UpdateExpression" ||
106
- node.type === "UnaryExpression") {
104
+ if (["AssignmentExpression", "UnaryExpression", "UpdateExpression"].includes(node.type)) {
107
105
  if (node.type !== "UnaryExpression" || node.operator === "delete") {
108
- foundMutation = true;
106
+ wasMutationFound = true;
109
107
  }
110
108
  return;
111
109
  }
@@ -113,10 +111,10 @@ function hasMutation(statement) {
113
111
  node.callee.type === "MemberExpression" &&
114
112
  node.callee.property.type === "Identifier" &&
115
113
  arrayMutationMethods.has(node.callee.property.name)) {
116
- foundMutation = true;
114
+ wasMutationFound = true;
117
115
  }
118
116
  });
119
- return foundMutation;
117
+ return wasMutationFound;
120
118
  }
121
119
  /**
122
120
  * Checks for meaningful Act statements.
@@ -199,4 +197,4 @@ function isUtilityLikeExpression(expression) {
199
197
  isUtilityNamespaceCall(unwrappedExpression)));
200
198
  }
201
199
  export { hasAsyncLogic, hasAwait, hasBlankLineBeforeComment, hasCapturableActResult, hasMutation, isMeaningfulActStatement, isSetupLikeStatement, };
202
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl6ZXIuY2xhc3NpZmljYXRpb24uaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vdGVzdGluZy9hYWEvYW5hbHl6ZXIuY2xhc3NpZmljYXRpb24uaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLFlBQVksRUFDWixrQkFBa0IsRUFDbEIsZ0JBQWdCLEdBQ2pCLE1BQU0sK0JBQStCLENBQUM7QUFDdkMsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDMUYsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixpQkFBaUIsRUFDakIsY0FBYyxFQUNkLG9CQUFvQixFQUNwQixnQkFBZ0IsRUFDaEIsb0JBQW9CLEVBQ3BCLGtCQUFrQixFQUNsQixzQkFBc0IsRUFDdEIsb0JBQW9CLEVBQ3BCLG1CQUFtQixHQUNwQixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVyRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsYUFBYSxDQUFDLFNBQTJCO0lBQ2hELElBQUksZUFBZSxHQUFHLEtBQUssQ0FBQztJQUM1QixtQ0FBbUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtRQUN0RCxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssaUJBQWlCLEVBQUUsQ0FBQztZQUNwQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1lBQ3ZCLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFDRSxJQUFJLENBQUMsSUFBSSxLQUFLLGdCQUFnQjtZQUM5QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxrQkFBa0I7WUFDdkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLFlBQVk7WUFDMUMsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFDaEUsQ0FBQztZQUNELGVBQWUsR0FBRyxJQUFJLENBQUM7WUFDdkIsT0FBTztRQUNULENBQUM7UUFDRCxJQUNFLElBQUksQ0FBQyxJQUFJLEtBQUssZUFBZTtZQUM3QixpQkFBaUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssU0FBUyxFQUM1QyxDQUFDO1lBQ0QsZUFBZSxHQUFHLElBQUksQ0FBQztRQUN6QixDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDSCxPQUFPLGVBQWUsQ0FBQztBQUN6QixDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLFFBQVEsQ0FBQyxTQUEyQjtJQUMzQyxJQUFJLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDdkIsbUNBQW1DLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDdEQsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLGlCQUFpQixFQUFFLENBQUM7WUFDcEMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUNwQixDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDSCxPQUFPLFVBQVUsQ0FBQztBQUNwQixDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsU0FBUyx5QkFBeUIsQ0FDaEMsVUFBa0IsRUFDbEIsT0FBc0I7SUFFdEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDL0IsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMzQyxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELE9BQU8sWUFBWSxLQUFLLEtBQUssQ0FBQyxJQUFJLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO0FBQ3JFLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsc0JBQXNCLENBQUMsU0FBMkI7SUFDekQsSUFBSSxTQUFTLENBQUMsSUFBSSxLQUFLLHFCQUFxQixFQUFFLENBQUM7UUFDN0MsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0QsTUFBTSxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzFELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsSUFBSSx1QkFBdUIsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1FBQzNFLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNELE1BQU0sVUFBVSxHQUFHLGNBQWMsQ0FDL0IsVUFBMEQsQ0FDM0QsQ0FBQztJQUNGLE9BQU8sQ0FDTCxVQUFVLEtBQUssS0FBSyxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUM1RSxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxXQUFXLENBQUMsU0FBMkI7SUFDOUMsSUFBSSxhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQzFCLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtRQUM1QixJQUNFLElBQUksQ0FBQyxJQUFJLEtBQUssc0JBQXNCO1lBQ3BDLElBQUksQ0FBQyxJQUFJLEtBQUssa0JBQWtCO1lBQ2hDLElBQUksQ0FBQyxJQUFJLEtBQUssaUJBQWlCLEVBQy9CLENBQUM7WUFDRCxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssaUJBQWlCLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDbEUsYUFBYSxHQUFHLElBQUksQ0FBQztZQUN2QixDQUFDO1lBQ0QsT0FBTztRQUNULENBQUM7UUFDRCxJQUNFLElBQUksQ0FBQyxJQUFJLEtBQUssZ0JBQWdCO1lBQzlCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLGtCQUFrQjtZQUN2QyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssWUFBWTtZQUMxQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQ25ELENBQUM7WUFDRCxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUNILE9BQU8sYUFBYSxDQUFDO0FBQ3ZCLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsd0JBQXdCLENBQUMsU0FBMkI7SUFDM0QsTUFBTSxVQUFVLEdBQUcsc0JBQXNCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDckQsSUFBSSxVQUFVLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUMxQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFDRCxPQUFPLENBQ0wsa0JBQWtCLENBQUMsVUFBVSxDQUFDO1FBQzlCLENBQUMsdUJBQXVCLENBQUMsVUFBVSxDQUFDO1FBQ3BDLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUN6QixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxzQkFBc0IsQ0FDN0IsVUFBd0Q7SUFFeEQsT0FBTyxDQUNMLFVBQVUsQ0FBQyxJQUFJLEtBQUssZ0JBQWdCO1FBQ3BDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLGtCQUFrQjtRQUM3QyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssWUFBWTtRQUM5QyxVQUFVLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssWUFBWTtRQUNoRCxVQUFVLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssUUFBUTtRQUM1QyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUMvQyxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxvQkFBb0IsQ0FBQyxTQUEyQjtJQUN2RCxJQUFJLFNBQVMsQ0FBQyxJQUFJLEtBQUsscUJBQXFCLEVBQUUsQ0FBQztRQUM3QyxPQUFPLFNBQVMsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFDbEQsSUFBSSxXQUFXLENBQUMsSUFBSSxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUM5QixPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7WUFDRCxNQUFNLElBQUksR0FBRyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDaEQsT0FBTyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELE1BQU0sVUFBVSxHQUFHLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3JELE9BQU8sVUFBVSxLQUFLLEtBQUssQ0FBQyxJQUFJLHVCQUF1QixDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQ3RFLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsdUJBQXVCLENBQzlCLFVBQXlDO0lBRXpDLE1BQU0sbUJBQW1CLEdBQUcsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDekQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLG1CQUFtQixDQUFDLEVBQUUsQ0FBQztRQUMvQyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFDRCxNQUFNLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqRSxJQUFJLFVBQVUsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzFCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNELE9BQU8sQ0FDTCxDQUFDLHNCQUFzQixDQUFDLG1CQUFtQixDQUFDO1FBQzVDLENBQUMsb0JBQW9CLENBQUMsbUJBQW1CLEVBQUUsVUFBVSxDQUFDO1lBQ3BELGtCQUFrQixDQUFDLFVBQVUsQ0FBQztZQUM5QixzQkFBc0IsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQy9DLENBQUM7QUFDSixDQUFDO0FBRUQsT0FBTyxFQUNMLGFBQWEsRUFDYixRQUFRLEVBQ1IseUJBQXlCLEVBQ3pCLHNCQUFzQixFQUN0QixXQUFXLEVBQ1gsd0JBQXdCLEVBQ3hCLG9CQUFvQixHQUNyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBFU1RyZWUgZnJvbSBcImVzdHJlZVwiO1xyXG5cclxuaW1wb3J0IHR5cGUgeyBTb3VyY2VDb21tZW50IH0gZnJvbSBcIi4vdHlwZXNcIjtcclxuXHJcbmltcG9ydCB7XHJcbiAgZ2V0U3RhdGVtZW50RXhwcmVzc2lvbixcclxuICBoYXNBc3NlcnRpb24sXHJcbiAgaXNBY3Rpb25FeHByZXNzaW9uLFxyXG4gIHVud3JhcEV4cHJlc3Npb24sXHJcbn0gZnJvbSBcIi4vYW5hbHl6ZXIuYXNzZXJ0aW9ucy5oZWxwZXJzXCI7XHJcbmltcG9ydCB7IHZpc2l0U3RhdGVtZW50V2l0aG91dERlZmVycmVkQm9kaWVzIH0gZnJvbSBcIi4vYW5hbHl6ZXIuY2xhc3NpZmljYXRpb24udHJhdmVyc2FsXCI7XHJcbmltcG9ydCB7XHJcbiAgYXJyYXlNdXRhdGlvbk1ldGhvZHMsXHJcbiAgZ2V0RXhwcmVzc2lvbk5hbWUsXHJcbiAgZ2V0SW52b2tlZE5hbWUsXHJcbiAgaXNDYWxsYWJsZUV4cHJlc3Npb24sXHJcbiAgaXNMb2NhdGVkQ29tbWVudCxcclxuICBpc1V0aWxpdHlDb25zdHJ1Y3RvcixcclxuICBpc1V0aWxpdHlOYW1lZENhbGwsXHJcbiAgaXNVdGlsaXR5TmFtZXNwYWNlQ2FsbCxcclxuICBpc1ZvaWRMaWtlTWV0aG9kTmFtZSxcclxuICB2b2lkTGlrZU1ldGhvZE5hbWVzLFxyXG59IGZyb20gXCIuL2FuYWx5emVyLnN1cGVyXCI7XHJcbmltcG9ydCB7IHZpc2l0Tm9kZSB9IGZyb20gXCIuL2FuYWx5emVyLnN1cGVyLmhlbHBlcnNcIjtcclxuXHJcbi8qKlxyXG4gKiBDaGVja3MgZm9yIGFzeW5jIGxvZ2ljLlxyXG4gKiBAcGFyYW0gc3RhdGVtZW50IElucHV0IHN0YXRlbWVudCB2YWx1ZS5cclxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBoYXNBc3luY0xvZ2ljKHN0YXRlbWVudCk7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gaGFzQXN5bmNMb2dpYyhzdGF0ZW1lbnQ6IEVTVHJlZS5TdGF0ZW1lbnQpOiBib29sZWFuIHtcclxuICBsZXQgZm91bmRBc3luY0xvZ2ljID0gZmFsc2U7XHJcbiAgdmlzaXRTdGF0ZW1lbnRXaXRob3V0RGVmZXJyZWRCb2RpZXMoc3RhdGVtZW50LCAobm9kZSkgPT4ge1xyXG4gICAgaWYgKG5vZGUudHlwZSA9PT0gXCJBd2FpdEV4cHJlc3Npb25cIikge1xyXG4gICAgICBmb3VuZEFzeW5jTG9naWMgPSB0cnVlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAoXHJcbiAgICAgIG5vZGUudHlwZSA9PT0gXCJDYWxsRXhwcmVzc2lvblwiICYmXHJcbiAgICAgIG5vZGUuY2FsbGVlLnR5cGUgPT09IFwiTWVtYmVyRXhwcmVzc2lvblwiICYmXHJcbiAgICAgIG5vZGUuY2FsbGVlLnByb3BlcnR5LnR5cGUgPT09IFwiSWRlbnRpZmllclwiICYmXHJcbiAgICAgIFtcImNhdGNoXCIsIFwiZmluYWxseVwiLCBcInRoZW5cIl0uaW5jbHVkZXMobm9kZS5jYWxsZWUucHJvcGVydHkubmFtZSlcclxuICAgICkge1xyXG4gICAgICBmb3VuZEFzeW5jTG9naWMgPSB0cnVlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAoXHJcbiAgICAgIG5vZGUudHlwZSA9PT0gXCJOZXdFeHByZXNzaW9uXCIgJiZcclxuICAgICAgZ2V0RXhwcmVzc2lvbk5hbWUobm9kZS5jYWxsZWUpID09PSBcIlByb21pc2VcIlxyXG4gICAgKSB7XHJcbiAgICAgIGZvdW5kQXN5bmNMb2dpYyA9IHRydWU7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgcmV0dXJuIGZvdW5kQXN5bmNMb2dpYztcclxufVxyXG5cclxuLyoqXHJcbiAqIENoZWNrcyBmb3IgYXdhaXQgdXNhZ2UuXHJcbiAqIEBwYXJhbSBzdGF0ZW1lbnQgSW5wdXQgc3RhdGVtZW50IHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGhhc0F3YWl0KHN0YXRlbWVudCk7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gaGFzQXdhaXQoc3RhdGVtZW50OiBFU1RyZWUuU3RhdGVtZW50KTogYm9vbGVhbiB7XHJcbiAgbGV0IGZvdW5kQXdhaXQgPSBmYWxzZTtcclxuICB2aXNpdFN0YXRlbWVudFdpdGhvdXREZWZlcnJlZEJvZGllcyhzdGF0ZW1lbnQsIChub2RlKSA9PiB7XHJcbiAgICBpZiAobm9kZS50eXBlID09PSBcIkF3YWl0RXhwcmVzc2lvblwiKSB7XHJcbiAgICAgIGZvdW5kQXdhaXQgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIHJldHVybiBmb3VuZEF3YWl0O1xyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2tzIGZvciBibGFuayBsaW5lcyBiZWZvcmUgY29tbWVudHMuXHJcbiAqIEBwYXJhbSBzb3VyY2VUZXh0IElucHV0IHNvdXJjZVRleHQgdmFsdWUuXHJcbiAqIEBwYXJhbSBjb21tZW50IElucHV0IGNvbW1lbnQgdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogaGFzQmxhbmtMaW5lQmVmb3JlQ29tbWVudChzb3VyY2VUZXh0LCBjb21tZW50KTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBoYXNCbGFua0xpbmVCZWZvcmVDb21tZW50KFxyXG4gIHNvdXJjZVRleHQ6IHN0cmluZyxcclxuICBjb21tZW50OiBTb3VyY2VDb21tZW50LFxyXG4pOiBib29sZWFuIHtcclxuICBpZiAoIWlzTG9jYXRlZENvbW1lbnQoY29tbWVudCkpIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuICBjb25zdCBsaW5lcyA9IHNvdXJjZVRleHQuc3BsaXQoL1xcclxcbnxcXG4vdSk7XHJcbiAgY29uc3QgcHJldmlvdXNMaW5lID0gbGluZXNbY29tbWVudC5sb2Muc3RhcnQubGluZSAtIDJdO1xyXG4gIHJldHVybiBwcmV2aW91c0xpbmUgPT09IHZvaWQgMCB8fCBwcmV2aW91c0xpbmUudHJpbSgpLmxlbmd0aCA9PT0gMDtcclxufVxyXG5cclxuLyoqXHJcbiAqIENoZWNrcyBmb3IgY2FwdHVyYWJsZSBBY3QgcmVzdWx0cy5cclxuICogQHBhcmFtIHN0YXRlbWVudCBJbnB1dCBzdGF0ZW1lbnQgdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogaGFzQ2FwdHVyYWJsZUFjdFJlc3VsdChzdGF0ZW1lbnQpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGhhc0NhcHR1cmFibGVBY3RSZXN1bHQoc3RhdGVtZW50OiBFU1RyZWUuU3RhdGVtZW50KTogYm9vbGVhbiB7XHJcbiAgaWYgKHN0YXRlbWVudC50eXBlICE9PSBcIkV4cHJlc3Npb25TdGF0ZW1lbnRcIikge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuICBjb25zdCBleHByZXNzaW9uID0gdW53cmFwRXhwcmVzc2lvbihzdGF0ZW1lbnQuZXhwcmVzc2lvbik7XHJcbiAgaWYgKCFpc0FjdGlvbkV4cHJlc3Npb24oZXhwcmVzc2lvbikgfHwgaXNVdGlsaXR5TGlrZUV4cHJlc3Npb24oZXhwcmVzc2lvbikpIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbiAgY29uc3QgY2FsbGVlTmFtZSA9IGdldEludm9rZWROYW1lKFxyXG4gICAgZXhwcmVzc2lvbiBhcyBFU1RyZWUuQ2FsbEV4cHJlc3Npb24gfCBFU1RyZWUuTmV3RXhwcmVzc2lvbixcclxuICApO1xyXG4gIHJldHVybiAoXHJcbiAgICBjYWxsZWVOYW1lID09PSB2b2lkIDAgfHxcclxuICAgICghdm9pZExpa2VNZXRob2ROYW1lcy5oYXMoY2FsbGVlTmFtZSkgJiYgIWlzVm9pZExpa2VNZXRob2ROYW1lKGNhbGxlZU5hbWUpKVxyXG4gICk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDaGVja3MgZm9yIG11dGF0aW9uLlxyXG4gKiBAcGFyYW0gc3RhdGVtZW50IElucHV0IHN0YXRlbWVudCB2YWx1ZS5cclxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBoYXNNdXRhdGlvbihzdGF0ZW1lbnQpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGhhc011dGF0aW9uKHN0YXRlbWVudDogRVNUcmVlLlN0YXRlbWVudCk6IGJvb2xlYW4ge1xyXG4gIGxldCBmb3VuZE11dGF0aW9uID0gZmFsc2U7XHJcbiAgdmlzaXROb2RlKHN0YXRlbWVudCwgKG5vZGUpID0+IHtcclxuICAgIGlmIChcclxuICAgICAgbm9kZS50eXBlID09PSBcIkFzc2lnbm1lbnRFeHByZXNzaW9uXCIgfHxcclxuICAgICAgbm9kZS50eXBlID09PSBcIlVwZGF0ZUV4cHJlc3Npb25cIiB8fFxyXG4gICAgICBub2RlLnR5cGUgPT09IFwiVW5hcnlFeHByZXNzaW9uXCJcclxuICAgICkge1xyXG4gICAgICBpZiAobm9kZS50eXBlICE9PSBcIlVuYXJ5RXhwcmVzc2lvblwiIHx8IG5vZGUub3BlcmF0b3IgPT09IFwiZGVsZXRlXCIpIHtcclxuICAgICAgICBmb3VuZE11dGF0aW9uID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAoXHJcbiAgICAgIG5vZGUudHlwZSA9PT0gXCJDYWxsRXhwcmVzc2lvblwiICYmXHJcbiAgICAgIG5vZGUuY2FsbGVlLnR5cGUgPT09IFwiTWVtYmVyRXhwcmVzc2lvblwiICYmXHJcbiAgICAgIG5vZGUuY2FsbGVlLnByb3BlcnR5LnR5cGUgPT09IFwiSWRlbnRpZmllclwiICYmXHJcbiAgICAgIGFycmF5TXV0YXRpb25NZXRob2RzLmhhcyhub2RlLmNhbGxlZS5wcm9wZXJ0eS5uYW1lKVxyXG4gICAgKSB7XHJcbiAgICAgIGZvdW5kTXV0YXRpb24gPSB0cnVlO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIHJldHVybiBmb3VuZE11dGF0aW9uO1xyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2tzIGZvciBtZWFuaW5nZnVsIEFjdCBzdGF0ZW1lbnRzLlxyXG4gKiBAcGFyYW0gc3RhdGVtZW50IElucHV0IHN0YXRlbWVudCB2YWx1ZS5cclxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBpc01lYW5pbmdmdWxBY3RTdGF0ZW1lbnQoc3RhdGVtZW50KTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBpc01lYW5pbmdmdWxBY3RTdGF0ZW1lbnQoc3RhdGVtZW50OiBFU1RyZWUuU3RhdGVtZW50KTogYm9vbGVhbiB7XHJcbiAgY29uc3QgZXhwcmVzc2lvbiA9IGdldFN0YXRlbWVudEV4cHJlc3Npb24oc3RhdGVtZW50KTtcclxuICBpZiAoZXhwcmVzc2lvbiA9PT0gdm9pZCAwKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIHJldHVybiAoXHJcbiAgICBpc0FjdGlvbkV4cHJlc3Npb24oZXhwcmVzc2lvbikgJiZcclxuICAgICFpc1V0aWxpdHlMaWtlRXhwcmVzc2lvbihleHByZXNzaW9uKSAmJlxyXG4gICAgIWhhc0Fzc2VydGlvbihzdGF0ZW1lbnQpXHJcbiAgKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENoZWNrcyBmb3IgcnVsZSBjcmVhdGUgY2FsbHMuXHJcbiAqIEBwYXJhbSBleHByZXNzaW9uIElucHV0IGV4cHJlc3Npb24gdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogaXNSdWxlQ3JlYXRlSW52b2NhdGlvbihleHByZXNzaW9uKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBpc1J1bGVDcmVhdGVJbnZvY2F0aW9uKFxyXG4gIGV4cHJlc3Npb246IEVTVHJlZS5DYWxsRXhwcmVzc2lvbiB8IEVTVHJlZS5OZXdFeHByZXNzaW9uLFxyXG4pOiBib29sZWFuIHtcclxuICByZXR1cm4gKFxyXG4gICAgZXhwcmVzc2lvbi50eXBlID09PSBcIkNhbGxFeHByZXNzaW9uXCIgJiZcclxuICAgIGV4cHJlc3Npb24uY2FsbGVlLnR5cGUgPT09IFwiTWVtYmVyRXhwcmVzc2lvblwiICYmXHJcbiAgICBleHByZXNzaW9uLmNhbGxlZS5vYmplY3QudHlwZSA9PT0gXCJJZGVudGlmaWVyXCIgJiZcclxuICAgIGV4cHJlc3Npb24uY2FsbGVlLnByb3BlcnR5LnR5cGUgPT09IFwiSWRlbnRpZmllclwiICYmXHJcbiAgICBleHByZXNzaW9uLmNhbGxlZS5wcm9wZXJ0eS5uYW1lID09PSBcImNyZWF0ZVwiICYmXHJcbiAgICBleHByZXNzaW9uLmNhbGxlZS5vYmplY3QubmFtZS5lbmRzV2l0aChcIlJ1bGVcIilcclxuICApO1xyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2tzIGZvciBzZXR1cC1saWtlIHN0YXRlbWVudHMuXHJcbiAqIEBwYXJhbSBzdGF0ZW1lbnQgSW5wdXQgc3RhdGVtZW50IHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGlzU2V0dXBMaWtlU3RhdGVtZW50KHN0YXRlbWVudCk7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gaXNTZXR1cExpa2VTdGF0ZW1lbnQoc3RhdGVtZW50OiBFU1RyZWUuU3RhdGVtZW50KTogYm9vbGVhbiB7XHJcbiAgaWYgKHN0YXRlbWVudC50eXBlID09PSBcIlZhcmlhYmxlRGVjbGFyYXRpb25cIikge1xyXG4gICAgcmV0dXJuIHN0YXRlbWVudC5kZWNsYXJhdGlvbnMuZXZlcnkoKGRlY2xhcmF0aW9uKSA9PiB7XHJcbiAgICAgIGlmIChkZWNsYXJhdGlvbi5pbml0ID09PSBudWxsKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgaW5pdCA9IHVud3JhcEV4cHJlc3Npb24oZGVjbGFyYXRpb24uaW5pdCk7XHJcbiAgICAgIHJldHVybiAhaXNBY3Rpb25FeHByZXNzaW9uKGluaXQpIHx8IGlzVXRpbGl0eUxpa2VFeHByZXNzaW9uKGluaXQpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGNvbnN0IGV4cHJlc3Npb24gPSBnZXRTdGF0ZW1lbnRFeHByZXNzaW9uKHN0YXRlbWVudCk7XHJcbiAgcmV0dXJuIGV4cHJlc3Npb24gIT09IHZvaWQgMCAmJiBpc1V0aWxpdHlMaWtlRXhwcmVzc2lvbihleHByZXNzaW9uKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENoZWNrcyBmb3IgdXRpbGl0eS1saWtlIGV4cHJlc3Npb25zLlxyXG4gKiBAcGFyYW0gZXhwcmVzc2lvbiBJbnB1dCBleHByZXNzaW9uIHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGlzVXRpbGl0eUxpa2VFeHByZXNzaW9uKGV4cHJlc3Npb24pO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGlzVXRpbGl0eUxpa2VFeHByZXNzaW9uKFxyXG4gIGV4cHJlc3Npb246IEVTVHJlZS5FeHByZXNzaW9uIHwgdW5kZWZpbmVkLFxyXG4pOiBib29sZWFuIHtcclxuICBjb25zdCB1bndyYXBwZWRFeHByZXNzaW9uID0gdW53cmFwRXhwcmVzc2lvbihleHByZXNzaW9uKTtcclxuICBpZiAoIWlzQ2FsbGFibGVFeHByZXNzaW9uKHVud3JhcHBlZEV4cHJlc3Npb24pKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIGNvbnN0IGNhbGxlZU5hbWUgPSBnZXRFeHByZXNzaW9uTmFtZSh1bndyYXBwZWRFeHByZXNzaW9uLmNhbGxlZSk7XHJcbiAgaWYgKGNhbGxlZU5hbWUgPT09IHZvaWQgMCkge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuICByZXR1cm4gKFxyXG4gICAgIWlzUnVsZUNyZWF0ZUludm9jYXRpb24odW53cmFwcGVkRXhwcmVzc2lvbikgJiZcclxuICAgIChpc1V0aWxpdHlDb25zdHJ1Y3Rvcih1bndyYXBwZWRFeHByZXNzaW9uLCBjYWxsZWVOYW1lKSB8fFxyXG4gICAgICBpc1V0aWxpdHlOYW1lZENhbGwoY2FsbGVlTmFtZSkgfHxcclxuICAgICAgaXNVdGlsaXR5TmFtZXNwYWNlQ2FsbCh1bndyYXBwZWRFeHByZXNzaW9uKSlcclxuICApO1xyXG59XHJcblxyXG5leHBvcnQge1xyXG4gIGhhc0FzeW5jTG9naWMsXHJcbiAgaGFzQXdhaXQsXHJcbiAgaGFzQmxhbmtMaW5lQmVmb3JlQ29tbWVudCxcclxuICBoYXNDYXB0dXJhYmxlQWN0UmVzdWx0LFxyXG4gIGhhc011dGF0aW9uLFxyXG4gIGlzTWVhbmluZ2Z1bEFjdFN0YXRlbWVudCxcclxuICBpc1NldHVwTGlrZVN0YXRlbWVudCxcclxufTtcclxuIl19
200
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl6ZXIuY2xhc3NpZmljYXRpb24uaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vdGVzdGluZy9hYWEvYW5hbHl6ZXIuY2xhc3NpZmljYXRpb24uaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLFlBQVksRUFDWixrQkFBa0IsRUFDbEIsZ0JBQWdCLEdBQ2pCLE1BQU0sK0JBQStCLENBQUM7QUFDdkMsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDMUYsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixpQkFBaUIsRUFDakIsY0FBYyxFQUNkLG9CQUFvQixFQUNwQixnQkFBZ0IsRUFDaEIsb0JBQW9CLEVBQ3BCLGtCQUFrQixFQUNsQixzQkFBc0IsRUFDdEIsb0JBQW9CLEVBQ3BCLG1CQUFtQixHQUNwQixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVyRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsYUFBYSxDQUFDLFNBQTJCO0lBQ2hELElBQUksa0JBQWtCLEdBQUcsS0FBSyxDQUFDO0lBQy9CLG1DQUFtQyxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ3RELElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3BDLGtCQUFrQixHQUFHLElBQUksQ0FBQztZQUMxQixPQUFPO1FBQ1QsQ0FBQztRQUNELElBQ0UsSUFBSSxDQUFDLElBQUksS0FBSyxnQkFBZ0I7WUFDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssa0JBQWtCO1lBQ3ZDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxZQUFZO1lBQzFDLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLENB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QUFvQixDQUFDLG1CQUFtQixFQUFFLFVBQVUsQ0FBQztZQUNwRCxrQkFBa0IsQ0FBQyxVQUFVLENBQUM7WUFDOUIsc0JBQXNCLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUMvQyxDQUFDO0FBQ0osQ0FBQztBQUVELE9BQU8sRUFDTCxhQUFhLEVBQ2IsUUFBUSxFQUNSLHlCQUF5QixFQUN6QixzQkFBc0IsRUFDdEIsV0FBVyxFQUNYLHdCQUF3QixFQUN4QixvQkFBb0IsR0FDckIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlICogYXMgRVNUcmVlIGZyb20gXCJlc3RyZWVcIjtcclxuXHJcbmltcG9ydCB0eXBlIHsgU291cmNlQ29tbWVudCB9IGZyb20gXCIuL3R5cGVzXCI7XHJcblxyXG5pbXBvcnQge1xyXG4gIGdldFN0YXRlbWVudEV4cHJlc3Npb24sXHJcbiAgaGFzQXNzZXJ0aW9uLFxyXG4gIGlzQWN0aW9uRXhwcmVzc2lvbixcclxuICB1bndyYXBFeHByZXNzaW9uLFxyXG59IGZyb20gXCIuL2FuYWx5emVyLmFzc2VydGlvbnMuaGVscGVyc1wiO1xyXG5pbXBvcnQgeyB2aXNpdFN0YXRlbWVudFdpdGhvdXREZWZlcnJlZEJvZGllcyB9IGZyb20gXCIuL2FuYWx5emVyLmNsYXNzaWZpY2F0aW9uLnRyYXZlcnNhbFwiO1xyXG5pbXBvcnQge1xyXG4gIGFycmF5TXV0YXRpb25NZXRob2RzLFxyXG4gIGdldEV4cHJlc3Npb25OYW1lLFxyXG4gIGdldEludm9rZWROYW1lLFxyXG4gIGlzQ2FsbGFibGVFeHByZXNzaW9uLFxyXG4gIGlzTG9jYXRlZENvbW1lbnQsXHJcbiAgaXNVdGlsaXR5Q29uc3RydWN0b3IsXHJcbiAgaXNVdGlsaXR5TmFtZWRDYWxsLFxyXG4gIGlzVXRpbGl0eU5hbWVzcGFjZUNhbGwsXHJcbiAgaXNWb2lkTGlrZU1ldGhvZE5hbWUsXHJcbiAgdm9pZExpa2VNZXRob2ROYW1lcyxcclxufSBmcm9tIFwiLi9hbmFseXplci5zdXBlclwiO1xyXG5pbXBvcnQgeyB2aXNpdE5vZGUgfSBmcm9tIFwiLi9hbmFseXplci5zdXBlci5oZWxwZXJzXCI7XHJcblxyXG4vKipcclxuICogQ2hlY2tzIGZvciBhc3luYyBsb2dpYy5cclxuICogQHBhcmFtIHN0YXRlbWVudCBJbnB1dCBzdGF0ZW1lbnQgdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogaGFzQXN5bmNMb2dpYyhzdGF0ZW1lbnQpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGhhc0FzeW5jTG9naWMoc3RhdGVtZW50OiBFU1RyZWUuU3RhdGVtZW50KTogYm9vbGVhbiB7XHJcbiAgbGV0IHdhc0FzeW5jTG9naWNGb3VuZCA9IGZhbHNlO1xyXG4gIHZpc2l0U3RhdGVtZW50V2l0aG91dERlZmVycmVkQm9kaWVzKHN0YXRlbWVudCwgKG5vZGUpID0+IHtcclxuICAgIGlmIChub2RlLnR5cGUgPT09IFwiQXdhaXRFeHByZXNzaW9uXCIpIHtcclxuICAgICAgd2FzQXN5bmNMb2dpY0ZvdW5kID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKFxyXG4gICAgICBub2RlLnR5cGUgPT09IFwiQ2FsbEV4cHJlc3Npb25cIiAmJlxyXG4gICAgICBub2RlLmNhbGxlZS50eXBlID09PSBcIk1lbWJlckV4cHJlc3Npb25cIiAmJlxyXG4gICAgICBub2RlLmNhbGxlZS5wcm9wZXJ0eS50eXBlID09PSBcIklkZW50aWZpZXJcIiAmJlxyXG4gICAgICBbXCJjYXRjaFwiLCBcImZpbmFsbHlcIiwgXCJ0aGVuXCJdLmluY2x1ZGVzKG5vZGUuY2FsbGVlLnByb3BlcnR5Lm5hbWUpXHJcbiAgICApIHtcclxuICAgICAgd2FzQXN5bmNMb2dpY0ZvdW5kID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKFxyXG4gICAgICBub2RlLnR5cGUgPT09IFwiTmV3RXhwcmVzc2lvblwiICYmXHJcbiAgICAgIGdldEV4cHJlc3Npb25OYW1lKG5vZGUuY2FsbGVlKSA9PT0gXCJQcm9taXNlXCJcclxuICAgICkge1xyXG4gICAgICB3YXNBc3luY0xvZ2ljRm91bmQgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIHJldHVybiB3YXNBc3luY0xvZ2ljRm91bmQ7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDaGVja3MgZm9yIGF3YWl0IHVzYWdlLlxyXG4gKiBAcGFyYW0gc3RhdGVtZW50IElucHV0IHN0YXRlbWVudCB2YWx1ZS5cclxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBoYXNBd2FpdChzdGF0ZW1lbnQpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGhhc0F3YWl0KHN0YXRlbWVudDogRVNUcmVlLlN0YXRlbWVudCk6IGJvb2xlYW4ge1xyXG4gIGxldCB3YXNBd2FpdEZvdW5kID0gZmFsc2U7XHJcbiAgdmlzaXRTdGF0ZW1lbnRXaXRob3V0RGVmZXJyZWRCb2RpZXMoc3RhdGVtZW50LCAobm9kZSkgPT4ge1xyXG4gICAgaWYgKG5vZGUudHlwZSA9PT0gXCJBd2FpdEV4cHJlc3Npb25cIikge1xyXG4gICAgICB3YXNBd2FpdEZvdW5kID0gdHJ1ZTtcclxuICAgIH1cclxuICB9KTtcclxuICByZXR1cm4gd2FzQXdhaXRGb3VuZDtcclxufVxyXG5cclxuLyoqXHJcbiAqIENoZWNrcyBmb3IgYmxhbmsgbGluZXMgYmVmb3JlIGNvbW1lbnRzLlxyXG4gKiBAcGFyYW0gc291cmNlVGV4dCBJbnB1dCBzb3VyY2VUZXh0IHZhbHVlLlxyXG4gKiBAcGFyYW0gY29tbWVudCBJbnB1dCBjb21tZW50IHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGhhc0JsYW5rTGluZUJlZm9yZUNvbW1lbnQoc291cmNlVGV4dCwgY29tbWVudCk7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gaGFzQmxhbmtMaW5lQmVmb3JlQ29tbWVudChcclxuICBzb3VyY2VUZXh0OiBzdHJpbmcsXHJcbiAgY29tbWVudDogU291cmNlQ29tbWVudCxcclxuKTogYm9vbGVhbiB7XHJcbiAgaWYgKCFpc0xvY2F0ZWRDb21tZW50KGNvbW1lbnQpKSB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcbiAgY29uc3QgbGluZXMgPSBzb3VyY2VUZXh0LnNwbGl0KC9cXHJcXG58XFxuL3UpO1xyXG4gIGNvbnN0IHByZXZpb3VzTGluZSA9IGxpbmVzW2NvbW1lbnQubG9jLnN0YXJ0LmxpbmUgLSAyXTtcclxuICByZXR1cm4gcHJldmlvdXNMaW5lID09PSB2b2lkIDAgfHwgcHJldmlvdXNMaW5lLnRyaW0oKS5sZW5ndGggPT09IDA7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDaGVja3MgZm9yIGNhcHR1cmFibGUgQWN0IHJlc3VsdHMuXHJcbiAqIEBwYXJhbSBzdGF0ZW1lbnQgSW5wdXQgc3RhdGVtZW50IHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGhhc0NhcHR1cmFibGVBY3RSZXN1bHQoc3RhdGVtZW50KTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBoYXNDYXB0dXJhYmxlQWN0UmVzdWx0KHN0YXRlbWVudDogRVNUcmVlLlN0YXRlbWVudCk6IGJvb2xlYW4ge1xyXG4gIGlmIChzdGF0ZW1lbnQudHlwZSAhPT0gXCJFeHByZXNzaW9uU3RhdGVtZW50XCIpIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbiAgY29uc3QgZXhwcmVzc2lvbiA9IHVud3JhcEV4cHJlc3Npb24oc3RhdGVtZW50LmV4cHJlc3Npb24pO1xyXG4gIGlmICghaXNBY3Rpb25FeHByZXNzaW9uKGV4cHJlc3Npb24pIHx8IGlzVXRpbGl0eUxpa2VFeHByZXNzaW9uKGV4cHJlc3Npb24pKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIGNvbnN0IGNhbGxlZU5hbWUgPSBnZXRJbnZva2VkTmFtZShcclxuICAgIGV4cHJlc3Npb24gYXMgRVNUcmVlLkNhbGxFeHByZXNzaW9uIHwgRVNUcmVlLk5ld0V4cHJlc3Npb24sXHJcbiAgKTtcclxuICByZXR1cm4gKFxyXG4gICAgY2FsbGVlTmFtZSA9PT0gdm9pZCAwIHx8XHJcbiAgICAoIXZvaWRMaWtlTWV0aG9kTmFtZXMuaGFzKGNhbGxlZU5hbWUpICYmICFpc1ZvaWRMaWtlTWV0aG9kTmFtZShjYWxsZWVOYW1lKSlcclxuICApO1xyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2tzIGZvciBtdXRhdGlvbi5cclxuICogQHBhcmFtIHN0YXRlbWVudCBJbnB1dCBzdGF0ZW1lbnQgdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogaGFzTXV0YXRpb24oc3RhdGVtZW50KTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBoYXNNdXRhdGlvbihzdGF0ZW1lbnQ6IEVTVHJlZS5TdGF0ZW1lbnQpOiBib29sZWFuIHtcclxuICBsZXQgd2FzTXV0YXRpb25Gb3VuZCA9IGZhbHNlO1xyXG4gIHZpc2l0Tm9kZShzdGF0ZW1lbnQsIChub2RlKSA9PiB7XHJcbiAgICBpZiAoXHJcbiAgICAgIFtcIkFzc2lnbm1lbnRFeHByZXNzaW9uXCIsIFwiVW5hcnlFeHByZXNzaW9uXCIsIFwiVXBkYXRlRXhwcmVzc2lvblwiXS5pbmNsdWRlcyhcclxuICAgICAgICBub2RlLnR5cGUsXHJcbiAgICAgIClcclxuICAgICkge1xyXG4gICAgICBpZiAobm9kZS50eXBlICE9PSBcIlVuYXJ5RXhwcmVzc2lvblwiIHx8IG5vZGUub3BlcmF0b3IgPT09IFwiZGVsZXRlXCIpIHtcclxuICAgICAgICB3YXNNdXRhdGlvbkZvdW5kID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAoXHJcbiAgICAgIG5vZGUudHlwZSA9PT0gXCJDYWxsRXhwcmVzc2lvblwiICYmXHJcbiAgICAgIG5vZGUuY2FsbGVlLnR5cGUgPT09IFwiTWVtYmVyRXhwcmVzc2lvblwiICYmXHJcbiAgICAgIG5vZGUuY2FsbGVlLnByb3BlcnR5LnR5cGUgPT09IFwiSWRlbnRpZmllclwiICYmXHJcbiAgICAgIGFycmF5TXV0YXRpb25NZXRob2RzLmhhcyhub2RlLmNhbGxlZS5wcm9wZXJ0eS5uYW1lKVxyXG4gICAgKSB7XHJcbiAgICAgIHdhc011dGF0aW9uRm91bmQgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIHJldHVybiB3YXNNdXRhdGlvbkZvdW5kO1xyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2tzIGZvciBtZWFuaW5nZnVsIEFjdCBzdGF0ZW1lbnRzLlxyXG4gKiBAcGFyYW0gc3RhdGVtZW50IElucHV0IHN0YXRlbWVudCB2YWx1ZS5cclxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBpc01lYW5pbmdmdWxBY3RTdGF0ZW1lbnQoc3RhdGVtZW50KTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBpc01lYW5pbmdmdWxBY3RTdGF0ZW1lbnQoc3RhdGVtZW50OiBFU1RyZWUuU3RhdGVtZW50KTogYm9vbGVhbiB7XHJcbiAgY29uc3QgZXhwcmVzc2lvbiA9IGdldFN0YXRlbWVudEV4cHJlc3Npb24oc3RhdGVtZW50KTtcclxuICBpZiAoZXhwcmVzc2lvbiA9PT0gdm9pZCAwKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIHJldHVybiAoXHJcbiAgICBpc0FjdGlvbkV4cHJlc3Npb24oZXhwcmVzc2lvbikgJiZcclxuICAgICFpc1V0aWxpdHlMaWtlRXhwcmVzc2lvbihleHByZXNzaW9uKSAmJlxyXG4gICAgIWhhc0Fzc2VydGlvbihzdGF0ZW1lbnQpXHJcbiAgKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENoZWNrcyBmb3IgcnVsZSBjcmVhdGUgY2FsbHMuXHJcbiAqIEBwYXJhbSBleHByZXNzaW9uIElucHV0IGV4cHJlc3Npb24gdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogaXNSdWxlQ3JlYXRlSW52b2NhdGlvbihleHByZXNzaW9uKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBpc1J1bGVDcmVhdGVJbnZvY2F0aW9uKFxyXG4gIGV4cHJlc3Npb246IEVTVHJlZS5DYWxsRXhwcmVzc2lvbiB8IEVTVHJlZS5OZXdFeHByZXNzaW9uLFxyXG4pOiBib29sZWFuIHtcclxuICByZXR1cm4gKFxyXG4gICAgZXhwcmVzc2lvbi50eXBlID09PSBcIkNhbGxFeHByZXNzaW9uXCIgJiZcclxuICAgIGV4cHJlc3Npb24uY2FsbGVlLnR5cGUgPT09IFwiTWVtYmVyRXhwcmVzc2lvblwiICYmXHJcbiAgICBleHByZXNzaW9uLmNhbGxlZS5vYmplY3QudHlwZSA9PT0gXCJJZGVudGlmaWVyXCIgJiZcclxuICAgIGV4cHJlc3Npb24uY2FsbGVlLnByb3BlcnR5LnR5cGUgPT09IFwiSWRlbnRpZmllclwiICYmXHJcbiAgICBleHByZXNzaW9uLmNhbGxlZS5wcm9wZXJ0eS5uYW1lID09PSBcImNyZWF0ZVwiICYmXHJcbiAgICBleHByZXNzaW9uLmNhbGxlZS5vYmplY3QubmFtZS5lbmRzV2l0aChcIlJ1bGVcIilcclxuICApO1xyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2tzIGZvciBzZXR1cC1saWtlIHN0YXRlbWVudHMuXHJcbiAqIEBwYXJhbSBzdGF0ZW1lbnQgSW5wdXQgc3RhdGVtZW50IHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGlzU2V0dXBMaWtlU3RhdGVtZW50KHN0YXRlbWVudCk7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gaXNTZXR1cExpa2VTdGF0ZW1lbnQoc3RhdGVtZW50OiBFU1RyZWUuU3RhdGVtZW50KTogYm9vbGVhbiB7XHJcbiAgaWYgKHN0YXRlbWVudC50eXBlID09PSBcIlZhcmlhYmxlRGVjbGFyYXRpb25cIikge1xyXG4gICAgcmV0dXJuIHN0YXRlbWVudC5kZWNsYXJhdGlvbnMuZXZlcnkoKGRlY2xhcmF0aW9uKSA9PiB7XHJcbiAgICAgIGlmIChkZWNsYXJhdGlvbi5pbml0ID09PSBudWxsKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgaW5pdCA9IHVud3JhcEV4cHJlc3Npb24oZGVjbGFyYXRpb24uaW5pdCk7XHJcbiAgICAgIHJldHVybiAhaXNBY3Rpb25FeHByZXNzaW9uKGluaXQpIHx8IGlzVXRpbGl0eUxpa2VFeHByZXNzaW9uKGluaXQpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGNvbnN0IGV4cHJlc3Npb24gPSBnZXRTdGF0ZW1lbnRFeHByZXNzaW9uKHN0YXRlbWVudCk7XHJcbiAgcmV0dXJuIGV4cHJlc3Npb24gIT09IHZvaWQgMCAmJiBpc1V0aWxpdHlMaWtlRXhwcmVzc2lvbihleHByZXNzaW9uKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENoZWNrcyBmb3IgdXRpbGl0eS1saWtlIGV4cHJlc3Npb25zLlxyXG4gKiBAcGFyYW0gZXhwcmVzc2lvbiBJbnB1dCBleHByZXNzaW9uIHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGlzVXRpbGl0eUxpa2VFeHByZXNzaW9uKGV4cHJlc3Npb24pO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGlzVXRpbGl0eUxpa2VFeHByZXNzaW9uKFxyXG4gIGV4cHJlc3Npb246IEVTVHJlZS5FeHByZXNzaW9uIHwgdW5kZWZpbmVkLFxyXG4pOiBib29sZWFuIHtcclxuICBjb25zdCB1bndyYXBwZWRFeHByZXNzaW9uID0gdW53cmFwRXhwcmVzc2lvbihleHByZXNzaW9uKTtcclxuICBpZiAoIWlzQ2FsbGFibGVFeHByZXNzaW9uKHVud3JhcHBlZEV4cHJlc3Npb24pKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIGNvbnN0IGNhbGxlZU5hbWUgPSBnZXRFeHByZXNzaW9uTmFtZSh1bndyYXBwZWRFeHByZXNzaW9uLmNhbGxlZSk7XHJcbiAgaWYgKGNhbGxlZU5hbWUgPT09IHZvaWQgMCkge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuICByZXR1cm4gKFxyXG4gICAgIWlzUnVsZUNyZWF0ZUludm9jYXRpb24odW53cmFwcGVkRXhwcmVzc2lvbikgJiZcclxuICAgIChpc1V0aWxpdHlDb25zdHJ1Y3Rvcih1bndyYXBwZWRFeHByZXNzaW9uLCBjYWxsZWVOYW1lKSB8fFxyXG4gICAgICBpc1V0aWxpdHlOYW1lZENhbGwoY2FsbGVlTmFtZSkgfHxcclxuICAgICAgaXNVdGlsaXR5TmFtZXNwYWNlQ2FsbCh1bndyYXBwZWRFeHByZXNzaW9uKSlcclxuICApO1xyXG59XHJcblxyXG5leHBvcnQge1xyXG4gIGhhc0FzeW5jTG9naWMsXHJcbiAgaGFzQXdhaXQsXHJcbiAgaGFzQmxhbmtMaW5lQmVmb3JlQ29tbWVudCxcclxuICBoYXNDYXB0dXJhYmxlQWN0UmVzdWx0LFxyXG4gIGhhc011dGF0aW9uLFxyXG4gIGlzTWVhbmluZ2Z1bEFjdFN0YXRlbWVudCxcclxuICBpc1NldHVwTGlrZVN0YXRlbWVudCxcclxufTtcclxuIl19
@@ -9,9 +9,11 @@ import { visitNode } from "./analyzer.super.helpers.js";
9
9
  * ```
10
10
  */
11
11
  function isDeferredFunctionNode(node) {
12
- return (node.type === "ArrowFunctionExpression" ||
13
- node.type === "FunctionDeclaration" ||
14
- node.type === "FunctionExpression");
12
+ return [
13
+ "ArrowFunctionExpression",
14
+ "FunctionDeclaration",
15
+ "FunctionExpression",
16
+ ].includes(node.type);
15
17
  }
16
18
  /**
17
19
  * Visits a statement while skipping nested function bodies that execute later.
@@ -29,4 +31,4 @@ function visitStatementWithoutDeferredBodies(statement, callback) {
29
31
  });
30
32
  }
31
33
  export { visitStatementWithoutDeferredBodies };
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl6ZXIuY2xhc3NpZmljYXRpb24udHJhdmVyc2FsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RvbWFpbi90ZXN0aW5nL2FhYS9hbmFseXplci5jbGFzc2lmaWNhdGlvbi50cmF2ZXJzYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXJEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxzQkFBc0IsQ0FBQyxJQUFpQjtJQUMvQyxPQUFPLENBQ0wsSUFBSSxDQUFDLElBQUksS0FBSyx5QkFBeUI7UUFDdkMsSUFBSSxDQUFDLElBQUksS0FBSyxxQkFBcUI7UUFDbkMsSUFBSSxDQUFDLElBQUksS0FBSyxvQkFBb0IsQ0FDbkMsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsbUNBQW1DLENBQzFDLFNBQTJCLEVBQzNCLFFBQXFDO0lBRXJDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtRQUM1QixRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDZixPQUFPLElBQUksS0FBSyxTQUFTLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3RCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlICogYXMgRVNUcmVlIGZyb20gXCJlc3RyZWVcIjtcclxuXHJcbmltcG9ydCB7IHZpc2l0Tm9kZSB9IGZyb20gXCIuL2FuYWx5emVyLnN1cGVyLmhlbHBlcnNcIjtcclxuXHJcbi8qKlxyXG4gKiBDaGVja3Mgd2hldGhlciBhIG5vZGUgaW50cm9kdWNlcyBkZWZlcnJlZCBleGVjdXRpb24uXHJcbiAqIEBwYXJhbSBub2RlIElucHV0IG5vZGUgdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogaXNEZWZlcnJlZEZ1bmN0aW9uTm9kZSh7IHR5cGU6IFwiQXJyb3dGdW5jdGlvbkV4cHJlc3Npb25cIiB9IGFzIEVTVHJlZS5Ob2RlKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBpc0RlZmVycmVkRnVuY3Rpb25Ob2RlKG5vZGU6IEVTVHJlZS5Ob2RlKTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuIChcclxuICAgIG5vZGUudHlwZSA9PT0gXCJBcnJvd0Z1bmN0aW9uRXhwcmVzc2lvblwiIHx8XHJcbiAgICBub2RlLnR5cGUgPT09IFwiRnVuY3Rpb25EZWNsYXJhdGlvblwiIHx8XHJcbiAgICBub2RlLnR5cGUgPT09IFwiRnVuY3Rpb25FeHByZXNzaW9uXCJcclxuICApO1xyXG59XHJcblxyXG4vKipcclxuICogVmlzaXRzIGEgc3RhdGVtZW50IHdoaWxlIHNraXBwaW5nIG5lc3RlZCBmdW5jdGlvbiBib2RpZXMgdGhhdCBleGVjdXRlIGxhdGVyLlxyXG4gKiBAcGFyYW0gc3RhdGVtZW50IElucHV0IHN0YXRlbWVudCB2YWx1ZS5cclxuICogQHBhcmFtIGNhbGxiYWNrIElucHV0IGNhbGxiYWNrIHZhbHVlLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIHZpc2l0U3RhdGVtZW50V2l0aG91dERlZmVycmVkQm9kaWVzKHN0YXRlbWVudCwgKCkgPT4ge30pO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIHZpc2l0U3RhdGVtZW50V2l0aG91dERlZmVycmVkQm9kaWVzKFxyXG4gIHN0YXRlbWVudDogRVNUcmVlLlN0YXRlbWVudCxcclxuICBjYWxsYmFjazogKG5vZGU6IEVTVHJlZS5Ob2RlKSA9PiB2b2lkLFxyXG4pOiB2b2lkIHtcclxuICB2aXNpdE5vZGUoc3RhdGVtZW50LCAobm9kZSkgPT4ge1xyXG4gICAgY2FsbGJhY2sobm9kZSk7XHJcbiAgICByZXR1cm4gbm9kZSA9PT0gc3RhdGVtZW50IHx8ICFpc0RlZmVycmVkRnVuY3Rpb25Ob2RlKG5vZGUpO1xyXG4gIH0pO1xyXG59XHJcblxyXG5leHBvcnQgeyB2aXNpdFN0YXRlbWVudFdpdGhvdXREZWZlcnJlZEJvZGllcyB9O1xyXG4iXX0=
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl6ZXIuY2xhc3NpZmljYXRpb24udHJhdmVyc2FsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RvbWFpbi90ZXN0aW5nL2FhYS9hbmFseXplci5jbGFzc2lmaWNhdGlvbi50cmF2ZXJzYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXJEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxzQkFBc0IsQ0FBQyxJQUFpQjtJQUMvQyxPQUFPO1FBQ0wseUJBQXlCO1FBQ3pCLHFCQUFxQjtRQUNyQixvQkFBb0I7S0FDckIsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3hCLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsbUNBQW1DLENBQzFDLFNBQTJCLEVBQzNCLFFBQXFDO0lBRXJDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtRQUM1QixRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDZixPQUFPLElBQUksS0FBSyxTQUFTLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3RCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlICogYXMgRVNUcmVlIGZyb20gXCJlc3RyZWVcIjtcclxuXHJcbmltcG9ydCB7IHZpc2l0Tm9kZSB9IGZyb20gXCIuL2FuYWx5emVyLnN1cGVyLmhlbHBlcnNcIjtcclxuXHJcbi8qKlxyXG4gKiBDaGVja3Mgd2hldGhlciBhIG5vZGUgaW50cm9kdWNlcyBkZWZlcnJlZCBleGVjdXRpb24uXHJcbiAqIEBwYXJhbSBub2RlIElucHV0IG5vZGUgdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogaXNEZWZlcnJlZEZ1bmN0aW9uTm9kZSh7IHR5cGU6IFwiQXJyb3dGdW5jdGlvbkV4cHJlc3Npb25cIiB9IGFzIEVTVHJlZS5Ob2RlKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBpc0RlZmVycmVkRnVuY3Rpb25Ob2RlKG5vZGU6IEVTVHJlZS5Ob2RlKTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuIFtcclxuICAgIFwiQXJyb3dGdW5jdGlvbkV4cHJlc3Npb25cIixcclxuICAgIFwiRnVuY3Rpb25EZWNsYXJhdGlvblwiLFxyXG4gICAgXCJGdW5jdGlvbkV4cHJlc3Npb25cIixcclxuICBdLmluY2x1ZGVzKG5vZGUudHlwZSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBWaXNpdHMgYSBzdGF0ZW1lbnQgd2hpbGUgc2tpcHBpbmcgbmVzdGVkIGZ1bmN0aW9uIGJvZGllcyB0aGF0IGV4ZWN1dGUgbGF0ZXIuXHJcbiAqIEBwYXJhbSBzdGF0ZW1lbnQgSW5wdXQgc3RhdGVtZW50IHZhbHVlLlxyXG4gKiBAcGFyYW0gY2FsbGJhY2sgSW5wdXQgY2FsbGJhY2sgdmFsdWUuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogdmlzaXRTdGF0ZW1lbnRXaXRob3V0RGVmZXJyZWRCb2RpZXMoc3RhdGVtZW50LCAoKSA9PiB7fSk7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gdmlzaXRTdGF0ZW1lbnRXaXRob3V0RGVmZXJyZWRCb2RpZXMoXHJcbiAgc3RhdGVtZW50OiBFU1RyZWUuU3RhdGVtZW50LFxyXG4gIGNhbGxiYWNrOiAobm9kZTogRVNUcmVlLk5vZGUpID0+IHZvaWQsXHJcbik6IHZvaWQge1xyXG4gIHZpc2l0Tm9kZShzdGF0ZW1lbnQsIChub2RlKSA9PiB7XHJcbiAgICBjYWxsYmFjayhub2RlKTtcclxuICAgIHJldHVybiBub2RlID09PSBzdGF0ZW1lbnQgfHwgIWlzRGVmZXJyZWRGdW5jdGlvbk5vZGUobm9kZSk7XHJcbiAgfSk7XHJcbn1cclxuXHJcbmV4cG9ydCB7IHZpc2l0U3RhdGVtZW50V2l0aG91dERlZmVycmVkQm9kaWVzIH07XHJcbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"analyzer.super.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/aaa/analyzer.super.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7D,iEAAiE;AACjE,QAAA,MAAM,oBAAoB,aAUxB,CAAC;AA0BH,sEAAsE;AACtE,QAAA,MAAM,mBAAmB,aAcvB,CAAC;AAEH;;;;;;;;GAQG;AACH,iBAAS,iBAAiB,CACxB,UAAU,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,iBAAiB,GAAG,MAAM,CAAC,KAAK,GACtE,MAAM,GAAG,SAAS,CAiBpB;AAED;;;;;;;;GAQG;AACH,iBAAS,cAAc,CACrB,UAAU,EAAE,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,aAAa,GACvD,MAAM,GAAG,SAAS,CAEpB;AAkBD;;;;;;;;GAQG;AACH,iBAAS,oBAAoB,CAC3B,UAAU,EAAE,MAAM,CAAC,UAAU,GAAG,SAAS,GACxC,UAAU,IAAI,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,aAAa,CAK5D;AAED;;;;;;;;GAQG;AACH,iBAAS,gBAAgB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,IAAI,cAAc,CAI3E;AAED;;;;;;;;;GASG;AACH,iBAAS,aAAa,CACpB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EACvB,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAC1B,OAAO,CAET;AAED;;;;;;;;;GASG;AACH,iBAAS,oBAAoB,CAC3B,UAAU,EAAE,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,aAAa,EACxD,UAAU,EAAE,MAAM,GACjB,OAAO,CAWT;AAED;;;;;;;;GAQG;AACH,iBAAS,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED;;;;;;;;GAQG;AACH,iBAAS,sBAAsB,CAC7B,UAAU,EAAE,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,aAAa,GACvD,OAAO,CAMT;AAED;;;;;;;;GAQG;AACH,iBAAS,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,aAAa,EACb,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,GACpB,CAAC"}
1
+ {"version":3,"file":"analyzer.super.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/aaa/analyzer.super.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7D,iEAAiE;AACjE,QAAA,MAAM,oBAAoB,aAUxB,CAAC;AA0BH,sEAAsE;AACtE,QAAA,MAAM,mBAAmB,aAcvB,CAAC;AAEH;;;;;;;;GAQG;AACH,iBAAS,iBAAiB,CACxB,UAAU,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,iBAAiB,GAAG,MAAM,CAAC,KAAK,GACtE,MAAM,GAAG,SAAS,CAiBpB;AAED;;;;;;;;GAQG;AACH,iBAAS,cAAc,CACrB,UAAU,EAAE,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,aAAa,GACvD,MAAM,GAAG,SAAS,CAEpB;AAkBD;;;;;;;;GAQG;AACH,iBAAS,oBAAoB,CAC3B,UAAU,EAAE,MAAM,CAAC,UAAU,GAAG,SAAS,GACxC,UAAU,IAAI,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,aAAa,CAK5D;AAED;;;;;;;;GAQG;AACH,iBAAS,gBAAgB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,IAAI,cAAc,CAI3E;AAED;;;;;;;;;GASG;AACH,iBAAS,aAAa,CACpB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EACvB,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAC1B,OAAO,CAET;AAED;;;;;;;;;GASG;AACH,iBAAS,oBAAoB,CAC3B,UAAU,EAAE,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,aAAa,EACxD,UAAU,EAAE,MAAM,GACjB,OAAO,CAaT;AAED;;;;;;;;GAQG;AACH,iBAAS,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED;;;;;;;;GAQG;AACH,iBAAS,sBAAsB,CAC7B,UAAU,EAAE,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,aAAa,GACvD,OAAO,CAMT;AAED;;;;;;;;GAQG;AACH,iBAAS,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,aAAa,EACb,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,GACpB,CAAC"}
@@ -146,13 +146,15 @@ function isRangeWithin(range, container) {
146
146
  */
147
147
  function isUtilityConstructor(expression, calleeName) {
148
148
  return (expression.type === "NewExpression" &&
149
- (calleeName === "Error" ||
150
- calleeName === "Map" ||
151
- calleeName === "Set" ||
152
- calleeName === "SourceCode" ||
153
- calleeName === "ESLint" ||
154
- calleeName === "WeakMap" ||
155
- calleeName === "WeakSet"));
149
+ [
150
+ "Error",
151
+ "ESLint",
152
+ "Map",
153
+ "Set",
154
+ "SourceCode",
155
+ "WeakMap",
156
+ "WeakSet",
157
+ ].includes(calleeName));
156
158
  }
157
159
  /**
158
160
  * Checks whether a callee name looks utility-like.
@@ -193,4 +195,4 @@ function isVoidLikeMethodName(calleeName) {
193
195
  return getNameWords(calleeName).some((word) => voidLikeMethodNames.has(word));
194
196
  }
195
197
  export { arrayMutationMethods, getExpressionName, getInvokedName, isCallableExpression, isLocatedComment, isRangeWithin, isUtilityConstructor, isUtilityNamedCall, isUtilityNamespaceCall, isVoidLikeMethodName, voidLikeMethodNames, };
196
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl6ZXIuc3VwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvYWFhL2FuYWx5emVyLnN1cGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLGlFQUFpRTtBQUNqRSxNQUFNLG9CQUFvQixHQUFHLElBQUksR0FBRyxDQUFDO0lBQ25DLFlBQVk7SUFDWixNQUFNO0lBQ04sS0FBSztJQUNMLE1BQU07SUFDTixTQUFTO0lBQ1QsT0FBTztJQUNQLE1BQU07SUFDTixRQUFRO0lBQ1IsU0FBUztDQUNWLENBQUMsQ0FBQztBQUVILCtEQUErRDtBQUMvRCxNQUFNLGNBQWMsR0FDbEIsd0ZBQXdGLENBQUM7QUFFM0Ysb0ZBQW9GO0FBQ3BGLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxHQUFHLENBQUM7SUFDakMscUJBQXFCO0lBQ3JCLGVBQWU7SUFDZixPQUFPO0lBQ1AsSUFBSTtJQUNKLE1BQU07SUFDTixNQUFNO0lBQ04sS0FBSztJQUNMLG9CQUFvQjtJQUNwQixtQkFBbUI7SUFDbkIsbUJBQW1CO0lBQ25CLGlCQUFpQjtJQUNqQixNQUFNO0lBQ04sZUFBZTtJQUNmLFNBQVM7SUFDVCxlQUFlO0lBQ2YsTUFBTTtDQUNQLENBQUMsQ0FBQztBQUVILHNFQUFzRTtBQUN0RSxNQUFNLG1CQUFtQixHQUFHLElBQUksR0FBRyxDQUFDO0lBQ2xDLE9BQU87SUFDUCxPQUFPO0lBQ1AsVUFBVTtJQUNWLE1BQU07SUFDTixPQUFPO0lBQ1AsTUFBTTtJQUNOLEtBQUs7SUFDTCxPQUFPO0lBQ1AsU0FBUztJQUNULE9BQU87SUFDUCxLQUFLO0lBQ0wsU0FBUztJQUNULE1BQU07Q0FDUCxDQUFDLENBQUM7QUFFSDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsaUJBQWlCLENBQ3hCLFVBQXVFO0lBRXZFLElBQUksVUFBVSxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUUsQ0FBQztRQUNoQyxPQUFPLEtBQUssQ0FBQyxD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Ozs7R0FRRztBQUNILFNBQVMsb0JBQW9CLENBQUMsVUFBa0I7SUFDOUMsT0FBTyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUNoRixDQUFDO0FBRUQsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixpQkFBaUIsRUFDakIsY0FBYyxFQUNkLG9CQUFvQixFQUNwQixnQkFBZ0IsRUFDaEIsYUFBYSxFQUNiLG9CQUFvQixFQUNwQixrQkFBa0IsRUFDbEIsc0JBQXNCLEVBQ3RCLG9CQUFvQixFQUNwQixtQkFBbUIsR0FDcEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlICogYXMgRVNUcmVlIGZyb20gXCJlc3RyZWVcIjtcclxuXHJcbmltcG9ydCB0eXBlIHsgTG9jYXRlZENvbW1lbnQsIFNvdXJjZUNvbW1lbnQgfSBmcm9tIFwiLi90eXBlc1wiO1xyXG5cclxuLyoqIEFycmF5IG11dGF0b3IgbWV0aG9kcyB0aGF0IGltcGx5IG9ic2VydmFibGUgc3RhdGUgY2hhbmdlcy4gKi9cclxuY29uc3QgYXJyYXlNdXRhdGlvbk1ldGhvZHMgPSBuZXcgU2V0KFtcclxuICBcImNvcHlXaXRoaW5cIixcclxuICBcImZpbGxcIixcclxuICBcInBvcFwiLFxyXG4gIFwicHVzaFwiLFxyXG4gIFwicmV2ZXJzZVwiLFxyXG4gIFwic2hpZnRcIixcclxuICBcInNvcnRcIixcclxuICBcInNwbGljZVwiLFxyXG4gIFwidW5zaGlmdFwiLFxyXG5dKTtcclxuXHJcbi8qKiBOYW1lcyB0aGF0IHVzdWFsbHkgc2lnbmFsIEFycmFuZ2Utb3JpZW50ZWQgaGVscGVyIGNhbGxzLiAqL1xyXG5jb25zdCBzZXR1cExpa2VOYW1lcyA9XHJcbiAgL14oPzphcnJhbmdlfGJ1aWxkfGNyZWF0ZXxmaXh0dXJlfGdldHxnaXZlbnxtYWtlfG1vY2t8cGFyc2V8c2VlZHxzZXR1cHxzcHl8c3R1Ynx3cml0ZSkvdTtcclxuXHJcbi8qKiBDYWxsIG5hbWVzIHRoYXQgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgdXRpbGl0eSBvcGVyYXRpb25zIGluc3RlYWQgb2YgQWN0IHN0ZXBzLiAqL1xyXG5jb25zdCB1dGlsaXR5TWV0aG9kTmFtZXMgPSBuZXcgU2V0KFtcclxuICBcImFkdmFuY2VUaW1lcnNCeVRpbWVcIixcclxuICBcImNsZWFyQWxsTW9ja3NcIixcclxuICBcImRlYnVnXCIsXHJcbiAgXCJmblwiLFxyXG4gIFwiaW5mb1wiLFxyXG4gIFwiam9pblwiLFxyXG4gIFwibG9nXCIsXHJcbiAgXCJtb2NrSW1wbGVtZW50YXRpb25cIixcclxuICBcIm1vY2tSZWplY3RlZFZhbHVlXCIsXHJcbiAgXCJtb2NrUmVzb2x2ZWRWYWx1ZVwiLFxyXG4gIFwibW9ja1JldHVyblZhbHVlXCIsXHJcbiAgXCJwdXNoXCIsXHJcbiAgXCJyZXNldEFsbE1vY2tzXCIsXHJcbiAgXCJyZXNvbHZlXCIsXHJcbiAgXCJ1c2VGYWtlVGltZXJzXCIsXHJcbiAgXCJ3YXJuXCIsXHJcbl0pO1xyXG5cclxuLyoqIE1ldGhvZCBuYW1lcyB0aGF0IHVzdWFsbHkgYmVoYXZlIGxpa2Ugdm9pZCBzaWRlLWVmZmVjdCBoZWxwZXJzLiAqL1xyXG5jb25zdCB2b2lkTGlrZU1ldGhvZE5hbWVzID0gbmV3IFNldChbXHJcbiAgXCJjbGVhclwiLFxyXG4gIFwiZGVidWdcIixcclxuICBcImRpc3BhdGNoXCIsXHJcbiAgXCJlbWl0XCIsXHJcbiAgXCJmbHVzaFwiLFxyXG4gIFwiaW5mb1wiLFxyXG4gIFwibG9nXCIsXHJcbiAgXCJwcmludFwiLFxyXG4gIFwicHVibGlzaFwiLFxyXG4gIFwicmVzZXRcIixcclxuICBcInNldFwiLFxyXG4gIFwidHJpZ2dlclwiLFxyXG4gIFwid2FyblwiLFxyXG5dKTtcclxuXHJcbi8qKlxyXG4gKiBHZXRzIGFuIGV4cHJlc3Npb24gbmFtZSB3aGVuIGl0IGNhbiBiZSByZXNvbHZlZCBzdGF0aWNhbGx5LlxyXG4gKiBAcGFyYW0gZXhwcmVzc2lvbiBJbnB1dCBleHByZXNzaW9uIHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGdldEV4cHJlc3Npb25OYW1lKGV4cHJlc3Npb24pO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGdldEV4cHJlc3Npb25OYW1lKFxyXG4gIGV4cHJlc3Npb246IEVTVHJlZS5FeHByZXNzaW9uIHwgRVNUcmVlLlByaXZhdGVJZGVudGlmaWVyIHwgRVNUcmVlLlN1cGVyLFxyXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gIGlmIChleHByZXNzaW9uLnR5cGUgPT09IFwiU3VwZXJcIikge1xyXG4gICAgcmV0dXJuIHZvaWQgMDtcclxuICB9XHJcblxyXG4gIGlmIChleHByZXNzaW9uLnR5cGUgPT09IFwiSWRlbnRpZmllclwiKSB7XHJcbiAgICByZXR1cm4gZXhwcmVzc2lvbi5uYW1lO1xyXG4gIH1cclxuXHJcbiAgaWYgKFxyXG4gICAgZXhwcmVzc2lvbi50eXBlID09PSBcIk1lbWJlckV4cHJlc3Npb25cIiAmJlxyXG4gICAgZXhwcmVzc2lvbi5wcm9wZXJ0eS50eXBlID09PSBcIklkZW50aWZpZXJcIlxyXG4gICkge1xyXG4gICAgcmV0dXJuIGV4cHJlc3Npb24ucHJvcGVydHkubmFtZTtcclxuICB9XHJcblxyXG4gIHJldHVybiB2b2lkIDA7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZXRzIGEgY2FsbGVlIG5hbWUgZm9yIGEgY2FsbCBvciBjb25zdHJ1Y3Rpb24gZXhwcmVzc2lvbi5cclxuICogQHBhcmFtIGV4cHJlc3Npb24gSW5wdXQgZXhwcmVzc2lvbiB2YWx1ZS5cclxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBnZXRJbnZva2VkTmFtZShleHByZXNzaW9uKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBnZXRJbnZva2VkTmFtZShcclxuICBleHByZXNzaW9uOiBFU1RyZWUuQ2FsbEV4cHJlc3Npb24gfCBFU1RyZWUuTmV3RXhwcmVzc2lvbixcclxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICByZXR1cm4gZ2V0RXhwcmVzc2lvbk5hbWUoZXhwcmVzc2lvbi5jYWxsZWUpO1xyXG59XHJcblxyXG4vKipcclxuICogU3BsaXRzIGFuIGlkZW50aWZpZXIgaW50byBsb3dlcmNhc2Ugd29yZCB0b2tlbnMuXHJcbiAqIEBwYXJhbSBpZGVudGlmaWVyIElucHV0IGlkZW50aWZpZXIgdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogZ2V0TmFtZVdvcmRzKFwic2NoZWR1bGVBbmRGbHVzaFwiKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBnZXROYW1lV29yZHMoaWRlbnRpZmllcjogc3RyaW5nKTogc3RyaW5nW10ge1xyXG4gIHJldHVybiBpZGVudGlmaWVyXHJcbiAgICAuc3BsaXQoLyg/PVtBLVpdKXxbXy1dL3UpXHJcbiAgICAubWFwKChzZWdtZW50KSA9PiBzZWdtZW50LnRvTG93ZXJDYXNlKCkpXHJcbiAgICAuZmlsdGVyKChzZWdtZW50KSA9PiBzZWdtZW50Lmxlbmd0aCA+IDApO1xyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2tzIHdoZXRoZXIgYW4gZXhwcmVzc2lvbiBpcyBjYWxsYWJsZS5cclxuICogQHBhcmFtIGV4cHJlc3Npb24gSW5wdXQgZXhwcmVzc2lvbiB2YWx1ZS5cclxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBpc0NhbGxhYmxlRXhwcmVzc2lvbihleHByZXNzaW9uKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBpc0NhbGxhYmxlRXhwcmVzc2lvbihcclxuICBleHByZXNzaW9uOiBFU1RyZWUuRXhwcmVzc2lvbiB8IHVuZGVmaW5lZCxcclxuKTogZXhwcmVzc2lvbiBpcyBFU1RyZWUuQ2FsbEV4cHJlc3Npb24gfCBFU1RyZWUuTmV3RXhwcmVzc2lvbiB7XHJcbiAgcmV0dXJuIChcclxuICAgIGV4cHJlc3Npb24/LnR5cGUgPT09IFwiQ2FsbEV4cHJlc3Npb25cIiB8fFxyXG4gICAgZXhwcmVzc2lvbj8udHlwZSA9PT0gXCJOZXdFeHByZXNzaW9uXCJcclxuICApO1xyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2tzIHdoZXRoZXIgYSBjb21tZW50IGhhcyBsb2NhdGlvbiBtZXRhZGF0YS5cclxuICogQHBhcmFtIGNvbW1lbnQgSW5wdXQgY29tbWVudCB2YWx1ZS5cclxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBpc0xvY2F0ZWRDb21tZW50KGNvbW1lbnQpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGlzTG9jYXRlZENvbW1lbnQoY29tbWVudDogU291cmNlQ29tbWVudCk6IGNvbW1lbnQgaXMgTG9jYXRlZENvbW1lbnQge1xyXG4gIHJldHVybiAoXHJcbiAgICBjb21tZW50LmxvYyAhPT0gbnVsbCAmJiBjb21tZW50LmxvYyAhPT0gdm9pZCAwICYmIGNvbW1lbnQucmFuZ2UgIT09IHZvaWQgMFxyXG4gICk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDaGVja3Mgd2hldGhlciBhIHJhbmdlIGlzIGZ1bGx5IGNvbnRhaW5lZCB3aXRoaW4gYW5vdGhlciByYW5nZS5cclxuICogQHBhcmFtIHJhbmdlIElucHV0IHJhbmdlIHZhbHVlLlxyXG4gKiBAcGFyYW0gY29udGFpbmVyIElucHV0IGNvbnRhaW5lciB2YWx1ZS5cclxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBpc1JhbmdlV2l0aGluKHJhbmdlLCBjb250YWluZXIpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGlzUmFuZ2VXaXRoaW4oXHJcbiAgcmFuZ2U6IFtudW1iZXIsIG51bWJlcl0sXHJcbiAgY29udGFpbmVyOiBbbnVtYmVyLCBudW1iZXJdLFxyXG4pOiBib29sZWFuIHtcclxuICByZXR1cm4gcmFuZ2VbMF0gPj0gY29udGFpbmVyWzBdICYmIHJhbmdlWzFdIDw9IGNvbnRhaW5lclsxXTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENoZWNrcyB3aGV0aGVyIGEgY29uc3RydWN0b3IgY2FsbCBzaG91bGQgYmUgdHJlYXRlZCBhcyBzZXR1cC5cclxuICogQHBhcmFtIGV4cHJlc3Npb24gSW5wdXQgZXhwcmVzc2lvbiB2YWx1ZS5cclxuICogQHBhcmFtIGNhbGxlZU5hbWUgSW5wdXQgY2FsbGVlTmFtZSB2YWx1ZS5cclxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBpc1V0aWxpdHlDb25zdHJ1Y3RvcihleHByZXNzaW9uLCBcIk1hcFwiKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBpc1V0aWxpdHlDb25zdHJ1Y3RvcihcclxuICBleHByZXNzaW9uOiBFU1RyZWUuQ2FsbEV4cHJlc3Npb24gfCBFU1RyZWUuTmV3RXhwcmVzc2lvbixcclxuICBjYWxsZWVOYW1lOiBzdHJpbmcsXHJcbik6IGJvb2xlYW4ge1xyXG4gIHJldHVybiAoXHJcbiAgICBleHByZXNzaW9uLnR5cGUgPT09IFwiTmV3RXhwcmVzc2lvblwiICYmXHJcbiAgICAoY2FsbGVlTmFtZSA9PT0gXCJFcnJvclwiIHx8XHJcbiAgICAgIGNhbGxlZU5hbWUgPT09IFwiTWFwXCIgfHxcclxuICAgICAgY2FsbGVlTmFtZSA9PT0gXCJTZXRcIiB8fFxyXG4gICAgICBjYWxsZWVOYW1lID09PSBcIlNvdXJjZUNvZGVcIiB8fFxyXG4gICAgICBjYWxsZWVOYW1lID09PSBcIkVTTGludFwiIHx8XHJcbiAgICAgIGNhbGxlZU5hbWUgPT09IFwiV2Vha01hcFwiIHx8XHJcbiAgICAgIGNhbGxlZU5hbWUgPT09IFwiV2Vha1NldFwiKVxyXG4gICk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDaGVja3Mgd2hldGhlciBhIGNhbGxlZSBuYW1lIGxvb2tzIHV0aWxpdHktbGlrZS5cclxuICogQHBhcmFtIGNhbGxlZU5hbWUgSW5wdXQgY2FsbGVlTmFtZSB2YWx1ZS5cclxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBpc1V0aWxpdHlOYW1lZENhbGwoXCJzZXR1cEZpeHR1cmVcIik7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gaXNVdGlsaXR5TmFtZWRDYWxsKGNhbGxlZU5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiB1dGlsaXR5TWV0aG9kTmFtZXMuaGFzKGNhbGxlZU5hbWUpIHx8IHNldHVwTGlrZU5hbWVzLnRlc3QoY2FsbGVlTmFtZSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDaGVja3Mgd2hldGhlciBhIGNhbGwgdXNlcyBhIHV0aWxpdHkgbmFtZXNwYWNlLlxyXG4gKiBAcGFyYW0gZXhwcmVzc2lvbiBJbnB1dCBleHByZXNzaW9uIHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGlzVXRpbGl0eU5hbWVzcGFjZUNhbGwoZXhwcmVzc2lvbik7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gaXNVdGlsaXR5TmFtZXNwYWNlQ2FsbChcclxuICBleHByZXNzaW9uOiBFU1RyZWUuQ2FsbEV4cHJlc3Npb24gfCBFU1RyZWUuTmV3RXhwcmVzc2lvbixcclxuKTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuIChcclxuICAgIGV4cHJlc3Npb24uY2FsbGVlLnR5cGUgPT09IFwiTWVtYmVyRXhwcmVzc2lvblwiICYmXHJcbiAgICBleHByZXNzaW9uLmNhbGxlZS5vYmplY3QudHlwZSA9PT0gXCJJZGVudGlmaWVyXCIgJiZcclxuICAgIFtcImNvbnNvbGVcIiwgXCJ2aVwiXS5pbmNsdWRlcyhleHByZXNzaW9uLmNhbGxlZS5vYmplY3QubmFtZSlcclxuICApO1xyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2tzIHdoZXRoZXIgYSBjYWxsIG5hbWUgaXMgYnVpbHQgZnJvbSB2b2lkLWxpa2UgdmVyYiB0b2tlbnMuXHJcbiAqIEBwYXJhbSBjYWxsZWVOYW1lIElucHV0IGNhbGxlZU5hbWUgdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogaXNWb2lkTGlrZU1ldGhvZE5hbWUoXCJzY2hlZHVsZUFuZEZsdXNoXCIpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGlzVm9pZExpa2VNZXRob2ROYW1lKGNhbGxlZU5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiBnZXROYW1lV29yZHMoY2FsbGVlTmFtZSkuc29tZSgod29yZCkgPT4gdm9pZExpa2VNZXRob2ROYW1lcy5oYXMod29yZCkpO1xyXG59XHJcblxyXG5leHBvcnQge1xyXG4gIGFycmF5TXV0YXRpb25NZXRob2RzLFxyXG4gIGdldEV4cHJlc3Npb25OYW1lLFxyXG4gIGdldEludm9rZWROYW1lLFxyXG4gIGlzQ2FsbGFibGVFeHByZXNzaW9uLFxyXG4gIGlzTG9jYXRlZENvbW1lbnQsXHJcbiAgaXNSYW5nZVdpdGhpbixcclxuICBpc1V0aWxpdHlDb25zdHJ1Y3RvcixcclxuICBpc1V0aWxpdHlOYW1lZENhbGwsXHJcbiAgaXNVdGlsaXR5TmFtZXNwYWNlQ2FsbCxcclxuICBpc1ZvaWRMaWtlTWV0aG9kTmFtZSxcclxuICB2b2lkTGlrZU1ldGhvZE5hbWVzLFxyXG59O1xyXG4iXX0=
198
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl6ZXIuc3VwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvYWFhL2FuYWx5emVyLnN1cGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLGlFQUFpRTtBQUNqRSxNQUFNLG9CQUFvQixHQUFHLElBQUksR0FBRyxDQUFDO0lBQ25DLFlBQVk7SUFDWixNQUFNO0lBQ04sS0FBSztJQUNMLE1BQU07SUFDTixTQUFTO0lBQ1QsT0FBTztJQUNQLE1BQU07SUFDTixRQUFRO0lBQ1IsU0FBUztDQUNWLENBQUMsQ0FBQztBQUVILCtEQUErRDtBQUMvRCxNQUFNLGNBQWMsR0FDbEIsd0ZBQXdGLENBQUM7QUFFM0Ysb0ZBQW9GO0FBQ3BGLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxHQUFHLENBQUM7SUFDakMscUJBQXFCO0lBQ3JCLGVBQWU7SUFDZixPQUFPO0lBQ1AsSUFBSTtJQUNKLE1BQU07SUFDTixNQUFNO0lBQ04sS0FBSztJQUNMLG9CQUFvQjtJQUNwQixtQkFBbUI7SUFDbkIsbUJBQW1CO0lBQ25CLGlCQUFpQjtJQUNqQixNQUFNO0lBQ04sZUFBZTtJQUNmLFNBQVM7SUFDVCxlQUFlO0lBQ2YsTUFBTTtDQUNQLENBQUMsQ0FBQztBQUVILHNFQUFzRTtBQUN0RSxNQUFNLG1CQUFtQixHQUFHLElBQUksR0FBRyxDQUFDO0lBQ2xDLE9BQU87SUFDUCxPQUFPO0lBQ1AsVUFBVTtJQUNWLE1BQU07SUFDTixPQUFPO0lBQ1AsTUFBTTtJQUNOLEtBQUs7SUFDTCxPQUFPO0lBQ1AsU0FBUztJQUNULE9BQU87SUFDUCxLQUFLO0lBQ0wsU0FBUztJQUNULE1BQU07Q0FDUCxDQUFDLENBQUM7QUFFSDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsaUJBQWlCLENBQ3hCLFVBQXVFO0lBRXZFLElBQUksVUFBVSxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUUsQ0FBQztRQUNoQyxPQUFPLEtBQUssQ0FBQyxD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LENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUNoRixDQUFDO0FBRUQsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixpQkFBaUIsRUFDakIsY0FBYyxFQUNkLG9CQUFvQixFQUNwQixnQkFBZ0IsRUFDaEIsYUFBYSxFQUNiLG9CQUFvQixFQUNwQixrQkFBa0IsRUFDbEIsc0JBQXNCLEVBQ3RCLG9CQUFvQixFQUNwQixtQkFBbUIsR0FDcEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlICogYXMgRVNUcmVlIGZyb20gXCJlc3RyZWVcIjtcclxuXHJcbmltcG9ydCB0eXBlIHsgTG9jYXRlZENvbW1lbnQsIFNvdXJjZUNvbW1lbnQgfSBmcm9tIFwiLi90eXBlc1wiO1xyXG5cclxuLyoqIEFycmF5IG11dGF0b3IgbWV0aG9kcyB0aGF0IGltcGx5IG9ic2VydmFibGUgc3RhdGUgY2hhbmdlcy4gKi9cclxuY29uc3QgYXJyYXlNdXRhdGlvbk1ldGhvZHMgPSBuZXcgU2V0KFtcclxuICBcImNvcHlXaXRoaW5cIixcclxuICBcImZpbGxcIixcclxuICBcInBvcFwiLFxyXG4gIFwicHVzaFwiLFxyXG4gIFwicmV2ZXJzZVwiLFxyXG4gIFwic2hpZnRcIixcclxuICBcInNvcnRcIixcclxuICBcInNwbGljZVwiLFxyXG4gIFwidW5zaGlmdFwiLFxyXG5dKTtcclxuXHJcbi8qKiBOYW1lcyB0aGF0IHVzdWFsbHkgc2lnbmFsIEFycmFuZ2Utb3JpZW50ZWQgaGVscGVyIGNhbGxzLiAqL1xyXG5jb25zdCBzZXR1cExpa2VOYW1lcyA9XHJcbiAgL14oPzphcnJhbmdlfGJ1aWxkfGNyZWF0ZXxmaXh0dXJlfGdldHxnaXZlbnxtYWtlfG1vY2t8cGFyc2V8c2VlZHxzZXR1cHxzcHl8c3R1Ynx3cml0ZSkvdTtcclxuXHJcbi8qKiBDYWxsIG5hbWVzIHRoYXQgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgdXRpbGl0eSBvcGVyYXRpb25zIGluc3RlYWQgb2YgQWN0IHN0ZXBzLiAqL1xyXG5jb25zdCB1dGlsaXR5TWV0aG9kTmFtZXMgPSBuZXcgU2V0KFtcclxuICBcImFkdmFuY2VUaW1lcnNCeVRpbWVcIixcclxuICBcImNsZWFyQWxsTW9ja3NcIixcclxuICBcImRlYnVnXCIsXHJcbiAgXCJmblwiLFxyXG4gIFwiaW5mb1wiLFxyXG4gIFwiam9pblwiLFxyXG4gIFwibG9nXCIsXHJcbiAgXCJtb2NrSW1wbGVtZW50YXRpb25cIixcclxuICBcIm1vY2tSZWplY3RlZFZhbHVlXCIsXHJcbiAgXCJtb2NrUmVzb2x2ZWRWYWx1ZVwiLFxyXG4gIFwibW9ja1JldHVyblZhbHVlXCIsXHJcbiAgXCJwdXNoXCIsXHJcbiAgXCJyZXNldEFsbE1vY2tzXCIsXHJcbiAgXCJyZXNvbHZlXCIsXHJcbiAgXCJ1c2VGYWtlVGltZXJzXCIsXHJcbiAgXCJ3YXJuXCIsXHJcbl0pO1xyXG5cclxuLyoqIE1ldGhvZCBuYW1lcyB0aGF0IHVzdWFsbHkgYmVoYXZlIGxpa2Ugdm9pZCBzaWRlLWVmZmVjdCBoZWxwZXJzLiAqL1xyXG5jb25zdCB2b2lkTGlrZU1ldGhvZE5hbWVzID0gbmV3IFNldChbXHJcbiAgXCJjbGVhclwiLFxyXG4gIFwiZGVidWdcIixcclxuICBcImRpc3BhdGNoXCIsXHJcbiAgXCJlbWl0XCIsXHJcbiAgXCJmbHVzaFwiLFxyXG4gIFwiaW5mb1wiLFxyXG4gIFwibG9nXCIsXHJcbiAgXCJwcmludFwiLFxyXG4gIFwicHVibGlzaFwiLFxyXG4gIFwicmVzZXRcIixcclxuICBcInNldFwiLFxyXG4gIFwidHJpZ2dlclwiLFxyXG4gIFwid2FyblwiLFxyXG5dKTtcclxuXHJcbi8qKlxyXG4gKiBHZXRzIGFuIGV4cHJlc3Npb24gbmFtZSB3aGVuIGl0IGNhbiBiZSByZXNvbHZlZCBzdGF0aWNhbGx5LlxyXG4gKiBAcGFyYW0gZXhwcmVzc2lvbiBJbnB1dCBleHByZXNzaW9uIHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGdldEV4cHJlc3Npb25OYW1lKGV4cHJlc3Npb24pO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGdldEV4cHJlc3Npb25OYW1lKFxyXG4gIGV4cHJlc3Npb246IEVTVHJlZS5FeHByZXNzaW9uIHwgRVNUcmVlLlByaXZhdGVJZGVudGlmaWVyIHwgRVNUcmVlLlN1cGVyLFxyXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gIGlmIChleHByZXNzaW9uLnR5cGUgPT09IFwiU3VwZXJcIikge1xyXG4gICAgcmV0dXJuIHZvaWQgMDtcclxuICB9XHJcblxyXG4gIGlmIChleHByZXNzaW9uLnR5cGUgPT09IFwiSWRlbnRpZmllclwiKSB7XHJcbiAgICByZXR1cm4gZXhwcmVzc2lvbi5uYW1lO1xyXG4gIH1cclxuXHJcbiAgaWYgKFxyXG4gICAgZXhwcmVzc2lvbi50eXBlID09PSBcIk1lbWJlckV4cHJlc3Npb25cIiAmJlxyXG4gICAgZXhwcmVzc2lvbi5wcm9wZXJ0eS50eXBlID09PSBcIklkZW50aWZpZXJcIlxyXG4gICkge1xyXG4gICAgcmV0dXJuIGV4cHJlc3Npb24ucHJvcGVydHkubmFtZTtcclxuICB9XHJcblxyXG4gIHJldHVybiB2b2lkIDA7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZXRzIGEgY2FsbGVlIG5hbWUgZm9yIGEgY2FsbCBvciBjb25zdHJ1Y3Rpb24gZXhwcmVzc2lvbi5cclxuICogQHBhcmFtIGV4cHJlc3Npb24gSW5wdXQgZXhwcmVzc2lvbiB2YWx1ZS5cclxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBnZXRJbnZva2VkTmFtZShleHByZXNzaW9uKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBnZXRJbnZva2VkTmFtZShcclxuICBleHByZXNzaW9uOiBFU1RyZWUuQ2FsbEV4cHJlc3Npb24gfCBFU1RyZWUuTmV3RXhwcmVzc2lvbixcclxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICByZXR1cm4gZ2V0RXhwcmVzc2lvbk5hbWUoZXhwcmVzc2lvbi5jYWxsZWUpO1xyXG59XHJcblxyXG4vKipcclxuICogU3BsaXRzIGFuIGlkZW50aWZpZXIgaW50byBsb3dlcmNhc2Ugd29yZCB0b2tlbnMuXHJcbiAqIEBwYXJhbSBpZGVudGlmaWVyIElucHV0IGlkZW50aWZpZXIgdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogZ2V0TmFtZVdvcmRzKFwic2NoZWR1bGVBbmRGbHVzaFwiKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBnZXROYW1lV29yZHMoaWRlbnRpZmllcjogc3RyaW5nKTogc3RyaW5nW10ge1xyXG4gIHJldHVybiBpZGVudGlmaWVyXHJcbiAgICAuc3BsaXQoLyg/PVtBLVpdKXxbXy1dL3UpXHJcbiAgICAubWFwKChzZWdtZW50KSA9PiBzZWdtZW50LnRvTG93ZXJDYXNlKCkpXHJcbiAgICAuZmlsdGVyKChzZWdtZW50KSA9PiBzZWdtZW50Lmxlbmd0aCA+IDApO1xyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2tzIHdoZXRoZXIgYW4gZXhwcmVzc2lvbiBpcyBjYWxsYWJsZS5cclxuICogQHBhcmFtIGV4cHJlc3Npb24gSW5wdXQgZXhwcmVzc2lvbiB2YWx1ZS5cclxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBpc0NhbGxhYmxlRXhwcmVzc2lvbihleHByZXNzaW9uKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBpc0NhbGxhYmxlRXhwcmVzc2lvbihcclxuICBleHByZXNzaW9uOiBFU1RyZWUuRXhwcmVzc2lvbiB8IHVuZGVmaW5lZCxcclxuKTogZXhwcmVzc2lvbiBpcyBFU1RyZWUuQ2FsbEV4cHJlc3Npb24gfCBFU1RyZWUuTmV3RXhwcmVzc2lvbiB7XHJcbiAgcmV0dXJuIChcclxuICAgIGV4cHJlc3Npb24/LnR5cGUgPT09IFwiQ2FsbEV4cHJlc3Npb25cIiB8fFxyXG4gICAgZXhwcmVzc2lvbj8udHlwZSA9PT0gXCJOZXdFeHByZXNzaW9uXCJcclxuICApO1xyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2tzIHdoZXRoZXIgYSBjb21tZW50IGhhcyBsb2NhdGlvbiBtZXRhZGF0YS5cclxuICogQHBhcmFtIGNvbW1lbnQgSW5wdXQgY29tbWVudCB2YWx1ZS5cclxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBpc0xvY2F0ZWRDb21tZW50KGNvbW1lbnQpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGlzTG9jYXRlZENvbW1lbnQoY29tbWVudDogU291cmNlQ29tbWVudCk6IGNvbW1lbnQgaXMgTG9jYXRlZENvbW1lbnQge1xyXG4gIHJldHVybiAoXHJcbiAgICBjb21tZW50LmxvYyAhPT0gbnVsbCAmJiBjb21tZW50LmxvYyAhPT0gdm9pZCAwICYmIGNvbW1lbnQucmFuZ2UgIT09IHZvaWQgMFxyXG4gICk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDaGVja3Mgd2hldGhlciBhIHJhbmdlIGlzIGZ1bGx5IGNvbnRhaW5lZCB3aXRoaW4gYW5vdGhlciByYW5nZS5cclxuICogQHBhcmFtIHJhbmdlIElucHV0IHJhbmdlIHZhbHVlLlxyXG4gKiBAcGFyYW0gY29udGFpbmVyIElucHV0IGNvbnRhaW5lciB2YWx1ZS5cclxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBpc1JhbmdlV2l0aGluKHJhbmdlLCBjb250YWluZXIpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGlzUmFuZ2VXaXRoaW4oXHJcbiAgcmFuZ2U6IFtudW1iZXIsIG51bWJlcl0sXHJcbiAgY29udGFpbmVyOiBbbnVtYmVyLCBudW1iZXJdLFxyXG4pOiBib29sZWFuIHtcclxuICByZXR1cm4gcmFuZ2VbMF0gPj0gY29udGFpbmVyWzBdICYmIHJhbmdlWzFdIDw9IGNvbnRhaW5lclsxXTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENoZWNrcyB3aGV0aGVyIGEgY29uc3RydWN0b3IgY2FsbCBzaG91bGQgYmUgdHJlYXRlZCBhcyBzZXR1cC5cclxuICogQHBhcmFtIGV4cHJlc3Npb24gSW5wdXQgZXhwcmVzc2lvbiB2YWx1ZS5cclxuICogQHBhcmFtIGNhbGxlZU5hbWUgSW5wdXQgY2FsbGVlTmFtZSB2YWx1ZS5cclxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBpc1V0aWxpdHlDb25zdHJ1Y3RvcihleHByZXNzaW9uLCBcIk1hcFwiKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBpc1V0aWxpdHlDb25zdHJ1Y3RvcihcclxuICBleHByZXNzaW9uOiBFU1RyZWUuQ2FsbEV4cHJlc3Npb24gfCBFU1RyZWUuTmV3RXhwcmVzc2lvbixcclxuICBjYWxsZWVOYW1lOiBzdHJpbmcsXHJcbik6IGJvb2xlYW4ge1xyXG4gIHJldHVybiAoXHJcbiAgICBleHByZXNzaW9uLnR5cGUgPT09IFwiTmV3RXhwcmVzc2lvblwiICYmXHJcbiAgICBbXHJcbiAgICAgIFwiRXJyb3JcIixcclxuICAgICAgXCJFU0xpbnRcIixcclxuICAgICAgXCJNYXBcIixcclxuICAgICAgXCJTZXRcIixcclxuICAgICAgXCJTb3VyY2VDb2RlXCIsXHJcbiAgICAgIFwiV2Vha01hcFwiLFxyXG4gICAgICBcIldlYWtTZXRcIixcclxuICAgIF0uaW5jbHVkZXMoY2FsbGVlTmFtZSlcclxuICApO1xyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2tzIHdoZXRoZXIgYSBjYWxsZWUgbmFtZSBsb29rcyB1dGlsaXR5LWxpa2UuXHJcbiAqIEBwYXJhbSBjYWxsZWVOYW1lIElucHV0IGNhbGxlZU5hbWUgdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogaXNVdGlsaXR5TmFtZWRDYWxsKFwic2V0dXBGaXh0dXJlXCIpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGlzVXRpbGl0eU5hbWVkQ2FsbChjYWxsZWVOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICByZXR1cm4gdXRpbGl0eU1ldGhvZE5hbWVzLmhhcyhjYWxsZWVOYW1lKSB8fCBzZXR1cExpa2VOYW1lcy50ZXN0KGNhbGxlZU5hbWUpO1xyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2tzIHdoZXRoZXIgYSBjYWxsIHVzZXMgYSB1dGlsaXR5IG5hbWVzcGFjZS5cclxuICogQHBhcmFtIGV4cHJlc3Npb24gSW5wdXQgZXhwcmVzc2lvbiB2YWx1ZS5cclxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBpc1V0aWxpdHlOYW1lc3BhY2VDYWxsKGV4cHJlc3Npb24pO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGlzVXRpbGl0eU5hbWVzcGFjZUNhbGwoXHJcbiAgZXhwcmVzc2lvbjogRVNUcmVlLkNhbGxFeHByZXNzaW9uIHwgRVNUcmVlLk5ld0V4cHJlc3Npb24sXHJcbik6IGJvb2xlYW4ge1xyXG4gIHJldHVybiAoXHJcbiAgICBleHByZXNzaW9uLmNhbGxlZS50eXBlID09PSBcIk1lbWJlckV4cHJlc3Npb25cIiAmJlxyXG4gICAgZXhwcmVzc2lvbi5jYWxsZWUub2JqZWN0LnR5cGUgPT09IFwiSWRlbnRpZmllclwiICYmXHJcbiAgICBbXCJjb25zb2xlXCIsIFwidmlcIl0uaW5jbHVkZXMoZXhwcmVzc2lvbi5jYWxsZWUub2JqZWN0Lm5hbWUpXHJcbiAgKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENoZWNrcyB3aGV0aGVyIGEgY2FsbCBuYW1lIGlzIGJ1aWx0IGZyb20gdm9pZC1saWtlIHZlcmIgdG9rZW5zLlxyXG4gKiBAcGFyYW0gY2FsbGVlTmFtZSBJbnB1dCBjYWxsZWVOYW1lIHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGlzVm9pZExpa2VNZXRob2ROYW1lKFwic2NoZWR1bGVBbmRGbHVzaFwiKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBpc1ZvaWRMaWtlTWV0aG9kTmFtZShjYWxsZWVOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICByZXR1cm4gZ2V0TmFtZVdvcmRzKGNhbGxlZU5hbWUpLnNvbWUoKHdvcmQpID0+IHZvaWRMaWtlTWV0aG9kTmFtZXMuaGFzKHdvcmQpKTtcclxufVxyXG5cclxuZXhwb3J0IHtcclxuICBhcnJheU11dGF0aW9uTWV0aG9kcyxcclxuICBnZXRFeHByZXNzaW9uTmFtZSxcclxuICBnZXRJbnZva2VkTmFtZSxcclxuICBpc0NhbGxhYmxlRXhwcmVzc2lvbixcclxuICBpc0xvY2F0ZWRDb21tZW50LFxyXG4gIGlzUmFuZ2VXaXRoaW4sXHJcbiAgaXNVdGlsaXR5Q29uc3RydWN0b3IsXHJcbiAgaXNVdGlsaXR5TmFtZWRDYWxsLFxyXG4gIGlzVXRpbGl0eU5hbWVzcGFjZUNhbGwsXHJcbiAgaXNWb2lkTGlrZU1ldGhvZE5hbWUsXHJcbiAgdm9pZExpa2VNZXRob2ROYW1lcyxcclxufTtcclxuIl19
@@ -1 +1 @@
1
- {"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/assert-actual-expected-names/rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AA4KnC,qFAAqF;AACrF,QAAA,MAAM,6BAA6B,EAAE,IAAI,CAAC,UA0CzC,CAAC;AAEF,OAAO,EAAE,6BAA6B,EAAE,CAAC"}
1
+ {"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/assert-actual-expected-names/rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AA4KnC,qFAAqF;AACrF,QAAA,MAAM,6BAA6B,EAAE,IAAI,CAAC,UAyCzC,CAAC;AAEF,OAAO,EAAE,6BAA6B,EAAE,CAAC"}
@@ -101,29 +101,27 @@ const getComparisonDeclaredIdentifiers = (analysis) => {
101
101
  };
102
102
  /** Enforces actual/expected-style prefixes for assert-phase comparison variables. */
103
103
  const assertActualExpectedNamesRule = {
104
- create(context) {
105
- return {
106
- CallExpression(node) {
107
- const analysis = analyzeTestBlock(context, node);
108
- if (analysis === void 0) {
109
- return;
110
- }
111
- const declaredIdentifiers = getComparisonDeclaredIdentifiers(analysis);
112
- const reportedNames = new Set();
113
- for (const statement of analysis.statements) {
114
- if (statement.phases.includes("Assert") &&
115
- hasAssertion(statement.node)) {
116
- reportAssertionPrefixes({
117
- assertionNode: statement.node,
118
- context,
119
- declaredIdentifiers,
120
- reportedNames,
121
- });
122
- }
104
+ create: (context) => ({
105
+ CallExpression(node) {
106
+ const analysis = analyzeTestBlock(context, node);
107
+ if (analysis === void 0) {
108
+ return;
109
+ }
110
+ const declaredIdentifiers = getComparisonDeclaredIdentifiers(analysis);
111
+ const reportedNames = new Set();
112
+ for (const statement of analysis.statements) {
113
+ if (statement.phases.includes("Assert") &&
114
+ hasAssertion(statement.node)) {
115
+ reportAssertionPrefixes({
116
+ assertionNode: statement.node,
117
+ context,
118
+ declaredIdentifiers,
119
+ reportedNames,
120
+ });
123
121
  }
124
- },
125
- };
126
- },
122
+ }
123
+ },
124
+ }),
127
125
  meta: {
128
126
  docs: {
129
127
  description: "Require Assert-phase comparison variables to use actual*/expected* prefixes.",
@@ -138,4 +136,4 @@ const assertActualExpectedNamesRule = {
138
136
  },
139
137
  };
140
138
  export { assertActualExpectedNamesRule };
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vdGVzdGluZy9hc3NlcnQtYWN0dWFsLWV4cGVjdGVkLW5hbWVzL3J1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUNMLDRCQUE0QixFQUM1Qix1QkFBdUIsRUFDdkIsWUFBWSxFQUNaLFVBQVUsR0FDWCxNQUFNLG9DQUFvQyxDQUFDO0FBc0M1Qzs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLGtCQUFrQixHQUFHLENBQUMsTUFBdUIsRUFBRSxJQUFZLEVBQVUsRUFBRSxDQUMzRSxHQUFHLE1BQU0sSUFBSSxJQUFJLEVBQUUsQ0FBQztBQUV0Qjs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsTUFBTSx5QkFBeUIsR0FBRyxDQUNoQyxLQUFxQyxFQUMvQixFQUFFO0lBQ1IsTUFBTSxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxHQUFHLEtBQUssQ0FBQztJQUU1RSxNQUFNLGtCQUFrQixHQUN0QixJQUFJLEtBQUssS0FBSyxDQUFDLElBQUksVUFBVSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUM7UUFDekMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUNSLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEMsSUFBSSxrQkFBa0IsS0FBSyxLQUFLLENBQUMsSUFBSSxJQUFJLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNyRCxPQUFPO0lBQ1QsQ0FBQztJQUVELE1BQU0sZUFBZSxHQUFHLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN6RCxJQUFJLGFBQWEsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztRQUN2QyxPQUFPO0lB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QzBCLENBQUM7SUFDaEMsQ0FBQztJQUNELElBQUksRUFBRTtRQUNKLElBQUksRUFBRTtZQUNKLFdBQVcsRUFDVCw4RUFBOEU7WUFDaEYsV0FBVyxFQUFFLEtBQUs7WUFDbEIsR0FBRyxFQUFFLCtGQUErRjtTQUNyRztRQUNELFFBQVEsRUFBRTtZQUNSLGFBQWEsRUFDWCwwRkFBMEY7U0FDN0Y7UUFDRCxNQUFNLEVBQUUsRUFBRTtRQUNWLElBQUksRUFBRSxZQUFZO0tBQ25CO0NBQ0YsQ0FBQztBQUVGLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSdWxlIH0gZnJvbSBcImVzbGludFwiO1xuaW1wb3J0IHR5cGUgKiBhcyBFU1RyZWUgZnJvbSBcImVzdHJlZVwiO1xuXG5pbXBvcnQgeyBhbmFseXplVGVzdEJsb2NrIH0gZnJvbSBcIi4uL2FhYS9hbmFseXplci5hbmFseXNpc1wiO1xuaW1wb3J0IHtcbiAgZ2V0QXNzZXJ0RGVjbGFyZWRJZGVudGlmaWVycyxcbiAgZ2V0QXNzZXJ0aW9uSWRlbnRpZmllcnMsXG4gIGhhc0Fzc2VydGlvbixcbiAgdXNlc1ByZWZpeCxcbn0gZnJvbSBcIi4uL2FhYS9hbmFseXplci5hc3NlcnRpb25zLmhlbHBlcnNcIjtcblxuLyoqIFN1cHBvcnRlZCBhc3NlcnRpb24gdmFyaWFibGUgcHJlZml4ZXMgZW5mb3JjZWQgYnkgdGhpcyBydWxlLiAqL1xudHlwZSBBc3NlcnRpb25QcmVmaXggPSBcImFjdHVhbFwiIHwgXCJleHBlY3RlZFwiO1xuXG4vKiogQ29tcG9zaXRlIGlucHV0IGZvciByZXBvcnRpbmcgb25lIG1pc3NpbmcgYXNzZXJ0aW9uIHByZWZpeC4gKi9cbmludGVyZmFjZSBSZXBvcnRBc3NlcnRpb25JZGVudGlmaWVySW5wdXQge1xuICAvKiogQWN0aXZlIEVTTGludCBydWxlIGNvbnRleHQuICovXG4gIGNvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQ7XG5cbiAgLyoqIERlY2xhcmVkIGlkZW50aWZpZXJzIGNvbGxlY3RlZCBmcm9tIEFjdC9Bc3NlcnQgcGhhc2VzLiAqL1xuICBkZWNsYXJlZElkZW50aWZpZXJzOiBSZXR1cm5UeXBlPHR5cGVvZiBnZXRBc3NlcnREZWNsYXJlZElkZW50aWZpZXJzPjtcblxuICAvKiogSWRlbnRpZmllciBuYW1lIGV4dHJhY3RlZCBmcm9tIHRoZSBhc3NlcnRpb24uICovXG4gIG5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKiogUmVxdWlyZWQgcHJlZml4IGZvciB0aGUgaWRlbnRpZmllci4gKi9cbiAgcHJlZml4OiBBc3NlcnRpb25QcmVmaXg7XG5cbiAgLyoqIFNldCBvZiBhbHJlYWR5IHJlcG9ydGVkIGlkZW50aWZpZXIga2V5cy4gKi9cbiAgcmVwb3J0ZWROYW1lczogU2V0PHN0cmluZz47XG59XG5cbi8qKiBDb21wb3NpdGUgaW5wdXQgZm9yIHJlcG9ydGluZyBtaXNzaW5nIHByZWZpeGVzIGluIG9uZSBhc3NlcnRpb24uICovXG5pbnRlcmZhY2UgUmVwb3J0QXNzZXJ0aW9uUHJlZml4ZXNJbnB1dCB7XG4gIC8qKiBBc3NlcnRpb24gbm9kZSB3aG9zZSBpZGVudGlmaWVycyBzaG91bGQgYmUgaW5zcGVjdGVkLiAqL1xuICBhc3NlcnRpb25Ob2RlOiBFU1RyZWUuU3RhdGVtZW50O1xuXG4gIC8qKiBBY3RpdmUgRVNMaW50IHJ1bGUgY29udGV4dC4gKi9cbiAgY29udGV4dDogUnVsZS5SdWxlQ29udGV4dDtcblxuICAvKiogRGVjbGFyZWQgaWRlbnRpZmllcnMgY29sbGVjdGVkIGZyb20gQWN0L0Fzc2VydCBwaGFzZXMuICovXG4gIGRlY2xhcmVkSWRlbnRpZmllcnM6IFJldHVyblR5cGU8dHlwZW9mIGdldEFzc2VydERlY2xhcmVkSWRlbnRpZmllcnM+O1xuXG4gIC8qKiBTZXQgb2YgYWxyZWFkeSByZXBvcnRlZCBpZGVudGlmaWVyIGtleXMuICovXG4gIHJlcG9ydGVkTmFtZXM6IFNldDxzdHJpbmc+O1xufVxuXG4vKipcbiAqIEJ1aWxkcyB0aGUgZGUtZHVwbGljYXRpb24ga2V5IGZvciBhIHJlcG9ydGVkIGFzc2VydGlvbiBpZGVudGlmaWVyLlxuICogQHBhcmFtIHByZWZpeCBQcmVmaXggdXNlZCBmb3IgdGhlIGFzc2VydGlvbiBpZGVudGlmaWVyLlxuICogQHBhcmFtIG5hbWUgSWRlbnRpZmllciBuYW1lIHJlcG9ydGVkIGJ5IHRoZSBydWxlLlxuICogQHJldHVybnMgU3RhYmxlIGRlLWR1cGxpY2F0aW9uIGtleSBmb3IgdGhlIGlkZW50aWZpZXIuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qga2V5ID0gZ2V0UmVwb3J0ZWROYW1lS2V5KFwiYWN0dWFsXCIsIFwidmFsdWVcIik7XG4gKiBgYGBcbiAqL1xuY29uc3QgZ2V0UmVwb3J0ZWROYW1lS2V5ID0gKHByZWZpeDogQXNzZXJ0aW9uUHJlZml4LCBuYW1lOiBzdHJpbmcpOiBzdHJpbmcgPT5cbiAgYCR7cHJlZml4fToke25hbWV9YDtcblxuLyoqXG4gKiBSZXBvcnRzIGEgbWlzc2luZyBhc3NlcnRpb24gcHJlZml4IHdoZW4gdGhlIGRlY2xhcmVkIGlkZW50aWZpZXIgaXMgZWxpZ2libGUuXG4gKiBAcGFyYW0gaW5wdXQgQ29tcG9zaXRlIHJlcG9ydGluZyBpbnB1dCBmb3Igb25lIGlkZW50aWZpZXIuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogcmVwb3J0QXNzZXJ0aW9uSWRlbnRpZmllcih7XG4gKiAgIGNvbnRleHQ6IHt9IGFzIFJ1bGUuUnVsZUNvbnRleHQsXG4gKiAgIGRlY2xhcmVkSWRlbnRpZmllcnM6IG5ldyBNYXAoKSxcbiAqICAgbmFtZTogXCJ2YWx1ZVwiLFxuICogICBwcmVmaXg6IFwiYWN0dWFsXCIsXG4gKiAgIHJlcG9ydGVkTmFtZXM6IG5ldyBTZXQoKSxcbiAqIH0pO1xuICogYGBgXG4gKi9cbmNvbnN0IHJlcG9ydEFzc2VydGlvbklkZW50aWZpZXIgPSAoXG4gIGlucHV0OiBSZXBvcnRBc3NlcnRpb25JZGVudGlmaWVySW5wdXQsXG4pOiB2b2lkID0+IHtcbiAgY29uc3QgeyBjb250ZXh0LCBkZWNsYXJlZElkZW50aWZpZXJzLCBuYW1lLCBwcmVmaXgsIHJlcG9ydGVkTmFtZXMgfSA9IGlucHV0O1xuXG4gIGNvbnN0IGRlY2xhcmVkSWRlbnRpZmllciA9XG4gICAgbmFtZSA9PT0gdm9pZCAwIHx8IHVzZXNQcmVmaXgobmFtZSwgcHJlZml4KVxuICAgICAgPyB2b2lkIDBcbiAgICAgIDogZGVjbGFyZWRJZGVudGlmaWVycy5nZXQobmFtZSk7XG4gIGlmIChkZWNsYXJlZElkZW50aWZpZXIgPT09IHZvaWQgMCB8fCBuYW1lID09PSB2b2lkIDApIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCByZXBvcnRlZE5hbWVLZXkgPSBnZXRSZXBvcnRlZE5hbWVLZXkocHJlZml4LCBuYW1lKTtcbiAgaWYgKHJlcG9ydGVkTmFtZXMuaGFzKHJlcG9ydGVkTmFtZUtleSkpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICByZXBvcnRlZE5hbWVzLmFkZChyZXBvcnRlZE5hbWVLZXkpO1xuICBjb250ZXh0LnJlcG9ydCh7XG4gICAgZGF0YTogeyBuYW1lLCBwcmVmaXggfSxcbiAgICBtZXNzYWdlSWQ6IFwibWlzc2luZ1ByZWZpeFwiLFxuICAgIG5vZGU6IGRlY2xhcmVkSWRlbnRpZmllcixcbiAgfSk7XG59O1xuXG4vKipcbiAqIFJlcG9ydHMgbWlzc2luZyBwcmVmaXhlcyBmb3IgdGhlIGFjdHVhbCBhbmQgZXhwZWN0ZWQgaWRlbnRpZmllcnMgaW4gb25lIGFzc2VydGlvbi5cbiAqIEBwYXJhbSBpbnB1dCBDb21wb3NpdGUgcmVwb3J0aW5nIGlucHV0IGZvciBvbmUgYXNzZXJ0aW9uLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIHJlcG9ydEFzc2VydGlvblByZWZpeGVzKHtcbiAqICAgYXNzZXJ0aW9uTm9kZToge30gYXMgRVNUcmVlLlN0YXRlbWVudCxcbiAqICAgY29udGV4dDoge30gYXMgUnVsZS5SdWxlQ29udGV4dCxcbiAqICAgZGVjbGFyZWRJZGVudGlmaWVyczogbmV3IE1hcCgpLFxuICogICByZXBvcnRlZE5hbWVzOiBuZXcgU2V0KCksXG4gKiB9KTtcbiAqIGBgYFxuICovXG5jb25zdCByZXBvcnRBc3NlcnRpb25QcmVmaXhlcyA9IChpbnB1dDogUmVwb3J0QXNzZXJ0aW9uUHJlZml4ZXNJbnB1dCk6IHZvaWQgPT4ge1xuICBjb25zdCB7IGFzc2VydGlvbk5vZGUsIGNvbnRleHQsIGRlY2xhcmVkSWRlbnRpZmllcnMsIHJlcG9ydGVkTmFtZXMgfSA9IGlucHV0O1xuICBjb25zdCB7IGFjdHVhbCwgZXhwZWN0ZWQgfSA9IGdldEFzc2VydGlvbklkZW50aWZpZXJzKGFzc2VydGlvbk5vZGUpO1xuXG4gIHJlcG9ydEFzc2VydGlvbklkZW50aWZpZXIoe1xuICAgIGNvbnRleHQsXG4gICAgZGVjbGFyZWRJZGVudGlmaWVycyxcbiAgICBuYW1lOiBhY3R1YWwsXG4gICAgcHJlZml4OiBcImFjdHVhbFwiLFxuICAgIHJlcG9ydGVkTmFtZXMsXG4gIH0pO1xuICByZXBvcnRBc3NlcnRpb25JZGVudGlmaWVyKHtcbiAgICBjb250ZXh0LFxuICAgIGRlY2xhcmVkSWRlbnRpZmllcnMsXG4gICAgbmFtZTogZXhwZWN0ZWQsXG4gICAgcHJlZml4OiBcImV4cGVjdGVkXCIsXG4gICAgcmVwb3J0ZWROYW1lcyxcbiAgfSk7XG59O1xuXG4vKipcbiAqIENvbGxlY3RzIGRlY2xhcmF0aW9uIGlkZW50aWZpZXJzIGZyb20gQWN0IGFuZCBBc3NlcnQgcGhhc2VzLlxuICogQHBhcmFtIGFuYWx5c2lzIFBhcnNlZCBBQUEgdGVzdC1ibG9jayBhbmFseXNpcy5cbiAqIEByZXR1cm5zIERlY2xhcmVkIGlkZW50aWZpZXJzIGF2YWlsYWJsZSBmb3IgYXNzZXJ0aW9uIG5hbWluZyBjaGVja3MuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgaWRlbnRpZmllcnMgPSBnZXRDb21wYXJpc29uRGVjbGFyZWRJZGVudGlmaWVycyhhbmFseXNpcyk7XG4gKiBgYGBcbiAqL1xuY29uc3QgZ2V0Q29tcGFyaXNvbkRlY2xhcmVkSWRlbnRpZmllcnMgPSAoXG4gIGFuYWx5c2lzOiBOb25OdWxsYWJsZTxSZXR1cm5UeXBlPHR5cGVvZiBhbmFseXplVGVzdEJsb2NrPj4sXG4pOiBSZXR1cm5UeXBlPHR5cGVvZiBnZXRBc3NlcnREZWNsYXJlZElkZW50aWZpZXJzPiA9PiB7XG4gIGNvbnN0IGRlY2xhcmVkSWRlbnRpZmllcnMgPSBuZXcgTWFwKGdldEFzc2VydERlY2xhcmVkSWRlbnRpZmllcnMoYW5hbHlzaXMpKTtcblxuICBmb3IgKGNvbnN0IHN0YXRlbWVudCBvZiBhbmFseXNpcy5zdGF0ZW1lbnRzKSB7XG4gICAgaWYgKFxuICAgICAgIXN0YXRlbWVudC5waGFzZXMuaW5jbHVkZXMoXCJBY3RcIikgfHxcbiAgICAgIHN0YXRlbWVudC5ub2RlLnR5cGUgIT09IFwiVmFyaWFibGVEZWNsYXJhdGlvblwiXG4gICAgKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGRlY2xhcmF0aW9uIG9mIHN0YXRlbWVudC5ub2RlLmRlY2xhcmF0aW9ucykge1xuICAgICAgaWYgKGRlY2xhcmF0aW9uLmlkLnR5cGUgPT09IFwiSWRlbnRpZmllclwiKSB7XG4gICAgICAgIGRlY2xhcmVkSWRlbnRpZmllcnMuc2V0KFxuICAgICAgICAgIGRlY2xhcmF0aW9uLmlkLm5hbWUsXG4gICAgICAgICAgZGVjbGFyYXRpb24uaWQgYXMgdW5rbm93biBhcyBSZXR1cm5UeXBlPFxuICAgICAgICAgICAgdHlwZW9mIGdldEFzc2VydERlY2xhcmVkSWRlbnRpZmllcnNcbiAgICAgICAgICA+IGV4dGVuZHMgTWFwPHN0cmluZywgaW5mZXIgVD5cbiAgICAgICAgICAgID8gVFxuICAgICAgICAgICAgOiBuZXZlcixcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gZGVjbGFyZWRJZGVudGlmaWVycztcbn07XG5cbi8qKiBFbmZvcmNlcyBhY3R1YWwvZXhwZWN0ZWQtc3R5bGUgcHJlZml4ZXMgZm9yIGFzc2VydC1waGFzZSBjb21wYXJpc29uIHZhcmlhYmxlcy4gKi9cbmNvbnN0IGFzc2VydEFjdHVhbEV4cGVjdGVkTmFtZXNSdWxlOiBSdWxlLlJ1bGVNb2R1bGUgPSB7XG4gIGNyZWF0ZShjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0KTogUnVsZS5SdWxlTGlzdGVuZXIge1xuICAgIHJldHVybiB7XG4gICAgICBDYWxsRXhwcmVzc2lvbihub2RlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGFuYWx5c2lzID0gYW5hbHl6ZVRlc3RCbG9jayhjb250ZXh0LCBub2RlKTtcbiAgICAgICAgaWYgKGFuYWx5c2lzID09PSB2b2lkIDApIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkZWNsYXJlZElkZW50aWZpZXJzID0gZ2V0Q29tcGFyaXNvbkRlY2xhcmVkSWRlbnRpZmllcnMoYW5hbHlzaXMpO1xuICAgICAgICBjb25zdCByZXBvcnRlZE5hbWVzID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgICAgICAgZm9yIChjb25zdCBzdGF0ZW1lbnQgb2YgYW5hbHlzaXMuc3RhdGVtZW50cykge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHN0YXRlbWVudC5waGFzZXMuaW5jbHVkZXMoXCJBc3NlcnRcIikgJiZcbiAgICAgICAgICAgIGhhc0Fzc2VydGlvbihzdGF0ZW1lbnQubm9kZSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHJlcG9ydEFzc2VydGlvblByZWZpeGVzKHtcbiAgICAgICAgICAgICAgYXNzZXJ0aW9uTm9kZTogc3RhdGVtZW50Lm5vZGUsXG4gICAgICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgICAgIGRlY2xhcmVkSWRlbnRpZmllcnMsXG4gICAgICAgICAgICAgIHJlcG9ydGVkTmFtZXMsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSBzYXRpc2ZpZXMgUnVsZS5SdWxlTGlzdGVuZXI7XG4gIH0sXG4gIG1ldGE6IHtcbiAgICBkb2NzOiB7XG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgXCJSZXF1aXJlIEFzc2VydC1waGFzZSBjb21wYXJpc29uIHZhcmlhYmxlcyB0byB1c2UgYWN0dWFsKi9leHBlY3RlZCogcHJlZml4ZXMuXCIsXG4gICAgICByZWNvbW1lbmRlZDogZmFsc2UsXG4gICAgICB1cmw6IFwiaHR0cHM6Ly9naXRodWIuY29tL3BhcmxvdGkvZXNsaW50LXBsdWdpbi9ibG9iL21haW4vZG9jcy9ydWxlcy9hc3NlcnQtYWN0dWFsLWV4cGVjdGVkLW5hbWVzLm1kXCIsXG4gICAgfSxcbiAgICBtZXNzYWdlczoge1xuICAgICAgbWlzc2luZ1ByZWZpeDpcbiAgICAgICAgXCJSZW5hbWUgJ3t7bmFtZX19JyB0byB1c2UgdGhlICd7e3ByZWZpeH19JyBwcmVmaXggd2hlbiBjb21wYXJpbmcgdmFsdWVzIGluc2lkZSAvLyBBc3NlcnQuXCIsXG4gICAgfSxcbiAgICBzY2hlbWE6IFtdLFxuICAgIHR5cGU6IFwic3VnZ2VzdGlvblwiLFxuICB9LFxufTtcblxuZXhwb3J0IHsgYXNzZXJ0QWN0dWFsRXhwZWN0ZWROYW1lc1J1bGUgfTtcbiJdfQ==
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vdGVzdGluZy9hc3NlcnQtYWN0dWFsLWV4cGVjdGVkLW5hbWVzL3J1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUNMLDRCQUE0QixFQUM1Qix1QkFBdUIsRUFDdkIsWUFBWSxFQUNaLFVBQVUsR0FDWCxNQUFNLG9DQUFvQyxDQUFDO0FBc0M1Qzs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLGtCQUFrQixHQUFHLENBQUMsTUFBdUIsRUFBRSxJQUFZLEVBQVUsRUFBRSxDQUMzRSxHQUFHLE1BQU0sSUFBSSxJQUFJLEVBQUUsQ0FBQztBQUV0Qjs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsTUFBTSx5QkFBeUIsR0FBRyxDQUNoQyxLQUFxQyxFQUMvQixFQUFFO0lBQ1IsTUFBTSxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxHQUFHLEtBQUssQ0FBQztJQUU1RSxNQUFNLGtCQUFrQixHQUN0QixJQUFJLEtBQUssS0FBSyxDQUFDLElBQUksVUFBVSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUM7UUFDekMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUNSLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEMsSUFBSSxrQkFBa0IsS0FBSyxLQUFLLENBQUMsSUFBSSxJQUFJLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNyRCxPQUFPO0lBQ1QsQ0FBQztJQUVELE1BQU0sZUFBZSxHQUFHLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN6RCxJQUFJLGFBQWEsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztRQUN2QyxPQUFPO0lB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SCxDQUFDO0tBQ0YsQ0FBNkI7SUFDaEMsSUFBSSxFQUFFO1FBQ0osSUFBSSxFQUFFO1lBQ0osV0FBVyxFQUNULDhFQUE4RTtZQUNoRixXQUFXLEVBQUUsS0FBSztZQUNsQixHQUFHLEVBQUUsK0ZBQStGO1NBQ3JHO1FBQ0QsUUFBUSxFQUFFO1lBQ1IsYUFBYSxFQUNYLDBGQUEwRjtTQUM3RjtRQUNELE1BQU0sRUFBRSxFQUFFO1FBQ1YsSUFBSSxFQUFFLFlBQVk7S0FDbkI7Q0FDRixDQUFDO0FBRUYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tIFwiZXNsaW50XCI7XG5pbXBvcnQgdHlwZSAqIGFzIEVTVHJlZSBmcm9tIFwiZXN0cmVlXCI7XG5cbmltcG9ydCB7IGFuYWx5emVUZXN0QmxvY2sgfSBmcm9tIFwiLi4vYWFhL2FuYWx5emVyLmFuYWx5c2lzXCI7XG5pbXBvcnQge1xuICBnZXRBc3NlcnREZWNsYXJlZElkZW50aWZpZXJzLFxuICBnZXRBc3NlcnRpb25JZGVudGlmaWVycyxcbiAgaGFzQXNzZXJ0aW9uLFxuICB1c2VzUHJlZml4LFxufSBmcm9tIFwiLi4vYWFhL2FuYWx5emVyLmFzc2VydGlvbnMuaGVscGVyc1wiO1xuXG4vKiogU3VwcG9ydGVkIGFzc2VydGlvbiB2YXJpYWJsZSBwcmVmaXhlcyBlbmZvcmNlZCBieSB0aGlzIHJ1bGUuICovXG50eXBlIEFzc2VydGlvblByZWZpeCA9IFwiYWN0dWFsXCIgfCBcImV4cGVjdGVkXCI7XG5cbi8qKiBDb21wb3NpdGUgaW5wdXQgZm9yIHJlcG9ydGluZyBvbmUgbWlzc2luZyBhc3NlcnRpb24gcHJlZml4LiAqL1xuaW50ZXJmYWNlIFJlcG9ydEFzc2VydGlvbklkZW50aWZpZXJJbnB1dCB7XG4gIC8qKiBBY3RpdmUgRVNMaW50IHJ1bGUgY29udGV4dC4gKi9cbiAgY29udGV4dDogUnVsZS5SdWxlQ29udGV4dDtcblxuICAvKiogRGVjbGFyZWQgaWRlbnRpZmllcnMgY29sbGVjdGVkIGZyb20gQWN0L0Fzc2VydCBwaGFzZXMuICovXG4gIGRlY2xhcmVkSWRlbnRpZmllcnM6IFJldHVyblR5cGU8dHlwZW9mIGdldEFzc2VydERlY2xhcmVkSWRlbnRpZmllcnM+O1xuXG4gIC8qKiBJZGVudGlmaWVyIG5hbWUgZXh0cmFjdGVkIGZyb20gdGhlIGFzc2VydGlvbi4gKi9cbiAgbmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKiBSZXF1aXJlZCBwcmVmaXggZm9yIHRoZSBpZGVudGlmaWVyLiAqL1xuICBwcmVmaXg6IEFzc2VydGlvblByZWZpeDtcblxuICAvKiogU2V0IG9mIGFscmVhZHkgcmVwb3J0ZWQgaWRlbnRpZmllciBrZXlzLiAqL1xuICByZXBvcnRlZE5hbWVzOiBTZXQ8c3RyaW5nPjtcbn1cblxuLyoqIENvbXBvc2l0ZSBpbnB1dCBmb3IgcmVwb3J0aW5nIG1pc3NpbmcgcHJlZml4ZXMgaW4gb25lIGFzc2VydGlvbi4gKi9cbmludGVyZmFjZSBSZXBvcnRBc3NlcnRpb25QcmVmaXhlc0lucHV0IHtcbiAgLyoqIEFzc2VydGlvbiBub2RlIHdob3NlIGlkZW50aWZpZXJzIHNob3VsZCBiZSBpbnNwZWN0ZWQuICovXG4gIGFzc2VydGlvbk5vZGU6IEVTVHJlZS5TdGF0ZW1lbnQ7XG5cbiAgLyoqIEFjdGl2ZSBFU0xpbnQgcnVsZSBjb250ZXh0LiAqL1xuICBjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0O1xuXG4gIC8qKiBEZWNsYXJlZCBpZGVudGlmaWVycyBjb2xsZWN0ZWQgZnJvbSBBY3QvQXNzZXJ0IHBoYXNlcy4gKi9cbiAgZGVjbGFyZWRJZGVudGlmaWVyczogUmV0dXJuVHlwZTx0eXBlb2YgZ2V0QXNzZXJ0RGVjbGFyZWRJZGVudGlmaWVycz47XG5cbiAgLyoqIFNldCBvZiBhbHJlYWR5IHJlcG9ydGVkIGlkZW50aWZpZXIga2V5cy4gKi9cbiAgcmVwb3J0ZWROYW1lczogU2V0PHN0cmluZz47XG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBkZS1kdXBsaWNhdGlvbiBrZXkgZm9yIGEgcmVwb3J0ZWQgYXNzZXJ0aW9uIGlkZW50aWZpZXIuXG4gKiBAcGFyYW0gcHJlZml4IFByZWZpeCB1c2VkIGZvciB0aGUgYXNzZXJ0aW9uIGlkZW50aWZpZXIuXG4gKiBAcGFyYW0gbmFtZSBJZGVudGlmaWVyIG5hbWUgcmVwb3J0ZWQgYnkgdGhlIHJ1bGUuXG4gKiBAcmV0dXJucyBTdGFibGUgZGUtZHVwbGljYXRpb24ga2V5IGZvciB0aGUgaWRlbnRpZmllci5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBrZXkgPSBnZXRSZXBvcnRlZE5hbWVLZXkoXCJhY3R1YWxcIiwgXCJ2YWx1ZVwiKTtcbiAqIGBgYFxuICovXG5jb25zdCBnZXRSZXBvcnRlZE5hbWVLZXkgPSAocHJlZml4OiBBc3NlcnRpb25QcmVmaXgsIG5hbWU6IHN0cmluZyk6IHN0cmluZyA9PlxuICBgJHtwcmVmaXh9OiR7bmFtZX1gO1xuXG4vKipcbiAqIFJlcG9ydHMgYSBtaXNzaW5nIGFzc2VydGlvbiBwcmVmaXggd2hlbiB0aGUgZGVjbGFyZWQgaWRlbnRpZmllciBpcyBlbGlnaWJsZS5cbiAqIEBwYXJhbSBpbnB1dCBDb21wb3NpdGUgcmVwb3J0aW5nIGlucHV0IGZvciBvbmUgaWRlbnRpZmllci5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiByZXBvcnRBc3NlcnRpb25JZGVudGlmaWVyKHtcbiAqICAgY29udGV4dDoge30gYXMgUnVsZS5SdWxlQ29udGV4dCxcbiAqICAgZGVjbGFyZWRJZGVudGlmaWVyczogbmV3IE1hcCgpLFxuICogICBuYW1lOiBcInZhbHVlXCIsXG4gKiAgIHByZWZpeDogXCJhY3R1YWxcIixcbiAqICAgcmVwb3J0ZWROYW1lczogbmV3IFNldCgpLFxuICogfSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgcmVwb3J0QXNzZXJ0aW9uSWRlbnRpZmllciA9IChcbiAgaW5wdXQ6IFJlcG9ydEFzc2VydGlvbklkZW50aWZpZXJJbnB1dCxcbik6IHZvaWQgPT4ge1xuICBjb25zdCB7IGNvbnRleHQsIGRlY2xhcmVkSWRlbnRpZmllcnMsIG5hbWUsIHByZWZpeCwgcmVwb3J0ZWROYW1lcyB9ID0gaW5wdXQ7XG5cbiAgY29uc3QgZGVjbGFyZWRJZGVudGlmaWVyID1cbiAgICBuYW1lID09PSB2b2lkIDAgfHwgdXNlc1ByZWZpeChuYW1lLCBwcmVmaXgpXG4gICAgICA/IHZvaWQgMFxuICAgICAgOiBkZWNsYXJlZElkZW50aWZpZXJzLmdldChuYW1lKTtcbiAgaWYgKGRlY2xhcmVkSWRlbnRpZmllciA9PT0gdm9pZCAwIHx8IG5hbWUgPT09IHZvaWQgMCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHJlcG9ydGVkTmFtZUtleSA9IGdldFJlcG9ydGVkTmFtZUtleShwcmVmaXgsIG5hbWUpO1xuICBpZiAocmVwb3J0ZWROYW1lcy5oYXMocmVwb3J0ZWROYW1lS2V5KSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHJlcG9ydGVkTmFtZXMuYWRkKHJlcG9ydGVkTmFtZUtleSk7XG4gIGNvbnRleHQucmVwb3J0KHtcbiAgICBkYXRhOiB7IG5hbWUsIHByZWZpeCB9LFxuICAgIG1lc3NhZ2VJZDogXCJtaXNzaW5nUHJlZml4XCIsXG4gICAgbm9kZTogZGVjbGFyZWRJZGVudGlmaWVyLFxuICB9KTtcbn07XG5cbi8qKlxuICogUmVwb3J0cyBtaXNzaW5nIHByZWZpeGVzIGZvciB0aGUgYWN0dWFsIGFuZCBleHBlY3RlZCBpZGVudGlmaWVycyBpbiBvbmUgYXNzZXJ0aW9uLlxuICogQHBhcmFtIGlucHV0IENvbXBvc2l0ZSByZXBvcnRpbmcgaW5wdXQgZm9yIG9uZSBhc3NlcnRpb24uXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogcmVwb3J0QXNzZXJ0aW9uUHJlZml4ZXMoe1xuICogICBhc3NlcnRpb25Ob2RlOiB7fSBhcyBFU1RyZWUuU3RhdGVtZW50LFxuICogICBjb250ZXh0OiB7fSBhcyBSdWxlLlJ1bGVDb250ZXh0LFxuICogICBkZWNsYXJlZElkZW50aWZpZXJzOiBuZXcgTWFwKCksXG4gKiAgIHJlcG9ydGVkTmFtZXM6IG5ldyBTZXQoKSxcbiAqIH0pO1xuICogYGBgXG4gKi9cbmNvbnN0IHJlcG9ydEFzc2VydGlvblByZWZpeGVzID0gKGlucHV0OiBSZXBvcnRBc3NlcnRpb25QcmVmaXhlc0lucHV0KTogdm9pZCA9PiB7XG4gIGNvbnN0IHsgYXNzZXJ0aW9uTm9kZSwgY29udGV4dCwgZGVjbGFyZWRJZGVudGlmaWVycywgcmVwb3J0ZWROYW1lcyB9ID0gaW5wdXQ7XG4gIGNvbnN0IHsgYWN0dWFsLCBleHBlY3RlZCB9ID0gZ2V0QXNzZXJ0aW9uSWRlbnRpZmllcnMoYXNzZXJ0aW9uTm9kZSk7XG5cbiAgcmVwb3J0QXNzZXJ0aW9uSWRlbnRpZmllcih7XG4gICAgY29udGV4dCxcbiAgICBkZWNsYXJlZElkZW50aWZpZXJzLFxuICAgIG5hbWU6IGFjdHVhbCxcbiAgICBwcmVmaXg6IFwiYWN0dWFsXCIsXG4gICAgcmVwb3J0ZWROYW1lcyxcbiAgfSk7XG4gIHJlcG9ydEFzc2VydGlvbklkZW50aWZpZXIoe1xuICAgIGNvbnRleHQsXG4gICAgZGVjbGFyZWRJZGVudGlmaWVycyxcbiAgICBuYW1lOiBleHBlY3RlZCxcbiAgICBwcmVmaXg6IFwiZXhwZWN0ZWRcIixcbiAgICByZXBvcnRlZE5hbWVzLFxuICB9KTtcbn07XG5cbi8qKlxuICogQ29sbGVjdHMgZGVjbGFyYXRpb24gaWRlbnRpZmllcnMgZnJvbSBBY3QgYW5kIEFzc2VydCBwaGFzZXMuXG4gKiBAcGFyYW0gYW5hbHlzaXMgUGFyc2VkIEFBQSB0ZXN0LWJsb2NrIGFuYWx5c2lzLlxuICogQHJldHVybnMgRGVjbGFyZWQgaWRlbnRpZmllcnMgYXZhaWxhYmxlIGZvciBhc3NlcnRpb24gbmFtaW5nIGNoZWNrcy5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBpZGVudGlmaWVycyA9IGdldENvbXBhcmlzb25EZWNsYXJlZElkZW50aWZpZXJzKGFuYWx5c2lzKTtcbiAqIGBgYFxuICovXG5jb25zdCBnZXRDb21wYXJpc29uRGVjbGFyZWRJZGVudGlmaWVycyA9IChcbiAgYW5hbHlzaXM6IE5vbk51bGxhYmxlPFJldHVyblR5cGU8dHlwZW9mIGFuYWx5emVUZXN0QmxvY2s+Pixcbik6IFJldHVyblR5cGU8dHlwZW9mIGdldEFzc2VydERlY2xhcmVkSWRlbnRpZmllcnM+ID0+IHtcbiAgY29uc3QgZGVjbGFyZWRJZGVudGlmaWVycyA9IG5ldyBNYXAoZ2V0QXNzZXJ0RGVjbGFyZWRJZGVudGlmaWVycyhhbmFseXNpcykpO1xuXG4gIGZvciAoY29uc3Qgc3RhdGVtZW50IG9mIGFuYWx5c2lzLnN0YXRlbWVudHMpIHtcbiAgICBpZiAoXG4gICAgICAhc3RhdGVtZW50LnBoYXNlcy5pbmNsdWRlcyhcIkFjdFwiKSB8fFxuICAgICAgc3RhdGVtZW50Lm5vZGUudHlwZSAhPT0gXCJWYXJpYWJsZURlY2xhcmF0aW9uXCJcbiAgICApIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgZGVjbGFyYXRpb24gb2Ygc3RhdGVtZW50Lm5vZGUuZGVjbGFyYXRpb25zKSB7XG4gICAgICBpZiAoZGVjbGFyYXRpb24uaWQudHlwZSA9PT0gXCJJZGVudGlmaWVyXCIpIHtcbiAgICAgICAgZGVjbGFyZWRJZGVudGlmaWVycy5zZXQoXG4gICAgICAgICAgZGVjbGFyYXRpb24uaWQubmFtZSxcbiAgICAgICAgICBkZWNsYXJhdGlvbi5pZCBhcyB1bmtub3duIGFzIFJldHVyblR5cGU8XG4gICAgICAgICAgICB0eXBlb2YgZ2V0QXNzZXJ0RGVjbGFyZWRJZGVudGlmaWVyc1xuICAgICAgICAgID4gZXh0ZW5kcyBNYXA8c3RyaW5nLCBpbmZlciBUPlxuICAgICAgICAgICAgPyBUXG4gICAgICAgICAgICA6IG5ldmVyLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkZWNsYXJlZElkZW50aWZpZXJzO1xufTtcblxuLyoqIEVuZm9yY2VzIGFjdHVhbC9leHBlY3RlZC1zdHlsZSBwcmVmaXhlcyBmb3IgYXNzZXJ0LXBoYXNlIGNvbXBhcmlzb24gdmFyaWFibGVzLiAqL1xuY29uc3QgYXNzZXJ0QWN0dWFsRXhwZWN0ZWROYW1lc1J1bGU6IFJ1bGUuUnVsZU1vZHVsZSA9IHtcbiAgY3JlYXRlOiAoY29udGV4dDogUnVsZS5SdWxlQ29udGV4dCk6IFJ1bGUuUnVsZUxpc3RlbmVyID0+XG4gICAgKHtcbiAgICAgIENhbGxFeHByZXNzaW9uKG5vZGUpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYW5hbHlzaXMgPSBhbmFseXplVGVzdEJsb2NrKGNvbnRleHQsIG5vZGUpO1xuICAgICAgICBpZiAoYW5hbHlzaXMgPT09IHZvaWQgMCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRlY2xhcmVkSWRlbnRpZmllcnMgPSBnZXRDb21wYXJpc29uRGVjbGFyZWRJZGVudGlmaWVycyhhbmFseXNpcyk7XG4gICAgICAgIGNvbnN0IHJlcG9ydGVkTmFtZXMgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICAgICAgICBmb3IgKGNvbnN0IHN0YXRlbWVudCBvZiBhbmFseXNpcy5zdGF0ZW1lbnRzKSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgc3RhdGVtZW50LnBoYXNlcy5pbmNsdWRlcyhcIkFzc2VydFwiKSAmJlxuICAgICAgICAgICAgaGFzQXNzZXJ0aW9uKHN0YXRlbWVudC5ub2RlKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgcmVwb3J0QXNzZXJ0aW9uUHJlZml4ZXMoe1xuICAgICAgICAgICAgICBhc3NlcnRpb25Ob2RlOiBzdGF0ZW1lbnQubm9kZSxcbiAgICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgICAgZGVjbGFyZWRJZGVudGlmaWVycyxcbiAgICAgICAgICAgICAgcmVwb3J0ZWROYW1lcyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9KSBzYXRpc2ZpZXMgUnVsZS5SdWxlTGlzdGVuZXIsXG4gIG1ldGE6IHtcbiAgICBkb2NzOiB7XG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgXCJSZXF1aXJlIEFzc2VydC1waGFzZSBjb21wYXJpc29uIHZhcmlhYmxlcyB0byB1c2UgYWN0dWFsKi9leHBlY3RlZCogcHJlZml4ZXMuXCIsXG4gICAgICByZWNvbW1lbmRlZDogZmFsc2UsXG4gICAgICB1cmw6IFwiaHR0cHM6Ly9naXRodWIuY29tL3BhcmxvdGkvZXNsaW50LXBsdWdpbi9ibG9iL21haW4vZG9jcy9ydWxlcy9hc3NlcnQtYWN0dWFsLWV4cGVjdGVkLW5hbWVzLm1kXCIsXG4gICAgfSxcbiAgICBtZXNzYWdlczoge1xuICAgICAgbWlzc2luZ1ByZWZpeDpcbiAgICAgICAgXCJSZW5hbWUgJ3t7bmFtZX19JyB0byB1c2UgdGhlICd7e3ByZWZpeH19JyBwcmVmaXggd2hlbiBjb21wYXJpbmcgdmFsdWVzIGluc2lkZSAvLyBBc3NlcnQuXCIsXG4gICAgfSxcbiAgICBzY2hlbWE6IFtdLFxuICAgIHR5cGU6IFwic3VnZ2VzdGlvblwiLFxuICB9LFxufTtcblxuZXhwb3J0IHsgYXNzZXJ0QWN0dWFsRXhwZWN0ZWROYW1lc1J1bGUgfTtcbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"pattern-identifiers.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/enforce-aaa-phase-purity/pattern-identifiers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,QAAQ,CAAC;AA2FtC;;;;;;;;GAQG;AACH,iBAAS,yBAAyB,CAChC,OAAO,EAAE,MAAM,CAAC,OAAO,EACvB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,GACvB,IAAI,CAEN;AA4ED,OAAO,EAAE,yBAAyB,EAAE,CAAC"}
1
+ {"version":3,"file":"pattern-identifiers.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/enforce-aaa-phase-purity/pattern-identifiers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,QAAQ,CAAC;AAyFtC;;;;;;;;GAQG;AACH,iBAAS,yBAAyB,CAChC,OAAO,EAAE,MAAM,CAAC,OAAO,EACvB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,GACvB,IAAI,CAEN;AA4ED,OAAO,EAAE,yBAAyB,EAAE,CAAC"}
@@ -131,4 +131,4 @@ function getPatternIdentifierCollector(pattern) {
131
131
  }
132
132
  }
133
133
  export { collectPatternIdentifiers };
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0dGVybi1pZGVudGlmaWVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vdGVzdGluZy9lbmZvcmNlLWFhYS1waGFzZS1wdXJpdHkvcGF0dGVybi1pZGVudGlmaWVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQTs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsOEJBQThCLENBQ3JDLE9BQXVCLEVBQ3ZCLFdBQXdCO0lBRXhCLE1BQU0sUUFBUSxHQUFJLE9BQStCLENBQUMsUUFJL0MsQ0FBQztJQUVKLEtBQUssTUFBTSxPQUFPLElBQUksUUFBUSxFQUFFLENBQUM7UUFDL0IsSUFBSSxPQUFPLEtBQUssSUFBSSxJQUFJLE9BQU8sS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzNDLHlCQUF5QixDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNsRCxDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsbUNBQW1DLENBQzFDLE9BQXVCLEVBQ3ZCLFdBQXdCO0lBRXhCLHlCQUF5QixDQUN0QixPQUFvQyxDQUFDLElBQUksRUFDMUMsV0FBVyxDQUNaLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLG1DQUFtQyxDQUMxQyxPQUF1QixFQUN2QixXQUF3QjtJQUV4QixXQUFXLENBQUMsR0FBRyxDQUFFLE9BQTZCLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDdkQsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUywrQkFBK0IsQ0FDdEMsT0FBdUIsRUFDdkIsV0FBd0I7SUFFeEIsS0FBSyxNQUFNLFFBQVEsSUFBSyxPQUFnQyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3BFLElBQUksUUFBUSxDQUFDLElBQUksS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUNqQyx5QkFBeUIsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3pELENBQUM7YUFBTSxDQUFDO1lBQ04seUJBQXlCLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUM1RCxDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMseUJBQXlCLENBQ2hDLE9BQXVCLEVBQ3ZCLFdBQXdCO0lBRXhCLDZCQUE2QixDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FBQztBQUMvRCxDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLDZCQUE2QixDQUNwQyxPQUF1QixFQUN2QixXQUF3QjtJQUV4Qix5QkFBeUIsQ0FDdEIsT0FBOEIsQ0FBQyxRQUFRLEVBQ3hDLFdBQVcsQ0FDWixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxvQ0FBb0MsQ0FDM0MsT0FBdUIsRUFDdkIsV0FBd0I7SUFFeEIsS0FBSyxPQUFPLENBQUM7SUFDYixLQUFLLFdBQVcsQ0FBQztBQUNuQixDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsU0FBUyw2QkFBNkIsQ0FDcEMsT0FBdUI7SUFFdkIsUUFBUSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsS0FBSyxjQUFjLENBQUMsQ0FBQyxDQUFDO1lBQ3BCLE9BQU8sOEJBQThCLENBQUM7UUFDeEMsQ0FBQztRQUNELEtBQUssbUJBQW1CLENBQUMsQ0FBQyxDQUFDO1lBQ3pCLE9BQU8sbUNBQW1DLENBQUM7UUFDN0MsQ0FBQztRQUNELEtBQUssWUFBWSxDQUFDLENBQUMsQ0FBQztZQUNsQixPQUFPLG1DQUFtQyxDQUFDO1FBQzdDLENBQUM7UUFDRCxLQUFLLGtCQUFrQixDQUFDLENBQUMsQ0FBQztZQUN4QixPQUFPLG9DQUFvQyxDQUFDO1FBQzlDLENBQUM7UUFDRCxLQUFLLGVBQWUsQ0FBQyxDQUFDLENBQUM7WUFDckIsT0FBTywrQkFBK0IsQ0FBQztRQUN6QyxDQUFDO1FBQ0QsS0FBSyxhQUFhLENBQUMsQ0FBQyxDQUFDO1lBQ25CLE9BQU8sNkJBQTZCLENBQUM7UUFDdkMsQ0FBQztRQUNELE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDUixPQUFPLG9DQUFvQyxDQUFDO1FBQzlDLENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQztBQUVELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBFU1RyZWUgZnJvbSBcImVzdHJlZVwiO1xyXG5cclxuLyoqIEZ1bmN0aW9uIHNpZ25hdHVyZSBmb3IgcGF0dGVybiBpZGVudGlmaWVyIGNvbGxlY3RvcnMuICovXHJcbnR5cGUgUGF0dGVybklkZW50aWZpZXJDb2xsZWN0b3IgPSAoXHJcbiAgcGF0dGVybjogRVNUcmVlLlBhdHRlcm4sXHJcbiAgaWRlbnRpZmllcnM6IFNldDxzdHJpbmc+LFxyXG4pID0+IHZvaWQ7XHJcblxyXG4vKipcclxuICogQ29sbGVjdHMgaWRlbnRpZmllcnMgZnJvbSBhbiBhcnJheSBwYXR0ZXJuLlxyXG4gKiBAcGFyYW0gcGF0dGVybiBBcnJheSBwYXR0ZXJuIHRvIGluc3BlY3QuXHJcbiAqIEBwYXJhbSBpZGVudGlmaWVycyBJZGVudGlmaWVyIHNldCB1cGRhdGVkIGluIHBsYWNlLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbGxlY3RBcnJheVBhdHRlcm5JZGVudGlmaWVycyh7IGVsZW1lbnRzOiBbXSwgdHlwZTogXCJBcnJheVBhdHRlcm5cIiB9LCBuZXcgU2V0PHN0cmluZz4oKSk7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gY29sbGVjdEFycmF5UGF0dGVybklkZW50aWZpZXJzKFxyXG4gIHBhdHRlcm46IEVTVHJlZS5QYXR0ZXJuLFxyXG4gIGlkZW50aWZpZXJzOiBTZXQ8c3RyaW5nPixcclxuKTogdm9pZCB7XHJcbiAgY29uc3QgZWxlbWVudHMgPSAocGF0dGVybiBhcyBFU1RyZWUuQXJyYXlQYXR0ZXJuKS5lbGVtZW50cyBhcyAoXHJcbiAgICB8IEVTVHJlZS5QYXR0ZXJuXHJcbiAgICB8IG51bGxcclxuICAgIHwgdW5kZWZpbmVkXHJcbiAgKVtdO1xyXG5cclxuICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgZWxlbWVudHMpIHtcclxuICAgIGlmIChlbGVtZW50ICE9PSBudWxsICYmIGVsZW1lbnQgIT09IHZvaWQgMCkge1xyXG4gICAgICBjb2xsZWN0UGF0dGVybklkZW50aWZpZXJzKGVsZW1lbnQsIGlkZW50aWZpZXJzKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDb2xsZWN0cyBpZGVudGlmaWVycyBmcm9tIGFuIGFzc2lnbm1lbnQgcGF0dGVybi5cclxuICogQHBhcmFtIHBhdHRlcm4gQXNzaWdubWVudCBwYXR0ZXJuIHRvIGluc3BlY3QuXHJcbiAqIEBwYXJhbSBpZGVudGlmaWVycyBJZGVudGlmaWVyIHNldCB1cGRhdGVkIGluIHBsYWNlLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbGxlY3RBc3NpZ25tZW50UGF0dGVybklkZW50aWZpZXJzKHsgbGVmdDogeyBuYW1lOiBcInZhbHVlXCIsIHR5cGU6IFwiSWRlbnRpZmllclwiIH0sIHJpZ2h0OiB7IG5hbWU6IFwiZmFsbGJhY2tcIiwgdHlwZTogXCJJZGVudGlmaWVyXCIgfSwgdHlwZTogXCJBc3NpZ25tZW50UGF0dGVyblwiIH0gYXMgRVNUcmVlLkFzc2lnbm1lbnRQYXR0ZXJuLCBuZXcgU2V0PHN0cmluZz4oKSk7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gY29sbGVjdEFzc2lnbm1lbnRQYXR0ZXJuSWRlbnRpZmllcnMoXHJcbiAgcGF0dGVybjogRVNUcmVlLlBhdHRlcm4sXHJcbiAgaWRlbnRpZmllcnM6IFNldDxzdHJpbmc+LFxyXG4pOiB2b2lkIHtcclxuICBjb2xsZWN0UGF0dGVybklkZW50aWZpZXJzKFxyXG4gICAgKHBhdHRlcm4gYXMgRVNUcmVlLkFzc2lnbm1lbnRQYXR0ZXJuKS5sZWZ0LFxyXG4gICAgaWRlbnRpZmllcnMsXHJcbiAgKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENvbGxlY3RzIGlkZW50aWZpZXJzIGZyb20gYSBwbGFpbiBpZGVudGlmaWVyIHBhdHRlcm4uXHJcbiAqIEBwYXJhbSBwYXR0ZXJuIElkZW50aWZpZXIgcGF0dGVybiB0byBpbnNwZWN0LlxyXG4gKiBAcGFyYW0gaWRlbnRpZmllcnMgSWRlbnRpZmllciBzZXQgdXBkYXRlZCBpbiBwbGFjZS5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb2xsZWN0SWRlbnRpZmllclBhdHRlcm5JZGVudGlmaWVycyh7IG5hbWU6IFwidmFsdWVcIiwgdHlwZTogXCJJZGVudGlmaWVyXCIgfSwgbmV3IFNldDxzdHJpbmc+KCkpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGNvbGxlY3RJZGVudGlmaWVyUGF0dGVybklkZW50aWZpZXJzKFxyXG4gIHBhdHRlcm46IEVTVHJlZS5QYXR0ZXJuLFxyXG4gIGlkZW50aWZpZXJzOiBTZXQ8c3RyaW5nPixcclxuKTogdm9pZCB7XHJcbiAgaWRlbnRpZmllcnMuYWRkKChwYXR0ZXJuIGFzIEVTVHJlZS5JZGVudGlmaWVyKS5uYW1lKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENvbGxlY3RzIGlkZW50aWZpZXJzIGZyb20gYW4gb2JqZWN0IHBhdHRlcm4uXHJcbiAqIEBwYXJhbSBwYXR0ZXJuIE9iamVjdCBwYXR0ZXJuIHRvIGluc3BlY3QuXHJcbiAqIEBwYXJhbSBpZGVudGlmaWVycyBJZGVudGlmaWVyIHNldCB1cGRhdGVkIGluIHBsYWNlLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbGxlY3RPYmplY3RQYXR0ZXJuSWRlbnRpZmllcnMoeyBwcm9wZXJ0aWVzOiBbXSwgdHlwZTogXCJPYmplY3RQYXR0ZXJuXCIgfSwgbmV3IFNldDxzdHJpbmc+KCkpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGNvbGxlY3RPYmplY3RQYXR0ZXJuSWRlbnRpZmllcnMoXHJcbiAgcGF0dGVybjogRVNUcmVlLlBhdHRlcm4sXHJcbiAgaWRlbnRpZmllcnM6IFNldDxzdHJpbmc+LFxyXG4pOiB2b2lkIHtcclxuICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIChwYXR0ZXJuIGFzIEVTVHJlZS5PYmplY3RQYXR0ZXJuKS5wcm9wZXJ0aWVzKSB7XHJcbiAgICBpZiAocHJvcGVydHkudHlwZSA9PT0gXCJQcm9wZXJ0eVwiKSB7XHJcbiAgICAgIGNvbGxlY3RQYXR0ZXJuSWRlbnRpZmllcnMocHJvcGVydHkudmFsdWUsIGlkZW50aWZpZXJzKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbGxlY3RQYXR0ZXJuSWRlbnRpZmllcnMocHJvcGVydHkuYXJndW1lbnQsIGlkZW50aWZpZXJzKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDb2xsZWN0cyBhbGwgaWRlbnRpZmllciBuYW1lcyBkZWNsYXJlZCBieSBhIGRlc3RydWN0dXJpbmcgb3IgaWRlbnRpZmllciBwYXR0ZXJuLlxyXG4gKiBAcGFyYW0gcGF0dGVybiBQYXR0ZXJuIG5vZGUgdG8gaW5zcGVjdC5cclxuICogQHBhcmFtIGlkZW50aWZpZXJzIElkZW50aWZpZXIgc2V0IHVwZGF0ZWQgaW4gcGxhY2UuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29sbGVjdFBhdHRlcm5JZGVudGlmaWVycyh7IG5hbWU6IFwidmFsdWVcIiwgdHlwZTogXCJJZGVudGlmaWVyXCIgfSwgbmV3IFNldDxzdHJpbmc+KCkpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGNvbGxlY3RQYXR0ZXJuSWRlbnRpZmllcnMoXHJcbiAgcGF0dGVybjogRVNUcmVlLlBhdHRlcm4sXHJcbiAgaWRlbnRpZmllcnM6IFNldDxzdHJpbmc+LFxyXG4pOiB2b2lkIHtcclxuICBnZXRQYXR0ZXJuSWRlbnRpZmllckNvbGxlY3RvcihwYXR0ZXJuKShwYXR0ZXJuLCBpZGVudGlmaWVycyk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDb2xsZWN0cyBpZGVudGlmaWVycyBmcm9tIGEgcmVzdCBlbGVtZW50IHBhdHRlcm4uXHJcbiAqIEBwYXJhbSBwYXR0ZXJuIFJlc3QgZWxlbWVudCB0byBpbnNwZWN0LlxyXG4gKiBAcGFyYW0gaWRlbnRpZmllcnMgSWRlbnRpZmllciBzZXQgdXBkYXRlZCBpbiBwbGFjZS5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb2xsZWN0UmVzdFBhdHRlcm5JZGVudGlmaWVycyh7IGFyZ3VtZW50OiB7IG5hbWU6IFwidmFsdWVcIiwgdHlwZTogXCJJZGVudGlmaWVyXCIgfSwgdHlwZTogXCJSZXN0RWxlbWVudFwiIH0sIG5ldyBTZXQ8c3RyaW5nPigpKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBjb2xsZWN0UmVzdFBhdHRlcm5JZGVudGlmaWVycyhcclxuICBwYXR0ZXJuOiBFU1RyZWUuUGF0dGVybixcclxuICBpZGVudGlmaWVyczogU2V0PHN0cmluZz4sXHJcbik6IHZvaWQge1xyXG4gIGNvbGxlY3RQYXR0ZXJuSWRlbnRpZmllcnMoXHJcbiAgICAocGF0dGVybiBhcyBFU1RyZWUuUmVzdEVsZW1lbnQpLmFyZ3VtZW50LFxyXG4gICAgaWRlbnRpZmllcnMsXHJcbiAgKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIElnbm9yZXMgcGF0dGVybiBraW5kcyB0aGF0IGRvIG5vdCBkZWNsYXJlIGlkZW50aWZpZXJzLlxyXG4gKiBAcGFyYW0gcGF0dGVybiBQYXR0ZXJuIHRvIGlnbm9yZS5cclxuICogQHBhcmFtIGlkZW50aWZpZXJzIElkZW50aWZpZXIgc2V0IGxlZnQgdW5jaGFuZ2VkLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbGxlY3RVbnN1cHBvcnRlZFBhdHRlcm5JZGVudGlmaWVycyh7IG9iamVjdDogeyBuYW1lOiBcInZhbHVlXCIsIHR5cGU6IFwiSWRlbnRpZmllclwiIH0sIHByb3BlcnR5OiB7IG5hbWU6IFwibWVtYmVyXCIsIHR5cGU6IFwiSWRlbnRpZmllclwiIH0sIGNvbXB1dGVkOiBmYWxzZSwgb3B0aW9uYWw6IGZhbHNlLCB0eXBlOiBcIk1lbWJlckV4cHJlc3Npb25cIiB9LCBuZXcgU2V0PHN0cmluZz4oKSk7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gY29sbGVjdFVuc3VwcG9ydGVkUGF0dGVybklkZW50aWZpZXJzKFxyXG4gIHBhdHRlcm46IEVTVHJlZS5QYXR0ZXJuLFxyXG4gIGlkZW50aWZpZXJzOiBTZXQ8c3RyaW5nPixcclxuKTogdm9pZCB7XHJcbiAgdm9pZCBwYXR0ZXJuO1xyXG4gIHZvaWQgaWRlbnRpZmllcnM7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZXRzIHRoZSBpZGVudGlmaWVyIGNvbGxlY3RvciBmb3Igb25lIHN1cHBvcnRlZCBwYXR0ZXJuIGtpbmQuXHJcbiAqIEBwYXJhbSBwYXR0ZXJuIFBhdHRlcm4gd2hvc2UgY29sbGVjdG9yIGlzIG5lZWRlZC5cclxuICogQHJldHVybnMgQ29sbGVjdG9yIGZvciB0aGUgcGF0dGVybiwgd2hlbiBvbmUgZXhpc3RzLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IGNvbGxlY3RvciA9IGdldFBhdHRlcm5JZGVudGlmaWVyQ29sbGVjdG9yKHsgbmFtZTogXCJ2YWx1ZVwiLCB0eXBlOiBcIklkZW50aWZpZXJcIiB9KTtcclxuICogdm9pZCBjb2xsZWN0b3I7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gZ2V0UGF0dGVybklkZW50aWZpZXJDb2xsZWN0b3IoXHJcbiAgcGF0dGVybjogRVNUcmVlLlBhdHRlcm4sXHJcbik6IFBhdHRlcm5JZGVudGlmaWVyQ29sbGVjdG9yIHtcclxuICBzd2l0Y2ggKHBhdHRlcm4udHlwZSkge1xyXG4gICAgY2FzZSBcIkFycmF5UGF0dGVyblwiOiB7XHJcbiAgICAgIHJldHVybiBjb2xsZWN0QXJyYXlQYXR0ZXJuSWRlbnRpZmllcnM7XHJcbiAgICB9XHJcbiAgICBjYXNlIFwiQXNzaWdubWVudFBhdHRlcm5cIjoge1xyXG4gICAgICByZXR1cm4gY29sbGVjdEFzc2lnbm1lbnRQYXR0ZXJuSWRlbnRpZmllcnM7XHJcbiAgICB9XHJcbiAgICBjYXNlIFwiSWRlbnRpZmllclwiOiB7XHJcbiAgICAgIHJldHVybiBjb2xsZWN0SWRlbnRpZmllclBhdHRlcm5JZGVudGlmaWVycztcclxuICAgIH1cclxuICAgIGNhc2UgXCJNZW1iZXJFeHByZXNzaW9uXCI6IHtcclxuICAgICAgcmV0dXJuIGNvbGxlY3RVbnN1cHBvcnRlZFBhdHRlcm5JZGVudGlmaWVycztcclxuICAgIH1cclxuICAgIGNhc2UgXCJPYmplY3RQYXR0ZXJuXCI6IHtcclxuICAgICAgcmV0dXJuIGNvbGxlY3RPYmplY3RQYXR0ZXJuSWRlbnRpZmllcnM7XHJcbiAgICB9XHJcbiAgICBjYXNlIFwiUmVzdEVsZW1lbnRcIjoge1xyXG4gICAgICByZXR1cm4gY29sbGVjdFJlc3RQYXR0ZXJuSWRlbnRpZmllcnM7XHJcbiAgICB9XHJcbiAgICBkZWZhdWx0OiB7XHJcbiAgICAgIHJldHVybiBjb2xsZWN0VW5zdXBwb3J0ZWRQYXR0ZXJuSWRlbnRpZmllcnM7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgeyBjb2xsZWN0UGF0dGVybklkZW50aWZpZXJzIH07XHJcbiJdfQ==
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0dGVybi1pZGVudGlmaWVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vdGVzdGluZy9lbmZvcmNlLWFhYS1waGFzZS1wdXJpdHkvcGF0dGVybi1pZGVudGlmaWVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQTs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsOEJBQThCLENBQ3JDLE9BQXVCLEVBQ3ZCLFdBQXdCO0lBRXhCLE1BQU0sUUFBUSxHQUFJLE9BQStCLENBQUMsUUFFL0MsQ0FBQztJQUVKLEtBQUssTUFBTSxPQUFPLElBQUksUUFBUSxFQUFFLENBQUM7UUFDL0IsSUFBSSxPQUFPLEtBQUssSUFBSSxJQUFJLE9BQU8sS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzNDLHlCQUF5QixDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNsRCxDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsbUNBQW1DLENBQzFDLE9BQXVCLEVBQ3ZCLFdBQXdCO0lBRXhCLHlCQUF5QixDQUN0QixPQUFvQyxDQUFDLElBQUksRUFDMUMsV0FBVyxDQUNaLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLG1DQUFtQyxDQUMxQyxPQUF1QixFQUN2QixXQUF3QjtJQUV4QixXQUFXLENBQUMsR0FBRyxDQUFFLE9BQTZCLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDdkQsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUywrQkFBK0IsQ0FDdEMsT0FBdUIsRUFDdkIsV0FBd0I7SUFFeEIsS0FBSyxNQUFNLFFBQVEsSUFBSyxPQUFnQyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3BFLElBQUksUUFBUSxDQUFDLElBQUksS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUNqQyx5QkFBeUIsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3pELENBQUM7YUFBTSxDQUFDO1lBQ04seUJBQXlCLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUM1RCxDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMseUJBQXlCLENBQ2hDLE9BQXVCLEVBQ3ZCLFdBQXdCO0lBRXhCLDZCQUE2QixDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FBQztBQUMvRCxDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLDZCQUE2QixDQUNwQyxPQUF1QixFQUN2QixXQUF3QjtJQUV4Qix5QkFBeUIsQ0FDdEIsT0FBOEIsQ0FBQyxRQUFRLEVBQ3hDLFdBQVcsQ0FDWixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxvQ0FBb0MsQ0FDM0MsT0FBdUIsRUFDdkIsV0FBd0I7SUFFeEIsS0FBSyxPQUFPLENBQUM7SUFDYixLQUFLLFdBQVcsQ0FBQztBQUNuQixDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsU0FBUyw2QkFBNkIsQ0FDcEMsT0FBdUI7SUFFdkIsUUFBUSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsS0FBSyxjQUFjLENBQUMsQ0FBQyxDQUFDO1lBQ3BCLE9BQU8sOEJBQThCLENBQUM7UUFDeEMsQ0FBQztRQUNELEtBQUssbUJBQW1CLENBQUMsQ0FBQyxDQUFDO1lBQ3pCLE9BQU8sbUNBQW1DLENBQUM7UUFDN0MsQ0FBQztRQUNELEtBQUssWUFBWSxDQUFDLENBQUMsQ0FBQztZQUNsQixPQUFPLG1DQUFtQyxDQUFDO1FBQzdDLENBQUM7UUFDRCxLQUFLLGtCQUFrQixDQUFDLENBQUMsQ0FBQztZQUN4QixPQUFPLG9DQUFvQyxDQUFDO1FBQzlDLENBQUM7UUFDRCxLQUFLLGVBQWUsQ0FBQyxDQUFDLENBQUM7WUFDckIsT0FBTywrQkFBK0IsQ0FBQztRQUN6QyxDQUFDO1FBQ0QsS0FBSyxhQUFhLENBQUMsQ0FBQyxDQUFDO1lBQ25CLE9BQU8sNkJBQTZCLENBQUM7UUFDdkMsQ0FBQztRQUNELE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDUixPQUFPLG9DQUFvQyxDQUFDO1FBQzlDLENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQztBQUVELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBFU1RyZWUgZnJvbSBcImVzdHJlZVwiO1xyXG5cclxuLyoqIEZ1bmN0aW9uIHNpZ25hdHVyZSBmb3IgcGF0dGVybiBpZGVudGlmaWVyIGNvbGxlY3RvcnMuICovXHJcbnR5cGUgUGF0dGVybklkZW50aWZpZXJDb2xsZWN0b3IgPSAoXHJcbiAgcGF0dGVybjogRVNUcmVlLlBhdHRlcm4sXHJcbiAgaWRlbnRpZmllcnM6IFNldDxzdHJpbmc+LFxyXG4pID0+IHZvaWQ7XHJcblxyXG4vKipcclxuICogQ29sbGVjdHMgaWRlbnRpZmllcnMgZnJvbSBhbiBhcnJheSBwYXR0ZXJuLlxyXG4gKiBAcGFyYW0gcGF0dGVybiBBcnJheSBwYXR0ZXJuIHRvIGluc3BlY3QuXHJcbiAqIEBwYXJhbSBpZGVudGlmaWVycyBJZGVudGlmaWVyIHNldCB1cGRhdGVkIGluIHBsYWNlLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbGxlY3RBcnJheVBhdHRlcm5JZGVudGlmaWVycyh7IGVsZW1lbnRzOiBbXSwgdHlwZTogXCJBcnJheVBhdHRlcm5cIiB9LCBuZXcgU2V0PHN0cmluZz4oKSk7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gY29sbGVjdEFycmF5UGF0dGVybklkZW50aWZpZXJzKFxyXG4gIHBhdHRlcm46IEVTVHJlZS5QYXR0ZXJuLFxyXG4gIGlkZW50aWZpZXJzOiBTZXQ8c3RyaW5nPixcclxuKTogdm9pZCB7XHJcbiAgY29uc3QgZWxlbWVudHMgPSAocGF0dGVybiBhcyBFU1RyZWUuQXJyYXlQYXR0ZXJuKS5lbGVtZW50cyBhcyAoXHJcbiAgICBFU1RyZWUuUGF0dGVybiB8IG51bGwgfCB1bmRlZmluZWRcclxuICApW107XHJcblxyXG4gIGZvciAoY29uc3QgZWxlbWVudCBvZiBlbGVtZW50cykge1xyXG4gICAgaWYgKGVsZW1lbnQgIT09IG51bGwgJiYgZWxlbWVudCAhPT0gdm9pZCAwKSB7XHJcbiAgICAgIGNvbGxlY3RQYXR0ZXJuSWRlbnRpZmllcnMoZWxlbWVudCwgaWRlbnRpZmllcnMpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIENvbGxlY3RzIGlkZW50aWZpZXJzIGZyb20gYW4gYXNzaWdubWVudCBwYXR0ZXJuLlxyXG4gKiBAcGFyYW0gcGF0dGVybiBBc3NpZ25tZW50IHBhdHRlcm4gdG8gaW5zcGVjdC5cclxuICogQHBhcmFtIGlkZW50aWZpZXJzIElkZW50aWZpZXIgc2V0IHVwZGF0ZWQgaW4gcGxhY2UuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29sbGVjdEFzc2lnbm1lbnRQYXR0ZXJuSWRlbnRpZmllcnMoeyBsZWZ0OiB7IG5hbWU6IFwidmFsdWVcIiwgdHlwZTogXCJJZGVudGlmaWVyXCIgfSwgcmlnaHQ6IHsgbmFtZTogXCJmYWxsYmFja1wiLCB0eXBlOiBcIklkZW50aWZpZXJcIiB9LCB0eXBlOiBcIkFzc2lnbm1lbnRQYXR0ZXJuXCIgfSBhcyBFU1RyZWUuQXNzaWdubWVudFBhdHRlcm4sIG5ldyBTZXQ8c3RyaW5nPigpKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBjb2xsZWN0QXNzaWdubWVudFBhdHRlcm5JZGVudGlmaWVycyhcclxuICBwYXR0ZXJuOiBFU1RyZWUuUGF0dGVybixcclxuICBpZGVudGlmaWVyczogU2V0PHN0cmluZz4sXHJcbik6IHZvaWQge1xyXG4gIGNvbGxlY3RQYXR0ZXJuSWRlbnRpZmllcnMoXHJcbiAgICAocGF0dGVybiBhcyBFU1RyZWUuQXNzaWdubWVudFBhdHRlcm4pLmxlZnQsXHJcbiAgICBpZGVudGlmaWVycyxcclxuICApO1xyXG59XHJcblxyXG4vKipcclxuICogQ29sbGVjdHMgaWRlbnRpZmllcnMgZnJvbSBhIHBsYWluIGlkZW50aWZpZXIgcGF0dGVybi5cclxuICogQHBhcmFtIHBhdHRlcm4gSWRlbnRpZmllciBwYXR0ZXJuIHRvIGluc3BlY3QuXHJcbiAqIEBwYXJhbSBpZGVudGlmaWVycyBJZGVudGlmaWVyIHNldCB1cGRhdGVkIGluIHBsYWNlLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbGxlY3RJZGVudGlmaWVyUGF0dGVybklkZW50aWZpZXJzKHsgbmFtZTogXCJ2YWx1ZVwiLCB0eXBlOiBcIklkZW50aWZpZXJcIiB9LCBuZXcgU2V0PHN0cmluZz4oKSk7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gY29sbGVjdElkZW50aWZpZXJQYXR0ZXJuSWRlbnRpZmllcnMoXHJcbiAgcGF0dGVybjogRVNUcmVlLlBhdHRlcm4sXHJcbiAgaWRlbnRpZmllcnM6IFNldDxzdHJpbmc+LFxyXG4pOiB2b2lkIHtcclxuICBpZGVudGlmaWVycy5hZGQoKHBhdHRlcm4gYXMgRVNUcmVlLklkZW50aWZpZXIpLm5hbWUpO1xyXG59XHJcblxyXG4vKipcclxuICogQ29sbGVjdHMgaWRlbnRpZmllcnMgZnJvbSBhbiBvYmplY3QgcGF0dGVybi5cclxuICogQHBhcmFtIHBhdHRlcm4gT2JqZWN0IHBhdHRlcm4gdG8gaW5zcGVjdC5cclxuICogQHBhcmFtIGlkZW50aWZpZXJzIElkZW50aWZpZXIgc2V0IHVwZGF0ZWQgaW4gcGxhY2UuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29sbGVjdE9iamVjdFBhdHRlcm5JZGVudGlmaWVycyh7IHByb3BlcnRpZXM6IFtdLCB0eXBlOiBcIk9iamVjdFBhdHRlcm5cIiB9LCBuZXcgU2V0PHN0cmluZz4oKSk7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gY29sbGVjdE9iamVjdFBhdHRlcm5JZGVudGlmaWVycyhcclxuICBwYXR0ZXJuOiBFU1RyZWUuUGF0dGVybixcclxuICBpZGVudGlmaWVyczogU2V0PHN0cmluZz4sXHJcbik6IHZvaWQge1xyXG4gIGZvciAoY29uc3QgcHJvcGVydHkgb2YgKHBhdHRlcm4gYXMgRVNUcmVlLk9iamVjdFBhdHRlcm4pLnByb3BlcnRpZXMpIHtcclxuICAgIGlmIChwcm9wZXJ0eS50eXBlID09PSBcIlByb3BlcnR5XCIpIHtcclxuICAgICAgY29sbGVjdFBhdHRlcm5JZGVudGlmaWVycyhwcm9wZXJ0eS52YWx1ZSwgaWRlbnRpZmllcnMpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29sbGVjdFBhdHRlcm5JZGVudGlmaWVycyhwcm9wZXJ0eS5hcmd1bWVudCwgaWRlbnRpZmllcnMpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIENvbGxlY3RzIGFsbCBpZGVudGlmaWVyIG5hbWVzIGRlY2xhcmVkIGJ5IGEgZGVzdHJ1Y3R1cmluZyBvciBpZGVudGlmaWVyIHBhdHRlcm4uXHJcbiAqIEBwYXJhbSBwYXR0ZXJuIFBhdHRlcm4gbm9kZSB0byBpbnNwZWN0LlxyXG4gKiBAcGFyYW0gaWRlbnRpZmllcnMgSWRlbnRpZmllciBzZXQgdXBkYXRlZCBpbiBwbGFjZS5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb2xsZWN0UGF0dGVybklkZW50aWZpZXJzKHsgbmFtZTogXCJ2YWx1ZVwiLCB0eXBlOiBcIklkZW50aWZpZXJcIiB9LCBuZXcgU2V0PHN0cmluZz4oKSk7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gY29sbGVjdFBhdHRlcm5JZGVudGlmaWVycyhcclxuICBwYXR0ZXJuOiBFU1RyZWUuUGF0dGVybixcclxuICBpZGVudGlmaWVyczogU2V0PHN0cmluZz4sXHJcbik6IHZvaWQge1xyXG4gIGdldFBhdHRlcm5JZGVudGlmaWVyQ29sbGVjdG9yKHBhdHRlcm4pKHBhdHRlcm4sIGlkZW50aWZpZXJzKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENvbGxlY3RzIGlkZW50aWZpZXJzIGZyb20gYSByZXN0IGVsZW1lbnQgcGF0dGVybi5cclxuICogQHBhcmFtIHBhdHRlcm4gUmVzdCBlbGVtZW50IHRvIGluc3BlY3QuXHJcbiAqIEBwYXJhbSBpZGVudGlmaWVycyBJZGVudGlmaWVyIHNldCB1cGRhdGVkIGluIHBsYWNlLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbGxlY3RSZXN0UGF0dGVybklkZW50aWZpZXJzKHsgYXJndW1lbnQ6IHsgbmFtZTogXCJ2YWx1ZVwiLCB0eXBlOiBcIklkZW50aWZpZXJcIiB9LCB0eXBlOiBcIlJlc3RFbGVtZW50XCIgfSwgbmV3IFNldDxzdHJpbmc+KCkpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGNvbGxlY3RSZXN0UGF0dGVybklkZW50aWZpZXJzKFxyXG4gIHBhdHRlcm46IEVTVHJlZS5QYXR0ZXJuLFxyXG4gIGlkZW50aWZpZXJzOiBTZXQ8c3RyaW5nPixcclxuKTogdm9pZCB7XHJcbiAgY29sbGVjdFBhdHRlcm5JZGVudGlmaWVycyhcclxuICAgIChwYXR0ZXJuIGFzIEVTVHJlZS5SZXN0RWxlbWVudCkuYXJndW1lbnQsXHJcbiAgICBpZGVudGlmaWVycyxcclxuICApO1xyXG59XHJcblxyXG4vKipcclxuICogSWdub3JlcyBwYXR0ZXJuIGtpbmRzIHRoYXQgZG8gbm90IGRlY2xhcmUgaWRlbnRpZmllcnMuXHJcbiAqIEBwYXJhbSBwYXR0ZXJuIFBhdHRlcm4gdG8gaWdub3JlLlxyXG4gKiBAcGFyYW0gaWRlbnRpZmllcnMgSWRlbnRpZmllciBzZXQgbGVmdCB1bmNoYW5nZWQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29sbGVjdFVuc3VwcG9ydGVkUGF0dGVybklkZW50aWZpZXJzKHsgb2JqZWN0OiB7IG5hbWU6IFwidmFsdWVcIiwgdHlwZTogXCJJZGVudGlmaWVyXCIgfSwgcHJvcGVydHk6IHsgbmFtZTogXCJtZW1iZXJcIiwgdHlwZTogXCJJZGVudGlmaWVyXCIgfSwgY29tcHV0ZWQ6IGZhbHNlLCBvcHRpb25hbDogZmFsc2UsIHR5cGU6IFwiTWVtYmVyRXhwcmVzc2lvblwiIH0sIG5ldyBTZXQ8c3RyaW5nPigpKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBjb2xsZWN0VW5zdXBwb3J0ZWRQYXR0ZXJuSWRlbnRpZmllcnMoXHJcbiAgcGF0dGVybjogRVNUcmVlLlBhdHRlcm4sXHJcbiAgaWRlbnRpZmllcnM6IFNldDxzdHJpbmc+LFxyXG4pOiB2b2lkIHtcclxuICB2b2lkIHBhdHRlcm47XHJcbiAgdm9pZCBpZGVudGlmaWVycztcclxufVxyXG5cclxuLyoqXHJcbiAqIEdldHMgdGhlIGlkZW50aWZpZXIgY29sbGVjdG9yIGZvciBvbmUgc3VwcG9ydGVkIHBhdHRlcm4ga2luZC5cclxuICogQHBhcmFtIHBhdHRlcm4gUGF0dGVybiB3aG9zZSBjb2xsZWN0b3IgaXMgbmVlZGVkLlxyXG4gKiBAcmV0dXJucyBDb2xsZWN0b3IgZm9yIHRoZSBwYXR0ZXJuLCB3aGVuIG9uZSBleGlzdHMuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3QgY29sbGVjdG9yID0gZ2V0UGF0dGVybklkZW50aWZpZXJDb2xsZWN0b3IoeyBuYW1lOiBcInZhbHVlXCIsIHR5cGU6IFwiSWRlbnRpZmllclwiIH0pO1xyXG4gKiB2b2lkIGNvbGxlY3RvcjtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBnZXRQYXR0ZXJuSWRlbnRpZmllckNvbGxlY3RvcihcclxuICBwYXR0ZXJuOiBFU1RyZWUuUGF0dGVybixcclxuKTogUGF0dGVybklkZW50aWZpZXJDb2xsZWN0b3Ige1xyXG4gIHN3aXRjaCAocGF0dGVybi50eXBlKSB7XHJcbiAgICBjYXNlIFwiQXJyYXlQYXR0ZXJuXCI6IHtcclxuICAgICAgcmV0dXJuIGNvbGxlY3RBcnJheVBhdHRlcm5JZGVudGlmaWVycztcclxuICAgIH1cclxuICAgIGNhc2UgXCJBc3NpZ25tZW50UGF0dGVyblwiOiB7XHJcbiAgICAgIHJldHVybiBjb2xsZWN0QXNzaWdubWVudFBhdHRlcm5JZGVudGlmaWVycztcclxuICAgIH1cclxuICAgIGNhc2UgXCJJZGVudGlmaWVyXCI6IHtcclxuICAgICAgcmV0dXJuIGNvbGxlY3RJZGVudGlmaWVyUGF0dGVybklkZW50aWZpZXJzO1xyXG4gICAgfVxyXG4gICAgY2FzZSBcIk1lbWJlckV4cHJlc3Npb25cIjoge1xyXG4gICAgICByZXR1cm4gY29sbGVjdFVuc3VwcG9ydGVkUGF0dGVybklkZW50aWZpZXJzO1xyXG4gICAgfVxyXG4gICAgY2FzZSBcIk9iamVjdFBhdHRlcm5cIjoge1xyXG4gICAgICByZXR1cm4gY29sbGVjdE9iamVjdFBhdHRlcm5JZGVudGlmaWVycztcclxuICAgIH1cclxuICAgIGNhc2UgXCJSZXN0RWxlbWVudFwiOiB7XHJcbiAgICAgIHJldHVybiBjb2xsZWN0UmVzdFBhdHRlcm5JZGVudGlmaWVycztcclxuICAgIH1cclxuICAgIGRlZmF1bHQ6IHtcclxuICAgICAgcmV0dXJuIGNvbGxlY3RVbnN1cHBvcnRlZFBhdHRlcm5JZGVudGlmaWVycztcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCB7IGNvbGxlY3RQYXR0ZXJuSWRlbnRpZmllcnMgfTtcclxuIl19
@@ -1 +1 @@
1
- {"version":3,"file":"phase-purity-reporting.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAmQtD;;;;;;;;GAQG;AACH,iBAAS,2BAA2B,CAClC,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,QAAQ,EAAE,iBAAiB,GAC1B,IAAI,CAyBN;AAyED,OAAO,EAAE,2BAA2B,EAAE,CAAC"}
1
+ {"version":3,"file":"phase-purity-reporting.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAkFtD;;;;;;;;GAQG;AACH,iBAAS,2BAA2B,CAClC,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,QAAQ,EAAE,iBAAiB,GAC1B,IAAI,CAyBN;AAED,OAAO,EAAE,2BAA2B,EAAE,CAAC"}