@wavemaker/app-ng-runtime 12.0.0-next.44004 → 12.0.0-next.45001

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. app-ng-runtime/build-task/advanced/custom-widget-container/custom-widget-container.build.d.ts +2 -0
  2. app-ng-runtime/build-task/advanced/custom-widget-prop/custom-widget-prop.build.d.ts +2 -0
  3. app-ng-runtime/build-task/advanced/custom-widget-wrapper/custom-widget-wrapper.build.d.ts +2 -0
  4. app-ng-runtime/build-task/bundles/index.umd.js +477 -404
  5. app-ng-runtime/build-task/esm2022/advanced/custom-widget-container/custom-widget-container.build.mjs +15 -0
  6. app-ng-runtime/build-task/esm2022/advanced/custom-widget-prop/custom-widget-prop.build.mjs +10 -0
  7. app-ng-runtime/build-task/esm2022/advanced/custom-widget-wrapper/custom-widget-wrapper.build.mjs +26 -0
  8. app-ng-runtime/build-task/esm2022/data/form/form-field/form-field.build.mjs +3 -2
  9. app-ng-runtime/build-task/esm2022/navigation/menu/menu.build.mjs +14 -2
  10. app-ng-runtime/build-task/esm2022/public_api.mjs +4 -1
  11. app-ng-runtime/build-task/fesm2022/index.mjs +479 -405
  12. app-ng-runtime/build-task/fesm2022/index.mjs.map +1 -1
  13. app-ng-runtime/build-task/public_api.d.ts +3 -0
  14. app-ng-runtime/components/advanced/custom/bundles/index.umd.js +275 -0
  15. app-ng-runtime/components/advanced/custom/custom-widget-container/custom-widget-container.directive.d.ts +14 -0
  16. app-ng-runtime/components/advanced/custom/custom-widget-container/custom-widget.props.d.ts +1 -0
  17. app-ng-runtime/components/advanced/custom/custom-widget-container-prop/custom-widget-container-prop.directive.d.ts +20 -0
  18. app-ng-runtime/components/advanced/custom/custom-widget-prop.d.ts +1 -0
  19. app-ng-runtime/components/advanced/custom/custom-widget.directive.d.ts +19 -0
  20. app-ng-runtime/components/advanced/custom/custom-widget.module.d.ts +11 -0
  21. app-ng-runtime/components/advanced/custom/esm2022/custom-widget-container/custom-widget-container.directive.mjs +73 -0
  22. app-ng-runtime/components/advanced/custom/esm2022/custom-widget-container/custom-widget.props.mjs +9 -0
  23. app-ng-runtime/components/advanced/custom/esm2022/custom-widget-container-prop/custom-widget-container-prop.directive.mjs +70 -0
  24. app-ng-runtime/components/advanced/custom/esm2022/custom-widget-prop.mjs +8 -0
  25. app-ng-runtime/components/advanced/custom/esm2022/custom-widget.directive.mjs +68 -0
  26. app-ng-runtime/components/advanced/custom/esm2022/custom-widget.module.mjs +39 -0
  27. app-ng-runtime/components/advanced/custom/esm2022/index.mjs +5 -0
  28. app-ng-runtime/components/advanced/custom/esm2022/public_api.mjs +5 -0
  29. app-ng-runtime/components/advanced/custom/fesm2022/index.mjs +256 -0
  30. app-ng-runtime/components/advanced/custom/fesm2022/index.mjs.map +1 -0
  31. app-ng-runtime/components/advanced/custom/index.d.ts +5 -0
  32. app-ng-runtime/components/advanced/custom/package.json +23 -0
  33. app-ng-runtime/components/advanced/custom/public_api.d.ts +4 -0
  34. app-ng-runtime/components/base/bundles/index.umd.js +65 -9
  35. app-ng-runtime/components/base/components.module.d.ts +12 -11
  36. app-ng-runtime/components/base/esm2022/components.module.mjs +5 -1
  37. app-ng-runtime/components/base/esm2022/public_api.mjs +2 -1
  38. app-ng-runtime/components/base/esm2022/widgets/common/base/base.component.mjs +28 -10
  39. app-ng-runtime/components/base/esm2022/widgets/common/base/custom-widget-container.directive.mjs +39 -0
  40. app-ng-runtime/components/base/fesm2022/index.mjs +65 -10
  41. app-ng-runtime/components/base/fesm2022/index.mjs.map +1 -1
  42. app-ng-runtime/components/base/public_api.d.ts +1 -0
  43. app-ng-runtime/components/base/widgets/common/base/base.component.d.ts +9 -3
  44. app-ng-runtime/components/base/widgets/common/base/custom-widget-container.directive.d.ts +14 -0
  45. app-ng-runtime/components/basic/default/audio/audio.component.d.ts +1 -0
  46. app-ng-runtime/components/basic/default/bundles/index.umd.js +5 -4
  47. app-ng-runtime/components/basic/default/esm2022/audio/audio.component.mjs +6 -5
  48. app-ng-runtime/components/basic/default/fesm2022/index.mjs +5 -4
  49. app-ng-runtime/components/basic/default/fesm2022/index.mjs.map +1 -1
  50. app-ng-runtime/components/basic/progress/bundles/index.umd.js +3 -2
  51. app-ng-runtime/components/basic/progress/esm2022/progress-circle/progress-circle.component.mjs +4 -3
  52. app-ng-runtime/components/basic/progress/fesm2022/index.mjs +3 -2
  53. app-ng-runtime/components/basic/progress/fesm2022/index.mjs.map +1 -1
  54. app-ng-runtime/components/basic/progress/progress-circle/progress-circle.component.d.ts +1 -0
  55. app-ng-runtime/components/data/form/bundles/index.umd.js +4 -3
  56. app-ng-runtime/components/data/form/esm2022/form-field/form-field.directive.mjs +1 -2
  57. app-ng-runtime/components/data/form/esm2022/live-form/live-form.directive.mjs +5 -3
  58. app-ng-runtime/components/data/form/fesm2022/index.mjs +4 -3
  59. app-ng-runtime/components/data/form/fesm2022/index.mjs.map +1 -1
  60. app-ng-runtime/components/input/default/bundles/index.umd.js +46 -53
  61. app-ng-runtime/components/input/default/esm2022/caption-position.directive.mjs +2 -3
  62. app-ng-runtime/components/input/default/esm2022/select/select.component.mjs +44 -53
  63. app-ng-runtime/components/input/default/esm2022/text/base/base-input.mjs +4 -1
  64. app-ng-runtime/components/input/default/fesm2022/index.mjs +47 -54
  65. app-ng-runtime/components/input/default/fesm2022/index.mjs.map +1 -1
  66. app-ng-runtime/components/input/default/select/select.component.d.ts +1 -2
  67. app-ng-runtime/components/input/epoch/bundles/index.umd.js +19 -7
  68. app-ng-runtime/components/input/epoch/date/date.component.d.ts +1 -0
  69. app-ng-runtime/components/input/epoch/esm2022/date/date.component.mjs +9 -3
  70. app-ng-runtime/components/input/epoch/esm2022/date/imaskUtil.mjs +8 -2
  71. app-ng-runtime/components/input/epoch/esm2022/date-time/date-time.component.mjs +3 -3
  72. app-ng-runtime/components/input/epoch/esm2022/time/time.component.mjs +3 -3
  73. app-ng-runtime/components/input/epoch/fesm2022/index.mjs +19 -7
  74. app-ng-runtime/components/input/epoch/fesm2022/index.mjs.map +1 -1
  75. app-ng-runtime/core/bundles/index.umd.js +10 -0
  76. app-ng-runtime/core/enums/enums.d.ts +2 -1
  77. app-ng-runtime/core/esm2022/enums/enums.mjs +2 -1
  78. app-ng-runtime/core/esm2022/types/types.mjs +4 -1
  79. app-ng-runtime/core/esm2022/utils/build-utils.mjs +6 -1
  80. app-ng-runtime/core/fesm2022/index.mjs +10 -1
  81. app-ng-runtime/core/fesm2022/index.mjs.map +1 -1
  82. app-ng-runtime/core/types/types.d.ts +5 -1
  83. app-ng-runtime/package.json +1 -1
  84. app-ng-runtime/runtime/base/bundles/index.umd.js +254 -4
  85. app-ng-runtime/runtime/base/components/base-custom-widget.component.d.ts +71 -0
  86. app-ng-runtime/runtime/base/esm2022/components/base-custom-widget.component.mjs +253 -0
  87. app-ng-runtime/runtime/base/esm2022/public_api.mjs +2 -1
  88. app-ng-runtime/runtime/base/esm2022/runtime-base.module.mjs +6 -1
  89. app-ng-runtime/runtime/base/esm2022/types/types.mjs +2 -1
  90. app-ng-runtime/runtime/base/fesm2022/index.mjs +251 -1
  91. app-ng-runtime/runtime/base/fesm2022/index.mjs.map +1 -1
  92. app-ng-runtime/runtime/base/public_api.d.ts +1 -0
  93. app-ng-runtime/runtime/base/runtime-base.module.d.ts +9 -8
  94. app-ng-runtime/runtime/base/types/types.d.ts +2 -1
  95. app-ng-runtime/runtime/dynamic/bundles/index.umd.js +26 -9
  96. app-ng-runtime/runtime/dynamic/esm2022/app/app.module.mjs +5 -2
  97. app-ng-runtime/runtime/dynamic/esm2022/app/services/component-ref-provider.service.mjs +22 -7
  98. app-ng-runtime/runtime/dynamic/fesm2022/index.mjs +25 -7
  99. app-ng-runtime/runtime/dynamic/fesm2022/index.mjs.map +1 -1
  100. app-ng-runtime/scripts/datatable/datatable.js +1 -0
  101. app-ng-runtime/transpiler/bundles/index.umd.js +5 -0
  102. app-ng-runtime/transpiler/esm2022/build.mjs +4 -1
  103. app-ng-runtime/transpiler/esm2022/imports.mjs +3 -1
  104. app-ng-runtime/transpiler/fesm2022/index.mjs +5 -0
  105. app-ng-runtime/transpiler/fesm2022/index.mjs.map +1 -1
@@ -49,6 +49,7 @@
49
49
  FormWidgetType["TIMESTAMP"] = "timestamp";
50
50
  FormWidgetType["TYPEAHEAD"] = "typeahead";
51
51
  FormWidgetType["UPLOAD"] = "upload";
52
+ FormWidgetType["CUSTOM"] = "custom";
52
53
  })(exports.FormWidgetType || (exports.FormWidgetType = {}));
53
54
  exports.DataType = void 0;
54
55
  (function (DataType) {
@@ -179,6 +180,9 @@
179
180
  case exports.FormWidgetType.TIMESTAMP:
180
181
  tmpl = `<div wmDateTime ${attrs.get('required') === 'true' ? 'required=true' : ''} dataentrymode="${attrs.get('dataentrymode')}" ${innerTmpl} role="input" ${showTmpl}></div>`;
181
182
  break;
183
+ case exports.FormWidgetType.CUSTOM:
184
+ tmpl = `<div wmWidgetContainer customWidgetContainer ${attrs.get('required') === 'true' ? 'required=true' : ''} ${innerTmpl} ${showTmpl}></div>`;
185
+ break;
182
186
  case exports.FormWidgetType.UPLOAD:
183
187
  const counter = options.counter;
184
188
  const pCounter = options.pCounter;
@@ -229,6 +233,8 @@
229
233
  return 'wm-richtexteditor';
230
234
  case exports.FormWidgetType.SLIDER:
231
235
  return 'wm-slider';
236
+ case exports.FormWidgetType.CUSTOM:
237
+ return 'wm-custom-widget';
232
238
  default:
233
239
  return 'wm-text';
234
240
  }
@@ -2312,6 +2318,7 @@
2312
2318
  ComponentType[ComponentType["PAGE"] = 0] = "PAGE";
2313
2319
  ComponentType[ComponentType["PREFAB"] = 1] = "PREFAB";
2314
2320
  ComponentType[ComponentType["PARTIAL"] = 2] = "PARTIAL";
2321
+ ComponentType[ComponentType["WIDGET"] = 3] = "WIDGET";
2315
2322
  })(exports.ComponentType || (exports.ComponentType = {}));
2316
2323
  class IDataSource {
2317
2324
  }
@@ -2384,6 +2391,8 @@
2384
2391
  }
2385
2392
  class PartialRefProvider {
2386
2393
  }
2394
+ class CustomWidgetRefProvider {
2395
+ }
2387
2396
 
2388
2397
  const userAgent = window.navigator.userAgent;
2389
2398
  const REGEX = {
@@ -5176,6 +5185,7 @@
5176
5185
  exports.ConstantService = ConstantService;
5177
5186
  exports.CoreModule = CoreModule;
5178
5187
  exports.CustomPipeManager = CustomPipeManager;
5188
+ exports.CustomWidgetRefProvider = CustomWidgetRefProvider;
5179
5189
  exports.DataSource = DataSource;
5180
5190
  exports.DynamicComponentRefProvider = DynamicComponentRefProvider;
5181
5191
  exports.EventNotifier = EventNotifier;
@@ -21,7 +21,8 @@ export declare enum FormWidgetType {
21
21
  TIME = "time",
22
22
  TIMESTAMP = "timestamp",
23
23
  TYPEAHEAD = "typeahead",
24
- UPLOAD = "upload"
24
+ UPLOAD = "upload",
25
+ CUSTOM = "custom"
25
26
  }
26
27
  export declare enum DataType {
27
28
  INTEGER = "integer",
@@ -23,6 +23,7 @@ export var FormWidgetType;
23
23
  FormWidgetType["TIMESTAMP"] = "timestamp";
24
24
  FormWidgetType["TYPEAHEAD"] = "typeahead";
25
25
  FormWidgetType["UPLOAD"] = "upload";
26
+ FormWidgetType["CUSTOM"] = "custom";
26
27
  })(FormWidgetType || (FormWidgetType = {}));
27
28
  export var DataType;
28
29
  (function (DataType) {
@@ -67,4 +68,4 @@ export var DEFAULT_FORMATS;
67
68
  DEFAULT_FORMATS["DATETIME_ORACLE"] = "yyyy-MM-dd HH:mm:ss";
68
69
  DEFAULT_FORMATS["DATE_TIME"] = "yyyy-MM-dd HH:mm:ss";
69
70
  })(DEFAULT_FORMATS || (DEFAULT_FORMATS = {}));
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9lbnVtcy9lbnVtcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxjQXdCWDtBQXhCRCxXQUFZLGNBQWM7SUFDdEIsK0NBQTZCLENBQUE7SUFDN0IsdUNBQXFCLENBQUE7SUFDckIsNkNBQTJCLENBQUE7SUFDM0IsaUNBQWUsQ0FBQTtJQUNmLDZDQUEyQixDQUFBO0lBQzNCLHVDQUFxQixDQUFBO0lBQ3JCLCtCQUFhLENBQUE7SUFDYix1Q0FBcUIsQ0FBQTtJQUNyQixtQ0FBaUIsQ0FBQTtJQUNqQix1Q0FBcUIsQ0FBQTtJQUNyQix1Q0FBcUIsQ0FBQTtJQUNyQixtQ0FBaUIsQ0FBQTtJQUNqQix1Q0FBcUIsQ0FBQTtJQUNyQixtQ0FBaUIsQ0FBQTtJQUNqQixtQ0FBaUIsQ0FBQTtJQUNqQixtQ0FBaUIsQ0FBQTtJQUNqQixtQ0FBaUIsQ0FBQTtJQUNqQiwrQkFBYSxDQUFBO0lBQ2IsdUNBQXFCLENBQUE7SUFDckIsK0JBQWEsQ0FBQTtJQUNiLHlDQUF1QixDQUFBO0lBQ3ZCLHlDQUF1QixDQUFBO0lBQ3ZCLG1DQUFpQixDQUFBO0FBQ3JCLENBQUMsRUF4QlcsY0FBYyxLQUFkLGNBQWMsUUF3QnpCO0FBRUQsTUFBTSxDQUFOLElBQVksUUFxQlg7QUFyQkQsV0FBWSxRQUFRO0lBQ2hCLCtCQUFtQixDQUFBO0lBQ25CLHVDQUEyQixDQUFBO0lBQzNCLDJCQUFlLENBQUE7SUFDZiwyQkFBZSxDQUFBO0lBQ2YsdUNBQTJCLENBQUE7SUFDM0IsNkJBQWlCLENBQUE7SUFDakIseUJBQWEsQ0FBQTtJQUNiLHlCQUFhLENBQUE7SUFDYiw2QkFBaUIsQ0FBQTtJQUNqQixtQ0FBdUIsQ0FBQTtJQUN2Qix5QkFBYSxDQUFBO0lBQ2IseUJBQWEsQ0FBQTtJQUNiLHlCQUFhLENBQUE7SUFDYixtQ0FBdUIsQ0FBQTtJQUN2QixpQ0FBcUIsQ0FBQTtJQUNyQiwyQ0FBK0IsQ0FBQTtJQUMvQiwrQkFBbUIsQ0FBQTtJQUNuQix5QkFBYSxDQUFBO0lBQ2IseUJBQWEsQ0FBQTtJQUNiLHlCQUFhLENBQUE7QUFDakIsQ0FBQyxFQXJCVyxRQUFRLEtBQVIsUUFBUSxRQXFCbkI7QUFFRCxNQUFNLENBQU4sSUFBWSxTQVFYO0FBUkQsV0FBWSxTQUFTO0lBQ2pCLGdDQUFtQixDQUFBO0lBQ25CLHlDQUE0QixDQUFBO0lBQzVCLHFDQUF3QixDQUFBO0lBQ3hCLDBCQUFhLENBQUE7SUFDYiw0QkFBZSxDQUFBO0lBQ2Ysd0NBQTJCLENBQUE7SUFDM0IsNkJBQWdCLENBQUE7QUFDcEIsQ0FBQyxFQVJXLFNBQVMsS0FBVCxTQUFTLFFBUXBCO0FBRUQsTUFBTSxDQUFOLElBQVksZUFRWDtBQVJELFdBQVksZUFBZTtJQUN2QixzQ0FBbUIsQ0FBQTtJQUNuQixvQ0FBaUIsQ0FBQTtJQUNqQiwwQ0FBdUIsQ0FBQTtJQUN2QixtREFBZ0MsQ0FBQTtJQUNoQyx3REFBcUMsQ0FBQTtJQUNyQywwREFBdUMsQ0FBQTtJQUN2QyxvREFBaUMsQ0FBQTtBQUNyQyxDQUFDLEVBUlcsZUFBZSxLQUFmLGVBQWUsUUFRMUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBGb3JtV2lkZ2V0VHlwZSB7XG4gICAgQVVUT0NPTVBMRVRFID0gJ2F1dG9jb21wbGV0ZScsXG4gICAgQ0hFQ0tCT1ggPSAnY2hlY2tib3gnLFxuICAgIENIRUNLQk9YU0VUID0gJ2NoZWNrYm94c2V0JyxcbiAgICBDSElQUyA9ICdjaGlwcycsXG4gICAgQ09MT1JQSUNLRVIgPSAnY29sb3JwaWNrZXInLFxuICAgIENVUlJFTkNZID0gJ2N1cnJlbmN5JyxcbiAgICBEQVRFID0gJ2RhdGUnLFxuICAgIERBVEVUSU1FID0gJ2RhdGV0aW1lJyxcbiAgICBOVU1CRVIgPSAnbnVtYmVyJyxcbiAgICBQQVNTV09SRCA9ICdwYXNzd29yZCcsXG4gICAgUkFESU9TRVQgPSAncmFkaW9zZXQnLFxuICAgIFJBVElORyA9ICdyYXRpbmcnLFxuICAgIFJJQ0hURVhUID0gJ3JpY2h0ZXh0JyxcbiAgICBTRUxFQ1QgPSAnc2VsZWN0JyxcbiAgICBUT0dHTEUgPSAndG9nZ2xlJyxcbiAgICBTTElERVIgPSAnc2xpZGVyJyxcbiAgICBTV0lUQ0ggPSAnc3dpdGNoJyxcbiAgICBURVhUID0gJ3RleHQnLFxuICAgIFRFWFRBUkVBID0gJ3RleHRhcmVhJyxcbiAgICBUSU1FID0gJ3RpbWUnLFxuICAgIFRJTUVTVEFNUCA9ICd0aW1lc3RhbXAnLFxuICAgIFRZUEVBSEVBRCA9ICd0eXBlYWhlYWQnLFxuICAgIFVQTE9BRCA9ICd1cGxvYWQnXG59XG5cbmV4cG9ydCBlbnVtIERhdGFUeXBlIHtcbiAgICBJTlRFR0VSID0gJ2ludGVnZXInLFxuICAgIEJJR19JTlRFR0VSID0gJ2JpZ19pbnRlZ2VyJyxcbiAgICBTSE9SVCA9ICdzaG9ydCcsXG4gICAgRkxPQVQgPSAnZmxvYXQnLFxuICAgIEJJR19ERUNJTUFMID0gJ2JpZ19kZWNpbWFsJyxcbiAgICBET1VCTEUgPSAnZG91YmxlJyxcbiAgICBMT05HID0gJ2xvbmcnLFxuICAgIEJZVEUgPSAnYnl0ZScsXG4gICAgU1RSSU5HID0gJ3N0cmluZycsXG4gICAgQ0hBUkFDVEVSID0gJ2NoYXJhY3RlcicsXG4gICAgVEVYVCA9ICd0ZXh0JyxcbiAgICBEQVRFID0gJ2RhdGUnLFxuICAgIFRJTUUgPSAndGltZScsXG4gICAgVElNRVNUQU1QID0gJ3RpbWVzdGFtcCcsXG4gICAgREFURVRJTUUgPSAnZGF0ZXRpbWUnLFxuICAgIExPQ0FMREFURVRJTUUgPSAnbG9jYWxkYXRldGltZScsXG4gICAgQk9PTEVBTiA9ICdib29sZWFuJyxcbiAgICBMSVNUID0gJ2xpc3QnLFxuICAgIENMT0IgPSAnY2xvYicsXG4gICAgQkxPQiA9ICdibG9iJ1xufVxuXG5leHBvcnQgZW51bSBNYXRjaE1vZGUge1xuICAgIEJFVFdFRU4gPSAnYmV0d2VlbicsXG4gICAgR1JFQVRFUiA9ICdncmVhdGVydGhhbmVxdWFsJyxcbiAgICBMRVNTRVIgPSAnbGVzc3RoYW5lcXVhbCcsXG4gICAgTlVMTCA9ICdudWxsJyxcbiAgICBFTVBUWSA9ICdlbXB0eScsXG4gICAgTlVMTE9SRU1QVFkgPSAnbnVsbG9yZW1wdHknLFxuICAgIEVRVUFMUyA9ICdleGFjdCdcbn1cblxuZXhwb3J0IGVudW0gREVGQVVMVF9GT1JNQVRTIHtcbiAgICBEQVRFID0gJ3l5eXktTU0tZGQnLFxuICAgIFRJTUUgPSAnSEg6bW06c3MnLFxuICAgIFRJTUVTVEFNUCA9ICd0aW1lc3RhbXAnLFxuICAgIERBVEVUSU1FID0gJ3l5eXktTU0tZGRUSEg6bW06c3MnLFxuICAgIExPQ0FMREFURVRJTUUgPSAneXl5eS1NTS1kZFRISDptbTpzcycsXG4gICAgREFURVRJTUVfT1JBQ0xFID0gJ3l5eXktTU0tZGQgSEg6bW06c3MnLFxuICAgIERBVEVfVElNRSA9ICd5eXl5LU1NLWRkIEhIOm1tOnNzJ1xufVxuIl19
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9lbnVtcy9lbnVtcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxjQXlCWDtBQXpCRCxXQUFZLGNBQWM7SUFDdEIsK0NBQTZCLENBQUE7SUFDN0IsdUNBQXFCLENBQUE7SUFDckIsNkNBQTJCLENBQUE7SUFDM0IsaUNBQWUsQ0FBQTtJQUNmLDZDQUEyQixDQUFBO0lBQzNCLHVDQUFxQixDQUFBO0lBQ3JCLCtCQUFhLENBQUE7SUFDYix1Q0FBcUIsQ0FBQTtJQUNyQixtQ0FBaUIsQ0FBQTtJQUNqQix1Q0FBcUIsQ0FBQTtJQUNyQix1Q0FBcUIsQ0FBQTtJQUNyQixtQ0FBaUIsQ0FBQTtJQUNqQix1Q0FBcUIsQ0FBQTtJQUNyQixtQ0FBaUIsQ0FBQTtJQUNqQixtQ0FBaUIsQ0FBQTtJQUNqQixtQ0FBaUIsQ0FBQTtJQUNqQixtQ0FBaUIsQ0FBQTtJQUNqQiwrQkFBYSxDQUFBO0lBQ2IsdUNBQXFCLENBQUE7SUFDckIsK0JBQWEsQ0FBQTtJQUNiLHlDQUF1QixDQUFBO0lBQ3ZCLHlDQUF1QixDQUFBO0lBQ3ZCLG1DQUFpQixDQUFBO0lBQ2pCLG1DQUFpQixDQUFBO0FBQ3JCLENBQUMsRUF6QlcsY0FBYyxLQUFkLGNBQWMsUUF5QnpCO0FBRUQsTUFBTSxDQUFOLElBQVksUUFxQlg7QUFyQkQsV0FBWSxRQUFRO0lBQ2hCLCtCQUFtQixDQUFBO0lBQ25CLHVDQUEyQixDQUFBO0lBQzNCLDJCQUFlLENBQUE7SUFDZiwyQkFBZSxDQUFBO0lBQ2YsdUNBQTJCLENBQUE7SUFDM0IsNkJBQWlCLENBQUE7SUFDakIseUJBQWEsQ0FBQTtJQUNiLHlCQUFhLENBQUE7SUFDYiw2QkFBaUIsQ0FBQTtJQUNqQixtQ0FBdUIsQ0FBQTtJQUN2Qix5QkFBYSxDQUFBO0lBQ2IseUJBQWEsQ0FBQTtJQUNiLHlCQUFhLENBQUE7SUFDYixtQ0FBdUIsQ0FBQTtJQUN2QixpQ0FBcUIsQ0FBQTtJQUNyQiwyQ0FBK0IsQ0FBQTtJQUMvQiwrQkFBbUIsQ0FBQTtJQUNuQix5QkFBYSxDQUFBO0lBQ2IseUJBQWEsQ0FBQTtJQUNiLHlCQUFhLENBQUE7QUFDakIsQ0FBQyxFQXJCVyxRQUFRLEtBQVIsUUFBUSxRQXFCbkI7QUFFRCxNQUFNLENBQU4sSUFBWSxTQVFYO0FBUkQsV0FBWSxTQUFTO0lBQ2pCLGdDQUFtQixDQUFBO0lBQ25CLHlDQUE0QixDQUFBO0lBQzVCLHFDQUF3QixDQUFBO0lBQ3hCLDBCQUFhLENBQUE7SUFDYiw0QkFBZSxDQUFBO0lBQ2Ysd0NBQTJCLENBQUE7SUFDM0IsNkJBQWdCLENBQUE7QUFDcEIsQ0FBQyxFQVJXLFNBQVMsS0FBVCxTQUFTLFFBUXBCO0FBRUQsTUFBTSxDQUFOLElBQVksZUFRWDtBQVJELFdBQVksZUFBZTtJQUN2QixzQ0FBbUIsQ0FBQTtJQUNuQixvQ0FBaUIsQ0FBQTtJQUNqQiwwQ0FBdUIsQ0FBQTtJQUN2QixtREFBZ0MsQ0FBQTtJQUNoQyx3REFBcUMsQ0FBQTtJQUNyQywwREFBdUMsQ0FBQTtJQUN2QyxvREFBaUMsQ0FBQTtBQUNyQyxDQUFDLEVBUlcsZUFBZSxLQUFmLGVBQWUsUUFRMUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBGb3JtV2lkZ2V0VHlwZSB7XG4gICAgQVVUT0NPTVBMRVRFID0gJ2F1dG9jb21wbGV0ZScsXG4gICAgQ0hFQ0tCT1ggPSAnY2hlY2tib3gnLFxuICAgIENIRUNLQk9YU0VUID0gJ2NoZWNrYm94c2V0JyxcbiAgICBDSElQUyA9ICdjaGlwcycsXG4gICAgQ09MT1JQSUNLRVIgPSAnY29sb3JwaWNrZXInLFxuICAgIENVUlJFTkNZID0gJ2N1cnJlbmN5JyxcbiAgICBEQVRFID0gJ2RhdGUnLFxuICAgIERBVEVUSU1FID0gJ2RhdGV0aW1lJyxcbiAgICBOVU1CRVIgPSAnbnVtYmVyJyxcbiAgICBQQVNTV09SRCA9ICdwYXNzd29yZCcsXG4gICAgUkFESU9TRVQgPSAncmFkaW9zZXQnLFxuICAgIFJBVElORyA9ICdyYXRpbmcnLFxuICAgIFJJQ0hURVhUID0gJ3JpY2h0ZXh0JyxcbiAgICBTRUxFQ1QgPSAnc2VsZWN0JyxcbiAgICBUT0dHTEUgPSAndG9nZ2xlJyxcbiAgICBTTElERVIgPSAnc2xpZGVyJyxcbiAgICBTV0lUQ0ggPSAnc3dpdGNoJyxcbiAgICBURVhUID0gJ3RleHQnLFxuICAgIFRFWFRBUkVBID0gJ3RleHRhcmVhJyxcbiAgICBUSU1FID0gJ3RpbWUnLFxuICAgIFRJTUVTVEFNUCA9ICd0aW1lc3RhbXAnLFxuICAgIFRZUEVBSEVBRCA9ICd0eXBlYWhlYWQnLFxuICAgIFVQTE9BRCA9ICd1cGxvYWQnLFxuICAgIENVU1RPTSA9ICdjdXN0b20nXG59XG5cbmV4cG9ydCBlbnVtIERhdGFUeXBlIHtcbiAgICBJTlRFR0VSID0gJ2ludGVnZXInLFxuICAgIEJJR19JTlRFR0VSID0gJ2JpZ19pbnRlZ2VyJyxcbiAgICBTSE9SVCA9ICdzaG9ydCcsXG4gICAgRkxPQVQgPSAnZmxvYXQnLFxuICAgIEJJR19ERUNJTUFMID0gJ2JpZ19kZWNpbWFsJyxcbiAgICBET1VCTEUgPSAnZG91YmxlJyxcbiAgICBMT05HID0gJ2xvbmcnLFxuICAgIEJZVEUgPSAnYnl0ZScsXG4gICAgU1RSSU5HID0gJ3N0cmluZycsXG4gICAgQ0hBUkFDVEVSID0gJ2NoYXJhY3RlcicsXG4gICAgVEVYVCA9ICd0ZXh0JyxcbiAgICBEQVRFID0gJ2RhdGUnLFxuICAgIFRJTUUgPSAndGltZScsXG4gICAgVElNRVNUQU1QID0gJ3RpbWVzdGFtcCcsXG4gICAgREFURVRJTUUgPSAnZGF0ZXRpbWUnLFxuICAgIExPQ0FMREFURVRJTUUgPSAnbG9jYWxkYXRldGltZScsXG4gICAgQk9PTEVBTiA9ICdib29sZWFuJyxcbiAgICBMSVNUID0gJ2xpc3QnLFxuICAgIENMT0IgPSAnY2xvYicsXG4gICAgQkxPQiA9ICdibG9iJ1xufVxuXG5leHBvcnQgZW51bSBNYXRjaE1vZGUge1xuICAgIEJFVFdFRU4gPSAnYmV0d2VlbicsXG4gICAgR1JFQVRFUiA9ICdncmVhdGVydGhhbmVxdWFsJyxcbiAgICBMRVNTRVIgPSAnbGVzc3RoYW5lcXVhbCcsXG4gICAgTlVMTCA9ICdudWxsJyxcbiAgICBFTVBUWSA9ICdlbXB0eScsXG4gICAgTlVMTE9SRU1QVFkgPSAnbnVsbG9yZW1wdHknLFxuICAgIEVRVUFMUyA9ICdleGFjdCdcbn1cblxuZXhwb3J0IGVudW0gREVGQVVMVF9GT1JNQVRTIHtcbiAgICBEQVRFID0gJ3l5eXktTU0tZGQnLFxuICAgIFRJTUUgPSAnSEg6bW06c3MnLFxuICAgIFRJTUVTVEFNUCA9ICd0aW1lc3RhbXAnLFxuICAgIERBVEVUSU1FID0gJ3l5eXktTU0tZGRUSEg6bW06c3MnLFxuICAgIExPQ0FMREFURVRJTUUgPSAneXl5eS1NTS1kZFRISDptbTpzcycsXG4gICAgREFURVRJTUVfT1JBQ0xFID0gJ3l5eXktTU0tZGQgSEg6bW06c3MnLFxuICAgIERBVEVfVElNRSA9ICd5eXl5LU1NLWRkIEhIOm1tOnNzJ1xufVxuIl19
@@ -3,6 +3,7 @@ export var ComponentType;
3
3
  ComponentType[ComponentType["PAGE"] = 0] = "PAGE";
