@decaf-ts/for-angular 0.0.5 → 0.0.7

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 (24) hide show
  1. package/dist/lib/components/component-renderer/component-renderer.component.d.ts +16 -7
  2. package/dist/lib/components/crud-field/crud-field.component.d.ts +1 -3
  3. package/dist/lib/components/crud-form/crud-form.component.d.ts +1 -1
  4. package/dist/lib/components/model-renderer/model-renderer.component.d.ts +5 -6
  5. package/dist/lib/engine/NgxCrudFormField.d.ts +3 -7
  6. package/dist/lib/engine/NgxRenderingEngine.d.ts +2 -3
  7. package/dist/lib/engine/NgxRenderingEngine2.d.ts +5 -6
  8. package/dist/lib/engine/ValidatorFactory.d.ts +2 -2
  9. package/dist/lib/engine/types.d.ts +69 -25
  10. package/dist/lib/esm2022/components/component-renderer/component-renderer.component.mjs +14 -10
  11. package/dist/lib/esm2022/components/crud-field/crud-field.component.mjs +20 -11
  12. package/dist/lib/esm2022/components/crud-form/crud-form.component.mjs +3 -4
  13. package/dist/lib/esm2022/components/model-renderer/model-renderer.component.mjs +10 -9
  14. package/dist/lib/esm2022/engine/NgxCrudFormField.mjs +21 -15
  15. package/dist/lib/esm2022/engine/NgxFormService.mjs +1 -1
  16. package/dist/lib/esm2022/engine/NgxRenderingEngine.mjs +2 -4
  17. package/dist/lib/esm2022/engine/NgxRenderingEngine2.mjs +5 -6
  18. package/dist/lib/esm2022/engine/ValidatorFactory.mjs +4 -4
  19. package/dist/lib/esm2022/engine/types.mjs +1 -1
  20. package/dist/lib/esm2022/for-angular.module.mjs +1 -1
  21. package/dist/lib/fesm2022/decaf-ts-for-angular.mjs +71 -56
  22. package/dist/lib/fesm2022/decaf-ts-for-angular.mjs.map +1 -1
  23. package/dist/lib/for-angular.module.d.ts +2 -1
  24. package/package.json +4 -6
