@fundamental-ngx/core 0.44.0-rc.0 → 0.44.0-rc.2

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.
@@ -30,9 +30,9 @@ export class AvatarGroupComponent {
30
30
  return this._avatarGroupItemWidth;
31
31
  }
32
32
  const elementStyles = getComputedStyle(this.mainItems.first._element);
33
- return (this._avatarGroupItemWidth +
34
- parseInt(elementStyles.marginLeft, 10) +
35
- parseInt(elementStyles.marginRight, 10));
33
+ const marginLeft = elementStyles.marginLeft || '0';
34
+ const marginRight = elementStyles.marginRight || '0';
35
+ return this._avatarGroupItemWidth + parseInt(marginLeft, 10) + parseInt(marginRight, 10);
36
36
  }
37
37
  /** @hidden */
38
38
  constructor(_viewportRuler, _rtlService) {
@@ -203,4 +203,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
203
203
  type: HostListener,
204
204
  args: ['keyup', ['$event']]
205
205
  }] } });
206
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2F2YXRhci1ncm91cC9hdmF0YXItZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvYXZhdGFyLWdyb3VwL2F2YXRhci1ncm91cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUlMLFFBQVEsRUFDUixTQUFTLEVBQ1QsU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsR0FBRyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0YsT0FBTyxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3ZDLE9BQU8sRUFBZSxPQUFPLEVBQUUsVUFBVSxFQUFRLE1BQU0sNEJBQTRCLENBQUM7QUFDcEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFFcEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sVUFBVSxDQUFDOzs7O0FBS2xELElBQUksZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDO0FBZXpCLE1BQU0sT0FBTyxvQkFBb0I7SUFzQzdCLGNBQWM7SUFDZCxJQUFJLFdBQVc7UUFDWCxPQUFPLElBQUks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LENBQUM7UUFFSCxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuQyxDQUFDOzhHQTNOUSxvQkFBb0I7a0dBQXBCLG9CQUFvQiw4TEFQbEI7WUFDUDtnQkFDSSxPQUFPLEVBQUUsc0JBQXNCO2dCQUMvQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixDQUFDO2FBQ3REO1NBQ0osb0RBOEJnQix3QkFBd0IsbU1DM0U3Qyw2SUFHQTs7MkZENENhLG9CQUFvQjtrQkFiaEMsU0FBUzsrQkFDSSxpQkFBaUIsaUJBR1osaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsc0JBQXNCOzRCQUMvQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxxQkFBcUIsQ0FBQzt5QkFDdEQ7cUJBQ0o7OzBCQWdGNEQsUUFBUTs0Q0EzRXJFLEVBQUU7c0JBREQsS0FBSztnQkFLTixLQUFLO3NCQURKLEtBQUs7Z0JBS04sSUFBSTtzQkFESCxLQUFLO2dCQUtOLElBQUk7c0JBREgsS0FBSztnQkFLTixTQUFTO3NCQURSLEtBQUs7Z0JBV04sU0FBUztzQkFEUixlQUFlO3VCQUFDLHdCQUF3QixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRTtnQkFLaEUsb0JBQW9CO3NCQURuQixTQUFTO3VCQUFDLHNCQUFzQjtnQkFpRmpDLFlBQVk7c0JBRFgsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBFbGVtZW50UmVmLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWaWV3cG9ydFJ1bGVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgRm9jdXNLZXlNYW5hZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgRE9XTl9BUlJPVywgVVBfQVJST1csIExFRlRfQVJST1csIFJJR0hUX0FSUk9XLCBUQUIgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHsgb2YsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVsYXkgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgQ29sb3JBY2NlbnQsIEtleVV0aWwsIFJ0bFNlcnZpY2UsIFNpemUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBBdmF0YXJHcm91cEl0ZW1EaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvYXZhdGFyLWdyb3VwLWl0ZW0uZGlyZWN0aXZlJztcbmltcG9ydCB7IEF2YXRhckdyb3VwSW50ZXJmYWNlIH0gZnJvbSAnLi9hdmF0YXItZ3JvdXAuaW50ZXJmYWNlJztcbmltcG9ydCB7IEFWQVRBUl9HUk9VUF9DT01QT05FTlQgfSBmcm9tICcuL3Rva2Vucyc7XG5cbmV4cG9ydCB0eXBlIEF2YXRhckdyb3VwVHlwZSA9ICdncm91cCcgfCAnaW5kaXZpZHVhbCc7XG5leHBvcnQgdHlwZSBBdmF0YXJHcm91cE92ZXJmbG93QnV0dG9uQ29sb3IgPSAnbmV1dHJhbCcgfCAncmFuZG9tJyB8IENvbG9yQWNjZW50O1xuXG5sZXQgYXZhdGFyR3JvdXBDb3VudCA9IDA7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmQtYXZhdGFyLWdyb3VwJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYXZhdGFyLWdyb3VwLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9hdmF0YXItZ3JvdXAuY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBBVkFUQVJfR1JPVVBfQ09NUE9ORU5ULFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQXZhdGFyR3JvdXBDb21wb25lbnQpXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIEF2YXRhckdyb3VwQ29tcG9uZW50IGltcGxlbWVudHMgQXZhdGFyR3JvdXBJbnRlcmZhY2UsIE9uQ2hhbmdlcywgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAgIC8qKiBJZCBvZiB0aGUgQXZhdGFyIEdyb3VwLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgaWQgPSBgZmQtYXZhdGFyLWdyb3VwLSR7YXZhdGFyR3JvdXBDb3VudCsrfWA7XG5cbiAgICAvKiogQXBwbHkgdXNlciBjdXN0b20gY2xhc3MuICovXG4gICAgQElucHV0KClcbiAgICBjbGFzczogc3RyaW5nO1xuXG4gICAgLyoqIFRoZSBzaXplIG9mIHRoZSBBdmF0YXIgR3JvdXAuIE9wdGlvbnMgaW5jbHVkZTogKnhzKiwgKnMqLCAqbSosICpsKiBhbmQgKnhsKiAoZGVmYXVsdDogKnMqKS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNpemU6IFNpemUgPSAncyc7XG5cbiAgICAvKiogVGhlIHR5cGUgb2YgdGhlIEF2YXRhciBHcm91cC4gT3B0aW9ucyBpbmNsdWRlOiAqZ3JvdXAqIGFuZCAqaW5kaXZpZHVhbCogKGRlZmF1bHQ6ICpncm91cCopLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgdHlwZTogQXZhdGFyR3JvdXBUeXBlID0gJ2dyb3VwJztcblxuICAgIC8qKiBBcmlhLWxhYmVsIGZvciBBdmF0YXIgR3JvdXAuICovXG4gICAgQElucHV0KClcbiAgICBhcmlhTGFiZWw6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKiogQ291bnRlciBmb3IgYWxsIGF2YXRhcnMuICovXG4gICAgYWxsSXRlbXNDb3VudCA9IDA7XG5cbiAgICAvKiogQ291bnRlciBmb3IgdmlzaWJsZSBpbiBvdmVyZmxvdyBwb3BvdmVyIGF2YXRhcnMuICovXG4gICAgb3ZlcmZsb3dJdGVtc0NvdW50ID0gMDtcblxuICAgIC8qKiBAaGlkZGVuIEF2YXRhciBHcm91cCBpdGVtcy4gKi9cbiAgICBAQ29udGVudENoaWxkcmVuKEF2YXRhckdyb3VwSXRlbURpcmVjdGl2ZSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIG1haW5JdGVtczogUXVlcnlMaXN0PEF2YXRhckdyb3VwSXRlbURpcmVjdGl2ZT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoJ2F2YXRhckdyb3VwQ29udGFpbmVyJylcbiAgICBhdmF0YXJHcm91cENvbnRhaW5lcjogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJvb3RDbGFzc05hbWVzOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuIHwgdW5kZWZpbmVkIHwgbnVsbD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBpc0dyb3VwVHlwZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gJ2dyb3VwJztcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgZ2V0IF9hdmF0YXJHcm91cFdpZHRoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmF2YXRhckdyb3VwQ29udGFpbmVyPy5uYXRpdmVFbGVtZW50Py5vZmZzZXRXaWR0aDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgZ2V0IF9hdmF0YXJHcm91cEl0ZW1XaWR0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5tYWluSXRlbXMuZmlyc3Q/Ll9lbGVtZW50Lm9mZnNldFdpZHRoID8/IDA7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIGdldCBfYXZhdGFyR3JvdXBJdGVtV2l0aE1hcmdpbnNXaWR0aCgpOiBudW1iZXIge1xuICAgICAgICBpZiAoIXRoaXMubWFpbkl0ZW1zLmZpcnN0KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fYXZhdGFyR3JvdXBJdGVtV2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBlbGVtZW50U3R5bGVzID0gZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLm1haW5JdGVtcy5maXJzdC5fZWxlbWVudCk7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuX2F2YXRhckdyb3VwSXRlbVdpZHRoICtcbiAgICAgICAgICAgIHBhcnNlSW50KGVsZW1lbnRTdHlsZXMubWFyZ2luTGVmdCwgMTApICtcbiAgICAgICAgICAgIHBhcnNlSW50KGVsZW1lbnRTdHlsZXMubWFyZ2luUmlnaHQsIDEwKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEZvY3VzS2V5TWFuYWdlciBpbnN0YW5jZSAqL1xuICAgIHByaXZhdGUgX2tleWJvYXJkRXZlbnRzTWFuYWdlcjogRm9jdXNLZXlNYW5hZ2VyPEF2YXRhckdyb3VwSXRlbURpcmVjdGl2ZT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICAgIC8qKiBAaGlkZGVuIGhhbmRsZXMgcnRsIHNlcnZpY2UgKi9cbiAgICBwcml2YXRlIF9kaXI6ICdsdHInIHwgJ3J0bCcgfCBudWxsID0gJ2x0cic7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgX3ZpZXdwb3J0UnVsZXI6IFZpZXdwb3J0UnVsZXIsIEBPcHRpb25hbCgpIHByaXZhdGUgX3J0bFNlcnZpY2U6IFJ0bFNlcnZpY2UpIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb24uYWRkKHRoaXMuX3ZpZXdwb3J0UnVsZXIuY2hhbmdlKCkuc3Vic2NyaWJlKCgpID0+IHRoaXMuX29uUmVzaXplKCkpKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9hc3NpZ25Dc3NDbGFzc2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3Jlc2V0KCk7XG5cbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgICAgICAgIG9mKHRydWUpXG4gICAgICAgICAgICAgICAgLnBpcGUoZGVsYXkoNSkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9jb2xsYXBzZUl0ZW1zKCkpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5fbGlzdGVuRm9ySXRlbUNoYW5nZXMoKTtcbiAgICAgICAgdGhpcy5fc2V0S2V5Ym9hcmRFdmVudHNNYW5hZ2VyKCk7XG4gICAgICAgIHRoaXMuX3N1YnNjcmliZVRvUnRsKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuX2tleWJvYXJkRXZlbnRzTWFuYWdlci5kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdExpc3RlbmVyKCdrZXl1cCcsIFsnJGV2ZW50J10pXG4gICAga2V5VXBIYW5kbGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgVEFCKSkge1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLm1haW5JdGVtcy50b0FycmF5KCkuZmluZEluZGV4KChpdGVtKSA9PiBpdGVtLl9lbGVtZW50ID09PSBldmVudC50YXJnZXQpO1xuICAgICAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2tleWJvYXJkRXZlbnRzTWFuYWdlci5zZXRBY3RpdmVJdGVtKGluZGV4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW0RPV05fQVJST1csIFVQX0FSUk9XLCBMRUZUX0FSUk9XLCBSSUdIVF9BUlJPV10pKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgICAgICAvLyBwYXNzaW5nIHRoZSBldmVudCB0byBrZXkgbWFuYWdlciBzbyB3ZSBnZXQgYSBjaGFuZ2UgZmlyZWRcbiAgICAgICAgICAgIHRoaXMuX2tleWJvYXJkRXZlbnRzTWFuYWdlci5vbktleWRvd24oZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfc2V0QWN0aXZlSXRlbShpdGVtOiBBdmF0YXJHcm91cEl0ZW1EaXJlY3RpdmUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fa2V5Ym9hcmRFdmVudHNNYW5hZ2VyLnNldEFjdGl2ZUl0ZW0oaXRlbSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9vblJlc2l6ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmVzZXQoKTtcbiAgICAgICAgdGhpcy5fY29sbGFwc2VJdGVtcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfcmVzZXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWxsSXRlbXNDb3VudCA9IHRoaXMubWFpbkl0ZW1zLmxlbmd0aDtcbiAgICAgICAgdGhpcy5vdmVyZmxvd0l0ZW1zQ291bnQgPSAwO1xuXG4gICAgICAgIHRoaXMubWFpbkl0ZW1zLmZvckVhY2goKGl0KSA9PiB7XG4gICAgICAgICAgICBpdC5fZWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ2lubGluZS1ibG9jayc7XG4gICAgICAgICAgICBpdC5kaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2NvbGxhcHNlSXRlbXMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGFsbEl0ZW1zQ291bnRlciA9IHRoaXMubWFpbkl0ZW1zPy5sZW5ndGggfHwgMDtcbiAgICAgICAgbGV0IGNvbnRlbnRXaWR0aCA9IDA7XG4gICAgICAgIGxldCBpZHggPSAwO1xuICAgICAgICBjb25zdCBhdmF0YXJHcm91cEl0ZW1XaWR0aCA9IHRoaXMuX2F2YXRhckdyb3VwSXRlbVdpZHRoO1xuICAgICAgICBjb25zdCBhdmF0YXJHcm91cEl0ZW1XaXRoTWFyZ2luc1dpZHRoID0gdGhpcy5fYXZhdGFyR3JvdXBJdGVtV2l0aE1hcmdpbnNXaWR0aDtcblxuICAgICAgICB3aGlsZSAoaWR4IDwgYWxsSXRlbXNDb3VudGVyKSB7XG4gICAgICAgICAgICBjb25zdCBuZXdDb250ZW50V2lkdGggPVxuICAgICAgICAgICAgICAgIGlkeCA9PT0gMCAmJiB0aGlzLmlzR3JvdXBUeXBlXG4gICAgICAgICAgICAgICAgICAgID8gY29udGVudFdpZHRoICsgYXZhdGFyR3JvdXBJdGVtV2lkdGhcbiAgICAgICAgICAgICAgICAgICAgOiBjb250ZW50V2lkdGggKyBhdmF0YXJHcm91cEl0ZW1XaXRoTWFyZ2luc1dpZHRoO1xuXG4gICAgICAgICAgICBpZiAobmV3Q29udGVudFdpZHRoID49IHRoaXMuX2F2YXRhckdyb3VwV2lkdGgpIHtcbiAgICAgICAgICAgICAgICAvLyAtMSBiZWNhdXNlIHRoZSBsYXN0IGVsZW1lbnQgaW4gdGhlIGxvb3Agd2lsbCBiZSByZXBsYWNlZCBieSB0aGUgb3ZlcmZsb3cgYnV0dG9uXG4gICAgICAgICAgICAgICAgY29uc3QgbmV3SWR4ID0gaWR4IC0gMTtcbiAgICAgICAgICAgICAgICB0aGlzLm92ZXJmbG93SXRlbXNDb3VudCA9IGFsbEl0ZW1zQ291bnRlciAtIG5ld0lkeDtcbiAgICAgICAgICAgICAgICBjb25zdCBtYWluSXRlbXNUb0hpZGUgPSB0aGlzLm1haW5JdGVtcy50b0FycmF5KCkuc2xpY2UobmV3SWR4KTtcbiAgICAgICAgICAgICAgICBtYWluSXRlbXNUb0hpZGUuZm9yRWFjaCgoaXQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaXQuX2VsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgICAgICAgICAgICAgICAgaXQuZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnRlbnRXaWR0aCA9IG5ld0NvbnRlbnRXaWR0aDtcbiAgICAgICAgICAgIGlkeCsrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9saXN0ZW5Gb3JJdGVtQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uLmFkZCh0aGlzLm1haW5JdGVtcy5jaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9vblJlc2l6ZSgpKSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9hc3NpZ25Dc3NDbGFzc2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJvb3RDbGFzc05hbWVzID0ge1xuICAgICAgICAgICAgJ2ZkLWF2YXRhci1ncm91cCc6IHRydWUsXG4gICAgICAgICAgICBbYGZkLWF2YXRhci1ncm91cC0tJHt0aGlzLnR5cGV9LXR5cGVgXTogISF0aGlzLnR5cGUsXG4gICAgICAgICAgICBbYGZkLWF2YXRhci1ncm91cC0tJHt0aGlzLnNpemV9YF06ICEhdGhpcy5zaXplLFxuICAgICAgICAgICAgW3RoaXMuY2xhc3NdOiAhIXRoaXMuY2xhc3NcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3NldEtleWJvYXJkRXZlbnRzTWFuYWdlcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fa2V5Ym9hcmRFdmVudHNNYW5hZ2VyPy5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMuX2tleWJvYXJkRXZlbnRzTWFuYWdlciA9IG5ldyBGb2N1c0tleU1hbmFnZXIodGhpcy5tYWluSXRlbXMpXG4gICAgICAgICAgICAud2l0aFdyYXAoKVxuICAgICAgICAgICAgLndpdGhIb3Jpem9udGFsT3JpZW50YXRpb24odGhpcy5fZGlyKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBSdGwgY2hhbmdlIHN1YnNjcmlwdGlvbiAqL1xuICAgIHByaXZhdGUgX3N1YnNjcmliZVRvUnRsKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX3J0bFNlcnZpY2UpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJ0bFN1YiA9IHRoaXMuX3J0bFNlcnZpY2UucnRsLnN1YnNjcmliZSgoaXNSdGwpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2RpciA9IGlzUnRsID8gJ3J0bCcgOiAnbHRyJztcblxuICAgICAgICAgICAgdGhpcy5fa2V5Ym9hcmRFdmVudHNNYW5hZ2VyID0gdGhpcy5fa2V5Ym9hcmRFdmVudHNNYW5hZ2VyLndpdGhIb3Jpem9udGFsT3JpZW50YXRpb24odGhpcy5fZGlyKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uLmFkZChydGxTdWIpO1xuICAgIH1cbn1cbiIsIjxkaXYgI2F2YXRhckdyb3VwQ29udGFpbmVyIFtjbGFzc109XCJyb290Q2xhc3NOYW1lc1wiIFtpZF09XCJpZFwiIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9kaXY+XG4iXX0=
206
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2F2YXRhci1ncm91cC9hdmF0YXItZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvYXZhdGFyLWdyb3VwL2F2YXRhci1ncm91cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUlMLFFBQVEsRUFDUixTQUFTLEVBQ1QsU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsR0FBRyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0YsT0FBTyxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3ZDLE9BQU8sRUFBZSxPQUFPLEVBQUUsVUFBVSxFQUFRLE1BQU0sNEJBQTRCLENBQUM7QUFDcEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFFcEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sVUFBVSxDQUFDOzs7O0FBS2xELElBQUksZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDO0FBZXpCLE1BQU0sT0FBTyxvQkFBb0I7SUFzQzdCLGNBQWM7SUFDZCxJQUFJLFdBQVc7UUFDWCxPQUFPLElBQUks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LENBQUMsc0JBQXNCLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25HLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkMsQ0FBQzs4R0F6TlEsb0JBQW9CO2tHQUFwQixvQkFBb0IsOExBUGxCO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLHNCQUFzQjtnQkFDL0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQzthQUN0RDtTQUNKLG9EQThCZ0Isd0JBQXdCLG1NQzNFN0MsNklBR0E7OzJGRDRDYSxvQkFBb0I7a0JBYmhDLFNBQVM7K0JBQ0ksaUJBQWlCLGlCQUdaLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLHNCQUFzQjs0QkFDL0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUscUJBQXFCLENBQUM7eUJBQ3REO3FCQUNKOzswQkE4RTRELFFBQVE7NENBekVyRSxFQUFFO3NCQURELEtBQUs7Z0JBS04sS0FBSztzQkFESixLQUFLO2dCQUtOLElBQUk7c0JBREgsS0FBSztnQkFLTixJQUFJO3NCQURILEtBQUs7Z0JBS04sU0FBUztzQkFEUixLQUFLO2dCQVdOLFNBQVM7c0JBRFIsZUFBZTt1QkFBQyx3QkFBd0IsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBS2hFLG9CQUFvQjtzQkFEbkIsU0FBUzt1QkFBQyxzQkFBc0I7Z0JBK0VqQyxZQUFZO3NCQURYLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRWxlbWVudFJlZixcbiAgICBmb3J3YXJkUmVmLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBRdWVyeUxpc3QsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVmlld3BvcnRSdWxlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IEZvY3VzS2V5TWFuYWdlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IERPV05fQVJST1csIFVQX0FSUk9XLCBMRUZUX0FSUk9XLCBSSUdIVF9BUlJPVywgVEFCIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7IG9mLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlbGF5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IENvbG9yQWNjZW50LCBLZXlVdGlsLCBSdGxTZXJ2aWNlLCBTaXplIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgQXZhdGFyR3JvdXBJdGVtRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2F2YXRhci1ncm91cC1pdGVtLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBBdmF0YXJHcm91cEludGVyZmFjZSB9IGZyb20gJy4vYXZhdGFyLWdyb3VwLmludGVyZmFjZSc7XG5pbXBvcnQgeyBBVkFUQVJfR1JPVVBfQ09NUE9ORU5UIH0gZnJvbSAnLi90b2tlbnMnO1xuXG5leHBvcnQgdHlwZSBBdmF0YXJHcm91cFR5cGUgPSAnZ3JvdXAnIHwgJ2luZGl2aWR1YWwnO1xuZXhwb3J0IHR5cGUgQXZhdGFyR3JvdXBPdmVyZmxvd0J1dHRvbkNvbG9yID0gJ25ldXRyYWwnIHwgJ3JhbmRvbScgfCBDb2xvckFjY2VudDtcblxubGV0IGF2YXRhckdyb3VwQ291bnQgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkLWF2YXRhci1ncm91cCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2F2YXRhci1ncm91cC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYXZhdGFyLWdyb3VwLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQVZBVEFSX0dST1VQX0NPTVBPTkVOVCxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEF2YXRhckdyb3VwQ29tcG9uZW50KVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBBdmF0YXJHcm91cENvbXBvbmVudCBpbXBsZW1lbnRzIEF2YXRhckdyb3VwSW50ZXJmYWNlLCBPbkNoYW5nZXMsIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICAvKiogSWQgb2YgdGhlIEF2YXRhciBHcm91cC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGlkID0gYGZkLWF2YXRhci1ncm91cC0ke2F2YXRhckdyb3VwQ291bnQrK31gO1xuXG4gICAgLyoqIEFwcGx5IHVzZXIgY3VzdG9tIGNsYXNzLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgY2xhc3M6IHN0cmluZztcblxuICAgIC8qKiBUaGUgc2l6ZSBvZiB0aGUgQXZhdGFyIEdyb3VwLiBPcHRpb25zIGluY2x1ZGU6ICp4cyosICpzKiwgKm0qLCAqbCogYW5kICp4bCogKGRlZmF1bHQ6ICpzKikuICovXG4gICAgQElucHV0KClcbiAgICBzaXplOiBTaXplID0gJ3MnO1xuXG4gICAgLyoqIFRoZSB0eXBlIG9mIHRoZSBBdmF0YXIgR3JvdXAuIE9wdGlvbnMgaW5jbHVkZTogKmdyb3VwKiBhbmQgKmluZGl2aWR1YWwqIChkZWZhdWx0OiAqZ3JvdXAqKS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHR5cGU6IEF2YXRhckdyb3VwVHlwZSA9ICdncm91cCc7XG5cbiAgICAvKiogQXJpYS1sYWJlbCBmb3IgQXZhdGFyIEdyb3VwLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXJpYUxhYmVsOiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIENvdW50ZXIgZm9yIGFsbCBhdmF0YXJzLiAqL1xuICAgIGFsbEl0ZW1zQ291bnQgPSAwO1xuXG4gICAgLyoqIENvdW50ZXIgZm9yIHZpc2libGUgaW4gb3ZlcmZsb3cgcG9wb3ZlciBhdmF0YXJzLiAqL1xuICAgIG92ZXJmbG93SXRlbXNDb3VudCA9IDA7XG5cbiAgICAvKiogQGhpZGRlbiBBdmF0YXIgR3JvdXAgaXRlbXMuICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihBdmF0YXJHcm91cEl0ZW1EaXJlY3RpdmUsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgICBtYWluSXRlbXM6IFF1ZXJ5TGlzdDxBdmF0YXJHcm91cEl0ZW1EaXJlY3RpdmU+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdhdmF0YXJHcm91cENvbnRhaW5lcicpXG4gICAgYXZhdGFyR3JvdXBDb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByb290Q2xhc3NOYW1lczogUmVjb3JkPHN0cmluZywgYm9vbGVhbiB8IHVuZGVmaW5lZCB8IG51bGw+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXQgaXNHcm91cFR5cGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnR5cGUgPT09ICdncm91cCc7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIGdldCBfYXZhdGFyR3JvdXBXaWR0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5hdmF0YXJHcm91cENvbnRhaW5lcj8ubmF0aXZlRWxlbWVudD8ub2Zmc2V0V2lkdGg7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIGdldCBfYXZhdGFyR3JvdXBJdGVtV2lkdGgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWFpbkl0ZW1zLmZpcnN0Py5fZWxlbWVudC5vZmZzZXRXaWR0aCA/PyAwO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBnZXQgX2F2YXRhckdyb3VwSXRlbVdpdGhNYXJnaW5zV2lkdGgoKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKCF0aGlzLm1haW5JdGVtcy5maXJzdCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2F2YXRhckdyb3VwSXRlbVdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZWxlbWVudFN0eWxlcyA9IGdldENvbXB1dGVkU3R5bGUodGhpcy5tYWluSXRlbXMuZmlyc3QuX2VsZW1lbnQpO1xuICAgICAgICBjb25zdCBtYXJnaW5MZWZ0ID0gZWxlbWVudFN0eWxlcy5tYXJnaW5MZWZ0IHx8ICcwJztcbiAgICAgICAgY29uc3QgbWFyZ2luUmlnaHQgPSBlbGVtZW50U3R5bGVzLm1hcmdpblJpZ2h0IHx8ICcwJztcblxuICAgICAgICByZXR1cm4gdGhpcy5fYXZhdGFyR3JvdXBJdGVtV2lkdGggKyBwYXJzZUludChtYXJnaW5MZWZ0LCAxMCkgKyBwYXJzZUludChtYXJnaW5SaWdodCwgMTApO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEZvY3VzS2V5TWFuYWdlciBpbnN0YW5jZSAqL1xuICAgIHByaXZhdGUgX2tleWJvYXJkRXZlbnRzTWFuYWdlcjogRm9jdXNLZXlNYW5hZ2VyPEF2YXRhckdyb3VwSXRlbURpcmVjdGl2ZT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICAgIC8qKiBAaGlkZGVuIGhhbmRsZXMgcnRsIHNlcnZpY2UgKi9cbiAgICBwcml2YXRlIF9kaXI6ICdsdHInIHwgJ3J0bCcgfCBudWxsID0gJ2x0cic7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgX3ZpZXdwb3J0UnVsZXI6IFZpZXdwb3J0UnVsZXIsIEBPcHRpb25hbCgpIHByaXZhdGUgX3J0bFNlcnZpY2U6IFJ0bFNlcnZpY2UpIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb24uYWRkKHRoaXMuX3ZpZXdwb3J0UnVsZXIuY2hhbmdlKCkuc3Vic2NyaWJlKCgpID0+IHRoaXMuX29uUmVzaXplKCkpKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9hc3NpZ25Dc3NDbGFzc2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3Jlc2V0KCk7XG5cbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgICAgICAgIG9mKHRydWUpXG4gICAgICAgICAgICAgICAgLnBpcGUoZGVsYXkoNSkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9jb2xsYXBzZUl0ZW1zKCkpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5fbGlzdGVuRm9ySXRlbUNoYW5nZXMoKTtcbiAgICAgICAgdGhpcy5fc2V0S2V5Ym9hcmRFdmVudHNNYW5hZ2VyKCk7XG4gICAgICAgIHRoaXMuX3N1YnNjcmliZVRvUnRsKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuX2tleWJvYXJkRXZlbnRzTWFuYWdlci5kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdExpc3RlbmVyKCdrZXl1cCcsIFsnJGV2ZW50J10pXG4gICAga2V5VXBIYW5kbGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgVEFCKSkge1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLm1haW5JdGVtcy50b0FycmF5KCkuZmluZEluZGV4KChpdGVtKSA9PiBpdGVtLl9lbGVtZW50ID09PSBldmVudC50YXJnZXQpO1xuICAgICAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2tleWJvYXJkRXZlbnRzTWFuYWdlci5zZXRBY3RpdmVJdGVtKGluZGV4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW0RPV05fQVJST1csIFVQX0FSUk9XLCBMRUZUX0FSUk9XLCBSSUdIVF9BUlJPV10pKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgICAgICAvLyBwYXNzaW5nIHRoZSBldmVudCB0byBrZXkgbWFuYWdlciBzbyB3ZSBnZXQgYSBjaGFuZ2UgZmlyZWRcbiAgICAgICAgICAgIHRoaXMuX2tleWJvYXJkRXZlbnRzTWFuYWdlci5vbktleWRvd24oZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfc2V0QWN0aXZlSXRlbShpdGVtOiBBdmF0YXJHcm91cEl0ZW1EaXJlY3RpdmUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fa2V5Ym9hcmRFdmVudHNNYW5hZ2VyLnNldEFjdGl2ZUl0ZW0oaXRlbSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9vblJlc2l6ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmVzZXQoKTtcbiAgICAgICAgdGhpcy5fY29sbGFwc2VJdGVtcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfcmVzZXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWxsSXRlbXNDb3VudCA9IHRoaXMubWFpbkl0ZW1zLmxlbmd0aDtcbiAgICAgICAgdGhpcy5vdmVyZmxvd0l0ZW1zQ291bnQgPSAwO1xuXG4gICAgICAgIHRoaXMubWFpbkl0ZW1zLmZvckVhY2goKGl0KSA9PiB7XG4gICAgICAgICAgICBpdC5fZWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ2lubGluZS1ibG9jayc7XG4gICAgICAgICAgICBpdC5kaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2NvbGxhcHNlSXRlbXMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGFsbEl0ZW1zQ291bnRlciA9IHRoaXMubWFpbkl0ZW1zPy5sZW5ndGggfHwgMDtcbiAgICAgICAgbGV0IGNvbnRlbnRXaWR0aCA9IDA7XG4gICAgICAgIGxldCBpZHggPSAwO1xuICAgICAgICBjb25zdCBhdmF0YXJHcm91cEl0ZW1XaWR0aCA9IHRoaXMuX2F2YXRhckdyb3VwSXRlbVdpZHRoO1xuICAgICAgICBjb25zdCBhdmF0YXJHcm91cEl0ZW1XaXRoTWFyZ2luc1dpZHRoID0gdGhpcy5fYXZhdGFyR3JvdXBJdGVtV2l0aE1hcmdpbnNXaWR0aDtcblxuICAgICAgICB3aGlsZSAoaWR4IDwgYWxsSXRlbXNDb3VudGVyKSB7XG4gICAgICAgICAgICBjb25zdCBuZXdDb250ZW50V2lkdGggPVxuICAgICAgICAgICAgICAgIGlkeCA9PT0gMCAmJiB0aGlzLmlzR3JvdXBUeXBlXG4gICAgICAgICAgICAgICAgICAgID8gY29udGVudFdpZHRoICsgYXZhdGFyR3JvdXBJdGVtV2lkdGhcbiAgICAgICAgICAgICAgICAgICAgOiBjb250ZW50V2lkdGggKyBhdmF0YXJHcm91cEl0ZW1XaXRoTWFyZ2luc1dpZHRoO1xuXG4gICAgICAgICAgICBpZiAobmV3Q29udGVudFdpZHRoID49IHRoaXMuX2F2YXRhckdyb3VwV2lkdGgpIHtcbiAgICAgICAgICAgICAgICAvLyAtMSBiZWNhdXNlIHRoZSBsYXN0IGVsZW1lbnQgaW4gdGhlIGxvb3Agd2lsbCBiZSByZXBsYWNlZCBieSB0aGUgb3ZlcmZsb3cgYnV0dG9uXG4gICAgICAgICAgICAgICAgY29uc3QgbmV3SWR4ID0gaWR4IC0gMTtcbiAgICAgICAgICAgICAgICB0aGlzLm92ZXJmbG93SXRlbXNDb3VudCA9IGFsbEl0ZW1zQ291bnRlciAtIG5ld0lkeDtcbiAgICAgICAgICAgICAgICBjb25zdCBtYWluSXRlbXNUb0hpZGUgPSB0aGlzLm1haW5JdGVtcy50b0FycmF5KCkuc2xpY2UobmV3SWR4KTtcbiAgICAgICAgICAgICAgICBtYWluSXRlbXNUb0hpZGUuZm9yRWFjaCgoaXQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaXQuX2VsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgICAgICAgICAgICAgICAgaXQuZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnRlbnRXaWR0aCA9IG5ld0NvbnRlbnRXaWR0aDtcbiAgICAgICAgICAgIGlkeCsrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9saXN0ZW5Gb3JJdGVtQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uLmFkZCh0aGlzLm1haW5JdGVtcy5jaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9vblJlc2l6ZSgpKSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9hc3NpZ25Dc3NDbGFzc2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJvb3RDbGFzc05hbWVzID0ge1xuICAgICAgICAgICAgJ2ZkLWF2YXRhci1ncm91cCc6IHRydWUsXG4gICAgICAgICAgICBbYGZkLWF2YXRhci1ncm91cC0tJHt0aGlzLnR5cGV9LXR5cGVgXTogISF0aGlzLnR5cGUsXG4gICAgICAgICAgICBbYGZkLWF2YXRhci1ncm91cC0tJHt0aGlzLnNpemV9YF06ICEhdGhpcy5zaXplLFxuICAgICAgICAgICAgW3RoaXMuY2xhc3NdOiAhIXRoaXMuY2xhc3NcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3NldEtleWJvYXJkRXZlbnRzTWFuYWdlcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fa2V5Ym9hcmRFdmVudHNNYW5hZ2VyPy5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMuX2tleWJvYXJkRXZlbnRzTWFuYWdlciA9IG5ldyBGb2N1c0tleU1hbmFnZXIodGhpcy5tYWluSXRlbXMpXG4gICAgICAgICAgICAud2l0aFdyYXAoKVxuICAgICAgICAgICAgLndpdGhIb3Jpem9udGFsT3JpZW50YXRpb24odGhpcy5fZGlyKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBSdGwgY2hhbmdlIHN1YnNjcmlwdGlvbiAqL1xuICAgIHByaXZhdGUgX3N1YnNjcmliZVRvUnRsKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX3J0bFNlcnZpY2UpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJ0bFN1YiA9IHRoaXMuX3J0bFNlcnZpY2UucnRsLnN1YnNjcmliZSgoaXNSdGwpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2RpciA9IGlzUnRsID8gJ3J0bCcgOiAnbHRyJztcblxuICAgICAgICAgICAgdGhpcy5fa2V5Ym9hcmRFdmVudHNNYW5hZ2VyID0gdGhpcy5fa2V5Ym9hcmRFdmVudHNNYW5hZ2VyLndpdGhIb3Jpem9udGFsT3JpZW50YXRpb24odGhpcy5fZGlyKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uLmFkZChydGxTdWIpO1xuICAgIH1cbn1cbiIsIjxkaXYgI2F2YXRhckdyb3VwQ29udGFpbmVyIFtjbGFzc109XCJyb290Q2xhc3NOYW1lc1wiIFtpZF09XCJpZFwiIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9kaXY+XG4iXX0=
@@ -66,6 +66,9 @@ export class DialogContainerComponent extends DynamicComponentContainer {
66
66
  }
