@dereekb/dbx-firebase 12.6.2 → 12.6.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -208,6 +208,8 @@ export class DbxFirebaseStorageFileDownloadButtonComponent {
208
208
  if (source?.downloadDetailsChangeCallback) {
209
209
  source.downloadDetailsChangeCallback(details);
210
210
  }
211
+ }, {
212
+ allowSignalWrites: true
211
213
  });
212
214
  // Handlers
213
215
  handleGetDownloadUrl = (value, context) => {
@@ -273,4 +275,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
273
275
  standalone: true
274
276
  }]
275
277
  }] });
276
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZWZpbGUuZG93bmxvYWQuYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL21vZHVsZXMvc3RvcmFnZWZpbGUvY29udGFpbmVyL3N0b3JhZ2VmaWxlLmRvd25sb2FkLmJ1dHRvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwSCxPQUFPLEVBQUUsd0JBQXdCLEVBQTJCLGVBQWUsRUFBRSwrQkFBK0IsRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBa0Isd0JBQXdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUV6TixPQUFPLEVBQXVCLCtCQUErQixFQUFtQyxNQUFNLEVBQVMsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25KLE9BQU8sRUFBRSxxQ0FBcUMsRUFBcUQsTUFBTSx5Q0FBeUMsQ0FBQztBQUVuSixPQUFPLEVBQTBCLCtCQUErQixFQUFrQyxNQUFNLGVBQWUsQ0FBQztBQUN4SCxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxhQUFhLEVBQUUsb0JBQW9CLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVsSCxPQUFPLEVBQUUsU0FBUyxFQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQXNHM0MsTUFBTSxPQUFPLDZDQUE2QztJQUMvQyxTQUFTLEdBQUcsTUFB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QUFJLHlCQUF5QixFQUFFLENBQUM7WUFDOUIseUJBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkMsQ0FBQztJQUNILENBQUMsQ0FBQzt3R0FwVVMsNkNBQTZDOzRGQUE3Qyw2Q0FBNkMsMm9DQWY5Qzs7Ozs7Ozs7OztHQVVULDREQUNTLGtCQUFrQixzUEFBRSxlQUFlLGkyQ0FBRSwrQkFBK0IseUdBQUUsd0JBQXdCLGlMQUFFLGtCQUFrQjs7NEZBSWpILDZDQUE2QztrQkFqQnpELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDBDQUEwQztvQkFDcEQsUUFBUSxFQUFFOzs7Ozs7Ozs7O0dBVVQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLCtCQUErQixFQUFFLHdCQUF3QixFQUFFLGtCQUFrQixDQUFDO29CQUM3SCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgaW5qZWN0LCBpbnB1dCwgb3V0cHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERieEFjdGlvbkRpYWxvZ0RpcmVjdGl2ZSwgRGJ4QWN0aW9uRGlhbG9nRnVuY3Rpb24sIERieEFjdGlvbk1vZHVsZSwgRGJ4QWN0aW9uU25hY2tiYXJFcnJvckRpcmVjdGl2ZSwgRGJ4QW5jaG9yQ29tcG9uZW50LCBEYnhCdXR0b25Db21wb25lbnQsIERieEJ1dHRvblN0eWxlLCBEYnhXZWJGaWxlUHJldmlld1NlcnZpY2UgfSBmcm9tICdAZGVyZWVrYi9kYngtd2ViJztcbmltcG9ydCB7IFN0b3JhZ2VGaWxlRG93bmxvYWRVcmwsIFN0b3JhZ2VGaWxlS2V5IH0gZnJvbSAnQGRlcmVla2IvZmlyZWJhc2UnO1xuaW1wb3J0IHsgQ29udGVudFR5cGVNaW1lVHlwZSwgZGF0ZUZyb21EYXRlT3JUaW1lU2Vjb25kc051bWJlciwgRGF0ZU9yVW5peERhdGVUaW1lU2Vjb25kc051bWJlciwgaXNQYXN0LCBNYXliZSwgTVNfSU5fU0VDT05EIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZVN0b3JhZ2VGaWxlRG93bmxvYWRTZXJ2aWNlLCBEYnhGaXJlYmFzZVN0b3JhZ2VGaWxlRG93bmxvYWRTZXJ2aWNlQ3VzdG9tU291cmNlIH0gZnJvbSAnLi4vc2VydmljZS9zdG9yYWdlZmlsZS5kb3dubG9hZC5zZXJ2aWNlJztcbmltcG9ydCB7IENsaWNrYWJsZUFuY2hvciB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcbmltcG9ydCB7IE1heWJlT2JzZXJ2YWJsZU9yVmFsdWUsIG1heWJlVmFsdWVGcm9tT2JzZXJ2YWJsZU9yVmFsdWUsIFdvcmtJbnN0YW5jZSwgV29ya1VzaW5nQ29udGV4dCB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgdG9PYnNlcnZhYmxlLCB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBpbnRlcnZhbCwgbWFwLCBPYnNlcnZhYmxlLCBvZiwgc2hhcmVSZXBsYXksIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VTdG9yYWdlRmlsZURvd25sb2FkVXJsUGFpciB9IGZyb20gJy4uL3NlcnZpY2Uvc3RvcmFnZWZpbGUuZG93bmxvYWQuc3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IGlzU2FtZURhdGUgfSBmcm9tICdAZGVyZWVrYi9kYXRlJztcblxuZXhwb3J0IGludGVyZmFjZSBEYnhGaXJlYmFzZVN0b3JhZ2VGaWxlRG93bmxvYWREZXRhaWxzIHtcbiAgcmVhZG9ubHkgZG93bmxvYWRVcmw6IFN0b3JhZ2VGaWxlRG93bmxvYWRVcmw7XG4gIHJlYWRvbmx5IG1pbWVUeXBlPzogTWF5YmU8Q29udGVudFR5cGVNaW1lVHlwZT47XG4gIHJlYWRvbmx5IGV4cGlyZXNBdD86IE1heWJlPERhdGU+O1xufVxuXG4vKipcbiAqIFNvdXJjZSBjb25maWd1cmF0aW9uIGZvciB0aGUgRGJ4RmlyZWJhc2VTdG9yYWdlRmlsZURvd25sb2FkQnV0dG9uQ29tcG9uZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERieEZpcmViYXNlU3RvcmFnZUZpbGVEb3dubG9hZEJ1dHRvblNvdXJjZSB7XG4gIC8qKlxuICAgKiBBIHN0YXRpYyBTdG9yYWdlRmlsZUtleSB0byB1c2UuXG4gICAqL1xuICByZWFkb25seSBzdG9yYWdlRmlsZUtleT86IE1heWJlT2JzZXJ2YWJsZU9yVmFsdWU8U3RvcmFnZUZpbGVLZXk+O1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gcHJlLWxvYWQgdGhlIGRvd25sb2FkIHVybCBmcm9tIHRoZSBzb3VyY2UuXG4gICAqXG4gICAqIERlZmF1bHRzIHRvIGZhbHNlLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJlbG9hZD86IE1heWJlPGJvb2xlYW4+O1xuICAvKipcbiAgICogVGhlIGV4cGVjdGVkIG1pbWUgdHlwZSBvZiB0aGUgU3RvcmFnZUZpbGUgdG8gdXNlIHdoZW4gcHJldmlld2luZy5cbiAgICovXG4gIHJlYWRvbmx5IHN0b3JhZ2VGaWxlRW1iZWRNaW1lVHlwZT86IE1heWJlT2JzZXJ2YWJsZU9yVmFsdWU8Q29udGVudFR5cGVNaW1lVHlwZSB8IHN0cmluZz47XG4gIC8qKlxuICAgKiBDdXN0b20gc291cmNlIHRvIHVzZSB3aXRoIHRoZSBEYnhGaXJlYmFzZVN0b3JhZ2VGaWxlRG93bmxvYWRTZXJ2aWNlLiBBIG1vcmUgc2ltcGxlIGFsdGVybmF0aXZlIHRvIHVzaW5nIGhhbmRsZUdldERvd25sb2FkVXJsKCkuXG4gICAqL1xuICByZWFkb25seSBjdXN0b21Tb3VyY2U/OiBNYXliZTxEYnhGaXJlYmFzZVN0b3JhZ2VGaWxlRG93bmxvYWRTZXJ2aWNlQ3VzdG9tU291cmNlPjtcbiAgLyoqXG4gICAqIE9wdGlvbmFsIGN1c3RvbSB3b3JrIHRvIHVzZSB0byBnZXQgdGhlIGRvd25sb2FkIFVSTC5cbiAgICpcbiAgICogSWYgcHJvdmlkZWQsIGN1c3RvbVNvdXJjZSBpcyBpZ25vcmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgaGFuZGxlR2V0RG93bmxvYWRVcmw/OiBNYXliZTxXb3JrVXNpbmdDb250ZXh0PFN0b3JhZ2VGaWxlS2V5LCBEYnhGaXJlYmFzZVN0b3JhZ2VGaWxlRG93bmxvYWRVcmxQYWlyPj47XG4gIC8qKlxuICAgKiBPcHRpb25hbCBjdXN0b20gc3VjY2VzcyBoYW5kbGVyIGZvciB0aGUgZG93bmxvYWQgVVJMLlxuICAgKi9cbiAgcmVhZG9ubHkgaGFuZGxlR2V0RG93bmxvYWRVcmxTdWNjZXNzPzogKHZhbHVlOiBEYnhGaXJlYmFzZVN0b3JhZ2VGaWxlRG93bmxvYWRVcmxQYWlyKSA9PiB2b2lkO1xuICAvKipcbiAgICogT3B0aW9uYWwgY3VzdG9tIGVycm9yIGhhbmRsZXIgZm9yIHRoZSBkb3dubG9hZCBVUkwuXG4gICAqL1xuICByZWFkb25seSBoYW5kbGVHZXREb3dubG9hZFVybEVycm9yPzogKGVycm9yOiB1bmtub3duKSA9PiB2b2lkO1xuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIGRvd25sb2FkIGRldGFpbHMgY2hhbmdlLlxuICAgKi9cbiAgcmVhZG9ubHkgZG93bmxvYWREZXRhaWxzQ2hhbmdlQ2FsbGJhY2s/OiBNYXliZTwoZG93bmxvYWREZXRhaWxzOiBNYXliZTxEYnhGaXJlYmFzZVN0b3JhZ2VGaWxlRG93bmxvYWREZXRhaWxzPikgPT4gdm9pZD47XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgdGhlIERieEZpcmViYXNlU3RvcmFnZUZpbGVEb3dubG9hZEJ1dHRvbkNvbXBvbmVudC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYnhGaXJlYmFzZVN0b3JhZ2VGaWxlRG93bmxvYWRCdXR0b25Db25maWcge1xuICByZWFkb25seSBidXR0b25TdHlsZT86IE1heWJlPERieEJ1dHRvblN0eWxlPjtcbiAgcmVhZG9ubHkgcHJldmlld0J1dHRvblN0eWxlPzogTWF5YmU8RGJ4QnV0dG9uU3R5bGU+O1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gc2hvdyBhIHByZXZpZXcgYnV0dG9uLlxuICAgKlxuICAgKiBEZWZhdWx0cyB0byB0cnVlLlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvd1ByZXZpZXdCdXR0b24/OiBNYXliZTxib29sZWFuPjtcbiAgcmVhZG9ubHkgaWNvbj86IE1heWJlPHN0cmluZz47XG4gIHJlYWRvbmx5IHRleHQ/OiBNYXliZTxzdHJpbmc+O1xuICByZWFkb25seSBkb3dubG9hZFJlYWR5SWNvbj86IE1heWJlPHN0cmluZz47XG4gIHJlYWRvbmx5IGRvd25sb2FkUmVhZHlUZXh0PzogTWF5YmU8c3RyaW5nPjtcbiAgcmVhZG9ubHkgcHJldmlld0ljb24/OiBNYXliZTxzdHJpbmc+O1xuICByZWFkb25seSBwcmV2aWV3VGV4dD86IE1heWJlPHN0cmluZz47XG4gIC8qKlxuICAgKiBPcHRpb25hbCBjdXN0b20gZnVuY3Rpb24gdG8gb3BlbiBhIHByZXZpZXcgZGlhbG9nLiBJZiBub3QgcHJvdmlkZWQsIHRoZSBkZWZhdWx0IHByZXZpZXcgZGlhbG9nIHByb3ZpZGVkIGJ5IHRoZSBEYnhXZWJGaWxlUHJldmlld1NlcnZpY2Ugd2lsbCBiZSB1c2VkLlxuICAgKlxuICAgKiBUaGUgZnVuY3Rpb24gY2FuIHJldHVybiB1bmRlZmluZWQsIGluIHdoaWNoIGNhc2UgdGhlIGRlZmF1bHQgcHJldmlldyBkaWFsb2cgd2lsbCBiZSB1c2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgb3BlbkN1c3RvbVByZXZpZXc/OiBNYXliZTwoZG93bmxvYWRVcmw6IFN0b3JhZ2VGaWxlRG93bmxvYWRVcmwsIGVtYmVkTWltZVR5cGU/OiBNYXliZTxzdHJpbmc+KSA9PiBNYXliZTxNYXREaWFsb2dSZWY8YW55Pj4+O1xuICAvLyBDT01QQVRcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIHByZS1sb2FkIHRoZSBkb3dubG9hZCB1cmwgZnJvbSB0aGUgc291cmNlLlxuICAgKlxuICAgKiBEZWZhdWx0cyB0byBmYWxzZS5cbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgdXNlIHRoZSBwcmVsb2FkIHByb3BlcnR5IG9uIHRoZSBzb3VyY2UvRGJ4RmlyZWJhc2VTdG9yYWdlRmlsZURvd25sb2FkQnV0dG9uU291cmNlIGluc3RlYWQuXG4gICAqL1xuICByZWFkb25seSBwcmVsb2FkPzogTWF5YmU8Ym9vbGVhbj47XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RieC1maXJlYmFzZS1zdG9yYWdlZmlsZS1kb3dubG9hZC1idXR0b24nLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkYngtYW5jaG9yIGRieEFjdGlvbkFuY2hvciBbYW5jaG9yXT1cImFuY2hvclNpZ25hbCgpXCIgZGJ4QWN0aW9uIFtkYnhBY3Rpb25BdXRvVHJpZ2dlcl09XCJwcmVsb2FkU2lnbmFsKClcIiBkYnhBY3Rpb25TbmFja2JhckVycm9yIFtkYnhBY3Rpb25EaXNhYmxlZF09XCIhc3RvcmFnZUZpbGVLZXlTaWduYWwoKVwiIFtkYnhBY3Rpb25WYWx1ZV09XCJzdG9yYWdlRmlsZUtleVNpZ25hbCgpXCIgW2RieEFjdGlvbkhhbmRsZXJdPVwiaGFuZGxlR2V0RG93bmxvYWRVcmxcIiBbZGJ4QWN0aW9uU3VjY2Vzc0hhbmRsZXJdPVwiaGFuZGxlR2V0RG93bmxvYWRVcmxTdWNjZXNzXCIgW2RieEFjdGlvbkVycm9ySGFuZGxlcl09XCJoYW5kbGVHZXREb3dubG9hZFVybEVycm9yXCI+XG4gICAgICA8ZGJ4LWJ1dHRvbiBkYnhBY3Rpb25CdXR0b24gW2J1dHRvblN0eWxlXT1cImJ1dHRvblN0eWxlU2lnbmFsKClcIiBbaWNvbl09XCJpY29uU2lnbmFsKClcIiBbdGV4dF09XCJ0ZXh0U2lnbmFsKClcIj48L2RieC1idXR0b24+XG4gICAgPC9kYngtYW5jaG9yPlxuICAgIEBpZiAoc2hvd1ByZXZpZXdCdXR0b25TaWduYWwoKSkge1xuICAgICAgPG5nLWNvbnRhaW5lciBkYnhBY3Rpb24gW2RieEFjdGlvbkRpYWxvZ109XCJoYW5kbGVPcGVuUHJldmlld0RpYWxvZ1wiIGRieEFjdGlvbkhhbmRsZXJWYWx1ZT5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJkYngtYnV0dG9uLXNwYWNlclwiPjwvc3Bhbj5cbiAgICAgICAgPGRieC1idXR0b24gZGJ4QWN0aW9uQnV0dG9uIFtidXR0b25TdHlsZV09XCJwcmV2aWV3QnV0dG9uU3R5bGVTaWduYWwoKVwiIFtpY29uXT1cInByZXZpZXdJY29uU2lnbmFsKClcIiBbdGV4dF09XCJwcmV2aWV3VGV4dFNpZ25hbCgpXCI+PC9kYngtYnV0dG9uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgfVxuICBgLFxuICBpbXBvcnRzOiBbRGJ4QnV0dG9uQ29tcG9uZW50LCBEYnhBY3Rpb25Nb2R1bGUsIERieEFjdGlvblNuYWNrYmFyRXJyb3JEaXJlY3RpdmUsIERieEFjdGlvbkRpYWxvZ0RpcmVjdGl2ZSwgRGJ4QW5jaG9yQ29tcG9uZW50XSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgRGJ4RmlyZWJhc2VTdG9yYWdlRmlsZURvd25sb2FkQnV0dG9uQ29tcG9uZW50IHtcbiAgcmVhZG9ubHkgbWF0RGlhbG9nID0gaW5qZWN0KE1hdERpYWxvZyk7XG5cbiAgcmVhZG9ubHkgZGJ4V2ViRmlsZVByZXZpZXdTZXJ2aWNlID0gaW5qZWN0KERieFdlYkZpbGVQcmV2aWV3U2VydmljZSk7XG4gIHJlYWRvbmx5IGRieEZpcmViYXNlU3RvcmFnZUZpbGVEb3dubG9hZFNlcnZpY2UgPSBpbmplY3QoRGJ4RmlyZWJhc2VTdG9yYWdlRmlsZURvd25sb2FkU2VydmljZSk7XG5cbiAgLyoqXG4gICAqIFRoZSBTdG9yYWdlRmlsZUtleSB0byBzZXQgdXAgdGhlIGRvd25sb2FkIGJ1dHRvbiBmb3IuXG4gICAqL1xuICByZWFkb25seSBzdG9yYWdlRmlsZUtleSA9IGlucHV0PE1heWJlPFN0b3JhZ2VGaWxlS2V5Pj4oKTtcblxuICAvKipcbiAgICogVGhlIGRvd25sb2FkIFVSTCB0byB1c2UgZm9yIHRoZSBkb3dubG9hZCBidXR0b24uXG4gICAqL1xuICByZWFkb25seSBzdG9yYWdlRmlsZURvd25sb2FkVXJsID0gaW5wdXQ8TWF5YmU8U3RvcmFnZUZpbGVEb3dubG9hZFVybD4+KCk7XG5cbiAgLyoqXG4gICAqIFRoZSBNSU1FIHR5cGUgdG8gdXNlIHRoZSBlbWJlZCBjb21wb25lbnQuXG4gICAqL1xuICByZWFkb25seSBlbWJlZE1pbWVUeXBlID0gaW5wdXQ8TWF5YmU8Q29udGVudFR5cGVNaW1lVHlwZSB8IHN0cmluZz4+KCk7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIHNob3cgYSBwcmV2aWV3IGJ1dHRvbi5cbiAgICpcbiAgICogRGVmYXVsdHMgdG8gdHJ1ZS5cbiAgICovXG4gIHJlYWRvbmx5IHNob3dQcmV2aWV3QnV0dG9uID0gaW5wdXQ8TWF5YmU8Ym9vbGVhbj4+KHRydWUpO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBwcmUtbG9hZCB0aGUgZG93bmxvYWQgVVJMIGZyb20gdGhlIHNvdXJjZS5cbiAgICovXG4gIHJlYWRvbmx5IHByZWxvYWQgPSBpbnB1dDxNYXliZTxib29sZWFuPj4odW5kZWZpbmVkKTtcblxuICAvKipcbiAgICogT3V0cHV0IGV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgZG93bmxvYWQgZGV0YWlscyBjaGFuZ2UuXG4gICAqL1xuICByZWFkb25seSBkb3dubG9hZERldGFpbHNDaGFuZ2UgPSBvdXRwdXQ8TWF5YmU8RGJ4RmlyZWJhc2VTdG9yYWdlRmlsZURvd25sb2FkRGV0YWlscz4+KCk7XG5cbiAgcmVhZG9ubHkgY29uZmlnID0gaW5wdXQ8TWF5YmU8RGJ4RmlyZWJhc2VTdG9yYWdlRmlsZURvd25sb2FkQnV0dG9uQ29uZmlnPj4oKTtcbiAgcmVhZG9ubHkgc291cmNlID0gaW5wdXQ8TWF5YmU8RGJ4RmlyZWJhc2VTdG9yYWdlRmlsZURvd25sb2FkQnV0dG9uU291cmNlPj4oKTtcblxuICByZWFkb25seSBzb3VyY2UkID0gdG9PYnNlcnZhYmxlKHRoaXMuc291cmNlKTtcblxuICByZWFkb25seSBjb25maWdTaWduYWwgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgY29uZmlnID0gdGhpcy5jb25maWcoKTtcblxuICAgIGNvbnN0IHJlc3VsdDogRGJ4RmlyZWJhc2VTdG9yYWdlRmlsZURvd25sb2FkQnV0dG9uQ29uZmlnID0ge1xuICAgICAgYnV0dG9uU3R5bGU6IGNvbmZpZz8uYnV0dG9uU3R5bGUsXG4gICAgICBwcmV2aWV3QnV0dG9uU3R5bGU6IGNvbmZpZz8ucHJldmlld0J1dHRvblN0eWxlLFxuICAgICAgaWNvbjogY29uZmlnPy5pY29uID8/ICdjbG91ZF9kb3dubG9hZCcsXG4gICAgICB0ZXh0OiBjb25maWc/LnRleHQgPz8gJ1N0YXJ0IERvd25sb2FkJyxcbiAgICAgIGRvd25sb2FkUmVhZHlJY29uOiBjb25maWc/LmRvd25sb2FkUmVhZHlJY29uID8/ICdkb3dubG9hZCcsXG4gICAgICBkb3dubG9hZFJlYWR5VGV4dDogY29uZmlnPy5kb3dubG9hZFJlYWR5VGV4dCA/PyAnU2F2ZSBGaWxlJyxcbiAgICAgIHByZXZpZXdJY29uOiBjb25maWc/LnByZXZpZXdJY29uID8/ICdwcmV2aWV3JyxcbiAgICAgIHByZXZpZXdUZXh0OiBjb25maWc/LnByZXZpZXdUZXh0ID8/ICdWaWV3IEZpbGUnXG4gICAgfTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IHByZWxvYWRTaWduYWwgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgcHJlbG9hZCA9IHRoaXMucHJlbG9hZCgpO1xuICAgIGNvbnN0IHNvdXJjZSA9IHRoaXMuc291cmNlKCk7XG4gICAgY29uc3QgY29uZmlnID0gdGhpcy5jb25maWdTaWduYWwoKTtcbiAgICByZXR1cm4gcHJlbG9hZCA/PyBzb3VyY2U/LnByZWxvYWQgPz8gY29uZmlnLnByZWxvYWQgPz8gZmFsc2U7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGRvd25sb2FkVXJsU2lnbmFsID0gc2lnbmFsPE1heWJlPFN0b3JhZ2VGaWxlRG93bmxvYWRVcmw+Pih1bmRlZmluZWQpO1xuICByZWFkb25seSBkb3dubG9hZE1pbWVUeXBlU2lnbmFsID0gc2lnbmFsPE1heWJlPENvbnRlbnRUeXBlTWltZVR5cGU+Pih1bmRlZmluZWQpO1xuICByZWFkb25seSBkb3dubG9hZFVybEV4cGlyZXNBdFNpZ25hbCA9IHNpZ25hbDxNYXliZTxEYXRlT3JVbml4RGF0ZVRpbWVTZWNvbmRzTnVtYmVyPj4odW5kZWZpbmVkKTtcblxuICByZWFkb25seSBzdG9yYWdlRmlsZUtleUZyb21JbnB1dCQgPSB0b09ic2VydmFibGUodGhpcy5zdG9yYWdlRmlsZUtleSkucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCBzaGFyZVJlcGxheSgxKSk7XG5cbiAgcmVhZG9ubHkgc3RvcmFnZUZpbGVLZXlGcm9tU291cmNlJDogT2JzZXJ2YWJsZTxNYXliZTxTdG9yYWdlRmlsZUtleT4+ID0gdGhpcy5zb3VyY2UkLnBpcGUoXG4gICAgbWFwKChzb3VyY2UpID0+IHNvdXJjZT8uc3RvcmFnZUZpbGVLZXkpLFxuICAgIG1heWJlVmFsdWVGcm9tT2JzZXJ2YWJsZU9yVmFsdWUoKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgc3RvcmFnZUZpbGVLZXkkOiBPYnNlcnZhYmxlPE1heWJlPFN0b3JhZ2VGaWxlS2V5Pj4gPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnN0b3JhZ2VGaWxlS2V5RnJvbUlucHV0JCwgdGhpcy5zdG9yYWdlRmlsZUtleUZyb21Tb3VyY2UkXSkucGlwZShcbiAgICBtYXAoKFtzdG9yYWdlRmlsZUtleUZyb21JbnB1dCwgc3RvcmFnZUZpbGVLZXlGcm9tU291cmNlXSkgPT4ge1xuICAgICAgcmV0dXJuIHN0b3JhZ2VGaWxlS2V5RnJvbUlucHV0ID8/IHN0b3JhZ2VGaWxlS2V5RnJvbVNvdXJjZTtcbiAgICB9KSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgc3RvcmFnZUZpbGVLZXlTaWduYWwgPSB0b1NpZ25hbCh0aGlzLnN0b3JhZ2VGaWxlS2V5JCk7XG5cbiAgcmVhZG9ubHkgaGFzRG93bmxvYWRVcmxTaWduYWwgPSBjb21wdXRlZCgoKSA9PiBCb29sZWFuKHRoaXMuZG93bmxvYWRVcmxTaWduYWwoKSkpO1xuXG4gIHJlYWRvbmx5IGJ1dHRvblN0eWxlU2lnbmFsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuY29uZmlnU2lnbmFsKCk7XG5cbiAgICBjb25zdCByZXN1bHQ6IERieEJ1dHRvblN0eWxlID0ge1xuICAgICAgdHlwZTogJ3JhaXNlZCcsXG4gICAgICAuLi5jb25maWcuYnV0dG9uU3R5bGVcbiAgICB9O1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgcHJldmlld0J1dHRvblN0eWxlU2lnbmFsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuY29uZmlnU2lnbmFsKCk7XG5cbiAgICBjb25zdCByZXN1bHQ6IERieEJ1dHRvblN0eWxlID0ge1xuICAgICAgdHlwZTogJ3JhaXNlZCcsXG4gICAgICAuLi5jb25maWcucHJldmlld0J1dHRvblN0eWxlXG4gICAgfTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGljb25TaWduYWwgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgY29uZmlnID0gdGhpcy5jb25maWdTaWduYWwoKTtcbiAgICBjb25zdCBoYXNEb3dubG9hZFVybCA9IHRoaXMuaGFzRG93bmxvYWRVcmxTaWduYWwoKTtcbiAgICByZXR1cm4gaGFzRG93bmxvYWRVcmwgPyAoY29uZmlnLmRvd25sb2FkUmVhZHlJY29uID8/IGNvbmZpZy5pY29uKSA6IGNvbmZpZy5pY29uO1xuICB9KTtcblxuICByZWFkb25seSB0ZXh0U2lnbmFsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuY29uZmlnU2lnbmFsKCk7XG4gICAgY29uc3QgaGFzRG93bmxvYWRVcmwgPSB0aGlzLmhhc0Rvd25sb2FkVXJsU2lnbmFsKCk7XG4gICAgcmV0dXJuIGhhc0Rvd25sb2FkVXJsID8gKGNvbmZpZy5kb3dubG9hZFJlYWR5VGV4dCA/PyBjb25maWcudGV4dCkgOiBjb25maWcudGV4dDtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgcHJldmlld0ljb25TaWduYWwgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgY29uZmlnID0gdGhpcy5jb25maWdTaWduYWwoKTtcbiAgICByZXR1cm4gY29uZmlnLnByZXZpZXdJY29uO1xuICB9KTtcblxuICByZWFkb25seSBwcmV2aWV3VGV4dFNpZ25hbCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBjb25maWcgPSB0aGlzLmNvbmZpZ1NpZ25hbCgpO1xuICAgIHJldHVybiBjb25maWcucHJldmlld1RleHQ7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGFuY2hvclNpZ25hbCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBkb3dubG9hZFVybCA9IHRoaXMuZG93bmxvYWRVcmxTaWduYWwoKTtcblxuICAgIGxldCByZXN1bHQ6IE1heWJlPENsaWNrYWJsZUFuY2hvcj47XG5cbiAgICBpZiAoZG93bmxvYWRVcmwpIHtcbiAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgdXJsOiBkb3dubG9hZFVybFxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9KTtcblxuICByZWFkb25seSBzdG9yYWdlRmlsZURvd25sb2FkVXJsRWZmZWN0ID0gZWZmZWN0KFxuICAgICgpID0+IHtcbiAgICAgIGNvbnN0IGRvd25sb2FkVXJsID0gdGhpcy5zdG9yYWdlRmlsZURvd25sb2FkVXJsKCk7XG5cbiAgICAgIGlmIChkb3dubG9hZFVybCB8fCBkb3dubG9hZFVybCA9PT0gbnVsbCkge1xuICAgICAgICB0aGlzLmRvd25sb2FkVXJsU2lnbmFsLnNldChkb3dubG9hZFVybCk7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZVxuICAgIH1cbiAgKTtcblxuICAvLyBQcmV2aWV3XG4gIHJlYWRvbmx5IHNob3dQcmV2aWV3QnV0dG9uU2lnbmFsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuY29uZmlnU2lnbmFsKCk7XG4gICAgY29uc3QgaGFzRG93bmxvYWRVcmwgPSB0aGlzLmhhc0Rvd25sb2FkVXJsU2lnbmFsKCk7XG4gICAgcmV0dXJuIGhhc0Rvd25sb2FkVXJsICYmIChjb25maWcuc2hvd1ByZXZpZXdCdXR0b24gPz8gdHJ1ZSk7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IG9wZW5DdXN0b21QcmV2aWV3U2lnbmFsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuY29uZmlnU2lnbmFsKCk7XG4gICAgcmV0dXJuIGNvbmZpZy5vcGVuQ3VzdG9tUHJldmlldztcbiAgfSk7XG5cbiAgcmVhZG9ubHkgaGFuZGxlT3BlblByZXZpZXdEaWFsb2c6IERieEFjdGlvbkRpYWxvZ0Z1bmN0aW9uID0gKCkgPT4ge1xuICAgIGNvbnN0IG9wZW5QcmV2aWV3ID0gdGhpcy5vcGVuQ3VzdG9tUHJldmlld1NpZ25hbCgpO1xuXG4gICAgY29uc3Qgc3JjVXJsID0gdGhpcy5kb3dubG9hZFVybFNpZ25hbCgpIGFzIHN0cmluZztcbiAgICBjb25zdCBpbnB1dEVtYmVkTWltZVR5cGUgPSB0aGlzLmVtYmVkTWltZVR5cGUoKTtcbiAgICBjb25zdCBkb3dubG9hZE1pbWVUeXBlID0gdGhpcy5kb3dubG9hZE1pbWVUeXBlU2lnbmFsKCk7XG4gICAgY29uc3QgZW1iZWRNaW1lVHlwZSA9IGlucHV0RW1iZWRNaW1lVHlwZSA/PyBkb3dubG9hZE1pbWVUeXBlO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIG9wZW5QcmV2aWV3Py4oc3JjVXJsLCBlbWJlZE1pbWVUeXBlKSA/P1xuICAgICAgdGhpcy5kYnhXZWJGaWxlUHJldmlld1NlcnZpY2Uub3BlblByZXZpZXdEaWFsb2coe1xuICAgICAgICBzcmNVcmwsXG4gICAgICAgIGVtYmVkTWltZVR5cGVcbiAgICAgIH0pXG4gICAgKTtcbiAgfTtcblxuICAvLyBDYWNoZWQgVXJsIEVmZmVjdFxuICAvLyBXaGVuIHRoZSBrZXkgY2hhbmdlcywgY2hlY2sgdGhlIGNhY2hlIHRvIHNlZSBpZiBpdCBpcyBhbHJlYWR5IGF2YWlsYWJsZSwgYW5kIHBvcHVsYXRlIHRoZSBkb3dubG9hZCB1cmwgaWYgaXQgaXMuXG4gIHJlYWRvbmx5IGNhY2hlZFVybEZvclN0b3JhZ2VGaWxlS2V5JCA9IHRoaXMuc3RvcmFnZUZpbGVLZXkkLnBpcGUoXG4gICAgc3dpdGNoTWFwKChrZXkpID0+IChrZXkgPyB0aGlzLmRieEZpcmViYXNlU3RvcmFnZUZpbGVEb3dubG9hZFNlcnZpY2UuZ2V0Q2FjaGVkRG93bmxvYWRQYWlyRm9yU3RvcmFnZUZpbGUoa2V5KSA6IG9mKG51bGwpKSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBjYWNoZWRVcmxGb3JTdG9yYWdlRmlsZUtleVNpZ25hbCA9IHRvU2lnbmFsKHRoaXMuY2FjaGVkVXJsRm9yU3RvcmFnZUZpbGVLZXkkKTtcblxuICByZWFkb25seSBjYWNoZWRVcmxFZmZlY3QgPSBlZmZlY3QoXG4gICAgKCkgPT4ge1xuICAgICAgY29uc3QgY2FjaGVkUGFpciA9IHRoaXMuY2FjaGVkVXJsRm9yU3RvcmFnZUZpbGVLZXlTaWduYWwoKTtcblxuICAgICAgaWYgKGNhY2hlZFBhaXIpIHtcbiAgICAgICAgdGhpcy5kb3dubG9hZFVybFNpZ25hbC5zZXQoY2FjaGVkUGFpci5kb3dubG9hZFVybCk7XG4gICAgICAgIHRoaXMuZG93bmxvYWRNaW1lVHlwZVNpZ25hbC5zZXQoY2FjaGVkUGFpci5taW1lVHlwZSk7XG4gICAgICAgIHRoaXMuZG93bmxvYWRVcmxFeHBpcmVzQXRTaWduYWwuc2V0KGNhY2hlZFBhaXIuZXhwaXJlc0F0KTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlXG4gICAgfVxuICApO1xuXG4gIC8vIEV4cGlyYXRpb24gRWZmZWN0XG4gIHJlYWRvbmx5IGRvd25sb2FkVXJsRXhwaXJlc0F0RGF0ZSQgPSB0b09ic2VydmFibGUodGhpcy5kb3dubG9hZFVybEV4cGlyZXNBdFNpZ25hbCkucGlwZShtYXAoZGF0ZUZyb21EYXRlT3JUaW1lU2Vjb25kc051bWJlciksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKGlzU2FtZURhdGUpLCBzaGFyZVJlcGxheSgxKSk7XG4gIHJlYWRvbmx5IGRvd25sb2FkVXJsRXhwaXJlc0F0RGF0ZVNpZ25hbCA9IHRvU2lnbmFsKHRoaXMuZG93bmxvYWRVcmxFeHBpcmVzQXREYXRlJCk7XG5cbiAgcmVhZG9ubHkgZG93bmxvYWRVcmxIYXNFeHBpcmVkJCA9IHRoaXMuZG93bmxvYWRVcmxFeHBpcmVzQXREYXRlJC5waXBlKFxuICAgIHN3aXRjaE1hcCgoeCkgPT4ge1xuICAgICAgbGV0IG9iczogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICAgICAgaWYgKHgpIHtcbiAgICAgICAgb2JzID0gaW50ZXJ2YWwoTVNfSU5fU0VDT05EKS5waXBlKFxuICAgICAgICAgIG1hcCgoKSA9PiBpc1Bhc3QoeCkpLFxuICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9icyA9IG9mKGZhbHNlKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG9icztcbiAgICB9KSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgZG93bmxvYWRVcmxIYXNFeHBpcmVkU2lnbmFsID0gdG9TaWduYWwodGhpcy5kb3dubG9hZFVybEhhc0V4cGlyZWQkKTtcbiAgcmVhZG9ubHkgZG93bmxvYWRVcmxIYXNFeHBpcmVkRWZmZWN0ID0gZWZmZWN0KFxuICAgICgpID0+IHtcbiAgICAgIGNvbnN0IGV4cGlyZWQgPSB0aGlzLmRvd25sb2FkVXJsSGFzRXhwaXJlZFNpZ25hbCgpO1xuXG4gICAgICBpZiAoZXhwaXJlZCkge1xuICAgICAgICB0aGlzLmRvd25sb2FkVXJsU2lnbmFsLnNldCh1bmRlZmluZWQpO1xuICAgICAgICB0aGlzLmRvd25sb2FkTWltZVR5cGVTaWduYWwuc2V0KHVuZGVmaW5lZCk7XG4gICAgICAgIHRoaXMuZG93bmxvYWRVcmxFeHBpcmVzQXRTaWduYWwuc2V0KHVuZGVmaW5lZCk7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZVxuICAgIH1cbiAgKTtcblxuICAvLyBPdXRwdXQgRWZmZWN0XG4gIHJlYWRvbmx5IGRvd25sb2FkRGV0YWlsc1NpZ25hbCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBkb3dubG9hZFVybCA9IHRoaXMuZG93bmxvYWRVcmxTaWduYWwoKTtcbiAgICBjb25zdCBtaW1lVHlwZSA9IHRoaXMuZG93bmxvYWRNaW1lVHlwZVNpZ25hbCgpO1xuICAgIGNvbnN0IGV4cGlyZXNBdCA9IHRoaXMuZG93bmxvYWRVcmxFeHBpcmVzQXREYXRlU2lnbmFsKCk7XG5cbiAgICBjb25zdCBkZXRhaWxzOiBNYXliZTxEYnhGaXJlYmFzZVN0b3JhZ2VGaWxlRG93bmxvYWREZXRhaWxzPiA9XG4gICAgICBkb3dubG9hZFVybCAhPSBudWxsXG4gICAgICAgID8ge1xuICAgICAgICAgICAgZG93bmxvYWRVcmwsXG4gICAgICAgICAgICBtaW1lVHlwZSxcbiAgICAgICAgICAgIGV4cGlyZXNBdFxuICAgICAgICAgIH1cbiAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICByZXR1cm4gZGV0YWlscztcbiAgfSk7XG5cbiAgcmVhZG9ubHkgZG93bmxvYWREZXRhaWxzQ2hhbmdlZEVmZmVjdCA9IGVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgZGV0YWlsczogTWF5YmU8RGJ4RmlyZWJhc2VTdG9yYWdlRmlsZURvd25sb2FkRGV0YWlscz4gPSB0aGlzLmRvd25sb2FkRGV0YWlsc1NpZ25hbCgpO1xuICAgIHRoaXMuZG93bmxvYWREZXRhaWxzQ2hhbmdlLmVtaXQoZGV0YWlscyk7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IHNvdXJjZURvd25sb2FkRGV0YWlsc0NoYW5nZUNhbGxiYWNrRWZmZWN0ID0gZWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBkZXRhaWxzOiBNYXliZTxEYnhGaXJlYmFzZVN0b3JhZ2VGaWxlRG93bmxvYWREZXRhaWxzPiA9IHRoaXMuZG93bmxvYWREZXRhaWxzU2lnbmFsKCk7XG4gICAgY29uc3Qgc291cmNlID0gdGhpcy5zb3VyY2UoKTtcblxuICAgIGlmIChzb3VyY2U/LmRvd25sb2FkRGV0YWlsc0NoYW5nZUNhbGxiYWNrKSB7XG4gICAgICBzb3VyY2UuZG93bmxvYWREZXRhaWxzQ2hhbmdlQ2FsbGJhY2soZGV0YWlscyk7XG4gICAgfVxuICB9KTtcblxuICAvLyBIYW5kbGVyc1xuICByZWFkb25seSBoYW5kbGVHZXREb3dubG9hZFVybDogV29ya1VzaW5nQ29udGV4dDxTdG9yYWdlRmlsZUtleSwgRGJ4RmlyZWJhc2VTdG9yYWdlRmlsZURvd25sb2FkVXJsUGFpcj4gPSAodmFsdWU6IFN0b3JhZ2VGaWxlS2V5LCBjb250ZXh0OiBXb3JrSW5zdGFuY2U8U3RvcmFnZUZpbGVLZXksIERieEZpcmViYXNlU3RvcmFnZUZpbGVEb3dubG9hZFVybFBhaXI+KSA9PiB7XG4gICAgY29uc3Qgc291cmNlID0gdGhpcy5zb3VyY2UoKTtcbiAgICBjb25zdCB7IGN1c3RvbVNvdXJjZSwgaGFuZGxlR2V0RG93bmxvYWRVcmwgfSA9IHNvdXJjZSA/PyB7fTtcblxuICAgIGlmIChoYW5kbGVHZXREb3dubG9hZFVybCkge1xuICAgICAgaGFuZGxlR2V0RG93bmxvYWRVcmwodmFsdWUsIGNvbnRleHQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb250ZXh0LnN0YXJ0V29ya2luZ1dpdGhPYnNlcnZhYmxlKHRoaXMuZGJ4RmlyZWJhc2VTdG9yYWdlRmlsZURvd25sb2FkU2VydmljZS5kb3dubG9hZFBhaXJGb3JTdG9yYWdlRmlsZVVzaW5nU291cmNlKHZhbHVlLCBjdXN0b21Tb3VyY2UpKTtcbiAgICB9XG4gIH07XG5cbiAgcmVhZG9ubHkgaGFuZGxlR2V0RG93bmxvYWRVcmxTdWNjZXNzID0gKHZhbHVlOiBEYnhGaXJlYmFzZVN0b3JhZ2VGaWxlRG93bmxvYWRVcmxQYWlyKSA9PiB7XG4gICAgY29uc3Qgc291cmNlID0gdGhpcy5zb3VyY2UoKTtcbiAgICBjb25zdCB7IGhhbmRsZUdldERvd25sb2FkVXJsU3VjY2VzcyB9ID0gc291cmNlID8/IHt9O1xuXG4gICAgdGhpcy5kb3dubG9hZFVybFNpZ25hbC5zZXQodmFsdWUuZG93bmxvYWRVcmwpO1xuICAgIHRoaXMuZG93bmxvYWRNaW1lVHlwZVNpZ25hbC5zZXQodmFsdWUubWltZVR5cGUpO1xuICAgIHRoaXMuZG93bmxvYWRVcmxFeHBpcmVzQXRTaWduYWwuc2V0KHZhbHVlLmV4cGlyZXNBdCk7XG5cbiAgICBpZiAoaGFuZGxlR2V0RG93bmxvYWRVcmxTdWNjZXNzKSB7XG4gICAgICBoYW5kbGVHZXREb3dubG9hZFVybFN1Y2Nlc3ModmFsdWUpO1xuICAgIH1cbiAgfTtcblxuICByZWFkb25seSBoYW5kbGVHZXREb3dubG9hZFVybEVycm9yID0gKGVycm9yOiB1bmtub3duKSA9PiB7XG4gICAgY29uc3Qgc291cmNlID0gdGhpcy5zb3VyY2UoKTtcbiAgICBjb25zdCB7IGhhbmRsZUdldERvd25sb2FkVXJsRXJyb3IgfSA9IHNvdXJjZSA/PyB7fTtcblxuICAgIHRoaXMuZG93bmxvYWRVcmxTaWduYWwuc2V0KHVuZGVmaW5lZCk7XG4gICAgdGhpcy5kb3dubG9hZE1pbWVUeXBlU2lnbmFsLnNldCh1bmRlZmluZWQpO1xuICAgIHRoaXMuZG93bmxvYWRVcmxFeHBpcmVzQXRTaWduYWwuc2V0KHVuZGVmaW5lZCk7XG5cbiAgICBpZiAoaGFuZGxlR2V0RG93bmxvYWRVcmxFcnJvcikge1xuICAgICAgaGFuZGxlR2V0RG93bmxvYWRVcmxFcnJvcihlcnJvcik7XG4gICAgfVxuICB9O1xufVxuIl19
278
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZWZpbGUuZG93bmxvYWQuYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL21vZHVsZXMvc3RvcmFnZWZpbGUvY29udGFpbmVyL3N0b3JhZ2VmaWxlLmRvd25sb2FkLmJ1dHRvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwSCxPQUFPLEVBQUUsd0JBQXdCLEVBQTJCLGVBQWUsRUFBRSwrQkFBK0IsRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBa0Isd0JBQXdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUV6TixPQUFPLEVBQXVCLCtCQUErQixFQUFtQyxNQUFNLEVBQVMsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25KLE9BQU8sRUFBRSxxQ0FBcUMsRUFBcUQsTUFBTSx5Q0FBeUMsQ0FBQztBQUVuSixPQUFPLEVBQTBCLCtCQUErQixFQUFrQyxNQUFNLGVBQWUsQ0FBQztBQUN4SCxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxhQUFhLEVBQUUsb0JBQW9CLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVsSCxPQUFPLEVBQUUsU0FBUyxFQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQXNHM0MsTUFBTSxPQUFPLDZDQUE2QztJQUMvQyxTQUFTLEdBQUcsTUFB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LEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUUvQyxJQUFJLHlCQUF5QixFQUFFLENBQUM7WUFDOUIseUJBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkMsQ0FBQztJQUNILENBQUMsQ0FBQzt3R0F6VVMsNkNBQTZDOzRGQUE3Qyw2Q0FBNkMsMm9DQWY5Qzs7Ozs7Ozs7OztHQVVULDREQUNTLGtCQUFrQixzUEFBRSxlQUFlLGkyQ0FBRSwrQkFBK0IseUdBQUUsd0JBQXdCLGlMQUFFLGtCQUFrQjs7NEZBSWpILDZDQUE2QztrQkFqQnpELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDBDQUEwQztvQkFDcEQsUUFBUSxFQUFFOzs7Ozs7Ozs7O0dBVVQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLCtCQUErQixFQUFFLHdCQUF3QixFQUFFLGtCQUFrQixDQUFDO29CQUM3SCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgaW5qZWN0LCBpbnB1dCwgb3V0cHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERieEFjdGlvbkRpYWxvZ0RpcmVjdGl2ZSwgRGJ4QWN0aW9uRGlhbG9nRnVuY3Rpb24sIERieEFjdGlvbk1vZHVsZSwgRGJ4QWN0aW9uU25hY2tiYXJFcnJvckRpcmVjdGl2ZSwgRGJ4QW5jaG9yQ29tcG9uZW50LCBEYnhCdXR0b25Db21wb25lbnQsIERieEJ1dHRvblN0eWxlLCBEYnhXZWJGaWxlUHJldmlld1NlcnZpY2UgfSBmcm9tICdAZGVyZWVrYi9kYngtd2ViJztcbmltcG9ydCB7IFN0b3JhZ2VGaWxlRG93bmxvYWRVcmwsIFN0b3JhZ2VGaWxlS2V5IH0gZnJvbSAnQGRlcmVla2IvZmlyZWJhc2UnO1xuaW1wb3J0IHsgQ29udGVudFR5cGVNaW1lVHlwZSwgZGF0ZUZyb21EYXRlT3JUaW1lU2Vjb25kc051bWJlciwgRGF0ZU9yVW5peERhdGVUaW1lU2Vjb25kc051bWJlciwgaXNQYXN0LCBNYXliZSwgTVNfSU5fU0VDT05EIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZVN0b3JhZ2VGaWxlRG93bmxvYWRTZXJ2aWNlLCBEYnhGaXJlYmFzZVN0b3JhZ2VGaWxlRG93bmxvYWRTZXJ2aWNlQ3VzdG9tU291cmNlIH0gZnJvbSAnLi4vc2VydmljZS9zdG9yYWdlZmlsZS5kb3dubG9hZC5zZXJ2aWNlJztcbmltcG9ydCB7IENsaWNrYWJsZUFuY2hvciB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcbmltcG9ydCB7IE1heWJlT2JzZXJ2YWJsZU9yVmFsdWUsIG1heWJlVmFsdWVGcm9tT2JzZXJ2YWJsZU9yVmFsdWUsIFdvcmtJbnN0YW5jZSwgV29ya1VzaW5nQ29udGV4dCB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgdG9PYnNlcnZhYmxlLCB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBpbnRlcnZhbCwgbWFwLCBPYnNlcnZhYmxlLCBvZiwgc2hhcmVSZXBsYXksIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VTdG9yYWdlRmlsZURvd25sb2FkVXJsUGFpciB9IGZyb20gJy4uL3NlcnZpY2Uvc3RvcmFnZWZpbGUuZG93bmxvYWQuc3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IGlzU2FtZURhdGUgfSBmcm9tICdAZGVyZWVrYi9kYXRlJztcblxuZXhwb3J0IGludGVyZmFjZSBEYnhGaXJlYmFzZVN0b3JhZ2VGaWxlRG93bmxvYWREZXRhaWxzIHtcbiAgcmVhZG9ubHkgZG93bmxvYWRVcmw6IFN0b3JhZ2VGaWxlRG93bmxvYWRVcmw7XG4gIHJlYWRvbmx5IG1pbWVUeXBlPzogTWF5YmU8Q29udGVudFR5cGVNaW1lVHlwZT47XG4gIHJlYWRvbmx5IGV4cGlyZXNBdD86IE1heWJlPERhdGU+O1xufVxuXG4vKipcbiAqIFNvdXJjZSBjb25maWd1cmF0aW9uIGZvciB0aGUgRGJ4RmlyZWJhc2VTdG9yYWdlRmlsZURvd25sb2FkQnV0dG9uQ29tcG9uZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERieEZpcmViYXNlU3RvcmFnZUZpbGVEb3dubG9hZEJ1dHRvblNvdXJjZSB7XG4gIC8qKlxuICAgKiBBIHN0YXRpYyBTdG9yYWdlRmlsZUtleSB0byB1c2UuXG4gICAqL1xuICByZWFkb25seSBzdG9yYWdlRmlsZUtleT86IE1heWJlT2JzZXJ2YWJsZU9yVmFsdWU8U3RvcmFnZUZpbGVLZXk+O1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gcHJlLWxvYWQgdGhlIGRvd25sb2FkIHVybCBmcm9tIHRoZSBzb3VyY2UuXG4gICAqXG4gICAqIERlZmF1bHRzIHRvIGZhbHNlLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJlbG9hZD86IE1heWJlPGJvb2xlYW4+O1xuICAvKipcbiAgICogVGhlIGV4cGVjdGVkIG1pbWUgdHlwZSBvZiB0aGUgU3RvcmFnZUZpbGUgdG8gdXNlIHdoZW4gcHJldmlld2luZy5cbiAgICovXG4gIHJlYWRvbmx5IHN0b3JhZ2VGaWxlRW1iZWRNaW1lVHlwZT86IE1heWJlT2JzZXJ2YWJsZU9yVmFsdWU8Q29udGVudFR5cGVNaW1lVHlwZSB8IHN0cmluZz47XG4gIC8qKlxuICAgKiBDdXN0b20gc291cmNlIHRvIHVzZSB3aXRoIHRoZSBEYnhGaXJlYmFzZVN0b3JhZ2VGaWxlRG93bmxvYWRTZXJ2aWNlLiBBIG1vcmUgc2ltcGxlIGFsdGVybmF0aXZlIHRvIHVzaW5nIGhhbmRsZUdldERvd25sb2FkVXJsKCkuXG4gICAqL1xuICByZWFkb25seSBjdXN0b21Tb3VyY2U/OiBNYXliZTxEYnhGaXJlYmFzZVN0b3JhZ2VGaWxlRG93bmxvYWRTZXJ2aWNlQ3VzdG9tU291cmNlPjtcbiAgLyoqXG4gICAqIE9wdGlvbmFsIGN1c3RvbSB3b3JrIHRvIHVzZSB0byBnZXQgdGhlIGRvd25sb2FkIFVSTC5cbiAgICpcbiAgICogSWYgcHJvdmlkZWQsIGN1c3RvbVNvdXJjZSBpcyBpZ25vcmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgaGFuZGxlR2V0RG93bmxvYWRVcmw/OiBNYXliZTxXb3JrVXNpbmdDb250ZXh0PFN0b3JhZ2VGaWxlS2V5LCBEYnhGaXJlYmFzZVN0b3JhZ2VGaWxlRG93bmxvYWRVcmxQYWlyPj47XG4gIC8qKlxuICAgKiBPcHRpb25hbCBjdXN0b20gc3VjY2VzcyBoYW5kbGVyIGZvciB0aGUgZG93bmxvYWQgVVJMLlxuICAgKi9cbiAgcmVhZG9ubHkgaGFuZGxlR2V0RG93bmxvYWRVcmxTdWNjZXNzPzogKHZhbHVlOiBEYnhGaXJlYmFzZVN0b3JhZ2VGaWxlRG93bmxvYWRVcmxQYWlyKSA9PiB2b2lkO1xuICAvKipcbiAgICogT3B0aW9uYWwgY3VzdG9tIGVycm9yIGhhbmRsZXIgZm9yIHRoZSBkb3dubG9hZCBVUkwuXG4gICAqL1xuICByZWFkb25seSBoYW5kbGVHZXREb3dubG9hZFVybEVycm9yPzogKGVycm9yOiB1bmtub3duKSA9PiB2b2lkO1xuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIGRvd25sb2FkIGRldGFpbHMgY2hhbmdlLlxuICAgKi9cbiAgcmVhZG9ubHkgZG93bmxvYWREZXRhaWxzQ2hhbmdlQ2FsbGJhY2s/OiBNYXliZTwoZG93bmxvYWREZXRhaWxzOiBNYXliZTxEYnhGaXJlYmFzZVN0b3JhZ2VGaWxlRG93bmxvYWREZXRhaWxzPikgPT4gdm9pZD47XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgdGhlIERieEZpcmViYXNlU3RvcmFnZUZpbGVEb3dubG9hZEJ1dHRvbkNvbXBvbmVudC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYnhGaXJlYmFzZVN0b3JhZ2VGaWxlRG93bmxvYWRCdXR0b25Db25maWcge1xuICByZWFkb25seSBidXR0b25TdHlsZT86IE1heWJlPERieEJ1dHRvblN0eWxlPjtcbiAgcmVhZG9ubHkgcHJldmlld0J1dHRvblN0eWxlPzogTWF5YmU8RGJ4QnV0dG9uU3R5bGU+O1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gc2hvdyBhIHByZXZpZXcgYnV0dG9uLlxuICAgKlxuICAgKiBEZWZhdWx0cyB0byB0cnVlLlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvd1ByZXZpZXdCdXR0b24/OiBNYXliZTxib29sZWFuPjtcbiAgcmVhZG9ubHkgaWNvbj86IE1heWJlPHN0cmluZz47XG4gIHJlYWRvbmx5IHRleHQ/OiBNYXliZTxzdHJpbmc+O1xuICByZWFkb25seSBkb3dubG9hZFJlYWR5SWNvbj86IE1heWJlPHN0cmluZz47XG4gIHJlYWRvbmx5IGRvd25sb2FkUmVhZHlUZXh0PzogTWF5YmU8c3RyaW5nPjtcbiAgcmVhZG9ubHkgcHJldmlld0ljb24/OiBNYXliZTxzdHJpbmc+O1xuICByZWFkb25seSBwcmV2aWV3VGV4dD86IE1heWJlPHN0cmluZz47XG4gIC8qKlxuICAgKiBPcHRpb25hbCBjdXN0b20gZnVuY3Rpb24gdG8gb3BlbiBhIHByZXZpZXcgZGlhbG9nLiBJZiBub3QgcHJvdmlkZWQsIHRoZSBkZWZhdWx0IHByZXZpZXcgZGlhbG9nIHByb3ZpZGVkIGJ5IHRoZSBEYnhXZWJGaWxlUHJldmlld1NlcnZpY2Ugd2lsbCBiZSB1c2VkLlxuICAgKlxuICAgKiBUaGUgZnVuY3Rpb24gY2FuIHJldHVybiB1bmRlZmluZWQsIGluIHdoaWNoIGNhc2UgdGhlIGRlZmF1bHQgcHJldmlldyBkaWFsb2cgd2lsbCBiZSB1c2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgb3BlbkN1c3RvbVByZXZpZXc/OiBNYXliZTwoZG93bmxvYWRVcmw6IFN0b3JhZ2VGaWxlRG93bmxvYWRVcmwsIGVtYmVkTWltZVR5cGU/OiBNYXliZTxzdHJpbmc+KSA9PiBNYXliZTxNYXREaWFsb2dSZWY8YW55Pj4+O1xuICAvLyBDT01QQVRcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIHByZS1sb2FkIHRoZSBkb3dubG9hZCB1cmwgZnJvbSB0aGUgc291cmNlLlxuICAgKlxuICAgKiBEZWZhdWx0cyB0byBmYWxzZS5cbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgdXNlIHRoZSBwcmVsb2FkIHByb3BlcnR5IG9uIHRoZSBzb3VyY2UvRGJ4RmlyZWJhc2VTdG9yYWdlRmlsZURvd25sb2FkQnV0dG9uU291cmNlIGluc3RlYWQuXG4gICAqL1xuICByZWFkb25seSBwcmVsb2FkPzogTWF5YmU8Ym9vbGVhbj47XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RieC1maXJlYmFzZS1zdG9yYWdlZmlsZS1kb3dubG9hZC1idXR0b24nLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkYngtYW5jaG9yIGRieEFjdGlvbkFuY2hvciBbYW5jaG9yXT1cImFuY2hvclNpZ25hbCgpXCIgZGJ4QWN0aW9uIFtkYnhBY3Rpb25BdXRvVHJpZ2dlcl09XCJwcmVsb2FkU2lnbmFsKClcIiBkYnhBY3Rpb25TbmFja2JhckVycm9yIFtkYnhBY3Rpb25EaXNhYmxlZF09XCIhc3RvcmFnZUZpbGVLZXlTaWduYWwoKVwiIFtkYnhBY3Rpb25WYWx1ZV09XCJzdG9yYWdlRmlsZUtleVNpZ25hbCgpXCIgW2RieEFjdGlvbkhhbmRsZXJdPVwiaGFuZGxlR2V0RG93bmxvYWRVcmxcIiBbZGJ4QWN0aW9uU3VjY2Vzc0hhbmRsZXJdPVwiaGFuZGxlR2V0RG93bmxvYWRVcmxTdWNjZXNzXCIgW2RieEFjdGlvbkVycm9ySGFuZGxlcl09XCJoYW5kbGVHZXREb3dubG9hZFVybEVycm9yXCI+XG4gICAgICA8ZGJ4LWJ1dHRvbiBkYnhBY3Rpb25CdXR0b24gW2J1dHRvblN0eWxlXT1cImJ1dHRvblN0eWxlU2lnbmFsKClcIiBbaWNvbl09XCJpY29uU2lnbmFsKClcIiBbdGV4dF09XCJ0ZXh0U2lnbmFsKClcIj48L2RieC1idXR0b24+XG4gICAgPC9kYngtYW5jaG9yPlxuICAgIEBpZiAoc2hvd1ByZXZpZXdCdXR0b25TaWduYWwoKSkge1xuICAgICAgPG5nLWNvbnRhaW5lciBkYnhBY3Rpb24gW2RieEFjdGlvbkRpYWxvZ109XCJoYW5kbGVPcGVuUHJldmlld0RpYWxvZ1wiIGRieEFjdGlvbkhhbmRsZXJWYWx1ZT5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJkYngtYnV0dG9uLXNwYWNlclwiPjwvc3Bhbj5cbiAgICAgICAgPGRieC1idXR0b24gZGJ4QWN0aW9uQnV0dG9uIFtidXR0b25TdHlsZV09XCJwcmV2aWV3QnV0dG9uU3R5bGVTaWduYWwoKVwiIFtpY29uXT1cInByZXZpZXdJY29uU2lnbmFsKClcIiBbdGV4dF09XCJwcmV2aWV3VGV4dFNpZ25hbCgpXCI+PC9kYngtYnV0dG9uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgfVxuICBgLFxuICBpbXBvcnRzOiBbRGJ4QnV0dG9uQ29tcG9uZW50LCBEYnhBY3Rpb25Nb2R1bGUsIERieEFjdGlvblNuYWNrYmFyRXJyb3JEaXJlY3RpdmUsIERieEFjdGlvbkRpYWxvZ0RpcmVjdGl2ZSwgRGJ4QW5jaG9yQ29tcG9uZW50XSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgRGJ4RmlyZWJhc2VTdG9yYWdlRmlsZURvd25sb2FkQnV0dG9uQ29tcG9uZW50IHtcbiAgcmVhZG9ubHkgbWF0RGlhbG9nID0gaW5qZWN0KE1hdERpYWxvZyk7XG5cbiAgcmVhZG9ubHkgZGJ4V2ViRmlsZVByZXZpZXdTZXJ2aWNlID0gaW5qZWN0KERieFdlYkZpbGVQcmV2aWV3U2VydmljZSk7XG4gIHJlYWRvbmx5IGRieEZpcmViYXNlU3RvcmFnZUZpbGVEb3dubG9hZFNlcnZpY2UgPSBpbmplY3QoRGJ4RmlyZWJhc2VTdG9yYWdlRmlsZURvd25sb2FkU2VydmljZSk7XG5cbiAgLyoqXG4gICAqIFRoZSBTdG9yYWdlRmlsZUtleSB0byBzZXQgdXAgdGhlIGRvd25sb2FkIGJ1dHRvbiBmb3IuXG4gICAqL1xuICByZWFkb25seSBzdG9yYWdlRmlsZUtleSA9IGlucHV0PE1heWJlPFN0b3JhZ2VGaWxlS2V5Pj4oKTtcblxuICAvKipcbiAgICogVGhlIGRvd25sb2FkIFVSTCB0byB1c2UgZm9yIHRoZSBkb3dubG9hZCBidXR0b24uXG4gICAqL1xuICByZWFkb25seSBzdG9yYWdlRmlsZURvd25sb2FkVXJsID0gaW5wdXQ8TWF5YmU8U3RvcmFnZUZpbGVEb3dubG9hZFVybD4+KCk7XG5cbiAgLyoqXG4gICAqIFRoZSBNSU1FIHR5cGUgdG8gdXNlIHRoZSBlbWJlZCBjb21wb25lbnQuXG4gICAqL1xuICByZWFkb25seSBlbWJlZE1pbWVUeXBlID0gaW5wdXQ8TWF5YmU8Q29udGVudFR5cGVNaW1lVHlwZSB8IHN0cmluZz4+KCk7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIHNob3cgYSBwcmV2aWV3IGJ1dHRvbi5cbiAgICpcbiAgICogRGVmYXVsdHMgdG8gdHJ1ZS5cbiAgICovXG4gIHJlYWRvbmx5IHNob3dQcmV2aWV3QnV0dG9uID0gaW5wdXQ8TWF5YmU8Ym9vbGVhbj4+KHRydWUpO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBwcmUtbG9hZCB0aGUgZG93bmxvYWQgVVJMIGZyb20gdGhlIHNvdXJjZS5cbiAgICovXG4gIHJlYWRvbmx5IHByZWxvYWQgPSBpbnB1dDxNYXliZTxib29sZWFuPj4odW5kZWZpbmVkKTtcblxuICAvKipcbiAgICogT3V0cHV0IGV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgZG93bmxvYWQgZGV0YWlscyBjaGFuZ2UuXG4gICAqL1xuICByZWFkb25seSBkb3dubG9hZERldGFpbHNDaGFuZ2UgPSBvdXRwdXQ8TWF5YmU8RGJ4RmlyZWJhc2VTdG9yYWdlRmlsZURvd25sb2FkRGV0YWlscz4+KCk7XG5cbiAgcmVhZG9ubHkgY29uZmlnID0gaW5wdXQ8TWF5YmU8RGJ4RmlyZWJhc2VTdG9yYWdlRmlsZURvd25sb2FkQnV0dG9uQ29uZmlnPj4oKTtcbiAgcmVhZG9ubHkgc291cmNlID0gaW5wdXQ8TWF5YmU8RGJ4RmlyZWJhc2VTdG9yYWdlRmlsZURvd25sb2FkQnV0dG9uU291cmNlPj4oKTtcblxuICByZWFkb25seSBzb3VyY2UkID0gdG9PYnNlcnZhYmxlKHRoaXMuc291cmNlKTtcblxuICByZWFkb25seSBjb25maWdTaWduYWwgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgY29uZmlnID0gdGhpcy5jb25maWcoKTtcblxuICAgIGNvbnN0IHJlc3VsdDogRGJ4RmlyZWJhc2VTdG9yYWdlRmlsZURvd25sb2FkQnV0dG9uQ29uZmlnID0ge1xuICAgICAgYnV0dG9uU3R5bGU6IGNvbmZpZz8uYnV0dG9uU3R5bGUsXG4gICAgICBwcmV2aWV3QnV0dG9uU3R5bGU6IGNvbmZpZz8ucHJldmlld0J1dHRvblN0eWxlLFxuICAgICAgaWNvbjogY29uZmlnPy5pY29uID8/ICdjbG91ZF9kb3dubG9hZCcsXG4gICAgICB0ZXh0OiBjb25maWc/LnRleHQgPz8gJ1N0YXJ0IERvd25sb2FkJyxcbiAgICAgIGRvd25sb2FkUmVhZHlJY29uOiBjb25maWc/LmRvd25sb2FkUmVhZHlJY29uID8/ICdkb3dubG9hZCcsXG4gICAgICBkb3dubG9hZFJlYWR5VGV4dDogY29uZmlnPy5kb3dubG9hZFJlYWR5VGV4dCA/PyAnU2F2ZSBGaWxlJyxcbiAgICAgIHByZXZpZXdJY29uOiBjb25maWc/LnByZXZpZXdJY29uID8/ICdwcmV2aWV3JyxcbiAgICAgIHByZXZpZXdUZXh0OiBjb25maWc/LnByZXZpZXdUZXh0ID8/ICdWaWV3IEZpbGUnXG4gICAgfTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IHByZWxvYWRTaWduYWwgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgcHJlbG9hZCA9IHRoaXMucHJlbG9hZCgpO1xuICAgIGNvbnN0IHNvdXJjZSA9IHRoaXMuc291cmNlKCk7XG4gICAgY29uc3QgY29uZmlnID0gdGhpcy5jb25maWdTaWduYWwoKTtcbiAgICByZXR1cm4gcHJlbG9hZCA/PyBzb3VyY2U/LnByZWxvYWQgPz8gY29uZmlnLnByZWxvYWQgPz8gZmFsc2U7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGRvd25sb2FkVXJsU2lnbmFsID0gc2lnbmFsPE1heWJlPFN0b3JhZ2VGaWxlRG93bmxvYWRVcmw+Pih1bmRlZmluZWQpO1xuICByZWFkb25seSBkb3dubG9hZE1pbWVUeXBlU2lnbmFsID0gc2lnbmFsPE1heWJlPENvbnRlbnRUeXBlTWltZVR5cGU+Pih1bmRlZmluZWQpO1xuICByZWFkb25seSBkb3dubG9hZFVybEV4cGlyZXNBdFNpZ25hbCA9IHNpZ25hbDxNYXliZTxEYXRlT3JVbml4RGF0ZVRpbWVTZWNvbmRzTnVtYmVyPj4odW5kZWZpbmVkKTtcblxuICByZWFkb25seSBzdG9yYWdlRmlsZUtleUZyb21JbnB1dCQgPSB0b09ic2VydmFibGUodGhpcy5zdG9yYWdlRmlsZUtleSkucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCBzaGFyZVJlcGxheSgxKSk7XG5cbiAgcmVhZG9ubHkgc3RvcmFnZUZpbGVLZXlGcm9tU291cmNlJDogT2JzZXJ2YWJsZTxNYXliZTxTdG9yYWdlRmlsZUtleT4+ID0gdGhpcy5zb3VyY2UkLnBpcGUoXG4gICAgbWFwKChzb3VyY2UpID0+IHNvdXJjZT8uc3RvcmFnZUZpbGVLZXkpLFxuICAgIG1heWJlVmFsdWVGcm9tT2JzZXJ2YWJsZU9yVmFsdWUoKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgc3RvcmFnZUZpbGVLZXkkOiBPYnNlcnZhYmxlPE1heWJlPFN0b3JhZ2VGaWxlS2V5Pj4gPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnN0b3JhZ2VGaWxlS2V5RnJvbUlucHV0JCwgdGhpcy5zdG9yYWdlRmlsZUtleUZyb21Tb3VyY2UkXSkucGlwZShcbiAgICBtYXAoKFtzdG9yYWdlRmlsZUtleUZyb21JbnB1dCwgc3RvcmFnZUZpbGVLZXlGcm9tU291cmNlXSkgPT4ge1xuICAgICAgcmV0dXJuIHN0b3JhZ2VGaWxlS2V5RnJvbUlucHV0ID8/IHN0b3JhZ2VGaWxlS2V5RnJvbVNvdXJjZTtcbiAgICB9KSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgc3RvcmFnZUZpbGVLZXlTaWduYWwgPSB0b1NpZ25hbCh0aGlzLnN0b3JhZ2VGaWxlS2V5JCk7XG5cbiAgcmVhZG9ubHkgaGFzRG93bmxvYWRVcmxTaWduYWwgPSBjb21wdXRlZCgoKSA9PiBCb29sZWFuKHRoaXMuZG93bmxvYWRVcmxTaWduYWwoKSkpO1xuXG4gIHJlYWRvbmx5IGJ1dHRvblN0eWxlU2lnbmFsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuY29uZmlnU2lnbmFsKCk7XG5cbiAgICBjb25zdCByZXN1bHQ6IERieEJ1dHRvblN0eWxlID0ge1xuICAgICAgdHlwZTogJ3JhaXNlZCcsXG4gICAgICAuLi5jb25maWcuYnV0dG9uU3R5bGVcbiAgICB9O1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgcHJldmlld0J1dHRvblN0eWxlU2lnbmFsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuY29uZmlnU2lnbmFsKCk7XG5cbiAgICBjb25zdCByZXN1bHQ6IERieEJ1dHRvblN0eWxlID0ge1xuICAgICAgdHlwZTogJ3JhaXNlZCcsXG4gICAgICAuLi5jb25maWcucHJldmlld0J1dHRvblN0eWxlXG4gICAgfTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGljb25TaWduYWwgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgY29uZmlnID0gdGhpcy5jb25maWdTaWduYWwoKTtcbiAgICBjb25zdCBoYXNEb3dubG9hZFVybCA9IHRoaXMuaGFzRG93bmxvYWRVcmxTaWduYWwoKTtcbiAgICByZXR1cm4gaGFzRG93bmxvYWRVcmwgPyAoY29uZmlnLmRvd25sb2FkUmVhZHlJY29uID8/IGNvbmZpZy5pY29uKSA6IGNvbmZpZy5pY29uO1xuICB9KTtcblxuICByZWFkb25seSB0ZXh0U2lnbmFsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuY29uZmlnU2lnbmFsKCk7XG4gICAgY29uc3QgaGFzRG93bmxvYWRVcmwgPSB0aGlzLmhhc0Rvd25sb2FkVXJsU2lnbmFsKCk7XG4gICAgcmV0dXJuIGhhc0Rvd25sb2FkVXJsID8gKGNvbmZpZy5kb3dubG9hZFJlYWR5VGV4dCA/PyBjb25maWcudGV4dCkgOiBjb25maWcudGV4dDtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgcHJldmlld0ljb25TaWduYWwgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgY29uZmlnID0gdGhpcy5jb25maWdTaWduYWwoKTtcbiAgICByZXR1cm4gY29uZmlnLnByZXZpZXdJY29uO1xuICB9KTtcblxuICByZWFkb25seSBwcmV2aWV3VGV4dFNpZ25hbCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBjb25maWcgPSB0aGlzLmNvbmZpZ1NpZ25hbCgpO1xuICAgIHJldHVybiBjb25maWcucHJldmlld1RleHQ7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGFuY2hvclNpZ25hbCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBkb3dubG9hZFVybCA9IHRoaXMuZG93bmxvYWRVcmxTaWduYWwoKTtcblxuICAgIGxldCByZXN1bHQ6IE1heWJlPENsaWNrYWJsZUFuY2hvcj47XG5cbiAgICBpZiAoZG93bmxvYWRVcmwpIHtcbiAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgdXJsOiBkb3dubG9hZFVybFxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9KTtcblxuICByZWFkb25seSBzdG9yYWdlRmlsZURvd25sb2FkVXJsRWZmZWN0ID0gZWZmZWN0KFxuICAgICgpID0+IHtcbiAgICAgIGNvbnN0IGRvd25sb2FkVXJsID0gdGhpcy5zdG9yYWdlRmlsZURvd25sb2FkVXJsKCk7XG5cbiAgICAgIGlmIChkb3dubG9hZFVybCB8fCBkb3dubG9hZFVybCA9PT0gbnVsbCkge1xuICAgICAgICB0aGlzLmRvd25sb2FkVXJsU2lnbmFsLnNldChkb3dubG9hZFVybCk7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZVxuICAgIH1cbiAgKTtcblxuICAvLyBQcmV2aWV3XG4gIHJlYWRvbmx5IHNob3dQcmV2aWV3QnV0dG9uU2lnbmFsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuY29uZmlnU2lnbmFsKCk7XG4gICAgY29uc3QgaGFzRG93bmxvYWRVcmwgPSB0aGlzLmhhc0Rvd25sb2FkVXJsU2lnbmFsKCk7XG4gICAgcmV0dXJuIGhhc0Rvd25sb2FkVXJsICYmIChjb25maWcuc2hvd1ByZXZpZXdCdXR0b24gPz8gdHJ1ZSk7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IG9wZW5DdXN0b21QcmV2aWV3U2lnbmFsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuY29uZmlnU2lnbmFsKCk7XG4gICAgcmV0dXJuIGNvbmZpZy5vcGVuQ3VzdG9tUHJldmlldztcbiAgfSk7XG5cbiAgcmVhZG9ubHkgaGFuZGxlT3BlblByZXZpZXdEaWFsb2c6IERieEFjdGlvbkRpYWxvZ0Z1bmN0aW9uID0gKCkgPT4ge1xuICAgIGNvbnN0IG9wZW5QcmV2aWV3ID0gdGhpcy5vcGVuQ3VzdG9tUHJldmlld1NpZ25hbCgpO1xuXG4gICAgY29uc3Qgc3JjVXJsID0gdGhpcy5kb3dubG9hZFVybFNpZ25hbCgpIGFzIHN0cmluZztcbiAgICBjb25zdCBpbnB1dEVtYmVkTWltZVR5cGUgPSB0aGlzLmVtYmVkTWltZVR5cGUoKTtcbiAgICBjb25zdCBkb3dubG9hZE1pbWVUeXBlID0gdGhpcy5kb3dubG9hZE1pbWVUeXBlU2lnbmFsKCk7XG4gICAgY29uc3QgZW1iZWRNaW1lVHlwZSA9IGlucHV0RW1iZWRNaW1lVHlwZSA/PyBkb3dubG9hZE1pbWVUeXBlO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIG9wZW5QcmV2aWV3Py4oc3JjVXJsLCBlbWJlZE1pbWVUeXBlKSA/P1xuICAgICAgdGhpcy5kYnhXZWJGaWxlUHJldmlld1NlcnZpY2Uub3BlblByZXZpZXdEaWFsb2coe1xuICAgICAgICBzcmNVcmwsXG4gICAgICAgIGVtYmVkTWltZVR5cGVcbiAgICAgIH0pXG4gICAgKTtcbiAgfTtcblxuICAvLyBDYWNoZWQgVXJsIEVmZmVjdFxuICAvLyBXaGVuIHRoZSBrZXkgY2hhbmdlcywgY2hlY2sgdGhlIGNhY2hlIHRvIHNlZSBpZiBpdCBpcyBhbHJlYWR5IGF2YWlsYWJsZSwgYW5kIHBvcHVsYXRlIHRoZSBkb3dubG9hZCB1cmwgaWYgaXQgaXMuXG4gIHJlYWRvbmx5IGNhY2hlZFVybEZvclN0b3JhZ2VGaWxlS2V5JCA9IHRoaXMuc3RvcmFnZUZpbGVLZXkkLnBpcGUoXG4gICAgc3dpdGNoTWFwKChrZXkpID0+IChrZXkgPyB0aGlzLmRieEZpcmViYXNlU3RvcmFnZUZpbGVEb3dubG9hZFNlcnZpY2UuZ2V0Q2FjaGVkRG93bmxvYWRQYWlyRm9yU3RvcmFnZUZpbGUoa2V5KSA6IG9mKG51bGwpKSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBjYWNoZWRVcmxGb3JTdG9yYWdlRmlsZUtleVNpZ25hbCA9IHRvU2lnbmFsKHRoaXMuY2FjaGVkVXJsRm9yU3RvcmFnZUZpbGVLZXkkKTtcblxuICByZWFkb25seSBjYWNoZWRVcmxFZmZlY3QgPSBlZmZlY3QoXG4gICAgKCkgPT4ge1xuICAgICAgY29uc3QgY2FjaGVkUGFpciA9IHRoaXMuY2FjaGVkVXJsRm9yU3RvcmFnZUZpbGVLZXlTaWduYWwoKTtcblxuICAgICAgaWYgKGNhY2hlZFBhaXIpIHtcbiAgICAgICAgdGhpcy5kb3dubG9hZFVybFNpZ25hbC5zZXQoY2FjaGVkUGFpci5kb3dubG9hZFVybCk7XG4gICAgICAgIHRoaXMuZG93bmxvYWRNaW1lVHlwZVNpZ25hbC5zZXQoY2FjaGVkUGFpci5taW1lVHlwZSk7XG4gICAgICAgIHRoaXMuZG93bmxvYWRVcmxFeHBpcmVzQXRTaWduYWwuc2V0KGNhY2hlZFBhaXIuZXhwaXJlc0F0KTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlXG4gICAgfVxuICApO1xuXG4gIC8vIEV4cGlyYXRpb24gRWZmZWN0XG4gIHJlYWRvbmx5IGRvd25sb2FkVXJsRXhwaXJlc0F0RGF0ZSQgPSB0b09ic2VydmFibGUodGhpcy5kb3dubG9hZFVybEV4cGlyZXNBdFNpZ25hbCkucGlwZShtYXAoZGF0ZUZyb21EYXRlT3JUaW1lU2Vjb25kc051bWJlciksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKGlzU2FtZURhdGUpLCBzaGFyZVJlcGxheSgxKSk7XG4gIHJlYWRvbmx5IGRvd25sb2FkVXJsRXhwaXJlc0F0RGF0ZVNpZ25hbCA9IHRvU2lnbmFsKHRoaXMuZG93bmxvYWRVcmxFeHBpcmVzQXREYXRlJCk7XG5cbiAgcmVhZG9ubHkgZG93bmxvYWRVcmxIYXNFeHBpcmVkJCA9IHRoaXMuZG93bmxvYWRVcmxFeHBpcmVzQXREYXRlJC5waXBlKFxuICAgIHN3aXRjaE1hcCgoeCkgPT4ge1xuICAgICAgbGV0IG9iczogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICAgICAgaWYgKHgpIHtcbiAgICAgICAgb2JzID0gaW50ZXJ2YWwoTVNfSU5fU0VDT05EKS5waXBlKFxuICAgICAgICAgIG1hcCgoKSA9PiBpc1Bhc3QoeCkpLFxuICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9icyA9IG9mKGZhbHNlKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG9icztcbiAgICB9KSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgZG93bmxvYWRVcmxIYXNFeHBpcmVkU2lnbmFsID0gdG9TaWduYWwodGhpcy5kb3dubG9hZFVybEhhc0V4cGlyZWQkKTtcbiAgcmVhZG9ubHkgZG93bmxvYWRVcmxIYXNFeHBpcmVkRWZmZWN0ID0gZWZmZWN0KFxuICAgICgpID0+IHtcbiAgICAgIGNvbnN0IGV4cGlyZWQgPSB0aGlzLmRvd25sb2FkVXJsSGFzRXhwaXJlZFNpZ25hbCgpO1xuXG4gICAgICBpZiAoZXhwaXJlZCkge1xuICAgICAgICB0aGlzLmRvd25sb2FkVXJsU2lnbmFsLnNldCh1bmRlZmluZWQpO1xuICAgICAgICB0aGlzLmRvd25sb2FkTWltZVR5cGVTaWduYWwuc2V0KHVuZGVmaW5lZCk7XG4gICAgICAgIHRoaXMuZG93bmxvYWRVcmxFeHBpcmVzQXRTaWduYWwuc2V0KHVuZGVmaW5lZCk7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZVxuICAgIH1cbiAgKTtcblxuICAvLyBPdXRwdXQgRWZmZWN0XG4gIHJlYWRvbmx5IGRvd25sb2FkRGV0YWlsc1NpZ25hbCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBkb3dubG9hZFVybCA9IHRoaXMuZG93bmxvYWRVcmxTaWduYWwoKTtcbiAgICBjb25zdCBtaW1lVHlwZSA9IHRoaXMuZG93bmxvYWRNaW1lVHlwZVNpZ25hbCgpO1xuICAgIGNvbnN0IGV4cGlyZXNBdCA9IHRoaXMuZG93bmxvYWRVcmxFeHBpcmVzQXREYXRlU2lnbmFsKCk7XG5cbiAgICBjb25zdCBkZXRhaWxzOiBNYXliZTxEYnhGaXJlYmFzZVN0b3JhZ2VGaWxlRG93bmxvYWREZXRhaWxzPiA9XG4gICAgICBkb3dubG9hZFVybCAhPSBudWxsXG4gICAgICAgID8ge1xuICAgICAgICAgICAgZG93bmxvYWRVcmwsXG4gICAgICAgICAgICBtaW1lVHlwZSxcbiAgICAgICAgICAgIGV4cGlyZXNBdFxuICAgICAgICAgIH1cbiAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICByZXR1cm4gZGV0YWlscztcbiAgfSk7XG5cbiAgcmVhZG9ubHkgZG93bmxvYWREZXRhaWxzQ2hhbmdlZEVmZmVjdCA9IGVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgZGV0YWlsczogTWF5YmU8RGJ4RmlyZWJhc2VTdG9yYWdlRmlsZURvd25sb2FkRGV0YWlscz4gPSB0aGlzLmRvd25sb2FkRGV0YWlsc1NpZ25hbCgpO1xuICAgIHRoaXMuZG93bmxvYWREZXRhaWxzQ2hhbmdlLmVtaXQoZGV0YWlscyk7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IHNvdXJjZURvd25sb2FkRGV0YWlsc0NoYW5nZUNhbGxiYWNrRWZmZWN0ID0gZWZmZWN0KFxuICAgICgpID0+IHtcbiAgICAgIGNvbnN0IGRldGFpbHM6IE1heWJlPERieEZpcmViYXNlU3RvcmFnZUZpbGVEb3dubG9hZERldGFpbHM+ID0gdGhpcy5kb3dubG9hZERldGFpbHNTaWduYWwoKTtcbiAgICAgIGNvbnN0IHNvdXJjZSA9IHRoaXMuc291cmNlKCk7XG5cbiAgICAgIGlmIChzb3VyY2U/LmRvd25sb2FkRGV0YWlsc0NoYW5nZUNhbGxiYWNrKSB7XG4gICAgICAgIHNvdXJjZS5kb3dubG9hZERldGFpbHNDaGFuZ2VDYWxsYmFjayhkZXRhaWxzKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlXG4gICAgfVxuICApO1xuXG4gIC8vIEhhbmRsZXJzXG4gIHJlYWRvbmx5IGhhbmRsZUdldERvd25sb2FkVXJsOiBXb3JrVXNpbmdDb250ZXh0PFN0b3JhZ2VGaWxlS2V5LCBEYnhGaXJlYmFzZVN0b3JhZ2VGaWxlRG93bmxvYWRVcmxQYWlyPiA9ICh2YWx1ZTogU3RvcmFnZUZpbGVLZXksIGNvbnRleHQ6IFdvcmtJbnN0YW5jZTxTdG9yYWdlRmlsZUtleSwgRGJ4RmlyZWJhc2VTdG9yYWdlRmlsZURvd25sb2FkVXJsUGFpcj4pID0+IHtcbiAgICBjb25zdCBzb3VyY2UgPSB0aGlzLnNvdXJjZSgpO1xuICAgIGNvbnN0IHsgY3VzdG9tU291cmNlLCBoYW5kbGVHZXREb3dubG9hZFVybCB9ID0gc291cmNlID8/IHt9O1xuXG4gICAgaWYgKGhhbmRsZUdldERvd25sb2FkVXJsKSB7XG4gICAgICBoYW5kbGVHZXREb3dubG9hZFVybCh2YWx1ZSwgY29udGV4dCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnRleHQuc3RhcnRXb3JraW5nV2l0aE9ic2VydmFibGUodGhpcy5kYnhGaXJlYmFzZVN0b3JhZ2VGaWxlRG93bmxvYWRTZXJ2aWNlLmRvd25sb2FkUGFpckZvclN0b3JhZ2VGaWxlVXNpbmdTb3VyY2UodmFsdWUsIGN1c3RvbVNvdXJjZSkpO1xuICAgIH1cbiAgfTtcblxuICByZWFkb25seSBoYW5kbGVHZXREb3dubG9hZFVybFN1Y2Nlc3MgPSAodmFsdWU6IERieEZpcmViYXNlU3RvcmFnZUZpbGVEb3dubG9hZFVybFBhaXIpID0+IHtcbiAgICBjb25zdCBzb3VyY2UgPSB0aGlzLnNvdXJjZSgpO1xuICAgIGNvbnN0IHsgaGFuZGxlR2V0RG93bmxvYWRVcmxTdWNjZXNzIH0gPSBzb3VyY2UgPz8ge307XG5cbiAgICB0aGlzLmRvd25sb2FkVXJsU2lnbmFsLnNldCh2YWx1ZS5kb3dubG9hZFVybCk7XG4gICAgdGhpcy5kb3dubG9hZE1pbWVUeXBlU2lnbmFsLnNldCh2YWx1ZS5taW1lVHlwZSk7XG4gICAgdGhpcy5kb3dubG9hZFVybEV4cGlyZXNBdFNpZ25hbC5zZXQodmFsdWUuZXhwaXJlc0F0KTtcblxuICAgIGlmIChoYW5kbGVHZXREb3dubG9hZFVybFN1Y2Nlc3MpIHtcbiAgICAgIGhhbmRsZUdldERvd25sb2FkVXJsU3VjY2Vzcyh2YWx1ZSk7XG4gICAgfVxuICB9O1xuXG4gIHJlYWRvbmx5IGhhbmRsZUdldERvd25sb2FkVXJsRXJyb3IgPSAoZXJyb3I6IHVua25vd24pID0+IHtcbiAgICBjb25zdCBzb3VyY2UgPSB0aGlzLnNvdXJjZSgpO1xuICAgIGNvbnN0IHsgaGFuZGxlR2V0RG93bmxvYWRVcmxFcnJvciB9ID0gc291cmNlID8/IHt9O1xuXG4gICAgdGhpcy5kb3dubG9hZFVybFNpZ25hbC5zZXQodW5kZWZpbmVkKTtcbiAgICB0aGlzLmRvd25sb2FkTWltZVR5cGVTaWduYWwuc2V0KHVuZGVmaW5lZCk7XG4gICAgdGhpcy5kb3dubG9hZFVybEV4cGlyZXNBdFNpZ25hbC5zZXQodW5kZWZpbmVkKTtcblxuICAgIGlmIChoYW5kbGVHZXREb3dubG9hZFVybEVycm9yKSB7XG4gICAgICBoYW5kbGVHZXREb3dubG9hZFVybEVycm9yKGVycm9yKTtcbiAgICB9XG4gIH07XG59XG4iXX0=
@@ -5739,6 +5739,8 @@ class DbxFirebaseStorageFileDownloadButtonComponent {
5739
5739
  if (source?.downloadDetailsChangeCallback) {
5740
5740
  source.downloadDetailsChangeCallback(details);
5741
5741
  }
5742
+ }, {
5743
+ allowSignalWrites: true
5742
5744
  });
5743
5745
  // Handlers
5744
5746
  handleGetDownloadUrl = (value, context) => {