@magicx-eng/ai-autocomplete-angular 0.28.3 → 0.29.0

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.
@@ -148,6 +148,15 @@ export class AIAutocompleteController {
148
148
  return;
149
149
  this.core.reset();
150
150
  }
151
+ /**
152
+ * Records a submit in telemetry. Enter is recorded by the SDK; call this
153
+ * from a submit button you render, so each submit is counted once.
154
+ */
155
+ recordSubmit(result) {
156
+ if (this.isDestroyed)
157
+ return;
158
+ this.core.recordSubmit(result);
159
+ }
151
160
  /** Pick a dropdown option (or replace the re-edited param if in re-edit mode). */
152
161
  selectOption(option) {
153
162
  if (this.isDestroyed)
@@ -410,4 +419,4 @@ function computeDropdown(s, optionsPosition) {
410
419
  optionsPosition,
411
420
  };
412
421
  }
413
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWktYXV0b2NvbXBsZXRlLmNvbnRyb2xsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NvbnRyb2xsZXIvYWktYXV0b2NvbXBsZXRlLmNvbnRyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLGNBQWMsSUFBSSxrQkFBa0IsRUFHcEMsZ0JBQWdCLEVBRWhCLG9CQUFvQixHQU1yQixNQUFNLHFDQUFxQyxDQUFDO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBbUIsV0FBVyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBT3pGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFNUM7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsTUFBTSxPQUFPLHdCQUF3QjtJQW1HbkM7OztPQUdHO0lBQ0gsWUFBWSxPQUF3QyxFQUFFO1FBcEd0RCw0RUFBNEU7UUFDNUUsNEVBQTRFO1FBQzVFLG1FQUFtRTtRQUNsRCxxQkFBZ0IsR0FBRyxJQUFJLGVBQWUsQ0FBb0IsT0FBTyxDQUFDLENBQUM7UUFFNUUsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFnRzFCLElBQUksT0FBTyxRQUFRLEtBQUssV0FBVyxFQUFFO1lBQ25DLE1BQU0sSUFBSSxLQUFLLENBQ2IsMkRBQTJEO2dCQUN6RCx3RUFBd0UsQ0FDM0UsQ0FBQztTQUNIO1FBRUQsd0VBQXdFO1FBQ3hFLHFFQUFxRTtRQUNyRSxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTNDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLEVBQUU7WUFDdkMsR0FBRyxJQUFJO1lBQ1AsVUFBVSxFQUFFLFVBQVU7WUFDdEIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLElBQUksY0FBYztZQUNyQyxpRUFBaUU7WUFDakUsb0VBQW9FO1lBQ3BFLDJD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IHR5cGUgQXV0b2NvbXBsZXRlUmVzdWx0LFxuICB0eXBlIENvbXBsZXRlZFBhcmFtU3RhdGUsXG4gIEFJQXV0b2NvbXBsZXRlIGFzIENvcmVBSUF1dG9jb21wbGV0ZSxcbiAgdHlwZSBDb3JlU3RhdGUsXG4gIHR5cGUgQ3VzdG9tRmllbGRzUmVwb3J0LFxuICBkYXRlU2VsZWN0aW9uRm9yLFxuICB0eXBlIElkZW50aWZpZWRQYXJhbVN0YXRlLFxuICBpZGVudGlmaWVkUGFyYW1MYWJlbCxcbiAgdHlwZSBQcm9kdWN0LFxuICB0eXBlIFNlZ21lbnQsXG4gIHR5cGUgU2tpcHBlZFBhcmFtU3RhdGUsXG4gIHR5cGUgU3VnZ2VzdGlvbixcbiAgdHlwZSBTdWdnZXN0aW9uT3B0aW9uLFxufSBmcm9tIFwiQG1hZ2ljeC1lbmcvYWktYXV0b2NvbXBsZXRlLXZhbmlsbGFcIjtcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgbWFwLCB0eXBlIE9ic2VydmFibGUsIHNoYXJlUmVwbGF5IH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB0eXBlIHtcbiAgQUlBdXRvY29tcGxldGVDb250cm9sbGVyT3B0aW9ucyxcbiAgQUlBdXRvY29tcGxldGVDb250cm9sbGVyU3RhdGUsXG4gIEFJQXV0b2NvbXBsZXRlQ29udHJvbGxlclVwZGF0ZSxcbiAgQUlBdXRvY29tcGxldGVEcm9wZG93blN0YXRlLFxufSBmcm9tIFwiLi4vc2hhcmVkL3R5cGVzXCI7XG5pbXBvcnQgeyBkZXJpdmVGaWVsZCB9IGZyb20gXCIuL29ic2VydmFibGVzXCI7XG5cbi8qKlxuICogVGllciAyIGxvZ2ljIHN1cmZhY2UgZm9yIGBAbWFnaWN4LWVuZy9haS1hdXRvY29tcGxldGUtYW5ndWxhcmAg4oCUIHRoZSBBbmd1bGFyXG4gKiBlcXVpdmFsZW50IG9mIFJlYWN0J3MgYHVzZUFJQXV0b2NvbXBsZXRlKClgIGhvb2suIFdyYXBzIGEgaGVhZGxlc3NcbiAqIGBAbWFnaWN4LWVuZy9haS1hdXRvY29tcGxldGUtdmFuaWxsYWAgY29yZSBhbmQgZXhwb3NlcyBpdHMgc3RhdGUgYXMgUnhKU1xuICogb2JzZXJ2YWJsZXMgcGx1cyB0aGluIGFjdGlvbiBtZXRob2RzLlxuICpcbiAqIFRoZSBjb250cm9sbGVyIGlzIGNvbnN1bWVyLW1hbmFnZWQg4oCUIHRoZSBjb25zdW1lciBjcmVhdGVzIGl0XG4gKiB3aXRoIGBuZXdgLCBob2xkcyB0aGUgcmVmZXJlbmNlLCBhbmQgKiptdXN0IGNhbGwgYGRlc3Ryb3koKWAqKiBpbiB0aGVpclxuICogb3duIGBuZ09uRGVzdHJveWAuIFRoZSBUaWVyIDEgYDxhaS1hdXRvY29tcGxldGU+YCBjb21wb25lbnQgZG9lcyB0aGlzXG4gKiBhdXRvbWF0aWNhbGx5OyBUaWVyIDIgY29uc3VtZXJzIGRvIG5vdCBnZXQgYXV0by1jbGVhbnVwLlxuICpcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNsYXNzIEFJQXV0b2NvbXBsZXRlQ29udHJvbGxlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29yZTogQ29yZUFJQXV0b2NvbXBsZXRlO1xuICBwcml2YXRlIHJlYWRvbmx5IHJhd1N0YXRlJDogQmVoYXZpb3JTdWJqZWN0PENvcmVTdGF0ZT47XG4gIC8vIG9wdGlvbnNQb3NpdGlvbiBpc24ndCBwYXJ0IG9mIENvcmVTdGF0ZSAoaXQncyBhIGNvcmUgb3B0aW9uKSwgc28gdHJhY2sgaXRcbiAgLy8gaGVyZSBhbmQgZm9sZCBpdCBpbnRvIGBkcm9wZG93biRgIHNvIHRoZSBkcm9wZG93biBjYW4gcmVhZCBwbGFjZW1lbnQgZnJvbVxuICAvLyB0aGUgY29udHJvbGxlciDigJQgY29uZmlndXJlZCBvbmNlLCBrZXB0IGluIHN5bmMgdGhyb3VnaCB1cGRhdGUoKS5cbiAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zUG9zaXRpb24kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcImFib3ZlXCIgfCBcImJlbG93XCI+KFwiYmVsb3dcIik7XG4gIHByaXZhdGUgcmVhZG9ubHkgdW5zdWJzY3JpYmVDb3JlOiAoKSA9PiB2b2lkO1xuICBwcml2YXRlIGlzRGVzdHJveWVkID0gZmFsc2U7XG5cbiAgLy8gPT09IFBlci1maWVsZCBvYnNlcnZhYmxlcyA9PT1cbiAgLy8gRWFjaCBvbmUgcnVucyB0aHJvdWdoIGRlcml2ZUZpZWxkLCB3aGljaCBiYWtlcyBpbiBkaXN0aW5jdFVudGlsQ2hhbmdlZFxuICAvLyBhbmQgc2hhcmVSZXBsYXkoeyBidWZmZXJTaXplOiAxLCByZWZDb3VudDogdHJ1ZSB9KSBwZXIgwqcxOS40LlxuXG4gIC8qKiBQbGFpbi10ZXh0IGNvbnRlbnQgb2YgdGhlIGVkaXRvci4gKi9cbiAgcmVhZG9ubHkgdGV4dCQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgLyoqIENvbXBsZXRlZCAoYm9sZCkgcGFyYW1zIGN1cnJlbnRseSBpbiB0aGUgZWRpdG9yLiAqL1xuICByZWFkb25seSBjb21wbGV0ZWRQYXJhbXMkOiBPYnNlcnZhYmxlPENvbXBsZXRlZFBhcmFtU3RhdGVbXT47XG4gIC8qKlxuICAgKiBTdWdnZXN0aW9ucyB0aGUgdXNlciBkaXNtaXNzZWQgd2l0aCB0aGUgc2tpcCBrZXkgKOKGkikuIE5vdGhpbmcgcmVuZGVyc1xuICAgKiB0aGVtOyB0aGV5IGV4aXN0IHNvIGEgaGFuZC1yb2xsZWQgc3VibWl0IGNhbiBwYXNzIHRoZW0gdG9cbiAgICogYGJ1aWxkU3VibWl0UmVzdWx0YCBhbmQgY2FycnkgdGhlIHNhbWUgYHRleHQ6IFwic2tpcHBlZFwiYCBlbnRyaWVzIHRoZVxuICAgKiBTREsncyBvd24gcmVxdWVzdHMgZG8uXG4gICAqL1xuICByZWFkb25seSBza2lwcGVkUGFyYW1zJDogT2JzZXJ2YWJsZTxTa2lwcGVkUGFyYW1TdGF0ZVtdPjtcbiAgLyoqXG4gICAqIFBhcmFtcyB0aGUgc2VydmVyIGlkZW50aWZpZWQgaW4gdGhlIHVzZXIncyBvd24gd29yZHMuIEFscmVhZHkgcmVuZGVyZWRcbiAgICogdGhyb3VnaCBgc2VnbWVudHMkYDsgZXhwb3NlZCBzbyBhIGhhbmQtcm9sbGVkIHN1Ym1pdCBjYW4gcGFzcyB0aGVtIHRvXG4gICAqIGBidWlsZFN1Ym1pdFJlc3VsdGAgYW5kIHJlcG9ydCB0aGUgc2FtZSBgaWRlbnRpZmllZF9wYXJhbXNgIHRoZSBTREsnc1xuICAgKiBvd24gcmVzdWx0cyBjYXJyeS5cbiAgICovXG4gIHJlYWRvbmx5IGlkZW50aWZpZWRQYXJhbXMkOiBPYnNlcnZhYmxlPElkZW50aWZpZWRQYXJhbVN0YXRlW10+O1xuICAvKiogQWN0aW9uYWJsZSBzdWdnZXN0aW9uIHBpbGxzIChmaXJzdCBvbmUgaXMgdGhlIGFjdGl2ZSBwaWxsKS4gKi9cbiAgcmVhZG9ubHkgc3VnZ2VzdGlvblBpbGxzJDogT2JzZXJ2YWJsZTxTdWdnZXN0aW9uW10+O1xuICAvKiogVGV4dCArIGNvbXBsZXRlZC1wYXJhbSBzZWdtZW50cyBmb3IgcmVuZGVyaW5nIHRoZSBlZGl0b3IgYm9keS4gKi9cbiAgcmVhZG9ubHkgc2VnbWVudHMkOiBPYnNlcnZhYmxlPFNlZ21lbnRbXT47XG4gIC8qKiBJRCBvZiB0aGUgbW9zdC1yZWNlbnRseS1wcm9tb3RlZCBwYXJhbSAoZHJpdmVzIHNoaW1tZXIgYW5pbWF0aW9uKS4gKi9cbiAgcmVhZG9ubHkgbmV3UGFyYW1JZCQ6IE9ic2VydmFibGU8c3RyaW5nIHwgbnVsbD47XG4gIC8qKiBBbGwgc3VnZ2VzdGlvbnMgZnJvbSB0aGUgc2VydmVyIChpbmNsdWRpbmcgbm9uLWFjdGlvbmFibGUgb25lcykuICovXG4gIHJlYWRvbmx5IHN1Z2dlc3Rpb25zJDogT2JzZXJ2YWJsZTxTdWdnZXN0aW9uW10+O1xuICAvKipcbiAgICogV2hhdCB0aGUgcHJvZHVjdCBzdHJpcCBzaG93czogdGhlIGl0ZW1zIHRoZSBsYXRlc3QgYC9zdWdnZXN0YCByZXNwb25zZVxuICAgKiByZXBvcnRlZCBhcyBtYXRjaGluZyB0aGUgcXVlcnksIG9yIOKAlCB3aXRoIGBwcm9kdWN0c2AgY29uZmlndXJlZCBvbiB0aGVcbiAgICogY29udHJvbGxlciDigJQgdGhlIHJlc3VsdHMgb2YgdGhhdCBjdXN0b20gc2VhcmNoLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJvZHVjdHMkOiBPYnNlcnZhYmxlPFByb2R1Y3RbXT47XG4gIC8qKlxuICAgKiBUaGUgY2F0YWxvZyBncm91bmRpbmcgcmVwb3J0IHRoZSBsYXRlc3QgcmVzcG9uc2UgY2FycmllZCwgb3IgbnVsbCB3aGVuIGl0XG4gICAqIGNhcnJpZWQgbm9uZTogd2hpY2ggb2YgdGhlIHF1ZXJ5J3MgY29uc3RyYWludHMgdGhlIGNhdGFsb2cgYXBwbGllZCwgd2hpY2hcbiAgICogaXQgZHJvcHBlZCwgYW5kIGhvdyBtYW55IGl0ZW1zIChhbmQgd2hpY2gpIHRoZSBhcHBsaWVkIG9uZXMgbGVmdFxuICAgKiBzdGFuZGluZy4gTnVsbCBpcyBcIm5vIG5ld3NcIiwgbm90IGFuIGVtcHR5IGNhdGFsb2cuXG4gICAqL1xuICByZWFkb25seSBjdXN0b21GaWVsZHMkOiBPYnNlcnZhYmxlPEN1c3RvbUZpZWxkc1JlcG9ydCB8IG51bGw+O1xuICAvKiogQ3VycmVudGx5IGhpZ2hsaWdodGVkIGRyb3Bkb3duIG9wdGlvbiBpbmRleC4gLTEgPSBub25lLiAqL1xuICByZWFkb25seSBhY3RpdmVJbmRleCQ6IE9ic2VydmFibGU8bnVtYmVyPjtcbiAgLyoqXG4gICAqIFVJLXZpc2libGUgbG9hZGluZyBmbGFnIOKAlCBzdXBwcmVzc2VkIGR1cmluZyB0aGUgcG9zdC1zZWxlY3QgcHJlc3NcbiAgICogYW5pbWF0aW9uIGFuZCBkdXJpbmcgcmUtZWRpdCAoY2FjaGVkIG9wdGlvbnMgc3RheSB2aXNpYmxlIHRoZXJlKS4gVXNlXG4gICAqIHRoaXMgaW5zdGVhZCBvZiB0aGUgcmF3IGNvcmUgc3RhdGUgZm9yIGFueSBsb2FkaW5nLXNrZWxldG9uIGJpbmRpbmcuXG4gICAqL1xuICByZWFkb25seSBpc0xvYWRpbmckOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAvKiogU2VydmVyLXJlcG9ydGVkIFwicXVlcnkgaXMgY29tcGxldGVcIiBmbGFnLiAqL1xuICByZWFkb25seSBpc1JlYWR5JDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgLyoqIFdoZXRoZXIgdGhlIGVkaXRvciBjdXJyZW50bHkgaGFzIGZvY3VzLiAqL1xuICByZWFkb25seSBpc0ZvY3VzZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAvKiogV2hldGhlciB0aGUgZHJvcGRvd24gc2hvdWxkIGN1cnJlbnRseSBiZSB2aXNpYmxlLiAqL1xuICByZWFkb25seSBpc0Ryb3Bkb3duT3BlbiQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBhY3RpdmUgKGxlYWRpbmcpIHBpbGwgc2hvdWxkIHJlbmRlciBzZWxlY3RlZCAoZnVsbCBvcGFjaXR5KVxuICAgKiByYXRoZXIgdGhhbiB0aGUgZGUtZW1waGFzaXplZCBgZmlyc3RgIHRpZXIuIEF1dG8gdHJpZ2dlciDih5IgdHJ1ZSBvbmx5IHdoaWxlXG4gICAqIGEgZHJvcGRvd24gb3B0aW9uIGlzIGhpZ2hsaWdodGVkOyBtYW51YWwg4oeSIHRydWUgb25jZSB0aGUgcGlsbCBpcyB0YXBwZWQuXG4gICAqL1xuICByZWFkb25seSBpc0FjdGl2ZVBpbGxTZWxlY3RlZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIC8qKiBTZXJ2ZXItc3VnZ2VzdGVkIHBsYWNlaG9sZGVyIHRleHQgZm9yIHRoZSBlZGl0b3IuICovXG4gIHJlYWRvbmx5IHBsYWNlaG9sZGVyVGV4dCQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgLyoqIExhc3QgZmV0Y2ggZXJyb3IsIG9yIG51bGwuICovXG4gIHJlYWRvbmx5IGVycm9yJDogT2JzZXJ2YWJsZTxFcnJvciB8IG51bGw+O1xuICAvKiogUGFyYW0gY3VycmVudGx5IGJlaW5nIHJlLWVkaXRlZCwgb3IgbnVsbC4gKi9cbiAgcmVhZG9ubHkgZWRpdGluZ1BhcmFtJDogT2JzZXJ2YWJsZTxDb21wbGV0ZWRQYXJhbVN0YXRlIHwgbnVsbD47XG4gIC8qKiBQbGFpbi10ZXh0IG9mZnNldCB3aGVyZSB0aGUgZWRpdCByZWdpb24gc3RhcnRzLCBvciBudWxsLiAqL1xuICByZWFkb25seSBlZGl0aW5nQW5jaG9yJDogT2JzZXJ2YWJsZTxudW1iZXIgfCBudWxsPjtcbiAgLyoqIExpdmUgY2FyZXQgb2Zmc2V0IHdpdGhpbiB0aGUgZWRpdG9yLiAqL1xuICByZWFkb25seSBjYXJldE9mZnNldCQ6IE9ic2VydmFibGU8bnVtYmVyIHwgbnVsbD47XG5cbiAgLy8gPT09IENvbXBvc2l0ZSBvYnNlcnZhYmxlcyA9PT1cblxuICAvKipcbiAgICogU25hcHNob3Qgb2YgZXZlcnkgcHVibGljIGZpZWxkIGluIG9uZSBvYmplY3QuIENvbnZlbmllbnQgZm9yXG4gICAqIGAqbmdJZj1cImN0cmwuc3RhdGUkIHwgYXN5bmMgYXMgc3RhdGVcImAgdGVtcGxhdGluZyDigJQgYWxpYXNlcyBhbGwgZmllbGRzXG4gICAqIHVuZGVyIGEgc2luZ2xlIHN1YnNjcmlwdGlvbiBpbnN0ZWFkIG9mIG11bHRpcGxlIGB8IGFzeW5jYCBwaXBlcy5cbiAgICovXG4gIHJlYWRvbmx5IHN0YXRlJDogT2JzZXJ2YWJsZTxBSUF1dG9jb21wbGV0ZUNvbnRyb2xsZXJTdGF0ZT47XG5cbiAgLyoqXG4gICAqIENvbXBvc2l0ZSBzdGF0ZSBmb3IgdGhlIGRyb3Bkb3duIHZpZXcuIFRpZXIgMiBjb25zdW1lcnMgc3ByZWFkIHRoaXMgaW50b1xuICAgKiBgPGFpLWF1dG9jb21wbGV0ZS1kcm9wZG93bj5gOyBUaWVyIDEgdXNlcyB0aGUgc2FtZSBzaGFwZSBpbnRlcm5hbGx5LlxuICAgKi9cbiAgcmVhZG9ubHkgZHJvcGRvd24kOiBPYnNlcnZhYmxlPEFJQXV0b2NvbXBsZXRlRHJvcGRvd25TdGF0ZT47XG5cbiAgLyoqXG4gICAqIFRocm93cyBpZiBpbnZva2VkIG91dHNpZGUgYSBicm93c2VyIGVudmlyb25tZW50LiBGb3IgU1NSIC8gQW5ndWxhclxuICAgKiBVbml2ZXJzYWwsIGdhdGUgY29uc3RydWN0aW9uIHdpdGggYGlzUGxhdGZvcm1Ccm93c2VyYC5cbiAgICovXG4gIGNvbnN0cnVjdG9yKG9wdHM6IEFJQXV0b2NvbXBsZXRlQ29udHJvbGxlck9wdGlvbnMgPSB7fSkge1xuICAgIGlmICh0eXBlb2YgZG9jdW1lbnQgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJBSUF1dG9jb21wbGV0ZUNvbnRyb2xsZXIgcmVxdWlyZXMgYSBicm93c2VyIGVudmlyb25tZW50LiBcIiArXG4gICAgICAgICAgXCJGb3IgU1NSIC8gQW5ndWxhciBVbml2ZXJzYWwsIGdhdGUgY29uc3RydWN0aW9uIHdpdGggaXNQbGF0Zm9ybUJyb3dzZXIuXCIsXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIEhlYWRsZXNzIG1vZGUgbmV2ZXIgcmVuZGVycyB0byB0aGUgaG9zdCwgc28gYSB0aHJvd2F3YXkgZGl2IGlzIGZpbmUg4oCUXG4gICAgLy8gaXQncyByZXF1aXJlZCBieSB0aGUgY29yZSdzIHNpZ25hdHVyZSBmb3Igc3ltbWV0cnkgd2l0aCBmdWxsIG1vZGUuXG4gICAgY29uc3QgaG9zdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XG5cbiAgICB0aGlzLmNvcmUgPSBuZXcgQ29yZUFJQXV0b2NvbXBsZXRlKGhvc3QsIHtcbiAgICAgIC4uLm9wdHMsXG4gICAgICByZW5kZXJNb2RlOiBcImhlYWRsZXNzXCIsXG4gICAgICBzb3VyY2U6IG9wdHMuc291cmNlID8/IFwiaGVhZGxlc3Mtc2RrXCIsXG4gICAgICAvLyBIZWFkbGVzcyBtb2RlIG5ldmVyIHJlbmRlcnMgdGhlIGRyb3Bkb3duIERPTSwgYnV0IHRoZSBrZXlib2FyZFxuICAgICAgLy8gY29udHJvbGxlciBzdGlsbCByZWFkcyBgb3B0aW9uc1Bvc2l0aW9uYCB0byBkZWNpZGUgd2hpY2ggdmVydGljYWxcbiAgICAgIC8vIGFycm93IG9wZW5zIHRoZSBkcm9wZG93biBmcm9tIHRoZSBpbnB1dC5cbiAgICAgIG9wdGlvbnNQb3NpdGlvbjogb3B0cy5vcHRpb25zUG9zaXRpb24gPz8gXCJiZWxvd1wiLFxuICAgIH0pO1xuXG4gICAgdGhpcy5yYXdTdGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENvcmVTdGF0ZT4odGhpcy5jb3JlLmdldFN0YXRlKCkpO1xuICAgIC8vIFB1c2ggdGhlIHN0b3JlJ3MgKmN1cnJlbnQqIHN0YXRlLCBub3QgdGhlIHNuYXBzaG90IHRoZSBsaXN0ZW5lciB3YXNcbiAgICAvLyBoYW5kZWQuIFRoZSBjb3JlIG5vdGlmaWVzIGxpc3RlbmVycyBzeW5jaHJvbm91c2x5LCBhbmQgc29tZSBhY3Rpb25zXG4gICAgLy8gdHJpZ2dlciByZWVudHJhbnQgYHN0b3JlLnNldGAgY2FsbHMgKGUuZy4gdHlwaW5nIGEgbm9uLW1hdGNoaW5nIGNoYXJcbiAgICAvLyBkdXJpbmcgcmUtZWRpdCBtYWtlcyB0aGUgY29yZSBzeW5jaHJvbm91c2x5IGV4aXQgcmUtZWRpdCBhbmQga2ljayBvZmYgYVxuICAgIC8vIGZldGNoKS5cbiAgICAvL1xuICAgIC8vIFRoZSBjb3JlJ3Mgc3RvcmUgdXNlZCB0byBkZWxpdmVyIHN1Y2ggYSBuZXN0ZWQgc2V0IGlubGluZSBhbmQgdGhlblxuICAgIC8vIHJlc3VtZSB0aGUgb3V0ZXIgbGlzdGVuZXIgbG9vcCwgc28gYSBsaXN0ZW5lciBjb3VsZCBiZSBoYW5kZWQgYW4gb2xkZXJcbiAgICAvLyBzdGF0ZSAoc3RpbGwgaW4gcmUtZWRpdCkgKmFmdGVyKiBhIG5ld2VyIG9uZSAocmUtZWRpdCBleGl0ZWQpIOKAlCB3aGljaFxuICAgIC8vIHJlc3VycmVjdGVkIGEgc3RhbGUgYGVkaXRpbmdQYXJhbWAgYW5kIHJldHJpZ2dlcmVkIHRoZSBlZGl0b3IncyByZS1lZGl0XG4gICAgLy8gY2FyZXQtcGFyaywgeWFua2luZyB0aGUgY2FyZXQgYmFjayB0byB3aGVyZSByZS1lZGl0aW5nIHN0YXJ0ZWQuIFRoZVxuICAgIC8vIHN0b3JlIG5vdyBxdWV1ZXMgbm90aWZpY2F0aW9ucyBhbmQgZHJhaW5zIHRoZW0gaW4gb3JkZXIsIHNvIHRoYXRcbiAgICAvLyBvdXQtb2Ytb3JkZXIgZGVsaXZlcnkgY2FuIG5vIGxvbmdlciBoYXBwZW4gYXQgdGhlIHNvdXJjZS5cbiAgICAvL1xuICAgIC8vIFJlYWRpbmcgYGdldFN0YXRlKClgIGF0IGVtaXNzaW9uIHRpbWUgaXMga2VwdCBhcyBiZWx0LWFuZC1icmFjZXM6IGl0XG4gICAgLy8gY29zdHMgbm90aGluZyAoZGlzdGluY3RVbnRpbENoYW5nZWQgZG93bnN0cmVhbSBkcm9wcyB0aGUgZHVwbGljYXRlXG4gICAgLy8gZW1pc3Npb25zKSBhbmQga2VlcHMgdGhpcyBicmlkZ2UgY29ycmVjdCBmb3IgYW55IGZ1dHVyZSBjb25zdW1lciB0aGF0XG4gICAgLy8gZW1pdHMgbWlkLWNhc2NhZGUuIFJlYWN0IG5lZWRzIG5laXRoZXIsIHNpbmNlIGl0IGJhdGNoZXMgcmVuZGVycyBhbmRcbiAgICAvLyBnYXRlcyBpdHMgY2FyZXQgZWZmZWN0cyBvbiBkZXBlbmRlbmNpZXMuXG4gICAgdGhpcy51bnN1YnNjcmliZUNvcmUgPSB0aGlzLmNvcmUuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGlmICghdGhpcy5pc0Rlc3Ryb3llZCkgdGhpcy5yYXdTdGF0ZSQubmV4dCh0aGlzLmNvcmUuZ2V0U3RhdGUoKSk7XG4gICAgfSk7XG5cbiAgICAvLyA9PT0gUGVyLWZpZWxkIG9ic2VydmFibGVzID09PVxuICAgIC8vIEFycmF5LXZhbHVlZCBmaWVsZHMgdXNlIHNoYWxsb3cgZXF1YWxpdHkuIFRoZSB2YW5pbGxhIHN0b3JlIHNwcmVhZHMgb25cbiAgICAvLyBldmVyeSB3cml0ZSAoYHN0b3JlLnNldCh7IGNvbXBsZXRlZFBhcmFtczogWy4uLl0gfSlgKSwgc28gcmVmZXJlbmNlXG4gICAgLy8gZXF1YWxpdHkgd291bGQgcmUtZmlyZSBkb3duc3RyZWFtIHN1YnNjcmliZXJzIG9uIGV2ZXJ5IHN0YXRlIHRpY2sgZXZlblxuICAgIC8vIHdoZW4gdGhlIGFycmF5J3MgY29udGVudHMgYXJlIHVuY2hhbmdlZC4gVGhlIG90aGVyIGZpZWxkcyBhcmVcbiAgICAvLyBwcmltaXRpdmVzIG9yIHN0YWJsZSBvYmplY3QgcmVmZXJlbmNlcywgc28gZGVmYXVsdCBpZGVudGl0eSBlcXVhbGl0eVxuICAgIC8vIHdvcmtzIGZpbmUuXG4gICAgdGhpcy50ZXh0JCA9IGRlcml2ZUZpZWxkKHRoaXMucmF3U3RhdGUkLCAocykgPT4gcy50ZXh0KTtcbiAgICB0aGlzLmNvbXBsZXRlZFBhcmFtcyQgPSBkZXJpdmVGaWVsZCh0aGlzLnJhd1N0YXRlJCwgKHMpID0+IHMuY29tcGxldGVkUGFyYW1zLCBhcnJFcSk7XG4gICAgdGhpcy5za2lwcGVkUGFyYW1zJCA9IGRlcml2ZUZpZWxkKHRoaXMucmF3U3RhdGUkLCAocykgPT4gcy5za2lwcGVkUGFyYW1zLCBhcnJFcSk7XG4gICAgdGhpcy5pZGVudGlmaWVkUGFyYW1zJCA9IGRlcml2ZUZpZWxkKHRoaXMucmF3U3RhdGUkLCAocykgPT4gcy5pZGVudGlmaWVkUGFyYW1zLCBhcnJFcSk7XG4gICAgdGhpcy5zdWdnZXN0aW9uUGlsbHMkID0gZGVyaXZlRmllbGQodGhpcy5yYXdTdGF0ZSQsIChzKSA9PiBzLmFjdGlvbmFibGVTdWdnZXN0aW9ucywgYXJyRXEpO1xuICAgIHRoaXMuc2VnbWVudHMkID0gZGVyaXZlRmllbGQodGhpcy5yYXdTdGF0ZSQsIChzKSA9PiBzLnNlZ21lbnRzLCBhcnJFcSk7XG4gICAgdGhpcy5uZXdQYXJhbUlkJCA9IGRlcml2ZUZpZWxkKHRoaXMucmF3U3RhdGUkLCAocykgPT4gcy5uZXdQYXJhbUlkKTtcbiAgICB0aGlzLnN1Z2dlc3Rpb25zJCA9IGRlcml2ZUZpZWxkKHRoaXMucmF3U3RhdGUkLCAocykgPT4gcy5zdWdnZXN0aW9ucywgYXJyRXEpO1xuICAgIHRoaXMucHJvZHVjdHMkID0gZGVyaXZlRmllbGQodGhpcy5yYXdTdGF0ZSQsIChzKSA9PiBzLnByb2R1Y3RzLCBhcnJFcSk7XG4gICAgdGhpcy5jdXN0b21GaWVsZHMkID0gZGVyaXZlRmllbGQodGhpcy5yYXdTdGF0ZSQsIChzKSA9PiBzLmN1c3RvbUZpZWxkcyk7XG4gICAgdGhpcy5hY3RpdmVJbmRleCQgPSBkZXJpdmVGaWVsZCh0aGlzLnJhd1N0YXRlJCwgKHMpID0+IHMuYWN0aXZlRHJvcGRvd25JbmRleCk7XG4gICAgdGhpcy5pc0xvYWRpbmckID0gZGVyaXZlRmllbGQodGhpcy5yYXdTdGF0ZSQsIGNvbXB1dGVVaUxvYWRpbmcpO1xuICAgIHRoaXMuaXNSZWFkeSQgPSBkZXJpdmVGaWVsZCh0aGlzLnJhd1N0YXRlJCwgKHMpID0+IHMuaXNSZWFkeSk7XG4gICAgdGhpcy5pc0ZvY3VzZWQkID0gZGVyaXZlRmllbGQodGhpcy5yYXdTdGF0ZSQsIChzKSA9PiBzLmlzRm9jdXNlZCk7XG4gICAgdGhpcy5pc0Ryb3Bkb3duT3BlbiQgPSBkZXJpdmVGaWVsZCh0aGlzLnJhd1N0YXRlJCwgKHMpID0+IHMuaXNEcm9wZG93bk9wZW4pO1xuICAgIHRoaXMuaXNBY3RpdmVQaWxsU2VsZWN0ZWQkID0gZGVyaXZlRmllbGQodGhpcy5yYXdTdGF0ZSQsIChzKSA9PiBzLmlzQWN0aXZlUGlsbFNlbGVjdGVkKTtcbiAgICB0aGlzLnBsYWNlaG9sZGVyVGV4dCQgPSBkZXJpdmVGaWVsZCh0aGlzLnJhd1N0YXRlJCwgKHMpID0+IHMucGxhY2Vob2xkZXJUZXh0KTtcbiAgICB0aGlzLmVycm9yJCA9IGRlcml2ZUZpZWxkKHRoaXMucmF3U3RhdGUkLCAocykgPT4gcy5lcnJvcik7XG4gICAgdGhpcy5lZGl0aW5nUGFyYW0kID0gZGVyaXZlRmllbGQodGhpcy5yYXdTdGF0ZSQsIChzKSA9PiBzLmVkaXRpbmdQYXJhbSk7XG4gICAgdGhpcy5lZGl0aW5nQW5jaG9yJCA9IGRlcml2ZUZpZWxkKHRoaXMucmF3U3RhdGUkLCAocykgPT4gcy5lZGl0aW5nQW5jaG9yKTtcbiAgICB0aGlzLmNhcmV0T2Zmc2V0JCA9IGRlcml2ZUZpZWxkKHRoaXMucmF3U3RhdGUkLCAocykgPT4gcy5jYXJldE9mZnNldCk7XG5cbiAgICAvLyA9PT0gQ29tcG9zaXRlIG9ic2VydmFibGVzID09PVxuICAgIC8vIFByb2plY3QgZGlyZWN0bHkgb2ZmIGByYXdTdGF0ZSRgIHdpdGggYSBzaW5nbGUgbWFwKCkgc28gZWFjaCBzdG9yZVxuICAgIC8vIHRpY2sgcHJvZHVjZXMgZXhhY3RseSBPTkUgY29oZXJlbnQgc3RhdGUkIGVtaXNzaW9uLiBVc2luZ1xuICAgIC8vIGBjb21iaW5lTGF0ZXN0YCBvdmVyIHRoZSBwZXItZmllbGQgb2JzZXJ2YWJsZXMgaGVyZSB3b3VsZCBmaXJlIG9uZVxuICAgIC8vIGVtaXNzaW9uIHBlciBpbm5lci1zb3VyY2UgdGljayAodXAgdG8gTiBwZXIgc3RvcmUgdXBkYXRlKSwgYW5kIHRoZVxuICAgIC8vIGVkaXRvci1ob3N0IGRpcmVjdGl2ZSdzIHBvc3QtcHJvbW90ZSByZWZvY3VzIHdvdWxkIHJ1biBhZ2FpbnN0IGFuXG4gICAgLy8gaW50ZXJtZWRpYXRlIHN0YXRlIHdoZXJlIGBuZXdQYXJhbUlkYCB3YXMgc2V0IGJ1dCBgc2VnbWVudHNgIC9cbiAgICAvLyBgY2FyZXRPZmZzZXRgIHN0aWxsIGhlbGQgdGhlaXIgb2xkIHZhbHVlcyDigJQgbGVhdmluZyB0aGUgY2FyZXQgc3R1Y2tcbiAgICAvLyBhdCB0aGUgcHJlLWNsaWNrIHBvc2l0aW9uLlxuICAgIHRoaXMuc3RhdGUkID0gdGhpcy5yYXdTdGF0ZSQucGlwZShcbiAgICAgIG1hcChjb21wdXRlU3RhdGUpLFxuICAgICAgc2hhcmVSZXBsYXkoeyBidWZmZXJTaXplOiAxLCByZWZDb3VudDogdHJ1ZSB9KSxcbiAgICApO1xuXG4gICAgdGhpcy5vcHRpb25zUG9zaXRpb24kLm5leHQob3B0cy5vcHRpb25zUG9zaXRpb24gPz8gXCJiZWxvd1wiKTtcbiAgICB0aGlzLmRyb3Bkb3duJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMucmF3U3RhdGUkLCB0aGlzLm9wdGlvbnNQb3NpdGlvbiRdKS5waXBlKFxuICAgICAgbWFwKChbcywgb3B0aW9uc1Bvc2l0aW9uXSkgPT4gY29tcHV0ZURyb3Bkb3duKHMsIG9wdGlvbnNQb3NpdGlvbikpLFxuICAgICAgc2hhcmVSZXBsYXkoeyBidWZmZXJTaXplOiAxLCByZWZDb3VudDogdHJ1ZSB9KSxcbiAgICApO1xuICB9XG5cbiAgLy8gPT09IFJlYWQtb25seSBhY2Nlc3NvcnMgPT09XG5cbiAgLyoqIFN0YWJsZSBBUklBIGxpc3Rib3ggSUQgZm9yIHRoZSBkcm9wZG93bi4gUGFzcyB0byBgPHRleHRhcmVhIGFyaWEtY29udHJvbHM9XCIuLi5cIj5gLiAqL1xuICBnZXQgbGlzdGJveElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY29yZS5saXN0Ym94SWQ7XG4gIH1cblxuICAvKiogV2hldGhlciBgZGVzdHJveSgpYCBoYXMgYmVlbiBjYWxsZWQuIEFmdGVyIGRlc3RydWN0aW9uIGFsbCBhY3Rpb24gbWV0aG9kcyBuby1vcC4gKi9cbiAgZ2V0IGRlc3Ryb3llZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc0Rlc3Ryb3llZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTeW5jaHJvbm91cyBzbmFwc2hvdCBvZiB0aGUgY29udHJvbGxlcidzIGN1cnJlbnQgcHVibGljIHN0YXRlLiBNaXJyb3JzXG4gICAqIHRoZSBsYXRlc3QgZW1pc3Npb24gb2YgYHN0YXRlJGAuIFVzZWZ1bCBpbiBjYWxsYmFja3Mgd2hlcmUgeW91IGNhbid0XG4gICAqIGBzdWJzY3JpYmVgIChlLmcuIGluc2lkZSBhbiBldmVudCBoYW5kbGVyKS5cbiAgICovXG4gIGdldFN0YXRlKCk6IEFJQXV0b2NvbXBsZXRlQ29udHJvbGxlclN0YXRlIHtcbiAgICByZXR1cm4gY29tcHV0ZVN0YXRlKHRoaXMucmF3U3RhdGUkLnZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgc3RydWN0dXJlZCBxdWVyeSBhcyB0aGUgU0RLIHVuZGVyc3RhbmRzIGl0IHJpZ2h0IG5vdyDigJQgdGhlIHNhbWVcbiAgICogb2JqZWN0IGBvblJlc3VsdGAgZGVsaXZlcnMgYWZ0ZXIgZWFjaCByZXNwb25zZSBhbmQgYG9uU3VibWl0YCBkZWxpdmVyc1xuICAgKiBvbiBzdWJtaXQuIFJlYWQgaXQgb24gZGVtYW5kIGZyb20gYSBwbGFjZSB0aGF0IGhhcyBubyBldmVudCBoYW5keSAoYVxuICAgKiBjdXN0b20gc3VibWl0IGJ1dHRvbiwgYSBcInNhdmUgZHJhZnRcIiBhY3Rpb24pLlxuICAgKi9cbiAgZ2V0UmVzdWx0KCk6IEF1dG9jb21wbGV0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIHRoaXMuY29yZS5nZXRSZXN1bHQoKTtcbiAgfVxuXG4gIC8vID09PSBBY3Rpb24gbWV0aG9kcyAocGFzcy10aHJvdWdoIHRvIHRoZSBjb3JlKSA9PT1cbiAgLy9cbiAgLy8gRXZlcnkgYWN0aW9uIG1ldGhvZCBiZWdpbnMgd2l0aCBhbiBgaXNEZXN0cm95ZWRgIGd1YXJkIHNvIHRoYXQgY2FsbGVyc1xuICAvLyB3aG8gaG9sZCBhIHN0YWxlIHJlZmVyZW5jZSBhZnRlciBgZGVzdHJveSgpYCBkb24ndCBhY2NpZGVudGFsbHkgdHJpZ2dlclxuICAvLyB3b3JrIG9uIGEgdG9ybi1kb3duIGNvcmUuIFRoZSB2YW5pbGxhIGNvcmUgZG9lcyBub3QgZ2F0ZSBpdHMgb3duIG1ldGhvZHNcbiAgLy8gcG9zdC1kaXNwb3NlIOKAlCBgcmVzZXQoKWAsIGBoYW5kbGVUZXh0Q2hhbmdlKClgLCBhbmQgZnJpZW5kcyB3b3VsZCBzdGlsbFxuICAvLyBzY2hlZHVsZSBmZXRjaGVzIG9yIGZpcmUgSFRUUCByZXF1ZXN0cyBhZ2FpbnN0IGFuIGFib3J0ZWQgY29udHJvbGxlcixcbiAgLy8gYW5kIHRoZSByZXNwb25zZXMgd291bGQgaGF2ZSBub3doZXJlIHRvIHN1cmZhY2UgKHJhd1N0YXRlJCBpcyBhbHJlYWR5XG4gIC8vIGNvbXBsZXRlKS4gVGhlIGd1YXJkIG1ha2VzIHRoZSBKU0RvYy1wcm9taXNlZCBcIm5vLW9wIHNpbGVudGx5XCJcbiAgLy8gc2VtYW50aWNzIGFjdHVhbGx5IHRydWUuXG5cbiAgLyoqIENsZWFyIGFsbCBzdGF0ZSwgcm90YXRlIGBzZXNzaW9uX2lkYCwgYW5kIHJlLWZldGNoLiBDYWxsIGFmdGVyIHN1Ym1pdC4gKi9cbiAgcmVzZXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQpIHJldHVybjtcbiAgICB0aGlzLmNvcmUucmVzZXQoKTtcbiAgfVxuXG4gIC8qKiBQaWNrIGEgZHJvcGRvd24gb3B0aW9uIChvciByZXBsYWNlIHRoZSByZS1lZGl0ZWQgcGFyYW0gaWYgaW4gcmUtZWRpdCBtb2RlKS4gKi9cbiAgc2VsZWN0T3B0aW9uKG9wdGlvbjogU3VnZ2VzdGlvbk9wdGlvbik6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKSByZXR1cm47XG4gICAgdGhpcy5jb3JlLnNlbGVjdE9wdGlvbihvcHRpb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFubm91bmNlIGEgcHJvZHVjdCBzZWxlY3Rpb24g4oCUIGZpcmVzIHRoZSBgb25Qcm9kdWN0U2VsZWN0YCBjYWxsYmFjayB0aGVcbiAgICogY29udHJvbGxlciB3YXMgY29uc3RydWN0ZWQgd2l0aC4gYDxhaS1hdXRvY29tcGxldGUtZHJvcGRvd24+YCBjYWxscyB0aGlzXG4gICAqIGZvciB5b3U7IGNvbnN1bWVycyByZW5kZXJpbmcgdGhlaXIgb3duIHN0cmlwIGNhbGwgaXQgdGhlbXNlbHZlcy5cbiAgICpcbiAgICogRW1pdHRpbmcgaXMgdGhlIHdob2xlIGJlaGF2aW91cjogdGhlIFNESyBkZWxpYmVyYXRlbHkgZG9lcyBub3QgbmF2aWdhdGUgdG9cbiAgICogYHByb2R1Y3QudXJsYCwgYmVjYXVzZSBvbmx5IHRoZSBpbnRlZ3JhdGlvbiBrbm93cyB3aGV0aGVyIGEgc2VsZWN0aW9uXG4gICAqIG1lYW5zIFwib3BlbiB0aGUgUERQXCIsIFwiYWRkIHRvIGNhcnRcIiwgb3IgXCJmaWxsIHRoZSBpbnB1dFwiLlxuICAgKi9cbiAgc2VsZWN0UHJvZHVjdChwcm9kdWN0OiBQcm9kdWN0KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQpIHJldHVybjtcbiAgICB0aGlzLmNvcmUuc2VsZWN0UHJvZHVjdChwcm9kdWN0KTtcbiAgfVxuXG4gIC8qKiBQcm9tb3RlIHRoZSBwaWxsIGF0IGBpbmRleGAgdG8gYWN0aXZlIChmcm9udCBvZiB0aGUgbGlzdCkuICovXG4gIHNldEFjdGl2ZVBpbGwoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKSByZXR1cm47XG4gICAgdGhpcy5jb3JlLnNldEFjdGl2ZVBpbGwoaW5kZXgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNraXAgdGhlIGFjdGl2ZSBwaWxsIOKAlCBzYW1lIGFjdGlvbiBhcyBwcmVzc2luZyDihpIgYXQgdGhlIGVuZCBvZiB0aGUgaW5wdXQuXG4gICAqIFRoZSBkcm9wZG93bidzIHNraXAgYnV0dG9uIGNhbGxzIHRoaXM7IGNvbnN1bWVycyByZW5kZXJpbmcgdGhlaXIgb3duIHNraXBcbiAgICogYWZmb3JkYW5jZSBjYWxsIGl0IGRpcmVjdGx5LiBUaGUgc2tpcHBlZCBzdWdnZXN0aW9uIGpvaW5zIGBza2lwcGVkUGFyYW1zJGAuXG4gICAqL1xuICBza2lwQWN0aXZlUGlsbCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0Rlc3Ryb3llZCkgcmV0dXJuO1xuICAgIHRoaXMuY29yZS5za2lwQWN0aXZlUGlsbCgpO1xuICB9XG5cbiAgLyoqIERyb3AgdGhlIGxhc3QgY29tcGxldGVkIHBhcmFtJ3MgXCJjb21wbGV0ZWRcIiBzdGF0dXMuIFRleHQgc3RheXMgYXMgcGxhaW4gdGV4dC4gKi9cbiAgcmVtb3ZlTGFzdFBhcmFtKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKSByZXR1cm47XG4gICAgdGhpcy5jb3JlLnJlbW92ZUxhc3RQYXJhbSgpO1xuICB9XG5cbiAgLyoqIENsZWFyIHRoZSBzaGltbWVyIGFuaW1hdGlvbiBzdGF0ZSBmb3IgdGhlIG1vc3QtcmVjZW50bHktYWRkZWQgcGFyYW0uICovXG4gIGNsZWFyTmV3UGFyYW1JZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0Rlc3Ryb3llZCkgcmV0dXJuO1xuICAgIHRoaXMuY29yZS5jbGVhck5ld1BhcmFtSWQoKTtcbiAgfVxuXG4gIC8qKiBDb250cm9sbGVkLW1vZGUgc2V0dGVyIGZvciBlZGl0b3IgdGV4dC4gKi9cbiAgc2V0VmFsdWUodGV4dDogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQpIHJldHVybjtcbiAgICB0aGlzLmNvcmUuc2V0VmFsdWUodGV4dCk7XG4gIH1cblxuICAvKiogQ29udHJvbGxlZC1tb2RlIHNldHRlciBmb3IgY29tcGxldGVkIHBhcmFtcy4gKi9cbiAgc2V0Q29tcGxldGVkUGFyYW1zKHBhcmFtczogQ29tcGxldGVkUGFyYW1TdGF0ZVtdKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQpIHJldHVybjtcbiAgICB0aGlzLmNvcmUuc2V0Q29tcGxldGVkUGFyYW1zKHBhcmFtcyk7XG4gIH1cblxuICAvKiogRm9yd2FyZCBwbGFpbi10ZXh0IGlucHV0IGZyb20gdGhlIGNvbnN1bWVyJ3MgYDx0ZXh0YXJlYT5gIHRvIHRoZSBjb3JlLiAqL1xuICBoYW5kbGVUZXh0Q2hhbmdlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0Rlc3Ryb3llZCkgcmV0dXJuO1xuICAgIHRoaXMuY29yZS5oYW5kbGVUZXh0Q2hhbmdlKHZhbHVlKTtcbiAgfVxuXG4gIC8qKiBGb3J3YXJkIGtleWJvYXJkIGV2ZW50cyBmcm9tIHRoZSBjb25zdW1lcidzIGA8dGV4dGFyZWE+YCB0byB0aGUgY29yZS4gKi9cbiAgaGFuZGxlS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKSByZXR1cm47XG4gICAgdGhpcy5jb3JlLmhhbmRsZUtleURvd24oZXZlbnQpO1xuICB9XG5cbiAgLyoqIE5vdGlmeSB0aGUgY29yZSBvZiBmb2N1cyBzdGF0ZS4gKi9cbiAgc2V0Rm9jdXNlZChmb2N1c2VkOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQpIHJldHVybjtcbiAgICB0aGlzLmNvcmUuc2V0Rm9jdXNlZChmb2N1c2VkKTtcbiAgfVxuXG4gIC8qKiBFbnRlciByZS1lZGl0IG1vZGUgZm9yIHRoZSBib2xkIHBhcmFtIHdpdGggdGhlIGdpdmVuIGlkLiAqL1xuICBzdGFydEVkaXRpbmdQYXJhbShwYXJhbUlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0Rlc3Ryb3llZCkgcmV0dXJuO1xuICAgIHRoaXMuY29yZS5zdGFydEVkaXRpbmdQYXJhbShwYXJhbUlkKTtcbiAgfVxuXG4gIC8qKiBFeGl0IHJlLWVkaXQgbW9kZSB3aXRob3V0IGNoYW5naW5nIHRoZSBib2xkIHBhcmFtLiAqL1xuICBleGl0RWRpdE1vZGUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQpIHJldHVybjtcbiAgICB0aGlzLmNvcmUuZXhpdEVkaXRNb2RlKCk7XG4gIH1cblxuICAvKiogRm9yd2FyZCBwb3N0LWlucHV0IGNhcmV0IHBvc2l0aW9uIChleHRlbmRzIHRoZSBlZGl0IHRhaWwpLiAqL1xuICBoYW5kbGVDYXJldEFmdGVySW5wdXQob2Zmc2V0OiBudW1iZXIgfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQpIHJldHVybjtcbiAgICB0aGlzLmNvcmUuaGFuZGxlQ2FyZXRBZnRlcklucHV0KG9mZnNldCk7XG4gIH1cblxuICAvKiogRm9yd2FyZCBzZWxlY3Rpb24tb25seSBjYXJldCBtb3ZlcyAobWF5IGV4aXQgcmUtZWRpdCkuICovXG4gIGhhbmRsZUNhcmV0TW92ZShvZmZzZXQ6IG51bWJlciB8IG51bGwpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0Rlc3Ryb3llZCkgcmV0dXJuO1xuICAgIHRoaXMuY29yZS5oYW5kbGVDYXJldE1vdmUob2Zmc2V0KTtcbiAgfVxuXG4gIC8qKiBSZXBsYWNlIHRoZSBib2xkIHBhcmFtIGJlaW5nIHJlLWVkaXRlZC4gUmV0dXJucyB0cnVlIHdoZW4gYXBwbGllZC4gKi9cbiAgcmVwbGFjZUVkaXRpbmdSYW5nZShyZXBsYWNlbWVudDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gdGhpcy5jb3JlLnJlcGxhY2VFZGl0aW5nUmFuZ2UocmVwbGFjZW1lbnQpO1xuICB9XG5cbiAgLyoqIFNldCB0aGUgaGlnaGxpZ2h0ZWQgb3B0aW9uIGluZGV4ICh0eXBpY2FsbHkgZHJpdmVuIGJ5IGhvdmVyKS4gKi9cbiAgc2V0QWN0aXZlRHJvcGRvd25JbmRleChpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQpIHJldHVybjtcbiAgICB0aGlzLmNvcmUuc2V0QWN0aXZlRHJvcGRvd25JbmRleChpbmRleCk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHBvaW50ZXIgbGVmdCBvcHRpb24gYGluZGV4YDogY2xlYXIgdGhlIGhpZ2hsaWdodCBpZiBpdCBpcyBzdGlsbCBvbiBpdCxcbiAgICogc28gRW50ZXIgYWZ0ZXJ3YXJkcyBzdWJtaXRzIGluc3RlYWQgb2YgcGlja2luZyBhbiBvcHRpb24gdGhlIHBvaW50ZXIgaXMgbm9cbiAgICogbG9uZ2VyIG9uLiBBIGhpZ2hsaWdodCB0aGUga2V5Ym9hcmQgaGFzIHNpbmNlIG1vdmVkIGlzIGxlZnQgYWxvbmUuXG4gICAqL1xuICBjbGVhckhpZ2hsaWdodChpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQpIHJldHVybjtcbiAgICB0aGlzLmNvcmUuY2xlYXJIaWdobGlnaHQoaW5kZXgpO1xuICB9XG5cbiAgLyoqIFBhZ2UgdGhlIGRhdGVwaWNrZXIgYmFjayBvbmUgbW9udGguIE5vLW9wIHVubGVzcyBhIGRhdGUgcGlsbCBpcyBhY3RpdmUuICovXG4gIHNob3dQcmV2aW91c01vbnRoKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKSByZXR1cm47XG4gICAgdGhpcy5jb3JlLnNob3dQcmV2aW91c01vbnRoKCk7XG4gIH1cblxuICAvKiogUGFnZSB0aGUgZGF0ZXBpY2tlciBmb3J3YXJkIG9uZSBtb250aC4gTm8tb3AgdW5sZXNzIGEgZGF0ZSBwaWxsIGlzIGFjdGl2ZS4gKi9cbiAgc2hvd05leHRNb250aCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0Rlc3Ryb3llZCkgcmV0dXJuO1xuICAgIHRoaXMuY29yZS5zaG93TmV4dE1vbnRoKCk7XG4gIH1cblxuICAvLyA9PT0gTGlmZWN5Y2xlID09PVxuXG4gIC8qKlxuICAgKiBBcHBseSBydW50aW1lIGNoYW5nZXMgdG8gYSBzdWJzZXQgb2Ygb3B0aW9ucy4gRXZlbnQgY2FsbGJhY2tzXG4gICAqIChgb25TdWJtaXRgLCBgb25SZXN1bHRgLCBgb25FcnJvcmAsIGV0Yy4pIGNhbm5vdCBiZSBzd2FwcGVkIHRoaXMgd2F5IOKAlCB0aGV5IGFyZVxuICAgKiByZWdpc3RlcmVkIG9uY2UgYXQgY29uc3RydWN0aW9uIChtYXRjaGVzIHRoZSBSZWFjdCBob29rJ3MgZGVzaWduKS4gRm9yXG4gICAqIGR5bmFtaWMgZXZlbnQgcmVhY3Rpdml0eSwgc3Vic2NyaWJlIHRvIHRoZSBjb3JyZXNwb25kaW5nIG9ic2VydmFibGVcbiAgICogKGUuZy4gYHRleHQkYCBpbnN0ZWFkIG9mIGBvbkNoYW5nZWApLlxuICAgKi9cbiAgdXBkYXRlKG9wdHM6IEFJQXV0b2NvbXBsZXRlQ29udHJvbGxlclVwZGF0ZSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKSByZXR1cm47XG4gICAgdGhpcy5jb3JlLnVwZGF0ZShvcHRzKTtcbiAgICBpZiAob3B0cy5vcHRpb25zUG9zaXRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5vcHRpb25zUG9zaXRpb24kLm5leHQob3B0cy5vcHRpb25zUG9zaXRpb24pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZWxlYXNlIGFsbCByZXNvdXJjZXMg4oCUIHVuc3Vic2NyaWJlcyBmcm9tIHRoZSBjb3JlLCBkZXN0cm95cyB0aGUgY29yZSxcbiAgICogYW5kIGNvbXBsZXRlcyB0aGUgaW50ZXJuYWwgc3RhdGUgc3ViamVjdC4gU2FmZSB0byBjYWxsIG11bHRpcGxlIHRpbWVzLlxuICAgKiBBZnRlciBkZXN0cnVjdGlvbiwgYWN0aW9uIG1ldGhvZHMgbm8tb3Agc2lsZW50bHkuXG4gICAqL1xuICBkZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKSByZXR1cm47XG4gICAgdGhpcy5pc0Rlc3Ryb3llZCA9IHRydWU7XG4gICAgdGhpcy51bnN1YnNjcmliZUNvcmUoKTtcbiAgICB0aGlzLmNvcmUuZGVzdHJveSgpO1xuICAgIHRoaXMucmF3U3RhdGUkLmNvbXBsZXRlKCk7XG4gIH1cbn1cblxuLy8gPT09PT0gUHVyZSBoZWxwZXJzIOKAlCBub3QgcGFydCBvZiB0aGUgcHVibGljIHN1cmZhY2UgPT09PT1cblxuLyoqXG4gKiBTaGFsbG93IGFycmF5IGVxdWFsaXR5LiBUaGUgdmFuaWxsYSBzdG9yZSByZWFzc2lnbnMgYXJyYXkgZmllbGRzIG9uIGV2ZXJ5XG4gKiB3cml0ZSAoYHN0b3JlLnNldCh7IGNvbXBsZXRlZFBhcmFtczogWy4uLnByZXYsIHhdIH0pYCksIHNvIHJlZmVyZW5jZVxuICogZXF1YWxpdHkgYWxvbmUgd291bGQgcmUtZW1pdCBkb3duc3RyZWFtIGV2ZW4gd2hlbiB0aGUgY29udGVudHMgYXJlXG4gKiBpZGVudGljYWwuIFVzZWQgZm9yIGBjb21wbGV0ZWRQYXJhbXMkYCwgYHN1Z2dlc3Rpb25zJGAsIGBzdWdnZXN0aW9uUGlsbHMkYCxcbiAqIGFuZCBgc2VnbWVudHMkYC5cbiAqL1xuZnVuY3Rpb24gYXJyRXE8VD4oYTogcmVhZG9ubHkgVFtdLCBiOiByZWFkb25seSBUW10pOiBib29sZWFuIHtcbiAgaWYgKGEgPT09IGIpIHJldHVybiB0cnVlO1xuICBpZiAoYS5sZW5ndGggIT09IGIubGVuZ3RoKSByZXR1cm4gZmFsc2U7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgYS5sZW5ndGg7IGkrKykge1xuICAgIGlmIChhW2ldICE9PSBiW2ldKSByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIHRydWU7XG59XG5cbi8qKiBVSS12aXNpYmxlIGxvYWRpbmcg4oCUIHRoZSBjb3JlJ3MgYGRyb3Bkb3duTG9hZGluZ2AgKHNlZSBpdHMgZG9jcykuICovXG5mdW5jdGlvbiBjb21wdXRlVWlMb2FkaW5nKHM6IENvcmVTdGF0ZSk6IGJvb2xlYW4ge1xuICByZXR1cm4gcy5kcm9wZG93bkxvYWRpbmc7XG59XG5cbmZ1bmN0aW9uIGNvbXB1dGVTdGF0ZShzOiBDb3JlU3RhdGUpOiBBSUF1dG9jb21wbGV0ZUNvbnRyb2xsZXJTdGF0ZSB7XG4gIHJldHVybiB7XG4gICAgdGV4dDogcy50ZXh0LFxuICAgIGNvbXBsZXRlZFBhcmFtczogcy5jb21wbGV0ZWRQYXJhbXMsXG4gICAgc2tpcHBlZFBhcmFtczogcy5za2lwcGVkUGFyYW1zLFxuICAgIGlkZW50aWZpZWRQYXJhbXM6IHMuaWRlbnRpZmllZFBhcmFtcyxcbiAgICBzdWdnZXN0aW9uUGlsbHM6IHMuYWN0aW9uYWJsZVN1Z2dlc3Rpb25zLFxuICAgIHNlZ21lbnRzOiBzLnNlZ21lbnRzLFxuICAgIG5ld1BhcmFtSWQ6IHMubmV3UGFyYW1JZCxcbiAgICBzdWdnZXN0aW9uczogcy5zdWdnZXN0aW9ucyxcbiAgICBwcm9kdWN0czogcy5wcm9kdWN0cyxcbiAgICBjdXN0b21GaWVsZHM6IHMuY3VzdG9tRmllbGRzLFxuICAgIGFjdGl2ZUluZGV4OiBzLmFjdGl2ZURyb3Bkb3duSW5kZXgsXG4gICAgaXNMb2FkaW5nOiBjb21wdXRlVWlMb2FkaW5nKHMpLFxuICAgIGlzUmVhZHk6IHMuaXNSZWFkeSxcbiAgICBpc0ZvY3VzZWQ6IHMuaXNGb2N1c2VkLFxuICAgIGlzRHJvcGRvd25PcGVuOiBzLmlzRHJvcGRvd25PcGVuLFxuICAgIHBsYWNlaG9sZGVyVGV4dDogcy5wbGFjZWhvbGRlclRleHQsXG4gICAgZXJyb3I6IHMuZXJyb3IsXG4gICAgZWRpdGluZ1BhcmFtOiBzLmVkaXRpbmdQYXJhbSxcbiAgICBlZGl0aW5nSWRlbnRpZmllZDogcy5lZGl0aW5nSWRlbnRpZmllZCxcbiAgICBlZGl0aW5nQW5jaG9yOiBzLmVkaXRpbmdBbmNob3IsXG4gICAgY2FyZXRPZmZzZXQ6IHMuY2FyZXRPZmZzZXQsXG4gIH07XG59XG5cbmZ1bmN0aW9uIGNvbXB1dGVEcm9wZG93bihcbiAgczogQ29yZVN0YXRlLFxuICBvcHRpb25zUG9zaXRpb246IFwiYWJvdmVcIiB8IFwiYmVsb3dcIixcbik6IEFJQXV0b2NvbXBsZXRlRHJvcGRvd25TdGF0ZSB7XG4gIGNvbnN0IGVkaXRpbmdQYXJhbSA9IHMuZWRpdGluZ1BhcmFtO1xuICBjb25zdCBlZGl0aW5nSWRlbnRpZmllZCA9IHMuZWRpdGluZ0lkZW50aWZpZWQ7XG4gIGNvbnN0IGRhdGVTZWxlY3Rpb24gPSBkYXRlU2VsZWN0aW9uRm9yKHMpO1xuICBjb25zdCBhY3RpdmVTdWdnZXN0aW9uID0gcy5hY3Rpb25hYmxlU3VnZ2VzdGlvbnNbMF07XG4gIGNvbnN0IGRyb3Bkb3duUGlsbDogU3VnZ2VzdGlvbiB8IG51bGwgPSBlZGl0aW5nUGFyYW1cbiAgICA/IHtcbiAgICAgICAgdHlwZTogZWRpdGluZ1BhcmFtLnN1Z2dlc3Rpb25UeXBlLFxuICAgICAgICB0ZXh0OiBlZGl0aW5nUGFyYW0uc3VnZ2VzdGlvblBsYWNlaG9sZGVyLFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgb3B0aW9uczogZWRpdGluZ1BhcmFtLm9wdGlvbnMsXG4gICAgICB9XG4gICAgOiBlZGl0aW5nSWRlbnRpZmllZFxuICAgICAgPyAvLyBBbnN3ZXJpbmcgYSBzcGFuIHRoZSB1c2VyIHdyb3RlIHRoZW1zZWx2ZXM6IHRoZSBwaWxsIG5hbWVzIHRoZVxuICAgICAgICAvLyBwYXJhbWV0ZXIgdGhlIHNlcnZlciBtYXRjaGVkIGl0IHRvLCBzbyB0aGUgY2FsZW5kYXIgaXNuJ3QgdW5sYWJlbGxlZC5cbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6IGVkaXRpbmdJZGVudGlmaWVkLnR5cGUsXG4gICAgICAgICAgdGV4dDogaWRlbnRpZmllZFBhcmFtTGFiZWwoZWRpdGluZ0lkZW50aWZpZWQudHlwZSksXG4gICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgb3B0aW9uczogW10sXG4gICAgICAgIH1cbiAgICAgIDogbnVsbDtcbiAgY29uc3QgZHJvcGRvd25BY3RpdmVQaWxsID0gcy5kcm9wZG93blN1Z2dlc3Rpb24gPz8gZHJvcGRvd25QaWxsID8/IGFjdGl2ZVN1Z2dlc3Rpb247XG4gIGNvbnN0IGRyb3Bkb3duUGlsbHMgPSBkcm9wZG93blBpbGwgPyBbZHJvcGRvd25QaWxsXSA6IHMuYWN0aW9uYWJsZVN1Z2dlc3Rpb25zO1xuICByZXR1cm4ge1xuICAgIHN1Z2dlc3Rpb25zOiBkcm9wZG93bkFjdGl2ZVBpbGwgPyBbeyAuLi5kcm9wZG93bkFjdGl2ZVBpbGwsIG9wdGlvbnM6IHMuZHJvcGRvd25PcHRpb25zIH1dIDogW10sXG4gICAgYWN0aXZlSW5kZXg6IHMuYWN0aXZlRHJvcGRvd25JbmRleCxcbiAgICBpc09wZW46IHMuaXNEcm9wZG93bk9wZW4sXG4gICAgcGlsbHM6IGRyb3Bkb3duUGlsbHMsXG4gICAgaXNBY3RpdmVQaWxsU2VsZWN0ZWQ6IHMuaXNBY3RpdmVQaWxsU2VsZWN0ZWQsXG4gICAgaXNMb2FkaW5nOiBjb21wdXRlVWlMb2FkaW5nKHMpLFxuICAgIHNrZWxldG9uRXhpdGluZzogcy5za2VsZXRvbkV4aXRpbmcsXG4gICAgaXNJbnB1dEVtcHR5OiBzLnRleHQudHJpbSgpLmxlbmd0aCA9PT0gMCxcbiAgICBwcm9kdWN0czogcy5wcm9kdWN0cyxcbiAgICBpc0VkaXRpbmc6IEJvb2xlYW4oZWRpdGluZ1BhcmFtKSB8fCBCb29sZWFuKGVkaXRpbmdJZGVudGlmaWVkKSxcbiAgICBpblNlbGVjdGlvbkFuaW1hdGlvbjogcy5pblNlbGVjdGlvbkFuaW1hdGlvbixcbiAgICAvLyBEYXRlcGlja2VyLiBgcy5maWx0ZXJlZE9wdGlvbnNgIGFib3ZlIGFscmVhZHkgY2FycmllcyB0aGUgdmlzaWJsZVxuICAgIC8vIG1vbnRoJ3MgY2VsbHMgcmF0aGVyIHRoYW4gdGhlIHN1Z2dlc3Rpb24ncyBvd24gb3B0aW9ucyB3aGVuIHRoaXMgaXNcbiAgICAvLyBcImRhdGVcIiDigJQgdGhlIGNvcmUgc3dhcHBlZCB0aGVtIGluIGl0cyBkZXJpdmUgbGF5ZXIsIHNvIHRoZSBkcm9wZG93biBvbmx5XG4gICAgLy8gaGFzIHRvIGtub3cgd2hpY2ggYm9keSB0byBkcmF3LlxuICAgIGZvcm1hdFR5cGU6IHMuYWN0aXZlRm9ybWF0VHlwZSxcbiAgICBkYXRlVmlldzogcy5kYXRlVmlldyxcbiAgICBzZWxlY3RlZERhdGVJc286IGRhdGVTZWxlY3Rpb24uc2VsZWN0ZWRJc28sXG4gICAgc2VsZWN0ZWREYXRlUmFuZ2U6IGRhdGVTZWxlY3Rpb24uc2VsZWN0ZWRSYW5nZSxcbiAgICBkYXRlUmFuZ2VTdGFydDogZGF0ZVNlbGVjdGlvbi5yYW5nZVN0YXJ0LFxuICAgIG9wdGlvbnNQb3NpdGlvbixcbiAgfTtcbn1cbiJdfQ==
422
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWktYXV0b2NvbXBsZXRlLmNvbnRyb2xsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NvbnRyb2xsZXIvYWktYXV0b2NvbXBsZXRlLmNvbnRyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLGNBQWMsSUFBSSxrQkFBa0IsRUFHcEMsZ0JBQWdCLEVBRWhCLG9CQUFvQixHQU1yQixNQUFNLHFDQUFxQyxDQUFDO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBbUIsV0FBVyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBT3pGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFNUM7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsTUFBTSxPQUFPLHdCQUF3QjtJQW1HbkM7OztPQUdHO0lBQ0gsWUFBWSxPQUF3QyxFQUFFO1FBcEd0RCw0RUFBNEU7UUFDNUUsNEVBQTRFO1FBQzVFLG1FQUFtRTtRQUNsRCxxQkFBZ0IsR0FBRyxJQUFJLGVBQWUsQ0FBb0IsT0FBTyxDQUFDLENBQUM7UUFFNUUsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFnRzFCLElBQUksT0FBTyxRQUFRLEtBQUssV0FBVyxFQUFFO1lBQ25DLE1BQU0sSUFBSSxLQUFLLENBQ2IsMkRBQTJEO2dCQUN6RCx3RUFBd0UsQ0FDM0UsQ0FBQztTQUNIO1FBRUQsd0VBQXdFO1FBQ3hFLHFFQUFxRTtRQUNyRSxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTNDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLEVBQUU7WUFDdkMsR0FBRyxJQUFJO1lBQ1AsVUFBVSxFQUFFLFVBQVU7WUFDdEIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLElBQUksY0FBYztZQUNyQyxpRUFBaUU7WUFDakUsb0VBQW9FO1lBQ3BFLDJDQUEyQztZQUMzQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWUsSUFBSSxPQUFPO1NBQ2pELENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxlQUFlLENBQVksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3RFLHNFQUFzRTtRQUN0RSxzRUFBc0U7UUFDdEUsdUVBQXVFO1FBQ3ZFLDBFQUEwRTtRQUMxRSxVQUFVO1FBQ1YsRUFBRTtRQUNGLHFFQUFxRTtRQUNyRSx5RUFBeUU7UUFDekUsd0VBQXdFO1FBQ3hFLDBFQUEwRTtRQUMxRSxzRUFBc0U7UUFDdEUsbUVBQW1FO1FBQ25FLDREQUE0RDtRQUM1RCxFQUFFO1FBQ0YsdUVBQXVFO1FBQ3ZFLHFFQUFxRTtRQUNyRSx3RUFBd0U7UUFDeEUsdUVBQXVFO1FBQ3ZFLDJDQUEyQztRQUMzQyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUM5QyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVc7Z0JBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ25FLENBQUMsQ0FBQyxDQUFDO1FBRUgsZ0NBQWdDO1FBQ2hDLHlFQUF5RTtRQUN6RSxzRUFBc0U7UUFDdEUseUVBQXlFO1FBQ3pFLGdFQUFnRTtRQUNoRSx1RUFBdUU7UUFDdkUsY0FBYztRQUNkLElBQUksQ0FBQyxLQUFLLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDckYsSUFBSSxDQUFDLGNBQWMsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNqRixJQUFJLENBQUMsaUJBQWlCLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN2RixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMzRixJQUFJLENBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzdFLElBQUksQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLGFBQWEsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzlFLElBQUksQ0FBQyxVQUFVLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsUUFBUSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxlQUFlLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUM1RSxJQUFJLENBQUMscUJBQXFCLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3hGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzlFLElBQUksQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsYUFBYSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLGNBQWMsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzFFLElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUV0RSxnQ0FBZ0M7UUFDaEMscUVBQXFFO1FBQ3JFLDREQUE0RDtRQUM1RCxxRUFBcUU7UUFDckUscUVBQXFFO1FBQ3JFLG9FQUFvRTtRQUNwRSxpRUFBaUU7UUFDakUsc0VBQXNFO1FBQ3RFLDZCQUE2QjtRQUM3QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUMvQixHQUFHLENBQUMsWUFBWSxDQUFDLEVBQ2pCLFdBQVcsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQy9DLENBQUM7UUFFRixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLElBQUksT0FBTyxDQUFDLENBQUM7UUFDNUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUMxRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxlQUFlLENBQUMsRUFBRSxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUMsRUFBRSxlQUFlLENBQUMsQ0FBQyxFQUNsRSxXQUFXLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUMvQyxDQUFDO0lBQ0osQ0FBQztJQUVELDhCQUE4QjtJQUU5Qix5RkFBeUY7SUFDekYsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUM3QixDQUFDO0lBRUQsdUZBQXVGO0lBQ3ZGLElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFFBQVE7UUFDTixPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELG9EQUFvRDtJQUNwRCxFQUFFO0lBQ0YseUVBQXlFO0lBQ3pFLDBFQUEwRTtJQUMxRSwyRUFBMkU7SUFDM0UsMEVBQTBFO0lBQzFFLHdFQUF3RTtJQUN4RSx3RUFBd0U7SUFDeEUsaUVBQWlFO0lBQ2pFLDJCQUEyQjtJQUUzQiw2RUFBNkU7SUFDN0UsS0FBSztRQUNILElBQUksSUFBSSxDQUFDLFdBQVc7WUFBRSxPQUFPO1FBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVEOzs7T0FHRztJQUNILFlBQVksQ0FBQyxNQUEwQjtRQUNyQyxJQUFJLElBQUksQ0FBQyxXQUFXO1lBQUUsT0FBTztRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsa0ZBQWtGO0lBQ2xGLFlBQVksQ0FBQyxNQUF3QjtRQUNuQyxJQUFJLElBQUksQ0FBQyxXQUFXO1lBQUUsT0FBTztRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxhQUFhLENBQUMsT0FBZ0I7UUFDNUIsSUFBSSxJQUFJLENBQUMsV0FBVztZQUFFLE9BQU87UUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELGlFQUFpRTtJQUNqRSxhQUFhLENBQUMsS0FBYTtRQUN6QixJQUFJLElBQUksQ0FBQyxXQUFXO1lBQUUsT0FBTztRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGNBQWM7UUFDWixJQUFJLElBQUksQ0FBQyxXQUFXO1lBQUUsT0FBTztRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxvRkFBb0Y7SUFDcEYsZUFBZTtRQUNiLElBQUksSUFBSSxDQUFDLFdBQVc7WUFBRSxPQUFPO1FBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELDJFQUEyRTtJQUMzRSxlQUFlO1FBQ2IsSUFBSSxJQUFJLENBQUMsV0FBVztZQUFFLE9BQU87UUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsOENBQThDO0lBQzlDLFFBQVEsQ0FBQyxJQUFZO1FBQ25CLElBQUksSUFBSSxDQUFDLFdBQVc7WUFBRSxPQUFPO1FBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxtREFBbUQ7SUFDbkQsa0JBQWtCLENBQUMsTUFBNkI7UUFDOUMsSUFBSSxJQUFJLENBQUMsV0FBVztZQUFFLE9BQU87UUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsNkVBQTZFO0lBQzdFLGdCQUFnQixDQUFDLEtBQWE7UUFDNUIsSUFBSSxJQUFJLENBQUMsV0FBVztZQUFFLE9BQU87UUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsNEVBQTRFO0lBQzVFLGFBQWEsQ0FBQyxLQUFvQjtRQUNoQyxJQUFJLElBQUksQ0FBQyxXQUFXO1lBQUUsT0FBTztRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsc0NBQXNDO0lBQ3RDLFVBQVUsQ0FBQyxPQUFnQjtRQUN6QixJQUFJLElBQUksQ0FBQyxXQUFXO1lBQUUsT0FBTztRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsK0RBQStEO0lBQy9ELGlCQUFpQixDQUFDLE9BQWU7UUFDL0IsSUFBSSxJQUFJLENBQUMsV0FBVztZQUFFLE9BQU87UUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQseURBQXlEO0lBQ3pELFlBQVk7UUFDVixJQUFJLElBQUksQ0FBQyxXQUFXO1lBQUUsT0FBTztRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxpRUFBaUU7SUFDakUscUJBQXFCLENBQUMsTUFBcUI7UUFDekMsSUFBSSxJQUFJLENBQUMsV0FBVztZQUFFLE9BQU87UUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsNkRBQTZEO0lBQzdELGVBQWUsQ0FBQyxNQUFxQjtRQUNuQyxJQUFJLElBQUksQ0FBQyxXQUFXO1lBQUUsT0FBTztRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQseUVBQXlFO0lBQ3pFLG1CQUFtQixDQUFDLFdBQW1CO1FBQ3JDLElBQUksSUFBSSxDQUFDLFdBQVc7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELG9FQUFvRTtJQUNwRSxzQkFBc0IsQ0FBQyxLQUFhO1FBQ2xDLElBQUksSUFBSSxDQUFDLFdBQVc7WUFBRSxPQUFPO1FBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxjQUFjLENBQUMsS0FBYTtRQUMxQixJQUFJLElBQUksQ0FBQyxXQUFXO1lBQUUsT0FBTztRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsOEVBQThFO0lBQzlFLGlCQUFpQjtRQUNmLElBQUksSUFBSSxDQUFDLFdBQVc7WUFBRSxPQUFPO1FBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsaUZBQWlGO0lBQ2pGLGFBQWE7UUFDWCxJQUFJLElBQUksQ0FBQyxXQUFXO1lBQUUsT0FBTztRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxvQkFBb0I7SUFFcEI7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUFDLElBQW9DO1FBQ3pDLElBQUksSUFBSSxDQUFDLFdBQVc7WUFBRSxPQUFPO1FBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZCLElBQUksSUFBSSxDQUFDLGVBQWUsS0FBSyxTQUFTLEVBQUU7WUFDdEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDbEQ7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE9BQU87UUFDTCxJQUFJLElBQUksQ0FBQyxXQUFXO1lBQUUsT0FBTztRQUM3QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVCLENBQUM7Q0FDRjtBQUVELDREQUE0RDtBQUU1RDs7Ozs7O0dBTUc7QUFDSCxTQUFTLEtBQUssQ0FBSSxDQUFlLEVBQUUsQ0FBZTtJQUNoRCxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFDekIsSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxNQUFNO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFDeEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDakMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUFFLE9BQU8sS0FBSyxDQUFDO0tBQ2pDO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsd0VBQXdFO0FBQ3hFLFNBQVMsZ0JBQWdCLENBQUMsQ0FBWTtJQUNwQyxPQUFPLENBQUMsQ0FBQyxlQUFlLENBQUM7QUFDM0IsQ0FBQztBQUVELFNBQVMsWUFBWSxDQUFDLENBQVk7SUFDaEMsT0FBTztRQUNMLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSTtRQUNaLGVBQWUsRUFBRSxDQUFDLENBQUMsZUFBZTtRQUNsQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLGFBQWE7UUFDOUIsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLGdCQUFnQjtRQUNwQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLHFCQUFxQjtRQUN4QyxRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVE7UUFDcEIsVUFBVSxFQUFFLENBQUMsQ0FBQyxVQUFVO1FBQ3hCLFdBQVcsRUFBRSxDQUFDLENBQUMsV0FBVztRQUMxQixRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVE7UUFDcEIsWUFBWSxFQUFFLENBQUMsQ0FBQyxZQUFZO1FBQzVCLFdBQVcsRUFBRSxDQUFDLENBQUMsbUJBQW1CO1FBQ2xDLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7UUFDOUIsT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPO1FBQ2xCLFNBQVMsRUFBRSxDQUFDLENBQUMsU0FBUztRQUN0QixjQUFjLEVBQUUsQ0FBQyxDQUFDLGNBQWM7UUFDaEMsZUFBZSxFQUFFLENBQUMsQ0FBQyxlQUFlO1FBQ2xDLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSztRQUNkLFlBQVksRUFBRSxDQUFDLENBQUMsWUFBWTtRQUM1QixpQkFBaUIsRUFBRSxDQUFDLENBQUMsaUJBQWlCO1FBQ3RDLGFBQWEsRUFBRSxDQUFDLENBQUMsYUFBYTtRQUM5QixXQUFXLEVBQUUsQ0FBQyxDQUFDLFdBQVc7S0FDM0IsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLGVBQWUsQ0FDdEIsQ0FBWSxFQUNaLGVBQWtDO0lBRWxDLE1BQU0sWUFBWSxHQUFHLENBQUMsQ0FBQyxZQUFZLENBQUM7SUFDcEMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLENBQUMsaUJBQWlCLENBQUM7SUFDOUMsTUFBTSxhQUFhLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEQsTUFBTSxZQUFZLEdBQXNCLFlBQVk7UUFDbEQsQ0FBQyxDQUFDO1lBQ0UsSUFBSSxFQUFFLFlBQVksQ0FBQyxjQUFjO1lBQ2pDLElBQUksRUFBRSxZQUFZLENBQUMscUJBQXFCO1lBQ3hDLFFBQVEsRUFBRSxJQUFJO1lBQ2QsT0FBTyxFQUFFLFlBQVksQ0FBQyxPQUFPO1NBQzlCO1FBQ0gsQ0FBQyxDQUFDLGlCQUFpQjtZQUNqQixDQUFDLENBQUMsaUVBQWlFO2dCQUNqRSx3RUFBd0U7Z0JBQ3hFO29CQUNFLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUM1QixJQUFJLEVBQUUsb0JBQW9CLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDO29CQUNsRCxRQUFRLEVBQUUsSUFBSTtvQkFDZCxPQUFPLEVBQUUsRUFBRTtpQkFDWjtZQUNILENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDWCxNQUFNLGtCQUFrQixHQUFHLENBQUMsQ0FBQyxrQkFBa0IsSUFBSSxZQUFZLElBQUksZ0JBQWdCLENBQUM7SUFDcEYsTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUM7SUFDOUUsT0FBTztRQUNMLFdBQVcsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsa0JBQWtCLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1FBQzlGLFdBQVcsRUFBRSxDQUFDLENBQUMsbUJBQW1CO1FBQ2xDLE1BQU0sRUFBRSxDQUFDLENBQUMsY0FBYztRQUN4QixLQUFLLEVBQUUsYUFBYTtRQUNwQixvQkFBb0IsRUFBRSxDQUFDLENBQUMsb0JBQW9CO1FBQzVDLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7UUFDOUIsZUFBZSxFQUFFLENBQUMsQ0FBQyxlQUFlO1FBQ2xDLFlBQVksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sS0FBSyxDQUFDO1FBQ3hDLFFBQVEsRUFBRSxDQUFDLENBQUMsUUFBUTtRQUNwQixTQUFTLEVBQUUsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztRQUM5RCxvQkFBb0IsRUFBRSxDQUFDLENBQUMsb0JBQW9CO1FBQzVDLG9FQUFvRTtRQUNwRSxzRUFBc0U7UUFDdEUsMkVBQTJFO1FBQzNFLGtDQUFrQztRQUNsQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLGdCQUFnQjtRQUM5QixRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVE7UUFDcEIsZUFBZSxFQUFFLGFBQWEsQ0FBQyxXQUFXO1FBQzFDLGlCQUFpQixFQUFFLGFBQWEsQ0FBQyxhQUFhO1FBQzlDLGNBQWMsRUFBRSxhQUFhLENBQUMsVUFBVTtRQUN4QyxlQUFlO0tBQ2hCLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgdHlwZSBBdXRvY29tcGxldGVSZXN1bHQsXG4gIHR5cGUgQ29tcGxldGVkUGFyYW1TdGF0ZSxcbiAgQUlBdXRvY29tcGxldGUgYXMgQ29yZUFJQXV0b2NvbXBsZXRlLFxuICB0eXBlIENvcmVTdGF0ZSxcbiAgdHlwZSBDdXN0b21GaWVsZHNSZXBvcnQsXG4gIGRhdGVTZWxlY3Rpb25Gb3IsXG4gIHR5cGUgSWRlbnRpZmllZFBhcmFtU3RhdGUsXG4gIGlkZW50aWZpZWRQYXJhbUxhYmVsLFxuICB0eXBlIFByb2R1Y3QsXG4gIHR5cGUgU2VnbWVudCxcbiAgdHlwZSBTa2lwcGVkUGFyYW1TdGF0ZSxcbiAgdHlwZSBTdWdnZXN0aW9uLFxuICB0eXBlIFN1Z2dlc3Rpb25PcHRpb24sXG59IGZyb20gXCJAbWFnaWN4LWVuZy9haS1hdXRvY29tcGxldGUtdmFuaWxsYVwiO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtYXAsIHR5cGUgT2JzZXJ2YWJsZSwgc2hhcmVSZXBsYXkgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHR5cGUge1xuICBBSUF1dG9jb21wbGV0ZUNvbnRyb2xsZXJPcHRpb25zLFxuICBBSUF1dG9jb21wbGV0ZUNvbnRyb2xsZXJTdGF0ZSxcbiAgQUlBdXRvY29tcGxldGVDb250cm9sbGVyVXBkYXRlLFxuICBBSUF1dG9jb21wbGV0ZURyb3Bkb3duU3RhdGUsXG59IGZyb20gXCIuLi9zaGFyZWQvdHlwZXNcIjtcbmltcG9ydCB7IGRlcml2ZUZpZWxkIH0gZnJvbSBcIi4vb2JzZXJ2YWJsZXNcIjtcblxuLyoqXG4gKiBUaWVyIDIgbG9naWMgc3VyZmFjZSBmb3IgYEBtYWdpY3gtZW5nL2FpLWF1dG9jb21wbGV0ZS1hbmd1bGFyYCDigJQgdGhlIEFuZ3VsYXJcbiAqIGVxdWl2YWxlbnQgb2YgUmVhY3QncyBgdXNlQUlBdXRvY29tcGxldGUoKWAgaG9vay4gV3JhcHMgYSBoZWFkbGVzc1xuICogYEBtYWdpY3gtZW5nL2FpLWF1dG9jb21wbGV0ZS12YW5pbGxhYCBjb3JlIGFuZCBleHBvc2VzIGl0cyBzdGF0ZSBhcyBSeEpTXG4gKiBvYnNlcnZhYmxlcyBwbHVzIHRoaW4gYWN0aW9uIG1ldGhvZHMuXG4gKlxuICogVGhlIGNvbnRyb2xsZXIgaXMgY29uc3VtZXItbWFuYWdlZCDigJQgdGhlIGNvbnN1bWVyIGNyZWF0ZXMgaXRcbiAqIHdpdGggYG5ld2AsIGhvbGRzIHRoZSByZWZlcmVuY2UsIGFuZCAqKm11c3QgY2FsbCBgZGVzdHJveSgpYCoqIGluIHRoZWlyXG4gKiBvd24gYG5nT25EZXN0cm95YC4gVGhlIFRpZXIgMSBgPGFpLWF1dG9jb21wbGV0ZT5gIGNvbXBvbmVudCBkb2VzIHRoaXNcbiAqIGF1dG9tYXRpY2FsbHk7IFRpZXIgMiBjb25zdW1lcnMgZG8gbm90IGdldCBhdXRvLWNsZWFudXAuXG4gKlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY2xhc3MgQUlBdXRvY29tcGxldGVDb250cm9sbGVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSBjb3JlOiBDb3JlQUlBdXRvY29tcGxldGU7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmF3U3RhdGUkOiBCZWhhdmlvclN1YmplY3Q8Q29yZVN0YXRlPjtcbiAgLy8gb3B0aW9uc1Bvc2l0aW9uIGlzbid0IHBhcnQgb2YgQ29yZVN0YXRlIChpdCdzIGEgY29yZSBvcHRpb24pLCBzbyB0cmFjayBpdFxuICAvLyBoZXJlIGFuZCBmb2xkIGl0IGludG8gYGRyb3Bkb3duJGAgc28gdGhlIGRyb3Bkb3duIGNhbiByZWFkIHBsYWNlbWVudCBmcm9tXG4gIC8vIHRoZSBjb250cm9sbGVyIOKAlCBjb25maWd1cmVkIG9uY2UsIGtlcHQgaW4gc3luYyB0aHJvdWdoIHVwZGF0ZSgpLlxuICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnNQb3NpdGlvbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFwiYWJvdmVcIiB8IFwiYmVsb3dcIj4oXCJiZWxvd1wiKTtcbiAgcHJpdmF0ZSByZWFkb25seSB1bnN1YnNjcmliZUNvcmU6ICgpID0+IHZvaWQ7XG4gIHByaXZhdGUgaXNEZXN0cm95ZWQgPSBmYWxzZTtcblxuICAvLyA9PT0gUGVyLWZpZWxkIG9ic2VydmFibGVzID09PVxuICAvLyBFYWNoIG9uZSBydW5zIHRocm91Z2ggZGVyaXZlRmllbGQsIHdoaWNoIGJha2VzIGluIGRpc3RpbmN0VW50aWxDaGFuZ2VkXG4gIC8vIGFuZCBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiB0cnVlIH0pIHBlciDCpzE5LjQuXG5cbiAgLyoqIFBsYWluLXRleHQgY29udGVudCBvZiB0aGUgZWRpdG9yLiAqL1xuICByZWFkb25seSB0ZXh0JDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICAvKiogQ29tcGxldGVkIChib2xkKSBwYXJhbXMgY3VycmVudGx5IGluIHRoZSBlZGl0b3IuICovXG4gIHJlYWRvbmx5IGNvbXBsZXRlZFBhcmFtcyQ6IE9ic2VydmFibGU8Q29tcGxldGVkUGFyYW1TdGF0ZVtdPjtcbiAgLyoqXG4gICAqIFN1Z2dlc3Rpb25zIHRoZSB1c2VyIGRpc21pc3NlZCB3aXRoIHRoZSBza2lwIGtleSAo4oaSKS4gTm90aGluZyByZW5kZXJzXG4gICAqIHRoZW07IHRoZXkgZXhpc3Qgc28gYSBoYW5kLXJvbGxlZCBzdWJtaXQgY2FuIHBhc3MgdGhlbSB0b1xuICAgKiBgYnVpbGRTdWJtaXRSZXN1bHRgIGFuZCBjYXJyeSB0aGUgc2FtZSBgdGV4dDogXCJza2lwcGVkXCJgIGVudHJpZXMgdGhlXG4gICAqIFNESydzIG93biByZXF1ZXN0cyBkby5cbiAgICovXG4gIHJlYWRvbmx5IHNraXBwZWRQYXJhbXMkOiBPYnNlcnZhYmxlPFNraXBwZWRQYXJhbVN0YXRlW10+O1xuICAvKipcbiAgICogUGFyYW1zIHRoZSBzZXJ2ZXIgaWRlbnRpZmllZCBpbiB0aGUgdXNlcidzIG93biB3b3Jkcy4gQWxyZWFkeSByZW5kZXJlZFxuICAgKiB0aHJvdWdoIGBzZWdtZW50cyRgOyBleHBvc2VkIHNvIGEgaGFuZC1yb2xsZWQgc3VibWl0IGNhbiBwYXNzIHRoZW0gdG9cbiAgICogYGJ1aWxkU3VibWl0UmVzdWx0YCBhbmQgcmVwb3J0IHRoZSBzYW1lIGBpZGVudGlmaWVkX3BhcmFtc2AgdGhlIFNESydzXG4gICAqIG93biByZXN1bHRzIGNhcnJ5LlxuICAgKi9cbiAgcmVhZG9ubHkgaWRlbnRpZmllZFBhcmFtcyQ6IE9ic2VydmFibGU8SWRlbnRpZmllZFBhcmFtU3RhdGVbXT47XG4gIC8qKiBBY3Rpb25hYmxlIHN1Z2dlc3Rpb24gcGlsbHMgKGZpcnN0IG9uZSBpcyB0aGUgYWN0aXZlIHBpbGwpLiAqL1xuICByZWFkb25seSBzdWdnZXN0aW9uUGlsbHMkOiBPYnNlcnZhYmxlPFN1Z2dlc3Rpb25bXT47XG4gIC8qKiBUZXh0ICsgY29tcGxldGVkLXBhcmFtIHNlZ21lbnRzIGZvciByZW5kZXJpbmcgdGhlIGVkaXRvciBib2R5LiAqL1xuICByZWFkb25seSBzZWdtZW50cyQ6IE9ic2VydmFibGU8U2VnbWVudFtdPjtcbiAgLyoqIElEIG9mIHRoZSBtb3N0LXJlY2VudGx5LXByb21vdGVkIHBhcmFtIChkcml2ZXMgc2hpbW1lciBhbmltYXRpb24pLiAqL1xuICByZWFkb25seSBuZXdQYXJhbUlkJDogT2JzZXJ2YWJsZTxzdHJpbmcgfCBudWxsPjtcbiAgLyoqIEFsbCBzdWdnZXN0aW9ucyBmcm9tIHRoZSBzZXJ2ZXIgKGluY2x1ZGluZyBub24tYWN0aW9uYWJsZSBvbmVzKS4gKi9cbiAgcmVhZG9ubHkgc3VnZ2VzdGlvbnMkOiBPYnNlcnZhYmxlPFN1Z2dlc3Rpb25bXT47XG4gIC8qKlxuICAgKiBXaGF0IHRoZSBwcm9kdWN0IHN0cmlwIHNob3dzOiB0aGUgaXRlbXMgdGhlIGxhdGVzdCBgL3N1Z2dlc3RgIHJlc3BvbnNlXG4gICAqIHJlcG9ydGVkIGFzIG1hdGNoaW5nIHRoZSBxdWVyeSwgb3Ig4oCUIHdpdGggYHByb2R1Y3RzYCBjb25maWd1cmVkIG9uIHRoZVxuICAgKiBjb250cm9sbGVyIOKAlCB0aGUgcmVzdWx0cyBvZiB0aGF0IGN1c3RvbSBzZWFyY2guXG4gICAqL1xuICByZWFkb25seSBwcm9kdWN0cyQ6IE9ic2VydmFibGU8UHJvZHVjdFtdPjtcbiAgLyoqXG4gICAqIFRoZSBjYXRhbG9nIGdyb3VuZGluZyByZXBvcnQgdGhlIGxhdGVzdCByZXNwb25zZSBjYXJyaWVkLCBvciBudWxsIHdoZW4gaXRcbiAgICogY2FycmllZCBub25lOiB3aGljaCBvZiB0aGUgcXVlcnkncyBjb25zdHJhaW50cyB0aGUgY2F0YWxvZyBhcHBsaWVkLCB3aGljaFxuICAgKiBpdCBkcm9wcGVkLCBhbmQgaG93IG1hbnkgaXRlbXMgKGFuZCB3aGljaCkgdGhlIGFwcGxpZWQgb25lcyBsZWZ0XG4gICAqIHN0YW5kaW5nLiBOdWxsIGlzIFwibm8gbmV3c1wiLCBub3QgYW4gZW1wdHkgY2F0YWxvZy5cbiAgICovXG4gIHJlYWRvbmx5IGN1c3RvbUZpZWxkcyQ6IE9ic2VydmFibGU8Q3VzdG9tRmllbGRzUmVwb3J0IHwgbnVsbD47XG4gIC8qKiBDdXJyZW50bHkgaGlnaGxpZ2h0ZWQgZHJvcGRvd24gb3B0aW9uIGluZGV4LiAtMSA9IG5vbmUuICovXG4gIHJlYWRvbmx5IGFjdGl2ZUluZGV4JDogT2JzZXJ2YWJsZTxudW1iZXI+O1xuICAvKipcbiAgICogVUktdmlzaWJsZSBsb2FkaW5nIGZsYWcg4oCUIHN1cHByZXNzZWQgZHVyaW5nIHRoZSBwb3N0LXNlbGVjdCBwcmVzc1xuICAgKiBhbmltYXRpb24gYW5kIGR1cmluZyByZS1lZGl0IChjYWNoZWQgb3B0aW9ucyBzdGF5IHZpc2libGUgdGhlcmUpLiBVc2VcbiAgICogdGhpcyBpbnN0ZWFkIG9mIHRoZSByYXcgY29yZSBzdGF0ZSBmb3IgYW55IGxvYWRpbmctc2tlbGV0b24gYmluZGluZy5cbiAgICovXG4gIHJlYWRvbmx5IGlzTG9hZGluZyQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIC8qKiBTZXJ2ZXItcmVwb3J0ZWQgXCJxdWVyeSBpcyBjb21wbGV0ZVwiIGZsYWcuICovXG4gIHJlYWRvbmx5IGlzUmVhZHkkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAvKiogV2hldGhlciB0aGUgZWRpdG9yIGN1cnJlbnRseSBoYXMgZm9jdXMuICovXG4gIHJlYWRvbmx5IGlzRm9jdXNlZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIC8qKiBXaGV0aGVyIHRoZSBkcm9wZG93biBzaG91bGQgY3VycmVudGx5IGJlIHZpc2libGUuICovXG4gIHJlYWRvbmx5IGlzRHJvcGRvd25PcGVuJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGFjdGl2ZSAobGVhZGluZykgcGlsbCBzaG91bGQgcmVuZGVyIHNlbGVjdGVkIChmdWxsIG9wYWNpdHkpXG4gICAqIHJhdGhlciB0aGFuIHRoZSBkZS1lbXBoYXNpemVkIGBmaXJzdGAgdGllci4gQXV0byB0cmlnZ2VyIOKHkiB0cnVlIG9ubHkgd2hpbGVcbiAgICogYSBkcm9wZG93biBvcHRpb24gaXMgaGlnaGxpZ2h0ZWQ7IG1hbnVhbCDih5IgdHJ1ZSBvbmNlIHRoZSBwaWxsIGlzIHRhcHBlZC5cbiAgICovXG4gIHJlYWRvbmx5IGlzQWN0aXZlUGlsbFNlbGVjdGVkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgLyoqIFNlcnZlci1zdWdnZXN0ZWQgcGxhY2Vob2xkZXIgdGV4dCBmb3IgdGhlIGVkaXRvci4gKi9cbiAgcmVhZG9ubHkgcGxhY2Vob2xkZXJUZXh0JDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICAvKiogTGFzdCBmZXRjaCBlcnJvciwgb3IgbnVsbC4gKi9cbiAgcmVhZG9ubHkgZXJyb3IkOiBPYnNlcnZhYmxlPEVycm9yIHwgbnVsbD47XG4gIC8qKiBQYXJhbSBjdXJyZW50bHkgYmVpbmcgcmUtZWRpdGVkLCBvciBudWxsLiAqL1xuICByZWFkb25seSBlZGl0aW5nUGFyYW0kOiBPYnNlcnZhYmxlPENvbXBsZXRlZFBhcmFtU3RhdGUgfCBudWxsPjtcbiAgLyoqIFBsYWluLXRleHQgb2Zmc2V0IHdoZXJlIHRoZSBlZGl0IHJlZ2lvbiBzdGFydHMsIG9yIG51bGwuICovXG4gIHJlYWRvbmx5IGVkaXRpbmdBbmNob3IkOiBPYnNlcnZhYmxlPG51bWJlciB8IG51bGw+O1xuICAvKiogTGl2ZSBjYXJldCBvZmZzZXQgd2l0aGluIHRoZSBlZGl0b3IuICovXG4gIHJlYWRvbmx5IGNhcmV0T2Zmc2V0JDogT2JzZXJ2YWJsZTxudW1iZXIgfCBudWxsPjtcblxuICAvLyA9PT0gQ29tcG9zaXRlIG9ic2VydmFibGVzID09PVxuXG4gIC8qKlxuICAgKiBTbmFwc2hvdCBvZiBldmVyeSBwdWJsaWMgZmllbGQgaW4gb25lIG9iamVjdC4gQ29udmVuaWVudCBmb3JcbiAgICogYCpuZ0lmPVwiY3RybC5zdGF0ZSQgfCBhc3luYyBhcyBzdGF0ZVwiYCB0ZW1wbGF0aW5nIOKAlCBhbGlhc2VzIGFsbCBmaWVsZHNcbiAgICogdW5kZXIgYSBzaW5nbGUgc3Vic2NyaXB0aW9uIGluc3RlYWQgb2YgbXVsdGlwbGUgYHwgYXN5bmNgIHBpcGVzLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhdGUkOiBPYnNlcnZhYmxlPEFJQXV0b2NvbXBsZXRlQ29udHJvbGxlclN0YXRlPjtcblxuICAvKipcbiAgICogQ29tcG9zaXRlIHN0YXRlIGZvciB0aGUgZHJvcGRvd24gdmlldy4gVGllciAyIGNvbnN1bWVycyBzcHJlYWQgdGhpcyBpbnRvXG4gICAqIGA8YWktYXV0b2NvbXBsZXRlLWRyb3Bkb3duPmA7IFRpZXIgMSB1c2VzIHRoZSBzYW1lIHNoYXBlIGludGVybmFsbHkuXG4gICAqL1xuICByZWFkb25seSBkcm9wZG93biQ6IE9ic2VydmFibGU8QUlBdXRvY29tcGxldGVEcm9wZG93blN0YXRlPjtcblxuICAvKipcbiAgICogVGhyb3dzIGlmIGludm9rZWQgb3V0c2lkZSBhIGJyb3dzZXIgZW52aXJvbm1lbnQuIEZvciBTU1IgLyBBbmd1bGFyXG4gICAqIFVuaXZlcnNhbCwgZ2F0ZSBjb25zdHJ1Y3Rpb24gd2l0aCBgaXNQbGF0Zm9ybUJyb3dzZXJgLlxuICAgKi9cbiAgY29uc3RydWN0b3Iob3B0czogQUlBdXRvY29tcGxldGVDb250cm9sbGVyT3B0aW9ucyA9IHt9KSB7XG4gICAgaWYgKHR5cGVvZiBkb2N1bWVudCA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIkFJQXV0b2NvbXBsZXRlQ29udHJvbGxlciByZXF1aXJlcyBhIGJyb3dzZXIgZW52aXJvbm1lbnQuIFwiICtcbiAgICAgICAgICBcIkZvciBTU1IgLyBBbmd1bGFyIFVuaXZlcnNhbCwgZ2F0ZSBjb25zdHJ1Y3Rpb24gd2l0aCBpc1BsYXRmb3JtQnJvd3Nlci5cIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gSGVhZGxlc3MgbW9kZSBuZXZlciByZW5kZXJzIHRvIHRoZSBob3N0LCBzbyBhIHRocm93YXdheSBkaXYgaXMgZmluZSDigJRcbiAgICAvLyBpdCdzIHJlcXVpcmVkIGJ5IHRoZSBjb3JlJ3Mgc2lnbmF0dXJlIGZvciBzeW1tZXRyeSB3aXRoIGZ1bGwgbW9kZS5cbiAgICBjb25zdCBob3N0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcblxuICAgIHRoaXMuY29yZSA9IG5ldyBDb3JlQUlBdXRvY29tcGxldGUoaG9zdCwge1xuICAgICAgLi4ub3B0cyxcbiAgICAgIHJlbmRlck1vZGU6IFwiaGVhZGxlc3NcIixcbiAgICAgIHNvdXJjZTogb3B0cy5zb3VyY2UgPz8gXCJoZWFkbGVzcy1zZGtcIixcbiAgICAgIC8vIEhlYWRsZXNzIG1vZGUgbmV2ZXIgcmVuZGVycyB0aGUgZHJvcGRvd24gRE9NLCBidXQgdGhlIGtleWJvYXJkXG4gICAgICAvLyBjb250cm9sbGVyIHN0aWxsIHJlYWRzIGBvcHRpb25zUG9zaXRpb25gIHRvIGRlY2lkZSB3aGljaCB2ZXJ0aWNhbFxuICAgICAgLy8gYXJyb3cgb3BlbnMgdGhlIGRyb3Bkb3duIGZyb20gdGhlIGlucHV0LlxuICAgICAgb3B0aW9uc1Bvc2l0aW9uOiBvcHRzLm9wdGlvbnNQb3NpdGlvbiA/PyBcImJlbG93XCIsXG4gICAgfSk7XG5cbiAgICB0aGlzLnJhd1N0YXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q29yZVN0YXRlPih0aGlzLmNvcmUuZ2V0U3RhdGUoKSk7XG4gICAgLy8gUHVzaCB0aGUgc3RvcmUncyAqY3VycmVudCogc3RhdGUsIG5vdCB0aGUgc25hcHNob3QgdGhlIGxpc3RlbmVyIHdhc1xuICAgIC8vIGhhbmRlZC4gVGhlIGNvcmUgbm90aWZpZXMgbGlzdGVuZXJzIHN5bmNocm9ub3VzbHksIGFuZCBzb21lIGFjdGlvbnNcbiAgICAvLyB0cmlnZ2VyIHJlZW50cmFudCBgc3RvcmUuc2V0YCBjYWxscyAoZS5nLiB0eXBpbmcgYSBub24tbWF0Y2hpbmcgY2hhclxuICAgIC8vIGR1cmluZyByZS1lZGl0IG1ha2VzIHRoZSBjb3JlIHN5bmNocm9ub3VzbHkgZXhpdCByZS1lZGl0IGFuZCBraWNrIG9mZiBhXG4gICAgLy8gZmV0Y2gpLlxuICAgIC8vXG4gICAgLy8gVGhlIGNvcmUncyBzdG9yZSB1c2VkIHRvIGRlbGl2ZXIgc3VjaCBhIG5lc3RlZCBzZXQgaW5saW5lIGFuZCB0aGVuXG4gICAgLy8gcmVzdW1lIHRoZSBvdXRlciBsaXN0ZW5lciBsb29wLCBzbyBhIGxpc3RlbmVyIGNvdWxkIGJlIGhhbmRlZCBhbiBvbGRlclxuICAgIC8vIHN0YXRlIChzdGlsbCBpbiByZS1lZGl0KSAqYWZ0ZXIqIGEgbmV3ZXIgb25lIChyZS1lZGl0IGV4aXRlZCkg4oCUIHdoaWNoXG4gICAgLy8gcmVzdXJyZWN0ZWQgYSBzdGFsZSBgZWRpdGluZ1BhcmFtYCBhbmQgcmV0cmlnZ2VyZWQgdGhlIGVkaXRvcidzIHJlLWVkaXRcbiAgICAvLyBjYXJldC1wYXJrLCB5YW5raW5nIHRoZSBjYXJldCBiYWNrIHRvIHdoZXJlIHJlLWVkaXRpbmcgc3RhcnRlZC4gVGhlXG4gICAgLy8gc3RvcmUgbm93IHF1ZXVlcyBub3RpZmljYXRpb25zIGFuZCBkcmFpbnMgdGhlbSBpbiBvcmRlciwgc28gdGhhdFxuICAgIC8vIG91dC1vZi1vcmRlciBkZWxpdmVyeSBjYW4gbm8gbG9uZ2VyIGhhcHBlbiBhdCB0aGUgc291cmNlLlxuICAgIC8vXG4gICAgLy8gUmVhZGluZyBgZ2V0U3RhdGUoKWAgYXQgZW1pc3Npb24gdGltZSBpcyBrZXB0IGFzIGJlbHQtYW5kLWJyYWNlczogaXRcbiAgICAvLyBjb3N0cyBub3RoaW5nIChkaXN0aW5jdFVudGlsQ2hhbmdlZCBkb3duc3RyZWFtIGRyb3BzIHRoZSBkdXBsaWNhdGVcbiAgICAvLyBlbWlzc2lvbnMpIGFuZCBrZWVwcyB0aGlzIGJyaWRnZSBjb3JyZWN0IGZvciBhbnkgZnV0dXJlIGNvbnN1bWVyIHRoYXRcbiAgICAvLyBlbWl0cyBtaWQtY2FzY2FkZS4gUmVhY3QgbmVlZHMgbmVpdGhlciwgc2luY2UgaXQgYmF0Y2hlcyByZW5kZXJzIGFuZFxuICAgIC8vIGdhdGVzIGl0cyBjYXJldCBlZmZlY3RzIG9uIGRlcGVuZGVuY2llcy5cbiAgICB0aGlzLnVuc3Vic2NyaWJlQ29yZSA9IHRoaXMuY29yZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmlzRGVzdHJveWVkKSB0aGlzLnJhd1N0YXRlJC5uZXh0KHRoaXMuY29yZS5nZXRTdGF0ZSgpKTtcbiAgICB9KTtcblxuICAgIC8vID09PSBQZXItZmllbGQgb2JzZXJ2YWJsZXMgPT09XG4gICAgLy8gQXJyYXktdmFsdWVkIGZpZWxkcyB1c2Ugc2hhbGxvdyBlcXVhbGl0eS4gVGhlIHZhbmlsbGEgc3RvcmUgc3ByZWFkcyBvblxuICAgIC8vIGV2ZXJ5IHdyaXRlIChgc3RvcmUuc2V0KHsgY29tcGxldGVkUGFyYW1zOiBbLi4uXSB9KWApLCBzbyByZWZlcmVuY2VcbiAgICAvLyBlcXVhbGl0eSB3b3VsZCByZS1maXJlIGRvd25zdHJlYW0gc3Vic2NyaWJlcnMgb24gZXZlcnkgc3RhdGUgdGljayBldmVuXG4gICAgLy8gd2hlbiB0aGUgYXJyYXkncyBjb250ZW50cyBhcmUgdW5jaGFuZ2VkLiBUaGUgb3RoZXIgZmllbGRzIGFyZVxuICAgIC8vIHByaW1pdGl2ZXMgb3Igc3RhYmxlIG9iamVjdCByZWZlcmVuY2VzLCBzbyBkZWZhdWx0IGlkZW50aXR5IGVxdWFsaXR5XG4gICAgLy8gd29ya3MgZmluZS5cbiAgICB0aGlzLnRleHQkID0gZGVyaXZlRmllbGQodGhpcy5yYXdTdGF0ZSQsIChzKSA9PiBzLnRleHQpO1xuICAgIHRoaXMuY29tcGxldGVkUGFyYW1zJCA9IGRlcml2ZUZpZWxkKHRoaXMucmF3U3RhdGUkLCAocykgPT4gcy5jb21wbGV0ZWRQYXJhbXMsIGFyckVxKTtcbiAgICB0aGlzLnNraXBwZWRQYXJhbXMkID0gZGVyaXZlRmllbGQodGhpcy5yYXdTdGF0ZSQsIChzKSA9PiBzLnNraXBwZWRQYXJhbXMsIGFyckVxKTtcbiAgICB0aGlzLmlkZW50aWZpZWRQYXJhbXMkID0gZGVyaXZlRmllbGQodGhpcy5yYXdTdGF0ZSQsIChzKSA9PiBzLmlkZW50aWZpZWRQYXJhbXMsIGFyckVxKTtcbiAgICB0aGlzLnN1Z2dlc3Rpb25QaWxscyQgPSBkZXJpdmVGaWVsZCh0aGlzLnJhd1N0YXRlJCwgKHMpID0+IHMuYWN0aW9uYWJsZVN1Z2dlc3Rpb25zLCBhcnJFcSk7XG4gICAgdGhpcy5zZWdtZW50cyQgPSBkZXJpdmVGaWVsZCh0aGlzLnJhd1N0YXRlJCwgKHMpID0+IHMuc2VnbWVudHMsIGFyckVxKTtcbiAgICB0aGlzLm5ld1BhcmFtSWQkID0gZGVyaXZlRmllbGQodGhpcy5yYXdTdGF0ZSQsIChzKSA9PiBzLm5ld1BhcmFtSWQpO1xuICAgIHRoaXMuc3VnZ2VzdGlvbnMkID0gZGVyaXZlRmllbGQodGhpcy5yYXdTdGF0ZSQsIChzKSA9PiBzLnN1Z2dlc3Rpb25zLCBhcnJFcSk7XG4gICAgdGhpcy5wcm9kdWN0cyQgPSBkZXJpdmVGaWVsZCh0aGlzLnJhd1N0YXRlJCwgKHMpID0+IHMucHJvZHVjdHMsIGFyckVxKTtcbiAgICB0aGlzLmN1c3RvbUZpZWxkcyQgPSBkZXJpdmVGaWVsZCh0aGlzLnJhd1N0YXRlJCwgKHMpID0+IHMuY3VzdG9tRmllbGRzKTtcbiAgICB0aGlzLmFjdGl2ZUluZGV4JCA9IGRlcml2ZUZpZWxkKHRoaXMucmF3U3RhdGUkLCAocykgPT4gcy5hY3RpdmVEcm9wZG93bkluZGV4KTtcbiAgICB0aGlzLmlzTG9hZGluZyQgPSBkZXJpdmVGaWVsZCh0aGlzLnJhd1N0YXRlJCwgY29tcHV0ZVVpTG9hZGluZyk7XG4gICAgdGhpcy5pc1JlYWR5JCA9IGRlcml2ZUZpZWxkKHRoaXMucmF3U3RhdGUkLCAocykgPT4gcy5pc1JlYWR5KTtcbiAgICB0aGlzLmlzRm9jdXNlZCQgPSBkZXJpdmVGaWVsZCh0aGlzLnJhd1N0YXRlJCwgKHMpID0+IHMuaXNGb2N1c2VkKTtcbiAgICB0aGlzLmlzRHJvcGRvd25PcGVuJCA9IGRlcml2ZUZpZWxkKHRoaXMucmF3U3RhdGUkLCAocykgPT4gcy5pc0Ryb3Bkb3duT3Blbik7XG4gICAgdGhpcy5pc0FjdGl2ZVBpbGxTZWxlY3RlZCQgPSBkZXJpdmVGaWVsZCh0aGlzLnJhd1N0YXRlJCwgKHMpID0+IHMuaXNBY3RpdmVQaWxsU2VsZWN0ZWQpO1xuICAgIHRoaXMucGxhY2Vob2xkZXJUZXh0JCA9IGRlcml2ZUZpZWxkKHRoaXMucmF3U3RhdGUkLCAocykgPT4gcy5wbGFjZWhvbGRlclRleHQpO1xuICAgIHRoaXMuZXJyb3IkID0gZGVyaXZlRmllbGQodGhpcy5yYXdTdGF0ZSQsIChzKSA9PiBzLmVycm9yKTtcbiAgICB0aGlzLmVkaXRpbmdQYXJhbSQgPSBkZXJpdmVGaWVsZCh0aGlzLnJhd1N0YXRlJCwgKHMpID0+IHMuZWRpdGluZ1BhcmFtKTtcbiAgICB0aGlzLmVkaXRpbmdBbmNob3IkID0gZGVyaXZlRmllbGQodGhpcy5yYXdTdGF0ZSQsIChzKSA9PiBzLmVkaXRpbmdBbmNob3IpO1xuICAgIHRoaXMuY2FyZXRPZmZzZXQkID0gZGVyaXZlRmllbGQodGhpcy5yYXdTdGF0ZSQsIChzKSA9PiBzLmNhcmV0T2Zmc2V0KTtcblxuICAgIC8vID09PSBDb21wb3NpdGUgb2JzZXJ2YWJsZXMgPT09XG4gICAgLy8gUHJvamVjdCBkaXJlY3RseSBvZmYgYHJhd1N0YXRlJGAgd2l0aCBhIHNpbmdsZSBtYXAoKSBzbyBlYWNoIHN0b3JlXG4gICAgLy8gdGljayBwcm9kdWNlcyBleGFjdGx5IE9ORSBjb2hlcmVudCBzdGF0ZSQgZW1pc3Npb24uIFVzaW5nXG4gICAgLy8gYGNvbWJpbmVMYXRlc3RgIG92ZXIgdGhlIHBlci1maWVsZCBvYnNlcnZhYmxlcyBoZXJlIHdvdWxkIGZpcmUgb25lXG4gICAgLy8gZW1pc3Npb24gcGVyIGlubmVyLXNvdXJjZSB0aWNrICh1cCB0byBOIHBlciBzdG9yZSB1cGRhdGUpLCBhbmQgdGhlXG4gICAgLy8gZWRpdG9yLWhvc3QgZGlyZWN0aXZlJ3MgcG9zdC1wcm9tb3RlIHJlZm9jdXMgd291bGQgcnVuIGFnYWluc3QgYW5cbiAgICAvLyBpbnRlcm1lZGlhdGUgc3RhdGUgd2hlcmUgYG5ld1BhcmFtSWRgIHdhcyBzZXQgYnV0IGBzZWdtZW50c2AgL1xuICAgIC8vIGBjYXJldE9mZnNldGAgc3RpbGwgaGVsZCB0aGVpciBvbGQgdmFsdWVzIOKAlCBsZWF2aW5nIHRoZSBjYXJldCBzdHVja1xuICAgIC8vIGF0IHRoZSBwcmUtY2xpY2sgcG9zaXRpb24uXG4gICAgdGhpcy5zdGF0ZSQgPSB0aGlzLnJhd1N0YXRlJC5waXBlKFxuICAgICAgbWFwKGNvbXB1dGVTdGF0ZSksXG4gICAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiB0cnVlIH0pLFxuICAgICk7XG5cbiAgICB0aGlzLm9wdGlvbnNQb3NpdGlvbiQubmV4dChvcHRzLm9wdGlvbnNQb3NpdGlvbiA/PyBcImJlbG93XCIpO1xuICAgIHRoaXMuZHJvcGRvd24kID0gY29tYmluZUxhdGVzdChbdGhpcy5yYXdTdGF0ZSQsIHRoaXMub3B0aW9uc1Bvc2l0aW9uJF0pLnBpcGUoXG4gICAgICBtYXAoKFtzLCBvcHRpb25zUG9zaXRpb25dKSA9PiBjb21wdXRlRHJvcGRvd24ocywgb3B0aW9uc1Bvc2l0aW9uKSksXG4gICAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiB0cnVlIH0pLFxuICAgICk7XG4gIH1cblxuICAvLyA9PT0gUmVhZC1vbmx5IGFjY2Vzc29ycyA9PT1cblxuICAvKiogU3RhYmxlIEFSSUEgbGlzdGJveCBJRCBmb3IgdGhlIGRyb3Bkb3duLiBQYXNzIHRvIGA8dGV4dGFyZWEgYXJpYS1jb250cm9scz1cIi4uLlwiPmAuICovXG4gIGdldCBsaXN0Ym94SWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jb3JlLmxpc3Rib3hJZDtcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIGBkZXN0cm95KClgIGhhcyBiZWVuIGNhbGxlZC4gQWZ0ZXIgZGVzdHJ1Y3Rpb24gYWxsIGFjdGlvbiBtZXRob2RzIG5vLW9wLiAqL1xuICBnZXQgZGVzdHJveWVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzRGVzdHJveWVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFN5bmNocm9ub3VzIHNuYXBzaG90IG9mIHRoZSBjb250cm9sbGVyJ3MgY3VycmVudCBwdWJsaWMgc3RhdGUuIE1pcnJvcnNcbiAgICogdGhlIGxhdGVzdCBlbWlzc2lvbiBvZiBgc3RhdGUkYC4gVXNlZnVsIGluIGNhbGxiYWNrcyB3aGVyZSB5b3UgY2FuJ3RcbiAgICogYHN1YnNjcmliZWAgKGUuZy4gaW5zaWRlIGFuIGV2ZW50IGhhbmRsZXIpLlxuICAgKi9cbiAgZ2V0U3RhdGUoKTogQUlBdXRvY29tcGxldGVDb250cm9sbGVyU3RhdGUge1xuICAgIHJldHVybiBjb21wdXRlU3RhdGUodGhpcy5yYXdTdGF0ZSQudmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBzdHJ1Y3R1cmVkIHF1ZXJ5IGFzIHRoZSBTREsgdW5kZXJzdGFuZHMgaXQgcmlnaHQgbm93IOKAlCB0aGUgc2FtZVxuICAgKiBvYmplY3QgYG9uUmVzdWx0YCBkZWxpdmVycyBhZnRlciBlYWNoIHJlc3BvbnNlIGFuZCBgb25TdWJtaXRgIGRlbGl2ZXJzXG4gICAqIG9uIHN1Ym1pdC4gUmVhZCBpdCBvbiBkZW1hbmQgZnJvbSBhIHBsYWNlIHRoYXQgaGFzIG5vIGV2ZW50IGhhbmR5IChhXG4gICAqIGN1c3RvbSBzdWJtaXQgYnV0dG9uLCBhIFwic2F2ZSBkcmFmdFwiIGFjdGlvbikuXG4gICAqL1xuICBnZXRSZXN1bHQoKTogQXV0b2NvbXBsZXRlUmVzdWx0IHtcbiAgICByZXR1cm4gdGhpcy5jb3JlLmdldFJlc3VsdCgpO1xuICB9XG5cbiAgLy8gPT09IEFjdGlvbiBtZXRob2RzIChwYXNzLXRocm91Z2ggdG8gdGhlIGNvcmUpID09PVxuICAvL1xuICAvLyBFdmVyeSBhY3Rpb24gbWV0aG9kIGJlZ2lucyB3aXRoIGFuIGBpc0Rlc3Ryb3llZGAgZ3VhcmQgc28gdGhhdCBjYWxsZXJzXG4gIC8vIHdobyBob2xkIGEgc3RhbGUgcmVmZXJlbmNlIGFmdGVyIGBkZXN0cm95KClgIGRvbid0IGFjY2lkZW50YWxseSB0cmlnZ2VyXG4gIC8vIHdvcmsgb24gYSB0b3JuLWRvd24gY29yZS4gVGhlIHZhbmlsbGEgY29yZSBkb2VzIG5vdCBnYXRlIGl0cyBvd24gbWV0aG9kc1xuICAvLyBwb3N0LWRpc3Bvc2Ug4oCUIGByZXNldCgpYCwgYGhhbmRsZVRleHRDaGFuZ2UoKWAsIGFuZCBmcmllbmRzIHdvdWxkIHN0aWxsXG4gIC8vIHNjaGVkdWxlIGZldGNoZXMgb3IgZmlyZSBIVFRQIHJlcXVlc3RzIGFnYWluc3QgYW4gYWJvcnRlZCBjb250cm9sbGVyLFxuICAvLyBhbmQgdGhlIHJlc3BvbnNlcyB3b3VsZCBoYXZlIG5vd2hlcmUgdG8gc3VyZmFjZSAocmF3U3RhdGUkIGlzIGFscmVhZHlcbiAgLy8gY29tcGxldGUpLiBUaGUgZ3VhcmQgbWFrZXMgdGhlIEpTRG9jLXByb21pc2VkIFwibm8tb3Agc2lsZW50bHlcIlxuICAvLyBzZW1hbnRpY3MgYWN0dWFsbHkgdHJ1ZS5cblxuICAvKiogQ2xlYXIgYWxsIHN0YXRlLCByb3RhdGUgYHNlc3Npb25faWRgLCBhbmQgcmUtZmV0Y2guIENhbGwgYWZ0ZXIgc3VibWl0LiAqL1xuICByZXNldCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0Rlc3Ryb3llZCkgcmV0dXJuO1xuICAgIHRoaXMuY29yZS5yZXNldCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlY29yZHMgYSBzdWJtaXQgaW4gdGVsZW1ldHJ5LiBFbnRlciBpcyByZWNvcmRlZCBieSB0aGUgU0RLOyBjYWxsIHRoaXNcbiAgICogZnJvbSBhIHN1Ym1pdCBidXR0b24geW91IHJlbmRlciwgc28gZWFjaCBzdWJtaXQgaXMgY291bnRlZCBvbmNlLlxuICAgKi9cbiAgcmVjb3JkU3VibWl0KHJlc3VsdDogQXV0b2NvbXBsZXRlUmVzdWx0KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQpIHJldHVybjtcbiAgICB0aGlzLmNvcmUucmVjb3JkU3VibWl0KHJlc3VsdCk7XG4gIH1cblxuICAvKiogUGljayBhIGRyb3Bkb3duIG9wdGlvbiAob3IgcmVwbGFjZSB0aGUgcmUtZWRpdGVkIHBhcmFtIGlmIGluIHJlLWVkaXQgbW9kZSkuICovXG4gIHNlbGVjdE9wdGlvbihvcHRpb246IFN1Z2dlc3Rpb25PcHRpb24pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0Rlc3Ryb3llZCkgcmV0dXJuO1xuICAgIHRoaXMuY29yZS5zZWxlY3RPcHRpb24ob3B0aW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbm5vdW5jZSBhIHByb2R1Y3Qgc2VsZWN0aW9uIOKAlCBmaXJlcyB0aGUgYG9uUHJvZHVjdFNlbGVjdGAgY2FsbGJhY2sgdGhlXG4gICAqIGNvbnRyb2xsZXIgd2FzIGNvbnN0cnVjdGVkIHdpdGguIGA8YWktYXV0b2NvbXBsZXRlLWRyb3Bkb3duPmAgY2FsbHMgdGhpc1xuICAgKiBmb3IgeW91OyBjb25zdW1lcnMgcmVuZGVyaW5nIHRoZWlyIG93biBzdHJpcCBjYWxsIGl0IHRoZW1zZWx2ZXMuXG4gICAqXG4gICAqIEVtaXR0aW5nIGlzIHRoZSB3aG9sZSBiZWhhdmlvdXI6IHRoZSBTREsgZGVsaWJlcmF0ZWx5IGRvZXMgbm90IG5hdmlnYXRlIHRvXG4gICAqIGBwcm9kdWN0LnVybGAsIGJlY2F1c2Ugb25seSB0aGUgaW50ZWdyYXRpb24ga25vd3Mgd2hldGhlciBhIHNlbGVjdGlvblxuICAgKiBtZWFucyBcIm9wZW4gdGhlIFBEUFwiLCBcImFkZCB0byBjYXJ0XCIsIG9yIFwiZmlsbCB0aGUgaW5wdXRcIi5cbiAgICovXG4gIHNlbGVjdFByb2R1Y3QocHJvZHVjdDogUHJvZHVjdCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKSByZXR1cm47XG4gICAgdGhpcy5jb3JlLnNlbGVjdFByb2R1Y3QocHJvZHVjdCk7XG4gIH1cblxuICAvKiogUHJvbW90ZSB0aGUgcGlsbCBhdCBgaW5kZXhgIHRvIGFjdGl2ZSAoZnJvbnQgb2YgdGhlIGxpc3QpLiAqL1xuICBzZXRBY3RpdmVQaWxsKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0Rlc3Ryb3llZCkgcmV0dXJuO1xuICAgIHRoaXMuY29yZS5zZXRBY3RpdmVQaWxsKGluZGV4KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTa2lwIHRoZSBhY3RpdmUgcGlsbCDigJQgc2FtZSBhY3Rpb24gYXMgcHJlc3Npbmcg4oaSIGF0IHRoZSBlbmQgb2YgdGhlIGlucHV0LlxuICAgKiBUaGUgZHJvcGRvd24ncyBza2lwIGJ1dHRvbiBjYWxscyB0aGlzOyBjb25zdW1lcnMgcmVuZGVyaW5nIHRoZWlyIG93biBza2lwXG4gICAqIGFmZm9yZGFuY2UgY2FsbCBpdCBkaXJlY3RseS4gVGhlIHNraXBwZWQgc3VnZ2VzdGlvbiBqb2lucyBgc2tpcHBlZFBhcmFtcyRgLlxuICAgKi9cbiAgc2tpcEFjdGl2ZVBpbGwoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQpIHJldHVybjtcbiAgICB0aGlzLmNvcmUuc2tpcEFjdGl2ZVBpbGwoKTtcbiAgfVxuXG4gIC8qKiBEcm9wIHRoZSBsYXN0IGNvbXBsZXRlZCBwYXJhbSdzIFwiY29tcGxldGVkXCIgc3RhdHVzLiBUZXh0IHN0YXlzIGFzIHBsYWluIHRleHQuICovXG4gIHJlbW92ZUxhc3RQYXJhbSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0Rlc3Ryb3llZCkgcmV0dXJuO1xuICAgIHRoaXMuY29yZS5yZW1vdmVMYXN0UGFyYW0oKTtcbiAgfVxuXG4gIC8qKiBDbGVhciB0aGUgc2hpbW1lciBhbmltYXRpb24gc3RhdGUgZm9yIHRoZSBtb3N0LXJlY2VudGx5LWFkZGVkIHBhcmFtLiAqL1xuICBjbGVhck5ld1BhcmFtSWQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQpIHJldHVybjtcbiAgICB0aGlzLmNvcmUuY2xlYXJOZXdQYXJhbUlkKCk7XG4gIH1cblxuICAvKiogQ29udHJvbGxlZC1tb2RlIHNldHRlciBmb3IgZWRpdG9yIHRleHQuICovXG4gIHNldFZhbHVlKHRleHQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKSByZXR1cm47XG4gICAgdGhpcy5jb3JlLnNldFZhbHVlKHRleHQpO1xuICB9XG5cbiAgLyoqIENvbnRyb2xsZWQtbW9kZSBzZXR0ZXIgZm9yIGNvbXBsZXRlZCBwYXJhbXMuICovXG4gIHNldENvbXBsZXRlZFBhcmFtcyhwYXJhbXM6IENvbXBsZXRlZFBhcmFtU3RhdGVbXSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKSByZXR1cm47XG4gICAgdGhpcy5jb3JlLnNldENvbXBsZXRlZFBhcmFtcyhwYXJhbXMpO1xuICB9XG5cbiAgLyoqIEZvcndhcmQgcGxhaW4tdGV4dCBpbnB1dCBmcm9tIHRoZSBjb25zdW1lcidzIGA8dGV4dGFyZWE+YCB0byB0aGUgY29yZS4gKi9cbiAgaGFuZGxlVGV4dENoYW5nZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQpIHJldHVybjtcbiAgICB0aGlzLmNvcmUuaGFuZGxlVGV4dENoYW5nZSh2YWx1ZSk7XG4gIH1cblxuICAvKiogRm9yd2FyZCBrZXlib2FyZCBldmVudHMgZnJvbSB0aGUgY29uc3VtZXIncyBgPHRleHRhcmVhPmAgdG8gdGhlIGNvcmUuICovXG4gIGhhbmRsZUtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0Rlc3Ryb3llZCkgcmV0dXJuO1xuICAgIHRoaXMuY29yZS5oYW5kbGVLZXlEb3duKGV2ZW50KTtcbiAgfVxuXG4gIC8qKiBOb3RpZnkgdGhlIGNvcmUgb2YgZm9jdXMgc3RhdGUuICovXG4gIHNldEZvY3VzZWQoZm9jdXNlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKSByZXR1cm47XG4gICAgdGhpcy5jb3JlLnNldEZvY3VzZWQoZm9jdXNlZCk7XG4gIH1cblxuICAvKiogRW50ZXIgcmUtZWRpdCBtb2RlIGZvciB0aGUgYm9sZCBwYXJhbSB3aXRoIHRoZSBnaXZlbiBpZC4gKi9cbiAgc3RhcnRFZGl0aW5nUGFyYW0ocGFyYW1JZDogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQpIHJldHVybjtcbiAgICB0aGlzLmNvcmUuc3RhcnRFZGl0aW5nUGFyYW0ocGFyYW1JZCk7XG4gIH1cblxuICAvKiogRXhpdCByZS1lZGl0IG1vZGUgd2l0aG91dCBjaGFuZ2luZyB0aGUgYm9sZCBwYXJhbS4gKi9cbiAgZXhpdEVkaXRNb2RlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKSByZXR1cm47XG4gICAgdGhpcy5jb3JlLmV4aXRFZGl0TW9kZSgpO1xuICB9XG5cbiAgLyoqIEZvcndhcmQgcG9zdC1pbnB1dCBjYXJldCBwb3NpdGlvbiAoZXh0ZW5kcyB0aGUgZWRpdCB0YWlsKS4gKi9cbiAgaGFuZGxlQ2FyZXRBZnRlcklucHV0KG9mZnNldDogbnVtYmVyIHwgbnVsbCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKSByZXR1cm47XG4gICAgdGhpcy5jb3JlLmhhbmRsZUNhcmV0QWZ0ZXJJbnB1dChvZmZzZXQpO1xuICB9XG5cbiAgLyoqIEZvcndhcmQgc2VsZWN0aW9uLW9ubHkgY2FyZXQgbW92ZXMgKG1heSBleGl0IHJlLWVkaXQpLiAqL1xuICBoYW5kbGVDYXJldE1vdmUob2Zmc2V0OiBudW1iZXIgfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQpIHJldHVybjtcbiAgICB0aGlzLmNvcmUuaGFuZGxlQ2FyZXRNb3ZlKG9mZnNldCk7XG4gIH1cblxuICAvKiogUmVwbGFjZSB0aGUgYm9sZCBwYXJhbSBiZWluZyByZS1lZGl0ZWQuIFJldHVybnMgdHJ1ZSB3aGVuIGFwcGxpZWQuICovXG4gIHJlcGxhY2VFZGl0aW5nUmFuZ2UocmVwbGFjZW1lbnQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIHRoaXMuY29yZS5yZXBsYWNlRWRpdGluZ1JhbmdlKHJlcGxhY2VtZW50KTtcbiAgfVxuXG4gIC8qKiBTZXQgdGhlIGhpZ2hsaWdodGVkIG9wdGlvbiBpbmRleCAodHlwaWNhbGx5IGRyaXZlbiBieSBob3ZlcikuICovXG4gIHNldEFjdGl2ZURyb3Bkb3duSW5kZXgoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKSByZXR1cm47XG4gICAgdGhpcy5jb3JlLnNldEFjdGl2ZURyb3Bkb3duSW5kZXgoaW5kZXgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBwb2ludGVyIGxlZnQgb3B0aW9uIGBpbmRleGA6IGNsZWFyIHRoZSBoaWdobGlnaHQgaWYgaXQgaXMgc3RpbGwgb24gaXQsXG4gICAqIHNvIEVudGVyIGFmdGVyd2FyZHMgc3VibWl0cyBpbnN0ZWFkIG9mIHBpY2tpbmcgYW4gb3B0aW9uIHRoZSBwb2ludGVyIGlzIG5vXG4gICAqIGxvbmdlciBvbi4gQSBoaWdobGlnaHQgdGhlIGtleWJvYXJkIGhhcyBzaW5jZSBtb3ZlZCBpcyBsZWZ0IGFsb25lLlxuICAgKi9cbiAgY2xlYXJIaWdobGlnaHQoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKSByZXR1cm47XG4gICAgdGhpcy5jb3JlLmNsZWFySGlnaGxpZ2h0KGluZGV4KTtcbiAgfVxuXG4gIC8qKiBQYWdlIHRoZSBkYXRlcGlja2VyIGJhY2sgb25lIG1vbnRoLiBOby1vcCB1bmxlc3MgYSBkYXRlIHBpbGwgaXMgYWN0aXZlLiAqL1xuICBzaG93UHJldmlvdXNNb250aCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0Rlc3Ryb3llZCkgcmV0dXJuO1xuICAgIHRoaXMuY29yZS5zaG93UHJldmlvdXNNb250aCgpO1xuICB9XG5cbiAgLyoqIFBhZ2UgdGhlIGRhdGVwaWNrZXIgZm9yd2FyZCBvbmUgbW9udGguIE5vLW9wIHVubGVzcyBhIGRhdGUgcGlsbCBpcyBhY3RpdmUuICovXG4gIHNob3dOZXh0TW9udGgoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQpIHJldHVybjtcbiAgICB0aGlzLmNvcmUuc2hvd05leHRNb250aCgpO1xuICB9XG5cbiAgLy8gPT09IExpZmVjeWNsZSA9PT1cblxuICAvKipcbiAgICogQXBwbHkgcnVudGltZSBjaGFuZ2VzIHRvIGEgc3Vic2V0IG9mIG9wdGlvbnMuIEV2ZW50IGNhbGxiYWNrc1xuICAgKiAoYG9uU3VibWl0YCwgYG9uUmVzdWx0YCwgYG9uRXJyb3JgLCBldGMuKSBjYW5ub3QgYmUgc3dhcHBlZCB0aGlzIHdheSDigJQgdGhleSBhcmVcbiAgICogcmVnaXN0ZXJlZCBvbmNlIGF0IGNvbnN0cnVjdGlvbiAobWF0Y2hlcyB0aGUgUmVhY3QgaG9vaydzIGRlc2lnbikuIEZvclxuICAgKiBkeW5hbWljIGV2ZW50IHJlYWN0aXZpdHksIHN1YnNjcmliZSB0byB0aGUgY29ycmVzcG9uZGluZyBvYnNlcnZhYmxlXG4gICAqIChlLmcuIGB0ZXh0JGAgaW5zdGVhZCBvZiBgb25DaGFuZ2VgKS5cbiAgICovXG4gIHVwZGF0ZShvcHRzOiBBSUF1dG9jb21wbGV0ZUNvbnRyb2xsZXJVcGRhdGUpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0Rlc3Ryb3llZCkgcmV0dXJuO1xuICAgIHRoaXMuY29yZS51cGRhdGUob3B0cyk7XG4gICAgaWYgKG9wdHMub3B0aW9uc1Bvc2l0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMub3B0aW9uc1Bvc2l0aW9uJC5uZXh0KG9wdHMub3B0aW9uc1Bvc2l0aW9uKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVsZWFzZSBhbGwgcmVzb3VyY2VzIOKAlCB1bnN1YnNjcmliZXMgZnJvbSB0aGUgY29yZSwgZGVzdHJveXMgdGhlIGNvcmUsXG4gICAqIGFuZCBjb21wbGV0ZXMgdGhlIGludGVybmFsIHN0YXRlIHN1YmplY3QuIFNhZmUgdG8gY2FsbCBtdWx0aXBsZSB0aW1lcy5cbiAgICogQWZ0ZXIgZGVzdHJ1Y3Rpb24sIGFjdGlvbiBtZXRob2RzIG5vLW9wIHNpbGVudGx5LlxuICAgKi9cbiAgZGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0Rlc3Ryb3llZCkgcmV0dXJuO1xuICAgIHRoaXMuaXNEZXN0cm95ZWQgPSB0cnVlO1xuICAgIHRoaXMudW5zdWJzY3JpYmVDb3JlKCk7XG4gICAgdGhpcy5jb3JlLmRlc3Ryb3koKTtcbiAgICB0aGlzLnJhd1N0YXRlJC5jb21wbGV0ZSgpO1xuICB9XG59XG5cbi8vID09PT09IFB1cmUgaGVscGVycyDigJQgbm90IHBhcnQgb2YgdGhlIHB1YmxpYyBzdXJmYWNlID09PT09XG5cbi8qKlxuICogU2hhbGxvdyBhcnJheSBlcXVhbGl0eS4gVGhlIHZhbmlsbGEgc3RvcmUgcmVhc3NpZ25zIGFycmF5IGZpZWxkcyBvbiBldmVyeVxuICogd3JpdGUgKGBzdG9yZS5zZXQoeyBjb21wbGV0ZWRQYXJhbXM6IFsuLi5wcmV2LCB4XSB9KWApLCBzbyByZWZlcmVuY2VcbiAqIGVxdWFsaXR5IGFsb25lIHdvdWxkIHJlLWVtaXQgZG93bnN0cmVhbSBldmVuIHdoZW4gdGhlIGNvbnRlbnRzIGFyZVxuICogaWRlbnRpY2FsLiBVc2VkIGZvciBgY29tcGxldGVkUGFyYW1zJGAsIGBzdWdnZXN0aW9ucyRgLCBgc3VnZ2VzdGlvblBpbGxzJGAsXG4gKiBhbmQgYHNlZ21lbnRzJGAuXG4gKi9cbmZ1bmN0aW9uIGFyckVxPFQ+KGE6IHJlYWRvbmx5IFRbXSwgYjogcmVhZG9ubHkgVFtdKTogYm9vbGVhbiB7XG4gIGlmIChhID09PSBiKSByZXR1cm4gdHJ1ZTtcbiAgaWYgKGEubGVuZ3RoICE9PSBiLmxlbmd0aCkgcmV0dXJuIGZhbHNlO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGEubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoYVtpXSAhPT0gYltpXSkgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiB0cnVlO1xufVxuXG4vKiogVUktdmlzaWJsZSBsb2FkaW5nIOKAlCB0aGUgY29yZSdzIGBkcm9wZG93bkxvYWRpbmdgIChzZWUgaXRzIGRvY3MpLiAqL1xuZnVuY3Rpb24gY29tcHV0ZVVpTG9hZGluZyhzOiBDb3JlU3RhdGUpOiBib29sZWFuIHtcbiAgcmV0dXJuIHMuZHJvcGRvd25Mb2FkaW5nO1xufVxuXG5mdW5jdGlvbiBjb21wdXRlU3RhdGUoczogQ29yZVN0YXRlKTogQUlBdXRvY29tcGxldGVDb250cm9sbGVyU3RhdGUge1xuICByZXR1cm4ge1xuICAgIHRleHQ6IHMudGV4dCxcbiAgICBjb21wbGV0ZWRQYXJhbXM6IHMuY29tcGxldGVkUGFyYW1zLFxuICAgIHNraXBwZWRQYXJhbXM6IHMuc2tpcHBlZFBhcmFtcyxcbiAgICBpZGVudGlmaWVkUGFyYW1zOiBzLmlkZW50aWZpZWRQYXJhbXMsXG4gICAgc3VnZ2VzdGlvblBpbGxzOiBzLmFjdGlvbmFibGVTdWdnZXN0aW9ucyxcbiAgICBzZWdtZW50czogcy5zZWdtZW50cyxcbiAgICBuZXdQYXJhbUlkOiBzLm5ld1BhcmFtSWQsXG4gICAgc3VnZ2VzdGlvbnM6IHMuc3VnZ2VzdGlvbnMsXG4gICAgcHJvZHVjdHM6IHMucHJvZHVjdHMsXG4gICAgY3VzdG9tRmllbGRzOiBzLmN1c3RvbUZpZWxkcyxcbiAgICBhY3RpdmVJbmRleDogcy5hY3RpdmVEcm9wZG93bkluZGV4LFxuICAgIGlzTG9hZGluZzogY29tcHV0ZVVpTG9hZGluZyhzKSxcbiAgICBpc1JlYWR5OiBzLmlzUmVhZHksXG4gICAgaXNGb2N1c2VkOiBzLmlzRm9jdXNlZCxcbiAgICBpc0Ryb3Bkb3duT3Blbjogcy5pc0Ryb3Bkb3duT3BlbixcbiAgICBwbGFjZWhvbGRlclRleHQ6IHMucGxhY2Vob2xkZXJUZXh0LFxuICAgIGVycm9yOiBzLmVycm9yLFxuICAgIGVkaXRpbmdQYXJhbTogcy5lZGl0aW5nUGFyYW0sXG4gICAgZWRpdGluZ0lkZW50aWZpZWQ6IHMuZWRpdGluZ0lkZW50aWZpZWQsXG4gICAgZWRpdGluZ0FuY2hvcjogcy5lZGl0aW5nQW5jaG9yLFxuICAgIGNhcmV0T2Zmc2V0OiBzLmNhcmV0T2Zmc2V0LFxuICB9O1xufVxuXG5mdW5jdGlvbiBjb21wdXRlRHJvcGRvd24oXG4gIHM6IENvcmVTdGF0ZSxcbiAgb3B0aW9uc1Bvc2l0aW9uOiBcImFib3ZlXCIgfCBcImJlbG93XCIsXG4pOiBBSUF1dG9jb21wbGV0ZURyb3Bkb3duU3RhdGUge1xuICBjb25zdCBlZGl0aW5nUGFyYW0gPSBzLmVkaXRpbmdQYXJhbTtcbiAgY29uc3QgZWRpdGluZ0lkZW50aWZpZWQgPSBzLmVkaXRpbmdJZGVudGlmaWVkO1xuICBjb25zdCBkYXRlU2VsZWN0aW9uID0gZGF0ZVNlbGVjdGlvbkZvcihzKTtcbiAgY29uc3QgYWN0aXZlU3VnZ2VzdGlvbiA9IHMuYWN0aW9uYWJsZVN1Z2dlc3Rpb25zWzBdO1xuICBjb25zdCBkcm9wZG93blBpbGw6IFN1Z2dlc3Rpb24gfCBudWxsID0gZWRpdGluZ1BhcmFtXG4gICAgPyB7XG4gICAgICAgIHR5cGU6IGVkaXRpbmdQYXJhbS5zdWdnZXN0aW9uVHlwZSxcbiAgICAgICAgdGV4dDogZWRpdGluZ1BhcmFtLnN1Z2dlc3Rpb25QbGFjZWhvbGRlcixcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIG9wdGlvbnM6IGVkaXRpbmdQYXJhbS5vcHRpb25zLFxuICAgICAgfVxuICAgIDogZWRpdGluZ0lkZW50aWZpZWRcbiAgICAgID8gLy8gQW5zd2VyaW5nIGEgc3BhbiB0aGUgdXNlciB3cm90ZSB0aGVtc2VsdmVzOiB0aGUgcGlsbCBuYW1lcyB0aGVcbiAgICAgICAgLy8gcGFyYW1ldGVyIHRoZSBzZXJ2ZXIgbWF0Y2hlZCBpdCB0bywgc28gdGhlIGNhbGVuZGFyIGlzbid0IHVubGFiZWxsZWQuXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiBlZGl0aW5nSWRlbnRpZmllZC50eXBlLFxuICAgICAgICAgIHRleHQ6IGlkZW50aWZpZWRQYXJhbUxhYmVsKGVkaXRpbmdJZGVudGlmaWVkLnR5cGUpLFxuICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgIG9wdGlvbnM6IFtdLFxuICAgICAgICB9XG4gICAgICA6IG51bGw7XG4gIGNvbnN0IGRyb3Bkb3duQWN0aXZlUGlsbCA9IHMuZHJvcGRvd25TdWdnZXN0aW9uID8/IGRyb3Bkb3duUGlsbCA/PyBhY3RpdmVTdWdnZXN0aW9uO1xuICBjb25zdCBkcm9wZG93blBpbGxzID0gZHJvcGRvd25QaWxsID8gW2Ryb3Bkb3duUGlsbF0gOiBzLmFjdGlvbmFibGVTdWdnZXN0aW9ucztcbiAgcmV0dXJuIHtcbiAgICBzdWdnZXN0aW9uczogZHJvcGRvd25BY3RpdmVQaWxsID8gW3sgLi4uZHJvcGRvd25BY3RpdmVQaWxsLCBvcHRpb25zOiBzLmRyb3Bkb3duT3B0aW9ucyB9XSA6IFtdLFxuICAgIGFjdGl2ZUluZGV4OiBzLmFjdGl2ZURyb3Bkb3duSW5kZXgsXG4gICAgaXNPcGVuOiBzLmlzRHJvcGRvd25PcGVuLFxuICAgIHBpbGxzOiBkcm9wZG93blBpbGxzLFxuICAgIGlzQWN0aXZlUGlsbFNlbGVjdGVkOiBzLmlzQWN0aXZlUGlsbFNlbGVjdGVkLFxuICAgIGlzTG9hZGluZzogY29tcHV0ZVVpTG9hZGluZyhzKSxcbiAgICBza2VsZXRvbkV4aXRpbmc6IHMuc2tlbGV0b25FeGl0aW5nLFxuICAgIGlzSW5wdXRFbXB0eTogcy50ZXh0LnRyaW0oKS5sZW5ndGggPT09IDAsXG4gICAgcHJvZHVjdHM6IHMucHJvZHVjdHMsXG4gICAgaXNFZGl0aW5nOiBCb29sZWFuKGVkaXRpbmdQYXJhbSkgfHwgQm9vbGVhbihlZGl0aW5nSWRlbnRpZmllZCksXG4gICAgaW5TZWxlY3Rpb25BbmltYXRpb246IHMuaW5TZWxlY3Rpb25BbmltYXRpb24sXG4gICAgLy8gRGF0ZXBpY2tlci4gYHMuZmlsdGVyZWRPcHRpb25zYCBhYm92ZSBhbHJlYWR5IGNhcnJpZXMgdGhlIHZpc2libGVcbiAgICAvLyBtb250aCdzIGNlbGxzIHJhdGhlciB0aGFuIHRoZSBzdWdnZXN0aW9uJ3Mgb3duIG9wdGlvbnMgd2hlbiB0aGlzIGlzXG4gICAgLy8gXCJkYXRlXCIg4oCUIHRoZSBjb3JlIHN3YXBwZWQgdGhlbSBpbiBpdHMgZGVyaXZlIGxheWVyLCBzbyB0aGUgZHJvcGRvd24gb25seVxuICAgIC8vIGhhcyB0byBrbm93IHdoaWNoIGJvZHkgdG8gZHJhdy5cbiAgICBmb3JtYXRUeXBlOiBzLmFjdGl2ZUZvcm1hdFR5cGUsXG4gICAgZGF0ZVZpZXc6IHMuZGF0ZVZpZXcsXG4gICAgc2VsZWN0ZWREYXRlSXNvOiBkYXRlU2VsZWN0aW9uLnNlbGVjdGVkSXNvLFxuICAgIHNlbGVjdGVkRGF0ZVJhbmdlOiBkYXRlU2VsZWN0aW9uLnNlbGVjdGVkUmFuZ2UsXG4gICAgZGF0ZVJhbmdlU3RhcnQ6IGRhdGVTZWxlY3Rpb24ucmFuZ2VTdGFydCxcbiAgICBvcHRpb25zUG9zaXRpb24sXG4gIH07XG59XG4iXX0=
@@ -141,10 +141,10 @@ export class SuggestionItemComponent {
141
141
  }
