@checkfirst/nestjs-outlook 8.0.2 → 9.0.0

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.
Files changed (49) hide show
  1. package/dist/constants.d.ts +2 -0
  2. package/dist/constants.js +3 -1
  3. package/dist/constants.js.map +1 -1
  4. package/dist/controllers/calendar.controller.js +3 -0
  5. package/dist/controllers/calendar.controller.js.map +1 -1
  6. package/dist/controllers/email.controller.js +2 -0
  7. package/dist/controllers/email.controller.js.map +1 -1
  8. package/dist/guards/webhook-client-state.guard.d.ts +8 -0
  9. package/dist/guards/webhook-client-state.guard.js +75 -0
  10. package/dist/guards/webhook-client-state.guard.js.map +1 -0
  11. package/dist/index.d.ts +3 -0
  12. package/dist/index.js +3 -0
  13. package/dist/index.js.map +1 -1
  14. package/dist/interfaces/config/outlook-config.interface.d.ts +10 -0
  15. package/dist/interfaces/state/redis-like.interface.d.ts +13 -0
  16. package/dist/interfaces/state/redis-like.interface.js +3 -0
  17. package/dist/interfaces/state/redis-like.interface.js.map +1 -0
  18. package/dist/microsoft-outlook.module.js +66 -0
  19. package/dist/microsoft-outlook.module.js.map +1 -1
  20. package/dist/repositories/outlook-webhook-subscription.repository.d.ts +1 -0
  21. package/dist/repositories/outlook-webhook-subscription.repository.js +5 -0
  22. package/dist/repositories/outlook-webhook-subscription.repository.js.map +1 -1
  23. package/dist/services/auth/microsoft-auth.service.d.ts +5 -1
  24. package/dist/services/auth/microsoft-auth.service.js +13 -4
  25. package/dist/services/auth/microsoft-auth.service.js.map +1 -1
  26. package/dist/services/calendar/calendar.service.d.ts +1 -1
  27. package/dist/services/calendar/calendar.service.js +4 -4
  28. package/dist/services/calendar/calendar.service.js.map +1 -1
  29. package/dist/services/email/email.service.js +2 -1
  30. package/dist/services/email/email.service.js.map +1 -1
  31. package/dist/services/shared/delta-sync.service.d.ts +6 -1
  32. package/dist/services/shared/delta-sync.service.js +121 -110
  33. package/dist/services/shared/delta-sync.service.js.map +1 -1
  34. package/dist/services/shared/graph-rate-limiter.service.d.ts +15 -17
  35. package/dist/services/shared/graph-rate-limiter.service.js +104 -148
  36. package/dist/services/shared/graph-rate-limiter.service.js.map +1 -1
  37. package/dist/services/shared/outlook-lock.store.d.ts +37 -0
  38. package/dist/services/shared/outlook-lock.store.js +134 -0
  39. package/dist/services/shared/outlook-lock.store.js.map +1 -0
  40. package/dist/services/shared/outlook-rate-limit.store.d.ts +59 -0
  41. package/dist/services/shared/outlook-rate-limit.store.js +235 -0
  42. package/dist/services/shared/outlook-rate-limit.store.js.map +1 -0
  43. package/dist/services/subscription/microsoft-subscription.service.d.ts +12 -0
  44. package/dist/services/subscription/microsoft-subscription.service.js +85 -0
  45. package/dist/services/subscription/microsoft-subscription.service.js.map +1 -1
  46. package/dist/tsconfig.tsbuildinfo +1 -1
  47. package/dist/utils/outlook-api-executor.util.js +3 -3
  48. package/dist/utils/outlook-api-executor.util.js.map +1 -1
  49. package/package.json +3 -1
