asap-feed-beta 12.7.3 → 12.7.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.
- package/bundles/asap-feed-beta.umd.js +2 -3
- package/bundles/asap-feed-beta.umd.js.map +1 -1
- package/bundles/asap-feed-beta.umd.min.js +1 -1
- package/bundles/asap-feed-beta.umd.min.js.map +1 -1
- package/esm2015/lib/feed-publication/feed-publication.component.js +3 -4
- package/esm5/lib/feed-publication/feed-publication.component.js +3 -4
- package/fesm2015/asap-feed-beta.js +2 -3
- package/fesm2015/asap-feed-beta.js.map +1 -1
- package/fesm5/asap-feed-beta.js +2 -3
- package/fesm5/asap-feed-beta.js.map +1 -1
- package/package.json +1 -1
|
@@ -329,14 +329,13 @@ export class FeedPublicationComponent {
|
|
|
329
329
|
}
|
|
330
330
|
}));
|
|
331
331
|
}
|
|
332
|
+
console.log("share", data);
|
|
332
333
|
this.publish(data).then((/**
|
|
333
334
|
* @param {?} id
|
|
334
335
|
* @return {?}
|
|
335
336
|
*/
|
|
336
337
|
(id) => {
|
|
337
|
-
|
|
338
|
-
this.userService.usersChecked({ post_id: id, user_id: data.selected_users }).subscribe();
|
|
339
|
-
}
|
|
338
|
+
this.userService.usersChecked({ post_id: id, user_id: data.selected_users, comment: data.title, type: 'post' }, { comments: true }).subscribe();
|
|
340
339
|
}));
|
|
341
340
|
this.selectedUsers = [];
|
|
342
341
|
}
|
|
@@ -797,4 +796,4 @@ if (false) {
|
|
|
797
796
|
/** @type {?} */
|
|
798
797
|
FeedPublicationComponent.prototype.dialog;
|
|
799
798
|
}
|
|
800
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlZC1wdWJsaWNhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hc2FwLWZlZWQtYmV0YS8iLCJzb3VyY2VzIjpbImxpYi9mZWVkLXB1YmxpY2F0aW9uL2ZlZWQtcHVibGljYXRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDaEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzlDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbkYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLElBQUksTUFBTSxhQUFhLENBQUM7QUFVL0IsTUFBTSxPQUFPLHdCQUF3Qjs7Ozs7Ozs7Ozs7OztJ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QUNqQyxzQ0FBMkI7O0lBQzNCLHdDQUF1Qjs7SUFDdkIsMENBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXNhcFNlcnZpY2UsIEdsb2JhbCB9IGZyb20gJ2FzYXAtY3J1ZCc7XG5pbXBvcnQgeyBBc2FwRmVlZFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9hc2FwLWZlZWQuc2VydmljZSc7XG5pbXBvcnQgeyBTdHJlYW1TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvc3RyZWFtLnNlcnZpY2UnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBGaWxlc01vZGVsLCBGZWVkTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvZmVlZC5tb2RlbCc7XG5pbXBvcnQgeyBVdGlsc1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy91dGlscy5zZXJ2aWNlJztcbmltcG9ydCB7IHBhdGggfSBmcm9tICcuLi9jb25zdGFudHMvY29uc3RhbnRzJztcbmltcG9ydCB7IEFuZ3VsYXJGaXJlc3RvcmUgfSBmcm9tICdAYW5ndWxhci9maXJlL2ZpcmVzdG9yZSc7XG5pbXBvcnQgeyBjbGFzc1RvUGxhaW4gfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgTW9kYWxBbm5vdW5jZUNvbXBvbmVudCB9IGZyb20gJy4vbW9kYWwtYW5ub3VuY2UvbW9kYWwtYW5ub3VuY2UuY29tcG9uZW50JztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBVc2VyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3VzZXIuc2VydmljZSc7XG5pbXBvcnQgU3dhbCBmcm9tICdzd2VldGFsZXJ0Mic7XG5cbmRlY2xhcmUgdmFyICQ6IGFueTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZmVlZC1wdWJsaWNhdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9mZWVkLXB1YmxpY2F0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmVlZC1wdWJsaWNhdGlvbi5jb21wb25lbnQuc2NzcycsICcuLi9hc2FwLWZlZWQuYmV0YS5jb21wb25lbnRlLnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbIFN0cmVhbVNlcnZpY2UsIFVzZXJTZXJ2aWNlLCBBc2FwU2VydmljZSBdXG59KVxuZXhwb3J0IGNsYXNzIEZlZWRQdWJsaWNhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgYW5ub3VuY2UgPSBmYWxzZTtcbiAgQElucHV0KCkgaGlkZUZpbHRlckJ5TWUgPSBmYWxzZTtcbiAgQElucHV0KCkgc2V0dGluZ3M7XG4gIEBPdXRwdXQoKSBmZWVkQ3JlYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGZpbHRlciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwdWJsaWMgdXNlcnMgPSBbXTtcblxuICBwdWJsaWMgdG1wRmlsZUFycmF5OiBBcnJheTxGaWxlc01vZGVsPjtcbiAgcHVibGljIHVwbG9hZGluZztcbiAgcHVibGljIHRpdGxlID0gbnVsbDtcbiAgcHVibGljIHByb2dyZXNzO1xuICBwdWJsaWMgbm90QW5ub3VuY2U7XG4gIHB1YmxpYyBuZXdQcm9kdWN0O1xuICBwdWJsaWMgRXhwYW5kSW1nO1xuICBwdWJsaWMgdHlwZSA9ICdwb3N0JztcbiAgcHVibGljIGVtYmVkRmlsZTtcbiAgcHVibGljIHRtcEVtYmVkRmlsZTtcbiAgcHVibGljIHZpZGVvU2VuZGVkSUQ7XG4gIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xuICBwdWJsaWMgbmV3ZmVlZDogYW55O1xuXG4gIHB1YmxpYyBtZXNzYWdlID0gXCJEaWdpdGUgYWNpbWEgbyBub21lIGRhIHBlc3NvYSBxdWUgZGVzZWphIG1hcmNhciwgZW0gc2VndWlkYSBwcmVzc2lvbmUgW0VOVEVSXVwiO1xuICBwdWJsaWMgc2VsZWN0ZWRVc2VyczogYW55ID0ge307XG4gIHB1YmxpYyBsaXN0VHlwZTogJ2NoZWNrZWQnIHwgJ3NlYXJjaCcgPSAnc2VhcmNoJztcblxuICBwdWJsaWMgZmlsdGVyQnlNZSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBnbG9iYWw6IEdsb2JhbCxcbiAgICBwdWJsaWMgZmVlZFNlcnZpY2U6IEFzYXBGZWVkU2VydmljZSxcbiAgICBwdWJsaWMgYXNhcFNlcnZpY2U6IEFzYXBTZXJ2aWNlLFxuICAgIHB1YmxpYyB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgcHVibGljIHNhbml0aXplcjogRG9tU2FuaXRpemVyLFxuICAgIHB1YmxpYyBzdHJlYW1TZXJ2aWNlOiBTdHJlYW1TZXJ2aWNlLFxuICAgIHB1YmxpYyB1dGlsc1NlcnZpY2U6IFV0aWxzU2VydmljZSxcbiAgICBwdWJsaWMgZGI6IEFuZ3VsYXJGaXJlc3RvcmUsXG4gICAgcHVibGljIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nLFxuICApIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMudG1wRmlsZUFycmF5ID0gW107XG4gICAgY29uc29sZS5sb2coJ1ByZWZpeCBQdWJsaWNhdGlvbiAtPicsIHBhdGgoKS5mZWVkKTtcbiAgICB0aGlzLmdldE5ld0ZlZWQoKTtcbiAgfVxuXG4gIGxvYWRVc2Vycyh2YWx1ZTogYW55KSB7XG4gICAgY29uc3Qgc2VhcmNoID0gdmFsdWU7XG4gICAgdGhpcy51c2VycyA9IG51bGw7XG4gICAgdGhpcy5saXN0VHlwZSA9ICdzZWFyY2gnO1xuICAgIGlmIChzZWFyY2ggIT0gJycpIHtcbiAgICAgIHRoaXMubWVzc2FnZSA9IFwiTmVuaHVtIHVzdcOhcmlvIGVuY29udHJhZG8hXCI7XG4gICAgICB0aGlzLnVzZXJTZXJ2aWNlLmdldEFsbFVzZXJzKHNlYXJjaCkuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xuICAgICAgICB0aGlzLnVzZXJzID0gcmVzcG9uc2UuZGF0YS5tYXAoKHVzZXIpID0+IHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaWQ6IHVzZXIudXNlcl9pbmZvLnVzZXJfaWQsXG4gICAgICAgICAgICBuYW1lOiB1c2VyLnVzZXJfaW5mby51c2VyX25hbWUsXG4gICAgICAgICAgICBlbWFpbDogdXNlci5lbWFpbCxcbiAgICAgICAgICAgIHBpY3R1cmU6IHVzZXIucGljdHVyZVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHVwbG9hZEZpbGUoZXZlbnQ6IGFueSkge1xuICAgIGZvciAoY29uc3QgZmlsZSBvZiBldmVudC50YXJnZXQuZmlsZXMpIHtcblxuICAgICAgY29uc3QgdG1wRmlsZTogRmlsZXNNb2RlbCA9IG5ldyBGaWxlc01vZGVsKCk7XG4gICAgICB0bXBGaWxlLnR5cGUgPSB0aGlzLmdldFR5cGVCeU1pbWVUeXBlKGZpbGUudHlwZSk7XG4gICAgICAvLyB0bXBGaWxlLnN0YXR1cyA9IDA7XG4gICAgICB0bXBGaWxlLnRodW1iX3JlbmRlcmluZyA9IGZhbHNlO1xuICAgICAgdG1wRmlsZS52aWRlb19yZW5kZXJpbmcgPSBmYWxzZTtcbiAgICAgIHRtcEZpbGUudmlkZW9fbG93X3JlbmRlcmluZyA9IGZhbHNlO1xuXG4gICAgICBsZXQgZXJyb3IgPSBmYWxzZTtcbiAgICAgIGlmICh0aGlzLmdldFR5cGVCeU1pbWVUeXBlKGZpbGUudHlwZSkgPT09ICd2aWRlbycgJiYgdGhpcy50bXBGaWxlQXJyYXkuZmlsdGVyKCh0bXA6IGFueSkgPT4gdGhpcy5nZXRUeXBlQnlNaW1lVHlwZSh0bXAudHlwZSkgPT09ICd2aWRlbycpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5nbG9iYWwudG9hc3RTZXJ2aWNlLmVycm9yKHtcbiAgICAgICAgICB0aXRsZTogJ09wcycsXG4gICAgICAgICAgbWVzc2FnZTogJ1ZvY8OqIHPDsyBwb2RlIGVudmlhciB1bSB2w61kZW8gcG9yIFBvc3QnXG4gICAgICAgIH0pO1xuICAgICAgICBlcnJvciA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmdldFR5cGVCeU1pbWVUeXBlKGZpbGUudHlwZSkgPT09ICdpbWFnZScgJiYgdGhpcy50bXBGaWxlQXJyYXkuZmlsdGVyKCh0bXA6IGFueSkgPT4gdGhpcy5nZXRUeXBlQnlNaW1lVHlwZSh0bXAudHlwZSkgPT09ICdpbWFnZScpLmxlbmd0aCA+IDQpIHtcbiAgICAgICAgdGhpcy5nbG9iYWwudG9hc3RTZXJ2aWNlLmVycm9yKHtcbiAgICAgICAgICB0aXRsZTogJ09wcycsXG4gICAgICAgICAgbWVzc2FnZTogJ1ZvY8OqIHBvZGUgdXRpbGl6YXIgYXTDqSBubyBtw6F4aW1vIDUgaW1hZ2VucyBubyBzZXUgUG9zdCdcbiAgICAgICAgfSk7XG4gICAgICAgIGVycm9yID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFlcnJvcikge1xuICAgICAgICAvLyB0aGlzLnVwbG9hZGluZyA9IHRydWU7XG5cbiAgICAgICAgaWYgKHRoaXMuZ2V0VHlwZUJ5TWltZVR5cGUoZmlsZS50eXBlKSA9PT0gJ2ltYWdlJykge1xuICAgICAgICAgIGlmIChmaWxlLnR5cGUgPT0gJ2ltYWdlL2dpZicpIHtcbiAgICAgICAgICAgIHRtcEZpbGUubmFtZSA9IGAke3RoaXMuc3RyZWFtU2VydmljZS51aWQoKX0uZ2lmYDtcbiAgICAgICAgICAgIHRtcEZpbGUudXJsID0gYXdhaXQgdGhpcy5yZWFkR0lGKGZpbGUpO1xuICAgICAgICAgICAgdGhpcy50bXBGaWxlQXJyYXkucHVzaCh0bXBGaWxlKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGdldEV4dG5hbWUgPSBmaWxlLm5hbWUuc3BsaXQoJy4nKTtcbiAgICAgICAgICAgIGNvbnN0IGV4dG5hbWUgPSBnZXRFeHRuYW1lW2dldEV4dG5hbWUubGVuZ3RoIC0gMV07XG5cbiAgICAgICAgICAgIHRtcEZpbGUudXJsID0gYXdhaXQgdGhpcy5yZXNpemVJbWFnZXMoZmlsZSwgODAwKTtcbiAgICAgICAgICAgIHRtcEZpbGUubmFtZSA9IGAke3RoaXMuc3RyZWFtU2VydmljZS51aWQoKX0uJHtleHRuYW1lfWA7XG4gICAgICAgICAgICB0aGlzLnRtcEZpbGVBcnJheS5wdXNoKHRtcEZpbGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGVsc2UgaWYgKHRoaXMuZ2V0VHlwZUJ5TWltZVR5cGUoZmlsZS50eXBlKSA9PT0gJ3ZpZGVvJykge1xuICAgICAgICAgIHRoaXMudXBsb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgICBjb25zb2xlLmxvZygnUmVhbGl6YXIgVXBsb2FkIGRlIFZpZGVvJywgdG1wRmlsZSk7XG4gICAgICAgICAgY29uc3QgcmVhZGVyID0gZmlsZTtcbiAgICAgICAgICBpZiAocmVhZGVyKSB7XG4gICAgICAgICAgICBjb25zdCBibG9iVVJMID0gVVJMLmNyZWF0ZU9iamVjdFVSTChyZWFkZXIpO1xuICAgICAgICAgICAgdG1wRmlsZS5uYW1lID0gYmxvYlVSTCBhcyBhbnk7XG4gICAgICAgICAgICB0aGlzLnRtcEZpbGVBcnJheS5wdXNoKHRtcEZpbGUpO1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ1t1cGxvYWRGaWxlXSBpZiByZWFkZXInLCBibG9iVVJMKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLnVwbG9hZGluZyA9IHRydWU7XG4gICAgICAgICAgYXdhaXQgdGhpcy5zdHJlYW1TZXJ2aWNlLnVwbG9hZEZpbGUoZmlsZSkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgcmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZygnW3VwbG9hZEZpbGVdIFJlc3BvbnNlJywgdG1wRmlsZSk7XG4gICAgICAgICAgICAgIGlmICghcmVzcG9uc2UuYm9keSkge1xuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZVsndG90YWwnXSkge1xuICAgICAgICAgICAgICAgICAgdG1wRmlsZS5zdGF0dXMgPSAoKHJlc3BvbnNlWydsb2FkZWQnXSAqIDEwMCkgLyByZXNwb25zZVsndG90YWwnXSkudG9GaXhlZCgwKSBhcyBhbnk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMucHJvZ3Jlc3MgPSB0bXBGaWxlLnN0YXR1cztcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmIChyZXNwb25zZS5ib2R5ICYmIHJlc3BvbnNlLmJvZHkuZmlsZSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdbdXBsb2FkRmlsZV0gUmVzcG9uc2UgVXBsb2FkZWQnLCByZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgdG1wRmlsZS5zdGF0dXMgPSAxMDE7XG4gICAgICAgICAgICAgICAgdG1wRmlsZS51cmwgPSByZXNwb25zZS5ib2R5LmZpbGUuc2VjdXJlX3VybDtcbiAgICAgICAgICAgICAgICB0aGlzLnZpZGVvU2VuZGVkSUQgPSB0bXBGaWxlLnVybDtcbiAgICAgICAgICAgICAgICB0aGlzLnVwbG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMucHJvZ3Jlc3MgPSBudWxsO1xuXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgICAgIGNvbnNvbGUubG9nKCd0bXBGaWxlJywgdG1wRmlsZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXNpemVJbWFnZXMoZmlsZTogYW55LCB3aWR0aDogbnVtYmVyKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY29uc3QgaW1nID0gbmV3IEltYWdlKCk7XG4gICAgICBjb25zdCBNQVhfV0lEVEggPSB3aWR0aDtcbiAgICAgIGNvbnN0IE1BWF9IRUlHSFQ6IGFueSA9IDEzMzQ7XG5cbiAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG5cbiAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xuXG4gICAgICByZWFkZXIub25sb2FkID0gKGU6IGFueSkgPT4ge1xuICAgICAgICBpbWcuc3JjID0gZS50YXJnZXQucmVzdWx0O1xuICAgICAgICBpbWcub25sb2FkID0gKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHNjYWxlID0gTUFYX1dJRFRIIC8gaW1nLndpZHRoO1xuICAgICAgICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuICAgICAgICAgIGNhbnZhcy5oZWlnaHQgPSBzY2FsZSAqIGltZy5oZWlnaHQ7XG5cbiAgICAgICAgICBjYW52YXMud2lkdGggPSBNQVhfV0lEVEg7XG4gICAgICAgICAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XG4gICAgICAgICAgY3R4LmRyYXdJbWFnZShpbWcsIDAsIDApO1xuXG4gICAgICAgICAgY29uc29sZS5sb2coJ0lNRycsIGltZy53aWR0aCwgaW1nLmhlaWdodCk7XG4gICAgICAgICAgY3R4LmRyYXdJbWFnZShpbWcsIDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7XG5cbiAgICAgICAgICBjb25zdCBkYXRhdXJsID0gY2FudmFzLnRvRGF0YVVSTChmaWxlLnR5cGUsIDAuNjUpO1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdDQU5WQVMgLT4nLCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpO1xuICAgICAgICAgIHJldHVybiByZXNvbHZlKGRhdGF1cmwpO1xuICAgICAgICB9O1xuICAgICAgfTtcblxuICAgICAgcmVhZGVyLm9uZXJyb3IgPSByZWplY3Q7XG4gICAgfSk7XG5cbiAgfVxuXG4gIHJlYWRHSUYoZmlsZTogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXG4gICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuXG4gICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcblxuICAgICAgcmVhZGVyLm9ubG9hZCA9IChlOiBhbnkpID0+IHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmUocmVhZGVyLnJlc3VsdCk7XG4gICAgICB9O1xuXG4gICAgICByZWFkZXIub25lcnJvciA9IHJlamVjdDtcbiAgICB9KTtcblxuICB9XG5cbiAgZ2V0VHlwZUJ5TWltZVR5cGUobWltZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBzcGxpdCA9IG1pbWUuc3BsaXQoJy8nKTtcbiAgICByZXR1cm4gc3BsaXRbMF07XG4gIH1cblxuICBzaGFyZSgpOiBhbnkge1xuICAgIGNvbnN0IGRhdGE6IEZlZWRNb2RlbCA9IG5ldyBGZWVkTW9kZWwoKTtcbiAgICBkYXRhLnVwZGF0ZWRfYXQgPSBEYXRlLm5vdygpO1xuICAgIGRhdGEudGl0bGUgPSB0aGlzLnRpdGxlO1xuICAgIGRhdGEudHlwZSA9IHRoaXMudHlwZTtcbiAgICBkYXRhLnNlbGVjdGVkX3VzZXJzID0gW107XG4gICAgZGF0YS5zZWxlY3RlZF91c2Vyc19kYXRhID0gW107XG5cbiAgICBmb3IgKGNvbnN0IGlkIGluIHRoaXMuc2VsZWN0ZWRVc2Vycykge1xuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRVc2Vyc1tpZF0pIHtcbiAgICAgICAgZGF0YS5zZWxlY3RlZF91c2Vycy5wdXNoKGlkKTtcbiAgICAgICAgZGF0YS5zZWxlY3RlZF91c2Vyc19kYXRhLnB1c2goe1xuICAgICAgICAgIGlkLFxuICAgICAgICAgIG5hbWU6IHRoaXMuc2VsZWN0ZWRVc2Vyc1tpZF0ubmFtZSxcbiAgICAgICAgICBwaWN0dXJlOiB0aGlzLnNlbGVjdGVkVXNlcnNbaWRdLnBpY3R1cmUsXG4gICAgICAgICAgZW1haWw6IHRoaXMuc2VsZWN0ZWRVc2Vyc1tpZF0uZW1haWxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudG1wRmlsZUFycmF5IHx8IHRoaXMudG1wRmlsZUFycmF5Lmxlbmd0aCA+IDApIHtcbiAgICAgIGRhdGEuZmlsZXMgPSB0aGlzLnRtcEZpbGVBcnJheTtcbiAgICAgIC8vIGNvbnN0IHZpZGVvRmlsdGVyID0gZGF0YS5maWxlcy5maWx0ZXIodG1wID0+IHRoaXMuZ2V0VHlwZUJ5TWltZVR5cGUodG1wLnR5cGUpID09PSAndmlkZW8nKTtcbiAgICAgIC8vIGlmICh2aWRlb0ZpbHRlci5sZW5ndGggPiAwKSB7XG4gICAgICAvLyB9XG4gICAgICBkYXRhLmZpbGVzLm1hcChpdGVtID0+IHtcbiAgICAgICAgaWYgKGl0ZW0udHlwZSA9PT0gJ3ZpZGVvJykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdFeGlzdGUgdW0gdmlkZW8gbm8gRmVlZCcsIGl0ZW0pO1xuICAgICAgICAgIGlmICghaXRlbS5pc0Nsb3VkaW5hcnkpIHtcbiAgICAgICAgICAgIGl0ZW0udmlkZW9fcmVuZGVyaW5nID0gZmFsc2U7XG4gICAgICAgICAgICBpdGVtLnZpZGVvX2xvd19yZW5kZXJpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIGl0ZW0udGh1bWJfcmVuZGVyaW5nID0gZmFsc2U7XG5cbiAgICAgICAgICAgIC8vIFNldGFuZG8gbyBJRCBkbyBGZWVkIGlndWFsIGFvIElEIGRvIHbDrWRlb1xuICAgICAgICAgICAgZGF0YS5yZWYgPSBpdGVtLnVybDtcbiAgICAgICAgICAgIGRhdGEuc3RhdHVzID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLnN0cmVhbVNlcnZpY2Uuc3RhdHVzKGl0ZW0udXJsKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgICAgIGl0ZW0udmlkZW9fcmVuZGVyaW5nID0gIXJlcy5wNDgwO1xuICAgICAgICAgICAgICBpdGVtLnZpZGVvX2xvd19yZW5kZXJpbmcgPSAhcmVzLnA0ODBfbG93O1xuICAgICAgICAgICAgICBpdGVtLnRodW1iX3JlbmRlcmluZyA9ICFyZXMudGh1bWI7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMucHVibGlzaChkYXRhKS50aGVuKChpZCkgPT4ge1xuICAgICAgaWYgKGRhdGEuc2VsZWN0ZWRfdXNlcnMubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMudXNlclNlcnZpY2UudXNlcnNDaGVja2VkKHtwb3N0X2lkOiBpZCwgdXNlcl9pZDogZGF0YS5zZWxlY3RlZF91c2Vyc30pLnN1YnNjcmliZSgpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5zZWxlY3RlZFVzZXJzID0gW107XG4gIH1cblxuICBjb25maXJtU2hhcmUoKSB7XG4gICAgY29uc3Qgc3dhbGwgPSBTd2FsLmZpcmUoe1xuICAgICAgICB0aXRsZTogXCJQb2RlbW9zIGNvbXBhcnRpbGhhciBzZXUgcG9zdD9cIixcbiAgICAgICAgdHlwZTogXCJ3YXJuaW5nXCIsXG4gICAgICAgIHNob3dDYW5jZWxCdXR0b246IHRydWUsXG4gICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiBcIlNpbVwiLFxuICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiBcIk7Do29cIlxuICAgIH0pO1xuXG4gICAgc3dhbGwudGhlbigoY29uZmlybWVkKSA9PiB7XG4gICAgICBpZiAoY29uZmlybWVkLnZhbHVlKSB7XG4gICAgICAgIHRoaXMuc2hhcmUoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1Ymxpc2goZGF0YTogRmVlZE1vZGVsKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG5cbiAgICAgIGxldCBpbWFnZTtcbiAgICAgIGxldCBpZDtcbiAgICAgIGNvbnNvbGUubG9nKCdQdWJsaXNoKCknLCAxLCBkYXRhKTtcbiAgXG4gICAgICBpZiAoIWRhdGEudGl0bGUgfHwgZGF0YS50aXRsZSA9PT0gJycpIHtcbiAgICAgICAgLy8gdGhpcy5nbG9iYWwudG9hc3RTZXJ2aWNlLmVycm9yKHtcbiAgICAgICAgLy8gICB0aXRsZTogJ09wcycsXG4gICAgICAgIC8vICAgbWVzc2FnZTogJ1ZvY8OqIHByZWNpc2EgYWRpY2lvbmFyIHVtIHRleHRvIMOgIHN1YSBpbWFnZW0vdsOtZGVvLicsXG4gICAgICAgIC8vIH0pO1xuICAgICAgICBTd2FsLmZpcmUoe1xuICAgICAgICAgICAgICB0aXRsZTogXCJQb2RlbW9zIGNvbXBhcnRpbGhhciBzZXUgcG9zdD8/XCIsXG4gICAgICAgICAgICAgIHR5cGU6IFwid2FybmluZ1wiLFxuICAgICAgICAgICAgICBzaG93Q2FuY2VsQnV0dG9uOiB0cnVlLFxuICAgICAgICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogXCJTaW1cIixcbiAgICAgICAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogXCJOw6NvXCJcbiAgICAgICAgICB9KVxuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLnVwbG9hZGluZyA9IHRydWU7XG4gICAgICB0aGlzLnByb2dyZXNzID0gMDtcbiAgXG4gIFxuICAgICAgbGV0IGNvdW50ID0gMDtcbiAgICAgIGRhdGEudXNlcl9pbmZvID0ge1xuICAgICAgICBpZDogdGhpcy5nbG9iYWwubG9nZ2VkVXNlcigpLmlkLFxuICAgICAgICBuYW1lOiB0aGlzLmdsb2JhbC5sb2dnZWRVc2VyKCkubmFtZSxcbiAgICAgICAgcGljdHVyZTogdGhpcy5nbG9iYWwubG9nZ2VkVXNlcigpLnBpY3R1cmUsXG4gICAgICAgIHVwZGF0ZWRfYXQ6IERhdGUubm93KClcbiAgICAgIH07XG4gIFxuICAgICAgaWYgKHRoaXMudHlwZSA9PSAnZW1iZWQnKSB7XG4gICAgICAgIGNvbnN0IGZpbGVFbWJlZDogYW55ID0ge1xuICAgICAgICAgIG5hbWU6IHRoaXMuZW1iZWRGaWxlLFxuICAgICAgICAgIHVybDogdGhpcy5lbWJlZEZpbGUsXG4gICAgICAgICAgdHlwZTogJ2VtYmVkJ1xuICAgICAgICB9O1xuICBcbiAgICAgICAgdGhpcy50bXBGaWxlQXJyYXkucHVzaChmaWxlRW1iZWQpO1xuICAgICAgfVxuICBcbiAgICAgIGlmICh0aGlzLnR5cGUgIT0gJ2VtYmVkJykge1xuICAgICAgICBpZiAodGhpcy50bXBGaWxlQXJyYXkgJiYgdGhpcy50bXBGaWxlQXJyYXkubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCd0aGlzLnRtcEZpbGVBcnJheScsIHRoaXMuZ2V0VHlwZUJ5TWltZVR5cGUodGhpcy50bXBGaWxlQXJyYXlbMF0udHlwZSkpO1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdQdWJsaXNoKCknLCAyKTtcbiAgICAgICAgICBjb25zdCBpbWFnZXNGaWxlcyA9IHRoaXMudG1wRmlsZUFycmF5LmZpbHRlcihcbiAgICAgICAgICAgICh0bXA6IGFueSkgPT4gdGhpcy5nZXRUeXBlQnlNaW1lVHlwZSh0bXAudHlwZSkgPT09ICdpbWFnZSdcbiAgICAgICAgICApO1xuICBcbiAgXG4gICAgICAgICAgY29uc3Qgc3RlcCA9IDk4IC8gaW1hZ2VzRmlsZXMubGVuZ3RoO1xuICBcbiAgICAgICAgICBpZiAoKGltYWdlc0ZpbGVzLmxlbmd0aCAmJiBkYXRhLnRpdGxlID09PSAnJykpIHtcbiAgICAgICAgICAgIHRoaXMuZ2xvYmFsLnRvYXN0U2VydmljZS5lcnJvcih7XG4gICAgICAgICAgICAgIHRpdGxlOiAnT3BzJyxcbiAgICAgICAgICAgICAgbWVzc2FnZTogJ1ZvY8OqIHByZWNpc2EgYWRpY2lvbmFyIHVtIHRleHRvIGp1bnRvIMOgIHN1YSBpbWFnZW0vdsOtZGVvLicsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gIFxuICAgICAgICAgIGlmIChpbWFnZXNGaWxlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGZpbGUgb2YgaW1hZ2VzRmlsZXMpIHtcbiAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy51dGlsc1NlcnZpY2UudXBsb2FkRmlsZShgaW1hZ2VzLyR7ZmlsZS5uYW1lfWAsIGZpbGUudXJsKTtcbiAgICAgICAgICAgICAgICB0aGlzLnV0aWxzU2VydmljZS5wZXJjZW50YWdlLnN1YnNjcmliZShwZXJjZW50ID0+IHtcbiAgICAgICAgICAgICAgICAgIGZpbGUuc3RhdHVzID0gcGVyY2VudDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgXG4gICAgICAgICAgICAgICAgdGhpcy51dGlsc1NlcnZpY2UudGFzay5zbmFwc2hvdENoYW5nZXMoKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgICBhc3luYyBzbmFwID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNuYXAuYnl0ZXNUcmFuc2ZlcnJlZCA9PT0gc25hcC50b3RhbEJ5dGVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgY291bnQrKztcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb2dyZXNzICs9IHN0ZXA7XG4gICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ1BST0dSRVNTJywgdGhpcy5wcm9ncmVzcyk7XG4gICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSBkYXRhLmZpbGVzLmZpbmRJbmRleChpdGVtID0+IGl0ZW0ubmFtZSA9PT0gZmlsZS5uYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoKCFpbWFnZSkgJiYgKGRhdGEuZmlsZXNbaW5kZXhdKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51dGlsc1NlcnZpY2UuZ2V0RmlyZVN0b3JhZ2VVUkwoYGltYWdlcy8ke2RhdGEuZmlsZXNbaW5kZXhdLm5hbWV9YCkuc3Vic2NyaWJlKChpbWFnZVVSTCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpbWFnZSA9IGltYWdlVVJMO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gIFxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgZGF0YS5maWxlc1tpbmRleF0udXJsO1xuICBcbiAgXG4gIFxuICAgICAgICAgICAgICAgICAgICAgIGlmIChjb3VudCA9PSBpbWFnZXNGaWxlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdDcmlhbmRvIEZlZWQnKTtcbiAgXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb2xsZWN0aW9uID0gdGhpcy5kYi5jb2xsZWN0aW9uKHBhdGgoKS5mZWVkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbGxlY3Rpb24uYWRkKGNsYXNzVG9QbGFpbihkYXRhKSkudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGIuY29sbGVjdGlvbihwYXRoKCkuZmVlZCkuZG9jKHJlc3BvbnNlLmlkKS51cGRhdGUoeyBpZDogcmVzcG9uc2UuaWQgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmVlZENyZWF0ZWQuZW1pdChyZXNwb25zZS5pZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVzcG9uc2UuaWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gIFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50aXRsZSA9ICcnO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9ncmVzcyA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVwbG9hZGluZyA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRtcEZpbGVBcnJheSA9IFtdO1xuICBcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdQdWJsaXNoKCknLCA0KTtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBlcnJvciA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yJywgZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdQdWJsaXNoKCknLCA1KTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGRhdGEsIHRoaXMudG1wRmlsZUFycmF5KTtcbiAgXG4gICAgICAgICAgICBjb25zdCBjb2xsZWN0aW9uID0gdGhpcy5kYi5jb2xsZWN0aW9uKHBhdGgoKS5mZWVkKTtcbiAgICAgICAgICAgIGNvbGxlY3Rpb24uYWRkKGNsYXNzVG9QbGFpbihkYXRhKSkudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuZGIuY29sbGVjdGlvbihwYXRoKCkuZmVlZCkuZG9jKHJlc3BvbnNlLmlkKS51cGRhdGUoeyBpZDogcmVzcG9uc2UuaWQgfSk7XG4gICAgICAgICAgICAgIHRoaXMuZmVlZENyZWF0ZWQuZW1pdChyZXNwb25zZS5pZCk7XG4gICAgICAgICAgICAgIHRoaXMudGl0bGUgPSAnJztcbiAgICAgICAgICAgICAgdGhpcy5wcm9ncmVzcyA9IG51bGw7XG4gICAgICAgICAgICAgIHRoaXMudXBsb2FkaW5nID0gbnVsbDtcbiAgICAgICAgICAgICAgdGhpcy50bXBGaWxlQXJyYXkgPSBbXTtcbiAgICAgICAgICAgICAgcmVzb2x2ZShyZXNwb25zZS5pZCk7XG4gICAgICAgICAgICB9KTtcbiAgXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdQdWJsaXNoKCknLCA1KTtcbiAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhLCB0aGlzLnRtcEZpbGVBcnJheSk7XG4gIFxuICAgICAgICAgIGNvbnN0IGNvbGxlY3Rpb24gPSB0aGlzLmRiLmNvbGxlY3Rpb24ocGF0aCgpLmZlZWQpO1xuICAgICAgICAgIGNvbGxlY3Rpb24uYWRkKGNsYXNzVG9QbGFpbihkYXRhKSkudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICB0aGlzLmRiLmNvbGxlY3Rpb24ocGF0aCgpLmZlZWQpLmRvYyhyZXNwb25zZS5pZCkudXBkYXRlKHsgaWQ6IHJlc3BvbnNlLmlkIH0pO1xuICAgICAgICAgICAgdGhpcy5mZWVkQ3JlYXRlZC5lbWl0KHJlc3BvbnNlLmlkKTtcbiAgICAgICAgICAgIHRoaXMudGl0bGUgPSAnJztcbiAgICAgICAgICAgIHRoaXMucHJvZ3Jlc3MgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy51cGxvYWRpbmcgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy50bXBGaWxlQXJyYXkgPSBbXTtcbiAgICAgICAgICAgIHJlc29sdmUocmVzcG9uc2UuaWQpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgZGF0YS5maWxlcyA9IHRoaXMudG1wRmlsZUFycmF5O1xuICAgICAgICBjb25zb2xlLmxvZygnUHVibGlzaChFbWJlZCknLCA2KTtcbiAgICAgICAgY29uc29sZS5sb2coZGF0YSwgdGhpcy50bXBGaWxlQXJyYXkpO1xuICAgICAgICBjb25zdCBjb2xsZWN0aW9uID0gdGhpcy5kYi5jb2xsZWN0aW9uKHBhdGgoKS5mZWVkKTtcbiAgICAgICAgY29sbGVjdGlvbi5hZGQoY2xhc3NUb1BsYWluKGRhdGEpKS50aGVuKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICBjb25zdCBkb2MgPSB0aGlzLmRiLmNvbGxlY3Rpb24ocGF0aCgpLmZlZWQpLmRvYyhyZXNwb25zZS5pZCk7XG4gICAgICAgICAgZG9jLnVwZGF0ZSh7IGlkOiByZXNwb25zZS5pZCB9KTtcbiAgICAgICAgICB0aGlzLmZlZWRDcmVhdGVkLmVtaXQocmVzcG9uc2UuaWQpO1xuICAgICAgICAgIHRoaXMudGl0bGUgPSAnJztcbiAgICAgICAgICB0aGlzLnByb2dyZXNzID0gbnVsbDtcbiAgICAgICAgICB0aGlzLnVwbG9hZGluZyA9IG51bGw7XG4gICAgICAgICAgdGhpcy50bXBGaWxlQXJyYXkgPSBbXTtcbiAgICAgICAgICB0aGlzLmVtYmVkRmlsZSA9IG51bGw7XG4gICAgICAgICAgdGhpcy50eXBlID0gJ3Bvc3QnO1xuICAgICAgICAgIHJlc29sdmUocmVzcG9uc2UuaWQpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgXG4gIFxuICAgICAgY29uc29sZS5sb2coJ1B1Ymxpc2goKScsIDAsIHBhdGgoKS5mZWVkKTtcbiAgICAgIHRoaXMudGl0bGUgPSAnJztcbiAgICAgIHRoaXMucHJvZ3Jlc3MgPSBudWxsO1xuICAgICAgdGhpcy51cGxvYWRpbmcgPSBudWxsO1xuICAgICAgdGhpcy50bXBGaWxlQXJyYXkgPSBbXTtcbiAgICAgIHRoaXMuZ2xvYmFsLnRvYXN0U2VydmljZS5zaG93KHtcbiAgICAgICAgdGl0bGU6ICdGZWl0byEnLFxuICAgICAgICBtZXNzYWdlOiAnU2V1IHBvc3QgZm9pIGNyaWFkbyBjb20gc3VjZXNzbycsXG4gICAgICAgIGxheW91dDogMlxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICByZW1vdmVUbXBGaWxlKHRtcEZpbGU6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy50bXBGaWxlQXJyYXkuaW5kZXhPZih0bXBGaWxlKTtcbiAgICB0aGlzLnRtcEZpbGVBcnJheS5zcGxpY2UoaW5kZXgsIDEpO1xuICB9XG5cbiAgY2hlY2tQdWJsaWNhdGlvblR5cGUodGl0bGUpIHtcbiAgICBjb25zb2xlLmxvZygnRXZlbnQgLT4nLCBldmVudCk7XG4gICAgaWYgKHRpdGxlLmxlbmd0aCAmJiB0aXRsZS5sZW5ndGggPiAzNSkge1xuICAgICAgaWYgKHRoaXMuaXNWYWxpZFVybCh0aXRsZSkpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ2NoZWNrUHVibGljYXRpb25UeXBlJywgdGl0bGUpO1xuICAgICAgICBpZiAodGl0bGUuaW5jbHVkZXMoJ3lvdXR1JykgfHwgdGl0bGUuaW5jbHVkZXMoJ3lvdXR1YmUnKSkge1xuICAgICAgICAgIHRoaXMudXBsb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLnR5cGUgPSAnZW1iZWQnO1xuICAgICAgICAgIHRoaXMudXBsb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5lbWJlZEZpbGUgPSB0aXRsZS5yZXBsYWNlKCd3YXRjaD92PScsICdlbWJlZC8nKTtcbiAgICAgICAgICB0aGlzLnRtcEVtYmVkRmlsZSA9IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybCh0aGlzLmVtYmVkRmlsZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodGl0bGUuaW5jbHVkZXMoJ3Nwb3RpZnknKSkge1xuICAgICAgICAgIHRoaXMudXBsb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLnR5cGUgPSAnZW1iZWQnO1xuICAgICAgICAgIHRoaXMuZW1iZWRGaWxlID0gdGl0bGUucmVwbGFjZSgnL2VwaXNvZGUnLCAnL2VtYmVkLXBvZGNhc3QvZXBpc29kZScpO1xuICAgICAgICAgIHRoaXMudG1wRW1iZWRGaWxlID0gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKHRoaXMuZW1iZWRGaWxlKTtcbiAgICAgICAgICB0aGlzLnVwbG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmVtb3ZlRW1iZWRGaWxlcygpIHtcbiAgICB0aGlzLnRpdGxlID0gJyc7XG4gICAgdGhpcy5lbWJlZEZpbGUgPSAnJztcbiAgICB0aGlzLnR5cGUgPSAncG9zdCc7XG4gIH1cblxuICBpc1ZhbGlkVXJsKHN0cikge1xuICAgIGNvbnN0IHBhdHRlcm4gPSBuZXcgUmVnRXhwKCdeKGh0dHBzPzpcXFxcL1xcXFwvKT8nICsgLy8gcHJvdG9jb2xcbiAgICAgICcoKChbYS16XFxcXGRdKFthLXpcXFxcZC1dKlthLXpcXFxcZF0pKilcXFxcLikrW2Etel17Mix9fCcgKyAvLyBkb21haW4gbmFtZVxuICAgICAgJygoXFxcXGR7MSwzfVxcXFwuKXszfVxcXFxkezEsM30pKScgKyAvLyBPUiBpcCAodjQpIGFkZHJlc3NcbiAgICAgICcoXFxcXDpcXFxcZCspPyhcXFxcL1stYS16XFxcXGQlXy5+K10qKSonICsgLy8gcG9ydCBhbmQgcGF0aFxuICAgICAgJyhcXFxcP1s7JmEtelxcXFxkJV8ufis9LV0qKT8nICsgLy8gcXVlcnkgc3RyaW5nXG4gICAgICAnKFxcXFwjWy1hLXpcXFxcZF9dKik/JCcsICdpJyk7IC8vIGZyYWdtZW50IGxvY2F0b3JcbiAgICByZXR1cm4gISFwYXR0ZXJuLnRlc3Qoc3RyKTtcbiAgfVxuXG4gIG9wZW5Bbm5vdW5jZU1vZGFsKCkge1xuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oTW9kYWxBbm5vdW5jZUNvbXBvbmVudCwge1xuICAgICAgd2lkdGg6ICc1NSUnLFxuICAgICAgbWluSGVpZ2h0OiAnOTUlJyxcbiAgICAgIG1heEhlaWdodDogJzEwMCUnLFxuICAgICAgY2xvc2VPbk5hdmlnYXRpb246IGZhbHNlLFxuICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxuICAgICAgZGF0YTogeyBvd25lcjogdGhpcywgdG1wRmlsZUFycmF5OiB0aGlzLnRtcEZpbGVBcnJheSB9XG4gICAgfSk7XG5cbiAgfVxuXG4gIHJlbG9hZCgpIHtcbiAgICB0aGlzLmZpbHRlci5lbWl0KHRoaXMuZmlsdGVyQnlNZSk7XG4gIH1cblxuICBzZWxlY3RVc2VyKGV2dDogYW55LCB1c2VyOiBhbnkpIHtcbiAgICBpZiAoZXZ0LnRhcmdldC5jaGVja2VkKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkVXNlcnNbdXNlci5pZF0gPSB1c2VyO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGRlbGV0ZSB0aGlzLnNlbGVjdGVkVXNlcnNbdXNlci5pZF07XG4gICAgfVxuICB9XG5cbiAgc2hvd1NlbGVjdGVkKCkge1xuICAgIHRoaXMubGlzdFR5cGUgPSAnY2hlY2tlZCc7XG4gICAgdGhpcy51c2VycyA9IFtdO1xuICAgIGZvciAoY29uc3QgaWQgaW4gdGhpcy5zZWxlY3RlZFVzZXJzKSB7XG4gICAgICB0aGlzLnVzZXJzLnB1c2godGhpcy5zZWxlY3RlZFVzZXJzW2lkXSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9wZW5Nb2RhbCgpIHtcbiAgICBpZiAodGhpcy5uZXdmZWVkKSB7XG4gICAgICAkKCcjcHVibGljYXRpb25Nb2RhbCcpLm1vZGFsKCk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB0aGlzLmNvbmZpcm1TaGFyZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXROZXdGZWVkKCkge1xuICAgIHRoaXMuc2VsZWN0ZWRVc2VycyA9IFtdO1xuICAgIHRoaXMuYXNhcFNlcnZpY2UuYmFzZVBhdGggPSBcImFwaS92Mi9hZG1pblwiO1xuICAgIHRoaXMuYXNhcFNlcnZpY2UuZW50aXR5TmFtZSA9IFwiY29sb3JcIjtcbiAgICB0aGlzLmFzYXBTZXJ2aWNlLmdldFJlc291cmNlKHRoaXMuZ2xvYmFsLmxvZ2dlZFVzZXIoKS5jbGllbnRfaWQpLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcbiAgICAgICB0aGlzLm5ld2ZlZWQgPSByZXNwb25zZS5kYXRhLm5ld2ZlZWQ7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
799
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlZC1wdWJsaWNhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hc2FwLWZlZWQtYmV0YS8iLCJzb3VyY2VzIjpbImxpYi9mZWVkLXB1YmxpY2F0aW9uL2ZlZWQtcHVibGljYXRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDaEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzlDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbkYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLElBQUksTUFBTSxhQUFhLENBQUM7QUFVL0IsTUFBTSxPQUFPLHdCQUF3Qjs7Ozs7Ozs7Ozs7OztJ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QUNyQiwrQ0FBbUM7O0lBQ25DLCtDQUErQjs7SUFDL0IsK0NBQStCOztJQUMvQiw2Q0FBOEI7O0lBQzlCLGlEQUFtQzs7SUFDbkMsZ0RBQWlDOztJQUNqQyxzQ0FBMkI7O0lBQzNCLHdDQUF1Qjs7SUFDdkIsMENBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXNhcFNlcnZpY2UsIEdsb2JhbCB9IGZyb20gJ2FzYXAtY3J1ZCc7XG5pbXBvcnQgeyBBc2FwRmVlZFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9hc2FwLWZlZWQuc2VydmljZSc7XG5pbXBvcnQgeyBTdHJlYW1TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvc3RyZWFtLnNlcnZpY2UnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBGaWxlc01vZGVsLCBGZWVkTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvZmVlZC5tb2RlbCc7XG5pbXBvcnQgeyBVdGlsc1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy91dGlscy5zZXJ2aWNlJztcbmltcG9ydCB7IHBhdGggfSBmcm9tICcuLi9jb25zdGFudHMvY29uc3RhbnRzJztcbmltcG9ydCB7IEFuZ3VsYXJGaXJlc3RvcmUgfSBmcm9tICdAYW5ndWxhci9maXJlL2ZpcmVzdG9yZSc7XG5pbXBvcnQgeyBjbGFzc1RvUGxhaW4gfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgTW9kYWxBbm5vdW5jZUNvbXBvbmVudCB9IGZyb20gJy4vbW9kYWwtYW5ub3VuY2UvbW9kYWwtYW5ub3VuY2UuY29tcG9uZW50JztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBVc2VyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3VzZXIuc2VydmljZSc7XG5pbXBvcnQgU3dhbCBmcm9tICdzd2VldGFsZXJ0Mic7XG5cbmRlY2xhcmUgdmFyICQ6IGFueTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZmVlZC1wdWJsaWNhdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9mZWVkLXB1YmxpY2F0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmVlZC1wdWJsaWNhdGlvbi5jb21wb25lbnQuc2NzcycsICcuLi9hc2FwLWZlZWQuYmV0YS5jb21wb25lbnRlLnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbIFN0cmVhbVNlcnZpY2UsIFVzZXJTZXJ2aWNlLCBBc2FwU2VydmljZSBdXG59KVxuZXhwb3J0IGNsYXNzIEZlZWRQdWJsaWNhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgYW5ub3VuY2UgPSBmYWxzZTtcbiAgQElucHV0KCkgaGlkZUZpbHRlckJ5TWUgPSBmYWxzZTtcbiAgQElucHV0KCkgc2V0dGluZ3M7XG4gIEBPdXRwdXQoKSBmZWVkQ3JlYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGZpbHRlciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwdWJsaWMgdXNlcnMgPSBbXTtcblxuICBwdWJsaWMgdG1wRmlsZUFycmF5OiBBcnJheTxGaWxlc01vZGVsPjtcbiAgcHVibGljIHVwbG9hZGluZztcbiAgcHVibGljIHRpdGxlID0gbnVsbDtcbiAgcHVibGljIHByb2dyZXNzO1xuICBwdWJsaWMgbm90QW5ub3VuY2U7XG4gIHB1YmxpYyBuZXdQcm9kdWN0O1xuICBwdWJsaWMgRXhwYW5kSW1nO1xuICBwdWJsaWMgdHlwZSA9ICdwb3N0JztcbiAgcHVibGljIGVtYmVkRmlsZTtcbiAgcHVibGljIHRtcEVtYmVkRmlsZTtcbiAgcHVibGljIHZpZGVvU2VuZGVkSUQ7XG4gIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xuICBwdWJsaWMgbmV3ZmVlZDogYW55O1xuXG4gIHB1YmxpYyBtZXNzYWdlID0gXCJEaWdpdGUgYWNpbWEgbyBub21lIGRhIHBlc3NvYSBxdWUgZGVzZWphIG1hcmNhciwgZW0gc2VndWlkYSBwcmVzc2lvbmUgW0VOVEVSXVwiO1xuICBwdWJsaWMgc2VsZWN0ZWRVc2VyczogYW55ID0ge307XG4gIHB1YmxpYyBsaXN0VHlwZTogJ2NoZWNrZWQnIHwgJ3NlYXJjaCcgPSAnc2VhcmNoJztcblxuICBwdWJsaWMgZmlsdGVyQnlNZSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBnbG9iYWw6IEdsb2JhbCxcbiAgICBwdWJsaWMgZmVlZFNlcnZpY2U6IEFzYXBGZWVkU2VydmljZSxcbiAgICBwdWJsaWMgYXNhcFNlcnZpY2U6IEFzYXBTZXJ2aWNlLFxuICAgIHB1YmxpYyB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgcHVibGljIHNhbml0aXplcjogRG9tU2FuaXRpemVyLFxuICAgIHB1YmxpYyBzdHJlYW1TZXJ2aWNlOiBTdHJlYW1TZXJ2aWNlLFxuICAgIHB1YmxpYyB1dGlsc1NlcnZpY2U6IFV0aWxzU2VydmljZSxcbiAgICBwdWJsaWMgZGI6IEFuZ3VsYXJGaXJlc3RvcmUsXG4gICAgcHVibGljIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nLFxuICApIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMudG1wRmlsZUFycmF5ID0gW107XG4gICAgY29uc29sZS5sb2coJ1ByZWZpeCBQdWJsaWNhdGlvbiAtPicsIHBhdGgoKS5mZWVkKTtcbiAgICB0aGlzLmdldE5ld0ZlZWQoKTtcbiAgfVxuXG4gIGxvYWRVc2Vycyh2YWx1ZTogYW55KSB7XG4gICAgY29uc3Qgc2VhcmNoID0gdmFsdWU7XG4gICAgdGhpcy51c2VycyA9IG51bGw7XG4gICAgdGhpcy5saXN0VHlwZSA9ICdzZWFyY2gnO1xuICAgIGlmIChzZWFyY2ggIT0gJycpIHtcbiAgICAgIHRoaXMubWVzc2FnZSA9IFwiTmVuaHVtIHVzdcOhcmlvIGVuY29udHJhZG8hXCI7XG4gICAgICB0aGlzLnVzZXJTZXJ2aWNlLmdldEFsbFVzZXJzKHNlYXJjaCkuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xuICAgICAgICB0aGlzLnVzZXJzID0gcmVzcG9uc2UuZGF0YS5tYXAoKHVzZXIpID0+IHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaWQ6IHVzZXIudXNlcl9pbmZvLnVzZXJfaWQsXG4gICAgICAgICAgICBuYW1lOiB1c2VyLnVzZXJfaW5mby51c2VyX25hbWUsXG4gICAgICAgICAgICBlbWFpbDogdXNlci5lbWFpbCxcbiAgICAgICAgICAgIHBpY3R1cmU6IHVzZXIucGljdHVyZVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHVwbG9hZEZpbGUoZXZlbnQ6IGFueSkge1xuICAgIGZvciAoY29uc3QgZmlsZSBvZiBldmVudC50YXJnZXQuZmlsZXMpIHtcblxuICAgICAgY29uc3QgdG1wRmlsZTogRmlsZXNNb2RlbCA9IG5ldyBGaWxlc01vZGVsKCk7XG4gICAgICB0bXBGaWxlLnR5cGUgPSB0aGlzLmdldFR5cGVCeU1pbWVUeXBlKGZpbGUudHlwZSk7XG4gICAgICAvLyB0bXBGaWxlLnN0YXR1cyA9IDA7XG4gICAgICB0bXBGaWxlLnRodW1iX3JlbmRlcmluZyA9IGZhbHNlO1xuICAgICAgdG1wRmlsZS52aWRlb19yZW5kZXJpbmcgPSBmYWxzZTtcbiAgICAgIHRtcEZpbGUudmlkZW9fbG93X3JlbmRlcmluZyA9IGZhbHNlO1xuXG4gICAgICBsZXQgZXJyb3IgPSBmYWxzZTtcbiAgICAgIGlmICh0aGlzLmdldFR5cGVCeU1pbWVUeXBlKGZpbGUudHlwZSkgPT09ICd2aWRlbycgJiYgdGhpcy50bXBGaWxlQXJyYXkuZmlsdGVyKCh0bXA6IGFueSkgPT4gdGhpcy5nZXRUeXBlQnlNaW1lVHlwZSh0bXAudHlwZSkgPT09ICd2aWRlbycpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5nbG9iYWwudG9hc3RTZXJ2aWNlLmVycm9yKHtcbiAgICAgICAgICB0aXRsZTogJ09wcycsXG4gICAgICAgICAgbWVzc2FnZTogJ1ZvY8OqIHPDsyBwb2RlIGVudmlhciB1bSB2w61kZW8gcG9yIFBvc3QnXG4gICAgICAgIH0pO1xuICAgICAgICBlcnJvciA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmdldFR5cGVCeU1pbWVUeXBlKGZpbGUudHlwZSkgPT09ICdpbWFnZScgJiYgdGhpcy50bXBGaWxlQXJyYXkuZmlsdGVyKCh0bXA6IGFueSkgPT4gdGhpcy5nZXRUeXBlQnlNaW1lVHlwZSh0bXAudHlwZSkgPT09ICdpbWFnZScpLmxlbmd0aCA+IDQpIHtcbiAgICAgICAgdGhpcy5nbG9iYWwudG9hc3RTZXJ2aWNlLmVycm9yKHtcbiAgICAgICAgICB0aXRsZTogJ09wcycsXG4gICAgICAgICAgbWVzc2FnZTogJ1ZvY8OqIHBvZGUgdXRpbGl6YXIgYXTDqSBubyBtw6F4aW1vIDUgaW1hZ2VucyBubyBzZXUgUG9zdCdcbiAgICAgICAgfSk7XG4gICAgICAgIGVycm9yID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFlcnJvcikge1xuICAgICAgICAvLyB0aGlzLnVwbG9hZGluZyA9IHRydWU7XG5cbiAgICAgICAgaWYgKHRoaXMuZ2V0VHlwZUJ5TWltZVR5cGUoZmlsZS50eXBlKSA9PT0gJ2ltYWdlJykge1xuICAgICAgICAgIGlmIChmaWxlLnR5cGUgPT0gJ2ltYWdlL2dpZicpIHtcbiAgICAgICAgICAgIHRtcEZpbGUubmFtZSA9IGAke3RoaXMuc3RyZWFtU2VydmljZS51aWQoKX0uZ2lmYDtcbiAgICAgICAgICAgIHRtcEZpbGUudXJsID0gYXdhaXQgdGhpcy5yZWFkR0lGKGZpbGUpO1xuICAgICAgICAgICAgdGhpcy50bXBGaWxlQXJyYXkucHVzaCh0bXBGaWxlKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGdldEV4dG5hbWUgPSBmaWxlLm5hbWUuc3BsaXQoJy4nKTtcbiAgICAgICAgICAgIGNvbnN0IGV4dG5hbWUgPSBnZXRFeHRuYW1lW2dldEV4dG5hbWUubGVuZ3RoIC0gMV07XG5cbiAgICAgICAgICAgIHRtcEZpbGUudXJsID0gYXdhaXQgdGhpcy5yZXNpemVJbWFnZXMoZmlsZSwgODAwKTtcbiAgICAgICAgICAgIHRtcEZpbGUubmFtZSA9IGAke3RoaXMuc3RyZWFtU2VydmljZS51aWQoKX0uJHtleHRuYW1lfWA7XG4gICAgICAgICAgICB0aGlzLnRtcEZpbGVBcnJheS5wdXNoKHRtcEZpbGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGVsc2UgaWYgKHRoaXMuZ2V0VHlwZUJ5TWltZVR5cGUoZmlsZS50eXBlKSA9PT0gJ3ZpZGVvJykge1xuICAgICAgICAgIHRoaXMudXBsb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgICBjb25zb2xlLmxvZygnUmVhbGl6YXIgVXBsb2FkIGRlIFZpZGVvJywgdG1wRmlsZSk7XG4gICAgICAgICAgY29uc3QgcmVhZGVyID0gZmlsZTtcbiAgICAgICAgICBpZiAocmVhZGVyKSB7XG4gICAgICAgICAgICBjb25zdCBibG9iVVJMID0gVVJMLmNyZWF0ZU9iamVjdFVSTChyZWFkZXIpO1xuICAgICAgICAgICAgdG1wRmlsZS5uYW1lID0gYmxvYlVSTCBhcyBhbnk7XG4gICAgICAgICAgICB0aGlzLnRtcEZpbGVBcnJheS5wdXNoKHRtcEZpbGUpO1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ1t1cGxvYWRGaWxlXSBpZiByZWFkZXInLCBibG9iVVJMKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLnVwbG9hZGluZyA9IHRydWU7XG4gICAgICAgICAgYXdhaXQgdGhpcy5zdHJlYW1TZXJ2aWNlLnVwbG9hZEZpbGUoZmlsZSkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgcmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZygnW3VwbG9hZEZpbGVdIFJlc3BvbnNlJywgdG1wRmlsZSk7XG4gICAgICAgICAgICAgIGlmICghcmVzcG9uc2UuYm9keSkge1xuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZVsndG90YWwnXSkge1xuICAgICAgICAgICAgICAgICAgdG1wRmlsZS5zdGF0dXMgPSAoKHJlc3BvbnNlWydsb2FkZWQnXSAqIDEwMCkgLyByZXNwb25zZVsndG90YWwnXSkudG9GaXhlZCgwKSBhcyBhbnk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMucHJvZ3Jlc3MgPSB0bXBGaWxlLnN0YXR1cztcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmIChyZXNwb25zZS5ib2R5ICYmIHJlc3BvbnNlLmJvZHkuZmlsZSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdbdXBsb2FkRmlsZV0gUmVzcG9uc2UgVXBsb2FkZWQnLCByZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgdG1wRmlsZS5zdGF0dXMgPSAxMDE7XG4gICAgICAgICAgICAgICAgdG1wRmlsZS51cmwgPSByZXNwb25zZS5ib2R5LmZpbGUuc2VjdXJlX3VybDtcbiAgICAgICAgICAgICAgICB0aGlzLnZpZGVvU2VuZGVkSUQgPSB0bXBGaWxlLnVybDtcbiAgICAgICAgICAgICAgICB0aGlzLnVwbG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMucHJvZ3Jlc3MgPSBudWxsO1xuXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgICAgIGNvbnNvbGUubG9nKCd0bXBGaWxlJywgdG1wRmlsZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXNpemVJbWFnZXMoZmlsZTogYW55LCB3aWR0aDogbnVtYmVyKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY29uc3QgaW1nID0gbmV3IEltYWdlKCk7XG4gICAgICBjb25zdCBNQVhfV0lEVEggPSB3aWR0aDtcbiAgICAgIGNvbnN0IE1BWF9IRUlHSFQ6IGFueSA9IDEzMzQ7XG5cbiAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG5cbiAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xuXG4gICAgICByZWFkZXIub25sb2FkID0gKGU6IGFueSkgPT4ge1xuICAgICAgICBpbWcuc3JjID0gZS50YXJnZXQucmVzdWx0O1xuICAgICAgICBpbWcub25sb2FkID0gKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHNjYWxlID0gTUFYX1dJRFRIIC8gaW1nLndpZHRoO1xuICAgICAgICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuICAgICAgICAgIGNhbnZhcy5oZWlnaHQgPSBzY2FsZSAqIGltZy5oZWlnaHQ7XG5cbiAgICAgICAgICBjYW52YXMud2lkdGggPSBNQVhfV0lEVEg7XG4gICAgICAgICAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XG4gICAgICAgICAgY3R4LmRyYXdJbWFnZShpbWcsIDAsIDApO1xuXG4gICAgICAgICAgY29uc29sZS5sb2coJ0lNRycsIGltZy53aWR0aCwgaW1nLmhlaWdodCk7XG4gICAgICAgICAgY3R4LmRyYXdJbWFnZShpbWcsIDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7XG5cbiAgICAgICAgICBjb25zdCBkYXRhdXJsID0gY2FudmFzLnRvRGF0YVVSTChmaWxlLnR5cGUsIDAuNjUpO1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdDQU5WQVMgLT4nLCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpO1xuICAgICAgICAgIHJldHVybiByZXNvbHZlKGRhdGF1cmwpO1xuICAgICAgICB9O1xuICAgICAgfTtcblxuICAgICAgcmVhZGVyLm9uZXJyb3IgPSByZWplY3Q7XG4gICAgfSk7XG5cbiAgfVxuXG4gIHJlYWRHSUYoZmlsZTogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXG4gICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuXG4gICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcblxuICAgICAgcmVhZGVyLm9ubG9hZCA9IChlOiBhbnkpID0+IHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmUocmVhZGVyLnJlc3VsdCk7XG4gICAgICB9O1xuXG4gICAgICByZWFkZXIub25lcnJvciA9IHJlamVjdDtcbiAgICB9KTtcblxuICB9XG5cbiAgZ2V0VHlwZUJ5TWltZVR5cGUobWltZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBzcGxpdCA9IG1pbWUuc3BsaXQoJy8nKTtcbiAgICByZXR1cm4gc3BsaXRbMF07XG4gIH1cblxuICBzaGFyZSgpOiBhbnkge1xuICAgIGNvbnN0IGRhdGE6IEZlZWRNb2RlbCA9IG5ldyBGZWVkTW9kZWwoKTtcbiAgICBkYXRhLnVwZGF0ZWRfYXQgPSBEYXRlLm5vdygpO1xuICAgIGRhdGEudGl0bGUgPSB0aGlzLnRpdGxlO1xuICAgIGRhdGEudHlwZSA9IHRoaXMudHlwZTtcbiAgICBkYXRhLnNlbGVjdGVkX3VzZXJzID0gW107XG4gICAgZGF0YS5zZWxlY3RlZF91c2Vyc19kYXRhID0gW107XG5cbiAgICBmb3IgKGNvbnN0IGlkIGluIHRoaXMuc2VsZWN0ZWRVc2Vycykge1xuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRVc2Vyc1tpZF0pIHtcbiAgICAgICAgZGF0YS5zZWxlY3RlZF91c2Vycy5wdXNoKGlkKTtcbiAgICAgICAgZGF0YS5zZWxlY3RlZF91c2Vyc19kYXRhLnB1c2goe1xuICAgICAgICAgIGlkLFxuICAgICAgICAgIG5hbWU6IHRoaXMuc2VsZWN0ZWRVc2Vyc1tpZF0ubmFtZSxcbiAgICAgICAgICBwaWN0dXJlOiB0aGlzLnNlbGVjdGVkVXNlcnNbaWRdLnBpY3R1cmUsXG4gICAgICAgICAgZW1haWw6IHRoaXMuc2VsZWN0ZWRVc2Vyc1tpZF0uZW1haWxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudG1wRmlsZUFycmF5IHx8IHRoaXMudG1wRmlsZUFycmF5Lmxlbmd0aCA+IDApIHtcbiAgICAgIGRhdGEuZmlsZXMgPSB0aGlzLnRtcEZpbGVBcnJheTtcbiAgICAgIC8vIGNvbnN0IHZpZGVvRmlsdGVyID0gZGF0YS5maWxlcy5maWx0ZXIodG1wID0+IHRoaXMuZ2V0VHlwZUJ5TWltZVR5cGUodG1wLnR5cGUpID09PSAndmlkZW8nKTtcbiAgICAgIC8vIGlmICh2aWRlb0ZpbHRlci5sZW5ndGggPiAwKSB7XG4gICAgICAvLyB9XG4gICAgICBkYXRhLmZpbGVzLm1hcChpdGVtID0+IHtcbiAgICAgICAgaWYgKGl0ZW0udHlwZSA9PT0gJ3ZpZGVvJykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdFeGlzdGUgdW0gdmlkZW8gbm8gRmVlZCcsIGl0ZW0pO1xuICAgICAgICAgIGlmICghaXRlbS5pc0Nsb3VkaW5hcnkpIHtcbiAgICAgICAgICAgIGl0ZW0udmlkZW9fcmVuZGVyaW5nID0gZmFsc2U7XG4gICAgICAgICAgICBpdGVtLnZpZGVvX2xvd19yZW5kZXJpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIGl0ZW0udGh1bWJfcmVuZGVyaW5nID0gZmFsc2U7XG5cbiAgICAgICAgICAgIC8vIFNldGFuZG8gbyBJRCBkbyBGZWVkIGlndWFsIGFvIElEIGRvIHbDrWRlb1xuICAgICAgICAgICAgZGF0YS5yZWYgPSBpdGVtLnVybDtcbiAgICAgICAgICAgIGRhdGEuc3RhdHVzID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLnN0cmVhbVNlcnZpY2Uuc3RhdHVzKGl0ZW0udXJsKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgICAgIGl0ZW0udmlkZW9fcmVuZGVyaW5nID0gIXJlcy5wNDgwO1xuICAgICAgICAgICAgICBpdGVtLnZpZGVvX2xvd19yZW5kZXJpbmcgPSAhcmVzLnA0ODBfbG93O1xuICAgICAgICAgICAgICBpdGVtLnRodW1iX3JlbmRlcmluZyA9ICFyZXMudGh1bWI7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zb2xlLmxvZyhcInNoYXJlXCIsIGRhdGEpO1xuICAgIFxuICAgIHRoaXMucHVibGlzaChkYXRhKS50aGVuKChpZCkgPT4ge1xuICAgICAgdGhpcy51c2VyU2VydmljZS51c2Vyc0NoZWNrZWQoe3Bvc3RfaWQ6IGlkLCB1c2VyX2lkOiBkYXRhLnNlbGVjdGVkX3VzZXJzLCBjb21tZW50OiBkYXRhLnRpdGxlLCB0eXBlOiAncG9zdCd9LCB7Y29tbWVudHM6IHRydWV9KS5zdWJzY3JpYmUoKTtcbiAgICB9KTtcblxuICAgIHRoaXMuc2VsZWN0ZWRVc2VycyA9IFtdO1xuICB9XG5cbiAgY29uZmlybVNoYXJlKCkge1xuICAgIGNvbnN0IHN3YWxsID0gU3dhbC5maXJlKHtcbiAgICAgICAgdGl0bGU6IFwiUG9kZW1vcyBjb21wYXJ0aWxoYXIgc2V1IHBvc3Q/XCIsXG4gICAgICAgIHR5cGU6IFwid2FybmluZ1wiLFxuICAgICAgICBzaG93Q2FuY2VsQnV0dG9uOiB0cnVlLFxuICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogXCJTaW1cIixcbiAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogXCJOw6NvXCJcbiAgICB9KTtcblxuICAgIHN3YWxsLnRoZW4oKGNvbmZpcm1lZCkgPT4ge1xuICAgICAgaWYgKGNvbmZpcm1lZC52YWx1ZSkge1xuICAgICAgICB0aGlzLnNoYXJlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaXNoKGRhdGE6IEZlZWRNb2RlbCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuXG4gICAgICBsZXQgaW1hZ2U7XG4gICAgICBsZXQgaWQ7XG4gICAgICBjb25zb2xlLmxvZygnUHVibGlzaCgpJywgMSwgZGF0YSk7XG4gIFxuICAgICAgaWYgKCFkYXRhLnRpdGxlIHx8IGRhdGEudGl0bGUgPT09ICcnKSB7XG4gICAgICAgIC8vIHRoaXMuZ2xvYmFsLnRvYXN0U2VydmljZS5lcnJvcih7XG4gICAgICAgIC8vICAgdGl0bGU6ICdPcHMnLFxuICAgICAgICAvLyAgIG1lc3NhZ2U6ICdWb2PDqiBwcmVjaXNhIGFkaWNpb25hciB1bSB0ZXh0byDDoCBzdWEgaW1hZ2VtL3bDrWRlby4nLFxuICAgICAgICAvLyB9KTtcbiAgICAgICAgU3dhbC5maXJlKHtcbiAgICAgICAgICAgICAgdGl0bGU6IFwiUG9kZW1vcyBjb21wYXJ0aWxoYXIgc2V1IHBvc3Q/P1wiLFxuICAgICAgICAgICAgICB0eXBlOiBcIndhcm5pbmdcIixcbiAgICAgICAgICAgICAgc2hvd0NhbmNlbEJ1dHRvbjogdHJ1ZSxcbiAgICAgICAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6IFwiU2ltXCIsXG4gICAgICAgICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6IFwiTsOjb1wiXG4gICAgICAgICAgfSlcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy51cGxvYWRpbmcgPSB0cnVlO1xuICAgICAgdGhpcy5wcm9ncmVzcyA9IDA7XG4gIFxuICBcbiAgICAgIGxldCBjb3VudCA9IDA7XG4gICAgICBkYXRhLnVzZXJfaW5mbyA9IHtcbiAgICAgICAgaWQ6IHRoaXMuZ2xvYmFsLmxvZ2dlZFVzZXIoKS5pZCxcbiAgICAgICAgbmFtZTogdGhpcy5nbG9iYWwubG9nZ2VkVXNlcigpLm5hbWUsXG4gICAgICAgIHBpY3R1cmU6IHRoaXMuZ2xvYmFsLmxvZ2dlZFVzZXIoKS5waWN0dXJlLFxuICAgICAgICB1cGRhdGVkX2F0OiBEYXRlLm5vdygpXG4gICAgICB9O1xuICBcbiAgICAgIGlmICh0aGlzLnR5cGUgPT0gJ2VtYmVkJykge1xuICAgICAgICBjb25zdCBmaWxlRW1iZWQ6IGFueSA9IHtcbiAgICAgICAgICBuYW1lOiB0aGlzLmVtYmVkRmlsZSxcbiAgICAgICAgICB1cmw6IHRoaXMuZW1iZWRGaWxlLFxuICAgICAgICAgIHR5cGU6ICdlbWJlZCdcbiAgICAgICAgfTtcbiAgXG4gICAgICAgIHRoaXMudG1wRmlsZUFycmF5LnB1c2goZmlsZUVtYmVkKTtcbiAgICAgIH1cbiAgXG4gICAgICBpZiAodGhpcy50eXBlICE9ICdlbWJlZCcpIHtcbiAgICAgICAgaWYgKHRoaXMudG1wRmlsZUFycmF5ICYmIHRoaXMudG1wRmlsZUFycmF5Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBjb25zb2xlLmxvZygndGhpcy50bXBGaWxlQXJyYXknLCB0aGlzLmdldFR5cGVCeU1pbWVUeXBlKHRoaXMudG1wRmlsZUFycmF5WzBdLnR5cGUpKTtcbiAgICAgICAgICBjb25zb2xlLmxvZygnUHVibGlzaCgpJywgMik7XG4gICAgICAgICAgY29uc3QgaW1hZ2VzRmlsZXMgPSB0aGlzLnRtcEZpbGVBcnJheS5maWx0ZXIoXG4gICAgICAgICAgICAodG1wOiBhbnkpID0+IHRoaXMuZ2V0VHlwZUJ5TWltZVR5cGUodG1wLnR5cGUpID09PSAnaW1hZ2UnXG4gICAgICAgICAgKTtcbiAgXG4gIFxuICAgICAgICAgIGNvbnN0IHN0ZXAgPSA5OCAvIGltYWdlc0ZpbGVzLmxlbmd0aDtcbiAgXG4gICAgICAgICAgaWYgKChpbWFnZXNGaWxlcy5sZW5ndGggJiYgZGF0YS50aXRsZSA9PT0gJycpKSB7XG4gICAgICAgICAgICB0aGlzLmdsb2JhbC50b2FzdFNlcnZpY2UuZXJyb3Ioe1xuICAgICAgICAgICAgICB0aXRsZTogJ09wcycsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6ICdWb2PDqiBwcmVjaXNhIGFkaWNpb25hciB1bSB0ZXh0byBqdW50byDDoCBzdWEgaW1hZ2VtL3bDrWRlby4nLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICBcbiAgICAgICAgICBpZiAoaW1hZ2VzRmlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBmaWxlIG9mIGltYWdlc0ZpbGVzKSB7XG4gICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudXRpbHNTZXJ2aWNlLnVwbG9hZEZpbGUoYGltYWdlcy8ke2ZpbGUubmFtZX1gLCBmaWxlLnVybCk7XG4gICAgICAgICAgICAgICAgdGhpcy51dGlsc1NlcnZpY2UucGVyY2VudGFnZS5zdWJzY3JpYmUocGVyY2VudCA9PiB7XG4gICAgICAgICAgICAgICAgICBmaWxlLnN0YXR1cyA9IHBlcmNlbnQ7XG4gICAgICAgICAgICAgICAgfSk7XG4gIFxuICAgICAgICAgICAgICAgIHRoaXMudXRpbHNTZXJ2aWNlLnRhc2suc25hcHNob3RDaGFuZ2VzKCkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgICAgYXN5bmMgc25hcCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzbmFwLmJ5dGVzVHJhbnNmZXJyZWQgPT09IHNuYXAudG90YWxCeXRlcykge1xuICAgICAgICAgICAgICAgICAgICAgIGNvdW50Kys7XG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9ncmVzcyArPSBzdGVwO1xuICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdQUk9HUkVTUycsIHRoaXMucHJvZ3Jlc3MpO1xuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gZGF0YS5maWxlcy5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLm5hbWUgPT09IGZpbGUubmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKCghaW1hZ2UpICYmIChkYXRhLmZpbGVzW2luZGV4XSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXRpbHNTZXJ2aWNlLmdldEZpcmVTdG9yYWdlVVJMKGBpbWFnZXMvJHtkYXRhLmZpbGVzW2luZGV4XS5uYW1lfWApLnN1YnNjcmliZSgoaW1hZ2VVUkwpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2UgPSBpbWFnZVVSTDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICBcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIGRhdGEuZmlsZXNbaW5kZXhdLnVybDtcbiAgXG4gIFxuICBcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoY291bnQgPT0gaW1hZ2VzRmlsZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnQ3JpYW5kbyBGZWVkJyk7XG4gIFxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY29sbGVjdGlvbiA9IHRoaXMuZGIuY29sbGVjdGlvbihwYXRoKCkuZmVlZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xsZWN0aW9uLmFkZChjbGFzc1RvUGxhaW4oZGF0YSkpLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRiLmNvbGxlY3Rpb24ocGF0aCgpLmZlZWQpLmRvYyhyZXNwb25zZS5pZCkudXBkYXRlKHsgaWQ6IHJlc3BvbnNlLmlkIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZlZWRDcmVhdGVkLmVtaXQocmVzcG9uc2UuaWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHJlc3BvbnNlLmlkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICBcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGl0bGUgPSAnJztcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvZ3Jlc3MgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51cGxvYWRpbmcgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50bXBGaWxlQXJyYXkgPSBbXTtcbiAgXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnUHVibGlzaCgpJywgNCk7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgZXJyb3IgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvcicsIGVycm9yKTtcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnUHVibGlzaCgpJywgNSk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhLCB0aGlzLnRtcEZpbGVBcnJheSk7XG4gIFxuICAgICAgICAgICAgY29uc3QgY29sbGVjdGlvbiA9IHRoaXMuZGIuY29sbGVjdGlvbihwYXRoKCkuZmVlZCk7XG4gICAgICAgICAgICBjb2xsZWN0aW9uLmFkZChjbGFzc1RvUGxhaW4oZGF0YSkpLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmRiLmNvbGxlY3Rpb24ocGF0aCgpLmZlZWQpLmRvYyhyZXNwb25zZS5pZCkudXBkYXRlKHsgaWQ6IHJlc3BvbnNlLmlkIH0pO1xuICAgICAgICAgICAgICB0aGlzLmZlZWRDcmVhdGVkLmVtaXQocmVzcG9uc2UuaWQpO1xuICAgICAgICAgICAgICB0aGlzLnRpdGxlID0gJyc7XG4gICAgICAgICAgICAgIHRoaXMucHJvZ3Jlc3MgPSBudWxsO1xuICAgICAgICAgICAgICB0aGlzLnVwbG9hZGluZyA9IG51bGw7XG4gICAgICAgICAgICAgIHRoaXMudG1wRmlsZUFycmF5ID0gW107XG4gICAgICAgICAgICAgIHJlc29sdmUocmVzcG9uc2UuaWQpO1xuICAgICAgICAgICAgfSk7XG4gIFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBjb25zb2xlLmxvZygnUHVibGlzaCgpJywgNSk7XG4gICAgICAgICAgY29uc29sZS5sb2coZGF0YSwgdGhpcy50bXBGaWxlQXJyYXkpO1xuICBcbiAgICAgICAgICBjb25zdCBjb2xsZWN0aW9uID0gdGhpcy5kYi5jb2xsZWN0aW9uKHBhdGgoKS5mZWVkKTtcbiAgICAgICAgICBjb2xsZWN0aW9uLmFkZChjbGFzc1RvUGxhaW4oZGF0YSkpLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgdGhpcy5kYi5jb2xsZWN0aW9uKHBhdGgoKS5mZWVkKS5kb2MocmVzcG9uc2UuaWQpLnVwZGF0ZSh7IGlkOiByZXNwb25zZS5pZCB9KTtcbiAgICAgICAgICAgIHRoaXMuZmVlZENyZWF0ZWQuZW1pdChyZXNwb25zZS5pZCk7XG4gICAgICAgICAgICB0aGlzLnRpdGxlID0gJyc7XG4gICAgICAgICAgICB0aGlzLnByb2dyZXNzID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMudXBsb2FkaW5nID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMudG1wRmlsZUFycmF5ID0gW107XG4gICAgICAgICAgICByZXNvbHZlKHJlc3BvbnNlLmlkKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIGRhdGEuZmlsZXMgPSB0aGlzLnRtcEZpbGVBcnJheTtcbiAgICAgICAgY29uc29sZS5sb2coJ1B1Ymxpc2goRW1iZWQpJywgNik7XG4gICAgICAgIGNvbnNvbGUubG9nKGRhdGEsIHRoaXMudG1wRmlsZUFycmF5KTtcbiAgICAgICAgY29uc3QgY29sbGVjdGlvbiA9IHRoaXMuZGIuY29sbGVjdGlvbihwYXRoKCkuZmVlZCk7XG4gICAgICAgIGNvbGxlY3Rpb24uYWRkKGNsYXNzVG9QbGFpbihkYXRhKSkudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgICAgY29uc3QgZG9jID0gdGhpcy5kYi5jb2xsZWN0aW9uKHBhdGgoKS5mZWVkKS5kb2MocmVzcG9uc2UuaWQpO1xuICAgICAgICAgIGRvYy51cGRhdGUoeyBpZDogcmVzcG9uc2UuaWQgfSk7XG4gICAgICAgICAgdGhpcy5mZWVkQ3JlYXRlZC5lbWl0KHJlc3BvbnNlLmlkKTtcbiAgICAgICAgICB0aGlzLnRpdGxlID0gJyc7XG4gICAgICAgICAgdGhpcy5wcm9ncmVzcyA9IG51bGw7XG4gICAgICAgICAgdGhpcy51cGxvYWRpbmcgPSBudWxsO1xuICAgICAgICAgIHRoaXMudG1wRmlsZUFycmF5ID0gW107XG4gICAgICAgICAgdGhpcy5lbWJlZEZpbGUgPSBudWxsO1xuICAgICAgICAgIHRoaXMudHlwZSA9ICdwb3N0JztcbiAgICAgICAgICByZXNvbHZlKHJlc3BvbnNlLmlkKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gIFxuICBcbiAgICAgIGNvbnNvbGUubG9nKCdQdWJsaXNoKCknLCAwLCBwYXRoKCkuZmVlZCk7XG4gICAgICB0aGlzLnRpdGxlID0gJyc7XG4gICAgICB0aGlzLnByb2dyZXNzID0gbnVsbDtcbiAgICAgIHRoaXMudXBsb2FkaW5nID0gbnVsbDtcbiAgICAgIHRoaXMudG1wRmlsZUFycmF5ID0gW107XG4gICAgICB0aGlzLmdsb2JhbC50b2FzdFNlcnZpY2Uuc2hvdyh7XG4gICAgICAgIHRpdGxlOiAnRmVpdG8hJyxcbiAgICAgICAgbWVzc2FnZTogJ1NldSBwb3N0IGZvaSBjcmlhZG8gY29tIHN1Y2Vzc28nLFxuICAgICAgICBsYXlvdXQ6IDJcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcmVtb3ZlVG1wRmlsZSh0bXBGaWxlOiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMudG1wRmlsZUFycmF5LmluZGV4T2YodG1wRmlsZSk7XG4gICAgdGhpcy50bXBGaWxlQXJyYXkuc3BsaWNlKGluZGV4LCAxKTtcbiAgfVxuXG4gIGNoZWNrUHVibGljYXRpb25UeXBlKHRpdGxlKSB7XG4gICAgY29uc29sZS5sb2coJ0V2ZW50IC0+JywgZXZlbnQpO1xuICAgIGlmICh0aXRsZS5sZW5ndGggJiYgdGl0bGUubGVuZ3RoID4gMzUpIHtcbiAgICAgIGlmICh0aGlzLmlzVmFsaWRVcmwodGl0bGUpKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdjaGVja1B1YmxpY2F0aW9uVHlwZScsIHRpdGxlKTtcbiAgICAgICAgaWYgKHRpdGxlLmluY2x1ZGVzKCd5b3V0dScpIHx8IHRpdGxlLmluY2x1ZGVzKCd5b3V0dWJlJykpIHtcbiAgICAgICAgICB0aGlzLnVwbG9hZGluZyA9IHRydWU7XG4gICAgICAgICAgdGhpcy50eXBlID0gJ2VtYmVkJztcbiAgICAgICAgICB0aGlzLnVwbG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuZW1iZWRGaWxlID0gdGl0bGUucmVwbGFjZSgnd2F0Y2g/dj0nLCAnZW1iZWQvJyk7XG4gICAgICAgICAgdGhpcy50bXBFbWJlZEZpbGUgPSB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0UmVzb3VyY2VVcmwodGhpcy5lbWJlZEZpbGUpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHRpdGxlLmluY2x1ZGVzKCdzcG90aWZ5JykpIHtcbiAgICAgICAgICB0aGlzLnVwbG9hZGluZyA9IHRydWU7XG4gICAgICAgICAgdGhpcy50eXBlID0gJ2VtYmVkJztcbiAgICAgICAgICB0aGlzLmVtYmVkRmlsZSA9IHRpdGxlLnJlcGxhY2UoJy9lcGlzb2RlJywgJy9lbWJlZC1wb2RjYXN0L2VwaXNvZGUnKTtcbiAgICAgICAgICB0aGlzLnRtcEVtYmVkRmlsZSA9IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybCh0aGlzLmVtYmVkRmlsZSk7XG4gICAgICAgICAgdGhpcy51cGxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJlbW92ZUVtYmVkRmlsZXMoKSB7XG4gICAgdGhpcy50aXRsZSA9ICcnO1xuICAgIHRoaXMuZW1iZWRGaWxlID0gJyc7XG4gICAgdGhpcy50eXBlID0gJ3Bvc3QnO1xuICB9XG5cbiAgaXNWYWxpZFVybChzdHIpIHtcbiAgICBjb25zdCBwYXR0ZXJuID0gbmV3IFJlZ0V4cCgnXihodHRwcz86XFxcXC9cXFxcLyk/JyArIC8vIHByb3RvY29sXG4gICAgICAnKCgoW2EtelxcXFxkXShbYS16XFxcXGQtXSpbYS16XFxcXGRdKSopXFxcXC4pK1thLXpdezIsfXwnICsgLy8gZG9tYWluIG5hbWVcbiAgICAgICcoKFxcXFxkezEsM31cXFxcLil7M31cXFxcZHsxLDN9KSknICsgLy8gT1IgaXAgKHY0KSBhZGRyZXNzXG4gICAgICAnKFxcXFw6XFxcXGQrKT8oXFxcXC9bLWEtelxcXFxkJV8ufitdKikqJyArIC8vIHBvcnQgYW5kIHBhdGhcbiAgICAgICcoXFxcXD9bOyZhLXpcXFxcZCVfLn4rPS1dKik/JyArIC8vIHF1ZXJ5IHN0cmluZ1xuICAgICAgJyhcXFxcI1stYS16XFxcXGRfXSopPyQnLCAnaScpOyAvLyBmcmFnbWVudCBsb2NhdG9yXG4gICAgcmV0dXJuICEhcGF0dGVybi50ZXN0KHN0cik7XG4gIH1cblxuICBvcGVuQW5ub3VuY2VNb2RhbCgpIHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKE1vZGFsQW5ub3VuY2VDb21wb25lbnQsIHtcbiAgICAgIHdpZHRoOiAnNTUlJyxcbiAgICAgIG1pbkhlaWdodDogJzk1JScsXG4gICAgICBtYXhIZWlnaHQ6ICcxMDAlJyxcbiAgICAgIGNsb3NlT25OYXZpZ2F0aW9uOiBmYWxzZSxcbiAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcbiAgICAgIGRhdGE6IHsgb3duZXI6IHRoaXMsIHRtcEZpbGVBcnJheTogdGhpcy50bXBGaWxlQXJyYXkgfVxuICAgIH0pO1xuXG4gIH1cblxuICByZWxvYWQoKSB7XG4gICAgdGhpcy5maWx0ZXIuZW1pdCh0aGlzLmZpbHRlckJ5TWUpO1xuICB9XG5cbiAgc2VsZWN0VXNlcihldnQ6IGFueSwgdXNlcjogYW55KSB7XG4gICAgaWYgKGV2dC50YXJnZXQuY2hlY2tlZCkge1xuICAgICAgdGhpcy5zZWxlY3RlZFVzZXJzW3VzZXIuaWRdID0gdXNlcjtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBkZWxldGUgdGhpcy5zZWxlY3RlZFVzZXJzW3VzZXIuaWRdO1xuICAgIH1cbiAgfVxuXG4gIHNob3dTZWxlY3RlZCgpIHtcbiAgICB0aGlzLmxpc3RUeXBlID0gJ2NoZWNrZWQnO1xuICAgIHRoaXMudXNlcnMgPSBbXTtcbiAgICBmb3IgKGNvbnN0IGlkIGluIHRoaXMuc2VsZWN0ZWRVc2Vycykge1xuICAgICAgdGhpcy51c2Vycy5wdXNoKHRoaXMuc2VsZWN0ZWRVc2Vyc1tpZF0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvcGVuTW9kYWwoKSB7XG4gICAgaWYgKHRoaXMubmV3ZmVlZCkge1xuICAgICAgJCgnI3B1YmxpY2F0aW9uTW9kYWwnKS5tb2RhbCgpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5jb25maXJtU2hhcmUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0TmV3RmVlZCgpIHtcbiAgICB0aGlzLnNlbGVjdGVkVXNlcnMgPSBbXTtcbiAgICB0aGlzLmFzYXBTZXJ2aWNlLmJhc2VQYXRoID0gXCJhcGkvdjIvYWRtaW5cIjtcbiAgICB0aGlzLmFzYXBTZXJ2aWNlLmVudGl0eU5hbWUgPSBcImNvbG9yXCI7XG4gICAgdGhpcy5hc2FwU2VydmljZS5nZXRSZXNvdXJjZSh0aGlzLmdsb2JhbC5sb2dnZWRVc2VyKCkuY2xpZW50X2lkKS5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgdGhpcy5uZXdmZWVkID0gcmVzcG9uc2UuZGF0YS5uZXdmZWVkO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -390,14 +390,13 @@ var FeedPublicationComponent = /** @class */ (function () {
|
|
|
390
390
|
}
|
|
391
391
|
}));
|
|
392
392
|
}
|
|
393
|
+
console.log("share", data);
|
|
393
394
|
this.publish(data).then((/**
|
|
394
395
|
* @param {?} id
|
|
395
396
|
* @return {?}
|
|
396
397
|
*/
|
|
397
398
|
function (id) {
|
|
398
|
-
|
|
399
|
-
_this.userService.usersChecked({ post_id: id, user_id: data.selected_users }).subscribe();
|
|
400
|
-
}
|
|
399
|
+
_this.userService.usersChecked({ post_id: id, user_id: data.selected_users, comment: data.title, type: 'post' }, { comments: true }).subscribe();
|
|
401
400
|
}));
|
|
402
401
|
this.selectedUsers = [];
|
|
403
402
|
};
|
|
@@ -922,4 +921,4 @@ if (false) {
|
|
|
922
921
|
/** @type {?} */
|
|
923
922
|
FeedPublicationComponent.prototype.dialog;
|
|
924
923
|
}
|
|
925
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlZC1wdWJsaWNhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hc2FwLWZlZWQtYmV0YS8iLCJzb3VyY2VzIjpbImxpYi9mZWVkLXB1YmxpY2F0aW9uL2ZlZWQtcHVibGljYXRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDaEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzlDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbkYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLElBQUksTUFBTSxhQUFhLENBQUM7QUFJL0I7SUFvQ0Usa0NBQ1MsTUFBYyxFQUNkLFdBQTRCLEVB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SUFDckIsNENBQXdCOztJQUN4QiwyQ0FBb0I7O0lBRXBCLDJDQUFpRzs7SUFDakcsaURBQStCOztJQUMvQiw0Q0FBaUQ7O0lBRWpELDhDQUEwQjs7SUFHeEIsMENBQXFCOztJQUNyQiwrQ0FBbUM7O0lBQ25DLCtDQUErQjs7SUFDL0IsK0NBQStCOztJQUMvQiw2Q0FBOEI7O0lBQzlCLGlEQUFtQzs7SUFDbkMsZ0RBQWlDOztJQUNqQyxzQ0FBMkI7O0lBQzNCLHdDQUF1Qjs7SUFDdkIsMENBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXNhcFNlcnZpY2UsIEdsb2JhbCB9IGZyb20gJ2FzYXAtY3J1ZCc7XG5pbXBvcnQgeyBBc2FwRmVlZFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9hc2FwLWZlZWQuc2VydmljZSc7XG5pbXBvcnQgeyBTdHJlYW1TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvc3RyZWFtLnNlcnZpY2UnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBGaWxlc01vZGVsLCBGZWVkTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvZmVlZC5tb2RlbCc7XG5pbXBvcnQgeyBVdGlsc1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy91dGlscy5zZXJ2aWNlJztcbmltcG9ydCB7IHBhdGggfSBmcm9tICcuLi9jb25zdGFudHMvY29uc3RhbnRzJztcbmltcG9ydCB7IEFuZ3VsYXJGaXJlc3RvcmUgfSBmcm9tICdAYW5ndWxhci9maXJlL2ZpcmVzdG9yZSc7XG5pbXBvcnQgeyBjbGFzc1RvUGxhaW4gfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgTW9kYWxBbm5vdW5jZUNvbXBvbmVudCB9IGZyb20gJy4vbW9kYWwtYW5ub3VuY2UvbW9kYWwtYW5ub3VuY2UuY29tcG9uZW50JztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBVc2VyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3VzZXIuc2VydmljZSc7XG5pbXBvcnQgU3dhbCBmcm9tICdzd2VldGFsZXJ0Mic7XG5cbmRlY2xhcmUgdmFyICQ6IGFueTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZmVlZC1wdWJsaWNhdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9mZWVkLXB1YmxpY2F0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmVlZC1wdWJsaWNhdGlvbi5jb21wb25lbnQuc2NzcycsICcuLi9hc2FwLWZlZWQuYmV0YS5jb21wb25lbnRlLnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbIFN0cmVhbVNlcnZpY2UsIFVzZXJTZXJ2aWNlLCBBc2FwU2VydmljZSBdXG59KVxuZXhwb3J0IGNsYXNzIEZlZWRQdWJsaWNhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgYW5ub3VuY2UgPSBmYWxzZTtcbiAgQElucHV0KCkgaGlkZUZpbHRlckJ5TWUgPSBmYWxzZTtcbiAgQElucHV0KCkgc2V0dGluZ3M7XG4gIEBPdXRwdXQoKSBmZWVkQ3JlYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGZpbHRlciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwdWJsaWMgdXNlcnMgPSBbXTtcblxuICBwdWJsaWMgdG1wRmlsZUFycmF5OiBBcnJheTxGaWxlc01vZGVsPjtcbiAgcHVibGljIHVwbG9hZGluZztcbiAgcHVibGljIHRpdGxlID0gbnVsbDtcbiAgcHVibGljIHByb2dyZXNzO1xuICBwdWJsaWMgbm90QW5ub3VuY2U7XG4gIHB1YmxpYyBuZXdQcm9kdWN0O1xuICBwdWJsaWMgRXhwYW5kSW1nO1xuICBwdWJsaWMgdHlwZSA9ICdwb3N0JztcbiAgcHVibGljIGVtYmVkRmlsZTtcbiAgcHVibGljIHRtcEVtYmVkRmlsZTtcbiAgcHVibGljIHZpZGVvU2VuZGVkSUQ7XG4gIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xuICBwdWJsaWMgbmV3ZmVlZDogYW55O1xuXG4gIHB1YmxpYyBtZXNzYWdlID0gXCJEaWdpdGUgYWNpbWEgbyBub21lIGRhIHBlc3NvYSBxdWUgZGVzZWphIG1hcmNhciwgZW0gc2VndWlkYSBwcmVzc2lvbmUgW0VOVEVSXVwiO1xuICBwdWJsaWMgc2VsZWN0ZWRVc2VyczogYW55ID0ge307XG4gIHB1YmxpYyBsaXN0VHlwZTogJ2NoZWNrZWQnIHwgJ3NlYXJjaCcgPSAnc2VhcmNoJztcblxuICBwdWJsaWMgZmlsdGVyQnlNZSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBnbG9iYWw6IEdsb2JhbCxcbiAgICBwdWJsaWMgZmVlZFNlcnZpY2U6IEFzYXBGZWVkU2VydmljZSxcbiAgICBwdWJsaWMgYXNhcFNlcnZpY2U6IEFzYXBTZXJ2aWNlLFxuICAgIHB1YmxpYyB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgcHVibGljIHNhbml0aXplcjogRG9tU2FuaXRpemVyLFxuICAgIHB1YmxpYyBzdHJlYW1TZXJ2aWNlOiBTdHJlYW1TZXJ2aWNlLFxuICAgIHB1YmxpYyB1dGlsc1NlcnZpY2U6IFV0aWxzU2VydmljZSxcbiAgICBwdWJsaWMgZGI6IEFuZ3VsYXJGaXJlc3RvcmUsXG4gICAgcHVibGljIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nLFxuICApIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMudG1wRmlsZUFycmF5ID0gW107XG4gICAgY29uc29sZS5sb2coJ1ByZWZpeCBQdWJsaWNhdGlvbiAtPicsIHBhdGgoKS5mZWVkKTtcbiAgICB0aGlzLmdldE5ld0ZlZWQoKTtcbiAgfVxuXG4gIGxvYWRVc2Vycyh2YWx1ZTogYW55KSB7XG4gICAgY29uc3Qgc2VhcmNoID0gdmFsdWU7XG4gICAgdGhpcy51c2VycyA9IG51bGw7XG4gICAgdGhpcy5saXN0VHlwZSA9ICdzZWFyY2gnO1xuICAgIGlmIChzZWFyY2ggIT0gJycpIHtcbiAgICAgIHRoaXMubWVzc2FnZSA9IFwiTmVuaHVtIHVzdcOhcmlvIGVuY29udHJhZG8hXCI7XG4gICAgICB0aGlzLnVzZXJTZXJ2aWNlLmdldEFsbFVzZXJzKHNlYXJjaCkuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xuICAgICAgICB0aGlzLnVzZXJzID0gcmVzcG9uc2UuZGF0YS5tYXAoKHVzZXIpID0+IHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaWQ6IHVzZXIudXNlcl9pbmZvLnVzZXJfaWQsXG4gICAgICAgICAgICBuYW1lOiB1c2VyLnVzZXJfaW5mby51c2VyX25hbWUsXG4gICAgICAgICAgICBlbWFpbDogdXNlci5lbWFpbCxcbiAgICAgICAgICAgIHBpY3R1cmU6IHVzZXIucGljdHVyZVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHVwbG9hZEZpbGUoZXZlbnQ6IGFueSkge1xuICAgIGZvciAoY29uc3QgZmlsZSBvZiBldmVudC50YXJnZXQuZmlsZXMpIHtcblxuICAgICAgY29uc3QgdG1wRmlsZTogRmlsZXNNb2RlbCA9IG5ldyBGaWxlc01vZGVsKCk7XG4gICAgICB0bXBGaWxlLnR5cGUgPSB0aGlzLmdldFR5cGVCeU1pbWVUeXBlKGZpbGUudHlwZSk7XG4gICAgICAvLyB0bXBGaWxlLnN0YXR1cyA9IDA7XG4gICAgICB0bXBGaWxlLnRodW1iX3JlbmRlcmluZyA9IGZhbHNlO1xuICAgICAgdG1wRmlsZS52aWRlb19yZW5kZXJpbmcgPSBmYWxzZTtcbiAgICAgIHRtcEZpbGUudmlkZW9fbG93X3JlbmRlcmluZyA9IGZhbHNlO1xuXG4gICAgICBsZXQgZXJyb3IgPSBmYWxzZTtcbiAgICAgIGlmICh0aGlzLmdldFR5cGVCeU1pbWVUeXBlKGZpbGUudHlwZSkgPT09ICd2aWRlbycgJiYgdGhpcy50bXBGaWxlQXJyYXkuZmlsdGVyKCh0bXA6IGFueSkgPT4gdGhpcy5nZXRUeXBlQnlNaW1lVHlwZSh0bXAudHlwZSkgPT09ICd2aWRlbycpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5nbG9iYWwudG9hc3RTZXJ2aWNlLmVycm9yKHtcbiAgICAgICAgICB0aXRsZTogJ09wcycsXG4gICAgICAgICAgbWVzc2FnZTogJ1ZvY8OqIHPDsyBwb2RlIGVudmlhciB1bSB2w61kZW8gcG9yIFBvc3QnXG4gICAgICAgIH0pO1xuICAgICAgICBlcnJvciA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmdldFR5cGVCeU1pbWVUeXBlKGZpbGUudHlwZSkgPT09ICdpbWFnZScgJiYgdGhpcy50bXBGaWxlQXJyYXkuZmlsdGVyKCh0bXA6IGFueSkgPT4gdGhpcy5nZXRUeXBlQnlNaW1lVHlwZSh0bXAudHlwZSkgPT09ICdpbWFnZScpLmxlbmd0aCA+IDQpIHtcbiAgICAgICAgdGhpcy5nbG9iYWwudG9hc3RTZXJ2aWNlLmVycm9yKHtcbiAgICAgICAgICB0aXRsZTogJ09wcycsXG4gICAgICAgICAgbWVzc2FnZTogJ1ZvY8OqIHBvZGUgdXRpbGl6YXIgYXTDqSBubyBtw6F4aW1vIDUgaW1hZ2VucyBubyBzZXUgUG9zdCdcbiAgICAgICAgfSk7XG4gICAgICAgIGVycm9yID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFlcnJvcikge1xuICAgICAgICAvLyB0aGlzLnVwbG9hZGluZyA9IHRydWU7XG5cbiAgICAgICAgaWYgKHRoaXMuZ2V0VHlwZUJ5TWltZVR5cGUoZmlsZS50eXBlKSA9PT0gJ2ltYWdlJykge1xuICAgICAgICAgIGlmIChmaWxlLnR5cGUgPT0gJ2ltYWdlL2dpZicpIHtcbiAgICAgICAgICAgIHRtcEZpbGUubmFtZSA9IGAke3RoaXMuc3RyZWFtU2VydmljZS51aWQoKX0uZ2lmYDtcbiAgICAgICAgICAgIHRtcEZpbGUudXJsID0gYXdhaXQgdGhpcy5yZWFkR0lGKGZpbGUpO1xuICAgICAgICAgICAgdGhpcy50bXBGaWxlQXJyYXkucHVzaCh0bXBGaWxlKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGdldEV4dG5hbWUgPSBmaWxlLm5hbWUuc3BsaXQoJy4nKTtcbiAgICAgICAgICAgIGNvbnN0IGV4dG5hbWUgPSBnZXRFeHRuYW1lW2dldEV4dG5hbWUubGVuZ3RoIC0gMV07XG5cbiAgICAgICAgICAgIHRtcEZpbGUudXJsID0gYXdhaXQgdGhpcy5yZXNpemVJbWFnZXMoZmlsZSwgODAwKTtcbiAgICAgICAgICAgIHRtcEZpbGUubmFtZSA9IGAke3RoaXMuc3RyZWFtU2VydmljZS51aWQoKX0uJHtleHRuYW1lfWA7XG4gICAgICAgICAgICB0aGlzLnRtcEZpbGVBcnJheS5wdXNoKHRtcEZpbGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGVsc2UgaWYgKHRoaXMuZ2V0VHlwZUJ5TWltZVR5cGUoZmlsZS50eXBlKSA9PT0gJ3ZpZGVvJykge1xuICAgICAgICAgIHRoaXMudXBsb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgICBjb25zb2xlLmxvZygnUmVhbGl6YXIgVXBsb2FkIGRlIFZpZGVvJywgdG1wRmlsZSk7XG4gICAgICAgICAgY29uc3QgcmVhZGVyID0gZmlsZTtcbiAgICAgICAgICBpZiAocmVhZGVyKSB7XG4gICAgICAgICAgICBjb25zdCBibG9iVVJMID0gVVJMLmNyZWF0ZU9iamVjdFVSTChyZWFkZXIpO1xuICAgICAgICAgICAgdG1wRmlsZS5uYW1lID0gYmxvYlVSTCBhcyBhbnk7XG4gICAgICAgICAgICB0aGlzLnRtcEZpbGVBcnJheS5wdXNoKHRtcEZpbGUpO1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ1t1cGxvYWRGaWxlXSBpZiByZWFkZXInLCBibG9iVVJMKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLnVwbG9hZGluZyA9IHRydWU7XG4gICAgICAgICAgYXdhaXQgdGhpcy5zdHJlYW1TZXJ2aWNlLnVwbG9hZEZpbGUoZmlsZSkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgcmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZygnW3VwbG9hZEZpbGVdIFJlc3BvbnNlJywgdG1wRmlsZSk7XG4gICAgICAgICAgICAgIGlmICghcmVzcG9uc2UuYm9keSkge1xuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZVsndG90YWwnXSkge1xuICAgICAgICAgICAgICAgICAgdG1wRmlsZS5zdGF0dXMgPSAoKHJlc3BvbnNlWydsb2FkZWQnXSAqIDEwMCkgLyByZXNwb25zZVsndG90YWwnXSkudG9GaXhlZCgwKSBhcyBhbnk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMucHJvZ3Jlc3MgPSB0bXBGaWxlLnN0YXR1cztcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmIChyZXNwb25zZS5ib2R5ICYmIHJlc3BvbnNlLmJvZHkuZmlsZSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdbdXBsb2FkRmlsZV0gUmVzcG9uc2UgVXBsb2FkZWQnLCByZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgdG1wRmlsZS5zdGF0dXMgPSAxMDE7XG4gICAgICAgICAgICAgICAgdG1wRmlsZS51cmwgPSByZXNwb25zZS5ib2R5LmZpbGUuc2VjdXJlX3VybDtcbiAgICAgICAgICAgICAgICB0aGlzLnZpZGVvU2VuZGVkSUQgPSB0bXBGaWxlLnVybDtcbiAgICAgICAgICAgICAgICB0aGlzLnVwbG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMucHJvZ3Jlc3MgPSBudWxsO1xuXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgICAgIGNvbnNvbGUubG9nKCd0bXBGaWxlJywgdG1wRmlsZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXNpemVJbWFnZXMoZmlsZTogYW55LCB3aWR0aDogbnVtYmVyKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY29uc3QgaW1nID0gbmV3IEltYWdlKCk7XG4gICAgICBjb25zdCBNQVhfV0lEVEggPSB3aWR0aDtcbiAgICAgIGNvbnN0IE1BWF9IRUlHSFQ6IGFueSA9IDEzMzQ7XG5cbiAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG5cbiAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xuXG4gICAgICByZWFkZXIub25sb2FkID0gKGU6IGFueSkgPT4ge1xuICAgICAgICBpbWcuc3JjID0gZS50YXJnZXQucmVzdWx0O1xuICAgICAgICBpbWcub25sb2FkID0gKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHNjYWxlID0gTUFYX1dJRFRIIC8gaW1nLndpZHRoO1xuICAgICAgICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuICAgICAgICAgIGNhbnZhcy5oZWlnaHQgPSBzY2FsZSAqIGltZy5oZWlnaHQ7XG5cbiAgICAgICAgICBjYW52YXMud2lkdGggPSBNQVhfV0lEVEg7XG4gICAgICAgICAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XG4gICAgICAgICAgY3R4LmRyYXdJbWFnZShpbWcsIDAsIDApO1xuXG4gICAgICAgICAgY29uc29sZS5sb2coJ0lNRycsIGltZy53aWR0aCwgaW1nLmhlaWdodCk7XG4gICAgICAgICAgY3R4LmRyYXdJbWFnZShpbWcsIDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7XG5cbiAgICAgICAgICBjb25zdCBkYXRhdXJsID0gY2FudmFzLnRvRGF0YVVSTChmaWxlLnR5cGUsIDAuNjUpO1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdDQU5WQVMgLT4nLCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpO1xuICAgICAgICAgIHJldHVybiByZXNvbHZlKGRhdGF1cmwpO1xuICAgICAgICB9O1xuICAgICAgfTtcblxuICAgICAgcmVhZGVyLm9uZXJyb3IgPSByZWplY3Q7XG4gICAgfSk7XG5cbiAgfVxuXG4gIHJlYWRHSUYoZmlsZTogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXG4gICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuXG4gICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcblxuICAgICAgcmVhZGVyLm9ubG9hZCA9IChlOiBhbnkpID0+IHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmUocmVhZGVyLnJlc3VsdCk7XG4gICAgICB9O1xuXG4gICAgICByZWFkZXIub25lcnJvciA9IHJlamVjdDtcbiAgICB9KTtcblxuICB9XG5cbiAgZ2V0VHlwZUJ5TWltZVR5cGUobWltZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBzcGxpdCA9IG1pbWUuc3BsaXQoJy8nKTtcbiAgICByZXR1cm4gc3BsaXRbMF07XG4gIH1cblxuICBzaGFyZSgpOiBhbnkge1xuICAgIGNvbnN0IGRhdGE6IEZlZWRNb2RlbCA9IG5ldyBGZWVkTW9kZWwoKTtcbiAgICBkYXRhLnVwZGF0ZWRfYXQgPSBEYXRlLm5vdygpO1xuICAgIGRhdGEudGl0bGUgPSB0aGlzLnRpdGxlO1xuICAgIGRhdGEudHlwZSA9IHRoaXMudHlwZTtcbiAgICBkYXRhLnNlbGVjdGVkX3VzZXJzID0gW107XG4gICAgZGF0YS5zZWxlY3RlZF91c2Vyc19kYXRhID0gW107XG5cbiAgICBmb3IgKGNvbnN0IGlkIGluIHRoaXMuc2VsZWN0ZWRVc2Vycykge1xuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRVc2Vyc1tpZF0pIHtcbiAgICAgICAgZGF0YS5zZWxlY3RlZF91c2Vycy5wdXNoKGlkKTtcbiAgICAgICAgZGF0YS5zZWxlY3RlZF91c2Vyc19kYXRhLnB1c2goe1xuICAgICAgICAgIGlkLFxuICAgICAgICAgIG5hbWU6IHRoaXMuc2VsZWN0ZWRVc2Vyc1tpZF0ubmFtZSxcbiAgICAgICAgICBwaWN0dXJlOiB0aGlzLnNlbGVjdGVkVXNlcnNbaWRdLnBpY3R1cmUsXG4gICAgICAgICAgZW1haWw6IHRoaXMuc2VsZWN0ZWRVc2Vyc1tpZF0uZW1haWxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudG1wRmlsZUFycmF5IHx8IHRoaXMudG1wRmlsZUFycmF5Lmxlbmd0aCA+IDApIHtcbiAgICAgIGRhdGEuZmlsZXMgPSB0aGlzLnRtcEZpbGVBcnJheTtcbiAgICAgIC8vIGNvbnN0IHZpZGVvRmlsdGVyID0gZGF0YS5maWxlcy5maWx0ZXIodG1wID0+IHRoaXMuZ2V0VHlwZUJ5TWltZVR5cGUodG1wLnR5cGUpID09PSAndmlkZW8nKTtcbiAgICAgIC8vIGlmICh2aWRlb0ZpbHRlci5sZW5ndGggPiAwKSB7XG4gICAgICAvLyB9XG4gICAgICBkYXRhLmZpbGVzLm1hcChpdGVtID0+IHtcbiAgICAgICAgaWYgKGl0ZW0udHlwZSA9PT0gJ3ZpZGVvJykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdFeGlzdGUgdW0gdmlkZW8gbm8gRmVlZCcsIGl0ZW0pO1xuICAgICAgICAgIGlmICghaXRlbS5pc0Nsb3VkaW5hcnkpIHtcbiAgICAgICAgICAgIGl0ZW0udmlkZW9fcmVuZGVyaW5nID0gZmFsc2U7XG4gICAgICAgICAgICBpdGVtLnZpZGVvX2xvd19yZW5kZXJpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIGl0ZW0udGh1bWJfcmVuZGVyaW5nID0gZmFsc2U7XG5cbiAgICAgICAgICAgIC8vIFNldGFuZG8gbyBJRCBkbyBGZWVkIGlndWFsIGFvIElEIGRvIHbDrWRlb1xuICAgICAgICAgICAgZGF0YS5yZWYgPSBpdGVtLnVybDtcbiAgICAgICAgICAgIGRhdGEuc3RhdHVzID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLnN0cmVhbVNlcnZpY2Uuc3RhdHVzKGl0ZW0udXJsKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgICAgIGl0ZW0udmlkZW9fcmVuZGVyaW5nID0gIXJlcy5wNDgwO1xuICAgICAgICAgICAgICBpdGVtLnZpZGVvX2xvd19yZW5kZXJpbmcgPSAhcmVzLnA0ODBfbG93O1xuICAgICAgICAgICAgICBpdGVtLnRodW1iX3JlbmRlcmluZyA9ICFyZXMudGh1bWI7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMucHVibGlzaChkYXRhKS50aGVuKChpZCkgPT4ge1xuICAgICAgaWYgKGRhdGEuc2VsZWN0ZWRfdXNlcnMubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMudXNlclNlcnZpY2UudXNlcnNDaGVja2VkKHtwb3N0X2lkOiBpZCwgdXNlcl9pZDogZGF0YS5zZWxlY3RlZF91c2Vyc30pLnN1YnNjcmliZSgpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5zZWxlY3RlZFVzZXJzID0gW107XG4gIH1cblxuICBjb25maXJtU2hhcmUoKSB7XG4gICAgY29uc3Qgc3dhbGwgPSBTd2FsLmZpcmUoe1xuICAgICAgICB0aXRsZTogXCJQb2RlbW9zIGNvbXBhcnRpbGhhciBzZXUgcG9zdD9cIixcbiAgICAgICAgdHlwZTogXCJ3YXJuaW5nXCIsXG4gICAgICAgIHNob3dDYW5jZWxCdXR0b246IHRydWUsXG4gICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiBcIlNpbVwiLFxuICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiBcIk7Do29cIlxuICAgIH0pO1xuXG4gICAgc3dhbGwudGhlbigoY29uZmlybWVkKSA9PiB7XG4gICAgICBpZiAoY29uZmlybWVkLnZhbHVlKSB7XG4gICAgICAgIHRoaXMuc2hhcmUoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1Ymxpc2goZGF0YTogRmVlZE1vZGVsKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG5cbiAgICAgIGxldCBpbWFnZTtcbiAgICAgIGxldCBpZDtcbiAgICAgIGNvbnNvbGUubG9nKCdQdWJsaXNoKCknLCAxLCBkYXRhKTtcbiAgXG4gICAgICBpZiAoIWRhdGEudGl0bGUgfHwgZGF0YS50aXRsZSA9PT0gJycpIHtcbiAgICAgICAgLy8gdGhpcy5nbG9iYWwudG9hc3RTZXJ2aWNlLmVycm9yKHtcbiAgICAgICAgLy8gICB0aXRsZTogJ09wcycsXG4gICAgICAgIC8vICAgbWVzc2FnZTogJ1ZvY8OqIHByZWNpc2EgYWRpY2lvbmFyIHVtIHRleHRvIMOgIHN1YSBpbWFnZW0vdsOtZGVvLicsXG4gICAgICAgIC8vIH0pO1xuICAgICAgICBTd2FsLmZpcmUoe1xuICAgICAgICAgICAgICB0aXRsZTogXCJQb2RlbW9zIGNvbXBhcnRpbGhhciBzZXUgcG9zdD8/XCIsXG4gICAgICAgICAgICAgIHR5cGU6IFwid2FybmluZ1wiLFxuICAgICAgICAgICAgICBzaG93Q2FuY2VsQnV0dG9uOiB0cnVlLFxuICAgICAgICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogXCJTaW1cIixcbiAgICAgICAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogXCJOw6NvXCJcbiAgICAgICAgICB9KVxuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLnVwbG9hZGluZyA9IHRydWU7XG4gICAgICB0aGlzLnByb2dyZXNzID0gMDtcbiAgXG4gIFxuICAgICAgbGV0IGNvdW50ID0gMDtcbiAgICAgIGRhdGEudXNlcl9pbmZvID0ge1xuICAgICAgICBpZDogdGhpcy5nbG9iYWwubG9nZ2VkVXNlcigpLmlkLFxuICAgICAgICBuYW1lOiB0aGlzLmdsb2JhbC5sb2dnZWRVc2VyKCkubmFtZSxcbiAgICAgICAgcGljdHVyZTogdGhpcy5nbG9iYWwubG9nZ2VkVXNlcigpLnBpY3R1cmUsXG4gICAgICAgIHVwZGF0ZWRfYXQ6IERhdGUubm93KClcbiAgICAgIH07XG4gIFxuICAgICAgaWYgKHRoaXMudHlwZSA9PSAnZW1iZWQnKSB7XG4gICAgICAgIGNvbnN0IGZpbGVFbWJlZDogYW55ID0ge1xuICAgICAgICAgIG5hbWU6IHRoaXMuZW1iZWRGaWxlLFxuICAgICAgICAgIHVybDogdGhpcy5lbWJlZEZpbGUsXG4gICAgICAgICAgdHlwZTogJ2VtYmVkJ1xuICAgICAgICB9O1xuICBcbiAgICAgICAgdGhpcy50bXBGaWxlQXJyYXkucHVzaChmaWxlRW1iZWQpO1xuICAgICAgfVxuICBcbiAgICAgIGlmICh0aGlzLnR5cGUgIT0gJ2VtYmVkJykge1xuICAgICAgICBpZiAodGhpcy50bXBGaWxlQXJyYXkgJiYgdGhpcy50bXBGaWxlQXJyYXkubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCd0aGlzLnRtcEZpbGVBcnJheScsIHRoaXMuZ2V0VHlwZUJ5TWltZVR5cGUodGhpcy50bXBGaWxlQXJyYXlbMF0udHlwZSkpO1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdQdWJsaXNoKCknLCAyKTtcbiAgICAgICAgICBjb25zdCBpbWFnZXNGaWxlcyA9IHRoaXMudG1wRmlsZUFycmF5LmZpbHRlcihcbiAgICAgICAgICAgICh0bXA6IGFueSkgPT4gdGhpcy5nZXRUeXBlQnlNaW1lVHlwZSh0bXAudHlwZSkgPT09ICdpbWFnZSdcbiAgICAgICAgICApO1xuICBcbiAgXG4gICAgICAgICAgY29uc3Qgc3RlcCA9IDk4IC8gaW1hZ2VzRmlsZXMubGVuZ3RoO1xuICBcbiAgICAgICAgICBpZiAoKGltYWdlc0ZpbGVzLmxlbmd0aCAmJiBkYXRhLnRpdGxlID09PSAnJykpIHtcbiAgICAgICAgICAgIHRoaXMuZ2xvYmFsLnRvYXN0U2VydmljZS5lcnJvcih7XG4gICAgICAgICAgICAgIHRpdGxlOiAnT3BzJyxcbiAgICAgICAgICAgICAgbWVzc2FnZTogJ1ZvY8OqIHByZWNpc2EgYWRpY2lvbmFyIHVtIHRleHRvIGp1bnRvIMOgIHN1YSBpbWFnZW0vdsOtZGVvLicsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gIFxuICAgICAgICAgIGlmIChpbWFnZXNGaWxlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGZpbGUgb2YgaW1hZ2VzRmlsZXMpIHtcbiAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy51dGlsc1NlcnZpY2UudXBsb2FkRmlsZShgaW1hZ2VzLyR7ZmlsZS5uYW1lfWAsIGZpbGUudXJsKTtcbiAgICAgICAgICAgICAgICB0aGlzLnV0aWxzU2VydmljZS5wZXJjZW50YWdlLnN1YnNjcmliZShwZXJjZW50ID0+IHtcbiAgICAgICAgICAgICAgICAgIGZpbGUuc3RhdHVzID0gcGVyY2VudDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgXG4gICAgICAgICAgICAgICAgdGhpcy51dGlsc1NlcnZpY2UudGFzay5zbmFwc2hvdENoYW5nZXMoKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgICBhc3luYyBzbmFwID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNuYXAuYnl0ZXNUcmFuc2ZlcnJlZCA9PT0gc25hcC50b3RhbEJ5dGVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgY291bnQrKztcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb2dyZXNzICs9IHN0ZXA7XG4gICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ1BST0dSRVNTJywgdGhpcy5wcm9ncmVzcyk7XG4gICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSBkYXRhLmZpbGVzLmZpbmRJbmRleChpdGVtID0+IGl0ZW0ubmFtZSA9PT0gZmlsZS5uYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoKCFpbWFnZSkgJiYgKGRhdGEuZmlsZXNbaW5kZXhdKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51dGlsc1NlcnZpY2UuZ2V0RmlyZVN0b3JhZ2VVUkwoYGltYWdlcy8ke2RhdGEuZmlsZXNbaW5kZXhdLm5hbWV9YCkuc3Vic2NyaWJlKChpbWFnZVVSTCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpbWFnZSA9IGltYWdlVVJMO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gIFxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgZGF0YS5maWxlc1tpbmRleF0udXJsO1xuICBcbiAgXG4gIFxuICAgICAgICAgICAgICAgICAgICAgIGlmIChjb3VudCA9PSBpbWFnZXNGaWxlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdDcmlhbmRvIEZlZWQnKTtcbiAgXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb2xsZWN0aW9uID0gdGhpcy5kYi5jb2xsZWN0aW9uKHBhdGgoKS5mZWVkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbGxlY3Rpb24uYWRkKGNsYXNzVG9QbGFpbihkYXRhKSkudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGIuY29sbGVjdGlvbihwYXRoKCkuZmVlZCkuZG9jKHJlc3BvbnNlLmlkKS51cGRhdGUoeyBpZDogcmVzcG9uc2UuaWQgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmVlZENyZWF0ZWQuZW1pdChyZXNwb25zZS5pZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVzcG9uc2UuaWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gIFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50aXRsZSA9ICcnO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9ncmVzcyA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVwbG9hZGluZyA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRtcEZpbGVBcnJheSA9IFtdO1xuICBcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdQdWJsaXNoKCknLCA0KTtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBlcnJvciA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yJywgZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdQdWJsaXNoKCknLCA1KTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGRhdGEsIHRoaXMudG1wRmlsZUFycmF5KTtcbiAgXG4gICAgICAgICAgICBjb25zdCBjb2xsZWN0aW9uID0gdGhpcy5kYi5jb2xsZWN0aW9uKHBhdGgoKS5mZWVkKTtcbiAgICAgICAgICAgIGNvbGxlY3Rpb24uYWRkKGNsYXNzVG9QbGFpbihkYXRhKSkudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuZGIuY29sbGVjdGlvbihwYXRoKCkuZmVlZCkuZG9jKHJlc3BvbnNlLmlkKS51cGRhdGUoeyBpZDogcmVzcG9uc2UuaWQgfSk7XG4gICAgICAgICAgICAgIHRoaXMuZmVlZENyZWF0ZWQuZW1pdChyZXNwb25zZS5pZCk7XG4gICAgICAgICAgICAgIHRoaXMudGl0bGUgPSAnJztcbiAgICAgICAgICAgICAgdGhpcy5wcm9ncmVzcyA9IG51bGw7XG4gICAgICAgICAgICAgIHRoaXMudXBsb2FkaW5nID0gbnVsbDtcbiAgICAgICAgICAgICAgdGhpcy50bXBGaWxlQXJyYXkgPSBbXTtcbiAgICAgICAgICAgICAgcmVzb2x2ZShyZXNwb25zZS5pZCk7XG4gICAgICAgICAgICB9KTtcbiAgXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdQdWJsaXNoKCknLCA1KTtcbiAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhLCB0aGlzLnRtcEZpbGVBcnJheSk7XG4gIFxuICAgICAgICAgIGNvbnN0IGNvbGxlY3Rpb24gPSB0aGlzLmRiLmNvbGxlY3Rpb24ocGF0aCgpLmZlZWQpO1xuICAgICAgICAgIGNvbGxlY3Rpb24uYWRkKGNsYXNzVG9QbGFpbihkYXRhKSkudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICB0aGlzLmRiLmNvbGxlY3Rpb24ocGF0aCgpLmZlZWQpLmRvYyhyZXNwb25zZS5pZCkudXBkYXRlKHsgaWQ6IHJlc3BvbnNlLmlkIH0pO1xuICAgICAgICAgICAgdGhpcy5mZWVkQ3JlYXRlZC5lbWl0KHJlc3BvbnNlLmlkKTtcbiAgICAgICAgICAgIHRoaXMudGl0bGUgPSAnJztcbiAgICAgICAgICAgIHRoaXMucHJvZ3Jlc3MgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy51cGxvYWRpbmcgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy50bXBGaWxlQXJyYXkgPSBbXTtcbiAgICAgICAgICAgIHJlc29sdmUocmVzcG9uc2UuaWQpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgZGF0YS5maWxlcyA9IHRoaXMudG1wRmlsZUFycmF5O1xuICAgICAgICBjb25zb2xlLmxvZygnUHVibGlzaChFbWJlZCknLCA2KTtcbiAgICAgICAgY29uc29sZS5sb2coZGF0YSwgdGhpcy50bXBGaWxlQXJyYXkpO1xuICAgICAgICBjb25zdCBjb2xsZWN0aW9uID0gdGhpcy5kYi5jb2xsZWN0aW9uKHBhdGgoKS5mZWVkKTtcbiAgICAgICAgY29sbGVjdGlvbi5hZGQoY2xhc3NUb1BsYWluKGRhdGEpKS50aGVuKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICBjb25zdCBkb2MgPSB0aGlzLmRiLmNvbGxlY3Rpb24ocGF0aCgpLmZlZWQpLmRvYyhyZXNwb25zZS5pZCk7XG4gICAgICAgICAgZG9jLnVwZGF0ZSh7IGlkOiByZXNwb25zZS5pZCB9KTtcbiAgICAgICAgICB0aGlzLmZlZWRDcmVhdGVkLmVtaXQocmVzcG9uc2UuaWQpO1xuICAgICAgICAgIHRoaXMudGl0bGUgPSAnJztcbiAgICAgICAgICB0aGlzLnByb2dyZXNzID0gbnVsbDtcbiAgICAgICAgICB0aGlzLnVwbG9hZGluZyA9IG51bGw7XG4gICAgICAgICAgdGhpcy50bXBGaWxlQXJyYXkgPSBbXTtcbiAgICAgICAgICB0aGlzLmVtYmVkRmlsZSA9IG51bGw7XG4gICAgICAgICAgdGhpcy50eXBlID0gJ3Bvc3QnO1xuICAgICAgICAgIHJlc29sdmUocmVzcG9uc2UuaWQpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgXG4gIFxuICAgICAgY29uc29sZS5sb2coJ1B1Ymxpc2goKScsIDAsIHBhdGgoKS5mZWVkKTtcbiAgICAgIHRoaXMudGl0bGUgPSAnJztcbiAgICAgIHRoaXMucHJvZ3Jlc3MgPSBudWxsO1xuICAgICAgdGhpcy51cGxvYWRpbmcgPSBudWxsO1xuICAgICAgdGhpcy50bXBGaWxlQXJyYXkgPSBbXTtcbiAgICAgIHRoaXMuZ2xvYmFsLnRvYXN0U2VydmljZS5zaG93KHtcbiAgICAgICAgdGl0bGU6ICdGZWl0byEnLFxuICAgICAgICBtZXNzYWdlOiAnU2V1IHBvc3QgZm9pIGNyaWFkbyBjb20gc3VjZXNzbycsXG4gICAgICAgIGxheW91dDogMlxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICByZW1vdmVUbXBGaWxlKHRtcEZpbGU6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy50bXBGaWxlQXJyYXkuaW5kZXhPZih0bXBGaWxlKTtcbiAgICB0aGlzLnRtcEZpbGVBcnJheS5zcGxpY2UoaW5kZXgsIDEpO1xuICB9XG5cbiAgY2hlY2tQdWJsaWNhdGlvblR5cGUodGl0bGUpIHtcbiAgICBjb25zb2xlLmxvZygnRXZlbnQgLT4nLCBldmVudCk7XG4gICAgaWYgKHRpdGxlLmxlbmd0aCAmJiB0aXRsZS5sZW5ndGggPiAzNSkge1xuICAgICAgaWYgKHRoaXMuaXNWYWxpZFVybCh0aXRsZSkpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ2NoZWNrUHVibGljYXRpb25UeXBlJywgdGl0bGUpO1xuICAgICAgICBpZiAodGl0bGUuaW5jbHVkZXMoJ3lvdXR1JykgfHwgdGl0bGUuaW5jbHVkZXMoJ3lvdXR1YmUnKSkge1xuICAgICAgICAgIHRoaXMudXBsb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLnR5cGUgPSAnZW1iZWQnO1xuICAgICAgICAgIHRoaXMudXBsb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5lbWJlZEZpbGUgPSB0aXRsZS5yZXBsYWNlKCd3YXRjaD92PScsICdlbWJlZC8nKTtcbiAgICAgICAgICB0aGlzLnRtcEVtYmVkRmlsZSA9IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybCh0aGlzLmVtYmVkRmlsZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodGl0bGUuaW5jbHVkZXMoJ3Nwb3RpZnknKSkge1xuICAgICAgICAgIHRoaXMudXBsb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLnR5cGUgPSAnZW1iZWQnO1xuICAgICAgICAgIHRoaXMuZW1iZWRGaWxlID0gdGl0bGUucmVwbGFjZSgnL2VwaXNvZGUnLCAnL2VtYmVkLXBvZGNhc3QvZXBpc29kZScpO1xuICAgICAgICAgIHRoaXMudG1wRW1iZWRGaWxlID0gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKHRoaXMuZW1iZWRGaWxlKTtcbiAgICAgICAgICB0aGlzLnVwbG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmVtb3ZlRW1iZWRGaWxlcygpIHtcbiAgICB0aGlzLnRpdGxlID0gJyc7XG4gICAgdGhpcy5lbWJlZEZpbGUgPSAnJztcbiAgICB0aGlzLnR5cGUgPSAncG9zdCc7XG4gIH1cblxuICBpc1ZhbGlkVXJsKHN0cikge1xuICAgIGNvbnN0IHBhdHRlcm4gPSBuZXcgUmVnRXhwKCdeKGh0dHBzPzpcXFxcL1xcXFwvKT8nICsgLy8gcHJvdG9jb2xcbiAgICAgICcoKChbYS16XFxcXGRdKFthLXpcXFxcZC1dKlthLXpcXFxcZF0pKilcXFxcLikrW2Etel17Mix9fCcgKyAvLyBkb21haW4gbmFtZVxuICAgICAgJygoXFxcXGR7MSwzfVxcXFwuKXszfVxcXFxkezEsM30pKScgKyAvLyBPUiBpcCAodjQpIGFkZHJlc3NcbiAgICAgICcoXFxcXDpcXFxcZCspPyhcXFxcL1stYS16XFxcXGQlXy5+K10qKSonICsgLy8gcG9ydCBhbmQgcGF0aFxuICAgICAgJyhcXFxcP1s7JmEtelxcXFxkJV8ufis9LV0qKT8nICsgLy8gcXVlcnkgc3RyaW5nXG4gICAgICAnKFxcXFwjWy1hLXpcXFxcZF9dKik/JCcsICdpJyk7IC8vIGZyYWdtZW50IGxvY2F0b3JcbiAgICByZXR1cm4gISFwYXR0ZXJuLnRlc3Qoc3RyKTtcbiAgfVxuXG4gIG9wZW5Bbm5vdW5jZU1vZGFsKCkge1xuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oTW9kYWxBbm5vdW5jZUNvbXBvbmVudCwge1xuICAgICAgd2lkdGg6ICc1NSUnLFxuICAgICAgbWluSGVpZ2h0OiAnOTUlJyxcbiAgICAgIG1heEhlaWdodDogJzEwMCUnLFxuICAgICAgY2xvc2VPbk5hdmlnYXRpb246IGZhbHNlLFxuICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxuICAgICAgZGF0YTogeyBvd25lcjogdGhpcywgdG1wRmlsZUFycmF5OiB0aGlzLnRtcEZpbGVBcnJheSB9XG4gICAgfSk7XG5cbiAgfVxuXG4gIHJlbG9hZCgpIHtcbiAgICB0aGlzLmZpbHRlci5lbWl0KHRoaXMuZmlsdGVyQnlNZSk7XG4gIH1cblxuICBzZWxlY3RVc2VyKGV2dDogYW55LCB1c2VyOiBhbnkpIHtcbiAgICBpZiAoZXZ0LnRhcmdldC5jaGVja2VkKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkVXNlcnNbdXNlci5pZF0gPSB1c2VyO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGRlbGV0ZSB0aGlzLnNlbGVjdGVkVXNlcnNbdXNlci5pZF07XG4gICAgfVxuICB9XG5cbiAgc2hvd1NlbGVjdGVkKCkge1xuICAgIHRoaXMubGlzdFR5cGUgPSAnY2hlY2tlZCc7XG4gICAgdGhpcy51c2VycyA9IFtdO1xuICAgIGZvciAoY29uc3QgaWQgaW4gdGhpcy5zZWxlY3RlZFVzZXJzKSB7XG4gICAgICB0aGlzLnVzZXJzLnB1c2godGhpcy5zZWxlY3RlZFVzZXJzW2lkXSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9wZW5Nb2RhbCgpIHtcbiAgICBpZiAodGhpcy5uZXdmZWVkKSB7XG4gICAgICAkKCcjcHVibGljYXRpb25Nb2RhbCcpLm1vZGFsKCk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB0aGlzLmNvbmZpcm1TaGFyZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXROZXdGZWVkKCkge1xuICAgIHRoaXMuc2VsZWN0ZWRVc2VycyA9IFtdO1xuICAgIHRoaXMuYXNhcFNlcnZpY2UuYmFzZVBhdGggPSBcImFwaS92Mi9hZG1pblwiO1xuICAgIHRoaXMuYXNhcFNlcnZpY2UuZW50aXR5TmFtZSA9IFwiY29sb3JcIjtcbiAgICB0aGlzLmFzYXBTZXJ2aWNlLmdldFJlc291cmNlKHRoaXMuZ2xvYmFsLmxvZ2dlZFVzZXIoKS5jbGllbnRfaWQpLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcbiAgICAgICB0aGlzLm5ld2ZlZWQgPSByZXNwb25zZS5kYXRhLm5ld2ZlZWQ7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
924
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlZC1wdWJsaWNhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hc2FwLWZlZWQtYmV0YS8iLCJzb3VyY2VzIjpbImxpYi9mZWVkLXB1YmxpY2F0aW9uL2ZlZWQtcHVibGljYXRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDaEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzlDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbkYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLElBQUksTUFBTSxhQUFhLENBQUM7QUFJL0I7SUFvQ0Usa0NBQ1MsTUFBYyxFQUNkLFdBQTRCLEVB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SUFDbkIsOENBQWtCOztJQUNsQiw2Q0FBaUI7O0lBQ2pCLHdDQUFxQjs7SUFDckIsNkNBQWlCOztJQUNqQixnREFBb0I7O0lBQ3BCLGlEQUFxQjs7SUFDckIsNENBQXdCOztJQUN4QiwyQ0FBb0I7O0lBRXBCLDJDQUFpRzs7SUFDakcsaURBQStCOztJQUMvQiw0Q0FBaUQ7O0lBRWpELDhDQUEwQjs7SUFHeEIsMENBQXFCOztJQUNyQiwrQ0FBbUM7O0lBQ25DLCtDQUErQjs7SUFDL0IsK0NBQStCOztJQUMvQiw2Q0FBOEI7O0lBQzlCLGlEQUFtQzs7SUFDbkMsZ0RBQWlDOztJQUNqQyxzQ0FBMkI7O0lBQzNCLHdDQUF1Qjs7SUFDdkIsMENBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXNhcFNlcnZpY2UsIEdsb2JhbCB9IGZyb20gJ2FzYXAtY3J1ZCc7XG5pbXBvcnQgeyBBc2FwRmVlZFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9hc2FwLWZlZWQuc2VydmljZSc7XG5pbXBvcnQgeyBTdHJlYW1TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvc3RyZWFtLnNlcnZpY2UnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBGaWxlc01vZGVsLCBGZWVkTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvZmVlZC5tb2RlbCc7XG5pbXBvcnQgeyBVdGlsc1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy91dGlscy5zZXJ2aWNlJztcbmltcG9ydCB7IHBhdGggfSBmcm9tICcuLi9jb25zdGFudHMvY29uc3RhbnRzJztcbmltcG9ydCB7IEFuZ3VsYXJGaXJlc3RvcmUgfSBmcm9tICdAYW5ndWxhci9maXJlL2ZpcmVzdG9yZSc7XG5pbXBvcnQgeyBjbGFzc1RvUGxhaW4gfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgTW9kYWxBbm5vdW5jZUNvbXBvbmVudCB9IGZyb20gJy4vbW9kYWwtYW5ub3VuY2UvbW9kYWwtYW5ub3VuY2UuY29tcG9uZW50JztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBVc2VyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3VzZXIuc2VydmljZSc7XG5pbXBvcnQgU3dhbCBmcm9tICdzd2VldGFsZXJ0Mic7XG5cbmRlY2xhcmUgdmFyICQ6IGFueTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZmVlZC1wdWJsaWNhdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9mZWVkLXB1YmxpY2F0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmVlZC1wdWJsaWNhdGlvbi5jb21wb25lbnQuc2NzcycsICcuLi9hc2FwLWZlZWQuYmV0YS5jb21wb25lbnRlLnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbIFN0cmVhbVNlcnZpY2UsIFVzZXJTZXJ2aWNlLCBBc2FwU2VydmljZSBdXG59KVxuZXhwb3J0IGNsYXNzIEZlZWRQdWJsaWNhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgYW5ub3VuY2UgPSBmYWxzZTtcbiAgQElucHV0KCkgaGlkZUZpbHRlckJ5TWUgPSBmYWxzZTtcbiAgQElucHV0KCkgc2V0dGluZ3M7XG4gIEBPdXRwdXQoKSBmZWVkQ3JlYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGZpbHRlciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwdWJsaWMgdXNlcnMgPSBbXTtcblxuICBwdWJsaWMgdG1wRmlsZUFycmF5OiBBcnJheTxGaWxlc01vZGVsPjtcbiAgcHVibGljIHVwbG9hZGluZztcbiAgcHVibGljIHRpdGxlID0gbnVsbDtcbiAgcHVibGljIHByb2dyZXNzO1xuICBwdWJsaWMgbm90QW5ub3VuY2U7XG4gIHB1YmxpYyBuZXdQcm9kdWN0O1xuICBwdWJsaWMgRXhwYW5kSW1nO1xuICBwdWJsaWMgdHlwZSA9ICdwb3N0JztcbiAgcHVibGljIGVtYmVkRmlsZTtcbiAgcHVibGljIHRtcEVtYmVkRmlsZTtcbiAgcHVibGljIHZpZGVvU2VuZGVkSUQ7XG4gIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xuICBwdWJsaWMgbmV3ZmVlZDogYW55O1xuXG4gIHB1YmxpYyBtZXNzYWdlID0gXCJEaWdpdGUgYWNpbWEgbyBub21lIGRhIHBlc3NvYSBxdWUgZGVzZWphIG1hcmNhciwgZW0gc2VndWlkYSBwcmVzc2lvbmUgW0VOVEVSXVwiO1xuICBwdWJsaWMgc2VsZWN0ZWRVc2VyczogYW55ID0ge307XG4gIHB1YmxpYyBsaXN0VHlwZTogJ2NoZWNrZWQnIHwgJ3NlYXJjaCcgPSAnc2VhcmNoJztcblxuICBwdWJsaWMgZmlsdGVyQnlNZSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBnbG9iYWw6IEdsb2JhbCxcbiAgICBwdWJsaWMgZmVlZFNlcnZpY2U6IEFzYXBGZWVkU2VydmljZSxcbiAgICBwdWJsaWMgYXNhcFNlcnZpY2U6IEFzYXBTZXJ2aWNlLFxuICAgIHB1YmxpYyB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgcHVibGljIHNhbml0aXplcjogRG9tU2FuaXRpemVyLFxuICAgIHB1YmxpYyBzdHJlYW1TZXJ2aWNlOiBTdHJlYW1TZXJ2aWNlLFxuICAgIHB1YmxpYyB1dGlsc1NlcnZpY2U6IFV0aWxzU2VydmljZSxcbiAgICBwdWJsaWMgZGI6IEFuZ3VsYXJGaXJlc3RvcmUsXG4gICAgcHVibGljIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nLFxuICApIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMudG1wRmlsZUFycmF5ID0gW107XG4gICAgY29uc29sZS5sb2coJ1ByZWZpeCBQdWJsaWNhdGlvbiAtPicsIHBhdGgoKS5mZWVkKTtcbiAgICB0aGlzLmdldE5ld0ZlZWQoKTtcbiAgfVxuXG4gIGxvYWRVc2Vycyh2YWx1ZTogYW55KSB7XG4gICAgY29uc3Qgc2VhcmNoID0gdmFsdWU7XG4gICAgdGhpcy51c2VycyA9IG51bGw7XG4gICAgdGhpcy5saXN0VHlwZSA9ICdzZWFyY2gnO1xuICAgIGlmIChzZWFyY2ggIT0gJycpIHtcbiAgICAgIHRoaXMubWVzc2FnZSA9IFwiTmVuaHVtIHVzdcOhcmlvIGVuY29udHJhZG8hXCI7XG4gICAgICB0aGlzLnVzZXJTZXJ2aWNlLmdldEFsbFVzZXJzKHNlYXJjaCkuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xuICAgICAgICB0aGlzLnVzZXJzID0gcmVzcG9uc2UuZGF0YS5tYXAoKHVzZXIpID0+IHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaWQ6IHVzZXIudXNlcl9pbmZvLnVzZXJfaWQsXG4gICAgICAgICAgICBuYW1lOiB1c2VyLnVzZXJfaW5mby51c2VyX25hbWUsXG4gICAgICAgICAgICBlbWFpbDogdXNlci5lbWFpbCxcbiAgICAgICAgICAgIHBpY3R1cmU6IHVzZXIucGljdHVyZVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHVwbG9hZEZpbGUoZXZlbnQ6IGFueSkge1xuICAgIGZvciAoY29uc3QgZmlsZSBvZiBldmVudC50YXJnZXQuZmlsZXMpIHtcblxuICAgICAgY29uc3QgdG1wRmlsZTogRmlsZXNNb2RlbCA9IG5ldyBGaWxlc01vZGVsKCk7XG4gICAgICB0bXBGaWxlLnR5cGUgPSB0aGlzLmdldFR5cGVCeU1pbWVUeXBlKGZpbGUudHlwZSk7XG4gICAgICAvLyB0bXBGaWxlLnN0YXR1cyA9IDA7XG4gICAgICB0bXBGaWxlLnRodW1iX3JlbmRlcmluZyA9IGZhbHNlO1xuICAgICAgdG1wRmlsZS52aWRlb19yZW5kZXJpbmcgPSBmYWxzZTtcbiAgICAgIHRtcEZpbGUudmlkZW9fbG93X3JlbmRlcmluZyA9IGZhbHNlO1xuXG4gICAgICBsZXQgZXJyb3IgPSBmYWxzZTtcbiAgICAgIGlmICh0aGlzLmdldFR5cGVCeU1pbWVUeXBlKGZpbGUudHlwZSkgPT09ICd2aWRlbycgJiYgdGhpcy50bXBGaWxlQXJyYXkuZmlsdGVyKCh0bXA6IGFueSkgPT4gdGhpcy5nZXRUeXBlQnlNaW1lVHlwZSh0bXAudHlwZSkgPT09ICd2aWRlbycpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5nbG9iYWwudG9hc3RTZXJ2aWNlLmVycm9yKHtcbiAgICAgICAgICB0aXRsZTogJ09wcycsXG4gICAgICAgICAgbWVzc2FnZTogJ1ZvY8OqIHPDsyBwb2RlIGVudmlhciB1bSB2w61kZW8gcG9yIFBvc3QnXG4gICAgICAgIH0pO1xuICAgICAgICBlcnJvciA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmdldFR5cGVCeU1pbWVUeXBlKGZpbGUudHlwZSkgPT09ICdpbWFnZScgJiYgdGhpcy50bXBGaWxlQXJyYXkuZmlsdGVyKCh0bXA6IGFueSkgPT4gdGhpcy5nZXRUeXBlQnlNaW1lVHlwZSh0bXAudHlwZSkgPT09ICdpbWFnZScpLmxlbmd0aCA+IDQpIHtcbiAgICAgICAgdGhpcy5nbG9iYWwudG9hc3RTZXJ2aWNlLmVycm9yKHtcbiAgICAgICAgICB0aXRsZTogJ09wcycsXG4gICAgICAgICAgbWVzc2FnZTogJ1ZvY8OqIHBvZGUgdXRpbGl6YXIgYXTDqSBubyBtw6F4aW1vIDUgaW1hZ2VucyBubyBzZXUgUG9zdCdcbiAgICAgICAgfSk7XG4gICAgICAgIGVycm9yID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFlcnJvcikge1xuICAgICAgICAvLyB0aGlzLnVwbG9hZGluZyA9IHRydWU7XG5cbiAgICAgICAgaWYgKHRoaXMuZ2V0VHlwZUJ5TWltZVR5cGUoZmlsZS50eXBlKSA9PT0gJ2ltYWdlJykge1xuICAgICAgICAgIGlmIChmaWxlLnR5cGUgPT0gJ2ltYWdlL2dpZicpIHtcbiAgICAgICAgICAgIHRtcEZpbGUubmFtZSA9IGAke3RoaXMuc3RyZWFtU2VydmljZS51aWQoKX0uZ2lmYDtcbiAgICAgICAgICAgIHRtcEZpbGUudXJsID0gYXdhaXQgdGhpcy5yZWFkR0lGKGZpbGUpO1xuICAgICAgICAgICAgdGhpcy50bXBGaWxlQXJyYXkucHVzaCh0bXBGaWxlKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGdldEV4dG5hbWUgPSBmaWxlLm5hbWUuc3BsaXQoJy4nKTtcbiAgICAgICAgICAgIGNvbnN0IGV4dG5hbWUgPSBnZXRFeHRuYW1lW2dldEV4dG5hbWUubGVuZ3RoIC0gMV07XG5cbiAgICAgICAgICAgIHRtcEZpbGUudXJsID0gYXdhaXQgdGhpcy5yZXNpemVJbWFnZXMoZmlsZSwgODAwKTtcbiAgICAgICAgICAgIHRtcEZpbGUubmFtZSA9IGAke3RoaXMuc3RyZWFtU2VydmljZS51aWQoKX0uJHtleHRuYW1lfWA7XG4gICAgICAgICAgICB0aGlzLnRtcEZpbGVBcnJheS5wdXNoKHRtcEZpbGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGVsc2UgaWYgKHRoaXMuZ2V0VHlwZUJ5TWltZVR5cGUoZmlsZS50eXBlKSA9PT0gJ3ZpZGVvJykge1xuICAgICAgICAgIHRoaXMudXBsb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgICBjb25zb2xlLmxvZygnUmVhbGl6YXIgVXBsb2FkIGRlIFZpZGVvJywgdG1wRmlsZSk7XG4gICAgICAgICAgY29uc3QgcmVhZGVyID0gZmlsZTtcbiAgICAgICAgICBpZiAocmVhZGVyKSB7XG4gICAgICAgICAgICBjb25zdCBibG9iVVJMID0gVVJMLmNyZWF0ZU9iamVjdFVSTChyZWFkZXIpO1xuICAgICAgICAgICAgdG1wRmlsZS5uYW1lID0gYmxvYlVSTCBhcyBhbnk7XG4gICAgICAgICAgICB0aGlzLnRtcEZpbGVBcnJheS5wdXNoKHRtcEZpbGUpO1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ1t1cGxvYWRGaWxlXSBpZiByZWFkZXInLCBibG9iVVJMKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLnVwbG9hZGluZyA9IHRydWU7XG4gICAgICAgICAgYXdhaXQgdGhpcy5zdHJlYW1TZXJ2aWNlLnVwbG9hZEZpbGUoZmlsZSkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgcmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZygnW3VwbG9hZEZpbGVdIFJlc3BvbnNlJywgdG1wRmlsZSk7XG4gICAgICAgICAgICAgIGlmICghcmVzcG9uc2UuYm9keSkge1xuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZVsndG90YWwnXSkge1xuICAgICAgICAgICAgICAgICAgdG1wRmlsZS5zdGF0dXMgPSAoKHJlc3BvbnNlWydsb2FkZWQnXSAqIDEwMCkgLyByZXNwb25zZVsndG90YWwnXSkudG9GaXhlZCgwKSBhcyBhbnk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMucHJvZ3Jlc3MgPSB0bXBGaWxlLnN0YXR1cztcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmIChyZXNwb25zZS5ib2R5ICYmIHJlc3BvbnNlLmJvZHkuZmlsZSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdbdXBsb2FkRmlsZV0gUmVzcG9uc2UgVXBsb2FkZWQnLCByZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgdG1wRmlsZS5zdGF0dXMgPSAxMDE7XG4gICAgICAgICAgICAgICAgdG1wRmlsZS51cmwgPSByZXNwb25zZS5ib2R5LmZpbGUuc2VjdXJlX3VybDtcbiAgICAgICAgICAgICAgICB0aGlzLnZpZGVvU2VuZGVkSUQgPSB0bXBGaWxlLnVybDtcbiAgICAgICAgICAgICAgICB0aGlzLnVwbG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMucHJvZ3Jlc3MgPSBudWxsO1xuXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgICAgIGNvbnNvbGUubG9nKCd0bXBGaWxlJywgdG1wRmlsZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXNpemVJbWFnZXMoZmlsZTogYW55LCB3aWR0aDogbnVtYmVyKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY29uc3QgaW1nID0gbmV3IEltYWdlKCk7XG4gICAgICBjb25zdCBNQVhfV0lEVEggPSB3aWR0aDtcbiAgICAgIGNvbnN0IE1BWF9IRUlHSFQ6IGFueSA9IDEzMzQ7XG5cbiAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG5cbiAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xuXG4gICAgICByZWFkZXIub25sb2FkID0gKGU6IGFueSkgPT4ge1xuICAgICAgICBpbWcuc3JjID0gZS50YXJnZXQucmVzdWx0O1xuICAgICAgICBpbWcub25sb2FkID0gKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHNjYWxlID0gTUFYX1dJRFRIIC8gaW1nLndpZHRoO1xuICAgICAgICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuICAgICAgICAgIGNhbnZhcy5oZWlnaHQgPSBzY2FsZSAqIGltZy5oZWlnaHQ7XG5cbiAgICAgICAgICBjYW52YXMud2lkdGggPSBNQVhfV0lEVEg7XG4gICAgICAgICAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XG4gICAgICAgICAgY3R4LmRyYXdJbWFnZShpbWcsIDAsIDApO1xuXG4gICAgICAgICAgY29uc29sZS5sb2coJ0lNRycsIGltZy53aWR0aCwgaW1nLmhlaWdodCk7XG4gICAgICAgICAgY3R4LmRyYXdJbWFnZShpbWcsIDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7XG5cbiAgICAgICAgICBjb25zdCBkYXRhdXJsID0gY2FudmFzLnRvRGF0YVVSTChmaWxlLnR5cGUsIDAuNjUpO1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdDQU5WQVMgLT4nLCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpO1xuICAgICAgICAgIHJldHVybiByZXNvbHZlKGRhdGF1cmwpO1xuICAgICAgICB9O1xuICAgICAgfTtcblxuICAgICAgcmVhZGVyLm9uZXJyb3IgPSByZWplY3Q7XG4gICAgfSk7XG5cbiAgfVxuXG4gIHJlYWRHSUYoZmlsZTogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXG4gICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuXG4gICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcblxuICAgICAgcmVhZGVyLm9ubG9hZCA9IChlOiBhbnkpID0+IHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmUocmVhZGVyLnJlc3VsdCk7XG4gICAgICB9O1xuXG4gICAgICByZWFkZXIub25lcnJvciA9IHJlamVjdDtcbiAgICB9KTtcblxuICB9XG5cbiAgZ2V0VHlwZUJ5TWltZVR5cGUobWltZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBzcGxpdCA9IG1pbWUuc3BsaXQoJy8nKTtcbiAgICByZXR1cm4gc3BsaXRbMF07XG4gIH1cblxuICBzaGFyZSgpOiBhbnkge1xuICAgIGNvbnN0IGRhdGE6IEZlZWRNb2RlbCA9IG5ldyBGZWVkTW9kZWwoKTtcbiAgICBkYXRhLnVwZGF0ZWRfYXQgPSBEYXRlLm5vdygpO1xuICAgIGRhdGEudGl0bGUgPSB0aGlzLnRpdGxlO1xuICAgIGRhdGEudHlwZSA9IHRoaXMudHlwZTtcbiAgICBkYXRhLnNlbGVjdGVkX3VzZXJzID0gW107XG4gICAgZGF0YS5zZWxlY3RlZF91c2Vyc19kYXRhID0gW107XG5cbiAgICBmb3IgKGNvbnN0IGlkIGluIHRoaXMuc2VsZWN0ZWRVc2Vycykge1xuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRVc2Vyc1tpZF0pIHtcbiAgICAgICAgZGF0YS5zZWxlY3RlZF91c2Vycy5wdXNoKGlkKTtcbiAgICAgICAgZGF0YS5zZWxlY3RlZF91c2Vyc19kYXRhLnB1c2goe1xuICAgICAgICAgIGlkLFxuICAgICAgICAgIG5hbWU6IHRoaXMuc2VsZWN0ZWRVc2Vyc1tpZF0ubmFtZSxcbiAgICAgICAgICBwaWN0dXJlOiB0aGlzLnNlbGVjdGVkVXNlcnNbaWRdLnBpY3R1cmUsXG4gICAgICAgICAgZW1haWw6IHRoaXMuc2VsZWN0ZWRVc2Vyc1tpZF0uZW1haWxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudG1wRmlsZUFycmF5IHx8IHRoaXMudG1wRmlsZUFycmF5Lmxlbmd0aCA+IDApIHtcbiAgICAgIGRhdGEuZmlsZXMgPSB0aGlzLnRtcEZpbGVBcnJheTtcbiAgICAgIC8vIGNvbnN0IHZpZGVvRmlsdGVyID0gZGF0YS5maWxlcy5maWx0ZXIodG1wID0+IHRoaXMuZ2V0VHlwZUJ5TWltZVR5cGUodG1wLnR5cGUpID09PSAndmlkZW8nKTtcbiAgICAgIC8vIGlmICh2aWRlb0ZpbHRlci5sZW5ndGggPiAwKSB7XG4gICAgICAvLyB9XG4gICAgICBkYXRhLmZpbGVzLm1hcChpdGVtID0+IHtcbiAgICAgICAgaWYgKGl0ZW0udHlwZSA9PT0gJ3ZpZGVvJykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdFeGlzdGUgdW0gdmlkZW8gbm8gRmVlZCcsIGl0ZW0pO1xuICAgICAgICAgIGlmICghaXRlbS5pc0Nsb3VkaW5hcnkpIHtcbiAgICAgICAgICAgIGl0ZW0udmlkZW9fcmVuZGVyaW5nID0gZmFsc2U7XG4gICAgICAgICAgICBpdGVtLnZpZGVvX2xvd19yZW5kZXJpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIGl0ZW0udGh1bWJfcmVuZGVyaW5nID0gZmFsc2U7XG5cbiAgICAgICAgICAgIC8vIFNldGFuZG8gbyBJRCBkbyBGZWVkIGlndWFsIGFvIElEIGRvIHbDrWRlb1xuICAgICAgICAgICAgZGF0YS5yZWYgPSBpdGVtLnVybDtcbiAgICAgICAgICAgIGRhdGEuc3RhdHVzID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLnN0cmVhbVNlcnZpY2Uuc3RhdHVzKGl0ZW0udXJsKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgICAgIGl0ZW0udmlkZW9fcmVuZGVyaW5nID0gIXJlcy5wNDgwO1xuICAgICAgICAgICAgICBpdGVtLnZpZGVvX2xvd19yZW5kZXJpbmcgPSAhcmVzLnA0ODBfbG93O1xuICAgICAgICAgICAgICBpdGVtLnRodW1iX3JlbmRlcmluZyA9ICFyZXMudGh1bWI7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zb2xlLmxvZyhcInNoYXJlXCIsIGRhdGEpO1xuICAgIFxuICAgIHRoaXMucHVibGlzaChkYXRhKS50aGVuKChpZCkgPT4ge1xuICAgICAgdGhpcy51c2VyU2VydmljZS51c2Vyc0NoZWNrZWQoe3Bvc3RfaWQ6IGlkLCB1c2VyX2lkOiBkYXRhLnNlbGVjdGVkX3VzZXJzLCBjb21tZW50OiBkYXRhLnRpdGxlLCB0eXBlOiAncG9zdCd9LCB7Y29tbWVudHM6IHRydWV9KS5zdWJzY3JpYmUoKTtcbiAgICB9KTtcblxuICAgIHRoaXMuc2VsZWN0ZWRVc2VycyA9IFtdO1xuICB9XG5cbiAgY29uZmlybVNoYXJlKCkge1xuICAgIGNvbnN0IHN3YWxsID0gU3dhbC5maXJlKHtcbiAgICAgICAgdGl0bGU6IFwiUG9kZW1vcyBjb21wYXJ0aWxoYXIgc2V1IHBvc3Q/XCIsXG4gICAgICAgIHR5cGU6IFwid2FybmluZ1wiLFxuICAgICAgICBzaG93Q2FuY2VsQnV0dG9uOiB0cnVlLFxuICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogXCJTaW1cIixcbiAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogXCJOw6NvXCJcbiAgICB9KTtcblxuICAgIHN3YWxsLnRoZW4oKGNvbmZpcm1lZCkgPT4ge1xuICAgICAgaWYgKGNvbmZpcm1lZC52YWx1ZSkge1xuICAgICAgICB0aGlzLnNoYXJlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaXNoKGRhdGE6IEZlZWRNb2RlbCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuXG4gICAgICBsZXQgaW1hZ2U7XG4gICAgICBsZXQgaWQ7XG4gICAgICBjb25zb2xlLmxvZygnUHVibGlzaCgpJywgMSwgZGF0YSk7XG4gIFxuICAgICAgaWYgKCFkYXRhLnRpdGxlIHx8IGRhdGEudGl0bGUgPT09ICcnKSB7XG4gICAgICAgIC8vIHRoaXMuZ2xvYmFsLnRvYXN0U2VydmljZS5lcnJvcih7XG4gICAgICAgIC8vICAgdGl0bGU6ICdPcHMnLFxuICAgICAgICAvLyAgIG1lc3NhZ2U6ICdWb2PDqiBwcmVjaXNhIGFkaWNpb25hciB1bSB0ZXh0byDDoCBzdWEgaW1hZ2VtL3bDrWRlby4nLFxuICAgICAgICAvLyB9KTtcbiAgICAgICAgU3dhbC5maXJlKHtcbiAgICAgICAgICAgICAgdGl0bGU6IFwiUG9kZW1vcyBjb21wYXJ0aWxoYXIgc2V1IHBvc3Q/P1wiLFxuICAgICAgICAgICAgICB0eXBlOiBcIndhcm5pbmdcIixcbiAgICAgICAgICAgICAgc2hvd0NhbmNlbEJ1dHRvbjogdHJ1ZSxcbiAgICAgICAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6IFwiU2ltXCIsXG4gICAgICAgICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6IFwiTsOjb1wiXG4gICAgICAgICAgfSlcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy51cGxvYWRpbmcgPSB0cnVlO1xuICAgICAgdGhpcy5wcm9ncmVzcyA9IDA7XG4gIFxuICBcbiAgICAgIGxldCBjb3VudCA9IDA7XG4gICAgICBkYXRhLnVzZXJfaW5mbyA9IHtcbiAgICAgICAgaWQ6IHRoaXMuZ2xvYmFsLmxvZ2dlZFVzZXIoKS5pZCxcbiAgICAgICAgbmFtZTogdGhpcy5nbG9iYWwubG9nZ2VkVXNlcigpLm5hbWUsXG4gICAgICAgIHBpY3R1cmU6IHRoaXMuZ2xvYmFsLmxvZ2dlZFVzZXIoKS5waWN0dXJlLFxuICAgICAgICB1cGRhdGVkX2F0OiBEYXRlLm5vdygpXG4gICAgICB9O1xuICBcbiAgICAgIGlmICh0aGlzLnR5cGUgPT0gJ2VtYmVkJykge1xuICAgICAgICBjb25zdCBmaWxlRW1iZWQ6IGFueSA9IHtcbiAgICAgICAgICBuYW1lOiB0aGlzLmVtYmVkRmlsZSxcbiAgICAgICAgICB1cmw6IHRoaXMuZW1iZWRGaWxlLFxuICAgICAgICAgIHR5cGU6ICdlbWJlZCdcbiAgICAgICAgfTtcbiAgXG4gICAgICAgIHRoaXMudG1wRmlsZUFycmF5LnB1c2goZmlsZUVtYmVkKTtcbiAgICAgIH1cbiAgXG4gICAgICBpZiAodGhpcy50eXBlICE9ICdlbWJlZCcpIHtcbiAgICAgICAgaWYgKHRoaXMudG1wRmlsZUFycmF5ICYmIHRoaXMudG1wRmlsZUFycmF5Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBjb25zb2xlLmxvZygndGhpcy50bXBGaWxlQXJyYXknLCB0aGlzLmdldFR5cGVCeU1pbWVUeXBlKHRoaXMudG1wRmlsZUFycmF5WzBdLnR5cGUpKTtcbiAgICAgICAgICBjb25zb2xlLmxvZygnUHVibGlzaCgpJywgMik7XG4gICAgICAgICAgY29uc3QgaW1hZ2VzRmlsZXMgPSB0aGlzLnRtcEZpbGVBcnJheS5maWx0ZXIoXG4gICAgICAgICAgICAodG1wOiBhbnkpID0+IHRoaXMuZ2V0VHlwZUJ5TWltZVR5cGUodG1wLnR5cGUpID09PSAnaW1hZ2UnXG4gICAgICAgICAgKTtcbiAgXG4gIFxuICAgICAgICAgIGNvbnN0IHN0ZXAgPSA5OCAvIGltYWdlc0ZpbGVzLmxlbmd0aDtcbiAgXG4gICAgICAgICAgaWYgKChpbWFnZXNGaWxlcy5sZW5ndGggJiYgZGF0YS50aXRsZSA9PT0gJycpKSB7XG4gICAgICAgICAgICB0aGlzLmdsb2JhbC50b2FzdFNlcnZpY2UuZXJyb3Ioe1xuICAgICAgICAgICAgICB0aXRsZTogJ09wcycsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6ICdWb2PDqiBwcmVjaXNhIGFkaWNpb25hciB1bSB0ZXh0byBqdW50byDDoCBzdWEgaW1hZ2VtL3bDrWRlby4nLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICBcbiAgICAgICAgICBpZiAoaW1hZ2VzRmlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBmaWxlIG9mIGltYWdlc0ZpbGVzKSB7XG4gICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudXRpbHNTZXJ2aWNlLnVwbG9hZEZpbGUoYGltYWdlcy8ke2ZpbGUubmFtZX1gLCBmaWxlLnVybCk7XG4gICAgICAgICAgICAgICAgdGhpcy51dGlsc1NlcnZpY2UucGVyY2VudGFnZS5zdWJzY3JpYmUocGVyY2VudCA9PiB7XG4gICAgICAgICAgICAgICAgICBmaWxlLnN0YXR1cyA9IHBlcmNlbnQ7XG4gICAgICAgICAgICAgICAgfSk7XG4gIFxuICAgICAgICAgICAgICAgIHRoaXMudXRpbHNTZXJ2aWNlLnRhc2suc25hcHNob3RDaGFuZ2VzKCkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgICAgYXN5bmMgc25hcCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzbmFwLmJ5dGVzVHJhbnNmZXJyZWQgPT09IHNuYXAudG90YWxCeXRlcykge1xuICAgICAgICAgICAgICAgICAgICAgIGNvdW50Kys7XG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9ncmVzcyArPSBzdGVwO1xuICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdQUk9HUkVTUycsIHRoaXMucHJvZ3Jlc3MpO1xuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gZGF0YS5maWxlcy5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLm5hbWUgPT09IGZpbGUubmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKCghaW1hZ2UpICYmIChkYXRhLmZpbGVzW2luZGV4XSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXRpbHNTZXJ2aWNlLmdldEZpcmVTdG9yYWdlVVJMKGBpbWFnZXMvJHtkYXRhLmZpbGVzW2luZGV4XS5uYW1lfWApLnN1YnNjcmliZSgoaW1hZ2VVUkwpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2UgPSBpbWFnZVVSTDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICBcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIGRhdGEuZmlsZXNbaW5kZXhdLnVybDtcbiAgXG4gIFxuICBcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoY291bnQgPT0gaW1hZ2VzRmlsZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnQ3JpYW5kbyBGZWVkJyk7XG4gIFxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY29sbGVjdGlvbiA9IHRoaXMuZGIuY29sbGVjdGlvbihwYXRoKCkuZmVlZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xsZWN0aW9uLmFkZChjbGFzc1RvUGxhaW4oZGF0YSkpLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRiLmNvbGxlY3Rpb24ocGF0aCgpLmZlZWQpLmRvYyhyZXNwb25zZS5pZCkudXBkYXRlKHsgaWQ6IHJlc3BvbnNlLmlkIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZlZWRDcmVhdGVkLmVtaXQocmVzcG9uc2UuaWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHJlc3BvbnNlLmlkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICBcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGl0bGUgPSAnJztcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvZ3Jlc3MgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51cGxvYWRpbmcgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50bXBGaWxlQXJyYXkgPSBbXTtcbiAgXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnUHVibGlzaCgpJywgNCk7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgZXJyb3IgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvcicsIGVycm9yKTtcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnUHVibGlzaCgpJywgNSk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhLCB0aGlzLnRtcEZpbGVBcnJheSk7XG4gIFxuICAgICAgICAgICAgY29uc3QgY29sbGVjdGlvbiA9IHRoaXMuZGIuY29sbGVjdGlvbihwYXRoKCkuZmVlZCk7XG4gICAgICAgICAgICBjb2xsZWN0aW9uLmFkZChjbGFzc1RvUGxhaW4oZGF0YSkpLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmRiLmNvbGxlY3Rpb24ocGF0aCgpLmZlZWQpLmRvYyhyZXNwb25zZS5pZCkudXBkYXRlKHsgaWQ6IHJlc3BvbnNlLmlkIH0pO1xuICAgICAgICAgICAgICB0aGlzLmZlZWRDcmVhdGVkLmVtaXQocmVzcG9uc2UuaWQpO1xuICAgICAgICAgICAgICB0aGlzLnRpdGxlID0gJyc7XG4gICAgICAgICAgICAgIHRoaXMucHJvZ3Jlc3MgPSBudWxsO1xuICAgICAgICAgICAgICB0aGlzLnVwbG9hZGluZyA9IG51bGw7XG4gICAgICAgICAgICAgIHRoaXMudG1wRmlsZUFycmF5ID0gW107XG4gICAgICAgICAgICAgIHJlc29sdmUocmVzcG9uc2UuaWQpO1xuICAgICAgICAgICAgfSk7XG4gIFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBjb25zb2xlLmxvZygnUHVibGlzaCgpJywgNSk7XG4gICAgICAgICAgY29uc29sZS5sb2coZGF0YSwgdGhpcy50bXBGaWxlQXJyYXkpO1xuICBcbiAgICAgICAgICBjb25zdCBjb2xsZWN0aW9uID0gdGhpcy5kYi5jb2xsZWN0aW9uKHBhdGgoKS5mZWVkKTtcbiAgICAgICAgICBjb2xsZWN0aW9uLmFkZChjbGFzc1RvUGxhaW4oZGF0YSkpLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgdGhpcy5kYi5jb2xsZWN0aW9uKHBhdGgoKS5mZWVkKS5kb2MocmVzcG9uc2UuaWQpLnVwZGF0ZSh7IGlkOiByZXNwb25zZS5pZCB9KTtcbiAgICAgICAgICAgIHRoaXMuZmVlZENyZWF0ZWQuZW1pdChyZXNwb25zZS5pZCk7XG4gICAgICAgICAgICB0aGlzLnRpdGxlID0gJyc7XG4gICAgICAgICAgICB0aGlzLnByb2dyZXNzID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMudXBsb2FkaW5nID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMudG1wRmlsZUFycmF5ID0gW107XG4gICAgICAgICAgICByZXNvbHZlKHJlc3BvbnNlLmlkKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIGRhdGEuZmlsZXMgPSB0aGlzLnRtcEZpbGVBcnJheTtcbiAgICAgICAgY29uc29sZS5sb2coJ1B1Ymxpc2goRW1iZWQpJywgNik7XG4gICAgICAgIGNvbnNvbGUubG9nKGRhdGEsIHRoaXMudG1wRmlsZUFycmF5KTtcbiAgICAgICAgY29uc3QgY29sbGVjdGlvbiA9IHRoaXMuZGIuY29sbGVjdGlvbihwYXRoKCkuZmVlZCk7XG4gICAgICAgIGNvbGxlY3Rpb24uYWRkKGNsYXNzVG9QbGFpbihkYXRhKSkudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgICAgY29uc3QgZG9jID0gdGhpcy5kYi5jb2xsZWN0aW9uKHBhdGgoKS5mZWVkKS5kb2MocmVzcG9uc2UuaWQpO1xuICAgICAgICAgIGRvYy51cGRhdGUoeyBpZDogcmVzcG9uc2UuaWQgfSk7XG4gICAgICAgICAgdGhpcy5mZWVkQ3JlYXRlZC5lbWl0KHJlc3BvbnNlLmlkKTtcbiAgICAgICAgICB0aGlzLnRpdGxlID0gJyc7XG4gICAgICAgICAgdGhpcy5wcm9ncmVzcyA9IG51bGw7XG4gICAgICAgICAgdGhpcy51cGxvYWRpbmcgPSBudWxsO1xuICAgICAgICAgIHRoaXMudG1wRmlsZUFycmF5ID0gW107XG4gICAgICAgICAgdGhpcy5lbWJlZEZpbGUgPSBudWxsO1xuICAgICAgICAgIHRoaXMudHlwZSA9ICdwb3N0JztcbiAgICAgICAgICByZXNvbHZlKHJlc3BvbnNlLmlkKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gIFxuICBcbiAgICAgIGNvbnNvbGUubG9nKCdQdWJsaXNoKCknLCAwLCBwYXRoKCkuZmVlZCk7XG4gICAgICB0aGlzLnRpdGxlID0gJyc7XG4gICAgICB0aGlzLnByb2dyZXNzID0gbnVsbDtcbiAgICAgIHRoaXMudXBsb2FkaW5nID0gbnVsbDtcbiAgICAgIHRoaXMudG1wRmlsZUFycmF5ID0gW107XG4gICAgICB0aGlzLmdsb2JhbC50b2FzdFNlcnZpY2Uuc2hvdyh7XG4gICAgICAgIHRpdGxlOiAnRmVpdG8hJyxcbiAgICAgICAgbWVzc2FnZTogJ1NldSBwb3N0IGZvaSBjcmlhZG8gY29tIHN1Y2Vzc28nLFxuICAgICAgICBsYXlvdXQ6IDJcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcmVtb3ZlVG1wRmlsZSh0bXBGaWxlOiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMudG1wRmlsZUFycmF5LmluZGV4T2YodG1wRmlsZSk7XG4gICAgdGhpcy50bXBGaWxlQXJyYXkuc3BsaWNlKGluZGV4LCAxKTtcbiAgfVxuXG4gIGNoZWNrUHVibGljYXRpb25UeXBlKHRpdGxlKSB7XG4gICAgY29uc29sZS5sb2coJ0V2ZW50IC0+JywgZXZlbnQpO1xuICAgIGlmICh0aXRsZS5sZW5ndGggJiYgdGl0bGUubGVuZ3RoID4gMzUpIHtcbiAgICAgIGlmICh0aGlzLmlzVmFsaWRVcmwodGl0bGUpKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdjaGVja1B1YmxpY2F0aW9uVHlwZScsIHRpdGxlKTtcbiAgICAgICAgaWYgKHRpdGxlLmluY2x1ZGVzKCd5b3V0dScpIHx8IHRpdGxlLmluY2x1ZGVzKCd5b3V0dWJlJykpIHtcbiAgICAgICAgICB0aGlzLnVwbG9hZGluZyA9IHRydWU7XG4gICAgICAgICAgdGhpcy50eXBlID0gJ2VtYmVkJztcbiAgICAgICAgICB0aGlzLnVwbG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuZW1iZWRGaWxlID0gdGl0bGUucmVwbGFjZSgnd2F0Y2g/dj0nLCAnZW1iZWQvJyk7XG4gICAgICAgICAgdGhpcy50bXBFbWJlZEZpbGUgPSB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0UmVzb3VyY2VVcmwodGhpcy5lbWJlZEZpbGUpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHRpdGxlLmluY2x1ZGVzKCdzcG90aWZ5JykpIHtcbiAgICAgICAgICB0aGlzLnVwbG9hZGluZyA9IHRydWU7XG4gICAgICAgICAgdGhpcy50eXBlID0gJ2VtYmVkJztcbiAgICAgICAgICB0aGlzLmVtYmVkRmlsZSA9IHRpdGxlLnJlcGxhY2UoJy9lcGlzb2RlJywgJy9lbWJlZC1wb2RjYXN0L2VwaXNvZGUnKTtcbiAgICAgICAgICB0aGlzLnRtcEVtYmVkRmlsZSA9IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybCh0aGlzLmVtYmVkRmlsZSk7XG4gICAgICAgICAgdGhpcy51cGxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJlbW92ZUVtYmVkRmlsZXMoKSB7XG4gICAgdGhpcy50aXRsZSA9ICcnO1xuICAgIHRoaXMuZW1iZWRGaWxlID0gJyc7XG4gICAgdGhpcy50eXBlID0gJ3Bvc3QnO1xuICB9XG5cbiAgaXNWYWxpZFVybChzdHIpIHtcbiAgICBjb25zdCBwYXR0ZXJuID0gbmV3IFJlZ0V4cCgnXihodHRwcz86XFxcXC9cXFxcLyk/JyArIC8vIHByb3RvY29sXG4gICAgICAnKCgoW2EtelxcXFxkXShbYS16XFxcXGQtXSpbYS16XFxcXGRdKSopXFxcXC4pK1thLXpdezIsfXwnICsgLy8gZG9tYWluIG5hbWVcbiAgICAgICcoKFxcXFxkezEsM31cXFxcLil7M31cXFxcZHsxLDN9KSknICsgLy8gT1IgaXAgKHY0KSBhZGRyZXNzXG4gICAgICAnKFxcXFw6XFxcXGQrKT8oXFxcXC9bLWEtelxcXFxkJV8ufitdKikqJyArIC8vIHBvcnQgYW5kIHBhdGhcbiAgICAgICcoXFxcXD9bOyZhLXpcXFxcZCVfLn4rPS1dKik/JyArIC8vIHF1ZXJ5IHN0cmluZ1xuICAgICAgJyhcXFxcI1stYS16XFxcXGRfXSopPyQnLCAnaScpOyAvLyBmcmFnbWVudCBsb2NhdG9yXG4gICAgcmV0dXJuICEhcGF0dGVybi50ZXN0KHN0cik7XG4gIH1cblxuICBvcGVuQW5ub3VuY2VNb2RhbCgpIHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKE1vZGFsQW5ub3VuY2VDb21wb25lbnQsIHtcbiAgICAgIHdpZHRoOiAnNTUlJyxcbiAgICAgIG1pbkhlaWdodDogJzk1JScsXG4gICAgICBtYXhIZWlnaHQ6ICcxMDAlJyxcbiAgICAgIGNsb3NlT25OYXZpZ2F0aW9uOiBmYWxzZSxcbiAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcbiAgICAgIGRhdGE6IHsgb3duZXI6IHRoaXMsIHRtcEZpbGVBcnJheTogdGhpcy50bXBGaWxlQXJyYXkgfVxuICAgIH0pO1xuXG4gIH1cblxuICByZWxvYWQoKSB7XG4gICAgdGhpcy5maWx0ZXIuZW1pdCh0aGlzLmZpbHRlckJ5TWUpO1xuICB9XG5cbiAgc2VsZWN0VXNlcihldnQ6IGFueSwgdXNlcjogYW55KSB7XG4gICAgaWYgKGV2dC50YXJnZXQuY2hlY2tlZCkge1xuICAgICAgdGhpcy5zZWxlY3RlZFVzZXJzW3VzZXIuaWRdID0gdXNlcjtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBkZWxldGUgdGhpcy5zZWxlY3RlZFVzZXJzW3VzZXIuaWRdO1xuICAgIH1cbiAgfVxuXG4gIHNob3dTZWxlY3RlZCgpIHtcbiAgICB0aGlzLmxpc3RUeXBlID0gJ2NoZWNrZWQnO1xuICAgIHRoaXMudXNlcnMgPSBbXTtcbiAgICBmb3IgKGNvbnN0IGlkIGluIHRoaXMuc2VsZWN0ZWRVc2Vycykge1xuICAgICAgdGhpcy51c2Vycy5wdXNoKHRoaXMuc2VsZWN0ZWRVc2Vyc1tpZF0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvcGVuTW9kYWwoKSB7XG4gICAgaWYgKHRoaXMubmV3ZmVlZCkge1xuICAgICAgJCgnI3B1YmxpY2F0aW9uTW9kYWwnKS5tb2RhbCgpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5jb25maXJtU2hhcmUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0TmV3RmVlZCgpIHtcbiAgICB0aGlzLnNlbGVjdGVkVXNlcnMgPSBbXTtcbiAgICB0aGlzLmFzYXBTZXJ2aWNlLmJhc2VQYXRoID0gXCJhcGkvdjIvYWRtaW5cIjtcbiAgICB0aGlzLmFzYXBTZXJ2aWNlLmVudGl0eU5hbWUgPSBcImNvbG9yXCI7XG4gICAgdGhpcy5hc2FwU2VydmljZS5nZXRSZXNvdXJjZSh0aGlzLmdsb2JhbC5sb2dnZWRVc2VyKCkuY2xpZW50X2lkKS5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgdGhpcy5uZXdmZWVkID0gcmVzcG9uc2UuZGF0YS5uZXdmZWVkO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -4682,14 +4682,13 @@ class FeedPublicationComponent {
|
|
|
4682
4682
|
}
|
|
4683
4683
|
}));
|
|
4684
4684
|
}
|
|
4685
|
+
console.log("share", data);
|
|
4685
4686
|
this.publish(data).then((/**
|
|
4686
4687
|
* @param {?} id
|
|
4687
4688
|
* @return {?}
|
|
4688
4689
|
*/
|
|
4689
4690
|
(id) => {
|
|
4690
|
-
|
|
4691
|
-
this.userService.usersChecked({ post_id: id, user_id: data.selected_users }).subscribe();
|
|
4692
|
-
}
|
|
4691
|
+
this.userService.usersChecked({ post_id: id, user_id: data.selected_users, comment: data.title, type: 'post' }, { comments: true }).subscribe();
|
|
4693
4692
|
}));
|
|
4694
4693
|
this.selectedUsers = [];
|
|
4695
4694
|
}
|