@growsober/sdk 1.0.15 → 1.0.17

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.
@@ -1,5 +1,5 @@
1
1
  import { UseMutationOptions } from '@tanstack/react-query';
2
- import type { CreatorResponse, CreatorAvailabilityResponse, CreateCreatorRequest, UpdateCreatorRequest, CreateAvailabilityRequest } from '../types';
2
+ import type { CreatorResponse, CreatorAvailabilityResponse, CreateCreatorRequest, UpdateCreatorRequest, CreateAvailabilityRequest, UpdateGatheringTypeRequest } from '../types';
3
3
  /**
4
4
  * Create a new creator profile for the current user
5
5
  *
@@ -207,3 +207,158 @@ export declare function useUpdateCreatorReward(creatorId: string, options?: Omit
207
207
  * ```
208
208
  */
209
209
  export declare function useDeleteCreatorReward(creatorId: string, options?: Omit<UseMutationOptions<void, Error, string>, 'mutationFn'>): import("@tanstack/react-query").UseMutationResult<void, Error, string, unknown>;
210
+ /**
211
+ * Create a new gathering type for a creator
212
+ *
213
+ * @param creatorId - Creator ID
214
+ *
215
+ * @example
216
+ * ```tsx
217
+ * const createGatheringType = useCreateGatheringType(creatorId);
218
+ *
219
+ * await createGatheringType.mutateAsync({
220
+ * name: 'Morning Yoga in the Park',
221
+ * description: 'Gentle 45-minute yoga session',
222
+ * duration: 45,
223
+ * vibes: ['Mindful', 'Chill'],
224
+ * category: 'MOVEMENT',
225
+ * });
226
+ * ```
227
+ */
228
+ export declare function useCreateGatheringType(creatorId: string): import("@tanstack/react-query").UseMutationResult<{
229
+ id: string;
230
+ creatorId: string;
231
+ name: string;
232
+ description?: Record<string, never> | null;
233
+ duration: number;
234
+ vibes: string[];
235
+ category?: "WALK" | "COFFEE" | "MOVEMENT" | "CONVERSATION" | "CREATIVE" | "COWORKING" | null;
236
+ suggestedPrice?: Record<string, never> | null;
237
+ currency: string;
238
+ isAiGenerated: boolean;
239
+ isApproved: boolean;
240
+ aiPromptContext?: Record<string, never> | null;
241
+ defaultVenueId?: Record<string, never> | null;
242
+ defaultVenue?: Record<string, never> | null;
243
+ createdAt: string;
244
+ updatedAt: string;
245
+ }, Error, {
246
+ name: string;
247
+ description?: string;
248
+ duration: number;
249
+ vibes?: string[];
250
+ category?: "WALK" | "COFFEE" | "MOVEMENT" | "CONVERSATION" | "CREATIVE" | "COWORKING";
251
+ suggestedPrice?: number;
252
+ currency: string;
253
+ defaultVenueId?: string;
254
+ }, unknown>;
255
+ /**
256
+ * Update a gathering type
257
+ *
258
+ * @param creatorId - Creator ID
259
+ *
260
+ * @example
261
+ * ```tsx
262
+ * const updateGatheringType = useUpdateGatheringType(creatorId);
263
+ *
264
+ * await updateGatheringType.mutateAsync({
265
+ * id: 'gathering-type-123',
266
+ * data: { description: 'Updated description' },
267
+ * });
268
+ * ```
269
+ */
270
+ export declare function useUpdateGatheringType(creatorId: string): import("@tanstack/react-query").UseMutationResult<{
271
+ id: string;
272
+ creatorId: string;
273
+ name: string;
274
+ description?: Record<string, never> | null;
275
+ duration: number;
276
+ vibes: string[];
277
+ category?: "WALK" | "COFFEE" | "MOVEMENT" | "CONVERSATION" | "CREATIVE" | "COWORKING" | null;
278
+ suggestedPrice?: Record<string, never> | null;
279
+ currency: string;
280
+ isAiGenerated: boolean;
281
+ isApproved: boolean;
282
+ aiPromptContext?: Record<string, never> | null;
283
+ defaultVenueId?: Record<string, never> | null;
284
+ defaultVenue?: Record<string, never> | null;
285
+ createdAt: string;
286
+ updatedAt: string;
287
+ }, Error, {
288
+ id: string;
289
+ data: UpdateGatheringTypeRequest;
290
+ }, unknown>;
291
+ /**
292
+ * Approve a gathering type (for AI-suggested types)
293
+ *
294
+ * @param creatorId - Creator ID
295
+ *
296
+ * @example
297
+ * ```tsx
298
+ * const approveGatheringType = useApproveGatheringType(creatorId);
299
+ *
300
+ * await approveGatheringType.mutateAsync('gathering-type-123');
301
+ * ```
302
+ */
303
+ export declare function useApproveGatheringType(creatorId: string): import("@tanstack/react-query").UseMutationResult<{
304
+ id: string;
305
+ creatorId: string;
306
+ name: string;
307
+ description?: Record<string, never> | null;
308
+ duration: number;
309
+ vibes: string[];
310
+ category?: "WALK" | "COFFEE" | "MOVEMENT" | "CONVERSATION" | "CREATIVE" | "COWORKING" | null;
311
+ suggestedPrice?: Record<string, never> | null;
312
+ currency: string;
313
+ isAiGenerated: boolean;
314
+ isApproved: boolean;
315
+ aiPromptContext?: Record<string, never> | null;
316
+ defaultVenueId?: Record<string, never> | null;
317
+ defaultVenue?: Record<string, never> | null;
318
+ createdAt: string;
319
+ updatedAt: string;
320
+ }, Error, string, unknown>;
321
+ /**
322
+ * Delete a gathering type
323
+ *
324
+ * @param creatorId - Creator ID
325
+ *
326
+ * @example
327
+ * ```tsx
328
+ * const deleteGatheringType = useDeleteGatheringType(creatorId);
329
+ *
330
+ * await deleteGatheringType.mutateAsync('gathering-type-123');
331
+ * ```
332
+ */
333
+ export declare function useDeleteGatheringType(creatorId: string): import("@tanstack/react-query").UseMutationResult<void, Error, string, unknown>;
334
+ /**
335
+ * Generate AI suggestions for gathering types based on facilitator profile
336
+ *
337
+ * @param creatorId - Creator ID
338
+ *
339
+ * @example
340
+ * ```tsx
341
+ * const generateSuggestions = useGenerateGatheringTypeSuggestions(creatorId);
342
+ *
343
+ * await generateSuggestions.mutateAsync();
344
+ * // Returns the newly created (unapproved) gathering types
345
+ * ```
346
+ */
347
+ export declare function useGenerateGatheringTypeSuggestions(creatorId: string): import("@tanstack/react-query").UseMutationResult<{
348
+ id: string;
349
+ creatorId: string;
350
+ name: string;
351
+ description?: Record<string, never> | null;
352
+ duration: number;
353
+ vibes: string[];
354
+ category?: "WALK" | "COFFEE" | "MOVEMENT" | "CONVERSATION" | "CREATIVE" | "COWORKING" | null;
355
+ suggestedPrice?: Record<string, never> | null;
356
+ currency: string;
357
+ isAiGenerated: boolean;
358
+ isApproved: boolean;
359
+ aiPromptContext?: Record<string, never> | null;
360
+ defaultVenueId?: Record<string, never> | null;
361
+ defaultVenue?: Record<string, never> | null;
362
+ createdAt: string;
363
+ updatedAt: string;
364
+ }[], Error, void, unknown>;
@@ -7,6 +7,11 @@ exports.useRemoveCreatorAvailability = useRemoveCreatorAvailability;
7
7
  exports.useCreateCreatorReward = useCreateCreatorReward;
8
8
  exports.useUpdateCreatorReward = useUpdateCreatorReward;
9
9
  exports.useDeleteCreatorReward = useDeleteCreatorReward;
10
+ exports.useCreateGatheringType = useCreateGatheringType;
11
+ exports.useUpdateGatheringType = useUpdateGatheringType;
12
+ exports.useApproveGatheringType = useApproveGatheringType;
13
+ exports.useDeleteGatheringType = useDeleteGatheringType;
14
+ exports.useGenerateGatheringTypeSuggestions = useGenerateGatheringTypeSuggestions;
10
15
  const react_query_1 = require("@tanstack/react-query");
11
16
  const client_1 = require("../client");
12
17
  const creators_1 = require("../queries/creators");
@@ -208,4 +213,144 @@ function useDeleteCreatorReward(creatorId, options) {
208
213
  ...options,
209
214
  });
210
215
  }
