@cometchat/chat-uikit-angular 4.3.31 → 4.3.32
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/Shared/Utils/UtilityFunctions.d.ts +6 -0
- package/esm2020/CometChatMessageComposer/cometchat-message-composer/cometchat-message-composer.component.mjs +12 -2
- package/esm2020/CometChatMessageList/cometchat-message-list/cometchat-message-list.component.mjs +6 -4
- package/esm2020/Shared/CometChatUIkit/CometChatUIKit.mjs +2 -2
- package/esm2020/Shared/Utils/UtilityFunctions.mjs +36 -0
- package/esm2020/public-api.mjs +2 -1
- package/fesm2015/cometchat-chat-uikit-angular.mjs +55 -8
- package/fesm2015/cometchat-chat-uikit-angular.mjs.map +1 -1
- package/fesm2020/cometchat-chat-uikit-angular.mjs +53 -6
- package/fesm2020/cometchat-chat-uikit-angular.mjs.map +1 -1
- package/package.json +4 -4
- package/public-api.d.ts +1 -0
- package/assets/new-message-icon.svg +0 -1
|
@@ -29,7 +29,7 @@ export class CometChatUIKit {
|
|
|
29
29
|
if (window) {
|
|
30
30
|
window.CometChatUiKit = {
|
|
31
31
|
name: "@cometchat/chat-uikit-angular",
|
|
32
|
-
version: "4.3.
|
|
32
|
+
version: "4.3.32",
|
|
33
33
|
};
|
|
34
34
|
}
|
|
35
35
|
if (CometChatUIKitSharedSettings) {
|
|
@@ -489,4 +489,4 @@ CometChatUIKit.defaultAIFeatures = [
|
|
|
489
489
|
new AIConversationSummaryExtension(),
|
|
490
490
|
new AIAssistBotExtension(),
|
|
491
491
|
];
|
|
492
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tZXRDaGF0VUlLaXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jaGF0LXVpa2l0LWFuZ3VsYXIvc3JjL1NoYXJlZC9Db21ldENoYXRVSWtpdC9Db21ldENoYXRVSUtpdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBRUwsMkJBQTJCLEVBQzNCLHFCQUFxQixFQUNyQix1QkFBdUIsRUFDdkIsWUFBWSxHQUViLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUd2QixhQUFhLEdBRWQsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx1RUFBdUUsQ0FBQztBQUN2SCxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSwyRUFBMkUsQ0FBQztBQUM3SCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFM0QsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDckcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDbEcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0saUVBQWlFLENBQUM7QUFDOUcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQy9GLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG1FQUFtRSxDQUFDO0FBQ2pILE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ3hHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ3hHLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIscUJBQXFCLEdBQ3RCLE1BQU0seUJBQXlCLENBQUM7QUFFakMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFeEUsTUFBTSxPQUFPLGNBQWM7SUFNekIsTUFBTSxDQUFDLGFBQWE7UUFDbEIsT0FBTyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUE0QjtRQUN0QyxvREFBb0Q7UUFDcEQsY0FBYyxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFDN0MsSUFBSSxNQUFNLEVBQUU7WUFDSixNQUFPLENBQUMsY0FBYyxHQUFHO2dCQUM3QixJQUFJLEVBQUUsK0JBQStCO2dCQUNyQyxPQUFPLEVBQUUsUUFBUTthQUNsQixDQUFDO1NBQ0g7UUFFRCxJQUFJLDRCQUE0QixFQUFFO1lBQ2hDLDRCQUE0QixDQUFDLGFBQWEsR0FBRyxjQUFjLEVBQUUsYUFBYSxDQUFDO1NBQzVFO1FBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsRUFBRTtZQUFFLE9BQU8sU0FBUyxDQUFDO1FBQzVELE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxTQUFTLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUM5RCxJQUFJLGFBQWEsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUM1QixrQkFBa0IsQ0FBQyx5QkFBeUIsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztTQUN4RTthQUFNLElBQUksYUFBYSxDQUFDLG1CQUFtQixFQUFFLEtBQUssV0FBVyxFQUFFO1lBQzlELGtCQUFrQixDQUFDLDRCQUE0QixFQUFFLENBQUM7U0FDbkQ7YUFBTSxJQUFJLGFBQWEsQ0FBQyxtQkFBbUIsRUFBRSxLQUFLLFNBQVMsRUFBRTtZQUM1RCxrQkFBa0IsQ0FBQywyQkFBMkIsRUFBRSxDQUFDO1NBQ2xEO1FBQ0Qsa0JBQWtCLENBQUMsNkJBQTZCLENBQzlDLGFBQWEsQ0FBQywrQkFBK0IsRUFBRSxDQUNoRCxDQUFDO1FBRUYsa0JBQWtCLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ3hELGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQ25FLGtCQUFrQixDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQ3JFLE1BQU0sV0FBVyxHQUFHLGtCQUFrQixDQUFDLEtBQUssRUFBRSxDQUFDO1FBQy9DLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDckMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsS0FBSyxFQUFFLFdBQVcsQ0FBQztpQkFDOUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtnQkFDVCxTQUFTLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBQ2xELGNBQWMsQ0FBQyxlQUFlLEVBQUU7b0JBQzlCLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7b0JBQ2QsSUFBSSxJQUFJLEVBQUU7d0JBQ1IsMkJBQTJCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO3dCQUNsRCxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQzt3QkFDeEIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7cUJBQzNCO29CQUNELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDaEIsQ0FBQyxDQUFDO3FCQUNELEtBQUssQ0FBQyxDQUFDLEtBQW1DLEVBQUUsRUFBRTtvQkFDN0MsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNoQixDQUFDLENBQUMsQ0FBQztZQUNQLENBQUMsQ0FBQztpQkFDRCxLQUFLLENBQUMsQ0FBQyxLQUFtQyxFQUFFLEVBQUU7Z0JBQzdDLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZCLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxDQUFDLGVBQWU7UUFDcEIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNyQyxTQUFTLENBQUMsZUFBZSxFQUFFO2lCQUN4QixJQUFJLENBQUMsQ0FBQyxJQUEyQixFQUFFLEVBQUU7Z0JBQ3BDLE9BQU8sT0FBTyxDQUFDLElBQUssQ0FBQyxDQUFDO1lBQ3hCLENBQUMsQ0FBQztpQkFDRCxLQUFLLENBQUMsQ0FBQyxLQUFtQyxFQUFFLEVBQUU7Z0JBQzdDLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZCLENBQUMsQ0FBQztpQkFDRCxLQUFLLENBQUMsQ0FBQyxLQUFtQyxFQUFFLEVBQUU7Z0JBQzdDLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZCLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBMkJELE1BQU0sQ0FBQyxhQUFhO1FBQ2xCLElBQUksbUJBQW1CLEVBQUU7WUFDdkIsTUFBTSxjQUFjLEdBQUcsSUFBSSxtQkFBbUIsQ0FBQyxzQkFBc0IsRUFBRTtpQkFDcEUsUUFBUSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDO2lCQUM3QyxTQUFTLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUM7aUJBQy9DLEtBQUssRUFBRSxDQUFDO1lBQ1gsbUJBQW1CLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLElBQUksQ0FDM0MsR0FBRyxFQUFFO2dCQUNILE9BQU8sQ0FBQyxHQUFHLENBQUMsdUNBQXVDLENBQUMsQ0FBQztnQkFDckQsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLG1CQUFtQixFQUFFLEVBQUU7b0JBQzdDLElBQUksQ0FBQyxhQUFhLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztpQkFDcEQ7cUJBQ0k7b0JBQ0gsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sRUFBRSxDQUFDO2lCQUN2QztZQUNILENBQUMsRUFDRCxDQUFDLEtBQVUsRUFBRSxFQUFFO2dCQUNiLE9BQU8sQ0FBQyxHQUFHLENBQ1Qsa0RBQWtELEVBQ2xELEtBQUssQ0FDTixDQUFDO1lBQ0osQ0FBQyxDQUNGLENBQUM7U0FDSDtJQUNILENBQUM7SUFFTyxNQUFNLENBQUMsa0JBQWtCO1FBQy9CLElBQUksY0FBYyxDQUFDLGFBQWEsSUFBSSxJQUFJLEVBQUU7WUFDeEMsU0FBUyxDQUFDLDZCQUE2QixFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBeUMsRUFBRSxFQUFFO2dCQUUzRixjQUFjLENBQUMsMEJBQTBCLEdBQUcsR0FBRyxDQUFDO1lBQ2xELENBQUMsQ0FBQyxDQUFBO1lBQ0YsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3JCLElBQUksYUFBYSxHQUNmLElBQUksQ0FBQyxhQUFhLEVBQUUsVUFBVSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztZQUUzRCxJQUFJLGNBQWMsR0FBNEIsS0FBSyxDQUFDLE9BQU8sQ0FDekQsSUFBSSxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQy9CO2dCQUNDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLFVBQVU7Z0JBQ2hDLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUM7WUFDM0IsdUJBQXVCLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDMUMsMkJBQTJCLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDN0MsSUFBSSxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDNUIsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQStCLEVBQUUsRUFBRTtvQkFDeEQsU0FBUyxFQUFFLE1BQU0sRUFBRSxDQUFDO2dCQUN0QixDQUFDLENBQUMsQ0FBQzthQUNKO1lBRUQsSUFBSSxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDN0IsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQWlDLEVBQUUsRUFBRTtvQkFDM0QsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDO2dCQUN2QixDQUFDLENBQUMsQ0FBQzthQUNKO1NBQ0Y7SUFDSCxDQUFDO0lBQ0QsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FHbEI7UUFDQyxJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixFQUFFO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFDMUQsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNyQyxjQUFjLENBQUMsZUFBZSxFQUFFO2dCQUM5QixFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUNkLElBQUksSUFBSSxFQUFFO29CQUNSLDJCQUEyQixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDbEQsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNkLDJCQUEyQixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDbEQsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQ3hCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO2lCQUMzQjtxQkFBTTtvQkFDTCxJQUFJLElBQUksR0FBVSxPQUFPLENBQUMsR0FBRzt3QkFDM0IsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxjQUFjLENBQUMsYUFBYSxDQUFDLE9BQVEsQ0FBQzt3QkFDdEQsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO29CQUN4QixTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDO3lCQUNyQixJQUFJLENBQUMsQ0FBQyxJQUFvQixFQUFFLEVBQUU7d0JBQzdCLDJCQUEyQixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFDbEQsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO3dCQUNkLDJCQUEyQixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFDbEQsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7d0JBQ3hCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO29CQUM1QixDQUFDLENBQUM7eUJBQ0QsS0FBSyxDQUFDLENBQUMsS0FBbUMsRUFBRSxFQUFFO3dCQUM3QyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ2hCLENBQUMsQ0FBQyxDQUFDO2lCQUNOO1lBQ0gsQ0FBQyxDQUFDO2lCQUNELEtBQUssQ0FBQyxDQUFDLEtBQW1DLEVBQUUsRUFBRTtnQkFDN0MsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2hCLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBb0I7UUFDMUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsRUFBRTtZQUFFLE9BQU8sU0FBUyxDQUFDO1FBQzFELE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDckMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLGFBQWEsQ0FBQyxPQUFRLENBQUM7aUJBQzlELElBQUksQ0FBQyxDQUFDLElBQW9CLEVBQUUsRUFBRTtnQkFDN0IsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hCLENBQUMsQ0FBQztpQkFDRCxLQUFLLENBQUMsQ0FBQyxLQUFtQyxFQUFFLEVBQUU7Z0JBQzdDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNoQixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQW9CO1FBQzFDLElBQUksQ0FBQyxjQUFjLENBQUMsaUJBQWlCLEVBQUU7WUFBRSxPQUFPLFNBQVMsQ0FBQztRQUMxRCxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3JDLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLGNBQWMsQ0FBQyxhQUFhLENBQUMsT0FBUSxDQUFDO2lCQUM5RCxJQUFJLENBQUMsQ0FBQyxJQUFvQixFQUFFLEVBQUU7Z0JBQzdCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNoQixDQUFDLENBQUM7aUJBQ0QsS0FBSyxDQUFDLENBQUMsS0FBbUMsRUFBRSxFQUFFO2dCQUM3QyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEIsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU07UUFDakIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsRUFBRTtZQUFFLE9BQU8sU0FBUyxDQUFDO1FBQzFELE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDckMsU0FBUyxDQUFDLE1BQU0sRUFBRTtpQkFDZixJQUFJLENBQUMsQ0FBQyxPQUFlLEVBQUUsRUFBRTtnQkFDeEIsWUFBWSxDQUFDLFVBQVUsQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUE7Z0JBQ2pFLDJCQUEyQixDQUFDLGtCQUFrQixFQUFFLENBQUM7Z0JBQ2pELE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDakIsMkJBQTJCLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUNuRCxDQUFDLENBQUM7aUJBQ0QsS0FBSyxDQUFDLENBQUMsS0FBbUMsRUFBRSxFQUFFO2dCQUM3QyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEIsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxxQ0FBcUM7SUFDckMsTUFBTSxDQUFDLGlCQUFpQjtRQUN0QixJQUFJLGNBQWMsQ0FBQyxhQUFhLElBQUksSUFBSSxFQUFFO1lBQ3hDLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFDRCxJQUFJLGNBQWMsQ0FBQyxhQUFhLENBQUMsS0FBSyxJQUFJLElBQUksRUFBRTtZQUM5QyxPQUFPLEtBQUssQ0FBQztTQUNkO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxlQUFlLENBQ3BCLE9BQW9CLEVBQ3BCLHFCQUE4QixLQUFLO1FBRW5DLE9BQU8sQ0FBQyxTQUFTLENBQUMscUJBQXFCLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFDdkIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzVDLElBQUksMkJBQTJCLENBQUMsZUFBZSxFQUFFLEVBQUU7Z0JBQ2pELE9BQU8sQ0FBQyxTQUFTLENBQUMsMkJBQTJCLENBQUMsZUFBZSxFQUFHLENBQUMsQ0FBQTthQUNsRTtTQUNGO1FBQ0QsSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQ3ZCLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7Z0JBQ3hDLE9BQU8sRUFBRSxPQUFPO2dCQUNoQixNQUFNLEVBQUUsYUFBYSxDQUFDLFVBQVU7YUFDakMsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxTQUFTLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDO2FBQ3RDLElBQUksQ0FBQyxDQUFDLE9BQThCLEVBQUUsRUFBRTtZQUN2QyxJQUFJLGtCQUFrQixHQUFnQix1QkFBdUIsQ0FBQyx5QkFBeUIsQ0FDckYsT0FBdUMsQ0FDekIsQ0FBQztZQUNqQixJQUFJLENBQUMsa0JBQWtCLEVBQUU7Z0JBQ3ZCLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7b0JBQ3hDLE9BQU8sRUFBRSxrQkFBa0I7b0JBQzNCLE1BQU0sRUFBRSxhQUFhLENBQUMsT0FBTztpQkFDOUIsQ0FBQyxDQUFDO2FBQ0o7UUFDSCxDQUFDLENBQUM7YUFDRCxLQUFLLENBQUMsQ0FBQyxLQUFtQyxFQUFFLEVBQUU7WUFDN0MsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLGtCQUFrQixFQUFFO2dCQUN2QixzQkFBc0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO29CQUN4QyxPQUFPLEVBQUUsT0FBTztvQkFDaEIsTUFBTSxFQUFFLGFBQWEsQ0FBQyxLQUFLO2lCQUM1QixDQUFDLENBQUM7YUFDSjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELE1BQU0sQ0FBQyxlQUFlLENBQ3BCLE9BQW9CLEVBQ3BCLHFCQUE4QixLQUFLO1FBRW5DLE9BQU8sQ0FBQyxTQUFTLENBQUMscUJBQXFCLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFDdkIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzVDLElBQUksMkJBQTJCLENBQUMsZUFBZSxFQUFFLEVBQUU7Z0JBQ2pELE9BQU8sQ0FBQyxTQUFTLENBQUMsMkJBQTJCLENBQUMsZUFBZSxFQUFHLENBQUMsQ0FBQTthQUNsRTtTQUNGO1FBQ0QsSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQ3ZCLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7Z0JBQ3hDLE9BQU8sRUFBRSxPQUFPO2dCQUNoQixNQUFNLEVBQUUsYUFBYSxDQUFDLFVBQVU7YUFDakMsQ0FBQyxDQUFDO1NBQ0o7UUFFRCxTQUFTLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDO2FBQ3RDLElBQUksQ0FBQyxDQUFDLE9BQThCLEVBQUUsRUFBRTtZQUN2QyxJQUFJLGtCQUFrQixHQUFnQix1QkFBdUIsQ0FBQyx5QkFBeUIsQ0FDckYsT0FBdUMsQ0FDekIsQ0FBQztZQUNqQixJQUFJLENBQUMsa0JBQWtCLEVBQUU7Z0JBQ3ZCLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7b0JBQ3hDLE9BQU8sRUFBRSxrQkFBa0I7b0JBQzNCLE1BQU0sRUFBRSxhQUFhLENBQUMsT0FBTztpQkFDOUIsQ0FBQyxDQUFDO2FBQ0o7UUFDSCxDQUFDLENBQUM7YUFDRCxLQUFLLENBQUMsQ0FBQyxLQUFtQyxFQUFFLEVBQUU7WUFDN0MsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLGtCQUFrQixFQUFFO2dCQUN2QixzQkFBc0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO29CQUN4QyxPQUFPLEVBQUUsT0FBTztvQkFDaEIsTUFBTSxFQUFFLGFBQWEsQ0FBQyxLQUFLO2lCQUM1QixDQUFDLENBQUM7YUFDSjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELE1BQU0sQ0FBQyw0QkFBNEIsQ0FDakMsT0FBaUMsRUFDakMscUJBQThCLEtBQUs7UUFFbkMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7UUFDNUQsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUN2QixPQUFPLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDNUMsSUFBSSwyQkFBMkIsQ0FBQyxlQUFlLEVBQUUsRUFBRTtnQkFDakQsT0FBTyxDQUFDLFNBQVMsQ0FBQywyQkFBMkIsQ0FBQyxlQUFlLEVBQUcsQ0FBQyxDQUFBO2FBQ2xFO1NBQ0Y7UUFDRCxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDdkIsc0JBQXNCLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztnQkFDeEMsT0FBTyxFQUFFLE9BQU87Z0JBQ2hCLE1BQU0sRUFBRSxhQUFhLENBQUMsVUFBVTthQUNqQyxDQUFDLENBQUM7U0FDSjtRQUNELFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUM7YUFDdEMsSUFBSSxDQUFDLENBQUMsT0FBOEIsRUFBRSxFQUFFO1lBQ3ZDLElBQUksa0JBQWtCLEdBQTZCLHVCQUF1QixDQUFDLHlCQUF5QixDQUNsRyxPQUF1QyxDQUNaLENBQUM7WUFDOUIsSUFBSSxDQUFDLGtCQUFrQixFQUFFO2dCQUN2QixzQkFBc0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO29CQUN4QyxPQUFPLEVBQUUsa0JBQWtCO29CQUMzQixNQUFNLEVBQUUsYUFBYSxDQUFDLE9BQU87aUJBQzlCLENBQUMsQ0FBQzthQUNKO1FBQ0gsQ0FBQyxDQUFDO2FBQ0QsS0FBSyxDQUFDLENBQUMsS0FBbUMsRUFBRSxFQUFFO1lBQzdDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQy9CLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtnQkFDdkIsc0JBQXNCLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztvQkFDeEMsT0FBTyxFQUFFLE9BQU87b0JBQ2hCLE1BQU0sRUFBRSxhQUFhLENBQUMsS0FBSztpQkFDNUIsQ0FBQyxDQUFDO2FBQ0o7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxrQ0FBa0M7SUFDbEMsb0RBQW9EO0lBQ3BELE1BQU0sQ0FBQyxpQkFBaUIsQ0FDdEIsT0FBZ0M7UUFFaEMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNyQyxPQUFPLENBQUMsU0FBUyxDQUFDLHFCQUFxQixDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztZQUM1RCxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFO2dCQUN2QixPQUFPLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQzVDLElBQUksMkJBQTJCLENBQUMsZUFBZSxFQUFFLEVBQUU7b0JBQ2pELE9BQU8sQ0FBQyxTQUFTLENBQUMsMkJBQTJCLENBQUMsZUFBZSxFQUFHLENBQUMsQ0FBQTtpQkFDbEU7YUFDRjtZQUNELHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7Z0JBQ3hDLE9BQU8sRUFBRSxPQUFPO2dCQUNoQixNQUFNLEVBQUUsYUFBYSxDQUFDLFVBQVU7YUFDakMsQ0FBQyxDQUFDO1lBRUgsU0FBUyxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQztpQkFDakMsSUFBSSxDQUFDLENBQUMsT0FBOEIsRUFBRSxFQUFFO2dCQUN2QyxzQkFBc0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO29CQUN4QyxPQUFPLEVBQUUsT0FBTztvQkFDaEIsTUFBTSxFQUFFLGFBQWEsQ0FBQyxPQUFPO2lCQUM5QixDQUFDLENBQUM7Z0JBQ0gsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ25CLENBQUMsQ0FBQztpQkFDRCxLQUFLLENBQUMsQ0FBQyxLQUFtQyxFQUFFLEVBQUU7Z0JBQzdDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDckMsc0JBQXNCLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztvQkFDeEMsT0FBTyxFQUFFLE9BQU87b0JBQ2hCLE1BQU0sRUFBRSxhQUFhLENBQUMsS0FBSztpQkFDNUIsQ0FBQyxDQUFDO2dCQUNILE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNoQixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGtDQUFrQztJQUNsQyxrREFBa0Q7SUFDbEQsTUFBTSxDQUFDLGVBQWUsQ0FDcEIsT0FBOEI7UUFFOUIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNyQyxPQUFPLENBQUMsU0FBUyxDQUFDLHFCQUFxQixDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztZQUM1RCxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFO2dCQUN2QixPQUFPLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQzVDLElBQUksMkJBQTJCLENBQUMsZUFBZSxFQUFFLEVBQUU7b0JBQ2pELE9BQU8sQ0FBQyxTQUFTLENBQUMsMkJBQTJCLENBQUMsZUFBZSxFQUFHLENBQUMsQ0FBQTtpQkFDbEU7YUFDRjtZQUNELHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7Z0JBQ3hDLE9BQU8sRUFBRSxPQUFPO2dCQUNoQixNQUFNLEVBQUUsYUFBYSxDQUFDLFVBQVU7YUFDakMsQ0FBQyxDQUFDO1lBRUgsU0FBUyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUM7aUJBQzNCLElBQUksQ0FBQyxDQUFDLE9BQThCLEVBQUUsRUFBRTtnQkFDdkMsc0JBQXNCLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztvQkFDeEMsT0FBTyxFQUFFLE9BQU87b0JBQ2hCLE1BQU0sRUFBRSxhQUFhLENBQUMsT0FBTztpQkFDOUIsQ0FBQyxDQUFDO2dCQUNILE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNuQixDQUFDLENBQUM7aUJBQ0QsS0FBSyxDQUFDLENBQUMsS0FBbUMsRUFBRSxFQUFFO2dCQUM3QyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQ3JDLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7b0JBQ3hDLE9BQU8sRUFBRSxPQUFPO29CQUNoQixNQUFNLEVBQUUsYUFBYSxDQUFDLEtBQUs7aUJBQzVCLENBQUMsQ0FBQztnQkFDSCxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEIsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxrQ0FBa0M7SUFDbEMsbURBQW1EO0lBQ25ELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FDckIsT0FBK0I7UUFFL0IsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNyQyxPQUFPLENBQUMsU0FBUyxDQUFDLHFCQUFxQixDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztZQUM1RCxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFO2dCQUN2QixPQUFPLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQzVDLElBQUksMkJBQTJCLENBQUMsZUFBZSxFQUFFLEVBQUU7b0JBQ2pELE9BQU8sQ0FBQyxTQUFTLENBQUMsMkJBQTJCLENBQUMsZUFBZSxFQUFHLENBQUMsQ0FBQTtpQkFDbEU7YUFDRjtZQUNELHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7Z0JBQ3hDLE9BQU8sRUFBRSxPQUFPO2dCQUNoQixNQUFNLEVBQUUsYUFBYSxDQUFDLFVBQVU7YUFDakMsQ0FBQyxDQUFDO1lBRUgsU0FBUyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQztpQkFDaEMsSUFBSSxDQUFDLENBQUMsT0FBOEIsRUFBRSxFQUFFO2dCQUN2QyxzQkFBc0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO29CQUN4QyxPQUFPLEVBQUUsT0FBTztvQkFDaEIsTUFBTSxFQUFFLGFBQWEsQ0FBQyxPQUFPO2lCQUM5QixDQUFDLENBQUM7Z0JBQ0gsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ25CLENBQUMsQ0FBQztpQkFDRCxLQUFLLENBQUMsQ0FBQyxLQUFtQyxFQUFFLEVBQUU7Z0JBQzdDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDckMsc0JBQXNCLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztvQkFDeEMsT0FBTyxFQUFFLE9BQU87b0JBQ2hCLE1BQU0sRUFBRSxhQUFhLENBQUMsS0FBSztpQkFDNUIsQ0FBQyxDQUFDO2dCQUNILE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNoQixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsb0JBQW9CLENBQ3pCLE9BQXlCLEVBQ3pCLHFCQUE4QixLQUFLO1FBR25DLE9BQU8sQ0FBQyxTQUFTLENBQUMscUJBQXFCLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFDdkIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzVDLElBQUksMkJBQTJCLENBQUMsZUFBZSxFQUFFLEVBQUU7Z0JBQ2pELE9BQU8sQ0FBQyxTQUFTLENBQUMsMkJBQTJCLENBQUMsZUFBZSxFQUFHLENBQUMsQ0FBQTthQUNsRTtTQUNGO1FBRUQsSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQ3ZCLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7Z0JBQ3hDLE9BQU8sRUFBRSxPQUFPO2dCQUNoQixNQUFNLEVBQUUsYUFBYSxDQUFDLFVBQVU7YUFDakMsQ0FBQyxDQUFDO1NBQ0o7UUFFRCxTQUFTLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDO2FBQ3RDLElBQUksQ0FBQyxDQUFDLE9BQThCLEVBQUUsRUFBRTtZQUN2QyxJQUFJLGtCQUFrQixHQUFxQix1QkFBdUIsQ0FBQyx5QkFBeUIsQ0FDMUYsT0FBdUMsQ0FDcEIsQ0FBQztZQUN0QixJQUFJLENBQUMsa0JBQWtCLEVBQUU7Z0JBQ3ZCLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7b0JBQ3hDLE9BQU8sRUFBRSxrQkFBa0I7b0JBQzNCLE1BQU0sRUFBRSxhQUFhLENBQUMsT0FBTztpQkFDOUIsQ0FBQyxDQUFDO2FBQ0o7UUFDSCxDQUFDLENBQUM7YUFDRCxLQUFLLENBQUMsQ0FBQyxLQUFtQyxFQUFFLEVBQUU7WUFDN0MsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLGtCQUFrQixFQUFFO2dCQUN2QixzQkFBc0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO29CQUN4QyxPQUFPLEVBQUUsT0FBTztvQkFDaEIsTUFBTSxFQUFFLGFBQWEsQ0FBQyxLQUFLO2lCQUM1QixDQUFDLENBQUM7YUFDSjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7QUEzZ0JNLDJCQUFZLEdBQWlDLHFCQUFxQixDQUFDO0FBQ25FLHVCQUFRLEdBQTZCLGlCQUFpQixDQUFDO0FBeUV2RCxnQ0FBaUIsR0FBMkI7SUFDakQsSUFBSSxpQkFBaUIsRUFBRTtJQUN2QixJQUFJLG1CQUFtQixFQUFFO0lBQ3pCLElBQUksZ0NBQWdDLEVBQUU7SUFDdEMsSUFBSSw4QkFBOEIsRUFBRTtJQUNwQyxJQUFJLDJCQUEyQixFQUFFO0lBQ2pDLElBQUksc0JBQXNCLEVBQUU7SUFDNUIsSUFBSSw0QkFBNEIsRUFBRTtJQUNsQyxJQUFJLG9CQUFvQixFQUFFO0lBQzFCLElBQUksY0FBYyxFQUFFO0lBQ3BCLElBQUksd0JBQXdCLEVBQUU7Q0FDL0IsQ0FBQztBQUVGOzs7SUFHSTtBQUNHLHNDQUF1QixHQUErQixJQUFJLGdCQUFnQixFQUFFLENBQUE7QUFFNUUsZ0NBQWlCLEdBQTRCO0lBQ2xELElBQUksOEJBQThCLEVBQUU7SUFDcEMsSUFBSSx1QkFBdUIsRUFBRTtJQUM3QixJQUFJLDhCQUE4QixFQUFFO0lBQ3BDLElBQUksb0JBQW9CLEVBQUU7Q0FDM0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHtcbiAgQ2FsbGluZ0V4dGVuc2lvbkRhdGFTb3VyY2UsXG4gIENvbWV0Q2hhdFVJS2l0TG9naW5MaXN0ZW5lcixcbiAgQ29tZXRDaGF0VUlLaXRVdGlsaXR5LFxuICBJbnRlcmFjdGl2ZU1lc3NhZ2VVdGlscyxcbiAgU3RvcmFnZVV0aWxzLFxuICBVSUtpdFNldHRpbmdzLFxufSBmcm9tIFwiQGNvbWV0Y2hhdC91aWtpdC1zaGFyZWRcIjtcbmltcG9ydCB7XG4gIENhcmRNZXNzYWdlLFxuICBDaGF0U2RrRXZlbnRJbml0aWFsaXplcixcbiAgQ29tZXRDaGF0TG9jYWxpemUsXG4gIENvbWV0Q2hhdE1lc3NhZ2VFdmVudHMsXG4gIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLFxuICBDdXN0b21JbnRlcmFjdGl2ZU1lc3NhZ2UsXG4gIEZvcm1NZXNzYWdlLFxuICBNZXNzYWdlU3RhdHVzLFxuICBTY2hlZHVsZXJNZXNzYWdlLFxufSBmcm9tIFwiQGNvbWV0Y2hhdC91aWtpdC1yZXNvdXJjZXNcIjtcbmltcG9ydCB7IENvbWV0Q2hhdFVJS2l0U2hhcmVkU2V0dGluZ3MgfSBmcm9tIFwiQGNvbWV0Y2hhdC91aWtpdC1zaGFyZWRcIjtcblxuaW1wb3J0IHsgQ2FsbGluZ0V4dGVuc2lvbiB9IGZyb20gXCIuLi8uLi9DYWxscy9DYWxsaW5nRXh0ZW5zaW9uXCI7XG5pbXBvcnQgeyBDaGF0Q29uZmlndXJhdG9yIH0gZnJvbSBcIi4uL0ZyYW1ld29yay9DaGF0Q29uZmlndXJhdG9yXCI7XG5pbXBvcnQgeyBDb2xsYWJvcmF0aXZlRG9jdW1lbnRFeHRlbnNpb24gfSBmcm9tIFwiLi4vLi4vRXh0ZW5zaW9ucy9Db2xsYWJvcmF0aXZlRG9jdW1lbnQvQ29sbGFib3JhdGl2ZURvY3VtZW50RXh0ZW5zaW9uXCI7XG5pbXBvcnQgeyBDb2xsYWJvcmF0aXZlV2hpdGVCb2FyZEV4dGVuc2lvbiB9IGZyb20gXCIuLi8uLi9FeHRlbnNpb25zL0NvbGxhYm9yYXRpdmVXaGl0ZWJvYXJkL0NvbGxhYm9yYXRpdmVXaGl0ZWJvYXJkRXh0ZW5zaW9uXCI7XG5pbXBvcnQgeyBDb21ldENoYXQgfSBmcm9tIFwiQGNvbWV0Y2hhdC9jaGF0LXNkay1qYXZhc2NyaXB0XCI7XG5pbXBvcnQgeyBFeHRlbnNpb25zRGF0YVNvdXJjZSB9IGZyb20gXCIuLi9GcmFtZXdvcmsvRXh0ZW5zaW9uRGF0YVNvdXJjZVwiO1xuaW1wb3J0IHsgSW1hZ2VNb2RlcmF0aW9uRXh0ZW5zaW9uIH0gZnJvbSBcIi4uLy4uL0V4dGVuc2lvbnMvSW1hZ2VNb2RlcmF0aW9uL0ltYWdlTW9kZXJhdGlvbkV4dGVuc2lvblwiO1xuaW1wb3J0IHsgTGlua1ByZXZpZXdFeHRlbnNpb24gfSBmcm9tIFwiLi4vLi4vRXh0ZW5zaW9ucy9MaW5rUHJldmlld0V4dGVuc2lvbi9MaW5rUHJldmlld0V4dGVuc2lvblwiO1xuaW1wb3J0IHsgTWVzc2FnZVRyYW5zbGF0aW9uRXh0ZW5zaW9uIH0gZnJvbSBcIi4uLy4uL0V4dGVuc2lvbnMvTWVzc2FnZVRyYW5zbGF0aW9uL01lc3NhZ2VUcmFuc2xhdGlvbkV4dGVuc2lvblwiO1xuaW1wb3J0IHsgUG9sbHNFeHRlbnNpb24gfSBmcm9tIFwiLi4vLi4vRXh0ZW5zaW9ucy9Qb2xsc0V4dGVuc2lvbi9Qb2xsc0V4dGVuc2lvblwiO1xuaW1wb3J0IHsgU21hcnRSZXBseUV4dGVuc2lvbiB9IGZyb20gXCIuLi8uLi9FeHRlbnNpb25zL1NtYXJ0UmVwbGllcy9TbWFydFJlcGxpZXNFeHRlbnNpb25cIjtcbmltcG9ydCB7IFN0aWNrZXJzRXh0ZW5zaW9uIH0gZnJvbSBcIi4uLy4uL0V4dGVuc2lvbnMvU3RpY2tlcnMvU3RpY2tlcnNFeHRlbnNpb25cIjtcbmltcG9ydCB7IFRleHRNb2RlcmF0b3JFeHRlbnNpb24gfSBmcm9tIFwiLi4vLi4vRXh0ZW5zaW9ucy9UZXh0TW9kZXJhdG9yL1RleHRNb2RlcmF0b3JFeHRlbnNpb25cIjtcbmltcG9ydCB7IFRodW1ibmFpbEdlbmVyYXRpb25FeHRlbnNpb24gfSBmcm9tIFwiLi4vLi4vRXh0ZW5zaW9ucy9UaHVtYm5haWxHZW5lcmF0aW9uL1RodW1ibmFpbEdlbmVyYXRpb25FeHRlbnNpb25cIjtcbmltcG9ydCB7IEFJQ29udmVyc2F0aW9uU3VtbWFyeUV4dGVuc2lvbiB9IGZyb20gXCIuLy4uLy4uL0FJL0FJQ29udmVyc2F0aW9uU3VtbWFyeS9BSUNvbnZlcnNhdGlvblN1bW1hcnlcIjtcbmltcG9ydCB7IEFJU21hcnRSZXBsaWVzRXh0ZW5zaW9uIH0gZnJvbSBcIi4vLi4vLi4vQUkvQUlTbWFydFJlcGxpZXMvQUlTbWFydFJlcGxpZXNcIjtcbmltcG9ydCB7IEFJQ29udmVyc2F0aW9uU3RhcnRlckV4dGVuc2lvbiB9IGZyb20gXCIuLy4uLy4uL0FJL0FJQ29udmVyc2F0aW9uU3RhcnRlci9BSUNvbnZlcnNhdGlvblN0YXJ0ZXJcIjtcbmltcG9ydCB7XG4gIENvbWV0Q2hhdFVJS2l0Q2FsbHMsXG4gIENvbWV0Q2hhdFNvdW5kTWFuYWdlcixcbn0gZnJvbSBcIkBjb21ldGNoYXQvdWlraXQtc2hhcmVkXCI7XG5pbXBvcnQgeyBBSUV4dGVuc2lvbkRhdGFTb3VyY2UgfSBmcm9tIFwiLi4vRnJhbWV3b3JrL0FJRXh0ZW5zaW9uRGF0YVNvdXJjZVwiO1xuaW1wb3J0IHsgQUlBc3Npc3RCb3RFeHRlbnNpb24gfSBmcm9tIFwiLi4vLi4vQUkvQUlBc3Npc3RCb3QvQUlBc3Npc3RCb3RcIjtcblxuZXhwb3J0IGNsYXNzIENvbWV0Q2hhdFVJS2l0IHtcbiAgc3RhdGljIHVpS2l0U2V0dGluZ3M6IFVJS2l0U2V0dGluZ3M7XG4gIHN0YXRpYyBTb3VuZE1hbmFnZXI6IHR5cGVvZiBDb21ldENoYXRTb3VuZE1hbmFnZXIgPSBDb21ldENoYXRTb3VuZE1hbmFnZXI7XG4gIHN0YXRpYyBMb2NhbGl6ZTogdHlwZW9mIENvbWV0Q2hhdExvY2FsaXplID0gQ29tZXRDaGF0TG9jYWxpemU7XG4gIHN0YXRpYyBsb2dnZWRJblVzZXI/OiBDb21ldENoYXQuVXNlcjtcbiAgc3RhdGljIGNvbnZlcnNhdGlvblVwZGF0ZVNldHRpbmdzPzogQ29tZXRDaGF0LkNvbnZlcnNhdGlvblVwZGF0ZVNldHRpbmdzO1xuICBzdGF0aWMgZ2V0RGF0YVNvdXJjZSgpIHtcbiAgICByZXR1cm4gQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCk7XG4gIH1cbiAgc3RhdGljIGluaXQodWlLaXRTZXR0aW5nczogVUlLaXRTZXR0aW5ncyk6IFByb21pc2U8T2JqZWN0PiB8IHVuZGVmaW5lZCB7XG4gICAgLy8gcGVyZm9ybSBzZGsgaW5pdCB0YWtpbmcgdmFsdWVzIGZyb20gdWlLaXRTZXR0aW5nc1xuICAgIENvbWV0Q2hhdFVJS2l0LnVpS2l0U2V0dGluZ3MgPSB1aUtpdFNldHRpbmdzO1xuICAgIGlmICh3aW5kb3cpIHtcbiAgICAgICg8YW55PndpbmRvdykuQ29tZXRDaGF0VWlLaXQgPSB7XG4gICAgICAgIG5hbWU6IFwiQGNvbWV0Y2hhdC9jaGF0LXVpa2l0LWFuZ3VsYXJcIixcbiAgICAgICAgdmVyc2lvbjogXCI0LjMuMzFcIixcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKENvbWV0Q2hhdFVJS2l0U2hhcmVkU2V0dGluZ3MpIHtcbiAgICAgIENvbWV0Q2hhdFVJS2l0U2hhcmVkU2V0dGluZ3MudWlraXRTZXR0aW5ncyA9IENvbWV0Q2hhdFVJS2l0Py51aUtpdFNldHRpbmdzO1xuICAgIH0gaWYgKCFDb21ldENoYXRVSUtpdC5jaGVja0F1dGhTZXR0aW5ncygpKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGNvbnN0IGFwcFNldHRpbmdzQnVpbGRlciA9IG5ldyBDb21ldENoYXQuQXBwU2V0dGluZ3NCdWlsZGVyKCk7XG4gICAgaWYgKHVpS2l0U2V0dGluZ3MuZ2V0Um9sZXMoKSkge1xuICAgICAgYXBwU2V0dGluZ3NCdWlsZGVyLnN1YnNjcmliZVByZXNlbmNlRm9yUm9sZXModWlLaXRTZXR0aW5ncy5nZXRSb2xlcygpKTtcbiAgICB9IGVsc2UgaWYgKHVpS2l0U2V0dGluZ3MuZ2V0U3Vic2NyaXB0aW9uVHlwZSgpID09PSBcIkFMTF9VU0VSU1wiKSB7XG4gICAgICBhcHBTZXR0aW5nc0J1aWxkZXIuc3Vic2NyaWJlUHJlc2VuY2VGb3JBbGxVc2VycygpO1xuICAgIH0gZWxzZSBpZiAodWlLaXRTZXR0aW5ncy5nZXRTdWJzY3JpcHRpb25UeXBlKCkgPT09IFwiRlJJRU5EU1wiKSB7XG4gICAgICBhcHBTZXR0aW5nc0J1aWxkZXIuc3Vic2NyaWJlUHJlc2VuY2VGb3JGcmllbmRzKCk7XG4gICAgfVxuICAgIGFwcFNldHRpbmdzQnVpbGRlci5hdXRvRXN0YWJsaXNoU29ja2V0Q29ubmVjdGlvbihcbiAgICAgIHVpS2l0U2V0dGluZ3MuaXNBdXRvRXN0YWJsaXNoU29ja2V0Q29ubmVjdGlvbigpXG4gICAgKTtcblxuICAgIGFwcFNldHRpbmdzQnVpbGRlci5zZXRSZWdpb24odWlLaXRTZXR0aW5ncy5nZXRSZWdpb24oKSk7XG4gICAgYXBwU2V0dGluZ3NCdWlsZGVyLm92ZXJyaWRlQWRtaW5Ib3N0KHVpS2l0U2V0dGluZ3MuZ2V0QWRtaW5Ib3N0KCkpO1xuICAgIGFwcFNldHRpbmdzQnVpbGRlci5vdmVycmlkZUNsaWVudEhvc3QodWlLaXRTZXR0aW5ncy5nZXRDbGllbnRIb3N0KCkpO1xuICAgIGNvbnN0IGFwcFNldHRpbmdzID0gYXBwU2V0dGluZ3NCdWlsZGVyLmJ1aWxkKCk7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIENvbWV0Q2hhdC5pbml0KHVpS2l0U2V0dGluZ3M/LmFwcElkLCBhcHBTZXR0aW5ncylcbiAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIENvbWV0Q2hhdC5zZXRTb3VyY2UoXCJ1aWtpdC12NFwiLCBcIndlYlwiLCBcImFuZ3VsYXJcIik7XG4gICAgICAgICAgQ29tZXRDaGF0VUlLaXQuZ2V0TG9nZ2VkaW5Vc2VyKClcbiAgICAgICAgICAgID8udGhlbigodXNlcikgPT4ge1xuICAgICAgICAgICAgICBpZiAodXNlcikge1xuICAgICAgICAgICAgICAgIENvbWV0Q2hhdFVJS2l0TG9naW5MaXN0ZW5lci5zZXRMb2dnZWRJblVzZXIodXNlcik7XG4gICAgICAgICAgICAgICAgQ2hhdENvbmZpZ3VyYXRvci5pbml0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5pbml0aWF0ZUFmdGVyTG9naW4oKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXNvbHZlKHVzZXIpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5jYXRjaCgoZXJyb3I6IENvbWV0Q2hhdC5Db21ldENoYXRFeGNlcHRpb24pID0+IHtcbiAgICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGVycm9yOiBDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIGdldExvZ2dlZGluVXNlcigpOiBQcm9taXNlPENvbWV0Q2hhdC5Vc2VyPiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIENvbWV0Q2hhdC5nZXRMb2dnZWRpblVzZXIoKVxuICAgICAgICAudGhlbigodXNlcjogQ29tZXRDaGF0LlVzZXIgfCBudWxsKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHJlc29sdmUodXNlciEpO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGVycm9yOiBDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoZXJyb3I6IENvbWV0Q2hhdC5Db21ldENoYXRFeGNlcHRpb24pID0+IHtcbiAgICAgICAgICByZXR1cm4gcmVqZWN0KGVycm9yKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgZGVmYXVsdEV4dGVuc2lvbnM6IEV4dGVuc2lvbnNEYXRhU291cmNlW10gPSBbXG4gICAgbmV3IFN0aWNrZXJzRXh0ZW5zaW9uKCksXG4gICAgbmV3IFNtYXJ0UmVwbHlFeHRlbnNpb24oKSxcbiAgICBuZXcgQ29sbGFib3JhdGl2ZVdoaXRlQm9hcmRFeHRlbnNpb24oKSxcbiAgICBuZXcgQ29sbGFib3JhdGl2ZURvY3VtZW50RXh0ZW5zaW9uKCksXG4gICAgbmV3IE1lc3NhZ2VUcmFuc2xhdGlvbkV4dGVuc2lvbigpLFxuICAgIG5ldyBUZXh0TW9kZXJhdG9yRXh0ZW5zaW9uKCksXG4gICAgbmV3IFRodW1ibmFpbEdlbmVyYXRpb25FeHRlbnNpb24oKSxcbiAgICBuZXcgTGlua1ByZXZpZXdFeHRlbnNpb24oKSxcbiAgICBuZXcgUG9sbHNFeHRlbnNpb24oKSxcbiAgICBuZXcgSW1hZ2VNb2RlcmF0aW9uRXh0ZW5zaW9uKCksXG4gIF07XG5cbiAgLyoqXG4gICAgKiBEZWZhdWx0IGNhbGxpbmdFeHRlbnNpb24gaW5jbHVkZWQgaW4gdGhlIFVJIEtpdC5cbiAgICAqIEB0eXBlIHtDYWxsaW5nRXh0ZW5zaW9uRGF0YVNvdXJjZX1cbiAgICAqL1xuICBzdGF0aWMgZGVmYXVsdENhbGxpbmdFeHRlbnNpb246IENhbGxpbmdFeHRlbnNpb25EYXRhU291cmNlID0gbmV3IENhbGxpbmdFeHRlbnNpb24oKVxuXG4gIHN0YXRpYyBkZWZhdWx0QUlGZWF0dXJlczogQUlFeHRlbnNpb25EYXRhU291cmNlW10gPSBbXG4gICAgbmV3IEFJQ29udmVyc2F0aW9uU3RhcnRlckV4dGVuc2lvbigpLFxuICAgIG5ldyBBSVNtYXJ0UmVwbGllc0V4dGVuc2lvbigpLFxuICAgIG5ldyBBSUNvbnZlcnNhdGlvblN1bW1hcnlFeHRlbnNpb24oKSxcbiAgICBuZXcgQUlBc3Npc3RCb3RFeHRlbnNpb24oKSxcbiAgXTtcbiAgc3RhdGljIGVuYWJsZUNhbGxpbmcoKTogdm9pZCB7XG4gICAgaWYgKENvbWV0Q2hhdFVJS2l0Q2FsbHMpIHtcbiAgICAgIGNvbnN0IGNhbGxBcHBTZXR0aW5nID0gbmV3IENvbWV0Q2hhdFVJS2l0Q2FsbHMuQ2FsbEFwcFNldHRpbmdzQnVpbGRlcigpXG4gICAgICAgIC5zZXRBcHBJZChDb21ldENoYXRVSUtpdC51aUtpdFNldHRpbmdzPy5hcHBJZClcbiAgICAgICAgLnNldFJlZ2lvbihDb21ldENoYXRVSUtpdC51aUtpdFNldHRpbmdzPy5yZWdpb24pXG4gICAgICAgIC5idWlsZCgpO1xuICAgICAgQ29tZXRDaGF0VUlLaXRDYWxscy5pbml0KGNhbGxBcHBTZXR0aW5nKS50aGVuKFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgY29uc29sZS5sb2coXCJDb21ldENoYXRDYWxscyBpbml0aWFsaXphdGlvbiBzdWNjZXNzXCIpO1xuICAgICAgICAgIGlmICh0aGlzLnVpS2l0U2V0dGluZ3M/LmdldENhbGxpbmdFeHRlbnNpb24oKSkge1xuICAgICAgICAgICAgdGhpcy51aUtpdFNldHRpbmdzPy5nZXRDYWxsaW5nRXh0ZW5zaW9uKCkuZW5hYmxlKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kZWZhdWx0Q2FsbGluZ0V4dGVuc2lvbi5lbmFibGUoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIChlcnJvcjogYW55KSA9PiB7XG4gICAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgICBcIkNvbWV0Q2hhdENhbGxzIGluaXRpYWxpemF0aW9uIGZhaWxlZCB3aXRoIGVycm9yOlwiLFxuICAgICAgICAgICAgZXJyb3JcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGluaXRpYXRlQWZ0ZXJMb2dpbigpIHtcbiAgICBpZiAoQ29tZXRDaGF0VUlLaXQudWlLaXRTZXR0aW5ncyAhPSBudWxsKSB7XG4gICAgICBDb21ldENoYXQuZ2V0Q29udmVyc2F0aW9uVXBkYXRlU2V0dGluZ3MoKS50aGVuKChyZXM6IENvbWV0Q2hhdC5Db252ZXJzYXRpb25VcGRhdGVTZXR0aW5ncykgPT4ge1xuXG4gICAgICAgIENvbWV0Q2hhdFVJS2l0LmNvbnZlcnNhdGlvblVwZGF0ZVNldHRpbmdzID0gcmVzO1xuICAgICAgfSlcbiAgICAgIHRoaXMuZW5hYmxlQ2FsbGluZygpO1xuICAgICAgbGV0IGV4dGVuc2lvbkxpc3Q6IEV4dGVuc2lvbnNEYXRhU291cmNlW10gPVxuICAgICAgICB0aGlzLnVpS2l0U2V0dGluZ3M/LmV4dGVuc2lvbnMgfHwgdGhpcy5kZWZhdWx0RXh0ZW5zaW9ucztcblxuICAgICAgbGV0IGFpRmVhdHVyZXNMaXN0OiBBSUV4dGVuc2lvbkRhdGFTb3VyY2VbXSA9IEFycmF5LmlzQXJyYXkoXG4gICAgICAgIHRoaXMudWlLaXRTZXR0aW5ncz8uYWlGZWF0dXJlc1xuICAgICAgKVxuICAgICAgICA/IHRoaXMudWlLaXRTZXR0aW5ncz8uYWlGZWF0dXJlc1xuICAgICAgICA6IHRoaXMuZGVmYXVsdEFJRmVhdHVyZXM7XG4gICAgICBDaGF0U2RrRXZlbnRJbml0aWFsaXplci5hdHRhY2hMaXN0ZW5lcnMoKTtcbiAgICAgIENvbWV0Q2hhdFVJS2l0TG9naW5MaXN0ZW5lci5hdHRhY2hMaXN0ZW5lcigpO1xuICAgICAgaWYgKGV4dGVuc2lvbkxpc3QubGVuZ3RoID4gMCkge1xuICAgICAgICBleHRlbnNpb25MaXN0LmZvckVhY2goKGV4dGVuc2lvbjogRXh0ZW5zaW9uc0RhdGFTb3VyY2UpID0+IHtcbiAgICAgICAgICBleHRlbnNpb24/LmVuYWJsZSgpO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKGFpRmVhdHVyZXNMaXN0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgYWlGZWF0dXJlc0xpc3QuZm9yRWFjaCgoYWlGZWF0dXJlczogQUlFeHRlbnNpb25EYXRhU291cmNlKSA9PiB7XG4gICAgICAgICAgYWlGZWF0dXJlcz8uZW5hYmxlKCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBzdGF0aWMgYXN5bmMgbG9naW4oZGV0YWlsczoge1xuICAgIHVpZD86IHN0cmluZztcbiAgICBhdXRoVG9rZW4/OiBzdHJpbmc7XG4gIH0pOiBQcm9taXNlPE9iamVjdCB8IHVuZGVmaW5lZD4ge1xuICAgIGlmICghQ29tZXRDaGF0VUlLaXQuY2hlY2tBdXRoU2V0dGluZ3MoKSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgQ29tZXRDaGF0VUlLaXQuZ2V0TG9nZ2VkaW5Vc2VyKClcbiAgICAgICAgPy50aGVuKCh1c2VyKSA9PiB7XG4gICAgICAgICAgaWYgKHVzZXIpIHtcbiAgICAgICAgICAgIENvbWV0Q2hhdFVJS2l0TG9naW5MaXN0ZW5lci5zZXRMb2dnZWRJblVzZXIodXNlcik7XG4gICAgICAgICAgICByZXNvbHZlKHVzZXIpO1xuICAgICAgICAgICAgQ29tZXRDaGF0VUlLaXRMb2dpbkxpc3RlbmVyLnNldExvZ2dlZEluVXNlcih1c2VyKTtcbiAgICAgICAgICAgIENoYXRDb25maWd1cmF0b3IuaW5pdCgpO1xuICAgICAgICAgICAgdGhpcy5pbml0aWF0ZUFmdGVyTG9naW4oKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGV0IGFyZ3M6IGFueVtdID0gZGV0YWlscy51aWRcbiAgICAgICAgICAgICAgPyBbZGV0YWlscy51aWQsIENvbWV0Q2hhdFVJS2l0LnVpS2l0U2V0dGluZ3MuYXV0aEtleSFdXG4gICAgICAgICAgICAgIDogW2RldGFpbHMuYXV0aFRva2VuXTtcbiAgICAgICAgICAgIENvbWV0Q2hhdC5sb2dpbiguLi5hcmdzKVxuICAgICAgICAgICAgICAudGhlbigodXNlcjogQ29tZXRDaGF0LlVzZXIpID0+IHtcbiAgICAgICAgICAgICAgICBDb21ldENoYXRVSUtpdExvZ2luTGlzdGVuZXIuc2V0TG9nZ2VkSW5Vc2VyKHVzZXIpO1xuICAgICAgICAgICAgICAgIHJlc29sdmUodXNlcik7XG4gICAgICAgICAgICAgICAgQ29tZXRDaGF0VUlLaXRMb2dpbkxpc3RlbmVyLnNldExvZ2dlZEluVXNlcih1c2VyKTtcbiAgICAgICAgICAgICAgICBDaGF0Q29uZmlndXJhdG9yLmluaXQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmluaXRpYXRlQWZ0ZXJMb2dpbigpO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAuY2F0Y2goKGVycm9yOiBDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGVycm9yOiBDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKSA9PiB7XG4gICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbiAgc3RhdGljIGFzeW5jIGNyZWF0ZVVzZXIodXNlcjogQ29tZXRDaGF0LlVzZXIpOiBQcm9taXNlPE9iamVjdCB8IHVuZGVmaW5lZD4ge1xuICAgIGlmICghQ29tZXRDaGF0VUlLaXQuY2hlY2tBdXRoU2V0dGluZ3MoKSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgQ29tZXRDaGF0LmNyZWF0ZVVzZXIodXNlciwgQ29tZXRDaGF0VUlLaXQudWlLaXRTZXR0aW5ncy5hdXRoS2V5ISlcbiAgICAgICAgLnRoZW4oKHVzZXI6IENvbWV0Q2hhdC5Vc2VyKSA9PiB7XG4gICAgICAgICAgcmVzb2x2ZSh1c2VyKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnJvcjogQ29tZXRDaGF0LkNvbWV0Q2hhdEV4Y2VwdGlvbikgPT4ge1xuICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG4gIHN0YXRpYyBhc3luYyB1cGRhdGVVc2VyKHVzZXI6IENvbWV0Q2hhdC5Vc2VyKTogUHJvbWlzZTxPYmplY3QgfCB1bmRlZmluZWQ+IHtcbiAgICBpZiAoIUNvbWV0Q2hhdFVJS2l0LmNoZWNrQXV0aFNldHRpbmdzKCkpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIENvbWV0Q2hhdC51cGRhdGVVc2VyKHVzZXIsIENvbWV0Q2hhdFVJS2l0LnVpS2l0U2V0dGluZ3MuYXV0aEtleSEpXG4gICAgICAgIC50aGVuKCh1c2VyOiBDb21ldENoYXQuVXNlcikgPT4ge1xuICAgICAgICAgIHJlc29sdmUodXNlcik7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoZXJyb3I6IENvbWV0Q2hhdC5Db21ldENoYXRFeGNlcHRpb24pID0+IHtcbiAgICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuICBzdGF0aWMgYXN5bmMgbG9nb3V0KCk6IFByb21pc2U8T2JqZWN0IHwgdW5kZWZpbmVkPiB7XG4gICAgaWYgKCFDb21ldENoYXRVSUtpdC5jaGVja0F1dGhTZXR0aW5ncygpKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBDb21ldENoYXQubG9nb3V0KClcbiAgICAgICAgLnRoZW4oKG1lc3NhZ2U6IG9iamVjdCkgPT4ge1xuICAgICAgICAgIFN0b3JhZ2VVdGlscy5yZW1vdmVJdGVtKENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLmNhbGxzLmFjdGl2ZWNhbGwpXG4gICAgICAgICAgQ29tZXRDaGF0VUlLaXRMb2dpbkxpc3RlbmVyLnJlbW92ZUxvZ2dlZEluVXNlcigpO1xuICAgICAgICAgIHJlc29sdmUobWVzc2FnZSk7XG4gICAgICAgICAgQ29tZXRDaGF0VUlLaXRMb2dpbkxpc3RlbmVyLnJlbW92ZUxvZ2dlZEluVXNlcigpO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGVycm9yOiBDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKSA9PiB7XG4gICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbiAgLy8gRXJyb3IgaGFuZGxpbmcgdG8gZ2l2ZSBiZXR0ZXIgbG9nc1xuICBzdGF0aWMgY2hlY2tBdXRoU2V0dGluZ3MoKTogYm9vbGVhbiB7XG4gICAgaWYgKENvbWV0Q2hhdFVJS2l0LnVpS2l0U2V0dGluZ3MgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoQ29tZXRDaGF0VUlLaXQudWlLaXRTZXR0aW5ncy5hcHBJZCA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbmRzIGEgZm9ybSBtZXNzYWdlIGFuZCBlbWl0cyBldmVudHMgYmFzZWQgb24gdGhlIG1lc3NhZ2Ugc3RhdHVzLlxuICAgKiBAcGFyYW0gbWVzc2FnZSAtIFRoZSBmb3JtIG1lc3NhZ2UgdG8gYmUgc2VudC5cbiAgICogQHBhcmFtIGRpc2FibGVMb2NhbEV2ZW50cyAtIEEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdG8gZGlzYWJsZSBsb2NhbCBldmVudHMgb3Igbm90LiBEZWZhdWx0IHZhbHVlIGlzIGZhbHNlLlxuICAgKi9cbiAgc3RhdGljIHNlbmRGb3JtTWVzc2FnZShcbiAgICBtZXNzYWdlOiBGb3JtTWVzc2FnZSxcbiAgICBkaXNhYmxlTG9jYWxFdmVudHM6IGJvb2xlYW4gPSBmYWxzZVxuICApIHtcbiAgICBtZXNzYWdlLnNldFNlbnRBdChDb21ldENoYXRVSUtpdFV0aWxpdHkuZ2V0VW5peFRpbWVzdGFtcCgpKTtcbiAgICBpZiAoIW1lc3NhZ2U/LmdldE11aWQoKSkge1xuICAgICAgbWVzc2FnZS5zZXRNdWlkKENvbWV0Q2hhdFVJS2l0VXRpbGl0eS5JRCgpKTtcbiAgICAgIGlmIChDb21ldENoYXRVSUtpdExvZ2luTGlzdGVuZXIuZ2V0TG9nZ2VkSW5Vc2VyKCkpIHtcbiAgICAgICAgbWVzc2FnZS5zZXRTZW5kZXIoQ29tZXRDaGF0VUlLaXRMb2dpbkxpc3RlbmVyLmdldExvZ2dlZEluVXNlcigpISlcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCFkaXNhYmxlTG9jYWxFdmVudHMpIHtcbiAgICAgIENvbWV0Q2hhdE1lc3NhZ2VFdmVudHMuY2NNZXNzYWdlU2VudC5uZXh0KHtcbiAgICAgICAgbWVzc2FnZTogbWVzc2FnZSxcbiAgICAgICAgc3RhdHVzOiBNZXNzYWdlU3RhdHVzLmlucHJvZ3Jlc3MsXG4gICAgICB9KTtcbiAgICB9XG4gICAgQ29tZXRDaGF0LnNlbmRJbnRlcmFjdGl2ZU1lc3NhZ2UobWVzc2FnZSlcbiAgICAgIC50aGVuKChtZXNzYWdlOiBDb21ldENoYXQuQmFzZU1lc3NhZ2UpID0+IHtcbiAgICAgICAgbGV0IGludGVyYWN0aXZlTWVzc2FnZTogRm9ybU1lc3NhZ2UgPSBJbnRlcmFjdGl2ZU1lc3NhZ2VVdGlscy5jb252ZXJ0SW50ZXJhY3RpdmVNZXNzYWdlKFxuICAgICAgICAgIG1lc3NhZ2UgYXMgQ29tZXRDaGF0LkludGVyYWN0aXZlTWVzc2FnZVxuICAgICAgICApIGFzIEZvcm1NZXNzYWdlO1xuICAgICAgICBpZiAoIWRpc2FibGVMb2NhbEV2ZW50cykge1xuICAgICAgICAgIENvbWV0Q2hhdE1lc3NhZ2VFdmVudHMuY2NNZXNzYWdlU2VudC5uZXh0KHtcbiAgICAgICAgICAgIG1lc3NhZ2U6IGludGVyYWN0aXZlTWVzc2FnZSxcbiAgICAgICAgICAgIHN0YXR1czogTWVzc2FnZVN0YXR1cy5zdWNjZXNzLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnJvcjogQ29tZXRDaGF0LkNvbWV0Q2hhdEV4Y2VwdGlvbikgPT4ge1xuICAgICAgICBtZXNzYWdlLnNldE1ldGFkYXRhKHsgZXJyb3IgfSk7XG4gICAgICAgIGlmICghZGlzYWJsZUxvY2FsRXZlbnRzKSB7XG4gICAgICAgICAgQ29tZXRDaGF0TWVzc2FnZUV2ZW50cy5jY01lc3NhZ2VTZW50Lm5leHQoe1xuICAgICAgICAgICAgbWVzc2FnZTogbWVzc2FnZSxcbiAgICAgICAgICAgIHN0YXR1czogTWVzc2FnZVN0YXR1cy5lcnJvcixcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBzdGF0aWMgc2VuZENhcmRNZXNzYWdlKFxuICAgIG1lc3NhZ2U6IENhcmRNZXNzYWdlLFxuICAgIGRpc2FibGVMb2NhbEV2ZW50czogYm9vbGVhbiA9IGZhbHNlXG4gICkge1xuICAgIG1lc3NhZ2Uuc2V0U2VudEF0KENvbWV0Q2hhdFVJS2l0VXRpbGl0eS5nZXRVbml4VGltZXN0YW1wKCkpO1xuICAgIGlmICghbWVzc2FnZT8uZ2V0TXVpZCgpKSB7XG4gICAgICBtZXNzYWdlLnNldE11aWQoQ29tZXRDaGF0VUlLaXRVdGlsaXR5LklEKCkpO1xuICAgICAgaWYgKENvbWV0Q2hhdFVJS2l0TG9naW5MaXN0ZW5lci5nZXRMb2dnZWRJblVzZXIoKSkge1xuICAgICAgICBtZXNzYWdlLnNldFNlbmRlcihDb21ldENoYXRVSUtpdExvZ2luTGlzdGVuZXIuZ2V0TG9nZ2VkSW5Vc2VyKCkhKVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIWRpc2FibGVMb2NhbEV2ZW50cykge1xuICAgICAgQ29tZXRDaGF0TWVzc2FnZUV2ZW50cy5jY01lc3NhZ2VTZW50Lm5leHQoe1xuICAgICAgICBtZXNzYWdlOiBtZXNzYWdlLFxuICAgICAgICBzdGF0dXM6IE1lc3NhZ2VTdGF0dXMuaW5wcm9ncmVzcyxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIENvbWV0Q2hhdC5zZW5kSW50ZXJhY3RpdmVNZXNzYWdlKG1lc3NhZ2UpXG4gICAgICAudGhlbigobWVzc2FnZTogQ29tZXRDaGF0LkJhc2VNZXNzYWdlKSA9PiB7XG4gICAgICAgIGxldCBpbnRlcmFjdGl2ZU1lc3NhZ2U6IENhcmRNZXNzYWdlID0gSW50ZXJhY3RpdmVNZXNzYWdlVXRpbHMuY29udmVydEludGVyYWN0aXZlTWVzc2FnZShcbiAgICAgICAgICBtZXNzYWdlIGFzIENvbWV0Q2hhdC5JbnRlcmFjdGl2ZU1lc3NhZ2VcbiAgICAgICAgKSBhcyBDYXJkTWVzc2FnZTtcbiAgICAgICAgaWYgKCFkaXNhYmxlTG9jYWxFdmVudHMpIHtcbiAgICAgICAgICBDb21ldENoYXRNZXNzYWdlRXZlbnRzLmNjTWVzc2FnZVNlbnQubmV4dCh7XG4gICAgICAgICAgICBtZXNzYWdlOiBpbnRlcmFjdGl2ZU1lc3NhZ2UsXG4gICAgICAgICAgICBzdGF0dXM6IE1lc3NhZ2VTdGF0dXMuc3VjY2VzcyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyb3I6IENvbWV0Q2hhdC5Db21ldENoYXRFeGNlcHRpb24pID0+IHtcbiAgICAgICAgbWVzc2FnZS5zZXRNZXRhZGF0YSh7IGVycm9yIH0pO1xuICAgICAgICBpZiAoIWRpc2FibGVMb2NhbEV2ZW50cykge1xuICAgICAgICAgIENvbWV0Q2hhdE1lc3NhZ2VFdmVudHMuY2NNZXNzYWdlU2VudC5uZXh0KHtcbiAgICAgICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICAgICAgICBzdGF0dXM6IE1lc3NhZ2VTdGF0dXMuZXJyb3IsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIHNlbmRDdXN0b21JbnRlcmFjdGl2ZU1lc3NhZ2UoXG4gICAgbWVzc2FnZTogQ3VzdG9tSW50ZXJhY3RpdmVNZXNzYWdlLFxuICAgIGRpc2FibGVMb2NhbEV2ZW50czogYm9vbGVhbiA9IGZhbHNlXG4gICkge1xuICAgIG1lc3NhZ2Uuc2V0U2VudEF0KENvbWV0Q2hhdFVJS2l0VXRpbGl0eS5nZXRVbml4VGltZXN0YW1wKCkpO1xuICAgIGlmICghbWVzc2FnZT8uZ2V0TXVpZCgpKSB7XG4gICAgICBtZXNzYWdlLnNldE11aWQoQ29tZXRDaGF0VUlLaXRVdGlsaXR5LklEKCkpO1xuICAgICAgaWYgKENvbWV0Q2hhdFVJS2l0TG9naW5MaXN0ZW5lci5nZXRMb2dnZWRJblVzZXIoKSkge1xuICAgICAgICBtZXNzYWdlLnNldFNlbmRlcihDb21ldENoYXRVSUtpdExvZ2luTGlzdGVuZXIuZ2V0TG9nZ2VkSW5Vc2VyKCkhKVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIWRpc2FibGVMb2NhbEV2ZW50cykge1xuICAgICAgQ29tZXRDaGF0TWVzc2FnZUV2ZW50cy5jY01lc3NhZ2VTZW50Lm5leHQoe1xuICAgICAgICBtZXNzYWdlOiBtZXNzYWdlLFxuICAgICAgICBzdGF0dXM6IE1lc3NhZ2VTdGF0dXMuaW5wcm9ncmVzcyxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBDb21ldENoYXQuc2VuZEludGVyYWN0aXZlTWVzc2FnZShtZXNzYWdlKVxuICAgICAgLnRoZW4oKG1lc3NhZ2U6IENvbWV0Q2hhdC5CYXNlTWVzc2FnZSkgPT4ge1xuICAgICAgICBsZXQgaW50ZXJhY3RpdmVNZXNzYWdlOiBDdXN0b21JbnRlcmFjdGl2ZU1lc3NhZ2UgPSBJbnRlcmFjdGl2ZU1lc3NhZ2VVdGlscy5jb252ZXJ0SW50ZXJhY3RpdmVNZXNzYWdlKFxuICAgICAgICAgIG1lc3NhZ2UgYXMgQ29tZXRDaGF0LkludGVyYWN0aXZlTWVzc2FnZVxuICAgICAgICApIGFzIEN1c3RvbUludGVyYWN0aXZlTWVzc2FnZTtcbiAgICAgICAgaWYgKCFkaXNhYmxlTG9jYWxFdmVudHMpIHtcbiAgICAgICAgICBDb21ldENoYXRNZXNzYWdlRXZlbnRzLmNjTWVzc2FnZVNlbnQubmV4dCh7XG4gICAgICAgICAgICBtZXNzYWdlOiBpbnRlcmFjdGl2ZU1lc3NhZ2UsXG4gICAgICAgICAgICBzdGF0dXM6IE1lc3NhZ2VTdGF0dXMuc3VjY2VzcyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyb3I6IENvbWV0Q2hhdC5Db21ldENoYXRFeGNlcHRpb24pID0+IHtcbiAgICAgICAgbWVzc2FnZS5zZXRNZXRhZGF0YSh7IGVycm9yIH0pO1xuICAgICAgICBpZiAoIWRpc2FibGVMb2NhbEV2ZW50cykge1xuICAgICAgICAgIENvbWV0Q2hhdE1lc3NhZ2VFdmVudHMuY2NNZXNzYWdlU2VudC5uZXh0KHtcbiAgICAgICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICAgICAgICBzdGF0dXM6IE1lc3NhZ2VTdGF0dXMuZXJyb3IsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgLy8gSGVscGVyIG1ldGhvZHMgdG8gc2VuZCBtZXNzYWdlc1xuICAvLyBbc2VuZEN1c3RvbU1lc3NhZ2VdIHVzZWQgdG8gc2VuZCBhIGN1c3RvbSBtZXNzYWdlXG4gIHN0YXRpYyBzZW5kQ3VzdG9tTWVzc2FnZShcbiAgICBtZXNzYWdlOiBDb21ldENoYXQuQ3VzdG9tTWVzc2FnZVxuICApOiBQcm9taXNlPENvbWV0Q2hhdC5CYXNlTWVzc2FnZT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBtZXNzYWdlLnNldFNlbnRBdChDb21ldENoYXRVSUtpdFV0aWxpdHkuZ2V0VW5peFRpbWVzdGFtcCgpKTtcbiAgICAgIGlmICghbWVzc2FnZT8uZ2V0TXVpZCgpKSB7XG4gICAgICAgIG1lc3NhZ2Uuc2V0TXVpZChDb21ldENoYXRVSUtpdFV0aWxpdHkuSUQoKSk7XG4gICAgICAgIGlmIChDb21ldENoYXRVSUtpdExvZ2luTGlzdGVuZXIuZ2V0TG9nZ2VkSW5Vc2VyKCkpIHtcbiAgICAgICAgICBtZXNzYWdlLnNldFNlbmRlcihDb21ldENoYXRVSUtpdExvZ2luTGlzdGVuZXIuZ2V0TG9nZ2VkSW5Vc2VyKCkhKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBDb21ldENoYXRNZXNzYWdlRXZlbnRzLmNjTWVzc2FnZVNlbnQubmV4dCh7XG4gICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICAgIHN0YXR1czogTWVzc2FnZVN0YXR1cy5pbnByb2dyZXNzLFxuICAgICAgfSk7XG5cbiAgICAgIENvbWV0Q2hhdC5zZW5kQ3VzdG9tTWVzc2FnZShtZXNzYWdlKVxuICAgICAgICAudGhlbigobWVzc2FnZTogQ29tZXRDaGF0LkJhc2VNZXNzYWdlKSA9PiB7XG4gICAgICAgICAgQ29tZXRDaGF0TWVzc2FnZUV2ZW50cy5jY01lc3NhZ2VTZW50Lm5leHQoe1xuICAgICAgICAgICAgbWVzc2FnZTogbWVzc2FnZSxcbiAgICAgICAgICAgIHN0YXR1czogTWVzc2FnZVN0YXR1cy5zdWNjZXNzLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJlc29sdmUobWVzc2FnZSk7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoZXJyb3I6IENvbWV0Q2hhdC5Db21ldENoYXRFeGNlcHRpb24pID0+IHtcbiAgICAgICAgICBtZXNzYWdlLnNldE1ldGFkYXRhKHsgZXJyb3I6IHRydWUgfSk7XG4gICAgICAgICAgQ29tZXRDaGF0TWVzc2FnZUV2ZW50cy5jY01lc3NhZ2VTZW50Lm5leHQoe1xuICAgICAgICAgICAgbWVzc2FnZTogbWVzc2FnZSxcbiAgICAgICAgICAgIHN0YXR1czogTWVzc2FnZVN0YXR1cy5lcnJvcixcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIEhlbHBlciBtZXRob2RzIHRvIHNlbmQgbWVzc2FnZXNcbiAgLy8gW3NlbmRUZXh0TWVzc2FnZV0gdXNlZCB0byBzZW5kIGEgY3VzdG9tIG1lc3NhZ2VcbiAgc3RhdGljIHNlbmRUZXh0TWVzc2FnZShcbiAgICBtZXNzYWdlOiBDb21ldENoYXQuVGV4dE1lc3NhZ2VcbiAgKTogUHJvbWlzZTxDb21ldENoYXQuQmFzZU1lc3NhZ2U+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgbWVzc2FnZS5zZXRTZW50QXQoQ29tZXRDaGF0VUlLaXRVdGlsaXR5LmdldFVuaXhUaW1lc3RhbXAoKSk7XG4gICAgICBpZiAoIW1lc3NhZ2U/LmdldE11aWQoKSkge1xuICAgICAgICBtZXNzYWdlLnNldE11aWQoQ29tZXRDaGF0VUlLaXRVdGlsaXR5LklEKCkpO1xuICAgICAgICBpZiAoQ29tZXRDaGF0VUlLaXRMb2dpbkxpc3RlbmVyLmdldExvZ2dlZEluVXNlcigpKSB7XG4gICAgICAgICAgbWVzc2FnZS5zZXRTZW5kZXIoQ29tZXRDaGF0VUlLaXRMb2dpbkxpc3RlbmVyLmdldExvZ2dlZEluVXNlcigpISlcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQ29tZXRDaGF0TWVzc2FnZUV2ZW50cy5jY01lc3NhZ2VTZW50Lm5leHQoe1xuICAgICAgICBtZXNzYWdlOiBtZXNzYWdlLFxuICAgICAgICBzdGF0dXM6IE1lc3NhZ2VTdGF0dXMuaW5wcm9ncmVzcyxcbiAgICAgIH0pO1xuXG4gICAgICBDb21ldENoYXQuc2VuZE1lc3NhZ2UobWVzc2FnZSlcbiAgICAgICAgLnRoZW4oKG1lc3NhZ2U6IENvbWV0Q2hhdC5CYXNlTWVzc2FnZSkgPT4ge1xuICAgICAgICAgIENvbWV0Q2hhdE1lc3NhZ2VFdmVudHMuY2NNZXNzYWdlU2VudC5uZXh0KHtcbiAgICAgICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICAgICAgICBzdGF0dXM6IE1lc3NhZ2VTdGF0dXMuc3VjY2VzcyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXNvbHZlKG1lc3NhZ2UpO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGVycm9yOiBDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKSA9PiB7XG4gICAgICAgICAgbWVzc2FnZS5zZXRNZXRhZGF0YSh7IGVycm9yOiB0cnVlIH0pO1xuICAgICAgICAgIENvbWV0Q2hhdE1lc3NhZ2VFdmVudHMuY2NNZXNzYWdlU2VudC5uZXh0KHtcbiAgICAgICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICAgICAgICBzdGF0dXM6IE1lc3NhZ2VTdGF0dXMuZXJyb3IsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvLyBIZWxwZXIgbWV0aG9kcyB0byBzZW5kIG1lc3NhZ2VzXG4gIC8vIFtzZW5kTWVkaWFNZXNzYWdlXSB1c2VkIHRvIHNlbmQgYSBjdXN0b20gbWVzc2FnZVxuICBzdGF0aWMgc2VuZE1lZGlhTWVzc2FnZShcbiAgICBtZXNzYWdlOiBDb21ldENoYXQuTWVkaWFNZXNzYWdlXG4gICk6IFByb21pc2U8Q29tZXRDaGF0LkJhc2VNZXNzYWdlPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIG1lc3NhZ2Uuc2V0U2VudEF0KENvbWV0Q2hhdFVJS2l0VXRpbGl0eS5nZXRVbml4VGltZXN0YW1wKCkpO1xuICAgICAgaWYgKCFtZXNzYWdlPy5nZXRNdWlkKCkpIHtcbiAgICAgICAgbWVzc2FnZS5zZXRNdWlkKENvbWV0Q2hhdFVJS2l0VXRpbGl0eS5JRCgpKTtcbiAgICAgICAgaWYgKENvbWV0Q2hhdFVJS2l0TG9naW5MaXN0ZW5lci5nZXRMb2dnZWRJblVzZXIoKSkge1xuICAgICAgICAgIG1lc3NhZ2Uuc2V0U2VuZGVyKENvbWV0Q2hhdFVJS2l0TG9naW5MaXN0ZW5lci5nZXRMb2dnZWRJblVzZXIoKSEpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIENvbWV0Q2hhdE1lc3NhZ2VFdmVudHMuY2NNZXNzYWdlU2VudC5uZXh0KHtcbiAgICAgICAgbWVzc2FnZTogbWVzc2FnZSxcbiAgICAgICAgc3RhdHVzOiBNZXNzYWdlU3RhdHVzLmlucHJvZ3Jlc3MsXG4gICAgICB9KTtcblxuICAgICAgQ29tZXRDaGF0LnNlbmRNZWRpYU1lc3NhZ2UobWVzc2FnZSlcbiAgICAgICAgLnRoZW4oKG1lc3NhZ2U6IENvbWV0Q2hhdC5CYXNlTWVzc2FnZSkgPT4ge1xuICAgICAgICAgIENvbWV0Q2hhdE1lc3NhZ2VFdmVudHMuY2NNZXNzYWdlU2VudC5uZXh0KHtcbiAgICAgICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICAgICAgICBzdGF0dXM6IE1lc3NhZ2VTdGF0dXMuc3VjY2VzcyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXNvbHZlKG1lc3NhZ2UpO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGVycm9yOiBDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKSA9PiB7XG4gICAgICAgICAgbWVzc2FnZS5zZXRNZXRhZGF0YSh7IGVycm9yOiB0cnVlIH0pO1xuICAgICAgICAgIENvbWV0Q2hhdE1lc3NhZ2VFdmVudHMuY2NNZXNzYWdlU2VudC5uZXh0KHtcbiAgICAgICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICAgICAgICBzdGF0dXM6IE1lc3NhZ2VTdGF0dXMuZXJyb3IsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbiAgLyoqXG4gICAqIFNlbmRzIGEgc2NoZWR1bGVyIG1lc3NhZ2UgYW5kIGVtaXRzIGV2ZW50cyBiYXNlZCBvbiB0aGUgbWVzc2FnZSBzdGF0dXMuXG4gICAqIEBwYXJhbSBtZXNzYWdlIC0gVGhlIHNjaGVkdWxlciBtZXNzYWdlIHRvIGJlIHNlbnQuXG4gICAqIEBwYXJhbSBkaXNhYmxlTG9jYWxFdmVudHMgLSBBIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRvIGRpc2FibGUgbG9jYWwgZXZlbnRzIG9yIG5vdC4gRGVmYXVsdCB2YWx1ZSBpcyBmYWxzZS5cbiAgICovXG4gIHN0YXRpYyBzZW5kU2NoZWR1bGVyTWVzc2FnZShcbiAgICBtZXNzYWdlOiBTY2hlZHVsZXJNZXNzYWdlLFxuICAgIGRpc2FibGVMb2NhbEV2ZW50czogYm9vbGVhbiA9IGZhbHNlXG4gICkge1xuXG4gICAgbWVzc2FnZS5zZXRTZW50QXQoQ29tZXRDaGF0VUlLaXRVdGlsaXR5LmdldFVuaXhUaW1lc3RhbXAoKSk7XG4gICAgaWYgKCFtZXNzYWdlPy5nZXRNdWlkKCkpIHtcbiAgICAgIG1lc3NhZ2Uuc2V0TXVpZChDb21ldENoYXRVSUtpdFV0aWxpdHkuSUQoKSk7XG4gICAgICBpZiAoQ29tZXRDaGF0VUlLaXRMb2dpbkxpc3RlbmVyLmdldExvZ2dlZEluVXNlcigpKSB7XG4gICAgICAgIG1lc3NhZ2Uuc2V0U2VuZGVyKENvbWV0Q2hhdFVJS2l0TG9naW5MaXN0ZW5lci5nZXRMb2dnZWRJblVzZXIoKSEpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFkaXNhYmxlTG9jYWxFdmVudHMpIHtcbiAgICAgIENvbWV0Q2hhdE1lc3NhZ2VFdmVudHMuY2NNZXNzYWdlU2VudC5uZXh0KHtcbiAgICAgICAgbWVzc2FnZTogbWVzc2FnZSxcbiAgICAgICAgc3RhdHVzOiBNZXNzYWdlU3RhdHVzLmlucHJvZ3Jlc3MsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBDb21ldENoYXQuc2VuZEludGVyYWN0aXZlTWVzc2FnZShtZXNzYWdlKVxuICAgICAgLnRoZW4oKG1lc3NhZ2U6IENvbWV0Q2hhdC5CYXNlTWVzc2FnZSkgPT4ge1xuICAgICAgICBsZXQgaW50ZXJhY3RpdmVNZXNzYWdlOiBTY2hlZHVsZXJNZXNzYWdlID0gSW50ZXJhY3RpdmVNZXNzYWdlVXRpbHMuY29udmVydEludGVyYWN0aXZlTWVzc2FnZShcbiAgICAgICAgICBtZXNzYWdlIGFzIENvbWV0Q2hhdC5JbnRlcmFjdGl2ZU1lc3NhZ2VcbiAgICAgICAgKSBhcyBTY2hlZHVsZXJNZXNzYWdlO1xuICAgICAgICBpZiAoIWRpc2FibGVMb2NhbEV2ZW50cykge1xuICAgICAgICAgIENvbWV0Q2hhdE1lc3NhZ2VFdmVudHMuY2NNZXNzYWdlU2VudC5uZXh0KHtcbiAgICAgICAgICAgIG1lc3NhZ2U6IGludGVyYWN0aXZlTWVzc2FnZSxcbiAgICAgICAgICAgIHN0YXR1czogTWVzc2FnZVN0YXR1cy5zdWNjZXNzLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnJvcjogQ29tZXRDaGF0LkNvbWV0Q2hhdEV4Y2VwdGlvbikgPT4ge1xuICAgICAgICBtZXNzYWdlLnNldE1ldGFkYXRhKHsgZXJyb3IgfSk7XG4gICAgICAgIGlmICghZGlzYWJsZUxvY2FsRXZlbnRzKSB7XG4gICAgICAgICAgQ29tZXRDaGF0TWVzc2FnZUV2ZW50cy5jY01lc3NhZ2VTZW50Lm5leHQoe1xuICAgICAgICAgICAgbWVzc2FnZTogbWVzc2FnZSxcbiAgICAgICAgICAgIHN0YXR1czogTWVzc2FnZVN0YXR1cy5lcnJvcixcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
492
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tZXRDaGF0VUlLaXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jaGF0LXVpa2l0LWFuZ3VsYXIvc3JjL1NoYXJlZC9Db21ldENoYXRVSWtpdC9Db21ldENoYXRVSUtpdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBRUwsMkJBQTJCLEVBQzNCLHFCQUFxQixFQUNyQix1QkFBdUIsRUFDdkIsWUFBWSxHQUViLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUd2QixhQUFhLEdBRWQsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx1RUFBdUUsQ0FBQztBQUN2SCxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSwyRUFBMkUsQ0FBQztBQUM3SCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFM0QsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDckcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDbEcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0saUVBQWlFLENBQUM7QUFDOUcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ2hGLE9B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QVcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLGtCQUFrQixFQUFFO2dCQUN2QixzQkFBc0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO29CQUN4QyxPQUFPLEVBQUUsT0FBTztvQkFDaEIsTUFBTSxFQUFFLGFBQWEsQ0FBQyxLQUFLO2lCQUM1QixDQUFDLENBQUM7YUFDSjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7QUEzZ0JNLDJCQUFZLEdBQWlDLHFCQUFxQixDQUFDO0FBQ25FLHVCQUFRLEdBQTZCLGlCQUFpQixDQUFDO0FBeUV2RCxnQ0FBaUIsR0FBMkI7SUFDakQsSUFBSSxpQkFBaUIsRUFBRTtJQUN2QixJQUFJLG1CQUFtQixFQUFFO0lBQ3pCLElBQUksZ0NBQWdDLEVBQUU7SUFDdEMsSUFBSSw4QkFBOEIsRUFBRTtJQUNwQyxJQUFJLDJCQUEyQixFQUFFO0lBQ2pDLElBQUksc0JBQXNCLEVBQUU7SUFDNUIsSUFBSSw0QkFBNEIsRUFBRTtJQUNsQyxJQUFJLG9CQUFvQixFQUFFO0lBQzFCLElBQUksY0FBYyxFQUFFO0lBQ3BCLElBQUksd0JBQXdCLEVBQUU7Q0FDL0IsQ0FBQztBQUVGOzs7SUFHSTtBQUNHLHNDQUF1QixHQUErQixJQUFJLGdCQUFnQixFQUFFLENBQUE7QUFFNUUsZ0NBQWlCLEdBQTRCO0lBQ2xELElBQUksOEJBQThCLEVBQUU7SUFDcEMsSUFBSSx1QkFBdUIsRUFBRTtJQUM3QixJQUFJLDhCQUE4QixFQUFFO0lBQ3BDLElBQUksb0JBQW9CLEVBQUU7Q0FDM0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHtcbiAgQ2FsbGluZ0V4dGVuc2lvbkRhdGFTb3VyY2UsXG4gIENvbWV0Q2hhdFVJS2l0TG9naW5MaXN0ZW5lcixcbiAgQ29tZXRDaGF0VUlLaXRVdGlsaXR5LFxuICBJbnRlcmFjdGl2ZU1lc3NhZ2VVdGlscyxcbiAgU3RvcmFnZVV0aWxzLFxuICBVSUtpdFNldHRpbmdzLFxufSBmcm9tIFwiQGNvbWV0Y2hhdC91aWtpdC1zaGFyZWRcIjtcbmltcG9ydCB7XG4gIENhcmRNZXNzYWdlLFxuICBDaGF0U2RrRXZlbnRJbml0aWFsaXplcixcbiAgQ29tZXRDaGF0TG9jYWxpemUsXG4gIENvbWV0Q2hhdE1lc3NhZ2VFdmVudHMsXG4gIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLFxuICBDdXN0b21JbnRlcmFjdGl2ZU1lc3NhZ2UsXG4gIEZvcm1NZXNzYWdlLFxuICBNZXNzYWdlU3RhdHVzLFxuICBTY2hlZHVsZXJNZXNzYWdlLFxufSBmcm9tIFwiQGNvbWV0Y2hhdC91aWtpdC1yZXNvdXJjZXNcIjtcbmltcG9ydCB7IENvbWV0Q2hhdFVJS2l0U2hhcmVkU2V0dGluZ3MgfSBmcm9tIFwiQGNvbWV0Y2hhdC91aWtpdC1zaGFyZWRcIjtcblxuaW1wb3J0IHsgQ2FsbGluZ0V4dGVuc2lvbiB9IGZyb20gXCIuLi8uLi9DYWxscy9DYWxsaW5nRXh0ZW5zaW9uXCI7XG5pbXBvcnQgeyBDaGF0Q29uZmlndXJhdG9yIH0gZnJvbSBcIi4uL0ZyYW1ld29yay9DaGF0Q29uZmlndXJhdG9yXCI7XG5pbXBvcnQgeyBDb2xsYWJvcmF0aXZlRG9jdW1lbnRFeHRlbnNpb24gfSBmcm9tIFwiLi4vLi4vRXh0ZW5zaW9ucy9Db2xsYWJvcmF0aXZlRG9jdW1lbnQvQ29sbGFib3JhdGl2ZURvY3VtZW50RXh0ZW5zaW9uXCI7XG5pbXBvcnQgeyBDb2xsYWJvcmF0aXZlV2hpdGVCb2FyZEV4dGVuc2lvbiB9IGZyb20gXCIuLi8uLi9FeHRlbnNpb25zL0NvbGxhYm9yYXRpdmVXaGl0ZWJvYXJkL0NvbGxhYm9yYXRpdmVXaGl0ZWJvYXJkRXh0ZW5zaW9uXCI7XG5pbXBvcnQgeyBDb21ldENoYXQgfSBmcm9tIFwiQGNvbWV0Y2hhdC9jaGF0LXNkay1qYXZhc2NyaXB0XCI7XG5pbXBvcnQgeyBFeHRlbnNpb25zRGF0YVNvdXJjZSB9IGZyb20gXCIuLi9GcmFtZXdvcmsvRXh0ZW5zaW9uRGF0YVNvdXJjZVwiO1xuaW1wb3J0IHsgSW1hZ2VNb2RlcmF0aW9uRXh0ZW5zaW9uIH0gZnJvbSBcIi4uLy4uL0V4dGVuc2lvbnMvSW1hZ2VNb2RlcmF0aW9uL0ltYWdlTW9kZXJhdGlvbkV4dGVuc2lvblwiO1xuaW1wb3J0IHsgTGlua1ByZXZpZXdFeHRlbnNpb24gfSBmcm9tIFwiLi4vLi4vRXh0ZW5zaW9ucy9MaW5rUHJldmlld0V4dGVuc2lvbi9MaW5rUHJldmlld0V4dGVuc2lvblwiO1xuaW1wb3J0IHsgTWVzc2FnZVRyYW5zbGF0aW9uRXh0ZW5zaW9uIH0gZnJvbSBcIi4uLy4uL0V4dGVuc2lvbnMvTWVzc2FnZVRyYW5zbGF0aW9uL01lc3NhZ2VUcmFuc2xhdGlvbkV4dGVuc2lvblwiO1xuaW1wb3J0IHsgUG9sbHNFeHRlbnNpb24gfSBmcm9tIFwiLi4vLi4vRXh0ZW5zaW9ucy9Qb2xsc0V4dGVuc2lvbi9Qb2xsc0V4dGVuc2lvblwiO1xuaW1wb3J0IHsgU21hcnRSZXBseUV4dGVuc2lvbiB9IGZyb20gXCIuLi8uLi9FeHRlbnNpb25zL1NtYXJ0UmVwbGllcy9TbWFydFJlcGxpZXNFeHRlbnNpb25cIjtcbmltcG9ydCB7IFN0aWNrZXJzRXh0ZW5zaW9uIH0gZnJvbSBcIi4uLy4uL0V4dGVuc2lvbnMvU3RpY2tlcnMvU3RpY2tlcnNFeHRlbnNpb25cIjtcbmltcG9ydCB7IFRleHRNb2RlcmF0b3JFeHRlbnNpb24gfSBmcm9tIFwiLi4vLi4vRXh0ZW5zaW9ucy9UZXh0TW9kZXJhdG9yL1RleHRNb2RlcmF0b3JFeHRlbnNpb25cIjtcbmltcG9ydCB7IFRodW1ibmFpbEdlbmVyYXRpb25FeHRlbnNpb24gfSBmcm9tIFwiLi4vLi4vRXh0ZW5zaW9ucy9UaHVtYm5haWxHZW5lcmF0aW9uL1RodW1ibmFpbEdlbmVyYXRpb25FeHRlbnNpb25cIjtcbmltcG9ydCB7IEFJQ29udmVyc2F0aW9uU3VtbWFyeUV4dGVuc2lvbiB9IGZyb20gXCIuLy4uLy4uL0FJL0FJQ29udmVyc2F0aW9uU3VtbWFyeS9BSUNvbnZlcnNhdGlvblN1bW1hcnlcIjtcbmltcG9ydCB7IEFJU21hcnRSZXBsaWVzRXh0ZW5zaW9uIH0gZnJvbSBcIi4vLi4vLi4vQUkvQUlTbWFydFJlcGxpZXMvQUlTbWFydFJlcGxpZXNcIjtcbmltcG9ydCB7IEFJQ29udmVyc2F0aW9uU3RhcnRlckV4dGVuc2lvbiB9IGZyb20gXCIuLy4uLy4uL0FJL0FJQ29udmVyc2F0aW9uU3RhcnRlci9BSUNvbnZlcnNhdGlvblN0YXJ0ZXJcIjtcbmltcG9ydCB7XG4gIENvbWV0Q2hhdFVJS2l0Q2FsbHMsXG4gIENvbWV0Q2hhdFNvdW5kTWFuYWdlcixcbn0gZnJvbSBcIkBjb21ldGNoYXQvdWlraXQtc2hhcmVkXCI7XG5pbXBvcnQgeyBBSUV4dGVuc2lvbkRhdGFTb3VyY2UgfSBmcm9tIFwiLi4vRnJhbWV3b3JrL0FJRXh0ZW5zaW9uRGF0YVNvdXJjZVwiO1xuaW1wb3J0IHsgQUlBc3Npc3RCb3RFeHRlbnNpb24gfSBmcm9tIFwiLi4vLi4vQUkvQUlBc3Npc3RCb3QvQUlBc3Npc3RCb3RcIjtcblxuZXhwb3J0IGNsYXNzIENvbWV0Q2hhdFVJS2l0IHtcbiAgc3RhdGljIHVpS2l0U2V0dGluZ3M6IFVJS2l0U2V0dGluZ3M7XG4gIHN0YXRpYyBTb3VuZE1hbmFnZXI6IHR5cGVvZiBDb21ldENoYXRTb3VuZE1hbmFnZXIgPSBDb21ldENoYXRTb3VuZE1hbmFnZXI7XG4gIHN0YXRpYyBMb2NhbGl6ZTogdHlwZW9mIENvbWV0Q2hhdExvY2FsaXplID0gQ29tZXRDaGF0TG9jYWxpemU7XG4gIHN0YXRpYyBsb2dnZWRJblVzZXI/OiBDb21ldENoYXQuVXNlcjtcbiAgc3RhdGljIGNvbnZlcnNhdGlvblVwZGF0ZVNldHRpbmdzPzogQ29tZXRDaGF0LkNvbnZlcnNhdGlvblVwZGF0ZVNldHRpbmdzO1xuICBzdGF0aWMgZ2V0RGF0YVNvdXJjZSgpIHtcbiAgICByZXR1cm4gQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCk7XG4gIH1cbiAgc3RhdGljIGluaXQodWlLaXRTZXR0aW5nczogVUlLaXRTZXR0aW5ncyk6IFByb21pc2U8T2JqZWN0PiB8IHVuZGVmaW5lZCB7XG4gICAgLy8gcGVyZm9ybSBzZGsgaW5pdCB0YWtpbmcgdmFsdWVzIGZyb20gdWlLaXRTZXR0aW5nc1xuICAgIENvbWV0Q2hhdFVJS2l0LnVpS2l0U2V0dGluZ3MgPSB1aUtpdFNldHRpbmdzO1xuICAgIGlmICh3aW5kb3cpIHtcbiAgICAgICg8YW55PndpbmRvdykuQ29tZXRDaGF0VWlLaXQgPSB7XG4gICAgICAgIG5hbWU6IFwiQGNvbWV0Y2hhdC9jaGF0LXVpa2l0LWFuZ3VsYXJcIixcbiAgICAgICAgdmVyc2lvbjogXCI0LjMuMzJcIixcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKENvbWV0Q2hhdFVJS2l0U2hhcmVkU2V0dGluZ3MpIHtcbiAgICAgIENvbWV0Q2hhdFVJS2l0U2hhcmVkU2V0dGluZ3MudWlraXRTZXR0aW5ncyA9IENvbWV0Q2hhdFVJS2l0Py51aUtpdFNldHRpbmdzO1xuICAgIH0gaWYgKCFDb21ldENoYXRVSUtpdC5jaGVja0F1dGhTZXR0aW5ncygpKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGNvbnN0IGFwcFNldHRpbmdzQnVpbGRlciA9IG5ldyBDb21ldENoYXQuQXBwU2V0dGluZ3NCdWlsZGVyKCk7XG4gICAgaWYgKHVpS2l0U2V0dGluZ3MuZ2V0Um9sZXMoKSkge1xuICAgICAgYXBwU2V0dGluZ3NCdWlsZGVyLnN1YnNjcmliZVByZXNlbmNlRm9yUm9sZXModWlLaXRTZXR0aW5ncy5nZXRSb2xlcygpKTtcbiAgICB9IGVsc2UgaWYgKHVpS2l0U2V0dGluZ3MuZ2V0U3Vic2NyaXB0aW9uVHlwZSgpID09PSBcIkFMTF9VU0VSU1wiKSB7XG4gICAgICBhcHBTZXR0aW5nc0J1aWxkZXIuc3Vic2NyaWJlUHJlc2VuY2VGb3JBbGxVc2VycygpO1xuICAgIH0gZWxzZSBpZiAodWlLaXRTZXR0aW5ncy5nZXRTdWJzY3JpcHRpb25UeXBlKCkgPT09IFwiRlJJRU5EU1wiKSB7XG4gICAgICBhcHBTZXR0aW5nc0J1aWxkZXIuc3Vic2NyaWJlUHJlc2VuY2VGb3JGcmllbmRzKCk7XG4gICAgfVxuICAgIGFwcFNldHRpbmdzQnVpbGRlci5hdXRvRXN0YWJsaXNoU29ja2V0Q29ubmVjdGlvbihcbiAgICAgIHVpS2l0U2V0dGluZ3MuaXNBdXRvRXN0YWJsaXNoU29ja2V0Q29ubmVjdGlvbigpXG4gICAgKTtcblxuICAgIGFwcFNldHRpbmdzQnVpbGRlci5zZXRSZWdpb24odWlLaXRTZXR0aW5ncy5nZXRSZWdpb24oKSk7XG4gICAgYXBwU2V0dGluZ3NCdWlsZGVyLm92ZXJyaWRlQWRtaW5Ib3N0KHVpS2l0U2V0dGluZ3MuZ2V0QWRtaW5Ib3N0KCkpO1xuICAgIGFwcFNldHRpbmdzQnVpbGRlci5vdmVycmlkZUNsaWVudEhvc3QodWlLaXRTZXR0aW5ncy5nZXRDbGllbnRIb3N0KCkpO1xuICAgIGNvbnN0IGFwcFNldHRpbmdzID0gYXBwU2V0dGluZ3NCdWlsZGVyLmJ1aWxkKCk7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIENvbWV0Q2hhdC5pbml0KHVpS2l0U2V0dGluZ3M/LmFwcElkLCBhcHBTZXR0aW5ncylcbiAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIENvbWV0Q2hhdC5zZXRTb3VyY2UoXCJ1aWtpdC12NFwiLCBcIndlYlwiLCBcImFuZ3VsYXJcIik7XG4gICAgICAgICAgQ29tZXRDaGF0VUlLaXQuZ2V0TG9nZ2VkaW5Vc2VyKClcbiAgICAgICAgICAgID8udGhlbigodXNlcikgPT4ge1xuICAgICAgICAgICAgICBpZiAodXNlcikge1xuICAgICAgICAgICAgICAgIENvbWV0Q2hhdFVJS2l0TG9naW5MaXN0ZW5lci5zZXRMb2dnZWRJblVzZXIodXNlcik7XG4gICAgICAgICAgICAgICAgQ2hhdENvbmZpZ3VyYXRvci5pbml0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5pbml0aWF0ZUFmdGVyTG9naW4oKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXNvbHZlKHVzZXIpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5jYXRjaCgoZXJyb3I6IENvbWV0Q2hhdC5Db21ldENoYXRFeGNlcHRpb24pID0+IHtcbiAgICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGVycm9yOiBDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIGdldExvZ2dlZGluVXNlcigpOiBQcm9taXNlPENvbWV0Q2hhdC5Vc2VyPiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIENvbWV0Q2hhdC5nZXRMb2dnZWRpblVzZXIoKVxuICAgICAgICAudGhlbigodXNlcjogQ29tZXRDaGF0LlVzZXIgfCBudWxsKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHJlc29sdmUodXNlciEpO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGVycm9yOiBDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoZXJyb3I6IENvbWV0Q2hhdC5Db21ldENoYXRFeGNlcHRpb24pID0+IHtcbiAgICAgICAgICByZXR1cm4gcmVqZWN0KGVycm9yKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgZGVmYXVsdEV4dGVuc2lvbnM6IEV4dGVuc2lvbnNEYXRhU291cmNlW10gPSBbXG4gICAgbmV3IFN0aWNrZXJzRXh0ZW5zaW9uKCksXG4gICAgbmV3IFNtYXJ0UmVwbHlFeHRlbnNpb24oKSxcbiAgICBuZXcgQ29sbGFib3JhdGl2ZVdoaXRlQm9hcmRFeHRlbnNpb24oKSxcbiAgICBuZXcgQ29sbGFib3JhdGl2ZURvY3VtZW50RXh0ZW5zaW9uKCksXG4gICAgbmV3IE1lc3NhZ2VUcmFuc2xhdGlvbkV4dGVuc2lvbigpLFxuICAgIG5ldyBUZXh0TW9kZXJhdG9yRXh0ZW5zaW9uKCksXG4gICAgbmV3IFRodW1ibmFpbEdlbmVyYXRpb25FeHRlbnNpb24oKSxcbiAgICBuZXcgTGlua1ByZXZpZXdFeHRlbnNpb24oKSxcbiAgICBuZXcgUG9sbHNFeHRlbnNpb24oKSxcbiAgICBuZXcgSW1hZ2VNb2RlcmF0aW9uRXh0ZW5zaW9uKCksXG4gIF07XG5cbiAgLyoqXG4gICAgKiBEZWZhdWx0IGNhbGxpbmdFeHRlbnNpb24gaW5jbHVkZWQgaW4gdGhlIFVJIEtpdC5cbiAgICAqIEB0eXBlIHtDYWxsaW5nRXh0ZW5zaW9uRGF0YVNvdXJjZX1cbiAgICAqL1xuICBzdGF0aWMgZGVmYXVsdENhbGxpbmdFeHRlbnNpb246IENhbGxpbmdFeHRlbnNpb25EYXRhU291cmNlID0gbmV3IENhbGxpbmdFeHRlbnNpb24oKVxuXG4gIHN0YXRpYyBkZWZhdWx0QUlGZWF0dXJlczogQUlFeHRlbnNpb25EYXRhU291cmNlW10gPSBbXG4gICAgbmV3IEFJQ29udmVyc2F0aW9uU3RhcnRlckV4dGVuc2lvbigpLFxuICAgIG5ldyBBSVNtYXJ0UmVwbGllc0V4dGVuc2lvbigpLFxuICAgIG5ldyBBSUNvbnZlcnNhdGlvblN1bW1hcnlFeHRlbnNpb24oKSxcbiAgICBuZXcgQUlBc3Npc3RCb3RFeHRlbnNpb24oKSxcbiAgXTtcbiAgc3RhdGljIGVuYWJsZUNhbGxpbmcoKTogdm9pZCB7XG4gICAgaWYgKENvbWV0Q2hhdFVJS2l0Q2FsbHMpIHtcbiAgICAgIGNvbnN0IGNhbGxBcHBTZXR0aW5nID0gbmV3IENvbWV0Q2hhdFVJS2l0Q2FsbHMuQ2FsbEFwcFNldHRpbmdzQnVpbGRlcigpXG4gICAgICAgIC5zZXRBcHBJZChDb21ldENoYXRVSUtpdC51aUtpdFNldHRpbmdzPy5hcHBJZClcbiAgICAgICAgLnNldFJlZ2lvbihDb21ldENoYXRVSUtpdC51aUtpdFNldHRpbmdzPy5yZWdpb24pXG4gICAgICAgIC5idWlsZCgpO1xuICAgICAgQ29tZXRDaGF0VUlLaXRDYWxscy5pbml0KGNhbGxBcHBTZXR0aW5nKS50aGVuKFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgY29uc29sZS5sb2coXCJDb21ldENoYXRDYWxscyBpbml0aWFsaXphdGlvbiBzdWNjZXNzXCIpO1xuICAgICAgICAgIGlmICh0aGlzLnVpS2l0U2V0dGluZ3M/LmdldENhbGxpbmdFeHRlbnNpb24oKSkge1xuICAgICAgICAgICAgdGhpcy51aUtpdFNldHRpbmdzPy5nZXRDYWxsaW5nRXh0ZW5zaW9uKCkuZW5hYmxlKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kZWZhdWx0Q2FsbGluZ0V4dGVuc2lvbi5lbmFibGUoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIChlcnJvcjogYW55KSA9PiB7XG4gICAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgICBcIkNvbWV0Q2hhdENhbGxzIGluaXRpYWxpemF0aW9uIGZhaWxlZCB3aXRoIGVycm9yOlwiLFxuICAgICAgICAgICAgZXJyb3JcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGluaXRpYXRlQWZ0ZXJMb2dpbigpIHtcbiAgICBpZiAoQ29tZXRDaGF0VUlLaXQudWlLaXRTZXR0aW5ncyAhPSBudWxsKSB7XG4gICAgICBDb21ldENoYXQuZ2V0Q29udmVyc2F0aW9uVXBkYXRlU2V0dGluZ3MoKS50aGVuKChyZXM6IENvbWV0Q2hhdC5Db252ZXJzYXRpb25VcGRhdGVTZXR0aW5ncykgPT4ge1xuXG4gICAgICAgIENvbWV0Q2hhdFVJS2l0LmNvbnZlcnNhdGlvblVwZGF0ZVNldHRpbmdzID0gcmVzO1xuICAgICAgfSlcbiAgICAgIHRoaXMuZW5hYmxlQ2FsbGluZygpO1xuICAgICAgbGV0IGV4dGVuc2lvbkxpc3Q6IEV4dGVuc2lvbnNEYXRhU291cmNlW10gPVxuICAgICAgICB0aGlzLnVpS2l0U2V0dGluZ3M/LmV4dGVuc2lvbnMgfHwgdGhpcy5kZWZhdWx0RXh0ZW5zaW9ucztcblxuICAgICAgbGV0IGFpRmVhdHVyZXNMaXN0OiBBSUV4dGVuc2lvbkRhdGFTb3VyY2VbXSA9IEFycmF5LmlzQXJyYXkoXG4gICAgICAgIHRoaXMudWlLaXRTZXR0aW5ncz8uYWlGZWF0dXJlc1xuICAgICAgKVxuICAgICAgICA/IHRoaXMudWlLaXRTZXR0aW5ncz8uYWlGZWF0dXJlc1xuICAgICAgICA6IHRoaXMuZGVmYXVsdEFJRmVhdHVyZXM7XG4gICAgICBDaGF0U2RrRXZlbnRJbml0aWFsaXplci5hdHRhY2hMaXN0ZW5lcnMoKTtcbiAgICAgIENvbWV0Q2hhdFVJS2l0TG9naW5MaXN0ZW5lci5hdHRhY2hMaXN0ZW5lcigpO1xuICAgICAgaWYgKGV4dGVuc2lvbkxpc3QubGVuZ3RoID4gMCkge1xuICAgICAgICBleHRlbnNpb25MaXN0LmZvckVhY2goKGV4dGVuc2lvbjogRXh0ZW5zaW9uc0RhdGFTb3VyY2UpID0+IHtcbiAgICAgICAgICBleHRlbnNpb24/LmVuYWJsZSgpO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKGFpRmVhdHVyZXNMaXN0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgYWlGZWF0dXJlc0xpc3QuZm9yRWFjaCgoYWlGZWF0dXJlczogQUlFeHRlbnNpb25EYXRhU291cmNlKSA9PiB7XG4gICAgICAgICAgYWlGZWF0dXJlcz8uZW5hYmxlKCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBzdGF0aWMgYXN5bmMgbG9naW4oZGV0YWlsczoge1xuICAgIHVpZD86IHN0cmluZztcbiAgICBhdXRoVG9rZW4/OiBzdHJpbmc7XG4gIH0pOiBQcm9taXNlPE9iamVjdCB8IHVuZGVmaW5lZD4ge1xuICAgIGlmICghQ29tZXRDaGF0VUlLaXQuY2hlY2tBdXRoU2V0dGluZ3MoKSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgQ29tZXRDaGF0VUlLaXQuZ2V0TG9nZ2VkaW5Vc2VyKClcbiAgICAgICAgPy50aGVuKCh1c2VyKSA9PiB7XG4gICAgICAgICAgaWYgKHVzZXIpIHtcbiAgICAgICAgICAgIENvbWV0Q2hhdFVJS2l0TG9naW5MaXN0ZW5lci5zZXRMb2dnZWRJblVzZXIodXNlcik7XG4gICAgICAgICAgICByZXNvbHZlKHVzZXIpO1xuICAgICAgICAgICAgQ29tZXRDaGF0VUlLaXRMb2dpbkxpc3RlbmVyLnNldExvZ2dlZEluVXNlcih1c2VyKTtcbiAgICAgICAgICAgIENoYXRDb25maWd1cmF0b3IuaW5pdCgpO1xuICAgICAgICAgICAgdGhpcy5pbml0aWF0ZUFmdGVyTG9naW4oKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGV0IGFyZ3M6IGFueVtdID0gZGV0YWlscy51aWRcbiAgICAgICAgICAgICAgPyBbZGV0YWlscy51aWQsIENvbWV0Q2hhdFVJS2l0LnVpS2l0U2V0dGluZ3MuYXV0aEtleSFdXG4gICAgICAgICAgICAgIDogW2RldGFpbHMuYXV0aFRva2VuXTtcbiAgICAgICAgICAgIENvbWV0Q2hhdC5sb2dpbiguLi5hcmdzKVxuICAgICAgICAgICAgICAudGhlbigodXNlcjogQ29tZXRDaGF0LlVzZXIpID0+IHtcbiAgICAgICAgICAgICAgICBDb21ldENoYXRVSUtpdExvZ2luTGlzdGVuZXIuc2V0TG9nZ2VkSW5Vc2VyKHVzZXIpO1xuICAgICAgICAgICAgICAgIHJlc29sdmUodXNlcik7XG4gICAgICAgICAgICAgICAgQ29tZXRDaGF0VUlLaXRMb2dpbkxpc3RlbmVyLnNldExvZ2dlZEluVXNlcih1c2VyKTtcbiAgICAgICAgICAgICAgICBDaGF0Q29uZmlndXJhdG9yLmluaXQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmluaXRpYXRlQWZ0ZXJMb2dpbigpO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAuY2F0Y2goKGVycm9yOiBDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGVycm9yOiBDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKSA9PiB7XG4gICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbiAgc3RhdGljIGFzeW5jIGNyZWF0ZVVzZXIodXNlcjogQ29tZXRDaGF0LlVzZXIpOiBQcm9taXNlPE9iamVjdCB8IHVuZGVmaW5lZD4ge1xuICAgIGlmICghQ29tZXRDaGF0VUlLaXQuY2hlY2tBdXRoU2V0dGluZ3MoKSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgQ29tZXRDaGF0LmNyZWF0ZVVzZXIodXNlciwgQ29tZXRDaGF0VUlLaXQudWlLaXRTZXR0aW5ncy5hdXRoS2V5ISlcbiAgICAgICAgLnRoZW4oKHVzZXI6IENvbWV0Q2hhdC5Vc2VyKSA9PiB7XG4gICAgICAgICAgcmVzb2x2ZSh1c2VyKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnJvcjogQ29tZXRDaGF0LkNvbWV0Q2hhdEV4Y2VwdGlvbikgPT4ge1xuICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG4gIHN0YXRpYyBhc3luYyB1cGRhdGVVc2VyKHVzZXI6IENvbWV0Q2hhdC5Vc2VyKTogUHJvbWlzZTxPYmplY3QgfCB1bmRlZmluZWQ+IHtcbiAgICBpZiAoIUNvbWV0Q2hhdFVJS2l0LmNoZWNrQXV0aFNldHRpbmdzKCkpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIENvbWV0Q2hhdC51cGRhdGVVc2VyKHVzZXIsIENvbWV0Q2hhdFVJS2l0LnVpS2l0U2V0dGluZ3MuYXV0aEtleSEpXG4gICAgICAgIC50aGVuKCh1c2VyOiBDb21ldENoYXQuVXNlcikgPT4ge1xuICAgICAgICAgIHJlc29sdmUodXNlcik7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoZXJyb3I6IENvbWV0Q2hhdC5Db21ldENoYXRFeGNlcHRpb24pID0+IHtcbiAgICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuICBzdGF0aWMgYXN5bmMgbG9nb3V0KCk6IFByb21pc2U8T2JqZWN0IHwgdW5kZWZpbmVkPiB7XG4gICAgaWYgKCFDb21ldENoYXRVSUtpdC5jaGVja0F1dGhTZXR0aW5ncygpKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBDb21ldENoYXQubG9nb3V0KClcbiAgICAgICAgLnRoZW4oKG1lc3NhZ2U6IG9iamVjdCkgPT4ge1xuICAgICAgICAgIFN0b3JhZ2VVdGlscy5yZW1vdmVJdGVtKENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLmNhbGxzLmFjdGl2ZWNhbGwpXG4gICAgICAgICAgQ29tZXRDaGF0VUlLaXRMb2dpbkxpc3RlbmVyLnJlbW92ZUxvZ2dlZEluVXNlcigpO1xuICAgICAgICAgIHJlc29sdmUobWVzc2FnZSk7XG4gICAgICAgICAgQ29tZXRDaGF0VUlLaXRMb2dpbkxpc3RlbmVyLnJlbW92ZUxvZ2dlZEluVXNlcigpO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGVycm9yOiBDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKSA9PiB7XG4gICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbiAgLy8gRXJyb3IgaGFuZGxpbmcgdG8gZ2l2ZSBiZXR0ZXIgbG9nc1xuICBzdGF0aWMgY2hlY2tBdXRoU2V0dGluZ3MoKTogYm9vbGVhbiB7XG4gICAgaWYgKENvbWV0Q2hhdFVJS2l0LnVpS2l0U2V0dGluZ3MgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoQ29tZXRDaGF0VUlLaXQudWlLaXRTZXR0aW5ncy5hcHBJZCA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbmRzIGEgZm9ybSBtZXNzYWdlIGFuZCBlbWl0cyBldmVudHMgYmFzZWQgb24gdGhlIG1lc3NhZ2Ugc3RhdHVzLlxuICAgKiBAcGFyYW0gbWVzc2FnZSAtIFRoZSBmb3JtIG1lc3NhZ2UgdG8gYmUgc2VudC5cbiAgICogQHBhcmFtIGRpc2FibGVMb2NhbEV2ZW50cyAtIEEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdG8gZGlzYWJsZSBsb2NhbCBldmVudHMgb3Igbm90LiBEZWZhdWx0IHZhbHVlIGlzIGZhbHNlLlxuICAgKi9cbiAgc3RhdGljIHNlbmRGb3JtTWVzc2FnZShcbiAgICBtZXNzYWdlOiBGb3JtTWVzc2FnZSxcbiAgICBkaXNhYmxlTG9jYWxFdmVudHM6IGJvb2xlYW4gPSBmYWxzZVxuICApIHtcbiAgICBtZXNzYWdlLnNldFNlbnRBdChDb21ldENoYXRVSUtpdFV0aWxpdHkuZ2V0VW5peFRpbWVzdGFtcCgpKTtcbiAgICBpZiAoIW1lc3NhZ2U/LmdldE11aWQoKSkge1xuICAgICAgbWVzc2FnZS5zZXRNdWlkKENvbWV0Q2hhdFVJS2l0VXRpbGl0eS5JRCgpKTtcbiAgICAgIGlmIChDb21ldENoYXRVSUtpdExvZ2luTGlzdGVuZXIuZ2V0TG9nZ2VkSW5Vc2VyKCkpIHtcbiAgICAgICAgbWVzc2FnZS5zZXRTZW5kZXIoQ29tZXRDaGF0VUlLaXRMb2dpbkxpc3RlbmVyLmdldExvZ2dlZEluVXNlcigpISlcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCFkaXNhYmxlTG9jYWxFdmVudHMpIHtcbiAgICAgIENvbWV0Q2hhdE1lc3NhZ2VFdmVudHMuY2NNZXNzYWdlU2VudC5uZXh0KHtcbiAgICAgICAgbWVzc2FnZTogbWVzc2FnZSxcbiAgICAgICAgc3RhdHVzOiBNZXNzYWdlU3RhdHVzLmlucHJvZ3Jlc3MsXG4gICAgICB9KTtcbiAgICB9XG4gICAgQ29tZXRDaGF0LnNlbmRJbnRlcmFjdGl2ZU1lc3NhZ2UobWVzc2FnZSlcbiAgICAgIC50aGVuKChtZXNzYWdlOiBDb21ldENoYXQuQmFzZU1lc3NhZ2UpID0+IHtcbiAgICAgICAgbGV0IGludGVyYWN0aXZlTWVzc2FnZTogRm9ybU1lc3NhZ2UgPSBJbnRlcmFjdGl2ZU1lc3NhZ2VVdGlscy5jb252ZXJ0SW50ZXJhY3RpdmVNZXNzYWdlKFxuICAgICAgICAgIG1lc3NhZ2UgYXMgQ29tZXRDaGF0LkludGVyYWN0aXZlTWVzc2FnZVxuICAgICAgICApIGFzIEZvcm1NZXNzYWdlO1xuICAgICAgICBpZiAoIWRpc2FibGVMb2NhbEV2ZW50cykge1xuICAgICAgICAgIENvbWV0Q2hhdE1lc3NhZ2VFdmVudHMuY2NNZXNzYWdlU2VudC5uZXh0KHtcbiAgICAgICAgICAgIG1lc3NhZ2U6IGludGVyYWN0aXZlTWVzc2FnZSxcbiAgICAgICAgICAgIHN0YXR1czogTWVzc2FnZVN0YXR1cy5zdWNjZXNzLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnJvcjogQ29tZXRDaGF0LkNvbWV0Q2hhdEV4Y2VwdGlvbikgPT4ge1xuICAgICAgICBtZXNzYWdlLnNldE1ldGFkYXRhKHsgZXJyb3IgfSk7XG4gICAgICAgIGlmICghZGlzYWJsZUxvY2FsRXZlbnRzKSB7XG4gICAgICAgICAgQ29tZXRDaGF0TWVzc2FnZUV2ZW50cy5jY01lc3NhZ2VTZW50Lm5leHQoe1xuICAgICAgICAgICAgbWVzc2FnZTogbWVzc2FnZSxcbiAgICAgICAgICAgIHN0YXR1czogTWVzc2FnZVN0YXR1cy5lcnJvcixcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBzdGF0aWMgc2VuZENhcmRNZXNzYWdlKFxuICAgIG1lc3NhZ2U6IENhcmRNZXNzYWdlLFxuICAgIGRpc2FibGVMb2NhbEV2ZW50czogYm9vbGVhbiA9IGZhbHNlXG4gICkge1xuICAgIG1lc3NhZ2Uuc2V0U2VudEF0KENvbWV0Q2hhdFVJS2l0VXRpbGl0eS5nZXRVbml4VGltZXN0YW1wKCkpO1xuICAgIGlmICghbWVzc2FnZT8uZ2V0TXVpZCgpKSB7XG4gICAgICBtZXNzYWdlLnNldE11aWQoQ29tZXRDaGF0VUlLaXRVdGlsaXR5LklEKCkpO1xuICAgICAgaWYgKENvbWV0Q2hhdFVJS2l0TG9naW5MaXN0ZW5lci5nZXRMb2dnZWRJblVzZXIoKSkge1xuICAgICAgICBtZXNzYWdlLnNldFNlbmRlcihDb21ldENoYXRVSUtpdExvZ2luTGlzdGVuZXIuZ2V0TG9nZ2VkSW5Vc2VyKCkhKVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIWRpc2FibGVMb2NhbEV2ZW50cykge1xuICAgICAgQ29tZXRDaGF0TWVzc2FnZUV2ZW50cy5jY01lc3NhZ2VTZW50Lm5leHQoe1xuICAgICAgICBtZXNzYWdlOiBtZXNzYWdlLFxuICAgICAgICBzdGF0dXM6IE1lc3NhZ2VTdGF0dXMuaW5wcm9ncmVzcyxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIENvbWV0Q2hhdC5zZW5kSW50ZXJhY3RpdmVNZXNzYWdlKG1lc3NhZ2UpXG4gICAgICAudGhlbigobWVzc2FnZTogQ29tZXRDaGF0LkJhc2VNZXNzYWdlKSA9PiB7XG4gICAgICAgIGxldCBpbnRlcmFjdGl2ZU1lc3NhZ2U6IENhcmRNZXNzYWdlID0gSW50ZXJhY3RpdmVNZXNzYWdlVXRpbHMuY29udmVydEludGVyYWN0aXZlTWVzc2FnZShcbiAgICAgICAgICBtZXNzYWdlIGFzIENvbWV0Q2hhdC5JbnRlcmFjdGl2ZU1lc3NhZ2VcbiAgICAgICAgKSBhcyBDYXJkTWVzc2FnZTtcbiAgICAgICAgaWYgKCFkaXNhYmxlTG9jYWxFdmVudHMpIHtcbiAgICAgICAgICBDb21ldENoYXRNZXNzYWdlRXZlbnRzLmNjTWVzc2FnZVNlbnQubmV4dCh7XG4gICAgICAgICAgICBtZXNzYWdlOiBpbnRlcmFjdGl2ZU1lc3NhZ2UsXG4gICAgICAgICAgICBzdGF0dXM6IE1lc3NhZ2VTdGF0dXMuc3VjY2VzcyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyb3I6IENvbWV0Q2hhdC5Db21ldENoYXRFeGNlcHRpb24pID0+IHtcbiAgICAgICAgbWVzc2FnZS5zZXRNZXRhZGF0YSh7IGVycm9yIH0pO1xuICAgICAgICBpZiAoIWRpc2FibGVMb2NhbEV2ZW50cykge1xuICAgICAgICAgIENvbWV0Q2hhdE1lc3NhZ2VFdmVudHMuY2NNZXNzYWdlU2VudC5uZXh0KHtcbiAgICAgICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICAgICAgICBzdGF0dXM6IE1lc3NhZ2VTdGF0dXMuZXJyb3IsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIHNlbmRDdXN0b21JbnRlcmFjdGl2ZU1lc3NhZ2UoXG4gICAgbWVzc2FnZTogQ3VzdG9tSW50ZXJhY3RpdmVNZXNzYWdlLFxuICAgIGRpc2FibGVMb2NhbEV2ZW50czogYm9vbGVhbiA9IGZhbHNlXG4gICkge1xuICAgIG1lc3NhZ2Uuc2V0U2VudEF0KENvbWV0Q2hhdFVJS2l0VXRpbGl0eS5nZXRVbml4VGltZXN0YW1wKCkpO1xuICAgIGlmICghbWVzc2FnZT8uZ2V0TXVpZCgpKSB7XG4gICAgICBtZXNzYWdlLnNldE11aWQoQ29tZXRDaGF0VUlLaXRVdGlsaXR5LklEKCkpO1xuICAgICAgaWYgKENvbWV0Q2hhdFVJS2l0TG9naW5MaXN0ZW5lci5nZXRMb2dnZWRJblVzZXIoKSkge1xuICAgICAgICBtZXNzYWdlLnNldFNlbmRlcihDb21ldENoYXRVSUtpdExvZ2luTGlzdGVuZXIuZ2V0TG9nZ2VkSW5Vc2VyKCkhKVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIWRpc2FibGVMb2NhbEV2ZW50cykge1xuICAgICAgQ29tZXRDaGF0TWVzc2FnZUV2ZW50cy5jY01lc3NhZ2VTZW50Lm5leHQoe1xuICAgICAgICBtZXNzYWdlOiBtZXNzYWdlLFxuICAgICAgICBzdGF0dXM6IE1lc3NhZ2VTdGF0dXMuaW5wcm9ncmVzcyxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBDb21ldENoYXQuc2VuZEludGVyYWN0aXZlTWVzc2FnZShtZXNzYWdlKVxuICAgICAgLnRoZW4oKG1lc3NhZ2U6IENvbWV0Q2hhdC5CYXNlTWVzc2FnZSkgPT4ge1xuICAgICAgICBsZXQgaW50ZXJhY3RpdmVNZXNzYWdlOiBDdXN0b21JbnRlcmFjdGl2ZU1lc3NhZ2UgPSBJbnRlcmFjdGl2ZU1lc3NhZ2VVdGlscy5jb252ZXJ0SW50ZXJhY3RpdmVNZXNzYWdlKFxuICAgICAgICAgIG1lc3NhZ2UgYXMgQ29tZXRDaGF0LkludGVyYWN0aXZlTWVzc2FnZVxuICAgICAgICApIGFzIEN1c3RvbUludGVyYWN0aXZlTWVzc2FnZTtcbiAgICAgICAgaWYgKCFkaXNhYmxlTG9jYWxFdmVudHMpIHtcbiAgICAgICAgICBDb21ldENoYXRNZXNzYWdlRXZlbnRzLmNjTWVzc2FnZVNlbnQubmV4dCh7XG4gICAgICAgICAgICBtZXNzYWdlOiBpbnRlcmFjdGl2ZU1lc3NhZ2UsXG4gICAgICAgICAgICBzdGF0dXM6IE1lc3NhZ2VTdGF0dXMuc3VjY2VzcyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyb3I6IENvbWV0Q2hhdC5Db21ldENoYXRFeGNlcHRpb24pID0+IHtcbiAgICAgICAgbWVzc2FnZS5zZXRNZXRhZGF0YSh7IGVycm9yIH0pO1xuICAgICAgICBpZiAoIWRpc2FibGVMb2NhbEV2ZW50cykge1xuICAgICAgICAgIENvbWV0Q2hhdE1lc3NhZ2VFdmVudHMuY2NNZXNzYWdlU2VudC5uZXh0KHtcbiAgICAgICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICAgICAgICBzdGF0dXM6IE1lc3NhZ2VTdGF0dXMuZXJyb3IsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgLy8gSGVscGVyIG1ldGhvZHMgdG8gc2VuZCBtZXNzYWdlc1xuICAvLyBbc2VuZEN1c3RvbU1lc3NhZ2VdIHVzZWQgdG8gc2VuZCBhIGN1c3RvbSBtZXNzYWdlXG4gIHN0YXRpYyBzZW5kQ3VzdG9tTWVzc2FnZShcbiAgICBtZXNzYWdlOiBDb21ldENoYXQuQ3VzdG9tTWVzc2FnZVxuICApOiBQcm9taXNlPENvbWV0Q2hhdC5CYXNlTWVzc2FnZT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBtZXNzYWdlLnNldFNlbnRBdChDb21ldENoYXRVSUtpdFV0aWxpdHkuZ2V0VW5peFRpbWVzdGFtcCgpKTtcbiAgICAgIGlmICghbWVzc2FnZT8uZ2V0TXVpZCgpKSB7XG4gICAgICAgIG1lc3NhZ2Uuc2V0TXVpZChDb21ldENoYXRVSUtpdFV0aWxpdHkuSUQoKSk7XG4gICAgICAgIGlmIChDb21ldENoYXRVSUtpdExvZ2luTGlzdGVuZXIuZ2V0TG9nZ2VkSW5Vc2VyKCkpIHtcbiAgICAgICAgICBtZXNzYWdlLnNldFNlbmRlcihDb21ldENoYXRVSUtpdExvZ2luTGlzdGVuZXIuZ2V0TG9nZ2VkSW5Vc2VyKCkhKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBDb21ldENoYXRNZXNzYWdlRXZlbnRzLmNjTWVzc2FnZVNlbnQubmV4dCh7XG4gICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICAgIHN0YXR1czogTWVzc2FnZVN0YXR1cy5pbnByb2dyZXNzLFxuICAgICAgfSk7XG5cbiAgICAgIENvbWV0Q2hhdC5zZW5kQ3VzdG9tTWVzc2FnZShtZXNzYWdlKVxuICAgICAgICAudGhlbigobWVzc2FnZTogQ29tZXRDaGF0LkJhc2VNZXNzYWdlKSA9PiB7XG4gICAgICAgICAgQ29tZXRDaGF0TWVzc2FnZUV2ZW50cy5jY01lc3NhZ2VTZW50Lm5leHQoe1xuICAgICAgICAgICAgbWVzc2FnZTogbWVzc2FnZSxcbiAgICAgICAgICAgIHN0YXR1czogTWVzc2FnZVN0YXR1cy5zdWNjZXNzLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJlc29sdmUobWVzc2FnZSk7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoZXJyb3I6IENvbWV0Q2hhdC5Db21ldENoYXRFeGNlcHRpb24pID0+IHtcbiAgICAgICAgICBtZXNzYWdlLnNldE1ldGFkYXRhKHsgZXJyb3I6IHRydWUgfSk7XG4gICAgICAgICAgQ29tZXRDaGF0TWVzc2FnZUV2ZW50cy5jY01lc3NhZ2VTZW50Lm5leHQoe1xuICAgICAgICAgICAgbWVzc2FnZTogbWVzc2FnZSxcbiAgICAgICAgICAgIHN0YXR1czogTWVzc2FnZVN0YXR1cy5lcnJvcixcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIEhlbHBlciBtZXRob2RzIHRvIHNlbmQgbWVzc2FnZXNcbiAgLy8gW3NlbmRUZXh0TWVzc2FnZV0gdXNlZCB0byBzZW5kIGEgY3VzdG9tIG1lc3NhZ2VcbiAgc3RhdGljIHNlbmRUZXh0TWVzc2FnZShcbiAgICBtZXNzYWdlOiBDb21ldENoYXQuVGV4dE1lc3NhZ2VcbiAgKTogUHJvbWlzZTxDb21ldENoYXQuQmFzZU1lc3NhZ2U+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgbWVzc2FnZS5zZXRTZW50QXQoQ29tZXRDaGF0VUlLaXRVdGlsaXR5LmdldFVuaXhUaW1lc3RhbXAoKSk7XG4gICAgICBpZiAoIW1lc3NhZ2U/LmdldE11aWQoKSkge1xuICAgICAgICBtZXNzYWdlLnNldE11aWQoQ29tZXRDaGF0VUlLaXRVdGlsaXR5LklEKCkpO1xuICAgICAgICBpZiAoQ29tZXRDaGF0VUlLaXRMb2dpbkxpc3RlbmVyLmdldExvZ2dlZEluVXNlcigpKSB7XG4gICAgICAgICAgbWVzc2FnZS5zZXRTZW5kZXIoQ29tZXRDaGF0VUlLaXRMb2dpbkxpc3RlbmVyLmdldExvZ2dlZEluVXNlcigpISlcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQ29tZXRDaGF0TWVzc2FnZUV2ZW50cy5jY01lc3NhZ2VTZW50Lm5leHQoe1xuICAgICAgICBtZXNzYWdlOiBtZXNzYWdlLFxuICAgICAgICBzdGF0dXM6IE1lc3NhZ2VTdGF0dXMuaW5wcm9ncmVzcyxcbiAgICAgIH0pO1xuXG4gICAgICBDb21ldENoYXQuc2VuZE1lc3NhZ2UobWVzc2FnZSlcbiAgICAgICAgLnRoZW4oKG1lc3NhZ2U6IENvbWV0Q2hhdC5CYXNlTWVzc2FnZSkgPT4ge1xuICAgICAgICAgIENvbWV0Q2hhdE1lc3NhZ2VFdmVudHMuY2NNZXNzYWdlU2VudC5uZXh0KHtcbiAgICAgICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICAgICAgICBzdGF0dXM6IE1lc3NhZ2VTdGF0dXMuc3VjY2VzcyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXNvbHZlKG1lc3NhZ2UpO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGVycm9yOiBDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKSA9PiB7XG4gICAgICAgICAgbWVzc2FnZS5zZXRNZXRhZGF0YSh7IGVycm9yOiB0cnVlIH0pO1xuICAgICAgICAgIENvbWV0Q2hhdE1lc3NhZ2VFdmVudHMuY2NNZXNzYWdlU2VudC5uZXh0KHtcbiAgICAgICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICAgICAgICBzdGF0dXM6IE1lc3NhZ2VTdGF0dXMuZXJyb3IsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvLyBIZWxwZXIgbWV0aG9kcyB0byBzZW5kIG1lc3NhZ2VzXG4gIC8vIFtzZW5kTWVkaWFNZXNzYWdlXSB1c2VkIHRvIHNlbmQgYSBjdXN0b20gbWVzc2FnZVxuICBzdGF0aWMgc2VuZE1lZGlhTWVzc2FnZShcbiAgICBtZXNzYWdlOiBDb21ldENoYXQuTWVkaWFNZXNzYWdlXG4gICk6IFByb21pc2U8Q29tZXRDaGF0LkJhc2VNZXNzYWdlPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIG1lc3NhZ2Uuc2V0U2VudEF0KENvbWV0Q2hhdFVJS2l0VXRpbGl0eS5nZXRVbml4VGltZXN0YW1wKCkpO1xuICAgICAgaWYgKCFtZXNzYWdlPy5nZXRNdWlkKCkpIHtcbiAgICAgICAgbWVzc2FnZS5zZXRNdWlkKENvbWV0Q2hhdFVJS2l0VXRpbGl0eS5JRCgpKTtcbiAgICAgICAgaWYgKENvbWV0Q2hhdFVJS2l0TG9naW5MaXN0ZW5lci5nZXRMb2dnZWRJblVzZXIoKSkge1xuICAgICAgICAgIG1lc3NhZ2Uuc2V0U2VuZGVyKENvbWV0Q2hhdFVJS2l0TG9naW5MaXN0ZW5lci5nZXRMb2dnZWRJblVzZXIoKSEpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIENvbWV0Q2hhdE1lc3NhZ2VFdmVudHMuY2NNZXNzYWdlU2VudC5uZXh0KHtcbiAgICAgICAgbWVzc2FnZTogbWVzc2FnZSxcbiAgICAgICAgc3RhdHVzOiBNZXNzYWdlU3RhdHVzLmlucHJvZ3Jlc3MsXG4gICAgICB9KTtcblxuICAgICAgQ29tZXRDaGF0LnNlbmRNZWRpYU1lc3NhZ2UobWVzc2FnZSlcbiAgICAgICAgLnRoZW4oKG1lc3NhZ2U6IENvbWV0Q2hhdC5CYXNlTWVzc2FnZSkgPT4ge1xuICAgICAgICAgIENvbWV0Q2hhdE1lc3NhZ2VFdmVudHMuY2NNZXNzYWdlU2VudC5uZXh0KHtcbiAgICAgICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICAgICAgICBzdGF0dXM6IE1lc3NhZ2VTdGF0dXMuc3VjY2VzcyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXNvbHZlKG1lc3NhZ2UpO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGVycm9yOiBDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKSA9PiB7XG4gICAgICAgICAgbWVzc2FnZS5zZXRNZXRhZGF0YSh7IGVycm9yOiB0cnVlIH0pO1xuICAgICAgICAgIENvbWV0Q2hhdE1lc3NhZ2VFdmVudHMuY2NNZXNzYWdlU2VudC5uZXh0KHtcbiAgICAgICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICAgICAgICBzdGF0dXM6IE1lc3NhZ2VTdGF0dXMuZXJyb3IsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbiAgLyoqXG4gICAqIFNlbmRzIGEgc2NoZWR1bGVyIG1lc3NhZ2UgYW5kIGVtaXRzIGV2ZW50cyBiYXNlZCBvbiB0aGUgbWVzc2FnZSBzdGF0dXMuXG4gICAqIEBwYXJhbSBtZXNzYWdlIC0gVGhlIHNjaGVkdWxlciBtZXNzYWdlIHRvIGJlIHNlbnQuXG4gICAqIEBwYXJhbSBkaXNhYmxlTG9jYWxFdmVudHMgLSBBIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRvIGRpc2FibGUgbG9jYWwgZXZlbnRzIG9yIG5vdC4gRGVmYXVsdCB2YWx1ZSBpcyBmYWxzZS5cbiAgICovXG4gIHN0YXRpYyBzZW5kU2NoZWR1bGVyTWVzc2FnZShcbiAgICBtZXNzYWdlOiBTY2hlZHVsZXJNZXNzYWdlLFxuICAgIGRpc2FibGVMb2NhbEV2ZW50czogYm9vbGVhbiA9IGZhbHNlXG4gICkge1xuXG4gICAgbWVzc2FnZS5zZXRTZW50QXQoQ29tZXRDaGF0VUlLaXRVdGlsaXR5LmdldFVuaXhUaW1lc3RhbXAoKSk7XG4gICAgaWYgKCFtZXNzYWdlPy5nZXRNdWlkKCkpIHtcbiAgICAgIG1lc3NhZ2Uuc2V0TXVpZChDb21ldENoYXRVSUtpdFV0aWxpdHkuSUQoKSk7XG4gICAgICBpZiAoQ29tZXRDaGF0VUlLaXRMb2dpbkxpc3RlbmVyLmdldExvZ2dlZEluVXNlcigpKSB7XG4gICAgICAgIG1lc3NhZ2Uuc2V0U2VuZGVyKENvbWV0Q2hhdFVJS2l0TG9naW5MaXN0ZW5lci5nZXRMb2dnZWRJblVzZXIoKSEpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFkaXNhYmxlTG9jYWxFdmVudHMpIHtcbiAgICAgIENvbWV0Q2hhdE1lc3NhZ2VFdmVudHMuY2NNZXNzYWdlU2VudC5uZXh0KHtcbiAgICAgICAgbWVzc2FnZTogbWVzc2FnZSxcbiAgICAgICAgc3RhdHVzOiBNZXNzYWdlU3RhdHVzLmlucHJvZ3Jlc3MsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBDb21ldENoYXQuc2VuZEludGVyYWN0aXZlTWVzc2FnZShtZXNzYWdlKVxuICAgICAgLnRoZW4oKG1lc3NhZ2U6IENvbWV0Q2hhdC5CYXNlTWVzc2FnZSkgPT4ge1xuICAgICAgICBsZXQgaW50ZXJhY3RpdmVNZXNzYWdlOiBTY2hlZHVsZXJNZXNzYWdlID0gSW50ZXJhY3RpdmVNZXNzYWdlVXRpbHMuY29udmVydEludGVyYWN0aXZlTWVzc2FnZShcbiAgICAgICAgICBtZXNzYWdlIGFzIENvbWV0Q2hhdC5JbnRlcmFjdGl2ZU1lc3NhZ2VcbiAgICAgICAgKSBhcyBTY2hlZHVsZXJNZXNzYWdlO1xuICAgICAgICBpZiAoIWRpc2FibGVMb2NhbEV2ZW50cykge1xuICAgICAgICAgIENvbWV0Q2hhdE1lc3NhZ2VFdmVudHMuY2NNZXNzYWdlU2VudC5uZXh0KHtcbiAgICAgICAgICAgIG1lc3NhZ2U6IGludGVyYWN0aXZlTWVzc2FnZSxcbiAgICAgICAgICAgIHN0YXR1czogTWVzc2FnZVN0YXR1cy5zdWNjZXNzLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnJvcjogQ29tZXRDaGF0LkNvbWV0Q2hhdEV4Y2VwdGlvbikgPT4ge1xuICAgICAgICBtZXNzYWdlLnNldE1ldGFkYXRhKHsgZXJyb3IgfSk7XG4gICAgICAgIGlmICghZGlzYWJsZUxvY2FsRXZlbnRzKSB7XG4gICAgICAgICAgQ29tZXRDaGF0TWVzc2FnZUV2ZW50cy5jY01lc3NhZ2VTZW50Lm5leHQoe1xuICAgICAgICAgICAgbWVzc2FnZTogbWVzc2FnZSxcbiAgICAgICAgICAgIHN0YXR1czogTWVzc2FnZVN0YXR1cy5lcnJvcixcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @function isIOS
|
|
3
|
+
* @description Checks if the current device is running iOS (iPhone, iPad, or iPod).
|
|
4
|
+
* It handles modern iPads (iOS 13+) which often report as 'Mac' but support touch.
|
|
5
|
+
* @returns {boolean} True if the device is running iOS, false otherwise.
|
|
6
|
+
*/
|
|
7
|
+
const isIOS = () => {
|
|
8
|
+
if (navigator.userAgent.includes("Mac") && 'ontouchend' in document) {
|
|
9
|
+
return true;
|
|
10
|
+
}
|
|
11
|
+
// 2. Check for classic iOS user agent strings (iPhone, iPad, iPod).
|
|
12
|
+
const userAgent = navigator.userAgent.toLowerCase();
|
|
13
|
+
return /iphone|ipad|ipod/.test(userAgent);
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* @function isMac
|
|
17
|
+
* @description Checks if the current device is running macOS.
|
|
18
|
+
* It explicitly excludes modern iPads that mimic the Mac user agent but support touch.
|
|
19
|
+
* @returns {boolean} True if the device is running macOS, false otherwise.
|
|
20
|
+
*/
|
|
21
|
+
const isMac = () => {
|
|
22
|
+
if (navigator.userAgent.includes("Mac") && 'ontouchend' in document) {
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
const userAgent = navigator.userAgent.toLowerCase();
|
|
26
|
+
return /macintosh|mac os x/.test(userAgent);
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* @function shouldShowCustomMimeTypes
|
|
30
|
+
* @description Returns true if the device is running either iOS (iPhone, iPad, iPod) or macOS.
|
|
31
|
+
* @returns {boolean} True if the device is an Apple device (iOS or macOS), false otherwise.
|
|
32
|
+
*/
|
|
33
|
+
export const shouldShowCustomMimeTypes = () => {
|
|
34
|
+
return isIOS() || isMac();
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXRpbGl0eUZ1bmN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NoYXQtdWlraXQtYW5ndWxhci9zcmMvU2hhcmVkL1V0aWxzL1V0aWxpdHlGdW5jdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFDSCxNQUFNLEtBQUssR0FBRyxHQUFZLEVBQUU7SUFDeEIsSUFBSSxTQUFTLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxZQUFZLElBQUksUUFBUSxFQUFFO1FBQ25FLE9BQU8sSUFBSSxDQUFDO0tBQ2Y7SUFFRCxvRUFBb0U7SUFDcEUsTUFBTSxTQUFTLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNwRCxPQUFPLGtCQUFrQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUMxQyxDQUFDLENBQUE7QUFFRDs7Ozs7RUFLRTtBQUNGLE1BQU0sS0FBSyxHQUFHLEdBQVksRUFBRTtJQUMxQixJQUFJLFNBQVMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLFlBQVksSUFBSSxRQUFRLEVBQUU7UUFDbkUsT0FBTyxLQUFLLENBQUM7S0FDaEI7SUFFQyxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3BELE9BQU8sb0JBQW9CLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzlDLENBQUMsQ0FBQTtBQUVEOzs7O0VBSUU7QUFDRixNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxHQUFXLEVBQUU7SUFDdEQsT0FBTyxLQUFLLEVBQUUsSUFBSSxLQUFLLEVBQUUsQ0FBQztBQUMxQixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmdW5jdGlvbiBpc0lPU1xuICogQGRlc2NyaXB0aW9uIENoZWNrcyBpZiB0aGUgY3VycmVudCBkZXZpY2UgaXMgcnVubmluZyBpT1MgKGlQaG9uZSwgaVBhZCwgb3IgaVBvZCkuXG4gKiBJdCBoYW5kbGVzIG1vZGVybiBpUGFkcyAoaU9TIDEzKykgd2hpY2ggb2Z0ZW4gcmVwb3J0IGFzICdNYWMnIGJ1dCBzdXBwb3J0IHRvdWNoLlxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdGhlIGRldmljZSBpcyBydW5uaW5nIGlPUywgZmFsc2Ugb3RoZXJ3aXNlLlxuICovXG5jb25zdCBpc0lPUyA9ICgpOiBib29sZWFuID0+IHsgXG4gICAgaWYgKG5hdmlnYXRvci51c2VyQWdlbnQuaW5jbHVkZXMoXCJNYWNcIikgJiYgJ29udG91Y2hlbmQnIGluIGRvY3VtZW50KSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBcbiAgLy8gMi4gQ2hlY2sgZm9yIGNsYXNzaWMgaU9TIHVzZXIgYWdlbnQgc3RyaW5ncyAoaVBob25lLCBpUGFkLCBpUG9kKS5cbiAgY29uc3QgdXNlckFnZW50ID0gbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpO1xuICByZXR1cm4gL2lwaG9uZXxpcGFkfGlwb2QvLnRlc3QodXNlckFnZW50KTtcbiAgfVxuICBcbiAgLyoqXG4gICogQGZ1bmN0aW9uIGlzTWFjXG4gICogQGRlc2NyaXB0aW9uIENoZWNrcyBpZiB0aGUgY3VycmVudCBkZXZpY2UgaXMgcnVubmluZyBtYWNPUy5cbiAgKiBJdCBleHBsaWNpdGx5IGV4Y2x1ZGVzIG1vZGVybiBpUGFkcyB0aGF0IG1pbWljIHRoZSBNYWMgdXNlciBhZ2VudCBidXQgc3VwcG9ydCB0b3VjaC5cbiAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB0aGUgZGV2aWNlIGlzIHJ1bm5pbmcgbWFjT1MsIGZhbHNlIG90aGVyd2lzZS5cbiAgKi9cbiAgY29uc3QgaXNNYWMgPSAoKTogYm9vbGVhbiA9PiB7XG4gICAgaWYgKG5hdmlnYXRvci51c2VyQWdlbnQuaW5jbHVkZXMoXCJNYWNcIikgJiYgJ29udG91Y2hlbmQnIGluIGRvY3VtZW50KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgXG4gICAgY29uc3QgdXNlckFnZW50ID0gbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpO1xuICAgIHJldHVybiAvbWFjaW50b3NofG1hYyBvcyB4Ly50ZXN0KHVzZXJBZ2VudCk7XG4gIH1cbiAgXG4gIC8qKlxuICAqIEBmdW5jdGlvbiBzaG91bGRTaG93Q3VzdG9tTWltZVR5cGVzXG4gICogQGRlc2NyaXB0aW9uIFJldHVybnMgdHJ1ZSBpZiB0aGUgZGV2aWNlIGlzIHJ1bm5pbmcgZWl0aGVyIGlPUyAoaVBob25lLCBpUGFkLCBpUG9kKSBvciBtYWNPUy5cbiAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB0aGUgZGV2aWNlIGlzIGFuIEFwcGxlIGRldmljZSAoaU9TIG9yIG1hY09TKSwgZmFsc2Ugb3RoZXJ3aXNlLlxuICAqL1xuICBleHBvcnQgY29uc3Qgc2hvdWxkU2hvd0N1c3RvbU1pbWVUeXBlcyA9ICgpOiBib29sZWFuPT57XG4gIHJldHVybiBpc0lPUygpIHx8IGlzTWFjKCk7XG4gIH1cbiAgIl19
|
package/esm2020/public-api.mjs
CHANGED
|
@@ -12,6 +12,7 @@ export { DataSourceDecorator } from "./Shared/Framework/DataSourceDecorator";
|
|
|
12
12
|
export { ExtensionsDataSource } from "./Shared/Framework/ExtensionDataSource";
|
|
13
13
|
export { AIExtensionDataSource } from "./Shared/Framework/AIExtensionDataSource";
|
|
14
14
|
export { MessageUtils } from "./Shared/Utils/MessageUtils";
|
|
15
|
+
export { shouldShowCustomMimeTypes } from "./Shared/Utils/UtilityFunctions";
|
|
15
16
|
export { CometChatThemeService } from "./CometChatTheme.service";
|
|
16
17
|
// extensions
|
|
17
18
|
export { CollaborativeDocumentExtension } from "./Extensions/CollaborativeDocument/CollaborativeDocumentExtension";
|
|
@@ -111,4 +112,4 @@ export { AIAssistBotDecorator } from "./AI/AIAssistBot/AIAssistBotDecorator";
|
|
|
111
112
|
export { AIAssistBotExtension } from "./AI/AIAssistBot/AIAssistBot";
|
|
112
113
|
export { CometChatUserMemberWrapperComponent } from "./CometChatUserMemberWrapper/cometchat-user-member-wrapper.component";
|
|
113
114
|
export { CometChatUserMemberWrapper } from "./CometChatUserMemberWrapper/cometchat-user-member-wrapper.module";
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2NoYXQtdWlraXQtYW5ndWxhci9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUlILGtCQUFrQjtBQUNsQixjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsT0FBTyxFQUNMLGVBQWUsRUFDZixXQUFXLEVBQ1gsY0FBYyxFQUNkLFVBQVUsRUFDVixnQkFBZ0IsRUFDaEIsWUFBWSxFQUNaLHdCQUF3QixFQUN4QixhQUFhLEVBQ2IsU0FBUyxFQUNULGFBQWEsRUFDYixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsWUFBWSxFQUNaLGNBQWMsRUFDZCxVQUFVLEVBQ1YsY0FBYyxFQUNkLFVBQVUsRUFDVixvQkFBb0IsRUFDcEIsZ0JBQWdCLEVBQ2hCLGNBQWMsRUFDZCxVQUFVLEVBQ1YsaUJBQWlCLEVBQ2pCLGFBQWEsRUFDYixlQUFlLEVBQ2YsV0FBVyxFQUNYLGlCQUFpQixFQUNqQixhQUFhLEVBQ2Isc0JBQXNCLEVBQ3RCLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDaEIsb0JBQW9CLEVBQ3BCLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDakIsYUFBYSxFQUNiLG1CQUFtQixFQUNuQixlQUFlLEVBQ2Ysb0JBQW9CLEVBQ3BCLG9CQUFvQixFQUNwQixvQkFBb0IsRUFDcEIsZ0JBQWdCLEVBQ2hCLG1CQUFtQixFQUNuQixlQUFlLEVBQ2Ysb0JBQW9CLEVBQ3BCLGdCQUFnQixFQUNoQixzQkFBc0IsRUFDdEIsa0JBQWtCLEVBQ2xCLE1BQU0sRUFDTixjQUFjLEVBQ2QscUJBQXFCLEVBQ3JCLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIsY0FBYyxFQUNkLGlCQUFpQixFQUNqQixhQUFhLEVBQ2Isb0JBQW9CLEVBQ3BCLGdCQUFnQixFQUNoQixn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QUE0QixFQUFFLE1BQU0sOEVBQThFLENBQUM7QUFDNUgsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sa0hBQWtILENBQUM7QUFHekssS0FBSztBQUVMLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBQzNHLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQy9GLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBQzNHLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBQzNILE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG1FQUFtRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBhbmd1bGFyLWNoYXQtdWkta2l0XG4gKi9cblxuXG5cbi8vIHNoYXJlZCBwYWNrYWdlc1xuZXhwb3J0ICogZnJvbSBcIkBjb21ldGNoYXQvdWlraXQtc2hhcmVkXCI7XG5leHBvcnQgKiBmcm9tIFwiQGNvbWV0Y2hhdC91aWtpdC1yZXNvdXJjZXNcIjtcbmV4cG9ydCB7XG4gIENvbWV0Q2hhdEF2YXRhcixcbiAgQXZhdGFyU3R5bGUsXG4gIENvbWV0Q2hhdEJhZGdlLFxuICBCYWRnZVN0eWxlLFxuICBDb21ldENoYXRSZWNlaXB0LFxuICBSZWNlaXB0U3R5bGUsXG4gIENvbWV0Q2hhdFN0YXR1c0luZGljYXRvcixcbiAgQ29tZXRDaGF0RGF0ZSxcbiAgRGF0ZVN0eWxlLFxuICBDb21ldENoYXRJY29uLFxuICBJY29uU3R5bGUsXG4gIENvbWV0Q2hhdEJhY2tkcm9wLFxuICBDb21ldENoYXRCdXR0b24sXG4gIENvbWV0Q2hhdFBvcG92ZXIsXG4gIFBvcG92ZXJTdHlsZSxcbiAgQ29tZXRDaGF0TGFiZWwsXG4gIExhYmVsU3R5bGUsXG4gIENvbWV0Q2hhdElucHV0LFxuICBJbnB1dFN0eWxlLFxuICBDb21ldENoYXRTZWFyY2hJbnB1dCxcbiAgU2VhcmNoSW5wdXRTdHlsZSxcbiAgQ29tZXRDaGF0TW9kYWwsXG4gIE1vZGFsU3R5bGUsXG4gIENvbWV0Q2hhdE1lbnVMaXN0LFxuICBNZW51TGlzdFN0eWxlLFxuICBDb21ldENoYXRMb2FkZXIsXG4gIExvYWRlclN0eWxlLFxuICBDb21ldENoYXRMaXN0SXRlbSxcbiAgTGlzdEl0ZW1TdHlsZSxcbiAgQ29tZXRDaGF0Q29uZmlybURpYWxvZyxcbiAgQ29uZmlybURpYWxvZ1N0eWxlLFxuICBDb21ldENoYXREaXZpZGVyLFxuICBDb21ldENoYXRCdXR0b25Hcm91cCxcbiAgQnV0dG9uR3JvdXBTdHlsZSxcbiAgQ29tZXRDaGF0Q2hlY2tib3gsXG4gIENoZWNrYm94U3R5bGUsXG4gIENvbWV0Q2hhdFRleHRCdWJibGUsXG4gIFRleHRCdWJibGVTdHlsZSxcbiAgQ29tZXRDaGF0VmlkZW9CdWJibGUsXG4gIENvbWV0Q2hhdEF1ZGlvQnViYmxlLFxuICBDb21ldENoYXRJbWFnZUJ1YmJsZSxcbiAgSW1hZ2VCdWJibGVTdHlsZSxcbiAgQ29tZXRDaGF0RmlsZUJ1YmJsZSxcbiAgRmlsZUJ1YmJsZVN0eWxlLFxuICBDb21ldENoYXRSYWRpb0J1dHRvbixcbiAgUmFkaW9CdXR0b25TdHlsZSxcbiAgQ29tZXRDaGF0RW1vamlLZXlib2FyZCxcbiAgRW1vamlLZXlib2FyZFN0eWxlLFxuICBFbW9qaXMsXG4gIENvbWV0Q2hhdEVtb2ppLFxuICBDb21ldENoYXRNZXNzYWdlSW5wdXQsXG4gIENvbWV0Q2hhdFRleHRJbnB1dCxcbiAgTWVzc2FnZUlucHV0U3R5bGUsXG4gIFRleHRJbnB1dFN0eWxlLFxuICBDb21ldENoYXREcm9wZG93bixcbiAgRHJvcGRvd25TdHlsZSxcbiAgQ29tZXRDaGF0Q2hhbmdlU2NvcGUsXG4gIENoYW5nZVNjb3BlU3R5bGUsXG4gIENvbWV0Q2hhdFByZXZpZXcsXG4gIFByZXZpZXdTdHlsZSxcbiAgYXV4aWxpYXJ5QnV0dG9uQWxpZ25tZW50RW51bSxcbiAgQ29tZXRDaGF0QWN0aW9uU2hlZXQsXG4gIENvbWV0Q2hhdEFjdGlvbkl0ZW0sXG4gIGxheW91dFR5cGUsXG4gIEFjdGlvblNoZWV0U3R5bGUsXG4gIENvbWV0Q2hhdExpdmVSZWFjdGlvbixcbiAgQ29tZXRDaGF0Sm9pbkdyb3VwLFxuICBKb2luR3JvdXBTdHlsZSxcbiAgQ29tZXRDaGF0Q3JlYXRlR3JvdXAsXG4gIENyZWF0ZUdyb3VwU3R5bGUsXG4gIENvbWV0Q2hhdERvY3VtZW50QnViYmxlLFxuICBDb21ldENoYXRDYXJkLFxuICBDYXJkU3R5bGUsXG4gIERvY3VtZW50QnViYmxlU3R5bGUsXG4gIENvbWV0Q2hhdEZ1bGxTY3JlZW5WaWV3ZXIsXG4gIEZ1bGxTY3JlZW5WaWV3ZXJTdHlsZSxcbiAgQ29tZXRDaGF0SWNvbkJ1dHRvbixcbiAgQ29tZXRDaGF0RHJhZ2dhYmxlLFxuICBDb21ldENoYXRDb250ZXh0TWVudSxcbiAgQ29udGV4dE1lbnVTdHlsZSxcbiAgQ29tZXRDaGF0TWVkaWFSZWNvcmRlcixcbiAgTWVkaWFSZWNvcmRlclN0eWxlLFxuICBDYWxsc2NyZWVuU3R5bGUsXG4gIENvbWV0Q2hhdENhbGxzY3JlZW5XcmFwcGVyLFxuICBCYWNrZHJvcFN0eWxlLFxuICBDb21ldENoYXRTaW5nbGVTZWxlY3QsXG4gIFNpbmdsZVNlbGVjdFN0eWxlLFxuICBDb21ldENoYXRQYW5lbCxcbiAgQ29tZXRDaGF0UXVpY2tWaWV3LFxuICBQYW5lbFN0eWxlLFxuICBRdWlja1ZpZXdTdHlsZVxufSBmcm9tIFwiQGNvbWV0Y2hhdC91aWtpdC1lbGVtZW50c1wiO1xuXG5leHBvcnQgeyBDb21ldENoYXRVSUtpdCB9IGZyb20gXCIuL1NoYXJlZC9Db21ldENoYXRVSWtpdC9Db21ldENoYXRVSUtpdFwiO1xuZXhwb3J0IHsgQ2hhdENvbmZpZ3VyYXRvciB9IGZyb20gXCIuL1NoYXJlZC9GcmFtZXdvcmsvQ2hhdENvbmZpZ3VyYXRvclwiO1xuZXhwb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gXCIuL1NoYXJlZC9GcmFtZXdvcmsvRGF0YVNvdXJjZVwiO1xuZXhwb3J0IHsgRGF0YVNvdXJjZURlY29yYXRvciB9IGZyb20gXCIuL1NoYXJlZC9GcmFtZXdvcmsvRGF0YVNvdXJjZURlY29yYXRvclwiO1xuZXhwb3J0IHsgRXh0ZW5zaW9uc0RhdGFTb3VyY2UgfSBmcm9tIFwiLi9TaGFyZWQvRnJhbWV3b3JrL0V4dGVuc2lvbkRhdGFTb3VyY2VcIjtcbmV4cG9ydCB7IEFJRXh0ZW5zaW9uRGF0YVNvdXJjZSB9IGZyb20gXCIuL1NoYXJlZC9GcmFtZXdvcmsvQUlFeHRlbnNpb25EYXRhU291cmNlXCI7XG5leHBvcnQgeyBNZXNzYWdlVXRpbHMgfSBmcm9tIFwiLi9TaGFyZWQvVXRpbHMvTWVzc2FnZVV0aWxzXCI7XG5leHBvcnQgeyBDb21ldENoYXRUaGVtZVNlcnZpY2UgfSBmcm9tIFwiLi9Db21ldENoYXRUaGVtZS5zZXJ2aWNlXCI7XG5cbi8vIGV4dGVuc2lvbnNcbmV4cG9ydCB7IENvbGxhYm9yYXRpdmVEb2N1bWVudEV4dGVuc2lvbiB9IGZyb20gXCIuL0V4dGVuc2lvbnMvQ29sbGFib3JhdGl2ZURvY3VtZW50L0NvbGxhYm9yYXRpdmVEb2N1bWVudEV4dGVuc2lvblwiO1xuZXhwb3J0IHsgQ29sbGFib3JhdGl2ZURvY3VtZW50RXh0ZW5zaW9uRGVjb3JhdG9yIH0gZnJvbSBcIi4vRXh0ZW5zaW9ucy9Db2xsYWJvcmF0aXZlRG9jdW1lbnQvQ29sbGFib3JhdGl2ZURvY3VtZW50RXh0ZW5zaW9uRGVjb3JhdG9yXCI7XG5leHBvcnQgeyBDb2xsYWJvcmF0aXZlV2hpdGVCb2FyZEV4dGVuc2lvbiB9IGZyb20gXCIuL0V4dGVuc2lvbnMvQ29sbGFib3JhdGl2ZVdoaXRlYm9hcmQvQ29sbGFib3JhdGl2ZVdoaXRlYm9hcmRFeHRlbnNpb25cIjtcbmV4cG9ydCB7IENvbGxhYm9yYXRpdmVXaGl0ZUJvYXJkRXh0ZW5zaW9uRGVjb3JhdG9yIH0gZnJvbSBcIi4vRXh0ZW5zaW9ucy9Db2xsYWJvcmF0aXZlV2hpdGVib2FyZC9Db2xsYWJvcmF0aXZlV2hpdGVib2FyZEV4dGVuc2lvbkRlY29yYXRvclwiO1xuZXhwb3J0IHsgSW1hZ2VNb2RlcmF0aW9uRXh0ZW5zaW9uIH0gZnJvbSBcIi4vRXh0ZW5zaW9ucy9JbWFnZU1vZGVyYXRpb24vSW1hZ2VNb2RlcmF0aW9uRXh0ZW5zaW9uXCI7XG5leHBvcnQgeyBJbWFnZU1vZGVyYXRpb25FeHRlbnNpb25EZWNvcmF0b3IgfSBmcm9tIFwiLi9FeHRlbnNpb25zL0ltYWdlTW9kZXJhdGlvbi9JbWFnZU1vZGVyYXRpb25FeHRlbnNpb25EZWNvcmF0b3JcIjtcbmV4cG9ydCB7IExpbmtQcmV2aWV3RXh0ZW5zaW9uIH0gZnJvbSBcIi4vRXh0ZW5zaW9ucy9MaW5rUHJldmlld0V4dGVuc2lvbi9MaW5rUHJldmlld0V4dGVuc2lvblwiO1xuZXhwb3J0IHsgTGlua1ByZXZpZXdFeHRlbnNpb25EZWNvcmF0b3IgfSBmcm9tIFwiLi9FeHRlbnNpb25zL0xpbmtQcmV2aWV3RXh0ZW5zaW9uL0xpbmtQcmV2aWV3RXh0ZW5zaW9uRGVjb3JhdG9yXCI7XG5leHBvcnQgeyBNZXNzYWdlVHJhbnNsYXRpb25FeHRlbnNpb24gfSBmcm9tIFwiLi9FeHRlbnNpb25zL01lc3NhZ2VUcmFuc2xhdGlvbi9NZXNzYWdlVHJhbnNsYXRpb25FeHRlbnNpb25cIjtcbmV4cG9ydCB7IE1lc3NhZ2VUcmFuc2xhdGlvbkV4dGVuc2lvbkRlY29yYXRvciB9IGZyb20gXCIuL0V4dGVuc2lvbnMvTWVzc2FnZVRyYW5zbGF0aW9uL01lc3NhZ2VUcmFuc2xhdGlvbkV4dGVuc2lvbkRlY29yYXRvclwiO1xuZXhwb3J0IHsgUG9sbHNFeHRlbnNpb24gfSBmcm9tIFwiLi9FeHRlbnNpb25zL1BvbGxzRXh0ZW5zaW9uL1BvbGxzRXh0ZW5zaW9uXCI7XG5leHBvcnQgeyBQb2xsc0V4dGVuc2lvbkRlY29yYXRvciB9IGZyb20gXCIuL0V4dGVuc2lvbnMvUG9sbHNFeHRlbnNpb24vUG9sbHNFeHRlbnNpb25EZWNvcmF0b3JcIjtcbmV4cG9ydCB7IFNtYXJ0UmVwbHlFeHRlbnNpb24gfSBmcm9tIFwiLi9FeHRlbnNpb25zL1NtYXJ0UmVwbGllcy9TbWFydFJlcGxpZXNFeHRlbnNpb25cIjtcbmV4cG9ydCB7IFNtYXJ0UmVwbHlFeHRlbnNpb25EZWNvcmF0b3IgfSBmcm9tIFwiLi9FeHRlbnNpb25zL1NtYXJ0UmVwbGllcy9TbWFydFJlcGxpZXNFeHRlbnNpb25EZWNvcmF0b3JcIjtcbmV4cG9ydCB7IFN0aWNrZXJzRXh0ZW5zaW9uIH0gZnJvbSBcIi4vRXh0ZW5zaW9ucy9TdGlja2Vycy9TdGlja2Vyc0V4dGVuc2lvblwiO1xuZXhwb3J0IHsgU3RpY2tlcnNFeHRlbnNpb25EZWNvcmF0b3IgfSBmcm9tIFwiLi9FeHRlbnNpb25zL1N0aWNrZXJzL1N0aWNrZXJzRXh0ZW5zaW9uRGVjb3JhdG9yXCI7XG5leHBvcnQgeyBUZXh0TW9kZXJhdG9yRXh0ZW5zaW9uIH0gZnJvbSBcIi4vRXh0ZW5zaW9ucy9UZXh0TW9kZXJhdG9yL1RleHRNb2RlcmF0b3JFeHRlbnNpb25cIjtcbmV4cG9ydCB7IFRleHRNb2RlcmF0b3JFeHRlbnNpb25EZWNvcmF0b3IgfSBmcm9tIFwiLi9FeHRlbnNpb25zL1RleHRNb2RlcmF0b3IvVGV4dE1vZGVyYXRvckV4dGVuc2lvbkRlY29yYXRvclwiO1xuZXhwb3J0IHsgVGh1bWJuYWlsR2VuZXJhdGlvbkV4dGVuc2lvbiB9IGZyb20gXCIuL0V4dGVuc2lvbnMvVGh1bWJuYWlsR2VuZXJhdGlvbi9UaHVtYm5haWxHZW5lcmF0aW9uRXh0ZW5zaW9uXCI7XG5leHBvcnQgeyBUaHVtYm5haWxHZW5lcmF0aW9uRXh0ZW5zaW9uRGVjb3JhdG9yIH0gZnJvbSBcIi4vRXh0ZW5zaW9ucy9UaHVtYm5haWxHZW5lcmF0aW9uL1RodW1ibmFpbEdlbmVyYXRpb25FeHRlbnNpb25EZWNvcmF0b3JcIjtcblxuLy8gY2FsbHMgY29tcG9uZW50XG5leHBvcnQgeyBDYWxsaW5nRXh0ZW5zaW9uIH0gZnJvbSBcIi4vQ2FsbHMvQ2FsbGluZ0V4dGVuc2lvblwiO1xuZXhwb3J0IHsgQ2FsbGluZ0V4dGVuc2lvbkRlY29yYXRvciB9IGZyb20gXCIuL0NhbGxzL0NhbGxpbmdFeHRlbnNpb25EZWNvcmF0b3JcIjtcbmV4cG9ydCB7IENvbWV0Q2hhdENhbGxCdXR0b25zIH0gZnJvbSBcIi4vQ2FsbHMvQ29tZXRDaGF0Q2FsbEJ1dHRvbnMvY29tZXRjaGF0LWNhbGwtYnV0dG9ucy5tb2R1bGVcIjtcbmV4cG9ydCB7IENvbWV0Q2hhdENhbGxCdXR0b25zQ29tcG9uZW50IH0gZnJvbSBcIi4vQ2FsbHMvQ29tZXRDaGF0Q2FsbEJ1dHRvbnMvY29tZXRjaGF0LWNhbGwtYnV0dG9ucy9jb21ldGNoYXQtY2FsbC1idXR0b25zLmNvbXBvbmVudFwiO1xuZXhwb3J0IHsgQ29tZXRDaGF0SW5jb21pbmdDYWxsIH0gZnJvbSBcIi4vQ2FsbHMvQ29tZXRDaGF0SW5jb21pbmdDYWxsL2NvbWV0Y2hhdC1pbmNvbWluZy1jYWxsLm1vZHVsZVwiO1xuZXhwb3J0IHsgQ29tZXRDaGF0SW5jb21pbmdDYWxsQ29tcG9uZW50IH0gZnJvbSBcIi4vQ2FsbHMvQ29tZXRDaGF0SW5jb21pbmdDYWxsL2NvbWV0Y2hhdC1pbmNvbWluZy1jYWxsL2NvbWV0Y2hhdC1pbmNvbWluZy1jYWxsLmNvbXBvbmVudFwiO1xuZXhwb3J0IHsgQ29tZXRDaGF0T25nb2luZ0NhbGwgfSBmcm9tIFwiLi9DYWxscy9Db21ldENoYXRPbmdvaW5nQ2FsbC9jb21ldGNoYXQtb25nb2luZy1jYWxsLm1vZHVsZVwiO1xuZXhwb3J0IHsgQ29tZXRDaGF0T25nb2luZ0NhbGxDb21wb25lbnQgfSBmcm9tIFwiLi9DYWxscy9Db21ldENoYXRPbmdvaW5nQ2FsbC9jb21ldGNoYXQtb25nb2luZy1jYWxsL2NvbWV0Y2hhdC1vbmdvaW5nLWNhbGwuY29tcG9uZW50XCI7XG5leHBvcnQgeyBDb21ldENoYXRPdXRnb2luZ0NhbGwgfSBmcm9tIFwiLi9DYWxscy9Db21ldENoYXRPdXRnb2luZ0NhbGwvY29tZXRjaGF0LW91dGdvaW5nLWNhbGwubW9kdWxlXCI7XG5leHBvcnQgeyBDb21ldENoYXRPdXRnb2luZ0NhbGxDb21wb25lbnQgfSBmcm9tIFwiLi9DYWxscy9Db21ldENoYXRPdXRnb2luZ0NhbGwvY29tZXRjaGF0LW91dGdvaW5nLWNhbGwvY29tZXRjaGF0LW91dGdvaW5nLWNhbGwuY29tcG9uZW50XCI7XG5cbi8vIGNoYXR1aWtpdFxuZXhwb3J0IHsgQ29tZXRDaGF0QWRkTWVtYmVyc0NvbXBvbmVudCB9IGZyb20gXCIuL0NvbWV0Q2hhdEFkZE1lbWJlcnMvY29tZXRjaGF0LWFkZC1tZW1iZXJzL2NvbWV0Y2hhdC1hZGQtbWVtYmVycy5jb21wb25lbnRcIjtcbmV4cG9ydCB7IENvbWV0Q2hhdEFkZE1lbWJlcnMgfSBmcm9tIFwiLi9Db21ldENoYXRBZGRNZW1iZXJzL2NvbWV0Y2hhdC1hZGQtbWVtYmVycy5tb2R1bGVcIjtcbmV4cG9ydCB7IENvbWV0Q2hhdEJhbm5lZE1lbWJlcnMgfSBmcm9tIFwiLi9Db21ldENoYXRCYW5uZWRNZW1iZXJzL2NvbWV0Y2hhdC1iYW5uZWQtbWVtYmVycy5tb2R1bGVcIjtcbmV4cG9ydCB7IENvbWV0Q2hhdEJhbm5lZE1lbWJlcnNDb21wb25lbnQgfSBmcm9tIFwiLi9Db21ldENoYXRCYW5uZWRNZW1iZXJzL2NvbWV0Y2hhdC1iYW5uZWQtbWVtYmVycy9jb21ldGNoYXQtYmFubmVkLW1lbWJlcnMuY29tcG9uZW50XCI7XG5leHBvcnQgeyBDb21ldENoYXRDb252ZXJzYXRpb25zIH0gZnJvbSBcIi4vQ29tZXRDaGF0Q29udmVyc2F0aW9ucy9jb21ldGNoYXQtY29udmVyc2F0aW9ucy5tb2R1bGVcIjtcbmV4cG9ydCB7IENvbWV0Q2hhdENvbnZlcnNhdGlvbnNDb21wb25lbnQgfSBmcm9tIFwiLi9Db21ldENoYXRDb252ZXJzYXRpb25zL2NvbWV0Y2hhdC1jb252ZXJzYXRpb25zL2NvbWV0Y2hhdC1jb252ZXJzYXRpb25zLmNvbXBvbmVudFwiO1xuZXhwb3J0IHsgQ29tZXRDaGF0Q29udmVyc2F0aW9uc1dpdGhNZXNzYWdlcyB9IGZyb20gXCIuL0NvbWV0Q2hhdENvbnZlcnNhdGlvbnNXaXRoTWVzc2FnZXMvY29tZXRjaGF0LWNvbnZlcnNhdGlvbnMtd2l0aC1tZXNzYWdlcy5tb2R1bGVcIjtcbmV4cG9ydCB7IENvbWV0Q2hhdENvbnZlcnNhdGlvbnNXaXRoTWVzc2FnZXNDb21wb25lbnQgfSBmcm9tIFwiLi9Db21ldENoYXRDb252ZXJzYXRpb25zV2l0aE1lc3NhZ2VzL2NvbWV0Y2hhdC1jb252ZXJzYXRpb25zLXdpdGgtbWVzc2FnZXMvY29tZXRjaGF0LWNvbnZlcnNhdGlvbnMtd2l0aC1tZXNzYWdlcy5jb21wb25lbnRcIjtcbmV4cG9ydCB7IENvbWV0Q2hhdERldGFpbHMgfSBmcm9tIFwiLi9Db21ldENoYXREZXRhaWxzL2NvbWV0Y2hhdC1kZXRhaWxzLm1vZHVsZVwiO1xuZXhwb3J0IHsgQ29tZXRDaGF0RGV0YWlsc0NvbXBvbmVudCB9IGZyb20gXCIuL0NvbWV0Q2hhdERldGFpbHMvY29tZXRjaGF0LWRldGFpbHMvY29tZXRjaGF0LWRldGFpbHMuY29tcG9uZW50XCI7XG5leHBvcnQgeyBDb21ldENoYXRHcm91cE1lbWJlcnMgfSBmcm9tIFwiLi9Db21ldENoYXRHcm91cE1lbWJlcnMvY29tZXRjaGF0LWdyb3VwLW1lbWJlcnMubW9kdWxlXCI7XG5leHBvcnQgeyBDb21ldENoYXRHcm91cE1lbWJlcnNDb21wb25lbnQgfSBmcm9tIFwiLi9Db21ldENoYXRHcm91cE1lbWJlcnMvY29tZXRjaGF0LWdyb3VwLW1lbWJlcnMvY29tZXRjaGF0LWdyb3VwLW1lbWJlcnMuY29tcG9uZW50XCI7XG5leHBvcnQgeyBDb21ldENoYXRHcm91cHMgfSBmcm9tIFwiLi9Db21ldENoYXRHcm91cHMvY29tZXRjaGF0LWdyb3Vwcy5tb2R1bGVcIjtcbmV4cG9ydCB7IENvbWV0Q2hhdEdyb3Vwc0NvbXBvbmVudCB9IGZyb20gXCIuL0NvbWV0Q2hhdEdyb3Vwcy9jb21ldGNoYXQtZ3JvdXBzL2NvbWV0Y2hhdC1ncm91cHMuY29tcG9uZW50XCI7XG5leHBvcnQgeyBDb21ldENoYXRHcm91cHNXaXRoTWVzc2FnZXMgfSBmcm9tIFwiLi9Db21ldENoYXRHcm91cHNXaXRoTWVzc2FnZXMvY29tZXRjaGF0LWdyb3Vwcy13aXRoLW1lc3NhZ2VzLm1vZHVsZVwiO1xuZXhwb3J0IHsgQ29tZXRDaGF0R3JvdXBzV2l0aE1lc3NhZ2VzQ29tcG9uZW50IH0gZnJvbSBcIi4vQ29tZXRDaGF0R3JvdXBzV2l0aE1lc3NhZ2VzL2NvbWV0Y2hhdC1ncm91cHMtd2l0aC1tZXNzYWdlcy9jb21ldGNoYXQtZ3JvdXBzLXdpdGgtbWVzc2FnZXMuY29tcG9uZW50XCI7XG5leHBvcnQgeyBDb21ldENoYXRMaXN0IH0gZnJvbSBcIi4vQ29tZXRDaGF0TGlzdC9jb21ldGNoYXQtbGlzdC5tb2R1bGVcIjtcbmV4cG9ydCB7IENvbWV0Y2hhdExpc3RDb21wb25lbnQgfSBmcm9tIFwiLi9Db21ldENoYXRMaXN0L2NvbWV0Y2hhdC1saXN0LmNvbXBvbmVudFwiO1xuZXhwb3J0IHsgQ29tZXRDaGF0TWVzc2FnZUJ1YmJsZSB9IGZyb20gXCIuL0NvbWV0Q2hhdE1lc3NhZ2VCdWJibGUvY29tZXRjaGF0LW1lc3NhZ2UtYnViYmxlLm1vZHVsZVwiO1xuZXhwb3J0IHsgQ29tZXRDaGF0TWVzc2FnZUJ1YmJsZUNvbXBvbmVudCB9IGZyb20gXCIuL0NvbWV0Q2hhdE1lc3NhZ2VCdWJibGUvY29tZXRjaGF0LW1lc3NhZ2UtYnViYmxlL2NvbWV0Y2hhdC1tZXNzYWdlLWJ1YmJsZS5jb21wb25lbnRcIjtcbmV4cG9ydCB7IENvbWV0Q2hhdE1lc3NhZ2VDb21wb3NlciB9IGZyb20gXCIuL0NvbWV0Q2hhdE1lc3NhZ2VDb21wb3Nlci9jb21ldGNoYXQtbWVzc2FnZS1jb21wb3Nlci5tb2R1bGVcIjtcbmV4cG9ydCB7IENvbWV0Q2hhdE1lc3NhZ2VDb21wb3NlckNvbXBvbmVudCB9IGZyb20gXCIuL0NvbWV0Q2hhdE1lc3NhZ2VDb21wb3Nlci9jb21ldGNoYXQtbWVzc2FnZS1jb21wb3Nlci9jb21ldGNoYXQtbWVzc2FnZS1jb21wb3Nlci5jb21wb25lbnRcIjtcbmV4cG9ydCB7IENvbWV0Q2hhdE1lc3NhZ2VIZWFkZXIgfSBmcm9tIFwiLi9Db21ldENoYXRNZXNzYWdlSGVhZGVyL2NvbWV0Y2hhdC1tZXNzYWdlLWhlYWRlci5tb2R1bGVcIjtcbmV4cG9ydCB7IENvbWV0Q2hhdE1lc3NhZ2VIZWFkZXJDb21wb25lbnQgfSBmcm9tIFwiLi9Db21ldENoYXRNZXNzYWdlSGVhZGVyL2NvbWV0Y2hhdC1tZXNzYWdlLWhlYWRlci9jb21ldGNoYXQtbWVzc2FnZS1oZWFkZXIuY29tcG9uZW50XCI7XG5leHBvcnQgeyBDb21ldENoYXRNZXNzYWdlTGlzdCB9IGZyb20gXCIuL0NvbWV0Q2hhdE1lc3NhZ2VMaXN0L2NvbWV0Y2hhdC1tZXNzYWdlLWxpc3QubW9kdWxlXCI7XG5leHBvcnQgeyBDb21ldENoYXRNZXNzYWdlTGlzdENvbXBvbmVudCB9IGZyb20gXCIuL0NvbWV0Q2hhdE1lc3NhZ2VMaXN0L2NvbWV0Y2hhdC1tZXNzYWdlLWxpc3QvY29tZXRjaGF0LW1lc3NhZ2UtbGlzdC5jb21wb25lbnRcIjtcbmV4cG9ydCB7IENvbWV0Q2hhdE1lc3NhZ2VzIH0gZnJvbSBcIi4vQ29tZXRDaGF0TWVzc2FnZXMvY29tZXRjaGF0LW1lc3NhZ2VzLm1vZHVsZVwiO1xuZXhwb3J0IHsgQ29tZXRDaGF0TWVzc2FnZXNDb21wb25lbnQgfSBmcm9tIFwiLi9Db21ldENoYXRNZXNzYWdlcy9jb21ldGNoYXQtbWVzc2FnZXMvY29tZXRjaGF0LW1lc3NhZ2VzLmNvbXBvbmVudFwiO1xuZXhwb3J0IHsgQ29tZXRDaGF0VGhyZWFkZWRNZXNzYWdlcyB9IGZyb20gXCIuL0NvbWV0Q2hhdFRocmVhZGVkTWVzc2FnZXMvY29tZXRjaGF0LXRocmVhZGVkLW1lc3NhZ2VzLm1vZHVsZVwiO1xuZXhwb3J0IHsgQ29tZXRDaGF0VGhyZWFkZWRNZXNzYWdlc0NvbXBvbmVudCB9IGZyb20gXCIuL0NvbWV0Q2hhdFRocmVhZGVkTWVzc2FnZXMvY29tZXRjaGF0LXRocmVhZGVkLW1lc3NhZ2VzL2NvbWV0Y2hhdC10aHJlYWRlZC1tZXNzYWdlcy5jb21wb25lbnRcIjtcbmV4cG9ydCB7IENvbWV0Q2hhdFRyYW5zZmVyT3duZXJzaGlwIH0gZnJvbSBcIi4vQ29tZXRDaGF0VHJhbnNmZXJPd25lcnNoaXAvY29tZXRjaGF0LXRyYW5zZmVyLW93bmVyc2hpcC5tb2R1bGVcIjtcbmV4cG9ydCB7IENvbWV0Q2hhdFRyYW5zZmVyT3duZXJzaGlwQ29tcG9uZW50IH0gZnJvbSBcIi4vQ29tZXRDaGF0VHJhbnNmZXJPd25lcnNoaXAvY29tZXRjaGF0LXRyYW5zZmVyLW93bmVyc2hpcC9jb21ldGNoYXQtdHJhbnNmZXItb3duZXJzaGlwLmNvbXBvbmVudFwiO1xuZXhwb3J0IHsgQ29tZXRDaGF0VXNlcnNDb21wb25lbnQgfSBmcm9tIFwiLi9Db21ldENoYXRVc2Vycy9jb21ldGNoYXQtdXNlcnMvY29tZXRjaGF0LXVzZXJzLmNvbXBvbmVudFwiO1xuZXhwb3J0IHsgQ29tZXRDaGF0VXNlcnMgfSBmcm9tIFwiLi9Db21ldENoYXRVc2Vycy9jb21ldGNoYXQtdXNlcnMubW9kdWxlXCI7XG5leHBvcnQgeyBDb21ldENoYXRVc2Vyc1dpdGhNZXNzYWdlc0NvbXBvbmVudCB9IGZyb20gXCIuL0NvbWV0Q2hhdFVzZXJzV2l0aE1lc3NhZ2VzL2NvbWV0Y2hhdC11c2Vycy13aXRoLW1lc3NhZ2VzL2NvbWV0Y2hhdC11c2Vycy13aXRoLW1lc3NhZ2VzLmNvbXBvbmVudFwiO1xuZXhwb3J0IHsgQ29tZXRDaGF0VXNlcnNXaXRoTWVzc2FnZXMgfSBmcm9tIFwiLi9Db21ldENoYXRVc2Vyc1dpdGhNZXNzYWdlcy9jb21ldGNoYXQtdXNlcnMtd2l0aC1tZXNzYWdlcy5tb2R1bGVcIjtcbmV4cG9ydCB7IENvbWV0Q2hhdFRhYnNDb21wb25lbnQgfSBmcm9tIFwiLi9TaGFyZWQvVmlld3MvQ29tZXRDaGF0VGFicy9jb21ldGNoYXQtdGFicy9jb21ldGNoYXQtdGFicy5jb21wb25lbnRcIjtcbmV4cG9ydCB7IENvbWV0Q2hhdFRhYnMgfSBmcm9tIFwiLi9TaGFyZWQvVmlld3MvQ29tZXRDaGF0VGFicy9jb21ldGNoYXQtdGFicy5tb2R1bGVcIjtcbmV4cG9ydCB7IENvbWV0Q2hhdENvbnRhY3RzIH0gZnJvbSBcIi4vQ29tZXRDaGF0Q29udGFjdHMvY29tZXRjaGF0LWNvbnRhY3RzLm1vZHVsZVwiO1xuZXhwb3J0IHsgQ29tZXRDaGF0Q29udGFjdHNDb21wb25lbnQgfSBmcm9tIFwiLi9Db21ldENoYXRDb250YWN0cy9jb21ldGNoYXQtY29udGFjdHMvY29tZXRjaGF0LWNvbnRhY3RzLmNvbXBvbmVudFwiO1xuZXhwb3J0IHsgQ29tZXRDaGF0TWVzc2FnZUluZm9ybWF0aW9uIH0gZnJvbSBcIi4vQ29tZXRDaGF0TWVzc2FnZUluZm9ybWF0aW9uL2NvbWV0Y2hhdC1tZXNzYWdlLWluZm9ybWF0aW9uLm1vZHVsZVwiO1xuZXhwb3J0IHsgQ29tZXRDaGF0TWVzc2FnZUluZm9ybWF0aW9uQ29tcG9uZW50IH0gZnJvbSBcIi4vQ29tZXRDaGF0TWVzc2FnZUluZm9ybWF0aW9uL2NvbWV0Y2hhdC1tZXNzYWdlLWluZm9ybWF0aW9uL2NvbWV0Y2hhdC1tZXNzYWdlLWluZm9ybWF0aW9uLmNvbXBvbmVudFwiO1xuXG5leHBvcnQgeyBDb21ldENoYXRDYWxsTG9ncyB9IGZyb20gXCIuL0NhbGxzL0NvbWV0Q2hhdENhbGxMb2dzL2NvbWV0Y2hhdC1jYWxsLWxvZ3MubW9kdWxlXCI7XG5leHBvcnQgeyBDb21ldGNoYXRDYWxsTG9nc0NvbXBvbmVudCB9IGZyb20gXCIuL0NhbGxzL0NvbWV0Q2hhdENhbGxMb2dzL2NvbWV0Y2hhdC1jYWxsLWxvZ3MvY29tZXRjaGF0LWNhbGwtbG9ncy5jb21wb25lbnRcIjtcbmV4cG9ydCB7IENvbWV0Q2hhdENhbGxMb2dQYXJ0aWNpcGFudHMgfSBmcm9tIFwiLi9DYWxscy9Db21ldENoYXRDYWxsTG9nUGFydGljaXBhbnRzL2NvbWV0Y2hhdC1jYWxsLWxvZy1wYXJ0aWNpcGFudHMubW9kdWxlXCI7XG5leHBvcnQgeyBDb21ldENoYXRDYWxsTG9nUGFydGljaXBhbnRzQ29tcG9uZW50IH0gZnJvbSBcIi4vQ2FsbHMvQ29tZXRDaGF0Q2FsbExvZ1BhcnRpY2lwYW50cy9jb21ldGNoYXQtY2FsbC1sb2ctcGFydGljaXBhbnRzL2NvbWV0Y2hhdC1jYWxsLWxvZy1wYXJ0aWNpcGFudHMuY29tcG9uZW50XCI7XG5leHBvcnQgeyBDb21ldENoYXRDYWxsTG9nUmVjb3JkaW5ncyB9IGZyb20gXCIuL0NhbGxzL0NvbWV0Q2hhdENhbGxMb2dSZWNvcmRpbmdzL2NvbWV0Y2hhdC1jYWxsLWxvZy1yZWNvcmRpbmdzLm1vZHVsZVwiO1xuZXhwb3J0IHsgQ29tZXRDaGF0Q2FsbExvZ1JlY29yZGluZ3NDb21wb25lbnQgfSBmcm9tIFwiLi9DYWxscy9Db21ldENoYXRDYWxsTG9nUmVjb3JkaW5ncy9jb21ldGNoYXQtY2FsbC1sb2ctcmVjb3JkaW5ncy9jb21ldGNoYXQtY2FsbC1sb2ctcmVjb3JkaW5ncy5jb21wb25lbnRcIjtcbmV4cG9ydCB7IENvbWV0Q2hhdENhbGxMb2dIaXN0b3J5IH0gZnJvbSBcIi4vQ2FsbHMvQ29tZXRDaGF0Q2FsbExvZ0hpc3RvcnkvY29tZXRjaGF0LWNhbGwtbG9nLWhpc3RvcnkubW9kdWxlXCI7XG5leHBvcnQgeyBDb21ldENoYXRDYWxsTG9nSGlzdG9yeUNvbXBvbmVudCB9IGZyb20gXCIuL0NhbGxzL0NvbWV0Q2hhdENhbGxMb2dIaXN0b3J5L2NvbWV0Y2hhdC1jYWxsLWxvZy1oaXN0b3J5L2NvbWV0Y2hhdC1jYWxsLWxvZy1oaXN0b3J5LmNvbXBvbmVudFwiO1xuZXhwb3J0IHsgQ29tZXRDaGF0Q2FsbExvZ0RldGFpbHMgfSBmcm9tIFwiLi9DYWxscy9Db21ldENoYXRDYWxsTG9nRGV0YWlscy9jb21ldGNoYXQtY2FsbC1sb2ctZGV0YWlscy5tb2R1bGVcIjtcbmV4cG9ydCB7IENvbWV0Q2hhdENhbGxMb2dEZXRhaWxzQ29tcG9uZW50IH0gZnJvbSBcIi4vQ2FsbHMvQ29tZXRDaGF0Q2FsbExvZ0RldGFpbHMvY29tZXRjaGF0LWNhbGwtbG9nLWRldGFpbHMvY29tZXRjaGF0LWNhbGwtbG9nLWRldGFpbHMuY29tcG9uZW50XCI7XG5leHBvcnQgeyBDb21ldENoYXRDYWxsTG9nc1dpdGhEZXRhaWxzIH0gZnJvbSBcIi4vQ2FsbHMvQ29tZXRDaGF0Q2FsbExvZ3NXaXRoRGV0YWlscy9jb21ldGNoYXQtY2FsbC1sb2dzLXdpdGgtZGV0YWlscy5tb2R1bGVcIjtcbmV4cG9ydCB7IENvbWV0Q2hhdENhbGxMb2dzV2l0aERldGFpbHNDb21wb25lbnQgfSBmcm9tIFwiLi9DYWxscy9Db21ldENoYXRDYWxsTG9nc1dpdGhEZXRhaWxzL2NvbWV0Y2hhdC1jYWxsLWxvZ3Mtd2l0aC1kZXRhaWxzL2NvbWV0Y2hhdC1jYWxsLWxvZ3Mtd2l0aC1kZXRhaWxzLmNvbXBvbmVudFwiO1xuXG5cbi8vIEFJXG5cbmV4cG9ydCB7IEFJQ29udmVyc2F0aW9uU3RhcnRlckRlY29yYXRvciB9IGZyb20gXCIuL0FJL0FJQ29udmVyc2F0aW9uU3RhcnRlci9BSUNvbnZlcnNhdGlvblN0YXJ0ZXJEZWNvcmF0b3JcIjtcbmV4cG9ydCB7IEFJQ29udmVyc2F0aW9uU3RhcnRlckV4dGVuc2lvbiB9IGZyb20gXCIuL0FJL0FJQ29udmVyc2F0aW9uU3RhcnRlci9BSUNvbnZlcnNhdGlvblN0YXJ0ZXJcIjtcbmV4cG9ydCB7IEFJU21hcnRSZXBsaWVzRXh0ZW5zaW9uIH0gZnJvbSBcIi4vQUkvQUlTbWFydFJlcGxpZXMvQUlTbWFydFJlcGxpZXNcIjtcbmV4cG9ydCB7IEFJU21hcnRSZXBsaWVzRXh0ZW5zaW9uRGVjb3JhdG9yIH0gZnJvbSBcIi4vQUkvQUlTbWFydFJlcGxpZXMvQUlTbWFydFJlcGxpZXNEZWNvcmF0b3JcIjtcbmV4cG9ydCB7IEFJQ29udmVyc2F0aW9uU3VtbWFyeURlY29yYXRvciB9IGZyb20gXCIuL0FJL0FJQ29udmVyc2F0aW9uU3VtbWFyeS9BSUNvbnZlcnNhdGlvblN1bW1hcnlEZWNvcmF0b3JcIjtcbmV4cG9ydCB7IEFJQ29udmVyc2F0aW9uU3VtbWFyeUV4dGVuc2lvbiB9IGZyb20gXCIuL0FJL0FJQ29udmVyc2F0aW9uU3VtbWFyeS9BSUNvbnZlcnNhdGlvblN1bW1hcnlcIjtcbmV4cG9ydCB7IEFJQXNzaXN0Qm90RGVjb3JhdG9yIH0gZnJvbSBcIi4vQUkvQUlBc3Npc3RCb3QvQUlBc3Npc3RCb3REZWNvcmF0b3JcIjtcbmV4cG9ydCB7IEFJQXNzaXN0Qm90RXh0ZW5zaW9uIH0gZnJvbSBcIi4vQUkvQUlBc3Npc3RCb3QvQUlBc3Npc3RCb3RcIjtcbmV4cG9ydCB7IENvbWV0Q2hhdFVzZXJNZW1iZXJXcmFwcGVyQ29tcG9uZW50IH0gZnJvbSBcIi4vQ29tZXRDaGF0VXNlck1lbWJlcldyYXBwZXIvY29tZXRjaGF0LXVzZXItbWVtYmVyLXdyYXBwZXIuY29tcG9uZW50XCI7XG5leHBvcnQgeyBDb21ldENoYXRVc2VyTWVtYmVyV3JhcHBlciB9IGZyb20gXCIuL0NvbWV0Q2hhdFVzZXJNZW1iZXJXcmFwcGVyL2NvbWV0Y2hhdC11c2VyLW1lbWJlci13cmFwcGVyLm1vZHVsZVwiO1xuIl19
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2NoYXQtdWlraXQtYW5ndWxhci9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUlILGtCQUFrQjtBQUNsQixjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsT0FBTyxFQUNMLGVBQWUsRUFDZixXQUFXLEVBQ1gsY0FBYyxFQUNkLFVBQVUsRUFDVixnQkFBZ0IsRUFDaEIsWUFBWSxFQUNaLHdCQUF3QixFQUN4QixhQUFhLEVBQ2IsU0FBUyxFQUNULGFBQWEsRUFDYixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsWUFBWSxFQUNaLGNBQWMsRUFDZCxVQUFVLEVBQ1YsY0FBYyxFQUNkLFVBQVUsRUFDVixvQkFBb0IsRUFDcEIsZ0JBQWdCLEVBQ2hCLGNBQWMsRUFDZCxVQUFVLEVBQ1YsaUJBQWlCLEVBQ2pCLGFBQWEsRUFDYixlQUFlLEVBQ2YsV0FBVyxFQUNYLGlCQUFpQixFQUNqQixhQUFhLEVBQ2Isc0JBQXNCLEVBQ3RCLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDaEIsb0JBQW9CLEVBQ3BCLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDakIsYUFBYSxFQUNiLG1CQUFtQixFQUNuQixlQUFlLEVBQ2Ysb0JBQW9CLEVBQ3BCLG9CQUFvQixFQUNwQixvQkFBb0IsRUFDcEIsZ0JBQWdCLEVBQ2hCLG1CQUFtQixFQUNuQixlQUFlLEVBQ2Ysb0JBQW9CLEVBQ3BCLGdCQUFnQixFQUNoQixzQkFBc0IsRUFDdEIsa0JBQWtCLEVBQ2xCLE1BQU0sRUFDTixjQUFjLEVBQ2QscUJBQXFCLEVBQ3JCLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIsY0FBYyxFQUNkLGlCQUFpQixFQUNqQixhQUFhLEVBQ2Isb0JBQW9CLEVBQ3BCLGdCQUFnQixFQUNoQixn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QUFnQyxFQUFFLE1BQU0saUdBQWlHLENBQUM7QUFDbkosT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sOEVBQThFLENBQUM7QUFDNUgsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sa0hBQWtILENBQUM7QUFHekssS0FBSztBQUVMLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBQzNHLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQy9GLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBQzNHLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBQzNILE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG1FQUFtRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBhbmd1bGFyLWNoYXQtdWkta2l0XG4gKi9cblxuXG5cbi8vIHNoYXJlZCBwYWNrYWdlc1xuZXhwb3J0ICogZnJvbSBcIkBjb21ldGNoYXQvdWlraXQtc2hhcmVkXCI7XG5leHBvcnQgKiBmcm9tIFwiQGNvbWV0Y2hhdC91aWtpdC1yZXNvdXJjZXNcIjtcbmV4cG9ydCB7XG4gIENvbWV0Q2hhdEF2YXRhcixcbiAgQXZhdGFyU3R5bGUsXG4gIENvbWV0Q2hhdEJhZGdlLFxuICBCYWRnZVN0eWxlLFxuICBDb21ldENoYXRSZWNlaXB0LFxuICBSZWNlaXB0U3R5bGUsXG4gIENvbWV0Q2hhdFN0YXR1c0luZGljYXRvcixcbiAgQ29tZXRDaGF0RGF0ZSxcbiAgRGF0ZVN0eWxlLFxuICBDb21ldENoYXRJY29uLFxuICBJY29uU3R5bGUsXG4gIENvbWV0Q2hhdEJhY2tkcm9wLFxuICBDb21ldENoYXRCdXR0b24sXG4gIENvbWV0Q2hhdFBvcG92ZXIsXG4gIFBvcG92ZXJTdHlsZSxcbiAgQ29tZXRDaGF0TGFiZWwsXG4gIExhYmVsU3R5bGUsXG4gIENvbWV0Q2hhdElucHV0LFxuICBJbnB1dFN0eWxlLFxuICBDb21ldENoYXRTZWFyY2hJbnB1dCxcbiAgU2VhcmNoSW5wdXRTdHlsZSxcbiAgQ29tZXRDaGF0TW9kYWwsXG4gIE1vZGFsU3R5bGUsXG4gIENvbWV0Q2hhdE1lbnVMaXN0LFxuICBNZW51TGlzdFN0eWxlLFxuICBDb21ldENoYXRMb2FkZXIsXG4gIExvYWRlclN0eWxlLFxuICBDb21ldENoYXRMaXN0SXRlbSxcbiAgTGlzdEl0ZW1TdHlsZSxcbiAgQ29tZXRDaGF0Q29uZmlybURpYWxvZyxcbiAgQ29uZmlybURpYWxvZ1N0eWxlLFxuICBDb21ldENoYXREaXZpZGVyLFxuICBDb21ldENoYXRCdXR0b25Hcm91cCxcbiAgQnV0dG9uR3JvdXBTdHlsZSxcbiAgQ29tZXRDaGF0Q2hlY2tib3gsXG4gIENoZWNrYm94U3R5bGUsXG4gIENvbWV0Q2hhdFRleHRCdWJibGUsXG4gIFRleHRCdWJibGVTdHlsZSxcbiAgQ29tZXRDaGF0VmlkZW9CdWJibGUsXG4gIENvbWV0Q2hhdEF1ZGlvQnViYmxlLFxuICBDb21ldENoYXRJbWFnZUJ1YmJsZSxcbiAgSW1hZ2VCdWJibGVTdHlsZSxcbiAgQ29tZXRDaGF0RmlsZUJ1YmJsZSxcbiAgRmlsZUJ1YmJsZVN0eWxlLFxuICBDb21ldENoYXRSYWRpb0J1dHRvbixcbiAgUmFkaW9CdXR0b25TdHlsZSxcbiAgQ29tZXRDaGF0RW1vamlLZXlib2FyZCxcbiAgRW1vamlLZXlib2FyZFN0eWxlLFxuICBFbW9qaXMsXG4gIENvbWV0Q2hhdEVtb2ppLFxuICBDb21ldENoYXRNZXNzYWdlSW5wdXQsXG4gIENvbWV0Q2hhdFRleHRJbnB1dCxcbiAgTWVzc2FnZUlucHV0U3R5bGUsXG4gIFRleHRJbnB1dFN0eWxlLFxuICBDb21ldENoYXREcm9wZG93bixcbiAgRHJvcGRvd25TdHlsZSxcbiAgQ29tZXRDaGF0Q2hhbmdlU2NvcGUsXG4gIENoYW5nZVNjb3BlU3R5bGUsXG4gIENvbWV0Q2hhdFByZXZpZXcsXG4gIFByZXZpZXdTdHlsZSxcbiAgYXV4aWxpYXJ5QnV0dG9uQWxpZ25tZW50RW51bSxcbiAgQ29tZXRDaGF0QWN0aW9uU2hlZXQsXG4gIENvbWV0Q2hhdEFjdGlvbkl0ZW0sXG4gIGxheW91dFR5cGUsXG4gIEFjdGlvblNoZWV0U3R5bGUsXG4gIENvbWV0Q2hhdExpdmVSZWFjdGlvbixcbiAgQ29tZXRDaGF0Sm9pbkdyb3VwLFxuICBKb2luR3JvdXBTdHlsZSxcbiAgQ29tZXRDaGF0Q3JlYXRlR3JvdXAsXG4gIENyZWF0ZUdyb3VwU3R5bGUsXG4gIENvbWV0Q2hhdERvY3VtZW50QnViYmxlLFxuICBDb21ldENoYXRDYXJkLFxuICBDYXJkU3R5bGUsXG4gIERvY3VtZW50QnViYmxlU3R5bGUsXG4gIENvbWV0Q2hhdEZ1bGxTY3JlZW5WaWV3ZXIsXG4gIEZ1bGxTY3JlZW5WaWV3ZXJTdHlsZSxcbiAgQ29tZXRDaGF0SWNvbkJ1dHRvbixcbiAgQ29tZXRDaGF0RHJhZ2dhYmxlLFxuICBDb21ldENoYXRDb250ZXh0TWVudSxcbiAgQ29udGV4dE1lbnVTdHlsZSxcbiAgQ29tZXRDaGF0TWVkaWFSZWNvcmRlcixcbiAgTWVkaWFSZWNvcmRlclN0eWxlLFxuICBDYWxsc2NyZWVuU3R5bGUsXG4gIENvbWV0Q2hhdENhbGxzY3JlZW5XcmFwcGVyLFxuICBCYWNrZHJvcFN0eWxlLFxuICBDb21ldENoYXRTaW5nbGVTZWxlY3QsXG4gIFNpbmdsZVNlbGVjdFN0eWxlLFxuICBDb21ldENoYXRQYW5lbCxcbiAgQ29tZXRDaGF0UXVpY2tWaWV3LFxuICBQYW5lbFN0eWxlLFxuICBRdWlja1ZpZXdTdHlsZVxufSBmcm9tIFwiQGNvbWV0Y2hhdC91aWtpdC1lbGVtZW50c1wiO1xuXG5leHBvcnQgeyBDb21ldENoYXRVSUtpdCB9IGZyb20gXCIuL1NoYXJlZC9Db21ldENoYXRVSWtpdC9Db21ldENoYXRVSUtpdFwiO1xuZXhwb3J0IHsgQ2hhdENvbmZpZ3VyYXRvciB9IGZyb20gXCIuL1NoYXJlZC9GcmFtZXdvcmsvQ2hhdENvbmZpZ3VyYXRvclwiO1xuZXhwb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gXCIuL1NoYXJlZC9GcmFtZXdvcmsvRGF0YVNvdXJjZVwiO1xuZXhwb3J0IHsgRGF0YVNvdXJjZURlY29yYXRvciB9IGZyb20gXCIuL1NoYXJlZC9GcmFtZXdvcmsvRGF0YVNvdXJjZURlY29yYXRvclwiO1xuZXhwb3J0IHsgRXh0ZW5zaW9uc0RhdGFTb3VyY2UgfSBmcm9tIFwiLi9TaGFyZWQvRnJhbWV3b3JrL0V4dGVuc2lvbkRhdGFTb3VyY2VcIjtcbmV4cG9ydCB7IEFJRXh0ZW5zaW9uRGF0YVNvdXJjZSB9IGZyb20gXCIuL1NoYXJlZC9GcmFtZXdvcmsvQUlFeHRlbnNpb25EYXRhU291cmNlXCI7XG5leHBvcnQgeyBNZXNzYWdlVXRpbHMgfSBmcm9tIFwiLi9TaGFyZWQvVXRpbHMvTWVzc2FnZVV0aWxzXCI7XG5leHBvcnQgeyBzaG91bGRTaG93Q3VzdG9tTWltZVR5cGVzIH0gZnJvbSBcIi4vU2hhcmVkL1V0aWxzL1V0aWxpdHlGdW5jdGlvbnNcIjtcbmV4cG9ydCB7IENvbWV0Q2hhdFRoZW1lU2VydmljZSB9IGZyb20gXCIuL0NvbWV0Q2hhdFRoZW1lLnNlcnZpY2VcIjtcblxuLy8gZXh0ZW5zaW9uc1xuZXhwb3J0IHsgQ29sbGFib3JhdGl2ZURvY3VtZW50RXh0ZW5zaW9uIH0gZnJvbSBcIi4vRXh0ZW5zaW9ucy9Db2xsYWJvcmF0aXZlRG9jdW1lbnQvQ29sbGFib3JhdGl2ZURvY3VtZW50RXh0ZW5zaW9uXCI7XG5leHBvcnQgeyBDb2xsYWJvcmF0aXZlRG9jdW1lbnRFeHRlbnNpb25EZWNvcmF0b3IgfSBmcm9tIFwiLi9FeHRlbnNpb25zL0NvbGxhYm9yYXRpdmVEb2N1bWVudC9Db2xsYWJvcmF0aXZlRG9jdW1lbnRFeHRlbnNpb25EZWNvcmF0b3JcIjtcbmV4cG9ydCB7IENvbGxhYm9yYXRpdmVXaGl0ZUJvYXJkRXh0ZW5zaW9uIH0gZnJvbSBcIi4vRXh0ZW5zaW9ucy9Db2xsYWJvcmF0aXZlV2hpdGVib2FyZC9Db2xsYWJvcmF0aXZlV2hpdGVib2FyZEV4dGVuc2lvblwiO1xuZXhwb3J0IHsgQ29sbGFib3JhdGl2ZVdoaXRlQm9hcmRFeHRlbnNpb25EZWNvcmF0b3IgfSBmcm9tIFwiLi9FeHRlbnNpb25zL0NvbGxhYm9yYXRpdmVXaGl0ZWJvYXJkL0NvbGxhYm9yYXRpdmVXaGl0ZWJvYXJkRXh0ZW5zaW9uRGVjb3JhdG9yXCI7XG5leHBvcnQgeyBJbWFnZU1vZGVyYXRpb25FeHRlbnNpb24gfSBmcm9tIFwiLi9FeHRlbnNpb25zL0ltYWdlTW9kZXJhdGlvbi9JbWFnZU1vZGVyYXRpb25FeHRlbnNpb25cIjtcbmV4cG9ydCB7IEltYWdlTW9kZXJhdGlvbkV4dGVuc2lvbkRlY29yYXRvciB9IGZyb20gXCIuL0V4dGVuc2lvbnMvSW1hZ2VNb2RlcmF0aW9uL0ltYWdlTW9kZXJhdGlvbkV4dGVuc2lvbkRlY29yYXRvclwiO1xuZXhwb3J0IHsgTGlua1ByZXZpZXdFeHRlbnNpb24gfSBmcm9tIFwiLi9FeHRlbnNpb25zL0xpbmtQcmV2aWV3RXh0ZW5zaW9uL0xpbmtQcmV2aWV3RXh0ZW5zaW9uXCI7XG5leHBvcnQgeyBMaW5rUHJldmlld0V4dGVuc2lvbkRlY29yYXRvciB9IGZyb20gXCIuL0V4dGVuc2lvbnMvTGlua1ByZXZpZXdFeHRlbnNpb24vTGlua1ByZXZpZXdFeHRlbnNpb25EZWNvcmF0b3JcIjtcbmV4cG9ydCB7IE1lc3NhZ2VUcmFuc2xhdGlvbkV4dGVuc2lvbiB9IGZyb20gXCIuL0V4dGVuc2lvbnMvTWVzc2FnZVRyYW5zbGF0aW9uL01lc3NhZ2VUcmFuc2xhdGlvbkV4dGVuc2lvblwiO1xuZXhwb3J0IHsgTWVzc2FnZVRyYW5zbGF0aW9uRXh0ZW5zaW9uRGVjb3JhdG9yIH0gZnJvbSBcIi4vRXh0ZW5zaW9ucy9NZXNzYWdlVHJhbnNsYXRpb24vTWVzc2FnZVRyYW5zbGF0aW9uRXh0ZW5zaW9uRGVjb3JhdG9yXCI7XG5leHBvcnQgeyBQb2xsc0V4dGVuc2lvbiB9IGZyb20gXCIuL0V4dGVuc2lvbnMvUG9sbHNFeHRlbnNpb24vUG9sbHNFeHRlbnNpb25cIjtcbmV4cG9ydCB7IFBvbGxzRXh0ZW5zaW9uRGVjb3JhdG9yIH0gZnJvbSBcIi4vRXh0ZW5zaW9ucy9Qb2xsc0V4dGVuc2lvbi9Qb2xsc0V4dGVuc2lvbkRlY29yYXRvclwiO1xuZXhwb3J0IHsgU21hcnRSZXBseUV4dGVuc2lvbiB9IGZyb20gXCIuL0V4dGVuc2lvbnMvU21hcnRSZXBsaWVzL1NtYXJ0UmVwbGllc0V4dGVuc2lvblwiO1xuZXhwb3J0IHsgU21hcnRSZXBseUV4dGVuc2lvbkRlY29yYXRvciB9IGZyb20gXCIuL0V4dGVuc2lvbnMvU21hcnRSZXBsaWVzL1NtYXJ0UmVwbGllc0V4dGVuc2lvbkRlY29yYXRvclwiO1xuZXhwb3J0IHsgU3RpY2tlcnNFeHRlbnNpb24gfSBmcm9tIFwiLi9FeHRlbnNpb25zL1N0aWNrZXJzL1N0aWNrZXJzRXh0ZW5zaW9uXCI7XG5leHBvcnQgeyBTdGlja2Vyc0V4dGVuc2lvbkRlY29yYXRvciB9IGZyb20gXCIuL0V4dGVuc2lvbnMvU3RpY2tlcnMvU3RpY2tlcnNFeHRlbnNpb25EZWNvcmF0b3JcIjtcbmV4cG9ydCB7IFRleHRNb2RlcmF0b3JFeHRlbnNpb24gfSBmcm9tIFwiLi9FeHRlbnNpb25zL1RleHRNb2RlcmF0b3IvVGV4dE1vZGVyYXRvckV4dGVuc2lvblwiO1xuZXhwb3J0IHsgVGV4dE1vZGVyYXRvckV4dGVuc2lvbkRlY29yYXRvciB9IGZyb20gXCIuL0V4dGVuc2lvbnMvVGV4dE1vZGVyYXRvci9UZXh0TW9kZXJhdG9yRXh0ZW5zaW9uRGVjb3JhdG9yXCI7XG5leHBvcnQgeyBUaHVtYm5haWxHZW5lcmF0aW9uRXh0ZW5zaW9uIH0gZnJvbSBcIi4vRXh0ZW5zaW9ucy9UaHVtYm5haWxHZW5lcmF0aW9uL1RodW1ibmFpbEdlbmVyYXRpb25FeHRlbnNpb25cIjtcbmV4cG9ydCB7IFRodW1ibmFpbEdlbmVyYXRpb25FeHRlbnNpb25EZWNvcmF0b3IgfSBmcm9tIFwiLi9FeHRlbnNpb25zL1RodW1ibmFpbEdlbmVyYXRpb24vVGh1bWJuYWlsR2VuZXJhdGlvbkV4dGVuc2lvbkRlY29yYXRvclwiO1xuXG4vLyBjYWxscyBjb21wb25lbnRcbmV4cG9ydCB7IENhbGxpbmdFeHRlbnNpb24gfSBmcm9tIFwiLi9DYWxscy9DYWxsaW5nRXh0ZW5zaW9uXCI7XG5leHBvcnQgeyBDYWxsaW5nRXh0ZW5zaW9uRGVjb3JhdG9yIH0gZnJvbSBcIi4vQ2FsbHMvQ2FsbGluZ0V4dGVuc2lvbkRlY29yYXRvclwiO1xuZXhwb3J0IHsgQ29tZXRDaGF0Q2FsbEJ1dHRvbnMgfSBmcm9tIFwiLi9DYWxscy9Db21ldENoYXRDYWxsQnV0dG9ucy9jb21ldGNoYXQtY2FsbC1idXR0b25zLm1vZHVsZVwiO1xuZXhwb3J0IHsgQ29tZXRDaGF0Q2FsbEJ1dHRvbnNDb21wb25lbnQgfSBmcm9tIFwiLi9DYWxscy9Db21ldENoYXRDYWxsQnV0dG9ucy9jb21ldGNoYXQtY2FsbC1idXR0b25zL2NvbWV0Y2hhdC1jYWxsLWJ1dHRvbnMuY29tcG9uZW50XCI7XG5leHBvcnQgeyBDb21ldENoYXRJbmNvbWluZ0NhbGwgfSBmcm9tIFwiLi9DYWxscy9Db21ldENoYXRJbmNvbWluZ0NhbGwvY29tZXRjaGF0LWluY29taW5nLWNhbGwubW9kdWxlXCI7XG5leHBvcnQgeyBDb21ldENoYXRJbmNvbWluZ0NhbGxDb21wb25lbnQgfSBmcm9tIFwiLi9DYWxscy9Db21ldENoYXRJbmNvbWluZ0NhbGwvY29tZXRjaGF0LWluY29taW5nLWNhbGwvY29tZXRjaGF0LWluY29taW5nLWNhbGwuY29tcG9uZW50XCI7XG5leHBvcnQgeyBDb21ldENoYXRPbmdvaW5nQ2FsbCB9IGZyb20gXCIuL0NhbGxzL0NvbWV0Q2hhdE9uZ29pbmdDYWxsL2NvbWV0Y2hhdC1vbmdvaW5nLWNhbGwubW9kdWxlXCI7XG5leHBvcnQgeyBDb21ldENoYXRPbmdvaW5nQ2FsbENvbXBvbmVudCB9IGZyb20gXCIuL0NhbGxzL0NvbWV0Q2hhdE9uZ29pbmdDYWxsL2NvbWV0Y2hhdC1vbmdvaW5nLWNhbGwvY29tZXRjaGF0LW9uZ29pbmctY2FsbC5jb21wb25lbnRcIjtcbmV4cG9ydCB7IENvbWV0Q2hhdE91dGdvaW5nQ2FsbCB9IGZyb20gXCIuL0NhbGxzL0NvbWV0Q2hhdE91dGdvaW5nQ2FsbC9jb21ldGNoYXQtb3V0Z29pbmctY2FsbC5tb2R1bGVcIjtcbmV4cG9ydCB7IENvbWV0Q2hhdE91dGdvaW5nQ2FsbENvbXBvbmVudCB9IGZyb20gXCIuL0NhbGxzL0NvbWV0Q2hhdE91dGdvaW5nQ2FsbC9jb21ldGNoYXQtb3V0Z29pbmctY2FsbC9jb21ldGNoYXQtb3V0Z29pbmctY2FsbC5jb21wb25lbnRcIjtcblxuLy8gY2hhdHVpa2l0XG5leHBvcnQgeyBDb21ldENoYXRBZGRNZW1iZXJzQ29tcG9uZW50IH0gZnJvbSBcIi4vQ29tZXRDaGF0QWRkTWVtYmVycy9jb21ldGNoYXQtYWRkLW1lbWJlcnMvY29tZXRjaGF0LWFkZC1tZW1iZXJzLmNvbXBvbmVudFwiO1xuZXhwb3J0IHsgQ29tZXRDaGF0QWRkTWVtYmVycyB9IGZyb20gXCIuL0NvbWV0Q2hhdEFkZE1lbWJlcnMvY29tZXRjaGF0LWFkZC1tZW1iZXJzLm1vZHVsZVwiO1xuZXhwb3J0IHsgQ29tZXRDaGF0QmFubmVkTWVtYmVycyB9IGZyb20gXCIuL0NvbWV0Q2hhdEJhbm5lZE1lbWJlcnMvY29tZXRjaGF0LWJhbm5lZC1tZW1iZXJzLm1vZHVsZVwiO1xuZXhwb3J0IHsgQ29tZXRDaGF0QmFubmVkTWVtYmVyc0NvbXBvbmVudCB9IGZyb20gXCIuL0NvbWV0Q2hhdEJhbm5lZE1lbWJlcnMvY29tZXRjaGF0LWJhbm5lZC1tZW1iZXJzL2NvbWV0Y2hhdC1iYW5uZWQtbWVtYmVycy5jb21wb25lbnRcIjtcbmV4cG9ydCB7IENvbWV0Q2hhdENvbnZlcnNhdGlvbnMgfSBmcm9tIFwiLi9Db21ldENoYXRDb252ZXJzYXRpb25zL2NvbWV0Y2hhdC1jb252ZXJzYXRpb25zLm1vZHVsZVwiO1xuZXhwb3J0IHsgQ29tZXRDaGF0Q29udmVyc2F0aW9uc0NvbXBvbmVudCB9IGZyb20gXCIuL0NvbWV0Q2hhdENvbnZlcnNhdGlvbnMvY29tZXRjaGF0LWNvbnZlcnNhdGlvbnMvY29tZXRjaGF0LWNvbnZlcnNhdGlvbnMuY29tcG9uZW50XCI7XG5leHBvcnQgeyBDb21ldENoYXRDb252ZXJzYXRpb25zV2l0aE1lc3NhZ2VzIH0gZnJvbSBcIi4vQ29tZXRDaGF0Q29udmVyc2F0aW9uc1dpdGhNZXNzYWdlcy9jb21ldGNoYXQtY29udmVyc2F0aW9ucy13aXRoLW1lc3NhZ2VzLm1vZHVsZVwiO1xuZXhwb3J0IHsgQ29tZXRDaGF0Q29udmVyc2F0aW9uc1dpdGhNZXNzYWdlc0NvbXBvbmVudCB9IGZyb20gXCIuL0NvbWV0Q2hhdENvbnZlcnNhdGlvbnNXaXRoTWVzc2FnZXMvY29tZXRjaGF0LWNvbnZlcnNhdGlvbnMtd2l0aC1tZXNzYWdlcy9jb21ldGNoYXQtY29udmVyc2F0aW9ucy13aXRoLW1lc3NhZ2VzLmNvbXBvbmVudFwiO1xuZXhwb3J0IHsgQ29tZXRDaGF0RGV0YWlscyB9IGZyb20gXCIuL0NvbWV0Q2hhdERldGFpbHMvY29tZXRjaGF0LWRldGFpbHMubW9kdWxlXCI7XG5leHBvcnQgeyBDb21ldENoYXREZXRhaWxzQ29tcG9uZW50IH0gZnJvbSBcIi4vQ29tZXRDaGF0RGV0YWlscy9jb21ldGNoYXQtZGV0YWlscy9jb21ldGNoYXQtZGV0YWlscy5jb21wb25lbnRcIjtcbmV4cG9ydCB7IENvbWV0Q2hhdEdyb3VwTWVtYmVycyB9IGZyb20gXCIuL0NvbWV0Q2hhdEdyb3VwTWVtYmVycy9jb21ldGNoYXQtZ3JvdXAtbWVtYmVycy5tb2R1bGVcIjtcbmV4cG9ydCB7IENvbWV0Q2hhdEdyb3VwTWVtYmVyc0NvbXBvbmVudCB9IGZyb20gXCIuL0NvbWV0Q2hhdEdyb3VwTWVtYmVycy9jb21ldGNoYXQtZ3JvdXAtbWVtYmVycy9jb21ldGNoYXQtZ3JvdXAtbWVtYmVycy5jb21wb25lbnRcIjtcbmV4cG9ydCB7IENvbWV0Q2hhdEdyb3VwcyB9IGZyb20gXCIuL0NvbWV0Q2hhdEdyb3Vwcy9jb21ldGNoYXQtZ3JvdXBzLm1vZHVsZVwiO1xuZXhwb3J0IHsgQ29tZXRDaGF0R3JvdXBzQ29tcG9uZW50IH0gZnJvbSBcIi4vQ29tZXRDaGF0R3JvdXBzL2NvbWV0Y2hhdC1ncm91cHMvY29tZXRjaGF0LWdyb3Vwcy5jb21wb25lbnRcIjtcbmV4cG9ydCB7IENvbWV0Q2hhdEdyb3Vwc1dpdGhNZXNzYWdlcyB9IGZyb20gXCIuL0NvbWV0Q2hhdEdyb3Vwc1dpdGhNZXNzYWdlcy9jb21ldGNoYXQtZ3JvdXBzLXdpdGgtbWVzc2FnZXMubW9kdWxlXCI7XG5leHBvcnQgeyBDb21ldENoYXRHcm91cHNXaXRoTWVzc2FnZXNDb21wb25lbnQgfSBmcm9tIFwiLi9Db21ldENoYXRHcm91cHNXaXRoTWVzc2FnZXMvY29tZXRjaGF0LWdyb3Vwcy13aXRoLW1lc3NhZ2VzL2NvbWV0Y2hhdC1ncm91cHMtd2l0aC1tZXNzYWdlcy5jb21wb25lbnRcIjtcbmV4cG9ydCB7IENvbWV0Q2hhdExpc3QgfSBmcm9tIFwiLi9Db21ldENoYXRMaXN0L2NvbWV0Y2hhdC1saXN0Lm1vZHVsZVwiO1xuZXhwb3J0IHsgQ29tZXRjaGF0TGlzdENvbXBvbmVudCB9IGZyb20gXCIuL0NvbWV0Q2hhdExpc3QvY29tZXRjaGF0LWxpc3QuY29tcG9uZW50XCI7XG5leHBvcnQgeyBDb21ldENoYXRNZXNzYWdlQnViYmxlIH0gZnJvbSBcIi4vQ29tZXRDaGF0TWVzc2FnZUJ1YmJsZS9jb21ldGNoYXQtbWVzc2FnZS1idWJibGUubW9kdWxlXCI7XG5leHBvcnQgeyBDb21ldENoYXRNZXNzYWdlQnViYmxlQ29tcG9uZW50IH0gZnJvbSBcIi4vQ29tZXRDaGF0TWVzc2FnZUJ1YmJsZS9jb21ldGNoYXQtbWVzc2FnZS1idWJibGUvY29tZXRjaGF0LW1lc3NhZ2UtYnViYmxlLmNvbXBvbmVudFwiO1xuZXhwb3J0IHsgQ29tZXRDaGF0TWVzc2FnZUNvbXBvc2VyIH0gZnJvbSBcIi4vQ29tZXRDaGF0TWVzc2FnZUNvbXBvc2VyL2NvbWV0Y2hhdC1tZXNzYWdlLWNvbXBvc2VyLm1vZHVsZVwiO1xuZXhwb3J0IHsgQ29tZXRDaGF0TWVzc2FnZUNvbXBvc2VyQ29tcG9uZW50IH0gZnJvbSBcIi4vQ29tZXRDaGF0TWVzc2FnZUNvbXBvc2VyL2NvbWV0Y2hhdC1tZXNzYWdlLWNvbXBvc2VyL2NvbWV0Y2hhdC1tZXNzYWdlLWNvbXBvc2VyLmNvbXBvbmVudFwiO1xuZXhwb3J0IHsgQ29tZXRDaGF0TWVzc2FnZUhlYWRlciB9IGZyb20gXCIuL0NvbWV0Q2hhdE1lc3NhZ2VIZWFkZXIvY29tZXRjaGF0LW1lc3NhZ2UtaGVhZGVyLm1vZHVsZVwiO1xuZXhwb3J0IHsgQ29tZXRDaGF0TWVzc2FnZUhlYWRlckNvbXBvbmVudCB9IGZyb20gXCIuL0NvbWV0Q2hhdE1lc3NhZ2VIZWFkZXIvY29tZXRjaGF0LW1lc3NhZ2UtaGVhZGVyL2NvbWV0Y2hhdC1tZXNzYWdlLWhlYWRlci5jb21wb25lbnRcIjtcbmV4cG9ydCB7IENvbWV0Q2hhdE1lc3NhZ2VMaXN0IH0gZnJvbSBcIi4vQ29tZXRDaGF0TWVzc2FnZUxpc3QvY29tZXRjaGF0LW1lc3NhZ2UtbGlzdC5tb2R1bGVcIjtcbmV4cG9ydCB7IENvbWV0Q2hhdE1lc3NhZ2VMaXN0Q29tcG9uZW50IH0gZnJvbSBcIi4vQ29tZXRDaGF0TWVzc2FnZUxpc3QvY29tZXRjaGF0LW1lc3NhZ2UtbGlzdC9jb21ldGNoYXQtbWVzc2FnZS1saXN0LmNvbXBvbmVudFwiO1xuZXhwb3J0IHsgQ29tZXRDaGF0TWVzc2FnZXMgfSBmcm9tIFwiLi9Db21ldENoYXRNZXNzYWdlcy9jb21ldGNoYXQtbWVzc2FnZXMubW9kdWxlXCI7XG5leHBvcnQgeyBDb21ldENoYXRNZXNzYWdlc0NvbXBvbmVudCB9IGZyb20gXCIuL0NvbWV0Q2hhdE1lc3NhZ2VzL2NvbWV0Y2hhdC1tZXNzYWdlcy9jb21ldGNoYXQtbWVzc2FnZXMuY29tcG9uZW50XCI7XG5leHBvcnQgeyBDb21ldENoYXRUaHJlYWRlZE1lc3NhZ2VzIH0gZnJvbSBcIi4vQ29tZXRDaGF0VGhyZWFkZWRNZXNzYWdlcy9jb21ldGNoYXQtdGhyZWFkZWQtbWVzc2FnZXMubW9kdWxlXCI7XG5leHBvcnQgeyBDb21ldENoYXRUaHJlYWRlZE1lc3NhZ2VzQ29tcG9uZW50IH0gZnJvbSBcIi4vQ29tZXRDaGF0VGhyZWFkZWRNZXNzYWdlcy9jb21ldGNoYXQtdGhyZWFkZWQtbWVzc2FnZXMvY29tZXRjaGF0LXRocmVhZGVkLW1lc3NhZ2VzLmNvbXBvbmVudFwiO1xuZXhwb3J0IHsgQ29tZXRDaGF0VHJhbnNmZXJPd25lcnNoaXAgfSBmcm9tIFwiLi9Db21ldENoYXRUcmFuc2Zlck93bmVyc2hpcC9jb21ldGNoYXQtdHJhbnNmZXItb3duZXJzaGlwLm1vZHVsZVwiO1xuZXhwb3J0IHsgQ29tZXRDaGF0VHJhbnNmZXJPd25lcnNoaXBDb21wb25lbnQgfSBmcm9tIFwiLi9Db21ldENoYXRUcmFuc2Zlck93bmVyc2hpcC9jb21ldGNoYXQtdHJhbnNmZXItb3duZXJzaGlwL2NvbWV0Y2hhdC10cmFuc2Zlci1vd25lcnNoaXAuY29tcG9uZW50XCI7XG5leHBvcnQgeyBDb21ldENoYXRVc2Vyc0NvbXBvbmVudCB9IGZyb20gXCIuL0NvbWV0Q2hhdFVzZXJzL2NvbWV0Y2hhdC11c2Vycy9jb21ldGNoYXQtdXNlcnMuY29tcG9uZW50XCI7XG5leHBvcnQgeyBDb21ldENoYXRVc2VycyB9IGZyb20gXCIuL0NvbWV0Q2hhdFVzZXJzL2NvbWV0Y2hhdC11c2Vycy5tb2R1bGVcIjtcbmV4cG9ydCB7IENvbWV0Q2hhdFVzZXJzV2l0aE1lc3NhZ2VzQ29tcG9uZW50IH0gZnJvbSBcIi4vQ29tZXRDaGF0VXNlcnNXaXRoTWVzc2FnZXMvY29tZXRjaGF0LXVzZXJzLXdpdGgtbWVzc2FnZXMvY29tZXRjaGF0LXVzZXJzLXdpdGgtbWVzc2FnZXMuY29tcG9uZW50XCI7XG5leHBvcnQgeyBDb21ldENoYXRVc2Vyc1dpdGhNZXNzYWdlcyB9IGZyb20gXCIuL0NvbWV0Q2hhdFVzZXJzV2l0aE1lc3NhZ2VzL2NvbWV0Y2hhdC11c2Vycy13aXRoLW1lc3NhZ2VzLm1vZHVsZVwiO1xuZXhwb3J0IHsgQ29tZXRDaGF0VGFic0NvbXBvbmVudCB9IGZyb20gXCIuL1NoYXJlZC9WaWV3cy9Db21ldENoYXRUYWJzL2NvbWV0Y2hhdC10YWJzL2NvbWV0Y2hhdC10YWJzLmNvbXBvbmVudFwiO1xuZXhwb3J0IHsgQ29tZXRDaGF0VGFicyB9IGZyb20gXCIuL1NoYXJlZC9WaWV3cy9Db21ldENoYXRUYWJzL2NvbWV0Y2hhdC10YWJzLm1vZHVsZVwiO1xuZXhwb3J0IHsgQ29tZXRDaGF0Q29udGFjdHMgfSBmcm9tIFwiLi9Db21ldENoYXRDb250YWN0cy9jb21ldGNoYXQtY29udGFjdHMubW9kdWxlXCI7XG5leHBvcnQgeyBDb21ldENoYXRDb250YWN0c0NvbXBvbmVudCB9IGZyb20gXCIuL0NvbWV0Q2hhdENvbnRhY3RzL2NvbWV0Y2hhdC1jb250YWN0cy9jb21ldGNoYXQtY29udGFjdHMuY29tcG9uZW50XCI7XG5leHBvcnQgeyBDb21ldENoYXRNZXNzYWdlSW5mb3JtYXRpb24gfSBmcm9tIFwiLi9Db21ldENoYXRNZXNzYWdlSW5mb3JtYXRpb24vY29tZXRjaGF0LW1lc3NhZ2UtaW5mb3JtYXRpb24ubW9kdWxlXCI7XG5leHBvcnQgeyBDb21ldENoYXRNZXNzYWdlSW5mb3JtYXRpb25Db21wb25lbnQgfSBmcm9tIFwiLi9Db21ldENoYXRNZXNzYWdlSW5mb3JtYXRpb24vY29tZXRjaGF0LW1lc3NhZ2UtaW5mb3JtYXRpb24vY29tZXRjaGF0LW1lc3NhZ2UtaW5mb3JtYXRpb24uY29tcG9uZW50XCI7XG5cbmV4cG9ydCB7IENvbWV0Q2hhdENhbGxMb2dzIH0gZnJvbSBcIi4vQ2FsbHMvQ29tZXRDaGF0Q2FsbExvZ3MvY29tZXRjaGF0LWNhbGwtbG9ncy5tb2R1bGVcIjtcbmV4cG9ydCB7IENvbWV0Y2hhdENhbGxMb2dzQ29tcG9uZW50IH0gZnJvbSBcIi4vQ2FsbHMvQ29tZXRDaGF0Q2FsbExvZ3MvY29tZXRjaGF0LWNhbGwtbG9ncy9jb21ldGNoYXQtY2FsbC1sb2dzLmNvbXBvbmVudFwiO1xuZXhwb3J0IHsgQ29tZXRDaGF0Q2FsbExvZ1BhcnRpY2lwYW50cyB9IGZyb20gXCIuL0NhbGxzL0NvbWV0Q2hhdENhbGxMb2dQYXJ0aWNpcGFudHMvY29tZXRjaGF0LWNhbGwtbG9nLXBhcnRpY2lwYW50cy5tb2R1bGVcIjtcbmV4cG9ydCB7IENvbWV0Q2hhdENhbGxMb2dQYXJ0aWNpcGFudHNDb21wb25lbnQgfSBmcm9tIFwiLi9DYWxscy9Db21ldENoYXRDYWxsTG9nUGFydGljaXBhbnRzL2NvbWV0Y2hhdC1jYWxsLWxvZy1wYXJ0aWNpcGFudHMvY29tZXRjaGF0LWNhbGwtbG9nLXBhcnRpY2lwYW50cy5jb21wb25lbnRcIjtcbmV4cG9ydCB7IENvbWV0Q2hhdENhbGxMb2dSZWNvcmRpbmdzIH0gZnJvbSBcIi4vQ2FsbHMvQ29tZXRDaGF0Q2FsbExvZ1JlY29yZGluZ3MvY29tZXRjaGF0LWNhbGwtbG9nLXJlY29yZGluZ3MubW9kdWxlXCI7XG5leHBvcnQgeyBDb21ldENoYXRDYWxsTG9nUmVjb3JkaW5nc0NvbXBvbmVudCB9IGZyb20gXCIuL0NhbGxzL0NvbWV0Q2hhdENhbGxMb2dSZWNvcmRpbmdzL2NvbWV0Y2hhdC1jYWxsLWxvZy1yZWNvcmRpbmdzL2NvbWV0Y2hhdC1jYWxsLWxvZy1yZWNvcmRpbmdzLmNvbXBvbmVudFwiO1xuZXhwb3J0IHsgQ29tZXRDaGF0Q2FsbExvZ0hpc3RvcnkgfSBmcm9tIFwiLi9DYWxscy9Db21ldENoYXRDYWxsTG9nSGlzdG9yeS9jb21ldGNoYXQtY2FsbC1sb2ctaGlzdG9yeS5tb2R1bGVcIjtcbmV4cG9ydCB7IENvbWV0Q2hhdENhbGxMb2dIaXN0b3J5Q29tcG9uZW50IH0gZnJvbSBcIi4vQ2FsbHMvQ29tZXRDaGF0Q2FsbExvZ0hpc3RvcnkvY29tZXRjaGF0LWNhbGwtbG9nLWhpc3RvcnkvY29tZXRjaGF0LWNhbGwtbG9nLWhpc3RvcnkuY29tcG9uZW50XCI7XG5leHBvcnQgeyBDb21ldENoYXRDYWxsTG9nRGV0YWlscyB9IGZyb20gXCIuL0NhbGxzL0NvbWV0Q2hhdENhbGxMb2dEZXRhaWxzL2NvbWV0Y2hhdC1jYWxsLWxvZy1kZXRhaWxzLm1vZHVsZVwiO1xuZXhwb3J0IHsgQ29tZXRDaGF0Q2FsbExvZ0RldGFpbHNDb21wb25lbnQgfSBmcm9tIFwiLi9DYWxscy9Db21ldENoYXRDYWxsTG9nRGV0YWlscy9jb21ldGNoYXQtY2FsbC1sb2ctZGV0YWlscy9jb21ldGNoYXQtY2FsbC1sb2ctZGV0YWlscy5jb21wb25lbnRcIjtcbmV4cG9ydCB7IENvbWV0Q2hhdENhbGxMb2dzV2l0aERldGFpbHMgfSBmcm9tIFwiLi9DYWxscy9Db21ldENoYXRDYWxsTG9nc1dpdGhEZXRhaWxzL2NvbWV0Y2hhdC1jYWxsLWxvZ3Mtd2l0aC1kZXRhaWxzLm1vZHVsZVwiO1xuZXhwb3J0IHsgQ29tZXRDaGF0Q2FsbExvZ3NXaXRoRGV0YWlsc0NvbXBvbmVudCB9IGZyb20gXCIuL0NhbGxzL0NvbWV0Q2hhdENhbGxMb2dzV2l0aERldGFpbHMvY29tZXRjaGF0LWNhbGwtbG9ncy13aXRoLWRldGFpbHMvY29tZXRjaGF0LWNhbGwtbG9ncy13aXRoLWRldGFpbHMuY29tcG9uZW50XCI7XG5cblxuLy8gQUlcblxuZXhwb3J0IHsgQUlDb252ZXJzYXRpb25TdGFydGVyRGVjb3JhdG9yIH0gZnJvbSBcIi4vQUkvQUlDb252ZXJzYXRpb25TdGFydGVyL0FJQ29udmVyc2F0aW9uU3RhcnRlckRlY29yYXRvclwiO1xuZXhwb3J0IHsgQUlDb252ZXJzYXRpb25TdGFydGVyRXh0ZW5zaW9uIH0gZnJvbSBcIi4vQUkvQUlDb252ZXJzYXRpb25TdGFydGVyL0FJQ29udmVyc2F0aW9uU3RhcnRlclwiO1xuZXhwb3J0IHsgQUlTbWFydFJlcGxpZXNFeHRlbnNpb24gfSBmcm9tIFwiLi9BSS9BSVNtYXJ0UmVwbGllcy9BSVNtYXJ0UmVwbGllc1wiO1xuZXhwb3J0IHsgQUlTbWFydFJlcGxpZXNFeHRlbnNpb25EZWNvcmF0b3IgfSBmcm9tIFwiLi9BSS9BSVNtYXJ0UmVwbGllcy9BSVNtYXJ0UmVwbGllc0RlY29yYXRvclwiO1xuZXhwb3J0IHsgQUlDb252ZXJzYXRpb25TdW1tYXJ5RGVjb3JhdG9yIH0gZnJvbSBcIi4vQUkvQUlDb252ZXJzYXRpb25TdW1tYXJ5L0FJQ29udmVyc2F0aW9uU3VtbWFyeURlY29yYXRvclwiO1xuZXhwb3J0IHsgQUlDb252ZXJzYXRpb25TdW1tYXJ5RXh0ZW5zaW9uIH0gZnJvbSBcIi4vQUkvQUlDb252ZXJzYXRpb25TdW1tYXJ5L0FJQ29udmVyc2F0aW9uU3VtbWFyeVwiO1xuZXhwb3J0IHsgQUlBc3Npc3RCb3REZWNvcmF0b3IgfSBmcm9tIFwiLi9BSS9BSUFzc2lzdEJvdC9BSUFzc2lzdEJvdERlY29yYXRvclwiO1xuZXhwb3J0IHsgQUlBc3Npc3RCb3RFeHRlbnNpb24gfSBmcm9tIFwiLi9BSS9BSUFzc2lzdEJvdC9BSUFzc2lzdEJvdFwiO1xuZXhwb3J0IHsgQ29tZXRDaGF0VXNlck1lbWJlcldyYXBwZXJDb21wb25lbnQgfSBmcm9tIFwiLi9Db21ldENoYXRVc2VyTWVtYmVyV3JhcHBlci9jb21ldGNoYXQtdXNlci1tZW1iZXItd3JhcHBlci5jb21wb25lbnRcIjtcbmV4cG9ydCB7IENvbWV0Q2hhdFVzZXJNZW1iZXJXcmFwcGVyIH0gZnJvbSBcIi4vQ29tZXRDaGF0VXNlck1lbWJlcldyYXBwZXIvY29tZXRjaGF0LXVzZXItbWVtYmVyLXdyYXBwZXIubW9kdWxlXCI7XG4iXX0=
|