ng-pli-commons 0.0.1582 → 0.0.1586

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.
@@ -1,6 +1,6 @@
1
1
  import { Component, Input, EventEmitter, Output } from '@angular/core';
2
2
  import * as PDFJS_ from 'pdfjs-dist/build/pdf';
3
- import * as panzoom_ from 'panzoom/dist/panzoom';
3
+ import panzoom from 'panzoom/dist/panzoom';
4
4
  import { PdfDocument, UtilString } from 'ng-pli-util';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "../../services/common.service";
@@ -9,7 +9,7 @@ import * as i3 from "@angular/platform-browser";
9
9
  import * as i4 from "@angular/common";
10
10
  import * as i5 from "@angular/forms";
11
11
  const PDFJS = PDFJS_;
12
- const panzoom = panzoom_;
12
+ // const panzoom = panzoom;
13
13
  /** Pdf visualizer Refactor - TODO improve logic and check the edit functionality */
14
14
  export class PdfMergeVisualizerComponent {
15
15
  constructor(commonService, taostrService, sanitization) {
@@ -304,4 +304,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImpor
304
304
  }], onPdfRendered: [{
305
305
  type: Output
306
306
  }] } });
307
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLW1lcmdlLXZpc3VhbGl6ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctcGxpLWNvbW1vbnMvc3JjL2xpYi9jb21wb25lbnRzL3BkZi1tZXJnZS12aXN1YWxpemVyL3BkZi1tZXJnZS12aXN1YWxpemVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXBsaS1jb21tb25zL3NyYy9saWIvY29tcG9uZW50cy9wZGYtbWVyZ2UtdmlzdWFsaXplci9wZGYtbWVyZ2UtdmlzdWFsaXplci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sU0FBUyxFQUdULEtBQUssRUFFTCxZQUFZLEVBQ1osTUFBTSxFQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sS0FBSyxNQUFNLE1BQU0sc0JBQXNCLENBQUM7QUFDL0MsT0FBTyxLQUFLLFFBQVEsTUFBTSxzQkFBc0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBYyxNQUFNLGFBQWEsQ0FBQzs7Ozs7OztBQUtsRSxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUM7QUFDckIsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDO0FBQ3pCLG9GQUFvRjtBQU1wRixNQUFNLE9BQU8sMkJBQTJCO0lBdUN2QyxZQUNXLGFBQTRCLEVBQzlCLGFBQTRCLEVBQzdCLFlBQTBCO1FBRnZCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzlCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzdCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBcENsQyw4Q0FBOEM7UUFDckMsZUFBVSxHQUFZLEtBQUssQ0FBQyxDQUFDLDZCQUE2QjtRQVduRSxpREFBaUQ7UUFDdkMsZUFBVSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ2xFLDJDQUEyQztRQUNqQyxnQkFBVyxHQUFz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QUFkLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFFSSxVQUFVO3NCQUFuQixNQUFNO2dCQUVHLFdBQVc7c0JBQXBCLE1BQU07Z0JBRUcsYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcblx0Q29tcG9uZW50LFxyXG5cdE9uQ2hhbmdlcyxcclxuXHRTaW1wbGVDaGFuZ2VzLFxyXG5cdElucHV0LFxyXG5cdFNpbXBsZUNoYW5nZSxcclxuXHRFdmVudEVtaXR0ZXIsXHJcblx0T3V0cHV0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCAqIGFzIFBERkpTXyBmcm9tICdwZGZqcy1kaXN0L2J1aWxkL3BkZic7XHJcbmltcG9ydCAqIGFzIHBhbnpvb21fIGZyb20gJ3Bhbnpvb20vZGlzdC9wYW56b29tJztcclxuaW1wb3J0IHsgQ29tbW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NvbW1vbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUGRmRG9jdW1lbnQsIFV0aWxTdHJpbmcsIFJlcXVlc3RQZGYgfSBmcm9tICduZy1wbGktdXRpbCc7XHJcbmltcG9ydCB7IEZpbGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZmlsZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7IFRvYXN0clNlcnZpY2UgfSBmcm9tICduZ3gtdG9hc3RyJztcclxuXHJcbmNvbnN0IFBERkpTID0gUERGSlNfO1xyXG5jb25zdCBwYW56b29tID0gcGFuem9vbV87XHJcbi8qKiBQZGYgdmlzdWFsaXplciBSZWZhY3RvciAtIFRPRE8gaW1wcm92ZSBsb2dpYyBhbmQgY2hlY2sgdGhlIGVkaXQgZnVuY3Rpb25hbGl0eSAqL1xyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ3BsaS1wZGYtbWVyZ2UtdmlzdWFsaXplcicsXHJcblx0dGVtcGxhdGVVcmw6ICcuL3BkZi1tZXJnZS12aXN1YWxpemVyLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybHM6IFsnLi9wZGYtbWVyZ2UtdmlzdWFsaXplci5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFBkZk1lcmdlVmlzdWFsaXplckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcblx0LyoqIERlZmF1bHQgdmlzdWFsaXplciBoZWlnaHQgKi9cclxuXHRzdGF0aWMgREVGQVVMVF9IRUlHSFQgPSA1MDA7XHJcblxyXG5cdC8qKiBQZGZzIHRvIGJlIGdlbmVyYXRlZCBhbmQgbWVyZ2VkICovXHJcblx0QElucHV0KCkgbFBkZlJlcXVlc3Q6IFJlcXVlc3RQZGZbXTtcclxuXHQvKiogSXQgdmVyaWZpZXMgaWYgaXMgcG9zc2libGUgdG8gZWRpdCBodG1sICovXHJcblx0QElucHV0KCkgZW5hYmxlRWRpdDogYm9vbGVhbiA9IGZhbHNlOyAvLyBUT0RPIC0gQ2hlY2sgZnVuY3Rpb25hbGl0eVxyXG5cdC8qKiB0aXRsZSBvZiB0aGUgcGRmICovXHJcblx0QElucHV0KCkgdGl0bGU6IHN0cmluZztcclxuXHQvKiogdGhlIGhlaWdodCBvZiB0aGUgcGRmIGNhbnZhcyAqL1xyXG5cdEBJbnB1dCgpIGhlaWdodDogbnVtYmVyO1xyXG5cdC8qKiBUaGUgZmlsZW5hbWUgb2YgdGhlIHBkZiAqL1xyXG5cdEBJbnB1dCgpIGZpbGVuYW1lOiBzdHJpbmc7XHJcblx0LyoqIEl0IHZlcmlmaWVzIGlmIGl0IGFsbG93cyB0byBzZW5kIHRoZSBlbWFpbCAqL1xyXG5cdEBJbnB1dCgpIGVuYWJsZUVtYWlsOiBib29sZWFuO1xyXG5cdC8qKiBUaGUgdXJsIG9mIHRoZSBwZGYgKi9cclxuXHRASW5wdXQoKSB1cmxGaWxlOiBzdHJpbmc7XHJcblx0LyoqIEl0IGZpcmVzIHdoZW4gdGhlIGZpbGUgaGFzIGJlZW4gZG93bmxvYWRlZCAqL1xyXG5cdEBPdXRwdXQoKSBvbkRvd25sb2FkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cdC8qKiBJdCBmaXJlcyB3aGVuIHRoZSBuYW1lIGhhcyBiZWVuIHNlbnQgKi9cclxuXHRAT3V0cHV0KCkgb25TZW5kRW1haWw6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7IC8vIFRPRE8gLSBDaGVjayBmdW5jdGlvbmFsaXR5XHJcblx0LyoqIEl0IGZpcmVzIHdoZW4gdGhlIG5hbWUgaGFzIGJlZW4gc2VudCAqL1xyXG5cdEBPdXRwdXQoKSBvblBkZlJlbmRlcmVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cdC8qKiBJdCBmaXJlcyB3aGVuIHRoZSBodG1sIGhhcyBiZWVuIG1vZGlmaWVkICovXHJcblx0Ly8gQE91dHB1dCgpIG9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuXHQvKiogRW1haWwgdGhhdCB3aWxsIGJlIHNlbmRlZCAqL1xyXG5cdGVtYWlsOiBzdHJpbmc7XHJcblx0LyoqIGJhc2U2NCBhcyByZXN1bHQgb2YgaHRtbCAyIHBkZiAqL1xyXG5cdGJhc2U2NDogc3RyaW5nOyAvLyBUT0RPIC0gQ2hlY2sgZnVuY3Rpb25hbGl0eVxyXG5cdC8qKiBJdCBhbGxvd3MgdG8gZWRpdCBodG1sICovIGVkaXQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHQvKiogaXQgdmVyaWZpZXMgaWYgY29tcG9uZW50IGlzIHJlYWR5ICovXHJcblx0cmVhZHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHQvKiogSXQgY29udGluYXMgdGhlIGFic3RyYWN0aW9uIG9mIHBkZiBkb2N1bWVudCAqL1xyXG5cdHBkZkRvY3VtZW50OiBQZGZEb2N1bWVudDtcclxuXHQvKiogaXQgY29udGFpbnMgdGhlIGlkIG9mIGNhbnZhcyAqL1xyXG5cdGlkX2NhbnZhczogc3RyaW5nID0gJ3BkZi1jYW52YXMnO1xyXG5cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByb3RlY3RlZCBjb21tb25TZXJ2aWNlOiBDb21tb25TZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSB0YW9zdHJTZXJ2aWNlOiBUb2FzdHJTZXJ2aWNlLFxyXG5cdFx0cHVibGljIHNhbml0aXphdGlvbjogRG9tU2FuaXRpemVyXHJcblx0KSB7fVxyXG5cclxuXHQvLyBpdCByZXNvbHZlcyB3aGVuIHRoZSBodG1sIGlzIGNoYW5nZWRcclxuXHRuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcblx0XHRjb25zdCBsUGRmUmVxdWVzdDogU2ltcGxlQ2hhbmdlID0gY2hhbmdlcy5sUGRmUmVxdWVzdDtcclxuXHRcdGNvbnN0IHVybEZpbGU6IFNpbXBsZUNoYW5nZSA9IGNoYW5nZXMudXJsRmlsZTtcclxuXHRcdGlmIChsUGRmUmVxdWVzdCAmJiBsUGRmUmVxdWVzdC5jdXJyZW50VmFsdWUpIHtcclxuXHRcdFx0dGhpcy5nZW5lcmF0ZVBERigpO1xyXG5cdFx0fSBlbHNlIGlmICh1cmxGaWxlICYmIHVybEZpbGUuY3VycmVudFZhbHVlKSB7XHJcblx0XHRcdHRoaXMudXJsRmlsZSA9IHVybEZpbGUuY3VycmVudFZhbHVlO1xyXG5cdFx0XHR0aGlzLmdlbmVyYXRlUERGKCk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLnJlYWR5ID0gZmFsc2U7XHJcblx0XHRcdGlmICh0aGlzLnBkZkRvY3VtZW50ICYmIHRoaXMucGRmRG9jdW1lbnQuY2FudmFzKSB7XHJcblx0XHRcdFx0bGV0IGNhbnZhcyA9IHRoaXMucGRmRG9jdW1lbnQuY2FudmFzO1xyXG5cdFx0XHRcdHZhciBjdHggPSB0aGlzLnBkZkRvY3VtZW50LmNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xyXG5cdFx0XHRcdGN0eC5jbGVhclJlY3QoMCwgMCwgY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTtcclxuXHRcdFx0XHR0aGlzLnBkZkRvY3VtZW50ID0gdW5kZWZpbmVkO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKiogSXQgZ2VuZXJhdGVzIHRoZSBwZGYgKi9cclxuXHRnZW5lcmF0ZVBERigpIHtcclxuXHRcdGlmIChVdGlsU3RyaW5nLmlzVmFsaWQodGhpcy51cmxGaWxlKSkge1xyXG5cdFx0XHR0aGlzLmNvbW1vblNlcnZpY2UuZ2V0QmFzZTY0UGRmQnlVcmwodGhpcy51cmxGaWxlKS5zdWJzY3JpYmUoXHJcblx0XHRcdFx0KHJlc3VsdCkgPT4ge1xyXG5cdFx0XHRcdFx0dGhpcy5zaG93QmFzZTY0UGRmKHJlc3VsdCk7XHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHQoZXJyb3IpID0+IHtcclxuXHRcdFx0XHRcdGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHRyeWluZyB0byByZW5kZXIgUERGJywgZXJyb3IpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0KTtcclxuXHRcdH0gZWxzZSBpZiAodGhpcy5sUGRmUmVxdWVzdCkge1xyXG5cdFx0XHQvLyBpZiBodG1sIHdhcyBjaGFuZ2VkXHJcblx0XHRcdHRoaXMuY29tbW9uU2VydmljZS5nZXRCYXNlNjRQZGZMaXN0KHRoaXMubFBkZlJlcXVlc3QpLnN1YnNjcmliZShcclxuXHRcdFx0XHQocmVzdWx0KSA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLnNob3dCYXNlNjRQZGYocmVzdWx0KTtcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdChlcnJvcikgPT4ge1xyXG5cdFx0XHRcdFx0Y29uc29sZS5lcnJvcignRXJyb3IgdHJ5aW5nIHRvIHJlbmRlciBQREYnLCBlcnJvcik7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHQpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0c2hvd0Jhc2U2NFBkZihyZXN1bHQpIHtcclxuXHRcdHRoaXMuYmFzZTY0ID0gcmVzdWx0LmJhc2U2NDtcclxuXHRcdHZhciBkYXRhID0gYXRvYih0aGlzLmJhc2U2NCk7XHJcblx0XHRQREZKUy53b3JrZXJTcmMgPSAnLy9tb3ppbGxhLmdpdGh1Yi5pby9wZGYuanMvYnVpbGQvcGRmLndvcmtlci5qcyc7XHJcblx0XHQvLyBjcmVhdGUgaW5zdGFuY2Ugb2YgUGRmRG9jdW1lbnQgd2l0aCB0aGUgaWQgb2YgY2FudmFzXHJcblx0XHR0aGlzLnBkZkRvY3VtZW50ID0gbmV3IFBkZkRvY3VtZW50KHRoaXMuaWRfY2FudmFzKTtcclxuXHJcblx0XHQvLyBhc3NpZ24gdmFyaWFibGVzIG91dCBvZiBzY29wZVxyXG5cdFx0bGV0IHBkZmRvY3VtZW50OiBQZGZEb2N1bWVudCA9IHRoaXMucGRmRG9jdW1lbnQ7XHJcblx0XHRwYW56b29tKHRoaXMucGRmRG9jdW1lbnQuY2FudmFzLCB7XHJcblx0XHRcdHNtb290aFNjcm9sbDogZmFsc2VcclxuXHRcdH0pO1xyXG5cdFx0bGV0IHNlbGYgPSB0aGlzO1xyXG5cdFx0bGV0IHJlYWR5ID0gdGhpcy5yZWFkeTtcclxuXHRcdFBERkpTLmdldERvY3VtZW50KHsgZGF0YTogZGF0YSB9KS50aGVuKGZ1bmN0aW9uKHBkZkRvY18pIHtcclxuXHRcdFx0cGRmZG9jdW1lbnQucGRmRG9jID0gcGRmRG9jXztcclxuXHRcdFx0c2VsZi5yZW5kZXJQYWdlKDEpO1xyXG5cdFx0XHRyZWFkeSA9IHRydWU7XHJcblx0XHRcdHNlbGYub25QZGZSZW5kZXJlZC5lbWl0KHRydWUpO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cdC8qKiBJdCByZXR1cm5zIHRoZSBoZWlnaHQgICovXHJcblx0Z2V0SGVpZ2h0KCk6IHN0cmluZyB7XHJcblx0XHRpZiAodGhpcy5oZWlnaHQpIHJldHVybiB0aGlzLmhlaWdodCArICdweCc7XHJcblx0XHRyZXR1cm4gUGRmTWVyZ2VWaXN1YWxpemVyQ29tcG9uZW50LkRFRkFVTFRfSEVJR0hUICsgJ3B4JztcclxuXHR9XHJcblxyXG5cdC8qKiBHZXQgcGFnZSBpbmZvIGZyb20gZG9jdW1lbnQsIHJlc2l6ZSBjYW52YXMgYWNjb3JkaW5nbHksIGFuZCByZW5kZXIgcGFnZS4gKi9cclxuXHRyZW5kZXJQYWdlKG51bSkge1xyXG5cdFx0dGhpcy5wZGZEb2N1bWVudC5wYWdlUmVuZGVyaW5nID0gdHJ1ZTtcclxuXHRcdC8vIGFzc2lnbiB2YXJpYWJsZXMgb3V0IG9mIHNjb3BlXHJcblx0XHRsZXQgc2VsZlBkZkRvY3VtZW50OiBQZGZEb2N1bWVudCA9IHRoaXMucGRmRG9jdW1lbnQ7XHJcblx0XHRsZXQgc2VsZiA9IHRoaXM7XHJcblx0XHQvLyBVc2luZyBwcm9taXNlIHRvIGZldGNoIHRoZSBwYWdlXHJcblx0XHR0aGlzLnBkZkRvY3VtZW50LnBkZkRvYy5nZXRQYWdlKG51bSkudGhlbihmdW5jdGlvbihwYWdlKSB7XHJcblx0XHRcdHZhciB2aWV3cG9ydCA9IHBhZ2UuZ2V0Vmlld3BvcnQoc2VsZlBkZkRvY3VtZW50LnNjYWxlKTtcclxuXHRcdFx0c2VsZlBkZkRvY3VtZW50LmNhbnZhcy5oZWlnaHQgPSB2aWV3cG9ydC5oZWlnaHQ7XHJcblx0XHRcdHNlbGZQZGZEb2N1bWVudC5jYW52YXMud2lkdGggPSB2aWV3cG9ydC53aWR0aDtcclxuXHJcblx0XHRcdC8vIFJlbmRlciBQREYgcGFnZSBpbnRvIGNhbnZhcyBjb250ZXh0XHJcblx0XHRcdHZhciByZW5kZXJDb250ZXh0ID0ge1xyXG5cdFx0XHRcdGNhbnZhc0NvbnRleHQ6IHNlbGZQZGZEb2N1bWVudC5jYW52YXMuZ2V0Q29udGV4dCgnMmQnKSxcclxuXHRcdFx0XHR2aWV3cG9ydDogdmlld3BvcnRcclxuXHRcdFx0fTtcclxuXHRcdFx0dmFyIHJlbmRlclRhc2sgPSBwYWdlLnJlbmRlcihyZW5kZXJDb250ZXh0KTtcclxuXHJcblx0XHRcdC8vIFdhaXQgZm9yIHJlbmRlcmluZyB0byBmaW5pc2hcclxuXHRcdFx0cmVuZGVyVGFzay5wcm9taXNlLnRoZW4oZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0c2VsZlBkZkRvY3VtZW50LnBhZ2VSZW5kZXJpbmcgPSBmYWxzZTtcclxuXHRcdFx0XHRpZiAoc2VsZlBkZkRvY3VtZW50LnBhZ2VOdW1QZW5kaW5nICE9PSBudWxsKSB7XHJcblx0XHRcdFx0XHQvLyBOZXcgcGFnZSByZW5kZXJpbmcgaXMgcGVuZGluZ1xyXG5cdFx0XHRcdFx0c2VsZi5yZW5kZXJQYWdlKHNlbGZQZGZEb2N1bWVudC5wYWdlTnVtUGVuZGluZyk7XHJcblx0XHRcdFx0XHRzZWxmUGRmRG9jdW1lbnQucGFnZU51bVBlbmRpbmcgPSBudWxsO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIElmIGFub3RoZXIgcGFnZSByZW5kZXJpbmcgaW4gcHJvZ3Jlc3MsIHdhaXRzIHVudGlsIHRoZSByZW5kZXJpbmcgaXNcclxuXHQgKiBmaW5pc2VkLiBPdGhlcndpc2UsIGV4ZWN1dGVzIHJlbmRlcmluZyBpbW1lZGlhdGVseS5cclxuXHQgKi9cclxuXHRxdWV1ZVJlbmRlclBhZ2UobnVtKSB7XHJcblx0XHRpZiAodGhpcy5wZGZEb2N1bWVudC5wYWdlUmVuZGVyaW5nKSB7XHJcblx0XHRcdHRoaXMucGRmRG9jdW1lbnQucGFnZU51bVBlbmRpbmcgPSBudW07XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLnJlbmRlclBhZ2UobnVtKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIERpc3BsYXlzIHByZXZpb3VzIHBhZ2UuXHJcblx0ICovXHJcblx0b25QcmV2UGFnZSgpIHtcclxuXHRcdGlmICghdGhpcy5wZGZEb2N1bWVudCB8fCB0aGlzLnBkZkRvY3VtZW50LnBhZ2VOdW0gPD0gMSkge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblx0XHR0aGlzLnBkZkRvY3VtZW50LnBhZ2VOdW0tLTtcclxuXHRcdHRoaXMucXVldWVSZW5kZXJQYWdlKHRoaXMucGRmRG9jdW1lbnQucGFnZU51bSk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBEaXNwbGF5cyBuZXh0IHBhZ2UuXHJcblx0ICovXHJcblx0b25OZXh0UGFnZSgpIHtcclxuXHRcdGlmICghdGhpcy5wZGZEb2N1bWVudCB8fCB0aGlzLnBkZkRvY3VtZW50LnBhZ2VOdW0gPj0gdGhpcy5wZGZEb2N1bWVudC5wZGZEb2MubnVtUGFnZXMpIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5wZGZEb2N1bWVudC5wYWdlTnVtKys7XHJcblx0XHR0aGlzLnF1ZXVlUmVuZGVyUGFnZSh0aGlzLnBkZkRvY3VtZW50LnBhZ2VOdW0pO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogRGlzcGxheXMgWm9vbSBJbi5cclxuXHQgKi9cclxuXHRvblpvb21JbigpIHtcclxuXHRcdGlmICghdGhpcy5wZGZEb2N1bWVudCB8fCB0aGlzLnBkZkRvY3VtZW50LnNjYWxlID49IDMpIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5wZGZEb2N1bWVudC5zY2FsZSA9IHRoaXMucGRmRG9jdW1lbnQuc2NhbGUgKyAwLjI7XHJcblx0XHR0aGlzLnF1ZXVlUmVuZGVyUGFnZSh0aGlzLnBkZkRvY3VtZW50LnBhZ2VOdW0pO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogRGlzcGxheXMgWm9vbSBPdXQuXHJcblx0ICovXHJcblx0b25ab29tT3V0KCkge1xyXG5cdFx0aWYgKCF0aGlzLnBkZkRvY3VtZW50IHx8IHRoaXMucGRmRG9jdW1lbnQuc2NhbGUgPD0gMC40KSB7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdHRoaXMucGRmRG9jdW1lbnQuc2NhbGUgPSB0aGlzLnBkZkRvY3VtZW50LnNjYWxlIC0gMC4yO1xyXG5cdFx0dGhpcy5xdWV1ZVJlbmRlclBhZ2UodGhpcy5wZGZEb2N1bWVudC5wYWdlTnVtKTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCBzZW5kcyB0aGUgZG9jdW1lbnQgYnkgZW1haWwgKi9cclxuXHRzZW5kRW1haWwoKSB7XHJcblx0XHRpZiAodGhpcy5lbWFpbCAmJiBVdGlsU3RyaW5nLnZhbGlkYXRlRW1haWwodGhpcy5lbWFpbCkpIHtcclxuXHRcdFx0dGhpcy5vblNlbmRFbWFpbC5lbWl0KHtcclxuXHRcdFx0XHR0bzogdGhpcy5lbWFpbCxcclxuXHRcdFx0XHRiYXNlNjQ6IHRoaXMuYmFzZTY0XHJcblx0XHRcdH0pO1xyXG5cdFx0XHR0aGlzLmVtYWlsID0gJyc7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdHRoaXMudGFvc3RyU2VydmljZS53YXJuaW5nKCdDb3JyZW8gZWxlY3Ryw7NuaWNvIGVzIGluY29ycmVjdG8nKTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCBmaXJlcyB0aGUgZXZlbnQgZG93bmxvYWQgKi9cclxuXHRkb3dubG9hZCgpIHtcclxuXHRcdGNvbnN0IGNvbnRlbnRUeXBlID0gJ2FwcGxpY2F0aW9uL3BkZic7XHJcblx0XHRjb25zdCBiNjREYXRhID0gdGhpcy5iYXNlNjQ7XHJcblx0XHRjb25zdCBibG9iID0gdGhpcy5iNjR0b0Jsb2IoYjY0RGF0YSwgY29udGVudFR5cGUpO1xyXG5cdFx0Y29uc3QgYmxvYlVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XHJcblx0XHR2YXIgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcclxuXHRcdGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSk7XHJcblx0XHRhLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XHJcblx0XHRhLmhyZWYgPSBibG9iVXJsO1xyXG5cdFx0YS5kb3dubG9hZCA9IHRoaXMuZmlsZW5hbWU7XHJcblx0XHRhLmNsaWNrKCk7XHJcblx0XHRzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0d2luZG93LlVSTC5yZXZva2VPYmplY3RVUkwoYmxvYlVybCk7XHJcblx0XHRcdGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoYSk7XHJcblx0XHRcdHRoaXMub25Eb3dubG9hZC5lbWl0KHtcclxuXHRcdFx0XHRiYXNlNjQ6IHRoaXMuYmFzZTY0XHJcblx0XHRcdH0pO1xyXG5cdFx0fSwgMjAwKTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCBmaXJlcyB3aGVuIHRoZSBodG1sIGlzIGNoYW5nZWQgKi9cclxuXHQvLyBjaGFuZ2UoKSB7XHJcblx0Ly8gXHR0aGlzLmdlbmVyYXRlUERGKCk7XHJcblx0Ly8gXHR0aGlzLm9uQ2hhbmdlLmVtaXQodGhpcy5odG1sKTtcclxuXHQvLyB9XHJcblxyXG5cdC8qKiBpdCBhbGxvd3MgdG8gZWRpdCAqL1xyXG5cdHRvZ2dsZUVkaXQoKSB7XHJcblx0XHR0aGlzLmVkaXQgPSAhdGhpcy5lZGl0O1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogaXQgcmV0dXJucyBpZiBpcyBQZGZEb2N1bWVudFxyXG5cdCAqL1xyXG5cdGlzUGRmRG9jdW1lbnQoKTogYm9vbGVhbiB7XHJcblx0XHRyZXR1cm4gdGhpcy5wZGZEb2N1bWVudCAhPT0gdW5kZWZpbmVkO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogaXQgcmV0dXJucyBpZiBpcyBUaXRsZVxyXG5cdCAqL1xyXG5cdGlzVGl0bGUoKTogYm9vbGVhbiB7XHJcblx0XHRyZXR1cm4gdGhpcy50aXRsZSAhPT0gdW5kZWZpbmVkO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogaXQgcmV0dXJucyBpZiBpcyBpc1BkZkRvY1xyXG5cdCAqL1xyXG5cdGlzUGRmRG9jKCk6IGJvb2xlYW4ge1xyXG5cdFx0cmV0dXJuIChcclxuXHRcdFx0dGhpcy5wZGZEb2N1bWVudCAmJlxyXG5cdFx0XHR0aGlzLnBkZkRvY3VtZW50LnBkZkRvYyAhPSB1bmRlZmluZWQgJiZcclxuXHRcdFx0dGhpcy5wZGZEb2N1bWVudC5wZGZEb2MgIT0gbnVsbFxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIGl0IHJldHVybnMgaWYgaXMgZmlsZW5hbWVcclxuXHQgKi9cclxuXHRpc0ZpbGVuYW1lKCk6IGJvb2xlYW4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuZmlsZW5hbWUgIT09IHVuZGVmaW5lZDtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIGl0IHJldHVybnMgaWYgaXMgZW5hYmxlRWRpdFxyXG5cdCAqL1xyXG5cdGlzRW5hYmxlRWRpdCgpOiBib29sZWFuIHtcclxuXHRcdHJldHVybiB0aGlzLmVuYWJsZUVkaXQgPT0gdHJ1ZTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIGl0IHJldHVybnMgaWYgaXMgZWRpdFxyXG5cdCAqL1xyXG5cdGlzRWRpdCgpOiBib29sZWFuIHtcclxuXHRcdHJldHVybiB0aGlzLmVkaXQgPT0gdHJ1ZTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIGl0IHJldHVybnMgaWYgaXMgZW5hYmxlRW1haWxcclxuXHQgKi9cclxuXHRpc0VuYWJsZUVtYWlsKCk6IGJvb2xlYW4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuZW5hYmxlRW1haWwgPT0gdHJ1ZTtcclxuXHR9XHJcblxyXG5cdGI2NHRvQmxvYihiNjREYXRhLCBjb250ZW50VHlwZSA9ICcnLCBzbGljZVNpemUgPSA1MTIpIHtcclxuXHRcdGNvbnN0IGJ5dGVBcnJheXMgPSBbXTtcclxuXHRcdGNvbnN0IGJ5dGVDaGFyYWN0ZXJzID0gYXRvYihiNjREYXRhKTtcclxuXHRcdGZvciAobGV0IG9mZnNldCA9IDA7IG9mZnNldCA8IGJ5dGVDaGFyYWN0ZXJzLmxlbmd0aDsgb2Zmc2V0ICs9IHNsaWNlU2l6ZSkge1xyXG5cdFx0XHRjb25zdCBzbGljZSA9IGJ5dGVDaGFyYWN0ZXJzLnNsaWNlKG9mZnNldCwgb2Zmc2V0ICsgc2xpY2VTaXplKTtcclxuXHRcdFx0Y29uc3QgYnl0ZU51bWJlcnMgPSBuZXcgQXJyYXkoc2xpY2UubGVuZ3RoKTtcclxuXHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBzbGljZS5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHRcdGJ5dGVOdW1iZXJzW2ldID0gc2xpY2UuY2hhckNvZGVBdChpKTtcclxuXHRcdFx0fVxyXG5cdFx0XHRjb25zdCBieXRlQXJyYXkgPSBuZXcgVWludDhBcnJheShieXRlTnVtYmVycyk7XHJcblx0XHRcdGJ5dGVBcnJheXMucHVzaChieXRlQXJyYXkpO1xyXG5cdFx0fVxyXG5cdFx0Y29uc3QgYmxvYiA9IG5ldyBCbG9iKGJ5dGVBcnJheXMsIHsgdHlwZTogY29udGVudFR5cGUgfSk7XHJcblx0XHRyZXR1cm4gYmxvYjtcclxuXHR9XHJcbn1cclxuIiwiPGgzIGNsYXNzPVwicGRmLXZpc3VhbGl6ZXItdGl0bGVcIj57eyB0aXRsZSB9fTwvaDM+XHJcbjxkaXYgY2xhc3M9XCJwZGYtdmlzdWFsaXplci1jb250YWluZXJcIj5cclxuXHQ8ZGl2IGNsYXNzPVwicGRmLXZpc3VhbGl6ZXItY29udHJvbHNcIiAqbmdJZj1cImlzUGRmRG9jdW1lbnQoKSA9PT0gdHJ1ZVwiPlxyXG5cdFx0PGRpdiBjbGFzcz1cInJvd1wiPlxyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwiY29sLW1kLTdcIj5cclxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwiYnRuLXRvb2xiYXJcIiByb2xlPVwidG9vbGJhclwiIGFyaWEtbGFiZWw9XCJUb29sYmFyIHdpdGggYnV0dG9uIGdyb3Vwc1wiPlxyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cImJ0bi1ncm91cCBidG4tZ3JvdXAtc20gbXItMlwiIHJvbGU9XCJncm91cFwiIGFyaWEtbGFiZWw9XCJTZWNvbmQgZ3JvdXBcIj5cclxuXHRcdFx0XHRcdFx0PCEtLSB6b29tIGluLS0+XHJcblx0XHRcdFx0XHRcdDxhXHJcblx0XHRcdFx0XHRcdFx0aHJlZj1cIkphdmFzY3JpcHQ6O1wiXHJcblx0XHRcdFx0XHRcdFx0dGl0bGU9XCJBY2VyY2FyXCJcclxuXHRcdFx0XHRcdFx0XHRkYXRhLXRvZ2dsZT1cInRvb2x0aXBcIlxyXG5cdFx0XHRcdFx0XHRcdGRhdGEtcGxhY2VtZW50PVwidG9wXCJcclxuXHRcdFx0XHRcdFx0XHRjbGFzcz1cImJ0biBidG4tb3V0bGluZS1zZWNvbmRhcnlcIlxyXG5cdFx0XHRcdFx0XHRcdChjbGljayk9XCJvblpvb21JbigpXCJcclxuXHRcdFx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwiZmEgZmEtc2VhcmNoLXBsdXNcIj48L3NwYW4+XHJcblx0XHRcdFx0XHRcdDwvYT5cclxuXHJcblx0XHRcdFx0XHRcdDwhLS0gem9vbSBvdXQtLT5cclxuXHRcdFx0XHRcdFx0PGFcclxuXHRcdFx0XHRcdFx0XHRocmVmPVwiSmF2YXNjcmlwdDo7XCJcclxuXHRcdFx0XHRcdFx0XHR0aXRsZT1cIkFsZWphclwiXHJcblx0XHRcdFx0XHRcdFx0ZGF0YS10b2dnbGU9XCJ0b29sdGlwXCJcclxuXHRcdFx0XHRcdFx0XHRkYXRhLXBsYWNlbWVudD1cInRvcFwiXHJcblx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJidG4gYnRuLW91dGxpbmUtc2Vjb25kYXJ5XCJcclxuXHRcdFx0XHRcdFx0XHQoY2xpY2spPVwib25ab29tT3V0KClcIlxyXG5cdFx0XHRcdFx0XHQ+XHJcblx0XHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJmYSBmYS1zZWFyY2gtbWludXNcIj48L3NwYW4+XHJcblx0XHRcdFx0XHRcdDwvYT5cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cclxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJidG4tZ3JvdXAgYnRuLWdyb3VwLXNtIG1yLTJcIiByb2xlPVwiZ3JvdXBcIiBhcmlhLWxhYmVsPVwiVGhpcmQgZ3JvdXBcIj5cclxuXHRcdFx0XHRcdFx0PCEtLXByZXYgLS0+XHJcblx0XHRcdFx0XHRcdDxhXHJcblx0XHRcdFx0XHRcdFx0aHJlZj1cIkphdmFzY3JpcHQ6O1wiXHJcblx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJidG4gYnRuLW91dGxpbmUtc2Vjb25kYXJ5XCJcclxuXHRcdFx0XHRcdFx0XHQoY2xpY2spPVwib25QcmV2UGFnZSgpXCJcclxuXHRcdFx0XHRcdFx0XHR0aXRsZT1cIkFudGVyaW9yXCJcclxuXHRcdFx0XHRcdFx0XHRkYXRhLXRvZ2dsZT1cInRvb2x0aXBcIlxyXG5cdFx0XHRcdFx0XHRcdGRhdGEtcGxhY2VtZW50PVwidG9wXCJcclxuXHRcdFx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwiZmEgZmEtY2hldnJvbi1sZWZ0XCI+PC9zcGFuPlxyXG5cdFx0XHRcdFx0XHQ8L2E+XHJcblxyXG5cdFx0XHRcdFx0XHQ8IS0tIHBhZ2luYXRpb24tLT5cclxuXHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtc2Vjb25kYXJ5XCIgKm5nSWY9XCJpc1BkZkRvYygpID09PSB0cnVlXCI+XHJcblx0XHRcdFx0XHRcdFx0UMOhZ2luYToge3sgcGRmRG9jdW1lbnQucGFnZU51bSB9fSAvIHt7IHBkZkRvY3VtZW50LnBkZkRvYy5udW1QYWdlcyB9fVxyXG5cdFx0XHRcdFx0XHQ8L3NwYW4+XHJcblxyXG5cdFx0XHRcdFx0XHQ8IS0tbmV4dCAtLT5cclxuXHRcdFx0XHRcdFx0PGFcclxuXHRcdFx0XHRcdFx0XHRocmVmPVwiSmF2YXNjcmlwdDo7XCJcclxuXHRcdFx0XHRcdFx0XHRjbGFzcz1cImJ0biBidG4tb3V0bGluZS1zZWNvbmRhcnlcIlxyXG5cdFx0XHRcdFx0XHRcdChjbGljayk9XCJvbk5leHRQYWdlKClcIlxyXG5cdFx0XHRcdFx0XHRcdHRpdGxlPVwiU2lndWllbnRlXCJcclxuXHRcdFx0XHRcdFx0XHRkYXRhLXRvZ2dsZT1cInRvb2x0aXBcIlxyXG5cdFx0XHRcdFx0XHRcdGRhdGEtcGxhY2VtZW50PVwidG9wXCJcclxuXHRcdFx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwiZmEgZmEtY2hldnJvbi1yaWdodFwiPjwvc3Bhbj5cclxuXHRcdFx0XHRcdFx0PC9hPlxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblxyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cImJ0bi1ncm91cCBidG4tZ3JvdXAtc21cIiByb2xlPVwiZ3JvdXBcIiBhcmlhLWxhYmVsPVwiRmlyc3QgZ3JvdXBcIj5cclxuXHRcdFx0XHRcdFx0PCEtLSBkb3dubG9hZC0tPlxyXG5cdFx0XHRcdFx0XHQ8YVxyXG5cdFx0XHRcdFx0XHRcdFtkb3dubG9hZF09XCJmaWxlbmFtZVwiXHJcblx0XHRcdFx0XHRcdFx0Km5nSWY9XCJpc0ZpbGVuYW1lKCkgPT09IHRydWVcIlxyXG5cdFx0XHRcdFx0XHRcdChjbGljayk9XCJkb3dubG9hZCgpXCJcclxuXHRcdFx0XHRcdFx0XHRjbGFzcz1cImJ0biBidG4tb3V0bGluZS1zZWNvbmRhcnlcIlxyXG5cdFx0XHRcdFx0XHRcdHRpdGxlPVwiRGVzY2FyZ2FyXCJcclxuXHRcdFx0XHRcdFx0XHRkYXRhLXRvZ2dsZT1cInRvb2x0aXBcIlxyXG5cdFx0XHRcdFx0XHRcdGRhdGEtcGxhY2VtZW50PVwidG9wXCJcclxuXHRcdFx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0XHRcdDwhLS0gW2hyZWZdPVwiXHJcblx0XHRcdFx0XHRcdFx0XHRzYW5pdGl6YXRpb24uYnlwYXNzU2VjdXJpdHlUcnVzdFVybChcclxuXHRcdFx0XHRcdFx0XHRcdFx0J2RhdGE6YXBwbGljYXRpb24vcGRmO2Jhc2U2NCwnICsgdGhpcy5iYXNlNjRcclxuXHRcdFx0XHRcdFx0XHRcdClcclxuXHRcdFx0XHRcdFx0XHRcIiAtLT5cclxuXHRcdFx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cImZhIGZhLWRvd25sb2FkXCI+PC9zcGFuPlxyXG5cdFx0XHRcdFx0XHQ8L2E+XHJcblx0XHRcdFx0XHRcdDwhLS0gVE9ETyAtIENoZWNrIGZ1bmN0aW9uYWxpdHkgLS0+XHJcblx0XHRcdFx0XHRcdDwhLS0gdG9nZ2xlIGVkaXQtLT5cclxuXHRcdFx0XHRcdFx0PCEtLSA8YVxyXG5cdFx0XHRcdFx0XHRcdGhyZWY9XCJKYXZhc2NyaXB0OjtcIlxyXG5cdFx0XHRcdFx0XHRcdCpuZ0lmPVwiaXNFbmFibGVFZGl0KCkgPT09IHRydWVcIlxyXG5cdFx0XHRcdFx0XHRcdGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXNlY29uZGFyeVwiXHJcblx0XHRcdFx0XHRcdFx0dGl0bGU9XCJFZGl0YXJcIlxyXG5cdFx0XHRcdFx0XHRcdGRhdGEtdG9nZ2xlPVwidG9vbHRpcFwiXHJcblx0XHRcdFx0XHRcdFx0ZGF0YS1wbGFjZW1lbnQ9XCJ0b3BcIlxyXG5cdFx0XHRcdFx0XHRcdChjbGljayk9XCJ0b2dnbGVFZGl0KClcIlxyXG5cdFx0XHRcdFx0XHQ+XHJcblx0XHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJmYSBmYS1lZGl0XCI+PC9zcGFuPlxyXG5cdFx0XHRcdFx0XHQ8L2E+IC0tPlxyXG5cclxuXHRcdFx0XHRcdFx0PCEtLSBnZW5lcmF0ZSBwZGYtLT5cclxuXHRcdFx0XHRcdFx0PCEtLSA8YVxyXG5cdFx0XHRcdFx0XHRcdGhyZWY9XCJKYXZhc2NyaXB0OjtcIlxyXG5cdFx0XHRcdFx0XHRcdCpuZ0lmPVwiaXNFZGl0KCkgPT09IHRydWVcIlxyXG5cdFx0XHRcdFx0XHRcdGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXNlY29uZGFyeVwiXHJcblx0XHRcdFx0XHRcdFx0dGl0bGU9XCJHZW5lcmFyXCJcclxuXHRcdFx0XHRcdFx0XHRkYXRhLXRvZ2dsZT1cInRvb2x0aXBcIlxyXG5cdFx0XHRcdFx0XHRcdGRhdGEtcGxhY2VtZW50PVwidG9wXCJcclxuXHRcdFx0XHRcdFx0XHQoY2xpY2spPVwiY2hhbmdlKClcIlxyXG5cdFx0XHRcdFx0XHQ+XHJcblx0XHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJmYSBmYS1wbGF5XCI+PC9zcGFuPlxyXG5cdFx0XHRcdFx0XHQ8L2E+IC0tPlxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdDwvZGl2PlxyXG5cclxuXHRcdFx0PGRpdiBjbGFzcz1cImNvbC1tZC01IHB1bGwtcmlnaHRcIiAqbmdJZj1cImlzRW5hYmxlRW1haWwoKSA9PT0gdHJ1ZVwiPlxyXG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCBpbnB1dC1ncm91cC1zbVwiPlxyXG5cdFx0XHRcdFx0PGxhYmVsIGZvcj1cInBkZi12aXN1YWxpemVyLWVtYWlsXCIgY2xhc3M9XCJwZGZcIj5cclxuXHRcdFx0XHRcdFx0RW52aWFyIG1lbnNhamUgYVxyXG5cdFx0XHRcdFx0PC9sYWJlbD5cclxuXHRcdFx0XHRcdDxpbnB1dFxyXG5cdFx0XHRcdFx0XHR0eXBlPVwiZW1haWxcIlxyXG5cdFx0XHRcdFx0XHRpZD1cInBkZi12aXN1YWxpemVyLWVtYWlsXCJcclxuXHRcdFx0XHRcdFx0bmFtZT1cInBkZi12aXN1YWxpemVyLWVtYWlsXCJcclxuXHRcdFx0XHRcdFx0cmVxdWlyZWQ9XCJ0cnVlXCJcclxuXHRcdFx0XHRcdFx0Y2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG5cdFx0XHRcdFx0XHRwbGFjZWhvbGRlcj1cIkNvcnJlbyBlbGVjdHLDs25pY29cIlxyXG5cdFx0XHRcdFx0XHRbKG5nTW9kZWwpXT1cImVtYWlsXCJcclxuXHRcdFx0XHRcdC8+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAtYXBwZW5kXCI+XHJcblx0XHRcdFx0XHRcdDxidXR0b25cclxuXHRcdFx0XHRcdFx0XHRjbGFzcz1cImJ0biBidG4tb3V0bGluZS1zZWNvbmRhcnlcIlxyXG5cdFx0XHRcdFx0XHRcdHR5cGU9XCJidXR0b25cIlxyXG5cdFx0XHRcdFx0XHRcdChjbGljayk9XCJzZW5kRW1haWwoKVwiXHJcblx0XHRcdFx0XHRcdFx0dGl0bGU9XCJFbnZpYXJcIlxyXG5cdFx0XHRcdFx0XHRcdGRhdGEtdG9nZ2xlPVwidG9vbHRpcFwiXHJcblx0XHRcdFx0XHRcdFx0ZGF0YS1wbGFjZW1lbnQ9XCJ0b3BcIlxyXG5cdFx0XHRcdFx0XHQ+XHJcblx0XHRcdFx0XHRcdFx0PGltZ1xyXG5cdFx0XHRcdFx0XHRcdFx0c3JjPVwiaHR0cDovL2dpcm8zNjAuY28vem9uYTM2MC9jb2xmdXR1cm8vUExJQy9pbWcvZXhwb3J0LnN2Z1wiXHJcblx0XHRcdFx0XHRcdFx0XHRhbHQ9XCJcIlxyXG5cdFx0XHRcdFx0XHRcdFx0d2lkdGg9XCIxNlwiXHJcblx0XHRcdFx0XHRcdFx0Lz5cclxuXHRcdFx0XHRcdFx0PC9idXR0b24+XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHQ8L2Rpdj5cclxuXHQ8L2Rpdj5cclxuXHJcblx0PGRpdiBjbGFzcz1cInBkZi12aXN1YWxpemVyLWRhc2hib2FyZFwiPlxyXG5cdFx0PGRpdiBjbGFzcz1cInJvd1wiPlxyXG5cdFx0XHQ8IS0tIDxkaXYgY2xhc3M9XCJjb2wtbWQtNVwiICpuZ0lmPVwiaXNFZGl0KCkgPT09IHRydWVcIj5cclxuXHRcdFx0XHQ8dGV4dGFyZWFcclxuXHRcdFx0XHRcdGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuXHRcdFx0XHRcdFtzdHlsZS5oZWlnaHRdPVwiZ2V0SGVpZ2h0KClcIlxyXG5cdFx0XHRcdFx0c3R5bGU9XCJyZXNpemU6dmVydGljYWw7XCJcclxuXHRcdFx0XHRcdFsobmdNb2RlbCldPVwiaHRtbFwiXHJcblx0XHRcdFx0PjwvdGV4dGFyZWE+XHJcblx0XHRcdDwvZGl2PiAtLT5cclxuXHRcdFx0PGRpdiBbbmdDbGFzc109XCJ7ICdjb2wtbWQtNyc6IGVkaXQgPT09IHRydWUsICdjb2wtbWQtMTInOiAhZWRpdCB9XCI+XHJcblx0XHRcdFx0PGRpdlxyXG5cdFx0XHRcdFx0aWQ9XCJwZGYtc2Nyb2xsYWJsZVwiXHJcblx0XHRcdFx0XHRjbGFzcz1cInBkZi12aXN1YWxpemVyLXNjcm9sbGFibGVcIlxyXG5cdFx0XHRcdFx0W3N0eWxlLmhlaWdodF09XCJnZXRIZWlnaHQoKVwiXHJcblx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0PGNhbnZhcyBpZD1cInBkZi1jYW52YXNcIiBjbGFzcz1cInBkZi12aXN1YWxpemVyLWNhbnZhc1wiPiA8L2NhbnZhcz5cclxuXHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHQ8L2Rpdj5cclxuXHQ8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
307
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLW1lcmdlLXZpc3VhbGl6ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctcGxpLWNvbW1vbnMvc3JjL2xpYi9jb21wb25lbnRzL3BkZi1tZXJnZS12aXN1YWxpemVyL3BkZi1tZXJnZS12aXN1YWxpemVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXBsaS1jb21tb25zL3NyYy9saWIvY29tcG9uZW50cy9wZGYtbWVyZ2UtdmlzdWFsaXplci9wZGYtbWVyZ2UtdmlzdWFsaXplci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sU0FBUyxFQUdULEtBQUssRUFFTCxZQUFZLEVBQ1osTUFBTSxFQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sS0FBSyxNQUFNLE1BQU0sc0JBQXNCLENBQUM7QUFDL0MsT0FBTyxPQUFPLE1BQU0sc0JBQXNCLENBQUM7QUFFM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQWMsTUFBTSxhQUFhLENBQUM7Ozs7Ozs7QUFLbEUsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDO0FBQ3JCLDJCQUEyQjtBQUMzQixvRkFBb0Y7QUFNcEYsTUFBTSxPQUFPLDJCQUEyQjtJQXVDdkMsWUFDVyxhQUE0QixFQUM5QixhQUE0QixFQUM3QixZQUEwQjtRQUZ2QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM5QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM3QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQXBDbEMsOENBQThDO1FBQ3JDLGVBQVUsR0FBWSxLQUFLLENBQUMsQ0FBQyw2QkFBNkI7UUFXbkUsaURBQWlEO1FBQ3ZDLGVBQVUsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUNsRSwyQ0FBMkM7UUFDakMsZ0JBQVcsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQyxDQUFDLDZCQUE2QjtRQUNqRywyQ0FBMkM7UUFDakMsa0JBQWEsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQVFyRSw2QkFBNkIsQ0FBQyxTQUFJLEdBQVksS0FBSyxDQUFDO1FBQ3BELHdDQUF3QztRQUN4QyxVQUFLLEdBQVksS0FBSyxDQUFDO1FBR3ZCLG1DQUFtQztRQUNuQyxjQUFTLEdBQVcsWUFBWSxDQUFDO0lBTTlCLENBQUM7SUFFSix1Q0FBdUM7SUFDdkMsV0FBVyxDQUFDLE9BQXNCO1FBQ2pDLE1BQU0sV0FBVyxHQUFpQixPQUFPLENBQUMsV0FBVyxDQUFDO1FBQ3RELE1BQU0sT0FBTyxHQUFpQixPQUFPLENBQUMsT0FBTyxDQUFDO1FBQzlDLElBQUksV0FBVyxJQUFJLFdBQVcsQ0FBQyxZQUFZLEVBQUU7WUFDNUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ25CO2FBQU0sSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLFlBQVksRUFBRTtZQUMzQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUM7WUFDcEMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ25CO2FBQU07WUFDTixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUNuQixJQUFJLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUU7Z0JBQ2hELElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDO2dCQUNyQyxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ25ELEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDakQsSUFBSSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUM7YUFDN0I7U0FDRDtJQUNGLENBQUM7SUFFRCwyQkFBMkI7SUFDM0IsV0FBVztRQUNWLElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDckMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUMzRCxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUNWLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDNUIsQ0FBQyxFQUNELENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsT0FBTyxDQUFDLEtBQUssQ0FBQyw0QkFBNEIsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNwRCxDQUFDLENBQ0QsQ0FBQztTQUNGO2FBQU0sSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQzVCLHNCQUFzQjtZQUN0QixJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxTQUFTLENBQzlELENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM1QixDQUFDLEVBQ0QsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDVCxPQUFPLENBQUMsS0FBSyxDQUFDLDRCQUE0QixFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3BELENBQUMsQ0FDRCxDQUFDO1NBQ0Y7SUFDRixDQUFDO0lBRUQsYUFBYSxDQUFDLE1BQU07UUFDbkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQzVCLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0IsS0FBSyxDQUFDLFNBQVMsR0FBRyxnREFBZ0QsQ0FBQztRQUNuRSx1REFBdUQ7UUFDdkQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFbkQsZ0NBQWdDO1FBQ2hDLElBQUksV0FBVyxHQUFnQixJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ2hELE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRTtZQUNoQyxZQUFZLEVBQUUsS0FBSztTQUNuQixDQUFDLENBQUM7UUFDSCxJQUFJLElBQUksR0FBRyxJQUFJLENBQUM7UUFDaEIsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN2QixLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVMsT0FBTztZQUN0RCxXQUFXLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQztZQUM3QixJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ25CLEtBQUssR0FBRyxJQUFJLENBQUM7WUFDYixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFDRCw2QkFBNkI7SUFDN0IsU0FBUztRQUNSLElBQUksSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQzNDLE9BQU8sMkJBQTJCLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztJQUMxRCxDQUFDO0lBRUQsK0VBQStFO0lBQy9FLFVBQVUsQ0FBQyxHQUFHO1FBQ2IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQ3RDLGdDQUFnQztRQUNoQyxJQUFJLGVBQWUsR0FBZ0IsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNwRCxJQUFJLElBQUksR0FBRyxJQUFJLENBQUM7UUFDaEIsa0NBQWtDO1FBQ2xDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBUyxJQUFJO1lBQ3RELElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZELGVBQWUsQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7WUFDaEQsZUFBZSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQztZQUU5QyxzQ0FBc0M7WUFDdEMsSUFBSSxhQUFhLEdBQUc7Z0JBQ25CLGFBQWEsRUFBRSxlQUFlLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7Z0JBQ3RELFFBQVEsRUFBRSxRQUFRO2FBQ2xCLENBQUM7WUFDRixJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBRTVDLCtCQUErQjtZQUMvQixVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztnQkFDdkIsZUFBZSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7Z0JBQ3RDLElBQUksZUFBZSxDQUFDLGNBQWMsS0FBSyxJQUFJLEVBQUU7b0JBQzVDLGdDQUFnQztvQkFDaEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLENBQUM7b0JBQ2hELGVBQWUsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO2lCQUN0QztZQUNGLENBQUMsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsZUFBZSxDQUFDLEdBQUc7UUFDbEIsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRTtZQUNuQyxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsR0FBRyxHQUFHLENBQUM7U0FDdEM7YUFBTTtZQUNOLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDckI7SUFDRixDQUFDO0lBRUQ7O09BRUc7SUFDSCxVQUFVO1FBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLElBQUksQ0FBQyxFQUFFO1lBQ3ZELE9BQU87U0FDUDtRQUNELElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRDs7T0FFRztJQUNILFVBQVU7UUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUU7WUFDdEYsT0FBTztTQUNQO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUTtRQUNQLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxJQUFJLENBQUMsRUFBRTtZQUNyRCxPQUFPO1NBQ1A7UUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7UUFDdEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRDs7T0FFRztJQUNILFNBQVM7UUFDUixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssSUFBSSxHQUFHLEVBQUU7WUFDdkQsT0FBTztTQUNQO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDO1FBQ3RELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQscUNBQXFDO0lBQ3JDLFNBQVM7UUFDUixJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksVUFBVSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDdkQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7Z0JBQ3JCLEVBQUUsRUFBRSxJQUFJLENBQUMsS0FBSztnQkFDZCxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07YUFDbkIsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDaEIsT0FBTztTQUNQO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsa0NBQWtDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsa0NBQWtDO0lBQ2xDLFFBQVE7UUFDUCxNQUFNLFdBQVcsR0FBRyxpQkFBaUIsQ0FBQztRQUN0QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzVCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNwQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3QixDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDekIsQ0FBQyxDQUFDLElBQUksR0FBRyxPQUFPLENBQUM7UUFDakIsQ0FBQyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQzNCLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNWLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZixNQUFNLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNwQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM3QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztnQkFDcEIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO2FBQ25CLENBQUMsQ0FBQztRQUNKLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNULENBQUM7SUFFRCx3Q0FBd0M7SUFDeEMsYUFBYTtJQUNiLHVCQUF1QjtJQUN2QixrQ0FBa0M7SUFDbEMsSUFBSTtJQUVKLHdCQUF3QjtJQUN4QixVQUFVO1FBQ1QsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDeEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsYUFBYTtRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsS0FBSyxTQUFTLENBQUM7SUFDdkMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsT0FBTztRQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUM7SUFDakMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUTtRQUNQLE9BQU8sQ0FDTixJQUFJLENBQUMsV0FBVztZQUNoQixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sSUFBSSxTQUFTO1lBQ3BDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxJQUFJLElBQUksQ0FDL0IsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILFVBQVU7UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLEtBQUssU0FBUyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7T0FFRztJQUNILFlBQVk7UUFDWCxPQUFPLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU07UUFDTCxPQUFPLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDO0lBQzFCLENBQUM7SUFFRDs7T0FFRztJQUNILGFBQWE7UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxTQUFTLENBQUMsT0FBTyxFQUFFLFdBQVcsR0FBRyxFQUFFLEVBQUUsU0FBUyxHQUFHLEdBQUc7UUFDbkQsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyQyxLQUFLLElBQUksTUFBTSxHQUFHLENBQUMsRUFBRSxNQUFNLEdBQUcsY0FBYyxDQUFDLE1BQU0sRUFBRSxNQUFNLElBQUksU0FBUyxFQUFFO1lBQ3pFLE1BQU0sS0FBSyxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUMsQ0FBQztZQUMvRCxNQUFNLFdBQVcsR0FBRyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDNUMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3RDLFdBQVcsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3JDO1lBQ0QsTUFBTSxTQUFTLEdBQUcsSUFBSSxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDOUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUMzQjtRQUNELE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELE9BQU8sSUFBSSxDQUFDO0lBQ2IsQ0FBQzs7QUExVEQsZ0NBQWdDO0FBQ3pCLDBDQUFjLEdBQUcsR0FBRyxDQUFDO3dIQUZoQiwyQkFBMkI7NEdBQTNCLDJCQUEyQixrV0N6QnhDLGs5TEF3S0E7MkZEL0lhLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDQywwQkFBMEI7MkpBUzNCLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsV0FBVztzQkFBbkIsS0FBSztnQkFFRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRUksVUFBVTtzQkFBbkIsTUFBTTtnQkFFRyxXQUFXO3NCQUFwQixNQUFNO2dCQUVHLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG5cdENvbXBvbmVudCxcclxuXHRPbkNoYW5nZXMsXHJcblx0U2ltcGxlQ2hhbmdlcyxcclxuXHRJbnB1dCxcclxuXHRTaW1wbGVDaGFuZ2UsXHJcblx0RXZlbnRFbWl0dGVyLFxyXG5cdE91dHB1dFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgKiBhcyBQREZKU18gZnJvbSAncGRmanMtZGlzdC9idWlsZC9wZGYnO1xyXG5pbXBvcnQgcGFuem9vbSBmcm9tICdwYW56b29tL2Rpc3QvcGFuem9vbSc7XHJcbmltcG9ydCB7IENvbW1vblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb21tb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFBkZkRvY3VtZW50LCBVdGlsU3RyaW5nLCBSZXF1ZXN0UGRmIH0gZnJvbSAnbmctcGxpLXV0aWwnO1xyXG5pbXBvcnQgeyBGaWxlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ZpbGUuc2VydmljZSc7XHJcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBUb2FzdHJTZXJ2aWNlIH0gZnJvbSAnbmd4LXRvYXN0cic7XHJcblxyXG5jb25zdCBQREZKUyA9IFBERkpTXztcclxuLy8gY29uc3QgcGFuem9vbSA9IHBhbnpvb207XHJcbi8qKiBQZGYgdmlzdWFsaXplciBSZWZhY3RvciAtIFRPRE8gaW1wcm92ZSBsb2dpYyBhbmQgY2hlY2sgdGhlIGVkaXQgZnVuY3Rpb25hbGl0eSAqL1xyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ3BsaS1wZGYtbWVyZ2UtdmlzdWFsaXplcicsXHJcblx0dGVtcGxhdGVVcmw6ICcuL3BkZi1tZXJnZS12aXN1YWxpemVyLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybHM6IFsnLi9wZGYtbWVyZ2UtdmlzdWFsaXplci5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFBkZk1lcmdlVmlzdWFsaXplckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcblx0LyoqIERlZmF1bHQgdmlzdWFsaXplciBoZWlnaHQgKi9cclxuXHRzdGF0aWMgREVGQVVMVF9IRUlHSFQgPSA1MDA7XHJcblxyXG5cdC8qKiBQZGZzIHRvIGJlIGdlbmVyYXRlZCBhbmQgbWVyZ2VkICovXHJcblx0QElucHV0KCkgbFBkZlJlcXVlc3Q6IFJlcXVlc3RQZGZbXTtcclxuXHQvKiogSXQgdmVyaWZpZXMgaWYgaXMgcG9zc2libGUgdG8gZWRpdCBodG1sICovXHJcblx0QElucHV0KCkgZW5hYmxlRWRpdDogYm9vbGVhbiA9IGZhbHNlOyAvLyBUT0RPIC0gQ2hlY2sgZnVuY3Rpb25hbGl0eVxyXG5cdC8qKiB0aXRsZSBvZiB0aGUgcGRmICovXHJcblx0QElucHV0KCkgdGl0bGU6IHN0cmluZztcclxuXHQvKiogdGhlIGhlaWdodCBvZiB0aGUgcGRmIGNhbnZhcyAqL1xyXG5cdEBJbnB1dCgpIGhlaWdodDogbnVtYmVyO1xyXG5cdC8qKiBUaGUgZmlsZW5hbWUgb2YgdGhlIHBkZiAqL1xyXG5cdEBJbnB1dCgpIGZpbGVuYW1lOiBzdHJpbmc7XHJcblx0LyoqIEl0IHZlcmlmaWVzIGlmIGl0IGFsbG93cyB0byBzZW5kIHRoZSBlbWFpbCAqL1xyXG5cdEBJbnB1dCgpIGVuYWJsZUVtYWlsOiBib29sZWFuO1xyXG5cdC8qKiBUaGUgdXJsIG9mIHRoZSBwZGYgKi9cclxuXHRASW5wdXQoKSB1cmxGaWxlOiBzdHJpbmc7XHJcblx0LyoqIEl0IGZpcmVzIHdoZW4gdGhlIGZpbGUgaGFzIGJlZW4gZG93bmxvYWRlZCAqL1xyXG5cdEBPdXRwdXQoKSBvbkRvd25sb2FkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cdC8qKiBJdCBmaXJlcyB3aGVuIHRoZSBuYW1lIGhhcyBiZWVuIHNlbnQgKi9cclxuXHRAT3V0cHV0KCkgb25TZW5kRW1haWw6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7IC8vIFRPRE8gLSBDaGVjayBmdW5jdGlvbmFsaXR5XHJcblx0LyoqIEl0IGZpcmVzIHdoZW4gdGhlIG5hbWUgaGFzIGJlZW4gc2VudCAqL1xyXG5cdEBPdXRwdXQoKSBvblBkZlJlbmRlcmVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cdC8qKiBJdCBmaXJlcyB3aGVuIHRoZSBodG1sIGhhcyBiZWVuIG1vZGlmaWVkICovXHJcblx0Ly8gQE91dHB1dCgpIG9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuXHQvKiogRW1haWwgdGhhdCB3aWxsIGJlIHNlbmRlZCAqL1xyXG5cdGVtYWlsOiBzdHJpbmc7XHJcblx0LyoqIGJhc2U2NCBhcyByZXN1bHQgb2YgaHRtbCAyIHBkZiAqL1xyXG5cdGJhc2U2NDogc3RyaW5nOyAvLyBUT0RPIC0gQ2hlY2sgZnVuY3Rpb25hbGl0eVxyXG5cdC8qKiBJdCBhbGxvd3MgdG8gZWRpdCBodG1sICovIGVkaXQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHQvKiogaXQgdmVyaWZpZXMgaWYgY29tcG9uZW50IGlzIHJlYWR5ICovXHJcblx0cmVhZHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHQvKiogSXQgY29udGluYXMgdGhlIGFic3RyYWN0aW9uIG9mIHBkZiBkb2N1bWVudCAqL1xyXG5cdHBkZkRvY3VtZW50OiBQZGZEb2N1bWVudDtcclxuXHQvKiogaXQgY29udGFpbnMgdGhlIGlkIG9mIGNhbnZhcyAqL1xyXG5cdGlkX2NhbnZhczogc3RyaW5nID0gJ3BkZi1jYW52YXMnO1xyXG5cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByb3RlY3RlZCBjb21tb25TZXJ2aWNlOiBDb21tb25TZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSB0YW9zdHJTZXJ2aWNlOiBUb2FzdHJTZXJ2aWNlLFxyXG5cdFx0cHVibGljIHNhbml0aXphdGlvbjogRG9tU2FuaXRpemVyXHJcblx0KSB7fVxyXG5cclxuXHQvLyBpdCByZXNvbHZlcyB3aGVuIHRoZSBodG1sIGlzIGNoYW5nZWRcclxuXHRuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcblx0XHRjb25zdCBsUGRmUmVxdWVzdDogU2ltcGxlQ2hhbmdlID0gY2hhbmdlcy5sUGRmUmVxdWVzdDtcclxuXHRcdGNvbnN0IHVybEZpbGU6IFNpbXBsZUNoYW5nZSA9IGNoYW5nZXMudXJsRmlsZTtcclxuXHRcdGlmIChsUGRmUmVxdWVzdCAmJiBsUGRmUmVxdWVzdC5jdXJyZW50VmFsdWUpIHtcclxuXHRcdFx0dGhpcy5nZW5lcmF0ZVBERigpO1xyXG5cdFx0fSBlbHNlIGlmICh1cmxGaWxlICYmIHVybEZpbGUuY3VycmVudFZhbHVlKSB7XHJcblx0XHRcdHRoaXMudXJsRmlsZSA9IHVybEZpbGUuY3VycmVudFZhbHVlO1xyXG5cdFx0XHR0aGlzLmdlbmVyYXRlUERGKCk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLnJlYWR5ID0gZmFsc2U7XHJcblx0XHRcdGlmICh0aGlzLnBkZkRvY3VtZW50ICYmIHRoaXMucGRmRG9jdW1lbnQuY2FudmFzKSB7XHJcblx0XHRcdFx0bGV0IGNhbnZhcyA9IHRoaXMucGRmRG9jdW1lbnQuY2FudmFzO1xyXG5cdFx0XHRcdHZhciBjdHggPSB0aGlzLnBkZkRvY3VtZW50LmNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xyXG5cdFx0XHRcdGN0eC5jbGVhclJlY3QoMCwgMCwgY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTtcclxuXHRcdFx0XHR0aGlzLnBkZkRvY3VtZW50ID0gdW5kZWZpbmVkO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKiogSXQgZ2VuZXJhdGVzIHRoZSBwZGYgKi9cclxuXHRnZW5lcmF0ZVBERigpIHtcclxuXHRcdGlmIChVdGlsU3RyaW5nLmlzVmFsaWQodGhpcy51cmxGaWxlKSkge1xyXG5cdFx0XHR0aGlzLmNvbW1vblNlcnZpY2UuZ2V0QmFzZTY0UGRmQnlVcmwodGhpcy51cmxGaWxlKS5zdWJzY3JpYmUoXHJcblx0XHRcdFx0KHJlc3VsdCkgPT4ge1xyXG5cdFx0XHRcdFx0dGhpcy5zaG93QmFzZTY0UGRmKHJlc3VsdCk7XHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHQoZXJyb3IpID0+IHtcclxuXHRcdFx0XHRcdGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHRyeWluZyB0byByZW5kZXIgUERGJywgZXJyb3IpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0KTtcclxuXHRcdH0gZWxzZSBpZiAodGhpcy5sUGRmUmVxdWVzdCkge1xyXG5cdFx0XHQvLyBpZiBodG1sIHdhcyBjaGFuZ2VkXHJcblx0XHRcdHRoaXMuY29tbW9uU2VydmljZS5nZXRCYXNlNjRQZGZMaXN0KHRoaXMubFBkZlJlcXVlc3QpLnN1YnNjcmliZShcclxuXHRcdFx0XHQocmVzdWx0KSA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLnNob3dCYXNlNjRQZGYocmVzdWx0KTtcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdChlcnJvcikgPT4ge1xyXG5cdFx0XHRcdFx0Y29uc29sZS5lcnJvcignRXJyb3IgdHJ5aW5nIHRvIHJlbmRlciBQREYnLCBlcnJvcik7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHQpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0c2hvd0Jhc2U2NFBkZihyZXN1bHQpIHtcclxuXHRcdHRoaXMuYmFzZTY0ID0gcmVzdWx0LmJhc2U2NDtcclxuXHRcdHZhciBkYXRhID0gYXRvYih0aGlzLmJhc2U2NCk7XHJcblx0XHRQREZKUy53b3JrZXJTcmMgPSAnLy9tb3ppbGxhLmdpdGh1Yi5pby9wZGYuanMvYnVpbGQvcGRmLndvcmtlci5qcyc7XHJcblx0XHQvLyBjcmVhdGUgaW5zdGFuY2Ugb2YgUGRmRG9jdW1lbnQgd2l0aCB0aGUgaWQgb2YgY2FudmFzXHJcblx0XHR0aGlzLnBkZkRvY3VtZW50ID0gbmV3IFBkZkRvY3VtZW50KHRoaXMuaWRfY2FudmFzKTtcclxuXHJcblx0XHQvLyBhc3NpZ24gdmFyaWFibGVzIG91dCBvZiBzY29wZVxyXG5cdFx0bGV0IHBkZmRvY3VtZW50OiBQZGZEb2N1bWVudCA9IHRoaXMucGRmRG9jdW1lbnQ7XHJcblx0XHRwYW56b29tKHRoaXMucGRmRG9jdW1lbnQuY2FudmFzLCB7XHJcblx0XHRcdHNtb290aFNjcm9sbDogZmFsc2VcclxuXHRcdH0pO1xyXG5cdFx0bGV0IHNlbGYgPSB0aGlzO1xyXG5cdFx0bGV0IHJlYWR5ID0gdGhpcy5yZWFkeTtcclxuXHRcdFBERkpTLmdldERvY3VtZW50KHsgZGF0YTogZGF0YSB9KS50aGVuKGZ1bmN0aW9uKHBkZkRvY18pIHtcclxuXHRcdFx0cGRmZG9jdW1lbnQucGRmRG9jID0gcGRmRG9jXztcclxuXHRcdFx0c2VsZi5yZW5kZXJQYWdlKDEpO1xyXG5cdFx0XHRyZWFkeSA9IHRydWU7XHJcblx0XHRcdHNlbGYub25QZGZSZW5kZXJlZC5lbWl0KHRydWUpO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cdC8qKiBJdCByZXR1cm5zIHRoZSBoZWlnaHQgICovXHJcblx0Z2V0SGVpZ2h0KCk6IHN0cmluZyB7XHJcblx0XHRpZiAodGhpcy5oZWlnaHQpIHJldHVybiB0aGlzLmhlaWdodCArICdweCc7XHJcblx0XHRyZXR1cm4gUGRmTWVyZ2VWaXN1YWxpemVyQ29tcG9uZW50LkRFRkFVTFRfSEVJR0hUICsgJ3B4JztcclxuXHR9XHJcblxyXG5cdC8qKiBHZXQgcGFnZSBpbmZvIGZyb20gZG9jdW1lbnQsIHJlc2l6ZSBjYW52YXMgYWNjb3JkaW5nbHksIGFuZCByZW5kZXIgcGFnZS4gKi9cclxuXHRyZW5kZXJQYWdlKG51bSkge1xyXG5cdFx0dGhpcy5wZGZEb2N1bWVudC5wYWdlUmVuZGVyaW5nID0gdHJ1ZTtcclxuXHRcdC8vIGFzc2lnbiB2YXJpYWJsZXMgb3V0IG9mIHNjb3BlXHJcblx0XHRsZXQgc2VsZlBkZkRvY3VtZW50OiBQZGZEb2N1bWVudCA9IHRoaXMucGRmRG9jdW1lbnQ7XHJcblx0XHRsZXQgc2VsZiA9IHRoaXM7XHJcblx0XHQvLyBVc2luZyBwcm9taXNlIHRvIGZldGNoIHRoZSBwYWdlXHJcblx0XHR0aGlzLnBkZkRvY3VtZW50LnBkZkRvYy5nZXRQYWdlKG51bSkudGhlbihmdW5jdGlvbihwYWdlKSB7XHJcblx0XHRcdHZhciB2aWV3cG9ydCA9IHBhZ2UuZ2V0Vmlld3BvcnQoc2VsZlBkZkRvY3VtZW50LnNjYWxlKTtcclxuXHRcdFx0c2VsZlBkZkRvY3VtZW50LmNhbnZhcy5oZWlnaHQgPSB2aWV3cG9ydC5oZWlnaHQ7XHJcblx0XHRcdHNlbGZQZGZEb2N1bWVudC5jYW52YXMud2lkdGggPSB2aWV3cG9ydC53aWR0aDtcclxuXHJcblx0XHRcdC8vIFJlbmRlciBQREYgcGFnZSBpbnRvIGNhbnZhcyBjb250ZXh0XHJcblx0XHRcdHZhciByZW5kZXJDb250ZXh0ID0ge1xyXG5cdFx0XHRcdGNhbnZhc0NvbnRleHQ6IHNlbGZQZGZEb2N1bWVudC5jYW52YXMuZ2V0Q29udGV4dCgnMmQnKSxcclxuXHRcdFx0XHR2aWV3cG9ydDogdmlld3BvcnRcclxuXHRcdFx0fTtcclxuXHRcdFx0dmFyIHJlbmRlclRhc2sgPSBwYWdlLnJlbmRlcihyZW5kZXJDb250ZXh0KTtcclxuXHJcblx0XHRcdC8vIFdhaXQgZm9yIHJlbmRlcmluZyB0byBmaW5pc2hcclxuXHRcdFx0cmVuZGVyVGFzay5wcm9taXNlLnRoZW4oZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0c2VsZlBkZkRvY3VtZW50LnBhZ2VSZW5kZXJpbmcgPSBmYWxzZTtcclxuXHRcdFx0XHRpZiAoc2VsZlBkZkRvY3VtZW50LnBhZ2VOdW1QZW5kaW5nICE9PSBudWxsKSB7XHJcblx0XHRcdFx0XHQvLyBOZXcgcGFnZSByZW5kZXJpbmcgaXMgcGVuZGluZ1xyXG5cdFx0XHRcdFx0c2VsZi5yZW5kZXJQYWdlKHNlbGZQZGZEb2N1bWVudC5wYWdlTnVtUGVuZGluZyk7XHJcblx0XHRcdFx0XHRzZWxmUGRmRG9jdW1lbnQucGFnZU51bVBlbmRpbmcgPSBudWxsO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIElmIGFub3RoZXIgcGFnZSByZW5kZXJpbmcgaW4gcHJvZ3Jlc3MsIHdhaXRzIHVudGlsIHRoZSByZW5kZXJpbmcgaXNcclxuXHQgKiBmaW5pc2VkLiBPdGhlcndpc2UsIGV4ZWN1dGVzIHJlbmRlcmluZyBpbW1lZGlhdGVseS5cclxuXHQgKi9cclxuXHRxdWV1ZVJlbmRlclBhZ2UobnVtKSB7XHJcblx0XHRpZiAodGhpcy5wZGZEb2N1bWVudC5wYWdlUmVuZGVyaW5nKSB7XHJcblx0XHRcdHRoaXMucGRmRG9jdW1lbnQucGFnZU51bVBlbmRpbmcgPSBudW07XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLnJlbmRlclBhZ2UobnVtKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIERpc3BsYXlzIHByZXZpb3VzIHBhZ2UuXHJcblx0ICovXHJcblx0b25QcmV2UGFnZSgpIHtcclxuXHRcdGlmICghdGhpcy5wZGZEb2N1bWVudCB8fCB0aGlzLnBkZkRvY3VtZW50LnBhZ2VOdW0gPD0gMSkge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblx0XHR0aGlzLnBkZkRvY3VtZW50LnBhZ2VOdW0tLTtcclxuXHRcdHRoaXMucXVldWVSZW5kZXJQYWdlKHRoaXMucGRmRG9jdW1lbnQucGFnZU51bSk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBEaXNwbGF5cyBuZXh0IHBhZ2UuXHJcblx0ICovXHJcblx0b25OZXh0UGFnZSgpIHtcclxuXHRcdGlmICghdGhpcy5wZGZEb2N1bWVudCB8fCB0aGlzLnBkZkRvY3VtZW50LnBhZ2VOdW0gPj0gdGhpcy5wZGZEb2N1bWVudC5wZGZEb2MubnVtUGFnZXMpIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5wZGZEb2N1bWVudC5wYWdlTnVtKys7XHJcblx0XHR0aGlzLnF1ZXVlUmVuZGVyUGFnZSh0aGlzLnBkZkRvY3VtZW50LnBhZ2VOdW0pO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogRGlzcGxheXMgWm9vbSBJbi5cclxuXHQgKi9cclxuXHRvblpvb21JbigpIHtcclxuXHRcdGlmICghdGhpcy5wZGZEb2N1bWVudCB8fCB0aGlzLnBkZkRvY3VtZW50LnNjYWxlID49IDMpIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5wZGZEb2N1bWVudC5zY2FsZSA9IHRoaXMucGRmRG9jdW1lbnQuc2NhbGUgKyAwLjI7XHJcblx0XHR0aGlzLnF1ZXVlUmVuZGVyUGFnZSh0aGlzLnBkZkRvY3VtZW50LnBhZ2VOdW0pO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogRGlzcGxheXMgWm9vbSBPdXQuXHJcblx0ICovXHJcblx0b25ab29tT3V0KCkge1xyXG5cdFx0aWYgKCF0aGlzLnBkZkRvY3VtZW50IHx8IHRoaXMucGRmRG9jdW1lbnQuc2NhbGUgPD0gMC40KSB7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdHRoaXMucGRmRG9jdW1lbnQuc2NhbGUgPSB0aGlzLnBkZkRvY3VtZW50LnNjYWxlIC0gMC4yO1xyXG5cdFx0dGhpcy5xdWV1ZVJlbmRlclBhZ2UodGhpcy5wZGZEb2N1bWVudC5wYWdlTnVtKTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCBzZW5kcyB0aGUgZG9jdW1lbnQgYnkgZW1haWwgKi9cclxuXHRzZW5kRW1haWwoKSB7XHJcblx0XHRpZiAodGhpcy5lbWFpbCAmJiBVdGlsU3RyaW5nLnZhbGlkYXRlRW1haWwodGhpcy5lbWFpbCkpIHtcclxuXHRcdFx0dGhpcy5vblNlbmRFbWFpbC5lbWl0KHtcclxuXHRcdFx0XHR0bzogdGhpcy5lbWFpbCxcclxuXHRcdFx0XHRiYXNlNjQ6IHRoaXMuYmFzZTY0XHJcblx0XHRcdH0pO1xyXG5cdFx0XHR0aGlzLmVtYWlsID0gJyc7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdHRoaXMudGFvc3RyU2VydmljZS53YXJuaW5nKCdDb3JyZW8gZWxlY3Ryw7NuaWNvIGVzIGluY29ycmVjdG8nKTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCBmaXJlcyB0aGUgZXZlbnQgZG93bmxvYWQgKi9cclxuXHRkb3dubG9hZCgpIHtcclxuXHRcdGNvbnN0IGNvbnRlbnRUeXBlID0gJ2FwcGxpY2F0aW9uL3BkZic7XHJcblx0XHRjb25zdCBiNjREYXRhID0gdGhpcy5iYXNlNjQ7XHJcblx0XHRjb25zdCBibG9iID0gdGhpcy5iNjR0b0Jsb2IoYjY0RGF0YSwgY29udGVudFR5cGUpO1xyXG5cdFx0Y29uc3QgYmxvYlVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XHJcblx0XHR2YXIgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcclxuXHRcdGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSk7XHJcblx0XHRhLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XHJcblx0XHRhLmhyZWYgPSBibG9iVXJsO1xyXG5cdFx0YS5kb3dubG9hZCA9IHRoaXMuZmlsZW5hbWU7XHJcblx0XHRhLmNsaWNrKCk7XHJcblx0XHRzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0d2luZG93LlVSTC5yZXZva2VPYmplY3RVUkwoYmxvYlVybCk7XHJcblx0XHRcdGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoYSk7XHJcblx0XHRcdHRoaXMub25Eb3dubG9hZC5lbWl0KHtcclxuXHRcdFx0XHRiYXNlNjQ6IHRoaXMuYmFzZTY0XHJcblx0XHRcdH0pO1xyXG5cdFx0fSwgMjAwKTtcclxuXHR9XHJcblxyXG5cdC8qKiBJdCBmaXJlcyB3aGVuIHRoZSBodG1sIGlzIGNoYW5nZWQgKi9cclxuXHQvLyBjaGFuZ2UoKSB7XHJcblx0Ly8gXHR0aGlzLmdlbmVyYXRlUERGKCk7XHJcblx0Ly8gXHR0aGlzLm9uQ2hhbmdlLmVtaXQodGhpcy5odG1sKTtcclxuXHQvLyB9XHJcblxyXG5cdC8qKiBpdCBhbGxvd3MgdG8gZWRpdCAqL1xyXG5cdHRvZ2dsZUVkaXQoKSB7XHJcblx0XHR0aGlzLmVkaXQgPSAhdGhpcy5lZGl0O1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogaXQgcmV0dXJucyBpZiBpcyBQZGZEb2N1bWVudFxyXG5cdCAqL1xyXG5cdGlzUGRmRG9jdW1lbnQoKTogYm9vbGVhbiB7XHJcblx0XHRyZXR1cm4gdGhpcy5wZGZEb2N1bWVudCAhPT0gdW5kZWZpbmVkO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogaXQgcmV0dXJucyBpZiBpcyBUaXRsZVxyXG5cdCAqL1xyXG5cdGlzVGl0bGUoKTogYm9vbGVhbiB7XHJcblx0XHRyZXR1cm4gdGhpcy50aXRsZSAhPT0gdW5kZWZpbmVkO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogaXQgcmV0dXJucyBpZiBpcyBpc1BkZkRvY1xyXG5cdCAqL1xyXG5cdGlzUGRmRG9jKCk6IGJvb2xlYW4ge1xyXG5cdFx0cmV0dXJuIChcclxuXHRcdFx0dGhpcy5wZGZEb2N1bWVudCAmJlxyXG5cdFx0XHR0aGlzLnBkZkRvY3VtZW50LnBkZkRvYyAhPSB1bmRlZmluZWQgJiZcclxuXHRcdFx0dGhpcy5wZGZEb2N1bWVudC5wZGZEb2MgIT0gbnVsbFxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIGl0IHJldHVybnMgaWYgaXMgZmlsZW5hbWVcclxuXHQgKi9cclxuXHRpc0ZpbGVuYW1lKCk6IGJvb2xlYW4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuZmlsZW5hbWUgIT09IHVuZGVmaW5lZDtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIGl0IHJldHVybnMgaWYgaXMgZW5hYmxlRWRpdFxyXG5cdCAqL1xyXG5cdGlzRW5hYmxlRWRpdCgpOiBib29sZWFuIHtcclxuXHRcdHJldHVybiB0aGlzLmVuYWJsZUVkaXQgPT0gdHJ1ZTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIGl0IHJldHVybnMgaWYgaXMgZWRpdFxyXG5cdCAqL1xyXG5cdGlzRWRpdCgpOiBib29sZWFuIHtcclxuXHRcdHJldHVybiB0aGlzLmVkaXQgPT0gdHJ1ZTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIGl0IHJldHVybnMgaWYgaXMgZW5hYmxlRW1haWxcclxuXHQgKi9cclxuXHRpc0VuYWJsZUVtYWlsKCk6IGJvb2xlYW4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuZW5hYmxlRW1haWwgPT0gdHJ1ZTtcclxuXHR9XHJcblxyXG5cdGI2NHRvQmxvYihiNjREYXRhLCBjb250ZW50VHlwZSA9ICcnLCBzbGljZVNpemUgPSA1MTIpIHtcclxuXHRcdGNvbnN0IGJ5dGVBcnJheXMgPSBbXTtcclxuXHRcdGNvbnN0IGJ5dGVDaGFyYWN0ZXJzID0gYXRvYihiNjREYXRhKTtcclxuXHRcdGZvciAobGV0IG9mZnNldCA9IDA7IG9mZnNldCA8IGJ5dGVDaGFyYWN0ZXJzLmxlbmd0aDsgb2Zmc2V0ICs9IHNsaWNlU2l6ZSkge1xyXG5cdFx0XHRjb25zdCBzbGljZSA9IGJ5dGVDaGFyYWN0ZXJzLnNsaWNlKG9mZnNldCwgb2Zmc2V0ICsgc2xpY2VTaXplKTtcclxuXHRcdFx0Y29uc3QgYnl0ZU51bWJlcnMgPSBuZXcgQXJyYXkoc2xpY2UubGVuZ3RoKTtcclxuXHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBzbGljZS5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHRcdGJ5dGVOdW1iZXJzW2ldID0gc2xpY2UuY2hhckNvZGVBdChpKTtcclxuXHRcdFx0fVxyXG5cdFx0XHRjb25zdCBieXRlQXJyYXkgPSBuZXcgVWludDhBcnJheShieXRlTnVtYmVycyk7XHJcblx0XHRcdGJ5dGVBcnJheXMucHVzaChieXRlQXJyYXkpO1xyXG5cdFx0fVxyXG5cdFx0Y29uc3QgYmxvYiA9IG5ldyBCbG9iKGJ5dGVBcnJheXMsIHsgdHlwZTogY29udGVudFR5cGUgfSk7XHJcblx0XHRyZXR1cm4gYmxvYjtcclxuXHR9XHJcbn1cclxuIiwiPGgzIGNsYXNzPVwicGRmLXZpc3VhbGl6ZXItdGl0bGVcIj57eyB0aXRsZSB9fTwvaDM+XHJcbjxkaXYgY2xhc3M9XCJwZGYtdmlzdWFsaXplci1jb250YWluZXJcIj5cclxuXHQ8ZGl2IGNsYXNzPVwicGRmLXZpc3VhbGl6ZXItY29udHJvbHNcIiAqbmdJZj1cImlzUGRmRG9jdW1lbnQoKSA9PT0gdHJ1ZVwiPlxyXG5cdFx0PGRpdiBjbGFzcz1cInJvd1wiPlxyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwiY29sLW1kLTdcIj5cclxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwiYnRuLXRvb2xiYXJcIiByb2xlPVwidG9vbGJhclwiIGFyaWEtbGFiZWw9XCJUb29sYmFyIHdpdGggYnV0dG9uIGdyb3Vwc1wiPlxyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cImJ0bi1ncm91cCBidG4tZ3JvdXAtc20gbXItMlwiIHJvbGU9XCJncm91cFwiIGFyaWEtbGFiZWw9XCJTZWNvbmQgZ3JvdXBcIj5cclxuXHRcdFx0XHRcdFx0PCEtLSB6b29tIGluLS0+XHJcblx0XHRcdFx0XHRcdDxhXHJcblx0XHRcdFx0XHRcdFx0aHJlZj1cIkphdmFzY3JpcHQ6O1wiXHJcblx0XHRcdFx0XHRcdFx0dGl0bGU9XCJBY2VyY2FyXCJcclxuXHRcdFx0XHRcdFx0XHRkYXRhLXRvZ2dsZT1cInRvb2x0aXBcIlxyXG5cdFx0XHRcdFx0XHRcdGRhdGEtcGxhY2VtZW50PVwidG9wXCJcclxuXHRcdFx0XHRcdFx0XHRjbGFzcz1cImJ0biBidG4tb3V0bGluZS1zZWNvbmRhcnlcIlxyXG5cdFx0XHRcdFx0XHRcdChjbGljayk9XCJvblpvb21JbigpXCJcclxuXHRcdFx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwiZmEgZmEtc2VhcmNoLXBsdXNcIj48L3NwYW4+XHJcblx0XHRcdFx0XHRcdDwvYT5cclxuXHJcblx0XHRcdFx0XHRcdDwhLS0gem9vbSBvdXQtLT5cclxuXHRcdFx0XHRcdFx0PGFcclxuXHRcdFx0XHRcdFx0XHRocmVmPVwiSmF2YXNjcmlwdDo7XCJcclxuXHRcdFx0XHRcdFx0XHR0aXRsZT1cIkFsZWphclwiXHJcblx0XHRcdFx0XHRcdFx0ZGF0YS10b2dnbGU9XCJ0b29sdGlwXCJcclxuXHRcdFx0XHRcdFx0XHRkYXRhLXBsYWNlbWVudD1cInRvcFwiXHJcblx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJidG4gYnRuLW91dGxpbmUtc2Vjb25kYXJ5XCJcclxuXHRcdFx0XHRcdFx0XHQoY2xpY2spPVwib25ab29tT3V0KClcIlxyXG5cdFx0XHRcdFx0XHQ+XHJcblx0XHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJmYSBmYS1zZWFyY2gtbWludXNcIj48L3NwYW4+XHJcblx0XHRcdFx0XHRcdDwvYT5cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cclxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJidG4tZ3JvdXAgYnRuLWdyb3VwLXNtIG1yLTJcIiByb2xlPVwiZ3JvdXBcIiBhcmlhLWxhYmVsPVwiVGhpcmQgZ3JvdXBcIj5cclxuXHRcdFx0XHRcdFx0PCEtLXByZXYgLS0+XHJcblx0XHRcdFx0XHRcdDxhXHJcblx0XHRcdFx0XHRcdFx0aHJlZj1cIkphdmFzY3JpcHQ6O1wiXHJcblx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJidG4gYnRuLW91dGxpbmUtc2Vjb25kYXJ5XCJcclxuXHRcdFx0XHRcdFx0XHQoY2xpY2spPVwib25QcmV2UGFnZSgpXCJcclxuXHRcdFx0XHRcdFx0XHR0aXRsZT1cIkFudGVyaW9yXCJcclxuXHRcdFx0XHRcdFx0XHRkYXRhLXRvZ2dsZT1cInRvb2x0aXBcIlxyXG5cdFx0XHRcdFx0XHRcdGRhdGEtcGxhY2VtZW50PVwidG9wXCJcclxuXHRcdFx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwiZmEgZmEtY2hldnJvbi1sZWZ0XCI+PC9zcGFuPlxyXG5cdFx0XHRcdFx0XHQ8L2E+XHJcblxyXG5cdFx0XHRcdFx0XHQ8IS0tIHBhZ2luYXRpb24tLT5cclxuXHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtc2Vjb25kYXJ5XCIgKm5nSWY9XCJpc1BkZkRvYygpID09PSB0cnVlXCI+XHJcblx0XHRcdFx0XHRcdFx0UMOhZ2luYToge3sgcGRmRG9jdW1lbnQucGFnZU51bSB9fSAvIHt7IHBkZkRvY3VtZW50LnBkZkRvYy5udW1QYWdlcyB9fVxyXG5cdFx0XHRcdFx0XHQ8L3NwYW4+XHJcblxyXG5cdFx0XHRcdFx0XHQ8IS0tbmV4dCAtLT5cclxuXHRcdFx0XHRcdFx0PGFcclxuXHRcdFx0XHRcdFx0XHRocmVmPVwiSmF2YXNjcmlwdDo7XCJcclxuXHRcdFx0XHRcdFx0XHRjbGFzcz1cImJ0biBidG4tb3V0bGluZS1zZWNvbmRhcnlcIlxyXG5cdFx0XHRcdFx0XHRcdChjbGljayk9XCJvbk5leHRQYWdlKClcIlxyXG5cdFx0XHRcdFx0XHRcdHRpdGxlPVwiU2lndWllbnRlXCJcclxuXHRcdFx0XHRcdFx0XHRkYXRhLXRvZ2dsZT1cInRvb2x0aXBcIlxyXG5cdFx0XHRcdFx0XHRcdGRhdGEtcGxhY2VtZW50PVwidG9wXCJcclxuXHRcdFx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwiZmEgZmEtY2hldnJvbi1yaWdodFwiPjwvc3Bhbj5cclxuXHRcdFx0XHRcdFx0PC9hPlxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblxyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cImJ0bi1ncm91cCBidG4tZ3JvdXAtc21cIiByb2xlPVwiZ3JvdXBcIiBhcmlhLWxhYmVsPVwiRmlyc3QgZ3JvdXBcIj5cclxuXHRcdFx0XHRcdFx0PCEtLSBkb3dubG9hZC0tPlxyXG5cdFx0XHRcdFx0XHQ8YVxyXG5cdFx0XHRcdFx0XHRcdFtkb3dubG9hZF09XCJmaWxlbmFtZVwiXHJcblx0XHRcdFx0XHRcdFx0Km5nSWY9XCJpc0ZpbGVuYW1lKCkgPT09IHRydWVcIlxyXG5cdFx0XHRcdFx0XHRcdChjbGljayk9XCJkb3dubG9hZCgpXCJcclxuXHRcdFx0XHRcdFx0XHRjbGFzcz1cImJ0biBidG4tb3V0bGluZS1zZWNvbmRhcnlcIlxyXG5cdFx0XHRcdFx0XHRcdHRpdGxlPVwiRGVzY2FyZ2FyXCJcclxuXHRcdFx0XHRcdFx0XHRkYXRhLXRvZ2dsZT1cInRvb2x0aXBcIlxyXG5cdFx0XHRcdFx0XHRcdGRhdGEtcGxhY2VtZW50PVwidG9wXCJcclxuXHRcdFx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0XHRcdDwhLS0gW2hyZWZdPVwiXHJcblx0XHRcdFx0XHRcdFx0XHRzYW5pdGl6YXRpb24uYnlwYXNzU2VjdXJpdHlUcnVzdFVybChcclxuXHRcdFx0XHRcdFx0XHRcdFx0J2RhdGE6YXBwbGljYXRpb24vcGRmO2Jhc2U2NCwnICsgdGhpcy5iYXNlNjRcclxuXHRcdFx0XHRcdFx0XHRcdClcclxuXHRcdFx0XHRcdFx0XHRcIiAtLT5cclxuXHRcdFx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cImZhIGZhLWRvd25sb2FkXCI+PC9zcGFuPlxyXG5cdFx0XHRcdFx0XHQ8L2E+XHJcblx0XHRcdFx0XHRcdDwhLS0gVE9ETyAtIENoZWNrIGZ1bmN0aW9uYWxpdHkgLS0+XHJcblx0XHRcdFx0XHRcdDwhLS0gdG9nZ2xlIGVkaXQtLT5cclxuXHRcdFx0XHRcdFx0PCEtLSA8YVxyXG5cdFx0XHRcdFx0XHRcdGhyZWY9XCJKYXZhc2NyaXB0OjtcIlxyXG5cdFx0XHRcdFx0XHRcdCpuZ0lmPVwiaXNFbmFibGVFZGl0KCkgPT09IHRydWVcIlxyXG5cdFx0XHRcdFx0XHRcdGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXNlY29uZGFyeVwiXHJcblx0XHRcdFx0XHRcdFx0dGl0bGU9XCJFZGl0YXJcIlxyXG5cdFx0XHRcdFx0XHRcdGRhdGEtdG9nZ2xlPVwidG9vbHRpcFwiXHJcblx0XHRcdFx0XHRcdFx0ZGF0YS1wbGFjZW1lbnQ9XCJ0b3BcIlxyXG5cdFx0XHRcdFx0XHRcdChjbGljayk9XCJ0b2dnbGVFZGl0KClcIlxyXG5cdFx0XHRcdFx0XHQ+XHJcblx0XHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJmYSBmYS1lZGl0XCI+PC9zcGFuPlxyXG5cdFx0XHRcdFx0XHQ8L2E+IC0tPlxyXG5cclxuXHRcdFx0XHRcdFx0PCEtLSBnZW5lcmF0ZSBwZGYtLT5cclxuXHRcdFx0XHRcdFx0PCEtLSA8YVxyXG5cdFx0XHRcdFx0XHRcdGhyZWY9XCJKYXZhc2NyaXB0OjtcIlxyXG5cdFx0XHRcdFx0XHRcdCpuZ0lmPVwiaXNFZGl0KCkgPT09IHRydWVcIlxyXG5cdFx0XHRcdFx0XHRcdGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXNlY29uZGFyeVwiXHJcblx0XHRcdFx0XHRcdFx0dGl0bGU9XCJHZW5lcmFyXCJcclxuXHRcdFx0XHRcdFx0XHRkYXRhLXRvZ2dsZT1cInRvb2x0aXBcIlxyXG5cdFx0XHRcdFx0XHRcdGRhdGEtcGxhY2VtZW50PVwidG9wXCJcclxuXHRcdFx0XHRcdFx0XHQoY2xpY2spPVwiY2hhbmdlKClcIlxyXG5cdFx0XHRcdFx0XHQ+XHJcblx0XHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJmYSBmYS1wbGF5XCI+PC9zcGFuPlxyXG5cdFx0XHRcdFx0XHQ8L2E+IC0tPlxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdDwvZGl2PlxyXG5cclxuXHRcdFx0PGRpdiBjbGFzcz1cImNvbC1tZC01IHB1bGwtcmlnaHRcIiAqbmdJZj1cImlzRW5hYmxlRW1haWwoKSA9PT0gdHJ1ZVwiPlxyXG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCBpbnB1dC1ncm91cC1zbVwiPlxyXG5cdFx0XHRcdFx0PGxhYmVsIGZvcj1cInBkZi12aXN1YWxpemVyLWVtYWlsXCIgY2xhc3M9XCJwZGZcIj5cclxuXHRcdFx0XHRcdFx0RW52aWFyIG1lbnNhamUgYVxyXG5cdFx0XHRcdFx0PC9sYWJlbD5cclxuXHRcdFx0XHRcdDxpbnB1dFxyXG5cdFx0XHRcdFx0XHR0eXBlPVwiZW1haWxcIlxyXG5cdFx0XHRcdFx0XHRpZD1cInBkZi12aXN1YWxpemVyLWVtYWlsXCJcclxuXHRcdFx0XHRcdFx0bmFtZT1cInBkZi12aXN1YWxpemVyLWVtYWlsXCJcclxuXHRcdFx0XHRcdFx0cmVxdWlyZWQ9XCJ0cnVlXCJcclxuXHRcdFx0XHRcdFx0Y2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG5cdFx0XHRcdFx0XHRwbGFjZWhvbGRlcj1cIkNvcnJlbyBlbGVjdHLDs25pY29cIlxyXG5cdFx0XHRcdFx0XHRbKG5nTW9kZWwpXT1cImVtYWlsXCJcclxuXHRcdFx0XHRcdC8+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAtYXBwZW5kXCI+XHJcblx0XHRcdFx0XHRcdDxidXR0b25cclxuXHRcdFx0XHRcdFx0XHRjbGFzcz1cImJ0biBidG4tb3V0bGluZS1zZWNvbmRhcnlcIlxyXG5cdFx0XHRcdFx0XHRcdHR5cGU9XCJidXR0b25cIlxyXG5cdFx0XHRcdFx0XHRcdChjbGljayk9XCJzZW5kRW1haWwoKVwiXHJcblx0XHRcdFx0XHRcdFx0dGl0bGU9XCJFbnZpYXJcIlxyXG5cdFx0XHRcdFx0XHRcdGRhdGEtdG9nZ2xlPVwidG9vbHRpcFwiXHJcblx0XHRcdFx0XHRcdFx0ZGF0YS1wbGFjZW1lbnQ9XCJ0b3BcIlxyXG5cdFx0XHRcdFx0XHQ+XHJcblx0XHRcdFx0XHRcdFx0PGltZ1xyXG5cdFx0XHRcdFx0XHRcdFx0c3JjPVwiaHR0cDovL2dpcm8zNjAuY28vem9uYTM2MC9jb2xmdXR1cm8vUExJQy9pbWcvZXhwb3J0LnN2Z1wiXHJcblx0XHRcdFx0XHRcdFx0XHRhbHQ9XCJcIlxyXG5cdFx0XHRcdFx0XHRcdFx0d2lkdGg9XCIxNlwiXHJcblx0XHRcdFx0XHRcdFx0Lz5cclxuXHRcdFx0XHRcdFx0PC9idXR0b24+XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHQ8L2Rpdj5cclxuXHQ8L2Rpdj5cclxuXHJcblx0PGRpdiBjbGFzcz1cInBkZi12aXN1YWxpemVyLWRhc2hib2FyZFwiPlxyXG5cdFx0PGRpdiBjbGFzcz1cInJvd1wiPlxyXG5cdFx0XHQ8IS0tIDxkaXYgY2xhc3M9XCJjb2wtbWQtNVwiICpuZ0lmPVwiaXNFZGl0KCkgPT09IHRydWVcIj5cclxuXHRcdFx0XHQ8dGV4dGFyZWFcclxuXHRcdFx0XHRcdGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuXHRcdFx0XHRcdFtzdHlsZS5oZWlnaHRdPVwiZ2V0SGVpZ2h0KClcIlxyXG5cdFx0XHRcdFx0c3R5bGU9XCJyZXNpemU6dmVydGljYWw7XCJcclxuXHRcdFx0XHRcdFsobmdNb2RlbCldPVwiaHRtbFwiXHJcblx0XHRcdFx0PjwvdGV4dGFyZWE+XHJcblx0XHRcdDwvZGl2PiAtLT5cclxuXHRcdFx0PGRpdiBbbmdDbGFzc109XCJ7ICdjb2wtbWQtNyc6IGVkaXQgPT09IHRydWUsICdjb2wtbWQtMTInOiAhZWRpdCB9XCI+XHJcblx0XHRcdFx0PGRpdlxyXG5cdFx0XHRcdFx0aWQ9XCJwZGYtc2Nyb2xsYWJsZVwiXHJcblx0XHRcdFx0XHRjbGFzcz1cInBkZi12aXN1YWxpemVyLXNjcm9sbGFibGVcIlxyXG5cdFx0XHRcdFx0W3N0eWxlLmhlaWdodF09XCJnZXRIZWlnaHQoKVwiXHJcblx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0PGNhbnZhcyBpZD1cInBkZi1jYW52YXNcIiBjbGFzcz1cInBkZi12aXN1YWxpemVyLWNhbnZhc1wiPiA8L2NhbnZhcz5cclxuXHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHQ8L2Rpdj5cclxuXHQ8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==