4
4
  ComponentType[ComponentType["PREFAB"] = 1] = "PREFAB";
5
5
  ComponentType[ComponentType["PARTIAL"] = 2] = "PARTIAL";
6
+ ComponentType[ComponentType["WIDGET"] = 3] = "WIDGET";
6
7
  })(ComponentType || (ComponentType = {}));
7
8
  export class IDataSource {
8
9
  }
@@ -75,4 +76,6 @@ export class DynamicComponentRefProvider {
75
76
  }
76
77
  export class PartialRefProvider {
77
78
  }
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy90eXBlcy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxhQUlYO0FBSkQsV0FBWSxhQUFhO0lBQ3JCLGlEQUFJLENBQUE7SUFDSixxREFBTSxDQUFBO0lBQ04sdURBQU8sQ0FBQTtBQUNYLENBQUMsRUFKVyxhQUFhLEtBQWIsYUFBYSxRQUl4QjtBQUVELE1BQU0sT0FBTyxXQUFXO0NBRXZCO0FBRUQsSUFBSyxTQTBDSjtBQTFDRCxXQUFLLFNBQVM7SUFDVix5Q0FBNEIsQ0FBQTtJQUM1QiwyQ0FBOEIsQ0FBQTtJQUM5QiwyQ0FBOEIsQ0FBQTtJQUM5QiwyQ0FBOEIsQ0FBQTtJQUM5Qiw4QkFBaUIsQ0FBQTtJQUNqQiw4QkFBaUIsQ0FBQTtJQUNqQiw4QkFBaUIsQ0FBQTtJQUNqQix3Q0FBMkIsQ0FBQTtJQUMzQiwyQ0FBOEIsQ0FBQTtJQUM5QiwwREFBNkMsQ0FBQTtJQUM3Qyx1Q0FBMEIsQ0FBQTtJQUMxQix1Q0FBMEIsQ0FBQTtJQUMxQixvREFBdUMsQ0FBQTtJQUN2QyxvRUFBdUQsQ0FBQTtJQUN2RCw4Q0FBaUMsQ0FBQTtJQUNqQyxtQ0FBc0IsQ0FBQTtJQUN0QiwyREFBOEMsQ0FBQTtJQUM5QyxvRUFBdUQsQ0FBQTtJQUN2RCxzREFBeUMsQ0FBQTtJQUN6Qyw0Q0FBK0IsQ0FBQTtJQUMvQixrQ0FBcUIsQ0FBQTtJQUNyQixpQ0FBb0IsQ0FBQTtJQUNwQixvREFBdUMsQ0FBQTtJQUN2Qyw4Q0FBaUMsQ0FBQTtJQUNqQyx3Q0FBMkIsQ0FBQTtJQUMzQiw0REFBK0MsQ0FBQTtJQUMvQyx1Q0FBMEIsQ0FBQTtJQUMxQiw2Q0FBZ0MsQ0FBQTtJQUNoQyxvREFBdUMsQ0FBQTtJQUN2QyxvREFBdUMsQ0FBQTtJQUN2QywwREFBNkMsQ0FBQTtJQUM3QywwREFBNkMsQ0FBQTtJQUM3Qyw0REFBK0MsQ0FBQTtJQUMvQyxvREFBdUMsQ0FBQTtJQUN2QyxpQ0FBb0IsQ0FBQTtJQUNwQixpQ0FBb0IsQ0FBQTtJQUNwQix1Q0FBMEIsQ0FBQTtJQUMxQixtREFBc0MsQ0FBQTtJQUN0QyxvREFBdUMsQ0FBQTtJQUN2Qyw4QkFBaUIsQ0FBQTtJQUNqQiw2Q0FBZ0MsQ0FBQTtBQUNwQyxDQUFDLEVBMUNJLFNBQVMsS0FBVCxTQUFTLFFBMENiO0FBRUQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3RCLFNBQVM7Q0FDWixDQUFDO0FBRUYsTUFBTSxPQUFnQixHQUFHO0NBNEN4QjtBQUdELE1BQU0sT0FBZ0IscUJBQXFCO0NBaUIxQztBQUVELE1BQU0sT0FBZ0IsbUJBQW1CO0NBbUJ4QztBQUVELE1BQU0sT0FBZ0IsbUJBQW1CO0NBaUJ4QztBQUVELE1BQU0sT0FBZ0Isc0JBQXNCO0NBZ0IzQztBQUVELE1BQU0sT0FBZ0Isc0JBQXNCO0NBTzNDO0FBQ0QsTUFBTSxPQUFnQiwyQkFBMkI7Q0FFaEQ7QUFVRCxNQUFNLE9BQWdCLHlCQUF5QjtDQUs5QztBQUVELE1BQU0sT0FBZ0IsV0FBVztDQU1oQztBQUVELE1BQU0sT0FBZ0IsMkJBQTJCO0NBRWhEO0FBRUQsTUFBTSxPQUFnQixrQkFBa0I7Q0FFdkMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBDb21wb25lbnRUeXBlIHtcbiAgICBQQUdFLFxuICAgIFBSRUZBQixcbiAgICBQQVJUSUFMXG59XG5cbmV4cG9ydCBjbGFzcyBJRGF0YVNvdXJjZSB7XG4gICAgZXhlY3V0ZTogKG9wZXJhdGlvbjogT3BlcmF0aW9uLCBvcHRpb25zPzogYW55KSA9PiBib29sZWFuIHwgc3RyaW5nIHwgUHJvbWlzZTxhbnk+O1xufVxuXG5lbnVtIE9wZXJhdGlvbiB7XG4gICAgTElTVF9SRUNPUkRTID0gJ2xpc3RSZWNvcmRzJyxcbiAgICBVUERBVEVfUkVDT1JEID0gJ3VwZGF0ZVJlY29yZCcsXG4gICAgSU5TRVJUX1JFQ09SRCA9ICdpbnNlcnRSZWNvcmQnLFxuICAgIERFTEVURV9SRUNPUkQgPSAnZGVsZXRlUmVjb3JkJyxcbiAgICBJTlZPS0UgPSAnaW52b2tlJyxcbiAgICBVUERBVEUgPSAndXBkYXRlJyxcbiAgICBOT1RJRlkgPSAnbm90aWZ5JyxcbiAgICBJU19BUElfQVdBUkUgPSAnaXNBcGlBd2FyZScsXG4gICAgU1VQUE9SVFNfQ1JVRCA9ICdzdXBwb3J0c0NSVUQnLFxuICAgIFNVUFBPUlRTX0RJU1RJTkNUX0FQSSA9ICdzdXBwb3J0c0Rpc3RpbmN0QVBJJyxcbiAgICBJU19QQUdFQUJMRSA9ICdpc1BhZ2VhYmxlJyxcbiAgICBJU19TT1JUQUJMRSA9ICdpc1NvcnRhYmxlJyxcbiAgICBHRVRfT1BFUkFUSU9OX1RZUEUgPSAnZ2V0T3BlcmF0aW9uVHlwZScsXG4gICAgR0VUX1JFTEFURURfUFJJTUFSWV9LRVlTID0gJ2dldFJlbGF0ZWRUYWJsZVByaW1hcnlLZXlzJyxcbiAgICBHRVRfRU5USVRZX05BTUUgPSAnZ2V0RW50aXR5TmFtZScsXG4gICAgU0VUX0lOUFVUID0gJ3NldGlucHV0JyxcbiAgICBHRVRfUkVMQVRFRF9UQUJMRV9EQVRBID0gJ2dldFJlbGF0ZWRUYWJsZURhdGEnLFxuICAgIEdFVF9ESVNUSU5DVF9EQVRBX0JZX0ZJRUxEUyA9ICdnZXREaXN0aW5jdERhdGFCeUZpZWxkcycsXG4gICAgR0VUX0FHR1JFR0FURURfREFUQSA9ICdnZXRBZ2dyZWdhdGVkRGF0YScsXG4gICAgR0VUX01BVENIX01PREUgPSAnZ2V0TWF0Y2hNb2RlJyxcbiAgICBET1dOTE9BRCA9ICdkb3dubG9hZCcsXG4gICAgR0VUX05BTUUgPSAnZ2V0TmFtZScsXG4gICAgR0VUX1BST1BFUlRJRVNfTUFQID0gJ2dldFByb3BlcnRpZXNNYXAnLFxuICAgIEdFVF9QUklNQVJZX0tFWSA9ICdnZXRQcmltYXJ5S2V5JyxcbiAgICBHRVRfQkxPQl9VUkwgPSAnZ2V0QmxvYlVSTCcsXG4gICAgU1VQUE9SVFNfU0VSVkVSX0ZJTFRFUiA9ICdzdXBwb3J0c1NlcnZlckZpbHRlcicsXG4gICAgR0VUX09QVElPTlMgPSAnZ2V0T3B0aW9ucycsXG4gICAgU0VBUkNIX1JFQ09SRFMgPSAnc2VhcmNoUmVjb3JkcycsXG4gICAgR0VUX1JFUVVFU1RfUEFSQU1TID0gJ2dldFJlcXVlc3RQYXJhbXMnLFxuICAgIEdFVF9QQUdJTkdfT1BUSU9OUyA9ICdnZXRQYWdpbmdPcHRpb25zJyxcbiAgICBGRVRDSF9ESVNUSU5DVF9WQUxVRVMgPSAnZmV0Y2hEaXN0aW5jdFZhbHVlcycsXG4gICAgR0VUX1VOSVFVRV9JREVOVElGSUVSID0gJ2dldFVuaXF1ZUlkZW50aWZpZXInLFxuICAgIEdFVF9DT05URVhUX0lERU5USUZJRVIgPSAnZ2V0Q29udGV4dElkZW50aWZpZXInLFxuICAgIElTX1VQREFURV9SRVFVSVJFRCA9ICdpc1VwZGF0ZVJlcXVpcmVkJyxcbiAgICBBRERfSVRFTSA9ICdhZGRJdGVtJyxcbiAgICBTRVRfSVRFTSA9ICdzZXRJdGVtJyxcbiAgICBSRU1PVkVfSVRFTSA9ICdyZW1vdmVJdGVtJyxcbiAgICBJU19CT1VORF9UT19MT0NBTEUgPSAnaXNCb3VuZFRvTG9jYWxlJyxcbiAgICBHRVRfREVGQVVMVF9MT0NBTEUgPSAnZ2V0RGVmYXVsdExvY2FsZScsXG4gICAgQ0FOQ0VMID0gJ2NhbmNlbCcsXG4gICAgU0VUX1BBR0lOQVRJT04gPSAnc2V0UGFnaW5hdGlvbidcbn1cblxuZXhwb3J0IGNvbnN0IERhdGFTb3VyY2UgPSB7XG4gICAgT3BlcmF0aW9uXG59O1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQXBwIHtcbiAgICBhcHBMb2NhbGU6IGFueTtcbiAgICBWYXJpYWJsZXM6IGFueTtcbiAgICBBY3Rpb25zOiBhbnk7XG4gICAgb25BcHBWYXJpYWJsZXNSZWFkeTogRnVuY3Rpb247XG4gICAgb25TZXNzaW9uVGltZW91dDogRnVuY3Rpb247XG4gICAgb25CZWZvcmVBcHBSZWFkeTogRnVuY3Rpb247XG4gICAgb25QYWdlUmVhZHk6IEZ1bmN0aW9uO1xuICAgIG9uQmVmb3JlUGFnZUxlYXZlOiBGdW5jdGlvbjtcbiAgICBvbkJlZm9yZVNlcnZpY2VDYWxsOiBGdW5jdGlvbjtcbiAgICBvblNlcnZpY2VTdWNjZXNzOiBGdW5jdGlvbjtcbiAgICBvblNlcnZpY2VFcnJvcjogRnVuY3Rpb247XG4gICAgcHJvamVjdE5hbWU6IHN0cmluZztcbiAgICBpc1ByZWZhYlR5cGU6IGJvb2xlYW47XG4gICAgaXNBcHBsaWNhdGlvblR5cGU6IGJvb2xlYW47XG4gICAgc2V0d2lkZ2V0TG9jYWxlOiBGdW5jdGlvbjtcbiAgICBpc1RhYmxldEFwcGxpY2F0aW9uVHlwZTogYm9vbGVhbjtcbiAgICBpc1RlbXBsYXRlQnVuZGxlVHlwZTogYm9vbGVhbjtcbiAgICBjaGFuZ2VMb2NhbGU6IEZ1bmN0aW9uO1xuICAgIGdldFNlbGVjdGVkTG9jYWxlOiBGdW5jdGlvbjtcbiAgICBzZXRUaW1lem9uZTogRnVuY3Rpb247XG4gICAgcmVsb2FkOiBGdW5jdGlvbjtcbiAgICBvbjQwMTogRnVuY3Rpb247XG4gICAgbm90aWZ5QXBwOiBGdW5jdGlvbjtcbiAgICBnZXREZXBlbmRlbmN5OiBGdW5jdGlvbjtcbiAgICBuZXR3b3JrU3RhdHVzOiBhbnk7XG4gICAgbm90aWZ5OiAoZXZlbnROYW1lOiBzdHJpbmcsIGRhdGE/OiBhbnkpID0+IHZvaWQ7XG4gICAgZGVwbG95ZWRVcmw6IHN0cmluZztcbiAgICBjdXN0b21VcmxTY2hlbWU6IHN0cmluZztcbiAgICBzZWxlY3RlZFZpZXdQb3J0OiBPYmplY3Q7XG4gICAgc3Vic2NyaWJlOiAoZXZlbnROYW1lLCBjYWxsYmFjazogKGRhdGE6IGFueSkgPT4gdm9pZCkgPT4gKCkgPT4gdm9pZDtcbiAgICBkeW5hbWljQ29tcG9uZW50Q29udGFpbmVyUmVmOiBhbnk7XG4gICAgY2xlYXJQYWdlQ2FjaGU6IChwYWdlTmFtZT86IHN0cmluZykgPT4gdm9pZDtcblxuICAgIGFjdGl2ZVBhZ2VOYW1lOiBzdHJpbmc7XG4gICAgYWN0aXZlUGFnZTogYW55O1xuICAgIFBhZ2U6IGFueTtcbiAgICBhY3RpdmVQYWdlTG9hZFRpbWU6IG51bWJlcjtcbiAgICBsYW5kaW5nUGFnZU5hbWU6IHN0cmluZztcbiAgICBsYXN0QWN0aXZlUGFnZU5hbWU6IHN0cmluZztcbiAgICBkZXZpY2VDYXRlZ29yeTogc3RyaW5nO1xuXG4gICAgYWN0aXZlTGF5b3V0TmFtZTogc3RyaW5nO1xuICAgIGxheW91dFBhZ2VzOiBzdHJpbmdbXTtcbn1cblxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3REaWFsb2dTZXJ2aWNlIHtcbiAgICBwdWJsaWMgYWJzdHJhY3QgcmVnaXN0ZXIobmFtZTogc3RyaW5nLCBkaWFsb2dSZWY6IGFueSwgc2NvcGU6IGFueSk7XG4gICAgcHVibGljIGFic3RyYWN0IGRlUmVnaXN0ZXIobmFtZTogc3RyaW5nLCBzY29wZTogYW55KTtcbiAgICBwdWJsaWMgYWJzdHJhY3Qgb3BlbihuYW1lOiBzdHJpbmcsIHNjb3BlPzogYW55LCBpbml0U3RhdGU/OiBhbnkpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBjbG9zZShuYW1lOiBzdHJpbmcsIHNjb3BlPzogYW55KTtcbiAgICBwdWJsaWMgYWJzdHJhY3Qgc2hvd0FwcENvbmZpcm1EaWFsb2coaW5pdFN0YXRlPzogYW55KTtcbiAgICBwdWJsaWMgYWJzdHJhY3QgY2xvc2VBcHBDb25maXJtRGlhbG9nKCk7XG4gICAgcHVibGljIGFic3RyYWN0IGdldEFwcENvbmZpcm1EaWFsb2coKTtcbiAgICBwdWJsaWMgYWJzdHJhY3Qgc2V0QXBwQ29uZmlybURpYWxvZyhkaWFsb2dOYW1lOiBzdHJpbmcpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBjbG9zZUFsbERpYWxvZ3M6IEZ1bmN0aW9uO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBhZGRUb09wZW5lZERpYWxvZ3MocmVmOiBhbnkpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXRMYXN0T3BlbmVkRGlhbG9nKCk7XG4gICAgcHVibGljIGFic3RyYWN0IHJlbW92ZUZyb21PcGVuZWREaWFsb2dzKHJlZjogYW55KTtcbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0T3BlbmVkRGlhbG9ncygpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBhZGRUb0Nsb3NlZERpYWxvZ3MocmVmOiBhbnkpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCByZW1vdmVGcm9tQ2xvc2VkRGlhbG9ncyhyZWY6IGFueSk7XG4gICAgcHVibGljIGFic3RyYWN0IGdldERpYWxvZ1JlZkZyb21DbG9zZWREaWFsb2dzKCk7XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdEh0dHBTZXJ2aWNlIHtcbiAgICBwdWJsaWMgYWJzdHJhY3Qgc2VuZChvcHRpb25zOiBhbnkpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBzZXRMb2NhbGUobG9jYWxlKTtcbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0TG9jYWxlKCk7XG4gICAgcHVibGljIGFic3RyYWN0IGdldEhlYWRlcihlcnJvciwgaGVhZGVyS2V5KTtcbiAgICBwdWJsaWMgYWJzdHJhY3QgaXNQbGF0Zm9ybVNlc3Npb25UaW1lb3V0KGVycm9yKTtcbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0KHVybDogc3RyaW5nLCBvcHRpb25zPzogYW55KTtcbiAgICBwdWJsaWMgYWJzdHJhY3QgcG9zdCh1cmwsIGRhdGEsIG9wdGlvbnMpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBwdXQodXJsLCBkYXRhLCBvcHRpb25zKTtcbiAgICBwdWJsaWMgYWJzdHJhY3QgcGF0Y2godXJsLCBkYXRhLCBvcHRpb25zKTtcbiAgICBwdWJsaWMgYWJzdHJhY3QgZGVsZXRlKHVybCwgb3B0aW9ucyk7XG4gICAgcHVibGljIGFic3RyYWN0IGhlYWQodXJsLCBvcHRpb25zKTtcbiAgICBwdWJsaWMgYWJzdHJhY3QganNvbnAodXJsLCBvcHRpb25zKTtcbiAgICBwdWJsaWMgYWJzdHJhY3QgdXBsb2FkKHVybCwgZGF0YSwgb3B0aW9ucyk7XG4gICAgcHVibGljIGFic3RyYWN0IHJlZ2lzdGVyT25TZXNzaW9uVGltZW91dChjYWxsYmFjayk7XG4gICAgcHVibGljIGFic3RyYWN0IG9uNDAxKCk7XG4gICAgcHVibGljIGFic3RyYWN0IHB1c2hUb1Nlc3Npb25GYWlsdXJlUXVldWUoY2FsbGJhY2spO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBleGVjdXRlU2Vzc2lvbkZhaWx1cmVSZXF1ZXN0cygpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBzZW5kQ2FsbEFzT2JzZXJ2YWJsZShvcHRpb25zOiBhbnksIHBhcmFtcz86IGFueSk6IGFueTtcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0STE4blNlcnZpY2Uge1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXRTZWxlY3RlZExvY2FsZSgpOiBzdHJpbmc7XG4gICAgcHVibGljIGFic3RyYWN0IGdldERlZmF1bHRTdXBwb3J0ZWRMb2NhbGUoKTogc3RyaW5nO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXRBcHBMb2NhbGUoKTogYW55O1xuICAgIHB1YmxpYyBhYnN0cmFjdCBzZXRTZWxlY3RlZExvY2FsZShsb2NhbGUpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBsb2FkRGVmYXVsdExvY2FsZSgpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXRMb2NhbGl6ZWRNZXNzYWdlKG1lc3NhZ2UsIC4uLmFyZ3MpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBpbml0Q2FsZW5kYXJMb2NhbGUoKTogUHJvbWlzZTxhbnk+O1xuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBsb2FkQXBwTG9jYWxlQnVuZGxlKCk7XG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGxvYWRNb21lbnRMb2NhbGVCdW5kbGUobG9jYWxlTGFuZyk7XG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGxvYWRMb2NhbGVCdW5kbGVzKGxvY2FsZUxhbmcpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBzZXRUaW1lem9uZShsb2NhbGUsIGNvbXBJbnN0YW5jZT8pO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXRGb3JtYXRzQnlMb2NhbGUoKTtcbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0VGltZXpvbmUoY29tcEluc3RhbmNlPyk7XG4gICAgcHVibGljIGFic3RyYWN0IGdldFByZWZhYkxvY2FsZUJ1bmRsZShwcmVmYWJOYW1lOiBzdHJpbmcpOiBhbnk7XG4gICAgcHVibGljIGFic3RyYWN0IHNldHdpZGdldExvY2FsZShsb2NhbGUpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXR3aWRnZXRMb2NhbGUoKTtcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0VG9hc3RlclNlcnZpY2Uge1xuICAgIHB1YmxpYyBhYnN0cmFjdCBzdWNjZXNzKHRpdGxlOiBzdHJpbmcsIGRlc2M6IHN0cmluZyk7XG4gICAgcHVibGljIGFic3RyYWN0IGVycm9yKHRpdGxlOiBzdHJpbmcsIGRlc2M6IHN0cmluZyk7XG4gICAgcHVibGljIGFic3RyYWN0IGluZm8odGl0bGU6IHN0cmluZywgZGVzYzogc3RyaW5nKTtcbiAgICBwdWJsaWMgYWJzdHJhY3Qgd2Fybih0aXRsZTogc3RyaW5nLCBkZXNjOiBzdHJpbmcpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBzaG93KFxuICAgICAgICB0eXBlOiBzdHJpbmcsXG4gICAgICAgIHRpdGxlOiBzdHJpbmcsXG4gICAgICAgIGRlc2M6IHN0cmluZyxcbiAgICAgICAgdGltZW91dDogbnVtYmVyLFxuICAgICAgICBib2R5T3V0cHV0VHlwZTogc3RyaW5nLFxuICAgICAgICBvbkNsaWNrSGFuZGxlcjogRnVuY3Rpb24sXG4gICAgICAgIG9uSGlkZUNhbGxiYWNrOiBGdW5jdGlvblxuICAgICk7XG4gICAgcHVibGljIGFic3RyYWN0IGhpZGUodG9hc3Rlck9iajogYW55KTtcbiAgICBwdWJsaWMgYWJzdHJhY3Qgc2hvd0N1c3RvbShwYWdlTmFtZTogc3RyaW5nLCBvcHRpb25zPzogYW55KTtcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0U3Bpbm5lclNlcnZpY2Uge1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXRNZXNzYWdlU291cmNlKCk7XG4gICAgcHVibGljIGFic3RyYWN0IHNob3dDb250ZXh0U3Bpbm5lcihzcGlubmVyQ29udGV4dDogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcsIGlkOiBzdHJpbmcpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBzaG93QXBwU3Bpbm5lcihtc2c6IHN0cmluZywgaWQ6IHN0cmluZyk7XG4gICAgcHVibGljIGFic3RyYWN0IGhpZGVDb250ZXh0U3Bpbm5lcihjdHg6IHN0cmluZywgaWQ6IHN0cmluZyk7XG4gICAgcHVibGljIGFic3RyYWN0IHNob3cobWVzc2FnZTogc3RyaW5nLCBpZD86IHN0cmluZywgc3Bpbm5lckNsYXNzPzogc3RyaW5nLCBzcGlubmVyQ29udGV4dD86IHN0cmluZywgdmFyaWFibGVTY29wZUlkPzogc3RyaW5nKTtcbiAgICBwdWJsaWMgYWJzdHJhY3QgaGlkZShpZDogc3RyaW5nKTtcbn1cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBVc2VyRGVmaW5lZEV4ZWN1dGlvbkNvbnRleHQge1xuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmF2aWdhdGlvbk9wdGlvbnMge1xuICAgICRldmVudD86IGFueTtcbiAgICBwYWdlTmFtZT86IHN0cmluZztcbiAgICB0cmFuc2l0aW9uPzogc3RyaW5nO1xuICAgIHVybFBhcmFtcz86IGFueTtcbiAgICB2aWV3TmFtZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0TmF2aWdhdGlvblNlcnZpY2Uge1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXRQYWdlVHJhbnNpdGlvbigpOiBzdHJpbmc7XG4gICAgcHVibGljIGFic3RyYWN0IGdvVG9QYWdlKHBhZ2VOYW1lOiBzdHJpbmcsIG9wdGlvbnM6IE5hdmlnYXRpb25PcHRpb25zKTtcbiAgICBwdWJsaWMgYWJzdHJhY3QgZ29Ub1ByZXZpb3VzKCk7XG4gICAgcHVibGljIGFic3RyYWN0IGdvVG9WaWV3KHZpZXdOYW1lOiBzdHJpbmcsIG9wdGlvbnM6IE5hdmlnYXRpb25PcHRpb25zLCB2YXJpYWJsZTogYW55KTtcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFwcERlZmF1bHRzIHtcbiAgICBwdWJsaWMgZGF0ZUZvcm1hdDtcbiAgICBwdWJsaWMgdGltZUZvcm1hdDtcbiAgICBwdWJsaWMgZGF0ZVRpbWVGb3JtYXQ7XG4gICAgcHVibGljIGN1cnJlbmN5Q29kZTtcbiAgICBwdWJsaWMgYWJzdHJhY3Qgc2V0Rm9ybWF0cyhmb3JtYXRzOiBhbnkpO1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRHluYW1pY0NvbXBvbmVudFJlZlByb3ZpZGVyIHtcbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0Q29tcG9uZW50RmFjdG9yeVJlZihzZWxlY3Rvcjogc3RyaW5nLCBtYXJrdXA6IHN0cmluZywgb3B0aW9ucz86IGFueSk7XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQYXJ0aWFsUmVmUHJvdmlkZXIge1xuICAgIGFic3RyYWN0IGdldENvbXBvbmVudEZhY3RvcnlSZWYocGFydGlhbE5hbWU6IHN0cmluZywgY29tcG9uZW50VHlwZTogQ29tcG9uZW50VHlwZSwgb3B0aW9ucz86IGFueSk6IFByb21pc2U8YW55Pjtcbn1cbiJdfQ==
79
+ export class CustomWidgetRefProvider {
80
+ }
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy90eXBlcy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxhQUtYO0FBTEQsV0FBWSxhQUFhO0lBQ3JCLGlEQUFJLENBQUE7SUFDSixxREFBTSxDQUFBO0lBQ04sdURBQU8sQ0FBQTtJQUNQLHFEQUFNLENBQUE7QUFDVixDQUFDLEVBTFcsYUFBYSxLQUFiLGFBQWEsUUFLeEI7QUFFRCxNQUFNLE9BQU8sV0FBVztDQUV2QjtBQUVELElBQUssU0EwQ0o7QUExQ0QsV0FBSyxTQUFTO0lBQ1YseUNBQTRCLENBQUE7SUFDNUIsMkNBQThCLENBQUE7SUFDOUIsMkNBQThCLENBQUE7SUFDOUIsMkNBQThCLENBQUE7SUFDOUIsOEJBQWlCLENBQUE7SUFDakIsOEJBQWlCLENBQUE7SUFDakIsOEJBQWlCLENBQUE7SUFDakIsd0NBQTJCLENBQUE7SUFDM0IsMkNBQThCLENBQUE7SUFDOUIsMERBQTZDLENBQUE7SUFDN0MsdUNBQTBCLENBQUE7SUFDMUIsdUNBQTBCLENBQUE7SUFDMUIsb0RBQXVDLENBQUE7SUFDdkMsb0VBQXVELENBQUE7SUFDdkQsOENBQWlDLENBQUE7SUFDakMsbUNBQXNCLENBQUE7SUFDdEIsMkRBQThDLENBQUE7SUFDOUMsb0VBQXVELENBQUE7SUFDdkQsc0RBQXlDLENBQUE7SUFDekMsNENBQStCLENBQUE7SUFDL0Isa0NBQXFCLENBQUE7SUFDckIsaUNBQW9CLENBQUE7SUFDcEIsb0RBQXVDLENBQUE7SUFDdkMsOENBQWlDLENBQUE7SUFDakMsd0NBQTJCLENBQUE7SUFDM0IsNERBQStDLENBQUE7SUFDL0MsdUNBQTBCLENBQUE7SUFDMUIsNkNBQWdDLENBQUE7SUFDaEMsb0RBQXVDLENBQUE7SUFDdkMsb0RBQXVDLENBQUE7SUFDdkMsMERBQTZDLENBQUE7SUFDN0MsMERBQTZDLENBQUE7SUFDN0MsNERBQStDLENBQUE7SUFDL0Msb0RBQXVDLENBQUE7SUFDdkMsaUNBQW9CLENBQUE7SUFDcEIsaUNBQW9CLENBQUE7SUFDcEIsdUNBQTBCLENBQUE7SUFDMUIsbURBQXNDLENBQUE7SUFDdEMsb0RBQXVDLENBQUE7SUFDdkMsOEJBQWlCLENBQUE7SUFDakIsNkNBQWdDLENBQUE7QUFDcEMsQ0FBQyxFQTFDSSxTQUFTLEtBQVQsU0FBUyxRQTBDYjtBQUVELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN0QixTQUFTO0NBQ1osQ0FBQztBQUVGLE1BQU0sT0FBZ0IsR0FBRztDQTRDeEI7QUFHRCxNQUFNLE9BQWdCLHFCQUFxQjtDQWlCMUM7QUFFRCxNQUFNLE9BQWdCLG1CQUFtQjtDQW1CeEM7QUFFRCxNQUFNLE9BQWdCLG1CQUFtQjtDQWlCeEM7QUFFRCxNQUFNLE9BQWdCLHNCQUFzQjtDQWdCM0M7QUFFRCxNQUFNLE9BQWdCLHNCQUFzQjtDQU8zQztBQUNELE1BQU0sT0FBZ0IsMkJBQTJCO0NBRWhEO0FBVUQsTUFBTSxPQUFnQix5QkFBeUI7Q0FLOUM7QUFFRCxNQUFNLE9BQWdCLFdBQVc7Q0FNaEM7QUFFRCxNQUFNLE9BQWdCLDJCQUEyQjtDQUVoRDtBQUVELE1BQU0sT0FBZ0Isa0JBQWtCO0NBRXZDO0FBRUQsTUFBTSxPQUFnQix1QkFBdUI7Q0FFNUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBDb21wb25lbnRUeXBlIHtcbiAgICBQQUdFLFxuICAgIFBSRUZBQixcbiAgICBQQVJUSUFMLFxuICAgIFdJREdFVFxufVxuXG5leHBvcnQgY2xhc3MgSURhdGFTb3VyY2Uge1xuICAgIGV4ZWN1dGU6IChvcGVyYXRpb246IE9wZXJhdGlvbiwgb3B0aW9ucz86IGFueSkgPT4gYm9vbGVhbiB8IHN0cmluZyB8IFByb21pc2U8YW55Pjtcbn1cblxuZW51bSBPcGVyYXRpb24ge1xuICAgIExJU1RfUkVDT1JEUyA9ICdsaXN0UmVjb3JkcycsXG4gICAgVVBEQVRFX1JFQ09SRCA9ICd1cGRhdGVSZWNvcmQnLFxuICAgIElOU0VSVF9SRUNPUkQgPSAnaW5zZXJ0UmVjb3JkJyxcbiAgICBERUxFVEVfUkVDT1JEID0gJ2RlbGV0ZVJlY29yZCcsXG4gICAgSU5WT0tFID0gJ2ludm9rZScsXG4gICAgVVBEQVRFID0gJ3VwZGF0ZScsXG4gICAgTk9USUZZID0gJ25vdGlmeScsXG4gICAgSVNfQVBJX0FXQVJFID0gJ2lzQXBpQXdhcmUnLFxuICAgIFNVUFBPUlRTX0NSVUQgPSAnc3VwcG9ydHNDUlVEJyxcbiAgICBTVVBQT1JUU19ESVNUSU5DVF9BUEkgPSAnc3VwcG9ydHNEaXN0aW5jdEFQSScsXG4gICAgSVNfUEFHRUFCTEUgPSAnaXNQYWdlYWJsZScsXG4gICAgSVNfU09SVEFCTEUgPSAnaXNTb3J0YWJsZScsXG4gICAgR0VUX09QRVJBVElPTl9UWVBFID0gJ2dldE9wZXJhdGlvblR5cGUnLFxuICAgIEdFVF9SRUxBVEVEX1BSSU1BUllfS0VZUyA9ICdnZXRSZWxhdGVkVGFibGVQcmltYXJ5S2V5cycsXG4gICAgR0VUX0VOVElUWV9OQU1FID0gJ2dldEVudGl0eU5hbWUnLFxuICAgIFNFVF9JTlBVVCA9ICdzZXRpbnB1dCcsXG4gICAgR0VUX1JFTEFURURfVEFCTEVfREFUQSA9ICdnZXRSZWxhdGVkVGFibGVEYXRhJyxcbiAgICBHRVRfRElTVElOQ1RfREFUQV9CWV9GSUVMRFMgPSAnZ2V0RGlzdGluY3REYXRhQnlGaWVsZHMnLFxuICAgIEdFVF9BR0dSRUdBVEVEX0RBVEEgPSAnZ2V0QWdncmVnYXRlZERhdGEnLFxuICAgIEdFVF9NQVRDSF9NT0RFID0gJ2dldE1hdGNoTW9kZScsXG4gICAgRE9XTkxPQUQgPSAnZG93bmxvYWQnLFxuICAgIEdFVF9OQU1FID0gJ2dldE5hbWUnLFxuICAgIEdFVF9QUk9QRVJUSUVTX01BUCA9ICdnZXRQcm9wZXJ0aWVzTWFwJyxcbiAgICBHRVRfUFJJTUFSWV9LRVkgPSAnZ2V0UHJpbWFyeUtleScsXG4gICAgR0VUX0JMT0JfVVJMID0gJ2dldEJsb2JVUkwnLFxuICAgIFNVUFBPUlRTX1NFUlZFUl9GSUxURVIgPSAnc3VwcG9ydHNTZXJ2ZXJGaWx0ZXInLFxuICAgIEdFVF9PUFRJT05TID0gJ2dldE9wdGlvbnMnLFxuICAgIFNFQVJDSF9SRUNPUkRTID0gJ3NlYXJjaFJlY29yZHMnLFxuICAgIEdFVF9SRVFVRVNUX1BBUkFNUyA9ICdnZXRSZXF1ZXN0UGFyYW1zJyxcbiAgICBHRVRfUEFHSU5HX09QVElPTlMgPSAnZ2V0UGFnaW5nT3B0aW9ucycsXG4gICAgRkVUQ0hfRElTVElOQ1RfVkFMVUVTID0gJ2ZldGNoRGlzdGluY3RWYWx1ZXMnLFxuICAgIEdFVF9VTklRVUVfSURFTlRJRklFUiA9ICdnZXRVbmlxdWVJZGVudGlmaWVyJyxcbiAgICBHRVRfQ09OVEVYVF9JREVOVElGSUVSID0gJ2dldENvbnRleHRJZGVudGlmaWVyJyxcbiAgICBJU19VUERBVEVfUkVRVUlSRUQgPSAnaXNVcGRhdGVSZXF1aXJlZCcsXG4gICAgQUREX0lURU0gPSAnYWRkSXRlbScsXG4gICAgU0VUX0lURU0gPSAnc2V0SXRlbScsXG4gICAgUkVNT1ZFX0lURU0gPSAncmVtb3ZlSXRlbScsXG4gICAgSVNfQk9VTkRfVE9fTE9DQUxFID0gJ2lzQm91bmRUb0xvY2FsZScsXG4gICAgR0VUX0RFRkFVTFRfTE9DQUxFID0gJ2dldERlZmF1bHRMb2NhbGUnLFxuICAgIENBTkNFTCA9ICdjYW5jZWwnLFxuICAgIFNFVF9QQUdJTkFUSU9OID0gJ3NldFBhZ2luYXRpb24nXG59XG5cbmV4cG9ydCBjb25zdCBEYXRhU291cmNlID0ge1xuICAgIE9wZXJhdGlvblxufTtcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFwcCB7XG4gICAgYXBwTG9jYWxlOiBhbnk7XG4gICAgVmFyaWFibGVzOiBhbnk7XG4gICAgQWN0aW9uczogYW55O1xuICAgIG9uQXBwVmFyaWFibGVzUmVhZHk6IEZ1bmN0aW9uO1xuICAgIG9uU2Vzc2lvblRpbWVvdXQ6IEZ1bmN0aW9uO1xuICAgIG9uQmVmb3JlQXBwUmVhZHk6IEZ1bmN0aW9uO1xuICAgIG9uUGFnZVJlYWR5OiBGdW5jdGlvbjtcbiAgICBvbkJlZm9yZVBhZ2VMZWF2ZTogRnVuY3Rpb247XG4gICAgb25CZWZvcmVTZXJ2aWNlQ2FsbDogRnVuY3Rpb247XG4gICAgb25TZXJ2aWNlU3VjY2VzczogRnVuY3Rpb247XG4gICAgb25TZXJ2aWNlRXJyb3I6IEZ1bmN0aW9uO1xuICAgIHByb2plY3ROYW1lOiBzdHJpbmc7XG4gICAgaXNQcmVmYWJUeXBlOiBib29sZWFuO1xuICAgIGlzQXBwbGljYXRpb25UeXBlOiBib29sZWFuO1xuICAgIHNldHdpZGdldExvY2FsZTogRnVuY3Rpb247XG4gICAgaXNUYWJsZXRBcHBsaWNhdGlvblR5cGU6IGJvb2xlYW47XG4gICAgaXNUZW1wbGF0ZUJ1bmRsZVR5cGU6IGJvb2xlYW47XG4gICAgY2hhbmdlTG9jYWxlOiBGdW5jdGlvbjtcbiAgICBnZXRTZWxlY3RlZExvY2FsZTogRnVuY3Rpb247XG4gICAgc2V0VGltZXpvbmU6IEZ1bmN0aW9uO1xuICAgIHJlbG9hZDogRnVuY3Rpb247XG4gICAgb240MDE6IEZ1bmN0aW9uO1xuICAgIG5vdGlmeUFwcDogRnVuY3Rpb247XG4gICAgZ2V0RGVwZW5kZW5jeTogRnVuY3Rpb247XG4gICAgbmV0d29ya1N0YXR1czogYW55O1xuICAgIG5vdGlmeTogKGV2ZW50TmFtZTogc3RyaW5nLCBkYXRhPzogYW55KSA9PiB2b2lkO1xuICAgIGRlcGxveWVkVXJsOiBzdHJpbmc7XG4gICAgY3VzdG9tVXJsU2NoZW1lOiBzdHJpbmc7XG4gICAgc2VsZWN0ZWRWaWV3UG9ydDogT2JqZWN0O1xuICAgIHN1YnNjcmliZTogKGV2ZW50TmFtZSwgY2FsbGJhY2s6IChkYXRhOiBhbnkpID0+IHZvaWQpID0+ICgpID0+IHZvaWQ7XG4gICAgZHluYW1pY0NvbXBvbmVudENvbnRhaW5lclJlZjogYW55O1xuICAgIGNsZWFyUGFnZUNhY2hlOiAocGFnZU5hbWU/OiBzdHJpbmcpID0+IHZvaWQ7XG5cbiAgICBhY3RpdmVQYWdlTmFtZTogc3RyaW5nO1xuICAgIGFjdGl2ZVBhZ2U6IGFueTtcbiAgICBQYWdlOiBhbnk7XG4gICAgYWN0aXZlUGFnZUxvYWRUaW1lOiBudW1iZXI7XG4gICAgbGFuZGluZ1BhZ2VOYW1lOiBzdHJpbmc7XG4gICAgbGFzdEFjdGl2ZVBhZ2VOYW1lOiBzdHJpbmc7XG4gICAgZGV2aWNlQ2F0ZWdvcnk6IHN0cmluZztcblxuICAgIGFjdGl2ZUxheW91dE5hbWU6IHN0cmluZztcbiAgICBsYXlvdXRQYWdlczogc3RyaW5nW107XG59XG5cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0RGlhbG9nU2VydmljZSB7XG4gICAgcHVibGljIGFic3RyYWN0IHJlZ2lzdGVyKG5hbWU6IHN0cmluZywgZGlhbG9nUmVmOiBhbnksIHNjb3BlOiBhbnkpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBkZVJlZ2lzdGVyKG5hbWU6IHN0cmluZywgc2NvcGU6IGFueSk7XG4gICAgcHVibGljIGFic3RyYWN0IG9wZW4obmFtZTogc3RyaW5nLCBzY29wZT86IGFueSwgaW5pdFN0YXRlPzogYW55KTtcbiAgICBwdWJsaWMgYWJzdHJhY3QgY2xvc2UobmFtZTogc3RyaW5nLCBzY29wZT86IGFueSk7XG4gICAgcHVibGljIGFic3RyYWN0IHNob3dBcHBDb25maXJtRGlhbG9nKGluaXRTdGF0ZT86IGFueSk7XG4gICAgcHVibGljIGFic3RyYWN0IGNsb3NlQXBwQ29uZmlybURpYWxvZygpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXRBcHBDb25maXJtRGlhbG9nKCk7XG4gICAgcHVibGljIGFic3RyYWN0IHNldEFwcENvbmZpcm1EaWFsb2coZGlhbG9nTmFtZTogc3RyaW5nKTtcbiAgICBwdWJsaWMgYWJzdHJhY3QgY2xvc2VBbGxEaWFsb2dzOiBGdW5jdGlvbjtcbiAgICBwdWJsaWMgYWJzdHJhY3QgYWRkVG9PcGVuZWREaWFsb2dzKHJlZjogYW55KTtcbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0TGFzdE9wZW5lZERpYWxvZygpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCByZW1vdmVGcm9tT3BlbmVkRGlhbG9ncyhyZWY6IGFueSk7XG4gICAgcHVibGljIGFic3RyYWN0IGdldE9wZW5lZERpYWxvZ3MoKTtcbiAgICBwdWJsaWMgYWJzdHJhY3QgYWRkVG9DbG9zZWREaWFsb2dzKHJlZjogYW55KTtcbiAgICBwdWJsaWMgYWJzdHJhY3QgcmVtb3ZlRnJvbUNsb3NlZERpYWxvZ3MocmVmOiBhbnkpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXREaWFsb2dSZWZGcm9tQ2xvc2VkRGlhbG9ncygpO1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RIdHRwU2VydmljZSB7XG4gICAgcHVibGljIGFic3RyYWN0IHNlbmQob3B0aW9uczogYW55KTtcbiAgICBwdWJsaWMgYWJzdHJhY3Qgc2V0TG9jYWxlKGxvY2FsZSk7XG4gICAgcHVibGljIGFic3RyYWN0IGdldExvY2FsZSgpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXRIZWFkZXIoZXJyb3IsIGhlYWRlcktleSk7XG4gICAgcHVibGljIGFic3RyYWN0IGlzUGxhdGZvcm1TZXNzaW9uVGltZW91dChlcnJvcik7XG4gICAgcHVibGljIGFic3RyYWN0IGdldCh1cmw6IHN0cmluZywgb3B0aW9ucz86IGFueSk7XG4gICAgcHVibGljIGFic3RyYWN0IHBvc3QodXJsLCBkYXRhLCBvcHRpb25zKTtcbiAgICBwdWJsaWMgYWJzdHJhY3QgcHV0KHVybCwgZGF0YSwgb3B0aW9ucyk7XG4gICAgcHVibGljIGFic3RyYWN0IHBhdGNoKHVybCwgZGF0YSwgb3B0aW9ucyk7XG4gICAgcHVibGljIGFic3RyYWN0IGRlbGV0ZSh1cmwsIG9wdGlvbnMpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBoZWFkKHVybCwgb3B0aW9ucyk7XG4gICAgcHVibGljIGFic3RyYWN0IGpzb25wKHVybCwgb3B0aW9ucyk7XG4gICAgcHVibGljIGFic3RyYWN0IHVwbG9hZCh1cmwsIGRhdGEsIG9wdGlvbnMpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCByZWdpc3Rlck9uU2Vzc2lvblRpbWVvdXQoY2FsbGJhY2spO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBvbjQwMSgpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBwdXNoVG9TZXNzaW9uRmFpbHVyZVF1ZXVlKGNhbGxiYWNrKTtcbiAgICBwdWJsaWMgYWJzdHJhY3QgZXhlY3V0ZVNlc3Npb25GYWlsdXJlUmVxdWVzdHMoKTtcbiAgICBwdWJsaWMgYWJzdHJhY3Qgc2VuZENhbGxBc09ic2VydmFibGUob3B0aW9uczogYW55LCBwYXJhbXM/OiBhbnkpOiBhbnk7XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdEkxOG5TZXJ2aWNlIHtcbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0U2VsZWN0ZWRMb2NhbGUoKTogc3RyaW5nO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXREZWZhdWx0U3VwcG9ydGVkTG9jYWxlKCk6IHN0cmluZztcbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0QXBwTG9jYWxlKCk6IGFueTtcbiAgICBwdWJsaWMgYWJzdHJhY3Qgc2V0U2VsZWN0ZWRMb2NhbGUobG9jYWxlKTtcbiAgICBwdWJsaWMgYWJzdHJhY3QgbG9hZERlZmF1bHRMb2NhbGUoKTtcbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0TG9jYWxpemVkTWVzc2FnZShtZXNzYWdlLCAuLi5hcmdzKTtcbiAgICBwdWJsaWMgYWJzdHJhY3QgaW5pdENhbGVuZGFyTG9jYWxlKCk6IFByb21pc2U8YW55PjtcbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgbG9hZEFwcExvY2FsZUJ1bmRsZSgpO1xuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBsb2FkTW9tZW50TG9jYWxlQnVuZGxlKGxvY2FsZUxhbmcpO1xuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBsb2FkTG9jYWxlQnVuZGxlcyhsb2NhbGVMYW5nKTtcbiAgICBwdWJsaWMgYWJzdHJhY3Qgc2V0VGltZXpvbmUobG9jYWxlLCBjb21wSW5zdGFuY2U/KTtcbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0Rm9ybWF0c0J5TG9jYWxlKCk7XG4gICAgcHVibGljIGFic3RyYWN0IGdldFRpbWV6b25lKGNvbXBJbnN0YW5jZT8pO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXRQcmVmYWJMb2NhbGVCdW5kbGUocHJlZmFiTmFtZTogc3RyaW5nKTogYW55O1xuICAgIHB1YmxpYyBhYnN0cmFjdCBzZXR3aWRnZXRMb2NhbGUobG9jYWxlKTtcbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0d2lkZ2V0TG9jYWxlKCk7XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdFRvYXN0ZXJTZXJ2aWNlIHtcbiAgICBwdWJsaWMgYWJzdHJhY3Qgc3VjY2Vzcyh0aXRsZTogc3RyaW5nLCBkZXNjOiBzdHJpbmcpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBlcnJvcih0aXRsZTogc3RyaW5nLCBkZXNjOiBzdHJpbmcpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBpbmZvKHRpdGxlOiBzdHJpbmcsIGRlc2M6IHN0cmluZyk7XG4gICAgcHVibGljIGFic3RyYWN0IHdhcm4odGl0bGU6IHN0cmluZywgZGVzYzogc3RyaW5nKTtcbiAgICBwdWJsaWMgYWJzdHJhY3Qgc2hvdyhcbiAgICAgICAgdHlwZTogc3RyaW5nLFxuICAgICAgICB0aXRsZTogc3RyaW5nLFxuICAgICAgICBkZXNjOiBzdHJpbmcsXG4gICAgICAgIHRpbWVvdXQ6IG51bWJlcixcbiAgICAgICAgYm9keU91dHB1dFR5cGU6IHN0cmluZyxcbiAgICAgICAgb25DbGlja0hhbmRsZXI6IEZ1bmN0aW9uLFxuICAgICAgICBvbkhpZGVDYWxsYmFjazogRnVuY3Rpb25cbiAgICApO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBoaWRlKHRvYXN0ZXJPYmo6IGFueSk7XG4gICAgcHVibGljIGFic3RyYWN0IHNob3dDdXN0b20ocGFnZU5hbWU6IHN0cmluZywgb3B0aW9ucz86IGFueSk7XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdFNwaW5uZXJTZXJ2aWNlIHtcbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0TWVzc2FnZVNvdXJjZSgpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBzaG93Q29udGV4dFNwaW5uZXIoc3Bpbm5lckNvbnRleHQ6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nLCBpZDogc3RyaW5nKTtcbiAgICBwdWJsaWMgYWJzdHJhY3Qgc2hvd0FwcFNwaW5uZXIobXNnOiBzdHJpbmcsIGlkOiBzdHJpbmcpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBoaWRlQ29udGV4dFNwaW5uZXIoY3R4OiBzdHJpbmcsIGlkOiBzdHJpbmcpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBzaG93KG1lc3NhZ2U6IHN0cmluZywgaWQ/OiBzdHJpbmcsIHNwaW5uZXJDbGFzcz86IHN0cmluZywgc3Bpbm5lckNvbnRleHQ/OiBzdHJpbmcsIHZhcmlhYmxlU2NvcGVJZD86IHN0cmluZyk7XG4gICAgcHVibGljIGFic3RyYWN0IGhpZGUoaWQ6IHN0cmluZyk7XG59XG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVXNlckRlZmluZWRFeGVjdXRpb25Db250ZXh0IHtcblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5hdmlnYXRpb25PcHRpb25zIHtcbiAgICAkZXZlbnQ/OiBhbnk7XG4gICAgcGFnZU5hbWU/OiBzdHJpbmc7XG4gICAgdHJhbnNpdGlvbj86IHN0cmluZztcbiAgICB1cmxQYXJhbXM/OiBhbnk7XG4gICAgdmlld05hbWU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdE5hdmlnYXRpb25TZXJ2aWNlIHtcbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0UGFnZVRyYW5zaXRpb24oKTogc3RyaW5nO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnb1RvUGFnZShwYWdlTmFtZTogc3RyaW5nLCBvcHRpb25zOiBOYXZpZ2F0aW9uT3B0aW9ucyk7XG4gICAgcHVibGljIGFic3RyYWN0IGdvVG9QcmV2aW91cygpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnb1RvVmlldyh2aWV3TmFtZTogc3RyaW5nLCBvcHRpb25zOiBOYXZpZ2F0aW9uT3B0aW9ucywgdmFyaWFibGU6IGFueSk7XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBcHBEZWZhdWx0cyB7XG4gICAgcHVibGljIGRhdGVGb3JtYXQ7XG4gICAgcHVibGljIHRpbWVGb3JtYXQ7XG4gICAgcHVibGljIGRhdGVUaW1lRm9ybWF0O1xuICAgIHB1YmxpYyBjdXJyZW5jeUNvZGU7XG4gICAgcHVibGljIGFic3RyYWN0IHNldEZvcm1hdHMoZm9ybWF0czogYW55KTtcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIER5bmFtaWNDb21wb25lbnRSZWZQcm92aWRlciB7XG4gICAgcHVibGljIGFic3RyYWN0IGdldENvbXBvbmVudEZhY3RvcnlSZWYoc2VsZWN0b3I6IHN0cmluZywgbWFya3VwOiBzdHJpbmcsIG9wdGlvbnM/OiBhbnkpO1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUGFydGlhbFJlZlByb3ZpZGVyIHtcbiAgICBhYnN0cmFjdCBnZXRDb21wb25lbnRGYWN0b3J5UmVmKHBhcnRpYWxOYW1lOiBzdHJpbmcsIGNvbXBvbmVudFR5cGU6IENvbXBvbmVudFR5cGUsIG9wdGlvbnM/OiBhbnkpOiBQcm9taXNlPGFueT47XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDdXN0b21XaWRnZXRSZWZQcm92aWRlciB7XG4gICAgYWJzdHJhY3QgZ2V0Q29tcG9uZW50RmFjdG9yeVJlZihjdXN0b21XaWRnZXROYW1lOiBzdHJpbmcsIGNvbXBvbmVudFR5cGU6IENvbXBvbmVudFR5cGUsIG9wdGlvbnM/OiBhbnkpOiBQcm9taXNlPGFueT47XG59XG4iXX0=
@@ -85,6 +85,9 @@ export const getFormWidgetTemplate = (widgetType, innerTmpl, attrs, options = {}
85
85
  case FormWidgetType.TIMESTAMP:
86
86
  tmpl = `<div wmDateTime ${attrs.get('required') === 'true' ? 'required=true' : ''} dataentrymode="${attrs.get('dataentrymode')}" ${innerTmpl} role="input" ${showTmpl}></div>`;
87
87
  break;
88
+ case FormWidgetType.CUSTOM:
89
+ tmpl = `<div wmWidgetContainer customWidgetContainer ${attrs.get('required') === 'true' ? 'required=true' : ''} ${innerTmpl} ${showTmpl}></div>`;
90
+ break;
88
91
  case FormWidgetType.UPLOAD:
89
92
  const counter = options.counter;
90
93
  const pCounter = options.pCounter;
@@ -135,6 +138,8 @@ export const getRequiredFormWidget = (widgetType) => {
135
138
  return 'wm-richtexteditor';
136
139
  case FormWidgetType.SLIDER:
137
140
  return 'wm-slider';
141
+ case FormWidgetType.CUSTOM:
142
+ return 'wm-custom-widget';
138
143
  default:
139
144
  return 'wm-text';
140
145
  }
@@ -258,4 +263,4 @@ export const getRowActionAttrs = attrs => {
258
263
  });