@@ -0,0 +1,59 @@
1
+ import { RedisLike } from "../../interfaces/state/redis-like.interface";
2
+ export type RateLimitWindowKey = "sec" | "min10";
3
+ export type CircuitBreakerState = "closed" | "open" | "half-open";
4
+ export interface CircuitBreakerSnapshot {
5
+ state: CircuitBreakerState;
6
+ openedAt: number | null;
7
+ }
8
+ export interface OutlookRateLimitStore {
9
+ readonly kind: "memory" | "redis";
10
+ recordRequest(userId: string, windowMs: number, key: RateLimitWindowKey): Promise<number>;
11
+ getCount(userId: string, windowMs: number, key: RateLimitWindowKey): Promise<number>;
12
+ getCooldown(userId: string): Promise<number | null>;
13
+ setCooldown(userId: string, untilMs: number): Promise<void>;
14
+ getCbState(): Promise<CircuitBreakerSnapshot | null>;
15
+ setCbState(snapshot: CircuitBreakerSnapshot): Promise<void>;
16
+ tryClaimHalfOpenProbe(ttlMs: number): Promise<boolean>;
17
+ getActiveUserCount(): Promise<number>;
18
+ cleanupInactive(thresholdMs: number): Promise<number>;
19
+ }
20
+ export declare class InMemoryOutlookRateLimitStore implements OutlookRateLimitStore {
21
+ readonly kind: "memory";
22
+ private readonly logger;
23
+ private readonly users;
24
+ private cbState;
25
+ private halfOpenProbeUntil;
26
+ private getOrCreate;
27
+ private trim;
28
+ recordRequest(userId: string, windowMs: number, key: RateLimitWindowKey): Promise<number>;
29
+ getCount(userId: string, windowMs: number, key: RateLimitWindowKey): Promise<number>;
30
+ getCooldown(userId: string): Promise<number | null>;
31
+ setCooldown(userId: string, untilMs: number): Promise<void>;
32
+ getCbState(): Promise<CircuitBreakerSnapshot | null>;
33
+ setCbState(snapshot: CircuitBreakerSnapshot): Promise<void>;
34
+ tryClaimHalfOpenProbe(ttlMs: number): Promise<boolean>;
35
+ getActiveUserCount(): Promise<number>;
36
+ cleanupInactive(thresholdMs: number): Promise<number>;
37
+ }
38
+ export declare class RedisOutlookRateLimitStore implements OutlookRateLimitStore {
39
+ private readonly redis;
40
+ private readonly keyPrefix;
41
+ readonly kind: "redis";
42
+ private readonly logger;
43
+ private memberCounter;
44
+ constructor(redis: RedisLike, keyPrefix: string);
45
+ private rlKey;
46
+ private cdKey;
47
+ private cbKey;
48
+ private cbProbeKey;
49
+ private uniqueMember;
50
+ recordRequest(userId: string, windowMs: number, key: RateLimitWindowKey): Promise<number>;
51
+ getCount(userId: string, windowMs: number, key: RateLimitWindowKey): Promise<number>;
52
+ getCooldown(userId: string): Promise<number | null>;
53
+ setCooldown(userId: string, untilMs: number): Promise<void>;
54
+ getCbState(): Promise<CircuitBreakerSnapshot | null>;
55
+ setCbState(snapshot: CircuitBreakerSnapshot): Promise<void>;
56
+ tryClaimHalfOpenProbe(ttlMs: number): Promise<boolean>;
57
+ getActiveUserCount(): Promise<number>;
58
+ cleanupInactive(_thresholdMs: number): Promise<number>;
59
+ }
@@ -0,0 +1,235 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RedisOutlookRateLimitStore = exports.InMemoryOutlookRateLimitStore = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ class InMemoryOutlookRateLimitStore {
6
+ constructor() {
7
+ this.kind = "memory";
8
+ this.logger = new common_1.Logger(InMemoryOutlookRateLimitStore.name);
9
+ this.users = new Map();
10
+ this.cbState = {
11
+ state: "closed",
12
+ openedAt: null,
13
+ };
14
+ this.halfOpenProbeUntil = 0;
15
+ }
16
+ getOrCreate(userId) {
17
+ let s = this.users.get(userId);
18
+ if (!s) {
19
+ s = {
20
+ windows: new Map(),
21
+ cooldownUntil: null,
22
+ lastActivity: Date.now(),
23
+ };
24
+ this.users.set(userId, s);
25
+ }
26
+ return s;
27
+ }
28
+ trim(arr, cutoff) {
29
+ let i = 0;
30
+ while (i < arr.length && arr[i] < cutoff)
31
+ i++;
32
+ return i === 0 ? arr : arr.slice(i);
33
+ }
34
+ recordRequest(userId, windowMs, key) {
35
+ var _a;
36
+ const now = Date.now();
37
+ const s = this.getOrCreate(userId);
38
+ s.lastActivity = now;
39
+ const arr = (_a = s.windows.get(key)) !== null && _a !== void 0 ? _a : [];
40
+ const trimmed = this.trim(arr, now - windowMs);
41
+ trimmed.push(now);
42
+ s.windows.set(key, trimmed);
43
+ return Promise.resolve(trimmed.length);
44
+ }
45
+ getCount(userId, windowMs, key) {
46
+ const s = this.users.get(userId);
47
+ if (!s)
48
+ return Promise.resolve(0);
49
+ const arr = s.windows.get(key);
50
+ if (!arr)
51
+ return Promise.resolve(0);
52
+ const now = Date.now();
53
+ const trimmed = this.trim(arr, now - windowMs);
54
+ s.windows.set(key, trimmed);
55
+ return Promise.resolve(trimmed.length);
56
+ }
57
+ getCooldown(userId) {
58
+ const s = this.users.get(userId);
59
+ if (!s || s.cooldownUntil === null)
60
+ return Promise.resolve(null);
61
+ if (s.cooldownUntil <= Date.now()) {
62
+ s.cooldownUntil = null;
63
+ return Promise.resolve(null);
64
+ }
65
+ return Promise.resolve(s.cooldownUntil);
66
+ }
67
+ setCooldown(userId, untilMs) {
68
+ const s = this.getOrCreate(userId);
69
+ s.cooldownUntil = untilMs;
70
+ s.lastActivity = Date.now();
71
+ return Promise.resolve();
72
+ }
73
+ getCbState() {
74
+ return Promise.resolve(Object.assign({}, this.cbState));
75
+ }
76
+ setCbState(snapshot) {
77
+ this.cbState = Object.assign({}, snapshot);
78
+ return Promise.resolve();
79
+ }
80
+ tryClaimHalfOpenProbe(ttlMs) {
81
+ const now = Date.now();
82
+ if (this.halfOpenProbeUntil > now)
83
+ return Promise.resolve(false);
84
+ this.halfOpenProbeUntil = now + ttlMs;
85
+ return Promise.resolve(true);
86
+ }
87
+ getActiveUserCount() {
88
+ return Promise.resolve(this.users.size);
89
+ }
90
+ cleanupInactive(thresholdMs) {
91
+ const now = Date.now();
92
+ let removed = 0;
93
+ for (const [userId, state] of this.users.entries()) {
94
+ if (now - state.lastActivity > thresholdMs) {
95
+ this.users.delete(userId);
96
+ removed++;
97
+ }
98
+ }
99
+ return Promise.resolve(removed);
100
+ }
101
+ }
102
+ exports.InMemoryOutlookRateLimitStore = InMemoryOutlookRateLimitStore;
103
+ const RECORD_LUA = `
104
+ local key = KEYS[1]
105
+ local now = tonumber(ARGV[1])
106
+ local windowMs = tonumber(ARGV[2])
107
+ local ttlMs = tonumber(ARGV[3])
108
+ local member = ARGV[4]
109
+ redis.call('ZREMRANGEBYSCORE', key, '-inf', now - windowMs)
110
+ redis.call('ZADD', key, now, member)
111
+ redis.call('PEXPIRE', key, ttlMs)
112
+ return redis.call('ZCARD', key)
113
+ `;
114
+ const COUNT_LUA = `
115
+ local key = KEYS[1]
116
+ local now = tonumber(ARGV[1])
117
+ local windowMs = tonumber(ARGV[2])
118
+ redis.call('ZREMRANGEBYSCORE', key, '-inf', now - windowMs)
119
+ return redis.call('ZCARD', key)
120
+ `;
121
+ class RedisOutlookRateLimitStore {
122
+ constructor(redis, keyPrefix) {
123
+ this.redis = redis;
124
+ this.keyPrefix = keyPrefix;
125
+ this.kind = "redis";
126
+ this.logger = new common_1.Logger(RedisOutlookRateLimitStore.name);
127
+ this.memberCounter = 0;
128
+ }
129
+ rlKey(userId, key) {
130
+ return `${this.keyPrefix}rl:${userId}:${key}`;
131
+ }
132
+ cdKey(userId) {
133
+ return `${this.keyPrefix}cd:${userId}`;
134
+ }
135
+ cbKey() {
136
+ return `${this.keyPrefix}cb`;
137
+ }
138
+ cbProbeKey() {
139
+ return `${this.keyPrefix}cb:probe`;
140
+ }
141
+ uniqueMember() {
142
+ this.memberCounter = (this.memberCounter + 1) % 1000000;
143
+ return `${Date.now()}-${process.pid}-${this.memberCounter}`;
144
+ }
145
+ async recordRequest(userId, windowMs, key) {
146
+ try {
147
+ const now = Date.now();
148
+ const ttlMs = windowMs + 60000;
149
+ const result = await this.redis.eval(RECORD_LUA, 1, this.rlKey(userId, key), now, windowMs, ttlMs, this.uniqueMember());
150
+ return typeof result === "number" ? result : Number(result);
151
+ }
152
+ catch (err) {
153
+ this.logger.error(`[recordRequest] Redis error for ${userId}/${key}: ${err instanceof Error ? err.message : String(err)}`);
154
+ return Number.POSITIVE_INFINITY;
155
+ }
156
+ }
157
+ async getCount(userId, windowMs, key) {
158
+ try {
159
+ const now = Date.now();
160
+ const result = await this.redis.eval(COUNT_LUA, 1, this.rlKey(userId, key), now, windowMs);
161
+ return typeof result === "number" ? result : Number(result);
162
+ }
163
+ catch (err) {
164
+ this.logger.error(`[getCount] Redis error for ${userId}/${key}: ${err instanceof Error ? err.message : String(err)}`);
165
+ return Number.POSITIVE_INFINITY;
166
+ }
167
+ }
168
+ async getCooldown(userId) {
169
+ try {
170
+ const v = await this.redis.get(this.cdKey(userId));
171
+ if (!v)
172
+ return null;
173
+ const until = Number(v);
174
+ if (!Number.isFinite(until) || until <= Date.now())
175
+ return null;
176
+ return until;
177
+ }
178
+ catch (err) {
179
+ this.logger.error(`[getCooldown] Redis error for ${userId}: ${err instanceof Error ? err.message : String(err)}`);
180
+ return null;
181
+ }
182
+ }
183
+ async setCooldown(userId, untilMs) {
184
+ try {
185
+ const ttl = Math.max(1, untilMs - Date.now());
186
+ await this.redis.set(this.cdKey(userId), String(untilMs), "PX", ttl);
187
+ }
188
+ catch (err) {
189
+ this.logger.error(`[setCooldown] Redis error for ${userId}: ${err instanceof Error ? err.message : String(err)}`);
190
+ }
191
+ }
192
+ async getCbState() {
193
+ var _a;
194
+ try {
195
+ const hash = (await this.redis.hgetall(this.cbKey()));
196
+ if (!hash || Object.keys(hash).length === 0) {
197
+ return { state: "closed", openedAt: null };
198
+ }
199
+ const state = (_a = hash.state) !== null && _a !== void 0 ? _a : "closed";
200
+ const openedAtRaw = hash.openedAt;
201
+ const openedAt = openedAtRaw && openedAtRaw !== "null" ? Number(openedAtRaw) : null;
202
+ return { state, openedAt: Number.isFinite(openedAt) ? openedAt : null };
203
+ }
204
+ catch (err) {
205
+ this.logger.error(`[getCbState] Redis error: ${err instanceof Error ? err.message : String(err)}`);
206
+ return null;
207
+ }
208
+ }
209
+ async setCbState(snapshot) {
210
+ try {
211
+ await this.redis.hset(this.cbKey(), "state", snapshot.state, "openedAt", snapshot.openedAt === null ? "null" : String(snapshot.openedAt));
212
+ }
213
+ catch (err) {
214
+ this.logger.error(`[setCbState] Redis error: ${err instanceof Error ? err.message : String(err)}`);
215
+ }
216
+ }
217
+ async tryClaimHalfOpenProbe(ttlMs) {
218
+ try {
219
+ const result = await this.redis.set(this.cbProbeKey(), "1", "PX", ttlMs, "NX");
220
+ return result === "OK";
221
+ }
222
+ catch (err) {
223
+ this.logger.error(`[tryClaimHalfOpenProbe] Redis error: ${err instanceof Error ? err.message : String(err)}`);
224
+ return false;
225
+ }
226
+ }
227
+ getActiveUserCount() {
228
+ return Promise.resolve(0);
229
+ }
230
+ cleanupInactive(_thresholdMs) {
231
+ return Promise.resolve(0);
232
+ }
233
+ }
234
+ exports.RedisOutlookRateLimitStore = RedisOutlookRateLimitStore;
235
+ //# sourceMappingURL=outlook-rate-limit.store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outlook-rate-limit.store.js","sourceRoot":"","sources":["../../../src/services/shared/outlook-rate-limit.store.ts"],"names":[],"mappings":"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"}
@@ -32,6 +32,17 @@ export interface SubscriptionCleanupResult {
32
32
  error: string;
33
33
  }>;
