@kaspernj/api-maker 1.0.2112 → 1.0.2114

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 (39) hide show
  1. package/build/collection-loader.js +6 -5
  2. package/build/collection.d.ts +8 -4
  3. package/build/collection.d.ts.map +1 -1
  4. package/build/collection.js +5 -3
  5. package/build/form.d.ts.map +1 -1
  6. package/build/form.js +5 -3
  7. package/build/router/route.d.ts.map +1 -1
  8. package/build/router/route.js +13 -4
  9. package/build/super-admin/edit-page/edit-attribute-checkbox.js +3 -3
  10. package/build/super-admin/edit-page/edit-attribute-content.js +3 -3
  11. package/build/super-admin/edit-page/edit-attribute-input.js +3 -3
  12. package/build/super-admin/edit-page.js +14 -14
  13. package/build/super-admin/index.js +47 -24
  14. package/build/table/table-settings.d.ts.map +1 -1
  15. package/build/table/table-settings.js +7 -1
  16. package/build/table/table.js +47 -21
  17. package/build/table/widths.d.ts +3 -0
  18. package/build/table/widths.d.ts.map +1 -1
  19. package/build/table/widths.js +33 -18
  20. package/build/use-can-can.d.ts.map +1 -1
  21. package/build/use-can-can.js +18 -2
  22. package/build/use-collection.d.ts +33 -30
  23. package/build/use-collection.d.ts.map +1 -1
  24. package/build/use-collection.js +45 -23
  25. package/build/use-current-user-context.d.ts.map +1 -1
  26. package/build/use-current-user-context.js +13 -4
  27. package/build/use-input.js +2 -2
  28. package/build/use-model-event.js +2 -2
  29. package/build/use-model.d.ts.map +1 -1
  30. package/build/use-model.js +24 -12
  31. package/build/use-resize-observer.js +2 -2
  32. package/build/use-router.js +2 -2
  33. package/build/use-shape.d.ts +2 -0
  34. package/build/use-shape.d.ts.map +1 -0
  35. package/build/use-shape.js +2 -0
  36. package/build/use-updated-event.js +2 -2
  37. package/build/use-validation-errors.js +2 -2
  38. package/build/utils/text.js +6 -4
  39. package/package.json +2 -2
@@ -5,7 +5,7 @@ import PropTypes from "prop-types";
5
5
  import propTypesExact from "prop-types-exact";
6
6
  import { shapeComponent } from "set-state-compare/build/shape-component.js";
7
7
  import { useForm } from "../../form";