67
67
  /** @hidden Load received content */
68
68
  _loadContent() {
69
+ if (this._cdr.destroyed) {
70
+ return;
71
+ }
69
72
  if (this.childContent instanceof Type) {
70
73
  this._createFromComponent(this.childContent);
71
74
  }
@@ -127,4 +130,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
127
130
  type: HostListener,
128
131
  args: ['@state.done', ['$event']]
129
132
  }] } });
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9kaWFsb2cvZGlhbG9nLWNvbnRhaW5lci9kaWFsb2ctY29udGFpbmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUdILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsZUFBZSxFQUNmLFdBQVcsRUFDWCxZQUFZLEVBQ1osUUFBUSxFQUNSLEtBQUssRUFDTCxXQUFXLEVBQ1gsSUFBSSxFQUNKLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQ0gsYUFBYSxFQUViLGdCQUFnQixFQUNoQix5QkFBeUIsRUFFNUIsTUFBTSw0QkFBNEIsQ0FBQztBQUVwQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBR3BGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZUFBZSxFQUE4QixNQUFNLHFCQUFxQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7OztBQUVqQyw2REFBNkQ7QUFTN0QsTUFBTSxPQUFPLHdCQUNULFNBQVEseUJBQTRDO0lBR3BELHFCQUFxQjtJQUNyQixJQUNJLEtBQUssQ0FBQyxTQUFpQjtRQUN2QixJQUFJLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQztRQUN4QixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBYUQsY0FBYztJQUNkLFlBQ1csWUFBMEIsRUFDekIsVUFBcUIs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QixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDN0QsQ0FBQztJQUVEOzs7T0FHRztJQUNLLGNBQWM7UUFDbEIsTUFBTSxRQUFRLEdBQWUsR0FBRyxFQUFFO1lBQzlCLElBQUksQ0FBQyxlQUFlLEdBQUcsUUFBUSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDOUIsQ0FBQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDbEUsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLFFBQVEsRUFBRTtZQUN0QixLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFO1NBQzFCLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBbEhRLHdCQUF3QjtrR0FBeEIsd0JBQXdCLDhMQUh0QixDQUFDLGdCQUFnQixDQUFDLHdFQWVsQixlQUFlLHVFQWxCaEIsNEVBQTRFLGlTQUUxRSxDQUFDLFVBQVUsQ0FBQzs7QUF3Q3hCO0lBREMsYUFBYTs7OztzRUFHYjsyRkF0Q1Esd0JBQXdCO2tCQVJwQyxTQUFTOytCQUNJLHFCQUFxQixZQUNyQiw0RUFBNEUsY0FFMUUsQ0FBQyxVQUFVLENBQUMsYUFDYixDQUFDLGdCQUFnQixDQUFDLG1CQUNaLHVCQUF1QixDQUFDLE1BQU07ME9BUTNDLEtBQUs7c0JBRFIsS0FBSztnQkFRTixZQUFZO3NCQURYLFNBQVM7dUJBQUMsZUFBZTtnQkFLMUIsZUFBZTtzQkFEZCxXQUFXO3VCQUFDLFFBQVE7Z0JBb0JyQixzQkFBc0IsTUFNdEIsY0FBYztzQkFEYixZQUFZO3VCQUFDLGFBQWEsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50Q2hlY2tlZCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb21wb25lbnRSZWYsXG4gICAgRWxlbWVudFJlZixcbiAgICBFbWJlZGRlZFZpZXdSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdG9yLFxuICAgIElucHV0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFR5cGUsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQW5pbWF0aW9uRXZlbnQgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcblxuaW1wb3J0IHtcbiAgICBhcHBseUNzc0NsYXNzLFxuICAgIENzc0NsYXNzQnVpbGRlcixcbiAgICBEZXN0cm95ZWRTZXJ2aWNlLFxuICAgIER5bmFtaWNDb21wb25lbnRDb250YWluZXIsXG4gICAgTnVsbGFibGVcbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuXG5pbXBvcnQgeyBEaWFsb2dSZWYgfSBmcm9tICcuLi91dGlscy9kaWFsb2ctcmVmLmNsYXNzJztcbmltcG9ydCB7IERpYWxvZ0NvbmZpZyB9IGZyb20gJy4uL3V0aWxzL2RpYWxvZy1jb25maWcuY2xhc3MnO1xuaW1wb3J0IHsgRGlhbG9nRGVmYXVsdENvbXBvbmVudCB9IGZyb20gJy4uL2RpYWxvZy1kZWZhdWx0L2RpYWxvZy1kZWZhdWx0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEaWFsb2dEZWZhdWx0Q29udGVudCB9IGZyb20gJy4uL3V0aWxzL2RpYWxvZy1kZWZhdWx0LWNvbnRlbnQuY2xhc3MnO1xuaW1wb3J0IHsgRGlhbG9nQ29udGVudFR5cGUgfSBmcm9tICcuLi9kaWFsb2cudHlwZXMnO1xuaW1wb3J0IHsgZGlhbG9nRmFkZSB9IGZyb20gJy4uL3V0aWxzL2RpYWxvZy5hbmltYXRpb25zJztcbmltcG9ydCB7IENka1BvcnRhbE91dGxldCwgQ2RrUG9ydGFsT3V0bGV0QXR0YWNoZWRSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuXG4vKiogRGlhbG9nIGNvbnRhaW5lciB3aGVyZSB0aGUgZGlhbG9nIGNvbnRlbnQgaXMgZW1iZWRkZWQuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkLWRpYWxvZy1jb250YWluZXInLFxuICAgIHRlbXBsYXRlOiAnPG5nLXRlbXBsYXRlIChhdHRhY2hlZCk9XCJfYXR0YWNoZWQoJGV2ZW50KVwiIGNka1BvcnRhbE91dGxldD48L25nLXRlbXBsYXRlPicsXG4gICAgc3R5bGVVcmxzOiBbJy4vZGlhbG9nLWNvbnRhaW5lci5jb21wb25lbnQuc2NzcyddLFxuICAgIGFuaW1hdGlvbnM6IFtkaWFsb2dGYWRlXSxcbiAgICBwcm92aWRlcnM6IFtEZXN0cm95ZWRTZXJ2aWNlXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBEaWFsb2dDb250YWluZXJDb21wb25lbnRcbiAgICBleHRlbmRzIER5bmFtaWNDb21wb25lbnRDb250YWluZXI8RGlhbG9nQ29udGVudFR5cGU+XG4gICAgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBBZnRlckNvbnRlbnRDaGVja2VkLCBDc3NDbGFzc0J1aWxkZXJcbntcbiAgICAvKiogQ3VzdG9tIGNsYXNzZXMgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBjbGFzcyh1c2VyQ2xhc3M6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9jbGFzcyA9IHVzZXJDbGFzcztcbiAgICAgICAgdGhpcy5idWlsZENvbXBvbmVudENzc0NsYXNzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKENka1BvcnRhbE91dGxldClcbiAgICBwb3J0YWxPdXRsZXQ6IENka1BvcnRhbE91dGxldDtcblxuICAgIC8qKiBUaGUgc3RhdGUgb2YgdGhlIERpYWxvZyBhbmltYXRpb25zLiAqL1xuICAgIEBIb3N0QmluZGluZygnQHN0YXRlJylcbiAgICBfYW5pbWF0aW9uU3RhdGUgPSAndm9pZCc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2NsYXNzID0gJyc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgZGlhbG9nQ29uZmlnOiBEaWFsb2dDb25maWcsXG4gICAgICAgIHByaXZhdGUgX2RpYWxvZ1JlZjogRGlhbG9nUmVmLFxuICAgICAgICBwcml2YXRlIF9kZXN0cm95JDogRGVzdHJveWVkU2VydmljZSxcbiAgICAgICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBpbmplY3RvcjogSW5qZWN0b3JcbiAgICApIHtcbiAgICAgICAgc3VwZXIoZWxlbWVudFJlZiwgaW5qZWN0b3IsIGNoYW5nZURldGVjdG9yUmVmKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBhcHBseUNzc0NsYXNzXG4gICAgYnVpbGRDb21wb25lbnRDc3NDbGFzcygpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiBbdGhpcy5kaWFsb2dDb25maWcuY29udGFpbmVyQ2xhc3MgPyB0aGlzLmRpYWxvZ0NvbmZpZy5jb250YWluZXJDbGFzcyA6ICcnLCB0aGlzLl9jbGFzc107XG4gICAgfVxuXG4gICAgLyoqIEhhbmRsZSBlbmQgb2YgYW5pbWF0aW9ucywgdXBkYXRpbmcgdGhlIHN0YXRlIG9mIHRoZSBNZXNzYWdlIFRvYXN0LiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ0BzdGF0ZS5kb25lJywgWyckZXZlbnQnXSlcbiAgICBvbkFuaW1hdGlvbkVuZChldmVudDogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgeyB0b1N0YXRlIH0gPSBldmVudDtcblxuICAgICAgICBpZiAodG9TdGF0ZSA9PT0gJ2hpZGRlbicpIHtcbiAgICAgICAgICAgIHRoaXMuX2RpYWxvZ1JlZi5fZW5kQ2xvc2UkLm5leHQoKTtcbiAgICAgICAgICAgIHRoaXMuX2RpYWxvZ1JlZi5fZW5kQ2xvc2UkLmNvbXBsZXRlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9sb2FkQ29udGVudCgpO1xuICAgICAgICAgICAgdGhpcy5fbGlzdGVuT25DbG9zZSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucG9ydGFsT3V0bGV0KSB7XG4gICAgICAgICAgICB0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBfYXR0YWNoZWQoZXZlbnQ6IENka1BvcnRhbE91dGxldEF0dGFjaGVkUmVmKTogdm9pZCB7XG4gICAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIENvbXBvbmVudFJlZikge1xuICAgICAgICAgICAgZXZlbnQuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnQgaW5zdGFuY2VvZiBFbWJlZGRlZFZpZXdSZWYpIHtcbiAgICAgICAgICAgIGV2ZW50Lm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gTG9hZCByZWNlaXZlZCBjb250ZW50ICovXG4gICAgcHJvdGVjdGVkIF9sb2FkQ29udGVudCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuY2hpbGRDb250ZW50IGluc3RhbmNlb2YgVHlwZSkge1xuICAgICAgICAgICAgdGhpcy5fY3JlYXRlRnJvbUNvbXBvbmVudCh0aGlzLmNoaWxkQ29udGVudCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5jaGlsZENvbnRlbnQgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZikge1xuICAgICAgICAgICAgdGhpcy5fY3JlYXRlRnJvbVRlbXBsYXRlKHRoaXMuY2hpbGRDb250ZW50LCB0aGlzLl90ZW1wbGF0ZUNvbnRleHQoKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9jcmVhdGVGcm9tRGVmYXVsdERpYWxvZyh0aGlzLmNoaWxkQ29udGVudCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fYW5pbWF0aW9uU3RhdGUgPSAndmlzaWJsZSc7XG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gUmV0dXJucyBjb250ZXh0IGZvciBlbWJlZGRlZCB0ZW1wbGF0ZSovXG4gICAgcHJpdmF0ZSBfdGVtcGxhdGVDb250ZXh0KCk6IHsgJGltcGxpY2l0OiBEaWFsb2dSZWY7IGRpYWxvZ0NvbmZpZzogRGlhbG9nQ29uZmlnIH0ge1xuICAgICAgICByZXR1cm4geyAkaW1wbGljaXQ6IHRoaXMuX2RpYWxvZ1JlZiwgZGlhbG9nQ29uZmlnOiB0aGlzLmRpYWxvZ0NvbmZpZyB9O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIExvYWQgRGlhbG9nIGNvbXBvbmVudCBmcm9tIHBhc3NlZCBvYmplY3QgKi9cbiAgICBwcml2YXRlIF9jcmVhdGVGcm9tRGVmYXVsdERpYWxvZyhjb25maWc6IE51bGxhYmxlPERpYWxvZ0RlZmF1bHRDb250ZW50Pik6IHZvaWQge1xuICAgICAgICB0aGlzLl9jcmVhdGVGcm9tQ29tcG9uZW50KERpYWxvZ0RlZmF1bHRDb21wb25lbnQpO1xuICAgICAgICBjb25zdCBpbnN0YW5jZSA9ICh0aGlzLl9jb21wb25lbnRSZWYgYXMgQ29tcG9uZW50UmVmPERpYWxvZ0RlZmF1bHRDb21wb25lbnQ+KS5pbnN0YW5jZTtcbiAgICAgICAgaW5zdGFuY2UuX2RlZmF1bHREaWFsb2dDb250ZW50ID0gY29uZmlnO1xuICAgICAgICBpbnN0YW5jZS5fZGVmYXVsdERpYWxvZ0NvbmZpZ3VyYXRpb24gPSB0aGlzLmRpYWxvZ0NvbmZpZztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogV2UgbmVlZCB0byB3YWl0IHVudGlsIGFuaW1hdGlvbiBwbGF5cywgYW5kIHRoZW4gc2VuZCBzaWduYWwgdG8gdGhlIHNlcnZpY2UgdG8gZGVzdHJveSB0aGUgY29tcG9uZW50LlxuICAgICAqL1xuICAgIHByaXZhdGUgX2xpc3Rlbk9uQ2xvc2UoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNhbGxiYWNrOiAoKSA9PiB2b2lkID0gKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fYW5pbWF0aW9uU3RhdGUgPSAnaGlkZGVuJztcbiAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuX2RpYWxvZ1JlZi5hZnRlckNsb3NlZC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpLnN1YnNjcmliZSh7XG4gICAgICAgICAgICBuZXh0OiAoKSA9PiBjYWxsYmFjaygpLFxuICAgICAgICAgICAgZXJyb3I6ICgpID0+IGNhbGxiYWNrKClcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9kaWFsb2cvZGlhbG9nLWNvbnRhaW5lci9kaWFsb2ctY29udGFpbmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUdILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsZUFBZSxFQUNmLFdBQVcsRUFDWCxZQUFZLEVBQ1osUUFBUSxFQUNSLEtBQUssRUFDTCxXQUFXLEVBQ1gsSUFBSSxFQUNKLFNBQVMsRUFFWixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQ0gsYUFBYSxFQUViLGdCQUFnQixFQUNoQix5QkFBeUIsRUFFNUIsTUFBTSw0QkFBNEIsQ0FBQztBQUVwQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBR3BGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZUFBZSxFQUE4QixNQUFNLHFCQUFxQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7OztBQUVqQyw2REFBNkQ7QUFTN0QsTUFBTSxPQUFPLHdCQUNULFNBQVEseUJBQTRDO0lBR3BELHFCQUFxQjtJQUNyQixJQUNJLEtBQUssQ0FBQyxTQUFpQjtRQUN2QixJQUFJLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQztRQUN4QixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBYUQsY0FBYztJQUNkLFlBQ1csWUFBMEIsRUFDekIsVUFBcUIs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ZCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb21wb25lbnRSZWYsXG4gICAgRWxlbWVudFJlZixcbiAgICBFbWJlZGRlZFZpZXdSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdG9yLFxuICAgIElucHV0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFR5cGUsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBbmltYXRpb25FdmVudCB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuXG5pbXBvcnQge1xuICAgIGFwcGx5Q3NzQ2xhc3MsXG4gICAgQ3NzQ2xhc3NCdWlsZGVyLFxuICAgIERlc3Ryb3llZFNlcnZpY2UsXG4gICAgRHluYW1pY0NvbXBvbmVudENvbnRhaW5lcixcbiAgICBOdWxsYWJsZVxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5cbmltcG9ydCB7IERpYWxvZ1JlZiB9IGZyb20gJy4uL3V0aWxzL2RpYWxvZy1yZWYuY2xhc3MnO1xuaW1wb3J0IHsgRGlhbG9nQ29uZmlnIH0gZnJvbSAnLi4vdXRpbHMvZGlhbG9nLWNvbmZpZy5jbGFzcyc7XG5pbXBvcnQgeyBEaWFsb2dEZWZhdWx0Q29tcG9uZW50IH0gZnJvbSAnLi4vZGlhbG9nLWRlZmF1bHQvZGlhbG9nLWRlZmF1bHQuY29tcG9uZW50JztcbmltcG9ydCB7IERpYWxvZ0RlZmF1bHRDb250ZW50IH0gZnJvbSAnLi4vdXRpbHMvZGlhbG9nLWRlZmF1bHQtY29udGVudC5jbGFzcyc7XG5pbXBvcnQgeyBEaWFsb2dDb250ZW50VHlwZSB9IGZyb20gJy4uL2RpYWxvZy50eXBlcyc7XG5pbXBvcnQgeyBkaWFsb2dGYWRlIH0gZnJvbSAnLi4vdXRpbHMvZGlhbG9nLmFuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQ2RrUG9ydGFsT3V0bGV0LCBDZGtQb3J0YWxPdXRsZXRBdHRhY2hlZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5cbi8qKiBEaWFsb2cgY29udGFpbmVyIHdoZXJlIHRoZSBkaWFsb2cgY29udGVudCBpcyBlbWJlZGRlZC4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmQtZGlhbG9nLWNvbnRhaW5lcicsXG4gICAgdGVtcGxhdGU6ICc8bmctdGVtcGxhdGUgKGF0dGFjaGVkKT1cIl9hdHRhY2hlZCgkZXZlbnQpXCIgY2RrUG9ydGFsT3V0bGV0PjwvbmctdGVtcGxhdGU+JyxcbiAgICBzdHlsZVVybHM6IFsnLi9kaWFsb2ctY29udGFpbmVyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgYW5pbWF0aW9uczogW2RpYWxvZ0ZhZGVdLFxuICAgIHByb3ZpZGVyczogW0Rlc3Ryb3llZFNlcnZpY2VdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIERpYWxvZ0NvbnRhaW5lckNvbXBvbmVudFxuICAgIGV4dGVuZHMgRHluYW1pY0NvbXBvbmVudENvbnRhaW5lcjxEaWFsb2dDb250ZW50VHlwZT5cbiAgICBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIEFmdGVyQ29udGVudENoZWNrZWQsIENzc0NsYXNzQnVpbGRlclxue1xuICAgIC8qKiBDdXN0b20gY2xhc3NlcyAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGNsYXNzKHVzZXJDbGFzczogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX2NsYXNzID0gdXNlckNsYXNzO1xuICAgICAgICB0aGlzLmJ1aWxkQ29tcG9uZW50Q3NzQ2xhc3MoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoQ2RrUG9ydGFsT3V0bGV0KVxuICAgIHBvcnRhbE91dGxldDogQ2RrUG9ydGFsT3V0bGV0O1xuXG4gICAgLyoqIFRoZSBzdGF0ZSBvZiB0aGUgRGlhbG9nIGFuaW1hdGlvbnMuICovXG4gICAgQEhvc3RCaW5kaW5nKCdAc3RhdGUnKVxuICAgIF9hbmltYXRpb25TdGF0ZSA9ICd2b2lkJztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfY2xhc3MgPSAnJztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBkaWFsb2dDb25maWc6IERpYWxvZ0NvbmZpZyxcbiAgICAgICAgcHJpdmF0ZSBfZGlhbG9nUmVmOiBEaWFsb2dSZWYsXG4gICAgICAgIHByaXZhdGUgX2Rlc3Ryb3kkOiBEZXN0cm95ZWRTZXJ2aWNlLFxuICAgICAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvclxuICAgICkge1xuICAgICAgICBzdXBlcihlbGVtZW50UmVmLCBpbmplY3RvciwgY2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQGFwcGx5Q3NzQ2xhc3NcbiAgICBidWlsZENvbXBvbmVudENzc0NsYXNzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIFt0aGlzLmRpYWxvZ0NvbmZpZy5jb250YWluZXJDbGFzcyA/IHRoaXMuZGlhbG9nQ29uZmlnLmNvbnRhaW5lckNsYXNzIDogJycsIHRoaXMuX2NsYXNzXTtcbiAgICB9XG5cbiAgICAvKiogSGFuZGxlIGVuZCBvZiBhbmltYXRpb25zLCB1cGRhdGluZyB0aGUgc3RhdGUgb2YgdGhlIE1lc3NhZ2UgVG9hc3QuICovXG4gICAgQEhvc3RMaXN0ZW5lcignQHN0YXRlLmRvbmUnLCBbJyRldmVudCddKVxuICAgIG9uQW5pbWF0aW9uRW5kKGV2ZW50OiBBbmltYXRpb25FdmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCB7IHRvU3RhdGUgfSA9IGV2ZW50O1xuXG4gICAgICAgIGlmICh0b1N0YXRlID09PSAnaGlkZGVuJykge1xuICAgICAgICAgICAgdGhpcy5fZGlhbG9nUmVmLl9lbmRDbG9zZSQubmV4dCgpO1xuICAgICAgICAgICAgdGhpcy5fZGlhbG9nUmVmLl9lbmRDbG9zZSQuY29tcGxldGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2xvYWRDb250ZW50KCk7XG4gICAgICAgICAgICB0aGlzLl9saXN0ZW5PbkNsb3NlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5wb3J0YWxPdXRsZXQpIHtcbiAgICAgICAgICAgIHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIF9hdHRhY2hlZChldmVudDogQ2RrUG9ydGFsT3V0bGV0QXR0YWNoZWRSZWYpOiB2b2lkIHtcbiAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgQ29tcG9uZW50UmVmKSB7XG4gICAgICAgICAgICBldmVudC5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSBlbHNlIGlmIChldmVudCBpbnN0YW5jZW9mIEVtYmVkZGVkVmlld1JlZikge1xuICAgICAgICAgICAgZXZlbnQubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBMb2FkIHJlY2VpdmVkIGNvbnRlbnQgKi9cbiAgICBwcm90ZWN0ZWQgX2xvYWRDb250ZW50KCk6IHZvaWQge1xuICAgICAgICBpZiAoKHRoaXMuX2NkciBhcyBWaWV3UmVmKS5kZXN0cm95ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5jaGlsZENvbnRlbnQgaW5zdGFuY2VvZiBUeXBlKSB7XG4gICAgICAgICAgICB0aGlzLl9jcmVhdGVGcm9tQ29tcG9uZW50KHRoaXMuY2hpbGRDb250ZW50KTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNoaWxkQ29udGVudCBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKSB7XG4gICAgICAgICAgICB0aGlzLl9jcmVhdGVGcm9tVGVtcGxhdGUodGhpcy5jaGlsZENvbnRlbnQsIHRoaXMuX3RlbXBsYXRlQ29udGV4dCgpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2NyZWF0ZUZyb21EZWZhdWx0RGlhbG9nKHRoaXMuY2hpbGRDb250ZW50KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9hbmltYXRpb25TdGF0ZSA9ICd2aXNpYmxlJztcbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBSZXR1cm5zIGNvbnRleHQgZm9yIGVtYmVkZGVkIHRlbXBsYXRlKi9cbiAgICBwcml2YXRlIF90ZW1wbGF0ZUNvbnRleHQoKTogeyAkaW1wbGljaXQ6IERpYWxvZ1JlZjsgZGlhbG9nQ29uZmlnOiBEaWFsb2dDb25maWcgfSB7XG4gICAgICAgIHJldHVybiB7ICRpbXBsaWNpdDogdGhpcy5fZGlhbG9nUmVmLCBkaWFsb2dDb25maWc6IHRoaXMuZGlhbG9nQ29uZmlnIH07XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gTG9hZCBEaWFsb2cgY29tcG9uZW50IGZyb20gcGFzc2VkIG9iamVjdCAqL1xuICAgIHByaXZhdGUgX2NyZWF0ZUZyb21EZWZhdWx0RGlhbG9nKGNvbmZpZzogTnVsbGFibGU8RGlhbG9nRGVmYXVsdENvbnRlbnQ+KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NyZWF0ZUZyb21Db21wb25lbnQoRGlhbG9nRGVmYXVsdENvbXBvbmVudCk7XG4gICAgICAgIGNvbnN0IGluc3RhbmNlID0gKHRoaXMuX2NvbXBvbmVudFJlZiBhcyBDb21wb25lbnRSZWY8RGlhbG9nRGVmYXVsdENvbXBvbmVudD4pLmluc3RhbmNlO1xuICAgICAgICBpbnN0YW5jZS5fZGVmYXVsdERpYWxvZ0NvbnRlbnQgPSBjb25maWc7XG4gICAgICAgIGluc3RhbmNlLl9kZWZhdWx0RGlhbG9nQ29uZmlndXJhdGlvbiA9IHRoaXMuZGlhbG9nQ29uZmlnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBXZSBuZWVkIHRvIHdhaXQgdW50aWwgYW5pbWF0aW9uIHBsYXlzLCBhbmQgdGhlbiBzZW5kIHNpZ25hbCB0byB0aGUgc2VydmljZSB0byBkZXN0cm95IHRoZSBjb21wb25lbnQuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfbGlzdGVuT25DbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY2FsbGJhY2s6ICgpID0+IHZvaWQgPSAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9hbmltYXRpb25TdGF0ZSA9ICdoaWRkZW4nO1xuICAgICAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5fZGlhbG9nUmVmLmFmdGVyQ2xvc2VkLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgIG5leHQ6ICgpID0+IGNhbGxiYWNrKCksXG4gICAgICAgICAgICBlcnJvcjogKCkgPT4gY2FsbGJhY2soKVxuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
@@ -296,11 +296,11 @@ export class GridListItemComponent {
296
296
  }
