@colijnit/homedecorator 258.1.1 → 258.1.2

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 (92) hide show
  1. package/app/core/enum/icon.enum.d.ts +1 -0
  2. package/app/core/enum/message-type.enum.d.ts +2 -1
  3. package/app/core/interface/message-with-payload.interface.d.ts +1 -0
  4. package/app/core/model/homedecorator-settings-options.d.ts +1 -1
  5. package/app/core/model/homedecorator-settings.d.ts +3 -0
  6. package/app/core/service/3dm-api.d.ts +2 -2
  7. package/app/core/service/homedecorator-app-event.service.d.ts +1 -0
  8. package/app/core/service/homedecorator-connector-adapter.service.d.ts +9 -1
  9. package/app/core/service/homedecorator-connector.service.d.ts +15 -2
  10. package/app/core/service/utils.service.d.ts +1 -1
  11. package/app/core/utils/object.utils.d.ts +2 -0
  12. package/app/homedecorator.module.d.ts +2 -1
  13. package/app/plugins/core3d/service/wall-measurements.service.d.ts +2 -0
  14. package/app/plugins/model-uploader/model-previewer/model-preview.component.d.ts +3 -0
  15. package/app/plugins/product-catalog/product-catalog/product-catalog.component.d.ts +2 -0
  16. package/app/plugins/product-configurator/product-configurator-selector-list-of-values.component.scss +28 -0
  17. package/app/plugins/product-configurator/product-configurator-selector-option-button.component.d.ts +19 -0
  18. package/app/plugins/product-configurator/product-configurator-selector-option-button.component.scss +38 -0
  19. package/app/plugins/product-configurator/product-configurator-selector-option-dropdown.component.d.ts +20 -0
  20. package/app/plugins/product-configurator/product-configurator-selector-option-dropdown.component.scss +0 -0
  21. package/app/plugins/product-configurator/product-configurator-selector-option-list-of-values.component.d.ts +19 -0
  22. package/app/plugins/product-configurator/product-configurator-selector-option-tile.component.scss +56 -0
  23. package/app/plugins/product-configurator/product-configurator-selector-option-tile.compontent.d.ts +20 -0
  24. package/app/plugins/product-configurator/product-configurator-selector.component.d.ts +26 -0
  25. package/app/plugins/product-configurator/product-configurator-selector.component.scss +46 -0
  26. package/app/plugins/product-configurator/product-configurator.component.d.ts +38 -0
  27. package/app/plugins/product-configurator/product-configurator.component.scss +35 -0
  28. package/app/plugins/product-configurator/product-configurator.module.d.ts +18 -0
  29. package/app/plugins/product-configurator/template_variables.scss +13 -0
  30. package/app/plugins/render/model/blender-render-settings.d.ts +10 -0
  31. package/app/plugins/render/model/blender-scene-settings.d.ts +18 -0
  32. package/app/plugins/render/render-controls/render-controls.component.d.ts +19 -7
  33. package/app/plugins/render/service/new-render.service.d.ts +21 -4
  34. package/app/plugins/room-planner/components/floor-catalog/floor-catalog.component.scss +1 -1
  35. package/app/plugins/threedselector/threedselector/service/build-furniture.service.d.ts +5 -0
  36. package/app/plugins/threedselector/threedselector/threedselector.component.d.ts +4 -0
  37. package/app/plugins/threedselector/threedselector/threedselector.component.scss +17 -0
  38. package/app/plugins/threedselector/threedselector.module.d.ts +2 -1
  39. package/app/plugins/toolbar/draw-dialog/draw-dialog.component.scss +1 -1
  40. package/assets/icons/circle_regular.svg +0 -0
  41. package/bundles/colijnit-homedecorator.umd.js +1986 -835
  42. package/bundles/colijnit-homedecorator.umd.js.map +1 -1
  43. package/esm2015/app/app.version.js +3 -3
  44. package/esm2015/app/core/enum/icon.enum.js +2 -1
  45. package/esm2015/app/core/enum/message-type.enum.js +2 -1
  46. package/esm2015/app/core/interface/message-with-payload.interface.js +1 -1
  47. package/esm2015/app/core/model/homedecorator-settings-options.js +2 -2
  48. package/esm2015/app/core/model/homedecorator-settings.js +3 -1
  49. package/esm2015/app/core/model/icon.js +2 -1
  50. package/esm2015/app/core/service/3dm-api.js +15 -22
  51. package/esm2015/app/core/service/homedecorator-app-event.service.js +3 -2
  52. package/esm2015/app/core/service/homedecorator-connector-adapter.service.js +65 -7
  53. package/esm2015/app/core/service/homedecorator-connector.service.js +150 -6
  54. package/esm2015/app/core/service/homedecorator-settings.service.js +8 -1
  55. package/esm2015/app/core/service/utils.service.js +116 -93
  56. package/esm2015/app/core/utils/object.utils.js +13 -1
  57. package/esm2015/app/homedecorator.component.js +1 -2
  58. package/esm2015/app/homedecorator.module.js +8 -4
  59. package/esm2015/app/plugins/core3d/core3d/core3d.component.js +2 -2
  60. package/esm2015/app/plugins/core3d/service/wall-measurements.service.js +7 -1
  61. package/esm2015/app/plugins/model-uploader/model-previewer/model-preview.component.js +98 -50
  62. package/esm2015/app/plugins/model-uploader/model-uploader/model-uploader.component.js +4 -4
  63. package/esm2015/app/plugins/product-catalog/product-catalog/product-catalog.component.js +21 -11
  64. package/esm2015/app/plugins/product-configurator/product-configurator-selector-option-button.component.js +67 -0
  65. package/esm2015/app/plugins/product-configurator/product-configurator-selector-option-dropdown.component.js +57 -0
  66. package/esm2015/app/plugins/product-configurator/product-configurator-selector-option-list-of-values.component.js +75 -0
  67. package/esm2015/app/plugins/product-configurator/product-configurator-selector-option-tile.compontent.js +90 -0
  68. package/esm2015/app/plugins/product-configurator/product-configurator-selector.component.js +253 -0
  69. package/esm2015/app/plugins/product-configurator/product-configurator.component.js +151 -0
  70. package/esm2015/app/plugins/product-configurator/product-configurator.module.js +115 -0
  71. package/esm2015/app/plugins/render/model/blender-render-settings.js +3 -0
  72. package/esm2015/app/plugins/render/model/blender-scene-settings.js +10 -0
  73. package/esm2015/app/plugins/render/model/render-parameters.js +3 -3
  74. package/esm2015/app/plugins/render/render-controls/render-controls.component.js +532 -446
  75. package/esm2015/app/plugins/render/render-dialog/render-dialog.component.js +6 -40
  76. package/esm2015/app/plugins/render/service/new-render.service.js +212 -44
  77. package/esm2015/app/plugins/render/service/render.service.js +6 -9
  78. package/esm2015/app/plugins/room-planner/components/floor-catalog/floor-catalog.component.js +1 -1
  79. package/esm2015/app/plugins/room-planner/components/texture-picker/texture-picker.component.js +1 -1
  80. package/esm2015/app/plugins/room-planner/room-planner/room-planner.component.js +12 -10
  81. package/esm2015/app/plugins/threedselector/element-buttons/element-buttons.component.js +2 -2
  82. package/esm2015/app/plugins/threedselector/threedselector/service/build-furniture.service.js +55 -1
  83. package/esm2015/app/plugins/threedselector/threedselector/service/load-furniture.service.js +3 -3
  84. package/esm2015/app/plugins/threedselector/threedselector/threedselector.component.js +64 -15
  85. package/esm2015/app/plugins/threedselector/threedselector/utils/asset.utils.js +1 -1
  86. package/esm2015/app/plugins/threedselector/threedselector.module.js +8 -4
  87. package/esm2015/app/plugins/toolbar/draw-dialog/draw-dialog.component.js +1 -1
  88. package/esm2015/app/shared/category-library/category-library.component.js +1 -1
  89. package/fesm2015/colijnit-homedecorator.js +2522 -1149
  90. package/fesm2015/colijnit-homedecorator.js.map +1 -1
  91. package/package.json +4 -4
  92. package/styles.scss +1 -1