8
- import { useMemo } from "react";
8
+ import { useEffect, useMemo } from "react";
9
9
  export default memo(shapeComponent(class EditAttributeContent extends BaseComponent {
10
10
  static propTypes = propTypesExact({
11
11
  attribute: PropTypes.object.isRequired,
@@ -21,7 +21,7 @@ export default memo(shapeComponent(class EditAttributeContent extends BaseCompon
21
21
  this.useStates({
22
22
  value: this.initialValue
23
23
  });
24
- useMemo(() => {
24
+ useEffect(() => {
25
25
  if (this.form && this.hasInitialValue) {
26
26
  this.form.setValue(this.p.name, this.initialValue);
27
27
  }
@@ -58,4 +58,4 @@ export default memo(shapeComponent(class EditAttributeContent extends BaseCompon
58
58
  this.tt.form.setValue(this.p.name, newValue);
59
59
  };
60
60
  }));
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1hdHRyaWJ1dGUtY29udGVudC5qcyIsInNvdXJjZVJvb3QiOiIvc3JjLyIsInNvdXJjZXMiOlsic3VwZXItYWRtaW4vZWRpdC1wYWdlL2VkaXQtYXR0cmlidXRlLWNvbnRlbnQuanN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlDQUFpQztBQUNqQyxPQUFPLGFBQWEsTUFBTSxzQkFBc0IsQ0FBQTtBQUNoRCxPQUFPLElBQUksTUFBTSxpQ0FBaUMsQ0FBQTtBQUNsRCxPQUFPLFNBQVMsTUFBTSxZQUFZLENBQUE7QUFDbEMsT0FBTyxjQUFjLE1BQU0sa0JBQWtCLENBQUE7QUFDN0MsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDRDQUE0QyxDQUFBO0FBQ3pFLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxZQUFZLENBQUE7QUFDbEMsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLE9BQU8sQ0FBQTtBQUU3QixlQUFlLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxvQkFBcUIsU0FBUSxhQUFhO0lBQ2pGLE1BQU0sQ0FBQyxTQUFTLEdBQUcsY0FBYyxDQUFDO1FBQ2hDLFNBQVMsRUFBRSxTQUFTLENBQUMsTUFBTSxDQUFDLFVBQVU7UUFDdEMsRUFBRSxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsVUFBVTtRQUMvQixLQUFLLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxVQUFVO1FBQ2xDLElBQUksRUFBRSxTQUFTLENBQUMsTUFBTSxDQUFDLFVBQVU7S0FDbEMsQ0FBQyxDQUFBO0lBRUYsS0FBSztRQUNILElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxFQUFFLENBQUE7UUFDckIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFBO1FBQ2hDLElBQUksQ0FBQyxZQUFZLEdBQUcsUUFBUSxLQUFLLElBQUksSUFBSSxRQUFRLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQTtRQUMvRSxJ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aW1wb3J0cyAqL1xuaW1wb3J0IEJhc2VDb21wb25lbnQgZnJvbSBcIi4uLy4uL2Jhc2UtY29tcG9uZW50XCJcbmltcG9ydCBtZW1vIGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9idWlsZC9tZW1vLmpzXCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IHByb3BUeXBlc0V4YWN0IGZyb20gXCJwcm9wLXR5cGVzLWV4YWN0XCJcbmltcG9ydCB7c2hhcGVDb21wb25lbnR9IGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9idWlsZC9zaGFwZS1jb21wb25lbnQuanNcIlxuaW1wb3J0IHt1c2VGb3JtfSBmcm9tIFwiLi4vLi4vZm9ybVwiXG5pbXBvcnQge3VzZU1lbW99IGZyb20gXCJyZWFjdFwiXG5cbmV4cG9ydCBkZWZhdWx0IG1lbW8oc2hhcGVDb21wb25lbnQoY2xhc3MgRWRpdEF0dHJpYnV0ZUNvbnRlbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHByb3BUeXBlc0V4YWN0KHtcbiAgICBhdHRyaWJ1dGU6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBpZDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIG1vZGVsOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgbmFtZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkXG4gIH0pXG5cbiAgc2V0dXAoKSB7XG4gICAgdGhpcy5mb3JtID0gdXNlRm9ybSgpXG4gICAgY29uc3QgcmF3VmFsdWUgPSB0aGlzLnJhd1ZhbHVlKClcbiAgICB0aGlzLmluaXRpYWxWYWx1ZSA9IHJhd1ZhbHVlID09PSBudWxsIHx8IHJhd1ZhbHVlID09PSB1bmRlZmluZWQgPyBcIlwiIDogcmF3VmFsdWVcbiAgICB0aGlzLmhhc0luaXRpYWxWYWx1ZSA9IHJhd1ZhbHVlICE9PSBudWxsICYmIHJhd1ZhbHVlICE9PSB1bmRlZmluZWRcbiAgICB0aGlzLnVzZVN0YXRlcyh7XG4gICAgICB2YWx1ZTogdGhpcy5pbml0aWFsVmFsdWVcbiAgICB9KVxuXG4gICAgdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAodGhpcy5mb3JtICYmIHRoaXMuaGFzSW5pdGlhbFZhbHVlKSB7XG4gICAgICAgIHRoaXMuZm9ybS5zZXRWYWx1ZSh0aGlzLnAubmFtZSwgdGhpcy5pbml0aWFsVmFsdWUpXG4gICAgICB9XG4gICAgfSwgW10pXG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge2F0dHJpYnV0ZSwgaWQsIG1vZGVsfSA9IHRoaXMucHJvcHNcblxuICAgIGlmICghKGF0dHJpYnV0ZS5hdHRyaWJ1dGUgaW4gbW9kZWwpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7YXR0cmlidXRlLmF0dHJpYnV0ZX0gaXNuJ3Qgc2V0IG9uIHRoZSByZXNvdXJjZSAke21vZGVsLm1vZGVsQ2xhc3NEYXRhKCkubmFtZX1gKVxuICAgIH1cblxuICAgIGNvbnN0IGNvbnRlbnRBcmdzID0gdXNlTWVtbygoKSA9PiAoe1xuICAgICAgZGVmYXVsdFZhbHVlOiB0aGlzLmluaXRpYWxWYWx1ZSxcbiAgICAgIGlucHV0UHJvcHM6IHtcbiAgICAgICAgYXR0cmlidXRlOiBhdHRyaWJ1dGUuYXR0cmlidXRlLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IHRoaXMuaW5pdGlhbFZhbHVlLFxuICAgICAgICBpZCxcbiAgICAgICAgbW9kZWwsXG4gICAgICAgIG5hbWU6IHRoaXMucC5uYW1lXG4gICAgICB9LFxuICAgICAgb25DaGFuZ2VWYWx1ZTogdGhpcy50dC5vbkNoYW5nZVZhbHVlLFxuICAgICAgdmFsdWU6IHRoaXMucy52YWx1ZVxuICAgIH0pLCBbYXR0cmlidXRlLmF0dHJpYnV0ZSwgaWQsIG1vZGVsLCB0aGlzLnAubmFtZSwgdGhpcy5zLnZhbHVlXSlcblxuICAgIHJldHVybiBhdHRyaWJ1dGUuY29udGVudChjb250ZW50QXJncylcbiAgfVxuXG4gIGRlZmF1bHRWYWx1ZSA9ICgpID0+IHRoaXMuaW5pdGlhbFZhbHVlXG5cbiAgcmF3VmFsdWUgPSAoKSA9PiB7XG4gICAgaWYgKCEodGhpcy5wLmF0dHJpYnV0ZS5hdHRyaWJ1dGUgaW4gdGhpcy5wLm1vZGVsKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBhdHRyaWJ1dGUgY2FsbGVkICR7dGhpcy5wLmF0dHJpYnV0ZS5hdHRyaWJ1dGV9IGluIG1vZGVsICR7dGhpcy5wLm1vZGVsLm1vZGVsQ2xhc3NEYXRhKCkubmFtZX1gKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnAubW9kZWxbdGhpcy5wLmF0dHJpYnV0ZS5hdHRyaWJ1dGVdKClcbiAgfVxuXG4gIG9uQ2hhbmdlVmFsdWUgPSAobmV3VmFsdWUpID0+IHtcbiAgICB0aGlzLnNldFN0YXRlKHt2YWx1ZTogbmV3VmFsdWV9KVxuICAgIHRoaXMudHQuZm9ybS5zZXRWYWx1ZSh0aGlzLnAubmFtZSwgbmV3VmFsdWUpXG4gIH1cbn0pKVxuIl19
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1hdHRyaWJ1dGUtY29udGVudC5qcyIsInNvdXJjZVJvb3QiOiIvc3JjLyIsInNvdXJjZXMiOlsic3VwZXItYWRtaW4vZWRpdC1wYWdlL2VkaXQtYXR0cmlidXRlLWNvbnRlbnQuanN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlDQUFpQztBQUNqQyxPQUFPLGFBQWEsTUFBTSxzQkFBc0IsQ0FBQTtBQUNoRCxPQUFPLElBQUksTUFBTSxpQ0FBaUMsQ0FBQTtBQUNsRCxPQUFPLFNBQVMsTUFBTSxZQUFZLENBQUE7QUFDbEMsT0FBTyxjQUFjLE1BQU0sa0JBQWtCLENBQUE7QUFDN0MsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDRDQUE0QyxDQUFBO0FBQ3pFLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxZQUFZLENBQUE7QUFDbEMsT0FBTyxFQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUMsTUFBTSxPQUFPLENBQUE7QUFFeEMsZUFBZSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sb0JBQXFCLFNBQVEsYUFBYTtJQUNqRixNQUFNLENBQUMsU0FBUyxHQUFHLGNBQWMsQ0FBQztRQUNoQyxTQUFTLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxVQUFVO1FBQ3RDLEVBQUUsRUFBRSxTQUFTLENBQUMsTUFBTSxDQUFDLFVBQVU7UUFDL0IsS0FBSyxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsVUFBVTtRQUNsQyxJQUFJLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxVQUFVO0tBQ2xDLENBQUMsQ0FBQTtJQUVGLEtBQUs7UUFDSCxJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sRUFBRSxDQUFBO1FBQ3JCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQTtRQUNoQyxJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsS0FBSyxJQUFJLElBQUksUUFBUSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENB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YWJsZSBzb3J0LWltcG9ydHMgKi9cbmltcG9ydCBCYXNlQ29tcG9uZW50IGZyb20gXCIuLi8uLi9iYXNlLWNvbXBvbmVudFwiXG5pbXBvcnQgbWVtbyBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvYnVpbGQvbWVtby5qc1wiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBwcm9wVHlwZXNFeGFjdCBmcm9tIFwicHJvcC10eXBlcy1leGFjdFwiXG5pbXBvcnQge3NoYXBlQ29tcG9uZW50fSBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvYnVpbGQvc2hhcGUtY29tcG9uZW50LmpzXCJcbmltcG9ydCB7dXNlRm9ybX0gZnJvbSBcIi4uLy4uL2Zvcm1cIlxuaW1wb3J0IHt1c2VFZmZlY3QsIHVzZU1lbW99IGZyb20gXCJyZWFjdFwiXG5cbmV4cG9ydCBkZWZhdWx0IG1lbW8oc2hhcGVDb21wb25lbnQoY2xhc3MgRWRpdEF0dHJpYnV0ZUNvbnRlbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHByb3BUeXBlc0V4YWN0KHtcbiAgICBhdHRyaWJ1dGU6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBpZDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIG1vZGVsOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgbmFtZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkXG4gIH0pXG5cbiAgc2V0dXAoKSB7XG4gICAgdGhpcy5mb3JtID0gdXNlRm9ybSgpXG4gICAgY29uc3QgcmF3VmFsdWUgPSB0aGlzLnJhd1ZhbHVlKClcbiAgICB0aGlzLmluaXRpYWxWYWx1ZSA9IHJhd1ZhbHVlID09PSBudWxsIHx8IHJhd1ZhbHVlID09PSB1bmRlZmluZWQgPyBcIlwiIDogcmF3VmFsdWVcbiAgICB0aGlzLmhhc0luaXRpYWxWYWx1ZSA9IHJhd1ZhbHVlICE9PSBudWxsICYmIHJhd1ZhbHVlICE9PSB1bmRlZmluZWRcbiAgICB0aGlzLnVzZVN0YXRlcyh7XG4gICAgICB2YWx1ZTogdGhpcy5pbml0aWFsVmFsdWVcbiAgICB9KVxuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmZvcm0gJiYgdGhpcy5oYXNJbml0aWFsVmFsdWUpIHtcbiAgICAgICAgdGhpcy5mb3JtLnNldFZhbHVlKHRoaXMucC5uYW1lLCB0aGlzLmluaXRpYWxWYWx1ZSlcbiAgICAgIH1cbiAgICB9LCBbXSlcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7YXR0cmlidXRlLCBpZCwgbW9kZWx9ID0gdGhpcy5wcm9wc1xuXG4gICAgaWYgKCEoYXR0cmlidXRlLmF0dHJpYnV0ZSBpbiBtb2RlbCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgJHthdHRyaWJ1dGUuYXR0cmlidXRlfSBpc24ndCBzZXQgb24gdGhlIHJlc291cmNlICR7bW9kZWwubW9kZWxDbGFzc0RhdGEoKS5uYW1lfWApXG4gICAgfVxuXG4gICAgY29uc3QgY29udGVudEFyZ3MgPSB1c2VNZW1vKCgpID0+ICh7XG4gICAgICBkZWZhdWx0VmFsdWU6IHRoaXMuaW5pdGlhbFZhbHVlLFxuICAgICAgaW5wdXRQcm9wczoge1xuICAgICAgICBhdHRyaWJ1dGU6IGF0dHJpYnV0ZS5hdHRyaWJ1dGUsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogdGhpcy5pbml0aWFsVmFsdWUsXG4gICAgICAgIGlkLFxuICAgICAgICBtb2RlbCxcbiAgICAgICAgbmFtZTogdGhpcy5wLm5hbWVcbiAgICAgIH0sXG4gICAgICBvbkNoYW5nZVZhbHVlOiB0aGlzLnR0Lm9uQ2hhbmdlVmFsdWUsXG4gICAgICB2YWx1ZTogdGhpcy5zLnZhbHVlXG4gICAgfSksIFthdHRyaWJ1dGUuYXR0cmlidXRlLCBpZCwgbW9kZWwsIHRoaXMucC5uYW1lLCB0aGlzLnMudmFsdWVdKVxuXG4gICAgcmV0dXJuIGF0dHJpYnV0ZS5jb250ZW50KGNvbnRlbnRBcmdzKVxuICB9XG5cbiAgZGVmYXVsdFZhbHVlID0gKCkgPT4gdGhpcy5pbml0aWFsVmFsdWVcblxuICByYXdWYWx1ZSA9ICgpID0+IHtcbiAgICBpZiAoISh0aGlzLnAuYXR0cmlidXRlLmF0dHJpYnV0ZSBpbiB0aGlzLnAubW9kZWwpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIGF0dHJpYnV0ZSBjYWxsZWQgJHt0aGlzLnAuYXR0cmlidXRlLmF0dHJpYnV0ZX0gaW4gbW9kZWwgJHt0aGlzLnAubW9kZWwubW9kZWxDbGFzc0RhdGEoKS5uYW1lfWApXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMucC5tb2RlbFt0aGlzLnAuYXR0cmlidXRlLmF0dHJpYnV0ZV0oKVxuICB9XG5cbiAgb25DaGFuZ2VWYWx1ZSA9IChuZXdWYWx1ZSkgPT4ge1xuICAgIHRoaXMuc2V0U3RhdGUoe3ZhbHVlOiBuZXdWYWx1ZX0pXG4gICAgdGhpcy50dC5mb3JtLnNldFZhbHVlKHRoaXMucC5uYW1lLCBuZXdWYWx1ZSlcbiAgfVxufSkpXG4iXX0=
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  /* eslint-disable sort-imports */
3
- import React, { useMemo } from "react";
3
+ import React, { useEffect } from "react";
4
4
  import { TextInput, View } from "react-native";
5
5
  import BaseComponent from "../../base-component";
6
6
  import memo from "set-state-compare/build/memo.js";
@@ -21,7 +21,7 @@ export default memo(shapeComponent(class EditAttributeInput extends BaseComponen
21
21
  const { name } = this.p;
22
22
  this.form = useForm();
23
23
  this.initialValue = this.defaultValue();
24
- useMemo(() => {
24
+ useEffect(() => {
25
25
  if (this.form) {
26
26
  this.form.setValue(name, this.initialValue);
27
27
  }
@@ -53,4 +53,4 @@ export default memo(shapeComponent(class EditAttributeInput extends BaseComponen
53
53
  }
54
54
  };
55
55
  }));
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1hdHRyaWJ1dGUtaW5wdXQuanMiLCJzb3VyY2VSb290IjoiL3NyYy8iLCJzb3VyY2VzIjpbInN1cGVyLWFkbWluL2VkaXQtcGFnZS9lZGl0LWF0dHJpYnV0ZS1pbnB1dC5qc3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLGlDQUFpQztBQUNqQyxPQUFPLEtBQUssRUFBRSxFQUFDLE9BQU8sRUFBQyxNQUFNLE9BQU8sQ0FBQTtBQUNwQyxPQUFPLEVBQUMsU0FBUyxFQUFFLElBQUksRUFBQyxNQUFNLGNBQWMsQ0FBQTtBQUM1QyxPQUFPLGFBQWEsTUFBTSxzQkFBc0IsQ0FBQTtBQUNoRCxPQUFPLElBQUksTUFBTSxpQ0FBaUMsQ0FBQTtBQUNsRCxPQUFPLFNBQVMsTUFBTSxZQUFZLENBQUE7QUFDbEMsT0FBTyxjQUFjLE1BQU0sa0JBQWtCLENBQUE7QUFDN0MsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDRDQUE0QyxDQUFBO0FBQ3pFLE9BQU8sSUFBSSxNQUFNLGtCQUFrQixDQUFBO0FBQ25DLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxZQUFZLENBQUE7QUFFbEMsZUFBZSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sa0JBQW1CLFNBQVEsYUFBYTtJQUMvRSxNQUFNLENBQUMsU0FBUyxHQUFHLGNBQWMsQ0FBQztRQUNoQyxhQUFhLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxVQUFVO1FBQzFDLEVBQUUsRUFBRSxTQUFTLENBQUMsTUFBTSxDQUFDLFVBQVU7UUFDL0IsS0FBSyxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsVUFBVTtRQUNsQyxLQUFLLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxVQUFVO1FBQ2xDLElBQUksRUFBRSxTQUFTLENBQUMsTUFBTSxDQUFDLFVBQVU7S0FDbEMsQ0FBQyxDQUFBO0lBRUYsS0FBSztRQUNILE1BQU0sRUFBQyxJQUFJLEVBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFBO1FBRXJCLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxFQUFFLENBQUE7UUFDckIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUE7UUFFdkMsT0FBTyxDQUFDLEdBQUcsRUFBRTtZQUNYLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUE7WUFDN0MsQ0FBQztRQUNILENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQTtJQUNSLENBQUM7SUFFRCxZQUFZLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQTtJQUUvRCxNQUFNO1FBQ0osTUFBTSxFQUFDLGFBQWEsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFBO1FBRXRELElBQUksQ0FBQyxDQUFDLGFBQWEsSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzlCLE1BQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxhQUFhLDhCQUE4QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQTtRQUM5RixDQUFDO1FBRUQsT0FBTyxDQUNMLE1BQUMsSUFBSSxJQUFDLE1BQU0sRUFBQyxzREFBc0QsYUFDakUsS0FBQyxJQUFJLGNBQ0YsS0FBSyxHQUNELEVBQ1AsS0FBQyxJQUFJLGNBQ0gsS0FBQyxTQUFTLElBQ1IsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEVBQUU7NEJBQ3RDLFNBQVMsRUFBRSxhQUFhOzRCQUN4QixFQUFFOzRCQUNGLElBQUk7eUJBQ0wsRUFBRSxDQUFDLGFBQWEsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFDN0IsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQy9CLFlBQVksRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksRUFDbEMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUU7NEJBQ2xDLFVBQVUsRUFBRSxDQUFDOzRCQUNiLFlBQVksRUFBRSxFQUFFOzRCQUNoQixhQUFhLEVBQUUsQ0FBQzs0QkFDaEIsV0FBVyxFQUFFLEVBQUU7NEJBQ2YsWUFBWSxFQUFFLENBQUM7NEJBQ2YsZUFBZSxFQUFFLE1BQU07NEJBQ3ZCLE1BQU0sRUFBRSxtQkFBbUI7eUJBQzVCLENBQUMsR0FDRixHQUNHLElBQ0YsQ0FDUixDQUFBO0lBQ0gsQ0FBQztJQUVELFlBQVksR0FBRyxDQUFDLFFBQVEsRUFBRSxFQUFFO1FBQzFCLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUE7UUFDM0MsQ0FBQztJQUNILENBQUMsQ0FBQTtDQUNGLENBQUMsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgc29ydC1pbXBvcnRzICovXG5pbXBvcnQgUmVhY3QsIHt1c2VNZW1vfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHtUZXh0SW5wdXQsIFZpZXd9IGZyb20gXCJyZWFjdC1uYXRpdmVcIlxuaW1wb3J0IEJhc2VDb21wb25lbnQgZnJvbSBcIi4uLy4uL2Jhc2UtY29tcG9uZW50XCJcbmltcG9ydCBtZW1vIGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9idWlsZC9tZW1vLmpzXCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IHByb3BUeXBlc0V4YWN0IGZyb20gXCJwcm9wLXR5cGVzLWV4YWN0XCJcbmltcG9ydCB7c2hhcGVDb21wb25lbnR9IGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9idWlsZC9zaGFwZS1jb21wb25lbnQuanNcIlxuaW1wb3J0IFRleHQgZnJvbSBcIi4uLy4uL3V0aWxzL3RleHRcIlxuaW1wb3J0IHt1c2VGb3JtfSBmcm9tIFwiLi4vLi4vZm9ybVwiXG5cbmV4cG9ydCBkZWZhdWx0IG1lbW8oc2hhcGVDb21wb25lbnQoY2xhc3MgRWRpdEF0dHJpYnV0ZUlucHV0IGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSBwcm9wVHlwZXNFeGFjdCh7XG4gICAgYXR0cmlidXRlTmFtZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIGlkOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgbGFiZWw6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICBtb2RlbDogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIG5hbWU6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZFxuICB9KVxuXG4gIHNldHVwKCkge1xuICAgIGNvbnN0IHtuYW1lfSA9IHRoaXMucFxuXG4gICAgdGhpcy5mb3JtID0gdXNlRm9ybSgpXG4gICAgdGhpcy5pbml0aWFsVmFsdWUgPSB0aGlzLmRlZmF1bHRWYWx1ZSgpXG5cbiAgICB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmZvcm0pIHtcbiAgICAgICAgdGhpcy5mb3JtLnNldFZhbHVlKG5hbWUsIHRoaXMuaW5pdGlhbFZhbHVlKVxuICAgICAgfVxuICAgIH0sIFtdKVxuICB9XG5cbiAgZGVmYXVsdFZhbHVlID0gKCkgPT4gdGhpcy5wLm1vZGVsW3RoaXMucC5hdHRyaWJ1dGVOYW1lXSgpIHx8IFwiXCJcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge2F0dHJpYnV0ZU5hbWUsIGlkLCBsYWJlbCwgbW9kZWwsIG5hbWV9ID0gdGhpcy5wXG5cbiAgICBpZiAoIShhdHRyaWJ1dGVOYW1lIGluIG1vZGVsKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGAke2F0dHJpYnV0ZU5hbWV9IGlzbid0IHNldCBvbiB0aGUgcmVzb3VyY2UgJHttb2RlbC5tb2RlbENsYXNzRGF0YSgpLm5hbWV9YClcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFZpZXcgdGVzdElEPVwiYXBpLW1ha2VyL3N1cGVyLWFkbWluL2VkaXQtcGFnZS9lZGl0LWF0dHJpYnV0ZS1pbnB1dFwiPlxuICAgICAgICA8VGV4dD5cbiAgICAgICAgICB7bGFiZWx9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgICAgPFZpZXc+XG4gICAgICAgICAgPFRleHRJbnB1dFxuICAgICAgICAgICAgZGF0YVNldD17dGhpcy5jYWNoZShcInRleHRJbnB1dERhdGFTZXRcIiwge1xuICAgICAgICAgICAgICBhdHRyaWJ1dGU6IGF0dHJpYnV0ZU5hbWUsXG4gICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICBuYW1lXG4gICAgICAgICAgICB9LCBbYXR0cmlidXRlTmFtZSwgaWQsIG5hbWVdKX1cbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZT17dGhpcy5pbml0aWFsVmFsdWV9XG4gICAgICAgICAgICBvbkNoYW5nZVRleHQ9e3RoaXMudHQub25DaGFuZ2VUZXh0fVxuICAgICAgICAgICAgc3R5bGU9e3RoaXMuY2FjaGUoXCJ0ZXh0SW5wdXRTdHlsZVwiLCB7XG4gICAgICAgICAgICAgIHBhZGRpbmdUb3A6IDksXG4gICAgICAgICAgICAgIHBhZGRpbmdSaWdodDogMTMsXG4gICAgICAgICAgICAgIHBhZGRpbmdCb3R0b206IDksXG4gICAgICAgICAgICAgIHBhZGRpbmdMZWZ0OiAxMyxcbiAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiA1LFxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IFwiI2ZmZlwiLFxuICAgICAgICAgICAgICBib3JkZXI6IFwiMXB4IHNvbGlkICNjZWNlY2VcIlxuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9WaWV3PlxuICAgICAgPC9WaWV3PlxuICAgIClcbiAgfVxuXG4gIG9uQ2hhbmdlVGV4dCA9IChuZXdWYWx1ZSkgPT4ge1xuICAgIGlmICh0aGlzLmZvcm0pIHtcbiAgICAgIHRoaXMuZm9ybS5zZXRWYWx1ZSh0aGlzLnAubmFtZSwgbmV3VmFsdWUpXG4gICAgfVxuICB9XG59KSlcbiJdfQ==
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1hdHRyaWJ1dGUtaW5wdXQuanMiLCJzb3VyY2VSb290IjoiL3NyYy8iLCJzb3VyY2VzIjpbInN1cGVyLWFkbWluL2VkaXQtcGFnZS9lZGl0LWF0dHJpYnV0ZS1pbnB1dC5qc3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLGlDQUFpQztBQUNqQyxPQUFPLEtBQUssRUFBRSxFQUFDLFNBQVMsRUFBQyxNQUFNLE9BQU8sQ0FBQTtBQUN0QyxPQUFPLEVBQUMsU0FBUyxFQUFFLElBQUksRUFBQyxNQUFNLGNBQWMsQ0FBQTtBQUM1QyxPQUFPLGFBQWEsTUFBTSxzQkFBc0IsQ0FBQTtBQUNoRCxPQUFPLElBQUksTUFBTSxpQ0FBaUMsQ0FBQTtBQUNsRCxPQUFPLFNBQVMsTUFBTSxZQUFZLENBQUE7QUFDbEMsT0FBTyxjQUFjLE1BQU0sa0JBQWtCLENBQUE7QUFDN0MsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDRDQUE0QyxDQUFBO0FBQ3pFLE9BQU8sSUFBSSxNQUFNLGtCQUFrQixDQUFBO0FBQ25DLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxZQUFZLENBQUE7QUFFbEMsZUFBZSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sa0JBQW1CLFNBQVEsYUFBYTtJQUMvRSxNQUFNLENBQUMsU0FBUyxHQUFHLGNBQWMsQ0FBQztRQUNoQyxhQUFhLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxVQUFVO1FBQzFDLEVBQUUsRUFBRSxTQUFTLENBQUMsTUFBTSxDQUFDLFVBQVU7UUFDL0IsS0FBSyxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsVUFBVTtRQUNsQyxLQUFLLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxVQUFVO1FBQ2xDLElBQUksRUFBRSxTQUFTLENBQUMsTUFBTSxDQUFDLFVBQVU7S0FDbEMsQ0FBQyxDQUFBO0lBRUYsS0FBSztRQUNILE1BQU0sRUFBQyxJQUFJLEVBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFBO1FBRXJCLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxFQUFFLENBQUE7UUFDckIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUE7UUFFdkMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNiLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUE7WUFDN0MsQ0FBQztRQUNILENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQTtJQUNSLENBQUM7SUFFRCxZQUFZLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQTtJQUUvRCxNQUFNO1FBQ0osTUFBTSxFQUFDLGFBQWEsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFBO1FBRXRELElBQUksQ0FBQyxDQUFDLGFBQWEsSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzlCLE1BQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxhQUFhLDhCQUE4QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQTtRQUM5RixDQUFDO1FBRUQsT0FBTyxDQUNMLE1BQUMsSUFBSSxJQUFDLE1BQU0sRUFBQyxzREFBc0QsYUFDakUsS0FBQyxJQUFJLGNBQ0YsS0FBSyxHQUNELEVBQ1AsS0FBQyxJQUFJLGNBQ0gsS0FBQyxTQUFTLElBQ1IsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEVBQUU7NEJBQ3RDLFNBQVMsRUFBRSxhQUFhOzRCQUN4QixFQUFFOzRCQUNGLElBQUk7eUJBQ0wsRUFBRSxDQUFDLGFBQWEsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFDN0IsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQy9CLFlBQVksRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksRUFDbEMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUU7NEJBQ2xDLFVBQVUsRUFBRSxDQUFDOzRCQUNiLFlBQVksRUFBRSxFQUFFOzRCQUNoQixhQUFhLEVBQUUsQ0FBQzs0QkFDaEIsV0FBVyxFQUFFLEVBQUU7NEJBQ2YsWUFBWSxFQUFFLENBQUM7NEJBQ2YsZUFBZSxFQUFFLE1BQU07NEJBQ3ZCLE1BQU0sRUFBRSxtQkFBbUI7eUJBQzVCLENBQUMsR0FDRixHQUNHLElBQ0YsQ0FDUixDQUFBO0lBQ0gsQ0FBQztJQUVELFlBQVksR0FBRyxDQUFDLFFBQVEsRUFBRSxFQUFFO1FBQzFCLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUE7UUFDM0MsQ0FBQztJQUNILENBQUMsQ0FBQTtDQUNGLENBQUMsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgc29ydC1pbXBvcnRzICovXG5pbXBvcnQgUmVhY3QsIHt1c2VFZmZlY3R9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQge1RleHRJbnB1dCwgVmlld30gZnJvbSBcInJlYWN0LW5hdGl2ZVwiXG5pbXBvcnQgQmFzZUNvbXBvbmVudCBmcm9tIFwiLi4vLi4vYmFzZS1jb21wb25lbnRcIlxuaW1wb3J0IG1lbW8gZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL2J1aWxkL21lbW8uanNcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgcHJvcFR5cGVzRXhhY3QgZnJvbSBcInByb3AtdHlwZXMtZXhhY3RcIlxuaW1wb3J0IHtzaGFwZUNvbXBvbmVudH0gZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL2J1aWxkL3NoYXBlLWNvbXBvbmVudC5qc1wiXG5pbXBvcnQgVGV4dCBmcm9tIFwiLi4vLi4vdXRpbHMvdGV4dFwiXG5pbXBvcnQge3VzZUZvcm19IGZyb20gXCIuLi8uLi9mb3JtXCJcblxuZXhwb3J0IGRlZmF1bHQgbWVtbyhzaGFwZUNvbXBvbmVudChjbGFzcyBFZGl0QXR0cmlidXRlSW5wdXQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHByb3BUeXBlc0V4YWN0KHtcbiAgICBhdHRyaWJ1dGVOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgaWQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICBsYWJlbDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIG1vZGVsOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgbmFtZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkXG4gIH0pXG5cbiAgc2V0dXAoKSB7XG4gICAgY29uc3Qge25hbWV9ID0gdGhpcy5wXG5cbiAgICB0aGlzLmZvcm0gPSB1c2VGb3JtKClcbiAgICB0aGlzLmluaXRpYWxWYWx1ZSA9IHRoaXMuZGVmYXVsdFZhbHVlKClcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5mb3JtKSB7XG4gICAgICAgIHRoaXMuZm9ybS5zZXRWYWx1ZShuYW1lLCB0aGlzLmluaXRpYWxWYWx1ZSlcbiAgICAgIH1cbiAgICB9LCBbXSlcbiAgfVxuXG4gIGRlZmF1bHRWYWx1ZSA9ICgpID0+IHRoaXMucC5tb2RlbFt0aGlzLnAuYXR0cmlidXRlTmFtZV0oKSB8fCBcIlwiXG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHthdHRyaWJ1dGVOYW1lLCBpZCwgbGFiZWwsIG1vZGVsLCBuYW1lfSA9IHRoaXMucFxuXG4gICAgaWYgKCEoYXR0cmlidXRlTmFtZSBpbiBtb2RlbCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgJHthdHRyaWJ1dGVOYW1lfSBpc24ndCBzZXQgb24gdGhlIHJlc291cmNlICR7bW9kZWwubW9kZWxDbGFzc0RhdGEoKS5uYW1lfWApXG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxWaWV3IHRlc3RJRD1cImFwaS1tYWtlci9zdXBlci1hZG1pbi9lZGl0LXBhZ2UvZWRpdC1hdHRyaWJ1dGUtaW5wdXRcIj5cbiAgICAgICAgPFRleHQ+XG4gICAgICAgICAge2xhYmVsfVxuICAgICAgICA8L1RleHQ+XG4gICAgICAgIDxWaWV3PlxuICAgICAgICAgIDxUZXh0SW5wdXRcbiAgICAgICAgICAgIGRhdGFTZXQ9e3RoaXMuY2FjaGUoXCJ0ZXh0SW5wdXREYXRhU2V0XCIsIHtcbiAgICAgICAgICAgICAgYXR0cmlidXRlOiBhdHRyaWJ1dGVOYW1lLFxuICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgbmFtZVxuICAgICAgICAgICAgfSwgW2F0dHJpYnV0ZU5hbWUsIGlkLCBuYW1lXSl9XG4gICAgICAgICAgICBkZWZhdWx0VmFsdWU9e3RoaXMuaW5pdGlhbFZhbHVlfVxuICAgICAgICAgICAgb25DaGFuZ2VUZXh0PXt0aGlzLnR0Lm9uQ2hhbmdlVGV4dH1cbiAgICAgICAgICAgIHN0eWxlPXt0aGlzLmNhY2hlKFwidGV4dElucHV0U3R5bGVcIiwge1xuICAgICAgICAgICAgICBwYWRkaW5nVG9wOiA5LFxuICAgICAgICAgICAgICBwYWRkaW5nUmlnaHQ6IDEzLFxuICAgICAgICAgICAgICBwYWRkaW5nQm90dG9tOiA5LFxuICAgICAgICAgICAgICBwYWRkaW5nTGVmdDogMTMsXG4gICAgICAgICAgICAgIGJvcmRlclJhZGl1czogNSxcbiAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBcIiNmZmZcIixcbiAgICAgICAgICAgICAgYm9yZGVyOiBcIjFweCBzb2xpZCAjY2VjZWNlXCJcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvVmlldz5cbiAgICAgIDwvVmlldz5cbiAgICApXG4gIH1cblxuICBvbkNoYW5nZVRleHQgPSAobmV3VmFsdWUpID0+IHtcbiAgICBpZiAodGhpcy5mb3JtKSB7XG4gICAgICB0aGlzLmZvcm0uc2V0VmFsdWUodGhpcy5wLm5hbWUsIG5ld1ZhbHVlKVxuICAgIH1cbiAgfVxufSkpXG4iXX0=
@@ -21,18 +21,17 @@ import memo from "set-state-compare/build/memo.js";
21
21
  import propTypesExact from "prop-types-exact";
22
22
  import useCurrentUser from "../use-current-user.js";
23
23
  import useModel from "../use-model.js";
24
- import useQueryParams from "on-location-changed/build/use-query-params.js";
25
24
  export default memo(shapeComponent(class ApiMakerSuperAdminEditPage extends BaseComponent {
26
25
  static propTypes = propTypesExact({
27
- modelClass: PropTypes.func.isRequired
26
+ modelClass: PropTypes.func.isRequired,
27
+ modelId: PropTypes.oneOfType([PropTypes.number, PropTypes.string])
28
28
  });
29
29
  setup() {
30
- const { modelClass } = this.p;
30
+ const { modelClass, modelId } = this.p;
31
31
  const modelClassName = modelClass.modelClassData().name;
32
32
  const availableLocales = Locales.availableLocales();
33
33
  this.configReader = ConfigReader.forModel(modelClass);
34
34
  const currentUser = useCurrentUser();
35
- const queryParams = useQueryParams();
36
35
  const selectedModelAttributes = ["id"];
37
36
  const selectedAttributes = {};
38
37
  this.attributes = this.configReader.modelConfig?.edit?.attributes;
@@ -51,26 +50,26 @@ export default memo(shapeComponent(class ApiMakerSuperAdminEditPage extends Base
51
50
  }
52
51
  selectedAttributes[modelClassName] = selectedModelAttributes;
53
52
  const useModelResult = useModel(modelClass, {
54
- cacheArgs: [currentUser?.id()],
55
- loadByQueryParam: (props) => props.queryParams.model_id,
56
- newIfNoId: this.configReader.modelConfig?.edit?.newIfNoId || true,
53
+ cacheArgs: [currentUser?.primaryKey(), modelId],
54
+ loadByQueryParam: () => modelId,
55
+ newIfNoId: this.configReader.modelConfig?.edit?.newIfNoId ?? true,
57
56
  preload: this.configReader.modelConfig?.edit?.preload,
58
57
  select: selectedAttributes
59
58
  });
60
59
  const modelIdVarName = `${inflection.camelize(modelClass.modelClassData().name, true)}Id`;
61
60
  const modelVarName = inflection.camelize(modelClass.modelClassData().name, true);
62
61
  this.model = digg(useModelResult, modelVarName);
63
- this.modelId = queryParams.model_id;
62
+ this.modelId = modelId;
64
63
  this.modelArgs = {};
65
64
  this.modelArgs[modelIdVarName] = this.modelId;
66
- this.formRef = useRef();
67
- this.useStates({ form: null });
65
+ this.formRef = useRef(null);
66
+ this.formObjectRef = useRef(null);
68
67
  }
69
68
  render() {
70
69
  const { attributes, model } = this.tt;
71
70
  const { modelClass } = this.p;
72
- const extraContent = this.configReader.modelConfig?.edit?.extraContentconst;
73
- return (_jsx(View, { testID: "super-admin--edit-page", children: _jsxs(Form, { formRef: this.formRef, setForm: this.setStates.form, children: [model && attributes?.map((attribute) => (_jsx(EditAttribute, { attribute: attribute, model: model, modelClass: modelClass }, attribute.attribute))), extraContent && extraContent(modelArgs), _jsx(Pressable, { onPress: this.tt.onSubmit, style: this.cache("pressableStyle", {
71
+ const extraContent = this.configReader.modelConfig?.edit?.extraContent;
72
+ return (_jsx(View, { testID: "super-admin--edit-page", children: _jsxs(Form, { formObjectRef: this.formObjectRef, formRef: this.formRef, children: [model && attributes?.map((attribute) => (_jsx(EditAttribute, { attribute: attribute, model: model, modelClass: modelClass }, attribute.attribute))), extraContent && extraContent(this.modelArgs), _jsx(Pressable, { onPress: this.tt.onSubmit, style: this.cache("pressableStyle", {
74
73
  paddingTop: 18,
75
74
  paddingRight: 24,
76
75
  paddingBottom: 18,
@@ -84,7 +83,8 @@ export default memo(shapeComponent(class ApiMakerSuperAdminEditPage extends Base
84
83
  try {
85
84
  const { model } = this.tt;
86
85
  const formData = new FormData(this.formRef.current);
87
- const formObject = incorporate({}, this.s.form.asObject(), FormDataObjectizer.toObject(formData));
86
+ // Read the uncontrolled form object directly from the stable ref so submit does not depend on a mount-time state sync.
87
+ const formObject = incorporate({}, this.formObjectRef.current?.asObject() || {}, FormDataObjectizer.toObject(formData));
88
88
  model.assignAttributes(formObject);
89
89
  await model.save();
90
90
  Params.changeParams({ mode: undefined, model_id: model.id() });
@@ -94,4 +94,4 @@ export default memo(shapeComponent(class ApiMakerSuperAdminEditPage extends Base
94
94
  }
95
95
  };
96
96
  }));
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1wYWdlLmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJzdXBlci1hZG1pbi9lZGl0LXBhZ2UuanN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxnSEFBZ0g7QUFDaEgsT0FBTyxLQUFLLFVBQVUsTUFBTSxZQUFZLENBQUE7QUFDeEMsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0scUJBQXFCLENBQUE7QUFDdEQsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLFNBQVMsQ0FBQTtBQUM1QixPQUFPLGtCQUFrQixNQUFNLHNCQUFzQixDQUFBO0FBQ3JELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxjQUFjLENBQUE7QUFDeEMsT0FBTyxFQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUMsTUFBTSxjQUFjLENBQUE7QUFDNUMsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLFdBQVcsQ0FBQTtBQUM5QixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sNENBQTRDLENBQUE7QUFDekUsT0FBTyxhQUFhLE1BQU0sbUJBQW1CLENBQUE7QUFDN0MsT0FBTyxZQUFZLE1BQU0saUJBQWlCLENBQUE7QUFDMUMsT0FBTyxhQUFhLE1BQU0sNEJBQTRCLENBQUE7QUFDdEQsbUJBQW1CO0FBQ25CLE9BQU8sT0FBTyxNQUFNLG1CQUFtQixDQUFBLENBQUMsMkNBQTJDO0FBQ25GLE9BQU8sTUFBTSxNQUFNLGNBQWMsQ0FBQTtBQUNqQyxPQUFPLFNBQVMsTUFBTSxZQUFZLENBQUE7QUFDbEMsT0FBTyxLQUFLLEVBQUUsRUFBQyxNQUFNLEVBQUMsTUFBTSxPQUFPLENBQUE7QUFDbkMsT0FBTyxJQUFJLE1BQU0sZUFBZSxDQUFBO0FBQ2hDLE9BQU8sSUFBSSxNQUFNLGlDQUFpQyxDQUFBO0FBQ2xELE9BQU8sY0FBYyxNQUFNLGtCQUFrQixDQUFBO0FBQzdDLE9BQU8sY0FBYyxNQUFNLHdCQUF3QixDQUFBO0FBQ25ELE9BQU8sUUFBUSxNQUFNLGlCQUFpQixDQUFBO0FB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RTs0QkFDZixZQUFZLEVBQUUsRUFBRTs0QkFDaEIsZUFBZSxFQUFFLFNBQVM7NEJBQzFCLFNBQVMsRUFBRSxFQUFFO3lCQUNkLENBQUMsRUFDRixNQUFNLEVBQUMsZUFBZSxZQUV0QixLQUFDLElBQUksSUFBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxFQUFDLEtBQUssRUFBRSxNQUFNLEVBQUMsQ0FBQyx1QkFBZSxHQUNoRSxJQUNQLEdBQ0YsQ0FDUixDQUFBO0lBQ0gsQ0FBQztJQUVELFFBQVEsR0FBRyxLQUFLLElBQUksRUFBRTtRQUNwQixJQUFJLENBQUM7WUFDSCxNQUFNLEVBQUMsS0FBSyxFQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQTtZQUN2QixNQUFNLFFBQVEsR0FBRyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFBO1lBQ25ELE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsa0JBQWtCLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUE7WUFFakcsS0FBSyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFBO1lBQ2xDLE1BQU0sS0FBSyxDQUFDLElBQUksRUFBRSxDQUFBO1lBQ2xCLE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLEVBQUMsQ0FBQyxDQUFBO1FBQzlELENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2Ysa0JBQWtCLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3pDLENBQUM7SUFDSCxDQUFDLENBQUE7Q0FDRixDQUFDLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L2pzeC1tYXgtZGVwdGgsIHJlYWN0L2pzeC1uby1saXRlcmFscywgcmVhY3QvanN4LW9uZS1leHByZXNzaW9uLXBlci1saW5lLCBzb3J0LWltcG9ydHMgKi9cbmltcG9ydCAqIGFzIGluZmxlY3Rpb24gZnJvbSBcImluZmxlY3Rpb25cIlxuaW1wb3J0IHtGbGFzaE5vdGlmaWNhdGlvbnN9IGZyb20gXCJmbGFzaC1ub3RpZmljYXRpb25zXCJcbmltcG9ydCB7Rm9ybX0gZnJvbSBcIi4uL2Zvcm1cIlxuaW1wb3J0IEZvcm1EYXRhT2JqZWN0aXplciBmcm9tIFwiZm9ybS1kYXRhLW9iamVjdGl6ZXJcIlxuaW1wb3J0IHtpbmNvcnBvcmF0ZX0gZnJvbSBcImluY29ycG9yYXRvclwiXG5pbXBvcnQge1ByZXNzYWJsZSwgVmlld30gZnJvbSBcInJlYWN0LW5hdGl2ZVwiXG5pbXBvcnQge2RpZ2d9IGZyb20gXCJkaWdnZXJpemVcIlxuaW1wb3J0IHtzaGFwZUNvbXBvbmVudH0gZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL2J1aWxkL3NoYXBlLWNvbXBvbmVudC5qc1wiXG5pbXBvcnQgQmFzZUNvbXBvbmVudCBmcm9tIFwiLi4vYmFzZS1jb21wb25lbnRcIlxuaW1wb3J0IENvbmZpZ1JlYWRlciBmcm9tIFwiLi9jb25maWctcmVhZGVyXCJcbmltcG9ydCBFZGl0QXR0cmlidXRlIGZyb20gXCIuL2VkaXQtcGFnZS9lZGl0LWF0dHJpYnV0ZVwiXG4vLyBAdHMtZXhwZWN0LWVycm9yXG5pbXBvcnQgTG9jYWxlcyBmcm9tIFwic2hhcmVkL2xvY2FsZXMuanNcIiAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIGltcG9ydC9uby11bnJlc29sdmVkXG5pbXBvcnQgUGFyYW1zIGZyb20gXCIuLi9wYXJhbXMuanNcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgUmVhY3QsIHt1c2VSZWZ9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgVGV4dCBmcm9tIFwiLi4vdXRpbHMvdGV4dFwiXG5pbXBvcnQgbWVtbyBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvYnVpbGQvbWVtby5qc1wiXG5pbXBvcnQgcHJvcFR5cGVzRXhhY3QgZnJvbSBcInByb3AtdHlwZXMtZXhhY3RcIlxuaW1wb3J0IHVzZUN1cnJlbnRVc2VyIGZyb20gXCIuLi91c2UtY3VycmVudC11c2VyLmpzXCJcbmltcG9ydCB1c2VNb2RlbCBmcm9tIFwiLi4vdXNlLW1vZGVsLmpzXCJcbmltcG9ydCB1c2VRdWVyeVBhcmFtcyBmcm9tIFwib24tbG9jYXRpb24tY2hhbmdlZC9idWlsZC91c2UtcXVlcnktcGFyYW1zLmpzXCJcblxuZXhwb3J0IGRlZmF1bHQgbWVtbyhzaGFwZUNvbXBvbmVudChjbGFzcyBBcGlNYWtlclN1cGVyQWRtaW5FZGl0UGFnZSBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0gcHJvcFR5cGVzRXhhY3Qoe1xuICAgIG1vZGVsQ2xhc3M6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWRcbiAgfSlcblxuICBzZXR1cCgpIHtcbiAgICBjb25zdCB7bW9kZWxDbGFzc30gPSB0aGlzLnBcbiAgICBjb25zdCBtb2RlbENsYXNzTmFtZSA9IG1vZGVsQ2xhc3MubW9kZWxDbGFzc0RhdGEoKS5uYW1lXG4gICAgY29uc3QgYXZhaWxhYmxlTG9jYWxlcyA9IExvY2FsZXMuYXZhaWxhYmxlTG9jYWxlcygpXG4gICAgdGhpcy5jb25maWdSZWFkZXIgPSBDb25maWdSZWFkZXIuZm9yTW9kZWwobW9kZWxDbGFzcylcbiAgICBjb25zdCBjdXJyZW50VXNlciA9IHVzZUN1cnJlbnRVc2VyKClcbiAgICBjb25zdCBxdWVyeVBhcmFtcyA9IHVzZVF1ZXJ5UGFyYW1zKClcbiAgICBjb25zdCBzZWxlY3RlZE1vZGVsQXR0cmlidXRlcyA9IFtcImlkXCJdXG4gICAgY29uc3Qgc2VsZWN0ZWRBdHRyaWJ1dGVzID0ge31cbiAgICB0aGlzLmF0dHJpYnV0ZXMgPSB0aGlzLmNvbmZpZ1JlYWRlci5tb2RlbENvbmZpZz8uZWRpdD8uYXR0cmlidXRlc1xuXG4gICAgaWYgKCF0aGlzLmF0dHJpYnV0ZXMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gJ2F0dHJpYnV0ZXMnIGdpdmVuIGZyb20gZWRpdCBjb25maWcgZm9yICR7bW9kZWxDbGFzcy5tb2RlbENsYXNzRGF0YSgpLm5hbWV9YClcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGF0dHJpYnV0ZSBvZiB0aGlzLmF0dHJpYnV0ZXMpIHtcbiAgICAgIGlmIChhdHRyaWJ1dGUudHJhbnNsYXRlZCkge1xuICAgICAgICBmb3IgKGNvbnN0IGxvY2FsZSBvZiBhdmFpbGFibGVMb2NhbGVzKSB7XG4gICAgICAgICAgc2VsZWN0ZWRNb2RlbEF0dHJpYnV0ZXMucHVzaChgJHthdHRyaWJ1dGUuYXR0cmlidXRlfSR7aW5mbGVjdGlvbi5jYW1lbGl6ZShsb2NhbGUpfWApXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNlbGVjdGVkTW9kZWxBdHRyaWJ1dGVzLnB1c2goYXR0cmlidXRlLmF0dHJpYnV0ZSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzZWxlY3RlZEF0dHJpYnV0ZXNbbW9kZWxDbGFzc05hbWVdID0gc2VsZWN0ZWRNb2RlbEF0dHJpYnV0ZXNcblxuICAgIGNvbnN0IHVzZU1vZGVsUmVzdWx0ID0gdXNlTW9kZWwobW9kZWxDbGFzcywge1xuICAgICAgY2FjaGVBcmdzOiBbY3VycmVudFVzZXI/LmlkKCldLFxuICAgICAgbG9hZEJ5UXVlcnlQYXJhbTogKHByb3BzKSA9PiBwcm9wcy5xdWVyeVBhcmFtcy5tb2RlbF9pZCxcbiAgICAgIG5ld0lmTm9JZDogdGhpcy5jb25maWdSZWFkZXIubW9kZWxDb25maWc/LmVkaXQ/Lm5ld0lmTm9JZCB8fCB0cnVlLFxuICAgICAgcHJlbG9hZDogdGhpcy5jb25maWdSZWFkZXIubW9kZWxDb25maWc/LmVkaXQ/LnByZWxvYWQsXG4gICAgICBzZWxlY3Q6IHNlbGVjdGVkQXR0cmlidXRlc1xuICAgIH0pXG5cbiAgICBjb25zdCBtb2RlbElkVmFyTmFtZSA9IGAke2luZmxlY3Rpb24uY2FtZWxpemUobW9kZWxDbGFzcy5tb2RlbENsYXNzRGF0YSgpLm5hbWUsIHRydWUpfUlkYFxuICAgIGNvbnN0IG1vZGVsVmFyTmFtZSA9IGluZmxlY3Rpb24uY2FtZWxpemUobW9kZWxDbGFzcy5tb2RlbENsYXNzRGF0YSgpLm5hbWUsIHRydWUpXG5cbiAgICB0aGlzLm1vZGVsID0gZGlnZyh1c2VNb2RlbFJlc3VsdCwgbW9kZWxWYXJOYW1lKVxuICAgIHRoaXMubW9kZWxJZCA9IHF1ZXJ5UGFyYW1zLm1vZGVsX2lkXG4gICAgdGhpcy5tb2RlbEFyZ3MgPSB7fVxuICAgIHRoaXMubW9kZWxBcmdzW21vZGVsSWRWYXJOYW1lXSA9IHRoaXMubW9kZWxJZFxuICAgIHRoaXMuZm9ybVJlZiA9IHVzZVJlZigpXG4gICAgdGhpcy51c2VTdGF0ZXMoe2Zvcm06IG51bGx9KVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHthdHRyaWJ1dGVzLCBtb2RlbH0gPSB0aGlzLnR0XG4gICAgY29uc3Qge21vZGVsQ2xhc3N9ID0gdGhpcy5wXG4gICAgY29uc3QgZXh0cmFDb250ZW50ID0gdGhpcy5jb25maWdSZWFkZXIubW9kZWxDb25maWc/LmVkaXQ/LmV4dHJhQ29udGVudGNvbnN0XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFZpZXcgdGVzdElEPVwic3VwZXItYWRtaW4tLWVkaXQtcGFnZVwiPlxuICAgICAgICA8Rm9ybSBmb3JtUmVmPXt0aGlzLmZvcm1SZWZ9IHNldEZvcm09e3RoaXMuc2V0U3RhdGVzLmZvcm19PlxuICAgICAgICAgIHttb2RlbCAmJiBhdHRyaWJ1dGVzPy5tYXAoKGF0dHJpYnV0ZSkgPT4gKFxuICAgICAgICAgICAgPEVkaXRBdHRyaWJ1dGUgYXR0cmlidXRlPXthdHRyaWJ1dGV9IGtleT17YXR0cmlidXRlLmF0dHJpYnV0ZX0gbW9kZWw9e21vZGVsfSBtb2RlbENsYXNzPXttb2RlbENsYXNzfSAvPlxuICAgICAgICAgICkpfVxuICAgICAgICAgIHsvKiBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZWYgKi99XG4gICAgICAgICAge2V4dHJhQ29udGVudCAmJiBleHRyYUNvbnRlbnQobW9kZWxBcmdzKX1cbiAgICAgICAgICA8UHJlc3NhYmxlXG4gICAgICAgICAgICBvblByZXNzPXt0aGlzLnR0Lm9uU3VibWl0fVxuICAgICAgICAgICAgc3R5bGU9e3RoaXMuY2FjaGUoXCJwcmVzc2FibGVTdHlsZVwiLCB7XG4gICAgICAgICAgICAgIHBhZGRpbmdUb3A6IDE4LFxuICAgICAgICAgICAgICBwYWRkaW5nUmlnaHQ6IDI0LFxuICAgICAgICAgICAgICBwYWRkaW5nQm90dG9tOiAxOCxcbiAgICAgICAgICAgICAgcGFkZGluZ0xlZnQ6IDI0LFxuICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6IDEwLFxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IFwiIzRjOTNmZlwiLFxuICAgICAgICAgICAgICBtYXJnaW5Ub3A6IDEwXG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIHRlc3RJRD1cInN1Ym1pdC1idXR0b25cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxUZXh0IHN0eWxlPXt0aGlzLmNhY2hlKFwiYnV0dG9uVGV4dFN0eWxlXCIsIHtjb2xvcjogXCIjZmZmXCJ9KX0+U3VibWl0PC9UZXh0PlxuICAgICAgICAgIDwvUHJlc3NhYmxlPlxuICAgICAgICA8L0Zvcm0+XG4gICAgICA8L1ZpZXc+XG4gICAgKVxuICB9XG5cbiAgb25TdWJtaXQgPSBhc3luYyAoKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHttb2RlbH0gPSB0aGlzLnR0XG4gICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSh0aGlzLmZvcm1SZWYuY3VycmVudClcbiAgICAgIGNvbnN0IGZvcm1PYmplY3QgPSBpbmNvcnBvcmF0ZSh7fSwgdGhpcy5zLmZvcm0uYXNPYmplY3QoKSwgRm9ybURhdGFPYmplY3RpemVyLnRvT2JqZWN0KGZvcm1EYXRhKSlcblxuICAgICAgbW9kZWwuYXNzaWduQXR0cmlidXRlcyhmb3JtT2JqZWN0KVxuICAgICAgYXdhaXQgbW9kZWwuc2F2ZSgpXG4gICAgICBQYXJhbXMuY2hhbmdlUGFyYW1zKHttb2RlOiB1bmRlZmluZWQsIG1vZGVsX2lkOiBtb2RlbC5pZCgpfSlcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgRmxhc2hOb3RpZmljYXRpb25zLmVycm9yUmVzcG9uc2UoZXJyb3IpXG4gICAgfVxuICB9XG59KSlcbiJdfQ==
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1wYWdlLmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJzdXBlci1hZG1pbi9lZGl0LXBhZ2UuanN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxnSEFBZ0g7QUFDaEgsT0FBTyxLQUFLLFVBQVUsTUFBTSxZQUFZLENBQUE7QUFDeEMsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0scUJBQXFCLENBQUE7QUFDdEQsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLFNBQVMsQ0FBQTtBQUM1QixPQUFPLGtCQUFrQixNQUFNLHNCQUFzQixDQUFBO0FBQ3JELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxjQUFjLENBQUE7QUFDeEMsT0FBTyxFQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUMsTUFBTSxjQUFjLENBQUE7QUFDNUMsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLFdBQVcsQ0FBQTtBQUM5QixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sNENBQTRDLENBQUE7QUFDekUsT0FBTyxhQUFhLE1BQU0sbUJBQW1CLENBQUE7QUFDN0MsT0FBTyxZQUFZLE1BQU0saUJBQWlCLENBQUE7QUFDMUMsT0FBTyxhQUFhLE1BQU0sNEJBQTRCLENBQUE7QUFDdEQsbUJBQW1CO0FBQ25CLE9BQU8sT0FBTyxNQUFNLG1CQUFtQixDQUFBLENBQUMsMkNBQTJDO0FBQ25GLE9BQU8sTUFBTSxNQUFNLGNBQWMsQ0FBQTtBQUNqQyxPQUFPLFNBQVMsTUFBTSxZQUFZLENBQUE7QUFDbEMsT0FBTyxLQUFLLEVBQUUsRUFBQyxNQUFNLEVBQUMsTUFBTSxPQUFPLENBQUE7QUFDbkMsT0FBTyxJQUFJLE1BQU0sZUFBZSxDQUFBO0FBQ2hDLE9BQU8sSUFBSSxNQUFNLGlDQUFpQyxDQUFBO0FBQ2xELE9BQU8sY0FBYyxNQUFNLGtCQUFrQixDQUFBO0FBQzdDLE9BQU8sY0FBYyxNQUFNLHdCQUF3QixDQUFBO0FBQ25ELE9BQU8sUUFBUSxNQUFNLGlCQUFpQixDQUFBO0FBRXRDLGVBQWUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLDBCQUEyQixTQUFRLGFBQWE7SUFDdkYsTUFBTSxDQUFDLFNBQVMsR0FBRyxjQUFjLENBQUM7UUFDaEMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVTtRQUNyQyxPQUFPLEVBQUUsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQ25FLENBQUMsQ0FBQTtJQUVGLEtBQUs7UUFDSCxNQUFNLEVBQUMsVUFBVSxFQUFFLE9BQU8sRUFBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUE7UUFDcEMsTUFBTSxjQUFjLEdBQUcsVUFBVSxDQUFDLGNBQWMsRUFBRSxDQUFDLElBQUksQ0FBQTtRQUN2RCxNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFBO1FBQ25ELElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUNyRCxNQUFNLFdBQVcsR0FBRyxjQUFjLEVBQUUsQ0FBQTtRQUNwQyxNQUFNLHVCQUF1QixHQUFHLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDdEMsTUFBTSxrQkFBa0IsR0FBRyxFQUFFLENBQUE7UUFDN0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFBO1FBRWpFLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDckIsTUFBTSxJQUFJLEtBQUssQ0FBQyw4Q0FBOEMsVUFBVSxDQUFDLGNBQWMsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUE7UUFDbkcsQ0FBQztRQUVELEtBQUssTUFBTSxTQUFTLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3hDLElBQUksU0FBUyxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUN6QixLQUFLLE1BQU0sTUFBTSxJQUFJLGdCQUFnQixFQUFFLENBQUM7b0JBQ3RDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQyxTQUFTLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUE7Z0JBQ3RGLENBQUM7WUFDSCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sdUJBQXVCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQTtZQUNuRCxDQUFDO1FBQ0gsQ0FBQztRQUVELGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxHQUFHLHVCQUF1QixDQUFBO1FBRTVELE1BQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQyxVQUFVLEVBQUU7WUFDMUMsU0FBUyxFQUFFLENBQUMsV0FBVyxFQUFFLFVBQVUsRUFBRSxFQUFFLE9BQU8sQ0FBQztZQUMvQyxnQkFBZ0IsRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPO1lBQy9CLFNBQVMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsU0FBUyxJQUFJLElBQUk7WUFDakUsT0FBTyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxPQUFPO1lBQ3JELE1BQU0sRUFBRSxrQkFBa0I7U0FDM0IsQ0FBQyxDQUFBO1FBRUYsTUFBTSxjQUFjLEdBQUcsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQTtRQUN6RixNQUFNLFlBQVksR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUE7UUFFaEYsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLFlBQVksQ0FBQyxDQUFBO1FBQy9DLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFBO1FBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFBO1FBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQTtRQUM3QyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUMzQixJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUNuQyxDQUFDO0lBRUQsTUFBTTtRQUNKLE1BQU0sRUFBQyxVQUFVLEVBQUUsS0FBSyxFQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQTtRQUNuQyxNQUFNLEVBQUMsVUFBVSxFQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQTtRQUMzQixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsWUFBWSxDQUFBO1FBRXRFLE9BQU8sQ0FDTCxLQUFDLElBQUksSUFBQyxNQUFNLEVBQUMsd0JBQXdCLFlBQ25DLE1BQUMsSUFBSSxJQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxhQUMzRCxLQUFLLElBQUksVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FDdkMsS0FBQyxhQUFhLElBQUMsU0FBUyxFQUFFLFNBQVMsRUFBNEIsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsVUFBVSxJQUF6RCxTQUFTLENBQUMsU0FBUyxDQUEwQyxDQUN4RyxDQUFDLEVBQ0QsWUFBWSxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQzdDLEtBQUMsU0FBUyxJQUNSLE9BQU8sRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFDekIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUU7NEJBQ2xDLFVBQVUsRUFBRSxFQUFFOzRCQUNkLFlBQVksRUFBRSxFQUFFOzRCQUNoQixhQUFhLEVBQUUsRUFBRTs0QkFDakIsV0FBVyxFQUFFLEVBQUU7NEJBQ2YsWUFBWSxFQUFFLEVBQUU7NEJBQ2hCLGVBQWUsRUFBRSxTQUFTOzRCQUMxQixTQUFTLEVBQUUsRUFBRTt5QkFDZCxDQUFDLEVBQ0YsTUFBTSxFQUFDLGVBQWUsWUFFdEIsS0FBQyxJQUFJLElBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsRUFBQyxLQUFLLEVBQUUsTUFBTSxFQUFDLENBQUMsdUJBQWUsR0FDaEUsSUFDUCxHQUNGLENBQ1IsQ0FBQTtJQUNILENBQUM7SUFFRCxRQUFRLEdBQUcsS0FBSyxJQUFJLEVBQUU7UUFDcEIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxFQUFDLEtBQUssRUFBQyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUE7WUFDdkIsTUFBTSxRQUFRLEdBQUcsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQTtZQUNuRCx1SEFBdUg7WUFDdkgsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEVBQUUsa0JBQWtCLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUE7WUFFdkgsS0FBSyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFBO1lBQ2xDLE1BQU0sS0FBSyxDQUFDLElBQUksRUFBRSxDQUFBO1lBQ2xCLE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLEVBQUMsQ0FBQyxDQUFBO1FBQzlELENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2Ysa0JBQWtCLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3pDLENBQUM7SUFDSCxDQUFDLENBQUE7Q0FDRixDQUFDLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L2pzeC1tYXgtZGVwdGgsIHJlYWN0L2pzeC1uby1saXRlcmFscywgcmVhY3QvanN4LW9uZS1leHByZXNzaW9uLXBlci1saW5lLCBzb3J0LWltcG9ydHMgKi9cbmltcG9ydCAqIGFzIGluZmxlY3Rpb24gZnJvbSBcImluZmxlY3Rpb25cIlxuaW1wb3J0IHtGbGFzaE5vdGlmaWNhdGlvbnN9IGZyb20gXCJmbGFzaC1ub3RpZmljYXRpb25zXCJcbmltcG9ydCB7Rm9ybX0gZnJvbSBcIi4uL2Zvcm1cIlxuaW1wb3J0IEZvcm1EYXRhT2JqZWN0aXplciBmcm9tIFwiZm9ybS1kYXRhLW9iamVjdGl6ZXJcIlxuaW1wb3J0IHtpbmNvcnBvcmF0ZX0gZnJvbSBcImluY29ycG9yYXRvclwiXG5pbXBvcnQge1ByZXNzYWJsZSwgVmlld30gZnJvbSBcInJlYWN0LW5hdGl2ZVwiXG5pbXBvcnQge2RpZ2d9IGZyb20gXCJkaWdnZXJpemVcIlxuaW1wb3J0IHtzaGFwZUNvbXBvbmVudH0gZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL2J1aWxkL3NoYXBlLWNvbXBvbmVudC5qc1wiXG5pbXBvcnQgQmFzZUNvbXBvbmVudCBmcm9tIFwiLi4vYmFzZS1jb21wb25lbnRcIlxuaW1wb3J0IENvbmZpZ1JlYWRlciBmcm9tIFwiLi9jb25maWctcmVhZGVyXCJcbmltcG9ydCBFZGl0QXR0cmlidXRlIGZyb20gXCIuL2VkaXQtcGFnZS9lZGl0LWF0dHJpYnV0ZVwiXG4vLyBAdHMtZXhwZWN0LWVycm9yXG5pbXBvcnQgTG9jYWxlcyBmcm9tIFwic2hhcmVkL2xvY2FsZXMuanNcIiAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIGltcG9ydC9uby11bnJlc29sdmVkXG5pbXBvcnQgUGFyYW1zIGZyb20gXCIuLi9wYXJhbXMuanNcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgUmVhY3QsIHt1c2VSZWZ9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgVGV4dCBmcm9tIFwiLi4vdXRpbHMvdGV4dFwiXG5pbXBvcnQgbWVtbyBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvYnVpbGQvbWVtby5qc1wiXG5pbXBvcnQgcHJvcFR5cGVzRXhhY3QgZnJvbSBcInByb3AtdHlwZXMtZXhhY3RcIlxuaW1wb3J0IHVzZUN1cnJlbnRVc2VyIGZyb20gXCIuLi91c2UtY3VycmVudC11c2VyLmpzXCJcbmltcG9ydCB1c2VNb2RlbCBmcm9tIFwiLi4vdXNlLW1vZGVsLmpzXCJcblxuZXhwb3J0IGRlZmF1bHQgbWVtbyhzaGFwZUNvbXBvbmVudChjbGFzcyBBcGlNYWtlclN1cGVyQWRtaW5FZGl0UGFnZSBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0gcHJvcFR5cGVzRXhhY3Qoe1xuICAgIG1vZGVsQ2xhc3M6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgbW9kZWxJZDogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLm51bWJlciwgUHJvcFR5cGVzLnN0cmluZ10pXG4gIH0pXG5cbiAgc2V0dXAoKSB7XG4gICAgY29uc3Qge21vZGVsQ2xhc3MsIG1vZGVsSWR9ID0gdGhpcy5wXG4gICAgY29uc3QgbW9kZWxDbGFzc05hbWUgPSBtb2RlbENsYXNzLm1vZGVsQ2xhc3NEYXRhKCkubmFtZVxuICAgIGNvbnN0IGF2YWlsYWJsZUxvY2FsZXMgPSBMb2NhbGVzLmF2YWlsYWJsZUxvY2FsZXMoKVxuICAgIHRoaXMuY29uZmlnUmVhZGVyID0gQ29uZmlnUmVhZGVyLmZvck1vZGVsKG1vZGVsQ2xhc3MpXG4gICAgY29uc3QgY3VycmVudFVzZXIgPSB1c2VDdXJyZW50VXNlcigpXG4gICAgY29uc3Qgc2VsZWN0ZWRNb2RlbEF0dHJpYnV0ZXMgPSBbXCJpZFwiXVxuICAgIGNvbnN0IHNlbGVjdGVkQXR0cmlidXRlcyA9IHt9XG4gICAgdGhpcy5hdHRyaWJ1dGVzID0gdGhpcy5jb25maWdSZWFkZXIubW9kZWxDb25maWc/LmVkaXQ/LmF0dHJpYnV0ZXNcblxuICAgIGlmICghdGhpcy5hdHRyaWJ1dGVzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vICdhdHRyaWJ1dGVzJyBnaXZlbiBmcm9tIGVkaXQgY29uZmlnIGZvciAke21vZGVsQ2xhc3MubW9kZWxDbGFzc0RhdGEoKS5uYW1lfWApXG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBhdHRyaWJ1dGUgb2YgdGhpcy5hdHRyaWJ1dGVzKSB7XG4gICAgICBpZiAoYXR0cmlidXRlLnRyYW5zbGF0ZWQpIHtcbiAgICAgICAgZm9yIChjb25zdCBsb2NhbGUgb2YgYXZhaWxhYmxlTG9jYWxlcykge1xuICAgICAgICAgIHNlbGVjdGVkTW9kZWxBdHRyaWJ1dGVzLnB1c2goYCR7YXR0cmlidXRlLmF0dHJpYnV0ZX0ke2luZmxlY3Rpb24uY2FtZWxpemUobG9jYWxlKX1gKVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZWxlY3RlZE1vZGVsQXR0cmlidXRlcy5wdXNoKGF0dHJpYnV0ZS5hdHRyaWJ1dGUpXG4gICAgICB9XG4gICAgfVxuXG4gICAgc2VsZWN0ZWRBdHRyaWJ1dGVzW21vZGVsQ2xhc3NOYW1lXSA9IHNlbGVjdGVkTW9kZWxBdHRyaWJ1dGVzXG5cbiAgICBjb25zdCB1c2VNb2RlbFJlc3VsdCA9IHVzZU1vZGVsKG1vZGVsQ2xhc3MsIHtcbiAgICAgIGNhY2hlQXJnczogW2N1cnJlbnRVc2VyPy5wcmltYXJ5S2V5KCksIG1vZGVsSWRdLFxuICAgICAgbG9hZEJ5UXVlcnlQYXJhbTogKCkgPT4gbW9kZWxJZCxcbiAgICAgIG5ld0lmTm9JZDogdGhpcy5jb25maWdSZWFkZXIubW9kZWxDb25maWc/LmVkaXQ/Lm5ld0lmTm9JZCA/PyB0cnVlLFxuICAgICAgcHJlbG9hZDogdGhpcy5jb25maWdSZWFkZXIubW9kZWxDb25maWc/LmVkaXQ/LnByZWxvYWQsXG4gICAgICBzZWxlY3Q6IHNlbGVjdGVkQXR0cmlidXRlc1xuICAgIH0pXG5cbiAgICBjb25zdCBtb2RlbElkVmFyTmFtZSA9IGAke2luZmxlY3Rpb24uY2FtZWxpemUobW9kZWxDbGFzcy5tb2RlbENsYXNzRGF0YSgpLm5hbWUsIHRydWUpfUlkYFxuICAgIGNvbnN0IG1vZGVsVmFyTmFtZSA9IGluZmxlY3Rpb24uY2FtZWxpemUobW9kZWxDbGFzcy5tb2RlbENsYXNzRGF0YSgpLm5hbWUsIHRydWUpXG5cbiAgICB0aGlzLm1vZGVsID0gZGlnZyh1c2VNb2RlbFJlc3VsdCwgbW9kZWxWYXJOYW1lKVxuICAgIHRoaXMubW9kZWxJZCA9IG1vZGVsSWRcbiAgICB0aGlzLm1vZGVsQXJncyA9IHt9XG4gICAgdGhpcy5tb2RlbEFyZ3NbbW9kZWxJZFZhck5hbWVdID0gdGhpcy5tb2RlbElkXG4gICAgdGhpcy5mb3JtUmVmID0gdXNlUmVmKG51bGwpXG4gICAgdGhpcy5mb3JtT2JqZWN0UmVmID0gdXNlUmVmKG51bGwpXG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge2F0dHJpYnV0ZXMsIG1vZGVsfSA9IHRoaXMudHRcbiAgICBjb25zdCB7bW9kZWxDbGFzc30gPSB0aGlzLnBcbiAgICBjb25zdCBleHRyYUNvbnRlbnQgPSB0aGlzLmNvbmZpZ1JlYWRlci5tb2RlbENvbmZpZz8uZWRpdD8uZXh0cmFDb250ZW50XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFZpZXcgdGVzdElEPVwic3VwZXItYWRtaW4tLWVkaXQtcGFnZVwiPlxuICAgICAgICA8Rm9ybSBmb3JtT2JqZWN0UmVmPXt0aGlzLmZvcm1PYmplY3RSZWZ9IGZvcm1SZWY9e3RoaXMuZm9ybVJlZn0+XG4gICAgICAgICAge21vZGVsICYmIGF0dHJpYnV0ZXM/Lm1hcCgoYXR0cmlidXRlKSA9PiAoXG4gICAgICAgICAgICA8RWRpdEF0dHJpYnV0ZSBhdHRyaWJ1dGU9e2F0dHJpYnV0ZX0ga2V5PXthdHRyaWJ1dGUuYXR0cmlidXRlfSBtb2RlbD17bW9kZWx9IG1vZGVsQ2xhc3M9e21vZGVsQ2xhc3N9IC8+XG4gICAgICAgICAgKSl9XG4gICAgICAgICAge2V4dHJhQ29udGVudCAmJiBleHRyYUNvbnRlbnQodGhpcy5tb2RlbEFyZ3MpfVxuICAgICAgICAgIDxQcmVzc2FibGVcbiAgICAgICAgICAgIG9uUHJlc3M9e3RoaXMudHQub25TdWJtaXR9XG4gICAgICAgICAgICBzdHlsZT17dGhpcy5jYWNoZShcInByZXNzYWJsZVN0eWxlXCIsIHtcbiAgICAgICAgICAgICAgcGFkZGluZ1RvcDogMTgsXG4gICAgICAgICAgICAgIHBhZGRpbmdSaWdodDogMjQsXG4gICAgICAgICAgICAgIHBhZGRpbmdCb3R0b206IDE4LFxuICAgICAgICAgICAgICBwYWRkaW5nTGVmdDogMjQsXG4gICAgICAgICAgICAgIGJvcmRlclJhZGl1czogMTAsXG4gICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogXCIjNGM5M2ZmXCIsXG4gICAgICAgICAgICAgIG1hcmdpblRvcDogMTBcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgdGVzdElEPVwic3VibWl0LWJ1dHRvblwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFRleHQgc3R5bGU9e3RoaXMuY2FjaGUoXCJidXR0b25UZXh0U3R5bGVcIiwge2NvbG9yOiBcIiNmZmZcIn0pfT5TdWJtaXQ8L1RleHQ+XG4gICAgICAgICAgPC9QcmVzc2FibGU+XG4gICAgICAgIDwvRm9ybT5cbiAgICAgIDwvVmlldz5cbiAgICApXG4gIH1cblxuICBvblN1Ym1pdCA9IGFzeW5jICgpID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qge21vZGVsfSA9IHRoaXMudHRcbiAgICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKHRoaXMuZm9ybVJlZi5jdXJyZW50KVxuICAgICAgLy8gUmVhZCB0aGUgdW5jb250cm9sbGVkIGZvcm0gb2JqZWN0IGRpcmVjdGx5IGZyb20gdGhlIHN0YWJsZSByZWYgc28gc3VibWl0IGRvZXMgbm90IGRlcGVuZCBvbiBhIG1vdW50LXRpbWUgc3RhdGUgc3luYy5cbiAgICAgIGNvbnN0IGZvcm1PYmplY3QgPSBpbmNvcnBvcmF0ZSh7fSwgdGhpcy5mb3JtT2JqZWN0UmVmLmN1cnJlbnQ/LmFzT2JqZWN0KCkgfHwge30sIEZvcm1EYXRhT2JqZWN0aXplci50b09iamVjdChmb3JtRGF0YSkpXG5cbiAgICAgIG1vZGVsLmFzc2lnbkF0dHJpYnV0ZXMoZm9ybU9iamVjdClcbiAgICAgIGF3YWl0IG1vZGVsLnNhdmUoKVxuICAgICAgUGFyYW1zLmNoYW5nZVBhcmFtcyh7bW9kZTogdW5kZWZpbmVkLCBtb2RlbF9pZDogbW9kZWwuaWQoKX0pXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIEZsYXNoTm90aWZpY2F0aW9ucy5lcnJvclJlc3BvbnNlKGVycm9yKVxuICAgIH1cbiAgfVxufSkpXG4iXX0=
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  /* eslint-disable no-return-assign, react/jsx-no-literals, react/jsx-no-useless-fragment, react/jsx-one-expression-per-line, sort-imports */
3
- import React, { useMemo } from "react";
3
+ import React, { useEffect, useMemo } from "react";
4
4
  import { Pressable, StyleSheet, View } from "react-native";
5
5
  import BaseComponent from "../base-component";
6
6
  import ConfigReader from "./config-reader";
@@ -43,6 +43,7 @@ const styles = StyleSheet.create({
43
43
  });
44
44
  const dataSets = {};
45
45
  export default memo(shapeComponent(class ApiMakerSuperAdmin extends BaseComponent {
46
+ loadModelRequestId = 0;
46
47
  setup() {
47
48
  this.queryParams = useQueryParams();
48
49
  if (this.queryParams.model) {
@@ -54,6 +55,7 @@ export default memo(shapeComponent(class ApiMakerSuperAdmin extends BaseComponen
54
55
  this.configReader = useMemo(() => this.modelClass && ConfigReader.forModel(this.modelClass), [this.modelClass]);
55
56
  this.modelId = this.queryParams.model_id;
56
57
  this.modelName = this.modelClass?.modelClassData()?.name;
58
+ this.pageToShow = this.currentPageToShow();
57
59
  this.currentUser = useCurrentUser();
58
60
  this.canCan = useCanCan(() => {
59
61
  const abilities = [];
@@ -64,9 +66,22 @@ export default memo(shapeComponent(class ApiMakerSuperAdmin extends BaseComponen
64
66
  this.useStates({
65
67
  model: undefined
66
68
  });
67
- useMemo(() => { this.loadModel(); }, [this.modelId]);
69
+ useEffect(() => {
70
+ if (this.tt.pageNeedsLoadedModel()) {
71
+ this.loadModel();
72
+ }
73
+ else {
74
+ this.setState({ model: undefined });
75
+ }
76
+ return () => {
77
+ this.loadModelRequestId += 1;
78
+ };
79
+ }, [this.modelClass, this.modelId, this.pageToShow]);
68
80
  }
69
81
  loadModel = async () => {
82
+ // Show/edit pages should only accept the newest model load after route changes.
83
+ const requestId = this.loadModelRequestId + 1;
84
+ this.loadModelRequestId = requestId;
70
85
  const { configReader, modelClass, modelId, modelName } = this.tt;
71
86
  if (modelId && modelClass) {
72
87
  const abilities = {};
@@ -79,35 +94,20 @@ export default memo(shapeComponent(class ApiMakerSuperAdmin extends BaseComponen
79
94
  if (layoutSelect)
80
95
  query.select(layoutSelect);
81
96
  const model = await query.first();
97
+ if (requestId != this.loadModelRequestId)
98
+ return;
82
99
  this.setState({ model });
83
100
  }
84
101
  else {
102
+ if (requestId != this.loadModelRequestId)
103
+ return;
85
104
  this.setState({ model: undefined });
86
105
  }
87
106
  };
88
107
  render() {
89
- const { canCan, configReader, modelClass, modelId, modelName, queryParams } = this.tt;
108
+ const { canCan, configReader, modelClass, modelId, modelName, pageToShow, queryParams } = this.tt;
90
109
  const { model } = this.s;
91
110
  const modelConfigActions = configReader?.modelConfig?.actions;
92
- let pageToShow;
93
- if (queryParams.model && queryParams.model_id && queryParams.model_reflection) {
94
- pageToShow = "show_reflection";
95
- }
96
- else if (queryParams.model && queryParams.model_id && queryParams.mode == "edit") {
97
- pageToShow = "edit";
98
- }
99
- else if (queryParams.model && queryParams.model_id) {
100
- pageToShow = "show";
101
- }
102
- else if (queryParams.model && queryParams.mode == "new") {
103
- pageToShow = "edit";
104
- }
105
- else if (queryParams.model) {
106
- pageToShow = "index";
107
- }
108
- else {
109
- pageToShow = "welcome";
110
- }
111
111
  const actionsViewStyle = useStyles(styles, "actionsView");
112
112
  const actions = useMemo(() => _jsxs(View, { style: actionsViewStyle, children: [model && modelConfigActions && modelConfigActions({ model }), modelClass && pageToShow == "index" &&
113
113
  _jsx(_Fragment, { children: canCan?.can("new", modelClass) && hasEditConfig(modelClass) &&
@@ -121,7 +121,7 @@ export default memo(shapeComponent(class ApiMakerSuperAdmin extends BaseComponen
121
121
  _jsx(IndexPage, { modelClass: modelClass }, `index-page-${modelName}`), pageToShow == "show" &&
122
122
  _jsx(ShowPage, { modelClass: modelClass, modelId: modelId }, `show-page-${modelName}-${modelId}`), pageToShow == "show_reflection" &&
123
123
  _jsx(ShowReflectionPage, { modelClass: modelClass, modelId: modelId }, `show-reflection-page-${modelName}-${modelId}`), pageToShow == "edit" &&
124
- _jsx(EditPage, { modelClass: modelClass }, `edit-page-${modelName}-${modelId}`)] }));
124
+ _jsx(EditPage, { modelClass: modelClass, modelId: modelId }, `edit-page-${modelName}-${modelId}`)] }));
125
125
  }
126
126
  onDestroyClicked = async () => {
127
127
  // eslint-disable-next-line no-alert
@@ -136,5 +136,28 @@ export default memo(shapeComponent(class ApiMakerSuperAdmin extends BaseComponen
136
136
  FlashNotifications.errorResponse(error);
137
137
  }
138
138
  };
139
+ currentPageToShow = () => {
140
+ const { queryParams } = this.tt;
141
+ if (queryParams.model && queryParams.model_id && queryParams.model_reflection) {
142
+ return "show_reflection";
143
+ }
144
+ else if (queryParams.model && queryParams.model_id && queryParams.mode == "edit") {
145
+ return "edit";
146
+ }
147
+ else if (queryParams.model && queryParams.model_id) {
148
+ return "show";
149
+ }
150
+ else if (queryParams.model && queryParams.mode == "new") {
151
+ return "edit";
152
+ }
153
+ else if (queryParams.model) {
154
+ return "index";
155
+ }
156
+ return "welcome";
157
+ };
158
+ pageNeedsLoadedModel = () => {
159
+ const { pageToShow } = this.tt;
160
+ return pageToShow == "show" || pageToShow == "show_reflection";
161
+ };
139
162
  }));
140
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiL3NyYy8iLCJzb3VyY2VzIjpbInN1cGVyLWFkbWluL2luZGV4LmpzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsNElBQTRJO0FBQzVJLE9BQU8sS0FBSyxFQUFFLEVBQUMsT0FBTyxFQUFDLE1BQU0sT0FBTyxDQUFBO0FBQ3BDLE9BQU8sRUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBQyxNQUFNLGNBQWMsQ0FBQTtBQUN4RCxPQUFPLGFBQWEsTUFBTSxtQkFBbUIsQ0FBQTtBQUM3QyxPQUFPLFlBQVksTUFBTSxpQkFBaUIsQ0FBQTtBQUMxQyxPQUFPLFFBQVEsTUFBTSxhQUFhLENBQUE7QUFDbEMsT0FBTyxrQkFBa0IsTUFBTSxrREFBa0QsQ0FBQTtBQUNqRixPQUFPLGFBQWEsTUFBTSxzQkFBc0IsQ0FBQTtBQUNoRCxPQUFPLFNBQVMsTUFBTSxjQUFjLENBQUE7QUFDcEMsT0FBTyxNQUFNLE1BQU0sZ0JBQWdCLENBQUE7QUFDbkMsT0FBTyxJQUFJLE1BQU0sU0FBUyxDQUFBO0FBQzFCLE9BQU8sSUFBSSxNQUFNLGlDQUFpQyxDQUFBO0FBQ2xELG1CQUFtQjtBQUNuQixPQUFPLEtBQUssTUFBTSxNQUFNLFdBQVcsQ0FBQSxDQUFDLDJDQUEyQztBQUMvRSxPQUFPLE1BQU0sTUFBTSxjQUFjLENBQUE7QUFDakMsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDRDQUE0QyxDQUFBO0FBQ3pFLE9BQU8sUUFBUSxNQUFNLG1CQUFtQixDQUFBO0FBQ3hDLE9BQU8scUJBQXFCLE1BQU0sMkJBQTJCLENBQUE7QUFDN0QsT0FBTyxrQkFBa0IsTUFBTSx3QkFBd0IsQ0FBQTtBQUN2RCxPQUFPLElBQUksTUFBTSxlQUFlLENBQUE7QUFDaEMsT0FBTyxTQUFTLE1BQU0sbUJBQW1CLENBQUE7QUFDekMsT0FBTyxjQUFjLE1BQU0sd0JBQXdCLENBQUE7QUFDbkQsT0FBTyxjQUFjLE1BQU0sK0NBQStDLENBQUE7QUFDMUUsT0FBTyxTQUFTLE1BQU0sa0JBQWtCLENBQUE7QUFFeEMsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQztJQUMvQixXQUFXLEVBQUU7UUFDWCxhQUFhLEVBQUUsS0FBSztRQUNwQixVQUFVLEVBQUUsUUFBUTtLQUNyQjtJQUNELGtCQUFrQixFQUFFO1FBQ2xCLFVBQVUsRUFBRSxFQUFFO1FBQ2QsV0FBVyxFQUFFLEVBQUU7S0FDaEI7SUFDRCxnQkFBZ0IsRUFBRTtRQUNoQixVQUFVLEVBQUUsRUFBRTtRQUNkLFdBQVcsRUFBRSxFQUFFO0tBQ2hCO0lBQ0QsYUFBYSxFQUFFO1FBQ2IsVUFBVSxFQUFFLEVBQUU7UUFDZCxXQUFXLEVBQUUsRUFBRTtLQUNoQjtDQUNGLENBQUMsQ0FBQTtBQUVGLE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQTtBQUVuQixlQUFlLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxrQkFBbUIsU0FBUSxhQUFhO0lBQy9FLEtBQUs7UUFDSCxJQUFJLENBQUMsV0FBVyxHQUFHLGNBQWMsRUFBRSxDQUFBO1FBRW5DLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ2xELENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUE7UUFDeEIsQ0FBQztRQUVELElBQUksQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQTtRQUMvRyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFBO1FBQ3hDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxjQUFjLEVBQUUsRUFBRSxJQUFJLENBQUE7UUFDeEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxjQUFjLEVBQUUsQ0FBQTtRQUVuQyxJQUFJLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FDckIsR0FBRyxFQUFFO1lBQ0gsTUFBTSxTQUFTLEdBQUcsRUFBRSxDQUFBO1lBRXBCLElBQUksSUFBSSxDQUFDLFVBQVU7Z0JBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFFL0QsT0FBTyxTQUFTLENBQUE7UUFDbEIsQ0FBQyxFQUNELENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQzFDLENBQUE7UUFFRCxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ2IsS0FBSyxFQUFFLFNBQVM7U0FDakIsQ0FBQyxDQUFBO1FBQ0YsT0FBTyxDQUNMLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQSxDQUFDLENBQUMsRUFDMUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQ2YsQ0FBQTtJQUNILENBQUM7SUFFRCxTQUFTLEdBQUcsS0FBSyxJQUFJLEVBQUU7UUFDckIsTUFBTSxFQUFDLFlBQVksRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBQyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUE7UUFFOUQsSUFBSSxPQUFPLElBQUksVUFBVSxFQUFFLENBQUM7WUFDMUIsTUFBTSxTQUFTLEdBQUcsRUFBRSxDQUFBO1lBQ3BCLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUE7WUFDN0MsTUFBTSxZQUFZLEdBQUcsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFBO1lBRTlELFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxpQkFBaUIsQ0FBQTtZQUV4QyxNQUFNLEtBQUssR0FBRyxNQUFNLFVBQVU7aUJBQzNCLE9BQU8sQ0FBQyxFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUMsQ0FBQztpQkFDekIsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFBO1lBRXZCLElBQUksWUFBWTtnQkFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFBO1lBRTVDLE1BQU0sS0FBSyxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFBO1lBRWpDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBQyxLQUFLLEVBQUMsQ0FBQyxDQUFBO1FBQ3hCLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFDLEtBQUssRUFBRSxTQUFTLEVBQUMsQ0FBQyxDQUFBO1FBQ25DLENBQUM7SUFDSCxDQUFDLENBQUE7SUFFRCxNQUFNO1FBQ0osTUFBTSxFQUFDLE1BQU0sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQTtRQUNuRixNQUFNLEVBQUMsS0FBSyxFQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQTtRQUN0QixNQUFNLGtCQUFrQixHQUFHLFlBQVksRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFBO1FBQzdELElBQUksVUFBVSxDQUFBO1FBRWQsSUFBSSxXQUFXLENBQUMsS0FBSyxJQUFJLFdBQVcsQ0FBQyxRQUFRLElBQUksV0FBVyxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDOUUsVUFBVSxHQUFHLGlCQUFpQixDQUFBO1FBQ2hDLENBQUM7YUFBTSxJQUFJLFdBQVcsQ0FBQyxLQUFLLElBQUksV0FBVyxDQUFDLFFBQVEsSUFBSSxXQUFXLENBQUMsSUFBSSxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ25GLFVBQVUsR0FBRyxNQUFNLENBQUE7UUFDckIsQ0FBQzthQUFNLElBQUksV0FBVyxDQUFDLEtBQUssSUFBSSxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDckQsVUFBVSxHQUFHLE1BQU0sQ0FBQTtRQUNyQixDQUFDO2FBQU0sSUFBSSxXQUFXLENBQUMsS0FBSyxJQUFJLFdBQVcsQ0FBQyxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7WUFDMUQsVUFBVSxHQUFHLE1BQU0sQ0FBQTtRQUNyQixDQUFDO2FBQU0sSUFBSSxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDN0IsVUFBVSxHQUFHLE9BQU8sQ0FBQTtRQUN0QixDQUFDO2FBQU0sQ0FBQztZQUNOLFVBQVUsR0FBRyxTQUFTLENBQUE7UUFDeEIsQ0FBQztRQUVELE1BQU0sZ0JBQWdCLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQTtRQUV6RCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQ3JCLEdBQUcsRUFBRSxDQUFDLE1BQUMsSUFBSSxJQUFDLEtBQUssRUFBRSxnQkFBZ0IsYUFDaEMsS0FBSyxJQUFJLGtCQUFrQixJQUFJLGtCQUFrQixDQUFDLEVBQUMsS0FBSyxFQUFDLENBQUMsRUFDMUQsVUFBVSxJQUFJLFVBQVUsSUFBSSxPQUFPO29CQUNsQyw0QkFDRyxNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsSUFBSSxhQUFhLENBQUMsVUFBVSxDQUFDOzRCQUMxRCxLQUFDLElBQUksSUFDSCxPQUFPLEVBQUUsUUFBUSxDQUFDLGtCQUFrQixLQUFLLEVBQUMsS0FBSyxFQUFFLHVCQUF1QixFQUFDLEVBQ3pFLEtBQUssRUFBRSxNQUFNLENBQUMsa0JBQWtCLEVBQ2hDLEVBQUUsRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFDLENBQUMsWUFFdEQsS0FBQyxJQUFJLDZCQUFrQixHQUNsQixHQUVSLEVBRUosS0FBSyxJQUFJLFVBQVUsSUFBSSxNQUFNO29CQUM1Qiw4QkFDRyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLGFBQWEsQ0FBQyxVQUFVLENBQUM7Z0NBQzdDLEtBQUMsSUFBSSxJQUNILE9BQU8sRUFBRSxRQUFRLENBQUMsYUFBYSxLQUFLLEVBQUMsS0FBSyxFQUFFLGlCQUFpQixFQUFDLEVBQzlELEtBQUssRUFBRSxNQUFNLENBQUMsYUFBYSxFQUMzQixFQUFFLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFDLENBQUMsWUFFMUUsS0FBQyxJQUFJLHVCQUFZLEdBQ1osRUFFUixLQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQztnQ0FDbkIsS0FBQyxTQUFTLElBQ1IsT0FBTyxFQUFFLFFBQVEsQ0FBQyxnQkFBZ0IsS0FBSyxFQUFDLEtBQUssRUFBRSxvQkFBb0IsRUFBQyxFQUNwRSxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsRUFDakMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsWUFFOUIsS0FBQyxJQUFJLHlCQUFjLEdBQ1QsSUFFYixFQUVKLFVBQVUsSUFBSSxpQkFBaUI7b0JBQzlCLEtBQUMscUJBQXFCLElBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxXQUFXLENBQUMsZ0JBQWdCLEdBQUksSUFFMUcsRUFBRSxxREFBcUQ7UUFDOUQsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUM3RSxDQUFBO1FBRUQsT0FBTyxDQUNMLE1BQUMsTUFBTSxJQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBQyxLQUFLLEVBQUUsQ0FBQyxFQUFDLENBQUMsYUFDekcsVUFBVSxJQUFJLE9BQU87b0JBQ3BCLEtBQUMsU0FBUyxJQUVSLFVBQVUsRUFBRSxVQUFVLElBRGpCLGNBQWMsU0FBUyxFQUFFLENBRTlCLEVBRUgsVUFBVSxJQUFJLE1BQU07b0JBQ25CLEtBQUMsUUFBUSxJQUVQLFVBQVUsRUFBRSxVQUFVLEVBQ3RCLE9BQU8sRUFBRSxPQUFPLElBRlgsYUFBYSxTQUFTLElBQUksT0FBTyxFQUFFLENBR3hDLEVBRUgsVUFBVSxJQUFJLGlCQUFpQjtvQkFDOUIsS0FBQyxrQkFBa0IsSUFFakIsVUFBVSxFQUFFLFVBQVUsRUFDdEIsT0FBTyxFQUFFLE9BQU8sSUFGWCx3QkFBd0IsU0FBUyxJQUFJLE9BQU8sRUFBRSxDQUduRCxFQUVILFVBQVUsSUFBSSxNQUFNO29CQUNuQixLQUFDLFFBQVEsSUFFUCxVQUFVLEVBQUUsVUFBVSxJQURqQixhQUFhLFNBQVMsSUFBSSxPQUFPLEVBQUUsQ0FFeEMsSUFFRyxDQUNWLENBQUE7SUFDSCxDQUFDO0lBRUQsZ0JBQWdCLEdBQUcsS0FBSyxJQUFJLEVBQUU7UUFDNUIsb0NBQW9DO1FBQ3BDLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztZQUM5QixPQUFNO1FBQ1IsQ0FBQztRQUVELElBQUksQ0FBQztZQUNILE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUE7WUFFNUIsTUFBTSxDQUFDLFlBQVksQ0FBQyxFQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBQyxDQUFDLENBQUE7UUFDN0QsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixrQkFBa0IsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDekMsQ0FBQztJQUNILENBQUMsQ0FBQTtDQUNGLENBQUMsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcmV0dXJuLWFzc2lnbiwgcmVhY3QvanN4LW5vLWxpdGVyYWxzLCByZWFjdC9qc3gtbm8tdXNlbGVzcy1mcmFnbWVudCwgcmVhY3QvanN4LW9uZS1leHByZXNzaW9uLXBlci1saW5lLCBzb3J0LWltcG9ydHMgKi9cbmltcG9ydCBSZWFjdCwge3VzZU1lbW99IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQge1ByZXNzYWJsZSwgU3R5bGVTaGVldCwgVmlld30gZnJvbSBcInJlYWN0LW5hdGl2ZVwiXG5pbXBvcnQgQmFzZUNvbXBvbmVudCBmcm9tIFwiLi4vYmFzZS1jb21wb25lbnRcIlxuaW1wb3J0IENvbmZpZ1JlYWRlciBmcm9tIFwiLi9jb25maWctcmVhZGVyXCJcbmltcG9ydCBFZGl0UGFnZSBmcm9tIFwiLi9lZGl0LXBhZ2VcIlxuaW1wb3J0IEZsYXNoTm90aWZpY2F0aW9ucyBmcm9tIFwiZmxhc2gtbm90aWZpY2F0aW9ucy9idWlsZC9mbGFzaC1ub3RpZmljYXRpb25zLmpzXCJcbmltcG9ydCBoYXNFZGl0Q29uZmlnIGZyb20gXCIuL2hhcy1lZGl0LWNvbmZpZy5qc1wiXG5pbXBvcnQgSW5kZXhQYWdlIGZyb20gXCIuL2luZGV4LXBhZ2VcIlxuaW1wb3J0IExheW91dCBmcm9tIFwiLi9sYXlvdXQvaW5kZXhcIlxuaW1wb3J0IExpbmsgZnJvbSBcIi4uL2xpbmtcIlxuaW1wb3J0IG1lbW8gZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL2J1aWxkL21lbW8uanNcIlxuLy8gQHRzLWV4cGVjdC1lcnJvclxuaW1wb3J0ICogYXMgbW9kZWxzIGZyb20gXCJtb2RlbHMuanNcIiAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIGltcG9ydC9uby11bnJlc29sdmVkXG5pbXBvcnQgUGFyYW1zIGZyb20gXCIuLi9wYXJhbXMuanNcIlxuaW1wb3J0IHtzaGFwZUNvbXBvbmVudH0gZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL2J1aWxkL3NoYXBlLWNvbXBvbmVudC5qc1wiXG5pbXBvcnQgU2hvd1BhZ2UgZnJvbSBcIi4vc2hvdy1wYWdlL2luZGV4XCJcbmltcG9ydCBTaG93UmVmbGVjdGlvbkFjdGlvbnMgZnJvbSBcIi4vc2hvdy1yZWZsZWN0aW9uLWFjdGlvbnNcIlxuaW1wb3J0IFNob3dSZWZsZWN0aW9uUGFnZSBmcm9tIFwiLi9zaG93LXJlZmxlY3Rpb24tcGFnZVwiXG5pbXBvcnQgVGV4dCBmcm9tIFwiLi4vdXRpbHMvdGV4dFwiXG5pbXBvcnQgdXNlQ2FuQ2FuIGZyb20gXCIuLi91c2UtY2FuLWNhbi5qc1wiXG5pbXBvcnQgdXNlQ3VycmVudFVzZXIgZnJvbSBcIi4uL3VzZS1jdXJyZW50LXVzZXIuanNcIlxuaW1wb3J0IHVzZVF1ZXJ5UGFyYW1zIGZyb20gXCJvbi1sb2NhdGlvbi1jaGFuZ2VkL2J1aWxkL3VzZS1xdWVyeS1wYXJhbXMuanNcIlxuaW1wb3J0IHVzZVN0eWxlcyBmcm9tIFwiLi4vdXNlLXN0eWxlcy5qc1wiXG5cbmNvbnN0IHN0eWxlcyA9IFN0eWxlU2hlZXQuY3JlYXRlKHtcbiAgYWN0aW9uc1ZpZXc6IHtcbiAgICBmbGV4RGlyZWN0aW9uOiBcInJvd1wiLFxuICAgIGFsaWduSXRlbXM6IFwiY2VudGVyXCJcbiAgfSxcbiAgY3JlYXRlTmV3TW9kZWxMaW5rOiB7XG4gICAgbWFyZ2luTGVmdDogMTAsXG4gICAgbWFyZ2luUmlnaHQ6IDEwXG4gIH0sXG4gIGRlc3Ryb3lNb2RlbExpbms6IHtcbiAgICBtYXJnaW5MZWZ0OiAxMCxcbiAgICBtYXJnaW5SaWdodDogMTBcbiAgfSxcbiAgZWRpdE1vZGVsTGluazoge1xuICAgIG1hcmdpbkxlZnQ6IDEwLFxuICAgIG1hcmdpblJpZ2h0OiAxMFxuICB9XG59KVxuXG5jb25zdCBkYXRhU2V0cyA9IHt9XG5cbmV4cG9ydCBkZWZhdWx0IG1lbW8oc2hhcGVDb21wb25lbnQoY2xhc3MgQXBpTWFrZXJTdXBlckFkbWluIGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gIHNldHVwKCkge1xuICAgIHRoaXMucXVlcnlQYXJhbXMgPSB1c2VRdWVyeVBhcmFtcygpXG5cbiAgICBpZiAodGhpcy5xdWVyeVBhcmFtcy5tb2RlbCkge1xuICAgICAgdGhpcy5tb2RlbENsYXNzID0gbW9kZWxzW3RoaXMucXVlcnlQYXJhbXMubW9kZWxdXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubW9kZWxDbGFzcyA9IG51bGxcbiAgICB9XG5cbiAgICB0aGlzLmNvbmZpZ1JlYWRlciA9IHVzZU1lbW8oKCkgPT4gdGhpcy5tb2RlbENsYXNzICYmIENvbmZpZ1JlYWRlci5mb3JNb2RlbCh0aGlzLm1vZGVsQ2xhc3MpLCBbdGhpcy5tb2RlbENsYXNzXSlcbiAgICB0aGlzLm1vZGVsSWQgPSB0aGlzLnF1ZXJ5UGFyYW1zLm1vZGVsX2lkXG4gICAgdGhpcy5tb2RlbE5hbWUgPSB0aGlzLm1vZGVsQ2xhc3M/Lm1vZGVsQ2xhc3NEYXRhKCk/Lm5hbWVcbiAgICB0aGlzLmN1cnJlbnRVc2VyID0gdXNlQ3VycmVudFVzZXIoKVxuXG4gICAgdGhpcy5jYW5DYW4gPSB1c2VDYW5DYW4oXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGFiaWxpdGllcyA9IFtdXG5cbiAgICAgICAgaWYgKHRoaXMubW9kZWxDbGFzcykgYWJpbGl0aWVzLnB1c2goW3RoaXMubW9kZWxDbGFzcywgW1wibmV3XCJdXSlcblxuICAgICAgICByZXR1cm4gYWJpbGl0aWVzXG4gICAgICB9LFxuICAgICAgW3RoaXMuY3VycmVudFVzZXI/LmlkKCksIHRoaXMubW9kZWxDbGFzc11cbiAgICApXG5cbiAgICB0aGlzLnVzZVN0YXRlcyh7XG4gICAgICBtb2RlbDogdW5kZWZpbmVkXG4gICAgfSlcbiAgICB1c2VNZW1vKFxuICAgICAgKCkgPT4geyB0aGlzLmxvYWRNb2RlbCgpIH0sXG4gICAgICBbdGhpcy5tb2RlbElkXVxuICAgIClcbiAgfVxuXG4gIGxvYWRNb2RlbCA9IGFzeW5jICgpID0+IHtcbiAgICBjb25zdCB7Y29uZmlnUmVhZGVyLCBtb2RlbENsYXNzLCBtb2RlbElkLCBtb2RlbE5hbWV9ID0gdGhpcy50dFxuXG4gICAgaWYgKG1vZGVsSWQgJiYgbW9kZWxDbGFzcykge1xuICAgICAgY29uc3QgYWJpbGl0aWVzID0ge31cbiAgICAgIGNvbnN0IGFiaWxpdGllc0Zvck1vZGVsID0gW1wiZGVzdHJveVwiLCBcImVkaXRcIl1cbiAgICAgIGNvbnN0IGxheW91dFNlbGVjdCA9IGNvbmZpZ1JlYWRlcj8ubW9kZWxDb25maWc/LmxheW91dD8uc2VsZWN0XG5cbiAgICAgIGFiaWxpdGllc1ttb2RlbE5hbWVdID0gYWJpbGl0aWVzRm9yTW9kZWxcblxuICAgICAgY29uc3QgcXVlcnkgPSBhd2FpdCBtb2RlbENsYXNzXG4gICAgICAgIC5yYW5zYWNrKHtpZF9lcTogbW9kZWxJZH0pXG4gICAgICAgIC5hYmlsaXRpZXMoYWJpbGl0aWVzKVxuXG4gICAgICBpZiAobGF5b3V0U2VsZWN0KSBxdWVyeS5zZWxlY3QobGF5b3V0U2VsZWN0KVxuXG4gICAgICBjb25zdCBtb2RlbCA9IGF3YWl0IHF1ZXJ5LmZpcnN0KClcblxuICAgICAgdGhpcy5zZXRTdGF0ZSh7bW9kZWx9KVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHttb2RlbDogdW5kZWZpbmVkfSlcbiAgICB9XG4gIH1cblxuICByZW5kZXIoKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgY29tcGxleGl0eVxuICAgIGNvbnN0IHtjYW5DYW4sIGNvbmZpZ1JlYWRlciwgbW9kZWxDbGFzcywgbW9kZWxJZCwgbW9kZWxOYW1lLCBxdWVyeVBhcmFtc30gPSB0aGlzLnR0XG4gICAgY29uc3Qge21vZGVsfSA9IHRoaXMuc1xuICAgIGNvbnN0IG1vZGVsQ29uZmlnQWN0aW9ucyA9IGNvbmZpZ1JlYWRlcj8ubW9kZWxDb25maWc/LmFjdGlvbnNcbiAgICBsZXQgcGFnZVRvU2hvd1xuXG4gICAgaWYgKHF1ZXJ5UGFyYW1zLm1vZGVsICYmIHF1ZXJ5UGFyYW1zLm1vZGVsX2lkICYmIHF1ZXJ5UGFyYW1zLm1vZGVsX3JlZmxlY3Rpb24pIHtcbiAgICAgIHBhZ2VUb1Nob3cgPSBcInNob3dfcmVmbGVjdGlvblwiXG4gICAgfSBlbHNlIGlmIChxdWVyeVBhcmFtcy5tb2RlbCAmJiBxdWVyeVBhcmFtcy5tb2RlbF9pZCAmJiBxdWVyeVBhcmFtcy5tb2RlID09IFwiZWRpdFwiKSB7XG4gICAgICBwYWdlVG9TaG93ID0gXCJlZGl0XCJcbiAgICB9IGVsc2UgaWYgKHF1ZXJ5UGFyYW1zLm1vZGVsICYmIHF1ZXJ5UGFyYW1zLm1vZGVsX2lkKSB7XG4gICAgICBwYWdlVG9TaG93ID0gXCJzaG93XCJcbiAgICB9IGVsc2UgaWYgKHF1ZXJ5UGFyYW1zLm1vZGVsICYmIHF1ZXJ5UGFyYW1zLm1vZGUgPT0gXCJuZXdcIikge1xuICAgICAgcGFnZVRvU2hvdyA9IFwiZWRpdFwiXG4gICAgfSBlbHNlIGlmIChxdWVyeVBhcmFtcy5tb2RlbCkge1xuICAgICAgcGFnZVRvU2hvdyA9IFwiaW5kZXhcIlxuICAgIH0gZWxzZSB7XG4gICAgICBwYWdlVG9TaG93ID0gXCJ3ZWxjb21lXCJcbiAgICB9XG5cbiAgICBjb25zdCBhY3Rpb25zVmlld1N0eWxlID0gdXNlU3R5bGVzKHN0eWxlcywgXCJhY3Rpb25zVmlld1wiKVxuXG4gICAgY29uc3QgYWN0aW9ucyA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiA8VmlldyBzdHlsZT17YWN0aW9uc1ZpZXdTdHlsZX0+XG4gICAgICAgIHttb2RlbCAmJiBtb2RlbENvbmZpZ0FjdGlvbnMgJiYgbW9kZWxDb25maWdBY3Rpb25zKHttb2RlbH0pfVxuICAgICAgICB7bW9kZWxDbGFzcyAmJiBwYWdlVG9TaG93ID09IFwiaW5kZXhcIiAmJlxuICAgICAgICAgIDw+XG4gICAgICAgICAgICB7Y2FuQ2FuPy5jYW4oXCJuZXdcIiwgbW9kZWxDbGFzcykgJiYgaGFzRWRpdENvbmZpZyhtb2RlbENsYXNzKSAmJlxuICAgICAgICAgICAgICA8TGlua1xuICAgICAgICAgICAgICAgIGRhdGFTZXQ9e2RhdGFTZXRzLmNyZWF0ZU5ld01vZGVsTGluayB8fD0ge2NsYXNzOiBcImNyZWF0ZS1uZXctbW9kZWwtbGlua1wifX1cbiAgICAgICAgICAgICAgICBzdHlsZT17c3R5bGVzLmNyZWF0ZU5ld01vZGVsTGlua31cbiAgICAgICAgICAgICAgICB0bz17UGFyYW1zLndpdGhQYXJhbXMoe21vZGVsOiBtb2RlbE5hbWUsIG1vZGU6IFwibmV3XCJ9KX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxUZXh0PkNyZWF0ZSBuZXc8L1RleHQ+XG4gICAgICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8Lz5cbiAgICAgICAgfVxuICAgICAgICB7bW9kZWwgJiYgcGFnZVRvU2hvdyA9PSBcInNob3dcIiAmJlxuICAgICAgICAgIDw+XG4gICAgICAgICAgICB7bW9kZWwuY2FuKFwiZWRpdFwiKSAmJiBoYXNFZGl0Q29uZmlnKG1vZGVsQ2xhc3MpICYmXG4gICAgICAgICAgICAgIDxMaW5rXG4gICAgICAgICAgICAgICAgZGF0YVNldD17ZGF0YVNldHMuZWRpdE1vZGVsTGluayB8fD0ge2NsYXNzOiBcImVkaXQtbW9kZWwtbGlua1wifX1cbiAgICAgICAgICAgICAgICBzdHlsZT17c3R5bGVzLmVkaXRNb2RlbExpbmt9XG4gICAgICAgICAgICAgICAgdG89e1BhcmFtcy53aXRoUGFyYW1zKHttb2RlbDogbW9kZWxOYW1lLCBtb2RlbF9pZDogbW9kZWxJZCwgbW9kZTogXCJlZGl0XCJ9KX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxUZXh0PkVkaXQ8L1RleHQ+XG4gICAgICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHttb2RlbC5jYW4oXCJkZXN0cm95XCIpICYmXG4gICAgICAgICAgICAgIDxQcmVzc2FibGVcbiAgICAgICAgICAgICAgICBkYXRhU2V0PXtkYXRhU2V0cy5kZXN0cm95TW9kZWxMaW5rIHx8PSB7Y2xhc3M6IFwiZGVzdHJveS1tb2RlbC1saW5rXCJ9fVxuICAgICAgICAgICAgICAgIG9uUHJlc3M9e3RoaXMudHQub25EZXN0cm95Q2xpY2tlZH1cbiAgICAgICAgICAgICAgICBzdHlsZT17c3R5bGVzLmRlc3Ryb3lNb2RlbExpbmt9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8VGV4dD5EZWxldGU8L1RleHQ+XG4gICAgICAgICAgICAgIDwvUHJlc3NhYmxlPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvPlxuICAgICAgICB9XG4gICAgICAgIHtwYWdlVG9TaG93ID09IFwic2hvd19yZWZsZWN0aW9uXCIgJiZcbiAgICAgICAgICA8U2hvd1JlZmxlY3Rpb25BY3Rpb25zIG1vZGVsPXttb2RlbH0gbW9kZWxDbGFzcz17bW9kZWxDbGFzc30gcmVmbGVjdGlvbk5hbWU9e3F1ZXJ5UGFyYW1zLm1vZGVsX3JlZmxlY3Rpb259IC8+XG4gICAgICAgIH1cbiAgICAgIDwvVmlldz4sIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgcmVhY3QvanN4LWNsb3NpbmctdGFnLWxvY2F0aW9uXG4gICAgICBbY2FuQ2FuLmdldENhY2hlS2V5KCksIGNvbmZpZ1JlYWRlcj8uYWN0aW9ucywgbW9kZWwsIG1vZGVsQ2xhc3MsIHBhZ2VUb1Nob3ddXG4gICAgKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxMYXlvdXQgYWN0aW9ucz17YWN0aW9uc30gYWN0aXZlPXtxdWVyeVBhcmFtcy5tb2RlbH0gaGVhZGVyVGl0bGU9e21vZGVsQ2xhc3M/Lm1vZGVsTmFtZSgpPy5odW1hbih7Y291bnQ6IDJ9KX0+XG4gICAgICAgIHtwYWdlVG9TaG93ID09IFwiaW5kZXhcIiAmJlxuICAgICAgICAgIDxJbmRleFBhZ2VcbiAgICAgICAgICAgIGtleT17YGluZGV4LXBhZ2UtJHttb2RlbE5hbWV9YH1cbiAgICAgICAgICAgIG1vZGVsQ2xhc3M9e21vZGVsQ2xhc3N9XG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgICB7cGFnZVRvU2hvdyA9PSBcInNob3dcIiAmJlxuICAgICAgICAgIDxTaG93UGFnZVxuICAgICAgICAgICAga2V5PXtgc2hvdy1wYWdlLSR7bW9kZWxOYW1lfS0ke21vZGVsSWR9YH1cbiAgICAgICAgICAgIG1vZGVsQ2xhc3M9e21vZGVsQ2xhc3N9XG4gICAgICAgICAgICBtb2RlbElkPXttb2RlbElkfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgICAge3BhZ2VUb1Nob3cgPT0gXCJzaG93X3JlZmxlY3Rpb25cIiAmJlxuICAgICAgICAgIDxTaG93UmVmbGVjdGlvblBhZ2VcbiAgICAgICAgICAgIGtleT17YHNob3ctcmVmbGVjdGlvbi1wYWdlLSR7bW9kZWxOYW1lfS0ke21vZGVsSWR9YH1cbiAgICAgICAgICAgIG1vZGVsQ2xhc3M9e21vZGVsQ2xhc3N9XG4gICAgICAgICAgICBtb2RlbElkPXttb2RlbElkfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgICAge3BhZ2VUb1Nob3cgPT0gXCJlZGl0XCIgJiZcbiAgICAgICAgICA8RWRpdFBhZ2VcbiAgICAgICAgICAgIGtleT17YGVkaXQtcGFnZS0ke21vZGVsTmFtZX0tJHttb2RlbElkfWB9XG4gICAgICAgICAgICBtb2RlbENsYXNzPXttb2RlbENsYXNzfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvTGF5b3V0PlxuICAgIClcbiAgfVxuXG4gIG9uRGVzdHJveUNsaWNrZWQgPSBhc3luYyAoKSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWFsZXJ0XG4gICAgaWYgKCFjb25maXJtKFwiQXJlIHlvdSBzdXJlP1wiKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMucy5tb2RlbC5kZXN0cm95KClcblxuICAgICAgUGFyYW1zLmNoYW5nZVBhcmFtcyh7bW9kZTogdW5kZWZpbmVkLCBtb2RlbF9pZDogdW5kZWZpbmVkfSlcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgRmxhc2hOb3RpZmljYXRpb25zLmVycm9yUmVzcG9uc2UoZXJyb3IpXG4gICAgfVxuICB9XG59KSlcbiJdfQ==
163
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiL3NyYy8iLCJzb3VyY2VzIjpbInN1cGVyLWFkbWluL2luZGV4LmpzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsNElBQTRJO0FBQzVJLE9BQU8sS0FBSyxFQUFFLEVBQUMsU0FBUyxFQUFFLE9BQU8sRUFBQyxNQUFNLE9BQU8sQ0FBQTtBQUMvQyxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUMsTUFBTSxjQUFjLENBQUE7QUFDeEQsT0FBTyxhQUFhLE1BQU0sbUJBQW1CLENBQUE7QUFDN0MsT0FBTyxZQUFZLE1BQU0saUJBQWlCLENBQUE7QUFDMUMsT0FBTyxRQUFRLE1BQU0sYUFBYSxDQUFBO0FBQ2xDLE9BQU8sa0JBQWtCLE1BQU0sa0RBQWtELENBQUE7QUFDakYsT0FBTyxhQUFhLE1BQU0sc0JBQXNCLENBQUE7QUFDaEQsT0FBTyxTQUFTLE1BQU0sY0FBYyxDQUFBO0FBQ3BDLE9BQU8sTUFBTSxNQUFNLGdCQUFnQixDQUFBO0FBQ25DLE9BQU8sSUFBSSxNQUFNLFNBQVMsQ0FBQTtBQUMxQixPQUFPLElBQUksTUFBTSxpQ0FBaUMsQ0FBQTtBQUNsRCxtQkFBbUI7QUFDbkIsT0FBTyxLQUFLLE1BQU0sTUFBTSxXQUFXLENBQUEsQ0FBQywyQ0FBMkM7QUFDL0UsT0FBTyxNQUFNLE1BQU0sY0FBYyxDQUFBO0FBQ2pDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQTtBQUN6RSxPQUFPLFFBQVEsTUFBTSxtQkFBbUIsQ0FBQTtBQUN4QyxPQUFPLHFCQUFxQixNQUFNLDJCQUEyQixDQUFBO0FBQzdELE9BQU8sa0JBQWtCLE1BQU0sd0JBQXdCLENBQUE7QUFDdkQsT0FBTyxJQUFJLE1BQU0sZUFBZSxDQUFBO0FBQ2hDLE9BQU8sU0FBUyxNQUFNLG1CQUFtQixDQUFBO0FBQ3pDLE9BQU8sY0FBYyxNQUFNLHdCQUF3QixDQUFBO0FBQ25ELE9BQU8sY0FBYyxNQUFNLCtDQUEr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QUUsQ0FBQztZQUM5RSxPQUFPLGlCQUFpQixDQUFBO1FBQzFCLENBQUM7YUFBTSxJQUFJLFdBQVcsQ0FBQyxLQUFLLElBQUksV0FBVyxDQUFDLFFBQVEsSUFBSSxXQUFXLENBQUMsSUFBSSxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ25GLE9BQU8sTUFBTSxDQUFBO1FBQ2YsQ0FBQzthQUFNLElBQUksV0FBVyxDQUFDLEtBQUssSUFBSSxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDckQsT0FBTyxNQUFNLENBQUE7UUFDZixDQUFDO2FBQU0sSUFBSSxXQUFXLENBQUMsS0FBSyxJQUFJLFdBQVcsQ0FBQyxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7WUFDMUQsT0FBTyxNQUFNLENBQUE7UUFDZixDQUFDO2FBQU0sSUFBSSxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDN0IsT0FBTyxPQUFPLENBQUE7UUFDaEIsQ0FBQztRQUVELE9BQU8sU0FBUyxDQUFBO0lBQ2xCLENBQUMsQ0FBQTtJQUVELG9CQUFvQixHQUFHLEdBQUcsRUFBRTtRQUMxQixNQUFNLEVBQUMsVUFBVSxFQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQTtRQUU1QixPQUFPLFVBQVUsSUFBSSxNQUFNLElBQUksVUFBVSxJQUFJLGlCQUFpQixDQUFBO0lBQ2hFLENBQUMsQ0FBQTtDQUNGLENBQUMsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcmV0dXJuLWFzc2lnbiwgcmVhY3QvanN4LW5vLWxpdGVyYWxzLCByZWFjdC9qc3gtbm8tdXNlbGVzcy1mcmFnbWVudCwgcmVhY3QvanN4LW9uZS1leHByZXNzaW9uLXBlci1saW5lLCBzb3J0LWltcG9ydHMgKi9cbmltcG9ydCBSZWFjdCwge3VzZUVmZmVjdCwgdXNlTWVtb30gZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7UHJlc3NhYmxlLCBTdHlsZVNoZWV0LCBWaWV3fSBmcm9tIFwicmVhY3QtbmF0aXZlXCJcbmltcG9ydCBCYXNlQ29tcG9uZW50IGZyb20gXCIuLi9iYXNlLWNvbXBvbmVudFwiXG5pbXBvcnQgQ29uZmlnUmVhZGVyIGZyb20gXCIuL2NvbmZpZy1yZWFkZXJcIlxuaW1wb3J0IEVkaXRQYWdlIGZyb20gXCIuL2VkaXQtcGFnZVwiXG5pbXBvcnQgRmxhc2hOb3RpZmljYXRpb25zIGZyb20gXCJmbGFzaC1ub3RpZmljYXRpb25zL2J1aWxkL2ZsYXNoLW5vdGlmaWNhdGlvbnMuanNcIlxuaW1wb3J0IGhhc0VkaXRDb25maWcgZnJvbSBcIi4vaGFzLWVkaXQtY29uZmlnLmpzXCJcbmltcG9ydCBJbmRleFBhZ2UgZnJvbSBcIi4vaW5kZXgtcGFnZVwiXG5pbXBvcnQgTGF5b3V0IGZyb20gXCIuL2xheW91dC9pbmRleFwiXG5pbXBvcnQgTGluayBmcm9tIFwiLi4vbGlua1wiXG5pbXBvcnQgbWVtbyBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvYnVpbGQvbWVtby5qc1wiXG4vLyBAdHMtZXhwZWN0LWVycm9yXG5pbXBvcnQgKiBhcyBtb2RlbHMgZnJvbSBcIm1vZGVscy5qc1wiIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgaW1wb3J0L25vLXVucmVzb2x2ZWRcbmltcG9ydCBQYXJhbXMgZnJvbSBcIi4uL3BhcmFtcy5qc1wiXG5pbXBvcnQge3NoYXBlQ29tcG9uZW50fSBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvYnVpbGQvc2hhcGUtY29tcG9uZW50LmpzXCJcbmltcG9ydCBTaG93UGFnZSBmcm9tIFwiLi9zaG93LXBhZ2UvaW5kZXhcIlxuaW1wb3J0IFNob3dSZWZsZWN0aW9uQWN0aW9ucyBmcm9tIFwiLi9zaG93LXJlZmxlY3Rpb24tYWN0aW9uc1wiXG5pbXBvcnQgU2hvd1JlZmxlY3Rpb25QYWdlIGZyb20gXCIuL3Nob3ctcmVmbGVjdGlvbi1wYWdlXCJcbmltcG9ydCBUZXh0IGZyb20gXCIuLi91dGlscy90ZXh0XCJcbmltcG9ydCB1c2VDYW5DYW4gZnJvbSBcIi4uL3VzZS1jYW4tY2FuLmpzXCJcbmltcG9ydCB1c2VDdXJyZW50VXNlciBmcm9tIFwiLi4vdXNlLWN1cnJlbnQtdXNlci5qc1wiXG5pbXBvcnQgdXNlUXVlcnlQYXJhbXMgZnJvbSBcIm9uLWxvY2F0aW9uLWNoYW5nZWQvYnVpbGQvdXNlLXF1ZXJ5LXBhcmFtcy5qc1wiXG5pbXBvcnQgdXNlU3R5bGVzIGZyb20gXCIuLi91c2Utc3R5bGVzLmpzXCJcblxuY29uc3Qgc3R5bGVzID0gU3R5bGVTaGVldC5jcmVhdGUoe1xuICBhY3Rpb25zVmlldzoge1xuICAgIGZsZXhEaXJlY3Rpb246IFwicm93XCIsXG4gICAgYWxpZ25JdGVtczogXCJjZW50ZXJcIlxuICB9LFxuICBjcmVhdGVOZXdNb2RlbExpbms6IHtcbiAgICBtYXJnaW5MZWZ0OiAxMCxcbiAgICBtYXJnaW5SaWdodDogMTBcbiAgfSxcbiAgZGVzdHJveU1vZGVsTGluazoge1xuICAgIG1hcmdpbkxlZnQ6IDEwLFxuICAgIG1hcmdpblJpZ2h0OiAxMFxuICB9LFxuICBlZGl0TW9kZWxMaW5rOiB7XG4gICAgbWFyZ2luTGVmdDogMTAsXG4gICAgbWFyZ2luUmlnaHQ6IDEwXG4gIH1cbn0pXG5cbmNvbnN0IGRhdGFTZXRzID0ge31cblxuZXhwb3J0IGRlZmF1bHQgbWVtbyhzaGFwZUNvbXBvbmVudChjbGFzcyBBcGlNYWtlclN1cGVyQWRtaW4gZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgbG9hZE1vZGVsUmVxdWVzdElkID0gMFxuXG4gIHNldHVwKCkge1xuICAgIHRoaXMucXVlcnlQYXJhbXMgPSB1c2VRdWVyeVBhcmFtcygpXG5cbiAgICBpZiAodGhpcy5xdWVyeVBhcmFtcy5tb2RlbCkge1xuICAgICAgdGhpcy5tb2RlbENsYXNzID0gbW9kZWxzW3RoaXMucXVlcnlQYXJhbXMubW9kZWxdXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubW9kZWxDbGFzcyA9IG51bGxcbiAgICB9XG5cbiAgICB0aGlzLmNvbmZpZ1JlYWRlciA9IHVzZU1lbW8oKCkgPT4gdGhpcy5tb2RlbENsYXNzICYmIENvbmZpZ1JlYWRlci5mb3JNb2RlbCh0aGlzLm1vZGVsQ2xhc3MpLCBbdGhpcy5tb2RlbENsYXNzXSlcbiAgICB0aGlzLm1vZGVsSWQgPSB0aGlzLnF1ZXJ5UGFyYW1zLm1vZGVsX2lkXG4gICAgdGhpcy5tb2RlbE5hbWUgPSB0aGlzLm1vZGVsQ2xhc3M/Lm1vZGVsQ2xhc3NEYXRhKCk/Lm5hbWVcbiAgICB0aGlzLnBhZ2VUb1Nob3cgPSB0aGlzLmN1cnJlbnRQYWdlVG9TaG93KClcbiAgICB0aGlzLmN1cnJlbnRVc2VyID0gdXNlQ3VycmVudFVzZXIoKVxuXG4gICAgdGhpcy5jYW5DYW4gPSB1c2VDYW5DYW4oXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGFiaWxpdGllcyA9IFtdXG5cbiAgICAgICAgaWYgKHRoaXMubW9kZWxDbGFzcykgYWJpbGl0aWVzLnB1c2goW3RoaXMubW9kZWxDbGFzcywgW1wibmV3XCJdXSlcblxuICAgICAgICByZXR1cm4gYWJpbGl0aWVzXG4gICAgICB9LFxuICAgICAgW3RoaXMuY3VycmVudFVzZXI/LmlkKCksIHRoaXMubW9kZWxDbGFzc11cbiAgICApXG5cbiAgICB0aGlzLnVzZVN0YXRlcyh7XG4gICAgICBtb2RlbDogdW5kZWZpbmVkXG4gICAgfSlcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMudHQucGFnZU5lZWRzTG9hZGVkTW9kZWwoKSkge1xuICAgICAgICB0aGlzLmxvYWRNb2RlbCgpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHttb2RlbDogdW5kZWZpbmVkfSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgdGhpcy5sb2FkTW9kZWxSZXF1ZXN0SWQgKz0gMVxuICAgICAgfVxuICAgIH0sIFt0aGlzLm1vZGVsQ2xhc3MsIHRoaXMubW9kZWxJZCwgdGhpcy5wYWdlVG9TaG93XSlcbiAgfVxuXG4gIGxvYWRNb2RlbCA9IGFzeW5jICgpID0+IHtcbiAgICAvLyBTaG93L2VkaXQgcGFnZXMgc2hvdWxkIG9ubHkgYWNjZXB0IHRoZSBuZXdlc3QgbW9kZWwgbG9hZCBhZnRlciByb3V0ZSBjaGFuZ2VzLlxuICAgIGNvbnN0IHJlcXVlc3RJZCA9IHRoaXMubG9hZE1vZGVsUmVxdWVzdElkICsgMVxuXG4gICAgdGhpcy5sb2FkTW9kZWxSZXF1ZXN0SWQgPSByZXF1ZXN0SWRcbiAgICBjb25zdCB7Y29uZmlnUmVhZGVyLCBtb2RlbENsYXNzLCBtb2RlbElkLCBtb2RlbE5hbWV9ID0gdGhpcy50dFxuXG4gICAgaWYgKG1vZGVsSWQgJiYgbW9kZWxDbGFzcykge1xuICAgICAgY29uc3QgYWJpbGl0aWVzID0ge31cbiAgICAgIGNvbnN0IGFiaWxpdGllc0Zvck1vZGVsID0gW1wiZGVzdHJveVwiLCBcImVkaXRcIl1cbiAgICAgIGNvbnN0IGxheW91dFNlbGVjdCA9IGNvbmZpZ1JlYWRlcj8ubW9kZWxDb25maWc/LmxheW91dD8uc2VsZWN0XG5cbiAgICAgIGFiaWxpdGllc1ttb2RlbE5hbWVdID0gYWJpbGl0aWVzRm9yTW9kZWxcblxuICAgICAgY29uc3QgcXVlcnkgPSBhd2FpdCBtb2RlbENsYXNzXG4gICAgICAgIC5yYW5zYWNrKHtpZF9lcTogbW9kZWxJZH0pXG4gICAgICAgIC5hYmlsaXRpZXMoYWJpbGl0aWVzKVxuXG4gICAgICBpZiAobGF5b3V0U2VsZWN0KSBxdWVyeS5zZWxlY3QobGF5b3V0U2VsZWN0KVxuXG4gICAgICBjb25zdCBtb2RlbCA9IGF3YWl0IHF1ZXJ5LmZpcnN0KClcblxuICAgICAgaWYgKHJlcXVlc3RJZCAhPSB0aGlzLmxvYWRNb2RlbFJlcXVlc3RJZCkgcmV0dXJuXG5cbiAgICAgIHRoaXMuc2V0U3RhdGUoe21vZGVsfSlcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHJlcXVlc3RJZCAhPSB0aGlzLmxvYWRNb2RlbFJlcXVlc3RJZCkgcmV0dXJuXG5cbiAgICAgIHRoaXMuc2V0U3RhdGUoe21vZGVsOiB1bmRlZmluZWR9KVxuICAgIH1cbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7Y2FuQ2FuLCBjb25maWdSZWFkZXIsIG1vZGVsQ2xhc3MsIG1vZGVsSWQsIG1vZGVsTmFtZSwgcGFnZVRvU2hvdywgcXVlcnlQYXJhbXN9ID0gdGhpcy50dFxuICAgIGNvbnN0IHttb2RlbH0gPSB0aGlzLnNcbiAgICBjb25zdCBtb2RlbENvbmZpZ0FjdGlvbnMgPSBjb25maWdSZWFkZXI/Lm1vZGVsQ29uZmlnPy5hY3Rpb25zXG5cbiAgICBjb25zdCBhY3Rpb25zVmlld1N0eWxlID0gdXNlU3R5bGVzKHN0eWxlcywgXCJhY3Rpb25zVmlld1wiKVxuXG4gICAgY29uc3QgYWN0aW9ucyA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiA8VmlldyBzdHlsZT17YWN0aW9uc1ZpZXdTdHlsZX0+XG4gICAgICAgIHttb2RlbCAmJiBtb2RlbENvbmZpZ0FjdGlvbnMgJiYgbW9kZWxDb25maWdBY3Rpb25zKHttb2RlbH0pfVxuICAgICAgICB7bW9kZWxDbGFzcyAmJiBwYWdlVG9TaG93ID09IFwiaW5kZXhcIiAmJlxuICAgICAgICAgIDw+XG4gICAgICAgICAgICB7Y2FuQ2FuPy5jYW4oXCJuZXdcIiwgbW9kZWxDbGFzcykgJiYgaGFzRWRpdENvbmZpZyhtb2RlbENsYXNzKSAmJlxuICAgICAgICAgICAgICA8TGlua1xuICAgICAgICAgICAgICAgIGRhdGFTZXQ9e2RhdGFTZXRzLmNyZWF0ZU5ld01vZGVsTGluayB8fD0ge2NsYXNzOiBcImNyZWF0ZS1uZXctbW9kZWwtbGlua1wifX1cbiAgICAgICAgICAgICAgICBzdHlsZT17c3R5bGVzLmNyZWF0ZU5ld01vZGVsTGlua31cbiAgICAgICAgICAgICAgICB0bz17UGFyYW1zLndpdGhQYXJhbXMoe21vZGVsOiBtb2RlbE5hbWUsIG1vZGU6IFwibmV3XCJ9KX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxUZXh0PkNyZWF0ZSBuZXc8L1RleHQ+XG4gICAgICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8Lz5cbiAgICAgICAgfVxuICAgICAgICB7bW9kZWwgJiYgcGFnZVRvU2hvdyA9PSBcInNob3dcIiAmJlxuICAgICAgICAgIDw+XG4gICAgICAgICAgICB7bW9kZWwuY2FuKFwiZWRpdFwiKSAmJiBoYXNFZGl0Q29uZmlnKG1vZGVsQ2xhc3MpICYmXG4gICAgICAgICAgICAgIDxMaW5rXG4gICAgICAgICAgICAgICAgZGF0YVNldD17ZGF0YVNldHMuZWRpdE1vZGVsTGluayB8fD0ge2NsYXNzOiBcImVkaXQtbW9kZWwtbGlua1wifX1cbiAgICAgICAgICAgICAgICBzdHlsZT17c3R5bGVzLmVkaXRNb2RlbExpbmt9XG4gICAgICAgICAgICAgICAgdG89e1BhcmFtcy53aXRoUGFyYW1zKHttb2RlbDogbW9kZWxOYW1lLCBtb2RlbF9pZDogbW9kZWxJZCwgbW9kZTogXCJlZGl0XCJ9KX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxUZXh0PkVkaXQ8L1RleHQ+XG4gICAgICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHttb2RlbC5jYW4oXCJkZXN0cm95XCIpICYmXG4gICAgICAgICAgICAgIDxQcmVzc2FibGVcbiAgICAgICAgICAgICAgICBkYXRhU2V0PXtkYXRhU2V0cy5kZXN0cm95TW9kZWxMaW5rIHx8PSB7Y2xhc3M6IFwiZGVzdHJveS1tb2RlbC1saW5rXCJ9fVxuICAgICAgICAgICAgICAgIG9uUHJlc3M9e3RoaXMudHQub25EZXN0cm95Q2xpY2tlZH1cbiAgICAgICAgICAgICAgICBzdHlsZT17c3R5bGVzLmRlc3Ryb3lNb2RlbExpbmt9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8VGV4dD5EZWxldGU8L1RleHQ+XG4gICAgICAgICAgICAgIDwvUHJlc3NhYmxlPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvPlxuICAgICAgICB9XG4gICAgICAgIHtwYWdlVG9TaG93ID09IFwic2hvd19yZWZsZWN0aW9uXCIgJiZcbiAgICAgICAgICA8U2hvd1JlZmxlY3Rpb25BY3Rpb25zIG1vZGVsPXttb2RlbH0gbW9kZWxDbGFzcz17bW9kZWxDbGFzc30gcmVmbGVjdGlvbk5hbWU9e3F1ZXJ5UGFyYW1zLm1vZGVsX3JlZmxlY3Rpb259IC8+XG4gICAgICAgIH1cbiAgICAgIDwvVmlldz4sIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgcmVhY3QvanN4LWNsb3NpbmctdGFnLWxvY2F0aW9uXG4gICAgICBbY2FuQ2FuLmdldENhY2hlS2V5KCksIGNvbmZpZ1JlYWRlcj8uYWN0aW9ucywgbW9kZWwsIG1vZGVsQ2xhc3MsIHBhZ2VUb1Nob3ddXG4gICAgKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxMYXlvdXQgYWN0aW9ucz17YWN0aW9uc30gYWN0aXZlPXtxdWVyeVBhcmFtcy5tb2RlbH0gaGVhZGVyVGl0bGU9e21vZGVsQ2xhc3M/Lm1vZGVsTmFtZSgpPy5odW1hbih7Y291bnQ6IDJ9KX0+XG4gICAgICAgIHtwYWdlVG9TaG93ID09IFwiaW5kZXhcIiAmJlxuICAgICAgICAgIDxJbmRleFBhZ2VcbiAgICAgICAgICAgIGtleT17YGluZGV4LXBhZ2UtJHttb2RlbE5hbWV9YH1cbiAgICAgICAgICAgIG1vZGVsQ2xhc3M9e21vZGVsQ2xhc3N9XG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgICB7cGFnZVRvU2hvdyA9PSBcInNob3dcIiAmJlxuICAgICAgICAgIDxTaG93UGFnZVxuICAgICAgICAgICAga2V5PXtgc2hvdy1wYWdlLSR7bW9kZWxOYW1lfS0ke21vZGVsSWR9YH1cbiAgICAgICAgICAgIG1vZGVsQ2xhc3M9e21vZGVsQ2xhc3N9XG4gICAgICAgICAgICBtb2RlbElkPXttb2RlbElkfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgICAge3BhZ2VUb1Nob3cgPT0gXCJzaG93X3JlZmxlY3Rpb25cIiAmJlxuICAgICAgICAgIDxTaG93UmVmbGVjdGlvblBhZ2VcbiAgICAgICAgICAgIGtleT17YHNob3ctcmVmbGVjdGlvbi1wYWdlLSR7bW9kZWxOYW1lfS0ke21vZGVsSWR9YH1cbiAgICAgICAgICAgIG1vZGVsQ2xhc3M9e21vZGVsQ2xhc3N9XG4gICAgICAgICAgICBtb2RlbElkPXttb2RlbElkfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgICAge3BhZ2VUb1Nob3cgPT0gXCJlZGl0XCIgJiZcbiAgICAgICAgICA8RWRpdFBhZ2VcbiAgICAgICAgICAgIGtleT17YGVkaXQtcGFnZS0ke21vZGVsTmFtZX0tJHttb2RlbElkfWB9XG4gICAgICAgICAgICBtb2RlbENsYXNzPXttb2RlbENsYXNzfVxuICAgICAgICAgICAgbW9kZWxJZD17bW9kZWxJZH1cbiAgICAgICAgICAvPlxuICAgICAgICB9XG4gICAgICA8L0xheW91dD5cbiAgICApXG4gIH1cblxuICBvbkRlc3Ryb3lDbGlja2VkID0gYXN5bmMgKCkgPT4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1hbGVydFxuICAgIGlmICghY29uZmlybShcIkFyZSB5b3Ugc3VyZT9cIikpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLnMubW9kZWwuZGVzdHJveSgpXG5cbiAgICAgIFBhcmFtcy5jaGFuZ2VQYXJhbXMoe21vZGU6IHVuZGVmaW5lZCwgbW9kZWxfaWQ6IHVuZGVmaW5lZH0pXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIEZsYXNoTm90aWZpY2F0aW9ucy5lcnJvclJlc3BvbnNlKGVycm9yKVxuICAgIH1cbiAgfVxuXG4gIGN1cnJlbnRQYWdlVG9TaG93ID0gKCkgPT4ge1xuICAgIGNvbnN0IHtxdWVyeVBhcmFtc30gPSB0aGlzLnR0XG5cbiAgICBpZiAocXVlcnlQYXJhbXMubW9kZWwgJiYgcXVlcnlQYXJhbXMubW9kZWxfaWQgJiYgcXVlcnlQYXJhbXMubW9kZWxfcmVmbGVjdGlvbikge1xuICAgICAgcmV0dXJuIFwic2hvd19yZWZsZWN0aW9uXCJcbiAgICB9IGVsc2UgaWYgKHF1ZXJ5UGFyYW1zLm1vZGVsICYmIHF1ZXJ5UGFyYW1zLm1vZGVsX2lkICYmIHF1ZXJ5UGFyYW1zLm1vZGUgPT0gXCJlZGl0XCIpIHtcbiAgICAgIHJldHVybiBcImVkaXRcIlxuICAgIH0gZWxzZSBpZiAocXVlcnlQYXJhbXMubW9kZWwgJiYgcXVlcnlQYXJhbXMubW9kZWxfaWQpIHtcbiAgICAgIHJldHVybiBcInNob3dcIlxuICAgIH0gZWxzZSBpZiAocXVlcnlQYXJhbXMubW9kZWwgJiYgcXVlcnlQYXJhbXMubW9kZSA9PSBcIm5ld1wiKSB7XG4gICAgICByZXR1cm4gXCJlZGl0XCJcbiAgICB9IGVsc2UgaWYgKHF1ZXJ5UGFyYW1zLm1vZGVsKSB7XG4gICAgICByZXR1cm4gXCJpbmRleFwiXG4gICAgfVxuXG4gICAgcmV0dXJuIFwid2VsY29tZVwiXG4gIH1cblxuICBwYWdlTmVlZHNMb2FkZWRNb2RlbCA9ICgpID0+IHtcbiAgICBjb25zdCB7cGFnZVRvU2hvd30gPSB0aGlzLnR0XG5cbiAgICByZXR1cm4gcGFnZVRvU2hvdyA9PSBcInNob3dcIiB8fCBwYWdlVG9TaG93ID09IFwic2hvd19yZWZsZWN0aW9uXCJcbiAgfVxufSkpXG4iXX0=
@@ -1 +1 @@
1
- {"version":3,"file":"table-settings.d.ts","sourceRoot":"/src/","sources":["table/table-settings.js"],"names":[],"mappings":"AAkBA,yCAAyC;AACzC;IACE,mBAAmB;IACnB;;OAGC;IAFC,WAAkB;IAIpB,4BAA4B;IAC5B,6BAQC;IADC,uBAA6D;IAG/D,eAAe;IACf,mBAAuD;IAEvD,mBAAmB;IACnB,uBAA+D;IAE/D,kBAAkB;IAClB,sBAA6D;IAE7D,uBAAuB;IACvB,kBAAmB,iBAAY;;;MA0B9B;IAED,kCAAkC;IAClC,6BAA8B,iBAAY,SAKzC;IAED,yCAAyC;IACzC,sDAcC;IAED,wBAAwB;IACxB,qCAaC;IAED,+BAA+B;IAC/B,+BAMC;IAED,iCAAiC;IACjC,iCAMC;IAED,wBAAwB;IACxB,wBAUC;IAED,iCAAiC;IACjC,8CA4BC;IAED,sBAAsB;IACtB;;;;;;;;;;MASC;IAED,0BAA0B;IAC1B,qBAA4B,iBAAY,kBA8FvC;CACF"}
1
+ {"version":3,"file":"table-settings.d.ts","sourceRoot":"/src/","sources":["table/table-settings.js"],"names":[],"mappings":"AAkBA,yCAAyC;AACzC;IACE,mBAAmB;IACnB;;OAGC;IAFC,WAAkB;IAIpB,4BAA4B;IAC5B,6BAQC;IADC,uBAA6D;IAG/D,eAAe;IACf,mBAAuD;IAEvD,mBAAmB;IACnB,uBAA+D;IAE/D,kBAAkB;IAClB,sBAA6D;IAE7D,uBAAuB;IACvB,kBAAmB,iBAAY;;;MA0B9B;IAED,kCAAkC;IAClC,6BAA8B,iBAAY,SAKzC;IAED,yCAAyC;IACzC,sDAcC;IAED,wBAAwB;IACxB,qCAaC;IAED,+BAA+B;IAC/B,+BAMC;IAED,iCAAiC;IACjC,iCAMC;IAED,wBAAwB;IACxB,wBAUC;IAED,iCAAiC;IACjC,8CA4BC;IAED,sBAAsB;IACtB;;;;;;;;;;MASC;IAED,0BAA0B;IAC1B,qBAA4B,iBAAY,kBAsGvC;CACF"}
@@ -224,8 +224,14 @@ export default class ApiMakerTableSettings {
224
224
  if (changed) {
225
225
  const tableSettingFormData = objectToFormData({ table_setting: tableSettingData });
226
226
  await tableSetting.saveRaw(tableSettingFormData);
227
+ // Re-read the table setting after structural updates so prepared columns use the
228
+ // persisted column list rather than the stale pre-save association cache.
229
+ const reloadedTableSetting = await this.loadTableSetting();
230
+ if (!reloadedTableSetting)
231
+ throw new Error("No reloadedTableSetting returned by loadTableSetting");
232
+ return reloadedTableSetting;
227
233
  }
228
234
  return tableSetting;
229
235
  };
230
236
  }
231
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtc2V0dGluZ3MuanMiLCJzb3VyY2VSb290IjoiL3NyYy8iLCJzb3VyY2VzIjpbInRhYmxlL3RhYmxlLXNldHRpbmdzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG1HQUFtRztBQUNuRyxPQUFPLGdCQUFnQixNQUFNLHdCQUF3QixDQUFBO0FBQ3JELE9BQU8sYUFBYSxNQUFNLHFCQUFxQixDQUFBO0FBQy9DLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxXQUFXLENBQUE7QUFDOUIsT0FBTyxLQUFLLFVBQVUsTUFBTSxZQUFZLENBQUE7QUFDeEMsT0FBTyxNQUFNLE1BQU0sY0FBYyxDQUFBO0FBQ2pDLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLFlBQVksQ0FBQTtBQUM1QyxPQUFPLEVBQUMsU0FBUyxJQUFJLGdCQUFnQixFQUFDLE1BQU0sb0JBQW9CLENBQUE7QUFDaEUsbUJBQW1CO0FBQ25CLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxXQUFXLENBQUE7QUFDdEMsbUJBQW1CO0FBQ25CLE9BQU8sRUFBQyxFQUFFLElBQUksTUFBTSxFQUFDLE1BQU0sTUFBTSxDQUFBO0FBRWpDLE1BQU0sTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLEVBQUMsSUFBSSxFQUFFLDBCQUEwQixFQUFDLENBQUMsQ0FBQTtBQUU3RCwrQ0FBK0M7QUFDL0MsTUFBTSxrQkFBa0IsR0FBRyxFQUFFLENBQUE7QUFFN0IseUNBQXlDO0FBQ3pDLE1BQU0sQ0FBQyxPQUFPLE9BQU8scUJBQXFCO0lBQ3hDLG1CQUFtQjtJQUNuQixZQUFZLEVBQUMsS0FBSyxFQUFDO1FBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFBO1FBQ2xCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFBO0lBQzdCLENBQUM7SUFFRCw0QkFBNEI7SUFDNUIsb0JBQW9CO1FBQ2xCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQTtRQUVwQyxJQUFJLENBQUMsQ0FBQyxVQUFVLElBQUksa0JBQWtCLENBQUMsRUFBRSxDQUFDO1lBQ3hDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksaUJBQWlCLEVBQUUsQ0FBQTtRQUMxRCxDQUFDO1FBRUQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxVQUFVLENBQUMsQ0FBQTtJQUMvRCxDQUFDO0lBRUQsZUFBZTtJQUNmLE9BQU8sR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyxFQUFFLENBQUE7SUFFdkQsbUJBQW1CO0lBQ25CLFdBQVcsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsYUFBYSxDQUFDLENBQUE7SUFFL0Qsa0JBQWtCO0lBQ2xCLFVBQVUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUE7SUFFN0QsdUJBQXVCO0lBQ3ZCLGVBQWUsR0FBRyxDQUFDLFlBQVksRUFBRSxFQUFFO1FBQ2pDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUE7UUFDM0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFlBQVksQ0FBQyxDQUFBO1FBQzdELE1BQU0sTUFBTSxHQUFHO1lBQ2IsT0FBTyxFQUFFLEVBQUU7WUFDWCxPQUFPLEVBQUUsRUFBRTtTQUNaLENBQUE7UUFFRCxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU07UUFFcEIsS0FBSyxNQUFNLGtCQUFrQixJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ3pDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLGtCQUFrQixDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUE7WUFFcEcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBQyxNQUFNLEVBQUUsa0JBQWtCLEVBQUMsQ0FBQyxDQUFBO1lBRWpELDJDQUEyQztZQUMzQyxJQUFJLGFBQWEsQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLENBQUMsRUFBRSxDQUFDO2dCQUM5QyxJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDaEIsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7b0JBRXhGLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7d0JBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7Z0JBQ3JFLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFBO0lBQ2YsQ0FBQyxDQUFBO0lBRUQsa0NBQWtDO0lBQ2xDLDBCQUEwQixHQUFHLENBQUMsWUFBWSxFQUFFLEVBQUU7UUFDNUMsT0FBTyxZQUFZO2FBQ2hCLE9BQU8sRUFBRTthQUNULE1BQU0sRUFBRTthQUNSLElBQUksQ0FBQyxDQUFDLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsR0FBRyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBO0lBQ3hILENBQUMsQ0FBQTtJQUVELHlDQUF5QztJQUN6QyxpQ0FBaUMsR0FBRyxLQUFLLElBQUksRUFBRTtRQUM3QyxPQUFPLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksRUFBRTtZQUNuRCxJQUFJLFlBQVksR0FBRyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFBO1lBRWhELElBQUksWUFBWSxFQUFFLENBQUM7Z0JBQ2pCLFlBQVksR0FBRyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsQ0FBQTtZQUM1RCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sWUFBWSxHQUFHLE1BQU0sSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUE7Z0JBRXJELElBQUksQ0FBQyxZQUFZO29CQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsdURBQXVELENBQUMsQ0FBQTtZQUM3RixDQUFDO1lBRUQsT0FBTyxZQUFZLENBQUE7UUFDckIsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDLENBQUE7SUFFRCx3QkFBd0I7SUFDeEIsZ0JBQWdCLEdBQUcsS0FBSyxJQUFJLEVBQUU7UUFDNUIsSUFBSSxDQUFDLFlBQVk7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxDQUFDLENBQUE7UUFFakYsTUFBTSxZQUFZLEdBQUcsTUFBTSxZQUFZO2FBQ3BDLE9BQU8sQ0FBQztZQUNQLGFBQWEsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2hDLFVBQVUsRUFBRSxJQUFJLENBQUMsdUJBQXVCLEVBQUU7WUFDMUMsWUFBWSxFQUFFLElBQUksQ0FBQyx5QkFBeUIsRUFBRTtTQUMvQyxDQUFDO2FBQ0QsT0FBTyxDQUFDLFNBQVMsQ0FBQzthQUNsQixLQUFLLEVBQUUsQ0FBQTtRQUVWLE9BQU8sWUFBWSxDQUFBO0lBQ3JCLENBQUMsQ0FBQTtJQUVELCtCQUErQjtJQUMvQix1QkFBdUI7UUFDckIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFBO1FBRXRDLElBQUksV0FBVztZQUFFLE9BQU8sV0FBVyxDQUFDLEVBQUUsRUFBRSxDQUFBO1FBRXhDLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUE7SUFDaEMsQ0FBQztJQUVELGlDQUFpQztJQUNqQyx5QkFBeUI7UUFDdkIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFBO1FBRXRDLElBQUksV0FBVztZQUFFLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQTtRQUVsRSxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFRCx3QkFBd0I7SUFDeEIsZ0JBQWdCO1FBQ2QsTUFBTSxZQUFZLEdBQUcsZ0NBQWdDLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFBO1FBRXhFLElBQUksQ0FBQyxDQUFDLFlBQVksSUFBSSxZQUFZLENBQUMsRUFBRSxDQUFDO1lBQ3BDLE1BQU0sV0FBVyxHQUFHLE1BQU0sRUFBRSxDQUFBO1lBRTVCLFlBQVksQ0FBQyxZQUFZLENBQUMsR0FBRyxXQUFXLENBQUE7UUFDMUMsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsQ0FBQTtJQUN6QyxDQUFDO0lBRUQsaUNBQWlDO0lBQ2pDLHlCQUF5QixHQUFHLEtBQUssSUFBSSxFQUFFO1FBQ3JDLE1BQU0sZ0JBQWdCLEdBQUc7WUFDdkIsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDN0IsT0FBTyxFQUFFLElBQUksQ0FBQyx1QkFBdUIsRUFBRTtZQUN2QyxTQUFTLEVBQUUsSUFBSSxDQUFDLHlCQUF5QixFQUFFO1lBQzNDLGtCQUFrQixFQUFFLEVBQUU7U0FDdkIsQ0FBQTtRQUVELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQTtRQUU5QixLQUFLLE1BQU0sU0FBUyxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ2hDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUE7WUFDdkMsTUFBTSxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUE7WUFDM0MsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsRUFBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBQyxDQUFDLENBQUE7WUFFakYsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLEdBQUcsVUFBVSxDQUFBO1FBQzdELENBQUM7UUFFRCxNQUFNLFlBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFBO1FBQ3ZDLE1BQU0sb0JBQW9CLEdBQUcsZ0JBQWdCLENBQUMsRUFBQyxhQUFhLEVBQUUsZ0JBQWdCLEVBQUMsQ0FBQyxDQUFBO1FBRWhGLE1BQU0sWUFBWSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO1FBRWhELE1BQU0sb0JBQW9CLEdBQUcsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQTtRQUUxRCxJQUFJLENBQUMsb0JBQW9CO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxzREFBc0QsQ0FBQyxDQUFBO1FBRWxHLE9BQU8sb0JBQW9CLENBQUE7SUFDN0IsQ0FBQyxDQUFBO0lBRUQsc0JBQXNCO0lBQ3RCLGNBQWMsQ0FBQyxNQUFNLEVBQUUsRUFBQyxVQUFVLEVBQUUsUUFBUSxFQUFDO1FBQzNDLE9BQU87WUFDTCxjQUFjLEVBQUUsTUFBTSxDQUFDLFNBQVM7WUFDaEMsVUFBVTtZQUNWLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtZQUNqQixRQUFRO1lBQ1IsUUFBUSxFQUFFLE1BQU0sQ0FBQyxPQUFPO1lBQ3hCLE9BQU8sRUFBRSxJQUFJO1NBQ2QsQ0FBQTtJQUNILENBQUM7SUFFRCwwQkFBMEI7SUFDMUIsa0JBQWtCLEdBQUcsS0FBSyxFQUFFLFlBQVksRUFBRSxFQUFFO1FBQzFDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxlQUFlLEVBQUUsU0FBUyxDQUFDLENBQUE7UUFDMUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFBO1FBQzlCLE1BQU0sV0FBVyxHQUFHLEVBQUUsQ0FBQTtRQUN0QixNQUFNLGdCQUFnQixHQUFHLEVBQUMsa0JBQWtCLEVBQUUsV0FBVyxFQUFDLENBQUE7UUFDMUQsSUFBSSxlQUFlLEdBQUcsQ0FBQyxDQUFBO1FBQ3ZCLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQTtRQUVuQixzQkFBc0I7UUFDdEIsS0FBSyxNQUFNLE1BQU0sSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUM3QixNQUFNLFVBQVUsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQTtZQUMzQyxNQUFNLGtCQUFrQixHQUFHLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLENBQUMsa0JBQWtCLENBQUMsVUFBVSxFQUFFLElBQUksVUFBVSxDQUFDLENBQUE7WUFFdEksSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7Z0JBQ3hCLE1BQU0sU0FBUyxHQUFHLEVBQUUsZUFBZSxDQUFBO2dCQUVuQyxXQUFXLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FDMUMsTUFBTSxFQUNOO29CQUNFLFVBQVU7b0JBQ1YsUUFBUSxFQUFFLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxNQUFNLEdBQUcsU0FBUztpQkFDN0QsQ0FDRixDQUFBO2dCQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsa0NBQWtDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFBO2dCQUNwRSxPQUFPLEdBQUcsSUFBSSxDQUFBO1lBQ2hCLENBQUM7UUFDSCxDQUFDO1FBRUQsS0FBSyxNQUFNLGtCQUFrQixJQUFJLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO1lBQ2pFLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLGtCQUFrQixDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUE7WUFFcEcsSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFDWCxpQ0FBaUM7Z0JBQ2pDLElBQUksYUFBYSxHQUFHLEtBQUssQ0FBQTtnQkFFekIsS0FBSyxNQUFNLGdCQUFnQixJQUFJLHFCQUFxQixFQUFFLENBQUM7b0JBQ3JELElBQUksbUJBQW1CLENBQUE7b0JBRXZCLElBQUksZ0JBQWdCLElBQUksZUFBZSxFQUFFLENBQUM7d0JBQ3hDLG1CQUFtQixHQUFHLFdBQVcsQ0FBQTtvQkFDbkMsQ0FBQzt5QkFBTSxDQUFDO3dCQUNOLG1CQUFtQixHQUFHLGdCQUFnQixDQUFBO29CQUN4QyxDQUFDO29CQUVELE1BQU0saUJBQWlCLEdBQUcsa0JBQWtCLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFBO29CQUNoRSxNQUFNLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO29CQUVyRCxJQUFJLGlCQUFpQixJQUFJLGlCQUFpQixFQUFFLENBQUM7d0JBQzNDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxnQkFBZ0IsaUJBQWlCLGlCQUFpQixPQUFPLGlCQUFpQixlQUFlLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFBO3dCQUM5SCxhQUFhLEdBQUcsSUFBSSxDQUFBO29CQUN0QixDQUFDO2dCQUNILENBQUM7Z0JBRUQsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQTtnQkFDdEQsTUFBTSw4QkFBOEIsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtnQkFFaEUsSUFBSSxrQkFBa0IsSUFBSSw4QkFBOEIsRUFBRSxDQUFDO29CQUN6RCxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLG1CQUFtQixNQUFNLENBQUMsS0FBSyxTQUFTLGtCQUFrQixPQUFPLDhCQUE4QixFQUFFLENBQUMsQ0FBQTtvQkFDckgsYUFBYSxHQUFHLElBQUksQ0FBQTtnQkFDdEIsQ0FBQztnQkFFRCxJQUFJLGFBQWEsRUFBRSxDQUFDO29CQUNsQixNQUFNLFNBQVMsR0FBRyxFQUFFLGVBQWUsQ0FBQTtvQkFFbkMsT0FBTyxHQUFHLElBQUksQ0FBQTtvQkFDZCxXQUFXLENBQUMsU0FBUyxDQUFDLEdBQUc7d0JBQ3ZCLGNBQWMsRUFBRSxNQUFNLENBQUMsYUFBYTt3QkFDcEMsRUFBRSxFQUFFLGtCQUFrQixDQUFDLEVBQUUsRUFBRTt3QkFDM0IsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO3dCQUNqQixRQUFRLEVBQUUsTUFBTSxDQUFDLE9BQU87cUJBQ3pCLENBQUE7Z0JBQ0gsQ0FBQztZQUNILENBQUM7aUJBQU0sQ0FBQztnQkFDTix3Q0FBd0M7Z0JBQ3hDLE1BQU0sU0FBUyxHQUFHLEVBQUUsZUFBZSxDQUFBO2dCQUVuQyxXQUFXLENBQUMsU0FBUyxDQUFDLEdBQUc7b0JBQ3ZCLEVBQUUsRUFBRSxrQkFBa0IsQ0FBQyxFQUFFLEVBQUU7b0JBQzNCLFFBQVEsRUFBRSxJQUFJO2lCQUNmLENBQUE7Z0JBQ0QsT0FBTyxHQUFHLElBQUksQ0FBQTtnQkFFZCxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLHVCQUF1QixrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUE7WUFDOUUsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osTUFBTSxvQkFBb0IsR0FBRyxnQkFBZ0IsQ0FBQyxFQUFDLGFBQWEsRUFBRSxnQkFBZ0IsRUFBQyxDQUFDLENBQUE7WUFFaEYsTUFBTSxZQUFZLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUE7UUFDbEQsQ0FBQztRQUVELE9BQU8sWUFBWSxDQUFBO0lBQ3JCLENBQUMsQ0FBQTtDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgYXJyb3ctYm9keS1zdHlsZSwgaW1wb3J0L25vLXVucmVzb2x2ZWQsIG5ld2xpbmUtcGVyLWNoYWluZWQtY2FsbCwgc29ydC1pbXBvcnRzICovXG5pbXBvcnQgY29sdW1uSWRlbnRpZmllciBmcm9tIFwiLi9jb2x1bW4taWRlbnRpZmllci5qc1wiXG5pbXBvcnQgY29sdW1uVmlzaWJsZSBmcm9tIFwiLi9jb2x1bW4tdmlzaWJsZS5qc1wiXG5pbXBvcnQge2RpZ2d9IGZyb20gXCJkaWdnZXJpemVcIlxuaW1wb3J0ICogYXMgaW5mbGVjdGlvbiBmcm9tIFwiaW5mbGVjdGlvblwiXG5pbXBvcnQgTG9nZ2VyIGZyb20gXCIuLi9sb2dnZXIuanNcIlxuaW1wb3J0IHtSZWFkZXJzV3JpdGVyTG9ja30gZnJvbSBcImVwaWMtbG9ja3NcIlxuaW1wb3J0IHtzZXJpYWxpemUgYXMgb2JqZWN0VG9Gb3JtRGF0YX0gZnJvbSBcIm9iamVjdC10by1mb3JtZGF0YVwiXG4vLyBAdHMtZXhwZWN0LWVycm9yXG5pbXBvcnQge1RhYmxlU2V0dGluZ30gZnJvbSBcIm1vZGVscy5qc1wiXG4vLyBAdHMtZXhwZWN0LWVycm9yXG5pbXBvcnQge3Y0IGFzIHV1aWR2NH0gZnJvbSBcInV1aWRcIlxuXG5jb25zdCBsb2dnZXIgPSBuZXcgTG9nZ2VyKHtuYW1lOiBcIkFwaU1ha2VyIC8gVGFibGVTZXR0aW5nc1wifSlcblxuLy8gSGF2ZSBhIGxvY2sgZm9yIGVhY2ggdW5pcXVlIHRhYmxlIGlkZW50aWZpZXJcbmNvbnN0IHRhYmxlU2V0dGluZ3NMb2NrcyA9IHt9XG5cbi8qKiBQZXJzaXN0ZW50IHRhYmxlIHNldHRpbmdzIG1hbmFnZXIuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBcGlNYWtlclRhYmxlU2V0dGluZ3Mge1xuICAvKiogQ29uc3RydWN0b3IuICovXG4gIGNvbnN0cnVjdG9yKHt0YWJsZX0pIHtcbiAgICB0aGlzLnRhYmxlID0gdGFibGVcbiAgICB0aGlzLnNldFRhYmxlU2V0dGluZ3NMb2NrKClcbiAgfVxuXG4gIC8qKiBzZXRUYWJsZVNldHRpbmdzTG9jay4gKi9cbiAgc2V0VGFibGVTZXR0aW5nc0xvY2soKSB7XG4gICAgY29uc3QgaWRlbnRpZmllciA9IHRoaXMuaWRlbnRpZmllcigpXG5cbiAgICBpZiAoIShpZGVudGlmaWVyIGluIHRhYmxlU2V0dGluZ3NMb2NrcykpIHtcbiAgICAgIHRhYmxlU2V0dGluZ3NMb2Nrc1tpZGVudGlmaWVyXSA9IG5ldyBSZWFkZXJzV3JpdGVyTG9jaygpXG4gICAgfVxuXG4gICAgdGhpcy50YWJsZVNldHRpbmdzTG9jayA9IGRpZ2codGFibGVTZXR0aW5nc0xvY2tzLCBpZGVudGlmaWVyKVxuICB9XG5cbiAgLyoqIGNvbHVtbnMuICovXG4gIGNvbHVtbnMgPSAoKSA9PiBkaWdnKHRoaXMsIFwidGFibGVcIiwgXCJjb2x1bW5zQXNBcnJheVwiKSgpXG5cbiAgLyoqIGN1cnJlbnRVc2VyLiAqL1xuICBjdXJyZW50VXNlciA9ICgpID0+IGRpZ2codGhpcywgXCJ0YWJsZVwiLCBcInByb3BzXCIsIFwiY3VycmVudFVzZXJcIilcblxuICAvKiogaWRlbnRpZmllci4gKi9cbiAgaWRlbnRpZmllciA9ICgpID0+IGRpZ2codGhpcywgXCJ0YWJsZVwiLCBcInN0YXRlXCIsIFwiaWRlbnRpZmllclwiKVxuXG4gIC8qKiBwcmVwYXJlZENvbHVtbnMuICovXG4gIHByZXBhcmVkQ29sdW1ucyA9ICh0YWJsZVNldHRpbmcpID0+IHtcbiAgICBjb25zdCBjb2x1bW5zID0gdGhpcy50YWJsZS5jb2x1bW5zQXNBcnJheSgpXG4gICAgY29uc3Qgb3JkZXJlZCA9IHRoaXMub3JkZXJlZFRhYmxlU2V0dGluZ0NvbHVtbnModGFibGVTZXR0aW5nKVxuICAgIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAgIGNvbHVtbnM6IFtdLFxuICAgICAgcHJlbG9hZDogW11cbiAgICB9XG5cbiAgICBpZiAoIW9yZGVyZWQpIHJldHVyblxuXG4gICAgZm9yIChjb25zdCB0YWJsZVNldHRpbmdDb2x1bW4gb2Ygb3JkZXJlZCkge1xuICAgICAgY29uc3QgY29sdW1uID0gY29sdW1ucy5maW5kKChjb2x1bW4pID0+IGNvbHVtbklkZW50aWZpZXIoY29sdW1uKSA9PSB0YWJsZVNldHRpbmdDb2x1bW4uaWRlbnRpZmllcigpKVxuXG4gICAgICByZXN1bHQuY29sdW1ucy5wdXNoKHtjb2x1bW4sIHRhYmxlU2V0dGluZ0NvbHVtbn0pXG5cbiAgICAgIC8vIEFkZCBuZWVkZWQgcHJlbG9hZHMgaWYgY29sdW1uIGlzIHZpc2libGVcbiAgICAgIGlmIChjb2x1bW5WaXNpYmxlKGNvbHVtbiwgdGFibGVTZXR0aW5nQ29sdW1uKSkge1xuICAgICAgICBpZiAoY29sdW1uLnBhdGgpIHtcbiAgICAgICAgICBjb25zdCBwcmVsb2FkID0gY29sdW1uLnBhdGgubWFwKChwYXRoUGFydCkgPT4gaW5mbGVjdGlvbi51bmRlcnNjb3JlKHBhdGhQYXJ0KSkuam9pbihcIi5cIilcblxuICAgICAgICAgIGlmICghcmVzdWx0LnByZWxvYWQuaW5jbHVkZXMocHJlbG9hZCkpIHJlc3VsdC5wcmVsb2FkLnB1c2gocHJlbG9hZClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHRcbiAgfVxuXG4gIC8qKiBvcmRlcmVkVGFibGVTZXR0aW5nQ29sdW1ucy4gKi9cbiAgb3JkZXJlZFRhYmxlU2V0dGluZ0NvbHVtbnMgPSAodGFibGVTZXR0aW5nKSA9PiB7XG4gICAgcmV0dXJuIHRhYmxlU2V0dGluZ1xuICAgICAgLmNvbHVtbnMoKVxuICAgICAgLmxvYWRlZCgpXG4gICAgICAuc29ydCgodGFibGVTZXR0aW5nQ29sdW1uMSwgdGFibGVTZXR0aW5nQ29sdW1uMikgPT4gdGFibGVTZXR0aW5nQ29sdW1uMS5wb3NpdGlvbigpIC0gdGFibGVTZXR0aW5nQ29sdW1uMi5wb3NpdGlvbigpKVxuICB9XG5cbiAgLyoqIGxvYWRFeGlzdGluZ09yQ3JlYXRlVGFibGVTZXR0aW5ncy4gKi9cbiAgbG9hZEV4aXN0aW5nT3JDcmVhdGVUYWJsZVNldHRpbmdzID0gYXN5bmMgKCkgPT4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLnRhYmxlU2V0dGluZ3NMb2NrLndyaXRlKGFzeW5jICgpID0+IHtcbiAgICAgIGxldCB0YWJsZVNldHRpbmcgPSBhd2FpdCB0aGlzLmxvYWRUYWJsZVNldHRpbmcoKVxuXG4gICAgICBpZiAodGFibGVTZXR0aW5nKSB7XG4gICAgICAgIHRhYmxlU2V0dGluZyA9IGF3YWl0IHRoaXMudXBkYXRlVGFibGVTZXR0aW5nKHRhYmxlU2V0dGluZylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRhYmxlU2V0dGluZyA9IGF3YWl0IHRoaXMuY3JlYXRlSW5pdGlhbFRhYmxlU2V0dGluZygpXG5cbiAgICAgICAgaWYgKCF0YWJsZVNldHRpbmcpIHRocm93IG5ldyBFcnJvcihcIk5vIHRhYmxlU2V0dGluZyByZXR1cm5lZCBieSBjcmVhdGVJbml0aWFsVGFibGVTZXR0aW5nXCIpXG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0YWJsZVNldHRpbmdcbiAgICB9KVxuICB9XG5cbiAgLyoqIGxvYWRUYWJsZVNldHRpbmcuICovXG4gIGxvYWRUYWJsZVNldHRpbmcgPSBhc3luYyAoKSA9PiB7XG4gICAgaWYgKCFUYWJsZVNldHRpbmcpIHRocm93IG5ldyBFcnJvcihcIlRhYmxlU2V0dGluZyBtb2RlbCBpc24ndCBnbG9iYWxseSBhdmFpbGFibGVcIilcblxuICAgIGNvbnN0IHRhYmxlU2V0dGluZyA9IGF3YWl0IFRhYmxlU2V0dGluZ1xuICAgICAgLnJhbnNhY2soe1xuICAgICAgICBpZGVudGlmaWVyX2VxOiB0aGlzLmlkZW50aWZpZXIoKSxcbiAgICAgICAgdXNlcl9pZF9lcTogdGhpcy5jdXJyZW50VXNlcklkT3JGYWxsYmFjaygpLFxuICAgICAgICB1c2VyX3R5cGVfZXE6IHRoaXMuY3VycmVudFVzZXJUeXBlT3JGYWxsYmFjaygpXG4gICAgICB9KVxuICAgICAgLnByZWxvYWQoXCJjb2x1bW5zXCIpXG4gICAgICAuZmlyc3QoKVxuXG4gICAgcmV0dXJuIHRhYmxlU2V0dGluZ1xuICB9XG5cbiAgLyoqIGN1cnJlbnRVc2VySWRPckZhbGxiYWNrLiAqL1xuICBjdXJyZW50VXNlcklkT3JGYWxsYmFjaygpIHtcbiAgICBjb25zdCBjdXJyZW50VXNlciA9IHRoaXMuY3VycmVudFVzZXIoKVxuXG4gICAgaWYgKGN1cnJlbnRVc2VyKSByZXR1cm4gY3VycmVudFVzZXIuaWQoKVxuXG4gICAgcmV0dXJuIHRoaXMuYW5vbnltb3VzZVVzZXJJZCgpXG4gIH1cblxuICAvKiogY3VycmVudFVzZXJUeXBlT3JGYWxsYmFjay4gKi9cbiAgY3VycmVudFVzZXJUeXBlT3JGYWxsYmFjaygpIHtcbiAgICBjb25zdCBjdXJyZW50VXNlciA9IHRoaXMuY3VycmVudFVzZXIoKVxuXG4gICAgaWYgKGN1cnJlbnRVc2VyKSByZXR1cm4gZGlnZyhjdXJyZW50VXNlci5tb2RlbENsYXNzRGF0YSgpLCBcIm5hbWVcIilcblxuICAgIHJldHVybiBudWxsXG4gIH1cblxuICAvKiogYW5vbnltb3VzZVVzZXJJZC4gKi9cbiAgYW5vbnltb3VzZVVzZXJJZCgpIHtcbiAgICBjb25zdCB2YXJpYWJsZU5hbWUgPSBgQXBpTWFrZXJUYWJsZUFub255bW91c1VzZXJJZC0ke3RoaXMuaWRlbnRpZmllcigpfWBcblxuICAgIGlmICghKHZhcmlhYmxlTmFtZSBpbiBsb2NhbFN0b3JhZ2UpKSB7XG4gICAgICBjb25zdCBnZW5lcmF0ZWRJZCA9IHV1aWR2NCgpXG5cbiAgICAgIGxvY2FsU3RvcmFnZVt2YXJpYWJsZU5hbWVdID0gZ2VuZXJhdGVkSWRcbiAgICB9XG5cbiAgICByZXR1cm4gZGlnZyhsb2NhbFN0b3JhZ2UsIHZhcmlhYmxlTmFtZSlcbiAgfVxuXG4gIC8qKiBjcmVhdGVJbml0aWFsVGFibGVTZXR0aW5nLiAqL1xuICBjcmVhdGVJbml0aWFsVGFibGVTZXR0aW5nID0gYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHRhYmxlU2V0dGluZ0RhdGEgPSB7XG4gICAgICBpZGVudGlmaWVyOiB0aGlzLmlkZW50aWZpZXIoKSxcbiAgICAgIHVzZXJfaWQ6IHRoaXMuY3VycmVudFVzZXJJZE9yRmFsbGJhY2soKSxcbiAgICAgIHVzZXJfdHlwZTogdGhpcy5jdXJyZW50VXNlclR5cGVPckZhbGxiYWNrKCksXG4gICAgICBjb2x1bW5zX2F0dHJpYnV0ZXM6IHt9XG4gICAgfVxuXG4gICAgY29uc3QgY29sdW1ucyA9IHRoaXMuY29sdW1ucygpXG5cbiAgICBmb3IgKGNvbnN0IGNvbHVtbktleSBpbiBjb2x1bW5zKSB7XG4gICAgICBjb25zdCBjb2x1bW4gPSBkaWdnKGNvbHVtbnMsIGNvbHVtbktleSlcbiAgICAgIGNvbnN0IGlkZW50aWZpZXIgPSBjb2x1bW5JZGVudGlmaWVyKGNvbHVtbilcbiAgICAgIGNvbnN0IGNvbHVtbkRhdGEgPSB0aGlzLmNvbHVtblNhdmVEYXRhKGNvbHVtbiwge2lkZW50aWZpZXIsIHBvc2l0aW9uOiBjb2x1bW5LZXl9KVxuXG4gICAgICB0YWJsZVNldHRpbmdEYXRhLmNvbHVtbnNfYXR0cmlidXRlc1tjb2x1bW5LZXldID0gY29sdW1uRGF0YVxuICAgIH1cblxuICAgIGNvbnN0IHRhYmxlU2V0dGluZyA9IG5ldyBUYWJsZVNldHRpbmcoKVxuICAgIGNvbnN0IHRhYmxlU2V0dGluZ0Zvcm1EYXRhID0gb2JqZWN0VG9Gb3JtRGF0YSh7dGFibGVfc2V0dGluZzogdGFibGVTZXR0aW5nRGF0YX0pXG5cbiAgICBhd2FpdCB0YWJsZVNldHRpbmcuc2F2ZVJhdyh0YWJsZVNldHRpbmdGb3JtRGF0YSlcblxuICAgIGNvbnN0IHJlbG9hZGVkVGFibGVTZXR0aW5nID0gYXdhaXQgdGhpcy5sb2FkVGFibGVTZXR0aW5nKClcblxuICAgIGlmICghcmVsb2FkZWRUYWJsZVNldHRpbmcpIHRocm93IG5ldyBFcnJvcihcIk5vIHJlbG9hZGVkVGFibGVTZXR0aW5nIHJldHVybmVkIGJ5IGxvYWRUYWJsZVNldHRpbmdcIilcblxuICAgIHJldHVybiByZWxvYWRlZFRhYmxlU2V0dGluZ1xuICB9XG5cbiAgLyoqIGNvbHVtblNhdmVEYXRhLiAqL1xuICBjb2x1bW5TYXZlRGF0YShjb2x1bW4sIHtpZGVudGlmaWVyLCBwb3NpdGlvbn0pIHtcbiAgICByZXR1cm4ge1xuICAgICAgYXR0cmlidXRlX25hbWU6IGNvbHVtbi5hdHRyaWJ1dGUsXG4gICAgICBpZGVudGlmaWVyLFxuICAgICAgcGF0aDogY29sdW1uLnBhdGgsXG4gICAgICBwb3NpdGlvbixcbiAgICAgIHNvcnRfa2V5OiBjb2x1bW4uc29ydEtleSxcbiAgICAgIHZpc2libGU6IG51bGxcbiAgICB9XG4gIH1cblxuICAvKiogdXBkYXRlVGFibGVTZXR0aW5nLiAqL1xuICB1cGRhdGVUYWJsZVNldHRpbmcgPSBhc3luYyAodGFibGVTZXR0aW5nKSA9PiB7XG4gICAgY29uc3QgY2hhbmdlZEF0dHJpYnV0ZXNMaXN0ID0gW1wiYXR0cmlidXRlTmFtZVwiLCBcInNvcnRLZXlcIl1cbiAgICBjb25zdCBjb2x1bW5zID0gdGhpcy5jb2x1bW5zKClcbiAgICBjb25zdCBjb2x1bW5zRGF0YSA9IHt9XG4gICAgY29uc3QgdGFibGVTZXR0aW5nRGF0YSA9IHtjb2x1bW5zX2F0dHJpYnV0ZXM6IGNvbHVtbnNEYXRhfVxuICAgIGxldCBjb2x1bW5zS2V5Q291bnQgPSAwXG4gICAgbGV0IGNoYW5nZWQgPSBmYWxzZVxuXG4gICAgLy8gQWRkIG1pc3NpbmcgY29sdW1uc1xuICAgIGZvciAoY29uc3QgY29sdW1uIG9mIGNvbHVtbnMpIHtcbiAgICAgIGNvbnN0IGlkZW50aWZpZXIgPSBjb2x1bW5JZGVudGlmaWVyKGNvbHVtbilcbiAgICAgIGNvbnN0IHRhYmxlU2V0dGluZ0NvbHVtbiA9IHRhYmxlU2V0dGluZy5jb2x1bW5zKCkubG9hZGVkKCkuZmluZCgodGFibGVTZXR0aW5nQ29sdW1uKSA9PiB0YWJsZVNldHRpbmdDb2x1bW4uaWRlbnRpZmllcigpID09IGlkZW50aWZpZXIpXG5cbiAgICAgIGlmICghdGFibGVTZXR0aW5nQ29sdW1uKSB7XG4gICAgICAgIGNvbnN0IGNvbHVtbktleSA9ICsrY29sdW1uc0tleUNvdW50XG5cbiAgICAgICAgY29sdW1uc0RhdGFbY29sdW1uS2V5XSA9IHRoaXMuY29sdW1uU2F2ZURhdGEoXG4gICAgICAgICAgY29sdW1uLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkZW50aWZpZXIsXG4gICAgICAgICAgICBwb3NpdGlvbjogdGFibGVTZXR0aW5nLmNvbHVtbnMoKS5sb2FkZWQoKS5sZW5ndGggKyBjb2x1bW5LZXlcbiAgICAgICAgICB9XG4gICAgICAgIClcblxuICAgICAgICBsb2dnZXIuZGVidWcoKCkgPT4gYENoYW5nZWQgYmVjYXVzZSBvZiBuZXcgY29sdW1uOiAke2NvbHVtbi5sYWJlbH1gKVxuICAgICAgICBjaGFuZ2VkID0gdHJ1ZVxuICAgICAgfVxuICAgIH1cblxuICAgIGZvciAoY29uc3QgdGFibGVTZXR0aW5nQ29sdW1uIG9mIHRhYmxlU2V0dGluZy5jb2x1bW5zKCkubG9hZGVkKCkpIHtcbiAgICAgIGNvbnN0IGNvbHVtbiA9IGNvbHVtbnMuZmluZCgoY29sdW1uKSA9PiBjb2x1bW5JZGVudGlmaWVyKGNvbHVtbikgPT0gdGFibGVTZXR0aW5nQ29sdW1uLmlkZW50aWZpZXIoKSlcblxuICAgICAgaWYgKGNvbHVtbikge1xuICAgICAgICAvLyBUT0RPOiBVcGRhdGUgY29sdW1uIGlmIGNoYW5nZWRcbiAgICAgICAgbGV0IGNvbHVtbkNoYW5nZWQgPSBmYWxzZVxuXG4gICAgICAgIGZvciAoY29uc3QgY2hhbmdlZEF0dHJpYnV0ZSBvZiBjaGFuZ2VkQXR0cmlidXRlc0xpc3QpIHtcbiAgICAgICAgICBsZXQgY29sdW1uQXR0cmlidXRlTmFtZVxuXG4gICAgICAgICAgaWYgKGNoYW5nZWRBdHRyaWJ1dGUgPT0gXCJhdHRyaWJ1dGVOYW1lXCIpIHtcbiAgICAgICAgICAgIGNvbHVtbkF0dHJpYnV0ZU5hbWUgPSBcImF0dHJpYnV0ZVwiXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbHVtbkF0dHJpYnV0ZU5hbWUgPSBjaGFuZ2VkQXR0cmlidXRlXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3Qgb2xkQXR0cmlidXRlVmFsdWUgPSB0YWJsZVNldHRpbmdDb2x1bW5bY2hhbmdlZEF0dHJpYnV0ZV0oKVxuICAgICAgICAgIGNvbnN0IG5ld0F0dHJpYnV0ZVZhbHVlID0gY29sdW1uW2NvbHVtbkF0dHJpYnV0ZU5hbWVdXG5cbiAgICAgICAgICBpZiAob2xkQXR0cmlidXRlVmFsdWUgIT0gbmV3QXR0cmlidXRlVmFsdWUpIHtcbiAgICAgICAgICAgIGxvZ2dlci5kZWJ1ZygoKSA9PiBgJHtjaGFuZ2VkQXR0cmlidXRlfSBjaGFuZ2VkIGZyb20gJHtvbGRBdHRyaWJ1dGVWYWx1ZX0gdG8gJHtuZXdBdHRyaWJ1dGVWYWx1ZX0gb24gY29sdW1uOiAke2NvbHVtbi5sYWJlbH1gKVxuICAgICAgICAgICAgY29sdW1uQ2hhbmdlZCA9IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjb2x1bW5QYXRoQXNTdHJpbmcgPSBKU09OLnN0cmluZ2lmeShjb2x1bW4ucGF0aClcbiAgICAgICAgY29uc3QgdGFibGVTZXR0aW5nQ29sdW1uUGF0aEFzU3RyaW5nID0gdGFibGVTZXR0aW5nQ29sdW1uLnBhdGgoKVxuXG4gICAgICAgIGlmIChjb2x1bW5QYXRoQXNTdHJpbmcgIT0gdGFibGVTZXR0aW5nQ29sdW1uUGF0aEFzU3RyaW5nKSB7XG4gICAgICAgICAgbG9nZ2VyLmRlYnVnKCgpID0+IGBQYXRoIGNoYW5nZWQgb24gJHtjb2x1bW4ubGFiZWx9IGZyb20gJHtjb2x1bW5QYXRoQXNTdHJpbmd9IHRvICR7dGFibGVTZXR0aW5nQ29sdW1uUGF0aEFzU3RyaW5nfWApXG4gICAgICAgICAgY29sdW1uQ2hhbmdlZCA9IHRydWVcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjb2x1bW5DaGFuZ2VkKSB7XG4gICAgICAgICAgY29uc3QgY29sdW1uS2V5ID0gKytjb2x1bW5zS2V5Q291bnRcblxuICAgICAgICAgIGNoYW5nZWQgPSB0cnVlXG4gICAgICAgICAgY29sdW1uc0RhdGFbY29sdW1uS2V5XSA9IHtcbiAgICAgICAgICAgIGF0dHJpYnV0ZV9uYW1lOiBjb2x1bW4uYXR0cmlidXRlTmFtZSxcbiAgICAgICAgICAgIGlkOiB0YWJsZVNldHRpbmdDb2x1bW4uaWQoKSxcbiAgICAgICAgICAgIHBhdGg6IGNvbHVtbi5wYXRoLFxuICAgICAgICAgICAgc29ydF9rZXk6IGNvbHVtbi5zb3J0S2V5XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBSZW1vdmVkIHNhdmVkIGNvbHVtbnMgbm8gbG9uZ2VyIGZvdW5kXG4gICAgICAgIGNvbnN0IGNvbHVtbktleSA9ICsrY29sdW1uc0tleUNvdW50XG5cbiAgICAgICAgY29sdW1uc0RhdGFbY29sdW1uS2V5XSA9IHtcbiAgICAgICAgICBpZDogdGFibGVTZXR0aW5nQ29sdW1uLmlkKCksXG4gICAgICAgICAgX2Rlc3Ryb3k6IHRydWVcbiAgICAgICAgfVxuICAgICAgICBjaGFuZ2VkID0gdHJ1ZVxuXG4gICAgICAgIGxvZ2dlci5kZWJ1ZygoKSA9PiBgQ29sdW1uIGdvdCByZW1vdmVkOiAke3RhYmxlU2V0dGluZ0NvbHVtbi5pZGVudGlmaWVyKCl9YClcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlZCkge1xuICAgICAgY29uc3QgdGFibGVTZXR0aW5nRm9ybURhdGEgPSBvYmplY3RUb0Zvcm1EYXRhKHt0YWJsZV9zZXR0aW5nOiB0YWJsZVNldHRpbmdEYXRhfSlcblxuICAgICAgYXdhaXQgdGFibGVTZXR0aW5nLnNhdmVSYXcodGFibGVTZXR0aW5nRm9ybURhdGEpXG4gICAgfVxuXG4gICAgcmV0dXJuIHRhYmxlU2V0dGluZ1xuICB9XG59XG4iXX0=
237
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtc2V0dGluZ3MuanMiLCJzb3VyY2VSb290IjoiL3NyYy8iLCJzb3VyY2VzIjpbInRhYmxlL3RhYmxlLXNldHRpbmdzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG1HQUFtRztBQUNuRyxPQUFPLGdCQUFnQixNQUFNLHdCQUF3QixDQUFBO0FBQ3JELE9BQU8sYUFBYSxNQUFNLHFCQUFxQixDQUFBO0FBQy9DLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxXQUFXLENBQUE7QUFDOUIsT0FBTyxLQUFLLFVBQVUsTUFBTSxZQUFZLENBQUE7QUFDeEMsT0FBTyxNQUFNLE1BQU0sY0FBYyxDQUFBO0FBQ2pDLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLFlBQVksQ0FBQTtBQUM1QyxPQUFPLEVBQUMsU0FBUyxJQUFJLGdCQUFnQixFQUFDLE1BQU0sb0JBQW9CLENBQUE7QUFDaEUsbUJBQW1CO0FBQ25CLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxXQUFXLENBQUE7QUFDdEMsbUJBQW1CO0FBQ25CLE9BQU8sRUFBQyxFQUFFLElBQUksTUFBTSxFQUFDLE1BQU0sTUFBTSxDQUFBO0FBRWpDLE1BQU0sTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLEVBQUMsSUFBSSxFQUFFLDBCQUEwQixFQUFDLENBQUMsQ0FBQTtBQUU3RCwrQ0FBK0M7QUFDL0MsTUFBTSxrQkFBa0IsR0FBRyxFQUFFLENBQUE7QUFFN0IseUNBQXlDO0FBQ3pDLE1BQU0sQ0FBQyxPQUFPLE9BQU8scUJBQXFCO0lBQ3hDLG1CQUFtQjtJQUNuQixZQUFZLEVBQUMsS0FBSyxFQUFDO1FBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFBO1FBQ2xCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFBO0lBQzdCLENBQUM7SUFFRCw0QkFBNEI7SUFDNUIsb0JBQW9CO1FBQ2xCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQTtRQUVwQyxJQUFJLENBQUMsQ0FBQyxVQUFVLElBQUksa0JBQWtCLENBQUMsRUFBRSxDQUFDO1lBQ3hDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksaUJBQWlCLEVBQUUsQ0FBQTtRQUMxRCxDQUFDO1FBRUQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxVQUFVLENBQUMsQ0FBQTtJQUMvRCxDQUFDO0lBRUQsZUFBZTtJQUNmLE9BQU8sR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyxFQUFFLENBQUE7SUFFdkQsbUJBQW1CO0lBQ25CLFdBQVcsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsYUFBYSxDQUFDLENBQUE7SUFFL0Qsa0JBQWtCO0lBQ2xCLFVBQVUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUE7SUFFN0QsdUJBQXVCO0lBQ3ZCLGVBQWUsR0FBRyxDQUFDLFlBQVksRUFBRSxFQUFFO1FBQ2pDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUE7UUFDM0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFlBQVksQ0FBQyxDQUFBO1FBQzdELE1BQU0sTUFBTSxHQUFHO1lBQ2IsT0FBTyxFQUFFLEVBQUU7WUFDWCxPQUFPLEVBQUUsRUFBRTtTQUNaLENBQUE7UUFFRCxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU07UUFFcEIsS0FBSyxNQUFNLGtCQUFrQixJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ3pDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLGtCQUFrQixDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUE7WUFFcEcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBQyxNQUFNLEVBQUUsa0JBQWtCLEVBQUMsQ0FBQyxDQUFBO1lBRWpELDJDQUEyQztZQUMzQyxJQUFJLGFBQWEsQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLENBQUMsRUFBRSxDQUFDO2dCQUM5QyxJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDaEIsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7b0JBRXhGLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7d0JBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7Z0JBQ3JFLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFBO0lBQ2YsQ0FBQyxDQUFBO0lBRUQsa0NBQWtDO0lBQ2xDLDBCQUEwQixHQUFHLENBQUMsWUFBWSxFQUFFLEVBQUU7UUFDNUMsT0FBTyxZQUFZO2FBQ2hCLE9BQU8sRUFBRTthQUNULE1BQU0sRUFBRTthQUNSLElBQUksQ0FBQyxDQUFDLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsR0FBRyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBO0lBQ3hILENBQUMsQ0FBQTtJQUVELHlDQUF5QztJQUN6QyxpQ0FBaUMsR0FBRyxLQUFLLElBQUksRUFBRTtRQUM3QyxPQUFPLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksRUFBRTtZQUNuRCxJQUFJLFlBQVksR0FBRyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFBO1lBRWhELElBQUksWUFBWSxFQUFFLENBQUM7Z0JBQ2pCLFlBQVksR0FBRyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsQ0FBQTtZQUM1RCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sWUFBWSxHQUFHLE1BQU0sSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUE7Z0JBRXJELElBQUksQ0FBQyxZQUFZO29CQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsdURBQXVELENBQUMsQ0FBQTtZQUM3RixDQUFDO1lBRUQsT0FBTyxZQUFZLENBQUE7UUFDckIsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDLENBQUE7SUFFRCx3QkFBd0I7SUFDeEIsZ0JBQWdCLEdBQUcsS0FBSyxJQUFJLEVBQUU7UUFDNUIsSUFBSSxDQUFDLFlBQVk7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxDQUFDLENBQUE7UUFFakYsTUFBTSxZQUFZLEdBQUcsTUFBTSxZQUFZO2FBQ3BDLE9BQU8sQ0FBQztZQUNQLGFBQWEsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2hDLFVBQVUsRUFBRSxJQUFJLENBQUMsdUJBQXVCLEVBQUU7WUFDMUMsWUFBWSxFQUFFLElBQUksQ0FBQyx5QkFBeUIsRUFBRTtTQUMvQyxDQUFDO2FBQ0QsT0FBTyxDQUFDLFNBQVMsQ0FBQzthQUNsQixLQUFLLEVBQUUsQ0FBQTtRQUVWLE9BQU8sWUFBWSxDQUFBO0lBQ3JCLENBQUMsQ0FBQTtJQUVELCtCQUErQjtJQUMvQix1QkFBdUI7UUFDckIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFBO1FBRXRDLElBQUksV0FBVztZQUFFLE9BQU8sV0FBVyxDQUFDLEVBQUUsRUFBRSxDQUFBO1FBRXhDLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUE7SUFDaEMsQ0FBQztJQUVELGlDQUFpQztJQUNqQyx5QkFBeUI7UUFDdkIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFBO1FBRXRDLElBQUksV0FBVztZQUFFLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQTtRQUVsRSxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFRCx3QkFBd0I7SUFDeEIsZ0JBQWdCO1FBQ2QsTUFBTSxZQUFZLEdBQUcsZ0NBQWdDLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFBO1FBRXhFLElBQUksQ0FBQyxDQUFDLFlBQVksSUFBSSxZQUFZLENBQUMsRUFBRSxDQUFDO1lBQ3BDLE1BQU0sV0FBVyxHQUFHLE1BQU0sRUFBRSxDQUFBO1lBRTVCLFlBQVksQ0FBQyxZQUFZLENBQUMsR0FBRyxXQUFXLENBQUE7UUFDMUMsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsQ0FBQTtJQUN6QyxDQUFDO0lBRUQsaUNBQWlDO0lBQ2pDLHlCQUF5QixHQUFHLEtBQUssSUFBSSxFQUFFO1FBQ3JDLE1BQU0sZ0JBQWdCLEdBQUc7WUFDdkIsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDN0IsT0FBTyxFQUFFLElBQUksQ0FBQyx1QkFBdUIsRUFBRTtZQUN2QyxTQUFTLEVBQUUsSUFBSSxDQUFDLHlCQUF5QixFQUFFO1lBQzNDLGtCQUFrQixFQUFFLEVBQUU7U0FDdkIsQ0FBQTtRQUVELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQTtRQUU5QixLQUFLLE1BQU0sU0FBUyxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ2hDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUE7WUFDdkMsTUFBTSxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUE7WUFDM0MsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsRUFBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBQyxDQUFDLENBQUE7WUFFakYsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLEdBQUcsVUFBVSxDQUFBO1FBQzdELENBQUM7UUFFRCxNQUFNLFlBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFBO1FBQ3ZDLE1BQU0sb0JBQW9CLEdBQUcsZ0JBQWdCLENBQUMsRUFBQyxhQUFhLEVBQUUsZ0JBQWdCLEVBQUMsQ0FBQyxDQUFBO1FBRWhGLE1BQU0sWUFBWSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO1FBRWhELE1BQU0sb0JBQW9CLEdBQUcsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQTtRQUUxRCxJQUFJLENBQUMsb0JBQW9CO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxzREFBc0QsQ0FBQyxDQUFBO1FBRWxHLE9BQU8sb0JBQW9CLENBQUE7SUFDN0IsQ0FBQyxDQUFBO0lBRUQsc0JBQXNCO0lBQ3RCLGNBQWMsQ0FBQyxNQUFNLEVBQUUsRUFBQyxVQUFVLEVBQUUsUUFBUSxFQUFDO1FBQzNDLE9BQU87WUFDTCxjQUFjLEVBQUUsTUFBTSxDQUFDLFNBQVM7WUFDaEMsVUFBVTtZQUNWLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtZQUNqQixRQUFRO1lBQ1IsUUFBUSxFQUFFLE1BQU0sQ0FBQyxPQUFPO1lBQ3hCLE9BQU8sRUFBRSxJQUFJO1NBQ2QsQ0FBQTtJQUNILENBQUM7SUFFRCwwQkFBMEI7SUFDMUIsa0JBQWtCLEdBQUcsS0FBSyxFQUFFLFlBQVksRUFBRSxFQUFFO1FBQzFDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxlQUFlLEVBQUUsU0FBUyxDQUFDLENBQUE7UUFDMUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFBO1FBQzlCLE1BQU0sV0FBVyxHQUFHLEVBQUUsQ0FBQTtRQUN0QixNQUFNLGdCQUFnQixHQUFHLEVBQUMsa0JBQWtCLEVBQUUsV0FBVyxFQUFDLENBQUE7UUFDMUQsSUFBSSxlQUFlLEdBQUcsQ0FBQyxDQUFBO1FBQ3ZCLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQTtRQUVuQixzQkFBc0I7UUFDdEIsS0FBSyxNQUFNLE1BQU0sSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUM3QixNQUFNLFVBQVUsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQTtZQUMzQyxNQUFNLGtCQUFrQixHQUFHLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLENBQUMsa0JBQWtCLENBQUMsVUFBVSxFQUFFLElBQUksVUFBVSxDQUFDLENBQUE7WUFFdEksSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7Z0JBQ3hCLE1BQU0sU0FBUyxHQUFHLEVBQUUsZUFBZSxDQUFBO2dCQUVuQyxXQUFXLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FDMUMsTUFBTSxFQUNOO29CQUNFLFVBQVU7b0JBQ1YsUUFBUSxFQUFFLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxNQUFNLEdBQUcsU0FBUztpQkFDN0QsQ0FDRixDQUFBO2dCQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsa0NBQWtDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFBO2dCQUNwRSxPQUFPLEdBQUcsSUFBSSxDQUFBO1lBQ2hCLENBQUM7UUFDSCxDQUFDO1FBRUQsS0FBSyxNQUFNLGtCQUFrQixJQUFJLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO1lBQ2pFLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLGtCQUFrQixDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUE7WUFFcEcsSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFDWCxpQ0FBaUM7Z0JBQ2pDLElBQUksYUFBYSxHQUFHLEtBQUssQ0FBQTtnQkFFekIsS0FBSyxNQUFNLGdCQUFnQixJQUFJLHFCQUFxQixFQUFFLENBQUM7b0JBQ3JELElBQUksbUJBQW1CLENBQUE7b0JBRXZCLElBQUksZ0JBQWdCLElBQUksZUFBZSxFQUFFLENBQUM7d0JBQ3hDLG1CQUFtQixHQUFHLFdBQVcsQ0FBQTtvQkFDbkMsQ0FBQzt5QkFBTSxDQUFDO3dCQUNOLG1CQUFtQixHQUFHLGdCQUFnQixDQUFBO29CQUN4QyxDQUFDO29CQUVELE1BQU0saUJBQWlCLEdBQUcsa0JBQWtCLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFBO29CQUNoRSxNQUFNLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO29CQUVyRCxJQUFJLGlCQUFpQixJQUFJLGlCQUFpQixFQUFFLENBQUM7d0JBQzNDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxnQkFBZ0IsaUJBQWlCLGlCQUFpQixPQUFPLGlCQUFpQixlQUFlLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFBO3dCQUM5SCxhQUFhLEdBQUcsSUFBSSxDQUFBO29CQUN0QixDQUFDO2dCQUNILENBQUM7Z0JBRUQsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQTtnQkFDdEQsTUFBTSw4QkFBOEIsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtnQkFFaEUsSUFBSSxrQkFBa0IsSUFBSSw4QkFBOEIsRUFBRSxDQUFDO29CQUN6RCxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLG1CQUFtQixNQUFNLENBQUMsS0FBSyxTQUFTLGtCQUFrQixPQUFPLDhCQUE4QixFQUFFLENBQUMsQ0FBQTtvQkFDckgsYUFBYSxHQUFHLElBQUksQ0FBQTtnQkFDdEIsQ0FBQztnQkFFRCxJQUFJLGFBQWEsRUFBRSxDQUFDO29CQUNsQixNQUFNLFNBQVMsR0FBRyxFQUFFLGVBQWUsQ0FBQTtvQkFFbkMsT0FBTyxHQUFHLElBQUksQ0FBQTtvQkFDZCxXQUFXLENBQUMsU0FBUyxDQUFDLEdBQUc7d0JBQ3ZCLGNBQWMsRUFBRSxNQUFNLENBQUMsYUFBYTt3QkFDcEMsRUFBRSxFQUFFLGtCQUFrQixDQUFDLEVBQUUsRUFBRTt3QkFDM0IsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO3dCQUNqQixRQUFRLEVBQUUsTUFBTSxDQUFDLE9BQU87cUJBQ3pCLENBQUE7Z0JBQ0gsQ0FBQztZQUNILENBQUM7aUJBQU0sQ0FBQztnQkFDTix3Q0FBd0M7Z0JBQ3hDLE1BQU0sU0FBUyxHQUFHLEVBQUUsZUFBZSxDQUFBO2dCQUVuQyxXQUFXLENBQUMsU0FBUyxDQUFDLEdBQUc7b0JBQ3ZCLEVBQUUsRUFBRSxrQkFBa0IsQ0FBQyxFQUFFLEVBQUU7b0JBQzNCLFFBQVEsRUFBRSxJQUFJO2lCQUNmLENBQUE7Z0JBQ0QsT0FBTyxHQUFHLElBQUksQ0FBQTtnQkFFZCxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLHVCQUF1QixrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUE7WUFDOUUsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osTUFBTSxvQkFBb0IsR0FBRyxnQkFBZ0IsQ0FBQyxFQUFDLGFBQWEsRUFBRSxnQkFBZ0IsRUFBQyxDQUFDLENBQUE7WUFFaEYsTUFBTSxZQUFZLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUE7WUFFaEQsaUZBQWlGO1lBQ2pGLDBFQUEwRTtZQUMxRSxNQUFNLG9CQUFvQixHQUFHLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUE7WUFFMUQsSUFBSSxDQUFDLG9CQUFvQjtnQkFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHNEQUFzRCxDQUFDLENBQUE7WUFFbEcsT0FBTyxvQkFBb0IsQ0FBQTtRQUM3QixDQUFDO1FBRUQsT0FBTyxZQUFZLENBQUE7SUFDckIsQ0FBQyxDQUFBO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBhcnJvdy1ib2R5LXN0eWxlLCBpbXBvcnQvbm8tdW5yZXNvbHZlZCwgbmV3bGluZS1wZXItY2hhaW5lZC1jYWxsLCBzb3J0LWltcG9ydHMgKi9cbmltcG9ydCBjb2x1bW5JZGVudGlmaWVyIGZyb20gXCIuL2NvbHVtbi1pZGVudGlmaWVyLmpzXCJcbmltcG9ydCBjb2x1bW5WaXNpYmxlIGZyb20gXCIuL2NvbHVtbi12aXNpYmxlLmpzXCJcbmltcG9ydCB7ZGlnZ30gZnJvbSBcImRpZ2dlcml6ZVwiXG5pbXBvcnQgKiBhcyBpbmZsZWN0aW9uIGZyb20gXCJpbmZsZWN0aW9uXCJcbmltcG9ydCBMb2dnZXIgZnJvbSBcIi4uL2xvZ2dlci5qc1wiXG5pbXBvcnQge1JlYWRlcnNXcml0ZXJMb2NrfSBmcm9tIFwiZXBpYy1sb2Nrc1wiXG5pbXBvcnQge3NlcmlhbGl6ZSBhcyBvYmplY3RUb0Zvcm1EYXRhfSBmcm9tIFwib2JqZWN0LXRvLWZvcm1kYXRhXCJcbi8vIEB0cy1leHBlY3QtZXJyb3JcbmltcG9ydCB7VGFibGVTZXR0aW5nfSBmcm9tIFwibW9kZWxzLmpzXCJcbi8vIEB0cy1leHBlY3QtZXJyb3JcbmltcG9ydCB7djQgYXMgdXVpZHY0fSBmcm9tIFwidXVpZFwiXG5cbmNvbnN0IGxvZ2dlciA9IG5ldyBMb2dnZXIoe25hbWU6IFwiQXBpTWFrZXIgLyBUYWJsZVNldHRpbmdzXCJ9KVxuXG4vLyBIYXZlIGEgbG9jayBmb3IgZWFjaCB1bmlxdWUgdGFibGUgaWRlbnRpZmllclxuY29uc3QgdGFibGVTZXR0aW5nc0xvY2tzID0ge31cblxuLyoqIFBlcnNpc3RlbnQgdGFibGUgc2V0dGluZ3MgbWFuYWdlci4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFwaU1ha2VyVGFibGVTZXR0aW5ncyB7XG4gIC8qKiBDb25zdHJ1Y3Rvci4gKi9cbiAgY29uc3RydWN0b3Ioe3RhYmxlfSkge1xuICAgIHRoaXMudGFibGUgPSB0YWJsZVxuICAgIHRoaXMuc2V0VGFibGVTZXR0aW5nc0xvY2soKVxuICB9XG5cbiAgLyoqIHNldFRhYmxlU2V0dGluZ3NMb2NrLiAqL1xuICBzZXRUYWJsZVNldHRpbmdzTG9jaygpIHtcbiAgICBjb25zdCBpZGVudGlmaWVyID0gdGhpcy5pZGVudGlmaWVyKClcblxuICAgIGlmICghKGlkZW50aWZpZXIgaW4gdGFibGVTZXR0aW5nc0xvY2tzKSkge1xuICAgICAgdGFibGVTZXR0aW5nc0xvY2tzW2lkZW50aWZpZXJdID0gbmV3IFJlYWRlcnNXcml0ZXJMb2NrKClcbiAgICB9XG5cbiAgICB0aGlzLnRhYmxlU2V0dGluZ3NMb2NrID0gZGlnZyh0YWJsZVNldHRpbmdzTG9ja3MsIGlkZW50aWZpZXIpXG4gIH1cblxuICAvKiogY29sdW1ucy4gKi9cbiAgY29sdW1ucyA9ICgpID0+IGRpZ2codGhpcywgXCJ0YWJsZVwiLCBcImNvbHVtbnNBc0FycmF5XCIpKClcblxuICAvKiogY3VycmVudFVzZXIuICovXG4gIGN1cnJlbnRVc2VyID0gKCkgPT4gZGlnZyh0aGlzLCBcInRhYmxlXCIsIFwicHJvcHNcIiwgXCJjdXJyZW50VXNlclwiKVxuXG4gIC8qKiBpZGVudGlmaWVyLiAqL1xuICBpZGVudGlmaWVyID0gKCkgPT4gZGlnZyh0aGlzLCBcInRhYmxlXCIsIFwic3RhdGVcIiwgXCJpZGVudGlmaWVyXCIpXG5cbiAgLyoqIHByZXBhcmVkQ29sdW1ucy4gKi9cbiAgcHJlcGFyZWRDb2x1bW5zID0gKHRhYmxlU2V0dGluZykgPT4ge1xuICAgIGNvbnN0IGNvbHVtbnMgPSB0aGlzLnRhYmxlLmNvbHVtbnNBc0FycmF5KClcbiAgICBjb25zdCBvcmRlcmVkID0gdGhpcy5vcmRlcmVkVGFibGVTZXR0aW5nQ29sdW1ucyh0YWJsZVNldHRpbmcpXG4gICAgY29uc3QgcmVzdWx0ID0ge1xuICAgICAgY29sdW1uczogW10sXG4gICAgICBwcmVsb2FkOiBbXVxuICAgIH1cblxuICAgIGlmICghb3JkZXJlZCkgcmV0dXJuXG5cbiAgICBmb3IgKGNvbnN0IHRhYmxlU2V0dGluZ0NvbHVtbiBvZiBvcmRlcmVkKSB7XG4gICAgICBjb25zdCBjb2x1bW4gPSBjb2x1bW5zLmZpbmQoKGNvbHVtbikgPT4gY29sdW1uSWRlbnRpZmllcihjb2x1bW4pID09IHRhYmxlU2V0dGluZ0NvbHVtbi5pZGVudGlmaWVyKCkpXG5cbiAgICAgIHJlc3VsdC5jb2x1bW5zLnB1c2goe2NvbHVtbiwgdGFibGVTZXR0aW5nQ29sdW1ufSlcblxuICAgICAgLy8gQWRkIG5lZWRlZCBwcmVsb2FkcyBpZiBjb2x1bW4gaXMgdmlzaWJsZVxuICAgICAgaWYgKGNvbHVtblZpc2libGUoY29sdW1uLCB0YWJsZVNldHRpbmdDb2x1bW4pKSB7XG4gICAgICAgIGlmIChjb2x1bW4ucGF0aCkge1xuICAgICAgICAgIGNvbnN0IHByZWxvYWQgPSBjb2x1bW4ucGF0aC5tYXAoKHBhdGhQYXJ0KSA9PiBpbmZsZWN0aW9uLnVuZGVyc2NvcmUocGF0aFBhcnQpKS5qb2luKFwiLlwiKVxuXG4gICAgICAgICAgaWYgKCFyZXN1bHQucHJlbG9hZC5pbmNsdWRlcyhwcmVsb2FkKSkgcmVzdWx0LnByZWxvYWQucHVzaChwcmVsb2FkKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9XG5cbiAgLyoqIG9yZGVyZWRUYWJsZVNldHRpbmdDb2x1bW5zLiAqL1xuICBvcmRlcmVkVGFibGVTZXR0aW5nQ29sdW1ucyA9ICh0YWJsZVNldHRpbmcpID0+IHtcbiAgICByZXR1cm4gdGFibGVTZXR0aW5nXG4gICAgICAuY29sdW1ucygpXG4gICAgICAubG9hZGVkKClcbiAgICAgIC5zb3J0KCh0YWJsZVNldHRpbmdDb2x1bW4xLCB0YWJsZVNldHRpbmdDb2x1bW4yKSA9PiB0YWJsZVNldHRpbmdDb2x1bW4xLnBvc2l0aW9uKCkgLSB0YWJsZVNldHRpbmdDb2x1bW4yLnBvc2l0aW9uKCkpXG4gIH1cblxuICAvKiogbG9hZEV4aXN0aW5nT3JDcmVhdGVUYWJsZVNldHRpbmdzLiAqL1xuICBsb2FkRXhpc3RpbmdPckNyZWF0ZVRhYmxlU2V0dGluZ3MgPSBhc3luYyAoKSA9PiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMudGFibGVTZXR0aW5nc0xvY2sud3JpdGUoYXN5bmMgKCkgPT4ge1xuICAgICAgbGV0IHRhYmxlU2V0dGluZyA9IGF3YWl0IHRoaXMubG9hZFRhYmxlU2V0dGluZygpXG5cbiAgICAgIGlmICh0YWJsZVNldHRpbmcpIHtcbiAgICAgICAgdGFibGVTZXR0aW5nID0gYXdhaXQgdGhpcy51cGRhdGVUYWJsZVNldHRpbmcodGFibGVTZXR0aW5nKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGFibGVTZXR0aW5nID0gYXdhaXQgdGhpcy5jcmVhdGVJbml0aWFsVGFibGVTZXR0aW5nKClcblxuICAgICAgICBpZiAoIXRhYmxlU2V0dGluZykgdGhyb3cgbmV3IEVycm9yKFwiTm8gdGFibGVTZXR0aW5nIHJldHVybmVkIGJ5IGNyZWF0ZUluaXRpYWxUYWJsZVNldHRpbmdcIilcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRhYmxlU2V0dGluZ1xuICAgIH0pXG4gIH1cblxuICAvKiogbG9hZFRhYmxlU2V0dGluZy4gKi9cbiAgbG9hZFRhYmxlU2V0dGluZyA9IGFzeW5jICgpID0+IHtcbiAgICBpZiAoIVRhYmxlU2V0dGluZykgdGhyb3cgbmV3IEVycm9yKFwiVGFibGVTZXR0aW5nIG1vZGVsIGlzbid0IGdsb2JhbGx5IGF2YWlsYWJsZVwiKVxuXG4gICAgY29uc3QgdGFibGVTZXR0aW5nID0gYXdhaXQgVGFibGVTZXR0aW5nXG4gICAgICAucmFuc2Fjayh7XG4gICAgICAgIGlkZW50aWZpZXJfZXE6IHRoaXMuaWRlbnRpZmllcigpLFxuICAgICAgICB1c2VyX2lkX2VxOiB0aGlzLmN1cnJlbnRVc2VySWRPckZhbGxiYWNrKCksXG4gICAgICAgIHVzZXJfdHlwZV9lcTogdGhpcy5jdXJyZW50VXNlclR5cGVPckZhbGxiYWNrKClcbiAgICAgIH0pXG4gICAgICAucHJlbG9hZChcImNvbHVtbnNcIilcbiAgICAgIC5maXJzdCgpXG5cbiAgICByZXR1cm4gdGFibGVTZXR0aW5nXG4gIH1cblxuICAvKiogY3VycmVudFVzZXJJZE9yRmFsbGJhY2suICovXG4gIGN1cnJlbnRVc2VySWRPckZhbGxiYWNrKCkge1xuICAgIGNvbnN0IGN1cnJlbnRVc2VyID0gdGhpcy5jdXJyZW50VXNlcigpXG5cbiAgICBpZiAoY3VycmVudFVzZXIpIHJldHVybiBjdXJyZW50VXNlci5pZCgpXG5cbiAgICByZXR1cm4gdGhpcy5hbm9ueW1vdXNlVXNlcklkKClcbiAgfVxuXG4gIC8qKiBjdXJyZW50VXNlclR5cGVPckZhbGxiYWNrLiAqL1xuICBjdXJyZW50VXNlclR5cGVPckZhbGxiYWNrKCkge1xuICAgIGNvbnN0IGN1cnJlbnRVc2VyID0gdGhpcy5jdXJyZW50VXNlcigpXG5cbiAgICBpZiAoY3VycmVudFVzZXIpIHJldHVybiBkaWdnKGN1cnJlbnRVc2VyLm1vZGVsQ2xhc3NEYXRhKCksIFwibmFtZVwiKVxuXG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIC8qKiBhbm9ueW1vdXNlVXNlcklkLiAqL1xuICBhbm9ueW1vdXNlVXNlcklkKCkge1xuICAgIGNvbnN0IHZhcmlhYmxlTmFtZSA9IGBBcGlNYWtlclRhYmxlQW5vbnltb3VzVXNlcklkLSR7dGhpcy5pZGVudGlmaWVyKCl9YFxuXG4gICAgaWYgKCEodmFyaWFibGVOYW1lIGluIGxvY2FsU3RvcmFnZSkpIHtcbiAgICAgIGNvbnN0IGdlbmVyYXRlZElkID0gdXVpZHY0KClcblxuICAgICAgbG9jYWxTdG9yYWdlW3ZhcmlhYmxlTmFtZV0gPSBnZW5lcmF0ZWRJZFxuICAgIH1cblxuICAgIHJldHVybiBkaWdnKGxvY2FsU3RvcmFnZSwgdmFyaWFibGVOYW1lKVxuICB9XG5cbiAgLyoqIGNyZWF0ZUluaXRpYWxUYWJsZVNldHRpbmcuICovXG4gIGNyZWF0ZUluaXRpYWxUYWJsZVNldHRpbmcgPSBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgdGFibGVTZXR0aW5nRGF0YSA9IHtcbiAgICAgIGlkZW50aWZpZXI6IHRoaXMuaWRlbnRpZmllcigpLFxuICAgICAgdXNlcl9pZDogdGhpcy5jdXJyZW50VXNlcklkT3JGYWxsYmFjaygpLFxuICAgICAgdXNlcl90eXBlOiB0aGlzLmN1cnJlbnRVc2VyVHlwZU9yRmFsbGJhY2soKSxcbiAgICAgIGNvbHVtbnNfYXR0cmlidXRlczoge31cbiAgICB9XG5cbiAgICBjb25zdCBjb2x1bW5zID0gdGhpcy5jb2x1bW5zKClcblxuICAgIGZvciAoY29uc3QgY29sdW1uS2V5IGluIGNvbHVtbnMpIHtcbiAgICAgIGNvbnN0IGNvbHVtbiA9IGRpZ2coY29sdW1ucywgY29sdW1uS2V5KVxuICAgICAgY29uc3QgaWRlbnRpZmllciA9IGNvbHVtbklkZW50aWZpZXIoY29sdW1uKVxuICAgICAgY29uc3QgY29sdW1uRGF0YSA9IHRoaXMuY29sdW1uU2F2ZURhdGEoY29sdW1uLCB7aWRlbnRpZmllciwgcG9zaXRpb246IGNvbHVtbktleX0pXG5cbiAgICAgIHRhYmxlU2V0dGluZ0RhdGEuY29sdW1uc19hdHRyaWJ1dGVzW2NvbHVtbktleV0gPSBjb2x1bW5EYXRhXG4gICAgfVxuXG4gICAgY29uc3QgdGFibGVTZXR0aW5nID0gbmV3IFRhYmxlU2V0dGluZygpXG4gICAgY29uc3QgdGFibGVTZXR0aW5nRm9ybURhdGEgPSBvYmplY3RUb0Zvcm1EYXRhKHt0YWJsZV9zZXR0aW5nOiB0YWJsZVNldHRpbmdEYXRhfSlcblxuICAgIGF3YWl0IHRhYmxlU2V0dGluZy5zYXZlUmF3KHRhYmxlU2V0dGluZ0Zvcm1EYXRhKVxuXG4gICAgY29uc3QgcmVsb2FkZWRUYWJsZVNldHRpbmcgPSBhd2FpdCB0aGlzLmxvYWRUYWJsZVNldHRpbmcoKVxuXG4gICAgaWYgKCFyZWxvYWRlZFRhYmxlU2V0dGluZykgdGhyb3cgbmV3IEVycm9yKFwiTm8gcmVsb2FkZWRUYWJsZVNldHRpbmcgcmV0dXJuZWQgYnkgbG9hZFRhYmxlU2V0dGluZ1wiKVxuXG4gICAgcmV0dXJuIHJlbG9hZGVkVGFibGVTZXR0aW5nXG4gIH1cblxuICAvKiogY29sdW1uU2F2ZURhdGEuICovXG4gIGNvbHVtblNhdmVEYXRhKGNvbHVtbiwge2lkZW50aWZpZXIsIHBvc2l0aW9ufSkge1xuICAgIHJldHVybiB7XG4gICAgICBhdHRyaWJ1dGVfbmFtZTogY29sdW1uLmF0dHJpYnV0ZSxcbiAgICAgIGlkZW50aWZpZXIsXG4gICAgICBwYXRoOiBjb2x1bW4ucGF0aCxcbiAgICAgIHBvc2l0aW9uLFxuICAgICAgc29ydF9rZXk6IGNvbHVtbi5zb3J0S2V5LFxuICAgICAgdmlzaWJsZTogbnVsbFxuICAgIH1cbiAgfVxuXG4gIC8qKiB1cGRhdGVUYWJsZVNldHRpbmcuICovXG4gIHVwZGF0ZVRhYmxlU2V0dGluZyA9IGFzeW5jICh0YWJsZVNldHRpbmcpID0+IHtcbiAgICBjb25zdCBjaGFuZ2VkQXR0cmlidXRlc0xpc3QgPSBbXCJhdHRyaWJ1dGVOYW1lXCIsIFwic29ydEtleVwiXVxuICAgIGNvbnN0IGNvbHVtbnMgPSB0aGlzLmNvbHVtbnMoKVxuICAgIGNvbnN0IGNvbHVtbnNEYXRhID0ge31cbiAgICBjb25zdCB0YWJsZVNldHRpbmdEYXRhID0ge2NvbHVtbnNfYXR0cmlidXRlczogY29sdW1uc0RhdGF9XG4gICAgbGV0IGNvbHVtbnNLZXlDb3VudCA9IDBcbiAgICBsZXQgY2hhbmdlZCA9IGZhbHNlXG5cbiAgICAvLyBBZGQgbWlzc2luZyBjb2x1bW5zXG4gICAgZm9yIChjb25zdCBjb2x1bW4gb2YgY29sdW1ucykge1xuICAgICAgY29uc3QgaWRlbnRpZmllciA9IGNvbHVtbklkZW50aWZpZXIoY29sdW1uKVxuICAgICAgY29uc3QgdGFibGVTZXR0aW5nQ29sdW1uID0gdGFibGVTZXR0aW5nLmNvbHVtbnMoKS5sb2FkZWQoKS5maW5kKCh0YWJsZVNldHRpbmdDb2x1bW4pID0+IHRhYmxlU2V0dGluZ0NvbHVtbi5pZGVudGlmaWVyKCkgPT0gaWRlbnRpZmllcilcblxuICAgICAgaWYgKCF0YWJsZVNldHRpbmdDb2x1bW4pIHtcbiAgICAgICAgY29uc3QgY29sdW1uS2V5ID0gKytjb2x1bW5zS2V5Q291bnRcblxuICAgICAgICBjb2x1bW5zRGF0YVtjb2x1bW5LZXldID0gdGhpcy5jb2x1bW5TYXZlRGF0YShcbiAgICAgICAgICBjb2x1bW4sXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWRlbnRpZmllcixcbiAgICAgICAgICAgIHBvc2l0aW9uOiB0YWJsZVNldHRpbmcuY29sdW1ucygpLmxvYWRlZCgpLmxlbmd0aCArIGNvbHVtbktleVxuICAgICAgICAgIH1cbiAgICAgICAgKVxuXG4gICAgICAgIGxvZ2dlci5kZWJ1ZygoKSA9PiBgQ2hhbmdlZCBiZWNhdXNlIG9mIG5ldyBjb2x1bW46ICR7Y29sdW1uLmxhYmVsfWApXG4gICAgICAgIGNoYW5nZWQgPSB0cnVlXG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCB0YWJsZVNldHRpbmdDb2x1bW4gb2YgdGFibGVTZXR0aW5nLmNvbHVtbnMoKS5sb2FkZWQoKSkge1xuICAgICAgY29uc3QgY29sdW1uID0gY29sdW1ucy5maW5kKChjb2x1bW4pID0+IGNvbHVtbklkZW50aWZpZXIoY29sdW1uKSA9PSB0YWJsZVNldHRpbmdDb2x1bW4uaWRlbnRpZmllcigpKVxuXG4gICAgICBpZiAoY29sdW1uKSB7XG4gICAgICAgIC8vIFRPRE86IFVwZGF0ZSBjb2x1bW4gaWYgY2hhbmdlZFxuICAgICAgICBsZXQgY29sdW1uQ2hhbmdlZCA9IGZhbHNlXG5cbiAgICAgICAgZm9yIChjb25zdCBjaGFuZ2VkQXR0cmlidXRlIG9mIGNoYW5nZWRBdHRyaWJ1dGVzTGlzdCkge1xuICAgICAgICAgIGxldCBjb2x1bW5BdHRyaWJ1dGVOYW1lXG5cbiAgICAgICAgICBpZiAoY2hhbmdlZEF0dHJpYnV0ZSA9PSBcImF0dHJpYnV0ZU5hbWVcIikge1xuICAgICAgICAgICAgY29sdW1uQXR0cmlidXRlTmFtZSA9IFwiYXR0cmlidXRlXCJcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29sdW1uQXR0cmlidXRlTmFtZSA9IGNoYW5nZWRBdHRyaWJ1dGVcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBvbGRBdHRyaWJ1dGVWYWx1ZSA9IHRhYmxlU2V0dGluZ0NvbHVtbltjaGFuZ2VkQXR0cmlidXRlXSgpXG4gICAgICAgICAgY29uc3QgbmV3QXR0cmlidXRlVmFsdWUgPSBjb2x1bW5bY29sdW1uQXR0cmlidXRlTmFtZV1cblxuICAgICAgICAgIGlmIChvbGRBdHRyaWJ1dGVWYWx1ZSAhPSBuZXdBdHRyaWJ1dGVWYWx1ZSkge1xuICAgICAgICAgICAgbG9nZ2VyLmRlYnVnKCgpID0+IGAke2NoYW5nZWRBdHRyaWJ1dGV9IGNoYW5nZWQgZnJvbSAke29sZEF0dHJpYnV0ZVZhbHVlfSB0byAke25ld0F0dHJpYnV0ZVZhbHVlfSBvbiBjb2x1bW46ICR7Y29sdW1uLmxhYmVsfWApXG4gICAgICAgICAgICBjb2x1bW5DaGFuZ2VkID0gdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNvbHVtblBhdGhBc1N0cmluZyA9IEpTT04uc3RyaW5naWZ5KGNvbHVtbi5wYXRoKVxuICAgICAgICBjb25zdCB0YWJsZVNldHRpbmdDb2x1bW5QYXRoQXNTdHJpbmcgPSB0YWJsZVNldHRpbmdDb2x1bW4ucGF0aCgpXG5cbiAgICAgICAgaWYgKGNvbHVtblBhdGhBc1N0cmluZyAhPSB0YWJsZVNldHRpbmdDb2x1bW5QYXRoQXNTdHJpbmcpIHtcbiAgICAgICAgICBsb2dnZXIuZGVidWcoKCkgPT4gYFBhdGggY2hhbmdlZCBvbiAke2NvbHVtbi5sYWJlbH0gZnJvbSAke2NvbHVtblBhdGhBc1N0cmluZ30gdG8gJHt0YWJsZVNldHRpbmdDb2x1bW5QYXRoQXNTdHJpbmd9YClcbiAgICAgICAgICBjb2x1bW5DaGFuZ2VkID0gdHJ1ZVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNvbHVtbkNoYW5nZWQpIHtcbiAgICAgICAgICBjb25zdCBjb2x1bW5LZXkgPSArK2NvbHVtbnNLZXlDb3VudFxuXG4gICAgICAgICAgY2hhbmdlZCA9IHRydWVcbiAgICAgICAgICBjb2x1bW5zRGF0YVtjb2x1bW5LZXldID0ge1xuICAgICAgICAgICAgYXR0cmlidXRlX25hbWU6IGNvbHVtbi5hdHRyaWJ1dGVOYW1lLFxuICAgICAgICAgICAgaWQ6IHRhYmxlU2V0dGluZ0NvbHVtbi5pZCgpLFxuICAgICAgICAgICAgcGF0aDogY29sdW1uLnBhdGgsXG4gICAgICAgICAgICBzb3J0X2tleTogY29sdW1uLnNvcnRLZXlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFJlbW92ZWQgc2F2ZWQgY29sdW1ucyBubyBsb25nZXIgZm91bmRcbiAgICAgICAgY29uc3QgY29sdW1uS2V5ID0gKytjb2x1bW5zS2V5Q291bnRcblxuICAgICAgICBjb2x1bW5zRGF0YVtjb2x1bW5LZXldID0ge1xuICAgICAgICAgIGlkOiB0YWJsZVNldHRpbmdDb2x1bW4uaWQoKSxcbiAgICAgICAgICBfZGVzdHJveTogdHJ1ZVxuICAgICAgICB9XG4gICAgICAgIGNoYW5nZWQgPSB0cnVlXG5cbiAgICAgICAgbG9nZ2VyLmRlYnVnKCgpID0+IGBDb2x1bW4gZ290IHJlbW92ZWQ6ICR7dGFibGVTZXR0aW5nQ29sdW1uLmlkZW50aWZpZXIoKX1gKVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChjaGFuZ2VkKSB7XG4gICAgICBjb25zdCB0YWJsZVNldHRpbmdGb3JtRGF0YSA9IG9iamVjdFRvRm9ybURhdGEoe3RhYmxlX3NldHRpbmc6IHRhYmxlU2V0dGluZ0RhdGF9KVxuXG4gICAgICBhd2FpdCB0YWJsZVNldHRpbmcuc2F2ZVJhdyh0YWJsZVNldHRpbmdGb3JtRGF0YSlcblxuICAgICAgLy8gUmUtcmVhZCB0aGUgdGFibGUgc2V0dGluZyBhZnRlciBzdHJ1Y3R1cmFsIHVwZGF0ZXMgc28gcHJlcGFyZWQgY29sdW1ucyB1c2UgdGhlXG4gICAgICAvLyBwZXJzaXN0ZWQgY29sdW1uIGxpc3QgcmF0aGVyIHRoYW4gdGhlIHN0YWxlIHByZS1zYXZlIGFzc29jaWF0aW9uIGNhY2hlLlxuICAgICAgY29uc3QgcmVsb2FkZWRUYWJsZVNldHRpbmcgPSBhd2FpdCB0aGlzLmxvYWRUYWJsZVNldHRpbmcoKVxuXG4gICAgICBpZiAoIXJlbG9hZGVkVGFibGVTZXR0aW5nKSB0aHJvdyBuZXcgRXJyb3IoXCJObyByZWxvYWRlZFRhYmxlU2V0dGluZyByZXR1cm5lZCBieSBsb2FkVGFibGVTZXR0aW5nXCIpXG5cbiAgICAgIHJldHVybiByZWxvYWRlZFRhYmxlU2V0dGluZ1xuICAgIH1cblxuICAgIHJldHVybiB0YWJsZVNldHRpbmdcbiAgfVxufVxuIl19