@angular/compiler-cli 12.1.0-next.4 → 12.1.1

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 (123) hide show
  1. package/linker/src/file_linker/partial_linkers/partial_component_linker_1.js +2 -3
  2. package/linker/src/file_linker/partial_linkers/partial_linker_selector.js +2 -2
  3. package/linker/src/file_linker/partial_linkers/partial_linker_selector.mjs +2 -2
  4. package/ngcc/src/host/esm2015_host.js +7 -5
  5. package/ngcc/src/host/esm2015_host.mjs +6 -4
  6. package/ngcc/src/host/esm5_host.js +1 -1
  7. package/ngcc/src/host/esm5_host.mjs +3 -3
  8. package/ngcc/src/host/ngcc_host.d.ts +3 -2
  9. package/ngcc/src/host/ngcc_host.js +1 -1
  10. package/ngcc/src/host/ngcc_host.mjs +1 -1
  11. package/ngcc/src/host/umd_host.js +2 -2
  12. package/ngcc/src/host/umd_host.mjs +2 -2
  13. package/ngcc/src/packages/build_marker.d.ts +1 -1
  14. package/ngcc/src/packages/build_marker.js +1 -1
  15. package/ngcc/src/packages/build_marker.mjs +1 -1
  16. package/ngcc/src/packages/configuration.d.ts +7 -0
  17. package/ngcc/src/packages/configuration.js +8 -3
  18. package/ngcc/src/packages/configuration.mjs +8 -3
  19. package/ngcc/src/packages/entry_point_manifest.js +2 -2
  20. package/ngcc/src/packages/entry_point_manifest.mjs +2 -2
  21. package/package.json +4 -4
  22. package/src/ngtsc/annotations/src/component.d.ts +2 -0
  23. package/src/ngtsc/annotations/src/component.js +47 -11
  24. package/src/ngtsc/annotations/src/component.mjs +47 -11
  25. package/src/ngtsc/core/api/src/public_options.d.ts +12 -0
  26. package/src/ngtsc/core/api/src/public_options.js +1 -1
  27. package/src/ngtsc/core/api/src/public_options.mjs +1 -1
  28. package/src/ngtsc/core/index.js +1 -1
  29. package/src/ngtsc/core/index.mjs +1 -1
  30. package/src/ngtsc/core/src/compiler.d.ts +5 -1
  31. package/src/ngtsc/core/src/compiler.js +11 -17
  32. package/src/ngtsc/core/src/compiler.mjs +10 -15
  33. package/src/ngtsc/cycles/src/imports.js +7 -1
  34. package/src/ngtsc/cycles/src/imports.mjs +7 -1
  35. package/src/ngtsc/diagnostics/src/error_code.d.ts +5 -0
  36. package/src/ngtsc/diagnostics/src/error_code.js +7 -1
  37. package/src/ngtsc/diagnostics/src/error_code.mjs +7 -1
  38. package/src/ngtsc/imports/src/find_export.js +4 -1
  39. package/src/ngtsc/imports/src/find_export.mjs +4 -1
  40. package/src/ngtsc/incremental/src/incremental.js +7 -3
  41. package/src/ngtsc/incremental/src/incremental.mjs +7 -3
  42. package/src/ngtsc/incremental/src/state.d.ts +5 -3
  43. package/src/ngtsc/incremental/src/state.js +1 -1
  44. package/src/ngtsc/incremental/src/state.mjs +1 -1
  45. package/src/ngtsc/metadata/src/dts.js +2 -3
  46. package/src/ngtsc/metadata/src/inheritance.js +2 -7
  47. package/src/ngtsc/partial_evaluator/src/diagnostics.js +4 -1
  48. package/src/ngtsc/partial_evaluator/src/diagnostics.mjs +4 -1
  49. package/src/ngtsc/partial_evaluator/src/dynamic.d.ts +19 -1
  50. package/src/ngtsc/partial_evaluator/src/dynamic.js +12 -4
  51. package/src/ngtsc/partial_evaluator/src/dynamic.mjs +12 -4
  52. package/src/ngtsc/partial_evaluator/src/interpreter.d.ts +2 -0
  53. package/src/ngtsc/partial_evaluator/src/interpreter.js +48 -1
  54. package/src/ngtsc/partial_evaluator/src/interpreter.mjs +37 -1
  55. package/src/ngtsc/program.d.ts +1 -0
  56. package/src/ngtsc/program.js +26 -2
  57. package/src/ngtsc/program.mjs +26 -2
  58. package/src/ngtsc/reflection/src/typescript.js +2 -2
  59. package/src/ngtsc/reflection/src/typescript.mjs +2 -2
  60. package/src/ngtsc/scope/index.js +1 -1
  61. package/src/ngtsc/scope/index.mjs +1 -1
  62. package/src/ngtsc/scope/src/api.js +1 -1
  63. package/src/ngtsc/scope/src/api.mjs +1 -1
  64. package/src/ngtsc/scope/src/dependency.js +4 -1
  65. package/src/ngtsc/scope/src/dependency.mjs +4 -1
  66. package/src/ngtsc/transform/index.d.ts +1 -1
  67. package/src/ngtsc/transform/index.js +2 -3
  68. package/src/ngtsc/transform/index.mjs +2 -2
  69. package/src/ngtsc/transform/src/api.d.ts +6 -0
  70. package/src/ngtsc/transform/src/api.js +1 -1
  71. package/src/ngtsc/transform/src/api.mjs +1 -1
  72. package/src/ngtsc/transform/src/compilation.d.ts +3 -0
  73. package/src/ngtsc/transform/src/compilation.js +124 -53
  74. package/src/ngtsc/transform/src/compilation.mjs +30 -1
  75. package/src/ngtsc/transform/src/declaration.d.ts +0 -8
  76. package/src/ngtsc/transform/src/declaration.js +2 -53
  77. package/src/ngtsc/transform/src/declaration.mjs +1 -50
  78. package/src/ngtsc/translator/src/typescript_ast_factory.d.ts +1 -1
  79. package/src/ngtsc/typecheck/api/scope.d.ts +2 -1
  80. package/src/ngtsc/typecheck/api/scope.js +1 -1
  81. package/src/ngtsc/typecheck/api/scope.mjs +1 -1
  82. package/src/ngtsc/typecheck/api/symbols.d.ts +2 -1
  83. package/src/ngtsc/typecheck/api/symbols.js +1 -1
  84. package/src/ngtsc/typecheck/api/symbols.mjs +1 -1
  85. package/src/ngtsc/typecheck/src/checker.js +2 -2
  86. package/src/ngtsc/typecheck/src/checker.mjs +3 -3
  87. package/src/ngtsc/typecheck/src/expression.js +32 -4
  88. package/src/ngtsc/typecheck/src/expression.mjs +33 -5
  89. package/src/ngtsc/typecheck/src/template_symbol_builder.js +24 -10
  90. package/src/ngtsc/typecheck/src/template_symbol_builder.mjs +25 -10
  91. package/src/ngtsc/typecheck/src/type_emitter.d.ts +2 -1
  92. package/src/ngtsc/typecheck/src/type_emitter.js +35 -48
  93. package/src/ngtsc/typecheck/src/type_emitter.mjs +35 -48
  94. package/src/ngtsc/typecheck/src/type_parameter_emitter.d.ts +2 -0
  95. package/src/ngtsc/typecheck/src/type_parameter_emitter.js +21 -7
  96. package/src/ngtsc/typecheck/src/type_parameter_emitter.mjs +19 -6
  97. package/src/ngtsc/util/src/typescript.d.ts +8 -0
  98. package/src/ngtsc/util/src/typescript.js +10 -2
  99. package/src/ngtsc/util/src/typescript.mjs +8 -1
  100. package/src/ngtsc/{modulewithproviders → xi18n}/index.d.ts +2 -2
  101. package/src/ngtsc/{modulewithproviders → xi18n}/index.js +3 -3
  102. package/src/ngtsc/xi18n/index.mjs +9 -0
  103. package/src/ngtsc/xi18n/src/context.d.ts +26 -0
  104. package/src/ngtsc/xi18n/src/context.js +20 -0
  105. package/src/ngtsc/xi18n/src/context.mjs +9 -0
  106. package/src/ngtsc/{modulewithproviders/modulewithproviders.externs.js → xi18n/xi18n.externs.js} +0 -0
  107. package/src/transformers/api.d.ts +0 -3
  108. package/src/transformers/api.js +1 -1
  109. package/src/transformers/api.mjs +1 -1
  110. package/src/transformers/i18n.d.ts +14 -0
  111. package/src/transformers/i18n.js +76 -0
  112. package/src/transformers/i18n.mjs +59 -0
  113. package/src/transformers/program.d.ts +0 -4
  114. package/src/transformers/program.js +5 -56
  115. package/src/transformers/program.mjs +3 -51
  116. package/src/typescript_support.js +2 -2
  117. package/src/typescript_support.mjs +2 -2
  118. package/src/version.js +1 -1
  119. package/src/version.mjs +1 -1
  120. package/src/ngtsc/modulewithproviders/index.mjs +0 -9
  121. package/src/ngtsc/modulewithproviders/src/scanner.d.ts +0 -26
  122. package/src/ngtsc/modulewithproviders/src/scanner.js +0 -180
  123. package/src/ngtsc/modulewithproviders/src/scanner.mjs +0 -142