@@ -11,6 +11,7 @@ import { BufferGeometry, CylinderGeometry, EquirectangularReflectionMapping, Flo
11
11
  import { Item } from '../../plugins/core3d/items/item';
12
12
  import * as THREE from 'three';
13
13
  import { RGBELoader } from 'three/examples/jsm/loaders/RGBELoader';
14
+ import { CustomObject3D } from '../../plugins/core3d/items/custom-objects';
14
15
  export class ObjectUtils {
15
16
  static CreateArrow(name, color, length, direction, headLength, headWidth, doubleArrow = false) {
16
17
  const arrow = new Group();
@@ -87,6 +88,17 @@ export class ObjectUtils {
87
88
  return ObjectUtils.GetParentItem(element.parent);
88
89
  }
89
90
  }
91
+ static GetParentCustomObject(element) {
92
+ if (!element.parent) {
93
+ return null;
94
+ }
95
+ if (element.parent instanceof CustomObject3D) {
96
+ return element.parent;
97
+ }
98
+ else {
99
+ return ObjectUtils.GetParentCustomObject(element.parent);
100
+ }
101
+ }
90
102
  static GetDefaultMaterial(object) {
91
103
  const children = object.children.filter(c => {
92
104
  if (c instanceof Mesh) {
@@ -188,4 +200,4 @@ export class ObjectUtils {
188
200
  });
189
201
  }
190
202
  }
191
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NsaWVudC9hcHAvY29yZS91dGlscy9vYmplY3QudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUVMLGNBQWMsRUFDUCxnQkFBZ0IsRUFBZSxnQ0FBZ0MsRUFDdEUsc0JBQXNCLEVBQ3RCLEtBQUssRUFDTCxJQUFJLEVBQ0osaUJBQWlCLEVBRWpCLElBQUksRUFDSixpQkFBaUIsRUFFakIsT0FBTyxFQUNSLE1BQU0sT0FBTyxDQUFDO0FBRWYsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBRXJELE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUVqRSxNQUFNLE9BQU8sV0FBVztJQUVmLE1BQU0sQ0FBQyxXQUFXLENBQ3JCLElBQVksRUFBRSxLQUE4QixFQUM1QyxNQUFjLEVBQ2QsU0FBa0IsRUFDbEIsVUFBa0IsRUFDbEIsU0FBaUIsRUFDakIsY0FBdUIsS0FBSztRQUU5QixNQUFNLEtBQUssR0FBVSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBRWpDLE1BQU0sWUFBWSxHQUFHLElBQUksY0FBYyxFQUFFLENBQUM7UUFDMUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsSUFBSSxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6RixNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxpQkFBaUIsQ0FBQyxFQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUMsQ0FBQztR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XG4gIENvbG9yLCBDeWxpbmRlckdlb21ldHJ5LCBEYXRhVGV4dHVyZSwgRXF1aXJlY3Rhbmd1bGFyUmVmbGVjdGlvbk1hcHBpbmcsXHJcbiAgRmxvYXQzMkJ1ZmZlckF0dHJpYnV0ZSxcclxuICBHcm91cCxcclxuICBMaW5lLFxyXG4gIExpbmVCYXNpY01hdGVyaWFsLFxyXG4gIE1hdGVyaWFsLFxyXG4gIE1lc2gsXHJcbiAgTWVzaEJhc2ljTWF0ZXJpYWwsXHJcbiAgT2JqZWN0M0QsIFNjZW5lLFxyXG4gIFZlY3RvcjNcclxufSBmcm9tICd0aHJlZSc7XHJcbmltcG9ydCB7U2VsZWN0aW9ufSBmcm9tICdAY29saWpuaXQvY29uZmlndXJhdG9yYXBpL2J1aWxkL21vZGVsL3NlbGVjdGlvbic7XHJcbmltcG9ydCB7SXRlbX0gZnJvbSAnLi4vLi4vcGx1Z2lucy9jb3JlM2QvaXRlbXMvaXRlbSc7XHJcbmltcG9ydCB7Q2hhbmdlc0ludGVyZmFjZX0gZnJvbSAnLi4vaW50ZXJmYWNlL2NoYW5nZXMuaW50ZXJmYWNlJztcclxuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xyXG5pbXBvcnQge1JHQkVMb2FkZXJ9IGZyb20gJ3RocmVlL2V4YW1wbGVzL2pzbS9sb2FkZXJzL1JHQkVMb2FkZXInO1xyXG5cclxuZXhwb3J0IGNsYXNzIE9iamVjdFV0aWxzIHtcclxuXHJcbiAgcHVibGljIHN0YXRpYyBDcmVhdGVBcnJvdyhcclxuICAgICAgbmFtZTogc3RyaW5nLCBjb2xvcjogQ29sb3IgfCBudW1iZXIgfCBzdHJpbmcsXHJcbiAgICAgIGxlbmd0aDogbnVtYmVyLFxyXG4gICAgICBkaXJlY3Rpb246IFZlY3RvcjMsXHJcbiAgICAgIGhlYWRMZW5ndGg6IG51bWJlcixcclxuICAgICAgaGVhZFdpZHRoOiBudW1iZXIsXHJcbiAgICAgIGRvdWJsZUFycm93OiBib29sZWFuID0gZmFsc2UpOiBHcm91cCB7XHJcblxyXG4gICAgY29uc3QgYXJyb3c6IEdyb3VwID0gbmV3IEdyb3VwKCk7XHJcblxyXG4gICAgY29uc3QgbGluZUdlb21ldHJ5ID0gbmV3IEJ1ZmZlckdlb21ldHJ5KCk7XHJcbiAgICBsaW5lR2VvbWV0cnkuc2V0QXR0cmlidXRlKCdwb3NpdGlvbicsIG5ldyBGbG9hdDMyQnVmZmVyQXR0cmlidXRlKFswLCAwLCAwLCAwLCAxLCAwXSwgMykpO1xyXG4gICAgY29uc3QgbGluZSA9IG5ldyBMaW5lKGxpbmVHZW9tZXRyeSwgbmV3IExpbmVCYXNpY01hdGVyaWFsKHtjb2xvcjogY29sb3IsIHRvbmVNYXBwZWQ6IGZhbHNlfSkpO1xyXG4gICAgbGluZUdlb21ldHJ5LnJvdGF0ZVgoTWF0aC5QSSAvIDIgKiBkaXJlY3Rpb24ueik7XHJcbiAgICBsaW5lR2VvbWV0cnkucm90YXRlWShNYXRoLlBJIC8gMiAqIGRpcmVjdGlvbi55KTtcclxuICAgIGxpbmVHZW9tZXRyeS5yb3RhdGVaKE1hdGguUEkgLyAyICogZGlyZWN0aW9uLngpO1xyXG4gICAgY29uc3QgdHJhbnNsYXRlOiBWZWN0b3IzID0gbmV3IFZlY3RvcjMoXHJcbiAgICAgICAgKGRpcmVjdGlvbi54KSAvIDIsXHJcbiAgICAgICAgZGlyZWN0aW9uLnkgPyAtKGRpcmVjdGlvbi55KSAvIDIgOiAwLFxyXG4gICAgICAgIC0oZGlyZWN0aW9uLnopIC8gMlxyXG4gICAgKTtcclxuICAgIGxpbmVHZW9tZXRyeS50cmFuc2xhdGUodHJhbnNsYXRlLngsIHRyYW5zbGF0ZS55LCB0cmFuc2xhdGUueik7XHJcblxyXG4gICAgbGluZS5uYW1lID0gJ2Fycm93X2xpbmUnO1xyXG4gICAgbGluZS5tYXRyaXhBdXRvVXBkYXRlID0gZmFsc2U7XHJcbiAgICBhcnJvdy5hZGQobGluZSk7XHJcblxyXG4gICAgY29uc3QgY29uZUdlb21ldHJ5ID0gbmV3IEN5bGluZGVyR2VvbWV0cnkoMCwgMC41LCAxLCA1LCAxKTtcclxuICAgIGNvbnN0IGNvbmVSaWdodEdlb21ldHJ5ID0gY29uZUdlb21ldHJ5LmNsb25lKCk7XHJcblxyXG4gICAgY29uc3QgY29uZSA9IG5ldyBNZXNoKGNvbmVHZW9tZXRyeSwgbmV3IE1lc2hCYXNpY01hdGVyaWFsKHtjb2xvcjogY29sb3IsIHRvbmVNYXBwZWQ6IGZhbHNlfSkpO1xyXG4gICAgY29uZUdlb21ldHJ5LnJvdGF0ZVgoTWF0aC5QSSAvIDIgKiAtZGlyZWN0aW9uLnopO1xyXG4gICAgaWYgKGRpcmVjdGlvbi55KSB7XHJcbiAgICAgIGNvbmVHZW9tZXRyeS5yb3RhdGVaKE1hdGguUEkpO1xyXG4gICAgfVxyXG4gICAgY29uZUdlb21ldHJ5LnJvdGF0ZVooTWF0aC5QSSAvIDIgKiAtZGlyZWN0aW9uLngpO1xyXG4gICAgLy8gY29uZUdlb21ldHJ5LnRyYW5zbGF0ZSh0cmFuc2xhdGUueCAqIDIsIHRyYW5zbGF0ZS55ICogMiwgdHJhbnNsYXRlLnogKiAyKTtcclxuICAgIGNvbmUubmFtZSA9ICdhcnJvd19jb25lX2xlZnQnO1xyXG4gICAgY29uZS5tYXRyaXhBdXRvVXBkYXRlID0gZmFsc2U7XHJcbiAgICBhcnJvdy5hZGQoY29uZSk7XHJcblxyXG4gICAgaWYgKGRvdWJsZUFycm93KSB7XHJcbiAgICAgIGNvbnN0IGNvbmVSaWdodCA9IG5ldyBNZXNoKGNvbmVSaWdodEdlb21ldHJ5LCBuZXcgTWVzaEJhc2ljTWF0ZXJpYWwoe2NvbG9yOiBjb2xvciwgdG9uZU1hcHBlZDogZmFsc2V9KSk7XHJcbiAgICAgIGNvbmVSaWdodEdlb21ldHJ5LnJvdGF0ZVgoTWF0aC5QSSAvIDIgKiBkaXJlY3Rpb24ueik7XHJcbiAgICAgIGNvbmVSaWdodEdlb21ldHJ5LnJvdGF0ZVooTWF0aC5QSSAvIDIgKiBkaXJlY3Rpb24ueCk7XHJcbiAgICAgIC8vIGNvbmVSaWdodEdlb21ldHJ5LnRyYW5zbGF0ZSgtdHJhbnNsYXRlLnggKiAyLCAtdHJhbnNsYXRlLnkgKiAyLCAtdHJhbnNsYXRlLnogKiAyKTtcclxuICAgICAgY29uZVJpZ2h0Lm5hbWUgPSAnYXJyb3dfY29uZV9yaWdodCc7XHJcbiAgICAgIGNvbmVSaWdodC5tYXRyaXhBdXRvVXBkYXRlID0gZmFsc2U7XHJcbiAgICAgIGFycm93LmFkZChjb25lUmlnaHQpO1xyXG4gICAgfVxyXG4gICAgYXJyb3cubmFtZSA9IG5hbWU7XHJcbiAgICByZXR1cm4gT2JqZWN0VXRpbHMuVXBkYXRlQXJyb3dMZW5ndGgoYXJyb3csIGxlbmd0aCwgZGlyZWN0aW9uLCBoZWFkTGVuZ3RoLCBoZWFkV2lkdGgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBVcGRhdGVBcnJvd0xlbmd0aChhcnJvdzogR3JvdXAsIGxlbmd0aDogbnVtYmVyLCBkaXJlY3Rpb246IFZlY3RvcjMsIGhlYWRMZW5ndGg6IG51bWJlciwgaGVhZFdpZHRoOiBudW1iZXIsIGRvdWJsZUFycm93OiBib29sZWFuID0gZmFsc2UpOiBHcm91cCB7XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCBhcnJvd0xpbmU6IE9iamVjdDNEID0gYXJyb3cuZ2V0T2JqZWN0QnlOYW1lKCdhcnJvd19saW5lJyk7XHJcbiAgICAgIGNvbnN0IHNjYWxlOiBWZWN0b3IzID0gbmV3IFZlY3RvcjMoXHJcbiAgICAgICAgICBkaXJlY3Rpb24ueCA/IE1hdGgubWF4KDAuMDAwMSwgbGVuZ3RoIC0gKGRvdWJsZUFycm93ID8gaGVhZExlbmd0aCAqIDIgOiBoZWFkTGVuZ3RoKSkgOiAxLFxyXG4gICAgICAgICAgZGlyZWN0aW9uLnkgPyBNYXRoLm1heCgwLjAwMDEsIGxlbmd0aCAtIChkb3VibGVBcnJvdyA/IGhlYWRMZW5ndGggKiAyIDogaGVhZExlbmd0aCkpIDogMSxcclxuICAgICAgICAgIGRpcmVjdGlvbi56ID8gTWF0aC5tYXgoMC4wMDAxLCBsZW5ndGggLSAoZG91YmxlQXJyb3cgPyBoZWFkTGVuZ3RoICogMiA6IGhlYWRMZW5ndGgpKSA6IDEsXHJcbiAgICAgICk7XHJcbiAgICAgIGFycm93TGluZS5zY2FsZS5jb3B5KHNjYWxlKTtcclxuICAgICAgYXJyb3dMaW5lLnVwZGF0ZU1hdHJpeCgpO1xyXG5cclxuICAgICAgY29uc3QgY29uZTogT2JqZWN0M0QgPSBhcnJvdy5nZXRPYmplY3RCeU5hbWUoJ2Fycm93X2NvbmVfbGVmdCcpO1xyXG4gICAgICBpZiAoY29uZSkge1xyXG4gICAgICAgIGNvbmUuc2NhbGUuc2V0KGhlYWRXaWR0aCwgaGVhZExlbmd0aCwgaGVhZFdpZHRoKTtcclxuICAgICAgICBjb25lLnBvc2l0aW9uLnggPSBkaXJlY3Rpb24ueCA/IGxlbmd0aCAvIDIgLSBoZWFkTGVuZ3RoIDogMDtcclxuICAgICAgICBjb25lLnBvc2l0aW9uLnkgPSBkaXJlY3Rpb24ueSA/IC1sZW5ndGggLyAyICsgaGVhZExlbmd0aCA6IDA7XHJcbiAgICAgICAgY29uZS5wb3NpdGlvbi56ID0gZGlyZWN0aW9uLnogPyAtbGVuZ3RoIC8gMiArIGhlYWRMZW5ndGggOiAwO1xyXG4gICAgICAgIGNvbmUudXBkYXRlTWF0cml4KCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IGNvbmVSaWdodDogT2JqZWN0M0QgPSBhcnJvdy5nZXRPYmplY3RCeU5hbWUoJ2Fycm93X2NvbmVfcmlnaHQnKTtcclxuICAgICAgaWYgKGNvbmVSaWdodCkge1xyXG4gICAgICAgIGNvbmVSaWdodC5zY2FsZS5zZXQoaGVhZFdpZHRoLCBoZWFkTGVuZ3RoLCBoZWFkV2lkdGgpO1xyXG4gICAgICAgIGNvbmVSaWdodC5wb3NpdGlvbi54ID0gZGlyZWN0aW9uLnggPyAtbGVuZ3RoIC8gMiArIGhlYWRMZW5ndGggOiAwO1xyXG4gICAgICAgIGNvbmVSaWdodC5wb3NpdGlvbi55ID0gZGlyZWN0aW9uLnkgPyBsZW5ndGggLyAyIC0gaGVhZExlbmd0aCA6IDA7XHJcbiAgICAgICAgY29uZVJpZ2h0LnBvc2l0aW9uLnogPSBkaXJlY3Rpb24ueiA/IGxlbmd0aCAvIDIgLSBoZWFkTGVuZ3RoIDogMDtcclxuICAgICAgICBjb25lUmlnaHQudXBkYXRlTWF0cml4KCk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGFycm93O1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIEdldFBhcmVudEl0ZW0oZWxlbWVudDogYW55KTogSXRlbSB7XHJcbiAgICBpZiAoIWVsZW1lbnQucGFyZW50KSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgaWYgKGVsZW1lbnQucGFyZW50IGluc3RhbmNlb2YgSXRlbSkge1xyXG4gICAgICByZXR1cm4gZWxlbWVudC5wYXJlbnQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gT2JqZWN0VXRpbHMuR2V0UGFyZW50SXRlbShlbGVtZW50LnBhcmVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIEdldERlZmF1bHRNYXRlcmlhbChvYmplY3Q6IE9iamVjdDNEKTogTWF0ZXJpYWwge1xyXG4gICAgY29uc3QgY2hpbGRyZW46IE1lc2hbXSA9IDxNZXNoW10+b2JqZWN0LmNoaWxkcmVuLmZpbHRlcihjID0+IHtcclxuICAgICAgaWYgKGMgaW5zdGFuY2VvZiBNZXNoKSB7XHJcbiAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkoYy5tYXRlcmlhbCkgP1xyXG4gICAgICAgICAgICBjLm1hdGVyaWFsLmZpbmQobSA9PiBtLm5hbWUudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKCdkZWZhdWx0XycpKSA6XHJcbiAgICAgICAgICAgIGMubWF0ZXJpYWwubmFtZS50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoJ2RlZmF1bHRfJyk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIDxNYXRlcmlhbD5jaGlsZHJlbi5tYXAoYyA9PiBjLm1hdGVyaWFsKVswXTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgU2FtZU1hdGVyaWFsKGZpcnN0OiBNYXRlcmlhbCwgc2Vjb25kOiBNYXRlcmlhbCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCFmaXJzdCAmJiAhc2Vjb25kKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZpcnN0Lmhhc093blByb3BlcnR5KCdtYXAnKSAmJiBzZWNvbmQuaGFzT3duUHJvcGVydHkoJ21hcCcpICYmIChmaXJzdCBhcyBhbnkpLm1hcCAmJiAoc2Vjb25kIGFzIGFueSkubWFwICYmXHJcbiAgICAgICAgKGZpcnN0IGFzIGFueSkubWFwLmltYWdlLnNyYyA9PT0gKHNlY29uZCBhcyBhbnkpLm1hcC5pbWFnZS5zcmM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIEdldENoYW5nZXMoZmlyc3RJdGVtczogT2JqZWN0M0RbXSwgc2Vjb25kSXRlbXM6IE9iamVjdDNEW10pOiBhbnkge1xyXG4gICAgY29uc3QgcmVzdWx0OiBDaGFuZ2VzSW50ZXJmYWNlW10gPSBbXTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2Vjb25kSXRlbXMubGVuZ3RoOyBpKyspIHsgLy8gY2hlY2sgYWRkZWQvY2hhbmdlZCBpdGVtc1xyXG4gICAgICBjb25zdCBzZWNvbmRJdGVtID0gc2Vjb25kSXRlbXNbaV07XHJcbiAgICAgIGxldCBvbGRQb3NpdGlvbjtcclxuICAgICAgbGV0IG9sZE1hdGVyaWFsO1xyXG4gICAgICBjb25zdCBuZXdQb3NpdGlvbjogVmVjdG9yMyA9IG5ldyBWZWN0b3IzKCkuY29weShzZWNvbmRJdGVtLnBvc2l0aW9uKTtcclxuICAgICAgY29uc3QgbmV3TWF0ZXJpYWw6IE1hdGVyaWFsID0gT2JqZWN0VXRpbHMuR2V0RGVmYXVsdE1hdGVyaWFsKHNlY29uZEl0ZW0pO1xyXG4gICAgICBjb25zdCBmaXJzdEl0ZW0gPSBmaXJzdEl0ZW1zLmZpbmQoZmkgPT4gZmkubmFtZSA9PT0gc2Vjb25kSXRlbXNbaV0ubmFtZSk7XHJcbiAgICAgIGlmIChmaXJzdEl0ZW0pIHtcclxuICAgICAgICBvbGRQb3NpdGlvbiA9IG5ldyBWZWN0b3IzKCkuY29weShmaXJzdEl0ZW0ucG9zaXRpb24pO1xyXG4gICAgICAgIG9sZE1hdGVyaWFsID0gT2JqZWN0VXRpbHMuR2V0RGVmYXVsdE1hdGVyaWFsKGZpcnN0SXRlbSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCghb2xkUG9zaXRpb24gfHwgKG5ld1Bvc2l0aW9uICYmICFvbGRQb3NpdGlvbi5lcXVhbHMobmV3UG9zaXRpb24pKSkgfHwgIU9iamVjdFV0aWxzLlNhbWVNYXRlcmlhbChvbGRNYXRlcmlhbCwgbmV3TWF0ZXJpYWwpKSB7XHJcbiAgICAgICAgcmVzdWx0LnB1c2goe1xyXG4gICAgICAgICAgb2JqZWN0OiBzZWNvbmRJdGVtLFxyXG4gICAgICAgICAgbmFtZTogc2Vjb25kSXRlbS5uYW1lLFxyXG4gICAgICAgICAgb2xkUG9zaXRpb246IG9sZFBvc2l0aW9uLFxyXG4gICAgICAgICAgbmV3UG9zaXRpb246IG5ld1Bvc2l0aW9uLFxyXG4gICAgICAgICAgb2xkTWF0ZXJpYWw6IG9sZE1hdGVyaWFsLFxyXG4gICAgICAgICAgbmV3TWF0ZXJpYWw6IG5ld01hdGVyaWFsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlyc3RJdGVtcy5sZW5ndGg7IGkrKykgeyAvLyBjaGVjayBkZWxldGVkIGl0ZW1zXHJcbiAgICAgIGNvbnN0IGZpcnN0SXRlbSA9IGZpcnN0SXRlbXNbaV07XHJcbiAgICAgIGNvbnN0IG9sZFBvc2l0aW9uOiBWZWN0b3IzID0gbmV3IFZlY3RvcjMoKS5jb3B5KGZpcnN0SXRlbS5wb3NpdGlvbik7XHJcbiAgICAgIGxldCBuZXdQb3NpdGlvbjtcclxuICAgICAgY29uc3Qgc2Vjb25kSXRlbSA9IHNlY29uZEl0ZW1zLmZpbmQoZmkgPT4gZmkubmFtZSA9PT0gZmlyc3RJdGVtc1tpXS5uYW1lKTtcclxuICAgICAgaWYgKHNlY29uZEl0ZW0pIHtcclxuICAgICAgICBuZXdQb3NpdGlvbiA9IG5ldyBWZWN0b3IzKCkuY29weShzZWNvbmRJdGVtLnBvc2l0aW9uKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoIW5ld1Bvc2l0aW9uIHx8IChuZXdQb3NpdGlvbiAmJiAhb2xkUG9zaXRpb24uZXF1YWxzKG5ld1Bvc2l0aW9uKSkpIHtcclxuICAgICAgICByZXN1bHQucHVzaCh7XHJcbiAgICAgICAgICBvYmplY3Q6IGZpcnN0SXRlbSxcclxuICAgICAgICAgIG5hbWU6IGZpcnN0SXRlbS5uYW1lLFxyXG4gICAgICAgICAgb2xkUG9zaXRpb246IG9sZFBvc2l0aW9uLFxyXG4gICAgICAgICAgbmV3UG9zaXRpb246IG5ld1Bvc2l0aW9uXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIEdldFNlbGVjdGlvbkZyb21TZWxlY3RlZE9iamVjdChvYmplY3Q6IGFueSk6IFNlbGVjdGlvbiB7XHJcbiAgICBpZiAob2JqZWN0KSB7XHJcbiAgICAgIGlmIChvYmplY3QudXNlckRhdGEgJiYgb2JqZWN0LnVzZXJEYXRhLnNlbGVjdGlvbikge1xyXG4gICAgICAgIHJldHVybiBvYmplY3QudXNlckRhdGEuc2VsZWN0aW9uO1xyXG4gICAgICB9IGVsc2UgaWYgKG9iamVjdC5wYXJlbnQpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5HZXRTZWxlY3Rpb25Gcm9tU2VsZWN0ZWRPYmplY3Qob2JqZWN0LnBhcmVudCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgVXBkYXRlVXZzKGdlbzogQnVmZmVyR2VvbWV0cnkpOiB2b2lkIHtcclxuICAgIGlmIChnZW8pIHtcclxuICAgICAgY29uc3QgcG9zOiBhbnkgPSBnZW8uYXR0cmlidXRlcy5wb3NpdGlvbjtcclxuICAgICAgY29uc3QgYjM6IEJveDMgPSBuZXcgVEhSRUUuQm94MygpLnNldEZyb21CdWZmZXJBdHRyaWJ1dGUocG9zKTtcclxuICAgICAgY29uc3QgYjNzaXplOiBWZWN0b3IzID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuICAgICAgYjMuZ2V0U2l6ZShiM3NpemUpO1xyXG4gICAgICBjb25zdCB1diA9IFtdO1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBvcy5jb3VudDsgaSsrKSB7XHJcbiAgICAgICAgY29uc3QgeDogbnVtYmVyID0gcG9zLmdldFgoaSk7XHJcbiAgICAgICAgY29uc3QgeTogbnVtYmVyID0gcG9zLmdldFkoaSk7XHJcbiAgICAgICAgY29uc3QgdTogbnVtYmVyID0gKHggLSBiMy5taW4ueCkgLyBiM3NpemUueDtcclxuICAgICAgICBjb25zdCB2OiBudW1iZXIgPSAoeSAtIGIzLm1pbi55KSAvIGIzc2l6ZS55O1xyXG4gICAgICAgIHV2LnB1c2godSwgdik7XHJcbiAgICAgIH1cclxuICAgICAgZ2VvLnNldEF0dHJpYnV0ZSgndXYnLCBuZXcgVEhSRUUuRmxvYXQzMkJ1ZmZlckF0dHJpYnV0ZSh1diwgMikpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBhc3luYyBMb2FkSERSSShwYXRoOiBzdHJpbmcsIHNjZW5lOiBTY2VuZSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc3QgaGRyaTogRGF0YVRleHR1cmUgPSBhd2FpdCBuZXcgUkdCRUxvYWRlcigpLmxvYWRBc3luYyhwYXRoKTtcclxuICAgIGhkcmkubWFwcGluZyA9IEVxdWlyZWN0YW5ndWxhclJlZmxlY3Rpb25NYXBwaW5nO1xyXG4gICAgc2NlbmUuZW52aXJvbm1lbnQgPSBoZHJpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
203
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NsaWVudC9hcHAvY29yZS91dGlscy9vYmplY3QudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUVMLGNBQWMsRUFDUCxnQkFBZ0IsRUFBZSxnQ0FBZ0MsRUFDdEUsc0JBQXNCLEVBQ3RCLEtBQUssRUFDTCxJQUFJLEVBQ0osaUJBQWlCLEVBRWpCLElBQUksRUFDSixpQkFBaUIsRUFFakIsT0FBTyxFQUNSLE1BQU0sT0FBTyxDQUFDO0FBRWYsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBRXJELE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUNqRSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFFekUsTUFBTSxPQUFPLFdBQVc7SUFFZixNQUFNLENBQUMsV0FBVyxDQUNyQixJQUFZLEVBQUUsS0FBOEIsRUFDNUMsTUFBYyxFQUNkLFNBQWtCLEVBQ2xCLFVBQWtCLEVBQ2xCLFNBQWlCLEVBQ2pCLGNBQXVCLEtBQUs7UUFFOUIsTUFBTSxLQUFLLEdBQVUsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUVqQyxNQUFNLFlBQVksR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO1FBQzFDLFlBQVksQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLElBQUksc0JBQXNCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekYsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksaUJBQWlCLENBQUMsRUFBQyxLQUFLLEVBQUUsS0FB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LENBQUM7U0FDakU7SUFDSCxDQUFDO0lBRU0sTUFBTSxDQUFPLFFBQVEsQ0FBQyxJQUFZLEVBQUUsS0FBWTs7WUFDckQsTUFBTSxJQUFJLEdBQWdCLE1BQU0sSUFBSSxVQUFVLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakUsSUFBSSxDQUFDLE9BQU8sR0FBRyxnQ0FBZ0MsQ0FBQztZQUNoRCxLQUFLLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUMzQixDQUFDO0tBQUE7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQm94MyxcclxuICBCdWZmZXJHZW9tZXRyeSxcclxuICBDb2xvciwgQ3lsaW5kZXJHZW9tZXRyeSwgRGF0YVRleHR1cmUsIEVxdWlyZWN0YW5ndWxhclJlZmxlY3Rpb25NYXBwaW5nLFxyXG4gIEZsb2F0MzJCdWZmZXJBdHRyaWJ1dGUsXHJcbiAgR3JvdXAsXHJcbiAgTGluZSxcclxuICBMaW5lQmFzaWNNYXRlcmlhbCxcclxuICBNYXRlcmlhbCxcclxuICBNZXNoLFxyXG4gIE1lc2hCYXNpY01hdGVyaWFsLFxyXG4gIE9iamVjdDNELCBTY2VuZSxcclxuICBWZWN0b3IzXHJcbn0gZnJvbSAndGhyZWUnO1xyXG5pbXBvcnQge1NlbGVjdGlvbn0gZnJvbSAnQGNvbGlqbml0L2NvbmZpZ3VyYXRvcmFwaS9idWlsZC9tb2RlbC9zZWxlY3Rpb24nO1xyXG5pbXBvcnQge0l0ZW19IGZyb20gJy4uLy4uL3BsdWdpbnMvY29yZTNkL2l0ZW1zL2l0ZW0nO1xyXG5pbXBvcnQge0NoYW5nZXNJbnRlcmZhY2V9IGZyb20gJy4uL2ludGVyZmFjZS9jaGFuZ2VzLmludGVyZmFjZSc7XHJcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcclxuaW1wb3J0IHtSR0JFTG9hZGVyfSBmcm9tICd0aHJlZS9leGFtcGxlcy9qc20vbG9hZGVycy9SR0JFTG9hZGVyJztcclxuaW1wb3J0IHtDdXN0b21PYmplY3QzRH0gZnJvbSAnLi4vLi4vcGx1Z2lucy9jb3JlM2QvaXRlbXMvY3VzdG9tLW9iamVjdHMnO1xyXG5cclxuZXhwb3J0IGNsYXNzIE9iamVjdFV0aWxzIHtcclxuXHJcbiAgcHVibGljIHN0YXRpYyBDcmVhdGVBcnJvdyhcclxuICAgICAgbmFtZTogc3RyaW5nLCBjb2xvcjogQ29sb3IgfCBudW1iZXIgfCBzdHJpbmcsXHJcbiAgICAgIGxlbmd0aDogbnVtYmVyLFxyXG4gICAgICBkaXJlY3Rpb246IFZlY3RvcjMsXHJcbiAgICAgIGhlYWRMZW5ndGg6IG51bWJlcixcclxuICAgICAgaGVhZFdpZHRoOiBudW1iZXIsXHJcbiAgICAgIGRvdWJsZUFycm93OiBib29sZWFuID0gZmFsc2UpOiBHcm91cCB7XHJcblxyXG4gICAgY29uc3QgYXJyb3c6IEdyb3VwID0gbmV3IEdyb3VwKCk7XHJcblxyXG4gICAgY29uc3QgbGluZUdlb21ldHJ5ID0gbmV3IEJ1ZmZlckdlb21ldHJ5KCk7XHJcbiAgICBsaW5lR2VvbWV0cnkuc2V0QXR0cmlidXRlKCdwb3NpdGlvbicsIG5ldyBGbG9hdDMyQnVmZmVyQXR0cmlidXRlKFswLCAwLCAwLCAwLCAxLCAwXSwgMykpO1xyXG4gICAgY29uc3QgbGluZSA9IG5ldyBMaW5lKGxpbmVHZW9tZXRyeSwgbmV3IExpbmVCYXNpY01hdGVyaWFsKHtjb2xvcjogY29sb3IsIHRvbmVNYXBwZWQ6IGZhbHNlfSkpO1xyXG4gICAgbGluZUdlb21ldHJ5LnJvdGF0ZVgoTWF0aC5QSSAvIDIgKiBkaXJlY3Rpb24ueik7XHJcbiAgICBsaW5lR2VvbWV0cnkucm90YXRlWShNYXRoLlBJIC8gMiAqIGRpcmVjdGlvbi55KTtcclxuICAgIGxpbmVHZW9tZXRyeS5yb3RhdGVaKE1hdGguUEkgLyAyICogZGlyZWN0aW9uLngpO1xyXG4gICAgY29uc3QgdHJhbnNsYXRlOiBWZWN0b3IzID0gbmV3IFZlY3RvcjMoXHJcbiAgICAgICAgKGRpcmVjdGlvbi54KSAvIDIsXHJcbiAgICAgICAgZGlyZWN0aW9uLnkgPyAtKGRpcmVjdGlvbi55KSAvIDIgOiAwLFxyXG4gICAgICAgIC0oZGlyZWN0aW9uLnopIC8gMlxyXG4gICAgKTtcclxuICAgIGxpbmVHZW9tZXRyeS50cmFuc2xhdGUodHJhbnNsYXRlLngsIHRyYW5zbGF0ZS55LCB0cmFuc2xhdGUueik7XHJcblxyXG4gICAgbGluZS5uYW1lID0gJ2Fycm93X2xpbmUnO1xyXG4gICAgbGluZS5tYXRyaXhBdXRvVXBkYXRlID0gZmFsc2U7XHJcbiAgICBhcnJvdy5hZGQobGluZSk7XHJcblxyXG4gICAgY29uc3QgY29uZUdlb21ldHJ5ID0gbmV3IEN5bGluZGVyR2VvbWV0cnkoMCwgMC41LCAxLCA1LCAxKTtcclxuICAgIGNvbnN0IGNvbmVSaWdodEdlb21ldHJ5ID0gY29uZUdlb21ldHJ5LmNsb25lKCk7XHJcblxyXG4gICAgY29uc3QgY29uZSA9IG5ldyBNZXNoKGNvbmVHZW9tZXRyeSwgbmV3IE1lc2hCYXNpY01hdGVyaWFsKHtjb2xvcjogY29sb3IsIHRvbmVNYXBwZWQ6IGZhbHNlfSkpO1xyXG4gICAgY29uZUdlb21ldHJ5LnJvdGF0ZVgoTWF0aC5QSSAvIDIgKiAtZGlyZWN0aW9uLnopO1xyXG4gICAgaWYgKGRpcmVjdGlvbi55KSB7XHJcbiAgICAgIGNvbmVHZW9tZXRyeS5yb3RhdGVaKE1hdGguUEkpO1xyXG4gICAgfVxyXG4gICAgY29uZUdlb21ldHJ5LnJvdGF0ZVooTWF0aC5QSSAvIDIgKiAtZGlyZWN0aW9uLngpO1xyXG4gICAgLy8gY29uZUdlb21ldHJ5LnRyYW5zbGF0ZSh0cmFuc2xhdGUueCAqIDIsIHRyYW5zbGF0ZS55ICogMiwgdHJhbnNsYXRlLnogKiAyKTtcclxuICAgIGNvbmUubmFtZSA9ICdhcnJvd19jb25lX2xlZnQnO1xyXG4gICAgY29uZS5tYXRyaXhBdXRvVXBkYXRlID0gZmFsc2U7XHJcbiAgICBhcnJvdy5hZGQoY29uZSk7XHJcblxyXG4gICAgaWYgKGRvdWJsZUFycm93KSB7XHJcbiAgICAgIGNvbnN0IGNvbmVSaWdodCA9IG5ldyBNZXNoKGNvbmVSaWdodEdlb21ldHJ5LCBuZXcgTWVzaEJhc2ljTWF0ZXJpYWwoe2NvbG9yOiBjb2xvciwgdG9uZU1hcHBlZDogZmFsc2V9KSk7XHJcbiAgICAgIGNvbmVSaWdodEdlb21ldHJ5LnJvdGF0ZVgoTWF0aC5QSSAvIDIgKiBkaXJlY3Rpb24ueik7XHJcbiAgICAgIGNvbmVSaWdodEdlb21ldHJ5LnJvdGF0ZVooTWF0aC5QSSAvIDIgKiBkaXJlY3Rpb24ueCk7XHJcbiAgICAgIC8vIGNvbmVSaWdodEdlb21ldHJ5LnRyYW5zbGF0ZSgtdHJhbnNsYXRlLnggKiAyLCAtdHJhbnNsYXRlLnkgKiAyLCAtdHJhbnNsYXRlLnogKiAyKTtcclxuICAgICAgY29uZVJpZ2h0Lm5hbWUgPSAnYXJyb3dfY29uZV9yaWdodCc7XHJcbiAgICAgIGNvbmVSaWdodC5tYXRyaXhBdXRvVXBkYXRlID0gZmFsc2U7XHJcbiAgICAgIGFycm93LmFkZChjb25lUmlnaHQpO1xyXG4gICAgfVxyXG4gICAgYXJyb3cubmFtZSA9IG5hbWU7XHJcbiAgICByZXR1cm4gT2JqZWN0VXRpbHMuVXBkYXRlQXJyb3dMZW5ndGgoYXJyb3csIGxlbmd0aCwgZGlyZWN0aW9uLCBoZWFkTGVuZ3RoLCBoZWFkV2lkdGgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBVcGRhdGVBcnJvd0xlbmd0aChhcnJvdzogR3JvdXAsIGxlbmd0aDogbnVtYmVyLCBkaXJlY3Rpb246IFZlY3RvcjMsIGhlYWRMZW5ndGg6IG51bWJlciwgaGVhZFdpZHRoOiBudW1iZXIsIGRvdWJsZUFycm93OiBib29sZWFuID0gZmFsc2UpOiBHcm91cCB7XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCBhcnJvd0xpbmU6IE9iamVjdDNEID0gYXJyb3cuZ2V0T2JqZWN0QnlOYW1lKCdhcnJvd19saW5lJyk7XHJcbiAgICAgIGNvbnN0IHNjYWxlOiBWZWN0b3IzID0gbmV3IFZlY3RvcjMoXHJcbiAgICAgICAgICBkaXJlY3Rpb24ueCA/IE1hdGgubWF4KDAuMDAwMSwgbGVuZ3RoIC0gKGRvdWJsZUFycm93ID8gaGVhZExlbmd0aCAqIDIgOiBoZWFkTGVuZ3RoKSkgOiAxLFxyXG4gICAgICAgICAgZGlyZWN0aW9uLnkgPyBNYXRoLm1heCgwLjAwMDEsIGxlbmd0aCAtIChkb3VibGVBcnJvdyA/IGhlYWRMZW5ndGggKiAyIDogaGVhZExlbmd0aCkpIDogMSxcclxuICAgICAgICAgIGRpcmVjdGlvbi56ID8gTWF0aC5tYXgoMC4wMDAxLCBsZW5ndGggLSAoZG91YmxlQXJyb3cgPyBoZWFkTGVuZ3RoICogMiA6IGhlYWRMZW5ndGgpKSA6IDEsXHJcbiAgICAgICk7XHJcbiAgICAgIGFycm93TGluZS5zY2FsZS5jb3B5KHNjYWxlKTtcclxuICAgICAgYXJyb3dMaW5lLnVwZGF0ZU1hdHJpeCgpO1xyXG5cclxuICAgICAgY29uc3QgY29uZTogT2JqZWN0M0QgPSBhcnJvdy5nZXRPYmplY3RCeU5hbWUoJ2Fycm93X2NvbmVfbGVmdCcpO1xyXG4gICAgICBpZiAoY29uZSkge1xyXG4gICAgICAgIGNvbmUuc2NhbGUuc2V0KGhlYWRXaWR0aCwgaGVhZExlbmd0aCwgaGVhZFdpZHRoKTtcclxuICAgICAgICBjb25lLnBvc2l0aW9uLnggPSBkaXJlY3Rpb24ueCA/IGxlbmd0aCAvIDIgLSBoZWFkTGVuZ3RoIDogMDtcclxuICAgICAgICBjb25lLnBvc2l0aW9uLnkgPSBkaXJlY3Rpb24ueSA/IC1sZW5ndGggLyAyICsgaGVhZExlbmd0aCA6IDA7XHJcbiAgICAgICAgY29uZS5wb3NpdGlvbi56ID0gZGlyZWN0aW9uLnogPyAtbGVuZ3RoIC8gMiArIGhlYWRMZW5ndGggOiAwO1xyXG4gICAgICAgIGNvbmUudXBkYXRlTWF0cml4KCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IGNvbmVSaWdodDogT2JqZWN0M0QgPSBhcnJvdy5nZXRPYmplY3RCeU5hbWUoJ2Fycm93X2NvbmVfcmlnaHQnKTtcclxuICAgICAgaWYgKGNvbmVSaWdodCkge1xyXG4gICAgICAgIGNvbmVSaWdodC5zY2FsZS5zZXQoaGVhZFdpZHRoLCBoZWFkTGVuZ3RoLCBoZWFkV2lkdGgpO1xyXG4gICAgICAgIGNvbmVSaWdodC5wb3NpdGlvbi54ID0gZGlyZWN0aW9uLnggPyAtbGVuZ3RoIC8gMiArIGhlYWRMZW5ndGggOiAwO1xyXG4gICAgICAgIGNvbmVSaWdodC5wb3NpdGlvbi55ID0gZGlyZWN0aW9uLnkgPyBsZW5ndGggLyAyIC0gaGVhZExlbmd0aCA6IDA7XHJcbiAgICAgICAgY29uZVJpZ2h0LnBvc2l0aW9uLnogPSBkaXJlY3Rpb24ueiA/IGxlbmd0aCAvIDIgLSBoZWFkTGVuZ3RoIDogMDtcclxuICAgICAgICBjb25lUmlnaHQudXBkYXRlTWF0cml4KCk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGFycm93O1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIEdldFBhcmVudEl0ZW0oZWxlbWVudDogYW55KTogSXRlbSB7XHJcbiAgICBpZiAoIWVsZW1lbnQucGFyZW50KSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgaWYgKGVsZW1lbnQucGFyZW50IGluc3RhbmNlb2YgSXRlbSkge1xyXG4gICAgICByZXR1cm4gZWxlbWVudC5wYXJlbnQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gT2JqZWN0VXRpbHMuR2V0UGFyZW50SXRlbShlbGVtZW50LnBhcmVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIEdldFBhcmVudEN1c3RvbU9iamVjdChlbGVtZW50OiBhbnkpOiBDdXN0b21PYmplY3QzRCB7XHJcbiAgICBpZiAoIWVsZW1lbnQucGFyZW50KSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgaWYgKGVsZW1lbnQucGFyZW50IGluc3RhbmNlb2YgQ3VzdG9tT2JqZWN0M0QpIHtcclxuICAgICAgcmV0dXJuIGVsZW1lbnQucGFyZW50O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIE9iamVjdFV0aWxzLkdldFBhcmVudEN1c3RvbU9iamVjdChlbGVtZW50LnBhcmVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIEdldERlZmF1bHRNYXRlcmlhbChvYmplY3Q6IE9iamVjdDNEKTogTWF0ZXJpYWwge1xyXG4gICAgY29uc3QgY2hpbGRyZW46IE1lc2hbXSA9IDxNZXNoW10+b2JqZWN0LmNoaWxkcmVuLmZpbHRlcihjID0+IHtcclxuICAgICAgaWYgKGMgaW5zdGFuY2VvZiBNZXNoKSB7XHJcbiAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkoYy5tYXRlcmlhbCkgP1xyXG4gICAgICAgICAgICBjLm1hdGVyaWFsLmZpbmQobSA9PiBtLm5hbWUudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKCdkZWZhdWx0XycpKSA6XHJcbiAgICAgICAgICAgIGMubWF0ZXJpYWwubmFtZS50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoJ2RlZmF1bHRfJyk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIDxNYXRlcmlhbD5jaGlsZHJlbi5tYXAoYyA9PiBjLm1hdGVyaWFsKVswXTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgU2FtZU1hdGVyaWFsKGZpcnN0OiBNYXRlcmlhbCwgc2Vjb25kOiBNYXRlcmlhbCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCFmaXJzdCAmJiAhc2Vjb25kKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZpcnN0Lmhhc093blByb3BlcnR5KCdtYXAnKSAmJiBzZWNvbmQuaGFzT3duUHJvcGVydHkoJ21hcCcpICYmIChmaXJzdCBhcyBhbnkpLm1hcCAmJiAoc2Vjb25kIGFzIGFueSkubWFwICYmXHJcbiAgICAgICAgKGZpcnN0IGFzIGFueSkubWFwLmltYWdlLnNyYyA9PT0gKHNlY29uZCBhcyBhbnkpLm1hcC5pbWFnZS5zcmM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIEdldENoYW5nZXMoZmlyc3RJdGVtczogT2JqZWN0M0RbXSwgc2Vjb25kSXRlbXM6IE9iamVjdDNEW10pOiBhbnkge1xyXG4gICAgY29uc3QgcmVzdWx0OiBDaGFuZ2VzSW50ZXJmYWNlW10gPSBbXTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2Vjb25kSXRlbXMubGVuZ3RoOyBpKyspIHsgLy8gY2hlY2sgYWRkZWQvY2hhbmdlZCBpdGVtc1xyXG4gICAgICBjb25zdCBzZWNvbmRJdGVtID0gc2Vjb25kSXRlbXNbaV07XHJcbiAgICAgIGxldCBvbGRQb3NpdGlvbjtcclxuICAgICAgbGV0IG9sZE1hdGVyaWFsO1xyXG4gICAgICBjb25zdCBuZXdQb3NpdGlvbjogVmVjdG9yMyA9IG5ldyBWZWN0b3IzKCkuY29weShzZWNvbmRJdGVtLnBvc2l0aW9uKTtcclxuICAgICAgY29uc3QgbmV3TWF0ZXJpYWw6IE1hdGVyaWFsID0gT2JqZWN0VXRpbHMuR2V0RGVmYXVsdE1hdGVyaWFsKHNlY29uZEl0ZW0pO1xyXG4gICAgICBjb25zdCBmaXJzdEl0ZW0gPSBmaXJzdEl0ZW1zLmZpbmQoZmkgPT4gZmkubmFtZSA9PT0gc2Vjb25kSXRlbXNbaV0ubmFtZSk7XHJcbiAgICAgIGlmIChmaXJzdEl0ZW0pIHtcclxuICAgICAgICBvbGRQb3NpdGlvbiA9IG5ldyBWZWN0b3IzKCkuY29weShmaXJzdEl0ZW0ucG9zaXRpb24pO1xyXG4gICAgICAgIG9sZE1hdGVyaWFsID0gT2JqZWN0VXRpbHMuR2V0RGVmYXVsdE1hdGVyaWFsKGZpcnN0SXRlbSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCghb2xkUG9zaXRpb24gfHwgKG5ld1Bvc2l0aW9uICYmICFvbGRQb3NpdGlvbi5lcXVhbHMobmV3UG9zaXRpb24pKSkgfHwgIU9iamVjdFV0aWxzLlNhbWVNYXRlcmlhbChvbGRNYXRlcmlhbCwgbmV3TWF0ZXJpYWwpKSB7XHJcbiAgICAgICAgcmVzdWx0LnB1c2goe1xyXG4gICAgICAgICAgb2JqZWN0OiBzZWNvbmRJdGVtLFxyXG4gICAgICAgICAgbmFtZTogc2Vjb25kSXRlbS5uYW1lLFxyXG4gICAgICAgICAgb2xkUG9zaXRpb246IG9sZFBvc2l0aW9uLFxyXG4gICAgICAgICAgbmV3UG9zaXRpb246IG5ld1Bvc2l0aW9uLFxyXG4gICAgICAgICAgb2xkTWF0ZXJpYWw6IG9sZE1hdGVyaWFsLFxyXG4gICAgICAgICAgbmV3TWF0ZXJpYWw6IG5ld01hdGVyaWFsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlyc3RJdGVtcy5sZW5ndGg7IGkrKykgeyAvLyBjaGVjayBkZWxldGVkIGl0ZW1zXHJcbiAgICAgIGNvbnN0IGZpcnN0SXRlbSA9IGZpcnN0SXRlbXNbaV07XHJcbiAgICAgIGNvbnN0IG9sZFBvc2l0aW9uOiBWZWN0b3IzID0gbmV3IFZlY3RvcjMoKS5jb3B5KGZpcnN0SXRlbS5wb3NpdGlvbik7XHJcbiAgICAgIGxldCBuZXdQb3NpdGlvbjtcclxuICAgICAgY29uc3Qgc2Vjb25kSXRlbSA9IHNlY29uZEl0ZW1zLmZpbmQoZmkgPT4gZmkubmFtZSA9PT0gZmlyc3RJdGVtc1tpXS5uYW1lKTtcclxuICAgICAgaWYgKHNlY29uZEl0ZW0pIHtcclxuICAgICAgICBuZXdQb3NpdGlvbiA9IG5ldyBWZWN0b3IzKCkuY29weShzZWNvbmRJdGVtLnBvc2l0aW9uKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoIW5ld1Bvc2l0aW9uIHx8IChuZXdQb3NpdGlvbiAmJiAhb2xkUG9zaXRpb24uZXF1YWxzKG5ld1Bvc2l0aW9uKSkpIHtcclxuICAgICAgICByZXN1bHQucHVzaCh7XHJcbiAgICAgICAgICBvYmplY3Q6IGZpcnN0SXRlbSxcclxuICAgICAgICAgIG5hbWU6IGZpcnN0SXRlbS5uYW1lLFxyXG4gICAgICAgICAgb2xkUG9zaXRpb246IG9sZFBvc2l0aW9uLFxyXG4gICAgICAgICAgbmV3UG9zaXRpb246IG5ld1Bvc2l0aW9uXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIEdldFNlbGVjdGlvbkZyb21TZWxlY3RlZE9iamVjdChvYmplY3Q6IGFueSk6IFNlbGVjdGlvbiB7XHJcbiAgICBpZiAob2JqZWN0KSB7XHJcbiAgICAgIGlmIChvYmplY3QudXNlckRhdGEgJiYgb2JqZWN0LnVzZXJEYXRhLnNlbGVjdGlvbikge1xyXG4gICAgICAgIHJldHVybiBvYmplY3QudXNlckRhdGEuc2VsZWN0aW9uO1xyXG4gICAgICB9IGVsc2UgaWYgKG9iamVjdC5wYXJlbnQpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5HZXRTZWxlY3Rpb25Gcm9tU2VsZWN0ZWRPYmplY3Qob2JqZWN0LnBhcmVudCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgVXBkYXRlVXZzKGdlbzogQnVmZmVyR2VvbWV0cnkpOiB2b2lkIHtcclxuICAgIGlmIChnZW8pIHtcclxuICAgICAgY29uc3QgcG9zOiBhbnkgPSBnZW8uYXR0cmlidXRlcy5wb3NpdGlvbjtcclxuICAgICAgY29uc3QgYjM6IEJveDMgPSBuZXcgVEhSRUUuQm94MygpLnNldEZyb21CdWZmZXJBdHRyaWJ1dGUocG9zKTtcclxuICAgICAgY29uc3QgYjNzaXplOiBWZWN0b3IzID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuICAgICAgYjMuZ2V0U2l6ZShiM3NpemUpO1xyXG4gICAgICBjb25zdCB1diA9IFtdO1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBvcy5jb3VudDsgaSsrKSB7XHJcbiAgICAgICAgY29uc3QgeDogbnVtYmVyID0gcG9zLmdldFgoaSk7XHJcbiAgICAgICAgY29uc3QgeTogbnVtYmVyID0gcG9zLmdldFkoaSk7XHJcbiAgICAgICAgY29uc3QgdTogbnVtYmVyID0gKHggLSBiMy5taW4ueCkgLyBiM3NpemUueDtcclxuICAgICAgICBjb25zdCB2OiBudW1iZXIgPSAoeSAtIGIzLm1pbi55KSAvIGIzc2l6ZS55O1xyXG4gICAgICAgIHV2LnB1c2godSwgdik7XHJcbiAgICAgIH1cclxuICAgICAgZ2VvLnNldEF0dHJpYnV0ZSgndXYnLCBuZXcgVEhSRUUuRmxvYXQzMkJ1ZmZlckF0dHJpYnV0ZSh1diwgMikpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBhc3luYyBMb2FkSERSSShwYXRoOiBzdHJpbmcsIHNjZW5lOiBTY2VuZSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc3QgaGRyaTogRGF0YVRleHR1cmUgPSBhd2FpdCBuZXcgUkdCRUxvYWRlcigpLmxvYWRBc3luYyhwYXRoKTtcclxuICAgIGhkcmkubWFwcGluZyA9IEVxdWlyZWN0YW5ndWxhclJlZmxlY3Rpb25NYXBwaW5nO1xyXG4gICAgc2NlbmUuZW52aXJvbm1lbnQgPSBoZHJpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
@@ -150,7 +150,6 @@ export class HomedecoratorComponent {
150
150
  // 'showPriceFilter': false,
151
151
  // 'cameraPositionFixed': false,
152
152
  // 'instantEditMenu': false,
153
- // 'useNewRender': true,
154
153
  // 'useRenderWebsocket': false,
155
154
  // 'showRoomDownloadButton': true,
156
155
  // 'searchOnStart': true
@@ -458,4 +457,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
458
457
  type: HostListener,
459
458
  args: ['document:keyup', ['$event']]
460
459
  }] } });
