@gravitee/ui-components 3.17.0 → 3.17.4

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 (89) hide show
  1. package/package.json +18 -24
  2. package/src/atoms/gv-autocomplete.js +6 -5
  3. package/src/atoms/gv-button.js +4 -4
  4. package/src/atoms/gv-checkbox.js +3 -3
  5. package/src/atoms/gv-date-picker-calendar.js +5 -4
  6. package/src/atoms/gv-date-picker-cell.js +4 -4
  7. package/src/atoms/gv-date-picker.js +5 -4
  8. package/src/atoms/gv-file-upload.js +5 -4
  9. package/src/atoms/gv-icon.js +7 -15
  10. package/src/atoms/gv-image.js +4 -4
  11. package/src/atoms/gv-input-message.js +3 -2
  12. package/src/atoms/gv-input.js +3 -3
  13. package/src/atoms/gv-link.js +6 -6
  14. package/src/atoms/gv-message.js +3 -3
  15. package/src/atoms/gv-metric.js +3 -3
  16. package/src/atoms/gv-relative-time.js +4 -6
  17. package/src/atoms/gv-select.js +5 -5
  18. package/src/atoms/gv-spinner.js +2 -2
  19. package/src/atoms/gv-state.js +3 -3
  20. package/src/atoms/gv-switch.js +4 -4
  21. package/src/atoms/gv-tag.js +3 -3
  22. package/src/atoms/gv-text.js +4 -4
  23. package/src/charts/gv-chart-bar.js +2 -2
  24. package/src/charts/gv-chart-gauge.js +2 -2
  25. package/src/charts/gv-chart-histogram.js +2 -2
  26. package/src/charts/gv-chart-line.js +2 -2
  27. package/src/charts/gv-chart-map.js +2 -2
  28. package/src/charts/gv-chart-pie.js +2 -2
  29. package/src/lib/item.js +2 -2
  30. package/src/lib/studio.js +3 -3
  31. package/src/mixins/chart-element.js +4 -3
  32. package/src/mixins/input-element.js +3 -3
  33. package/src/mixins/item-resource.js +3 -3
  34. package/src/mixins/with-skeleton-attribute.js +2 -2
  35. package/src/molecules/gv-card-full.js +3 -3
  36. package/src/molecules/gv-card-list.js +4 -3
  37. package/src/molecules/gv-card.js +3 -3
  38. package/src/molecules/gv-category-list.js +3 -2
  39. package/src/molecules/gv-category.js +3 -3
  40. package/src/molecules/gv-code-hint.js +2 -2
  41. package/src/molecules/gv-code.js +3 -3
  42. package/src/molecules/gv-confirm.js +3 -2
  43. package/src/molecules/gv-cron-editor.js +3 -3
  44. package/src/molecules/gv-dropdown-menu.js +3 -2
  45. package/src/molecules/gv-expandable.js +3 -3
  46. package/src/molecules/gv-expression-language.js +3 -2
  47. package/src/molecules/gv-identity-picture.js +4 -3
  48. package/src/molecules/gv-list.js +4 -4
  49. package/src/molecules/gv-metrics.js +4 -4
  50. package/src/molecules/gv-modal.js +2 -2
  51. package/src/molecules/gv-nav.js +5 -5
  52. package/src/molecules/gv-option.js +6 -6
  53. package/src/molecules/gv-plans.js +6 -5
  54. package/src/molecules/gv-popover.js +4 -3
  55. package/src/molecules/gv-promote.js +3 -3
  56. package/src/molecules/gv-rating-list.js +5 -4
  57. package/src/molecules/gv-rating.js +4 -4
  58. package/src/molecules/gv-row-expandable.js +2 -2
  59. package/src/molecules/gv-row.js +3 -3
  60. package/src/molecules/gv-stats.js +4 -4
  61. package/src/molecules/gv-stepper.js +4 -4
  62. package/src/molecules/gv-table.js +8 -7
  63. package/src/molecules/gv-tree.js +4 -4
  64. package/src/organisms/gv-documentation.js +2 -2
  65. package/src/organisms/gv-header.js +6 -6
  66. package/src/organisms/gv-http-client.js +2 -2
  67. package/src/organisms/gv-menu.js +3 -3
  68. package/src/organisms/gv-newsletter-subscription.js +2 -2
  69. package/src/organisms/gv-pagination.js +2 -2
  70. package/src/organisms/gv-properties.js +3 -3
  71. package/src/organisms/gv-resizable-views.js +4 -3
  72. package/src/organisms/gv-resources.js +2 -2
  73. package/src/organisms/gv-schema-form-array.js +3 -3
  74. package/src/organisms/gv-schema-form-control-object.js +3 -3
  75. package/src/organisms/gv-schema-form-control.js +3 -2
  76. package/src/organisms/gv-schema-form.js +3 -3
  77. package/src/organisms/gv-tabs.js +3 -2
  78. package/src/organisms/gv-user-menu.js +4 -4
  79. package/src/organisms/gv-vertical-menu.js +2 -2
  80. package/src/policy-studio/gv-flow-step.js +3 -3
  81. package/src/policy-studio/gv-flow.js +3 -3
  82. package/src/policy-studio/gv-policy-studio-menu.js +4 -4
  83. package/src/policy-studio/gv-policy-studio.js +3 -3
  84. package/src/styles/empty.js +2 -2
  85. package/src/styles/input.js +2 -2
  86. package/src/styles/link.js +2 -2
  87. package/src/styles/skeleton.js +2 -2
  88. package/src/styles/zoom.js +2 -2
  89. package/src/theme/gv-theme.js +2 -2
@@ -13,16 +13,17 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import { classMap } from 'lit/directives/class-map';
17
- import { css, LitElement, html } from 'lit';
16
+ import { classMap } from 'lit-html/directives/class-map';
17
+ import { css, LitElement } from 'lit-element';
18
18
  import { dispatchCustomEvent } from '../lib/events';
19
19
  import { getCssVar, hexToRGB } from '../lib/style';
20
+ import { html } from 'lit-html';
20
21
  import { i18n } from '../lib/i18n';
21
22
  import { link } from '../styles/link';
22
- import { repeat } from 'lit/directives/repeat';
23
+ import { repeat } from 'lit-html/directives/repeat';
23
24
  import { skeleton } from '../styles/skeleton';
24
25
  import { empty } from '../styles/empty';
25
- import { styleMap } from 'lit/directives/style-map';
26
+ import { styleMap } from 'lit-html/directives/style-map';
26
27
  import './../atoms/gv-icon';