@@ -15,7 +15,6 @@ import { addImports } from './utils';
15
15
  export class DtsTransformRegistry {
16
16
  constructor() {
17
17
  this.ivyDeclarationTransforms = new Map();
18
- this.returnTypeTransforms = new Map();
19
18
  }
20
19
  getIvyDeclarationTransform(sf) {
21
20
  if (!this.ivyDeclarationTransforms.has(sf)) {
@@ -23,12 +22,6 @@ export class DtsTransformRegistry {
23
22
  }
24
23
  return this.ivyDeclarationTransforms.get(sf);
25
24
  }
26
- getReturnTypeTransform(sf) {
27
- if (!this.returnTypeTransforms.has(sf)) {
28
- this.returnTypeTransforms.set(sf, new ReturnTypeTransform());
29
- }
30
- return this.returnTypeTransforms.get(sf);
31
- }
32
25
  /**
33
26
  * Gets the dts transforms to be applied for the given source file, or `null` if no transform is
34
27
  * necessary.
@@ -47,10 +40,6 @@ export class DtsTransformRegistry {
47
40
  transforms = [];
48
41
  transforms.push(this.ivyDeclarationTransforms.get(originalSf));
49
42
  }
50
- if (this.returnTypeTransforms.has(originalSf)) {
51
- transforms = transforms || [];
52
- transforms.push(this.returnTypeTransforms.get(originalSf));
53
- }
54
43
  return transforms;
55
44
  }
56
45
  }
@@ -190,42 +179,4 @@ function markForEmitAsSingleLine(node) {
190
179
  ts.setEmitFlags(node, ts.EmitFlags.SingleLine);
191
180
  ts.forEachChild(node, markForEmitAsSingleLine);
192
181
  }
193
- export class ReturnTypeTransform {
194
- constructor() {
195
- this.typeReplacements = new Map();
196
- }
197
- addTypeReplacement(declaration, type) {
198
- this.typeReplacements.set(declaration, type);
199
- }
200
- transformClassElement(element, imports) {
201
- if (ts.isMethodDeclaration(element)) {
202
- const original = ts.getOriginalNode(element, ts.isMethodDeclaration);
203
- if (!this.typeReplacements.has(original)) {
204
- return element;
205
- }
206
- const returnType = this.typeReplacements.get(original);
207
- const tsReturnType = translateType(returnType, imports);
208
- return ts.updateMethod(element, element.decorators, element.modifiers, element.asteriskToken, element.name, element.questionToken, element.typeParameters, element.parameters, tsReturnType, element.body);
209
- }
210
- return element;
211
- }
212
- transformFunctionDeclaration(element, imports) {
213
- const original = ts.getOriginalNode(element);
214
- if (!this.typeReplacements.has(original)) {
215
- return element;
216
- }
217
- const returnType = this.typeReplacements.get(original);
218
- const tsReturnType = translateType(returnType, imports);
219
- return ts.updateFunctionDeclaration(
220
- /* node */ element,
221
- /* decorators */ element.decorators,
222
- /* modifiers */ element.modifiers,
223
- /* asteriskToken */ element.asteriskToken,
224
- /* name */ element.name,
225
- /* typeParameters */ element.typeParameters,
226
- /* parameters */ element.parameters,
227
- /* type */ tsReturnType,
228
- /* body */ element.body);
229
- }
230
- }
231
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjbGFyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvc3JjL25ndHNjL3RyYW5zZm9ybS9zcmMvZGVjbGFyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBR0gsT0FBTyxLQUFLLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFJakMsT0FBTyxFQUFDLGFBQWEsRUFBRSxhQUFhLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUc5RCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sU0FBUyxDQUFDO0FBRW5DOzs7R0FHRztBQUNILE1BQU0sT0FBTyxvQkFBb0I7SUFBakM7UUFDVSw2QkFBd0IsR0FBRyxJQUFJLEdBQUcsRUFBNkMsQ0FBQztRQUNoRix5QkFBb0IsR0FBRyxJQUFJLEdBQUcsRUFBc0MsQ0FBQztJQXlDL0UsQ0FBQztJQXZDQywwQkFBMEIsQ0FBQyxFQUFpQjtRQUMxQyxJQUFJLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUMxQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLDBCQUEwQixFQUFFLENBQUMsQ0FBQztTQUN6RTtRQUNELE9BQU8sSUFBSSxDQUFDLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUUsQ0FBQztJQUNoRCxDQUFDO0lBRUQsc0JBQXNCLENBQUMsRUFBaUI7UUFDdEMsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDdEMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxtQkFBbUIsRUFBRSxDQUFDLENBQUM7U0FDOUQ7UUFDRCxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsRUFB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eXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7VHlwZX0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXInO1xuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCB7SW1wb3J0UmV3cml0ZXJ9IGZyb20gJy4uLy4uL2ltcG9ydHMnO1xuaW1wb3J0IHtDbGFzc0RlY2xhcmF0aW9ufSBmcm9tICcuLi8uLi9yZWZsZWN0aW9uJztcbmltcG9ydCB7SW1wb3J0TWFuYWdlciwgdHJhbnNsYXRlVHlwZX0gZnJvbSAnLi4vLi4vdHJhbnNsYXRvcic7XG5cbmltcG9ydCB7RHRzVHJhbnNmb3JtfSBmcm9tICcuL2FwaSc7XG5pbXBvcnQge2FkZEltcG9ydHN9IGZyb20gJy4vdXRpbHMnO1xuXG4vKipcbiAqIEtlZXBzIHRyYWNrIG9mIGBEdHNUcmFuc2Zvcm1gcyBwZXIgc291cmNlIGZpbGUsIHNvIHRoYXQgaXQgaXMga25vd24gd2hpY2ggc291cmNlIGZpbGVzIG5lZWQgdG9cbiAqIGhhdmUgdGhlaXIgZGVjbGFyYXRpb24gZmlsZSB0cmFuc2Zvcm1lZC5cbiAqL1xuZXhwb3J0IGNsYXNzIER0c1RyYW5zZm9ybVJlZ2lzdHJ5IHtcbiAgcHJpdmF0ZSBpdnlEZWNsYXJhdGlvblRyYW5zZm9ybXMgPSBuZXcgTWFwPHRzLlNvdXJjZUZpbGUsIEl2eURlY2xhcmF0aW9uRHRzVHJhbnNmb3JtPigpO1xuICBwcml2YXRlIHJldHVyblR5cGVUcmFuc2Zvcm1zID0gbmV3IE1hcDx0cy5Tb3VyY2VGaWxlLCBSZXR1cm5UeXBlVHJhbnNmb3JtPigpO1xuXG4gIGdldEl2eURlY2xhcmF0aW9uVHJhbnNmb3JtKHNmOiB0cy5Tb3VyY2VGaWxlKTogSXZ5RGVjbGFyYXRpb25EdHNUcmFuc2Zvcm0ge1xuICAgIGlmICghdGhpcy5pdnlEZWNsYXJhdGlvblRyYW5zZm9ybXMuaGFzKHNmKSkge1xuICAgICAgdGhpcy5pdnlEZWNsYXJhdGlvblRyYW5zZm9ybXMuc2V0KHNmLCBuZXcgSXZ5RGVjbGFyYXRpb25EdHNUcmFuc2Zvcm0oKSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLml2eURlY2xhcmF0aW9uVHJhbnNmb3Jtcy5nZXQoc2YpITtcbiAgfVxuXG4gIGdldFJldHVyblR5cGVUcmFuc2Zvcm0oc2Y6IHRzLlNvdXJjZUZpbGUpOiBSZXR1cm5UeXBlVHJhbnNmb3JtIHtcbiAgICBpZiAoIXRoaXMucmV0dXJuVHlwZVRyYW5zZm9ybXMuaGFzKHNmKSkge1xuICAgICAgdGhpcy5yZXR1cm5UeXBlVHJhbnNmb3Jtcy5zZXQoc2YsIG5ldyBSZXR1cm5UeXBlVHJhbnNmb3JtKCkpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5yZXR1cm5UeXBlVHJhbnNmb3Jtcy5nZXQoc2YpITtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBkdHMgdHJhbnNmb3JtcyB0byBiZSBhcHBsaWVkIGZvciB0aGUgZ2l2ZW4gc291cmNlIGZpbGUsIG9yIGBudWxsYCBpZiBubyB0cmFuc2Zvcm0gaXNcbiAgICogbmVjZXNzYXJ5LlxuICAgKi9cbiAgZ2V0QWxsVHJhbnNmb3JtcyhzZjogdHMuU291cmNlRmlsZSk6IER0c1RyYW5zZm9ybVtdfG51bGwge1xuICAgIC8vIE5vIG5lZWQgdG8gdHJhbnNmb3JtIGlmIGl0J3Mgbm90IGEgZGVjbGFyYXRpb25zIGZpbGUsIG9yIGlmIG5vIGNoYW5nZXMgaGF2ZSBiZWVuIHJlcXVlc3RlZFxuICAgIC8vIHRvIHRoZSBpbnB1dCBmaWxlLiBEdWUgdG8gdGhlIHdheSBUeXBlU2NyaXB0IGFmdGVyRGVjbGFyYXRpb25zIHRyYW5zZm9ybWVycyB3b3JrLCB0aGVcbiAgICAvLyBgdHMuU291cmNlRmlsZWAgcGF0aCBpcyB0aGUgc2FtZSBhcyB0aGUgb3JpZ2luYWwgLnRzLiBUaGUgb25seSB3YXkgd2Uga25vdyBpdCdzIGFjdHVhbGx5IGFcbiAgICAvLyBkZWNsYXJhdGlvbiBmaWxlIGlzIHZpYSB0aGUgYGlzRGVjbGFyYXRpb25GaWxlYCBwcm9wZXJ0eS5cbiAgICBpZiAoIXNmLmlzRGVjbGFyYXRpb25GaWxlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3Qgb3JpZ2luYWxTZiA9IHRzLmdldE9yaWdpbmFsTm9kZShzZikgYXMgdHMuU291cmNlRmlsZTtcblxuICAgIGxldCB0cmFuc2Zvcm1zOiBEdHNUcmFuc2Zvcm1bXXxudWxsID0gbnVsbDtcbiAgICBpZiAodGhpcy5pdnlEZWNsYXJhdGlvblRyYW5zZm9ybXMuaGFzKG9yaWdpbmFsU2YpKSB7XG4gICAgICB0cmFuc2Zvcm1zID0gW107XG4gICAgICB0cmFuc2Zvcm1zLnB1c2godGhpcy5pdnlEZWNsYXJhdGlvblRyYW5zZm9ybXMuZ2V0KG9yaWdpbmFsU2YpISk7XG4gICAgfVxuICAgIGlmICh0aGlzLnJldHVyblR5cGVUcmFuc2Zvcm1zLmhhcyhvcmlnaW5hbFNmKSkge1xuICAgICAgdHJhbnNmb3JtcyA9IHRyYW5zZm9ybXMgfHwgW107XG4gICAgICB0cmFuc2Zvcm1zLnB1c2godGhpcy5yZXR1cm5UeXBlVHJhbnNmb3Jtcy5nZXQob3JpZ2luYWxTZikhKTtcbiAgICB9XG4gICAgcmV0dXJuIHRyYW5zZm9ybXM7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlY2xhcmF0aW9uVHJhbnNmb3JtRmFjdG9yeShcbiAgICB0cmFuc2Zvcm1SZWdpc3RyeTogRHRzVHJhbnNmb3JtUmVnaXN0cnksIGltcG9ydFJld3JpdGVyOiBJbXBvcnRSZXdyaXRlcixcbiAgICBpbXBvcnRQcmVmaXg/OiBzdHJpbmcpOiB0cy5UcmFuc2Zvcm1lckZhY3Rvcnk8dHMuU291cmNlRmlsZT4ge1xuICByZXR1cm4gKGNvbnRleHQ6IHRzLlRyYW5zZm9ybWF0aW9uQ29udGV4dCkgPT4ge1xuICAgIGNvbnN0IHRyYW5zZm9ybWVyID0gbmV3IER0c1RyYW5zZm9ybWVyKGNvbnRleHQsIGltcG9ydFJld3JpdGVyLCBpbXBvcnRQcmVmaXgpO1xuICAgIHJldHVybiAoZmlsZU9yQnVuZGxlKSA9PiB7XG4gICAgICBpZiAodHMuaXNCdW5kbGUoZmlsZU9yQnVuZGxlKSkge1xuICAgICAgICAvLyBPbmx5IGF0dGVtcHQgdG8gdHJhbnNmb3JtIHNvdXJjZSBmaWxlcy5cbiAgICAgICAgcmV0dXJuIGZpbGVPckJ1bmRsZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHRyYW5zZm9ybXMgPSB0cmFuc2Zvcm1SZWdpc3RyeS5nZXRBbGxUcmFuc2Zvcm1zKGZpbGVPckJ1bmRsZSk7XG4gICAgICBpZiAodHJhbnNmb3JtcyA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gZmlsZU9yQnVuZGxlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRyYW5zZm9ybWVyLnRyYW5zZm9ybShmaWxlT3JCdW5kbGUsIHRyYW5zZm9ybXMpO1xuICAgIH07XG4gIH07XG59XG5cbi8qKlxuICogUHJvY2Vzc2VzIC5kLnRzIGZpbGUgdGV4dCBhbmQgYWRkcyBzdGF0aWMgZmllbGQgZGVjbGFyYXRpb25zLCB3aXRoIHR5cGVzLlxuICovXG5jbGFzcyBEdHNUcmFuc2Zvcm1lciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgICAgcHJpdmF0ZSBjdHg6IHRzLlRyYW5zZm9ybWF0aW9uQ29udGV4dCwgcHJpdmF0ZSBpbXBvcnRSZXdyaXRlcjogSW1wb3J0UmV3cml0ZXIsXG4gICAgICBwcml2YXRlIGltcG9ydFByZWZpeD86IHN0cmluZykge31cblxuICAvKipcbiAgICogVHJhbnNmb3JtIHRoZSBkZWNsYXJhdGlvbiBmaWxlIGFuZCBhZGQgYW55IGRlY2xhcmF0aW9ucyB3aGljaCB3ZXJlIHJlY29yZGVkLlxuICAgKi9cbiAgdHJhbnNmb3JtKHNmOiB0cy5Tb3VyY2VGaWxlLCB0cmFuc2Zvcm1zOiBEdHNUcmFuc2Zvcm1bXSk6IHRzLlNvdXJjZUZpbGUge1xuICAgIGNvbnN0IGltcG9ydHMgPSBuZXcgSW1wb3J0TWFuYWdlcih0aGlzLmltcG9ydFJld3JpdGVyLCB0aGlzLmltcG9ydFByZWZpeCk7XG5cbiAgICBjb25zdCB2aXNpdG9yOiB0cy5WaXNpdG9yID0gKG5vZGU6IHRzLk5vZGUpOiB0cy5WaXNpdFJlc3VsdDx0cy5Ob2RlPiA9PiB7XG4gICAgICBpZiAodHMuaXNDbGFzc0RlY2xhcmF0aW9uKG5vZGUpKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zZm9ybUNsYXNzRGVjbGFyYXRpb24obm9kZSwgdHJhbnNmb3JtcywgaW1wb3J0cyk7XG4gICAgICB9IGVsc2UgaWYgKHRzLmlzRnVuY3Rpb25EZWNsYXJhdGlvbihub2RlKSkge1xuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2Zvcm1GdW5jdGlvbkRlY2xhcmF0aW9uKG5vZGUsIHRyYW5zZm9ybXMsIGltcG9ydHMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gT3RoZXJ3aXNlIHJldHVybiBub2RlIGFzIGlzLlxuICAgICAgICByZXR1cm4gdHMudmlzaXRFYWNoQ2hpbGQobm9kZSwgdmlzaXRvciwgdGhpcy5jdHgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICAvLyBSZWN1cnNpdmVseSBzY2FuIHRocm91Z2ggdGhlIEFTVCBhbmQgcHJvY2VzcyBhbGwgbm9kZXMgYXMgZGVzaXJlZC5cbiAgICBzZiA9IHRzLnZpc2l0Tm9kZShzZiwgdmlzaXRvcik7XG5cbiAgICAvLyBBZGQgbmV3IGltcG9ydHMgZm9yIHRoaXMgZmlsZS5cbiAgICByZXR1cm4gYWRkSW1wb3J0cyhpbXBvcnRzLCBzZik7XG4gIH1cblxuICBwcml2YXRlIHRyYW5zZm9ybUNsYXNzRGVjbGFyYXRpb24oXG4gICAgICBjbGF6ejogdHMuQ2xhc3NEZWNsYXJhdGlvbiwgdHJhbnNmb3JtczogRHRzVHJhbnNmb3JtW10sXG4gICAgICBpbXBvcnRzOiBJbXBvcnRNYW5hZ2VyKTogdHMuQ2xhc3NEZWNsYXJhdGlvbiB7XG4gICAgbGV0IGVsZW1lbnRzOiB0cy5DbGFzc0VsZW1lbnRbXXxSZWFkb25seUFycmF5PHRzLkNsYXNzRWxlbWVudD4gPSBjbGF6ei5tZW1iZXJzO1xuICAgIGxldCBlbGVtZW50c0NoYW5nZWQgPSBmYWxzZTtcblxuICAgIGZvciAoY29uc3QgdHJhbnNmb3JtIG9mIHRyYW5zZm9ybXMpIHtcbiAgICAgIGlmICh0cmFuc2Zvcm0udHJhbnNmb3JtQ2xhc3NFbGVtZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGNvbnN0IHJlcyA9IHRyYW5zZm9ybS50cmFuc2Zvcm1DbGFzc0VsZW1lbnQoZWxlbWVudHNbaV0sIGltcG9ydHMpO1xuICAgICAgICAgIGlmIChyZXMgIT09IGVsZW1lbnRzW2ldKSB7XG4gICAgICAgICAgICBpZiAoIWVsZW1lbnRzQ2hhbmdlZCkge1xuICAgICAgICAgICAgICBlbGVtZW50cyA9IFsuLi5lbGVtZW50c107XG4gICAgICAgICAgICAgIGVsZW1lbnRzQ2hhbmdlZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAoZWxlbWVudHMgYXMgdHMuQ2xhc3NFbGVtZW50W10pW2ldID0gcmVzO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBuZXdDbGF6ejogdHMuQ2xhc3NEZWNsYXJhdGlvbiA9IGNsYXp6O1xuXG4gICAgZm9yIChjb25zdCB0cmFuc2Zvcm0gb2YgdHJhbnNmb3Jtcykge1xuICAgICAgaWYgKHRyYW5zZm9ybS50cmFuc2Zvcm1DbGFzcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIC8vIElmIG5vIER0c1RyYW5zZm9ybSBoYXMgY2hhbmdlZCB0aGUgY2xhc3MgeWV0LCB0aGVuIHRoZSAocG9zc2libHkgbXV0YXRlZCkgZWxlbWVudHMgaGF2ZVxuICAgICAgICAvLyBub3QgeWV0IGJlZW4gaW5jb3Jwb3JhdGVkLiBPdGhlcndpc2UsIGBuZXdDbGF6ei5tZW1iZXJzYCBob2xkcyB0aGUgbGF0ZXN0IGNsYXNzIG1lbWJlcnMuXG4gICAgICAgIGNvbnN0IGlucHV0TWVtYmVycyA9IChjbGF6eiA9PT0gbmV3Q2xhenogPyBlbGVtZW50cyA6IG5ld0NsYXp6Lm1lbWJlcnMpO1xuXG4gICAgICAgIG5ld0NsYXp6ID0gdHJhbnNmb3JtLnRyYW5zZm9ybUNsYXNzKG5ld0NsYXp6LCBpbnB1dE1lbWJlcnMsIGltcG9ydHMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIElmIHNvbWUgZWxlbWVudHMgaGF2ZSBiZWVuIHRyYW5zZm9ybWVkIGJ1dCB0aGUgY2xhc3MgaXRzZWxmIGhhcyBub3QgYmVlbiB0cmFuc2Zvcm1lZCwgY3JlYXRlXG4gICAgLy8gYW4gdXBkYXRlZCBjbGFzcyBkZWNsYXJhdGlvbiB3aXRoIHRoZSB1cGRhdGVkIGVsZW1lbnRzLlxuICAgIGlmIChlbGVtZW50c0NoYW5nZWQgJiYgY2xhenogPT09IG5ld0NsYXp6KSB7XG4gICAgICBuZXdDbGF6eiA9IHRzLnVwZGF0ZUNsYXNzRGVjbGFyYXRpb24oXG4gICAgICAgICAgLyogbm9kZSAqLyBjbGF6eixcbiAgICAgICAgICAvKiBkZWNvcmF0b3JzICovIGNsYXp6LmRlY29yYXRvcnMsXG4gICAgICAgICAgLyogbW9kaWZpZXJzICovIGNsYXp6Lm1vZGlmaWVycyxcbiAgICAgICAgICAvKiBuYW1lICovIGNsYXp6Lm5hbWUsXG4gICAgICAgICAgLyogdHlwZVBhcmFtZXRlcnMgKi8gY2xhenoudHlwZVBhcmFtZXRlcnMsXG4gICAgICAgICAgLyogaGVyaXRhZ2VDbGF1c2VzICovIGNsYXp6Lmhlcml0YWdlQ2xhdXNlcyxcbiAgICAgICAgICAvKiBtZW1iZXJzICovIGVsZW1lbnRzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3Q2xheno7XG4gIH1cblxuICBwcml2YXRlIHRyYW5zZm9ybUZ1bmN0aW9uRGVjbGFyYXRpb24oXG4gICAgICBkZWNsYXJhdGlvbjogdHMuRnVuY3Rpb25EZWNsYXJhdGlvbiwgdHJhbnNmb3JtczogRHRzVHJhbnNmb3JtW10sXG4gICAgICBpbXBvcnRzOiBJbXBvcnRNYW5hZ2VyKTogdHMuRnVuY3Rpb25EZWNsYXJhdGlvbiB7XG4gICAgbGV0IG5ld0RlY2wgPSBkZWNsYXJhdGlvbjtcblxuICAgIGZvciAoY29uc3QgdHJhbnNmb3JtIG9mIHRyYW5zZm9ybXMpIHtcbiAgICAgIGlmICh0cmFuc2Zvcm0udHJhbnNmb3JtRnVuY3Rpb25EZWNsYXJhdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIG5ld0RlY2wgPSB0cmFuc2Zvcm0udHJhbnNmb3JtRnVuY3Rpb25EZWNsYXJhdGlvbihuZXdEZWNsLCBpbXBvcnRzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV3RGVjbDtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEl2eURlY2xhcmF0aW9uRmllbGQge1xuICBuYW1lOiBzdHJpbmc7XG4gIHR5cGU6IFR5cGU7XG59XG5cbmV4cG9ydCBjbGFzcyBJdnlEZWNsYXJhdGlvbkR0c1RyYW5zZm9ybSBpbXBsZW1lbnRzIER0c1RyYW5zZm9ybSB7XG4gIHByaXZhdGUgZGVjbGFyYXRpb25GaWVsZHMgPSBuZXcgTWFwPENsYXNzRGVjbGFyYXRpb24sIEl2eURlY2xhcmF0aW9uRmllbGRbXT4oKTtcblxuICBhZGRGaWVsZHMoZGVjbDogQ2xhc3NEZWNsYXJhdGlvbiwgZmllbGRzOiBJdnlEZWNsYXJhdGlvbkZpZWxkW10pOiB2b2lkIHtcbiAgICB0aGlzLmRlY2xhcmF0aW9uRmllbGRzLnNldChkZWNsLCBmaWVsZHMpO1xuICB9XG5cbiAgdHJhbnNmb3JtQ2xhc3MoXG4gICAgICBjbGF6ejogdHMuQ2xhc3NEZWNsYXJhdGlvbiwgbWVtYmVyczogUmVhZG9ubHlBcnJheTx0cy5DbGFzc0VsZW1lbnQ+LFxuICAgICAgaW1wb3J0czogSW1wb3J0TWFuYWdlcik6IHRzLkNsYXNzRGVjbGFyYXRpb24ge1xuICAgIGNvbnN0IG9yaWdpbmFsID0gdHMuZ2V0T3JpZ2luYWxOb2RlKGNsYXp6KSBhcyBDbGFzc0RlY2xhcmF0aW9uO1xuXG4gICAgaWYgKCF0aGlzLmRlY2xhcmF0aW9uRmllbGRzLmhhcyhvcmlnaW5hbCkpIHtcbiAgICAgIHJldHVybiBjbGF6ejtcbiAgICB9XG4gICAgY29uc3QgZmllbGRzID0gdGhpcy5kZWNsYXJhdGlvbkZpZWxkcy5nZXQob3JpZ2luYWwpITtcblxuICAgIGNvbnN0IG5ld01lbWJlcnMgPSBmaWVsZHMubWFwKGRlY2wgPT4ge1xuICAgICAgY29uc3QgbW9kaWZpZXJzID0gW3RzLmNyZWF0ZU1vZGlmaWVyKHRzLlN5bnRheEtpbmQuU3RhdGljS2V5d29yZCldO1xuICAgICAgY29uc3QgdHlwZVJlZiA9IHRyYW5zbGF0ZVR5cGUoZGVjbC50eXBlLCBpbXBvcnRzKTtcbiAgICAgIG1hcmtGb3JFbWl0QXNTaW5nbGVMaW5lKHR5cGVSZWYpO1xuICAgICAgcmV0dXJuIHRzLmNyZWF0ZVByb3BlcnR5KFxuICAgICAgICAgIC8qIGRlY29yYXRvcnMgKi8gdW5kZWZpbmVkLFxuICAgICAgICAgIC8qIG1vZGlmaWVycyAqLyBtb2RpZmllcnMsXG4gICAgICAgICAgLyogbmFtZSAqLyBkZWNsLm5hbWUsXG4gICAgICAgICAgLyogcXVlc3Rpb25PckV4Y2xhbWF0aW9uVG9rZW4gKi8gdW5kZWZpbmVkLFxuICAgICAgICAgIC8qIHR5cGUgKi8gdHlwZVJlZixcbiAgICAgICAgICAvKiBpbml0aWFsaXplciAqLyB1bmRlZmluZWQpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRzLnVwZGF0ZUNsYXNzRGVjbGFyYXRpb24oXG4gICAgICAgIC8qIG5vZGUgKi8gY2xhenosXG4gICAgICAgIC8qIGRlY29yYXRvcnMgKi8gY2xhenouZGVjb3JhdG9ycyxcbiAgICAgICAgLyogbW9kaWZpZXJzICovIGNsYXp6Lm1vZGlmaWVycyxcbiAgICAgICAgLyogbmFtZSAqLyBjbGF6ei5uYW1lLFxuICAgICAgICAvKiB0eXBlUGFyYW1ldGVycyAqLyBjbGF6ei50eXBlUGFyYW1ldGVycyxcbiAgICAgICAgLyogaGVyaXRhZ2VDbGF1c2VzICovIGNsYXp6Lmhlcml0YWdlQ2xhdXNlcyxcbiAgICAgICAgLyogbWVtYmVycyAqL1suLi5tZW1iZXJzLCAuLi5uZXdNZW1iZXJzXSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gbWFya0ZvckVtaXRBc1NpbmdsZUxpbmUobm9kZTogdHMuTm9kZSkge1xuICB0cy5zZXRFbWl0RmxhZ3Mobm9kZSwgdHMuRW1pdEZsYWdzLlNpbmdsZUxpbmUpO1xuICB0cy5mb3JFYWNoQ2hpbGQobm9kZSwgbWFya0ZvckVtaXRBc1NpbmdsZUxpbmUpO1xufVxuXG5leHBvcnQgY2xhc3MgUmV0dXJuVHlwZVRyYW5zZm9ybSBpbXBsZW1lbnRzIER0c1RyYW5zZm9ybSB7XG4gIHByaXZhdGUgdHlwZVJlcGxhY2VtZW50cyA9IG5ldyBNYXA8dHMuRGVjbGFyYXRpb24sIFR5cGU+KCk7XG5cbiAgYWRkVHlwZVJlcGxhY2VtZW50KGRlY2xhcmF0aW9uOiB0cy5EZWNsYXJhdGlvbiwgdHlwZTogVHlwZSk6IHZvaWQge1xuICAgIHRoaXMudHlwZVJlcGxhY2VtZW50cy5zZXQoZGVjbGFyYXRpb24sIHR5cGUpO1xuICB9XG5cbiAgdHJhbnNmb3JtQ2xhc3NFbGVtZW50KGVsZW1lbnQ6IHRzLkNsYXNzRWxlbWVudCwgaW1wb3J0czogSW1wb3J0TWFuYWdlcik6IHRzLkNsYXNzRWxlbWVudCB7XG4gICAgaWYgKHRzLmlzTWV0aG9kRGVjbGFyYXRpb24oZWxlbWVudCkpIHtcbiAgICAgIGNvbnN0IG9yaWdpbmFsID0gdHMuZ2V0T3JpZ2luYWxOb2RlKGVsZW1lbnQsIHRzLmlzTWV0aG9kRGVjbGFyYXRpb24pO1xuICAgICAgaWYgKCF0aGlzLnR5cGVSZXBsYWNlbWVudHMuaGFzKG9yaWdpbmFsKSkge1xuICAgICAgICByZXR1cm4gZWxlbWVudDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHJldHVyblR5cGUgPSB0aGlzLnR5cGVSZXBsYWNlbWVudHMuZ2V0KG9yaWdpbmFsKSE7XG4gICAgICBjb25zdCB0c1JldHVyblR5cGUgPSB0cmFuc2xhdGVUeXBlKHJldHVyblR5cGUsIGltcG9ydHMpO1xuXG4gICAgICByZXR1cm4gdHMudXBkYXRlTWV0aG9kKFxuICAgICAgICAgIGVsZW1lbnQsIGVsZW1lbnQuZGVjb3JhdG9ycywgZWxlbWVudC5tb2RpZmllcnMsIGVsZW1lbnQuYXN0ZXJpc2tUb2tlbiwgZWxlbWVudC5uYW1lLFxuICAgICAgICAgIGVsZW1lbnQucXVlc3Rpb25Ub2tlbiwgZWxlbWVudC50eXBlUGFyYW1ldGVycywgZWxlbWVudC5wYXJhbWV0ZXJzLCB0c1JldHVyblR5cGUsXG4gICAgICAgICAgZWxlbWVudC5ib2R5KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZWxlbWVudDtcbiAgfVxuXG4gIHRyYW5zZm9ybUZ1bmN0aW9uRGVjbGFyYXRpb24oZWxlbWVudDogdHMuRnVuY3Rpb25EZWNsYXJhdGlvbiwgaW1wb3J0czogSW1wb3J0TWFuYWdlcik6XG4gICAgICB0cy5GdW5jdGlvbkRlY2xhcmF0aW9uIHtcbiAgICBjb25zdCBvcmlnaW5hbCA9IHRzLmdldE9yaWdpbmFsTm9kZShlbGVtZW50KSBhcyB0cy5GdW5jdGlvbkRlY2xhcmF0aW9uO1xuICAgIGlmICghdGhpcy50eXBlUmVwbGFjZW1lbnRzLmhhcyhvcmlnaW5hbCkpIHtcbiAgICAgIHJldHVybiBlbGVtZW50O1xuICAgIH1cbiAgICBjb25zdCByZXR1cm5UeXBlID0gdGhpcy50eXBlUmVwbGFjZW1lbnRzLmdldChvcmlnaW5hbCkhO1xuICAgIGNvbnN0IHRzUmV0dXJuVHlwZSA9IHRyYW5zbGF0ZVR5cGUocmV0dXJuVHlwZSwgaW1wb3J0cyk7XG5cbiAgICByZXR1cm4gdHMudXBkYXRlRnVuY3Rpb25EZWNsYXJhdGlvbihcbiAgICAgICAgLyogbm9kZSAqLyBlbGVtZW50LFxuICAgICAgICAvKiBkZWNvcmF0b3JzICovIGVsZW1lbnQuZGVjb3JhdG9ycyxcbiAgICAgICAgLyogbW9kaWZpZXJzICovIGVsZW1lbnQubW9kaWZpZXJzLFxuICAgICAgICAvKiBhc3Rlcmlza1Rva2VuICovIGVsZW1lbnQuYXN0ZXJpc2tUb2tlbixcbiAgICAgICAgLyogbmFtZSAqLyBlbGVtZW50Lm5hbWUsXG4gICAgICAgIC8qIHR5cGVQYXJhbWV0ZXJzICovIGVsZW1lbnQudHlwZVBhcmFtZXRlcnMsXG4gICAgICAgIC8qIHBhcmFtZXRlcnMgKi8gZWxlbWVudC5wYXJhbWV0ZXJzLFxuICAgICAgICAvKiB0eXBlICovIHRzUmV0dXJuVHlwZSxcbiAgICAgICAgLyogYm9keSAqLyBlbGVtZW50LmJvZHkpO1xuICB9XG59XG4iXX0=
182
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjbGFyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvc3JjL25ndHNjL3RyYW5zZm9ybS9zcmMvZGVjbGFyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBR0gsT0FBTyxLQUFLLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFJakMsT0FBTyxFQUFDLGFBQWEsRUFBRSxhQUFhLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUc5RCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sU0FBUyxDQUFDO0FBRW5DOzs7R0FHRztBQUNILE1BQU0sT0FBTyxvQkFBb0I7SUFBakM7UUFDVSw2QkFBd0IsR0FBRyxJQUFJLEdBQUcsRUFBNkMsQ0FBQztJQThCMUYsQ0FBQztJQTVCQywwQkFBMEIsQ0FBQyxFQUFpQjtRQUMxQyxJQUFJLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUMxQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLDBCQUEwQixFQUFFLENBQUMsQ0FBQztTQUN6RTtRQUNELE9BQU8sSUFBSSxDQUFDLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUUsQ0FBQztJQUNoRCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsZ0JBQWdCLENBQUMsRUFBaUI7UUFDaEMsNkZBQTZGO1FBQzdGLHdGQUF3RjtRQUN4Riw2RkFBNkY7UUFDN0YsNERBQTREO1FBQzVELElBQUksQ0FBQyxFQUFFLENBQUMsaUJBQWlCLEVBQUU7WUFDekIsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFrQixDQUFDO1FBRTNELElBQUksVUFBVSxHQUF3QixJQUFJLENBQUM7UUFDM0MsSUFBSSxJ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QWEsQ0FBQyxDQUFDLENBQUM7WUFDbkUsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDbEQsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDakMsT0FBTyxFQUFFLENBQUMsY0FBYztZQUNwQixnQkFBZ0IsQ0FBQyxTQUFTO1lBQzFCLGVBQWUsQ0FBQyxTQUFTO1lBQ3pCLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSTtZQUNwQixnQ0FBZ0MsQ0FBQyxTQUFTO1lBQzFDLFVBQVUsQ0FBQyxPQUFPO1lBQ2xCLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxFQUFFLENBQUMsc0JBQXNCO1FBQzVCLFVBQVUsQ0FBQyxLQUFLO1FBQ2hCLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxVQUFVO1FBQ2pDLGVBQWUsQ0FBQyxLQUFLLENBQUMsU0FBUztRQUMvQixVQUFVLENBQUMsS0FBSyxDQUFDLElBQUk7UUFDckIsb0JBQW9CLENBQUMsS0FBSyxDQUFDLGNBQWM7UUFDekMscUJBQXFCLENBQUMsS0FBSyxDQUFDLGVBQWU7UUFDM0MsYUFBYSxDQUFBLENBQUMsR0FBRyxPQUFPLEVBQUUsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQ2hELENBQUM7Q0FDRjtBQUVELFNBQVMsdUJBQXVCLENBQUMsSUFBYTtJQUM1QyxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQy9DLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLHVCQUF1QixDQUFDLENBQUM7QUFDakQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge1R5cGV9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyJztcbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuXG5pbXBvcnQge0ltcG9ydFJld3JpdGVyfSBmcm9tICcuLi8uLi9pbXBvcnRzJztcbmltcG9ydCB7Q2xhc3NEZWNsYXJhdGlvbn0gZnJvbSAnLi4vLi4vcmVmbGVjdGlvbic7XG5pbXBvcnQge0ltcG9ydE1hbmFnZXIsIHRyYW5zbGF0ZVR5cGV9IGZyb20gJy4uLy4uL3RyYW5zbGF0b3InO1xuXG5pbXBvcnQge0R0c1RyYW5zZm9ybX0gZnJvbSAnLi9hcGknO1xuaW1wb3J0IHthZGRJbXBvcnRzfSBmcm9tICcuL3V0aWxzJztcblxuLyoqXG4gKiBLZWVwcyB0cmFjayBvZiBgRHRzVHJhbnNmb3JtYHMgcGVyIHNvdXJjZSBmaWxlLCBzbyB0aGF0IGl0IGlzIGtub3duIHdoaWNoIHNvdXJjZSBmaWxlcyBuZWVkIHRvXG4gKiBoYXZlIHRoZWlyIGRlY2xhcmF0aW9uIGZpbGUgdHJhbnNmb3JtZWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBEdHNUcmFuc2Zvcm1SZWdpc3RyeSB7XG4gIHByaXZhdGUgaXZ5RGVjbGFyYXRpb25UcmFuc2Zvcm1zID0gbmV3IE1hcDx0cy5Tb3VyY2VGaWxlLCBJdnlEZWNsYXJhdGlvbkR0c1RyYW5zZm9ybT4oKTtcblxuICBnZXRJdnlEZWNsYXJhdGlvblRyYW5zZm9ybShzZjogdHMuU291cmNlRmlsZSk6IEl2eURlY2xhcmF0aW9uRHRzVHJhbnNmb3JtIHtcbiAgICBpZiAoIXRoaXMuaXZ5RGVjbGFyYXRpb25UcmFuc2Zvcm1zLmhhcyhzZikpIHtcbiAgICAgIHRoaXMuaXZ5RGVjbGFyYXRpb25UcmFuc2Zvcm1zLnNldChzZiwgbmV3IEl2eURlY2xhcmF0aW9uRHRzVHJhbnNmb3JtKCkpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5pdnlEZWNsYXJhdGlvblRyYW5zZm9ybXMuZ2V0KHNmKSE7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgZHRzIHRyYW5zZm9ybXMgdG8gYmUgYXBwbGllZCBmb3IgdGhlIGdpdmVuIHNvdXJjZSBmaWxlLCBvciBgbnVsbGAgaWYgbm8gdHJhbnNmb3JtIGlzXG4gICAqIG5lY2Vzc2FyeS5cbiAgICovXG4gIGdldEFsbFRyYW5zZm9ybXMoc2Y6IHRzLlNvdXJjZUZpbGUpOiBEdHNUcmFuc2Zvcm1bXXxudWxsIHtcbiAgICAvLyBObyBuZWVkIHRvIHRyYW5zZm9ybSBpZiBpdCdzIG5vdCBhIGRlY2xhcmF0aW9ucyBmaWxlLCBvciBpZiBubyBjaGFuZ2VzIGhhdmUgYmVlbiByZXF1ZXN0ZWRcbiAgICAvLyB0byB0aGUgaW5wdXQgZmlsZS4gRHVlIHRvIHRoZSB3YXkgVHlwZVNjcmlwdCBhZnRlckRlY2xhcmF0aW9ucyB0cmFuc2Zvcm1lcnMgd29yaywgdGhlXG4gICAgLy8gYHRzLlNvdXJjZUZpbGVgIHBhdGggaXMgdGhlIHNhbWUgYXMgdGhlIG9yaWdpbmFsIC50cy4gVGhlIG9ubHkgd2F5IHdlIGtub3cgaXQncyBhY3R1YWxseSBhXG4gICAgLy8gZGVjbGFyYXRpb24gZmlsZSBpcyB2aWEgdGhlIGBpc0RlY2xhcmF0aW9uRmlsZWAgcHJvcGVydHkuXG4gICAgaWYgKCFzZi5pc0RlY2xhcmF0aW9uRmlsZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvbnN0IG9yaWdpbmFsU2YgPSB0cy5nZXRPcmlnaW5hbE5vZGUoc2YpIGFzIHRzLlNvdXJjZUZpbGU7XG5cbiAgICBsZXQgdHJhbnNmb3JtczogRHRzVHJhbnNmb3JtW118bnVsbCA9IG51bGw7XG4gICAgaWYgKHRoaXMuaXZ5RGVjbGFyYXRpb25UcmFuc2Zvcm1zLmhhcyhvcmlnaW5hbFNmKSkge1xuICAgICAgdHJhbnNmb3JtcyA9IFtdO1xuICAgICAgdHJhbnNmb3Jtcy5wdXNoKHRoaXMuaXZ5RGVjbGFyYXRpb25UcmFuc2Zvcm1zLmdldChvcmlnaW5hbFNmKSEpO1xuICAgIH1cbiAgICByZXR1cm4gdHJhbnNmb3JtcztcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVjbGFyYXRpb25UcmFuc2Zvcm1GYWN0b3J5KFxuICAgIHRyYW5zZm9ybVJlZ2lzdHJ5OiBEdHNUcmFuc2Zvcm1SZWdpc3RyeSwgaW1wb3J0UmV3cml0ZXI6IEltcG9ydFJld3JpdGVyLFxuICAgIGltcG9ydFByZWZpeD86IHN0cmluZyk6IHRzLlRyYW5zZm9ybWVyRmFjdG9yeTx0cy5Tb3VyY2VGaWxlPiB7XG4gIHJldHVybiAoY29udGV4dDogdHMuVHJhbnNmb3JtYXRpb25Db250ZXh0KSA9PiB7XG4gICAgY29uc3QgdHJhbnNmb3JtZXIgPSBuZXcgRHRzVHJhbnNmb3JtZXIoY29udGV4dCwgaW1wb3J0UmV3cml0ZXIsIGltcG9ydFByZWZpeCk7XG4gICAgcmV0dXJuIChmaWxlT3JCdW5kbGUpID0+IHtcbiAgICAgIGlmICh0cy5pc0J1bmRsZShmaWxlT3JCdW5kbGUpKSB7XG4gICAgICAgIC8vIE9ubHkgYXR0ZW1wdCB0byB0cmFuc2Zvcm0gc291cmNlIGZpbGVzLlxuICAgICAgICByZXR1cm4gZmlsZU9yQnVuZGxlO1xuICAgICAgfVxuICAgICAgY29uc3QgdHJhbnNmb3JtcyA9IHRyYW5zZm9ybVJlZ2lzdHJ5LmdldEFsbFRyYW5zZm9ybXMoZmlsZU9yQnVuZGxlKTtcbiAgICAgIGlmICh0cmFuc2Zvcm1zID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBmaWxlT3JCdW5kbGU7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJhbnNmb3JtZXIudHJhbnNmb3JtKGZpbGVPckJ1bmRsZSwgdHJhbnNmb3Jtcyk7XG4gICAgfTtcbiAgfTtcbn1cblxuLyoqXG4gKiBQcm9jZXNzZXMgLmQudHMgZmlsZSB0ZXh0IGFuZCBhZGRzIHN0YXRpYyBmaWVsZCBkZWNsYXJhdGlvbnMsIHdpdGggdHlwZXMuXG4gKi9cbmNsYXNzIER0c1RyYW5zZm9ybWVyIHtcbiAgY29uc3RydWN0b3IoXG4gICAgICBwcml2YXRlIGN0eDogdHMuVHJhbnNmb3JtYXRpb25Db250ZXh0LCBwcml2YXRlIGltcG9ydFJld3JpdGVyOiBJbXBvcnRSZXdyaXRlcixcbiAgICAgIHByaXZhdGUgaW1wb3J0UHJlZml4Pzogc3RyaW5nKSB7fVxuXG4gIC8qKlxuICAgKiBUcmFuc2Zvcm0gdGhlIGRlY2xhcmF0aW9uIGZpbGUgYW5kIGFkZCBhbnkgZGVjbGFyYXRpb25zIHdoaWNoIHdlcmUgcmVjb3JkZWQuXG4gICAqL1xuICB0cmFuc2Zvcm0oc2Y6IHRzLlNvdXJjZUZpbGUsIHRyYW5zZm9ybXM6IER0c1RyYW5zZm9ybVtdKTogdHMuU291cmNlRmlsZSB7XG4gICAgY29uc3QgaW1wb3J0cyA9IG5ldyBJbXBvcnRNYW5hZ2VyKHRoaXMuaW1wb3J0UmV3cml0ZXIsIHRoaXMuaW1wb3J0UHJlZml4KTtcblxuICAgIGNvbnN0IHZpc2l0b3I6IHRzLlZpc2l0b3IgPSAobm9kZTogdHMuTm9kZSk6IHRzLlZpc2l0UmVzdWx0PHRzLk5vZGU+ID0+IHtcbiAgICAgIGlmICh0cy5pc0NsYXNzRGVjbGFyYXRpb24obm9kZSkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNmb3JtQ2xhc3NEZWNsYXJhdGlvbihub2RlLCB0cmFuc2Zvcm1zLCBpbXBvcnRzKTtcbiAgICAgIH0gZWxzZSBpZiAodHMuaXNGdW5jdGlvbkRlY2xhcmF0aW9uKG5vZGUpKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zZm9ybUZ1bmN0aW9uRGVjbGFyYXRpb24obm9kZSwgdHJhbnNmb3JtcywgaW1wb3J0cyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBPdGhlcndpc2UgcmV0dXJuIG5vZGUgYXMgaXMuXG4gICAgICAgIHJldHVybiB0cy52aXNpdEVhY2hDaGlsZChub2RlLCB2aXNpdG9yLCB0aGlzLmN0eCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIC8vIFJlY3Vyc2l2ZWx5IHNjYW4gdGhyb3VnaCB0aGUgQVNUIGFuZCBwcm9jZXNzIGFsbCBub2RlcyBhcyBkZXNpcmVkLlxuICAgIHNmID0gdHMudmlzaXROb2RlKHNmLCB2aXNpdG9yKTtcblxuICAgIC8vIEFkZCBuZXcgaW1wb3J0cyBmb3IgdGhpcyBmaWxlLlxuICAgIHJldHVybiBhZGRJbXBvcnRzKGltcG9ydHMsIHNmKTtcbiAgfVxuXG4gIHByaXZhdGUgdHJhbnNmb3JtQ2xhc3NEZWNsYXJhdGlvbihcbiAgICAgIGNsYXp6OiB0cy5DbGFzc0RlY2xhcmF0aW9uLCB0cmFuc2Zvcm1zOiBEdHNUcmFuc2Zvcm1bXSxcbiAgICAgIGltcG9ydHM6IEltcG9ydE1hbmFnZXIpOiB0cy5DbGFzc0RlY2xhcmF0aW9uIHtcbiAgICBsZXQgZWxlbWVudHM6IHRzLkNsYXNzRWxlbWVudFtdfFJlYWRvbmx5QXJyYXk8dHMuQ2xhc3NFbGVtZW50PiA9IGNsYXp6Lm1lbWJlcnM7XG4gICAgbGV0IGVsZW1lbnRzQ2hhbmdlZCA9IGZhbHNlO1xuXG4gICAgZm9yIChjb25zdCB0cmFuc2Zvcm0gb2YgdHJhbnNmb3Jtcykge1xuICAgICAgaWYgKHRyYW5zZm9ybS50cmFuc2Zvcm1DbGFzc0VsZW1lbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgY29uc3QgcmVzID0gdHJhbnNmb3JtLnRyYW5zZm9ybUNsYXNzRWxlbWVudChlbGVtZW50c1tpXSwgaW1wb3J0cyk7XG4gICAgICAgICAgaWYgKHJlcyAhPT0gZWxlbWVudHNbaV0pIHtcbiAgICAgICAgICAgIGlmICghZWxlbWVudHNDaGFuZ2VkKSB7XG4gICAgICAgICAgICAgIGVsZW1lbnRzID0gWy4uLmVsZW1lbnRzXTtcbiAgICAgICAgICAgICAgZWxlbWVudHNDaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIChlbGVtZW50cyBhcyB0cy5DbGFzc0VsZW1lbnRbXSlbaV0gPSByZXM7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGV0IG5ld0NsYXp6OiB0cy5DbGFzc0RlY2xhcmF0aW9uID0gY2xheno7XG5cbiAgICBmb3IgKGNvbnN0IHRyYW5zZm9ybSBvZiB0cmFuc2Zvcm1zKSB7XG4gICAgICBpZiAodHJhbnNmb3JtLnRyYW5zZm9ybUNsYXNzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgLy8gSWYgbm8gRHRzVHJhbnNmb3JtIGhhcyBjaGFuZ2VkIHRoZSBjbGFzcyB5ZXQsIHRoZW4gdGhlIChwb3NzaWJseSBtdXRhdGVkKSBlbGVtZW50cyBoYXZlXG4gICAgICAgIC8vIG5vdCB5ZXQgYmVlbiBpbmNvcnBvcmF0ZWQuIE90aGVyd2lzZSwgYG5ld0NsYXp6Lm1lbWJlcnNgIGhvbGRzIHRoZSBsYXRlc3QgY2xhc3MgbWVtYmVycy5cbiAgICAgICAgY29uc3QgaW5wdXRNZW1iZXJzID0gKGNsYXp6ID09PSBuZXdDbGF6eiA/IGVsZW1lbnRzIDogbmV3Q2xhenoubWVtYmVycyk7XG5cbiAgICAgICAgbmV3Q2xhenogPSB0cmFuc2Zvcm0udHJhbnNmb3JtQ2xhc3MobmV3Q2xhenosIGlucHV0TWVtYmVycywgaW1wb3J0cyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSWYgc29tZSBlbGVtZW50cyBoYXZlIGJlZW4gdHJhbnNmb3JtZWQgYnV0IHRoZSBjbGFzcyBpdHNlbGYgaGFzIG5vdCBiZWVuIHRyYW5zZm9ybWVkLCBjcmVhdGVcbiAgICAvLyBhbiB1cGRhdGVkIGNsYXNzIGRlY2xhcmF0aW9uIHdpdGggdGhlIHVwZGF0ZWQgZWxlbWVudHMuXG4gICAgaWYgKGVsZW1lbnRzQ2hhbmdlZCAmJiBjbGF6eiA9PT0gbmV3Q2xhenopIHtcbiAgICAgIG5ld0NsYXp6ID0gdHMudXBkYXRlQ2xhc3NEZWNsYXJhdGlvbihcbiAgICAgICAgICAvKiBub2RlICovIGNsYXp6LFxuICAgICAgICAgIC8qIGRlY29yYXRvcnMgKi8gY2xhenouZGVjb3JhdG9ycyxcbiAgICAgICAgICAvKiBtb2RpZmllcnMgKi8gY2xhenoubW9kaWZpZXJzLFxuICAgICAgICAgIC8qIG5hbWUgKi8gY2xhenoubmFtZSxcbiAgICAgICAgICAvKiB0eXBlUGFyYW1ldGVycyAqLyBjbGF6ei50eXBlUGFyYW1ldGVycyxcbiAgICAgICAgICAvKiBoZXJpdGFnZUNsYXVzZXMgKi8gY2xhenouaGVyaXRhZ2VDbGF1c2VzLFxuICAgICAgICAgIC8qIG1lbWJlcnMgKi8gZWxlbWVudHMpO1xuICAgIH1cblxuICAgIHJldHVybiBuZXdDbGF6ejtcbiAgfVxuXG4gIHByaXZhdGUgdHJhbnNmb3JtRnVuY3Rpb25EZWNsYXJhdGlvbihcbiAgICAgIGRlY2xhcmF0aW9uOiB0cy5GdW5jdGlvbkRlY2xhcmF0aW9uLCB0cmFuc2Zvcm1zOiBEdHNUcmFuc2Zvcm1bXSxcbiAgICAgIGltcG9ydHM6IEltcG9ydE1hbmFnZXIpOiB0cy5GdW5jdGlvbkRlY2xhcmF0aW9uIHtcbiAgICBsZXQgbmV3RGVjbCA9IGRlY2xhcmF0aW9uO1xuXG4gICAgZm9yIChjb25zdCB0cmFuc2Zvcm0gb2YgdHJhbnNmb3Jtcykge1xuICAgICAgaWYgKHRyYW5zZm9ybS50cmFuc2Zvcm1GdW5jdGlvbkRlY2xhcmF0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgbmV3RGVjbCA9IHRyYW5zZm9ybS50cmFuc2Zvcm1GdW5jdGlvbkRlY2xhcmF0aW9uKG5ld0RlY2wsIGltcG9ydHMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBuZXdEZWNsO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSXZ5RGVjbGFyYXRpb25GaWVsZCB7XG4gIG5hbWU6IHN0cmluZztcbiAgdHlwZTogVHlwZTtcbn1cblxuZXhwb3J0IGNsYXNzIEl2eURlY2xhcmF0aW9uRHRzVHJhbnNmb3JtIGltcGxlbWVudHMgRHRzVHJhbnNmb3JtIHtcbiAgcHJpdmF0ZSBkZWNsYXJhdGlvbkZpZWxkcyA9IG5ldyBNYXA8Q2xhc3NEZWNsYXJhdGlvbiwgSXZ5RGVjbGFyYXRpb25GaWVsZFtdPigpO1xuXG4gIGFkZEZpZWxkcyhkZWNsOiBDbGFzc0RlY2xhcmF0aW9uLCBmaWVsZHM6IEl2eURlY2xhcmF0aW9uRmllbGRbXSk6IHZvaWQge1xuICAgIHRoaXMuZGVjbGFyYXRpb25GaWVsZHMuc2V0KGRlY2wsIGZpZWxkcyk7XG4gIH1cblxuICB0cmFuc2Zvcm1DbGFzcyhcbiAgICAgIGNsYXp6OiB0cy5DbGFzc0RlY2xhcmF0aW9uLCBtZW1iZXJzOiBSZWFkb25seUFycmF5PHRzLkNsYXNzRWxlbWVudD4sXG4gICAgICBpbXBvcnRzOiBJbXBvcnRNYW5hZ2VyKTogdHMuQ2xhc3NEZWNsYXJhdGlvbiB7XG4gICAgY29uc3Qgb3JpZ2luYWwgPSB0cy5nZXRPcmlnaW5hbE5vZGUoY2xhenopIGFzIENsYXNzRGVjbGFyYXRpb247XG5cbiAgICBpZiAoIXRoaXMuZGVjbGFyYXRpb25GaWVsZHMuaGFzKG9yaWdpbmFsKSkge1xuICAgICAgcmV0dXJuIGNsYXp6O1xuICAgIH1cbiAgICBjb25zdCBmaWVsZHMgPSB0aGlzLmRlY2xhcmF0aW9uRmllbGRzLmdldChvcmlnaW5hbCkhO1xuXG4gICAgY29uc3QgbmV3TWVtYmVycyA9IGZpZWxkcy5tYXAoZGVjbCA9PiB7XG4gICAgICBjb25zdCBtb2RpZmllcnMgPSBbdHMuY3JlYXRlTW9kaWZpZXIodHMuU3ludGF4S2luZC5TdGF0aWNLZXl3b3JkKV07XG4gICAgICBjb25zdCB0eXBlUmVmID0gdHJhbnNsYXRlVHlwZShkZWNsLnR5cGUsIGltcG9ydHMpO1xuICAgICAgbWFya0ZvckVtaXRBc1NpbmdsZUxpbmUodHlwZVJlZik7XG4gICAgICByZXR1cm4gdHMuY3JlYXRlUHJvcGVydHkoXG4gICAgICAgICAgLyogZGVjb3JhdG9ycyAqLyB1bmRlZmluZWQsXG4gICAgICAgICAgLyogbW9kaWZpZXJzICovIG1vZGlmaWVycyxcbiAgICAgICAgICAvKiBuYW1lICovIGRlY2wubmFtZSxcbiAgICAgICAgICAvKiBxdWVzdGlvbk9yRXhjbGFtYXRpb25Ub2tlbiAqLyB1bmRlZmluZWQsXG4gICAgICAgICAgLyogdHlwZSAqLyB0eXBlUmVmLFxuICAgICAgICAgIC8qIGluaXRpYWxpemVyICovIHVuZGVmaW5lZCk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdHMudXBkYXRlQ2xhc3NEZWNsYXJhdGlvbihcbiAgICAgICAgLyogbm9kZSAqLyBjbGF6eixcbiAgICAgICAgLyogZGVjb3JhdG9ycyAqLyBjbGF6ei5kZWNvcmF0b3JzLFxuICAgICAgICAvKiBtb2RpZmllcnMgKi8gY2xhenoubW9kaWZpZXJzLFxuICAgICAgICAvKiBuYW1lICovIGNsYXp6Lm5hbWUsXG4gICAgICAgIC8qIHR5cGVQYXJhbWV0ZXJzICovIGNsYXp6LnR5cGVQYXJhbWV0ZXJzLFxuICAgICAgICAvKiBoZXJpdGFnZUNsYXVzZXMgKi8gY2xhenouaGVyaXRhZ2VDbGF1c2VzLFxuICAgICAgICAvKiBtZW1iZXJzICovWy4uLm1lbWJlcnMsIC4uLm5ld01lbWJlcnNdKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBtYXJrRm9yRW1pdEFzU2luZ2xlTGluZShub2RlOiB0cy5Ob2RlKSB7XG4gIHRzLnNldEVtaXRGbGFncyhub2RlLCB0cy5FbWl0RmxhZ3MuU2luZ2xlTGluZSk7XG4gIHRzLmZvckVhY2hDaGlsZChub2RlLCBtYXJrRm9yRW1pdEFzU2luZ2xlTGluZSk7XG59XG4iXX0=
@@ -35,7 +35,7 @@ export declare class TypeScriptAstFactory implements AstFactory<ts.Statement, ts
35
35
  createNewExpression(expression: ts.Expression, args: ts.Expression[]): ts.Expression;