461
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZWRlY29yYXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xpZW50L2FwcC9ob21lZGVjb3JhdG9yLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUloSCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBSzlELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUUxRCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFHM0MsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQ3BFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDdEUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzFELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUNsRSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDOUQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMEVBQTBFLENBQUM7QUFDMUcsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHFFQUFxRSxDQUFDO0FBQ2hHLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUNwRSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDeEUsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sb0RBQW9ELENBQUM7QUFDM0YsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDN0UsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFDbEYsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sOERBQThELENBQUM7QUFDckcsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQzFFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBQzdFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQy9FLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUNoRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxnREFBZ0QsQ0FBQztBQUNsRixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDdEUsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sK0RBQStELENBQUM7QUFDdkcsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFDN0UsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sbUVBQW1FLENBQUM7QUFDbkcsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sd0VBQXdFLENBQUM7QUFDN0csT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0seUVBQXlFLENBQUM7QUFDOUcsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0seUVBQXlFLENBQUM7QUFDOUcsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGlFQUFpRSxDQUFDO0FBQy9GLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxnRUFBZ0UsQ0FBQztBQUM3RixPQUFPLEVBQUMsNEJBQTRCLEVBQUMsTUFBTSwwREFBMEQsQ0FBQztBQUN0RyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxnREFBZ0QsQ0FBQztBQUNuRixPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSx3RUFBd0UsQ0FBQztBQUM1RyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxvRUFBb0UsQ0FBQztBQUNyRyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxtRUFBbUUsQ0FBQztBQUNuRyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxrRUFBa0UsQ0FBQztBQUNuRyxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUMzRSxPQUFPLEVBQUMsK0JBQStCLEVBQUMsTUFBTSx3RUFBd0UsQ0FBQztBQUN2SCxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxrRUFBa0UsQ0FBQztBQUMzRyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDdEUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQzVELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBQzdFLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDJFQUEyRSxDQUFDO0FBQ2pILE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUN4RSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQUN2RixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDOUQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQzlELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGdEQUFnRCxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBd0ZuRixNQUFNLE9BQU8sc0JBQXNCO0lBNkdqQyxZQUNTLGlCQUFnRCxFQUNoRCxRQUF5QixFQUN6QixjQUE4QixFQUM5QixjQUF5QyxFQUN4QyxhQUE4QixFQUM5QixhQUEyQixFQUMzQixlQUFrQyxFQUNsQyxxQkFBMkMsRUFDM0MsYUFBMkMsRUFDM0MsbUJBQXVDO1FBVHhDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBK0I7UUFDaEQsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFDekIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLG1CQUFjLEdBQWQsY0FBYyxDQUEyQjtRQUN4QyxrQkFBYSxHQUFiLGFBQWEsQ0FBaUI7UUFDOUIsa0JBQWEsR0FBYixhQUFhLENBQWM7UUFDM0Isb0JBQWUsR0FBZixlQUFlLENBQW1CO1FBQ2xDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBc0I7UUFDM0Msa0JBQWEsR0FBYixhQUFhLENBQThCO1FBQzNDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBb0I7UUFwSDFDLHdCQUFtQixHQUFrQjtZQUMxQyxFQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBQztZQUM1QixFQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFDO1lBQ2xDLEVBQUMsSUFBSSxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFDO1lBQ2pDLEVBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFDO1lBQzFCLEVBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFDO1lBQ3pCLEVBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFDO1lBQzFCLEVBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFDO1lBQzNCLEVBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFDO1lBQ3ZCLEVBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFDO1NBQy9CLENBQUM7UUFHSyx5QkFBb0IsR0FBa0IsRUFBRSxDQUFDO1FBR3pDLDBCQUFxQixHQUFrQixFQUFFLENBQUM7UUFhMUMsY0FBUyxHQUFZLElBQUksQ0FBQztRQUUxQixXQUFNLEdBQVksS0FBSyxDQUFDO1FBQ3hCLFVBQUssR0FBVyxhQUFhLENBQUM7UUFDOUIsb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFDakMsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFDaEMsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFDaEMsK0JBQTBCLEdBQVksS0FBSyxDQUFDO1FBRW5ELHNCQUFzQjtRQUN0QiwwQ0FBMEM7UUFDMUMsd0JBQXdCO1FBQ3hCLHNCQUFzQjtRQUN0QixtQkFBbUI7UUFDbkIsbUJBQW1CO1FBQ25CLHVCQUF1QjtRQUN2Qix3Q0FBd0M7UUFDeEMsdURBQXVEO1FBQ3ZELDZEQUE2RDtRQUM3RCxrREFBa0Q7UUFDbEQsMEJBQTBCO1FBQzFCLDBCQUEwQjtRQUMxQix5QkFBeUI7UUFDekIsd0JBQXdCO1FBQ3hCLGdDQUFnQztRQUNoQyx5QkFBeUI7UUFDekIsaUJBQWlCO1FBQ2pCLDJCQUEyQjtRQUMzQiwrQkFBK0I7UUFDL0IsOEJBQThCO1FBQzlCLGdDQUFnQztRQUNoQyw2QkFBNkI7UUFDN0IsNEJBQTRCO1FBQzVCLGdDQUFnQztRQUNoQyxvQ0FBb0M7UUFDcEMsOEJBQThCO1FBQzlCLCtCQUErQjtRQUMvQix5QkFBeUI7UUFDekIsMEJBQTBCO1FBQzFCLHdCQUF3QjtRQUN4Qiw4QkFBOEI7UUFDOUIsMkJBQTJCO1FBQzNCLGdDQUFnQztRQUNoQyxvQ0FBb0M7UUFDcEMsZ0NBQWdDO1FBQ2hDLDRCQUE0QjtRQUM1QixtQ0FBbUM7UUFDbkMsc0NBQXNDO1FBQ3RDLDRCQUE0QjtRQUM1QixPQUFPO1FBQ1AsMkJBQTJCO1FBQzNCLHNDQUFzQztRQUN0Qyx3Q0FBd0M7UUFDeEMscUNBQXFDO1FBQ3JDLG1DQUFtQztRQUNuQyx1Q0FBdUM7UUFDdkMsT0FBTztRQUNQLDBCQUEwQjtRQUMxQixzQ0FBc0M7UUFDdEMsb0JBQW9CO1FBQ3BCLHNCQUFzQjtRQUN0QixrQ0FBa0M7UUFDbEMsT0FBTztRQUNQLDZCQUE2QjtRQUM3QixzREFBc0Q7UUFDdEQsNkNBQTZDO1FBQzdDLG1CQUFtQjtRQUNuQix5QkFBeUI7UUFDekIsMEJBQTBCO1FBQzFCLDJCQUEyQjtRQUMzQiwyQkFBMkI7UUFDM0IsTUFBTTtRQUNOLEtBQUs7UUFFRyxVQUFLLEdBQW1CLEVBQUUsQ0FBQztRQUMzQix1QkFBa0IsR0FBWSxLQUFLLENBQUM7SUFjNUMsQ0FBQztJQXBHRCxJQUNXLGlCQUFpQixDQUFDLEtBQWM7UUFDekMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztRQUNoQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELElBQVcsaUJBQWlCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ2pDLENBQUM7SUE4RkssUUFBUTs7WUFDWixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDYixJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQW9CLEVBQUUsRUFBRTtnQkFDdkUsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO2dCQUN4QyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7Z0JBQzFDLElBQUksQ0FBQywwQkFBMEIsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDO1lBQzlGLENBQUMsQ0FBQyxFQUNGLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyx3QkFBd0IsRUFBRSxHQUFHLEVBQUU7Z0JBQ3hFLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1lBQzdCLENBQUMsQ0FBQyxFQUNGLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyx3QkFBd0IsRUFBRSxHQUFHLEVBQUU7Z0JBQ3hFLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1lBQzlCLENBQUMsQ0FBQyxFQUNGLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsRUFBRSxHQUFHLEVBQUU7Z0JBQ2xFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNqQyxDQUFDLENBQUMsRUFDRixJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsZUFBZSxFQUFFLENBQUMsRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFDLEVBQUUsRUFBRTtnQkFDbkYsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztZQUM1QyxDQUFDLENBQUMsRUFDRixJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQWUsRUFBRSxFQUFFO2dCQUM5RCxJQUFJLE1BQU0sRUFBRTtvQkFDVixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztvQkFDbkIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUNoQztZQUNILENBQUMsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDO0tBQUE7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQ3BCLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLDhCQUE4QixDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDbkg7WUFDRSxjQUFjO1lBQ2QsZUFBZTtZQUNmLGtCQUFrQjtZQUNsQix5QkFBeUI7WUFDekIsYUFBYTtZQUNiLG9CQUFvQjtZQUNwQixZQUFZO1lBQ1osWUFBWTtZQUNaLGFBQWE7WUFDYixlQUFlO1lBQ2YsYUFBYTtZQUNiLFlBQVk7WUFDWixjQUFjO1lBQ2QsT0FBTztZQUNQLGVBQWU7WUFDZix1QkFBdUI7WUFDdkIsV0FBVztZQUNYLGFBQWE7WUFDYixjQUFjO1lBQ2QsUUFBUTtZQUNSLHNCQUFzQjtZQUN0QixxQkFBcUI7U0FDdEIsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakIsQ0FBQztJQUdELEtBQUssQ0FBQyxLQUFvQjtRQUN4QixNQUFNLEVBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUMsR0FBd0QsS0FBSyxDQUFDO1FBQzNGLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxJQUFJLE9BQU8sSUFBSSxJQUFJLEtBQUssTUFBTSxFQUFFO1lBQzNGLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM3QztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxJQUFJLE9BQU8sSUFBSSxJQUFJLEtBQUssTUFBTSxFQUFFO1lBQzNGLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM3QztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsSUFBSSxNQUFNLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxNQUFNLENBQUMsRUFBRTtZQUNwRixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDdkQsSUFBSSxJQUFJLEtBQUssTUFBTSxFQUFFO2dCQUNuQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsb0JBQW9CLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQzthQUMvRTtTQUNGO0lBQ0gsQ0FBQztJQUVPLG1CQUFtQixDQUFDLFVBQW1CO1FBQzdDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQyxNQUFNLE1BQU0sR0FBVyxNQUFNLENBQUMsd0JBQXdCLENBQUMsRUFBQyxRQUFRLEVBQUUsMkJBQTJCLEVBQUMsQ0FBQyxDQUFDO1FBQ2hHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVPLGdCQUFnQixDQUFDLE1BQWMsRUFBRSxhQUFzQixLQUFLO1FBQ2xFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNyRCxJQUFJLFVBQVUsRUFBRTtZQUNkLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsRUFBQyxXQUFXLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztTQUN2RTthQUFNO1lBQ0wsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxFQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO1NBQ3ZFO1FBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxNQUFlO1FBQ3ZDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO0lBQzVDLENBQUM7O29IQTVOVSxzQkFBc0I7d0dBQXRCLHNCQUFzQixpV0FuRHRCO1FBQ1QsWUFBWTtRQUNaLGVBQWU7UUFDZixjQUFjO1FBQ2QscUJBQXFCO1FBQ3JCLGFBQWE7UUFDYixhQUFhO1FBQ2IsWUFBWTtRQUNaLFdBQVc7UUFDWCxTQUFTO1FBQ1QsU0FBUztRQUNULFNBQVM7UUFDVCxjQUFjO1FBQ2QsZ0JBQWdCO1FBQ2hCLFdBQVc7UUFDWCxZQUFZO1FBQ1osY0FBYztRQUNkLHVCQUF1QjtRQUN2QixrQkFBa0I7UUFDbEIsbUJBQW1CO1FBQ25CLHVCQUF1QjtRQUN2QixlQUFlO1FBQ2YsZ0JBQWdCO1FBQ2hCLGlCQUFpQjtRQUNqQixVQUFVO1FBQ1Ysa0JBQWtCO1FBQ2xCLGFBQWE7UUFDYix3QkFBd0I7UUFDeEIsZ0JBQWdCO1FBQ2hCLGdCQUFnQjtRQUNoQixxQkFBcUI7UUFDckIscUJBQXFCO1FBQ3JCLHFCQUFxQjtRQUNyQixjQUFjO1FBQ2QsYUFBYTtRQUNiLDRCQUE0QjtRQUM1QixtQkFBbUI7UUFDbkIsb0JBQW9CO1FBQ3BCLGlCQUFpQjtRQUNqQixnQkFBZ0I7UUFDaEIsaUJBQWlCO1FBQ2pCLG9CQUFvQjtRQUNwQiwrQkFBK0I7UUFDL0IseUJBQXlCO1FBQ3pCLGFBQWE7UUFDYixhQUFhO1FBQ2IsZ0JBQWdCO1FBQ2hCLHNCQUFzQjtRQUN0QixtQkFBbUI7S0FDcEIsMEJBakZTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4QlQ7NEZBcURVLHNCQUFzQjtrQkFyRmxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4QlQ7b0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLFNBQVMsRUFBRTt3QkFDVCxZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxxQkFBcUI7d0JBQ3JCLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsU0FBUzt3QkFDVCxTQUFTO3dCQUNULFNBQVM7d0JBQ1QsY0FBYzt3QkFDZCxnQkFBZ0I7d0JBQ2hCLFdBQVc7d0JBQ1gsWUFBWTt3QkFDWixjQUFjO3dCQUNkLHVCQUF1Qjt3QkFDdkIsa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLHVCQUF1Qjt3QkFDdkIsZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLGlCQUFpQjt3QkFDakIsVUFBVTt3QkFDVixrQkFBa0I7d0JBQ2xCLGFBQWE7d0JBQ2Isd0JBQXdCO3dCQUN4QixnQkFBZ0I7d0JBQ2hCLGdCQUFnQjt3QkFDaEIscUJBQXFCO3dCQUNyQixxQkFBcUI7d0JBQ3JCLHFCQUFxQjt3QkFDckIsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLDRCQUE0Qjt3QkFDNUIsbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLGlCQUFpQjt3QkFDakIsZ0JBQWdCO3dCQUNoQixpQkFBaUI7d0JBQ2pCLG9CQUFvQjt3QkFDcEIsK0JBQStCO3dCQUMvQix5QkFBeUI7d0JBQ3pCLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLHNCQUFzQjt3QkFDdEIsbUJBQW1CO3FCQUNwQjtpQkFDRjtnYUFJUSxtQkFBbUI7c0JBRHpCLEtBQUs7Z0JBY0Msb0JBQW9CO3NCQUQxQixLQUFLO2dCQUlDLHFCQUFxQjtzQkFEM0IsS0FBSztnQkFJSyxpQkFBaUI7c0JBRDNCLEtBQUs7Z0JBV0MsU0FBUztzQkFEZixXQUFXO3VCQUFDLHdCQUF3QjtnQkEySnJDLEtBQUs7c0JBREosWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtNYXRJY29uUmVnaXN0cnl9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQge0RvbVNhbml0aXplcn0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtBcHBTdGF0ZVNlcnZpY2V9IGZyb20gJy4vY29yZS9zZXJ2aWNlL2FwcC1zdGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtQcmVzZXRzU2VydmljZX0gZnJvbSAnLi9jb3JlL3NlcnZpY2UvcHJlc2V0cy5zZXJ2aWNlJztcclxuaW1wb3J0IHtIb21lZGVjb3JhdG9yQ29ubmVjdG9yU2VydmljZX0gZnJvbSAnLi9jb3JlL3NlcnZpY2UvaG9tZWRlY29yYXRvci1jb25uZWN0b3Iuc2VydmljZSc7XHJcbmltcG9ydCB7U2NyZWVuU2l6ZUFuYWx5c2lzU2VydmljZX0gZnJvbSAnLi9zaGFyZWQvc2NyZWVuLXNpemUtYW5hbHlzaXMvc2NyZWVuLXNpemUtYW5hbHlzaXMuc2VydmljZSc7XHJcbmltcG9ydCB7TWVzc2FnZUJ1c1NlcnZpY2V9IGZyb20gJy4vY29yZS9zZXJ2aWNlL21lc3NhZ2UtYnVzLnNlcnZpY2UnO1xyXG5pbXBvcnQge1NjcmVlblNpemVJbmZvfSBmcm9tICcuL3NoYXJlZC9zY3JlZW4tc2l6ZS1hbmFseXNpcy9zY3JlZW4tc2l6ZS1pbmZvJztcclxuaW1wb3J0IHtNZXNzYWdlVHlwZX0gZnJvbSAnLi9jb3JlL2VudW0vbWVzc2FnZS10eXBlLmVudW0nO1xyXG5pbXBvcnQge0hvbWVkZWNvcmF0b3JTZXJ2aWNlfSBmcm9tICcuL2NvcmUvc2VydmljZS9ob21lZGVjb3JhdG9yLnNlcnZpY2UnO1xyXG5pbXBvcnQge1ByZXNldH0gZnJvbSAnLi9jb3JlL21vZGVsL3ByZXNldCc7XHJcbmltcG9ydCB7SG9tZWRlY29yYXRvckFwcEV2ZW50U2VydmljZX0gZnJvbSAnLi9jb3JlL3NlcnZpY2UvaG9tZWRlY29yYXRvci1hcHAtZXZlbnQuc2VydmljZSc7XHJcbmltcG9ydCB7RmlsdGVyT3JkZXJ9IGZyb20gJ0Bjb2xpam5pdC9jYXRhbG9nL2xpYi9pbnRlcmZhY2UvZmlsdGVyLW9yZGVyLmludGVyZmFjZSc7XHJcbmltcG9ydCB7U2NlbmVTZXJ2aWNlfSBmcm9tICcuL3BsdWdpbnMvY29yZTNkL3NlcnZpY2Uvc2NlbmUuc2VydmljZSc7XHJcbmltcG9ydCB7Q2FtZXJhU2VydmljZX0gZnJvbSAnLi9wbHVnaW5zL2NvcmUzZC9zZXJ2aWNlL2NhbWVyYS5zZXJ2aWNlJztcclxuaW1wb3J0IHtMaWdodHNTZXJ2aWNlfSBmcm9tICcuL3BsdWdpbnMvY29yZTNkL3NlcnZpY2UvbGlnaHRzLnNlcnZpY2UnO1xyXG5pbXBvcnQge1V0aWxzU2VydmljZX0gZnJvbSAnLi9jb3JlL3NlcnZpY2UvdXRpbHMuc2VydmljZSc7XHJcbmltcG9ydCB7SXRlbVNlcnZpY2V9IGZyb20gJy4vcGx1Z2lucy9jb3JlM2Qvc2VydmljZS9pdGVtLnNlcnZpY2UnO1xyXG5pbXBvcnQge0FyU2VydmljZX0gZnJvbSAnLi9wbHVnaW5zL2NvcmUzZC9zZXJ2aWNlL2FyLnNlcnZpY2UnO1xyXG5pbXBvcnQge0Zsb29ycGxhblNlcnZpY2V9IGZyb20gJy4vcGx1Z2lucy9yb29tLXBsYW5uZXIvY29tcG9uZW50cy9mbG9vcnBsYW5uZXIvc2VydmljZS9mbG9vcnBsYW4uc2VydmljZSc7XHJcbmltcG9ydCB7Um9vbVNlcnZpY2V9IGZyb20gJy4vcGx1Z2lucy9yb29tLXBsYW5uZXIvY29tcG9uZW50cy9mbG9vcnBsYW5uZXIvc2VydmljZS9yb29tLnNlcnZpY2UnO1xyXG5pbXBvcnQge0Zsb29yU2VydmljZX0gZnJvbSAnLi9wbHVnaW5zL2NvcmUzZC9zZXJ2aWNlL2Zsb29yLnNlcnZpY2UnO1xyXG5pbXBvcnQge0NlaWxpbmdTZXJ2aWNlfSBmcm9tICcuL3BsdWdpbnMvY29yZTNkL3NlcnZpY2UvY2VpbGluZy5zZXJ2aWNlJztcclxuaW1wb3J0IHtXYWxsTWVhc3VyZW1lbnRzU2VydmljZX0gZnJvbSAnLi9wbHVnaW5zL2NvcmUzZC9zZXJ2aWNlL3dhbGwtbWVhc3VyZW1lbnRzLnNlcnZpY2UnO1xyXG5pbXBvcnQge0RldmVsb3BtZW50U2VydmljZX0gZnJvbSAnLi9kZXZlbG9wbWVudC9zZXJ2aWNlL2RldmVsb3BtZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQge0ludGVyc2VjdGlvblNlcnZpY2V9IGZyb20gJy4vcGx1Z2lucy9jb3JlM2Qvc2VydmljZS9pbnRlcnNlY3Rpb24uc2VydmljZSc7XHJcbmltcG9ydCB7Q29sbGlzaW9uTWFuYWdlclNlcnZpY2V9IGZyb20gJy4vcGx1Z2lucy9jb3JlM2QvY29sbGlzaW9uLW1hbmFnZXIvY29sbGlzaW9uLW1hbmFnZXIuc2VydmljZSc7XHJcbmltcG9ydCB7Um90YXRpb25TZXJ2aWNlfSBmcm9tICcuL3BsdWdpbnMvY29yZTNkL3NlcnZpY2Uvcm90YXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7RXJyb3JHbG93U2VydmljZX0gZnJvbSAnLi9wbHVnaW5zL2NvcmUzZC9zZXJ2aWNlL2Vycm9yLWdsb3cuc2VydmljZSc7XHJcbmltcG9ydCB7U2NlbmVFdmVudFNlcnZpY2V9IGZyb20gJy4vcGx1Z2lucy9jb3JlM2Qvc2VydmljZS9zY2VuZS1ldmVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHtIdWRTZXJ2aWNlfSBmcm9tICcuL3BsdWdpbnMvY29yZTNkL3NlcnZpY2UvaHVkLnNlcnZpY2UnO1xyXG5pbXBvcnQge0RyYWdBbmREcm9wU2VydmljZX0gZnJvbSAnLi9wbHVnaW5zL2NvcmUzZC9zZXJ2aWNlL2RyYWctYW5kLWRyb3Auc2VydmljZSc7XHJcbmltcG9ydCB7TW9kZWxzU2VydmljZX0gZnJvbSAnLi9wbHVnaW5zL2NvcmUzZC9zZXJ2aWNlL21vZGVscy5zZXJ2aWNlJztcclxuaW1wb3J0IHtTbmFwcGluZ0NvbGxpc2lvblNlcnZpY2V9IGZyb20gJy4vcGx1Z2lucy9jb3JlM2QvY29sbGlzaW9uLW1hbmFnZXIvc25hcHBpbmctY29sbGlzaW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge0l0ZW1Hcm91cFNlcnZpY2V9IGZyb20gJy4vcGx1Z2lucy9jb3JlM2Qvc2VydmljZS9pdGVtLWdyb3VwLnNlcnZpY2UnO1xyXG5pbXBvcnQge1ZhcmlhdGlvblNlcnZpY2V9IGZyb20gJy4vcGx1Z2lucy90aHJlZWRzZWxlY3Rvci90aHJlZWRzZWxlY3Rvci9zZXJ2aWNlL3ZhcmlhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtUaHJlZWRzZWxlY3RvclNlcnZpY2V9IGZyb20gJy4vcGx1Z2lucy90aHJlZWRzZWxlY3Rvci90aHJlZWRzZWxlY3Rvci9zZXJ2aWNlL3RocmVlZHNlbGVjdG9yLnNlcnZpY2UnO1xyXG5pbXBvcnQge1ZhcmlhdGlvbkNhY2hlU2VydmljZX0gZnJvbSAnLi9wbHVnaW5zL3RocmVlZHNlbGVjdG9yL3RocmVlZHNlbGVjdG9yL3NlcnZpY2UvdmFyaWF0aW9uLWNhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQge0J1aWxkRnVybml0dXJlU2VydmljZX0gZnJvbSAnLi9wbHVnaW5zL3RocmVlZHNlbGVjdG9yL3RocmVlZHNlbGVjdG9yL3NlcnZpY2UvYnVpbGQtZnVybml0dXJlLnNlcnZpY2UnO1xyXG5pbXBvcnQge0VsZW1lbnRTZXJ2aWNlfSBmcm9tICcuL3BsdWdpbnMvdGhyZWVkc2VsZWN0b3IvdGhyZWVkc2VsZWN0b3Ivc2VydmljZS9lbGVtZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQge1Jlc2l6ZVNlcnZpY2V9IGZyb20gJy4vcGx1Z2lucy90aHJlZWRzZWxlY3Rvci90aHJlZWRzZWxlY3Rvci9zZXJ2aWNlL3Jlc2l6ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtGbG9vclRpbGVJbnRlcnNlY3Rpb25TZXJ2aWNlfSBmcm9tICcuL3BsdWdpbnMvY29yZTNkL3NlcnZpY2UvZmxvb3ItdGlsZS1pbnRlcnNlY3Rpb24uc2VydmljZSc7XHJcbmltcG9ydCB7TGlnaHRQcmVzZXRzU2VydmljZX0gZnJvbSAnLi9wbHVnaW5zL2NvcmUzZC9zZXJ2aWNlL2xpZ2h0LXByZXNldHMuc2VydmljZSc7XHJcbmltcG9ydCB7TG9hZEZ1cm5pdHVyZVNlcnZpY2V9IGZyb20gJy4vcGx1Z2lucy90aHJlZWRzZWxlY3Rvci90aHJlZWRzZWxlY3Rvci9zZXJ2aWNlL2xvYWQtZnVybml0dXJlLnNlcnZpY2UnO1xyXG5pbXBvcnQge0RpbWVuc2lvbnNTZXJ2aWNlfSBmcm9tICcuL3BsdWdpbnMvdGhyZWVkc2VsZWN0b3IvdGhyZWVkc2VsZWN0b3Ivc2VydmljZS9kaW1lbnNpb25zLnNlcnZpY2UnO1xyXG5pbXBvcnQge0FuaW1hdGlvblNlcnZpY2V9IGZyb20gJy4vcGx1Z2lucy90aHJlZWRzZWxlY3Rvci90aHJlZWRzZWxlY3Rvci9zZXJ2aWNlL2FuaW1hdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtDdXN0b21pemVyU2VydmljZX0gZnJvbSAnLi9wbHVnaW5zL2xpdGUtc2VsZWN0b3IvbGl0ZS1zZWxlY3Rvci9zZXJ2aWNlL2N1c3RvbWl6ZXIuc2VydmljZSc7XHJcbmltcG9ydCB7RHluYW1pY0NhbWVyYVNlcnZpY2V9IGZyb20gJy4vY29yZS9zZXJ2aWNlL2R5bmFtaWMtY2FtZXJhLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RocmVlZEluUGhvdG9Jbml0aWFsaXplclNlcnZpY2V9IGZyb20gJy4vcGx1Z2lucy90aHJlZWQtaW4tcGhvdG8vc2VydmljZXMvdGhyZWVkLWluLXBob3RvLWluaXRpYWxpemVyLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RocmVlZEluUGhvdG9CdWlsZFNlcnZpY2V9IGZyb20gJy4vcGx1Z2lucy90aHJlZWQtaW4tcGhvdG8vc2VydmljZXMvdGhyZWVkLWluLXBob3RvLWJ1aWxkLnNlcnZpY2UnO1xyXG5pbXBvcnQge1JlbmRlclNlcnZpY2V9IGZyb20gJy4vcGx1Z2lucy9yZW5kZXIvc2VydmljZS9yZW5kZXIuc2VydmljZSc7XHJcbmltcG9ydCB7RXhwb3J0U2VydmljZX0gZnJvbSAnLi9jb3JlL3NlcnZpY2UvZXhwb3J0LnNlcnZpY2UnO1xyXG5pbXBvcnQge05ld1JlbmRlclNlcnZpY2V9IGZyb20gJy4vcGx1Z2lucy9yZW5kZXIvc2VydmljZS9uZXctcmVuZGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RoaXJkUGFydHlNb2RlbFNlcnZpY2V9IGZyb20gJy4vcGx1Z2lucy90aHJlZWRzZWxlY3Rvci90aHJlZWRzZWxlY3Rvci9zZXJ2aWNlL3RoaXJkLXBhcnR5LW1vZGVsLnNlcnZpY2UnO1xyXG5pbXBvcnQge091dGxpbmVTZXJ2aWNlfSBmcm9tICcuL3BsdWdpbnMvY29yZTNkL3NlcnZpY2Uvb3V0bGluZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtQb3N0UHJvY2Vzc2luZ1NlcnZpY2V9IGZyb20gJy4vcGx1Z2lucy9jb3JlM2Qvc2VydmljZS9wb3N0LXByb2Nlc3Npbmcuc2VydmljZSc7XHJcbmltcG9ydCB7VnJTZXJ2aWNlfSBmcm9tICcuL3BsdWdpbnMvY29yZTNkL3NlcnZpY2UvdnIuc2VydmljZSc7XHJcbmltcG9ydCB7WHJTZXJ2aWNlfSBmcm9tICcuL3BsdWdpbnMvY29yZTNkL3NlcnZpY2UveHIuc2VydmljZSc7XHJcbmltcG9ydCB7TWVzc2FnZUJvYXJkU2VydmljZX0gZnJvbSAnLi9wbHVnaW5zL2NvcmUzZC9zZXJ2aWNlL21lc3NhZ2UtYm9hcmQuc2VydmljZSc7XHJcbmltcG9ydCB7SW50ZWdyYXRpb25TZXJ2aWNlfSBmcm9tICcuL2NvcmUvc2VydmljZS9pbnRlZ3JhdGlvbi5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY28taG9tZWRlY29yYXRvcicsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgY2xhc3M9XCJ2aWV3cG9ydFwiICpuZ0lmPVwibG9hZGVkXCI+XHJcbiAgICAgIDxwcm9ncmVzcy1iYXI+PC9wcm9ncmVzcy1iYXI+XHJcbiAgICAgIDxycC1sb2FkaW5nLW92ZXJsYXk+XHJcbiAgICAgICAgPHJwLWNvcmUzZD48L3JwLWNvcmUzZD5cclxuICAgICAgICA8cnAtcm9vbS1wbGFubmVyPjwvcnAtcm9vbS1wbGFubmVyPlxyXG4gICAgICAgIDxycC1mdXJuaXR1cmUtbWFuYWdlcj48L3JwLWZ1cm5pdHVyZS1tYW5hZ2VyPlxyXG4gICAgICAgIDxycC1wcmVzZXRzPjwvcnAtcHJlc2V0cz5cclxuICAgICAgICA8cnAtdGhyZWVkc2VsZWN0b3I+PC9ycC10aHJlZWRzZWxlY3Rvcj5cclxuICAgICAgICA8cnAtdG9vbGJhcj48L3JwLXRvb2xiYXI+XHJcbiAgICAgICAgPHJwLXByb2R1Y3QtY2F0YWxvZ1xyXG4gICAgICAgICAgW2dlbmVyYWxGaWx0ZXJPcmRlcnNdPVwiZ2VuZXJhbEZpbHRlck9yZGVyc1wiXHJcbiAgICAgICAgICBbcHVyY2hhc2VGaWx0ZXJPcmRlcnNdPVwicHVyY2hhc2VGaWx0ZXJPcmRlcnNcIlxyXG4gICAgICAgICAgW2xvZ2lzdGljc0ZpbHRlck9yZGVyc109XCJsb2dpc3RpY3NGaWx0ZXJPcmRlcnNcIlxyXG4gICAgICAgID48L3JwLXByb2R1Y3QtY2F0YWxvZz5cclxuICAgICAgICA8cnAtbGl0ZS1zZWxlY3Rvcj48L3JwLWxpdGUtc2VsZWN0b3I+XHJcbiAgICAgICAgPHJwLWhlbHA+PC9ycC1oZWxwPlxyXG4gICAgICA8L3JwLWxvYWRpbmctb3ZlcmxheT5cclxuICAgIDwvZGl2PlxyXG4gICAgPHJwLWxvYWRlciBbc2hvd109XCJjb250cm9sbGVyU2VydmljZS5zaG91bGRTaG93TG9hZGVyXCI+PC9ycC1sb2FkZXI+XHJcbiAgICA8ZGl2ICpuZ0lmPVwic2hvdWxkU2hvd0xhbmRzY2FwZU1lc3NhZ2VcIiBjbGFzcz1cIm1vYmlsZS1wb3J0cmFpdC1vdmVybGF5XCI+XHJcbiAgICAgIDwhLS1cclxuICAgICAgICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJ0aWx0LXBob25lXCIgY2xhc3M9XCJ0aWx0LXBob25lLWljb25cIj48L21hdC1pY29uPlxyXG4gICAgICAtLT5cclxuICAgICAgPGRpdj5cclxuICAgICAgICA8IS0tXHJcbiAgICAgICAgICAgICAgICB7eydQTEVBU0VfVVNFX1BIT05FX0lOX0xBTkRTQ0FQRV9NT0RFJyB8IGxvY2FsaXplfX1cclxuICAgICAgICAtLT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICBgLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBTY2VuZVNlcnZpY2UsXHJcbiAgICBBcHBTdGF0ZVNlcnZpY2UsXHJcbiAgICBPdXRsaW5lU2VydmljZSxcclxuICAgIFBvc3RQcm9jZXNzaW5nU2VydmljZSxcclxuICAgIENhbWVyYVNlcnZpY2UsXHJcbiAgICBMaWdodHNTZXJ2aWNlLFxyXG4gICAgVXRpbHNTZXJ2aWNlLFxyXG4gICAgSXRlbVNlcnZpY2UsXHJcbiAgICBBclNlcnZpY2UsXHJcbiAgICBWclNlcnZpY2UsXHJcbiAgICBYclNlcnZpY2UsXHJcbiAgICBQcmVzZXRzU2VydmljZSxcclxuICAgIEZsb29ycGxhblNlcnZpY2UsXHJcbiAgICBSb29tU2VydmljZSxcclxuICAgIEZsb29yU2VydmljZSxcclxuICAgIENlaWxpbmdTZXJ2aWNlLFxyXG4gICAgV2FsbE1lYXN1cmVtZW50c1NlcnZpY2UsXHJcbiAgICBEZXZlbG9wbWVudFNlcnZpY2UsXHJcbiAgICBJbnRlcnNlY3Rpb25TZXJ2aWNlLFxyXG4gICAgQ29sbGlzaW9uTWFuYWdlclNlcnZpY2UsXHJcbiAgICBSb3RhdGlvblNlcnZpY2UsXHJcbiAgICBFcnJvckdsb3dTZXJ2aWNlLFxyXG4gICAgU2NlbmVFdmVudFNlcnZpY2UsXHJcbiAgICBIdWRTZXJ2aWNlLFxyXG4gICAgRHJhZ0FuZERyb3BTZXJ2aWNlLFxyXG4gICAgTW9kZWxzU2VydmljZSxcclxuICAgIFNuYXBwaW5nQ29sbGlzaW9uU2VydmljZSxcclxuICAgIEl0ZW1Hcm91cFNlcnZpY2UsXHJcbiAgICBWYXJpYXRpb25TZXJ2aWNlLFxyXG4gICAgVGhyZWVkc2VsZWN0b3JTZXJ2aWNlLFxyXG4gICAgVmFyaWF0aW9uQ2FjaGVTZXJ2aWNlLFxyXG4gICAgQnVpbGRGdXJuaXR1cmVTZXJ2aWNlLFxyXG4gICAgRWxlbWVudFNlcnZpY2UsXHJcbiAgICBSZXNpemVTZXJ2aWNlLFxyXG4gICAgRmxvb3JUaWxlSW50ZXJzZWN0aW9uU2VydmljZSxcclxuICAgIExpZ2h0UHJlc2V0c1NlcnZpY2UsXHJcbiAgICBMb2FkRnVybml0dXJlU2VydmljZSxcclxuICAgIERpbWVuc2lvbnNTZXJ2aWNlLFxyXG4gICAgQW5pbWF0aW9uU2VydmljZSxcclxuICAgIEN1c3RvbWl6ZXJTZXJ2aWNlLFxyXG4gICAgRHluYW1pY0NhbWVyYVNlcnZpY2UsXHJcbiAgICBUaHJlZWRJblBob3RvSW5pdGlhbGl6ZXJTZXJ2aWNlLFxyXG4gICAgVGhyZWVkSW5QaG90b0J1aWxkU2VydmljZSxcclxuICAgIFJlbmRlclNlcnZpY2UsXHJcbiAgICBFeHBvcnRTZXJ2aWNlLFxyXG4gICAgTmV3UmVuZGVyU2VydmljZSxcclxuICAgIFRoaXJkUGFydHlNb2RlbFNlcnZpY2UsXHJcbiAgICBNZXNzYWdlQm9hcmRTZXJ2aWNlXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSG9tZWRlY29yYXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZ2VuZXJhbEZpbHRlck9yZGVyczogRmlsdGVyT3JkZXJbXSA9IFtcclxuICAgIHtuYW1lOiAnQ0FURUdPUlknLCBvcmRlcjogMX0sXHJcbiAgICB7bmFtZTogJ1RVUk5PVkVSX0dST1VQJywgb3JkZXI6IDJ9LFxyXG4gICAge25hbWU6ICdQUk9EVUNUX0dST1VQJywgb3JkZXI6IDN9LFxyXG4gICAge25hbWU6ICdCUkFORFMnLCBvcmRlcjogNH0sXHJcbiAgICB7bmFtZTogJ0NPTE9SJywgb3JkZXI6IDV9LFxyXG4gICAge25hbWU6ICdDT0xPVVInLCBvcmRlcjogNX0sXHJcbiAgICB7bmFtZTogJ0NPTkNFUFQnLCBvcmRlcjogNn0sXHJcbiAgICB7bmFtZTogJ1RBRycsIG9yZGVyOiA3fSxcclxuICAgIHtuYW1lOiAnQVRNT1NQSEVSRScsIG9yZGVyOiA4fVxyXG4gIF07XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHB1cmNoYXNlRmlsdGVyT3JkZXJzOiBGaWx0ZXJPcmRlcltdID0gW107XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGxvZ2lzdGljc0ZpbHRlck9yZGVyczogRmlsdGVyT3JkZXJbXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgaW5pdENvbW11bmljYXRpb24odmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2luaXRDb21tdW5pY2F0aW9uID0gdmFsdWU7XHJcbiAgICB0aGlzLl9zZXRDb21tdW5pY2F0aW9uKHRoaXMuX2luaXRDb21tdW5pY2F0aW9uKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgaW5pdENvbW11bmljYXRpb24oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5faW5pdENvbW11bmljYXRpb247XHJcbiAgfVxyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNvLWhvbWVkZWNvcmF0b3InKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3M6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBwdWJsaWMgbG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHRpdGxlOiBzdHJpbmcgPSAnTXlSb29tUGxhbnMnO1xyXG4gIHB1YmxpYyBwaG9uZVNpemVTY3JlZW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgaXNQb3J0cmFpdE1vZGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd0lPbmVMb2FkZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvdWxkU2hvd0xhbmRzY2FwZU1lc3NhZ2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLy8gcHVibGljIHNldHRpbmdzID0ge1xyXG4gIC8vICAgJ3VybCc6ICdodHRwczovL2RlbW8xLmlvbmVjbG91ZC5ubC8nLFxyXG4gIC8vICAgJ3NjaGVtYSc6ICcxMzQ1OTInLFxyXG4gIC8vICAgJ3ZlcnNpb24nOiAnMjUzJyxcclxuICAvLyAgICdicmFuY2gnOiAnMScsXHJcbiAgLy8gICAnY3VycmVuY3knOiAzLFxyXG4gIC8vICAgJ3VzZUdyb3Vwcyc6IHRydWUsXHJcbiAgLy8gICAnYXNzZXRJbmRleCc6ICdpbmRleC1kZXZlbG9wLmpzb24nLFxyXG4gIC8vICAgJ2Fzc2V0UGF0aCc6ICdodHRwczovL2Nkbi5pb25lMzYwLmNvbS9jb250ZW50NDMvJyxcclxuICAvLyAgICd0aHJlZURBc3NldFBhdGgnOiAnaHR0cHM6Ly9jZG4uaW9uZTM2MC5jb20vY29udGVudDQzLycsXHJcbiAgLy8gICAnYXBpVXJsJzogJ2h0dHBzOi8vbXlyb29tcGxhbnMuY29saWpuLWl0Lm5sJyxcclxuICAvLyAgICd0aW1lb3V0SW5Ncyc6IDMwMDAwLFxyXG4gIC8vICAgJ2xhbmd1YWdlQ29kZSc6ICdOTCcsXHJcbiAgLy8gICAndXNlcm5hbWUnOiAncnViZW4nLFxyXG4gIC8vICAgJ3Bhc3N3b3JkJzogJ2dlZW4nLFxyXG4gIC8vICAgJ3VzZUxvZ2luRW5jcnlwdGlvbic6IHRydWUsXHJcbiAgLy8gICAnand0RW5hYmxlZCc6IGZhbHNlLFxyXG4gIC8vICAgJ29wdGlvbnMnOiB7XHJcbiAgLy8gICAgICdkZXZlbG9wbWVudCc6IHRydWUsXHJcbiAgLy8gICAgICdzaG93U3RvY2tTdGF0dXMnOiB0cnVlLFxyXG4gIC8vICAgICAnc2hvd1pvb21CdXR0b24nOiB0cnVlLFxyXG4gIC8vICAgICAnc2hvd0FzQ29uZmlndXJlZCc6IHRydWUsXHJcbiAgLy8gICAgICdzaG93VGFnRmlsdGVyJzogdHJ1ZSxcclxuICAvLyAgICAgJ3Nob3dBckJ1dHRvbic6IHRydWUsXHJcbiAgLy8gICAgICdzaG93M0RXYXRlcm1hcmsnOiBmYWxzZSxcclxuICAvLyAgICAgJ3Nob3dDYXB0aW9uQWRkQnV0dG9uJzogdHJ1ZSxcclxuICAvLyAgICAgJ2JvdHRvbUFuc3dlcnMnOiBmYWxzZSxcclxuICAvLyAgICAgJ2luc3RhbnRSZXBsYWNlJzogZmFsc2UsXHJcbiAgLy8gICAgICdhckVuYWJsZWQnOiB0cnVlLFxyXG4gIC8vICAgICAndnJFbmFibGVkJzogZmFsc2UsXHJcbiAgLy8gICAgICd4ckRlYnVnJzogZmFsc2UsXHJcbiAgLy8gICAgICdpbmxpbmVBbnN3ZXJzJzogZmFsc2UsXHJcbiAgLy8gICAgICdvbmx5VGhyZWVEJzogZmFsc2UsXHJcbiAgLy8gICAgICdzaG93UHJpY2VGaWx0ZXInOiBmYWxzZSxcclxuICAvLyAgICAgJ2NhbWVyYVBvc2l0aW9uRml4ZWQnOiBmYWxzZSxcclxuICAvLyAgICAgJ2luc3RhbnRFZGl0TWVudSc6IGZhbHNlLFxyXG4gIC8vICAgICAndXNlTmV3UmVuZGVyJzogdHJ1ZSxcclxuICAvLyAgICAgJ3VzZVJlbmRlcldlYnNvY2tldCc6IGZhbHNlLFxyXG4gIC8vICAgICAnc2hvd1Jvb21Eb3dubG9hZEJ1dHRvbic6IHRydWUsXHJcbiAgLy8gICAgICdzZWFyY2hPblN0YXJ0JzogdHJ1ZVxyXG4gIC8vICAgfSxcclxuICAvLyAgICdjYXRhbG9nUGFyYW1ldGVycyc6IHtcclxuICAvLyAgICAgJ3Nob3dDdXN0b21pemVkQXJ0aWNsZXMnOiB0cnVlLFxyXG4gIC8vICAgICAnc2hvd0NvbmZpZ3VyYWJsZUFydGljbGVzJzogdHJ1ZSxcclxuICAvLyAgICAgJ3Nob3dJbmFjdGl2ZUFydGljbGVzJzogZmFsc2UsXHJcbiAgLy8gICAgICdzaG93UmVndWxhckFydGljbGVzJzogdHJ1ZSxcclxuICAvLyAgICAgJ3Nob3dDb21wb3NpdGlvbkFydGljbGVzJzogZmFsc2VcclxuICAvLyAgIH0sXHJcbiAgLy8gICAncmVuZGVyUGFyYW1ldGVycyc6IHtcclxuICAvLyAgICAgJ2hvc3QnOiAncmVuZGVyMS5jb2xpam4taXQubmwnLFxyXG4gIC8vICAgICAncG9ydCc6IDg0NDMsXHJcbiAgLy8gICAgICdzZWN1cmUnOiB0cnVlLFxyXG4gIC8vICAgICAncmVuZGVyTW9kZSc6ICdyZW5kZXJfcm9vbSdcclxuICAvLyAgIH0sXHJcbiAgLy8gICAnbmV3UmVuZGVyUGFyYW1ldGVycyc6IHtcclxuICAvLyAgICAgJ3dlYnNvY2tldCc6ICd3c3M6Ly9yZW5kZXIxLmNvbGlqbi1pdC5ubDo4MDgzJyxcclxuICAvLyAgICAgJ2hvc3QnOiAnaHR0cHM6Ly9yZW5kZXIuY29saWpuLWl0Lm5sJyxcclxuICAvLyAgICAgJ3BvcnQnOiA0NDMsXHJcbiAgLy8gICAgICdpdGVyYXRpb25zJzogMTAwLFxyXG4gIC8vICAgICAnaW1hZ2VXaWR0aCc6IDE5MjAsXHJcbiAgLy8gICAgICdpbWFnZUhlaWdodCc6IDEwODAsXHJcbiAgLy8gICAgICdoZHJpSW50ZW5zaXR5JzogMS4xXHJcbiAgLy8gICB9XHJcbiAgLy8gfTtcclxuXHJcbiAgcHJpdmF0ZSBfc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuICBwcml2YXRlIF9pbml0Q29tbXVuaWNhdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBjb250cm9sbGVyU2VydmljZTogSG9tZWRlY29yYXRvckNvbm5lY3RvclNlcnZpY2UsXHJcbiAgICBwdWJsaWMgYXBwU3RhdGU6IEFwcFN0YXRlU2VydmljZSxcclxuICAgIHB1YmxpYyBwcmVzZXRzU2VydmljZTogUHJlc2V0c1NlcnZpY2UsXHJcbiAgICBwdWJsaWMgc2NyZWVuQW5hbHlzaXM6IFNjcmVlblNpemVBbmFseXNpc1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9pY29uUmVnaXN0cnk6IE1hdEljb25SZWdpc3RyeSxcclxuICAgIHByaXZhdGUgX2RvbVNhbml0aXplcjogRG9tU2FuaXRpemVyLFxyXG4gICAgcHJpdmF0ZSBfbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VCdXNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfaG9tZWRlY29yYXRvclNlcnZpY2U6IEhvbWVkZWNvcmF0b3JTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZXZlbnRTZXJ2aWNlOiBIb21lZGVjb3JhdG9yQXBwRXZlbnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfaW50ZWdyYXRpb25TZXJ2aWNlOiBJbnRlZ3JhdGlvblNlcnZpY2VcclxuICApIHtcclxuICB9XHJcblxyXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy5yZWdpc3RlckN1c3RvbUljb25zKCk7XHJcbiAgICB0aGlzLl9zdWJzLnB1c2goXHJcbiAgICAgIHRoaXMuc2NyZWVuQW5hbHlzaXMuc2NyZWVuU2l6ZUNoYW5nZWQuc3Vic2NyaWJlKChpbmZvOiBTY3JlZW5TaXplSW5mbykgPT4ge1xyXG4gICAgICAgIHRoaXMucGhvbmVTaXplU2NyZWVuID0gaW5mby5pc1Bob25lU2l6ZTtcclxuICAgICAgICB0aGlzLmlzUG9ydHJhaXRNb2RlID0gaW5mby5pc1BvcnRyYWl0TW9kZTtcclxuICAgICAgICB0aGlzLnNob3VsZFNob3dMYW5kc2NhcGVNZXNzYWdlID0gdGhpcy5zY3JlZW5BbmFseXNpcy5pc01vYmlsZURldmljZSAmJiB0aGlzLmlzUG9ydHJhaXRNb2RlO1xyXG4gICAgICB9KSxcclxuICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2Uuc3Vic2NyaWJlKE1lc3NhZ2VUeXBlLlNob3dJT25lTG9hZGluZ0luZGljYXRvciwgKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2hvd0lPbmVMb2FkZXIgPSB0cnVlO1xyXG4gICAgICB9KSxcclxuICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2Uuc3Vic2NyaWJlKE1lc3NhZ2VUeXBlLkhpZGVJT25lTG9hZGluZ0luZGljYXRvciwgKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2hvd0lPbmVMb2FkZXIgPSBmYWxzZTtcclxuICAgICAgfSksXHJcbiAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLnN1YnNjcmliZShNZXNzYWdlVHlwZS5TdGFydFdpdGhFbXB0eVJvb20sICgpID0+IHtcclxuICAgICAgICB0aGlzLl9zdGFydFdpdGhFbXB0eVJvb20odHJ1ZSk7XHJcbiAgICAgIH0pLFxyXG4gICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5zdWJzY3JpYmUoTWVzc2FnZVR5cGUuU3RhcnRXaXRoUHJlc2V0LCAoe3ByZXNldCwgc3dpdGNoVG8yRH0pID0+IHtcclxuICAgICAgICB0aGlzLl9zdGFydFdpdGhQcmVzZXQocHJlc2V0LCBzd2l0Y2hUbzJEKTtcclxuICAgICAgfSksXHJcbiAgICAgIHRoaXMuX2hvbWVkZWNvcmF0b3JTZXJ2aWNlLmxvYWRlZC5zdWJzY3JpYmUoKGxvYWRlZDogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgIGlmIChsb2FkZWQpIHtcclxuICAgICAgICAgIHRoaXMubG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuX3N0YXJ0V2l0aEVtcHR5Um9vbSh0cnVlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zdWJzLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJDdXN0b21JY29ucygpIHtcclxuICAgIGNvbnN0IGFkZEljb24gPSBrZXkgPT5cclxuICAgICAgdGhpcy5faWNvblJlZ2lzdHJ5LmFkZFN2Z0ljb24oa2V5LCB0aGlzLl9kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKGBhc3NldHMvaWNvbnMvJHtrZXl9LnN2Z2ApKTtcclxuICAgIFtcclxuICAgICAgJ2N1YmUtb3V0bGluZScsXHJcbiAgICAgICdjdWJlLXVuZm9sZGVkJyxcclxuICAgICAgJ2dvb2dsZS1jYXJkYm9hcmQnLFxyXG4gICAgICAnZ29vZ2xlLWNhcmRib2FyZC1vcmFuZ2UnLFxyXG4gICAgICAnc3RyZWV0LXZpZXcnLFxyXG4gICAgICAnc3RyZWV0LXZpZXctb3JhbmdlJyxcclxuICAgICAgJ21hZ2ljLXdhbmQnLFxyXG4gICAgICAnYWRkLWJ1dHRvbicsXHJcbiAgICAgICdlZGl0LWJ1dHRvbicsXHJcbiAgICAgICdkZWxldGUtYnV0dG9uJyxcclxuICAgICAgJ3N3YXAtYnV0dG9uJyxcclxuICAgICAgJ3RpbHQtcGhvbmUnLFxyXG4gICAgICAnaGFuZC1wb2ludGVyJyxcclxuICAgICAgJ2NoZWNrJyxcclxuICAgICAgJ21vdmUtcGhvbmUtYXInLFxyXG4gICAgICAnY2FydC1zaG9wcGluZy1yZWd1bGFyJyxcclxuICAgICAgJ3Blbi1ydWxlcicsXHJcbiAgICAgICdkYXNoLWJ1dHRvbicsXHJcbiAgICAgICdyZXRyeS1idXR0b24nLFxyXG4gICAgICAnbWFnbmV0JyxcclxuICAgICAgJ21hZ25ldC1zdHJpa2V0aHJvdWdoJyxcclxuICAgICAgJ2ltYWdlX3NsYXNoX3JlZ3VsYXInXHJcbiAgICBdLm1hcChhZGRJY29uKTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleXVwJywgWyckZXZlbnQnXSlcclxuICBrZXl1cChldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgY29uc3Qge2NvZGUsIGN0cmxLZXksIGFsdEtleX06IHsgY29kZTogc3RyaW5nLCBjdHJsS2V5OiBib29sZWFuLCBhbHRLZXk6IGJvb2xlYW4gfSA9IGV2ZW50O1xyXG4gICAgaWYgKCF0aGlzLnByZXNldHNTZXJ2aWNlLmlzTG9hZGluZyAmJiB0aGlzLmFwcFN0YXRlLmNhblVuZG8oKSAmJiBjdHJsS2V5ICYmIGNvZGUgPT09ICdLZXlaJykge1xyXG4gICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5lbWl0KE1lc3NhZ2VUeXBlLlVuZG8pO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLnByZXNldHNTZXJ2aWNlLmlzTG9hZGluZyAmJiB0aGlzLmFwcFN0YXRlLmNhblJlZG8oKSAmJiBjdHJsS2V5ICYmIGNvZGUgPT09ICdLZXlZJykge1xyXG4gICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5lbWl0KE1lc3NhZ2VUeXBlLlJlZG8pO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLnByZXNldHNTZXJ2aWNlLmlzTG9hZGluZyAmJiBhbHRLZXkgJiYgKGNvZGUgPT09ICdLZXlIJyB8fCBjb2RlID09PSAnS2V5WCcpKSB7XHJcbiAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmVtaXQoTWVzc2FnZVR5cGUuSGlkZUxlZnRTaWRlYmFyKTtcclxuICAgICAgaWYgKGNvZGUgPT09ICdLZXlIJykge1xyXG4gICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmVtaXQoTWVzc2FnZVR5cGUuU2hvd0Z1cm5pdHVyZVNpZGViYXIsICdUZXN0IEZ1cm5pdHVyZScpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9zdGFydFdpdGhFbXB0eVJvb20oc3dpdGNoVG8yRDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5fZXZlbnRTZXJ2aWNlLmRpcnR5Lm5leHQodHJ1ZSk7XHJcbiAgICBjb25zdCBwcmVzZXQ6IFByZXNldCA9IFByZXNldC5DcmVhdGVNb2RlbEZyb21JbnRlcmZhY2Uoe2ZpbGVuYW1lOiAnYXNzZXRzL3ByZXNldHMvZW1wdHkuanNvbid9KTtcclxuICAgIHRoaXMuX3N0YXJ0V2l0aFByZXNldChwcmVzZXQsIHN3aXRjaFRvMkQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc3RhcnRXaXRoUHJlc2V0KHByZXNldDogUHJlc2V0LCBzd2l0Y2hUbzJEOiBib29sZWFuID0gZmFsc2UpOiB2b2lkIHtcclxuICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmVtaXQoTWVzc2FnZVR5cGUuUmVzZXRSb29tcGxhbik7XHJcbiAgICBpZiAoc3dpdGNoVG8yRCkge1xyXG4gICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5lbWl0KE1lc3NhZ2VUeXBlLlNldDJEVmlldywge3NlbmRVcGRhdGVzOiB0cnVlfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5lbWl0KE1lc3NhZ2VUeXBlLlNldDNEVmlldywge3NlbmRVcGRhdGVzOiB0cnVlfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5lbWl0KE1lc3NhZ2VUeXBlLkxvYWRSb29tRnJvbVByZXNldCwgcHJlc2V0KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3NldENvbW11bmljYXRpb24oZW5hYmxlOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLl9pbnRlZ3JhdGlvblNlcnZpY2UuZW5hYmxlZCA9IGVuYWJsZTtcclxuICB9XHJcbn1cclxuIl19
460
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZWRlY29yYXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xpZW50L2FwcC9ob21lZGVjb3JhdG9yLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUloSCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBSzlELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUUxRCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFHM0MsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQ3BFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDdEUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzFELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUNsRSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDOUQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMEVBQTBFLENBQUM7QUFDMUcsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHFFQUFxRSxDQUFDO0FBQ2hHLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUNwRSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDeEUsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sb0RBQW9ELENBQUM7QUFD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QUFjO3dCQUNkLGFBQWE7d0JBQ2IsNEJBQTRCO3dCQUM1QixtQkFBbUI7d0JBQ25CLG9CQUFvQjt3QkFDcEIsaUJBQWlCO3dCQUNqQixnQkFBZ0I7d0JBQ2hCLGlCQUFpQjt3QkFDakIsb0JBQW9CO3dCQUNwQiwrQkFBK0I7d0JBQy9CLHlCQUF5Qjt3QkFDekIsYUFBYTt3QkFDYixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsc0JBQXNCO3dCQUN0QixtQkFBbUI7cUJBQ3BCO2lCQUNGO2dhQUlRLG1CQUFtQjtzQkFEekIsS0FBSztnQkFjQyxvQkFBb0I7c0JBRDFCLEtBQUs7Z0JBSUMscUJBQXFCO3NCQUQzQixLQUFLO2dCQUlLLGlCQUFpQjtzQkFEM0IsS0FBSztnQkFXQyxTQUFTO3NCQURmLFdBQVc7dUJBQUMsd0JBQXdCO2dCQTBKckMsS0FBSztzQkFESixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge01hdEljb25SZWdpc3RyeX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7RG9tU2FuaXRpemVyfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge0FwcFN0YXRlU2VydmljZX0gZnJvbSAnLi9jb3JlL3NlcnZpY2UvYXBwLXN0YXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQge1ByZXNldHNTZXJ2aWNlfSBmcm9tICcuL2NvcmUvc2VydmljZS9wcmVzZXRzLnNlcnZpY2UnO1xyXG5pbXBvcnQge0hvbWVkZWNvcmF0b3JDb25uZWN0b3JTZXJ2aWNlfSBmcm9tICcuL2NvcmUvc2VydmljZS9ob21lZGVjb3JhdG9yLWNvbm5lY3Rvci5zZXJ2aWNlJztcclxuaW1wb3J0IHtTY3JlZW5TaXplQW5hbHlzaXNTZXJ2aWNlfSBmcm9tICcuL3NoYXJlZC9zY3JlZW4tc2l6ZS1hbmFseXNpcy9zY3JlZW4tc2l6ZS1hbmFseXNpcy5zZXJ2aWNlJztcclxuaW1wb3J0IHtNZXNzYWdlQnVzU2VydmljZX0gZnJvbSAnLi9jb3JlL3NlcnZpY2UvbWVzc2FnZS1idXMuc2VydmljZSc7XHJcbmltcG9ydCB7U2NyZWVuU2l6ZUluZm99IGZyb20gJy4vc2hhcmVkL3NjcmVlbi1zaXplLWFuYWx5c2lzL3NjcmVlbi1zaXplLWluZm8nO1xyXG5pbXBvcnQge01lc3NhZ2VUeXBlfSBmcm9tICcuL2NvcmUvZW51bS9tZXNzYWdlLXR5cGUuZW51bSc7XHJcbmltcG9ydCB7SG9tZWRlY29yYXRvclNlcnZpY2V9IGZyb20gJy4vY29yZS9zZXJ2aWNlL2hvbWVkZWNvcmF0b3Iuc2VydmljZSc7XHJcbmltcG9ydCB7UHJlc2V0fSBmcm9tICcuL2NvcmUvbW9kZWwvcHJlc2V0JztcclxuaW1wb3J0IHtIb21lZGVjb3JhdG9yQXBwRXZlbnRTZXJ2aWNlfSBmcm9tICcuL2NvcmUvc2VydmljZS9ob21lZGVjb3JhdG9yLWFwcC1ldmVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHtGaWx0ZXJPcmRlcn0gZnJvbSAnQGNvbGlqbml0L2NhdGFsb2cvbGliL2ludGVyZmFjZS9maWx0ZXItb3JkZXIuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtTY2VuZVNlcnZpY2V9IGZyb20gJy4vcGx1Z2lucy9jb3JlM2Qvc2VydmljZS9zY2VuZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtDYW1lcmFTZXJ2aWNlfSBmcm9tICcuL3BsdWdpbnMvY29yZTNkL3NlcnZpY2UvY2FtZXJhLnNlcnZpY2UnO1xyXG5pbXBvcnQge0xpZ2h0c1NlcnZpY2V9IGZyb20gJy4vcGx1Z2lucy9jb3JlM2Qvc2VydmljZS9saWdodHMuc2VydmljZSc7XHJcbmltcG9ydCB7VXRpbHNTZXJ2aWNlfSBmcm9tICcuL2NvcmUvc2VydmljZS91dGlscy5zZXJ2aWNlJztcclxuaW1wb3J0IHtJdGVtU2VydmljZX0gZnJvbSAnLi9wbHVnaW5zL2NvcmUzZC9zZXJ2aWNlL2l0ZW0uc2VydmljZSc7XHJcbmltcG9ydCB7QXJTZXJ2aWNlfSBmcm9tICcuL3BsdWdpbnMvY29yZTNkL3NlcnZpY2UvYXIuc2VydmljZSc7XHJcbmltcG9ydCB7Rmxvb3JwbGFuU2VydmljZX0gZnJvbSAnLi9wbHVnaW5zL3Jvb20tcGxhbm5lci9jb21wb25lbnRzL2Zsb29ycGxhbm5lci9zZXJ2aWNlL2Zsb29ycGxhbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtSb29tU2VydmljZX0gZnJvbSAnLi9wbHVnaW5zL3Jvb20tcGxhbm5lci9jb21wb25lbnRzL2Zsb29ycGxhbm5lci9zZXJ2aWNlL3Jvb20uc2VydmljZSc7XHJcbmltcG9ydCB7Rmxvb3JTZXJ2aWNlfSBmcm9tICcuL3BsdWdpbnMvY29yZTNkL3NlcnZpY2UvZmxvb3Iuc2VydmljZSc7XHJcbmltcG9ydCB7Q2VpbGluZ1NlcnZpY2V9IGZyb20gJy4vcGx1Z2lucy9jb3JlM2Qvc2VydmljZS9jZWlsaW5nLnNlcnZpY2UnO1xyXG5pbXBvcnQge1dhbGxNZWFzdXJlbWVudHNTZXJ2aWNlfSBmcm9tICcuL3BsdWdpbnMvY29yZTNkL3NlcnZpY2Uvd2FsbC1tZWFzdXJlbWVudHMuc2VydmljZSc7XHJcbmltcG9ydCB7RGV2ZWxvcG1lbnRTZXJ2aWNlfSBmcm9tICcuL2RldmVsb3BtZW50L3NlcnZpY2UvZGV2ZWxvcG1lbnQuc2VydmljZSc7XHJcbmltcG9ydCB7SW50ZXJzZWN0aW9uU2VydmljZX0gZnJvbSAnLi9wbHVnaW5zL2NvcmUzZC9zZXJ2aWNlL2ludGVyc2VjdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtDb2xsaXNpb25NYW5hZ2VyU2VydmljZX0gZnJvbSAnLi9wbHVnaW5zL2NvcmUzZC9jb2xsaXNpb24tbWFuYWdlci9jb2xsaXNpb24tbWFuYWdlci5zZXJ2aWNlJztcclxuaW1wb3J0IHtSb3RhdGlvblNlcnZpY2V9IGZyb20gJy4vcGx1Z2lucy9jb3JlM2Qvc2VydmljZS9yb3RhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtFcnJvckdsb3dTZXJ2aWNlfSBmcm9tICcuL3BsdWdpbnMvY29yZTNkL3NlcnZpY2UvZXJyb3ItZ2xvdy5zZXJ2aWNlJztcclxuaW1wb3J0IHtTY2VuZUV2ZW50U2VydmljZX0gZnJvbSAnLi9wbHVnaW5zL2NvcmUzZC9zZXJ2aWNlL3NjZW5lLWV2ZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQge0h1ZFNlcnZpY2V9IGZyb20gJy4vcGx1Z2lucy9jb3JlM2Qvc2VydmljZS9odWQuc2VydmljZSc7XHJcbmltcG9ydCB7RHJhZ0FuZERyb3BTZXJ2aWNlfSBmcm9tICcuL3BsdWdpbnMvY29yZTNkL3NlcnZpY2UvZHJhZy1hbmQtZHJvcC5zZXJ2aWNlJztcclxuaW1wb3J0IHtNb2RlbHNTZXJ2aWNlfSBmcm9tICcuL3BsdWdpbnMvY29yZTNkL3NlcnZpY2UvbW9kZWxzLnNlcnZpY2UnO1xyXG5pbXBvcnQge1NuYXBwaW5nQ29sbGlzaW9uU2VydmljZX0gZnJvbSAnLi9wbHVnaW5zL2NvcmUzZC9jb2xsaXNpb24tbWFuYWdlci9zbmFwcGluZy1jb2xsaXNpb24uc2VydmljZSc7XHJcbmltcG9ydCB7SXRlbUdyb3VwU2VydmljZX0gZnJvbSAnLi9wbHVnaW5zL2NvcmUzZC9zZXJ2aWNlL2l0ZW0tZ3JvdXAuc2VydmljZSc7XHJcbmltcG9ydCB7VmFyaWF0aW9uU2VydmljZX0gZnJvbSAnLi9wbHVnaW5zL3RocmVlZHNlbGVjdG9yL3RocmVlZHNlbGVjdG9yL3NlcnZpY2UvdmFyaWF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RocmVlZHNlbGVjdG9yU2VydmljZX0gZnJvbSAnLi9wbHVnaW5zL3RocmVlZHNlbGVjdG9yL3RocmVlZHNlbGVjdG9yL3NlcnZpY2UvdGhyZWVkc2VsZWN0b3Iuc2VydmljZSc7XHJcbmltcG9ydCB7VmFyaWF0aW9uQ2FjaGVTZXJ2aWNlfSBmcm9tICcuL3BsdWdpbnMvdGhyZWVkc2VsZWN0b3IvdGhyZWVkc2VsZWN0b3Ivc2VydmljZS92YXJpYXRpb24tY2FjaGUuc2VydmljZSc7XHJcbmltcG9ydCB7QnVpbGRGdXJuaXR1cmVTZXJ2aWNlfSBmcm9tICcuL3BsdWdpbnMvdGhyZWVkc2VsZWN0b3IvdGhyZWVkc2VsZWN0b3Ivc2VydmljZS9idWlsZC1mdXJuaXR1cmUuc2VydmljZSc7XHJcbmltcG9ydCB7RWxlbWVudFNlcnZpY2V9IGZyb20gJy4vcGx1Z2lucy90aHJlZWRzZWxlY3Rvci90aHJlZWRzZWxlY3Rvci9zZXJ2aWNlL2VsZW1lbnQuc2VydmljZSc7XHJcbmltcG9ydCB7UmVzaXplU2VydmljZX0gZnJvbSAnLi9wbHVnaW5zL3RocmVlZHNlbGVjdG9yL3RocmVlZHNlbGVjdG9yL3NlcnZpY2UvcmVzaXplLnNlcnZpY2UnO1xyXG5pbXBvcnQge0Zsb29yVGlsZUludGVyc2VjdGlvblNlcnZpY2V9IGZyb20gJy4vcGx1Z2lucy9jb3JlM2Qvc2VydmljZS9mbG9vci10aWxlLWludGVyc2VjdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtMaWdodFByZXNldHNTZXJ2aWNlfSBmcm9tICcuL3BsdWdpbnMvY29yZTNkL3NlcnZpY2UvbGlnaHQtcHJlc2V0cy5zZXJ2aWNlJztcclxuaW1wb3J0IHtMb2FkRnVybml0dXJlU2VydmljZX0gZnJvbSAnLi9wbHVnaW5zL3RocmVlZHNlbGVjdG9yL3RocmVlZHNlbGVjdG9yL3NlcnZpY2UvbG9hZC1mdXJuaXR1cmUuc2VydmljZSc7XHJcbmltcG9ydCB7RGltZW5zaW9uc1NlcnZpY2V9IGZyb20gJy4vcGx1Z2lucy90aHJlZWRzZWxlY3Rvci90aHJlZWRzZWxlY3Rvci9zZXJ2aWNlL2RpbWVuc2lvbnMuc2VydmljZSc7XHJcbmltcG9ydCB7QW5pbWF0aW9uU2VydmljZX0gZnJvbSAnLi9wbHVnaW5zL3RocmVlZHNlbGVjdG9yL3RocmVlZHNlbGVjdG9yL3NlcnZpY2UvYW5pbWF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge0N1c3RvbWl6ZXJTZXJ2aWNlfSBmcm9tICcuL3BsdWdpbnMvbGl0ZS1zZWxlY3Rvci9saXRlLXNlbGVjdG9yL3NlcnZpY2UvY3VzdG9taXplci5zZXJ2aWNlJztcclxuaW1wb3J0IHtEeW5hbWljQ2FtZXJhU2VydmljZX0gZnJvbSAnLi9jb3JlL3NlcnZpY2UvZHluYW1pYy1jYW1lcmEuc2VydmljZSc7XHJcbmltcG9ydCB7VGhyZWVkSW5QaG90b0luaXRpYWxpemVyU2VydmljZX0gZnJvbSAnLi9wbHVnaW5zL3RocmVlZC1pbi1waG90by9zZXJ2aWNlcy90aHJlZWQtaW4tcGhvdG8taW5pdGlhbGl6ZXIuc2VydmljZSc7XHJcbmltcG9ydCB7VGhyZWVkSW5QaG90b0J1aWxkU2VydmljZX0gZnJvbSAnLi9wbHVnaW5zL3RocmVlZC1pbi1waG90by9zZXJ2aWNlcy90aHJlZWQtaW4tcGhvdG8tYnVpbGQuc2VydmljZSc7XHJcbmltcG9ydCB7UmVuZGVyU2VydmljZX0gZnJvbSAnLi9wbHVnaW5zL3JlbmRlci9zZXJ2aWNlL3JlbmRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHtFeHBvcnRTZXJ2aWNlfSBmcm9tICcuL2NvcmUvc2VydmljZS9leHBvcnQuc2VydmljZSc7XHJcbmltcG9ydCB7TmV3UmVuZGVyU2VydmljZX0gZnJvbSAnLi9wbHVnaW5zL3JlbmRlci9zZXJ2aWNlL25ldy1yZW5kZXIuc2VydmljZSc7XHJcbmltcG9ydCB7VGhpcmRQYXJ0eU1vZGVsU2VydmljZX0gZnJvbSAnLi9wbHVnaW5zL3RocmVlZHNlbGVjdG9yL3RocmVlZHNlbGVjdG9yL3NlcnZpY2UvdGhpcmQtcGFydHktbW9kZWwuc2VydmljZSc7XHJcbmltcG9ydCB7T3V0bGluZVNlcnZpY2V9IGZyb20gJy4vcGx1Z2lucy9jb3JlM2Qvc2VydmljZS9vdXRsaW5lLnNlcnZpY2UnO1xyXG5pbXBvcnQge1Bvc3RQcm9jZXNzaW5nU2VydmljZX0gZnJvbSAnLi9wbHVnaW5zL2NvcmUzZC9zZXJ2aWNlL3Bvc3QtcHJvY2Vzc2luZy5zZXJ2aWNlJztcclxuaW1wb3J0IHtWclNlcnZpY2V9IGZyb20gJy4vcGx1Z2lucy9jb3JlM2Qvc2VydmljZS92ci5zZXJ2aWNlJztcclxuaW1wb3J0IHtYclNlcnZpY2V9IGZyb20gJy4vcGx1Z2lucy9jb3JlM2Qvc2VydmljZS94ci5zZXJ2aWNlJztcclxuaW1wb3J0IHtNZXNzYWdlQm9hcmRTZXJ2aWNlfSBmcm9tICcuL3BsdWdpbnMvY29yZTNkL3NlcnZpY2UvbWVzc2FnZS1ib2FyZC5zZXJ2aWNlJztcclxuaW1wb3J0IHtJbnRlZ3JhdGlvblNlcnZpY2V9IGZyb20gJy4vY29yZS9zZXJ2aWNlL2ludGVncmF0aW9uLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjby1ob21lZGVjb3JhdG9yJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiBjbGFzcz1cInZpZXdwb3J0XCIgKm5nSWY9XCJsb2FkZWRcIj5cclxuICAgICAgPHByb2dyZXNzLWJhcj48L3Byb2dyZXNzLWJhcj5cclxuICAgICAgPHJwLWxvYWRpbmctb3ZlcmxheT5cclxuICAgICAgICA8cnAtY29yZTNkPjwvcnAtY29yZTNkPlxyXG4gICAgICAgIDxycC1yb29tLXBsYW5uZXI+PC9ycC1yb29tLXBsYW5uZXI+XHJcbiAgICAgICAgPHJwLWZ1cm5pdHVyZS1tYW5hZ2VyPjwvcnAtZnVybml0dXJlLW1hbmFnZXI+XHJcbiAgICAgICAgPHJwLXByZXNldHM+PC9ycC1wcmVzZXRzPlxyXG4gICAgICAgIDxycC10aHJlZWRzZWxlY3Rvcj48L3JwLXRocmVlZHNlbGVjdG9yPlxyXG4gICAgICAgIDxycC10b29sYmFyPjwvcnAtdG9vbGJhcj5cclxuICAgICAgICA8cnAtcHJvZHVjdC1jYXRhbG9nXHJcbiAgICAgICAgICBbZ2VuZXJhbEZpbHRlck9yZGVyc109XCJnZW5lcmFsRmlsdGVyT3JkZXJzXCJcclxuICAgICAgICAgIFtwdXJjaGFzZUZpbHRlck9yZGVyc109XCJwdXJjaGFzZUZpbHRlck9yZGVyc1wiXHJcbiAgICAgICAgICBbbG9naXN0aWNzRmlsdGVyT3JkZXJzXT1cImxvZ2lzdGljc0ZpbHRlck9yZGVyc1wiXHJcbiAgICAgICAgPjwvcnAtcHJvZHVjdC1jYXRhbG9nPlxyXG4gICAgICAgIDxycC1saXRlLXNlbGVjdG9yPjwvcnAtbGl0ZS1zZWxlY3Rvcj5cclxuICAgICAgICA8cnAtaGVscD48L3JwLWhlbHA+XHJcbiAgICAgIDwvcnAtbG9hZGluZy1vdmVybGF5PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8cnAtbG9hZGVyIFtzaG93XT1cImNvbnRyb2xsZXJTZXJ2aWNlLnNob3VsZFNob3dMb2FkZXJcIj48L3JwLWxvYWRlcj5cclxuICAgIDxkaXYgKm5nSWY9XCJzaG91bGRTaG93TGFuZHNjYXBlTWVzc2FnZVwiIGNsYXNzPVwibW9iaWxlLXBvcnRyYWl0LW92ZXJsYXlcIj5cclxuICAgICAgPCEtLVxyXG4gICAgICAgICAgICA8bWF0LWljb24gc3ZnSWNvbj1cInRpbHQtcGhvbmVcIiBjbGFzcz1cInRpbHQtcGhvbmUtaWNvblwiPjwvbWF0LWljb24+XHJcbiAgICAgIC0tPlxyXG4gICAgICA8ZGl2PlxyXG4gICAgICAgIDwhLS1cclxuICAgICAgICAgICAgICAgIHt7J1BMRUFTRV9VU0VfUEhPTkVfSU5fTEFORFNDQVBFX01PREUnIHwgbG9jYWxpemV9fVxyXG4gICAgICAgIC0tPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIGAsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIFNjZW5lU2VydmljZSxcclxuICAgIEFwcFN0YXRlU2VydmljZSxcclxuICAgIE91dGxpbmVTZXJ2aWNlLFxyXG4gICAgUG9zdFByb2Nlc3NpbmdTZXJ2aWNlLFxyXG4gICAgQ2FtZXJhU2VydmljZSxcclxuICAgIExpZ2h0c1NlcnZpY2UsXHJcbiAgICBVdGlsc1NlcnZpY2UsXHJcbiAgICBJdGVtU2VydmljZSxcclxuICAgIEFyU2VydmljZSxcclxuICAgIFZyU2VydmljZSxcclxuICAgIFhyU2VydmljZSxcclxuICAgIFByZXNldHNTZXJ2aWNlLFxyXG4gICAgRmxvb3JwbGFuU2VydmljZSxcclxuICAgIFJvb21TZXJ2aWNlLFxyXG4gICAgRmxvb3JTZXJ2aWNlLFxyXG4gICAgQ2VpbGluZ1NlcnZpY2UsXHJcbiAgICBXYWxsTWVhc3VyZW1lbnRzU2VydmljZSxcclxuICAgIERldmVsb3BtZW50U2VydmljZSxcclxuICAgIEludGVyc2VjdGlvblNlcnZpY2UsXHJcbiAgICBDb2xsaXNpb25NYW5hZ2VyU2VydmljZSxcclxuICAgIFJvdGF0aW9uU2VydmljZSxcclxuICAgIEVycm9yR2xvd1NlcnZpY2UsXHJcbiAgICBTY2VuZUV2ZW50U2VydmljZSxcclxuICAgIEh1ZFNlcnZpY2UsXHJcbiAgICBEcmFnQW5kRHJvcFNlcnZpY2UsXHJcbiAgICBNb2RlbHNTZXJ2aWNlLFxyXG4gICAgU25hcHBpbmdDb2xsaXNpb25TZXJ2aWNlLFxyXG4gICAgSXRlbUdyb3VwU2VydmljZSxcclxuICAgIFZhcmlhdGlvblNlcnZpY2UsXHJcbiAgICBUaHJlZWRzZWxlY3RvclNlcnZpY2UsXHJcbiAgICBWYXJpYXRpb25DYWNoZVNlcnZpY2UsXHJcbiAgICBCdWlsZEZ1cm5pdHVyZVNlcnZpY2UsXHJcbiAgICBFbGVtZW50U2VydmljZSxcclxuICAgIFJlc2l6ZVNlcnZpY2UsXHJcbiAgICBGbG9vclRpbGVJbnRlcnNlY3Rpb25TZXJ2aWNlLFxyXG4gICAgTGlnaHRQcmVzZXRzU2VydmljZSxcclxuICAgIExvYWRGdXJuaXR1cmVTZXJ2aWNlLFxyXG4gICAgRGltZW5zaW9uc1NlcnZpY2UsXHJcbiAgICBBbmltYXRpb25TZXJ2aWNlLFxyXG4gICAgQ3VzdG9taXplclNlcnZpY2UsXHJcbiAgICBEeW5hbWljQ2FtZXJhU2VydmljZSxcclxuICAgIFRocmVlZEluUGhvdG9Jbml0aWFsaXplclNlcnZpY2UsXHJcbiAgICBUaHJlZWRJblBob3RvQnVpbGRTZXJ2aWNlLFxyXG4gICAgUmVuZGVyU2VydmljZSxcclxuICAgIEV4cG9ydFNlcnZpY2UsXHJcbiAgICBOZXdSZW5kZXJTZXJ2aWNlLFxyXG4gICAgVGhpcmRQYXJ0eU1vZGVsU2VydmljZSxcclxuICAgIE1lc3NhZ2VCb2FyZFNlcnZpY2VcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIb21lZGVjb3JhdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBnZW5lcmFsRmlsdGVyT3JkZXJzOiBGaWx0ZXJPcmRlcltdID0gW1xyXG4gICAge25hbWU6ICdDQVRFR09SWScsIG9yZGVyOiAxfSxcclxuICAgIHtuYW1lOiAnVFVSTk9WRVJfR1JPVVAnLCBvcmRlcjogMn0sXHJcbiAgICB7bmFtZTogJ1BST0RVQ1RfR1JPVVAnLCBvcmRlcjogM30sXHJcbiAgICB7bmFtZTogJ0JSQU5EUycsIG9yZGVyOiA0fSxcclxuICAgIHtuYW1lOiAnQ09MT1InLCBvcmRlcjogNX0sXHJcbiAgICB7bmFtZTogJ0NPTE9VUicsIG9yZGVyOiA1fSxcclxuICAgIHtuYW1lOiAnQ09OQ0VQVCcsIG9yZGVyOiA2fSxcclxuICAgIHtuYW1lOiAnVEFHJywgb3JkZXI6IDd9LFxyXG4gICAge25hbWU6ICdBVE1PU1BIRVJFJywgb3JkZXI6IDh9XHJcbiAgXTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgcHVyY2hhc2VGaWx0ZXJPcmRlcnM6IEZpbHRlck9yZGVyW10gPSBbXTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgbG9naXN0aWNzRmlsdGVyT3JkZXJzOiBGaWx0ZXJPcmRlcltdID0gW107XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBpbml0Q29tbXVuaWNhdGlvbih2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5faW5pdENvbW11bmljYXRpb24gPSB2YWx1ZTtcclxuICAgIHRoaXMuX3NldENvbW11bmljYXRpb24odGhpcy5faW5pdENvbW11bmljYXRpb24pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBpbml0Q29tbXVuaWNhdGlvbigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9pbml0Q29tbXVuaWNhdGlvbjtcclxuICB9XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuY28taG9tZWRlY29yYXRvcicpXHJcbiAgcHVibGljIHNob3dDbGFzczogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIHB1YmxpYyBsb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgdGl0bGU6IHN0cmluZyA9ICdNeVJvb21QbGFucyc7XHJcbiAgcHVibGljIHBob25lU2l6ZVNjcmVlbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBpc1BvcnRyYWl0TW9kZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93SU9uZUxvYWRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG91bGRTaG93TGFuZHNjYXBlTWVzc2FnZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvLyBwdWJsaWMgc2V0dGluZ3MgPSB7XHJcbiAgLy8gICAndXJsJzogJ2h0dHBzOi8vZGVtbzEuaW9uZWNsb3VkLm5sLycsXHJcbiAgLy8gICAnc2NoZW1hJzogJzEzNDU5MicsXHJcbiAgLy8gICAndmVyc2lvbic6ICcyNTMnLFxyXG4gIC8vICAgJ2JyYW5jaCc6ICcxJyxcclxuICAvLyAgICdjdXJyZW5jeSc6IDMsXHJcbiAgLy8gICAndXNlR3JvdXBzJzogdHJ1ZSxcclxuICAvLyAgICdhc3NldEluZGV4JzogJ2luZGV4LWRldmVsb3AuanNvbicsXHJcbiAgLy8gICAnYXNzZXRQYXRoJzogJ2h0dHBzOi8vY2RuLmlvbmUzNjAuY29tL2NvbnRlbnQ0My8nLFxyXG4gIC8vICAgJ3RocmVlREFzc2V0UGF0aCc6ICdodHRwczovL2Nkbi5pb25lMzYwLmNvbS9jb250ZW50NDMvJyxcclxuICAvLyAgICdhcGlVcmwnOiAnaHR0cHM6Ly9teXJvb21wbGFucy5jb2xpam4taXQubmwnLFxyXG4gIC8vICAgJ3RpbWVvdXRJbk1zJzogMzAwMDAsXHJcbiAgLy8gICAnbGFuZ3VhZ2VDb2RlJzogJ05MJyxcclxuICAvLyAgICd1c2VybmFtZSc6ICdydWJlbicsXHJcbiAgLy8gICAncGFzc3dvcmQnOiAnZ2VlbicsXHJcbiAgLy8gICAndXNlTG9naW5FbmNyeXB0aW9uJzogdHJ1ZSxcclxuICAvLyAgICdqd3RFbmFibGVkJzogZmFsc2UsXHJcbiAgLy8gICAnb3B0aW9ucyc6IHtcclxuICAvLyAgICAgJ2RldmVsb3BtZW50JzogdHJ1ZSxcclxuICAvLyAgICAgJ3Nob3dTdG9ja1N0YXR1cyc6IHRydWUsXHJcbiAgLy8gICAgICdzaG93Wm9vbUJ1dHRvbic6IHRydWUsXHJcbiAgLy8gICAgICdzaG93QXNDb25maWd1cmVkJzogdHJ1ZSxcclxuICAvLyAgICAgJ3Nob3dUYWdGaWx0ZXInOiB0cnVlLFxyXG4gIC8vICAgICAnc2hvd0FyQnV0dG9uJzogdHJ1ZSxcclxuICAvLyAgICAgJ3Nob3czRFdhdGVybWFyayc6IGZhbHNlLFxyXG4gIC8vICAgICAnc2hvd0NhcHRpb25BZGRCdXR0b24nOiB0cnVlLFxyXG4gIC8vICAgICAnYm90dG9tQW5zd2Vycyc6IGZhbHNlLFxyXG4gIC8vICAgICAnaW5zdGFudFJlcGxhY2UnOiBmYWxzZSxcclxuICAvLyAgICAgJ2FyRW5hYmxlZCc6IHRydWUsXHJcbiAgLy8gICAgICd2ckVuYWJsZWQnOiBmYWxzZSxcclxuICAvLyAgICAgJ3hyRGVidWcnOiBmYWxzZSxcclxuICAvLyAgICAgJ2lubGluZUFuc3dlcnMnOiBmYWxzZSxcclxuICAvLyAgICAgJ29ubHlUaHJlZUQnOiBmYWxzZSxcclxuICAvLyAgICAgJ3Nob3dQcmljZUZpbHRlcic6IGZhbHNlLFxyXG4gIC8vICAgICAnY2FtZXJhUG9zaXRpb25GaXhlZCc6IGZhbHNlLFxyXG4gIC8vICAgICAnaW5zdGFudEVkaXRNZW51JzogZmFsc2UsXHJcbiAgLy8gICAgICd1c2VSZW5kZXJXZWJzb2NrZXQnOiBmYWxzZSxcclxuICAvLyAgICAgJ3Nob3dSb29tRG93bmxvYWRCdXR0b24nOiB0cnVlLFxyXG4gIC8vICAgICAnc2VhcmNoT25TdGFydCc6IHRydWVcclxuICAvLyAgIH0sXHJcbiAgLy8gICAnY2F0YWxvZ1BhcmFtZXRlcnMnOiB7XHJcbiAgLy8gICAgICdzaG93Q3VzdG9taXplZEFydGljbGVzJzogdHJ1ZSxcclxuICAvLyAgICAgJ3Nob3dDb25maWd1cmFibGVBcnRpY2xlcyc6IHRydWUsXHJcbiAgLy8gICAgICdzaG93SW5hY3RpdmVBcnRpY2xlcyc6IGZhbHNlLFxyXG4gIC8vICAgICAnc2hvd1JlZ3VsYXJBcnRpY2xlcyc6IHRydWUsXHJcbiAgLy8gICAgICdzaG93Q29tcG9zaXRpb25BcnRpY2xlcyc6IGZhbHNlXHJcbiAgLy8gICB9LFxyXG4gIC8vICAgJ3JlbmRlclBhcmFtZXRlcnMnOiB7XHJcbiAgLy8gICAgICdob3N0JzogJ3JlbmRlcjEuY29saWpuLWl0Lm5sJyxcclxuICAvLyAgICAgJ3BvcnQnOiA4NDQzLFxyXG4gIC8vICAgICAnc2VjdXJlJzogdHJ1ZSxcclxuICAvLyAgICAgJ3JlbmRlck1vZGUnOiAncmVuZGVyX3Jvb20nXHJcbiAgLy8gICB9LFxyXG4gIC8vICAgJ25ld1JlbmRlclBhcmFtZXRlcnMnOiB7XHJcbiAgLy8gICAgICd3ZWJzb2NrZXQnOiAnd3NzOi8vcmVuZGVyMS5jb2xpam4taXQubmw6ODA4MycsXHJcbiAgLy8gICAgICdob3N0JzogJ2h0dHBzOi8vcmVuZGVyLmNvbGlqbi1pdC5ubCcsXHJcbiAgLy8gICAgICdwb3J0JzogNDQzLFxyXG4gIC8vICAgICAnaXRlcmF0aW9ucyc6IDEwMCxcclxuICAvLyAgICAgJ2ltYWdlV2lkdGgnOiAxOTIwLFxyXG4gIC8vICAgICAnaW1hZ2VIZWlnaHQnOiAxMDgwLFxyXG4gIC8vICAgICAnaGRyaUludGVuc2l0eSc6IDEuMVxyXG4gIC8vICAgfVxyXG4gIC8vIH07XHJcblxyXG4gIHByaXZhdGUgX3N1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcbiAgcHJpdmF0ZSBfaW5pdENvbW11bmljYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgY29udHJvbGxlclNlcnZpY2U6IEhvbWVkZWNvcmF0b3JDb25uZWN0b3JTZXJ2aWNlLFxyXG4gICAgcHVibGljIGFwcFN0YXRlOiBBcHBTdGF0ZVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgcHJlc2V0c1NlcnZpY2U6IFByZXNldHNTZXJ2aWNlLFxyXG4gICAgcHVibGljIHNjcmVlbkFuYWx5c2lzOiBTY3JlZW5TaXplQW5hbHlzaXNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfaWNvblJlZ2lzdHJ5OiBNYXRJY29uUmVnaXN0cnksXHJcbiAgICBwcml2YXRlIF9kb21TYW5pdGl6ZXI6IERvbVNhbml0aXplcixcclxuICAgIHByaXZhdGUgX21lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlQnVzU2VydmljZSxcclxuICAgIHByaXZhdGUgX2hvbWVkZWNvcmF0b3JTZXJ2aWNlOiBIb21lZGVjb3JhdG9yU2VydmljZSxcclxuICAgIHByaXZhdGUgX2V2ZW50U2VydmljZTogSG9tZWRlY29yYXRvckFwcEV2ZW50U2VydmljZSxcclxuICAgIHByaXZhdGUgX2ludGVncmF0aW9uU2VydmljZTogSW50ZWdyYXRpb25TZXJ2aWNlXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMucmVnaXN0ZXJDdXN0b21JY29ucygpO1xyXG4gICAgdGhpcy5fc3Vicy5wdXNoKFxyXG4gICAgICB0aGlzLnNjcmVlbkFuYWx5c2lzLnNjcmVlblNpemVDaGFuZ2VkLnN1YnNjcmliZSgoaW5mbzogU2NyZWVuU2l6ZUluZm8pID0+IHtcclxuICAgICAgICB0aGlzLnBob25lU2l6ZVNjcmVlbiA9IGluZm8uaXNQaG9uZVNpemU7XHJcbiAgICAgICAgdGhpcy5pc1BvcnRyYWl0TW9kZSA9IGluZm8uaXNQb3J0cmFpdE1vZGU7XHJcbiAgICAgICAgdGhpcy5zaG91bGRTaG93TGFuZHNjYXBlTWVzc2FnZSA9IHRoaXMuc2NyZWVuQW5hbHlzaXMuaXNNb2JpbGVEZXZpY2UgJiYgdGhpcy5pc1BvcnRyYWl0TW9kZTtcclxuICAgICAgfSksXHJcbiAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLnN1YnNjcmliZShNZXNzYWdlVHlwZS5TaG93SU9uZUxvYWRpbmdJbmRpY2F0b3IsICgpID0+IHtcclxuICAgICAgICB0aGlzLnNob3dJT25lTG9hZGVyID0gdHJ1ZTtcclxuICAgICAgfSksXHJcbiAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLnN1YnNjcmliZShNZXNzYWdlVHlwZS5IaWRlSU9uZUxvYWRpbmdJbmRpY2F0b3IsICgpID0+IHtcclxuICAgICAgICB0aGlzLnNob3dJT25lTG9hZGVyID0gZmFsc2U7XHJcbiAgICAgIH0pLFxyXG4gICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5zdWJzY3JpYmUoTWVzc2FnZVR5cGUuU3RhcnRXaXRoRW1wdHlSb29tLCAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5fc3RhcnRXaXRoRW1wdHlSb29tKHRydWUpO1xyXG4gICAgICB9KSxcclxuICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2Uuc3Vic2NyaWJlKE1lc3NhZ2VUeXBlLlN0YXJ0V2l0aFByZXNldCwgKHtwcmVzZXQsIHN3aXRjaFRvMkR9KSA9PiB7XHJcbiAgICAgICAgdGhpcy5fc3RhcnRXaXRoUHJlc2V0KHByZXNldCwgc3dpdGNoVG8yRCk7XHJcbiAgICAgIH0pLFxyXG4gICAgICB0aGlzLl9ob21lZGVjb3JhdG9yU2VydmljZS5sb2FkZWQuc3Vic2NyaWJlKChsb2FkZWQ6IGJvb2xlYW4pID0+IHtcclxuICAgICAgICBpZiAobG9hZGVkKSB7XHJcbiAgICAgICAgICB0aGlzLmxvYWRlZCA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLl9zdGFydFdpdGhFbXB0eVJvb20odHJ1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc3Vicy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyQ3VzdG9tSWNvbnMoKSB7XHJcbiAgICBjb25zdCBhZGRJY29uID0ga2V5ID0+XHJcbiAgICAgIHRoaXMuX2ljb25SZWdpc3RyeS5hZGRTdmdJY29uKGtleSwgdGhpcy5fZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybChgYXNzZXRzL2ljb25zLyR7a2V5fS5zdmdgKSk7XHJcbiAgICBbXHJcbiAgICAgICdjdWJlLW91dGxpbmUnLFxyXG4gICAgICAnY3ViZS11bmZvbGRlZCcsXHJcbiAgICAgICdnb29nbGUtY2FyZGJvYXJkJyxcclxuICAgICAgJ2dvb2dsZS1jYXJkYm9hcmQtb3JhbmdlJyxcclxuICAgICAgJ3N0cmVldC12aWV3JyxcclxuICAgICAgJ3N0cmVldC12aWV3LW9yYW5nZScsXHJcbiAgICAgICdtYWdpYy13YW5kJyxcclxuICAgICAgJ2FkZC1idXR0b24nLFxyXG4gICAgICAnZWRpdC1idXR0b24nLFxyXG4gICAgICAnZGVsZXRlLWJ1dHRvbicsXHJcbiAgICAgICdzd2FwLWJ1dHRvbicsXHJcbiAgICAgICd0aWx0LXBob25lJyxcclxuICAgICAgJ2hhbmQtcG9pbnRlcicsXHJcbiAgICAgICdjaGVjaycsXHJcbiAgICAgICdtb3ZlLXBob25lLWFyJyxcclxuICAgICAgJ2NhcnQtc2hvcHBpbmctcmVndWxhcicsXHJcbiAgICAgICdwZW4tcnVsZXInLFxyXG4gICAgICAnZGFzaC1idXR0b24nLFxyXG4gICAgICAncmV0cnktYnV0dG9uJyxcclxuICAgICAgJ21hZ25ldCcsXHJcbiAgICAgICdtYWduZXQtc3RyaWtldGhyb3VnaCcsXHJcbiAgICAgICdpbWFnZV9zbGFzaF9yZWd1bGFyJ1xyXG4gICAgXS5tYXAoYWRkSWNvbik7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXl1cCcsIFsnJGV2ZW50J10pXHJcbiAga2V5dXAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGNvbnN0IHtjb2RlLCBjdHJsS2V5LCBhbHRLZXl9OiB7IGNvZGU6IHN0cmluZywgY3RybEtleTogYm9vbGVhbiwgYWx0S2V5OiBib29sZWFuIH0gPSBldmVudDtcclxuICAgIGlmICghdGhpcy5wcmVzZXRzU2VydmljZS5pc0xvYWRpbmcgJiYgdGhpcy5hcHBTdGF0ZS5jYW5VbmRvKCkgJiYgY3RybEtleSAmJiBjb2RlID09PSAnS2V5WicpIHtcclxuICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuZW1pdChNZXNzYWdlVHlwZS5VbmRvKTtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5wcmVzZXRzU2VydmljZS5pc0xvYWRpbmcgJiYgdGhpcy5hcHBTdGF0ZS5jYW5SZWRvKCkgJiYgY3RybEtleSAmJiBjb2RlID09PSAnS2V5WScpIHtcclxuICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuZW1pdChNZXNzYWdlVHlwZS5SZWRvKTtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5wcmVzZXRzU2VydmljZS5pc0xvYWRpbmcgJiYgYWx0S2V5ICYmIChjb2RlID09PSAnS2V5SCcgfHwgY29kZSA9PT0gJ0tleVgnKSkge1xyXG4gICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5lbWl0KE1lc3NhZ2VUeXBlLkhpZGVMZWZ0U2lkZWJhcik7XHJcbiAgICAgIGlmIChjb2RlID09PSAnS2V5SCcpIHtcclxuICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5lbWl0KE1lc3NhZ2VUeXBlLlNob3dGdXJuaXR1cmVTaWRlYmFyLCAnVGVzdCBGdXJuaXR1cmUnKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc3RhcnRXaXRoRW1wdHlSb29tKHN3aXRjaFRvMkQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuX2V2ZW50U2VydmljZS5kaXJ0eS5uZXh0KHRydWUpO1xyXG4gICAgY29uc3QgcHJlc2V0OiBQcmVzZXQgPSBQcmVzZXQuQ3JlYXRlTW9kZWxGcm9tSW50ZXJmYWNlKHtmaWxlbmFtZTogJ2Fzc2V0cy9wcmVzZXRzL2VtcHR5Lmpzb24nfSk7XHJcbiAgICB0aGlzLl9zdGFydFdpdGhQcmVzZXQocHJlc2V0LCBzd2l0Y2hUbzJEKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3N0YXJ0V2l0aFByZXNldChwcmVzZXQ6IFByZXNldCwgc3dpdGNoVG8yRDogYm9vbGVhbiA9IGZhbHNlKTogdm9pZCB7XHJcbiAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5lbWl0KE1lc3NhZ2VUeXBlLlJlc2V0Um9vbXBsYW4pO1xyXG4gICAgaWYgKHN3aXRjaFRvMkQpIHtcclxuICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuZW1pdChNZXNzYWdlVHlwZS5TZXQyRFZpZXcsIHtzZW5kVXBkYXRlczogdHJ1ZX0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuZW1pdChNZXNzYWdlVHlwZS5TZXQzRFZpZXcsIHtzZW5kVXBkYXRlczogdHJ1ZX0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuZW1pdChNZXNzYWdlVHlwZS5Mb2FkUm9vbUZyb21QcmVzZXQsIHByZXNldCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9zZXRDb21tdW5pY2F0aW9uKGVuYWJsZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5faW50ZWdyYXRpb25TZXJ2aWNlLmVuYWJsZWQgPSBlbmFibGU7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -11,6 +11,7 @@ import { InfoDialogModule } from './shared/info-dialog/info-dialog.module';
11
11
  import { DialogModule } from './shared/dialog/dialog.module';