259
264
  return tmpl;
260
265
  };
261
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy91dGlscy9idWlsZC11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFXLE1BQU0sbUJBQW1CLENBQUM7QUFFdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSWhELGtEQUFrRDtBQUNsRCxNQUFNLGtCQUFrQixHQUFHLENBQUMsS0FBSyxFQUFFLE9BQVEsRUFBRSxTQUFVLEVBQUUsRUFBRTtJQUN2RCxJQUFJLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDbkIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUN4QixJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQy9CLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDcEMsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDL0MsU0FBUyxHQUFHLElBQUksU0FBUyxLQUFLLFNBQVMsTUFBTSxTQUFTLCtCQUErQixTQUFTLE9BQU8sU0FBUyxXQUFXLENBQUM7U0FDN0g7SUFDSixDQUFDLENBQUMsQ0FBQztJQUNILE9BQU8sU0FBUyxDQUFDO0FBQ3JCLENBQUMsQ0FBQztBQUVGLHlDQUF5QztBQUN6QyxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLFVBQWtCLEVBQUUsU0FBaUIsRUFBRSxLQUEyQixFQUFFLFVBQWUsRUFBRSxFQUFFLEVBQUU7SUFDM0gsSUFBSSxJQUFJLENBQUM7SUFDVCxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3ZDLE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsYUFBYSxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQzlELE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLElBQUksSUFBSSxDQUFDO0lBQy9GLE1BQU0sUUFBUSxHQUFZLGNBQWMsSUFBSSxPQUFPLENBQUEsQ0FBQyxDQUFDLFNBQVMsY0FBYyxHQUFHLENBQUEsQ0FBQyxDQUFDLGNBQWMsY0FBYyxHQUFHLENBQUM7SUFDakgsUUFBUSxVQUFVLEVBQUU7UUFDaEIsS0FBSyxjQUFjLENBQUMsWUFBWSxDQUFDO1FBQ2pDLEtBQUssY0FBYyxDQUFDLFNBQVM7WUFDekIsSUFBSSxHQUFHLG1EQUFtRCxLQUFLLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxLQUFLLFNBQVMsSUFBSSxRQUFRLFNBQVMsQ0FBQztZQUN2SCxNQUFNO1FBQ1YsS0FBSyxjQUFjLENBQUMsUUFBUTtZQUN4QixJQUFJLEdBQUcsbUJBQW1CLFNBQVMsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxLQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksUUFBUSxTQUFTLENBQUM7WUFDbEgsTUFBTTtRQUNWLEtBQUssY0FBYyxDQUFDLFdBQVc7WUFDM0IsSUFBSSxHQUFHLGtDQUFrQyxTQUFTLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsS0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLFFBQVEsUUFBUSxDQUFDO1lBQ2hJLE1BQU07UUFDVixLQUFLLGNBQWMsQ0FBQyxLQUFLO1lBQ3JCLElBQUksR0FBRywwQ0FBMEMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsS0FBSyxTQUFTLElBQUksUUFBUSxRQUFRLENBQUM7WUFDN0csTUFBTTtRQUNWLEtBQUssY0FBYyxDQUFDLFdBQVc7WUFDM0IsSUFBSSxHQUFHLHNCQUFzQixLQUFLLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxLQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksU0FBUyxJQUFJLFFBQVEsU0FBUyxDQUFDO1lBQ3JILE1BQU07UUFDVixLQUFLLGNBQWMsQ0FBQyxRQUFRO1lBQ3hCLElBQUksR0FBRyxtQkFBbUIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsS0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLFlBQVksSUFBSSxTQUFTLElBQUksUUFBUSxTQUFTLENBQUM7WUFDbEksTUFBTTtRQUNWLEtBQUssY0FBYyxDQUFDLElBQUk7WUFDcEIsSUFBSSxHQUFHLGVBQWUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsS0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsRUFBRSxtQkFBbUIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsS0FBSyxTQUFTLElBQUksUUFBUSxTQUFTLENBQUM7WUFDNUosTUFBTTtRQUNWLEtBQUssY0FBYyxDQUFDLFFBQVE7WUFDeEIsSUFBSSxHQUFHLG1CQUFtQixLQUFLLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxLQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxFQUFFLG1CQUFtQixLQUFLLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxLQUFLLFNBQVMsSUFBSSxRQUFRLFNBQVMsQ0FBQztZQUNoSyxNQUFNO1FBQ1YsS0FBSyxjQUFjLENBQUMsTUFBTTtZQUN0QixJQUFJLEdBQUcsaUJBQWlCLFNBQVMsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxLQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxFQUFFLDRDQUE0QyxZQUFZLElBQUksUUFBUSxTQUFTLENBQUM7WUFDeEssTUFBTTtRQUNWLEtBQUssY0FBYyxDQUFDLFFBQVE7WUFDeEIsSUFBSSxHQUFHLGFBQWEsU0FBUyxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEtBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEVBQUUsZ0RBQWdELFlBQVksSUFBSSxRQUFRLGNBQWMsQ0FBQztZQUM3SyxNQUFNO1FBQ1YsS0FBSyxjQUFjLENBQUMsUUFBUTtZQUN4QixJQUFJLEdBQUcsb0NBQW9DLFNBQVMsSUFBSSxRQUFRLFFBQVEsQ0FBQztZQUN6RSxNQUFNO1FBQ1YsS0FBSyxjQUFjLENBQUMsTUFBTTtZQUN0QixJQUFJLEdBQUcsaUJBQWlCLFNBQVMsSUFBSSxRQUFRLFNBQVMsQ0FBQztZQUN2RCxNQUFNO1FBQ1YsS0FBSyxjQUFjLENBQUMsUUFBUTtZQUN4QixJQUFJLEdBQUcsd0NBQXdDLFNBQVMsSUFBSSxRQUFRLFNBQVMsQ0FBQztZQUM5RSxNQUFNO1FBQ1YsS0FBSyxjQUFjLENBQUMsTUFBTTtZQUN0QixJQUFJLEdBQUcsY0FBYyxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxLQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksU0FBUyxJQUFJLFFBQVEsZUFBZSxDQUFDO1lBQ25ILE1BQU07UUFDVixLQUFLLGNBQWMsQ0FBQyxNQUFNO1lBQ3RCLElBQUksR0FBRyxtQkFBbUIsU0FBUyxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEtBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEVBQUUsNkRBQTZELFFBQVEsU0FBUyxDQUFDO1lBQzNLLE1BQU07UUFDVixLQUFLLGNBQWMsQ0FBQyxNQUFNO1lBQ3RCLElBQUksR0FBRyxpQkFBaUIsU0FBUyxJQUFJLFFBQVEsU0FBUyxDQUFDO1lBQ3ZELE1BQU07UUFDVixLQUFLLGNBQWMsQ0FBQyxNQUFNO1lBQ3RCLElBQUksR0FBRyxpQkFBaUIsU0FBUyxJQUFJLFFBQVEsU0FBUyxDQUFDO1lBQ3ZELE1BQU07UUFDVixLQUFLLGNBQWMsQ0FBQyxJQUFJO1lBQ3BCLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLElBQUksV0FBVyxDQUFDO1lBQ25ELElBQUksR0FBRyxhQUFhLFNBQVMsS0FBSyxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxLQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxNQUFNLEtBQUssWUFBWSxJQUFJLFFBQVEsY0FBYyxDQUFDO1lBQzNLLE1BQU07UUFDVixLQUFLLGNBQWMsQ0FBQyxRQUFRO1lBQ3hCLElBQUksR0FBRyxnQkFBZ0IsU0FBUyxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEtBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEVBQUUsbUJBQW1CLFlBQVksSUFBSSxRQUFRLGlCQUFpQixDQUFDO1lBQ3RKLE1BQU07UUFDVixLQUFLLGNBQWMsQ0FBQyxJQUFJO1lBQ3BCLElBQUksR0FBRyxlQUFlLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEtBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEVBQUUsbUJBQW1CLEtBQUssQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLEtBQUssU0FBUyxJQUFJLFFBQVEsU0FBUyxDQUFDO1lBQzVKLE1BQU07UUFDVixLQUFLLGNBQWMsQ0FBQyxTQUFTO1lBQ3pCLElBQUksR0FBRyxtQkFBbUIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsS0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsRUFBRSxtQkFBbUIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsS0FBSyxTQUFTLGlCQUFpQixRQUFRLFNBQVMsQ0FBQztZQUM3SyxNQUFNO1FBQ1YsS0FBSyxjQUFjLENBQUMsTUFBTTtZQUN0QixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDO1lBQ2hDLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7WUFDbEMsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQztZQUN4QyxNQUFNLFNBQVMsR0FBRyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLFdBQVcsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdEYsSUFBSSxXQUFXLEVBQUU7Z0JBQ2IsSUFBSSxHQUFHLGVBQWUsV0FBVyxDQUFDLFFBQVEsS0FBSyxTQUFTO3dGQUNnQixXQUFXLENBQUMsSUFBSSxLQUFLLFNBQVMsSUFBSSxRQUFRO2dDQUNsRyxDQUFDO2FBQ3BCO2lCQUFNO2dCQUNILElBQUksR0FBRywwQ0FBMEMsT0FBTyxtQ0FBbUMsT0FBTyw0QkFBNEIsT0FBTzs0RUFDekUsT0FBTztpRkFDRixPQUFPLG1CQUFtQixPQUFPLDRCQUE0QixPQUFPOztpQ0FFcEgsU0FBUyx5REFBeUQsT0FBTyxlQUFlLFNBQVM7c0NBQzVGLE9BQU8sZ0NBQWdDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsNEJBQTRCLE9BQU87MkNBQzFHLFFBQVEsNEJBQTRCLE9BQU8sZUFBZSxRQUFRLEdBQUcsQ0FBQzthQUNwRztZQUNELE1BQU07UUFDVjtZQUNJLElBQUksR0FBRyxhQUFhLFNBQVMsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxLQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxFQUFFLGdCQUFnQixZQUFZLElBQUksUUFBUSxjQUFjLENBQUM7WUFDN0ksTUFBTTtLQUNiO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxVQUFVLEVBQVUsRUFBRTtJQUN4RCxRQUFRLFVBQVUsRUFBRTtRQUNoQixLQUFLLGNBQWMsQ0FBQyxZQUFZLENBQUM7UUFDakMsS0FBSyxjQUFjLENBQUMsU0FBUztZQUN6QixPQUFPLFdBQVcsQ0FBQztRQUN2QixLQUFLLGNBQWMsQ0FBQyxLQUFLO1lBQ3JCLE9BQU8sVUFBVSxDQUFDO1FBQ3RCLEtBQUssY0FBYyxDQUFDLFdBQVc7WUFDM0IsT0FBTyxnQkFBZ0IsQ0FBQztRQUM1QixLQUFLLGNBQWMsQ0FBQyxRQUFRO1lBQ3hCLE9BQU8sYUFBYSxDQUFDO1FBQ3pCLEtBQUssY0FBYyxDQUFDLElBQUk7WUFDcEIsT0FBTyxTQUFTLENBQUM7UUFDckIsS0FBSyxjQUFjLENBQUMsUUFBUTtZQUN4QixPQUFPLGFBQWEsQ0FBQztRQUN6QixLQUFLLGNBQWMsQ0FBQyxJQUFJLENBQUM7UUFDekIsS0FBSyxjQUFjLENBQUMsU0FBUztZQUN6QixPQUFPLFNBQVMsQ0FBQztRQUNyQixLQUFLLGNBQWMsQ0FBQyxNQUFNO1lBQ3RCLE9BQU8sV0FBVyxDQUFDO1FBQ3ZCLEtBQUssY0FBYyxDQUFDLFFBQVE7WUFDeEIsT0FBTyxtQkFBbUIsQ0FBQztRQUMvQixLQUFLLGNBQWMsQ0FBQyxNQUFNO1lBQ3RCLE9BQU8sV0FBVyxDQUFDO1FBQ3ZCO1lBQ0ksT0FBTyxTQUFTLENBQUM7S0FDeEI7QUFDTCxDQUFDLENBQUM7QUFFRixpRUFBaUU7QUFDakUsTUFBTSw0QkFBNEIsR0FBRyxDQUFDLFNBQWtCLEVBQUUsSUFBZSxFQUFFLFNBQWlCLEVBQUUsRUFBRTtJQUM1RixTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDM0MsTUFBTSxxQkFBcUIsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssa0JBQWtCLENBQUMsQ0FBQztJQUN4RixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssU0FBUyxJQUFJLENBQUMscUJBQXFCLEVBQUU7UUFDbkQsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxTQUFTLENBQUMsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO0tBQzNJO0FBQ0wsQ0FBQyxDQUFDO0FBR0Y7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsVUFBUyxHQUFHO0lBQ25ELElBQUksV0FBVyxHQUFHLGlCQUFpQixDQUFDO0lBQ3BDLElBQUksT0FBTyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckMsT0FBTyxPQUFPLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQztBQUNyQyxDQUFDLENBQUE7QUFHRCx5SEFBeUg7QUFDekgsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxRQUFrQyxFQUFFLGFBQXFCLEVBQUUsVUFBa0IsRUFBRSxXQUFtQixFQUFFLEVBQUUsZ0JBQXdCLE1BQU0sRUFBRSxFQUFFO0lBRXhLLE1BQU0sc0JBQXNCLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNqRixNQUFNLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxHQUFHLEdBQUcsc0JBQXNCLEdBQUcsaUVBQWlFLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDaEksSUFBSSxnQkFBZ0IsQ0FBQztJQUNyQixJQUFJLHVCQUF1QixDQUFDO0lBQzVCLElBQUksZ0JBQWdCLENBQUM7SUFDckIsSUFBSSxLQUFxQixDQUFDO0lBQzFCLE1BQU0sVUFBVSxHQUFHO1FBQ2YsU0FBUyxFQUFFLENBQUMsV0FBVyxFQUFFLGFBQWEsRUFBRSxTQUFTLENBQUM7S0FDckQsQ0FBQztJQUVGLElBQUksVUFBVSxFQUFFO1FBQ1osZ0JBQWdCLEdBQUcsSUFBSSxNQUFNLENBQUMsWUFBWSxVQUFVLGtCQUFrQixFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzdFLHVCQUF1QixHQUFHLElBQUksTUFBTSxDQUFDLFlBQVksVUFBVSx5QkFBeUIsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMzRixnQkFBZ0IsR0FBRyxJQUFJLE1BQU0sQ0FBQywrQ0FBK0MsRUFBRSxHQUFHLENBQUMsQ0FBQztLQUN2RjtJQUVELElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQ3RCLDBKQUEwSjtRQUMxSixLQUFLLEdBQUcsVUFBVSxDQUFFLFFBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFFLFFBQWdCLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBbUIsQ0FBQztLQUM3SDtTQUFNO1FBQ0gsS0FBSyxHQUFHLFFBQTBCLENBQUM7S0FDdEM7SUFFRCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBa0IsRUFBRSxFQUFFO1FBQ2pDLElBQUksU0FBUyxDQUFDLElBQUksRUFBRTtZQUNoQixNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDO1lBQ2hDLE1BQU0sd0JBQXdCLEdBQUksSUFBSSxNQUFNLENBQUMsZUFBZSxHQUFHLGFBQWEsR0FBRyxtQkFBbUIsQ0FBQyxDQUFDO1lBQ3BHLFNBQVMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQzdCLG9DQUFvQztnQkFDcEMsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUM1QyxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxFQUFFO29CQUM5Qix1TUFBdU07b0JBQ3ZNLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTt3QkFDakcsMEdBQTBHO3dCQUMxRyxrSEFBa0g7d0JBQ2xILElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDLElBQUksS0FBSyxLQUFLLE9BQU8sR0FBRyxhQUFhLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7NEJBQ2hILEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQzs0QkFDbkMsNEJBQTRCLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQzs0QkFDckQsS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLGFBQWEsQ0FBQyxDQUFDOzRCQUM1QyxLQUFLLEdBQUcsT0FBTyxHQUFHLEtBQUssQ0FBQzs0QkFDeEIsbUVBQW1FOzRCQUNuRSxJQUFHLDJCQUEyQixDQUFDLEtBQUssQ0FBQyxJQUFJLGdCQUFnQixFQUFDO2dDQUN0RCw4REFBOEQ7Z0NBQzlELDRFQUE0RTtnQ0FDNUUsS0FBSyxJQUFLLEdBQUcsR0FBRSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7NkJBQ3BFO3lCQUNKO3FCQUNKO29CQUNELG1FQUFtRTtvQkFDbkUsSUFBSSxnQkFBZ0IsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7d0JBQ2xELG9IQUFvSDt3QkFDcEgsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsRUFBRTs0QkFDcEUsS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsU0FBUyxDQUFDLENBQUM7eUJBQ3REO3dCQUNELDRCQUE0QixDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7d0JBQ3JELEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLGFBQWEsQ0FBQyxDQUFDO3FCQUMxRDtvQkFDRCxJQUFJLHVCQUF1QixJQUFJLHVCQUF1QixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTt3QkFDaEUsS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsdUJBQXVCLEVBQUUsR0FBRyxRQUFRLG9CQUFvQixDQUFDLENBQUM7cUJBQ25GO29CQUVELElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO2lCQUN0QjtZQUNMLENBQUMsQ0FBQyxDQUFDO1lBQ0gsbUJBQW1CLENBQUMsU0FBUyxDQUFDLFFBQTBCLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsYUFBYSxDQUFDLENBQUM7U0FDakg7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQztBQUVGLGdFQUFnRTtBQUNoRSxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsS0FBSyxDQUFDLEVBQUU7SUFDbEMsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFO1FBQ25FLE9BQU8sRUFBRSxDQUFDO0tBQ2I7SUFDRCxPQUFPLFNBQVMsQ0FBQztBQUNyQixDQUFDLENBQUM7QUFFRixNQUFNLGNBQWMsR0FBRyxJQUFJLEdBQUcsQ0FDMUI7SUFDSSxDQUFDLGNBQWMsRUFBRSxTQUFTLENBQUM7SUFDM0IsQ0FBQyxtQkFBbUIsRUFBRSxjQUFjLENBQUM7SUFDckMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDO0lBQ2pCLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQztJQUMzQixDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFDaEIsQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDO0lBQzFCLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQztJQUN4QixDQUFDLGVBQWUsRUFBRSxlQUFlLENBQUM7SUFDbEMsQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDO0lBQzFCLENBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLENBQUM7SUFDcEMsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDO0lBQ3BCLENBQUMsdUJBQXVCLEVBQUUsdUJBQXVCLENBQUM7SUFDbEQsQ0FBQyx1QkFBdUIsRUFBRSx1QkFBdUIsQ0FBQztDQUNyRCxDQUNKLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxLQUFLLENBQUMsRUFBRTtJQUNyQyxJQUFJLElBQUksR0FBRyxFQUFFLENBQUM7SUFDZCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQ3ZCLE1BQU0sT0FBTyxHQUFHLGNBQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEMsSUFBSSxPQUFPLEVBQUU7WUFDVCxJQUFJLElBQUksR0FBRyxPQUFPLEtBQUssR0FBRyxJQUFJLENBQUM7U0FDbEM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUNILE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF0dHJpYnV0ZSwgRWxlbWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyJztcblxuaW1wb3J0IHsgRm9ybVdpZGdldFR5cGUgfSBmcm9tICcuLi9lbnVtcy9lbnVtcyc7XG5cbmRlY2xhcmUgY29uc3QgXztcblxuLy8gRm9yIGh0bWwgdXBsb2FkIHdpZGdldCwgYWRkIGV2ZW50cyBvbiBpbnB1dCB0YWdcbmNvbnN0IGdldFVwbG9hZEV2ZW50VG1wbCA9IChhdHRycywgY291bnRlcj8sIGZpZWxkTmFtZT8pID0+IHtcbiAgICBsZXQgZXZlbnRUbXBsID0gJyc7XG4gICAgYXR0cnMuZm9yRWFjaCgodmFsLCBrZXkpID0+IHtcbiAgICAgICBpZiAoa2V5ICYmIGtleS5lbmRzV2l0aCgnLmV2ZW50JykpIHtcbiAgICAgICAgICAgY29uc3QgZXZlbnROYW1lID0ga2V5LnNwbGl0KCcuJylbMF07XG4gICAgICAgICAgIGNvbnN0IGNvdW50ZXJUbCA9IGNvdW50ZXIgPyBgJHtjb3VudGVyfS5gIDogJyc7XG4gICAgICAgICAgIGV2ZW50VG1wbCA9IGAgJHtldmVudFRtcGx9ICgke2V2ZW50TmFtZX0pPVwiJHtjb3VudGVyVGx9dHJpZ2dlclVwbG9hZEV2ZW50KCRldmVudCwgJyR7ZXZlbnROYW1lfScsICcke2ZpZWxkTmFtZX0nLCByb3cpXCIgYDtcbiAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGV2ZW50VG1wbDtcbn07XG5cbi8vIE1ldGhvZCB0byBnZXQgdGhlIGZvcm0gd2lkZ2V0IHRlbXBsYXRlXG5leHBvcnQgY29uc3QgZ2V0Rm9ybVdpZGdldFRlbXBsYXRlID0gKHdpZGdldFR5cGU6IHN0cmluZywgaW5uZXJUbXBsOiBzdHJpbmcsIGF0dHJzPzogTWFwPHN0cmluZywgc3RyaW5nPiwgb3B0aW9uczogYW55ID0ge30pID0+IHtcbiAgICBsZXQgdG1wbDtcbiAgICBjb25zdCB1cGRhdGVPbiA9IGF0dHJzLmdldCgndXBkYXRlb24nKTtcbiAgICBjb25zdCB1cGRhdGVPblRtcGwgPSB1cGRhdGVPbiA/IGB1cGRhdGVvbj1cIiR7dXBkYXRlT259XCJgIDogJyc7XG4gICAgY29uc3Qgc2hvd2luZWRpdG1vZGUgPSBhdHRycy5nZXQoJ3Nob3dpbmVkaXRtb2RlJykgfHwgYXR0cnMuZ2V0KCdzaG93aW5lZGl0bW9kZS5iaW5kJykgfHwgdHJ1ZTtcbiAgICBjb25zdCBzaG93VG1wbDogc3RyaW5nICA9IHNob3dpbmVkaXRtb2RlID09ICdmYWxzZSc/IGBzaG93PVwiJHtzaG93aW5lZGl0bW9kZX1cImA6IGBzaG93LmJpbmQ9XCIke3Nob3dpbmVkaXRtb2RlfVwiYDtcbiAgICBzd2l0Y2ggKHdpZGdldFR5cGUpIHtcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5BVVRPQ09NUExFVEU6XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuVFlQRUFIRUFEOlxuICAgICAgICAgICAgdG1wbCA9IGA8ZGl2IHdtU2VhcmNoIHR5cGU9XCJhdXRvY29tcGxldGVcIiBkZWJvdW5jZXRpbWU9XCIke2F0dHJzLmdldCgnZGVib3VuY2V0aW1lJyl9XCIgJHtpbm5lclRtcGx9ICR7c2hvd1RtcGx9PjwvZGl2PmA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5DSEVDS0JPWDpcbiAgICAgICAgICAgIHRtcGwgPSBgPGRpdiB3bUNoZWNrYm94ICR7aW5uZXJUbXBsfSAke2F0dHJzLmdldCgncmVxdWlyZWQnKT09PSd0cnVlJyA/ICdyZXF1aXJlZD10cnVlJyA6ICcnfSAke3Nob3dUbXBsfT48L2Rpdj5gO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuQ0hFQ0tCT1hTRVQ6XG4gICAgICAgICAgICB0bXBsID0gYDx1bCByb2xlPVwiZ3JvdXBcIiB3bUNoZWNrYm94c2V0ICR7aW5uZXJUbXBsfSAke2F0dHJzLmdldCgncmVxdWlyZWQnKT09PSd0cnVlJyA/ICdyZXF1aXJlZD10cnVlJyA6ICcnfSAke3Nob3dUbXBsfT48L3VsPmA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5DSElQUzpcbiAgICAgICAgICAgIHRtcGwgPSBgPHVsIHdtQ2hpcHMgcm9sZT1cImlucHV0XCIgZGVib3VuY2V0aW1lPVwiJHthdHRycy5nZXQoJ2RlYm91bmNldGltZScpfVwiICR7aW5uZXJUbXBsfSAke3Nob3dUbXBsfT48L3VsPmA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5DT0xPUlBJQ0tFUjpcbiAgICAgICAgICAgIHRtcGwgPSBgPGRpdiB3bUNvbG9yUGlja2VyICR7YXR0cnMuZ2V0KCdyZXF1aXJlZCcpPT09J3RydWUnID8gJ3JlcXVpcmVkPXRydWUnIDogJyd9ICR7aW5uZXJUbXBsfSAke3Nob3dUbXBsfT48L2Rpdj5gO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuQ1VSUkVOQ1k6XG4gICAgICAgICAgICB0bXBsID0gYDxkaXYgd21DdXJyZW5jeSAke2F0dHJzLmdldCgncmVxdWlyZWQnKT09PSd0cnVlJyA/ICdyZXF1aXJlZD10cnVlJyA6ICcnfSAke3VwZGF0ZU9uVG1wbH0gJHtpbm5lclRtcGx9ICR7c2hvd1RtcGx9PjwvZGl2PmA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5EQVRFOlxuICAgICAgICAgICAgdG1wbCA9IGA8ZGl2IHdtRGF0ZSAke2F0dHJzLmdldCgncmVxdWlyZWQnKT09PSd0cnVlJyA/ICdyZXF1aXJlZD10cnVlJyA6ICcnfSBkYXRhZW50cnltb2RlPVwiJHthdHRycy5nZXQoJ2RhdGFlbnRyeW1vZGUnKX1cIiAke2lubmVyVG1wbH0gJHtzaG93VG1wbH0+PC9kaXY+YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLkRBVEVUSU1FOlxuICAgICAgICAgICAgdG1wbCA9IGA8ZGl2IHdtRGF0ZVRpbWUgJHthdHRycy5nZXQoJ3JlcXVpcmVkJyk9PT0ndHJ1ZScgPyAncmVxdWlyZWQ9dHJ1ZScgOiAnJ30gZGF0YWVudHJ5bW9kZT1cIiR7YXR0cnMuZ2V0KCdkYXRhZW50cnltb2RlJyl9XCIgJHtpbm5lclRtcGx9ICR7c2hvd1RtcGx9PjwvZGl2PmA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5OVU1CRVI6XG4gICAgICAgICAgICB0bXBsID0gYDxkaXYgd21OdW1iZXIgJHtpbm5lclRtcGx9ICR7YXR0cnMuZ2V0KCdyZXF1aXJlZCcpPT09J3RydWUnID8gJ3JlcXVpcmVkPXRydWUnIDogJyd9IHR5cGU9XCJudW1iZXJcIiBhcmlhLWxhYmVsPVwiT25seSBudW1iZXJzXCIgJHt1cGRhdGVPblRtcGx9ICR7c2hvd1RtcGx9PjwvZGl2PmA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5QQVNTV09SRDpcbiAgICAgICAgICAgIHRtcGwgPSBgPHdtLWlucHV0ICR7aW5uZXJUbXBsfSAke2F0dHJzLmdldCgncmVxdWlyZWQnKT09PSd0cnVlJyA/ICdyZXF1aXJlZD10cnVlJyA6ICcnfSB0eXBlPVwicGFzc3dvcmRcIiBhcmlhLWxhYmVsPVwiRW50ZXIgcGFzc3dvcmRcIiAke3VwZGF0ZU9uVG1wbH0gJHtzaG93VG1wbH0+PC93bS1pbnB1dD5gO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuUkFESU9TRVQ6XG4gICAgICAgICAgICB0bXBsID0gYDx1bCByb2xlPVwicmFkaW9ncm91cFwiIHdtUmFkaW9zZXQgJHtpbm5lclRtcGx9ICR7c2hvd1RtcGx9PjwvdWw+YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLlJBVElORzpcbiAgICAgICAgICAgIHRtcGwgPSBgPGRpdiB3bVJhdGluZyAke2lubmVyVG1wbH0gJHtzaG93VG1wbH0+PC9kaXY+YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLlJJQ0hURVhUOlxuICAgICAgICAgICAgdG1wbCA9IGA8ZGl2IHdtUmljaFRleHRFZGl0b3Igcm9sZT1cInRleHRib3hcIiAke2lubmVyVG1wbH0gJHtzaG93VG1wbH0+PC9kaXY+YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLlNFTEVDVDpcbiAgICAgICAgICAgIHRtcGwgPSBgPHdtLXNlbGVjdCAke2F0dHJzLmdldCgncmVxdWlyZWQnKT09PSd0cnVlJyA/ICdyZXF1aXJlZD10cnVlJyA6ICcnfSAke2lubmVyVG1wbH0gJHtzaG93VG1wbH0+PC93bS1zZWxlY3Q+YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLlRPR0dMRTpcbiAgICAgICAgICAgIHRtcGwgPSBgPGRpdiB3bUNoZWNrYm94ICR7aW5uZXJUbXBsfSAke2F0dHJzLmdldCgncmVxdWlyZWQnKT09PSd0cnVlJyA/ICdyZXF1aXJlZD10cnVlJyA6ICcnfSB0eXBlPVwidG9nZ2xlXCIgcm9sZT1cImNoZWNrYm94XCIgYXJpYS1sYWJlbD1cIlRvZ2dsZSBidXR0b25cIiAke3Nob3dUbXBsfT48L2Rpdj5gO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuU0xJREVSOlxuICAgICAgICAgICAgdG1wbCA9IGA8ZGl2IHdtU2xpZGVyICR7aW5uZXJUbXBsfSAke3Nob3dUbXBsfT48L2Rpdj5gO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuU1dJVENIOlxuICAgICAgICAgICAgdG1wbCA9IGA8ZGl2IHdtU3dpdGNoICR7aW5uZXJUbXBsfSAke3Nob3dUbXBsfT48L2Rpdj5gO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuVEVYVDpcbiAgICAgICAgICAgIGNvbnN0IGlucHV0VHlwZSA9IG9wdGlvbnMuaW5wdXRUeXBlIHx8ICdpbnB1dHR5cGUnO1xuICAgICAgICAgICAgdG1wbCA9IGA8d20taW5wdXQgJHtpbm5lclRtcGx9ICAke2F0dHJzLmdldCgncmVxdWlyZWQnKT09PSd0cnVlJyA/ICdyZXF1aXJlZD10cnVlJyA6ICcnfSB0eXBlPVwiJHthdHRycy5nZXQoaW5wdXRUeXBlKSB8fCAndGV4dCd9XCIgJHt1cGRhdGVPblRtcGx9ICR7c2hvd1RtcGx9Pjwvd20taW5wdXQ+YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLlRFWFRBUkVBOlxuICAgICAgICAgICAgdG1wbCA9IGA8d20tdGV4dGFyZWEgJHtpbm5lclRtcGx9ICR7YXR0cnMuZ2V0KCdyZXF1aXJlZCcpPT09J3RydWUnID8gJ3JlcXVpcmVkPXRydWUnIDogJyd9IHJvbGU9XCJ0ZXh0Ym94XCIgJHt1cGRhdGVPblRtcGx9ICR7c2hvd1RtcGx9Pjwvd20tdGV4dGFyZWE+YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLlRJTUU6XG4gICAgICAgICAgICB0bXBsID0gYDxkaXYgd21UaW1lICR7YXR0cnMuZ2V0KCdyZXF1aXJlZCcpPT09J3RydWUnID8gJ3JlcXVpcmVkPXRydWUnIDogJyd9IGRhdGFlbnRyeW1vZGU9XCIke2F0dHJzLmdldCgnZGF0YWVudHJ5bW9kZScpfVwiICR7aW5uZXJUbXBsfSAke3Nob3dUbXBsfT48L2Rpdj5gO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuVElNRVNUQU1QOlxuICAgICAgICAgICAgdG1wbCA9IGA8ZGl2IHdtRGF0ZVRpbWUgJHthdHRycy5nZXQoJ3JlcXVpcmVkJyk9PT0ndHJ1ZScgPyAncmVxdWlyZWQ9dHJ1ZScgOiAnJ30gZGF0YWVudHJ5bW9kZT1cIiR7YXR0cnMuZ2V0KCdkYXRhZW50cnltb2RlJyl9XCIgJHtpbm5lclRtcGx9IHJvbGU9XCJpbnB1dFwiICR7c2hvd1RtcGx9PjwvZGl2PmA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5VUExPQUQ6XG4gICAgICAgICAgICBjb25zdCBjb3VudGVyID0gb3B0aW9ucy5jb3VudGVyO1xuICAgICAgICAgICAgY29uc3QgcENvdW50ZXIgPSBvcHRpb25zLnBDb3VudGVyO1xuICAgICAgICAgICAgY29uc3QgdXBsb2FkUHJvcHMgPSBvcHRpb25zLnVwbG9hZFByb3BzO1xuICAgICAgICAgICAgY29uc3QgZXZlbnRUbXBsID0gZ2V0VXBsb2FkRXZlbnRUbXBsKGF0dHJzLCBjb3VudGVyLCB1cGxvYWRQcm9wcyAmJiB1cGxvYWRQcm9wcy5uYW1lKTtcbiAgICAgICAgICAgIGlmICh1cGxvYWRQcm9wcykge1xuICAgICAgICAgICAgICAgIHRtcGwgPSBgPGZvcm0gbmFtZT1cIiR7dXBsb2FkUHJvcHMuZm9ybU5hbWV9XCIgJHtpbm5lclRtcGx9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb2N1cy10YXJnZXQgY2xhc3M9XCJmaWxlLXVwbG9hZFwiIHR5cGU9XCJmaWxlXCIgbmFtZT1cIiR7dXBsb2FkUHJvcHMubmFtZX1cIiAke2V2ZW50VG1wbH0gJHtzaG93VG1wbH0vPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPmA7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRtcGwgPSBgPGEgY2xhc3M9XCJmb3JtLWNvbnRyb2wtc3RhdGljXCIgaHJlZj1cInt7JHtjb3VudGVyfS5ocmVmfX1cIiB0YXJnZXQ9XCJfYmxhbmtcIiAqbmdJZj1cIiR7Y291bnRlcn0uZmlsZXR5cGUgPT09ICdpbWFnZScgJiYgJHtjb3VudGVyfS5ocmVmXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHN0eWxlPVwiaGVpZ2h0OjJlbVwiIGNsYXNzPVwid2kgd2ktZmlsZVwiIFtzcmNdPVwiJHtjb3VudGVyfS5ocmVmXCIvPjwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiZm9ybS1jb250cm9sLXN0YXRpY1wiIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCJ7eyR7Y291bnRlcn0uaHJlZn19XCIgKm5nSWY9XCIke2NvdW50ZXJ9LmZpbGV0eXBlICE9PSAnaW1hZ2UnICYmICR7Y291bnRlcn0uaHJlZlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJ3aSB3aS1maWxlXCI+PC9pPjwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCAke2lubmVyVG1wbH0gY2xhc3M9XCJhcHAtYmxvYi11cGxvYWRcIiBbbmdDbGFzc109XCJ7J2ZpbGUtcmVhZG9ubHknOiAke2NvdW50ZXJ9LnJlYWRvbmx5fVwiICR7ZXZlbnRUbXBsfVxuICAgICAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cIiR7Y291bnRlcn0ucmVxdWlyZWRcIiB0eXBlPVwiZmlsZVwiIG5hbWU9XCIke2F0dHJzLmdldCgna2V5JykgfHwgYXR0cnMuZ2V0KCduYW1lJyl9X2Zvcm1XaWRnZXRcIiBbcmVhZG9ubHldPVwiJHtjb3VudGVyfS5yZWFkb25seVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuaGlkZGVuXT1cIiEke3BDb3VudGVyfS5pc1VwZGF0ZU1vZGVcIiBbYWNjZXB0XT1cIiR7Y291bnRlcn0ucGVybWl0dGVkXCIgJHtzaG93VG1wbH0+YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdG1wbCA9IGA8d20taW5wdXQgJHtpbm5lclRtcGx9ICR7YXR0cnMuZ2V0KCdyZXF1aXJlZCcpPT09J3RydWUnID8gJ3JlcXVpcmVkPXRydWUnIDogJyd9IHR5cGU9XCJ0ZXh0XCIgJHt1cGRhdGVPblRtcGx9ICR7c2hvd1RtcGx9Pjwvd20taW5wdXQ+YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICByZXR1cm4gdG1wbDtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRSZXF1aXJlZEZvcm1XaWRnZXQgPSAod2lkZ2V0VHlwZSk6IHN0cmluZyA9PiB7XG4gICAgc3dpdGNoICh3aWRnZXRUeXBlKSB7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuQVVUT0NPTVBMRVRFOlxuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLlRZUEVBSEVBRDpcbiAgICAgICAgICAgIHJldHVybiAnd20tc2VhcmNoJztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5DSElQUzpcbiAgICAgICAgICAgIHJldHVybiAnd20tY2hpcHMnO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLkNPTE9SUElDS0VSOlxuICAgICAgICAgICAgcmV0dXJuICd3bS1jb2xvcnBpY2tlcic7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuQ1VSUkVOQ1k6XG4gICAgICAgICAgICByZXR1cm4gJ3dtLWN1cnJlbmN5JztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5EQVRFOlxuICAgICAgICAgICAgcmV0dXJuICd3bS1kYXRlJztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5EQVRFVElNRTpcbiAgICAgICAgICAgIHJldHVybiAnd20tZGF0ZXRpbWUnO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLlRJTUU6XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuVElNRVNUQU1QOlxuICAgICAgICAgICAgcmV0dXJuICd3bS10aW1lJztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5SQVRJTkc6XG4gICAgICAgICAgICByZXR1cm4gJ3dtLXJhdGluZyc7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuUklDSFRFWFQ6XG4gICAgICAgICAgICByZXR1cm4gJ3dtLXJpY2h0ZXh0ZWRpdG9yJztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5TTElERVI6XG4gICAgICAgICAgICByZXR1cm4gJ3dtLXNsaWRlcic7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gJ3dtLXRleHQnO1xuICAgIH1cbn07XG5cbi8vIFRoaXMgbWVodG9kIGlzIHVzZWQgdG8gYWRkIGRhdGFzZXRib3VuZGV4cHIgYXR0cmlidXRlIGZvciBub2RlXG5jb25zdCBhZGREYXRhc2V0Qm91bmRFeHByQXR0cmlidXRlID0gKGNoaWxkTm9kZTogRWxlbWVudCwgYXR0cjogQXR0cmlidXRlLCBhdHRyVmFsdWU6IHN0cmluZykgPT4ge1xuICAgIGF0dHJWYWx1ZSA9IGF0dHJWYWx1ZS5yZXBsYWNlKCdiaW5kOicsICcnKTtcbiAgICBjb25zdCBkYXRhc2V0Qm91bmRBdHRyaWJ1dGUgPSBjaGlsZE5vZGUuYXR0cnMuZmluZCggYSA9PiBhLm5hbWUgPT09ICdkYXRhc2V0Ym91bmRleHByJyk7XG4gICAgaWYgKGF0dHIubmFtZSA9PT0gJ2RhdGFzZXQnICYmICFkYXRhc2V0Qm91bmRBdHRyaWJ1dGUpIHtcbiAgICAgICAgY2hpbGROb2RlLmF0dHJzLnB1c2gobmV3IEF0dHJpYnV0ZSgnZGF0YXNldGJvdW5kZXhwcicsIGF0dHJWYWx1ZSwgYXR0ci5zb3VyY2VTcGFuLCBhdHRyLmtleVNwYW4sIGF0dHIudmFsdWVTcGFuLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpO1xuICAgIH1cbn07XG5cblxuLyoqXG4gKiBleHA6IFVzZXIgYnVpbHQgYmluZCBleHByZXNzaW9uXG4gKiAgVG8gY2hlY2sgdGhlIGN1c3RvbSBwaXBlIGV4cHJlc3Npb25zLlxuICogIElmIHVzZXIgdXNlIHRoZSBjdXN0b20gcGlwZSBleHByZXNzaW9uIGl0IHdpbGwgY2hlY2sgaW4gdGhlIGV4cC4gdGhhdCBcImN1c3RvbVwiIHN0cmluZyBleGlzdCBvciBub3Qgd2l0aCAoOikgc3ludGF4LlxuICogIEVnOiBjdXN0b206XG4gKiAgICAgIGN1c3RvbSAgICA6XG4gKi9cbmV4cG9ydCBjb25zdCBjaGVja0lzQ3VzdG9tUGlwZUV4cHJlc3Npb24gPSBmdW5jdGlvbihleHApe1xuICAgIGxldCBjdXN0b21SZWdFeCA9IC8oY3VzdG9tKFxccyo6KSkvZztcbiAgICBsZXQgbWF0Y2hlcyA9IGV4cC5tYXRjaChjdXN0b21SZWdFeCk7XG4gICAgcmV0dXJuIG1hdGNoZXMgJiYgbWF0Y2hlcy5sZW5ndGg7XG59XG5cblxuLy8gVGhlIGJvdW5kIHZhbHVlIGlzIHJlcGxhY2VkIHdpdGgge3tpdGVtLmZpZWxkbmFtZX19IGhlcmUuIFRoaXMgaXMgbmVlZGVkIGJ5IHRoZSBsaXZlTGlzdCB3aGVuIGNvbXBpbGluZyBpbm5lciBlbGVtZW50c1xuZXhwb3J0IGNvbnN0IHVwZGF0ZVRlbXBsYXRlQXR0cnMgPSAocm9vdE5vZGU6IEVsZW1lbnQgfCBBcnJheTxFbGVtZW50PiwgcGFyZW50RGF0YVNldDogc3RyaW5nLCB3aWRnZXROYW1lOiBzdHJpbmcsIGluc3RhbmNlOiBzdHJpbmcgPSAnJywgcmVmZXJlbmNlTmFtZTogc3RyaW5nID0gJ2l0ZW0nKSA9PiB7XG5cbiAgICBjb25zdCBzYW5pdGl6ZWRQYXJlbnREYXRhc2V0ID0gcGFyZW50RGF0YVNldC5yZXBsYWNlKC8oW15hLXpBLVowLTkuXSkvZywgJ1xcXFwkMScpO1xuICAgIGNvbnN0IHJlZ2V4ID0gbmV3IFJlZ0V4cCgnKCcgKyBzYW5pdGl6ZWRQYXJlbnREYXRhc2V0ICsgJykoXFxcXFswXFxcXF0pPyguZGF0YVxcXFxbXFxcXCRpXFxcXF0pPyguY29udGVudFxcXFxbXFxcXCRpXFxcXF0pPyhcXFxcW1xcXFwkaVxcXFxdKT8nLCAnZycpO1xuICAgIGxldCBjdXJyZW50SXRlbVJlZ0V4O1xuICAgIGxldCBjdXJyZW50SXRlbVdpZGdldHNSZWdFeDtcbiAgICBsZXQgZm9ybVdpZGdldHNSZWdleDtcbiAgICBsZXQgbm9kZXM6IEFycmF5PEVsZW1lbnQ+O1xuICAgIGNvbnN0IHdpZGdldExpc3QgPSB7XG4gICAgICAgICd3bS1saXN0JzogWydpdGVtY2xhc3MnLCAnZGlzYWJsZWl0ZW0nLCAnZGF0YXNldCddXG4gICAgfTtcblxuICAgIGlmICh3aWRnZXROYW1lKSB7XG4gICAgICAgIGN1cnJlbnRJdGVtUmVnRXggPSBuZXcgUmVnRXhwKGAoV2lkZ2V0cy4ke3dpZGdldE5hbWV9LmN1cnJlbnRJdGVtKVxcXFxiYCwgJ2cnKTtcbiAgICAgICAgY3VycmVudEl0ZW1XaWRnZXRzUmVnRXggPSBuZXcgUmVnRXhwKGAoV2lkZ2V0cy4ke3dpZGdldE5hbWV9LmN1cnJlbnRJdGVtV2lkZ2V0cylcXFxcYmAsICdnJyk7XG4gICAgICAgIGZvcm1XaWRnZXRzUmVnZXggPSBuZXcgUmVnRXhwKGAoV2lkZ2V0cy4oLiopLihmb3JtV2lkZ2V0c3xmaWx0ZXJXaWRnZXRzKSlcXFxcYmAsICdnJyk7XG4gICAgfVxuXG4gICAgaWYgKCFfLmlzQXJyYXkocm9vdE5vZGUpKSB7XG4gICAgICAgIC8vIFtXTVMtMTY3MTJdLFtXTVMtMTY3NjldLFtXTVMtMTY4MDVdIFRoZSBtYXJrdXAgb2Ygcm9vdCBub2RlKHRhYmxlLCBsaXN0LCBjYXJvdXNlbCkgbmVlZCB0byBiZSB1cGRhdGVkIG9ubHkgZm9yIHRoZSB3aWRnZXRzIG1lbnRpb25lZCBpbiB3aWRnZXRMaXN0IG1hcC5cbiAgICAgICAgbm9kZXMgPSB3aWRnZXRMaXN0Wyhyb290Tm9kZSBhcyBhbnkpLm5hbWVdID8gW3Jvb3ROb2RlIGFzIEVsZW1lbnRdIDogKChyb290Tm9kZSBhcyBhbnkpLmNoaWxkcmVuIHx8IFtdKSBhcyBBcnJheTxFbGVtZW50PjtcbiAgICB9IGVsc2Uge1xuICAgICAgICBub2RlcyA9IHJvb3ROb2RlIGFzIEFycmF5PEVsZW1lbnQ+O1xuICAgIH1cblxuICAgIG5vZGVzLmZvckVhY2goKGNoaWxkTm9kZTogRWxlbWVudCkgPT4ge1xuICAgICAgICBpZiAoY2hpbGROb2RlLm5hbWUpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVOYW1lID0gY2hpbGROb2RlLm5hbWU7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnREYXRhU2V0TGVuZ3RoUmVnZXggPSAgbmV3IFJlZ0V4cCgnYmluZDpcXFxccypcXFxcKConICsgcGFyZW50RGF0YVNldCArICdcXFxcKSpcXFxcLmxlbmd0aFxcXFwpKicpO1xuICAgICAgICAgICAgY2hpbGROb2RlLmF0dHJzLmZvckVhY2goKGF0dHIpID0+IHtcbiAgICAgICAgICAgICAgICAvLyB0cmltIHRoZSBleHRyYSBzcGFjZXMgaW4gYmluZGluZ3NcbiAgICAgICAgICAgICAgICBsZXQgdmFsdWUgPSBhdHRyLnZhbHVlICYmIGF0dHIudmFsdWUudHJpbSgpO1xuICAgICAgICAgICAgICAgIGlmIChfLnN0YXJ0c1dpdGgodmFsdWUsICdiaW5kOicpKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFRoZSBtYXJrdXAgb2Ygcm9vdCBub2RlKHRhYmxlLCBsaXN0LCBjYXJvdXNlbCkgYXR0cmlidXRlcyBjb25hdGFpbnMgc2FtZSBkYXRhc2V0IHZhcmlhYmxlIGJpbmRpbmcgdGhlbiB0aG9zZSBhdHRyaWJ1dGVzIG5lZWQgdG8gYmUgdXBkYXRlZCBvbmx5IGZvciBzcGVjaWZpYyBwcm9wZXJ0aWVzIG1lbnRpb25lZCBpbiB3aWRnZXRMaXN0IG1hcC5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCF3aWRnZXRMaXN0W25vZGVOYW1lXSB8fCAod2lkZ2V0TGlzdFtub2RlTmFtZV0gJiYgd2lkZ2V0TGlzdFtub2RlTmFtZV0uaW5kZXhPZihhdHRyLm5hbWUpID4gLTEpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBpZiB0aGUgYXR0cmlidXRlIHZhbHVlIGlzIFwiYmluZDp4eHh4eC54eHh4XCIsIGVpdGhlciB0aGUgZGF0YVNldC9zY29wZURhdGFTZXQgaGFzIHRvIGNvbnRhaW4gXCJ4eHh4Lnh4eHhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gW1dNUy0xNzkwOF06IGlmIGNoaWxkIHdpZGdldCBjb250YWlucyBiaW5kIGV4cHJlc3Npb24gYXMgcGFyZW5kYXRhc2V0Lmxlbmd0aCA+IDAgdGhlbiBkb250IHJlcGxhY2UgaXQgd2l0aCBpdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoXy5pbmNsdWRlcyh2YWx1ZSwgcGFyZW50RGF0YVNldCkgJiYgdmFsdWUgIT09ICdiaW5kOicgKyBwYXJlbnREYXRhU2V0ICYmICFwYXJlbnREYXRhU2V0TGVuZ3RoUmVnZXgudGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoJ2JpbmQ6JywgJycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZERhdGFzZXRCb3VuZEV4cHJBdHRyaWJ1dGUoY2hpbGROb2RlLCBhdHRyLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKHJlZ2V4LCByZWZlcmVuY2VOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9ICdiaW5kOicgKyB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayBpcyB0aGlzIGN1c3RvbSBiaW5kIGV4cHJlc3Npb24gYW5kIGN1cnJlbnRXaWRnZXRJdGVtIHJlZ2V4XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoY2hlY2tJc0N1c3RvbVBpcGVFeHByZXNzaW9uKHZhbHVlKSAmJiBjdXJyZW50SXRlbVJlZ0V4KXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQWRkaW5nIHRoZSBjdXJyZW50SXRlbSBhcyBsYXN0IGFyZ3VtZW50IGZvciB0aGUgZXhwcmVzc2lvbi5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRm9yIHRoZSBjdXN0b20gcGlwZXMoZXhwcmVzaW9uKSwgaXQgd2lsbCBzZW5kIHRoZSBjdXJyZW50SXRlbSBhcyBjb250ZXh0LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSArPSAgJzonKyBjdXJyZW50SXRlbVJlZ0V4LmV4ZWMoY3VycmVudEl0ZW1SZWdFeC5zb3VyY2UpWzBdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBSZXBsYWNlIGl0ZW0gaWYgd2lkZ2V0IHByb3BlcnR5IGlzIGJvdW5kIHRvIGxpdmVsaXN0IGN1cnJlbnRJdGVtXG4gICAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50SXRlbVJlZ0V4ICYmIGN1cnJlbnRJdGVtUmVnRXgudGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIENoYW5nZSB2YWx1ZSBmcm9tICdiaW5kOldpZGdldHMuZm9ybU5hbWUuZm9ybVdpZGdldHMubGlzdE5hbWUuY3VycmVudEl0ZW0nIHRvICdiaW5kOldpZGdldHMubGlzdE5hbWUuY3VycmVudEl0ZW0nXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUuaW5jbHVkZXMoJy5mb3JtV2lkZ2V0cycpIHx8IHZhbHVlLmluY2x1ZGVzKCcuZmlsdGVyV2lkZ2V0cycpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKGZvcm1XaWRnZXRzUmVnZXgsICdXaWRnZXRzJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBhZGREYXRhc2V0Qm91bmRFeHByQXR0cmlidXRlKGNoaWxkTm9kZSwgYXR0ciwgdmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKGN1cnJlbnRJdGVtUmVnRXgsIHJlZmVyZW5jZU5hbWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50SXRlbVdpZGdldHNSZWdFeCAmJiBjdXJyZW50SXRlbVdpZGdldHNSZWdFeC50ZXN0KHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKGN1cnJlbnRJdGVtV2lkZ2V0c1JlZ0V4LCBgJHtpbnN0YW5jZX1jdXJyZW50SXRlbVdpZGdldHNgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGF0dHIudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHVwZGF0ZVRlbXBsYXRlQXR0cnMoY2hpbGROb2RlLmNoaWxkcmVuIGFzIEFycmF5PEVsZW1lbnQ+LCBwYXJlbnREYXRhU2V0LCB3aWRnZXROYW1lLCBpbnN0YW5jZSwgcmVmZXJlbmNlTmFtZSk7XG4gICAgICAgIH1cbiAgICB9KTtcbn07XG5cbi8vIElmIGZvcm1Db250cm9sTmFtZSBhdHRyaWJ1dGUgaXMgcHJlc2VudCwgZG9udCBhZGQgdGhlIG5nTW9kZWxcbmV4cG9ydCBjb25zdCBnZXROZ01vZGVsQXR0ciA9IGF0dHJzID0+IHtcbiAgICBpZiAoYXR0cnMuaGFzKCdmb3JtQ29udHJvbE5hbWUnKSB8fCBhdHRycy5oYXMoJ2Zvcm1Db250cm9sTmFtZS5iaW5kJykpIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICByZXR1cm4gJ25nTW9kZWwnO1xufTtcblxuY29uc3Qgcm93QWN0aW9uQXR0cnMgPSBuZXcgTWFwKFxuICAgIFtcbiAgICAgICAgWydkaXNwbGF5LW5hbWUnLCAnY2FwdGlvbiddLFxuICAgICAgICBbJ2Rpc3BsYXktbmFtZS5iaW5kJywgJ2NhcHRpb24uYmluZCddLFxuICAgICAgICBbJ3RpdGxlJywgJ2hpbnQnXSxcbiAgICAgICAgWyd0aXRsZS5iaW5kJywgJ2hpbnQuYmluZCddLFxuICAgICAgICBbJ3Nob3cnLCAnc2hvdyddLFxuICAgICAgICBbJ3Nob3cuYmluZCcsICdzaG93LmJpbmQnXSxcbiAgICAgICAgWydkaXNhYmxlZCcsICdkaXNhYmxlZCddLFxuICAgICAgICBbJ2Rpc2FibGVkLmJpbmQnLCAnZGlzYWJsZWQuYmluZCddLFxuICAgICAgICBbJ2h5cGVybGluaycsICdoeXBlcmxpbmsnXSxcbiAgICAgICAgWydoeXBlcmxpbmsuYmluZCcsICdoeXBlcmxpbmsuYmluZCddLFxuICAgICAgICBbJ3RhcmdldCcsICd0YXJnZXQnXSxcbiAgICAgICAgWydjb25kaXRpb25hbGNsYXNzLmJpbmQnLCAnY29uZGl0aW9uYWxjbGFzcy5iaW5kJ10sXG4gICAgICAgIFsnY29uZGl0aW9uYWxzdHlsZS5iaW5kJywgJ2NvbmRpdGlvbmFsc3R5bGUuYmluZCddXG4gICAgXVxuKTtcblxuZXhwb3J0IGNvbnN0IGdldFJvd0FjdGlvbkF0dHJzID0gYXR0cnMgPT4ge1xuICAgIGxldCB0bXBsID0gJyc7XG4gICAgYXR0cnMuZm9yRWFjaCgodmFsLCBrZXkpID0+IHtcbiAgICAgICAgY29uc3QgbmV3QXR0ciA9IHJvd0FjdGlvbkF0dHJzLmdldChrZXkpO1xuICAgICAgICBpZiAobmV3QXR0cikge1xuICAgICAgICAgICAgdG1wbCArPSBgJHtuZXdBdHRyfT1cIiR7dmFsfVwiIGA7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gdG1wbDtcbn07XG4iXX0=
266
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy91dGlscy9idWlsZC11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFXLE1BQU0sbUJBQW1CLENBQUM7QUFFdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSWhELGtEQUFrRDtBQUNsRCxNQUFNLGtCQUFrQixHQUFHLENBQUMsS0FBSyxFQUFFLE9BQVEsRUFBRSxTQUFVLEVBQUUsRUFBRTtJQUN2RCxJQUFJLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDbkIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUN4QixJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQy9CLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDcEMsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDL0MsU0FBUyxHQUFHLElBQUksU0FBUyxLQUFLLFNBQVMsTUFBTSxTQUFTLCtCQUErQixTQUFTLE9BQU8sU0FBUyxXQUFXLENBQUM7U0FDN0g7SUFDSixDQUFDLENBQUMsQ0FBQztJQUNILE9BQU8sU0FBUyxDQUFDO0FBQ3JCLENBQUMsQ0FBQztBQUVGLHlDQUF5QztBQUN6QyxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLFVBQWtCLEVBQUUsU0FBaUIsRUFBRSxLQUEyQixFQUFFLFVBQWUsRUFBRSxFQUFFLEVBQUU7SUFDM0gsSUFBSSxJQUFJLENBQUM7SUFDVCxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFD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Z3VsYXIvY29tcGlsZXInO1xuXG5pbXBvcnQgeyBGb3JtV2lkZ2V0VHlwZSB9IGZyb20gJy4uL2VudW1zL2VudW1zJztcblxuZGVjbGFyZSBjb25zdCBfO1xuXG4vLyBGb3IgaHRtbCB1cGxvYWQgd2lkZ2V0LCBhZGQgZXZlbnRzIG9uIGlucHV0IHRhZ1xuY29uc3QgZ2V0VXBsb2FkRXZlbnRUbXBsID0gKGF0dHJzLCBjb3VudGVyPywgZmllbGROYW1lPykgPT4ge1xuICAgIGxldCBldmVudFRtcGwgPSAnJztcbiAgICBhdHRycy5mb3JFYWNoKCh2YWwsIGtleSkgPT4ge1xuICAgICAgIGlmIChrZXkgJiYga2V5LmVuZHNXaXRoKCcuZXZlbnQnKSkge1xuICAgICAgICAgICBjb25zdCBldmVudE5hbWUgPSBrZXkuc3BsaXQoJy4nKVswXTtcbiAgICAgICAgICAgY29uc3QgY291bnRlclRsID0gY291bnRlciA/IGAke2NvdW50ZXJ9LmAgOiAnJztcbiAgICAgICAgICAgZXZlbnRUbXBsID0gYCAke2V2ZW50VG1wbH0gKCR7ZXZlbnROYW1lfSk9XCIke2NvdW50ZXJUbH10cmlnZ2VyVXBsb2FkRXZlbnQoJGV2ZW50LCAnJHtldmVudE5hbWV9JywgJyR7ZmllbGROYW1lfScsIHJvdylcIiBgO1xuICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gZXZlbnRUbXBsO1xufTtcblxuLy8gTWV0aG9kIHRvIGdldCB0aGUgZm9ybSB3aWRnZXQgdGVtcGxhdGVcbmV4cG9ydCBjb25zdCBnZXRGb3JtV2lkZ2V0VGVtcGxhdGUgPSAod2lkZ2V0VHlwZTogc3RyaW5nLCBpbm5lclRtcGw6IHN0cmluZywgYXR0cnM/OiBNYXA8c3RyaW5nLCBzdHJpbmc+LCBvcHRpb25zOiBhbnkgPSB7fSkgPT4ge1xuICAgIGxldCB0bXBsO1xuICAgIGNvbnN0IHVwZGF0ZU9uID0gYXR0cnMuZ2V0KCd1cGRhdGVvbicpO1xuICAgIGNvbnN0IHVwZGF0ZU9uVG1wbCA9IHVwZGF0ZU9uID8gYHVwZGF0ZW9uPVwiJHt1cGRhdGVPbn1cImAgOiAnJztcbiAgICBjb25zdCBzaG93aW5lZGl0bW9kZSA9IGF0dHJzLmdldCgnc2hvd2luZWRpdG1vZGUnKSB8fCBhdHRycy5nZXQoJ3Nob3dpbmVkaXRtb2RlLmJpbmQnKSB8fCB0cnVlO1xuICAgIGNvbnN0IHNob3dUbXBsOiBzdHJpbmcgID0gc2hvd2luZWRpdG1vZGUgPT0gJ2ZhbHNlJz8gYHNob3c9XCIke3Nob3dpbmVkaXRtb2RlfVwiYDogYHNob3cuYmluZD1cIiR7c2hvd2luZWRpdG1vZGV9XCJgO1xuICAgIHN3aXRjaCAod2lkZ2V0VHlwZSkge1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLkFVVE9DT01QTEVURTpcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5UWVBFQUhFQUQ6XG4gICAgICAgICAgICB0bXBsID0gYDxkaXYgd21TZWFyY2ggdHlwZT1cImF1dG9jb21wbGV0ZVwiIGRlYm91bmNldGltZT1cIiR7YXR0cnMuZ2V0KCdkZWJvdW5jZXRpbWUnKX1cIiAke2lubmVyVG1wbH0gJHtzaG93VG1wbH0+PC9kaXY+YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLkNIRUNLQk9YOlxuICAgICAgICAgICAgdG1wbCA9IGA8ZGl2IHdtQ2hlY2tib3ggJHtpbm5lclRtcGx9ICR7YXR0cnMuZ2V0KCdyZXF1aXJlZCcpPT09J3RydWUnID8gJ3JlcXVpcmVkPXRydWUnIDogJyd9ICR7c2hvd1RtcGx9PjwvZGl2PmA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5DSEVDS0JPWFNFVDpcbiAgICAgICAgICAgIHRtcGwgPSBgPHVsIHJvbGU9XCJncm91cFwiIHdtQ2hlY2tib3hzZXQgJHtpbm5lclRtcGx9ICR7YXR0cnMuZ2V0KCdyZXF1aXJlZCcpPT09J3RydWUnID8gJ3JlcXVpcmVkPXRydWUnIDogJyd9ICR7c2hvd1RtcGx9PjwvdWw+YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLkNISVBTOlxuICAgICAgICAgICAgdG1wbCA9IGA8dWwgd21DaGlwcyByb2xlPVwiaW5wdXRcIiBkZWJvdW5jZXRpbWU9XCIke2F0dHJzLmdldCgnZGVib3VuY2V0aW1lJyl9XCIgJHtpbm5lclRtcGx9ICR7c2hvd1RtcGx9PjwvdWw+YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLkNPTE9SUElDS0VSOlxuICAgICAgICAgICAgdG1wbCA9IGA8ZGl2IHdtQ29sb3JQaWNrZXIgJHthdHRycy5nZXQoJ3JlcXVpcmVkJyk9PT0ndHJ1ZScgPyAncmVxdWlyZWQ9dHJ1ZScgOiAnJ30gJHtpbm5lclRtcGx9ICR7c2hvd1RtcGx9PjwvZGl2PmA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5DVVJSRU5DWTpcbiAgICAgICAgICAgIHRtcGwgPSBgPGRpdiB3bUN1cnJlbmN5ICR7YXR0cnMuZ2V0KCdyZXF1aXJlZCcpPT09J3RydWUnID8gJ3JlcXVpcmVkPXRydWUnIDogJyd9ICR7dXBkYXRlT25UbXBsfSAke2lubmVyVG1wbH0gJHtzaG93VG1wbH0+PC9kaXY+YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLkRBVEU6XG4gICAgICAgICAgICB0bXBsID0gYDxkaXYgd21EYXRlICR7YXR0cnMuZ2V0KCdyZXF1aXJlZCcpPT09J3RydWUnID8gJ3JlcXVpcmVkPXRydWUnIDogJyd9IGRhdGFlbnRyeW1vZGU9XCIke2F0dHJzLmdldCgnZGF0YWVudHJ5bW9kZScpfVwiICR7aW5uZXJUbXBsfSAke3Nob3dUbXBsfT48L2Rpdj5gO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuREFURVRJTUU6XG4gICAgICAgICAgICB0bXBsID0gYDxkaXYgd21EYXRlVGltZSAke2F0dHJzLmdldCgncmVxdWlyZWQnKT09PSd0cnVlJyA/ICdyZXF1aXJlZD10cnVlJyA6ICcnfSBkYXRhZW50cnltb2RlPVwiJHthdHRycy5nZXQoJ2RhdGFlbnRyeW1vZGUnKX1cIiAke2lubmVyVG1wbH0gJHtzaG93VG1wbH0+PC9kaXY+YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLk5VTUJFUjpcbiAgICAgICAgICAgIHRtcGwgPSBgPGRpdiB3bU51bWJlciAke2lubmVyVG1wbH0gJHthdHRycy5nZXQoJ3JlcXVpcmVkJyk9PT0ndHJ1ZScgPyAncmVxdWlyZWQ9dHJ1ZScgOiAnJ30gdHlwZT1cIm51bWJlclwiIGFyaWEtbGFiZWw9XCJPbmx5IG51bWJlcnNcIiAke3VwZGF0ZU9uVG1wbH0gJHtzaG93VG1wbH0+PC9kaXY+YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLlBBU1NXT1JEOlxuICAgICAgICAgICAgdG1wbCA9IGA8d20taW5wdXQgJHtpbm5lclRtcGx9ICR7YXR0cnMuZ2V0KCdyZXF1aXJlZCcpPT09J3RydWUnID8gJ3JlcXVpcmVkPXRydWUnIDogJyd9IHR5cGU9XCJwYXNzd29yZFwiIGFyaWEtbGFiZWw9XCJFbnRlciBwYXNzd29yZFwiICR7dXBkYXRlT25UbXBsfSAke3Nob3dUbXBsfT48L3dtLWlucHV0PmA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5SQURJT1NFVDpcbiAgICAgICAgICAgIHRtcGwgPSBgPHVsIHJvbGU9XCJyYWRpb2dyb3VwXCIgd21SYWRpb3NldCAke2lubmVyVG1wbH0gJHtzaG93VG1wbH0+PC91bD5gO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuUkFUSU5HOlxuICAgICAgICAgICAgdG1wbCA9IGA8ZGl2IHdtUmF0aW5nICR7aW5uZXJUbXBsfSAke3Nob3dUbXBsfT48L2Rpdj5gO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuUklDSFRFWFQ6XG4gICAgICAgICAgICB0bXBsID0gYDxkaXYgd21SaWNoVGV4dEVkaXRvciByb2xlPVwidGV4dGJveFwiICR7aW5uZXJUbXBsfSAke3Nob3dUbXBsfT48L2Rpdj5gO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuU0VMRUNUOlxuICAgICAgICAgICAgdG1wbCA9IGA8d20tc2VsZWN0ICR7YXR0cnMuZ2V0KCdyZXF1aXJlZCcpPT09J3RydWUnID8gJ3JlcXVpcmVkPXRydWUnIDogJyd9ICR7aW5uZXJUbXBsfSAke3Nob3dUbXBsfT48L3dtLXNlbGVjdD5gO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuVE9HR0xFOlxuICAgICAgICAgICAgdG1wbCA9IGA8ZGl2IHdtQ2hlY2tib3ggJHtpbm5lclRtcGx9ICR7YXR0cnMuZ2V0KCdyZXF1aXJlZCcpPT09J3RydWUnID8gJ3JlcXVpcmVkPXRydWUnIDogJyd9IHR5cGU9XCJ0b2dnbGVcIiByb2xlPVwiY2hlY2tib3hcIiBhcmlhLWxhYmVsPVwiVG9nZ2xlIGJ1dHRvblwiICR7c2hvd1RtcGx9PjwvZGl2PmA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5TTElERVI6XG4gICAgICAgICAgICB0bXBsID0gYDxkaXYgd21TbGlkZXIgJHtpbm5lclRtcGx9ICR7c2hvd1RtcGx9PjwvZGl2PmA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5TV0lUQ0g6XG4gICAgICAgICAgICB0bXBsID0gYDxkaXYgd21Td2l0Y2ggJHtpbm5lclRtcGx9ICR7c2hvd1RtcGx9PjwvZGl2PmA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5URVhUOlxuICAgICAgICAgICAgY29uc3QgaW5wdXRUeXBlID0gb3B0aW9ucy5pbnB1dFR5cGUgfHwgJ2lucHV0dHlwZSc7XG4gICAgICAgICAgICB0bXBsID0gYDx3bS1pbnB1dCAke2lubmVyVG1wbH0gICR7YXR0cnMuZ2V0KCdyZXF1aXJlZCcpPT09J3RydWUnID8gJ3JlcXVpcmVkPXRydWUnIDogJyd9IHR5cGU9XCIke2F0dHJzLmdldChpbnB1dFR5cGUpIHx8ICd0ZXh0J31cIiAke3VwZGF0ZU9uVG1wbH0gJHtzaG93VG1wbH0+PC93bS1pbnB1dD5gO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuVEVYVEFSRUE6XG4gICAgICAgICAgICB0bXBsID0gYDx3bS10ZXh0YXJlYSAke2lubmVyVG1wbH0gJHthdHRycy5nZXQoJ3JlcXVpcmVkJyk9PT0ndHJ1ZScgPyAncmVxdWlyZWQ9dHJ1ZScgOiAnJ30gcm9sZT1cInRleHRib3hcIiAke3VwZGF0ZU9uVG1wbH0gJHtzaG93VG1wbH0+PC93bS10ZXh0YXJlYT5gO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuVElNRTpcbiAgICAgICAgICAgIHRtcGwgPSBgPGRpdiB3bVRpbWUgJHthdHRycy5nZXQoJ3JlcXVpcmVkJyk9PT0ndHJ1ZScgPyAncmVxdWlyZWQ9dHJ1ZScgOiAnJ30gZGF0YWVudHJ5bW9kZT1cIiR7YXR0cnMuZ2V0KCdkYXRhZW50cnltb2RlJyl9XCIgJHtpbm5lclRtcGx9ICR7c2hvd1RtcGx9PjwvZGl2PmA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5USU1FU1RBTVA6XG4gICAgICAgICAgICB0bXBsID0gYDxkaXYgd21EYXRlVGltZSAke2F0dHJzLmdldCgncmVxdWlyZWQnKT09PSd0cnVlJyA/ICdyZXF1aXJlZD10cnVlJyA6ICcnfSBkYXRhZW50cnltb2RlPVwiJHthdHRycy5nZXQoJ2RhdGFlbnRyeW1vZGUnKX1cIiAke2lubmVyVG1wbH0gcm9sZT1cImlucHV0XCIgJHtzaG93VG1wbH0+PC9kaXY+YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLkNVU1RPTTpcbiAgICAgICAgICAgIHRtcGwgPSBgPGRpdiB3bVdpZGdldENvbnRhaW5lciBjdXN0b21XaWRnZXRDb250YWluZXIgJHthdHRycy5nZXQoJ3JlcXVpcmVkJyk9PT0ndHJ1ZScgPyAncmVxdWlyZWQ9dHJ1ZScgOiAnJ30gJHtpbm5lclRtcGx9ICR7c2hvd1RtcGx9PjwvZGl2PmA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5VUExPQUQ6XG4gICAgICAgICAgICBjb25zdCBjb3VudGVyID0gb3B0aW9ucy5jb3VudGVyO1xuICAgICAgICAgICAgY29uc3QgcENvdW50ZXIgPSBvcHRpb25zLnBDb3VudGVyO1xuICAgICAgICAgICAgY29uc3QgdXBsb2FkUHJvcHMgPSBvcHRpb25zLnVwbG9hZFByb3BzO1xuICAgICAgICAgICAgY29uc3QgZXZlbnRUbXBsID0gZ2V0VXBsb2FkRXZlbnRUbXBsKGF0dHJzLCBjb3VudGVyLCB1cGxvYWRQcm9wcyAmJiB1cGxvYWRQcm9wcy5uYW1lKTtcbiAgICAgICAgICAgIGlmICh1cGxvYWRQcm9wcykge1xuICAgICAgICAgICAgICAgIHRtcGwgPSBgPGZvcm0gbmFtZT1cIiR7dXBsb2FkUHJvcHMuZm9ybU5hbWV9XCIgJHtpbm5lclRtcGx9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb2N1cy10YXJnZXQgY2xhc3M9XCJmaWxlLXVwbG9hZFwiIHR5cGU9XCJmaWxlXCIgbmFtZT1cIiR7dXBsb2FkUHJvcHMubmFtZX1cIiAke2V2ZW50VG1wbH0gJHtzaG93VG1wbH0vPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPmA7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRtcGwgPSBgPGEgY2xhc3M9XCJmb3JtLWNvbnRyb2wtc3RhdGljXCIgaHJlZj1cInt7JHtjb3VudGVyfS5ocmVmfX1cIiB0YXJnZXQ9XCJfYmxhbmtcIiAqbmdJZj1cIiR7Y291bnRlcn0uZmlsZXR5cGUgPT09ICdpbWFnZScgJiYgJHtjb3VudGVyfS5ocmVmXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHN0eWxlPVwiaGVpZ2h0OjJlbVwiIGNsYXNzPVwid2kgd2ktZmlsZVwiIFtzcmNdPVwiJHtjb3VudGVyfS5ocmVmXCIvPjwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiZm9ybS1jb250cm9sLXN0YXRpY1wiIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCJ7eyR7Y291bnRlcn0uaHJlZn19XCIgKm5nSWY9XCIke2NvdW50ZXJ9LmZpbGV0eXBlICE9PSAnaW1hZ2UnICYmICR7Y291bnRlcn0uaHJlZlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJ3aSB3aS1maWxlXCI+PC9pPjwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCAke2lubmVyVG1wbH0gY2xhc3M9XCJhcHAtYmxvYi11cGxvYWRcIiBbbmdDbGFzc109XCJ7J2ZpbGUtcmVhZG9ubHknOiAke2NvdW50ZXJ9LnJlYWRvbmx5fVwiICR7ZXZlbnRUbXBsfVxuICAgICAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cIiR7Y291bnRlcn0ucmVxdWlyZWRcIiB0eXBlPVwiZmlsZVwiIG5hbWU9XCIke2F0dHJzLmdldCgna2V5JykgfHwgYXR0cnMuZ2V0KCduYW1lJyl9X2Zvcm1XaWRnZXRcIiBbcmVhZG9ubHldPVwiJHtjb3VudGVyfS5yZWFkb25seVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuaGlkZGVuXT1cIiEke3BDb3VudGVyfS5pc1VwZGF0ZU1vZGVcIiBbYWNjZXB0XT1cIiR7Y291bnRlcn0ucGVybWl0dGVkXCIgJHtzaG93VG1wbH0+YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdG1wbCA9IGA8d20taW5wdXQgJHtpbm5lclRtcGx9ICR7YXR0cnMuZ2V0KCdyZXF1aXJlZCcpPT09J3RydWUnID8gJ3JlcXVpcmVkPXRydWUnIDogJyd9IHR5cGU9XCJ0ZXh0XCIgJHt1cGRhdGVPblRtcGx9ICR7c2hvd1RtcGx9Pjwvd20taW5wdXQ+YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICByZXR1cm4gdG1wbDtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRSZXF1aXJlZEZvcm1XaWRnZXQgPSAod2lkZ2V0VHlwZSk6IHN0cmluZyA9PiB7XG4gICAgc3dpdGNoICh3aWRnZXRUeXBlKSB7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuQVVUT0NPTVBMRVRFOlxuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLlRZUEVBSEVBRDpcbiAgICAgICAgICAgIHJldHVybiAnd20tc2VhcmNoJztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5DSElQUzpcbiAgICAgICAgICAgIHJldHVybiAnd20tY2hpcHMnO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLkNPTE9SUElDS0VSOlxuICAgICAgICAgICAgcmV0dXJuICd3bS1jb2xvcnBpY2tlcic7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuQ1VSUkVOQ1k6XG4gICAgICAgICAgICByZXR1cm4gJ3dtLWN1cnJlbmN5JztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5EQVRFOlxuICAgICAgICAgICAgcmV0dXJuICd3bS1kYXRlJztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5EQVRFVElNRTpcbiAgICAgICAgICAgIHJldHVybiAnd20tZGF0ZXRpbWUnO1xuICAgICAgICBjYXNlIEZvcm1XaWRnZXRUeXBlLlRJTUU6XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuVElNRVNUQU1QOlxuICAgICAgICAgICAgcmV0dXJuICd3bS10aW1lJztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5SQVRJTkc6XG4gICAgICAgICAgICByZXR1cm4gJ3dtLXJhdGluZyc7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuUklDSFRFWFQ6XG4gICAgICAgICAgICByZXR1cm4gJ3dtLXJpY2h0ZXh0ZWRpdG9yJztcbiAgICAgICAgY2FzZSBGb3JtV2lkZ2V0VHlwZS5TTElERVI6XG4gICAgICAgICAgICByZXR1cm4gJ3dtLXNsaWRlcic7XG4gICAgICAgIGNhc2UgRm9ybVdpZGdldFR5cGUuQ1VTVE9NOlxuICAgICAgICAgICAgcmV0dXJuICd3bS1jdXN0b20td2lkZ2V0JztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiAnd20tdGV4dCc7XG4gICAgfVxufTtcblxuLy8gVGhpcyBtZWh0b2QgaXMgdXNlZCB0byBhZGQgZGF0YXNldGJvdW5kZXhwciBhdHRyaWJ1dGUgZm9yIG5vZGVcbmNvbnN0IGFkZERhdGFzZXRCb3VuZEV4cHJBdHRyaWJ1dGUgPSAoY2hpbGROb2RlOiBFbGVtZW50LCBhdHRyOiBBdHRyaWJ1dGUsIGF0dHJWYWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgYXR0clZhbHVlID0gYXR0clZhbHVlLnJlcGxhY2UoJ2JpbmQ6JywgJycpO1xuICAgIGNvbnN0IGRhdGFzZXRCb3VuZEF0dHJpYnV0ZSA9IGNoaWxkTm9kZS5hdHRycy5maW5kKCBhID0+IGEubmFtZSA9PT0gJ2RhdGFzZXRib3VuZGV4cHInKTtcbiAgICBpZiAoYXR0ci5uYW1lID09PSAnZGF0YXNldCcgJiYgIWRhdGFzZXRCb3VuZEF0dHJpYnV0ZSkge1xuICAgICAgICBjaGlsZE5vZGUuYXR0cnMucHVzaChuZXcgQXR0cmlidXRlKCdkYXRhc2V0Ym91bmRleHByJywgYXR0clZhbHVlLCBhdHRyLnNvdXJjZVNwYW4sIGF0dHIua2V5U3BhbiwgYXR0ci52YWx1ZVNwYW4sIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSk7XG4gICAgfVxufTtcblxuXG4vKipcbiAqIGV4cDogVXNlciBidWlsdCBiaW5kIGV4cHJlc3Npb25cbiAqICBUbyBjaGVjayB0aGUgY3VzdG9tIHBpcGUgZXhwcmVzc2lvbnMuXG4gKiAgSWYgdXNlciB1c2UgdGhlIGN1c3RvbSBwaXBlIGV4cHJlc3Npb24gaXQgd2lsbCBjaGVjayBpbiB0aGUgZXhwLiB0aGF0IFwiY3VzdG9tXCIgc3RyaW5nIGV4aXN0IG9yIG5vdCB3aXRoICg6KSBzeW50YXguXG4gKiAgRWc6IGN1c3RvbTpcbiAqICAgICAgY3VzdG9tICAgIDpcbiAqL1xuZXhwb3J0IGNvbnN0IGNoZWNrSXNDdXN0b21QaXBlRXhwcmVzc2lvbiA9IGZ1bmN0aW9uKGV4cCl7XG4gICAgbGV0IGN1c3RvbVJlZ0V4ID0gLyhjdXN0b20oXFxzKjopKS9nO1xuICAgIGxldCBtYXRjaGVzID0gZXhwLm1hdGNoKGN1c3RvbVJlZ0V4KTtcbiAgICByZXR1cm4gbWF0Y2hlcyAmJiBtYXRjaGVzLmxlbmd0aDtcbn1cblxuXG4vLyBUaGUgYm91bmQgdmFsdWUgaXMgcmVwbGFjZWQgd2l0aCB7e2l0ZW0uZmllbGRuYW1lfX0gaGVyZS4gVGhpcyBpcyBuZWVkZWQgYnkgdGhlIGxpdmVMaXN0IHdoZW4gY29tcGlsaW5nIGlubmVyIGVsZW1lbnRzXG5leHBvcnQgY29uc3QgdXBkYXRlVGVtcGxhdGVBdHRycyA9IChyb290Tm9kZTogRWxlbWVudCB8IEFycmF5PEVsZW1lbnQ+LCBwYXJlbnREYXRhU2V0OiBzdHJpbmcsIHdpZGdldE5hbWU6IHN0cmluZywgaW5zdGFuY2U6IHN0cmluZyA9ICcnLCByZWZlcmVuY2VOYW1lOiBzdHJpbmcgPSAnaXRlbScpID0+IHtcblxuICAgIGNvbnN0IHNhbml0aXplZFBhcmVudERhdGFzZXQgPSBwYXJlbnREYXRhU2V0LnJlcGxhY2UoLyhbXmEtekEtWjAtOS5dKS9nLCAnXFxcXCQxJyk7XG4gICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKCcoJyArIHNhbml0aXplZFBhcmVudERhdGFzZXQgKyAnKShcXFxcWzBcXFxcXSk/KC5kYXRhXFxcXFtcXFxcJGlcXFxcXSk/KC5jb250ZW50XFxcXFtcXFxcJGlcXFxcXSk/KFxcXFxbXFxcXCRpXFxcXF0pPycsICdnJyk7XG4gICAgbGV0IGN1cnJlbnRJdGVtUmVnRXg7XG4gICAgbGV0IGN1cnJlbnRJdGVtV2lkZ2V0c1JlZ0V4O1xuICAgIGxldCBmb3JtV2lkZ2V0c1JlZ2V4O1xuICAgIGxldCBub2RlczogQXJyYXk8RWxlbWVudD47XG4gICAgY29uc3Qgd2lkZ2V0TGlzdCA9IHtcbiAgICAgICAgJ3dtLWxpc3QnOiBbJ2l0ZW1jbGFzcycsICdkaXNhYmxlaXRlbScsICdkYXRhc2V0J11cbiAgICB9O1xuXG4gICAgaWYgKHdpZGdldE5hbWUpIHtcbiAgICAgICAgY3VycmVudEl0ZW1SZWdFeCA9IG5ldyBSZWdFeHAoYChXaWRnZXRzLiR7d2lkZ2V0TmFtZX0uY3VycmVudEl0ZW0pXFxcXGJgLCAnZycpO1xuICAgICAgICBjdXJyZW50SXRlbVdpZGdldHNSZWdFeCA9IG5ldyBSZWdFeHAoYChXaWRnZXRzLiR7d2lkZ2V0TmFtZX0uY3VycmVudEl0ZW1XaWRnZXRzKVxcXFxiYCwgJ2cnKTtcbiAgICAgICAgZm9ybVdpZGdldHNSZWdleCA9IG5ldyBSZWdFeHAoYChXaWRnZXRzLiguKikuKGZvcm1XaWRnZXRzfGZpbHRlcldpZGdldHMpKVxcXFxiYCwgJ2cnKTtcbiAgICB9XG5cbiAgICBpZiAoIV8uaXNBcnJheShyb290Tm9kZSkpIHtcbiAgICAgICAgLy8gW1dNUy0xNjcxMl0sW1dNUy0xNjc2OV0sW1dNUy0xNjgwNV0gVGhlIG1hcmt1cCBvZiByb290IG5vZGUodGFibGUsIGxpc3QsIGNhcm91c2VsKSBuZWVkIHRvIGJlIHVwZGF0ZWQgb25seSBmb3IgdGhlIHdpZGdldHMgbWVudGlvbmVkIGluIHdpZGdldExpc3QgbWFwLlxuICAgICAgICBub2RlcyA9IHdpZGdldExpc3RbKHJvb3ROb2RlIGFzIGFueSkubmFtZV0gPyBbcm9vdE5vZGUgYXMgRWxlbWVudF0gOiAoKHJvb3ROb2RlIGFzIGFueSkuY2hpbGRyZW4gfHwgW10pIGFzIEFycmF5PEVsZW1lbnQ+O1xuICAgIH0gZWxzZSB7XG4gICAgICAgIG5vZGVzID0gcm9vdE5vZGUgYXMgQXJyYXk8RWxlbWVudD47XG4gICAgfVxuXG4gICAgbm9kZXMuZm9yRWFjaCgoY2hpbGROb2RlOiBFbGVtZW50KSA9PiB7XG4gICAgICAgIGlmIChjaGlsZE5vZGUubmFtZSkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZU5hbWUgPSBjaGlsZE5vZGUubmFtZTtcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudERhdGFTZXRMZW5ndGhSZWdleCA9ICBuZXcgUmVnRXhwKCdiaW5kOlxcXFxzKlxcXFwoKicgKyBwYXJlbnREYXRhU2V0ICsgJ1xcXFwpKlxcXFwubGVuZ3RoXFxcXCkqJyk7XG4gICAgICAgICAgICBjaGlsZE5vZGUuYXR0cnMuZm9yRWFjaCgoYXR0cikgPT4ge1xuICAgICAgICAgICAgICAgIC8vIHRyaW0gdGhlIGV4dHJhIHNwYWNlcyBpbiBiaW5kaW5nc1xuICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IGF0dHIudmFsdWUgJiYgYXR0ci52YWx1ZS50cmltKCk7XG4gICAgICAgICAgICAgICAgaWYgKF8uc3RhcnRzV2l0aCh2YWx1ZSwgJ2JpbmQ6JykpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIG1hcmt1cCBvZiByb290IG5vZGUodGFibGUsIGxpc3QsIGNhcm91c2VsKSBhdHRyaWJ1dGVzIGNvbmF0YWlucyBzYW1lIGRhdGFzZXQgdmFyaWFibGUgYmluZGluZyB0aGVuIHRob3NlIGF0dHJpYnV0ZXMgbmVlZCB0byBiZSB1cGRhdGVkIG9ubHkgZm9yIHNwZWNpZmljIHByb3BlcnRpZXMgbWVudGlvbmVkIGluIHdpZGdldExpc3QgbWFwLlxuICAgICAgICAgICAgICAgICAgICBpZiAoIXdpZGdldExpc3Rbbm9kZU5hbWVdIHx8ICh3aWRnZXRMaXN0W25vZGVOYW1lXSAmJiB3aWRnZXRMaXN0W25vZGVOYW1lXS5pbmRleE9mKGF0dHIubmFtZSkgPiAtMSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBhdHRyaWJ1dGUgdmFsdWUgaXMgXCJiaW5kOnh4eHh4Lnh4eHhcIiwgZWl0aGVyIHRoZSBkYXRhU2V0L3Njb3BlRGF0YVNldCBoYXMgdG8gY29udGFpbiBcInh4eHgueHh4eFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBbV01TLTE3OTA4XTogaWYgY2hpbGQgd2lkZ2V0IGNvbnRhaW5zIGJpbmQgZXhwcmVzc2lvbiBhcyBwYXJlbmRhdGFzZXQubGVuZ3RoID4gMCB0aGVuIGRvbnQgcmVwbGFjZSBpdCB3aXRoIGl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfLmluY2x1ZGVzKHZhbHVlLCBwYXJlbnREYXRhU2V0KSAmJiB2YWx1ZSAhPT0gJ2JpbmQ6JyArIHBhcmVudERhdGFTZXQgJiYgIXBhcmVudERhdGFTZXRMZW5ndGhSZWdleC50ZXN0KHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZSgnYmluZDonLCAnJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkRGF0YXNldEJvdW5kRXhwckF0dHJpYnV0ZShjaGlsZE5vZGUsIGF0dHIsIHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UocmVnZXgsIHJlZmVyZW5jZU5hbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gJ2JpbmQ6JyArIHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIENoZWNrIGlzIHRoaXMgY3VzdG9tIGJpbmQgZXhwcmVzc2lvbiBhbmQgY3VycmVudFdpZGdldEl0ZW0gcmVnZXhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihjaGVja0lzQ3VzdG9tUGlwZUV4cHJlc3Npb24odmFsdWUpICYmIGN1cnJlbnRJdGVtUmVnRXgpe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBZGRpbmcgdGhlIGN1cnJlbnRJdGVtIGFzIGxhc3QgYXJndW1lbnQgZm9yIHRoZSBleHByZXNzaW9uLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGb3IgdGhlIGN1c3RvbSBwaXBlcyhleHByZXNpb24pLCBpdCB3aWxsIHNlbmQgdGhlIGN1cnJlbnRJdGVtIGFzIGNvbnRleHQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlICs9ICAnOicrIGN1cnJlbnRJdGVtUmVnRXguZXhlYyhjdXJyZW50SXRlbVJlZ0V4LnNvdXJjZSlbMF07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIFJlcGxhY2UgaXRlbSBpZiB3aWRnZXQgcHJvcGVydHkgaXMgYm91bmQgdG8gbGl2ZWxpc3QgY3VycmVudEl0ZW1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRJdGVtUmVnRXggJiYgY3VycmVudEl0ZW1SZWdFeC50ZXN0KHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2hhbmdlIHZhbHVlIGZyb20gJ2JpbmQ6V2lkZ2V0cy5mb3JtTmFtZS5mb3JtV2lkZ2V0cy5saXN0TmFtZS5jdXJyZW50SXRlbScgdG8gJ2JpbmQ6V2lkZ2V0cy5saXN0TmFtZS5jdXJyZW50SXRlbSdcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5pbmNsdWRlcygnLmZvcm1XaWRnZXRzJykgfHwgdmFsdWUuaW5jbHVkZXMoJy5maWx0ZXJXaWRnZXRzJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoZm9ybVdpZGdldHNSZWdleCwgJ1dpZGdldHMnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGFkZERhdGFzZXRCb3VuZEV4cHJBdHRyaWJ1dGUoY2hpbGROb2RlLCBhdHRyLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoY3VycmVudEl0ZW1SZWdFeCwgcmVmZXJlbmNlTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRJdGVtV2lkZ2V0c1JlZ0V4ICYmIGN1cnJlbnRJdGVtV2lkZ2V0c1JlZ0V4LnRlc3QodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoY3VycmVudEl0ZW1XaWRnZXRzUmVnRXgsIGAke2luc3RhbmNlfWN1cnJlbnRJdGVtV2lkZ2V0c2ApO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgYXR0ci52YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdXBkYXRlVGVtcGxhdGVBdHRycyhjaGlsZE5vZGUuY2hpbGRyZW4gYXMgQXJyYXk8RWxlbWVudD4sIHBhcmVudERhdGFTZXQsIHdpZGdldE5hbWUsIGluc3RhbmNlLCByZWZlcmVuY2VOYW1lKTtcbiAgICAgICAgfVxuICAgIH0pO1xufTtcblxuLy8gSWYgZm9ybUNvbnRyb2xOYW1lIGF0dHJpYnV0ZSBpcyBwcmVzZW50LCBkb250IGFkZCB0aGUgbmdNb2RlbFxuZXhwb3J0IGNvbnN0IGdldE5nTW9kZWxBdHRyID0gYXR0cnMgPT4ge1xuICAgIGlmIChhdHRycy5oYXMoJ2Zvcm1Db250cm9sTmFtZScpIHx8IGF0dHJzLmhhcygnZm9ybUNvbnRyb2xOYW1lLmJpbmQnKSkge1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHJldHVybiAnbmdNb2RlbCc7XG59O1xuXG5jb25zdCByb3dBY3Rpb25BdHRycyA9IG5ldyBNYXAoXG4gICAgW1xuICAgICAgICBbJ2Rpc3BsYXktbmFtZScsICdjYXB0aW9uJ10sXG4gICAgICAgIFsnZGlzcGxheS1uYW1lLmJpbmQnLCAnY2FwdGlvbi5iaW5kJ10sXG4gICAgICAgIFsndGl0bGUnLCAnaGludCddLFxuICAgICAgICBbJ3RpdGxlLmJpbmQnLCAnaGludC5iaW5kJ10sXG4gICAgICAgIFsnc2hvdycsICdzaG93J10sXG4gICAgICAgIFsnc2hvdy5iaW5kJywgJ3Nob3cuYmluZCddLFxuICAgICAgICBbJ2Rpc2FibGVkJywgJ2Rpc2FibGVkJ10sXG4gICAgICAgIFsnZGlzYWJsZWQuYmluZCcsICdkaXNhYmxlZC5iaW5kJ10sXG4gICAgICAgIFsnaHlwZXJsaW5rJywgJ2h5cGVybGluayddLFxuICAgICAgICBbJ2h5cGVybGluay5iaW5kJywgJ2h5cGVybGluay5iaW5kJ10sXG4gICAgICAgIFsndGFyZ2V0JywgJ3RhcmdldCddLFxuICAgICAgICBbJ2NvbmRpdGlvbmFsY2xhc3MuYmluZCcsICdjb25kaXRpb25hbGNsYXNzLmJpbmQnXSxcbiAgICAgICAgWydjb25kaXRpb25hbHN0eWxlLmJpbmQnLCAnY29uZGl0aW9uYWxzdHlsZS5iaW5kJ11cbiAgICBdXG4pO1xuXG5leHBvcnQgY29uc3QgZ2V0Um93QWN0aW9uQXR0cnMgPSBhdHRycyA9PiB7XG4gICAgbGV0IHRtcGwgPSAnJztcbiAgICBhdHRycy5mb3JFYWNoKCh2YWwsIGtleSkgPT4ge1xuICAgICAgICBjb25zdCBuZXdBdHRyID0gcm93QWN0aW9uQXR0cnMuZ2V0KGtleSk7XG4gICAgICAgIGlmIChuZXdBdHRyKSB7XG4gICAgICAgICAgICB0bXBsICs9IGAke25ld0F0dHJ9PVwiJHt2YWx9XCIgYDtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiB0bXBsO1xufTtcbiJdfQ==
@@ -30,6 +30,7 @@ var FormWidgetType;
30
30
  FormWidgetType["TIMESTAMP"] = "timestamp";