36
36
  createObjectLiteral(properties: ObjectLiteralProperty<ts.Expression>[]): ts.Expression;
37
37
  createParenthesizedExpression: (expression: ts.Expression) => ts.ParenthesizedExpression;
38
- createPropertyAccess: (expression: ts.Expression, name: string | ts.Identifier | ts.PrivateIdentifier) => ts.PropertyAccessExpression;
38
+ createPropertyAccess: (expression: ts.Expression, name: string | ts.MemberName) => ts.PropertyAccessExpression;
39
39
  createReturnStatement(expression: ts.Expression | null): ts.Statement;
40
40
  createTaggedTemplate(tag: ts.Expression, template: TemplateLiteral<ts.Expression>): ts.Expression;
41
41
  createThrowStatement: (expression: ts.Expression) => ts.ThrowStatement;
@@ -8,6 +8,7 @@
8
8
  /// <amd-module name="@angular/compiler-cli/src/ngtsc/typecheck/api/scope" />
9
9
  import * as ts from 'typescript';
10
10
  import { ClassDeclaration } from '../../reflection';
11
+ import { SymbolWithValueDeclaration } from '../../util/src/typescript';
11
12
  /**
12
13
  * Metadata on a directive which is available in the scope of a template.
13
14
  */
@@ -15,7 +16,7 @@ export interface DirectiveInScope {
15
16
  /**
16
17
  * The `ts.Symbol` for the directive class.
17
18
  */
18
- tsSymbol: ts.Symbol;
19
+ tsSymbol: SymbolWithValueDeclaration;
19
20
  /**
20
21
  * The module which declares the directive.
21
22
  */
@@ -17,4 +17,4 @@
17
17
  "use strict";
18
18
  Object.defineProperty(exports, "__esModule", { value: true });
19
19
  });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NvcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvc3JjL25ndHNjL3R5cGVjaGVjay9hcGkvc2NvcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuaW1wb3J0IHtDbGFzc0RlY2xhcmF0aW9ufSBmcm9tICcuLi8uLi9yZWZsZWN0aW9uJztcblxuLyoqXG4gKiBNZXRhZGF0YSBvbiBhIGRpcmVjdGl2ZSB3aGljaCBpcyBhdmFpbGFibGUgaW4gdGhlIHNjb3BlIG9mIGEgdGVtcGxhdGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGlyZWN0aXZlSW5TY29wZSB7XG4gIC8qKlxuICAgKiBUaGUgYHRzLlN5bWJvbGAgZm9yIHRoZSBkaXJlY3RpdmUgY2xhc3MuXG4gICAqL1xuICB0c1N5bWJvbDogdHMuU3ltYm9sO1xuXG4gIC8qKlxuICAgKiBUaGUgbW9kdWxlIHdoaWNoIGRlY2xhcmVzIHRoZSBkaXJlY3RpdmUuXG4gICAqL1xuICBuZ01vZHVsZTogQ2xhc3NEZWNsYXJhdGlvbnxudWxsO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VsZWN0b3IgZm9yIHRoZSBkaXJlY3RpdmUgb3IgY29tcG9uZW50LlxuICAgKi9cbiAgc2VsZWN0b3I6IHN0cmluZztcblxuICAvKipcbiAgICogYHRydWVgIGlmIHRoaXMgZGlyZWN0aXZlIGlzIGEgY29tcG9uZW50LlxuICAgKi9cbiAgaXNDb21wb25lbnQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGB0cnVlYCBpZiB0aGlzIGRpcmVjdGl2ZSBpcyBhIHN0cnVjdHVyYWwgZGlyZWN0aXZlLlxuICAgKi9cbiAgaXNTdHJ1Y3R1cmFsOiBib29sZWFuO1xufVxuXG4vKipcbiAqIE1ldGFkYXRhIGZvciBhIHBpcGUgd2hpY2ggaXMgYXZhaWxhYmxlIGluIHRoZSBzY29wZSBvZiBhIHRlbXBsYXRlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBpcGVJblNjb3BlIHtcbiAgLyoqXG4gICAqIFRoZSBgdHMuU3ltYm9sYCBmb3IgdGhlIHBpcGUgY2xhc3MuXG4gICAqL1xuICB0c1N5bWJvbDogdHMuU3ltYm9sO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBwaXBlLlxuICAgKi9cbiAgbmFtZTogc3RyaW5nO1xufVxuIl19
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NvcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvc3JjL25ndHNjL3R5cGVjaGVjay9hcGkvc2NvcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuaW1wb3J0IHtDbGFzc0RlY2xhcmF0aW9ufSBmcm9tICcuLi8uLi9yZWZsZWN0aW9uJztcbmltcG9ydCB7U3ltYm9sV2l0aFZhbHVlRGVjbGFyYXRpb259IGZyb20gJy4uLy4uL3V0aWwvc3JjL3R5cGVzY3JpcHQnO1xuXG4vKipcbiAqIE1ldGFkYXRhIG9uIGEgZGlyZWN0aXZlIHdoaWNoIGlzIGF2YWlsYWJsZSBpbiB0aGUgc2NvcGUgb2YgYSB0ZW1wbGF0ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEaXJlY3RpdmVJblNjb3BlIHtcbiAgLyoqXG4gICAqIFRoZSBgdHMuU3ltYm9sYCBmb3IgdGhlIGRpcmVjdGl2ZSBjbGFzcy5cbiAgICovXG4gIHRzU3ltYm9sOiBTeW1ib2xXaXRoVmFsdWVEZWNsYXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIG1vZHVsZSB3aGljaCBkZWNsYXJlcyB0aGUgZGlyZWN0aXZlLlxuICAgKi9cbiAgbmdNb2R1bGU6IENsYXNzRGVjbGFyYXRpb258bnVsbDtcblxuICAvKipcbiAgICogVGhlIHNlbGVjdG9yIGZvciB0aGUgZGlyZWN0aXZlIG9yIGNvbXBvbmVudC5cbiAgICovXG4gIHNlbGVjdG9yOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIGB0cnVlYCBpZiB0aGlzIGRpcmVjdGl2ZSBpcyBhIGNvbXBvbmVudC5cbiAgICovXG4gIGlzQ29tcG9uZW50OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBgdHJ1ZWAgaWYgdGhpcyBkaXJlY3RpdmUgaXMgYSBzdHJ1Y3R1cmFsIGRpcmVjdGl2ZS5cbiAgICovXG4gIGlzU3RydWN0dXJhbDogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBNZXRhZGF0YSBmb3IgYSBwaXBlIHdoaWNoIGlzIGF2YWlsYWJsZSBpbiB0aGUgc2NvcGUgb2YgYSB0ZW1wbGF0ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQaXBlSW5TY29wZSB7XG4gIC8qKlxuICAgKiBUaGUgYHRzLlN5bWJvbGAgZm9yIHRoZSBwaXBlIGNsYXNzLlxuICAgKi9cbiAgdHNTeW1ib2w6IHRzLlN5bWJvbDtcblxuICAvKipcbiAgICogTmFtZSBvZiB0aGUgcGlwZS5cbiAgICovXG4gIG5hbWU6IHN0cmluZztcbn1cbiJdfQ==
@@ -6,4 +6,4 @@
6
6
  * found in the LICENSE file at https://angular.io/license