12
12
  import { LightboxModule } from 'ngx-lightbox';
13
13
  import { A11yModule } from '@angular/cdk/a11y';
14
+ import { ProductConfiguratorModule } from './plugins/product-configurator/product-configurator.module';
14
15
  import * as i0 from "@angular/core";
15
16
  export class HomedecoratorModule {
16
17
  constructor(_injector) {
@@ -28,7 +29,8 @@ HomedecoratorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", ver
28
29
  PluginsModule,
29
30
  DialogModule,
30
31
  LightboxModule,
31
- A11yModule], exports: [HomedecoratorComponent] });
32
+ A11yModule,
33
+ ProductConfiguratorModule], exports: [HomedecoratorComponent] });
32
34
  HomedecoratorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: HomedecoratorModule, imports: [[
33
35
  CommonModule,
34
36
  ProgressBarModule,
@@ -39,7 +41,8 @@ HomedecoratorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", ver
39
41
  PluginsModule,
40
42
  DialogModule,
41
43
  LightboxModule,
42
- A11yModule
44
+ A11yModule,
45
+ ProductConfiguratorModule
43
46
  ]] });
44
47
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: HomedecoratorModule, decorators: [{
45
48
  type: NgModule,
@@ -54,7 +57,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
54
57
  PluginsModule,
55
58
  DialogModule,
56
59
  LightboxModule,
57
- A11yModule
60
+ A11yModule,
61
+ ProductConfiguratorModule
58
62
  ],
59
63
  declarations: [
60
64
  HomedecoratorComponent
@@ -65,4 +69,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
65
69
  bootstrap: [HomedecoratorComponent]
66
70
  }]
