@nlabs/reaktor 0.4.1 → 0.4.3
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.
|
@@ -5,7 +5,7 @@ export declare const getConversations: (context: ApiContext, { from, to }: {
|
|
|
5
5
|
to: any;
|
|
6
6
|
}) => Promise<ConversationType[]>;
|
|
7
7
|
export declare const getDirectConversation: (context: ApiContext, fromId: string, toId: string) => Promise<ConversationType>;
|
|
8
|
-
export declare const
|
|
8
|
+
export declare const getConnectionUsers: (context: ApiContext, conversationId: string, includeAll?: boolean, isDirect?: boolean) => Promise<ConnectionType[]>;
|
|
9
9
|
export declare const getConversationUsers: (context: ApiContext, conversationId: string, includeAll?: boolean, isDirect?: boolean) => Promise<ConversationType[]>;
|
|
10
10
|
export declare const getDirectConversationOld: (context: ApiContext, userId: string) => Promise<ConversationType>;
|
|
11
11
|
export declare const getConversation: (context: ApiContext, convoId: string) => Promise<ConversationType>;
|
|
@@ -41,7 +41,7 @@ var __toModule = (module2) => {
|
|
|
41
41
|
__export(exports, {
|
|
42
42
|
addUserToConversation: () => addUserToConversation,
|
|
43
43
|
deleteUserFromConversation: () => deleteUserFromConversation,
|
|
44
|
-
|
|
44
|
+
getConnectionUsers: () => getConnectionUsers,
|
|
45
45
|
getConversation: () => getConversation,
|
|
46
46
|
getConversationUsers: () => getConversationUsers,
|
|
47
47
|
getConversations: () => getConversations,
|
|
@@ -133,7 +133,7 @@ const getDirectConversation = async (context, fromId, toId) => {
|
|
|
133
133
|
}, updateError, context).then(() => null);
|
|
134
134
|
}
|
|
135
135
|
};
|
|
136
|
-
const
|
|
136
|
+
const getConnectionUsers = (context, conversationId, includeAll = false, isDirect) => {
|
|
137
137
|
const action = "getConversationUsers";
|
|
138
138
|
const { database, session: { userId: sessionUserId } } = context;
|
|
139
139
|
const filters = ["c.userId == u._key"];
|
|
@@ -322,7 +322,7 @@ const deleteUserFromConversation = (context, convoId, userId) => {
|
|
|
322
322
|
0 && (module.exports = {
|
|
323
323
|
addUserToConversation,
|
|
324
324
|
deleteUserFromConversation,
|
|
325
|
-
|
|
325
|
+
getConnectionUsers,
|
|
326
326
|
getConversation,
|
|
327
327
|
getConversationUsers,
|
|
328
328
|
getConversations,
|
|
@@ -330,4 +330,4 @@ const deleteUserFromConversation = (context, convoId, userId) => {
|
|
|
330
330
|
getDirectConversationOld,
|
|
331
331
|
updateConversation
|
|
332
332
|
});
|
|
333
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvY29udmVyc2F0aW9ucy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTktUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7Y3JlYXRlSGFzaCwgcGFyc2VBcmFuZ29JZCwgcGFyc2VJZH0gZnJvbSAnQG5sYWJzL3V0aWxzJztcbmltcG9ydCB7YXFsfSBmcm9tICdhcmFuZ29qcyc7XG5pbXBvcnQge0FxbFF1ZXJ5fSBmcm9tICdhcmFuZ29qcy9hcWwnO1xuaW1wb3J0IHtFZGdlQ29sbGVjdGlvbn0gZnJvbSAnYXJhbmdvanMvY29sbGVjdGlvbic7XG5pbXBvcnQge0FycmF5Q3Vyc29yfSBmcm9tICdhcmFuZ29qcy9jdXJzb3InO1xuaW1wb3J0IGNsb25lRGVlcCBmcm9tICdsb2Rhc2gvY2xvbmVEZWVwJztcbmltcG9ydCBpc0VtcHR5IGZyb20gJ2xvZGFzaC9pc0VtcHR5JztcbmltcG9ydCB7QXBpQ29udGV4dH0gZnJvbSAndHlwZXMvYXV0aCc7XG5cbmltcG9ydCB7QXJhbmdvREJMaW1pdCwgQ29udmVyc2F0aW9uVHlwZSwgSW1hZ2VVcmxEYXRhLCBVc2VyfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQge2dldExpbWl0fSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQge2xvZ0Vycm9yfSBmcm9tICcuLi91dGlscy9hbmFseXRpY3MnO1xuaW1wb3J0IHtnZXRVc2VySW1hZ2VVcmx9IGZyb20gJy4vaW1hZ2VzJztcbmltcG9ydCB7Z2V0RGlzcGxheU5hbWUsIGdldFVzZXJ9IGZyb20gJy4vdXNlcnMnO1xuXG5jb25zdCBldmVudENhdGVnb3J5OiBzdHJpbmcgPSAnY29udmVyc2F0aW9ucyc7XG5cbmV4cG9ydCBjb25zdCBnZXRDb252ZXJzYXRpb25zID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIHtmcm9tLCB0b30pOiBQcm9taXNlPENvbnZlcnNhdGlvblR5cGVbXT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdnZXRDb252ZXJzYXRpb25zJztcbiAgY29uc3Qge2RhdGFiYXNlLCBzZXNzaW9uOiB7dXNlcklkOiBzZXNzaW9uSWR9fSA9IGNvbnRleHQ7XG4gIGNvbnN0IGxpbWl0OiBBcmFuZ29EQkxpbWl0ID0gZ2V0TGltaXQoZnJvbSwgdG8pO1xuICBjb25zdCBzZXNzaW9uRG9jSWQ6IHN0cmluZyA9IGB1c2Vycy8ke3Nlc3Npb25JZH1gO1xuICBjb25zdCBhcWxRcnk6IHN0cmluZyA9IGBGT1IgYywgZSBJTiAxLi4xIE9VVEJPVU5EIFwiJHtzZXNzaW9uRG9jSWR9XCIgaGFzQ29udmVyc2F0aW9uc1xuICAgICR7bGltaXQuYXFsfVxuICAgIExFVCB1c2VycyA9IChcbiAgICAgIEZPUiB1LCB1YyBJTiAxLi4xIElOQk9VTkQgYy5faWQgaGFzQ29udmVyc2F0aW9uc1xuICAgICAgRklMVEVSIHUuX2lkICE9IFwiJHtzZXNzaW9uRG9jSWR9XCJcbiAgICAgIFJFVFVSTiB1XG4gICAgKVxuICAgIFJFVFVSTiBNRVJHRShjLCB7dXNlcnM6IHVzZXJzfSlgO1xuXG4gIHJldHVybiBkYXRhYmFzZS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5hbGwoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXREaXJlY3RDb252ZXJzYXRpb24gPSBhc3luYyAoXG4gIGNvbnRleHQ6IEFwaUNvbnRleHQsXG4gIGZyb21JZDogc3RyaW5nLFxuICB0b0lkOiBzdHJpbmdcbik6IFByb21pc2U8Q29udmVyc2F0aW9uVHlwZT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdnZXREaXJlY3RDb252ZXJzYXRpb24nO1xuICBjb25zdCB7ZGF0YWJhc2V9ID0gY29udGV4dDtcblxuICB0cnkge1xuICAgIGNvbnN0IGZvcm1hdEZyb21JZDogc3RyaW5nID0gcGFyc2VJZChmcm9tSWQpO1xuICAgIGNvbnN0IGZvcm1hdFRvSWQ6IHN0cmluZyA9IHBhcnNlSWQodG9JZCk7XG4gICAgY29uc3QgdXNlcklkczogc3RyaW5nW10gPSBbZm9ybWF0RnJvbUlkLCBmb3JtYXRUb0lkXTtcbiAgICBjb25zdCBzb3J0ZWRVc2VySWRzOiBzdHJpbmdbXSA9IHVzZXJJZHMuc29ydCgoYSwgYikgPT4ge1xuICAgICAgaWYoYSA8IGIpIHtcbiAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgfVxuICAgICAgaWYoYSA+IGIpIHtcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgICB9XG4gICAgICByZXR1cm4gMDtcbiAgICB9KTtcbiAgICBjb25zdCBjb252ZXJzYXRpb25JZDogc3RyaW5nID0gY3JlYXRlSGFzaChgY29udmVyc2F0aW9ucy0ke3NvcnRlZFVzZXJJZHMuam9pbignLScpfWAsIG51bGwpO1xuICAgIGNvbnN0IHVzZXI6IFVzZXIgPSBhd2FpdCBnZXRVc2VyKGNvbnRleHQsIHt1c2VySWQ6IGZvcm1hdFRvSWR9KTtcblxuICAgIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgTEVUIGMgPSBET0NVTUVOVCgke2Bjb252ZXJzYXRpb25zLyR7Y29udmVyc2F0aW9uSWR9YH0pIFJFVFVSTiBjYDtcbiAgICBjb25zdCBjb252ZXJzYXRpb24gPSBhd2FpdCBkYXRhYmFzZS5xdWVyeShhcWxRcnkpXG4gICAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICAgIGFjdGlvbixcbiAgICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICAgIGxhYmVsOiAnZGJfZXJyb3InXG4gICAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG5cbiAgICBpZihjb252ZXJzYXRpb24pIHtcbiAgICAgIHJldHVybiB7Li4uY29udmVyc2F0aW9uLCB1c2VyczogW3VzZXJdfTtcbiAgICB9XG5cbiAgICBjb25zdCBub3c6IG51bWJlciA9IERhdGUubm93KCk7XG4gICAgY29uc3QgaW5zZXJ0ID0ge1xuICAgICAgX2tleTogY29udmVyc2F0aW9uSWQsXG4gICAgICBhZGRlZDogbm93LFxuICAgICAgaXNEaXJlY3Q6IHRydWUsXG4gICAgICBtb2RpZmllZDogbm93XG4gICAgfTtcbiAgICBjb25zdCBpbnNlcnRRdWVyeTogQXFsUXVlcnkgPSBhcWxgSU5TRVJUICR7aW5zZXJ0fSBJTiBjb252ZXJzYXRpb25zIFJFVFVSTiBORVdgO1xuICAgIGNvbnN0IHVwZGF0ZWRDb252ZXJzYXRpb24gPSBhd2FpdCBkYXRhYmFzZS5xdWVyeShpbnNlcnRRdWVyeSlcbiAgICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKTtcblxuICAgIGF3YWl0IFByb21pc2UuYWxsKHVzZXJJZHMubWFwKCh1c2VySWQpID0+IHtcbiAgICAgIGNvbnN0IGVkZ2VJZDogc3RyaW5nID0gY3JlYXRlSGFzaChgaGFzQ29udmVyc2F0aW9ucy0ke3VzZXJJZH0tJHtjb252ZXJzYXRpb25JZH1gKTtcbiAgICAgIGNvbnN0IGVkZ2U6IGFueSA9IHtcbiAgICAgICAgX2Zyb206IGB1c2Vycy8ke3VzZXJJZH1gLFxuICAgICAgICBfa2V5OiBlZGdlSWQsXG4gICAgICAgIF90bzogYGNvbnZlcnNhdGlvbnMvJHtjb252ZXJzYXRpb25JZH1gLFxuICAgICAgICBhZGRlZDogRGF0ZS5ub3coKVxuICAgICAgfTtcbiAgICAgIGNvbnN0IGluc2VydEVkZ2VRdWVyeTogQXFsUXVlcnkgPSBhcWxgSU5TRVJUICR7ZWRnZX0gSU4gaGFzQ29udmVyc2F0aW9ucyBSRVRVUk4gTkVXYDtcbiAgICAgIHJldHVybiBkYXRhYmFzZS5xdWVyeShpbnNlcnRFZGdlUXVlcnkpO1xuICAgIH0pKTtcblxuICAgIHJldHVybiB7Li4udXBkYXRlZENvbnZlcnNhdGlvbiwgdXNlcnM6IFt1c2VyXX07XG4gIH0gY2F0Y2godXBkYXRlRXJyb3IpIHtcbiAgICByZXR1cm4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIHVwZGF0ZUVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Q29ubm5lY3Rpb25Vc2VycyA9IChcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAgY29udmVyc2F0aW9uSWQ6IHN0cmluZyxcbiAgaW5jbHVkZUFsbDogYm9vbGVhbiA9IGZhbHNlLFxuICBpc0RpcmVjdD86IGJvb2xlYW5cbik6IFByb21pc2U8Q29udmVyc2F0aW9uVHlwZVtdPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldENvbnZlcnNhdGlvblVzZXJzJztcbiAgY29uc3Qge2RhdGFiYXNlLCBzZXNzaW9uOiB7dXNlcklkOiBzZXNzaW9uVXNlcklkfX0gPSBjb250ZXh0O1xuICBjb25zdCBmaWx0ZXJzOiBzdHJpbmdbXSA9IFsnYy51c2VySWQgPT0gdS5fa2V5J107XG5cbiAgaWYoIWluY2x1ZGVBbGwpIHtcbiAgICBmaWx0ZXJzLnB1c2goYHUuX2tleSAhPSAke3Nlc3Npb25Vc2VySWR9YCk7XG4gIH1cbiAgaWYoaXNEaXJlY3QpIHtcbiAgICBmaWx0ZXJzLnB1c2goYHAudmVydGljZXNbMF0uaXNEaXJlY3QgPT0gJHtpc0RpcmVjdH1gKTtcbiAgfVxuXG4gIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgRk9SIHUsIGUscCBJTiAxLi4xIElOQk9VTkQgJHtgY29udmVyc2F0aW9ucy8ke2NvbnZlcnNhdGlvbklkfWB9IGhhc0NvbnZlcnNhdGlvbnNcbiAgICBPUFRJT05TIHt2ZXJ0ZXhDb2xsZWN0aW9uczogXCJ1c2Vyc1wifVxuICAgIEZPUiBjIElOIGNvbm5lY3Rpb25zXG4gICAgRklMVEVSICR7ZmlsdGVycy5qb2luKCcgJiYgJyl9XG4gICAgUkVUVVJOIGNgO1xuXG4gIGNvbnNvbGUubG9nKHthcWxRcnl9KTtcbiAgcmV0dXJuIGRhdGFiYXNlLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLmFsbCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiAnZGJfZXJyb3InXG4gICAgfSwgZXJyb3IsIGNvbnRleHQpLnRoZW4oKCkgPT4gbnVsbCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldENvbnZlcnNhdGlvblVzZXJzID0gKFxuICBjb250ZXh0OiBBcGlDb250ZXh0LFxuICBjb252ZXJzYXRpb25JZDogc3RyaW5nLFxuICBpbmNsdWRlQWxsOiBib29sZWFuID0gZmFsc2UsXG4gIGlzRGlyZWN0PzogYm9vbGVhblxuKTogUHJvbWlzZTxDb252ZXJzYXRpb25UeXBlW10+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZ2V0Q29udmVyc2F0aW9uVXNlcnMnO1xuICBjb25zdCB7ZGF0YWJhc2UsIHNlc3Npb246IHt1c2VySWQ6IHNlc3Npb25Vc2VySWR9fSA9IGNvbnRleHQ7XG4gIGNvbnN0IGZpbHRlcnM6IHN0cmluZ1tdID0gWydjLnVzZXJJZCA9PSB1Ll9rZXknXTtcblxuICBpZighaW5jbHVkZUFsbCkge1xuICAgIGZpbHRlcnMucHVzaChgdS5fa2V5ICE9ICR7c2Vzc2lvblVzZXJJZH1gKTtcbiAgfVxuICBpZihpc0RpcmVjdCkge1xuICAgIGZpbHRlcnMucHVzaChgcC52ZXJ0aWNlc1swXS5pc0RpcmVjdCA9PSAke2lzRGlyZWN0fWApO1xuICB9XG5cbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBGT1IgdSwgZSxwIElOIDEuLjEgSU5CT1VORCAke2Bjb252ZXJzYXRpb25zLyR7Y29udmVyc2F0aW9uSWR9YH0gaGFzQ29udmVyc2F0aW9uc1xuICAgIE9QVElPTlMge3ZlcnRleENvbGxlY3Rpb25zOiBcInVzZXJzXCJ9XG4gICAgRklMVEVSICR7ZmlsdGVycy5qb2luKCcgJiYgJyl9XG4gICAgUkVUVVJOIHVgO1xuXG4gIGNvbnNvbGUubG9nKHthcWxRcnl9KTtcbiAgcmV0dXJuIGRhdGFiYXNlLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLmFsbCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiAnZGJfZXJyb3InXG4gICAgfSwgZXJyb3IsIGNvbnRleHQpLnRoZW4oKCkgPT4gbnVsbCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldERpcmVjdENvbnZlcnNhdGlvbk9sZCA9IChjb250ZXh0OiBBcGlDb250ZXh0LCB1c2VySWQ6IHN0cmluZyk6IFByb21pc2U8Q29udmVyc2F0aW9uVHlwZT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdnZXREaXJlY3RDb252ZXJzYXRpb24nO1xuICBjb25zdCB7ZGF0YWJhc2UsIHNlc3Npb246IHt1c2VySWQ6IHNlc3Npb25JZH19ID0gY29udGV4dDtcbiAgY29uc3Qgc2Vzc2lvbkRvY0lkOiBzdHJpbmcgPSBgdXNlcnMvJHtzZXNzaW9uSWR9YDtcbiAgY29uc3QgZm9ybWF0VXNlcklkOiBzdHJpbmcgPSBwYXJzZUFyYW5nb0lkKHVzZXJJZCk7XG5cbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBMRVQgZnJvbSA9IChcbiAgICAgIEZPUiBjLCBlIElOIDEuLjEgT1VUQk9VTkQgJHtzZXNzaW9uRG9jSWR9IGhhc0NvbnZlcnNhdGlvbnNcbiAgICAgIEZJTFRFUiBjLmRpcmVjdCA9PSB0cnVlXG4gICAgICBSRVRVUk4gY1xuICAgIClcbiAgICBMRVQgdG8gPSAoXG4gICAgICBGT1IgYywgZSBJTiAxLi4xIE9VVEJPVU5EICR7Zm9ybWF0VXNlcklkfSBoYXNDb252ZXJzYXRpb25zXG4gICAgICBGSUxURVIgYy5kaXJlY3QgPT0gdHJ1ZVxuICAgICAgUkVUVVJOIGNcbiAgICApXG4gICAgTEVUIGNvbnZlcnNhdGlvbiA9IEZJUlNUKElOVEVSU0VDVElPTihmcm9tLCB0bykpXG4gICAgTEVUIHVzZXJzID0gIUlTX05VTEwoY29udmVyc2F0aW9uKSAmJiAoXG4gICAgICBGT1IgZyBJTlske3Nlc3Npb25Eb2NJZH0sICR7Zm9ybWF0VXNlcklkfV1cbiAgICAgIEZPUiB1IElOIHVzZXJzXG4gICAgICBGSUxURVIgZyA9PSB1Ll9pZFxuICAgICAgUkVUVVJOIHVcbiAgICApXG4gICAgUkVUVVJOIElTX05VTEwoY29udmVyc2F0aW9uKSA/IG51bGwgOiBNRVJHRShjb252ZXJzYXRpb24sIHt1c2VyczogdXNlcnN9KWA7XG5cbiAgcmV0dXJuIGRhdGFiYXNlLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRDb252ZXJzYXRpb24gPSAoY29udGV4dDogQXBpQ29udGV4dCwgY29udm9JZDogc3RyaW5nKTogUHJvbWlzZTxDb252ZXJzYXRpb25UeXBlPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldEl0ZW0nO1xuICBjb25zdCB7ZGF0YWJhc2UsIHNlc3Npb246IHt1c2VySWQ6IHNlc3Npb25JZH19ID0gY29udGV4dDtcbiAgY29uc3Qgc2Vzc2lvbkRvY0lkOiBzdHJpbmcgPSBgdXNlcnMvJHtzZXNzaW9uSWR9YDtcbiAgY29uc3QgY29udm9Eb2NJZDogc3RyaW5nID0gYGNvbnZlcnNhdGlvbnMvJHtwYXJzZUlkKGNvbnZvSWQpfWA7XG5cbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBGT1IgYywgZSBJTiAxLi4xIE9VVEJPVU5EICR7c2Vzc2lvbkRvY0lkfSBoYXNDb252ZXJzYXRpb25zXG4gICAgRklMVEVSIGMuX2lkID09ICR7Y29udm9Eb2NJZH1cbiAgICBMRVQgdSA9IChcbiAgICAgIEZPUiBpblVzZXIsIGluRWRnZSBJTiAxLi4xIElOQk9VTkQgJHtjb252b0RvY0lkfSBoYXNDb252ZXJzYXRpb25zXG4gICAgICBSRVRVUk4gaW5Vc2VyXG4gICAgKVxuICAgIExJTUlUIDFcbiAgICBSRVRVUk4gTUVSR0UoYywge3VzZXJzOiB1fSlgO1xuXG4gIHJldHVybiBkYXRhYmFzZS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLnRoZW4oKGNvbnZlcnNhdGlvbjogQ29udmVyc2F0aW9uVHlwZSA9IHt9KSA9PiB7XG4gICAgICBpZighaXNFbXB0eShjb252ZXJzYXRpb24pKSB7XG4gICAgICAgIGNvbnZlcnNhdGlvbi51c2VycyA9IGNvbnZlcnNhdGlvbi51c2Vycy5tYXAoKHVzZXI6IGFueSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHtpbWFnZUlkLCB1c2VySWR9ID0gdXNlcjtcbiAgICAgICAgICBjb25zdCB0aHVtYlVybERhdGE6IEltYWdlVXJsRGF0YSA9IHtcbiAgICAgICAgICAgIGltYWdlSWQsXG4gICAgICAgICAgICBpc1RodW1iOiB0cnVlLFxuICAgICAgICAgICAgdXNlcklkXG4gICAgICAgICAgfTtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4udXNlcixcbiAgICAgICAgICAgIG5hbWU6IGdldERpc3BsYXlOYW1lKHVzZXIpLFxuICAgICAgICAgICAgdGh1bWI6IGdldFVzZXJJbWFnZVVybCh0aHVtYlVybERhdGEpXG4gICAgICAgICAgfTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIGNvbnZlcnNhdGlvbjtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7fTtcbiAgICB9KVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiAnZGJfZXJyb3InXG4gICAgfSwgZXJyb3IsIGNvbnRleHQpLnRoZW4oKCkgPT4gbnVsbCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IHVwZGF0ZUNvbnZlcnNhdGlvbiA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBjb252ZXJzYXRpb24pOiBQcm9taXNlPENvbnZlcnNhdGlvblR5cGU+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAndXBkYXRlQ29udmVyc2F0aW9uJztcbiAgY29uc3Qge2RhdGFiYXNlLCBzZXNzaW9uOiB7dXNlcklkOiBzZXNzaW9uSWR9fSA9IGNvbnRleHQ7XG4gIGNvbnN0IHtcbiAgICBjb252ZXJzYXRpb25JZCA9IGNyZWF0ZUhhc2goYGNvbnZlcnNhdGlvbi0ke3Nlc3Npb25JZH0gYCksXG4gICAgZGlyZWN0ID0gZmFsc2UsXG4gICAgbmFtZVxuICB9ID0gY29udmVyc2F0aW9uO1xuICBjb25zdCBmb3JtYXRDb252ZXJzYXRpb25JZDogc3RyaW5nID0gcGFyc2VJZChjb252ZXJzYXRpb25JZCk7XG4gIGNvbnN0IG5vdzogbnVtYmVyID0gRGF0ZS5ub3coKTtcbiAgY29uc3QgdXBkYXRlOiBhbnkgPSB7XG4gICAgLy8gRGlyZWN0IG1lc3NhZ2VcbiAgICBkaXJlY3QsXG4gICAgbW9kaWZpZWQ6IG5vdyxcbiAgICBuYW1lXG4gIH07XG5cbiAgY29uc3QgaW5zZXJ0OiBhbnkgPSB7XG4gICAgLi4uY2xvbmVEZWVwKHVwZGF0ZSksXG4gICAgX2tleTogZm9ybWF0Q29udmVyc2F0aW9uSWQsXG4gICAgYWRkZWQ6IG5vd1xuICB9O1xuXG4gIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgVVBTRVJUIHtfa2V5OiAke2Zvcm1hdENvbnZlcnNhdGlvbklkfSB9XG4gICAgSU5TRVJUICR7aW5zZXJ0fVxuICAgIFVQREFURSAke3VwZGF0ZX1cbiAgICBJTiBjb252ZXJzYXRpb25zIFJFVFVSTiBORVdgO1xuXG4gIHJldHVybiBkYXRhYmFzZS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLnRoZW4oKGNvbnZlcnNhdGlvbjogQ29udmVyc2F0aW9uVHlwZSA9IHt9KSA9PiBjb252ZXJzYXRpb24pXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuXG5leHBvcnQgY29uc3QgYWRkVXNlclRvQ29udmVyc2F0aW9uID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIGNvbnZvSWQ6IHN0cmluZywgdXNlcklkOiBzdHJpbmcpID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnYWRkVXNlclRvQ29udmVyc2F0aW9uJztcbiAgY29uc3Qge2RhdGFiYXNlfSA9IGNvbnRleHQ7XG4gIGNvbnN0IGZvcm1hdENvbnZvSWQ6IHN0cmluZyA9IHBhcnNlSWQoY29udm9JZCk7XG4gIGNvbnN0IGZvcm1hdFVzZXJJZDogc3RyaW5nID0gcGFyc2VJZCh1c2VySWQpO1xuICBjb25zdCBjb252b0RvY0lkOiBzdHJpbmcgPSBgY29udmVyc2F0aW9ucy8ke2Zvcm1hdENvbnZvSWR9IGA7XG4gIGNvbnN0IHVzZXJEb2NJZDogc3RyaW5nID0gYHVzZXJzLyR7Zm9ybWF0VXNlcklkfSBgO1xuXG4gIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgRk9SIGMgSU4gaGFzQ29udmVyc2F0aW9uc1xuICAgIEZJTFRFUiBjLl9mcm9tID09ICR7dXNlckRvY0lkfSAmJiBjLl90byA9PSAke2NvbnZvRG9jSWR9XG4gICAgTElNSVQgMVxuICAgIFJFVFVSTiBjYDtcblxuICByZXR1cm4gZGF0YWJhc2UucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC50aGVuKChjb252ZXJzYXRpb25FZGdlKSA9PiB7XG4gICAgICBpZighIWNvbnZlcnNhdGlvbkVkZ2UpIHtcbiAgICAgICAgcmV0dXJuIGNvbnZlcnNhdGlvbkVkZ2U7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGVkZ2VDb2xsZWN0aW9uOiBFZGdlQ29sbGVjdGlvbiA9IGRhdGFiYXNlLmNvbGxlY3Rpb24oJ2hhc0NvbnZlcnNhdGlvbnMnKTtcbiAgICAgIGNvbnN0IGVkZ2VJZDogc3RyaW5nID0gY3JlYXRlSGFzaChgY29udm8gLSAke2Zvcm1hdENvbnZvSWR9IC0ke2Zvcm1hdFVzZXJJZH0gYCk7XG5cbiAgICAgIGNvbnN0IGVkZ2U6IENvbnZlcnNhdGlvblR5cGUgPSB7XG4gICAgICAgIF9mcm9tOiB1c2VyRG9jSWQsXG4gICAgICAgIF9rZXk6IGVkZ2VJZCxcbiAgICAgICAgX3RvOiBjb252b0RvY0lkLFxuICAgICAgICBhZGRlZDogRGF0ZS5ub3coKVxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIGVkZ2VDb2xsZWN0aW9uLnNhdmUoZWRnZSwge3JldHVybk5ldzogdHJ1ZX0pLnRoZW4oKCkgPT4gZWRnZSk7XG4gICAgfSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWxldGVVc2VyRnJvbUNvbnZlcnNhdGlvbiA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBjb252b0lkOiBzdHJpbmcsIHVzZXJJZDogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2RlbGV0ZVVzZXJGcm9tQ29udmVyc2F0aW9uJztcbiAgY29uc3Qge2RhdGFiYXNlfSA9IGNvbnRleHQ7XG4gIGNvbnN0IGZvcm1hdENvbnZvSWQ6IHN0cmluZyA9IHBhcnNlSWQoY29udm9JZCk7XG4gIGNvbnN0IGZvcm1hdFVzZXJJZDogc3RyaW5nID0gcGFyc2VJZCh1c2VySWQpO1xuICBjb25zdCBjb252b0RvY0lkOiBzdHJpbmcgPSBgY29udmVyc2F0aW9ucyAvICR7Zm9ybWF0Q29udm9JZH0gYDtcbiAgY29uc3QgdXNlckRvY0lkOiBzdHJpbmcgPSBgdXNlcnMvJHtmb3JtYXRVc2VySWR9IGA7XG5cbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBGT1IgYyBJTiBoYXNDb252ZXJzYXRpb25zXG4gICAgRklMVEVSIGMuX2Zyb20gPT0gJHt1c2VyRG9jSWR9ICYmIGMuX3RvID09ICR7Y29udm9Eb2NJZH1cbiAgICBMSU1JVCAxXG4gICAgUkVNT1ZFIGMgSU4gaGFzQ29udmVyc2F0aW9uc1xuICAgIFJFVFVSTiBPTERgO1xuXG4gIHJldHVybiBkYXRhYmFzZS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJQSxtQkFBaUQ7QUFDakQsc0JBQWtCO0FBSWxCLHVCQUFzQjtBQUN0QixxQkFBb0I7QUFJcEIsb0JBQXVCO0FBQ3ZCLHVCQUF1QjtBQUN2QixvQkFBOEI7QUFDOUIsbUJBQXNDO0FBRXRDLE1BQU0sZ0JBQXdCO0FBRXZCLE1BQU0sbUJBQW1CLENBQUMsU0FBcUIsRUFBQyxNQUFNLFNBQXFDO0FBQ2hHLFFBQU0sU0FBaUI7QUFDdkIsUUFBTSxFQUFDLFVBQVUsU0FBUyxFQUFDLFFBQVEsZ0JBQWM7QUFDakQsUUFBTSxRQUF1Qiw0QkFBUyxNQUFNO0FBQzVDLFFBQU0sZUFBdUIsU0FBUztBQUN0QyxRQUFNLFNBQWlCLDhCQUE4QjtBQUFBLE1BQ2pELE1BQU07QUFBQTtBQUFBO0FBQUEseUJBR2E7QUFBQTtBQUFBO0FBQUE7QUFLdkIsU0FBTyxTQUFTLE1BQU0sUUFDbkIsS0FBSyxDQUFDLFdBQXdCLE9BQU8sT0FDckMsTUFBTSxDQUFDLFVBQWlCLCtCQUFTO0FBQUEsSUFDaEM7QUFBQSxJQUNBLFVBQVU7QUFBQSxJQUNWLE9BQU87QUFBQSxLQUNOLE9BQU8sU0FBUyxLQUFLLE1BQU07QUFBQTtBQUczQixNQUFNLHdCQUF3QixPQUNuQyxTQUNBLFFBQ0EsU0FDOEI7QUFDOUIsUUFBTSxTQUFpQjtBQUN2QixRQUFNLEVBQUMsYUFBWTtBQUVuQixNQUFJO0FBQ0YsVUFBTSxlQUF1QiwwQkFBUTtBQUNyQyxVQUFNLGFBQXFCLDBCQUFRO0FBQ25DLFVBQU0sVUFBb0IsQ0FBQyxjQUFjO0FBQ3pDLFVBQU0sZ0JBQTBCLFFBQVEsS0FBSyxDQUFDLEdBQUcsTUFBTTtBQUNyRCxVQUFHLElBQUksR0FBRztBQUNSLGVBQU87QUFBQTtBQUVULFVBQUcsSUFBSSxHQUFHO0FBQ1IsZUFBTztBQUFBO0FBRVQsYUFBTztBQUFBO0FBRVQsVUFBTSxpQkFBeUIsNkJBQVcsaUJBQWlCLGNBQWMsS0FBSyxRQUFRO0FBQ3RGLFVBQU0sT0FBYSxNQUFNLDBCQUFRLFNBQVMsRUFBQyxRQUFRO0FBRW5ELFVBQU0sU0FBbUIsdUNBQXVCLGlCQUFpQjtBQUNqRSxVQUFNLGVBQWUsTUFBTSxTQUFTLE1BQU0sUUFDdkMsS0FBSyxDQUFDLFdBQXdCLE9BQU8sUUFDckMsTUFBTSxDQUFDLFVBQWlCLCtCQUFTO0FBQUEsTUFDaEM7QUFBQSxNQUNBLFVBQVU7QUFBQSxNQUNWLE9BQU87QUFBQSxPQUNOLE9BQU8sU0FBUyxLQUFLLE1BQU07QUFFaEMsUUFBRyxjQUFjO0FBQ2YsYUFBTyxpQ0FBSSxlQUFKLEVBQWtCLE9BQU8sQ0FBQztBQUFBO0FBR25DLFVBQU0sTUFBYyxLQUFLO0FBQ3pCLFVBQU0sU0FBUztBQUFBLE1BQ2IsTUFBTTtBQUFBLE1BQ04sT0FBTztBQUFBLE1BQ1AsVUFBVTtBQUFBLE1BQ1YsVUFBVTtBQUFBO0FBRVosVUFBTSxjQUF3Qiw2QkFBYTtBQUMzQyxVQUFNLHNCQUFzQixNQUFNLFNBQVMsTUFBTSxhQUM5QyxLQUFLLENBQUMsV0FBd0IsT0FBTztBQUV4QyxVQUFNLFFBQVEsSUFBSSxRQUFRLElBQUksQ0FBQyxXQUFXO0FBQ3hDLFlBQU0sU0FBaUIsNkJBQVcsb0JBQW9CLFVBQVU7QUFDaEUsWUFBTSxPQUFZO0FBQUEsUUFDaEIsT0FBTyxTQUFTO0FBQUEsUUFDaEIsTUFBTTtBQUFBLFFBQ04sS0FBSyxpQkFBaUI7QUFBQSxRQUN0QixPQUFPLEtBQUs7QUFBQTtBQUVkLFlBQU0sa0JBQTRCLDZCQUFhO0FBQy9DLGFBQU8sU0FBUyxNQUFNO0FBQUE7QUFHeEIsV0FBTyxpQ0FBSSxzQkFBSixFQUF5QixPQUFPLENBQUM7QUFBQSxXQUNsQyxhQUFOO0FBQ0EsV0FBTywrQkFBUztBQUFBLE1BQ2Q7QUFBQSxNQUNBLFVBQVU7QUFBQSxNQUNWLE9BQU87QUFBQSxPQUNOLGFBQWEsU0FBUyxLQUFLLE1BQU07QUFBQTtBQUFBO0FBSWpDLE1BQU0sc0JBQXNCLENBQ2pDLFNBQ0EsZ0JBQ0EsYUFBc0IsT0FDdEIsYUFDZ0M7QUFDaEMsUUFBTSxTQUFpQjtBQUN2QixRQUFNLEVBQUMsVUFBVSxTQUFTLEVBQUMsUUFBUSxvQkFBa0I7QUFDckQsUUFBTSxVQUFvQixDQUFDO0FBRTNCLE1BQUcsQ0FBQyxZQUFZO0FBQ2QsWUFBUSxLQUFLLGFBQWE7QUFBQTtBQUU1QixNQUFHLFVBQVU7QUFDWCxZQUFRLEtBQUssNkJBQTZCO0FBQUE7QUFHNUMsUUFBTSxTQUFtQixpREFBaUMsaUJBQWlCO0FBQUE7QUFBQTtBQUFBLGFBR2hFLFFBQVEsS0FBSztBQUFBO0FBR3hCLFVBQVEsSUFBSSxFQUFDO0FBQ2IsU0FBTyxTQUFTLE1BQU0sUUFDbkIsS0FBSyxDQUFDLFdBQXdCLE9BQU8sT0FDckMsTUFBTSxDQUFDLFVBQWlCLCtCQUFTO0FBQUEsSUFDaEM7QUFBQSxJQUNBLFVBQVU7QUFBQSxJQUNWLE9BQU87QUFBQSxLQUNOLE9BQU8sU0FBUyxLQUFLLE1BQU07QUFBQTtBQUczQixNQUFNLHVCQUF1QixDQUNsQyxTQUNBLGdCQUNBLGFBQXNCLE9BQ3RCLGFBQ2dDO0FBQ2hDLFFBQU0sU0FBaUI7QUFDdkIsUUFBTSxFQUFDLFVBQVUsU0FBUyxFQUFDLFFBQVEsb0JBQWtCO0FBQ3JELFFBQU0sVUFBb0IsQ0FBQztBQUUzQixNQUFHLENBQUMsWUFBWTtBQUNkLFlBQVEsS0FBSyxhQUFhO0FBQUE7QUFFNUIsTUFBRyxVQUFVO0FBQ1gsWUFBUSxLQUFLLDZCQUE2QjtBQUFBO0FBRzVDLFFBQU0sU0FBbUIsaURBQWlDLGlCQUFpQjtBQUFBO0FBQUEsYUFFaEUsUUFBUSxLQUFLO0FBQUE7QUFHeEIsVUFBUSxJQUFJLEVBQUM7QUFDYixTQUFPLFNBQVMsTUFBTSxRQUNuQixLQUFLLENBQUMsV0FBd0IsT0FBTyxPQUNyQyxNQUFNLENBQUMsVUFBaUIsK0JBQVM7QUFBQSxJQUNoQztBQUFBLElBQ0EsVUFBVTtBQUFBLElBQ1YsT0FBTztBQUFBLEtBQ04sT0FBTyxTQUFTLEtBQUssTUFBTTtBQUFBO0FBRzNCLE1BQU0sMkJBQTJCLENBQUMsU0FBcUIsV0FBOEM7QUFDMUcsUUFBTSxTQUFpQjtBQUN2QixRQUFNLEVBQUMsVUFBVSxTQUFTLEVBQUMsUUFBUSxnQkFBYztBQUNqRCxRQUFNLGVBQXVCLFNBQVM7QUFDdEMsUUFBTSxlQUF1QixnQ0FBYztBQUUzQyxRQUFNLFNBQW1CO0FBQUEsa0NBQ087QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGtDQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQU1qQixpQkFBaUI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT2hDLFNBQU8sU0FBUyxNQUFNLFFBQ25CLEtBQUssQ0FBQyxXQUF3QixPQUFPLFFBQ3JDLE1BQU0sQ0FBQyxVQUFpQiwrQkFBUztBQUFBLElBQ2hDO0FBQUEsSUFDQSxVQUFVO0FBQUEsSUFDVixPQUFPO0FBQUEsS0FDTixPQUFPLFNBQVMsS0FBSyxNQUFNO0FBQUE7QUFHM0IsTUFBTSxrQkFBa0IsQ0FBQyxTQUFxQixZQUErQztBQUNsRyxRQUFNLFNBQWlCO0FBQ3ZCLFFBQU0sRUFBQyxVQUFVLFNBQVMsRUFBQyxRQUFRLGdCQUFjO0FBQ2pELFFBQU0sZUFBdUIsU0FBUztBQUN0QyxRQUFNLGFBQXFCLGlCQUFpQiwwQkFBUTtBQUVwRCxRQUFNLFNBQW1CLGdEQUFnQztBQUFBLHNCQUNyQztBQUFBO0FBQUEsMkNBRXFCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNekMsU0FBTyxTQUFTLE1BQU0sUUFDbkIsS0FBSyxDQUFDLFdBQXdCLE9BQU8sUUFDckMsS0FBSyxDQUFDLGVBQWlDLE9BQU87QUFDN0MsUUFBRyxDQUFDLDRCQUFRLGVBQWU7QUFDekIsbUJBQWEsUUFBUSxhQUFhLE1BQU0sSUFBSSxDQUFDLFNBQWM7QUFDekQsY0FBTSxFQUFDLFNBQVMsV0FBVTtBQUMxQixjQUFNLGVBQTZCO0FBQUEsVUFDakM7QUFBQSxVQUNBLFNBQVM7QUFBQSxVQUNUO0FBQUE7QUFFRixlQUFPLGlDQUNGLE9BREU7QUFBQSxVQUVMLE1BQU0saUNBQWU7QUFBQSxVQUNyQixPQUFPLG1DQUFnQjtBQUFBO0FBQUE7QUFJM0IsYUFBTztBQUFBO0FBRVQsV0FBTztBQUFBLEtBRVIsTUFBTSxDQUFDLFVBQWlCLCtCQUFTO0FBQUEsSUFDaEM7QUFBQSxJQUNBLFVBQVU7QUFBQSxJQUNWLE9BQU87QUFBQSxLQUNOLE9BQU8sU0FBUyxLQUFLLE1BQU07QUFBQTtBQUczQixNQUFNLHFCQUFxQixDQUFDLFNBQXFCLGlCQUE0QztBQUNsRyxRQUFNLFNBQWlCO0FBQ3ZCLFFBQU0sRUFBQyxVQUFVLFNBQVMsRUFBQyxRQUFRLGdCQUFjO0FBQ2pELFFBQU07QUFBQSxJQUNKLGlCQUFpQiw2QkFBVyxnQkFBZ0I7QUFBQSxJQUM1QyxTQUFTO0FBQUEsSUFDVDtBQUFBLE1BQ0U7QUFDSixRQUFNLHVCQUErQiwwQkFBUTtBQUM3QyxRQUFNLE1BQWMsS0FBSztBQUN6QixRQUFNLFNBQWM7QUFBQSxJQUVsQjtBQUFBLElBQ0EsVUFBVTtBQUFBLElBQ1Y7QUFBQTtBQUdGLFFBQU0sU0FBYyxpQ0FDZiw4QkFBVSxVQURLO0FBQUEsSUFFbEIsTUFBTTtBQUFBLElBQ04sT0FBTztBQUFBO0FBR1QsUUFBTSxTQUFtQixvQ0FBb0I7QUFBQSxhQUNsQztBQUFBLGFBQ0E7QUFBQTtBQUdYLFNBQU8sU0FBUyxNQUFNLFFBQ25CLEtBQUssQ0FBQyxXQUF3QixPQUFPLFFBQ3JDLEtBQUssQ0FBQyxnQkFBaUMsT0FBTyxlQUM5QyxNQUFNLENBQUMsVUFBaUIsK0JBQVM7QUFBQSxJQUNoQztBQUFBLElBQ0EsVUFBVTtBQUFBLElBQ1YsT0FBTztBQUFBLEtBQ04sT0FBTyxTQUFTLEtBQUssTUFBTTtBQUFBO0FBRzNCLE1BQU0sd0JBQXdCLENBQUMsU0FBcUIsU0FBaUIsV0FBbUI7QUFDN0YsUUFBTSxTQUFpQjtBQUN2QixRQUFNLEVBQUMsYUFBWTtBQUNuQixRQUFNLGdCQUF3QiwwQkFBUTtBQUN0QyxRQUFNLGVBQXVCLDBCQUFRO0FBQ3JDLFFBQU0sYUFBcUIsaUJBQWlCO0FBQzVDLFFBQU0sWUFBb0IsU0FBUztBQUVuQyxRQUFNLFNBQW1CO0FBQUEsd0JBQ0gseUJBQXlCO0FBQUE7QUFBQTtBQUkvQyxTQUFPLFNBQVMsTUFBTSxRQUNuQixLQUFLLENBQUMsV0FBd0IsT0FBTyxRQUNyQyxLQUFLLENBQUMscUJBQXFCO0FBQzFCLFFBQUcsQ0FBQyxDQUFDLGtCQUFrQjtBQUNyQixhQUFPO0FBQUE7QUFHVCxVQUFNLGlCQUFpQyxTQUFTLFdBQVc7QUFDM0QsVUFBTSxTQUFpQiw2QkFBVyxXQUFXLGtCQUFrQjtBQUUvRCxVQUFNLE9BQXlCO0FBQUEsTUFDN0IsT0FBTztBQUFBLE1BQ1AsTUFBTTtBQUFBLE1BQ04sS0FBSztBQUFBLE1BQ0wsT0FBTyxLQUFLO0FBQUE7QUFHZCxXQUFPLGVBQWUsS0FBSyxNQUFNLEVBQUMsV0FBVyxRQUFPLEtBQUssTUFBTTtBQUFBLEtBRWhFLE1BQU0sQ0FBQyxVQUFpQiwrQkFBUztBQUFBLElBQ2hDO0FBQUEsSUFDQSxVQUFVO0FBQUEsSUFDVixPQUFPO0FBQUEsS0FDTixPQUFPLFNBQVMsS0FBSyxNQUFNO0FBQUE7QUFHM0IsTUFBTSw2QkFBNkIsQ0FBQyxTQUFxQixTQUFpQixXQUFtQjtBQUNsRyxRQUFNLFNBQWlCO0FBQ3ZCLFFBQU0sRUFBQyxhQUFZO0FBQ25CLFFBQU0sZ0JBQXdCLDBCQUFRO0FBQ3RDLFFBQU0sZUFBdUIsMEJBQVE7QUFDckMsUUFBTSxhQUFxQixtQkFBbUI7QUFDOUMsUUFBTSxZQUFvQixTQUFTO0FBRW5DLFFBQU0sU0FBbUI7QUFBQSx3QkFDSCx5QkFBeUI7QUFBQTtBQUFBO0FBQUE7QUFLL0MsU0FBTyxTQUFTLE1BQU0sUUFDbkIsS0FBSyxDQUFDLFdBQXdCLE9BQU8sUUFDckMsTUFBTSxDQUFDLFVBQWlCLCtCQUFTO0FBQUEsSUFDaEM7QUFBQSxJQUNBLFVBQVU7QUFBQSxJQUNWLE9BQU87QUFBQSxLQUNOLE9BQU8sU0FBUyxLQUFLLE1BQU07QUFBQTsiLAogICJuYW1lcyI6IFtdCn0K
|
|
333
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvY29udmVyc2F0aW9ucy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTktUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7Y3JlYXRlSGFzaCwgcGFyc2VBcmFuZ29JZCwgcGFyc2VJZH0gZnJvbSAnQG5sYWJzL3V0aWxzJztcbmltcG9ydCB7YXFsfSBmcm9tICdhcmFuZ29qcyc7XG5pbXBvcnQge0FxbFF1ZXJ5fSBmcm9tICdhcmFuZ29qcy9hcWwnO1xuaW1wb3J0IHtFZGdlQ29sbGVjdGlvbn0gZnJvbSAnYXJhbmdvanMvY29sbGVjdGlvbic7XG5pbXBvcnQge0FycmF5Q3Vyc29yfSBmcm9tICdhcmFuZ29qcy9jdXJzb3InO1xuaW1wb3J0IGNsb25lRGVlcCBmcm9tICdsb2Rhc2gvY2xvbmVEZWVwJztcbmltcG9ydCBpc0VtcHR5IGZyb20gJ2xvZGFzaC9pc0VtcHR5JztcbmltcG9ydCB7QXBpQ29udGV4dH0gZnJvbSAndHlwZXMvYXV0aCc7XG5cbmltcG9ydCB7QXJhbmdvREJMaW1pdCwgQ29udmVyc2F0aW9uVHlwZSwgSW1hZ2VVcmxEYXRhLCBVc2VyfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQge2dldExpbWl0fSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQge2xvZ0Vycm9yfSBmcm9tICcuLi91dGlscy9hbmFseXRpY3MnO1xuaW1wb3J0IHtnZXRVc2VySW1hZ2VVcmx9IGZyb20gJy4vaW1hZ2VzJztcbmltcG9ydCB7Z2V0RGlzcGxheU5hbWUsIGdldFVzZXJ9IGZyb20gJy4vdXNlcnMnO1xuXG5jb25zdCBldmVudENhdGVnb3J5OiBzdHJpbmcgPSAnY29udmVyc2F0aW9ucyc7XG5cbmV4cG9ydCBjb25zdCBnZXRDb252ZXJzYXRpb25zID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIHtmcm9tLCB0b30pOiBQcm9taXNlPENvbnZlcnNhdGlvblR5cGVbXT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdnZXRDb252ZXJzYXRpb25zJztcbiAgY29uc3Qge2RhdGFiYXNlLCBzZXNzaW9uOiB7dXNlcklkOiBzZXNzaW9uSWR9fSA9IGNvbnRleHQ7XG4gIGNvbnN0IGxpbWl0OiBBcmFuZ29EQkxpbWl0ID0gZ2V0TGltaXQoZnJvbSwgdG8pO1xuICBjb25zdCBzZXNzaW9uRG9jSWQ6IHN0cmluZyA9IGB1c2Vycy8ke3Nlc3Npb25JZH1gO1xuICBjb25zdCBhcWxRcnk6IHN0cmluZyA9IGBGT1IgYywgZSBJTiAxLi4xIE9VVEJPVU5EIFwiJHtzZXNzaW9uRG9jSWR9XCIgaGFzQ29udmVyc2F0aW9uc1xuICAgICR7bGltaXQuYXFsfVxuICAgIExFVCB1c2VycyA9IChcbiAgICAgIEZPUiB1LCB1YyBJTiAxLi4xIElOQk9VTkQgYy5faWQgaGFzQ29udmVyc2F0aW9uc1xuICAgICAgRklMVEVSIHUuX2lkICE9IFwiJHtzZXNzaW9uRG9jSWR9XCJcbiAgICAgIFJFVFVSTiB1XG4gICAgKVxuICAgIFJFVFVSTiBNRVJHRShjLCB7dXNlcnM6IHVzZXJzfSlgO1xuXG4gIHJldHVybiBkYXRhYmFzZS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5hbGwoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXREaXJlY3RDb252ZXJzYXRpb24gPSBhc3luYyAoXG4gIGNvbnRleHQ6IEFwaUNvbnRleHQsXG4gIGZyb21JZDogc3RyaW5nLFxuICB0b0lkOiBzdHJpbmdcbik6IFByb21pc2U8Q29udmVyc2F0aW9uVHlwZT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdnZXREaXJlY3RDb252ZXJzYXRpb24nO1xuICBjb25zdCB7ZGF0YWJhc2V9ID0gY29udGV4dDtcblxuICB0cnkge1xuICAgIGNvbnN0IGZvcm1hdEZyb21JZDogc3RyaW5nID0gcGFyc2VJZChmcm9tSWQpO1xuICAgIGNvbnN0IGZvcm1hdFRvSWQ6IHN0cmluZyA9IHBhcnNlSWQodG9JZCk7XG4gICAgY29uc3QgdXNlcklkczogc3RyaW5nW10gPSBbZm9ybWF0RnJvbUlkLCBmb3JtYXRUb0lkXTtcbiAgICBjb25zdCBzb3J0ZWRVc2VySWRzOiBzdHJpbmdbXSA9IHVzZXJJZHMuc29ydCgoYSwgYikgPT4ge1xuICAgICAgaWYoYSA8IGIpIHtcbiAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgfVxuICAgICAgaWYoYSA+IGIpIHtcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgICB9XG4gICAgICByZXR1cm4gMDtcbiAgICB9KTtcbiAgICBjb25zdCBjb252ZXJzYXRpb25JZDogc3RyaW5nID0gY3JlYXRlSGFzaChgY29udmVyc2F0aW9ucy0ke3NvcnRlZFVzZXJJZHMuam9pbignLScpfWAsIG51bGwpO1xuICAgIGNvbnN0IHVzZXI6IFVzZXIgPSBhd2FpdCBnZXRVc2VyKGNvbnRleHQsIHt1c2VySWQ6IGZvcm1hdFRvSWR9KTtcblxuICAgIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgTEVUIGMgPSBET0NVTUVOVCgke2Bjb252ZXJzYXRpb25zLyR7Y29udmVyc2F0aW9uSWR9YH0pIFJFVFVSTiBjYDtcbiAgICBjb25zdCBjb252ZXJzYXRpb24gPSBhd2FpdCBkYXRhYmFzZS5xdWVyeShhcWxRcnkpXG4gICAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICAgIGFjdGlvbixcbiAgICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICAgIGxhYmVsOiAnZGJfZXJyb3InXG4gICAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG5cbiAgICBpZihjb252ZXJzYXRpb24pIHtcbiAgICAgIHJldHVybiB7Li4uY29udmVyc2F0aW9uLCB1c2VyczogW3VzZXJdfTtcbiAgICB9XG5cbiAgICBjb25zdCBub3c6IG51bWJlciA9IERhdGUubm93KCk7XG4gICAgY29uc3QgaW5zZXJ0ID0ge1xuICAgICAgX2tleTogY29udmVyc2F0aW9uSWQsXG4gICAgICBhZGRlZDogbm93LFxuICAgICAgaXNEaXJlY3Q6IHRydWUsXG4gICAgICBtb2RpZmllZDogbm93XG4gICAgfTtcbiAgICBjb25zdCBpbnNlcnRRdWVyeTogQXFsUXVlcnkgPSBhcWxgSU5TRVJUICR7aW5zZXJ0fSBJTiBjb252ZXJzYXRpb25zIFJFVFVSTiBORVdgO1xuICAgIGNvbnN0IHVwZGF0ZWRDb252ZXJzYXRpb24gPSBhd2FpdCBkYXRhYmFzZS5xdWVyeShpbnNlcnRRdWVyeSlcbiAgICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKTtcblxuICAgIGF3YWl0IFByb21pc2UuYWxsKHVzZXJJZHMubWFwKCh1c2VySWQpID0+IHtcbiAgICAgIGNvbnN0IGVkZ2VJZDogc3RyaW5nID0gY3JlYXRlSGFzaChgaGFzQ29udmVyc2F0aW9ucy0ke3VzZXJJZH0tJHtjb252ZXJzYXRpb25JZH1gKTtcbiAgICAgIGNvbnN0IGVkZ2U6IGFueSA9IHtcbiAgICAgICAgX2Zyb206IGB1c2Vycy8ke3VzZXJJZH1gLFxuICAgICAgICBfa2V5OiBlZGdlSWQsXG4gICAgICAgIF90bzogYGNvbnZlcnNhdGlvbnMvJHtjb252ZXJzYXRpb25JZH1gLFxuICAgICAgICBhZGRlZDogRGF0ZS5ub3coKVxuICAgICAgfTtcbiAgICAgIGNvbnN0IGluc2VydEVkZ2VRdWVyeTogQXFsUXVlcnkgPSBhcWxgSU5TRVJUICR7ZWRnZX0gSU4gaGFzQ29udmVyc2F0aW9ucyBSRVRVUk4gTkVXYDtcbiAgICAgIHJldHVybiBkYXRhYmFzZS5xdWVyeShpbnNlcnRFZGdlUXVlcnkpO1xuICAgIH0pKTtcblxuICAgIHJldHVybiB7Li4udXBkYXRlZENvbnZlcnNhdGlvbiwgdXNlcnM6IFt1c2VyXX07XG4gIH0gY2F0Y2godXBkYXRlRXJyb3IpIHtcbiAgICByZXR1cm4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIHVwZGF0ZUVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Q29ubmVjdGlvblVzZXJzID0gKFxuICBjb250ZXh0OiBBcGlDb250ZXh0LFxuICBjb252ZXJzYXRpb25JZDogc3RyaW5nLFxuICBpbmNsdWRlQWxsOiBib29sZWFuID0gZmFsc2UsXG4gIGlzRGlyZWN0PzogYm9vbGVhblxuKTogUHJvbWlzZTxDb25uZWN0aW9uVHlwZVtdPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldENvbnZlcnNhdGlvblVzZXJzJztcbiAgY29uc3Qge2RhdGFiYXNlLCBzZXNzaW9uOiB7dXNlcklkOiBzZXNzaW9uVXNlcklkfX0gPSBjb250ZXh0O1xuICBjb25zdCBmaWx0ZXJzOiBzdHJpbmdbXSA9IFsnYy51c2VySWQgPT0gdS5fa2V5J107XG5cbiAgaWYoIWluY2x1ZGVBbGwpIHtcbiAgICBmaWx0ZXJzLnB1c2goYHUuX2tleSAhPSAke3Nlc3Npb25Vc2VySWR9YCk7XG4gIH1cbiAgaWYoaXNEaXJlY3QpIHtcbiAgICBmaWx0ZXJzLnB1c2goYHAudmVydGljZXNbMF0uaXNEaXJlY3QgPT0gJHtpc0RpcmVjdH1gKTtcbiAgfVxuXG4gIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgRk9SIHUsIGUscCBJTiAxLi4xIElOQk9VTkQgJHtgY29udmVyc2F0aW9ucy8ke2NvbnZlcnNhdGlvbklkfWB9IGhhc0NvbnZlcnNhdGlvbnNcbiAgICBPUFRJT05TIHt2ZXJ0ZXhDb2xsZWN0aW9uczogXCJ1c2Vyc1wifVxuICAgIEZPUiBjIElOIGNvbm5lY3Rpb25zXG4gICAgRklMVEVSICR7ZmlsdGVycy5qb2luKCcgJiYgJyl9XG4gICAgUkVUVVJOIGNgO1xuXG4gIGNvbnNvbGUubG9nKHthcWxRcnl9KTtcbiAgcmV0dXJuIGRhdGFiYXNlLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLmFsbCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiAnZGJfZXJyb3InXG4gICAgfSwgZXJyb3IsIGNvbnRleHQpLnRoZW4oKCkgPT4gbnVsbCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldENvbnZlcnNhdGlvblVzZXJzID0gKFxuICBjb250ZXh0OiBBcGlDb250ZXh0LFxuICBjb252ZXJzYXRpb25JZDogc3RyaW5nLFxuICBpbmNsdWRlQWxsOiBib29sZWFuID0gZmFsc2UsXG4gIGlzRGlyZWN0PzogYm9vbGVhblxuKTogUHJvbWlzZTxDb252ZXJzYXRpb25UeXBlW10+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZ2V0Q29udmVyc2F0aW9uVXNlcnMnO1xuICBjb25zdCB7ZGF0YWJhc2UsIHNlc3Npb246IHt1c2VySWQ6IHNlc3Npb25Vc2VySWR9fSA9IGNvbnRleHQ7XG4gIGNvbnN0IGZpbHRlcnM6IHN0cmluZ1tdID0gWydjLnVzZXJJZCA9PSB1Ll9rZXknXTtcblxuICBpZighaW5jbHVkZUFsbCkge1xuICAgIGZpbHRlcnMucHVzaChgdS5fa2V5ICE9ICR7c2Vzc2lvblVzZXJJZH1gKTtcbiAgfVxuICBpZihpc0RpcmVjdCkge1xuICAgIGZpbHRlcnMucHVzaChgcC52ZXJ0aWNlc1swXS5pc0RpcmVjdCA9PSAke2lzRGlyZWN0fWApO1xuICB9XG5cbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBGT1IgdSwgZSxwIElOIDEuLjEgSU5CT1VORCAke2Bjb252ZXJzYXRpb25zLyR7Y29udmVyc2F0aW9uSWR9YH0gaGFzQ29udmVyc2F0aW9uc1xuICAgIE9QVElPTlMge3ZlcnRleENvbGxlY3Rpb25zOiBcInVzZXJzXCJ9XG4gICAgRklMVEVSICR7ZmlsdGVycy5qb2luKCcgJiYgJyl9XG4gICAgUkVUVVJOIHVgO1xuXG4gIGNvbnNvbGUubG9nKHthcWxRcnl9KTtcbiAgcmV0dXJuIGRhdGFiYXNlLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLmFsbCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiAnZGJfZXJyb3InXG4gICAgfSwgZXJyb3IsIGNvbnRleHQpLnRoZW4oKCkgPT4gbnVsbCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldERpcmVjdENvbnZlcnNhdGlvbk9sZCA9IChjb250ZXh0OiBBcGlDb250ZXh0LCB1c2VySWQ6IHN0cmluZyk6IFByb21pc2U8Q29udmVyc2F0aW9uVHlwZT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdnZXREaXJlY3RDb252ZXJzYXRpb24nO1xuICBjb25zdCB7ZGF0YWJhc2UsIHNlc3Npb246IHt1c2VySWQ6IHNlc3Npb25JZH19ID0gY29udGV4dDtcbiAgY29uc3Qgc2Vzc2lvbkRvY0lkOiBzdHJpbmcgPSBgdXNlcnMvJHtzZXNzaW9uSWR9YDtcbiAgY29uc3QgZm9ybWF0VXNlcklkOiBzdHJpbmcgPSBwYXJzZUFyYW5nb0lkKHVzZXJJZCk7XG5cbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBMRVQgZnJvbSA9IChcbiAgICAgIEZPUiBjLCBlIElOIDEuLjEgT1VUQk9VTkQgJHtzZXNzaW9uRG9jSWR9IGhhc0NvbnZlcnNhdGlvbnNcbiAgICAgIEZJTFRFUiBjLmRpcmVjdCA9PSB0cnVlXG4gICAgICBSRVRVUk4gY1xuICAgIClcbiAgICBMRVQgdG8gPSAoXG4gICAgICBGT1IgYywgZSBJTiAxLi4xIE9VVEJPVU5EICR7Zm9ybWF0VXNlcklkfSBoYXNDb252ZXJzYXRpb25zXG4gICAgICBGSUxURVIgYy5kaXJlY3QgPT0gdHJ1ZVxuICAgICAgUkVUVVJOIGNcbiAgICApXG4gICAgTEVUIGNvbnZlcnNhdGlvbiA9IEZJUlNUKElOVEVSU0VDVElPTihmcm9tLCB0bykpXG4gICAgTEVUIHVzZXJzID0gIUlTX05VTEwoY29udmVyc2F0aW9uKSAmJiAoXG4gICAgICBGT1IgZyBJTlske3Nlc3Npb25Eb2NJZH0sICR7Zm9ybWF0VXNlcklkfV1cbiAgICAgIEZPUiB1IElOIHVzZXJzXG4gICAgICBGSUxURVIgZyA9PSB1Ll9pZFxuICAgICAgUkVUVVJOIHVcbiAgICApXG4gICAgUkVUVVJOIElTX05VTEwoY29udmVyc2F0aW9uKSA/IG51bGwgOiBNRVJHRShjb252ZXJzYXRpb24sIHt1c2VyczogdXNlcnN9KWA7XG5cbiAgcmV0dXJuIGRhdGFiYXNlLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRDb252ZXJzYXRpb24gPSAoY29udGV4dDogQXBpQ29udGV4dCwgY29udm9JZDogc3RyaW5nKTogUHJvbWlzZTxDb252ZXJzYXRpb25UeXBlPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldEl0ZW0nO1xuICBjb25zdCB7ZGF0YWJhc2UsIHNlc3Npb246IHt1c2VySWQ6IHNlc3Npb25JZH19ID0gY29udGV4dDtcbiAgY29uc3Qgc2Vzc2lvbkRvY0lkOiBzdHJpbmcgPSBgdXNlcnMvJHtzZXNzaW9uSWR9YDtcbiAgY29uc3QgY29udm9Eb2NJZDogc3RyaW5nID0gYGNvbnZlcnNhdGlvbnMvJHtwYXJzZUlkKGNvbnZvSWQpfWA7XG5cbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBGT1IgYywgZSBJTiAxLi4xIE9VVEJPVU5EICR7c2Vzc2lvbkRvY0lkfSBoYXNDb252ZXJzYXRpb25zXG4gICAgRklMVEVSIGMuX2lkID09ICR7Y29udm9Eb2NJZH1cbiAgICBMRVQgdSA9IChcbiAgICAgIEZPUiBpblVzZXIsIGluRWRnZSBJTiAxLi4xIElOQk9VTkQgJHtjb252b0RvY0lkfSBoYXNDb252ZXJzYXRpb25zXG4gICAgICBSRVRVUk4gaW5Vc2VyXG4gICAgKVxuICAgIExJTUlUIDFcbiAgICBSRVRVUk4gTUVSR0UoYywge3VzZXJzOiB1fSlgO1xuXG4gIHJldHVybiBkYXRhYmFzZS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLnRoZW4oKGNvbnZlcnNhdGlvbjogQ29udmVyc2F0aW9uVHlwZSA9IHt9KSA9PiB7XG4gICAgICBpZighaXNFbXB0eShjb252ZXJzYXRpb24pKSB7XG4gICAgICAgIGNvbnZlcnNhdGlvbi51c2VycyA9IGNvbnZlcnNhdGlvbi51c2Vycy5tYXAoKHVzZXI6IGFueSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHtpbWFnZUlkLCB1c2VySWR9ID0gdXNlcjtcbiAgICAgICAgICBjb25zdCB0aHVtYlVybERhdGE6IEltYWdlVXJsRGF0YSA9IHtcbiAgICAgICAgICAgIGltYWdlSWQsXG4gICAgICAgICAgICBpc1RodW1iOiB0cnVlLFxuICAgICAgICAgICAgdXNlcklkXG4gICAgICAgICAgfTtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4udXNlcixcbiAgICAgICAgICAgIG5hbWU6IGdldERpc3BsYXlOYW1lKHVzZXIpLFxuICAgICAgICAgICAgdGh1bWI6IGdldFVzZXJJbWFnZVVybCh0aHVtYlVybERhdGEpXG4gICAgICAgICAgfTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIGNvbnZlcnNhdGlvbjtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7fTtcbiAgICB9KVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiAnZGJfZXJyb3InXG4gICAgfSwgZXJyb3IsIGNvbnRleHQpLnRoZW4oKCkgPT4gbnVsbCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IHVwZGF0ZUNvbnZlcnNhdGlvbiA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBjb252ZXJzYXRpb24pOiBQcm9taXNlPENvbnZlcnNhdGlvblR5cGU+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAndXBkYXRlQ29udmVyc2F0aW9uJztcbiAgY29uc3Qge2RhdGFiYXNlLCBzZXNzaW9uOiB7dXNlcklkOiBzZXNzaW9uSWR9fSA9IGNvbnRleHQ7XG4gIGNvbnN0IHtcbiAgICBjb252ZXJzYXRpb25JZCA9IGNyZWF0ZUhhc2goYGNvbnZlcnNhdGlvbi0ke3Nlc3Npb25JZH0gYCksXG4gICAgZGlyZWN0ID0gZmFsc2UsXG4gICAgbmFtZVxuICB9ID0gY29udmVyc2F0aW9uO1xuICBjb25zdCBmb3JtYXRDb252ZXJzYXRpb25JZDogc3RyaW5nID0gcGFyc2VJZChjb252ZXJzYXRpb25JZCk7XG4gIGNvbnN0IG5vdzogbnVtYmVyID0gRGF0ZS5ub3coKTtcbiAgY29uc3QgdXBkYXRlOiBhbnkgPSB7XG4gICAgLy8gRGlyZWN0IG1lc3NhZ2VcbiAgICBkaXJlY3QsXG4gICAgbW9kaWZpZWQ6IG5vdyxcbiAgICBuYW1lXG4gIH07XG5cbiAgY29uc3QgaW5zZXJ0OiBhbnkgPSB7XG4gICAgLi4uY2xvbmVEZWVwKHVwZGF0ZSksXG4gICAgX2tleTogZm9ybWF0Q29udmVyc2F0aW9uSWQsXG4gICAgYWRkZWQ6IG5vd1xuICB9O1xuXG4gIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgVVBTRVJUIHtfa2V5OiAke2Zvcm1hdENvbnZlcnNhdGlvbklkfSB9XG4gICAgSU5TRVJUICR7aW5zZXJ0fVxuICAgIFVQREFURSAke3VwZGF0ZX1cbiAgICBJTiBjb252ZXJzYXRpb25zIFJFVFVSTiBORVdgO1xuXG4gIHJldHVybiBkYXRhYmFzZS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLnRoZW4oKGNvbnZlcnNhdGlvbjogQ29udmVyc2F0aW9uVHlwZSA9IHt9KSA9PiBjb252ZXJzYXRpb24pXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuXG5leHBvcnQgY29uc3QgYWRkVXNlclRvQ29udmVyc2F0aW9uID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIGNvbnZvSWQ6IHN0cmluZywgdXNlcklkOiBzdHJpbmcpID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnYWRkVXNlclRvQ29udmVyc2F0aW9uJztcbiAgY29uc3Qge2RhdGFiYXNlfSA9IGNvbnRleHQ7XG4gIGNvbnN0IGZvcm1hdENvbnZvSWQ6IHN0cmluZyA9IHBhcnNlSWQoY29udm9JZCk7XG4gIGNvbnN0IGZvcm1hdFVzZXJJZDogc3RyaW5nID0gcGFyc2VJZCh1c2VySWQpO1xuICBjb25zdCBjb252b0RvY0lkOiBzdHJpbmcgPSBgY29udmVyc2F0aW9ucy8ke2Zvcm1hdENvbnZvSWR9IGA7XG4gIGNvbnN0IHVzZXJEb2NJZDogc3RyaW5nID0gYHVzZXJzLyR7Zm9ybWF0VXNlcklkfSBgO1xuXG4gIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgRk9SIGMgSU4gaGFzQ29udmVyc2F0aW9uc1xuICAgIEZJTFRFUiBjLl9mcm9tID09ICR7dXNlckRvY0lkfSAmJiBjLl90byA9PSAke2NvbnZvRG9jSWR9XG4gICAgTElNSVQgMVxuICAgIFJFVFVSTiBjYDtcblxuICByZXR1cm4gZGF0YWJhc2UucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC50aGVuKChjb252ZXJzYXRpb25FZGdlKSA9PiB7XG4gICAgICBpZighIWNvbnZlcnNhdGlvbkVkZ2UpIHtcbiAgICAgICAgcmV0dXJuIGNvbnZlcnNhdGlvbkVkZ2U7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGVkZ2VDb2xsZWN0aW9uOiBFZGdlQ29sbGVjdGlvbiA9IGRhdGFiYXNlLmNvbGxlY3Rpb24oJ2hhc0NvbnZlcnNhdGlvbnMnKTtcbiAgICAgIGNvbnN0IGVkZ2VJZDogc3RyaW5nID0gY3JlYXRlSGFzaChgY29udm8gLSAke2Zvcm1hdENvbnZvSWR9IC0ke2Zvcm1hdFVzZXJJZH0gYCk7XG5cbiAgICAgIGNvbnN0IGVkZ2U6IENvbnZlcnNhdGlvblR5cGUgPSB7XG4gICAgICAgIF9mcm9tOiB1c2VyRG9jSWQsXG4gICAgICAgIF9rZXk6IGVkZ2VJZCxcbiAgICAgICAgX3RvOiBjb252b0RvY0lkLFxuICAgICAgICBhZGRlZDogRGF0ZS5ub3coKVxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIGVkZ2VDb2xsZWN0aW9uLnNhdmUoZWRnZSwge3JldHVybk5ldzogdHJ1ZX0pLnRoZW4oKCkgPT4gZWRnZSk7XG4gICAgfSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWxldGVVc2VyRnJvbUNvbnZlcnNhdGlvbiA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBjb252b0lkOiBzdHJpbmcsIHVzZXJJZDogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2RlbGV0ZVVzZXJGcm9tQ29udmVyc2F0aW9uJztcbiAgY29uc3Qge2RhdGFiYXNlfSA9IGNvbnRleHQ7XG4gIGNvbnN0IGZvcm1hdENvbnZvSWQ6IHN0cmluZyA9IHBhcnNlSWQoY29udm9JZCk7XG4gIGNvbnN0IGZvcm1hdFVzZXJJZDogc3RyaW5nID0gcGFyc2VJZCh1c2VySWQpO1xuICBjb25zdCBjb252b0RvY0lkOiBzdHJpbmcgPSBgY29udmVyc2F0aW9ucyAvICR7Zm9ybWF0Q29udm9JZH0gYDtcbiAgY29uc3QgdXNlckRvY0lkOiBzdHJpbmcgPSBgdXNlcnMvJHtmb3JtYXRVc2VySWR9IGA7XG5cbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBGT1IgYyBJTiBoYXNDb252ZXJzYXRpb25zXG4gICAgRklMVEVSIGMuX2Zyb20gPT0gJHt1c2VyRG9jSWR9ICYmIGMuX3RvID09ICR7Y29udm9Eb2NJZH1cbiAgICBMSU1JVCAxXG4gICAgUkVNT1ZFIGMgSU4gaGFzQ29udmVyc2F0aW9uc1xuICAgIFJFVFVSTiBPTERgO1xuXG4gIHJldHVybiBkYXRhYmFzZS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJQSxtQkFBaUQ7QUFDakQsc0JBQWtCO0FBSWxCLHVCQUFzQjtBQUN0QixxQkFBb0I7QUFJcEIsb0JBQXVCO0FBQ3ZCLHVCQUF1QjtBQUN2QixvQkFBOEI7QUFDOUIsbUJBQXNDO0FBRXRDLE1BQU0sZ0JBQXdCO0FBRXZCLE1BQU0sbUJBQW1CLENBQUMsU0FBcUIsRUFBQyxNQUFNLFNBQXFDO0FBQ2hHLFFBQU0sU0FBaUI7QUFDdkIsUUFBTSxFQUFDLFVBQVUsU0FBUyxFQUFDLFFBQVEsZ0JBQWM7QUFDakQsUUFBTSxRQUF1Qiw0QkFBUyxNQUFNO0FBQzVDLFFBQU0sZUFBdUIsU0FBUztBQUN0QyxRQUFNLFNBQWlCLDhCQUE4QjtBQUFBLE1BQ2pELE1BQU07QUFBQTtBQUFBO0FBQUEseUJBR2E7QUFBQTtBQUFBO0FBQUE7QUFLdkIsU0FBTyxTQUFTLE1BQU0sUUFDbkIsS0FBSyxDQUFDLFdBQXdCLE9BQU8sT0FDckMsTUFBTSxDQUFDLFVBQWlCLCtCQUFTO0FBQUEsSUFDaEM7QUFBQSxJQUNBLFVBQVU7QUFBQSxJQUNWLE9BQU87QUFBQSxLQUNOLE9BQU8sU0FBUyxLQUFLLE1BQU07QUFBQTtBQUczQixNQUFNLHdCQUF3QixPQUNuQyxTQUNBLFFBQ0EsU0FDOEI7QUFDOUIsUUFBTSxTQUFpQjtBQUN2QixRQUFNLEVBQUMsYUFBWTtBQUVuQixNQUFJO0FBQ0YsVUFBTSxlQUF1QiwwQkFBUTtBQUNyQyxVQUFNLGFBQXFCLDBCQUFRO0FBQ25DLFVBQU0sVUFBb0IsQ0FBQyxjQUFjO0FBQ3pDLFVBQU0sZ0JBQTBCLFFBQVEsS0FBSyxDQUFDLEdBQUcsTUFBTTtBQUNyRCxVQUFHLElBQUksR0FBRztBQUNSLGVBQU87QUFBQTtBQUVULFVBQUcsSUFBSSxHQUFHO0FBQ1IsZUFBTztBQUFBO0FBRVQsYUFBTztBQUFBO0FBRVQsVUFBTSxpQkFBeUIsNkJBQVcsaUJBQWlCLGNBQWMsS0FBSyxRQUFRO0FBQ3RGLFVBQU0sT0FBYSxNQUFNLDBCQUFRLFNBQVMsRUFBQyxRQUFRO0FBRW5ELFVBQU0sU0FBbUIsdUNBQXVCLGlCQUFpQjtBQUNqRSxVQUFNLGVBQWUsTUFBTSxTQUFTLE1BQU0sUUFDdkMsS0FBSyxDQUFDLFdBQXdCLE9BQU8sUUFDckMsTUFBTSxDQUFDLFVBQWlCLCtCQUFTO0FBQUEsTUFDaEM7QUFBQSxNQUNBLFVBQVU7QUFBQSxNQUNWLE9BQU87QUFBQSxPQUNOLE9BQU8sU0FBUyxLQUFLLE1BQU07QUFFaEMsUUFBRyxjQUFjO0FBQ2YsYUFBTyxpQ0FBSSxlQUFKLEVBQWtCLE9BQU8sQ0FBQztBQUFBO0FBR25DLFVBQU0sTUFBYyxLQUFLO0FBQ3pCLFVBQU0sU0FBUztBQUFBLE1BQ2IsTUFBTTtBQUFBLE1BQ04sT0FBTztBQUFBLE1BQ1AsVUFBVTtBQUFBLE1BQ1YsVUFBVTtBQUFBO0FBRVosVUFBTSxjQUF3Qiw2QkFBYTtBQUMzQyxVQUFNLHNCQUFzQixNQUFNLFNBQVMsTUFBTSxhQUM5QyxLQUFLLENBQUMsV0FBd0IsT0FBTztBQUV4QyxVQUFNLFFBQVEsSUFBSSxRQUFRLElBQUksQ0FBQyxXQUFXO0FBQ3hDLFlBQU0sU0FBaUIsNkJBQVcsb0JBQW9CLFVBQVU7QUFDaEUsWUFBTSxPQUFZO0FBQUEsUUFDaEIsT0FBTyxTQUFTO0FBQUEsUUFDaEIsTUFBTTtBQUFBLFFBQ04sS0FBSyxpQkFBaUI7QUFBQSxRQUN0QixPQUFPLEtBQUs7QUFBQTtBQUVkLFlBQU0sa0JBQTRCLDZCQUFhO0FBQy9DLGFBQU8sU0FBUyxNQUFNO0FBQUE7QUFHeEIsV0FBTyxpQ0FBSSxzQkFBSixFQUF5QixPQUFPLENBQUM7QUFBQSxXQUNsQyxhQUFOO0FBQ0EsV0FBTywrQkFBUztBQUFBLE1BQ2Q7QUFBQSxNQUNBLFVBQVU7QUFBQSxNQUNWLE9BQU87QUFBQSxPQUNOLGFBQWEsU0FBUyxLQUFLLE1BQU07QUFBQTtBQUFBO0FBSWpDLE1BQU0scUJBQXFCLENBQ2hDLFNBQ0EsZ0JBQ0EsYUFBc0IsT0FDdEIsYUFDOEI7QUFDOUIsUUFBTSxTQUFpQjtBQUN2QixRQUFNLEVBQUMsVUFBVSxTQUFTLEVBQUMsUUFBUSxvQkFBa0I7QUFDckQsUUFBTSxVQUFvQixDQUFDO0FBRTNCLE1BQUcsQ0FBQyxZQUFZO0FBQ2QsWUFBUSxLQUFLLGFBQWE7QUFBQTtBQUU1QixNQUFHLFVBQVU7QUFDWCxZQUFRLEtBQUssNkJBQTZCO0FBQUE7QUFHNUMsUUFBTSxTQUFtQixpREFBaUMsaUJBQWlCO0FBQUE7QUFBQTtBQUFBLGFBR2hFLFFBQVEsS0FBSztBQUFBO0FBR3hCLFVBQVEsSUFBSSxFQUFDO0FBQ2IsU0FBTyxTQUFTLE1BQU0sUUFDbkIsS0FBSyxDQUFDLFdBQXdCLE9BQU8sT0FDckMsTUFBTSxDQUFDLFVBQWlCLCtCQUFTO0FBQUEsSUFDaEM7QUFBQSxJQUNBLFVBQVU7QUFBQSxJQUNWLE9BQU87QUFBQSxLQUNOLE9BQU8sU0FBUyxLQUFLLE1BQU07QUFBQTtBQUczQixNQUFNLHVCQUF1QixDQUNsQyxTQUNBLGdCQUNBLGFBQXNCLE9BQ3RCLGFBQ2dDO0FBQ2hDLFFBQU0sU0FBaUI7QUFDdkIsUUFBTSxFQUFDLFVBQVUsU0FBUyxFQUFDLFFBQVEsb0JBQWtCO0FBQ3JELFFBQU0sVUFBb0IsQ0FBQztBQUUzQixNQUFHLENBQUMsWUFBWTtBQUNkLFlBQVEsS0FBSyxhQUFhO0FBQUE7QUFFNUIsTUFBRyxVQUFVO0FBQ1gsWUFBUSxLQUFLLDZCQUE2QjtBQUFBO0FBRzVDLFFBQU0sU0FBbUIsaURBQWlDLGlCQUFpQjtBQUFBO0FBQUEsYUFFaEUsUUFBUSxLQUFLO0FBQUE7QUFHeEIsVUFBUSxJQUFJLEVBQUM7QUFDYixTQUFPLFNBQVMsTUFBTSxRQUNuQixLQUFLLENBQUMsV0FBd0IsT0FBTyxPQUNyQyxNQUFNLENBQUMsVUFBaUIsK0JBQVM7QUFBQSxJQUNoQztBQUFBLElBQ0EsVUFBVTtBQUFBLElBQ1YsT0FBTztBQUFBLEtBQ04sT0FBTyxTQUFTLEtBQUssTUFBTTtBQUFBO0FBRzNCLE1BQU0sMkJBQTJCLENBQUMsU0FBcUIsV0FBOEM7QUFDMUcsUUFBTSxTQUFpQjtBQUN2QixRQUFNLEVBQUMsVUFBVSxTQUFTLEVBQUMsUUFBUSxnQkFBYztBQUNqRCxRQUFNLGVBQXVCLFNBQVM7QUFDdEMsUUFBTSxlQUF1QixnQ0FBYztBQUUzQyxRQUFNLFNBQW1CO0FBQUEsa0NBQ087QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGtDQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGlCQU1qQixpQkFBaUI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT2hDLFNBQU8sU0FBUyxNQUFNLFFBQ25CLEtBQUssQ0FBQyxXQUF3QixPQUFPLFFBQ3JDLE1BQU0sQ0FBQyxVQUFpQiwrQkFBUztBQUFBLElBQ2hDO0FBQUEsSUFDQSxVQUFVO0FBQUEsSUFDVixPQUFPO0FBQUEsS0FDTixPQUFPLFNBQVMsS0FBSyxNQUFNO0FBQUE7QUFHM0IsTUFBTSxrQkFBa0IsQ0FBQyxTQUFxQixZQUErQztBQUNsRyxRQUFNLFNBQWlCO0FBQ3ZCLFFBQU0sRUFBQyxVQUFVLFNBQVMsRUFBQyxRQUFRLGdCQUFjO0FBQ2pELFFBQU0sZUFBdUIsU0FBUztBQUN0QyxRQUFNLGFBQXFCLGlCQUFpQiwwQkFBUTtBQUVwRCxRQUFNLFNBQW1CLGdEQUFnQztBQUFBLHNCQUNyQztBQUFBO0FBQUEsMkNBRXFCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNekMsU0FBTyxTQUFTLE1BQU0sUUFDbkIsS0FBSyxDQUFDLFdBQXdCLE9BQU8sUUFDckMsS0FBSyxDQUFDLGVBQWlDLE9BQU87QUFDN0MsUUFBRyxDQUFDLDRCQUFRLGVBQWU7QUFDekIsbUJBQWEsUUFBUSxhQUFhLE1BQU0sSUFBSSxDQUFDLFNBQWM7QUFDekQsY0FBTSxFQUFDLFNBQVMsV0FBVTtBQUMxQixjQUFNLGVBQTZCO0FBQUEsVUFDakM7QUFBQSxVQUNBLFNBQVM7QUFBQSxVQUNUO0FBQUE7QUFFRixlQUFPLGlDQUNGLE9BREU7QUFBQSxVQUVMLE1BQU0saUNBQWU7QUFBQSxVQUNyQixPQUFPLG1DQUFnQjtBQUFBO0FBQUE7QUFJM0IsYUFBTztBQUFBO0FBRVQsV0FBTztBQUFBLEtBRVIsTUFBTSxDQUFDLFVBQWlCLCtCQUFTO0FBQUEsSUFDaEM7QUFBQSxJQUNBLFVBQVU7QUFBQSxJQUNWLE9BQU87QUFBQSxLQUNOLE9BQU8sU0FBUyxLQUFLLE1BQU07QUFBQTtBQUczQixNQUFNLHFCQUFxQixDQUFDLFNBQXFCLGlCQUE0QztBQUNsRyxRQUFNLFNBQWlCO0FBQ3ZCLFFBQU0sRUFBQyxVQUFVLFNBQVMsRUFBQyxRQUFRLGdCQUFjO0FBQ2pELFFBQU07QUFBQSxJQUNKLGlCQUFpQiw2QkFBVyxnQkFBZ0I7QUFBQSxJQUM1QyxTQUFTO0FBQUEsSUFDVDtBQUFBLE1BQ0U7QUFDSixRQUFNLHVCQUErQiwwQkFBUTtBQUM3QyxRQUFNLE1BQWMsS0FBSztBQUN6QixRQUFNLFNBQWM7QUFBQSxJQUVsQjtBQUFBLElBQ0EsVUFBVTtBQUFBLElBQ1Y7QUFBQTtBQUdGLFFBQU0sU0FBYyxpQ0FDZiw4QkFBVSxVQURLO0FBQUEsSUFFbEIsTUFBTTtBQUFBLElBQ04sT0FBTztBQUFBO0FBR1QsUUFBTSxTQUFtQixvQ0FBb0I7QUFBQSxhQUNsQztBQUFBLGFBQ0E7QUFBQTtBQUdYLFNBQU8sU0FBUyxNQUFNLFFBQ25CLEtBQUssQ0FBQyxXQUF3QixPQUFPLFFBQ3JDLEtBQUssQ0FBQyxnQkFBaUMsT0FBTyxlQUM5QyxNQUFNLENBQUMsVUFBaUIsK0JBQVM7QUFBQSxJQUNoQztBQUFBLElBQ0EsVUFBVTtBQUFBLElBQ1YsT0FBTztBQUFBLEtBQ04sT0FBTyxTQUFTLEtBQUssTUFBTTtBQUFBO0FBRzNCLE1BQU0sd0JBQXdCLENBQUMsU0FBcUIsU0FBaUIsV0FBbUI7QUFDN0YsUUFBTSxTQUFpQjtBQUN2QixRQUFNLEVBQUMsYUFBWTtBQUNuQixRQUFNLGdCQUF3QiwwQkFBUTtBQUN0QyxRQUFNLGVBQXVCLDBCQUFRO0FBQ3JDLFFBQU0sYUFBcUIsaUJBQWlCO0FBQzVDLFFBQU0sWUFBb0IsU0FBUztBQUVuQyxRQUFNLFNBQW1CO0FBQUEsd0JBQ0gseUJBQXlCO0FBQUE7QUFBQTtBQUkvQyxTQUFPLFNBQVMsTUFBTSxRQUNuQixLQUFLLENBQUMsV0FBd0IsT0FBTyxRQUNyQyxLQUFLLENBQUMscUJBQXFCO0FBQzFCLFFBQUcsQ0FBQyxDQUFDLGtCQUFrQjtBQUNyQixhQUFPO0FBQUE7QUFHVCxVQUFNLGlCQUFpQyxTQUFTLFdBQVc7QUFDM0QsVUFBTSxTQUFpQiw2QkFBVyxXQUFXLGtCQUFrQjtBQUUvRCxVQUFNLE9BQXlCO0FBQUEsTUFDN0IsT0FBTztBQUFBLE1BQ1AsTUFBTTtBQUFBLE1BQ04sS0FBSztBQUFBLE1BQ0wsT0FBTyxLQUFLO0FBQUE7QUFHZCxXQUFPLGVBQWUsS0FBSyxNQUFNLEVBQUMsV0FBVyxRQUFPLEtBQUssTUFBTTtBQUFBLEtBRWhFLE1BQU0sQ0FBQyxVQUFpQiwrQkFBUztBQUFBLElBQ2hDO0FBQUEsSUFDQSxVQUFVO0FBQUEsSUFDVixPQUFPO0FBQUEsS0FDTixPQUFPLFNBQVMsS0FBSyxNQUFNO0FBQUE7QUFHM0IsTUFBTSw2QkFBNkIsQ0FBQyxTQUFxQixTQUFpQixXQUFtQjtBQUNsRyxRQUFNLFNBQWlCO0FBQ3ZCLFFBQU0sRUFBQyxhQUFZO0FBQ25CLFFBQU0sZ0JBQXdCLDBCQUFRO0FBQ3RDLFFBQU0sZUFBdUIsMEJBQVE7QUFDckMsUUFBTSxhQUFxQixtQkFBbUI7QUFDOUMsUUFBTSxZQUFvQixTQUFTO0FBRW5DLFFBQU0sU0FBbUI7QUFBQSx3QkFDSCx5QkFBeUI7QUFBQTtBQUFBO0FBQUE7QUFLL0MsU0FBTyxTQUFTLE1BQU0sUUFDbkIsS0FBSyxDQUFDLFdBQXdCLE9BQU8sUUFDckMsTUFBTSxDQUFDLFVBQWlCLCtCQUFTO0FBQUEsSUFDaEM7QUFBQSxJQUNBLFVBQVU7QUFBQSxJQUNWLE9BQU87QUFBQSxLQUNOLE9BQU8sU0FBUyxLQUFLLE1BQU07QUFBQTsiLAogICJuYW1lcyI6IFtdCn0K
|