7
7
  */
8
8
  export {};
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NvcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvc3JjL25ndHNjL3R5cGVjaGVjay9hcGkvc2NvcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuaW1wb3J0IHtDbGFzc0RlY2xhcmF0aW9ufSBmcm9tICcuLi8uLi9yZWZsZWN0aW9uJztcblxuLyoqXG4gKiBNZXRhZGF0YSBvbiBhIGRpcmVjdGl2ZSB3aGljaCBpcyBhdmFpbGFibGUgaW4gdGhlIHNjb3BlIG9mIGEgdGVtcGxhdGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGlyZWN0aXZlSW5TY29wZSB7XG4gIC8qKlxuICAgKiBUaGUgYHRzLlN5bWJvbGAgZm9yIHRoZSBkaXJlY3RpdmUgY2xhc3MuXG4gICAqL1xuICB0c1N5bWJvbDogdHMuU3ltYm9sO1xuXG4gIC8qKlxuICAgKiBUaGUgbW9kdWxlIHdoaWNoIGRlY2xhcmVzIHRoZSBkaXJlY3RpdmUuXG4gICAqL1xuICBuZ01vZHVsZTogQ2xhc3NEZWNsYXJhdGlvbnxudWxsO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VsZWN0b3IgZm9yIHRoZSBkaXJlY3RpdmUgb3IgY29tcG9uZW50LlxuICAgKi9cbiAgc2VsZWN0b3I6IHN0cmluZztcblxuICAvKipcbiAgICogYHRydWVgIGlmIHRoaXMgZGlyZWN0aXZlIGlzIGEgY29tcG9uZW50LlxuICAgKi9cbiAgaXNDb21wb25lbnQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGB0cnVlYCBpZiB0aGlzIGRpcmVjdGl2ZSBpcyBhIHN0cnVjdHVyYWwgZGlyZWN0aXZlLlxuICAgKi9cbiAgaXNTdHJ1Y3R1cmFsOiBib29sZWFuO1xufVxuXG4vKipcbiAqIE1ldGFkYXRhIGZvciBhIHBpcGUgd2hpY2ggaXMgYXZhaWxhYmxlIGluIHRoZSBzY29wZSBvZiBhIHRlbXBsYXRlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBpcGVJblNjb3BlIHtcbiAgLyoqXG4gICAqIFRoZSBgdHMuU3ltYm9sYCBmb3IgdGhlIHBpcGUgY2xhc3MuXG4gICAqL1xuICB0c1N5bWJvbDogdHMuU3ltYm9sO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBwaXBlLlxuICAgKi9cbiAgbmFtZTogc3RyaW5nO1xufVxuIl19
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NvcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvc3JjL25ndHNjL3R5cGVjaGVjay9hcGkvc2NvcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuaW1wb3J0IHtDbGFzc0RlY2xhcmF0aW9ufSBmcm9tICcuLi8uLi9yZWZsZWN0aW9uJztcbmltcG9ydCB7U3ltYm9sV2l0aFZhbHVlRGVjbGFyYXRpb259IGZyb20gJy4uLy4uL3V0aWwvc3JjL3R5cGVzY3JpcHQnO1xuXG4vKipcbiAqIE1ldGFkYXRhIG9uIGEgZGlyZWN0aXZlIHdoaWNoIGlzIGF2YWlsYWJsZSBpbiB0aGUgc2NvcGUgb2YgYSB0ZW1wbGF0ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEaXJlY3RpdmVJblNjb3BlIHtcbiAgLyoqXG4gICAqIFRoZSBgdHMuU3ltYm9sYCBmb3IgdGhlIGRpcmVjdGl2ZSBjbGFzcy5cbiAgICovXG4gIHRzU3ltYm9sOiBTeW1ib2xXaXRoVmFsdWVEZWNsYXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIG1vZHVsZSB3aGljaCBkZWNsYXJlcyB0aGUgZGlyZWN0aXZlLlxuICAgKi9cbiAgbmdNb2R1bGU6IENsYXNzRGVjbGFyYXRpb258bnVsbDtcblxuICAvKipcbiAgICogVGhlIHNlbGVjdG9yIGZvciB0aGUgZGlyZWN0aXZlIG9yIGNvbXBvbmVudC5cbiAgICovXG4gIHNlbGVjdG9yOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIGB0cnVlYCBpZiB0aGlzIGRpcmVjdGl2ZSBpcyBhIGNvbXBvbmVudC5cbiAgICovXG4gIGlzQ29tcG9uZW50OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBgdHJ1ZWAgaWYgdGhpcyBkaXJlY3RpdmUgaXMgYSBzdHJ1Y3R1cmFsIGRpcmVjdGl2ZS5cbiAgICovXG4gIGlzU3RydWN0dXJhbDogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBNZXRhZGF0YSBmb3IgYSBwaXBlIHdoaWNoIGlzIGF2YWlsYWJsZSBpbiB0aGUgc2NvcGUgb2YgYSB0ZW1wbGF0ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQaXBlSW5TY29wZSB7XG4gIC8qKlxuICAgKiBUaGUgYHRzLlN5bWJvbGAgZm9yIHRoZSBwaXBlIGNsYXNzLlxuICAgKi9cbiAgdHNTeW1ib2w6IHRzLlN5bWJvbDtcblxuICAvKipcbiAgICogTmFtZSBvZiB0aGUgcGlwZS5cbiAgICovXG4gIG5hbWU6IHN0cmluZztcbn1cbiJdfQ==
@@ -9,6 +9,7 @@
9
9
  import { TmplAstElement, TmplAstReference, TmplAstTemplate, TmplAstVariable } from '@angular/compiler';
10
10
  import * as ts from 'typescript';
11
11
  import { AbsoluteFsPath } from '../../file_system';
12
+ import { SymbolWithValueDeclaration } from '../../util/src/typescript';
12
13
  import { DirectiveInScope } from './scope';
13
14
  export declare enum SymbolKind {
14
15
  Input = 0,
@@ -245,7 +246,7 @@ export interface ClassSymbol {
245
246
  /** The `ts.Type` of class. */
246
247
  tsType: ts.Type;
247
248
  /** The `ts.Symbol` for class. */
248
- tsSymbol: ts.Symbol;
249
+ tsSymbol: SymbolWithValueDeclaration;
249
250
  /** The position for the variable declaration for the class instance. */
250
251
  shimLocation: ShimLocation;
251
252
  }
@@ -32,4 +32,4 @@
32
32
  SymbolKind[SymbolKind["Pipe"] = 10] = "Pipe";
33
33
  })(SymbolKind = exports.SymbolKind || (exports.SymbolKind = {}));