31
31
  FormWidgetType["TYPEAHEAD"] = "typeahead";
32
32
  FormWidgetType["UPLOAD"] = "upload";
33
+ FormWidgetType["CUSTOM"] = "custom";
33
34
  })(FormWidgetType || (FormWidgetType = {}));
34
35
  var DataType;
35
36
  (function (DataType) {
@@ -160,6 +161,9 @@ const getFormWidgetTemplate = (widgetType, innerTmpl, attrs, options = {}) => {
160
161
  case FormWidgetType.TIMESTAMP:
161
162
  tmpl = `<div wmDateTime ${attrs.get('required') === 'true' ? 'required=true' : ''} dataentrymode="${attrs.get('dataentrymode')}" ${innerTmpl} role="input" ${showTmpl}></div>`;
162
163
  break;
164
+ case FormWidgetType.CUSTOM:
165
+ tmpl = `<div wmWidgetContainer customWidgetContainer ${attrs.get('required') === 'true' ? 'required=true' : ''} ${innerTmpl} ${showTmpl}></div>`;
166
+ break;
163
167
  case FormWidgetType.UPLOAD:
164
168
  const counter = options.counter;
165
169
  const pCounter = options.pCounter;
@@ -210,6 +214,8 @@ const getRequiredFormWidget = (widgetType) => {
210
214
  return 'wm-richtexteditor';
211
215
  case FormWidgetType.SLIDER:
212
216
  return 'wm-slider';
217
+ case FormWidgetType.CUSTOM:
218
+ return 'wm-custom-widget';
213
219
  default:
214
220
  return 'wm-text';
215
221
  }
@@ -2293,6 +2299,7 @@ var ComponentType;
2293
2299
  ComponentType[ComponentType["PAGE"] = 0] = "PAGE";
2294
2300
  ComponentType[ComponentType["PREFAB"] = 1] = "PREFAB";
2295
2301
  ComponentType[ComponentType["PARTIAL"] = 2] = "PARTIAL";
2302
+ ComponentType[ComponentType["WIDGET"] = 3] = "WIDGET";
2296
2303
  })(ComponentType || (ComponentType = {}));
2297
2304
  class IDataSource {
2298
2305
  }
@@ -2365,6 +2372,8 @@ class DynamicComponentRefProvider {
2365
2372
  }
2366
2373
  class PartialRefProvider {
2367
2374
  }
2375
+ class CustomWidgetRefProvider {
2376
+ }
2368
2377
 
2369
2378
  const userAgent = window.navigator.userAgent;
2370
2379
  const REGEX = {
@@ -5162,5 +5171,5 @@ class LRUCache {
5162
5171
  * Generated bundle index. Do not edit.
5163
5172
  */
5164
5173
 
5165
- export { $appDigest, $invokeWatchers, $parseEvent, $parseExpr, $unwatch, $watch, AbstractDialogService, AbstractHttpService, AbstractI18nService, AbstractNavigationService, AbstractSpinnerService, AbstractToasterService, App, AppConstants, AppDefaults, CURRENCY_INFO, ComponentType, ConstantService, CoreModule, CustomPipeManager, DEFAULT_FORMATS, DataSource, DataType, DynamicComponentRefProvider, EventNotifier, FIRST_TIME_WATCH, FieldTypeService, FieldWidgetService, FormWidgetType, IDGenerator, IDataSource, LRUCache, MatchMode, PaginationService, PartialRefProvider, ScriptLoaderService, ScriptStore, StatePersistence, UserDefinedExecutionContext, UtilsService, VALIDATOR, Viewport, _WM_APP_PROJECT, addClass, addEventListenerOnElement, addForIdAttributes, adjustContainerPosition, adjustContainerRightEdges, appendNode, appendScriptToHead, checkIsCustomPipeExpression, closePopover, convertToBlob, createCSSRule, createElement, deHyphenate, debounce, defer, detectChanges, encodeUrl, encodeUrlParams, executePromiseChain, extendProto, extractCurrentItemExpr, extractType, fetchContent, findParent, findRootContainer, findValueOf, generateGUId, getAbortableDefer, getAndroidVersion, getAppSetting, getBlob, getClonedObject, getDatasourceFromExpr, getDateObj, getDisplayDateTimeFormat, getEvaluatedExprValue, getFiles, getFnByExpr, getFnForBindExpr, getFnForEventExpr, getFormWidgetTemplate, getFormattedDate, getMomentLocaleObject, getNativeDateObject, getNgModelAttr, getRequiredFormWidget, getResourceURL, getRouteNameFromLink, getRowActionAttrs, getSessionStorageItem, getUrlParams, getValidDateObject, getValidJSON, getWebkitTraslationMatrix, getWmProjectProperties, hasCordova, hasOffsetStr, initCaps, insertAfter, insertBefore, isAndroid, isAndroidTablet, isAppleProduct, isArray, isAudioFile, isBoolean, isChangeFromWatch, isDataSourceEqual, isDateTimeType, isDefined, isElementInViewport, isEmptyObject, isEqualWithFields, isFirstTimeChange, isIE, isImageFile, isInsecureContentRequest, isIos, isIpad, isIphone, isIpod, isKitkatDevice, isLargeTabletLandscape, isLargeTabletPortrait, isMobile, isMobileApp, isNumber, isNumberType, isObject, isPageable, isString, isValidWebURL, isVideoFile, loadScript, loadScripts, loadStyleSheet, loadStyleSheets, muteWatchers, noop, openLink, periodSeparate, prettifyLabel, prettifyLabels, processFilterExpBindNode, registerFnByExpr, removeAttr, removeClass, removeExtraSlashes, removeNode, replace, replaceAt, resetChangeFromWatch, retryIfFails, scrollToElement, setAppRef, setAttr, setCSS, setCSSFromObj, setHtml, setListClass, setNgZone, setPipeProvider, setProperty, setSessionStorageItem, setTranslation3dPosition, setWmProjectProperties, spaceSeparate, stringStartsWith, switchClass, toBoolean, toDimension, toPromise, toggleClass, transformFileURI, triggerFn, triggerItemAction, unMuteWatchers, updateTemplateAttrs, validateAccessRoles, validateDataSourceCtx, xmlToJson };
5174
+ export { $appDigest, $invokeWatchers, $parseEvent, $parseExpr, $unwatch, $watch, AbstractDialogService, AbstractHttpService, AbstractI18nService, AbstractNavigationService, AbstractSpinnerService, AbstractToasterService, App, AppConstants, AppDefaults, CURRENCY_INFO, ComponentType, ConstantService, CoreModule, CustomPipeManager, CustomWidgetRefProvider, DEFAULT_FORMATS, DataSource, DataType, DynamicComponentRefProvider, EventNotifier, FIRST_TIME_WATCH, FieldTypeService, FieldWidgetService, FormWidgetType, IDGenerator, IDataSource, LRUCache, MatchMode, PaginationService, PartialRefProvider, ScriptLoaderService, ScriptStore, StatePersistence, UserDefinedExecutionContext, UtilsService, VALIDATOR, Viewport, _WM_APP_PROJECT, addClass, addEventListenerOnElement, addForIdAttributes, adjustContainerPosition, adjustContainerRightEdges, appendNode, appendScriptToHead, checkIsCustomPipeExpression, closePopover, convertToBlob, createCSSRule, createElement, deHyphenate, debounce, defer, detectChanges, encodeUrl, encodeUrlParams, executePromiseChain, extendProto, extractCurrentItemExpr, extractType, fetchContent, findParent, findRootContainer, findValueOf, generateGUId, getAbortableDefer, getAndroidVersion, getAppSetting, getBlob, getClonedObject, getDatasourceFromExpr, getDateObj, getDisplayDateTimeFormat, getEvaluatedExprValue, getFiles, getFnByExpr, getFnForBindExpr, getFnForEventExpr, getFormWidgetTemplate, getFormattedDate, getMomentLocaleObject, getNativeDateObject, getNgModelAttr, getRequiredFormWidget, getResourceURL, getRouteNameFromLink, getRowActionAttrs, getSessionStorageItem, getUrlParams, getValidDateObject, getValidJSON, getWebkitTraslationMatrix, getWmProjectProperties, hasCordova, hasOffsetStr, initCaps, insertAfter, insertBefore, isAndroid, isAndroidTablet, isAppleProduct, isArray, isAudioFile, isBoolean, isChangeFromWatch, isDataSourceEqual, isDateTimeType, isDefined, isElementInViewport, isEmptyObject, isEqualWithFields, isFirstTimeChange, isIE, isImageFile, isInsecureContentRequest, isIos, isIpad, isIphone, isIpod, isKitkatDevice, isLargeTabletLandscape, isLargeTabletPortrait, isMobile, isMobileApp, isNumber, isNumberType, isObject, isPageable, isString, isValidWebURL, isVideoFile, loadScript, loadScripts, loadStyleSheet, loadStyleSheets, muteWatchers, noop, openLink, periodSeparate, prettifyLabel, prettifyLabels, processFilterExpBindNode, registerFnByExpr, removeAttr, removeClass, removeExtraSlashes, removeNode, replace, replaceAt, resetChangeFromWatch, retryIfFails, scrollToElement, setAppRef, setAttr, setCSS, setCSSFromObj, setHtml, setListClass, setNgZone, setPipeProvider, setProperty, setSessionStorageItem, setTranslation3dPosition, setWmProjectProperties, spaceSeparate, stringStartsWith, switchClass, toBoolean, toDimension, toPromise, toggleClass, transformFileURI, triggerFn, triggerItemAction, unMuteWatchers, updateTemplateAttrs, validateAccessRoles, validateDataSourceCtx, xmlToJson };
5166
5175
  //# sourceMappingURL=index.mjs.map