@@ -70,7 +70,7 @@ export class ValidatorFactory {
70
70
  * Enables Validators handling method to access parent and child properties using consistent dot-notation in Angular forms.
71
71
  *
72
72
  * @param {AbstractControl} control - The control to wrap in a proxy.
73
- * @returns {PathProxy<any>} A proxy object exposing form values and enabling recursive parent access.
73
+ * @returns {PathProxy<unknown>} A proxy object exposing form values and enabling recursive parent access.
74
74
  */
75
75
  static createProxy(control) {
76
76
  return PathProxyEngine.create(control, {
@@ -89,14 +89,14 @@ export class ValidatorFactory {
89
89
  // const control = value.controls[prop];
90
90
  // return control instanceof FormControl ? control.value : control;
91
91
  // }
92
- return target[prop];
92
+ return target?.[prop];
93
93
  },
94
94
  getParent: function (target) {
95
- return target._parent;
95
+ return target?.['_parent'];
96
96
  },
97
97
  ignoreUndefined: true,
98
98
  ignoreNull: true,
99
99
  });
100
100
  }
101
101
  }
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVmFsaWRhdG9yRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvZW5naW5lL1ZhbGlkYXRvckZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQixXQUFXLEVBQUUsU0FBUyxFQUFpQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hHLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsZ0JBQWdCLEVBRWhCLGVBQWUsRUFDZixVQUFVLEVBQ1YsY0FBYyxHQUVmLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFtQixlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFaEQ7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxHQUFXLEVBQUUsS0FBYyxFQUFFLElBQVksRUFHekUsRUFBRTtJQUNGLE1BQU0saUJBQWlCLEdBQXdCO1FBQzdDLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxpQkFBaUI7UUFDdEUsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsS0FBSztRQUM5QyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHO0tBQzNDLENBQUM7SUFFRixNQUFNLFdBQVcsR0FBRyxHQUFHLEtBQUssY0FBYyxDQUFDLElBQUksSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pHLE1BQU0sWUFBWSxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDOUMsTUFBTSxLQUFLLEdBQTRCO1FBQ3JDLENBQUMsWUFBWSxDQUFD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Q0FBQztnQkFFdEIsSUFBSSxNQUFNLFlBQVksU0FBUyxFQUFFLENBQUM7b0JBQ2hDLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3RDLE9BQU8sT0FBTyxZQUFZLFdBQVcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO2dCQUNsRSxDQUFDO2dCQUVELDhCQUE4QjtnQkFDOUIsb0NBQW9DO2dCQUNwQyx3QkFBd0I7Z0JBQ3hCLEVBQUU7Z0JBQ0Ysb0NBQW9DO2dCQUNwQywwQ0FBMEM7Z0JBQzFDLHFFQUFxRTtnQkFDckUsSUFBSTtnQkFFSixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN0QixDQUFDO1lBQ0QsU0FBUyxFQUFFLFVBQVMsTUFBVztnQkFDN0IsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDO1lBQ3hCLENBQUM7WUFDRCxlQUFlLEVBQUUsSUFBSTtZQUNyQixVQUFVLEVBQUUsSUFBSTtTQUNqQixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgQ29tcGFyaXNvblZhbGlkYXRpb25LZXlzLFxuICBERUZBVUxUX1BBVFRFUk5TLFxuICBQYXRoUHJveHksXG4gIFBhdGhQcm94eUVuZ2luZSxcbiAgVmFsaWRhdGlvbixcbiAgVmFsaWRhdGlvbktleXMsXG4gIFZhbGlkYXRvcixcbn0gZnJvbSAnQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uJztcbmltcG9ydCB7IEZpZWxkUHJvcGVydGllcywgSFRNTDVJbnB1dFR5cGVzLCBwYXJzZVZhbHVlQnlUeXBlIH0gZnJvbSAnQGRlY2FmLXRzL3VpLWRlY29yYXRvcnMnO1xuaW1wb3J0IHsgQW5ndWxhckVuZ2luZUtleXMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbi8qKlxuICpcbiAqIFJlc29sdmVzIHRoZSBjb3JyZWN0IHZhbGlkYXRvciBrZXkgYW5kIGl0cyBhc3NvY2lhdGVkIHByb3BlcnRpZXMgYmFzZWQgb24gdGhlIGlucHV0IGtleSBhbmQgdHlwZS5cbiAqXG4gKiBXaGVuIHRoZSB2YWxpZGF0aW9uIGtleSBpcyBUWVBFLCBpdCdzIG5lY2Vzc2FyeSB0byByZXNvbHZlIHRoZSBhY3R1YWwgdmFsaWRhdG9yIGJhc2VkIG9uIHRoZVxuICogZmllbGQncyB0eXBlIChlLmcuLCAncGFzc3dvcmQnLCAnZW1haWwnLCAndXJsJykgaW5zdGVhZCBvZiB1c2luZyB0aGUgZ2VuZXJpYyBnZXRWYWxpZGF0b3IoXCJ0eXBlXCIpIGxvZ2ljLlxuICogVGhpcyBhbGxvd3MgZGlyZWN0bHkgaW52b2tpbmcgc3BlY2lmaWMgdmFsaWRhdG9ycyBsaWtlIGdldFZhbGlkYXRvcigncGFzc3dvcmQnKSwgZW5zdXJpbmcgdGhlIGNvcnJlY3RcbiAqIGJlaGF2aW9yIGZvciB0eXBlLWJhc2VkIHZhbGlkYXRpb24uXG4gKlxuICogQHBhcmFtIGtleSAtIFRoZSB2YWxpZGF0aW9uIGtleSAoZS5nLiwgJ3R5cGUnLCAncmVxdWlyZWQnLCBldGMuKS5cbiAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0aGF0IG5lZWRzIGJlIHByb3ZpZGVkIHRvIHRoZSB2YWxpZGF0b3IuXG4gKiBAcGFyYW0gdHlwZSAtIFRoZSBmaWVsZCdzIGRlY2xhcmVkIHR5cGUuXG4gKiBAcmV0dXJucyBBbiBvYmplY3QgY29udGFpbmluZyB0aGUgcmVzb2x2ZWQgdmFsaWRhdG9yIGtleSBhbmQgaXRzIGNvcnJlc3BvbmRpbmcgcHJvcHMuXG4gKi9cbmNvbnN0IHJlc29sdmVWYWxpZGF0b3JLZXlQcm9wcyA9IChrZXk6IHN0cmluZywgdmFsdWU6IHVua25vd24sIHR5cGU6IHN0cmluZyk6IHtcbiAgdmFsaWRhdG9yS2V5OiBzdHJpbmc7XG4gIHByb3BzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xufSA9PiB7XG4gIGNvbnN0IHBhdHRlcm5WYWxpZGF0b3JzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge1xuICAgIFtWYWxpZGF0aW9uS2V5cy5QQVNTV09SRF06IERFRkFVTFRfUEFUVEVSTlMuUEFTU1dPUkQuQ0hBUjhfT05FX09GX0VBQ0gsXG4gICAgW1ZhbGlkYXRpb25LZXlzLkVNQUlMXTogREVGQVVMVF9QQVRURVJOUy5FTUFJTCxcbiAgICBbVmFsaWRhdGlvbktleXMuVVJMXTogREVGQVVMVF9QQVRURVJOUy5VUkwsXG4gIH07XG5cbiAgY29uc3QgaXNUeXBlQmFzZWQgPSBrZXkgPT09IFZhbGlkYXRpb25LZXlzLlRZUEUgJiYgT2JqZWN0LmtleXMocGF0dGVyblZhbGlkYXRvcnMpLmluY2x1ZGVzKHR5cGUpO1xuICBjb25zdCB2YWxpZGF0b3JLZXkgPSBpc1R5cGVCYXNlZCA/IHR5cGUgOiBrZXk7XG4gIGNvbnN0IHByb3BzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHtcbiAgICBbdmFsaWRhdG9yS2V5XTogdmFsdWUsXG4gICAgLy8gRW1haWwsIFBhc3N3b3JkLCBhbmQgVVJMIGFyZSB2YWxpZGF0ZWQgdXNpbmcgdGhlIFwicGF0dGVyblwiIGtleVxuICAgIC4uLihpc1R5cGVCYXNlZCAmJiB7IFtWYWxpZGF0aW9uS2V5cy5QQVRURVJOXTogcGF0dGVyblZhbGlkYXRvcnNbdHlwZV0gfSksXG4gIH07XG5cbiAgcmV0dXJuIHsgdmFsaWRhdG9yS2V5LCBwcm9wcyB9O1xufTtcblxuXG5leHBvcnQgY2xhc3MgVmFsaWRhdG9yRmFjdG9yeSB7XG4gIHN0YXRpYyBzcGF3bihmaWVsZFByb3BzOiBGaWVsZFByb3BlcnRpZXMsIGtleTogc3RyaW5nKTogVmFsaWRhdG9yRm4ge1xuICAgIGlmICghVmFsaWRhdGlvbi5rZXlzKCkuaW5jbHVkZXMoa2V5KSlcbiAgICAgIHRocm93IG5ldyBFcnJvcignVW5zdXBwb3J0ZWQgY3VzdG9tIHZhbGlkYXRpb24nKTtcblxuICAgIGNvbnN0IHZhbGlkYXRvckZuOiBWYWxpZGF0b3JGbiA9IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICBjb25zdCB7IG5hbWUsIHR5cGUgfSA9IGZpZWxkUHJvcHM7XG4gICAgICBjb25zdCB7IHZhbGlkYXRvcktleSwgcHJvcHMgfSA9IHJlc29sdmVWYWxpZGF0b3JLZXlQcm9wcyhrZXksIGZpZWxkUHJvcHNba2V5IGFzIGtleW9mIEZpZWxkUHJvcGVydGllc10sIHR5cGUpO1xuICAgICAgY29uc3QgdmFsaWRhdG9yID0gVmFsaWRhdGlvbi5nZXQodmFsaWRhdG9yS2V5KSBhcyBWYWxpZGF0b3I7XG5cbiAgICAgIC8vIHBhcnNlVmFsdWVCeVR5cGUgZG9lcyBub3Qgc3VwcG9ydCB1bmRlZmluZWQgdmFsdWVzXG4gICAgICBjb25zdCB2YWx1ZSA9IHR5cGVvZiBjb250cm9sLnZhbHVlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICA/IHBhcnNlVmFsdWVCeVR5cGUodHlwZSwgdHlwZSA9PT0gSFRNTDVJbnB1dFR5cGVzLkNIRUNLQk9YID8gbmFtZSA6IGNvbnRyb2wudmFsdWUsIGZpZWxkUHJvcHMpXG4gICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgICAvLyBDcmVhdGUgYSBwcm94eSB0byBlbmFibGUgYWNjZXNzIHRvIHBhcmVudCBhbmQgY2hpbGQgdmFsdWVzXG4gICAgICBsZXQgcHJveHk6IFBhdGhQcm94eTxhbnk+ID0gVmFsaWRhdG9yRmFjdG9yeS5jcmVhdGVQcm94eSh7fSBhcyBhbnkpO1xuICAgICAgaWYgKE9iamVjdC52YWx1ZXMoQ29tcGFyaXNvblZhbGlkYXRpb25LZXlzKS5pbmNsdWRlcyhrZXkgYXMgYW55KSkge1xuICAgICAgICBjb25zdCBwYXJlbnQ6IEZvcm1Hcm91cCA9IGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtR3JvdXAgPyBjb250cm9sIDogKGNvbnRyb2wgYXMgUmVjb3JkPHN0cmluZywgYW55PilbQW5ndWxhckVuZ2luZUtleXMuUEFSRU5UXTtcbiAgICAgICAgcHJveHkgPSBWYWxpZGF0b3JGYWN0b3J5LmNyZWF0ZVByb3h5KHBhcmVudCkgYXMgUGF0aFByb3h5PGFueT47XG4gICAgICB9XG5cbiAgICAgIGxldCBlcnJzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICB0cnkge1xuICAgICAgICBlcnJzID0gdmFsaWRhdG9yLmhhc0Vycm9ycyh2YWx1ZSwgcHJvcHMsIHByb3h5KTtcbiAgICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgICAgZXJycyA9IGAke2tleX0gdmFsaWRhdG9yIGZhaWxlZCB0byB2YWxpZGF0ZTogJHtlfWA7XG4gICAgICAgIGNvbnNvbGUud2FybihlcnJzKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGVycnMgPyB7IFt2YWxpZGF0b3JLZXldOiB0cnVlIH0gOiBudWxsO1xuICAgIH07XG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodmFsaWRhdG9yRm4sICduYW1lJywge1xuICAgICAgdmFsdWU6IGAke2tleX1WYWxpZGF0b3JgLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHZhbGlkYXRvckZuO1xuICB9XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IENyZWF0ZXMgYSBwcm94eSB3cmFwcGVyIGZvciBhbiBBbmd1bGFyIEFic3RyYWN0Q29udHJvbCB0byBhc3Npc3Qgd2l0aCBjdXN0b20gdmFsaWRhdGlvbiBsb2dpYy5cbiAgICogQGRlc2NyaXB0aW9uIFJldHVybnMgYSBzdHJ1Y3R1cmVkIHByb3h5IG9iamVjdCB0aGF0IHNpbXVsYXRlcyBhIGhpZXJhcmNoaWNhbCB0cmVlIG9mIGZvcm0gdmFsdWVzLlxuICAgKiBFbmFibGVzIFZhbGlkYXRvcnMgaGFuZGxpbmcgbWV0aG9kIHRvIGFjY2VzcyBwYXJlbnQgYW5kIGNoaWxkIHByb3BlcnRpZXMgdXNpbmcgY29uc2lzdGVudCBkb3Qtbm90YXRpb24gaW4gQW5ndWxhciBmb3Jtcy5cbiAgICpcbiAgICogQHBhcmFtIHtBYnN0cmFjdENvbnRyb2x9IGNvbnRyb2wgLSBUaGUgY29udHJvbCB0byB3cmFwIGluIGEgcHJveHkuXG4gICAqIEByZXR1cm5zIHtQYXRoUHJveHk8YW55Pn0gQSBwcm94eSBvYmplY3QgZXhwb3NpbmcgZm9ybSB2YWx1ZXMgYW5kIGVuYWJsaW5nIHJlY3Vyc2l2ZSBwYXJlbnQgYWNjZXNzLlxuICAgKi9cbiAgc3RhdGljIGNyZWF0ZVByb3h5KGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFBhdGhQcm94eTxhbnk+IHtcbiAgICByZXR1cm4gUGF0aFByb3h5RW5naW5lLmNyZWF0ZShjb250cm9sLCB7XG4gICAgICBnZXRWYWx1ZSh0YXJnZXQ6IGFueSwgcHJvcDogc3RyaW5nKTogYW55IHtcbiAgICAgICAgaWYgKHRhcmdldCBpbnN0YW5jZW9mIEZvcm1Db250cm9sKVxuICAgICAgICAgIHJldHVybiB0YXJnZXQudmFsdWU7XG5cbiAgICAgICAgaWYgKHRhcmdldCBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xuICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0YXJnZXQuY29udHJvbHNbcHJvcF07XG4gICAgICAgICAgcmV0dXJuIGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbCA/IGNvbnRyb2wudmFsdWUgOiBjb250cm9sO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gY29uc3QgdmFsdWUgPSB0YXJnZXRbcHJvcF07XG4gICAgICAgIC8vIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEZvcm1Db250cm9sKVxuICAgICAgICAvLyAgIHJldHVybiB2YWx1ZS52YWx1ZTtcbiAgICAgICAgLy9cbiAgICAgICAgLy8gaWYgKHZhbHVlIGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7XG4gICAgICAgIC8vICAgY29uc3QgY29udHJvbCA9IHZhbHVlLmNvbnRyb2xzW3Byb3BdO1xuICAgICAgICAvLyAgIHJldHVybiBjb250cm9sIGluc3RhbmNlb2YgRm9ybUNvbnRyb2wgPyBjb250cm9sLnZhbHVlIDogY29udHJvbDtcbiAgICAgICAgLy8gfVxuXG4gICAgICAgIHJldHVybiB0YXJnZXRbcHJvcF07XG4gICAgICB9LFxuICAgICAgZ2V0UGFyZW50OiBmdW5jdGlvbih0YXJnZXQ6IGFueSkge1xuICAgICAgICByZXR1cm4gdGFyZ2V0Ll9wYXJlbnQ7XG4gICAgICB9LFxuICAgICAgaWdub3JlVW5kZWZpbmVkOiB0cnVlLFxuICAgICAgaWdub3JlTnVsbDogdHJ1ZSxcbiAgICB9KTtcbiAgfVxufVxuIl19
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVmFsaWRhdG9yRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvZW5naW5lL1ZhbGlkYXRvckZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQixXQUFXLEVBQUUsU0FBUyxFQUFpQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hHLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsZ0JBQWdCLEVBRWhCLGVBQWUsRUFDZixVQUFVLEVBQ1YsY0FBYyxHQUVmLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFtQixlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFLaEQ7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxHQUFXLEVBQUUsS0FBYyxFQUFFLElBQVksRUFHekUsRUFBRTtJQUNGLE1BQU0saUJBQWlCLEdBQTRCO1FBQ2pELENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxpQkFBaUI7UUFDdEUsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsS0FBSztRQUM5QyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHO0tBQzNDLENBQUM7SUFFRixNQUFNLFdBQVcsR0FBRyxHQUFHLEtBQUssY0FBYyxDQUFDLElBQUksSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pHLE1BQU0sWUFBWSxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDOUMsTUFBTSxLQUFLLEdBQTRCO1FBQ3JDLENBQUMsWUFBWSxDQUFD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QUssQ0FBQztnQkFFdEIsSUFBSSxNQUFNLFlBQVksU0FBUyxFQUFFLENBQUM7b0JBQ2hDLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3RDLE9BQU8sT0FBTyxZQUFZLFdBQVcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO2dCQUNsRSxDQUFDO2dCQUVELDhCQUE4QjtnQkFDOUIsb0NBQW9DO2dCQUNwQyx3QkFBd0I7Z0JBQ3hCLEVBQUU7Z0JBQ0Ysb0NBQW9DO2dCQUNwQywwQ0FBMEM7Z0JBQzFDLHFFQUFxRTtnQkFDckUsSUFBSTtnQkFFSixPQUFRLE1BQW1CLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN0QyxDQUFDO1lBQ0QsU0FBUyxFQUFFLFVBQVMsTUFBdUI7Z0JBQ3pDLE9BQU8sTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDN0IsQ0FBQztZQUNELGVBQWUsRUFBRSxJQUFJO1lBQ3JCLFVBQVUsRUFBRSxJQUFJO1NBQ2pCLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICBDb21wYXJpc29uVmFsaWRhdGlvbktleXMsXG4gIERFRkFVTFRfUEFUVEVSTlMsXG4gIFBhdGhQcm94eSxcbiAgUGF0aFByb3h5RW5naW5lLFxuICBWYWxpZGF0aW9uLFxuICBWYWxpZGF0aW9uS2V5cyxcbiAgVmFsaWRhdG9yLFxufSBmcm9tICdAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb24nO1xuaW1wb3J0IHsgRmllbGRQcm9wZXJ0aWVzLCBIVE1MNUlucHV0VHlwZXMsIHBhcnNlVmFsdWVCeVR5cGUgfSBmcm9tICdAZGVjYWYtdHMvdWktZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBbmd1bGFyRW5naW5lS2V5cyB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IEtleVZhbHVlIH0gZnJvbSAnLi90eXBlcyc7XG5cbnR5cGUgQ29tcGFyaXNvblZhbGlkYXRpb25LZXkgPSB0eXBlb2YgQ29tcGFyaXNvblZhbGlkYXRpb25LZXlzW2tleW9mIHR5cGVvZiBDb21wYXJpc29uVmFsaWRhdGlvbktleXNdO1xuXG4vKipcbiAqXG4gKiBSZXNvbHZlcyB0aGUgY29ycmVjdCB2YWxpZGF0b3Iga2V5IGFuZCBpdHMgYXNzb2NpYXRlZCBwcm9wZXJ0aWVzIGJhc2VkIG9uIHRoZSBpbnB1dCBrZXkgYW5kIHR5cGUuXG4gKlxuICogV2hlbiB0aGUgdmFsaWRhdGlvbiBrZXkgaXMgVFlQRSwgaXQncyBuZWNlc3NhcnkgdG8gcmVzb2x2ZSB0aGUgYWN0dWFsIHZhbGlkYXRvciBiYXNlZCBvbiB0aGVcbiAqIGZpZWxkJ3MgdHlwZSAoZS5nLiwgJ3Bhc3N3b3JkJywgJ2VtYWlsJywgJ3VybCcpIGluc3RlYWQgb2YgdXNpbmcgdGhlIGdlbmVyaWMgZ2V0VmFsaWRhdG9yKFwidHlwZVwiKSBsb2dpYy5cbiAqIFRoaXMgYWxsb3dzIGRpcmVjdGx5IGludm9raW5nIHNwZWNpZmljIHZhbGlkYXRvcnMgbGlrZSBnZXRWYWxpZGF0b3IoJ3Bhc3N3b3JkJyksIGVuc3VyaW5nIHRoZSBjb3JyZWN0XG4gKiBiZWhhdmlvciBmb3IgdHlwZS1iYXNlZCB2YWxpZGF0aW9uLlxuICpcbiAqIEBwYXJhbSBrZXkgLSBUaGUgdmFsaWRhdGlvbiBrZXkgKGUuZy4sICd0eXBlJywgJ3JlcXVpcmVkJywgZXRjLikuXG4gKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgdGhhdCBuZWVkcyBiZSBwcm92aWRlZCB0byB0aGUgdmFsaWRhdG9yLlxuICogQHBhcmFtIHR5cGUgLSBUaGUgZmllbGQncyBkZWNsYXJlZCB0eXBlLlxuICogQHJldHVybnMgQW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIHJlc29sdmVkIHZhbGlkYXRvciBrZXkgYW5kIGl0cyBjb3JyZXNwb25kaW5nIHByb3BzLlxuICovXG5jb25zdCByZXNvbHZlVmFsaWRhdG9yS2V5UHJvcHMgPSAoa2V5OiBzdHJpbmcsIHZhbHVlOiB1bmtub3duLCB0eXBlOiBzdHJpbmcpOiB7XG4gIHZhbGlkYXRvcktleTogc3RyaW5nO1xuICBwcm9wczogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59ID0+IHtcbiAgY29uc3QgcGF0dGVyblZhbGlkYXRvcnM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge1xuICAgIFtWYWxpZGF0aW9uS2V5cy5QQVNTV09SRF06IERFRkFVTFRfUEFUVEVSTlMuUEFTU1dPUkQuQ0hBUjhfT05FX09GX0VBQ0gsXG4gICAgW1ZhbGlkYXRpb25LZXlzLkVNQUlMXTogREVGQVVMVF9QQVRURVJOUy5FTUFJTCxcbiAgICBbVmFsaWRhdGlvbktleXMuVVJMXTogREVGQVVMVF9QQVRURVJOUy5VUkwsXG4gIH07XG5cbiAgY29uc3QgaXNUeXBlQmFzZWQgPSBrZXkgPT09IFZhbGlkYXRpb25LZXlzLlRZUEUgJiYgT2JqZWN0LmtleXMocGF0dGVyblZhbGlkYXRvcnMpLmluY2x1ZGVzKHR5cGUpO1xuICBjb25zdCB2YWxpZGF0b3JLZXkgPSBpc1R5cGVCYXNlZCA/IHR5cGUgOiBrZXk7XG4gIGNvbnN0IHByb3BzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHtcbiAgICBbdmFsaWRhdG9yS2V5XTogdmFsdWUsXG4gICAgLy8gRW1haWwsIFBhc3N3b3JkLCBhbmQgVVJMIGFyZSB2YWxpZGF0ZWQgdXNpbmcgdGhlIFwicGF0dGVyblwiIGtleVxuICAgIC4uLihpc1R5cGVCYXNlZCAmJiB7IFtWYWxpZGF0aW9uS2V5cy5QQVRURVJOXTogcGF0dGVyblZhbGlkYXRvcnNbdHlwZV0gfSksXG4gIH07XG5cbiAgcmV0dXJuIHsgdmFsaWRhdG9yS2V5LCBwcm9wcyB9O1xufTtcblxuXG5leHBvcnQgY2xhc3MgVmFsaWRhdG9yRmFjdG9yeSB7XG4gIHN0YXRpYyBzcGF3bihmaWVsZFByb3BzOiBGaWVsZFByb3BlcnRpZXMsIGtleTogc3RyaW5nKTogVmFsaWRhdG9yRm4ge1xuICAgIGlmICghVmFsaWRhdGlvbi5rZXlzKCkuaW5jbHVkZXMoa2V5KSlcbiAgICAgIHRocm93IG5ldyBFcnJvcignVW5zdXBwb3J0ZWQgY3VzdG9tIHZhbGlkYXRpb24nKTtcblxuICAgIGNvbnN0IHZhbGlkYXRvckZuOiBWYWxpZGF0b3JGbiA9IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICBjb25zdCB7IG5hbWUsIHR5cGUgfSA9IGZpZWxkUHJvcHM7XG4gICAgICBjb25zdCB7IHZhbGlkYXRvcktleSwgcHJvcHMgfSA9IHJlc29sdmVWYWxpZGF0b3JLZXlQcm9wcyhrZXksIGZpZWxkUHJvcHNba2V5IGFzIGtleW9mIEZpZWxkUHJvcGVydGllc10sIHR5cGUpO1xuICAgICAgY29uc3QgdmFsaWRhdG9yID0gVmFsaWRhdGlvbi5nZXQodmFsaWRhdG9yS2V5KSBhcyBWYWxpZGF0b3I7XG5cbiAgICAgIC8vIHBhcnNlVmFsdWVCeVR5cGUgZG9lcyBub3Qgc3VwcG9ydCB1bmRlZmluZWQgdmFsdWVzXG4gICAgICBjb25zdCB2YWx1ZSA9IHR5cGVvZiBjb250cm9sLnZhbHVlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICA/IHBhcnNlVmFsdWVCeVR5cGUodHlwZSwgdHlwZSA9PT0gSFRNTDVJbnB1dFR5cGVzLkNIRUNLQk9YID8gbmFtZSA6IGNvbnRyb2wudmFsdWUsIGZpZWxkUHJvcHMpXG4gICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgICAvLyBDcmVhdGUgYSBwcm94eSB0byBlbmFibGUgYWNjZXNzIHRvIHBhcmVudCBhbmQgY2hpbGQgdmFsdWVzXG4gICAgICBsZXQgcHJveHk6IFBhdGhQcm94eTx1bmtub3duPiA9IFZhbGlkYXRvckZhY3RvcnkuY3JlYXRlUHJveHkoe30gYXMgQWJzdHJhY3RDb250cm9sKTtcbiAgICAgIGlmIChPYmplY3QudmFsdWVzKENvbXBhcmlzb25WYWxpZGF0aW9uS2V5cykuaW5jbHVkZXMoa2V5IGFzIENvbXBhcmlzb25WYWxpZGF0aW9uS2V5KSkge1xuICAgICAgICBjb25zdCBwYXJlbnQ6IEZvcm1Hcm91cCA9IGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtR3JvdXAgPyBjb250cm9sIDogKGNvbnRyb2wgYXMgS2V5VmFsdWUpW0FuZ3VsYXJFbmdpbmVLZXlzLlBBUkVOVF07XG4gICAgICAgIHByb3h5ID0gVmFsaWRhdG9yRmFjdG9yeS5jcmVhdGVQcm94eShwYXJlbnQpIGFzIFBhdGhQcm94eTx1bmtub3duPjtcbiAgICAgIH1cblxuICAgICAgbGV0IGVycnM6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgIHRyeSB7XG4gICAgICAgIGVycnMgPSB2YWxpZGF0b3IuaGFzRXJyb3JzKHZhbHVlLCBwcm9wcywgcHJveHkpO1xuICAgICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgICBlcnJzID0gYCR7a2V5fSB2YWxpZGF0b3IgZmFpbGVkIHRvIHZhbGlkYXRlOiAke2V9YDtcbiAgICAgICAgY29uc29sZS53YXJuKGVycnMpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZXJycyA/IHsgW3ZhbGlkYXRvcktleV06IHRydWUgfSA6IG51bGw7XG4gICAgfTtcblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh2YWxpZGF0b3JGbiwgJ25hbWUnLCB7XG4gICAgICB2YWx1ZTogYCR7a2V5fVZhbGlkYXRvcmAsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdmFsaWRhdG9yRm47XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgQ3JlYXRlcyBhIHByb3h5IHdyYXBwZXIgZm9yIGFuIEFuZ3VsYXIgQWJzdHJhY3RDb250cm9sIHRvIGFzc2lzdCB3aXRoIGN1c3RvbSB2YWxpZGF0aW9uIGxvZ2ljLlxuICAgKiBAZGVzY3JpcHRpb24gUmV0dXJucyBhIHN0cnVjdHVyZWQgcHJveHkgb2JqZWN0IHRoYXQgc2ltdWxhdGVzIGEgaGllcmFyY2hpY2FsIHRyZWUgb2YgZm9ybSB2YWx1ZXMuXG4gICAqIEVuYWJsZXMgVmFsaWRhdG9ycyBoYW5kbGluZyBtZXRob2QgdG8gYWNjZXNzIHBhcmVudCBhbmQgY2hpbGQgcHJvcGVydGllcyB1c2luZyBjb25zaXN0ZW50IGRvdC1ub3RhdGlvbiBpbiBBbmd1bGFyIGZvcm1zLlxuICAgKlxuICAgKiBAcGFyYW0ge0Fic3RyYWN0Q29udHJvbH0gY29udHJvbCAtIFRoZSBjb250cm9sIHRvIHdyYXAgaW4gYSBwcm94eS5cbiAgICogQHJldHVybnMge1BhdGhQcm94eTx1bmtub3duPn0gQSBwcm94eSBvYmplY3QgZXhwb3NpbmcgZm9ybSB2YWx1ZXMgYW5kIGVuYWJsaW5nIHJlY3Vyc2l2ZSBwYXJlbnQgYWNjZXNzLlxuICAgKi9cbiAgc3RhdGljIGNyZWF0ZVByb3h5KGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFBhdGhQcm94eTx1bmtub3duPiB7XG4gICAgcmV0dXJuIFBhdGhQcm94eUVuZ2luZS5jcmVhdGUoY29udHJvbCwge1xuICAgICAgZ2V0VmFsdWUodGFyZ2V0OiBBYnN0cmFjdENvbnRyb2wsIHByb3A6IHN0cmluZyk6IHVua25vd24ge1xuICAgICAgICBpZiAodGFyZ2V0IGluc3RhbmNlb2YgRm9ybUNvbnRyb2wpXG4gICAgICAgICAgcmV0dXJuIHRhcmdldC52YWx1ZTtcblxuICAgICAgICBpZiAodGFyZ2V0IGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7XG4gICAgICAgICAgY29uc3QgY29udHJvbCA9IHRhcmdldC5jb250cm9sc1twcm9wXTtcbiAgICAgICAgICByZXR1cm4gY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Db250cm9sID8gY29udHJvbC52YWx1ZSA6IGNvbnRyb2w7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBjb25zdCB2YWx1ZSA9IHRhcmdldFtwcm9wXTtcbiAgICAgICAgLy8gaWYgKHZhbHVlIGluc3RhbmNlb2YgRm9ybUNvbnRyb2wpXG4gICAgICAgIC8vICAgcmV0dXJuIHZhbHVlLnZhbHVlO1xuICAgICAgICAvL1xuICAgICAgICAvLyBpZiAodmFsdWUgaW5zdGFuY2VvZiBGb3JtR3JvdXApIHtcbiAgICAgICAgLy8gICBjb25zdCBjb250cm9sID0gdmFsdWUuY29udHJvbHNbcHJvcF07XG4gICAgICAgIC8vICAgcmV0dXJuIGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbCA/IGNvbnRyb2wudmFsdWUgOiBjb250cm9sO1xuICAgICAgICAvLyB9XG5cbiAgICAgICAgcmV0dXJuICh0YXJnZXQgYXMgS2V5VmFsdWUpPy5bcHJvcF07XG4gICAgICB9LFxuICAgICAgZ2V0UGFyZW50OiBmdW5jdGlvbih0YXJnZXQ6IEFic3RyYWN0Q29udHJvbCkgIHtcbiAgICAgICAgcmV0dXJuIHRhcmdldD8uWydfcGFyZW50J107XG4gICAgICB9LFxuICAgICAgaWdub3JlVW5kZWZpbmVkOiB0cnVlLFxuICAgICAgaWdub3JlTnVsbDogdHJ1ZSxcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2VuZ2luZS90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW9uQ2hlY2tib3gsIElvbklucHV0LCBJb25TZWxlY3QsIElvblRleHRhcmVhIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgVGV4dEZpZWxkVHlwZXMgfSBmcm9tICdAaW9uaWMvY29yZSc7XG5pbXBvcnQgeyBJbmplY3RvciwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZpZWxkUHJvcGVydGllcyB9IGZyb20gJ0BkZWNhZi10cy91aS1kZWNvcmF0b3JzJztcblxuZXhwb3J0IHR5cGUgS2V5VmFsdWUgPSBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBFbGVtZW50IHNpemUgb3B0aW9ucyBmb3IgVUkgY29tcG9uZW50c1xuICogQHN1bW1hcnkgRGVmaW5lcyB0aGUgcG9zc2libGUgc2l6ZSB2YWx1ZXMgdGhhdCBjYW4gYmUgYXBwbGllZCB0byBVSSBlbGVtZW50cy5cbiAqIFRoZXNlIHNpemVzIGNvbnRyb2wgdGhlIGRpbWVuc2lvbnMgYW5kIGxheW91dCBiZWhhdmlvciBvZiBjb21wb25lbnRzLlxuICogQHR5cGVkZWYgeygnc21hbGwnfCdtZWRpdW0nfCdsYXJnZSd8J3hsYXJnZSd8JzJ4bGFyZ2UnfCdhdXRvJ3wnZXhwYW5kJ3wnYmxvY2snKX0gRWxlbWVudFNpemVzXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmVuZ2luZVxuICovXG5leHBvcnQgdHlwZSBFbGVtZW50U2l6ZXMgPVxuICB8ICdzbWFsbCdcbiAgfCAnbWVkaXVtJ1xuICB8ICdsYXJnZSdcbiAgfCAneGxhcmdlJ1xuICB8ICcyeGxhcmdlJ1xuICB8ICdhdXRvJ1xuICB8ICdleHBhbmQnXG4gIHwgJ2Jsb2NrJztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQmFzaWMgcG9zaXRpb24gb3B0aW9ucyBmb3IgVUkgZWxlbWVudHNcbiAqIEBzdW1tYXJ5IERlZmluZXMgdGhlIHBvc3NpYmxlIHBvc2l0aW9uIHZhbHVlcyB0aGF0IGNhbiBiZSBhcHBsaWVkIHRvIFVJIGVsZW1lbnRzLlxuICogVGhlc2UgcG9zaXRpb25zIGNvbnRyb2wgdGhlIGFsaWdubWVudCBhbmQgcGxhY2VtZW50IG9mIGNvbXBvbmVudHMuXG4gKiBAdHlwZWRlZiB7KCdsZWZ0J3wnY2VudGVyJ3wncmlnaHQnfCd0b3AnfCdib3R0b20nKX0gRWxlbWVudFBvc2l0aW9uc1xuICogQG1lbWJlck9mIG1vZHVsZTplbmdpbmVcbiAqL1xuZXhwb3J0IHR5cGUgRWxlbWVudFBvc2l0aW9ucyA9ICdsZWZ0JyB8ICdjZW50ZXInIHwgJ3JpZ2h0JyB8ICd0b3AnIHwgJ2JvdHRvbSc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEV4dGVuZGVkIHBvc2l0aW9uIG9wdGlvbnMgZm9yIGZsZXggbGF5b3V0c1xuICogQHN1bW1hcnkgRXh0ZW5kcyB0aGUgYmFzaWMgRWxlbWVudFBvc2l0aW9ucyB3aXRoIGFkZGl0aW9uYWwgZmxleC1zcGVjaWZpYyBwb3NpdGlvbiB2YWx1ZXMuXG4gKiBUaGVzZSBwb3NpdGlvbnMgYXJlIHVzZWQgZm9yIGNvbnRyb2xsaW5nIGFsaWdubWVudCBhbmQgZGlzdHJpYnV0aW9uIGluIGZsZXggY29udGFpbmVycy5cbiAqIEB0eXBlZGVmIHsoRWxlbWVudFBvc2l0aW9uc3wnc3RyZXRjaCd8J21pZGRsZSd8J2Fyb3VuZCd8J2JldHdlZW4nKX0gRmxleFBvc2l0aW9uc1xuICogQG1lbWJlck9mIG1vZHVsZTplbmdpbmVcbiAqL1xuZXhwb3J0IHR5cGUgRmxleFBvc2l0aW9ucyA9XG4gIHwgRWxlbWVudFBvc2l0aW9uc1xuICB8ICdzdHJldGNoJ1xuICB8ICdtaWRkbGUnXG4gIHwgJ2Fyb3VuZCdcbiAgfCAnYmV0d2Vlbic7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFVwZGF0ZSBtb2RlIG9wdGlvbnMgZm9yIGZvcm0gZmllbGRzXG4gKiBAc3VtbWFyeSBEZWZpbmVzIHdoZW4gZm9ybSBmaWVsZCB2YWx1ZXMgc2hvdWxkIGJlIHVwZGF0ZWQgaW4gdGhlIG1vZGVsLlxuICogLSAnY2hhbmdlJzogVXBkYXRlIG9uIGV2ZXJ5IGNoYW5nZSBldmVudFxuICogLSAnYmx1cic6IFVwZGF0ZSB3aGVuIHRoZSBmaWVsZCBsb3NlcyBmb2N1c1xuICogLSAnc3VibWl0JzogVXBkYXRlIG9ubHkgd2hlbiB0aGUgZm9ybSBpcyBzdWJtaXR0ZWRcbiAqIEB0eXBlZGVmIHsoJ2NoYW5nZSd8J2JsdXInfCdzdWJtaXQnKX0gRmllbGRVcGRhdGVNb2RlXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmVuZ2luZVxuICovXG5leHBvcnQgdHlwZSBGaWVsZFVwZGF0ZU1vZGUgPSAnY2hhbmdlJyB8ICdibHVyJyB8ICdzdWJtaXQnO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBNZXRhZGF0YSBzdHJ1Y3R1cmUgZm9yIEFuZ3VsYXIgY29tcG9uZW50c1xuICogQHN1bW1hcnkgRGVmaW5lcyB0aGUgc3RydWN0dXJlIG9mIG1ldGFkYXRhIGZvciBBbmd1bGFyIGNvbXBvbmVudHMsIGluY2x1ZGluZ1xuICogY2hhbmdlIGRldGVjdGlvbiBzdHJhdGVneSwgc2VsZWN0b3IsIHN0YW5kYWxvbmUgc3RhdHVzLCBpbXBvcnRzLCB0ZW1wbGF0ZSwgYW5kIHN0eWxlcy5cbiAqIFRoaXMgaXMgdXNlZCBmb3IgcmVmbGVjdGlvbiBhbmQgZHluYW1pYyBjb21wb25lbnQgY3JlYXRpb24uXG4gKiBAaW50ZXJmYWNlIENvbXBvbmVudE1ldGFkYXRhXG4gKiBAcHJvcGVydHkge251bWJlcn0gY2hhbmdlRGV0ZWN0aW9uIC0gVGhlIGNoYW5nZSBkZXRlY3Rpb24gc3RyYXRlZ3kgbnVtYmVyXG4gKiBAcHJvcGVydHkge3N0cmluZ30gc2VsZWN0b3IgLSBUaGUgQ1NTIHNlbGVjdG9yIGZvciB0aGUgY29tcG9uZW50XG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IHN0YW5kYWxvbmUgLSBXaGV0aGVyIHRoZSBjb21wb25lbnQgaXMgc3RhbmRhbG9uZVxuICogQHByb3BlcnR5IGltcG9ydHMgLSBBcnJheSBvZiBpbXBvcnRlZCBtb2R1bGVzL2NvbXBvbmVudHNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSB0ZW1wbGF0ZSAtIFRoZSBIVE1MIHRlbXBsYXRlIGZvciB0aGUgY29tcG9uZW50XG4gKiBAcHJvcGVydHkge3N0cmluZ1tdfSBzdHlsZXMgLSBBcnJheSBvZiBDU1Mgc3R5bGVzIGZvciB0aGUgY29tcG9uZW50XG4gKiBAbWVtYmVyT2YgbW9kdWxlOmVuZ2luZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbXBvbmVudE1ldGFkYXRhIHtcbiAgY2hhbmdlRGV0ZWN0aW9uOiBudW1iZXI7XG4gIHNlbGVjdG9yOiBzdHJpbmc7XG4gIHN0YW5kYWxvbmU6IGJvb2xlYW47XG4gIGltcG9ydHM6IChuZXcgKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gdW5rbm93bilbXTtcbiAgdGVtcGxhdGU6IHN0cmluZztcbiAgc3R5bGVzOiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gT3V0cHV0IHN0cnVjdHVyZSBmcm9tIHRoZSBBbmd1bGFyIHJlbmRlcmluZyBlbmdpbmVcbiAqIEBzdW1tYXJ5IERlZmluZXMgdGhlIHN0cnVjdHVyZSBvZiB0aGUgb3V0cHV0IHByb2R1Y2VkIGJ5IHRoZSBOZ3hSZW5kZXJpbmdFbmdpbmVcbiAqIHdoZW4gcmVuZGVyaW5nIGEgY29tcG9uZW50LiBDb250YWlucyB0aGUgY29tcG9uZW50IHR5cGUsIGlucHV0cywgaW5qZWN0b3IsXG4gKiBjb250ZW50IG5vZGVzLCBhbmQgY2hpbGQgY29tcG9uZW50cy5cbiAqIEB0eXBlZGVmIHtPYmplY3R9IEFuZ3VsYXJEeW5hbWljT3V0cHV0XG4gKiBAcHJvcGVydHkge1R5cGU8dW5rbm93bj59IGNvbXBvbmVudCAtIFRoZSBBbmd1bGFyIGNvbXBvbmVudCB0eXBlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW3JlbmRlcmVySWRdIC0gT3B0aW9uYWwgdW5pcXVlIElEIGZvciB0aGUgcmVuZGVyZWQgY29tcG9uZW50XG4gKiBAcHJvcGVydHkge1JlY29yZDxzdHJpbmcsIHVua25vd24+fSBbaW5wdXRzXSAtIE9wdGlvbmFsIGlucHV0IHByb3BlcnRpZXMgZm9yIHRoZSBjb21wb25lbnRcbiAqIEBwcm9wZXJ0eSB7SW5qZWN0b3J9IFtpbmplY3Rvcl0gLSBPcHRpb25hbCBBbmd1bGFyIGluamVjdG9yIGZvciBkZXBlbmRlbmN5IGluamVjdGlvblxuICogQHByb3BlcnR5IHtOb2RlW11bXX0gW2NvbnRlbnRdIC0gT3B0aW9uYWwgY29udGVudCBub2RlcyBmb3IgcHJvamVjdGlvblxuICogQHByb3BlcnR5IHtBbmd1bGFyRHluYW1pY091dHB1dFtdfSBbY2hpbGRyZW5dIC0gT3B0aW9uYWwgY2hpbGQgY29tcG9uZW50c1xuICogQHByb3BlcnR5IHtUeXBlPHVua25vd24+fSBbaW5zdGFuY2VdIC0gT3B0aW9uYWwgY29tcG9uZW50IGluc3RhbmNlXG4gKiBAcHJvcGVydHkge0Zvcm1Hcm91cH0gW2Zvcm1Hcm91cF0gLSBPcHRpb25hbCBjb21wb25lbnQgRm9ybUdyb3VwXG4gKiBAcHJvcGVydHkge0Zvcm1Db250cm9sfSBbZm9ybUNvbnRyb2xdIC0gT3B0aW9uYWwgY29tcG9uZW50IEZvcm1Db250cm9sXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmVuZ2luZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFuZ3VsYXJEeW5hbWljT3V0cHV0IHtcbiAgY29tcG9uZW50OiBUeXBlPHVua25vd24+O1xuICByZW5kZXJlcklkPzogc3RyaW5nO1xuICBpbnB1dHM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgaW5qZWN0b3I/OiBJbmplY3RvcjtcbiAgY29udGVudD86IE5vZGVbXVtdO1xuICBjaGlsZHJlbj86IEFuZ3VsYXJEeW5hbWljT3V0cHV0W107XG4gIGluc3RhbmNlPzogVHlwZTx1bmtub3duPjtcbiAgZm9ybUdyb3VwPzogRm9ybUdyb3VwO1xuICBmb3JtQ29udHJvbD86IEZvcm1Db250cm9sO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBJbnRlcmZhY2UgZm9yIG1vZGVscyB0aGF0IGNhbiBiZSByZW5kZXJlZFxuICogQHN1bW1hcnkgRGVmaW5lcyB0aGUgYmFzaWMgc3RydWN0dXJlIGZvciBtb2RlbHMgdGhhdCBjYW4gYmUgcmVuZGVyZWQgYnkgdGhlIGVuZ2luZS5cbiAqIENvbnRhaW5zIGFuIG9wdGlvbmFsIHJlbmRlcmVySWQgdGhhdCB1bmlxdWVseSBpZGVudGlmaWVzIHRoZSByZW5kZXJlZCBpbnN0YW5jZS5cbiAqIEBpbnRlcmZhY2UgUmVuZGVyZWRNb2RlbFxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtyZW5kZXJlcklkXSAtIE9wdGlvbmFsIHVuaXF1ZSBJRCBmb3IgdGhlIHJlbmRlcmVkIG1vZGVsIGluc3RhbmNlXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmVuZ2luZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlbmRlcmVkTW9kZWwge1xuICByZW5kZXJlcklkPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBQb3NzaWJsZSBpbnB1dCB0eXBlcyBmb3IgZm9ybSBmaWVsZHNcbiAqIEBzdW1tYXJ5IERlZmluZXMgdGhlIHBvc3NpYmxlIGlucHV0IHR5cGVzIHRoYXQgY2FuIGJlIHVzZWQgaW4gZm9ybSBmaWVsZHMuXG4gKiBJbmNsdWRlcyBzdGFuZGFyZCBIVE1MIGlucHV0IHR5cGVzIGxpa2UgY2hlY2tib3gsIHJhZGlvLCBhbmQgc2VsZWN0LFxuICogYXMgd2VsbCBhcyBJb25pYydzIFRleHRGaWVsZFR5cGVzIGFuZCB0ZXh0YXJlYS5cbiAqIEB0eXBlZGVmIHsoJ2NoZWNrYm94J3wncmFkaW8nfCdzZWxlY3QnfFRleHRGaWVsZFR5cGVzfCd0ZXh0YXJlYScpfSBQb3NzaWJsZUlucHV0VHlwZXNcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZW5naW5lXG4gKi9cbmV4cG9ydCB0eXBlIFBvc3NpYmxlSW5wdXRUeXBlcyA9XG4gIHwgJ2NoZWNrYm94J1xuICB8ICdyYWRpbydcbiAgfCAnc2VsZWN0J1xuICB8IFRleHRGaWVsZFR5cGVzXG4gIHwgJ3RleHRhcmVhJztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gRmllbGQgZGVmaW5pdGlvbiBmb3IgQW5ndWxhciBjb21wb25lbnRzXG4gKiBAc3VtbWFyeSBBIGNvbXByZWhlbnNpdmUgdHlwZSB0aGF0IGNvbWJpbmVzIHByb3BlcnRpZXMgZnJvbSB2YXJpb3VzIElvbmljIGNvbXBvbmVudHNcbiAqIHRvIGRlZmluZSB0aGUgc3RydWN0dXJlIG9mIGEgZmllbGQgaW4gYW4gQW5ndWxhciBmb3JtLiBJdCBvbWl0cyBjZXJ0YWluIHByb3BlcnRpZXNcbiAqIGZyb20gSW9uSW5wdXQsIHBpY2tzIHNwZWNpZmljIHByb3BlcnRpZXMgZnJvbSBJb25TZWxlY3QsIElvblRleHRhcmVhLCBhbmQgSW9uQ2hlY2tib3gsXG4gKiBhbmQgYWRkcyBjdXN0b20gcHJvcGVydGllcyBsaWtlIHR5cGUgYW5kIGNsYXNzTmFtZS5cbiAqIEB0eXBlZGVmIHtPYmplY3R9IEFuZ3VsYXJGaWVsZERlZmluaXRpb25cbiAqIEBwcm9wZXJ0eSB7UG9zc2libGVJbnB1dFR5cGVzfSB0eXBlIC0gVGhlIHR5cGUgb2YgaW5wdXQgZmllbGRcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfHN0cmluZ1tdfSBjbGFzc05hbWUgLSBDU1MgY2xhc3MgbmFtZShzKSBmb3IgdGhlIGZpZWxkXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW2NhbmNlbFRleHRdIC0gVGV4dCBmb3IgdGhlIGNhbmNlbCBidXR0b24gKGZyb20gSW9uU2VsZWN0KVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtpbnRlcmZhY2VdIC0gSW50ZXJmYWNlIHN0eWxlIGZvciBzZWxlY3QgKGZyb20gSW9uU2VsZWN0KVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtzZWxlY3RlZFRleHRdIC0gVGV4dCBmb3Igc2VsZWN0ZWQgb3B0aW9uIChmcm9tIElvblNlbGVjdClcbiAqIEBwcm9wZXJ0eSB7T2JqZWN0fSBbaW50ZXJmYWNlT3B0aW9uc10gLSBPcHRpb25zIGZvciB0aGUgaW50ZXJmYWNlIChmcm9tIElvblNlbGVjdClcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBbcm93c10gLSBOdW1iZXIgb2Ygcm93cyBmb3IgdGV4dGFyZWEgKGZyb20gSW9uVGV4dGFyZWEpXG4gKiBAcHJvcGVydHkge251bWJlcn0gW2NvbHNdIC0gTnVtYmVyIG9mIGNvbHVtbnMgZm9yIHRleHRhcmVhIChmcm9tIElvblRleHRhcmVhKVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFthbGlnbm1lbnRdIC0gQWxpZ25tZW50IG9mIGNoZWNrYm94IChmcm9tIElvbkNoZWNrYm94KVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtqdXN0aWZ5XSAtIEp1c3RpZmljYXRpb24gb2YgY2hlY2tib3ggKGZyb20gSW9uQ2hlY2tib3gpXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IFtjaGVja2VkXSAtIFdoZXRoZXIgY2hlY2tib3ggaXMgY2hlY2tlZCAoZnJvbSBJb25DaGVja2JveClcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZW5naW5lXG4gKi9cbmV4cG9ydCB0eXBlIEFuZ3VsYXJGaWVsZERlZmluaXRpb24gPSBPbWl0PFxuICBJb25JbnB1dCxcbiAgfCAnaW9uSW5wdXQnXG4gIHwgJ2lvbkZvY3VzJ1xuICB8ICdpb25DaGFuZ2UnXG4gIHwgJ2lvbkJsdXInXG4gIHwgJ2dldElucHV0RWxlbWVudCdcbiAgfCAnc2V0Rm9jdXMnXG4gIHwgJ2xhYmVsJ1xuICB8ICdlbCdcbiAgfCAneidcbiAgfCAndHlwZSdcbj4gJlxuICBQaWNrPFxuICAgIElvblNlbGVjdCxcbiAgICAnY2FuY2VsVGV4dCcgfCAnaW50ZXJmYWNlJyB8ICdzZWxlY3RlZFRleHQnIHwgJ2ludGVyZmFjZU9wdGlvbnMnXG4gID4gJlxuICBQaWNrPElvblRleHRhcmVhLCAncm93cycgfCAnY29scyc+ICZcbiAgUGljazxJb25DaGVja2JveCwgJ2FsaWdubWVudCcgfCAnanVzdGlmeScgfCAnY2hlY2tlZCc+ICYge1xuICB0eXBlOiBQb3NzaWJsZUlucHV0VHlwZXM7XG4gIGNsYXNzTmFtZTogc3RyaW5nIHwgc3RyaW5nW107XG59ICYgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFN0cmluZyBvciBib29sZWFuIHJlcHJlc2VudGF0aW9uIG9mIGEgYm9vbGVhbiB2YWx1ZVxuICogQHN1bW1hcnkgUmVwcmVzZW50cyBhIHZhbHVlIHRoYXQgY2FuIGJlIGVpdGhlciBhIGJvb2xlYW4gb3IgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYSBib29sZWFuLlxuICogVGhpcyBpcyB1c2VmdWwgZm9yIGhhbmRsaW5nIGF0dHJpYnV0ZSB2YWx1ZXMgdGhhdCBjYW4gYmUgc3BlY2lmaWVkIGFzIGVpdGhlciBzdHJpbmdzIG9yIGJvb2xlYW5zLlxuICogQHR5cGVkZWYgeygndHJ1ZSd8J2ZhbHNlJ3xib29sZWFuKX0gU3RyaW5nT3JCb29sZWFuXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmVuZ2luZVxuICovXG5leHBvcnQgdHlwZSBTdHJpbmdPckJvb2xlYW4gPSAndHJ1ZScgfCAnZmFsc2UnIHwgYm9vbGVhbjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gT3B0aW9uIHR5cGUgZm9yIHNlbGVjdCBpbnB1dHNcbiAqIEBzdW1tYXJ5IEV4dGVuZHMgdGhlIElucHV0T3B0aW9uIGludGVyZmFjZSB3aXRoIGEgc2VsZWN0ZWQgcHJvcGVydHkgdG8gaW5kaWNhdGVcbiAqIHdoZXRoZXIgdGhlIG9wdGlvbiBpcyBzZWxlY3RlZCBieSBkZWZhdWx0LlxuICogQG1lbWJlck9mIG1vZHVsZTplbmdpbmVcbiAqL1xuZXhwb3J0IHR5cGUgU2VsZWN0T3B0aW9uID0gSW5wdXRPcHRpb24gJiB7IHNlbGVjdGVkPzogYm9vbGVhbiB9O1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBPcHRpb24gdHlwZSBmb3IgcmFkaW8gaW5wdXRzXG4gKiBAc3VtbWFyeSBFeHRlbmRzIHRoZSBJbnB1dE9wdGlvbiBpbnRlcmZhY2Ugd2l0aCBhIGNoZWNrZWQgcHJvcGVydHkgdG8gaW5kaWNhdGVcbiAqIHdoZXRoZXIgdGhlIG9wdGlvbiBpcyBjaGVja2VkIGJ5IGRlZmF1bHQuXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmVuZ2luZVxuICovXG5leHBvcnQgdHlwZSBSYWRpb09wdGlvbiA9IElucHV0T3B0aW9uICYgeyBjaGVja2VkPzogYm9vbGVhbiB9O1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBPcHRpb24gdHlwZSBmb3IgY2hlY2tib3ggaW5wdXRzXG4gKiBAc3VtbWFyeSBBbGlhcyBmb3IgUmFkaW9PcHRpb24sIGFzIGNoZWNrYm94IG9wdGlvbnMgaGF2ZSB0aGUgc2FtZSBzdHJ1Y3R1cmUgYXMgcmFkaW8gb3B0aW9ucy5cbiAqIEB0eXBlZGVmIHtSYWRpb09wdGlvbn0gQ2hlY2tib3hPcHRpb25cbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZW5naW5lXG4gKi9cbmV4cG9ydCB0eXBlIENoZWNrYm94T3B0aW9uID0gUmFkaW9PcHRpb247XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEJhc2Ugb3B0aW9uIHR5cGUgZm9yIGlucHV0IGNvbXBvbmVudHNcbiAqIEBzdW1tYXJ5IERlZmluZXMgdGhlIGNvbW1vbiBzdHJ1Y3R1cmUgZm9yIG9wdGlvbnMgdXNlZCBpbiBzZWxlY3QsIHJhZGlvLCBhbmQgY2hlY2tib3ggaW5wdXRzLlxuICogQ29udGFpbnMgcHJvcGVydGllcyBmb3IgdGhlIGRpc3BsYXkgdGV4dCwgdmFsdWUsIGRpc2FibGVkIHN0YXRlLCBDU1MgY2xhc3MsIGFuZCBpY29uLlxuICogQGludGVyZmFjZSBJbnB1dE9wdGlvblxuICogQHByb3BlcnR5IHtzdHJpbmd9IHRleHQgLSBUaGUgZGlzcGxheSB0ZXh0IGZvciB0aGUgb3B0aW9uXG4gKiBAcHJvcGVydHkge3N0cmluZ3xudW1iZXJ9IHZhbHVlIC0gVGhlIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCB0aGUgb3B0aW9uXG4gKiBAcHJvcGVydHkge1N0cmluZ09yQm9vbGVhbn0gW2Rpc2FibGVkXSAtIFdoZXRoZXIgdGhlIG9wdGlvbiBpcyBkaXNhYmxlZFxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtjbGFzc05hbWVdIC0gQ1NTIGNsYXNzIG5hbWUgZm9yIHN0eWxpbmcgdGhlIG9wdGlvblxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtpY29uXSAtIEljb24gdG8gZGlzcGxheSB3aXRoIHRoZSBvcHRpb25cbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZW5naW5lXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5wdXRPcHRpb24ge1xuICB0ZXh0OiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmcgfCBudW1iZXI7XG4gIGRpc2FibGVkPzogU3RyaW5nT3JCb29sZWFuO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIGljb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFRhcmdldCBvcHRpb25zIGZvciBIVE1MIGZvcm1zXG4gKiBAc3VtbWFyeSBEZWZpbmVzIHRoZSBwb3NzaWJsZSB0YXJnZXQgdmFsdWVzIGZvciBIVE1MIGZvcm1zLCBpbmNsdWRpbmcgc3RhbmRhcmQgdGFyZ2V0c1xuICogbGlrZSAnX2JsYW5rJywgJ19zZWxmJywgJ19wYXJlbnQnLCBhbmQgJ190b3AnLCBhcyB3ZWxsIGFzIGN1c3RvbSBzdHJpbmcgdmFsdWVzLlxuICogQHR5cGVkZWYgeygnX2JsYW5rJ3wnX3NlbGYnfCdfcGFyZW50J3wnX3RvcCd8c3RyaW5nKX0gSFRNTEZvcm1UYXJnZXRcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZW5naW5lXG4gKi9cbmV4cG9ydCB0eXBlIEhUTUxGb3JtVGFyZ2V0ID0gJ19ibGFuaycgfCAnX3NlbGYnIHwgJ19wYXJlbnQnIHwgJ190b3AnIHwgc3RyaW5nO1xuXG4vLyBleHBvcnQgaW50ZXJmYWNlIElMaXN0SXRlbVByb3Age1xuLy8gICByZW5kZXI/OiBzdHJpbmcgfCBib29sZWFuO1xuLy8gICB0cmFuc2xhdGVQcm9wcz86IHN0cmluZyB8IHN0cmluZ1tdO1xuLy8gICBidXR0b24/OiBTdHJpbmdPckJvb2xlYW47XG4vLyAgIGljb24/OiBzdHJpbmc7XG4vLyAgIGljb25TbG90PzogJ3N0YXJ0JyB8ICdlbmQnO1xuLy8gICB0aXRsZT86IHN0cmluZztcbi8vICAgZGVzY3JpdHBpb24/OiBzdHJpbmc7XG4vLyAgIGluZm8/OiBzdHJpbmc7XG4vLyAgIHN1YmluZm8/OiBzdHJpbmc7XG4vLyB9XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEludGVyZmFjZSBmb3IgbGlzdCBjb21wb25lbnQgcmVmcmVzaCBldmVudHNcbiAqIEBzdW1tYXJ5IERlZmluZXMgdGhlIHN0cnVjdHVyZSBvZiBhIHJlZnJlc2ggZXZlbnQgZm9yIGxpc3QgY29tcG9uZW50cy5cbiAqIENvbnRhaW5zIGFuIGFycmF5IG9mIGtleS12YWx1ZSBwYWlycyByZXByZXNlbnRpbmcgdGhlIG5ldyBkYXRhIGZvciB0aGUgbGlzdC5cbiAqIEBpbnRlcmZhY2UgSUxpc3RDb21wb25lbnRSZWZyZXNoRXZlbnRcbiAqIEBwcm9wZXJ0eSB7S2V5VmFsdWVbXX0gZGF0YSAtIEFycmF5IG9mIGtleS12YWx1ZSBwYWlycyByZXByZXNlbnRpbmcgdGhlIG5ldyBkYXRhXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmVuZ2luZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIElMaXN0Q29tcG9uZW50UmVmcmVzaEV2ZW50IHtcbiAgZGF0YTogS2V5VmFsdWVbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGb3JtU2VydmljZUNvbnRyb2wge1xuICBjb250cm9sOiBGb3JtR3JvdXA7XG4gIHByb3BzOiBBbmd1bGFyRmllbGREZWZpbml0aW9uO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBUeXBlIGZvciBmb3JtIHNlcnZpY2UgY29udHJvbHNcbiAqIEBzdW1tYXJ5IERlZmluZXMgdGhlIHN0cnVjdHVyZSBvZiBmb3JtIGNvbnRyb2xzIG1hbmFnZWQgYnkgdGhlIGZvcm0gc2VydmljZS5cbiAqIEl0J3MgYSBuZXN0ZWQgcmVjb3JkIHdoZXJlIHRoZSBvdXRlciBrZXkgaXMgdGhlIGZvcm0gZ3JvdXAgbmFtZSwgdGhlIGlubmVyIGtleVxuICogaXMgdGhlIGNvbnRyb2wgbmFtZSwgYW5kIHRoZSB2YWx1ZSBjb250YWlucyB0aGUgZm9ybSBncm91cCBhbmQgZmllbGQgcHJvcGVydGllcy5cbiAqIEB0eXBlZGVmIHtSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCB7IGNvbnRyb2w6IEZvcm1Hcm91cDsgcHJvcHM6IEFuZ3VsYXJGaWVsZERlZmluaXRpb24gfT4+fSBGb3JtU2VydmljZUNvbnRyb2xzXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmVuZ2luZVxuICovXG5leHBvcnQgdHlwZSBGb3JtU2VydmljZUNvbnRyb2xzID0gUmVjb3JkPFxuICBzdHJpbmcsXG4gIFJlY29yZDxzdHJpbmcsIEZvcm1TZXJ2aWNlQ29udHJvbD5cbj47XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEludGVyZmFjZSBmb3IgbW9kZWwgcmVuZGVyIGN1c3RvbSBldmVudHNcbiAqIEBzdW1tYXJ5IERlZmluZXMgdGhlIHN0cnVjdHVyZSBvZiBjdXN0b20gZXZlbnRzIHRyaWdnZXJlZCBkdXJpbmcgbW9kZWwgcmVuZGVyaW5nLlxuICogQ29udGFpbnMgdGhlIGV2ZW50IGRldGFpbCwgY29tcG9uZW50IG5hbWUsIGFuZCBldmVudCBuYW1lLlxuICogQGludGVyZmFjZSBNb2RlbFJlbmRlckN1c3RvbUV2ZW50XG4gKiBAcHJvcGVydHkge0Jhc2VDdXN0b21FdmVudH0gZGV0YWlsIC0gVGhlIGRldGFpbGVkIGV2ZW50IGluZm9ybWF0aW9uXG4gKiBAcHJvcGVydHkge3N0cmluZ30gY29tcG9uZW50IC0gVGhlIGNvbXBvbmVudCB0aGF0IHRyaWdnZXJlZCB0aGUgZXZlbnRcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBuYW1lIC0gVGhlIG5hbWUgb2YgdGhlIGV2ZW50XG4gKiBAbWVtYmVyT2YgbW9kdWxlOmVuZ2luZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1vZGVsUmVuZGVyQ3VzdG9tRXZlbnQge1xuICBkZXRhaWw6IEJhc2VDdXN0b21FdmVudDtcbiAgY29tcG9uZW50OiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gSW50ZXJmYWNlIGZvciBsaXN0IGl0ZW0gY3VzdG9tIGV2ZW50c1xuICogQHN1bW1hcnkgRGVmaW5lcyB0aGUgc3RydWN0dXJlIG9mIGN1c3RvbSBldmVudHMgdHJpZ2dlcmVkIGJ5IGxpc3QgaXRlbXMuXG4gKiBFeHRlbmRzIEJhc2VDdXN0b21FdmVudCB3aXRoIGFkZGl0aW9uYWwgcHJvcGVydGllcyBmb3IgdGhlIGFjdGlvbiBhbmQgcHJpbWFyeSBrZXkuXG4gKiBAaW50ZXJmYWNlIExpc3RJdGVtQ3VzdG9tRXZlbnRcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBhY3Rpb24gLSBUaGUgYWN0aW9uIHBlcmZvcm1lZCBvbiB0aGUgbGlzdCBpdGVtXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW3BrXSAtIE9wdGlvbmFsIHByaW1hcnkga2V5IG9mIHRoZSBhZmZlY3RlZCBpdGVtXG4gKiBAcHJvcGVydHkge2FueX0gZGF0YSAtIFRoZSBkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGUgZXZlbnQgKGluaGVyaXRlZCBmcm9tIEJhc2VDdXN0b21FdmVudClcbiAqIEBwcm9wZXJ0eSB7SFRNTEVsZW1lbnR9IFt0YXJnZXRdIC0gVGhlIHRhcmdldCBlbGVtZW50IChpbmhlcml0ZWQgZnJvbSBCYXNlQ3VzdG9tRXZlbnQpXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW25hbWVdIC0gVGhlIG5hbWUgb2YgdGhlIGV2ZW50IChpbmhlcml0ZWQgZnJvbSBCYXNlQ3VzdG9tRXZlbnQpXG4gKiBAcHJvcGVydHkge3N0cmluZ30gY29tcG9uZW50IC0gVGhlIGNvbXBvbmVudCB0aGF0IHRyaWdnZXJlZCB0aGUgZXZlbnQgKGluaGVyaXRlZCBmcm9tIEJhc2VDdXN0b21FdmVudClcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZW5naW5lXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdEl0ZW1DdXN0b21FdmVudCBleHRlbmRzIEJhc2VDdXN0b21FdmVudCB7XG4gIGFjdGlvbjogc3RyaW5nO1xuICBwaz86IHN0cmluZztcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQmFzZSBpbnRlcmZhY2UgZm9yIGN1c3RvbSBldmVudHNcbiAqIEBzdW1tYXJ5IERlZmluZXMgdGhlIGJhc2Ugc3RydWN0dXJlIGZvciBjdXN0b20gZXZlbnRzIGluIHRoZSBhcHBsaWNhdGlvbi5cbiAqIENvbnRhaW5zIHByb3BlcnRpZXMgZm9yIHRoZSBldmVudCBkYXRhLCB0YXJnZXQgZWxlbWVudCwgbmFtZSwgYW5kIGNvbXBvbmVudC5cbiAqIEBpbnRlcmZhY2UgQmFzZUN1c3RvbUV2ZW50XG4gKiBAcHJvcGVydHkge2FueX0gZGF0YSAtIFRoZSBkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGUgZXZlbnRcbiAqIEBwcm9wZXJ0eSB7SFRNTEVsZW1lbnR9IFt0YXJnZXRdIC0gVGhlIHRhcmdldCBlbGVtZW50IHRoYXQgdHJpZ2dlcmVkIHRoZSBldmVudFxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtuYW1lXSAtIFRoZSBuYW1lIG9mIHRoZSBldmVudFxuICogQHByb3BlcnR5IHtzdHJpbmd9IGNvbXBvbmVudCAtIFRoZSBjb21wb25lbnQgdGhhdCB0cmlnZ2VyZWQgdGhlIGV2ZW50XG4gKiBAbWVtYmVyT2YgbW9kdWxlOmVuZ2luZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VDdXN0b21FdmVudCB7XG4gIGRhdGE6IGFueTtcbiAgdGFyZ2V0PzogSFRNTEVsZW1lbnQ7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGNvbXBvbmVudDogc3RyaW5nO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBCYXNlIGludGVyZmFjZSBmb3IgY3VzdG9tIGV2ZW50c1xuICogQHN1bW1hcnkgRGVmaW5lcyB0aGUgYmFzZSBzdHJ1Y3R1cmUgZm9yIGN1c3RvbSBldmVudHMgaW4gdGhlIGFwcGxpY2F0aW9uLlxuICogQ29udGFpbnMgcHJvcGVydGllcyBmb3IgdGhlIGV2ZW50IGRhdGEsIHRhcmdldCBlbGVtZW50LCBuYW1lLCBhbmQgY29tcG9uZW50LlxuICogQGludGVyZmFjZSBCYXNlQ3VzdG9tRXZlbnRcbiAqIEBwcm9wZXJ0eSB7YW55fSBkYXRhIC0gVGhlIGRhdGEgYXNzb2NpYXRlZCB3aXRoIHRoZSBldmVudFxuICogQHByb3BlcnR5IHtIVE1MRWxlbWVudH0gW3RhcmdldF0gLSBUaGUgdGFyZ2V0IGVsZW1lbnQgdGhhdCB0cmlnZ2VyZWQgdGhlIGV2ZW50XG4gKiBAcHJvcGVydHkge3N0cmluZ30gW25hbWVdIC0gVGhlIG5hbWUgb2YgdGhlIGV2ZW50XG4gKiBAcHJvcGVydHkge3N0cmluZ30gY29tcG9uZW50IC0gVGhlIGNvbXBvbmVudCB0aGF0IHRyaWdnZXJlZCB0aGUgZXZlbnRcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZW5naW5lXG4gKi9cbmV4cG9ydCB0eXBlIENydWRGb3JtRXZlbnQgPSBCYXNlQ3VzdG9tRXZlbnQgJiB7XG4gIGhhbmRsZXJzPzogUmVjb3JkPHN0cmluZywgYW55Pjtcbn07Ly8gZXhwb3J0IHR5cGUgQ3J1ZEZvcm1FdmVudCA9IEJhc2VDdXN0b21FdmVudCAmIHtoYW5kbGVycz86IFJlY29yZDxzdHJpbmcsICguLi5hcmdzOiBhbnlbXSkgPT4gYW55IHwgUHJvbWlzZTxhbnk+Pn1cblxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcG9uZW50SW5wdXQgZXh0ZW5kcyBGaWVsZFByb3BlcnRpZXMge1xuICB1cGRhdGVNb2RlPzogRmllbGRVcGRhdGVNb2RlO1xuICBmb3JtR3JvdXA/OiBGb3JtR3JvdXA7XG4gIGZvcm1Db250cm9sPzogRm9ybUNvbnRyb2w7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcG9uZW50Q29uZmlnIHtcbiAgY29tcG9uZW50OiBzdHJpbmc7XG4gIGlucHV0czogQ29tcG9uZW50SW5wdXQ7XG4gIGluamVjdG9yOiBhbnk7XG4gIGNoaWxkcmVuPzogQ29tcG9uZW50Q29uZmlnW107XG59XG5cbmV4cG9ydCB0eXBlIEZvcm1QYXJlbnRHcm91cCA9IFtGb3JtR3JvdXAsICBzdHJpbmddO1xuXG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2VuZ2luZS90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW9uQ2hlY2tib3gsIElvbklucHV0LCBJb25TZWxlY3QsIElvblRleHRhcmVhIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgVGV4dEZpZWxkVHlwZXMgfSBmcm9tICdAaW9uaWMvY29yZSc7XG5pbXBvcnQgeyBFbnZpcm9ubWVudEluamVjdG9yLCBJbmplY3RvciwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZpZWxkUHJvcGVydGllcyB9IGZyb20gJ0BkZWNhZi10cy91aS1kZWNvcmF0b3JzJztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gR2VuZXJpYyBrZXktdmFsdWUgcGFpciB0eXBlXG4gKiBAc3VtbWFyeSBSZXByZXNlbnRzIGEgZ2VuZXJpYyBvYmplY3Qgd2l0aCBzdHJpbmcga2V5cyBhbmQgYW55IHR5cGUgb2YgdmFsdWVzLlxuICogVGhpcyBpcyBjb21tb25seSB1c2VkIGZvciBkeW5hbWljIGRhdGEgc3RydWN0dXJlcyB3aGVyZSB0aGUgcHJvcGVydGllcyBhcmUgbm90IGtub3duIGF0IGNvbXBpbGUgdGltZS5cbiAqIEB0eXBlZGVmIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBLZXlWYWx1ZVxuICogQG1lbWJlck9mIG1vZHVsZTplbmdpbmVcbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbmV4cG9ydCB0eXBlIEtleVZhbHVlID0gUmVjb3JkPHN0cmluZywgYW55PjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gR2VuZXJpYyBmdW5jdGlvbiB0eXBlXG4gKiBAc3VtbWFyeSBSZXByZXNlbnRzIGEgZnVuY3Rpb24gdGhhdCBhY2NlcHRzIGFueSBudW1iZXIgb2YgYXJndW1lbnRzIG9mIGFueSB0eXBlXG4gKiBhbmQgcmV0dXJucyBhbnkgdHlwZS4gVGhpcyBpcyB1c2VmdWwgZm9yIGRlZmluaW5nIGZ1bmN0aW9uIHBhcmFtZXRlcnMgb3IgdmFyaWFibGVzXG4gKiB3aGVyZSB0aGUgZXhhY3QgZnVuY3Rpb24gc2lnbmF0dXJlIGlzIG5vdCBrbm93biBhdCBjb21waWxlIHRpbWUuXG4gKiBAdHlwZWRlZiBGdW5jdGlvbkxpa2VcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZW5naW5lXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG5leHBvcnQgdHlwZSBGdW5jdGlvbkxpa2UgPSAoLi4uYXJnczogYW55W10pID0+IGFueTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gRWxlbWVudCBzaXplIG9wdGlvbnMgZm9yIFVJIGNvbXBvbmVudHNcbiAqIEBzdW1tYXJ5IERlZmluZXMgdGhlIHBvc3NpYmxlIHNpemUgdmFsdWVzIHRoYXQgY2FuIGJlIGFwcGxpZWQgdG8gVUkgZWxlbWVudHMuXG4gKiBUaGVzZSBzaXplcyBjb250cm9sIHRoZSBkaW1lbnNpb25zIGFuZCBsYXlvdXQgYmVoYXZpb3Igb2YgY29tcG9uZW50cy5cbiAqIEB0eXBlZGVmIHsoJ3NtYWxsJ3wnbWVkaXVtJ3wnbGFyZ2UnfCd4bGFyZ2UnfCcyeGxhcmdlJ3wnYXV0byd8J2V4cGFuZCd8J2Jsb2NrJyl9IEVsZW1lbnRTaXplc1xuICogQG1lbWJlck9mIG1vZHVsZTplbmdpbmVcbiAqL1xuZXhwb3J0IHR5cGUgRWxlbWVudFNpemVzID1cbiAgfCAnc21hbGwnXG4gIHwgJ21lZGl1bSdcbiAgfCAnbGFyZ2UnXG4gIHwgJ3hsYXJnZSdcbiAgfCAnMnhsYXJnZSdcbiAgfCAnYXV0bydcbiAgfCAnZXhwYW5kJ1xuICB8ICdibG9jayc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEJhc2ljIHBvc2l0aW9uIG9wdGlvbnMgZm9yIFVJIGVsZW1lbnRzXG4gKiBAc3VtbWFyeSBEZWZpbmVzIHRoZSBwb3NzaWJsZSBwb3NpdGlvbiB2YWx1ZXMgdGhhdCBjYW4gYmUgYXBwbGllZCB0byBVSSBlbGVtZW50cy5cbiAqIFRoZXNlIHBvc2l0aW9ucyBjb250cm9sIHRoZSBhbGlnbm1lbnQgYW5kIHBsYWNlbWVudCBvZiBjb21wb25lbnRzLlxuICogQHR5cGVkZWYgeygnbGVmdCd8J2NlbnRlcid8J3JpZ2h0J3wndG9wJ3wnYm90dG9tJyl9IEVsZW1lbnRQb3NpdGlvbnNcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZW5naW5lXG4gKi9cbmV4cG9ydCB0eXBlIEVsZW1lbnRQb3NpdGlvbnMgPSAnbGVmdCcgfCAnY2VudGVyJyB8ICdyaWdodCcgfCAndG9wJyB8ICdib3R0b20nO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBFeHRlbmRlZCBwb3NpdGlvbiBvcHRpb25zIGZvciBmbGV4IGxheW91dHNcbiAqIEBzdW1tYXJ5IEV4dGVuZHMgdGhlIGJhc2ljIEVsZW1lbnRQb3NpdGlvbnMgd2l0aCBhZGRpdGlvbmFsIGZsZXgtc3BlY2lmaWMgcG9zaXRpb24gdmFsdWVzLlxuICogVGhlc2UgcG9zaXRpb25zIGFyZSB1c2VkIGZvciBjb250cm9sbGluZyBhbGlnbm1lbnQgYW5kIGRpc3RyaWJ1dGlvbiBpbiBmbGV4IGNvbnRhaW5lcnMuXG4gKiBAdHlwZWRlZiB7KEVsZW1lbnRQb3NpdGlvbnN8J3N0cmV0Y2gnfCdtaWRkbGUnfCdhcm91bmQnfCdiZXR3ZWVuJyl9IEZsZXhQb3NpdGlvbnNcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZW5naW5lXG4gKi9cbmV4cG9ydCB0eXBlIEZsZXhQb3NpdGlvbnMgPVxuICB8IEVsZW1lbnRQb3NpdGlvbnNcbiAgfCAnc3RyZXRjaCdcbiAgfCAnbWlkZGxlJ1xuICB8ICdhcm91bmQnXG4gIHwgJ2JldHdlZW4nO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBVcGRhdGUgbW9kZSBvcHRpb25zIGZvciBmb3JtIGZpZWxkc1xuICogQHN1bW1hcnkgRGVmaW5lcyB3aGVuIGZvcm0gZmllbGQgdmFsdWVzIHNob3VsZCBiZSB1cGRhdGVkIGluIHRoZSBtb2RlbC5cbiAqIC0gJ2NoYW5nZSc6IFVwZGF0ZSBvbiBldmVyeSBjaGFuZ2UgZXZlbnRcbiAqIC0gJ2JsdXInOiBVcGRhdGUgd2hlbiB0aGUgZmllbGQgbG9zZXMgZm9jdXNcbiAqIC0gJ3N1Ym1pdCc6IFVwZGF0ZSBvbmx5IHdoZW4gdGhlIGZvcm0gaXMgc3VibWl0dGVkXG4gKiBAdHlwZWRlZiB7KCdjaGFuZ2UnfCdibHVyJ3wnc3VibWl0Jyl9IEZpZWxkVXBkYXRlTW9kZVxuICogQG1lbWJlck9mIG1vZHVsZTplbmdpbmVcbiAqL1xuZXhwb3J0IHR5cGUgRmllbGRVcGRhdGVNb2RlID0gJ2NoYW5nZScgfCAnYmx1cicgfCAnc3VibWl0JztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gTWV0YWRhdGEgc3RydWN0dXJlIGZvciBBbmd1bGFyIGNvbXBvbmVudHNcbiAqIEBzdW1tYXJ5IERlZmluZXMgdGhlIHN0cnVjdHVyZSBvZiBtZXRhZGF0YSBmb3IgQW5ndWxhciBjb21wb25lbnRzLCBpbmNsdWRpbmdcbiAqIGNoYW5nZSBkZXRlY3Rpb24gc3RyYXRlZ3ksIHNlbGVjdG9yLCBzdGFuZGFsb25lIHN0YXR1cywgaW1wb3J0cywgdGVtcGxhdGUsIGFuZCBzdHlsZXMuXG4gKiBUaGlzIGlzIHVzZWQgZm9yIHJlZmxlY3Rpb24gYW5kIGR5bmFtaWMgY29tcG9uZW50IGNyZWF0aW9uLlxuICogQGludGVyZmFjZSBDb21wb25lbnRNZXRhZGF0YVxuICogQHByb3BlcnR5IHtudW1iZXJ9IGNoYW5nZURldGVjdGlvbiAtIFRoZSBjaGFuZ2UgZGV0ZWN0aW9uIHN0cmF0ZWd5IG51bWJlclxuICogQHByb3BlcnR5IHtzdHJpbmd9IHNlbGVjdG9yIC0gVGhlIENTUyBzZWxlY3RvciBmb3IgdGhlIGNvbXBvbmVudFxuICogQHByb3BlcnR5IHtib29sZWFufSBzdGFuZGFsb25lIC0gV2hldGhlciB0aGUgY29tcG9uZW50IGlzIHN0YW5kYWxvbmVcbiAqIEBwcm9wZXJ0eSBpbXBvcnRzIC0gQXJyYXkgb2YgaW1wb3J0ZWQgbW9kdWxlcy9jb21wb25lbnRzXG4gKiBAcHJvcGVydHkge3N0cmluZ30gdGVtcGxhdGUgLSBUaGUgSFRNTCB0ZW1wbGF0ZSBmb3IgdGhlIGNvbXBvbmVudFxuICogQHByb3BlcnR5IHtzdHJpbmdbXX0gc3R5bGVzIC0gQXJyYXkgb2YgQ1NTIHN0eWxlcyBmb3IgdGhlIGNvbXBvbmVudFxuICogQG1lbWJlck9mIG1vZHVsZTplbmdpbmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb21wb25lbnRNZXRhZGF0YSB7XG4gIGNoYW5nZURldGVjdGlvbjogbnVtYmVyO1xuICBzZWxlY3Rvcjogc3RyaW5nO1xuICBzdGFuZGFsb25lOiBib29sZWFuO1xuICBpbXBvcnRzOiAobmV3ICguLi5hcmdzOiB1bmtub3duW10pID0+IHVua25vd24pW107XG4gIHRlbXBsYXRlOiBzdHJpbmc7XG4gIHN0eWxlczogc3RyaW5nW107XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIE91dHB1dCBzdHJ1Y3R1cmUgZnJvbSB0aGUgQW5ndWxhciByZW5kZXJpbmcgZW5naW5lXG4gKiBAc3VtbWFyeSBEZWZpbmVzIHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIG91dHB1dCBwcm9kdWNlZCBieSB0aGUgTmd4UmVuZGVyaW5nRW5naW5lXG4gKiB3aGVuIHJlbmRlcmluZyBhIGNvbXBvbmVudC4gQ29udGFpbnMgdGhlIGNvbXBvbmVudCB0eXBlLCBpbnB1dHMsIGluamVjdG9yLFxuICogY29udGVudCBub2RlcywgYW5kIGNoaWxkIGNvbXBvbmVudHMuXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBBbmd1bGFyRHluYW1pY091dHB1dFxuICogQHByb3BlcnR5IHtUeXBlPHVua25vd24+fSBjb21wb25lbnQgLSBUaGUgQW5ndWxhciBjb21wb25lbnQgdHlwZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtyZW5kZXJlcklkXSAtIE9wdGlvbmFsIHVuaXF1ZSBJRCBmb3IgdGhlIHJlbmRlcmVkIGNvbXBvbmVudFxuICogQHByb3BlcnR5IHtSZWNvcmQ8c3RyaW5nLCB1bmtub3duPn0gW2lucHV0c10gLSBPcHRpb25hbCBpbnB1dCBwcm9wZXJ0aWVzIGZvciB0aGUgY29tcG9uZW50XG4gKiBAcHJvcGVydHkge0luamVjdG9yfSBbaW5qZWN0b3JdIC0gT3B0aW9uYWwgQW5ndWxhciBpbmplY3RvciBmb3IgZGVwZW5kZW5jeSBpbmplY3Rpb25cbiAqIEBwcm9wZXJ0eSB7Tm9kZVtdW119IFtjb250ZW50XSAtIE9wdGlvbmFsIGNvbnRlbnQgbm9kZXMgZm9yIHByb2plY3Rpb25cbiAqIEBwcm9wZXJ0eSB7QW5ndWxhckR5bmFtaWNPdXRwdXRbXX0gW2NoaWxkcmVuXSAtIE9wdGlvbmFsIGNoaWxkIGNvbXBvbmVudHNcbiAqIEBwcm9wZXJ0eSB7VHlwZTx1bmtub3duPn0gW2luc3RhbmNlXSAtIE9wdGlvbmFsIGNvbXBvbmVudCBpbnN0YW5jZVxuICogQHByb3BlcnR5IHtGb3JtR3JvdXB9IFtmb3JtR3JvdXBdIC0gT3B0aW9uYWwgY29tcG9uZW50IEZvcm1Hcm91cFxuICogQHByb3BlcnR5IHtGb3JtQ29udHJvbH0gW2Zvcm1Db250cm9sXSAtIE9wdGlvbmFsIGNvbXBvbmVudCBGb3JtQ29udHJvbFxuICogQG1lbWJlck9mIG1vZHVsZTplbmdpbmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBbmd1bGFyRHluYW1pY091dHB1dCB7XG4gIGNvbXBvbmVudDogVHlwZTx1bmtub3duPjtcbiAgcmVuZGVyZXJJZD86IHN0cmluZztcbiAgaW5wdXRzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGluamVjdG9yPzogSW5qZWN0b3I7XG4gIGNvbnRlbnQ/OiBOb2RlW11bXTtcbiAgY2hpbGRyZW4/OiBBbmd1bGFyRHluYW1pY091dHB1dFtdO1xuICBpbnN0YW5jZT86IFR5cGU8dW5rbm93bj47XG4gIGZvcm1Hcm91cD86IEZvcm1Hcm91cDtcbiAgZm9ybUNvbnRyb2w/OiBGb3JtQ29udHJvbDtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gSW50ZXJmYWNlIGZvciBtb2RlbHMgdGhhdCBjYW4gYmUgcmVuZGVyZWRcbiAqIEBzdW1tYXJ5IERlZmluZXMgdGhlIGJhc2ljIHN0cnVjdHVyZSBmb3IgbW9kZWxzIHRoYXQgY2FuIGJlIHJlbmRlcmVkIGJ5IHRoZSBlbmdpbmUuXG4gKiBDb250YWlucyBhbiBvcHRpb25hbCByZW5kZXJlcklkIHRoYXQgdW5pcXVlbHkgaWRlbnRpZmllcyB0aGUgcmVuZGVyZWQgaW5zdGFuY2UuXG4gKiBAaW50ZXJmYWNlIFJlbmRlcmVkTW9kZWxcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbcmVuZGVyZXJJZF0gLSBPcHRpb25hbCB1bmlxdWUgSUQgZm9yIHRoZSByZW5kZXJlZCBtb2RlbCBpbnN0YW5jZVxuICogQG1lbWJlck9mIG1vZHVsZTplbmdpbmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZW5kZXJlZE1vZGVsIHtcbiAgcmVuZGVyZXJJZD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gUG9zc2libGUgaW5wdXQgdHlwZXMgZm9yIGZvcm0gZmllbGRzXG4gKiBAc3VtbWFyeSBEZWZpbmVzIHRoZSBwb3NzaWJsZSBpbnB1dCB0eXBlcyB0aGF0IGNhbiBiZSB1c2VkIGluIGZvcm0gZmllbGRzLlxuICogSW5jbHVkZXMgc3RhbmRhcmQgSFRNTCBpbnB1dCB0eXBlcyBsaWtlIGNoZWNrYm94LCByYWRpbywgYW5kIHNlbGVjdCxcbiAqIGFzIHdlbGwgYXMgSW9uaWMncyBUZXh0RmllbGRUeXBlcyBhbmQgdGV4dGFyZWEuXG4gKiBAdHlwZWRlZiB7KCdjaGVja2JveCd8J3JhZGlvJ3wnc2VsZWN0J3xUZXh0RmllbGRUeXBlc3wndGV4dGFyZWEnKX0gUG9zc2libGVJbnB1dFR5cGVzXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmVuZ2luZVxuICovXG5leHBvcnQgdHlwZSBQb3NzaWJsZUlucHV0VHlwZXMgPVxuICB8ICdjaGVja2JveCdcbiAgfCAncmFkaW8nXG4gIHwgJ3NlbGVjdCdcbiAgfCBUZXh0RmllbGRUeXBlc1xuICB8ICd0ZXh0YXJlYSc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEZpZWxkIGRlZmluaXRpb24gZm9yIEFuZ3VsYXIgY29tcG9uZW50c1xuICogQHN1bW1hcnkgQSBjb21wcmVoZW5zaXZlIHR5cGUgdGhhdCBjb21iaW5lcyBwcm9wZXJ0aWVzIGZyb20gdmFyaW91cyBJb25pYyBjb21wb25lbnRzXG4gKiB0byBkZWZpbmUgdGhlIHN0cnVjdHVyZSBvZiBhIGZpZWxkIGluIGFuIEFuZ3VsYXIgZm9ybS4gSXQgb21pdHMgY2VydGFpbiBwcm9wZXJ0aWVzXG4gKiBmcm9tIElvbklucHV0LCBwaWNrcyBzcGVjaWZpYyBwcm9wZXJ0aWVzIGZyb20gSW9uU2VsZWN0LCBJb25UZXh0YXJlYSwgYW5kIElvbkNoZWNrYm94LFxuICogYW5kIGFkZHMgY3VzdG9tIHByb3BlcnRpZXMgbGlrZSB0eXBlIGFuZCBjbGFzc05hbWUuXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBBbmd1bGFyRmllbGREZWZpbml0aW9uXG4gKiBAcHJvcGVydHkge1Bvc3NpYmxlSW5wdXRUeXBlc30gdHlwZSAtIFRoZSB0eXBlIG9mIGlucHV0IGZpZWxkXG4gKiBAcHJvcGVydHkge3N0cmluZ3xzdHJpbmdbXX0gY2xhc3NOYW1lIC0gQ1NTIGNsYXNzIG5hbWUocykgZm9yIHRoZSBmaWVsZFxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtjYW5jZWxUZXh0XSAtIFRleHQgZm9yIHRoZSBjYW5jZWwgYnV0dG9uIChmcm9tIElvblNlbGVjdClcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbaW50ZXJmYWNlXSAtIEludGVyZmFjZSBzdHlsZSBmb3Igc2VsZWN0IChmcm9tIElvblNlbGVjdClcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbc2VsZWN0ZWRUZXh0XSAtIFRleHQgZm9yIHNlbGVjdGVkIG9wdGlvbiAoZnJvbSBJb25TZWxlY3QpXG4gKiBAcHJvcGVydHkge09iamVjdH0gW2ludGVyZmFjZU9wdGlvbnNdIC0gT3B0aW9ucyBmb3IgdGhlIGludGVyZmFjZSAoZnJvbSBJb25TZWxlY3QpXG4gKiBAcHJvcGVydHkge251bWJlcn0gW3Jvd3NdIC0gTnVtYmVyIG9mIHJvd3MgZm9yIHRleHRhcmVhIChmcm9tIElvblRleHRhcmVhKVxuICogQHByb3BlcnR5IHtudW1iZXJ9IFtjb2xzXSAtIE51bWJlciBvZiBjb2x1bW5zIGZvciB0ZXh0YXJlYSAoZnJvbSBJb25UZXh0YXJlYSlcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbYWxpZ25tZW50XSAtIEFsaWdubWVudCBvZiBjaGVja2JveCAoZnJvbSBJb25DaGVja2JveClcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbanVzdGlmeV0gLSBKdXN0aWZpY2F0aW9uIG9mIGNoZWNrYm94IChmcm9tIElvbkNoZWNrYm94KVxuICogQHByb3BlcnR5IHtib29sZWFufSBbY2hlY2tlZF0gLSBXaGV0aGVyIGNoZWNrYm94IGlzIGNoZWNrZWQgKGZyb20gSW9uQ2hlY2tib3gpXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmVuZ2luZVxuICovXG5leHBvcnQgdHlwZSBBbmd1bGFyRmllbGREZWZpbml0aW9uID0gT21pdDxcbiAgSW9uSW5wdXQsXG4gIHwgJ2lvbklucHV0J1xuICB8ICdpb25Gb2N1cydcbiAgfCAnaW9uQ2hhbmdlJ1xuICB8ICdpb25CbHVyJ1xuICB8ICdnZXRJbnB1dEVsZW1lbnQnXG4gIHwgJ3NldEZvY3VzJ1xuICB8ICdsYWJlbCdcbiAgfCAnZWwnXG4gIHwgJ3onXG4gIHwgJ3R5cGUnXG4+ICZcbiAgUGljazxcbiAgICBJb25TZWxlY3QsXG4gICAgJ2NhbmNlbFRleHQnIHwgJ2ludGVyZmFjZScgfCAnc2VsZWN0ZWRUZXh0JyB8ICdpbnRlcmZhY2VPcHRpb25zJ1xuICA+ICZcbiAgUGljazxJb25UZXh0YXJlYSwgJ3Jvd3MnIHwgJ2NvbHMnPiAmXG4gIFBpY2s8SW9uQ2hlY2tib3gsICdhbGlnbm1lbnQnIHwgJ2p1c3RpZnknIHwgJ2NoZWNrZWQnPiAmIHtcbiAgdHlwZTogUG9zc2libGVJbnB1dFR5cGVzO1xuICBjbGFzc05hbWU6IHN0cmluZyB8IHN0cmluZ1tdO1xufSAmIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBTdHJpbmcgb3IgYm9vbGVhbiByZXByZXNlbnRhdGlvbiBvZiBhIGJvb2xlYW4gdmFsdWVcbiAqIEBzdW1tYXJ5IFJlcHJlc2VudHMgYSB2YWx1ZSB0aGF0IGNhbiBiZSBlaXRoZXIgYSBib29sZWFuIG9yIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGEgYm9vbGVhbi5cbiAqIFRoaXMgaXMgdXNlZnVsIGZvciBoYW5kbGluZyBhdHRyaWJ1dGUgdmFsdWVzIHRoYXQgY2FuIGJlIHNwZWNpZmllZCBhcyBlaXRoZXIgc3RyaW5ncyBvciBib29sZWFucy5cbiAqIEB0eXBlZGVmIHsoJ3RydWUnfCdmYWxzZSd8Ym9vbGVhbil9IFN0cmluZ09yQm9vbGVhblxuICogQG1lbWJlck9mIG1vZHVsZTplbmdpbmVcbiAqL1xuZXhwb3J0IHR5cGUgU3RyaW5nT3JCb29sZWFuID0gJ3RydWUnIHwgJ2ZhbHNlJyB8IGJvb2xlYW47XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIE9wdGlvbiB0eXBlIGZvciBzZWxlY3QgaW5wdXRzXG4gKiBAc3VtbWFyeSBFeHRlbmRzIHRoZSBJbnB1dE9wdGlvbiBpbnRlcmZhY2Ugd2l0aCBhIHNlbGVjdGVkIHByb3BlcnR5IHRvIGluZGljYXRlXG4gKiB3aGV0aGVyIHRoZSBvcHRpb24gaXMgc2VsZWN0ZWQgYnkgZGVmYXVsdC5cbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZW5naW5lXG4gKi9cbmV4cG9ydCB0eXBlIFNlbGVjdE9wdGlvbiA9IElucHV0T3B0aW9uICYgeyBzZWxlY3RlZD86IGJvb2xlYW4gfTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gT3B0aW9uIHR5cGUgZm9yIHJhZGlvIGlucHV0c1xuICogQHN1bW1hcnkgRXh0ZW5kcyB0aGUgSW5wdXRPcHRpb24gaW50ZXJmYWNlIHdpdGggYSBjaGVja2VkIHByb3BlcnR5IHRvIGluZGljYXRlXG4gKiB3aGV0aGVyIHRoZSBvcHRpb24gaXMgY2hlY2tlZCBieSBkZWZhdWx0LlxuICogQG1lbWJlck9mIG1vZHVsZTplbmdpbmVcbiAqL1xuZXhwb3J0IHR5cGUgUmFkaW9PcHRpb24gPSBJbnB1dE9wdGlvbiAmIHsgY2hlY2tlZD86IGJvb2xlYW4gfTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gT3B0aW9uIHR5cGUgZm9yIGNoZWNrYm94IGlucHV0c1xuICogQHN1bW1hcnkgQWxpYXMgZm9yIFJhZGlvT3B0aW9uLCBhcyBjaGVja2JveCBvcHRpb25zIGhhdmUgdGhlIHNhbWUgc3RydWN0dXJlIGFzIHJhZGlvIG9wdGlvbnMuXG4gKiBAdHlwZWRlZiB7UmFkaW9PcHRpb259IENoZWNrYm94T3B0aW9uXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmVuZ2luZVxuICovXG5leHBvcnQgdHlwZSBDaGVja2JveE9wdGlvbiA9IFJhZGlvT3B0aW9uO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBCYXNlIG9wdGlvbiB0eXBlIGZvciBpbnB1dCBjb21wb25lbnRzXG4gKiBAc3VtbWFyeSBEZWZpbmVzIHRoZSBjb21tb24gc3RydWN0dXJlIGZvciBvcHRpb25zIHVzZWQgaW4gc2VsZWN0LCByYWRpbywgYW5kIGNoZWNrYm94IGlucHV0cy5cbiAqIENvbnRhaW5zIHByb3BlcnRpZXMgZm9yIHRoZSBkaXNwbGF5IHRleHQsIHZhbHVlLCBkaXNhYmxlZCBzdGF0ZSwgQ1NTIGNsYXNzLCBhbmQgaWNvbi5cbiAqIEBpbnRlcmZhY2UgSW5wdXRPcHRpb25cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSB0ZXh0IC0gVGhlIGRpc3BsYXkgdGV4dCBmb3IgdGhlIG9wdGlvblxuICogQHByb3BlcnR5IHtzdHJpbmd8bnVtYmVyfSB2YWx1ZSAtIFRoZSB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggdGhlIG9wdGlvblxuICogQHByb3BlcnR5IHtTdHJpbmdPckJvb2xlYW59IFtkaXNhYmxlZF0gLSBXaGV0aGVyIHRoZSBvcHRpb24gaXMgZGlzYWJsZWRcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbY2xhc3NOYW1lXSAtIENTUyBjbGFzcyBuYW1lIGZvciBzdHlsaW5nIHRoZSBvcHRpb25cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbaWNvbl0gLSBJY29uIHRvIGRpc3BsYXkgd2l0aCB0aGUgb3B0aW9uXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmVuZ2luZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIElucHV0T3B0aW9uIHtcbiAgdGV4dDogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nIHwgbnVtYmVyO1xuICBkaXNhYmxlZD86IFN0cmluZ09yQm9vbGVhbjtcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICBpY29uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBUYXJnZXQgb3B0aW9ucyBmb3IgSFRNTCBmb3Jtc1xuICogQHN1bW1hcnkgRGVmaW5lcyB0aGUgcG9zc2libGUgdGFyZ2V0IHZhbHVlcyBmb3IgSFRNTCBmb3JtcywgaW5jbHVkaW5nIHN0YW5kYXJkIHRhcmdldHNcbiAqIGxpa2UgJ19ibGFuaycsICdfc2VsZicsICdfcGFyZW50JywgYW5kICdfdG9wJywgYXMgd2VsbCBhcyBjdXN0b20gc3RyaW5nIHZhbHVlcy5cbiAqIEB0eXBlZGVmIHsoJ19ibGFuayd8J19zZWxmJ3wnX3BhcmVudCd8J190b3AnfHN0cmluZyl9IEhUTUxGb3JtVGFyZ2V0XG4gKiBAbWVtYmVyT2YgbW9kdWxlOmVuZ2luZVxuICovXG5leHBvcnQgdHlwZSBIVE1MRm9ybVRhcmdldCA9ICdfYmxhbmsnIHwgJ19zZWxmJyB8ICdfcGFyZW50JyB8ICdfdG9wJyB8IHN0cmluZztcblxuLy8gZXhwb3J0IGludGVyZmFjZSBJTGlzdEl0ZW1Qcm9wIHtcbi8vICAgcmVuZGVyPzogc3RyaW5nIHwgYm9vbGVhbjtcbi8vICAgdHJhbnNsYXRlUHJvcHM/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbi8vICAgYnV0dG9uPzogU3RyaW5nT3JCb29sZWFuO1xuLy8gICBpY29uPzogc3RyaW5nO1xuLy8gICBpY29uU2xvdD86ICdzdGFydCcgfCAnZW5kJztcbi8vICAgdGl0bGU/OiBzdHJpbmc7XG4vLyAgIGRlc2NyaXRwaW9uPzogc3RyaW5nO1xuLy8gICBpbmZvPzogc3RyaW5nO1xuLy8gICBzdWJpbmZvPzogc3RyaW5nO1xuLy8gfVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBJbnRlcmZhY2UgZm9yIGxpc3QgY29tcG9uZW50IHJlZnJlc2ggZXZlbnRzXG4gKiBAc3VtbWFyeSBEZWZpbmVzIHRoZSBzdHJ1Y3R1cmUgb2YgYSByZWZyZXNoIGV2ZW50IGZvciBsaXN0IGNvbXBvbmVudHMuXG4gKiBDb250YWlucyBhbiBhcnJheSBvZiBrZXktdmFsdWUgcGFpcnMgcmVwcmVzZW50aW5nIHRoZSBuZXcgZGF0YSBmb3IgdGhlIGxpc3QuXG4gKiBAaW50ZXJmYWNlIElMaXN0Q29tcG9uZW50UmVmcmVzaEV2ZW50XG4gKiBAcHJvcGVydHkge0tleVZhbHVlW119IGRhdGEgLSBBcnJheSBvZiBrZXktdmFsdWUgcGFpcnMgcmVwcmVzZW50aW5nIHRoZSBuZXcgZGF0YVxuICogQG1lbWJlck9mIG1vZHVsZTplbmdpbmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJTGlzdENvbXBvbmVudFJlZnJlc2hFdmVudCB7XG4gIGRhdGE6IEtleVZhbHVlW107XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEZvcm0gc2VydmljZSBjb250cm9sIHN0cnVjdHVyZVxuICogQHN1bW1hcnkgRGVmaW5lcyB0aGUgc3RydWN0dXJlIGZvciBhIGZvcm0gY29udHJvbCBtYW5hZ2VkIGJ5IHRoZSBmb3JtIHNlcnZpY2UuXG4gKiBDb250YWlucyB0aGUgRm9ybUdyb3VwIGNvbnRyb2wgYW5kIHRoZSBhc3NvY2lhdGVkIGZpZWxkIHByb3BlcnRpZXMgZm9yIHJlbmRlcmluZy5cbiAqIEBpbnRlcmZhY2UgRm9ybVNlcnZpY2VDb250cm9sXG4gKiBAcHJvcGVydHkge0Zvcm1Hcm91cH0gY29udHJvbCAtIFRoZSBBbmd1bGFyIEZvcm1Hcm91cCBmb3IgdGhlIGNvbnRyb2xcbiAqIEBwcm9wZXJ0eSB7QW5ndWxhckZpZWxkRGVmaW5pdGlvbn0gcHJvcHMgLSBUaGUgZmllbGQgcHJvcGVydGllcyBmb3IgcmVuZGVyaW5nIHRoZSBjb250cm9sXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmVuZ2luZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZvcm1TZXJ2aWNlQ29udHJvbCB7XG4gIGNvbnRyb2w6IEZvcm1Hcm91cDtcbiAgcHJvcHM6IEFuZ3VsYXJGaWVsZERlZmluaXRpb247XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFR5cGUgZm9yIGZvcm0gc2VydmljZSBjb250cm9sc1xuICogQHN1bW1hcnkgRGVmaW5lcyB0aGUgc3RydWN0dXJlIG9mIGZvcm0gY29udHJvbHMgbWFuYWdlZCBieSB0aGUgZm9ybSBzZXJ2aWNlLlxuICogSXQncyBhIG5lc3RlZCByZWNvcmQgd2hlcmUgdGhlIG91dGVyIGtleSBpcyB0aGUgZm9ybSBncm91cCBuYW1lLCB0aGUgaW5uZXIga2V5XG4gKiBpcyB0aGUgY29udHJvbCBuYW1lLCBhbmQgdGhlIHZhbHVlIGNvbnRhaW5zIHRoZSBmb3JtIGdyb3VwIGFuZCBmaWVsZCBwcm9wZXJ0aWVzLlxuICogQHR5cGVkZWYge1JlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHsgY29udHJvbDogRm9ybUdyb3VwOyBwcm9wczogQW5ndWxhckZpZWxkRGVmaW5pdGlvbiB9Pj59IEZvcm1TZXJ2aWNlQ29udHJvbHNcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZW5naW5lXG4gKi9cbmV4cG9ydCB0eXBlIEZvcm1TZXJ2aWNlQ29udHJvbHMgPSBSZWNvcmQ8XG4gIHN0cmluZyxcbiAgUmVjb3JkPHN0cmluZywgRm9ybVNlcnZpY2VDb250cm9sPlxuPjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gUmVuZGVyZXIgY3VzdG9tIGV2ZW50IHR5cGVcbiAqIEBzdW1tYXJ5IENvbWJpbmVzIEJhc2VDdXN0b21FdmVudCB3aXRoIEtleVZhbHVlIHByb3BlcnRpZXMgdG8gY3JlYXRlIGEgZmxleGlibGVcbiAqIGN1c3RvbSBldmVudCB0eXBlIGZvciByZW5kZXJlciBjb21wb25lbnRzLiBUaGlzIGFsbG93cyBldmVudHMgdG8gY2FycnkgYm90aFxuICogc3RhbmRhcmQgZXZlbnQgcHJvcGVydGllcyBhbmQgYWRkaXRpb25hbCBjdXN0b20gZGF0YS5cbiAqIEB0eXBlZGVmIFJlbmRlcmVyQ3VzdG9tRXZlbnRcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZW5naW5lXG4gKi9cbmV4cG9ydCB0eXBlIFJlbmRlcmVyQ3VzdG9tRXZlbnQgPSBCYXNlQ3VzdG9tRXZlbnQgJiBLZXlWYWx1ZTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gSW50ZXJmYWNlIGZvciBsaXN0IGl0ZW0gY3VzdG9tIGV2ZW50c1xuICogQHN1bW1hcnkgRGVmaW5lcyB0aGUgc3RydWN0dXJlIG9mIGN1c3RvbSBldmVudHMgdHJpZ2dlcmVkIGJ5IGxpc3QgaXRlbXMuXG4gKiBFeHRlbmRzIEJhc2VDdXN0b21FdmVudCB3aXRoIGFkZGl0aW9uYWwgcHJvcGVydGllcyBmb3IgdGhlIGFjdGlvbiBhbmQgcHJpbWFyeSBrZXkuXG4gKiBAaW50ZXJmYWNlIExpc3RJdGVtQ3VzdG9tRXZlbnRcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBhY3Rpb24gLSBUaGUgYWN0aW9uIHBlcmZvcm1lZCBvbiB0aGUgbGlzdCBpdGVtXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW3BrXSAtIE9wdGlvbmFsIHByaW1hcnkga2V5IG9mIHRoZSBhZmZlY3RlZCBpdGVtXG4gKiBAcHJvcGVydHkge2FueX0gZGF0YSAtIFRoZSBkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGUgZXZlbnQgKGluaGVyaXRlZCBmcm9tIEJhc2VDdXN0b21FdmVudClcbiAqIEBwcm9wZXJ0eSB7SFRNTEVsZW1lbnR9IFt0YXJnZXRdIC0gVGhlIHRhcmdldCBlbGVtZW50IChpbmhlcml0ZWQgZnJvbSBCYXNlQ3VzdG9tRXZlbnQpXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW25hbWVdIC0gVGhlIG5hbWUgb2YgdGhlIGV2ZW50IChpbmhlcml0ZWQgZnJvbSBCYXNlQ3VzdG9tRXZlbnQpXG4gKiBAcHJvcGVydHkge3N0cmluZ30gY29tcG9uZW50IC0gVGhlIGNvbXBvbmVudCB0aGF0IHRyaWdnZXJlZCB0aGUgZXZlbnQgKGluaGVyaXRlZCBmcm9tIEJhc2VDdXN0b21FdmVudClcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZW5naW5lXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdEl0ZW1DdXN0b21FdmVudCBleHRlbmRzIEJhc2VDdXN0b21FdmVudCB7XG4gIGFjdGlvbjogc3RyaW5nO1xuICBwaz86IHN0cmluZztcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQmFzZSBpbnRlcmZhY2UgZm9yIGN1c3RvbSBldmVudHNcbiAqIEBzdW1tYXJ5IERlZmluZXMgdGhlIGJhc2Ugc3RydWN0dXJlIGZvciBjdXN0b20gZXZlbnRzIGluIHRoZSBhcHBsaWNhdGlvbi5cbiAqIENvbnRhaW5zIHByb3BlcnRpZXMgZm9yIHRoZSBldmVudCBkYXRhLCB0YXJnZXQgZWxlbWVudCwgbmFtZSwgYW5kIGNvbXBvbmVudC5cbiAqIEBpbnRlcmZhY2UgQmFzZUN1c3RvbUV2ZW50XG4gKiBAcHJvcGVydHkge2FueX0gZGF0YSAtIFRoZSBkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGUgZXZlbnRcbiAqIEBwcm9wZXJ0eSB7SFRNTEVsZW1lbnR9IFt0YXJnZXRdIC0gVGhlIHRhcmdldCBlbGVtZW50IHRoYXQgdHJpZ2dlcmVkIHRoZSBldmVudFxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtuYW1lXSAtIFRoZSBuYW1lIG9mIHRoZSBldmVudFxuICogQHByb3BlcnR5IHtzdHJpbmd9IGNvbXBvbmVudCAtIFRoZSBjb21wb25lbnQgdGhhdCB0cmlnZ2VyZWQgdGhlIGV2ZW50XG4gKiBAbWVtYmVyT2YgbW9kdWxlOmVuZ2luZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VDdXN0b21FdmVudCB7XG4gIG5hbWU6IHN0cmluZztcbiAgY29tcG9uZW50OiBzdHJpbmc7XG4gIGRhdGE/OiB1bmtub3duO1xuICB0YXJnZXQ/OiBIVE1MRWxlbWVudDtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQ1JVRCBmb3JtIGV2ZW50IHR5cGVcbiAqIEBzdW1tYXJ5IEV4dGVuZHMgQmFzZUN1c3RvbUV2ZW50IHRvIGluY2x1ZGUgb3B0aW9uYWwgaGFuZGxlcnMgZm9yIENSVUQgZm9ybSBvcGVyYXRpb25zLlxuICogVGhpcyBldmVudCB0eXBlIGlzIHVzZWQgZm9yIGZvcm0tcmVsYXRlZCBhY3Rpb25zIGxpa2UgY3JlYXRlLCByZWFkLCB1cGRhdGUsIGFuZCBkZWxldGUgb3BlcmF0aW9ucy5cbiAqIEB0eXBlZGVmIENydWRGb3JtRXZlbnRcbiAqIEBwcm9wZXJ0eSB7UmVjb3JkPHN0cmluZywgYW55Pn0gW2hhbmRsZXJzXSAtIE9wdGlvbmFsIGhhbmRsZXJzIGZvciBmb3JtIG9wZXJhdGlvbnNcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZW5naW5lXG4gKi9cbmV4cG9ydCB0eXBlIENydWRGb3JtRXZlbnQgPSBCYXNlQ3VzdG9tRXZlbnQgJiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIGhhbmRsZXJzPzogUmVjb3JkPHN0cmluZywgYW55Pjtcbn07XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENvbXBvbmVudCBpbnB1dCBwcm9wZXJ0aWVzXG4gKiBAc3VtbWFyeSBFeHRlbmRzIEZpZWxkUHJvcGVydGllcyB3aXRoIGFkZGl0aW9uYWwgcHJvcGVydGllcyBzcGVjaWZpYyB0byBBbmd1bGFyIGNvbXBvbmVudHMuXG4gKiBJbmNsdWRlcyB1cGRhdGUgbW9kZSBmb3IgZm9ybSBjb250cm9scyBhbmQgb3B0aW9uYWwgRm9ybUdyb3VwIGFuZCBGb3JtQ29udHJvbCByZWZlcmVuY2VzLlxuICogQGludGVyZmFjZSBDb21wb25lbnRJbnB1dFxuICogQHByb3BlcnR5IHtGaWVsZFVwZGF0ZU1vZGV9IFt1cGRhdGVNb2RlXSAtIFdoZW4gdGhlIGZpZWxkIHZhbHVlIHNob3VsZCBiZSB1cGRhdGVkXG4gKiBAcHJvcGVydHkge0Zvcm1Hcm91cH0gW2Zvcm1Hcm91cF0gLSBPcHRpb25hbCBGb3JtR3JvdXAgcmVmZXJlbmNlXG4gKiBAcHJvcGVydHkge0Zvcm1Db250cm9sfSBbZm9ybUNvbnRyb2xdIC0gT3B0aW9uYWwgRm9ybUNvbnRyb2wgcmVmZXJlbmNlXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmVuZ2luZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbXBvbmVudElucHV0IGV4dGVuZHMgRmllbGRQcm9wZXJ0aWVzIHtcbiAgdXBkYXRlTW9kZT86IEZpZWxkVXBkYXRlTW9kZTtcbiAgZm9ybUdyb3VwPzogRm9ybUdyb3VwO1xuICBmb3JtQ29udHJvbD86IEZvcm1Db250cm9sO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDb21wb25lbnQgY29uZmlndXJhdGlvbiBzdHJ1Y3R1cmVcbiAqIEBzdW1tYXJ5IERlZmluZXMgdGhlIGNvbmZpZ3VyYXRpb24gZm9yIGR5bmFtaWNhbGx5IGNyZWF0aW5nIEFuZ3VsYXIgY29tcG9uZW50cy5cbiAqIENvbnRhaW5zIHRoZSBjb21wb25lbnQgbmFtZSwgaW5wdXQgcHJvcGVydGllcywgaW5qZWN0b3IsIGFuZCBvcHRpb25hbCBjaGlsZCBjb21wb25lbnRzLlxuICogQGludGVyZmFjZSBDb21wb25lbnRDb25maWdcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBjb21wb25lbnQgLSBUaGUgbmFtZSBvZiB0aGUgY29tcG9uZW50IHRvIHJlbmRlclxuICogQHByb3BlcnR5IHtDb21wb25lbnRJbnB1dH0gaW5wdXRzIC0gVGhlIGlucHV0IHByb3BlcnRpZXMgZm9yIHRoZSBjb21wb25lbnRcbiAqIEBwcm9wZXJ0eSB7RW52aXJvbm1lbnRJbmplY3RvciB8IEluamVjdG9yfSBpbmplY3RvciAtIFRoZSBBbmd1bGFyIGluamVjdG9yIGZvciBkZXBlbmRlbmN5IGluamVjdGlvblxuICogQHByb3BlcnR5IHtDb21wb25lbnRDb25maWdbXX0gW2NoaWxkcmVuXSAtIE9wdGlvbmFsIGNoaWxkIGNvbXBvbmVudCBjb25maWd1cmF0aW9uc1xuICogQG1lbWJlck9mIG1vZHVsZTplbmdpbmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb21wb25lbnRDb25maWcge1xuICBjb21wb25lbnQ6IHN0cmluZztcbiAgaW5wdXRzOiBDb21wb25lbnRJbnB1dDtcbiAgaW5qZWN0b3I6IEVudmlyb25tZW50SW5qZWN0b3IgfCBJbmplY3RvcjtcbiAgY2hpbGRyZW4/OiBDb21wb25lbnRDb25maWdbXTtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gRm9ybSBwYXJlbnQgZ3JvdXAgdHVwbGVcbiAqIEBzdW1tYXJ5IFJlcHJlc2VudHMgYSB0dXBsZSBjb250YWluaW5nIGEgRm9ybUdyb3VwIGFuZCBpdHMgYXNzb2NpYXRlZCBzdHJpbmcgaWRlbnRpZmllci5cbiAqIFRoaXMgaXMgdXNlZCBmb3IgbWFuYWdpbmcgaGllcmFyY2hpY2FsIGZvcm0gc3RydWN0dXJlcyBhbmQgcGFyZW50LWNoaWxkIHJlbGF0aW9uc2hpcHMuXG4gKiBAdHlwZWRlZiB7W0Zvcm1Hcm91cCwgc3RyaW5nXX0gRm9ybVBhcmVudEdyb3VwXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmVuZ2luZVxuICovXG5leHBvcnQgdHlwZSBGb3JtUGFyZW50R3JvdXAgPSBbRm9ybUdyb3VwLCAgc3RyaW5nXTtcbiJdfQ==
@@ -115,4 +115,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
115
115
  schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA],