67
71
  }], ctorParameters: function () { return [{ type: i0.Injector }]; } });
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZWRlY29yYXRvci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xpZW50L2FwcC9ob21lZGVjb3JhdG9yLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVcsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNqRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDNUUsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0saURBQWlELENBQUM7QUFDckYsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ2hFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBQy9FLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUN6RSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUM1QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7O0FBd0I3QyxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLFlBQW9CLFNBQW1CO1FBQW5CLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDckMsY0FBYyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzNDLENBQUM7O2lIQUhVLG1CQUFtQjtrSEFBbkIsbUJBQW1CLGNBRmxCLHNCQUFzQixrQkFMaEMsc0JBQXNCLGFBWnRCLFlBQVk7UUFDWixpQkFBaUI7UUFDakIsb0JBQW9CO1FBQ3BCLGNBQWM7UUFDZCxrQkFBa0I7UUFDbEIsZ0JBQWdCO1FBQ2hCLGFBQWE7UUFDYixZQUFZO1FBQ1osY0FBYztRQUNkLFVBQVUsYUFNVixzQkFBc0I7a0hBSWIsbUJBQW1CLFlBcEJyQjtZQUNQLFlBQVk7WUFDWixpQkFBaUI7WUFDakIsb0JBQW9CO1lBQ3BCLGNBQWM7WUFDZCxrQkFBa0I7WUFDbEIsZ0JBQWdCO1lBQ2hCLGFBQWE7WUFDYixZQUFZO1lBQ1osY0FBYztZQUNkLFVBQVU7U0FDWDs0RkFTVSxtQkFBbUI7a0JBckIvQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGlCQUFpQjt3QkFDakIsb0JBQW9CO3dCQUNwQixjQUFjO3dCQUNkLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxVQUFVO3FCQUNYO29CQUNELFlBQVksRUFBRTt3QkFDWixzQkFBc0I7cUJBQ3ZCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxzQkFBc0I7cUJBQ3ZCO29CQUNELFNBQVMsRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNwQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0b3IsIE5nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtIb21lZGVjb3JhdG9yQ29tcG9uZW50fSBmcm9tICcuL2hvbWVkZWNvcmF0b3IuY29tcG9uZW50JztcclxuaW1wb3J0IHtTZXJ2aWNlTG9jYXRvcn0gZnJvbSAnLi9zZXJ2aWNlL3NlcnZpY2UtbG9jYXRvci5zZXJ2aWNlJztcclxuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7UHJvZ3Jlc3NCYXJNb2R1bGV9IGZyb20gJy4vc2hhcmVkL3Byb2dyZXNzLWJhci9wcm9ncmVzcy1iYXIubW9kdWxlJztcclxuaW1wb3J0IHtMb2FkaW5nT3ZlcmxheU1vZHVsZX0gZnJvbSAnLi9zaGFyZWQvbG9hZGluZy1vdmVybGF5L2xvYWRpbmctb3ZlcmxheS5tb2R1bGUnO1xyXG5pbXBvcnQge0hkTG9hZGVyTW9kdWxlfSBmcm9tICcuL3NoYXJlZC9sb2FkZXIvaGQtbG9hZGVyLm1vZHVsZSc7XHJcbmltcG9ydCB7RXhwb3J0RGlhbG9nTW9kdWxlfSBmcm9tICcuL3NoYXJlZC9leHBvcnQtZGlhbG9nL2V4cG9ydC1kaWFsb2cubW9kdWxlJztcclxuaW1wb3J0IHtQbHVnaW5zTW9kdWxlfSBmcm9tICcuL3BsdWdpbnMvcGx1Z2lucy5tb2R1bGUnO1xyXG5pbXBvcnQge0luZm9EaWFsb2dNb2R1bGV9IGZyb20gJy4vc2hhcmVkL2luZm8tZGlhbG9nL2luZm8tZGlhbG9nLm1vZHVsZSc7XHJcbmltcG9ydCB7RGlhbG9nTW9kdWxlfSBmcm9tICcuL3NoYXJlZC9kaWFsb2cvZGlhbG9nLm1vZHVsZSc7XHJcbmltcG9ydCB7TGlnaHRib3hNb2R1bGV9IGZyb20gJ25neC1saWdodGJveCc7XHJcbmltcG9ydCB7QTExeU1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xyXG5cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgUHJvZ3Jlc3NCYXJNb2R1bGUsXHJcbiAgICBMb2FkaW5nT3ZlcmxheU1vZHVsZSxcclxuICAgIEhkTG9hZGVyTW9kdWxlLFxyXG4gICAgRXhwb3J0RGlhbG9nTW9kdWxlLFxyXG4gICAgSW5mb0RpYWxvZ01vZHVsZSxcclxuICAgIFBsdWdpbnNNb2R1bGUsXHJcbiAgICBEaWFsb2dNb2R1bGUsXHJcbiAgICBMaWdodGJveE1vZHVsZSxcclxuICAgIEExMXlNb2R1bGVcclxuICBdLFxyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgSG9tZWRlY29yYXRvckNvbXBvbmVudFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgSG9tZWRlY29yYXRvckNvbXBvbmVudFxyXG4gIF0sXHJcbiAgYm9vdHN0cmFwOiBbSG9tZWRlY29yYXRvckNvbXBvbmVudF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEhvbWVkZWNvcmF0b3JNb2R1bGUge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2luamVjdG9yOiBJbmplY3Rvcikge1xyXG4gICAgU2VydmljZUxvY2F0b3IuaW5qZWN0b3IgPSB0aGlzLl9pbmplY3RvcjtcclxuICB9XHJcbn1cclxuIl19
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZWRlY29yYXRvci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xpZW50L2FwcC9ob21lZGVjb3JhdG9yLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVcsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNqRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDNUUsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0saURBQWlELENBQUM7QUFDckYsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ2hFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBQy9FLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUN6RSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUM1QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDN0MsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sNERBQTRELENBQUM7O0FBeUJyRyxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLFlBQW9CLFNBQW1CO1FBQW5CLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDckMsY0FBYyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzNDLENBQUM7O2lIQUhVLG1CQUFtQjtrSEFBbkIsbUJBQW1CLGNBRmxCLHNCQUFzQixrQkFMaEMsc0JBQXNCLGFBYnRCLFlBQVk7UUFDWixpQkFBaUI7UUFDakIsb0JBQW9CO1FBQ3BCLGNBQWM7UUFDZCxrQkFBa0I7UUFDbEIsZ0JBQWdCO1FBQ2hCLGFBQWE7UUFDYixZQUFZO1FBQ1osY0FBYztRQUNkLFVBQVU7UUFDVix5QkFBeUIsYUFNekIsc0JBQXNCO2tIQUliLG1CQUFtQixZQXJCckI7WUFDUCxZQUFZO1lBQ1osaUJBQWlCO1lBQ2pCLG9CQUFvQjtZQUNwQixjQUFjO1lBQ2Qsa0JBQWtCO1lBQ2xCLGdCQUFnQjtZQUNoQixhQUFhO1lBQ2IsWUFBWTtZQUNaLGNBQWM7WUFDZCxVQUFVO1lBQ1YseUJBQXlCO1NBQzFCOzRGQVNVLG1CQUFtQjtrQkF0Qi9CLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osaUJBQWlCO3dCQUNqQixvQkFBb0I7d0JBQ3BCLGNBQWM7d0JBQ2Qsa0JBQWtCO3dCQUNsQixnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2IsWUFBWTt3QkFDWixjQUFjO3dCQUNkLFVBQVU7d0JBQ1YseUJBQXlCO3FCQUMxQjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1osc0JBQXNCO3FCQUN2QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1Asc0JBQXNCO3FCQUN2QjtvQkFDRCxTQUFTLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDcEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdG9yLCBOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7SG9tZWRlY29yYXRvckNvbXBvbmVudH0gZnJvbSAnLi9ob21lZGVjb3JhdG9yLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7U2VydmljZUxvY2F0b3J9IGZyb20gJy4vc2VydmljZS9zZXJ2aWNlLWxvY2F0b3Iuc2VydmljZSc7XHJcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge1Byb2dyZXNzQmFyTW9kdWxlfSBmcm9tICcuL3NoYXJlZC9wcm9ncmVzcy1iYXIvcHJvZ3Jlc3MtYmFyLm1vZHVsZSc7XHJcbmltcG9ydCB7TG9hZGluZ092ZXJsYXlNb2R1bGV9IGZyb20gJy4vc2hhcmVkL2xvYWRpbmctb3ZlcmxheS9sb2FkaW5nLW92ZXJsYXkubW9kdWxlJztcclxuaW1wb3J0IHtIZExvYWRlck1vZHVsZX0gZnJvbSAnLi9zaGFyZWQvbG9hZGVyL2hkLWxvYWRlci5tb2R1bGUnO1xyXG5pbXBvcnQge0V4cG9ydERpYWxvZ01vZHVsZX0gZnJvbSAnLi9zaGFyZWQvZXhwb3J0LWRpYWxvZy9leHBvcnQtZGlhbG9nLm1vZHVsZSc7XHJcbmltcG9ydCB7UGx1Z2luc01vZHVsZX0gZnJvbSAnLi9wbHVnaW5zL3BsdWdpbnMubW9kdWxlJztcclxuaW1wb3J0IHtJbmZvRGlhbG9nTW9kdWxlfSBmcm9tICcuL3NoYXJlZC9pbmZvLWRpYWxvZy9pbmZvLWRpYWxvZy5tb2R1bGUnO1xyXG5pbXBvcnQge0RpYWxvZ01vZHVsZX0gZnJvbSAnLi9zaGFyZWQvZGlhbG9nL2RpYWxvZy5tb2R1bGUnO1xyXG5pbXBvcnQge0xpZ2h0Ym94TW9kdWxlfSBmcm9tICduZ3gtbGlnaHRib3gnO1xyXG5pbXBvcnQge0ExMXlNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcclxuaW1wb3J0IHtQcm9kdWN0Q29uZmlndXJhdG9yTW9kdWxlfSBmcm9tICcuL3BsdWdpbnMvcHJvZHVjdC1jb25maWd1cmF0b3IvcHJvZHVjdC1jb25maWd1cmF0b3IubW9kdWxlJztcclxuXHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIFByb2dyZXNzQmFyTW9kdWxlLFxyXG4gICAgTG9hZGluZ092ZXJsYXlNb2R1bGUsXHJcbiAgICBIZExvYWRlck1vZHVsZSxcclxuICAgIEV4cG9ydERpYWxvZ01vZHVsZSxcclxuICAgIEluZm9EaWFsb2dNb2R1bGUsXHJcbiAgICBQbHVnaW5zTW9kdWxlLFxyXG4gICAgRGlhbG9nTW9kdWxlLFxyXG4gICAgTGlnaHRib3hNb2R1bGUsXHJcbiAgICBBMTF5TW9kdWxlLFxyXG4gICAgUHJvZHVjdENvbmZpZ3VyYXRvck1vZHVsZVxyXG4gIF0sXHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBIb21lZGVjb3JhdG9yQ29tcG9uZW50XHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBIb21lZGVjb3JhdG9yQ29tcG9uZW50XHJcbiAgXSxcclxuICBib290c3RyYXA6IFtIb21lZGVjb3JhdG9yQ29tcG9uZW50XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSG9tZWRlY29yYXRvck1vZHVsZSB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICBTZXJ2aWNlTG9jYXRvci5pbmplY3RvciA9IHRoaXMuX2luamVjdG9yO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -218,7 +218,7 @@ export class Core3dComponent {
218
218
  }