34
34
  }
35
+ export interface BulkSubscriptionDeleteResult {
36
+ totalFound: number;
37
+ successfullyDeleted: number;
38
+ failedToDelete: number;
39
+ localOnlyDeactivated: number;
40
+ deletedSubscriptionIds: string[];
41
+ errors: Array<{
42
+ subscriptionId: string;
43
+ error: string;
44
+ }>;
45
+ }
35
46
  export declare class MicrosoftSubscriptionService {
36
47
  private readonly microsoftAuthService;
37
48
  private readonly webhookSubscriptionRepository;
@@ -51,6 +62,7 @@ export declare class MicrosoftSubscriptionService {
51
62
  createWebhookSubscription(externalUserId: string): Promise<Subscription>;
52
63
  renewWebhookSubscription(subscriptionId: string, internalUserId: number): Promise<Subscription>;
53
64
  deleteWebhookSubscription(subscriptionId: string, userId: string | number): Promise<boolean>;
65
+ deleteAllWebhookSubscriptions(userId: string | number): Promise<BulkSubscriptionDeleteResult>;
54
66
  getSubscription(subscriptionId: string): Promise<OutlookWebhookSubscription | null>;
55
67
  getActiveSubscriptionForUser(externalUserId: string): Promise<string | null>;
56
68
  trackNotificationReceived(subscriptionId: string): void;
@@ -295,6 +295,91 @@ let MicrosoftSubscriptionService = MicrosoftSubscriptionService_1 = class Micros
295
295
  throw new Error(`Failed to delete webhook subscription: ${errorMessage}`);
296
296
  }
297
297
  }
298
+ async deleteAllWebhookSubscriptions(userId) {
299
+ var _a;
300
+ const correlationId = `delete-all-subs-${Date.now()}`;
301
+ const result = {
302
+ totalFound: 0,
303
+ successfullyDeleted: 0,
304
+ failedToDelete: 0,
305
+ localOnlyDeactivated: 0,
306
+ deletedSubscriptionIds: [],
307
+ errors: [],
308
+ };
309
+ try {
310
+ this.logger.log(`[${correlationId}] Starting bulk subscription deletion for user ${userId}`);
311
+ const internalUserId = await this.userIdConverter.toInternalUserId(userId);
312
+ const activeSubscriptions = await this.webhookSubscriptionRepository.findAllActiveByUserId(internalUserId);
313
+ result.totalFound = activeSubscriptions.length;
314
+ if (activeSubscriptions.length === 0) {
315
+ this.logger.log(`[${correlationId}] No active subscriptions found for user ${userId}`);
316
+ const updateCriteria = typeof userId === 'string' ? { externalUserId: userId } : { id: userId };
317
+ await this.microsoftUserRepository.update(updateCriteria, { isActive: false });
318
+ return result;
319
+ }
320
+ this.logger.log(`[${correlationId}] Found ${activeSubscriptions.length} active subscription(s) to delete`);
321
+ let accessToken = null;
322
+ try {
323
+ accessToken = await this.microsoftAuthService.getUserAccessToken({
324
+ internalUserId,
325
+ includeInactive: true,
326
+ });
327
+ this.logger.debug(`[${correlationId}] Access token obtained`);
328
+ }
329
+ catch (tokenError) {
330
+ const tokenErrorMsg = tokenError instanceof Error ? tokenError.message : 'Unknown error';
331
+ this.logger.warn(`[${correlationId}] Could not obtain access token: ${tokenErrorMsg}. ` +
332
+ `Will deactivate subscriptions locally only.`);
333
+ }
334
+ for (const subscription of activeSubscriptions) {
335
+ const subId = subscription.subscriptionId;
336
+ try {
337
+ if (accessToken) {
338
+ try {
339
+ await this.deleteSubscription(subId, accessToken);
340
+ this.logger.debug(`[${correlationId}] Deleted subscription ${subId} at Microsoft`);
341
+ }
342
+ catch (deleteError) {
343
+ if (axios_1.default.isAxiosError(deleteError) && ((_a = deleteError.response) === null || _a === void 0 ? void 0 : _a.status) === 404) {
344
+ this.logger.debug(`[${correlationId}] Subscription ${subId} not found at Microsoft (already deleted)`);
345
+ }
346
+ else {
347
+ const deleteErrorMsg = deleteError instanceof Error ? deleteError.message : 'Unknown error';
348
+ this.logger.warn(`[${correlationId}] Failed to delete subscription ${subId} at Microsoft: ${deleteErrorMsg}`);
349
+ result.errors.push({ subscriptionId: subId, error: deleteErrorMsg });
350
+ }
351
+ }
352
+ }
353
+ await this.webhookSubscriptionRepository.deactivateSubscription(subId);
354
+ if (accessToken) {
355
+ result.successfullyDeleted++;
356
+ }
357
+ else {
358
+ result.localOnlyDeactivated++;
359
+ }
360
+ result.deletedSubscriptionIds.push(subId);
361
+ this.logger.debug(`[${correlationId}] Deactivated subscription ${subId} in local database`);
362
+ }
363
+ catch (error) {
364
+ const errorMsg = error instanceof Error ? error.message : 'Unknown error';
365
+ result.failedToDelete++;
366
+ result.errors.push({ subscriptionId: subId, error: errorMsg });
367
+ this.logger.error(`[${correlationId}] Failed to process subscription ${subId}: ${errorMsg}`);
368
+ }
369
+ }
370
+ const updateCriteria = typeof userId === 'string' ? { externalUserId: userId } : { id: userId };
371
+ await this.microsoftUserRepository.update(updateCriteria, { isActive: false });
372
+ this.logger.log(`[${correlationId}] Bulk deletion complete: ${result.successfullyDeleted} deleted at Microsoft, ` +
373
+ `${result.localOnlyDeactivated} deactivated locally only, ${result.failedToDelete} failed. ` +
374
+ `User marked as inactive.`);
375
+ return result;
376
+ }
377
+ catch (error) {
378
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
379
+ this.logger.error(`[${correlationId}] Bulk subscription deletion failed: ${errorMessage}`);
380
+ throw new Error(`Failed to delete all webhook subscriptions: ${errorMessage}`);
381
+ }
382
+ }
298
383
  async getSubscription(subscriptionId) {
299
384
  return this.webhookSubscriptionRepository.findBySubscriptionId(subscriptionId);
300
385
  }
