@cometchat/chat-uikit-angular 4.0.0-beta.1.4 → 4.0.0-beta.1.5
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/Calls/CallingExtension.d.ts +4 -3
- package/Calls/CallingExtensionDecorator.d.ts +0 -1
- package/Calls/CometChatCallButtons/cometchat-call-buttons/cometchat-call-buttons.component.d.ts +4 -3
- package/Calls/CometChatIncomingCall/cometchat-incoming-call/cometchat-incoming-call.component.d.ts +4 -3
- package/Calls/CometChatOngoingCall/cometchat-ongoing-call/cometchat-ongoing-call.component.d.ts +14 -6
- package/Calls/CometChatOutgoingCall/cometchat-outgoing-call/cometchat-outgoing-call.component.d.ts +0 -1
- package/CometChatAddMembers/cometchat-add-members/cometchat-add-members.component.d.ts +5 -5
- package/CometChatBannedMembers/cometchat-banned-members/cometchat-banned-members.component.d.ts +6 -5
- package/CometChatContacts/cometchat-contacts/cometchat-contacts.component.d.ts +65 -0
- package/CometChatContacts/cometchat-contacts.module.d.ts +12 -0
- package/CometChatConversations/cometchat-conversations/cometchat-conversations.component.d.ts +21 -15
- package/CometChatConversationsWithMessages/cometchat-conversations-with-messages/cometchat-conversations-with-messages.component.d.ts +13 -4
- package/CometChatConversationsWithMessages/cometchat-conversations-with-messages.module.d.ts +2 -1
- package/CometChatDetails/cometchat-details/cometchat-details.component.d.ts +7 -7
- package/CometChatGroupMembers/cometchat-group-members/cometchat-group-members.component.d.ts +14 -12
- package/CometChatGroups/cometchat-groups/cometchat-groups.component.d.ts +12 -6
- package/CometChatGroupsWithMessages/cometchat-groups-with-messages/cometchat-groups-with-messages.component.d.ts +6 -4
- package/CometChatList/cometchat-list.component.d.ts +2 -1
- package/CometChatMessageBubble/cometchat-message-bubble/cometchat-message-bubble.component.d.ts +2 -2
- package/CometChatMessageComposer/cometchat-message-composer/cometchat-message-composer.component.d.ts +23 -6
- package/CometChatMessageHeader/cometchat-message-header/cometchat-message-header.component.d.ts +1 -1
- package/CometChatMessageInformation/cometchat-message-information/cometchat-message-information.component.d.ts +95 -0
- package/CometChatMessageInformation/cometchat-message-information.module.d.ts +10 -0
- package/CometChatMessageList/cometchat-message-list/cometchat-message-list.component.d.ts +45 -26
- package/CometChatMessageList/cometchat-message-list.module.d.ts +3 -1
- package/CometChatMessages/cometchat-messages/cometchat-messages.component.d.ts +5 -3
- package/CometChatThreadedMessages/cometchat-threaded-messages/cometchat-threaded-messages.component.d.ts +0 -1
- package/CometChatTransferOwnership/cometchat-transfer-ownership/cometchat-transfer-ownership.component.d.ts +3 -3
- package/CometChatUsers/cometchat-users/cometchat-users.component.d.ts +11 -5
- package/CometChatUsersWithMessages/cometchat-users-with-messages/cometchat-users-with-messages.component.d.ts +2 -2
- package/Extensions/CollaborativeDocument/CollaborativeDocumentExtension.d.ts +4 -8
- package/Extensions/CollaborativeDocument/CollaborativeDocumentExtensionDecorator.d.ts +1 -4
- package/Extensions/CollaborativeWhiteboard/CollaborativeWhiteboardExtension.d.ts +4 -8
- package/Extensions/CollaborativeWhiteboard/CollaborativeWhiteboardExtensionDecorator.d.ts +1 -4
- package/Extensions/ImageModeration/ImageModerationExtension.d.ts +4 -4
- package/Extensions/LinkPreviewExtension/LinkPreviewExtension.d.ts +4 -4
- package/Extensions/MessageTranslation/MessageTranslationExtension.d.ts +4 -8
- package/Extensions/MessageTranslation/MessageTranslationExtensionDecorator.d.ts +1 -4
- package/Extensions/PollsExtension/PollsExtension.d.ts +4 -4
- package/Extensions/PollsExtension/PollsExtensionDecorator.d.ts +0 -1
- package/Extensions/Reactions/ReactionExtension.d.ts +4 -4
- package/Extensions/Reactions/ReactionExtensionDecorator.d.ts +0 -1
- package/Extensions/SmartReplies/SmartRepliesExtension.d.ts +4 -8
- package/Extensions/SmartReplies/SmartRepliesExtensionDecorator.d.ts +2 -2
- package/Extensions/Stickers/StickersExtension.d.ts +4 -8
- package/Extensions/Stickers/StickersExtensionDecorator.d.ts +2 -2
- package/Extensions/TextModerator/TextModeratorExtension.d.ts +4 -3
- package/Extensions/TextModerator/TextModeratorExtensionDecorator.d.ts +0 -1
- package/Extensions/ThumbnailGeneration/ThumbnailGenerationExtension.d.ts +4 -4
- package/Shared/CometChatUIkit/CometChatUIKit.d.ts +10 -6
- package/Shared/Framework/DataSource.d.ts +0 -1
- package/Shared/Framework/DataSourceDecorator.d.ts +0 -1
- package/Shared/Utils/ComeChatException.d.ts +1 -2
- package/Shared/Utils/MessageUtils.d.ts +2 -1
- package/Shared/Views/CometChatTabs/cometchat-tabs/cometchat-tabs.component.d.ts +38 -9
- package/Shared/Views/CometChatTabs/cometchat-tabs.module.d.ts +1 -5
- package/esm2020/Calls/CallingExtension.mjs +7 -4
- package/esm2020/Calls/CallingExtensionDecorator.mjs +4 -4
- package/esm2020/Calls/CometChatCallButtons/cometchat-call-buttons/cometchat-call-buttons.component.mjs +58 -21
- package/esm2020/Calls/CometChatIncomingCall/cometchat-incoming-call/cometchat-incoming-call.component.mjs +48 -17
- package/esm2020/Calls/CometChatOngoingCall/cometchat-ongoing-call/cometchat-ongoing-call.component.mjs +110 -9
- package/esm2020/Calls/CometChatOutgoingCall/cometchat-outgoing-call/cometchat-outgoing-call.component.mjs +9 -7
- package/esm2020/CometChatAddMembers/cometchat-add-members/cometchat-add-members.component.mjs +9 -6
- package/esm2020/CometChatBannedMembers/cometchat-banned-members/cometchat-banned-members.component.mjs +12 -7
- package/esm2020/CometChatContacts/cometchat-contacts/cometchat-contacts.component.mjs +273 -0
- package/esm2020/CometChatContacts/cometchat-contacts.module.mjs +23 -0
- package/esm2020/CometChatConversations/cometchat-conversations/cometchat-conversations.component.mjs +122 -65
- package/esm2020/CometChatConversationsWithMessages/cometchat-conversations-with-messages/cometchat-conversations-with-messages.component.mjs +105 -17
- package/esm2020/CometChatConversationsWithMessages/cometchat-conversations-with-messages.module.mjs +6 -2
- package/esm2020/CometChatDetails/cometchat-details/cometchat-details.component.mjs +13 -11
- package/esm2020/CometChatGroupMembers/cometchat-group-members/cometchat-group-members.component.mjs +45 -46
- package/esm2020/CometChatGroups/cometchat-groups/cometchat-groups.component.mjs +69 -28
- package/esm2020/CometChatGroupsWithMessages/cometchat-groups-with-messages/cometchat-groups-with-messages.component.mjs +60 -21
- package/esm2020/CometChatList/cometchat-list.component.mjs +8 -9
- package/esm2020/CometChatMessageBubble/cometchat-message-bubble/cometchat-message-bubble.component.mjs +4 -5
- package/esm2020/CometChatMessageComposer/cometchat-message-composer/cometchat-message-composer.component.mjs +200 -30
- package/esm2020/CometChatMessageHeader/cometchat-message-header/cometchat-message-header.component.mjs +4 -5
- package/esm2020/CometChatMessageInformation/cometchat-message-information/cometchat-message-information.component.mjs +288 -0
- package/esm2020/CometChatMessageInformation/cometchat-message-information.module.mjs +28 -0
- package/esm2020/CometChatMessageList/cometchat-message-list/cometchat-message-list.component.mjs +401 -185
- package/esm2020/CometChatMessageList/cometchat-message-list.module.mjs +12 -4
- package/esm2020/CometChatMessages/cometchat-messages/cometchat-messages.component.mjs +28 -15
- package/esm2020/CometChatThreadedMessages/cometchat-threaded-messages/cometchat-threaded-messages.component.mjs +3 -4
- package/esm2020/CometChatTransferOwnership/cometchat-transfer-ownership/cometchat-transfer-ownership.component.mjs +14 -15
- package/esm2020/CometChatUsers/cometchat-users/cometchat-users.component.mjs +72 -45
- package/esm2020/CometChatUsersWithMessages/cometchat-users-with-messages/cometchat-users-with-messages.component.mjs +21 -9
- package/esm2020/Extensions/CollaborativeDocument/CollaborativeDocumentExtension.mjs +7 -6
- package/esm2020/Extensions/CollaborativeDocument/CollaborativeDocumentExtensionDecorator.mjs +3 -4
- package/esm2020/Extensions/CollaborativeWhiteboard/CollaborativeWhiteboardExtension.mjs +7 -6
- package/esm2020/Extensions/CollaborativeWhiteboard/CollaborativeWhiteboardExtensionDecorator.mjs +3 -4
- package/esm2020/Extensions/ImageModeration/ImageModerationExtension.mjs +7 -5
- package/esm2020/Extensions/LinkPreviewExtension/LinkPreviewExtension.mjs +7 -5
- package/esm2020/Extensions/MessageTranslation/MessageTranslationExtension.mjs +7 -6
- package/esm2020/Extensions/MessageTranslation/MessageTranslationExtensionDecorator.mjs +2 -4
- package/esm2020/Extensions/PollsExtension/PollsExtension.mjs +7 -5
- package/esm2020/Extensions/PollsExtension/PollsExtensionDecorator.mjs +1 -1
- package/esm2020/Extensions/Reactions/ReactionExtension.mjs +7 -5
- package/esm2020/Extensions/Reactions/ReactionExtensionDecorator.mjs +3 -2
- package/esm2020/Extensions/SmartReplies/SmartRepliesExtension.mjs +7 -6
- package/esm2020/Extensions/SmartReplies/SmartRepliesExtensionDecorator.mjs +5 -7
- package/esm2020/Extensions/Stickers/StickersExtension.mjs +7 -10
- package/esm2020/Extensions/Stickers/StickersExtensionDecorator.mjs +5 -7
- package/esm2020/Extensions/TextModerator/TextModeratorExtension.mjs +16 -4
- package/esm2020/Extensions/TextModerator/TextModeratorExtensionDecorator.mjs +1 -1
- package/esm2020/Extensions/ThumbnailGeneration/ThumbnailGenerationExtension.mjs +7 -5
- package/esm2020/Shared/CometChatUIkit/CometChatUIKit.mjs +66 -32
- package/esm2020/Shared/Framework/DataSource.mjs +1 -1
- package/esm2020/Shared/Framework/DataSourceDecorator.mjs +1 -1
- package/esm2020/Shared/Utils/ComeChatException.mjs +2 -2
- package/esm2020/Shared/Utils/MessageUtils.mjs +36 -6
- package/esm2020/Shared/Views/CometChatTabs/cometchat-tabs/cometchat-tabs.component.mjs +61 -25
- package/esm2020/Shared/Views/CometChatTabs/cometchat-tabs.module.mjs +2 -18
- package/esm2020/public-api.mjs +8 -5
- package/fesm2015/cometchat-chat-uikit-angular.mjs +3658 -3185
- package/fesm2015/cometchat-chat-uikit-angular.mjs.map +1 -1
- package/fesm2020/cometchat-chat-uikit-angular.mjs +3639 -3164
- package/fesm2020/cometchat-chat-uikit-angular.mjs.map +1 -1
- package/package.json +5 -5
- package/public-api.d.ts +7 -4
- package/Calls/CometChatCallDetails/cometchat-call-details/cometchat-call-details.component.d.ts +0 -139
- package/Calls/CometChatCallDetails/cometchat-call-details.module.d.ts +0 -10
- package/Calls/CometChatCallHistory/cometchat-call-history/cometchat-call-history.component.d.ts +0 -125
- package/Calls/CometChatCallHistory/cometchat-call-history.module.d.ts +0 -10
- package/Calls/CometChatCallHistoryWithDetails/cometchat-call-history-with-details/cometchat-call-history-with-details.component.d.ts +0 -59
- package/Calls/CometChatCallHistoryWithDetails/cometchat-call-history-with-details.module.d.ts +0 -12
- package/esm2020/Calls/CometChatCallDetails/cometchat-call-details/cometchat-call-details.component.mjs +0 -452
- package/esm2020/Calls/CometChatCallDetails/cometchat-call-details.module.mjs +0 -31
- package/esm2020/Calls/CometChatCallHistory/cometchat-call-history/cometchat-call-history.component.mjs +0 -397
- package/esm2020/Calls/CometChatCallHistory/cometchat-call-history.module.mjs +0 -28
- package/esm2020/Calls/CometChatCallHistoryWithDetails/cometchat-call-history-with-details/cometchat-call-history-with-details.component.mjs +0 -143
- package/esm2020/Calls/CometChatCallHistoryWithDetails/cometchat-call-history-with-details.module.mjs +0 -39
|
@@ -39,7 +39,8 @@ export class CometChatOutgoingCallComponent {
|
|
|
39
39
|
border: "none",
|
|
40
40
|
buttonIconTint: "white",
|
|
41
41
|
background: "",
|
|
42
|
-
iconBackground: "red"
|
|
42
|
+
iconBackground: "red",
|
|
43
|
+
padding: "12px"
|
|
43
44
|
};
|
|
44
45
|
this.subtitleText = localize("CALLING");
|
|
45
46
|
this.cardStyle = {
|
|
@@ -84,7 +85,6 @@ export class CometChatOutgoingCallComponent {
|
|
|
84
85
|
}
|
|
85
86
|
}
|
|
86
87
|
ngOnInit() {
|
|
87
|
-
console.log(this.outgoingCallStyle);
|
|
88
88
|
}
|
|
89
89
|
playAudio() {
|
|
90
90
|
if (this.customSoundForCalls) {
|
|
@@ -132,7 +132,10 @@ export class CometChatOutgoingCallComponent {
|
|
|
132
132
|
border: "none",
|
|
133
133
|
buttonIconTint: this.outgoingCallStyle.declineButtonIconTint,
|
|
134
134
|
background: "",
|
|
135
|
-
iconBackground: this.outgoingCallStyle.declineButtonIconBackground
|
|
135
|
+
iconBackground: this.outgoingCallStyle.declineButtonIconBackground,
|
|
136
|
+
padding: "12px",
|
|
137
|
+
display: "flex",
|
|
138
|
+
flexDirection: "column"
|
|
136
139
|
};
|
|
137
140
|
}
|
|
138
141
|
setAvatarStyle() {
|
|
@@ -145,7 +148,6 @@ export class CometChatOutgoingCallComponent {
|
|
|
145
148
|
nameTextColor: this.themeService.theme.palette.getAccent900(),
|
|
146
149
|
backgroundSize: "cover",
|
|
147
150
|
nameTextFont: fontHelper(this.themeService.theme.typography.subtitle1),
|
|
148
|
-
outerViewBorder: "",
|
|
149
151
|
outerViewBorderSpacing: "",
|
|
150
152
|
});
|
|
151
153
|
this.avatarStyle = { ...defaultStyle, ...this.avatarStyle };
|
|
@@ -158,10 +160,10 @@ export class CometChatOutgoingCallComponent {
|
|
|
158
160
|
}
|
|
159
161
|
}
|
|
160
162
|
CometChatOutgoingCallComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CometChatOutgoingCallComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.CometChatThemeService }], target: i0.ɵɵFactoryTarget.Component });
|
|
161
|
-
CometChatOutgoingCallComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: CometChatOutgoingCallComponent, selector: "cometchat-outgoing-call", inputs: { call: "call", declineButtonText: "declineButtonText", declineButtonIconURL: "declineButtonIconURL", customView: "customView", onError: "onError", disableSoundForCalls: "disableSoundForCalls", customSoundForCalls: "customSoundForCalls", avatarStyle: "avatarStyle", outgoingCallStyle: "outgoingCallStyle", onCloseClicked: "onCloseClicked" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"cc-outgoing-call__wrapper\" [ngStyle]=\"wrapperStyle()\">\n <div class=\"cc-outgoing-call__custom-view\" *ngIf=\"customView; else elseBlock;\">\n <ng-container *ngTemplateOutlet=\"customView\">\n\n </ng-container>\n </div>\n<ng-template #elseBlock>\n <cometchat-card [title]=\"call
|
|
163
|
+
CometChatOutgoingCallComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: CometChatOutgoingCallComponent, selector: "cometchat-outgoing-call", inputs: { call: "call", declineButtonText: "declineButtonText", declineButtonIconURL: "declineButtonIconURL", customView: "customView", onError: "onError", disableSoundForCalls: "disableSoundForCalls", customSoundForCalls: "customSoundForCalls", avatarStyle: "avatarStyle", outgoingCallStyle: "outgoingCallStyle", onCloseClicked: "onCloseClicked" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"cc-outgoing-call__wrapper\" [ngStyle]=\"wrapperStyle()\">\n <div class=\"cc-outgoing-call__custom-view\" *ngIf=\"customView; else elseBlock;\">\n <ng-container *ngTemplateOutlet=\"customView\">\n\n </ng-container>\n </div>\n<ng-template #elseBlock>\n <cometchat-card [title]=\"call.getReceiver().getName()\" [cardStyle]=\"cardStyle\" [avatarName]=\"call.getReceiver().getName()\" [avatarURL]=\"getAvatarURL()\" [avatarStyle]=\"avatarStyle\" >\n <cometchat-label slot=\"subtitleView\" [labelStyle]=\"subtitleStyle()\" [text]=\"subtitleText\"> </cometchat-label>\n <div slot=\"bottomView\">\n <cometchat-icon-button (cc-button-clicked)=\"onClose()\" [text]=\"declineButtonText\" [iconURL]=\"declineButtonIconURL\" [alignment]=\"iconAlignment\" [buttonStyle]=\"buttonStyle\">\n\n </cometchat-icon-button>\n </div>\n </cometchat-card>\n</ng-template>\n</div>\n", styles: [".cc-outgoing-call__wrapper{height:100%;width:100%}\n"], directives: [{ type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
162
164
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CometChatOutgoingCallComponent, decorators: [{
|
|
163
165
|
type: Component,
|
|
164
|
-
args: [{ selector: "cometchat-outgoing-call", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"cc-outgoing-call__wrapper\" [ngStyle]=\"wrapperStyle()\">\n <div class=\"cc-outgoing-call__custom-view\" *ngIf=\"customView; else elseBlock;\">\n <ng-container *ngTemplateOutlet=\"customView\">\n\n </ng-container>\n </div>\n<ng-template #elseBlock>\n <cometchat-card [title]=\"call
|
|
166
|
+
args: [{ selector: "cometchat-outgoing-call", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"cc-outgoing-call__wrapper\" [ngStyle]=\"wrapperStyle()\">\n <div class=\"cc-outgoing-call__custom-view\" *ngIf=\"customView; else elseBlock;\">\n <ng-container *ngTemplateOutlet=\"customView\">\n\n </ng-container>\n </div>\n<ng-template #elseBlock>\n <cometchat-card [title]=\"call.getReceiver().getName()\" [cardStyle]=\"cardStyle\" [avatarName]=\"call.getReceiver().getName()\" [avatarURL]=\"getAvatarURL()\" [avatarStyle]=\"avatarStyle\" >\n <cometchat-label slot=\"subtitleView\" [labelStyle]=\"subtitleStyle()\" [text]=\"subtitleText\"> </cometchat-label>\n <div slot=\"bottomView\">\n <cometchat-icon-button (cc-button-clicked)=\"onClose()\" [text]=\"declineButtonText\" [iconURL]=\"declineButtonIconURL\" [alignment]=\"iconAlignment\" [buttonStyle]=\"buttonStyle\">\n\n </cometchat-icon-button>\n </div>\n </cometchat-card>\n</ng-template>\n</div>\n", styles: [".cc-outgoing-call__wrapper{height:100%;width:100%}\n"] }]
|
|
165
167
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.CometChatThemeService }]; }, propDecorators: { call: [{
|
|
166
168
|
type: Input
|
|
167
169
|
}], declineButtonText: [{
|
|
@@ -183,4 +185,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
183
185
|
}], onCloseClicked: [{
|
|
184
186
|
type: Input
|
|
185
187
|
}] } });
|
|
186
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tZXRjaGF0LW91dGdvaW5nLWNhbGwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2hhdC11aWtpdC1hbmd1bGFyL3NyYy9DYWxscy9Db21ldENoYXRPdXRnb2luZ0NhbGwvY29tZXRjaGF0LW91dGdvaW5nLWNhbGwvY29tZXRjaGF0LW91dGdvaW5nLWNhbGwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2hhdC11aWtpdC1hbmd1bGFyL3NyYy9DYWxscy9Db21ldENoYXRPdXRnb2luZ0NhbGwvY29tZXRjaGF0LW91dGdvaW5nLWNhbGwvY29tZXRjaGF0LW91dGdvaW5nLWNhbGwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsS0FBSyxFQUFpRCxNQUFNLGVBQWUsQ0FBQztBQUU1SSxPQUFPLEVBQUkscUJBQXFCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRixPQUFPLEVBQUUsV0FBVyxFQUF3QixNQUFNLDJCQUEyQixDQUFBO0FBRTdFLE9BQU8sRUFBRyxRQUFRLEVBQUUsdUJBQXVCLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7QUFDakg7Ozs7Ozs7O0VBUUU7QUFPRixNQUFNLE9BQU8sOEJBQThCO0lBNkN6QyxZQUFvQixHQUFzQixFQUFVLFlBQW1DO1FBQW5FLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVUsaUJBQVksR0FBWixZQUFZLENBQXVCO1FBM0M5RSxzQkFBaUIsR0FBVyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDL0MseUJBQW9CLEdBQVcsb0JBQW9CLENBQUM7UUFFcEQsWUFBTyxHQUFrRCxDQUFDLEtBQW1DLEVBQUUsRUFBRTtZQUN4RyxPQUFPLENBQUMsR0FBRyxDQUFD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RGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcywgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbWV0Q2hhdCB9IGZyb20gJ0Bjb21ldGNoYXQtcHJvL2NoYXQnO1xuaW1wb3J0IHsgICBDb21ldENoYXRTb3VuZE1hbmFnZXIsIE91dGdvaW5nQ2FsbFN0eWxlIH0gZnJvbSBcIkBjb21ldGNoYXQvdWlraXQtc2hhcmVkXCI7XG5pbXBvcnQgeyBBdmF0YXJTdHlsZSwgQ2FyZFN0eWxlLCBJY29uU3R5bGUgfSBmcm9tICdAY29tZXRjaGF0L3Vpa2l0LWVsZW1lbnRzJ1xuaW1wb3J0IHsgQ29tZXRDaGF0VGhlbWVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vQ29tZXRDaGF0VGhlbWUuc2VydmljZSc7XG5pbXBvcnQgeyAgbG9jYWxpemUsIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLCBmb250SGVscGVyLCBJY29uQnV0dG9uQWxpZ25tZW50IH0gZnJvbSAnQGNvbWV0Y2hhdC91aWtpdC1yZXNvdXJjZXMnO1xuLyoqXG4qXG4qIENvbWV0Q2hhdE91dGdvaW5nQ2FsbENvbXBvbmVudCBpcyBhIGNvbXBvbmVudCB3aGljIHNob3dzIG91dGdvaW5nIGNhbGwgc2NyZWVuIGZvciBkZWZhdWx0IGF1ZGlvIGFuZCB2aWRlbyBjYWxsLlxuKlxuKiBAdmVyc2lvbiAxLjAuMFxuKiBAYXV0aG9yIENvbWV0Q2hhdFRlYW1cbiogQGNvcHlyaWdodCDCqSAyMDIyIENvbWV0Q2hhdCBJbmMuXG4qXG4qL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImNvbWV0Y2hhdC1vdXRnb2luZy1jYWxsXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vY29tZXRjaGF0LW91dGdvaW5nLWNhbGwuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL2NvbWV0Y2hhdC1vdXRnb2luZy1jYWxsLmNvbXBvbmVudC5zY3NzXCJdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBDb21ldENoYXRPdXRnb2luZ0NhbGxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGNhbGwhOiBDb21ldENoYXQuQ2FsbDtcbiAgQElucHV0KCkgZGVjbGluZUJ1dHRvblRleHQ6IHN0cmluZyA9IGxvY2FsaXplKFwiQ0FOQ0VMXCIpO1xuICBASW5wdXQoKSBkZWNsaW5lQnV0dG9uSWNvblVSTDogc3RyaW5nID0gXCJhc3NldHMvY2xvc2UyeC5zdmdcIjtcbiAgQElucHV0KCkgY3VzdG9tVmlldyE6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBJbnB1dCgpIG9uRXJyb3I6IChlcnJvcjogQ29tZXRDaGF0LkNvbWV0Q2hhdEV4Y2VwdGlvbikgPT4gdm9pZCA9IChlcnJvcjogQ29tZXRDaGF0LkNvbWV0Q2hhdEV4Y2VwdGlvbikgPT4ge1xuICAgIGNvbnNvbGUubG9nKGVycm9yKVxuICB9XG4gIEBJbnB1dCgpIGRpc2FibGVTb3VuZEZvckNhbGxzOmJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgY3VzdG9tU291bmRGb3JDYWxscyE6c3RyaW5nO1xuICBASW5wdXQoKSBhdmF0YXJTdHlsZTogQXZhdGFyU3R5bGUgPSB7XG4gICAgYm9yZGVyUmFkaXVzOiBcIjUwJVwiLFxuICAgIHdpZHRoOiBcIjE4MHB4XCIsXG4gICAgICBoZWlnaHQ6IFwiMTgwcHhcIixcbiAgfTtcbiAgQElucHV0KCkgb3V0Z29pbmdDYWxsU3R5bGU6IE91dGdvaW5nQ2FsbFN0eWxlID0ge307XG4gIEBJbnB1dCgpIG9uQ2xvc2VDbGlja2VkITooKCk9PnZvaWQpIHwgbnVsbDtcbiAgIGJ1dHRvblN0eWxlOmFueSA9IHtcbiAgICBoZWlnaHQ6IFwiZml0LWNvbnRlbnRcIixcbiAgICB3aWR0aDogXCJmaXQtY29udGVudFwiLFxuICAgIGJ1dHRvblRleHRGb250OiBcIjQwMCAxMnB4IEludGVyXCIsXG4gICAgYnV0dG9uVGV4dENvbG9yOiBcIlJHQkEoMjAsIDIwLCAyMCwgMC41OClcIixcbiAgICBib3JkZXJSYWRpdXM6IFwiOHB4XCIsXG4gICAgYm9yZGVyOiBcIm5vbmVcIixcbiAgICBidXR0b25JY29uVGludDogXCJ3aGl0ZVwiLFxuICAgIGJhY2tncm91bmQ6IFwiXCIsXG4gICAgaWNvbkJhY2tncm91bmQ6XCJyZWRcIlxuICB9O1xuXG4gIHN1YnRpdGxlVGV4dDpzdHJpbmcgPSBsb2NhbGl6ZShcIkNBTExJTkdcIilcbiAgY2FyZFN0eWxlOkNhcmRTdHlsZSA9IHtcbiAgICBoZWlnaHQ6IFwiMTAwJVwiLFxuICAgIHdpZHRoOiBcIjEwMCVcIixcbiAgICBib3JkZXI6IFwiaW5oZXJpdGVcIixcbiAgICBib3JkZXJSYWRpdXM6IFwiaW5oZXJpdGVcIixcbiAgICBiYWNrZ3JvdW5kOiBcInRyYW5zcGFyZW50XCIsXG4gICAgdGl0bGVGb250OlwiNzAwIDIycHggSW50ZXJcIixcbiAgICB0aXRsZUNvbG9yOlwiYmxhY2tcIixcbiAgfVxuICBpY29uQWxpZ25tZW50Okljb25CdXR0b25BbGlnbm1lbnQgPSBJY29uQnV0dG9uQWxpZ25tZW50LnRvcFxuICBpY29uU3R5bGU6IEljb25TdHlsZSA9IHtcbiAgICBoZWlnaHQ6IFwiMTZweFwiLFxuICAgIHdpZHRoOiBcIjE2cHhcIixcbiAgICBpY29uVGludDogXCJSR0JBKDIwLCAyMCwgMjAsIDAuNjgpXCJcbiAgfVxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgdGhlbWVTZXJ2aWNlOiBDb21ldENoYXRUaGVtZVNlcnZpY2UpIHsgIH1cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgaWYoY2hhbmdlc1tcImNhbGxcIl0gJiYgY2hhbmdlc1tcImNhbGxcIl0uY3VycmVudFZhbHVlKXtcbiAgICAgICAgaWYoIXRoaXMuZGlzYWJsZVNvdW5kRm9yQ2FsbHMpe1xuXG4gICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMucGxheUF1ZGlvKClcbiAgICAgICB9KTtcbiAgICAgfVxuICAgICB0aGlzLnNldFRoZW1lU3R5bGUoKVxuICAgfVxuICB9XG4gIG5nT25Jbml0KCk6IHZvaWQge1xuY29uc29sZS5sb2codGhpcy5vdXRnb2luZ0NhbGxTdHlsZSlcbiAgfVxuICBwbGF5QXVkaW8oKSB7XG4gICAgaWYgKHRoaXMuY3VzdG9tU291bmRGb3JDYWxscykge1xuICAgICAgQ29tZXRDaGF0U291bmRNYW5hZ2VyLnBsYXkoQ29tZXRDaGF0U291bmRNYW5hZ2VyLlNvdW5kLm91dGdvaW5nQ2FsbCwgdGhpcy5jdXN0b21Tb3VuZEZvckNhbGxzKVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIENvbWV0Q2hhdFNvdW5kTWFuYWdlci5wbGF5KENvbWV0Q2hhdFNvdW5kTWFuYWdlci5Tb3VuZC5vdXRnb2luZ0NhbGwpXG4gICAgfVxuICB9XG4gIG5nT25EZXN0cm95KCl7XG4gICAgQ29tZXRDaGF0U291bmRNYW5hZ2VyLnBhdXNlKClcbiAgfVxuICBvbkNsb3NlID0oKT0+e1xuICAgIENvbWV0Q2hhdFNvdW5kTWFuYWdlci5wYXVzZSgpXG4gaWYodGhpcy5vbkNsb3NlQ2xpY2tlZCl7XG4gIHRoaXMub25DbG9zZUNsaWNrZWQoKVxuXG4gfVxuICB9XG4gIGdldEF2YXRhclVSTCgpe1xuICAgIHJldHVybiB0aGlzLmNhbGw/LmdldFJlY2VpdmVyVHlwZSgpID09IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VSZWNlaXZlclR5cGUudXNlciA/ICh0aGlzLmNhbGw/LmdldFJlY2VpdmVyKCkgYXMgQ29tZXRDaGF0LlVzZXIpPy5nZXRBdmF0YXIoKSA6ICh0aGlzLmNhbGw/LmdldFJlY2VpdmVyKCkgYXMgQ29tZXRDaGF0Lkdyb3VwKT8uZ2V0SWNvbigpXG4gIH1cbiAgc2V0VGhlbWVTdHlsZSgpIHtcbiAgICB0aGlzLnNldEF2YXRhclN0eWxlKClcbiAgICB0aGlzLnNldE91dGdvaW5nQ2FsbFN0eWxlKClcbiAgICB0aGlzLmNhcmRTdHlsZS50aXRsZUNvbG9yID0gdGhpcy5vdXRnb2luZ0NhbGxTdHlsZS50aXRsZVRleHRDb2xvclxuICAgIHRoaXMuY2FyZFN0eWxlLnRpdGxlRm9udCA9IHRoaXMub3V0Z29pbmdDYWxsU3R5bGUudGl0bGVUZXh0Rm9udFxuICB9XG4gIHNldE91dGdvaW5nQ2FsbFN0eWxlKCl7XG4gICAgbGV0IGRlZmF1bHRTdHlsZTogT3V0Z29pbmdDYWxsU3R5bGUgPSBuZXcgT3V0Z29pbmdDYWxsU3R5bGUoe1xuICAgICAgd2lkdGg6IFwiMzYwcHhcIixcbiAgICAgIGhlaWdodDogXCI1ODFweFwiLFxuICAgICAgYmFja2dyb3VuZDogdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRCYWNrZ3JvdW5kKCksXG4gICAgICBib3JkZXI6IFwibm9uZVwiLFxuICAgICAgYm9yZGVyUmFkaXVzOiBcIjhweFwiLFxuICAgICAgdGl0bGVUZXh0Rm9udDogZm9udEhlbHBlcih0aGlzLnRoZW1lU2VydmljZS50aGVtZS50eXBvZ3JhcGh5LnRpdGxlMSksXG4gICAgICB0aXRsZVRleHRDb2xvcjogdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQoKSxcbiAgICAgIHN1YnRpdGxlVGV4dEZvbnQ6IGZvbnRIZWxwZXIodGhpcy50aGVtZVNlcnZpY2UudGhlbWUudHlwb2dyYXBoeS5zdWJ0aXRsZTEpLFxuICAgICAgc3VidGl0bGVUZXh0Q29sb3I6IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NjAwKCksXG4gICAgICBkZWNsaW5lQnV0dG9uVGV4dEZvbnQ6Zm9udEhlbHBlcih0aGlzLnRoZW1lU2VydmljZS50aGVtZS50eXBvZ3JhcGh5LmNhcHRpb24xKSxcbiAgICAgIGRlY2xpbmVCdXR0b25UZXh0Q29sb3I6dGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ2MDAoKSxcbiAgICAgIGRlY2xpbmVCdXR0b25JY29uVGludDp0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudChcImRhcmtcIiksXG4gICAgICBkZWNsaW5lQnV0dG9uSWNvbkJhY2tncm91bmQ6dGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRFcnJvcigpXG4gICAgfSlcbiAgICB0aGlzLm91dGdvaW5nQ2FsbFN0eWxlID0geyAuLi5kZWZhdWx0U3R5bGUsIC4uLnRoaXMub3V0Z29pbmdDYWxsU3R5bGUgfVxuICAgIHRoaXMuYnV0dG9uU3R5bGUgPSB7XG4gICAgICBoZWlnaHQ6IFwiZml0LWNvbnRlbnRcIixcbiAgICAgIHdpZHRoOiBcImZpdC1jb250ZW50XCIsXG4gICAgICBidXR0b25UZXh0Rm9udDogdGhpcy5vdXRnb2luZ0NhbGxTdHlsZS5kZWNsaW5lQnV0dG9uVGV4dEZvbnQsXG4gICAgICBidXR0b25UZXh0Q29sb3I6IHRoaXMub3V0Z29pbmdDYWxsU3R5bGUuZGVjbGluZUJ1dHRvblRleHRDb2xvcixcbiAgICAgIGJvcmRlclJhZGl1czogXCI4cHhcIixcbiAgICAgIGJvcmRlcjogXCJub25lXCIsXG4gICAgICBidXR0b25JY29uVGludDogdGhpcy5vdXRnb2luZ0NhbGxTdHlsZS5kZWNsaW5lQnV0dG9uSWNvblRpbnQsXG4gICAgICBiYWNrZ3JvdW5kOiBcIlwiLFxuICAgICAgaWNvbkJhY2tncm91bmQ6dGhpcy5vdXRnb2luZ0NhbGxTdHlsZS5kZWNsaW5lQnV0dG9uSWNvbkJhY2tncm91bmRcbiAgICB9XG4gIH1cbiAgc2V0QXZhdGFyU3R5bGUoKSB7XG4gICAgbGV0IGRlZmF1bHRTdHlsZTogQXZhdGFyU3R5bGUgPSBuZXcgQXZhdGFyU3R5bGUoe1xuICAgICAgYm9yZGVyUmFkaXVzOiBcIjUwJVwiLFxuICAgICAgd2lkdGg6IFwiMTgwcHhcIixcbiAgICAgIGhlaWdodDogXCIxODBweFwiLFxuICAgICAgYm9yZGVyOiBgMXB4IHNvbGlkICAke3RoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50MTAwKCl9YCxcbiAgICAgIGJhY2tncm91bmRDb2xvcjogdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ3MDAoKSxcbiAgICAgIG5hbWVUZXh0Q29sb3I6IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50OTAwKCksXG4gICAgICBiYWNrZ3JvdW5kU2l6ZTogXCJjb3ZlclwiLFxuICAgICAgbmFtZVRleHRGb250OiBmb250SGVscGVyKHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnR5cG9ncmFwaHkuc3VidGl0bGUxKSxcbiAgICAgIG91dGVyVmlld0JvcmRlcjogXCJcIixcbiAgICAgIG91dGVyVmlld0JvcmRlclNwYWNpbmc6IFwiXCIsXG4gICAgfSlcbiAgICB0aGlzLmF2YXRhclN0eWxlID0geyAuLi5kZWZhdWx0U3R5bGUsIC4uLnRoaXMuYXZhdGFyU3R5bGUgfVxuICB9XG4gIHN1YnRpdGxlU3R5bGUoKXtcbiAgICByZXR1cm4ge1xuICAgICAgdGV4dEZvbnQ6dGhpcy5vdXRnb2luZ0NhbGxTdHlsZS5zdWJ0aXRsZVRleHRGb250LFxuICAgICAgdGV4dENvbG9yOnRoaXMub3V0Z29pbmdDYWxsU3R5bGUuc3VidGl0bGVUZXh0Q29sb3JcbiAgICB9XG4gIH1cbiAgd3JhcHBlclN0eWxlID0gKCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBoZWlnaHQ6IHRoaXMub3V0Z29pbmdDYWxsU3R5bGUuaGVpZ2h0LFxuICAgICAgd2lkdGg6IHRoaXMub3V0Z29pbmdDYWxsU3R5bGUud2lkdGgsXG4gICAgICBiYWNrZ3JvdW5kOiB0aGlzLm91dGdvaW5nQ2FsbFN0eWxlLmJhY2tncm91bmQsXG4gICAgICBib3JkZXI6IHRoaXMub3V0Z29pbmdDYWxsU3R5bGUuYm9yZGVyLFxuICAgICAgYm9yZGVyUmFkaXVzOiB0aGlzLm91dGdvaW5nQ2FsbFN0eWxlLmJvcmRlclJhZGl1c1xuICAgIH1cbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwiY2Mtb3V0Z29pbmctY2FsbF9fd3JhcHBlclwiIFtuZ1N0eWxlXT1cIndyYXBwZXJTdHlsZSgpXCI+XG4gICAgPGRpdiBjbGFzcz1cImNjLW91dGdvaW5nLWNhbGxfX2N1c3RvbS12aWV3XCIgKm5nSWY9XCJjdXN0b21WaWV3OyBlbHNlIGVsc2VCbG9jaztcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImN1c3RvbVZpZXdcIj5cblxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbjxuZy10ZW1wbGF0ZSAjZWxzZUJsb2NrPlxuICAgIDxjb21ldGNoYXQtY2FyZCBbdGl0bGVdPVwiY2FsbD8uZ2V0UmVjZWl2ZXIoKT8uZ2V0TmFtZSgpXCIgW2NhcmRTdHlsZV09XCJjYXJkU3R5bGVcIiBbYXZhdGFyTmFtZV09XCJjYWxsPy5nZXRSZWNlaXZlcigpPy5nZXROYW1lKClcIiBbYXZhdGFyVVJMXT1cImdldEF2YXRhclVSTCgpXCIgW2F2YXRhclN0eWxlXT1cImF2YXRhclN0eWxlXCIgPlxuICAgICAgICA8Y29tZXRjaGF0LWxhYmVsIHNsb3Q9XCJzdWJ0aXRsZVZpZXdcIiBbbGFiZWxTdHlsZV09XCJzdWJ0aXRsZVN0eWxlKClcIiBbdGV4dF09XCJzdWJ0aXRsZVRleHRcIj4gPC9jb21ldGNoYXQtbGFiZWw+XG4gICAgICAgIDxkaXYgc2xvdD1cImJvdHRvbVZpZXdcIj5cbiAgICAgICAgICAgIDxjb21ldGNoYXQtaWNvbi1idXR0b24gKGNjLWJ1dHRvbi1jbGlja2VkKT1cIm9uQ2xvc2UoKVwiIFt0ZXh0XT1cImRlY2xpbmVCdXR0b25UZXh0XCIgW2ljb25VUkxdPVwiZGVjbGluZUJ1dHRvbkljb25VUkxcIiBbYWxpZ25tZW50XT1cImljb25BbGlnbm1lbnRcIiBbYnV0dG9uU3R5bGVdPVwiYnV0dG9uU3R5bGVcIj5cblxuICAgICAgICAgICAgPC9jb21ldGNoYXQtaWNvbi1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8L2NvbWV0Y2hhdC1jYXJkPlxuPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
|
|
188
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tZXRjaGF0LW91dGdvaW5nLWNhbGwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2hhdC11aWtpdC1hbmd1bGFyL3NyYy9DYWxscy9Db21ldENoYXRPdXRnb2luZ0NhbGwvY29tZXRjaGF0LW91dGdvaW5nLWNhbGwvY29tZXRjaGF0LW91dGdvaW5nLWNhbGwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2hhdC11aWtpdC1hbmd1bGFyL3NyYy9DYWxscy9Db21ldENoYXRPdXRnb2luZ0NhbGwvY29tZXRjaGF0LW91dGdvaW5nLWNhbGwvY29tZXRjaGF0LW91dGdvaW5nLWNhbGwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsS0FBSyxFQUFpRCxNQUFNLGVBQWUsQ0FBQztBQUU1SSxPQUFPLEVBQUkscUJBQXFCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRixPQUFPLEVBQUUsV0FBVyxFQUF3QixNQUFNLDJCQUEyQixDQUFBO0FBRTdFLE9BQU8sRUFBRyxRQUFRLEVBQUUsdUJBQXVCLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7QUFDakg7Ozs7Ozs7O0VBUUU7QUFPRixNQUFNLE9BQU8sOEJBQThCO0lBOEN6QyxZQUFvQixHQUFzQixFQUFVLFlBQW1DO1FBQW5FLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVUsaUJBQVksR0FBWixZQUFZLENBQXVCO1FBNUM5RSxzQkFBaUIsR0FBVyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDL0MseUJBQW9CLEdBQVcsb0JBQW9CLENBQUM7UUFFcEQsWUFBTyxHQUFrRCxDQUFDLEtBQW1DLEVBQUUsRUFBRTtZQUN4RyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3BCLENBQUMsQ0FBQTtRQUNRLHlCQUFvQixHQUFXLEtBQUssQ0FBQztRQUVyQyxnQkFBVyxHQUFnQjtZQUNsQyxZQUFZLEVBQUUsS0FBSztZQUNuQixLQUFLLEVBQUUsT0FBTztZQUNaLE1BQU0sRUFBRSxPQUFPO1NBQ2xCLENBQUM7UUFDTyxzQkFBaUIsR0FBc0IsRUFBRSxDQUFDO1FBRWxELGdCQUFXLEdBQU87WUFDakIsTUFBTSxFQUFFLGFBQWE7WUFDckIsS0FBSyxFQUFFLGFBQWE7WUFDcEIsY0FBYyxFQUFFLGdCQUFnQjtZQUNoQyxlQUFlLEVBQUUsd0JBQXdCO1lBQ3pDLFlBQVksRUFBRSxLQUFLO1lBQ25CLE1BQU0sRUFBRSxNQUFNO1lBQ2QsY0FBYyxFQUFFLE9BQU87WUFDdkIsVUFBVSxFQUFFLEVBQUU7WUFDZCxjQUFjLEVBQUMsS0FBSztZQUNwQixPQUFPLEVBQUMsTUFBTTtTQUNmLENBQUM7UUFFRixpQkFBWSxHQUFVLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUN6QyxjQUFTLEdBQWE7WUFDcEIsTUFBTSxFQUFFLE1BQU07WUFDZCxLQUFLLEVBQUUsTUFBTTtZQUNiLE1BQU0sRUFBRSxVQUFVO1lBQ2xCLFlBQVksRUFBRSxVQUFVO1lBQ3hCLFVBQVUsRUFBRSxhQUFhO1lBQ3pCLFNBQVMsRUFBQyxnQkFBZ0I7WUFDMUIsVUFBVSxFQUFDLE9BQU87U0FDbkIsQ0FBQTtRQUNELGtCQUFhLEdBQXVCLG1CQUFtQixDQUFDLEdBQUcsQ0FBQTtRQUMzRCxjQUFTLEdBQWM7WUFDckIsTUFBTSxFQUFFLE1BQU07WUFDZCxLQUFLLEVBQUUsTUFBTTtZQUNiLFFBQVEsRUFBRSx3QkFBd0I7U0FDbkMsQ0FBQTtRQTJCRCxZQUFPLEdBQUUsR0FBRSxFQUFFO1lBQ1gscUJBQXFCLENBQUMsS0FBSyxFQUFFLENBQUE7WUFDaEMsSUFBRyxJQUFJLENBQUMsY0FBYyxFQUFDO2dCQUN0QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUE7YUFFckI7UUFDQSxDQUFDLENBQUE7UUErREQsaUJBQVksR0FBRyxHQUFHLEVBQUU7WUFDbEIsT0FBTztnQkFDTCxNQUFNLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU07Z0JBQ3JDLEtBQUssRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSztnQkFDbkMsVUFBVSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVO2dCQUM3QyxNQUFNLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU07Z0JBQ3JDLFlBQVksRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWTthQUNsRCxDQUFBO1FBQ0gsQ0FBQyxDQUFBO0lBdkcyRixDQUFDO0lBQzdGLFdBQVcsQ0FBQyxPQUFzQjtRQUNqQyxJQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxFQUFDO1lBQzlDLElBQUcsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUM7Z0JBRS9CLFVBQVUsQ0FBQyxHQUFHLEVBQUU7b0JBQ2YsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFBO2dCQUNqQixDQUFDLENBQUMsQ0FBQzthQUNKO1lBQ0QsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFBO1NBQ3JCO0lBQ0YsQ0FBQztJQUNELFFBQVE7SUFFUixDQUFDO0lBQ0QsU0FBUztRQUNQLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFO1lBQzVCLHFCQUFxQixDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO1NBQy9GO2FBQ0k7WUFDSCxxQkFBcUIsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFBO1NBQ3JFO0lBQ0gsQ0FBQztJQUNELFdBQVc7UUFDVCxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUMvQixDQUFDO0lBUUQsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxlQUFlLEVBQUUsSUFBSSx1QkFBdUIsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFxQixFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBc0IsRUFBRSxPQUFPLEVBQUUsQ0FBQTtJQUNoTixDQUFDO0lBQ0QsYUFBYTtRQUNYLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQTtRQUNyQixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQTtRQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFBO1FBQ2pFLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUE7SUFDakUsQ0FBQztJQUNELG9CQUFvQjtRQUNsQixJQUFJLFlBQVksR0FBc0IsSUFBSSxpQkFBaUIsQ0FBQztZQUMxRCxLQUFLLEVBQUUsT0FBTztZQUNkLE1BQU0sRUFBRSxPQUFPO1lBQ2YsVUFBVSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUU7WUFDM0QsTUFBTSxFQUFFLE1BQU07WUFDZCxZQUFZLEVBQUUsS0FBSztZQUNuQixhQUFhLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7WUFDcEUsY0FBYyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUU7WUFDM0QsZ0JBQWdCLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUM7WUFDMUUsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRTtZQUNqRSxxQkFBcUIsRUFBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUM3RSxzQkFBc0IsRUFBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFO1lBQ3JFLHFCQUFxQixFQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO1lBQ3ZFLDJCQUEyQixFQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUU7U0FDdkUsQ0FBQyxDQUFBO1FBQ0YsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsR0FBRyxZQUFZLEVBQUUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQTtRQUN2RSxJQUFJLENBQUMsV0FBVyxHQUFHO1lBQ2pCLE1BQU0sRUFBRSxhQUFhO1lBQ3JCLEtBQUssRUFBRSxhQUFhO1lBQ3BCLGNBQWMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMscUJBQXFCO1lBQzVELGVBQWUsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsc0JBQXNCO1lBQzlELFlBQVksRUFBRSxLQUFLO1lBQ25CLE1BQU0sRUFBRSxNQUFNO1lBQ2QsY0FBYyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxxQkFBcUI7WUFDNUQsVUFBVSxFQUFFLEVBQUU7WUFDZCxjQUFjLEVBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLDJCQUEyQjtZQUNqRSxPQUFPLEVBQUMsTUFBTTtZQUNkLE9BQU8sRUFBQyxNQUFNO1lBQ2QsYUFBYSxFQUFDLFFBQVE7U0FDdkIsQ0FBQTtJQUNILENBQUM7SUFDRCxjQUFjO1FBQ1osSUFBSSxZQUFZLEdBQWdCLElBQUksV0FBVyxDQUFDO1lBQzlDLFlBQVksRUFBRSxLQUFLO1lBQ25CLEtBQUssRUFBRSxPQUFPO1lBQ2QsTUFBTSxFQUFFLE9BQU87WUFDZixNQUFNLEVBQUUsY0FBYyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLEVBQUU7WUFDdEUsZUFBZSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUU7WUFDL0QsYUFBYSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUU7WUFDN0QsY0FBYyxFQUFFLE9BQU87WUFDdkIsWUFBWSxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDO1lBRXRFLHNCQUFzQixFQUFFLEVBQUU7U0FDM0IsQ0FBQyxDQUFBO1FBQ0YsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLEdBQUcsWUFBWSxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFBO0lBQzdELENBQUM7SUFDRCxhQUFhO1FBQ1gsT0FBTztZQUNMLFFBQVEsRUFBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCO1lBQ2hELFNBQVMsRUFBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCO1NBQ25ELENBQUE7SUFDSCxDQUFDOzs0SEE1SVUsOEJBQThCO2dIQUE5Qiw4QkFBOEIsa2JDckIzQyxnN0JBaUJBOzRGRElhLDhCQUE4QjtrQkFOMUMsU0FBUzsrQkFDRSx5QkFBeUIsbUJBR2xCLHVCQUF1QixDQUFDLE1BQU07NElBR3RDLElBQUk7c0JBQVosS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUdHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFLRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIFNpbXBsZUNoYW5nZXMsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21ldENoYXQgfSBmcm9tICdAY29tZXRjaGF0L2NoYXQtc2RrLWphdmFzY3JpcHQnO1xuaW1wb3J0IHsgICBDb21ldENoYXRTb3VuZE1hbmFnZXIsIE91dGdvaW5nQ2FsbFN0eWxlIH0gZnJvbSBcIkBjb21ldGNoYXQvdWlraXQtc2hhcmVkXCI7XG5pbXBvcnQgeyBBdmF0YXJTdHlsZSwgQ2FyZFN0eWxlLCBJY29uU3R5bGUgfSBmcm9tICdAY29tZXRjaGF0L3Vpa2l0LWVsZW1lbnRzJ1xuaW1wb3J0IHsgQ29tZXRDaGF0VGhlbWVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vQ29tZXRDaGF0VGhlbWUuc2VydmljZSc7XG5pbXBvcnQgeyAgbG9jYWxpemUsIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLCBmb250SGVscGVyLCBJY29uQnV0dG9uQWxpZ25tZW50IH0gZnJvbSAnQGNvbWV0Y2hhdC91aWtpdC1yZXNvdXJjZXMnO1xuLyoqXG4qXG4qIENvbWV0Q2hhdE91dGdvaW5nQ2FsbENvbXBvbmVudCBpcyBhIGNvbXBvbmVudCB3aGljIHNob3dzIG91dGdvaW5nIGNhbGwgc2NyZWVuIGZvciBkZWZhdWx0IGF1ZGlvIGFuZCB2aWRlbyBjYWxsLlxuKlxuKiBAdmVyc2lvbiAxLjAuMFxuKiBAYXV0aG9yIENvbWV0Q2hhdFRlYW1cbiogQGNvcHlyaWdodCDCqSAyMDIyIENvbWV0Q2hhdCBJbmMuXG4qXG4qL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImNvbWV0Y2hhdC1vdXRnb2luZy1jYWxsXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vY29tZXRjaGF0LW91dGdvaW5nLWNhbGwuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL2NvbWV0Y2hhdC1vdXRnb2luZy1jYWxsLmNvbXBvbmVudC5zY3NzXCJdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBDb21ldENoYXRPdXRnb2luZ0NhbGxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGNhbGwhOiBDb21ldENoYXQuQ2FsbDtcbiAgQElucHV0KCkgZGVjbGluZUJ1dHRvblRleHQ6IHN0cmluZyA9IGxvY2FsaXplKFwiQ0FOQ0VMXCIpO1xuICBASW5wdXQoKSBkZWNsaW5lQnV0dG9uSWNvblVSTDogc3RyaW5nID0gXCJhc3NldHMvY2xvc2UyeC5zdmdcIjtcbiAgQElucHV0KCkgY3VzdG9tVmlldyE6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBJbnB1dCgpIG9uRXJyb3I6IChlcnJvcjogQ29tZXRDaGF0LkNvbWV0Q2hhdEV4Y2VwdGlvbikgPT4gdm9pZCA9IChlcnJvcjogQ29tZXRDaGF0LkNvbWV0Q2hhdEV4Y2VwdGlvbikgPT4ge1xuICAgIGNvbnNvbGUubG9nKGVycm9yKVxuICB9XG4gIEBJbnB1dCgpIGRpc2FibGVTb3VuZEZvckNhbGxzOmJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgY3VzdG9tU291bmRGb3JDYWxscyE6c3RyaW5nO1xuICBASW5wdXQoKSBhdmF0YXJTdHlsZTogQXZhdGFyU3R5bGUgPSB7XG4gICAgYm9yZGVyUmFkaXVzOiBcIjUwJVwiLFxuICAgIHdpZHRoOiBcIjE4MHB4XCIsXG4gICAgICBoZWlnaHQ6IFwiMTgwcHhcIixcbiAgfTtcbiAgQElucHV0KCkgb3V0Z29pbmdDYWxsU3R5bGU6IE91dGdvaW5nQ2FsbFN0eWxlID0ge307XG4gIEBJbnB1dCgpIG9uQ2xvc2VDbGlja2VkITooKCk9PnZvaWQpIHwgbnVsbDtcbiAgIGJ1dHRvblN0eWxlOmFueSA9IHtcbiAgICBoZWlnaHQ6IFwiZml0LWNvbnRlbnRcIixcbiAgICB3aWR0aDogXCJmaXQtY29udGVudFwiLFxuICAgIGJ1dHRvblRleHRGb250OiBcIjQwMCAxMnB4IEludGVyXCIsXG4gICAgYnV0dG9uVGV4dENvbG9yOiBcIlJHQkEoMjAsIDIwLCAyMCwgMC41OClcIixcbiAgICBib3JkZXJSYWRpdXM6IFwiOHB4XCIsXG4gICAgYm9yZGVyOiBcIm5vbmVcIixcbiAgICBidXR0b25JY29uVGludDogXCJ3aGl0ZVwiLFxuICAgIGJhY2tncm91bmQ6IFwiXCIsXG4gICAgaWNvbkJhY2tncm91bmQ6XCJyZWRcIixcbiAgICBwYWRkaW5nOlwiMTJweFwiXG4gIH07XG5cbiAgc3VidGl0bGVUZXh0OnN0cmluZyA9IGxvY2FsaXplKFwiQ0FMTElOR1wiKVxuICBjYXJkU3R5bGU6Q2FyZFN0eWxlID0ge1xuICAgIGhlaWdodDogXCIxMDAlXCIsXG4gICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgIGJvcmRlcjogXCJpbmhlcml0ZVwiLFxuICAgIGJvcmRlclJhZGl1czogXCJpbmhlcml0ZVwiLFxuICAgIGJhY2tncm91bmQ6IFwidHJhbnNwYXJlbnRcIixcbiAgICB0aXRsZUZvbnQ6XCI3MDAgMjJweCBJbnRlclwiLFxuICAgIHRpdGxlQ29sb3I6XCJibGFja1wiLFxuICB9XG4gIGljb25BbGlnbm1lbnQ6SWNvbkJ1dHRvbkFsaWdubWVudCA9IEljb25CdXR0b25BbGlnbm1lbnQudG9wXG4gIGljb25TdHlsZTogSWNvblN0eWxlID0ge1xuICAgIGhlaWdodDogXCIxNnB4XCIsXG4gICAgd2lkdGg6IFwiMTZweFwiLFxuICAgIGljb25UaW50OiBcIlJHQkEoMjAsIDIwLCAyMCwgMC42OClcIlxuICB9XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJpdmF0ZSB0aGVtZVNlcnZpY2U6IENvbWV0Q2hhdFRoZW1lU2VydmljZSkgeyAgfVxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICBpZihjaGFuZ2VzW1wiY2FsbFwiXSAmJiBjaGFuZ2VzW1wiY2FsbFwiXS5jdXJyZW50VmFsdWUpe1xuICAgICAgICBpZighdGhpcy5kaXNhYmxlU291bmRGb3JDYWxscyl7XG5cbiAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5wbGF5QXVkaW8oKVxuICAgICAgIH0pO1xuICAgICB9XG4gICAgIHRoaXMuc2V0VGhlbWVTdHlsZSgpXG4gICB9XG4gIH1cbiAgbmdPbkluaXQoKTogdm9pZCB7XG5cbiAgfVxuICBwbGF5QXVkaW8oKSB7XG4gICAgaWYgKHRoaXMuY3VzdG9tU291bmRGb3JDYWxscykge1xuICAgICAgQ29tZXRDaGF0U291bmRNYW5hZ2VyLnBsYXkoQ29tZXRDaGF0U291bmRNYW5hZ2VyLlNvdW5kLm91dGdvaW5nQ2FsbCwgdGhpcy5jdXN0b21Tb3VuZEZvckNhbGxzKVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIENvbWV0Q2hhdFNvdW5kTWFuYWdlci5wbGF5KENvbWV0Q2hhdFNvdW5kTWFuYWdlci5Tb3VuZC5vdXRnb2luZ0NhbGwpXG4gICAgfVxuICB9XG4gIG5nT25EZXN0cm95KCl7XG4gICAgQ29tZXRDaGF0U291bmRNYW5hZ2VyLnBhdXNlKClcbiAgfVxuICBvbkNsb3NlID0oKT0+e1xuICAgIENvbWV0Q2hhdFNvdW5kTWFuYWdlci5wYXVzZSgpXG4gaWYodGhpcy5vbkNsb3NlQ2xpY2tlZCl7XG4gIHRoaXMub25DbG9zZUNsaWNrZWQoKVxuXG4gfVxuICB9XG4gIGdldEF2YXRhclVSTCgpe1xuICAgIHJldHVybiB0aGlzLmNhbGw/LmdldFJlY2VpdmVyVHlwZSgpID09IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VSZWNlaXZlclR5cGUudXNlciA/ICh0aGlzLmNhbGw/LmdldFJlY2VpdmVyKCkgYXMgQ29tZXRDaGF0LlVzZXIpPy5nZXRBdmF0YXIoKSA6ICh0aGlzLmNhbGw/LmdldFJlY2VpdmVyKCkgYXMgQ29tZXRDaGF0Lkdyb3VwKT8uZ2V0SWNvbigpXG4gIH1cbiAgc2V0VGhlbWVTdHlsZSgpIHtcbiAgICB0aGlzLnNldEF2YXRhclN0eWxlKClcbiAgICB0aGlzLnNldE91dGdvaW5nQ2FsbFN0eWxlKClcbiAgICB0aGlzLmNhcmRTdHlsZS50aXRsZUNvbG9yID0gdGhpcy5vdXRnb2luZ0NhbGxTdHlsZS50aXRsZVRleHRDb2xvclxuICAgIHRoaXMuY2FyZFN0eWxlLnRpdGxlRm9udCA9IHRoaXMub3V0Z29pbmdDYWxsU3R5bGUudGl0bGVUZXh0Rm9udFxuICB9XG4gIHNldE91dGdvaW5nQ2FsbFN0eWxlKCl7XG4gICAgbGV0IGRlZmF1bHRTdHlsZTogT3V0Z29pbmdDYWxsU3R5bGUgPSBuZXcgT3V0Z29pbmdDYWxsU3R5bGUoe1xuICAgICAgd2lkdGg6IFwiMzYwcHhcIixcbiAgICAgIGhlaWdodDogXCI1ODFweFwiLFxuICAgICAgYmFja2dyb3VuZDogdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRCYWNrZ3JvdW5kKCksXG4gICAgICBib3JkZXI6IFwibm9uZVwiLFxuICAgICAgYm9yZGVyUmFkaXVzOiBcIjhweFwiLFxuICAgICAgdGl0bGVUZXh0Rm9udDogZm9udEhlbHBlcih0aGlzLnRoZW1lU2VydmljZS50aGVtZS50eXBvZ3JhcGh5LnRpdGxlMSksXG4gICAgICB0aXRsZVRleHRDb2xvcjogdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQoKSxcbiAgICAgIHN1YnRpdGxlVGV4dEZvbnQ6IGZvbnRIZWxwZXIodGhpcy50aGVtZVNlcnZpY2UudGhlbWUudHlwb2dyYXBoeS5zdWJ0aXRsZTEpLFxuICAgICAgc3VidGl0bGVUZXh0Q29sb3I6IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NjAwKCksXG4gICAgICBkZWNsaW5lQnV0dG9uVGV4dEZvbnQ6Zm9udEhlbHBlcih0aGlzLnRoZW1lU2VydmljZS50aGVtZS50eXBvZ3JhcGh5LmNhcHRpb24xKSxcbiAgICAgIGRlY2xpbmVCdXR0b25UZXh0Q29sb3I6dGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ2MDAoKSxcbiAgICAgIGRlY2xpbmVCdXR0b25JY29uVGludDp0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudChcImRhcmtcIiksXG4gICAgICBkZWNsaW5lQnV0dG9uSWNvbkJhY2tncm91bmQ6dGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRFcnJvcigpXG4gICAgfSlcbiAgICB0aGlzLm91dGdvaW5nQ2FsbFN0eWxlID0geyAuLi5kZWZhdWx0U3R5bGUsIC4uLnRoaXMub3V0Z29pbmdDYWxsU3R5bGUgfVxuICAgIHRoaXMuYnV0dG9uU3R5bGUgPSB7XG4gICAgICBoZWlnaHQ6IFwiZml0LWNvbnRlbnRcIixcbiAgICAgIHdpZHRoOiBcImZpdC1jb250ZW50XCIsXG4gICAgICBidXR0b25UZXh0Rm9udDogdGhpcy5vdXRnb2luZ0NhbGxTdHlsZS5kZWNsaW5lQnV0dG9uVGV4dEZvbnQsXG4gICAgICBidXR0b25UZXh0Q29sb3I6IHRoaXMub3V0Z29pbmdDYWxsU3R5bGUuZGVjbGluZUJ1dHRvblRleHRDb2xvcixcbiAgICAgIGJvcmRlclJhZGl1czogXCI4cHhcIixcbiAgICAgIGJvcmRlcjogXCJub25lXCIsXG4gICAgICBidXR0b25JY29uVGludDogdGhpcy5vdXRnb2luZ0NhbGxTdHlsZS5kZWNsaW5lQnV0dG9uSWNvblRpbnQsXG4gICAgICBiYWNrZ3JvdW5kOiBcIlwiLFxuICAgICAgaWNvbkJhY2tncm91bmQ6dGhpcy5vdXRnb2luZ0NhbGxTdHlsZS5kZWNsaW5lQnV0dG9uSWNvbkJhY2tncm91bmQsXG4gICAgICBwYWRkaW5nOlwiMTJweFwiLFxuICAgICAgZGlzcGxheTpcImZsZXhcIixcbiAgICAgIGZsZXhEaXJlY3Rpb246XCJjb2x1bW5cIlxuICAgIH1cbiAgfVxuICBzZXRBdmF0YXJTdHlsZSgpIHtcbiAgICBsZXQgZGVmYXVsdFN0eWxlOiBBdmF0YXJTdHlsZSA9IG5ldyBBdmF0YXJTdHlsZSh7XG4gICAgICBib3JkZXJSYWRpdXM6IFwiNTAlXCIsXG4gICAgICB3aWR0aDogXCIxODBweFwiLFxuICAgICAgaGVpZ2h0OiBcIjE4MHB4XCIsXG4gICAgICBib3JkZXI6IGAxcHggc29saWQgICR7dGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQxMDAoKX1gLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudDcwMCgpLFxuICAgICAgbmFtZVRleHRDb2xvcjogdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ5MDAoKSxcbiAgICAgIGJhY2tncm91bmRTaXplOiBcImNvdmVyXCIsXG4gICAgICBuYW1lVGV4dEZvbnQ6IGZvbnRIZWxwZXIodGhpcy50aGVtZVNlcnZpY2UudGhlbWUudHlwb2dyYXBoeS5zdWJ0aXRsZTEpLFxuICAgICAgXG4gICAgICBvdXRlclZpZXdCb3JkZXJTcGFjaW5nOiBcIlwiLFxuICAgIH0pXG4gICAgdGhpcy5hdmF0YXJTdHlsZSA9IHsgLi4uZGVmYXVsdFN0eWxlLCAuLi50aGlzLmF2YXRhclN0eWxlIH1cbiAgfVxuICBzdWJ0aXRsZVN0eWxlKCl7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRleHRGb250OnRoaXMub3V0Z29pbmdDYWxsU3R5bGUuc3VidGl0bGVUZXh0Rm9udCxcbiAgICAgIHRleHRDb2xvcjp0aGlzLm91dGdvaW5nQ2FsbFN0eWxlLnN1YnRpdGxlVGV4dENvbG9yXG4gICAgfVxuICB9XG4gIHdyYXBwZXJTdHlsZSA9ICgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgaGVpZ2h0OiB0aGlzLm91dGdvaW5nQ2FsbFN0eWxlLmhlaWdodCxcbiAgICAgIHdpZHRoOiB0aGlzLm91dGdvaW5nQ2FsbFN0eWxlLndpZHRoLFxuICAgICAgYmFja2dyb3VuZDogdGhpcy5vdXRnb2luZ0NhbGxTdHlsZS5iYWNrZ3JvdW5kLFxuICAgICAgYm9yZGVyOiB0aGlzLm91dGdvaW5nQ2FsbFN0eWxlLmJvcmRlcixcbiAgICAgIGJvcmRlclJhZGl1czogdGhpcy5vdXRnb2luZ0NhbGxTdHlsZS5ib3JkZXJSYWRpdXNcbiAgICB9XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cImNjLW91dGdvaW5nLWNhbGxfX3dyYXBwZXJcIiBbbmdTdHlsZV09XCJ3cmFwcGVyU3R5bGUoKVwiPlxuICAgIDxkaXYgY2xhc3M9XCJjYy1vdXRnb2luZy1jYWxsX19jdXN0b20tdmlld1wiICpuZ0lmPVwiY3VzdG9tVmlldzsgZWxzZSBlbHNlQmxvY2s7XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjdXN0b21WaWV3XCI+XG5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG48bmctdGVtcGxhdGUgI2Vsc2VCbG9jaz5cbiAgICA8Y29tZXRjaGF0LWNhcmQgW3RpdGxlXT1cImNhbGwuZ2V0UmVjZWl2ZXIoKS5nZXROYW1lKClcIiBbY2FyZFN0eWxlXT1cImNhcmRTdHlsZVwiIFthdmF0YXJOYW1lXT1cImNhbGwuZ2V0UmVjZWl2ZXIoKS5nZXROYW1lKClcIiBbYXZhdGFyVVJMXT1cImdldEF2YXRhclVSTCgpXCIgW2F2YXRhclN0eWxlXT1cImF2YXRhclN0eWxlXCIgPlxuICAgICAgICA8Y29tZXRjaGF0LWxhYmVsIHNsb3Q9XCJzdWJ0aXRsZVZpZXdcIiBbbGFiZWxTdHlsZV09XCJzdWJ0aXRsZVN0eWxlKClcIiBbdGV4dF09XCJzdWJ0aXRsZVRleHRcIj4gPC9jb21ldGNoYXQtbGFiZWw+XG4gICAgICAgIDxkaXYgc2xvdD1cImJvdHRvbVZpZXdcIj5cbiAgICAgICAgICAgIDxjb21ldGNoYXQtaWNvbi1idXR0b24gKGNjLWJ1dHRvbi1jbGlja2VkKT1cIm9uQ2xvc2UoKVwiIFt0ZXh0XT1cImRlY2xpbmVCdXR0b25UZXh0XCIgW2ljb25VUkxdPVwiZGVjbGluZUJ1dHRvbkljb25VUkxcIiBbYWxpZ25tZW50XT1cImljb25BbGlnbm1lbnRcIiBbYnV0dG9uU3R5bGVdPVwiYnV0dG9uU3R5bGVcIj5cblxuICAgICAgICAgICAgPC9jb21ldGNoYXQtaWNvbi1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8L2NvbWV0Y2hhdC1jYXJkPlxuPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
|
package/esm2020/CometChatAddMembers/cometchat-add-members/cometchat-add-members.component.mjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Component, Input, ChangeDetectionStrategy } from "@angular/core";
|
|
2
|
-
import { CometChat } from "@cometchat
|
|
3
|
-
import { AddMembersStyle,
|
|
2
|
+
import { CometChat } from "@cometchat/chat-sdk-javascript";
|
|
3
|
+
import { AddMembersStyle, UsersStyle, CometChatUIKitUtility } from '@cometchat/uikit-shared';
|
|
4
4
|
import '@cometchat/uikit-elements';
|
|
5
|
-
import { fontHelper, localize, CometChatGroupEvents, CometChatUIKitConstants } from '@cometchat/uikit-resources';
|
|
5
|
+
import { fontHelper, localize, CometChatGroupEvents, CometChatUIKitConstants, TitleAlignment, SelectionMode } from '@cometchat/uikit-resources';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
import * as i1 from "../../CometChatTheme.service";
|
|
8
8
|
import * as i2 from "../../CometChatUsers/cometchat-users/cometchat-users.component";
|
|
@@ -81,9 +81,9 @@ export class CometChatAddMembersComponent {
|
|
|
81
81
|
/**
|
|
82
82
|
* @param {string} uid
|
|
83
83
|
*/
|
|
84
|
-
this.addRemoveUsers = (user) => {
|
|
84
|
+
this.addRemoveUsers = (user, selected) => {
|
|
85
85
|
if (this.onSelect) {
|
|
86
|
-
this.onSelect(user);
|
|
86
|
+
this.onSelect(user, selected);
|
|
87
87
|
}
|
|
88
88
|
else {
|
|
89
89
|
let key = this.membersList.findIndex((m) => m.getUid() === user.getUid());
|
|
@@ -113,6 +113,9 @@ export class CometChatAddMembersComponent {
|
|
|
113
113
|
const matchingUser = this.membersList.find((user) => user.getUid() === key);
|
|
114
114
|
if (matchingUser) {
|
|
115
115
|
this.createActionMessage(matchingUser);
|
|
116
|
+
if (!matchingUser.getScope()) {
|
|
117
|
+
matchingUser.setScope(CometChatUIKitConstants.groupMemberScope.participant);
|
|
118
|
+
}
|
|
116
119
|
this.addedMembers.push(matchingUser);
|
|
117
120
|
}
|
|
118
121
|
}
|
|
@@ -356,4 +359,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
356
359
|
}], avatarStyle: [{
|
|
357
360
|
type: Input
|
|
358
361
|
}] } });
|
|
359
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tZXRjaGF0LWFkZC1tZW1iZXJzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NoYXQtdWlraXQtYW5ndWxhci9zcmMvQ29tZXRDaGF0QWRkTWVtYmVycy9jb21ldGNoYXQtYWRkLW1lbWJlcnMvY29tZXRjaGF0LWFkZC1tZW1iZXJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NoYXQtdWlraXQtYW5ndWxhci9zcmMvQ29tZXRDaGF0QWRkTWVtYmVycy9jb21ldGNoYXQtYWRkLW1lbWJlcnMvY29tZXRjaGF0LWFkZC1tZW1iZXJzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVcsS0FBSyxFQUFxQix1QkFBdUIsRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUNuSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGVBQWUsRUFBQyxjQUFjLEVBQUMsYUFBYSxFQUFFLFVBQVUsRUFBQyxxQkFBcUIsRUFBYyxNQUFNLHlCQUF5QixDQUFDO0FBQ3JJLE9BQU8sMkJBQTJCLENBQUE7QUFDbEMsT0FBTyxFQUFpQixVQUFVLEVBQUUsUUFBUSxFQUFrQixvQkFBb0IsRUFBRSx1QkFBdUIsRUFBQyxNQUFNLDRCQUE0QixDQUFBOzs7OztBQUc5STs7Ozs7Ozs7RUFRRTtBQU9GLE1BQU0sT0FBTyw0QkFBNEI7SUE4Q3ZDLFlBQW9CLEdBQXNCLEVBQVMsWUFBa0M7UUFBakUsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFBUyxpQkFBWSxHQUFaLFlBQVksQ0FBc0I7UUF4QzVFLHlCQUFvQixHQUFXLEtBQUssQ0FBQztRQUdyQyxzQkFBaUIsR0FBVSx1QkFBdUIsQ0FBQTtRQUNsRCx1QkFBa0IsR0FBVSxvQkFBb0IsQ0FBQTtRQUNoRCxtQkFBYyxHQUFTLElBQUksQ0FBQztR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O2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBR0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLHVCQUF1QjtzQkFBL0IsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUdHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgIElucHV0LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIFRlbXBsYXRlUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENvbWV0Q2hhdCB9IGZyb20gXCJAY29tZXRjaGF0LXByby9jaGF0XCI7XG5pbXBvcnQgeyBBZGRNZW1iZXJzU3R5bGUsVGl0bGVBbGlnbm1lbnQsU2VsZWN0aW9uTW9kZSwgVXNlcnNTdHlsZSxDb21ldENoYXRVSUtpdFV0aWxpdHksIEJhc2VTdHlsZSAgfSBmcm9tICdAY29tZXRjaGF0L3Vpa2l0LXNoYXJlZCc7XG5pbXBvcnQgJ0Bjb21ldGNoYXQvdWlraXQtZWxlbWVudHMnXG5pbXBvcnQge0NvbWV0Q2hhdFRoZW1lLCBmb250SGVscGVyLCBsb2NhbGl6ZSxDb21ldENoYXRPcHRpb24sIENvbWV0Q2hhdEdyb3VwRXZlbnRzLCBDb21ldENoYXRVSUtpdENvbnN0YW50c30gZnJvbSAnQGNvbWV0Y2hhdC91aWtpdC1yZXNvdXJjZXMnXG5pbXBvcnQgIHsgQXZhdGFyU3R5bGUsIExpc3RJdGVtU3R5bGV9IGZyb20gJ0Bjb21ldGNoYXQvdWlraXQtZWxlbWVudHMnXG5pbXBvcnQgeyBDb21ldENoYXRUaGVtZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vQ29tZXRDaGF0VGhlbWUuc2VydmljZVwiO1xuLyoqXG4qXG4qIENvbWV0Q2hhdEFkZE1lbWJlcnNDb21wb25lbnRDb21wb25lbnQgaXMgdXNlZCB0byByZW5kZXIgZ3JvdXAgbWVtYmVycyB0byBhZGRcbipcbiogQHZlcnNpb24gMS4wLjBcbiogQGF1dGhvciBDb21ldENoYXRUZWFtXG4qIEBjb3B5cmlnaHQgwqkgMjAyMiBDb21ldENoYXQgSW5jLlxuKlxuKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJjb21ldGNoYXQtYWRkLW1lbWJlcnNcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9jb21ldGNoYXQtYWRkLW1lbWJlcnMuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL2NvbWV0Y2hhdC1hZGQtbWVtYmVycy5jb21wb25lbnQuc2Nzc1wiXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOkNoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBDb21ldENoYXRBZGRNZW1iZXJzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSB1c2Vyc1JlcXVlc3RCdWlsZGVyITogQ29tZXRDaGF0LlVzZXJzUmVxdWVzdEJ1aWxkZXI7XG4gIEBJbnB1dCgpIHNlYXJjaFJlcXVlc3RCdWlsZGVyITogQ29tZXRDaGF0LlVzZXJzUmVxdWVzdEJ1aWxkZXI7XG4gIEBJbnB1dCgpIHN1YnRpdGxlVmlldyE6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBJbnB1dCgpIGxpc3RJdGVtVmlldyE6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBJbnB1dCgpIGRpc2FibGVVc2Vyc1ByZXNlbmNlOmJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgbWVudSE6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBJbnB1dCgpICAgb3B0aW9ucyE6ICgobWVtYmVyOkNvbWV0Q2hhdC5Vc2VyKT0+Q29tZXRDaGF0T3B0aW9uW10pIHwgbnVsbDtcbiAgQElucHV0KCkgYmFja0J1dHRvbkljb25VUkw6c3RyaW5nID0gXCJhc3NldHMvYmFja2J1dHRvbi5zdmdcIlxuICBASW5wdXQoKSBjbG9zZUJ1dHRvbkljb25VUkw6c3RyaW5nID0gXCJhc3NldHMvY2xvc2UyeC5zdmdcIlxuICBASW5wdXQoKSBzaG93QmFja0J1dHRvbjpib29sZWFuPXRydWU7XG4gIEBJbnB1dCgpIGhpZGVTZXBhcmF0b3I6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc2VsZWN0aW9uTW9kZTogU2VsZWN0aW9uTW9kZSA9IFNlbGVjdGlvbk1vZGUubXVsdGlwbGU7XG4gIEBJbnB1dCgpIHNlYXJjaFBsYWNlaG9sZGVyOiBzdHJpbmcgPSBcIlNlYXJjaCBNZW1iZXJzXCI7XG4gIEBJbnB1dCgpIGhpZGVFcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzZWFyY2hJY29uVVJMOiBzdHJpbmcgPSBcImFzc2V0cy9zZWFyY2guc3ZnXCI7XG4gIEBJbnB1dCgpIGhpZGVTZWFyY2g6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZyA9IGxvY2FsaXplKFwiQUREX01FTUJFUlNcIik7XG4gIEBJbnB1dCgpIG9uRXJyb3I6KChlcnJvcjpDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKT0+dm9pZCkgfCBudWxsID0gKGVycm9yOkNvbWV0Q2hhdC5Db21ldENoYXRFeGNlcHRpb24pPT57XG4gICAgY29uc29sZS5sb2coZXJyb3IpXG4gIH1cbiAgQElucHV0KCkgb25CYWNrITooKT0+dm9pZDtcbiAgQElucHV0KCkgb25DbG9zZSE6KCk9PnZvaWQ7XG4gIEBJbnB1dCgpIG9uU2VsZWN0ITogKHVzZXI6Q29tZXRDaGF0LlVzZXIpPT52b2lkO1xuXG4gIEBJbnB1dCgpIGJ1dHRvblRleHQ6c3RyaW5nID0gbG9jYWxpemUoXCJBRERfTUVNQkVSU1wiKTtcbiAgQElucHV0KCkgZ3JvdXAhOkNvbWV0Q2hhdC5Hcm91cDtcbiAgQElucHV0KCkgZW1wdHlTdGF0ZVZpZXchOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBASW5wdXQoKSBlcnJvclN0YXRlVmlldyE6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBJbnB1dCgpIGxvYWRpbmdJY29uVVJMOiBzdHJpbmcgPSBcImFzc2V0cy9TcGlubmVyLnN2Z1wiO1xuICBASW5wdXQoKSBsaXN0SXRlbVN0eWxlOkxpc3RJdGVtU3R5bGUgPSB7fVxuICBASW5wdXQoKSBzaG93U2VjdGlvbkhlYWRlcjogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzZWN0aW9uSGVhZGVyRmllbGQ6IHN0cmluZyA9IFwibmFtZVwiO1xuICBASW5wdXQoKSBsb2FkaW5nU3RhdGVWaWV3ITogVGVtcGxhdGVSZWY8YW55PjtcbiAgQElucHV0KCkgZW1wdHlTdGF0ZVRleHQ6IHN0cmluZyA9IGxvY2FsaXplKFwiTk9fR1JPVVBTX0ZPVU5EXCIpXG4gIEBJbnB1dCgpIGVycm9yU3RhdGVUZXh0OiBzdHJpbmcgPSBsb2NhbGl6ZShcIlNPTUVUSElOR19XUk9OR1wiKTtcbiAgQElucHV0KCkgb25BZGRNZW1iZXJzQnV0dG9uQ2xpY2shOihndWlkOnN0cmluZywgbWVtYmVyczpDb21ldENoYXQuVXNlcltdKT0+dm9pZDtcbiAgQElucHV0KCkgdGl0bGVBbGlnbm1lbnQ6IFRpdGxlQWxpZ25tZW50ID0gVGl0bGVBbGlnbm1lbnQuY2VudGVyO1xuICB0aXRsZUFsaWdubWVudEVudW06dHlwZW9mIFRpdGxlQWxpZ25tZW50ID0gVGl0bGVBbGlnbm1lbnRcbiAgc2VsZWN0aW9ubW9kZUVudW06IHR5cGVvZiBTZWxlY3Rpb25Nb2RlID0gU2VsZWN0aW9uTW9kZTtcbiAgQElucHV0KCkgYWRkTWVtYmVyc1N0eWxlOiBBZGRNZW1iZXJzU3R5bGUgPSB7fTtcbiAgQElucHV0KCkgU3RhdHVzSW5kaWNhdG9yU3R5bGU6QmFzZVN0eWxlID0ge31cbiAgQElucHV0KCkgYXZhdGFyU3R5bGU6QXZhdGFyU3R5bGUgPSB7fVxuICBsb2dnZWRJblVzZXIhOkNvbWV0Q2hhdC5Vc2VyIHwgbnVsbDtcbiAgYWN0aW9uTWVzc2FnZXNMaXN0OkNvbWV0Q2hhdC5BY3Rpb25bXSA9IFtdXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZixwcml2YXRlIHRoZW1lU2VydmljZTpDb21ldENoYXRUaGVtZVNlcnZpY2UpIHsgIH1cbiAgYWRkTWVtYmVyQnV0dG9uU3R5bGU6YW55ID0ge1xuICAgIGhlaWdodDpcIjEwMCVcIixcbiAgICB3aWR0aDpcIjEwMCVcIixcbiAgICBiYWNrZ3JvdW5kOlwicmdiKDUxLCAxNTMsIDI1NSlcIixcbiAgICBwYWRkaW5nOlwiOHB4XCIsXG4gICAgYnV0dG9uVGV4dENvbG9yOlwid2hpdGVcIixcbiAgICBidXR0b25UZXh0Rm9udDpcIlwiLFxuICAgIGRpc3BsYXk6XCJmbGV4XCIsXG4gICAganVzdGlmeUNvbnRlbnQ6XCJjZW50ZXJcIixcbiAgICBhbGlnbkl0ZW1zOlwiY2VudGVyXCIsXG4gICAgYm9yZGVyOlwibm9uZVwiLFxuICAgIGJvcmRlclJhZGl1czpcIjhweFwiXG59XG4gIHNlYXJjaEtleXdvcmQ6IHN0cmluZyA9IFwiXCI7XG4gIHB1YmxpYyB1c2Vyc1JlcXVlc3Q6IGFueTtcbiAgcHVibGljIHRpbWVvdXQ6IGFueTtcbiAgcHVibGljIHVzZXJzTGlzdDogQ29tZXRDaGF0LlVzZXJbXSA9IFtdO1xuICBwdWJsaWMgdXNlckxpc3RlbmVySWQ6IHN0cmluZyA9IFwidXNlcmxpc3RfXCIgKyBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgdXNlcnNTdHlsZTogVXNlcnNTdHlsZSA9IHtcbiAgICB3aWR0aDogXCIxMDAlXCIsXG4gICAgaGVpZ2h0OiBcIjEwMCVcIixcbiAgICBiYWNrZ3JvdW5kOiBcIlwiLFxuICAgIGJvcmRlcjogXCJcIixcbiAgICBib3JkZXJSYWRpdXM6IFwiXCIsXG4gICAgc2VhcmNoQmFja2dyb3VuZDogXCIjZWZlZmVmXCIsXG4gICAgb25saW5lU3RhdHVzQ29sb3I6IFwiXCIsXG4gICAgc2VwYXJhdG9yQ29sb3I6IFwicmdiKDIyMiAyMjIgMjIyIC8gNDYlKVwiLFxuICAgIHNlY3Rpb25IZWFkZXJUZXh0Rm9udDogXCJcIixcbiAgICBzZWN0aW9uSGVhZGVyVGV4dENvbG9yOiBcIlwiXG4gIH07XG4gIG1lbWJlcnNMaXN0OmFueVtdID0gW107XG4gIGFkZGVkTWVtYmVyczpDb21ldENoYXQuR3JvdXBNZW1iZXJbXSA9IFtdXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0VXNlcnNTdHlsZSgpXG4gICAgdGhpcy5zZXRBZGRNZW1iZXJzU3R5bGUoKTtcbiAgICB0aGlzLm1lbWJlcnNMaXN0ID0gW11cbiAgICB0aGlzLmFkZGVkTWVtYmVycyA9IFtdXG4gICAgdGhpcy5hY3Rpb25NZXNzYWdlc0xpc3QgPSBbXVxuXG4gICAgQ29tZXRDaGF0LmdldExvZ2dlZGluVXNlcigpLnRoZW4oKHVzZXI6IENvbWV0Q2hhdC5Vc2VyIHwgbnVsbCkgPT4ge1xuICAgICAgdGhpcy5sb2dnZWRJblVzZXIgPSB1c2VyO1xuICAgIH0pLmNhdGNoKChlcnJvcjpDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKT0+e1xuICAgICAgaWYodGhpcy5vbkVycm9yKXtcbiAgICAgICAgdGhpcy5vbkVycm9yKGVycm9yKVxuICAgICAgfVxuICAgIH0pXG4gIH1cbiAgLyoqXG4gICAqIEBwYXJhbSAge3N0cmluZ30gdWlkXG4gICAqL1xuICBhZGRSZW1vdmVVc2VycyA9ICh1c2VyOkNvbWV0Q2hhdC5Vc2VyKT0+e1xuIGlmKHRoaXMub25TZWxlY3Qpe1xuICAgdGhpcy5vblNlbGVjdCh1c2VyKVxuIH1cblxuIGVsc2V7XG4gIGxldCBrZXkgPSAgdGhpcy5tZW1iZXJzTGlzdC5maW5kSW5kZXgoXG4gICAgKG06YW55KSA9PiBtLmdldFVpZCgpID09PSB1c2VyLmdldFVpZCgpXG4gICk7XG4gIGlmKGtleSA+PSAwKXtcbiAgICB0aGlzLm1lbWJlcnNMaXN0LnNwbGljZShrZXksMSlcbiAgfVxuICBlbHNle1xuICAgIGxldCBtZW1iZXI6Q29tZXRDaGF0Lkdyb3VwTWVtYmVyID0gbmV3IENvbWV0Q2hhdC5Hcm91cE1lbWJlcih1c2VyLmdldFVpZCgpLCBDb21ldENoYXRVSUtpdENvbnN0YW50cy5ncm91cE1lbWJlclNjb3BlLnBhcnRpY2lwYW50KVxuICAgIG1lbWJlci5zZXROYW1lKHVzZXIuZ2V0TmFtZSgpKVxuICAgIG1lbWJlci5zZXRHdWlkKHRoaXMuZ3JvdXAuZ2V0R3VpZCgpKVxuXG4gICAgdGhpcy5tZW1iZXJzTGlzdC5wdXNoKG1lbWJlcilcbiAgfVxuIH1cbiB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuICBjbG9zZUNsaWNrZWQoKXtcbiAgICBpZih0aGlzLm9uQ2xvc2Upe1xuICAgICAgdGhpcy5vbkNsb3NlKClcbiAgICB9XG4gIH1cbiAgYmFja0NsaWNrZWQoKXtcbiAgICBpZih0aGlzLm9uQmFjayl7XG4gICAgICB0aGlzLm9uQmFjaygpXG4gICAgfVxuICB9XG4gIGFkZE1lbWJlcnNUb0dyb3VwID0gKCk9PntcbiAgICBpZih0aGlzLmdyb3VwICYmIHRoaXMubWVtYmVyc0xpc3QubGVuZ3RoID4gMCl7XG4gICAgICBpZih0aGlzLm9uQWRkTWVtYmVyc0J1dHRvbkNsaWNrKXtcbiAgICAgICAgdGhpcy5vbkFkZE1lbWJlcnNCdXR0b25DbGljayh0aGlzLmdyb3VwLmdldEd1aWQoKSwgdGhpcy5tZW1iZXJzTGlzdClcbiAgICAgICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgZWxzZXtcbiAgICAgICAgQ29tZXRDaGF0LmFkZE1lbWJlcnNUb0dyb3VwKHRoaXMuZ3JvdXAuZ2V0R3VpZCgpLCB0aGlzLm1lbWJlcnNMaXN0LCBbXSkudGhlbigocmVzcG9uc2U6YW55KT0+e1xuICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIHJlc3BvbnNlKSB7XG4gICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoa2V5KSAmJiByZXNwb25zZVtrZXldID09PSBcInN1Y2Nlc3NcIikge1xuXG4gICAgICAgICAgICAgIGNvbnN0IG1hdGNoaW5nVXNlcjpDb21ldENoYXQuR3JvdXBNZW1iZXIgPSB0aGlzLm1lbWJlcnNMaXN0LmZpbmQoKHVzZXI6Q29tZXRDaGF0LlVzZXIpID0+IHVzZXIuZ2V0VWlkKCkgPT09IGtleSk7XG4gICAgICAgICAgICAgIGlmIChtYXRjaGluZ1VzZXIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUFjdGlvbk1lc3NhZ2UobWF0Y2hpbmdVc2VyKVxuICAgICAgICAgICAgICAgIHRoaXMuYWRkZWRNZW1iZXJzLnB1c2gobWF0Y2hpbmdVc2VyKVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5ncm91cC5zZXRNZW1iZXJzQ291bnQodGhpcy5ncm91cC5nZXRNZW1iZXJzQ291bnQoKSArIHRoaXMuYWRkZWRNZW1iZXJzPy5sZW5ndGggfHwgMClcbiAgICAgICAgICBDb21ldENoYXRHcm91cEV2ZW50cy5jY0dyb3VwTWVtYmVyQWRkZWQubmV4dChcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbWVzc2FnZXM6dGhpcy5hY3Rpb25NZXNzYWdlc0xpc3QsXG4gICAgICAgICAgICAgIHVzZXJzQWRkZWQ6dGhpcy5hZGRlZE1lbWJlcnMsXG4gICAgICAgICAgICAgIHVzZXJBZGRlZEluOnRoaXMuZ3JvdXAsXG4gICAgICAgICAgICAgIHVzZXJBZGRlZEJ5OnRoaXMubG9nZ2VkSW5Vc2VyIVxuXG4gICAgICAgICAgICB9XG4gICAgICAgICAgKVxuICAgICAgICAgIHRoaXMubWVtYmVyc0xpc3QgPSBbXVxuICAgICAgICAgIHRoaXMuYWRkZWRNZW1iZXJzID0gW11cbiAgICAgICAgICB0aGlzLmFjdGlvbk1lc3NhZ2VzTGlzdCA9IFtdXG4gICAgICAgICAgaWYodGhpcy5vbkJhY2spe1xuICAgICAgICAgICAgdGhpcy5vbkJhY2soKVxuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKClcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnI6Q29tZXRDaGF0LkNvbWV0Q2hhdEV4Y2VwdGlvbik9PntcbiAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpXG4gICAgICAgICAgdGhpcy5tZW1iZXJzTGlzdCA9IFtdO1xuICAgICAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cbiAgICBlbHNle1xuICAgICAgcmV0dXJuXG4gICAgfVxuICB9XG4gIGNyZWF0ZUFjdGlvbk1lc3NhZ2UoYWN0aW9uT246Q29tZXRDaGF0Lkdyb3VwTWVtYmVyKXtcbiAgICBsZXQgYWN0aW9uTWVzc2FnZTpDb21ldENoYXQuQWN0aW9uICA9IG5ldyBDb21ldENoYXQuQWN0aW9uKHRoaXMuZ3JvdXAuZ2V0R3VpZCgpLENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy5ncm91cE1lbWJlcixDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlUmVjZWl2ZXJUeXBlLmdyb3VwLENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VDYXRlZ29yeS5hY3Rpb24gYXMgYW55KVxuICAgIGFjdGlvbk1lc3NhZ2Uuc2V0QWN0aW9uKENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLmdyb3VwTWVtYmVyQWN0aW9uLkFEREVEKVxuICAgIGFjdGlvbk1lc3NhZ2Uuc2V0QWN0aW9uQnkodGhpcy5sb2dnZWRJblVzZXIhKVxuICAgIGFjdGlvbk1lc3NhZ2Uuc2V0QWN0aW9uRm9yKHRoaXMuZ3JvdXApXG4gICAgYWN0aW9uTWVzc2FnZS5zZXRBY3Rpb25PbihhY3Rpb25PbilcbiAgICBhY3Rpb25NZXNzYWdlLnNldFJlY2VpdmVyKHRoaXMuZ3JvdXApXG4gICAgYWN0aW9uTWVzc2FnZS5zZXRTZW5kZXIodGhpcy5sb2dnZWRJblVzZXIhKVxuICAgIGFjdGlvbk1lc3NhZ2Uuc2V0Q29udmVyc2F0aW9uSWQoXCJncm91cF9cIisgdGhpcy5ncm91cC5nZXRHdWlkKCkpXG4gICAgYWN0aW9uTWVzc2FnZS5zZXRNdWlkKENvbWV0Q2hhdFVJS2l0VXRpbGl0eS5JRCgpKVxuICAgIGFjdGlvbk1lc3NhZ2Uuc2V0TWVzc2FnZShgJHt0aGlzLmxvZ2dlZEluVXNlcj8uZ2V0TmFtZSgpfSBhZGRlZCAke2FjdGlvbk9uLmdldFVpZCgpfWApXG4gICAgYWN0aW9uTWVzc2FnZS5zZXRTZW50QXQoQ29tZXRDaGF0VUlLaXRVdGlsaXR5LmdldFVuaXhUaW1lc3RhbXAoKSlcblxuICAgIHRoaXMuYWN0aW9uTWVzc2FnZXNMaXN0LnB1c2goYWN0aW9uTWVzc2FnZSlcbiAgfVxuXG4gIHNldEFkZE1lbWJlcnNTdHlsZSgpe1xuXG4gICAgbGV0IGRlZmF1bHRTdHlsZTpBZGRNZW1iZXJzU3R5bGUgPSBuZXcgQWRkTWVtYmVyc1N0eWxlKHtcbiAgICAgIGJhY2tncm91bmQ6dGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRCYWNrZ3JvdW5kKCksXG4gICAgICBib3JkZXI6YG5vbmVgLFxuICAgICAgdGl0bGVUZXh0Rm9udDpmb250SGVscGVyKHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnR5cG9ncmFwaHkudGl0bGUxKSxcbiAgICAgIHRpdGxlVGV4dENvbG9yOnRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50KCksXG4gICAgICBlbXB0eVN0YXRlVGV4dEZvbnQ6Zm9udEhlbHBlcih0aGlzLnRoZW1lU2VydmljZS50aGVtZS50eXBvZ3JhcGh5LnRpdGxlMSksXG4gICAgICBlbXB0eVN0YXRlVGV4dENvbG9yOnRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NjAwKCksXG4gICAgICBlcnJvclN0YXRlVGV4dEZvbnQ6Zm9udEhlbHBlcih0aGlzLnRoZW1lU2VydmljZS50aGVtZS50eXBvZ3JhcGh5LnRpdGxlMSksXG4gICAgICBlcnJvclN0YXRlVGV4dENvbG9yOnRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NjAwKCksXG4gICAgICBsb2FkaW5nSWNvblRpbnQ6dGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ2MDAoKSxcbiAgICAgIG9ubGluZVN0YXR1c0NvbG9yOnRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0U3VjY2VzcygpLFxuICAgICAgc2VwYXJhdG9yQ29sb3I6dGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ0MDAoKSxcbiAgICAgIHdpZHRoOiBcIjEwMCVcIixcbiAgICAgIGhlaWdodDogXCIxMDAlXCIsXG4gICAgICBib3JkZXJSYWRpdXM6IFwibm9uZVwiLFxuICAgICAgc2VhcmNoUGxhY2Vob2xkZXJUZXh0Rm9udDogZm9udEhlbHBlcih0aGlzLnRoZW1lU2VydmljZS50aGVtZS50eXBvZ3JhcGh5LnN1YnRpdGxlMSksXG4gICAgICBzZWFyY2hQbGFjZWhvbGRlclRleHRDb2xvcjogdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ2MDAoKSxcbiAgICAgIHNlYXJjaFRleHRGb250OiBmb250SGVscGVyKHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnR5cG9ncmFwaHkuc3VidGl0bGUyKSxcbiAgICAgIHNlYXJjaFRleHRDb2xvcjogdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ0MDAoKSxcbiAgICAgIHNlYXJjaEljb25UaW50OiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudDYwMCgpLFxuICAgICAgc2VhcmNoQm9yZGVyOiBgMXB4IHNvbGlkICR7dGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQxMDAoKX1gLFxuICAgICAgc2VhcmNoQm9yZGVyUmFkaXVzOiBcIjhweFwiLFxuICAgICAgc2VhcmNoQmFja2dyb3VuZDogdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ1MCgpLFxuICAgICAgY2xvc2VCdXR0b25JY29uVGludDp0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldFByaW1hcnkoKSxcbiAgICAgIGJhY2tCdXR0b25JY29uVGludDp0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldFByaW1hcnkoKSxcbiAgICAgYWRkTWVtYmVyc0J1dHRvbkJhY2tncm91bmQ6dGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRQcmltYXJ5KCksXG4gICAgIGFkZE1lbWJlcnNCdXR0b25UZXh0Q29sb3I6dGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ5MDAoXCJsaWdodFwiKSxcbiAgICAgYWRkTWVtYmVyc0J1dHRvblRleHRGb250OmZvbnRIZWxwZXIodGhpcy50aGVtZVNlcnZpY2UudGhlbWUudHlwb2dyYXBoeS5zdWJ0aXRsZTEpLFxuICAgICBwYWRkaW5nOlwiMCAxMDBweFwiXG4gICAgfSlcbiAgICB0aGlzLmFkZE1lbWJlcnNTdHlsZSA9IHsuLi5kZWZhdWx0U3R5bGUsLi4udGhpcy5hZGRNZW1iZXJzU3R5bGV9XG4gICAgdGhpcy5hZGRNZW1iZXJCdXR0b25TdHlsZS5iYWNrZ3JvdW5kID0gdGhpcy5hZGRNZW1iZXJzU3R5bGUuYWRkTWVtYmVyc0J1dHRvbkJhY2tncm91bmQ7XG4gICAgdGhpcy5hZGRNZW1iZXJCdXR0b25TdHlsZS5idXR0b25UZXh0Rm9udCA9IHRoaXMuYWRkTWVtYmVyc1N0eWxlLmFkZE1lbWJlcnNCdXR0b25UZXh0Rm9udDtcbiAgICB0aGlzLmFkZE1lbWJlckJ1dHRvblN0eWxlLmJ1dHRvblRleHRDb2xvciA9IHRoaXMuYWRkTWVtYmVyc1N0eWxlLmFkZE1lbWJlcnNCdXR0b25UZXh0Q29sb3I7XG4gIH1cbiAgc2V0VXNlcnNTdHlsZSgpe1xuICAgIGxldCBkZWZhdWx0U3R5bGU6VXNlcnNTdHlsZSA9IG5ldyBVc2Vyc1N0eWxlKHtcbiAgICAgIGJhY2tncm91bmQ6dGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRCYWNrZ3JvdW5kKCksXG4gICAgICBib3JkZXI6XCJub25lXCIsXG4gICAgICB0aXRsZVRleHRGb250OmZvbnRIZWxwZXIodGhpcy50aGVtZVNlcnZpY2UudGhlbWUudHlwb2dyYXBoeS50aXRsZTEpLFxuICAgICAgdGl0bGVUZXh0Q29sb3I6dGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQoKSxcbiAgICAgIGVtcHR5U3RhdGVUZXh0Rm9udDpmb250SGVscGVyKHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnR5cG9ncmFwaHkudGl0bGUxKSxcbiAgICAgIGVtcHR5U3RhdGVUZXh0Q29sb3I6dGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ2MDAoKSxcbiAgICAgIGVycm9yU3RhdGVUZXh0Rm9udDpmb250SGVscGVyKHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnR5cG9ncmFwaHkudGl0bGUxKSxcbiAgICAgIGVycm9yU3RhdGVUZXh0Q29sb3I6dGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ2MDAoKSxcbiAgICAgIGxvYWRpbmdJY29uVGludDp0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudDYwMCgpLFxuICAgICAgc2VwYXJhdG9yQ29sb3I6dGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ0MDAoKSxcbiAgICAgIG9ubGluZVN0YXR1c0NvbG9yOnRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0U3VjY2VzcygpLFxuICAgICAgc2VhcmNoSWNvblRpbnQ6dGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ2MDAoKSxcbiAgICAgIHNlYXJjaFBsYWNlaG9sZGVyVGV4dENvbG9yOnRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NjAwKCksXG4gICAgICBzZWFyY2hCYWNrZ3JvdW5kOnRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50MTAwKCksXG4gICAgICBzZWFyY2hQbGFjZWhvbGRlclRleHRGb250OmZvbnRIZWxwZXIodGhpcy50aGVtZVNlcnZpY2UudGhlbWUudHlwb2dyYXBoeS50ZXh0MyksXG4gICAgICBzZWFyY2hUZXh0Q29sb3I6dGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ2MDAoKSxcbiAgICAgIHNlYXJjaFRleHRGb250OmZvbnRIZWxwZXIodGhpcy50aGVtZVNlcnZpY2UudGhlbWUudHlwb2dyYXBoeS50ZXh0MylcbiAgICB9KVxuICAgIHRoaXMudXNlcnNTdHlsZSA9IHsuLi5kZWZhdWx0U3R5bGUsLi4udGhpcy5hZGRNZW1iZXJzU3R5bGV9XG4gIH1cblxuICAvLyBzdHlsZXNcbiAgYmFja0J1dHRvblN0eWxlID0gKCk9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgaGVpZ2h0OlwiMjRweFwiLFxuICAgICB3aWR0aDpcIjI0cHhcIixcbiAgICAgYm9yZGVyOlwibm9uZVwiLFxuICAgICBib3JkZXJSYWRpdXM6XCIwXCIsXG4gICAgIGJhY2tncm91bmQ6XCJ0cmFuc3BhcmVudFwiLFxuICAgICAgYnV0dG9uSWNvblRpbnQ6dGhpcy5hZGRNZW1iZXJzU3R5bGUuYmFja0J1dHRvbkljb25UaW50IHx8IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0UHJpbWFyeSgpXG4gICAgfVxuICB9XG4gIGNsb3NlQnV0dG9uU3R5bGUgPSAoKT0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgaGVpZ2h0OlwiMjRweFwiLFxuICAgICAgd2lkdGg6XCIyNHB4XCIsXG4gICAgICBib3JkZXI6XCJub25lXCIsXG4gICAgICBib3JkZXJSYWRpdXM6XCIwXCIsXG4gICAgICBiYWNrZ3JvdW5kOlwidHJhbnNwYXJlbnRcIixcbiAgICAgIGJ1dHRvbkljb25UaW50OnRoaXMuYWRkTWVtYmVyc1N0eWxlLmNsb3NlQnV0dG9uSWNvblRpbnQgfHwgdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRQcmltYXJ5KClcbiAgICB9XG4gIH1cblxuICB3cmFwcGVyU3R5bGUgPSAoKT0+e1xuICAgIHJldHVybiB7XG4gICAgICBoZWlnaHQ6IHRoaXMuYWRkTWVtYmVyc1N0eWxlLmhlaWdodCxcbiAgICAgIHdpZHRoOiB0aGlzLmFkZE1lbWJlcnNTdHlsZS53aWR0aCxcbiAgICAgIGJhY2tncm91bmQ6IHRoaXMuYWRkTWVtYmVyc1N0eWxlLmJhY2tncm91bmQsXG4gICAgICBib3JkZXI6IHRoaXMuYWRkTWVtYmVyc1N0eWxlLmJvcmRlcixcbiAgICAgIGJvcmRlclJhZGl1czogdGhpcy5hZGRNZW1iZXJzU3R5bGUuYm9yZGVyUmFkaXVzXG4gICAgfVxuICB9XG4gIGFkZE1lbWJlcnNTdHlsZXMgPSAoKT0+e1xuICAgIHJldHVybiB7XG4gICAgICBwYWRkaW5nOnRoaXMuYWRkTWVtYmVyc1N0eWxlLnBhZGRpbmdcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjYy1hZGQtbWVtYmVyc1wiIFtuZ1N0eWxlXT1cIndyYXBwZXJTdHlsZSgpXCI+XG4gIDxkaXYgY2xhc3M9XCJjYy1iYWNrLWJ1dHRvblwiPlxuICAgIDxjb21ldGNoYXQtYnV0dG9uIFtpY29uVVJMXT1cImJhY2tCdXR0b25JY29uVVJMXCIgW2J1dHRvblN0eWxlXT1cImJhY2tCdXR0b25TdHlsZSgpXCIgIChjYy1idXR0b24tY2xpY2tlZCk9XCJiYWNrQ2xpY2tlZCgpXCIgKm5nSWY9XCJzaG93QmFja0J1dHRvblwiPlxuXG4gICAgPC9jb21ldGNoYXQtYnV0dG9uPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImNjLWFkZC1tZW1iZXJzX193cmFwcGVyXCIgW25nU3R5bGVdPVwiYWRkTWVtYmVyc1N0eWxlcygpXCI+XG4gICA8ZGl2IGNsYXNzPVwiY2MtdXNlcnNcIj5cbiAgICA8Y29tZXRjaGF0LXVzZXJzIFtzZWFyY2hQbGFjZWhvbGRlcl09XCJzZWFyY2hQbGFjZWhvbGRlclwiIFt1c2Vyc1JlcXVlc3RCdWlsZGVyXT1cInVzZXJzUmVxdWVzdEJ1aWxkZXJcIlxuICAgIFtoaWRlU2VhcmNoXT1cImhpZGVTZWFyY2hcIlxuICAgIFtTdGF0dXNJbmRpY2F0b3JTdHlsZV09XCJTdGF0dXNJbmRpY2F0b3JTdHlsZVwiXG4gICAgW2F2YXRhclN0eWxlXT1cImF2YXRhclN0eWxlXCJcbiAgICBbc2VhcmNoSWNvblVSTF09XCJzZWFyY2hJY29uVVJMXCJcbiAgICBbc2VhcmNoUmVxdWVzdEJ1aWxkZXJdPVwic2VhcmNoUmVxdWVzdEJ1aWxkZXJcIlxuICAgIFt1c2Vyc1N0eWxlXT1cInVzZXJzU3R5bGVcIlxuICAgIFtzdWJ0aXRsZVZpZXddPVwic3VidGl0bGVWaWV3XCJcbiAgICBbb3B0aW9uc109XCJvcHRpb25zXCJcbiAgICBbdXNlcnNSZXF1ZXN0QnVpbGRlcl09XCJ1c2Vyc1JlcXVlc3RCdWlsZGVyXCJcbiAgICBbZW1wdHlTdGF0ZVZpZXddPVwiZW1wdHlTdGF0ZVZpZXdcIlxuICAgIFtvblNlbGVjdF09XCIgYWRkUmVtb3ZlVXNlcnNcIlxuICAgIFtzZWN0aW9uSGVhZGVyRmllbGRdPVwic2VjdGlvbkhlYWRlckZpZWxkXCJcbiAgICBbbG9hZGluZ0ljb25VUkxdPVwibG9hZGluZ0ljb25VUkxcIlxuICAgIFtlcnJvclN0YXRlVmlld109XCJlcnJvclN0YXRlVmlld1wiXG4gICAgW2xvYWRpbmdTdGF0ZVZpZXddPVwibG9hZGluZ1N0YXRlVmlld1wiXG4gICAgW3RpdGxlQWxpZ25tZW50XT1cInRpdGxlQWxpZ25tZW50XCJcbiAgICBbc2hvd1NlY3Rpb25IZWFkZXJdPVwic2hvd1NlY3Rpb25IZWFkZXJcIlxuICAgIFtsaXN0SXRlbVZpZXddPVwibGlzdEl0ZW1WaWV3XCJcbiAgICBbbWVudV09XCJtZW51XCJcbiAgICBbaGlkZVNlcGFyYXRvcl09XCJoaWRlU2VwYXJhdG9yXCJcbiAgICBbaGlkZUVycm9yXT1cImhpZGVFcnJvclwiXG4gICAgW3NlbGVjdGlvbk1vZGVdPVwiIHNlbGVjdGlvbk1vZGVcIlxuICAgIFt0aXRsZV09XCJ0aXRsZVwiICA+XG5cbiAgICA8L2NvbWV0Y2hhdC11c2Vycz5cbiAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjYy1hZGQtbWVtYmVyc19fYnV0dG9uc1wiPlxuICAgICAgPGNvbWV0Y2hhdC1idXR0b24gY2xhc3M9XCJjYy1hZGQtbWVtYmVyc19fYnV0dG9ucy0tYWRkXCIgW3RleHRdPVwiYnV0dG9uVGV4dFwiIFtidXR0b25TdHlsZV09XCJhZGRNZW1iZXJCdXR0b25TdHlsZVwiIChjbGljayk9XCJhZGRNZW1iZXJzVG9Hcm91cCgpXCIgPjwvY29tZXRjaGF0LWJ1dHRvbj5cblxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImNjLWNsb3NlLWJ1dHRvblwiPlxuICAgIDxjb21ldGNoYXQtYnV0dG9uIFtpY29uVVJMXT1cImNsb3NlQnV0dG9uSWNvblVSTFwiIFtidXR0b25TdHlsZV09XCJjbG9zZUJ1dHRvblN0eWxlKClcIiAoY2MtYnV0dG9uLWNsaWNrZWQpPVwiY2xvc2VDbGlja2VkKClcIj5cblxuICAgIDwvY29tZXRjaGF0LWJ1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=
|
|
362
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tZXRjaGF0LWFkZC1tZW1iZXJzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NoYXQtdWlraXQtYW5ndWxhci9zcmMvQ29tZXRDaGF0QWRkTWVtYmVycy9jb21ldGNoYXQtYWRkLW1lbWJlcnMvY29tZXRjaGF0LWFkZC1tZW1iZXJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NoYXQtdWlraXQtYW5ndWxhci9zcmMvQ29tZXRDaGF0QWRkTWVtYmVycy9jb21ldGNoYXQtYWRkLW1lbWJlcnMvY29tZXRjaGF0LWFkZC1tZW1iZXJzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVcsS0FBSyxFQUFxQix1QkFBdUIsRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUNuSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBQyxVQUFVLEVBQUMscUJBQXFCLEVBQW9DLE1BQU0seUJBQXlCLENBQUM7QUFDN0gsT0FBTywyQkFBMkIsQ0FBQTtBQUNsQyxPQUFPLEVBQWlCLFVBQVUsRUFBRSxRQUFRLEVBQWtCLG9CQUFvQixFQUFFLHVCQUF1QixFQUFDLGNBQWMsRUFBQyxhQUFhLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQTs7Ozs7QUFHM0s7Ozs7Ozs7O0VBUUU7QUFPRixNQUFNLE9BQU8sNEJBQTRCO0lBOEN2QyxZQUFvQixHQUFzQixFQUFTLFlBQWtDO1FBQWpFLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVMsaUJBQVksR0FBWixZQUFZLENBQXNCO1FBeEM1RSx5QkFBb0IsR0FBVyxLQUFLLENBQUM7UUFHckMsc0JBQWlCLEdBQVUsdUJBQXVCLENBQUE7UUFDbEQsdUJBQWtCLEdBQVUsb0JBQW9CLENBQUE7UUFDaEQsbUJBQWMsR0FBUyxJQUFJLENBQUM7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aUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFHRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csdUJBQXVCO3NCQUEvQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBR0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCAgSW5wdXQsIENoYW5nZURldGVjdG9yUmVmLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgVGVtcGxhdGVSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQ29tZXRDaGF0IH0gZnJvbSBcIkBjb21ldGNoYXQvY2hhdC1zZGstamF2YXNjcmlwdFwiO1xuaW1wb3J0IHsgQWRkTWVtYmVyc1N0eWxlLFVzZXJzU3R5bGUsQ29tZXRDaGF0VUlLaXRVdGlsaXR5LCBCYXNlU3R5bGUsIFVJS2l0U2V0dGluZ3NCdWlsZGVyICB9IGZyb20gJ0Bjb21ldGNoYXQvdWlraXQtc2hhcmVkJztcbmltcG9ydCAnQGNvbWV0Y2hhdC91aWtpdC1lbGVtZW50cydcbmltcG9ydCB7Q29tZXRDaGF0VGhlbWUsIGZvbnRIZWxwZXIsIGxvY2FsaXplLENvbWV0Q2hhdE9wdGlvbiwgQ29tZXRDaGF0R3JvdXBFdmVudHMsIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLFRpdGxlQWxpZ25tZW50LFNlbGVjdGlvbk1vZGV9IGZyb20gJ0Bjb21ldGNoYXQvdWlraXQtcmVzb3VyY2VzJ1xuaW1wb3J0ICB7IEF2YXRhclN0eWxlLCBMaXN0SXRlbVN0eWxlfSBmcm9tICdAY29tZXRjaGF0L3Vpa2l0LWVsZW1lbnRzJ1xuaW1wb3J0IHsgQ29tZXRDaGF0VGhlbWVTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL0NvbWV0Q2hhdFRoZW1lLnNlcnZpY2VcIjtcbi8qKlxuKlxuKiBDb21ldENoYXRBZGRNZW1iZXJzQ29tcG9uZW50Q29tcG9uZW50IGlzIHVzZWQgdG8gcmVuZGVyIGdyb3VwIG1lbWJlcnMgdG8gYWRkXG4qXG4qIEB2ZXJzaW9uIDEuMC4wXG4qIEBhdXRob3IgQ29tZXRDaGF0VGVhbVxuKiBAY29weXJpZ2h0IMKpIDIwMjIgQ29tZXRDaGF0IEluYy5cbipcbiovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiY29tZXRjaGF0LWFkZC1tZW1iZXJzXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vY29tZXRjaGF0LWFkZC1tZW1iZXJzLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9jb21ldGNoYXQtYWRkLW1lbWJlcnMuY29tcG9uZW50LnNjc3NcIl0sXG4gIGNoYW5nZURldGVjdGlvbjpDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQ29tZXRDaGF0QWRkTWVtYmVyc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgdXNlcnNSZXF1ZXN0QnVpbGRlciE6IENvbWV0Q2hhdC5Vc2Vyc1JlcXVlc3RCdWlsZGVyO1xuICBASW5wdXQoKSBzZWFyY2hSZXF1ZXN0QnVpbGRlciE6IENvbWV0Q2hhdC5Vc2Vyc1JlcXVlc3RCdWlsZGVyO1xuICBASW5wdXQoKSBzdWJ0aXRsZVZpZXchOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBASW5wdXQoKSBsaXN0SXRlbVZpZXchOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBASW5wdXQoKSBkaXNhYmxlVXNlcnNQcmVzZW5jZTpib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIG1lbnUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBASW5wdXQoKSAgIG9wdGlvbnMhOiAoKG1lbWJlcjpDb21ldENoYXQuVXNlcik9PkNvbWV0Q2hhdE9wdGlvbltdKSB8IG51bGw7XG4gIEBJbnB1dCgpIGJhY2tCdXR0b25JY29uVVJMOnN0cmluZyA9IFwiYXNzZXRzL2JhY2tidXR0b24uc3ZnXCJcbiAgQElucHV0KCkgY2xvc2VCdXR0b25JY29uVVJMOnN0cmluZyA9IFwiYXNzZXRzL2Nsb3NlMnguc3ZnXCJcbiAgQElucHV0KCkgc2hvd0JhY2tCdXR0b246Ym9vbGVhbj10cnVlO1xuICBASW5wdXQoKSBoaWRlU2VwYXJhdG9yOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNlbGVjdGlvbk1vZGU6IFNlbGVjdGlvbk1vZGUgPSBTZWxlY3Rpb25Nb2RlLm11bHRpcGxlO1xuICBASW5wdXQoKSBzZWFyY2hQbGFjZWhvbGRlcjogc3RyaW5nID0gXCJTZWFyY2ggTWVtYmVyc1wiO1xuICBASW5wdXQoKSBoaWRlRXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc2VhcmNoSWNvblVSTDogc3RyaW5nID0gXCJhc3NldHMvc2VhcmNoLnN2Z1wiO1xuICBASW5wdXQoKSBoaWRlU2VhcmNoOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmcgPSBsb2NhbGl6ZShcIkFERF9NRU1CRVJTXCIpO1xuICBASW5wdXQoKSBvbkVycm9yOigoZXJyb3I6Q29tZXRDaGF0LkNvbWV0Q2hhdEV4Y2VwdGlvbik9PnZvaWQpIHwgbnVsbCA9IChlcnJvcjpDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKT0+e1xuICAgIGNvbnNvbGUubG9nKGVycm9yKVxuICB9XG4gIEBJbnB1dCgpIG9uQmFjayE6KCk9PnZvaWQ7XG4gIEBJbnB1dCgpIG9uQ2xvc2UhOigpPT52b2lkO1xuICBASW5wdXQoKSBvblNlbGVjdCE6ICh1c2VyOkNvbWV0Q2hhdC5Vc2VyLCBzZWxlY3RlZDpib29sZWFuKT0+dm9pZDtcblxuICBASW5wdXQoKSBidXR0b25UZXh0OnN0cmluZyA9IGxvY2FsaXplKFwiQUREX01FTUJFUlNcIik7XG4gIEBJbnB1dCgpIGdyb3VwITpDb21ldENoYXQuR3JvdXA7XG4gIEBJbnB1dCgpIGVtcHR5U3RhdGVWaWV3ITogVGVtcGxhdGVSZWY8YW55PjtcbiAgQElucHV0KCkgZXJyb3JTdGF0ZVZpZXchOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBASW5wdXQoKSBsb2FkaW5nSWNvblVSTDogc3RyaW5nID0gXCJhc3NldHMvU3Bpbm5lci5zdmdcIjtcbiAgQElucHV0KCkgbGlzdEl0ZW1TdHlsZTpMaXN0SXRlbVN0eWxlID0ge31cbiAgQElucHV0KCkgc2hvd1NlY3Rpb25IZWFkZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc2VjdGlvbkhlYWRlckZpZWxkOiBzdHJpbmcgPSBcIm5hbWVcIjtcbiAgQElucHV0KCkgbG9hZGluZ1N0YXRlVmlldyE6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBJbnB1dCgpIGVtcHR5U3RhdGVUZXh0OiBzdHJpbmcgPSBsb2NhbGl6ZShcIk5PX0dST1VQU19GT1VORFwiKVxuICBASW5wdXQoKSBlcnJvclN0YXRlVGV4dDogc3RyaW5nID0gbG9jYWxpemUoXCJTT01FVEhJTkdfV1JPTkdcIik7XG4gIEBJbnB1dCgpIG9uQWRkTWVtYmVyc0J1dHRvbkNsaWNrITooZ3VpZDpzdHJpbmcsIG1lbWJlcnM6Q29tZXRDaGF0LlVzZXJbXSk9PnZvaWQ7XG4gIEBJbnB1dCgpIHRpdGxlQWxpZ25tZW50OiBUaXRsZUFsaWdubWVudCA9IFRpdGxlQWxpZ25tZW50LmNlbnRlcjtcbiAgdGl0bGVBbGlnbm1lbnRFbnVtOnR5cGVvZiBUaXRsZUFsaWdubWVudCA9IFRpdGxlQWxpZ25tZW50XG4gIHNlbGVjdGlvbm1vZGVFbnVtOiB0eXBlb2YgU2VsZWN0aW9uTW9kZSA9IFNlbGVjdGlvbk1vZGU7XG4gIEBJbnB1dCgpIGFkZE1lbWJlcnNTdHlsZTogQWRkTWVtYmVyc1N0eWxlID0ge307XG4gIEBJbnB1dCgpIFN0YXR1c0luZGljYXRvclN0eWxlOkJhc2VTdHlsZSA9IHt9XG4gIEBJbnB1dCgpIGF2YXRhclN0eWxlOkF2YXRhclN0eWxlID0ge31cbiAgbG9nZ2VkSW5Vc2VyITpDb21ldENoYXQuVXNlciB8IG51bGw7XG4gIGFjdGlvbk1lc3NhZ2VzTGlzdDpDb21ldENoYXQuQWN0aW9uW10gPSBbXVxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYscHJpdmF0ZSB0aGVtZVNlcnZpY2U6Q29tZXRDaGF0VGhlbWVTZXJ2aWNlKSB7ICB9XG4gIGFkZE1lbWJlckJ1dHRvblN0eWxlOmFueSA9IHtcbiAgICBoZWlnaHQ6XCIxMDAlXCIsXG4gICAgd2lkdGg6XCIxMDAlXCIsXG4gICAgYmFja2dyb3VuZDpcInJnYig1MSwgMTUzLCAyNTUpXCIsXG4gICAgcGFkZGluZzpcIjhweFwiLFxuICAgIGJ1dHRvblRleHRDb2xvcjpcIndoaXRlXCIsXG4gICAgYnV0dG9uVGV4dEZvbnQ6XCJcIixcbiAgICBkaXNwbGF5OlwiZmxleFwiLFxuICAgIGp1c3RpZnlDb250ZW50OlwiY2VudGVyXCIsXG4gICAgYWxpZ25JdGVtczpcImNlbnRlclwiLFxuICAgIGJvcmRlcjpcIm5vbmVcIixcbiAgICBib3JkZXJSYWRpdXM6XCI4cHhcIlxufVxuICBzZWFyY2hLZXl3b3JkOiBzdHJpbmcgPSBcIlwiO1xuICBwdWJsaWMgdXNlcnNSZXF1ZXN0OiBhbnk7XG4gIHB1YmxpYyB0aW1lb3V0OiBhbnk7XG4gIHB1YmxpYyB1c2Vyc0xpc3Q6IENvbWV0Q2hhdC5Vc2VyW10gPSBbXTtcbiAgcHVibGljIHVzZXJMaXN0ZW5lcklkOiBzdHJpbmcgPSBcInVzZXJsaXN0X1wiICsgbmV3IERhdGUoKS5nZXRUaW1lKCk7XG4gIHVzZXJzU3R5bGU6IFVzZXJzU3R5bGUgPSB7XG4gICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgIGhlaWdodDogXCIxMDAlXCIsXG4gICAgYmFja2dyb3VuZDogXCJcIixcbiAgICBib3JkZXI6IFwiXCIsXG4gICAgYm9yZGVyUmFkaXVzOiBcIlwiLFxuICAgIHNlYXJjaEJhY2tncm91bmQ6IFwiI2VmZWZlZlwiLFxuICAgIG9ubGluZVN0YXR1c0NvbG9yOiBcIlwiLFxuICAgIHNlcGFyYXRvckNvbG9yOiBcInJnYigyMjIgMjIyIDIyMiAvIDQ2JSlcIixcbiAgICBzZWN0aW9uSGVhZGVyVGV4dEZvbnQ6IFwiXCIsXG4gICAgc2VjdGlvbkhlYWRlclRleHRDb2xvcjogXCJcIlxuICB9O1xuICBtZW1iZXJzTGlzdDphbnlbXSA9IFtdO1xuICBhZGRlZE1lbWJlcnM6Q29tZXRDaGF0Lkdyb3VwTWVtYmVyW10gPSBbXVxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldFVzZXJzU3R5bGUoKVxuICAgIHRoaXMuc2V0QWRkTWVtYmVyc1N0eWxlKCk7XG4gICAgdGhpcy5tZW1iZXJzTGlzdCA9IFtdXG4gICAgdGhpcy5hZGRlZE1lbWJlcnMgPSBbXVxuICAgIHRoaXMuYWN0aW9uTWVzc2FnZXNMaXN0ID0gW11cblxuICAgIENvbWV0Q2hhdC5nZXRMb2dnZWRpblVzZXIoKS50aGVuKCh1c2VyOiBDb21ldENoYXQuVXNlciB8IG51bGwpID0+IHtcbiAgICAgIHRoaXMubG9nZ2VkSW5Vc2VyID0gdXNlcjtcbiAgICB9KS5jYXRjaCgoZXJyb3I6Q29tZXRDaGF0LkNvbWV0Q2hhdEV4Y2VwdGlvbik9PntcbiAgICAgIGlmKHRoaXMub25FcnJvcil7XG4gICAgICAgIHRoaXMub25FcnJvcihlcnJvcilcbiAgICAgIH1cbiAgICB9KVxuICB9XG4gIC8qKlxuICAgKiBAcGFyYW0gIHtzdHJpbmd9IHVpZFxuICAgKi9cbiAgYWRkUmVtb3ZlVXNlcnMgPSAodXNlcjpDb21ldENoYXQuVXNlciwgc2VsZWN0ZWQ6Ym9vbGVhbik9PntcbiBpZih0aGlzLm9uU2VsZWN0KXtcbiAgIHRoaXMub25TZWxlY3QodXNlcixzZWxlY3RlZClcbiB9XG5cbiBlbHNle1xuICBsZXQga2V5ID0gIHRoaXMubWVtYmVyc0xpc3QuZmluZEluZGV4KFxuICAgIChtOmFueSkgPT4gbS5nZXRVaWQoKSA9PT0gdXNlci5nZXRVaWQoKVxuICApO1xuICBpZihrZXkgPj0gMCl7XG4gICAgdGhpcy5tZW1iZXJzTGlzdC5zcGxpY2Uoa2V5LDEpXG4gIH1cbiAgZWxzZXtcbiAgICBsZXQgbWVtYmVyOkNvbWV0Q2hhdC5Hcm91cE1lbWJlciA9IG5ldyBDb21ldENoYXQuR3JvdXBNZW1iZXIodXNlci5nZXRVaWQoKSwgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuZ3JvdXBNZW1iZXJTY29wZS5wYXJ0aWNpcGFudClcbiAgICBtZW1iZXIuc2V0TmFtZSh1c2VyLmdldE5hbWUoKSlcbiAgICBtZW1iZXIuc2V0R3VpZCh0aGlzLmdyb3VwLmdldEd1aWQoKSlcblxuICAgIHRoaXMubWVtYmVyc0xpc3QucHVzaChtZW1iZXIpXG4gIH1cbiB9XG4gdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpXG4gIH1cbiAgY2xvc2VDbGlja2VkKCl7XG4gICAgaWYodGhpcy5vbkNsb3NlKXtcbiAgICAgIHRoaXMub25DbG9zZSgpXG4gICAgfVxuICB9XG4gIGJhY2tDbGlja2VkKCl7XG4gICAgaWYodGhpcy5vbkJhY2spe1xuICAgICAgdGhpcy5vbkJhY2soKVxuICAgIH1cbiAgfVxuICBhZGRNZW1iZXJzVG9Hcm91cCA9ICgpPT57XG4gICAgaWYodGhpcy5ncm91cCAmJiB0aGlzLm1lbWJlcnNMaXN0Lmxlbmd0aCA+IDApe1xuICAgICAgaWYodGhpcy5vbkFkZE1lbWJlcnNCdXR0b25DbGljayl7XG4gICAgICAgIHRoaXMub25BZGRNZW1iZXJzQnV0dG9uQ2xpY2sodGhpcy5ncm91cC5nZXRHdWlkKCksIHRoaXMubWVtYmVyc0xpc3QpXG4gICAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGVsc2V7XG4gICAgICAgIENvbWV0Q2hhdC5hZGRNZW1iZXJzVG9Hcm91cCh0aGlzLmdyb3VwLmdldEd1aWQoKSwgdGhpcy5tZW1iZXJzTGlzdCwgW10pLnRoZW4oKHJlc3BvbnNlOmFueSk9PntcbiAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiByZXNwb25zZSkge1xuICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KGtleSkgJiYgcmVzcG9uc2Vba2V5XSA9PT0gXCJzdWNjZXNzXCIpIHtcblxuICAgICAgICAgICAgICBjb25zdCBtYXRjaGluZ1VzZXI6Q29tZXRDaGF0Lkdyb3VwTWVtYmVyID0gdGhpcy5tZW1iZXJzTGlzdC5maW5kKCh1c2VyOkNvbWV0Q2hhdC5Vc2VyKSA9PiB1c2VyLmdldFVpZCgpID09PSBrZXkpO1xuICAgICAgICAgICAgICBpZiAobWF0Y2hpbmdVc2VyKSB7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUFjdGlvbk1lc3NhZ2UobWF0Y2hpbmdVc2VyKVxuICAgICAgICAgICAgICAgIGlmKCFtYXRjaGluZ1VzZXIuZ2V0U2NvcGUoKSl7XG4gICAgICAgICAgICAgICAgICBtYXRjaGluZ1VzZXIuc2V0U2NvcGUoQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuZ3JvdXBNZW1iZXJTY29wZS5wYXJ0aWNpcGFudCBhcyBDb21ldENoYXQuR3JvdXBNZW1iZXJTY29wZSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5hZGRlZE1lbWJlcnMucHVzaChtYXRjaGluZ1VzZXIpXG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmdyb3VwLnNldE1lbWJlcnNDb3VudCh0aGlzLmdyb3VwLmdldE1lbWJlcnNDb3VudCgpICsgdGhpcy5hZGRlZE1lbWJlcnM/Lmxlbmd0aCB8fCAwKVxuICAgICAgICAgIENvbWV0Q2hhdEdyb3VwRXZlbnRzLmNjR3JvdXBNZW1iZXJBZGRlZC5uZXh0KFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBtZXNzYWdlczp0aGlzLmFjdGlvbk1lc3NhZ2VzTGlzdCxcbiAgICAgICAgICAgICAgdXNlcnNBZGRlZDp0aGlzLmFkZGVkTWVtYmVycyxcbiAgICAgICAgICAgICAgdXNlckFkZGVkSW46dGhpcy5ncm91cCxcbiAgICAgICAgICAgICAgdXNlckFkZGVkQnk6dGhpcy5sb2dnZWRJblVzZXIhXG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICApXG4gICAgICAgICAgdGhpcy5tZW1iZXJzTGlzdCA9IFtdXG4gICAgICAgICAgdGhpcy5hZGRlZE1lbWJlcnMgPSBbXVxuICAgICAgICAgIHRoaXMuYWN0aW9uTWVzc2FnZXNMaXN0ID0gW11cbiAgICAgICAgICBpZih0aGlzLm9uQmFjayl7XG4gICAgICAgICAgICB0aGlzLm9uQmFjaygpXG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKVxuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGVycjpDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKT0+e1xuICAgICAgICAgIGNvbnNvbGUubG9nKGVycilcbiAgICAgICAgICB0aGlzLm1lbWJlcnNMaXN0ID0gW107XG4gICAgICAgICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfVxuICAgIGVsc2V7XG4gICAgICByZXR1cm5cbiAgICB9XG4gIH1cbiAgY3JlYXRlQWN0aW9uTWVzc2FnZShhY3Rpb25PbjpDb21ldENoYXQuR3JvdXBNZW1iZXIpe1xuICAgIGxldCBhY3Rpb25NZXNzYWdlOkNvbWV0Q2hhdC5BY3Rpb24gID0gbmV3IENvbWV0Q2hhdC5BY3Rpb24odGhpcy5ncm91cC5nZXRHdWlkKCksQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVR5cGVzLmdyb3VwTWVtYmVyLENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VSZWNlaXZlclR5cGUuZ3JvdXAsQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZUNhdGVnb3J5LmFjdGlvbiBhcyBhbnkpXG4gICAgYWN0aW9uTWVzc2FnZS5zZXRBY3Rpb24oQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuZ3JvdXBNZW1iZXJBY3Rpb24uQURERUQpXG4gICAgYWN0aW9uTWVzc2FnZS5zZXRBY3Rpb25CeSh0aGlzLmxvZ2dlZEluVXNlciEpXG4gICAgYWN0aW9uTWVzc2FnZS5zZXRBY3Rpb25Gb3IodGhpcy5ncm91cClcbiAgICBhY3Rpb25NZXNzYWdlLnNldEFjdGlvbk9uKGFjdGlvbk9uKVxuICAgIGFjdGlvbk1lc3NhZ2Uuc2V0UmVjZWl2ZXIodGhpcy5ncm91cClcbiAgICBhY3Rpb25NZXNzYWdlLnNldFNlbmRlcih0aGlzLmxvZ2dlZEluVXNlciEpXG4gICAgYWN0aW9uTWVzc2FnZS5zZXRDb252ZXJzYXRpb25JZChcImdyb3VwX1wiKyB0aGlzLmdyb3VwLmdldEd1aWQoKSlcbiAgICBhY3Rpb25NZXNzYWdlLnNldE11aWQoQ29tZXRDaGF0VUlLaXRVdGlsaXR5LklEKCkpXG4gICAgYWN0aW9uTWVzc2FnZS5zZXRNZXNzYWdlKGAke3RoaXMubG9nZ2VkSW5Vc2VyPy5nZXROYW1lKCl9IGFkZGVkICR7YWN0aW9uT24uZ2V0VWlkKCl9YClcbiAgICBhY3Rpb25NZXNzYWdlLnNldFNlbnRBdChDb21ldENoYXRVSUtpdFV0aWxpdHkuZ2V0VW5peFRpbWVzdGFtcCgpKVxuXG4gICAgdGhpcy5hY3Rpb25NZXNzYWdlc0xpc3QucHVzaChhY3Rpb25NZXNzYWdlKVxuICB9XG5cbiAgc2V0QWRkTWVtYmVyc1N0eWxlKCl7XG5cbiAgICBsZXQgZGVmYXVsdFN0eWxlOkFkZE1lbWJlcnNTdHlsZSA9IG5ldyBBZGRNZW1iZXJzU3R5bGUoe1xuICAgICAgYmFja2dyb3VuZDp0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEJhY2tncm91bmQoKSxcbiAgICAgIGJvcmRlcjpgbm9uZWAsXG4gICAgICB0aXRsZVRleHRGb250OmZvbnRIZWxwZXIodGhpcy50aGVtZVNlcnZpY2UudGhlbWUudHlwb2dyYXBoeS50aXRsZTEpLFxuICAgICAgdGl0bGVUZXh0Q29sb3I6dGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQoKSxcbiAgICAgIGVtcHR5U3RhdGVUZXh0Rm9udDpmb250SGVscGVyKHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnR5cG9ncmFwaHkudGl0bGUxKSxcbiAgICAgIGVtcHR5U3RhdGVUZXh0Q29sb3I6dGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ2MDAoKSxcbiAgICAgIGVycm9yU3RhdGVUZXh0Rm9udDpmb250SGVscGVyKHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnR5cG9ncmFwaHkudGl0bGUxKSxcbiAgICAgIGVycm9yU3RhdGVUZXh0Q29sb3I6dGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ2MDAoKSxcbiAgICAgIGxvYWRpbmdJY29uVGludDp0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudDYwMCgpLFxuICAgICAgb25saW5lU3RhdHVzQ29sb3I6dGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRTdWNjZXNzKCksXG4gICAgICBzZXBhcmF0b3JDb2xvcjp0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudDQwMCgpLFxuICAgICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgICAgaGVpZ2h0OiBcIjEwMCVcIixcbiAgICAgIGJvcmRlclJhZGl1czogXCJub25lXCIsXG4gICAgICBzZWFyY2hQbGFjZWhvbGRlclRleHRGb250OiBmb250SGVscGVyKHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnR5cG9ncmFwaHkuc3VidGl0bGUxKSxcbiAgICAgIHNlYXJjaFBsYWNlaG9sZGVyVGV4dENvbG9yOiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudDYwMCgpLFxuICAgICAgc2VhcmNoVGV4dEZvbnQ6IGZvbnRIZWxwZXIodGhpcy50aGVtZVNlcnZpY2UudGhlbWUudHlwb2dyYXBoeS5zdWJ0aXRsZTIpLFxuICAgICAgc2VhcmNoVGV4dENvbG9yOiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudDQwMCgpLFxuICAgICAgc2VhcmNoSWNvblRpbnQ6IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NjAwKCksXG4gICAgICBzZWFyY2hCb3JkZXI6IGAxcHggc29saWQgJHt0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudDEwMCgpfWAsXG4gICAgICBzZWFyY2hCb3JkZXJSYWRpdXM6IFwiOHB4XCIsXG4gICAgICBzZWFyY2hCYWNrZ3JvdW5kOiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudDUwKCksXG4gICAgICBjbG9zZUJ1dHRvbkljb25UaW50OnRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0UHJpbWFyeSgpLFxuICAgICAgYmFja0J1dHRvbkljb25UaW50OnRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0UHJpbWFyeSgpLFxuICAgICBhZGRNZW1iZXJzQnV0dG9uQmFja2dyb3VuZDp0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldFByaW1hcnkoKSxcbiAgICAgYWRkTWVtYmVyc0J1dHRvblRleHRDb2xvcjp0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudDkwMChcImxpZ2h0XCIpLFxuICAgICBhZGRNZW1iZXJzQnV0dG9uVGV4dEZvbnQ6Zm9udEhlbHBlcih0aGlzLnRoZW1lU2VydmljZS50aGVtZS50eXBvZ3JhcGh5LnN1YnRpdGxlMSksXG4gICAgIHBhZGRpbmc6XCIwIDEwMHB4XCJcbiAgICB9KVxuICAgIHRoaXMuYWRkTWVtYmVyc1N0eWxlID0gey4uLmRlZmF1bHRTdHlsZSwuLi50aGlzLmFkZE1lbWJlcnNTdHlsZX1cbiAgICB0aGlzLmFkZE1lbWJlckJ1dHRvblN0eWxlLmJhY2tncm91bmQgPSB0aGlzLmFkZE1lbWJlcnNTdHlsZS5hZGRNZW1iZXJzQnV0dG9uQmFja2dyb3VuZDtcbiAgICB0aGlzLmFkZE1lbWJlckJ1dHRvblN0eWxlLmJ1dHRvblRleHRGb250ID0gdGhpcy5hZGRNZW1iZXJzU3R5bGUuYWRkTWVtYmVyc0J1dHRvblRleHRGb250O1xuICAgIHRoaXMuYWRkTWVtYmVyQnV0dG9uU3R5bGUuYnV0dG9uVGV4dENvbG9yID0gdGhpcy5hZGRNZW1iZXJzU3R5bGUuYWRkTWVtYmVyc0J1dHRvblRleHRDb2xvcjtcbiAgfVxuICBzZXRVc2Vyc1N0eWxlKCl7XG4gICAgbGV0IGRlZmF1bHRTdHlsZTpVc2Vyc1N0eWxlID0gbmV3IFVzZXJzU3R5bGUoe1xuICAgICAgYmFja2dyb3VuZDp0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEJhY2tncm91bmQoKSxcbiAgICAgIGJvcmRlcjpcIm5vbmVcIixcbiAgICAgIHRpdGxlVGV4dEZvbnQ6Zm9udEhlbHBlcih0aGlzLnRoZW1lU2VydmljZS50aGVtZS50eXBvZ3JhcGh5LnRpdGxlMSksXG4gICAgICB0aXRsZVRleHRDb2xvcjp0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudCgpLFxuICAgICAgZW1wdHlTdGF0ZVRleHRGb250OmZvbnRIZWxwZXIodGhpcy50aGVtZVNlcnZpY2UudGhlbWUudHlwb2dyYXBoeS50aXRsZTEpLFxuICAgICAgZW1wdHlTdGF0ZVRleHRDb2xvcjp0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudDYwMCgpLFxuICAgICAgZXJyb3JTdGF0ZVRleHRGb250OmZvbnRIZWxwZXIodGhpcy50aGVtZVNlcnZpY2UudGhlbWUudHlwb2dyYXBoeS50aXRsZTEpLFxuICAgICAgZXJyb3JTdGF0ZVRleHRDb2xvcjp0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudDYwMCgpLFxuICAgICAgbG9hZGluZ0ljb25UaW50OnRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NjAwKCksXG4gICAgICBzZXBhcmF0b3JDb2xvcjp0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudDQwMCgpLFxuICAgICAgb25saW5lU3RhdHVzQ29sb3I6dGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRTdWNjZXNzKCksXG4gICAgICBzZWFyY2hJY29uVGludDp0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudDYwMCgpLFxuICAgICAgc2VhcmNoUGxhY2Vob2xkZXJUZXh0Q29sb3I6dGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ2MDAoKSxcbiAgICAgIHNlYXJjaEJhY2tncm91bmQ6dGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQxMDAoKSxcbiAgICAgIHNlYXJjaFBsYWNlaG9sZGVyVGV4dEZvbnQ6Zm9udEhlbHBlcih0aGlzLnRoZW1lU2VydmljZS50aGVtZS50eXBvZ3JhcGh5LnRleHQzKSxcbiAgICAgIHNlYXJjaFRleHRDb2xvcjp0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudDYwMCgpLFxuICAgICAgc2VhcmNoVGV4dEZvbnQ6Zm9udEhlbHBlcih0aGlzLnRoZW1lU2VydmljZS50aGVtZS50eXBvZ3JhcGh5LnRleHQzKVxuICAgIH0pXG4gICAgdGhpcy51c2Vyc1N0eWxlID0gey4uLmRlZmF1bHRTdHlsZSwuLi50aGlzLmFkZE1lbWJlcnNTdHlsZX1cbiAgfVxuXG4gIC8vIHN0eWxlc1xuICBiYWNrQnV0dG9uU3R5bGUgPSAoKT0+IHtcbiAgICByZXR1cm4ge1xuICAgICBoZWlnaHQ6XCIyNHB4XCIsXG4gICAgIHdpZHRoOlwiMjRweFwiLFxuICAgICBib3JkZXI6XCJub25lXCIsXG4gICAgIGJvcmRlclJhZGl1czpcIjBcIixcbiAgICAgYmFja2dyb3VuZDpcInRyYW5zcGFyZW50XCIsXG4gICAgICBidXR0b25JY29uVGludDp0aGlzLmFkZE1lbWJlcnNTdHlsZS5iYWNrQnV0dG9uSWNvblRpbnQgfHwgdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRQcmltYXJ5KClcbiAgICB9XG4gIH1cbiAgY2xvc2VCdXR0b25TdHlsZSA9ICgpPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBoZWlnaHQ6XCIyNHB4XCIsXG4gICAgICB3aWR0aDpcIjI0cHhcIixcbiAgICAgIGJvcmRlcjpcIm5vbmVcIixcbiAgICAgIGJvcmRlclJhZGl1czpcIjBcIixcbiAgICAgIGJhY2tncm91bmQ6XCJ0cmFuc3BhcmVudFwiLFxuICAgICAgYnV0dG9uSWNvblRpbnQ6dGhpcy5hZGRNZW1iZXJzU3R5bGUuY2xvc2VCdXR0b25JY29uVGludCB8fCB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldFByaW1hcnkoKVxuICAgIH1cbiAgfVxuXG4gIHdyYXBwZXJTdHlsZSA9ICgpPT57XG4gICAgcmV0dXJuIHtcbiAgICAgIGhlaWdodDogdGhpcy5hZGRNZW1iZXJzU3R5bGUuaGVpZ2h0LFxuICAgICAgd2lkdGg6IHRoaXMuYWRkTWVtYmVyc1N0eWxlLndpZHRoLFxuICAgICAgYmFja2dyb3VuZDogdGhpcy5hZGRNZW1iZXJzU3R5bGUuYmFja2dyb3VuZCxcbiAgICAgIGJvcmRlcjogdGhpcy5hZGRNZW1iZXJzU3R5bGUuYm9yZGVyLFxuICAgICAgYm9yZGVyUmFkaXVzOiB0aGlzLmFkZE1lbWJlcnNTdHlsZS5ib3JkZXJSYWRpdXNcbiAgICB9XG4gIH1cbiAgYWRkTWVtYmVyc1N0eWxlcyA9ICgpPT57XG4gICAgcmV0dXJuIHtcbiAgICAgIHBhZGRpbmc6dGhpcy5hZGRNZW1iZXJzU3R5bGUucGFkZGluZ1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNjLWFkZC1tZW1iZXJzXCIgW25nU3R5bGVdPVwid3JhcHBlclN0eWxlKClcIj5cbiAgPGRpdiBjbGFzcz1cImNjLWJhY2stYnV0dG9uXCI+XG4gICAgPGNvbWV0Y2hhdC1idXR0b24gW2ljb25VUkxdPVwiYmFja0J1dHRvbkljb25VUkxcIiBbYnV0dG9uU3R5bGVdPVwiYmFja0J1dHRvblN0eWxlKClcIiAgKGNjLWJ1dHRvbi1jbGlja2VkKT1cImJhY2tDbGlja2VkKClcIiAqbmdJZj1cInNob3dCYWNrQnV0dG9uXCI+XG5cbiAgICA8L2NvbWV0Y2hhdC1idXR0b24+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiY2MtYWRkLW1lbWJlcnNfX3dyYXBwZXJcIiBbbmdTdHlsZV09XCJhZGRNZW1iZXJzU3R5bGVzKClcIj5cbiAgIDxkaXYgY2xhc3M9XCJjYy11c2Vyc1wiPlxuICAgIDxjb21ldGNoYXQtdXNlcnMgW3NlYXJjaFBsYWNlaG9sZGVyXT1cInNlYXJjaFBsYWNlaG9sZGVyXCIgW3VzZXJzUmVxdWVzdEJ1aWxkZXJdPVwidXNlcnNSZXF1ZXN0QnVpbGRlclwiXG4gICAgW2hpZGVTZWFyY2hdPVwiaGlkZVNlYXJjaFwiXG4gICAgW1N0YXR1c0luZGljYXRvclN0eWxlXT1cIlN0YXR1c0luZGljYXRvclN0eWxlXCJcbiAgICBbYXZhdGFyU3R5bGVdPVwiYXZhdGFyU3R5bGVcIlxuICAgIFtzZWFyY2hJY29uVVJMXT1cInNlYXJjaEljb25VUkxcIlxuICAgIFtzZWFyY2hSZXF1ZXN0QnVpbGRlcl09XCJzZWFyY2hSZXF1ZXN0QnVpbGRlclwiXG4gICAgW3VzZXJzU3R5bGVdPVwidXNlcnNTdHlsZVwiXG4gICAgW3N1YnRpdGxlVmlld109XCJzdWJ0aXRsZVZpZXdcIlxuICAgIFtvcHRpb25zXT1cIm9wdGlvbnNcIlxuICAgIFt1c2Vyc1JlcXVlc3RCdWlsZGVyXT1cInVzZXJzUmVxdWVzdEJ1aWxkZXJcIlxuICAgIFtlbXB0eVN0YXRlVmlld109XCJlbXB0eVN0YXRlVmlld1wiXG4gICAgW29uU2VsZWN0XT1cIiBhZGRSZW1vdmVVc2Vyc1wiXG4gICAgW3NlY3Rpb25IZWFkZXJGaWVsZF09XCJzZWN0aW9uSGVhZGVyRmllbGRcIlxuICAgIFtsb2FkaW5nSWNvblVSTF09XCJsb2FkaW5nSWNvblVSTFwiXG4gICAgW2Vycm9yU3RhdGVWaWV3XT1cImVycm9yU3RhdGVWaWV3XCJcbiAgICBbbG9hZGluZ1N0YXRlVmlld109XCJsb2FkaW5nU3RhdGVWaWV3XCJcbiAgICBbdGl0bGVBbGlnbm1lbnRdPVwidGl0bGVBbGlnbm1lbnRcIlxuICAgIFtzaG93U2VjdGlvbkhlYWRlcl09XCJzaG93U2VjdGlvbkhlYWRlclwiXG4gICAgW2xpc3RJdGVtVmlld109XCJsaXN0SXRlbVZpZXdcIlxuICAgIFttZW51XT1cIm1lbnVcIlxuICAgIFtoaWRlU2VwYXJhdG9yXT1cImhpZGVTZXBhcmF0b3JcIlxuICAgIFtoaWRlRXJyb3JdPVwiaGlkZUVycm9yXCJcbiAgICBbc2VsZWN0aW9uTW9kZV09XCIgc2VsZWN0aW9uTW9kZVwiXG4gICAgW3RpdGxlXT1cInRpdGxlXCIgID5cblxuICAgIDwvY29tZXRjaGF0LXVzZXJzPlxuICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNjLWFkZC1tZW1iZXJzX19idXR0b25zXCI+XG4gICAgICA8Y29tZXRjaGF0LWJ1dHRvbiBjbGFzcz1cImNjLWFkZC1tZW1iZXJzX19idXR0b25zLS1hZGRcIiBbdGV4dF09XCJidXR0b25UZXh0XCIgW2J1dHRvblN0eWxlXT1cImFkZE1lbWJlckJ1dHRvblN0eWxlXCIgKGNsaWNrKT1cImFkZE1lbWJlcnNUb0dyb3VwKClcIiA+PC9jb21ldGNoYXQtYnV0dG9uPlxuXG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiY2MtY2xvc2UtYnV0dG9uXCI+XG4gICAgPGNvbWV0Y2hhdC1idXR0b24gW2ljb25VUkxdPVwiY2xvc2VCdXR0b25JY29uVVJMXCIgW2J1dHRvblN0eWxlXT1cImNsb3NlQnV0dG9uU3R5bGUoKVwiIChjYy1idXR0b24tY2xpY2tlZCk9XCJjbG9zZUNsaWNrZWQoKVwiPlxuXG4gICAgPC9jb21ldGNoYXQtYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==
|