34
34
  });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ltYm9scy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvdHlwZWNoZWNrL2FwaS9zeW1ib2xzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7OztJQVNILElBQVksVUFZWDtJQVpELFdBQVksVUFBVTtRQUNwQiw2Q0FBSyxDQUFBO1FBQ0wsK0NBQU0sQ0FBQTtRQUNOLGlEQUFPLENBQUE7UUFDUCxxREFBUyxDQUFBO1FBQ1QsbURBQVEsQ0FBQTtRQUNSLHFEQUFTLENBQUE7UUFDVCxpREFBTyxDQUFBO1FBQ1AsbURBQVEsQ0FBQTtRQUNSLHVEQUFVLENBQUE7UUFDVix1REFBVSxDQUFBO1FBQ1YsNENBQUksQ0FBQTtJQUNOLENBQUMsRUFaVyxVQUFVLEdBQVYsa0JBQVUsS0FBVixrQkFBVSxRQVlyQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge1RtcGxBc3RFbGVtZW50LCBUbXBsQXN0UmVmZXJlbmNlLCBUbXBsQXN0VGVtcGxhdGUsIFRtcGxBc3RWYXJpYWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXInO1xuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCB7QWJzb2x1dGVGc1BhdGh9IGZyb20gJy4uLy4uL2ZpbGVfc3lzdGVtJztcbmltcG9ydCB7Q2xhc3NEZWNsYXJhdGlvbn0gZnJvbSAnLi4vLi4vcmVmbGVjdGlvbic7XG5pbXBvcnQge0RpcmVjdGl2ZUluU2NvcGV9IGZyb20gJy4vc2NvcGUnO1xuXG5leHBvcnQgZW51bSBTeW1ib2xLaW5kIHtcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgQmluZGluZyxcbiAgUmVmZXJlbmNlLFxuICBWYXJpYWJsZSxcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50LFxuICBUZW1wbGF0ZSxcbiAgRXhwcmVzc2lvbixcbiAgRG9tQmluZGluZyxcbiAgUGlwZSxcbn1cblxuLyoqXG4gKiBBIHJlcHJlc2VudGF0aW9uIG9mIGFuIGVudGl0eSBpbiB0aGUgYFRlbXBsYXRlQXN0YC5cbiAqL1xuZXhwb3J0IHR5cGUgU3ltYm9sID0gSW5wdXRCaW5kaW5nU3ltYm9sfE91dHB1dEJpbmRpbmdTeW1ib2x8RWxlbWVudFN5bWJvbHxSZWZlcmVuY2VTeW1ib2x8XG4gICAgVmFyaWFibGVTeW1ib2x8RXhwcmVzc2lvblN5bWJvbHxEaXJlY3RpdmVTeW1ib2x8VGVtcGxhdGVTeW1ib2x8RG9tQmluZGluZ1N5bWJvbHxQaXBlU3ltYm9sO1xuXG4vKipcbiAqIEEgYFN5bWJvbGAgd2hpY2ggZGVjbGFyZXMgYSBuZXcgbmFtZWQgZW50aXR5IGluIHRoZSB0ZW1wbGF0ZSBzY29wZS5cbiAqL1xuZXhwb3J0IHR5cGUgVGVtcGxhdGVEZWNsYXJhdGlvblN5bWJvbCA9IFJlZmVyZW5jZVN5bWJvbHxWYXJpYWJsZVN5bWJvbDtcblxuLyoqIEluZm9ybWF0aW9uIGFib3V0IHdoZXJlIGEgYHRzLk5vZGVgIGNhbiBiZSBmb3VuZCBpbiB0aGUgdHlwZSBjaGVjayBibG9jayBzaGltIGZpbGUuICovXG5leHBvcnQgaW50ZXJmYWNlIFNoaW1Mb2NhdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgZnVsbHkgcXVhbGlmaWVkIHBhdGggb2YgdGhlIGZpbGUgd2hpY2ggY29udGFpbnMgdGhlIGdlbmVyYXRlZCBUeXBlU2NyaXB0IHR5cGUgY2hlY2tcbiAgICogY29kZSBmb3IgdGhlIGNvbXBvbmVudCdzIHRlbXBsYXRlLlxuICAgKi9cbiAgc2hpbVBhdGg6IEFic29sdXRlRnNQYXRoO1xuXG4gIC8qKiBUaGUgbG9jYXRpb24gaW4gdGhlIHNoaW0gZmlsZSB3aGVyZSBub2RlIGFwcGVhcnMuICovXG4gIHBvc2l0aW9uSW5TaGltRmlsZTogbnVtYmVyO1xufVxuXG4vKipcbiAqIEEgZ2VuZXJpYyByZXByZXNlbnRhdGlvbiBvZiBzb21lIG5vZGUgaW4gYSB0ZW1wbGF0ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUc05vZGVTeW1ib2xJbmZvIHtcbiAgLyoqIFRoZSBgdHMuVHlwZWAgb2YgdGhlIHRlbXBsYXRlIG5vZGUuICovXG4gIHRzVHlwZTogdHMuVHlwZTtcblxuICAvKiogVGhlIGB0cy5TeW1ib2xgIGZvciB0aGUgdGVtcGxhdGUgbm9kZSAqL1xuICB0c1N5bWJvbDogdHMuU3ltYm9sfG51bGw7XG5cbiAgLyoqIFRoZSBwb3NpdGlvbiBvZiB0aGUgbW9zdCByZWxldmFudCBwYXJ0IG9mIHRoZSB0ZW1wbGF0ZSBub2RlLiAqL1xuICBzaGltTG9jYXRpb246IFNoaW1Mb2NhdGlvbjtcbn1cblxuLyoqXG4gKiBBIHJlcHJlc2VudGF0aW9uIG9mIGFuIGV4cHJlc3Npb24gaW4gYSBjb21wb25lbnQgdGVtcGxhdGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXhwcmVzc2lvblN5bWJvbCB7XG4gIGtpbmQ6IFN5bWJvbEtpbmQuRXhwcmVzc2lvbjtcblxuICAvKiogVGhlIGB0cy5UeXBlYCBvZiB0aGUgZXhwcmVzc2lvbiBBU1QuICovXG4gIHRzVHlwZTogdHMuVHlwZTtcblxuICAvKipcbiAgICogVGhlIGB0cy5TeW1ib2xgIG9mIHRoZSBlbnRpdHkuIFRoaXMgY291bGQgYmUgYG51bGxgLCBmb3IgZXhhbXBsZSBgQVNUYCBleHByZXNzaW9uXG4gICAqIGB7e2Zvby5iYXIgKyBmb28uYmF6fX1gIGRvZXMgbm90IGhhdmUgYSBgdHMuU3ltYm9sYCBidXQgYGZvby5iYXJgIGFuZCBgZm9vLmJhemAgYm90aCBkby5cbiAgICovXG4gIHRzU3ltYm9sOiB0cy5TeW1ib2x8bnVsbDtcblxuICAvKiogVGhlIHBvc2l0aW9uIG9mIHRoZSBtb3N0IHJlbGV2YW50IHBhcnQgb2YgdGhlIGV4cHJlc3Npb24uICovXG4gIHNoaW1Mb2NhdGlvbjogU2hpbUxvY2F0aW9uO1xufVxuXG4vKiogUmVwcmVzZW50cyBlaXRoZXIgYW4gaW5wdXQgb3Igb3V0cHV0IGJpbmRpbmcgaW4gYSB0ZW1wbGF0ZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmluZGluZ1N5bWJvbCB7XG4gIGtpbmQ6IFN5bWJvbEtpbmQuQmluZGluZztcblxuICAvKiogVGhlIGB0cy5UeXBlYCBvZiB0aGUgY2xhc3MgbWVtYmVyIG9uIHRoZSBkaXJlY3RpdmUgdGhhdCBpcyB0aGUgdGFyZ2V0IG9mIHRoZSBiaW5kaW5nLiAqL1xuICB0c1R5cGU6IHRzLlR5cGU7XG5cbiAgLyoqIFRoZSBgdHMuU3ltYm9sYCBvZiB0aGUgY2xhc3MgbWVtYmVyIG9uIHRoZSBkaXJlY3RpdmUgdGhhdCBpcyB0aGUgdGFyZ2V0IG9mIHRoZSBiaW5kaW5nLiAqL1xuICB0c1N5bWJvbDogdHMuU3ltYm9sO1xuXG4gIC8qKlxuICAgKiBUaGUgYERpcmVjdGl2ZVN5bWJvbGAgb3IgYEVsZW1lbnRTeW1ib2xgIGZvciB0aGUgRGlyZWN0aXZlLCBDb21wb25lbnQsIG9yIGBIVE1MRWxlbWVudGAgd2l0aFxuICAgKiB0aGUgYmluZGluZy5cbiAgICovXG4gIHRhcmdldDogRGlyZWN0aXZlU3ltYm9sfEVsZW1lbnRTeW1ib2x8VGVtcGxhdGVTeW1ib2w7XG5cbiAgLyoqIFRoZSBsb2NhdGlvbiBpbiB0aGUgc2hpbSBmaWxlIHdoZXJlIHRoZSBmaWVsZCBhY2Nlc3MgZm9yIHRoZSBiaW5kaW5nIGFwcGVhcnMuICovXG4gIHNoaW1Mb2NhdGlvbjogU2hpbUxvY2F0aW9uO1xufVxuXG4vKipcbiAqIEEgcmVwcmVzZW50YXRpb24gb2YgYW4gaW5wdXQgYmluZGluZyBpbiBhIGNvbXBvbmVudCB0ZW1wbGF0ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnB1dEJpbmRpbmdTeW1ib2wge1xuICBraW5kOiBTeW1ib2xLaW5kLklucHV0O1xuXG4gIC8qKiBBIHNpbmdsZSBpbnB1dCBtYXkgYmUgYm91bmQgdG8gbXVsdGlwbGUgY29tcG9uZW50cyBvciBkaXJlY3RpdmVzLiAqL1xuICBiaW5kaW5nczogQmluZGluZ1N5bWJvbFtdO1xufVxuXG4vKipcbiAqIEEgcmVwcmVzZW50YXRpb24gb2YgYW4gb3V0cHV0IGJpbmRpbmcgaW4gYSBjb21wb25lbnQgdGVtcGxhdGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3V0cHV0QmluZGluZ1N5bWJvbCB7XG4gIGtpbmQ6IFN5bWJvbEtpbmQuT3V0cHV0O1xuXG4gIC8qKiBBIHNpbmdsZSBvdXRwdXQgbWF5IGJlIGJvdW5kIHRvIG11bHRpcGxlIGNvbXBvbmVudHMgb3IgZGlyZWN0aXZlcy4gKi9cbiAgYmluZGluZ3M6IEJpbmRpbmdTeW1ib2xbXTtcbn1cblxuLyoqXG4gKiBBIHJlcHJlc2VudGF0aW9uIG9mIGEgbG9jYWwgcmVmZXJlbmNlIGluIGEgY29tcG9uZW50IHRlbXBsYXRlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlZmVyZW5jZVN5bWJvbCB7XG4gIGtpbmQ6IFN5bWJvbEtpbmQuUmVmZXJlbmNlO1xuXG4gIC8qKlxuICAgKiBUaGUgYHRzLlR5cGVgIG9mIHRoZSBSZWZlcmVuY2UgdmFsdWUuXG4gICAqXG4gICAqIGBUbXBsQXN0VGVtcGxhdGVgIC0gVGhlIHR5cGUgb2YgdGhlIGBUZW1wbGF0ZVJlZmBcbiAgICogYFRtcGxBc3RFbGVtZW50YCAtIFRoZSBgdHMuVHlwZWAgZm9yIHRoZSBgSFRNTEVsZW1lbnRgLlxuICAgKiBEaXJlY3RpdmUgLSBUaGUgYHRzLlR5cGVgIGZvciB0aGUgY2xhc3MgZGVjbGFyYXRpb24uXG4gICAqL1xuICB0c1R5cGU6IHRzLlR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSBgdHMuU3ltYm9sYCBmb3IgdGhlIFJlZmVyZW5jZSB2YWx1ZS5cbiAgICpcbiAgICogYFRtcGxBc3RUZW1wbGF0ZWAgLSBBIGBUZW1wbGF0ZVJlZmAgc3ltYm9sLlxuICAgKiBgVG1wbEFzdEVsZW1lbnRgIC0gVGhlIHN5bWJvbCBmb3IgdGhlIGBIVE1MRWxlbWVudGAuXG4gICAqIERpcmVjdGl2ZSAtIFRoZSBzeW1ib2wgZm9yIHRoZSBjbGFzcyBkZWNsYXJhdGlvbiBvZiB0aGUgZGlyZWN0aXZlLlxuICAgKi9cbiAgdHNTeW1ib2w6IHRzLlN5bWJvbDtcblxuICAvKipcbiAgICogRGVwZW5kaW5nIG9uIHRoZSB0eXBlIG9mIHRoZSByZWZlcmVuY2UsIHRoaXMgaXMgb25lIG9mIHRoZSBmb2xsb3dpbmc6XG4gICAqICAtIGBUbXBsQXN0RWxlbWVudGAgd2hlbiB0aGUgbG9jYWwgcmVmIHJlZmVycyB0byB0aGUgSFRNTCBlbGVtZW50XG4gICAqICAtIGBUbXBsQXN0VGVtcGxhdGVgIHdoZW4gdGhlIHJlZiByZWZlcnMgdG8gYW4gYG5nLXRlbXBsYXRlYFxuICAgKiAgLSBgdHMuQ2xhc3NEZWNsYXJhdGlvbmAgd2hlbiB0aGUgbG9jYWwgcmVmIHJlZmVycyB0byBhIERpcmVjdGl2ZSBpbnN0YW5jZSAoI3JlZj1cIm15RXhwb3J0QXNcIilcbiAgICovXG4gIHRhcmdldDogVG1wbEFzdEVsZW1lbnR8VG1wbEFzdFRlbXBsYXRlfHRzLkNsYXNzRGVjbGFyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBub2RlIGluIHRoZSBgVGVtcGxhdGVBc3RgIHdoZXJlIHRoZSBzeW1ib2wgaXMgZGVjbGFyZWQuIFRoYXQgaXMsIG5vZGUgZm9yIHRoZSBgI3JlZmAgb3JcbiAgICogYCNyZWY9XCJleHBvcnRBc1wiYC5cbiAgICovXG4gIGRlY2xhcmF0aW9uOiBUbXBsQXN0UmVmZXJlbmNlO1xuXG4gIC8qKlxuICAgKiBUaGUgbG9jYXRpb24gaW4gdGhlIHNoaW0gZmlsZSBvZiBhIHZhcmlhYmxlIHRoYXQgaG9sZHMgdGhlIHR5cGUgb2YgdGhlIGxvY2FsIHJlZi5cbiAgICogRm9yIGV4YW1wbGUsIGEgcmVmZXJlbmNlIGRlY2xhcmF0aW9uIGxpa2UgdGhlIGZvbGxvd2luZzpcbiAgICogYGBgXG4gICAqIHZhciBfdDEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICogdmFyIF90MiA9IF90MTsgLy8gVGhpcyBpcyB0aGUgcmVmZXJlbmNlIGRlY2xhcmF0aW9uXG4gICAqIGBgYFxuICAgKiBUaGlzIGB0YXJnZXRMb2NhdGlvbmAgaXMgYFtfdDEgdmFyaWFibGUgZGVjbGFyYXRpb25dLmdldFN0YXJ0KClgLlxuICAgKi9cbiAgdGFyZ2V0TG9jYXRpb246IFNoaW1Mb2NhdGlvbjtcblxuICAvKipcbiAgICogVGhlIGxvY2F0aW9uIGluIHRoZSBUQ0IgZm9yIHRoZSBpZGVudGlmaWVyIG5vZGUgaW4gdGhlIHJlZmVyZW5jZSB2YXJpYWJsZSBkZWNsYXJhdGlvbi5cbiAgICogRm9yIGV4YW1wbGUsIGdpdmVuIGEgdmFyaWFibGUgZGVjbGFyYXRpb24gc3RhdGVtZW50IGZvciBhIHRlbXBsYXRlIHJlZmVyZW5jZTpcbiAgICogYHZhciBfdDIgPSBfdDFgLCB0aGlzIGxvY2F0aW9uIGlzIGBbX3QyIG5vZGVdLmdldFN0YXJ0KClgLiBUaGlzIGxvY2F0aW9uIGNhblxuICAgKiBiZSB1c2VkIHRvIGZpbmQgcmVmZXJlbmNlcyB0byB0aGUgdmFyaWFibGUgd2l0aGluIHRoZSB0ZW1wbGF0ZS5cbiAgICovXG4gIHJlZmVyZW5jZVZhckxvY2F0aW9uOiBTaGltTG9jYXRpb247XG59XG5cbi8qKlxuICogQSByZXByZXNlbnRhdGlvbiBvZiBhIGNvbnRleHQgdmFyaWFibGUgaW4gYSBjb21wb25lbnQgdGVtcGxhdGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmFyaWFibGVTeW1ib2wge1xuICBraW5kOiBTeW1ib2xLaW5kLlZhcmlhYmxlO1xuXG4gIC8qKlxuICAgKiBUaGUgYHRzLlR5cGVgIG9mIHRoZSBlbnRpdHkuXG4gICAqXG4gICAqIFRoaXMgd2lsbCBiZSBgYW55YCBpZiB0aGVyZSBpcyBubyBgbmdUZW1wbGF0ZUNvbnRleHRHdWFyZGAuXG4gICAqL1xuICB0c1R5cGU6IHRzLlR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSBgdHMuU3ltYm9sYCBmb3IgdGhlIGNvbnRleHQgdmFyaWFibGUuXG4gICAqXG4gICAqIFRoaXMgd2lsbCBiZSBgbnVsbGAgaWYgdGhlcmUgaXMgbm8gYG5nVGVtcGxhdGVDb250ZXh0R3VhcmRgLlxuICAgKi9cbiAgdHNTeW1ib2w6IHRzLlN5bWJvbHxudWxsO1xuXG4gIC8qKlxuICAgKiBUaGUgbm9kZSBpbiB0aGUgYFRlbXBsYXRlQXN0YCB3aGVyZSB0aGUgdmFyaWFibGUgaXMgZGVjbGFyZWQuIFRoYXQgaXMsIHRoZSBub2RlIGZvciB0aGUgYGxldC1gXG4gICAqIG5vZGUgaW4gdGhlIHRlbXBsYXRlLlxuICAgKi9cbiAgZGVjbGFyYXRpb246IFRtcGxBc3RWYXJpYWJsZTtcblxuICAvKipcbiAgICogVGhlIGxvY2F0aW9uIGluIHRoZSBzaGltIGZpbGUgZm9yIHRoZSBpZGVudGlmaWVyIHRoYXQgd2FzIGRlY2xhcmVkIGZvciB0aGUgdGVtcGxhdGUgdmFyaWFibGUuXG4gICAqL1xuICBsb2NhbFZhckxvY2F0aW9uOiBTaGltTG9jYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBsb2NhdGlvbiBpbiB0aGUgc2hpbSBmaWxlIGZvciB0aGUgaW5pdGlhbGl6ZXIgbm9kZSBvZiB0aGUgdmFyaWFibGUgdGhhdCByZXByZXNlbnRzIHRoZVxuICAgKiB0ZW1wbGF0ZSB2YXJpYWJsZS5cbiAgICovXG4gIGluaXRpYWxpemVyTG9jYXRpb246IFNoaW1Mb2NhdGlvbjtcbn1cblxuLyoqXG4gKiBBIHJlcHJlc2VudGF0aW9uIG9mIGFuIGVsZW1lbnQgaW4gYSBjb21wb25lbnQgdGVtcGxhdGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRWxlbWVudFN5bWJvbCB7XG4gIGtpbmQ6IFN5bWJvbEtpbmQuRWxlbWVudDtcblxuICAvKiogVGhlIGB0cy5UeXBlYCBmb3IgdGhlIGBIVE1MRWxlbWVudGAuICovXG4gIHRzVHlwZTogdHMuVHlwZTtcblxuICAvKiogVGhlIGB0cy5TeW1ib2xgIGZvciB0aGUgYEhUTUxFbGVtZW50YC4gKi9cbiAgdHNTeW1ib2w6IHRzLlN5bWJvbHxudWxsO1xuXG4gIC8qKiBBIGxpc3Qgb2YgZGlyZWN0aXZlcyBhcHBsaWVkIHRvIHRoZSBlbGVtZW50LiAqL1xuICBkaXJlY3RpdmVzOiBEaXJlY3RpdmVTeW1ib2xbXTtcblxuICAvKiogVGhlIGxvY2F0aW9uIGluIHRoZSBzaGltIGZpbGUgZm9yIHRoZSB2YXJpYWJsZSB0aGF0IGhvbGRzIHRoZSB0eXBlIG9mIHRoZSBlbGVtZW50LiAqL1xuICBzaGltTG9jYXRpb246IFNoaW1Mb2NhdGlvbjtcblxuICB0ZW1wbGF0ZU5vZGU6IFRtcGxBc3RFbGVtZW50O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRlbXBsYXRlU3ltYm9sIHtcbiAga2luZDogU3ltYm9sS2luZC5UZW1wbGF0ZTtcblxuICAvKiogQSBsaXN0IG9mIGRpcmVjdGl2ZXMgYXBwbGllZCB0byB0aGUgZWxlbWVudC4gKi9cbiAgZGlyZWN0aXZlczogRGlyZWN0aXZlU3ltYm9sW107XG5cbiAgdGVtcGxhdGVOb2RlOiBUbXBsQXN0VGVtcGxhdGU7XG59XG5cbi8qKlxuICogQSByZXByZXNlbnRhdGlvbiBvZiBhIGRpcmVjdGl2ZS9jb21wb25lbnQgd2hvc2Ugc2VsZWN0b3IgbWF0Y2hlcyBhIG5vZGUgaW4gYSBjb21wb25lbnRcbiAqIHRlbXBsYXRlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERpcmVjdGl2ZVN5bWJvbCBleHRlbmRzIERpcmVjdGl2ZUluU2NvcGUge1xuICBraW5kOiBTeW1ib2xLaW5kLkRpcmVjdGl2ZTtcblxuICAvKiogVGhlIGB0cy5UeXBlYCBmb3IgdGhlIGNsYXNzIGRlY2xhcmF0aW9uLiAqL1xuICB0c1R5cGU6IHRzLlR5cGU7XG5cbiAgLyoqIFRoZSBsb2NhdGlvbiBpbiB0aGUgc2hpbSBmaWxlIGZvciB0aGUgdmFyaWFibGUgdGhhdCBob2xkcyB0aGUgdHlwZSBvZiB0aGUgZGlyZWN0aXZlLiAqL1xuICBzaGltTG9jYXRpb246IFNoaW1Mb2NhdGlvbjtcbn1cblxuLyoqXG4gKiBBIHJlcHJlc2VudGF0aW9uIG9mIGFuIGF0dHJpYnV0ZSBvbiBhbiBlbGVtZW50IG9yIHRlbXBsYXRlLiBUaGVzZSBiaW5kaW5ncyBhcmVuJ3QgY3VycmVudGx5XG4gKiB0eXBlLWNoZWNrZWQgKHNlZSBgY2hlY2tUeXBlT2ZEb21CaW5kaW5nc2ApIHNvIHRoZXkgd29uJ3QgaGF2ZSBhIGB0cy5UeXBlYCwgYHRzLlN5bWJvbGAsIG9yIHNoaW1cbiAqIGxvY2F0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERvbUJpbmRpbmdTeW1ib2wge1xuICBraW5kOiBTeW1ib2xLaW5kLkRvbUJpbmRpbmc7XG5cbiAgLyoqIFRoZSBzeW1ib2wgZm9yIHRoZSBlbGVtZW50IG9yIHRlbXBsYXRlIG9mIHRoZSB0ZXh0IGF0dHJpYnV0ZS4gKi9cbiAgaG9zdDogRWxlbWVudFN5bWJvbHxUZW1wbGF0ZVN5bWJvbDtcbn1cblxuLyoqXG4gKiBBIHJlcHJlc2VudGF0aW9uIGZvciBhIGNhbGwgdG8gYSBwaXBlJ3MgdHJhbnNmb3JtIG1ldGhvZCBpbiB0aGUgVENCLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBpcGVTeW1ib2wge1xuICBraW5kOiBTeW1ib2xLaW5kLlBpcGU7XG5cbiAgLyoqIFRoZSBgdHMuVHlwZWAgb2YgdGhlIHRyYW5zZm9ybSBub2RlLiAqL1xuICB0c1R5cGU6IHRzLlR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSBgdHMuU3ltYm9sYCBmb3IgdGhlIHRyYW5zZm9ybSBjYWxsLiBUaGlzIGNvdWxkIGJlIGBudWxsYCB3aGVuIGBjaGVja1R5cGVPZlBpcGVzYCBpcyBzZXQgdG9cbiAgICogYGZhbHNlYCBiZWNhdXNlIHRoZSB0cmFuc2Zvcm0gY2FsbCB3b3VsZCBiZSBvZiB0aGUgZm9ybSBgKF9waXBlMSBhcyBhbnkpLnRyYW5zZm9ybSgpYFxuICAgKi9cbiAgdHNTeW1ib2w6IHRzLlN5bWJvbHxudWxsO1xuXG4gIC8qKiBUaGUgcG9zaXRpb24gb2YgdGhlIHRyYW5zZm9ybSBjYWxsIGluIHRoZSB0ZW1wbGF0ZS4gKi9cbiAgc2hpbUxvY2F0aW9uOiBTaGltTG9jYXRpb247XG5cbiAgLyoqIFRoZSBzeW1ib2wgZm9yIHRoZSBwaXBlIGNsYXNzIGFzIGFuIGluc3RhbmNlIHRoYXQgYXBwZWFycyBpbiB0aGUgVENCLiAqL1xuICBjbGFzc1N5bWJvbDogQ2xhc3NTeW1ib2w7XG59XG5cbi8qKiBSZXByZXNlbnRzIGFuIGluc3RhbmNlIG9mIGEgY2xhc3MgZm91bmQgaW4gdGhlIFRDQiwgaS5lLiBgdmFyIF9waXBlMTogTXlQaXBlID0gbnVsbCE7ICovXG5leHBvcnQgaW50ZXJmYWNlIENsYXNzU3ltYm9sIHtcbiAgLyoqIFRoZSBgdHMuVHlwZWAgb2YgY2xhc3MuICovXG4gIHRzVHlwZTogdHMuVHlwZTtcblxuICAvKiogVGhlIGB0cy5TeW1ib2xgIGZvciBjbGFzcy4gKi9cbiAgdHNTeW1ib2w6IHRzLlN5bWJvbDtcblxuICAvKiogVGhlIHBvc2l0aW9uIGZvciB0aGUgdmFyaWFibGUgZGVjbGFyYXRpb24gZm9yIHRoZSBjbGFzcyBpbnN0YW5jZS4gKi9cbiAgc2hpbUxvY2F0aW9uOiBTaGltTG9jYXRpb247XG59Il19
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ltYm9scy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvdHlwZWNoZWNrL2FwaS9zeW1ib2xzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7OztJQVVILElBQVksVUFZWDtJQVpELFdBQVksVUFBVTtRQUNwQiw2Q0FBSyxDQUFBO1FBQ0wsK0NBQU0sQ0FBQTtRQUNOLGlEQUFPLENBQUE7UUFDUCxxREFBUyxDQUFBO1FBQ1QsbURBQVEsQ0FBQTtRQUNSLHFEQUFTLENBQUE7UUFDVCxpREFBTyxDQUFBO1FBQ1AsbURBQVEsQ0FBQTtRQUNSLHVEQUFVLENBQUE7UUFDVix1REFBVSxDQUFBO1FBQ1YsNENBQUksQ0FBQTtJQUNOLENBQUMsRUFaVyxVQUFVLEdBQVYsa0JBQVUsS0FBVixrQkFBVSxRQVlyQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge1RtcGxBc3RFbGVtZW50LCBUbXBsQXN0UmVmZXJlbmNlLCBUbXBsQXN0VGVtcGxhdGUsIFRtcGxBc3RWYXJpYWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXInO1xuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCB7QWJzb2x1dGVGc1BhdGh9IGZyb20gJy4uLy4uL2ZpbGVfc3lzdGVtJztcbmltcG9ydCB7U3ltYm9sV2l0aFZhbHVlRGVjbGFyYXRpb259IGZyb20gJy4uLy4uL3V0aWwvc3JjL3R5cGVzY3JpcHQnO1xuXG5pbXBvcnQge0RpcmVjdGl2ZUluU2NvcGV9IGZyb20gJy4vc2NvcGUnO1xuXG5leHBvcnQgZW51bSBTeW1ib2xLaW5kIHtcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgQmluZGluZyxcbiAgUmVmZXJlbmNlLFxuICBWYXJpYWJsZSxcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50LFxuICBUZW1wbGF0ZSxcbiAgRXhwcmVzc2lvbixcbiAgRG9tQmluZGluZyxcbiAgUGlwZSxcbn1cblxuLyoqXG4gKiBBIHJlcHJlc2VudGF0aW9uIG9mIGFuIGVudGl0eSBpbiB0aGUgYFRlbXBsYXRlQXN0YC5cbiAqL1xuZXhwb3J0IHR5cGUgU3ltYm9sID0gSW5wdXRCaW5kaW5nU3ltYm9sfE91dHB1dEJpbmRpbmdTeW1ib2x8RWxlbWVudFN5bWJvbHxSZWZlcmVuY2VTeW1ib2x8XG4gICAgVmFyaWFibGVTeW1ib2x8RXhwcmVzc2lvblN5bWJvbHxEaXJlY3RpdmVTeW1ib2x8VGVtcGxhdGVTeW1ib2x8RG9tQmluZGluZ1N5bWJvbHxQaXBlU3ltYm9sO1xuXG4vKipcbiAqIEEgYFN5bWJvbGAgd2hpY2ggZGVjbGFyZXMgYSBuZXcgbmFtZWQgZW50aXR5IGluIHRoZSB0ZW1wbGF0ZSBzY29wZS5cbiAqL1xuZXhwb3J0IHR5cGUgVGVtcGxhdGVEZWNsYXJhdGlvblN5bWJvbCA9IFJlZmVyZW5jZVN5bWJvbHxWYXJpYWJsZVN5bWJvbDtcblxuLyoqIEluZm9ybWF0aW9uIGFib3V0IHdoZXJlIGEgYHRzLk5vZGVgIGNhbiBiZSBmb3VuZCBpbiB0aGUgdHlwZSBjaGVjayBibG9jayBzaGltIGZpbGUuICovXG5leHBvcnQgaW50ZXJmYWNlIFNoaW1Mb2NhdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgZnVsbHkgcXVhbGlmaWVkIHBhdGggb2YgdGhlIGZpbGUgd2hpY2ggY29udGFpbnMgdGhlIGdlbmVyYXRlZCBUeXBlU2NyaXB0IHR5cGUgY2hlY2tcbiAgICogY29kZSBmb3IgdGhlIGNvbXBvbmVudCdzIHRlbXBsYXRlLlxuICAgKi9cbiAgc2hpbVBhdGg6IEFic29sdXRlRnNQYXRoO1xuXG4gIC8qKiBUaGUgbG9jYXRpb24gaW4gdGhlIHNoaW0gZmlsZSB3aGVyZSBub2RlIGFwcGVhcnMuICovXG4gIHBvc2l0aW9uSW5TaGltRmlsZTogbnVtYmVyO1xufVxuXG4vKipcbiAqIEEgZ2VuZXJpYyByZXByZXNlbnRhdGlvbiBvZiBzb21lIG5vZGUgaW4gYSB0ZW1wbGF0ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUc05vZGVTeW1ib2xJbmZvIHtcbiAgLyoqIFRoZSBgdHMuVHlwZWAgb2YgdGhlIHRlbXBsYXRlIG5vZGUuICovXG4gIHRzVHlwZTogdHMuVHlwZTtcblxuICAvKiogVGhlIGB0cy5TeW1ib2xgIGZvciB0aGUgdGVtcGxhdGUgbm9kZSAqL1xuICB0c1N5bWJvbDogdHMuU3ltYm9sfG51bGw7XG5cbiAgLyoqIFRoZSBwb3NpdGlvbiBvZiB0aGUgbW9zdCByZWxldmFudCBwYXJ0IG9mIHRoZSB0ZW1wbGF0ZSBub2RlLiAqL1xuICBzaGltTG9jYXRpb246IFNoaW1Mb2NhdGlvbjtcbn1cblxuLyoqXG4gKiBBIHJlcHJlc2VudGF0aW9uIG9mIGFuIGV4cHJlc3Npb24gaW4gYSBjb21wb25lbnQgdGVtcGxhdGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXhwcmVzc2lvblN5bWJvbCB7XG4gIGtpbmQ6IFN5bWJvbEtpbmQuRXhwcmVzc2lvbjtcblxuICAvKiogVGhlIGB0cy5UeXBlYCBvZiB0aGUgZXhwcmVzc2lvbiBBU1QuICovXG4gIHRzVHlwZTogdHMuVHlwZTtcblxuICAvKipcbiAgICogVGhlIGB0cy5TeW1ib2xgIG9mIHRoZSBlbnRpdHkuIFRoaXMgY291bGQgYmUgYG51bGxgLCBmb3IgZXhhbXBsZSBgQVNUYCBleHByZXNzaW9uXG4gICAqIGB7e2Zvby5iYXIgKyBmb28uYmF6fX1gIGRvZXMgbm90IGhhdmUgYSBgdHMuU3ltYm9sYCBidXQgYGZvby5iYXJgIGFuZCBgZm9vLmJhemAgYm90aCBkby5cbiAgICovXG4gIHRzU3ltYm9sOiB0cy5TeW1ib2x8bnVsbDtcblxuICAvKiogVGhlIHBvc2l0aW9uIG9mIHRoZSBtb3N0IHJlbGV2YW50IHBhcnQgb2YgdGhlIGV4cHJlc3Npb24uICovXG4gIHNoaW1Mb2NhdGlvbjogU2hpbUxvY2F0aW9uO1xufVxuXG4vKiogUmVwcmVzZW50cyBlaXRoZXIgYW4gaW5wdXQgb3Igb3V0cHV0IGJpbmRpbmcgaW4gYSB0ZW1wbGF0ZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmluZGluZ1N5bWJvbCB7XG4gIGtpbmQ6IFN5bWJvbEtpbmQuQmluZGluZztcblxuICAvKiogVGhlIGB0cy5UeXBlYCBvZiB0aGUgY2xhc3MgbWVtYmVyIG9uIHRoZSBkaXJlY3RpdmUgdGhhdCBpcyB0aGUgdGFyZ2V0IG9mIHRoZSBiaW5kaW5nLiAqL1xuICB0c1R5cGU6IHRzLlR5cGU7XG5cbiAgLyoqIFRoZSBgdHMuU3ltYm9sYCBvZiB0aGUgY2xhc3MgbWVtYmVyIG9uIHRoZSBkaXJlY3RpdmUgdGhhdCBpcyB0aGUgdGFyZ2V0IG9mIHRoZSBiaW5kaW5nLiAqL1xuICB0c1N5bWJvbDogdHMuU3ltYm9sO1xuXG4gIC8qKlxuICAgKiBUaGUgYERpcmVjdGl2ZVN5bWJvbGAgb3IgYEVsZW1lbnRTeW1ib2xgIGZvciB0aGUgRGlyZWN0aXZlLCBDb21wb25lbnQsIG9yIGBIVE1MRWxlbWVudGAgd2l0aFxuICAgKiB0aGUgYmluZGluZy5cbiAgICovXG4gIHRhcmdldDogRGlyZWN0aXZlU3ltYm9sfEVsZW1lbnRTeW1ib2x8VGVtcGxhdGVTeW1ib2w7XG5cbiAgLyoqIFRoZSBsb2NhdGlvbiBpbiB0aGUgc2hpbSBmaWxlIHdoZXJlIHRoZSBmaWVsZCBhY2Nlc3MgZm9yIHRoZSBiaW5kaW5nIGFwcGVhcnMuICovXG4gIHNoaW1Mb2NhdGlvbjogU2hpbUxvY2F0aW9uO1xufVxuXG4vKipcbiAqIEEgcmVwcmVzZW50YXRpb24gb2YgYW4gaW5wdXQgYmluZGluZyBpbiBhIGNvbXBvbmVudCB0ZW1wbGF0ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnB1dEJpbmRpbmdTeW1ib2wge1xuICBraW5kOiBTeW1ib2xLaW5kLklucHV0O1xuXG4gIC8qKiBBIHNpbmdsZSBpbnB1dCBtYXkgYmUgYm91bmQgdG8gbXVsdGlwbGUgY29tcG9uZW50cyBvciBkaXJlY3RpdmVzLiAqL1xuICBiaW5kaW5nczogQmluZGluZ1N5bWJvbFtdO1xufVxuXG4vKipcbiAqIEEgcmVwcmVzZW50YXRpb24gb2YgYW4gb3V0cHV0IGJpbmRpbmcgaW4gYSBjb21wb25lbnQgdGVtcGxhdGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3V0cHV0QmluZGluZ1N5bWJvbCB7XG4gIGtpbmQ6IFN5bWJvbEtpbmQuT3V0cHV0O1xuXG4gIC8qKiBBIHNpbmdsZSBvdXRwdXQgbWF5IGJlIGJvdW5kIHRvIG11bHRpcGxlIGNvbXBvbmVudHMgb3IgZGlyZWN0aXZlcy4gKi9cbiAgYmluZGluZ3M6IEJpbmRpbmdTeW1ib2xbXTtcbn1cblxuLyoqXG4gKiBBIHJlcHJlc2VudGF0aW9uIG9mIGEgbG9jYWwgcmVmZXJlbmNlIGluIGEgY29tcG9uZW50IHRlbXBsYXRlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlZmVyZW5jZVN5bWJvbCB7XG4gIGtpbmQ6IFN5bWJvbEtpbmQuUmVmZXJlbmNlO1xuXG4gIC8qKlxuICAgKiBUaGUgYHRzLlR5cGVgIG9mIHRoZSBSZWZlcmVuY2UgdmFsdWUuXG4gICAqXG4gICAqIGBUbXBsQXN0VGVtcGxhdGVgIC0gVGhlIHR5cGUgb2YgdGhlIGBUZW1wbGF0ZVJlZmBcbiAgICogYFRtcGxBc3RFbGVtZW50YCAtIFRoZSBgdHMuVHlwZWAgZm9yIHRoZSBgSFRNTEVsZW1lbnRgLlxuICAgKiBEaXJlY3RpdmUgLSBUaGUgYHRzLlR5cGVgIGZvciB0aGUgY2xhc3MgZGVjbGFyYXRpb24uXG4gICAqL1xuICB0c1R5cGU6IHRzLlR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSBgdHMuU3ltYm9sYCBmb3IgdGhlIFJlZmVyZW5jZSB2YWx1ZS5cbiAgICpcbiAgICogYFRtcGxBc3RUZW1wbGF0ZWAgLSBBIGBUZW1wbGF0ZVJlZmAgc3ltYm9sLlxuICAgKiBgVG1wbEFzdEVsZW1lbnRgIC0gVGhlIHN5bWJvbCBmb3IgdGhlIGBIVE1MRWxlbWVudGAuXG4gICAqIERpcmVjdGl2ZSAtIFRoZSBzeW1ib2wgZm9yIHRoZSBjbGFzcyBkZWNsYXJhdGlvbiBvZiB0aGUgZGlyZWN0aXZlLlxuICAgKi9cbiAgdHNTeW1ib2w6IHRzLlN5bWJvbDtcblxuICAvKipcbiAgICogRGVwZW5kaW5nIG9uIHRoZSB0eXBlIG9mIHRoZSByZWZlcmVuY2UsIHRoaXMgaXMgb25lIG9mIHRoZSBmb2xsb3dpbmc6XG4gICAqICAtIGBUbXBsQXN0RWxlbWVudGAgd2hlbiB0aGUgbG9jYWwgcmVmIHJlZmVycyB0byB0aGUgSFRNTCBlbGVtZW50XG4gICAqICAtIGBUbXBsQXN0VGVtcGxhdGVgIHdoZW4gdGhlIHJlZiByZWZlcnMgdG8gYW4gYG5nLXRlbXBsYXRlYFxuICAgKiAgLSBgdHMuQ2xhc3NEZWNsYXJhdGlvbmAgd2hlbiB0aGUgbG9jYWwgcmVmIHJlZmVycyB0byBhIERpcmVjdGl2ZSBpbnN0YW5jZSAoI3JlZj1cIm15RXhwb3J0QXNcIilcbiAgICovXG4gIHRhcmdldDogVG1wbEFzdEVsZW1lbnR8VG1wbEFzdFRlbXBsYXRlfHRzLkNsYXNzRGVjbGFyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBub2RlIGluIHRoZSBgVGVtcGxhdGVBc3RgIHdoZXJlIHRoZSBzeW1ib2wgaXMgZGVjbGFyZWQuIFRoYXQgaXMsIG5vZGUgZm9yIHRoZSBgI3JlZmAgb3JcbiAgICogYCNyZWY9XCJleHBvcnRBc1wiYC5cbiAgICovXG4gIGRlY2xhcmF0aW9uOiBUbXBsQXN0UmVmZXJlbmNlO1xuXG4gIC8qKlxuICAgKiBUaGUgbG9jYXRpb24gaW4gdGhlIHNoaW0gZmlsZSBvZiBhIHZhcmlhYmxlIHRoYXQgaG9sZHMgdGhlIHR5cGUgb2YgdGhlIGxvY2FsIHJlZi5cbiAgICogRm9yIGV4YW1wbGUsIGEgcmVmZXJlbmNlIGRlY2xhcmF0aW9uIGxpa2UgdGhlIGZvbGxvd2luZzpcbiAgICogYGBgXG4gICAqIHZhciBfdDEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICogdmFyIF90MiA9IF90MTsgLy8gVGhpcyBpcyB0aGUgcmVmZXJlbmNlIGRlY2xhcmF0aW9uXG4gICAqIGBgYFxuICAgKiBUaGlzIGB0YXJnZXRMb2NhdGlvbmAgaXMgYFtfdDEgdmFyaWFibGUgZGVjbGFyYXRpb25dLmdldFN0YXJ0KClgLlxuICAgKi9cbiAgdGFyZ2V0TG9jYXRpb246IFNoaW1Mb2NhdGlvbjtcblxuICAvKipcbiAgICogVGhlIGxvY2F0aW9uIGluIHRoZSBUQ0IgZm9yIHRoZSBpZGVudGlmaWVyIG5vZGUgaW4gdGhlIHJlZmVyZW5jZSB2YXJpYWJsZSBkZWNsYXJhdGlvbi5cbiAgICogRm9yIGV4YW1wbGUsIGdpdmVuIGEgdmFyaWFibGUgZGVjbGFyYXRpb24gc3RhdGVtZW50IGZvciBhIHRlbXBsYXRlIHJlZmVyZW5jZTpcbiAgICogYHZhciBfdDIgPSBfdDFgLCB0aGlzIGxvY2F0aW9uIGlzIGBbX3QyIG5vZGVdLmdldFN0YXJ0KClgLiBUaGlzIGxvY2F0aW9uIGNhblxuICAgKiBiZSB1c2VkIHRvIGZpbmQgcmVmZXJlbmNlcyB0byB0aGUgdmFyaWFibGUgd2l0aGluIHRoZSB0ZW1wbGF0ZS5cbiAgICovXG4gIHJlZmVyZW5jZVZhckxvY2F0aW9uOiBTaGltTG9jYXRpb247XG59XG5cbi8qKlxuICogQSByZXByZXNlbnRhdGlvbiBvZiBhIGNvbnRleHQgdmFyaWFibGUgaW4gYSBjb21wb25lbnQgdGVtcGxhdGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmFyaWFibGVTeW1ib2wge1xuICBraW5kOiBTeW1ib2xLaW5kLlZhcmlhYmxlO1xuXG4gIC8qKlxuICAgKiBUaGUgYHRzLlR5cGVgIG9mIHRoZSBlbnRpdHkuXG4gICAqXG4gICAqIFRoaXMgd2lsbCBiZSBgYW55YCBpZiB0aGVyZSBpcyBubyBgbmdUZW1wbGF0ZUNvbnRleHRHdWFyZGAuXG4gICAqL1xuICB0c1R5cGU6IHRzLlR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSBgdHMuU3ltYm9sYCBmb3IgdGhlIGNvbnRleHQgdmFyaWFibGUuXG4gICAqXG4gICAqIFRoaXMgd2lsbCBiZSBgbnVsbGAgaWYgdGhlcmUgaXMgbm8gYG5nVGVtcGxhdGVDb250ZXh0R3VhcmRgLlxuICAgKi9cbiAgdHNTeW1ib2w6IHRzLlN5bWJvbHxudWxsO1xuXG4gIC8qKlxuICAgKiBUaGUgbm9kZSBpbiB0aGUgYFRlbXBsYXRlQXN0YCB3aGVyZSB0aGUgdmFyaWFibGUgaXMgZGVjbGFyZWQuIFRoYXQgaXMsIHRoZSBub2RlIGZvciB0aGUgYGxldC1gXG4gICAqIG5vZGUgaW4gdGhlIHRlbXBsYXRlLlxuICAgKi9cbiAgZGVjbGFyYXRpb246IFRtcGxBc3RWYXJpYWJsZTtcblxuICAvKipcbiAgICogVGhlIGxvY2F0aW9uIGluIHRoZSBzaGltIGZpbGUgZm9yIHRoZSBpZGVudGlmaWVyIHRoYXQgd2FzIGRlY2xhcmVkIGZvciB0aGUgdGVtcGxhdGUgdmFyaWFibGUuXG4gICAqL1xuICBsb2NhbFZhckxvY2F0aW9uOiBTaGltTG9jYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBsb2NhdGlvbiBpbiB0aGUgc2hpbSBmaWxlIGZvciB0aGUgaW5pdGlhbGl6ZXIgbm9kZSBvZiB0aGUgdmFyaWFibGUgdGhhdCByZXByZXNlbnRzIHRoZVxuICAgKiB0ZW1wbGF0ZSB2YXJpYWJsZS5cbiAgICovXG4gIGluaXRpYWxpemVyTG9jYXRpb246IFNoaW1Mb2NhdGlvbjtcbn1cblxuLyoqXG4gKiBBIHJlcHJlc2VudGF0aW9uIG9mIGFuIGVsZW1lbnQgaW4gYSBjb21wb25lbnQgdGVtcGxhdGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRWxlbWVudFN5bWJvbCB7XG4gIGtpbmQ6IFN5bWJvbEtpbmQuRWxlbWVudDtcblxuICAvKiogVGhlIGB0cy5UeXBlYCBmb3IgdGhlIGBIVE1MRWxlbWVudGAuICovXG4gIHRzVHlwZTogdHMuVHlwZTtcblxuICAvKiogVGhlIGB0cy5TeW1ib2xgIGZvciB0aGUgYEhUTUxFbGVtZW50YC4gKi9cbiAgdHNTeW1ib2w6IHRzLlN5bWJvbHxudWxsO1xuXG4gIC8qKiBBIGxpc3Qgb2YgZGlyZWN0aXZlcyBhcHBsaWVkIHRvIHRoZSBlbGVtZW50LiAqL1xuICBkaXJlY3RpdmVzOiBEaXJlY3RpdmVTeW1ib2xbXTtcblxuICAvKiogVGhlIGxvY2F0aW9uIGluIHRoZSBzaGltIGZpbGUgZm9yIHRoZSB2YXJpYWJsZSB0aGF0IGhvbGRzIHRoZSB0eXBlIG9mIHRoZSBlbGVtZW50LiAqL1xuICBzaGltTG9jYXRpb246IFNoaW1Mb2NhdGlvbjtcblxuICB0ZW1wbGF0ZU5vZGU6IFRtcGxBc3RFbGVtZW50O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRlbXBsYXRlU3ltYm9sIHtcbiAga2luZDogU3ltYm9sS2luZC5UZW1wbGF0ZTtcblxuICAvKiogQSBsaXN0IG9mIGRpcmVjdGl2ZXMgYXBwbGllZCB0byB0aGUgZWxlbWVudC4gKi9cbiAgZGlyZWN0aXZlczogRGlyZWN0aXZlU3ltYm9sW107XG5cbiAgdGVtcGxhdGVOb2RlOiBUbXBsQXN0VGVtcGxhdGU7XG59XG5cbi8qKlxuICogQSByZXByZXNlbnRhdGlvbiBvZiBhIGRpcmVjdGl2ZS9jb21wb25lbnQgd2hvc2Ugc2VsZWN0b3IgbWF0Y2hlcyBhIG5vZGUgaW4gYSBjb21wb25lbnRcbiAqIHRlbXBsYXRlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERpcmVjdGl2ZVN5bWJvbCBleHRlbmRzIERpcmVjdGl2ZUluU2NvcGUge1xuICBraW5kOiBTeW1ib2xLaW5kLkRpcmVjdGl2ZTtcblxuICAvKiogVGhlIGB0cy5UeXBlYCBmb3IgdGhlIGNsYXNzIGRlY2xhcmF0aW9uLiAqL1xuICB0c1R5cGU6IHRzLlR5cGU7XG5cbiAgLyoqIFRoZSBsb2NhdGlvbiBpbiB0aGUgc2hpbSBmaWxlIGZvciB0aGUgdmFyaWFibGUgdGhhdCBob2xkcyB0aGUgdHlwZSBvZiB0aGUgZGlyZWN0aXZlLiAqL1xuICBzaGltTG9jYXRpb246IFNoaW1Mb2NhdGlvbjtcbn1cblxuLyoqXG4gKiBBIHJlcHJlc2VudGF0aW9uIG9mIGFuIGF0dHJpYnV0ZSBvbiBhbiBlbGVtZW50IG9yIHRlbXBsYXRlLiBUaGVzZSBiaW5kaW5ncyBhcmVuJ3QgY3VycmVudGx5XG4gKiB0eXBlLWNoZWNrZWQgKHNlZSBgY2hlY2tUeXBlT2ZEb21CaW5kaW5nc2ApIHNvIHRoZXkgd29uJ3QgaGF2ZSBhIGB0cy5UeXBlYCwgYHRzLlN5bWJvbGAsIG9yIHNoaW1cbiAqIGxvY2F0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERvbUJpbmRpbmdTeW1ib2wge1xuICBraW5kOiBTeW1ib2xLaW5kLkRvbUJpbmRpbmc7XG5cbiAgLyoqIFRoZSBzeW1ib2wgZm9yIHRoZSBlbGVtZW50IG9yIHRlbXBsYXRlIG9mIHRoZSB0ZXh0IGF0dHJpYnV0ZS4gKi9cbiAgaG9zdDogRWxlbWVudFN5bWJvbHxUZW1wbGF0ZVN5bWJvbDtcbn1cblxuLyoqXG4gKiBBIHJlcHJlc2VudGF0aW9uIGZvciBhIGNhbGwgdG8gYSBwaXBlJ3MgdHJhbnNmb3JtIG1ldGhvZCBpbiB0aGUgVENCLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBpcGVTeW1ib2wge1xuICBraW5kOiBTeW1ib2xLaW5kLlBpcGU7XG5cbiAgLyoqIFRoZSBgdHMuVHlwZWAgb2YgdGhlIHRyYW5zZm9ybSBub2RlLiAqL1xuICB0c1R5cGU6IHRzLlR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSBgdHMuU3ltYm9sYCBmb3IgdGhlIHRyYW5zZm9ybSBjYWxsLiBUaGlzIGNvdWxkIGJlIGBudWxsYCB3aGVuIGBjaGVja1R5cGVPZlBpcGVzYCBpcyBzZXQgdG9cbiAgICogYGZhbHNlYCBiZWNhdXNlIHRoZSB0cmFuc2Zvcm0gY2FsbCB3b3VsZCBiZSBvZiB0aGUgZm9ybSBgKF9waXBlMSBhcyBhbnkpLnRyYW5zZm9ybSgpYFxuICAgKi9cbiAgdHNTeW1ib2w6IHRzLlN5bWJvbHxudWxsO1xuXG4gIC8qKiBUaGUgcG9zaXRpb24gb2YgdGhlIHRyYW5zZm9ybSBjYWxsIGluIHRoZSB0ZW1wbGF0ZS4gKi9cbiAgc2hpbUxvY2F0aW9uOiBTaGltTG9jYXRpb247XG5cbiAgLyoqIFRoZSBzeW1ib2wgZm9yIHRoZSBwaXBlIGNsYXNzIGFzIGFuIGluc3RhbmNlIHRoYXQgYXBwZWFycyBpbiB0aGUgVENCLiAqL1xuICBjbGFzc1N5bWJvbDogQ2xhc3NTeW1ib2w7XG59XG5cbi8qKiBSZXByZXNlbnRzIGFuIGluc3RhbmNlIG9mIGEgY2xhc3MgZm91bmQgaW4gdGhlIFRDQiwgaS5lLiBgdmFyIF9waXBlMTogTXlQaXBlID0gbnVsbCE7ICovXG5leHBvcnQgaW50ZXJmYWNlIENsYXNzU3ltYm9sIHtcbiAgLyoqIFRoZSBgdHMuVHlwZWAgb2YgY2xhc3MuICovXG4gIHRzVHlwZTogdHMuVHlwZTtcblxuICAvKiogVGhlIGB0cy5TeW1ib2xgIGZvciBjbGFzcy4gKi9cbiAgdHNTeW1ib2w6IFN5bWJvbFdpdGhWYWx1ZURlY2xhcmF0aW9uO1xuXG4gIC8qKiBUaGUgcG9zaXRpb24gZm9yIHRoZSB2YXJpYWJsZSBkZWNsYXJhdGlvbiBmb3IgdGhlIGNsYXNzIGluc3RhbmNlLiAqL1xuICBzaGltTG9jYXRpb246IFNoaW1Mb2NhdGlvbjtcbn1cbiJdfQ==
@@ -19,4 +19,4 @@ export var SymbolKind;
19
19
  SymbolKind[SymbolKind["DomBinding"] = 9] = "DomBinding";