@@ -1 +1 @@
1
- {"version":3,"file":"microsoft-subscription.service.js","sourceRoot":"","sources":["../../../src/services/subscription/microsoft-subscription.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mCAAoC;AACpC,2CAAwE;AACxE,yDAAsD;AACtD,+CAAwC;AACxC,6CAAmD;AACnD,qCAA0C;AAC1C,iCAA0B;AAE1B,2EAAsE;AACtE,wHAAkH;AAElH,gFAAqE;AACrE,+CAAmD;AAEnD,mEAAiE;AACjE,uFAA6E;AAC7E,mFAA6E;AAC7E,qFAA+E;AAC/E,qFAA4E;AAyC5E,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAE5B,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAErC,MAAM,0BAA0B,GAAG,EAAE,CAAC;AAEtC,MAAM,kCAAkC,GAAG,EAAE,CAAC;AAoBvC,IAAM,4BAA4B,oCAAlC,MAAM,4BAA4B;IAKvC,YAEE,oBAA2D,EAC1C,6BAAmE,EACnE,YAA2B,EAE5C,eAAwD,EAExD,uBAAmE,EAClD,eAAuC,EACvC,WAAoC;QARpC,yBAAoB,GAApB,oBAAoB,CAAsB;QAC1C,kCAA6B,GAA7B,6BAA6B,CAAsC;QACnE,iBAAY,GAAZ,YAAY,CAAe;QAE3B,oBAAe,GAAf,eAAe,CAAwB;QAEvC,4BAAuB,GAAvB,uBAAuB,CAA2B;QAClD,oBAAe,GAAf,eAAe,CAAwB;QACvC,gBAAW,GAAX,WAAW,CAAyB;QAdtC,WAAM,GAAG,IAAI,eAAM,CAAC,8BAA4B,CAAC,IAAI,CAAC,CAAC;QACvD,oBAAe,GAAG,kCAAkC,CAAC;QACrD,cAAS,GAAG,sDAAsD,CAAC;IAajF,CAAC;IASJ,KAAK,CAAC,sBAAsB,CAAC,WAAmB;QAC9C,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAA,+CAAmB,EACxC,GAAG,EAAE,CAAC,eAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,gBAAgB,EAAE;gBACvD,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,WAAW,EAAE;oBACtC,cAAc,EAAE,kBAAkB;oBAClC,QAAQ,EAAE,sBAAsB;iBACjC;gBACD,OAAO,EAAE,KAAK;aACf,CAAC,EACF;gBACE,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,YAAY,EAAE,0BAA0B;gBACxC,UAAU,EAAE,CAAC;aACd,CACF,CAAC;YAEF,MAAM,IAAI,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAA2C,CAAC;YAEnE,OAAO,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YACzE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+CAA+C,OAAO,EAAE,CAAC,CAAC;YAC3E,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAQD,KAAK,CAAC,+BAA+B,CACnC,QAAgB,EAChB,WAAmB;QAEnB,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;QACxE,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,WAAC,OAAA,MAAA,GAAG,CAAC,WAAW,0CAAE,QAAQ,CAAC,UAAU,QAAQ,GAAG,CAAC,CAAA,EAAA,CAAC,CAAC;IAC5F,CAAC;IAQD,KAAK,CAAC,6BAA6B,CACjC,MAAc,EACd,WAAmB;QAEnB,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;QACxE,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,WAAC,OAAA,MAAA,GAAG,CAAC,WAAW,0CAAE,QAAQ,CAAC,QAAQ,MAAM,GAAG,CAAC,CAAA,EAAA,CAAC,CAAC;IACxF,CAAC;IAUD,KAAK,CAAC,kBAAkB,CAAC,cAAsB,EAAE,WAAmB;QAClE,IAAI,CAAC;YACH,MAAM,IAAA,+CAAmB,EACvB,GAAG,EAAE,CAAC,eAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,eAAe,kBAAkB,cAAc,EAAE,EAAE;gBAC5E,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,WAAW,EAAE;oBACtC,QAAQ,EAAE,sBAAsB;iBACjC;gBACD,OAAO,EAAE,KAAK;aACf,CAAC,EACF;gBACE,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,YAAY,EAAE,uBAAuB,cAAc,EAAE;gBACrD,UAAU,EAAE,CAAC;gBACb,eAAe,EAAE,IAAI;aACtB,CACF,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,0BAA0B,cAAc,eAAe,CAAC,CAAC;QAC3E,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IASD,KAAK,CAAC,yBAAyB,CAC7B,cAAsB;;QAGtB,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,cAAc,EAAE,EAAC,KAAK,EAAE,KAAK,EAAC,CAAC,CAAC;QAErG,MAAM,aAAa,GAAG,WAAW,cAAc,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QAChE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,aAAa,qDAAqD,cAAc,EAAE,CAAC,CAAC;QAExG,IAAI,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,aAAa,oCAAoC,cAAc,EAAE,CAAC,CAAC;YAEvF,MAAM,WAAW,GACf,MAAM,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAC,cAAc,EAAE,KAAK,EAAE,KAAK,EAAC,CAAC,CAAC;YAErF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,aAAa,sCAAsC,CAAC,CAAC;YAGzE,MAAM,kBAAkB,GAAG,IAAI,IAAI,EAAE,CAAC;YACtC,kBAAkB,CAAC,QAAQ,CAAC,kBAAkB,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;YAEhE,MAAM,MAAM,GACV,IAAI,CAAC,eAAe,CAAC,cAAc,IAAI,uBAAuB,CAAC;YACjE,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;YAC/C,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;YAEhE,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,mBAAmB,IAAI,mBAAmB,CAAC;YACpF,MAAM,eAAe,GAAG,GAAG,WAAW,GAAG,WAAW,EAAE,CAAC;YAGvD,MAAM,gBAAgB,GAAG;gBACvB,UAAU,EAAE,yBAAyB;gBACrC,eAAe;gBAEf,wBAAwB,EAAE,eAAe;gBACzC,QAAQ,EAAE,YAAY;gBACtB,kBAAkB,EAAE,kBAAkB,CAAC,WAAW,EAAE;gBACpD,WAAW,EAAE,QAAQ,cAAc,IAAI,IAAA,mBAAU,GAAE,EAAE;aACtD,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,IAAI,aAAa,yDAAyD,eAAe,EAAE,CAC5F,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,IAAI,aAAa,wBAAwB,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,CAC5E,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,aAAa,+CAA+C,CAAC,CAAC;YAClF,MAAM,QAAQ,GAAG,MAAM,IAAA,+CAAmB,EACxC,GAAG,EAAE,CAAC,eAAK,CAAC,IAAI,CACd,GAAG,IAAI,CAAC,eAAe,gBAAgB,EACvC,gBAAgB,EAChB;gBACE,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,WAAW,EAAE;oBACtC,cAAc,EAAE,kBAAkB;oBAClC,QAAQ,EAAE,sBAAsB;iBACjC;aACF,CACF,EACD;gBACE,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,YAAY,EAAE,wCAAwC,cAAc,EAAE;gBACtE,UAAU,EAAE,CAAC;aACd,CACF,CAAC;YAEF,IAAI,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,CAAA,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;YAClE,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,IAAI,aAAa,kCAAkC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,SAAS,aAAa,cAAc,EAAE,CAC9G,CAAC;YAGF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,aAAa,sDAAsD,cAAc,qBAAqB,cAAc,GAAG,CAAC,CAAC;YAC7I,MAAM,IAAI,CAAC,6BAA6B,CAAC,gBAAgB,CAAC;gBACxD,cAAc,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE;gBAChC,MAAM,EAAE,cAAc;gBACtB,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ;gBAChC,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU;gBACpC,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE;gBAC5C,eAAe,EAAE,QAAQ,CAAC,IAAI,CAAC,eAAe;gBAC9C,kBAAkB,EAAE,QAAQ,CAAC,IAAI,CAAC,kBAAkB;oBAClD,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC;oBAC5C,CAAC,CAAC,IAAI,IAAI,EAAE;aACf,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,aAAa,gDAAgD,CAAC,CAAC;YACnF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,aAAa,wDAAwD,CAAC,CAAC;YAE3F,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,eAAK,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9B,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,IAAI,aAAa,uCAAuC,MAAA,KAAK,CAAC,QAAQ,0CAAE,MAAM,IAAI;oBAClF,YAAY,IAAI,CAAC,SAAS,CAAC,MAAA,KAAK,CAAC,QAAQ,0CAAE,IAAI,CAAC,EAAE,CACnD,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,aAAa,0CAA0C,EAAE,KAAK,CAAC,CAAC;YACxF,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,0CAA0C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;QACxH,CAAC;IACH,CAAC;IAaD,KAAK,CAAC,wBAAwB,CAC5B,cAAsB,EACtB,cAAsB;;QAEtB,MAAM,aAAa,GAAG,SAAS,cAAc,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QAE9D,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,IAAI,aAAa,sCAAsC,cAAc,aAAa,cAAc,EAAE,CACnG,CAAC;YAGF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC;gBACtD,KAAK,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE;aAC9C,CAAC,CAAC;YAEH,IAAI,CAAC,IAAI,EAAE,CAAC;gBAEV,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,IAAI,aAAa,UAAU,cAAc,0BAA0B;oBACnE,6BAA6B,cAAc,EAAE,CAC9C,CAAC;gBAEF,MAAM,IAAI,CAAC,6BAA6B,CAAC,sBAAsB,CAC7D,cAAc,CACf,CAAC;gBAEF,MAAM,IAAI,KAAK,CACb,6BAA6B,cAAc,IAAI;oBAC/C,QAAQ,cAAc,0BAA0B;oBAChD,kDAAkD,CACnD,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,IAAI,aAAa,UAAU,cAAc,yBAAyB,CACnE,CAAC;YAGF,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,CAAC;gBACrE,cAAc;aACf,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,aAAa,yBAAyB,CAAC,CAAC;YAG9D,MAAM,kBAAkB,GAAG,IAAI,IAAI,EAAE,CAAC;YACtC,kBAAkB,CAAC,QAAQ,CAAC,kBAAkB,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;YAEhE,MAAM,WAAW,GAAG;gBAClB,kBAAkB,EAAE,kBAAkB,CAAC,WAAW,EAAE;aACrD,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,IAAI,aAAa,qDAAqD,CACvE,CAAC;YAGF,MAAM,QAAQ,GAAG,MAAM,IAAA,+CAAmB,EACxC,GAAG,EAAE,CAAC,eAAK,CAAC,KAAK,CACf,GAAG,IAAI,CAAC,eAAe,kBAAkB,cAAc,EAAE,EACzD,WAAW,EACX;gBACE,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,WAAW,EAAE;oBACtC,cAAc,EAAE,kBAAkB;oBAClC,QAAQ,EAAE,sBAAsB;iBACjC;aACF,CACF,EACD;gBACE,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,YAAY,EAAE,8BAA8B,cAAc,aAAa,cAAc,EAAE;gBACvF,UAAU,EAAE,CAAC;aACd,CACF,CAAC;YAEF,IAAI,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,CAAA,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;YACjE,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,IAAI,aAAa,0CAA0C,QAAQ,CAAC,MAAM,EAAE,CAC7E,CAAC;YAGF,IAAI,QAAQ,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBACrC,MAAM,IAAI,CAAC,6BAA6B,CAAC,4BAA4B,CACnE,cAAc,EACd,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAC3C,CAAC;gBAEF,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,IAAI,aAAa,iDAAiD,QAAQ,CAAC,IAAI,CAAC,kBAAkB,EAAE,CACrG,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,IAAI,aAAa,uCAAuC,cAAc,IAAI;gBAC1E,mBAAmB,QAAQ,CAAC,IAAI,CAAC,kBAAkB,EAAE,CACtD,CAAC;YAEF,OAAO,QAAQ,CAAC,IAAI,CAAC;QAEvB,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YAG9E,IAAI,eAAK,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9B,MAAM,UAAU,GAAG,MAAA,KAAK,CAAC,QAAQ,0CAAE,MAAM,CAAC;gBAG1C,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;oBACvB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,qCAAqC,CAC9D,cAAc,EACd,cAAc,EACd,aAAa,EACb,aAAa,CACd,CAAC;oBACF,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;wBAE5B,OAAO,EAAkB,CAAC;oBAC5B,CAAC;oBACD,MAAM,IAAI,KAAK,CACb,gBAAgB,cAAc,2BAA2B;wBACzD,2DAA2D,CAC5D,CAAC;gBACJ,CAAC;gBAGD,IAAI,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;oBAC7C,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,IAAI,aAAa,4CAA4C,cAAc,IAAI;wBAC/E,WAAW,UAAU,eAAe,IAAI,CAAC,SAAS,CAAC,MAAA,KAAK,CAAC,QAAQ,0CAAE,IAAI,CAAC,IAAI;wBAC5E,yDAAyD,CAC1D,CAAC;oBAEF,MAAM,IAAI,CAAC,6BAA6B,CAAC,sBAAsB,CAC7D,cAAc,CACf,CAAC;oBAEF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,oCAAiB,CAAC,wBAAwB,EAAE;wBACjE,cAAc;wBACd,MAAM,EAAE,cAAc;wBACtB,UAAU;qBACX,CAAC,CAAC;gBACL,CAAC;gBAGD,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;oBACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,IAAI,aAAa,0DAA0D,cAAc,EAAE,CAC5F,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,IAAI,aAAa,kCAAkC,cAAc,KAAK,YAAY,EAAE,CACrF,CAAC;YAEF,MAAM,IAAI,KAAK,CAAC,yCAAyC,YAAY,EAAE,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAaD,KAAK,CAAC,yBAAyB,CAC7B,cAAsB,EACtB,MAAuB;;QAEvB,MAAM,aAAa,GAAG,cAAc,cAAc,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QAEnE,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,IAAI,aAAa,oCAAoC,cAAc,aAAa,MAAM,EAAE,CACzF,CAAC;YAEF,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAG3E,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,CAAC;gBACrE,cAAc;gBACd,eAAe,EAAE,IAAI;aACtB,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,aAAa,yBAAyB,CAAC,CAAC;YAG9D,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,IAAI,aAAa,sDAAsD,CACxE,CAAC;YAEF,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;YAE3D,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,IAAI,aAAa,uCAAuC,cAAc,eAAe,CACtF,CAAC;YAGF,MAAM,IAAI,CAAC,6BAA6B,CAAC,sBAAsB,CAC7D,cAAc,CACf,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,IAAI,aAAa,8CAA8C,CAChE,CAAC;YAGF,MAAM,wBAAwB,GAAG,MAAM,IAAI,CAAC,6BAA6B,CAAC,KAAK,CAAC;gBAC9E,KAAK,EAAE;oBACL,MAAM,EAAE,cAAc;oBACtB,QAAQ,EAAE,IAAI;oBACd,cAAc,EAAE,IAAA,aAAG,EAAC,cAAc,CAAC;iBACpC;aACF,CAAC,CAAC;YAGH,IAAI,wBAAwB,KAAK,CAAC,EAAE,CAAC;gBACnC,MAAM,cAAc,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;gBAChG,MAAM,IAAI,CAAC,uBAAuB,CAAC,MAAM,CACvC,cAAc,EACd,EAAE,QAAQ,EAAE,KAAK,EAAE,CACpB,CAAC;gBAEF,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,IAAI,aAAa,qEAAqE,CACvF,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,IAAI,aAAa,oBAAoB,wBAAwB,oDAAoD,CAClH,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,IAAI,aAAa,gDAAgD,cAAc,EAAE,CAClF,CAAC;YAEF,OAAO,IAAI,CAAC;QAEd,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YAI9E,IAAI,eAAK,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAA,MAAA,KAAK,CAAC,QAAQ,0CAAE,MAAM,MAAK,GAAG,EAAE,CAAC;gBAChE,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,IAAI,aAAa,kBAAkB,cAAc,2BAA2B;oBAC5E,4BAA4B,CAC7B,CAAC;gBAEF,MAAM,IAAI,CAAC,6BAA6B,CAAC,sBAAsB,CAC7D,cAAc,CACf,CAAC;gBAEF,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,IAAI,aAAa,mDAAmD,cAAc,EAAE,CACrF,CAAC;gBAEF,OAAO,IAAI,CAAC;YACd,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,IAAI,aAAa,mCAAmC,cAAc,KAAK,YAAY,EAAE,CACtF,CAAC;YAEF,MAAM,IAAI,KAAK,CAAC,0CAA0C,YAAY,EAAE,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAOD,KAAK,CAAC,eAAe,CAAC,cAAsB;QAC1C,OAAO,IAAI,CAAC,6BAA6B,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;IACjF,CAAC;IAOD,KAAK,CAAC,4BAA4B,CAAC,cAAsB;;QACvD,IAAI,CAAC;YAEH,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,cAAc,EAAE,EAAC,KAAK,EAAE,KAAK,EAAC,CAAC,CAAC;YAIrG,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC;gBACtD,MAAM,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC;gBACpC,KAAK,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE;aAC9B,CAAC,CAAC;YACH,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,gDAAmB,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC1E,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,uCAAuC,cAAc,mCAAmC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,6CAA6C,CAClJ,CAAC;gBACF,OAAO,IAAI,CAAC;YACd,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,uEAAuE,cAAc,qBAAqB,cAAc,GAAG,CAAC,CAAC;YAC7I,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,6BAA6B,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;YACjG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,sDAAsD,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,cAAc,EAAE,CAAC,CAAC;YACtG,OAAO,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,cAAc,mCAAI,IAAI,CAAC;QAC9C,CAAC;QAAC,WAAM,CAAC;YAEP,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mCAAmC,cAAc,EAAE,CAAC,CAAC;YACvE,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAOD,yBAAyB,CAAC,cAAsB;QAC9C,IAAI,CAAC,6BAA6B;aAC/B,wBAAwB,CAAC,cAAc,CAAC;aACxC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;YACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,wDAAwD,cAAc,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAClI,CAAC;QACJ,CAAC,CAAC,CAAC;IACP,CAAC;IAUD,KAAK,CAAC,oBAAoB,CACxB,OAAmC;QAEnC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAExC,MAAM,MAAM,GAA8B;YACxC,UAAU,EAAE,CAAC;YACb,mBAAmB,EAAE,CAAC;YACtB,cAAc,EAAE,CAAC;YACjB,sBAAsB,EAAE,EAAE;YAC1B,MAAM,EAAE,EAAE;SACX,CAAC;QAEF,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;YAEpD,IAAI,aAAa,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;YAGnE,IAAI,MAAM,EAAE,CAAC;gBACX,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC/C,CAAC;YAED,MAAM,CAAC,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC;YAEzC,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;gBACtD,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,aAAa,CAAC,MAAM,4BAA4B,CAAC,CAAC;YAG3E,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;gBACzC,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;oBAC5D,MAAM,CAAC,mBAAmB,EAAE,CAAC;oBAC7B,MAAM,CAAC,sBAAsB,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;gBACtD,CAAC;gBAAC,OAAO,WAAoB,EAAE,CAAC;oBAC9B,MAAM,OAAO,GAAG,WAAW,YAAY,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;oBACrF,MAAM,CAAC,cAAc,EAAE,CAAC;oBACxB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;wBACjB,cAAc,EAAE,YAAY,CAAC,EAAE;wBAC/B,KAAK,EAAE,WAAW,YAAY,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;qBAC5E,CAAC,CAAC;oBACH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oCAAoC,YAAY,CAAC,EAAE,KAAK,OAAO,EAAE,CAAC,CAAC;gBACtF,CAAC;YACH,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,0BAA0B,MAAM,CAAC,mBAAmB,aAAa,MAAM,CAAC,cAAc,SAAS,CAChG,CAAC;QACJ,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YACzE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,OAAO,EAAE,CAAC,CAAC;YAC5D,MAAM,KAAK,CAAC;QACd,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAQD,KAAK,CAAC,6BAA6B,CACjC,QAAgB,EAChB,WAAmB;QAEnB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,2CAA2C,QAAQ,EAAE,CAAC,CAAC;QACvE,OAAO,IAAI,CAAC,oBAAoB,CAAC;YAC/B,WAAW;YACX,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,WAAC,OAAA,CAAA,MAAA,GAAG,CAAC,WAAW,0CAAE,QAAQ,CAAC,UAAU,QAAQ,GAAG,CAAC,KAAI,KAAK,CAAA,EAAA;SAC3E,CAAC,CAAC;IACL,CAAC;IAQD,KAAK,CAAC,2BAA2B,CAC/B,MAAc,EACd,WAAmB;QAEnB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,yCAAyC,MAAM,EAAE,CAAC,CAAC;QACnE,OAAO,IAAI,CAAC,oBAAoB,CAAC;YAC/B,WAAW;YACX,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,WAAC,OAAA,CAAA,MAAA,GAAG,CAAC,WAAW,0CAAE,QAAQ,CAAC,QAAQ,MAAM,GAAG,CAAC,KAAI,KAAK,CAAA,EAAA;SACvE,CAAC,CAAC;IACL,CAAC;IAUD,KAAK,CAAC,sCAAsC,CAC1C,cAAsB,EACtB,QAAgB;QAEhB,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAClE,cAAc,EACd,EAAE,KAAK,EAAE,KAAK,EAAE,CACjB,CAAC;QACF,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,CAAC;YACrE,cAAc;YACd,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,kBAAkB,QAAQ,2BAA2B,cAAc,EAAE,CACtE,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC;YAC7C,WAAW;YACX,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE;;gBACd,OAAA,GAAG,CAAC,QAAQ,KAAK,QAAQ;oBACzB,CAAC,CAAA,MAAA,GAAG,CAAC,WAAW,0CAAE,QAAQ,CAAC,QAAQ,cAAc,GAAG,CAAC,KAAI,KAAK,CAAC,CAAA;aAAA;SAClE,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,6BAA6B;aACpD,gCAAgC,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QAC9D,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,6BAA6B,CAAC,sBAAsB,CAC7D,GAAG,CAAC,cAAc,CACnB,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAMD,KAAK,CAAC,YAAY,CAAC,YAAoB;QACrC,IAAI,CAAC;YACH,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;gBACjE,OAAO;YACT,CAAC;YAED,MAAM,eAAK,CAAC,IAAI,CACd,GAAG,IAAI,CAAC,SAAS,SAAS,EAC1B,IAAI,eAAe,CAAC;gBAClB,KAAK,EAAE,YAAY;gBACnB,eAAe,EAAE,eAAe;aACjC,CAAC,EACF;gBACE,OAAO,EAAE,EAAE,cAAc,EAAE,mCAAmC,EAAE;gBAChE,OAAO,EAAE,KAAK;aACf,CACF,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;QAC7D,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YACzE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yCAAyC,OAAO,EAAE,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IASD,KAAK,CAAC,WAAW,CACf,YAAoB,EACpB,WAAmB,EACnB,MAA2B;QAE3B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;QAGrE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC;YAC7C,WAAW;YACX,MAAM;SACP,CAAC,CAAC;QAGH,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAEtC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QAC5C,OAAO,MAAM,CAAC;IAChB,CAAC;IAgBK,AAAN,KAAK,CAAC,wBAAwB;QAC5B,MAAM,aAAa,GAAG,gBAAgB,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QAEnD,IAAI,CAAC;YAGH,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC;gBAC7D,MAAM,EAAE,CAAC,IAAI,CAAC;gBACd,KAAK,EAAE,EAAE,MAAM,EAAE,gDAAmB,CAAC,SAAS,EAAE;aACjD,CAAC,CAAC;YACH,MAAM,gBAAgB,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAEzD,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,IAAI,aAAa,eAAe,gBAAgB,CAAC,MAAM,sCAAsC,CAC9F,CAAC;YACJ,CAAC;YAED,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,6BAA6B,CAAC,uBAAuB,CACjF,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAC3D,CAAC;YAEF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC5B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,aAAa,qCAAqC,CAAC,CAAC;gBAC1E,OAAO;YACT,CAAC;YAED,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,yBAAyB,CAAC,CAAC;YAEpF,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,IAAI,aAAa,mBAAmB,UAAU,CAAC,MAAM,YAAY,YAAY,CAAC,MAAM,oBAAoB,yBAAyB,GAAG,CACrI,CAAC;YAEF,MAAM,QAAQ,GAAwB,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;YAE7G,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,wBAAwB,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;YAElF,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;gBAChD,KAAK,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,MAAM,EAAE,CAAC;oBACxC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;oBACvF,QAAQ,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC;oBACtC,QAAQ,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC;oBACxC,QAAQ,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;oBACpC,QAAQ,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;gBACpC,CAAC;YACH,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,IAAI,aAAa,4BAA4B,QAAQ,CAAC,QAAQ,cAAc,QAAQ,CAAC,SAAS,eAAe,QAAQ,CAAC,OAAO,aAAa,QAAQ,CAAC,aAAa,oBAAoB,QAAQ,CAAC,MAAM,SAAS,CAC7M,CAAC;YAEF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,oCAAiB,CAAC,sBAAsB,kBAC7D,aAAa,EACb,WAAW,EAAE,UAAU,CAAC,MAAM,EAC9B,sBAAsB,EAAE,gBAAgB,CAAC,MAAM,IAC5C,QAAQ,EACX,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,aAAa,yCAAyC,EAAE,KAAK,CAAC,CAAC;QACvF,CAAC;IACH,CAAC;IAQK,AAAN,KAAK,CAAC,wBAAwB;QAC5B,MAAM,aAAa,GAAG,qBAAqB,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QACxD,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC;gBAC1D,KAAK,EAAE;oBACL,MAAM,EAAE,gDAAmB,CAAC,mBAAmB;oBAC/C,QAAQ,EAAE,IAAI;iBACf;aACF,CAAC,CAAC;YAEH,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,aAAa,yCAAyC,CAAC,CAAC;gBAC9E,OAAO;YACT,CAAC;YAED,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACnD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,6BAA6B,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;YAC/F,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YAErE,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAE/E,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,IAAI,aAAa,6BAA6B,WAAW,CAAC,MAAM,wBAAwB;gBACxF,GAAG,WAAW,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,uBAAuB,YAAY,CAAC,MAAM,WAAW,CACjG,CAAC;YAEF,IAAI,SAAS,GAAG,CAAC,CAAC;YAClB,IAAI,MAAM,GAAG,CAAC,CAAC;YAEf,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;gBAChC,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;oBAC1D,MAAM,IAAI,CAAC,uBAAuB,CAAC,MAAM,CACvC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EACf,EAAE,MAAM,EAAE,gDAAmB,CAAC,MAAM,EAAE,CACvC,CAAC;oBACF,SAAS,EAAE,CAAC;oBACZ,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,IAAI,aAAa,qCAAqC,IAAI,CAAC,cAAc,0BAA0B,CACpG,CAAC;gBACJ,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,EAAE,CAAC;oBACT,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,IAAI,aAAa,8CAA8C,IAAI,CAAC,cAAc,IAAI;wBACtF,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CACnD,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,IAAI,aAAa,qBAAqB,SAAS,eAAe,MAAM,SAAS,CAC9E,CAAC;YAEF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,oCAAiB,CAAC,oCAAoC,EAAE;gBAC7E,aAAa;gBACb,WAAW,EAAE,WAAW,CAAC,MAAM;gBAC/B,eAAe,EAAE,WAAW,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM;gBACzD,SAAS,EAAE,YAAY,CAAC,MAAM;gBAC9B,SAAS;gBACT,MAAM;aACP,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,aAAa,0CAA0C,EAAE,KAAK,CAAC,CAAC;QACxF,CAAC;IACH,CAAC;IAOO,kBAAkB,CACxB,IAAkC,EAClC,UAAkB;QAElB,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;QAClE,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAAC;IAClE,CAAC;IAKO,aAAa,CACnB,IAAkC;QAElC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAwC,CAAC;QAC/D,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACtC,IAAI,MAAM;gBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;;gBACxB,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAMO,wBAAwB,CAC9B,IAAkC,EAClC,aAAqB;QAErB,MAAM,cAAc,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,kCAAkC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;QAC/F,IAAI,aAAa,GAAG,CAAC,CAAC;QAEtB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,GAAG,CAAC,kBAAkB,IAAI,GAAG,CAAC,kBAAkB,IAAI,cAAc;gBAAE,SAAS;YAElF,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,IAAI,aAAa,kBAAkB,GAAG,CAAC,cAAc,yCAAyC,GAAG,CAAC,kBAAkB,CAAC,WAAW,EAAE,6CAA6C,CAChL,CAAC;YAEF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,oCAAiB,CAAC,gBAAgB,EAAE;gBACzD,cAAc,EAAE,GAAG,CAAC,cAAc;gBAClC,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,MAAM,EAAE,oBAAoB;aAC7B,CAAC,CAAC;YAEH,aAAa,EAAE,CAAC;QAClB,CAAC;QAED,OAAO,aAAa,CAAC;IACvB,CAAC;IAMO,KAAK,CAAC,0BAA0B,CACtC,MAAc,EACd,QAAsC,EACtC,aAAqB;QAErB,MAAM,MAAM,GAAwB,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QAE3G,IAAI,cAAsB,CAAC;QAC3B,IAAI,WAAmB,CAAC;QACxB,IAAI,CAAC;YACH,cAAc,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YACvE,WAAW,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC;QAC/F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,IAAI,aAAa,iCAAiC,MAAM,cAAc,QAAQ,CAAC,MAAM,UAAU,EAC/F,KAAK,CACN,CAAC;YACF,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,gBAAgB,EAAE,CAAC;YAC1E,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAAC,CAAC;YAChE,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;YACnH,MAAM,CAAC,QAAQ,IAAI,WAAW,CAAC,QAAQ,CAAC;YACxC,MAAM,CAAC,SAAS,IAAI,WAAW,CAAC,SAAS,CAAC;YAC1C,MAAM,CAAC,OAAO,IAAI,WAAW,CAAC,OAAO,CAAC;YACtC,MAAM,CAAC,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC;QACtC,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAMO,KAAK,CAAC,wBAAwB,CACpC,KAAmC,EACnC,MAAc,EACd,cAAsB,EACtB,WAAmB,EACnB,aAAqB;QAErB,MAAM,MAAM,GAAwB,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QAE3G,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;QAErD,MAAM,YAAY,GAAwB;YACxC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;gBACnC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC;gBACjB,MAAM,EAAE,KAAK;gBACb,GAAG,EAAE,kBAAkB,GAAG,CAAC,cAAc,EAAE;gBAC3C,OAAO,EAAE,EAAE,QAAQ,EAAE,sBAAsB,EAAE;aAC9C,CAAC,CAAC;SACJ,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAA,+CAAmB,EACxC,GAAG,EAAE,CAAC,eAAK,CAAC,IAAI,CACd,GAAG,IAAI,CAAC,eAAe,SAAS,EAChC,YAAY,EACZ;gBACE,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,WAAW,EAAE;oBACtC,cAAc,EAAE,kBAAkB;iBACnC;aACF,CACF,EACD;gBACE,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,YAAY,EAAE,sBAAsB,MAAM,KAAK,KAAK,CAAC,MAAM,QAAQ;gBACnE,UAAU,EAAE,CAAC;aACd,CACF,CAAC;YAEF,IAAI,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,CAAA,EAAE,CAAC;gBACpB,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC;gBAC9B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,aAAa,yCAAyC,MAAM,EAAE,CAAC,CAAC;gBACtF,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC3C,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAA2C,CAAC;gBACnF,IAAI,CAAC,GAAG;oBAAE,SAAS;gBACnB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,GAAG,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;gBAChF,MAAM,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC;gBACvC,MAAM,CAAC,SAAS,IAAI,UAAU,CAAC,SAAS,CAAC;gBACzC,MAAM,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC;gBACrC,MAAM,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC;YACrC,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC;YAC9B,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,IAAI,aAAa,kCAAkC,MAAM,KAAK,KAAK,CAAC,MAAM,SAAS,EACnF,KAAK,CACN,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAKO,KAAK,CAAC,uBAAuB,CACnC,GAA+B,EAC/B,IAAiC,EACjC,aAAqB;QAErB,MAAM,MAAM,GAAwB,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QAE3G,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACxB,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC;YACpB,IAAI,MAAM,IAAI,CAAC,wBAAwB,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE,CAAC;gBACvE,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC;YACrB,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,qCAAqC,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,EAAE,aAAa,CAAC,CAAC;YACnI,IAAI,MAAM,KAAK,WAAW;gBAAE,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC;;gBAC5C,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YACvB,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QAClB,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,IAAI,aAAa,uBAAuB,IAAI,CAAC,MAAM,YAAY,GAAG,CAAC,cAAc,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAClH,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IAMO,KAAK,CAAC,wBAAwB,CACpC,GAA+B,EAC/B,QAAsB,EACtB,aAAqB;QAErB,IAAI,CAAC,QAAQ,CAAC,kBAAkB;YAAE,OAAO,KAAK,CAAC;QAE/C,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QACzD,MAAM,gBAAgB,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,0BAA0B,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;QACzF,IAAI,UAAU,IAAI,gBAAgB;YAAE,OAAO,KAAK,CAAC;QAEjD,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,IAAI,aAAa,kBAAkB,GAAG,CAAC,cAAc,mBAAmB,0BAA0B,qBAAqB,CACxH,CAAC;QACF,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QACtE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAEf,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,IAAI,aAAa,uBAAuB,GAAG,CAAC,cAAc,YAAY,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CACjI,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAOO,KAAK,CAAC,qCAAqC,CACjD,cAAsB,EACtB,cAAsB,EACtB,MAA0C,EAC1C,aAAqB;QAErB,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,IAAI,aAAa,kBAAkB,cAAc,mEAAmE,CACrH,CAAC;QAEF,MAAM,IAAI,CAAC,6BAA6B,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAC;QAEhF,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;YACrF,MAAM,IAAI,CAAC,yBAAyB,CAAC,cAAc,CAAC,CAAC;YAErD,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,IAAI,aAAa,mDAAmD,cAAc,YAAY,CAC/F,CAAC;YACF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,oCAAiB,CAAC,sBAAsB,EAAE;gBAC/D,cAAc;gBACd,MAAM,EAAE,cAAc;gBACtB,MAAM;aACP,CAAC,CAAC;YACH,OAAO,WAAW,CAAC;QACrB,CAAC;QAAC,OAAO,aAAa,EAAE,CAAC;YACvB,MAAM,WAAW,GAAG,aAAa,YAAY,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YAC7F,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,IAAI,aAAa,+CAA+C,cAAc,KAAK,WAAW,EAAE,CACjG,CAAC;YACF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,oCAAiB,CAAC,8BAA8B,EAAE;gBACvE,cAAc;gBACd,MAAM,EAAE,cAAc;gBACtB,MAAM;gBACN,KAAK,EAAE,WAAW;aACnB,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;CACF,CAAA;AA3qCY,oEAA4B;AAuxBjC;IADL,IAAA,eAAI,EAAC,aAAa,CAAC;;;;4EA8DnB;AAQK;IADL,IAAA,eAAI,EAAC,WAAW,CAAC;;;;4EAiEjB;uCA55BU,4BAA4B;IADxC,IAAA,mBAAU,GAAE;IAOR,WAAA,IAAA,eAAM,EAAC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,6CAAoB,CAAC,CAAC,CAAA;IAI9C,WAAA,IAAA,eAAM,EAAC,4BAAgB,CAAC,CAAA;IAExB,WAAA,IAAA,0BAAgB,EAAC,qCAAa,CAAC,CAAA;qCALO,6CAAoB;QACX,8EAAoC;QACrD,6BAAa,UAIF,oBAAU;QAClB,kDAAsB;QAC1B,oDAAuB;GAf5C,4BAA4B,CA2qCxC"}
1
+ {"version":3,"file":"microsoft-subscription.service.js","sourceRoot":"","sources":["../../../src/services/subscription/microsoft-subscription.service.ts"],"names":[],"mappings":"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"}