@cometchat/chat-uikit-angular 4.2.0 → 4.3.1
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/CallingExtensionDecorator.d.ts +1 -1
- package/CometChatConversations/cometchat-conversations/cometchat-conversations.component.d.ts +31 -26
- package/CometChatDetails/cometchat-details/cometchat-details.component.d.ts +3 -3
- package/CometChatGroupMembers/cometchat-group-members/cometchat-group-members.component.d.ts +24 -14
- package/CometChatMessageBubble/cometchat-message-bubble/cometchat-message-bubble.component.d.ts +3 -2
- package/CometChatMessageComposer/cometchat-message-composer/cometchat-message-composer.component.d.ts +84 -5
- package/CometChatMessageComposer/cometchat-message-composer.module.d.ts +2 -1
- package/CometChatMessageList/cometchat-message-list/cometchat-message-list.component.d.ts +254 -49
- package/CometChatMessages/cometchat-messages/cometchat-messages.component.d.ts +1 -0
- package/CometChatUserMemberWrapper/cometchat-user-member-wrapper.component.d.ts +41 -0
- package/CometChatUserMemberWrapper/cometchat-user-member-wrapper.module.d.ts +11 -0
- package/CometChatUsers/cometchat-users/cometchat-users.component.d.ts +22 -12
- package/Extensions/CollaborativeDocument/CollaborativeDocumentExtensionDecorator.d.ts +1 -1
- package/Extensions/CollaborativeWhiteboard/CollaborativeWhiteboardExtensionDecorator.d.ts +1 -1
- package/Extensions/PollsExtension/PollsExtensionDecorator.d.ts +1 -1
- package/Extensions/Stickers/StickersExtensionDecorator.d.ts +3 -3
- package/Extensions/TextModerator/TextModeratorExtensionDecorator.d.ts +1 -1
- package/README.md +7 -8
- package/Shared/CometChatUIkit/CometChatUIKit.d.ts +5 -4
- package/Shared/Framework/DataSource.d.ts +11 -4
- package/Shared/Framework/DataSourceDecorator.d.ts +10 -3
- package/Shared/Utils/MessageUtils.d.ts +99 -2
- package/Shared/Views/AIAssistBotMessageList/aiassist-bot-message-list/aiassist-bot-message-list.component.d.ts +2 -2
- package/assets/InfoSimpleIcon.svg +4 -0
- package/assets/message-delivered.svg +4 -3
- package/assets/message-read.svg +4 -3
- package/assets/threadIndicatorIcon.svg +11 -0
- package/esm2020/Calls/CallingExtensionDecorator.mjs +26 -13
- package/esm2020/CometChatAddMembers/cometchat-add-members/cometchat-add-members.component.mjs +1 -1
- package/esm2020/CometChatContacts/cometchat-contacts/cometchat-contacts.component.mjs +3 -3
- package/esm2020/CometChatConversations/cometchat-conversations/cometchat-conversations.component.mjs +280 -129
- package/esm2020/CometChatConversationsWithMessages/cometchat-conversations-with-messages/cometchat-conversations-with-messages.component.mjs +3 -3
- package/esm2020/CometChatDetails/cometchat-details/cometchat-details.component.mjs +6 -8
- package/esm2020/CometChatGroupMembers/cometchat-group-members/cometchat-group-members.component.mjs +155 -58
- package/esm2020/CometChatGroupsWithMessages/cometchat-groups-with-messages/cometchat-groups-with-messages.component.mjs +3 -3
- package/esm2020/CometChatMessageBubble/cometchat-message-bubble/cometchat-message-bubble.component.mjs +11 -5
- package/esm2020/CometChatMessageComposer/cometchat-message-composer/cometchat-message-composer.component.mjs +354 -64
- package/esm2020/CometChatMessageComposer/cometchat-message-composer.module.mjs +5 -4
- package/esm2020/CometChatMessageHeader/cometchat-message-header/cometchat-message-header.component.mjs +3 -3
- package/esm2020/CometChatMessageInformation/cometchat-message-information/cometchat-message-information.component.mjs +2 -2
- package/esm2020/CometChatMessageList/cometchat-message-list/cometchat-message-list.component.mjs +780 -287
- package/esm2020/CometChatMessages/cometchat-messages/cometchat-messages.component.mjs +10 -4
- package/esm2020/CometChatThreadedMessages/cometchat-threaded-messages/cometchat-threaded-messages.component.mjs +3 -3
- package/esm2020/CometChatTransferOwnership/cometchat-transfer-ownership/cometchat-transfer-ownership.component.mjs +1 -1
- package/esm2020/CometChatUserMemberWrapper/cometchat-user-member-wrapper.component.mjs +75 -0
- package/esm2020/CometChatUserMemberWrapper/cometchat-user-member-wrapper.module.mjs +21 -0
- package/esm2020/CometChatUsers/cometchat-users/cometchat-users.component.mjs +114 -36
- package/esm2020/CometChatUsersWithMessages/cometchat-users-with-messages/cometchat-users-with-messages.component.mjs +1 -1
- package/esm2020/Extensions/CollaborativeDocument/CollaborativeDocumentExtensionDecorator.mjs +18 -13
- package/esm2020/Extensions/CollaborativeWhiteboard/CollaborativeWhiteboardExtensionDecorator.mjs +19 -13
- package/esm2020/Extensions/PollsExtension/PollsExtensionDecorator.mjs +10 -8
- package/esm2020/Extensions/Stickers/StickersExtensionDecorator.mjs +22 -18
- package/esm2020/Extensions/TextModerator/TextModeratorExtensionDecorator.mjs +62 -7
- package/esm2020/Shared/CometChatUIkit/CometChatUIKit.mjs +24 -9
- package/esm2020/Shared/Framework/DataSource.mjs +1 -1
- package/esm2020/Shared/Framework/DataSourceDecorator.mjs +24 -3
- package/esm2020/Shared/Utils/MessageUtils.mjs +252 -11
- package/esm2020/Shared/Views/AIAssistBotMessageList/aiassist-bot-message-list/aiassist-bot-message-list.component.mjs +5 -4
- package/esm2020/public-api.mjs +4 -4
- package/fesm2015/cometchat-chat-uikit-angular.mjs +4326 -2830
- package/fesm2015/cometchat-chat-uikit-angular.mjs.map +1 -1
- package/fesm2020/cometchat-chat-uikit-angular.mjs +4329 -2808
- package/fesm2020/cometchat-chat-uikit-angular.mjs.map +1 -1
- package/package.json +5 -5
- package/public-api.d.ts +3 -3
- package/Extensions/Reactions/ReactionExtension.d.ts +0 -5
- package/Extensions/Reactions/ReactionExtensionDecorator.d.ts +0 -9
- package/esm2020/Extensions/Reactions/ReactionExtension.mjs +0 -12
- package/esm2020/Extensions/Reactions/ReactionExtensionDecorator.mjs +0 -31
|
@@ -325,10 +325,10 @@ export class CometChatConversationsWithMessagesComponent {
|
|
|
325
325
|
}
|
|
326
326
|
}
|
|
327
327
|
CometChatConversationsWithMessagesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CometChatConversationsWithMessagesComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.CometChatThemeService }], target: i0.ɵɵFactoryTarget.Component });
|
|
328
|
-
CometChatConversationsWithMessagesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: CometChatConversationsWithMessagesComponent, selector: "cometchat-conversations-with-messages", inputs: { user: "user", group: "group", isMobileView: "isMobileView", messageText: "messageText", conversationsWithMessagesStyle: "conversationsWithMessagesStyle", messagesConfiguration: "messagesConfiguration", conversationConfiguration: "conversationConfiguration", onError: "onError", startNewConversationIconURL: "startNewConversationIconURL", hideStartNewConversation: "hideStartNewConversation", StartConversationConfiguration: "StartConversationConfiguration" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"cc-with-messages__wrapper\" [ngStyle]=\"chatsWrapperStyles()\"
|
|
328
|
+
CometChatConversationsWithMessagesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: CometChatConversationsWithMessagesComponent, selector: "cometchat-conversations-with-messages", inputs: { user: "user", group: "group", isMobileView: "isMobileView", messageText: "messageText", conversationsWithMessagesStyle: "conversationsWithMessagesStyle", messagesConfiguration: "messagesConfiguration", conversationConfiguration: "conversationConfiguration", onError: "onError", startNewConversationIconURL: "startNewConversationIconURL", hideStartNewConversation: "hideStartNewConversation", StartConversationConfiguration: "StartConversationConfiguration" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"cc-with-messages__wrapper\" [ngStyle]=\"chatsWrapperStyles()\">\n <div class=\"cc-with-messages__sidebar\" [ngClass]=\"{mobile : isMobileView}\"\n [ngStyle]=\"sideBarStyle\">\n <cometchat-conversations #conversationRef\n [activeConversation]=\"activeConversation\"\n [onItemClick]=\"conversationConfiguration.onItemClick || onItemClick\"\n [conversationsStyle]=\"conversationConfiguration.conversationsStyle\"\n [statusIndicatorStyle]=\"conversationConfiguration?.statusIndicatorStyle\"\n [avatarStyle]=\"conversationConfiguration?.avatarStyle!\"\n [subtitleView]=\"conversationConfiguration.subtitleView\"\n [options]=\"conversationConfiguration.options\"\n [disableUsersPresence]=\"conversationConfiguration.disableUsersPresence\"\n [disableReceipt]=\"conversationConfiguration.disableReceipt\"\n [disableTyping]=\"conversationConfiguration.disableTyping\"\n [deliveredIcon]=\"conversationConfiguration.deliveredIcon\"\n [readIcon]=\"conversationConfiguration.readIcon\"\n [waitIcon]=\"conversationConfiguration.waitIcon\"\n [errorIcon]=\"conversationConfiguration.errorIcon\"\n [datePattern]=\"conversationConfiguration.datePattern\"\n [receiptStyle]=\"conversationConfiguration.receiptStyle\"\n [sentIcon]=\"conversationConfiguration.sentIcon\"\n [privateGroupIcon]=\"conversationConfiguration.privateGroupIcon\"\n [protectedGroupIcon]=\"conversationConfiguration.protectedGroupIcon\"\n [customSoundForMessages]=\"conversationConfiguration.customSoundForMessages\"\n [conversationsRequestBuilder]=\"conversationConfiguration.conversationsRequestBuilder\"\n [emptyStateView]=\"conversationConfiguration.emptyStateView\"\n [onSelect]=\"conversationConfiguration.onSelect\"\n [loadingIconURL]=\"conversationConfiguration.loadingIconURL\"\n [errorStateView]=\"conversationConfiguration.errorStateView\"\n [loadingStateView]=\"conversationConfiguration.loadingStateView\"\n [titleAlignment]=\"conversationConfiguration.titleAlignment\"\n [listItemView]=\"conversationConfiguration.listItemView\"\n [menu]=\"conversationConfiguration.menu || startConversationButton\"\n [hideSeparator]=\"conversationConfiguration.hideSeparator\"\n [hideError]=\"conversationConfiguration.hideError\"\n [selectionMode]=\"conversationConfiguration.selectionMode\"\n [disableSoundForMessages]=\"conversationConfiguration.disableSoundForMessages\"\n [deleteConversationDialogStyle]=\"conversationConfiguration.deleteConversationDialogStyle\"\n [badgeStyle]=\"conversationConfiguration.badgeStyle\"\n [dateStyle]=\"conversationConfiguration.dateStyle\"\n [listItemStyle]=\"conversationConfiguration.listItemStyle\"\n [backdropStyle]=\"conversationConfiguration.backdropStyle\"\n [textFormatters]=\"conversationConfiguration?.textFormatters\"\n [disableMentions]=\"conversationConfiguration.disableMentions\"></cometchat-conversations>\n </div>\n <div class=\"cc-with-messages__main\" [ngClass]=\"{mobile : isMobileView}\"\n *ngIf=\"!showStartConversation && (user || group)\">\n <!--Message List Screen-->\n <cometchat-messages #messagesRef [user]=\"user!\" [group]=\"group!\"\n [messageHeaderConfiguration]=\"messagesConfiguration.messageHeaderConfiguration\"\n [messageListConfiguration]=\"messagesConfiguration.messageListConfiguration\"\n [messageComposerConfiguration]=\"messagesConfiguration.messageComposerConfiguration\"\n [messagesStyle]=\"messagesConfiguration.messagesStyle\"\n [customSoundForIncomingMessages]=\"messagesConfiguration.customSoundForIncomingMessages\"\n [customSoundForOutgoingMessages]=\"messagesConfiguration.customSoundForOutgoingMessages\"\n [detailsConfiguration]=\"messagesConfiguration.detailsConfiguration\"\n [disableSoundForMessages]=\"messagesConfiguration.disableSoundForMessages\"\n [disableTyping]=\"messagesConfiguration.disableTyping\"\n [hideMessageComposer]=\"messagesConfiguration.hideMessageComposer\"\n [hideMessageHeader]=\"messagesConfiguration.hideMessageHeader\"\n [messageComposerView]=\"messagesConfiguration.messageComposerView\"\n [messageHeaderView]=\"messagesConfiguration.messageHeaderView\"\n [messageListView]=\"messagesConfiguration.messageListView\"\n [hideDetails]=\"messagesConfiguration.hideDetails!\"\n [threadedMessageConfiguration]=\"messagesConfiguration.threadedMessageConfiguration\">\n </cometchat-messages>\n <!--Message List Screen ENDS-->\n </div>\n <div class=\"cc-with-messages__start-conversation\"\n [ngClass]=\"{mobile : isMobileView}\" *ngIf=\"showStartConversation\">\n\n <cometchat-contacts\n [usersConfiguration]=\"StartConversationConfiguration?.usersConfiguration!\"\n [groupsConfiguration]=\"StartConversationConfiguration?.groupsConfiguration!\"\n [closeIconURL]=\"StartConversationConfiguration?.closeIconURL!\"\n [contactsStyle]=\"StartConversationConfiguration?.contactsStyle!\"\n [selectionMode]=\"StartConversationConfiguration?.selectionMode!\"\n [onClose]=\"StartConversationConfiguration?.onClose!\"\n [tabVisibility]=\"StartConversationConfiguration?.tabVisibility!\"\n [selectionLimit]=\"StartConversationConfiguration?.selectionLimit!\"\n [tabs]=\"StartConversationConfiguration?.tabs!\"\n [hideSubmitButton]=\"StartConversationConfiguration?.hideSubmitButton!\"\n [onSubmitButtonClick]=\"onContactSelected\"></cometchat-contacts>\n </div>\n <div class=\"cc-decorator__message--empty\"\n *ngIf=\"!user && !group && !showStartConversation\"\n [ngStyle]=\"emptyMessageStyle()\">\n <cometchat-label [text]=\"messageText\"\n [labelStyle]=\"labelStyle\"></cometchat-label>\n </div>\n <ng-template #startConversationButton>\n <cometchat-button *ngIf=\"!hideStartNewConversation\"\n [iconURL]=\"startNewConversationIconURL\"\n [buttonStyle]=\"startConversationButtonStyle\"\n (cc-button-clicked)=\"triggerStartConversation()\"></cometchat-button>\n\n </ng-template>\n", styles: [".cc-with-messages__wrapper{display:flex;height:100%;width:100%;box-sizing:border-box;overflow:hidden}.cc-with-messages__sidebar{width:280px;height:100%;position:relative}.cc-with-messages__main,.cc-with-messages__start-conversation{width:calc(100% - 280px);height:100%}.mobile{width:100%!important;height:100%;position:absolute}.cc-decorator__message--empty{display:flex;justify-content:center;align-items:center}\n"], components: [{ type: i2.CometChatConversationsComponent, selector: "cometchat-conversations", inputs: ["subtitleView", "title", "options", "searchPlaceHolder", "disableUsersPresence", "disableReceipt", "disableTyping", "deliveredIcon", "readIcon", "errorIcon", "datePattern", "onError", "sentIcon", "privateGroupIcon", "protectedGroupIcon", "customSoundForMessages", "activeConversation", "searchIconURL", "hideSearch", "conversationsRequestBuilder", "emptyStateView", "onSelect", "loadingIconURL", "errorStateView", "loadingStateView", "emptyStateText", "errorStateText", "titleAlignment", "listItemView", "menu", "hideSeparator", "searchPlaceholder", "hideError", "selectionMode", "disableSoundForMessages", "confirmDialogTitle", "confirmButtonText", "cancelButtonText", "confirmDialogMessage", "onItemClick", "deleteConversationDialogStyle", "backdropStyle", "badgeStyle", "dateStyle", "conversationsStyle", "listItemStyle", "statusIndicatorStyle", "typingIndicatorText", "threadIndicatorText", "avatarStyle", "receiptStyle", "loggedInUser", "disableMentions", "textFormatters"] }, { type: i3.CometChatMessagesComponent, selector: "cometchat-messages", inputs: ["user", "group", "currentAskAIBot", "hideMessageComposer", "disableTyping", "messageHeaderConfiguration", "messageListConfiguration", "messageComposerConfiguration", "threadedMessageConfiguration", "detailsConfiguration", "customSoundForIncomingMessages", "customSoundForOutgoingMessages", "disableSoundForMessages", "messagesStyle", "messageHeaderView", "messageComposerView", "messageListView", "hideMessageHeader", "hideDetails", "auxiliaryMenu"] }, { type: i4.CometChatContactsComponent, selector: "cometchat-contacts", inputs: ["title", "usersTabTitle", "groupsTabTitle", "usersConfiguration", "groupsConfiguration", "onSubmitButtonClick", "closeIconURL", "contactsStyle", "selectionMode", "onClose", "onItemClick", "tabVisibility", "selectionLimit", "tabs", "hideSubmitButton", "submitButtonText"] }], directives: [{ type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
329
329
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CometChatConversationsWithMessagesComponent, decorators: [{
|
|
330
330
|
type: Component,
|
|
331
|
-
args: [{ selector: "cometchat-conversations-with-messages", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"cc-with-messages__wrapper\" [ngStyle]=\"chatsWrapperStyles()\"
|
|
331
|
+
args: [{ selector: "cometchat-conversations-with-messages", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"cc-with-messages__wrapper\" [ngStyle]=\"chatsWrapperStyles()\">\n <div class=\"cc-with-messages__sidebar\" [ngClass]=\"{mobile : isMobileView}\"\n [ngStyle]=\"sideBarStyle\">\n <cometchat-conversations #conversationRef\n [activeConversation]=\"activeConversation\"\n [onItemClick]=\"conversationConfiguration.onItemClick || onItemClick\"\n [conversationsStyle]=\"conversationConfiguration.conversationsStyle\"\n [statusIndicatorStyle]=\"conversationConfiguration?.statusIndicatorStyle\"\n [avatarStyle]=\"conversationConfiguration?.avatarStyle!\"\n [subtitleView]=\"conversationConfiguration.subtitleView\"\n [options]=\"conversationConfiguration.options\"\n [disableUsersPresence]=\"conversationConfiguration.disableUsersPresence\"\n [disableReceipt]=\"conversationConfiguration.disableReceipt\"\n [disableTyping]=\"conversationConfiguration.disableTyping\"\n [deliveredIcon]=\"conversationConfiguration.deliveredIcon\"\n [readIcon]=\"conversationConfiguration.readIcon\"\n [waitIcon]=\"conversationConfiguration.waitIcon\"\n [errorIcon]=\"conversationConfiguration.errorIcon\"\n [datePattern]=\"conversationConfiguration.datePattern\"\n [receiptStyle]=\"conversationConfiguration.receiptStyle\"\n [sentIcon]=\"conversationConfiguration.sentIcon\"\n [privateGroupIcon]=\"conversationConfiguration.privateGroupIcon\"\n [protectedGroupIcon]=\"conversationConfiguration.protectedGroupIcon\"\n [customSoundForMessages]=\"conversationConfiguration.customSoundForMessages\"\n [conversationsRequestBuilder]=\"conversationConfiguration.conversationsRequestBuilder\"\n [emptyStateView]=\"conversationConfiguration.emptyStateView\"\n [onSelect]=\"conversationConfiguration.onSelect\"\n [loadingIconURL]=\"conversationConfiguration.loadingIconURL\"\n [errorStateView]=\"conversationConfiguration.errorStateView\"\n [loadingStateView]=\"conversationConfiguration.loadingStateView\"\n [titleAlignment]=\"conversationConfiguration.titleAlignment\"\n [listItemView]=\"conversationConfiguration.listItemView\"\n [menu]=\"conversationConfiguration.menu || startConversationButton\"\n [hideSeparator]=\"conversationConfiguration.hideSeparator\"\n [hideError]=\"conversationConfiguration.hideError\"\n [selectionMode]=\"conversationConfiguration.selectionMode\"\n [disableSoundForMessages]=\"conversationConfiguration.disableSoundForMessages\"\n [deleteConversationDialogStyle]=\"conversationConfiguration.deleteConversationDialogStyle\"\n [badgeStyle]=\"conversationConfiguration.badgeStyle\"\n [dateStyle]=\"conversationConfiguration.dateStyle\"\n [listItemStyle]=\"conversationConfiguration.listItemStyle\"\n [backdropStyle]=\"conversationConfiguration.backdropStyle\"\n [textFormatters]=\"conversationConfiguration?.textFormatters\"\n [disableMentions]=\"conversationConfiguration.disableMentions\"></cometchat-conversations>\n </div>\n <div class=\"cc-with-messages__main\" [ngClass]=\"{mobile : isMobileView}\"\n *ngIf=\"!showStartConversation && (user || group)\">\n <!--Message List Screen-->\n <cometchat-messages #messagesRef [user]=\"user!\" [group]=\"group!\"\n [messageHeaderConfiguration]=\"messagesConfiguration.messageHeaderConfiguration\"\n [messageListConfiguration]=\"messagesConfiguration.messageListConfiguration\"\n [messageComposerConfiguration]=\"messagesConfiguration.messageComposerConfiguration\"\n [messagesStyle]=\"messagesConfiguration.messagesStyle\"\n [customSoundForIncomingMessages]=\"messagesConfiguration.customSoundForIncomingMessages\"\n [customSoundForOutgoingMessages]=\"messagesConfiguration.customSoundForOutgoingMessages\"\n [detailsConfiguration]=\"messagesConfiguration.detailsConfiguration\"\n [disableSoundForMessages]=\"messagesConfiguration.disableSoundForMessages\"\n [disableTyping]=\"messagesConfiguration.disableTyping\"\n [hideMessageComposer]=\"messagesConfiguration.hideMessageComposer\"\n [hideMessageHeader]=\"messagesConfiguration.hideMessageHeader\"\n [messageComposerView]=\"messagesConfiguration.messageComposerView\"\n [messageHeaderView]=\"messagesConfiguration.messageHeaderView\"\n [messageListView]=\"messagesConfiguration.messageListView\"\n [hideDetails]=\"messagesConfiguration.hideDetails!\"\n [threadedMessageConfiguration]=\"messagesConfiguration.threadedMessageConfiguration\">\n </cometchat-messages>\n <!--Message List Screen ENDS-->\n </div>\n <div class=\"cc-with-messages__start-conversation\"\n [ngClass]=\"{mobile : isMobileView}\" *ngIf=\"showStartConversation\">\n\n <cometchat-contacts\n [usersConfiguration]=\"StartConversationConfiguration?.usersConfiguration!\"\n [groupsConfiguration]=\"StartConversationConfiguration?.groupsConfiguration!\"\n [closeIconURL]=\"StartConversationConfiguration?.closeIconURL!\"\n [contactsStyle]=\"StartConversationConfiguration?.contactsStyle!\"\n [selectionMode]=\"StartConversationConfiguration?.selectionMode!\"\n [onClose]=\"StartConversationConfiguration?.onClose!\"\n [tabVisibility]=\"StartConversationConfiguration?.tabVisibility!\"\n [selectionLimit]=\"StartConversationConfiguration?.selectionLimit!\"\n [tabs]=\"StartConversationConfiguration?.tabs!\"\n [hideSubmitButton]=\"StartConversationConfiguration?.hideSubmitButton!\"\n [onSubmitButtonClick]=\"onContactSelected\"></cometchat-contacts>\n </div>\n <div class=\"cc-decorator__message--empty\"\n *ngIf=\"!user && !group && !showStartConversation\"\n [ngStyle]=\"emptyMessageStyle()\">\n <cometchat-label [text]=\"messageText\"\n [labelStyle]=\"labelStyle\"></cometchat-label>\n </div>\n <ng-template #startConversationButton>\n <cometchat-button *ngIf=\"!hideStartNewConversation\"\n [iconURL]=\"startNewConversationIconURL\"\n [buttonStyle]=\"startConversationButtonStyle\"\n (cc-button-clicked)=\"triggerStartConversation()\"></cometchat-button>\n\n </ng-template>\n", styles: [".cc-with-messages__wrapper{display:flex;height:100%;width:100%;box-sizing:border-box;overflow:hidden}.cc-with-messages__sidebar{width:280px;height:100%;position:relative}.cc-with-messages__main,.cc-with-messages__start-conversation{width:calc(100% - 280px);height:100%}.mobile{width:100%!important;height:100%;position:absolute}.cc-decorator__message--empty{display:flex;justify-content:center;align-items:center}\n"] }]
|
|
332
332
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.CometChatThemeService }]; }, propDecorators: { user: [{
|
|
333
333
|
type: Input
|
|
334
334
|
}], group: [{
|
|
@@ -352,4 +352,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
352
352
|
}], StartConversationConfiguration: [{
|
|
353
353
|
type: Input
|
|
354
354
|
}] } });
|
|
355
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tZXRjaGF0LWNvbnZlcnNhdGlvbnMtd2l0aC1tZXNzYWdlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jaGF0LXVpa2l0LWFuZ3VsYXIvc3JjL0NvbWV0Q2hhdENvbnZlcnNhdGlvbnNXaXRoTWVzc2FnZXMvY29tZXRjaGF0LWNvbnZlcnNhdGlvbnMtd2l0aC1tZXNzYWdlcy9jb21ldGNoYXQtY29udmVyc2F0aW9ucy13aXRoLW1lc3NhZ2VzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NoYXQtdWlraXQtYW5ndWxhci9zcmMvQ29tZXRDaGF0Q29udmVyc2F0aW9uc1dpdGhNZXNzYWdlcy9jb21ldGNoYXQtY29udmVyc2F0aW9ucy13aXRoLW1lc3NhZ2VzL2NvbWV0Y2hhdC1jb252ZXJzYXRpb25zLXdpdGgtbWVzc2FnZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsS0FBSyxFQUFFLHVCQUF1QixFQUEyRCxNQUFNLGVBQWUsQ0FBQztBQUN0SixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixFQUFFLDBCQUEwQixFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFDckksT0FBTyxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFtQixvQkFBb0IsRUFBRSx1QkFBdUIsRUFBNkksMkJBQTJCLEVBQXlDLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFFblgsT0FBTywyQkFBMkIsQ0FBQTs7Ozs7OztBQUdsQzs7Ozs7Ozs7RUFRRTtBQU9GLE1BQU0sT0FBTywyQ0FBMkM7SUFnRHRELFlBQW9CLFVBQXNCLEVBQVUsR0FBc0IsRUFBVSxZQUFtQztRQUFuRyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFBVSxpQkFBWSxHQUFaLFlBQVksQ0FBdUI7UUE1QzlHLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBQzlCLGdCQUFXLEdBQVcsUUFBUSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDcEQsbUNBQThCLEdBQXNCLEVBQUUsQ0FBQztRQUN2RCwwQkFBcUIsR0FBMEIsSUFBSSxxQkFBcUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM3RSw4QkFBeUIsR0FBK0IsSUFBSSwwQkFBMEIsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMzRixZQUFPLEdBQTJELENBQUMsS0FBbUMsRUFBRSxFQUFFO1lBQ2pILE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDcEIsQ0FBQyxDQUFBO1FBQ1EsZ0NBQTJCLEdBQVcscUJBQXFCLENBQUE7UUFDM0QsNkJBQXdCLEdBQVksS0FBSyxDQUFDO1FBQzFDLG1DQUE4QixHQUEwQixJQUFJLHFCQUFxQixDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQzlGLFVBQUssR0FBbUIsSUFBSSxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDL0M7O1dBRUc7UUFDSSwwQkFBcUIsR0FBWSxLQUFLLENBQUM7UUFHOUMsZUFBVSxHQUFRO1lBQ2hCLFVBQVUsRUFBRSxhQUFhO1lBQ3pCLFFBQVEsRUFBRSxnQkFBZ0I7WUFDMUIsU0FBUyxFQUFFLHdCQUF3QjtTQUNwQyxDQUFBO1FBRU0sZUFBVSxHQUFZLElBQUksQ0FBQztRQUNsQyxpQ0FBNEIsR0FBUSxFQUVuQyxDQUFBO1FBWUQsaUJBQVksR0FBUSxFQUVuQixDQUFBO1FBNkNELFdBQU0sR0FBRyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQTtZQUNoQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQTtZQUNqQixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFBO1FBQ2hDLENBQUMsQ0FBQTtRQXdCTSxzQkFBaUIsR0FBRyxDQUFDLEtBQXdCLEVBQUUsTUFBMEIsRUFBRSxFQUFFO1lBQ2xGLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUM7WUFDbkMsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNyQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQTtnQkFDakIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBRXJCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUE7YUFDekI7WUFDRCxJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3ZCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFBO2dCQUNoQixJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQTthQUN6QjtRQUNILENBQUMsQ0FBQTtRQUNNLGdCQUFXLEdBQXFELENBQUMsWUFBb0MsRUFBRSxFQUFFO1lBQzlHLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxZQUFZLENBQUE7WUFDdEMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEtBQUssQ0FBQztZQUNuQyxJQUFJLFlBQVksQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLFlBQVksQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLHVCQUF1QixDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRTtnQkFDaEksSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUE7Z0JBQ2pCLElBQUksQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDLG1CQUFtQixFQUFvQixDQUFDO2dCQUNqRSxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFBO2FBQ3pCO2lCQUNJLElBQUksWUFBWSxDQUFDLG1CQUFtQixFQUFFLElBQUksWUFBWSxDQUFDLG1CQUFtQixFQUFFLElBQUksdUJBQXVCLENBQUMsbUJBQW1CLENBQUMsS0FBSyxFQUFFO2dCQUN0SSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQTtnQkFDaEIsSUFBSSxDQUFDLEtBQUssR0FBRyxZQUFZLENBQUMsbUJBQW1CLEVBQXFCLENBQUE7Z0JBQ2xFLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUE7YUFDekI7UUFDSCxDQUFDLENBQUM7UUE4Q0YsMkJBQXNCLEdBQUcsR0FBRyxFQUFFO1lBQzVCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFDckMsQ0FBQyxDQUFBO1FBdUhELHNCQUFpQixHQUFHLEdBQUcsRUFBRTtZQUN2QixPQUFPO2dCQUNMLFVBQVUsRUFBRSxJQUFJLENBQUMsOEJBQThCLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUU7Z0JBQzdHLE1BQU0sRUFBRSxJQUFJLENBQUMsOEJBQThCLENBQUMsTUFBTTtnQkFDbEQsS0FBSyxFQUFFLFFBQVEsSUFBSSxDQUFDLDhCQUE4QixDQUFDLEtBQUssV0FBVztnQkFDbkUsTUFBTSxFQUFFLE1BQU07Z0JBQ2QsWUFBWSxFQUFFLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxZQUFZO2FBQy9ELENBQUE7UUFDSCxDQUFDLENBQUE7UUFDRCx1QkFBa0IsR0FBRyxHQUFHLEVBQUU7WUFDeEIsT0FBTztnQkFDTCxNQUFNLEVBQUUsSUFBSSxDQUFDLDhCQUE4QixDQUFDLE1BQU07Z0JBQ2xELEtBQUssRUFBRSxJQUFJLENBQUMsOEJBQThCLENBQUMsS0FBSztnQkFDaEQsTUFBTSxFQUFFLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxNQUFNO2dCQUNsRCxZQUFZLEVBQUUsSUFBSSxDQUFDLDhCQUE4QixDQUFDLFlBQVk7Z0JBQzlELFVBQVUsRUFBRSxJQUFJLENBQUMsOEJBQThCLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUU7YUFDOUcsQ0FBQTtRQUNILENBQUMsQ0FBQTtJQXhSRCxDQUFDO0lBQ0QsV0FBVyxDQUFDLE9BQXNCO1FBRWhDLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxFQUFFO1lBQzNCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDckIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLDBCQUEwQixDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7Z0JBQzdFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQTtnQkFDOUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLG9CQUFvQixDQUFDLHVCQUF1QixDQUFDLGVBQWUsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFBO2dCQUN6RyxJQUFJLENBQUMscUJBQXFCLENBQUMsb0JBQW9CLENBQUMseUJBQXlCLENBQUMsaUJBQWlCLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQTtnQkFDN0csSUFBSSxDQUFDLHFCQUFxQixDQUFDLG9CQUFvQixDQUFDLDBCQUEwQixDQUFDLGtCQUFrQixDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUE7Z0JBQy9HLElBQUksQ0FBQyxxQkFBcUIsQ0FBQywwQkFBMEIsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLDBCQUEwQixFQUFFLENBQUE7Z0JBQ3BILElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxhQUFhLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztnQkFDcEUsSUFBSSxDQUFDLDhCQUE4QixHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsOEJBQThCLEVBQUUsQ0FBQTtnQkFFaEYsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQTthQUMvRDtpQkFDSSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDM0IsSUFBSSxDQUFDLHFCQUFxQixDQUFDLHdCQUF3QixDQUFDLCtCQUErQixDQUFDLHVCQUF1QixDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUE7Z0JBQzVILElBQUksQ0FBQyxxQkFBcUIsQ0FBQyx3QkFBd0IsQ0FBQywrQkFBK0IsQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFBO2dCQUMzSCxJQUFJLENBQUMscUJBQXFCLENBQUMsMEJBQTBCLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztnQkFDNUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLG9CQUFvQixDQUFDLFlBQVksQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFBO2dCQUNoRixJQUFJLENBQUMscUJBQXFCLENBQUMsb0JBQW9CLENBQUMsdUJBQXVCLENBQUMsZUFBZSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUE7Z0JBQzNHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxvQkFBb0IsQ0FBQyx5QkFBeUIsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFBO2dCQUMvRyxJQUFJLENBQUMscUJBQXFCLENBQUMsb0JBQW9CLENBQUMsMEJBQTBCLENBQUMsa0JBQWtCLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQTtnQkFDakgsSUFBSSxDQUFDLDhCQUE4QixDQUFDLGFBQWEsQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDO2dCQUN0RSxJQUFJLENBQUMsOEJBQThCLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyw4QkFBOEIsRUFBRSxDQUFBO2dCQUNoRixJQUFJLENBQUMscUJBQXFCLENBQUMsMEJBQTBCLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQywwQkFBMEIsRUFBRSxDQUFBO2dCQUNwSCxJQUFJLENBQUMscUJBQXFCLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFBO2FBRS9EO1lBQ0QsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQTtZQUM3QixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDVDtRQUNELElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUN2QyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDdEI7SUFDSCxDQUFDO0lBQ0Qsd0JBQXdCO1FBQ3RCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUM7SUFDcEMsQ0FBQztJQU1ELG9CQUFvQjtRQUNsQixJQUFJLFlBQVksR0FBc0IsSUFBSSxpQkFBaUIsQ0FBQztZQUMxRCxLQUFLLEVBQUUsTUFBTTtZQUNiLE1BQU0sRUFBRSxNQUFNO1lBQ2QsVUFBVSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUU7WUFDM0QsWUFBWSxFQUFFLE1BQU07WUFDcEIsTUFBTSxFQUFFLGFBQWEsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxFQUFFO1lBQ3JFLGdCQUFnQixFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUU7WUFDaEUsZUFBZSxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO1NBQ3ZFLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyw4QkFBOEIsR0FBRztZQUNwQyxHQUFHLFlBQVk7WUFDZixHQUFHLElBQUksQ0FBQyw4QkFBOEI7U0FDdkMsQ0FBQTtRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxlQUFlLENBQUE7UUFDOUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLDhCQUE4QixDQUFDLGdCQUFnQixDQUFBO1FBQ2hGLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQTtRQUMzRyxJQUFJLENBQUMseUJBQXlCLENBQUMsa0JBQWtCLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFBO1FBQzdILElBQUksQ0FBQyxJQUFJLENBQUMseUJBQXlCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxJQUFJLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLElBQUksTUFBTSxFQUFFO1lBQ3ZJLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLDhCQUE4QixDQUFDLE1BQU0sRUFBRSxDQUFBO1NBRWhGO0lBQ0gsQ0FBQztJQTZCRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUE7SUFDN0IsQ0FBQztJQUNELG9CQUFvQjtRQUNsQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUM7UUFDN0QsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDO1FBQzNELElBQUksYUFBYSxHQUFHO1lBQ2xCLE1BQU0sRUFBRSxTQUFTLEdBQUcsSUFBSTtZQUN4QixLQUFLLEVBQUUsUUFBUSxHQUFHLElBQUk7WUFDdEIsVUFBVSxFQUFFLG9CQUFvQjtZQUNoQyxRQUFRLEVBQUUsT0FBTztTQUNsQixDQUFBO1FBQ0QsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxvQkFBb0IsQ0FBQyw4QkFBOEIsQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBQ3ZJLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxvQkFBb0IsQ0FBQyw4QkFBOEIsQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLEdBQUcsUUFBUSxHQUFHLElBQUksQ0FBQztZQUM5SCxJQUFJLENBQUMscUJBQXFCLENBQUMsd0JBQXdCLENBQUMsK0JBQStCLENBQUMsdUJBQXVCLENBQUMsTUFBTSxHQUFHLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDdEksSUFBSSxDQUFDLHFCQUFxQixDQUFDLHdCQUF3QixDQUFDLCtCQUErQixDQUFDLHVCQUF1QixDQUFDLEtBQUssR0FBRyxRQUFRLEdBQUcsSUFBSSxDQUFDO1NBQ3JJO2FBQ0k7WUFDSCxJQUFJLENBQUMscUJBQXFCLENBQUMsb0JBQW9CLENBQUMsOEJBQThCLENBQUMsc0JBQXNCLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQztZQUN2SCxJQUFJLENBQUMscUJBQXFCLENBQUMsb0JBQW9CLENBQUMsOEJBQThCLENBQUMsc0JBQXNCLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQztTQUN2SDtRQUNELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyx3QkFBd0IsQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1FBQ2xGLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1FBQzdELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1FBQzlFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyw0QkFBNEIsQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1FBQ3RGLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1FBQzlFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxvQkFBb0IsQ0FBQyx5QkFBeUIsQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1FBRXhHLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUE7SUFDMUIsQ0FBQztJQUNELGFBQWE7UUFDWCxJQUFJLElBQUksR0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQTtRQUNuSSxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFBO1FBQzlCLElBQUksZ0JBQWdCLEdBQVcsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRyxDQUFBO1FBQzdFLFNBQVMsQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBb0MsRUFBRSxFQUFFO1lBQzlGLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxZQUFZLENBQUE7WUFDdEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQTtRQUMxQixDQUFDLENBQUM7YUFDQyxLQUFLLENBQUMsQ0FBQyxLQUFtQyxFQUFFLEVBQUU7WUFDN0MsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNoQixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO2FBQ3BCO1FBQ0gsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDO0lBSUQsUUFBUTtRQUNOLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQTtRQUNqRixJQUFJLENBQUMsOEJBQThCLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7UUFDbkYsSUFBSSxDQUFDLDhCQUE4QixDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUE7UUFDekUsSUFBSSxDQUFDLDRCQUE0QixHQUFHO1lBQ2xDLE1BQU0sRUFBRSxNQUFNO1lBQ2QsS0FBSyxFQUFFLE1BQU07WUFDYixNQUFNLEVBQUUsTUFBTTtZQUNkLFlBQVksRUFBRSxHQUFHO1lBQ2pCLFVBQVUsRUFBRSxhQUFhO1lBQ3pCLGNBQWMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFO1NBQzdELENBQUE7UUFDRCxJQUFJLENBQUMsOEJBQThCLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyw4QkFBOEIsRUFBRSxDQUFBO1FBQ2hGLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFBO1FBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsMEJBQTBCLENBQUMsTUFBTSxFQUFFO1lBQ2pFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQywwQkFBMEIsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQTtTQUMzRTtRQUNELElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3pCLFNBQVMsQ0FBQyxlQUFlLEVBQUU7YUFDeEIsSUFBSSxDQUFDLENBQUMsSUFBMkIsRUFBRSxFQUFFO1lBQ3BDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQzNCLENBQUMsQ0FBQzthQUNELEtBQUssQ0FBQyxDQUFDLEtBQW1DLEVBQUUsRUFBRTtZQUM3QyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQ2hCLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7YUFDcEI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUVQLENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUNELDZCQUE2QjtJQUM3QixpQkFBaUI7UUFDZixJQUFJLENBQUMscUJBQXFCLEdBQUcsMkJBQTJCLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQUMsWUFBb0MsRUFBRSxFQUFFO1lBQ2hJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLENBQUMsQ0FBQSxDQUFDLG9GQUFvRjtRQUM5SCxDQUFDLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxjQUFjLEdBQUcsb0JBQW9CLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQXNCLEVBQUUsRUFBRTtZQUM3RixJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQ3pELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO2dCQUNsQixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO2dCQUMvQixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFBO2FBQ3pCO1FBQ0gsQ0FBQyxDQUFDLENBQUE7UUFDRixJQUFJLENBQUMsa0JBQWtCLEdBQUcsb0JBQW9CLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBdUIsRUFBRSxFQUFFO1lBQ3RHLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxJQUFJLElBQUksRUFBRSxXQUFZLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQ3RFLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxFQUFFLFdBQVcsQ0FBQztnQkFDL0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQTthQUN6QjtRQUNILENBQUMsQ0FBQyxDQUFBO1FBQ0YsSUFBSSxDQUFDLG1CQUFtQixHQUFHLG9CQUFvQixDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQThCLEVBQUUsRUFBRTtZQUMvRyxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsSUFBSSxJQUFJLEVBQUUsVUFBVyxDQUFDLE9BQU8sRUFBRSxFQUFFO2dCQUNyRSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksRUFBRSxVQUFVLENBQUM7Z0JBQzlCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUE7YUFDekI7UUFDSCxDQUFDLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxvQkFBb0IsQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUF3QixFQUFFLEVBQUU7WUFDekcsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLElBQUksSUFBSSxFQUFFLFdBQVksQ0FBQyxPQUFPLEVBQUUsRUFBRTtnQkFDdEUsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLEVBQUUsV0FBVyxDQUFDO2dCQUMvQixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFBO2FBQ3pCO1FBQ0gsQ0FBQyxDQUFDLENBQUE7UUFDRixJQUFJLENBQUMsbUJBQW1CLEdBQUcsb0JBQW9CLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBOEIsRUFBRSxFQUFFO1lBQy9HLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxJQUFJLElBQUksRUFBRSxVQUFXLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQ3JFLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxFQUFFLFVBQVUsQ0FBQztnQkFDOUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQTthQUN6QjtRQUNILENBQUMsQ0FBQyxDQUFBO1FBQ0YsSUFBSSxDQUFDLGtCQUFrQixHQUFHLG9CQUFvQixDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQXVCLEVBQUUsRUFBRTtZQUN0RyxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsSUFBSSxJQUFJLEVBQUUsS0FBTSxDQUFDLE9BQU8sRUFBRSxFQUFFO2dCQUNoRSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksRUFBRSxLQUFLLENBQUM7Z0JBQ3pCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7Z0JBQ3hELElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7YUFDMUI7UUFDSCxDQUFDLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxXQUFXLEdBQUcsb0JBQW9CLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQWdCLEVBQUUsRUFBRTtZQUNqRixJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsSUFBSSxJQUFJLEVBQUUsU0FBVSxDQUFDLE9BQU8sRUFBRSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsTUFBTSxFQUFFLElBQUksSUFBSSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsRUFBRTtnQkFDL0gsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7Z0JBQ2xCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUE7YUFDekI7UUFDSCxDQUFDLENBQUMsQ0FBQTtRQUNGLDRDQUE0QztRQUM1QyxJQUFJLENBQUMsVUFBVSxHQUFHLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNoRSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUN6QyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUM1QyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUE7UUFDdEIsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBQ0Qsb0NBQW9DO0lBQ3BDLG1CQUFtQjtRQUNqQixJQUFJLENBQUMscUJBQXFCLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDMUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxXQUFXLEVBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDeEMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxXQUFXLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLFVBQVUsRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBQ0Q7OztPQUdHO0lBQ0gsb0JBQW9CLENBQUMsWUFBb0M7UUFDdkQsTUFBTSxnQkFBZ0IsR0FBRyxZQUFZLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUM1RCxNQUFNLGdCQUFnQixHQUFHLFlBQVksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzVELElBQUksZ0JBQWdCLEtBQUssdUJBQXVCLENBQUMsbUJBQW1CLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBTSxnQkFBbUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUM5SixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztZQUNqQixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQzFCO2FBQU0sSUFBSSxnQkFBZ0IsS0FBSyx1QkFBdUIsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxLQUFNLGdCQUFvQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQzNLLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDMUI7YUFBTTtZQUNMLE9BQU87U0FDUjtJQUNILENBQUM7O3lJQXZUVSwyQ0FBMkM7NkhBQTNDLDJDQUEyQyx3akJDdkJ4RCxrOUtBd0ZnQjs0RkRqRUgsMkNBQTJDO2tCQU52RCxTQUFTOytCQUNFLHVDQUF1QyxtQkFHaEMsdUJBQXVCLENBQUMsTUFBTTtxS0FJdEMsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csOEJBQThCO3NCQUF0QyxLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDRyx5QkFBeUI7c0JBQWpDLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUdHLDJCQUEyQjtzQkFBbkMsS0FBSztnQkFDRyx3QkFBd0I7c0JBQWhDLEtBQUs7Z0JBQ0csOEJBQThCO3NCQUF0QyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCwgSW5wdXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIENoYW5nZURldGVjdG9yUmVmLCBFbGVtZW50UmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENvbWV0Q2hhdCB9IGZyb20gXCJAY29tZXRjaGF0L2NoYXQtc2RrLWphdmFzY3JpcHRcIjtcbmltcG9ydCB7IFdpdGhNZXNzYWdlc1N0eWxlLCBNZXNzYWdlc0NvbmZpZ3VyYXRpb24sIENvbnZlcnNhdGlvbnNDb25maWd1cmF0aW9uLCBDb250YWN0c0NvbmZpZ3VyYXRpb24gfSBmcm9tICdAY29tZXRjaGF0L3Vpa2l0LXNoYXJlZCdcbmltcG9ydCB7IENvbWV0Q2hhdFRoZW1lLCBmb250SGVscGVyLCBsb2NhbGl6ZSwgQ29tZXRDaGF0T3B0aW9uLCBDb21ldENoYXRHcm91cEV2ZW50cywgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMsIElHcm91cExlZnQsIElHcm91cE1lbWJlckFkZGVkLCBJR3JvdXBNZW1iZXJLaWNrZWRCYW5uZWQsIElHcm91cE1lbWJlclNjb3BlQ2hhbmdlZCwgSU1lc3NhZ2VzLCBDb21ldENoYXRVc2VyRXZlbnRzLCBDb21ldENoYXRNZXNzYWdlRXZlbnRzLCBDb21ldENoYXRDb252ZXJzYXRpb25FdmVudHMsIElHcm91cE1lbWJlckpvaW5lZCwgSU93bmVyc2hpcENoYW5nZWQsIENvbWV0Q2hhdFVJRXZlbnRzIH0gZnJvbSAnQGNvbWV0Y2hhdC91aWtpdC1yZXNvdXJjZXMnXG5cbmltcG9ydCAnQGNvbWV0Y2hhdC91aWtpdC1lbGVtZW50cydcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBDb21ldENoYXRUaGVtZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vQ29tZXRDaGF0VGhlbWUuc2VydmljZVwiO1xuLyoqXG4qXG4qIENvbWV0Q2hhdENvbnZlcnNhdGlvbnNXaXRoTWVzc2FnZXNDb21wb25lbnQgaXMgYSB3cmFwcGVyIGNvbXBvbmVudCBmb3IgQ29tZXRDaGF0TWVzc2FnZXNDb21wb25lbnQgYW5kIENvbWV0Q2hhdENvbnZlcnNhdGlvbnMgY29tcG9uZW50IHRvIHNob3cgY2hhdHMgYW5kIG1lc3NhZ2VzIGluIG9uZSBzY3JlZW5cbipcbiogQHZlcnNpb24gMS4wLjBcbiogQGF1dGhvciBDb21ldENoYXRUZWFtXG4qIEBjb3B5cmlnaHQgwqkgMjAyMiBDb21ldENoYXQgSW5jLlxuKlxuKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJjb21ldGNoYXQtY29udmVyc2F0aW9ucy13aXRoLW1lc3NhZ2VzXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vY29tZXRjaGF0LWNvbnZlcnNhdGlvbnMtd2l0aC1tZXNzYWdlcy5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vY29tZXRjaGF0LWNvbnZlcnNhdGlvbnMtd2l0aC1tZXNzYWdlcy5jb21wb25lbnQuc2Nzc1wiXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIENvbWV0Q2hhdENvbnZlcnNhdGlvbnNXaXRoTWVzc2FnZXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIC8vIHRha2luZyByZWZlcmVuY2Ugb2YgY29udmVyc2F0aW9uQ29tcG9uZW50IGFuZCBNZXNzYWdlc0NvbXBvbmVudFxuICBASW5wdXQoKSB1c2VyITogQ29tZXRDaGF0LlVzZXIgfCBudWxsO1xuICBASW5wdXQoKSBncm91cCE6IENvbWV0Q2hhdC5Hcm91cCB8IG51bGw7XG4gIEBJbnB1dCgpIGlzTW9iaWxlVmlldzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBtZXNzYWdlVGV4dDogc3RyaW5nID0gbG9jYWxpemUoXCJOT19DSEFUU19TRUxFQ1RFRFwiKTtcbiAgQElucHV0KCkgY29udmVyc2F0aW9uc1dpdGhNZXNzYWdlc1N0eWxlOiBXaXRoTWVzc2FnZXNTdHlsZSA9IHt9O1xuICBASW5wdXQoKSBtZXNzYWdlc0NvbmZpZ3VyYXRpb246IE1lc3NhZ2VzQ29uZmlndXJhdGlvbiA9IG5ldyBNZXNzYWdlc0NvbmZpZ3VyYXRpb24oe30pO1xuICBASW5wdXQoKSBjb252ZXJzYXRpb25Db25maWd1cmF0aW9uOiBDb252ZXJzYXRpb25zQ29uZmlndXJhdGlvbiA9IG5ldyBDb252ZXJzYXRpb25zQ29uZmlndXJhdGlvbih7fSk7XG4gIEBJbnB1dCgpIG9uRXJyb3I6ICgoZXJyb3I6IENvbWV0Q2hhdC5Db21ldENoYXRFeGNlcHRpb24pID0+IHZvaWQpIHwgbnVsbCA9IChlcnJvcjogQ29tZXRDaGF0LkNvbWV0Q2hhdEV4Y2VwdGlvbikgPT4ge1xuICAgIGNvbnNvbGUubG9nKGVycm9yKVxuICB9XG4gIEBJbnB1dCgpIHN0YXJ0TmV3Q29udmVyc2F0aW9uSWNvblVSTDogc3RyaW5nID0gXCJhc3NldHMvbmV3LWNoYXQuc3ZnXCJcbiAgQElucHV0KCkgaGlkZVN0YXJ0TmV3Q29udmVyc2F0aW9uOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIFN0YXJ0Q29udmVyc2F0aW9uQ29uZmlndXJhdGlvbjogQ29udGFjdHNDb25maWd1cmF0aW9uID0gbmV3IENvbnRhY3RzQ29uZmlndXJhdGlvbih7fSlcbiAgdGhlbWU6IENvbWV0Q2hhdFRoZW1lID0gbmV3IENvbWV0Q2hhdFRoZW1lKHt9KTtcbiAgLyoqXG4gICAqIFByb3BlcnRpZXMgZm9yIGludGVybmFsIHVzZVxuICAgKi9cbiAgcHVibGljIHNob3dTdGFydENvbnZlcnNhdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgbG9nZ2VkSW5Vc2VyITogQ29tZXRDaGF0LlVzZXIgfCBudWxsO1xuICBwdWJsaWMgYWN0aXZlQ29udmVyc2F0aW9uITogQ29tZXRDaGF0LkNvbnZlcnNhdGlvbiB8IG51bGw7XG4gIGxhYmVsU3R5bGU6IGFueSA9IHtcbiAgICBiYWNrZ3JvdW5kOiBcInRyYW5zcGFyZW50XCIsXG4gICAgdGV4dEZvbnQ6IFwiNzAwIDIycHggSW50ZXJcIixcbiAgICB0ZXh0Q29sb3I6IFwicmdiYSgyMCwgMjAsIDIwLCAwLjMzKVwiXG4gIH1cblxuICBwdWJsaWMgaGlkZVNlYXJjaDogYm9vbGVhbiA9IHRydWU7XG4gIHN0YXJ0Q29udmVyc2F0aW9uQnV0dG9uU3R5bGU6IGFueSA9IHtcblxuICB9XG4gIC8qKlxuICAqIEV2ZW50c1xuICAqL1xuICBjY0dyb3VwTWVtYmVyQWRkZWQhOiBTdWJzY3JpcHRpb247XG4gIGNjR3JvdXBMZWZ0ITogU3Vic2NyaXB0aW9uO1xuICBjY09wZW5DaGF0ITogU3Vic2NyaXB0aW9uO1xuICBjY0dyb3VwTWVtYmVySm9pbmVkITogU3Vic2NyaXB0aW9uO1xuICBjY0dyb3VwTWVtYmVyS2lja2VkITogU3Vic2NyaXB0aW9uO1xuICBjY0dyb3VwTWVtYmVyQmFubmVkITogU3Vic2NyaXB0aW9uO1xuICBjY093bmVyc2hpcENoYW5nZWQhOiBTdWJzY3JpcHRpb247XG4gIGNjR3JvdXBEZWxldGVkITogU3Vic2NyaXB0aW9uO1xuICBzaWRlQmFyU3R5bGU6IGFueSA9IHtcblxuICB9XG4gIHB1YmxpYyBjY0NvbnZlcnNhdGlvbkRlbGV0ZWQhOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgdGhlbWVTZXJ2aWNlOiBDb21ldENoYXRUaGVtZVNlcnZpY2UpIHtcbiAgfVxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG5cbiAgICBpZiAoY2hhbmdlc1tcImlzTW9iaWxlVmlld1wiXSkge1xuICAgICAgaWYgKHRoaXMuaXNNb2JpbGVWaWV3KSB7XG4gICAgICAgIHRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLm1lc3NhZ2VIZWFkZXJDb25maWd1cmF0aW9uLmhpZGVCYWNrQnV0dG9uID0gZmFsc2U7XG4gICAgICAgIHRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLmRldGFpbHNDb25maWd1cmF0aW9uLmRldGFpbHNTdHlsZS5wYWRkaW5nID0gXCIwIDhweFwiXG4gICAgICAgIHRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLmRldGFpbHNDb25maWd1cmF0aW9uLmFkZE1lbWJlcnNDb25maWd1cmF0aW9uLmFkZE1lbWJlcnNTdHlsZS5wYWRkaW5nID0gXCIwIDhweFwiXG4gICAgICAgIHRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLmRldGFpbHNDb25maWd1cmF0aW9uLmdyb3VwTWVtYmVyc0NvbmZpZ3VyYXRpb24uZ3JvdXBNZW1iZXJzU3R5bGUucGFkZGluZyA9IFwiMCA4cHhcIlxuICAgICAgICB0aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5kZXRhaWxzQ29uZmlndXJhdGlvbi5iYW5uZWRNZW1iZXJzQ29uZmlndXJhdGlvbi5iYW5uZWRNZW1iZXJzU3R5bGUucGFkZGluZyA9IFwiMCA4cHhcIlxuICAgICAgICB0aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5tZXNzYWdlSGVhZGVyQ29uZmlndXJhdGlvbiA9IHsgLi4udGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24ubWVzc2FnZUhlYWRlckNvbmZpZ3VyYXRpb24gfVxuICAgICAgICB0aGlzLlN0YXJ0Q29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5jb250YWN0c1N0eWxlLnBhZGRpbmcgPSBcIjAgOHB4XCI7XG4gICAgICAgIHRoaXMuU3RhcnRDb252ZXJzYXRpb25Db25maWd1cmF0aW9uID0geyAuLi50aGlzLlN0YXJ0Q29udmVyc2F0aW9uQ29uZmlndXJhdGlvbiB9XG5cbiAgICAgICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24gPSB7IC4uLnRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uIH1cbiAgICAgIH1cbiAgICAgIGVsc2UgaWYgKCF0aGlzLmlzTW9iaWxlVmlldykge1xuICAgICAgICB0aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5tZXNzYWdlTGlzdENvbmZpZ3VyYXRpb24ubWVzc2FnZUluZm9ybWF0aW9uQ29uZmlndXJhdGlvbi5tZXNzYWdlSW5mb3JtYXRpb25TdHlsZS5oZWlnaHQgPSBcIjUwMHB4XCJcbiAgICAgICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24ubWVzc2FnZUxpc3RDb25maWd1cmF0aW9uLm1lc3NhZ2VJbmZvcm1hdGlvbkNvbmZpZ3VyYXRpb24ubWVzc2FnZUluZm9ybWF0aW9uU3R5bGUud2lkdGggPSBcIjUwMHB4XCJcbiAgICAgICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24ubWVzc2FnZUhlYWRlckNvbmZpZ3VyYXRpb24uaGlkZUJhY2tCdXR0b24gPSB0cnVlO1xuICAgICAgICB0aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5kZXRhaWxzQ29uZmlndXJhdGlvbi5kZXRhaWxzU3R5bGUucGFkZGluZyA9IFwiMCAxMDBweFwiXG4gICAgICAgIHRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLmRldGFpbHNDb25maWd1cmF0aW9uLmFkZE1lbWJlcnNDb25maWd1cmF0aW9uLmFkZE1lbWJlcnNTdHlsZS5wYWRkaW5nID0gXCIwIDEwMHB4XCJcbiAgICAgICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24uZGV0YWlsc0NvbmZpZ3VyYXRpb24uZ3JvdXBNZW1iZXJzQ29uZmlndXJhdGlvbi5ncm91cE1lbWJlcnNTdHlsZS5wYWRkaW5nID0gXCIwIDEwMHB4XCJcbiAgICAgICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24uZGV0YWlsc0NvbmZpZ3VyYXRpb24uYmFubmVkTWVtYmVyc0NvbmZpZ3VyYXRpb24uYmFubmVkTWVtYmVyc1N0eWxlLnBhZGRpbmcgPSBcIjAgMTAwcHhcIlxuICAgICAgICB0aGlzLlN0YXJ0Q29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5jb250YWN0c1N0eWxlLnBhZGRpbmcgPSBcIjAgMTAwcHhcIjtcbiAgICAgICAgdGhpcy5TdGFydENvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24gPSB7IC4uLnRoaXMuU3RhcnRDb252ZXJzYXRpb25Db25maWd1cmF0aW9uIH1cbiAgICAgICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24ubWVzc2FnZUhlYWRlckNvbmZpZ3VyYXRpb24gPSB7IC4uLnRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLm1lc3NhZ2VIZWFkZXJDb25maWd1cmF0aW9uIH1cbiAgICAgICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24gPSB7IC4uLnRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uIH1cblxuICAgICAgfVxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMudXBkYXRlQmFja2Ryb3BIZWlnaHQoKVxuICAgICAgfSwgMTAwKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbXCJ1c2VyXCJdIHx8IGNoYW5nZXNbXCJncm91cFwiXSkge1xuICAgICAgdGhpcy5zZXRBY3RpdmVDaGF0KCk7XG4gICAgfVxuICB9XG4gIHRyaWdnZXJTdGFydENvbnZlcnNhdGlvbigpIHtcbiAgICB0aGlzLnNob3dTdGFydENvbnZlcnNhdGlvbiA9IHRydWU7XG4gIH1cbiAgb25CYWNrID0gKCkgPT4ge1xuICAgIHRoaXMudXNlciA9IG51bGxcbiAgICB0aGlzLmdyb3VwID0gbnVsbFxuICAgIHRoaXMuYWN0aXZlQ29udmVyc2F0aW9uID0gbnVsbFxuICB9XG4gIHNldFdpdGhNZXNzYWdlc1N0eWxlKCkge1xuICAgIGxldCBkZWZhdWx0U3R5bGU6IFdpdGhNZXNzYWdlc1N0eWxlID0gbmV3IFdpdGhNZXNzYWdlc1N0eWxlKHtcbiAgICAgIHdpZHRoOiBcIjEwMCVcIixcbiAgICAgIGhlaWdodDogXCIxMDAlXCIsXG4gICAgICBiYWNrZ3JvdW5kOiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEJhY2tncm91bmQoKSxcbiAgICAgIGJvcmRlclJhZGl1czogXCJub25lXCIsXG4gICAgICBib3JkZXI6IGAxcHggc29saWQgJHt0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudDIwMCgpfWAsXG4gICAgICBtZXNzYWdlVGV4dENvbG9yOiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudDYwMCgpLFxuICAgICAgbWVzc2FnZVRleHRGb250OiBmb250SGVscGVyKHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnR5cG9ncmFwaHkudGl0bGUxKSxcbiAgICB9KVxuICAgIHRoaXMuY29udmVyc2F0aW9uc1dpdGhNZXNzYWdlc1N0eWxlID0ge1xuICAgICAgLi4uZGVmYXVsdFN0eWxlLFxuICAgICAgLi4udGhpcy5jb252ZXJzYXRpb25zV2l0aE1lc3NhZ2VzU3R5bGVcbiAgICB9XG4gICAgdGhpcy5sYWJlbFN0eWxlLnRleHRGb250ID0gdGhpcy5jb252ZXJzYXRpb25zV2l0aE1lc3NhZ2VzU3R5bGUubWVzc2FnZVRleHRGb250XG4gICAgdGhpcy5sYWJlbFN0eWxlLnRleHRDb2xvciA9IHRoaXMuY29udmVyc2F0aW9uc1dpdGhNZXNzYWdlc1N0eWxlLm1lc3NhZ2VUZXh0Q29sb3JcbiAgICB0aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5tZXNzYWdlc1N0eWxlLmJvcmRlciA9IHRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLm1lc3NhZ2VzU3R5bGUuYm9yZGVyID8/IFwibm9uZVwiXG4gICAgdGhpcy5jb252ZXJzYXRpb25Db25maWd1cmF0aW9uLmNvbnZlcnNhdGlvbnNTdHlsZS5ib3JkZXIgPSB0aGlzLmNvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24uY29udmVyc2F0aW9uc1N0eWxlLmJvcmRlciA/PyBcIm5vbmVcIlxuICAgIGlmICghdGhpcy5jb252ZXJzYXRpb25Db25maWd1cmF0aW9uPy5jb252ZXJzYXRpb25zU3R5bGU/LmJvcmRlciB8fCB0aGlzLmNvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24/LmNvbnZlcnNhdGlvbnNTdHlsZT8uYm9yZGVyID09IFwibm9uZVwiKSB7XG4gICAgICB0aGlzLnNpZGVCYXJTdHlsZSA9IHsgYm9yZGVyUmlnaHQ6IHRoaXMuY29udmVyc2F0aW9uc1dpdGhNZXNzYWdlc1N0eWxlLmJvcmRlciB9XG5cbiAgICB9XG4gIH1cbiAgcHVibGljIG9uQ29udGFjdFNlbGVjdGVkID0gKHVzZXJzPzogQ29tZXRDaGF0LlVzZXJbXSwgZ3JvdXBzPzogQ29tZXRDaGF0Lkdyb3VwW10pID0+IHtcbiAgICB0aGlzLnNob3dTdGFydENvbnZlcnNhdGlvbiA9IGZhbHNlO1xuICAgIGlmICh1c2VycyAmJiB1c2Vyc1swXSkge1xuICAgICAgdGhpcy5ncm91cCA9IG51bGxcbiAgICAgIHRoaXMudXNlciA9IHVzZXJzWzBdO1xuXG4gICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKClcbiAgICB9XG4gICAgaWYgKGdyb3VwcyAmJiBncm91cHNbMF0pIHtcbiAgICAgIHRoaXMudXNlciA9IG51bGxcbiAgICAgIHRoaXMuZ3JvdXAgPSBncm91cHNbMF07XG4gICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKClcbiAgICB9XG4gIH1cbiAgcHVibGljIG9uSXRlbUNsaWNrOiAoKGNvbnZlcnNhdGlvbjogQ29tZXRDaGF0LkNvbnZlcnNhdGlvbikgPT4gdm9pZCkgPSAoY29udmVyc2F0aW9uOiBDb21ldENoYXQuQ29udmVyc2F0aW9uKSA9PiB7XG4gICAgdGhpcy5hY3RpdmVDb252ZXJzYXRpb24gPSBjb252ZXJzYXRpb25cbiAgICB0aGlzLnNob3dTdGFydENvbnZlcnNhdGlvbiA9IGZhbHNlO1xuICAgIGlmIChjb252ZXJzYXRpb24uZ2V0Q29udmVyc2F0aW9uVHlwZSgpICYmIGNvbnZlcnNhdGlvbi5nZXRDb252ZXJzYXRpb25UeXBlKCkgPT0gQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVJlY2VpdmVyVHlwZS51c2VyKSB7XG4gICAgICB0aGlzLmdyb3VwID0gbnVsbFxuICAgICAgdGhpcy51c2VyID0gY29udmVyc2F0aW9uLmdldENvbnZlcnNhdGlvbldpdGgoKSBhcyBDb21ldENoYXQuVXNlcjtcbiAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKVxuICAgIH1cbiAgICBlbHNlIGlmIChjb252ZXJzYXRpb24uZ2V0Q29udmVyc2F0aW9uVHlwZSgpICYmIGNvbnZlcnNhdGlvbi5nZXRDb252ZXJzYXRpb25UeXBlKCkgPT0gQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVJlY2VpdmVyVHlwZS5ncm91cCkge1xuICAgICAgdGhpcy51c2VyID0gbnVsbFxuICAgICAgdGhpcy5ncm91cCA9IGNvbnZlcnNhdGlvbi5nZXRDb252ZXJzYXRpb25XaXRoKCkgYXMgQ29tZXRDaGF0Lkdyb3VwXG4gICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKClcbiAgICB9XG4gIH07XG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLnVwZGF0ZUJhY2tkcm9wSGVpZ2h0KClcbiAgfVxuICB1cGRhdGVCYWNrZHJvcEhlaWdodCgpIHtcbiAgICBjb25zdCBkaXZIZWlnaHQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7XG4gICAgY29uc3QgZGl2V2lkdGggPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcbiAgICBsZXQgYmFja2Ryb3BTdHlsZSA9IHtcbiAgICAgIGhlaWdodDogZGl2SGVpZ2h0ICsgXCJweFwiLFxuICAgICAgd2lkdGg6IGRpdldpZHRoICsgXCJweFwiLFxuICAgICAgYmFja2dyb3VuZDogXCJyZ2JhKDAsIDAsIDAsIDAuNSlcIixcbiAgICAgIHBvc2l0aW9uOiBcImZpeGVkXCJcbiAgICB9XG4gICAgaWYgKHRoaXMuaXNNb2JpbGVWaWV3KSB7XG4gICAgICB0aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5kZXRhaWxzQ29uZmlndXJhdGlvbi50cmFuc2Zlck93bmVyc2hpcENvbmZpZ3VyYXRpb24udHJhbnNmZXJPd25lcnNoaXBTdHlsZS5oZWlnaHQgPSAoZGl2SGVpZ2h0IC0gMzApICsgXCJweFwiO1xuICAgICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24uZGV0YWlsc0NvbmZpZ3VyYXRpb24udHJhbnNmZXJPd25lcnNoaXBDb25maWd1cmF0aW9uLnRyYW5zZmVyT3duZXJzaGlwU3R5bGUud2lkdGggPSBkaXZXaWR0aCArIFwicHhcIjtcbiAgICAgIHRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLm1lc3NhZ2VMaXN0Q29uZmlndXJhdGlvbi5tZXNzYWdlSW5mb3JtYXRpb25Db25maWd1cmF0aW9uLm1lc3NhZ2VJbmZvcm1hdGlvblN0eWxlLmhlaWdodCA9IGRpdkhlaWdodCArIFwicHhcIjtcbiAgICAgIHRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLm1lc3NhZ2VMaXN0Q29uZmlndXJhdGlvbi5tZXNzYWdlSW5mb3JtYXRpb25Db25maWd1cmF0aW9uLm1lc3NhZ2VJbmZvcm1hdGlvblN0eWxlLndpZHRoID0gZGl2V2lkdGggKyBcInB4XCI7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24uZGV0YWlsc0NvbmZpZ3VyYXRpb24udHJhbnNmZXJPd25lcnNoaXBDb25maWd1cmF0aW9uLnRyYW5zZmVyT3duZXJzaGlwU3R5bGUuaGVpZ2h0ID0gXCI2NTBweFwiO1xuICAgICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24uZGV0YWlsc0NvbmZpZ3VyYXRpb24udHJhbnNmZXJPd25lcnNoaXBDb25maWd1cmF0aW9uLnRyYW5zZmVyT3duZXJzaGlwU3R5bGUud2lkdGggPSBcIjM2MHB4XCI7XG4gICAgfVxuICAgIHRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLm1lc3NhZ2VMaXN0Q29uZmlndXJhdGlvbi5iYWNrZHJvcFN0eWxlID0gYmFja2Ryb3BTdHlsZTtcbiAgICB0aGlzLmNvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24uYmFja2Ryb3BTdHlsZSA9IGJhY2tkcm9wU3R5bGU7XG4gICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24uZGV0YWlsc0NvbmZpZ3VyYXRpb24uYmFja2Ryb3BTdHlsZSA9IGJhY2tkcm9wU3R5bGU7XG4gICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24ubWVzc2FnZUNvbXBvc2VyQ29uZmlndXJhdGlvbi5iYWNrZHJvcFN0eWxlID0gYmFja2Ryb3BTdHlsZTtcbiAgICB0aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5kZXRhaWxzQ29uZmlndXJhdGlvbi5iYWNrZHJvcFN0eWxlID0gYmFja2Ryb3BTdHlsZTtcbiAgICB0aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5kZXRhaWxzQ29uZmlndXJhdGlvbi5ncm91cE1lbWJlcnNDb25maWd1cmF0aW9uLmJhY2tkcm9wU3R5bGUgPSBiYWNrZHJvcFN0eWxlO1xuXG4gICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpXG4gIH1cbiAgc2V0QWN0aXZlQ2hhdCgpIHtcbiAgICBsZXQgdHlwZTogc3RyaW5nID0gdGhpcy51c2VyID8gQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVJlY2VpdmVyVHlwZS51c2VyIDogQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVJlY2VpdmVyVHlwZS5ncm91cFxuICAgIHRoaXMuYWN0aXZlQ29udmVyc2F0aW9uID0gbnVsbFxuICAgIGxldCBjb252ZXJzYXRpb25XaXRoOiBzdHJpbmcgPSB0aGlzLnVzZXI/LmdldFVpZCgpISB8fCB0aGlzLmdyb3VwPy5nZXRHdWlkKCkhXG4gICAgQ29tZXRDaGF0LmdldENvbnZlcnNhdGlvbihjb252ZXJzYXRpb25XaXRoLCB0eXBlKS50aGVuKChjb252ZXJzYXRpb246IENvbWV0Q2hhdC5Db252ZXJzYXRpb24pID0+IHtcbiAgICAgIHRoaXMuYWN0aXZlQ29udmVyc2F0aW9uID0gY29udmVyc2F0aW9uXG4gICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKClcbiAgICB9KVxuICAgICAgLmNhdGNoKChlcnJvcjogQ29tZXRDaGF0LkNvbWV0Q2hhdEV4Y2VwdGlvbikgPT4ge1xuICAgICAgICBpZiAodGhpcy5vbkVycm9yKSB7XG4gICAgICAgICAgdGhpcy5vbkVycm9yKGVycm9yKVxuICAgICAgICB9XG4gICAgICB9KVxuICB9XG4gIGNsb3NlU3RhcnRDb252ZXJzYXRpb24gPSAoKSA9PiB7XG4gICAgdGhpcy5zaG93U3RhcnRDb252ZXJzYXRpb24gPSBmYWxzZTtcbiAgfVxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLlN0YXJ0Q29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi51c2Vyc0NvbmZpZ3VyYXRpb24udXNlcnNTdHlsZS5ib3JkZXIgPSBcIm5vbmVcIlxuICAgIHRoaXMuU3RhcnRDb252ZXJzYXRpb25Db25maWd1cmF0aW9uLmdyb3Vwc0NvbmZpZ3VyYXRpb24uZ3JvdXBzU3R5bGUuYm9yZGVyID0gXCJub25lXCJcbiAgICB0aGlzLlN0YXJ0Q29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5vbkNsb3NlID0gdGhpcy5jbG9zZVN0YXJ0Q29udmVyc2F0aW9uXG4gICAgdGhpcy5zdGFydENvbnZlcnNhdGlvbkJ1dHRvblN0eWxlID0ge1xuICAgICAgaGVpZ2h0OiBcIjI0cHhcIixcbiAgICAgIHdpZHRoOiBcIjI0cHhcIixcbiAgICAgIGJvcmRlcjogXCJub25lXCIsXG4gICAgICBib3JkZXJSYWRpdXM6ICcwJyxcbiAgICAgIGJhY2tncm91bmQ6IFwidHJhbnNwYXJlbnRcIixcbiAgICAgIGJ1dHRvbkljb25UaW50OiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldFByaW1hcnkoKVxuICAgIH1cbiAgICB0aGlzLlN0YXJ0Q29udmVyc2F0aW9uQ29uZmlndXJhdGlvbiA9IHsgLi4udGhpcy5TdGFydENvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24gfVxuICAgIHRoaXMuc2V0V2l0aE1lc3NhZ2VzU3R5bGUoKVxuICAgIGlmICghdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24ubWVzc2FnZUhlYWRlckNvbmZpZ3VyYXRpb24ub25CYWNrKSB7XG4gICAgICB0aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5tZXNzYWdlSGVhZGVyQ29uZmlndXJhdGlvbi5vbkJhY2sgPSB0aGlzLm9uQmFja1xuICAgIH1cbiAgICB0aGlzLnN1YnNjcmliZVRvRXZlbnRzKCk7XG4gICAgQ29tZXRDaGF0LmdldExvZ2dlZGluVXNlcigpXG4gICAgICAudGhlbigodXNlcjogQ29tZXRDaGF0LlVzZXIgfCBudWxsKSA9PiB7XG4gICAgICAgIHRoaXMubG9nZ2VkSW5Vc2VyID0gdXNlcjtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGVycm9yOiBDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLm9uRXJyb3IpIHtcbiAgICAgICAgICB0aGlzLm9uRXJyb3IoZXJyb3IpXG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gIH1cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy51bnN1YnNjcmliZVRvRXZlbnRzKCk7XG4gIH1cbiAgLy8gc3Vic2NyaWJlIHRvIGdsb2JhbCBldmVudHNcbiAgc3Vic2NyaWJlVG9FdmVudHMoKSB7XG4gICAgdGhpcy5jY0NvbnZlcnNhdGlvbkRlbGV0ZWQgPSBDb21ldENoYXRDb252ZXJzYXRpb25FdmVudHMuY2NDb252ZXJzYXRpb25EZWxldGVkLnN1YnNjcmliZSgoY29udmVyc2F0aW9uOiBDb21ldENoYXQuQ29udmVyc2F0aW9uKSA9PiB7XG4gICAgICB0aGlzLnJlbW92ZUFjdGl2ZUNoYXRMaXN0KGNvbnZlcnNhdGlvbikgLy90byBtYWtlIG0gbWVzc2FnZXMgc2VjdGlvbiBlbXB0eSBhZnRlciBkZWxldGluZyBjb252ZXJzYXRpb24gZnJvbSBjb252ZXJzYXRpb25saXN0XG4gICAgfSlcbiAgICB0aGlzLmNjR3JvdXBEZWxldGVkID0gQ29tZXRDaGF0R3JvdXBFdmVudHMuY2NHcm91cERlbGV0ZWQuc3Vic2NyaWJlKChncm91cDogQ29tZXRDaGF0Lkdyb3VwKSA9PiB7XG4gICAgICBpZiAodGhpcy5ncm91cCAmJiBncm91cC5nZXRHdWlkKCkgPT0gdGhpcy5ncm91cC5nZXRHdWlkKCkpIHtcbiAgICAgICAgdGhpcy5ncm91cCA9IG51bGw7XG4gICAgICAgIHRoaXMuYWN0aXZlQ29udmVyc2F0aW9uID0gbnVsbDtcbiAgICAgICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpXG4gICAgICB9XG4gICAgfSlcbiAgICB0aGlzLmNjR3JvdXBNZW1iZXJBZGRlZCA9IENvbWV0Q2hhdEdyb3VwRXZlbnRzLmNjR3JvdXBNZW1iZXJBZGRlZC5zdWJzY3JpYmUoKGl0ZW06IElHcm91cE1lbWJlckFkZGVkKSA9PiB7XG4gICAgICBpZiAodGhpcy5ncm91cCAmJiB0aGlzLmdyb3VwLmdldEd1aWQoKSA9PSBpdGVtPy51c2VyQWRkZWRJbiEuZ2V0R3VpZCgpKSB7XG4gICAgICAgIHRoaXMuZ3JvdXAgPSBpdGVtPy51c2VyQWRkZWRJbjtcbiAgICAgICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpXG4gICAgICB9XG4gICAgfSlcbiAgICB0aGlzLmNjR3JvdXBNZW1iZXJCYW5uZWQgPSBDb21ldENoYXRHcm91cEV2ZW50cy5jY0dyb3VwTWVtYmVyQmFubmVkLnN1YnNjcmliZSgoaXRlbTogSUdyb3VwTWVtYmVyS2lja2VkQmFubmVkKSA9PiB7XG4gICAgICBpZiAodGhpcy5ncm91cCAmJiB0aGlzLmdyb3VwLmdldEd1aWQoKSA9PSBpdGVtPy5raWNrZWRGcm9tIS5nZXRHdWlkKCkpIHtcbiAgICAgICAgdGhpcy5ncm91cCA9IGl0ZW0/LmtpY2tlZEZyb207XG4gICAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKVxuICAgICAgfVxuICAgIH0pXG4gICAgdGhpcy5jY0dyb3VwTWVtYmVySm9pbmVkID0gQ29tZXRDaGF0R3JvdXBFdmVudHMuY2NHcm91cE1lbWJlckpvaW5lZC5zdWJzY3JpYmUoKGl0ZW06IElHcm91cE1lbWJlckpvaW5lZCkgPT4ge1xuICAgICAgaWYgKHRoaXMuZ3JvdXAgJiYgdGhpcy5ncm91cC5nZXRHdWlkKCkgPT0gaXRlbT8uam9pbmVkR3JvdXAhLmdldEd1aWQoKSkge1xuICAgICAgICB0aGlzLmdyb3VwID0gaXRlbT8uam9pbmVkR3JvdXA7XG4gICAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKVxuICAgICAgfVxuICAgIH0pXG4gICAgdGhpcy5jY0dyb3VwTWVtYmVyS2lja2VkID0gQ29tZXRDaGF0R3JvdXBFdmVudHMuY2NHcm91cE1lbWJlcktpY2tlZC5zdWJzY3JpYmUoKGl0ZW06IElHcm91cE1lbWJlcktpY2tlZEJhbm5lZCkgPT4ge1xuICAgICAgaWYgKHRoaXMuZ3JvdXAgJiYgdGhpcy5ncm91cC5nZXRHdWlkKCkgPT0gaXRlbT8ua2lja2VkRnJvbSEuZ2V0R3VpZCgpKSB7XG4gICAgICAgIHRoaXMuZ3JvdXAgPSBpdGVtPy5raWNrZWRGcm9tO1xuICAgICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKClcbiAgICAgIH1cbiAgICB9KVxuICAgIHRoaXMuY2NPd25lcnNoaXBDaGFuZ2VkID0gQ29tZXRDaGF0R3JvdXBFdmVudHMuY2NPd25lcnNoaXBDaGFuZ2VkLnN1YnNjcmliZSgoaXRlbTogSU93bmVyc2hpcENoYW5nZWQpID0+IHtcbiAgICAgIGlmICh0aGlzLmdyb3VwICYmIHRoaXMuZ3JvdXAuZ2V0R3VpZCgpID09IGl0ZW0/Lmdyb3VwIS5nZXRHdWlkKCkpIHtcbiAgICAgICAgdGhpcy5ncm91cCA9IGl0ZW0/Lmdyb3VwO1xuICAgICAgICB0aGlzLmFjdGl2ZUNvbnZlcnNhdGlvbj8uc2V0Q29udmVyc2F0aW9uV2l0aCh0aGlzLmdyb3VwKVxuICAgICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9XG4gICAgfSlcbiAgICB0aGlzLmNjR3JvdXBMZWZ0ID0gQ29tZXRDaGF0R3JvdXBFdmVudHMuY2NHcm91cExlZnQuc3Vic2NyaWJlKChpdGVtOiBJR3JvdXBMZWZ0KSA9PiB7XG4gICAgICBpZiAodGhpcy5ncm91cCAmJiB0aGlzLmdyb3VwLmdldEd1aWQoKSA9PSBpdGVtPy5sZWZ0R3JvdXAhLmdldEd1aWQoKSAmJiB0aGlzLmxvZ2dlZEluVXNlcj8uZ2V0VWlkKCkgPT0gaXRlbT8udXNlckxlZnQ/LmdldFVpZCgpKSB7XG4gICAgICAgIHRoaXMuZ3JvdXAgPSBudWxsO1xuICAgICAgICB0aGlzLmFjdGl2ZUNvbnZlcnNhdGlvbiA9IG51bGw7XG4gICAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKVxuICAgICAgfVxuICAgIH0pXG4gICAgLy8gb3BlbiBjaGF0IGFuZCBtYXJrIGFzIGFjdGl2ZSBjb252ZXJzYXRpb25cbiAgICB0aGlzLmNjT3BlbkNoYXQgPSBDb21ldENoYXRVSUV2ZW50cy5jY09wZW5DaGF0LnN1YnNjcmliZSgoaXRlbSkgPT4ge1xuICAgICAgdGhpcy51c2VyID0gaXRlbS51c2VyID8gaXRlbS51c2VyIDogbnVsbDtcbiAgICAgIHRoaXMuZ3JvdXAgPSBpdGVtLmdyb3VwID8gaXRlbS5ncm91cCA6IG51bGw7XG4gICAgICB0aGlzLnNldEFjdGl2ZUNoYXQoKVxuICAgIH0pXG4gIH1cbiAgLy8gdW5zdWJzY3JpYmUgdG8gc3Vic2NyaWJlZCBldmVudHMuXG4gIHVuc3Vic2NyaWJlVG9FdmVudHMoKSB7XG4gICAgdGhpcy5jY0NvbnZlcnNhdGlvbkRlbGV0ZWQ/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5jY0dyb3VwRGVsZXRlZD8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmNjR3JvdXBNZW1iZXJBZGRlZD8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmNjR3JvdXBNZW1iZXJCYW5uZWQ/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5jY0dyb3VwTWVtYmVySm9pbmVkPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuY2NHcm91cE1lbWJlcktpY2tlZD8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmNjT3duZXJzaGlwQ2hhbmdlZD8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmNjR3JvdXBMZWZ0Py51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuY2NPcGVuQ2hhdD8udW5zdWJzY3JpYmUoKTtcbiAgfVxuICAvKipcbiAgICogcmVtb3ZlIGFjdGl2ZSBjaGF0IHNjcmVlbiBhZnRlciBkZWxldGluZyB0aGUgY29udmVyc2F0aW9uLlxuICAgKiBAcGFyYW0gIHtDb21ldENoYXQuQ29udmVyc2F0aW9ufSBjb252ZXJzYXRpb25cbiAgICovXG4gIHJlbW92ZUFjdGl2ZUNoYXRMaXN0KGNvbnZlcnNhdGlvbjogQ29tZXRDaGF0LkNvbnZlcnNhdGlvbikge1xuICAgIGNvbnN0IGNvbnZlcnNhdGlvblR5cGUgPSBjb252ZXJzYXRpb24uZ2V0Q29udmVyc2F0aW9uVHlwZSgpO1xuICAgIGNvbnN0IGNvbnZlcnNhdGlvbldpdGggPSBjb252ZXJzYXRpb24uZ2V0Q29udmVyc2F0aW9uV2l0aCgpO1xuICAgIGlmIChjb252ZXJzYXRpb25UeXBlID09PSBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlUmVjZWl2ZXJUeXBlLnVzZXIgJiYgdGhpcy51c2VyICYmIHRoaXMudXNlci5nZXRVaWQoKSA9PT0gKGNvbnZlcnNhdGlvbldpdGggYXMgQ29tZXRDaGF0LlVzZXIpLmdldFVpZCgpKSB7XG4gICAgICB0aGlzLnVzZXIgPSBudWxsO1xuICAgICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0gZWxzZSBpZiAoY29udmVyc2F0aW9uVHlwZSA9PT0gQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVJlY2VpdmVyVHlwZS5ncm91cCAmJiB0aGlzLmdyb3VwICYmIHRoaXMuZ3JvdXAuZ2V0R3VpZCgpID09PSAoY29udmVyc2F0aW9uV2l0aCBhcyBDb21ldENoYXQuR3JvdXApLmdldEd1aWQoKSkge1xuICAgICAgdGhpcy5ncm91cCA9IG51bGw7XG4gICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cbiAgZW1wdHlNZXNzYWdlU3R5bGUgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGJhY2tncm91bmQ6IHRoaXMuY29udmVyc2F0aW9uc1dpdGhNZXNzYWdlc1N0eWxlLmJhY2tncm91bmQgfHwgdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRCYWNrZ3JvdW5kKCksXG4gICAgICBoZWlnaHQ6IHRoaXMuY29udmVyc2F0aW9uc1dpdGhNZXNzYWdlc1N0eWxlLmhlaWdodCxcbiAgICAgIHdpZHRoOiBgY2FsYygke3RoaXMuY29udmVyc2F0aW9uc1dpdGhNZXNzYWdlc1N0eWxlLndpZHRofSAtIDI4MHB4KWAsXG4gICAgICBib3JkZXI6IFwibm9uZVwiLFxuICAgICAgYm9yZGVyUmFkaXVzOiB0aGlzLmNvbnZlcnNhdGlvbnNXaXRoTWVzc2FnZXNTdHlsZS5ib3JkZXJSYWRpdXMsXG4gICAgfVxuICB9XG4gIGNoYXRzV3JhcHBlclN0eWxlcyA9ICgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgaGVpZ2h0OiB0aGlzLmNvbnZlcnNhdGlvbnNXaXRoTWVzc2FnZXNTdHlsZS5oZWlnaHQsXG4gICAgICB3aWR0aDogdGhpcy5jb252ZXJzYXRpb25zV2l0aE1lc3NhZ2VzU3R5bGUud2lkdGgsXG4gICAgICBib3JkZXI6IHRoaXMuY29udmVyc2F0aW9uc1dpdGhNZXNzYWdlc1N0eWxlLmJvcmRlcixcbiAgICAgIGJvcmRlclJhZGl1czogdGhpcy5jb252ZXJzYXRpb25zV2l0aE1lc3NhZ2VzU3R5bGUuYm9yZGVyUmFkaXVzLFxuICAgICAgYmFja2dyb3VuZDogdGhpcy5jb252ZXJzYXRpb25zV2l0aE1lc3NhZ2VzU3R5bGUuYmFja2dyb3VuZCB8fCB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEJhY2tncm91bmQoKSxcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjYy13aXRoLW1lc3NhZ2VzX193cmFwcGVyXCIgW25nU3R5bGVdPVwiY2hhdHNXcmFwcGVyU3R5bGVzKClcIiA+XG4gIDxkaXYgY2xhc3M9XCJjYy13aXRoLW1lc3NhZ2VzX19zaWRlYmFyXCIgW25nQ2xhc3NdPVwie21vYmlsZSA6IGlzTW9iaWxlVmlld31cIiBbbmdTdHlsZV09XCJzaWRlQmFyU3R5bGVcIj5cbiAgICA8Y29tZXRjaGF0LWNvbnZlcnNhdGlvbnNcbiAgICAjY29udmVyc2F0aW9uUmVmXG4gICAgW2FjdGl2ZUNvbnZlcnNhdGlvbl09XCJhY3RpdmVDb252ZXJzYXRpb25cIlxuICAgIFtvbkl0ZW1DbGlja109XCJjb252ZXJzYXRpb25Db25maWd1cmF0aW9uLm9uSXRlbUNsaWNrIHx8IG9uSXRlbUNsaWNrXCJcbiAgICBbY29udmVyc2F0aW9uc1N0eWxlXT1cImNvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24uY29udmVyc2F0aW9uc1N0eWxlXCJcbiAgICBbc3VidGl0bGVWaWV3XT1cImNvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24uc3VidGl0bGVWaWV3XCJcbiAgICBbb3B0aW9uc109XCJjb252ZXJzYXRpb25Db25maWd1cmF0aW9uLm9wdGlvbnNcIlxuICAgIFtkaXNhYmxlVXNlcnNQcmVzZW5jZV09XCJjb252ZXJzYXRpb25Db25maWd1cmF0aW9uLmRpc2FibGVVc2Vyc1ByZXNlbmNlXCJcbiAgICBbZGlzYWJsZVJlY2VpcHRdPVwiY29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5kaXNhYmxlUmVjZWlwdFwiXG4gICAgW2Rpc2FibGVUeXBpbmddPVwiY29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5kaXNhYmxlVHlwaW5nXCJcbiAgICBbZGVsaXZlcmVkSWNvbl09XCJjb252ZXJzYXRpb25Db25maWd1cmF0aW9uLmRlbGl2ZXJlZEljb25cIlxuICAgIFtyZWFkSWNvbl09XCJjb252ZXJzYXRpb25Db25maWd1cmF0aW9uLnJlYWRJY29uXCJcbiAgICBbd2FpdEljb25dPVwiY29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi53YWl0SWNvblwiXG4gICAgW2Vycm9ySWNvbl09XCJjb252ZXJzYXRpb25Db25maWd1cmF0aW9uLmVycm9ySWNvblwiXG4gICAgW2RhdGVQYXR0ZXJuXT1cImNvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24uZGF0ZVBhdHRlcm5cIlxuICAgIFtyZWNlaXB0U3R5bGVdPVwiY29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5yZWNlaXB0U3R5bGVcIlxuICAgIFtzZW50SWNvbl09XCJjb252ZXJzYXRpb25Db25maWd1cmF0aW9uLnNlbnRJY29uXCJcbiAgICBbcHJpdmF0ZUdyb3VwSWNvbl09XCJjb252ZXJzYXRpb25Db25maWd1cmF0aW9uLnByaXZhdGVHcm91cEljb25cIlxuICAgIFtwcm90ZWN0ZWRHcm91cEljb25dPVwiY29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5wcm90ZWN0ZWRHcm91cEljb25cIlxuICAgIFtjdXN0b21Tb3VuZEZvck1lc3NhZ2VzXT1cImNvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24uY3VzdG9tU291bmRGb3JNZXNzYWdlc1wiXG4gICAgW2NvbnZlcnNhdGlvbnNSZXF1ZXN0QnVpbGRlcl09XCJjb252ZXJzYXRpb25Db25maWd1cmF0aW9uLmNvbnZlcnNhdGlvbnNSZXF1ZXN0QnVpbGRlclwiXG4gICAgW2VtcHR5U3RhdGVWaWV3XT1cImNvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24uZW1wdHlTdGF0ZVZpZXdcIlxuICAgIFtvblNlbGVjdF09XCJjb252ZXJzYXRpb25Db25maWd1cmF0aW9uLm9uU2VsZWN0XCJcbiAgICBbbG9hZGluZ0ljb25VUkxdPVwiY29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5sb2FkaW5nSWNvblVSTFwiXG4gICAgW2Vycm9yU3RhdGVWaWV3XT1cImNvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24uZXJyb3JTdGF0ZVZpZXdcIlxuICAgIFtsb2FkaW5nU3RhdGVWaWV3XT1cImNvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24ubG9hZGluZ1N0YXRlVmlld1wiXG4gICAgW3RpdGxlQWxpZ25tZW50XT1cImNvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24udGl0bGVBbGlnbm1lbnRcIlxuICAgIFtsaXN0SXRlbVZpZXddPVwiY29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5saXN0SXRlbVZpZXdcIlxuICAgIFttZW51XT1cImNvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24ubWVudSB8fCBzdGFydENvbnZlcnNhdGlvbkJ1dHRvblwiXG4gICAgW2hpZGVTZXBhcmF0b3JdPVwiY29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5oaWRlU2VwYXJhdG9yXCJcbiAgICBbaGlkZUVycm9yXT1cImNvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24uaGlkZUVycm9yXCJcbiAgICBbc2VsZWN0aW9uTW9kZV09XCJjb252ZXJzYXRpb25Db25maWd1cmF0aW9uLnNlbGVjdGlvbk1vZGVcIlxuICAgIFtkaXNhYmxlU291bmRGb3JNZXNzYWdlc109XCJjb252ZXJzYXRpb25Db25maWd1cmF0aW9uLmRpc2FibGVTb3VuZEZvck1lc3NhZ2VzXCJcbiAgICBbZGVsZXRlQ29udmVyc2F0aW9uRGlhbG9nU3R5bGVdPVwiY29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5kZWxldGVDb252ZXJzYXRpb25EaWFsb2dTdHlsZVwiXG4gICAgW2JhZGdlU3R5bGVdPVwiY29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5iYWRnZVN0eWxlXCJcbiAgICBbZGF0ZVN0eWxlXT1cImNvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24uZGF0ZVN0eWxlXCJcbiAgICBbbGlzdEl0ZW1TdHlsZV09XCJjb252ZXJzYXRpb25Db25maWd1cmF0aW9uLmxpc3RJdGVtU3R5bGVcIlxuICAgIFtiYWNrZHJvcFN0eWxlXT1cImNvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24uYmFja2Ryb3BTdHlsZVwiXG5cbiAgICA+PC9jb21ldGNoYXQtY29udmVyc2F0aW9ucz5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJjYy13aXRoLW1lc3NhZ2VzX19tYWluXCIgW25nQ2xhc3NdPVwie21vYmlsZSA6IGlzTW9iaWxlVmlld31cIiAqbmdJZj1cIiFzaG93U3RhcnRDb252ZXJzYXRpb24gJiYgKHVzZXIgfHwgZ3JvdXApXCI+XG4gICAgPCEtLU1lc3NhZ2UgTGlzdCBTY3JlZW4tLT5cbiAgICA8Y29tZXRjaGF0LW1lc3NhZ2VzXG4gICAgI21lc3NhZ2VzUmVmXG4gICAgW3VzZXJdPVwidXNlciFcIlxuICAgIFtncm91cF09XCJncm91cCFcIlxuICAgIFttZXNzYWdlSGVhZGVyQ29uZmlndXJhdGlvbl09XCJtZXNzYWdlc0NvbmZpZ3VyYXRpb24ubWVzc2FnZUhlYWRlckNvbmZpZ3VyYXRpb25cIlxuICAgIFttZXNzYWdlTGlzdENvbmZpZ3VyYXRpb25dPVwibWVzc2FnZXNDb25maWd1cmF0aW9uLm1lc3NhZ2VMaXN0Q29uZmlndXJhdGlvblwiXG4gICAgW21lc3NhZ2VDb21wb3NlckNvbmZpZ3VyYXRpb25dPVwibWVzc2FnZXNDb25maWd1cmF0aW9uLm1lc3NhZ2VDb21wb3NlckNvbmZpZ3VyYXRpb25cIlxuICAgIFttZXNzYWdlc1N0eWxlXT1cIm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5tZXNzYWdlc1N0eWxlXCJcbiAgICBbY3VzdG9tU291bmRGb3JJbmNvbWluZ01lc3NhZ2VzXT1cIm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5jdXN0b21Tb3VuZEZvckluY29taW5nTWVzc2FnZXNcIlxuICAgIFtjdXN0b21Tb3VuZEZvck91dGdvaW5nTWVzc2FnZXNdPVwibWVzc2FnZXNDb25maWd1cmF0aW9uLmN1c3RvbVNvdW5kRm9yT3V0Z29pbmdNZXNzYWdlc1wiXG4gICAgW2RldGFpbHNDb25maWd1cmF0aW9uXT1cIm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5kZXRhaWxzQ29uZmlndXJhdGlvblwiXG4gICAgW2Rpc2FibGVTb3VuZEZvck1lc3NhZ2VzXT1cIm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5kaXNhYmxlU291bmRGb3JNZXNzYWdlc1wiXG4gICAgW2Rpc2FibGVUeXBpbmddPVwibWVzc2FnZXNDb25maWd1cmF0aW9uLmRpc2FibGVUeXBpbmdcIlxuICAgIFtoaWRlTWVzc2FnZUNvbXBvc2VyXT1cIm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5oaWRlTWVzc2FnZUNvbXBvc2VyXCJcbiAgICBbaGlkZU1lc3NhZ2VIZWFkZXJdPVwibWVzc2FnZXNDb25maWd1cmF0aW9uLmhpZGVNZXNzYWdlSGVhZGVyXCJcbiAgICBbbWVzc2FnZUNvbXBvc2VyVmlld109XCJtZXNzYWdlc0NvbmZpZ3VyYXRpb24ubWVzc2FnZUNvbXBvc2VyVmlld1wiXG4gICAgW21lc3NhZ2VIZWFkZXJWaWV3XT1cIm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5tZXNzYWdlSGVhZGVyVmlld1wiXG4gICAgW21lc3NhZ2VMaXN0Vmlld109XCJtZXNzYWdlc0NvbmZpZ3VyYXRpb24ubWVzc2FnZUxpc3RWaWV3XCJcbiAgICBbaGlkZURldGFpbHNdPVwibWVzc2FnZXNDb25maWd1cmF0aW9uLmhpZGVEZXRhaWxzIVwiXG4gICAgPlxuICAgIDwvY29tZXRjaGF0LW1lc3NhZ2VzPlxuICAgIDwhLS1NZXNzYWdlIExpc3QgU2NyZWVuIEVORFMtLT5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJjYy13aXRoLW1lc3NhZ2VzX19zdGFydC1jb252ZXJzYXRpb25cIiBbbmdDbGFzc109XCJ7bW9iaWxlIDogaXNNb2JpbGVWaWV3fVwiICpuZ0lmPVwic2hvd1N0YXJ0Q29udmVyc2F0aW9uXCI+XG5cbiAgPGNvbWV0Y2hhdC1jb250YWN0cyBbdXNlcnNDb25maWd1cmF0aW9uXT1cIlN0YXJ0Q29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi51c2Vyc0NvbmZpZ3VyYXRpb25cIlxuICBbZ3JvdXBzQ29uZmlndXJhdGlvbl09XCJTdGFydENvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24uZ3JvdXBzQ29uZmlndXJhdGlvblwiXG4gIFtjbG9zZUljb25VUkxdPVwiU3RhcnRDb252ZXJzYXRpb25Db25maWd1cmF0aW9uLmNsb3NlSWNvblVSTFwiXG4gIFtjb250YWN0c1N0eWxlXT1cIlN0YXJ0Q29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5jb250YWN0c1N0eWxlXCJcbiAgW3NlbGVjdGlvbk1vZGVdPVwiU3RhcnRDb252ZXJzYXRpb25Db25maWd1cmF0aW9uLnNlbGVjdGlvbk1vZGVcIlxuICBbb25DbG9zZV09XCJTdGFydENvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24ub25DbG9zZVwiXG4gIFt0YWJWaXNpYmlsaXR5XT1cIlN0YXJ0Q29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi50YWJWaXNpYmlsaXR5XCJcbiAgW3NlbGVjdGlvbkxpbWl0XT1cIlN0YXJ0Q29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5zZWxlY3Rpb25MaW1pdFwiXG4gIFt0YWJzXT1cIlN0YXJ0Q29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi50YWJzXCJcbiAgW2hpZGVTdWJtaXRCdXR0b25dPVwiU3RhcnRDb252ZXJzYXRpb25Db25maWd1cmF0aW9uLmhpZGVTdWJtaXRCdXR0b25cIlxuICBbb25TdWJtaXRCdXR0b25DbGlja109XCJvbkNvbnRhY3RTZWxlY3RlZFwiPjwvY29tZXRjaGF0LWNvbnRhY3RzPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImNjLWRlY29yYXRvcl9fbWVzc2FnZS0tZW1wdHlcIiAqbmdJZj1cIiF1c2VyICYmICFncm91cCAmJiAhc2hvd1N0YXJ0Q29udmVyc2F0aW9uXCIgW25nU3R5bGVdPVwiZW1wdHlNZXNzYWdlU3R5bGUoKVwiPlxuICAgIDxjb21ldGNoYXQtbGFiZWwgW3RleHRdPVwibWVzc2FnZVRleHRcIiBbbGFiZWxTdHlsZV09XCJsYWJlbFN0eWxlXCI+PC9jb21ldGNoYXQtbGFiZWw+XG4gICA8L2Rpdj5cbiAgIDxuZy10ZW1wbGF0ZSAjc3RhcnRDb252ZXJzYXRpb25CdXR0b24+XG4gICAgPGNvbWV0Y2hhdC1idXR0b24gKm5nSWY9XCIhaGlkZVN0YXJ0TmV3Q29udmVyc2F0aW9uXCIgW2ljb25VUkxdPVwic3RhcnROZXdDb252ZXJzYXRpb25JY29uVVJMXCIgW2J1dHRvblN0eWxlXT1cInN0YXJ0Q29udmVyc2F0aW9uQnV0dG9uU3R5bGVcIiAoY2MtYnV0dG9uLWNsaWNrZWQpPVwidHJpZ2dlclN0YXJ0Q29udmVyc2F0aW9uKClcIj48L2NvbWV0Y2hhdC1idXR0b24+XG5cbiAgPC9uZy10ZW1wbGF0ZT4iXX0=
|
|
355
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tZXRjaGF0LWNvbnZlcnNhdGlvbnMtd2l0aC1tZXNzYWdlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jaGF0LXVpa2l0LWFuZ3VsYXIvc3JjL0NvbWV0Q2hhdENvbnZlcnNhdGlvbnNXaXRoTWVzc2FnZXMvY29tZXRjaGF0LWNvbnZlcnNhdGlvbnMtd2l0aC1tZXNzYWdlcy9jb21ldGNoYXQtY29udmVyc2F0aW9ucy13aXRoLW1lc3NhZ2VzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NoYXQtdWlraXQtYW5ndWxhci9zcmMvQ29tZXRDaGF0Q29udmVyc2F0aW9uc1dpdGhNZXNzYWdlcy9jb21ldGNoYXQtY29udmVyc2F0aW9ucy13aXRoLW1lc3NhZ2VzL2NvbWV0Y2hhdC1jb252ZXJzYXRpb25zLXdpdGgtbWVzc2FnZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsS0FBSyxFQUFFLHVCQUF1QixFQUEyRCxNQUFNLGVBQWUsQ0FBQztBQUN0SixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixFQUFFLDBCQUEwQixFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFDckksT0FBTyxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFtQixvQkFBb0IsRUFBRSx1QkFBdUIsRUFBNkksMkJBQTJCLEVBQXlDLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFFblgsT0FBTywyQkFBMkIsQ0FBQTs7Ozs7OztBQUdsQzs7Ozs7Ozs7RUFRRTtBQU9GLE1BQU0sT0FBTywyQ0FBMkM7SUFnRHRELFlBQW9CLFVBQXNCLEVBQVUsR0FBc0IsRUFBVSxZQUFtQztRQUFuRyxlQUFVLEdBQVYs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S0FBSztnQkFDRyw4QkFBOEI7c0JBQXRDLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLHlCQUF5QjtzQkFBakMsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBR0csMkJBQTJCO3NCQUFuQyxLQUFLO2dCQUNHLHdCQUF3QjtzQkFBaEMsS0FBSztnQkFDRyw4QkFBOEI7c0JBQXRDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkLCBJbnB1dCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgQ2hhbmdlRGV0ZWN0b3JSZWYsIEVsZW1lbnRSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQ29tZXRDaGF0IH0gZnJvbSBcIkBjb21ldGNoYXQvY2hhdC1zZGstamF2YXNjcmlwdFwiO1xuaW1wb3J0IHsgV2l0aE1lc3NhZ2VzU3R5bGUsIE1lc3NhZ2VzQ29uZmlndXJhdGlvbiwgQ29udmVyc2F0aW9uc0NvbmZpZ3VyYXRpb24sIENvbnRhY3RzQ29uZmlndXJhdGlvbiB9IGZyb20gJ0Bjb21ldGNoYXQvdWlraXQtc2hhcmVkJ1xuaW1wb3J0IHsgQ29tZXRDaGF0VGhlbWUsIGZvbnRIZWxwZXIsIGxvY2FsaXplLCBDb21ldENoYXRPcHRpb24sIENvbWV0Q2hhdEdyb3VwRXZlbnRzLCBDb21ldENoYXRVSUtpdENvbnN0YW50cywgSUdyb3VwTGVmdCwgSUdyb3VwTWVtYmVyQWRkZWQsIElHcm91cE1lbWJlcktpY2tlZEJhbm5lZCwgSUdyb3VwTWVtYmVyU2NvcGVDaGFuZ2VkLCBJTWVzc2FnZXMsIENvbWV0Q2hhdFVzZXJFdmVudHMsIENvbWV0Q2hhdE1lc3NhZ2VFdmVudHMsIENvbWV0Q2hhdENvbnZlcnNhdGlvbkV2ZW50cywgSUdyb3VwTWVtYmVySm9pbmVkLCBJT3duZXJzaGlwQ2hhbmdlZCwgQ29tZXRDaGF0VUlFdmVudHMgfSBmcm9tICdAY29tZXRjaGF0L3Vpa2l0LXJlc291cmNlcydcblxuaW1wb3J0ICdAY29tZXRjaGF0L3Vpa2l0LWVsZW1lbnRzJ1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IENvbWV0Q2hhdFRoZW1lU2VydmljZSB9IGZyb20gXCIuLi8uLi9Db21ldENoYXRUaGVtZS5zZXJ2aWNlXCI7XG4vKipcbipcbiogQ29tZXRDaGF0Q29udmVyc2F0aW9uc1dpdGhNZXNzYWdlc0NvbXBvbmVudCBpcyBhIHdyYXBwZXIgY29tcG9uZW50IGZvciBDb21ldENoYXRNZXNzYWdlc0NvbXBvbmVudCBhbmQgQ29tZXRDaGF0Q29udmVyc2F0aW9ucyBjb21wb25lbnQgdG8gc2hvdyBjaGF0cyBhbmQgbWVzc2FnZXMgaW4gb25lIHNjcmVlblxuKlxuKiBAdmVyc2lvbiAxLjAuMFxuKiBAYXV0aG9yIENvbWV0Q2hhdFRlYW1cbiogQGNvcHlyaWdodCDCqSAyMDIyIENvbWV0Q2hhdCBJbmMuXG4qXG4qL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImNvbWV0Y2hhdC1jb252ZXJzYXRpb25zLXdpdGgtbWVzc2FnZXNcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9jb21ldGNoYXQtY29udmVyc2F0aW9ucy13aXRoLW1lc3NhZ2VzLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9jb21ldGNoYXQtY29udmVyc2F0aW9ucy13aXRoLW1lc3NhZ2VzLmNvbXBvbmVudC5zY3NzXCJdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQ29tZXRDaGF0Q29udmVyc2F0aW9uc1dpdGhNZXNzYWdlc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgLy8gdGFraW5nIHJlZmVyZW5jZSBvZiBjb252ZXJzYXRpb25Db21wb25lbnQgYW5kIE1lc3NhZ2VzQ29tcG9uZW50XG4gIEBJbnB1dCgpIHVzZXIhOiBDb21ldENoYXQuVXNlciB8IG51bGw7XG4gIEBJbnB1dCgpIGdyb3VwITogQ29tZXRDaGF0Lkdyb3VwIHwgbnVsbDtcbiAgQElucHV0KCkgaXNNb2JpbGVWaWV3OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIG1lc3NhZ2VUZXh0OiBzdHJpbmcgPSBsb2NhbGl6ZShcIk5PX0NIQVRTX1NFTEVDVEVEXCIpO1xuICBASW5wdXQoKSBjb252ZXJzYXRpb25zV2l0aE1lc3NhZ2VzU3R5bGU6IFdpdGhNZXNzYWdlc1N0eWxlID0ge307XG4gIEBJbnB1dCgpIG1lc3NhZ2VzQ29uZmlndXJhdGlvbjogTWVzc2FnZXNDb25maWd1cmF0aW9uID0gbmV3IE1lc3NhZ2VzQ29uZmlndXJhdGlvbih7fSk7XG4gIEBJbnB1dCgpIGNvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb246IENvbnZlcnNhdGlvbnNDb25maWd1cmF0aW9uID0gbmV3IENvbnZlcnNhdGlvbnNDb25maWd1cmF0aW9uKHt9KTtcbiAgQElucHV0KCkgb25FcnJvcjogKChlcnJvcjogQ29tZXRDaGF0LkNvbWV0Q2hhdEV4Y2VwdGlvbikgPT4gdm9pZCkgfCBudWxsID0gKGVycm9yOiBDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKSA9PiB7XG4gICAgY29uc29sZS5sb2coZXJyb3IpXG4gIH1cbiAgQElucHV0KCkgc3RhcnROZXdDb252ZXJzYXRpb25JY29uVVJMOiBzdHJpbmcgPSBcImFzc2V0cy9uZXctY2hhdC5zdmdcIlxuICBASW5wdXQoKSBoaWRlU3RhcnROZXdDb252ZXJzYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgU3RhcnRDb252ZXJzYXRpb25Db25maWd1cmF0aW9uOiBDb250YWN0c0NvbmZpZ3VyYXRpb24gPSBuZXcgQ29udGFjdHNDb25maWd1cmF0aW9uKHt9KVxuICB0aGVtZTogQ29tZXRDaGF0VGhlbWUgPSBuZXcgQ29tZXRDaGF0VGhlbWUoe30pO1xuICAvKipcbiAgICogUHJvcGVydGllcyBmb3IgaW50ZXJuYWwgdXNlXG4gICAqL1xuICBwdWJsaWMgc2hvd1N0YXJ0Q29udmVyc2F0aW9uOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBsb2dnZWRJblVzZXIhOiBDb21ldENoYXQuVXNlciB8IG51bGw7XG4gIHB1YmxpYyBhY3RpdmVDb252ZXJzYXRpb24hOiBDb21ldENoYXQuQ29udmVyc2F0aW9uIHwgbnVsbDtcbiAgbGFiZWxTdHlsZTogYW55ID0ge1xuICAgIGJhY2tncm91bmQ6IFwidHJhbnNwYXJlbnRcIixcbiAgICB0ZXh0Rm9udDogXCI3MDAgMjJweCBJbnRlclwiLFxuICAgIHRleHRDb2xvcjogXCJyZ2JhKDIwLCAyMCwgMjAsIDAuMzMpXCJcbiAgfVxuXG4gIHB1YmxpYyBoaWRlU2VhcmNoOiBib29sZWFuID0gdHJ1ZTtcbiAgc3RhcnRDb252ZXJzYXRpb25CdXR0b25TdHlsZTogYW55ID0ge1xuXG4gIH1cbiAgLyoqXG4gICogRXZlbnRzXG4gICovXG4gIGNjR3JvdXBNZW1iZXJBZGRlZCE6IFN1YnNjcmlwdGlvbjtcbiAgY2NHcm91cExlZnQhOiBTdWJzY3JpcHRpb247XG4gIGNjT3BlbkNoYXQhOiBTdWJzY3JpcHRpb247XG4gIGNjR3JvdXBNZW1iZXJKb2luZWQhOiBTdWJzY3JpcHRpb247XG4gIGNjR3JvdXBNZW1iZXJLaWNrZWQhOiBTdWJzY3JpcHRpb247XG4gIGNjR3JvdXBNZW1iZXJCYW5uZWQhOiBTdWJzY3JpcHRpb247XG4gIGNjT3duZXJzaGlwQ2hhbmdlZCE6IFN1YnNjcmlwdGlvbjtcbiAgY2NHcm91cERlbGV0ZWQhOiBTdWJzY3JpcHRpb247XG4gIHNpZGVCYXJTdHlsZTogYW55ID0ge1xuXG4gIH1cbiAgcHVibGljIGNjQ29udmVyc2F0aW9uRGVsZXRlZCE6IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJpdmF0ZSB0aGVtZVNlcnZpY2U6IENvbWV0Q2hhdFRoZW1lU2VydmljZSkge1xuICB9XG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcblxuICAgIGlmIChjaGFuZ2VzW1wiaXNNb2JpbGVWaWV3XCJdKSB7XG4gICAgICBpZiAodGhpcy5pc01vYmlsZVZpZXcpIHtcbiAgICAgICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24ubWVzc2FnZUhlYWRlckNvbmZpZ3VyYXRpb24uaGlkZUJhY2tCdXR0b24gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24uZGV0YWlsc0NvbmZpZ3VyYXRpb24uZGV0YWlsc1N0eWxlLnBhZGRpbmcgPSBcIjAgOHB4XCJcbiAgICAgICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24uZGV0YWlsc0NvbmZpZ3VyYXRpb24uYWRkTWVtYmVyc0NvbmZpZ3VyYXRpb24uYWRkTWVtYmVyc1N0eWxlLnBhZGRpbmcgPSBcIjAgOHB4XCJcbiAgICAgICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24uZGV0YWlsc0NvbmZpZ3VyYXRpb24uZ3JvdXBNZW1iZXJzQ29uZmlndXJhdGlvbi5ncm91cE1lbWJlcnNTdHlsZS5wYWRkaW5nID0gXCIwIDhweFwiXG4gICAgICAgIHRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLmRldGFpbHNDb25maWd1cmF0aW9uLmJhbm5lZE1lbWJlcnNDb25maWd1cmF0aW9uLmJhbm5lZE1lbWJlcnNTdHlsZS5wYWRkaW5nID0gXCIwIDhweFwiXG4gICAgICAgIHRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLm1lc3NhZ2VIZWFkZXJDb25maWd1cmF0aW9uID0geyAuLi50aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5tZXNzYWdlSGVhZGVyQ29uZmlndXJhdGlvbiB9XG4gICAgICAgIHRoaXMuU3RhcnRDb252ZXJzYXRpb25Db25maWd1cmF0aW9uLmNvbnRhY3RzU3R5bGUucGFkZGluZyA9IFwiMCA4cHhcIjtcbiAgICAgICAgdGhpcy5TdGFydENvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24gPSB7IC4uLnRoaXMuU3RhcnRDb252ZXJzYXRpb25Db25maWd1cmF0aW9uIH1cblxuICAgICAgICB0aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbiA9IHsgLi4udGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24gfVxuICAgICAgfVxuICAgICAgZWxzZSBpZiAoIXRoaXMuaXNNb2JpbGVWaWV3KSB7XG4gICAgICAgIHRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLm1lc3NhZ2VMaXN0Q29uZmlndXJhdGlvbi5tZXNzYWdlSW5mb3JtYXRpb25Db25maWd1cmF0aW9uLm1lc3NhZ2VJbmZvcm1hdGlvblN0eWxlLmhlaWdodCA9IFwiNTAwcHhcIlxuICAgICAgICB0aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5tZXNzYWdlTGlzdENvbmZpZ3VyYXRpb24ubWVzc2FnZUluZm9ybWF0aW9uQ29uZmlndXJhdGlvbi5tZXNzYWdlSW5mb3JtYXRpb25TdHlsZS53aWR0aCA9IFwiNTAwcHhcIlxuICAgICAgICB0aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5tZXNzYWdlSGVhZGVyQ29uZmlndXJhdGlvbi5oaWRlQmFja0J1dHRvbiA9IHRydWU7XG4gICAgICAgIHRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLmRldGFpbHNDb25maWd1cmF0aW9uLmRldGFpbHNTdHlsZS5wYWRkaW5nID0gXCIwIDEwMHB4XCJcbiAgICAgICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24uZGV0YWlsc0NvbmZpZ3VyYXRpb24uYWRkTWVtYmVyc0NvbmZpZ3VyYXRpb24uYWRkTWVtYmVyc1N0eWxlLnBhZGRpbmcgPSBcIjAgMTAwcHhcIlxuICAgICAgICB0aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5kZXRhaWxzQ29uZmlndXJhdGlvbi5ncm91cE1lbWJlcnNDb25maWd1cmF0aW9uLmdyb3VwTWVtYmVyc1N0eWxlLnBhZGRpbmcgPSBcIjAgMTAwcHhcIlxuICAgICAgICB0aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5kZXRhaWxzQ29uZmlndXJhdGlvbi5iYW5uZWRNZW1iZXJzQ29uZmlndXJhdGlvbi5iYW5uZWRNZW1iZXJzU3R5bGUucGFkZGluZyA9IFwiMCAxMDBweFwiXG4gICAgICAgIHRoaXMuU3RhcnRDb252ZXJzYXRpb25Db25maWd1cmF0aW9uLmNvbnRhY3RzU3R5bGUucGFkZGluZyA9IFwiMCAxMDBweFwiO1xuICAgICAgICB0aGlzLlN0YXJ0Q29udmVyc2F0aW9uQ29uZmlndXJhdGlvbiA9IHsgLi4udGhpcy5TdGFydENvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24gfVxuICAgICAgICB0aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5tZXNzYWdlSGVhZGVyQ29uZmlndXJhdGlvbiA9IHsgLi4udGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24ubWVzc2FnZUhlYWRlckNvbmZpZ3VyYXRpb24gfVxuICAgICAgICB0aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbiA9IHsgLi4udGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24gfVxuXG4gICAgICB9XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy51cGRhdGVCYWNrZHJvcEhlaWdodCgpXG4gICAgICB9LCAxMDApO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlc1tcInVzZXJcIl0gfHwgY2hhbmdlc1tcImdyb3VwXCJdKSB7XG4gICAgICB0aGlzLnNldEFjdGl2ZUNoYXQoKTtcbiAgICB9XG4gIH1cbiAgdHJpZ2dlclN0YXJ0Q29udmVyc2F0aW9uKCkge1xuICAgIHRoaXMuc2hvd1N0YXJ0Q29udmVyc2F0aW9uID0gdHJ1ZTtcbiAgfVxuICBvbkJhY2sgPSAoKSA9PiB7XG4gICAgdGhpcy51c2VyID0gbnVsbFxuICAgIHRoaXMuZ3JvdXAgPSBudWxsXG4gICAgdGhpcy5hY3RpdmVDb252ZXJzYXRpb24gPSBudWxsXG4gIH1cbiAgc2V0V2l0aE1lc3NhZ2VzU3R5bGUoKSB7XG4gICAgbGV0IGRlZmF1bHRTdHlsZTogV2l0aE1lc3NhZ2VzU3R5bGUgPSBuZXcgV2l0aE1lc3NhZ2VzU3R5bGUoe1xuICAgICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgICAgaGVpZ2h0OiBcIjEwMCVcIixcbiAgICAgIGJhY2tncm91bmQ6IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QmFja2dyb3VuZCgpLFxuICAgICAgYm9yZGVyUmFkaXVzOiBcIm5vbmVcIixcbiAgICAgIGJvcmRlcjogYDFweCBzb2xpZCAke3RoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50MjAwKCl9YCxcbiAgICAgIG1lc3NhZ2VUZXh0Q29sb3I6IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NjAwKCksXG4gICAgICBtZXNzYWdlVGV4dEZvbnQ6IGZvbnRIZWxwZXIodGhpcy50aGVtZVNlcnZpY2UudGhlbWUudHlwb2dyYXBoeS50aXRsZTEpLFxuICAgIH0pXG4gICAgdGhpcy5jb252ZXJzYXRpb25zV2l0aE1lc3NhZ2VzU3R5bGUgPSB7XG4gICAgICAuLi5kZWZhdWx0U3R5bGUsXG4gICAgICAuLi50aGlzLmNvbnZlcnNhdGlvbnNXaXRoTWVzc2FnZXNTdHlsZVxuICAgIH1cbiAgICB0aGlzLmxhYmVsU3R5bGUudGV4dEZvbnQgPSB0aGlzLmNvbnZlcnNhdGlvbnNXaXRoTWVzc2FnZXNTdHlsZS5tZXNzYWdlVGV4dEZvbnRcbiAgICB0aGlzLmxhYmVsU3R5bGUudGV4dENvbG9yID0gdGhpcy5jb252ZXJzYXRpb25zV2l0aE1lc3NhZ2VzU3R5bGUubWVzc2FnZVRleHRDb2xvclxuICAgIHRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLm1lc3NhZ2VzU3R5bGUuYm9yZGVyID0gdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24ubWVzc2FnZXNTdHlsZS5ib3JkZXIgPz8gXCJub25lXCJcbiAgICB0aGlzLmNvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24uY29udmVyc2F0aW9uc1N0eWxlLmJvcmRlciA9IHRoaXMuY29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5jb252ZXJzYXRpb25zU3R5bGUuYm9yZGVyID8/IFwibm9uZVwiXG4gICAgaWYgKCF0aGlzLmNvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24/LmNvbnZlcnNhdGlvbnNTdHlsZT8uYm9yZGVyIHx8IHRoaXMuY29udmVyc2F0aW9uQ29uZmlndXJhdGlvbj8uY29udmVyc2F0aW9uc1N0eWxlPy5ib3JkZXIgPT0gXCJub25lXCIpIHtcbiAgICAgIHRoaXMuc2lkZUJhclN0eWxlID0geyBib3JkZXJSaWdodDogdGhpcy5jb252ZXJzYXRpb25zV2l0aE1lc3NhZ2VzU3R5bGUuYm9yZGVyIH1cblxuICAgIH1cbiAgfVxuICBwdWJsaWMgb25Db250YWN0U2VsZWN0ZWQgPSAodXNlcnM/OiBDb21ldENoYXQuVXNlcltdLCBncm91cHM/OiBDb21ldENoYXQuR3JvdXBbXSkgPT4ge1xuICAgIHRoaXMuc2hvd1N0YXJ0Q29udmVyc2F0aW9uID0gZmFsc2U7XG4gICAgaWYgKHVzZXJzICYmIHVzZXJzWzBdKSB7XG4gICAgICB0aGlzLmdyb3VwID0gbnVsbFxuICAgICAgdGhpcy51c2VyID0gdXNlcnNbMF07XG5cbiAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKVxuICAgIH1cbiAgICBpZiAoZ3JvdXBzICYmIGdyb3Vwc1swXSkge1xuICAgICAgdGhpcy51c2VyID0gbnVsbFxuICAgICAgdGhpcy5ncm91cCA9IGdyb3Vwc1swXTtcbiAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKVxuICAgIH1cbiAgfVxuICBwdWJsaWMgb25JdGVtQ2xpY2s6ICgoY29udmVyc2F0aW9uOiBDb21ldENoYXQuQ29udmVyc2F0aW9uKSA9PiB2b2lkKSA9IChjb252ZXJzYXRpb246IENvbWV0Q2hhdC5Db252ZXJzYXRpb24pID0+IHtcbiAgICB0aGlzLmFjdGl2ZUNvbnZlcnNhdGlvbiA9IGNvbnZlcnNhdGlvblxuICAgIHRoaXMuc2hvd1N0YXJ0Q29udmVyc2F0aW9uID0gZmFsc2U7XG4gICAgaWYgKGNvbnZlcnNhdGlvbi5nZXRDb252ZXJzYXRpb25UeXBlKCkgJiYgY29udmVyc2F0aW9uLmdldENvbnZlcnNhdGlvblR5cGUoKSA9PSBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlUmVjZWl2ZXJUeXBlLnVzZXIpIHtcbiAgICAgIHRoaXMuZ3JvdXAgPSBudWxsXG4gICAgICB0aGlzLnVzZXIgPSBjb252ZXJzYXRpb24uZ2V0Q29udmVyc2F0aW9uV2l0aCgpIGFzIENvbWV0Q2hhdC5Vc2VyO1xuICAgICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpXG4gICAgfVxuICAgIGVsc2UgaWYgKGNvbnZlcnNhdGlvbi5nZXRDb252ZXJzYXRpb25UeXBlKCkgJiYgY29udmVyc2F0aW9uLmdldENvbnZlcnNhdGlvblR5cGUoKSA9PSBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlUmVjZWl2ZXJUeXBlLmdyb3VwKSB7XG4gICAgICB0aGlzLnVzZXIgPSBudWxsXG4gICAgICB0aGlzLmdyb3VwID0gY29udmVyc2F0aW9uLmdldENvbnZlcnNhdGlvbldpdGgoKSBhcyBDb21ldENoYXQuR3JvdXBcbiAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKVxuICAgIH1cbiAgfTtcbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMudXBkYXRlQmFja2Ryb3BIZWlnaHQoKVxuICB9XG4gIHVwZGF0ZUJhY2tkcm9wSGVpZ2h0KCkge1xuICAgIGNvbnN0IGRpdkhlaWdodCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodDtcbiAgICBjb25zdCBkaXZXaWR0aCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgIGxldCBiYWNrZHJvcFN0eWxlID0ge1xuICAgICAgaGVpZ2h0OiBkaXZIZWlnaHQgKyBcInB4XCIsXG4gICAgICB3aWR0aDogZGl2V2lkdGggKyBcInB4XCIsXG4gICAgICBiYWNrZ3JvdW5kOiBcInJnYmEoMCwgMCwgMCwgMC41KVwiLFxuICAgICAgcG9zaXRpb246IFwiZml4ZWRcIlxuICAgIH1cbiAgICBpZiAodGhpcy5pc01vYmlsZVZpZXcpIHtcbiAgICAgIHRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLmRldGFpbHNDb25maWd1cmF0aW9uLnRyYW5zZmVyT3duZXJzaGlwQ29uZmlndXJhdGlvbi50cmFuc2Zlck93bmVyc2hpcFN0eWxlLmhlaWdodCA9IChkaXZIZWlnaHQgLSAzMCkgKyBcInB4XCI7XG4gICAgICB0aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5kZXRhaWxzQ29uZmlndXJhdGlvbi50cmFuc2Zlck93bmVyc2hpcENvbmZpZ3VyYXRpb24udHJhbnNmZXJPd25lcnNoaXBTdHlsZS53aWR0aCA9IGRpdldpZHRoICsgXCJweFwiO1xuICAgICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24ubWVzc2FnZUxpc3RDb25maWd1cmF0aW9uLm1lc3NhZ2VJbmZvcm1hdGlvbkNvbmZpZ3VyYXRpb24ubWVzc2FnZUluZm9ybWF0aW9uU3R5bGUuaGVpZ2h0ID0gZGl2SGVpZ2h0ICsgXCJweFwiO1xuICAgICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24ubWVzc2FnZUxpc3RDb25maWd1cmF0aW9uLm1lc3NhZ2VJbmZvcm1hdGlvbkNvbmZpZ3VyYXRpb24ubWVzc2FnZUluZm9ybWF0aW9uU3R5bGUud2lkdGggPSBkaXZXaWR0aCArIFwicHhcIjtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB0aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5kZXRhaWxzQ29uZmlndXJhdGlvbi50cmFuc2Zlck93bmVyc2hpcENvbmZpZ3VyYXRpb24udHJhbnNmZXJPd25lcnNoaXBTdHlsZS5oZWlnaHQgPSBcIjY1MHB4XCI7XG4gICAgICB0aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5kZXRhaWxzQ29uZmlndXJhdGlvbi50cmFuc2Zlck93bmVyc2hpcENvbmZpZ3VyYXRpb24udHJhbnNmZXJPd25lcnNoaXBTdHlsZS53aWR0aCA9IFwiMzYwcHhcIjtcbiAgICB9XG4gICAgdGhpcy5tZXNzYWdlc0NvbmZpZ3VyYXRpb24ubWVzc2FnZUxpc3RDb25maWd1cmF0aW9uLmJhY2tkcm9wU3R5bGUgPSBiYWNrZHJvcFN0eWxlO1xuICAgIHRoaXMuY29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5iYWNrZHJvcFN0eWxlID0gYmFja2Ryb3BTdHlsZTtcbiAgICB0aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5kZXRhaWxzQ29uZmlndXJhdGlvbi5iYWNrZHJvcFN0eWxlID0gYmFja2Ryb3BTdHlsZTtcbiAgICB0aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5tZXNzYWdlQ29tcG9zZXJDb25maWd1cmF0aW9uLmJhY2tkcm9wU3R5bGUgPSBiYWNrZHJvcFN0eWxlO1xuICAgIHRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLmRldGFpbHNDb25maWd1cmF0aW9uLmJhY2tkcm9wU3R5bGUgPSBiYWNrZHJvcFN0eWxlO1xuICAgIHRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLmRldGFpbHNDb25maWd1cmF0aW9uLmdyb3VwTWVtYmVyc0NvbmZpZ3VyYXRpb24uYmFja2Ryb3BTdHlsZSA9IGJhY2tkcm9wU3R5bGU7XG5cbiAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuICBzZXRBY3RpdmVDaGF0KCkge1xuICAgIGxldCB0eXBlOiBzdHJpbmcgPSB0aGlzLnVzZXIgPyBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlUmVjZWl2ZXJUeXBlLnVzZXIgOiBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlUmVjZWl2ZXJUeXBlLmdyb3VwXG4gICAgdGhpcy5hY3RpdmVDb252ZXJzYXRpb24gPSBudWxsXG4gICAgbGV0IGNvbnZlcnNhdGlvbldpdGg6IHN0cmluZyA9IHRoaXMudXNlcj8uZ2V0VWlkKCkhIHx8IHRoaXMuZ3JvdXA/LmdldEd1aWQoKSFcbiAgICBDb21ldENoYXQuZ2V0Q29udmVyc2F0aW9uKGNvbnZlcnNhdGlvbldpdGgsIHR5cGUpLnRoZW4oKGNvbnZlcnNhdGlvbjogQ29tZXRDaGF0LkNvbnZlcnNhdGlvbikgPT4ge1xuICAgICAgdGhpcy5hY3RpdmVDb252ZXJzYXRpb24gPSBjb252ZXJzYXRpb25cbiAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKVxuICAgIH0pXG4gICAgICAuY2F0Y2goKGVycm9yOiBDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLm9uRXJyb3IpIHtcbiAgICAgICAgICB0aGlzLm9uRXJyb3IoZXJyb3IpXG4gICAgICAgIH1cbiAgICAgIH0pXG4gIH1cbiAgY2xvc2VTdGFydENvbnZlcnNhdGlvbiA9ICgpID0+IHtcbiAgICB0aGlzLnNob3dTdGFydENvbnZlcnNhdGlvbiA9IGZhbHNlO1xuICB9XG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuU3RhcnRDb252ZXJzYXRpb25Db25maWd1cmF0aW9uLnVzZXJzQ29uZmlndXJhdGlvbi51c2Vyc1N0eWxlLmJvcmRlciA9IFwibm9uZVwiXG4gICAgdGhpcy5TdGFydENvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24uZ3JvdXBzQ29uZmlndXJhdGlvbi5ncm91cHNTdHlsZS5ib3JkZXIgPSBcIm5vbmVcIlxuICAgIHRoaXMuU3RhcnRDb252ZXJzYXRpb25Db25maWd1cmF0aW9uLm9uQ2xvc2UgPSB0aGlzLmNsb3NlU3RhcnRDb252ZXJzYXRpb25cbiAgICB0aGlzLnN0YXJ0Q29udmVyc2F0aW9uQnV0dG9uU3R5bGUgPSB7XG4gICAgICBoZWlnaHQ6IFwiMjRweFwiLFxuICAgICAgd2lkdGg6IFwiMjRweFwiLFxuICAgICAgYm9yZGVyOiBcIm5vbmVcIixcbiAgICAgIGJvcmRlclJhZGl1czogJzAnLFxuICAgICAgYmFja2dyb3VuZDogXCJ0cmFuc3BhcmVudFwiLFxuICAgICAgYnV0dG9uSWNvblRpbnQ6IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0UHJpbWFyeSgpXG4gICAgfVxuICAgIHRoaXMuU3RhcnRDb252ZXJzYXRpb25Db25maWd1cmF0aW9uID0geyAuLi50aGlzLlN0YXJ0Q29udmVyc2F0aW9uQ29uZmlndXJhdGlvbiB9XG4gICAgdGhpcy5zZXRXaXRoTWVzc2FnZXNTdHlsZSgpXG4gICAgaWYgKCF0aGlzLm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5tZXNzYWdlSGVhZGVyQ29uZmlndXJhdGlvbi5vbkJhY2spIHtcbiAgICAgIHRoaXMubWVzc2FnZXNDb25maWd1cmF0aW9uLm1lc3NhZ2VIZWFkZXJDb25maWd1cmF0aW9uLm9uQmFjayA9IHRoaXMub25CYWNrXG4gICAgfVxuICAgIHRoaXMuc3Vic2NyaWJlVG9FdmVudHMoKTtcbiAgICBDb21ldENoYXQuZ2V0TG9nZ2VkaW5Vc2VyKClcbiAgICAgIC50aGVuKCh1c2VyOiBDb21ldENoYXQuVXNlciB8IG51bGwpID0+IHtcbiAgICAgICAgdGhpcy5sb2dnZWRJblVzZXIgPSB1c2VyO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyb3I6IENvbWV0Q2hhdC5Db21ldENoYXRFeGNlcHRpb24pID0+IHtcbiAgICAgICAgaWYgKHRoaXMub25FcnJvcikge1xuICAgICAgICAgIHRoaXMub25FcnJvcihlcnJvcilcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgfVxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnVuc3Vic2NyaWJlVG9FdmVudHMoKTtcbiAgfVxuICAvLyBzdWJzY3JpYmUgdG8gZ2xvYmFsIGV2ZW50c1xuICBzdWJzY3JpYmVUb0V2ZW50cygpIHtcbiAgICB0aGlzLmNjQ29udmVyc2F0aW9uRGVsZXRlZCA9IENvbWV0Q2hhdENvbnZlcnNhdGlvbkV2ZW50cy5jY0NvbnZlcnNhdGlvbkRlbGV0ZWQuc3Vic2NyaWJlKChjb252ZXJzYXRpb246IENvbWV0Q2hhdC5Db252ZXJzYXRpb24pID0+IHtcbiAgICAgIHRoaXMucmVtb3ZlQWN0aXZlQ2hhdExpc3QoY29udmVyc2F0aW9uKSAvL3RvIG1ha2UgbSBtZXNzYWdlcyBzZWN0aW9uIGVtcHR5IGFmdGVyIGRlbGV0aW5nIGNvbnZlcnNhdGlvbiBmcm9tIGNvbnZlcnNhdGlvbmxpc3RcbiAgICB9KVxuICAgIHRoaXMuY2NHcm91cERlbGV0ZWQgPSBDb21ldENoYXRHcm91cEV2ZW50cy5jY0dyb3VwRGVsZXRlZC5zdWJzY3JpYmUoKGdyb3VwOiBDb21ldENoYXQuR3JvdXApID0+IHtcbiAgICAgIGlmICh0aGlzLmdyb3VwICYmIGdyb3VwLmdldEd1aWQoKSA9PSB0aGlzLmdyb3VwLmdldEd1aWQoKSkge1xuICAgICAgICB0aGlzLmdyb3VwID0gbnVsbDtcbiAgICAgICAgdGhpcy5hY3RpdmVDb252ZXJzYXRpb24gPSBudWxsO1xuICAgICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKClcbiAgICAgIH1cbiAgICB9KVxuICAgIHRoaXMuY2NHcm91cE1lbWJlckFkZGVkID0gQ29tZXRDaGF0R3JvdXBFdmVudHMuY2NHcm91cE1lbWJlckFkZGVkLnN1YnNjcmliZSgoaXRlbTogSUdyb3VwTWVtYmVyQWRkZWQpID0+IHtcbiAgICAgIGlmICh0aGlzLmdyb3VwICYmIHRoaXMuZ3JvdXAuZ2V0R3VpZCgpID09IGl0ZW0/LnVzZXJBZGRlZEluIS5nZXRHdWlkKCkpIHtcbiAgICAgICAgdGhpcy5ncm91cCA9IGl0ZW0/LnVzZXJBZGRlZEluO1xuICAgICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKClcbiAgICAgIH1cbiAgICB9KVxuICAgIHRoaXMuY2NHcm91cE1lbWJlckJhbm5lZCA9IENvbWV0Q2hhdEdyb3VwRXZlbnRzLmNjR3JvdXBNZW1iZXJCYW5uZWQuc3Vic2NyaWJlKChpdGVtOiBJR3JvdXBNZW1iZXJLaWNrZWRCYW5uZWQpID0+IHtcbiAgICAgIGlmICh0aGlzLmdyb3VwICYmIHRoaXMuZ3JvdXAuZ2V0R3VpZCgpID09IGl0ZW0/LmtpY2tlZEZyb20hLmdldEd1aWQoKSkge1xuICAgICAgICB0aGlzLmdyb3VwID0gaXRlbT8ua2lja2VkRnJvbTtcbiAgICAgICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpXG4gICAgICB9XG4gICAgfSlcbiAgICB0aGlzLmNjR3JvdXBNZW1iZXJKb2luZWQgPSBDb21ldENoYXRHcm91cEV2ZW50cy5jY0dyb3VwTWVtYmVySm9pbmVkLnN1YnNjcmliZSgoaXRlbTogSUdyb3VwTWVtYmVySm9pbmVkKSA9PiB7XG4gICAgICBpZiAodGhpcy5ncm91cCAmJiB0aGlzLmdyb3VwLmdldEd1aWQoKSA9PSBpdGVtPy5qb2luZWRHcm91cCEuZ2V0R3VpZCgpKSB7XG4gICAgICAgIHRoaXMuZ3JvdXAgPSBpdGVtPy5qb2luZWRHcm91cDtcbiAgICAgICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpXG4gICAgICB9XG4gICAgfSlcbiAgICB0aGlzLmNjR3JvdXBNZW1iZXJLaWNrZWQgPSBDb21ldENoYXRHcm91cEV2ZW50cy5jY0dyb3VwTWVtYmVyS2lja2VkLnN1YnNjcmliZSgoaXRlbTogSUdyb3VwTWVtYmVyS2lja2VkQmFubmVkKSA9PiB7XG4gICAgICBpZiAodGhpcy5ncm91cCAmJiB0aGlzLmdyb3VwLmdldEd1aWQoKSA9PSBpdGVtPy5raWNrZWRGcm9tIS5nZXRHdWlkKCkpIHtcbiAgICAgICAgdGhpcy5ncm91cCA9IGl0ZW0/LmtpY2tlZEZyb207XG4gICAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKVxuICAgICAgfVxuICAgIH0pXG4gICAgdGhpcy5jY093bmVyc2hpcENoYW5nZWQgPSBDb21ldENoYXRHcm91cEV2ZW50cy5jY093bmVyc2hpcENoYW5nZWQuc3Vic2NyaWJlKChpdGVtOiBJT3duZXJzaGlwQ2hhbmdlZCkgPT4ge1xuICAgICAgaWYgKHRoaXMuZ3JvdXAgJiYgdGhpcy5ncm91cC5nZXRHdWlkKCkgPT0gaXRlbT8uZ3JvdXAhLmdldEd1aWQoKSkge1xuICAgICAgICB0aGlzLmdyb3VwID0gaXRlbT8uZ3JvdXA7XG4gICAgICAgIHRoaXMuYWN0aXZlQ29udmVyc2F0aW9uPy5zZXRDb252ZXJzYXRpb25XaXRoKHRoaXMuZ3JvdXApXG4gICAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH1cbiAgICB9KVxuICAgIHRoaXMuY2NHcm91cExlZnQgPSBDb21ldENoYXRHcm91cEV2ZW50cy5jY0dyb3VwTGVmdC5zdWJzY3JpYmUoKGl0ZW06IElHcm91cExlZnQpID0+IHtcbiAgICAgIGlmICh0aGlzLmdyb3VwICYmIHRoaXMuZ3JvdXAuZ2V0R3VpZCgpID09IGl0ZW0/LmxlZnRHcm91cCEuZ2V0R3VpZCgpICYmIHRoaXMubG9nZ2VkSW5Vc2VyPy5nZXRVaWQoKSA9PSBpdGVtPy51c2VyTGVmdD8uZ2V0VWlkKCkpIHtcbiAgICAgICAgdGhpcy5ncm91cCA9IG51bGw7XG4gICAgICAgIHRoaXMuYWN0aXZlQ29udmVyc2F0aW9uID0gbnVsbDtcbiAgICAgICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpXG4gICAgICB9XG4gICAgfSlcbiAgICAvLyBvcGVuIGNoYXQgYW5kIG1hcmsgYXMgYWN0aXZlIGNvbnZlcnNhdGlvblxuICAgIHRoaXMuY2NPcGVuQ2hhdCA9IENvbWV0Q2hhdFVJRXZlbnRzLmNjT3BlbkNoYXQuc3Vic2NyaWJlKChpdGVtKSA9PiB7XG4gICAgICB0aGlzLnVzZXIgPSBpdGVtLnVzZXIgPyBpdGVtLnVzZXIgOiBudWxsO1xuICAgICAgdGhpcy5ncm91cCA9IGl0ZW0uZ3JvdXAgPyBpdGVtLmdyb3VwIDogbnVsbDtcbiAgICAgIHRoaXMuc2V0QWN0aXZlQ2hhdCgpXG4gICAgfSlcbiAgfVxuICAvLyB1bnN1YnNjcmliZSB0byBzdWJzY3JpYmVkIGV2ZW50cy5cbiAgdW5zdWJzY3JpYmVUb0V2ZW50cygpIHtcbiAgICB0aGlzLmNjQ29udmVyc2F0aW9uRGVsZXRlZD8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmNjR3JvdXBEZWxldGVkPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuY2NHcm91cE1lbWJlckFkZGVkPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuY2NHcm91cE1lbWJlckJhbm5lZD8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmNjR3JvdXBNZW1iZXJKb2luZWQ/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5jY0dyb3VwTWVtYmVyS2lja2VkPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuY2NPd25lcnNoaXBDaGFuZ2VkPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuY2NHcm91cExlZnQ/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5jY09wZW5DaGF0Py51bnN1YnNjcmliZSgpO1xuICB9XG4gIC8qKlxuICAgKiByZW1vdmUgYWN0aXZlIGNoYXQgc2NyZWVuIGFmdGVyIGRlbGV0aW5nIHRoZSBjb252ZXJzYXRpb24uXG4gICAqIEBwYXJhbSAge0NvbWV0Q2hhdC5Db252ZXJzYXRpb259IGNvbnZlcnNhdGlvblxuICAgKi9cbiAgcmVtb3ZlQWN0aXZlQ2hhdExpc3QoY29udmVyc2F0aW9uOiBDb21ldENoYXQuQ29udmVyc2F0aW9uKSB7XG4gICAgY29uc3QgY29udmVyc2F0aW9uVHlwZSA9IGNvbnZlcnNhdGlvbi5nZXRDb252ZXJzYXRpb25UeXBlKCk7XG4gICAgY29uc3QgY29udmVyc2F0aW9uV2l0aCA9IGNvbnZlcnNhdGlvbi5nZXRDb252ZXJzYXRpb25XaXRoKCk7XG4gICAgaWYgKGNvbnZlcnNhdGlvblR5cGUgPT09IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VSZWNlaXZlclR5cGUudXNlciAmJiB0aGlzLnVzZXIgJiYgdGhpcy51c2VyLmdldFVpZCgpID09PSAoY29udmVyc2F0aW9uV2l0aCBhcyBDb21ldENoYXQuVXNlcikuZ2V0VWlkKCkpIHtcbiAgICAgIHRoaXMudXNlciA9IG51bGw7XG4gICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSBlbHNlIGlmIChjb252ZXJzYXRpb25UeXBlID09PSBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlUmVjZWl2ZXJUeXBlLmdyb3VwICYmIHRoaXMuZ3JvdXAgJiYgdGhpcy5ncm91cC5nZXRHdWlkKCkgPT09IChjb252ZXJzYXRpb25XaXRoIGFzIENvbWV0Q2hhdC5Hcm91cCkuZ2V0R3VpZCgpKSB7XG4gICAgICB0aGlzLmdyb3VwID0gbnVsbDtcbiAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuICBlbXB0eU1lc3NhZ2VTdHlsZSA9ICgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgYmFja2dyb3VuZDogdGhpcy5jb252ZXJzYXRpb25zV2l0aE1lc3NhZ2VzU3R5bGUuYmFja2dyb3VuZCB8fCB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEJhY2tncm91bmQoKSxcbiAgICAgIGhlaWdodDogdGhpcy5jb252ZXJzYXRpb25zV2l0aE1lc3NhZ2VzU3R5bGUuaGVpZ2h0LFxuICAgICAgd2lkdGg6IGBjYWxjKCR7dGhpcy5jb252ZXJzYXRpb25zV2l0aE1lc3NhZ2VzU3R5bGUud2lkdGh9IC0gMjgwcHgpYCxcbiAgICAgIGJvcmRlcjogXCJub25lXCIsXG4gICAgICBib3JkZXJSYWRpdXM6IHRoaXMuY29udmVyc2F0aW9uc1dpdGhNZXNzYWdlc1N0eWxlLmJvcmRlclJhZGl1cyxcbiAgICB9XG4gIH1cbiAgY2hhdHNXcmFwcGVyU3R5bGVzID0gKCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBoZWlnaHQ6IHRoaXMuY29udmVyc2F0aW9uc1dpdGhNZXNzYWdlc1N0eWxlLmhlaWdodCxcbiAgICAgIHdpZHRoOiB0aGlzLmNvbnZlcnNhdGlvbnNXaXRoTWVzc2FnZXNTdHlsZS53aWR0aCxcbiAgICAgIGJvcmRlcjogdGhpcy5jb252ZXJzYXRpb25zV2l0aE1lc3NhZ2VzU3R5bGUuYm9yZGVyLFxuICAgICAgYm9yZGVyUmFkaXVzOiB0aGlzLmNvbnZlcnNhdGlvbnNXaXRoTWVzc2FnZXNTdHlsZS5ib3JkZXJSYWRpdXMsXG4gICAgICBiYWNrZ3JvdW5kOiB0aGlzLmNvbnZlcnNhdGlvbnNXaXRoTWVzc2FnZXNTdHlsZS5iYWNrZ3JvdW5kIHx8IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QmFja2dyb3VuZCgpLFxuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNjLXdpdGgtbWVzc2FnZXNfX3dyYXBwZXJcIiBbbmdTdHlsZV09XCJjaGF0c1dyYXBwZXJTdHlsZXMoKVwiPlxuICA8ZGl2IGNsYXNzPVwiY2Mtd2l0aC1tZXNzYWdlc19fc2lkZWJhclwiIFtuZ0NsYXNzXT1cInttb2JpbGUgOiBpc01vYmlsZVZpZXd9XCJcbiAgICBbbmdTdHlsZV09XCJzaWRlQmFyU3R5bGVcIj5cbiAgICA8Y29tZXRjaGF0LWNvbnZlcnNhdGlvbnMgI2NvbnZlcnNhdGlvblJlZlxuICAgICAgW2FjdGl2ZUNvbnZlcnNhdGlvbl09XCJhY3RpdmVDb252ZXJzYXRpb25cIlxuICAgICAgW29uSXRlbUNsaWNrXT1cImNvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24ub25JdGVtQ2xpY2sgfHwgb25JdGVtQ2xpY2tcIlxuICAgICAgW2NvbnZlcnNhdGlvbnNTdHlsZV09XCJjb252ZXJzYXRpb25Db25maWd1cmF0aW9uLmNvbnZlcnNhdGlvbnNTdHlsZVwiXG4gICAgICBbc3RhdHVzSW5kaWNhdG9yU3R5bGVdPVwiY29udmVyc2F0aW9uQ29uZmlndXJhdGlvbj8uc3RhdHVzSW5kaWNhdG9yU3R5bGVcIlxuICAgICAgW2F2YXRhclN0eWxlXT1cImNvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24/LmF2YXRhclN0eWxlIVwiXG4gICAgICBbc3VidGl0bGVWaWV3XT1cImNvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24uc3VidGl0bGVWaWV3XCJcbiAgICAgIFtvcHRpb25zXT1cImNvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24ub3B0aW9uc1wiXG4gICAgICBbZGlzYWJsZVVzZXJzUHJlc2VuY2VdPVwiY29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5kaXNhYmxlVXNlcnNQcmVzZW5jZVwiXG4gICAgICBbZGlzYWJsZVJlY2VpcHRdPVwiY29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5kaXNhYmxlUmVjZWlwdFwiXG4gICAgICBbZGlzYWJsZVR5cGluZ109XCJjb252ZXJzYXRpb25Db25maWd1cmF0aW9uLmRpc2FibGVUeXBpbmdcIlxuICAgICAgW2RlbGl2ZXJlZEljb25dPVwiY29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5kZWxpdmVyZWRJY29uXCJcbiAgICAgIFtyZWFkSWNvbl09XCJjb252ZXJzYXRpb25Db25maWd1cmF0aW9uLnJlYWRJY29uXCJcbiAgICAgIFt3YWl0SWNvbl09XCJjb252ZXJzYXRpb25Db25maWd1cmF0aW9uLndhaXRJY29uXCJcbiAgICAgIFtlcnJvckljb25dPVwiY29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5lcnJvckljb25cIlxuICAgICAgW2RhdGVQYXR0ZXJuXT1cImNvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24uZGF0ZVBhdHRlcm5cIlxuICAgICAgW3JlY2VpcHRTdHlsZV09XCJjb252ZXJzYXRpb25Db25maWd1cmF0aW9uLnJlY2VpcHRTdHlsZVwiXG4gICAgICBbc2VudEljb25dPVwiY29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5zZW50SWNvblwiXG4gICAgICBbcHJpdmF0ZUdyb3VwSWNvbl09XCJjb252ZXJzYXRpb25Db25maWd1cmF0aW9uLnByaXZhdGVHcm91cEljb25cIlxuICAgICAgW3Byb3RlY3RlZEdyb3VwSWNvbl09XCJjb252ZXJzYXRpb25Db25maWd1cmF0aW9uLnByb3RlY3RlZEdyb3VwSWNvblwiXG4gICAgICBbY3VzdG9tU291bmRGb3JNZXNzYWdlc109XCJjb252ZXJzYXRpb25Db25maWd1cmF0aW9uLmN1c3RvbVNvdW5kRm9yTWVzc2FnZXNcIlxuICAgICAgW2NvbnZlcnNhdGlvbnNSZXF1ZXN0QnVpbGRlcl09XCJjb252ZXJzYXRpb25Db25maWd1cmF0aW9uLmNvbnZlcnNhdGlvbnNSZXF1ZXN0QnVpbGRlclwiXG4gICAgICBbZW1wdHlTdGF0ZVZpZXddPVwiY29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5lbXB0eVN0YXRlVmlld1wiXG4gICAgICBbb25TZWxlY3RdPVwiY29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5vblNlbGVjdFwiXG4gICAgICBbbG9hZGluZ0ljb25VUkxdPVwiY29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5sb2FkaW5nSWNvblVSTFwiXG4gICAgICBbZXJyb3JTdGF0ZVZpZXddPVwiY29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5lcnJvclN0YXRlVmlld1wiXG4gICAgICBbbG9hZGluZ1N0YXRlVmlld109XCJjb252ZXJzYXRpb25Db25maWd1cmF0aW9uLmxvYWRpbmdTdGF0ZVZpZXdcIlxuICAgICAgW3RpdGxlQWxpZ25tZW50XT1cImNvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24udGl0bGVBbGlnbm1lbnRcIlxuICAgICAgW2xpc3RJdGVtVmlld109XCJjb252ZXJzYXRpb25Db25maWd1cmF0aW9uLmxpc3RJdGVtVmlld1wiXG4gICAgICBbbWVudV09XCJjb252ZXJzYXRpb25Db25maWd1cmF0aW9uLm1lbnUgfHwgc3RhcnRDb252ZXJzYXRpb25CdXR0b25cIlxuICAgICAgW2hpZGVTZXBhcmF0b3JdPVwiY29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5oaWRlU2VwYXJhdG9yXCJcbiAgICAgIFtoaWRlRXJyb3JdPVwiY29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5oaWRlRXJyb3JcIlxuICAgICAgW3NlbGVjdGlvbk1vZGVdPVwiY29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5zZWxlY3Rpb25Nb2RlXCJcbiAgICAgIFtkaXNhYmxlU291bmRGb3JNZXNzYWdlc109XCJjb252ZXJzYXRpb25Db25maWd1cmF0aW9uLmRpc2FibGVTb3VuZEZvck1lc3NhZ2VzXCJcbiAgICAgIFtkZWxldGVDb252ZXJzYXRpb25EaWFsb2dTdHlsZV09XCJjb252ZXJzYXRpb25Db25maWd1cmF0aW9uLmRlbGV0ZUNvbnZlcnNhdGlvbkRpYWxvZ1N0eWxlXCJcbiAgICAgIFtiYWRnZVN0eWxlXT1cImNvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24uYmFkZ2VTdHlsZVwiXG4gICAgICBbZGF0ZVN0eWxlXT1cImNvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24uZGF0ZVN0eWxlXCJcbiAgICAgIFtsaXN0SXRlbVN0eWxlXT1cImNvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24ubGlzdEl0ZW1TdHlsZVwiXG4gICAgICBbYmFja2Ryb3BTdHlsZV09XCJjb252ZXJzYXRpb25Db25maWd1cmF0aW9uLmJhY2tkcm9wU3R5bGVcIlxuICAgICAgW3RleHRGb3JtYXR0ZXJzXT1cImNvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24/LnRleHRGb3JtYXR0ZXJzXCJcbiAgICAgIFtkaXNhYmxlTWVudGlvbnNdPVwiY29udmVyc2F0aW9uQ29uZmlndXJhdGlvbi5kaXNhYmxlTWVudGlvbnNcIj48L2NvbWV0Y2hhdC1jb252ZXJzYXRpb25zPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImNjLXdpdGgtbWVzc2FnZXNfX21haW5cIiBbbmdDbGFzc109XCJ7bW9iaWxlIDogaXNNb2JpbGVWaWV3fVwiXG4gICAgKm5nSWY9XCIhc2hvd1N0YXJ0Q29udmVyc2F0aW9uICYmICh1c2VyIHx8IGdyb3VwKVwiPlxuICAgIDwhLS1NZXNzYWdlIExpc3QgU2NyZWVuLS0+XG4gICAgPGNvbWV0Y2hhdC1tZXNzYWdlcyAjbWVzc2FnZXNSZWYgW3VzZXJdPVwidXNlciFcIiBbZ3JvdXBdPVwiZ3JvdXAhXCJcbiAgICAgIFttZXNzYWdlSGVhZGVyQ29uZmlndXJhdGlvbl09XCJtZXNzYWdlc0NvbmZpZ3VyYXRpb24ubWVzc2FnZUhlYWRlckNvbmZpZ3VyYXRpb25cIlxuICAgICAgW21lc3NhZ2VMaXN0Q29uZmlndXJhdGlvbl09XCJtZXNzYWdlc0NvbmZpZ3VyYXRpb24ubWVzc2FnZUxpc3RDb25maWd1cmF0aW9uXCJcbiAgICAgIFttZXNzYWdlQ29tcG9zZXJDb25maWd1cmF0aW9uXT1cIm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5tZXNzYWdlQ29tcG9zZXJDb25maWd1cmF0aW9uXCJcbiAgICAgIFttZXNzYWdlc1N0eWxlXT1cIm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5tZXNzYWdlc1N0eWxlXCJcbiAgICAgIFtjdXN0b21Tb3VuZEZvckluY29taW5nTWVzc2FnZXNdPVwibWVzc2FnZXNDb25maWd1cmF0aW9uLmN1c3RvbVNvdW5kRm9ySW5jb21pbmdNZXNzYWdlc1wiXG4gICAgICBbY3VzdG9tU291bmRGb3JPdXRnb2luZ01lc3NhZ2VzXT1cIm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5jdXN0b21Tb3VuZEZvck91dGdvaW5nTWVzc2FnZXNcIlxuICAgICAgW2RldGFpbHNDb25maWd1cmF0aW9uXT1cIm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5kZXRhaWxzQ29uZmlndXJhdGlvblwiXG4gICAgICBbZGlzYWJsZVNvdW5kRm9yTWVzc2FnZXNdPVwibWVzc2FnZXNDb25maWd1cmF0aW9uLmRpc2FibGVTb3VuZEZvck1lc3NhZ2VzXCJcbiAgICAgIFtkaXNhYmxlVHlwaW5nXT1cIm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5kaXNhYmxlVHlwaW5nXCJcbiAgICAgIFtoaWRlTWVzc2FnZUNvbXBvc2VyXT1cIm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5oaWRlTWVzc2FnZUNvbXBvc2VyXCJcbiAgICAgIFtoaWRlTWVzc2FnZUhlYWRlcl09XCJtZXNzYWdlc0NvbmZpZ3VyYXRpb24uaGlkZU1lc3NhZ2VIZWFkZXJcIlxuICAgICAgW21lc3NhZ2VDb21wb3NlclZpZXddPVwibWVzc2FnZXNDb25maWd1cmF0aW9uLm1lc3NhZ2VDb21wb3NlclZpZXdcIlxuICAgICAgW21lc3NhZ2VIZWFkZXJWaWV3XT1cIm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5tZXNzYWdlSGVhZGVyVmlld1wiXG4gICAgICBbbWVzc2FnZUxpc3RWaWV3XT1cIm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5tZXNzYWdlTGlzdFZpZXdcIlxuICAgICAgW2hpZGVEZXRhaWxzXT1cIm1lc3NhZ2VzQ29uZmlndXJhdGlvbi5oaWRlRGV0YWlscyFcIlxuICAgICAgW3RocmVhZGVkTWVzc2FnZUNvbmZpZ3VyYXRpb25dPVwibWVzc2FnZXNDb25maWd1cmF0aW9uLnRocmVhZGVkTWVzc2FnZUNvbmZpZ3VyYXRpb25cIj5cbiAgICA8L2NvbWV0Y2hhdC1tZXNzYWdlcz5cbiAgICA8IS0tTWVzc2FnZSBMaXN0IFNjcmVlbiBFTkRTLS0+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiY2Mtd2l0aC1tZXNzYWdlc19fc3RhcnQtY29udmVyc2F0aW9uXCJcbiAgICBbbmdDbGFzc109XCJ7bW9iaWxlIDogaXNNb2JpbGVWaWV3fVwiICpuZ0lmPVwic2hvd1N0YXJ0Q29udmVyc2F0aW9uXCI+XG5cbiAgICA8Y29tZXRjaGF0LWNvbnRhY3RzXG4gICAgICBbdXNlcnNDb25maWd1cmF0aW9uXT1cIlN0YXJ0Q29udmVyc2F0aW9uQ29uZmlndXJhdGlvbj8udXNlcnNDb25maWd1cmF0aW9uIVwiXG4gICAgICBbZ3JvdXBzQ29uZmlndXJhdGlvbl09XCJTdGFydENvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24/Lmdyb3Vwc0NvbmZpZ3VyYXRpb24hXCJcbiAgICAgIFtjbG9zZUljb25VUkxdPVwiU3RhcnRDb252ZXJzYXRpb25Db25maWd1cmF0aW9uPy5jbG9zZUljb25VUkwhXCJcbiAgICAgIFtjb250YWN0c1N0eWxlXT1cIlN0YXJ0Q29udmVyc2F0aW9uQ29uZmlndXJhdGlvbj8uY29udGFjdHNTdHlsZSFcIlxuICAgICAgW3NlbGVjdGlvbk1vZGVdPVwiU3RhcnRDb252ZXJzYXRpb25Db25maWd1cmF0aW9uPy5zZWxlY3Rpb25Nb2RlIVwiXG4gICAgICBbb25DbG9zZV09XCJTdGFydENvbnZlcnNhdGlvbkNvbmZpZ3VyYXRpb24/Lm9uQ2xvc2UhXCJcbiAgICAgIFt0YWJWaXNpYmlsaXR5XT1cIlN0YXJ0Q29udmVyc2F0aW9uQ29uZmlndXJhdGlvbj8udGFiVmlzaWJpbGl0eSFcIlxuICAgICAgW3NlbGVjdGlvbkxpbWl0XT1cIlN0YXJ0Q29udmVyc2F0aW9uQ29uZmlndXJhdGlvbj8uc2VsZWN0aW9uTGltaXQhXCJcbiAgICAgIFt0YWJzXT1cIlN0YXJ0Q29udmVyc2F0aW9uQ29uZmlndXJhdGlvbj8udGFicyFcIlxuICAgICAgW2hpZGVTdWJtaXRCdXR0b25dPVwiU3RhcnRDb252ZXJzYXRpb25Db25maWd1cmF0aW9uPy5oaWRlU3VibWl0QnV0dG9uIVwiXG4gICAgICBbb25TdWJtaXRCdXR0b25DbGlja109XCJvbkNvbnRhY3RTZWxlY3RlZFwiPjwvY29tZXRjaGF0LWNvbnRhY3RzPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImNjLWRlY29yYXRvcl9fbWVzc2FnZS0tZW1wdHlcIlxuICAgICpuZ0lmPVwiIXVzZXIgJiYgIWdyb3VwICYmICFzaG93U3RhcnRDb252ZXJzYXRpb25cIlxuICAgIFtuZ1N0eWxlXT1cImVtcHR5TWVzc2FnZVN0eWxlKClcIj5cbiAgICA8Y29tZXRjaGF0LWxhYmVsIFt0ZXh0XT1cIm1lc3NhZ2VUZXh0XCJcbiAgICAgIFtsYWJlbFN0eWxlXT1cImxhYmVsU3R5bGVcIj48L2NvbWV0Y2hhdC1sYWJlbD5cbiAgPC9kaXY+XG4gIDxuZy10ZW1wbGF0ZSAjc3RhcnRDb252ZXJzYXRpb25CdXR0b24+XG4gICAgPGNvbWV0Y2hhdC1idXR0b24gKm5nSWY9XCIhaGlkZVN0YXJ0TmV3Q29udmVyc2F0aW9uXCJcbiAgICAgIFtpY29uVVJMXT1cInN0YXJ0TmV3Q29udmVyc2F0aW9uSWNvblVSTFwiXG4gICAgICBbYnV0dG9uU3R5bGVdPVwic3RhcnRDb252ZXJzYXRpb25CdXR0b25TdHlsZVwiXG4gICAgICAoY2MtYnV0dG9uLWNsaWNrZWQpPVwidHJpZ2dlclN0YXJ0Q29udmVyc2F0aW9uKClcIj48L2NvbWV0Y2hhdC1idXR0b24+XG5cbiAgPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|