297
297
  }
298
298
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: GridListItemComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.GridList }], target: i0.ɵɵFactoryTarget.Component }); }
299
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: GridListItemComponent, selector: "fd-grid-list-item", inputs: { id: "id", width: "width", layoutItemPattern: "layoutItemPattern", status: "status", counter: "counter", value: "value", disableToolbarClick: "disableToolbarClick", selected: "selected", noPadding: "noPadding", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", type: "type", state: "state", isNavigated: "isNavigated", title: "title", description: "description" }, outputs: { press: "press", detail: "detail", delete: "delete", navigate: "navigate", draft: "draft", locked: "locked" }, host: { properties: { "style.max-width": "this.width", "style.min-width": "this.width" } }, queries: [{ propertyName: "footerBarComponent", first: true, predicate: GridListItemFooterBarComponent, descendants: true }, { propertyName: "itemToolbarComponent", first: true, predicate: GridListItemToolbarComponent, descendants: true }, { propertyName: "body", first: true, predicate: GridListItemBodyDirective, descendants: true }], viewQueries: [{ propertyName: "_gridListItem", first: true, predicate: ["gridListItem"], descendants: true }], ngImport: i0, template: "<div\n #gridListItem\n [id]=\"id\"\n tabindex=\"0\"\n class=\"fd-grid-list__item\"\n role=\"option\"\n [class.is-navigated]=\"isNavigated\"\n [class.is-selected]=\"!!_selectedItem\"\n [class.fd-grid-list__item--link]=\"\n _isActive && (type === 'active' || type === 'detailsAndActive' || type === 'navigation')\n \"\n [class.fd-grid-list__item--unread]=\"state === 'unread'\"\n [class.fd-grid-list__item--locked]=\"state === 'locked'\"\n [class.fd-grid-list__item--draft]=\"state === 'draft'\"\n [class.fd-grid-list__item--error]=\"state === 'error'\"\n (keydown)=\"_onKeyDown($event)\"\n (click)=\"selectionMode === 'singleSelect' && _singleSelect($event); _onClick($event)\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n (mouseover)=\"_setActive($event, false)\"\n (mouseout)=\"_setActive($event, true)\"\n [attr.aria-selected]=\"selectionMode === 'none' ? null : !!_selectedItem\"\n>\n <span\n *ngIf=\"status\"\n class=\"fd-grid-list__highlight\"\n [class.fd-grid-list__highlight--positive]=\"status === 'success'\"\n [class.fd-grid-list__highlight--critical]=\"status === 'warning'\"\n [class.fd-grid-list__highlight--negative]=\"status === 'error'\"\n [class.fd-grid-list__highlight--neutral]=\"status === 'neutral'\"\n [attr.aria-label]=\"'coreGridList.listItemStatusAriaLabel' | fdTranslate : { status: status }\"\n ></span>\n\n <ng-container *ngIf=\"selectionMode === 'singleSelect'\">\n <ng-container *ngTemplateOutlet=\"radio\"></ng-container>\n </ng-container>\n\n <div\n class=\"fd-toolbar fd-grid-list__item-toolbar\"\n *ngIf=\"\n counter ||\n itemToolbarComponent?.contentTemplateRef ||\n (type && type !== 'inactive' && type !== 'active') ||\n (selectionMode !== 'none' && selectionMode !== 'singleSelect')\n \"\n >\n <ng-container *ngIf=\"selectionMode === 'singleSelectLeft'\">\n <ng-container *ngTemplateOutlet=\"radio\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"selectionMode === 'multiSelect'\">\n <ng-container *ngTemplateOutlet=\"checkbox\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"itemToolbarComponent?.contentTemplateRef\">\n <div class=\"fd-toolbar--extra-content\">\n <ng-container *ngTemplateOutlet=\"itemToolbarComponent.contentTemplateRef\"></ng-container>\n </div>\n </ng-container>\n\n <fd-grid-list-title-bar-spacer></fd-grid-list-title-bar-spacer>\n\n <span\n *ngIf=\"counter\"\n class=\"fd-grid-list__item-counter\"\n [attr.aria-label]=\"'coreGridList.listItemCounterAriaLabel' | fdTranslate : { count: counter }\"\n >{{ counter }}</span\n >\n\n <button\n *ngIf=\"type === 'detail' || type === 'detailsAndActive'\"\n fd-button\n fdType=\"transparent\"\n glyph=\"edit\"\n class=\"fd-grid-list__action-button\"\n [attr.aria-label]=\"'coreGridList.listItemButtonDetailsTitle' | fdTranslate\"\n [title]=\"'coreGridList.listItemButtonDetailsTitle' | fdTranslate\"\n fdCompact\n (click)=\"_onDetail($event)\"\n ></button>\n\n <button\n *ngIf=\"selectionMode === 'delete'\"\n fd-button\n fdType=\"transparent\"\n glyph=\"decline\"\n class=\"fd-grid-list__action-button\"\n [attr.aria-label]=\"'coreGridList.listItemButtonDeleteTitle' | fdTranslate\"\n [title]=\"'coreGridList.listItemButtonDeleteTitle' | fdTranslate\"\n title=\"Delete\"\n fdCompact\n (click)=\"_onDelete($event)\"\n ></button>\n\n <span *ngIf=\"type === 'navigation'\" class=\"fd-grid-list__item-navigation-indicator\">\n <fd-icon glyph=\"navigation-right-arrow\"></fd-icon>\n </span>\n\n <ng-container *ngIf=\"selectionMode === 'singleSelectRight'\">\n <ng-container *ngTemplateOutlet=\"radio\"></ng-container>\n </ng-container>\n </div>\n\n <div class=\"fd-grid-list__item-body\" [class.fd-grid-list__item-body--no-padding]=\"noPadding\">\n <ng-content select=\"[fd-grid-list-item-image]\"></ng-content>\n\n <div *ngIf=\"title || description\" class=\"fd-grid-list__item-header\">\n <h4 *ngIf=\"title\" fd-title>{{ title }}</h4>\n <span *ngIf=\"description\" class=\"fd-grid-list__item-subtitle\">{{ description }}</span>\n </div>\n\n <div *ngIf=\"body?.templateRef\" class=\"fd-grid-list__item-content\">\n <ng-container [ngTemplateOutlet]=\"body.templateRef\"></ng-container>\n </div>\n\n <ng-container *ngIf=\"state || footerBarComponent?.contentTemplateRef\">\n <ng-container *ngTemplateOutlet=\"itemFooter\"></ng-container>\n </ng-container>\n </div>\n</div>\n\n<ng-template #radio>\n <input\n [attr.tabindex]=\"selectionMode === 'singleSelect' ? -1 : 0\"\n type=\"radio\"\n class=\"fd-radio is-compact fd-grid-list__radio-input\"\n [style.display]=\"selectionMode === 'singleSelect' ? 'none' : ''\"\n [id]=\"id + '-radio'\"\n [name]=\"'fd-grid-list-item-toolbar-' + selectionMode\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [value]=\"value\"\n [ngModel]=\"_selectedItem\"\n (ngModelChange)=\"$event && _selectionItem($event)\"\n />\n <label\n class=\"fd-radio__label fd-grid-list__radio-label\"\n [for]=\"id + '-radio'\"\n tabindex=\"-1\"\n (mouseover)=\"_setActive($event, false)\"\n (mouseout)=\"_setActive($event, true)\"\n ></label>\n</ng-template>\n\n<ng-template #checkbox>\n <input\n type=\"checkbox\"\n class=\"fd-checkbox is-compact fd-grid-list__checkbox-input\"\n [id]=\"id + '-checkbox'\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [ngModel]=\"_selectedItem\"\n (click)=\"_checkboxClick($event)\"\n />\n <label class=\"fd-checkbox__label fd-grid-list__checkbox-label\" [for]=\"id + '-checkbox'\" tabindex=\"-1\">\n <span class=\"fd-checkbox__checkmark\" aria-hidden=\"true\"></span>\n </label>\n</ng-template>\n\n<ng-template #itemFooter>\n <div class=\"fd-grid-list__item-body-actions\" *ngIf=\"footerBarComponent || state\">\n <ng-container *ngIf=\"footerBarComponent?.contentTemplateRef\">\n <ng-container *ngTemplateOutlet=\"footerBarComponent.contentTemplateRef\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"!footerBarComponent?.contentTemplateRef && state\">\n <span\n *ngIf=\"state === 'error'\"\n fd-object-status\n status=\"negative\"\n [label]=\"'coreGridList.listItemStatusContainsErrors' | fdTranslate\"\n [attr.aria-label]=\"'coreGridList.listItemStatusContainsErrors' | fdTranslate\"\n ></span>\n\n <button\n class=\"fd-grid-list__action-button\"\n *ngIf=\"state === 'locked'\"\n fd-button\n fdType=\"transparent\"\n glyph=\"private\"\n [label]=\"'coreGridList.listItemStatusLocked' | fdTranslate\"\n [attr.aria-label]=\"'coreGridList.listItemStatusLocked' | fdTranslate\"\n fdCompact\n (click)=\"_clickOnLocked($event)\"\n ></button>\n\n <button\n class=\"fd-grid-list__action-button\"\n *ngIf=\"state === 'draft'\"\n fd-button\n fdType=\"transparent\"\n [attr.aria-label]=\"'coreGridList.listItemStatusDraft' | fdTranslate\"\n [label]=\"'coreGridList.listItemStatusDraft' | fdTranslate\"\n fdCompact\n (click)=\"_clickOnDraft($event)\"\n ></button>\n </ng-container>\n </div>\n</ng-template>\n", styles: [".fd-grid-list .fd-dnd-item.fd-dnd-on-drag{cursor:-o-grabbing;cursor:-ms-grabbing;cursor:grabbing;background-color:transparent}.fd-grid-list .fd-dnd-item .fd-grid-list__item{overflow:visible}.fd-grid-list__item .drop-area__line--vertical{height:100%}.fd-grid-list__item .drop-area__line--vertical.before{left:-.55rem}.fd-grid-list__item .drop-area__line--vertical.after{right:-.55rem}.fd-grid-list__item .fd-checkbox__label{-webkit-user-select:none;user-select:none}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i3.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "directive", type: i5.ContentDensityDirective, selector: "[fdContentDensity]:not([fdCompact]):not([fdCondensed]):not([fdCozy]), [fdCompact]:not([fdContentDensity]):not([fdCondensed]):not([fdCozy]), [fdCondensed]:not([fdContentDensity]):not([fdCompact]):not([fdCozy]), [fdCozy]:not([fdContentDensity]):not([fdCompact]):not([fdCondensed])", inputs: ["fdContentDensity", "fdCompact", "fdCondensed", "fdCozy"], exportAs: ["fdContentDensity"] }, { kind: "component", type: i6.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }, { kind: "component", type: i7.TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: i8.ObjectStatusComponent, selector: "[fd-object-status]", inputs: ["class", "status", "glyph", "label", "glyphAriaLabel", "indicationColor", "clickable", "inverted", "large"] }, { kind: "component", type: i9.GridListTitleBarSpacerComponent, selector: "fd-grid-list-title-bar-spacer" }, { kind: "pipe", type: i10.FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
299
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: GridListItemComponent, selector: "fd-grid-list-item", inputs: { id: "id", width: "width", layoutItemPattern: "layoutItemPattern", status: "status", counter: "counter", value: "value", disableToolbarClick: "disableToolbarClick", selected: "selected", noPadding: "noPadding", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", type: "type", state: "state", isNavigated: "isNavigated", title: "title", description: "description" }, outputs: { press: "press", detail: "detail", delete: "delete", navigate: "navigate", draft: "draft", locked: "locked" }, host: { properties: { "style.max-width": "this.width", "style.min-width": "this.width" } }, queries: [{ propertyName: "footerBarComponent", first: true, predicate: GridListItemFooterBarComponent, descendants: true }, { propertyName: "itemToolbarComponent", first: true, predicate: GridListItemToolbarComponent, descendants: true }, { propertyName: "body", first: true, predicate: GridListItemBodyDirective, descendants: true }], viewQueries: [{ propertyName: "_gridListItem", first: true, predicate: ["gridListItem"], descendants: true }], ngImport: i0, template: "<div\n #gridListItem\n [id]=\"id\"\n tabindex=\"-1\"\n class=\"fd-grid-list__item\"\n role=\"option\"\n [class.is-navigated]=\"isNavigated\"\n [class.is-selected]=\"!!_selectedItem\"\n [class.fd-grid-list__item--link]=\"\n _isActive && (type === 'active' || type === 'detailsAndActive' || type === 'navigation')\n \"\n [class.fd-grid-list__item--unread]=\"state === 'unread'\"\n [class.fd-grid-list__item--locked]=\"state === 'locked'\"\n [class.fd-grid-list__item--draft]=\"state === 'draft'\"\n [class.fd-grid-list__item--error]=\"state === 'error'\"\n (keydown)=\"_onKeyDown($event)\"\n (click)=\"selectionMode === 'singleSelect' && _singleSelect($event); _onClick($event)\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n (mouseover)=\"_setActive($event, false)\"\n (mouseout)=\"_setActive($event, true)\"\n [attr.aria-selected]=\"selectionMode === 'none' ? null : !!_selectedItem\"\n>\n <span\n *ngIf=\"status\"\n class=\"fd-grid-list__highlight\"\n [class.fd-grid-list__highlight--positive]=\"status === 'success'\"\n [class.fd-grid-list__highlight--critical]=\"status === 'warning'\"\n [class.fd-grid-list__highlight--negative]=\"status === 'error'\"\n [class.fd-grid-list__highlight--neutral]=\"status === 'neutral'\"\n [attr.aria-label]=\"'coreGridList.listItemStatusAriaLabel' | fdTranslate : { status: status }\"\n ></span>\n\n <ng-container *ngIf=\"selectionMode === 'singleSelect'\">\n <ng-container *ngTemplateOutlet=\"radio\"></ng-container>\n </ng-container>\n\n <div\n class=\"fd-toolbar fd-grid-list__item-toolbar\"\n *ngIf=\"\n counter ||\n itemToolbarComponent?.contentTemplateRef ||\n (type && type !== 'inactive' && type !== 'active') ||\n (selectionMode !== 'none' && selectionMode !== 'singleSelect')\n \"\n >\n <ng-container *ngIf=\"selectionMode === 'singleSelectLeft'\">\n <ng-container *ngTemplateOutlet=\"radio\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"selectionMode === 'multiSelect'\">\n <ng-container *ngTemplateOutlet=\"checkbox\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"itemToolbarComponent?.contentTemplateRef\">\n <div class=\"fd-toolbar--extra-content\">\n <ng-container *ngTemplateOutlet=\"itemToolbarComponent.contentTemplateRef\"></ng-container>\n </div>\n </ng-container>\n\n <fd-grid-list-title-bar-spacer></fd-grid-list-title-bar-spacer>\n\n <span\n *ngIf=\"counter\"\n class=\"fd-grid-list__item-counter\"\n [attr.aria-label]=\"'coreGridList.listItemCounterAriaLabel' | fdTranslate : { count: counter }\"\n >{{ counter }}</span\n >\n\n <button\n *ngIf=\"type === 'detail' || type === 'detailsAndActive'\"\n fd-button\n fdType=\"transparent\"\n glyph=\"edit\"\n class=\"fd-grid-list__action-button\"\n [attr.aria-label]=\"'coreGridList.listItemButtonDetailsTitle' | fdTranslate\"\n [title]=\"'coreGridList.listItemButtonDetailsTitle' | fdTranslate\"\n fdCompact\n (click)=\"_onDetail($event)\"\n ></button>\n\n <button\n *ngIf=\"selectionMode === 'delete'\"\n fd-button\n fdType=\"transparent\"\n glyph=\"decline\"\n class=\"fd-grid-list__action-button\"\n [attr.aria-label]=\"'coreGridList.listItemButtonDeleteTitle' | fdTranslate\"\n [title]=\"'coreGridList.listItemButtonDeleteTitle' | fdTranslate\"\n title=\"Delete\"\n fdCompact\n (click)=\"_onDelete($event)\"\n ></button>\n\n <span *ngIf=\"type === 'navigation'\" class=\"fd-grid-list__item-navigation-indicator\">\n <fd-icon glyph=\"navigation-right-arrow\"></fd-icon>\n </span>\n\n <ng-container *ngIf=\"selectionMode === 'singleSelectRight'\">\n <ng-container *ngTemplateOutlet=\"radio\"></ng-container>\n </ng-container>\n </div>\n\n <div class=\"fd-grid-list__item-body\" [class.fd-grid-list__item-body--no-padding]=\"noPadding\">\n <ng-content select=\"[fd-grid-list-item-image]\"></ng-content>\n\n <div *ngIf=\"title || description\" class=\"fd-grid-list__item-header\">\n <h4 *ngIf=\"title\" fd-title>{{ title }}</h4>\n <span *ngIf=\"description\" class=\"fd-grid-list__item-subtitle\">{{ description }}</span>\n </div>\n\n <div *ngIf=\"body?.templateRef\" class=\"fd-grid-list__item-content\">\n <ng-container [ngTemplateOutlet]=\"body.templateRef\"></ng-container>\n </div>\n\n <ng-container *ngIf=\"state || footerBarComponent?.contentTemplateRef\">\n <ng-container *ngTemplateOutlet=\"itemFooter\"></ng-container>\n </ng-container>\n </div>\n</div>\n\n<ng-template #radio>\n <input\n [attr.tabindex]=\"selectionMode === 'singleSelect' ? -1 : 0\"\n type=\"radio\"\n class=\"fd-radio is-compact fd-grid-list__radio-input\"\n [style.display]=\"selectionMode === 'singleSelect' ? 'none' : ''\"\n [id]=\"id + '-radio'\"\n [name]=\"'fd-grid-list-item-toolbar-' + selectionMode\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [value]=\"value\"\n [ngModel]=\"_selectedItem\"\n (ngModelChange)=\"$event && _selectionItem($event)\"\n />\n <label\n class=\"fd-radio__label fd-grid-list__radio-label\"\n [for]=\"id + '-radio'\"\n tabindex=\"-1\"\n (mouseover)=\"_setActive($event, false)\"\n (mouseout)=\"_setActive($event, true)\"\n ></label>\n</ng-template>\n\n<ng-template #checkbox>\n <input\n type=\"checkbox\"\n class=\"fd-checkbox is-compact fd-grid-list__checkbox-input\"\n [id]=\"id + '-checkbox'\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [ngModel]=\"_selectedItem\"\n (click)=\"_checkboxClick($event)\"\n />\n <label class=\"fd-checkbox__label fd-grid-list__checkbox-label\" [for]=\"id + '-checkbox'\" tabindex=\"-1\">\n <span class=\"fd-checkbox__checkmark\" aria-hidden=\"true\"></span>\n </label>\n</ng-template>\n\n<ng-template #itemFooter>\n <div class=\"fd-grid-list__item-body-actions\" *ngIf=\"footerBarComponent || state\">\n <ng-container *ngIf=\"footerBarComponent?.contentTemplateRef\">\n <ng-container *ngTemplateOutlet=\"footerBarComponent.contentTemplateRef\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"!footerBarComponent?.contentTemplateRef && state\">\n <span\n *ngIf=\"state === 'error'\"\n fd-object-status\n status=\"negative\"\n [label]=\"'coreGridList.listItemStatusContainsErrors' | fdTranslate\"\n [attr.aria-label]=\"'coreGridList.listItemStatusContainsErrors' | fdTranslate\"\n ></span>\n\n <button\n class=\"fd-grid-list__action-button\"\n *ngIf=\"state === 'locked'\"\n fd-button\n fdType=\"transparent\"\n glyph=\"private\"\n [label]=\"'coreGridList.listItemStatusLocked' | fdTranslate\"\n [attr.aria-label]=\"'coreGridList.listItemStatusLocked' | fdTranslate\"\n fdCompact\n (click)=\"_clickOnLocked($event)\"\n ></button>\n\n <button\n class=\"fd-grid-list__action-button\"\n *ngIf=\"state === 'draft'\"\n fd-button\n fdType=\"transparent\"\n [attr.aria-label]=\"'coreGridList.listItemStatusDraft' | fdTranslate\"\n [label]=\"'coreGridList.listItemStatusDraft' | fdTranslate\"\n fdCompact\n (click)=\"_clickOnDraft($event)\"\n ></button>\n </ng-container>\n </div>\n</ng-template>\n", styles: [".fd-grid-list .fd-dnd-item.fd-dnd-on-drag{cursor:-o-grabbing;cursor:-ms-grabbing;cursor:grabbing;background-color:transparent}.fd-grid-list .fd-dnd-item .fd-grid-list__item{overflow:visible}.fd-grid-list__item .drop-area__line--vertical{height:100%}.fd-grid-list__item .drop-area__line--vertical.before{left:-.55rem}.fd-grid-list__item .drop-area__line--vertical.after{right:-.55rem}.fd-grid-list__item .fd-checkbox__label{-webkit-user-select:none;user-select:none}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i3.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "directive", type: i5.ContentDensityDirective, selector: "[fdContentDensity]:not([fdCompact]):not([fdCondensed]):not([fdCozy]), [fdCompact]:not([fdContentDensity]):not([fdCondensed]):not([fdCozy]), [fdCondensed]:not([fdContentDensity]):not([fdCompact]):not([fdCozy]), [fdCozy]:not([fdContentDensity]):not([fdCompact]):not([fdCondensed])", inputs: ["fdContentDensity", "fdCompact", "fdCondensed", "fdCozy"], exportAs: ["fdContentDensity"] }, { kind: "component", type: i6.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }, { kind: "component", type: i7.TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: i8.ObjectStatusComponent, selector: "[fd-object-status]", inputs: ["class", "status", "glyph", "label", "glyphAriaLabel", "indicationColor", "clickable", "inverted", "large"] }, { kind: "component", type: i9.GridListTitleBarSpacerComponent, selector: "fd-grid-list-title-bar-spacer" }, { kind: "pipe", type: i10.FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
300
300
  }
301
301
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: GridListItemComponent, decorators: [{
302
302
  type: Component,
303
- args: [{ selector: 'fd-grid-list-item', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div\n #gridListItem\n [id]=\"id\"\n tabindex=\"0\"\n class=\"fd-grid-list__item\"\n role=\"option\"\n [class.is-navigated]=\"isNavigated\"\n [class.is-selected]=\"!!_selectedItem\"\n [class.fd-grid-list__item--link]=\"\n _isActive && (type === 'active' || type === 'detailsAndActive' || type === 'navigation')\n \"\n [class.fd-grid-list__item--unread]=\"state === 'unread'\"\n [class.fd-grid-list__item--locked]=\"state === 'locked'\"\n [class.fd-grid-list__item--draft]=\"state === 'draft'\"\n [class.fd-grid-list__item--error]=\"state === 'error'\"\n (keydown)=\"_onKeyDown($event)\"\n (click)=\"selectionMode === 'singleSelect' && _singleSelect($event); _onClick($event)\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n (mouseover)=\"_setActive($event, false)\"\n (mouseout)=\"_setActive($event, true)\"\n [attr.aria-selected]=\"selectionMode === 'none' ? null : !!_selectedItem\"\n>\n <span\n *ngIf=\"status\"\n class=\"fd-grid-list__highlight\"\n [class.fd-grid-list__highlight--positive]=\"status === 'success'\"\n [class.fd-grid-list__highlight--critical]=\"status === 'warning'\"\n [class.fd-grid-list__highlight--negative]=\"status === 'error'\"\n [class.fd-grid-list__highlight--neutral]=\"status === 'neutral'\"\n [attr.aria-label]=\"'coreGridList.listItemStatusAriaLabel' | fdTranslate : { status: status }\"\n ></span>\n\n <ng-container *ngIf=\"selectionMode === 'singleSelect'\">\n <ng-container *ngTemplateOutlet=\"radio\"></ng-container>\n </ng-container>\n\n <div\n class=\"fd-toolbar fd-grid-list__item-toolbar\"\n *ngIf=\"\n counter ||\n itemToolbarComponent?.contentTemplateRef ||\n (type && type !== 'inactive' && type !== 'active') ||\n (selectionMode !== 'none' && selectionMode !== 'singleSelect')\n \"\n >\n <ng-container *ngIf=\"selectionMode === 'singleSelectLeft'\">\n <ng-container *ngTemplateOutlet=\"radio\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"selectionMode === 'multiSelect'\">\n <ng-container *ngTemplateOutlet=\"checkbox\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"itemToolbarComponent?.contentTemplateRef\">\n <div class=\"fd-toolbar--extra-content\">\n <ng-container *ngTemplateOutlet=\"itemToolbarComponent.contentTemplateRef\"></ng-container>\n </div>\n </ng-container>\n\n <fd-grid-list-title-bar-spacer></fd-grid-list-title-bar-spacer>\n\n <span\n *ngIf=\"counter\"\n class=\"fd-grid-list__item-counter\"\n [attr.aria-label]=\"'coreGridList.listItemCounterAriaLabel' | fdTranslate : { count: counter }\"\n >{{ counter }}</span\n >\n\n <button\n *ngIf=\"type === 'detail' || type === 'detailsAndActive'\"\n fd-button\n fdType=\"transparent\"\n glyph=\"edit\"\n class=\"fd-grid-list__action-button\"\n [attr.aria-label]=\"'coreGridList.listItemButtonDetailsTitle' | fdTranslate\"\n [title]=\"'coreGridList.listItemButtonDetailsTitle' | fdTranslate\"\n fdCompact\n (click)=\"_onDetail($event)\"\n ></button>\n\n <button\n *ngIf=\"selectionMode === 'delete'\"\n fd-button\n fdType=\"transparent\"\n glyph=\"decline\"\n class=\"fd-grid-list__action-button\"\n [attr.aria-label]=\"'coreGridList.listItemButtonDeleteTitle' | fdTranslate\"\n [title]=\"'coreGridList.listItemButtonDeleteTitle' | fdTranslate\"\n title=\"Delete\"\n fdCompact\n (click)=\"_onDelete($event)\"\n ></button>\n\n <span *ngIf=\"type === 'navigation'\" class=\"fd-grid-list__item-navigation-indicator\">\n <fd-icon glyph=\"navigation-right-arrow\"></fd-icon>\n </span>\n\n <ng-container *ngIf=\"selectionMode === 'singleSelectRight'\">\n <ng-container *ngTemplateOutlet=\"radio\"></ng-container>\n </ng-container>\n </div>\n\n <div class=\"fd-grid-list__item-body\" [class.fd-grid-list__item-body--no-padding]=\"noPadding\">\n <ng-content select=\"[fd-grid-list-item-image]\"></ng-content>\n\n <div *ngIf=\"title || description\" class=\"fd-grid-list__item-header\">\n <h4 *ngIf=\"title\" fd-title>{{ title }}</h4>\n <span *ngIf=\"description\" class=\"fd-grid-list__item-subtitle\">{{ description }}</span>\n </div>\n\n <div *ngIf=\"body?.templateRef\" class=\"fd-grid-list__item-content\">\n <ng-container [ngTemplateOutlet]=\"body.templateRef\"></ng-container>\n </div>\n\n <ng-container *ngIf=\"state || footerBarComponent?.contentTemplateRef\">\n <ng-container *ngTemplateOutlet=\"itemFooter\"></ng-container>\n </ng-container>\n </div>\n</div>\n\n<ng-template #radio>\n <input\n [attr.tabindex]=\"selectionMode === 'singleSelect' ? -1 : 0\"\n type=\"radio\"\n class=\"fd-radio is-compact fd-grid-list__radio-input\"\n [style.display]=\"selectionMode === 'singleSelect' ? 'none' : ''\"\n [id]=\"id + '-radio'\"\n [name]=\"'fd-grid-list-item-toolbar-' + selectionMode\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [value]=\"value\"\n [ngModel]=\"_selectedItem\"\n (ngModelChange)=\"$event && _selectionItem($event)\"\n />\n <label\n class=\"fd-radio__label fd-grid-list__radio-label\"\n [for]=\"id + '-radio'\"\n tabindex=\"-1\"\n (mouseover)=\"_setActive($event, false)\"\n (mouseout)=\"_setActive($event, true)\"\n ></label>\n</ng-template>\n\n<ng-template #checkbox>\n <input\n type=\"checkbox\"\n class=\"fd-checkbox is-compact fd-grid-list__checkbox-input\"\n [id]=\"id + '-checkbox'\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [ngModel]=\"_selectedItem\"\n (click)=\"_checkboxClick($event)\"\n />\n <label class=\"fd-checkbox__label fd-grid-list__checkbox-label\" [for]=\"id + '-checkbox'\" tabindex=\"-1\">\n <span class=\"fd-checkbox__checkmark\" aria-hidden=\"true\"></span>\n </label>\n</ng-template>\n\n<ng-template #itemFooter>\n <div class=\"fd-grid-list__item-body-actions\" *ngIf=\"footerBarComponent || state\">\n <ng-container *ngIf=\"footerBarComponent?.contentTemplateRef\">\n <ng-container *ngTemplateOutlet=\"footerBarComponent.contentTemplateRef\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"!footerBarComponent?.contentTemplateRef && state\">\n <span\n *ngIf=\"state === 'error'\"\n fd-object-status\n status=\"negative\"\n [label]=\"'coreGridList.listItemStatusContainsErrors' | fdTranslate\"\n [attr.aria-label]=\"'coreGridList.listItemStatusContainsErrors' | fdTranslate\"\n ></span>\n\n <button\n class=\"fd-grid-list__action-button\"\n *ngIf=\"state === 'locked'\"\n fd-button\n fdType=\"transparent\"\n glyph=\"private\"\n [label]=\"'coreGridList.listItemStatusLocked' | fdTranslate\"\n [attr.aria-label]=\"'coreGridList.listItemStatusLocked' | fdTranslate\"\n fdCompact\n (click)=\"_clickOnLocked($event)\"\n ></button>\n\n <button\n class=\"fd-grid-list__action-button\"\n *ngIf=\"state === 'draft'\"\n fd-button\n fdType=\"transparent\"\n [attr.aria-label]=\"'coreGridList.listItemStatusDraft' | fdTranslate\"\n [label]=\"'coreGridList.listItemStatusDraft' | fdTranslate\"\n fdCompact\n (click)=\"_clickOnDraft($event)\"\n ></button>\n </ng-container>\n </div>\n</ng-template>\n", styles: [".fd-grid-list .fd-dnd-item.fd-dnd-on-drag{cursor:-o-grabbing;cursor:-ms-grabbing;cursor:grabbing;background-color:transparent}.fd-grid-list .fd-dnd-item .fd-grid-list__item{overflow:visible}.fd-grid-list__item .drop-area__line--vertical{height:100%}.fd-grid-list__item .drop-area__line--vertical.before{left:-.55rem}.fd-grid-list__item .drop-area__line--vertical.after{right:-.55rem}.fd-grid-list__item .fd-checkbox__label{-webkit-user-select:none;user-select:none}\n"] }]
303
+ args: [{ selector: 'fd-grid-list-item', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div\n #gridListItem\n [id]=\"id\"\n tabindex=\"-1\"\n class=\"fd-grid-list__item\"\n role=\"option\"\n [class.is-navigated]=\"isNavigated\"\n [class.is-selected]=\"!!_selectedItem\"\n [class.fd-grid-list__item--link]=\"\n _isActive && (type === 'active' || type === 'detailsAndActive' || type === 'navigation')\n \"\n [class.fd-grid-list__item--unread]=\"state === 'unread'\"\n [class.fd-grid-list__item--locked]=\"state === 'locked'\"\n [class.fd-grid-list__item--draft]=\"state === 'draft'\"\n [class.fd-grid-list__item--error]=\"state === 'error'\"\n (keydown)=\"_onKeyDown($event)\"\n (click)=\"selectionMode === 'singleSelect' && _singleSelect($event); _onClick($event)\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n (mouseover)=\"_setActive($event, false)\"\n (mouseout)=\"_setActive($event, true)\"\n [attr.aria-selected]=\"selectionMode === 'none' ? null : !!_selectedItem\"\n>\n <span\n *ngIf=\"status\"\n class=\"fd-grid-list__highlight\"\n [class.fd-grid-list__highlight--positive]=\"status === 'success'\"\n [class.fd-grid-list__highlight--critical]=\"status === 'warning'\"\n [class.fd-grid-list__highlight--negative]=\"status === 'error'\"\n [class.fd-grid-list__highlight--neutral]=\"status === 'neutral'\"\n [attr.aria-label]=\"'coreGridList.listItemStatusAriaLabel' | fdTranslate : { status: status }\"\n ></span>\n\n <ng-container *ngIf=\"selectionMode === 'singleSelect'\">\n <ng-container *ngTemplateOutlet=\"radio\"></ng-container>\n </ng-container>\n\n <div\n class=\"fd-toolbar fd-grid-list__item-toolbar\"\n *ngIf=\"\n counter ||\n itemToolbarComponent?.contentTemplateRef ||\n (type && type !== 'inactive' && type !== 'active') ||\n (selectionMode !== 'none' && selectionMode !== 'singleSelect')\n \"\n >\n <ng-container *ngIf=\"selectionMode === 'singleSelectLeft'\">\n <ng-container *ngTemplateOutlet=\"radio\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"selectionMode === 'multiSelect'\">\n <ng-container *ngTemplateOutlet=\"checkbox\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"itemToolbarComponent?.contentTemplateRef\">\n <div class=\"fd-toolbar--extra-content\">\n <ng-container *ngTemplateOutlet=\"itemToolbarComponent.contentTemplateRef\"></ng-container>\n </div>\n </ng-container>\n\n <fd-grid-list-title-bar-spacer></fd-grid-list-title-bar-spacer>\n\n <span\n *ngIf=\"counter\"\n class=\"fd-grid-list__item-counter\"\n [attr.aria-label]=\"'coreGridList.listItemCounterAriaLabel' | fdTranslate : { count: counter }\"\n >{{ counter }}</span\n >\n\n <button\n *ngIf=\"type === 'detail' || type === 'detailsAndActive'\"\n fd-button\n fdType=\"transparent\"\n glyph=\"edit\"\n class=\"fd-grid-list__action-button\"\n [attr.aria-label]=\"'coreGridList.listItemButtonDetailsTitle' | fdTranslate\"\n [title]=\"'coreGridList.listItemButtonDetailsTitle' | fdTranslate\"\n fdCompact\n (click)=\"_onDetail($event)\"\n ></button>\n\n <button\n *ngIf=\"selectionMode === 'delete'\"\n fd-button\n fdType=\"transparent\"\n glyph=\"decline\"\n class=\"fd-grid-list__action-button\"\n [attr.aria-label]=\"'coreGridList.listItemButtonDeleteTitle' | fdTranslate\"\n [title]=\"'coreGridList.listItemButtonDeleteTitle' | fdTranslate\"\n title=\"Delete\"\n fdCompact\n (click)=\"_onDelete($event)\"\n ></button>\n\n <span *ngIf=\"type === 'navigation'\" class=\"fd-grid-list__item-navigation-indicator\">\n <fd-icon glyph=\"navigation-right-arrow\"></fd-icon>\n </span>\n\n <ng-container *ngIf=\"selectionMode === 'singleSelectRight'\">\n <ng-container *ngTemplateOutlet=\"radio\"></ng-container>\n </ng-container>\n </div>\n\n <div class=\"fd-grid-list__item-body\" [class.fd-grid-list__item-body--no-padding]=\"noPadding\">\n <ng-content select=\"[fd-grid-list-item-image]\"></ng-content>\n\n <div *ngIf=\"title || description\" class=\"fd-grid-list__item-header\">\n <h4 *ngIf=\"title\" fd-title>{{ title }}</h4>\n <span *ngIf=\"description\" class=\"fd-grid-list__item-subtitle\">{{ description }}</span>\n </div>\n\n <div *ngIf=\"body?.templateRef\" class=\"fd-grid-list__item-content\">\n <ng-container [ngTemplateOutlet]=\"body.templateRef\"></ng-container>\n </div>\n\n <ng-container *ngIf=\"state || footerBarComponent?.contentTemplateRef\">\n <ng-container *ngTemplateOutlet=\"itemFooter\"></ng-container>\n </ng-container>\n </div>\n</div>\n\n<ng-template #radio>\n <input\n [attr.tabindex]=\"selectionMode === 'singleSelect' ? -1 : 0\"\n type=\"radio\"\n class=\"fd-radio is-compact fd-grid-list__radio-input\"\n [style.display]=\"selectionMode === 'singleSelect' ? 'none' : ''\"\n [id]=\"id + '-radio'\"\n [name]=\"'fd-grid-list-item-toolbar-' + selectionMode\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [value]=\"value\"\n [ngModel]=\"_selectedItem\"\n (ngModelChange)=\"$event && _selectionItem($event)\"\n />\n <label\n class=\"fd-radio__label fd-grid-list__radio-label\"\n [for]=\"id + '-radio'\"\n tabindex=\"-1\"\n (mouseover)=\"_setActive($event, false)\"\n (mouseout)=\"_setActive($event, true)\"\n ></label>\n</ng-template>\n\n<ng-template #checkbox>\n <input\n type=\"checkbox\"\n class=\"fd-checkbox is-compact fd-grid-list__checkbox-input\"\n [id]=\"id + '-checkbox'\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [ngModel]=\"_selectedItem\"\n (click)=\"_checkboxClick($event)\"\n />\n <label class=\"fd-checkbox__label fd-grid-list__checkbox-label\" [for]=\"id + '-checkbox'\" tabindex=\"-1\">\n <span class=\"fd-checkbox__checkmark\" aria-hidden=\"true\"></span>\n </label>\n</ng-template>\n\n<ng-template #itemFooter>\n <div class=\"fd-grid-list__item-body-actions\" *ngIf=\"footerBarComponent || state\">\n <ng-container *ngIf=\"footerBarComponent?.contentTemplateRef\">\n <ng-container *ngTemplateOutlet=\"footerBarComponent.contentTemplateRef\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"!footerBarComponent?.contentTemplateRef && state\">\n <span\n *ngIf=\"state === 'error'\"\n fd-object-status\n status=\"negative\"\n [label]=\"'coreGridList.listItemStatusContainsErrors' | fdTranslate\"\n [attr.aria-label]=\"'coreGridList.listItemStatusContainsErrors' | fdTranslate\"\n ></span>\n\n <button\n class=\"fd-grid-list__action-button\"\n *ngIf=\"state === 'locked'\"\n fd-button\n fdType=\"transparent\"\n glyph=\"private\"\n [label]=\"'coreGridList.listItemStatusLocked' | fdTranslate\"\n [attr.aria-label]=\"'coreGridList.listItemStatusLocked' | fdTranslate\"\n fdCompact\n (click)=\"_clickOnLocked($event)\"\n ></button>\n\n <button\n class=\"fd-grid-list__action-button\"\n *ngIf=\"state === 'draft'\"\n fd-button\n fdType=\"transparent\"\n [attr.aria-label]=\"'coreGridList.listItemStatusDraft' | fdTranslate\"\n [label]=\"'coreGridList.listItemStatusDraft' | fdTranslate\"\n fdCompact\n (click)=\"_clickOnDraft($event)\"\n ></button>\n </ng-container>\n </div>\n</ng-template>\n", styles: [".fd-grid-list .fd-dnd-item.fd-dnd-on-drag{cursor:-o-grabbing;cursor:-ms-grabbing;cursor:grabbing;background-color:transparent}.fd-grid-list .fd-dnd-item .fd-grid-list__item{overflow:visible}.fd-grid-list__item .drop-area__line--vertical{height:100%}.fd-grid-list__item .drop-area__line--vertical.before{left:-.55rem}.fd-grid-list__item .drop-area__line--vertical.after{right:-.55rem}.fd-grid-list__item .fd-checkbox__label{-webkit-user-select:none;user-select:none}\n"] }]
304
304
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.GridList }]; }, propDecorators: { id: [{
305
305
  type: Input
306
306
  }], width: [{
@@ -364,4 +364,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
364
364
  type: ContentChild,
365
365
  args: [GridListItemBodyDirective]
366
366
  }] } });
367
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1saXN0LWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvZ3JpZC1saXN0L2NvbXBvbmVudHMvZ3JpZC1saXN0LWl0ZW0vZ3JpZC1saXN0LWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvZ3JpZC1saXN0L2NvbXBvbmVudHMvZ3JpZC1saXN0LWl0ZW0vZ3JpZC1saXN0LWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHckQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDM0YsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDeEUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDMUcsT0FBTyxFQUF5Qix3QkFBd0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzFHLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGtFQUFrRSxDQUFDO0FBQ2xILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUscUJBQXFC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QUs7c0JBSEosS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyxpQkFBaUI7O3NCQUM3QixXQUFXO3VCQUFDLGlCQUFpQjtnQkFRMUIsaUJBQWlCO3NCQURwQixLQUFLO2dCQVVOLE1BQU07c0JBREwsS0FBSztnQkFLTixPQUFPO3NCQUROLEtBQUs7Z0JBUU4sS0FBSztzQkFESixLQUFLO2dCQUtOLG1CQUFtQjtzQkFEbEIsS0FBSztnQkFLRixRQUFRO3NCQURYLEtBQUs7Z0JBY04sU0FBUztzQkFEUixLQUFLO2dCQUtOLFNBQVM7c0JBRFIsS0FBSztnQkFLTixjQUFjO3NCQURiLEtBQUs7Z0JBY0YsSUFBSTtzQkFEUCxLQUFLO2dCQWdCTixLQUFLO3NCQURKLEtBQUs7Z0JBUU4sV0FBVztzQkFEVixLQUFLO2dCQUtOLEtBQUs7c0JBREosS0FBSztnQkFLTixXQUFXO3NCQURWLEtBQUs7Z0JBUU4sS0FBSztzQkFESixNQUFNO2dCQVFQLE1BQU07c0JBREwsTUFBTTtnQkFRUCxNQUFNO3NCQURMLE1BQU07Z0JBUVAsUUFBUTtzQkFEUCxNQUFNO2dCQVFQLEtBQUs7c0JBREosTUFBTTtnQkFRUCxNQUFNO3NCQURMLE1BQU07Z0JBS1AsYUFBYTtzQkFEWixTQUFTO3VCQUFDLGNBQWM7Z0JBcUJ6QixrQkFBa0I7c0JBRGpCLFlBQVk7dUJBQUMsOEJBQThCO2dCQUs1QyxvQkFBb0I7c0JBRG5CLFlBQVk7dUJBQUMsNEJBQTRCO2dCQUsxQyxJQUFJO3NCQURILFlBQVk7dUJBQUMseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dCxcbiAgICBSZW5kZXJlcjIsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBFTlRFUiwgU1BBQ0UgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuXG5pbXBvcnQgeyBLZXlVdGlsIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5cbmltcG9ydCB7IEdyaWRMaXN0SXRlbUJvZHlEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2dyaWQtbGlzdC1pdGVtLWJvZHkuZGlyZWN0aXZlJztcbmltcG9ydCB7IHBhcnNlTGF5b3V0UGF0dGVybiB9IGZyb20gJy4uLy4uL2hlbHBlcnMvcGFyc2UtbGF5b3V0LXBhdHRlcm4nO1xuaW1wb3J0IHsgR3JpZExpc3RJdGVtVG9vbGJhckNvbXBvbmVudCB9IGZyb20gJy4uL2dyaWQtbGlzdC1pdGVtLXRvb2xiYXIvZ3JpZC1saXN0LWl0ZW0tdG9vbGJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgR3JpZExpc3RTZWxlY3Rpb25Nb2RlLCBHcmlkTGlzdFNlbGVjdGlvbkFjdGlvbnMgfSBmcm9tICcuLi8uLi9tb2RlbHMvZ3JpZC1saXN0LXNlbGVjdGlvbi5tb2RlbHMnO1xuaW1wb3J0IHsgR3JpZExpc3RJdGVtRm9vdGVyQmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vZ3JpZC1saXN0LWl0ZW0tZm9vdGVyLWJhci9ncmlkLWxpc3QtaXRlbS1mb290ZXItYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHcmlkTGlzdCB9IGZyb20gJy4vLi4vZ3JpZC1saXN0L2dyaWQtbGlzdC1iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuXG5sZXQgZ3JpZExpc3RJdGVtVW5pcXVlSWQgPSAwO1xuXG5leHBvcnQgaW50ZXJmYWNlIEdyaWRMaXN0SXRlbU91dHB1dEV2ZW50PFQ+IHtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgICB2YWx1ZT86IFQ7XG59XG5cbmV4cG9ydCB0eXBlIEdyaWRMaXN0SXRlbVR5cGUgPSAnaW5hY3RpdmUnIHwgJ2FjdGl2ZScgfCAnZGV0YWlsJyB8ICdkZXRhaWxzQW5kQWN0aXZlJyB8ICduYXZpZ2F0aW9uJztcbmV4cG9ydCB0eXBlIEdyaWRMaXN0SXRlbVN0YXRlID0gJ3VucmVhZCcgfCAnbG9ja2VkJyB8ICdlcnJvcicgfCAnZHJhZnQnO1xuZXhwb3J0IHR5cGUgR3JpZExpc3RJdGVtU3RhdHVzID0gJ3N1Y2Nlc3MnIHwgJ3dhcm5pbmcnIHwgJ2Vycm9yJyB8ICduZXV0cmFsJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZC1ncmlkLWxpc3QtaXRlbScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2dyaWQtbGlzdC1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9ncmlkLWxpc3QtaXRlbS5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgR3JpZExpc3RJdGVtQ29tcG9uZW50PFQ+IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICAvKiogaWQgZm9yIHRoZSBFbGVtZW50ICovXG4gICAgQElucHV0KClcbiAgICBpZCA9IGBmZC1ncmlkLWxpc3QtaXRlbS0ke2dyaWRMaXN0SXRlbVVuaXF1ZUlkKyt9YDtcblxuICAgIC8qKiB3aWR0aCBvZiB0aGUgZWxlbWVudCAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5tYXgtd2lkdGgnKVxuICAgIEBIb3N0QmluZGluZygnc3R5bGUubWluLXdpZHRoJylcbiAgICB3aWR0aDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogc3BlY2lmeSB0aGUgY2VsbCBsYXlvdXQgaW4gdGhlIGZvcm1hdCBgWExuLUxuLU1uLVNuYCB3aGVyZSBuIGlzXG4gICAgICogdGhlIG51bWJlciBvZiBvY2N1cGllZCBjb2x1bW5zIGFuZCBuIGNhbiBiZSBkaWZmZXJlbnQgZm9yIGVhY2ggc2l6ZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBsYXlvdXRJdGVtUGF0dGVybih2YWx1ZTogTnVsbGFibGU8c3RyaW5nPikge1xuICAgICAgICB0aGlzLmdyaWRMYXlvdXRDbGFzc2VzID0gdmFsdWUgPyBwYXJzZUxheW91dFBhdHRlcm4odmFsdWUsIGZhbHNlKSA6IFtdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlZmluZXMgdGhlIHN0YXR1cyBvZiBHcmlkIExpc3QgSXRlbVxuICAgICAqIChTdGF0dXNlczogc3VjY2VzcyB8IHdhcm5pbmcgfCBlcnJvciB8IG5ldXRyYWwpXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzdGF0dXM/OiBHcmlkTGlzdEl0ZW1TdGF0dXM7XG5cbiAgICAvKiogU2V0cyBudW1iZXIgb2Ygc3ViIGl0ZW1zICovXG4gICAgQElucHV0KClcbiAgICBjb3VudGVyOiBOdWxsYWJsZTxudW1iZXI+O1xuXG4gICAgLyoqXG4gICAgICogVmFsdWUgZmllbGQgc3RvcmVzIGluZm9ybWF0aW9uIGZvciByYWRpbyBidXR0b24gdmFsdWUsIGNoZWNrYm94IGJ1dHRvbiBhbmQgZm9yIEdyaWRMaXN0U2VsZWN0aW9uRXZlbnRcbiAgICAgKiBUaGUgZmllbGQgaXMgbWFuZGF0b3J5IGZvciBtb2RlcyBsaWtlIHNpbmdsZVNlbGVjdCwgc2luZ2xlU2VsZWN0TGVmdCwgc2luZ2xlU2VsZWN0UmlnaHQgb3IgbXVsdGlTZWxlY3RcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHZhbHVlPzogVDtcblxuICAgIC8qKiBXaGV0aGVyIGNsaWNrIG9uIHRoZSBjdXN0b20gdG9vbGJhciBpcyBkaXNhYmxlZCAqL1xuICAgIEBJbnB1dCgpXG4gICAgZGlzYWJsZVRvb2xiYXJDbGljayA9IGZhbHNlO1xuXG4gICAgLyoqIEFsbG93cyBhbiBpdGVtIHRvIGJlIHNlbGVjdGVkIHByb2dyYW1tYXRpY2FsbHkgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBzZWxlY3RlZCh2YWx1ZTogTnVsbGFibGU8Ym9vbGVhbj4pIHtcbiAgICAgICAgdGhpcy5fc2VsZWN0ZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cblxuICAgIGdldCBzZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2VsZWN0ZWQgPSBmYWxzZTtcblxuICAgIC8qKiBSZW1vdmUgdGhlIHBhZGRpbmcgZnJvbSB0aGUgSXRlbSBib2R5ICovXG4gICAgQElucHV0KClcbiAgICBub1BhZGRpbmcgPSBmYWxzZTtcblxuICAgIC8qKiBTZXRzIHRoZSBgYXJpYS1sYWJlbGAgYXR0cmlidXRlIHRvIHRoZSBlbGVtZW50LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXJpYUxhYmVsOiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIFNldHMgdGhlIGBhcmlhLWxhYmVsYCBhdHRyaWJ1dGUgdG8gdGhlIGVsZW1lbnQuICovXG4gICAgQElucHV0KClcbiAgICBhcmlhTGFiZWxsZWRCeTogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKlxuICAgICAqIERlZmluZXMgdGhlIHR5cGUgb2YgR3JpZCBMaXN0IEl0ZW1cbiAgICAgKiBUeXBlczpcbiAgICAgKiAtIGFjdGl2ZTogaW5kaWNhdGVzIHRoYXQgdGhlIGl0ZW0gaXMgY2xpY2thYmxlIHZpYSBhY3RpdmUgZmVlZGJhY2sgd2hlbiBpdGVtIGlzIHByZXNzZWRcbiAgICAgKiAtIGRldGFpbDogZW5hYmxlcyBkZXRhaWwgYnV0dG9uIG9mIHRoZSBsaXN0IGl0ZW0gdGhhdCBmaXJlcyBldmVudC5cbiAgICAgKiAtIGRldGFpbHNBbmRBY3RpdmU6IGVuYWJsZXMgXCJkZXRhaWxcIiBhbmQgXCJhY3RpdmVcIiBlbnVtZXJhdGlvbnMgdG9nZXRoZXJcbiAgICAgKiAtIGluYWN0aXZlOiBpbmRpY2F0ZXMgdGhlIGxpc3QgaXRlbSBkb2VzIG5vdCBoYXZlIGFueSBhY3RpdmUgZmVlZGJhY2sgd2hlbiBpdGVtIGlzIHByZXNzZWRcbiAgICAgKiAtIG5hdmlnYXRpb246IGluZGljYXRlcyB0aGUgbGlzdCBpdGVtIGlzIG5hdmlnYWJsZSB0byBzaG93IGV4dHJhIGluZm9ybWF0aW9uIGFib3V0IHRoZSBpdGVtXG4gICAgICogRGVmYXVsdDogaW5hY3RpdmVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB0eXBlKHZhbHVlOiBOdWxsYWJsZTxHcmlkTGlzdEl0ZW1UeXBlPikge1xuICAgICAgICB0aGlzLl90eXBlID0gdmFsdWUgPz8gJ2luYWN0aXZlJztcbiAgICB9XG4gICAgZ2V0IHR5cGUoKTogR3JpZExpc3RJdGVtVHlwZSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90eXBlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdHlwZTogR3JpZExpc3RJdGVtVHlwZSA9ICdpbmFjdGl2ZSc7XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBzdGF0ZSBvZiBHcmlkIExpc3QgSXRlbVxuICAgICAqIChTdGF0ZXM6IHVucmVhZCB8IGVycm9yIHwgbG9ja2VkIHwgZHJhZnQpXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzdGF0ZT86IEdyaWRMaXN0SXRlbVN0YXRlO1xuXG4gICAgLyoqXG4gICAgICogVGhlIG5hdmlnYXRlZCBzdGF0ZSBvZiB0aGUgbGlzdCBpdGVtLlxuICAgICAqIElmIHNldCB0byB0cnVlLCBhIG5hdmlnYXRpb24gaW5kaWNhdG9yIGlzIGRpc3BsYXllZCBhdCB0aGUgZW5kIG9mIHRoZSBsaXN0IGl0ZW0uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBpc05hdmlnYXRlZCA9IGZhbHNlO1xuXG4gICAgLyoqIFRpdGxlIG9mIHRoZSBpdGVtICovXG4gICAgQElucHV0KClcbiAgICB0aXRsZTogc3RyaW5nO1xuXG4gICAgLyoqIERlc2NyaXB0aW9uIG9mIHRoZSBpdGVtICovXG4gICAgQElucHV0KClcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogRXZlbnQgaXMgdGhyb3duLCB3aGVuIHR5cGUgaXMgYWN0aXZlXG4gICAgICogYW5kIGl0ZW0gaXMgcHJlc3NlZFxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHByZXNzID0gbmV3IEV2ZW50RW1pdHRlcjxHcmlkTGlzdEl0ZW1PdXRwdXRFdmVudDxUPj4oKTtcblxuICAgIC8qKlxuICAgICAqIEV2ZW50IGlzIHRocm93biwgd2hlbiB0eXBlIGlzIGRldGFpbCBvciBkZXRhaWxzQW5kQWN0aXZlXG4gICAgICogYW5kIERldGFpbCBidXR0b24gd2FzIHByZXNzZWRcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBkZXRhaWwgPSBuZXcgRXZlbnRFbWl0dGVyPEdyaWRMaXN0SXRlbU91dHB1dEV2ZW50PFQ+PigpO1xuXG4gICAgLyoqXG4gICAgICogRXZlbnQgaXMgdGhyb3duLCB3aGVuIG1vZGUgZGVsZXRlXG4gICAgICogYW5kIERlbGV0ZSBidXR0b24gd2FzIHByZXNzZWRcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBkZWxldGUgPSBuZXcgRXZlbnRFbWl0dGVyPEdyaWRMaXN0SXRlbU91dHB1dEV2ZW50PFQ+PigpO1xuXG4gICAgLyoqXG4gICAgICogRXZlbnQgaXMgdGhyb3duLCB3aGVuIHR5cGUgaXMgbmF2aWdhdGlvblxuICAgICAqIGFuZCBOYXZpZ2F0ZSBidXR0b24gd2FzIHByZXNzZWRcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBuYXZpZ2F0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8R3JpZExpc3RJdGVtT3V0cHV0RXZlbnQ8VD4+KCk7XG5cbiAgICAvKipcbiAgICAgKiBFdmVudCBpcyB0aHJvd24sIHdoZW4gc3RhdGUgaXMgZXJyb3IsIG5vdCB1c2VkIEdyaWRMaXN0SXRlbUZvb3RlckJhckNvbXBvbmVudFxuICAgICAqIGFuZCBEcmFmdCBidXR0b24gd2FzIHByZXNzZWRcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBkcmFmdCA9IG5ldyBFdmVudEVtaXR0ZXI8R3JpZExpc3RJdGVtT3V0cHV0RXZlbnQ8VD4+KCk7XG5cbiAgICAvKipcbiAgICAgKiBFdmVudCBpcyB0aHJvd24sIHdoZW4gc3RhdGUgaXMgbG9ja2VkLCBub3QgdXNlZCBHcmlkTGlzdEl0ZW1Gb290ZXJCYXJDb21wb25lbnRcbiAgICAgKiBhbmQgTG9ja2VkIGJ1dHRvbiB3YXMgcHJlc3NlZFxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGxvY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8R3JpZExpc3RJdGVtT3V0cHV0RXZlbnQ8VD4+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoJ2dyaWRMaXN0SXRlbScpXG4gICAgX2dyaWRMaXN0SXRlbTogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgICAvKiogQGhpZGRlblxuICAgICAqIFRoZSBhY3RpdmUgc3RhdGUgb2YgdGhlIGxpc3QgaXRlbS5cbiAgICAgKiBJZiBzZXQgdG8gdHJ1ZSwgdGhlIHdob2xlIGNhcmQgaGFzIGFjdGl2ZSBzdGF0ZS4gQmVjb21lcyBmYWxzZSBvbmx5IHdoZW4gdGhlIEVkaXQgYnV0dG9uIGlzIGNsaWNrZWQuXG4gICAgICovXG4gICAgX2lzQWN0aXZlID0gdHJ1ZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgc2V0IGdyaWRMYXlvdXRDbGFzc2VzKHZhbHVlOiBzdHJpbmdbXSkge1xuICAgICAgICB0aGlzLl9yZW1vdmVDbGFzc2VzTmFtZXModGhpcy5fZ3JpZExheW91dENsYXNzZXMpO1xuICAgICAgICB0aGlzLl9ncmlkTGF5b3V0Q2xhc3NlcyA9IHZhbHVlO1xuICAgICAgICB0aGlzLl9hZGRDbGFzc2VzTmFtZXModGhpcy5fZ3JpZExheW91dENsYXNzZXMpO1xuICAgIH1cbiAgICBnZXQgZ3JpZExheW91dENsYXNzZXMoKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZ3JpZExheW91dENsYXNzZXM7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkKEdyaWRMaXN0SXRlbUZvb3RlckJhckNvbXBvbmVudClcbiAgICBmb290ZXJCYXJDb21wb25lbnQ6IEdyaWRMaXN0SXRlbUZvb3RlckJhckNvbXBvbmVudDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZChHcmlkTGlzdEl0ZW1Ub29sYmFyQ29tcG9uZW50KVxuICAgIGl0ZW1Ub29sYmFyQ29tcG9uZW50OiBHcmlkTGlzdEl0ZW1Ub29sYmFyQ29tcG9uZW50O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkKEdyaWRMaXN0SXRlbUJvZHlEaXJlY3RpdmUpXG4gICAgYm9keTogR3JpZExpc3RJdGVtQm9keURpcmVjdGl2ZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3NlbGVjdGVkSXRlbT86IFQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNldCBzZWxlY3Rpb25Nb2RlKG1vZGU6IEdyaWRMaXN0U2VsZWN0aW9uTW9kZSB8IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLl9zZWxlY3Rpb25Nb2RlID0gbW9kZTtcblxuICAgICAgICBpZiAobW9kZSAhPT0gJ2RlbGV0ZScgJiYgbW9kZSAhPT0gJ25vbmUnICYmICF0aGlzLnZhbHVlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0dyaWQgTGlzdCBJdGVtIG11c3QgaGF2ZSBbdmFsdWVdIGF0dHJpYnV0ZS4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkICYmIHRoaXMudmFsdWUgJiYgdGhpcy5faW5kZXggIT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3QgYWN0aW9uID0gdGhpcy5zZWxlY3Rpb25Nb2RlICE9PSAnbXVsdGlTZWxlY3QnID8gbnVsbCA6IEdyaWRMaXN0U2VsZWN0aW9uQWN0aW9ucy5BREQ7XG5cbiAgICAgICAgICAgIHRoaXMuX2dyaWRMaXN0LnNldFNlbGVjdGVkSXRlbSh0aGlzLnZhbHVlLCB0aGlzLl9pbmRleCwgYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gICAgZ2V0IHNlbGVjdGlvbk1vZGUoKTogR3JpZExpc3RTZWxlY3Rpb25Nb2RlIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdGlvbk1vZGU7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfaW5kZXg/OiBudW1iZXI7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3NlbGVjdGlvbk1vZGU/OiBHcmlkTGlzdFNlbGVjdGlvbk1vZGU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dyaWRMYXlvdXRDbGFzc2VzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2NkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfcmVuZGVyOiBSZW5kZXJlcjIsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2dyaWRMaXN0OiBHcmlkTGlzdDxUPlxuICAgICkge1xuICAgICAgICBjb25zdCBzZWxlY3RlZEl0ZW1zU3ViID0gdGhpcy5fZ3JpZExpc3QuX3NlbGVjdGVkSXRlbXMkLnN1YnNjcmliZSgoaXRlbXMpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkSXRlbSA9IGl0ZW1zLnNlbGVjdGlvbi5maW5kKChpdGVtKSA9PiBpdGVtID09PSB0aGlzLnZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKHNlbGVjdGVkSXRlbXNTdWIpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKiogRm9jdXMgZ3JpZCBsaXN0IGl0ZW0gcHJvZ3JhbW1hdGljYWxseSAqL1xuICAgIGZvY3VzKG9wdGlvbnM/OiBGb2N1c09wdGlvbnMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZ3JpZExpc3RJdGVtPy5uYXRpdmVFbGVtZW50LmZvY3VzKG9wdGlvbnMpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3NldEFjdGl2ZShldmVudDogTW91c2VFdmVudCwgaXNBY3RpdmU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2lzRWxlbWVudENhbkJlQ2xpY2tlZChldmVudCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2lzQWN0aXZlID0gaXNBY3RpdmU7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfc2luZ2xlU2VsZWN0KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9wcmV2ZW50RGVmYXVsdChldmVudCk7XG5cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLl9zZWxlY3RlZEl0ZW0gIT09ICd1bmRlZmluZWQnIHx8ICF0aGlzLnZhbHVlIHx8IHRoaXMuX2luZGV4ID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2dyaWRMaXN0LnNldFNlbGVjdGVkSXRlbSh0aGlzLnZhbHVlLCB0aGlzLl9pbmRleCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfY2hlY2tib3hDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjaGVja2VkID0gKDxIVE1MSW5wdXRFbGVtZW50PmV2ZW50LnRhcmdldCkuY2hlY2tlZDtcbiAgICAgICAgdGhpcy5fc2VsZWN0aW9uSXRlbShjaGVja2VkLCBldmVudCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfc2VsZWN0aW9uSXRlbSh2YWx1ZTogYm9vbGVhbiB8IG51bWJlciB8IFQsIGV2ZW50PzogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMudmFsdWUgfHwgdGhpcy5faW5kZXggPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFjdGlvbiA9XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbk1vZGUgIT09ICdtdWx0aVNlbGVjdCdcbiAgICAgICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgICAgICA6IHZhbHVlIHx8IHZhbHVlID09PSAwXG4gICAgICAgICAgICAgICAgPyBHcmlkTGlzdFNlbGVjdGlvbkFjdGlvbnMuQUREXG4gICAgICAgICAgICAgICAgOiBHcmlkTGlzdFNlbGVjdGlvbkFjdGlvbnMuUkVNT1ZFO1xuXG4gICAgICAgIHRoaXMuX2dyaWRMaXN0LnNldFNlbGVjdGVkSXRlbSh0aGlzLnZhbHVlLCB0aGlzLl9pbmRleCwgYWN0aW9uLCBldmVudCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfb25EZXRhaWwoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcHJldmVudERlZmF1bHQoZXZlbnQpO1xuXG4gICAgICAgIHRoaXMuZGV0YWlsLmVtaXQodGhpcy5fb3V0cHV0RXZlbnRWYWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfb25OYXZpZ2F0ZShldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9wcmV2ZW50RGVmYXVsdChldmVudCk7XG5cbiAgICAgICAgdGhpcy5uYXZpZ2F0ZS5lbWl0KHRoaXMuX291dHB1dEV2ZW50VmFsdWUpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX29uRGVsZXRlKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3ByZXZlbnREZWZhdWx0KGV2ZW50KTtcblxuICAgICAgICB0aGlzLmRlbGV0ZS5lbWl0KHRoaXMuX291dHB1dEV2ZW50VmFsdWUpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2NsaWNrT25EcmFmdChldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9wcmV2ZW50RGVmYXVsdChldmVudCk7XG5cbiAgICAgICAgdGhpcy5kcmFmdC5lbWl0KHRoaXMuX291dHB1dEV2ZW50VmFsdWUpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2NsaWNrT25Mb2NrZWQoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcHJldmVudERlZmF1bHQoZXZlbnQpO1xuXG4gICAgICAgIHRoaXMubG9ja2VkLmVtaXQodGhpcy5fb3V0cHV0RXZlbnRWYWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfb25DbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2lzRWxlbWVudENhbkJlQ2xpY2tlZChldmVudCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnR5cGUgIT09ICdhY3RpdmUnICYmIHRoaXMudHlwZSAhPT0gJ2RldGFpbHNBbmRBY3RpdmUnICYmIHRoaXMudHlwZSAhPT0gJ25hdmlnYXRpb24nKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy50eXBlID09PSAnbmF2aWdhdGlvbicpIHtcbiAgICAgICAgICAgIHRoaXMuX29uTmF2aWdhdGUoZXZlbnQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5wcmVzcy5lbWl0KHRoaXMuX291dHB1dEV2ZW50VmFsdWUpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX29uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTERpdkVsZW1lbnQ7XG5cbiAgICAgICAgY29uc3QgaXNTZWxlY3Rpb25LZXlEb3duID0gS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIFtFTlRFUiwgU1BBQ0VdKTtcblxuICAgICAgICBpZiAoaXNTZWxlY3Rpb25LZXlEb3duICYmIHRoaXMuc2VsZWN0aW9uTW9kZSA9PT0gJ25vbmUnKSB7XG4gICAgICAgICAgICB0aGlzLnByZXNzLmVtaXQodGhpcy5fb3V0cHV0RXZlbnRWYWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWlzU2VsZWN0aW9uS2V5RG93biB8fCB0aGlzLnNlbGVjdGlvbk1vZGUgPT09ICdub25lJyB8fCAhdGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucygnZmQtZ3JpZC1saXN0X19pdGVtJykpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3ByZXZlbnREZWZhdWx0KGV2ZW50KTtcblxuICAgICAgICBpZiAodGhpcy5zZWxlY3Rpb25Nb2RlID09PSAnbXVsdGlTZWxlY3QnKSB7XG4gICAgICAgICAgICB0aGlzLl9zZWxlY3Rpb25JdGVtKCF0aGlzLl9zZWxlY3RlZEl0ZW0pO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuX3NlbGVjdGVkSXRlbSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIHRoaXMuX3NpbmdsZVNlbGVjdChldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2lzRWxlbWVudENhbkJlQ2xpY2tlZChldmVudDogTW91c2VFdmVudCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIWV2ZW50Py50YXJnZXQpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHsgY2xhc3NMaXN0IH0gPSBlbGVtZW50O1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAhKHRoaXMuX2lzVG9vbGJhckVsZW1lbnQoZWxlbWVudCkgJiYgdGhpcy5kaXNhYmxlVG9vbGJhckNsaWNrKSAmJlxuICAgICAgICAgICAgIWNsYXNzTGlzdC5jb250YWlucygnZmQtZ3JpZC1saXN0X19hY3Rpb24tYnV0dG9uJykgJiZcbiAgICAgICAgICAgICFjbGFzc0xpc3QuY29udGFpbnMoJ2ZkLWdyaWQtbGlzdF9fcmFkaW8tbGFiZWwnKSAmJlxuICAgICAgICAgICAgIWNsYXNzTGlzdC5jb250YWlucygnZmQtZ3JpZC1saXN0X19yYWRpby1pbnB1dCcpICYmXG4gICAgICAgICAgICAhY2xhc3NMaXN0LmNvbnRhaW5zKCdmZC1ncmlkLWxpc3RfX2NoZWNrYm94LWxhYmVsJykgJiZcbiAgICAgICAgICAgICFjbGFzc0xpc3QuY29udGFpbnMoJ2ZkLWdyaWQtbGlzdF9fY2hlY2tib3gtaW5wdXQnKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfaXNUb29sYmFyRWxlbWVudChlbGVtZW50OiBIVE1MRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMuaXRlbVRvb2xiYXJDb21wb25lbnQpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHdoaWxlIChlbGVtZW50LnBhcmVudEVsZW1lbnQgJiYgIWVsZW1lbnQucGFyZW50RWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ2ZkLWdyaWQtbGlzdF9faXRlbScpKSB7XG4gICAgICAgICAgICBpZiAoZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ2ZkLXRvb2xiYXItLWV4dHJhLWNvbnRlbnQnKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBlbGVtZW50ID0gZWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfcHJldmVudERlZmF1bHQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBnZXQgX291dHB1dEV2ZW50VmFsdWUoKTogR3JpZExpc3RJdGVtT3V0cHV0RXZlbnQ8VD4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdmFsdWU6IHRoaXMudmFsdWUsXG4gICAgICAgICAgICBpbmRleDogdGhpcy5faW5kZXhcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2FkZENsYXNzZXNOYW1lcyhjbGFzc2VzTmFtZXM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgICAgIGZvciAoY29uc3QgY2xhc3NOYW1lIG9mIGNsYXNzZXNOYW1lcykge1xuICAgICAgICAgICAgdGhpcy5fcmVuZGVyLmFkZENsYXNzKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgY2xhc3NOYW1lKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfcmVtb3ZlQ2xhc3Nlc05hbWVzKGNsYXNzZXNOYW1lczogc3RyaW5nW10pOiB2b2lkIHtcbiAgICAgICAgZm9yIChjb25zdCBjbGFzc05hbWUgb2YgY2xhc3Nlc05hbWVzKSB7XG4gICAgICAgICAgICB0aGlzLl9yZW5kZXIucmVtb3ZlQ2xhc3ModGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBjbGFzc05hbWUpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdlxuICAgICNncmlkTGlzdEl0ZW1cbiAgICBbaWRdPVwiaWRcIlxuICAgIHRhYmluZGV4PVwiMFwiXG4gICAgY2xhc3M9XCJmZC1ncmlkLWxpc3RfX2l0ZW1cIlxuICAgIHJvbGU9XCJvcHRpb25cIlxuICAgIFtjbGFzcy5pcy1uYXZpZ2F0ZWRdPVwiaXNOYXZpZ2F0ZWRcIlxuICAgIFtjbGFzcy5pcy1zZWxlY3RlZF09XCIhIV9zZWxlY3RlZEl0ZW1cIlxuICAgIFtjbGFzcy5mZC1ncmlkLWxpc3RfX2l0ZW0tLWxpbmtdPVwiXG4gICAgICAgIF9pc0FjdGl2ZSAmJiAodHlwZSA9PT0gJ2FjdGl2ZScgfHwgdHlwZSA9PT0gJ2RldGFpbHNBbmRBY3RpdmUnIHx8IHR5cGUgPT09ICduYXZpZ2F0aW9uJylcbiAgICBcIlxuICAgIFtjbGFzcy5mZC1ncmlkLWxpc3RfX2l0ZW0tLXVucmVhZF09XCJzdGF0ZSA9PT0gJ3VucmVhZCdcIlxuICAgIFtjbGFzcy5mZC1ncmlkLWxpc3RfX2l0ZW0tLWxvY2tlZF09XCJzdGF0ZSA9PT0gJ2xvY2tlZCdcIlxuICAgIFtjbGFzcy5mZC1ncmlkLWxpc3RfX2l0ZW0tLWRyYWZ0XT1cInN0YXRlID09PSAnZHJhZnQnXCJcbiAgICBbY2xhc3MuZmQtZ3JpZC1saXN0X19pdGVtLS1lcnJvcl09XCJzdGF0ZSA9PT0gJ2Vycm9yJ1wiXG4gICAgKGtleWRvd24pPVwiX29uS2V5RG93bigkZXZlbnQpXCJcbiAgICAoY2xpY2spPVwic2VsZWN0aW9uTW9kZSA9PT0gJ3NpbmdsZVNlbGVjdCcgJiYgX3NpbmdsZVNlbGVjdCgkZXZlbnQpOyBfb25DbGljaygkZXZlbnQpXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImFyaWFMYWJlbGxlZEJ5XCJcbiAgICAobW91c2VvdmVyKT1cIl9zZXRBY3RpdmUoJGV2ZW50LCBmYWxzZSlcIlxuICAgIChtb3VzZW91dCk9XCJfc2V0QWN0aXZlKCRldmVudCwgdHJ1ZSlcIlxuICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwic2VsZWN0aW9uTW9kZSA9PT0gJ25vbmUnID8gbnVsbCA6ICEhX3NlbGVjdGVkSXRlbVwiXG4+XG4gICAgPHNwYW5cbiAgICAgICAgKm5nSWY9XCJzdGF0dXNcIlxuICAgICAgICBjbGFzcz1cImZkLWdyaWQtbGlzdF9faGlnaGxpZ2h0XCJcbiAgICAgICAgW2NsYXNzLmZkLWdyaWQtbGlzdF9faGlnaGxpZ2h0LS1wb3NpdGl2ZV09XCJzdGF0dXMgPT09ICdzdWNjZXNzJ1wiXG4gICAgICAgIFtjbGFzcy5mZC1ncmlkLWxpc3RfX2hpZ2hsaWdodC0tY3JpdGljYWxdPVwic3RhdHVzID09PSAnd2FybmluZydcIlxuICAgICAgICBbY2xhc3MuZmQtZ3JpZC1saXN0X19oaWdobGlnaHQtLW5lZ2F0aXZlXT1cInN0YXR1cyA9PT0gJ2Vycm9yJ1wiXG4gICAgICAgIFtjbGFzcy5mZC1ncmlkLWxpc3RfX2hpZ2hsaWdodC0tbmV1dHJhbF09XCJzdGF0dXMgPT09ICduZXV0cmFsJ1wiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ2NvcmVHcmlkTGlzdC5saXN0SXRlbVN0YXR1c0FyaWFMYWJlbCcgfCBmZFRyYW5zbGF0ZSA6IHsgc3RhdHVzOiBzdGF0dXMgfVwiXG4gICAgPjwvc3Bhbj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3Rpb25Nb2RlID09PSAnc2luZ2xlU2VsZWN0J1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicmFkaW9cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJmZC10b29sYmFyIGZkLWdyaWQtbGlzdF9faXRlbS10b29sYmFyXCJcbiAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgIGNvdW50ZXIgfHxcbiAgICAgICAgICAgIGl0ZW1Ub29sYmFyQ29tcG9uZW50Py5jb250ZW50VGVtcGxhdGVSZWYgfHxcbiAgICAgICAgICAgICh0eXBlICYmIHR5cGUgIT09ICdpbmFjdGl2ZScgJiYgdHlwZSAhPT0gJ2FjdGl2ZScpIHx8XG4gICAgICAgICAgICAoc2VsZWN0aW9uTW9kZSAhPT0gJ25vbmUnICYmIHNlbGVjdGlvbk1vZGUgIT09ICdzaW5nbGVTZWxlY3QnKVxuICAgICAgICBcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGlvbk1vZGUgPT09ICdzaW5nbGVTZWxlY3RMZWZ0J1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInJhZGlvXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3Rpb25Nb2RlID09PSAnbXVsdGlTZWxlY3QnXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2hlY2tib3hcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW1Ub29sYmFyQ29tcG9uZW50Py5jb250ZW50VGVtcGxhdGVSZWZcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmZC10b29sYmFyLS1leHRyYS1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW1Ub29sYmFyQ29tcG9uZW50LmNvbnRlbnRUZW1wbGF0ZVJlZlwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxmZC1ncmlkLWxpc3QtdGl0bGUtYmFyLXNwYWNlcj48L2ZkLWdyaWQtbGlzdC10aXRsZS1iYXItc3BhY2VyPlxuXG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgICAqbmdJZj1cImNvdW50ZXJcIlxuICAgICAgICAgICAgY2xhc3M9XCJmZC1ncmlkLWxpc3RfX2l0ZW0tY291bnRlclwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidjb3JlR3JpZExpc3QubGlzdEl0ZW1Db3VudGVyQXJpYUxhYmVsJyB8IGZkVHJhbnNsYXRlIDogeyBjb3VudDogY291bnRlciB9XCJcbiAgICAgICAgICAgID57eyBjb3VudGVyIH19PC9zcGFuXG4gICAgICAgID5cblxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cInR5cGUgPT09ICdkZXRhaWwnIHx8IHR5cGUgPT09ICdkZXRhaWxzQW5kQWN0aXZlJ1wiXG4gICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgIGdseXBoPVwiZWRpdFwiXG4gICAgICAgICAgICBjbGFzcz1cImZkLWdyaWQtbGlzdF9fYWN0aW9uLWJ1dHRvblwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidjb3JlR3JpZExpc3QubGlzdEl0ZW1CdXR0b25EZXRhaWxzVGl0bGUnIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICAgICAgW3RpdGxlXT1cIidjb3JlR3JpZExpc3QubGlzdEl0ZW1CdXR0b25EZXRhaWxzVGl0bGUnIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICAgICAgZmRDb21wYWN0XG4gICAgICAgICAgICAoY2xpY2spPVwiX29uRGV0YWlsKCRldmVudClcIlxuICAgICAgICA+PC9idXR0b24+XG5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCJzZWxlY3Rpb25Nb2RlID09PSAnZGVsZXRlJ1wiXG4gICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgIGdseXBoPVwiZGVjbGluZVwiXG4gICAgICAgICAgICBjbGFzcz1cImZkLWdyaWQtbGlzdF9fYWN0aW9uLWJ1dHRvblwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidjb3JlR3JpZExpc3QubGlzdEl0ZW1CdXR0b25EZWxldGVUaXRsZScgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBbdGl0bGVdPVwiJ2NvcmVHcmlkTGlzdC5saXN0SXRlbUJ1dHRvbkRlbGV0ZVRpdGxlJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgIHRpdGxlPVwiRGVsZXRlXCJcbiAgICAgICAgICAgIGZkQ29tcGFjdFxuICAgICAgICAgICAgKGNsaWNrKT1cIl9vbkRlbGV0ZSgkZXZlbnQpXCJcbiAgICAgICAgPjwvYnV0dG9uPlxuXG4gICAgICAgIDxzcGFuICpuZ0lmPVwidHlwZSA9PT0gJ25hdmlnYXRpb24nXCIgY2xhc3M9XCJmZC1ncmlkLWxpc3RfX2l0ZW0tbmF2aWdhdGlvbi1pbmRpY2F0b3JcIj5cbiAgICAgICAgICAgIDxmZC1pY29uIGdseXBoPVwibmF2aWdhdGlvbi1yaWdodC1hcnJvd1wiPjwvZmQtaWNvbj5cbiAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3Rpb25Nb2RlID09PSAnc2luZ2xlU2VsZWN0UmlnaHQnXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicmFkaW9cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZmQtZ3JpZC1saXN0X19pdGVtLWJvZHlcIiBbY2xhc3MuZmQtZ3JpZC1saXN0X19pdGVtLWJvZHktLW5vLXBhZGRpbmddPVwibm9QYWRkaW5nXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltmZC1ncmlkLWxpc3QtaXRlbS1pbWFnZV1cIj48L25nLWNvbnRlbnQ+XG5cbiAgICAgICAgPGRpdiAqbmdJZj1cInRpdGxlIHx8IGRlc2NyaXB0aW9uXCIgY2xhc3M9XCJmZC1ncmlkLWxpc3RfX2l0ZW0taGVhZGVyXCI+XG4gICAgICAgICAgICA8aDQgKm5nSWY9XCJ0aXRsZVwiIGZkLXRpdGxlPnt7IHRpdGxlIH19PC9oND5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZGVzY3JpcHRpb25cIiBjbGFzcz1cImZkLWdyaWQtbGlzdF9faXRlbS1zdWJ0aXRsZVwiPnt7IGRlc2NyaXB0aW9uIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2ICpuZ0lmPVwiYm9keT8udGVtcGxhdGVSZWZcIiBjbGFzcz1cImZkLWdyaWQtbGlzdF9faXRlbS1jb250ZW50XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImJvZHkudGVtcGxhdGVSZWZcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0YXRlIHx8IGZvb3RlckJhckNvbXBvbmVudD8uY29udGVudFRlbXBsYXRlUmVmXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbUZvb3RlclwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI3JhZGlvPlxuICAgIDxpbnB1dFxuICAgICAgICBbYXR0ci50YWJpbmRleF09XCJzZWxlY3Rpb25Nb2RlID09PSAnc2luZ2xlU2VsZWN0JyA/IC0xIDogMFwiXG4gICAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgIGNsYXNzPVwiZmQtcmFkaW8gaXMtY29tcGFjdCBmZC1ncmlkLWxpc3RfX3JhZGlvLWlucHV0XCJcbiAgICAgICAgW3N0eWxlLmRpc3BsYXldPVwic2VsZWN0aW9uTW9kZSA9PT0gJ3NpbmdsZVNlbGVjdCcgPyAnbm9uZScgOiAnJ1wiXG4gICAgICAgIFtpZF09XCJpZCArICctcmFkaW8nXCJcbiAgICAgICAgW25hbWVdPVwiJ2ZkLWdyaWQtbGlzdC1pdGVtLXRvb2xiYXItJyArIHNlbGVjdGlvbk1vZGVcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbFwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJhcmlhTGFiZWxsZWRCeVwiXG4gICAgICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXG4gICAgICAgIFtuZ01vZGVsXT1cIl9zZWxlY3RlZEl0ZW1cIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCIkZXZlbnQgJiYgX3NlbGVjdGlvbkl0ZW0oJGV2ZW50KVwiXG4gICAgLz5cbiAgICA8bGFiZWxcbiAgICAgICAgY2xhc3M9XCJmZC1yYWRpb19fbGFiZWwgZmQtZ3JpZC1saXN0X19yYWRpby1sYWJlbFwiXG4gICAgICAgIFtmb3JdPVwiaWQgKyAnLXJhZGlvJ1wiXG4gICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAobW91c2VvdmVyKT1cIl9zZXRBY3RpdmUoJGV2ZW50LCBmYWxzZSlcIlxuICAgICAgICAobW91c2VvdXQpPVwiX3NldEFjdGl2ZSgkZXZlbnQsIHRydWUpXCJcbiAgICA+PC9sYWJlbD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjY2hlY2tib3g+XG4gICAgPGlucHV0XG4gICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgIGNsYXNzPVwiZmQtY2hlY2tib3ggaXMtY29tcGFjdCBmZC1ncmlkLWxpc3RfX2NoZWNrYm94LWlucHV0XCJcbiAgICAgICAgW2lkXT1cImlkICsgJy1jaGVja2JveCdcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbFwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJhcmlhTGFiZWxsZWRCeVwiXG4gICAgICAgIFtuZ01vZGVsXT1cIl9zZWxlY3RlZEl0ZW1cIlxuICAgICAgICAoY2xpY2spPVwiX2NoZWNrYm94Q2xpY2soJGV2ZW50KVwiXG4gICAgLz5cbiAgICA8bGFiZWwgY2xhc3M9XCJmZC1jaGVja2JveF9fbGFiZWwgZmQtZ3JpZC1saXN0X19jaGVja2JveC1sYWJlbFwiIFtmb3JdPVwiaWQgKyAnLWNoZWNrYm94J1wiIHRhYmluZGV4PVwiLTFcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmZC1jaGVja2JveF9fY2hlY2ttYXJrXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPlxuICAgIDwvbGFiZWw+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2l0ZW1Gb290ZXI+XG4gICAgPGRpdiBjbGFzcz1cImZkLWdyaWQtbGlzdF9faXRlbS1ib2R5LWFjdGlvbnNcIiAqbmdJZj1cImZvb3RlckJhckNvbXBvbmVudCB8fCBzdGF0ZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZm9vdGVyQmFyQ29tcG9uZW50Py5jb250ZW50VGVtcGxhdGVSZWZcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmb290ZXJCYXJDb21wb25lbnQuY29udGVudFRlbXBsYXRlUmVmXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZm9vdGVyQmFyQ29tcG9uZW50Py5jb250ZW50VGVtcGxhdGVSZWYgJiYgc3RhdGVcIj5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJzdGF0ZSA9PT0gJ2Vycm9yJ1wiXG4gICAgICAgICAgICAgICAgZmQtb2JqZWN0LXN0YXR1c1xuICAgICAgICAgICAgICAgIHN0YXR1cz1cIm5lZ2F0aXZlXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2NvcmVHcmlkTGlzdC5saXN0SXRlbVN0YXR1c0NvbnRhaW5zRXJyb3JzJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidjb3JlR3JpZExpc3QubGlzdEl0ZW1TdGF0dXNDb250YWluc0Vycm9ycycgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICA+PC9zcGFuPlxuXG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmZC1ncmlkLWxpc3RfX2FjdGlvbi1idXR0b25cIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwic3RhdGUgPT09ICdsb2NrZWQnXCJcbiAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgZ2x5cGg9XCJwcml2YXRlXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2NvcmVHcmlkTGlzdC5saXN0SXRlbVN0YXR1c0xvY2tlZCcgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInY29yZUdyaWRMaXN0Lmxpc3RJdGVtU3RhdHVzTG9ja2VkJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICBmZENvbXBhY3RcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiX2NsaWNrT25Mb2NrZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICA+PC9idXR0b24+XG5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBjbGFzcz1cImZkLWdyaWQtbGlzdF9fYWN0aW9uLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJzdGF0ZSA9PT0gJ2RyYWZ0J1wiXG4gICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ2NvcmVHcmlkTGlzdC5saXN0SXRlbVN0YXR1c0RyYWZ0JyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2NvcmVHcmlkTGlzdC5saXN0SXRlbVN0YXR1c0RyYWZ0JyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICBmZENvbXBhY3RcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiX2NsaWNrT25EcmFmdCgkZXZlbnQpXCJcbiAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
367
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1saXN0LWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvZ3JpZC1saXN0L2NvbXBvbmVudHMvZ3JpZC1saXN0LWl0ZW0vZ3JpZC1saXN0LWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvZ3JpZC1saXN0L2NvbXBvbmVudHMvZ3JpZC1saXN0LWl0ZW0vZ3JpZC1saXN0LWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHckQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDM0YsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDeEUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDMUcsT0FBTyxFQUF5Qix3QkFBd0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzFHLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGtFQUFrRSxDQUFDO0FBQ2xILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUscUJBQXFC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QUs7c0JBSEosS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyxpQkFBaUI7O3NCQUM3QixXQUFXO3VCQUFDLGlCQUFpQjtnQkFRMUIsaUJBQWlCO3NCQURwQixLQUFLO2dCQVVOLE1BQU07c0JBREwsS0FBSztnQkFLTixPQUFPO3NCQUROLEtBQUs7Z0JBUU4sS0FBSztzQkFESixLQUFLO2dCQUtOLG1CQUFtQjtzQkFEbEIsS0FBSztnQkFLRixRQUFRO3NCQURYLEtBQUs7Z0JBY04sU0FBUztzQkFEUixLQUFLO2dCQUtOLFNBQVM7c0JBRFIsS0FBSztnQkFLTixjQUFjO3NCQURiLEtBQUs7Z0JBY0YsSUFBSTtzQkFEUCxLQUFLO2dCQWdCTixLQUFLO3NCQURKLEtBQUs7Z0JBUU4sV0FBVztzQkFEVixLQUFLO2dCQUtOLEtBQUs7c0JBREosS0FBSztnQkFLTixXQUFXO3NCQURWLEtBQUs7Z0JBUU4sS0FBSztzQkFESixNQUFNO2dCQVFQLE1BQU07c0JBREwsTUFBTTtnQkFRUCxNQUFNO3NCQURMLE1BQU07Z0JBUVAsUUFBUTtzQkFEUCxNQUFNO2dCQVFQLEtBQUs7c0JBREosTUFBTTtnQkFRUCxNQUFNO3NCQURMLE1BQU07Z0JBS1AsYUFBYTtzQkFEWixTQUFTO3VCQUFDLGNBQWM7Z0JBcUJ6QixrQkFBa0I7c0JBRGpCLFlBQVk7dUJBQUMsOEJBQThCO2dCQUs1QyxvQkFBb0I7c0JBRG5CLFlBQVk7dUJBQUMsNEJBQTRCO2dCQUsxQyxJQUFJO3NCQURILFlBQVk7dUJBQUMseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dCxcbiAgICBSZW5kZXJlcjIsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBFTlRFUiwgU1BBQ0UgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuXG5pbXBvcnQgeyBLZXlVdGlsIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5cbmltcG9ydCB7IEdyaWRMaXN0SXRlbUJvZHlEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2dyaWQtbGlzdC1pdGVtLWJvZHkuZGlyZWN0aXZlJztcbmltcG9ydCB7IHBhcnNlTGF5b3V0UGF0dGVybiB9IGZyb20gJy4uLy4uL2hlbHBlcnMvcGFyc2UtbGF5b3V0LXBhdHRlcm4nO1xuaW1wb3J0IHsgR3JpZExpc3RJdGVtVG9vbGJhckNvbXBvbmVudCB9IGZyb20gJy4uL2dyaWQtbGlzdC1pdGVtLXRvb2xiYXIvZ3JpZC1saXN0LWl0ZW0tdG9vbGJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgR3JpZExpc3RTZWxlY3Rpb25Nb2RlLCBHcmlkTGlzdFNlbGVjdGlvbkFjdGlvbnMgfSBmcm9tICcuLi8uLi9tb2RlbHMvZ3JpZC1saXN0LXNlbGVjdGlvbi5tb2RlbHMnO1xuaW1wb3J0IHsgR3JpZExpc3RJdGVtRm9vdGVyQmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vZ3JpZC1saXN0LWl0ZW0tZm9vdGVyLWJhci9ncmlkLWxpc3QtaXRlbS1mb290ZXItYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHcmlkTGlzdCB9IGZyb20gJy4vLi4vZ3JpZC1saXN0L2dyaWQtbGlzdC1iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuXG5sZXQgZ3JpZExpc3RJdGVtVW5pcXVlSWQgPSAwO1xuXG5leHBvcnQgaW50ZXJmYWNlIEdyaWRMaXN0SXRlbU91dHB1dEV2ZW50PFQ+IHtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgICB2YWx1ZT86IFQ7XG59XG5cbmV4cG9ydCB0eXBlIEdyaWRMaXN0SXRlbVR5cGUgPSAnaW5hY3RpdmUnIHwgJ2FjdGl2ZScgfCAnZGV0YWlsJyB8ICdkZXRhaWxzQW5kQWN0aXZlJyB8ICduYXZpZ2F0aW9uJztcbmV4cG9ydCB0eXBlIEdyaWRMaXN0SXRlbVN0YXRlID0gJ3VucmVhZCcgfCAnbG9ja2VkJyB8ICdlcnJvcicgfCAnZHJhZnQnO1xuZXhwb3J0IHR5cGUgR3JpZExpc3RJdGVtU3RhdHVzID0gJ3N1Y2Nlc3MnIHwgJ3dhcm5pbmcnIHwgJ2Vycm9yJyB8ICduZXV0cmFsJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZC1ncmlkLWxpc3QtaXRlbScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2dyaWQtbGlzdC1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9ncmlkLWxpc3QtaXRlbS5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgR3JpZExpc3RJdGVtQ29tcG9uZW50PFQ+IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICAvKiogaWQgZm9yIHRoZSBFbGVtZW50ICovXG4gICAgQElucHV0KClcbiAgICBpZCA9IGBmZC1ncmlkLWxpc3QtaXRlbS0ke2dyaWRMaXN0SXRlbVVuaXF1ZUlkKyt9YDtcblxuICAgIC8qKiB3aWR0aCBvZiB0aGUgZWxlbWVudCAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5tYXgtd2lkdGgnKVxuICAgIEBIb3N0QmluZGluZygnc3R5bGUubWluLXdpZHRoJylcbiAgICB3aWR0aDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogc3BlY2lmeSB0aGUgY2VsbCBsYXlvdXQgaW4gdGhlIGZvcm1hdCBgWExuLUxuLU1uLVNuYCB3aGVyZSBuIGlzXG4gICAgICogdGhlIG51bWJlciBvZiBvY2N1cGllZCBjb2x1bW5zIGFuZCBuIGNhbiBiZSBkaWZmZXJlbnQgZm9yIGVhY2ggc2l6ZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBsYXlvdXRJdGVtUGF0dGVybih2YWx1ZTogTnVsbGFibGU8c3RyaW5nPikge1xuICAgICAgICB0aGlzLmdyaWRMYXlvdXRDbGFzc2VzID0gdmFsdWUgPyBwYXJzZUxheW91dFBhdHRlcm4odmFsdWUsIGZhbHNlKSA6IFtdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlZmluZXMgdGhlIHN0YXR1cyBvZiBHcmlkIExpc3QgSXRlbVxuICAgICAqIChTdGF0dXNlczogc3VjY2VzcyB8IHdhcm5pbmcgfCBlcnJvciB8IG5ldXRyYWwpXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzdGF0dXM/OiBHcmlkTGlzdEl0ZW1TdGF0dXM7XG5cbiAgICAvKiogU2V0cyBudW1iZXIgb2Ygc3ViIGl0ZW1zICovXG4gICAgQElucHV0KClcbiAgICBjb3VudGVyOiBOdWxsYWJsZTxudW1iZXI+O1xuXG4gICAgLyoqXG4gICAgICogVmFsdWUgZmllbGQgc3RvcmVzIGluZm9ybWF0aW9uIGZvciByYWRpbyBidXR0b24gdmFsdWUsIGNoZWNrYm94IGJ1dHRvbiBhbmQgZm9yIEdyaWRMaXN0U2VsZWN0aW9uRXZlbnRcbiAgICAgKiBUaGUgZmllbGQgaXMgbWFuZGF0b3J5IGZvciBtb2RlcyBsaWtlIHNpbmdsZVNlbGVjdCwgc2luZ2xlU2VsZWN0TGVmdCwgc2luZ2xlU2VsZWN0UmlnaHQgb3IgbXVsdGlTZWxlY3RcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHZhbHVlPzogVDtcblxuICAgIC8qKiBXaGV0aGVyIGNsaWNrIG9uIHRoZSBjdXN0b20gdG9vbGJhciBpcyBkaXNhYmxlZCAqL1xuICAgIEBJbnB1dCgpXG4gICAgZGlzYWJsZVRvb2xiYXJDbGljayA9IGZhbHNlO1xuXG4gICAgLyoqIEFsbG93cyBhbiBpdGVtIHRvIGJlIHNlbGVjdGVkIHByb2dyYW1tYXRpY2FsbHkgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBzZWxlY3RlZCh2YWx1ZTogTnVsbGFibGU8Ym9vbGVhbj4pIHtcbiAgICAgICAgdGhpcy5fc2VsZWN0ZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cblxuICAgIGdldCBzZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2VsZWN0ZWQgPSBmYWxzZTtcblxuICAgIC8qKiBSZW1vdmUgdGhlIHBhZGRpbmcgZnJvbSB0aGUgSXRlbSBib2R5ICovXG4gICAgQElucHV0KClcbiAgICBub1BhZGRpbmcgPSBmYWxzZTtcblxuICAgIC8qKiBTZXRzIHRoZSBgYXJpYS1sYWJlbGAgYXR0cmlidXRlIHRvIHRoZSBlbGVtZW50LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXJpYUxhYmVsOiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIFNldHMgdGhlIGBhcmlhLWxhYmVsYCBhdHRyaWJ1dGUgdG8gdGhlIGVsZW1lbnQuICovXG4gICAgQElucHV0KClcbiAgICBhcmlhTGFiZWxsZWRCeTogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKlxuICAgICAqIERlZmluZXMgdGhlIHR5cGUgb2YgR3JpZCBMaXN0IEl0ZW1cbiAgICAgKiBUeXBlczpcbiAgICAgKiAtIGFjdGl2ZTogaW5kaWNhdGVzIHRoYXQgdGhlIGl0ZW0gaXMgY2xpY2thYmxlIHZpYSBhY3RpdmUgZmVlZGJhY2sgd2hlbiBpdGVtIGlzIHByZXNzZWRcbiAgICAgKiAtIGRldGFpbDogZW5hYmxlcyBkZXRhaWwgYnV0dG9uIG9mIHRoZSBsaXN0IGl0ZW0gdGhhdCBmaXJlcyBldmVudC5cbiAgICAgKiAtIGRldGFpbHNBbmRBY3RpdmU6IGVuYWJsZXMgXCJkZXRhaWxcIiBhbmQgXCJhY3RpdmVcIiBlbnVtZXJhdGlvbnMgdG9nZXRoZXJcbiAgICAgKiAtIGluYWN0aXZlOiBpbmRpY2F0ZXMgdGhlIGxpc3QgaXRlbSBkb2VzIG5vdCBoYXZlIGFueSBhY3RpdmUgZmVlZGJhY2sgd2hlbiBpdGVtIGlzIHByZXNzZWRcbiAgICAgKiAtIG5hdmlnYXRpb246IGluZGljYXRlcyB0aGUgbGlzdCBpdGVtIGlzIG5hdmlnYWJsZSB0byBzaG93IGV4dHJhIGluZm9ybWF0aW9uIGFib3V0IHRoZSBpdGVtXG4gICAgICogRGVmYXVsdDogaW5hY3RpdmVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB0eXBlKHZhbHVlOiBOdWxsYWJsZTxHcmlkTGlzdEl0ZW1UeXBlPikge1xuICAgICAgICB0aGlzLl90eXBlID0gdmFsdWUgPz8gJ2luYWN0aXZlJztcbiAgICB9XG4gICAgZ2V0IHR5cGUoKTogR3JpZExpc3RJdGVtVHlwZSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90eXBlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdHlwZTogR3JpZExpc3RJdGVtVHlwZSA9ICdpbmFjdGl2ZSc7XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBzdGF0ZSBvZiBHcmlkIExpc3QgSXRlbVxuICAgICAqIChTdGF0ZXM6IHVucmVhZCB8IGVycm9yIHwgbG9ja2VkIHwgZHJhZnQpXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzdGF0ZT86IEdyaWRMaXN0SXRlbVN0YXRlO1xuXG4gICAgLyoqXG4gICAgICogVGhlIG5hdmlnYXRlZCBzdGF0ZSBvZiB0aGUgbGlzdCBpdGVtLlxuICAgICAqIElmIHNldCB0byB0cnVlLCBhIG5hdmlnYXRpb24gaW5kaWNhdG9yIGlzIGRpc3BsYXllZCBhdCB0aGUgZW5kIG9mIHRoZSBsaXN0IGl0ZW0uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBpc05hdmlnYXRlZCA9IGZhbHNlO1xuXG4gICAgLyoqIFRpdGxlIG9mIHRoZSBpdGVtICovXG4gICAgQElucHV0KClcbiAgICB0aXRsZTogc3RyaW5nO1xuXG4gICAgLyoqIERlc2NyaXB0aW9uIG9mIHRoZSBpdGVtICovXG4gICAgQElucHV0KClcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogRXZlbnQgaXMgdGhyb3duLCB3aGVuIHR5cGUgaXMgYWN0aXZlXG4gICAgICogYW5kIGl0ZW0gaXMgcHJlc3NlZFxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHByZXNzID0gbmV3IEV2ZW50RW1pdHRlcjxHcmlkTGlzdEl0ZW1PdXRwdXRFdmVudDxUPj4oKTtcblxuICAgIC8qKlxuICAgICAqIEV2ZW50IGlzIHRocm93biwgd2hlbiB0eXBlIGlzIGRldGFpbCBvciBkZXRhaWxzQW5kQWN0aXZlXG4gICAgICogYW5kIERldGFpbCBidXR0b24gd2FzIHByZXNzZWRcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBkZXRhaWwgPSBuZXcgRXZlbnRFbWl0dGVyPEdyaWRMaXN0SXRlbU91dHB1dEV2ZW50PFQ+PigpO1xuXG4gICAgLyoqXG4gICAgICogRXZlbnQgaXMgdGhyb3duLCB3aGVuIG1vZGUgZGVsZXRlXG4gICAgICogYW5kIERlbGV0ZSBidXR0b24gd2FzIHByZXNzZWRcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBkZWxldGUgPSBuZXcgRXZlbnRFbWl0dGVyPEdyaWRMaXN0SXRlbU91dHB1dEV2ZW50PFQ+PigpO1xuXG4gICAgLyoqXG4gICAgICogRXZlbnQgaXMgdGhyb3duLCB3aGVuIHR5cGUgaXMgbmF2aWdhdGlvblxuICAgICAqIGFuZCBOYXZpZ2F0ZSBidXR0b24gd2FzIHByZXNzZWRcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBuYXZpZ2F0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8R3JpZExpc3RJdGVtT3V0cHV0RXZlbnQ8VD4+KCk7XG5cbiAgICAvKipcbiAgICAgKiBFdmVudCBpcyB0aHJvd24sIHdoZW4gc3RhdGUgaXMgZXJyb3IsIG5vdCB1c2VkIEdyaWRMaXN0SXRlbUZvb3RlckJhckNvbXBvbmVudFxuICAgICAqIGFuZCBEcmFmdCBidXR0b24gd2FzIHByZXNzZWRcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBkcmFmdCA9IG5ldyBFdmVudEVtaXR0ZXI8R3JpZExpc3RJdGVtT3V0cHV0RXZlbnQ8VD4+KCk7XG5cbiAgICAvKipcbiAgICAgKiBFdmVudCBpcyB0aHJvd24sIHdoZW4gc3RhdGUgaXMgbG9ja2VkLCBub3QgdXNlZCBHcmlkTGlzdEl0ZW1Gb290ZXJCYXJDb21wb25lbnRcbiAgICAgKiBhbmQgTG9ja2VkIGJ1dHRvbiB3YXMgcHJlc3NlZFxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGxvY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8R3JpZExpc3RJdGVtT3V0cHV0RXZlbnQ8VD4+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoJ2dyaWRMaXN0SXRlbScpXG4gICAgX2dyaWRMaXN0SXRlbTogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgICAvKiogQGhpZGRlblxuICAgICAqIFRoZSBhY3RpdmUgc3RhdGUgb2YgdGhlIGxpc3QgaXRlbS5cbiAgICAgKiBJZiBzZXQgdG8gdHJ1ZSwgdGhlIHdob2xlIGNhcmQgaGFzIGFjdGl2ZSBzdGF0ZS4gQmVjb21lcyBmYWxzZSBvbmx5IHdoZW4gdGhlIEVkaXQgYnV0dG9uIGlzIGNsaWNrZWQuXG4gICAgICovXG4gICAgX2lzQWN0aXZlID0gdHJ1ZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgc2V0IGdyaWRMYXlvdXRDbGFzc2VzKHZhbHVlOiBzdHJpbmdbXSkge1xuICAgICAgICB0aGlzLl9yZW1vdmVDbGFzc2VzTmFtZXModGhpcy5fZ3JpZExheW91dENsYXNzZXMpO1xuICAgICAgICB0aGlzLl9ncmlkTGF5b3V0Q2xhc3NlcyA9IHZhbHVlO1xuICAgICAgICB0aGlzLl9hZGRDbGFzc2VzTmFtZXModGhpcy5fZ3JpZExheW91dENsYXNzZXMpO1xuICAgIH1cbiAgICBnZXQgZ3JpZExheW91dENsYXNzZXMoKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZ3JpZExheW91dENsYXNzZXM7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkKEdyaWRMaXN0SXRlbUZvb3RlckJhckNvbXBvbmVudClcbiAgICBmb290ZXJCYXJDb21wb25lbnQ6IEdyaWRMaXN0SXRlbUZvb3RlckJhckNvbXBvbmVudDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZChHcmlkTGlzdEl0ZW1Ub29sYmFyQ29tcG9uZW50KVxuICAgIGl0ZW1Ub29sYmFyQ29tcG9uZW50OiBHcmlkTGlzdEl0ZW1Ub29sYmFyQ29tcG9uZW50O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkKEdyaWRMaXN0SXRlbUJvZHlEaXJlY3RpdmUpXG4gICAgYm9keTogR3JpZExpc3RJdGVtQm9keURpcmVjdGl2ZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3NlbGVjdGVkSXRlbT86IFQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNldCBzZWxlY3Rpb25Nb2RlKG1vZGU6IEdyaWRMaXN0U2VsZWN0aW9uTW9kZSB8IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLl9zZWxlY3Rpb25Nb2RlID0gbW9kZTtcblxuICAgICAgICBpZiAobW9kZSAhPT0gJ2RlbGV0ZScgJiYgbW9kZSAhPT0gJ25vbmUnICYmICF0aGlzLnZhbHVlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0dyaWQgTGlzdCBJdGVtIG11c3QgaGF2ZSBbdmFsdWVdIGF0dHJpYnV0ZS4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkICYmIHRoaXMudmFsdWUgJiYgdGhpcy5faW5kZXggIT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3QgYWN0aW9uID0gdGhpcy5zZWxlY3Rpb25Nb2RlICE9PSAnbXVsdGlTZWxlY3QnID8gbnVsbCA6IEdyaWRMaXN0U2VsZWN0aW9uQWN0aW9ucy5BREQ7XG5cbiAgICAgICAgICAgIHRoaXMuX2dyaWRMaXN0LnNldFNlbGVjdGVkSXRlbSh0aGlzLnZhbHVlLCB0aGlzLl9pbmRleCwgYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gICAgZ2V0IHNlbGVjdGlvbk1vZGUoKTogR3JpZExpc3RTZWxlY3Rpb25Nb2RlIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdGlvbk1vZGU7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfaW5kZXg/OiBudW1iZXI7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3NlbGVjdGlvbk1vZGU/OiBHcmlkTGlzdFNlbGVjdGlvbk1vZGU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dyaWRMYXlvdXRDbGFzc2VzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2NkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfcmVuZGVyOiBSZW5kZXJlcjIsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2dyaWRMaXN0OiBHcmlkTGlzdDxUPlxuICAgICkge1xuICAgICAgICBjb25zdCBzZWxlY3RlZEl0ZW1zU3ViID0gdGhpcy5fZ3JpZExpc3QuX3NlbGVjdGVkSXRlbXMkLnN1YnNjcmliZSgoaXRlbXMpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkSXRlbSA9IGl0ZW1zLnNlbGVjdGlvbi5maW5kKChpdGVtKSA9PiBpdGVtID09PSB0aGlzLnZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKHNlbGVjdGVkSXRlbXNTdWIpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKiogRm9jdXMgZ3JpZCBsaXN0IGl0ZW0gcHJvZ3JhbW1hdGljYWxseSAqL1xuICAgIGZvY3VzKG9wdGlvbnM/OiBGb2N1c09wdGlvbnMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZ3JpZExpc3RJdGVtPy5uYXRpdmVFbGVtZW50LmZvY3VzKG9wdGlvbnMpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3NldEFjdGl2ZShldmVudDogTW91c2VFdmVudCwgaXNBY3RpdmU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2lzRWxlbWVudENhbkJlQ2xpY2tlZChldmVudCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2lzQWN0aXZlID0gaXNBY3RpdmU7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfc2luZ2xlU2VsZWN0KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9wcmV2ZW50RGVmYXVsdChldmVudCk7XG5cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLl9zZWxlY3RlZEl0ZW0gIT09ICd1bmRlZmluZWQnIHx8ICF0aGlzLnZhbHVlIHx8IHRoaXMuX2luZGV4ID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2dyaWRMaXN0LnNldFNlbGVjdGVkSXRlbSh0aGlzLnZhbHVlLCB0aGlzLl9pbmRleCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfY2hlY2tib3hDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjaGVja2VkID0gKDxIVE1MSW5wdXRFbGVtZW50PmV2ZW50LnRhcmdldCkuY2hlY2tlZDtcbiAgICAgICAgdGhpcy5fc2VsZWN0aW9uSXRlbShjaGVja2VkLCBldmVudCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfc2VsZWN0aW9uSXRlbSh2YWx1ZTogYm9vbGVhbiB8IG51bWJlciB8IFQsIGV2ZW50PzogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMudmFsdWUgfHwgdGhpcy5faW5kZXggPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFjdGlvbiA9XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbk1vZGUgIT09ICdtdWx0aVNlbGVjdCdcbiAgICAgICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgICAgICA6IHZhbHVlIHx8IHZhbHVlID09PSAwXG4gICAgICAgICAgICAgICAgPyBHcmlkTGlzdFNlbGVjdGlvbkFjdGlvbnMuQUREXG4gICAgICAgICAgICAgICAgOiBHcmlkTGlzdFNlbGVjdGlvbkFjdGlvbnMuUkVNT1ZFO1xuXG4gICAgICAgIHRoaXMuX2dyaWRMaXN0LnNldFNlbGVjdGVkSXRlbSh0aGlzLnZhbHVlLCB0aGlzLl9pbmRleCwgYWN0aW9uLCBldmVudCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfb25EZXRhaWwoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcHJldmVudERlZmF1bHQoZXZlbnQpO1xuXG4gICAgICAgIHRoaXMuZGV0YWlsLmVtaXQodGhpcy5fb3V0cHV0RXZlbnRWYWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfb25OYXZpZ2F0ZShldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9wcmV2ZW50RGVmYXVsdChldmVudCk7XG5cbiAgICAgICAgdGhpcy5uYXZpZ2F0ZS5lbWl0KHRoaXMuX291dHB1dEV2ZW50VmFsdWUpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX29uRGVsZXRlKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3ByZXZlbnREZWZhdWx0KGV2ZW50KTtcblxuICAgICAgICB0aGlzLmRlbGV0ZS5lbWl0KHRoaXMuX291dHB1dEV2ZW50VmFsdWUpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2NsaWNrT25EcmFmdChldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9wcmV2ZW50RGVmYXVsdChldmVudCk7XG5cbiAgICAgICAgdGhpcy5kcmFmdC5lbWl0KHRoaXMuX291dHB1dEV2ZW50VmFsdWUpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2NsaWNrT25Mb2NrZWQoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcHJldmVudERlZmF1bHQoZXZlbnQpO1xuXG4gICAgICAgIHRoaXMubG9ja2VkLmVtaXQodGhpcy5fb3V0cHV0RXZlbnRWYWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfb25DbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2lzRWxlbWVudENhbkJlQ2xpY2tlZChldmVudCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnR5cGUgIT09ICdhY3RpdmUnICYmIHRoaXMudHlwZSAhPT0gJ2RldGFpbHNBbmRBY3RpdmUnICYmIHRoaXMudHlwZSAhPT0gJ25hdmlnYXRpb24nKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy50eXBlID09PSAnbmF2aWdhdGlvbicpIHtcbiAgICAgICAgICAgIHRoaXMuX29uTmF2aWdhdGUoZXZlbnQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5wcmVzcy5lbWl0KHRoaXMuX291dHB1dEV2ZW50VmFsdWUpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX29uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTERpdkVsZW1lbnQ7XG5cbiAgICAgICAgY29uc3QgaXNTZWxlY3Rpb25LZXlEb3duID0gS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIFtFTlRFUiwgU1BBQ0VdKTtcblxuICAgICAgICBpZiAoaXNTZWxlY3Rpb25LZXlEb3duICYmIHRoaXMuc2VsZWN0aW9uTW9kZSA9PT0gJ25vbmUnKSB7XG4gICAgICAgICAgICB0aGlzLnByZXNzLmVtaXQodGhpcy5fb3V0cHV0RXZlbnRWYWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWlzU2VsZWN0aW9uS2V5RG93biB8fCB0aGlzLnNlbGVjdGlvbk1vZGUgPT09ICdub25lJyB8fCAhdGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucygnZmQtZ3JpZC1saXN0X19pdGVtJykpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3ByZXZlbnREZWZhdWx0KGV2ZW50KTtcblxuICAgICAgICBpZiAodGhpcy5zZWxlY3Rpb25Nb2RlID09PSAnbXVsdGlTZWxlY3QnKSB7XG4gICAgICAgICAgICB0aGlzLl9zZWxlY3Rpb25JdGVtKCF0aGlzLl9zZWxlY3RlZEl0ZW0pO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuX3NlbGVjdGVkSXRlbSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIHRoaXMuX3NpbmdsZVNlbGVjdChldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2lzRWxlbWVudENhbkJlQ2xpY2tlZChldmVudDogTW91c2VFdmVudCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIWV2ZW50Py50YXJnZXQpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHsgY2xhc3NMaXN0IH0gPSBlbGVtZW50O1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAhKHRoaXMuX2lzVG9vbGJhckVsZW1lbnQoZWxlbWVudCkgJiYgdGhpcy5kaXNhYmxlVG9vbGJhckNsaWNrKSAmJlxuICAgICAgICAgICAgIWNsYXNzTGlzdC5jb250YWlucygnZmQtZ3JpZC1saXN0X19hY3Rpb24tYnV0dG9uJykgJiZcbiAgICAgICAgICAgICFjbGFzc0xpc3QuY29udGFpbnMoJ2ZkLWdyaWQtbGlzdF9fcmFkaW8tbGFiZWwnKSAmJlxuICAgICAgICAgICAgIWNsYXNzTGlzdC5jb250YWlucygnZmQtZ3JpZC1saXN0X19yYWRpby1pbnB1dCcpICYmXG4gICAgICAgICAgICAhY2xhc3NMaXN0LmNvbnRhaW5zKCdmZC1ncmlkLWxpc3RfX2NoZWNrYm94LWxhYmVsJykgJiZcbiAgICAgICAgICAgICFjbGFzc0xpc3QuY29udGFpbnMoJ2ZkLWdyaWQtbGlzdF9fY2hlY2tib3gtaW5wdXQnKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfaXNUb29sYmFyRWxlbWVudChlbGVtZW50OiBIVE1MRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMuaXRlbVRvb2xiYXJDb21wb25lbnQpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHdoaWxlIChlbGVtZW50LnBhcmVudEVsZW1lbnQgJiYgIWVsZW1lbnQucGFyZW50RWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ2ZkLWdyaWQtbGlzdF9faXRlbScpKSB7XG4gICAgICAgICAgICBpZiAoZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ2ZkLXRvb2xiYXItLWV4dHJhLWNvbnRlbnQnKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBlbGVtZW50ID0gZWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfcHJldmVudERlZmF1bHQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBnZXQgX291dHB1dEV2ZW50VmFsdWUoKTogR3JpZExpc3RJdGVtT3V0cHV0RXZlbnQ8VD4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdmFsdWU6IHRoaXMudmFsdWUsXG4gICAgICAgICAgICBpbmRleDogdGhpcy5faW5kZXhcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2FkZENsYXNzZXNOYW1lcyhjbGFzc2VzTmFtZXM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgICAgIGZvciAoY29uc3QgY2xhc3NOYW1lIG9mIGNsYXNzZXNOYW1lcykge1xuICAgICAgICAgICAgdGhpcy5fcmVuZGVyLmFkZENsYXNzKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgY2xhc3NOYW1lKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfcmVtb3ZlQ2xhc3Nlc05hbWVzKGNsYXNzZXNOYW1lczogc3RyaW5nW10pOiB2b2lkIHtcbiAgICAgICAgZm9yIChjb25zdCBjbGFzc05hbWUgb2YgY2xhc3Nlc05hbWVzKSB7XG4gICAgICAgICAgICB0aGlzLl9yZW5kZXIucmVtb3ZlQ2xhc3ModGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBjbGFzc05hbWUpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdlxuICAgICNncmlkTGlzdEl0ZW1cbiAgICBbaWRdPVwiaWRcIlxuICAgIHRhYmluZGV4PVwiLTFcIlxuICAgIGNsYXNzPVwiZmQtZ3JpZC1saXN0X19pdGVtXCJcbiAgICByb2xlPVwib3B0aW9uXCJcbiAgICBbY2xhc3MuaXMtbmF2aWdhdGVkXT1cImlzTmF2aWdhdGVkXCJcbiAgICBbY2xhc3MuaXMtc2VsZWN0ZWRdPVwiISFfc2VsZWN0ZWRJdGVtXCJcbiAgICBbY2xhc3MuZmQtZ3JpZC1saXN0X19pdGVtLS1saW5rXT1cIlxuICAgICAgICBfaXNBY3RpdmUgJiYgKHR5cGUgPT09ICdhY3RpdmUnIHx8IHR5cGUgPT09ICdkZXRhaWxzQW5kQWN0aXZlJyB8fCB0eXBlID09PSAnbmF2aWdhdGlvbicpXG4gICAgXCJcbiAgICBbY2xhc3MuZmQtZ3JpZC1saXN0X19pdGVtLS11bnJlYWRdPVwic3RhdGUgPT09ICd1bnJlYWQnXCJcbiAgICBbY2xhc3MuZmQtZ3JpZC1saXN0X19pdGVtLS1sb2NrZWRdPVwic3RhdGUgPT09ICdsb2NrZWQnXCJcbiAgICBbY2xhc3MuZmQtZ3JpZC1saXN0X19pdGVtLS1kcmFmdF09XCJzdGF0ZSA9PT0gJ2RyYWZ0J1wiXG4gICAgW2NsYXNzLmZkLWdyaWQtbGlzdF9faXRlbS0tZXJyb3JdPVwic3RhdGUgPT09ICdlcnJvcidcIlxuICAgIChrZXlkb3duKT1cIl9vbktleURvd24oJGV2ZW50KVwiXG4gICAgKGNsaWNrKT1cInNlbGVjdGlvbk1vZGUgPT09ICdzaW5nbGVTZWxlY3QnICYmIF9zaW5nbGVTZWxlY3QoJGV2ZW50KTsgX29uQ2xpY2soJGV2ZW50KVwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJhcmlhTGFiZWxsZWRCeVwiXG4gICAgKG1vdXNlb3Zlcik9XCJfc2V0QWN0aXZlKCRldmVudCwgZmFsc2UpXCJcbiAgICAobW91c2VvdXQpPVwiX3NldEFjdGl2ZSgkZXZlbnQsIHRydWUpXCJcbiAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cInNlbGVjdGlvbk1vZGUgPT09ICdub25lJyA/IG51bGwgOiAhIV9zZWxlY3RlZEl0ZW1cIlxuPlxuICAgIDxzcGFuXG4gICAgICAgICpuZ0lmPVwic3RhdHVzXCJcbiAgICAgICAgY2xhc3M9XCJmZC1ncmlkLWxpc3RfX2hpZ2hsaWdodFwiXG4gICAgICAgIFtjbGFzcy5mZC1ncmlkLWxpc3RfX2hpZ2hsaWdodC0tcG9zaXRpdmVdPVwic3RhdHVzID09PSAnc3VjY2VzcydcIlxuICAgICAgICBbY2xhc3MuZmQtZ3JpZC1saXN0X19oaWdobGlnaHQtLWNyaXRpY2FsXT1cInN0YXR1cyA9PT0gJ3dhcm5pbmcnXCJcbiAgICAgICAgW2NsYXNzLmZkLWdyaWQtbGlzdF9faGlnaGxpZ2h0LS1uZWdhdGl2ZV09XCJzdGF0dXMgPT09ICdlcnJvcidcIlxuICAgICAgICBbY2xhc3MuZmQtZ3JpZC1saXN0X19oaWdobGlnaHQtLW5ldXRyYWxdPVwic3RhdHVzID09PSAnbmV1dHJhbCdcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidjb3JlR3JpZExpc3QubGlzdEl0ZW1TdGF0dXNBcmlhTGFiZWwnIHwgZmRUcmFuc2xhdGUgOiB7IHN0YXR1czogc3RhdHVzIH1cIlxuICAgID48L3NwYW4+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0aW9uTW9kZSA9PT0gJ3NpbmdsZVNlbGVjdCdcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInJhZGlvXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZmQtdG9vbGJhciBmZC1ncmlkLWxpc3RfX2l0ZW0tdG9vbGJhclwiXG4gICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICBjb3VudGVyIHx8XG4gICAgICAgICAgICBpdGVtVG9vbGJhckNvbXBvbmVudD8uY29udGVudFRlbXBsYXRlUmVmIHx8XG4gICAgICAgICAgICAodHlwZSAmJiB0eXBlICE9PSAnaW5hY3RpdmUnICYmIHR5cGUgIT09ICdhY3RpdmUnKSB8fFxuICAgICAgICAgICAgKHNlbGVjdGlvbk1vZGUgIT09ICdub25lJyAmJiBzZWxlY3Rpb25Nb2RlICE9PSAnc2luZ2xlU2VsZWN0JylcbiAgICAgICAgXCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3Rpb25Nb2RlID09PSAnc2luZ2xlU2VsZWN0TGVmdCdcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyYWRpb1wiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0aW9uTW9kZSA9PT0gJ211bHRpU2VsZWN0J1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNoZWNrYm94XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtVG9vbGJhckNvbXBvbmVudD8uY29udGVudFRlbXBsYXRlUmVmXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmQtdG9vbGJhci0tZXh0cmEtY29udGVudFwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtVG9vbGJhckNvbXBvbmVudC5jb250ZW50VGVtcGxhdGVSZWZcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8ZmQtZ3JpZC1saXN0LXRpdGxlLWJhci1zcGFjZXI+PC9mZC1ncmlkLWxpc3QtdGl0bGUtYmFyLXNwYWNlcj5cblxuICAgICAgICA8c3BhblxuICAgICAgICAgICAgKm5nSWY9XCJjb3VudGVyXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZmQtZ3JpZC1saXN0X19pdGVtLWNvdW50ZXJcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInY29yZUdyaWRMaXN0Lmxpc3RJdGVtQ291bnRlckFyaWFMYWJlbCcgfCBmZFRyYW5zbGF0ZSA6IHsgY291bnQ6IGNvdW50ZXIgfVwiXG4gICAgICAgICAgICA+e3sgY291bnRlciB9fTwvc3BhblxuICAgICAgICA+XG5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCJ0eXBlID09PSAnZGV0YWlsJyB8fCB0eXBlID09PSAnZGV0YWlsc0FuZEFjdGl2ZSdcIlxuICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICBnbHlwaD1cImVkaXRcIlxuICAgICAgICAgICAgY2xhc3M9XCJmZC1ncmlkLWxpc3RfX2FjdGlvbi1idXR0b25cIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInY29yZUdyaWRMaXN0Lmxpc3RJdGVtQnV0dG9uRGV0YWlsc1RpdGxlJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgIFt0aXRsZV09XCInY29yZUdyaWRMaXN0Lmxpc3RJdGVtQnV0dG9uRGV0YWlsc1RpdGxlJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgIGZkQ29tcGFjdFxuICAgICAgICAgICAgKGNsaWNrKT1cIl9vbkRldGFpbCgkZXZlbnQpXCJcbiAgICAgICAgPjwvYnV0dG9uPlxuXG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwic2VsZWN0aW9uTW9kZSA9PT0gJ2RlbGV0ZSdcIlxuICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICBnbHlwaD1cImRlY2xpbmVcIlxuICAgICAgICAgICAgY2xhc3M9XCJmZC1ncmlkLWxpc3RfX2FjdGlvbi1idXR0b25cIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInY29yZUdyaWRMaXN0Lmxpc3RJdGVtQnV0dG9uRGVsZXRlVGl0bGUnIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICAgICAgW3RpdGxlXT1cIidjb3JlR3JpZExpc3QubGlzdEl0ZW1CdXR0b25EZWxldGVUaXRsZScgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICB0aXRsZT1cIkRlbGV0ZVwiXG4gICAgICAgICAgICBmZENvbXBhY3RcbiAgICAgICAgICAgIChjbGljayk9XCJfb25EZWxldGUoJGV2ZW50KVwiXG4gICAgICAgID48L2J1dHRvbj5cblxuICAgICAgICA8c3BhbiAqbmdJZj1cInR5cGUgPT09ICduYXZpZ2F0aW9uJ1wiIGNsYXNzPVwiZmQtZ3JpZC1saXN0X19pdGVtLW5hdmlnYXRpb24taW5kaWNhdG9yXCI+XG4gICAgICAgICAgICA8ZmQtaWNvbiBnbHlwaD1cIm5hdmlnYXRpb24tcmlnaHQtYXJyb3dcIj48L2ZkLWljb24+XG4gICAgICAgIDwvc3Bhbj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0aW9uTW9kZSA9PT0gJ3NpbmdsZVNlbGVjdFJpZ2h0J1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInJhZGlvXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImZkLWdyaWQtbGlzdF9faXRlbS1ib2R5XCIgW2NsYXNzLmZkLWdyaWQtbGlzdF9faXRlbS1ib2R5LS1uby1wYWRkaW5nXT1cIm5vUGFkZGluZ1wiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZmQtZ3JpZC1saXN0LWl0ZW0taW1hZ2VdXCI+PC9uZy1jb250ZW50PlxuXG4gICAgICAgIDxkaXYgKm5nSWY9XCJ0aXRsZSB8fCBkZXNjcmlwdGlvblwiIGNsYXNzPVwiZmQtZ3JpZC1saXN0X19pdGVtLWhlYWRlclwiPlxuICAgICAgICAgICAgPGg0ICpuZ0lmPVwidGl0bGVcIiBmZC10aXRsZT57eyB0aXRsZSB9fTwvaDQ+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImRlc2NyaXB0aW9uXCIgY2xhc3M9XCJmZC1ncmlkLWxpc3RfX2l0ZW0tc3VidGl0bGVcIj57eyBkZXNjcmlwdGlvbiB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiAqbmdJZj1cImJvZHk/LnRlbXBsYXRlUmVmXCIgY2xhc3M9XCJmZC1ncmlkLWxpc3RfX2l0ZW0tY29udGVudFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJib2R5LnRlbXBsYXRlUmVmXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdGF0ZSB8fCBmb290ZXJCYXJDb21wb25lbnQ/LmNvbnRlbnRUZW1wbGF0ZVJlZlwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW1Gb290ZXJcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNyYWRpbz5cbiAgICA8aW5wdXRcbiAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwic2VsZWN0aW9uTW9kZSA9PT0gJ3NpbmdsZVNlbGVjdCcgPyAtMSA6IDBcIlxuICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICBjbGFzcz1cImZkLXJhZGlvIGlzLWNvbXBhY3QgZmQtZ3JpZC1saXN0X19yYWRpby1pbnB1dFwiXG4gICAgICAgIFtzdHlsZS5kaXNwbGF5XT1cInNlbGVjdGlvbk1vZGUgPT09ICdzaW5nbGVTZWxlY3QnID8gJ25vbmUnIDogJydcIlxuICAgICAgICBbaWRdPVwiaWQgKyAnLXJhZGlvJ1wiXG4gICAgICAgIFtuYW1lXT1cIidmZC1ncmlkLWxpc3QtaXRlbS10b29sYmFyLScgKyBzZWxlY3Rpb25Nb2RlXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiYXJpYUxhYmVsbGVkQnlcIlxuICAgICAgICBbdmFsdWVdPVwidmFsdWVcIlxuICAgICAgICBbbmdNb2RlbF09XCJfc2VsZWN0ZWRJdGVtXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiJGV2ZW50ICYmIF9zZWxlY3Rpb25JdGVtKCRldmVudClcIlxuICAgIC8+XG4gICAgPGxhYmVsXG4gICAgICAgIGNsYXNzPVwiZmQtcmFkaW9fX2xhYmVsIGZkLWdyaWQtbGlzdF9fcmFkaW8tbGFiZWxcIlxuICAgICAgICBbZm9yXT1cImlkICsgJy1yYWRpbydcIlxuICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgKG1vdXNlb3Zlcik9XCJfc2V0QWN0aXZlKCRldmVudCwgZmFsc2UpXCJcbiAgICAgICAgKG1vdXNlb3V0KT1cIl9zZXRBY3RpdmUoJGV2ZW50LCB0cnVlKVwiXG4gICAgPjwvbGFiZWw+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2NoZWNrYm94PlxuICAgIDxpbnB1dFxuICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICBjbGFzcz1cImZkLWNoZWNrYm94IGlzLWNvbXBhY3QgZmQtZ3JpZC1saXN0X19jaGVja2JveC1pbnB1dFwiXG4gICAgICAgIFtpZF09XCJpZCArICctY2hlY2tib3gnXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiYXJpYUxhYmVsbGVkQnlcIlxuICAgICAgICBbbmdNb2RlbF09XCJfc2VsZWN0ZWRJdGVtXCJcbiAgICAgICAgKGNsaWNrKT1cIl9jaGVja2JveENsaWNrKCRldmVudClcIlxuICAgIC8+XG4gICAgPGxhYmVsIGNsYXNzPVwiZmQtY2hlY2tib3hfX2xhYmVsIGZkLWdyaWQtbGlzdF9fY2hlY2tib3gtbGFiZWxcIiBbZm9yXT1cImlkICsgJy1jaGVja2JveCdcIiB0YWJpbmRleD1cIi0xXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZmQtY2hlY2tib3hfX2NoZWNrbWFya1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvc3Bhbj5cbiAgICA8L2xhYmVsPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNpdGVtRm9vdGVyPlxuICAgIDxkaXYgY2xhc3M9XCJmZC1ncmlkLWxpc3RfX2l0ZW0tYm9keS1hY3Rpb25zXCIgKm5nSWY9XCJmb290ZXJCYXJDb21wb25lbnQgfHwgc3RhdGVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZvb3RlckJhckNvbXBvbmVudD8uY29udGVudFRlbXBsYXRlUmVmXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZm9vdGVyQmFyQ29tcG9uZW50LmNvbnRlbnRUZW1wbGF0ZVJlZlwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWZvb3RlckJhckNvbXBvbmVudD8uY29udGVudFRlbXBsYXRlUmVmICYmIHN0YXRlXCI+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICpuZ0lmPVwic3RhdGUgPT09ICdlcnJvcidcIlxuICAgICAgICAgICAgICAgIGZkLW9iamVjdC1zdGF0dXNcbiAgICAgICAgICAgICAgICBzdGF0dXM9XCJuZWdhdGl2ZVwiXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIidjb3JlR3JpZExpc3QubGlzdEl0ZW1TdGF0dXNDb250YWluc0Vycm9ycycgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInY29yZUdyaWRMaXN0Lmxpc3RJdGVtU3RhdHVzQ29udGFpbnNFcnJvcnMnIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICAgICAgPjwvc3Bhbj5cblxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZmQtZ3JpZC1saXN0X19hY3Rpb24tYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInN0YXRlID09PSAnbG9ja2VkJ1wiXG4gICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgICAgIGdseXBoPVwicHJpdmF0ZVwiXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIidjb3JlR3JpZExpc3QubGlzdEl0ZW1TdGF0dXNMb2NrZWQnIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ2NvcmVHcmlkTGlzdC5saXN0SXRlbVN0YXR1c0xvY2tlZCcgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgZmRDb21wYWN0XG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9jbGlja09uTG9ja2VkKCRldmVudClcIlxuICAgICAgICAgICAgPjwvYnV0dG9uPlxuXG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmZC1ncmlkLWxpc3RfX2FjdGlvbi1idXR0b25cIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwic3RhdGUgPT09ICdkcmFmdCdcIlxuICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidjb3JlR3JpZExpc3QubGlzdEl0ZW1TdGF0dXNEcmFmdCcgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIidjb3JlR3JpZExpc3QubGlzdEl0ZW1TdGF0dXNEcmFmdCcgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgZmRDb21wYWN0XG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9jbGlja09uRHJhZnQoJGV2ZW50KVwiXG4gICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==