20
20
  SymbolKind[SymbolKind["Pipe"] = 10] = "Pipe";
21
21
  })(SymbolKind || (SymbolKind = {}));
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ltYm9scy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvdHlwZWNoZWNrL2FwaS9zeW1ib2xzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQVNILE1BQU0sQ0FBTixJQUFZLFVBWVg7QUFaRCxXQUFZLFVBQVU7SUFDcEIsNkNBQUssQ0FBQTtJQUNMLCtDQUFNLENBQUE7SUFDTixpREFBTyxDQUFBO0lBQ1AscURBQVMsQ0FBQTtJQUNULG1EQUFRLENBQUE7SUFDUixxREFBUyxDQUFBO0lBQ1QsaURBQU8sQ0FBQTtJQUNQLG1EQUFRLENBQUE7SUFDUix1REFBVSxDQUFBO0lBQ1YsdURBQVUsQ0FBQTtJQUNWLDRDQUFJLENBQUE7QUFDTixDQUFDLEVBWlcsVUFBVSxLQUFWLFVBQVUsUUFZckIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtUbXBsQXN0RWxlbWVudCwgVG1wbEFzdFJlZmVyZW5jZSwgVG1wbEFzdFRlbXBsYXRlLCBUbXBsQXN0VmFyaWFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyJztcbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuXG5pbXBvcnQge0Fic29sdXRlRnNQYXRofSBmcm9tICcuLi8uLi9maWxlX3N5c3RlbSc7XG5pbXBvcnQge0NsYXNzRGVjbGFyYXRpb259IGZyb20gJy4uLy4uL3JlZmxlY3Rpb24nO1xuaW1wb3J0IHtEaXJlY3RpdmVJblNjb3BlfSBmcm9tICcuL3Njb3BlJztcblxuZXhwb3J0IGVudW0gU3ltYm9sS2luZCB7XG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEJpbmRpbmcsXG4gIFJlZmVyZW5jZSxcbiAgVmFyaWFibGUsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudCxcbiAgVGVtcGxhdGUsXG4gIEV4cHJlc3Npb24sXG4gIERvbUJpbmRpbmcsXG4gIFBpcGUsXG59XG5cbi8qKlxuICogQSByZXByZXNlbnRhdGlvbiBvZiBhbiBlbnRpdHkgaW4gdGhlIGBUZW1wbGF0ZUFzdGAuXG4gKi9cbmV4cG9ydCB0eXBlIFN5bWJvbCA9IElucHV0QmluZGluZ1N5bWJvbHxPdXRwdXRCaW5kaW5nU3ltYm9sfEVsZW1lbnRTeW1ib2x8UmVmZXJlbmNlU3ltYm9sfFxuICAgIFZhcmlhYmxlU3ltYm9sfEV4cHJlc3Npb25TeW1ib2x8RGlyZWN0aXZlU3ltYm9sfFRlbXBsYXRlU3ltYm9sfERvbUJpbmRpbmdTeW1ib2x8UGlwZVN5bWJvbDtcblxuLyoqXG4gKiBBIGBTeW1ib2xgIHdoaWNoIGRlY2xhcmVzIGEgbmV3IG5hbWVkIGVudGl0eSBpbiB0aGUgdGVtcGxhdGUgc2NvcGUuXG4gKi9cbmV4cG9ydCB0eXBlIFRlbXBsYXRlRGVjbGFyYXRpb25TeW1ib2wgPSBSZWZlcmVuY2VTeW1ib2x8VmFyaWFibGVTeW1ib2w7XG5cbi8qKiBJbmZvcm1hdGlvbiBhYm91dCB3aGVyZSBhIGB0cy5Ob2RlYCBjYW4gYmUgZm91bmQgaW4gdGhlIHR5cGUgY2hlY2sgYmxvY2sgc2hpbSBmaWxlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBTaGltTG9jYXRpb24ge1xuICAvKipcbiAgICogVGhlIGZ1bGx5IHF1YWxpZmllZCBwYXRoIG9mIHRoZSBmaWxlIHdoaWNoIGNvbnRhaW5zIHRoZSBnZW5lcmF0ZWQgVHlwZVNjcmlwdCB0eXBlIGNoZWNrXG4gICAqIGNvZGUgZm9yIHRoZSBjb21wb25lbnQncyB0ZW1wbGF0ZS5cbiAgICovXG4gIHNoaW1QYXRoOiBBYnNvbHV0ZUZzUGF0aDtcblxuICAvKiogVGhlIGxvY2F0aW9uIGluIHRoZSBzaGltIGZpbGUgd2hlcmUgbm9kZSBhcHBlYXJzLiAqL1xuICBwb3NpdGlvbkluU2hpbUZpbGU6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBBIGdlbmVyaWMgcmVwcmVzZW50YXRpb24gb2Ygc29tZSBub2RlIGluIGEgdGVtcGxhdGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHNOb2RlU3ltYm9sSW5mbyB7XG4gIC8qKiBUaGUgYHRzLlR5cGVgIG9mIHRoZSB0ZW1wbGF0ZSBub2RlLiAqL1xuICB0c1R5cGU6IHRzLlR5cGU7XG5cbiAgLyoqIFRoZSBgdHMuU3ltYm9sYCBmb3IgdGhlIHRlbXBsYXRlIG5vZGUgKi9cbiAgdHNTeW1ib2w6IHRzLlN5bWJvbHxudWxsO1xuXG4gIC8qKiBUaGUgcG9zaXRpb24gb2YgdGhlIG1vc3QgcmVsZXZhbnQgcGFydCBvZiB0aGUgdGVtcGxhdGUgbm9kZS4gKi9cbiAgc2hpbUxvY2F0aW9uOiBTaGltTG9jYXRpb247XG59XG5cbi8qKlxuICogQSByZXByZXNlbnRhdGlvbiBvZiBhbiBleHByZXNzaW9uIGluIGEgY29tcG9uZW50IHRlbXBsYXRlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV4cHJlc3Npb25TeW1ib2wge1xuICBraW5kOiBTeW1ib2xLaW5kLkV4cHJlc3Npb247XG5cbiAgLyoqIFRoZSBgdHMuVHlwZWAgb2YgdGhlIGV4cHJlc3Npb24gQVNULiAqL1xuICB0c1R5cGU6IHRzLlR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSBgdHMuU3ltYm9sYCBvZiB0aGUgZW50aXR5LiBUaGlzIGNvdWxkIGJlIGBudWxsYCwgZm9yIGV4YW1wbGUgYEFTVGAgZXhwcmVzc2lvblxuICAgKiBge3tmb28uYmFyICsgZm9vLmJhen19YCBkb2VzIG5vdCBoYXZlIGEgYHRzLlN5bWJvbGAgYnV0IGBmb28uYmFyYCBhbmQgYGZvby5iYXpgIGJvdGggZG8uXG4gICAqL1xuICB0c1N5bWJvbDogdHMuU3ltYm9sfG51bGw7XG5cbiAgLyoqIFRoZSBwb3NpdGlvbiBvZiB0aGUgbW9zdCByZWxldmFudCBwYXJ0IG9mIHRoZSBleHByZXNzaW9uLiAqL1xuICBzaGltTG9jYXRpb246IFNoaW1Mb2NhdGlvbjtcbn1cblxuLyoqIFJlcHJlc2VudHMgZWl0aGVyIGFuIGlucHV0IG9yIG91dHB1dCBiaW5kaW5nIGluIGEgdGVtcGxhdGUuICovXG5leHBvcnQgaW50ZXJmYWNlIEJpbmRpbmdTeW1ib2wge1xuICBraW5kOiBTeW1ib2xLaW5kLkJpbmRpbmc7XG5cbiAgLyoqIFRoZSBgdHMuVHlwZWAgb2YgdGhlIGNsYXNzIG1lbWJlciBvbiB0aGUgZGlyZWN0aXZlIHRoYXQgaXMgdGhlIHRhcmdldCBvZiB0aGUgYmluZGluZy4gKi9cbiAgdHNUeXBlOiB0cy5UeXBlO1xuXG4gIC8qKiBUaGUgYHRzLlN5bWJvbGAgb2YgdGhlIGNsYXNzIG1lbWJlciBvbiB0aGUgZGlyZWN0aXZlIHRoYXQgaXMgdGhlIHRhcmdldCBvZiB0aGUgYmluZGluZy4gKi9cbiAgdHNTeW1ib2w6IHRzLlN5bWJvbDtcblxuICAvKipcbiAgICogVGhlIGBEaXJlY3RpdmVTeW1ib2xgIG9yIGBFbGVtZW50U3ltYm9sYCBmb3IgdGhlIERpcmVjdGl2ZSwgQ29tcG9uZW50LCBvciBgSFRNTEVsZW1lbnRgIHdpdGhcbiAgICogdGhlIGJpbmRpbmcuXG4gICAqL1xuICB0YXJnZXQ6IERpcmVjdGl2ZVN5bWJvbHxFbGVtZW50U3ltYm9sfFRlbXBsYXRlU3ltYm9sO1xuXG4gIC8qKiBUaGUgbG9jYXRpb24gaW4gdGhlIHNoaW0gZmlsZSB3aGVyZSB0aGUgZmllbGQgYWNjZXNzIGZvciB0aGUgYmluZGluZyBhcHBlYXJzLiAqL1xuICBzaGltTG9jYXRpb246IFNoaW1Mb2NhdGlvbjtcbn1cblxuLyoqXG4gKiBBIHJlcHJlc2VudGF0aW9uIG9mIGFuIGlucHV0IGJpbmRpbmcgaW4gYSBjb21wb25lbnQgdGVtcGxhdGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5wdXRCaW5kaW5nU3ltYm9sIHtcbiAga2luZDogU3ltYm9sS2luZC5JbnB1dDtcblxuICAvKiogQSBzaW5nbGUgaW5wdXQgbWF5IGJlIGJvdW5kIHRvIG11bHRpcGxlIGNvbXBvbmVudHMgb3IgZGlyZWN0aXZlcy4gKi9cbiAgYmluZGluZ3M6IEJpbmRpbmdTeW1ib2xbXTtcbn1cblxuLyoqXG4gKiBBIHJlcHJlc2VudGF0aW9uIG9mIGFuIG91dHB1dCBiaW5kaW5nIGluIGEgY29tcG9uZW50IHRlbXBsYXRlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE91dHB1dEJpbmRpbmdTeW1ib2wge1xuICBraW5kOiBTeW1ib2xLaW5kLk91dHB1dDtcblxuICAvKiogQSBzaW5nbGUgb3V0cHV0IG1heSBiZSBib3VuZCB0byBtdWx0aXBsZSBjb21wb25lbnRzIG9yIGRpcmVjdGl2ZXMuICovXG4gIGJpbmRpbmdzOiBCaW5kaW5nU3ltYm9sW107XG59XG5cbi8qKlxuICogQSByZXByZXNlbnRhdGlvbiBvZiBhIGxvY2FsIHJlZmVyZW5jZSBpbiBhIGNvbXBvbmVudCB0ZW1wbGF0ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWZlcmVuY2VTeW1ib2wge1xuICBraW5kOiBTeW1ib2xLaW5kLlJlZmVyZW5jZTtcblxuICAvKipcbiAgICogVGhlIGB0cy5UeXBlYCBvZiB0aGUgUmVmZXJlbmNlIHZhbHVlLlxuICAgKlxuICAgKiBgVG1wbEFzdFRlbXBsYXRlYCAtIFRoZSB0eXBlIG9mIHRoZSBgVGVtcGxhdGVSZWZgXG4gICAqIGBUbXBsQXN0RWxlbWVudGAgLSBUaGUgYHRzLlR5cGVgIGZvciB0aGUgYEhUTUxFbGVtZW50YC5cbiAgICogRGlyZWN0aXZlIC0gVGhlIGB0cy5UeXBlYCBmb3IgdGhlIGNsYXNzIGRlY2xhcmF0aW9uLlxuICAgKi9cbiAgdHNUeXBlOiB0cy5UeXBlO1xuXG4gIC8qKlxuICAgKiBUaGUgYHRzLlN5bWJvbGAgZm9yIHRoZSBSZWZlcmVuY2UgdmFsdWUuXG4gICAqXG4gICAqIGBUbXBsQXN0VGVtcGxhdGVgIC0gQSBgVGVtcGxhdGVSZWZgIHN5bWJvbC5cbiAgICogYFRtcGxBc3RFbGVtZW50YCAtIFRoZSBzeW1ib2wgZm9yIHRoZSBgSFRNTEVsZW1lbnRgLlxuICAgKiBEaXJlY3RpdmUgLSBUaGUgc3ltYm9sIGZvciB0aGUgY2xhc3MgZGVjbGFyYXRpb24gb2YgdGhlIGRpcmVjdGl2ZS5cbiAgICovXG4gIHRzU3ltYm9sOiB0cy5TeW1ib2w7XG5cbiAgLyoqXG4gICAqIERlcGVuZGluZyBvbiB0aGUgdHlwZSBvZiB0aGUgcmVmZXJlbmNlLCB0aGlzIGlzIG9uZSBvZiB0aGUgZm9sbG93aW5nOlxuICAgKiAgLSBgVG1wbEFzdEVsZW1lbnRgIHdoZW4gdGhlIGxvY2FsIHJlZiByZWZlcnMgdG8gdGhlIEhUTUwgZWxlbWVudFxuICAgKiAgLSBgVG1wbEFzdFRlbXBsYXRlYCB3aGVuIHRoZSByZWYgcmVmZXJzIHRvIGFuIGBuZy10ZW1wbGF0ZWBcbiAgICogIC0gYHRzLkNsYXNzRGVjbGFyYXRpb25gIHdoZW4gdGhlIGxvY2FsIHJlZiByZWZlcnMgdG8gYSBEaXJlY3RpdmUgaW5zdGFuY2UgKCNyZWY9XCJteUV4cG9ydEFzXCIpXG4gICAqL1xuICB0YXJnZXQ6IFRtcGxBc3RFbGVtZW50fFRtcGxBc3RUZW1wbGF0ZXx0cy5DbGFzc0RlY2xhcmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgbm9kZSBpbiB0aGUgYFRlbXBsYXRlQXN0YCB3aGVyZSB0aGUgc3ltYm9sIGlzIGRlY2xhcmVkLiBUaGF0IGlzLCBub2RlIGZvciB0aGUgYCNyZWZgIG9yXG4gICAqIGAjcmVmPVwiZXhwb3J0QXNcImAuXG4gICAqL1xuICBkZWNsYXJhdGlvbjogVG1wbEFzdFJlZmVyZW5jZTtcblxuICAvKipcbiAgICogVGhlIGxvY2F0aW9uIGluIHRoZSBzaGltIGZpbGUgb2YgYSB2YXJpYWJsZSB0aGF0IGhvbGRzIHRoZSB0eXBlIG9mIHRoZSBsb2NhbCByZWYuXG4gICAqIEZvciBleGFtcGxlLCBhIHJlZmVyZW5jZSBkZWNsYXJhdGlvbiBsaWtlIHRoZSBmb2xsb3dpbmc6XG4gICAqIGBgYFxuICAgKiB2YXIgX3QxID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAqIHZhciBfdDIgPSBfdDE7IC8vIFRoaXMgaXMgdGhlIHJlZmVyZW5jZSBkZWNsYXJhdGlvblxuICAgKiBgYGBcbiAgICogVGhpcyBgdGFyZ2V0TG9jYXRpb25gIGlzIGBbX3QxIHZhcmlhYmxlIGRlY2xhcmF0aW9uXS5nZXRTdGFydCgpYC5cbiAgICovXG4gIHRhcmdldExvY2F0aW9uOiBTaGltTG9jYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBsb2NhdGlvbiBpbiB0aGUgVENCIGZvciB0aGUgaWRlbnRpZmllciBub2RlIGluIHRoZSByZWZlcmVuY2UgdmFyaWFibGUgZGVjbGFyYXRpb24uXG4gICAqIEZvciBleGFtcGxlLCBnaXZlbiBhIHZhcmlhYmxlIGRlY2xhcmF0aW9uIHN0YXRlbWVudCBmb3IgYSB0ZW1wbGF0ZSByZWZlcmVuY2U6XG4gICAqIGB2YXIgX3QyID0gX3QxYCwgdGhpcyBsb2NhdGlvbiBpcyBgW190MiBub2RlXS5nZXRTdGFydCgpYC4gVGhpcyBsb2NhdGlvbiBjYW5cbiAgICogYmUgdXNlZCB0byBmaW5kIHJlZmVyZW5jZXMgdG8gdGhlIHZhcmlhYmxlIHdpdGhpbiB0aGUgdGVtcGxhdGUuXG4gICAqL1xuICByZWZlcmVuY2VWYXJMb2NhdGlvbjogU2hpbUxvY2F0aW9uO1xufVxuXG4vKipcbiAqIEEgcmVwcmVzZW50YXRpb24gb2YgYSBjb250ZXh0IHZhcmlhYmxlIGluIGEgY29tcG9uZW50IHRlbXBsYXRlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZhcmlhYmxlU3ltYm9sIHtcbiAga2luZDogU3ltYm9sS2luZC5WYXJpYWJsZTtcblxuICAvKipcbiAgICogVGhlIGB0cy5UeXBlYCBvZiB0aGUgZW50aXR5LlxuICAgKlxuICAgKiBUaGlzIHdpbGwgYmUgYGFueWAgaWYgdGhlcmUgaXMgbm8gYG5nVGVtcGxhdGVDb250ZXh0R3VhcmRgLlxuICAgKi9cbiAgdHNUeXBlOiB0cy5UeXBlO1xuXG4gIC8qKlxuICAgKiBUaGUgYHRzLlN5bWJvbGAgZm9yIHRoZSBjb250ZXh0IHZhcmlhYmxlLlxuICAgKlxuICAgKiBUaGlzIHdpbGwgYmUgYG51bGxgIGlmIHRoZXJlIGlzIG5vIGBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkYC5cbiAgICovXG4gIHRzU3ltYm9sOiB0cy5TeW1ib2x8bnVsbDtcblxuICAvKipcbiAgICogVGhlIG5vZGUgaW4gdGhlIGBUZW1wbGF0ZUFzdGAgd2hlcmUgdGhlIHZhcmlhYmxlIGlzIGRlY2xhcmVkLiBUaGF0IGlzLCB0aGUgbm9kZSBmb3IgdGhlIGBsZXQtYFxuICAgKiBub2RlIGluIHRoZSB0ZW1wbGF0ZS5cbiAgICovXG4gIGRlY2xhcmF0aW9uOiBUbXBsQXN0VmFyaWFibGU7XG5cbiAgLyoqXG4gICAqIFRoZSBsb2NhdGlvbiBpbiB0aGUgc2hpbSBmaWxlIGZvciB0aGUgaWRlbnRpZmllciB0aGF0IHdhcyBkZWNsYXJlZCBmb3IgdGhlIHRlbXBsYXRlIHZhcmlhYmxlLlxuICAgKi9cbiAgbG9jYWxWYXJMb2NhdGlvbjogU2hpbUxvY2F0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgbG9jYXRpb24gaW4gdGhlIHNoaW0gZmlsZSBmb3IgdGhlIGluaXRpYWxpemVyIG5vZGUgb2YgdGhlIHZhcmlhYmxlIHRoYXQgcmVwcmVzZW50cyB0aGVcbiAgICogdGVtcGxhdGUgdmFyaWFibGUuXG4gICAqL1xuICBpbml0aWFsaXplckxvY2F0aW9uOiBTaGltTG9jYXRpb247XG59XG5cbi8qKlxuICogQSByZXByZXNlbnRhdGlvbiBvZiBhbiBlbGVtZW50IGluIGEgY29tcG9uZW50IHRlbXBsYXRlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVsZW1lbnRTeW1ib2wge1xuICBraW5kOiBTeW1ib2xLaW5kLkVsZW1lbnQ7XG5cbiAgLyoqIFRoZSBgdHMuVHlwZWAgZm9yIHRoZSBgSFRNTEVsZW1lbnRgLiAqL1xuICB0c1R5cGU6IHRzLlR5cGU7XG5cbiAgLyoqIFRoZSBgdHMuU3ltYm9sYCBmb3IgdGhlIGBIVE1MRWxlbWVudGAuICovXG4gIHRzU3ltYm9sOiB0cy5TeW1ib2x8bnVsbDtcblxuICAvKiogQSBsaXN0IG9mIGRpcmVjdGl2ZXMgYXBwbGllZCB0byB0aGUgZWxlbWVudC4gKi9cbiAgZGlyZWN0aXZlczogRGlyZWN0aXZlU3ltYm9sW107XG5cbiAgLyoqIFRoZSBsb2NhdGlvbiBpbiB0aGUgc2hpbSBmaWxlIGZvciB0aGUgdmFyaWFibGUgdGhhdCBob2xkcyB0aGUgdHlwZSBvZiB0aGUgZWxlbWVudC4gKi9cbiAgc2hpbUxvY2F0aW9uOiBTaGltTG9jYXRpb247XG5cbiAgdGVtcGxhdGVOb2RlOiBUbXBsQXN0RWxlbWVudDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUZW1wbGF0ZVN5bWJvbCB7XG4gIGtpbmQ6IFN5bWJvbEtpbmQuVGVtcGxhdGU7XG5cbiAgLyoqIEEgbGlzdCBvZiBkaXJlY3RpdmVzIGFwcGxpZWQgdG8gdGhlIGVsZW1lbnQuICovXG4gIGRpcmVjdGl2ZXM6IERpcmVjdGl2ZVN5bWJvbFtdO1xuXG4gIHRlbXBsYXRlTm9kZTogVG1wbEFzdFRlbXBsYXRlO1xufVxuXG4vKipcbiAqIEEgcmVwcmVzZW50YXRpb24gb2YgYSBkaXJlY3RpdmUvY29tcG9uZW50IHdob3NlIHNlbGVjdG9yIG1hdGNoZXMgYSBub2RlIGluIGEgY29tcG9uZW50XG4gKiB0ZW1wbGF0ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEaXJlY3RpdmVTeW1ib2wgZXh0ZW5kcyBEaXJlY3RpdmVJblNjb3BlIHtcbiAga2luZDogU3ltYm9sS2luZC5EaXJlY3RpdmU7XG5cbiAgLyoqIFRoZSBgdHMuVHlwZWAgZm9yIHRoZSBjbGFzcyBkZWNsYXJhdGlvbi4gKi9cbiAgdHNUeXBlOiB0cy5UeXBlO1xuXG4gIC8qKiBUaGUgbG9jYXRpb24gaW4gdGhlIHNoaW0gZmlsZSBmb3IgdGhlIHZhcmlhYmxlIHRoYXQgaG9sZHMgdGhlIHR5cGUgb2YgdGhlIGRpcmVjdGl2ZS4gKi9cbiAgc2hpbUxvY2F0aW9uOiBTaGltTG9jYXRpb247XG59XG5cbi8qKlxuICogQSByZXByZXNlbnRhdGlvbiBvZiBhbiBhdHRyaWJ1dGUgb24gYW4gZWxlbWVudCBvciB0ZW1wbGF0ZS4gVGhlc2UgYmluZGluZ3MgYXJlbid0IGN1cnJlbnRseVxuICogdHlwZS1jaGVja2VkIChzZWUgYGNoZWNrVHlwZU9mRG9tQmluZGluZ3NgKSBzbyB0aGV5IHdvbid0IGhhdmUgYSBgdHMuVHlwZWAsIGB0cy5TeW1ib2xgLCBvciBzaGltXG4gKiBsb2NhdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEb21CaW5kaW5nU3ltYm9sIHtcbiAga2luZDogU3ltYm9sS2luZC5Eb21CaW5kaW5nO1xuXG4gIC8qKiBUaGUgc3ltYm9sIGZvciB0aGUgZWxlbWVudCBvciB0ZW1wbGF0ZSBvZiB0aGUgdGV4dCBhdHRyaWJ1dGUuICovXG4gIGhvc3Q6IEVsZW1lbnRTeW1ib2x8VGVtcGxhdGVTeW1ib2w7XG59XG5cbi8qKlxuICogQSByZXByZXNlbnRhdGlvbiBmb3IgYSBjYWxsIHRvIGEgcGlwZSdzIHRyYW5zZm9ybSBtZXRob2QgaW4gdGhlIFRDQi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQaXBlU3ltYm9sIHtcbiAga2luZDogU3ltYm9sS2luZC5QaXBlO1xuXG4gIC8qKiBUaGUgYHRzLlR5cGVgIG9mIHRoZSB0cmFuc2Zvcm0gbm9kZS4gKi9cbiAgdHNUeXBlOiB0cy5UeXBlO1xuXG4gIC8qKlxuICAgKiBUaGUgYHRzLlN5bWJvbGAgZm9yIHRoZSB0cmFuc2Zvcm0gY2FsbC4gVGhpcyBjb3VsZCBiZSBgbnVsbGAgd2hlbiBgY2hlY2tUeXBlT2ZQaXBlc2AgaXMgc2V0IHRvXG4gICAqIGBmYWxzZWAgYmVjYXVzZSB0aGUgdHJhbnNmb3JtIGNhbGwgd291bGQgYmUgb2YgdGhlIGZvcm0gYChfcGlwZTEgYXMgYW55KS50cmFuc2Zvcm0oKWBcbiAgICovXG4gIHRzU3ltYm9sOiB0cy5TeW1ib2x8bnVsbDtcblxuICAvKiogVGhlIHBvc2l0aW9uIG9mIHRoZSB0cmFuc2Zvcm0gY2FsbCBpbiB0aGUgdGVtcGxhdGUuICovXG4gIHNoaW1Mb2NhdGlvbjogU2hpbUxvY2F0aW9uO1xuXG4gIC8qKiBUaGUgc3ltYm9sIGZvciB0aGUgcGlwZSBjbGFzcyBhcyBhbiBpbnN0YW5jZSB0aGF0IGFwcGVhcnMgaW4gdGhlIFRDQi4gKi9cbiAgY2xhc3NTeW1ib2w6IENsYXNzU3ltYm9sO1xufVxuXG4vKiogUmVwcmVzZW50cyBhbiBpbnN0YW5jZSBvZiBhIGNsYXNzIGZvdW5kIGluIHRoZSBUQ0IsIGkuZS4gYHZhciBfcGlwZTE6IE15UGlwZSA9IG51bGwhOyAqL1xuZXhwb3J0IGludGVyZmFjZSBDbGFzc1N5bWJvbCB7XG4gIC8qKiBUaGUgYHRzLlR5cGVgIG9mIGNsYXNzLiAqL1xuICB0c1R5cGU6IHRzLlR5cGU7XG5cbiAgLyoqIFRoZSBgdHMuU3ltYm9sYCBmb3IgY2xhc3MuICovXG4gIHRzU3ltYm9sOiB0cy5TeW1ib2w7XG5cbiAgLyoqIFRoZSBwb3NpdGlvbiBmb3IgdGhlIHZhcmlhYmxlIGRlY2xhcmF0aW9uIGZvciB0aGUgY2xhc3MgaW5zdGFuY2UuICovXG4gIHNoaW1Mb2NhdGlvbjogU2hpbUxvY2F0aW9uO1xufSJdfQ==
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ltYm9scy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvdHlwZWNoZWNrL2FwaS9zeW1ib2xzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQVVILE1BQU0sQ0FBTixJQUFZLFVBWVg7QUFaRCxXQUFZLFVBQVU7SUFDcEIsNkNBQUssQ0FBQTtJQUNMLCtDQUFNLENBQUE7SUFDTixpREFBTyxDQUFBO0lBQ1AscURBQVMsQ0FBQTtJQUNULG1EQUFRLENBQUE7SUFDUixxREFBUyxDQUFBO0lBQ1QsaURBQU8sQ0FBQTtJQUNQLG1EQUFRLENBQUE7SUFDUix1REFBVSxDQUFBO0lBQ1YsdURBQVUsQ0FBQTtJQUNWLDRDQUFJLENBQUE7QUFDTixDQUFDLEVBWlcsVUFBVSxLQUFWLFVBQVUsUUFZckIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtUbXBsQXN0RWxlbWVudCwgVG1wbEFzdFJlZmVyZW5jZSwgVG1wbEFzdFRlbXBsYXRlLCBUbXBsQXN0VmFyaWFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyJztcbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuXG5pbXBvcnQge0Fic29sdXRlRnNQYXRofSBmcm9tICcuLi8uLi9maWxlX3N5c3RlbSc7XG5pbXBvcnQge1N5bWJvbFdpdGhWYWx1ZURlY2xhcmF0aW9ufSBmcm9tICcuLi8uLi91dGlsL3NyYy90eXBlc2NyaXB0JztcblxuaW1wb3J0IHtEaXJlY3RpdmVJblNjb3BlfSBmcm9tICcuL3Njb3BlJztcblxuZXhwb3J0IGVudW0gU3ltYm9sS2luZCB7XG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEJpbmRpbmcsXG4gIFJlZmVyZW5jZSxcbiAgVmFyaWFibGUsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudCxcbiAgVGVtcGxhdGUsXG4gIEV4cHJlc3Npb24sXG4gIERvbUJpbmRpbmcsXG4gIFBpcGUsXG59XG5cbi8qKlxuICogQSByZXByZXNlbnRhdGlvbiBvZiBhbiBlbnRpdHkgaW4gdGhlIGBUZW1wbGF0ZUFzdGAuXG4gKi9cbmV4cG9ydCB0eXBlIFN5bWJvbCA9IElucHV0QmluZGluZ1N5bWJvbHxPdXRwdXRCaW5kaW5nU3ltYm9sfEVsZW1lbnRTeW1ib2x8UmVmZXJlbmNlU3ltYm9sfFxuICAgIFZhcmlhYmxlU3ltYm9sfEV4cHJlc3Npb25TeW1ib2x8RGlyZWN0aXZlU3ltYm9sfFRlbXBsYXRlU3ltYm9sfERvbUJpbmRpbmdTeW1ib2x8UGlwZVN5bWJvbDtcblxuLyoqXG4gKiBBIGBTeW1ib2xgIHdoaWNoIGRlY2xhcmVzIGEgbmV3IG5hbWVkIGVudGl0eSBpbiB0aGUgdGVtcGxhdGUgc2NvcGUuXG4gKi9cbmV4cG9ydCB0eXBlIFRlbXBsYXRlRGVjbGFyYXRpb25TeW1ib2wgPSBSZWZlcmVuY2VTeW1ib2x8VmFyaWFibGVTeW1ib2w7XG5cbi8qKiBJbmZvcm1hdGlvbiBhYm91dCB3aGVyZSBhIGB0cy5Ob2RlYCBjYW4gYmUgZm91bmQgaW4gdGhlIHR5cGUgY2hlY2sgYmxvY2sgc2hpbSBmaWxlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBTaGltTG9jYXRpb24ge1xuICAvKipcbiAgICogVGhlIGZ1bGx5IHF1YWxpZmllZCBwYXRoIG9mIHRoZSBmaWxlIHdoaWNoIGNvbnRhaW5zIHRoZSBnZW5lcmF0ZWQgVHlwZVNjcmlwdCB0eXBlIGNoZWNrXG4gICAqIGNvZGUgZm9yIHRoZSBjb21wb25lbnQncyB0ZW1wbGF0ZS5cbiAgICovXG4gIHNoaW1QYXRoOiBBYnNvbHV0ZUZzUGF0aDtcblxuICAvKiogVGhlIGxvY2F0aW9uIGluIHRoZSBzaGltIGZpbGUgd2hlcmUgbm9kZSBhcHBlYXJzLiAqL1xuICBwb3NpdGlvbkluU2hpbUZpbGU6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBBIGdlbmVyaWMgcmVwcmVzZW50YXRpb24gb2Ygc29tZSBub2RlIGluIGEgdGVtcGxhdGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHNOb2RlU3ltYm9sSW5mbyB7XG4gIC8qKiBUaGUgYHRzLlR5cGVgIG9mIHRoZSB0ZW1wbGF0ZSBub2RlLiAqL1xuICB0c1R5cGU6IHRzLlR5cGU7XG5cbiAgLyoqIFRoZSBgdHMuU3ltYm9sYCBmb3IgdGhlIHRlbXBsYXRlIG5vZGUgKi9cbiAgdHNTeW1ib2w6IHRzLlN5bWJvbHxudWxsO1xuXG4gIC8qKiBUaGUgcG9zaXRpb24gb2YgdGhlIG1vc3QgcmVsZXZhbnQgcGFydCBvZiB0aGUgdGVtcGxhdGUgbm9kZS4gKi9cbiAgc2hpbUxvY2F0aW9uOiBTaGltTG9jYXRpb247XG59XG5cbi8qKlxuICogQSByZXByZXNlbnRhdGlvbiBvZiBhbiBleHByZXNzaW9uIGluIGEgY29tcG9uZW50IHRlbXBsYXRlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV4cHJlc3Npb25TeW1ib2wge1xuICBraW5kOiBTeW1ib2xLaW5kLkV4cHJlc3Npb247XG5cbiAgLyoqIFRoZSBgdHMuVHlwZWAgb2YgdGhlIGV4cHJlc3Npb24gQVNULiAqL1xuICB0c1R5cGU6IHRzLlR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSBgdHMuU3ltYm9sYCBvZiB0aGUgZW50aXR5LiBUaGlzIGNvdWxkIGJlIGBudWxsYCwgZm9yIGV4YW1wbGUgYEFTVGAgZXhwcmVzc2lvblxuICAgKiBge3tmb28uYmFyICsgZm9vLmJhen19YCBkb2VzIG5vdCBoYXZlIGEgYHRzLlN5bWJvbGAgYnV0IGBmb28uYmFyYCBhbmQgYGZvby5iYXpgIGJvdGggZG8uXG4gICAqL1xuICB0c1N5bWJvbDogdHMuU3ltYm9sfG51bGw7XG5cbiAgLyoqIFRoZSBwb3NpdGlvbiBvZiB0aGUgbW9zdCByZWxldmFudCBwYXJ0IG9mIHRoZSBleHByZXNzaW9uLiAqL1xuICBzaGltTG9jYXRpb246IFNoaW1Mb2NhdGlvbjtcbn1cblxuLyoqIFJlcHJlc2VudHMgZWl0aGVyIGFuIGlucHV0IG9yIG91dHB1dCBiaW5kaW5nIGluIGEgdGVtcGxhdGUuICovXG5leHBvcnQgaW50ZXJmYWNlIEJpbmRpbmdTeW1ib2wge1xuICBraW5kOiBTeW1ib2xLaW5kLkJpbmRpbmc7XG5cbiAgLyoqIFRoZSBgdHMuVHlwZWAgb2YgdGhlIGNsYXNzIG1lbWJlciBvbiB0aGUgZGlyZWN0aXZlIHRoYXQgaXMgdGhlIHRhcmdldCBvZiB0aGUgYmluZGluZy4gKi9cbiAgdHNUeXBlOiB0cy5UeXBlO1xuXG4gIC8qKiBUaGUgYHRzLlN5bWJvbGAgb2YgdGhlIGNsYXNzIG1lbWJlciBvbiB0aGUgZGlyZWN0aXZlIHRoYXQgaXMgdGhlIHRhcmdldCBvZiB0aGUgYmluZGluZy4gKi9cbiAgdHNTeW1ib2w6IHRzLlN5bWJvbDtcblxuICAvKipcbiAgICogVGhlIGBEaXJlY3RpdmVTeW1ib2xgIG9yIGBFbGVtZW50U3ltYm9sYCBmb3IgdGhlIERpcmVjdGl2ZSwgQ29tcG9uZW50LCBvciBgSFRNTEVsZW1lbnRgIHdpdGhcbiAgICogdGhlIGJpbmRpbmcuXG4gICAqL1xuICB0YXJnZXQ6IERpcmVjdGl2ZVN5bWJvbHxFbGVtZW50U3ltYm9sfFRlbXBsYXRlU3ltYm9sO1xuXG4gIC8qKiBUaGUgbG9jYXRpb24gaW4gdGhlIHNoaW0gZmlsZSB3aGVyZSB0aGUgZmllbGQgYWNjZXNzIGZvciB0aGUgYmluZGluZyBhcHBlYXJzLiAqL1xuICBzaGltTG9jYXRpb246IFNoaW1Mb2NhdGlvbjtcbn1cblxuLyoqXG4gKiBBIHJlcHJlc2VudGF0aW9uIG9mIGFuIGlucHV0IGJpbmRpbmcgaW4gYSBjb21wb25lbnQgdGVtcGxhdGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5wdXRCaW5kaW5nU3ltYm9sIHtcbiAga2luZDogU3ltYm9sS2luZC5JbnB1dDtcblxuICAvKiogQSBzaW5nbGUgaW5wdXQgbWF5IGJlIGJvdW5kIHRvIG11bHRpcGxlIGNvbXBvbmVudHMgb3IgZGlyZWN0aXZlcy4gKi9cbiAgYmluZGluZ3M6IEJpbmRpbmdTeW1ib2xbXTtcbn1cblxuLyoqXG4gKiBBIHJlcHJlc2VudGF0aW9uIG9mIGFuIG91dHB1dCBiaW5kaW5nIGluIGEgY29tcG9uZW50IHRlbXBsYXRlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE91dHB1dEJpbmRpbmdTeW1ib2wge1xuICBraW5kOiBTeW1ib2xLaW5kLk91dHB1dDtcblxuICAvKiogQSBzaW5nbGUgb3V0cHV0IG1heSBiZSBib3VuZCB0byBtdWx0aXBsZSBjb21wb25lbnRzIG9yIGRpcmVjdGl2ZXMuICovXG4gIGJpbmRpbmdzOiBCaW5kaW5nU3ltYm9sW107XG59XG5cbi8qKlxuICogQSByZXByZXNlbnRhdGlvbiBvZiBhIGxvY2FsIHJlZmVyZW5jZSBpbiBhIGNvbXBvbmVudCB0ZW1wbGF0ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWZlcmVuY2VTeW1ib2wge1xuICBraW5kOiBTeW1ib2xLaW5kLlJlZmVyZW5jZTtcblxuICAvKipcbiAgICogVGhlIGB0cy5UeXBlYCBvZiB0aGUgUmVmZXJlbmNlIHZhbHVlLlxuICAgKlxuICAgKiBgVG1wbEFzdFRlbXBsYXRlYCAtIFRoZSB0eXBlIG9mIHRoZSBgVGVtcGxhdGVSZWZgXG4gICAqIGBUbXBsQXN0RWxlbWVudGAgLSBUaGUgYHRzLlR5cGVgIGZvciB0aGUgYEhUTUxFbGVtZW50YC5cbiAgICogRGlyZWN0aXZlIC0gVGhlIGB0cy5UeXBlYCBmb3IgdGhlIGNsYXNzIGRlY2xhcmF0aW9uLlxuICAgKi9cbiAgdHNUeXBlOiB0cy5UeXBlO1xuXG4gIC8qKlxuICAgKiBUaGUgYHRzLlN5bWJvbGAgZm9yIHRoZSBSZWZlcmVuY2UgdmFsdWUuXG4gICAqXG4gICAqIGBUbXBsQXN0VGVtcGxhdGVgIC0gQSBgVGVtcGxhdGVSZWZgIHN5bWJvbC5cbiAgICogYFRtcGxBc3RFbGVtZW50YCAtIFRoZSBzeW1ib2wgZm9yIHRoZSBgSFRNTEVsZW1lbnRgLlxuICAgKiBEaXJlY3RpdmUgLSBUaGUgc3ltYm9sIGZvciB0aGUgY2xhc3MgZGVjbGFyYXRpb24gb2YgdGhlIGRpcmVjdGl2ZS5cbiAgICovXG4gIHRzU3ltYm9sOiB0cy5TeW1ib2w7XG5cbiAgLyoqXG4gICAqIERlcGVuZGluZyBvbiB0aGUgdHlwZSBvZiB0aGUgcmVmZXJlbmNlLCB0aGlzIGlzIG9uZSBvZiB0aGUgZm9sbG93aW5nOlxuICAgKiAgLSBgVG1wbEFzdEVsZW1lbnRgIHdoZW4gdGhlIGxvY2FsIHJlZiByZWZlcnMgdG8gdGhlIEhUTUwgZWxlbWVudFxuICAgKiAgLSBgVG1wbEFzdFRlbXBsYXRlYCB3aGVuIHRoZSByZWYgcmVmZXJzIHRvIGFuIGBuZy10ZW1wbGF0ZWBcbiAgICogIC0gYHRzLkNsYXNzRGVjbGFyYXRpb25gIHdoZW4gdGhlIGxvY2FsIHJlZiByZWZlcnMgdG8gYSBEaXJlY3RpdmUgaW5zdGFuY2UgKCNyZWY9XCJteUV4cG9ydEFzXCIpXG4gICAqL1xuICB0YXJnZXQ6IFRtcGxBc3RFbGVtZW50fFRtcGxBc3RUZW1wbGF0ZXx0cy5DbGFzc0RlY2xhcmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgbm9kZSBpbiB0aGUgYFRlbXBsYXRlQXN0YCB3aGVyZSB0aGUgc3ltYm9sIGlzIGRlY2xhcmVkLiBUaGF0IGlzLCBub2RlIGZvciB0aGUgYCNyZWZgIG9yXG4gICAqIGAjcmVmPVwiZXhwb3J0QXNcImAuXG4gICAqL1xuICBkZWNsYXJhdGlvbjogVG1wbEFzdFJlZmVyZW5jZTtcblxuICAvKipcbiAgICogVGhlIGxvY2F0aW9uIGluIHRoZSBzaGltIGZpbGUgb2YgYSB2YXJpYWJsZSB0aGF0IGhvbGRzIHRoZSB0eXBlIG9mIHRoZSBsb2NhbCByZWYuXG4gICAqIEZvciBleGFtcGxlLCBhIHJlZmVyZW5jZSBkZWNsYXJhdGlvbiBsaWtlIHRoZSBmb2xsb3dpbmc6XG4gICAqIGBgYFxuICAgKiB2YXIgX3QxID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAqIHZhciBfdDIgPSBfdDE7IC8vIFRoaXMgaXMgdGhlIHJlZmVyZW5jZSBkZWNsYXJhdGlvblxuICAgKiBgYGBcbiAgICogVGhpcyBgdGFyZ2V0TG9jYXRpb25gIGlzIGBbX3QxIHZhcmlhYmxlIGRlY2xhcmF0aW9uXS5nZXRTdGFydCgpYC5cbiAgICovXG4gIHRhcmdldExvY2F0aW9uOiBTaGltTG9jYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBsb2NhdGlvbiBpbiB0aGUgVENCIGZvciB0aGUgaWRlbnRpZmllciBub2RlIGluIHRoZSByZWZlcmVuY2UgdmFyaWFibGUgZGVjbGFyYXRpb24uXG4gICAqIEZvciBleGFtcGxlLCBnaXZlbiBhIHZhcmlhYmxlIGRlY2xhcmF0aW9uIHN0YXRlbWVudCBmb3IgYSB0ZW1wbGF0ZSByZWZlcmVuY2U6XG4gICAqIGB2YXIgX3QyID0gX3QxYCwgdGhpcyBsb2NhdGlvbiBpcyBgW190MiBub2RlXS5nZXRTdGFydCgpYC4gVGhpcyBsb2NhdGlvbiBjYW5cbiAgICogYmUgdXNlZCB0byBmaW5kIHJlZmVyZW5jZXMgdG8gdGhlIHZhcmlhYmxlIHdpdGhpbiB0aGUgdGVtcGxhdGUuXG4gICAqL1xuICByZWZlcmVuY2VWYXJMb2NhdGlvbjogU2hpbUxvY2F0aW9uO1xufVxuXG4vKipcbiAqIEEgcmVwcmVzZW50YXRpb24gb2YgYSBjb250ZXh0IHZhcmlhYmxlIGluIGEgY29tcG9uZW50IHRlbXBsYXRlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZhcmlhYmxlU3ltYm9sIHtcbiAga2luZDogU3ltYm9sS2luZC5WYXJpYWJsZTtcblxuICAvKipcbiAgICogVGhlIGB0cy5UeXBlYCBvZiB0aGUgZW50aXR5LlxuICAgKlxuICAgKiBUaGlzIHdpbGwgYmUgYGFueWAgaWYgdGhlcmUgaXMgbm8gYG5nVGVtcGxhdGVDb250ZXh0R3VhcmRgLlxuICAgKi9cbiAgdHNUeXBlOiB0cy5UeXBlO1xuXG4gIC8qKlxuICAgKiBUaGUgYHRzLlN5bWJvbGAgZm9yIHRoZSBjb250ZXh0IHZhcmlhYmxlLlxuICAgKlxuICAgKiBUaGlzIHdpbGwgYmUgYG51bGxgIGlmIHRoZXJlIGlzIG5vIGBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkYC5cbiAgICovXG4gIHRzU3ltYm9sOiB0cy5TeW1ib2x8bnVsbDtcblxuICAvKipcbiAgICogVGhlIG5vZGUgaW4gdGhlIGBUZW1wbGF0ZUFzdGAgd2hlcmUgdGhlIHZhcmlhYmxlIGlzIGRlY2xhcmVkLiBUaGF0IGlzLCB0aGUgbm9kZSBmb3IgdGhlIGBsZXQtYFxuICAgKiBub2RlIGluIHRoZSB0ZW1wbGF0ZS5cbiAgICovXG4gIGRlY2xhcmF0aW9uOiBUbXBsQXN0VmFyaWFibGU7XG5cbiAgLyoqXG4gICAqIFRoZSBsb2NhdGlvbiBpbiB0aGUgc2hpbSBmaWxlIGZvciB0aGUgaWRlbnRpZmllciB0aGF0IHdhcyBkZWNsYXJlZCBmb3IgdGhlIHRlbXBsYXRlIHZhcmlhYmxlLlxuICAgKi9cbiAgbG9jYWxWYXJMb2NhdGlvbjogU2hpbUxvY2F0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgbG9jYXRpb24gaW4gdGhlIHNoaW0gZmlsZSBmb3IgdGhlIGluaXRpYWxpemVyIG5vZGUgb2YgdGhlIHZhcmlhYmxlIHRoYXQgcmVwcmVzZW50cyB0aGVcbiAgICogdGVtcGxhdGUgdmFyaWFibGUuXG4gICAqL1xuICBpbml0aWFsaXplckxvY2F0aW9uOiBTaGltTG9jYXRpb247XG59XG5cbi8qKlxuICogQSByZXByZXNlbnRhdGlvbiBvZiBhbiBlbGVtZW50IGluIGEgY29tcG9uZW50IHRlbXBsYXRlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVsZW1lbnRTeW1ib2wge1xuICBraW5kOiBTeW1ib2xLaW5kLkVsZW1lbnQ7XG5cbiAgLyoqIFRoZSBgdHMuVHlwZWAgZm9yIHRoZSBgSFRNTEVsZW1lbnRgLiAqL1xuICB0c1R5cGU6IHRzLlR5cGU7XG5cbiAgLyoqIFRoZSBgdHMuU3ltYm9sYCBmb3IgdGhlIGBIVE1MRWxlbWVudGAuICovXG4gIHRzU3ltYm9sOiB0cy5TeW1ib2x8bnVsbDtcblxuICAvKiogQSBsaXN0IG9mIGRpcmVjdGl2ZXMgYXBwbGllZCB0byB0aGUgZWxlbWVudC4gKi9cbiAgZGlyZWN0aXZlczogRGlyZWN0aXZlU3ltYm9sW107XG5cbiAgLyoqIFRoZSBsb2NhdGlvbiBpbiB0aGUgc2hpbSBmaWxlIGZvciB0aGUgdmFyaWFibGUgdGhhdCBob2xkcyB0aGUgdHlwZSBvZiB0aGUgZWxlbWVudC4gKi9cbiAgc2hpbUxvY2F0aW9uOiBTaGltTG9jYXRpb247XG5cbiAgdGVtcGxhdGVOb2RlOiBUbXBsQXN0RWxlbWVudDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUZW1wbGF0ZVN5bWJvbCB7XG4gIGtpbmQ6IFN5bWJvbEtpbmQuVGVtcGxhdGU7XG5cbiAgLyoqIEEgbGlzdCBvZiBkaXJlY3RpdmVzIGFwcGxpZWQgdG8gdGhlIGVsZW1lbnQuICovXG4gIGRpcmVjdGl2ZXM6IERpcmVjdGl2ZVN5bWJvbFtdO1xuXG4gIHRlbXBsYXRlTm9kZTogVG1wbEFzdFRlbXBsYXRlO1xufVxuXG4vKipcbiAqIEEgcmVwcmVzZW50YXRpb24gb2YgYSBkaXJlY3RpdmUvY29tcG9uZW50IHdob3NlIHNlbGVjdG9yIG1hdGNoZXMgYSBub2RlIGluIGEgY29tcG9uZW50XG4gKiB0ZW1wbGF0ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEaXJlY3RpdmVTeW1ib2wgZXh0ZW5kcyBEaXJlY3RpdmVJblNjb3BlIHtcbiAga2luZDogU3ltYm9sS2luZC5EaXJlY3RpdmU7XG5cbiAgLyoqIFRoZSBgdHMuVHlwZWAgZm9yIHRoZSBjbGFzcyBkZWNsYXJhdGlvbi4gKi9cbiAgdHNUeXBlOiB0cy5UeXBlO1xuXG4gIC8qKiBUaGUgbG9jYXRpb24gaW4gdGhlIHNoaW0gZmlsZSBmb3IgdGhlIHZhcmlhYmxlIHRoYXQgaG9sZHMgdGhlIHR5cGUgb2YgdGhlIGRpcmVjdGl2ZS4gKi9cbiAgc2hpbUxvY2F0aW9uOiBTaGltTG9jYXRpb247XG59XG5cbi8qKlxuICogQSByZXByZXNlbnRhdGlvbiBvZiBhbiBhdHRyaWJ1dGUgb24gYW4gZWxlbWVudCBvciB0ZW1wbGF0ZS4gVGhlc2UgYmluZGluZ3MgYXJlbid0IGN1cnJlbnRseVxuICogdHlwZS1jaGVja2VkIChzZWUgYGNoZWNrVHlwZU9mRG9tQmluZGluZ3NgKSBzbyB0aGV5IHdvbid0IGhhdmUgYSBgdHMuVHlwZWAsIGB0cy5TeW1ib2xgLCBvciBzaGltXG4gKiBsb2NhdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEb21CaW5kaW5nU3ltYm9sIHtcbiAga2luZDogU3ltYm9sS2luZC5Eb21CaW5kaW5nO1xuXG4gIC8qKiBUaGUgc3ltYm9sIGZvciB0aGUgZWxlbWVudCBvciB0ZW1wbGF0ZSBvZiB0aGUgdGV4dCBhdHRyaWJ1dGUuICovXG4gIGhvc3Q6IEVsZW1lbnRTeW1ib2x8VGVtcGxhdGVTeW1ib2w7XG59XG5cbi8qKlxuICogQSByZXByZXNlbnRhdGlvbiBmb3IgYSBjYWxsIHRvIGEgcGlwZSdzIHRyYW5zZm9ybSBtZXRob2QgaW4gdGhlIFRDQi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQaXBlU3ltYm9sIHtcbiAga2luZDogU3ltYm9sS2luZC5QaXBlO1xuXG4gIC8qKiBUaGUgYHRzLlR5cGVgIG9mIHRoZSB0cmFuc2Zvcm0gbm9kZS4gKi9cbiAgdHNUeXBlOiB0cy5UeXBlO1xuXG4gIC8qKlxuICAgKiBUaGUgYHRzLlN5bWJvbGAgZm9yIHRoZSB0cmFuc2Zvcm0gY2FsbC4gVGhpcyBjb3VsZCBiZSBgbnVsbGAgd2hlbiBgY2hlY2tUeXBlT2ZQaXBlc2AgaXMgc2V0IHRvXG4gICAqIGBmYWxzZWAgYmVjYXVzZSB0aGUgdHJhbnNmb3JtIGNhbGwgd291bGQgYmUgb2YgdGhlIGZvcm0gYChfcGlwZTEgYXMgYW55KS50cmFuc2Zvcm0oKWBcbiAgICovXG4gIHRzU3ltYm9sOiB0cy5TeW1ib2x8bnVsbDtcblxuICAvKiogVGhlIHBvc2l0aW9uIG9mIHRoZSB0cmFuc2Zvcm0gY2FsbCBpbiB0aGUgdGVtcGxhdGUuICovXG4gIHNoaW1Mb2NhdGlvbjogU2hpbUxvY2F0aW9uO1xuXG4gIC8qKiBUaGUgc3ltYm9sIGZvciB0aGUgcGlwZSBjbGFzcyBhcyBhbiBpbnN0YW5jZSB0aGF0IGFwcGVhcnMgaW4gdGhlIFRDQi4gKi9cbiAgY2xhc3NTeW1ib2w6IENsYXNzU3ltYm9sO1xufVxuXG4vKiogUmVwcmVzZW50cyBhbiBpbnN0YW5jZSBvZiBhIGNsYXNzIGZvdW5kIGluIHRoZSBUQ0IsIGkuZS4gYHZhciBfcGlwZTE6IE15UGlwZSA9IG51bGwhOyAqL1xuZXhwb3J0IGludGVyZmFjZSBDbGFzc1N5bWJvbCB7XG4gIC8qKiBUaGUgYHRzLlR5cGVgIG9mIGNsYXNzLiAqL1xuICB0c1R5cGU6IHRzLlR5cGU7XG5cbiAgLyoqIFRoZSBgdHMuU3ltYm9sYCBmb3IgY2xhc3MuICovXG4gIHRzU3ltYm9sOiBTeW1ib2xXaXRoVmFsdWVEZWNsYXJhdGlvbjtcblxuICAvKiogVGhlIHBvc2l0aW9uIGZvciB0aGUgdmFyaWFibGUgZGVjbGFyYXRpb24gZm9yIHRoZSBjbGFzcyBpbnN0YW5jZS4gKi9cbiAgc2hpbUxvY2F0aW9uOiBTaGltTG9jYXRpb247XG59XG4iXX0=