116
116
  }]
117
117
  }] });
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yLWFuZ3VsYXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9mb3ItYW5ndWxhci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxzQkFBc0IsRUFBdUIsZ0JBQWdCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxNQUFNLEVBQ04sZUFBZSxFQUNmLFlBQVksRUFDWixNQUFNLEVBQ04sVUFBVSxFQUNWLE9BQU8sRUFDUCxTQUFTLEVBQ1QsYUFBYSxFQUNiLFFBQVEsRUFDVCxNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JFLE9BQU8sRUFBVSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFFcEQsTUFBTSxvQkFBb0IsR0FBRztJQUMzQixNQUFNO0lBQ04sZUFBZTtJQUNmLFlBQVk7SUFDWixNQUFNO0lBQ04sT0FBTztJQUNQLFFBQVE7SUFDUixTQUFTO0lBQ1QsYUFBYTtJQUNiLFVBQVU7SUFDVixZQUFZO0lBQ1osV0FBVztJQUNYLG1CQUFtQjtJQUNuQixlQUFlO0lBQ2YsYUFBYTtDQUNkLENBQUM7QUFFRixNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQ3ZDLE1BQU0sVUFBVSxTQUFTLENBQUMsUUFBeUI7SUFDakQsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLFFBQWUsQ0FBQyxDQUFDO0FBQ2xDLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFPSCxNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCOzs7Ozs7OztPQVFHO0lBQ0gsTUFBTSxDQUFDLE9BQU87UUFDWixPQUFPO1lBQ0wsUUFBUSxFQUFFLGdCQUFnQjtTQUMzQixDQUFDO0lBQ0osQ0FBQzsrR0FkVSxnQkFBZ0I7Z0hBQWhCLGdCQUFnQixZQWhEM0IsTUFBTTtZQUNOLGVBQWU7WUFDZixZQUFZO1lBQ1osTUFBTTtZQUNOLE9BQU87WUFDUCxRQUFRO1lBQ1IsU0FBUztZQUNULGFBQWE7WUFDYixVQUFVO1lBQ1YsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsZUFBZTtZQUNmLGFBQWEsYUFiYixNQUFNO1lBQ04sZUFBZTtZQUNmLFlBQVk7WUFDWixNQUFNO1lBQ04sT0FBTztZQUNQLFFBQVE7WUFDUixTQUFTO1lBQ1QsYUFBYTtZQUNiLFVBQVU7WUFDVixZQUFZO1lBQ1osV0FBVztZQUNYLG1CQUFtQjtZQUNuQixlQUFlO1lBQ2YsYUFBYTtnSEFtQ0YsZ0JBQWdCLFlBaEQzQixNQUFNO1lBQ04sZUFBZTtZQUNmLFlBQVk7WUFDWixNQUFNO1lBQ04sT0FBTztZQUNQLFFBQVE7WUFDUixTQUFTO1lBRVQsVUFBVTtZQUNWLFlBQVk7WUFDWixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLGVBQWU7WUFIZixZQUFZO1lBQ1osV0FBVztZQUNYLG1CQUFtQjtZQUNuQixlQUFlOzs0RkFvQ0osZ0JBQWdCO2tCQU41QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxvQkFBb0I7b0JBQzdCLFlBQVksRUFBRSxFQUFFO29CQUNoQixPQUFPLEVBQUUsb0JBQW9CO29CQUM3QixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxnQkFBZ0IsQ0FBQztpQkFDcEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgTW9kdWxlV2l0aFByb3ZpZGVycywgTk9fRVJST1JTX1NDSEVNQX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgSW9uQXBwLFxuICBJb25Sb3V0ZXJPdXRsZXQsXG4gIElvblNwbGl0UGFuZSxcbiAgSW9uSW1nLFxuICBJb25Db250ZW50LFxuICBJb25UZXh0LFxuICBJb25CdXR0b24sXG4gIElvblJvdXRlckxpbmssXG4gIElvblRpdGxlXG59IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IExvZ2dlciwgTG9nZ2luZyB9IGZyb20gJ0BkZWNhZi10cy9sb2dnaW5nJztcblxuY29uc3QgQ29tcG9uZW50c0FuZE1vZHVsZXMgPSBbXG4gIElvbkFwcCxcbiAgSW9uUm91dGVyT3V0bGV0LFxuICBJb25TcGxpdFBhbmUsXG4gIElvbkltZyxcbiAgSW9uVGV4dCxcbiAgSW9uVGl0bGUsXG4gIElvbkJ1dHRvbixcbiAgSW9uUm91dGVyTGluayxcbiAgSW9uQ29udGVudCxcbiAgQ29tbW9uTW9kdWxlLFxuICBGb3Jtc01vZHVsZSxcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgVHJhbnNsYXRlTW9kdWxlLFxuICBUcmFuc2xhdGVQaXBlLFxuXTtcblxuY29uc3QgbG9nID0gTG9nZ2luZy5mb3IoXCJmb3ItYW5ndWxhclwiKTtcbmV4cG9ydCBmdW5jdGlvbiBnZXRMb2dnZXIoaW5zdGFuY2U6IG9iamVjdCB8IHN0cmluZyk6IExvZ2dlciB7XG4gIHJldHVybiBsb2cuZm9yKGluc3RhbmNlIGFzIGFueSk7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIE1haW4gQW5ndWxhciBtb2R1bGUgZm9yIHRoZSBEZWNhZiBmcmFtZXdvcmtcbiAqIEBzdW1tYXJ5IFRoZSBGb3JBbmd1bGFyTW9kdWxlIHByb3ZpZGVzIHRoZSBjb3JlIGZ1bmN0aW9uYWxpdHkgZm9yIGludGVncmF0aW5nIERlY2FmIHdpdGggQW5ndWxhciBhcHBsaWNhdGlvbnMuXG4gKiBJdCBpbXBvcnRzIGFuZCBleHBvcnRzIGNvbW1vbiBBbmd1bGFyIGFuZCBJb25pYyBjb21wb25lbnRzIGFuZCBtb2R1bGVzIG5lZWRlZCBmb3IgRGVjYWYgYXBwbGljYXRpb25zLFxuICogaW5jbHVkaW5nIGZvcm0gaGFuZGxpbmcsIHRyYW5zbGF0aW9uIHN1cHBvcnQsIGFuZCBJb25pYyBVSSBjb21wb25lbnRzLiBUaGlzIG1vZHVsZSBjYW4gYmUgaW1wb3J0ZWRcbiAqIGRpcmVjdGx5IG9yIHZpYSB0aGUgZm9yUm9vdCgpIG1ldGhvZCBmb3IgcHJvcGVyIGluaXRpYWxpemF0aW9uIGluIHRoZSBhcHBsaWNhdGlvbidzIHJvb3QgbW9kdWxlLlxuICpcbiAqIEBjbGFzcyBGb3JBbmd1bGFyTW9kdWxlXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogLy8gSW4geW91ciBhcHAgbW9kdWxlOlxuICogQE5nTW9kdWxlKHtcbiAqICAgaW1wb3J0czogW1xuICogICAgIEZvckFuZ3VsYXJNb2R1bGUuZm9yUm9vdCgpLFxuICogICAgIC8vIG90aGVyIGltcG9ydHNcbiAqICAgXSxcbiAqICAgLy8gLi4uXG4gKiB9KVxuICogZXhwb3J0IGNsYXNzIEFwcE1vZHVsZSB7fVxuICogYGBgXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IENvbXBvbmVudHNBbmRNb2R1bGVzLFxuICBkZWNsYXJhdGlvbnM6IFtdLFxuICBleHBvcnRzOiBDb21wb25lbnRzQW5kTW9kdWxlcyxcbiAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIE5PX0VSUk9SU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JBbmd1bGFyTW9kdWxlIHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDcmVhdGVzIGEgbW9kdWxlIHdpdGggcHJvdmlkZXJzIGZvciByb290IG1vZHVsZSBpbXBvcnRcbiAgICogQHN1bW1hcnkgVGhpcyBzdGF0aWMgbWV0aG9kIHByb3ZpZGVzIHRoZSBwcm9wZXIgd2F5IHRvIGltcG9ydCB0aGUgRm9yQW5ndWxhck1vZHVsZSBpbiB0aGUgYXBwbGljYXRpb24nc1xuICAgKiByb290IG1vZHVsZS4gSXQgcmV0dXJucyBhIE1vZHVsZVdpdGhQcm92aWRlcnMgb2JqZWN0IHRoYXQgaW5jbHVkZXMgdGhlIEZvckFuZ3VsYXJNb2R1bGUgaXRzZWxmLlxuICAgKiBVc2luZyBmb3JSb290KCkgZW5zdXJlcyB0aGF0IHRoZSBtb2R1bGUgYW5kIGl0cyBwcm92aWRlcnMgYXJlIHByb3Blcmx5IGluaXRpYWxpemVkIGFuZCBvbmx5XG4gICAqIGluc3RhbnRpYXRlZCBvbmNlIGluIHRoZSBhcHBsaWNhdGlvbi5cbiAgICpcbiAgICogQHJldHVybiB7TW9kdWxlV2l0aFByb3ZpZGVyczxGb3JBbmd1bGFyTW9kdWxlPn0gVGhlIG1vZHVsZSB3aXRoIGl0cyBwcm92aWRlcnNcbiAgICovXG4gIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8Rm9yQW5ndWxhck1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogRm9yQW5ndWxhck1vZHVsZSxcbiAgICB9O1xuICB9XG59XG4iXX0=
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yLWFuZ3VsYXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9mb3ItYW5ndWxhci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxzQkFBc0IsRUFBdUIsZ0JBQWdCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxNQUFNLEVBQ04sZUFBZSxFQUNmLFlBQVksRUFDWixNQUFNLEVBQ04sVUFBVSxFQUNWLE9BQU8sRUFDUCxTQUFTLEVBQ1QsYUFBYSxFQUNiLFFBQVEsRUFDVCxNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JFLE9BQU8sRUFBVSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFHcEQsTUFBTSxvQkFBb0IsR0FBRztJQUMzQixNQUFNO0lBQ04sZUFBZTtJQUNmLFlBQVk7SUFDWixNQUFNO0lBQ04sT0FBTztJQUNQLFFBQVE7SUFDUixTQUFTO0lBQ1QsYUFBYTtJQUNiLFVBQVU7SUFDVixZQUFZO0lBQ1osV0FBVztJQUNYLG1CQUFtQjtJQUNuQixlQUFlO0lBQ2YsYUFBYTtDQUNkLENBQUM7QUFFRixNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQ3ZDLE1BQU0sVUFBVSxTQUFTLENBQUMsUUFBeUM7SUFDakUsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLFFBQWlDLENBQUMsQ0FBQztBQUNwRCxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHO0FBT0gsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQjs7Ozs7Ozs7T0FRRztJQUNILE1BQU0sQ0FBQyxPQUFPO1FBQ1osT0FBTztZQUNMLFFBQVEsRUFBRSxnQkFBZ0I7U0FDM0IsQ0FBQztJQUNKLENBQUM7K0dBZFUsZ0JBQWdCO2dIQUFoQixnQkFBZ0IsWUFoRDNCLE1BQU07WUFDTixlQUFlO1lBQ2YsWUFBWTtZQUNaLE1BQU07WUFDTixPQUFPO1lBQ1AsUUFBUTtZQUNSLFNBQVM7WUFDVCxhQUFhO1lBQ2IsVUFBVTtZQUNWLFlBQVk7WUFDWixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLGVBQWU7WUFDZixhQUFhLGFBYmIsTUFBTTtZQUNOLGVBQWU7WUFDZixZQUFZO1lBQ1osTUFBTTtZQUNOLE9BQU87WUFDUCxRQUFRO1lBQ1IsU0FBUztZQUNULGFBQWE7WUFDYixVQUFVO1lBQ1YsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsZUFBZTtZQUNmLGFBQWE7Z0hBbUNGLGdCQUFnQixZQWhEM0IsTUFBTTtZQUNOLGVBQWU7WUFDZixZQUFZO1lBQ1osTUFBTTtZQUNOLE9BQU87WUFDUCxRQUFRO1lBQ1IsU0FBUztZQUVULFVBQVU7WUFDVixZQUFZO1lBQ1osV0FBVztZQUNYLG1CQUFtQjtZQUNuQixlQUFlO1lBSGYsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsZUFBZTs7NEZBb0NKLGdCQUFnQjtrQkFONUIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsb0JBQW9CO29CQUM3QixZQUFZLEVBQUUsRUFBRTtvQkFDaEIsT0FBTyxFQUFFLG9CQUFvQjtvQkFDN0IsT0FBTyxFQUFFLENBQUMsc0JBQXNCLEVBQUUsZ0JBQWdCLENBQUM7aUJBQ3BEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIE1vZHVsZVdpdGhQcm92aWRlcnMsIE5PX0VSUk9SU19TQ0hFTUF9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIElvbkFwcCxcbiAgSW9uUm91dGVyT3V0bGV0LFxuICBJb25TcGxpdFBhbmUsXG4gIElvbkltZyxcbiAgSW9uQ29udGVudCxcbiAgSW9uVGV4dCxcbiAgSW9uQnV0dG9uLFxuICBJb25Sb3V0ZXJMaW5rLFxuICBJb25UaXRsZVxufSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBMb2dnZXIsIExvZ2dpbmcgfSBmcm9tICdAZGVjYWYtdHMvbG9nZ2luZyc7XG5pbXBvcnQgeyBGdW5jdGlvbkxpa2UgfSBmcm9tICcuL2VuZ2luZSc7XG5cbmNvbnN0IENvbXBvbmVudHNBbmRNb2R1bGVzID0gW1xuICBJb25BcHAsXG4gIElvblJvdXRlck91dGxldCxcbiAgSW9uU3BsaXRQYW5lLFxuICBJb25JbWcsXG4gIElvblRleHQsXG4gIElvblRpdGxlLFxuICBJb25CdXR0b24sXG4gIElvblJvdXRlckxpbmssXG4gIElvbkNvbnRlbnQsXG4gIENvbW1vbk1vZHVsZSxcbiAgRm9ybXNNb2R1bGUsXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gIFRyYW5zbGF0ZU1vZHVsZSxcbiAgVHJhbnNsYXRlUGlwZSxcbl07XG5cbmNvbnN0IGxvZyA9IExvZ2dpbmcuZm9yKFwiZm9yLWFuZ3VsYXJcIik7XG5leHBvcnQgZnVuY3Rpb24gZ2V0TG9nZ2VyKGluc3RhbmNlOiBzdHJpbmcgfCBGdW5jdGlvbkxpa2UgfCB1bmtub3duKTogTG9nZ2VyIHtcbiAgcmV0dXJuIGxvZy5mb3IoaW5zdGFuY2UgYXMgc3RyaW5nIHwgRnVuY3Rpb25MaWtlKTtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gTWFpbiBBbmd1bGFyIG1vZHVsZSBmb3IgdGhlIERlY2FmIGZyYW1ld29ya1xuICogQHN1bW1hcnkgVGhlIEZvckFuZ3VsYXJNb2R1bGUgcHJvdmlkZXMgdGhlIGNvcmUgZnVuY3Rpb25hbGl0eSBmb3IgaW50ZWdyYXRpbmcgRGVjYWYgd2l0aCBBbmd1bGFyIGFwcGxpY2F0aW9ucy5cbiAqIEl0IGltcG9ydHMgYW5kIGV4cG9ydHMgY29tbW9uIEFuZ3VsYXIgYW5kIElvbmljIGNvbXBvbmVudHMgYW5kIG1vZHVsZXMgbmVlZGVkIGZvciBEZWNhZiBhcHBsaWNhdGlvbnMsXG4gKiBpbmNsdWRpbmcgZm9ybSBoYW5kbGluZywgdHJhbnNsYXRpb24gc3VwcG9ydCwgYW5kIElvbmljIFVJIGNvbXBvbmVudHMuIFRoaXMgbW9kdWxlIGNhbiBiZSBpbXBvcnRlZFxuICogZGlyZWN0bHkgb3IgdmlhIHRoZSBmb3JSb290KCkgbWV0aG9kIGZvciBwcm9wZXIgaW5pdGlhbGl6YXRpb24gaW4gdGhlIGFwcGxpY2F0aW9uJ3Mgcm9vdCBtb2R1bGUuXG4gKlxuICogQGNsYXNzIEZvckFuZ3VsYXJNb2R1bGVcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBJbiB5b3VyIGFwcCBtb2R1bGU6XG4gKiBATmdNb2R1bGUoe1xuICogICBpbXBvcnRzOiBbXG4gKiAgICAgRm9yQW5ndWxhck1vZHVsZS5mb3JSb290KCksXG4gKiAgICAgLy8gb3RoZXIgaW1wb3J0c1xuICogICBdLFxuICogICAvLyAuLi5cbiAqIH0pXG4gKiBleHBvcnQgY2xhc3MgQXBwTW9kdWxlIHt9XG4gKiBgYGBcbiAqL1xuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogQ29tcG9uZW50c0FuZE1vZHVsZXMsXG4gIGRlY2xhcmF0aW9uczogW10sXG4gIGV4cG9ydHM6IENvbXBvbmVudHNBbmRNb2R1bGVzLFxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgTk9fRVJST1JTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIEZvckFuZ3VsYXJNb2R1bGUge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgYSBtb2R1bGUgd2l0aCBwcm92aWRlcnMgZm9yIHJvb3QgbW9kdWxlIGltcG9ydFxuICAgKiBAc3VtbWFyeSBUaGlzIHN0YXRpYyBtZXRob2QgcHJvdmlkZXMgdGhlIHByb3BlciB3YXkgdG8gaW1wb3J0IHRoZSBGb3JBbmd1bGFyTW9kdWxlIGluIHRoZSBhcHBsaWNhdGlvbidzXG4gICAqIHJvb3QgbW9kdWxlLiBJdCByZXR1cm5zIGEgTW9kdWxlV2l0aFByb3ZpZGVycyBvYmplY3QgdGhhdCBpbmNsdWRlcyB0aGUgRm9yQW5ndWxhck1vZHVsZSBpdHNlbGYuXG4gICAqIFVzaW5nIGZvclJvb3QoKSBlbnN1cmVzIHRoYXQgdGhlIG1vZHVsZSBhbmQgaXRzIHByb3ZpZGVycyBhcmUgcHJvcGVybHkgaW5pdGlhbGl6ZWQgYW5kIG9ubHlcbiAgICogaW5zdGFudGlhdGVkIG9uY2UgaW4gdGhlIGFwcGxpY2F0aW9uLlxuICAgKlxuICAgKiBAcmV0dXJuIHtNb2R1bGVXaXRoUHJvdmlkZXJzPEZvckFuZ3VsYXJNb2R1bGU+fSBUaGUgbW9kdWxlIHdpdGggaXRzIHByb3ZpZGVyc1xuICAgKi9cbiAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxGb3JBbmd1bGFyTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBGb3JBbmd1bGFyTW9kdWxlLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==