219
219
  }
220
220
  Core3dComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: Core3dComponent, deps: [{ token: i1.ViewModeService }, { token: i2.HomedecoratorSettingsService }, { token: i3.XrService }, { token: i4.VrService }, { token: i5.PresetsService }, { token: i6.MessageBusService }, { token: i7.ConfigurationService }, { token: i8.CameraService }, { token: i9.FloorplanService }, { token: i10.ItemService }, { token: i11.MatDialog }, { token: i12.HomedecoratorIconCacheService }, { token: i13.ScreenSizeAnalysisService }, { token: i14.WallMeasurementsService }], target: i0.ɵɵFactoryTarget.Component });
221
- Core3dComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: Core3dComponent, selector: "rp-core3d", host: { listeners: { "document:mouseup": "handledocumentMouseUp($event)", "document:mousemove": "handleDocumentMouseDown($event)" }, properties: { "class": "this.layerClass", "class.disable-mouse": "this._disableMouse" } }, viewQueries: [{ propertyName: "toolbarIconTopView", first: true, predicate: ["toolbarIconTopView"], descendants: true, static: true }, { propertyName: "toolbarIconWalkThrough", first: true, predicate: ["toolbarIconWalkThrough"], descendants: true, static: true }, { propertyName: "toolbarIconVR", first: true, predicate: ["toolbarIconVR"], descendants: true, static: true }], ngImport: i0, template: "<development-selected-object></development-selected-object>\r\n<div class=\"viewer\" scene *ngIf=\"!settingsService.settings.options.development\"></div>\r\n<div class=\"viewer\" scene development *ngIf=\"settingsService.settings.options.development\"></div>\r\n<div class=\"powered-by-wrapper\" *ngIf=\"show3DWaterMark\">\r\n <co-icon [iconData]=\"iconService.getIcon(icon.CitPoweredWhite)\"></co-icon>\r\n</div>\r\n<lightplan *ngIf=\"showLightplan\"></lightplan>\r\n<rp-scene-control *ngIf=\"showSceneControls\"></rp-scene-control>\r\n<ng-template #toolbarIconTopView>\r\n <rp-toolbar-icon\r\n matIcon=\"camera_topdown\"\r\n [disabled]=\"!hasRooms() || viewModeService.viewMode === viewModes.TopView || !threedOptionsAvailable\"\r\n (onClick)=\"setViewModeTopView()\"\r\n tooltip=\"{{iconName.TopView | localize}}\"\r\n [showLabel]=\"phoneSizeScreen\">\r\n </rp-toolbar-icon>\r\n</ng-template>\r\n\r\n<ng-template #toolbarIconWalkThrough>\r\n <rp-toolbar-icon\r\n matIcon=\"street_view\"\r\n [disabled]=\"!hasRooms() || viewModeService.viewMode === viewModes.WalkThrough || !threedOptionsAvailable\"\r\n (onClick)=\"setViewModeWalkThrough()\"\r\n tooltip=\"{{iconName.WalkThrough | localize}}\"\r\n [showLabel]=\"phoneSizeScreen\">\r\n </rp-toolbar-icon>\r\n</ng-template>\r\n\r\n<ng-template #toolbarIconVR>\r\n <rp-toolbar-icon\r\n *ngIf=\"xrService.vrSupported\"\r\n svgIcon=\"google-cardboard-orange\"\r\n [disabled]=\"!hasRooms() || viewModeService.viewMode === viewModes.VR\"\r\n (onClick)=\"setViewModeVr()\"\r\n tooltip=\"{{iconName.VR | localize}}\">\r\n </rp-toolbar-icon>\r\n</ng-template>\r\n\r\n<rp-zoom-controls\r\n [visible]=\"viewModeService.viewMode === viewModes.RoomPlan3D\"\r\n (onZoomIn)=\"cameraZoomIn($event)\"\r\n (onZoomReset)=\"cameraCenter($event)\"\r\n (onZoomOut)=\"cameraZoomOut($event)\"\r\n></rp-zoom-controls>\r\n\r\n<div id=\"controls\" class=\"controls-bottom\">\r\n\r\n <rp-render-controls *ngIf=\"viewModeService.viewMode === viewModes.RoomPlan3D\"></rp-render-controls>\r\n <scene-options></scene-options>\r\n\r\n <div class=\"controls-directions desktop\" *ngIf=\"showCameraControlButtons\">\r\n <button class=\"control-left\" mat-raised-button (click)=\"cameraPanLeft($event)\" title=\"{{'LEFT' | localize}}\"\r\n #controls>\r\n <mat-icon class=\"homedecorator-material-icons\">arrow_back</mat-icon>\r\n </button>\r\n <button class=\"control-right\" mat-raised-button (click)=\"cameraPanRight($event)\" title=\"{{'RIGHT' | localize}}\">\r\n <mat-icon class=\"homedecorator-material-icons\">arrow_forward</mat-icon>\r\n </button>\r\n <button class=\"control-up\" mat-raised-button (click)=\"cameraPanUp($event)\" title=\"{{'UP' | localize}}\">\r\n <mat-icon class=\"homedecorator-material-icons\">arrow_upward</mat-icon>\r\n </button>\r\n <button class=\"control-down\" mat-raised-button (click)=\"cameraPanDown($event)\" title=\"{{'DOWN' | localize}}\">\r\n <mat-icon class=\"homedecorator-material-icons\">arrow_downward</mat-icon>\r\n </button>\r\n </div>\r\n</div>\r\n\r\n<div\r\n *ngIf=\"viewModeService.viewMode === viewModes.WalkThrough && showCameraControls\"\r\n class=\"full-screen\"\r\n>\r\n <rp-walkthrough-camera-controls></rp-walkthrough-camera-controls>\r\n</div>\r\n\r\n<ar-gui-root></ar-gui-root>\r\n", styles: [":host{display:block}:host.disable-mouse #controls{pointer-events:none}:host .powered-by-wrapper{pointer-events:none;position:absolute;bottom:0;left:50%;transform:translate(-50%);width:30%;height:30px;background:rgba(0,0,0,.1);border-radius:10px;padding:10px;opacity:.4}:host .powered-by-wrapper ::ng-deep co-icon{width:100%;height:100%}:host .powered-by-wrapper ::ng-deep co-icon svg{height:100%;width:100%}\n"], components: [{ type: i15.SelectedObjectComponent, selector: "development-selected-object" }, { type: i16.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { type: i17.LightplanComponent, selector: "lightplan" }, { type: i18.SceneControlComponent, selector: "rp-scene-control" }, { type: i19.ToolbarIconComponent, selector: "rp-toolbar-icon", inputs: ["matIcon", "svgIcon", "tooltip", "disabled", "showLabel"], outputs: ["onClick"] }, { type: i20.ZoomControlsComponent, selector: "rp-zoom-controls", inputs: ["visible"], outputs: ["onZoomIn", "onZoomReset", "onZoomOut"] }, { type: i21.RenderControlsComponent, selector: "rp-render-controls" }, { type: i22.SceneOptionsComponent, selector: "scene-options" }, { type: i23.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i24.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i25.WalkthroughCameraControlsComponent, selector: "rp-walkthrough-camera-controls", inputs: ["fov", "aspect", "focus"] }, { type: i26.ArGuiRootComponent, selector: "ar-gui-root" }], directives: [{ type: i27.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i28.SceneDirective, selector: "[scene]" }, { type: i29.DevelopmentDirective, selector: "[development]" }], pipes: { "localize": i30.LocalizePipe } });
221
+ Core3dComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: Core3dComponent, selector: "rp-core3d", host: { listeners: { "document:mouseup": "handledocumentMouseUp($event)", "document:mousemove": "handleDocumentMouseDown($event)" }, properties: { "class": "this.layerClass", "class.disable-mouse": "this._disableMouse" } }, viewQueries: [{ propertyName: "toolbarIconTopView", first: true, predicate: ["toolbarIconTopView"], descendants: true, static: true }, { propertyName: "toolbarIconWalkThrough", first: true, predicate: ["toolbarIconWalkThrough"], descendants: true, static: true }, { propertyName: "toolbarIconVR", first: true, predicate: ["toolbarIconVR"], descendants: true, static: true }], ngImport: i0, template: "<development-selected-object></development-selected-object>\r\n<div class=\"viewer\" scene *ngIf=\"!settingsService.settings.options.development\"></div>\r\n<div class=\"viewer\" scene development *ngIf=\"settingsService.settings.options.development\"></div>\r\n<div class=\"powered-by-wrapper\" *ngIf=\"show3DWaterMark\">\r\n <co-icon [iconData]=\"iconService.getIcon(icon.CitPoweredWhite)\"></co-icon>\r\n</div>\r\n<lightplan *ngIf=\"showLightplan\"></lightplan>\r\n<rp-scene-control *ngIf=\"showSceneControls\"></rp-scene-control>\r\n<ng-template #toolbarIconTopView>\r\n <rp-toolbar-icon\r\n matIcon=\"camera_topdown\"\r\n [disabled]=\"!hasRooms() || viewModeService.viewMode === viewModes.TopView || !threedOptionsAvailable\"\r\n (onClick)=\"setViewModeTopView()\"\r\n tooltip=\"{{iconName.TopView | localize}}\"\r\n [showLabel]=\"phoneSizeScreen\">\r\n </rp-toolbar-icon>\r\n</ng-template>\r\n\r\n<ng-template #toolbarIconWalkThrough>\r\n <rp-toolbar-icon\r\n matIcon=\"street_view\"\r\n [disabled]=\"!hasRooms() || viewModeService.viewMode === viewModes.WalkThrough || !threedOptionsAvailable\"\r\n (onClick)=\"setViewModeWalkThrough()\"\r\n tooltip=\"{{iconName.WalkThrough | localize}}\"\r\n [showLabel]=\"phoneSizeScreen\">\r\n </rp-toolbar-icon>\r\n</ng-template>\r\n\r\n<ng-template #toolbarIconVR>\r\n <rp-toolbar-icon\r\n *ngIf=\"xrService.vrSupported\"\r\n svgIcon=\"google-cardboard-orange\"\r\n [disabled]=\"!hasRooms() || viewModeService.viewMode === viewModes.VR\"\r\n (onClick)=\"setViewModeVr()\"\r\n tooltip=\"{{iconName.VR | localize}}\">\r\n </rp-toolbar-icon>\r\n</ng-template>\r\n\r\n<rp-zoom-controls\r\n [visible]=\"viewModeService.viewMode === viewModes.RoomPlan3D\"\r\n (onZoomIn)=\"cameraZoomIn($event)\"\r\n (onZoomReset)=\"cameraCenter($event)\"\r\n (onZoomOut)=\"cameraZoomOut($event)\"\r\n></rp-zoom-controls>\r\n\r\n<div id=\"controls\" class=\"controls-bottom\">\r\n\r\n <rp-render-controls\r\n *ngIf=\"viewModeService.viewMode === viewModes.RoomPlan3D ||\r\n viewModeService.viewMode === viewModes.WalkThrough ||\r\n viewModeService.viewMode === viewModes.TopView\">\r\n </rp-render-controls>\r\n <scene-options></scene-options>\r\n\r\n <div class=\"controls-directions desktop\" *ngIf=\"showCameraControlButtons\">\r\n <button class=\"control-left\" mat-raised-button (click)=\"cameraPanLeft($event)\" title=\"{{'LEFT' | localize}}\"\r\n #controls>\r\n <mat-icon class=\"homedecorator-material-icons\">arrow_back</mat-icon>\r\n </button>\r\n <button class=\"control-right\" mat-raised-button (click)=\"cameraPanRight($event)\" title=\"{{'RIGHT' | localize}}\">\r\n <mat-icon class=\"homedecorator-material-icons\">arrow_forward</mat-icon>\r\n </button>\r\n <button class=\"control-up\" mat-raised-button (click)=\"cameraPanUp($event)\" title=\"{{'UP' | localize}}\">\r\n <mat-icon class=\"homedecorator-material-icons\">arrow_upward</mat-icon>\r\n </button>\r\n <button class=\"control-down\" mat-raised-button (click)=\"cameraPanDown($event)\" title=\"{{'DOWN' | localize}}\">\r\n <mat-icon class=\"homedecorator-material-icons\">arrow_downward</mat-icon>\r\n </button>\r\n </div>\r\n</div>\r\n\r\n<div\r\n *ngIf=\"viewModeService.viewMode === viewModes.WalkThrough && showCameraControls\"\r\n class=\"full-screen\"\r\n>\r\n <rp-walkthrough-camera-controls></rp-walkthrough-camera-controls>\r\n</div>\r\n\r\n<ar-gui-root></ar-gui-root>\r\n", styles: [":host{display:block}:host.disable-mouse #controls{pointer-events:none}:host .powered-by-wrapper{pointer-events:none;position:absolute;bottom:0;left:50%;transform:translate(-50%);width:30%;height:30px;background:rgba(0,0,0,.1);border-radius:10px;padding:10px;opacity:.4}:host .powered-by-wrapper ::ng-deep co-icon{width:100%;height:100%}:host .powered-by-wrapper ::ng-deep co-icon svg{height:100%;width:100%}\n"], components: [{ type: i15.SelectedObjectComponent, selector: "development-selected-object" }, { type: i16.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { type: i17.LightplanComponent, selector: "lightplan" }, { type: i18.SceneControlComponent, selector: "rp-scene-control" }, { type: i19.ToolbarIconComponent, selector: "rp-toolbar-icon", inputs: ["matIcon", "svgIcon", "tooltip", "disabled", "showLabel"], outputs: ["onClick"] }, { type: i20.ZoomControlsComponent, selector: "rp-zoom-controls", inputs: ["visible"], outputs: ["onZoomIn", "onZoomReset", "onZoomOut"] }, { type: i21.RenderControlsComponent, selector: "rp-render-controls" }, { type: i22.SceneOptionsComponent, selector: "scene-options" }, { type: i23.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i24.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i25.WalkthroughCameraControlsComponent, selector: "rp-walkthrough-camera-controls", inputs: ["fov", "aspect", "focus"] }, { type: i26.ArGuiRootComponent, selector: "ar-gui-root" }], directives: [{ type: i27.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i28.SceneDirective, selector: "[scene]" }, { type: i29.DevelopmentDirective, selector: "[development]" }], pipes: { "localize": i30.LocalizePipe } });
222
222
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: Core3dComponent, decorators: [{
223
223
  type: Component,
224
224
  args: [{
@@ -249,4 +249,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
249
249
  type: HostListener,
250
250
  args: ['document:mousemove', ['$event']]
251
251
  }] } });