211
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL211dGF0aW9ucy9jcmVhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQThCQSw0Q0FnQkM7QUFlRCw0Q0FvQkM7QUFxQkQsOERBNkJDO0FBZUQsb0VBd0JDO0FBdURELHdEQWNDO0FBZUQsd0RBb0JDO0FBWUQsd0RBZ0JDO0FBOVNELHVEQUF3RjtBQUN4RixzQ0FBeUM7QUFDekMsa0RBQWtEO0FBU2xELCtFQUErRTtBQUMvRSxpQkFBaUI7QUFDakIsK0VBQStFO0FBRS9FOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQzlCLE9BQThGO0lBRTlGLE1BQU0sV0FBVyxHQUFHLElBQUEsNEJBQWMsR0FBRSxDQUFDO0lBRXJDLE9BQU8sSUFBQSx5QkFBVyxFQUFDO1FBQ2pCLFVBQVUsRUFBRSxLQUFLLEVBQUUsSUFBMEIsRUFBNEIsRUFBRTtZQUN6RSxNQUFNLE1BQU0sR0FBRyxJQUFBLHFCQUFZLEdBQUUsQ0FBQztZQUM5QixNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDN0QsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQ3ZCLENBQUM7UUFDRCxTQUFTLEVBQUUsR0FBRyxFQUFFO1lBQ2QsV0FBVyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsUUFBUSxFQUFFLHNCQUFXLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMvRCxDQUFDO1FBQ0QsR0FBRyxPQUFPO0tBQ1gsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILFNBQWdCLGdCQUFnQixDQUM5QixPQUdDO0lBRUQsTUFBTSxXQUFXLEdBQUcsSUFBQSw0QkFBYyxHQUFFLENBQUM7SUFFckMsT0FBTyxJQUFBLHlCQUFXLEVBQUM7UUFDakIsVUFBVSxFQUFFLEtB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QUVyRSxNQUFNLFdBQVcsR0FBRyxJQUFBLDRCQUFjLEdBQUUsQ0FBQztJQUVyQyxPQUFPLElBQUEseUJBQVcsRUFBQztRQUNqQixVQUFVLEVBQUUsS0FBSyxFQUFFLFFBQWdCLEVBQWlCLEVBQUU7WUFDcEQsTUFBTSxNQUFNLEdBQUcsSUFBQSxxQkFBWSxHQUFFLENBQUM7WUFDOUIsTUFBTSxNQUFNLENBQUMsTUFBTSxDQUFDLG9CQUFvQixTQUFTLFlBQVksUUFBUSxFQUFFLENBQUMsQ0FBQztRQUMzRSxDQUFDO1FBQ0QsU0FBUyxFQUFFLEdBQUcsRUFBRTtZQUNkLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLFFBQVEsRUFBRSxzQkFBVyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDOUUsQ0FBQztRQUNELEdBQUcsT0FBTztLQUNYLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VNdXRhdGlvbiwgdXNlUXVlcnlDbGllbnQsIFVzZU11dGF0aW9uT3B0aW9ucyB9IGZyb20gJ0B0YW5zdGFjay9yZWFjdC1xdWVyeSc7XG5pbXBvcnQgeyBnZXRBcGlDbGllbnQgfSBmcm9tICcuLi9jbGllbnQnO1xuaW1wb3J0IHsgY3JlYXRvcktleXMgfSBmcm9tICcuLi9xdWVyaWVzL2NyZWF0b3JzJztcbmltcG9ydCB0eXBlIHtcbiAgQ3JlYXRvclJlc3BvbnNlLFxuICBDcmVhdG9yQXZhaWxhYmlsaXR5UmVzcG9uc2UsXG4gIENyZWF0ZUNyZWF0b3JSZXF1ZXN0LFxuICBVcGRhdGVDcmVhdG9yUmVxdWVzdCxcbiAgQ3JlYXRlQXZhaWxhYmlsaXR5UmVxdWVzdCxcbn0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNVVRBVElPTiBIT09LU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIENyZWF0ZSBhIG5ldyBjcmVhdG9yIHByb2ZpbGUgZm9yIHRoZSBjdXJyZW50IHVzZXJcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBjb25zdCB7IG11dGF0ZUFzeW5jOiBjcmVhdGVDcmVhdG9yIH0gPSB1c2VDcmVhdGVDcmVhdG9yKCk7XG4gKlxuICogYXdhaXQgY3JlYXRlQ3JlYXRvcih7XG4gKiAgIHNsdWc6ICdqb2huLWRvZScsXG4gKiAgIGRpc3BsYXlOYW1lOiAnSm9obiBEb2UnLFxuICogICBiaW86ICdXZWxsbmVzcyBmYWNpbGl0YXRvcicsXG4gKiAgIGNhbkZhY2lsaXRhdGU6IHRydWUsXG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlQ3JlYXRlQ3JlYXRvcihcbiAgb3B0aW9ucz86IE9taXQ8VXNlTXV0YXRpb25PcHRpb25zPENyZWF0b3JSZXNwb25zZSwgRXJyb3IsIENyZWF0ZUNyZWF0b3JSZXF1ZXN0PiwgJ211dGF0aW9uRm4nPlxuKSB7XG4gIGNvbnN0IHF1ZXJ5Q2xpZW50ID0gdXNlUXVlcnlDbGllbnQoKTtcblxuICByZXR1cm4gdXNlTXV0YXRpb24oe1xuICAgIG11dGF0aW9uRm46IGFzeW5jIChkYXRhOiBDcmVhdGVDcmVhdG9yUmVxdWVzdCk6IFByb21pc2U8Q3JlYXRvclJlc3BvbnNlPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnBvc3QoJy9hcGkvdjEvY3JlYXRvcnMnLCBkYXRhKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIH0sXG4gICAgb25TdWNjZXNzOiAoKSA9PiB7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiBjcmVhdG9yS2V5cy5hbGwgfSk7XG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cblxuLyoqXG4gKiBVcGRhdGUgYSBjcmVhdG9yIHByb2ZpbGVcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBjb25zdCB7IG11dGF0ZUFzeW5jOiB1cGRhdGVDcmVhdG9yIH0gPSB1c2VVcGRhdGVDcmVhdG9yKCk7XG4gKlxuICogYXdhaXQgdXBkYXRlQ3JlYXRvcih7XG4gKiAgIGlkOiAnY3JlYXRvci0xMjMnLFxuICogICBkYXRhOiB7IGJpbzogJ1VwZGF0ZWQgYmlvJyB9LFxuICogfSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVVwZGF0ZUNyZWF0b3IoXG4gIG9wdGlvbnM/OiBPbWl0PFxuICAgIFVzZU11dGF0aW9uT3B0aW9uczxDcmVhdG9yUmVzcG9uc2UsIEVycm9yLCB7IGlkOiBzdHJpbmc7IGRhdGE6IFVwZGF0ZUNyZWF0b3JSZXF1ZXN0IH0+LFxuICAgICdtdXRhdGlvbkZuJ1xuICA+XG4pIHtcbiAgY29uc3QgcXVlcnlDbGllbnQgPSB1c2VRdWVyeUNsaWVudCgpO1xuXG4gIHJldHVybiB1c2VNdXRhdGlvbih7XG4gICAgbXV0YXRpb25GbjogYXN5bmMgKHsgaWQsIGRhdGEgfTogeyBpZDogc3RyaW5nOyBkYXRhOiBVcGRhdGVDcmVhdG9yUmVxdWVzdCB9KTogUHJvbWlzZTxDcmVhdG9yUmVzcG9uc2U+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQucGF0Y2goYC9hcGkvdjEvY3JlYXRvcnMvJHtpZH1gLCBkYXRhKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIH0sXG4gICAgb25TdWNjZXNzOiAoXywgdmFyaWFibGVzKSA9PiB7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiBjcmVhdG9yS2V5cy5kZXRhaWwodmFyaWFibGVzLmlkKSB9KTtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IGNyZWF0b3JLZXlzLm1lKCkgfSk7XG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cblxuLyoqXG4gKiBBZGQgYW4gYXZhaWxhYmlsaXR5IHNsb3QgZm9yIGEgY3JlYXRvclxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIGNvbnN0IHsgbXV0YXRlQXN5bmM6IGFkZEF2YWlsYWJpbGl0eSB9ID0gdXNlQWRkQ3JlYXRvckF2YWlsYWJpbGl0eSgpO1xuICpcbiAqIGF3YWl0IGFkZEF2YWlsYWJpbGl0eSh7XG4gKiAgIGNyZWF0b3JJZDogJ2NyZWF0b3ItMTIzJyxcbiAqICAgZGF0YToge1xuICogICAgIGRheU9mV2VlazogMSwgLy8gTW9uZGF5XG4gKiAgICAgc3RhcnRUaW1lOiAnMDk6MDAnLFxuICogICAgIGVuZFRpbWU6ICcxNzowMCcsXG4gKiAgICAgdGltZXpvbmU6ICdFdXJvcGUvTG9uZG9uJyxcbiAqICAgICBpc1JlY3VycmluZzogdHJ1ZSxcbiAqICAgfSxcbiAqIH0pO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VBZGRDcmVhdG9yQXZhaWxhYmlsaXR5KFxuICBvcHRpb25zPzogT21pdDxcbiAgICBVc2VNdXRhdGlvbk9wdGlvbnM8XG4gICAgICBDcmVhdG9yQXZhaWxhYmlsaXR5UmVzcG9uc2UsXG4gICAgICBFcnJvcixcbiAgICAgIHsgY3JlYXRvcklkOiBzdHJpbmc7IGRhdGE6IENyZWF0ZUF2YWlsYWJpbGl0eVJlcXVlc3QgfVxuICAgID4sXG4gICAgJ211dGF0aW9uRm4nXG4gID5cbikge1xuICBjb25zdCBxdWVyeUNsaWVudCA9IHVzZVF1ZXJ5Q2xpZW50KCk7XG5cbiAgcmV0dXJuIHVzZU11dGF0aW9uKHtcbiAgICBtdXRhdGlvbkZuOiBhc3luYyAoe1xuICAgICAgY3JlYXRvcklkLFxuICAgICAgZGF0YSxcbiAgICB9OiB7XG4gICAgICBjcmVhdG9ySWQ6IHN0cmluZztcbiAgICAgIGRhdGE6IENyZWF0ZUF2YWlsYWJpbGl0eVJlcXVlc3Q7XG4gICAgfSk6IFByb21pc2U8Q3JlYXRvckF2YWlsYWJpbGl0eVJlc3BvbnNlPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnBvc3QoYC9hcGkvdjEvY3JlYXRvcnMvJHtjcmVhdG9ySWR9L2F2YWlsYWJpbGl0eWAsIGRhdGEpO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgfSxcbiAgICBvblN1Y2Nlc3M6IChfLCB2YXJpYWJsZXMpID0+IHtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IGNyZWF0b3JLZXlzLmF2YWlsYWJpbGl0eSh2YXJpYWJsZXMuY3JlYXRvcklkKSB9KTtcbiAgICB9LFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pO1xufVxuXG4vKipcbiAqIFJlbW92ZSBhbiBhdmFpbGFiaWxpdHkgc2xvdCBmb3IgYSBjcmVhdG9yXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgeyBtdXRhdGVBc3luYzogcmVtb3ZlQXZhaWxhYmlsaXR5IH0gPSB1c2VSZW1vdmVDcmVhdG9yQXZhaWxhYmlsaXR5KCk7XG4gKlxuICogYXdhaXQgcmVtb3ZlQXZhaWxhYmlsaXR5KHtcbiAqICAgY3JlYXRvcklkOiAnY3JlYXRvci0xMjMnLFxuICogICBhdmFpbGFiaWxpdHlJZDogJ2F2YWlsYWJpbGl0eS00NTYnLFxuICogfSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVJlbW92ZUNyZWF0b3JBdmFpbGFiaWxpdHkoXG4gIG9wdGlvbnM/OiBPbWl0PFxuICAgIFVzZU11dGF0aW9uT3B0aW9uczx2b2lkLCBFcnJvciwgeyBjcmVhdG9ySWQ6IHN0cmluZzsgYXZhaWxhYmlsaXR5SWQ6IHN0cmluZyB9PixcbiAgICAnbXV0YXRpb25GbidcbiAgPlxuKSB7XG4gIGNvbnN0IHF1ZXJ5Q2xpZW50ID0gdXNlUXVlcnlDbGllbnQoKTtcblxuICByZXR1cm4gdXNlTXV0YXRpb24oe1xuICAgIG11dGF0aW9uRm46IGFzeW5jICh7XG4gICAgICBjcmVhdG9ySWQsXG4gICAgICBhdmFpbGFiaWxpdHlJZCxcbiAgICB9OiB7XG4gICAgICBjcmVhdG9ySWQ6IHN0cmluZztcbiAgICAgIGF2YWlsYWJpbGl0eUlkOiBzdHJpbmc7XG4gICAgfSk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBhd2FpdCBjbGllbnQuZGVsZXRlKGAvYXBpL3YxL2NyZWF0b3JzLyR7Y3JlYXRvcklkfS9hdmFpbGFiaWxpdHkvJHthdmFpbGFiaWxpdHlJZH1gKTtcbiAgICB9LFxuICAgIG9uU3VjY2VzczogKF8sIHZhcmlhYmxlcykgPT4ge1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogY3JlYXRvcktleXMuYXZhaWxhYmlsaXR5KHZhcmlhYmxlcy5jcmVhdG9ySWQpIH0pO1xuICAgIH0sXG4gICAgLi4ub3B0aW9ucyxcbiAgfSk7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIENSRUFUT1IgUkVXQVJEU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZUNyZWF0b3JSZXdhcmRSZXF1ZXN0IHtcbiAgYmFkZ2VJZDogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICByZWRlZW1UeXBlOiAnSU5fUEVSU09OJyB8ICdPTkxJTkUnIHwgJ0JPVEgnO1xuICBjb2RlPzogc3RyaW5nO1xuICBtYXhSZWRlbXB0aW9ucz86IG51bWJlcjtcbiAgdmFsaWRVbnRpbD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdG9yUmV3YXJkUmVzcG9uc2Uge1xuICBpZDogc3RyaW5nO1xuICBjcmVhdG9ySWQ6IHN0cmluZztcbiAgYmFkZ2VJZDogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICByZWRlZW1UeXBlOiAnSU5fUEVSU09OJyB8ICdPTkxJTkUnIHwgJ0JPVEgnO1xuICBjb2RlPzogc3RyaW5nO1xuICBtYXhSZWRlbXB0aW9ucz86IG51bWJlcjtcbiAgdmFsaWRVbnRpbD86IHN0cmluZztcbiAgY3JlYXRlZEF0OiBzdHJpbmc7XG4gIHVwZGF0ZWRBdDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZUNyZWF0b3JSZXdhcmRSZXF1ZXN0IHtcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICByZWRlZW1UeXBlPzogJ0lOX1BFUlNPTicgfCAnT05MSU5FJyB8ICdCT1RIJztcbiAgY29kZT86IHN0cmluZztcbiAgbWF4UmVkZW1wdGlvbnM/OiBudW1iZXI7XG4gIHZhbGlkVW50aWw/OiBzdHJpbmc7XG4gIGlzQWN0aXZlPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBuZXcgcmV3YXJkIGZvciBhIGNyZWF0b3JcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBjb25zdCBjcmVhdGVSZXdhcmQgPSB1c2VDcmVhdGVDcmVhdG9yUmV3YXJkKGNyZWF0b3JJZCk7XG4gKlxuICogYXdhaXQgY3JlYXRlUmV3YXJkLm11dGF0ZUFzeW5jKHtcbiAqICAgYmFkZ2VJZDogJ2JhZGdlLTEyMycsXG4gKiAgIHRpdGxlOiAnRnJlZSBTZXNzaW9uJyxcbiAqICAgZGVzY3JpcHRpb246ICdHZXQgYSBmcmVlIDMwLW1pbnV0ZSBzZXNzaW9uJyxcbiAqICAgcmVkZWVtVHlwZTogJ0lOX1BFUlNPTicsXG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlQ3JlYXRlQ3JlYXRvclJld2FyZChjcmVhdG9ySWQ6IHN0cmluZykge1xuICBjb25zdCBxdWVyeUNsaWVudCA9IHVzZVF1ZXJ5Q2xpZW50KCk7XG5cbiAgcmV0dXJuIHVzZU11dGF0aW9uKHtcbiAgICBtdXRhdGlvbkZuOiBhc3luYyAoZGF0YTogQ3JlYXRlQ3JlYXRvclJld2FyZFJlcXVlc3QpOiBQcm9taXNlPENyZWF0b3JSZXdhcmRSZXNwb25zZT4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5wb3N0KGAvYXBpL3YxL2NyZWF0b3JzLyR7Y3JlYXRvcklkfS9yZXdhcmRzYCwgZGF0YSk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICB9LFxuICAgIG9uU3VjY2VzczogKCkgPT4ge1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogY3JlYXRvcktleXMuZGV0YWlsKGNyZWF0b3JJZCkgfSk7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiBjcmVhdG9yS2V5cy5yZXdhcmRzKGNyZWF0b3JJZCkgfSk7XG4gICAgfSxcbiAgfSk7XG59XG5cbi8qKlxuICogVXBkYXRlIGFuIGV4aXN0aW5nIHJld2FyZCBmb3IgYSBjcmVhdG9yXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgdXBkYXRlUmV3YXJkID0gdXNlVXBkYXRlQ3JlYXRvclJld2FyZChjcmVhdG9ySWQpO1xuICpcbiAqIGF3YWl0IHVwZGF0ZVJld2FyZC5tdXRhdGVBc3luYyh7XG4gKiAgIGlkOiAncmV3YXJkLTEyMycsXG4gKiAgIGRhdGE6IHsgaXNBY3RpdmU6IGZhbHNlIH0sXG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlVXBkYXRlQ3JlYXRvclJld2FyZChcbiAgY3JlYXRvcklkOiBzdHJpbmcsXG4gIG9wdGlvbnM/OiBPbWl0PFxuICAgIFVzZU11dGF0aW9uT3B0aW9uczxDcmVhdG9yUmV3YXJkUmVzcG9uc2UsIEVycm9yLCB7IGlkOiBzdHJpbmc7IGRhdGE6IFVwZGF0ZUNyZWF0b3JSZXdhcmRSZXF1ZXN0IH0+LFxuICAgICdtdXRhdGlvbkZuJ1xuICA+XG4pIHtcbiAgY29uc3QgcXVlcnlDbGllbnQgPSB1c2VRdWVyeUNsaWVudCgpO1xuXG4gIHJldHVybiB1c2VNdXRhdGlvbih7XG4gICAgbXV0YXRpb25GbjogYXN5bmMgKHsgaWQsIGRhdGEgfTogeyBpZDogc3RyaW5nOyBkYXRhOiBVcGRhdGVDcmVhdG9yUmV3YXJkUmVxdWVzdCB9KTogUHJvbWlzZTxDcmVhdG9yUmV3YXJkUmVzcG9uc2U+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQucGF0Y2goYC9hcGkvdjEvY3JlYXRvcnMvJHtjcmVhdG9ySWR9L3Jld2FyZHMvJHtpZH1gLCBkYXRhKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIH0sXG4gICAgb25TdWNjZXNzOiAoKSA9PiB7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiBjcmVhdG9yS2V5cy5yZXdhcmRzKGNyZWF0b3JJZCkgfSk7XG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cblxuLyoqXG4gKiBEZWxldGUgYSByZXdhcmQgZm9yIGEgY3JlYXRvclxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIGNvbnN0IGRlbGV0ZVJld2FyZCA9IHVzZURlbGV0ZUNyZWF0b3JSZXdhcmQoY3JlYXRvcklkKTtcbiAqXG4gKiBhd2FpdCBkZWxldGVSZXdhcmQubXV0YXRlQXN5bmMoJ3Jld2FyZC0xMjMnKTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlRGVsZXRlQ3JlYXRvclJld2FyZChcbiAgY3JlYXRvcklkOiBzdHJpbmcsXG4gIG9wdGlvbnM/OiBPbWl0PFVzZU11dGF0aW9uT3B0aW9uczx2b2lkLCBFcnJvciwgc3RyaW5nPiwgJ211dGF0aW9uRm4nPlxuKSB7XG4gIGNvbnN0IHF1ZXJ5Q2xpZW50ID0gdXNlUXVlcnlDbGllbnQoKTtcblxuICByZXR1cm4gdXNlTXV0YXRpb24oe1xuICAgIG11dGF0aW9uRm46IGFzeW5jIChyZXdhcmRJZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGF3YWl0IGNsaWVudC5kZWxldGUoYC9hcGkvdjEvY3JlYXRvcnMvJHtjcmVhdG9ySWR9L3Jld2FyZHMvJHtyZXdhcmRJZH1gKTtcbiAgICB9LFxuICAgIG9uU3VjY2VzczogKCkgPT4ge1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogY3JlYXRvcktleXMucmV3YXJkcyhjcmVhdG9ySWQpIH0pO1xuICAgIH0sXG4gICAgLi4ub3B0aW9ucyxcbiAgfSk7XG59XG4iXX0=
216
+ // ============================================================================
217
+ // GATHERING TYPE MUTATIONS
218
+ // ============================================================================
219
+ /**
220
+ * Create a new gathering type for a creator
221
+ *
222
+ * @param creatorId - Creator ID
223
+ *
224
+ * @example
225
+ * ```tsx
226
+ * const createGatheringType = useCreateGatheringType(creatorId);
227
+ *
228
+ * await createGatheringType.mutateAsync({
229
+ * name: 'Morning Yoga in the Park',
230
+ * description: 'Gentle 45-minute yoga session',
231
+ * duration: 45,
232
+ * vibes: ['Mindful', 'Chill'],
233
+ * category: 'MOVEMENT',
234
+ * });
235
+ * ```
236
+ */
237
+ function useCreateGatheringType(creatorId) {
238
+ const queryClient = (0, react_query_1.useQueryClient)();
239
+ return (0, react_query_1.useMutation)({
240
+ mutationFn: async (data) => {
241
+ const client = (0, client_1.getApiClient)();
242
+ const response = await client.post(`/api/v1/creators/${creatorId}/gathering-types`, data);
243
+ return response.data;
244
+ },
245
+ onSuccess: () => {
246
+ queryClient.invalidateQueries({ queryKey: creators_1.creatorKeys.gatheringTypes(creatorId) });
247
+ },
248
+ });
249
+ }
250
+ /**
251
+ * Update a gathering type
252
+ *
253
+ * @param creatorId - Creator ID
254
+ *
255
+ * @example
256
+ * ```tsx
257
+ * const updateGatheringType = useUpdateGatheringType(creatorId);
258
+ *
259
+ * await updateGatheringType.mutateAsync({
260
+ * id: 'gathering-type-123',
261
+ * data: { description: 'Updated description' },
262
+ * });
263
+ * ```
264
+ */
265
+ function useUpdateGatheringType(creatorId) {
266
+ const queryClient = (0, react_query_1.useQueryClient)();
267
+ return (0, react_query_1.useMutation)({
268
+ mutationFn: async ({ id, data, }) => {
269
+ const client = (0, client_1.getApiClient)();
270
+ const response = await client.put(`/api/v1/creators/${creatorId}/gathering-types/${id}`, data);
271
+ return response.data;
272
+ },
273
+ onSuccess: () => {
274
+ queryClient.invalidateQueries({ queryKey: creators_1.creatorKeys.gatheringTypes(creatorId) });
275
+ queryClient.invalidateQueries({ queryKey: creators_1.creatorKeys.approvedGatheringTypes(creatorId) });
276
+ },
277
+ });
278
+ }
279
+ /**
280
+ * Approve a gathering type (for AI-suggested types)
281
+ *
282
+ * @param creatorId - Creator ID
283
+ *
284
+ * @example
285
+ * ```tsx
286
+ * const approveGatheringType = useApproveGatheringType(creatorId);
287
+ *
288
+ * await approveGatheringType.mutateAsync('gathering-type-123');
289
+ * ```
290
+ */
291
+ function useApproveGatheringType(creatorId) {
292
+ const queryClient = (0, react_query_1.useQueryClient)();
293
+ return (0, react_query_1.useMutation)({
294
+ mutationFn: async (gatheringTypeId) => {
295
+ const client = (0, client_1.getApiClient)();
296
+ const response = await client.put(`/api/v1/creators/${creatorId}/gathering-types/${gatheringTypeId}/approve`);
297
+ return response.data;
298
+ },
299
+ onSuccess: () => {
300
+ queryClient.invalidateQueries({ queryKey: creators_1.creatorKeys.gatheringTypes(creatorId) });
301
+ queryClient.invalidateQueries({ queryKey: creators_1.creatorKeys.approvedGatheringTypes(creatorId) });
302
+ },
303
+ });
304
+ }
305
+ /**
306
+ * Delete a gathering type
307
+ *
308
+ * @param creatorId - Creator ID
309
+ *
310
+ * @example
311
+ * ```tsx
312
+ * const deleteGatheringType = useDeleteGatheringType(creatorId);
313
+ *
314
+ * await deleteGatheringType.mutateAsync('gathering-type-123');
315
+ * ```
316
+ */
317
+ function useDeleteGatheringType(creatorId) {
318
+ const queryClient = (0, react_query_1.useQueryClient)();
319
+ return (0, react_query_1.useMutation)({
320
+ mutationFn: async (gatheringTypeId) => {
321
+ const client = (0, client_1.getApiClient)();
322
+ await client.delete(`/api/v1/creators/${creatorId}/gathering-types/${gatheringTypeId}`);
323
+ },
324
+ onSuccess: () => {
325
+ queryClient.invalidateQueries({ queryKey: creators_1.creatorKeys.gatheringTypes(creatorId) });
326
+ queryClient.invalidateQueries({ queryKey: creators_1.creatorKeys.approvedGatheringTypes(creatorId) });
327
+ },
328
+ });
329
+ }
330
+ /**
331
+ * Generate AI suggestions for gathering types based on facilitator profile
332
+ *
333
+ * @param creatorId - Creator ID
334
+ *
335
+ * @example
336
+ * ```tsx
337
+ * const generateSuggestions = useGenerateGatheringTypeSuggestions(creatorId);
338
+ *
339
+ * await generateSuggestions.mutateAsync();
340
+ * // Returns the newly created (unapproved) gathering types
341
+ * ```
342
+ */
343
+ function useGenerateGatheringTypeSuggestions(creatorId) {
344
+ const queryClient = (0, react_query_1.useQueryClient)();
345
+ return (0, react_query_1.useMutation)({
346
+ mutationFn: async () => {
347
+ const client = (0, client_1.getApiClient)();
348
+ const response = await client.post(`/api/v1/creators/${creatorId}/gathering-types/generate`);
349
+ return response.data;
350
+ },
351
+ onSuccess: () => {
352
+ queryClient.invalidateQueries({ queryKey: creators_1.creatorKeys.gatheringTypes(creatorId) });
353
+ },
354
+ });
355
+ }
356
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL211dGF0aW9ucy9jcmVhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWlDQSw0Q0FnQkM7QUFlRCw0Q0FvQkM7QUFxQkQsOERBNkJDO0FBZUQsb0VBd0JDO0FBdURELHdEQWNDO0FBZUQsd0RBb0JDO0FBWUQsd0RBZ0JDO0FBd0JELHdEQWFDO0FBaUJELHdEQW9CQztBQWNELDBEQWdCQztBQWNELHdEQWFDO0FBZUQsa0ZBYUM7QUFoZEQsdURBQXdGO0FBQ3hGLHNDQUF5QztBQUN6QyxrREFBa0Q7QUFZbEQsK0VBQStFO0FBQy9FLGlCQUFpQjtBQUNqQiwrRUFBK0U7QUFFL0U7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxTQUFnQixnQkFBZ0IsQ0FDOUIsT0FBOEY7SUFFOUYsTUFBTSxXQUFXLEdBQUcsSUFBQSw0QkFBYyxHQUFFLENBQUM7SUFFckMsT0FBTyxJQUFBLHlCQUFXLEVBQUM7UUFDakIsVUFBVSxFQUFFLEtBQUssRUFBRSxJQUEwQixFQUE0QixFQUFFO1lBQ3pFLE1BQU0sTUFBTSxHQUFHLElBQUEscUJBQVksR0FBRSxDQUFDO1lBQzlCLE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUM3RCxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDdkIsQ0FBQztRQUNELFNBQVMsRUFBRSxHQUFHLEVBQUU7WUFDZCxXQUFXLENBQUMsaUJBQWlCLENBQUMsRUFBRSxRQUFRLEVBQUUsc0JBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQy9ELENBQUM7UUFDRCxHQUFHLE9BQU87S0FDWCxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQzlCLE9BR0M7SUFFRCxNQUFNLFdBQVcsR0FBRyxJQUFBLDRC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QUNILFNBQWdCLG1DQUFtQyxDQUFDLFNBQWlCO0lBQ25FLE1BQU0sV0FBVyxHQUFHLElBQUEsNEJBQWMsR0FBRSxDQUFDO0lBRXJDLE9BQU8sSUFBQSx5QkFBVyxFQUFDO1FBQ2pCLFVBQVUsRUFBRSxLQUFLLElBQXNDLEVBQUU7WUFDdkQsTUFBTSxNQUFNLEdBQUcsSUFBQSxxQkFBWSxHQUFFLENBQUM7WUFDOUIsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLG9CQUFvQixTQUFTLDJCQUEyQixDQUFDLENBQUM7WUFDN0YsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQ3ZCLENBQUM7UUFDRCxTQUFTLEVBQUUsR0FBRyxFQUFFO1lBQ2QsV0FBVyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsUUFBUSxFQUFFLHNCQUFXLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNyRixDQUFDO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZU11dGF0aW9uLCB1c2VRdWVyeUNsaWVudCwgVXNlTXV0YXRpb25PcHRpb25zIH0gZnJvbSAnQHRhbnN0YWNrL3JlYWN0LXF1ZXJ5JztcbmltcG9ydCB7IGdldEFwaUNsaWVudCB9IGZyb20gJy4uL2NsaWVudCc7XG5pbXBvcnQgeyBjcmVhdG9yS2V5cyB9IGZyb20gJy4uL3F1ZXJpZXMvY3JlYXRvcnMnO1xuaW1wb3J0IHR5cGUge1xuICBDcmVhdG9yUmVzcG9uc2UsXG4gIENyZWF0b3JBdmFpbGFiaWxpdHlSZXNwb25zZSxcbiAgQ3JlYXRlQ3JlYXRvclJlcXVlc3QsXG4gIFVwZGF0ZUNyZWF0b3JSZXF1ZXN0LFxuICBDcmVhdGVBdmFpbGFiaWxpdHlSZXF1ZXN0LFxuICBHYXRoZXJpbmdUeXBlUmVzcG9uc2UsXG4gIENyZWF0ZUdhdGhlcmluZ1R5cGVSZXF1ZXN0LFxuICBVcGRhdGVHYXRoZXJpbmdUeXBlUmVxdWVzdCxcbn0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNVVRBVElPTiBIT09LU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIENyZWF0ZSBhIG5ldyBjcmVhdG9yIHByb2ZpbGUgZm9yIHRoZSBjdXJyZW50IHVzZXJcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBjb25zdCB7IG11dGF0ZUFzeW5jOiBjcmVhdGVDcmVhdG9yIH0gPSB1c2VDcmVhdGVDcmVhdG9yKCk7XG4gKlxuICogYXdhaXQgY3JlYXRlQ3JlYXRvcih7XG4gKiAgIHNsdWc6ICdqb2huLWRvZScsXG4gKiAgIGRpc3BsYXlOYW1lOiAnSm9obiBEb2UnLFxuICogICBiaW86ICdXZWxsbmVzcyBmYWNpbGl0YXRvcicsXG4gKiAgIGNhbkZhY2lsaXRhdGU6IHRydWUsXG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlQ3JlYXRlQ3JlYXRvcihcbiAgb3B0aW9ucz86IE9taXQ8VXNlTXV0YXRpb25PcHRpb25zPENyZWF0b3JSZXNwb25zZSwgRXJyb3IsIENyZWF0ZUNyZWF0b3JSZXF1ZXN0PiwgJ211dGF0aW9uRm4nPlxuKSB7XG4gIGNvbnN0IHF1ZXJ5Q2xpZW50ID0gdXNlUXVlcnlDbGllbnQoKTtcblxuICByZXR1cm4gdXNlTXV0YXRpb24oe1xuICAgIG11dGF0aW9uRm46IGFzeW5jIChkYXRhOiBDcmVhdGVDcmVhdG9yUmVxdWVzdCk6IFByb21pc2U8Q3JlYXRvclJlc3BvbnNlPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnBvc3QoJy9hcGkvdjEvY3JlYXRvcnMnLCBkYXRhKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIH0sXG4gICAgb25TdWNjZXNzOiAoKSA9PiB7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiBjcmVhdG9yS2V5cy5hbGwgfSk7XG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cblxuLyoqXG4gKiBVcGRhdGUgYSBjcmVhdG9yIHByb2ZpbGVcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBjb25zdCB7IG11dGF0ZUFzeW5jOiB1cGRhdGVDcmVhdG9yIH0gPSB1c2VVcGRhdGVDcmVhdG9yKCk7XG4gKlxuICogYXdhaXQgdXBkYXRlQ3JlYXRvcih7XG4gKiAgIGlkOiAnY3JlYXRvci0xMjMnLFxuICogICBkYXRhOiB7IGJpbzogJ1VwZGF0ZWQgYmlvJyB9LFxuICogfSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVVwZGF0ZUNyZWF0b3IoXG4gIG9wdGlvbnM/OiBPbWl0PFxuICAgIFVzZU11dGF0aW9uT3B0aW9uczxDcmVhdG9yUmVzcG9uc2UsIEVycm9yLCB7IGlkOiBzdHJpbmc7IGRhdGE6IFVwZGF0ZUNyZWF0b3JSZXF1ZXN0IH0+LFxuICAgICdtdXRhdGlvbkZuJ1xuICA+XG4pIHtcbiAgY29uc3QgcXVlcnlDbGllbnQgPSB1c2VRdWVyeUNsaWVudCgpO1xuXG4gIHJldHVybiB1c2VNdXRhdGlvbih7XG4gICAgbXV0YXRpb25GbjogYXN5bmMgKHsgaWQsIGRhdGEgfTogeyBpZDogc3RyaW5nOyBkYXRhOiBVcGRhdGVDcmVhdG9yUmVxdWVzdCB9KTogUHJvbWlzZTxDcmVhdG9yUmVzcG9uc2U+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQucGF0Y2goYC9hcGkvdjEvY3JlYXRvcnMvJHtpZH1gLCBkYXRhKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIH0sXG4gICAgb25TdWNjZXNzOiAoXywgdmFyaWFibGVzKSA9PiB7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiBjcmVhdG9yS2V5cy5kZXRhaWwodmFyaWFibGVzLmlkKSB9KTtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IGNyZWF0b3JLZXlzLm1lKCkgfSk7XG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cblxuLyoqXG4gKiBBZGQgYW4gYXZhaWxhYmlsaXR5IHNsb3QgZm9yIGEgY3JlYXRvclxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIGNvbnN0IHsgbXV0YXRlQXN5bmM6IGFkZEF2YWlsYWJpbGl0eSB9ID0gdXNlQWRkQ3JlYXRvckF2YWlsYWJpbGl0eSgpO1xuICpcbiAqIGF3YWl0IGFkZEF2YWlsYWJpbGl0eSh7XG4gKiAgIGNyZWF0b3JJZDogJ2NyZWF0b3ItMTIzJyxcbiAqICAgZGF0YToge1xuICogICAgIGRheU9mV2VlazogMSwgLy8gTW9uZGF5XG4gKiAgICAgc3RhcnRUaW1lOiAnMDk6MDAnLFxuICogICAgIGVuZFRpbWU6ICcxNzowMCcsXG4gKiAgICAgdGltZXpvbmU6ICdFdXJvcGUvTG9uZG9uJyxcbiAqICAgICBpc1JlY3VycmluZzogdHJ1ZSxcbiAqICAgfSxcbiAqIH0pO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VBZGRDcmVhdG9yQXZhaWxhYmlsaXR5KFxuICBvcHRpb25zPzogT21pdDxcbiAgICBVc2VNdXRhdGlvbk9wdGlvbnM8XG4gICAgICBDcmVhdG9yQXZhaWxhYmlsaXR5UmVzcG9uc2UsXG4gICAgICBFcnJvcixcbiAgICAgIHsgY3JlYXRvcklkOiBzdHJpbmc7IGRhdGE6IENyZWF0ZUF2YWlsYWJpbGl0eVJlcXVlc3QgfVxuICAgID4sXG4gICAgJ211dGF0aW9uRm4nXG4gID5cbikge1xuICBjb25zdCBxdWVyeUNsaWVudCA9IHVzZVF1ZXJ5Q2xpZW50KCk7XG5cbiAgcmV0dXJuIHVzZU11dGF0aW9uKHtcbiAgICBtdXRhdGlvbkZuOiBhc3luYyAoe1xuICAgICAgY3JlYXRvcklkLFxuICAgICAgZGF0YSxcbiAgICB9OiB7XG4gICAgICBjcmVhdG9ySWQ6IHN0cmluZztcbiAgICAgIGRhdGE6IENyZWF0ZUF2YWlsYWJpbGl0eVJlcXVlc3Q7XG4gICAgfSk6IFByb21pc2U8Q3JlYXRvckF2YWlsYWJpbGl0eVJlc3BvbnNlPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnBvc3QoYC9hcGkvdjEvY3JlYXRvcnMvJHtjcmVhdG9ySWR9L2F2YWlsYWJpbGl0eWAsIGRhdGEpO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgfSxcbiAgICBvblN1Y2Nlc3M6IChfLCB2YXJpYWJsZXMpID0+IHtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IGNyZWF0b3JLZXlzLmF2YWlsYWJpbGl0eSh2YXJpYWJsZXMuY3JlYXRvcklkKSB9KTtcbiAgICB9LFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pO1xufVxuXG4vKipcbiAqIFJlbW92ZSBhbiBhdmFpbGFiaWxpdHkgc2xvdCBmb3IgYSBjcmVhdG9yXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgeyBtdXRhdGVBc3luYzogcmVtb3ZlQXZhaWxhYmlsaXR5IH0gPSB1c2VSZW1vdmVDcmVhdG9yQXZhaWxhYmlsaXR5KCk7XG4gKlxuICogYXdhaXQgcmVtb3ZlQXZhaWxhYmlsaXR5KHtcbiAqICAgY3JlYXRvcklkOiAnY3JlYXRvci0xMjMnLFxuICogICBhdmFpbGFiaWxpdHlJZDogJ2F2YWlsYWJpbGl0eS00NTYnLFxuICogfSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVJlbW92ZUNyZWF0b3JBdmFpbGFiaWxpdHkoXG4gIG9wdGlvbnM/OiBPbWl0PFxuICAgIFVzZU11dGF0aW9uT3B0aW9uczx2b2lkLCBFcnJvciwgeyBjcmVhdG9ySWQ6IHN0cmluZzsgYXZhaWxhYmlsaXR5SWQ6IHN0cmluZyB9PixcbiAgICAnbXV0YXRpb25GbidcbiAgPlxuKSB7XG4gIGNvbnN0IHF1ZXJ5Q2xpZW50ID0gdXNlUXVlcnlDbGllbnQoKTtcblxuICByZXR1cm4gdXNlTXV0YXRpb24oe1xuICAgIG11dGF0aW9uRm46IGFzeW5jICh7XG4gICAgICBjcmVhdG9ySWQsXG4gICAgICBhdmFpbGFiaWxpdHlJZCxcbiAgICB9OiB7XG4gICAgICBjcmVhdG9ySWQ6IHN0cmluZztcbiAgICAgIGF2YWlsYWJpbGl0eUlkOiBzdHJpbmc7XG4gICAgfSk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBhd2FpdCBjbGllbnQuZGVsZXRlKGAvYXBpL3YxL2NyZWF0b3JzLyR7Y3JlYXRvcklkfS9hdmFpbGFiaWxpdHkvJHthdmFpbGFiaWxpdHlJZH1gKTtcbiAgICB9LFxuICAgIG9uU3VjY2VzczogKF8sIHZhcmlhYmxlcykgPT4ge1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogY3JlYXRvcktleXMuYXZhaWxhYmlsaXR5KHZhcmlhYmxlcy5jcmVhdG9ySWQpIH0pO1xuICAgIH0sXG4gICAgLi4ub3B0aW9ucyxcbiAgfSk7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIENSRUFUT1IgUkVXQVJEU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZUNyZWF0b3JSZXdhcmRSZXF1ZXN0IHtcbiAgYmFkZ2VJZDogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICByZWRlZW1UeXBlOiAnSU5fUEVSU09OJyB8ICdPTkxJTkUnIHwgJ0JPVEgnO1xuICBjb2RlPzogc3RyaW5nO1xuICBtYXhSZWRlbXB0aW9ucz86IG51bWJlcjtcbiAgdmFsaWRVbnRpbD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdG9yUmV3YXJkUmVzcG9uc2Uge1xuICBpZDogc3RyaW5nO1xuICBjcmVhdG9ySWQ6IHN0cmluZztcbiAgYmFkZ2VJZDogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICByZWRlZW1UeXBlOiAnSU5fUEVSU09OJyB8ICdPTkxJTkUnIHwgJ0JPVEgnO1xuICBjb2RlPzogc3RyaW5nO1xuICBtYXhSZWRlbXB0aW9ucz86IG51bWJlcjtcbiAgdmFsaWRVbnRpbD86IHN0cmluZztcbiAgY3JlYXRlZEF0OiBzdHJpbmc7XG4gIHVwZGF0ZWRBdDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZUNyZWF0b3JSZXdhcmRSZXF1ZXN0IHtcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICByZWRlZW1UeXBlPzogJ0lOX1BFUlNPTicgfCAnT05MSU5FJyB8ICdCT1RIJztcbiAgY29kZT86IHN0cmluZztcbiAgbWF4UmVkZW1wdGlvbnM/OiBudW1iZXI7XG4gIHZhbGlkVW50aWw/OiBzdHJpbmc7XG4gIGlzQWN0aXZlPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBuZXcgcmV3YXJkIGZvciBhIGNyZWF0b3JcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBjb25zdCBjcmVhdGVSZXdhcmQgPSB1c2VDcmVhdGVDcmVhdG9yUmV3YXJkKGNyZWF0b3JJZCk7XG4gKlxuICogYXdhaXQgY3JlYXRlUmV3YXJkLm11dGF0ZUFzeW5jKHtcbiAqICAgYmFkZ2VJZDogJ2JhZGdlLTEyMycsXG4gKiAgIHRpdGxlOiAnRnJlZSBTZXNzaW9uJyxcbiAqICAgZGVzY3JpcHRpb246ICdHZXQgYSBmcmVlIDMwLW1pbnV0ZSBzZXNzaW9uJyxcbiAqICAgcmVkZWVtVHlwZTogJ0lOX1BFUlNPTicsXG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlQ3JlYXRlQ3JlYXRvclJld2FyZChjcmVhdG9ySWQ6IHN0cmluZykge1xuICBjb25zdCBxdWVyeUNsaWVudCA9IHVzZVF1ZXJ5Q2xpZW50KCk7XG5cbiAgcmV0dXJuIHVzZU11dGF0aW9uKHtcbiAgICBtdXRhdGlvbkZuOiBhc3luYyAoZGF0YTogQ3JlYXRlQ3JlYXRvclJld2FyZFJlcXVlc3QpOiBQcm9taXNlPENyZWF0b3JSZXdhcmRSZXNwb25zZT4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5wb3N0KGAvYXBpL3YxL2NyZWF0b3JzLyR7Y3JlYXRvcklkfS9yZXdhcmRzYCwgZGF0YSk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICB9LFxuICAgIG9uU3VjY2VzczogKCkgPT4ge1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogY3JlYXRvcktleXMuZGV0YWlsKGNyZWF0b3JJZCkgfSk7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiBjcmVhdG9yS2V5cy5yZXdhcmRzKGNyZWF0b3JJZCkgfSk7XG4gICAgfSxcbiAgfSk7XG59XG5cbi8qKlxuICogVXBkYXRlIGFuIGV4aXN0aW5nIHJld2FyZCBmb3IgYSBjcmVhdG9yXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgdXBkYXRlUmV3YXJkID0gdXNlVXBkYXRlQ3JlYXRvclJld2FyZChjcmVhdG9ySWQpO1xuICpcbiAqIGF3YWl0IHVwZGF0ZVJld2FyZC5tdXRhdGVBc3luYyh7XG4gKiAgIGlkOiAncmV3YXJkLTEyMycsXG4gKiAgIGRhdGE6IHsgaXNBY3RpdmU6IGZhbHNlIH0sXG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlVXBkYXRlQ3JlYXRvclJld2FyZChcbiAgY3JlYXRvcklkOiBzdHJpbmcsXG4gIG9wdGlvbnM/OiBPbWl0PFxuICAgIFVzZU11dGF0aW9uT3B0aW9uczxDcmVhdG9yUmV3YXJkUmVzcG9uc2UsIEVycm9yLCB7IGlkOiBzdHJpbmc7IGRhdGE6IFVwZGF0ZUNyZWF0b3JSZXdhcmRSZXF1ZXN0IH0+LFxuICAgICdtdXRhdGlvbkZuJ1xuICA+XG4pIHtcbiAgY29uc3QgcXVlcnlDbGllbnQgPSB1c2VRdWVyeUNsaWVudCgpO1xuXG4gIHJldHVybiB1c2VNdXRhdGlvbih7XG4gICAgbXV0YXRpb25GbjogYXN5bmMgKHsgaWQsIGRhdGEgfTogeyBpZDogc3RyaW5nOyBkYXRhOiBVcGRhdGVDcmVhdG9yUmV3YXJkUmVxdWVzdCB9KTogUHJvbWlzZTxDcmVhdG9yUmV3YXJkUmVzcG9uc2U+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQucGF0Y2goYC9hcGkvdjEvY3JlYXRvcnMvJHtjcmVhdG9ySWR9L3Jld2FyZHMvJHtpZH1gLCBkYXRhKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIH0sXG4gICAgb25TdWNjZXNzOiAoKSA9PiB7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiBjcmVhdG9yS2V5cy5yZXdhcmRzKGNyZWF0b3JJZCkgfSk7XG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cblxuLyoqXG4gKiBEZWxldGUgYSByZXdhcmQgZm9yIGEgY3JlYXRvclxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIGNvbnN0IGRlbGV0ZVJld2FyZCA9IHVzZURlbGV0ZUNyZWF0b3JSZXdhcmQoY3JlYXRvcklkKTtcbiAqXG4gKiBhd2FpdCBkZWxldGVSZXdhcmQubXV0YXRlQXN5bmMoJ3Jld2FyZC0xMjMnKTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlRGVsZXRlQ3JlYXRvclJld2FyZChcbiAgY3JlYXRvcklkOiBzdHJpbmcsXG4gIG9wdGlvbnM/OiBPbWl0PFVzZU11dGF0aW9uT3B0aW9uczx2b2lkLCBFcnJvciwgc3RyaW5nPiwgJ211dGF0aW9uRm4nPlxuKSB7XG4gIGNvbnN0IHF1ZXJ5Q2xpZW50ID0gdXNlUXVlcnlDbGllbnQoKTtcblxuICByZXR1cm4gdXNlTXV0YXRpb24oe1xuICAgIG11dGF0aW9uRm46IGFzeW5jIChyZXdhcmRJZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGF3YWl0IGNsaWVudC5kZWxldGUoYC9hcGkvdjEvY3JlYXRvcnMvJHtjcmVhdG9ySWR9L3Jld2FyZHMvJHtyZXdhcmRJZH1gKTtcbiAgICB9LFxuICAgIG9uU3VjY2VzczogKCkgPT4ge1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogY3JlYXRvcktleXMucmV3YXJkcyhjcmVhdG9ySWQpIH0pO1xuICAgIH0sXG4gICAgLi4ub3B0aW9ucyxcbiAgfSk7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEdBVEhFUklORyBUWVBFIE1VVEFUSU9OU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIENyZWF0ZSBhIG5ldyBnYXRoZXJpbmcgdHlwZSBmb3IgYSBjcmVhdG9yXG4gKlxuICogQHBhcmFtIGNyZWF0b3JJZCAtIENyZWF0b3IgSURcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBjb25zdCBjcmVhdGVHYXRoZXJpbmdUeXBlID0gdXNlQ3JlYXRlR2F0aGVyaW5nVHlwZShjcmVhdG9ySWQpO1xuICpcbiAqIGF3YWl0IGNyZWF0ZUdhdGhlcmluZ1R5cGUubXV0YXRlQXN5bmMoe1xuICogICBuYW1lOiAnTW9ybmluZyBZb2dhIGluIHRoZSBQYXJrJyxcbiAqICAgZGVzY3JpcHRpb246ICdHZW50bGUgNDUtbWludXRlIHlvZ2Egc2Vzc2lvbicsXG4gKiAgIGR1cmF0aW9uOiA0NSxcbiAqICAgdmliZXM6IFsnTWluZGZ1bCcsICdDaGlsbCddLFxuICogICBjYXRlZ29yeTogJ01PVkVNRU5UJyxcbiAqIH0pO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VDcmVhdGVHYXRoZXJpbmdUeXBlKGNyZWF0b3JJZDogc3RyaW5nKSB7XG4gIGNvbnN0IHF1ZXJ5Q2xpZW50ID0gdXNlUXVlcnlDbGllbnQoKTtcblxuICByZXR1cm4gdXNlTXV0YXRpb24oe1xuICAgIG11dGF0aW9uRm46IGFzeW5jIChkYXRhOiBDcmVhdGVHYXRoZXJpbmdUeXBlUmVxdWVzdCk6IFByb21pc2U8R2F0aGVyaW5nVHlwZVJlc3BvbnNlPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnBvc3QoYC9hcGkvdjEvY3JlYXRvcnMvJHtjcmVhdG9ySWR9L2dhdGhlcmluZy10eXBlc2AsIGRhdGEpO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgfSxcbiAgICBvblN1Y2Nlc3M6ICgpID0+IHtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IGNyZWF0b3JLZXlzLmdhdGhlcmluZ1R5cGVzKGNyZWF0b3JJZCkgfSk7XG4gICAgfSxcbiAgfSk7XG59XG5cbi8qKlxuICogVXBkYXRlIGEgZ2F0aGVyaW5nIHR5cGVcbiAqXG4gKiBAcGFyYW0gY3JlYXRvcklkIC0gQ3JlYXRvciBJRFxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIGNvbnN0IHVwZGF0ZUdhdGhlcmluZ1R5cGUgPSB1c2VVcGRhdGVHYXRoZXJpbmdUeXBlKGNyZWF0b3JJZCk7XG4gKlxuICogYXdhaXQgdXBkYXRlR2F0aGVyaW5nVHlwZS5tdXRhdGVBc3luYyh7XG4gKiAgIGlkOiAnZ2F0aGVyaW5nLXR5cGUtMTIzJyxcbiAqICAgZGF0YTogeyBkZXNjcmlwdGlvbjogJ1VwZGF0ZWQgZGVzY3JpcHRpb24nIH0sXG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlVXBkYXRlR2F0aGVyaW5nVHlwZShjcmVhdG9ySWQ6IHN0cmluZykge1xuICBjb25zdCBxdWVyeUNsaWVudCA9IHVzZVF1ZXJ5Q2xpZW50KCk7XG5cbiAgcmV0dXJuIHVzZU11dGF0aW9uKHtcbiAgICBtdXRhdGlvbkZuOiBhc3luYyAoe1xuICAgICAgaWQsXG4gICAgICBkYXRhLFxuICAgIH06IHtcbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgICBkYXRhOiBVcGRhdGVHYXRoZXJpbmdUeXBlUmVxdWVzdDtcbiAgICB9KTogUHJvbWlzZTxHYXRoZXJpbmdUeXBlUmVzcG9uc2U+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQucHV0KGAvYXBpL3YxL2NyZWF0b3JzLyR7Y3JlYXRvcklkfS9nYXRoZXJpbmctdHlwZXMvJHtpZH1gLCBkYXRhKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIH0sXG4gICAgb25TdWNjZXNzOiAoKSA9PiB7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiBjcmVhdG9yS2V5cy5nYXRoZXJpbmdUeXBlcyhjcmVhdG9ySWQpIH0pO1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogY3JlYXRvcktleXMuYXBwcm92ZWRHYXRoZXJpbmdUeXBlcyhjcmVhdG9ySWQpIH0pO1xuICAgIH0sXG4gIH0pO1xufVxuXG4vKipcbiAqIEFwcHJvdmUgYSBnYXRoZXJpbmcgdHlwZSAoZm9yIEFJLXN1Z2dlc3RlZCB0eXBlcylcbiAqXG4gKiBAcGFyYW0gY3JlYXRvcklkIC0gQ3JlYXRvciBJRFxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIGNvbnN0IGFwcHJvdmVHYXRoZXJpbmdUeXBlID0gdXNlQXBwcm92ZUdhdGhlcmluZ1R5cGUoY3JlYXRvcklkKTtcbiAqXG4gKiBhd2FpdCBhcHByb3ZlR2F0aGVyaW5nVHlwZS5tdXRhdGVBc3luYygnZ2F0aGVyaW5nLXR5cGUtMTIzJyk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUFwcHJvdmVHYXRoZXJpbmdUeXBlKGNyZWF0b3JJZDogc3RyaW5nKSB7XG4gIGNvbnN0IHF1ZXJ5Q2xpZW50ID0gdXNlUXVlcnlDbGllbnQoKTtcblxuICByZXR1cm4gdXNlTXV0YXRpb24oe1xuICAgIG11dGF0aW9uRm46IGFzeW5jIChnYXRoZXJpbmdUeXBlSWQ6IHN0cmluZyk6IFByb21pc2U8R2F0aGVyaW5nVHlwZVJlc3BvbnNlPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnB1dChcbiAgICAgICAgYC9hcGkvdjEvY3JlYXRvcnMvJHtjcmVhdG9ySWR9L2dhdGhlcmluZy10eXBlcy8ke2dhdGhlcmluZ1R5cGVJZH0vYXBwcm92ZWBcbiAgICAgICk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICB9LFxuICAgIG9uU3VjY2VzczogKCkgPT4ge1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogY3JlYXRvcktleXMuZ2F0aGVyaW5nVHlwZXMoY3JlYXRvcklkKSB9KTtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IGNyZWF0b3JLZXlzLmFwcHJvdmVkR2F0aGVyaW5nVHlwZXMoY3JlYXRvcklkKSB9KTtcbiAgICB9LFxuICB9KTtcbn1cblxuLyoqXG4gKiBEZWxldGUgYSBnYXRoZXJpbmcgdHlwZVxuICpcbiAqIEBwYXJhbSBjcmVhdG9ySWQgLSBDcmVhdG9yIElEXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgZGVsZXRlR2F0aGVyaW5nVHlwZSA9IHVzZURlbGV0ZUdhdGhlcmluZ1R5cGUoY3JlYXRvcklkKTtcbiAqXG4gKiBhd2FpdCBkZWxldGVHYXRoZXJpbmdUeXBlLm11dGF0ZUFzeW5jKCdnYXRoZXJpbmctdHlwZS0xMjMnKTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlRGVsZXRlR2F0aGVyaW5nVHlwZShjcmVhdG9ySWQ6IHN0cmluZykge1xuICBjb25zdCBxdWVyeUNsaWVudCA9IHVzZVF1ZXJ5Q2xpZW50KCk7XG5cbiAgcmV0dXJuIHVzZU11dGF0aW9uKHtcbiAgICBtdXRhdGlvbkZuOiBhc3luYyAoZ2F0aGVyaW5nVHlwZUlkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgYXdhaXQgY2xpZW50LmRlbGV0ZShgL2FwaS92MS9jcmVhdG9ycy8ke2NyZWF0b3JJZH0vZ2F0aGVyaW5nLXR5cGVzLyR7Z2F0aGVyaW5nVHlwZUlkfWApO1xuICAgIH0sXG4gICAgb25TdWNjZXNzOiAoKSA9PiB7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiBjcmVhdG9yS2V5cy5nYXRoZXJpbmdUeXBlcyhjcmVhdG9ySWQpIH0pO1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogY3JlYXRvcktleXMuYXBwcm92ZWRHYXRoZXJpbmdUeXBlcyhjcmVhdG9ySWQpIH0pO1xuICAgIH0sXG4gIH0pO1xufVxuXG4vKipcbiAqIEdlbmVyYXRlIEFJIHN1Z2dlc3Rpb25zIGZvciBnYXRoZXJpbmcgdHlwZXMgYmFzZWQgb24gZmFjaWxpdGF0b3IgcHJvZmlsZVxuICpcbiAqIEBwYXJhbSBjcmVhdG9ySWQgLSBDcmVhdG9yIElEXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgZ2VuZXJhdGVTdWdnZXN0aW9ucyA9IHVzZUdlbmVyYXRlR2F0aGVyaW5nVHlwZVN1Z2dlc3Rpb25zKGNyZWF0b3JJZCk7XG4gKlxuICogYXdhaXQgZ2VuZXJhdGVTdWdnZXN0aW9ucy5tdXRhdGVBc3luYygpO1xuICogLy8gUmV0dXJucyB0aGUgbmV3bHkgY3JlYXRlZCAodW5hcHByb3ZlZCkgZ2F0aGVyaW5nIHR5cGVzXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUdlbmVyYXRlR2F0aGVyaW5nVHlwZVN1Z2dlc3Rpb25zKGNyZWF0b3JJZDogc3RyaW5nKSB7XG4gIGNvbnN0IHF1ZXJ5Q2xpZW50ID0gdXNlUXVlcnlDbGllbnQoKTtcblxuICByZXR1cm4gdXNlTXV0YXRpb24oe1xuICAgIG11dGF0aW9uRm46IGFzeW5jICgpOiBQcm9taXNlPEdhdGhlcmluZ1R5cGVSZXNwb25zZVtdPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnBvc3QoYC9hcGkvdjEvY3JlYXRvcnMvJHtjcmVhdG9ySWR9L2dhdGhlcmluZy10eXBlcy9nZW5lcmF0ZWApO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgfSxcbiAgICBvblN1Y2Nlc3M6ICgpID0+IHtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IGNyZWF0b3JLZXlzLmdhdGhlcmluZ1R5cGVzKGNyZWF0b3JJZCkgfSk7XG4gICAgfSxcbiAgfSk7XG59XG4iXX0=
@@ -62,28 +62,45 @@ export declare function useMarkMessagesAsRead(eventId: string): import("@tanstac
62
62
  */
63
63
  export declare function useSendEventChatMessage(eventId: string): import("@tanstack/react-query").UseMutationResult<{
64
64
  id: string;
65
- conversationId: string;
66
- role: "USER" | "ASSISTANT" | "SYSTEM";
65
+ chatId: string;
66
+ userId: string;
67
67
  content: string;
68
- model?: Record<string, never>;
69
- promptTokens?: Record<string, never>;
70
- completionTokens?: Record<string, never>;
68
+ messageType: "TEXT" | "IMAGE" | "SYSTEM" | "ANNOUNCEMENT";
69
+ imageUrl?: string;
70
+ replyToId?: string;
71
+ isEdited: boolean;
72
+ isDeleted: boolean;
71
73
  createdAt: string;
74
+ updatedAt?: string;
75
+ userName?: string;
76
+ userImage?: string;
77
+ replyToContent?: string;
78
+ replyToUserName?: string;
72
79
  }, Error, {
73
80
  content: string;
81
+ messageType: "TEXT" | "IMAGE" | "SYSTEM" | "ANNOUNCEMENT";
82
+ imageUrl?: string;
83
+ replyToId?: string;
74
84
  }, unknown>;
75
85
  /**
76
86
  * Update a message
77
87
  */
78
88
  export declare function useUpdateEventChatMessage(eventId: string): import("@tanstack/react-query").UseMutationResult<{
79
89
  id: string;
80
- conversationId: string;
81
- role: "USER" | "ASSISTANT" | "SYSTEM";
90
+ chatId: string;
91
+ userId: string;
82
92
  content: string;
83
- model?: Record<string, never>;
84
- promptTokens?: Record<string, never>;
85
- completionTokens?: Record<string, never>;
93
+ messageType: "TEXT" | "IMAGE" | "SYSTEM" | "ANNOUNCEMENT";
94
+ imageUrl?: string;
95
+ replyToId?: string;
96
+ isEdited: boolean;
97
+ isDeleted: boolean;
86
98
  createdAt: string;
99
+ updatedAt?: string;
100
+ userName?: string;
101
+ userImage?: string;
102
+ replyToContent?: string;
103
+ replyToUserName?: string;
87
104
  }, Error, {
88
105
  messageId: string;
89
106
  } & {
@@ -1,5 +1,5 @@
1
1
  import { UseQueryOptions } from '@tanstack/react-query';
2
- import type { CreatorResponse, CreatorAvailabilityResponse, EventResponse, LibraryContentResponse, RewardResponse } from '../types';
2
+ import type { CreatorResponse, CreatorAvailabilityResponse, EventResponse, LibraryContentResponse, RewardResponse, GatheringTypeResponse } from '../types';
3
3
  export declare const creatorKeys: {
4
4
  all: readonly ["creators"];
5
5
  lists: () => readonly ["creators", "list"];
@@ -14,6 +14,8 @@ export declare const creatorKeys: {
14
14
  allContent: (creatorId: string) => readonly ["creators", "detail", string, "content", "all"];
15
15
  events: (creatorId: string) => readonly ["creators", "detail", string, "events"];
16
16
  rewards: (creatorId: string) => readonly ["creators", "detail", string, "rewards"];
17
+ gatheringTypes: (creatorId: string) => readonly ["creators", "detail", string, "gathering-types"];
18
+ approvedGatheringTypes: (creatorId: string) => readonly ["creators", "detail", string, "gathering-types", "approved"];
17
19
  };
18
20
  export interface CreatorFilters {
19
21
  page?: number;
@@ -344,3 +346,61 @@ export declare function useCreatorEvents(creatorId: string, upcoming?: boolean,
344
346
  * ```
345
347
  */
346
348
  export declare function useCreatorRewards(creatorId: string, options?: Omit<UseQueryOptions<RewardResponse[]>, 'queryKey' | 'queryFn'>): import("@tanstack/react-query").UseQueryResult<RewardResponse[], Error>;
349
+ /**
350
+ * Get all gathering types for a creator (including unapproved AI suggestions)
351
+ *
352
+ * @param creatorId - Creator ID
353
+ * @param options - TanStack Query options
354
+ *
355
+ * @example
356
+ * ```tsx
357
+ * const { data, isLoading } = useCreatorGatheringTypes('creator-123');
358
+ * ```
359
+ */
360
+ export declare function useCreatorGatheringTypes(creatorId: string, options?: Omit<UseQueryOptions<GatheringTypeResponse[]>, 'queryKey' | 'queryFn'>): import("@tanstack/react-query").UseQueryResult<{
361
+ id: string;
362
+ creatorId: string;
363
+ name: string;
364
+ description?: Record<string, never> | null;
365
+ duration: number;
366
+ vibes: string[];
367
+ category?: "WALK" | "COFFEE" | "MOVEMENT" | "CONVERSATION" | "CREATIVE" | "COWORKING" | null;
368
+ suggestedPrice?: Record<string, never> | null;
369
+ currency: string;
370
+ isAiGenerated: boolean;
371
+ isApproved: boolean;
372
+ aiPromptContext?: Record<string, never> | null;
373
+ defaultVenueId?: Record<string, never> | null;
374
+ defaultVenue?: Record<string, never> | null;
375
+ createdAt: string;
376
+ updatedAt: string;
377
+ }[], Error>;
378
+ /**
379
+ * Get approved gathering types for a creator
380
+ *
381
+ * @param creatorId - Creator ID
382
+ * @param options - TanStack Query options
383
+ *
384
+ * @example
385
+ * ```tsx
386
+ * const { data, isLoading } = useCreatorApprovedGatheringTypes('creator-123');
387
+ * ```
388
+ */
389
+ export declare function useCreatorApprovedGatheringTypes(creatorId: string, options?: Omit<UseQueryOptions<GatheringTypeResponse[]>, 'queryKey' | 'queryFn'>): import("@tanstack/react-query").UseQueryResult<{
390
+ id: string;
391
+ creatorId: string;
392
+ name: string;
393
+ description?: Record<string, never> | null;
394
+ duration: number;
395
+ vibes: string[];
396
+ category?: "WALK" | "COFFEE" | "MOVEMENT" | "CONVERSATION" | "CREATIVE" | "COWORKING" | null;
397
+ suggestedPrice?: Record<string, never> | null;
398
+ currency: string;
399
+ isAiGenerated: boolean;
400
+ isApproved: boolean;
401
+ aiPromptContext?: Record<string, never> | null;
402
+ defaultVenueId?: Record<string, never> | null;
403
+ defaultVenue?: Record<string, never> | null;
404
+ createdAt: string;
405
+ updatedAt: string;
406
+ }[], Error>;
@@ -11,6 +11,8 @@ exports.useCreatorContent = useCreatorContent;
11
11
  exports.useCreatorAllContent = useCreatorAllContent;
12
12
  exports.useCreatorEvents = useCreatorEvents;
13
13
  exports.useCreatorRewards = useCreatorRewards;
14
+ exports.useCreatorGatheringTypes = useCreatorGatheringTypes;
15
+ exports.useCreatorApprovedGatheringTypes = useCreatorApprovedGatheringTypes;
14
16
  const react_query_1 = require("@tanstack/react-query");
15
17
  const client_1 = require("../client");
16
18
  // ============================================================================
@@ -30,6 +32,8 @@ exports.creatorKeys = {
30
32
  allContent: (creatorId) => [...exports.creatorKeys.detail(creatorId), 'content', 'all'],
31
33
  events: (creatorId) => [...exports.creatorKeys.detail(creatorId), 'events'],
32
34
  rewards: (creatorId) => [...exports.creatorKeys.detail(creatorId), 'rewards'],
35
+ gatheringTypes: (creatorId) => [...exports.creatorKeys.detail(creatorId), 'gathering-types'],
36
+ approvedGatheringTypes: (creatorId) => [...exports.creatorKeys.detail(creatorId), 'gathering-types', 'approved'],
33
37
  };
34
38
  // ============================================================================
35
39
  // QUERY HOOKS
@@ -271,4 +275,53 @@ function useCreatorRewards(creatorId, options) {
271
275
  ...options,
272
276
  });
273
277
  }
274
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL3F1ZXJpZXMvY3JlYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBK0VBLGtDQWVDO0FBYUQsZ0NBY0M7QUFhRCw0Q0FjQztBQWFELDRDQWNDO0FBWUQsa0RBWUM7QUFhRCx3REFjQztBQWFELDhDQWNDO0FBY0Qsb0RBY0M7QUFjRCw0Q0FpQkM7QUFhRCw4Q0FjQztBQW5WRCx1REFBa0U7QUFDbEUsc0NBQXlDO0FBU3pDLCtFQUErRTtBQUMvRSxvQkFBb0I7QUFDcEIsK0VBQStFO0FBRWxFLFFBQUEsV0FBVyxHQUFHO0lBQ3pCLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBVTtJQUMxQixLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLG1CQUFXLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBVTtJQUNsRCxJQUFJLEVBQUUsQ0FBQyxPQUF3QixFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsbUJBQVcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxPQUFPLENBQVU7SUFDOUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxtQkFBVyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQVU7SUFDdEQsTUFBTSxFQUFFLENBQUMsRUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsbUJBQVcsQ0FBQyxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQVU7SUFDL0QsSUFBSSxFQUFFLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsbUJBQVcsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBVTtJQUNuRSxNQUFNLEVBQUUsQ0FBQyxNQUFjLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxtQkFBVyxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFVO0lBQ3pFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcs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QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZVF1ZXJ5LCBVc2VRdWVyeU9wdGlvbnMgfSBmcm9tICdAdGFuc3RhY2svcmVhY3QtcXVlcnknO1xuaW1wb3J0IHsgZ2V0QXBpQ2xpZW50IH0gZnJvbSAnLi4vY2xpZW50JztcbmltcG9ydCB0eXBlIHtcbiAgQ3JlYXRvclJlc3BvbnNlLFxuICBDcmVhdG9yQXZhaWxhYmlsaXR5UmVzcG9uc2UsXG4gIEV2ZW50UmVzcG9uc2UsXG4gIExpYnJhcnlDb250ZW50UmVzcG9uc2UsXG4gIFJld2FyZFJlc3BvbnNlLFxufSBmcm9tICcuLi90eXBlcyc7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFFVRVJZIEtFWSBGQUNUT1JZXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCBjb25zdCBjcmVhdG9yS2V5cyA9IHtcbiAgYWxsOiBbJ2NyZWF0b3JzJ10gYXMgY29uc3QsXG4gIGxpc3RzOiAoKSA9PiBbLi4uY3JlYXRvcktleXMuYWxsLCAnbGlzdCddIGFzIGNvbnN0LFxuICBsaXN0OiAoZmlsdGVycz86IENyZWF0b3JGaWx0ZXJzKSA9PiBbLi4uY3JlYXRvcktleXMubGlzdHMoKSwgZmlsdGVyc10gYXMgY29uc3QsXG4gIGRldGFpbHM6ICgpID0+IFsuLi5jcmVhdG9yS2V5cy5hbGwsICdkZXRhaWwnXSBhcyBjb25zdCxcbiAgZGV0YWlsOiAoaWQ6IHN0cmluZykgPT4gWy4uLmNyZWF0b3JLZXlzLmRldGFpbHMoKSwgaWRdIGFzIGNvbnN0LFxuICBzbHVnOiAoc2x1Zzogc3RyaW5nKSA9PiBbLi4uY3JlYXRvcktleXMuYWxsLCAnc2x1ZycsIHNsdWddIGFzIGNvbnN0LFxuICBieVVzZXI6ICh1c2VySWQ6IHN0cmluZykgPT4gWy4uLmNyZWF0b3JLZXlzLmFsbCwgJ3VzZXInLCB1c2VySWRdIGFzIGNvbnN0LFxuICBtZTogKCkgPT4gWy4uLmNyZWF0b3JLZXlzLmFsbCwgJ21lJ10gYXMgY29uc3QsXG4gIGF2YWlsYWJpbGl0eTogKGNyZWF0b3JJZDogc3RyaW5nKSA9PiBbLi4uY3JlYXRvcktleXMuZGV0YWlsKGNyZWF0b3JJZCksICdhdmFpbGFiaWxpdHknXSBhcyBjb25zdCxcbiAgY29udGVudDogKGNyZWF0b3JJZDogc3RyaW5nKSA9PiBbLi4uY3JlYXRvcktleXMuZGV0YWlsKGNyZWF0b3JJZCksICdjb250ZW50J10gYXMgY29uc3QsXG4gIGFsbENvbnRlbnQ6IChjcmVhdG9ySWQ6IHN0cmluZykgPT4gWy4uLmNyZWF0b3JLZXlzLmRldGFpbChjcmVhdG9ySWQpLCAnY29udGVudCcsICdhbGwnXSBhcyBjb25zdCxcbiAgZXZlbnRzOiAoY3JlYXRvcklkOiBzdHJpbmcpID0+IFsuLi5jcmVhdG9yS2V5cy5kZXRhaWwoY3JlYXRvcklkKSwgJ2V2ZW50cyddIGFzIGNvbnN0LFxuICByZXdhcmRzOiAoY3JlYXRvcklkOiBzdHJpbmcpID0+IFsuLi5jcmVhdG9yS2V5cy5kZXRhaWwoY3JlYXRvcklkKSwgJ3Jld2FyZHMnXSBhcyBjb25zdCxcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFRZUEVTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRvckZpbHRlcnMge1xuICBwYWdlPzogbnVtYmVyO1xuICBsaW1pdD86IG51bWJlcjtcbiAgc2VhcmNoPzogc3RyaW5nO1xuICBjaXR5SWQ/OiBzdHJpbmc7XG4gIGNhbkZhY2lsaXRhdGU/OiBib29sZWFuO1xuICBjYW5DcmVhdGVDb250ZW50PzogYm9vbGVhbjtcbiAgaXNJbmZsdWVuY2VyPzogYm9vbGVhbjtcbiAgaXNWZXJpZmllZD86IGJvb2xlYW47XG4gIHNvcnRCeT86IHN0cmluZztcbiAgc29ydE9yZGVyPzogJ2FzYycgfCAnZGVzYyc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFnaW5hdGVkQ3JlYXRvcnNSZXNwb25zZSB7XG4gIGNyZWF0b3JzOiBDcmVhdG9yUmVzcG9uc2VbXTtcbiAgbWV0YToge1xuICAgIHRvdGFsOiBudW1iZXI7XG4gICAgcGFnZTogbnVtYmVyO1xuICAgIGxpbWl0OiBudW1iZXI7XG4gICAgdG90YWxQYWdlczogbnVtYmVyO1xuICB9O1xufVxuXG4vLyBSZS1leHBvcnQgUmV3YXJkUmVzcG9uc2UgZnJvbSB0eXBlcyBmb3IgY29udmVuaWVuY2VcbmV4cG9ydCB0eXBlIHsgUmV3YXJkUmVzcG9uc2UgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFFVRVJZIEhPT0tTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogR2V0IHBhZ2luYXRlZCBsaXN0IG9mIGNyZWF0b3JzIHdpdGggb3B0aW9uYWwgZmlsdGVyc1xuICpcbiAqIEBwYXJhbSBmaWx0ZXJzIC0gUXVlcnkgcGFyYW1ldGVycyBmb3IgZmlsdGVyaW5nIGFuZCBwYWdpbmF0aW9uXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRhblN0YWNrIFF1ZXJ5IG9wdGlvbnNcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBjb25zdCB7IGRhdGEsIGlzTG9hZGluZyB9ID0gdXNlQ3JlYXRvcnMoe1xuICogICBwYWdlOiAxLFxuICogICBsaW1pdDogMjAsXG4gKiAgIGNhbkZhY2lsaXRhdGU6IHRydWUsXG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlQ3JlYXRvcnMoXG4gIGZpbHRlcnM/OiBDcmVhdG9yRmlsdGVycyxcbiAgb3B0aW9ucz86IE9taXQ8VXNlUXVlcnlPcHRpb25zPFBhZ2luYXRlZENyZWF0b3JzUmVzcG9uc2U+LCAncXVlcnlLZXknIHwgJ3F1ZXJ5Rm4nPlxuKSB7XG4gIHJldHVybiB1c2VRdWVyeSh7XG4gICAgcXVlcnlLZXk6IGNyZWF0b3JLZXlzLmxpc3QoZmlsdGVycyksXG4gICAgcXVlcnlGbjogYXN5bmMgKCk6IFByb21pc2U8UGFnaW5hdGVkQ3JlYXRvcnNSZXNwb25zZT4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5nZXQoJy9hcGkvdjEvY3JlYXRvcnMnLCB7XG4gICAgICAgIHBhcmFtczogZmlsdGVycyxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cblxuLyoqXG4gKiBHZXQgYSBzaW5nbGUgY3JlYXRvciBieSBJRFxuICpcbiAqIEBwYXJhbSBpZCAtIENyZWF0b3IgSURcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGFuU3RhY2sgUXVlcnkgb3B0aW9uc1xuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIGNvbnN0IHsgZGF0YSwgaXNMb2FkaW5nIH0gPSB1c2VDcmVhdG9yKCdjcmVhdG9yLTEyMycpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VDcmVhdG9yKFxuICBpZDogc3RyaW5nLFxuICBvcHRpb25zPzogT21pdDxVc2VRdWVyeU9wdGlvbnM8Q3JlYXRvclJlc3BvbnNlPiwgJ3F1ZXJ5S2V5JyB8ICdxdWVyeUZuJz5cbikge1xuICByZXR1cm4gdXNlUXVlcnkoe1xuICAgIHF1ZXJ5S2V5OiBjcmVhdG9yS2V5cy5kZXRhaWwoaWQpLFxuICAgIHF1ZXJ5Rm46IGFzeW5jICgpOiBQcm9taXNlPENyZWF0b3JSZXNwb25zZT4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5nZXQoYC9hcGkvdjEvY3JlYXRvcnMvJHtpZH1gKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIH0sXG4gICAgZW5hYmxlZDogISFpZCxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cblxuLyoqXG4gKiBHZXQgYSBjcmVhdG9yIGJ5IHRoZWlyIHNsdWdcbiAqXG4gKiBAcGFyYW0gc2x1ZyAtIENyZWF0b3Igc2x1Z1xuICogQHBhcmFtIG9wdGlvbnMgLSBUYW5TdGFjayBRdWVyeSBvcHRpb25zXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgeyBkYXRhLCBpc0xvYWRpbmcgfSA9IHVzZUNyZWF0b3JCeVNsdWcoJ2pvaG4tZG9lJyk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUNyZWF0b3JCeVNsdWcoXG4gIHNsdWc6IHN0cmluZyxcbiAgb3B0aW9ucz86IE9taXQ8VXNlUXVlcnlPcHRpb25zPENyZWF0b3JSZXNwb25zZT4sICdxdWVyeUtleScgfCAncXVlcnlGbic+XG4pIHtcbiAgcmV0dXJuIHVzZVF1ZXJ5KHtcbiAgICBxdWVyeUtleTogY3JlYXRvcktleXMuc2x1ZyhzbHVnKSxcbiAgICBxdWVyeUZuOiBhc3luYyAoKTogUHJvbWlzZTxDcmVhdG9yUmVzcG9uc2U+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0KGAvYXBpL3YxL2NyZWF0b3JzL3NsdWcvJHtzbHVnfWApO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgfSxcbiAgICBlbmFibGVkOiAhIXNsdWcsXG4gICAgLi4ub3B0aW9ucyxcbiAgfSk7XG59XG5cbi8qKlxuICogR2V0IGEgY3JlYXRvciBwcm9maWxlIGJ5IHVzZXIgSURcbiAqXG4gKiBAcGFyYW0gdXNlcklkIC0gVXNlciBJRFxuICogQHBhcmFtIG9wdGlvbnMgLSBUYW5TdGFjayBRdWVyeSBvcHRpb25zXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgeyBkYXRhLCBpc0xvYWRpbmcgfSA9IHVzZUNyZWF0b3JCeVVzZXIoJ3VzZXItMTIzJyk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUNyZWF0b3JCeVVzZXIoXG4gIHVzZXJJZDogc3RyaW5nLFxuICBvcHRpb25zPzogT21pdDxVc2VRdWVyeU9wdGlvbnM8Q3JlYXRvclJlc3BvbnNlIHwgbnVsbD4sICdxdWVyeUtleScgfCAncXVlcnlGbic+XG4pIHtcbiAgcmV0dXJuIHVzZVF1ZXJ5KHtcbiAgICBxdWVyeUtleTogY3JlYXRvcktleXMuYnlVc2VyKHVzZXJJZCksXG4gICAgcXVlcnlGbjogYXN5bmMgKCk6IFByb21pc2U8Q3JlYXRvclJlc3BvbnNlIHwgbnVsbD4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5nZXQoYC9hcGkvdjEvY3JlYXRvcnMvdXNlci8ke3VzZXJJZH1gKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIH0sXG4gICAgZW5hYmxlZDogISF1c2VySWQsXG4gICAgLi4ub3B0aW9ucyxcbiAgfSk7XG59XG5cbi8qKlxuICogR2V0IHRoZSBjdXJyZW50IHVzZXIncyBjcmVhdG9yIHByb2ZpbGVcbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRhblN0YWNrIFF1ZXJ5IG9wdGlvbnNcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBjb25zdCB7IGRhdGEsIGlzTG9hZGluZyB9ID0gdXNlTXlDcmVhdG9yUHJvZmlsZSgpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VNeUNyZWF0b3JQcm9maWxlKFxuICBvcHRpb25zPzogT21pdDxVc2VRdWVyeU9wdGlvbnM8Q3JlYXRvclJlc3BvbnNlIHwgbnVsbD4sICdxdWVyeUtleScgfCAncXVlcnlGbic+XG4pIHtcbiAgcmV0dXJuIHVzZVF1ZXJ5KHtcbiAgICBxdWVyeUtleTogY3JlYXRvcktleXMubWUoKSxcbiAgICBxdWVyeUZuOiBhc3luYyAoKTogUHJvbWlzZTxDcmVhdG9yUmVzcG9uc2UgfCBudWxsPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldCgnL2FwaS92MS9jcmVhdG9ycy9tZScpO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cblxuLyoqXG4gKiBHZXQgY3JlYXRvciBhdmFpbGFiaWxpdHkgc2xvdHNcbiAqXG4gKiBAcGFyYW0gY3JlYXRvcklkIC0gQ3JlYXRvciBJRFxuICogQHBhcmFtIG9wdGlvbnMgLSBUYW5TdGFjayBRdWVyeSBvcHRpb25zXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgeyBkYXRhLCBpc0xvYWRpbmcgfSA9IHVzZUNyZWF0b3JBdmFpbGFiaWxpdHkoJ2NyZWF0b3ItMTIzJyk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUNyZWF0b3JBdmFpbGFiaWxpdHkoXG4gIGNyZWF0b3JJZDogc3RyaW5nLFxuICBvcHRpb25zPzogT21pdDxVc2VRdWVyeU9wdGlvbnM8Q3JlYXRvckF2YWlsYWJpbGl0eVJlc3BvbnNlW10+LCAncXVlcnlLZXknIHwgJ3F1ZXJ5Rm4nPlxuKSB7XG4gIHJldHVybiB1c2VRdWVyeSh7XG4gICAgcXVlcnlLZXk6IGNyZWF0b3JLZXlzLmF2YWlsYWJpbGl0eShjcmVhdG9ySWQpLFxuICAgIHF1ZXJ5Rm46IGFzeW5jICgpOiBQcm9taXNlPENyZWF0b3JBdmFpbGFiaWxpdHlSZXNwb25zZVtdPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldChgL2FwaS92MS9jcmVhdG9ycy8ke2NyZWF0b3JJZH0vYXZhaWxhYmlsaXR5YCk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICB9LFxuICAgIGVuYWJsZWQ6ICEhY3JlYXRvcklkLFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pO1xufVxuXG4vKipcbiAqIEdldCBhIGNyZWF0b3IncyBwdWJsaXNoZWQgbGlicmFyeSBjb250ZW50XG4gKlxuICogQHBhcmFtIGNyZWF0b3JJZCAtIENyZWF0b3IgSURcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGFuU3RhY2sgUXVlcnkgb3B0aW9uc1xuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIGNvbnN0IHsgZGF0YSwgaXNMb2FkaW5nIH0gPSB1c2VDcmVhdG9yQ29udGVudCgnY3JlYXRvci0xMjMnKTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlQ3JlYXRvckNvbnRlbnQoXG4gIGNyZWF0b3JJZDogc3RyaW5nLFxuICBvcHRpb25zPzogT21pdDxVc2VRdWVyeU9wdGlvbnM8TGlicmFyeUNvbnRlbnRSZXNwb25zZVtdPiwgJ3F1ZXJ5S2V5JyB8ICdxdWVyeUZuJz5cbikge1xuICByZXR1cm4gdXNlUXVlcnkoe1xuICAgIHF1ZXJ5S2V5OiBjcmVhdG9yS2V5cy5jb250ZW50KGNyZWF0b3JJZCksXG4gICAgcXVlcnlGbjogYXN5bmMgKCk6IFByb21pc2U8TGlicmFyeUNvbnRlbnRSZXNwb25zZVtdPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldChgL2FwaS92MS9jcmVhdG9ycy8ke2NyZWF0b3JJZH0vY29udGVudGApO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgfSxcbiAgICBlbmFibGVkOiAhIWNyZWF0b3JJZCxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cblxuLyoqXG4gKiBHZXQgYWxsIG9mIGEgY3JlYXRvcidzIGNvbnRlbnQgaW5jbHVkaW5nIHVucHVibGlzaGVkIChvd25lciBvbmx5KVxuICpcbiAqIEBwYXJhbSBjcmVhdG9ySWQgLSBDcmVhdG9yIElEXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRhblN0YWNrIFF1ZXJ5IG9wdGlvbnNcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiAvLyBGb3IgY3JlYXRvciBkYXNoYm9hcmQgLSBzaG93cyBhbGwgY29udGVudCBzdGF0dXNlc1xuICogY29uc3QgeyBkYXRhLCBpc0xvYWRpbmcgfSA9IHVzZUNyZWF0b3JBbGxDb250ZW50KCdjcmVhdG9yLTEyMycpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VDcmVhdG9yQWxsQ29udGVudChcbiAgY3JlYXRvcklkOiBzdHJpbmcsXG4gIG9wdGlvbnM/OiBPbWl0PFVzZVF1ZXJ5T3B0aW9uczxMaWJyYXJ5Q29udGVudFJlc3BvbnNlW10+LCAncXVlcnlLZXknIHwgJ3F1ZXJ5Rm4nPlxuKSB7XG4gIHJldHVybiB1c2VRdWVyeSh7XG4gICAgcXVlcnlLZXk6IGNyZWF0b3JLZXlzLmFsbENvbnRlbnQoY3JlYXRvcklkKSxcbiAgICBxdWVyeUZuOiBhc3luYyAoKTogUHJvbWlzZTxMaWJyYXJ5Q29udGVudFJlc3BvbnNlW10+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0KGAvYXBpL3YxL2NyZWF0b3JzLyR7Y3JlYXRvcklkfS9jb250ZW50L2FsbGApO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgfSxcbiAgICBlbmFibGVkOiAhIWNyZWF0b3JJZCxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cblxuLyoqXG4gKiBHZXQgYSBjcmVhdG9yJ3MgdXBjb21pbmcgZXZlbnRzXG4gKlxuICogQHBhcmFtIGNyZWF0b3JJZCAtIENyZWF0b3IgSURcbiAqIEBwYXJhbSB1cGNvbWluZyAtIFdoZXRoZXIgdG8gZmlsdGVyIHRvIHVwY29taW5nIGV2ZW50cyBvbmx5IChkZWZhdWx0OiB0cnVlKVxuICogQHBhcmFtIG9wdGlvbnMgLSBUYW5TdGFjayBRdWVyeSBvcHRpb25zXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgeyBkYXRhLCBpc0xvYWRpbmcgfSA9IHVzZUNyZWF0b3JFdmVudHMoJ2NyZWF0b3ItMTIzJyk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUNyZWF0b3JFdmVudHMoXG4gIGNyZWF0b3JJZDogc3RyaW5nLFxuICB1cGNvbWluZyA9IHRydWUsXG4gIG9wdGlvbnM/OiBPbWl0PFVzZVF1ZXJ5T3B0aW9uczxFdmVudFJlc3BvbnNlW10+LCAncXVlcnlLZXknIHwgJ3F1ZXJ5Rm4nPlxuKSB7XG4gIHJldHVybiB1c2VRdWVyeSh7XG4gICAgcXVlcnlLZXk6IGNyZWF0b3JLZXlzLmV2ZW50cyhjcmVhdG9ySWQpLFxuICAgIHF1ZXJ5Rm46IGFzeW5jICgpOiBQcm9taXNlPEV2ZW50UmVzcG9uc2VbXT4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5nZXQoYC9hcGkvdjEvY3JlYXRvcnMvJHtjcmVhdG9ySWR9L2V2ZW50c2AsIHtcbiAgICAgICAgcGFyYW1zOiB7IHVwY29taW5nIH0sXG4gICAgICB9KTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIH0sXG4gICAgZW5hYmxlZDogISFjcmVhdG9ySWQsXG4gICAgLi4ub3B0aW9ucyxcbiAgfSk7XG59XG5cbi8qKlxuICogR2V0IGEgY3JlYXRvcidzIHJld2FyZHNcbiAqXG4gKiBAcGFyYW0gY3JlYXRvcklkIC0gQ3JlYXRvciBJRFxuICogQHBhcmFtIG9wdGlvbnMgLSBUYW5TdGFjayBRdWVyeSBvcHRpb25zXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgeyBkYXRhLCBpc0xvYWRpbmcgfSA9IHVzZUNyZWF0b3JSZXdhcmRzKCdjcmVhdG9yLTEyMycpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VDcmVhdG9yUmV3YXJkcyhcbiAgY3JlYXRvcklkOiBzdHJpbmcsXG4gIG9wdGlvbnM/OiBPbWl0PFVzZVF1ZXJ5T3B0aW9uczxSZXdhcmRSZXNwb25zZVtdPiwgJ3F1ZXJ5S2V5JyB8ICdxdWVyeUZuJz5cbikge1xuICByZXR1cm4gdXNlUXVlcnkoe1xuICAgIHF1ZXJ5S2V5OiBjcmVhdG9yS2V5cy5yZXdhcmRzKGNyZWF0b3JJZCksXG4gICAgcXVlcnlGbjogYXN5bmMgKCk6IFByb21pc2U8UmV3YXJkUmVzcG9uc2VbXT4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5nZXQoYC9hcGkvdjEvY3JlYXRvcnMvJHtjcmVhdG9ySWR9L3Jld2FyZHNgKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIH0sXG4gICAgZW5hYmxlZDogISFjcmVhdG9ySWQsXG4gICAgLi4ub3B0aW9ucyxcbiAgfSk7XG59XG4iXX0=
278
+ // ============================================================================
279
+ // GATHERING TYPE QUERIES
280
+ // ============================================================================
281
+ /**
282
+ * Get all gathering types for a creator (including unapproved AI suggestions)
283
+ *
284
+ * @param creatorId - Creator ID
285
+ * @param options - TanStack Query options
286
+ *
287
+ * @example
288
+ * ```tsx
289
+ * const { data, isLoading } = useCreatorGatheringTypes('creator-123');
290
+ * ```
291
+ */
292
+ function useCreatorGatheringTypes(creatorId, options) {
293
+ return (0, react_query_1.useQuery)({
294
+ queryKey: exports.creatorKeys.gatheringTypes(creatorId),
295
+ queryFn: async () => {
296
+ const client = (0, client_1.getApiClient)();
297
+ const response = await client.get(`/api/v1/creators/${creatorId}/gathering-types`);
298
+ return response.data;
299
+ },
300
+ enabled: !!creatorId,
301
+ ...options,
302
+ });
303
+ }
304
+ /**
305
+ * Get approved gathering types for a creator
306
+ *
307
+ * @param creatorId - Creator ID
308
+ * @param options - TanStack Query options
309
+ *
310
+ * @example
311
+ * ```tsx
312
+ * const { data, isLoading } = useCreatorApprovedGatheringTypes('creator-123');
313
+ * ```
314
+ */
315
+ function useCreatorApprovedGatheringTypes(creatorId, options) {
316
+ return (0, react_query_1.useQuery)({
317
+ queryKey: exports.creatorKeys.approvedGatheringTypes(creatorId),
318
+ queryFn: async () => {
319
+ const client = (0, client_1.getApiClient)();
320
+ const response = await client.get(`/api/v1/creators/${creatorId}/gathering-types/approved`);
321
+ return response.data;
322
+ },
323
+ enabled: !!creatorId,
324
+ ...options,
325
+ });
326
+ }
327
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL3F1ZXJpZXMvY3JlYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBa0ZBLGtDQWVDO0FBYUQsZ0NBY0M7QUFhRCw0Q0FjQztBQWFELDRDQWNDO0FBWUQsa0RBWUM7QUFhRCx3REFjQztBQWFELDhDQWNDO0FBY0Qsb0RBY0M7QUFjRCw0Q0FpQkM7QUFhRCw4Q0FjQztBQWlCRCw0REFjQztBQWFELDRFQWNDO0FBaFpELHVEQUFrRTtBQUNsRSxzQ0FBeUM7QUFVekMsK0VBQStFO0FBQy9FLG9CQUFvQjtBQUNwQiwrRUFBK0U7QUFFbEUsUUFBQSxXQUFXLEdBQUc7SUFDekIsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFVO0lBQzFCLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsbUJBQVcsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFVO0lBQ2xELElBQUksRUFBRSxDQUFDLE9BQXdCLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxtQkFBVyxDQUFDLEtBQUssRUFBRSxFQUFFLE9BQU8sQ0FBVTtJQUM5RSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLG1CQUFXLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBVTtJQUN0RCxNQUFNLEVBQUUsQ0FBQyxFQUFVLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxtQkFBVyxDQUFDLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBVTtJQUMvRCxJQUFJLEVBQUUsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxtQkFBVyxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFVO0lBQ25FLE1BQU0sRUFBRSxDQUFDLE1BQWMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLG1CQUFXLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQVU7SUFDekUsRUFBRSxFQUFFLEdB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QUcsTUFBTSxNQUFNLENBQUMsR0FBRyxDQUFDLG9CQUFvQixTQUFTLDJCQUEyQixDQUFDLENBQUM7WUFDNUYsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQ3ZCLENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQyxDQUFDLFNBQVM7UUFDcEIsR0FBRyxPQUFPO0tBQ1gsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZVF1ZXJ5LCBVc2VRdWVyeU9wdGlvbnMgfSBmcm9tICdAdGFuc3RhY2svcmVhY3QtcXVlcnknO1xuaW1wb3J0IHsgZ2V0QXBpQ2xpZW50IH0gZnJvbSAnLi4vY2xpZW50JztcbmltcG9ydCB0eXBlIHtcbiAgQ3JlYXRvclJlc3BvbnNlLFxuICBDcmVhdG9yQXZhaWxhYmlsaXR5UmVzcG9uc2UsXG4gIEV2ZW50UmVzcG9uc2UsXG4gIExpYnJhcnlDb250ZW50UmVzcG9uc2UsXG4gIFJld2FyZFJlc3BvbnNlLFxuICBHYXRoZXJpbmdUeXBlUmVzcG9uc2UsXG59IGZyb20gJy4uL3R5cGVzJztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gUVVFUlkgS0VZIEZBQ1RPUllcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IGNvbnN0IGNyZWF0b3JLZXlzID0ge1xuICBhbGw6IFsnY3JlYXRvcnMnXSBhcyBjb25zdCxcbiAgbGlzdHM6ICgpID0+IFsuLi5jcmVhdG9yS2V5cy5hbGwsICdsaXN0J10gYXMgY29uc3QsXG4gIGxpc3Q6IChmaWx0ZXJzPzogQ3JlYXRvckZpbHRlcnMpID0+IFsuLi5jcmVhdG9yS2V5cy5saXN0cygpLCBmaWx0ZXJzXSBhcyBjb25zdCxcbiAgZGV0YWlsczogKCkgPT4gWy4uLmNyZWF0b3JLZXlzLmFsbCwgJ2RldGFpbCddIGFzIGNvbnN0LFxuICBkZXRhaWw6IChpZDogc3RyaW5nKSA9PiBbLi4uY3JlYXRvcktleXMuZGV0YWlscygpLCBpZF0gYXMgY29uc3QsXG4gIHNsdWc6IChzbHVnOiBzdHJpbmcpID0+IFsuLi5jcmVhdG9yS2V5cy5hbGwsICdzbHVnJywgc2x1Z10gYXMgY29uc3QsXG4gIGJ5VXNlcjogKHVzZXJJZDogc3RyaW5nKSA9PiBbLi4uY3JlYXRvcktleXMuYWxsLCAndXNlcicsIHVzZXJJZF0gYXMgY29uc3QsXG4gIG1lOiAoKSA9PiBbLi4uY3JlYXRvcktleXMuYWxsLCAnbWUnXSBhcyBjb25zdCxcbiAgYXZhaWxhYmlsaXR5OiAoY3JlYXRvcklkOiBzdHJpbmcpID0+IFsuLi5jcmVhdG9yS2V5cy5kZXRhaWwoY3JlYXRvcklkKSwgJ2F2YWlsYWJpbGl0eSddIGFzIGNvbnN0LFxuICBjb250ZW50OiAoY3JlYXRvcklkOiBzdHJpbmcpID0+IFsuLi5jcmVhdG9yS2V5cy5kZXRhaWwoY3JlYXRvcklkKSwgJ2NvbnRlbnQnXSBhcyBjb25zdCxcbiAgYWxsQ29udGVudDogKGNyZWF0b3JJZDogc3RyaW5nKSA9PiBbLi4uY3JlYXRvcktleXMuZGV0YWlsKGNyZWF0b3JJZCksICdjb250ZW50JywgJ2FsbCddIGFzIGNvbnN0LFxuICBldmVudHM6IChjcmVhdG9ySWQ6IHN0cmluZykgPT4gWy4uLmNyZWF0b3JLZXlzLmRldGFpbChjcmVhdG9ySWQpLCAnZXZlbnRzJ10gYXMgY29uc3QsXG4gIHJld2FyZHM6IChjcmVhdG9ySWQ6IHN0cmluZykgPT4gWy4uLmNyZWF0b3JLZXlzLmRldGFpbChjcmVhdG9ySWQpLCAncmV3YXJkcyddIGFzIGNvbnN0LFxuICBnYXRoZXJpbmdUeXBlczogKGNyZWF0b3JJZDogc3RyaW5nKSA9PiBbLi4uY3JlYXRvcktleXMuZGV0YWlsKGNyZWF0b3JJZCksICdnYXRoZXJpbmctdHlwZXMnXSBhcyBjb25zdCxcbiAgYXBwcm92ZWRHYXRoZXJpbmdUeXBlczogKGNyZWF0b3JJZDogc3RyaW5nKSA9PiBbLi4uY3JlYXRvcktleXMuZGV0YWlsKGNyZWF0b3JJZCksICdnYXRoZXJpbmctdHlwZXMnLCAnYXBwcm92ZWQnXSBhcyBjb25zdCxcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFRZUEVTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRvckZpbHRlcnMge1xuICBwYWdlPzogbnVtYmVyO1xuICBsaW1pdD86IG51bWJlcjtcbiAgc2VhcmNoPzogc3RyaW5nO1xuICBjaXR5SWQ/OiBzdHJpbmc7XG4gIGNhbkZhY2lsaXRhdGU/OiBib29sZWFuO1xuICBjYW5DcmVhdGVDb250ZW50PzogYm9vbGVhbjtcbiAgaXNJbmZsdWVuY2VyPzogYm9vbGVhbjtcbiAgaXNWZXJpZmllZD86IGJvb2xlYW47XG4gIHNvcnRCeT86IHN0cmluZztcbiAgc29ydE9yZGVyPzogJ2FzYycgfCAnZGVzYyc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFnaW5hdGVkQ3JlYXRvcnNSZXNwb25zZSB7XG4gIGNyZWF0b3JzOiBDcmVhdG9yUmVzcG9uc2VbXTtcbiAgbWV0YToge1xuICAgIHRvdGFsOiBudW1iZXI7XG4gICAgcGFnZTogbnVtYmVyO1xuICAgIGxpbWl0OiBudW1iZXI7XG4gICAgdG90YWxQYWdlczogbnVtYmVyO1xuICB9O1xufVxuXG4vLyBSZS1leHBvcnQgUmV3YXJkUmVzcG9uc2UgZnJvbSB0eXBlcyBmb3IgY29udmVuaWVuY2VcbmV4cG9ydCB0eXBlIHsgUmV3YXJkUmVzcG9uc2UgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFFVRVJZIEhPT0tTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogR2V0IHBhZ2luYXRlZCBsaXN0IG9mIGNyZWF0b3JzIHdpdGggb3B0aW9uYWwgZmlsdGVyc1xuICpcbiAqIEBwYXJhbSBmaWx0ZXJzIC0gUXVlcnkgcGFyYW1ldGVycyBmb3IgZmlsdGVyaW5nIGFuZCBwYWdpbmF0aW9uXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRhblN0YWNrIFF1ZXJ5IG9wdGlvbnNcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBjb25zdCB7IGRhdGEsIGlzTG9hZGluZyB9ID0gdXNlQ3JlYXRvcnMoe1xuICogICBwYWdlOiAxLFxuICogICBsaW1pdDogMjAsXG4gKiAgIGNhbkZhY2lsaXRhdGU6IHRydWUsXG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlQ3JlYXRvcnMoXG4gIGZpbHRlcnM/OiBDcmVhdG9yRmlsdGVycyxcbiAgb3B0aW9ucz86IE9taXQ8VXNlUXVlcnlPcHRpb25zPFBhZ2luYXRlZENyZWF0b3JzUmVzcG9uc2U+LCAncXVlcnlLZXknIHwgJ3F1ZXJ5Rm4nPlxuKSB7XG4gIHJldHVybiB1c2VRdWVyeSh7XG4gICAgcXVlcnlLZXk6IGNyZWF0b3JLZXlzLmxpc3QoZmlsdGVycyksXG4gICAgcXVlcnlGbjogYXN5bmMgKCk6IFByb21pc2U8UGFnaW5hdGVkQ3JlYXRvcnNSZXNwb25zZT4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5nZXQoJy9hcGkvdjEvY3JlYXRvcnMnLCB7XG4gICAgICAgIHBhcmFtczogZmlsdGVycyxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cblxuLyoqXG4gKiBHZXQgYSBzaW5nbGUgY3JlYXRvciBieSBJRFxuICpcbiAqIEBwYXJhbSBpZCAtIENyZWF0b3IgSURcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGFuU3RhY2sgUXVlcnkgb3B0aW9uc1xuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIGNvbnN0IHsgZGF0YSwgaXNMb2FkaW5nIH0gPSB1c2VDcmVhdG9yKCdjcmVhdG9yLTEyMycpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VDcmVhdG9yKFxuICBpZDogc3RyaW5nLFxuICBvcHRpb25zPzogT21pdDxVc2VRdWVyeU9wdGlvbnM8Q3JlYXRvclJlc3BvbnNlPiwgJ3F1ZXJ5S2V5JyB8ICdxdWVyeUZuJz5cbikge1xuICByZXR1cm4gdXNlUXVlcnkoe1xuICAgIHF1ZXJ5S2V5OiBjcmVhdG9yS2V5cy5kZXRhaWwoaWQpLFxuICAgIHF1ZXJ5Rm46IGFzeW5jICgpOiBQcm9taXNlPENyZWF0b3JSZXNwb25zZT4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5nZXQoYC9hcGkvdjEvY3JlYXRvcnMvJHtpZH1gKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIH0sXG4gICAgZW5hYmxlZDogISFpZCxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cblxuLyoqXG4gKiBHZXQgYSBjcmVhdG9yIGJ5IHRoZWlyIHNsdWdcbiAqXG4gKiBAcGFyYW0gc2x1ZyAtIENyZWF0b3Igc2x1Z1xuICogQHBhcmFtIG9wdGlvbnMgLSBUYW5TdGFjayBRdWVyeSBvcHRpb25zXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgeyBkYXRhLCBpc0xvYWRpbmcgfSA9IHVzZUNyZWF0b3JCeVNsdWcoJ2pvaG4tZG9lJyk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUNyZWF0b3JCeVNsdWcoXG4gIHNsdWc6IHN0cmluZyxcbiAgb3B0aW9ucz86IE9taXQ8VXNlUXVlcnlPcHRpb25zPENyZWF0b3JSZXNwb25zZT4sICdxdWVyeUtleScgfCAncXVlcnlGbic+XG4pIHtcbiAgcmV0dXJuIHVzZVF1ZXJ5KHtcbiAgICBxdWVyeUtleTogY3JlYXRvcktleXMuc2x1ZyhzbHVnKSxcbiAgICBxdWVyeUZuOiBhc3luYyAoKTogUHJvbWlzZTxDcmVhdG9yUmVzcG9uc2U+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0KGAvYXBpL3YxL2NyZWF0b3JzL3NsdWcvJHtzbHVnfWApO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgfSxcbiAgICBlbmFibGVkOiAhIXNsdWcsXG4gICAgLi4ub3B0aW9ucyxcbiAgfSk7XG59XG5cbi8qKlxuICogR2V0IGEgY3JlYXRvciBwcm9maWxlIGJ5IHVzZXIgSURcbiAqXG4gKiBAcGFyYW0gdXNlcklkIC0gVXNlciBJRFxuICogQHBhcmFtIG9wdGlvbnMgLSBUYW5TdGFjayBRdWVyeSBvcHRpb25zXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgeyBkYXRhLCBpc0xvYWRpbmcgfSA9IHVzZUNyZWF0b3JCeVVzZXIoJ3VzZXItMTIzJyk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUNyZWF0b3JCeVVzZXIoXG4gIHVzZXJJZDogc3RyaW5nLFxuICBvcHRpb25zPzogT21pdDxVc2VRdWVyeU9wdGlvbnM8Q3JlYXRvclJlc3BvbnNlIHwgbnVsbD4sICdxdWVyeUtleScgfCAncXVlcnlGbic+XG4pIHtcbiAgcmV0dXJuIHVzZVF1ZXJ5KHtcbiAgICBxdWVyeUtleTogY3JlYXRvcktleXMuYnlVc2VyKHVzZXJJZCksXG4gICAgcXVlcnlGbjogYXN5bmMgKCk6IFByb21pc2U8Q3JlYXRvclJlc3BvbnNlIHwgbnVsbD4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5nZXQoYC9hcGkvdjEvY3JlYXRvcnMvdXNlci8ke3VzZXJJZH1gKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIH0sXG4gICAgZW5hYmxlZDogISF1c2VySWQsXG4gICAgLi4ub3B0aW9ucyxcbiAgfSk7XG59XG5cbi8qKlxuICogR2V0IHRoZSBjdXJyZW50IHVzZXIncyBjcmVhdG9yIHByb2ZpbGVcbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRhblN0YWNrIFF1ZXJ5IG9wdGlvbnNcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBjb25zdCB7IGRhdGEsIGlzTG9hZGluZyB9ID0gdXNlTXlDcmVhdG9yUHJvZmlsZSgpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VNeUNyZWF0b3JQcm9maWxlKFxuICBvcHRpb25zPzogT21pdDxVc2VRdWVyeU9wdGlvbnM8Q3JlYXRvclJlc3BvbnNlIHwgbnVsbD4sICdxdWVyeUtleScgfCAncXVlcnlGbic+XG4pIHtcbiAgcmV0dXJuIHVzZVF1ZXJ5KHtcbiAgICBxdWVyeUtleTogY3JlYXRvcktleXMubWUoKSxcbiAgICBxdWVyeUZuOiBhc3luYyAoKTogUHJvbWlzZTxDcmVhdG9yUmVzcG9uc2UgfCBudWxsPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldCgnL2FwaS92MS9jcmVhdG9ycy9tZScpO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cblxuLyoqXG4gKiBHZXQgY3JlYXRvciBhdmFpbGFiaWxpdHkgc2xvdHNcbiAqXG4gKiBAcGFyYW0gY3JlYXRvcklkIC0gQ3JlYXRvciBJRFxuICogQHBhcmFtIG9wdGlvbnMgLSBUYW5TdGFjayBRdWVyeSBvcHRpb25zXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgeyBkYXRhLCBpc0xvYWRpbmcgfSA9IHVzZUNyZWF0b3JBdmFpbGFiaWxpdHkoJ2NyZWF0b3ItMTIzJyk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUNyZWF0b3JBdmFpbGFiaWxpdHkoXG4gIGNyZWF0b3JJZDogc3RyaW5nLFxuICBvcHRpb25zPzogT21pdDxVc2VRdWVyeU9wdGlvbnM8Q3JlYXRvckF2YWlsYWJpbGl0eVJlc3BvbnNlW10+LCAncXVlcnlLZXknIHwgJ3F1ZXJ5Rm4nPlxuKSB7XG4gIHJldHVybiB1c2VRdWVyeSh7XG4gICAgcXVlcnlLZXk6IGNyZWF0b3JLZXlzLmF2YWlsYWJpbGl0eShjcmVhdG9ySWQpLFxuICAgIHF1ZXJ5Rm46IGFzeW5jICgpOiBQcm9taXNlPENyZWF0b3JBdmFpbGFiaWxpdHlSZXNwb25zZVtdPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldChgL2FwaS92MS9jcmVhdG9ycy8ke2NyZWF0b3JJZH0vYXZhaWxhYmlsaXR5YCk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICB9LFxuICAgIGVuYWJsZWQ6ICEhY3JlYXRvcklkLFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pO1xufVxuXG4vKipcbiAqIEdldCBhIGNyZWF0b3IncyBwdWJsaXNoZWQgbGlicmFyeSBjb250ZW50XG4gKlxuICogQHBhcmFtIGNyZWF0b3JJZCAtIENyZWF0b3IgSURcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGFuU3RhY2sgUXVlcnkgb3B0aW9uc1xuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIGNvbnN0IHsgZGF0YSwgaXNMb2FkaW5nIH0gPSB1c2VDcmVhdG9yQ29udGVudCgnY3JlYXRvci0xMjMnKTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlQ3JlYXRvckNvbnRlbnQoXG4gIGNyZWF0b3JJZDogc3RyaW5nLFxuICBvcHRpb25zPzogT21pdDxVc2VRdWVyeU9wdGlvbnM8TGlicmFyeUNvbnRlbnRSZXNwb25zZVtdPiwgJ3F1ZXJ5S2V5JyB8ICdxdWVyeUZuJz5cbikge1xuICByZXR1cm4gdXNlUXVlcnkoe1xuICAgIHF1ZXJ5S2V5OiBjcmVhdG9yS2V5cy5jb250ZW50KGNyZWF0b3JJZCksXG4gICAgcXVlcnlGbjogYXN5bmMgKCk6IFByb21pc2U8TGlicmFyeUNvbnRlbnRSZXNwb25zZVtdPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldChgL2FwaS92MS9jcmVhdG9ycy8ke2NyZWF0b3JJZH0vY29udGVudGApO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgfSxcbiAgICBlbmFibGVkOiAhIWNyZWF0b3JJZCxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cblxuLyoqXG4gKiBHZXQgYWxsIG9mIGEgY3JlYXRvcidzIGNvbnRlbnQgaW5jbHVkaW5nIHVucHVibGlzaGVkIChvd25lciBvbmx5KVxuICpcbiAqIEBwYXJhbSBjcmVhdG9ySWQgLSBDcmVhdG9yIElEXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRhblN0YWNrIFF1ZXJ5IG9wdGlvbnNcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiAvLyBGb3IgY3JlYXRvciBkYXNoYm9hcmQgLSBzaG93cyBhbGwgY29udGVudCBzdGF0dXNlc1xuICogY29uc3QgeyBkYXRhLCBpc0xvYWRpbmcgfSA9IHVzZUNyZWF0b3JBbGxDb250ZW50KCdjcmVhdG9yLTEyMycpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VDcmVhdG9yQWxsQ29udGVudChcbiAgY3JlYXRvcklkOiBzdHJpbmcsXG4gIG9wdGlvbnM/OiBPbWl0PFVzZVF1ZXJ5T3B0aW9uczxMaWJyYXJ5Q29udGVudFJlc3BvbnNlW10+LCAncXVlcnlLZXknIHwgJ3F1ZXJ5Rm4nPlxuKSB7XG4gIHJldHVybiB1c2VRdWVyeSh7XG4gICAgcXVlcnlLZXk6IGNyZWF0b3JLZXlzLmFsbENvbnRlbnQoY3JlYXRvcklkKSxcbiAgICBxdWVyeUZuOiBhc3luYyAoKTogUHJvbWlzZTxMaWJyYXJ5Q29udGVudFJlc3BvbnNlW10+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0KGAvYXBpL3YxL2NyZWF0b3JzLyR7Y3JlYXRvcklkfS9jb250ZW50L2FsbGApO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgfSxcbiAgICBlbmFibGVkOiAhIWNyZWF0b3JJZCxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cblxuLyoqXG4gKiBHZXQgYSBjcmVhdG9yJ3MgdXBjb21pbmcgZXZlbnRzXG4gKlxuICogQHBhcmFtIGNyZWF0b3JJZCAtIENyZWF0b3IgSURcbiAqIEBwYXJhbSB1cGNvbWluZyAtIFdoZXRoZXIgdG8gZmlsdGVyIHRvIHVwY29taW5nIGV2ZW50cyBvbmx5IChkZWZhdWx0OiB0cnVlKVxuICogQHBhcmFtIG9wdGlvbnMgLSBUYW5TdGFjayBRdWVyeSBvcHRpb25zXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgeyBkYXRhLCBpc0xvYWRpbmcgfSA9IHVzZUNyZWF0b3JFdmVudHMoJ2NyZWF0b3ItMTIzJyk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUNyZWF0b3JFdmVudHMoXG4gIGNyZWF0b3JJZDogc3RyaW5nLFxuICB1cGNvbWluZyA9IHRydWUsXG4gIG9wdGlvbnM/OiBPbWl0PFVzZVF1ZXJ5T3B0aW9uczxFdmVudFJlc3BvbnNlW10+LCAncXVlcnlLZXknIHwgJ3F1ZXJ5Rm4nPlxuKSB7XG4gIHJldHVybiB1c2VRdWVyeSh7XG4gICAgcXVlcnlLZXk6IGNyZWF0b3JLZXlzLmV2ZW50cyhjcmVhdG9ySWQpLFxuICAgIHF1ZXJ5Rm46IGFzeW5jICgpOiBQcm9taXNlPEV2ZW50UmVzcG9uc2VbXT4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5nZXQoYC9hcGkvdjEvY3JlYXRvcnMvJHtjcmVhdG9ySWR9L2V2ZW50c2AsIHtcbiAgICAgICAgcGFyYW1zOiB7IHVwY29taW5nIH0sXG4gICAgICB9KTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIH0sXG4gICAgZW5hYmxlZDogISFjcmVhdG9ySWQsXG4gICAgLi4ub3B0aW9ucyxcbiAgfSk7XG59XG5cbi8qKlxuICogR2V0IGEgY3JlYXRvcidzIHJld2FyZHNcbiAqXG4gKiBAcGFyYW0gY3JlYXRvcklkIC0gQ3JlYXRvciBJRFxuICogQHBhcmFtIG9wdGlvbnMgLSBUYW5TdGFjayBRdWVyeSBvcHRpb25zXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgeyBkYXRhLCBpc0xvYWRpbmcgfSA9IHVzZUNyZWF0b3JSZXdhcmRzKCdjcmVhdG9yLTEyMycpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VDcmVhdG9yUmV3YXJkcyhcbiAgY3JlYXRvcklkOiBzdHJpbmcsXG4gIG9wdGlvbnM/OiBPbWl0PFVzZVF1ZXJ5T3B0aW9uczxSZXdhcmRSZXNwb25zZVtdPiwgJ3F1ZXJ5S2V5JyB8ICdxdWVyeUZuJz5cbikge1xuICByZXR1cm4gdXNlUXVlcnkoe1xuICAgIHF1ZXJ5S2V5OiBjcmVhdG9yS2V5cy5yZXdhcmRzKGNyZWF0b3JJZCksXG4gICAgcXVlcnlGbjogYXN5bmMgKCk6IFByb21pc2U8UmV3YXJkUmVzcG9uc2VbXT4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5nZXQoYC9hcGkvdjEvY3JlYXRvcnMvJHtjcmVhdG9ySWR9L3Jld2FyZHNgKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIH0sXG4gICAgZW5hYmxlZDogISFjcmVhdG9ySWQsXG4gICAgLi4ub3B0aW9ucyxcbiAgfSk7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEdBVEhFUklORyBUWVBFIFFVRVJJRVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBHZXQgYWxsIGdhdGhlcmluZyB0eXBlcyBmb3IgYSBjcmVhdG9yIChpbmNsdWRpbmcgdW5hcHByb3ZlZCBBSSBzdWdnZXN0aW9ucylcbiAqXG4gKiBAcGFyYW0gY3JlYXRvcklkIC0gQ3JlYXRvciBJRFxuICogQHBhcmFtIG9wdGlvbnMgLSBUYW5TdGFjayBRdWVyeSBvcHRpb25zXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgeyBkYXRhLCBpc0xvYWRpbmcgfSA9IHVzZUNyZWF0b3JHYXRoZXJpbmdUeXBlcygnY3JlYXRvci0xMjMnKTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlQ3JlYXRvckdhdGhlcmluZ1R5cGVzKFxuICBjcmVhdG9ySWQ6IHN0cmluZyxcbiAgb3B0aW9ucz86IE9taXQ8VXNlUXVlcnlPcHRpb25zPEdhdGhlcmluZ1R5cGVSZXNwb25zZVtdPiwgJ3F1ZXJ5S2V5JyB8ICdxdWVyeUZuJz5cbikge1xuICByZXR1cm4gdXNlUXVlcnkoe1xuICAgIHF1ZXJ5S2V5OiBjcmVhdG9yS2V5cy5nYXRoZXJpbmdUeXBlcyhjcmVhdG9ySWQpLFxuICAgIHF1ZXJ5Rm46IGFzeW5jICgpOiBQcm9taXNlPEdhdGhlcmluZ1R5cGVSZXNwb25zZVtdPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldChgL2FwaS92MS9jcmVhdG9ycy8ke2NyZWF0b3JJZH0vZ2F0aGVyaW5nLXR5cGVzYCk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICB9LFxuICAgIGVuYWJsZWQ6ICEhY3JlYXRvcklkLFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pO1xufVxuXG4vKipcbiAqIEdldCBhcHByb3ZlZCBnYXRoZXJpbmcgdHlwZXMgZm9yIGEgY3JlYXRvclxuICpcbiAqIEBwYXJhbSBjcmVhdG9ySWQgLSBDcmVhdG9yIElEXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRhblN0YWNrIFF1ZXJ5IG9wdGlvbnNcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBjb25zdCB7IGRhdGEsIGlzTG9hZGluZyB9ID0gdXNlQ3JlYXRvckFwcHJvdmVkR2F0aGVyaW5nVHlwZXMoJ2NyZWF0b3ItMTIzJyk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUNyZWF0b3JBcHByb3ZlZEdhdGhlcmluZ1R5cGVzKFxuICBjcmVhdG9ySWQ6IHN0cmluZyxcbiAgb3B0aW9ucz86IE9taXQ8VXNlUXVlcnlPcHRpb25zPEdhdGhlcmluZ1R5cGVSZXNwb25zZVtdPiwgJ3F1ZXJ5S2V5JyB8ICdxdWVyeUZuJz5cbikge1xuICByZXR1cm4gdXNlUXVlcnkoe1xuICAgIHF1ZXJ5S2V5OiBjcmVhdG9yS2V5cy5hcHByb3ZlZEdhdGhlcmluZ1R5cGVzKGNyZWF0b3JJZCksXG4gICAgcXVlcnlGbjogYXN5bmMgKCk6IFByb21pc2U8R2F0aGVyaW5nVHlwZVJlc3BvbnNlW10+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0KGAvYXBpL3YxL2NyZWF0b3JzLyR7Y3JlYXRvcklkfS9nYXRoZXJpbmctdHlwZXMvYXBwcm92ZWRgKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIH0sXG4gICAgZW5hYmxlZDogISFjcmVhdG9ySWQsXG4gICAgLi4ub3B0aW9ucyxcbiAgfSk7XG59XG4iXX0=
@@ -38,7 +38,7 @@ export declare function useEventChatMembers(eventId: string | undefined): import
38
38
  * Get chat messages with infinite scroll pagination
39
39
  */
40
40
  export declare function useEventChatMessages(eventId: string | undefined, limit?: number): import("@tanstack/react-query").UseInfiniteQueryResult<import("@tanstack/react-query").InfiniteData<{
41
- messages: import("@growsober/types/dist/generated").components["schemas"]["MessageResponseDto"][];
41
+ messages: import("@growsober/types/dist/generated").components["schemas"]["EventChatMessageResponseDto"][];
42
42
  total: number;
43
43
  hasMore: boolean;
44
44
  nextCursor?: string;
@@ -142,6 +142,9 @@ export interface CreateAvailabilityRequest {
142
142
  isRecurring?: boolean;
143
143
  specificDate?: string;
144
144
  }
145
+ export type GatheringTypeResponse = components['schemas']['GatheringTypeResponseDto'];
146
+ export type CreateGatheringTypeRequest = components['schemas']['CreateGatheringTypeDto'];
147
+ export type UpdateGatheringTypeRequest = components['schemas']['UpdateGatheringTypeDto'];
145
148
  export type BrandResponse = components['schemas']['BrandResponseDto'];
146
149
  export type BrandOwnerResponse = components['schemas']['BrandOwnerResponseDto'];
147
150
  export type BrandCreatorResponse = components['schemas']['BrandCreatorResponseDto'];
@@ -181,10 +184,10 @@ export type WinResponse = components['schemas']['WinResponseDto'];
181
184
  export type CreateWinRequest = components['schemas']['CreateWinDto'];
182
185
  export type WinCountResponse = components['schemas']['WinCountDto'];
183
186
  export type ConversationResponse = components['schemas']['ConversationResponseDto'];
184
- export type ConversationWithMessagesResponse = components['schemas']['ConversationWithMessagesDto'];
187
+ export type ConversationWithMessagesResponse = components['schemas']['JackConversationWithMessagesDto'];
185
188
  export type CreateConversationRequest = components['schemas']['CreateConversationDto'];
186
- export type JackMessageResponse = components['schemas']['MessageResponseDto'];
187
- export type SendJackMessageRequest = components['schemas']['SendMessageDto'];
189
+ export type JackMessageResponse = components['schemas']['JackMessageResponseDto'];
190
+ export type SendJackMessageRequest = components['schemas']['SendJackMessageDto'];
188
191
  export type MoodLogResponse = components['schemas']['MoodLogResponseDto'];
189
192
  export type LogMoodRequest = components['schemas']['LogMoodDto'];
190
193
  export type MoodStatsResponse = components['schemas']['MoodStatsDto'];
@@ -219,10 +222,10 @@ export type UpdateBuddyRequest = components['schemas']['UpdateBuddyDto'];
219
222
  export type LogBuddyActivityRequest = components['schemas']['LogBuddyActivityDto'];
220
223
  export type EventChatResponse = components['schemas']['EventChatResponseDto'];
221
224
  export type ChatMemberResponse = components['schemas']['ChatMemberResponseDto'];
222
- export type ChatMessageResponse = components['schemas']['MessageResponseDto'];
223
- export type PaginatedMessagesResponse = components['schemas']['PaginatedMessagesDto'];
224
- export type SendChatMessageRequest = components['schemas']['SendMessageDto'];
225
- export type UpdateChatMessageRequest = components['schemas']['UpdateMessageDto'];
225
+ export type ChatMessageResponse = components['schemas']['EventChatMessageResponseDto'];
226
+ export type PaginatedMessagesResponse = components['schemas']['PaginatedEventChatMessagesDto'];
227
+ export type SendChatMessageRequest = components['schemas']['SendEventChatMessageDto'];
228
+ export type UpdateChatMessageRequest = components['schemas']['UpdateEventChatMessageDto'];
226
229
  export type UpdateChatSettingsRequest = components['schemas']['UpdateChatSettingsDto'];
227
230
  export type UpdateMemberSettingsRequest = components['schemas']['UpdateMemberSettingsDto'];
228
231
  export type AdminLoginRequest = components['schemas']['AdminLoginDto'];
package/dist/api/types.js CHANGED
@@ -11,4 +11,4 @@
11
11
  * 3. Rebuild SDK: npm run build
12
12
  */
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBpL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7OztHQVVHIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHcm93U29iZXIgU0RLIFR5cGVzXG4gKlxuICogQWxsIHR5cGVzIGFyZSBkZXJpdmVkIGZyb20gdGhlIEBncm93c29iZXIvdHlwZXMgcGFja2FnZSB3aGljaCBpcyBhdXRvLWdlbmVyYXRlZFxuICogZnJvbSB0aGUgQVBJIE9wZW5BUEkgc3BlY2lmaWNhdGlvbi4gVGhpcyBlbnN1cmVzIHNpbmdsZSBzb3VyY2Ugb2YgdHJ1dGggZnJvbSBQcmlzbWEuXG4gKlxuICogVG8gcmVnZW5lcmF0ZSB0eXBlczpcbiAqIDEuIFN0YXJ0IHRoZSBBUEk6IGNkIC4uL2dyb3dzb2Jlci1hcGkgJiYgbnBtIHJ1biBzdGFydDpkZXZcbiAqIDIuIEdlbmVyYXRlIHR5cGVzOiBjZCAuLi9ncm93c29iZXItdHlwZXMgJiYgbnBtIHJ1biBnZW5lcmF0ZSAmJiBucG0gcnVuIGJ1aWxkXG4gKiAzLiBSZWJ1aWxkIFNESzogbnBtIHJ1biBidWlsZFxuICovXG5cbmltcG9ydCB0eXBlIHsgcGF0aHMsIGNvbXBvbmVudHMgfSBmcm9tICdAZ3Jvd3NvYmVyL3R5cGVzJztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVFlQRSBFWFRSQUNUSU9OIEhFTFBFUlNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBFeHRyYWN0IHJlcXVlc3QgYm9keSB0eXBlIGZvciBhIGdpdmVuIGVuZHBvaW50IGFuZCBtZXRob2RcbiAqL1xuZXhwb3J0IHR5cGUgUmVxdWVzdEJvZHk8XG4gIFBhdGggZXh0ZW5kcyBrZXlvZiBwYXRocyxcbiAgTWV0aG9kIGV4dGVuZHMga2V5b2YgcGF0aHNbUGF0aF1cbj4gPSBwYXRoc1tQYXRoXVtNZXRob2RdIGV4dGVuZHMgeyByZXF1ZXN0Qm9keTogeyBjb250ZW50OiB7ICdhcHBsaWNhdGlvbi9qc29uJzogaW5mZXIgVCB9IH0gfVxuICA/IFRcbiAgOiBuZXZlcjtcblxuLyoqXG4gKiBFeHRyYWN0IHJlc3BvbnNlIHR5cGUgZm9yIGEgZ2l2ZW4gZW5kcG9pbnQsIG1ldGhvZCwgYW5kIHN0YXR1cyBjb2RlXG4gKi9cbmV4cG9ydCB0eXBlIFJlc3BvbnNlQm9keTxcbiAgUGF0aCBleHRlbmRzIGtleW9mIHBhdGhzLFxuICBNZXRob2QgZXh0ZW5kcyBrZXlvZiBwYXRoc1tQYXRoXSxcbiAgU3RhdHVzIGV4dGVuZHMgbnVtYmVyID0gMjAwXG4+ID0gcGF0aHNbUGF0aF1bTWV0aG9kXSBleHRlbmRzIHsgcmVzcG9uc2VzOiB7IFtLIGluIFN0YXR1c106IHsgY29udGVudDogeyAnYXBwbGljYXRpb24vanNvbic6IGluZmVyIFQgfSB9IH0gfVxuICA/IFRcbiAgOiBuZXZlcjtcblxuLyoqXG4gKiBFeHRyYWN0IHF1ZXJ5IHBhcmFtZXRlcnMgdHlwZSBmb3IgYSBnaXZlbiBlbmRwb2ludCBhbmQgbWV0aG9kXG4gKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5UGFyYW1zPFxuICBQYXRoIGV4dGVuZHMga2V5b2YgcGF0aHMsXG4gIE1ldGhvZCBleHRlbmRzIGtleW9mIHBhdGhzW1BhdGhdXG4+ID0gcGF0aHNbUGF0aF1bTWV0aG9kXSBleHRlbmRzIHsgcGFyYW1ldGVyczogeyBxdWVyeT86IGluZmVyIFEgfSB9XG4gID8gUVxuICA6IFJlY29yZDxzdHJpbmcsIG5ldmVyPjtcblxuLyoqXG4gKiBFeHRyYWN0IHBhdGggcGFyYW1ldGVycyB0eXBlIGZvciBhIGdpdmVuIGVuZHBvaW50IGFuZCBtZXRob2RcbiAqL1xuZXhwb3J0IHR5cGUgUGF0aFBhcmFtczxcbiAgUGF0aCBleHRlbmRzIGtleW9mIHBhdGhzLFxuICBNZXRob2QgZXh0ZW5kcyBrZXlvZiBwYXRoc1tQYXRoXVxuPiA9IHBhdGhzW1BhdGhdW01ldGhvZF0gZXh0ZW5kcyB7IHBhcmFtZXRlcnM6IHsgcGF0aDogaW5mZXIgUCB9IH1cbiAgPyBQXG4gIDogUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBFTlVNIFRZUEVTIChleHRyYWN0ZWQgZnJvbSBnZW5lcmF0ZWQgc2NoZW1hcyAtIHNpbmdsZSBzb3VyY2Ugb2YgdHJ1dGgpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIEJ1c2luZXNzL1ZlbnVlIHR5cGUgKHVzZWQgZm9yIGJvdGggQnVzaW5lc3MgYW5kIFZlbnVlIG1vZGVscylcbmV4cG9ydCB0eXBlIEJ1c2luZXNzVHlwZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQnVzaW5lc3NSZXNwb25zZUR0byddWyd0eXBlJ107XG5cbi8vIE93bmVyc2hpcCByb2xlc1xuZXhwb3J0IHR5cGUgVmVudWVPd25lclJvbGUgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ1ZlbnVlT3duZXJSZXNwb25zZUR0byddWydyb2xlJ107XG5leHBvcnQgdHlwZSBCcmFuZE93bmVyUm9sZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQnJhbmRPd25lclJlc3BvbnNlRHRvJ11bJ3JvbGUnXTtcblxuLy8gRXZlbnQgdHlwZXNcbmV4cG9ydCB0eXBlIEdhdGhlcmluZ1R5cGUgPSBOb25OdWxsYWJsZTxjb21wb25lbnRzWydzY2hlbWFzJ11bJ0V2ZW50UmVzcG9uc2VEdG8nXVsnZ2F0aGVyaW5nVHlwZSddPjtcbmV4cG9ydCB0eXBlIEV2ZW50VmlzaWJpbGl0eSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnRXZlbnRSZXNwb25zZUR0byddWyd2aXNpYmlsaXR5J107XG5leHBvcnQgdHlwZSBFdmVudFN0YXR1cyA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnRXZlbnRSZXNwb25zZUR0byddWydzdGF0dXMnXTtcblxuLy8gQ2hhdCByb2xlc1xuZXhwb3J0IHR5cGUgQ2hhdE1lbWJlclJvbGUgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0NoYXRNZW1iZXJSZXNwb25zZUR0byddWydyb2xlJ107XG5cbi8vIENvbnRlbnQgc3RhdHVzXG5leHBvcnQgdHlwZSBDb250ZW50U3RhdHVzID0gY29tcG9uZW50c1snc2NoZW1hcyddWydMaWJyYXJ5Q29udGVudFJlc3BvbnNlRHRvJ11bJ2NvbnRlbnRTdGF0dXMnXTtcblxuLy8gQmFkZ2UgdHlwZXNcbmV4cG9ydCB0eXBlIEJhZGdlVHlwZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQmFkZ2VSZXNwb25zZUR0byddWyd0eXBlJ107XG5cbi8vIE5vdGlmaWNhdGlvbiB0eXBlc1xuZXhwb3J0IHR5cGUgTm90aWZpY2F0aW9uVHlwZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnTm90aWZpY2F0aW9uUmVzcG9uc2VEdG8nXVsndHlwZSddO1xuXG4vLyBTdHJlYWsgdHlwZXNcbmV4cG9ydCB0eXBlIFN0cmVha1R5cGUgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ1N0cmVha1Jlc3BvbnNlRHRvJ11bJ3R5cGUnXTtcblxuLy8gQ3JhdmluZyB0cmlnZ2Vyc1xuZXhwb3J0IHR5cGUgQ3JhdmluZ1RyaWdnZXIgPSBOb25OdWxsYWJsZTxjb21wb25lbnRzWydzY2hlbWFzJ11bJ0NyYXZpbmdMb2dSZXNwb25zZUR0byddWyd0cmlnZ2VyVHlwZSddPjtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQVVUSCBUWVBFU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgdHlwZSBSZWdpc3RlclJlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ1JlZ2lzdGVyRHRvJ107XG5leHBvcnQgdHlwZSBBdXRoUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0F1dGhSZXNwb25zZUR0byddO1xuZXhwb3J0IHR5cGUgTG9naW5SZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydMb2dpbkR0byddO1xuZXhwb3J0IHR5cGUgUmVmcmVzaFRva2VuUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnUmVmcmVzaFRva2VuRHRvJ107XG5leHBvcnQgdHlwZSBUb2tlblJlc3BvbnNlID0gY29tcG9uZW50c1snc2NoZW1hcyddWydUb2tlblJlc3BvbnNlRHRvJ107XG5leHBvcnQgdHlwZSBGaXJlYmFzZUF1dGhSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydGaXJlYmFzZUF1dGhEdG8nXTtcbmV4cG9ydCB0eXBlIFNlbmRPdHBSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydTZW5kT3RwRHRvJ107XG5leHBvcnQgdHlwZSBPdHBTZW50UmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ090cFNlbnRSZXNwb25zZUR0byddO1xuZXhwb3J0IHR5cGUgVmVyaWZ5T3RwUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnVmVyaWZ5T3RwRHRvJ107XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFVTRVIgVFlQRVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IHR5cGUgVXNlclJlc3BvbnNlID0gY29tcG9uZW50c1snc2NoZW1hcyddWydVc2VyUmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIFVzZXJQdWJsaWNSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnVXNlclB1YmxpY1Jlc3BvbnNlRHRvJ107XG5leHBvcnQgdHlwZSBDcmVhdGVVc2VyUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQ3JlYXRlVXNlckR0byddO1xuZXhwb3J0IHR5cGUgVXBkYXRlVXNlclJlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ1VwZGF0ZVVzZXJEdG8nXTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gSFVCIFRZUEVTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCB0eXBlIEh1YlJlc3BvbnNlID0gY29tcG9uZW50c1snc2NoZW1hcyddWydIdWJSZXNwb25zZUR0byddO1xuZXhwb3J0IHR5cGUgQ3JlYXRlSHViUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQ3JlYXRlSHViRHRvJ107XG5leHBvcnQgdHlwZSBVcGRhdGVIdWJSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydVcGRhdGVIdWJEdG8nXTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRVZFTlQgVFlQRVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IHR5cGUgRXZlbnRSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnRXZlbnRSZXNwb25zZUR0byddO1xuZXhwb3J0IHR5cGUgQ3JlYXRlRXZlbnRSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydDcmVhdGVFdmVudER0byddO1xuZXhwb3J0IHR5cGUgVXBkYXRlRXZlbnRSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydVcGRhdGVFdmVudER0byddO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBCT09LSU5HIFRZUEVTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCB0eXBlIEJvb2tpbmdSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQm9va2luZ1Jlc3BvbnNlRHRvJ107XG5leHBvcnQgdHlwZSBDcmVhdGVCb29raW5nUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQ3JlYXRlQm9va2luZ0R0byddO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBMSUJSQVJZIFRZUEVTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCB0eXBlIExpYnJhcnlDb250ZW50UmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0xpYnJhcnlDb250ZW50UmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIExpYnJhcnlDb250ZW50RGV0YWlsUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0xpYnJhcnlDb250ZW50RGV0YWlsUmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIExpYnJhcnlQcm9ncmVzc1Jlc3BvbnNlID0gY29tcG9uZW50c1snc2NoZW1hcyddWydMaWJyYXJ5UHJvZ3Jlc3NSZXNwb25zZUR0byddO1xuZXhwb3J0IHR5cGUgQ29udGVudFR5cGUgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0xpYnJhcnlDb250ZW50UmVzcG9uc2VEdG8nXVsndHlwZSddO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBCVVNJTkVTUyAmIE9GRkVSIFRZUEVTIChMZWdhY3kpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCB0eXBlIEJ1c2luZXNzUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0J1c2luZXNzUmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIE9mZmVyUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ09mZmVyUmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIFJlZGVlbU9mZmVyUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnUmVkZWVtT2ZmZXJEdG8nXTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVkVOVUUgVFlQRVMgKGZyb20gZ2VuZXJhdGVkIE9wZW5BUEkgdHlwZXMpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCB0eXBlIFZlbnVlUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ1ZlbnVlUmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIFZlbnVlT3duZXJSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnVmVudWVPd25lclJlc3BvbnNlRHRvJ107XG5cbi8vIFJlcXVlc3QgdHlwZXMgZm9yIHZlbnVlIG9wZXJhdGlvbnNcbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlVmVudWVSZXF1ZXN0IHtcbiAgbmFtZTogc3RyaW5nO1xuICBzbHVnOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICB0eXBlOiBCdXNpbmVzc1R5cGU7XG4gIGhhc0FmRHJpbmtzPzogYm9vbGVhbjtcbiAgaXNBZlZlbnVlPzogYm9vbGVhbjtcbiAgYWZIaWdobGlnaHRzPzogc3RyaW5nW107XG4gIGFkZHJlc3M/OiBzdHJpbmc7XG4gIGNpdHlJZD86IHN0cmluZztcbiAgbG9jYXRpb25MYXQ/OiBudW1iZXI7XG4gIGxvY2F0aW9uTG9uZz86IG51bWJlcjtcbiAgcGhvbmU/OiBzdHJpbmc7XG4gIGVtYWlsPzogc3RyaW5nO1xuICB3ZWJzaXRlPzogc3RyaW5nO1xuICBpbnN0YWdyYW0/OiBzdHJpbmc7XG4gIHByb2ZpbGVJbWFnZT86IHN0cmluZztcbiAgYmFubmVySW1hZ2U/OiBzdHJpbmc7XG4gIHBob3Rvcz86IHN0cmluZ1tdO1xuICBvcGVuaW5nSG91cnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZVZlbnVlUmVxdWVzdCBleHRlbmRzIFBhcnRpYWw8Q3JlYXRlVmVudWVSZXF1ZXN0PiB7fVxuXG5leHBvcnQgaW50ZXJmYWNlIEFkZFZlbnVlT3duZXJSZXF1ZXN0IHtcbiAgdXNlcklkOiBzdHJpbmc7XG4gIHJvbGU6IFZlbnVlT3duZXJSb2xlO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBDUkVBVE9SIFRZUEVTIChmcm9tIGdlbmVyYXRlZCBPcGVuQVBJIHR5cGVzKVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgdHlwZSBDcmVhdG9yUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0NyZWF0b3JSZXNwb25zZUR0byddO1xuZXhwb3J0IHR5cGUgQ3JlYXRvckF2YWlsYWJpbGl0eVJlc3BvbnNlID0gY29tcG9uZW50c1snc2NoZW1hcyddWydDcmVhdG9yQXZhaWxhYmlsaXR5UmVzcG9uc2VEdG8nXTtcblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVDcmVhdG9yUmVxdWVzdCB7XG4gIHNsdWc6IHN0cmluZztcbiAgZGlzcGxheU5hbWU6IHN0cmluZztcbiAgYmlvPzogc3RyaW5nO1xuICBhdmF0YXJVcmw/OiBzdHJpbmc7XG4gIGNpdHlJZHM/OiBzdHJpbmdbXTtcbiAgY2FuRmFjaWxpdGF0ZT86IGJvb2xlYW47XG4gIGNhbkNyZWF0ZUNvbnRlbnQ/OiBib29sZWFuO1xuICBpc0luZmx1ZW5jZXI/OiBib29sZWFuO1xuICBzcGVjaWFsdGllcz86IHN0cmluZ1tdO1xuICBjZXJ0aWZpY2F0aW9ucz86IHN0cmluZ1tdO1xuICBzZXNzaW9uUmF0ZT86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVDcmVhdG9yUmVxdWVzdCBleHRlbmRzIFBhcnRpYWw8Q3JlYXRlQ3JlYXRvclJlcXVlc3Q+IHt9XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlQXZhaWxhYmlsaXR5UmVxdWVzdCB7XG4gIGRheU9mV2Vlaz86IG51bWJlcjtcbiAgc3RhcnRUaW1lOiBzdHJpbmc7XG4gIGVuZFRpbWU6IHN0cmluZztcbiAgdGltZXpvbmU6IHN0cmluZztcbiAgaXNSZWN1cnJpbmc/OiBib29sZWFuO1xuICBzcGVjaWZpY0RhdGU/OiBzdHJpbmc7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEJSQU5EIFRZUEVTIChmcm9tIGdlbmVyYXRlZCBPcGVuQVBJIHR5cGVzKVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgdHlwZSBCcmFuZFJlc3BvbnNlID0gY29tcG9uZW50c1snc2NoZW1hcyddWydCcmFuZFJlc3BvbnNlRHRvJ107XG5leHBvcnQgdHlwZSBCcmFuZE93bmVyUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0JyYW5kT3duZXJSZXNwb25zZUR0byddO1xuZXhwb3J0IHR5cGUgQnJhbmRDcmVhdG9yUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0JyYW5kQ3JlYXRvclJlc3BvbnNlRHRvJ107XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlQnJhbmRSZXF1ZXN0IHtcbiAgc2x1Zzogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBsb2dvVXJsPzogc3RyaW5nO1xuICBiYW5uZXJVcmw/OiBzdHJpbmc7XG4gIHByaW1hcnlDb2xvcj86IHN0cmluZztcbiAgd2Vic2l0ZT86IHN0cmluZztcbiAgZW1haWw/OiBzdHJpbmc7XG4gIGluc3RhZ3JhbT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVCcmFuZFJlcXVlc3QgZXh0ZW5kcyBQYXJ0aWFsPENyZWF0ZUJyYW5kUmVxdWVzdD4ge31cblxuZXhwb3J0IGludGVyZmFjZSBBZGRCcmFuZE93bmVyUmVxdWVzdCB7XG4gIHVzZXJJZDogc3RyaW5nO1xuICByb2xlOiBCcmFuZE93bmVyUm9sZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBZGRCcmFuZENyZWF0b3JSZXF1ZXN0IHtcbiAgY3JlYXRvcklkOiBzdHJpbmc7XG4gIGNvbW1pc3Npb25SYXRlPzogbnVtYmVyO1xuICBpc0FjdGl2ZT86IGJvb2xlYW47XG4gIHN0YXJ0RGF0ZT86IHN0cmluZztcbiAgZW5kRGF0ZT86IHN0cmluZztcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU1VCU0NSSVBUSU9OIFRZUEVTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCB0eXBlIFN1YnNjcmlwdGlvblJlc3BvbnNlID0gY29tcG9uZW50c1snc2NoZW1hcyddWydTdWJzY3JpcHRpb25SZXNwb25zZUR0byddO1xuZXhwb3J0IHR5cGUgQ3JlYXRlQ2hlY2tvdXRSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydDcmVhdGVDaGVja291dER0byddO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBOT1RJRklDQVRJT04gVFlQRVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IHR5cGUgTm90aWZpY2F0aW9uUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ05vdGlmaWNhdGlvblJlc3BvbnNlRHRvJ107XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIERFVklDRSBUT0tFTiBUWVBFU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgdHlwZSBSZWdpc3RlckRldmljZVRva2VuUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnUmVnaXN0ZXJEZXZpY2VEdG8nXTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU1VQUE9SVCBUWVBFU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBDaGVjay1pbnNcbmV4cG9ydCB0eXBlIENoZWNrSW5SZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQ2hlY2tJblJlc3BvbnNlRHRvJ107XG5leHBvcnQgdHlwZSBDcmVhdGVDaGVja0luUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQ3JlYXRlQ2hlY2tJbkR0byddO1xuZXhwb3J0IHR5cGUgVXBkYXRlQ2hlY2tJblJlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ1VwZGF0ZUNoZWNrSW5EdG8nXTtcbmV4cG9ydCB0eXBlIENoZWNrSW5TdHJlYWtSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQ2hlY2tJblN0cmVha0R0byddO1xuXG4vLyBXaW5zXG5leHBvcnQgdHlwZSBXaW5SZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnV2luUmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIENyZWF0ZVdpblJlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0NyZWF0ZVdpbkR0byddO1xuZXhwb3J0IHR5cGUgV2luQ291bnRSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnV2luQ291bnREdG8nXTtcblxuLy8gSmFjayBBSSBDb252ZXJzYXRpb25zXG5leHBvcnQgdHlwZSBDb252ZXJzYXRpb25SZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQ29udmVyc2F0aW9uUmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIENvbnZlcnNhdGlvbldpdGhNZXNzYWdlc1Jlc3BvbnNlID0gY29tcG9uZW50c1snc2NoZW1hcyddWydDb252ZXJzYXRpb25XaXRoTWVzc2FnZXNEdG8nXTtcbmV4cG9ydCB0eXBlIENyZWF0ZUNvbnZlcnNhdGlvblJlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0NyZWF0ZUNvbnZlcnNhdGlvbkR0byddO1xuZXhwb3J0IHR5cGUgSmFja01lc3NhZ2VSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnTWVzc2FnZVJlc3BvbnNlRHRvJ107XG5leHBvcnQgdHlwZSBTZW5kSmFja01lc3NhZ2VSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydTZW5kTWVzc2FnZUR0byddO1xuXG4vLyBNb29kIExvZ3NcbmV4cG9ydCB0eXBlIE1vb2RMb2dSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnTW9vZExvZ1Jlc3BvbnNlRHRvJ107XG5leHBvcnQgdHlwZSBMb2dNb29kUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnTG9nTW9vZER0byddO1xuZXhwb3J0IHR5cGUgTW9vZFN0YXRzUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ01vb2RTdGF0c0R0byddO1xuXG4vLyBIYWJpdHNcbmV4cG9ydCB0eXBlIEhhYml0UmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0hhYml0UmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIENyZWF0ZUhhYml0UmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQ3JlYXRlSGFiaXREdG8nXTtcbmV4cG9ydCB0eXBlIFVwZGF0ZUhhYml0UmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnVXBkYXRlSGFiaXREdG8nXTtcbmV4cG9ydCB0eXBlIENvbXBsZXRlSGFiaXRSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydDb21wbGV0ZUhhYml0RHRvJ107XG5leHBvcnQgdHlwZSBIYWJpdENvbXBsZXRpb25SZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnSGFiaXRDb21wbGV0aW9uUmVzcG9uc2VEdG8nXTtcblxuLy8gUmVmbGVjdGlvbnNcbmV4cG9ydCB0eXBlIFJlZmxlY3Rpb25SZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnUmVmbGVjdGlvblJlc3BvbnNlRHRvJ107XG5leHBvcnQgdHlwZSBDcmVhdGVSZWZsZWN0aW9uUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQ3JlYXRlUmVmbGVjdGlvbkR0byddO1xuZXhwb3J0IHR5cGUgVXBkYXRlUmVmbGVjdGlvblJlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ1VwZGF0ZVJlZmxlY3Rpb25EdG8nXTtcblxuLy8gQ3JhdmluZ3NcbmV4cG9ydCB0eXBlIENyYXZpbmdMb2dSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQ3JhdmluZ0xvZ1Jlc3BvbnNlRHRvJ107XG5leHBvcnQgdHlwZSBMb2dDcmF2aW5nUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnTG9nQ3JhdmluZ0R0byddO1xuZXhwb3J0IHR5cGUgQ3JhdmluZ1N0YXRzUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0NyYXZpbmdTdGF0c0R0byddO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNQVAgVFlQRVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IHR5cGUgTWFwTWVtYmVyUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ01hcE1lbWJlckR0byddO1xuZXhwb3J0IHR5cGUgTWFwSHViUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ01hcEh1YkR0byddO1xuZXhwb3J0IHR5cGUgTWFwRXZlbnRSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnTWFwRXZlbnREdG8nXTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQU1CQVNTQURPUiBUWVBFU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgdHlwZSBBbWJhc3NhZG9yUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0FtYmFzc2Fkb3JSZXNwb25zZUR0byddO1xuZXhwb3J0IHR5cGUgQXBwbHlBbWJhc3NhZG9yUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQXBwbHlBbWJhc3NhZG9yRHRvJ107XG5leHBvcnQgdHlwZSBVcGRhdGVBbWJhc3NhZG9yUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnVXBkYXRlQW1iYXNzYWRvckR0byddO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBHUk9XOTAgVFlQRVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IHR5cGUgR3JvdzkwRW5yb2xsbWVudFJlc3BvbnNlID0gY29tcG9uZW50c1snc2NoZW1hcyddWydHcm93OTBFbnJvbGxtZW50UmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIEdyb3c5MFByb2dyZXNzUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0dyb3c5MFByb2dyZXNzUmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIEdyb3c5MFRvZGF5UmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0dyb3c5MFRvZGF5UmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIEdyb3c5MFN0YXRzUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0dyb3c5MFN0YXRzUmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIEVucm9sbEdyb3c5MFJlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0Vucm9sbEdyb3c5MER0byddO1xuZXhwb3J0IHR5cGUgVXBkYXRlR3JvdzkwUHJvZ3Jlc3NSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydVcGRhdGVQcm9ncmVzc0R0byddO1xuZXhwb3J0IHR5cGUgVXBkYXRlR3JvdzkwU2V0dGluZ3NSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydVcGRhdGVTZXR0aW5nc0R0byddO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNQVRDSElORyBUWVBFU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgdHlwZSBDcmVhdGVNYXRjaFJlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0NyZWF0ZU1hdGNoRHRvJ107XG5leHBvcnQgdHlwZSBVcGRhdGVNYXRjaFJlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ1VwZGF0ZU1hdGNoRHRvJ107XG5leHBvcnQgdHlwZSBDcmVhdGVCdWRkeVJlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0NyZWF0ZUJ1ZGR5UmVxdWVzdER0byddO1xuZXhwb3J0IHR5cGUgVXBkYXRlQnVkZHlSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydVcGRhdGVCdWRkeUR0byddO1xuZXhwb3J0IHR5cGUgTG9nQnVkZHlBY3Rpdml0eVJlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0xvZ0J1ZGR5QWN0aXZpdHlEdG8nXTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRVZFTlQgQ0hBVCBUWVBFU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgdHlwZSBFdmVudENoYXRSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnRXZlbnRDaGF0UmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIENoYXRNZW1iZXJSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQ2hhdE1lbWJlclJlc3BvbnNlRHRvJ107XG5leHBvcnQgdHlwZSBDaGF0TWVzc2FnZVJlc3BvbnNlID0gY29tcG9uZW50c1snc2NoZW1hcyddWydNZXNzYWdlUmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIFBhZ2luYXRlZE1lc3NhZ2VzUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ1BhZ2luYXRlZE1lc3NhZ2VzRHRvJ107XG5leHBvcnQgdHlwZSBTZW5kQ2hhdE1lc3NhZ2VSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydTZW5kTWVzc2FnZUR0byddO1xuZXhwb3J0IHR5cGUgVXBkYXRlQ2hhdE1lc3NhZ2VSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydVcGRhdGVNZXNzYWdlRHRvJ107XG5leHBvcnQgdHlwZSBVcGRhdGVDaGF0U2V0dGluZ3NSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydVcGRhdGVDaGF0U2V0dGluZ3NEdG8nXTtcbmV4cG9ydCB0eXBlIFVwZGF0ZU1lbWJlclNldHRpbmdzUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnVXBkYXRlTWVtYmVyU2V0dGluZ3NEdG8nXTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQURNSU4gVFlQRVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IHR5cGUgQWRtaW5Mb2dpblJlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0FkbWluTG9naW5EdG8nXTtcbmV4cG9ydCB0eXBlIEFkbWluVG9rZW5zUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0FkbWluVG9rZW5zRHRvJ107XG5leHBvcnQgdHlwZSBBZG1pblVwZGF0ZVVzZXJSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydBZG1pblVwZGF0ZVVzZXJEdG8nXTtcbmV4cG9ydCB0eXBlIEFkbWluQ3JlYXRlSHViUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQWRtaW5DcmVhdGVIdWJEdG8nXTtcbmV4cG9ydCB0eXBlIEFkbWluVXBkYXRlRXZlbnRSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydBZG1pblVwZGF0ZUV2ZW50RHRvJ107XG5leHBvcnQgdHlwZSBBZG1pbkNyZWF0ZUNvbnRlbnRSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydBZG1pbkNyZWF0ZUNvbnRlbnREdG8nXTtcbmV4cG9ydCB0eXBlIEFkbWluQ3JlYXRlQnVzaW5lc3NSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydBZG1pbkNyZWF0ZUJ1c2luZXNzRHRvJ107XG5leHBvcnQgdHlwZSBBZG1pbk92ZXJ2aWV3U3RhdHNSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQWRtaW5PdmVydmlld1N0YXRzRHRvJ107XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEJBREdFIFRZUEVTIChmcm9tIGdlbmVyYXRlZCBPcGVuQVBJIHR5cGVzKVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgdHlwZSBCYWRnZVJlc3BvbnNlID0gY29tcG9uZW50c1snc2NoZW1hcyddWydCYWRnZVJlc3BvbnNlRHRvJ107XG5leHBvcnQgdHlwZSBVc2VyQmFkZ2VSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnVXNlckJhZGdlUmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIEJhZGdlUHJvZ3Jlc3NSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQmFkZ2VQcm9ncmVzc0R0byddO1xuXG4vLyBBbGlhcyBmb3IgU0RLIGNvbnNpc3RlbmN5XG5leHBvcnQgaW50ZXJmYWNlIEJhZGdlV2l0aFByb2dyZXNzIHtcbiAgYmFkZ2U6IEJhZGdlUmVzcG9uc2U7XG4gIGN1cnJlbnRQcm9ncmVzczogbnVtYmVyO1xuICByZXF1aXJlZFByb2dyZXNzOiBudW1iZXI7XG4gIHBlcmNlbnRDb21wbGV0ZTogbnVtYmVyO1xuICBpc0Vhcm5lZDogYm9vbGVhbjtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVU5JRklFRCBSRVdBUkQgVFlQRVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gUmVkZWVtVHlwZSBlbnVtIC0gZXh0cmFjdGVkIGZyb20gUHJpc21hIHZpYSBBUElcbmV4cG9ydCB0eXBlIFJlZGVlbVR5cGUgPSAnSU5fUEVSU09OJyB8ICdPTkxJTkUnIHwgJ0JPVEgnO1xuXG4vLyBSZXdhcmQgcmVzcG9uc2Ugd2l0aCByZWxhdGlvbnNcbmV4cG9ydCBpbnRlcmZhY2UgUmV3YXJkUmVzcG9uc2Uge1xuICBpZDogc3RyaW5nO1xuICB2ZW51ZUlkOiBzdHJpbmcgfCBudWxsO1xuICBicmFuZElkOiBzdHJpbmcgfCBudWxsO1xuICBiYWRnZUlkOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmcgfCBudWxsO1xuICBjb2RlOiBzdHJpbmcgfCBudWxsO1xuICByZWRlZW1UeXBlOiBSZWRlZW1UeXBlO1xuICBtYXhSZWRlbXB0aW9uczogbnVtYmVyIHwgbnVsbDtcbiAgcmVkZW1wdGlvbnNVc2VkOiBudW1iZXI7XG4gIHBlclVzZXJMaW1pdDogbnVtYmVyO1xuICB2YWxpZEZyb206IHN0cmluZyB8IG51bGw7XG4gIHZhbGlkVW50aWw6IHN0cmluZyB8IG51bGw7XG4gIGlzQWN0aXZlOiBib29sZWFuO1xuICBjcmVhdGVkQXQ6IHN0cmluZztcbiAgYmFkZ2U6IHtcbiAgICBpZDogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBzbHVnOiBzdHJpbmc7XG4gICAgaWNvbjogc3RyaW5nIHwgbnVsbDtcbiAgfTtcbiAgdmVudWU/OiB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgc2x1Zzogc3RyaW5nO1xuICAgIHByb2ZpbGVJbWFnZTogc3RyaW5nIHwgbnVsbDtcbiAgICBhZGRyZXNzOiBzdHJpbmcgfCBudWxsO1xuICB9IHwgbnVsbDtcbiAgYnJhbmQ/OiB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgc2x1Zzogc3RyaW5nO1xuICAgIGxvZ29Vcmw6IHN0cmluZyB8IG51bGw7XG4gIH0gfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJld2FyZFJlZGVtcHRpb25SZXNwb25zZSB7XG4gIGlkOiBzdHJpbmc7XG4gIHVzZXJJZDogc3RyaW5nO1xuICByZXdhcmRJZDogc3RyaW5nO1xuICByZWRlZW1lZEF0OiBzdHJpbmc7XG4gIHZlcmlmaWVkQXQ6IHN0cmluZyB8IG51bGw7XG4gIHZlcmlmaWVkQnk6IHN0cmluZyB8IG51bGw7XG4gIGNvZGVVc2VkOiBzdHJpbmcgfCBudWxsO1xuICByZXdhcmQ6IFJld2FyZFJlc3BvbnNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZVJld2FyZFJlcXVlc3Qge1xuICBiYWRnZUlkOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBjb2RlPzogc3RyaW5nO1xuICByZWRlZW1UeXBlPzogUmVkZWVtVHlwZTtcbiAgbWF4UmVkZW1wdGlvbnM/OiBudW1iZXI7XG4gIHBlclVzZXJMaW1pdD86IG51bWJlcjtcbiAgdmFsaWRGcm9tPzogc3RyaW5nO1xuICB2YWxpZFVudGlsPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZVJld2FyZFJlcXVlc3Qge1xuICB0aXRsZT86IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGNvZGU/OiBzdHJpbmc7XG4gIHJlZGVlbVR5cGU/OiBSZWRlZW1UeXBlO1xuICBtYXhSZWRlbXB0aW9ucz86IG51bWJlcjtcbiAgcGVyVXNlckxpbWl0PzogbnVtYmVyO1xuICB2YWxpZEZyb20/OiBzdHJpbmc7XG4gIHZhbGlkVW50aWw/OiBzdHJpbmc7XG4gIGlzQWN0aXZlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyV2FsbGV0UmVzcG9uc2Uge1xuICBiYWRnZXM6IEFycmF5PHtcbiAgICBpZDogc3RyaW5nO1xuICAgIGJhZGdlSWQ6IHN0cmluZztcbiAgICB1c2VySWQ6IHN0cmluZztcbiAgICBhd2FyZGVkQXQ6IHN0cmluZztcbiAgICBiYWRnZTogQmFkZ2VSZXNwb25zZTtcbiAgICBhdmFpbGFibGVSZXdhcmRzOiBSZXdhcmRSZXNwb25zZVtdO1xuICAgIHJlZGVlbWVkUmV3YXJkczogQXJyYXk8UmV3YXJkUmVkZW1wdGlvblJlc3BvbnNlICYgeyBxclRva2VuOiBzdHJpbmcgfT47XG4gIH0+O1xuICBzdGF0czoge1xuICAgIHRvdGFsQmFkZ2VzOiBudW1iZXI7XG4gICAgdG90YWxBdmFpbGFibGVSZXdhcmRzOiBudW1iZXI7XG4gICAgdG90YWxSZWRlZW1lZFJld2FyZHM6IG51bWJlcjtcbiAgfTtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTEVHQUNZIFRZUEVTIChkZXByZWNhdGVkIC0gdXNlIHVuaWZpZWQgdHlwZXMpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKiBAZGVwcmVjYXRlZCBVc2UgUmV3YXJkUmVzcG9uc2UgaW5zdGVhZCAqL1xuZXhwb3J0IGludGVyZmFjZSBQYXJ0bmVyUmV3YXJkUmVzcG9uc2Uge1xuICBpZDogc3RyaW5nO1xuICBidXNpbmVzc0lkOiBzdHJpbmc7XG4gIGJhZGdlSWQ6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZyB8IG51bGw7XG4gIGNvZGU6IHN0cmluZyB8IG51bGw7XG4gIG1heFJlZGVtcHRpb25zOiBudW1iZXIgfCBudWxsO1xuICByZWRlbXB0aW9uc1VzZWQ6IG51bWJlcjtcbiAgcGVyVXNlckxpbWl0OiBudW1iZXI7XG4gIHZhbGlkRnJvbTogc3RyaW5nO1xuICB2YWxpZFVudGlsOiBzdHJpbmcgfCBudWxsO1xuICBpc0FjdGl2ZTogYm9vbGVhbjtcbiAgY3JlYXRlZEF0OiBzdHJpbmc7XG4gIGJhZGdlOiB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgc2x1Zzogc3RyaW5nO1xuICAgIGljb246IHN0cmluZyB8IG51bGw7XG4gIH07XG4gIGJ1c2luZXNzOiB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgcHJvZmlsZUltYWdlOiBzdHJpbmcgfCBudWxsO1xuICB9O1xufVxuXG4vKiogQGRlcHJlY2F0ZWQgVXNlIFJld2FyZFJlZGVtcHRpb25SZXNwb25zZSBpbnN0ZWFkICovXG5leHBvcnQgaW50ZXJmYWNlIFBhcnRuZXJSZXdhcmRSZWRlbXB0aW9uUmVzcG9uc2Uge1xuICBpZDogc3RyaW5nO1xuICB1c2VySWQ6IHN0cmluZztcbiAgcGFydG5lclJld2FyZElkOiBzdHJpbmc7XG4gIHJlZGVlbWVkQXQ6IHN0cmluZztcbiAgdmVyaWZpZWRBdDogc3RyaW5nIHwgbnVsbDtcbiAgcGFydG5lclJld2FyZDogUGFydG5lclJld2FyZFJlc3BvbnNlO1xufVxuXG4vKiogQGRlcHJlY2F0ZWQgVXNlIENyZWF0ZVJld2FyZFJlcXVlc3QgaW5zdGVhZCAqL1xuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVQYXJ0bmVyUmV3YXJkUmVxdWVzdCB7XG4gIGJhZGdlSWQ6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGNvZGU/OiBzdHJpbmc7XG4gIG1heFJlZGVtcHRpb25zPzogbnVtYmVyO1xuICBwZXJVc2VyTGltaXQ/OiBudW1iZXI7XG4gIHZhbGlkVW50aWw/OiBzdHJpbmc7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFJFLUVYUE9SVFNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gUmUtZXhwb3J0IHBhdGhzIGFuZCBjb21wb25lbnRzIGZvciBhZHZhbmNlZCB1c2FnZVxuZXhwb3J0IHR5cGUgeyBwYXRocywgY29tcG9uZW50cyB9O1xuIl19
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBpL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7OztHQVVHIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHcm93U29iZXIgU0RLIFR5cGVzXG4gKlxuICogQWxsIHR5cGVzIGFyZSBkZXJpdmVkIGZyb20gdGhlIEBncm93c29iZXIvdHlwZXMgcGFja2FnZSB3aGljaCBpcyBhdXRvLWdlbmVyYXRlZFxuICogZnJvbSB0aGUgQVBJIE9wZW5BUEkgc3BlY2lmaWNhdGlvbi4gVGhpcyBlbnN1cmVzIHNpbmdsZSBzb3VyY2Ugb2YgdHJ1dGggZnJvbSBQcmlzbWEuXG4gKlxuICogVG8gcmVnZW5lcmF0ZSB0eXBlczpcbiAqIDEuIFN0YXJ0IHRoZSBBUEk6IGNkIC4uL2dyb3dzb2Jlci1hcGkgJiYgbnBtIHJ1biBzdGFydDpkZXZcbiAqIDIuIEdlbmVyYXRlIHR5cGVzOiBjZCAuLi9ncm93c29iZXItdHlwZXMgJiYgbnBtIHJ1biBnZW5lcmF0ZSAmJiBucG0gcnVuIGJ1aWxkXG4gKiAzLiBSZWJ1aWxkIFNESzogbnBtIHJ1biBidWlsZFxuICovXG5cbmltcG9ydCB0eXBlIHsgcGF0aHMsIGNvbXBvbmVudHMgfSBmcm9tICdAZ3Jvd3NvYmVyL3R5cGVzJztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVFlQRSBFWFRSQUNUSU9OIEhFTFBFUlNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBFeHRyYWN0IHJlcXVlc3QgYm9keSB0eXBlIGZvciBhIGdpdmVuIGVuZHBvaW50IGFuZCBtZXRob2RcbiAqL1xuZXhwb3J0IHR5cGUgUmVxdWVzdEJvZHk8XG4gIFBhdGggZXh0ZW5kcyBrZXlvZiBwYXRocyxcbiAgTWV0aG9kIGV4dGVuZHMga2V5b2YgcGF0aHNbUGF0aF1cbj4gPSBwYXRoc1tQYXRoXVtNZXRob2RdIGV4dGVuZHMgeyByZXF1ZXN0Qm9keTogeyBjb250ZW50OiB7ICdhcHBsaWNhdGlvbi9qc29uJzogaW5mZXIgVCB9IH0gfVxuICA/IFRcbiAgOiBuZXZlcjtcblxuLyoqXG4gKiBFeHRyYWN0IHJlc3BvbnNlIHR5cGUgZm9yIGEgZ2l2ZW4gZW5kcG9pbnQsIG1ldGhvZCwgYW5kIHN0YXR1cyBjb2RlXG4gKi9cbmV4cG9ydCB0eXBlIFJlc3BvbnNlQm9keTxcbiAgUGF0aCBleHRlbmRzIGtleW9mIHBhdGhzLFxuICBNZXRob2QgZXh0ZW5kcyBrZXlvZiBwYXRoc1tQYXRoXSxcbiAgU3RhdHVzIGV4dGVuZHMgbnVtYmVyID0gMjAwXG4+ID0gcGF0aHNbUGF0aF1bTWV0aG9kXSBleHRlbmRzIHsgcmVzcG9uc2VzOiB7IFtLIGluIFN0YXR1c106IHsgY29udGVudDogeyAnYXBwbGljYXRpb24vanNvbic6IGluZmVyIFQgfSB9IH0gfVxuICA/IFRcbiAgOiBuZXZlcjtcblxuLyoqXG4gKiBFeHRyYWN0IHF1ZXJ5IHBhcmFtZXRlcnMgdHlwZSBmb3IgYSBnaXZlbiBlbmRwb2ludCBhbmQgbWV0aG9kXG4gKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5UGFyYW1zPFxuICBQYXRoIGV4dGVuZHMga2V5b2YgcGF0aHMsXG4gIE1ldGhvZCBleHRlbmRzIGtleW9mIHBhdGhzW1BhdGhdXG4+ID0gcGF0aHNbUGF0aF1bTWV0aG9kXSBleHRlbmRzIHsgcGFyYW1ldGVyczogeyBxdWVyeT86IGluZmVyIFEgfSB9XG4gID8gUVxuICA6IFJlY29yZDxzdHJpbmcsIG5ldmVyPjtcblxuLyoqXG4gKiBFeHRyYWN0IHBhdGggcGFyYW1ldGVycyB0eXBlIGZvciBhIGdpdmVuIGVuZHBvaW50IGFuZCBtZXRob2RcbiAqL1xuZXhwb3J0IHR5cGUgUGF0aFBhcmFtczxcbiAgUGF0aCBleHRlbmRzIGtleW9mIHBhdGhzLFxuICBNZXRob2QgZXh0ZW5kcyBrZXlvZiBwYXRoc1tQYXRoXVxuPiA9IHBhdGhzW1BhdGhdW01ldGhvZF0gZXh0ZW5kcyB7IHBhcmFtZXRlcnM6IHsgcGF0aDogaW5mZXIgUCB9IH1cbiAgPyBQXG4gIDogUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBFTlVNIFRZUEVTIChleHRyYWN0ZWQgZnJvbSBnZW5lcmF0ZWQgc2NoZW1hcyAtIHNpbmdsZSBzb3VyY2Ugb2YgdHJ1dGgpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIEJ1c2luZXNzL1ZlbnVlIHR5cGUgKHVzZWQgZm9yIGJvdGggQnVzaW5lc3MgYW5kIFZlbnVlIG1vZGVscylcbmV4cG9ydCB0eXBlIEJ1c2luZXNzVHlwZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQnVzaW5lc3NSZXNwb25zZUR0byddWyd0eXBlJ107XG5cbi8vIE93bmVyc2hpcCByb2xlc1xuZXhwb3J0IHR5cGUgVmVudWVPd25lclJvbGUgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ1ZlbnVlT3duZXJSZXNwb25zZUR0byddWydyb2xlJ107XG5leHBvcnQgdHlwZSBCcmFuZE93bmVyUm9sZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQnJhbmRPd25lclJlc3BvbnNlRHRvJ11bJ3JvbGUnXTtcblxuLy8gRXZlbnQgdHlwZXNcbmV4cG9ydCB0eXBlIEdhdGhlcmluZ1R5cGUgPSBOb25OdWxsYWJsZTxjb21wb25lbnRzWydzY2hlbWFzJ11bJ0V2ZW50UmVzcG9uc2VEdG8nXVsnZ2F0aGVyaW5nVHlwZSddPjtcbmV4cG9ydCB0eXBlIEV2ZW50VmlzaWJpbGl0eSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnRXZlbnRSZXNwb25zZUR0byddWyd2aXNpYmlsaXR5J107XG5leHBvcnQgdHlwZSBFdmVudFN0YXR1cyA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnRXZlbnRSZXNwb25zZUR0byddWydzdGF0dXMnXTtcblxuLy8gQ2hhdCByb2xlc1xuZXhwb3J0IHR5cGUgQ2hhdE1lbWJlclJvbGUgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0NoYXRNZW1iZXJSZXNwb25zZUR0byddWydyb2xlJ107XG5cbi8vIENvbnRlbnQgc3RhdHVzXG5leHBvcnQgdHlwZSBDb250ZW50U3RhdHVzID0gY29tcG9uZW50c1snc2NoZW1hcyddWydMaWJyYXJ5Q29udGVudFJlc3BvbnNlRHRvJ11bJ2NvbnRlbnRTdGF0dXMnXTtcblxuLy8gQmFkZ2UgdHlwZXNcbmV4cG9ydCB0eXBlIEJhZGdlVHlwZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQmFkZ2VSZXNwb25zZUR0byddWyd0eXBlJ107XG5cbi8vIE5vdGlmaWNhdGlvbiB0eXBlc1xuZXhwb3J0IHR5cGUgTm90aWZpY2F0aW9uVHlwZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnTm90aWZpY2F0aW9uUmVzcG9uc2VEdG8nXVsndHlwZSddO1xuXG4vLyBTdHJlYWsgdHlwZXNcbmV4cG9ydCB0eXBlIFN0cmVha1R5cGUgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ1N0cmVha1Jlc3BvbnNlRHRvJ11bJ3R5cGUnXTtcblxuLy8gQ3JhdmluZyB0cmlnZ2Vyc1xuZXhwb3J0IHR5cGUgQ3JhdmluZ1RyaWdnZXIgPSBOb25OdWxsYWJsZTxjb21wb25lbnRzWydzY2hlbWFzJ11bJ0NyYXZpbmdMb2dSZXNwb25zZUR0byddWyd0cmlnZ2VyVHlwZSddPjtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQVVUSCBUWVBFU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgdHlwZSBSZWdpc3RlclJlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ1JlZ2lzdGVyRHRvJ107XG5leHBvcnQgdHlwZSBBdXRoUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0F1dGhSZXNwb25zZUR0byddO1xuZXhwb3J0IHR5cGUgTG9naW5SZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydMb2dpbkR0byddO1xuZXhwb3J0IHR5cGUgUmVmcmVzaFRva2VuUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnUmVmcmVzaFRva2VuRHRvJ107XG5leHBvcnQgdHlwZSBUb2tlblJlc3BvbnNlID0gY29tcG9uZW50c1snc2NoZW1hcyddWydUb2tlblJlc3BvbnNlRHRvJ107XG5leHBvcnQgdHlwZSBGaXJlYmFzZUF1dGhSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydGaXJlYmFzZUF1dGhEdG8nXTtcbmV4cG9ydCB0eXBlIFNlbmRPdHBSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydTZW5kT3RwRHRvJ107XG5leHBvcnQgdHlwZSBPdHBTZW50UmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ090cFNlbnRSZXNwb25zZUR0byddO1xuZXhwb3J0IHR5cGUgVmVyaWZ5T3RwUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnVmVyaWZ5T3RwRHRvJ107XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFVTRVIgVFlQRVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IHR5cGUgVXNlclJlc3BvbnNlID0gY29tcG9uZW50c1snc2NoZW1hcyddWydVc2VyUmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIFVzZXJQdWJsaWNSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnVXNlclB1YmxpY1Jlc3BvbnNlRHRvJ107XG5leHBvcnQgdHlwZSBDcmVhdGVVc2VyUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQ3JlYXRlVXNlckR0byddO1xuZXhwb3J0IHR5cGUgVXBkYXRlVXNlclJlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ1VwZGF0ZVVzZXJEdG8nXTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gSFVCIFRZUEVTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCB0eXBlIEh1YlJlc3BvbnNlID0gY29tcG9uZW50c1snc2NoZW1hcyddWydIdWJSZXNwb25zZUR0byddO1xuZXhwb3J0IHR5cGUgQ3JlYXRlSHViUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQ3JlYXRlSHViRHRvJ107XG5leHBvcnQgdHlwZSBVcGRhdGVIdWJSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydVcGRhdGVIdWJEdG8nXTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRVZFTlQgVFlQRVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IHR5cGUgRXZlbnRSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnRXZlbnRSZXNwb25zZUR0byddO1xuZXhwb3J0IHR5cGUgQ3JlYXRlRXZlbnRSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydDcmVhdGVFdmVudER0byddO1xuZXhwb3J0IHR5cGUgVXBkYXRlRXZlbnRSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydVcGRhdGVFdmVudER0byddO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBCT09LSU5HIFRZUEVTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCB0eXBlIEJvb2tpbmdSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQm9va2luZ1Jlc3BvbnNlRHRvJ107XG5leHBvcnQgdHlwZSBDcmVhdGVCb29raW5nUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQ3JlYXRlQm9va2luZ0R0byddO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBMSUJSQVJZIFRZUEVTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCB0eXBlIExpYnJhcnlDb250ZW50UmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0xpYnJhcnlDb250ZW50UmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIExpYnJhcnlDb250ZW50RGV0YWlsUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0xpYnJhcnlDb250ZW50RGV0YWlsUmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIExpYnJhcnlQcm9ncmVzc1Jlc3BvbnNlID0gY29tcG9uZW50c1snc2NoZW1hcyddWydMaWJyYXJ5UHJvZ3Jlc3NSZXNwb25zZUR0byddO1xuZXhwb3J0IHR5cGUgQ29udGVudFR5cGUgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0xpYnJhcnlDb250ZW50UmVzcG9uc2VEdG8nXVsndHlwZSddO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBCVVNJTkVTUyAmIE9GRkVSIFRZUEVTIChMZWdhY3kpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCB0eXBlIEJ1c2luZXNzUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0J1c2luZXNzUmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIE9mZmVyUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ09mZmVyUmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIFJlZGVlbU9mZmVyUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnUmVkZWVtT2ZmZXJEdG8nXTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVkVOVUUgVFlQRVMgKGZyb20gZ2VuZXJhdGVkIE9wZW5BUEkgdHlwZXMpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCB0eXBlIFZlbnVlUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ1ZlbnVlUmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIFZlbnVlT3duZXJSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnVmVudWVPd25lclJlc3BvbnNlRHRvJ107XG5cbi8vIFJlcXVlc3QgdHlwZXMgZm9yIHZlbnVlIG9wZXJhdGlvbnNcbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlVmVudWVSZXF1ZXN0IHtcbiAgbmFtZTogc3RyaW5nO1xuICBzbHVnOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICB0eXBlOiBCdXNpbmVzc1R5cGU7XG4gIGhhc0FmRHJpbmtzPzogYm9vbGVhbjtcbiAgaXNBZlZlbnVlPzogYm9vbGVhbjtcbiAgYWZIaWdobGlnaHRzPzogc3RyaW5nW107XG4gIGFkZHJlc3M/OiBzdHJpbmc7XG4gIGNpdHlJZD86IHN0cmluZztcbiAgbG9jYXRpb25MYXQ/OiBudW1iZXI7XG4gIGxvY2F0aW9uTG9uZz86IG51bWJlcjtcbiAgcGhvbmU/OiBzdHJpbmc7XG4gIGVtYWlsPzogc3RyaW5nO1xuICB3ZWJzaXRlPzogc3RyaW5nO1xuICBpbnN0YWdyYW0/OiBzdHJpbmc7XG4gIHByb2ZpbGVJbWFnZT86IHN0cmluZztcbiAgYmFubmVySW1hZ2U/OiBzdHJpbmc7XG4gIHBob3Rvcz86IHN0cmluZ1tdO1xuICBvcGVuaW5nSG91cnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZVZlbnVlUmVxdWVzdCBleHRlbmRzIFBhcnRpYWw8Q3JlYXRlVmVudWVSZXF1ZXN0PiB7fVxuXG5leHBvcnQgaW50ZXJmYWNlIEFkZFZlbnVlT3duZXJSZXF1ZXN0IHtcbiAgdXNlcklkOiBzdHJpbmc7XG4gIHJvbGU6IFZlbnVlT3duZXJSb2xlO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBDUkVBVE9SIFRZUEVTIChmcm9tIGdlbmVyYXRlZCBPcGVuQVBJIHR5cGVzKVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgdHlwZSBDcmVhdG9yUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0NyZWF0b3JSZXNwb25zZUR0byddO1xuZXhwb3J0IHR5cGUgQ3JlYXRvckF2YWlsYWJpbGl0eVJlc3BvbnNlID0gY29tcG9uZW50c1snc2NoZW1hcyddWydDcmVhdG9yQXZhaWxhYmlsaXR5UmVzcG9uc2VEdG8nXTtcblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVDcmVhdG9yUmVxdWVzdCB7XG4gIHNsdWc6IHN0cmluZztcbiAgZGlzcGxheU5hbWU6IHN0cmluZztcbiAgYmlvPzogc3RyaW5nO1xuICBhdmF0YXJVcmw/OiBzdHJpbmc7XG4gIGNpdHlJZHM/OiBzdHJpbmdbXTtcbiAgY2FuRmFjaWxpdGF0ZT86IGJvb2xlYW47XG4gIGNhbkNyZWF0ZUNvbnRlbnQ/OiBib29sZWFuO1xuICBpc0luZmx1ZW5jZXI/OiBib29sZWFuO1xuICBzcGVjaWFsdGllcz86IHN0cmluZ1tdO1xuICBjZXJ0aWZpY2F0aW9ucz86IHN0cmluZ1tdO1xuICBzZXNzaW9uUmF0ZT86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVDcmVhdG9yUmVxdWVzdCBleHRlbmRzIFBhcnRpYWw8Q3JlYXRlQ3JlYXRvclJlcXVlc3Q+IHt9XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlQXZhaWxhYmlsaXR5UmVxdWVzdCB7XG4gIGRheU9mV2Vlaz86IG51bWJlcjtcbiAgc3RhcnRUaW1lOiBzdHJpbmc7XG4gIGVuZFRpbWU6IHN0cmluZztcbiAgdGltZXpvbmU6IHN0cmluZztcbiAgaXNSZWN1cnJpbmc/OiBib29sZWFuO1xuICBzcGVjaWZpY0RhdGU/OiBzdHJpbmc7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEdBVEhFUklORyBUWVBFIFRFTVBMQVRFUyAoZm9yIGZhY2lsaXRhdG9yIGV2ZW50IHR5cGVzKVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgdHlwZSBHYXRoZXJpbmdUeXBlUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0dhdGhlcmluZ1R5cGVSZXNwb25zZUR0byddO1xuZXhwb3J0IHR5cGUgQ3JlYXRlR2F0aGVyaW5nVHlwZVJlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0NyZWF0ZUdhdGhlcmluZ1R5cGVEdG8nXTtcbmV4cG9ydCB0eXBlIFVwZGF0ZUdhdGhlcmluZ1R5cGVSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydVcGRhdGVHYXRoZXJpbmdUeXBlRHRvJ107XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEJSQU5EIFRZUEVTIChmcm9tIGdlbmVyYXRlZCBPcGVuQVBJIHR5cGVzKVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgdHlwZSBCcmFuZFJlc3BvbnNlID0gY29tcG9uZW50c1snc2NoZW1hcyddWydCcmFuZFJlc3BvbnNlRHRvJ107XG5leHBvcnQgdHlwZSBCcmFuZE93bmVyUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0JyYW5kT3duZXJSZXNwb25zZUR0byddO1xuZXhwb3J0IHR5cGUgQnJhbmRDcmVhdG9yUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0JyYW5kQ3JlYXRvclJlc3BvbnNlRHRvJ107XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlQnJhbmRSZXF1ZXN0IHtcbiAgc2x1Zzogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBsb2dvVXJsPzogc3RyaW5nO1xuICBiYW5uZXJVcmw/OiBzdHJpbmc7XG4gIHByaW1hcnlDb2xvcj86IHN0cmluZztcbiAgd2Vic2l0ZT86IHN0cmluZztcbiAgZW1haWw/OiBzdHJpbmc7XG4gIGluc3RhZ3JhbT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVCcmFuZFJlcXVlc3QgZXh0ZW5kcyBQYXJ0aWFsPENyZWF0ZUJyYW5kUmVxdWVzdD4ge31cblxuZXhwb3J0IGludGVyZmFjZSBBZGRCcmFuZE93bmVyUmVxdWVzdCB7XG4gIHVzZXJJZDogc3RyaW5nO1xuICByb2xlOiBCcmFuZE93bmVyUm9sZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBZGRCcmFuZENyZWF0b3JSZXF1ZXN0IHtcbiAgY3JlYXRvcklkOiBzdHJpbmc7XG4gIGNvbW1pc3Npb25SYXRlPzogbnVtYmVyO1xuICBpc0FjdGl2ZT86IGJvb2xlYW47XG4gIHN0YXJ0RGF0ZT86IHN0cmluZztcbiAgZW5kRGF0ZT86IHN0cmluZztcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU1VCU0NSSVBUSU9OIFRZUEVTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCB0eXBlIFN1YnNjcmlwdGlvblJlc3BvbnNlID0gY29tcG9uZW50c1snc2NoZW1hcyddWydTdWJzY3JpcHRpb25SZXNwb25zZUR0byddO1xuZXhwb3J0IHR5cGUgQ3JlYXRlQ2hlY2tvdXRSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydDcmVhdGVDaGVja291dER0byddO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBOT1RJRklDQVRJT04gVFlQRVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IHR5cGUgTm90aWZpY2F0aW9uUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ05vdGlmaWNhdGlvblJlc3BvbnNlRHRvJ107XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIERFVklDRSBUT0tFTiBUWVBFU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgdHlwZSBSZWdpc3RlckRldmljZVRva2VuUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnUmVnaXN0ZXJEZXZpY2VEdG8nXTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU1VQUE9SVCBUWVBFU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBDaGVjay1pbnNcbmV4cG9ydCB0eXBlIENoZWNrSW5SZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQ2hlY2tJblJlc3BvbnNlRHRvJ107XG5leHBvcnQgdHlwZSBDcmVhdGVDaGVja0luUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQ3JlYXRlQ2hlY2tJbkR0byddO1xuZXhwb3J0IHR5cGUgVXBkYXRlQ2hlY2tJblJlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ1VwZGF0ZUNoZWNrSW5EdG8nXTtcbmV4cG9ydCB0eXBlIENoZWNrSW5TdHJlYWtSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQ2hlY2tJblN0cmVha0R0byddO1xuXG4vLyBXaW5zXG5leHBvcnQgdHlwZSBXaW5SZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnV2luUmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIENyZWF0ZVdpblJlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0NyZWF0ZVdpbkR0byddO1xuZXhwb3J0IHR5cGUgV2luQ291bnRSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnV2luQ291bnREdG8nXTtcblxuLy8gSmFjayBBSSBDb252ZXJzYXRpb25zXG5leHBvcnQgdHlwZSBDb252ZXJzYXRpb25SZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQ29udmVyc2F0aW9uUmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIENvbnZlcnNhdGlvbldpdGhNZXNzYWdlc1Jlc3BvbnNlID0gY29tcG9uZW50c1snc2NoZW1hcyddWydKYWNrQ29udmVyc2F0aW9uV2l0aE1lc3NhZ2VzRHRvJ107XG5leHBvcnQgdHlwZSBDcmVhdGVDb252ZXJzYXRpb25SZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydDcmVhdGVDb252ZXJzYXRpb25EdG8nXTtcbmV4cG9ydCB0eXBlIEphY2tNZXNzYWdlUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0phY2tNZXNzYWdlUmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIFNlbmRKYWNrTWVzc2FnZVJlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ1NlbmRKYWNrTWVzc2FnZUR0byddO1xuXG4vLyBNb29kIExvZ3NcbmV4cG9ydCB0eXBlIE1vb2RMb2dSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnTW9vZExvZ1Jlc3BvbnNlRHRvJ107XG5leHBvcnQgdHlwZSBMb2dNb29kUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnTG9nTW9vZER0byddO1xuZXhwb3J0IHR5cGUgTW9vZFN0YXRzUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ01vb2RTdGF0c0R0byddO1xuXG4vLyBIYWJpdHNcbmV4cG9ydCB0eXBlIEhhYml0UmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0hhYml0UmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIENyZWF0ZUhhYml0UmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQ3JlYXRlSGFiaXREdG8nXTtcbmV4cG9ydCB0eXBlIFVwZGF0ZUhhYml0UmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnVXBkYXRlSGFiaXREdG8nXTtcbmV4cG9ydCB0eXBlIENvbXBsZXRlSGFiaXRSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydDb21wbGV0ZUhhYml0RHRvJ107XG5leHBvcnQgdHlwZSBIYWJpdENvbXBsZXRpb25SZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnSGFiaXRDb21wbGV0aW9uUmVzcG9uc2VEdG8nXTtcblxuLy8gUmVmbGVjdGlvbnNcbmV4cG9ydCB0eXBlIFJlZmxlY3Rpb25SZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnUmVmbGVjdGlvblJlc3BvbnNlRHRvJ107XG5leHBvcnQgdHlwZSBDcmVhdGVSZWZsZWN0aW9uUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQ3JlYXRlUmVmbGVjdGlvbkR0byddO1xuZXhwb3J0IHR5cGUgVXBkYXRlUmVmbGVjdGlvblJlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ1VwZGF0ZVJlZmxlY3Rpb25EdG8nXTtcblxuLy8gQ3JhdmluZ3NcbmV4cG9ydCB0eXBlIENyYXZpbmdMb2dSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQ3JhdmluZ0xvZ1Jlc3BvbnNlRHRvJ107XG5leHBvcnQgdHlwZSBMb2dDcmF2aW5nUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnTG9nQ3JhdmluZ0R0byddO1xuZXhwb3J0IHR5cGUgQ3JhdmluZ1N0YXRzUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0NyYXZpbmdTdGF0c0R0byddO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNQVAgVFlQRVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IHR5cGUgTWFwTWVtYmVyUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ01hcE1lbWJlckR0byddO1xuZXhwb3J0IHR5cGUgTWFwSHViUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ01hcEh1YkR0byddO1xuZXhwb3J0IHR5cGUgTWFwRXZlbnRSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnTWFwRXZlbnREdG8nXTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQU1CQVNTQURPUiBUWVBFU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgdHlwZSBBbWJhc3NhZG9yUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0FtYmFzc2Fkb3JSZXNwb25zZUR0byddO1xuZXhwb3J0IHR5cGUgQXBwbHlBbWJhc3NhZG9yUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQXBwbHlBbWJhc3NhZG9yRHRvJ107XG5leHBvcnQgdHlwZSBVcGRhdGVBbWJhc3NhZG9yUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnVXBkYXRlQW1iYXNzYWRvckR0byddO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBHUk9XOTAgVFlQRVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IHR5cGUgR3JvdzkwRW5yb2xsbWVudFJlc3BvbnNlID0gY29tcG9uZW50c1snc2NoZW1hcyddWydHcm93OTBFbnJvbGxtZW50UmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIEdyb3c5MFByb2dyZXNzUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0dyb3c5MFByb2dyZXNzUmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIEdyb3c5MFRvZGF5UmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0dyb3c5MFRvZGF5UmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIEdyb3c5MFN0YXRzUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0dyb3c5MFN0YXRzUmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIEVucm9sbEdyb3c5MFJlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0Vucm9sbEdyb3c5MER0byddO1xuZXhwb3J0IHR5cGUgVXBkYXRlR3JvdzkwUHJvZ3Jlc3NSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydVcGRhdGVQcm9ncmVzc0R0byddO1xuZXhwb3J0IHR5cGUgVXBkYXRlR3JvdzkwU2V0dGluZ3NSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydVcGRhdGVTZXR0aW5nc0R0byddO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNQVRDSElORyBUWVBFU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgdHlwZSBDcmVhdGVNYXRjaFJlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0NyZWF0ZU1hdGNoRHRvJ107XG5leHBvcnQgdHlwZSBVcGRhdGVNYXRjaFJlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ1VwZGF0ZU1hdGNoRHRvJ107XG5leHBvcnQgdHlwZSBDcmVhdGVCdWRkeVJlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0NyZWF0ZUJ1ZGR5UmVxdWVzdER0byddO1xuZXhwb3J0IHR5cGUgVXBkYXRlQnVkZHlSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydVcGRhdGVCdWRkeUR0byddO1xuZXhwb3J0IHR5cGUgTG9nQnVkZHlBY3Rpdml0eVJlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0xvZ0J1ZGR5QWN0aXZpdHlEdG8nXTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRVZFTlQgQ0hBVCBUWVBFU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgdHlwZSBFdmVudENoYXRSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnRXZlbnRDaGF0UmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIENoYXRNZW1iZXJSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQ2hhdE1lbWJlclJlc3BvbnNlRHRvJ107XG5leHBvcnQgdHlwZSBDaGF0TWVzc2FnZVJlc3BvbnNlID0gY29tcG9uZW50c1snc2NoZW1hcyddWydFdmVudENoYXRNZXNzYWdlUmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIFBhZ2luYXRlZE1lc3NhZ2VzUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ1BhZ2luYXRlZEV2ZW50Q2hhdE1lc3NhZ2VzRHRvJ107XG5leHBvcnQgdHlwZSBTZW5kQ2hhdE1lc3NhZ2VSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydTZW5kRXZlbnRDaGF0TWVzc2FnZUR0byddO1xuZXhwb3J0IHR5cGUgVXBkYXRlQ2hhdE1lc3NhZ2VSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydVcGRhdGVFdmVudENoYXRNZXNzYWdlRHRvJ107XG5leHBvcnQgdHlwZSBVcGRhdGVDaGF0U2V0dGluZ3NSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydVcGRhdGVDaGF0U2V0dGluZ3NEdG8nXTtcbmV4cG9ydCB0eXBlIFVwZGF0ZU1lbWJlclNldHRpbmdzUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnVXBkYXRlTWVtYmVyU2V0dGluZ3NEdG8nXTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQURNSU4gVFlQRVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IHR5cGUgQWRtaW5Mb2dpblJlcXVlc3QgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0FkbWluTG9naW5EdG8nXTtcbmV4cG9ydCB0eXBlIEFkbWluVG9rZW5zUmVzcG9uc2UgPSBjb21wb25lbnRzWydzY2hlbWFzJ11bJ0FkbWluVG9rZW5zRHRvJ107XG5leHBvcnQgdHlwZSBBZG1pblVwZGF0ZVVzZXJSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydBZG1pblVwZGF0ZVVzZXJEdG8nXTtcbmV4cG9ydCB0eXBlIEFkbWluQ3JlYXRlSHViUmVxdWVzdCA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQWRtaW5DcmVhdGVIdWJEdG8nXTtcbmV4cG9ydCB0eXBlIEFkbWluVXBkYXRlRXZlbnRSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydBZG1pblVwZGF0ZUV2ZW50RHRvJ107XG5leHBvcnQgdHlwZSBBZG1pbkNyZWF0ZUNvbnRlbnRSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydBZG1pbkNyZWF0ZUNvbnRlbnREdG8nXTtcbmV4cG9ydCB0eXBlIEFkbWluQ3JlYXRlQnVzaW5lc3NSZXF1ZXN0ID0gY29tcG9uZW50c1snc2NoZW1hcyddWydBZG1pbkNyZWF0ZUJ1c2luZXNzRHRvJ107XG5leHBvcnQgdHlwZSBBZG1pbk92ZXJ2aWV3U3RhdHNSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQWRtaW5PdmVydmlld1N0YXRzRHRvJ107XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEJBREdFIFRZUEVTIChmcm9tIGdlbmVyYXRlZCBPcGVuQVBJIHR5cGVzKVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgdHlwZSBCYWRnZVJlc3BvbnNlID0gY29tcG9uZW50c1snc2NoZW1hcyddWydCYWRnZVJlc3BvbnNlRHRvJ107XG5leHBvcnQgdHlwZSBVc2VyQmFkZ2VSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnVXNlckJhZGdlUmVzcG9uc2VEdG8nXTtcbmV4cG9ydCB0eXBlIEJhZGdlUHJvZ3Jlc3NSZXNwb25zZSA9IGNvbXBvbmVudHNbJ3NjaGVtYXMnXVsnQmFkZ2VQcm9ncmVzc0R0byddO1xuXG4vLyBBbGlhcyBmb3IgU0RLIGNvbnNpc3RlbmN5XG5leHBvcnQgaW50ZXJmYWNlIEJhZGdlV2l0aFByb2dyZXNzIHtcbiAgYmFkZ2U6IEJhZGdlUmVzcG9uc2U7XG4gIGN1cnJlbnRQcm9ncmVzczogbnVtYmVyO1xuICByZXF1aXJlZFByb2dyZXNzOiBudW1iZXI7XG4gIHBlcmNlbnRDb21wbGV0ZTogbnVtYmVyO1xuICBpc0Vhcm5lZDogYm9vbGVhbjtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVU5JRklFRCBSRVdBUkQgVFlQRVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gUmVkZWVtVHlwZSBlbnVtIC0gZXh0cmFjdGVkIGZyb20gUHJpc21hIHZpYSBBUElcbmV4cG9ydCB0eXBlIFJlZGVlbVR5cGUgPSAnSU5fUEVSU09OJyB8ICdPTkxJTkUnIHwgJ0JPVEgnO1xuXG4vLyBSZXdhcmQgcmVzcG9uc2Ugd2l0aCByZWxhdGlvbnNcbmV4cG9ydCBpbnRlcmZhY2UgUmV3YXJkUmVzcG9uc2Uge1xuICBpZDogc3RyaW5nO1xuICB2ZW51ZUlkOiBzdHJpbmcgfCBudWxsO1xuICBicmFuZElkOiBzdHJpbmcgfCBudWxsO1xuICBiYWRnZUlkOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmcgfCBudWxsO1xuICBjb2RlOiBzdHJpbmcgfCBudWxsO1xuICByZWRlZW1UeXBlOiBSZWRlZW1UeXBlO1xuICBtYXhSZWRlbXB0aW9uczogbnVtYmVyIHwgbnVsbDtcbiAgcmVkZW1wdGlvbnNVc2VkOiBudW1iZXI7XG4gIHBlclVzZXJMaW1pdDogbnVtYmVyO1xuICB2YWxpZEZyb206IHN0cmluZyB8IG51bGw7XG4gIHZhbGlkVW50aWw6IHN0cmluZyB8IG51bGw7XG4gIGlzQWN0aXZlOiBib29sZWFuO1xuICBjcmVhdGVkQXQ6IHN0cmluZztcbiAgYmFkZ2U6IHtcbiAgICBpZDogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBzbHVnOiBzdHJpbmc7XG4gICAgaWNvbjogc3RyaW5nIHwgbnVsbDtcbiAgfTtcbiAgdmVudWU/OiB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgc2x1Zzogc3RyaW5nO1xuICAgIHByb2ZpbGVJbWFnZTogc3RyaW5nIHwgbnVsbDtcbiAgICBhZGRyZXNzOiBzdHJpbmcgfCBudWxsO1xuICB9IHwgbnVsbDtcbiAgYnJhbmQ/OiB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgc2x1Zzogc3RyaW5nO1xuICAgIGxvZ29Vcmw6IHN0cmluZyB8IG51bGw7XG4gIH0gfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJld2FyZFJlZGVtcHRpb25SZXNwb25zZSB7XG4gIGlkOiBzdHJpbmc7XG4gIHVzZXJJZDogc3RyaW5nO1xuICByZXdhcmRJZDogc3RyaW5nO1xuICByZWRlZW1lZEF0OiBzdHJpbmc7XG4gIHZlcmlmaWVkQXQ6IHN0cmluZyB8IG51bGw7XG4gIHZlcmlmaWVkQnk6IHN0cmluZyB8IG51bGw7XG4gIGNvZGVVc2VkOiBzdHJpbmcgfCBudWxsO1xuICByZXdhcmQ6IFJld2FyZFJlc3BvbnNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZVJld2FyZFJlcXVlc3Qge1xuICBiYWRnZUlkOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBjb2RlPzogc3RyaW5nO1xuICByZWRlZW1UeXBlPzogUmVkZWVtVHlwZTtcbiAgbWF4UmVkZW1wdGlvbnM/OiBudW1iZXI7XG4gIHBlclVzZXJMaW1pdD86IG51bWJlcjtcbiAgdmFsaWRGcm9tPzogc3RyaW5nO1xuICB2YWxpZFVudGlsPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZVJld2FyZFJlcXVlc3Qge1xuICB0aXRsZT86IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGNvZGU/OiBzdHJpbmc7XG4gIHJlZGVlbVR5cGU/OiBSZWRlZW1UeXBlO1xuICBtYXhSZWRlbXB0aW9ucz86IG51bWJlcjtcbiAgcGVyVXNlckxpbWl0PzogbnVtYmVyO1xuICB2YWxpZEZyb20/OiBzdHJpbmc7XG4gIHZhbGlkVW50aWw/OiBzdHJpbmc7XG4gIGlzQWN0aXZlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyV2FsbGV0UmVzcG9uc2Uge1xuICBiYWRnZXM6IEFycmF5PHtcbiAgICBpZDogc3RyaW5nO1xuICAgIGJhZGdlSWQ6IHN0cmluZztcbiAgICB1c2VySWQ6IHN0cmluZztcbiAgICBhd2FyZGVkQXQ6IHN0cmluZztcbiAgICBiYWRnZTogQmFkZ2VSZXNwb25zZTtcbiAgICBhdmFpbGFibGVSZXdhcmRzOiBSZXdhcmRSZXNwb25zZVtdO1xuICAgIHJlZGVlbWVkUmV3YXJkczogQXJyYXk8UmV3YXJkUmVkZW1wdGlvblJlc3BvbnNlICYgeyBxclRva2VuOiBzdHJpbmcgfT47XG4gIH0+O1xuICBzdGF0czoge1xuICAgIHRvdGFsQmFkZ2VzOiBudW1iZXI7XG4gICAgdG90YWxBdmFpbGFibGVSZXdhcmRzOiBudW1iZXI7XG4gICAgdG90YWxSZWRlZW1lZFJld2FyZHM6IG51bWJlcjtcbiAgfTtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTEVHQUNZIFRZUEVTIChkZXByZWNhdGVkIC0gdXNlIHVuaWZpZWQgdHlwZXMpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKiBAZGVwcmVjYXRlZCBVc2UgUmV3YXJkUmVzcG9uc2UgaW5zdGVhZCAqL1xuZXhwb3J0IGludGVyZmFjZSBQYXJ0bmVyUmV3YXJkUmVzcG9uc2Uge1xuICBpZDogc3RyaW5nO1xuICBidXNpbmVzc0lkOiBzdHJpbmc7XG4gIGJhZGdlSWQ6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZyB8IG51bGw7XG4gIGNvZGU6IHN0cmluZyB8IG51bGw7XG4gIG1heFJlZGVtcHRpb25zOiBudW1iZXIgfCBudWxsO1xuICByZWRlbXB0aW9uc1VzZWQ6IG51bWJlcjtcbiAgcGVyVXNlckxpbWl0OiBudW1iZXI7XG4gIHZhbGlkRnJvbTogc3RyaW5nO1xuICB2YWxpZFVudGlsOiBzdHJpbmcgfCBudWxsO1xuICBpc0FjdGl2ZTogYm9vbGVhbjtcbiAgY3JlYXRlZEF0OiBzdHJpbmc7XG4gIGJhZGdlOiB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgc2x1Zzogc3RyaW5nO1xuICAgIGljb246IHN0cmluZyB8IG51bGw7XG4gIH07XG4gIGJ1c2luZXNzOiB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgcHJvZmlsZUltYWdlOiBzdHJpbmcgfCBudWxsO1xuICB9O1xufVxuXG4vKiogQGRlcHJlY2F0ZWQgVXNlIFJld2FyZFJlZGVtcHRpb25SZXNwb25zZSBpbnN0ZWFkICovXG5leHBvcnQgaW50ZXJmYWNlIFBhcnRuZXJSZXdhcmRSZWRlbXB0aW9uUmVzcG9uc2Uge1xuICBpZDogc3RyaW5nO1xuICB1c2VySWQ6IHN0cmluZztcbiAgcGFydG5lclJld2FyZElkOiBzdHJpbmc7XG4gIHJlZGVlbWVkQXQ6IHN0cmluZztcbiAgdmVyaWZpZWRBdDogc3RyaW5nIHwgbnVsbDtcbiAgcGFydG5lclJld2FyZDogUGFydG5lclJld2FyZFJlc3BvbnNlO1xufVxuXG4vKiogQGRlcHJlY2F0ZWQgVXNlIENyZWF0ZVJld2FyZFJlcXVlc3QgaW5zdGVhZCAqL1xuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVQYXJ0bmVyUmV3YXJkUmVxdWVzdCB7XG4gIGJhZGdlSWQ6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGNvZGU/OiBzdHJpbmc7XG4gIG1heFJlZGVtcHRpb25zPzogbnVtYmVyO1xuICBwZXJVc2VyTGltaXQ/OiBudW1iZXI7XG4gIHZhbGlkVW50aWw/OiBzdHJpbmc7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFJFLUVYUE9SVFNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gUmUtZXhwb3J0IHBhdGhzIGFuZCBjb21wb25lbnRzIGZvciBhZHZhbmNlZCB1c2FnZVxuZXhwb3J0IHR5cGUgeyBwYXRocywgY29tcG9uZW50cyB9O1xuIl19
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@growsober/sdk",
3
- "version": "1.0.15",
3
+ "version": "1.0.17",
4
4
  "description": "Shared TypeScript SDK for GrowSober API - TanStack Query hooks, API client, and utilities",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
@@ -50,7 +50,7 @@
50
50
  "zod": "^3.0.0"
51
51
  },
52
52
  "dependencies": {
53
- "@growsober/types": "^1.0.4"
53
+ "@growsober/types": "^1.0.7"
54
54
  },
55
55
  "devDependencies": {
56
56
  "@tanstack/react-query": "^5.90.16",
@@ -7,6 +7,9 @@ import type {
7
7
  CreateCreatorRequest,
8
8
  UpdateCreatorRequest,
9
9
  CreateAvailabilityRequest,
10
+ GatheringTypeResponse,
11
+ CreateGatheringTypeRequest,
12
+ UpdateGatheringTypeRequest,
10
13
  } from '../types';
11
14
 
12
15
  // ============================================================================
@@ -301,3 +304,162 @@ export function useDeleteCreatorReward(
301
304
  ...options,
302
305
  });
303
306
  }
307
+
308
+ // ============================================================================
309
+ // GATHERING TYPE MUTATIONS
310
+ // ============================================================================
311
+
312
+ /**
313
+ * Create a new gathering type for a creator
314
+ *
315
+ * @param creatorId - Creator ID
316
+ *
317
+ * @example
318
+ * ```tsx
319
+ * const createGatheringType = useCreateGatheringType(creatorId);
320
+ *
321
+ * await createGatheringType.mutateAsync({
322
+ * name: 'Morning Yoga in the Park',
323
+ * description: 'Gentle 45-minute yoga session',
324
+ * duration: 45,
325
+ * vibes: ['Mindful', 'Chill'],
326
+ * category: 'MOVEMENT',
327
+ * });
328
+ * ```
329
+ */
330
+ export function useCreateGatheringType(creatorId: string) {
331
+ const queryClient = useQueryClient();
332
+
333
+ return useMutation({
334
+ mutationFn: async (data: CreateGatheringTypeRequest): Promise<GatheringTypeResponse> => {
335
+ const client = getApiClient();
336
+ const response = await client.post(`/api/v1/creators/${creatorId}/gathering-types`, data);
337
+ return response.data;
338
+ },
339
+ onSuccess: () => {
340
+ queryClient.invalidateQueries({ queryKey: creatorKeys.gatheringTypes(creatorId) });
341
+ },
342
+ });
343
+ }
344
+
345
+ /**
346
+ * Update a gathering type
347
+ *
348
+ * @param creatorId - Creator ID
349
+ *
350
+ * @example
351
+ * ```tsx
352
+ * const updateGatheringType = useUpdateGatheringType(creatorId);
353
+ *
354
+ * await updateGatheringType.mutateAsync({
355
+ * id: 'gathering-type-123',
356
+ * data: { description: 'Updated description' },
357
+ * });
358
+ * ```
359
+ */
360
+ export function useUpdateGatheringType(creatorId: string) {
361
+ const queryClient = useQueryClient();
362
+
363
+ return useMutation({
364
+ mutationFn: async ({
365
+ id,
366
+ data,
367
+ }: {
368
+ id: string;
369
+ data: UpdateGatheringTypeRequest;
370
+ }): Promise<GatheringTypeResponse> => {
371
+ const client = getApiClient();
372
+ const response = await client.put(`/api/v1/creators/${creatorId}/gathering-types/${id}`, data);
373
+ return response.data;
374
+ },
375
+ onSuccess: () => {
376
+ queryClient.invalidateQueries({ queryKey: creatorKeys.gatheringTypes(creatorId) });
377
+ queryClient.invalidateQueries({ queryKey: creatorKeys.approvedGatheringTypes(creatorId) });
378
+ },
379
+ });
380
+ }
381
+
382
+ /**
383
+ * Approve a gathering type (for AI-suggested types)
384
+ *
385
+ * @param creatorId - Creator ID
386
+ *
387
+ * @example
388
+ * ```tsx
389
+ * const approveGatheringType = useApproveGatheringType(creatorId);
390
+ *
391
+ * await approveGatheringType.mutateAsync('gathering-type-123');
392
+ * ```
393
+ */
394
+ export function useApproveGatheringType(creatorId: string) {
395
+ const queryClient = useQueryClient();
396
+
397
+ return useMutation({
398
+ mutationFn: async (gatheringTypeId: string): Promise<GatheringTypeResponse> => {
399
+ const client = getApiClient();
400
+ const response = await client.put(
401
+ `/api/v1/creators/${creatorId}/gathering-types/${gatheringTypeId}/approve`
402
+ );
403
+ return response.data;
404
+ },
405
+ onSuccess: () => {
406
+ queryClient.invalidateQueries({ queryKey: creatorKeys.gatheringTypes(creatorId) });
407
+ queryClient.invalidateQueries({ queryKey: creatorKeys.approvedGatheringTypes(creatorId) });
408
+ },
409
+ });
410
+ }
411
+
412
+ /**
413
+ * Delete a gathering type
414
+ *
415
+ * @param creatorId - Creator ID
416
+ *
417
+ * @example
418
+ * ```tsx
419
+ * const deleteGatheringType = useDeleteGatheringType(creatorId);
420
+ *
421
+ * await deleteGatheringType.mutateAsync('gathering-type-123');
422
+ * ```
423
+ */
424
+ export function useDeleteGatheringType(creatorId: string) {
425
+ const queryClient = useQueryClient();
426
+
427
+ return useMutation({
428
+ mutationFn: async (gatheringTypeId: string): Promise<void> => {
429
+ const client = getApiClient();
430
+ await client.delete(`/api/v1/creators/${creatorId}/gathering-types/${gatheringTypeId}`);
431
+ },
432
+ onSuccess: () => {
433
+ queryClient.invalidateQueries({ queryKey: creatorKeys.gatheringTypes(creatorId) });
434
+ queryClient.invalidateQueries({ queryKey: creatorKeys.approvedGatheringTypes(creatorId) });
435
+ },
436
+ });
437
+ }
438
+
439
+ /**
440
+ * Generate AI suggestions for gathering types based on facilitator profile
441
+ *
442
+ * @param creatorId - Creator ID
443
+ *
444
+ * @example
445
+ * ```tsx
446
+ * const generateSuggestions = useGenerateGatheringTypeSuggestions(creatorId);
447
+ *
448
+ * await generateSuggestions.mutateAsync();
449
+ * // Returns the newly created (unapproved) gathering types
450
+ * ```
451
+ */
452
+ export function useGenerateGatheringTypeSuggestions(creatorId: string) {
453
+ const queryClient = useQueryClient();
454
+
455
+ return useMutation({
456
+ mutationFn: async (): Promise<GatheringTypeResponse[]> => {
457
+ const client = getApiClient();
458
+ const response = await client.post(`/api/v1/creators/${creatorId}/gathering-types/generate`);
459
+ return response.data;
460
+ },
461
+ onSuccess: () => {
462
+ queryClient.invalidateQueries({ queryKey: creatorKeys.gatheringTypes(creatorId) });
463
+ },
464
+ });
465
+ }
@@ -6,6 +6,7 @@ import type {
6
6
  EventResponse,
7
7
  LibraryContentResponse,
8
8
  RewardResponse,
9
+ GatheringTypeResponse,
9
10
  } from '../types';
10
11
 
11
12
  // ============================================================================
@@ -26,6 +27,8 @@ export const creatorKeys = {
26
27
  allContent: (creatorId: string) => [...creatorKeys.detail(creatorId), 'content', 'all'] as const,
27
28
  events: (creatorId: string) => [...creatorKeys.detail(creatorId), 'events'] as const,
28
29
  rewards: (creatorId: string) => [...creatorKeys.detail(creatorId), 'rewards'] as const,
30
+ gatheringTypes: (creatorId: string) => [...creatorKeys.detail(creatorId), 'gathering-types'] as const,
31
+ approvedGatheringTypes: (creatorId: string) => [...creatorKeys.detail(creatorId), 'gathering-types', 'approved'] as const,
29
32
  };
30
33
 
31
34
  // ============================================================================
@@ -338,3 +341,61 @@ export function useCreatorRewards(
338
341
  ...options,
339
342
  });
340
343
  }
344
+
345
+ // ============================================================================
346
+ // GATHERING TYPE QUERIES
347
+ // ============================================================================
348
+
349
+ /**
350
+ * Get all gathering types for a creator (including unapproved AI suggestions)
351
+ *
352
+ * @param creatorId - Creator ID
353
+ * @param options - TanStack Query options
354
+ *
355
+ * @example
356
+ * ```tsx
357
+ * const { data, isLoading } = useCreatorGatheringTypes('creator-123');
358
+ * ```
359
+ */
360
+ export function useCreatorGatheringTypes(
361
+ creatorId: string,
362
+ options?: Omit<UseQueryOptions<GatheringTypeResponse[]>, 'queryKey' | 'queryFn'>
363
+ ) {
364
+ return useQuery({
365
+ queryKey: creatorKeys.gatheringTypes(creatorId),
366
+ queryFn: async (): Promise<GatheringTypeResponse[]> => {
367
+ const client = getApiClient();
368
+ const response = await client.get(`/api/v1/creators/${creatorId}/gathering-types`);
369
+ return response.data;
370
+ },
371
+ enabled: !!creatorId,
372
+ ...options,
373
+ });
374
+ }
375
+
376
+ /**
377
+ * Get approved gathering types for a creator
378
+ *
379
+ * @param creatorId - Creator ID
380
+ * @param options - TanStack Query options
381
+ *
382
+ * @example
383
+ * ```tsx
384
+ * const { data, isLoading } = useCreatorApprovedGatheringTypes('creator-123');
385
+ * ```
386
+ */
387
+ export function useCreatorApprovedGatheringTypes(
388
+ creatorId: string,
389
+ options?: Omit<UseQueryOptions<GatheringTypeResponse[]>, 'queryKey' | 'queryFn'>
390
+ ) {
391
+ return useQuery({
392
+ queryKey: creatorKeys.approvedGatheringTypes(creatorId),
393
+ queryFn: async (): Promise<GatheringTypeResponse[]> => {
394
+ const client = getApiClient();
395
+ const response = await client.get(`/api/v1/creators/${creatorId}/gathering-types/approved`);
396
+ return response.data;
397
+ },
398
+ enabled: !!creatorId,
399
+ ...options,
400
+ });
401
+ }
package/src/api/types.ts CHANGED
@@ -223,6 +223,14 @@ export interface CreateAvailabilityRequest {
223
223
  specificDate?: string;
224
224
  }
225
225
 
226
+ // ============================================================================
227
+ // GATHERING TYPE TEMPLATES (for facilitator event types)
228
+ // ============================================================================
229
+
230
+ export type GatheringTypeResponse = components['schemas']['GatheringTypeResponseDto'];
231
+ export type CreateGatheringTypeRequest = components['schemas']['CreateGatheringTypeDto'];
232
+ export type UpdateGatheringTypeRequest = components['schemas']['UpdateGatheringTypeDto'];
233
+
226
234
  // ============================================================================
227
235
  // BRAND TYPES (from generated OpenAPI types)
228
236
  // ============================================================================
@@ -294,10 +302,10 @@ export type WinCountResponse = components['schemas']['WinCountDto'];
294
302
 
295
303
  // Jack AI Conversations
296
304
  export type ConversationResponse = components['schemas']['ConversationResponseDto'];
297
- export type ConversationWithMessagesResponse = components['schemas']['ConversationWithMessagesDto'];
305
+ export type ConversationWithMessagesResponse = components['schemas']['JackConversationWithMessagesDto'];
298
306
  export type CreateConversationRequest = components['schemas']['CreateConversationDto'];
299
- export type JackMessageResponse = components['schemas']['MessageResponseDto'];
300
- export type SendJackMessageRequest = components['schemas']['SendMessageDto'];
307
+ export type JackMessageResponse = components['schemas']['JackMessageResponseDto'];
308
+ export type SendJackMessageRequest = components['schemas']['SendJackMessageDto'];
301
309
 
302
310
  // Mood Logs
303
311
  export type MoodLogResponse = components['schemas']['MoodLogResponseDto'];
@@ -365,10 +373,10 @@ export type LogBuddyActivityRequest = components['schemas']['LogBuddyActivityDto
365
373
 
366
374
  export type EventChatResponse = components['schemas']['EventChatResponseDto'];
367
375
  export type ChatMemberResponse = components['schemas']['ChatMemberResponseDto'];
368
- export type ChatMessageResponse = components['schemas']['MessageResponseDto'];
369
- export type PaginatedMessagesResponse = components['schemas']['PaginatedMessagesDto'];
370
- export type SendChatMessageRequest = components['schemas']['SendMessageDto'];
371
- export type UpdateChatMessageRequest = components['schemas']['UpdateMessageDto'];
376
+ export type ChatMessageResponse = components['schemas']['EventChatMessageResponseDto'];
377
+ export type PaginatedMessagesResponse = components['schemas']['PaginatedEventChatMessagesDto'];
378
+ export type SendChatMessageRequest = components['schemas']['SendEventChatMessageDto'];
379
+ export type UpdateChatMessageRequest = components['schemas']['UpdateEventChatMessageDto'];
372
380
  export type UpdateChatSettingsRequest = components['schemas']['UpdateChatSettingsDto'];
373
381
  export type UpdateMemberSettingsRequest = components['schemas']['UpdateMemberSettingsDto'];
374
382