142
142
  }
143
143
  SuggestionItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SuggestionItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
144
- SuggestionItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SuggestionItemComponent, isStandalone: true, selector: "aia-suggestion-item", inputs: { option: "option", isHighlighted: "isHighlighted", id: "id", loading: "loading", showIcon: "showIcon", showImage: "showImage", showCount: "showCount", scrollHint: "scrollHint", enterDelayMs: "enterDelayMs" }, outputs: { select: "select", highlight: "highlight", unhighlight: "unhighlight" }, ngImport: i0, template: "<div\n [id]=\"id\"\n role=\"option\"\n data-aia-option=\"\"\n [attr.data-aia-loading]=\"loading ? '' : null\"\n [attr.data-aia-icon]=\"iconHtml && option.icon ? option.icon : null\"\n [attr.data-aia-image]=\"imageSrc ? '' : null\"\n [attr.data-aia-item-count]=\"countLabel !== null ? option.item_count : null\"\n [attr.aria-selected]=\"isHighlighted\"\n class=\"aia-suggestion-item\"\n [style.--aia-option-enter-delay]=\"(enterDelay ?? 0) + 'ms'\"\n [class.aia-suggestion-item-highlighted]=\"isHighlighted && !loading\"\n [class.aia-suggestion-item-tappable]=\"option.is_tappable\"\n [class.aia-suggestion-item-non-tappable]=\"!option.is_tappable\"\n [class.aia-suggestion-item-pressed]=\"pressed\"\n [class.aia-suggestion-item-scroll-hint]=\"scrollHint\"\n [attr.tabindex]=\"loading || !option.is_tappable ? -1 : 0\"\n (click)=\"onSelect()\"\n (keydown)=\"onKeyDown($event)\"\n (mouseenter)=\"onMouseEnter()\"\n (mouseleave)=\"onMouseLeave()\"\n>\n <span class=\"aia-suggestion-content\">\n <!-- The tile keeps a placeholder fill under the picture, so a slow or\n failed load leaves a neutral square rather than a gap. The picture is\n decorative: the text is the option's accessible name. -->\n <span *ngIf=\"imageSrc as src\" class=\"aia-suggestion-image\" aria-hidden=\"true\">\n <img\n [src]=\"src\"\n alt=\"\"\n loading=\"lazy\"\n decoding=\"async\"\n referrerpolicy=\"no-referrer\"\n draggable=\"false\"\n [hidden]=\"imageFailed\"\n (error)=\"onImageError()\"\n />\n </span>\n <span\n *ngIf=\"iconHtml\"\n class=\"aia-suggestion-icon\"\n aria-hidden=\"true\"\n [innerHTML]=\"iconHtml\"\n ></span>\n <span class=\"aia-suggestion-text\">{{ label }}</span>\n <span *ngIf=\"option.tag\" class=\"aia-suggestion-tag\">{{ option.tag }}</span>\n <!-- Part of the row's accessible name, read after the option's text. -->\n <span *ngIf=\"countLabel !== null\" class=\"aia-suggestion-count\">{{ countLabel }}</span>\n </span>\n</div>\n", styles: [".aia-suggestion-item{position:relative;overflow:hidden;overflow:clip;display:flex;align-items:flex-start;font-family:inherit;font-size:var(--aia-option-font-size, 16px);font-weight:450;line-height:21px;color:var(--aia-option-color, var(--aia-color-text-muted, #c1c4cb));white-space:normal;word-break:break-word;border-radius:8px;padding:8px 10px}@keyframes aiaSuggestionFadeIn{0%{opacity:0}}@keyframes aiaSuggestionRiseIn{0%{transform:translateY(16px)}}@media (prefers-reduced-motion: reduce){.aia-suggestion-item,.aia-suggestion-content{animation-duration:0s;animation-delay:0s}}.aia-suggestion-content{position:relative;z-index:2;animation:aiaSuggestionRiseIn .28s cubic-bezier(.25,.46,.45,.94) both,aiaSuggestionFadeIn .15s ease-out both;animation-delay:var(--aia-option-enter-delay, 0ms)}.aia-suggestion-item-tappable{cursor:pointer}.aia-suggestion-item-tappable:hover{color:var(--aia-option-color-selected, var(--aia-color-text-default, #fff))}.aia-suggestion-item-non-tappable{cursor:default}.aia-suggestion-item-highlighted{color:var(--aia-option-color-selected, var(--aia-color-text-default, #fff));background:var(--aia-option-bg, transparent);font-weight:500}.aia-suggestion-tag{font-size:11px;margin-left:6px;opacity:.5}.aia-suggestion-item-pressed{color:var(--aia-option-color-selected, var(--aia-color-text-default, #fff));animation:aiaPressCompress .17s ease forwards}[role=listbox]:has(.aia-suggestion-item-pressed) .aia-suggestion-item:not(.aia-suggestion-item-pressed){opacity:.35;transition:opacity 60ms ease}@keyframes aiaPressCompress{0%{transform:scale(1)}25%{transform:scale(.93)}60%{transform:scale(.93)}to{transform:scale(1)}}.aia-suggestion-item-scroll-hint .aia-suggestion-content{mask-image:linear-gradient(to bottom,rgb(0 0 0),rgb(0 0 0 / .6))}.aia-suggestion-item[data-aia-loading]{cursor:default;animation:aiaSuggestionSkeletonPulse 1.4s ease-in-out infinite}.aia-suggestion-item[data-aia-loading] .aia-suggestion-text{color:transparent;background:var(--aia-skeleton-bg, var(--aia-pill-bg, rgba(189, 189, 189, .25)));border-radius:999px;-webkit-box-decoration-break:clone;box-decoration-break:clone;animation:aiaSkeletonBarIn .1s ease-out}.aia-suggestion-item[data-aia-loading] .aia-suggestion-tag{display:none}.aia-suggestion-icon{display:inline-flex;align-items:center;height:21px;margin-right:8px;vertical-align:top;will-change:transform}.aia-suggestion-icon svg{display:block;width:1em;height:1em}.aia-suggestion-item[data-aia-loading] .aia-suggestion-icon{visibility:hidden}.aia-suggestion-content:not(:has(.aia-suggestion-count)):has(.aia-suggestion-icon){padding-left:calc(1em + 8px);text-indent:calc(-1em - 8px)}.aia-suggestion-content:has(.aia-suggestion-image),.aia-suggestion-content:has(.aia-suggestion-count){display:flex;flex:1 1 auto;align-items:flex-start;min-width:0}.aia-suggestion-content:has(.aia-suggestion-image) .aia-suggestion-text,.aia-suggestion-content:has(.aia-suggestion-count) .aia-suggestion-text{flex:1 1 auto;min-width:0}.aia-suggestion-item[data-aia-loading] .aia-suggestion-content .aia-suggestion-text{flex:0 1 auto}.aia-suggestion-content:has(.aia-suggestion-image){align-items:center;gap:var(--aia-option-image-gap, 12px)}.aia-suggestion-image{flex:0 0 auto;display:block;width:var(--aia-option-image-size, 40px);height:var(--aia-option-image-size, 40px);border-radius:var(--aia-option-image-radius, 12px);overflow:hidden;background:var(--aia-option-image-bg, var(--aia-skeleton-bg, rgba(189, 189, 189, .083)))}.aia-suggestion-image img{display:block;width:100%;height:100%;object-fit:cover}.aia-suggestion-image img[hidden]{display:none}.aia-suggestion-count{flex:0 0 auto;margin-left:auto;padding-left:12px;font-size:var(--aia-option-count-font-size, 12px);font-weight:400;line-height:21px;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--aia-option-count-color, inherit);opacity:var(--aia-option-count-opacity, .6)}.aia-suggestion-count:after{content:\" \" var(--aia-option-count-unit, \"items\")}.aia-suggestion-item[data-aia-item-count=\"1\"] .aia-suggestion-count:after{content:\" \" var(--aia-option-count-unit-one, var(--aia-option-count-unit, \"item\"))}.aia-suggestion-item[data-aia-loading] .aia-suggestion-image img{visibility:hidden}.aia-suggestion-item[data-aia-loading] .aia-suggestion-count{display:none}[data-aia-group]:has(.aia-suggestion-image){--aia-option-row-height: calc(var(--aia-option-image-size, 40px) + 16px)}[data-aia-group]:has(.aia-suggestion-image) .aia-suggestion-content:not(:has(.aia-suggestion-image)){display:flex;flex:1 1 auto;align-items:center;gap:var(--aia-option-image-gap, 12px);min-width:0;min-height:var(--aia-option-image-size, 40px);padding-left:0;text-indent:0}[data-aia-group]:has(.aia-suggestion-image) .aia-suggestion-content:not(:has(.aia-suggestion-image)) .aia-suggestion-icon{flex:0 0 auto;justify-content:center;width:var(--aia-option-image-size, 40px);height:var(--aia-option-image-size, 40px);margin-right:0}@keyframes aiaSuggestionSkeletonPulse{0%,to{filter:brightness(1)}50%{filter:brightness(.55)}}[data-aia-skeleton-exiting] .aia-suggestion-item[data-aia-loading] .aia-suggestion-content,[data-aia-skeleton-exiting] .aia-suggestion-item[data-aia-loading] .aia-suggestion-text{animation:none}[data-aia-skeleton-exiting] .aia-suggestion-item[data-aia-loading]{animation:aiaSkeletonOut .1s ease-in forwards}@keyframes aiaSkeletonBarIn{0%{background-color:transparent;color:inherit}}@keyframes aiaSkeletonOut{to{opacity:0}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
144
+ SuggestionItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SuggestionItemComponent, isStandalone: true, selector: "aia-suggestion-item", inputs: { option: "option", isHighlighted: "isHighlighted", id: "id", loading: "loading", showIcon: "showIcon", showImage: "showImage", showCount: "showCount", scrollHint: "scrollHint", enterDelayMs: "enterDelayMs" }, outputs: { select: "select", highlight: "highlight", unhighlight: "unhighlight" }, ngImport: i0, template: "<div\n [id]=\"id\"\n role=\"option\"\n data-aia-option=\"\"\n [attr.data-aia-loading]=\"loading ? '' : null\"\n [attr.data-aia-icon]=\"iconHtml && option.icon ? option.icon : null\"\n [attr.data-aia-image]=\"imageSrc ? '' : null\"\n [attr.data-aia-item-count]=\"countLabel !== null ? option.item_count : null\"\n [attr.aria-selected]=\"isHighlighted\"\n class=\"aia-suggestion-item\"\n [style.--aia-option-enter-delay]=\"(enterDelay ?? 0) + 'ms'\"\n [class.aia-suggestion-item-highlighted]=\"isHighlighted && !loading\"\n [class.aia-suggestion-item-tappable]=\"option.is_tappable\"\n [class.aia-suggestion-item-non-tappable]=\"!option.is_tappable\"\n [class.aia-suggestion-item-pressed]=\"pressed\"\n [class.aia-suggestion-item-scroll-hint]=\"scrollHint\"\n [attr.tabindex]=\"loading || !option.is_tappable ? -1 : 0\"\n (click)=\"onSelect()\"\n (keydown)=\"onKeyDown($event)\"\n (mouseenter)=\"onMouseEnter()\"\n (mouseleave)=\"onMouseLeave()\"\n>\n <span class=\"aia-suggestion-content\">\n <!-- The tile keeps a placeholder fill under the picture, so a slow or\n failed load leaves a neutral square rather than a gap. The picture is\n decorative: the text is the option's accessible name. -->\n <span *ngIf=\"imageSrc as src\" class=\"aia-suggestion-image\" aria-hidden=\"true\">\n <img\n [src]=\"src\"\n alt=\"\"\n loading=\"lazy\"\n decoding=\"async\"\n referrerpolicy=\"no-referrer\"\n draggable=\"false\"\n [hidden]=\"imageFailed\"\n (error)=\"onImageError()\"\n />\n </span>\n <span\n *ngIf=\"iconHtml\"\n class=\"aia-suggestion-icon\"\n aria-hidden=\"true\"\n [innerHTML]=\"iconHtml\"\n ></span>\n <span class=\"aia-suggestion-text\">{{ label }}</span>\n <span *ngIf=\"option.tag\" class=\"aia-suggestion-tag\">{{ option.tag }}</span>\n <!-- Part of the row's accessible name, read after the option's text. -->\n <span *ngIf=\"countLabel !== null\" class=\"aia-suggestion-count\">{{ countLabel }}</span>\n </span>\n</div>\n", styles: [".aia-suggestion-item{position:relative;overflow:hidden;overflow:clip;display:flex;align-items:flex-start;font-family:inherit;font-size:var(--aia-option-font-size, 16px);font-weight:450;line-height:21px;color:var(--aia-option-color, var(--aia-color-text-muted, #c1c4cb));white-space:normal;word-break:break-word;border-radius:8px;padding:8px 10px}@keyframes aiaSuggestionFadeIn{0%{opacity:0}}@keyframes aiaSuggestionRiseIn{0%{transform:translateY(16px)}}@media (prefers-reduced-motion: reduce){.aia-suggestion-item,.aia-suggestion-content{animation-duration:0s;animation-delay:0s}}.aia-suggestion-content{position:relative;z-index:2;animation:aiaSuggestionRiseIn .28s cubic-bezier(.25,.46,.45,.94) both,aiaSuggestionFadeIn .15s ease-out both;animation-delay:var(--aia-option-enter-delay, 0ms)}.aia-suggestion-item-tappable{cursor:pointer}.aia-suggestion-item-tappable:hover{color:var(--aia-option-color-selected, var(--aia-color-text-default, #fff))}.aia-suggestion-item-non-tappable{cursor:default}.aia-suggestion-item-highlighted{color:var(--aia-option-color-selected, var(--aia-color-text-default, #fff));background:var(--aia-option-bg, transparent);font-weight:500}.aia-suggestion-tag{font-size:11px;margin-left:6px;opacity:.5}.aia-suggestion-item-pressed{color:var(--aia-option-color-selected, var(--aia-color-text-default, #fff));animation:aiaPressCompress .17s ease forwards}[role=listbox]:has(.aia-suggestion-item-pressed) .aia-suggestion-item:not(.aia-suggestion-item-pressed){opacity:.35;transition:opacity 60ms ease}@keyframes aiaPressCompress{0%{transform:scale(1)}25%{transform:scale(.93)}60%{transform:scale(.93)}to{transform:scale(1)}}.aia-suggestion-item-scroll-hint .aia-suggestion-content{mask-image:linear-gradient(to bottom,rgb(0 0 0),rgb(0 0 0 / .6))}.aia-suggestion-item[data-aia-loading]{cursor:default;animation:aiaSuggestionSkeletonPulse 1.4s ease-in-out infinite}.aia-suggestion-item[data-aia-loading] .aia-suggestion-text{color:transparent;background:var(--aia-skeleton-bg, var(--aia-pill-bg, rgba(189, 189, 189, .25)));border-radius:999px;-webkit-box-decoration-break:clone;box-decoration-break:clone;animation:aiaSkeletonBarIn .1s ease-out}.aia-suggestion-item[data-aia-loading] .aia-suggestion-tag{display:none}.aia-suggestion-icon{display:inline-flex;align-items:center;height:21px;margin-right:8px;vertical-align:top;will-change:transform}.aia-suggestion-icon svg{display:block;width:1em;height:1em}.aia-suggestion-item[data-aia-loading] .aia-suggestion-icon{visibility:hidden}.aia-suggestion-content:not(:has(.aia-suggestion-count)):has(.aia-suggestion-icon){padding-left:calc(1em + 8px);text-indent:calc(-1em - 8px)}.aia-suggestion-content:has(.aia-suggestion-image),.aia-suggestion-content:has(.aia-suggestion-count){display:flex;flex:1 1 auto;align-items:flex-start;min-width:0}.aia-suggestion-content:has(.aia-suggestion-image) .aia-suggestion-text,.aia-suggestion-content:has(.aia-suggestion-count) .aia-suggestion-text{flex:1 1 auto;min-width:0}.aia-suggestion-item[data-aia-loading] .aia-suggestion-content .aia-suggestion-text{flex:0 1 auto}.aia-suggestion-content:has(.aia-suggestion-image){align-items:center;gap:var(--aia-option-image-gap, 12px)}.aia-suggestion-image{flex:0 0 auto;display:block;width:var(--aia-option-image-size, 40px);height:var(--aia-option-image-size, 40px);border-radius:var(--aia-option-image-radius, 12px);overflow:hidden;background:var(--aia-option-image-bg, var(--aia-skeleton-bg, rgba(189, 189, 189, .083)))}.aia-suggestion-image img{display:block;width:100%;height:100%;object-fit:cover}.aia-suggestion-image img[hidden]{display:none}.aia-suggestion-count{flex:0 0 auto;margin-left:auto;padding-left:12px;font-size:var(--aia-option-count-font-size, 12px);font-weight:400;line-height:21px;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--aia-option-count-color, inherit);opacity:var(--aia-option-count-opacity, .6)}.aia-suggestion-count:after{content:\" \" var(--aia-option-count-unit, \"items\")}.aia-suggestion-item[data-aia-item-count=\"1\"] .aia-suggestion-count:after{content:\" \" var(--aia-option-count-unit-one, var(--aia-option-count-unit, \"item\"))}.aia-suggestion-item[data-aia-loading] .aia-suggestion-image img{visibility:hidden}.aia-suggestion-item[data-aia-loading] .aia-suggestion-count{display:none}[data-aia-group]:has(.aia-suggestion-image){--aia-option-row-height: calc(var(--aia-option-image-size, 40px) + 16px)}[data-aia-group]:has(.aia-suggestion-image) .aia-suggestion-content:not(:has(.aia-suggestion-image)){display:flex;flex:1 1 auto;align-items:center;gap:var(--aia-option-image-gap, 12px);min-width:0;min-height:var(--aia-option-image-size, 40px);padding-left:0;text-indent:0}[data-aia-group]:has(.aia-suggestion-image) .aia-suggestion-content:not(:has(.aia-suggestion-image)) .aia-suggestion-icon{flex:0 0 auto;justify-content:center;width:var(--aia-option-image-size, 40px);height:var(--aia-option-image-size, 40px);margin-right:0}[data-aia-group]:has(.aia-suggestion-image) .aia-suggestion-content:not(:has(.aia-suggestion-image)) .aia-suggestion-icon svg{width:var(--aia-option-tile-icon-size, 1.5em);height:var(--aia-option-tile-icon-size, 1.5em)}@keyframes aiaSuggestionSkeletonPulse{0%,to{filter:brightness(1)}50%{filter:brightness(.55)}}[data-aia-skeleton-exiting] .aia-suggestion-item[data-aia-loading] .aia-suggestion-content,[data-aia-skeleton-exiting] .aia-suggestion-item[data-aia-loading] .aia-suggestion-text{animation:none}[data-aia-skeleton-exiting] .aia-suggestion-item[data-aia-loading]{animation:aiaSkeletonOut .1s ease-in forwards}@keyframes aiaSkeletonBarIn{0%{background-color:transparent;color:inherit}}@keyframes aiaSkeletonOut{to{opacity:0}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
145
145
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SuggestionItemComponent, decorators: [{
146
146
  type: Component,
147
- args: [{ selector: "aia-suggestion-item", standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div\n [id]=\"id\"\n role=\"option\"\n data-aia-option=\"\"\n [attr.data-aia-loading]=\"loading ? '' : null\"\n [attr.data-aia-icon]=\"iconHtml && option.icon ? option.icon : null\"\n [attr.data-aia-image]=\"imageSrc ? '' : null\"\n [attr.data-aia-item-count]=\"countLabel !== null ? option.item_count : null\"\n [attr.aria-selected]=\"isHighlighted\"\n class=\"aia-suggestion-item\"\n [style.--aia-option-enter-delay]=\"(enterDelay ?? 0) + 'ms'\"\n [class.aia-suggestion-item-highlighted]=\"isHighlighted && !loading\"\n [class.aia-suggestion-item-tappable]=\"option.is_tappable\"\n [class.aia-suggestion-item-non-tappable]=\"!option.is_tappable\"\n [class.aia-suggestion-item-pressed]=\"pressed\"\n [class.aia-suggestion-item-scroll-hint]=\"scrollHint\"\n [attr.tabindex]=\"loading || !option.is_tappable ? -1 : 0\"\n (click)=\"onSelect()\"\n (keydown)=\"onKeyDown($event)\"\n (mouseenter)=\"onMouseEnter()\"\n (mouseleave)=\"onMouseLeave()\"\n>\n <span class=\"aia-suggestion-content\">\n <!-- The tile keeps a placeholder fill under the picture, so a slow or\n failed load leaves a neutral square rather than a gap. The picture is\n decorative: the text is the option's accessible name. -->\n <span *ngIf=\"imageSrc as src\" class=\"aia-suggestion-image\" aria-hidden=\"true\">\n <img\n [src]=\"src\"\n alt=\"\"\n loading=\"lazy\"\n decoding=\"async\"\n referrerpolicy=\"no-referrer\"\n draggable=\"false\"\n [hidden]=\"imageFailed\"\n (error)=\"onImageError()\"\n />\n </span>\n <span\n *ngIf=\"iconHtml\"\n class=\"aia-suggestion-icon\"\n aria-hidden=\"true\"\n [innerHTML]=\"iconHtml\"\n ></span>\n <span class=\"aia-suggestion-text\">{{ label }}</span>\n <span *ngIf=\"option.tag\" class=\"aia-suggestion-tag\">{{ option.tag }}</span>\n <!-- Part of the row's accessible name, read after the option's text. -->\n <span *ngIf=\"countLabel !== null\" class=\"aia-suggestion-count\">{{ countLabel }}</span>\n </span>\n</div>\n", styles: [".aia-suggestion-item{position:relative;overflow:hidden;overflow:clip;display:flex;align-items:flex-start;font-family:inherit;font-size:var(--aia-option-font-size, 16px);font-weight:450;line-height:21px;color:var(--aia-option-color, var(--aia-color-text-muted, #c1c4cb));white-space:normal;word-break:break-word;border-radius:8px;padding:8px 10px}@keyframes aiaSuggestionFadeIn{0%{opacity:0}}@keyframes aiaSuggestionRiseIn{0%{transform:translateY(16px)}}@media (prefers-reduced-motion: reduce){.aia-suggestion-item,.aia-suggestion-content{animation-duration:0s;animation-delay:0s}}.aia-suggestion-content{position:relative;z-index:2;animation:aiaSuggestionRiseIn .28s cubic-bezier(.25,.46,.45,.94) both,aiaSuggestionFadeIn .15s ease-out both;animation-delay:var(--aia-option-enter-delay, 0ms)}.aia-suggestion-item-tappable{cursor:pointer}.aia-suggestion-item-tappable:hover{color:var(--aia-option-color-selected, var(--aia-color-text-default, #fff))}.aia-suggestion-item-non-tappable{cursor:default}.aia-suggestion-item-highlighted{color:var(--aia-option-color-selected, var(--aia-color-text-default, #fff));background:var(--aia-option-bg, transparent);font-weight:500}.aia-suggestion-tag{font-size:11px;margin-left:6px;opacity:.5}.aia-suggestion-item-pressed{color:var(--aia-option-color-selected, var(--aia-color-text-default, #fff));animation:aiaPressCompress .17s ease forwards}[role=listbox]:has(.aia-suggestion-item-pressed) .aia-suggestion-item:not(.aia-suggestion-item-pressed){opacity:.35;transition:opacity 60ms ease}@keyframes aiaPressCompress{0%{transform:scale(1)}25%{transform:scale(.93)}60%{transform:scale(.93)}to{transform:scale(1)}}.aia-suggestion-item-scroll-hint .aia-suggestion-content{mask-image:linear-gradient(to bottom,rgb(0 0 0),rgb(0 0 0 / .6))}.aia-suggestion-item[data-aia-loading]{cursor:default;animation:aiaSuggestionSkeletonPulse 1.4s ease-in-out infinite}.aia-suggestion-item[data-aia-loading] .aia-suggestion-text{color:transparent;background:var(--aia-skeleton-bg, var(--aia-pill-bg, rgba(189, 189, 189, .25)));border-radius:999px;-webkit-box-decoration-break:clone;box-decoration-break:clone;animation:aiaSkeletonBarIn .1s ease-out}.aia-suggestion-item[data-aia-loading] .aia-suggestion-tag{display:none}.aia-suggestion-icon{display:inline-flex;align-items:center;height:21px;margin-right:8px;vertical-align:top;will-change:transform}.aia-suggestion-icon svg{display:block;width:1em;height:1em}.aia-suggestion-item[data-aia-loading] .aia-suggestion-icon{visibility:hidden}.aia-suggestion-content:not(:has(.aia-suggestion-count)):has(.aia-suggestion-icon){padding-left:calc(1em + 8px);text-indent:calc(-1em - 8px)}.aia-suggestion-content:has(.aia-suggestion-image),.aia-suggestion-content:has(.aia-suggestion-count){display:flex;flex:1 1 auto;align-items:flex-start;min-width:0}.aia-suggestion-content:has(.aia-suggestion-image) .aia-suggestion-text,.aia-suggestion-content:has(.aia-suggestion-count) .aia-suggestion-text{flex:1 1 auto;min-width:0}.aia-suggestion-item[data-aia-loading] .aia-suggestion-content .aia-suggestion-text{flex:0 1 auto}.aia-suggestion-content:has(.aia-suggestion-image){align-items:center;gap:var(--aia-option-image-gap, 12px)}.aia-suggestion-image{flex:0 0 auto;display:block;width:var(--aia-option-image-size, 40px);height:var(--aia-option-image-size, 40px);border-radius:var(--aia-option-image-radius, 12px);overflow:hidden;background:var(--aia-option-image-bg, var(--aia-skeleton-bg, rgba(189, 189, 189, .083)))}.aia-suggestion-image img{display:block;width:100%;height:100%;object-fit:cover}.aia-suggestion-image img[hidden]{display:none}.aia-suggestion-count{flex:0 0 auto;margin-left:auto;padding-left:12px;font-size:var(--aia-option-count-font-size, 12px);font-weight:400;line-height:21px;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--aia-option-count-color, inherit);opacity:var(--aia-option-count-opacity, .6)}.aia-suggestion-count:after{content:\" \" var(--aia-option-count-unit, \"items\")}.aia-suggestion-item[data-aia-item-count=\"1\"] .aia-suggestion-count:after{content:\" \" var(--aia-option-count-unit-one, var(--aia-option-count-unit, \"item\"))}.aia-suggestion-item[data-aia-loading] .aia-suggestion-image img{visibility:hidden}.aia-suggestion-item[data-aia-loading] .aia-suggestion-count{display:none}[data-aia-group]:has(.aia-suggestion-image){--aia-option-row-height: calc(var(--aia-option-image-size, 40px) + 16px)}[data-aia-group]:has(.aia-suggestion-image) .aia-suggestion-content:not(:has(.aia-suggestion-image)){display:flex;flex:1 1 auto;align-items:center;gap:var(--aia-option-image-gap, 12px);min-width:0;min-height:var(--aia-option-image-size, 40px);padding-left:0;text-indent:0}[data-aia-group]:has(.aia-suggestion-image) .aia-suggestion-content:not(:has(.aia-suggestion-image)) .aia-suggestion-icon{flex:0 0 auto;justify-content:center;width:var(--aia-option-image-size, 40px);height:var(--aia-option-image-size, 40px);margin-right:0}@keyframes aiaSuggestionSkeletonPulse{0%,to{filter:brightness(1)}50%{filter:brightness(.55)}}[data-aia-skeleton-exiting] .aia-suggestion-item[data-aia-loading] .aia-suggestion-content,[data-aia-skeleton-exiting] .aia-suggestion-item[data-aia-loading] .aia-suggestion-text{animation:none}[data-aia-skeleton-exiting] .aia-suggestion-item[data-aia-loading]{animation:aiaSkeletonOut .1s ease-in forwards}@keyframes aiaSkeletonBarIn{0%{background-color:transparent;color:inherit}}@keyframes aiaSkeletonOut{to{opacity:0}}\n"] }]
147
+ args: [{ selector: "aia-suggestion-item", standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div\n [id]=\"id\"\n role=\"option\"\n data-aia-option=\"\"\n [attr.data-aia-loading]=\"loading ? '' : null\"\n [attr.data-aia-icon]=\"iconHtml && option.icon ? option.icon : null\"\n [attr.data-aia-image]=\"imageSrc ? '' : null\"\n [attr.data-aia-item-count]=\"countLabel !== null ? option.item_count : null\"\n [attr.aria-selected]=\"isHighlighted\"\n class=\"aia-suggestion-item\"\n [style.--aia-option-enter-delay]=\"(enterDelay ?? 0) + 'ms'\"\n [class.aia-suggestion-item-highlighted]=\"isHighlighted && !loading\"\n [class.aia-suggestion-item-tappable]=\"option.is_tappable\"\n [class.aia-suggestion-item-non-tappable]=\"!option.is_tappable\"\n [class.aia-suggestion-item-pressed]=\"pressed\"\n [class.aia-suggestion-item-scroll-hint]=\"scrollHint\"\n [attr.tabindex]=\"loading || !option.is_tappable ? -1 : 0\"\n (click)=\"onSelect()\"\n (keydown)=\"onKeyDown($event)\"\n (mouseenter)=\"onMouseEnter()\"\n (mouseleave)=\"onMouseLeave()\"\n>\n <span class=\"aia-suggestion-content\">\n <!-- The tile keeps a placeholder fill under the picture, so a slow or\n failed load leaves a neutral square rather than a gap. The picture is\n decorative: the text is the option's accessible name. -->\n <span *ngIf=\"imageSrc as src\" class=\"aia-suggestion-image\" aria-hidden=\"true\">\n <img\n [src]=\"src\"\n alt=\"\"\n loading=\"lazy\"\n decoding=\"async\"\n referrerpolicy=\"no-referrer\"\n draggable=\"false\"\n [hidden]=\"imageFailed\"\n (error)=\"onImageError()\"\n />\n </span>\n <span\n *ngIf=\"iconHtml\"\n class=\"aia-suggestion-icon\"\n aria-hidden=\"true\"\n [innerHTML]=\"iconHtml\"\n ></span>\n <span class=\"aia-suggestion-text\">{{ label }}</span>\n <span *ngIf=\"option.tag\" class=\"aia-suggestion-tag\">{{ option.tag }}</span>\n <!-- Part of the row's accessible name, read after the option's text. -->\n <span *ngIf=\"countLabel !== null\" class=\"aia-suggestion-count\">{{ countLabel }}</span>\n </span>\n</div>\n", styles: [".aia-suggestion-item{position:relative;overflow:hidden;overflow:clip;display:flex;align-items:flex-start;font-family:inherit;font-size:var(--aia-option-font-size, 16px);font-weight:450;line-height:21px;color:var(--aia-option-color, var(--aia-color-text-muted, #c1c4cb));white-space:normal;word-break:break-word;border-radius:8px;padding:8px 10px}@keyframes aiaSuggestionFadeIn{0%{opacity:0}}@keyframes aiaSuggestionRiseIn{0%{transform:translateY(16px)}}@media (prefers-reduced-motion: reduce){.aia-suggestion-item,.aia-suggestion-content{animation-duration:0s;animation-delay:0s}}.aia-suggestion-content{position:relative;z-index:2;animation:aiaSuggestionRiseIn .28s cubic-bezier(.25,.46,.45,.94) both,aiaSuggestionFadeIn .15s ease-out both;animation-delay:var(--aia-option-enter-delay, 0ms)}.aia-suggestion-item-tappable{cursor:pointer}.aia-suggestion-item-tappable:hover{color:var(--aia-option-color-selected, var(--aia-color-text-default, #fff))}.aia-suggestion-item-non-tappable{cursor:default}.aia-suggestion-item-highlighted{color:var(--aia-option-color-selected, var(--aia-color-text-default, #fff));background:var(--aia-option-bg, transparent);font-weight:500}.aia-suggestion-tag{font-size:11px;margin-left:6px;opacity:.5}.aia-suggestion-item-pressed{color:var(--aia-option-color-selected, var(--aia-color-text-default, #fff));animation:aiaPressCompress .17s ease forwards}[role=listbox]:has(.aia-suggestion-item-pressed) .aia-suggestion-item:not(.aia-suggestion-item-pressed){opacity:.35;transition:opacity 60ms ease}@keyframes aiaPressCompress{0%{transform:scale(1)}25%{transform:scale(.93)}60%{transform:scale(.93)}to{transform:scale(1)}}.aia-suggestion-item-scroll-hint .aia-suggestion-content{mask-image:linear-gradient(to bottom,rgb(0 0 0),rgb(0 0 0 / .6))}.aia-suggestion-item[data-aia-loading]{cursor:default;animation:aiaSuggestionSkeletonPulse 1.4s ease-in-out infinite}.aia-suggestion-item[data-aia-loading] .aia-suggestion-text{color:transparent;background:var(--aia-skeleton-bg, var(--aia-pill-bg, rgba(189, 189, 189, .25)));border-radius:999px;-webkit-box-decoration-break:clone;box-decoration-break:clone;animation:aiaSkeletonBarIn .1s ease-out}.aia-suggestion-item[data-aia-loading] .aia-suggestion-tag{display:none}.aia-suggestion-icon{display:inline-flex;align-items:center;height:21px;margin-right:8px;vertical-align:top;will-change:transform}.aia-suggestion-icon svg{display:block;width:1em;height:1em}.aia-suggestion-item[data-aia-loading] .aia-suggestion-icon{visibility:hidden}.aia-suggestion-content:not(:has(.aia-suggestion-count)):has(.aia-suggestion-icon){padding-left:calc(1em + 8px);text-indent:calc(-1em - 8px)}.aia-suggestion-content:has(.aia-suggestion-image),.aia-suggestion-content:has(.aia-suggestion-count){display:flex;flex:1 1 auto;align-items:flex-start;min-width:0}.aia-suggestion-content:has(.aia-suggestion-image) .aia-suggestion-text,.aia-suggestion-content:has(.aia-suggestion-count) .aia-suggestion-text{flex:1 1 auto;min-width:0}.aia-suggestion-item[data-aia-loading] .aia-suggestion-content .aia-suggestion-text{flex:0 1 auto}.aia-suggestion-content:has(.aia-suggestion-image){align-items:center;gap:var(--aia-option-image-gap, 12px)}.aia-suggestion-image{flex:0 0 auto;display:block;width:var(--aia-option-image-size, 40px);height:var(--aia-option-image-size, 40px);border-radius:var(--aia-option-image-radius, 12px);overflow:hidden;background:var(--aia-option-image-bg, var(--aia-skeleton-bg, rgba(189, 189, 189, .083)))}.aia-suggestion-image img{display:block;width:100%;height:100%;object-fit:cover}.aia-suggestion-image img[hidden]{display:none}.aia-suggestion-count{flex:0 0 auto;margin-left:auto;padding-left:12px;font-size:var(--aia-option-count-font-size, 12px);font-weight:400;line-height:21px;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--aia-option-count-color, inherit);opacity:var(--aia-option-count-opacity, .6)}.aia-suggestion-count:after{content:\" \" var(--aia-option-count-unit, \"items\")}.aia-suggestion-item[data-aia-item-count=\"1\"] .aia-suggestion-count:after{content:\" \" var(--aia-option-count-unit-one, var(--aia-option-count-unit, \"item\"))}.aia-suggestion-item[data-aia-loading] .aia-suggestion-image img{visibility:hidden}.aia-suggestion-item[data-aia-loading] .aia-suggestion-count{display:none}[data-aia-group]:has(.aia-suggestion-image){--aia-option-row-height: calc(var(--aia-option-image-size, 40px) + 16px)}[data-aia-group]:has(.aia-suggestion-image) .aia-suggestion-content:not(:has(.aia-suggestion-image)){display:flex;flex:1 1 auto;align-items:center;gap:var(--aia-option-image-gap, 12px);min-width:0;min-height:var(--aia-option-image-size, 40px);padding-left:0;text-indent:0}[data-aia-group]:has(.aia-suggestion-image) .aia-suggestion-content:not(:has(.aia-suggestion-image)) .aia-suggestion-icon{flex:0 0 auto;justify-content:center;width:var(--aia-option-image-size, 40px);height:var(--aia-option-image-size, 40px);margin-right:0}[data-aia-group]:has(.aia-suggestion-image) .aia-suggestion-content:not(:has(.aia-suggestion-image)) .aia-suggestion-icon svg{width:var(--aia-option-tile-icon-size, 1.5em);height:var(--aia-option-tile-icon-size, 1.5em)}@keyframes aiaSuggestionSkeletonPulse{0%,to{filter:brightness(1)}50%{filter:brightness(.55)}}[data-aia-skeleton-exiting] .aia-suggestion-item[data-aia-loading] .aia-suggestion-content,[data-aia-skeleton-exiting] .aia-suggestion-item[data-aia-loading] .aia-suggestion-text{animation:none}[data-aia-skeleton-exiting] .aia-suggestion-item[data-aia-loading]{animation:aiaSkeletonOut .1s ease-in forwards}@keyframes aiaSkeletonBarIn{0%{background-color:transparent;color:inherit}}@keyframes aiaSkeletonOut{to{opacity:0}}\n"] }]
148
148
  }], propDecorators: { option: [{
149
149
  type: Input
150
150
  }], isHighlighted: [{
@@ -170,4 +170,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
170
170
  }], unhighlight: [{
171
171
  type: Output
172
172
  }] } });