252
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZTNkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jbGllbnQvYXBwL3BsdWdpbnMvY29yZTNkL2NvcmUzZC9jb3JlM2QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NsaWVudC9hcHAvcGx1Z2lucy9jb3JlM2QvY29yZTNkL2NvcmUzZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQWtDLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUU5RyxPQUFPLEVBQUMsT0FBTyxFQUFFLE9BQU8sRUFBQyxNQUFNLE9BQU8sQ0FBQztBQUd2QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDdEQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQzNELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQWMzRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUUzRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sc0NBQXNDLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBUWpFLE1BQU0sT0FBTyxlQUFlO0lBc0MxQixZQUNTLGVBQWdDLEVBQ2hDLGVBQTZDLEVBQzdDLFNBQW9CLEVBQ25CLFVBQXFCLEVBQ3JCLGNBQThCLEVBQzlCLGVBQWtDLEVBQ2xDLHFCQUEyQyxFQUMzQyxjQUE2QixFQUM3QixpQkFBbUMsRUFDbkMsWUFBeUIsRUFDekIsT0FBa0IsRUFDbkIsV0FBMEMsRUFDekMsa0JBQTZDLEVBQzdDLHdCQUFpRCxDQUFDLDREQUE0RDs7UUFiL0csb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLG9CQUFlLEdBQWYsZUFBZSxDQUE4QjtRQUM3QyxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ25CLGVBQVUsR0FBVixVQUFVLENBQVc7UUFDckIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLG9CQUFlLEdBQWYsZUFBZSxDQUFtQjtRQUNsQywwQkFBcUIsR0FBckIscUJBQXFCLENBQXNCO1FBQzNDLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBQzdCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBa0I7UUFDbkMsaUJBQVksR0FBWixZQUFZLENBQWE7UUFDekIsWUFBTyxHQUFQLE9BQU8sQ0FBVztRQUNuQixnQkFBVyxHQUFYLFdBQVcsQ0FBK0I7UUFDekMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUEyQjtRQUM3Qyw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQXlCO1FBbkQzQyxTQUFJLEdBQW9CLFFBQVEsQ0FBQztRQUNqQyxjQUFTLEdBQW9CLFFBQVEsQ0FBQztRQUN0QyxhQUFRLEdBQW9CLFFBQVEsQ0FBQztRQVU5QyxlQUFVLEdBQUcsT0FBTyxDQUFDO1FBR3BCLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBZWhDLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBQy9CLDZCQUF3QixHQUFZLElBQUksQ0FBQztRQUN6QyxvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUNqQywyQkFBc0IsR0FBWSxLQUFLLENBQUM7UUFFdkMsVUFBSyxHQUFtQixFQUFFLENBQUM7UUFrQmpDLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFwQ00scUJBQXFCLENBQUMsS0FBVTtRQUNyQyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUM3QixDQUFDO0lBR00sdUJBQXVCLENBQUMsS0FBVTtRQUN2QyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxPQUFPLEtBQUssQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUErQkQsUUFBUTtRQUNOLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLDZCQUE2QixDQUFDLENBQUM7UUFDOUcsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUNwRyxJQUFJLENBQUMscUJBQXFCLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQTBCLEVBQUUsRUFBRTtZQUMzRSxJQUFJLGdCQUFnQixDQUFDLDZCQUE2QixJQUFJLE9BQU8sRUFBRTtnQkFDN0QsSUFBSSxDQUFDLGtCQUFrQixHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO2FBQ25GO1lBQ0QsSUFBSSxnQkFBZ0IsQ0FBQyxvQkFBb0IsSUFBSSxPQUFPLEVBQUU7Z0JBQ3BELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsb0JBQW9CLENBQUMsQ0FBQzthQUN6RTtZQUNELElBQUksZ0JBQWdCLENBQUMsb0JBQW9CLElBQUksT0FBTyxFQUFFO2dCQUNwRCxJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO2FBQ3JFO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsbUJBQW1CLEVBQUU7WUFDekQsUUFBUSxFQUFFLEtBQUs7WUFDZixRQUFRLEVBQUUsSUFBSSxDQUFDLGtCQUFrQjtZQUNqQyxRQUFRLEVBQUUsR0FBRztTQUNkLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsRUFBRTtZQUN6RCxRQUFRLEVBQUUsS0FBSztZQUNmLFFBQVEsRUFBRSxJQUFJLENBQUMsc0JBQXNCO1lBQ3JDLFFBQVEsRUFBRSxHQUFHO1NBQ2QsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLG1CQUFtQixFQUFFO1lBQ3pELFFBQVEsRUFBRSxLQUFLO1lBQ2YsUUFBUSxFQUFFLElBQUksQ0FBQyxhQUFhO1lBQzVCLFFBQVEsRUFBRSxHQUFHO1NBQ2QsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQ2IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDekUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsRUFDMUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUNwRyxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDckQsSUFBSSxNQUFNLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDO2dCQUM3RSxJQUFJLENBQUMsd0JBQXdCLEdBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUM7YUFDNUY7UUFDSCxDQUFDLENBQUMsRUFDRixJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsZUFBZSxFQUFFLENBQUMsSUFBYyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDN0csQ0FBQztJQUNKLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsU0FBUyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxTQUFTLENBQUM7UUFDeEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUM7SUFDakMsQ0FBQztJQUVNLFlBQVksQ0FBQyxDQUFTO1FBQzNCLElBQUksQ0FBQyxFQUFFO1lBQ0wsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQ3BCO1FBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzRyxDQUFDO0lBRU0sWUFBWSxDQUFDLENBQVM7UUFDM0IsSUFBSSxDQUFDLEVBQUU7WUFDTCxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDcEI7UUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFTSxhQUFhLENBQUMsQ0FBUztRQUM1QixJQUFJLENBQUMsRUFBRTtZQUNMLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUNwQjtRQUNELElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVNLGFBQWEsQ0FBQyxDQUFRO1FBQzNCLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFTSxjQUFjLENBQUMsQ0FBUTtRQUM1QixDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRU0sV0FBVyxDQUFDLENBQVE7UUFDekIsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVNLGFBQWEsQ0FBQyxDQUFRO1FBQzNCLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRU0sa0JBQWtCO1FBQ3ZCLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxFQUFFLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNILENBQUM7SUFHTSxhQUFhO1FBQ2xCLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3RILENBQUM7SUFFTSxzQkFBc0I7UUFDM0IsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1FBQ3BDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDekQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFFbkYsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNqRCxJQUFJLE1BQU0sRUFBRTtZQUNWLElBQUksQ0FBQyxlQUFlLENBQUMsMkJBQTJCLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztTQUN2RzthQUFNO1lBQ0wsTUFBTSxlQUFlLEdBQUcsSUFBSSxJQUFJLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ3hGLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxHQUFHLGVBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxPQUFPLEVBQUUsQ0FBQztTQUN2STtRQUVELElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFFSyxnQkFBZ0IsQ0FBQyxJQUFJOztZQUN6QixJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtnQkFDM0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUNsQztZQUNELElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDOUIsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUNiLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUN4QztZQUNELElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbkMsQ0FBQztLQUFBO0lBRU8sZ0JBQWdCO1FBQ3RCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTztZQUNMLElBQUksRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRTtTQUNwQyxDQUFDO0lBQ0osQ0FBQztJQUVNLGlCQUFpQixDQUFDLE1BQWU7UUFDdEMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQWlCLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVLLFdBQVcsQ0FBQyxJQUFJOztZQUNwQixPQUFPLElBQUksT0FBTyxDQUFPLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNqRCxDQUFDO0tBQUE7SUFFTyxnQkFBZ0IsQ0FBQyxJQUFjO1FBQ3JDLElBQUksSUFBSSxLQUFLLFFBQVEsQ0FBQyxVQUFVLEVBQUU7WUFDaEMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQztTQUNwQzthQUFNLElBQUksSUFBSSxLQUFLLFFBQVEsQ0FBQyxXQUFXLEVBQUU7WUFDeEMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLEtBQUssQ0FBQztTQUNyQztJQUNILENBQUM7OzZHQXJOVSxlQUFlO2lHQUFmLGVBQWUseW9CQy9CNUIsa3pHQTJFQTs0RkQ1Q2EsZUFBZTtrQkFOM0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsV0FBVztvQkFDckIsV0FBVyxFQUFFLHlCQUF5QjtvQkFDdEMsU0FBUyxFQUFFLENBQUMseUJBQXlCLENBQUMsQ0FBQTtxRUFDVztpQkFDbEQ7NmdCQU9RLGtCQUFrQjtzQkFEeEIsU0FBUzt1QkFBQyxvQkFBb0IsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7Z0JBR3hDLHNCQUFzQjtzQkFENUIsU0FBUzt1QkFBQyx3QkFBd0IsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7Z0JBRzVDLGFBQWE7c0JBRG5CLFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFJbkMsVUFBVTtzQkFEaEIsV0FBVzt1QkFBQyxPQUFPO2dCQUlaLGFBQWE7c0JBRHBCLFdBQVc7dUJBQUMscUJBQXFCO2dCQUkzQixxQkFBcUI7c0JBRDNCLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBTXJDLHVCQUF1QjtzQkFEN0IsWUFBWTt1QkFBQyxvQkFBb0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBPbkRlc3Ryb3ksIE9uSW5pdCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtWZWN0b3IyLCBWZWN0b3IzfSBmcm9tICd0aHJlZSc7XHJcbmltcG9ydCB7TWF0RGlhbG9nfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQge1BsdWdpbkludGVyZmFjZX0gZnJvbSAnLi4vLi4vcGx1Z2luLWludGVyZmFjZSc7XHJcbmltcG9ydCB7SWNvbkVudW19IGZyb20gJy4uLy4uLy4uL2NvcmUvZW51bS9pY29uLmVudW0nO1xyXG5pbXBvcnQge1ZpZXdNb2RlfSBmcm9tICcuLi8uLi8uLi9jb3JlL2VudW0vdmlldy1tb2RlLmVudW0nO1xyXG5pbXBvcnQge0ljb25OYW1lfSBmcm9tICcuLi8uLi8uLi9jb3JlL2VudW0vaWNvbi1uYW1lLmVudW0nO1xyXG5pbXBvcnQge1ZpZXdNb2RlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlL3ZpZXctbW9kZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtIb21lZGVjb3JhdG9yU2V0dGluZ3NTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2UvaG9tZWRlY29yYXRvci1zZXR0aW5ncy5zZXJ2aWNlJztcclxuaW1wb3J0IHtYclNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2UveHIuc2VydmljZSc7XHJcbmltcG9ydCB7VnJTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlL3ZyLnNlcnZpY2UnO1xyXG5pbXBvcnQge1ByZXNldHNTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2UvcHJlc2V0cy5zZXJ2aWNlJztcclxuaW1wb3J0IHtNZXNzYWdlQnVzU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlL21lc3NhZ2UtYnVzLnNlcnZpY2UnO1xyXG5pbXBvcnQge0NvbmZpZ3VyYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2UvY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtDYW1lcmFTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlL2NhbWVyYS5zZXJ2aWNlJztcclxuaW1wb3J0IHtGbG9vcnBsYW5TZXJ2aWNlfSBmcm9tICcuLi8uLi9yb29tLXBsYW5uZXIvY29tcG9uZW50cy9mbG9vcnBsYW5uZXIvc2VydmljZS9mbG9vcnBsYW4uc2VydmljZSc7XHJcbmltcG9ydCB7SXRlbVNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2UvaXRlbS5zZXJ2aWNlJztcclxuaW1wb3J0IHtIb21lZGVjb3JhdG9ySWNvbkNhY2hlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlL2hvbWVkZWNvcmF0b3ItaWNvbi1jYWNoZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtTY3JlZW5TaXplQW5hbHlzaXNTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvc2NyZWVuLXNpemUtYW5hbHlzaXMvc2NyZWVuLXNpemUtYW5hbHlzaXMuc2VydmljZSc7XHJcbmltcG9ydCB7V2FsbE1lYXN1cmVtZW50c1NlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2Uvd2FsbC1tZWFzdXJlbWVudHMuc2VydmljZSc7XHJcbmltcG9ydCB7Q29uZmlndXJhdGlvbktleX0gZnJvbSAnLi4vLi4vLi4vY29yZS9lbnVtL2NvbmZpZ3VyYXRpb24ta2V5LmVudW0nO1xyXG5pbXBvcnQge0NvbmZpZ3VyYXRpb25EYXRhfSBmcm9tICcuLi8uLi8uLi9jb3JlL2ludGVyZmFjZS9jb25maWd1cmF0aW9uLWRhdGEuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtNZXNzYWdlVHlwZX0gZnJvbSAnLi4vLi4vLi4vY29yZS9lbnVtL21lc3NhZ2UtdHlwZS5lbnVtJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAncnAtY29yZTNkJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29yZTNkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb3JlM2QuY29tcG9uZW50LnNjc3MnXS8qLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoKi9cclxufSlcclxuZXhwb3J0IGNsYXNzIENvcmUzZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBQbHVnaW5JbnRlcmZhY2Uge1xyXG4gIHB1YmxpYyByZWFkb25seSBpY29uOiB0eXBlb2YgSWNvbkVudW0gPSBJY29uRW51bTtcclxuICBwdWJsaWMgcmVhZG9ubHkgdmlld01vZGVzOiB0eXBlb2YgVmlld01vZGUgPSBWaWV3TW9kZTtcclxuICBwdWJsaWMgcmVhZG9ubHkgaWNvbk5hbWU6IHR5cGVvZiBJY29uTmFtZSA9IEljb25OYW1lO1xyXG5cclxuICBAVmlld0NoaWxkKCd0b29sYmFySWNvblRvcFZpZXcnLCB7c3RhdGljOiB0cnVlfSlcclxuICBwdWJsaWMgdG9vbGJhckljb25Ub3BWaWV3OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIEBWaWV3Q2hpbGQoJ3Rvb2xiYXJJY29uV2Fsa1Rocm91Z2gnLCB7c3RhdGljOiB0cnVlfSlcclxuICBwdWJsaWMgdG9vbGJhckljb25XYWxrVGhyb3VnaDogVGVtcGxhdGVSZWY8YW55PjtcclxuICBAVmlld0NoaWxkKCd0b29sYmFySWNvblZSJywge3N0YXRpYzogdHJ1ZX0pXHJcbiAgcHVibGljIHRvb2xiYXJJY29uVlI6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxyXG4gIHB1YmxpYyBsYXllckNsYXNzID0gJ2xheWVyJztcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5kaXNhYmxlLW1vdXNlJylcclxuICBwcml2YXRlIF9kaXNhYmxlTW91c2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6bW91c2V1cCcsIFsnJGV2ZW50J10pXHJcbiAgcHVibGljIGhhbmRsZWRvY3VtZW50TW91c2VVcChldmVudDogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLl9kaXNhYmxlTW91c2UgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50Om1vdXNlbW92ZScsIFsnJGV2ZW50J10pXHJcbiAgcHVibGljIGhhbmRsZURvY3VtZW50TW91c2VEb3duKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuX2Rpc2FibGVNb3VzZSA9IGV2ZW50LmJ1dHRvbnMgPT09IDE7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2hvd0NhbWVyYUNvbnRyb2xzOiBib29sZWFuO1xyXG4gIHB1YmxpYyBzaG93U2NlbmVDb250cm9sczogYm9vbGVhbjtcclxuICBwdWJsaWMgcGhvbmVTaXplU2NyZWVuOiBib29sZWFuO1xyXG4gIHB1YmxpYyBzaG93TGlnaHRwbGFuOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNob3dDYW1lcmFDb250cm9sQnV0dG9uczogYm9vbGVhbiA9IHRydWU7XHJcbiAgcHVibGljIHNob3czRFdhdGVyTWFyazogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyB0aHJlZWRPcHRpb25zQXZhaWxhYmxlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHByaXZhdGUgX3N1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHZpZXdNb2RlU2VydmljZTogVmlld01vZGVTZXJ2aWNlLFxyXG4gICAgcHVibGljIHNldHRpbmdzU2VydmljZTogSG9tZWRlY29yYXRvclNldHRpbmdzU2VydmljZSxcclxuICAgIHB1YmxpYyB4clNlcnZpY2U6IFhyU2VydmljZSxcclxuICAgIHByaXZhdGUgX3ZyU2VydmljZTogVnJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfcHJlc2V0U2VydmljZTogUHJlc2V0c1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9tZXNzYWdlU2VydmljZTogTWVzc2FnZUJ1c1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9jb25maWd1cmF0aW9uU2VydmljZTogQ29uZmlndXJhdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9jYW1lcmFTZXJ2aWNlOiBDYW1lcmFTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZmxvb3JwbGFuU2VydmljZTogRmxvb3JwbGFuU2VydmljZSxcclxuICAgIHByaXZhdGUgX2l0ZW1TZXJ2aWNlOiBJdGVtU2VydmljZSxcclxuICAgIHByaXZhdGUgX2RpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgcHVibGljIGljb25TZXJ2aWNlOiBIb21lZGVjb3JhdG9ySWNvbkNhY2hlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3NjcmVlblNpemVTZXJ2aWNlOiBTY3JlZW5TaXplQW5hbHlzaXNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfd2FsbE1lYXN1cmVtZW50c1NlcnZpY2U6IFdhbGxNZWFzdXJlbWVudHNTZXJ2aWNlIC8vIGRvIG5vdCByZW1vdmUsIHNlcnZpY2UgbmVlZHMgdG8gYmUgaW5qZWN0ZWQgYXQgbGVhc3Qgb25jZVxyXG4gICkge1xyXG4gICAgdGhpcy5fcHJlc2V0U2VydmljZS5yZWdpc3Rlcih0aGlzKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5zaG93Q2FtZXJhQ29udHJvbHMgPSB0aGlzLl9jb25maWd1cmF0aW9uU2VydmljZS5nZXRWYWx1ZShDb25maWd1cmF0aW9uS2V5LlNob3dXYWxrVGhyb3VnaENhbWVyYUNvbnRyb2xzKTtcclxuICAgIHRoaXMuc2hvd1NjZW5lQ29udHJvbHMgPSB0aGlzLl9jb25maWd1cmF0aW9uU2VydmljZS5nZXRWYWx1ZShDb25maWd1cmF0aW9uS2V5LlNob3dMaWdodGluZ0NvbnRyb2xzKTtcclxuICAgIHRoaXMuX2NvbmZpZ3VyYXRpb25TZXJ2aWNlLm9uQ2hhbmdlLnN1YnNjcmliZSgoY2hhbmdlZDogQ29uZmlndXJhdGlvbkRhdGEpID0+IHtcclxuICAgICAgaWYgKENvbmZpZ3VyYXRpb25LZXkuU2hvd1dhbGtUaHJvdWdoQ2FtZXJhQ29udHJvbHMgaW4gY2hhbmdlZCkge1xyXG4gICAgICAgIHRoaXMuc2hvd0NhbWVyYUNvbnRyb2xzID0gY2hhbmdlZFtDb25maWd1cmF0aW9uS2V5LlNob3dXYWxrVGhyb3VnaENhbWVyYUNvbnRyb2xzXTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoQ29uZmlndXJhdGlvbktleS5TaG93TGlnaHRpbmdDb250cm9scyBpbiBjaGFuZ2VkKSB7XHJcbiAgICAgICAgdGhpcy5zaG93U2NlbmVDb250cm9scyA9IGNoYW5nZWRbQ29uZmlndXJhdGlvbktleS5TaG93TGlnaHRpbmdDb250cm9sc107XHJcbiAgICAgIH1cclxuICAgICAgaWYgKENvbmZpZ3VyYXRpb25LZXkuU2hvd0xpZ2h0cGxhbnNEaWFsb2cgaW4gY2hhbmdlZCkge1xyXG4gICAgICAgIHRoaXMuc2hvd0xpZ2h0cGxhbiA9IGNoYW5nZWRbQ29uZmlndXJhdGlvbktleS5TaG93TGlnaHRwbGFuc0RpYWxvZ107XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuZW1pdChNZXNzYWdlVHlwZS5SZWdpc3RlclRvb2xiYXJJY29uLCB7XHJcbiAgICAgIHBvc2l0aW9uOiAndG9wJyxcclxuICAgICAgdGVtcGxhdGU6IHRoaXMudG9vbGJhckljb25Ub3BWaWV3LFxyXG4gICAgICBwcmlvcml0eTogNTAwXHJcbiAgICB9KTtcclxuICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmVtaXQoTWVzc2FnZVR5cGUuUmVnaXN0ZXJUb29sYmFySWNvbiwge1xyXG4gICAgICBwb3NpdGlvbjogJ3RvcCcsXHJcbiAgICAgIHRlbXBsYXRlOiB0aGlzLnRvb2xiYXJJY29uV2Fsa1Rocm91Z2gsXHJcbiAgICAgIHByaW9yaXR5OiA1MDBcclxuICAgIH0pO1xyXG4gICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuZW1pdChNZXNzYWdlVHlwZS5SZWdpc3RlclRvb2xiYXJJY29uLCB7XHJcbiAgICAgIHBvc2l0aW9uOiAndG9wJyxcclxuICAgICAgdGVtcGxhdGU6IHRoaXMudG9vbGJhckljb25WUixcclxuICAgICAgcHJpb3JpdHk6IDUwMFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9zdWJzLnB1c2goXHJcbiAgICAgIHRoaXMuX3ByZXNldFNlcnZpY2UuYmVmb3JlTG9hZC5zdWJzY3JpYmUoKGQpID0+IHRoaXMuYmVmb3JlUHJlc2V0TG9hZChkKSksXHJcbiAgICAgIHRoaXMuX2Zsb29ycGxhblNlcnZpY2Uucm9vbUxvYWRlZC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fYWZ0ZXJSb29tTG9hZGVkKCkpLFxyXG4gICAgICB0aGlzLl9zY3JlZW5TaXplU2VydmljZS5zY3JlZW5TaXplQ2hhbmdlZC5zdWJzY3JpYmUoaW5mbyA9PiB0aGlzLnBob25lU2l6ZVNjcmVlbiA9IGluZm8uaXNQaG9uZVNpemUpLFxyXG4gICAgICB0aGlzLnNldHRpbmdzU2VydmljZS5zZXR0aW5nc0xvYWRlZC5zdWJzY3JpYmUobG9hZGVkID0+IHtcclxuICAgICAgICBpZiAobG9hZGVkKSB7XHJcbiAgICAgICAgICB0aGlzLnNob3czRFdhdGVyTWFyayA9IHRoaXMuc2V0dGluZ3NTZXJ2aWNlLnNldHRpbmdzLm9wdGlvbnMuc2hvdzNEV2F0ZXJtYXJrO1xyXG4gICAgICAgICAgdGhpcy5zaG93Q2FtZXJhQ29udHJvbEJ1dHRvbnMgPSAhdGhpcy5zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3Mub3B0aW9ucy5jYW1lcmFQb3NpdGlvbkZpeGVkO1xyXG4gICAgICAgIH1cclxuICAgICAgfSksXHJcbiAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLnN1YnNjcmliZShNZXNzYWdlVHlwZS5WaWV3TW9kZUNoYW5nZWQsIChtb2RlOiBWaWV3TW9kZSkgPT4gdGhpcy5fdmlld01vZGVDaGFuZ2VkKG1vZGUpKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc3Vicy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcclxuICAgIHRoaXMudG9vbGJhckljb25Ub3BWaWV3ID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy50b29sYmFySWNvbldhbGtUaHJvdWdoID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy50b29sYmFySWNvblZSID0gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNhbWVyYUNlbnRlcihlPzogRXZlbnQpIHtcclxuICAgIGlmIChlKSB7XHJcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICAgIHRoaXMuX2NhbWVyYVNlcnZpY2UuY2VudGVyQ2FtZXJhKHRoaXMuX2Zsb29ycGxhblNlcnZpY2UuZ2V0Q2VudGVyKCksIHRoaXMuX2Zsb29ycGxhblNlcnZpY2UuZ2V0U2l6ZSgpLnopO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNhbWVyYVpvb21JbihlPzogRXZlbnQpIHtcclxuICAgIGlmIChlKSB7XHJcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICAgIHRoaXMuX2NhbWVyYVNlcnZpY2UuY2FtZXJhWm9vbUluKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2FtZXJhWm9vbU91dChlPzogRXZlbnQpIHtcclxuICAgIGlmIChlKSB7XHJcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICAgIHRoaXMuX2NhbWVyYVNlcnZpY2UuY2FtZXJhWm9vbU91dCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNhbWVyYVBhbkxlZnQoZTogRXZlbnQpIHtcclxuICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgIHRoaXMuX2NhbWVyYVNlcnZpY2UuY2FtZXJhTGVmdCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNhbWVyYVBhblJpZ2h0KGU6IEV2ZW50KSB7XHJcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB0aGlzLl9jYW1lcmFTZXJ2aWNlLmNhbWVyYVJpZ2h0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2FtZXJhUGFuVXAoZTogRXZlbnQpIHtcclxuICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgIHRoaXMuX2NhbWVyYVNlcnZpY2UuY2FtZXJhVXAoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjYW1lcmFQYW5Eb3duKGU6IEV2ZW50KSB7XHJcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB0aGlzLl9jYW1lcmFTZXJ2aWNlLmNhbWVyYURvd24oKTtcclxuICB9XHJcblxyXG4gIGhhc1Jvb21zKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Zsb29ycGxhblNlcnZpY2UuZ2V0Um9vbXMoKS5sZW5ndGggPiAwO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFZpZXdNb2RlVG9wVmlldygpOiB2b2lkIHtcclxuICAgIHRoaXMudmlld01vZGVTZXJ2aWNlLnNldFZpZXdNb2RlKHRoaXMuX2Zsb29ycGxhblNlcnZpY2UuZ2V0U2l6ZSgpLCB0aGlzLl9mbG9vcnBsYW5TZXJ2aWNlLmdldENlbnRlcigpLCBWaWV3TW9kZS5Ub3BWaWV3KTtcclxuICB9XHJcblxyXG5cclxuICBwdWJsaWMgc2V0Vmlld01vZGVWcigpOiB2b2lkIHtcclxuICAgIHRoaXMudmlld01vZGVTZXJ2aWNlLnNldFZpZXdNb2RlKHRoaXMuX2Zsb29ycGxhblNlcnZpY2UuZ2V0U2l6ZSgpLCB0aGlzLl9mbG9vcnBsYW5TZXJ2aWNlLmdldENlbnRlcigpLCBWaWV3TW9kZS5WUik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0Vmlld01vZGVXYWxrVGhyb3VnaCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IHBsYW4gPSB0aGlzLl9mbG9vcnBsYW5TZXJ2aWNlO1xyXG4gICAgY29uc3Qgcm9vbSA9IHBsYW4uZ2V0Um9vbXMoKSA/IHBsYW4uZ2V0Um9vbXMoKVswXSA6IG51bGw7XHJcbiAgICBjb25zdCBjZW50ZXIgPSByb29tID8gbmV3IFZlY3RvcjMocm9vbS5jZW50ZXIueCwgcm9vbS5jZW50ZXIueSkgOiBwbGFuLmdldENlbnRlcigpO1xyXG5cclxuICAgIGNvbnN0IGNhbWVyYSA9IHRoaXMuX2l0ZW1TZXJ2aWNlLmdldENhbWVyYUl0ZW0oKTtcclxuICAgIGlmIChjYW1lcmEpIHtcclxuICAgICAgdGhpcy52aWV3TW9kZVNlcnZpY2Uud2Fsa1Rocm91Z2hDYW1lcmFTdGFydFBvaW50ID0gW2NhbWVyYS5wb3NpdGlvbi5jbG9uZSgpLCBjYW1lcmEucm90YXRpb24uY2xvbmUoKV07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBpc1Jvb21IYXNDb3JuZXIgPSByb29tICYmIHJvb20uaW50ZXJpb3JDb3JuZXJzICYmIHJvb20uaW50ZXJpb3JDb3JuZXJzLmxlbmd0aCA+IDA7XHJcbiAgICAgIHRoaXMudmlld01vZGVTZXJ2aWNlLnZpZXdDb3JuZXIgPSBpc1Jvb21IYXNDb3JuZXIgPyBuZXcgVmVjdG9yMihyb29tLmludGVyaW9yQ29ybmVyc1swXS54LCByb29tLmludGVyaW9yQ29ybmVyc1swXS55KSA6IG5ldyBWZWN0b3IyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy52aWV3TW9kZVNlcnZpY2Uuc2V0Vmlld01vZGUocGxhbi5nZXRTaXplKCksIGNlbnRlciwgVmlld01vZGUuV2Fsa1Rocm91Z2gpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgYmVmb3JlUHJlc2V0TG9hZChkYXRhKSB7XHJcbiAgICBpZiAoZGF0YS5rZWVwQ2FtZXJhUG9zaXRpb24pIHtcclxuICAgICAgdGhpcy5fY2FtZXJhU2VydmljZS5sb2NrQ2FtZXJhKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9pdGVtU2VydmljZS5yZW1vdmVBbGwoKTtcclxuICAgIGlmIChkYXRhLnZpZXcpIHtcclxuICAgICAgdGhpcy5fY2FtZXJhU2VydmljZS5zZXRWaWV3KGRhdGEudmlldyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9jYW1lcmFTZXJ2aWNlLmxvY2tDYW1lcmEoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2FmdGVyUm9vbUxvYWRlZCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY2FtZXJhQ2VudGVyKCk7XHJcbiAgICB0aGlzLl9jYW1lcmFTZXJ2aWNlLnVubG9ja0NhbWVyYSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0T2JqZWN0cygpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHZpZXc6IHRoaXMuX2NhbWVyYVNlcnZpY2UuZ2V0VmlldygpXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNvcHlTY2VuZUluc3RhbmNlKHNhdmVBczogYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbikgPT4gcmVzb2x2ZSgpKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGxvYWRPYmplY3RzKGRhdGEpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KHJlc29sdmUgPT4gcmVzb2x2ZSgpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3ZpZXdNb2RlQ2hhbmdlZCh2aWV3OiBWaWV3TW9kZSk6IHZvaWQge1xyXG4gICAgaWYgKHZpZXcgPT09IFZpZXdNb2RlLlJvb21QbGFuM0QpIHtcclxuICAgICAgdGhpcy50aHJlZWRPcHRpb25zQXZhaWxhYmxlID0gdHJ1ZTtcclxuICAgIH0gZWxzZSBpZiAodmlldyA9PT0gVmlld01vZGUuRmxvb3JQbGFuMkQpIHtcclxuICAgICAgdGhpcy50aHJlZWRPcHRpb25zQXZhaWxhYmxlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkZXZlbG9wbWVudC1zZWxlY3RlZC1vYmplY3Q+PC9kZXZlbG9wbWVudC1zZWxlY3RlZC1vYmplY3Q+XHJcbjxkaXYgY2xhc3M9XCJ2aWV3ZXJcIiBzY2VuZSAqbmdJZj1cIiFzZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3Mub3B0aW9ucy5kZXZlbG9wbWVudFwiPjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwidmlld2VyXCIgc2NlbmUgZGV2ZWxvcG1lbnQgKm5nSWY9XCJzZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3Mub3B0aW9ucy5kZXZlbG9wbWVudFwiPjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwicG93ZXJlZC1ieS13cmFwcGVyXCIgKm5nSWY9XCJzaG93M0RXYXRlck1hcmtcIj5cclxuICA8Y28taWNvbiBbaWNvbkRhdGFdPVwiaWNvblNlcnZpY2UuZ2V0SWNvbihpY29uLkNpdFBvd2VyZWRXaGl0ZSlcIj48L2NvLWljb24+XHJcbjwvZGl2PlxyXG48bGlnaHRwbGFuICpuZ0lmPVwic2hvd0xpZ2h0cGxhblwiPjwvbGlnaHRwbGFuPlxyXG48cnAtc2NlbmUtY29udHJvbCAqbmdJZj1cInNob3dTY2VuZUNvbnRyb2xzXCI+PC9ycC1zY2VuZS1jb250cm9sPlxyXG48bmctdGVtcGxhdGUgI3Rvb2xiYXJJY29uVG9wVmlldz5cclxuICA8cnAtdG9vbGJhci1pY29uXHJcbiAgICBtYXRJY29uPVwiY2FtZXJhX3RvcGRvd25cIlxyXG4gICAgW2Rpc2FibGVkXT1cIiFoYXNSb29tcygpIHx8IHZpZXdNb2RlU2VydmljZS52aWV3TW9kZSA9PT0gdmlld01vZGVzLlRvcFZpZXcgfHwgIXRocmVlZE9wdGlvbnNBdmFpbGFibGVcIlxyXG4gICAgKG9uQ2xpY2spPVwic2V0Vmlld01vZGVUb3BWaWV3KClcIlxyXG4gICAgdG9vbHRpcD1cInt7aWNvbk5hbWUuVG9wVmlldyB8IGxvY2FsaXplfX1cIlxyXG4gICAgW3Nob3dMYWJlbF09XCJwaG9uZVNpemVTY3JlZW5cIj5cclxuICA8L3JwLXRvb2xiYXItaWNvbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjdG9vbGJhckljb25XYWxrVGhyb3VnaD5cclxuICA8cnAtdG9vbGJhci1pY29uXHJcbiAgICBtYXRJY29uPVwic3RyZWV0X3ZpZXdcIlxyXG4gICAgW2Rpc2FibGVkXT1cIiFoYXNSb29tcygpIHx8IHZpZXdNb2RlU2VydmljZS52aWV3TW9kZSA9PT0gdmlld01vZGVzLldhbGtUaHJvdWdoIHx8ICF0aHJlZWRPcHRpb25zQXZhaWxhYmxlXCJcclxuICAgIChvbkNsaWNrKT1cInNldFZpZXdNb2RlV2Fsa1Rocm91Z2goKVwiXHJcbiAgICB0b29sdGlwPVwie3tpY29uTmFtZS5XYWxrVGhyb3VnaCB8IGxvY2FsaXplfX1cIlxyXG4gICAgW3Nob3dMYWJlbF09XCJwaG9uZVNpemVTY3JlZW5cIj5cclxuICA8L3JwLXRvb2xiYXItaWNvbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjdG9vbGJhckljb25WUj5cclxuICA8cnAtdG9vbGJhci1pY29uXHJcbiAgICAqbmdJZj1cInhyU2VydmljZS52clN1cHBvcnRlZFwiXHJcbiAgICBzdmdJY29uPVwiZ29vZ2xlLWNhcmRib2FyZC1vcmFuZ2VcIlxyXG4gICAgW2Rpc2FibGVkXT1cIiFoYXNSb29tcygpIHx8IHZpZXdNb2RlU2VydmljZS52aWV3TW9kZSA9PT0gdmlld01vZGVzLlZSXCJcclxuICAgIChvbkNsaWNrKT1cInNldFZpZXdNb2RlVnIoKVwiXHJcbiAgICB0b29sdGlwPVwie3tpY29uTmFtZS5WUiB8IGxvY2FsaXplfX1cIj5cclxuICA8L3JwLXRvb2xiYXItaWNvbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxycC16b29tLWNvbnRyb2xzXHJcbiAgW3Zpc2libGVdPVwidmlld01vZGVTZXJ2aWNlLnZpZXdNb2RlID09PSB2aWV3TW9kZXMuUm9vbVBsYW4zRFwiXHJcbiAgKG9uWm9vbUluKT1cImNhbWVyYVpvb21JbigkZXZlbnQpXCJcclxuICAob25ab29tUmVzZXQpPVwiY2FtZXJhQ2VudGVyKCRldmVudClcIlxyXG4gIChvblpvb21PdXQpPVwiY2FtZXJhWm9vbU91dCgkZXZlbnQpXCJcclxuPjwvcnAtem9vbS1jb250cm9scz5cclxuXHJcbjxkaXYgaWQ9XCJjb250cm9sc1wiIGNsYXNzPVwiY29udHJvbHMtYm90dG9tXCI+XHJcblxyXG4gIDxycC1yZW5kZXItY29udHJvbHMgKm5nSWY9XCJ2aWV3TW9kZVNlcnZpY2Uudmlld01vZGUgPT09IHZpZXdNb2Rlcy5Sb29tUGxhbjNEXCI+PC9ycC1yZW5kZXItY29udHJvbHM+XHJcbiAgPHNjZW5lLW9wdGlvbnM+PC9zY2VuZS1vcHRpb25zPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiY29udHJvbHMtZGlyZWN0aW9ucyBkZXNrdG9wXCIgKm5nSWY9XCJzaG93Q2FtZXJhQ29udHJvbEJ1dHRvbnNcIj5cclxuICAgIDxidXR0b24gY2xhc3M9XCJjb250cm9sLWxlZnRcIiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiY2FtZXJhUGFuTGVmdCgkZXZlbnQpXCIgdGl0bGU9XCJ7eydMRUZUJyB8IGxvY2FsaXplfX1cIlxyXG4gICAgICAgICAgICAjY29udHJvbHM+XHJcbiAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImhvbWVkZWNvcmF0b3ItbWF0ZXJpYWwtaWNvbnNcIj5hcnJvd19iYWNrPC9tYXQtaWNvbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBjbGFzcz1cImNvbnRyb2wtcmlnaHRcIiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiY2FtZXJhUGFuUmlnaHQoJGV2ZW50KVwiIHRpdGxlPVwie3snUklHSFQnIHwgbG9jYWxpemV9fVwiPlxyXG4gICAgICA8bWF0LWljb24gY2xhc3M9XCJob21lZGVjb3JhdG9yLW1hdGVyaWFsLWljb25zXCI+YXJyb3dfZm9yd2FyZDwvbWF0LWljb24+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxidXR0b24gY2xhc3M9XCJjb250cm9sLXVwXCIgbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cImNhbWVyYVBhblVwKCRldmVudClcIiB0aXRsZT1cInt7J1VQJyB8IGxvY2FsaXplfX1cIj5cclxuICAgICAgPG1hdC1pY29uIGNsYXNzPVwiaG9tZWRlY29yYXRvci1tYXRlcmlhbC1pY29uc1wiPmFycm93X3Vwd2FyZDwvbWF0LWljb24+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxidXR0b24gY2xhc3M9XCJjb250cm9sLWRvd25cIiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiY2FtZXJhUGFuRG93bigkZXZlbnQpXCIgdGl0bGU9XCJ7eydET1dOJyB8IGxvY2FsaXplfX1cIj5cclxuICAgICAgPG1hdC1pY29uIGNsYXNzPVwiaG9tZWRlY29yYXRvci1tYXRlcmlhbC1pY29uc1wiPmFycm93X2Rvd253YXJkPC9tYXQtaWNvbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxkaXZcclxuICAqbmdJZj1cInZpZXdNb2RlU2VydmljZS52aWV3TW9kZSA9PT0gdmlld01vZGVzLldhbGtUaHJvdWdoICYmIHNob3dDYW1lcmFDb250cm9sc1wiXHJcbiAgY2xhc3M9XCJmdWxsLXNjcmVlblwiXHJcbj5cclxuICA8cnAtd2Fsa3Rocm91Z2gtY2FtZXJhLWNvbnRyb2xzPjwvcnAtd2Fsa3Rocm91Z2gtY2FtZXJhLWNvbnRyb2xzPlxyXG48L2Rpdj5cclxuXHJcbjxhci1ndWktcm9vdD48L2FyLWd1aS1yb290PlxyXG4iXX0=
252
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZTNkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jbGllbnQvYXBwL3BsdWdpbnMvY29yZTNkL2NvcmUzZC9jb3JlM2QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NsaWVudC9hcHAvcGx1Z2lucy9jb3JlM2QvY29yZTNkL2NvcmUzZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQWtDLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUU5RyxPQUFPLEVBQUMsT0FBTyxFQUFFLE9BQU8sRUFBQyxNQUFNLE9BQU8sQ0FBQztBQUd2QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDdEQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQzNELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQWMzRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUUzRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sc0NBQXNDLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBUWpFLE1BQU0sT0FBTyxlQUFlO0lBc0MxQixZQUNTLGVBQWdDLEVBQ2hDLGVBQTZDLEVBQzdDLFNBQW9CLEVBQ25CLFVBQXFCLEVBQ3JCLGNBQThCLEVBQzlCLGVBQWtDLEVBQ2xDLHFCQUEyQyxFQUMzQyxjQUE2QixFQUM3QixpQkFBbUMsRUFDbkMsWUFBeUIsRUFDekIsT0FBa0IsRUFDbkIsV0FBMEMsRUFDekMsa0JBQTZDLEVBQzdDLHdCQUFpRCxDQUFDLDREQUE0RDs7UUFiL0csb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLG9CQUFlLEdBQWYsZUFBZSxDQUE4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ZUFBZSxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFJbkMsVUFBVTtzQkFEaEIsV0FBVzt1QkFBQyxPQUFPO2dCQUlaLGFBQWE7c0JBRHBCLFdBQVc7dUJBQUMscUJBQXFCO2dCQUkzQixxQkFBcUI7c0JBRDNCLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBTXJDLHVCQUF1QjtzQkFEN0IsWUFBWTt1QkFBQyxvQkFBb0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBPbkRlc3Ryb3ksIE9uSW5pdCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtWZWN0b3IyLCBWZWN0b3IzfSBmcm9tICd0aHJlZSc7XHJcbmltcG9ydCB7TWF0RGlhbG9nfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQge1BsdWdpbkludGVyZmFjZX0gZnJvbSAnLi4vLi4vcGx1Z2luLWludGVyZmFjZSc7XHJcbmltcG9ydCB7SWNvbkVudW19IGZyb20gJy4uLy4uLy4uL2NvcmUvZW51bS9pY29uLmVudW0nO1xyXG5pbXBvcnQge1ZpZXdNb2RlfSBmcm9tICcuLi8uLi8uLi9jb3JlL2VudW0vdmlldy1tb2RlLmVudW0nO1xyXG5pbXBvcnQge0ljb25OYW1lfSBmcm9tICcuLi8uLi8uLi9jb3JlL2VudW0vaWNvbi1uYW1lLmVudW0nO1xyXG5pbXBvcnQge1ZpZXdNb2RlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlL3ZpZXctbW9kZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtIb21lZGVjb3JhdG9yU2V0dGluZ3NTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2UvaG9tZWRlY29yYXRvci1zZXR0aW5ncy5zZXJ2aWNlJztcclxuaW1wb3J0IHtYclNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2UveHIuc2VydmljZSc7XHJcbmltcG9ydCB7VnJTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlL3ZyLnNlcnZpY2UnO1xyXG5pbXBvcnQge1ByZXNldHNTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2UvcHJlc2V0cy5zZXJ2aWNlJztcclxuaW1wb3J0IHtNZXNzYWdlQnVzU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlL21lc3NhZ2UtYnVzLnNlcnZpY2UnO1xyXG5pbXBvcnQge0NvbmZpZ3VyYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2UvY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtDYW1lcmFTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlL2NhbWVyYS5zZXJ2aWNlJztcclxuaW1wb3J0IHtGbG9vcnBsYW5TZXJ2aWNlfSBmcm9tICcuLi8uLi9yb29tLXBsYW5uZXIvY29tcG9uZW50cy9mbG9vcnBsYW5uZXIvc2VydmljZS9mbG9vcnBsYW4uc2VydmljZSc7XHJcbmltcG9ydCB7SXRlbVNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2UvaXRlbS5zZXJ2aWNlJztcclxuaW1wb3J0IHtIb21lZGVjb3JhdG9ySWNvbkNhY2hlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlL2hvbWVkZWNvcmF0b3ItaWNvbi1jYWNoZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtTY3JlZW5TaXplQW5hbHlzaXNTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvc2NyZWVuLXNpemUtYW5hbHlzaXMvc2NyZWVuLXNpemUtYW5hbHlzaXMuc2VydmljZSc7XHJcbmltcG9ydCB7V2FsbE1lYXN1cmVtZW50c1NlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2Uvd2FsbC1tZWFzdXJlbWVudHMuc2VydmljZSc7XHJcbmltcG9ydCB7Q29uZmlndXJhdGlvbktleX0gZnJvbSAnLi4vLi4vLi4vY29yZS9lbnVtL2NvbmZpZ3VyYXRpb24ta2V5LmVudW0nO1xyXG5pbXBvcnQge0NvbmZpZ3VyYXRpb25EYXRhfSBmcm9tICcuLi8uLi8uLi9jb3JlL2ludGVyZmFjZS9jb25maWd1cmF0aW9uLWRhdGEuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtNZXNzYWdlVHlwZX0gZnJvbSAnLi4vLi4vLi4vY29yZS9lbnVtL21lc3NhZ2UtdHlwZS5lbnVtJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAncnAtY29yZTNkJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29yZTNkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb3JlM2QuY29tcG9uZW50LnNjc3MnXS8qLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoKi9cclxufSlcclxuZXhwb3J0IGNsYXNzIENvcmUzZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBQbHVnaW5JbnRlcmZhY2Uge1xyXG4gIHB1YmxpYyByZWFkb25seSBpY29uOiB0eXBlb2YgSWNvbkVudW0gPSBJY29uRW51bTtcclxuICBwdWJsaWMgcmVhZG9ubHkgdmlld01vZGVzOiB0eXBlb2YgVmlld01vZGUgPSBWaWV3TW9kZTtcclxuICBwdWJsaWMgcmVhZG9ubHkgaWNvbk5hbWU6IHR5cGVvZiBJY29uTmFtZSA9IEljb25OYW1lO1xyXG5cclxuICBAVmlld0NoaWxkKCd0b29sYmFySWNvblRvcFZpZXcnLCB7c3RhdGljOiB0cnVlfSlcclxuICBwdWJsaWMgdG9vbGJhckljb25Ub3BWaWV3OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIEBWaWV3Q2hpbGQoJ3Rvb2xiYXJJY29uV2Fsa1Rocm91Z2gnLCB7c3RhdGljOiB0cnVlfSlcclxuICBwdWJsaWMgdG9vbGJhckljb25XYWxrVGhyb3VnaDogVGVtcGxhdGVSZWY8YW55PjtcclxuICBAVmlld0NoaWxkKCd0b29sYmFySWNvblZSJywge3N0YXRpYzogdHJ1ZX0pXHJcbiAgcHVibGljIHRvb2xiYXJJY29uVlI6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxyXG4gIHB1YmxpYyBsYXllckNsYXNzID0gJ2xheWVyJztcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5kaXNhYmxlLW1vdXNlJylcclxuICBwcml2YXRlIF9kaXNhYmxlTW91c2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6bW91c2V1cCcsIFsnJGV2ZW50J10pXHJcbiAgcHVibGljIGhhbmRsZWRvY3VtZW50TW91c2VVcChldmVudDogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLl9kaXNhYmxlTW91c2UgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50Om1vdXNlbW92ZScsIFsnJGV2ZW50J10pXHJcbiAgcHVibGljIGhhbmRsZURvY3VtZW50TW91c2VEb3duKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuX2Rpc2FibGVNb3VzZSA9IGV2ZW50LmJ1dHRvbnMgPT09IDE7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2hvd0NhbWVyYUNvbnRyb2xzOiBib29sZWFuO1xyXG4gIHB1YmxpYyBzaG93U2NlbmVDb250cm9sczogYm9vbGVhbjtcclxuICBwdWJsaWMgcGhvbmVTaXplU2NyZWVuOiBib29sZWFuO1xyXG4gIHB1YmxpYyBzaG93TGlnaHRwbGFuOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNob3dDYW1lcmFDb250cm9sQnV0dG9uczogYm9vbGVhbiA9IHRydWU7XHJcbiAgcHVibGljIHNob3czRFdhdGVyTWFyazogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyB0aHJlZWRPcHRpb25zQXZhaWxhYmxlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHByaXZhdGUgX3N1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHZpZXdNb2RlU2VydmljZTogVmlld01vZGVTZXJ2aWNlLFxyXG4gICAgcHVibGljIHNldHRpbmdzU2VydmljZTogSG9tZWRlY29yYXRvclNldHRpbmdzU2VydmljZSxcclxuICAgIHB1YmxpYyB4clNlcnZpY2U6IFhyU2VydmljZSxcclxuICAgIHByaXZhdGUgX3ZyU2VydmljZTogVnJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfcHJlc2V0U2VydmljZTogUHJlc2V0c1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9tZXNzYWdlU2VydmljZTogTWVzc2FnZUJ1c1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9jb25maWd1cmF0aW9uU2VydmljZTogQ29uZmlndXJhdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9jYW1lcmFTZXJ2aWNlOiBDYW1lcmFTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZmxvb3JwbGFuU2VydmljZTogRmxvb3JwbGFuU2VydmljZSxcclxuICAgIHByaXZhdGUgX2l0ZW1TZXJ2aWNlOiBJdGVtU2VydmljZSxcclxuICAgIHByaXZhdGUgX2RpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgcHVibGljIGljb25TZXJ2aWNlOiBIb21lZGVjb3JhdG9ySWNvbkNhY2hlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3NjcmVlblNpemVTZXJ2aWNlOiBTY3JlZW5TaXplQW5hbHlzaXNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfd2FsbE1lYXN1cmVtZW50c1NlcnZpY2U6IFdhbGxNZWFzdXJlbWVudHNTZXJ2aWNlIC8vIGRvIG5vdCByZW1vdmUsIHNlcnZpY2UgbmVlZHMgdG8gYmUgaW5qZWN0ZWQgYXQgbGVhc3Qgb25jZVxyXG4gICkge1xyXG4gICAgdGhpcy5fcHJlc2V0U2VydmljZS5yZWdpc3Rlcih0aGlzKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5zaG93Q2FtZXJhQ29udHJvbHMgPSB0aGlzLl9jb25maWd1cmF0aW9uU2VydmljZS5nZXRWYWx1ZShDb25maWd1cmF0aW9uS2V5LlNob3dXYWxrVGhyb3VnaENhbWVyYUNvbnRyb2xzKTtcclxuICAgIHRoaXMuc2hvd1NjZW5lQ29udHJvbHMgPSB0aGlzLl9jb25maWd1cmF0aW9uU2VydmljZS5nZXRWYWx1ZShDb25maWd1cmF0aW9uS2V5LlNob3dMaWdodGluZ0NvbnRyb2xzKTtcclxuICAgIHRoaXMuX2NvbmZpZ3VyYXRpb25TZXJ2aWNlLm9uQ2hhbmdlLnN1YnNjcmliZSgoY2hhbmdlZDogQ29uZmlndXJhdGlvbkRhdGEpID0+IHtcclxuICAgICAgaWYgKENvbmZpZ3VyYXRpb25LZXkuU2hvd1dhbGtUaHJvdWdoQ2FtZXJhQ29udHJvbHMgaW4gY2hhbmdlZCkge1xyXG4gICAgICAgIHRoaXMuc2hvd0NhbWVyYUNvbnRyb2xzID0gY2hhbmdlZFtDb25maWd1cmF0aW9uS2V5LlNob3dXYWxrVGhyb3VnaENhbWVyYUNvbnRyb2xzXTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoQ29uZmlndXJhdGlvbktleS5TaG93TGlnaHRpbmdDb250cm9scyBpbiBjaGFuZ2VkKSB7XHJcbiAgICAgICAgdGhpcy5zaG93U2NlbmVDb250cm9scyA9IGNoYW5nZWRbQ29uZmlndXJhdGlvbktleS5TaG93TGlnaHRpbmdDb250cm9sc107XHJcbiAgICAgIH1cclxuICAgICAgaWYgKENvbmZpZ3VyYXRpb25LZXkuU2hvd0xpZ2h0cGxhbnNEaWFsb2cgaW4gY2hhbmdlZCkge1xyXG4gICAgICAgIHRoaXMuc2hvd0xpZ2h0cGxhbiA9IGNoYW5nZWRbQ29uZmlndXJhdGlvbktleS5TaG93TGlnaHRwbGFuc0RpYWxvZ107XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuZW1pdChNZXNzYWdlVHlwZS5SZWdpc3RlclRvb2xiYXJJY29uLCB7XHJcbiAgICAgIHBvc2l0aW9uOiAndG9wJyxcclxuICAgICAgdGVtcGxhdGU6IHRoaXMudG9vbGJhckljb25Ub3BWaWV3LFxyXG4gICAgICBwcmlvcml0eTogNTAwXHJcbiAgICB9KTtcclxuICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmVtaXQoTWVzc2FnZVR5cGUuUmVnaXN0ZXJUb29sYmFySWNvbiwge1xyXG4gICAgICBwb3NpdGlvbjogJ3RvcCcsXHJcbiAgICAgIHRlbXBsYXRlOiB0aGlzLnRvb2xiYXJJY29uV2Fsa1Rocm91Z2gsXHJcbiAgICAgIHByaW9yaXR5OiA1MDBcclxuICAgIH0pO1xyXG4gICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuZW1pdChNZXNzYWdlVHlwZS5SZWdpc3RlclRvb2xiYXJJY29uLCB7XHJcbiAgICAgIHBvc2l0aW9uOiAndG9wJyxcclxuICAgICAgdGVtcGxhdGU6IHRoaXMudG9vbGJhckljb25WUixcclxuICAgICAgcHJpb3JpdHk6IDUwMFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9zdWJzLnB1c2goXHJcbiAgICAgIHRoaXMuX3ByZXNldFNlcnZpY2UuYmVmb3JlTG9hZC5zdWJzY3JpYmUoKGQpID0+IHRoaXMuYmVmb3JlUHJlc2V0TG9hZChkKSksXHJcbiAgICAgIHRoaXMuX2Zsb29ycGxhblNlcnZpY2Uucm9vbUxvYWRlZC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fYWZ0ZXJSb29tTG9hZGVkKCkpLFxyXG4gICAgICB0aGlzLl9zY3JlZW5TaXplU2VydmljZS5zY3JlZW5TaXplQ2hhbmdlZC5zdWJzY3JpYmUoaW5mbyA9PiB0aGlzLnBob25lU2l6ZVNjcmVlbiA9IGluZm8uaXNQaG9uZVNpemUpLFxyXG4gICAgICB0aGlzLnNldHRpbmdzU2VydmljZS5zZXR0aW5nc0xvYWRlZC5zdWJzY3JpYmUobG9hZGVkID0+IHtcclxuICAgICAgICBpZiAobG9hZGVkKSB7XHJcbiAgICAgICAgICB0aGlzLnNob3czRFdhdGVyTWFyayA9IHRoaXMuc2V0dGluZ3NTZXJ2aWNlLnNldHRpbmdzLm9wdGlvbnMuc2hvdzNEV2F0ZXJtYXJrO1xyXG4gICAgICAgICAgdGhpcy5zaG93Q2FtZXJhQ29udHJvbEJ1dHRvbnMgPSAhdGhpcy5zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3Mub3B0aW9ucy5jYW1lcmFQb3NpdGlvbkZpeGVkO1xyXG4gICAgICAgIH1cclxuICAgICAgfSksXHJcbiAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLnN1YnNjcmliZShNZXNzYWdlVHlwZS5WaWV3TW9kZUNoYW5nZWQsIChtb2RlOiBWaWV3TW9kZSkgPT4gdGhpcy5fdmlld01vZGVDaGFuZ2VkKG1vZGUpKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc3Vicy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcclxuICAgIHRoaXMudG9vbGJhckljb25Ub3BWaWV3ID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy50b29sYmFySWNvbldhbGtUaHJvdWdoID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy50b29sYmFySWNvblZSID0gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNhbWVyYUNlbnRlcihlPzogRXZlbnQpIHtcclxuICAgIGlmIChlKSB7XHJcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICAgIHRoaXMuX2NhbWVyYVNlcnZpY2UuY2VudGVyQ2FtZXJhKHRoaXMuX2Zsb29ycGxhblNlcnZpY2UuZ2V0Q2VudGVyKCksIHRoaXMuX2Zsb29ycGxhblNlcnZpY2UuZ2V0U2l6ZSgpLnopO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNhbWVyYVpvb21JbihlPzogRXZlbnQpIHtcclxuICAgIGlmIChlKSB7XHJcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICAgIHRoaXMuX2NhbWVyYVNlcnZpY2UuY2FtZXJhWm9vbUluKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2FtZXJhWm9vbU91dChlPzogRXZlbnQpIHtcclxuICAgIGlmIChlKSB7XHJcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICAgIHRoaXMuX2NhbWVyYVNlcnZpY2UuY2FtZXJhWm9vbU91dCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNhbWVyYVBhbkxlZnQoZTogRXZlbnQpIHtcclxuICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgIHRoaXMuX2NhbWVyYVNlcnZpY2UuY2FtZXJhTGVmdCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNhbWVyYVBhblJpZ2h0KGU6IEV2ZW50KSB7XHJcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB0aGlzLl9jYW1lcmFTZXJ2aWNlLmNhbWVyYVJpZ2h0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2FtZXJhUGFuVXAoZTogRXZlbnQpIHtcclxuICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgIHRoaXMuX2NhbWVyYVNlcnZpY2UuY2FtZXJhVXAoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjYW1lcmFQYW5Eb3duKGU6IEV2ZW50KSB7XHJcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB0aGlzLl9jYW1lcmFTZXJ2aWNlLmNhbWVyYURvd24oKTtcclxuICB9XHJcblxyXG4gIGhhc1Jvb21zKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Zsb29ycGxhblNlcnZpY2UuZ2V0Um9vbXMoKS5sZW5ndGggPiAwO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFZpZXdNb2RlVG9wVmlldygpOiB2b2lkIHtcclxuICAgIHRoaXMudmlld01vZGVTZXJ2aWNlLnNldFZpZXdNb2RlKHRoaXMuX2Zsb29ycGxhblNlcnZpY2UuZ2V0U2l6ZSgpLCB0aGlzLl9mbG9vcnBsYW5TZXJ2aWNlLmdldENlbnRlcigpLCBWaWV3TW9kZS5Ub3BWaWV3KTtcclxuICB9XHJcblxyXG5cclxuICBwdWJsaWMgc2V0Vmlld01vZGVWcigpOiB2b2lkIHtcclxuICAgIHRoaXMudmlld01vZGVTZXJ2aWNlLnNldFZpZXdNb2RlKHRoaXMuX2Zsb29ycGxhblNlcnZpY2UuZ2V0U2l6ZSgpLCB0aGlzLl9mbG9vcnBsYW5TZXJ2aWNlLmdldENlbnRlcigpLCBWaWV3TW9kZS5WUik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0Vmlld01vZGVXYWxrVGhyb3VnaCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IHBsYW4gPSB0aGlzLl9mbG9vcnBsYW5TZXJ2aWNlO1xyXG4gICAgY29uc3Qgcm9vbSA9IHBsYW4uZ2V0Um9vbXMoKSA/IHBsYW4uZ2V0Um9vbXMoKVswXSA6IG51bGw7XHJcbiAgICBjb25zdCBjZW50ZXIgPSByb29tID8gbmV3IFZlY3RvcjMocm9vbS5jZW50ZXIueCwgcm9vbS5jZW50ZXIueSkgOiBwbGFuLmdldENlbnRlcigpO1xyXG5cclxuICAgIGNvbnN0IGNhbWVyYSA9IHRoaXMuX2l0ZW1TZXJ2aWNlLmdldENhbWVyYUl0ZW0oKTtcclxuICAgIGlmIChjYW1lcmEpIHtcclxuICAgICAgdGhpcy52aWV3TW9kZVNlcnZpY2Uud2Fsa1Rocm91Z2hDYW1lcmFTdGFydFBvaW50ID0gW2NhbWVyYS5wb3NpdGlvbi5jbG9uZSgpLCBjYW1lcmEucm90YXRpb24uY2xvbmUoKV07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBpc1Jvb21IYXNDb3JuZXIgPSByb29tICYmIHJvb20uaW50ZXJpb3JDb3JuZXJzICYmIHJvb20uaW50ZXJpb3JDb3JuZXJzLmxlbmd0aCA+IDA7XHJcbiAgICAgIHRoaXMudmlld01vZGVTZXJ2aWNlLnZpZXdDb3JuZXIgPSBpc1Jvb21IYXNDb3JuZXIgPyBuZXcgVmVjdG9yMihyb29tLmludGVyaW9yQ29ybmVyc1swXS54LCByb29tLmludGVyaW9yQ29ybmVyc1swXS55KSA6IG5ldyBWZWN0b3IyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy52aWV3TW9kZVNlcnZpY2Uuc2V0Vmlld01vZGUocGxhbi5nZXRTaXplKCksIGNlbnRlciwgVmlld01vZGUuV2Fsa1Rocm91Z2gpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgYmVmb3JlUHJlc2V0TG9hZChkYXRhKSB7XHJcbiAgICBpZiAoZGF0YS5rZWVwQ2FtZXJhUG9zaXRpb24pIHtcclxuICAgICAgdGhpcy5fY2FtZXJhU2VydmljZS5sb2NrQ2FtZXJhKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9pdGVtU2VydmljZS5yZW1vdmVBbGwoKTtcclxuICAgIGlmIChkYXRhLnZpZXcpIHtcclxuICAgICAgdGhpcy5fY2FtZXJhU2VydmljZS5zZXRWaWV3KGRhdGEudmlldyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9jYW1lcmFTZXJ2aWNlLmxvY2tDYW1lcmEoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2FmdGVyUm9vbUxvYWRlZCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY2FtZXJhQ2VudGVyKCk7XHJcbiAgICB0aGlzLl9jYW1lcmFTZXJ2aWNlLnVubG9ja0NhbWVyYSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0T2JqZWN0cygpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHZpZXc6IHRoaXMuX2NhbWVyYVNlcnZpY2UuZ2V0VmlldygpXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNvcHlTY2VuZUluc3RhbmNlKHNhdmVBczogYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbikgPT4gcmVzb2x2ZSgpKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGxvYWRPYmplY3RzKGRhdGEpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KHJlc29sdmUgPT4gcmVzb2x2ZSgpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3ZpZXdNb2RlQ2hhbmdlZCh2aWV3OiBWaWV3TW9kZSk6IHZvaWQge1xyXG4gICAgaWYgKHZpZXcgPT09IFZpZXdNb2RlLlJvb21QbGFuM0QpIHtcclxuICAgICAgdGhpcy50aHJlZWRPcHRpb25zQXZhaWxhYmxlID0gdHJ1ZTtcclxuICAgIH0gZWxzZSBpZiAodmlldyA9PT0gVmlld01vZGUuRmxvb3JQbGFuMkQpIHtcclxuICAgICAgdGhpcy50aHJlZWRPcHRpb25zQXZhaWxhYmxlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkZXZlbG9wbWVudC1zZWxlY3RlZC1vYmplY3Q+PC9kZXZlbG9wbWVudC1zZWxlY3RlZC1vYmplY3Q+XHJcbjxkaXYgY2xhc3M9XCJ2aWV3ZXJcIiBzY2VuZSAqbmdJZj1cIiFzZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3Mub3B0aW9ucy5kZXZlbG9wbWVudFwiPjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwidmlld2VyXCIgc2NlbmUgZGV2ZWxvcG1lbnQgKm5nSWY9XCJzZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3Mub3B0aW9ucy5kZXZlbG9wbWVudFwiPjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwicG93ZXJlZC1ieS13cmFwcGVyXCIgKm5nSWY9XCJzaG93M0RXYXRlck1hcmtcIj5cclxuICA8Y28taWNvbiBbaWNvbkRhdGFdPVwiaWNvblNlcnZpY2UuZ2V0SWNvbihpY29uLkNpdFBvd2VyZWRXaGl0ZSlcIj48L2NvLWljb24+XHJcbjwvZGl2PlxyXG48bGlnaHRwbGFuICpuZ0lmPVwic2hvd0xpZ2h0cGxhblwiPjwvbGlnaHRwbGFuPlxyXG48cnAtc2NlbmUtY29udHJvbCAqbmdJZj1cInNob3dTY2VuZUNvbnRyb2xzXCI+PC9ycC1zY2VuZS1jb250cm9sPlxyXG48bmctdGVtcGxhdGUgI3Rvb2xiYXJJY29uVG9wVmlldz5cclxuICA8cnAtdG9vbGJhci1pY29uXHJcbiAgICBtYXRJY29uPVwiY2FtZXJhX3RvcGRvd25cIlxyXG4gICAgW2Rpc2FibGVkXT1cIiFoYXNSb29tcygpIHx8IHZpZXdNb2RlU2VydmljZS52aWV3TW9kZSA9PT0gdmlld01vZGVzLlRvcFZpZXcgfHwgIXRocmVlZE9wdGlvbnNBdmFpbGFibGVcIlxyXG4gICAgKG9uQ2xpY2spPVwic2V0Vmlld01vZGVUb3BWaWV3KClcIlxyXG4gICAgdG9vbHRpcD1cInt7aWNvbk5hbWUuVG9wVmlldyB8IGxvY2FsaXplfX1cIlxyXG4gICAgW3Nob3dMYWJlbF09XCJwaG9uZVNpemVTY3JlZW5cIj5cclxuICA8L3JwLXRvb2xiYXItaWNvbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjdG9vbGJhckljb25XYWxrVGhyb3VnaD5cclxuICA8cnAtdG9vbGJhci1pY29uXHJcbiAgICBtYXRJY29uPVwic3RyZWV0X3ZpZXdcIlxyXG4gICAgW2Rpc2FibGVkXT1cIiFoYXNSb29tcygpIHx8IHZpZXdNb2RlU2VydmljZS52aWV3TW9kZSA9PT0gdmlld01vZGVzLldhbGtUaHJvdWdoIHx8ICF0aHJlZWRPcHRpb25zQXZhaWxhYmxlXCJcclxuICAgIChvbkNsaWNrKT1cInNldFZpZXdNb2RlV2Fsa1Rocm91Z2goKVwiXHJcbiAgICB0b29sdGlwPVwie3tpY29uTmFtZS5XYWxrVGhyb3VnaCB8IGxvY2FsaXplfX1cIlxyXG4gICAgW3Nob3dMYWJlbF09XCJwaG9uZVNpemVTY3JlZW5cIj5cclxuICA8L3JwLXRvb2xiYXItaWNvbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjdG9vbGJhckljb25WUj5cclxuICA8cnAtdG9vbGJhci1pY29uXHJcbiAgICAqbmdJZj1cInhyU2VydmljZS52clN1cHBvcnRlZFwiXHJcbiAgICBzdmdJY29uPVwiZ29vZ2xlLWNhcmRib2FyZC1vcmFuZ2VcIlxyXG4gICAgW2Rpc2FibGVkXT1cIiFoYXNSb29tcygpIHx8IHZpZXdNb2RlU2VydmljZS52aWV3TW9kZSA9PT0gdmlld01vZGVzLlZSXCJcclxuICAgIChvbkNsaWNrKT1cInNldFZpZXdNb2RlVnIoKVwiXHJcbiAgICB0b29sdGlwPVwie3tpY29uTmFtZS5WUiB8IGxvY2FsaXplfX1cIj5cclxuICA8L3JwLXRvb2xiYXItaWNvbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxycC16b29tLWNvbnRyb2xzXHJcbiAgW3Zpc2libGVdPVwidmlld01vZGVTZXJ2aWNlLnZpZXdNb2RlID09PSB2aWV3TW9kZXMuUm9vbVBsYW4zRFwiXHJcbiAgKG9uWm9vbUluKT1cImNhbWVyYVpvb21JbigkZXZlbnQpXCJcclxuICAob25ab29tUmVzZXQpPVwiY2FtZXJhQ2VudGVyKCRldmVudClcIlxyXG4gIChvblpvb21PdXQpPVwiY2FtZXJhWm9vbU91dCgkZXZlbnQpXCJcclxuPjwvcnAtem9vbS1jb250cm9scz5cclxuXHJcbjxkaXYgaWQ9XCJjb250cm9sc1wiIGNsYXNzPVwiY29udHJvbHMtYm90dG9tXCI+XHJcblxyXG4gIDxycC1yZW5kZXItY29udHJvbHNcclxuICAgICAgKm5nSWY9XCJ2aWV3TW9kZVNlcnZpY2Uudmlld01vZGUgPT09IHZpZXdNb2Rlcy5Sb29tUGxhbjNEIHx8XHJcbiAgICAgIHZpZXdNb2RlU2VydmljZS52aWV3TW9kZSA9PT0gdmlld01vZGVzLldhbGtUaHJvdWdoIHx8XHJcbiAgICAgIHZpZXdNb2RlU2VydmljZS52aWV3TW9kZSA9PT0gdmlld01vZGVzLlRvcFZpZXdcIj5cclxuICA8L3JwLXJlbmRlci1jb250cm9scz5cclxuICA8c2NlbmUtb3B0aW9ucz48L3NjZW5lLW9wdGlvbnM+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJjb250cm9scy1kaXJlY3Rpb25zIGRlc2t0b3BcIiAqbmdJZj1cInNob3dDYW1lcmFDb250cm9sQnV0dG9uc1wiPlxyXG4gICAgPGJ1dHRvbiBjbGFzcz1cImNvbnRyb2wtbGVmdFwiIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJjYW1lcmFQYW5MZWZ0KCRldmVudClcIiB0aXRsZT1cInt7J0xFRlQnIHwgbG9jYWxpemV9fVwiXHJcbiAgICAgICAgICAgICNjb250cm9scz5cclxuICAgICAgPG1hdC1pY29uIGNsYXNzPVwiaG9tZWRlY29yYXRvci1tYXRlcmlhbC1pY29uc1wiPmFycm93X2JhY2s8L21hdC1pY29uPlxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8YnV0dG9uIGNsYXNzPVwiY29udHJvbC1yaWdodFwiIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJjYW1lcmFQYW5SaWdodCgkZXZlbnQpXCIgdGl0bGU9XCJ7eydSSUdIVCcgfCBsb2NhbGl6ZX19XCI+XHJcbiAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImhvbWVkZWNvcmF0b3ItbWF0ZXJpYWwtaWNvbnNcIj5hcnJvd19mb3J3YXJkPC9tYXQtaWNvbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBjbGFzcz1cImNvbnRyb2wtdXBcIiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiY2FtZXJhUGFuVXAoJGV2ZW50KVwiIHRpdGxlPVwie3snVVAnIHwgbG9jYWxpemV9fVwiPlxyXG4gICAgICA8bWF0LWljb24gY2xhc3M9XCJob21lZGVjb3JhdG9yLW1hdGVyaWFsLWljb25zXCI+YXJyb3dfdXB3YXJkPC9tYXQtaWNvbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBjbGFzcz1cImNvbnRyb2wtZG93blwiIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJjYW1lcmFQYW5Eb3duKCRldmVudClcIiB0aXRsZT1cInt7J0RPV04nIHwgbG9jYWxpemV9fVwiPlxyXG4gICAgICA8bWF0LWljb24gY2xhc3M9XCJob21lZGVjb3JhdG9yLW1hdGVyaWFsLWljb25zXCI+YXJyb3dfZG93bndhcmQ8L21hdC1pY29uPlxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGRpdlxyXG4gICpuZ0lmPVwidmlld01vZGVTZXJ2aWNlLnZpZXdNb2RlID09PSB2aWV3TW9kZXMuV2Fsa1Rocm91Z2ggJiYgc2hvd0NhbWVyYUNvbnRyb2xzXCJcclxuICBjbGFzcz1cImZ1bGwtc2NyZWVuXCJcclxuPlxyXG4gIDxycC13YWxrdGhyb3VnaC1jYW1lcmEtY29udHJvbHM+PC9ycC13YWxrdGhyb3VnaC1jYW1lcmEtY29udHJvbHM+XHJcbjwvZGl2PlxyXG5cclxuPGFyLWd1aS1yb290PjwvYXItZ3VpLXJvb3Q+XHJcbiJdfQ==