27
28
  /**
28
29
  * Plans
@@ -303,4 +304,4 @@ export class GvPlans extends LitElement {
303
304
 
304
305
  }
305
306
  window.customElements.define('gv-plans', GvPlans);
306
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL21vbGVjdWxlcy9ndi1wbGFucy5qcyJdLCJuYW1lcyI6WyJjbGFzc01hcCIsImNzcyIsIkxpdEVsZW1lbnQiLCJodG1sIiwiZGlzcGF0Y2hDdXN0b21FdmVudCIsImdldENzc1ZhciIsImhleFRvUkdCIiwiaTE4biIsImxpbmsiLCJyZXBlYXQiLCJza2VsZXRvbiIsImVtcHR5Iiwic3R5bGVNYXAiLCJHdlBsYW5zIiwicHJvcGVydGllcyIsInBsYW5zIiwidHlwZSIsIkFycmF5IiwiY3VycmVudCIsIk51bWJlciIsInZhbHVlIiwiU3RyaW5nIiwicmVmbGVjdCIsIkJvb2xlYW4iLCJzaXplIiwiX2VtcHR5IiwiX3BsYW5zIiwic3R5bGVzIiwiY29uc3RydWN0b3IiLCJfY2hhcmFjdGVyaXN0aWNzIiwibGVuZ3RoIiwicGxhbiIsImNoYXJhY3RlcmlzdGljcyIsInZhbGlkYXRpb24iLCJ0b1VwcGVyQ2FzZSIsInB1c2giLCJzZWN1cml0eSIsIlByb21pc2UiLCJyZXNvbHZlIiwidGhlbiIsImFjdGl2ZVBsYW4iLCJmaW5kIiwicCIsImFjdGl2ZSIsImlkIiwiY2F0Y2giLCJlIiwiX2Vycm9yIiwidG8iLCJtYXAiLCJpbmRleCIsIkpTT04iLCJzdHJpbmdpZnkiLCJkaXNwYXRjaEV2ZW50IiwiRXZlbnQiLCJidWJibGVzIiwiY2FuY2VsYWJsZSIsIl9nZXRQbGFuVGl0bGUiLCJ0aXRsZSIsIm5hbWUiLCJkZXNjcmlwdGlvbiIsIl9vblJlZGlyZWN0IiwiaGFzUGFnaW5hdGlvbiIsImhhc0xlZnQiLCJoYXNSaWdodCIsImxlZnQiLCJzbGljZSIsInJpZ2h0IiwicG9wIiwiZmlsbCIsImZvckVhY2giLCJpIiwiYSIsInVuc2hpZnQiLCJiIiwic2hpZnQiLCJfcmVuZGVySGVhZGVyIiwiYmluZCIsIl9yZW5kZXJUcmlhbmdsZXMiLCJzZWxlY3RvciIsIl9yZW5kZXJQYWdpbmF0aW9uIiwidG9MZWZ0IiwidG9SaWdodCIsInJlbmRlciIsImJnYyIsInIiLCJnIiwic3R5bGUiLCJiYWNrZ3JvdW5kQ29sb3IiLCJjb2xvciIsImNsYXNzZXMiLCJjdXJyZW50UGxhbnMiLCJjaGFyYWN0ZXJpc3RpYyIsIndpbmRvdyIsImN1c3RvbUVsZW1lbnRzIiwiZGVmaW5lIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxRQUFULFFBQXlCLDBCQUF6QjtBQUNBLFNBQVNDLEdBQVQsRUFBY0MsVUFBZCxFQUEwQkMsSUFBMUIsUUFBc0MsS0FBdEM7QUFDQSxTQUFTQyxtQkFBVCxRQUFvQyxlQUFwQztBQUNBLFNBQVNDLFNBQVQsRUFBb0JDLFFBQXBCLFFBQW9DLGNBQXBDO0FBRUEsU0FBU0MsSUFBVCxRQUFxQixhQUFyQjtBQUNBLFNBQVNDLElBQVQsUUFBcUIsZ0JBQXJCO0FBQ0EsU0FBU0MsTUFBVCxRQUF1Qix1QkFBdkI7QUFDQSxTQUFTQyxRQUFULFFBQXlCLG9CQUF6QjtBQUNBLFNBQVNDLEtBQVQsUUFBc0IsaUJBQXRCO0FBQ0EsU0FBU0MsUUFBVCxRQUF5QiwwQkFBekI7QUFDQSxPQUFPLG9CQUFQO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxPQUFPLE1BQU1DLE9BQU4sU0FBc0JYLFVBQXRCLENBQWlDO0FBQ2pCLGFBQVZZLFVBQVUsR0FBRztBQUN0QixXQUFPO0FBQ0w7QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ01DLE1BQUFBLEtBQUssRUFBRTtBQUFFQyxRQUFBQSxJQUFJLEVBQUVDO0FBQVIsT0FQRjtBQVFMQyxNQUFBQSxPQUFPLEVBQUU7QUFBRUYsUUFBQUEsSUFBSSxFQUFFRztBQUFSLE9BUko7QUFTTEMsTUFB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O0FBQ0Q7O0FBRURnRSxFQUFBQSxPQUFPLEdBQUc7QUFDUixTQUFLbEMsRUFBTCxDQUFRLEtBQUt0QixNQUFMLENBQVksS0FBS1IsT0FBakIsQ0FBUjtBQUNEOztBQXpYcUM7QUE0WHhDMkUsTUFBTSxDQUFDQyxjQUFQLENBQXNCQyxNQUF0QixDQUE2QixVQUE3QixFQUF5Q2xGLE9BQXpDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAxNSBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7IGNsYXNzTWFwIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvY2xhc3MtbWFwJztcbmltcG9ydCB7IGNzcywgTGl0RWxlbWVudCwgaHRtbCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBkaXNwYXRjaEN1c3RvbUV2ZW50IH0gZnJvbSAnLi4vbGliL2V2ZW50cyc7XG5pbXBvcnQgeyBnZXRDc3NWYXIsIGhleFRvUkdCIH0gZnJvbSAnLi4vbGliL3N0eWxlJztcblxuaW1wb3J0IHsgaTE4biB9IGZyb20gJy4uL2xpYi9pMThuJztcbmltcG9ydCB7IGxpbmsgfSBmcm9tICcuLi9zdHlsZXMvbGluayc7XG5pbXBvcnQgeyByZXBlYXQgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9yZXBlYXQnO1xuaW1wb3J0IHsgc2tlbGV0b24gfSBmcm9tICcuLi9zdHlsZXMvc2tlbGV0b24nO1xuaW1wb3J0IHsgZW1wdHkgfSBmcm9tICcuLi9zdHlsZXMvZW1wdHknO1xuaW1wb3J0IHsgc3R5bGVNYXAgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9zdHlsZS1tYXAnO1xuaW1wb3J0ICcuLy4uL2F0b21zL2d2LWljb24nO1xuXG4vKipcbiAqIFBsYW5zXG4gKlxuICogIyMgRGV0YWlsc1xuICogKiBoYXMgQHRoZW1lIGZhY2V0XG4gKlxuICogQGZpcmVzIGlucHV0IC0gTmF0aXZlIGlucHV0IGV2ZW50IHdoZW4gcGxhbiBjaGFuZ2VcbiAqIEBmaXJlcyBndi1wbGFuczpyZWRpcmVjdCAtIEV2ZW50IHdoZW4gdXNlciBjbGljayB0byByZWRpcmVjdCBsaW5rIHdoZW4gcGxhbnMgYXJlIGVtcHR5XG4gKlxuICogQGF0dHIge0FycmF5fSBwbGFucyAtIFBsYW5zIGxpc3RcbiAqIEBhdHRyIHtOdW1iZXJ9IGN1cnJlbnQgLSBUaGUgY3VycmVudCBwbGFuIGluZGV4XG4gKiBAYXR0ciB7U3RyaW5nfSB2YWx1ZSAtIFRoZSBjdXJyZW50IHBsYW4gaWRcbiAqIEBhdHRyIHtCb29sZWFufSBza2VsZXRvbiAtIGVuYWJsZSBza2VsZXRvbiBzY3JlZW4gVUkgcGF0dGVybiAobG9hZGluZyBoaW50KVxuICpcbiAqIEBjc3Nwcm9wIHtDb2xvcn0gWy0tZ3YtcGxhbnMtLWJnYz12YXIoLS1ndi10aGVtZS1jb2xvciwgIzVhNzY4NCldIC0gQmFja2dyb3VuZCBjb2xvclxuICogQGNzc3Byb3Age0NvbG9yfSBbLS1ndi1wbGFucy1mb250LS1jPXZhcigtLWd2LXRoZW1lLWZvbnQtY29sb3ItbGlnaHQsICNmZmZmZmYpXSAtIEZvbnQgY29sb3JcbiAqIEBjc3Nwcm9wIHtDb2xvcn0gWy0tZ3YtcGxhbnMtY2hhcmFjdGVyaXN0aWMtLWJnYz12YXIoLS1ndi10aGVtZS1jb2xvci1saWdodCwgIzg2YzNkMCldIC0gQ2hhcmFjdGVyaXN0aWMgYmFja2dyb3VuZCBjb2xvclxuICogQGNzc3Byb3Age0NvbG9yfSBbLS1ndi1wbGFucy1jaGFyYWN0ZXJpc3RpY3MtLWJkYz12YXIoLS1ndi10aGVtZS1uZXV0cmFsLWNvbG9yLCAjZjVmNWY1KV0gLSBDaGFyYWN0ZXJpc3RpY3MgYm9yZGVyIGNvbG9yXG4gKiBAY3NzcHJvcCB7TGVuZ3RofSBbLS1ndi1wbGFucy1pY29uLS1zPTI0cHhdIC0gSGVpZ2h0IGFuZCBpY29uIHdpZHRoXG4gKi9cbmV4cG9ydCBjbGFzcyBHdlBsYW5zIGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHN0YXRpYyBnZXQgcHJvcGVydGllcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgLyoqXG4gICAgICAgKiBUaGlzIExpc3Qgb2YgUGxhblxuICAgICAgICogQHR5cGUgT2JqZWN0IGh0dHBzOi8vZ2l0aHViLmNvbS9ncmF2aXRlZS1pby9ncmF2aXRlZS1jbGllbnRzLXNkay9ibG9iL21hc3Rlci9tb2RlbC9wbGFuLnRzXG4gICAgICAgKiBAYXR0clxuICAgICAgICogQHJlcXVpcmVkXG4gICAgICAgKi9cbiAgICAgIHBsYW5zOiB7IHR5cGU6IEFycmF5IH0sXG4gICAgICBjdXJyZW50OiB7IHR5cGU6IE51bWJlciB9LFxuICAgICAgdmFsdWU6IHsgdHlwZTogU3RyaW5nLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgICBza2VsZXRvbjogeyB0eXBlOiBCb29sZWFuIH0sXG4gICAgICBzaXplOiB7IHR5cGU6IE51bWJlciB9LFxuICAgICAgX2VtcHR5OiB7IHR5cGU6IEJvb2xlYW4gfSxcbiAgICAgIF9wbGFuczogeyB0eXBlOiBBcnJheSB9LFxuICAgIH07XG4gIH1cblxuICBzdGF0aWMgZ2V0IHN0eWxlcygpIHtcbiAgICByZXR1cm4gW1xuICAgICAgZW1wdHksXG4gICAgICBsaW5rLFxuICAgICAgLy8gbGFuZ3VhZ2U9Y3NzXG4gICAgICBjc3NgXG4gICAgICAgIDpob3N0IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgIG1hcmdpbjogMC4ycmVtO1xuICAgICAgICAgIC0tYmdjOiB2YXIoLS1ndi1wbGFucy0tYmdjLCB2YXIoLS1ndi10aGVtZS1jb2xvciwgIzVhNzY4NCkpO1xuICAgICAgICAgIC0tZmM6IHZhcigtLWd2LXBsYW5zLWZvbnQtLWMsIHZhcigtLWd2LXRoZW1lLWZvbnQtY29sb3ItbGlnaHQsICNmZmZmZmYpKTtcbiAgICAgICAgICAtLWd2LWljb24tLWM6IHZhcigtLWJnYyk7XG4gICAgICAgIH1cblxuICAgICAgICAucGxhbnMge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICBoZWlnaHQ6IDgwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAucGxhbiB7XG4gICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICBwYWRkaW5nOiAxNnB4O1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wbGFuLmFjdGl2ZSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmdjKTtcbiAgICAgICAgICBjb2xvcjogdmFyKC0tZmMpO1xuICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW47XG4gICAgICAgIH1cblxuICAgICAgICAubmFtZSB7XG4gICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1ndi10aGVtZS1mb250LXNpemUtbCwgMTZweCk7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIH1cblxuICAgICAgICAuZGVzY3JpcHRpb24ge1xuICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZ3YtdGhlbWUtZm9udC1zaXplLXMsIDEycHgpO1xuICAgICAgICAgIC0tbGg6IHZhcigtLWd2LXRoZW1lLWZvbnQtc2l6ZS1zLCAxMnB4KTtcbiAgICAgICAgICBsaW5lLWhlaWdodDogdmFyKC0tbGgpO1xuICAgICAgICAgIC0tbWF4LWxpbmVzOiAyO1xuICAgICAgICAgIG1heC1oZWlnaHQ6IGNhbGModmFyKC0tbGgpICogdmFyKC0tbWF4LWxpbmVzKSk7XG4gICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zZWxlY3RvcnMge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAuc2VsZWN0b3Ige1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAuYWN0aXZlIC50cmlhbmdsZSB7XG4gICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgIGJvcmRlci1sZWZ0OiA3cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgYm9yZGVyLXJpZ2h0OiA3cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgYm9yZGVyLXRvcDogOXB4IHNvbGlkIHZhcigtLWJnYyk7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hhcmFjdGVyaXN0aWNzIHtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAzNHB4O1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWd2LXBsYW5zLWNoYXJhY3RlcmlzdGljcy0tYmRjLCB2YXIoLS1ndi10aGVtZS1uZXV0cmFsLWNvbG9yLCAjZjVmNWY1KSk7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgcGFkZGluZzogMzRweDtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hhcmFjdGVyaXN0aWMge1xuICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZ3YtdGhlbWUtZm9udC1zaXplLW0sIDE0cHgpO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMnB4O1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgbWFyZ2luOiAyMHB4O1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNpcmNsZSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3YtcGxhbnMtY2hhcmFjdGVyaXN0aWMtLWJnYywgdmFyKC0tZ3YtdGhlbWUtY29sb3ItbGlnaHQsICM4NmMzZDApKTtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgd2lkdGg6IDMycHg7XG4gICAgICAgICAgaGVpZ2h0OiAzMnB4O1xuICAgICAgICAgIG1hcmdpbjogMTBweDtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBndi1pY29uIHtcbiAgICAgICAgICAtLWd2LWljb24tLXM6IHZhcigtLWd2LXBsYW5zLWljb24tLXMsIDI0cHgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnNrZWxldG9uIHtcbiAgICAgICAgICBtaW4taGVpZ2h0OiA0MDBweDtcbiAgICAgICAgICBtYXJnaW46IDAgMC4ycmVtO1xuICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5saW5rIHtcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wYWdpbmF0aW9uIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgfVxuICAgICAgYCxcbiAgICAgIHNrZWxldG9uLFxuICAgIF07XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuY3VycmVudCA9IDE7XG4gICAgdGhpcy5zaXplID0gNDtcbiAgICB0aGlzLl9wbGFucyA9IFtdO1xuICAgIHRoaXMuX2VtcHR5ID0gdHJ1ZTtcbiAgfVxuXG4gIGdldCBfY2hhcmFjdGVyaXN0aWNzKCkge1xuICAgIGlmICh0aGlzLl9wbGFucy5sZW5ndGggPj0gdGhpcy5jdXJyZW50KSB7XG4gICAgICBjb25zdCBwbGFuID0gdGhpcy5fcGxhbnNbdGhpcy5jdXJyZW50IC0gMV07XG4gICAgICBpZiAocGxhbi5jaGFyYWN0ZXJpc3RpY3MgJiYgcGxhbi5jaGFyYWN0ZXJpc3RpY3MubGVuZ3RoID4gMCkge1xuICAgICAgICByZXR1cm4gcGxhbi5jaGFyYWN0ZXJpc3RpY3M7XG4gICAgICB9XG5cbiAgICAgIGxldCBjaGFyYWN0ZXJpc3RpY3MgPSBbXTtcblxuICAgICAgaWYgKHBsYW4udmFsaWRhdGlvbikge1xuICAgICAgICBzd2l0Y2ggKHBsYW4udmFsaWRhdGlvbi50b1VwcGVyQ2FzZSgpKSB7XG4gICAgICAgICAgY2FzZSAnQVVUTyc6XG4gICAgICAgICAgICBjaGFyYWN0ZXJpc3RpY3MucHVzaChpMThuKCdndi1wbGFucy52YWxpZGF0aW9uLmF1dG8nKSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdNQU5VQUwnOlxuICAgICAgICAgICAgY2hhcmFjdGVyaXN0aWNzLnB1c2goaTE4bignZ3YtcGxhbnMudmFsaWRhdGlvbi5tYW51YWwnKSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAocGxhbi5zZWN1cml0eSkge1xuICAgICAgICBzd2l0Y2ggKHBsYW4uc2VjdXJpdHkudG9VcHBlckNhc2UoKSkge1xuICAgICAgICAgIGNhc2UgJ0FQSV9LRVknOlxuICAgICAgICAgICAgY2hhcmFjdGVyaXN0aWNzLnB1c2goaTE4bignZ3YtcGxhbnMuc2VjdXJpdHkuYXBpS2V5JykpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnSldUJzpcbiAgICAgICAgICAgIGNoYXJhY3RlcmlzdGljcy5wdXNoKGkxOG4oJ2d2LXBsYW5zLnNlY3VyaXR5Lmp3dCcpKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ09BVVRIMic6XG4gICAgICAgICAgICBjaGFyYWN0ZXJpc3RpY3MucHVzaChpMThuKCdndi1wbGFucy5zZWN1cml0eS5vYXV0aDInKSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdLRVlfTEVTUyc6XG4gICAgICAgICAgICBjaGFyYWN0ZXJpc3RpY3MgPSBbXTtcbiAgICAgICAgICAgIGNoYXJhY3RlcmlzdGljcy5wdXNoKGkxOG4oJ2d2LXBsYW5zLnNlY3VyaXR5LmtleUxlc3MnKSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoY2hhcmFjdGVyaXN0aWNzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBjaGFyYWN0ZXJpc3RpY3MucHVzaChpMThuKCdndi1wbGFucy5jaGFyYWN0ZXJpc3RpY3MuZW1wdHknKSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjaGFyYWN0ZXJpc3RpY3M7XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIHNldCBwbGFucyhwbGFucykge1xuICAgIHRoaXMuc2tlbGV0b24gPSB0cnVlO1xuICAgIFByb21pc2UucmVzb2x2ZShwbGFucylcbiAgICAgIC50aGVuKChwbGFucykgPT4ge1xuICAgICAgICBpZiAocGxhbnMpIHtcbiAgICAgICAgICB0aGlzLl9lbXB0eSA9IHBsYW5zLmxlbmd0aCA9PT0gMDtcbiAgICAgICAgICB0aGlzLl9wbGFucyA9IHBsYW5zO1xuICAgICAgICAgIGlmICghdGhpcy5fZW1wdHkpIHtcbiAgICAgICAgICAgIGNvbnN0IGFjdGl2ZVBsYW4gPSB0aGlzLl9wbGFucy5maW5kKChwKSA9PiBwLmFjdGl2ZSk7XG4gICAgICAgICAgICBpZiAoYWN0aXZlUGxhbiA9PSBudWxsKSB7XG4gICAgICAgICAgICAgIHRoaXMuX3BsYW5zWzBdLmFjdGl2ZSA9IHRydWU7XG4gICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLl9wbGFuc1swXS5pZDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMudmFsdWUgPSBhY3RpdmVQbGFuLmlkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnNrZWxldG9uID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgdGhpcy5fZXJyb3IgPSB0cnVlO1xuICAgICAgICB0aGlzLl9wbGFucyA9IFtdO1xuICAgICAgICB0aGlzLnNrZWxldG9uID0gZmFsc2U7XG4gICAgICB9KTtcbiAgfVxuXG4gIHRvKHBsYW4pIHtcbiAgICBpZiAocGxhbikge1xuICAgICAgdGhpcy52YWx1ZSA9IHBsYW4uaWQ7XG4gICAgICB0aGlzLl9wbGFucyA9IHRoaXMuX3BsYW5zLm1hcCgocCwgaW5kZXgpID0+IHtcbiAgICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KHApID09PSBKU09OLnN0cmluZ2lmeShwbGFuKSkge1xuICAgICAgICAgIHAuYWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLmN1cnJlbnQgPSBpbmRleCArIDE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcC5hY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcDtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnaW5wdXQnKSwgeyBidWJibGVzOiB0cnVlLCBjYW5jZWxhYmxlOiB0cnVlIH0pO1xuICAgIH1cbiAgfVxuXG4gIF9nZXRQbGFuVGl0bGUocGxhbikge1xuICAgIGxldCB0aXRsZSA9IHBsYW4ubmFtZTtcbiAgICBpZiAocGxhbi5kZXNjcmlwdGlvbikge1xuICAgICAgdGl0bGUgKz0gYDogJHtwbGFuLmRlc2NyaXB0aW9ufWA7XG4gICAgfVxuICAgIHJldHVybiB0aXRsZTtcbiAgfVxuXG4gIF9vblJlZGlyZWN0KCkge1xuICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgJ3JlZGlyZWN0Jyk7XG4gIH1cblxuICBnZXQgaGFzUGFnaW5hdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5zaXplIDwgdGhpcy5fcGxhbnMubGVuZ3RoO1xuICB9XG5cbiAgZ2V0IGhhc0xlZnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaGFzUGFnaW5hdGlvbiAmJiB0aGlzLmN1cnJlbnQgPiAxO1xuICB9XG5cbiAgZ2V0IGhhc1JpZ2h0KCkge1xuICAgIHJldHVybiB0aGlzLmhhc1BhZ2luYXRpb24gJiYgdGhpcy5jdXJyZW50IDwgdGhpcy5fcGxhbnMubGVuZ3RoO1xuICB9XG5cbiAgZ2V0IHBsYW5zKCkge1xuICAgIGlmICh0aGlzLmhhc1BhZ2luYXRpb24pIHtcbiAgICAgIGNvbnN0IGxlZnQgPSB0aGlzLl9wbGFucy5zbGljZSgwLCB0aGlzLmN1cnJlbnQpO1xuICAgICAgY29uc3QgcmlnaHQgPSB0aGlzLl9wbGFucy5zbGljZSh0aGlzLmN1cnJlbnQpO1xuICAgICAgY29uc3QgcGxhbnMgPSBbbGVmdC5wb3AoKV07XG5cbiAgICAgIG5ldyBBcnJheSh0aGlzLnNpemUgLSAxKS5maWxsKCcnKS5mb3JFYWNoKChlLCBpKSA9PiB7XG4gICAgICAgIGlmICgoaSAlIDIgPT09IDAgJiYgbGVmdC5sZW5ndGggPiAwKSB8fCByaWdodC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICBjb25zdCBhID0gbGVmdC5wb3AoKTtcbiAgICAgICAgICBwbGFucy51bnNoaWZ0KGEpO1xuICAgICAgICB9IGVsc2UgaWYgKHJpZ2h0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBjb25zdCBiID0gcmlnaHQuc2hpZnQoKTtcbiAgICAgICAgICBwbGFucy5wdXNoKGIpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBwbGFucztcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3BsYW5zO1xuICB9XG5cbiAgX3JlbmRlckhlYWRlcihwbGFucykge1xuICAgIHJldHVybiBwbGFucy5tYXAoKHBsYW4sIGluZGV4KSA9PiB7XG4gICAgICByZXR1cm4gaHRtbGA8bGlcbiAgICAgICAgQGNsaWNrPVwiJHt0aGlzLnRvLmJpbmQodGhpcywgcGxhbil9XCJcbiAgICAgICAgdGl0bGU9XCIke3RoaXMuX2dldFBsYW5UaXRsZShwbGFuKX1cIlxuICAgICAgICBjbGFzcz1cIiR7Y2xhc3NNYXAoe1xuICAgICAgICAgIHBsYW46IHRydWUsXG4gICAgICAgICAgYWN0aXZlOiBwbGFuLmFjdGl2ZSxcbiAgICAgICAgfSl9XCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm5hbWVcIj4ke3BsYW4ubmFtZX08L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRlc2NyaXB0aW9uXCI+JHtwbGFuLmRlc2NyaXB0aW9ufTwvZGl2PlxuICAgICAgPC9saT5gO1xuICAgIH0pO1xuICB9XG5cbiAgX3JlbmRlclRyaWFuZ2xlcyhwbGFucykge1xuICAgIHJldHVybiBwbGFucy5tYXAoKHBsYW4sIGluZGV4KSA9PiB7XG4gICAgICByZXR1cm4gaHRtbGA8ZGl2XG4gICAgICAgIGNsYXNzPVwiJHtjbGFzc01hcCh7XG4gICAgICAgICAgc2VsZWN0b3I6IHRydWUsXG4gICAgICAgICAgYWN0aXZlOiBwbGFuLmFjdGl2ZSxcbiAgICAgICAgfSl9XCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRyaWFuZ2xlXCI+PC9kaXY+XG4gICAgICA8L2Rpdj5gO1xuICAgIH0pO1xuICB9XG5cbiAgX3JlbmRlclBhZ2luYXRpb24oKSB7XG4gICAgaWYgKHRoaXMuaGFzUGFnaW5hdGlvbikge1xuICAgICAgcmV0dXJuIGh0bWxgIDxkaXYgY2xhc3M9XCJwYWdpbmF0aW9uXCI+XG4gICAgICAgICR7IXRoaXMuaGFzTGVmdCA/ICcnIDogaHRtbGA8Z3YtaWNvbiBAY2xpY2s9XCIke3RoaXMudG9MZWZ0fVwiIHNoYXBlPVwibmF2aWdhdGlvbjphbmdsZS1sZWZ0XCIgY2xhc3M9XCJsaW5rXCI+PC9ndi1pY29uPmB9XG4gICAgICAgIDxkaXYgc3R5bGU9XCJmbGV4OiAxO1wiPjwvZGl2PlxuICAgICAgICAkeyF0aGlzLmhhc1JpZ2h0ID8gJycgOiBodG1sYDxndi1pY29uIEBjbGljaz1cIiR7dGhpcy50b1JpZ2h0fVwiIHNoYXBlPVwibmF2aWdhdGlvbjphbmdsZS1yaWdodFwiIGNsYXNzPVwibGlua1wiPjwvZ3YtaWNvbj5gfVxuICAgICAgPC9kaXY+YDtcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IGJnYyA9IGdldENzc1Zhcih0aGlzLCAnLS1ndi1wbGFucy0tYmdjJywgJyM1QTc2ODQnKTtcbiAgICBjb25zdCB7IHIsIGcsIGIgfSA9IGhleFRvUkdCKGJnYyk7XG4gICAgY29uc3Qgc3R5bGUgPSB7XG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IGByZ2JhKCR7cn0sICR7Z30sICR7Yn0sIDAuMSlgLFxuICAgICAgY29sb3I6IGByZ2JhKCR7cn0sICR7Z30sICR7Yn0sIDAuNSlgLFxuICAgIH07XG5cbiAgICBpZiAoIXRoaXMuc2tlbGV0b24pIHtcbiAgICAgIGlmICh0aGlzLl9lcnJvcikge1xuICAgICAgICByZXR1cm4gaHRtbGA8ZGl2IGNsYXNzPVwiZXJyb3JcIj5cbiAgICAgICAgICA8cD4ke2kxOG4oJ2d2LXBsYW5zLmVycm9yJyl9PC9wPlxuICAgICAgICA8L2Rpdj5gO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLl9lbXB0eSkge1xuICAgICAgICByZXR1cm4gaHRtbGAgPGRpdiBjbGFzcz1cImVtcHR5XCI+XG4gICAgICAgICAgPHA+JHtpMThuKCdndi1wbGFucy5lbXB0eS50aXRsZScpfTwvcD5cbiAgICAgICAgICA8YSBjbGFzcz1cImxpbmtcIiBAY2xpY2s9XCIke3RoaXMuX29uUmVkaXJlY3R9XCI+JHtpMThuKCdndi1wbGFucy5lbXB0eS5yZWRpcmVjdCcpfTwvYT5cbiAgICAgICAgPC9kaXY+YDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBjbGFzc2VzID0geyBza2VsZXRvbjogdGhpcy5za2VsZXRvbiB9O1xuICAgIGNvbnN0IGN1cnJlbnRQbGFucyA9IHRoaXMucGxhbnM7XG4gICAgcmV0dXJuIGh0bWxgPGRpdiBjbGFzcz1cIiR7Y2xhc3NNYXAoY2xhc3Nlcyl9XCI+XG4gICAgICA8dWwgY2xhc3M9XCJwbGFuc1wiIHN0eWxlPVwiJHtzdHlsZU1hcChzdHlsZSl9XCI+XG4gICAgICAgICR7dGhpcy5fcmVuZGVySGVhZGVyKGN1cnJlbnRQbGFucyl9XG4gICAgICA8L3VsPlxuICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdG9yc1wiPiR7dGhpcy5fcmVuZGVyVHJpYW5nbGVzKGN1cnJlbnRQbGFucyl9PC9kaXY+XG4gICAgICAke3RoaXMuX3JlbmRlclBhZ2luYXRpb24oKX1cbiAgICAgICR7IXRoaXMuc2tlbGV0b25cbiAgICAgICAgPyBodG1sYDxkaXYgY2xhc3M9XCJjaGFyYWN0ZXJpc3RpY3NcIj5cbiAgICAgICAgICAgICR7cmVwZWF0KFxuICAgICAgICAgICAgICB0aGlzLl9jaGFyYWN0ZXJpc3RpY3MsXG4gICAgICAgICAgICAgIChjaGFyYWN0ZXJpc3RpYykgPT4gY2hhcmFjdGVyaXN0aWMsXG4gICAgICAgICAgICAgIChjaGFyYWN0ZXJpc3RpYywgaW5kZXgpID0+XG4gICAgICAgICAgICAgICAgaHRtbGA8ZGl2IGNsYXNzPVwiY2hhcmFjdGVyaXN0aWNcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaXJjbGVcIj48Z3YtaWNvbiBzaGFwZT1cImhvbWU6Zmxvd2VyIzJcIj48L2d2LWljb24+PC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2PiR7Y2hhcmFjdGVyaXN0aWN9PC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+YCxcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9kaXY+YFxuICAgICAgICA6ICcnfVxuICAgIDwvZGl2PiBgO1xuICB9XG5cbiAgdG9MZWZ0KCkge1xuICAgIHRoaXMudG8odGhpcy5fcGxhbnNbdGhpcy5jdXJyZW50IC0gMl0pO1xuICB9XG5cbiAgdG9SaWdodCgpIHtcbiAgICB0aGlzLnRvKHRoaXMuX3BsYW5zW3RoaXMuY3VycmVudF0pO1xuICB9XG59XG5cbndpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmUoJ2d2LXBsYW5zJywgR3ZQbGFucyk7XG4iXX0=
307
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL21vbGVjdWxlcy9ndi1wbGFucy5qcyJdLCJuYW1lcyI6WyJjbGFzc01hcCIsImNzcyIsIkxpdEVsZW1lbnQiLCJkaXNwYXRjaEN1c3RvbUV2ZW50IiwiZ2V0Q3NzVmFyIiwiaGV4VG9SR0IiLCJodG1sIiwiaTE4biIsImxpbmsiLCJyZXBlYXQiLCJza2VsZXRvbiIsImVtcHR5Iiwic3R5bGVNYXAiLCJHdlBsYW5zIiwicHJvcGVydGllcyIsInBsYW5zIiwidHlwZSIsIkFycmF5IiwiY3VycmVudCIsIk51bWJlciIsInZhbHVlIiwiU3RyaW5nIiwicmVmbGVjdCIsIkJvb2xlYW4iLCJzaXplIiwiX2VtcHR5IiwiX3BsYW5zIiwic3R5bGVzIiwiY29uc3RydWN0b3IiLCJfY2hhcmFjdGVyaXN0aWNzIiwibGVuZ3RoIiwicGxhbiIsImNoYXJhY3RlcmlzdGljcyIsInZhbGlkYXRpb24iLCJ0b1VwcGVyQ2FzZSIsInB1c2giLCJzZWN1cml0eSIsIlByb21pc2UiLCJyZXNvbHZlIiwidGhlbiIsImFjdGl2ZVBsYW4iLCJmaW5kIiwicCIsImFjdGl2ZSIsImlkIiwiY2F0Y2giLCJlIiwiX2Vycm9yIiwidG8iLCJtYXAiLCJpbmRleCIsIkpTT04iLCJzdHJpbmdpZnkiLCJkaXNwYXRjaEV2ZW50IiwiRXZlbnQiLCJidWJibGVzIiwiY2FuY2VsYWJsZSIsIl9nZXRQbGFuVGl0bGUiLCJ0aXRsZSIsIm5hbWUiLCJkZXNjcmlwdGlvbiIsIl9vblJlZGlyZWN0IiwiaGFzUGFnaW5hdGlvbiIsImhhc0xlZnQiLCJoYXNSaWdodCIsImxlZnQiLCJzbGljZSIsInJpZ2h0IiwicG9wIiwiZmlsbCIsImZvckVhY2giLCJpIiwiYSIsInVuc2hpZnQiLCJiIiwic2hpZnQiLCJfcmVuZGVySGVhZGVyIiwiYmluZCIsIl9yZW5kZXJUcmlhbmdsZXMiLCJzZWxlY3RvciIsIl9yZW5kZXJQYWdpbmF0aW9uIiwidG9MZWZ0IiwidG9SaWdodCIsInJlbmRlciIsImJnYyIsInIiLCJnIiwic3R5bGUiLCJiYWNrZ3JvdW5kQ29sb3IiLCJjb2xvciIsImNsYXNzZXMiLCJjdXJyZW50UGxhbnMiLCJjaGFyYWN0ZXJpc3RpYyIsIndpbmRvdyIsImN1c3RvbUVsZW1lbnRzIiwiZGVmaW5lIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxRQUFULFFBQXlCLCtCQUF6QjtBQUNBLFNBQVNDLEdBQVQsRUFBY0MsVUFBZCxRQUFnQyxhQUFoQztBQUNBLFNBQVNDLG1CQUFULFFBQW9DLGVBQXBDO0FBQ0EsU0FBU0MsU0FBVCxFQUFvQkMsUUFBcEIsUUFBb0MsY0FBcEM7QUFDQSxTQUFTQyxJQUFULFFBQXFCLFVBQXJCO0FBQ0EsU0FBU0MsSUFBVCxRQUFxQixhQUFyQjtBQUNBLFNBQVNDLElBQVQsUUFBcUIsZ0JBQXJCO0FBQ0EsU0FBU0MsTUFBVCxRQUF1Qiw0QkFBdkI7QUFDQSxTQUFTQyxRQUFULFFBQXlCLG9CQUF6QjtBQUNBLFNBQVNDLEtBQVQsUUFBc0IsaUJBQXRCO0FBQ0EsU0FBU0MsUUFBVCxRQUF5QiwrQkFBekI7QUFDQSxPQUFPLG9CQUFQO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxPQUFPLE1BQU1DLE9BQU4sU0FBc0JYLFVBQXRCLENBQWlDO0FBQ2pCLGFBQVZZLFVBQVUsR0FBRztBQUN0QixXQUFPO0FBQ0w7QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ01DLE1BQUFBLEtBQUssRUFBRTtBQUFFQyxRQUFBQSxJQUFJLEVBQUVDO0FBQVIsT0FQRjtBQVFMQyxNQUFBQSxPQUFPLEVBQUU7QUFBRUYsUUFBQUEsSUFBSSxFQUFFRztBQUFS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R0FBZSxDQUEzQixDQUFSO0FBQ0Q7O0FBRURnRSxFQUFBQSxPQUFPLEdBQUc7QUFDUixTQUFLbEMsRUFBTCxDQUFRLEtBQUt0QixNQUFMLENBQVksS0FBS1IsT0FBakIsQ0FBUjtBQUNEOztBQXpYcUM7QUE0WHhDMkUsTUFBTSxDQUFDQyxjQUFQLENBQXNCQyxNQUF0QixDQUE2QixVQUE3QixFQUF5Q2xGLE9BQXpDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAxNSBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7IGNsYXNzTWFwIH0gZnJvbSAnbGl0LWh0bWwvZGlyZWN0aXZlcy9jbGFzcy1tYXAnO1xuaW1wb3J0IHsgY3NzLCBMaXRFbGVtZW50IH0gZnJvbSAnbGl0LWVsZW1lbnQnO1xuaW1wb3J0IHsgZGlzcGF0Y2hDdXN0b21FdmVudCB9IGZyb20gJy4uL2xpYi9ldmVudHMnO1xuaW1wb3J0IHsgZ2V0Q3NzVmFyLCBoZXhUb1JHQiB9IGZyb20gJy4uL2xpYi9zdHlsZSc7XG5pbXBvcnQgeyBodG1sIH0gZnJvbSAnbGl0LWh0bWwnO1xuaW1wb3J0IHsgaTE4biB9IGZyb20gJy4uL2xpYi9pMThuJztcbmltcG9ydCB7IGxpbmsgfSBmcm9tICcuLi9zdHlsZXMvbGluayc7XG5pbXBvcnQgeyByZXBlYXQgfSBmcm9tICdsaXQtaHRtbC9kaXJlY3RpdmVzL3JlcGVhdCc7XG5pbXBvcnQgeyBza2VsZXRvbiB9IGZyb20gJy4uL3N0eWxlcy9za2VsZXRvbic7XG5pbXBvcnQgeyBlbXB0eSB9IGZyb20gJy4uL3N0eWxlcy9lbXB0eSc7XG5pbXBvcnQgeyBzdHlsZU1hcCB9IGZyb20gJ2xpdC1odG1sL2RpcmVjdGl2ZXMvc3R5bGUtbWFwJztcbmltcG9ydCAnLi8uLi9hdG9tcy9ndi1pY29uJztcblxuLyoqXG4gKiBQbGFuc1xuICpcbiAqICMjIERldGFpbHNcbiAqICogaGFzIEB0aGVtZSBmYWNldFxuICpcbiAqIEBmaXJlcyBpbnB1dCAtIE5hdGl2ZSBpbnB1dCBldmVudCB3aGVuIHBsYW4gY2hhbmdlXG4gKiBAZmlyZXMgZ3YtcGxhbnM6cmVkaXJlY3QgLSBFdmVudCB3aGVuIHVzZXIgY2xpY2sgdG8gcmVkaXJlY3QgbGluayB3aGVuIHBsYW5zIGFyZSBlbXB0eVxuICpcbiAqIEBhdHRyIHtBcnJheX0gcGxhbnMgLSBQbGFucyBsaXN0XG4gKiBAYXR0ciB7TnVtYmVyfSBjdXJyZW50IC0gVGhlIGN1cnJlbnQgcGxhbiBpbmRleFxuICogQGF0dHIge1N0cmluZ30gdmFsdWUgLSBUaGUgY3VycmVudCBwbGFuIGlkXG4gKiBAYXR0ciB7Qm9vbGVhbn0gc2tlbGV0b24gLSBlbmFibGUgc2tlbGV0b24gc2NyZWVuIFVJIHBhdHRlcm4gKGxvYWRpbmcgaGludClcbiAqXG4gKiBAY3NzcHJvcCB7Q29sb3J9IFstLWd2LXBsYW5zLS1iZ2M9dmFyKC0tZ3YtdGhlbWUtY29sb3IsICM1YTc2ODQpXSAtIEJhY2tncm91bmQgY29sb3JcbiAqIEBjc3Nwcm9wIHtDb2xvcn0gWy0tZ3YtcGxhbnMtZm9udC0tYz12YXIoLS1ndi10aGVtZS1mb250LWNvbG9yLWxpZ2h0LCAjZmZmZmZmKV0gLSBGb250IGNvbG9yXG4gKiBAY3NzcHJvcCB7Q29sb3J9IFstLWd2LXBsYW5zLWNoYXJhY3RlcmlzdGljLS1iZ2M9dmFyKC0tZ3YtdGhlbWUtY29sb3ItbGlnaHQsICM4NmMzZDApXSAtIENoYXJhY3RlcmlzdGljIGJhY2tncm91bmQgY29sb3JcbiAqIEBjc3Nwcm9wIHtDb2xvcn0gWy0tZ3YtcGxhbnMtY2hhcmFjdGVyaXN0aWNzLS1iZGM9dmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvciwgI2Y1ZjVmNSldIC0gQ2hhcmFjdGVyaXN0aWNzIGJvcmRlciBjb2xvclxuICogQGNzc3Byb3Age0xlbmd0aH0gWy0tZ3YtcGxhbnMtaWNvbi0tcz0yNHB4XSAtIEhlaWdodCBhbmQgaWNvbiB3aWR0aFxuICovXG5leHBvcnQgY2xhc3MgR3ZQbGFucyBleHRlbmRzIExpdEVsZW1lbnQge1xuICBzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC8qKlxuICAgICAgICogVGhpcyBMaXN0IG9mIFBsYW5cbiAgICAgICAqIEB0eXBlIE9iamVjdCBodHRwczovL2dpdGh1Yi5jb20vZ3Jhdml0ZWUtaW8vZ3Jhdml0ZWUtY2xpZW50cy1zZGsvYmxvYi9tYXN0ZXIvbW9kZWwvcGxhbi50c1xuICAgICAgICogQGF0dHJcbiAgICAgICAqIEByZXF1aXJlZFxuICAgICAgICovXG4gICAgICBwbGFuczogeyB0eXBlOiBBcnJheSB9LFxuICAgICAgY3VycmVudDogeyB0eXBlOiBOdW1iZXIgfSxcbiAgICAgIHZhbHVlOiB7IHR5cGU6IFN0cmluZywgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgc2tlbGV0b246IHsgdHlwZTogQm9vbGVhbiB9LFxuICAgICAgc2l6ZTogeyB0eXBlOiBOdW1iZXIgfSxcbiAgICAgIF9lbXB0eTogeyB0eXBlOiBCb29sZWFuIH0sXG4gICAgICBfcGxhbnM6IHsgdHlwZTogQXJyYXkgfSxcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIGdldCBzdHlsZXMoKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIGVtcHR5LFxuICAgICAgbGluayxcbiAgICAgIC8vIGxhbmd1YWdlPWNzc1xuICAgICAgY3NzYFxuICAgICAgICA6aG9zdCB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICBtYXJnaW46IDAuMnJlbTtcbiAgICAgICAgICAtLWJnYzogdmFyKC0tZ3YtcGxhbnMtLWJnYywgdmFyKC0tZ3YtdGhlbWUtY29sb3IsICM1YTc2ODQpKTtcbiAgICAgICAgICAtLWZjOiB2YXIoLS1ndi1wbGFucy1mb250LS1jLCB2YXIoLS1ndi10aGVtZS1mb250LWNvbG9yLWxpZ2h0LCAjZmZmZmZmKSk7XG4gICAgICAgICAgLS1ndi1pY29uLS1jOiB2YXIoLS1iZ2MpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnBsYW5zIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgaGVpZ2h0OiA4MHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLnBsYW4ge1xuICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgcGFkZGluZzogMTZweDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMjRweDtcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAucGxhbi5hY3RpdmUge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJnYyk7XG4gICAgICAgICAgY29sb3I6IHZhcigtLWZjKTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluO1xuICAgICAgICB9XG5cbiAgICAgICAgLm5hbWUge1xuICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZ3YtdGhlbWUtZm9udC1zaXplLWwsIDE2cHgpO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICB9XG5cbiAgICAgICAgLmRlc2NyaXB0aW9uIHtcbiAgICAgICAgICBmb250LXNpemU6IHZhcigtLWd2LXRoZW1lLWZvbnQtc2l6ZS1zLCAxMnB4KTtcbiAgICAgICAgICAtLWxoOiB2YXIoLS1ndi10aGVtZS1mb250LXNpemUtcywgMTJweCk7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLWxoKTtcbiAgICAgICAgICAtLW1heC1saW5lczogMjtcbiAgICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKHZhcigtLWxoKSAqIHZhcigtLW1heC1saW5lcykpO1xuICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAuc2VsZWN0b3JzIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgLnNlbGVjdG9yIHtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLmFjdGl2ZSAudHJpYW5nbGUge1xuICAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICBib3JkZXItbGVmdDogN3B4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgIGJvcmRlci1yaWdodDogN3B4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgIGJvcmRlci10b3A6IDlweCBzb2xpZCB2YXIoLS1iZ2MpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNoYXJhY3RlcmlzdGljcyB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMzRweDtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ndi1wbGFucy1jaGFyYWN0ZXJpc3RpY3MtLWJkYywgdmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvciwgI2Y1ZjVmNSkpO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIHBhZGRpbmc6IDM0cHg7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNoYXJhY3RlcmlzdGljIHtcbiAgICAgICAgICBmb250LXNpemU6IHZhcigtLWd2LXRoZW1lLWZvbnQtc2l6ZS1tLCAxNHB4KTtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMjJweDtcbiAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgIG1hcmdpbjogMjBweDtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaXJjbGUge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWd2LXBsYW5zLWNoYXJhY3RlcmlzdGljLS1iZ2MsIHZhcigtLWd2LXRoZW1lLWNvbG9yLWxpZ2h0LCAjODZjM2QwKSk7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgIHdpZHRoOiAzMnB4O1xuICAgICAgICAgIGhlaWdodDogMzJweDtcbiAgICAgICAgICBtYXJnaW46IDEwcHg7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgZ3YtaWNvbiB7XG4gICAgICAgICAgLS1ndi1pY29uLS1zOiB2YXIoLS1ndi1wbGFucy1pY29uLS1zLCAyNHB4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5za2VsZXRvbiB7XG4gICAgICAgICAgbWluLWhlaWdodDogNDAwcHg7XG4gICAgICAgICAgbWFyZ2luOiAwIDAuMnJlbTtcbiAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICAubGluayB7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICAucGFnaW5hdGlvbiB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICAgIGAsXG4gICAgICBza2VsZXRvbixcbiAgICBdO1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmN1cnJlbnQgPSAxO1xuICAgIHRoaXMuc2l6ZSA9IDQ7XG4gICAgdGhpcy5fcGxhbnMgPSBbXTtcbiAgICB0aGlzLl9lbXB0eSA9IHRydWU7XG4gIH1cblxuICBnZXQgX2NoYXJhY3RlcmlzdGljcygpIHtcbiAgICBpZiAodGhpcy5fcGxhbnMubGVuZ3RoID49IHRoaXMuY3VycmVudCkge1xuICAgICAgY29uc3QgcGxhbiA9IHRoaXMuX3BsYW5zW3RoaXMuY3VycmVudCAtIDFdO1xuICAgICAgaWYgKHBsYW4uY2hhcmFjdGVyaXN0aWNzICYmIHBsYW4uY2hhcmFjdGVyaXN0aWNzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgcmV0dXJuIHBsYW4uY2hhcmFjdGVyaXN0aWNzO1xuICAgICAgfVxuXG4gICAgICBsZXQgY2hhcmFjdGVyaXN0aWNzID0gW107XG5cbiAgICAgIGlmIChwbGFuLnZhbGlkYXRpb24pIHtcbiAgICAgICAgc3dpdGNoIChwbGFuLnZhbGlkYXRpb24udG9VcHBlckNhc2UoKSkge1xuICAgICAgICAgIGNhc2UgJ0FVVE8nOlxuICAgICAgICAgICAgY2hhcmFjdGVyaXN0aWNzLnB1c2goaTE4bignZ3YtcGxhbnMudmFsaWRhdGlvbi5hdXRvJykpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnTUFOVUFMJzpcbiAgICAgICAgICAgIGNoYXJhY3RlcmlzdGljcy5wdXNoKGkxOG4oJ2d2LXBsYW5zLnZhbGlkYXRpb24ubWFudWFsJykpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHBsYW4uc2VjdXJpdHkpIHtcbiAgICAgICAgc3dpdGNoIChwbGFuLnNlY3VyaXR5LnRvVXBwZXJDYXNlKCkpIHtcbiAgICAgICAgICBjYXNlICdBUElfS0VZJzpcbiAgICAgICAgICAgIGNoYXJhY3RlcmlzdGljcy5wdXNoKGkxOG4oJ2d2LXBsYW5zLnNlY3VyaXR5LmFwaUtleScpKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ0pXVCc6XG4gICAgICAgICAgICBjaGFyYWN0ZXJpc3RpY3MucHVzaChpMThuKCdndi1wbGFucy5zZWN1cml0eS5qd3QnKSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdPQVVUSDInOlxuICAgICAgICAgICAgY2hhcmFjdGVyaXN0aWNzLnB1c2goaTE4bignZ3YtcGxhbnMuc2VjdXJpdHkub2F1dGgyJykpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnS0VZX0xFU1MnOlxuICAgICAgICAgICAgY2hhcmFjdGVyaXN0aWNzID0gW107XG4gICAgICAgICAgICBjaGFyYWN0ZXJpc3RpY3MucHVzaChpMThuKCdndi1wbGFucy5zZWN1cml0eS5rZXlMZXNzJykpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGNoYXJhY3RlcmlzdGljcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgY2hhcmFjdGVyaXN0aWNzLnB1c2goaTE4bignZ3YtcGxhbnMuY2hhcmFjdGVyaXN0aWNzLmVtcHR5JykpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gY2hhcmFjdGVyaXN0aWNzO1xuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH1cblxuICBzZXQgcGxhbnMocGxhbnMpIHtcbiAgICB0aGlzLnNrZWxldG9uID0gdHJ1ZTtcbiAgICBQcm9taXNlLnJlc29sdmUocGxhbnMpXG4gICAgICAudGhlbigocGxhbnMpID0+IHtcbiAgICAgICAgaWYgKHBsYW5zKSB7XG4gICAgICAgICAgdGhpcy5fZW1wdHkgPSBwbGFucy5sZW5ndGggPT09IDA7XG4gICAgICAgICAgdGhpcy5fcGxhbnMgPSBwbGFucztcbiAgICAgICAgICBpZiAoIXRoaXMuX2VtcHR5KSB7XG4gICAgICAgICAgICBjb25zdCBhY3RpdmVQbGFuID0gdGhpcy5fcGxhbnMuZmluZCgocCkgPT4gcC5hY3RpdmUpO1xuICAgICAgICAgICAgaWYgKGFjdGl2ZVBsYW4gPT0gbnVsbCkge1xuICAgICAgICAgICAgICB0aGlzLl9wbGFuc1swXS5hY3RpdmUgPSB0cnVlO1xuICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5fcGxhbnNbMF0uaWQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gYWN0aXZlUGxhbi5pZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5za2VsZXRvbiA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlKSA9PiB7XG4gICAgICAgIHRoaXMuX2Vycm9yID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5fcGxhbnMgPSBbXTtcbiAgICAgICAgdGhpcy5za2VsZXRvbiA9IGZhbHNlO1xuICAgICAgfSk7XG4gIH1cblxuICB0byhwbGFuKSB7XG4gICAgaWYgKHBsYW4pIHtcbiAgICAgIHRoaXMudmFsdWUgPSBwbGFuLmlkO1xuICAgICAgdGhpcy5fcGxhbnMgPSB0aGlzLl9wbGFucy5tYXAoKHAsIGluZGV4KSA9PiB7XG4gICAgICAgIGlmIChKU09OLnN0cmluZ2lmeShwKSA9PT0gSlNPTi5zdHJpbmdpZnkocGxhbikpIHtcbiAgICAgICAgICBwLmFjdGl2ZSA9IHRydWU7XG4gICAgICAgICAgdGhpcy5jdXJyZW50ID0gaW5kZXggKyAxO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHAuYWN0aXZlID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHA7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2lucHV0JyksIHsgYnViYmxlczogdHJ1ZSwgY2FuY2VsYWJsZTogdHJ1ZSB9KTtcbiAgICB9XG4gIH1cblxuICBfZ2V0UGxhblRpdGxlKHBsYW4pIHtcbiAgICBsZXQgdGl0bGUgPSBwbGFuLm5hbWU7XG4gICAgaWYgKHBsYW4uZGVzY3JpcHRpb24pIHtcbiAgICAgIHRpdGxlICs9IGA6ICR7cGxhbi5kZXNjcmlwdGlvbn1gO1xuICAgIH1cbiAgICByZXR1cm4gdGl0bGU7XG4gIH1cblxuICBfb25SZWRpcmVjdCgpIHtcbiAgICBkaXNwYXRjaEN1c3RvbUV2ZW50KHRoaXMsICdyZWRpcmVjdCcpO1xuICB9XG5cbiAgZ2V0IGhhc1BhZ2luYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuc2l6ZSA8IHRoaXMuX3BsYW5zLmxlbmd0aDtcbiAgfVxuXG4gIGdldCBoYXNMZWZ0KCkge1xuICAgIHJldHVybiB0aGlzLmhhc1BhZ2luYXRpb24gJiYgdGhpcy5jdXJyZW50ID4gMTtcbiAgfVxuXG4gIGdldCBoYXNSaWdodCgpIHtcbiAgICByZXR1cm4gdGhpcy5oYXNQYWdpbmF0aW9uICYmIHRoaXMuY3VycmVudCA8IHRoaXMuX3BsYW5zLmxlbmd0aDtcbiAgfVxuXG4gIGdldCBwbGFucygpIHtcbiAgICBpZiAodGhpcy5oYXNQYWdpbmF0aW9uKSB7XG4gICAgICBjb25zdCBsZWZ0ID0gdGhpcy5fcGxhbnMuc2xpY2UoMCwgdGhpcy5jdXJyZW50KTtcbiAgICAgIGNvbnN0IHJpZ2h0ID0gdGhpcy5fcGxhbnMuc2xpY2UodGhpcy5jdXJyZW50KTtcbiAgICAgIGNvbnN0IHBsYW5zID0gW2xlZnQucG9wKCldO1xuXG4gICAgICBuZXcgQXJyYXkodGhpcy5zaXplIC0gMSkuZmlsbCgnJykuZm9yRWFjaCgoZSwgaSkgPT4ge1xuICAgICAgICBpZiAoKGkgJSAyID09PSAwICYmIGxlZnQubGVuZ3RoID4gMCkgfHwgcmlnaHQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgY29uc3QgYSA9IGxlZnQucG9wKCk7XG4gICAgICAgICAgcGxhbnMudW5zaGlmdChhKTtcbiAgICAgICAgfSBlbHNlIGlmIChyaWdodC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgY29uc3QgYiA9IHJpZ2h0LnNoaWZ0KCk7XG4gICAgICAgICAgcGxhbnMucHVzaChiKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gcGxhbnM7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9wbGFucztcbiAgfVxuXG4gIF9yZW5kZXJIZWFkZXIocGxhbnMpIHtcbiAgICByZXR1cm4gcGxhbnMubWFwKChwbGFuLCBpbmRleCkgPT4ge1xuICAgICAgcmV0dXJuIGh0bWxgPGxpXG4gICAgICAgIEBjbGljaz1cIiR7dGhpcy50by5iaW5kKHRoaXMsIHBsYW4pfVwiXG4gICAgICAgIHRpdGxlPVwiJHt0aGlzLl9nZXRQbGFuVGl0bGUocGxhbil9XCJcbiAgICAgICAgY2xhc3M9XCIke2NsYXNzTWFwKHtcbiAgICAgICAgICBwbGFuOiB0cnVlLFxuICAgICAgICAgIGFjdGl2ZTogcGxhbi5hY3RpdmUsXG4gICAgICAgIH0pfVwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJuYW1lXCI+JHtwbGFuLm5hbWV9PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvblwiPiR7cGxhbi5kZXNjcmlwdGlvbn08L2Rpdj5cbiAgICAgIDwvbGk+YDtcbiAgICB9KTtcbiAgfVxuXG4gIF9yZW5kZXJUcmlhbmdsZXMocGxhbnMpIHtcbiAgICByZXR1cm4gcGxhbnMubWFwKChwbGFuLCBpbmRleCkgPT4ge1xuICAgICAgcmV0dXJuIGh0bWxgPGRpdlxuICAgICAgICBjbGFzcz1cIiR7Y2xhc3NNYXAoe1xuICAgICAgICAgIHNlbGVjdG9yOiB0cnVlLFxuICAgICAgICAgIGFjdGl2ZTogcGxhbi5hY3RpdmUsXG4gICAgICAgIH0pfVwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0cmlhbmdsZVwiPjwvZGl2PlxuICAgICAgPC9kaXY+YDtcbiAgICB9KTtcbiAgfVxuXG4gIF9yZW5kZXJQYWdpbmF0aW9uKCkge1xuICAgIGlmICh0aGlzLmhhc1BhZ2luYXRpb24pIHtcbiAgICAgIHJldHVybiBodG1sYCA8ZGl2IGNsYXNzPVwicGFnaW5hdGlvblwiPlxuICAgICAgICAkeyF0aGlzLmhhc0xlZnQgPyAnJyA6IGh0bWxgPGd2LWljb24gQGNsaWNrPVwiJHt0aGlzLnRvTGVmdH1cIiBzaGFwZT1cIm5hdmlnYXRpb246YW5nbGUtbGVmdFwiIGNsYXNzPVwibGlua1wiPjwvZ3YtaWNvbj5gfVxuICAgICAgICA8ZGl2IHN0eWxlPVwiZmxleDogMTtcIj48L2Rpdj5cbiAgICAgICAgJHshdGhpcy5oYXNSaWdodCA/ICcnIDogaHRtbGA8Z3YtaWNvbiBAY2xpY2s9XCIke3RoaXMudG9SaWdodH1cIiBzaGFwZT1cIm5hdmlnYXRpb246YW5nbGUtcmlnaHRcIiBjbGFzcz1cImxpbmtcIj48L2d2LWljb24+YH1cbiAgICAgIDwvZGl2PmA7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCBiZ2MgPSBnZXRDc3NWYXIodGhpcywgJy0tZ3YtcGxhbnMtLWJnYycsICcjNUE3Njg0Jyk7XG4gICAgY29uc3QgeyByLCBnLCBiIH0gPSBoZXhUb1JHQihiZ2MpO1xuICAgIGNvbnN0IHN0eWxlID0ge1xuICAgICAgYmFja2dyb3VuZENvbG9yOiBgcmdiYSgke3J9LCAke2d9LCAke2J9LCAwLjEpYCxcbiAgICAgIGNvbG9yOiBgcmdiYSgke3J9LCAke2d9LCAke2J9LCAwLjUpYCxcbiAgICB9O1xuXG4gICAgaWYgKCF0aGlzLnNrZWxldG9uKSB7XG4gICAgICBpZiAodGhpcy5fZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIGh0bWxgPGRpdiBjbGFzcz1cImVycm9yXCI+XG4gICAgICAgICAgPHA+JHtpMThuKCdndi1wbGFucy5lcnJvcicpfTwvcD5cbiAgICAgICAgPC9kaXY+YDtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5fZW1wdHkpIHtcbiAgICAgICAgcmV0dXJuIGh0bWxgIDxkaXYgY2xhc3M9XCJlbXB0eVwiPlxuICAgICAgICAgIDxwPiR7aTE4bignZ3YtcGxhbnMuZW1wdHkudGl0bGUnKX08L3A+XG4gICAgICAgICAgPGEgY2xhc3M9XCJsaW5rXCIgQGNsaWNrPVwiJHt0aGlzLl9vblJlZGlyZWN0fVwiPiR7aTE4bignZ3YtcGxhbnMuZW1wdHkucmVkaXJlY3QnKX08L2E+XG4gICAgICAgIDwvZGl2PmA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgY2xhc3NlcyA9IHsgc2tlbGV0b246IHRoaXMuc2tlbGV0b24gfTtcbiAgICBjb25zdCBjdXJyZW50UGxhbnMgPSB0aGlzLnBsYW5zO1xuICAgIHJldHVybiBodG1sYDxkaXYgY2xhc3M9XCIke2NsYXNzTWFwKGNsYXNzZXMpfVwiPlxuICAgICAgPHVsIGNsYXNzPVwicGxhbnNcIiBzdHlsZT1cIiR7c3R5bGVNYXAoc3R5bGUpfVwiPlxuICAgICAgICAke3RoaXMuX3JlbmRlckhlYWRlcihjdXJyZW50UGxhbnMpfVxuICAgICAgPC91bD5cbiAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RvcnNcIj4ke3RoaXMuX3JlbmRlclRyaWFuZ2xlcyhjdXJyZW50UGxhbnMpfTwvZGl2PlxuICAgICAgJHt0aGlzLl9yZW5kZXJQYWdpbmF0aW9uKCl9XG4gICAgICAkeyF0aGlzLnNrZWxldG9uXG4gICAgICAgID8gaHRtbGA8ZGl2IGNsYXNzPVwiY2hhcmFjdGVyaXN0aWNzXCI+XG4gICAgICAgICAgICAke3JlcGVhdChcbiAgICAgICAgICAgICAgdGhpcy5fY2hhcmFjdGVyaXN0aWNzLFxuICAgICAgICAgICAgICAoY2hhcmFjdGVyaXN0aWMpID0+IGNoYXJhY3RlcmlzdGljLFxuICAgICAgICAgICAgICAoY2hhcmFjdGVyaXN0aWMsIGluZGV4KSA9PlxuICAgICAgICAgICAgICAgIGh0bWxgPGRpdiBjbGFzcz1cImNoYXJhY3RlcmlzdGljXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2lyY2xlXCI+PGd2LWljb24gc2hhcGU9XCJob21lOmZsb3dlciMyXCI+PC9ndi1pY29uPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdj4ke2NoYXJhY3RlcmlzdGljfTwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PmAsXG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PmBcbiAgICAgICAgOiAnJ31cbiAgICA8L2Rpdj4gYDtcbiAgfVxuXG4gIHRvTGVmdCgpIHtcbiAgICB0aGlzLnRvKHRoaXMuX3BsYW5zW3RoaXMuY3VycmVudCAtIDJdKTtcbiAgfVxuXG4gIHRvUmlnaHQoKSB7XG4gICAgdGhpcy50byh0aGlzLl9wbGFuc1t0aGlzLmN1cnJlbnRdKTtcbiAgfVxufVxuXG53aW5kb3cuY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdndi1wbGFucycsIEd2UGxhbnMpO1xuIl19
@@ -13,8 +13,9 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import { css, LitElement, html } from 'lit';
17
- import { classMap } from 'lit/directives/class-map';
16
+ import { css, LitElement } from 'lit-element';
17
+ import { html } from 'lit-html';
18
+ import { classMap } from 'lit-html/directives/class-map';
18
19
  /**
19
20
  * Popover component
20
21
  *
@@ -228,4 +229,4 @@ export class GvPopover extends LitElement {
228
229
 
229
230
  }
230
231
  window.customElements.define('gv-popover', GvPopover);
231
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL21vbGVjdWxlcy9ndi1wb3BvdmVyLmpzIl0sIm5hbWVzIjpbImNzcyIsIkxpdEVsZW1lbnQiLCJodG1sIiwiY2xhc3NNYXAiLCJHdlBvcG92ZXIiLCJwcm9wZXJ0aWVzIiwiZXZlbnQiLCJ0eXBlIiwiU3RyaW5nIiwiZGVsYXkiLCJOdW1iZXIiLCJhcnJvdyIsIkJvb2xlYW4iLCJyZWZsZWN0Iiwic21hbGwiLCJtZWRpdW0iLCJsYXJnZSIsIndpZHRoIiwicG9zaXRpb24iLCJhdXRvIiwiX29wZW5lZCIsImF0dHJpYnV0ZSIsInN0eWxlcyIsImNvbnN0cnVjdG9yIiwiX2Nsb3NlSGFuZGxlciIsIl9jbG9zZSIsImJpbmQiLCJfb3BlbiIsImUiLCJ3aW5kb3ciLCJyZW1vdmVFdmVudExpc3RlbmVyIiwic2V0VGltZW91dCIsImFkZEV2ZW50TGlzdGVuZXIiLCJjbG9zZSIsInRhcmdldCIsImZpcnN0RWxlbWVudENoaWxkIiwib3BlbkVsZW1lbnQiLCJzaGFkb3dSb290IiwicXVlcnlTZWxlY3RvciIsImNsYXNzTGlzdCIsImFkZCIsInJlbW92ZSIsInJlbmRlciIsImlubGluZSIsImNsYXNzZXMiLCJvcGVuIiwiY29udGVudCIsInJlbmRlckNvbnRlbnQiLCJmaXJzdFVwZGF0ZWQiLCJfY2hhbmdlZFByb3BlcnRpZXMiLCJzdGFydHNXaXRoIiwiX2dldENvbnRlbnRTaXplIiwicG9wb3ZlciIsIm9mZnNldFdpZHRoIiwiaGVpZ2h0Iiwib2Zmc2V0SGVpZ2h0IiwiX2dldFBvc2l0aW9uUGFkZGluZyIsIl9nZXRDZW50ZXJQb3NpdGlvbiIsIngiLCJzY3JvbGxYIiwieSIsInNjcm9sbFkiLCJfdXBkYXRlUG9zaXRpb24iLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJfaGFzVG9wU3BhY2UiLCJfaGFzQm90dG9tU3BhY2UiLCJfaGFzTGVmdFNwYWNlIiwiX2hhc1JpZ2h0U3BhY2UiLCJpbmRleCIsImluZGV4T2YiLCJfZ2V0TWF4WCIsImlubmVyV2lkdGgiLCJfZ2V0TWF4WSIsImlubmVySGVpZ2h0IiwidXBkYXRlZCIsInByb3BzIiwiaGFzIiwic3R5bGUiLCJzZXRQcm9wZXJ0eSIsImN1c3RvbUVsZW1lbnRzIiwiZGVmaW5lIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxHQUFULEVBQWNDLFVBQWQsRUFBMEJDLElBQTFCLFFBQXNDLEtBQXRDO0FBQ0EsU0FBU0MsUUFBVCxRQUF5QiwwQkFBekI7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsT0FBTyxNQUFNQyxTQUFOLFNBQXdCSCxVQUF4QixDQUFtQztBQUNuQixhQUFWSSxVQUFVLEdBQUc7QUFDdEIsV0FBTztBQUNMQyxNQUFBQSxLQUFLLEVBQUU7QUFBRUMsUUFBQUEsSUFBSSxFQUFFQztBQUFSLE9BREY7QUFFTEMsTUFBQUEsS0FBSyxFQUFFO0FBQUVGLFFBQUFBLElBQUksRUFBRUc7QUFBUixPQUZGO0FBR0xDLE1BQUFBLEtBQUssRUFBRTtBQUFFSixRQUFBQSxJQUFJLEVBQUVLLE9BQVI7QUFBaUJDLFFBQUFBLE9BQU8sRUFBRTtBQUExQixPQUhGO0FBSUxDLE1BQUFBLEtBQUssRUFBRTtBQUFFUCxRQUFBQSxJQUFJLEVBQUVLLE9BQVI7QUFBaUJDLFFBQUFBLE9BQU8sRUFBRTtBQUExQixPQUpGO0FBS0xFLE1BQUFBLE1BQU0sRUFBRTtBQUFFUixRQUFBQSxJQUFJLEVBQUVLLE9BQVI7QUFBaUJDLFFBQUFBLE9BQU8sRUFBRTtBQUExQixPQUxIO0FBTUxHLE1BQUFBLEtBQUssRUFBRTtBQUFFVCxRQUFBQSxJQUFJLEVBQUVLLE9BQVI7QUFBaUJD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LE9BQVYsQ0FBSixFQUF3QjtBQUN0QixXQUFLdkMsVUFBTCxDQUFnQkMsYUFBaEIsQ0FBOEIsVUFBOUIsRUFBMEN1QyxLQUExQyxDQUFnREMsV0FBaEQsQ0FBNEQsT0FBNUQsRUFBcUUsS0FBSzdELEtBQTFFO0FBQ0Q7O0FBQ0QsU0FBSzZDLGVBQUw7QUFDRDs7QUFwVHVDO0FBdVQxQ2pDLE1BQU0sQ0FBQ2tELGNBQVAsQ0FBc0JDLE1BQXRCLENBQTZCLFlBQTdCLEVBQTJDNUUsU0FBM0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgY3NzLCBMaXRFbGVtZW50LCBodG1sIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGNsYXNzTWFwIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvY2xhc3MtbWFwJztcblxuLyoqXG4gKiBQb3BvdmVyIGNvbXBvbmVudFxuICpcbiAqICMjIERldGFpbHNcbiAqICogaGFzIEB0aGVtZSBmYWNldFxuICpcbiAqIEBhdHRyIHtTdHJpbmd9IGV2ZW50IC0gdGhlIGV2ZW50IHRoYXQgdHJpZ2dlcnMgdGhlIG9wZW5pbmcuXG4gKiBAYXR0ciB7U3RyaW5nfSBkZWxheSAtIHRoZSB0aW1lIGJlZm9yZSBjbG9zaW5nLCB1c2VmdWwgZm9yIGEgY2xpY2sgZXZlbnRcbiAqIEBhdHRyIHtTdHJpbmd9IGFycm93IC0gaWYgbmVlZCBhcnJvd1xuICogQGF0dHIge1N0cmluZ30gc21hbGwgLSBTbWFsbCBwb3BvdmVyXG4gKiBAYXR0ciB7U3RyaW5nfSBtZWRpdW0gLSBNZWRpdW0gcG9wb3ZlclxuICogQGF0dHIge1N0cmluZ30gbGFyZ2UgLSBMYXJnZSBwb3BvdmVyXG4gKiBAYXR0ciB7U3RyaW5nfSB3aWR0aCAtIFRoZSB3aWR0aCBvZiBwb3BvdmVyXG4gKiBAYXR0ciB7U3RyaW5nfSBwb3NpdGlvbiAtIFRoZSBwb3NpdGlvbiB0b3AsIHJpZ2h0LCBib3R0b20gb3IgbGVmdFxuICogQGF0dHIge0Jvb2xlYW59IGF1dG8gLSB0byBsZXQgdGhlIGNvbXBvbmVudCBjaG9vc2UgdGhlIHBvc2l0aW9uXG4gKlxuICogQGNzc3Byb3Age0NvbG9yfSBbLS1ndi1wb3BvdmVyLS1iZ2M9dmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvci1saWdodGVyLCAjZmFmYWZhKV0gLSBCYWNrZ3JvdW5kIGNvbG9yXG4gKiBAY3NzcHJvcCB7Q29sb3J9IFstLWd2LXBvcG92ZXItLWM9dmFyKC0tZ3YtdGhlbWUtZm9udC1jb2xvci1kYXJrLCAjMjYyNjI2KV0gLSBDb2xvclxuICogQGNzc3Byb3Age0NvbG9yfSBbLS1ndi1wb3BvdmVyLS1iZGM9dmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvciwgI2Y1ZjVmNSldIC0gQm9yZGVyIGNvbG9yXG4gKiBAY3NzcHJvcCB7TGVuZ3RofSBbLS1ndi1wb3BvdmVyLS1wPTAuNXJlbV0gLSBQYWRkaW5nXG4gKi9cbmV4cG9ydCBjbGFzcyBHdlBvcG92ZXIgZXh0ZW5kcyBMaXRFbGVtZW50IHtcbiAgc3RhdGljIGdldCBwcm9wZXJ0aWVzKCkge1xuICAgIHJldHVybiB7XG4gICAgICBldmVudDogeyB0eXBlOiBTdHJpbmcgfSxcbiAgICAgIGRlbGF5OiB7IHR5cGU6IE51bWJlciB9LFxuICAgICAgYXJyb3c6IHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgc21hbGw6IHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgbWVkaXVtOiB7IHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUgfSxcbiAgICAgIGxhcmdlOiB7IHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUgfSxcbiAgICAgIHdpZHRoOiB7IHR5cGU6IFN0cmluZyB9LFxuICAgICAgcG9zaXRpb246IHsgdHlwZTogU3RyaW5nLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgICBhdXRvOiB7IHR5cGU6IEJvb2xlYW4gfSxcbiAgICAgIF9vcGVuZWQ6IHsgdHlwZTogQm9vbGVhbiwgYXR0cmlidXRlOiBmYWxzZSB9LFxuICAgIH07XG4gIH1cblxuICBzdGF0aWMgZ2V0IHN0eWxlcygpIHtcbiAgICByZXR1cm4gW1xuICAgICAgLy8gbGFuZ3VhZ2U9Q1NTXG4gICAgICBjc3NgXG4gICAgICAgIDpob3N0IHtcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgLnBvcG92ZXIge1xuICAgICAgICAgIC0tYmdjOiB2YXIoLS1ndi1wb3BvdmVyLS1iZ2MsIHZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3ItbGlnaHRlciwgI2ZhZmFmYSkpO1xuICAgICAgICAgIGNvbG9yOiB2YXIoLS1ndi1wb3BvdmVyLS1jLCB2YXIoLS1ndi10aGVtZS1mb250LWNvbG9yLWRhcmssICMyNjI2MjYpKTtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmdjKTtcbiAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1ndi1wb3BvdmVyLS1wLCAwLjVyZW0pO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgICB6LWluZGV4OiAxMDAwO1xuICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICAgICAgfVxuXG4gICAgICAgIDpob3N0KFtwb3NpdGlvbj0nYm90dG9tJ10pIC5wb3BvdmVyIHtcbiAgICAgICAgICB0b3A6IGNhbGMoMTAwJSArIDAuNHJlbSk7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICBib3gtc2hhZG93OiAxcHggMCAwIDAgdmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvciwgI2Y1ZjVmNSksIDAgMnB4IDNweCB2YXIoLS1ndi10aGVtZS1uZXV0cmFsLWNvbG9yLWRhcmssICNiZmJmYmYpO1xuICAgICAgICB9XG5cbiAgICAgICAgOmhvc3QoW3Bvc2l0aW9uPSdib3R0b20nXVthcnJvd10pIC5wb3BvdmVyIHtcbiAgICAgICAgICB0b3A6IGNhbGMoMTAwJSArIDAuNHJlbSArIDEwcHgpO1xuICAgICAgICB9XG5cbiAgICAgICAgOmhvc3QoW3Bvc2l0aW9uPSdib3R0b20nXVthcnJvd10pIC5hcnJvdyB7XG4gICAgICAgICAgdG9wOiBjYWxjKDEwMCUgLSA4cHgpO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIH1cblxuICAgICAgICA6aG9zdChbcG9zaXRpb249J3RvcCddKSAucG9wb3ZlciB7XG4gICAgICAgICAgYm90dG9tOiBjYWxjKDEwMCUgKyAwLjRyZW0pO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgYm94LXNoYWRvdzogMXB4IDAgMCAwIHZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3IsICNmNWY1ZjUpLCAwIC0ycHggM3B4IHZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3ItZGFyaywgI2JmYmZiZik7XG4gICAgICAgIH1cblxuICAgICAgICA6aG9zdChbcG9zaXRpb249J3RvcCddW2Fycm93XSkgLnBvcG92ZXIge1xuICAgICAgICAgIGJvdHRvbTogY2FsYygxMDAlICsgMC40cmVtICsgMTBweCk7XG4gICAgICAgIH1cblxuICAgICAgICA6aG9zdChbcG9zaXRpb249J3RvcCddW2Fycm93XSkgLmFycm93IHtcbiAgICAgICAgICBib3R0b206IGNhbGMoMTAwJSAtIDhweCk7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHJvdGF0ZSgxODBkZWcpO1xuICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIDpob3N0KFtwb3NpdGlvbj0nbGVmdCddKSAucG9wb3ZlciB7XG4gICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgIHJpZ2h0OiBjYWxjKDEwMCUgKyAwLjRyZW0pO1xuICAgICAgICAgIGJveC1zaGFkb3c6IC0xcHggMCAwIDAgdmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvciwgI2Y1ZjVmNSksIC0xcHggMnB4IDNweCB2YXIoLS1ndi10aGVtZS1uZXV0cmFsLWNvbG9yLWRhcmssICNiZmJmYmYpO1xuICAgICAgICB9XG5cbiAgICAgICAgOmhvc3QoW3Bvc2l0aW9uPSdsZWZ0J11bYXJyb3ddKSAucG9wb3ZlciB7XG4gICAgICAgICAgcmlnaHQ6IGNhbGMoMTAwJSArIDAuNHJlbSArIDEwcHgpO1xuICAgICAgICB9XG5cbiAgICAgICAgOmhvc3QoW3Bvc2l0aW9uPSdsZWZ0J11bYXJyb3ddKSAuYXJyb3cge1xuICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoOTBkZWcpO1xuICAgICAgICAgIHJpZ2h0OiBjYWxjKDEwMCUgLSA4cHgpO1xuICAgICAgICB9XG5cbiAgICAgICAgOmhvc3QoW3Bvc2l0aW9uPSdyaWdodCddKSAucG9wb3ZlciB7XG4gICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgIGxlZnQ6IGNhbGMoMTAwJSArIDAuNHJlbSk7XG4gICAgICAgICAgYm94LXNoYWRvdzogMXB4IDAgMCAxcHggdmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvciwgI2Y1ZjVmNSksIDFweCAxcHggMXB4IHZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3ItZGFyaywgI2JmYmZiZik7XG4gICAgICAgIH1cblxuICAgICAgICA6aG9zdChbcG9zaXRpb249J3JpZ2h0J11bYXJyb3ddKSAucG9wb3ZlciB7XG4gICAgICAgICAgbGVmdDogY2FsYygxMDAlICsgMC40cmVtICsgMTBweCk7XG4gICAgICAgIH1cblxuICAgICAgICA6aG9zdChbcG9zaXRpb249J3JpZ2h0J11bYXJyb3ddKSAuYXJyb3cge1xuICAgICAgICAgIGxlZnQ6IGNhbGMoMTAwJSAtIDhweCk7XG4gICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmlubGluZSAucG9wb3ZlciB7XG4gICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIDpob3N0KFtzbWFsbF0pIC5wb3BvdmVyIHtcbiAgICAgICAgICB3aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICA6aG9zdChbbWVkaXVtXSkgLnBvcG92ZXIge1xuICAgICAgICAgIHdpZHRoOiAzNTBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIDpob3N0KFtsYXJnZV0pIC5wb3BvdmVyIHtcbiAgICAgICAgICB3aWR0aDogNTAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAuY29udGVudCB7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAucG9wb3ZlcixcbiAgICAgICAgLmFycm93IHtcbiAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZS1pbi1vdXQ7XG4gICAgICAgIH1cblxuICAgICAgICAub3BlbiAucG9wb3ZlcixcbiAgICAgICAgLm9wZW4gLmFycm93IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAuY2xvc2UgLnBvcG92ZXIsXG4gICAgICAgIC5jbG9zZSAuYXJyb3cge1xuICAgICAgICB9XG5cbiAgICAgICAgLmFycm93IHtcbiAgICAgICAgICB3aWR0aDogMjVweDtcbiAgICAgICAgICBoZWlnaHQ6IDI1cHg7XG4gICAgICAgICAgei1pbmRleDogMTAxO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgLmFycm93OmFmdGVyIHtcbiAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgd2lkdGg6IDEycHg7XG4gICAgICAgICAgaGVpZ2h0OiAxMnB4O1xuICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWd2LXBvcG92ZXItLWJnYywgdmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvci1saWdodGVyLCAjZmFmYWZhKSk7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgIHRvcDogMTlweDtcbiAgICAgICAgICBsZWZ0OiA2cHg7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZ3YtcG9wb3Zlci0tYmRjLCB2YXIoLS1ndi10aGVtZS1uZXV0cmFsLWNvbG9yLCAjZjVmNWY1KSk7XG4gICAgICAgIH1cbiAgICAgIGAsXG4gICAgXTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5ldmVudCA9ICdtb3VzZW92ZXInO1xuICAgIHRoaXMuX2Nsb3NlSGFuZGxlciA9IHRoaXMuX2Nsb3NlLmJpbmQodGhpcyk7XG4gICAgdGhpcy5kZWxheSA9IDA7XG4gICAgdGhpcy5hcnJvdyA9IGZhbHNlO1xuICAgIHRoaXMucG9zaXRpb24gPSAnYm90dG9tJztcbiAgICB0aGlzLmF1dG8gPSBmYWxzZTtcbiAgfVxuXG4gIF9vcGVuKGUpIHtcbiAgICBpZiAodGhpcy5ldmVudCA9PT0gJ2NsaWNrJykge1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIodGhpcy5ldmVudCwgdGhpcy5fY2xvc2VIYW5kbGVyKTtcbiAgICB9XG4gICAgdGhpcy5fb3BlbmVkID0gdHJ1ZTtcbiAgICBpZiAodGhpcy5ldmVudCA9PT0gJ2NsaWNrJykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcih0aGlzLmV2ZW50LCB0aGlzLl9jbG9zZUhhbmRsZXIpKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kZWxheSA+IDApIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5fY2xvc2Uoe30pLCB0aGlzLmRlbGF5KTtcbiAgICB9XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICB0aGlzLl9jbG9zZSh7fSk7XG4gIH1cblxuICBfY2xvc2UoZSkge1xuICAgIGlmICh0aGlzLl9vcGVuZWQgJiYgKGUudGFyZ2V0ICE9PSB0aGlzLmZpcnN0RWxlbWVudENoaWxkIHx8IHRoaXMuZXZlbnQgIT09ICdjbGljaycpKSB7XG4gICAgICBjb25zdCBvcGVuRWxlbWVudCA9IHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcub3BlbicpO1xuICAgICAgb3BlbkVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnY2xvc2UnKTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBvcGVuRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdjbG9zZScpO1xuICAgICAgICB0aGlzLl9vcGVuZWQgPSBmYWxzZTtcbiAgICAgIH0sIDIwMCk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IGlubGluZSA9IHRoaXMud2lkdGggPT0gbnVsbCAmJiAhdGhpcy5zbWFsbCAmJiAhdGhpcy5tZWRpdW0gJiYgIXRoaXMubGFyZ2U7XG4gICAgY29uc3QgY2xhc3NlcyA9IHsgb3BlbjogdGhpcy5fb3BlbmVkLCBjb250ZW50OiB0cnVlLCBpbmxpbmUgfTtcbiAgICByZXR1cm4gaHRtbGAgPGRpdiBjbGFzcz1cIiR7Y2xhc3NNYXAoY2xhc3Nlcyl9XCI+XG4gICAgICA8c2xvdD48L3Nsb3Q+XG4gICAgICAke3RoaXMuYXJyb3cgPyBodG1sYDxkaXYgY2xhc3M9XCJhcnJvd1wiPjwvZGl2PmAgOiAnJ31cbiAgICAgIDxkaXYgY2xhc3M9XCJwb3BvdmVyXCI+JHt0aGlzLnJlbmRlckNvbnRlbnQoKX08L2Rpdj5cbiAgICA8L2Rpdj5gO1xuICB9XG5cbiAgcmVuZGVyQ29udGVudCgpIHtcbiAgICByZXR1cm4gaHRtbGA8c2xvdCBuYW1lPVwicG9wb3ZlclwiPjwvc2xvdD5gO1xuICB9XG5cbiAgZmlyc3RVcGRhdGVkKF9jaGFuZ2VkUHJvcGVydGllcykge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKHRoaXMuZXZlbnQsIHRoaXMuX29wZW4uYmluZCh0aGlzKSk7XG4gICAgICBpZiAodGhpcy5ldmVudC5zdGFydHNXaXRoKCdtb3VzZScpICYmIHRoaXMuZGVsYXkgPT09IDApIHtcbiAgICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgdGhpcy5fY2xvc2UuYmluZCh0aGlzKSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBfZ2V0Q29udGVudFNpemUoKSB7XG4gICAgY29uc3QgcG9wb3ZlciA9IHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcucG9wb3ZlcicpO1xuICAgIHJldHVybiB7XG4gICAgICB3aWR0aDogcG9wb3Zlci5vZmZzZXRXaWR0aCxcbiAgICAgIGhlaWdodDogcG9wb3Zlci5vZmZzZXRIZWlnaHQsXG4gICAgfTtcbiAgfVxuXG4gIF9nZXRQb3NpdGlvblBhZGRpbmcoKSB7XG4gICAgcmV0dXJuIDEwO1xuICB9XG5cbiAgX2dldENlbnRlclBvc2l0aW9uKCkge1xuICAgIHJldHVybiB7XG4gICAgICB4OiB0aGlzLnRhcmdldC54ICsgdGhpcy50YXJnZXQud2lkdGggLyAyICsgd2luZG93LnNjcm9sbFgsXG4gICAgICB5OiB0aGlzLnRhcmdldC55ICsgdGhpcy50YXJnZXQuaGVpZ2h0IC8gMiArIHdpbmRvdy5zY3JvbGxZLFxuICAgIH07XG4gIH1cblxuICBfdXBkYXRlUG9zaXRpb24oKSB7XG4gICAgaWYgKHRoaXMucG9zaXRpb24gIT0gbnVsbCAmJiB0aGlzLmF1dG8pIHtcbiAgICAgIGNvbnN0IHBvcG92ZXIgPSB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLnBvcG92ZXInKTtcbiAgICAgIGlmIChwb3BvdmVyKSB7XG4gICAgICAgIHRoaXMudGFyZ2V0ID0gdGhpcy5maXJzdEVsZW1lbnRDaGlsZC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICh0aGlzLnBvc2l0aW9uID09PSAndG9wJyAmJiAhdGhpcy5faGFzVG9wU3BhY2UoKSkgfHxcbiAgICAgICAgICAodGhpcy5wb3NpdGlvbiA9PT0gJ2JvdHRvbScgJiYgIXRoaXMuX2hhc0JvdHRvbVNwYWNlKCkpIHx8XG4gICAgICAgICAgKHRoaXMucG9zaXRpb24gPT09ICdsZWZ0JyAmJiAhdGhpcy5faGFzTGVmdFNwYWNlKCkpIHx8XG4gICAgICAgICAgKHRoaXMucG9zaXRpb24gPT09ICdyaWdodCcgJiYgIXRoaXMuX2hhc1JpZ2h0U3BhY2UoKSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgY29uc3QgaW5kZXggPSBbdGhpcy5faGFzVG9wU3BhY2UoKSwgdGhpcy5faGFzUmlnaHRTcGFjZSgpLCB0aGlzLl9oYXNCb3R0b21TcGFjZSgpLCB0aGlzLl9oYXNMZWZ0U3BhY2UoKV0uaW5kZXhPZih0cnVlKTtcbiAgICAgICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICAgICAgdGhpcy5wb3NpdGlvbiA9IFsndG9wJywgJ3JpZ2h0JywgJ2JvdHRvbScsICdsZWZ0J11baW5kZXhdO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIF9nZXRNYXhYKCkge1xuICAgIHJldHVybiB3aW5kb3cuaW5uZXJXaWR0aCAtIHRoaXMuX2dldFBvc2l0aW9uUGFkZGluZygpO1xuICB9XG5cbiAgX2dldE1heFkoKSB7XG4gICAgcmV0dXJuIHdpbmRvdy5pbm5lckhlaWdodCAtIHRoaXMuX2dldFBvc2l0aW9uUGFkZGluZygpO1xuICB9XG5cbiAgX2hhc0JvdHRvbVNwYWNlKCkge1xuICAgIGNvbnN0IHkgPSB0aGlzLnRhcmdldC55ICsgdGhpcy50YXJnZXQuaGVpZ2h0ICsgdGhpcy5fZ2V0Q29udGVudFNpemUoKS5oZWlnaHQgKyB0aGlzLl9nZXRQb3NpdGlvblBhZGRpbmcoKTtcblxuICAgIHJldHVybiB5IDw9IHRoaXMuX2dldE1heFkoKTtcbiAgfVxuXG4gIF9oYXNSaWdodFNwYWNlKCkge1xuICAgIGNvbnN0IHkgPSB0aGlzLnRhcmdldC54ICsgdGhpcy50YXJnZXQud2lkdGggKyB0aGlzLl9nZXRDb250ZW50U2l6ZSgpLndpZHRoICsgdGhpcy5fZ2V0UG9zaXRpb25QYWRkaW5nKCk7XG5cbiAgICByZXR1cm4geSA8PSB0aGlzLl9nZXRNYXhYKCk7XG4gIH1cblxuICBfaGFzVG9wU3BhY2UoKSB7XG4gICAgY29uc3QgeSA9IHRoaXMudGFyZ2V0LnkgLSB0aGlzLl9nZXRDb250ZW50U2l6ZSgpLmhlaWdodCAtIHRoaXMuX2dldFBvc2l0aW9uUGFkZGluZygpO1xuXG4gICAgcmV0dXJuIHkgPj0gdGhpcy5fZ2V0UG9zaXRpb25QYWRkaW5nKCk7XG4gIH1cblxuICBfaGFzTGVmdFNwYWNlKCkge1xuICAgIGNvbnN0IHkgPSB0aGlzLnRhcmdldC54IC0gdGhpcy5fZ2V0Q29udGVudFNpemUoKS53aWR0aCAtIHRoaXMuX2dldFBvc2l0aW9uUGFkZGluZygpO1xuXG4gICAgcmV0dXJuIHkgPj0gdGhpcy5fZ2V0UG9zaXRpb25QYWRkaW5nKCk7XG4gIH1cblxuICB1cGRhdGVkKHByb3BzKSB7XG4gICAgaWYgKHByb3BzLmhhcygnd2lkdGgnKSkge1xuICAgICAgdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy5wb3BvdmVyJykuc3R5bGUuc2V0UHJvcGVydHkoJ3dpZHRoJywgdGhpcy53aWR0aCk7XG4gICAgfVxuICAgIHRoaXMuX3VwZGF0ZVBvc2l0aW9uKCk7XG4gIH1cbn1cblxud2luZG93LmN1c3RvbUVsZW1lbnRzLmRlZmluZSgnZ3YtcG9wb3ZlcicsIEd2UG9wb3Zlcik7XG4iXX0=
232
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL21vbGVjdWxlcy9ndi1wb3BvdmVyLmpzIl0sIm5hbWVzIjpbImNzcyIsIkxpdEVsZW1lbnQiLCJodG1sIiwiY2xhc3NNYXAiLCJHdlBvcG92ZXIiLCJwcm9wZXJ0aWVzIiwiZXZlbnQiLCJ0eXBlIiwiU3RyaW5nIiwiZGVsYXkiLCJOdW1iZXIiLCJhcnJvdyIsIkJvb2xlYW4iLCJyZWZsZWN0Iiwic21hbGwiLCJtZWRpdW0iLCJsYXJnZSIsIndpZHRoIiwicG9zaXRpb24iLCJhdXRvIiwiX29wZW5lZCIsImF0dHJpYnV0ZSIsInN0eWxlcyIsImNvbnN0cnVjdG9yIiwiX2Nsb3NlSGFuZGxlciIsIl9jbG9zZSIsImJpbmQiLCJfb3BlbiIsImUiLCJ3aW5kb3ciLCJyZW1vdmVFdmVudExpc3RlbmVyIiwic2V0VGltZW91dCIsImFkZEV2ZW50TGlzdGVuZXIiLCJjbG9zZSIsInRhcmdldCIsImZpcnN0RWxlbWVudENoaWxkIiwib3BlbkVsZW1lbnQiLCJzaGFkb3dSb290IiwicXVlcnlTZWxlY3RvciIsImNsYXNzTGlzdCIsImFkZCIsInJlbW92ZSIsInJlbmRlciIsImlubGluZSIsImNsYXNzZXMiLCJvcGVuIiwiY29udGVudCIsInJlbmRlckNvbnRlbnQiLCJmaXJzdFVwZGF0ZWQiLCJfY2hhbmdlZFByb3BlcnRpZXMiLCJzdGFydHNXaXRoIiwiX2dldENvbnRlbnRTaXplIiwicG9wb3ZlciIsIm9mZnNldFdpZHRoIiwiaGVpZ2h0Iiwib2Zmc2V0SGVpZ2h0IiwiX2dldFBvc2l0aW9uUGFkZGluZyIsIl9nZXRDZW50ZXJQb3NpdGlvbiIsIngiLCJzY3JvbGxYIiwieSIsInNjcm9sbFkiLCJfdXBkYXRlUG9zaXRpb24iLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJfaGFzVG9wU3BhY2UiLCJfaGFzQm90dG9tU3BhY2UiLCJfaGFzTGVmdFNwYWNlIiwiX2hhc1JpZ2h0U3BhY2UiLCJpbmRleCIsImluZGV4T2YiLCJfZ2V0TWF4WCIsImlubmVyV2lkdGgiLCJfZ2V0TWF4WSIsImlubmVySGVpZ2h0IiwidXBkYXRlZCIsInByb3BzIiwiaGFzIiwic3R5bGUiLCJzZXRQcm9wZXJ0eSIsImN1c3RvbUVsZW1lbnRzIiwiZGVmaW5lIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxHQUFULEVBQWNDLFVBQWQsUUFBZ0MsYUFBaEM7QUFDQSxTQUFTQyxJQUFULFFBQXFCLFVBQXJCO0FBQ0EsU0FBU0MsUUFBVCxRQUF5QiwrQkFBekI7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsT0FBTyxNQUFNQyxTQUFOLFNBQXdCSCxVQUF4QixDQUFtQztBQUNuQixhQUFWSSxVQUFVLEdBQUc7QUFDdEIsV0FBTztBQUNMQyxNQUFBQSxLQUFLLEVBQUU7QUFBRUMsUUFBQUEsSUFBSSxFQUFFQztBQUFSLE9BREY7QUFFTEMsTUFBQUEsS0FBSyxFQUFFO0FBQUVGLFFBQUFBLElBQUksRUFBRUc7QUFBUixPQUZGO0FBR0xDLE1BQUFBLEtBQUssRUFBRTtBQUFFSixRQUFBQSxJQUFJLEVBQUVLLE9BQVI7QUFBaUJDLFFBQUFBLE9BQU8sRUFBRTtBQUExQixPQUhGO0FBSUxDLE1BQUFBLEtBQUssRUFBRTtBQUFFUCxRQUFBQSxJQUFJLEVBQUVLLE9BQVI7QUFBaUJDLFFBQUFBLE9BQU8sRUFBRTtBQUExQixPQUpGO0FBS0xFLE1BQUFBLE1BQU0sRUFBRTtBQUFFUixRQUFBQSxJQUFJLEVBQUVLLE9BQVI7QUFBaUJDLFFBQUFBLE9BQU8sRUFBRTtBQUExQixPQUxIO0FBTUxHLE1BQUFBLEtBQUssRUFBRTtBQUFFVCxRQUFBQSxJQUFJLEVB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Q0FBQ0MsR0FBTixDQUFVLE9BQVYsQ0FBSixFQUF3QjtBQUN0QixXQUFLdkMsVUFBTCxDQUFnQkMsYUFBaEIsQ0FBOEIsVUFBOUIsRUFBMEN1QyxLQUExQyxDQUFnREMsV0FBaEQsQ0FBNEQsT0FBNUQsRUFBcUUsS0FBSzdELEtBQTFFO0FBQ0Q7O0FBQ0QsU0FBSzZDLGVBQUw7QUFDRDs7QUFwVHVDO0FBdVQxQ2pDLE1BQU0sQ0FBQ2tELGNBQVAsQ0FBc0JDLE1BQXRCLENBQTZCLFlBQTdCLEVBQTJDNUUsU0FBM0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgY3NzLCBMaXRFbGVtZW50IH0gZnJvbSAnbGl0LWVsZW1lbnQnO1xuaW1wb3J0IHsgaHRtbCB9IGZyb20gJ2xpdC1odG1sJztcbmltcG9ydCB7IGNsYXNzTWFwIH0gZnJvbSAnbGl0LWh0bWwvZGlyZWN0aXZlcy9jbGFzcy1tYXAnO1xuXG4vKipcbiAqIFBvcG92ZXIgY29tcG9uZW50XG4gKlxuICogIyMgRGV0YWlsc1xuICogKiBoYXMgQHRoZW1lIGZhY2V0XG4gKlxuICogQGF0dHIge1N0cmluZ30gZXZlbnQgLSB0aGUgZXZlbnQgdGhhdCB0cmlnZ2VycyB0aGUgb3BlbmluZy5cbiAqIEBhdHRyIHtTdHJpbmd9IGRlbGF5IC0gdGhlIHRpbWUgYmVmb3JlIGNsb3NpbmcsIHVzZWZ1bCBmb3IgYSBjbGljayBldmVudFxuICogQGF0dHIge1N0cmluZ30gYXJyb3cgLSBpZiBuZWVkIGFycm93XG4gKiBAYXR0ciB7U3RyaW5nfSBzbWFsbCAtIFNtYWxsIHBvcG92ZXJcbiAqIEBhdHRyIHtTdHJpbmd9IG1lZGl1bSAtIE1lZGl1bSBwb3BvdmVyXG4gKiBAYXR0ciB7U3RyaW5nfSBsYXJnZSAtIExhcmdlIHBvcG92ZXJcbiAqIEBhdHRyIHtTdHJpbmd9IHdpZHRoIC0gVGhlIHdpZHRoIG9mIHBvcG92ZXJcbiAqIEBhdHRyIHtTdHJpbmd9IHBvc2l0aW9uIC0gVGhlIHBvc2l0aW9uIHRvcCwgcmlnaHQsIGJvdHRvbSBvciBsZWZ0XG4gKiBAYXR0ciB7Qm9vbGVhbn0gYXV0byAtIHRvIGxldCB0aGUgY29tcG9uZW50IGNob29zZSB0aGUgcG9zaXRpb25cbiAqXG4gKiBAY3NzcHJvcCB7Q29sb3J9IFstLWd2LXBvcG92ZXItLWJnYz12YXIoLS1ndi10aGVtZS1uZXV0cmFsLWNvbG9yLWxpZ2h0ZXIsICNmYWZhZmEpXSAtIEJhY2tncm91bmQgY29sb3JcbiAqIEBjc3Nwcm9wIHtDb2xvcn0gWy0tZ3YtcG9wb3Zlci0tYz12YXIoLS1ndi10aGVtZS1mb250LWNvbG9yLWRhcmssICMyNjI2MjYpXSAtIENvbG9yXG4gKiBAY3NzcHJvcCB7Q29sb3J9IFstLWd2LXBvcG92ZXItLWJkYz12YXIoLS1ndi10aGVtZS1uZXV0cmFsLWNvbG9yLCAjZjVmNWY1KV0gLSBCb3JkZXIgY29sb3JcbiAqIEBjc3Nwcm9wIHtMZW5ndGh9IFstLWd2LXBvcG92ZXItLXA9MC41cmVtXSAtIFBhZGRpbmdcbiAqL1xuZXhwb3J0IGNsYXNzIEd2UG9wb3ZlciBleHRlbmRzIExpdEVsZW1lbnQge1xuICBzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGV2ZW50OiB7IHR5cGU6IFN0cmluZyB9LFxuICAgICAgZGVsYXk6IHsgdHlwZTogTnVtYmVyIH0sXG4gICAgICBhcnJvdzogeyB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgICBzbWFsbDogeyB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgICBtZWRpdW06IHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgbGFyZ2U6IHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgd2lkdGg6IHsgdHlwZTogU3RyaW5nIH0sXG4gICAgICBwb3NpdGlvbjogeyB0eXBlOiBTdHJpbmcsIHJlZmxlY3Q6IHRydWUgfSxcbiAgICAgIGF1dG86IHsgdHlwZTogQm9vbGVhbiB9LFxuICAgICAgX29wZW5lZDogeyB0eXBlOiBCb29sZWFuLCBhdHRyaWJ1dGU6IGZhbHNlIH0sXG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBnZXQgc3R5bGVzKCkge1xuICAgIHJldHVybiBbXG4gICAgICAvLyBsYW5ndWFnZT1DU1NcbiAgICAgIGNzc2BcbiAgICAgICAgOmhvc3Qge1xuICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAucG9wb3ZlciB7XG4gICAgICAgICAgLS1iZ2M6IHZhcigtLWd2LXBvcG92ZXItLWJnYywgdmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvci1saWdodGVyLCAjZmFmYWZhKSk7XG4gICAgICAgICAgY29sb3I6IHZhcigtLWd2LXBvcG92ZXItLWMsIHZhcigtLWd2LXRoZW1lLWZvbnQtY29sb3ItZGFyaywgIzI2MjYyNikpO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZ2MpO1xuICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWd2LXBvcG92ZXItLXAsIDAuNXJlbSk7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICAgIHotaW5kZXg6IDEwMDA7XG4gICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgICAgICB9XG5cbiAgICAgICAgOmhvc3QoW3Bvc2l0aW9uPSdib3R0b20nXSkgLnBvcG92ZXIge1xuICAgICAgICAgIHRvcDogY2FsYygxMDAlICsgMC40cmVtKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgIGJveC1zaGFkb3c6IDFweCAwIDAgMCB2YXIoLS1ndi10aGVtZS1uZXV0cmFsLWNvbG9yLCAjZjVmNWY1KSwgMCAycHggM3B4IHZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3ItZGFyaywgI2JmYmZiZik7XG4gICAgICAgIH1cblxuICAgICAgICA6aG9zdChbcG9zaXRpb249J2JvdHRvbSddW2Fycm93XSkgLnBvcG92ZXIge1xuICAgICAgICAgIHRvcDogY2FsYygxMDAlICsgMC40cmVtICsgMTBweCk7XG4gICAgICAgIH1cblxuICAgICAgICA6aG9zdChbcG9zaXRpb249J2JvdHRvbSddW2Fycm93XSkgLmFycm93IHtcbiAgICAgICAgICB0b3A6IGNhbGMoMTAwJSAtIDhweCk7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIDpob3N0KFtwb3NpdGlvbj0ndG9wJ10pIC5wb3BvdmVyIHtcbiAgICAgICAgICBib3R0b206IGNhbGMoMTAwJSArIDAuNHJlbSk7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICBib3gtc2hhZG93OiAxcHggMCAwIDAgdmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvciwgI2Y1ZjVmNSksIDAgLTJweCAzcHggdmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvci1kYXJrLCAjYmZiZmJmKTtcbiAgICAgICAgfVxuXG4gICAgICAgIDpob3N0KFtwb3NpdGlvbj0ndG9wJ11bYXJyb3ddKSAucG9wb3ZlciB7XG4gICAgICAgICAgYm90dG9tOiBjYWxjKDEwMCUgKyAwLjRyZW0gKyAxMHB4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIDpob3N0KFtwb3NpdGlvbj0ndG9wJ11bYXJyb3ddKSAuYXJyb3cge1xuICAgICAgICAgIGJvdHRvbTogY2FsYygxMDAlIC0gOHB4KTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgcm90YXRlKDE4MGRlZyk7XG4gICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB9XG5cbiAgICAgICAgOmhvc3QoW3Bvc2l0aW9uPSdsZWZ0J10pIC5wb3BvdmVyIHtcbiAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgICAgcmlnaHQ6IGNhbGMoMTAwJSArIDAuNHJlbSk7XG4gICAgICAgICAgYm94LXNoYWRvdzogLTFweCAwIDAgMCB2YXIoLS1ndi10aGVtZS1uZXV0cmFsLWNvbG9yLCAjZjVmNWY1KSwgLTFweCAycHggM3B4IHZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3ItZGFyaywgI2JmYmZiZik7XG4gICAgICAgIH1cblxuICAgICAgICA6aG9zdChbcG9zaXRpb249J2xlZnQnXVthcnJvd10pIC5wb3BvdmVyIHtcbiAgICAgICAgICByaWdodDogY2FsYygxMDAlICsgMC40cmVtICsgMTBweCk7XG4gICAgICAgIH1cblxuICAgICAgICA6aG9zdChbcG9zaXRpb249J2xlZnQnXVthcnJvd10pIC5hcnJvdyB7XG4gICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg5MGRlZyk7XG4gICAgICAgICAgcmlnaHQ6IGNhbGMoMTAwJSAtIDhweCk7XG4gICAgICAgIH1cblxuICAgICAgICA6aG9zdChbcG9zaXRpb249J3JpZ2h0J10pIC5wb3BvdmVyIHtcbiAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgICAgbGVmdDogY2FsYygxMDAlICsgMC40cmVtKTtcbiAgICAgICAgICBib3gtc2hhZG93OiAxcHggMCAwIDFweCB2YXIoLS1ndi10aGVtZS1uZXV0cmFsLWNvbG9yLCAjZjVmNWY1KSwgMXB4IDFweCAxcHggdmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvci1kYXJrLCAjYmZiZmJmKTtcbiAgICAgICAgfVxuXG4gICAgICAgIDpob3N0KFtwb3NpdGlvbj0ncmlnaHQnXVthcnJvd10pIC5wb3BvdmVyIHtcbiAgICAgICAgICBsZWZ0OiBjYWxjKDEwMCUgKyAwLjRyZW0gKyAxMHB4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIDpob3N0KFtwb3NpdGlvbj0ncmlnaHQnXVthcnJvd10pIC5hcnJvdyB7XG4gICAgICAgICAgbGVmdDogY2FsYygxMDAlIC0gOHB4KTtcbiAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC05MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAuaW5saW5lIC5wb3BvdmVyIHtcbiAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgOmhvc3QoW3NtYWxsXSkgLnBvcG92ZXIge1xuICAgICAgICAgIHdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIDpob3N0KFttZWRpdW1dKSAucG9wb3ZlciB7XG4gICAgICAgICAgd2lkdGg6IDM1MHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgOmhvc3QoW2xhcmdlXSkgLnBvcG92ZXIge1xuICAgICAgICAgIHdpZHRoOiA1MDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb250ZW50IHtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wb3BvdmVyLFxuICAgICAgICAuYXJyb3cge1xuICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlLWluLW91dDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5vcGVuIC5wb3BvdmVyLFxuICAgICAgICAub3BlbiAuYXJyb3cge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jbG9zZSAucG9wb3ZlcixcbiAgICAgICAgLmNsb3NlIC5hcnJvdyB7XG4gICAgICAgIH1cblxuICAgICAgICAuYXJyb3cge1xuICAgICAgICAgIHdpZHRoOiAyNXB4O1xuICAgICAgICAgIGhlaWdodDogMjVweDtcbiAgICAgICAgICB6LWluZGV4OiAxMDE7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAuYXJyb3c6YWZ0ZXIge1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB3aWR0aDogMTJweDtcbiAgICAgICAgICBoZWlnaHQ6IDEycHg7XG4gICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZ3YtcG9wb3Zlci0tYmdjLCB2YXIoLS1ndi10aGVtZS1uZXV0cmFsLWNvbG9yLWxpZ2h0ZXIsICNmYWZhZmEpKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgdG9wOiAxOXB4O1xuICAgICAgICAgIGxlZnQ6IDZweDtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ndi1wb3BvdmVyLS1iZGMsIHZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3IsICNmNWY1ZjUpKTtcbiAgICAgICAgfVxuICAgICAgYCxcbiAgICBdO1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmV2ZW50ID0gJ21vdXNlb3Zlcic7XG4gICAgdGhpcy5fY2xvc2VIYW5kbGVyID0gdGhpcy5fY2xvc2UuYmluZCh0aGlzKTtcbiAgICB0aGlzLmRlbGF5ID0gMDtcbiAgICB0aGlzLmFycm93ID0gZmFsc2U7XG4gICAgdGhpcy5wb3NpdGlvbiA9ICdib3R0b20nO1xuICAgIHRoaXMuYXV0byA9IGZhbHNlO1xuICB9XG5cbiAgX29wZW4oZSkge1xuICAgIGlmICh0aGlzLmV2ZW50ID09PSAnY2xpY2snKSB7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcih0aGlzLmV2ZW50LCB0aGlzLl9jbG9zZUhhbmRsZXIpO1xuICAgIH1cbiAgICB0aGlzLl9vcGVuZWQgPSB0cnVlO1xuICAgIGlmICh0aGlzLmV2ZW50ID09PSAnY2xpY2snKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKHRoaXMuZXZlbnQsIHRoaXMuX2Nsb3NlSGFuZGxlcikpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmRlbGF5ID4gMCkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLl9jbG9zZSh7fSksIHRoaXMuZGVsYXkpO1xuICAgIH1cbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIHRoaXMuX2Nsb3NlKHt9KTtcbiAgfVxuXG4gIF9jbG9zZShlKSB7XG4gICAgaWYgKHRoaXMuX29wZW5lZCAmJiAoZS50YXJnZXQgIT09IHRoaXMuZmlyc3RFbGVtZW50Q2hpbGQgfHwgdGhpcy5ldmVudCAhPT0gJ2NsaWNrJykpIHtcbiAgICAgIGNvbnN0IG9wZW5FbGVtZW50ID0gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy5vcGVuJyk7XG4gICAgICBvcGVuRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdjbG9zZScpO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIG9wZW5FbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ2Nsb3NlJyk7XG4gICAgICAgIHRoaXMuX29wZW5lZCA9IGZhbHNlO1xuICAgICAgfSwgMjAwKTtcbiAgICB9XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgaW5saW5lID0gdGhpcy53aWR0aCA9PSBudWxsICYmICF0aGlzLnNtYWxsICYmICF0aGlzLm1lZGl1bSAmJiAhdGhpcy5sYXJnZTtcbiAgICBjb25zdCBjbGFzc2VzID0geyBvcGVuOiB0aGlzLl9vcGVuZWQsIGNvbnRlbnQ6IHRydWUsIGlubGluZSB9O1xuICAgIHJldHVybiBodG1sYCA8ZGl2IGNsYXNzPVwiJHtjbGFzc01hcChjbGFzc2VzKX1cIj5cbiAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgICR7dGhpcy5hcnJvdyA/IGh0bWxgPGRpdiBjbGFzcz1cImFycm93XCI+PC9kaXY+YCA6ICcnfVxuICAgICAgPGRpdiBjbGFzcz1cInBvcG92ZXJcIj4ke3RoaXMucmVuZGVyQ29udGVudCgpfTwvZGl2PlxuICAgIDwvZGl2PmA7XG4gIH1cblxuICByZW5kZXJDb250ZW50KCkge1xuICAgIHJldHVybiBodG1sYDxzbG90IG5hbWU9XCJwb3BvdmVyXCI+PC9zbG90PmA7XG4gIH1cblxuICBmaXJzdFVwZGF0ZWQoX2NoYW5nZWRQcm9wZXJ0aWVzKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIodGhpcy5ldmVudCwgdGhpcy5fb3Blbi5iaW5kKHRoaXMpKTtcbiAgICAgIGlmICh0aGlzLmV2ZW50LnN0YXJ0c1dpdGgoJ21vdXNlJykgJiYgdGhpcy5kZWxheSA9PT0gMCkge1xuICAgICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCB0aGlzLl9jbG9zZS5iaW5kKHRoaXMpKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIF9nZXRDb250ZW50U2l6ZSgpIHtcbiAgICBjb25zdCBwb3BvdmVyID0gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy5wb3BvdmVyJyk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHdpZHRoOiBwb3BvdmVyLm9mZnNldFdpZHRoLFxuICAgICAgaGVpZ2h0OiBwb3BvdmVyLm9mZnNldEhlaWdodCxcbiAgICB9O1xuICB9XG5cbiAgX2dldFBvc2l0aW9uUGFkZGluZygpIHtcbiAgICByZXR1cm4gMTA7XG4gIH1cblxuICBfZ2V0Q2VudGVyUG9zaXRpb24oKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHg6IHRoaXMudGFyZ2V0LnggKyB0aGlzLnRhcmdldC53aWR0aCAvIDIgKyB3aW5kb3cuc2Nyb2xsWCxcbiAgICAgIHk6IHRoaXMudGFyZ2V0LnkgKyB0aGlzLnRhcmdldC5oZWlnaHQgLyAyICsgd2luZG93LnNjcm9sbFksXG4gICAgfTtcbiAgfVxuXG4gIF91cGRhdGVQb3NpdGlvbigpIHtcbiAgICBpZiAodGhpcy5wb3NpdGlvbiAhPSBudWxsICYmIHRoaXMuYXV0bykge1xuICAgICAgY29uc3QgcG9wb3ZlciA9IHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcucG9wb3ZlcicpO1xuICAgICAgaWYgKHBvcG92ZXIpIHtcbiAgICAgICAgdGhpcy50YXJnZXQgPSB0aGlzLmZpcnN0RWxlbWVudENoaWxkLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgKHRoaXMucG9zaXRpb24gPT09ICd0b3AnICYmICF0aGlzLl9oYXNUb3BTcGFjZSgpKSB8fFxuICAgICAgICAgICh0aGlzLnBvc2l0aW9uID09PSAnYm90dG9tJyAmJiAhdGhpcy5faGFzQm90dG9tU3BhY2UoKSkgfHxcbiAgICAgICAgICAodGhpcy5wb3NpdGlvbiA9PT0gJ2xlZnQnICYmICF0aGlzLl9oYXNMZWZ0U3BhY2UoKSkgfHxcbiAgICAgICAgICAodGhpcy5wb3NpdGlvbiA9PT0gJ3JpZ2h0JyAmJiAhdGhpcy5faGFzUmlnaHRTcGFjZSgpKVxuICAgICAgICApIHtcbiAgICAgICAgICBjb25zdCBpbmRleCA9IFt0aGlzLl9oYXNUb3BTcGFjZSgpLCB0aGlzLl9oYXNSaWdodFNwYWNlKCksIHRoaXMuX2hhc0JvdHRvbVNwYWNlKCksIHRoaXMuX2hhc0xlZnRTcGFjZSgpXS5pbmRleE9mKHRydWUpO1xuICAgICAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uID0gWyd0b3AnLCAncmlnaHQnLCAnYm90dG9tJywgJ2xlZnQnXVtpbmRleF07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgX2dldE1heFgoKSB7XG4gICAgcmV0dXJuIHdpbmRvdy5pbm5lcldpZHRoIC0gdGhpcy5fZ2V0UG9zaXRpb25QYWRkaW5nKCk7XG4gIH1cblxuICBfZ2V0TWF4WSgpIHtcbiAgICByZXR1cm4gd2luZG93LmlubmVySGVpZ2h0IC0gdGhpcy5fZ2V0UG9zaXRpb25QYWRkaW5nKCk7XG4gIH1cblxuICBfaGFzQm90dG9tU3BhY2UoKSB7XG4gICAgY29uc3QgeSA9IHRoaXMudGFyZ2V0LnkgKyB0aGlzLnRhcmdldC5oZWlnaHQgKyB0aGlzLl9nZXRDb250ZW50U2l6ZSgpLmhlaWdodCArIHRoaXMuX2dldFBvc2l0aW9uUGFkZGluZygpO1xuXG4gICAgcmV0dXJuIHkgPD0gdGhpcy5fZ2V0TWF4WSgpO1xuICB9XG5cbiAgX2hhc1JpZ2h0U3BhY2UoKSB7XG4gICAgY29uc3QgeSA9IHRoaXMudGFyZ2V0LnggKyB0aGlzLnRhcmdldC53aWR0aCArIHRoaXMuX2dldENvbnRlbnRTaXplKCkud2lkdGggKyB0aGlzLl9nZXRQb3NpdGlvblBhZGRpbmcoKTtcblxuICAgIHJldHVybiB5IDw9IHRoaXMuX2dldE1heFgoKTtcbiAgfVxuXG4gIF9oYXNUb3BTcGFjZSgpIHtcbiAgICBjb25zdCB5ID0gdGhpcy50YXJnZXQueSAtIHRoaXMuX2dldENvbnRlbnRTaXplKCkuaGVpZ2h0IC0gdGhpcy5fZ2V0UG9zaXRpb25QYWRkaW5nKCk7XG5cbiAgICByZXR1cm4geSA+PSB0aGlzLl9nZXRQb3NpdGlvblBhZGRpbmcoKTtcbiAgfVxuXG4gIF9oYXNMZWZ0U3BhY2UoKSB7XG4gICAgY29uc3QgeSA9IHRoaXMudGFyZ2V0LnggLSB0aGlzLl9nZXRDb250ZW50U2l6ZSgpLndpZHRoIC0gdGhpcy5fZ2V0UG9zaXRpb25QYWRkaW5nKCk7XG5cbiAgICByZXR1cm4geSA+PSB0aGlzLl9nZXRQb3NpdGlvblBhZGRpbmcoKTtcbiAgfVxuXG4gIHVwZGF0ZWQocHJvcHMpIHtcbiAgICBpZiAocHJvcHMuaGFzKCd3aWR0aCcpKSB7XG4gICAgICB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLnBvcG92ZXInKS5zdHlsZS5zZXRQcm9wZXJ0eSgnd2lkdGgnLCB0aGlzLndpZHRoKTtcbiAgICB9XG4gICAgdGhpcy5fdXBkYXRlUG9zaXRpb24oKTtcbiAgfVxufVxuXG53aW5kb3cuY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdndi1wb3BvdmVyJywgR3ZQb3BvdmVyKTtcbiJdfQ==
@@ -13,8 +13,8 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import { css, LitElement, html } from 'lit';
17
- import { classMap } from 'lit/directives/class-map';
16
+ import { css, LitElement, html } from 'lit-element';
17
+ import { classMap } from 'lit-html/directives/class-map';
18
18
  import { dispatchCustomEvent } from '../lib/events';
19
19
  import { i18n } from '../lib/i18n';
20
20
  import { ItemResource } from '../mixins/item-resource';
@@ -87,4 +87,4 @@ export class GvPromote extends ItemResource(LitElement) {
87
87
 
88
88
  }
89
89
  window.customElements.define('gv-promote', GvPromote);
90
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL21vbGVjdWxlcy9ndi1wcm9tb3RlLmpzIl0sIm5hbWVzIjpbImNzcyIsIkxpdEVsZW1lbnQiLCJodG1sIiwiY2xhc3NNYXAiLCJkaXNwYXRjaEN1c3RvbUV2ZW50IiwiaTE4biIsIkl0ZW1SZXNvdXJjZSIsImdldFRpdGxlIiwiZ2V0RGVzY3JpcHRpb24iLCJnZXRWZXJzaW9uIiwidHJ1bmNhdGUiLCJHdlByb21vdGUiLCJwcm9wZXJ0aWVzIiwibGltaXQiLCJ0eXBlIiwiTnVtYmVyIiwic3R5bGVzIiwiX29uQ2xpY2siLCJkYXRhIiwiX2l0ZW0iLCJocmVmIiwicmVuZGVyIiwiX2ludmlzaWJsZSIsInNrZWxldG9uIiwiX3NrZWxldG9uIiwiaW1hZ2UiLCJfcmVuZGVySW1hZ2UiLCJfZXJyb3IiLCJfZW1wdHkiLCJ0aXRsZSIsImRlc2NyaXB0aW9uIiwic3BsaXQiLCJsZW5ndGgiLCJpbmZvcyIsIl9yZW5kZXJNZXRyaWNzV2l0aFJhdGluZyIsIl9yZW5kZXJMYWJlbHMiLCJ3aW5kb3ciLCJjdXN0b21FbGVtZW50cyIsImRlZmluZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsR0FBVCxFQUFjQyxVQUFkLEVBQTBCQyxJQUExQixRQUFzQyxLQUF0QztBQUNBLFNBQVNDLFFBQVQsUUFBeUIsMEJBQXpCO0FBQ0EsU0FBU0MsbUJBQVQsUUFBb0MsZUFBcEM7QUFDQSxTQUFTQyxJQUFULFFBQXFCLGFBQXJCO0FBQ0EsU0FBU0MsWUFBVCxRQUE2Qix5QkFBN0I7QUFDQSxTQUFTQyxRQUFULEVBQW1CQyxjQUFuQixFQUFtQ0MsVUFBbkMsUUFBcUQsYUFBckQ7QUFDQSxTQUFTQyxRQUFULFFBQXlCLGNBQXpCO0FBRUEsT0FBTyxtQkFBUDtBQUNBLE9BQU8sb0JBQVA7QUFDQSxPQUFPLHdCQUFQO0FBQ0EsT0FBTyx5QkFBUDtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxPQUFPLE1BQU1DLFNBQU4sU0FBd0JMLFlBQVksQ0FBQ0wsVUFBRCxDQUFwQyxDQUFpRDtBQUNqQyxhQUFWVyxVQUFVLEdBQUc7QUFDdEIsV0FBTyxFQUNMLEdBQUcsTUFBTUEsVUFESjtBQUVMQyxNQUFBQSxLQUFLLEVBQUU7QUFBRUMsUUFBQUEsSUFBSSxFQUFFQztBQUFSO0FBRkYsS0FBUDtBQUlEOztBQUVnQixhQUFOQyxNQUFNLEdBQUc7QUFDbEIsV0FBTyxDQUNMLEdBQUcsTUFBTUEsTUFESixFQUVMO0FBQ0FoQixJQUFBQSxHQUFHLHk4Q0FIRSxDQUFQO0FBaUdEOztBQUVEaUIsRUFBQUEsUUFBUSxHQUFHO0FBQ1RiLElBQUFBLG1CQUFtQixDQUFDLElBQUQsRUFBTyxPQUFQLEVBQWdCO0FBQUVjLE1BQUFBLElBQUksRUFBRSxLQUFLQyxLQUFiO0FBQW9CQyxNQUFBQSxJQUFJLEVBQUUsS0FBS0E7QUFBL0IsS0FBaEIsQ0FBbkI7QUFDRDs7QUFFREMsRUFBQUEsTUFBTSxHQUFHO0FBQ1AsUUFBSSxLQUFLQyxVQUFULEVBQXFCO0FBQ25CLGFBQU8sRUFBUDtBQUNEOztBQUNELFdBQU9wQixJQUFJLHVDQUNLQyxRQUFRLENBQUM7QUFBRW9CLE1BQUFBLFFBQVEsRUFBRSxLQUFLQyxTQUFqQjtBQUE0QkMsTUFBQUEsS0FBSyxFQUFFO0FBQW5DLEtBQUQsQ0FEYixLQUM2RCxLQUFLQyxZQUFMLEVBRDdELGdDQUdMLEtBQUtDLE1BQUwsSUFBZSxDQUFDLEtBQUtILFNBQXJCLEdBQ0V0QixJQUFJLGdDQUFnQ0csSUFBSSxDQUFDLGtCQUFELENBQXBDLE1BRE4sR0FFRUgsSUFBSSxJQUNBLEtBQUswQixNQUFMLElBQWUsQ0FBQyxLQUFLSixTQUFyQixHQUNFdEIsSUFBSSxnQ0FBZ0NHLElBQUksQ0FBQyxrQkFBRCxDQUFwQyxNQUROLEdBRUVILElBQUksZ0JBQWVDLFFBQVEsQ0FBQztBQUFFb0IsTUFBQUEsUUFBUSxFQUFFLEtBQUtDLFNBQWpCO0FBQTRCSyxNQUFBQSxLQUFLLEVBQUU7QUFBbkMsS0FBRCxDQUF2QixVQUNNdEIsUUFBUSxDQUFDLEtBQUtZLEtBQU4sQ0FEZCwrQkFFd0JWLFVBQVUsQ0FBQyxLQUFLVSxLQUFOLENBRmxDLDRCQUtRaEIsUUFBUSxDQUFDO0FBQ2ZvQixNQUFBQSxRQUFRLEVBQUUsS0FBS0MsU0FEQTtBQUVmTSxNQUFBQSxXQUFXLEVBQUUsSUFGRTtBQUdmLDJCQUFxQnRCLGNBQWMsQ0FBQyxLQUFLVyxLQUFOLENBQWQsQ0FBMkJZLEtBQTNCLENBQWlDLEdBQWpDLEVBQXNDQyxNQUF0QyxHQUErQztBQUhyRCxLQUFELENBTGhCLE1BV0V0QixRQUFRLENBQUNGLGNBQWMsQ0FBQyxLQUFLVyxLQUFOLENBQWYsRUFBNkIsS0FBS04sS0FBbEMsQ0FYVixxQkFhV1YsUUFBUSxDQUFDO0FBQUVvQixNQUFBQSxRQUFRLEVBQUUsS0FBS0MsU0FBakI7QUFBNEJTLE1BQUFBLEtBQUssRUFBRTtBQUFuQyxLQUFELENBYm5CLEtBYWtFLEtBQUtDLHdCQUFMLEVBYmxFLDhCQWNvQixLQUFLQyxhQUFMLENBQW1CLElBQW5CLENBZHBCLGdDQWVxQixLQUFLWCxTQWYxQixZQWU4QyxLQUFLSixJQWZuRCxhQWVvRSxLQUFLSCxRQWZ6RSxLQWdCR1osSUFBSSxDQUFDLGlCQUFELENBaEJQLGNBSE4sR0FMRCxnQkFBWDtBQTZCRDs7QUFqSnFEO0FBb0p4RCtCLE1BQU0sQ0FBQ0MsY0FBUCxDQUFzQkMsTUFBdEIsQ0FBNkIsWUFBN0IsRUFBMkMzQixTQUEzQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBjc3MsIExpdEVsZW1lbnQsIGh0bWwgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY2xhc3NNYXAgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9jbGFzcy1tYXAnO1xuaW1wb3J0IHsgZGlzcGF0Y2hDdXN0b21FdmVudCB9IGZyb20gJy4uL2xpYi9ldmVudHMnO1xuaW1wb3J0IHsgaTE4biB9IGZyb20gJy4uL2xpYi9pMThuJztcbmltcG9ydCB7IEl0ZW1SZXNvdXJjZSB9IGZyb20gJy4uL21peGlucy9pdGVtLXJlc291cmNlJztcbmltcG9ydCB7IGdldFRpdGxlLCBnZXREZXNjcmlwdGlvbiwgZ2V0VmVyc2lvbiB9IGZyb20gJy4uL2xpYi9pdGVtJztcbmltcG9ydCB7IHRydW5jYXRlIH0gZnJvbSAnLi4vbGliL3V0aWxzJztcblxuaW1wb3J0ICcuLi9hdG9tcy9ndi1pbWFnZSc7XG5pbXBvcnQgJy4uL2F0b21zL2d2LWJ1dHRvbic7XG5pbXBvcnQgJy4uL21vbGVjdWxlcy9ndi1yYXRpbmcnO1xuaW1wb3J0ICcuLi9tb2xlY3VsZXMvZ3YtbWV0cmljcyc7XG5cbi8qKlxuICogUHJvbW90ZSBjb21wb25lbnRcbiAqXG4gKiAjIyBEZXRhaWxzXG4gKiAqIGhhcyBAdGhlbWUgZmFjZXRcbiAqXG4gKiBAZmlyZXMgZ3YtcHJvbW90ZTpjbGljayAtIFdoZW4gY2xpY2sgb24gYnV0dG9uIGZvciB2aWV3IGl0ZW1cbiAqIEBmaXJlcyBndi10YWc6Y2xpY2sgLSBXaGVuIG9uZSBvZiB0aGUgbGFiZWwgaXMgY2xpY2tlZFxuICpcbiAqIEBhdHRyIHtQcm9taXNlPGFueT59IGl0ZW0gLSBhbiBpdGVtLlxuICpcbiAqIEBjc3Nwcm9wIHtDb2xvcn0gWy0tZ3YtcHJvbW90ZS1pbWFnZS0tYmdjPXZhcigtLWd2LXRoZW1lLWNvbG9yLWxpZ2h0LCAjODZjM2QwKV0gLSBJbWFnZSBiYWNrZ3JvdW5kIGNvbG9yXG4gKiBAY3NzcHJvcCB7Q29sb3J9IFstLWd2LXByb21vdGUtLWJnYz12YXIoLS1ndi10aGVtZS1uZXV0cmFsLWNvbG9yLWxpZ2h0ZXN0LCAjZmZmZmZmKV0gLSBCYWNrZ3JvdW5kIGNvbG9yXG4gKiBAY3NzcHJvcCB7TGVuZ3RofSBbLS1ndi1wcm9tb3RlLWltYWdlLS1oPTMwMHB4XSAtIEltYWdlIGhlaWdodFxuICogQGNzc3Byb3Age0xlbmd0aH0gWy0tZ3YtcHJvbW90ZS1pbWFnZS0tdz0zMDBweF0gLSBJbWFnZSB3aWR0aFxuICogQGNzc3Byb3Age0xlbmd0aH0gWy0tZ3YtcHJvbW90ZS1idXR0b24tLXA9MTlweCA4MHB4XSAtIEJ1dHRvbiBwYWRkaW5nXG4gKiBAY3NzcHJvcCB7TGVuZ3RofSBbLS1ndi1wcm9tb3RlLWJ1dHRvbi0tZno9dmFyKC0tZ3YtdGhlbWUtZm9udC1zaXplLWwsIDE2cHgpXSAtIEJ1dHRvbiBmb250IHNpemVcbiAqL1xuZXhwb3J0IGNsYXNzIEd2UHJvbW90ZSBleHRlbmRzIEl0ZW1SZXNvdXJjZShMaXRFbGVtZW50KSB7XG4gIHN0YXRpYyBnZXQgcHJvcGVydGllcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3VwZXIucHJvcGVydGllcyxcbiAgICAgIGxpbWl0OiB7IHR5cGU6IE51bWJlciB9LFxuICAgIH07XG4gIH1cblxuICBzdGF0aWMgZ2V0IHN0eWxlcygpIHtcbiAgICByZXR1cm4gW1xuICAgICAgLi4uc3VwZXIuc3R5bGVzLFxuICAgICAgLy8gbGFuZ3VhZ2U9Q1NTXG4gICAgICBjc3NgXG4gICAgICAgIDpob3N0IHtcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICBtYXJnaW46IDAuMnJlbTtcbiAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgIC0tZ3YtYnV0dG9uLS1wOiB2YXIoLS1ndi1wcm9tb3RlLWJ1dHRvbi0tcCwgMTlweCA4MHB4KTtcbiAgICAgICAgICAtLWd2LWJ1dHRvbi0tZno6IHZhcigtLWd2LXByb21vdGUtYnV0dG9uLS1meiwgdmFyKC0tZ3YtdGhlbWUtZm9udC1zaXplLWwsIDE2cHgpKTtcbiAgICAgICAgICAtLWd2LXByZXZpZXctYnV0dG9uOiAnbm9uZSc7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgLS1ndi1pY29uLS1zOiAyMHB4O1xuICAgICAgICAgIC0tZ3YtcmF0aW5nLS1zOiAyMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgZ3YtaWRlbnRpdHktcGljdHVyZSB7XG4gICAgICAgICAgaGVpZ2h0OiB2YXIoLS1ndi1wcm9tb3RlLWltYWdlLS1oLCAzMDBweCk7XG4gICAgICAgICAgd2lkdGg6IHZhcigtLWd2LXByb21vdGUtaW1hZ2UtLXcsIDMwMHB4KTtcbiAgICAgICAgICAtLWd2LWltYWdlLS1vZjogY29udGFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb250YWluZXIge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgbWluLWhlaWdodDogNDIwcHg7XG4gICAgICAgICAgbWF4LWhlaWdodDogNDIwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAuaW1hZ2Uge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWd2LXByb21vdGUtaW1hZ2UtLWJnYywgdmFyKC0tZ3YtdGhlbWUtY29sb3ItbGlnaHQsICM4NmMzZDApKTtcbiAgICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgICB3aWR0aDogNDgwcHg7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweCAwIDAgNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLnRpdGxlIHtcbiAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbiAgICAgICAgICBtaW4taGVpZ2h0OiAzMnB4O1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC50aXRsZSBoMiB7XG4gICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1ndi10aGVtZS1mb250LXNpemUteGwsIDI2cHgpO1xuICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAudGl0bGUgLnZlcnNpb24ge1xuICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZ3YtdGhlbWUtZm9udC1zaXplLXMsIDEycHgpO1xuICAgICAgICAgIGNvbG9yOiB2YXIoLS1ndi10aGVtZS1uZXV0cmFsLWNvbG9yLWRhcmssICNkOWQ5ZDkpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNvbnRlbnQge1xuICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgcGFkZGluZzogMS41cmVtO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWd2LXByb21vdGUtLWJnYywgdmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvci1saWdodGVzdCwgI2ZmZmZmZikpO1xuICAgICAgICAgIGNvbG9yOiB2YXIoLS1ndi10aGVtZS1mb250LWNvbG9yLWRhcmssICMyNjI2MjYpO1xuICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZ3YtdGhlbWUtZm9udC1zaXplLWwsIDE2cHgpO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAgNHB4IDRweCAwO1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgbWFyZ2luOiAyNHB4IDBweDtcbiAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAuZGVzY3JpcHRpb24tbGFyZ2Uge1xuICAgICAgICAgIHRleHQtYWxpZ246IGp1c3RpZnk7XG4gICAgICAgIH1cblxuICAgICAgICAuaW5mb3Mge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwLjJyZW07XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIGd2LW1ldHJpY3Mge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgICAgIH1cblxuICAgICAgICAubGFiZWxzIHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuICAgICAgYCxcbiAgICBdO1xuICB9XG5cbiAgX29uQ2xpY2soKSB7XG4gICAgZGlzcGF0Y2hDdXN0b21FdmVudCh0aGlzLCAnY2xpY2snLCB7IGRhdGE6IHRoaXMuX2l0ZW0sIGhyZWY6IHRoaXMuaHJlZiB9KTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBpZiAodGhpcy5faW52aXNpYmxlKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHJldHVybiBodG1sYDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCIke2NsYXNzTWFwKHsgc2tlbGV0b246IHRoaXMuX3NrZWxldG9uLCBpbWFnZTogdHJ1ZSB9KX1cIj4ke3RoaXMuX3JlbmRlckltYWdlKCl9PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxuICAgICAgICAke3RoaXMuX2Vycm9yICYmICF0aGlzLl9za2VsZXRvblxuICAgICAgICAgID8gaHRtbGA8cCBjbGFzcz1cImRlc2NyaXB0aW9uIGVycm9yXCI+JHtpMThuKCdndi1wcm9tb3RlLmVycm9yJyl9PC9wPmBcbiAgICAgICAgICA6IGh0bWxgXG4gICAgICAgICAgICAgICR7dGhpcy5fZW1wdHkgJiYgIXRoaXMuX3NrZWxldG9uXG4gICAgICAgICAgICAgICAgPyBodG1sYDxwIGNsYXNzPVwiZGVzY3JpcHRpb24gZW1wdHlcIj4ke2kxOG4oJ2d2LXByb21vdGUuZW1wdHknKX08L3A+YFxuICAgICAgICAgICAgICAgIDogaHRtbGAgPGRpdiBjbGFzcz0ke2NsYXNzTWFwKHsgc2tlbGV0b246IHRoaXMuX3NrZWxldG9uLCB0aXRsZTogdHJ1ZSB9KX0+XG4gICAgICAgICAgICAgICAgICAgICAgPGgyPiR7Z2V0VGl0bGUodGhpcy5faXRlbSl9PC9oMj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZlcnNpb25cIj4ke2dldFZlcnNpb24odGhpcy5faXRlbSl9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPHBcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0ke2NsYXNzTWFwKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNrZWxldG9uOiB0aGlzLl9za2VsZXRvbixcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2Rlc2NyaXB0aW9uLWxhcmdlJzogZ2V0RGVzY3JpcHRpb24odGhpcy5faXRlbSkuc3BsaXQoJyAnKS5sZW5ndGggPiAxMCxcbiAgICAgICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICR7dHJ1bmNhdGUoZ2V0RGVzY3JpcHRpb24odGhpcy5faXRlbSksIHRoaXMubGltaXQpfVxuICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9JHtjbGFzc01hcCh7IHNrZWxldG9uOiB0aGlzLl9za2VsZXRvbiwgaW5mb3M6IHRydWUgfSl9PiR7dGhpcy5fcmVuZGVyTWV0cmljc1dpdGhSYXRpbmcoKX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsc1wiPiR7dGhpcy5fcmVuZGVyTGFiZWxzKHRydWUpfTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8Z3YtYnV0dG9uID9za2VsZXRvbj0ke3RoaXMuX3NrZWxldG9ufSAuaHJlZj1cIiR7dGhpcy5ocmVmfVwiIEBjbGljaz1cIiR7dGhpcy5fb25DbGlja31cIlxuICAgICAgICAgICAgICAgICAgICAgID4ke2kxOG4oJ2d2LXByb21vdGUudmlldycpfTwvZ3YtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgID5gfVxuICAgICAgICAgICAgYH1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PmA7XG4gIH1cbn1cblxud2luZG93LmN1c3RvbUVsZW1lbnRzLmRlZmluZSgnZ3YtcHJvbW90ZScsIEd2UHJvbW90ZSk7XG4iXX0=
90
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL21vbGVjdWxlcy9ndi1wcm9tb3RlLmpzIl0sIm5hbWVzIjpbImNzcyIsIkxpdEVsZW1lbnQiLCJodG1sIiwiY2xhc3NNYXAiLCJkaXNwYXRjaEN1c3RvbUV2ZW50IiwiaTE4biIsIkl0ZW1SZXNvdXJjZSIsImdldFRpdGxlIiwiZ2V0RGVzY3JpcHRpb24iLCJnZXRWZXJzaW9uIiwidHJ1bmNhdGUiLCJHdlByb21vdGUiLCJwcm9wZXJ0aWVzIiwibGltaXQiLCJ0eXBlIiwiTnVtYmVyIiwic3R5bGVzIiwiX29uQ2xpY2siLCJkYXRhIiwiX2l0ZW0iLCJocmVmIiwicmVuZGVyIiwiX2ludmlzaWJsZSIsInNrZWxldG9uIiwiX3NrZWxldG9uIiwiaW1hZ2UiLCJfcmVuZGVySW1hZ2UiLCJfZXJyb3IiLCJfZW1wdHkiLCJ0aXRsZSIsImRlc2NyaXB0aW9uIiwic3BsaXQiLCJsZW5ndGgiLCJpbmZvcyIsIl9yZW5kZXJNZXRyaWNzV2l0aFJhdGluZyIsIl9yZW5kZXJMYWJlbHMiLCJ3aW5kb3ciLCJjdXN0b21FbGVtZW50cyIsImRlZmluZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsR0FBVCxFQUFjQyxVQUFkLEVBQTBCQyxJQUExQixRQUFzQyxhQUF0QztBQUNBLFNBQVNDLFFBQVQsUUFBeUIsK0JBQXpCO0FBQ0EsU0FBU0MsbUJBQVQsUUFBb0MsZUFBcEM7QUFDQSxTQUFTQyxJQUFULFFBQXFCLGFBQXJCO0FBQ0EsU0FBU0MsWUFBVCxRQUE2Qix5QkFBN0I7QUFDQSxTQUFTQyxRQUFULEVBQW1CQyxjQUFuQixFQUFtQ0MsVUFBbkMsUUFBcUQsYUFBckQ7QUFDQSxTQUFTQyxRQUFULFFBQXlCLGNBQXpCO0FBRUEsT0FBTyxtQkFBUDtBQUNBLE9BQU8sb0JBQVA7QUFDQSxPQUFPLHdCQUFQO0FBQ0EsT0FBTyx5QkFBUDtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxPQUFPLE1BQU1DLFNBQU4sU0FBd0JMLFlBQVksQ0FBQ0wsVUFBRCxDQUFwQyxDQUFpRDtBQUNqQyxhQUFWVyxVQUFVLEdBQUc7QUFDdEIsV0FBTyxFQUNMLEdBQUcsTUFBTUEsVUFESjtBQUVMQyxNQUFBQSxLQUFLLEVBQUU7QUFBRUMsUUFBQUEsSUFBSSxFQUFFQztBQUFSO0FBRkYsS0FBUDtBQUlEOztBQUVnQixhQUFOQyxNQUFNLEdBQUc7QUFDbEIsV0FBTyxDQUNMLEdBQUcsTUFBTUEsTUFESixFQUVMO0FBQ0FoQixJQUFBQSxHQUFHLHk4Q0FIRSxDQUFQO0FBaUdEOztBQUVEaUIsRUFBQUEsUUFBUSxHQUFHO0FBQ1RiLElBQUFBLG1CQUFtQixDQUFDLElBQUQsRUFBTyxPQUFQLEVBQWdCO0FBQUVjLE1BQUFBLElBQUksRUFBRSxLQUFLQyxLQUFiO0FBQW9CQyxNQUFBQSxJQUFJLEVBQUUsS0FBS0E7QUFBL0IsS0FBaEIsQ0FBbkI7QUFDRDs7QUFFREMsRUFBQUEsTUFBTSxHQUFHO0FBQ1AsUUFBSSxLQUFLQyxVQUFULEVBQXFCO0FBQ25CLGFBQU8sRUFBUDtBQUNEOztBQUNELFdBQU9wQixJQUFJLHVDQUNLQyxRQUFRLENBQUM7QUFBRW9CLE1BQUFBLFFBQVEsRUFBRSxLQUFLQyxTQUFqQjtBQUE0QkMsTUFBQUEsS0FBSyxFQUFFO0FBQW5DLEtBQUQsQ0FEYixLQUM2RCxLQUFLQyxZQUFMLEVBRDdELGdDQUdMLEtBQUtDLE1BQUwsSUFBZSxDQUFDLEtBQUtILFNBQXJCLEdBQ0V0QixJQUFJLGdDQUFnQ0csSUFBSSxDQUFDLGtCQUFELENBQXBDLE1BRE4sR0FFRUgsSUFBSSxJQUNBLEtBQUswQixNQUFMLElBQWUsQ0FBQyxLQUFLSixTQUFyQixHQUNFdEIsSUFBSSxnQ0FBZ0NHLElBQUksQ0FBQyxrQkFBRCxDQUFwQyxNQUROLEdBRUVILElBQUksZ0JBQWVDLFFBQVEsQ0FBQztBQUFFb0IsTUFBQUEsUUFBUSxFQUFFLEtBQUtDLFNBQWpCO0FBQTRCSyxNQUFBQSxLQUFLLEVBQUU7QUFBbkMsS0FBRCxDQUF2QixVQUNNdEIsUUFBUSxDQUFDLEtBQUtZLEtBQU4sQ0FEZCwrQkFFd0JWLFVBQVUsQ0FBQyxLQUFLVSxLQUFOLENBRmxDLDRCQUtRaEIsUUFBUSxDQUFDO0FBQ2ZvQixNQUFBQSxRQUFRLEVBQUUsS0FBS0MsU0FEQTtBQUVmTSxNQUFBQSxXQUFXLEVBQUUsSUFGRTtBQUdmLDJCQUFxQnRCLGNBQWMsQ0FBQyxLQUFLVyxLQUFOLENBQWQsQ0FBMkJZLEtBQTNCLENBQWlDLEdBQWpDLEVBQXNDQyxNQUF0QyxHQUErQztBQUhyRCxLQUFELENBTGhCLE1BV0V0QixRQUFRLENBQUNGLGNBQWMsQ0FBQyxLQUFLVyxLQUFOLENBQWYsRUFBNkIsS0FBS04sS0FBbEMsQ0FYVixxQkFhV1YsUUFBUSxDQUFDO0FBQUVvQixNQUFBQSxRQUFRLEVBQUUsS0FBS0MsU0FBakI7QUFBNEJTLE1BQUFBLEtBQUssRUFBRTtBQUFuQyxLQUFELENBYm5CLEtBYWtFLEtBQUtDLHdCQUFMLEVBYmxFLDhCQWNvQixLQUFLQyxhQUFMLENBQW1CLElBQW5CLENBZHBCLGdDQWVxQixLQUFLWCxTQWYxQixZQWU4QyxLQUFLSixJQWZuRCxhQWVvRSxLQUFLSCxRQWZ6RSxLQWdCR1osSUFBSSxDQUFDLGlCQUFELENBaEJQLGNBSE4sR0FMRCxnQkFBWDtBQTZCRDs7QUFqSnFEO0FBb0p4RCtCLE1BQU0sQ0FBQ0MsY0FBUCxDQUFzQkMsTUFBdEIsQ0FBNkIsWUFBN0IsRUFBMkMzQixTQUEzQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBjc3MsIExpdEVsZW1lbnQsIGh0bWwgfSBmcm9tICdsaXQtZWxlbWVudCc7XG5pbXBvcnQgeyBjbGFzc01hcCB9IGZyb20gJ2xpdC1odG1sL2RpcmVjdGl2ZXMvY2xhc3MtbWFwJztcbmltcG9ydCB7IGRpc3BhdGNoQ3VzdG9tRXZlbnQgfSBmcm9tICcuLi9saWIvZXZlbnRzJztcbmltcG9ydCB7IGkxOG4gfSBmcm9tICcuLi9saWIvaTE4bic7XG5pbXBvcnQgeyBJdGVtUmVzb3VyY2UgfSBmcm9tICcuLi9taXhpbnMvaXRlbS1yZXNvdXJjZSc7XG5pbXBvcnQgeyBnZXRUaXRsZSwgZ2V0RGVzY3JpcHRpb24sIGdldFZlcnNpb24gfSBmcm9tICcuLi9saWIvaXRlbSc7XG5pbXBvcnQgeyB0cnVuY2F0ZSB9IGZyb20gJy4uL2xpYi91dGlscyc7XG5cbmltcG9ydCAnLi4vYXRvbXMvZ3YtaW1hZ2UnO1xuaW1wb3J0ICcuLi9hdG9tcy9ndi1idXR0b24nO1xuaW1wb3J0ICcuLi9tb2xlY3VsZXMvZ3YtcmF0aW5nJztcbmltcG9ydCAnLi4vbW9sZWN1bGVzL2d2LW1ldHJpY3MnO1xuXG4vKipcbiAqIFByb21vdGUgY29tcG9uZW50XG4gKlxuICogIyMgRGV0YWlsc1xuICogKiBoYXMgQHRoZW1lIGZhY2V0XG4gKlxuICogQGZpcmVzIGd2LXByb21vdGU6Y2xpY2sgLSBXaGVuIGNsaWNrIG9uIGJ1dHRvbiBmb3IgdmlldyBpdGVtXG4gKiBAZmlyZXMgZ3YtdGFnOmNsaWNrIC0gV2hlbiBvbmUgb2YgdGhlIGxhYmVsIGlzIGNsaWNrZWRcbiAqXG4gKiBAYXR0ciB7UHJvbWlzZTxhbnk+fSBpdGVtIC0gYW4gaXRlbS5cbiAqXG4gKiBAY3NzcHJvcCB7Q29sb3J9IFstLWd2LXByb21vdGUtaW1hZ2UtLWJnYz12YXIoLS1ndi10aGVtZS1jb2xvci1saWdodCwgIzg2YzNkMCldIC0gSW1hZ2UgYmFja2dyb3VuZCBjb2xvclxuICogQGNzc3Byb3Age0NvbG9yfSBbLS1ndi1wcm9tb3RlLS1iZ2M9dmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvci1saWdodGVzdCwgI2ZmZmZmZildIC0gQmFja2dyb3VuZCBjb2xvclxuICogQGNzc3Byb3Age0xlbmd0aH0gWy0tZ3YtcHJvbW90ZS1pbWFnZS0taD0zMDBweF0gLSBJbWFnZSBoZWlnaHRcbiAqIEBjc3Nwcm9wIHtMZW5ndGh9IFstLWd2LXByb21vdGUtaW1hZ2UtLXc9MzAwcHhdIC0gSW1hZ2Ugd2lkdGhcbiAqIEBjc3Nwcm9wIHtMZW5ndGh9IFstLWd2LXByb21vdGUtYnV0dG9uLS1wPTE5cHggODBweF0gLSBCdXR0b24gcGFkZGluZ1xuICogQGNzc3Byb3Age0xlbmd0aH0gWy0tZ3YtcHJvbW90ZS1idXR0b24tLWZ6PXZhcigtLWd2LXRoZW1lLWZvbnQtc2l6ZS1sLCAxNnB4KV0gLSBCdXR0b24gZm9udCBzaXplXG4gKi9cbmV4cG9ydCBjbGFzcyBHdlByb21vdGUgZXh0ZW5kcyBJdGVtUmVzb3VyY2UoTGl0RWxlbWVudCkge1xuICBzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN1cGVyLnByb3BlcnRpZXMsXG4gICAgICBsaW1pdDogeyB0eXBlOiBOdW1iZXIgfSxcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIGdldCBzdHlsZXMoKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLnN1cGVyLnN0eWxlcyxcbiAgICAgIC8vIGxhbmd1YWdlPUNTU1xuICAgICAgY3NzYFxuICAgICAgICA6aG9zdCB7XG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgbWFyZ2luOiAwLjJyZW07XG4gICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAtLWd2LWJ1dHRvbi0tcDogdmFyKC0tZ3YtcHJvbW90ZS1idXR0b24tLXAsIDE5cHggODBweCk7XG4gICAgICAgICAgLS1ndi1idXR0b24tLWZ6OiB2YXIoLS1ndi1wcm9tb3RlLWJ1dHRvbi0tZnosIHZhcigtLWd2LXRoZW1lLWZvbnQtc2l6ZS1sLCAxNnB4KSk7XG4gICAgICAgICAgLS1ndi1wcmV2aWV3LWJ1dHRvbjogJ25vbmUnO1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIC0tZ3YtaWNvbi0tczogMjBweDtcbiAgICAgICAgICAtLWd2LXJhdGluZy0tczogMjBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIGd2LWlkZW50aXR5LXBpY3R1cmUge1xuICAgICAgICAgIGhlaWdodDogdmFyKC0tZ3YtcHJvbW90ZS1pbWFnZS0taCwgMzAwcHgpO1xuICAgICAgICAgIHdpZHRoOiB2YXIoLS1ndi1wcm9tb3RlLWltYWdlLS13LCAzMDBweCk7XG4gICAgICAgICAgLS1ndi1pbWFnZS0tb2Y6IGNvbnRhaW47XG4gICAgICAgIH1cblxuICAgICAgICAuY29udGFpbmVyIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDQyMHB4O1xuICAgICAgICAgIG1heC1oZWlnaHQ6IDQyMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmltYWdlIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ndi1wcm9tb3RlLWltYWdlLS1iZ2MsIHZhcigtLWd2LXRoZW1lLWNvbG9yLWxpZ2h0LCAjODZjM2QwKSk7XG4gICAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgICAgd2lkdGg6IDQ4MHB4O1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHggMCAwIDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC50aXRsZSB7XG4gICAgICAgICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG4gICAgICAgICAgbWluLWhlaWdodDogMzJweDtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAudGl0bGUgaDIge1xuICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZ3YtdGhlbWUtZm9udC1zaXplLXhsLCAyNnB4KTtcbiAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgLnRpdGxlIC52ZXJzaW9uIHtcbiAgICAgICAgICBmb250LXNpemU6IHZhcigtLWd2LXRoZW1lLWZvbnQtc2l6ZS1zLCAxMnB4KTtcbiAgICAgICAgICBjb2xvcjogdmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvci1kYXJrLCAjZDlkOWQ5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb250ZW50IHtcbiAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgIHBhZGRpbmc6IDEuNXJlbTtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ndi1wcm9tb3RlLS1iZ2MsIHZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3ItbGlnaHRlc3QsICNmZmZmZmYpKTtcbiAgICAgICAgICBjb2xvcjogdmFyKC0tZ3YtdGhlbWUtZm9udC1jb2xvci1kYXJrLCAjMjYyNjI2KTtcbiAgICAgICAgICBmb250LXNpemU6IHZhcigtLWd2LXRoZW1lLWZvbnQtc2l6ZS1sLCAxNnB4KTtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMjRweDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAwIDRweCA0cHggMDtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIH1cblxuICAgICAgICAuZGVzY3JpcHRpb24ge1xuICAgICAgICAgIG1hcmdpbjogMjRweCAwcHg7XG4gICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgLmRlc2NyaXB0aW9uLWxhcmdlIHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xuICAgICAgICB9XG5cbiAgICAgICAgLmluZm9zIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMC4ycmVtO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBndi1tZXRyaWNzIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgICAgICB9XG5cbiAgICAgICAgLmxhYmVscyB7XG4gICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cbiAgICAgIGAsXG4gICAgXTtcbiAgfVxuXG4gIF9vbkNsaWNrKCkge1xuICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgJ2NsaWNrJywgeyBkYXRhOiB0aGlzLl9pdGVtLCBocmVmOiB0aGlzLmhyZWYgfSk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgaWYgKHRoaXMuX2ludmlzaWJsZSkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICByZXR1cm4gaHRtbGA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiJHtjbGFzc01hcCh7IHNrZWxldG9uOiB0aGlzLl9za2VsZXRvbiwgaW1hZ2U6IHRydWUgfSl9XCI+JHt0aGlzLl9yZW5kZXJJbWFnZSgpfTwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIj5cbiAgICAgICAgJHt0aGlzLl9lcnJvciAmJiAhdGhpcy5fc2tlbGV0b25cbiAgICAgICAgICA/IGh0bWxgPHAgY2xhc3M9XCJkZXNjcmlwdGlvbiBlcnJvclwiPiR7aTE4bignZ3YtcHJvbW90ZS5lcnJvcicpfTwvcD5gXG4gICAgICAgICAgOiBodG1sYFxuICAgICAgICAgICAgICAke3RoaXMuX2VtcHR5ICYmICF0aGlzLl9za2VsZXRvblxuICAgICAgICAgICAgICAgID8gaHRtbGA8cCBjbGFzcz1cImRlc2NyaXB0aW9uIGVtcHR5XCI+JHtpMThuKCdndi1wcm9tb3RlLmVtcHR5Jyl9PC9wPmBcbiAgICAgICAgICAgICAgICA6IGh0bWxgIDxkaXYgY2xhc3M9JHtjbGFzc01hcCh7IHNrZWxldG9uOiB0aGlzLl9za2VsZXRvbiwgdGl0bGU6IHRydWUgfSl9PlxuICAgICAgICAgICAgICAgICAgICAgIDxoMj4ke2dldFRpdGxlKHRoaXMuX2l0ZW0pfTwvaDI+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2ZXJzaW9uXCI+JHtnZXRWZXJzaW9uKHRoaXMuX2l0ZW0pfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxwXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9JHtjbGFzc01hcCh7XG4gICAgICAgICAgICAgICAgICAgICAgICBza2VsZXRvbjogdGhpcy5fc2tlbGV0b24sXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICdkZXNjcmlwdGlvbi1sYXJnZSc6IGdldERlc2NyaXB0aW9uKHRoaXMuX2l0ZW0pLnNwbGl0KCcgJykubGVuZ3RoID4gMTAsXG4gICAgICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAke3RydW5jYXRlKGdldERlc2NyaXB0aW9uKHRoaXMuX2l0ZW0pLCB0aGlzLmxpbWl0KX1cbiAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSR7Y2xhc3NNYXAoeyBza2VsZXRvbjogdGhpcy5fc2tlbGV0b24sIGluZm9zOiB0cnVlIH0pfT4ke3RoaXMuX3JlbmRlck1ldHJpY3NXaXRoUmF0aW5nKCl9PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbHNcIj4ke3RoaXMuX3JlbmRlckxhYmVscyh0cnVlKX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGd2LWJ1dHRvbiA/c2tlbGV0b249JHt0aGlzLl9za2VsZXRvbn0gLmhyZWY9XCIke3RoaXMuaHJlZn1cIiBAY2xpY2s9XCIke3RoaXMuX29uQ2xpY2t9XCJcbiAgICAgICAgICAgICAgICAgICAgICA+JHtpMThuKCdndi1wcm9tb3RlLnZpZXcnKX08L2d2LWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICA+YH1cbiAgICAgICAgICAgIGB9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5gO1xuICB9XG59XG5cbndpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmUoJ2d2LXByb21vdGUnLCBHdlByb21vdGUpO1xuIl19
@@ -13,8 +13,9 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import { css, LitElement, html } from 'lit';
17
- import { repeat } from 'lit/directives/repeat';
16
+ import { css, LitElement } from 'lit-element';
17
+ import { html } from 'lit-html';
18
+ import { repeat } from 'lit-html/directives/repeat';
18
19
  import './../atoms/gv-relative-time';
19
20
  import './gv-identity-picture';
20
21
  import './gv-rating';
@@ -22,7 +23,7 @@ import './gv-confirm';
22
23
  import { skeleton } from '../styles/skeleton';
23
24
  import { link } from '../styles/link';
24
25
  import { i18n } from '../lib/i18n';
25
- import { classMap } from 'lit/directives/class-map';
26
+ import { classMap } from 'lit-html/directives/class-map';
26
27
  import { dispatchCustomEvent } from '../lib/events';
27
28
  /**
28
29
  * List of ratings with answer form
@@ -236,4 +237,4 @@ export class GvRatingList extends LitElement {
236
237
 
237
238
  }
238
239
  window.customElements.define('gv-rating-list', GvRatingList);
239
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL21vbGVjdWxlcy9ndi1yYXRpbmctbGlzdC5qcyJdLCJuYW1lcyI6WyJjc3MiLCJMaXRFbGVtZW50IiwiaHRtbCIsInJlcGVhdCIsInNrZWxldG9uIiwibGluayIsImkxOG4iLCJjbGFzc01hcCIsImRpc3BhdGNoQ3VzdG9tRXZlbnQiLCJHdlJhdGluZ0xpc3QiLCJwcm9wZXJ0aWVzIiwicmF0aW5ncyIsInR5cGUiLCJBcnJheSIsInVzZXIiLCJPYmplY3QiLCJwZXJtaXNzaW9ucyIsInJlcXVpcmVkIiwiQm9vbGVhbiIsImF0dHJpYnV0ZSIsIl9wZXJtaXNzaW9ucyIsIl9yYXRpbmdzIiwic3R5bGVzIiwiY29uc3RydWN0b3IiLCJ1cGRhdGUiLCJkZWxldGUiLCJhZGRBbnN3ZXIiLCJkZWxldGVBbnN3ZXIiLCJ2YWx1ZSIsIlByb21pc2UiLCJyZXNvbHZlIiwidGhlbiIsIl9za2VsZXRvbiIsImNhdGNoIiwiYXNzaWduIiwicmVuZGVyIiwicmF0aW5nIiwiX3JlbmRlciIsIl9lZGl0QW5zd2VyIiwiZSIsInN0b3BQcm9wYWdhdGlvbiIsImZvckVhY2giLCJfZWRpdCIsInBlcmZvcm1VcGRhdGUiLCJfZ2V0QW5zd2VyVmFsdWUiLCJlbGVtZW50Iiwic2hhZG93Um9vdCIsInF1ZXJ5U2VsZWN0b3IiLCJfb25BbnN3ZXIiLCJhbnN3ZXIiLCJ0cmltIiwibGVuZ3RoIiwiX2hhc1ZhbGlkQW5zd2VyIiwiX29uQ2xvc2UiLCJfcmVuZGVyQW5zd2VyIiwiX3JlbmRlckFuc3dlcnMiLCJhbnN3ZXJzIiwiX2NhbkFkZEFuc3dlciIsImJpbmQiLCJfb25EZWxldGUiLCJfb25EZWxldGVBbnN3ZXIiLCJfcmVuZGVyQWN0aW9ucyIsImRhdGEiLCJwYXJlbnQiLCJfY2FuRGVsZXRlQW5zd2VyIiwiX2NhbkRlbGV0ZSIsImlkIiwiY2xhc3NlcyIsImRpc3BsYXlOYW1lIiwiYXV0aG9yIiwiZGlzcGxheV9uYW1lIiwicGljdHVyZSIsIl9saW5rcyIsImF2YXRhciIsInRpdGxlIiwiX2NhblVwZGF0ZSIsIl9vblVwZGF0ZVJhdGluZyIsIl9nZXREaXNwbGF5TmFtZSIsImRhdGUiLCJjb21tZW50IiwidGFyZ2V0IiwicmF0aW5nSWQiLCJpc0FycmF5IiwiaW5jbHVkZXMiLCJ3aW5kb3ciLCJjdXN0b21FbGVtZW50cyIsImRlZmluZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsR0FBVCxFQUFjQyxVQUFkLEVBQTBCQyxJQUExQixRQUFzQyxLQUF0QztBQUNBLFNBQVNDLE1BQVQsUUFBdUIsdUJBQXZCO0FBQ0EsT0FBTyw2QkFBUDtBQUNBLE9BQU8sdUJBQVA7QUFDQSxPQUFPLGFBQVA7QUFDQSxPQUFPLGNBQVA7QUFDQSxTQUFTQyxRQUFULFFBQXlCLG9CQUF6QjtBQUNBLFNBQVNDLElBQVQsUUFBcUIsZ0JBQXJCO0FBQ0EsU0FBU0MsSUFBVCxRQUFxQixhQUFyQjtBQUNBLFNBQVNDLFFBQVQsUUFBeUIsMEJBQXpCO0FBQ0EsU0FBU0MsbUJBQVQsUUFBb0MsZUFBcEM7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLE9BQU8sTUFBTUMsWUFBTixTQUEyQlIsVUFBM0IsQ0FBc0M7QUFDdEIsYUFBVlMsVUFBVSxHQUFHO0FBQ3RCLFdBQU87QUFDTEMsTUFBQUEsT0FBTyxFQUFFO0FBQUVDLFFBQUFBLElBQUksRUFBRUM7QUFBUixPQURKO0FBRUxDLE1BQUFBLElBQUksRUFBRTtBQUFFRixRQUFBQSxJQUFJLEVBQUVHO0FBQVIsT0FGRDtBQUdMQyxNQUFBQSxXQUFXLEVBQUU7QUFBRUosUUFBQUEsSUFBSSxFQUFF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RURvRCxFQUFBQSxlQUFlLENBQUNmLElBQUQsRUFBTztBQUNwQixRQUFJQSxJQUFJLENBQUNZLEtBQVQsRUFBZ0I7QUFDZCxhQUFPeEUsSUFBSSw4QkFBOEI0RCxJQUFJLENBQUNPLE1BQUwsQ0FBWUMsWUFBMUMsU0FBWDtBQUNEOztBQUNELFdBQU8sRUFBUDtBQUNEOztBQXRUMEM7QUF5VDdDYyxNQUFNLENBQUNDLGNBQVAsQ0FBc0JDLE1BQXRCLENBQTZCLGdCQUE3QixFQUErQzdFLFlBQS9DIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAxNSBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7IGNzcywgTGl0RWxlbWVudCwgaHRtbCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyByZXBlYXQgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9yZXBlYXQnO1xuaW1wb3J0ICcuLy4uL2F0b21zL2d2LXJlbGF0aXZlLXRpbWUnO1xuaW1wb3J0ICcuL2d2LWlkZW50aXR5LXBpY3R1cmUnO1xuaW1wb3J0ICcuL2d2LXJhdGluZyc7XG5pbXBvcnQgJy4vZ3YtY29uZmlybSc7XG5pbXBvcnQgeyBza2VsZXRvbiB9IGZyb20gJy4uL3N0eWxlcy9za2VsZXRvbic7XG5pbXBvcnQgeyBsaW5rIH0gZnJvbSAnLi4vc3R5bGVzL2xpbmsnO1xuaW1wb3J0IHsgaTE4biB9IGZyb20gJy4uL2xpYi9pMThuJztcbmltcG9ydCB7IGNsYXNzTWFwIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvY2xhc3MtbWFwJztcbmltcG9ydCB7IGRpc3BhdGNoQ3VzdG9tRXZlbnQgfSBmcm9tICcuLi9saWIvZXZlbnRzJztcblxuLyoqXG4gKiBMaXN0IG9mIHJhdGluZ3Mgd2l0aCBhbnN3ZXIgZm9ybVxuICpcbiAqICMjIERldGFpbHNcbiAqICogaGFzIEB0aGVtZSBmYWNldFxuICpcbiAqICMjIEF0dHJpYnV0ZSBgcGVybWlzc2lvbnNgIGRldGFpbHNcbiAqICogYGRlbGV0ZWAgYW5kIGB1cGRhdGVgIHByb3BlcnRpZXMgc3VwcG9ydHMgYm9vbGVhbnMgb3IgYXJyYXlzIG9mIHJhdGluZyBpZGVudGlmaWVyLlxuICogKiBgYWRkQW5zd2VyYCBhbmQgYGRlbGV0ZUFuc3dlcmAgb25seSBhY2NlcHQgYm9vbGVhbnMuXG4gKlxuICogQGZpcmVzIGd2LXJhdGluZy1saXN0OmFkZC1hbnN3ZXIgLSBXaGVuIHVzZXIgc3VibWl0IGFuc3dlclxuICogQGZpcmVzIGd2LXJhdGluZy1saXN0OmRlbGV0ZSAtIFdoZW4gdXNlciBkZWxldGUgcmF0aW5nXG4gKiBAZmlyZXMgZ3YtcmF0aW5nLWxpc3Q6ZGVsZXRlLWFuc3dlciAtIFdoZW4gdXNlciBkZWxldGUgYW5zd2VyXG4gKiBAZmlyZXMgZ3YtcmF0aW5nLWxpc3Q6dXBkYXRlIC0gV2hlbiB1c2VyIHVwZGF0ZSByYXRpbmdcbiAqXG4gKiBAYXR0ciB7UHJvbWlzZTxBcnJheT59IHJhdGluZ3MgLSByYXRpbmdzXG4gKiBAYXR0ciB7aWQsIGF2YXRhciwgZGlzcGxheV9uYW1lfSB1c2VyIC0gYSBjdXJyZW50IHVzZXJcbiAqIEBhdHRyIHtPYmplY3Q8e3VwZGF0ZSwgZGVsZXRlLCBhZGRBbnN3ZXIsIGRlbGV0ZUFuc3dlcn0+fSBwZXJtaXNzaW9ucyAtIFRoZSBwZXJtaXNzaW9uc1xuICogQGNzc3Byb3Age0NvbG9yfSBbLS1ndi1yYXRpbmctbGlzdC0tYmdjPXZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3ItbGlnaHRlc3QsICNmZmZmZmYpXSAtIEJhY2tncm91bmQgY29sb3JcbiAqIEBjc3Nwcm9wIHtDb2xvcn0gWy0tZ3YtcmF0aW5nLWxpc3QtYW5zd2VyLS1iZ2M9dmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvci1saWdodGVyLCAjZmFmYWZhKV0gLSBBbnN3ZXIgYmFja2dyb3VuZCBjb2xvclxuICogQGNzc3Byb3Age0NvbG9yfSBbLS1ndi1yYXRpbmctbGlzdC0tYmRjPXZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3IsICNmNWY1ZjUpXSAtIEJvcmRlciBjb2xvclxuICogQGNzc3Byb3Age0xlbmd0aH0gWy0tZ3YtcmF0aW5nLWxpc3QtLXM9MThweF0gLSBIZWlnaHQgYW5kIHN0YXIgd2lkdGhcbiAqL1xuXG5leHBvcnQgY2xhc3MgR3ZSYXRpbmdMaXN0IGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHN0YXRpYyBnZXQgcHJvcGVydGllcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgcmF0aW5nczogeyB0eXBlOiBBcnJheSB9LFxuICAgICAgdXNlcjogeyB0eXBlOiBPYmplY3QgfSxcbiAgICAgIHBlcm1pc3Npb25zOiB7IHR5cGU6IE9iamVjdCB9LFxuICAgICAgcmVxdWlyZWQ6IHsgdHlwZTogQm9vbGVhbiwgYXR0cmlidXRlOiAncmVxdWlyZWQnIH0sXG4gICAgICBfcGVybWlzc2lvbnM6IHsgdHlwZTogT2JqZWN0LCBhdHRyaWJ1dGU6IGZhbHNlIH0sXG4gICAgICBfcmF0aW5nczogeyB0eXBlOiBBcnJheSwgYXR0cmlidXRlOiBmYWxzZSB9LFxuICAgIH07XG4gIH1cblxuICBzdGF0aWMgZ2V0IHN0eWxlcygpIHtcbiAgICByZXR1cm4gW1xuICAgICAgc2tlbGV0b24sXG4gICAgICBsaW5rLFxuICAgICAgLy8gbGFuZ3VhZ2U9Q1NTXG4gICAgICBjc3NgXG4gICAgICAgIDpob3N0IHtcbiAgICAgICAgICAtLXM6IHZhcigtLWd2LXJhdGluZy1saXN0LS1zLCAxOHB4KTtcbiAgICAgICAgICAtLWd2LWljb24tLXM6IHZhcigtLXMpO1xuICAgICAgICAgIC0tZ3YtcmF0aW5nLS1zOiB2YXIoLS1zKTtcbiAgICAgICAgICBtYXJnaW46IDAuMnJlbTtcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICB9XG5cbiAgICAgICAgLnJhdGluZy1saXN0IHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ndi1yYXRpbmctbGlzdC0tYmdjLCB2YXIoLS1ndi10aGVtZS1uZXV0cmFsLWNvbG9yLWxpZ2h0ZXN0LCAjZmZmZmZmKSk7XG4gICAgICAgIH1cblxuICAgICAgICAucmF0aW5nLnBhcmVudCB7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWd2LXJhdGluZy1saXN0LS1iZGMsIHZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3IsICNmNWY1ZjUpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5yYXRpbmcge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmFuc3dlciAucmF0aW5nIHtcbiAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLnN1Yi10aXRsZSB7XG4gICAgICAgICAgY29sb3I6IGdyZXk7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIGd2LWNvbmZpcm0ge1xuICAgICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zdWItdGl0bGUgYS5saW5rIHtcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGd2LWlkZW50aXR5LXBpY3R1cmUge1xuICAgICAgICAgIG1hcmdpbjogMCAxcmVtO1xuICAgICAgICAgIGhlaWdodDogNjBweDtcbiAgICAgICAgICB3aWR0aDogNjBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC50aXRsZSB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC50aXRsZSBiLFxuICAgICAgICAucmF0aW5nLWNvbnRlbnQge1xuICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAubGluay1hbnN3ZXIge1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAubGluay1hbnN3ZXIgZ3YtaWNvbiB7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjJyZW07XG4gICAgICAgICAgLS1ndi1pY29uLS1zOiB2YXIoLS1zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5kZWxldGUtcmF0aW5nLFxuICAgICAgICAuZGVsZXRlLWFuc3dlcixcbiAgICAgICAgLmZha2UtaWNvbiB7XG4gICAgICAgICAgLS1ndi1pY29uLS1zOiB2YXIoLS1zKTtcbiAgICAgICAgICBtaW4td2lkdGg6IHZhcigtLXMpO1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmRlbGV0ZS1yYXRpbmcge1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuYW5zd2VyIHtcbiAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3YtcmF0aW5nLWxpc3QtYW5zd2VyLS1iZ2MsIHZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3ItbGlnaHRlciwgI2ZhZmFmYSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmFuc3dlci1mb3JtIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIH1cblxuICAgICAgICAuZGlzcGxheS1uYW1lOmFmdGVyIHtcbiAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgbWFyZ2luOiAycHg7XG4gICAgICAgIH1cblxuICAgICAgICAuYWN0aW9ucyB7XG4gICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cbiAgICAgIGAsXG4gICAgXTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5fcmF0aW5ncyA9IFtdO1xuICAgIHRoaXMuX3Blcm1pc3Npb25zID0ge1xuICAgICAgdXBkYXRlOiBmYWxzZSxcbiAgICAgIGRlbGV0ZTogZmFsc2UsXG4gICAgICBhZGRBbnN3ZXI6IGZhbHNlLFxuICAgICAgZGVsZXRlQW5zd2VyOiBmYWxzZSxcbiAgICB9O1xuICB9XG5cbiAgc2V0IHJhdGluZ3ModmFsdWUpIHtcbiAgICBQcm9taXNlLnJlc29sdmUodmFsdWUpXG4gICAgICAudGhlbigodmFsdWUpID0+IHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgdGhpcy5fc2tlbGV0b24gPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLl9yYXRpbmdzID0gdmFsdWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5fc2tlbGV0b24gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgLmNhdGNoKCgpID0+IHtcbiAgICAgICAgdGhpcy5fc2tlbGV0b24gPSBmYWxzZTtcbiAgICAgIH0pO1xuICB9XG5cbiAgc2V0IHBlcm1pc3Npb25zKHBlcm1pc3Npb25zKSB7XG4gICAgaWYgKHBlcm1pc3Npb25zICYmIHR5cGVvZiBwZXJtaXNzaW9ucyA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHRoaXMuX3Blcm1pc3Npb25zID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5fcGVybWlzc2lvbnMsIHBlcm1pc3Npb25zKTtcbiAgICB9XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgcmV0dXJuIGh0bWxgIDxkaXYgY2xhc3M9XCJyYXRpbmctbGlzdFwiPiR7cmVwZWF0KHRoaXMuX3JhdGluZ3MsIChyYXRpbmcpID0+IHRoaXMuX3JlbmRlcihyYXRpbmcpKX08L2Rpdj4gYDtcbiAgfVxuXG4gIF9lZGl0QW5zd2VyKHJhdGluZywgZSkge1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5fcmF0aW5ncy5mb3JFYWNoKChyYXRpbmcpID0+IChyYXRpbmcuX2VkaXQgPSBmYWxzZSkpO1xuICAgIHJhdGluZy5fZWRpdCA9IHRydWU7XG4gICAgdGhpcy5wZXJmb3JtVXBkYXRlKCk7XG4gIH1cblxuICBfZ2V0QW5zd2VyVmFsdWUoKSB7XG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdndi10ZXh0Jyk7XG4gICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgIHJldHVybiBlbGVtZW50LnZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBfb25BbnN3ZXIocmF0aW5nKSB7XG4gICAgY29uc3QgYW5zd2VyID0gdGhpcy5fZ2V0QW5zd2VyVmFsdWUoKTtcbiAgICBpZiAoYW5zd2VyLnRyaW0oKS5sZW5ndGggPiAwKSB7XG4gICAgICBkaXNwYXRjaEN1c3RvbUV2ZW50KHRoaXMsICdhZGQtYW5zd2VyJywgeyByYXRpbmcsIGFuc3dlciB9KTtcbiAgICB9XG4gIH1cblxuICBfaGFzVmFsaWRBbnN3ZXIoKSB7XG4gICAgY29uc3QgYW5zd2VyID0gdGhpcy5fZ2V0QW5zd2VyVmFsdWUoKTtcbiAgICByZXR1cm4gYW5zd2VyLnRyaW0oKS5sZW5ndGggPiAwO1xuICB9XG5cbiAgX29uQ2xvc2UocmF0aW5nKSB7XG4gICAgZGVsZXRlIHJhdGluZy5fZWRpdDtcbiAgICB0aGlzLnBlcmZvcm1VcGRhdGUoKTtcbiAgfVxuXG4gIF9yZW5kZXJBbnN3ZXIocmF0aW5nLCBhbnN3ZXIpIHtcbiAgICByZXR1cm4gaHRtbGA8ZGl2IGNsYXNzPVwiYW5zd2VyXCI+JHt0aGlzLl9yZW5kZXIoYW5zd2VyLCByYXRpbmcpfTwvZGl2PmA7XG4gIH1cblxuICBfcmVuZGVyQW5zd2VycyhyYXRpbmcpIHtcbiAgICByZXR1cm4gaHRtbGAgJHtyYXRpbmcuYW5zd2Vyc1xuICAgICAgPyBodG1sYCAke3RoaXMuX2NhbkFkZEFuc3dlcigpXG4gICAgICAgICAgICA/IGh0bWxgPGEgY2xhc3M9XCJsaW5rIGxpbmstYW5zd2VyXCIgQGNsaWNrPVwiJHt0aGlzLl9lZGl0QW5zd2VyLmJpbmQodGhpcywgcmF0aW5nKX1cIj5cbiAgICAgICAgICAgICAgICA8Z3YtaWNvbiBjbGFzcz1cImxpbmtcIiBzaGFwZT1cImNvbW11bmljYXRpb246Y2hhdCM1XCI+PC9ndi1pY29uPiAke2kxOG4oJ2d2LXJhdGluZy1saXN0LnJlcGx5Jyl9PC9hXG4gICAgICAgICAgICAgID5gXG4gICAgICAgICAgICA6ICcnfVxuICAgICAgICAgICR7cmF0aW5nLl9lZGl0XG4gICAgICAgICAgICA/IGh0bWxgXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFuc3dlciBhbnN3ZXItZm9ybVwiPlxuICAgICAgICAgICAgICAgICAgPGd2LXRleHQgcm93cz1cIjRcIiBsYWJlbD1cIiR7aTE4bignZ3YtcmF0aW5nLWxpc3QuYW5zd2VyTGFiZWwnKX1cIiByZXF1aXJlZCBAaW5wdXQ9XCIke3RoaXMucGVyZm9ybVVwZGF0ZX1cIj48L2d2LXRleHQ+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uc1wiPlxuICAgICAgICAgICAgICAgICAgICA8Z3YtYnV0dG9uIHByaW1hcnkgb3V0bGluZWQgQGNsaWNrPVwiJHt0aGlzLl9vbkNsb3NlLmJpbmQodGhpcywgcmF0aW5nKX1cIj4ke2kxOG4oJ2d2LXJhdGluZy1saXN0LmNhbmNlbCcpfTwvZ3YtYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8Z3YtYnV0dG9uIHByaW1hcnkgQGNsaWNrPVwiJHt0aGlzLl9vbkFuc3dlci5iaW5kKHRoaXMsIHJhdGluZyl9XCIgLmRpc2FibGVkPVwiJHshdGhpcy5faGFzVmFsaWRBbnN3ZXIoKX1cIlxuICAgICAgICAgICAgICAgICAgICAgID4ke2kxOG4oJ2d2LXJhdGluZy1saXN0LnNlbmQnKX08L2d2LWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgYFxuICAgICAgICAgICAgOiAnJ31cbiAgICAgICAgICA8ZGl2PiR7cmVwZWF0KHJhdGluZy5hbnN3ZXJzLCAoYW5zd2VyKSA9PiB0aGlzLl9yZW5kZXJBbnN3ZXIocmF0aW5nLCBhbnN3ZXIpKX08L2Rpdj5gXG4gICAgICA6ICcnfWA7XG4gIH1cblxuICBfb25EZWxldGUocmF0aW5nKSB7XG4gICAgZGlzcGF0Y2hDdXN0b21FdmVudCh0aGlzLCAnZGVsZXRlJywgeyByYXRpbmcgfSk7XG4gIH1cblxuICBfb25EZWxldGVBbnN3ZXIocmF0aW5nLCBhbnN3ZXIpIHtcbiAgICBkaXNwYXRjaEN1c3RvbUV2ZW50KHRoaXMsICdkZWxldGUtYW5zd2VyJywgeyByYXRpbmcsIGFuc3dlciB9KTtcbiAgfVxuXG4gIF9yZW5kZXJBY3Rpb25zKGRhdGEsIHBhcmVudCkge1xuICAgIGlmIChwYXJlbnQpIHtcbiAgICAgIHJldHVybiBodG1sYFxuICAgICAgICAke3RoaXMuX2NhbkRlbGV0ZUFuc3dlcigpXG4gICAgICAgICAgPyBodG1sYDxndi1jb25maXJtXG4gICAgICAgICAgICAgIGRhbmdlclxuICAgICAgICAgICAgICBpY29uPVwiaG9tZTp0cmFzaFwiXG4gICAgICAgICAgICAgIEBndi1jb25maXJtOm9rPVwiJHt0aGlzLl9vbkRlbGV0ZUFuc3dlci5iaW5kKHRoaXMsIHBhcmVudCwgZGF0YSl9XCJcbiAgICAgICAgICAgICAgbWVzc2FnZT1cIiR7aTE4bignZ3YtcmF0aW5nLWxpc3QuY29uZmlybUFuc3dlckRlbGV0ZScpfVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxndi1pY29uIHRpdGxlPVwiJHtpMThuKCdndi1yYXRpbmctbGlzdC5kZWxldGVBbnN3ZXInKX1cIiBjbGFzcz1cImxpbmsgZGVsZXRlLWFuc3dlclwiIHNoYXBlPVwiaG9tZTp0cmFzaFwiPjwvZ3YtaWNvbj5cbiAgICAgICAgICAgIDwvZ3YtY29uZmlybT5gXG4gICAgICAgICAgOiAnJ31cbiAgICAgIGA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBodG1sYFxuICAgICAgICAke3RoaXMuX2NhbkRlbGV0ZShkYXRhLmlkKVxuICAgICAgICAgID8gaHRtbGA8Z3YtY29uZmlybVxuICAgICAgICAgICAgICBkYW5nZXJcbiAgICAgICAgICAgICAgaWNvbj1cImhvbWU6dHJhc2hcIlxuICAgICAgICAgICAgICBAZ3YtY29uZmlybTpvaz1cIiR7dGhpcy5fb25EZWxldGUuYmluZCh0aGlzLCBkYXRhKX1cIlxuICAgICAgICAgICAgICBtZXNzYWdlPVwiJHtpMThuKCdndi1yYXRpbmctbGlzdC5jb25maXJtUmF0aW5nRGVsZXRlJyl9XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGd2LWljb24gdGl0bGU9XCIke2kxOG4oJ2d2LXJhdGluZy1saXN0LmRlbGV0ZVJhdGluZycpfVwiIGNsYXNzPVwibGluayBkZWxldGUtcmF0aW5nXCIgc2hhcGU9XCJob21lOnRyYXNoXCI+PC9ndi1pY29uPlxuICAgICAgICAgICAgPC9ndi1jb25maXJtPmBcbiAgICAgICAgICA6IGh0bWxgPGRpdiBjbGFzcz1cImZha2UtaWNvblwiPjwvZGl2PmB9XG4gICAgICBgO1xuICAgIH1cbiAgfVxuXG4gIF9yZW5kZXIoZGF0YSwgcGFyZW50KSB7XG4gICAgY29uc3QgY2xhc3NlcyA9IHsgcmF0aW5nOiB0cnVlLCBza2VsZXRvbjogdGhpcy5fc2tlbGV0b24sIHBhcmVudDogcGFyZW50ID09IG51bGwgfTtcbiAgICBjb25zdCBkaXNwbGF5TmFtZSA9IGRhdGEuYXV0aG9yICYmIGRhdGEuYXV0aG9yLmRpc3BsYXlfbmFtZSA/IGRhdGEuYXV0aG9yLmRpc3BsYXlfbmFtZSA6IG51bGw7XG4gICAgY29uc3QgcGljdHVyZSA9IGRhdGEuYXV0aG9yICYmIGRhdGEuYXV0aG9yLl9saW5rcyAmJiBkYXRhLmF1dGhvci5fbGlua3MuYXZhdGFyID8gZGF0YS5hdXRob3IuX2xpbmtzLmF2YXRhciA6IG51bGw7XG5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCIke2NsYXNzTWFwKGNsYXNzZXMpfVwiPlxuICAgICAgICA8Z3YtaWRlbnRpdHktcGljdHVyZSByb3VuZGVkIC5kaXNwbGF5X25hbWU9XCIke2Rpc3BsYXlOYW1lfVwiIC5waWN0dXJlPVwiJHtwaWN0dXJlfVwiPjwvZ3YtaWRlbnRpdHktcGljdHVyZT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJhdGluZy1jb250ZW50XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCI+XG4gICAgICAgICAgICA8Yj4ke2RhdGEudGl0bGUgPyBkYXRhLnRpdGxlIDogZGF0YS5hdXRob3IuZGlzcGxheV9uYW1lfTwvYj4ke3BhcmVudFxuICAgICAgICAgICAgICA/ICcnXG4gICAgICAgICAgICAgIDogaHRtbGA8Z3YtcmF0aW5nXG4gICAgICAgICAgICAgICAgICAucmVhZG9ubHk9XCIkeyF0aGlzLl9jYW5VcGRhdGUoZGF0YS5pZCl9XCJcbiAgICAgICAgICAgICAgICAgIEBpbnB1dD1cIiR7dGhpcy5fb25VcGRhdGVSYXRpbmcuYmluZCh0aGlzLCBkYXRhKX1cIlxuICAgICAgICAgICAgICAgICAgdmFsdWU9XCIke2RhdGEudmFsdWV9XCJcbiAgICAgICAgICAgICAgICA+PC9ndi1yYXRpbmc+YH0ke3RoaXMuX3JlbmRlckFjdGlvbnMoZGF0YSwgcGFyZW50KX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViLXRpdGxlXCI+JHt0aGlzLl9nZXREaXNwbGF5TmFtZShkYXRhKX08Z3YtcmVsYXRpdmUtdGltZSBkYXRldGltZT1cIiR7ZGF0YS5kYXRlfVwiIG5vRnV0dXJlPjwvZ3YtcmVsYXRpdmUtdGltZT48L2Rpdj5cbiAgICAgICAgICA8cCBjbGFzcz1cImNvbW1lbnRcIj4ke2RhdGEuY29tbWVudH08L3A+XG4gICAgICAgICAgJHtwYXJlbnQgPyAnJyA6IHRoaXMuX3JlbmRlckFuc3dlcnMoZGF0YSl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxuXG4gIF9vblVwZGF0ZVJhdGluZyhyYXRpbmcsIGUpIHtcbiAgICByYXRpbmcudmFsdWUgPSBlLnRhcmdldC52YWx1ZTtcbiAgICBkaXNwYXRjaEN1c3RvbUV2ZW50KHRoaXMsICd1cGRhdGUnLCB7IHJhdGluZyB9KTtcbiAgfVxuXG4gIF9jYW5BZGRBbnN3ZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Blcm1pc3Npb25zLmFkZEFuc3dlciA9PT0gdHJ1ZTtcbiAgfVxuXG4gIF9jYW5EZWxldGVBbnN3ZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Blcm1pc3Npb25zLmRlbGV0ZUFuc3dlciA9PT0gdHJ1ZTtcbiAgfVxuXG4gIF9jYW5VcGRhdGUocmF0aW5nSWQpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLl9wZXJtaXNzaW9ucy51cGRhdGUpKSB7XG4gICAgICByZXR1cm4gdGhpcy5fcGVybWlzc2lvbnMudXBkYXRlLmluY2x1ZGVzKHJhdGluZ0lkKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3Blcm1pc3Npb25zLnVwZGF0ZSA9PT0gdHJ1ZTtcbiAgfVxuXG4gIF9jYW5EZWxldGUocmF0aW5nSWQpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLl9wZXJtaXNzaW9ucy5kZWxldGUpKSB7XG4gICAgICByZXR1cm4gdGhpcy5fcGVybWlzc2lvbnMuZGVsZXRlLmluY2x1ZGVzKHJhdGluZ0lkKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3Blcm1pc3Npb25zLmRlbGV0ZSA9PT0gdHJ1ZTtcbiAgfVxuXG4gIF9nZXREaXNwbGF5TmFtZShkYXRhKSB7XG4gICAgaWYgKGRhdGEudGl0bGUpIHtcbiAgICAgIHJldHVybiBodG1sYDxzcGFuIGNsYXNzPVwiZGlzcGxheS1uYW1lXCI+JHtkYXRhLmF1dGhvci5kaXNwbGF5X25hbWV9PC9zcGFuPmA7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxufVxuXG53aW5kb3cuY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdndi1yYXRpbmctbGlzdCcsIEd2UmF0aW5nTGlzdCk7XG4iXX0=
240
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL21vbGVjdWxlcy9ndi1yYXRpbmctbGlzdC5qcyJdLCJuYW1lcyI6WyJjc3MiLCJMaXRFbGVtZW50IiwiaHRtbCIsInJlcGVhdCIsInNrZWxldG9uIiwibGluayIsImkxOG4iLCJjbGFzc01hcCIsImRpc3BhdGNoQ3VzdG9tRXZlbnQiLCJHdlJhdGluZ0xpc3QiLCJwcm9wZXJ0aWVzIiwicmF0aW5ncyIsInR5cGUiLCJBcnJheSIsInVzZXIiLCJPYmplY3QiLCJwZXJtaXNzaW9ucyIsInJlcXVpcmVkIiwiQm9vbGVhbiIsImF0dHJpYnV0ZSIsIl9wZXJtaXNzaW9ucyIsIl9yYXRpbmdzIiwic3R5bGVzIiwiY29uc3RydWN0b3IiLCJ1cGRhdGUiLCJkZWxldGUiLCJhZGRBbnN3ZXIiLCJkZWxldGVBbnN3ZXIiLCJ2YWx1ZSIsIlByb21pc2UiLCJyZXNvbHZlIiwidGhlbiIsIl9za2VsZXRvbiIsImNhdGNoIiwiYXNzaWduIiwicmVuZGVyIiwicmF0aW5nIiwiX3JlbmRlciIsIl9lZGl0QW5zd2VyIiwiZSIsInN0b3BQcm9wYWdhdGlvbiIsImZvckVhY2giLCJfZWRpdCIsInBlcmZvcm1VcGRhdGUiLCJfZ2V0QW5zd2VyVmFsdWUiLCJlbGVtZW50Iiwic2hhZG93Um9vdCIsInF1ZXJ5U2VsZWN0b3IiLCJfb25BbnN3ZXIiLCJhbnN3ZXIiLCJ0cmltIiwibGVuZ3RoIiwiX2hhc1ZhbGlkQW5zd2VyIiwiX29uQ2xvc2UiLCJfcmVuZGVyQW5zd2VyIiwiX3JlbmRlckFuc3dlcnMiLCJhbnN3ZXJzIiwiX2NhbkFkZEFuc3dlciIsImJpbmQiLCJfb25EZWxldGUiLCJfb25EZWxldGVBbnN3ZXIiLCJfcmVuZGVyQWN0aW9ucyIsImRhdGEiLCJwYXJlbnQiLCJfY2FuRGVsZXRlQW5zd2VyIiwiX2NhbkRlbGV0ZSIsImlkIiwiY2xhc3NlcyIsImRpc3BsYXlOYW1lIiwiYXV0aG9yIiwiZGlzcGxheV9uYW1lIiwicGljdHVyZSIsIl9saW5rcyIsImF2YXRhciIsInRpdGxlIiwiX2NhblVwZGF0ZSIsIl9vblVwZGF0ZVJhdGluZyIsIl9nZXREaXNwbGF5TmFtZSIsImRhdGUiLCJjb21tZW50IiwidGFyZ2V0IiwicmF0aW5nSWQiLCJpc0FycmF5IiwiaW5jbHVkZXMiLCJ3aW5kb3ciLCJjdXN0b21FbGVtZW50cyIsImRlZmluZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsR0FBVCxFQUFjQyxVQUFkLFFBQWdDLGFBQWhDO0FBQ0EsU0FBU0MsSUFBVCxRQUFxQixVQUFyQjtBQUNBLFNBQVNDLE1BQVQsUUFBdUIsNEJBQXZCO0FBQ0EsT0FBTyw2QkFBUDtBQUNBLE9BQU8sdUJBQVA7QUFDQSxPQUFPLGFBQVA7QUFDQSxPQUFPLGNBQVA7QUFDQSxTQUFTQyxRQUFULFFBQXlCLG9CQUF6QjtBQUNBLFNBQVNDLElBQVQsUUFBcUIsZ0JBQXJCO0FBQ0EsU0FBU0MsSUFBVCxRQUFxQixhQUFyQjtBQUNBLFNBQVNDLFFBQVQsUUFBeUIsK0JBQXpCO0FBQ0EsU0FBU0MsbUJBQVQsUUFBb0MsZUFBcEM7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLE9BQU8sTUFBTUMsWUFBTixTQUEyQlIsVUFBM0IsQ0FBc0M7QUFDdEIsYUFBVlMsVUFBVSxHQUFHO0FBQ3RCLFdBQU87QUFDTEMsTUFBQUEsT0FBTyxFQUFFO0FBQUVDLFFBQUFBLElBQUksRUFBRUM7QUFBUixPQURKO0FBRUxDLE1BQUFBLElBQUksRUFBRTtBQUFFRixRQUFBQSxJQUFJLEVBQUVHO0FBQVIsT0FGRDtBQUdMQyxNQUFBQSxXQUFXLEVBQUU7QUFBRUos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LElBQXBDO0FBQ0Q7O0FBRURvRCxFQUFBQSxlQUFlLENBQUNmLElBQUQsRUFBTztBQUNwQixRQUFJQSxJQUFJLENBQUNZLEtBQVQsRUFBZ0I7QUFDZCxhQUFPeEUsSUFBSSw4QkFBOEI0RCxJQUFJLENBQUNPLE1BQUwsQ0FBWUMsWUFBMUMsU0FBWDtBQUNEOztBQUNELFdBQU8sRUFBUDtBQUNEOztBQXRUMEM7QUF5VDdDYyxNQUFNLENBQUNDLGNBQVAsQ0FBc0JDLE1BQXRCLENBQTZCLGdCQUE3QixFQUErQzdFLFlBQS9DIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAxNSBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7IGNzcywgTGl0RWxlbWVudCB9IGZyb20gJ2xpdC1lbGVtZW50JztcbmltcG9ydCB7IGh0bWwgfSBmcm9tICdsaXQtaHRtbCc7XG5pbXBvcnQgeyByZXBlYXQgfSBmcm9tICdsaXQtaHRtbC9kaXJlY3RpdmVzL3JlcGVhdCc7XG5pbXBvcnQgJy4vLi4vYXRvbXMvZ3YtcmVsYXRpdmUtdGltZSc7XG5pbXBvcnQgJy4vZ3YtaWRlbnRpdHktcGljdHVyZSc7XG5pbXBvcnQgJy4vZ3YtcmF0aW5nJztcbmltcG9ydCAnLi9ndi1jb25maXJtJztcbmltcG9ydCB7IHNrZWxldG9uIH0gZnJvbSAnLi4vc3R5bGVzL3NrZWxldG9uJztcbmltcG9ydCB7IGxpbmsgfSBmcm9tICcuLi9zdHlsZXMvbGluayc7XG5pbXBvcnQgeyBpMThuIH0gZnJvbSAnLi4vbGliL2kxOG4nO1xuaW1wb3J0IHsgY2xhc3NNYXAgfSBmcm9tICdsaXQtaHRtbC9kaXJlY3RpdmVzL2NsYXNzLW1hcCc7XG5pbXBvcnQgeyBkaXNwYXRjaEN1c3RvbUV2ZW50IH0gZnJvbSAnLi4vbGliL2V2ZW50cyc7XG5cbi8qKlxuICogTGlzdCBvZiByYXRpbmdzIHdpdGggYW5zd2VyIGZvcm1cbiAqXG4gKiAjIyBEZXRhaWxzXG4gKiAqIGhhcyBAdGhlbWUgZmFjZXRcbiAqXG4gKiAjIyBBdHRyaWJ1dGUgYHBlcm1pc3Npb25zYCBkZXRhaWxzXG4gKiAqIGBkZWxldGVgIGFuZCBgdXBkYXRlYCBwcm9wZXJ0aWVzIHN1cHBvcnRzIGJvb2xlYW5zIG9yIGFycmF5cyBvZiByYXRpbmcgaWRlbnRpZmllci5cbiAqICogYGFkZEFuc3dlcmAgYW5kIGBkZWxldGVBbnN3ZXJgIG9ubHkgYWNjZXB0IGJvb2xlYW5zLlxuICpcbiAqIEBmaXJlcyBndi1yYXRpbmctbGlzdDphZGQtYW5zd2VyIC0gV2hlbiB1c2VyIHN1Ym1pdCBhbnN3ZXJcbiAqIEBmaXJlcyBndi1yYXRpbmctbGlzdDpkZWxldGUgLSBXaGVuIHVzZXIgZGVsZXRlIHJhdGluZ1xuICogQGZpcmVzIGd2LXJhdGluZy1saXN0OmRlbGV0ZS1hbnN3ZXIgLSBXaGVuIHVzZXIgZGVsZXRlIGFuc3dlclxuICogQGZpcmVzIGd2LXJhdGluZy1saXN0OnVwZGF0ZSAtIFdoZW4gdXNlciB1cGRhdGUgcmF0aW5nXG4gKlxuICogQGF0dHIge1Byb21pc2U8QXJyYXk+fSByYXRpbmdzIC0gcmF0aW5nc1xuICogQGF0dHIge2lkLCBhdmF0YXIsIGRpc3BsYXlfbmFtZX0gdXNlciAtIGEgY3VycmVudCB1c2VyXG4gKiBAYXR0ciB7T2JqZWN0PHt1cGRhdGUsIGRlbGV0ZSwgYWRkQW5zd2VyLCBkZWxldGVBbnN3ZXJ9Pn0gcGVybWlzc2lvbnMgLSBUaGUgcGVybWlzc2lvbnNcbiAqIEBjc3Nwcm9wIHtDb2xvcn0gWy0tZ3YtcmF0aW5nLWxpc3QtLWJnYz12YXIoLS1ndi10aGVtZS1uZXV0cmFsLWNvbG9yLWxpZ2h0ZXN0LCAjZmZmZmZmKV0gLSBCYWNrZ3JvdW5kIGNvbG9yXG4gKiBAY3NzcHJvcCB7Q29sb3J9IFstLWd2LXJhdGluZy1saXN0LWFuc3dlci0tYmdjPXZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3ItbGlnaHRlciwgI2ZhZmFmYSldIC0gQW5zd2VyIGJhY2tncm91bmQgY29sb3JcbiAqIEBjc3Nwcm9wIHtDb2xvcn0gWy0tZ3YtcmF0aW5nLWxpc3QtLWJkYz12YXIoLS1ndi10aGVtZS1uZXV0cmFsLWNvbG9yLCAjZjVmNWY1KV0gLSBCb3JkZXIgY29sb3JcbiAqIEBjc3Nwcm9wIHtMZW5ndGh9IFstLWd2LXJhdGluZy1saXN0LS1zPTE4cHhdIC0gSGVpZ2h0IGFuZCBzdGFyIHdpZHRoXG4gKi9cblxuZXhwb3J0IGNsYXNzIEd2UmF0aW5nTGlzdCBleHRlbmRzIExpdEVsZW1lbnQge1xuICBzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJhdGluZ3M6IHsgdHlwZTogQXJyYXkgfSxcbiAgICAgIHVzZXI6IHsgdHlwZTogT2JqZWN0IH0sXG4gICAgICBwZXJtaXNzaW9uczogeyB0eXBlOiBPYmplY3QgfSxcbiAgICAgIHJlcXVpcmVkOiB7IHR5cGU6IEJvb2xlYW4sIGF0dHJpYnV0ZTogJ3JlcXVpcmVkJyB9LFxuICAgICAgX3Blcm1pc3Npb25zOiB7IHR5cGU6IE9iamVjdCwgYXR0cmlidXRlOiBmYWxzZSB9LFxuICAgICAgX3JhdGluZ3M6IHsgdHlwZTogQXJyYXksIGF0dHJpYnV0ZTogZmFsc2UgfSxcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIGdldCBzdHlsZXMoKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHNrZWxldG9uLFxuICAgICAgbGluayxcbiAgICAgIC8vIGxhbmd1YWdlPUNTU1xuICAgICAgY3NzYFxuICAgICAgICA6aG9zdCB7XG4gICAgICAgICAgLS1zOiB2YXIoLS1ndi1yYXRpbmctbGlzdC0tcywgMThweCk7XG4gICAgICAgICAgLS1ndi1pY29uLS1zOiB2YXIoLS1zKTtcbiAgICAgICAgICAtLWd2LXJhdGluZy0tczogdmFyKC0tcyk7XG4gICAgICAgICAgbWFyZ2luOiAwLjJyZW07XG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5yYXRpbmctbGlzdCB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3YtcmF0aW5nLWxpc3QtLWJnYywgdmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvci1saWdodGVzdCwgI2ZmZmZmZikpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnJhdGluZy5wYXJlbnQge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ndi1yYXRpbmctbGlzdC0tYmRjLCB2YXIoLS1ndi10aGVtZS1uZXV0cmFsLWNvbG9yLCAjZjVmNWY1KSk7XG4gICAgICAgIH1cblxuICAgICAgICAucmF0aW5nIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5hbnN3ZXIgLnJhdGluZyB7XG4gICAgICAgICAgcGFkZGluZzogMXJlbSAwIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zdWItdGl0bGUge1xuICAgICAgICAgIGNvbG9yOiBncmV5O1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBndi1jb25maXJtIHtcbiAgICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAuc3ViLXRpdGxlIGEubGluayB7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBndi1pZGVudGl0eS1waWN0dXJlIHtcbiAgICAgICAgICBtYXJnaW46IDAgMXJlbTtcbiAgICAgICAgICBoZWlnaHQ6IDYwcHg7XG4gICAgICAgICAgd2lkdGg6IDYwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAudGl0bGUge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAudGl0bGUgYixcbiAgICAgICAgLnJhdGluZy1jb250ZW50IHtcbiAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgLmxpbmstYW5zd2VyIHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmxpbmstYW5zd2VyIGd2LWljb24ge1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4ycmVtO1xuICAgICAgICAgIC0tZ3YtaWNvbi0tczogdmFyKC0tcyk7XG4gICAgICAgIH1cblxuICAgICAgICAuZGVsZXRlLXJhdGluZyxcbiAgICAgICAgLmRlbGV0ZS1hbnN3ZXIsXG4gICAgICAgIC5mYWtlLWljb24ge1xuICAgICAgICAgIC0tZ3YtaWNvbi0tczogdmFyKC0tcyk7XG4gICAgICAgICAgbWluLXdpZHRoOiB2YXIoLS1zKTtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5kZWxldGUtcmF0aW5nIHtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmFuc3dlciB7XG4gICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWd2LXJhdGluZy1saXN0LWFuc3dlci0tYmdjLCB2YXIoLS1ndi10aGVtZS1uZXV0cmFsLWNvbG9yLWxpZ2h0ZXIsICNmYWZhZmEpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5hbnN3ZXItZm9ybSB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB9XG5cbiAgICAgICAgLmRpc3BsYXktbmFtZTphZnRlciB7XG4gICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgIG1hcmdpbjogMnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmFjdGlvbnMge1xuICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG4gICAgICBgLFxuICAgIF07XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuX3JhdGluZ3MgPSBbXTtcbiAgICB0aGlzLl9wZXJtaXNzaW9ucyA9IHtcbiAgICAgIHVwZGF0ZTogZmFsc2UsXG4gICAgICBkZWxldGU6IGZhbHNlLFxuICAgICAgYWRkQW5zd2VyOiBmYWxzZSxcbiAgICAgIGRlbGV0ZUFuc3dlcjogZmFsc2UsXG4gICAgfTtcbiAgfVxuXG4gIHNldCByYXRpbmdzKHZhbHVlKSB7XG4gICAgUHJvbWlzZS5yZXNvbHZlKHZhbHVlKVxuICAgICAgLnRoZW4oKHZhbHVlKSA9PiB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgIHRoaXMuX3NrZWxldG9uID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5fcmF0aW5ncyA9IHZhbHVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuX3NrZWxldG9uID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoKSA9PiB7XG4gICAgICAgIHRoaXMuX3NrZWxldG9uID0gZmFsc2U7XG4gICAgICB9KTtcbiAgfVxuXG4gIHNldCBwZXJtaXNzaW9ucyhwZXJtaXNzaW9ucykge1xuICAgIGlmIChwZXJtaXNzaW9ucyAmJiB0eXBlb2YgcGVybWlzc2lvbnMgPT09ICdvYmplY3QnKSB7XG4gICAgICB0aGlzLl9wZXJtaXNzaW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuX3Blcm1pc3Npb25zLCBwZXJtaXNzaW9ucyk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIHJldHVybiBodG1sYCA8ZGl2IGNsYXNzPVwicmF0aW5nLWxpc3RcIj4ke3JlcGVhdCh0aGlzLl9yYXRpbmdzLCAocmF0aW5nKSA9PiB0aGlzLl9yZW5kZXIocmF0aW5nKSl9PC9kaXY+IGA7XG4gIH1cblxuICBfZWRpdEFuc3dlcihyYXRpbmcsIGUpIHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuX3JhdGluZ3MuZm9yRWFjaCgocmF0aW5nKSA9PiAocmF0aW5nLl9lZGl0ID0gZmFsc2UpKTtcbiAgICByYXRpbmcuX2VkaXQgPSB0cnVlO1xuICAgIHRoaXMucGVyZm9ybVVwZGF0ZSgpO1xuICB9XG5cbiAgX2dldEFuc3dlclZhbHVlKCkge1xuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignZ3YtdGV4dCcpO1xuICAgIGlmIChlbGVtZW50KSB7XG4gICAgICByZXR1cm4gZWxlbWVudC52YWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgX29uQW5zd2VyKHJhdGluZykge1xuICAgIGNvbnN0IGFuc3dlciA9IHRoaXMuX2dldEFuc3dlclZhbHVlKCk7XG4gICAgaWYgKGFuc3dlci50cmltKCkubGVuZ3RoID4gMCkge1xuICAgICAgZGlzcGF0Y2hDdXN0b21FdmVudCh0aGlzLCAnYWRkLWFuc3dlcicsIHsgcmF0aW5nLCBhbnN3ZXIgfSk7XG4gICAgfVxuICB9XG5cbiAgX2hhc1ZhbGlkQW5zd2VyKCkge1xuICAgIGNvbnN0IGFuc3dlciA9IHRoaXMuX2dldEFuc3dlclZhbHVlKCk7XG4gICAgcmV0dXJuIGFuc3dlci50cmltKCkubGVuZ3RoID4gMDtcbiAgfVxuXG4gIF9vbkNsb3NlKHJhdGluZykge1xuICAgIGRlbGV0ZSByYXRpbmcuX2VkaXQ7XG4gICAgdGhpcy5wZXJmb3JtVXBkYXRlKCk7XG4gIH1cblxuICBfcmVuZGVyQW5zd2VyKHJhdGluZywgYW5zd2VyKSB7XG4gICAgcmV0dXJuIGh0bWxgPGRpdiBjbGFzcz1cImFuc3dlclwiPiR7dGhpcy5fcmVuZGVyKGFuc3dlciwgcmF0aW5nKX08L2Rpdj5gO1xuICB9XG5cbiAgX3JlbmRlckFuc3dlcnMocmF0aW5nKSB7XG4gICAgcmV0dXJuIGh0bWxgICR7cmF0aW5nLmFuc3dlcnNcbiAgICAgID8gaHRtbGAgJHt0aGlzLl9jYW5BZGRBbnN3ZXIoKVxuICAgICAgICAgICAgPyBodG1sYDxhIGNsYXNzPVwibGluayBsaW5rLWFuc3dlclwiIEBjbGljaz1cIiR7dGhpcy5fZWRpdEFuc3dlci5iaW5kKHRoaXMsIHJhdGluZyl9XCI+XG4gICAgICAgICAgICAgICAgPGd2LWljb24gY2xhc3M9XCJsaW5rXCIgc2hhcGU9XCJjb21tdW5pY2F0aW9uOmNoYXQjNVwiPjwvZ3YtaWNvbj4gJHtpMThuKCdndi1yYXRpbmctbGlzdC5yZXBseScpfTwvYVxuICAgICAgICAgICAgICA+YFxuICAgICAgICAgICAgOiAnJ31cbiAgICAgICAgICAke3JhdGluZy5fZWRpdFxuICAgICAgICAgICAgPyBodG1sYFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhbnN3ZXIgYW5zd2VyLWZvcm1cIj5cbiAgICAgICAgICAgICAgICAgIDxndi10ZXh0IHJvd3M9XCI0XCIgbGFiZWw9XCIke2kxOG4oJ2d2LXJhdGluZy1saXN0LmFuc3dlckxhYmVsJyl9XCIgcmVxdWlyZWQgQGlucHV0PVwiJHt0aGlzLnBlcmZvcm1VcGRhdGV9XCI+PC9ndi10ZXh0PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGd2LWJ1dHRvbiBwcmltYXJ5IG91dGxpbmVkIEBjbGljaz1cIiR7dGhpcy5fb25DbG9zZS5iaW5kKHRoaXMsIHJhdGluZyl9XCI+JHtpMThuKCdndi1yYXRpbmctbGlzdC5jYW5jZWwnKX08L2d2LWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGd2LWJ1dHRvbiBwcmltYXJ5IEBjbGljaz1cIiR7dGhpcy5fb25BbnN3ZXIuYmluZCh0aGlzLCByYXRpbmcpfVwiIC5kaXNhYmxlZD1cIiR7IXRoaXMuX2hhc1ZhbGlkQW5zd2VyKCl9XCJcbiAgICAgICAgICAgICAgICAgICAgICA+JHtpMThuKCdndi1yYXRpbmctbGlzdC5zZW5kJyl9PC9ndi1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIGBcbiAgICAgICAgICAgIDogJyd9XG4gICAgICAgICAgPGRpdj4ke3JlcGVhdChyYXRpbmcuYW5zd2VycywgKGFuc3dlcikgPT4gdGhpcy5fcmVuZGVyQW5zd2VyKHJhdGluZywgYW5zd2VyKSl9PC9kaXY+YFxuICAgICAgOiAnJ31gO1xuICB9XG5cbiAgX29uRGVsZXRlKHJhdGluZykge1xuICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgJ2RlbGV0ZScsIHsgcmF0aW5nIH0pO1xuICB9XG5cbiAgX29uRGVsZXRlQW5zd2VyKHJhdGluZywgYW5zd2VyKSB7XG4gICAgZGlzcGF0Y2hDdXN0b21FdmVudCh0aGlzLCAnZGVsZXRlLWFuc3dlcicsIHsgcmF0aW5nLCBhbnN3ZXIgfSk7XG4gIH1cblxuICBfcmVuZGVyQWN0aW9ucyhkYXRhLCBwYXJlbnQpIHtcbiAgICBpZiAocGFyZW50KSB7XG4gICAgICByZXR1cm4gaHRtbGBcbiAgICAgICAgJHt0aGlzLl9jYW5EZWxldGVBbnN3ZXIoKVxuICAgICAgICAgID8gaHRtbGA8Z3YtY29uZmlybVxuICAgICAgICAgICAgICBkYW5nZXJcbiAgICAgICAgICAgICAgaWNvbj1cImhvbWU6dHJhc2hcIlxuICAgICAgICAgICAgICBAZ3YtY29uZmlybTpvaz1cIiR7dGhpcy5fb25EZWxldGVBbnN3ZXIuYmluZCh0aGlzLCBwYXJlbnQsIGRhdGEpfVwiXG4gICAgICAgICAgICAgIG1lc3NhZ2U9XCIke2kxOG4oJ2d2LXJhdGluZy1saXN0LmNvbmZpcm1BbnN3ZXJEZWxldGUnKX1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8Z3YtaWNvbiB0aXRsZT1cIiR7aTE4bignZ3YtcmF0aW5nLWxpc3QuZGVsZXRlQW5zd2VyJyl9XCIgY2xhc3M9XCJsaW5rIGRlbGV0ZS1hbnN3ZXJcIiBzaGFwZT1cImhvbWU6dHJhc2hcIj48L2d2LWljb24+XG4gICAgICAgICAgICA8L2d2LWNvbmZpcm0+YFxuICAgICAgICAgIDogJyd9XG4gICAgICBgO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gaHRtbGBcbiAgICAgICAgJHt0aGlzLl9jYW5EZWxldGUoZGF0YS5pZClcbiAgICAgICAgICA/IGh0bWxgPGd2LWNvbmZpcm1cbiAgICAgICAgICAgICAgZGFuZ2VyXG4gICAgICAgICAgICAgIGljb249XCJob21lOnRyYXNoXCJcbiAgICAgICAgICAgICAgQGd2LWNvbmZpcm06b2s9XCIke3RoaXMuX29uRGVsZXRlLmJpbmQodGhpcywgZGF0YSl9XCJcbiAgICAgICAgICAgICAgbWVzc2FnZT1cIiR7aTE4bignZ3YtcmF0aW5nLWxpc3QuY29uZmlybVJhdGluZ0RlbGV0ZScpfVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxndi1pY29uIHRpdGxlPVwiJHtpMThuKCdndi1yYXRpbmctbGlzdC5kZWxldGVSYXRpbmcnKX1cIiBjbGFzcz1cImxpbmsgZGVsZXRlLXJhdGluZ1wiIHNoYXBlPVwiaG9tZTp0cmFzaFwiPjwvZ3YtaWNvbj5cbiAgICAgICAgICAgIDwvZ3YtY29uZmlybT5gXG4gICAgICAgICAgOiBodG1sYDxkaXYgY2xhc3M9XCJmYWtlLWljb25cIj48L2Rpdj5gfVxuICAgICAgYDtcbiAgICB9XG4gIH1cblxuICBfcmVuZGVyKGRhdGEsIHBhcmVudCkge1xuICAgIGNvbnN0IGNsYXNzZXMgPSB7IHJhdGluZzogdHJ1ZSwgc2tlbGV0b246IHRoaXMuX3NrZWxldG9uLCBwYXJlbnQ6IHBhcmVudCA9PSBudWxsIH07XG4gICAgY29uc3QgZGlzcGxheU5hbWUgPSBkYXRhLmF1dGhvciAmJiBkYXRhLmF1dGhvci5kaXNwbGF5X25hbWUgPyBkYXRhLmF1dGhvci5kaXNwbGF5X25hbWUgOiBudWxsO1xuICAgIGNvbnN0IHBpY3R1cmUgPSBkYXRhLmF1dGhvciAmJiBkYXRhLmF1dGhvci5fbGlua3MgJiYgZGF0YS5hdXRob3IuX2xpbmtzLmF2YXRhciA/IGRhdGEuYXV0aG9yLl9saW5rcy5hdmF0YXIgOiBudWxsO1xuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwiJHtjbGFzc01hcChjbGFzc2VzKX1cIj5cbiAgICAgICAgPGd2LWlkZW50aXR5LXBpY3R1cmUgcm91bmRlZCAuZGlzcGxheV9uYW1lPVwiJHtkaXNwbGF5TmFtZX1cIiAucGljdHVyZT1cIiR7cGljdHVyZX1cIj48L2d2LWlkZW50aXR5LXBpY3R1cmU+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyYXRpbmctY29udGVudFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPlxuICAgICAgICAgICAgPGI+JHtkYXRhLnRpdGxlID8gZGF0YS50aXRsZSA6IGRhdGEuYXV0aG9yLmRpc3BsYXlfbmFtZX08L2I+JHtwYXJlbnRcbiAgICAgICAgICAgICAgPyAnJ1xuICAgICAgICAgICAgICA6IGh0bWxgPGd2LXJhdGluZ1xuICAgICAgICAgICAgICAgICAgLnJlYWRvbmx5PVwiJHshdGhpcy5fY2FuVXBkYXRlKGRhdGEuaWQpfVwiXG4gICAgICAgICAgICAgICAgICBAaW5wdXQ9XCIke3RoaXMuX29uVXBkYXRlUmF0aW5nLmJpbmQodGhpcywgZGF0YSl9XCJcbiAgICAgICAgICAgICAgICAgIHZhbHVlPVwiJHtkYXRhLnZhbHVlfVwiXG4gICAgICAgICAgICAgICAgPjwvZ3YtcmF0aW5nPmB9JHt0aGlzLl9yZW5kZXJBY3Rpb25zKGRhdGEsIHBhcmVudCl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN1Yi10aXRsZVwiPiR7dGhpcy5fZ2V0RGlzcGxheU5hbWUoZGF0YSl9PGd2LXJlbGF0aXZlLXRpbWUgZGF0ZXRpbWU9XCIke2RhdGEuZGF0ZX1cIiBub0Z1dHVyZT48L2d2LXJlbGF0aXZlLXRpbWU+PC9kaXY+XG4gICAgICAgICAgPHAgY2xhc3M9XCJjb21tZW50XCI+JHtkYXRhLmNvbW1lbnR9PC9wPlxuICAgICAgICAgICR7cGFyZW50ID8gJycgOiB0aGlzLl9yZW5kZXJBbnN3ZXJzKGRhdGEpfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cblxuICBfb25VcGRhdGVSYXRpbmcocmF0aW5nLCBlKSB7XG4gICAgcmF0aW5nLnZhbHVlID0gZS50YXJnZXQudmFsdWU7XG4gICAgZGlzcGF0Y2hDdXN0b21FdmVudCh0aGlzLCAndXBkYXRlJywgeyByYXRpbmcgfSk7XG4gIH1cblxuICBfY2FuQWRkQW5zd2VyKCkge1xuICAgIHJldHVybiB0aGlzLl9wZXJtaXNzaW9ucy5hZGRBbnN3ZXIgPT09IHRydWU7XG4gIH1cblxuICBfY2FuRGVsZXRlQW5zd2VyKCkge1xuICAgIHJldHVybiB0aGlzLl9wZXJtaXNzaW9ucy5kZWxldGVBbnN3ZXIgPT09IHRydWU7XG4gIH1cblxuICBfY2FuVXBkYXRlKHJhdGluZ0lkKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5fcGVybWlzc2lvbnMudXBkYXRlKSkge1xuICAgICAgcmV0dXJuIHRoaXMuX3Blcm1pc3Npb25zLnVwZGF0ZS5pbmNsdWRlcyhyYXRpbmdJZCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9wZXJtaXNzaW9ucy51cGRhdGUgPT09IHRydWU7XG4gIH1cblxuICBfY2FuRGVsZXRlKHJhdGluZ0lkKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5fcGVybWlzc2lvbnMuZGVsZXRlKSkge1xuICAgICAgcmV0dXJuIHRoaXMuX3Blcm1pc3Npb25zLmRlbGV0ZS5pbmNsdWRlcyhyYXRpbmdJZCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9wZXJtaXNzaW9ucy5kZWxldGUgPT09IHRydWU7XG4gIH1cblxuICBfZ2V0RGlzcGxheU5hbWUoZGF0YSkge1xuICAgIGlmIChkYXRhLnRpdGxlKSB7XG4gICAgICByZXR1cm4gaHRtbGA8c3BhbiBjbGFzcz1cImRpc3BsYXktbmFtZVwiPiR7ZGF0YS5hdXRob3IuZGlzcGxheV9uYW1lfTwvc3Bhbj5gO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cbn1cblxud2luZG93LmN1c3RvbUVsZW1lbnRzLmRlZmluZSgnZ3YtcmF0aW5nLWxpc3QnLCBHdlJhdGluZ0xpc3QpO1xuIl19
@@ -13,11 +13,11 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import { css, LitElement, html } from 'lit';
17
- import { repeat } from 'lit/directives/repeat';
16
+ import { css, LitElement, html } from 'lit-element';
17
+ import { repeat } from 'lit-html/directives/repeat';
18
18
  import '../atoms/gv-icon';
19
19
  import { skeleton } from '../styles/skeleton';
20
- import { classMap } from 'lit/directives/class-map';
20
+ import { classMap } from 'lit-html/directives/class-map';
21
21
  import { i18n } from '../lib/i18n';
22
22
  const MAX_RATE = 5;
23
23
  /**
@@ -197,4 +197,4 @@ export class GvRating extends LitElement {
197
197
 
198
198
  }
199
199
  window.customElements.define('gv-rating', GvRating);
200
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL21vbGVjdWxlcy9ndi1yYXRpbmcuanMiXSwibmFtZXMiOlsiY3NzIiwiTGl0RWxlbWVudCIsImh0bWwiLCJyZXBlYXQiLCJza2VsZXRvbiIsImNsYXNzTWFwIiwiaTE4biIsIk1BWF9SQVRFIiwiR3ZSYXRpbmciLCJwcm9wZXJ0aWVzIiwidmFsdWUiLCJ0eXBlIiwiTnVtYmVyIiwicmVmbGVjdCIsImNvdW50IiwiU3RyaW5nIiwiQm9vbGVhbiIsInJlYWRvbmx5IiwiX2NhbmRpZGF0ZSIsImF0dHJpYnV0ZSIsIndpdGhEZXNjcmlwdGlvbiIsInN0eWxlcyIsImNvbnN0cnVjdG9yIiwiaXNTZWxlY3RlZCIsIl9nZXRUaXRsZSIsIl9nZXRBdmVyYWdlIiwiX29uTW91c2VFbnRlciIsImluZGV4IiwiZGVzY3JpcHRpb24iLCJfb25Nb3VzZU91dCIsIl9vbkNsaWNrIiwiZGlzcGF0Y2hFdmVudCIsIkV2ZW50IiwiYnViYmxlcyIsImNhbmNlbGFibGUiLCJfdmFsdWUiLCJwYXJzZUZsb2F0IiwiX3JlbmRlclN0YXIiLCJzdGFyIiwiYmluZCIsInJlbmRlciIsImF2ZXJhZ2UiLCJ0cnVuYyIsInN0YXJzIiwicHVzaCIsImVkaXQiLCJjb250ZW50IiwicmF0ZSIsIl9nZXRDb3VudFRpdGxlIiwiZmlyc3RVcGRhdGVkIiwic2hhZG93Um9vdCIsInF1ZXJ5U2VsZWN0b3IiLCJhZGRFdmVudExpc3RlbmVyIiwid2luZG93IiwiY3VzdG9tRWxlbWVudHMiLCJkZWZpbmUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBLFNBQVNBLEdBQVQsRUFBY0MsVUFBZCxFQUEwQkMsSUFBMUIsUUFBc0MsS0FBdEM7QUFDQSxTQUFTQyxNQUFULFFBQXVCLHVCQUF2QjtBQUNBLE9BQU8sa0JBQVA7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QVYsRUFBb0I7QUFDbEIsV0FBS2lDLFVBQUwsQ0FBZ0JDLGFBQWhCLENBQThCLE9BQTlCLEVBQXVDQyxnQkFBdkMsQ0FBd0QsVUFBeEQsRUFBb0UsS0FBS3ZCLFdBQUwsQ0FBaUJVLElBQWpCLENBQXNCLElBQXRCLENBQXBFO0FBQ0Q7QUFDRjs7QUFFRFMsRUFBQUEsY0FBYyxHQUFHO0FBQ2YsUUFBSSxLQUFLbEMsS0FBVCxFQUFnQjtBQUNkLFVBQUksS0FBS0EsS0FBTCxHQUFhLENBQWpCLEVBQW9CO0FBQ2xCLGVBQU9SLElBQUksQ0FBQyxpQkFBRCxDQUFYO0FBQ0Q7O0FBQ0QsYUFBT0EsSUFBSSxDQUFDLGdCQUFELENBQVg7QUFDRDs7QUFDRCxXQUFPLEVBQVA7QUFDRDs7QUFqTnNDO0FBb056QytDLE1BQU0sQ0FBQ0MsY0FBUCxDQUFzQkMsTUFBdEIsQ0FBNkIsV0FBN0IsRUFBMEMvQyxRQUExQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IGNzcywgTGl0RWxlbWVudCwgaHRtbCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyByZXBlYXQgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9yZXBlYXQnO1xuaW1wb3J0ICcuLi9hdG9tcy9ndi1pY29uJztcbmltcG9ydCB7IHNrZWxldG9uIH0gZnJvbSAnLi4vc3R5bGVzL3NrZWxldG9uJztcbmltcG9ydCB7IGNsYXNzTWFwIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvY2xhc3MtbWFwJztcbmltcG9ydCB7IGkxOG4gfSBmcm9tICcuLi9saWIvaTE4bic7XG5cbmNvbnN0IE1BWF9SQVRFID0gNTtcblxuLyoqXG4gKiBSYXRpbmcgY29tcG9uZW50XG4gKlxuICogIyMgRGV0YWlsc1xuICogKiBoYXMgQHRoZW1lIGZhY2V0XG4gKlxuICogQGF0dHIge0xlbmd0aH0gdmFsdWUgLSBhdmVyYWdlIG9mIHJhdGluZ3MgYmV0d2VlbiAxIGFuZCA1XG4gKiBAYXR0ciB7U3RyaW5nfSBjb3VudCAtIHRvdGFsIGNvdW50IGZvciB0aGUgYXZlcmFnZVxuICogQGF0dHIge0Jvb2xlYW59IHNrZWxldG9uIC0gc2tlbGV0b24gbW9kZVxuICogQGF0dHIge0Jvb2xlYW59IHJlYWRvbmx5IC0gcmVhZG9ubHkgbW9kZVxuICogQGF0dHIge0Jvb2xlYW59IHdpdGgtZGVzY3JpcHRpb24gLSBpZiB0cnVlLCBzaG93IHJhdGUgZGVzY3JpcHRpb24gb24gaG92ZXJcbiAqXG4gKiBAY3NzcHJvcCB7Q29sb3J9IFstLWd2LXJhdGluZy0tYz12YXIoLS1ndi10aGVtZS1jb2xvciwgIzVhNzY4NCldIC0gQ29sb3JcbiAqIEBjc3Nwcm9wIHtMZW5ndGh9IFstLWd2LXJhdGluZy0tcz0xM3B4XSAtIFNpemVcbiAqL1xuZXhwb3J0IGNsYXNzIEd2UmF0aW5nIGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHN0YXRpYyBnZXQgcHJvcGVydGllcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdmFsdWU6IHsgdHlwZTogTnVtYmVyLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgICBjb3VudDogeyB0eXBlOiBTdHJpbmcgfSxcbiAgICAgIHNrZWxldG9uOiB7IHR5cGU6IEJvb2xlYW4gfSxcbiAgICAgIHJlYWRvbmx5OiB7IHR5cGU6IEJvb2xlYW4gfSxcbiAgICAgIF9jYW5kaWRhdGU6IHsgdHlwZTogTnVtYmVyLCBhdHRyaWJ1dGU6IGZhbHNlIH0sXG4gICAgICB3aXRoRGVzY3JpcHRpb246IHsgdHlwZTogQm9vbGVhbiwgYXR0cmlidXRlOiAnd2l0aC1kZXNjcmlwdGlvbicgfSxcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIGdldCBzdHlsZXMoKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC8vIGxhbmd1YWdlPUNTU1xuICAgICAgY3NzYFxuICAgICAgICA6aG9zdCB7XG4gICAgICAgICAgLS1ndi1pY29uLS1jOiB2YXIoLS1ndi1yYXRpbmctLWMsIHZhcigtLWd2LXRoZW1lLWNvbG9yLCAjNWE3Njg0KSk7XG4gICAgICAgICAgLS1zaXplOiB2YXIoLS1ndi1yYXRpbmctLXMsIDEzcHgpO1xuICAgICAgICAgIC0tZ3YtaWNvbi0tczogdmFyKC0tc2l6ZSk7XG5cbiAgICAgICAgICBmb250LXNpemU6IHZhcigtLWd2LXRoZW1lLWZvbnQtc2l6ZS1tLCAxNHB4KTtcbiAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgIH1cblxuICAgICAgICAuY29udGVudCxcbiAgICAgICAgLnJhdGUge1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtZXZlbmx5O1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5pbmZvLXRpdGxlIHtcbiAgICAgICAgICBmb250LXNpemU6IHZhcigtLWd2LXRoZW1lLWZvbnQtc2l6ZS1tLCAxNHB4KTtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAgICAgbWluLXdpZHRoOiAzNXB4O1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5pbmZvLXN1YnRpdGxlIHtcbiAgICAgICAgICBmb250LXNpemU6IHZhcigtLWd2LXRoZW1lLWZvbnQtc2l6ZS14cywgMTBweCk7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDEwcHg7XG4gICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5pY29uIHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKHZhcigtLXNpemUpIC8gNCk7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5lZGl0IHtcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAuZWRpdCBndi1pY29uOmhvdmVyIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTAuNXB4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGd2LWlucHV0IHtcbiAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgLmljb24ge1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDMwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAuZGVzY3JpcHRpb24ge1xuICAgICAgICAgIG1pbi13aWR0aDogMTAwcHg7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IGNhbGModmFyKC0tc2l6ZSkgKyA0cHgpO1xuICAgICAgICAgIG1hcmdpbjogYXV0byA0cHg7XG4gICAgICAgIH1cbiAgICAgIGAsXG4gICAgICBza2VsZXRvbixcbiAgICBdO1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnZhbHVlID0gMDtcbiAgICB0aGlzLmNvdW50ID0gMDtcbiAgICB0aGlzLnJlYWRvbmx5ID0gZmFsc2U7XG4gICAgdGhpcy5fY2FuZGlkYXRlID0gLTE7XG4gICAgdGhpcy5pc1NlbGVjdGVkID0gZmFsc2U7XG4gIH1cblxuICBfZ2V0VGl0bGUoKSB7XG4gICAgcmV0dXJuIGAke3RoaXMuX2dldEF2ZXJhZ2UoKX0vJHtNQVhfUkFURX1gO1xuICB9XG5cbiAgX29uTW91c2VFbnRlcihpbmRleCkge1xuICAgIHRoaXMuX2NhbmRpZGF0ZSA9IGluZGV4ICsgMTtcbiAgICBpZiAodGhpcy53aXRoRGVzY3JpcHRpb24pIHtcbiAgICAgIHN3aXRjaCAodGhpcy5fY2FuZGlkYXRlKSB7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICB0aGlzLmRlc2NyaXB0aW9uID0gaTE4bignZ3YtcmF0aW5nLmRlc2NyaXB0aW9uLTEnKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgIHRoaXMuZGVzY3JpcHRpb24gPSBpMThuKCdndi1yYXRpbmcuZGVzY3JpcHRpb24tMicpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgdGhpcy5kZXNjcmlwdGlvbiA9IGkxOG4oJ2d2LXJhdGluZy5kZXNjcmlwdGlvbi0zJyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNDpcbiAgICAgICAgICB0aGlzLmRlc2NyaXB0aW9uID0gaTE4bignZ3YtcmF0aW5nLmRlc2NyaXB0aW9uLTQnKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA1OlxuICAgICAgICAgIHRoaXMuZGVzY3JpcHRpb24gPSBpMThuKCdndi1yYXRpbmcuZGVzY3JpcHRpb24tNScpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIF9vbk1vdXNlT3V0KCkge1xuICAgIHRoaXMuX2NhbmRpZGF0ZSA9IC0xO1xuICAgIGlmICh0aGlzLndpdGhEZXNjcmlwdGlvbiAmJiAhdGhpcy5pc1NlbGVjdGVkKSB7XG4gICAgICB0aGlzLmRlc2NyaXB0aW9uID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBfb25DbGljayhpbmRleCkge1xuICAgIHRoaXMuX2NhbmRpZGF0ZSA9IC0xO1xuICAgIHRoaXMuaXNTZWxlY3RlZCA9IHRydWU7XG4gICAgdGhpcy52YWx1ZSA9IGluZGV4ICsgMTtcbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdpbnB1dCcpLCB7IGJ1YmJsZXM6IHRydWUsIGNhbmNlbGFibGU6IHRydWUgfSk7XG4gIH1cblxuICBfZ2V0QXZlcmFnZSgpIHtcbiAgICBjb25zdCBfdmFsdWUgPSBwYXJzZUZsb2F0KHRoaXMudmFsdWUpO1xuICAgIGlmIChfdmFsdWUgPj0gMCAmJiBfdmFsdWUgPD0gTUFYX1JBVEUpIHtcbiAgICAgIHJldHVybiBfdmFsdWU7XG4gICAgfVxuICAgIHJldHVybiAwO1xuICB9XG5cbiAgX3JlbmRlclN0YXIoc3RhciwgaW5kZXgpIHtcbiAgICBpZiAodGhpcy5yZWFkb25seSkge1xuICAgICAgcmV0dXJuIGh0bWxgPGd2LWljb24gc2hhcGU9XCJnZW5lcmFsOiR7c3Rhcn1cIj48L2d2LWljb24+YDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGh0bWxgPGd2LWljb25cbiAgICAgICAgQG1vdXNlZW50ZXI9JHt0aGlzLl9vbk1vdXNlRW50ZXIuYmluZCh0aGlzLCBpbmRleCl9XG4gICAgICAgIEBjbGljaz0ke3RoaXMuX29uQ2xpY2suYmluZCh0aGlzLCBpbmRleCl9XG4gICAgICAgIHNoYXBlPVwiZ2VuZXJhbDoke3N0YXJ9XCJcbiAgICAgID48L2d2LWljb24+YDtcbiAgICB9XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgYXZlcmFnZSA9IHRoaXMuX2dldEF2ZXJhZ2UoKTtcbiAgICBsZXQgdHJ1bmMgPSBhdmVyYWdlICogMTtcblxuICAgIGlmICghdGhpcy5yZWFkb25seSkge1xuICAgICAgdHJ1bmMgPSB0aGlzLl9jYW5kaWRhdGUgPiAtMSA/IHRoaXMuX2NhbmRpZGF0ZSA6IGF2ZXJhZ2U7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RhcnMgPSBbXTtcbiAgICBmb3IgKGxldCBzdGFyID0gMTsgc3RhciA8PSBNQVhfUkFURTsgc3RhciArPSAxKSB7XG4gICAgICBpZiAodHJ1bmMgPj0gc3Rhcikge1xuICAgICAgICBzdGFycy5wdXNoKCdzdGFyJyk7XG4gICAgICB9IGVsc2UgaWYgKHRydW5jID49IHN0YXIgLSAwLjcpIHtcbiAgICAgICAgc3RhcnMucHVzaCgnaGFsZi1zdGFyJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdGFycy5wdXNoKCduby1zdGFyJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwiJHtjbGFzc01hcCh7IHNrZWxldG9uOiB0aGlzLnNrZWxldG9uLCBlZGl0OiAhdGhpcy5yZWFkb25seSwgY29udGVudDogdHJ1ZSB9KX1cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIiR7Y2xhc3NNYXAoeyBjb250ZW50OiB0cnVlIH0pfVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCIke2NsYXNzTWFwKHsgcmF0ZTogdHJ1ZSB9KX1cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpY29uXCIgdGl0bGU9XCIke3RoaXMuX2dldFRpdGxlKCl9XCI+XG4gICAgICAgICAgICAgICR7dGhpcy53aXRoRGVzY3JpcHRpb24gPyBodG1sYDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvblwiPiR7dGhpcy5kZXNjcmlwdGlvbn08L2Rpdj5gIDogJyd9XG4gICAgICAgICAgICAgICR7cmVwZWF0KFxuICAgICAgICAgICAgICAgIHN0YXJzLFxuICAgICAgICAgICAgICAgIChzdGFyKSA9PiBzdGFyLFxuICAgICAgICAgICAgICAgIChzdGFyLCBpbmRleCkgPT4gaHRtbGAgJHt0aGlzLl9yZW5kZXJTdGFyKHN0YXIsIGluZGV4KX0gYCxcbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgJHt0aGlzLmNvdW50XG4gICAgICAgICAgICAgID8gaHRtbGA8ZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImluZm8tdGl0bGVcIj4ke3RoaXMuY291bnQgfHwgJyd9PC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5mby1zdWJ0aXRsZVwiPiR7dGhpcy5fZ2V0Q291bnRUaXRsZSgpfTwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PmBcbiAgICAgICAgICAgICAgOiAnJ31cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgZmlyc3RVcGRhdGVkKCkge1xuICAgIGlmICghdGhpcy5yZWFkb25seSkge1xuICAgICAgdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy5lZGl0JykuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VvdXQnLCB0aGlzLl9vbk1vdXNlT3V0LmJpbmQodGhpcykpO1xuICAgIH1cbiAgfVxuXG4gIF9nZXRDb3VudFRpdGxlKCkge1xuICAgIGlmICh0aGlzLmNvdW50KSB7XG4gICAgICBpZiAodGhpcy5jb3VudCA+IDEpIHtcbiAgICAgICAgcmV0dXJuIGkxOG4oJ2d2LXJhdGluZy5ub3RlcycpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGkxOG4oJ2d2LXJhdGluZy5ub3RlJyk7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxufVxuXG53aW5kb3cuY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdndi1yYXRpbmcnLCBHdlJhdGluZyk7XG4iXX0=
200
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL21vbGVjdWxlcy9ndi1yYXRpbmcuanMiXSwibmFtZXMiOlsiY3NzIiwiTGl0RWxlbWVudCIsImh0bWwiLCJyZXBlYXQiLCJza2VsZXRvbiIsImNsYXNzTWFwIiwiaTE4biIsIk1BWF9SQVRFIiwiR3ZSYXRpbmciLCJwcm9wZXJ0aWVzIiwidmFsdWUiLCJ0eXBlIiwiTnVtYmVyIiwicmVmbGVjdCIsImNvdW50IiwiU3RyaW5nIiwiQm9vbGVhbiIsInJlYWRvbmx5IiwiX2NhbmRpZGF0ZSIsImF0dHJpYnV0ZSIsIndpdGhEZXNjcmlwdGlvbiIsInN0eWxlcyIsImNvbnN0cnVjdG9yIiwiaXNTZWxlY3RlZCIsIl9nZXRUaXRsZSIsIl9nZXRBdmVyYWdlIiwiX29uTW91c2VFbnRlciIsImluZGV4IiwiZGVzY3JpcHRpb24iLCJfb25Nb3VzZU91dCIsIl9vbkNsaWNrIiwiZGlzcGF0Y2hFdmVudCIsIkV2ZW50IiwiYnViYmxlcyIsImNhbmNlbGFibGUiLCJfdmFsdWUiLCJwYXJzZUZsb2F0IiwiX3JlbmRlclN0YXIiLCJzdGFyIiwiYmluZCIsInJlbmRlciIsImF2ZXJhZ2UiLCJ0cnVuYyIsInN0YXJzIiwicHVzaCIsImVkaXQiLCJjb250ZW50IiwicmF0ZSIsIl9nZXRDb3VudFRpdGxlIiwiZmlyc3RVcGRhdGVkIiwic2hhZG93Um9vdCIsInF1ZXJ5U2VsZWN0b3IiLCJhZGRFdmVudExpc3RlbmVyIiwid2luZG93IiwiY3VzdG9tRWxlbWVudHMiLCJkZWZpbmUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBLFNBQVNBLEdBQVQsRUFBY0MsVUFBZCxFQUEwQkMsSUFBMUIsUUFBc0MsYUFBdEM7QUFDQSxTQUFTQyxNQUFULFFBQXVCLDRCQUF2QjtBQUNBLE9BQU8sa0JBQVA7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QVYsRUFBb0I7QUFDbEIsV0FBS2lDLFVBQUwsQ0FBZ0JDLGFBQWhCLENBQThCLE9BQTlCLEVBQXVDQyxnQkFBdkMsQ0FBd0QsVUFBeEQsRUFBb0UsS0FBS3ZCLFdBQUwsQ0FBaUJVLElBQWpCLENBQXNCLElBQXRCLENBQXBFO0FBQ0Q7QUFDRjs7QUFFRFMsRUFBQUEsY0FBYyxHQUFHO0FBQ2YsUUFBSSxLQUFLbEMsS0FBVCxFQUFnQjtBQUNkLFVBQUksS0FBS0EsS0FBTCxHQUFhLENBQWpCLEVBQW9CO0FBQ2xCLGVBQU9SLElBQUksQ0FBQyxpQkFBRCxDQUFYO0FBQ0Q7O0FBQ0QsYUFBT0EsSUFBSSxDQUFDLGdCQUFELENBQVg7QUFDRDs7QUFDRCxXQUFPLEVBQVA7QUFDRDs7QUFqTnNDO0FBb056QytDLE1BQU0sQ0FBQ0MsY0FBUCxDQUFzQkMsTUFBdEIsQ0FBNkIsV0FBN0IsRUFBMEMvQyxRQUExQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IGNzcywgTGl0RWxlbWVudCwgaHRtbCB9IGZyb20gJ2xpdC1lbGVtZW50JztcbmltcG9ydCB7IHJlcGVhdCB9IGZyb20gJ2xpdC1odG1sL2RpcmVjdGl2ZXMvcmVwZWF0JztcbmltcG9ydCAnLi4vYXRvbXMvZ3YtaWNvbic7XG5pbXBvcnQgeyBza2VsZXRvbiB9IGZyb20gJy4uL3N0eWxlcy9za2VsZXRvbic7XG5pbXBvcnQgeyBjbGFzc01hcCB9IGZyb20gJ2xpdC1odG1sL2RpcmVjdGl2ZXMvY2xhc3MtbWFwJztcbmltcG9ydCB7IGkxOG4gfSBmcm9tICcuLi9saWIvaTE4bic7XG5cbmNvbnN0IE1BWF9SQVRFID0gNTtcblxuLyoqXG4gKiBSYXRpbmcgY29tcG9uZW50XG4gKlxuICogIyMgRGV0YWlsc1xuICogKiBoYXMgQHRoZW1lIGZhY2V0XG4gKlxuICogQGF0dHIge0xlbmd0aH0gdmFsdWUgLSBhdmVyYWdlIG9mIHJhdGluZ3MgYmV0d2VlbiAxIGFuZCA1XG4gKiBAYXR0ciB7U3RyaW5nfSBjb3VudCAtIHRvdGFsIGNvdW50IGZvciB0aGUgYXZlcmFnZVxuICogQGF0dHIge0Jvb2xlYW59IHNrZWxldG9uIC0gc2tlbGV0b24gbW9kZVxuICogQGF0dHIge0Jvb2xlYW59IHJlYWRvbmx5IC0gcmVhZG9ubHkgbW9kZVxuICogQGF0dHIge0Jvb2xlYW59IHdpdGgtZGVzY3JpcHRpb24gLSBpZiB0cnVlLCBzaG93IHJhdGUgZGVzY3JpcHRpb24gb24gaG92ZXJcbiAqXG4gKiBAY3NzcHJvcCB7Q29sb3J9IFstLWd2LXJhdGluZy0tYz12YXIoLS1ndi10aGVtZS1jb2xvciwgIzVhNzY4NCldIC0gQ29sb3JcbiAqIEBjc3Nwcm9wIHtMZW5ndGh9IFstLWd2LXJhdGluZy0tcz0xM3B4XSAtIFNpemVcbiAqL1xuZXhwb3J0IGNsYXNzIEd2UmF0aW5nIGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHN0YXRpYyBnZXQgcHJvcGVydGllcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdmFsdWU6IHsgdHlwZTogTnVtYmVyLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgICBjb3VudDogeyB0eXBlOiBTdHJpbmcgfSxcbiAgICAgIHNrZWxldG9uOiB7IHR5cGU6IEJvb2xlYW4gfSxcbiAgICAgIHJlYWRvbmx5OiB7IHR5cGU6IEJvb2xlYW4gfSxcbiAgICAgIF9jYW5kaWRhdGU6IHsgdHlwZTogTnVtYmVyLCBhdHRyaWJ1dGU6IGZhbHNlIH0sXG4gICAgICB3aXRoRGVzY3JpcHRpb246IHsgdHlwZTogQm9vbGVhbiwgYXR0cmlidXRlOiAnd2l0aC1kZXNjcmlwdGlvbicgfSxcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIGdldCBzdHlsZXMoKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC8vIGxhbmd1YWdlPUNTU1xuICAgICAgY3NzYFxuICAgICAgICA6aG9zdCB7XG4gICAgICAgICAgLS1ndi1pY29uLS1jOiB2YXIoLS1ndi1yYXRpbmctLWMsIHZhcigtLWd2LXRoZW1lLWNvbG9yLCAjNWE3Njg0KSk7XG4gICAgICAgICAgLS1zaXplOiB2YXIoLS1ndi1yYXRpbmctLXMsIDEzcHgpO1xuICAgICAgICAgIC0tZ3YtaWNvbi0tczogdmFyKC0tc2l6ZSk7XG5cbiAgICAgICAgICBmb250LXNpemU6IHZhcigtLWd2LXRoZW1lLWZvbnQtc2l6ZS1tLCAxNHB4KTtcbiAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgIH1cblxuICAgICAgICAuY29udGVudCxcbiAgICAgICAgLnJhdGUge1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtZXZlbmx5O1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5pbmZvLXRpdGxlIHtcbiAgICAgICAgICBmb250LXNpemU6IHZhcigtLWd2LXRoZW1lLWZvbnQtc2l6ZS1tLCAxNHB4KTtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAgICAgbWluLXdpZHRoOiAzNXB4O1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5pbmZvLXN1YnRpdGxlIHtcbiAgICAgICAgICBmb250LXNpemU6IHZhcigtLWd2LXRoZW1lLWZvbnQtc2l6ZS14cywgMTBweCk7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDEwcHg7XG4gICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5pY29uIHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKHZhcigtLXNpemUpIC8gNCk7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5lZGl0IHtcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAuZWRpdCBndi1pY29uOmhvdmVyIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTAuNXB4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGd2LWlucHV0IHtcbiAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgLmljb24ge1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDMwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAuZGVzY3JpcHRpb24ge1xuICAgICAgICAgIG1pbi13aWR0aDogMTAwcHg7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IGNhbGModmFyKC0tc2l6ZSkgKyA0cHgpO1xuICAgICAgICAgIG1hcmdpbjogYXV0byA0cHg7XG4gICAgICAgIH1cbiAgICAgIGAsXG4gICAgICBza2VsZXRvbixcbiAgICBdO1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnZhbHVlID0gMDtcbiAgICB0aGlzLmNvdW50ID0gMDtcbiAgICB0aGlzLnJlYWRvbmx5ID0gZmFsc2U7XG4gICAgdGhpcy5fY2FuZGlkYXRlID0gLTE7XG4gICAgdGhpcy5pc1NlbGVjdGVkID0gZmFsc2U7XG4gIH1cblxuICBfZ2V0VGl0bGUoKSB7XG4gICAgcmV0dXJuIGAke3RoaXMuX2dldEF2ZXJhZ2UoKX0vJHtNQVhfUkFURX1gO1xuICB9XG5cbiAgX29uTW91c2VFbnRlcihpbmRleCkge1xuICAgIHRoaXMuX2NhbmRpZGF0ZSA9IGluZGV4ICsgMTtcbiAgICBpZiAodGhpcy53aXRoRGVzY3JpcHRpb24pIHtcbiAgICAgIHN3aXRjaCAodGhpcy5fY2FuZGlkYXRlKSB7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICB0aGlzLmRlc2NyaXB0aW9uID0gaTE4bignZ3YtcmF0aW5nLmRlc2NyaXB0aW9uLTEnKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgIHRoaXMuZGVzY3JpcHRpb24gPSBpMThuKCdndi1yYXRpbmcuZGVzY3JpcHRpb24tMicpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgdGhpcy5kZXNjcmlwdGlvbiA9IGkxOG4oJ2d2LXJhdGluZy5kZXNjcmlwdGlvbi0zJyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNDpcbiAgICAgICAgICB0aGlzLmRlc2NyaXB0aW9uID0gaTE4bignZ3YtcmF0aW5nLmRlc2NyaXB0aW9uLTQnKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA1OlxuICAgICAgICAgIHRoaXMuZGVzY3JpcHRpb24gPSBpMThuKCdndi1yYXRpbmcuZGVzY3JpcHRpb24tNScpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIF9vbk1vdXNlT3V0KCkge1xuICAgIHRoaXMuX2NhbmRpZGF0ZSA9IC0xO1xuICAgIGlmICh0aGlzLndpdGhEZXNjcmlwdGlvbiAmJiAhdGhpcy5pc1NlbGVjdGVkKSB7XG4gICAgICB0aGlzLmRlc2NyaXB0aW9uID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBfb25DbGljayhpbmRleCkge1xuICAgIHRoaXMuX2NhbmRpZGF0ZSA9IC0xO1xuICAgIHRoaXMuaXNTZWxlY3RlZCA9IHRydWU7XG4gICAgdGhpcy52YWx1ZSA9IGluZGV4ICsgMTtcbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdpbnB1dCcpLCB7IGJ1YmJsZXM6IHRydWUsIGNhbmNlbGFibGU6IHRydWUgfSk7XG4gIH1cblxuICBfZ2V0QXZlcmFnZSgpIHtcbiAgICBjb25zdCBfdmFsdWUgPSBwYXJzZUZsb2F0KHRoaXMudmFsdWUpO1xuICAgIGlmIChfdmFsdWUgPj0gMCAmJiBfdmFsdWUgPD0gTUFYX1JBVEUpIHtcbiAgICAgIHJldHVybiBfdmFsdWU7XG4gICAgfVxuICAgIHJldHVybiAwO1xuICB9XG5cbiAgX3JlbmRlclN0YXIoc3RhciwgaW5kZXgpIHtcbiAgICBpZiAodGhpcy5yZWFkb25seSkge1xuICAgICAgcmV0dXJuIGh0bWxgPGd2LWljb24gc2hhcGU9XCJnZW5lcmFsOiR7c3Rhcn1cIj48L2d2LWljb24+YDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGh0bWxgPGd2LWljb25cbiAgICAgICAgQG1vdXNlZW50ZXI9JHt0aGlzLl9vbk1vdXNlRW50ZXIuYmluZCh0aGlzLCBpbmRleCl9XG4gICAgICAgIEBjbGljaz0ke3RoaXMuX29uQ2xpY2suYmluZCh0aGlzLCBpbmRleCl9XG4gICAgICAgIHNoYXBlPVwiZ2VuZXJhbDoke3N0YXJ9XCJcbiAgICAgID48L2d2LWljb24+YDtcbiAgICB9XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgYXZlcmFnZSA9IHRoaXMuX2dldEF2ZXJhZ2UoKTtcbiAgICBsZXQgdHJ1bmMgPSBhdmVyYWdlICogMTtcblxuICAgIGlmICghdGhpcy5yZWFkb25seSkge1xuICAgICAgdHJ1bmMgPSB0aGlzLl9jYW5kaWRhdGUgPiAtMSA/IHRoaXMuX2NhbmRpZGF0ZSA6IGF2ZXJhZ2U7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RhcnMgPSBbXTtcbiAgICBmb3IgKGxldCBzdGFyID0gMTsgc3RhciA8PSBNQVhfUkFURTsgc3RhciArPSAxKSB7XG4gICAgICBpZiAodHJ1bmMgPj0gc3Rhcikge1xuICAgICAgICBzdGFycy5wdXNoKCdzdGFyJyk7XG4gICAgICB9IGVsc2UgaWYgKHRydW5jID49IHN0YXIgLSAwLjcpIHtcbiAgICAgICAgc3RhcnMucHVzaCgnaGFsZi1zdGFyJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdGFycy5wdXNoKCduby1zdGFyJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwiJHtjbGFzc01hcCh7IHNrZWxldG9uOiB0aGlzLnNrZWxldG9uLCBlZGl0OiAhdGhpcy5yZWFkb25seSwgY29udGVudDogdHJ1ZSB9KX1cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIiR7Y2xhc3NNYXAoeyBjb250ZW50OiB0cnVlIH0pfVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCIke2NsYXNzTWFwKHsgcmF0ZTogdHJ1ZSB9KX1cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpY29uXCIgdGl0bGU9XCIke3RoaXMuX2dldFRpdGxlKCl9XCI+XG4gICAgICAgICAgICAgICR7dGhpcy53aXRoRGVzY3JpcHRpb24gPyBodG1sYDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvblwiPiR7dGhpcy5kZXNjcmlwdGlvbn08L2Rpdj5gIDogJyd9XG4gICAgICAgICAgICAgICR7cmVwZWF0KFxuICAgICAgICAgICAgICAgIHN0YXJzLFxuICAgICAgICAgICAgICAgIChzdGFyKSA9PiBzdGFyLFxuICAgICAgICAgICAgICAgIChzdGFyLCBpbmRleCkgPT4gaHRtbGAgJHt0aGlzLl9yZW5kZXJTdGFyKHN0YXIsIGluZGV4KX0gYCxcbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgJHt0aGlzLmNvdW50XG4gICAgICAgICAgICAgID8gaHRtbGA8ZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImluZm8tdGl0bGVcIj4ke3RoaXMuY291bnQgfHwgJyd9PC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5mby1zdWJ0aXRsZVwiPiR7dGhpcy5fZ2V0Q291bnRUaXRsZSgpfTwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PmBcbiAgICAgICAgICAgICAgOiAnJ31cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgZmlyc3RVcGRhdGVkKCkge1xuICAgIGlmICghdGhpcy5yZWFkb25seSkge1xuICAgICAgdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy5lZGl0JykuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VvdXQnLCB0aGlzLl9vbk1vdXNlT3V0LmJpbmQodGhpcykpO1xuICAgIH1cbiAgfVxuXG4gIF9nZXRDb3VudFRpdGxlKCkge1xuICAgIGlmICh0aGlzLmNvdW50KSB7XG4gICAgICBpZiAodGhpcy5jb3VudCA+IDEpIHtcbiAgICAgICAgcmV0dXJuIGkxOG4oJ2d2LXJhdGluZy5ub3RlcycpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGkxOG4oJ2d2LXJhdGluZy5ub3RlJyk7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxufVxuXG53aW5kb3cuY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdndi1yYXRpbmcnLCBHdlJhdGluZyk7XG4iXX0=