173
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VnZ2VzdGlvbi1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvaW50ZXJuYWwvc3VnZ2VzdGlvbi1pdGVtL3N1Z2dlc3Rpb24taXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ludGVybmFsL3N1Z2dlc3Rpb24taXRlbS9zdWdnZXN0aW9uLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFFTixNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQWlCLE1BQU0sMkJBQTJCLENBQUM7QUFDeEUsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixjQUFjLEVBQ2QsV0FBVyxFQUVYLHFCQUFxQixHQUN0QixNQUFNLHFDQUFxQyxDQUFDOzs7QUFFN0M7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBVUgsTUFBTSxPQUFPLHVCQUF1QjtJQVRwQztRQVdXLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLE9BQUUsR0FBRyxFQUFFLENBQUM7UUFDUixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLDhFQUE4RTtRQUNyRSxhQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLG9IQUFvSDtRQUMzRyxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQzFCLDJGQUEyRjtRQUNsRixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQzFCLDhGQUE4RjtRQUNyRixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBUzVCOzs7O1dBSUc7UUFDSCxlQUFVLEdBQWtCLElBQUksQ0FBQztRQUVkLFdBQU0sR0FBRyxJQUFJLFlBQVks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QXJCLEtBQUs7Z0JBQ0csRUFBRTtzQkFBVixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFFRyxVQUFVO3NCQUFsQixLQUFLO2dCQU1PLFlBQVk7c0JBQXhCLEtBQUs7Z0JBVWEsTUFBTTtzQkFBeEIsTUFBTTtnQkFDWSxTQUFTO3NCQUEzQixNQUFNO2dCQU1ZLFdBQVc7c0JBQTdCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgaW5qZWN0LFxuICB0eXBlIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IERvbVNhbml0aXplciwgdHlwZSBTYWZlSHRtbCB9IGZyb20gXCJAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyXCI7XG5pbXBvcnQge1xuICBmb3JtYXRPcHRpb25Db3VudCxcbiAgb3B0aW9uSW1hZ2VTcmMsXG4gIG9wdGlvbkxhYmVsLFxuICB0eXBlIFN1Z2dlc3Rpb25PcHRpb24sXG4gIHNhbml0aXplT3B0aW9uSWNvblN2Zyxcbn0gZnJvbSBcIkBtYWdpY3gtZW5nL2FpLWF1dG9jb21wbGV0ZS12YW5pbGxhXCI7XG5cbi8qKlxuICogSW50ZXJuYWwgc2luZ2xlLW9wdGlvbiBjZWxsIHVzZWQgaW5zaWRlIHRoZSBzdWdnZXN0aW9uIGdyaWQuIE1pcnJvcnNcbiAqIGBwYWNrYWdlcy9yZWFjdC9zcmMvY29tcG9uZW50cy9TdWdnZXN0aW9uSXRlbS50c3hgLiBIYW5kbGVzOlxuICpcbiAqIC0gVGFwcGFibGUgdnMgbm9uLXRhcHBhYmxlIGN1cnNvciArIGhvdmVyIHN0eWxpbmdcbiAqIC0gUHJlc3NlZC1zdGF0ZSBjb21wcmVzcyBhbmltYXRpb24gKDE3MG1zLCBzaW5nbGUtZmxpZ2h0KVxuICogLSBLZXlib2FyZCBhY3RpdmF0aW9uIChFbnRlci9TcGFjZSlcbiAqIC0gQVJJQSBgcm9sZT1cIm9wdGlvblwiYCArIGBhcmlhLXNlbGVjdGVkYCBmb3IgdGhlIGxpc3Rib3ggcGF0dGVyblxuICogLSBMb2FkaW5nIHNrZWxldG9uIHdoZW4gYGxvYWRpbmc9dHJ1ZWBcbiAqIC0gU2VydmVyLXByb3ZpZGVkIGljb24gKGBpY29uX3N2Z2ApLCBhbGxvd2xpc3RlZCB0aHJvdWdoIHRoZSBjb3JlJ3NcbiAqICAgYHNhbml0aXplT3B0aW9uSWNvblN2Z2AgYmVmb3JlIGl0IGlzIGJvdW5kIGFzIEhUTUxcbiAqIC0gU2VydmVyLXByb3ZpZGVkIHBpY3R1cmUgKGBpbWFnZV91cmxgKSBhcyBhIHNxdWFyZSB0aHVtYm5haWwgaW4gcGxhY2Ugb2ZcbiAqICAgdGhlIGljb24sIGFuZCBpdGVtIGNvdW50IChgaXRlbV9jb3VudGApIGF0IHRoZSByb3cncyB0cmFpbGluZyBlZGdlXG4gKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJhaWEtc3VnZ2VzdGlvbi1pdGVtXCIsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgdGVtcGxhdGVVcmw6IFwiLi9zdWdnZXN0aW9uLWl0ZW0uY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL3N1Z2dlc3Rpb24taXRlbS5jb21wb25lbnQuY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBTdWdnZXN0aW9uSXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIG9wdGlvbiE6IFN1Z2dlc3Rpb25PcHRpb247XG4gIEBJbnB1dCgpIGlzSGlnaGxpZ2h0ZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgaWQgPSBcIlwiO1xuICBASW5wdXQoKSBsb2FkaW5nID0gZmFsc2U7XG4gIC8qKiBXaGV0aGVyIHRvIGRyYXcgdGhlIG9wdGlvbidzIGBpY29uX3N2Z2AgYmVmb3JlIGl0cyB0ZXh0LiBEZWZhdWx0OiB0cnVlLiAqL1xuICBASW5wdXQoKSBzaG93SWNvbiA9IHRydWU7XG4gIC8qKiBXaGV0aGVyIHRvIGRyYXcgdGhlIG9wdGlvbidzIGBpbWFnZV91cmxgIGFzIGEgdGh1bWJuYWlsIGJlZm9yZSBpdHMgdGV4dCwgaW4gcGxhY2Ugb2YgdGhlIGljb24uIERlZmF1bHQ6IHRydWUuICovXG4gIEBJbnB1dCgpIHNob3dJbWFnZSA9IHRydWU7XG4gIC8qKiBXaGV0aGVyIHRvIHNob3cgdGhlIG9wdGlvbidzIGBpdGVtX2NvdW50YCBhdCB0aGUgcm93J3MgdHJhaWxpbmcgZWRnZS4gRGVmYXVsdDogdHJ1ZS4gKi9cbiAgQElucHV0KCkgc2hvd0NvdW50ID0gdHJ1ZTtcbiAgLyoqIEZhZGUgdGhpcyBvcHRpb24ncyB0ZXh0IHRvd2FyZCBpdHMgYm90dG9tIGVkZ2UgKGxhc3QgdmlzaWJsZSByb3cgb2YgYSBzY3JvbGxhYmxlIGdyaWQpLiAqL1xuICBASW5wdXQoKSBzY3JvbGxIaW50ID0gZmFsc2U7XG4gIC8qKlxuICAgKiBTdGFydCBkZWxheSBvZiB0aGlzIHJvdydzIGVudHJhbmNlIGFuaW1hdGlvbiAobXMpIOKAlCBlYWNoIHJvdyByaXNlcyBpbiBhXG4gICAqIGJlYXQgYWZ0ZXIgdGhlIG9uZSBuZWFyZXIgdGhlIGlucHV0LiBDYXB0dXJlZCBvbmNlLCBvbiBmaXJzdCByZW5kZXIsIHNvIGFcbiAgICogbGF0ZXIgY2hhbmdlLWRldGVjdGlvbiBwYXNzIGNhbid0IHJlc3RhcnQgYSByb3cgbWlkLXJpc2UuXG4gICAqL1xuICBASW5wdXQoKSBzZXQgZW50ZXJEZWxheU1zKHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5lbnRlckRlbGF5ID09PSBudWxsKSB0aGlzLmVudGVyRGVsYXkgPSB2YWx1ZTtcbiAgfVxuICAvKipcbiAgICogVGhlIGNhcHR1cmVkIGRlbGF5OyBgbnVsbGAgdW50aWwgdGhlIGZpcnN0IGBlbnRlckRlbGF5TXNgIGJpbmRpbmcgbGFuZHMuXG4gICAqIFRoZSB0ZW1wbGF0ZSBiaW5kcyBpdCB0byBgLS1haWEtb3B0aW9uLWVudGVyLWRlbGF5YCAodGhlIGNvcmUnc1xuICAgKiBPUFRJT05fRU5URVJfREVMQVlfVkFSKSwgd2hpY2ggdGhlIHN0eWxlc2hlZXQncyBlbnRyYW5jZSBydWxlIHJlYWRzLlxuICAgKi9cbiAgZW50ZXJEZWxheTogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgQE91dHB1dCgpIHJlYWRvbmx5IHNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8U3VnZ2VzdGlvbk9wdGlvbj4oKTtcbiAgQE91dHB1dCgpIHJlYWRvbmx5IGhpZ2hsaWdodCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgLyoqXG4gICAqIFRoZSBwb2ludGVyIGxlZnQgdGhpcyByb3cuIFRoZSBvd25lciBjbGVhcnMgdGhlIGhpZ2hsaWdodCBpZiBpdCBpcyBzdGlsbFxuICAgKiBvbiB0aGlzIHJvdzogYSBob3ZlciBoaWdobGlnaHQgZW5kcyB3aXRoIHRoZSBob3Zlciwgc28gRW50ZXIgYWZ0ZXJ3YXJkc1xuICAgKiBzdWJtaXRzIGluc3RlYWQgb2YgcGlja2luZyBhIHJvdyB0aGUgcG9pbnRlciBpcyBubyBsb25nZXIgb24uXG4gICAqL1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgdW5oaWdobGlnaHQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgcHJlc3NlZCA9IGZhbHNlO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBzYW5pdGl6ZXIgPSBpbmplY3QoRG9tU2FuaXRpemVyKTtcbiAgcHJpdmF0ZSBwcmVzc2VkVGltZXI6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIGljb25Tb3VyY2U6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBpY29uU2FmZTogU2FmZUh0bWwgfCBudWxsID0gbnVsbDtcbiAgLyoqIFRoZSBgc3JjYCB3aG9zZSBsb2FkIGZhaWxlZCwgc28gdGhlIHRpbGUga2VlcHMgaXRzIHBsYWNlaG9sZGVyIGZpbGwgZm9yIGl0LiAqL1xuICBwcml2YXRlIGZhaWxlZFNyYzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIFRoZSBvcHRpb24ncyB0ZXh0LiBgaWNvbmAgaXMgdGhlIGljb24ncyBuYW1lIGFuZCBpcyBuZXZlciBzaG93biBhcyB0ZXh0LiAqL1xuICBnZXQgbGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gb3B0aW9uTGFiZWwodGhpcy5vcHRpb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBwaWN0dXJlJ3MgYHNyY2AsIG9yIGBudWxsYCB3aGVuIHRoZSByb3cgZHJhd3Mgbm9uZTogaW1hZ2VzIG9mZiwgbm9cbiAgICogYGltYWdlX3VybGAsIG9yIG9uZSB0aGF0IGlzIG5vdCBhbiBodHRwKHMpIFVSTC4gQSBwaWN0dXJlIHN0YW5kcyBpbiBmb3JcbiAgICogdGhlIGljb24g4oCUIGEgcm93IG5ldmVyIGxlYWRzIHdpdGggdHdvIHZpc3VhbHMuXG4gICAqL1xuICBnZXQgaW1hZ2VTcmMoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuc2hvd0ltYWdlID8gb3B0aW9uSW1hZ2VTcmModGhpcy5vcHRpb24uaW1hZ2VfdXJsKSA6IG51bGw7XG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgY3VycmVudCBwaWN0dXJlIGZhaWxlZCB0byBsb2FkICh0aGUgdGlsZSdzIGZpbGwgc3RheXMpLiAqL1xuICBnZXQgaW1hZ2VGYWlsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZmFpbGVkU3JjICE9PSBudWxsICYmIHRoaXMuZmFpbGVkU3JjID09PSB0aGlzLmltYWdlU3JjO1xuICB9XG5cbiAgb25JbWFnZUVycm9yKCk6IHZvaWQge1xuICAgIHRoaXMuZmFpbGVkU3JjID0gdGhpcy5pbWFnZVNyYztcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgY291bnQgYXMgcHJpbnRlZCAoXCIxLDI4NFwiKSwgb3IgYG51bGxgIHdoZW4gdGhlIHJvdyBzaG93cyBub25lLiBUaGVcbiAgICogdW5pdCB3b3JkIGFmdGVyIGl0IGlzIHRoZSBzdHlsZXNoZWV0J3MgKGAtLWFpYS1vcHRpb24tY291bnQtdW5pdGApLlxuICAgKi9cbiAgZ2V0IGNvdW50TGFiZWwoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuc2hvd0NvdW50ID8gZm9ybWF0T3B0aW9uQ291bnQodGhpcy5vcHRpb24uaXRlbV9jb3VudCkgOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBvcHRpb24ncyBpY29uIGFzIGJpbmRhYmxlIEhUTUwsIG9yIGBudWxsYCB3aGVuIGl0IGhhcyBub25lIChvciBpdHNcbiAgICogbWFya3VwIGZhaWxlZCB0aGUgYWxsb3dsaXN0KS4gQW5ndWxhcidzIG93biBIVE1MIHNhbml0aXplciBzdHJpcHMgYDxzdmc+YFxuICAgKiB3aG9sZXNhbGUsIHNvIHRoZSBjb3JlJ3MgYWxsb3dsaXN0ZWQgb3V0cHV0IGlzIG1hcmtlZCB0cnVzdGVkIGluc3RlYWQg4oCUXG4gICAqIGl0IGlzIG5ldmVyIHRoZSBzZXJ2ZXIncyByYXcgc3RyaW5nLiBSZWNvbXB1dGVkIG9ubHkgd2hlbiB0aGUgbWFya3VwXG4gICAqIGNoYW5nZXM7IHRoZSBnZXR0ZXIgcnVucyBvbiBldmVyeSBPblB1c2ggY2hlY2suXG4gICAqL1xuICBnZXQgaWNvbkh0bWwoKTogU2FmZUh0bWwgfCBudWxsIHtcbiAgICBjb25zdCBzdmcgPSB0aGlzLnNob3dJY29uICYmICF0aGlzLmltYWdlU3JjID8gdGhpcy5vcHRpb24uaWNvbl9zdmcgOiB1bmRlZmluZWQ7XG4gICAgaWYgKHN2ZyAhPT0gdGhpcy5pY29uU291cmNlKSB7XG4gICAgICB0aGlzLmljb25Tb3VyY2UgPSBzdmc7XG4gICAgICBjb25zdCBodG1sID0gc3ZnID8gc2FuaXRpemVPcHRpb25JY29uU3ZnKHN2ZykgOiBudWxsO1xuICAgICAgdGhpcy5pY29uU2FmZSA9IGh0bWwgPyB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChodG1sKSA6IG51bGw7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmljb25TYWZlO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucHJlc3NlZFRpbWVyICE9PSB1bmRlZmluZWQpIGNsZWFyVGltZW91dCh0aGlzLnByZXNzZWRUaW1lcik7XG4gIH1cblxuICBvblNlbGVjdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5sb2FkaW5nIHx8ICF0aGlzLm9wdGlvbi5pc190YXBwYWJsZSB8fCB0aGlzLnByZXNzZWQpIHJldHVybjtcbiAgICB0aGlzLnByZXNzZWQgPSB0cnVlO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIHRoaXMuc2VsZWN0LmVtaXQodGhpcy5vcHRpb24pO1xuICAgIGlmICh0aGlzLnByZXNzZWRUaW1lciAhPT0gdW5kZWZpbmVkKSBjbGVhclRpbWVvdXQodGhpcy5wcmVzc2VkVGltZXIpO1xuICAgIHRoaXMucHJlc3NlZFRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnByZXNzZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH0sIDE3MCk7XG4gIH1cblxuICBvbk1vdXNlRW50ZXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubG9hZGluZyB8fCAhdGhpcy5vcHRpb24uaXNfdGFwcGFibGUpIHJldHVybjtcbiAgICB0aGlzLmhpZ2hsaWdodC5lbWl0KCk7XG4gIH1cblxuICBvbk1vdXNlTGVhdmUoKTogdm9pZCB7XG4gICAgdGhpcy51bmhpZ2hsaWdodC5lbWl0KCk7XG4gIH1cblxuICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5sb2FkaW5nIHx8ICF0aGlzLm9wdGlvbi5pc190YXBwYWJsZSkgcmV0dXJuO1xuICAgIGlmIChldmVudC5rZXkgPT09IFwiRW50ZXJcIiB8fCBldmVudC5rZXkgPT09IFwiIFwiKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5vblNlbGVjdCgpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdlxuICBbaWRdPVwiaWRcIlxuICByb2xlPVwib3B0aW9uXCJcbiAgZGF0YS1haWEtb3B0aW9uPVwiXCJcbiAgW2F0dHIuZGF0YS1haWEtbG9hZGluZ109XCJsb2FkaW5nID8gJycgOiBudWxsXCJcbiAgW2F0dHIuZGF0YS1haWEtaWNvbl09XCJpY29uSHRtbCAmJiBvcHRpb24uaWNvbiA/IG9wdGlvbi5pY29uIDogbnVsbFwiXG4gIFthdHRyLmRhdGEtYWlhLWltYWdlXT1cImltYWdlU3JjID8gJycgOiBudWxsXCJcbiAgW2F0dHIuZGF0YS1haWEtaXRlbS1jb3VudF09XCJjb3VudExhYmVsICE9PSBudWxsID8gb3B0aW9uLml0ZW1fY291bnQgOiBudWxsXCJcbiAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJpc0hpZ2hsaWdodGVkXCJcbiAgY2xhc3M9XCJhaWEtc3VnZ2VzdGlvbi1pdGVtXCJcbiAgW3N0eWxlLi0tYWlhLW9wdGlvbi1lbnRlci1kZWxheV09XCIoZW50ZXJEZWxheSA/PyAwKSArICdtcydcIlxuICBbY2xhc3MuYWlhLXN1Z2dlc3Rpb24taXRlbS1oaWdobGlnaHRlZF09XCJpc0hpZ2hsaWdodGVkICYmICFsb2FkaW5nXCJcbiAgW2NsYXNzLmFpYS1zdWdnZXN0aW9uLWl0ZW0tdGFwcGFibGVdPVwib3B0aW9uLmlzX3RhcHBhYmxlXCJcbiAgW2NsYXNzLmFpYS1zdWdnZXN0aW9uLWl0ZW0tbm9uLXRhcHBhYmxlXT1cIiFvcHRpb24uaXNfdGFwcGFibGVcIlxuICBbY2xhc3MuYWlhLXN1Z2dlc3Rpb24taXRlbS1wcmVzc2VkXT1cInByZXNzZWRcIlxuICBbY2xhc3MuYWlhLXN1Z2dlc3Rpb24taXRlbS1zY3JvbGwtaGludF09XCJzY3JvbGxIaW50XCJcbiAgW2F0dHIudGFiaW5kZXhdPVwibG9hZGluZyB8fCAhb3B0aW9uLmlzX3RhcHBhYmxlID8gLTEgOiAwXCJcbiAgKGNsaWNrKT1cIm9uU2VsZWN0KClcIlxuICAoa2V5ZG93bik9XCJvbktleURvd24oJGV2ZW50KVwiXG4gIChtb3VzZWVudGVyKT1cIm9uTW91c2VFbnRlcigpXCJcbiAgKG1vdXNlbGVhdmUpPVwib25Nb3VzZUxlYXZlKClcIlxuPlxuICA8c3BhbiBjbGFzcz1cImFpYS1zdWdnZXN0aW9uLWNvbnRlbnRcIj5cbiAgICA8IS0tIFRoZSB0aWxlIGtlZXBzIGEgcGxhY2Vob2xkZXIgZmlsbCB1bmRlciB0aGUgcGljdHVyZSwgc28gYSBzbG93IG9yXG4gICAgICAgICBmYWlsZWQgbG9hZCBsZWF2ZXMgYSBuZXV0cmFsIHNxdWFyZSByYXRoZXIgdGhhbiBhIGdhcC4gVGhlIHBpY3R1cmUgaXNcbiAgICAgICAgIGRlY29yYXRpdmU6IHRoZSB0ZXh0IGlzIHRoZSBvcHRpb24ncyBhY2Nlc3NpYmxlIG5hbWUuIC0tPlxuICAgIDxzcGFuICpuZ0lmPVwiaW1hZ2VTcmMgYXMgc3JjXCIgY2xhc3M9XCJhaWEtc3VnZ2VzdGlvbi1pbWFnZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgPGltZ1xuICAgICAgICBbc3JjXT1cInNyY1wiXG4gICAgICAgIGFsdD1cIlwiXG4gICAgICAgIGxvYWRpbmc9XCJsYXp5XCJcbiAgICAgICAgZGVjb2Rpbmc9XCJhc3luY1wiXG4gICAgICAgIHJlZmVycmVycG9saWN5PVwibm8tcmVmZXJyZXJcIlxuICAgICAgICBkcmFnZ2FibGU9XCJmYWxzZVwiXG4gICAgICAgIFtoaWRkZW5dPVwiaW1hZ2VGYWlsZWRcIlxuICAgICAgICAoZXJyb3IpPVwib25JbWFnZUVycm9yKClcIlxuICAgICAgLz5cbiAgICA8L3NwYW4+XG4gICAgPHNwYW5cbiAgICAgICpuZ0lmPVwiaWNvbkh0bWxcIlxuICAgICAgY2xhc3M9XCJhaWEtc3VnZ2VzdGlvbi1pY29uXCJcbiAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICBbaW5uZXJIVE1MXT1cImljb25IdG1sXCJcbiAgICA+PC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPVwiYWlhLXN1Z2dlc3Rpb24tdGV4dFwiPnt7IGxhYmVsIH19PC9zcGFuPlxuICAgIDxzcGFuICpuZ0lmPVwib3B0aW9uLnRhZ1wiIGNsYXNzPVwiYWlhLXN1Z2dlc3Rpb24tdGFnXCI+e3sgb3B0aW9uLnRhZyB9fTwvc3Bhbj5cbiAgICA8IS0tIFBhcnQgb2YgdGhlIHJvdydzIGFjY2Vzc2libGUgbmFtZSwgcmVhZCBhZnRlciB0aGUgb3B0aW9uJ3MgdGV4dC4gLS0+XG4gICAgPHNwYW4gKm5nSWY9XCJjb3VudExhYmVsICE9PSBudWxsXCIgY2xhc3M9XCJhaWEtc3VnZ2VzdGlvbi1jb3VudFwiPnt7IGNvdW50TGFiZWwgfX08L3NwYW4+XG4gIDwvc3Bhbj5cbjwvZGl2PlxuIl19
173
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VnZ2VzdGlvbi1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvaW50ZXJuYWwvc3VnZ2VzdGlvbi1pdGVtL3N1Z2dlc3Rpb24taXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ludGVybmFsL3N1Z2dlc3Rpb24taXRlbS9zdWdnZXN0aW9uLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFFTixNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQWlCLE1BQU0sMkJBQTJCLENBQUM7QUFDeEUsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixjQUFjLEVBQ2QsV0FBVyxFQUVYLHFCQUFxQixHQUN0QixNQUFNLHFDQUFxQyxDQUFDOzs7QUFFN0M7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBVUgsTUFBTSxPQUFPLHVCQUF1QjtJQVRwQztRQVdXLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLE9BQUUsR0FBRyxFQUFFLENBQUM7UUFDUixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLDhFQUE4RTtRQUNyRSxhQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLG9IQUFvSDtRQUMzRyxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQzFCLDJGQUEyRjtRQUNsRixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQzFCLDhGQUE4RjtRQUNyRixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBUzVCOzs7O1dBSUc7UUFDSCxlQUFVLEdBQWtCLElBQUksQ0FBQztRQUVkLFdBQU0sR0FBRyxJQUFJLFlBQVks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QXJCLEtBQUs7Z0JBQ0csRUFBRTtzQkFBVixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFFRyxVQUFVO3NCQUFsQixLQUFLO2dCQU1PLFlBQVk7c0JBQXhCLEtBQUs7Z0JBVWEsTUFBTTtzQkFBeEIsTUFBTTtnQkFDWSxTQUFTO3NCQUEzQixNQUFNO2dCQU1ZLFdBQVc7c0JBQTdCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgaW5qZWN0LFxuICB0eXBlIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IERvbVNhbml0aXplciwgdHlwZSBTYWZlSHRtbCB9IGZyb20gXCJAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyXCI7XG5pbXBvcnQge1xuICBmb3JtYXRPcHRpb25Db3VudCxcbiAgb3B0aW9uSW1hZ2VTcmMsXG4gIG9wdGlvbkxhYmVsLFxuICB0eXBlIFN1Z2dlc3Rpb25PcHRpb24sXG4gIHNhbml0aXplT3B0aW9uSWNvblN2Zyxcbn0gZnJvbSBcIkBtYWdpY3gtZW5nL2FpLWF1dG9jb21wbGV0ZS12YW5pbGxhXCI7XG5cbi8qKlxuICogSW50ZXJuYWwgc2luZ2xlLW9wdGlvbiBjZWxsIHVzZWQgaW5zaWRlIHRoZSBzdWdnZXN0aW9uIGdyaWQuIE1pcnJvcnNcbiAqIGBwYWNrYWdlcy9yZWFjdC9zcmMvY29tcG9uZW50cy9TdWdnZXN0aW9uSXRlbS50c3hgLiBIYW5kbGVzOlxuICpcbiAqIC0gVGFwcGFibGUgdnMgbm9uLXRhcHBhYmxlIGN1cnNvciArIGhvdmVyIHN0eWxpbmdcbiAqIC0gUHJlc3NlZC1zdGF0ZSBjb21wcmVzcyBhbmltYXRpb24gKDE3MG1zLCBzaW5nbGUtZmxpZ2h0KVxuICogLSBLZXlib2FyZCBhY3RpdmF0aW9uIChFbnRlci9TcGFjZSlcbiAqIC0gQVJJQSBgcm9sZT1cIm9wdGlvblwiYCArIGBhcmlhLXNlbGVjdGVkYCBmb3IgdGhlIGxpc3Rib3ggcGF0dGVyblxuICogLSBMb2FkaW5nIHNrZWxldG9uIHdoZW4gYGxvYWRpbmc9dHJ1ZWBcbiAqIC0gU2VydmVyLXByb3ZpZGVkIGljb24gKGBpY29uX3N2Z2ApLCBhbGxvd2xpc3RlZCB0aHJvdWdoIHRoZSBjb3JlJ3NcbiAqICAgYHNhbml0aXplT3B0aW9uSWNvblN2Z2AgYmVmb3JlIGl0IGlzIGJvdW5kIGFzIEhUTUxcbiAqIC0gU2VydmVyLXByb3ZpZGVkIHBpY3R1cmUgKGBpbWFnZV91cmxgKSBhcyBhIHNxdWFyZSB0aHVtYm5haWwgaW4gcGxhY2Ugb2ZcbiAqICAgdGhlIGljb24sIGFuZCBpdGVtIGNvdW50IChgaXRlbV9jb3VudGApIGF0IHRoZSByb3cncyB0cmFpbGluZyBlZGdlXG4gKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJhaWEtc3VnZ2VzdGlvbi1pdGVtXCIsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgdGVtcGxhdGVVcmw6IFwiLi9zdWdnZXN0aW9uLWl0ZW0uY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL3N1Z2dlc3Rpb24taXRlbS5jb21wb25lbnQuY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBTdWdnZXN0aW9uSXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIG9wdGlvbiE6IFN1Z2dlc3Rpb25PcHRpb247XG4gIEBJbnB1dCgpIGlzSGlnaGxpZ2h0ZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgaWQgPSBcIlwiO1xuICBASW5wdXQoKSBsb2FkaW5nID0gZmFsc2U7XG4gIC8qKiBXaGV0aGVyIHRvIGRyYXcgdGhlIG9wdGlvbidzIGBpY29uX3N2Z2AgYmVmb3JlIGl0cyB0ZXh0LiBEZWZhdWx0OiB0cnVlLiAqL1xuICBASW5wdXQoKSBzaG93SWNvbiA9IHRydWU7XG4gIC8qKiBXaGV0aGVyIHRvIGRyYXcgdGhlIG9wdGlvbidzIGBpbWFnZV91cmxgIGFzIGEgdGh1bWJuYWlsIGJlZm9yZSBpdHMgdGV4dCwgaW4gcGxhY2Ugb2YgdGhlIGljb24uIERlZmF1bHQ6IHRydWUuICovXG4gIEBJbnB1dCgpIHNob3dJbWFnZSA9IHRydWU7XG4gIC8qKiBXaGV0aGVyIHRvIHNob3cgdGhlIG9wdGlvbidzIGBpdGVtX2NvdW50YCBhdCB0aGUgcm93J3MgdHJhaWxpbmcgZWRnZS4gRGVmYXVsdDogdHJ1ZS4gKi9cbiAgQElucHV0KCkgc2hvd0NvdW50ID0gdHJ1ZTtcbiAgLyoqIEZhZGUgdGhpcyBvcHRpb24ncyB0ZXh0IHRvd2FyZCBpdHMgYm90dG9tIGVkZ2UgKGxhc3QgdmlzaWJsZSByb3cgb2YgYSBzY3JvbGxhYmxlIGdyaWQpLiAqL1xuICBASW5wdXQoKSBzY3JvbGxIaW50ID0gZmFsc2U7XG4gIC8qKlxuICAgKiBTdGFydCBkZWxheSBvZiB0aGlzIHJvdydzIGVudHJhbmNlIGFuaW1hdGlvbiAobXMpIOKAlCBlYWNoIHJvdyByaXNlcyBpbiBhXG4gICAqIGJlYXQgYWZ0ZXIgdGhlIG9uZSBuZWFyZXIgdGhlIGlucHV0LiBDYXB0dXJlZCBvbmNlLCBvbiBmaXJzdCByZW5kZXIsIHNvIGFcbiAgICogbGF0ZXIgY2hhbmdlLWRldGVjdGlvbiBwYXNzIGNhbid0IHJlc3RhcnQgYSByb3cgbWlkLXJpc2UuXG4gICAqL1xuICBASW5wdXQoKSBzZXQgZW50ZXJEZWxheU1zKHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5lbnRlckRlbGF5ID09PSBudWxsKSB0aGlzLmVudGVyRGVsYXkgPSB2YWx1ZTtcbiAgfVxuICAvKipcbiAgICogVGhlIGNhcHR1cmVkIGRlbGF5OyBgbnVsbGAgdW50aWwgdGhlIGZpcnN0IGBlbnRlckRlbGF5TXNgIGJpbmRpbmcgbGFuZHMuXG4gICAqIFRoZSB0ZW1wbGF0ZSBiaW5kcyBpdCB0byBgLS1haWEtb3B0aW9uLWVudGVyLWRlbGF5YCAodGhlIGNvcmUnc1xuICAgKiBPUFRJT05fRU5URVJfREVMQVlfVkFSKSwgd2hpY2ggdGhlIHN0eWxlc2hlZXQncyBlbnRyYW5jZSBydWxlIHJlYWRzLlxuICAgKi9cbiAgZW50ZXJEZWxheTogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgQE91dHB1dCgpIHJlYWRvbmx5IHNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8U3VnZ2VzdGlvbk9wdGlvbj4oKTtcbiAgQE91dHB1dCgpIHJlYWRvbmx5IGhpZ2hsaWdodCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgLyoqXG4gICAqIFRoZSBwb2ludGVyIGxlZnQgdGhpcyByb3cuIFRoZSBvd25lciBjbGVhcnMgdGhlIGhpZ2hsaWdodCBpZiBpdCBpcyBzdGlsbFxuICAgKiBvbiB0aGlzIHJvdzogYSBob3ZlciBoaWdobGlnaHQgZW5kcyB3aXRoIHRoZSBob3Zlciwgc28gRW50ZXIgYWZ0ZXJ3YXJkc1xuICAgKiBzdWJtaXRzIGluc3RlYWQgb2YgcGlja2luZyBhIHJvdyB0aGUgcG9pbnRlciBpcyBubyBsb25nZXIgb24uXG4gICAqL1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgdW5oaWdobGlnaHQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgcHJlc3NlZCA9IGZhbHNlO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBzYW5pdGl6ZXIgPSBpbmplY3QoRG9tU2FuaXRpemVyKTtcbiAgcHJpdmF0ZSBwcmVzc2VkVGltZXI6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIGljb25Tb3VyY2U6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBpY29uU2FmZTogU2FmZUh0bWwgfCBudWxsID0gbnVsbDtcbiAgLyoqIFRoZSBgc3JjYCB3aG9zZSBsb2FkIGZhaWxlZCwgc28gdGhlIHRpbGUga2VlcHMgaXRzIHBsYWNlaG9sZGVyIGZpbGwgZm9yIGl0LiAqL1xuICBwcml2YXRlIGZhaWxlZFNyYzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIFRoZSBvcHRpb24ncyB0ZXh0LiBgaWNvbmAgaXMgdGhlIGljb24ncyBuYW1lIGFuZCBpcyBuZXZlciBzaG93biBhcyB0ZXh0LiAqL1xuICBnZXQgbGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gb3B0aW9uTGFiZWwodGhpcy5vcHRpb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBwaWN0dXJlJ3MgYHNyY2AsIG9yIGBudWxsYCB3aGVuIHRoZSByb3cgZHJhd3Mgbm9uZTogaW1hZ2VzIG9mZiwgbm9cbiAgICogYGltYWdlX3VybGAsIG9yIG9uZSB0aGF0IGlzIG5vdCBhbiBodHRwKHMpIFVSTC4gQSBwaWN0dXJlIHN0YW5kcyBpbiBmb3JcbiAgICogdGhlIGljb24g4oCUIGEgcm93IG5ldmVyIGxlYWRzIHdpdGggdHdvIHZpc3VhbHMuXG4gICAqL1xuICBnZXQgaW1hZ2VTcmMoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuc2hvd0ltYWdlID8gb3B0aW9uSW1hZ2VTcmModGhpcy5vcHRpb24uaW1hZ2VfdXJsKSA6IG51bGw7XG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgY3VycmVudCBwaWN0dXJlIGZhaWxlZCB0byBsb2FkICh0aGUgdGlsZSdzIGZpbGwgc3RheXMpLiAqL1xuICBnZXQgaW1hZ2VGYWlsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZmFpbGVkU3JjICE9PSBudWxsICYmIHRoaXMuZmFpbGVkU3JjID09PSB0aGlzLmltYWdlU3JjO1xuICB9XG5cbiAgb25JbWFnZUVycm9yKCk6IHZvaWQge1xuICAgIHRoaXMuZmFpbGVkU3JjID0gdGhpcy5pbWFnZVNyYztcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgY291bnQgYXMgcHJpbnRlZCAoXCIxLDI4NFwiKSwgb3IgYG51bGxgIHdoZW4gdGhlIHJvdyBzaG93cyBub25lLiBUaGVcbiAgICogdW5pdCB3b3JkIGFmdGVyIGl0IGlzIHRoZSBzdHlsZXNoZWV0J3MgKGAtLWFpYS1vcHRpb24tY291bnQtdW5pdGApLlxuICAgKi9cbiAgZ2V0IGNvdW50TGFiZWwoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuc2hvd0NvdW50ID8gZm9ybWF0T3B0aW9uQ291bnQodGhpcy5vcHRpb24uaXRlbV9jb3VudCkgOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBvcHRpb24ncyBpY29uIGFzIGJpbmRhYmxlIEhUTUwsIG9yIGBudWxsYCB3aGVuIGl0IGhhcyBub25lIChvciBpdHNcbiAgICogbWFya3VwIGZhaWxlZCB0aGUgYWxsb3dsaXN0KS4gQW5ndWxhcidzIG93biBIVE1MIHNhbml0aXplciBzdHJpcHMgYDxzdmc+YFxuICAgKiB3aG9sZXNhbGUsIHNvIHRoZSBjb3JlJ3MgYWxsb3dsaXN0ZWQgb3V0cHV0IGlzIG1hcmtlZCB0cnVzdGVkIGluc3RlYWQg4oCUXG4gICAqIGl0IGlzIG5ldmVyIHRoZSBzZXJ2ZXIncyByYXcgc3RyaW5nLiBSZWNvbXB1dGVkIG9ubHkgd2hlbiB0aGUgbWFya3VwXG4gICAqIGNoYW5nZXM7IHRoZSBnZXR0ZXIgcnVucyBvbiBldmVyeSBPblB1c2ggY2hlY2suXG4gICAqL1xuICBnZXQgaWNvbkh0bWwoKTogU2FmZUh0bWwgfCBudWxsIHtcbiAgICBjb25zdCBzdmcgPSB0aGlzLnNob3dJY29uICYmICF0aGlzLmltYWdlU3JjID8gdGhpcy5vcHRpb24uaWNvbl9zdmcgOiB1bmRlZmluZWQ7XG4gICAgaWYgKHN2ZyAhPT0gdGhpcy5pY29uU291cmNlKSB7XG4gICAgICB0aGlzLmljb25Tb3VyY2UgPSBzdmc7XG4gICAgICBjb25zdCBodG1sID0gc3ZnID8gc2FuaXRpemVPcHRpb25JY29uU3ZnKHN2ZykgOiBudWxsO1xuICAgICAgdGhpcy5pY29uU2FmZSA9IGh0bWwgPyB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChodG1sKSA6IG51bGw7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmljb25TYWZlO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucHJlc3NlZFRpbWVyICE9PSB1bmRlZmluZWQpIGNsZWFyVGltZW91dCh0aGlzLnByZXNzZWRUaW1lcik7XG4gIH1cblxuICBvblNlbGVjdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5sb2FkaW5nIHx8ICF0aGlzLm9wdGlvbi5pc190YXBwYWJsZSB8fCB0aGlzLnByZXNzZWQpIHJldHVybjtcbiAgICB0aGlzLnByZXNzZWQgPSB0cnVlO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIHRoaXMuc2VsZWN0LmVtaXQodGhpcy5vcHRpb24pO1xuICAgIGlmICh0aGlzLnByZXNzZWRUaW1lciAhPT0gdW5kZWZpbmVkKSBjbGVhclRpbWVvdXQodGhpcy5wcmVzc2VkVGltZXIpO1xuICAgIHRoaXMucHJlc3NlZFRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnByZXNzZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH0sIDE3MCk7XG4gIH1cblxuICBvbk1vdXNlRW50ZXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubG9hZGluZyB8fCAhdGhpcy5vcHRpb24uaXNfdGFwcGFibGUpIHJldHVybjtcbiAgICB0aGlzLmhpZ2hsaWdodC5lbWl0KCk7XG4gIH1cblxuICBvbk1vdXNlTGVhdmUoKTogdm9pZCB7XG4gICAgdGhpcy51bmhpZ2hsaWdodC5lbWl0KCk7XG4gIH1cblxuICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5sb2FkaW5nIHx8ICF0aGlzLm9wdGlvbi5pc190YXBwYWJsZSkgcmV0dXJuO1xuICAgIGlmIChldmVudC5rZXkgPT09IFwiRW50ZXJcIiB8fCBldmVudC5rZXkgPT09IFwiIFwiKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5vblNlbGVjdCgpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdlxuICBbaWRdPVwiaWRcIlxuICByb2xlPVwib3B0aW9uXCJcbiAgZGF0YS1haWEtb3B0aW9uPVwiXCJcbiAgW2F0dHIuZGF0YS1haWEtbG9hZGluZ109XCJsb2FkaW5nID8gJycgOiBudWxsXCJcbiAgW2F0dHIuZGF0YS1haWEtaWNvbl09XCJpY29uSHRtbCAmJiBvcHRpb24uaWNvbiA/IG9wdGlvbi5pY29uIDogbnVsbFwiXG4gIFthdHRyLmRhdGEtYWlhLWltYWdlXT1cImltYWdlU3JjID8gJycgOiBudWxsXCJcbiAgW2F0dHIuZGF0YS1haWEtaXRlbS1jb3VudF09XCJjb3VudExhYmVsICE9PSBudWxsID8gb3B0aW9uLml0ZW1fY291bnQgOiBudWxsXCJcbiAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJpc0hpZ2hsaWdodGVkXCJcbiAgY2xhc3M9XCJhaWEtc3VnZ2VzdGlvbi1pdGVtXCJcbiAgW3N0eWxlLi0tYWlhLW9wdGlvbi1lbnRlci1kZWxheV09XCIoZW50ZXJEZWxheSA/PyAwKSArICdtcydcIlxuICBbY2xhc3MuYWlhLXN1Z2dlc3Rpb24taXRlbS1oaWdobGlnaHRlZF09XCJpc0hpZ2hsaWdodGVkICYmICFsb2FkaW5nXCJcbiAgW2NsYXNzLmFpYS1zdWdnZXN0aW9uLWl0ZW0tdGFwcGFibGVdPVwib3B0aW9uLmlzX3RhcHBhYmxlXCJcbiAgW2NsYXNzLmFpYS1zdWdnZXN0aW9uLWl0ZW0tbm9uLXRhcHBhYmxlXT1cIiFvcHRpb24uaXNfdGFwcGFibGVcIlxuICBbY2xhc3MuYWlhLXN1Z2dlc3Rpb24taXRlbS1wcmVzc2VkXT1cInByZXNzZWRcIlxuICBbY2xhc3MuYWlhLXN1Z2dlc3Rpb24taXRlbS1zY3JvbGwtaGludF09XCJzY3JvbGxIaW50XCJcbiAgW2F0dHIudGFiaW5kZXhdPVwibG9hZGluZyB8fCAhb3B0aW9uLmlzX3RhcHBhYmxlID8gLTEgOiAwXCJcbiAgKGNsaWNrKT1cIm9uU2VsZWN0KClcIlxuICAoa2V5ZG93bik9XCJvbktleURvd24oJGV2ZW50KVwiXG4gIChtb3VzZWVudGVyKT1cIm9uTW91c2VFbnRlcigpXCJcbiAgKG1vdXNlbGVhdmUpPVwib25Nb3VzZUxlYXZlKClcIlxuPlxuICA8c3BhbiBjbGFzcz1cImFpYS1zdWdnZXN0aW9uLWNvbnRlbnRcIj5cbiAgICA8IS0tIFRoZSB0aWxlIGtlZXBzIGEgcGxhY2Vob2xkZXIgZmlsbCB1bmRlciB0aGUgcGljdHVyZSwgc28gYSBzbG93IG9yXG4gICAgICAgICBmYWlsZWQgbG9hZCBsZWF2ZXMgYSBuZXV0cmFsIHNxdWFyZSByYXRoZXIgdGhhbiBhIGdhcC4gVGhlIHBpY3R1cmUgaXNcbiAgICAgICAgIGRlY29yYXRpdmU6IHRoZSB0ZXh0IGlzIHRoZSBvcHRpb24ncyBhY2Nlc3NpYmxlIG5hbWUuIC0tPlxuICAgIDxzcGFuICpuZ0lmPVwiaW1hZ2VTcmMgYXMgc3JjXCIgY2xhc3M9XCJhaWEtc3VnZ2VzdGlvbi1pbWFnZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgPGltZ1xuICAgICAgICBbc3JjXT1cInNyY1wiXG4gICAgICAgIGFsdD1cIlwiXG4gICAgICAgIGxvYWRpbmc9XCJsYXp5XCJcbiAgICAgICAgZGVjb2Rpbmc9XCJhc3luY1wiXG4gICAgICAgIHJlZmVycmVycG9saWN5PVwibm8tcmVmZXJyZXJcIlxuICAgICAgICBkcmFnZ2FibGU9XCJmYWxzZVwiXG4gICAgICAgIFtoaWRkZW5dPVwiaW1hZ2VGYWlsZWRcIlxuICAgICAgICAoZXJyb3IpPVwib25JbWFnZUVycm9yKClcIlxuICAgICAgLz5cbiAgICA8L3NwYW4+XG4gICAgPHNwYW5cbiAgICAgICpuZ0lmPVwiaWNvbkh0bWxcIlxuICAgICAgY2xhc3M9XCJhaWEtc3VnZ2VzdGlvbi1pY29uXCJcbiAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICBbaW5uZXJIVE1MXT1cImljb25IdG1sXCJcbiAgICA+PC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPVwiYWlhLXN1Z2dlc3Rpb24tdGV4dFwiPnt7IGxhYmVsIH19PC9zcGFuPlxuICAgIDxzcGFuICpuZ0lmPVwib3B0aW9uLnRhZ1wiIGNsYXNzPVwiYWlhLXN1Z2dlc3Rpb24tdGFnXCI+e3sgb3B0aW9uLnRhZyB9fTwvc3Bhbj5cbiAgICA8IS0tIFBhcnQgb2YgdGhlIHJvdydzIGFjY2Vzc2libGUgbmFtZSwgcmVhZCBhZnRlciB0aGUgb3B0aW9uJ3MgdGV4dC4gLS0+XG4gICAgPHNwYW4gKm5nSWY9XCJjb3VudExhYmVsICE9PSBudWxsXCIgY2xhc3M9XCJhaWEtc3VnZ2VzdGlvbi1jb3VudFwiPnt7IGNvdW50TGFiZWwgfX08L3NwYW4+XG4gIDwvc3Bhbj5cbjwvZGl2PlxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3NoYXJlZC90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBBUElDb25maWcsXG4gIEF1dG9jb21wbGV0ZVJlc3VsdCxcbiAgQ29tcGxldGVkUGFyYW1TdGF0ZSxcbiAgQ3VzdG9tRmllbGRzUmVwb3J0LFxuICBEYXRlTW9udGhWaWV3LFxuICBEYXRlUmFuZ2UsXG4gIEZvcm1hdFR5cGUsXG4gIElkZW50aWZpZWRQYXJhbVN0YXRlLFxuICBPcHRpb25PdmVycmlkZXMsXG4gIFByb2R1Y3QsXG4gIFByb2R1Y3RzQ29uZmlnLFxuICBTZWdtZW50LFxuICBTa2lwcGVkUGFyYW1TdGF0ZSxcbiAgU3VnZ2VzdGlvbixcbn0gZnJvbSBcIkBtYWdpY3gtZW5nL2FpLWF1dG9jb21wbGV0ZS12YW5pbGxhXCI7XG5cbi8qKlxuICogQ29uc3RydWN0aW9uLXRpbWUgb3B0aW9ucyBmb3Ige0BsaW5rIEFJQXV0b2NvbXBsZXRlQ29udHJvbGxlcn0uXG4gKlxuICogTWlycm9ycyB0aGUgcHJvcHMgdGhlIFJlYWN0IGB1c2VBSUF1dG9jb21wbGV0ZSgpYCBob29rIGFjY2VwdHMsIG1pbnVzIHRoZVxuICogZmllbGRzIHRoYXQgb25seSBtYWtlIHNlbnNlIGZvciBhIFJlYWN0IGNvbXBvbmVudCBzaGVsbCAoYGNvbHVtbnNgIGlzIGhlcmU7XG4gKiBgYXV0b0ZvY3VzYCwgYGNsYXNzTmFtZWAsIGBwaWxsUGxhY2VtZW50YCwgZXRjLiBsaXZlIG9uIHRoZSBUaWVyIDFcbiAqIGA8YWktYXV0b2NvbXBsZXRlPmAgY29tcG9uZW50KS5cbiAqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQUlBdXRvY29tcGxldGVDb250cm9sbGVyT3B0aW9ucyB7XG4gIC8qKiBSdW50aW1lIEFQSSBjb25maWd1cmF0aW9uIChhcGlLZXksIGVuZHBvaW50LCBldGMuKS4gKi9cbiAgYXBpQ29uZmlnPzogQVBJQ29uZmlnO1xuICAvKipcbiAgICogT3B0aW9uYWwgdXNlciBjb250ZXh0LiBJbmNsdWRlIHdoYXRldmVyIHlvdSBrbm93IGFib3V0IHRoZSB1c2VyIOKAlCBhXG4gICAqIHByb2ZpbGUsIHByZWZlcmVuY2VzLCB3b3Jrc3BhY2UsIGFueXRoaW5nIOKAlCB0byBwZXJzb25hbGl6ZSBzdWdnZXN0ZWRcbiAgICogcGFyYW1ldGVycyBhbmQgb3B0aW9ucyB0byB0aGVtLlxuICAgKi9cbiAgYWRkaXRpb25hbENvbnRleHQ/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgLyoqIFBlci1zdWdnZXN0aW9uLXR5cGUgY2xpZW50LXNpZGUgb3B0aW9uIG92ZXJyaWRlcy4gKi9cbiAgb3B0aW9uT3ZlcnJpZGVzPzogT3B0aW9uT3ZlcnJpZGVzO1xuICAvKiogV2hlbiB0cnVlLCBjb21wbGV0ZWQgcGFyYW1zJyBsaXRlcmFsIHRleHQgaXMgb21pdHRlZCBmcm9tIEFQSSByZXF1ZXN0cy4gKi9cbiAgbWFza0NvbXBsZXRlZFRleHQ/OiBib29sZWFuO1xuICAvKiogTnVtYmVyIG9mIGNvbHVtbnMgaW4gdGhlIGRyb3Bkb3duIGdyaWQuIERlZmF1bHQ6IDIuICovXG4gIGNvbHVtbnM/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBXaGVyZSB0aGUgZHJvcGRvd24gb3BlbnMgcmVsYXRpdmUgdG8gdGhlIGlucHV0LiBEZWZhdWx0OiBcImJlbG93XCIuXG4gICAqXG4gICAqIFJlYWQgYnkgdGhlIGtleWJvYXJkIGNvbnRyb2xsZXIgdG8gZGVjaWRlIHdoaWNoIHZlcnRpY2FsLWFycm93IGtleSBvcGVuc1xuICAgKiB0aGUgZHJvcGRvd24gZnJvbSB0aGUgaW5wdXQg4oCUIEFycm93RG93biB3aGVuIHRoZSBkcm9wZG93biBpcyBiZWxvdyxcbiAgICogQXJyb3dVcCB3aGVuIGl0J3MgYWJvdmUuXG4gICAqL1xuICBvcHRpb25zUG9zaXRpb24/OiBcImFib3ZlXCIgfCBcImJlbG93XCI7XG4gIC8qKlxuICAgKiBXaGVuIHRoZSBkcm9wZG93biBhcHBlYXJzLiBcImF1dG9cIiAoZGVmYXVsdCkgc2hvd3Mgd2hlbiBvcHRpb25zIGFyZVxuICAgKiBhdmFpbGFibGU7IFwibWFudWFsXCIgc2hvd3Mgb25seSBvbiBwaWxsIHRhcDsgXCJoaWRkZW5cIiBuZXZlciBzaG93cy5cbiAgICovXG4gIGRyb3Bkb3duVHJpZ2dlcj86IFwiYXV0b1wiIHwgXCJtYW51YWxcIiB8IFwiaGlkZGVuXCI7XG4gIC8qKiBXaGVuIHRydWUgKGRlZmF1bHQpLCB0aGUgZHJvcGRvd24gY2xvc2VzIGlmIHRoZSBpbnB1dCBsb3NlcyBmb2N1cy4gKi9cbiAgY2xvc2VEcm9wZG93bk9uQmx1cj86IGJvb2xlYW47XG4gIC8qKiBXaGVuIHRydWUgKGRlZmF1bHQpLCBub24tdGFwcGFibGUgb3B0aW9ucyByZW5kZXIgYWxvbmdzaWRlIHRhcHBhYmxlIG9uZXMuICovXG4gIHNob3dOb25UYXBwYWJsZU9wdGlvbnM/OiBib29sZWFuO1xuICAvKipcbiAgICogU0RLIHN1cmZhY2UgaWRlbnRpZmllciDigJQgc2VudCBhcyBtZXRhLnNvdXJjZSBvbiBib3RoIC9hcGkvc3VnZ2VzdCBhbmRcbiAgICogdGVsZW1ldHJ5IGV2ZW50cy4gU2V0IGF1dG9tYXRpY2FsbHkgdG8gXCJmdWxsLXNka1wiIGJ5IHRoZSBUaWVyIDFcbiAgICogYDxhaS1hdXRvY29tcGxldGU+YCBjb21wb25lbnQuIERlZmF1bHRzIHRvIFwiaGVhZGxlc3Mtc2RrXCIuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgc291cmNlPzogXCJmdWxsLXNka1wiIHwgXCJoZWFkbGVzcy1zZGtcIjtcbiAgLyoqIENhbGxlZCB3aGVuIHRoZSB1c2VyIHN1Ym1pdHMgKEVudGVyIGtleSBvciBgc3VibWl0KClgIGFjdGlvbikuICovXG4gIG9uU3VibWl0PzogKHJlc3VsdDogQXV0b2NvbXBsZXRlUmVzdWx0KSA9PiB2b2lkO1xuICAvKipcbiAgICogQ2FsbGVkIGFmdGVyIGV2ZXJ5IHN1Y2Nlc3NmdWwgc3VnZ2VzdGlvbiByb3VuZC10cmlwIHdpdGggdGhlIHN0cnVjdHVyZWRcbiAgICogcXVlcnkgYXMgdGhlIFNESyBub3cgdW5kZXJzdGFuZHMgaXQg4oCUIHRoZSBzYW1lIGBBdXRvY29tcGxldGVSZXN1bHRgIHNoYXBlXG4gICAqIGBvblN1Ym1pdGAgZGVsaXZlcnMsIHNvIGEgY29uc3VtZXIgY2FuIG1pcnJvciB0aGUgcXVlcnkgYXMgaXQgaXMgYnVpbHRcbiAgICogKGEgbGl2ZSBwcmV2aWV3LCBhIGRyYWZ0LCBhbmFseXRpY3MpIHdpdGhvdXQgd2FpdGluZyBmb3Igc3VibWl0LlxuICAgKlxuICAgKiBGaXJlcyBvbmNlIHBlciByZXNwb25zZSB0aGF0IHdhcyBhcHBsaWVkLCBpbmNsdWRpbmcgdGhlIGluaXRpYWwgcmVxdWVzdFxuICAgKiBvbiBjb25zdHJ1Y3Rpb24gKGFuIGVtcHR5IHJlc3VsdCkuIERvZXMgbm90IGZpcmUgZm9yIGEgcmVxdWVzdCB0aGF0XG4gICAqIGZhaWxlZCwgd2FzIGFib3J0ZWQsIG9yIHdhcyBzdXBlcnNlZGVkIGJlZm9yZSBpdCByZXR1cm5lZCwgYW5kIG5vdGhpbmdcbiAgICogZmlyZXMgZm9yIGEga2V5c3Ryb2tlIHRoYXQgaGFzbid0IGJlZW4gc2VudCB5ZXQg4oCUIHJlYWQgYGdldFJlc3VsdCgpYCBmb3JcbiAgICogdGhlIGN1cnJlbnQgdmFsdWUgb24gZGVtYW5kLlxuICAgKi9cbiAgb25SZXN1bHQ/OiAocmVzdWx0OiBBdXRvY29tcGxldGVSZXN1bHQpID0+IHZvaWQ7XG4gIC8qKiBDYWxsZWQgd2hlbiBhIGZldGNoIGZhaWxzLiAqL1xuICBvbkVycm9yPzogKGVycm9yOiBFcnJvcikgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIHRoZSBlZGl0b3IgdGV4dCBjaGFuZ2VzIChjb250cm9sbGVkLW1vZGUgc2lnbmFsKS4gKi9cbiAgb25DaGFuZ2U/OiAodGV4dDogc3RyaW5nKSA9PiB2b2lkO1xuICAvKiogQ2FsbGVkIHdoZW4gY29tcGxldGVkIHBhcmFtcyBjaGFuZ2UgKGNvbnRyb2xsZWQtbW9kZSBzaWduYWwpLiAqL1xuICBvblBhcmFtc0NoYW5nZT86IChwYXJhbXM6IENvbXBsZXRlZFBhcmFtU3RhdGVbXSkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIHRoZSBpbnB1dCBnYWlucyBmb2N1cy4gKi9cbiAgb25Gb2N1cz86ICgpID0+IHZvaWQ7XG4gIC8qKiBDYWxsZWQgd2hlbiB0aGUgaW5wdXQgbG9zZXMgZm9jdXMuICovXG4gIG9uQmx1cj86ICgpID0+IHZvaWQ7XG4gIC8qKlxuICAgKiBXaGVuIHRydWUgKGRlZmF1bHQpLCB0aGUgZHJvcGRvd24gcmVuZGVycyBhIGhvcml6b250YWwgcm93IG9mIHByb2R1Y3RcbiAgICogY2FyZHMgYmVsb3cgdGhlIG9wdGlvbnMgZ3JpZCB3aGVuZXZlciBpdCBoYXMgcHJvZHVjdHMgdG8gc2hvdzogYnkgZGVmYXVsdFxuICAgKiB0aGUgaXRlbXMgdGhlIGAvc3VnZ2VzdGAgcmVzcG9uc2UgcmVwb3J0cyBhcyBtYXRjaGluZyB0aGUgcXVlcnksIG9yIHRoZVxuICAgKiByZXN1bHRzIG9mIGEgY3VzdG9tIGBwcm9kdWN0c2Agc2VhcmNoLiBTZXQgdG8gZmFsc2UgdG8gcmVuZGVyIG5vIHN0cmlwXG4gICAqIGFuZCBydW4gbm8gY3VzdG9tIHNlYXJjaC5cbiAgICovXG4gIHNob3dQcm9kdWN0cz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBDdXN0b20gc291cmNlIGZvciB0aGUgcHJvZHVjdCBzdHJpcC4gT21pdCBpdCBhbmQgdGhlIHN0cmlwIHNob3dzIHRoZVxuICAgKiBpdGVtcyB0aGUgYC9zdWdnZXN0YCByZXNwb25zZSBpdHNlbGYgcmVwb3J0cyBhcyBtYXRjaGluZyB0aGUgcXVlcnksIHdpdGhcbiAgICogbm8gZXh0cmEgcmVxdWVzdC4gU2V0IGl0IGFuZCB0aGUgZHJvcGRvd24gaXMgZmVkIGJ5IHRoZSBpbnRlZ3JhdGlvbidzIG93blxuICAgKiBzZWFyY2ggZW5kcG9pbnQgb24gdGhlIFNESydzIGV4aXN0aW5nIGZldGNoIGNhZGVuY2UgaW5zdGVhZDsgdGhlIHNlcnZlcidzXG4gICAqIGl0ZW1zIGFyZSB0aGVuIG5vdCByZW5kZXJlZC5cbiAgICovXG4gIHByb2R1Y3RzPzogUHJvZHVjdHNDb25maWc7XG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgdXNlciBhY3RpdmF0ZXMgYSBwcm9kdWN0IGNhcmQuIFRoZSBTREsgZG9lcyBub3QgbmF2aWdhdGUg4oCUXG4gICAqIHRoZSBpbnRlZ3JhdGlvbiBkZWNpZGVzIHdoYXQgYSBzZWxlY3Rpb24gbWVhbnMuIE1vZGlmaWVyIC8gbWlkZGxlIGNsaWNrc1xuICAgKiBhcmUgbGVmdCB0byB0aGUgYnJvd3NlciAoY21kLWNsaWNrIHN0aWxsIG9wZW5zIGEgdGFiKSBhbmQgZG9uJ3QgZmlyZSB0aGlzLlxuICAgKi9cbiAgb25Qcm9kdWN0U2VsZWN0PzogKHByb2R1Y3Q6IFByb2R1Y3QpID0+IHZvaWQ7XG4gIC8qKiBJbml0aWFsIGNvbnRyb2xsZWQgdGV4dCB2YWx1ZS4gKi9cbiAgdmFsdWU/OiBzdHJpbmc7XG4gIC8qKiBJbml0aWFsIGNvbnRyb2xsZWQgY29tcGxldGVkIHBhcmFtcy4gKi9cbiAgY29tcGxldGVkUGFyYW1zPzogQ29tcGxldGVkUGFyYW1TdGF0ZVtdO1xuICAvKipcbiAgICogQ2FyZXQtc2V0IGNhbGxiYWNrLiBJbnZva2VkIGJ5IHRoZSBjb3JlIHdoZW4gcmUtZWRpdCAvIEJhY2tzcGFjZSBmbG93c1xuICAgKiBuZWVkIHRoZSBlZGl0b3IgY2FyZXQgcGFya2VkIGF0IGEgc3BlY2lmaWMgcGxhaW4tdGV4dCBvZmZzZXQuIFRoZSBUaWVyIDFcbiAgICogYDxhaS1hdXRvY29tcGxldGU+YCBjb21wb25lbnQgd2lyZXMgdGhpcyBmcm9tIGl0cyBlZGl0b3IgaG9zdDsgaGVhZGxlc3NcbiAgICogY29uc3VtZXJzIGNhbiBsZWF2ZSBpdCB1bnNldC5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBzZXRDdXJzb3I/OiAob2Zmc2V0OiBudW1iZXIpID0+IHZvaWQ7XG59XG5cbi8qKlxuICogU3Vic2V0IG9mIHtAbGluayBBSUF1dG9jb21wbGV0ZUNvbnRyb2xsZXJPcHRpb25zfSB0aGF0IGNhbiBiZSBjaGFuZ2VkIGFmdGVyXG4gKiBjb25zdHJ1Y3Rpb24uIEV4Y2x1ZGVzIGV2ZW50IGNhbGxiYWNrcyAodGhvc2UgYXJlIHJlZ2lzdGVyZWQgb25jZSBhdFxuICogY29uc3RydWN0aW9uIOKAlCBzZWUgdmFuaWxsYSBgQ29yZVVwZGF0ZU9wdGlvbnNgKS5cbiAqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCB0eXBlIEFJQXV0b2NvbXBsZXRlQ29udHJvbGxlclVwZGF0ZSA9IFBhcnRpYWw8XG4gIE9taXQ8XG4gICAgQUlBdXRvY29tcGxldGVDb250cm9sbGVyT3B0aW9ucyxcbiAgICB8IFwib25TdWJtaXRcIlxuICAgIHwgXCJvblJlc3VsdFwiXG4gICAgfCBcIm9uRXJyb3JcIlxuICAgIHwgXCJvbkNoYW5nZVwiXG4gICAgfCBcIm9uUGFyYW1zQ2hhbmdlXCJcbiAgICB8IFwib25Gb2N1c1wiXG4gICAgfCBcIm9uQmx1clwiXG4gICAgfCBcIm9uUHJvZHVjdFNlbGVjdFwiXG4gICAgfCBcInNldEN1cnNvclwiXG4gID5cbj47XG5cbi8qKlxuICogU25hcHNob3Qgb2YgdGhlIGNvbnRyb2xsZXIncyByZWFjdGl2ZSBzdGF0ZS4gRWFjaCBmaWVsZCBpcyBhbHNvIGV4cG9zZWQgYXNcbiAqIGEgc3RhbmQtYWxvbmUgb2JzZXJ2YWJsZSBvbiB0aGUgY29udHJvbGxlciAoZS5nLiBgY29udHJvbGxlci50ZXh0JGApLlxuICpcbiAqIGBzdWdnZXN0aW9uUGlsbHNgIG1pcnJvcnMgUmVhY3QncyBgc3VnZ2VzdGlvblBpbGxzYCDigJQgdGhlIGFjdGlvbmFibGVcbiAqIHN1YnNldCBvZiBgc3VnZ2VzdGlvbnNgIHJlYWR5IGZvciBwaWxsIHJlbmRlcmluZy4gYGlzTG9hZGluZ2AgaXMgdGhlXG4gKiBVSS12aXNpYmxlIGxvYWRpbmcgZmxhZyAoc3VwcHJlc3NlZCBkdXJpbmcgdGhlIHBvc3Qtc2VsZWN0IHByZXNzXG4gKiBhbmltYXRpb24gYW5kIGR1cmluZyByZS1lZGl0LCB3aGVyZSBjYWNoZWQgb3B0aW9ucyBzdGF5IHZpc2libGUpLlxuICpcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBSUF1dG9jb21wbGV0ZUNvbnRyb2xsZXJTdGF0ZSB7XG4gIHRleHQ6IHN0cmluZztcbiAgY29tcGxldGVkUGFyYW1zOiBDb21wbGV0ZWRQYXJhbVN0YXRlW107XG4gIC8qKlxuICAgKiBTdWdnZXN0aW9ucyB0aGUgdXNlciBkaXNtaXNzZWQgd2l0aCB0aGUgc2tpcCBrZXkgKOKGkikuIE5vdGhpbmcgcmVuZGVyc1xuICAgKiB0aGVtIOKAlCBwYXNzIHRoZW0gdG8gYGJ1aWxkU3VibWl0UmVzdWx0YCBzbyBhIGhhbmQtcm9sbGVkIHN1Ym1pdCBjYXJyaWVzXG4gICAqIHRoZSBzYW1lIGB0ZXh0OiBcInNraXBwZWRcImAgZW50cmllcyB0aGUgU0RLJ3Mgb3duIHJlcXVlc3RzIGRvLlxuICAgKi9cbiAgc2tpcHBlZFBhcmFtczogU2tpcHBlZFBhcmFtU3RhdGVbXTtcbiAgLyoqXG4gICAqIFBhcmFtcyB0aGUgc2VydmVyIGlkZW50aWZpZWQgaW4gdGhlIHVzZXIncyBvd24gd29yZHMuIEFscmVhZHkgcmVuZGVyZWRcbiAgICogdGhyb3VnaCBgc2VnbWVudHNgOyBleHBvc2VkIHNvIGEgaGFuZC1yb2xsZWQgc3VibWl0IGNhbiBwYXNzIHRoZW0gdG9cbiAgICogYGJ1aWxkU3VibWl0UmVzdWx0YCBhbmQgcmVwb3J0IHRoZSBzYW1lIGBpZGVudGlmaWVkX3BhcmFtc2AgdGhlIFNESydzXG4gICAqIG93biByZXN1bHRzIGNhcnJ5LlxuICAgKi9cbiAgaWRlbnRpZmllZFBhcmFtczogSWRlbnRpZmllZFBhcmFtU3RhdGVbXTtcbiAgc3VnZ2VzdGlvblBpbGxzOiBTdWdnZXN0aW9uW107XG4gIHNlZ21lbnRzOiBTZWdtZW50W107XG4gIG5ld1BhcmFtSWQ6IHN0cmluZyB8IG51bGw7XG4gIHN1Z2dlc3Rpb25zOiBTdWdnZXN0aW9uW107XG4gIC8qKlxuICAgKiBXaGF0IHRoZSBwcm9kdWN0IHN0cmlwIHNob3dzOiB0aGUgaXRlbXMgdGhlIGxhdGVzdCBgL3N1Z2dlc3RgIHJlc3BvbnNlXG4gICAqIHJlcG9ydGVkIGFzIG1hdGNoaW5nIHRoZSBxdWVyeSwgb3IgdGhlIHJlc3VsdHMgb2YgYSBjdXN0b20gYHByb2R1Y3RzYFxuICAgKiBzZWFyY2guIEFscmVhZHkgZm9sZGVkIGludG8gdGhlIGRyb3Bkb3duIHNuYXBzaG90IOKAlCByZWFkIGl0IGhlcmUgb25seVxuICAgKiB3aGVuIHJlbmRlcmluZyB5b3VyIG93biBzdHJpcC5cbiAgICovXG4gIHByb2R1Y3RzOiBQcm9kdWN0W107XG4gIC8qKlxuICAgKiBUaGUgY2F0YWxvZyBncm91bmRpbmcgcmVwb3J0IHRoZSBsYXRlc3QgcmVzcG9uc2UgY2FycmllZCwgb3IgbnVsbCB3aGVuIGl0XG4gICAqIGNhcnJpZWQgbm9uZTogd2hpY2ggb2YgdGhlIHF1ZXJ5J3MgY29uc3RyYWludHMgdGhlIGNhdGFsb2cgYXBwbGllZCwgd2hpY2hcbiAgICogaXQgZHJvcHBlZCwgYW5kIGhvdyBtYW55IGl0ZW1zIChhbmQgd2hpY2gpIHRoZSBhcHBsaWVkIG9uZXMgbGVmdFxuICAgKiBzdGFuZGluZy4gTnVsbCBpcyBcIm5vIG5ld3NcIiwgbm90IGFuIGVtcHR5IGNhdGFsb2cuXG4gICAqL1xuICBjdXN0b21GaWVsZHM6IEN1c3RvbUZpZWxkc1JlcG9ydCB8IG51bGw7XG4gIGFjdGl2ZUluZGV4OiBudW1iZXI7XG4gIGlzTG9hZGluZzogYm9vbGVhbjtcbiAgaXNSZWFkeTogYm9vbGVhbjtcbiAgaXNGb2N1c2VkOiBib29sZWFuO1xuICBpc0Ryb3Bkb3duT3BlbjogYm9vbGVhbjtcbiAgcGxhY2Vob2xkZXJUZXh0OiBzdHJpbmc7XG4gIGVycm9yOiBFcnJvciB8IG51bGw7XG4gIGVkaXRpbmdQYXJhbTogQ29tcGxldGVkUGFyYW1TdGF0ZSB8IG51bGw7XG4gIC8qKlxuICAgKiBTZXQgd2hpbGUgdGhlIHVzZXIgaXMgcGlja2luZyBhIGRhdGUgZm9yIGEgc3BhbiB0aGUgc2VydmVyIGlkZW50aWZpZWQgYXNcbiAgICogb25lIOKAlCBcInNlcHRlbWJlciA1dGhcIiBpbiBcImZseSB0byB2ZWdhcyBvbiBzZXB0ZW1iZXIgNXRoXCIuIE51bGwgb3RoZXJ3aXNlLlxuICAgKi9cbiAgZWRpdGluZ0lkZW50aWZpZWQ6IHtcbiAgICBpZDogc3RyaW5nO1xuICAgIHR5cGU6IHN0cmluZztcbiAgICBhbmNob3I6IG51bWJlcjtcbiAgICB0YWlsOiBudW1iZXI7XG4gICAgLyoqIFRoZSBkYXRlIHRoZSBzcGFuIHdhcyByZWFkIGFzLCBvciBhIHJhbmdlJ3Mgc3RhcnQuIE51bGwgd2hlbiBpdCBjb3VsZG4ndCBiZSByZWFkLiAqL1xuICAgIGlzbzogc3RyaW5nIHwgbnVsbDtcbiAgICAvKiogVGhlIG90aGVyIGVuZCwgd2hlbiB0aGUgc3BhbiByZWFkcyBhcyBhIHJhbmdlIHJhdGhlciB0aGFuIGFzIG9uZSBkYXkuICovXG4gICAgaXNvRW5kOiBzdHJpbmcgfCBudWxsO1xuICAgIC8qKiBXaGV0aGVyIHRoYXQgc3BhbiBpcyBhbnN3ZXJlZCBieSBhIGNhbGVuZGFyLCBvciBhIGNhbGVuZGFyIGluIHR3byB0YXBzLiAqL1xuICAgIGZvcm1hdDogRm9ybWF0VHlwZTtcbiAgfSB8IG51bGw7XG4gIGVkaXRpbmdBbmNob3I6IG51bWJlciB8IG51bGw7XG4gIGNhcmV0T2Zmc2V0OiBudW1iZXIgfCBudWxsO1xufVxuXG4vKipcbiAqIENvbXBvc2l0ZSBzdGF0ZSBzaGFwZSBmb3IgdGhlIGRyb3Bkb3duIHZpZXcgbGF5ZXIuIFRpZXIgMiBjb25zdW1lcnMgYmluZFxuICogdGhlIGRyb3Bkb3duIGNvbXBvbmVudCB0byB0aGlzIHNuYXBzaG90OyBUaWVyIDEgdXNlcyB0aGUgc2FtZSBzaGFwZVxuICogaW50ZXJuYWxseS5cbiAqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQUlBdXRvY29tcGxldGVEcm9wZG93blN0YXRlIHtcbiAgLyoqIEFjdGl2ZSBzdWdnZXN0aW9uICsgZmlsdGVyZWQgb3B0aW9ucyB0byByZW5kZXIgaW4gdGhlIGdyaWQuICovXG4gIHN1Z2dlc3Rpb25zOiBTdWdnZXN0aW9uW107XG4gIC8qKiBDdXJyZW50bHkgaGlnaGxpZ2h0ZWQgb3B0aW9uIGluZGV4LiAtMSB3aGVuIG5vbmUuICovXG4gIGFjdGl2ZUluZGV4OiBudW1iZXI7XG4gIC8qKiBXaGV0aGVyIHRoZSBkcm9wZG93biBzaG91bGQgYmUgdmlzaWJsZS4gKi9cbiAgaXNPcGVuOiBib29sZWFuO1xuICAvKiogUGlsbHMgdG8gcmVuZGVyIGluIHRoZSBkcm9wZG93bidzIHBpbGxiYXIgKHJlLWVkaXQgcGlsbCBvciBhbGwgc3VnZ2VzdGlvbiBwaWxscykuICovXG4gIHBpbGxzOiBTdWdnZXN0aW9uW107XG4gIC8qKiBXaGV0aGVyIHRoZSBhY3RpdmUgcGlsbCByZW5kZXJzIHNlbGVjdGVkIChmdWxsIG9wYWNpdHkpIHZzLiB0aGUgYGZpcnN0YCB0aWVyLiAqL1xuICBpc0FjdGl2ZVBpbGxTZWxlY3RlZDogYm9vbGVhbjtcbiAgLyoqIFRydWUgd2hlbiB0aGUgZHJvcGRvd24gc2hvdWxkIHJlbmRlciBpdHMgbG9hZGluZyBza2VsZXRvbi4gKi9cbiAgaXNMb2FkaW5nOiBib29sZWFuO1xuICAvKiogV2hldGhlciB0aGUgaW5wdXQgaGFzIG5vIHR5cGVkIHRleHQg4oCUIHRoZSBzb2xlIHN0YXRlIHRoYXQgc3VyZmFjZXMgXCJ0YWIgdG8gc2VsZWN0XCIgaW4gdGhlIGZvb3RlciBoaW50LiAqL1xuICBpc0lucHV0RW1wdHk6IGJvb2xlYW47XG4gIC8qKiBQcm9kdWN0IGNhcmRzIHRvIHJlbmRlciBiZWxvdyB0aGUgb3B0aW9ucyBncmlkLiBFbXB0eSByZW5kZXJzIG5vIHN0cmlwLiAqL1xuICBwcm9kdWN0czogUHJvZHVjdFtdO1xuICAvKipcbiAgICogVHJ1ZSB3aGlsZSBhIGNvbXBsZXRlZCBwYXJhbSBpcyBiZWluZyByZS1lZGl0ZWQuIFRoZSBwaWxsYmFyIHRoZW4gc2hvd3NcbiAgICogdGhlIHBhcmFtIGJlaW5nIHJlLWVkaXRlZCDigJQgbm90IHNraXBwYWJsZSDigJQgc28gdGhlIHNraXAgYnV0dG9uIGhpZGVzLlxuICAgKiBPcHRpb25hbCAodW5kZWZpbmVkIOKHkiBub3QgZWRpdGluZykgc28gZXhpc3RpbmcgY29uc3VtZXIgY29kZSBjb25zdHJ1Y3RpbmdcbiAgICogdGhpcyBzdGF0ZSDigJQgdGVzdCBmaXh0dXJlcywgZmFrZSBjb250cm9sbGVycyDigJQga2VlcHMgY29tcGlsaW5nIGFjcm9zcyB0aGVcbiAgICogbWlub3IgYnVtcCB0aGF0IGludHJvZHVjZWQgaXQuXG4gICAqL1xuICBpc0VkaXRpbmc/OiBib29sZWFuO1xuICAvKipcbiAgICogVHJ1ZSBmb3IgdGhlIH4xNzBtcyB3aW5kb3cgYWZ0ZXIgYW4gb3B0aW9uIGlzIHNlbGVjdGVkLCB3aGlsZSB0aGUgYW5zd2VyZWRcbiAgICogc3VnZ2VzdGlvbiBhbmltYXRlcyBvdXQuIGBpc0xvYWRpbmdgIGlzIGRlbGliZXJhdGVseSBzdXBwcmVzc2VkIGluIHRoYXRcbiAgICogd2luZG93LCBidXQgdGhlIGNvcmUncyBgc2tpcEFjdGl2ZVBpbGwoKWAgbm8tb3BzIGluIGl0IOKAlCB0aGUgc2tpcCBidXR0b25cbiAgICogcmVuZGVycyBkaXNhYmxlZCBvZmYgdGhpcyBmbGFnIGluc3RlYWQgb2Ygc3dhbGxvd2luZyBjbGlja3Mgc2lsZW50bHkuXG4gICAqIE9wdGlvbmFsICh1bmRlZmluZWQg4oeSIGZhbHNlKSBmb3IgdGhlIHNhbWUgY29tcGlsZS1jb21wYXQgcmVhc29uIGFzXG4gICAqIGBpc0VkaXRpbmdgLlxuICAgKi9cbiAgaW5TZWxlY3Rpb25BbmltYXRpb24/OiBib29sZWFuO1xuICAvKipcbiAgICogVHJ1ZSB3aGlsZSB0aGUgbG9hZGluZyBza2VsZXRvbiBmYWRlcyBvdXQgYmVmb3JlIHRoZSByZXNwb25zZSdzIG9wdGlvbnNcbiAgICogcmVwbGFjZSBpdC4gT3B0aW9uYWwgKHVuZGVmaW5lZCDih5IgZmFsc2UpIGZvciB0aGUgc2FtZSBjb21waWxlLWNvbXBhdFxuICAgKiByZWFzb24gYXMgYGlzRWRpdGluZ2AuXG4gICAqL1xuICBza2VsZXRvbkV4aXRpbmc/OiBib29sZWFuO1xuICAvKipcbiAgICogV2hlcmUgdGhlIGRyb3Bkb3duIG9wZW5zIHJlbGF0aXZlIHRvIHRoZSBpbnB1dCDigJQgbWlycm9ycyB0aGUgY29udHJvbGxlcidzXG4gICAqIGBvcHRpb25zUG9zaXRpb25gIG9wdGlvbi4gYDxhaS1hdXRvY29tcGxldGUtZHJvcGRvd24+YCByZWFkcyBpdCBmcm9tIGhlcmUsIHNvXG4gICAqIHBsYWNlbWVudCBpcyBjb25maWd1cmVkIG9uY2Ugb24gdGhlIGNvbnRyb2xsZXIgKG5vIHNlcGFyYXRlIGlucHV0IHRvIHN5bmMpLlxuICAgKi9cbiAgb3B0aW9uc1Bvc2l0aW9uOiBcImFib3ZlXCIgfCBcImJlbG93XCI7XG4gIC8qKlxuICAgKiBIb3cgdGhlIGFjdGl2ZSBwaWxsIGlzIGFuc3dlcmVkLiBgXCJkYXRlXCJgIGFuZCBgXCJkYXRlLXJhbmdlXCJgIHJlbmRlciBhXG4gICAqIGNhbGVuZGFyIGluIHBsYWNlIG9mIHRoZSBvcHRpb25zIGdyaWQsIGFuZCBgc3VnZ2VzdGlvbnNbMF0ub3B0aW9uc2AgdGhlblxuICAgKiBjYXJyaWVzIHRoYXQgbW9udGgncyBjZWxscyByYXRoZXIgdGhhbiB0aGUgcGFyYW1ldGVyJ3Mgb3duIG9wdGlvbnMg4oCUIHRoZVxuICAgKiBjb3JlIHN3YXBzIHRoZW0gYmVmb3JlIHRoZXkgcmVhY2ggaGVyZS4gQSBgXCJkYXRlLXJhbmdlXCJgIHBhcmFtZXRlciBpc1xuICAgKiBhbnN3ZXJlZCBieSB0d28gdGFwcyBvZiB0aGF0IGNhbGVuZGFyLCBhIHN0YXJ0IGFuZCBhbiBlbmQsIGNvbW1pdHRlZCBhcyBvbmVcbiAgICogc3Bhbi4gT3B0aW9uYWwgKHVuZGVmaW5lZCDih5IgYFwib3B0aW9uc1wiYCkgZm9yIHRoZSBzYW1lIGNvbXBpbGUtY29tcGF0IHJlYXNvblxuICAgKiBhcyBgaXNFZGl0aW5nYC5cbiAgICovXG4gIGZvcm1hdFR5cGU/OiBGb3JtYXRUeXBlO1xuICAvKiogVGhlIG1vbnRoIHRoZSBjYWxlbmRhciBzaG93cy4gTnVsbC91bmRlZmluZWQgdW5sZXNzIGBmb3JtYXRUeXBlYCBpcyBhIGNhbGVuZGFyIG9uZS4gKi9cbiAgZGF0ZVZpZXc/OiBEYXRlTW9udGhWaWV3IHwgbnVsbDtcbiAgLyoqIGBZWVlZLU1NLUREYCBhbHJlYWR5IGhlbGQgYnkgdGhlIHBhcmFtIGJlaW5nIHJlLWVkaXRlZCwgc28gaXRzIGNlbGwgcmVhZHMgYXMgdGhlIGN1cnJlbnQgYW5zd2VyLiAqL1xuICBzZWxlY3RlZERhdGVJc28/OiBzdHJpbmcgfCBudWxsO1xuICAvKiogQm90aCBlbmRzIG9mIGEgcmFuZ2UgcGFyYW0gYmVpbmcgcmUtZWRpdGVkLCBzbyBib3RoIGNlbGxzIHJlYWQgYXMgdGhlIGN1cnJlbnQgYW5zd2VyLiAqL1xuICBzZWxlY3RlZERhdGVSYW5nZT86IERhdGVSYW5nZSB8IG51bGw7XG4gIC8qKiBUaGUgZmlyc3QgZW5kIG9mIGEgcmFuZ2UgcGlja2VkIHNvIGZhciwgd2hpbGUgdGhlIHVzZXIgY2hvb3NlcyB0aGUgc2Vjb25kLiAqL1xuICBkYXRlUmFuZ2VTdGFydD86IHN0cmluZyB8IG51bGw7XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3NoYXJlZC90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBBUElDb25maWcsXG4gIEF1dG9jb21wbGV0ZVJlc3VsdCxcbiAgQ29tcGxldGVkUGFyYW1TdGF0ZSxcbiAgQ3VzdG9tRmllbGRzUmVwb3J0LFxuICBEYXRlTW9udGhWaWV3LFxuICBEYXRlUmFuZ2UsXG4gIEZvcm1hdFR5cGUsXG4gIElkZW50aWZpZWRQYXJhbVN0YXRlLFxuICBPcHRpb25PdmVycmlkZXMsXG4gIFByb2R1Y3QsXG4gIFByb2R1Y3RzQ29uZmlnLFxuICBTZWdtZW50LFxuICBTa2lwcGVkUGFyYW1TdGF0ZSxcbiAgU3VnZ2VzdGlvbixcbn0gZnJvbSBcIkBtYWdpY3gtZW5nL2FpLWF1dG9jb21wbGV0ZS12YW5pbGxhXCI7XG5cbi8qKlxuICogQ29uc3RydWN0aW9uLXRpbWUgb3B0aW9ucyBmb3Ige0BsaW5rIEFJQXV0b2NvbXBsZXRlQ29udHJvbGxlcn0uXG4gKlxuICogTWlycm9ycyB0aGUgcHJvcHMgdGhlIFJlYWN0IGB1c2VBSUF1dG9jb21wbGV0ZSgpYCBob29rIGFjY2VwdHMsIG1pbnVzIHRoZVxuICogZmllbGRzIHRoYXQgb25seSBtYWtlIHNlbnNlIGZvciBhIFJlYWN0IGNvbXBvbmVudCBzaGVsbCAoYGNvbHVtbnNgIGlzIGhlcmU7XG4gKiBgYXV0b0ZvY3VzYCwgYGNsYXNzTmFtZWAsIGBwaWxsUGxhY2VtZW50YCwgZXRjLiBsaXZlIG9uIHRoZSBUaWVyIDFcbiAqIGA8YWktYXV0b2NvbXBsZXRlPmAgY29tcG9uZW50KS5cbiAqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQUlBdXRvY29tcGxldGVDb250cm9sbGVyT3B0aW9ucyB7XG4gIC8qKiBSdW50aW1lIEFQSSBjb25maWd1cmF0aW9uIChhcGlLZXksIGVuZHBvaW50LCBldGMuKS4gKi9cbiAgYXBpQ29uZmlnPzogQVBJQ29uZmlnO1xuICAvKipcbiAgICogT3B0aW9uYWwgdXNlciBjb250ZXh0LiBJbmNsdWRlIHdoYXRldmVyIHlvdSBrbm93IGFib3V0IHRoZSB1c2VyIOKAlCBhXG4gICAqIHByb2ZpbGUsIHByZWZlcmVuY2VzLCB3b3Jrc3BhY2UsIGFueXRoaW5nIOKAlCB0byBwZXJzb25hbGl6ZSBzdWdnZXN0ZWRcbiAgICogcGFyYW1ldGVycyBhbmQgb3B0aW9ucyB0byB0aGVtLlxuICAgKi9cbiAgYWRkaXRpb25hbENvbnRleHQ/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgLyoqXG4gICAqIFN0YWJsZSBpZCBmb3IgdGhpcyB2aXNpdG9yLCBrZXB0IGJ5IHRoZSBob3N0IGFjcm9zcyBwYWdlIGxvYWRzLiBSaWRlcyBvblxuICAgKiB0ZWxlbWV0cnkgZXZlbnRzIHNvIHNlYXJjaGVzIGNhbiBiZSBqb2luZWQgdG8gd2hhdCB0aGUgdmlzaXRvciBkb2VzXG4gICAqIGFmdGVyd2FyZHMuIE11c3QgYmUgYSBVVUlEIHY0OyBvbWl0IHRvIHNlbmQgbm9uZS4gQSBmdW5jdGlvbiBpcyBjYWxsZWRcbiAgICogb25seSBvbmNlIHRoZSBzZXJ2ZXIgaGFzIGZ1bm5lbCB0ZWxlbWV0cnkgb24uXG4gICAqL1xuICB2aXNpdG9ySWQ/OiBzdHJpbmcgfCAoKCkgPT4gc3RyaW5nIHwgdW5kZWZpbmVkKTtcbiAgLyoqIFBlci1zdWdnZXN0aW9uLXR5cGUgY2xpZW50LXNpZGUgb3B0aW9uIG92ZXJyaWRlcy4gKi9cbiAgb3B0aW9uT3ZlcnJpZGVzPzogT3B0aW9uT3ZlcnJpZGVzO1xuICAvKiogV2hlbiB0cnVlLCBjb21wbGV0ZWQgcGFyYW1zJyBsaXRlcmFsIHRleHQgaXMgb21pdHRlZCBmcm9tIEFQSSByZXF1ZXN0cy4gKi9cbiAgbWFza0NvbXBsZXRlZFRleHQ/OiBib29sZWFuO1xuICAvKiogTnVtYmVyIG9mIGNvbHVtbnMgaW4gdGhlIGRyb3Bkb3duIGdyaWQuIERlZmF1bHQ6IDIuICovXG4gIGNvbHVtbnM/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBXaGVyZSB0aGUgZHJvcGRvd24gb3BlbnMgcmVsYXRpdmUgdG8gdGhlIGlucHV0LiBEZWZhdWx0OiBcImJlbG93XCIuXG4gICAqXG4gICAqIFJlYWQgYnkgdGhlIGtleWJvYXJkIGNvbnRyb2xsZXIgdG8gZGVjaWRlIHdoaWNoIHZlcnRpY2FsLWFycm93IGtleSBvcGVuc1xuICAgKiB0aGUgZHJvcGRvd24gZnJvbSB0aGUgaW5wdXQg4oCUIEFycm93RG93biB3aGVuIHRoZSBkcm9wZG93biBpcyBiZWxvdyxcbiAgICogQXJyb3dVcCB3aGVuIGl0J3MgYWJvdmUuXG4gICAqL1xuICBvcHRpb25zUG9zaXRpb24/OiBcImFib3ZlXCIgfCBcImJlbG93XCI7XG4gIC8qKlxuICAgKiBXaGVuIHRoZSBkcm9wZG93biBhcHBlYXJzLiBcImF1dG9cIiAoZGVmYXVsdCkgc2hvd3Mgd2hlbiBvcHRpb25zIGFyZVxuICAgKiBhdmFpbGFibGU7IFwibWFudWFsXCIgc2hvd3Mgb25seSBvbiBwaWxsIHRhcDsgXCJoaWRkZW5cIiBuZXZlciBzaG93cy5cbiAgICovXG4gIGRyb3Bkb3duVHJpZ2dlcj86IFwiYXV0b1wiIHwgXCJtYW51YWxcIiB8IFwiaGlkZGVuXCI7XG4gIC8qKiBXaGVuIHRydWUgKGRlZmF1bHQpLCB0aGUgZHJvcGRvd24gY2xvc2VzIGlmIHRoZSBpbnB1dCBsb3NlcyBmb2N1cy4gKi9cbiAgY2xvc2VEcm9wZG93bk9uQmx1cj86IGJvb2xlYW47XG4gIC8qKiBXaGVuIHRydWUgKGRlZmF1bHQpLCBub24tdGFwcGFibGUgb3B0aW9ucyByZW5kZXIgYWxvbmdzaWRlIHRhcHBhYmxlIG9uZXMuICovXG4gIHNob3dOb25UYXBwYWJsZU9wdGlvbnM/OiBib29sZWFuO1xuICAvKipcbiAgICogU0RLIHN1cmZhY2UgaWRlbnRpZmllciDigJQgc2VudCBhcyBtZXRhLnNvdXJjZSBvbiBib3RoIC9hcGkvc3VnZ2VzdCBhbmRcbiAgICogdGVsZW1ldHJ5IGV2ZW50cy4gU2V0IGF1dG9tYXRpY2FsbHkgdG8gXCJmdWxsLXNka1wiIGJ5IHRoZSBUaWVyIDFcbiAgICogYDxhaS1hdXRvY29tcGxldGU+YCBjb21wb25lbnQuIERlZmF1bHRzIHRvIFwiaGVhZGxlc3Mtc2RrXCIuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgc291cmNlPzogXCJmdWxsLXNka1wiIHwgXCJoZWFkbGVzcy1zZGtcIjtcbiAgLyoqIENhbGxlZCB3aGVuIHRoZSB1c2VyIHN1Ym1pdHMgKEVudGVyIGtleSBvciBgc3VibWl0KClgIGFjdGlvbikuICovXG4gIG9uU3VibWl0PzogKHJlc3VsdDogQXV0b2NvbXBsZXRlUmVzdWx0KSA9PiB2b2lkO1xuICAvKipcbiAgICogQ2FsbGVkIGFmdGVyIGV2ZXJ5IHN1Y2Nlc3NmdWwgc3VnZ2VzdGlvbiByb3VuZC10cmlwIHdpdGggdGhlIHN0cnVjdHVyZWRcbiAgICogcXVlcnkgYXMgdGhlIFNESyBub3cgdW5kZXJzdGFuZHMgaXQg4oCUIHRoZSBzYW1lIGBBdXRvY29tcGxldGVSZXN1bHRgIHNoYXBlXG4gICAqIGBvblN1Ym1pdGAgZGVsaXZlcnMsIHNvIGEgY29uc3VtZXIgY2FuIG1pcnJvciB0aGUgcXVlcnkgYXMgaXQgaXMgYnVpbHRcbiAgICogKGEgbGl2ZSBwcmV2aWV3LCBhIGRyYWZ0LCBhbmFseXRpY3MpIHdpdGhvdXQgd2FpdGluZyBmb3Igc3VibWl0LlxuICAgKlxuICAgKiBGaXJlcyBvbmNlIHBlciByZXNwb25zZSB0aGF0IHdhcyBhcHBsaWVkLCBpbmNsdWRpbmcgdGhlIGluaXRpYWwgcmVxdWVzdFxuICAgKiBvbiBjb25zdHJ1Y3Rpb24gKGFuIGVtcHR5IHJlc3VsdCkuIERvZXMgbm90IGZpcmUgZm9yIGEgcmVxdWVzdCB0aGF0XG4gICAqIGZhaWxlZCwgd2FzIGFib3J0ZWQsIG9yIHdhcyBzdXBlcnNlZGVkIGJlZm9yZSBpdCByZXR1cm5lZCwgYW5kIG5vdGhpbmdcbiAgICogZmlyZXMgZm9yIGEga2V5c3Ryb2tlIHRoYXQgaGFzbid0IGJlZW4gc2VudCB5ZXQg4oCUIHJlYWQgYGdldFJlc3VsdCgpYCBmb3JcbiAgICogdGhlIGN1cnJlbnQgdmFsdWUgb24gZGVtYW5kLlxuICAgKi9cbiAgb25SZXN1bHQ/OiAocmVzdWx0OiBBdXRvY29tcGxldGVSZXN1bHQpID0+IHZvaWQ7XG4gIC8qKiBDYWxsZWQgd2hlbiBhIGZldGNoIGZhaWxzLiAqL1xuICBvbkVycm9yPzogKGVycm9yOiBFcnJvcikgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIHRoZSBlZGl0b3IgdGV4dCBjaGFuZ2VzIChjb250cm9sbGVkLW1vZGUgc2lnbmFsKS4gKi9cbiAgb25DaGFuZ2U/OiAodGV4dDogc3RyaW5nKSA9PiB2b2lkO1xuICAvKiogQ2FsbGVkIHdoZW4gY29tcGxldGVkIHBhcmFtcyBjaGFuZ2UgKGNvbnRyb2xsZWQtbW9kZSBzaWduYWwpLiAqL1xuICBvblBhcmFtc0NoYW5nZT86IChwYXJhbXM6IENvbXBsZXRlZFBhcmFtU3RhdGVbXSkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIHRoZSBpbnB1dCBnYWlucyBmb2N1cy4gKi9cbiAgb25Gb2N1cz86ICgpID0+IHZvaWQ7XG4gIC8qKiBDYWxsZWQgd2hlbiB0aGUgaW5wdXQgbG9zZXMgZm9jdXMuICovXG4gIG9uQmx1cj86ICgpID0+IHZvaWQ7XG4gIC8qKlxuICAgKiBXaGVuIHRydWUgKGRlZmF1bHQpLCB0aGUgZHJvcGRvd24gcmVuZGVycyBhIGhvcml6b250YWwgcm93IG9mIHByb2R1Y3RcbiAgICogY2FyZHMgYmVsb3cgdGhlIG9wdGlvbnMgZ3JpZCB3aGVuZXZlciBpdCBoYXMgcHJvZHVjdHMgdG8gc2hvdzogYnkgZGVmYXVsdFxuICAgKiB0aGUgaXRlbXMgdGhlIGAvc3VnZ2VzdGAgcmVzcG9uc2UgcmVwb3J0cyBhcyBtYXRjaGluZyB0aGUgcXVlcnksIG9yIHRoZVxuICAgKiByZXN1bHRzIG9mIGEgY3VzdG9tIGBwcm9kdWN0c2Agc2VhcmNoLiBTZXQgdG8gZmFsc2UgdG8gcmVuZGVyIG5vIHN0cmlwXG4gICAqIGFuZCBydW4gbm8gY3VzdG9tIHNlYXJjaC5cbiAgICovXG4gIHNob3dQcm9kdWN0cz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBDdXN0b20gc291cmNlIGZvciB0aGUgcHJvZHVjdCBzdHJpcC4gT21pdCBpdCBhbmQgdGhlIHN0cmlwIHNob3dzIHRoZVxuICAgKiBpdGVtcyB0aGUgYC9zdWdnZXN0YCByZXNwb25zZSBpdHNlbGYgcmVwb3J0cyBhcyBtYXRjaGluZyB0aGUgcXVlcnksIHdpdGhcbiAgICogbm8gZXh0cmEgcmVxdWVzdC4gU2V0IGl0IGFuZCB0aGUgZHJvcGRvd24gaXMgZmVkIGJ5IHRoZSBpbnRlZ3JhdGlvbidzIG93blxuICAgKiBzZWFyY2ggZW5kcG9pbnQgb24gdGhlIFNESydzIGV4aXN0aW5nIGZldGNoIGNhZGVuY2UgaW5zdGVhZDsgdGhlIHNlcnZlcidzXG4gICAqIGl0ZW1zIGFyZSB0aGVuIG5vdCByZW5kZXJlZC5cbiAgICovXG4gIHByb2R1Y3RzPzogUHJvZHVjdHNDb25maWc7XG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgdXNlciBhY3RpdmF0ZXMgYSBwcm9kdWN0IGNhcmQuIFRoZSBTREsgZG9lcyBub3QgbmF2aWdhdGUg4oCUXG4gICAqIHRoZSBpbnRlZ3JhdGlvbiBkZWNpZGVzIHdoYXQgYSBzZWxlY3Rpb24gbWVhbnMuIE1vZGlmaWVyIC8gbWlkZGxlIGNsaWNrc1xuICAgKiBhcmUgbGVmdCB0byB0aGUgYnJvd3NlciAoY21kLWNsaWNrIHN0aWxsIG9wZW5zIGEgdGFiKSBhbmQgZG9uJ3QgZmlyZSB0aGlzLlxuICAgKi9cbiAgb25Qcm9kdWN0U2VsZWN0PzogKHByb2R1Y3Q6IFByb2R1Y3QpID0+IHZvaWQ7XG4gIC8qKiBJbml0aWFsIGNvbnRyb2xsZWQgdGV4dCB2YWx1ZS4gKi9cbiAgdmFsdWU/OiBzdHJpbmc7XG4gIC8qKiBJbml0aWFsIGNvbnRyb2xsZWQgY29tcGxldGVkIHBhcmFtcy4gKi9cbiAgY29tcGxldGVkUGFyYW1zPzogQ29tcGxldGVkUGFyYW1TdGF0ZVtdO1xuICAvKipcbiAgICogQ2FyZXQtc2V0IGNhbGxiYWNrLiBJbnZva2VkIGJ5IHRoZSBjb3JlIHdoZW4gcmUtZWRpdCAvIEJhY2tzcGFjZSBmbG93c1xuICAgKiBuZWVkIHRoZSBlZGl0b3IgY2FyZXQgcGFya2VkIGF0IGEgc3BlY2lmaWMgcGxhaW4tdGV4dCBvZmZzZXQuIFRoZSBUaWVyIDFcbiAgICogYDxhaS1hdXRvY29tcGxldGU+YCBjb21wb25lbnQgd2lyZXMgdGhpcyBmcm9tIGl0cyBlZGl0b3IgaG9zdDsgaGVhZGxlc3NcbiAgICogY29uc3VtZXJzIGNhbiBsZWF2ZSBpdCB1bnNldC5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBzZXRDdXJzb3I/OiAob2Zmc2V0OiBudW1iZXIpID0+IHZvaWQ7XG59XG5cbi8qKlxuICogU3Vic2V0IG9mIHtAbGluayBBSUF1dG9jb21wbGV0ZUNvbnRyb2xsZXJPcHRpb25zfSB0aGF0IGNhbiBiZSBjaGFuZ2VkIGFmdGVyXG4gKiBjb25zdHJ1Y3Rpb24uIEV4Y2x1ZGVzIGV2ZW50IGNhbGxiYWNrcyAodGhvc2UgYXJlIHJlZ2lzdGVyZWQgb25jZSBhdFxuICogY29uc3RydWN0aW9uIOKAlCBzZWUgdmFuaWxsYSBgQ29yZVVwZGF0ZU9wdGlvbnNgKS5cbiAqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCB0eXBlIEFJQXV0b2NvbXBsZXRlQ29udHJvbGxlclVwZGF0ZSA9IFBhcnRpYWw8XG4gIE9taXQ8XG4gICAgQUlBdXRvY29tcGxldGVDb250cm9sbGVyT3B0aW9ucyxcbiAgICB8IFwib25TdWJtaXRcIlxuICAgIHwgXCJvblJlc3VsdFwiXG4gICAgfCBcIm9uRXJyb3JcIlxuICAgIHwgXCJvbkNoYW5nZVwiXG4gICAgfCBcIm9uUGFyYW1zQ2hhbmdlXCJcbiAgICB8IFwib25Gb2N1c1wiXG4gICAgfCBcIm9uQmx1clwiXG4gICAgfCBcIm9uUHJvZHVjdFNlbGVjdFwiXG4gICAgfCBcInNldEN1cnNvclwiXG4gID5cbj47XG5cbi8qKlxuICogU25hcHNob3Qgb2YgdGhlIGNvbnRyb2xsZXIncyByZWFjdGl2ZSBzdGF0ZS4gRWFjaCBmaWVsZCBpcyBhbHNvIGV4cG9zZWQgYXNcbiAqIGEgc3RhbmQtYWxvbmUgb2JzZXJ2YWJsZSBvbiB0aGUgY29udHJvbGxlciAoZS5nLiBgY29udHJvbGxlci50ZXh0JGApLlxuICpcbiAqIGBzdWdnZXN0aW9uUGlsbHNgIG1pcnJvcnMgUmVhY3QncyBgc3VnZ2VzdGlvblBpbGxzYCDigJQgdGhlIGFjdGlvbmFibGVcbiAqIHN1YnNldCBvZiBgc3VnZ2VzdGlvbnNgIHJlYWR5IGZvciBwaWxsIHJlbmRlcmluZy4gYGlzTG9hZGluZ2AgaXMgdGhlXG4gKiBVSS12aXNpYmxlIGxvYWRpbmcgZmxhZyAoc3VwcHJlc3NlZCBkdXJpbmcgdGhlIHBvc3Qtc2VsZWN0IHByZXNzXG4gKiBhbmltYXRpb24gYW5kIGR1cmluZyByZS1lZGl0LCB3aGVyZSBjYWNoZWQgb3B0aW9ucyBzdGF5IHZpc2libGUpLlxuICpcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBSUF1dG9jb21wbGV0ZUNvbnRyb2xsZXJTdGF0ZSB7XG4gIHRleHQ6IHN0cmluZztcbiAgY29tcGxldGVkUGFyYW1zOiBDb21wbGV0ZWRQYXJhbVN0YXRlW107XG4gIC8qKlxuICAgKiBTdWdnZXN0aW9ucyB0aGUgdXNlciBkaXNtaXNzZWQgd2l0aCB0aGUgc2tpcCBrZXkgKOKGkikuIE5vdGhpbmcgcmVuZGVyc1xuICAgKiB0aGVtIOKAlCBwYXNzIHRoZW0gdG8gYGJ1aWxkU3VibWl0UmVzdWx0YCBzbyBhIGhhbmQtcm9sbGVkIHN1Ym1pdCBjYXJyaWVzXG4gICAqIHRoZSBzYW1lIGB0ZXh0OiBcInNraXBwZWRcImAgZW50cmllcyB0aGUgU0RLJ3Mgb3duIHJlcXVlc3RzIGRvLlxuICAgKi9cbiAgc2tpcHBlZFBhcmFtczogU2tpcHBlZFBhcmFtU3RhdGVbXTtcbiAgLyoqXG4gICAqIFBhcmFtcyB0aGUgc2VydmVyIGlkZW50aWZpZWQgaW4gdGhlIHVzZXIncyBvd24gd29yZHMuIEFscmVhZHkgcmVuZGVyZWRcbiAgICogdGhyb3VnaCBgc2VnbWVudHNgOyBleHBvc2VkIHNvIGEgaGFuZC1yb2xsZWQgc3VibWl0IGNhbiBwYXNzIHRoZW0gdG9cbiAgICogYGJ1aWxkU3VibWl0UmVzdWx0YCBhbmQgcmVwb3J0IHRoZSBzYW1lIGBpZGVudGlmaWVkX3BhcmFtc2AgdGhlIFNESydzXG4gICAqIG93biByZXN1bHRzIGNhcnJ5LlxuICAgKi9cbiAgaWRlbnRpZmllZFBhcmFtczogSWRlbnRpZmllZFBhcmFtU3RhdGVbXTtcbiAgc3VnZ2VzdGlvblBpbGxzOiBTdWdnZXN0aW9uW107XG4gIHNlZ21lbnRzOiBTZWdtZW50W107XG4gIG5ld1BhcmFtSWQ6IHN0cmluZyB8IG51bGw7XG4gIHN1Z2dlc3Rpb25zOiBTdWdnZXN0aW9uW107XG4gIC8qKlxuICAgKiBXaGF0IHRoZSBwcm9kdWN0IHN0cmlwIHNob3dzOiB0aGUgaXRlbXMgdGhlIGxhdGVzdCBgL3N1Z2dlc3RgIHJlc3BvbnNlXG4gICAqIHJlcG9ydGVkIGFzIG1hdGNoaW5nIHRoZSBxdWVyeSwgb3IgdGhlIHJlc3VsdHMgb2YgYSBjdXN0b20gYHByb2R1Y3RzYFxuICAgKiBzZWFyY2guIEFscmVhZHkgZm9sZGVkIGludG8gdGhlIGRyb3Bkb3duIHNuYXBzaG90IOKAlCByZWFkIGl0IGhlcmUgb25seVxuICAgKiB3aGVuIHJlbmRlcmluZyB5b3VyIG93biBzdHJpcC5cbiAgICovXG4gIHByb2R1Y3RzOiBQcm9kdWN0W107XG4gIC8qKlxuICAgKiBUaGUgY2F0YWxvZyBncm91bmRpbmcgcmVwb3J0IHRoZSBsYXRlc3QgcmVzcG9uc2UgY2FycmllZCwgb3IgbnVsbCB3aGVuIGl0XG4gICAqIGNhcnJpZWQgbm9uZTogd2hpY2ggb2YgdGhlIHF1ZXJ5J3MgY29uc3RyYWludHMgdGhlIGNhdGFsb2cgYXBwbGllZCwgd2hpY2hcbiAgICogaXQgZHJvcHBlZCwgYW5kIGhvdyBtYW55IGl0ZW1zIChhbmQgd2hpY2gpIHRoZSBhcHBsaWVkIG9uZXMgbGVmdFxuICAgKiBzdGFuZGluZy4gTnVsbCBpcyBcIm5vIG5ld3NcIiwgbm90IGFuIGVtcHR5IGNhdGFsb2cuXG4gICAqL1xuICBjdXN0b21GaWVsZHM6IEN1c3RvbUZpZWxkc1JlcG9ydCB8IG51bGw7XG4gIGFjdGl2ZUluZGV4OiBudW1iZXI7XG4gIGlzTG9hZGluZzogYm9vbGVhbjtcbiAgaXNSZWFkeTogYm9vbGVhbjtcbiAgaXNGb2N1c2VkOiBib29sZWFuO1xuICBpc0Ryb3Bkb3duT3BlbjogYm9vbGVhbjtcbiAgcGxhY2Vob2xkZXJUZXh0OiBzdHJpbmc7XG4gIGVycm9yOiBFcnJvciB8IG51bGw7XG4gIGVkaXRpbmdQYXJhbTogQ29tcGxldGVkUGFyYW1TdGF0ZSB8IG51bGw7XG4gIC8qKlxuICAgKiBTZXQgd2hpbGUgdGhlIHVzZXIgaXMgcGlja2luZyBhIGRhdGUgZm9yIGEgc3BhbiB0aGUgc2VydmVyIGlkZW50aWZpZWQgYXNcbiAgICogb25lIOKAlCBcInNlcHRlbWJlciA1dGhcIiBpbiBcImZseSB0byB2ZWdhcyBvbiBzZXB0ZW1iZXIgNXRoXCIuIE51bGwgb3RoZXJ3aXNlLlxuICAgKi9cbiAgZWRpdGluZ0lkZW50aWZpZWQ6IHtcbiAgICBpZDogc3RyaW5nO1xuICAgIHR5cGU6IHN0cmluZztcbiAgICBhbmNob3I6IG51bWJlcjtcbiAgICB0YWlsOiBudW1iZXI7XG4gICAgLyoqIFRoZSBkYXRlIHRoZSBzcGFuIHdhcyByZWFkIGFzLCBvciBhIHJhbmdlJ3Mgc3RhcnQuIE51bGwgd2hlbiBpdCBjb3VsZG4ndCBiZSByZWFkLiAqL1xuICAgIGlzbzogc3RyaW5nIHwgbnVsbDtcbiAgICAvKiogVGhlIG90aGVyIGVuZCwgd2hlbiB0aGUgc3BhbiByZWFkcyBhcyBhIHJhbmdlIHJhdGhlciB0aGFuIGFzIG9uZSBkYXkuICovXG4gICAgaXNvRW5kOiBzdHJpbmcgfCBudWxsO1xuICAgIC8qKiBXaGV0aGVyIHRoYXQgc3BhbiBpcyBhbnN3ZXJlZCBieSBhIGNhbGVuZGFyLCBvciBhIGNhbGVuZGFyIGluIHR3byB0YXBzLiAqL1xuICAgIGZvcm1hdDogRm9ybWF0VHlwZTtcbiAgfSB8IG51bGw7XG4gIGVkaXRpbmdBbmNob3I6IG51bWJlciB8IG51bGw7XG4gIGNhcmV0T2Zmc2V0OiBudW1iZXIgfCBudWxsO1xufVxuXG4vKipcbiAqIENvbXBvc2l0ZSBzdGF0ZSBzaGFwZSBmb3IgdGhlIGRyb3Bkb3duIHZpZXcgbGF5ZXIuIFRpZXIgMiBjb25zdW1lcnMgYmluZFxuICogdGhlIGRyb3Bkb3duIGNvbXBvbmVudCB0byB0aGlzIHNuYXBzaG90OyBUaWVyIDEgdXNlcyB0aGUgc2FtZSBzaGFwZVxuICogaW50ZXJuYWxseS5cbiAqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQUlBdXRvY29tcGxldGVEcm9wZG93blN0YXRlIHtcbiAgLyoqIEFjdGl2ZSBzdWdnZXN0aW9uICsgZmlsdGVyZWQgb3B0aW9ucyB0byByZW5kZXIgaW4gdGhlIGdyaWQuICovXG4gIHN1Z2dlc3Rpb25zOiBTdWdnZXN0aW9uW107XG4gIC8qKiBDdXJyZW50bHkgaGlnaGxpZ2h0ZWQgb3B0aW9uIGluZGV4LiAtMSB3aGVuIG5vbmUuICovXG4gIGFjdGl2ZUluZGV4OiBudW1iZXI7XG4gIC8qKiBXaGV0aGVyIHRoZSBkcm9wZG93biBzaG91bGQgYmUgdmlzaWJsZS4gKi9cbiAgaXNPcGVuOiBib29sZWFuO1xuICAvKiogUGlsbHMgdG8gcmVuZGVyIGluIHRoZSBkcm9wZG93bidzIHBpbGxiYXIgKHJlLWVkaXQgcGlsbCBvciBhbGwgc3VnZ2VzdGlvbiBwaWxscykuICovXG4gIHBpbGxzOiBTdWdnZXN0aW9uW107XG4gIC8qKiBXaGV0aGVyIHRoZSBhY3RpdmUgcGlsbCByZW5kZXJzIHNlbGVjdGVkIChmdWxsIG9wYWNpdHkpIHZzLiB0aGUgYGZpcnN0YCB0aWVyLiAqL1xuICBpc0FjdGl2ZVBpbGxTZWxlY3RlZDogYm9vbGVhbjtcbiAgLyoqIFRydWUgd2hlbiB0aGUgZHJvcGRvd24gc2hvdWxkIHJlbmRlciBpdHMgbG9hZGluZyBza2VsZXRvbi4gKi9cbiAgaXNMb2FkaW5nOiBib29sZWFuO1xuICAvKiogV2hldGhlciB0aGUgaW5wdXQgaGFzIG5vIHR5cGVkIHRleHQg4oCUIHRoZSBzb2xlIHN0YXRlIHRoYXQgc3VyZmFjZXMgXCJ0YWIgdG8gc2VsZWN0XCIgaW4gdGhlIGZvb3RlciBoaW50LiAqL1xuICBpc0lucHV0RW1wdHk6IGJvb2xlYW47XG4gIC8qKiBQcm9kdWN0IGNhcmRzIHRvIHJlbmRlciBiZWxvdyB0aGUgb3B0aW9ucyBncmlkLiBFbXB0eSByZW5kZXJzIG5vIHN0cmlwLiAqL1xuICBwcm9kdWN0czogUHJvZHVjdFtdO1xuICAvKipcbiAgICogVHJ1ZSB3aGlsZSBhIGNvbXBsZXRlZCBwYXJhbSBpcyBiZWluZyByZS1lZGl0ZWQuIFRoZSBwaWxsYmFyIHRoZW4gc2hvd3NcbiAgICogdGhlIHBhcmFtIGJlaW5nIHJlLWVkaXRlZCDigJQgbm90IHNraXBwYWJsZSDigJQgc28gdGhlIHNraXAgYnV0dG9uIGhpZGVzLlxuICAgKiBPcHRpb25hbCAodW5kZWZpbmVkIOKHkiBub3QgZWRpdGluZykgc28gZXhpc3RpbmcgY29uc3VtZXIgY29kZSBjb25zdHJ1Y3RpbmdcbiAgICogdGhpcyBzdGF0ZSDigJQgdGVzdCBmaXh0dXJlcywgZmFrZSBjb250cm9sbGVycyDigJQga2VlcHMgY29tcGlsaW5nIGFjcm9zcyB0aGVcbiAgICogbWlub3IgYnVtcCB0aGF0IGludHJvZHVjZWQgaXQuXG4gICAqL1xuICBpc0VkaXRpbmc/OiBib29sZWFuO1xuICAvKipcbiAgICogVHJ1ZSBmb3IgdGhlIH4xNzBtcyB3aW5kb3cgYWZ0ZXIgYW4gb3B0aW9uIGlzIHNlbGVjdGVkLCB3aGlsZSB0aGUgYW5zd2VyZWRcbiAgICogc3VnZ2VzdGlvbiBhbmltYXRlcyBvdXQuIGBpc0xvYWRpbmdgIGlzIGRlbGliZXJhdGVseSBzdXBwcmVzc2VkIGluIHRoYXRcbiAgICogd2luZG93LCBidXQgdGhlIGNvcmUncyBgc2tpcEFjdGl2ZVBpbGwoKWAgbm8tb3BzIGluIGl0IOKAlCB0aGUgc2tpcCBidXR0b25cbiAgICogcmVuZGVycyBkaXNhYmxlZCBvZmYgdGhpcyBmbGFnIGluc3RlYWQgb2Ygc3dhbGxvd2luZyBjbGlja3Mgc2lsZW50bHkuXG4gICAqIE9wdGlvbmFsICh1bmRlZmluZWQg4oeSIGZhbHNlKSBmb3IgdGhlIHNhbWUgY29tcGlsZS1jb21wYXQgcmVhc29uIGFzXG4gICAqIGBpc0VkaXRpbmdgLlxuICAgKi9cbiAgaW5TZWxlY3Rpb25BbmltYXRpb24/OiBib29sZWFuO1xuICAvKipcbiAgICogVHJ1ZSB3aGlsZSB0aGUgbG9hZGluZyBza2VsZXRvbiBmYWRlcyBvdXQgYmVmb3JlIHRoZSByZXNwb25zZSdzIG9wdGlvbnNcbiAgICogcmVwbGFjZSBpdC4gT3B0aW9uYWwgKHVuZGVmaW5lZCDih5IgZmFsc2UpIGZvciB0aGUgc2FtZSBjb21waWxlLWNvbXBhdFxuICAgKiByZWFzb24gYXMgYGlzRWRpdGluZ2AuXG4gICAqL1xuICBza2VsZXRvbkV4aXRpbmc/OiBib29sZWFuO1xuICAvKipcbiAgICogV2hlcmUgdGhlIGRyb3Bkb3duIG9wZW5zIHJlbGF0aXZlIHRvIHRoZSBpbnB1dCDigJQgbWlycm9ycyB0aGUgY29udHJvbGxlcidzXG4gICAqIGBvcHRpb25zUG9zaXRpb25gIG9wdGlvbi4gYDxhaS1hdXRvY29tcGxldGUtZHJvcGRvd24+YCByZWFkcyBpdCBmcm9tIGhlcmUsIHNvXG4gICAqIHBsYWNlbWVudCBpcyBjb25maWd1cmVkIG9uY2Ugb24gdGhlIGNvbnRyb2xsZXIgKG5vIHNlcGFyYXRlIGlucHV0IHRvIHN5bmMpLlxuICAgKi9cbiAgb3B0aW9uc1Bvc2l0aW9uOiBcImFib3ZlXCIgfCBcImJlbG93XCI7XG4gIC8qKlxuICAgKiBIb3cgdGhlIGFjdGl2ZSBwaWxsIGlzIGFuc3dlcmVkLiBgXCJkYXRlXCJgIGFuZCBgXCJkYXRlLXJhbmdlXCJgIHJlbmRlciBhXG4gICAqIGNhbGVuZGFyIGluIHBsYWNlIG9mIHRoZSBvcHRpb25zIGdyaWQsIGFuZCBgc3VnZ2VzdGlvbnNbMF0ub3B0aW9uc2AgdGhlblxuICAgKiBjYXJyaWVzIHRoYXQgbW9udGgncyBjZWxscyByYXRoZXIgdGhhbiB0aGUgcGFyYW1ldGVyJ3Mgb3duIG9wdGlvbnMg4oCUIHRoZVxuICAgKiBjb3JlIHN3YXBzIHRoZW0gYmVmb3JlIHRoZXkgcmVhY2ggaGVyZS4gQSBgXCJkYXRlLXJhbmdlXCJgIHBhcmFtZXRlciBpc1xuICAgKiBhbnN3ZXJlZCBieSB0d28gdGFwcyBvZiB0aGF0IGNhbGVuZGFyLCBhIHN0YXJ0IGFuZCBhbiBlbmQsIGNvbW1pdHRlZCBhcyBvbmVcbiAgICogc3Bhbi4gT3B0aW9uYWwgKHVuZGVmaW5lZCDih5IgYFwib3B0aW9uc1wiYCkgZm9yIHRoZSBzYW1lIGNvbXBpbGUtY29tcGF0IHJlYXNvblxuICAgKiBhcyBgaXNFZGl0aW5nYC5cbiAgICovXG4gIGZvcm1hdFR5cGU/OiBGb3JtYXRUeXBlO1xuICAvKiogVGhlIG1vbnRoIHRoZSBjYWxlbmRhciBzaG93cy4gTnVsbC91bmRlZmluZWQgdW5sZXNzIGBmb3JtYXRUeXBlYCBpcyBhIGNhbGVuZGFyIG9uZS4gKi9cbiAgZGF0ZVZpZXc/OiBEYXRlTW9udGhWaWV3IHwgbnVsbDtcbiAgLyoqIGBZWVlZLU1NLUREYCBhbHJlYWR5IGhlbGQgYnkgdGhlIHBhcmFtIGJlaW5nIHJlLWVkaXRlZCwgc28gaXRzIGNlbGwgcmVhZHMgYXMgdGhlIGN1cnJlbnQgYW5zd2VyLiAqL1xuICBzZWxlY3RlZERhdGVJc28/OiBzdHJpbmcgfCBudWxsO1xuICAvKiogQm90aCBlbmRzIG9mIGEgcmFuZ2UgcGFyYW0gYmVpbmcgcmUtZWRpdGVkLCBzbyBib3RoIGNlbGxzIHJlYWQgYXMgdGhlIGN1cnJlbnQgYW5zd2VyLiAqL1xuICBzZWxlY3RlZERhdGVSYW5nZT86IERhdGVSYW5nZSB8IG51bGw7XG4gIC8qKiBUaGUgZmlyc3QgZW5kIG9mIGEgcmFuZ2UgcGlja2VkIHNvIGZhciwgd2hpbGUgdGhlIHVzZXIgY2hvb3NlcyB0aGUgc2Vjb25kLiAqL1xuICBkYXRlUmFuZ2VTdGFydD86IHN0cmluZyB8IG51bGw7XG59XG4iXX0=