@lilaquadrat/studio 12.2.0 → 12.3.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.
- package/lib/src/helpers/shiftPlanAllocation.d.ts +53 -0
- package/lib/src/helpers/shiftPlanAllocation.js +110 -0
- package/lib/src/helpers/shiftPlanAllocation.js.map +1 -0
- package/lib/src/helpers/shiftPlanCoverage.d.ts +2 -0
- package/lib/src/helpers/shiftPlanCoverage.js +4 -0
- package/lib/src/helpers/shiftPlanCoverage.js.map +1 -0
- package/lib/src/helpers/shiftPlanningTime.js +26 -2
- package/lib/src/helpers/shiftPlanningTime.js.map +1 -1
- package/lib/src/helpers/shiftPlanningValidation.d.ts +8 -2
- package/lib/src/helpers/shiftPlanningValidation.js +16 -0
- package/lib/src/helpers/shiftPlanningValidation.js.map +1 -1
- package/lib/src/helpers/structureMatch.js +3 -1
- package/lib/src/helpers/structureMatch.js.map +1 -1
- package/lib/src/interfaces/ListPlanningParticipant.d.ts +17 -0
- package/lib/src/interfaces/ListPlanningParticipant.js +2 -0
- package/lib/src/interfaces/ListPlanningParticipant.js.map +1 -0
- package/lib/src/interfaces/PlanCoveragePreparation.d.ts +17 -0
- package/lib/src/interfaces/PlanCoveragePreparation.js +2 -0
- package/lib/src/interfaces/PlanCoveragePreparation.js.map +1 -0
- package/lib/src/interfaces/PlanningParticipantsResult.d.ts +12 -0
- package/lib/src/interfaces/PlanningParticipantsResult.js +2 -0
- package/lib/src/interfaces/PlanningParticipantsResult.js.map +1 -0
- package/lib/src/interfaces/ShiftAutofillResult.d.ts +6 -0
- package/lib/src/interfaces/ShiftAutofillResult.js +2 -0
- package/lib/src/interfaces/ShiftAutofillResult.js.map +1 -0
- package/lib/src/interfaces/ShiftReportContextOptions.d.ts +9 -0
- package/lib/src/interfaces/ShiftReportContextOptions.js +2 -0
- package/lib/src/interfaces/ShiftReportContextOptions.js.map +1 -0
- package/lib/src/models/lists.model.js +2 -1
- package/lib/src/models/lists.model.js.map +1 -1
- package/lib/src/services/customers.service.d.ts +2 -2
- package/lib/src/services/customers.service.js +2 -2
- package/lib/src/services/customers.service.js.map +1 -1
- package/lib/src/services/listParticipants.service.d.ts +45 -8
- package/lib/src/services/listParticipants.service.js +320 -39
- package/lib/src/services/listParticipants.service.js.map +1 -1
- package/lib/src/services/lists.service.js +24 -1
- package/lib/src/services/lists.service.js.map +1 -1
- package/lib/src/services/shifts.service.d.ts +18 -1
- package/lib/src/services/shifts.service.js +171 -26
- package/lib/src/services/shifts.service.js.map +1 -1
- package/lib/tests/listParticipantsPlanning.spec.js +406 -10
- package/lib/tests/listParticipantsPlanning.spec.js.map +1 -1
- package/lib/tests/listsServiceCreateExternalProducts.spec.js +18 -0
- package/lib/tests/listsServiceCreateExternalProducts.spec.js.map +1 -1
- package/lib/tests/shiftPlanCoverage.spec.d.ts +1 -0
- package/lib/tests/shiftPlanCoverage.spec.js +189 -0
- package/lib/tests/shiftPlanCoverage.spec.js.map +1 -0
- package/lib/tests/shiftPlanning.spec.js +327 -0
- package/lib/tests/shiftPlanning.spec.js.map +1 -1
- package/lib/tests/shiftPlanningTime.spec.d.ts +1 -0
- package/lib/tests/shiftPlanningTime.spec.js +90 -0
- package/lib/tests/shiftPlanningTime.spec.js.map +1 -0
- package/lib/tests/structureMatch.spec.js +42 -0
- package/lib/tests/structureMatch.spec.js.map +1 -1
- package/package.json +2 -2
|
@@ -10,8 +10,9 @@ import AbsencesService from './employeeAbsences.service.js';
|
|
|
10
10
|
import ListsService from './lists.service.js';
|
|
11
11
|
import ParticipantsService from './listParticipants.service.js';
|
|
12
12
|
import CustomersService from './customers.service.js';
|
|
13
|
-
import { interval, localDate, maximumShiftMilliseconds, normalizeBreaks, planningValidation } from '../helpers/shiftPlanningTime.js';
|
|
14
|
-
import { assertUniquePlanningIds,
|
|
13
|
+
import { effectivePolicy, interval, localDate, maximumShiftMilliseconds, normalizeBreaks, planningValidation } from '../helpers/shiftPlanningTime.js';
|
|
14
|
+
import { assertUniquePlanningIds, equalAssignmentSets, equalBreaks, newScheduleViolations, planningIntervalFilter, planningPage, planningPagination, } from '../helpers/shiftPlanningValidation.js';
|
|
15
|
+
import { allocateShiftFills } from '../helpers/shiftPlanAllocation.js';
|
|
15
16
|
import { boundedPlanningInstant, reportShift, scheduleWindowMilliseconds, unavailableParticipantStates } from '../helpers/shiftPlanningReports.js';
|
|
16
17
|
/** Scheduling owns employee allocation; work areas and plans only supply reusable identity/configuration. */
|
|
17
18
|
export class ShiftsService extends Immutable {
|
|
@@ -123,6 +124,148 @@ export class ShiftsService extends Immutable {
|
|
|
123
124
|
}
|
|
124
125
|
return (await this.singleShift(plan, shift, options));
|
|
125
126
|
}
|
|
127
|
+
/** Suggestions use the manual assignment rules without applying the proposed allocation. */
|
|
128
|
+
async autofillShift(plan, shift, options, breaks = []) {
|
|
129
|
+
const configuration = await ShiftPlansService.planForScheduling(plan, options);
|
|
130
|
+
const previous = await this.model.db.findOne({ _id: shift, company: options.company, project: options.project, plan });
|
|
131
|
+
if (!previous)
|
|
132
|
+
throw new ImmutableError('SHIFT_NOT_FOUND');
|
|
133
|
+
// Existing attention items belong to the planner; autofill must not silently remove their assignments.
|
|
134
|
+
const result = { shift: previous._id, users: previous.assignments.map((assignment) => assignment.participant) };
|
|
135
|
+
// An absent staffing target is not permission to fill the shift with the entire employee pool.
|
|
136
|
+
const requiredPeople = previous.requiredPeople ?? 0;
|
|
137
|
+
if (requiredPeople <= previous.assignments.length)
|
|
138
|
+
return result;
|
|
139
|
+
// A plan may have changed lists since this shift was saved; its current configuration is authoritative.
|
|
140
|
+
const list = configuration.list;
|
|
141
|
+
if (!list)
|
|
142
|
+
return result;
|
|
143
|
+
const target = { ...previous, list };
|
|
144
|
+
const categories = configuration.workAreaCategories?.find((binding) => binding.area.equals(target.area))?.categoryIds;
|
|
145
|
+
const state = configuration.defaultParticipantState ? [configuration.defaultParticipantState] : undefined;
|
|
146
|
+
// The pool is ranked by qualification, then raw score; normalized stages would merge different scores.
|
|
147
|
+
// Inspect every candidate because scheduling conflicts can rule out an entire page of higher-ranked people.
|
|
148
|
+
const pool = await ParticipantsService.planningParticipants(list, { level: 'shift', shift: target._id, workArea: target.area }, state, categories, undefined, {
|
|
149
|
+
...options, skip: 0, limit: Number.MAX_SAFE_INTEGER, sort: { _id: 1 },
|
|
150
|
+
});
|
|
151
|
+
// Multiple list entries can identify the same person, including someone already assigned to this shift.
|
|
152
|
+
const seenCustomers = new Set(previous.assignments.map((assignment) => assignment.customer.toHexString()));
|
|
153
|
+
const candidates = [];
|
|
154
|
+
for (const candidate of pool.data) {
|
|
155
|
+
const customer = candidate.user?._id;
|
|
156
|
+
if (!customer || unavailableParticipantStates.has(candidate.state) || seenCustomers.has(customer.toHexString()))
|
|
157
|
+
continue;
|
|
158
|
+
seenCustomers.add(customer.toHexString());
|
|
159
|
+
// Only supplied breaks are considered; inventing break times would leave callers unable to apply an ID-only result.
|
|
160
|
+
candidates.push(normalizeBreaks(target, { participant: candidate._id, customer, breaks }));
|
|
161
|
+
}
|
|
162
|
+
if (!candidates.length)
|
|
163
|
+
return result;
|
|
164
|
+
// The probe expands the shared read scope to all possible picks; it is never an actual allocation.
|
|
165
|
+
// Loading this context once avoids database queries inside the candidate loop.
|
|
166
|
+
const probe = { ...target, assignments: [...previous.assignments, ...candidates] };
|
|
167
|
+
const neighbors = await this.scheduleNeighbors(probe, options, previous);
|
|
168
|
+
const otherNeighbors = neighbors.filter((neighbor) => !neighbor._id.equals(target._id));
|
|
169
|
+
const context = await this.reportContext([...otherNeighbors, probe], options);
|
|
170
|
+
// Missing or incompatible settings must not silently disable scheduling checks.
|
|
171
|
+
if (!effectivePolicy(context.settings, configuration.settingsOverrides))
|
|
172
|
+
throw new ImmutableError('SHIFT_PLANNING_SETTINGS_NOT_CONFIGURED');
|
|
173
|
+
// Persisted violation severities are the baseline, so existing attention items need not block safe additions.
|
|
174
|
+
// Working-time totals are unnecessary here; only rule violations influence selection.
|
|
175
|
+
const baseline = new Map();
|
|
176
|
+
for (const neighbor of neighbors)
|
|
177
|
+
reportShift(neighbor, context, false, baseline);
|
|
178
|
+
const otherSchedules = context.schedules.filter((scheduled) => !scheduled._id.equals(target._id));
|
|
179
|
+
const assignments = [...previous.assignments];
|
|
180
|
+
for (const candidate of candidates) {
|
|
181
|
+
if (assignments.length >= requiredPeople)
|
|
182
|
+
break;
|
|
183
|
+
const proposed = { ...target, assignments: [...assignments, candidate] };
|
|
184
|
+
// Replace the shift only in memory so neighboring plans can reveal new rest or hours violations.
|
|
185
|
+
const proposedContext = { ...context, schedules: [...otherSchedules, proposed] };
|
|
186
|
+
const updatedEvidence = new Map();
|
|
187
|
+
const updated = [...otherNeighbors, proposed]
|
|
188
|
+
.map((document) => reportShift(document, proposedContext, false, updatedEvidence));
|
|
189
|
+
// Availability may have changed between the pool query and the later context reads.
|
|
190
|
+
if (updated[updated.length - 1].unavailableParticipantIds.includes(candidate.participant.toHexString()))
|
|
191
|
+
continue;
|
|
192
|
+
if (newScheduleViolations(proposed, previous, updated, baseline, updatedEvidence).length)
|
|
193
|
+
continue;
|
|
194
|
+
assignments.push(candidate);
|
|
195
|
+
result.users.push(candidate.participant);
|
|
196
|
+
}
|
|
197
|
+
// A partial result is intentional, not a reservation; applying it later still requires assignment validation.
|
|
198
|
+
return result;
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Same allocation and rules as autofillShift, but resolves the suggestion into assignments and
|
|
202
|
+
* returns the recomputed shift, so a caller can apply it without a second round trip. Nothing is
|
|
203
|
+
* persisted; applying the result still goes through the normal assignment validation.
|
|
204
|
+
*/
|
|
205
|
+
async autofillShiftReport(plan, shift, options, breaks = []) {
|
|
206
|
+
const result = await this.autofillShift(plan, shift, options, breaks);
|
|
207
|
+
const previous = await this.document(plan, shift, options);
|
|
208
|
+
const configuration = await ShiftPlansService.planForScheduling(plan, options);
|
|
209
|
+
// The plan owns the employee list; a shift persisted before the plan was linked must resolve against it.
|
|
210
|
+
const target = { ...previous, ...(configuration.list ? { list: configuration.list } : {}) };
|
|
211
|
+
const assignments = await this.resolvedAssignments(result.users.map((participant) => ({ participant, breaks })), target, options, previous);
|
|
212
|
+
const proposal = { ...target, assignments };
|
|
213
|
+
return (await this.reports([proposal], options, proposal))[0];
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Rule-checked suggestions for every under-staffed shift in a plan, day, work area or single shift.
|
|
217
|
+
* Shifts are filled greedily in start order against one shared allocation, so a person already
|
|
218
|
+
* picked for a colliding shift is not picked again; other plans act only as conflict neighbours.
|
|
219
|
+
* Nothing is persisted; applying a result still goes through the normal assignment validation.
|
|
220
|
+
*/
|
|
221
|
+
async autofill(scope, options, breaks = []) {
|
|
222
|
+
if (!scope.plan)
|
|
223
|
+
return [];
|
|
224
|
+
const configuration = await ShiftPlansService.planForScheduling(scope.plan, options);
|
|
225
|
+
const list = configuration.list;
|
|
226
|
+
if (!list)
|
|
227
|
+
return [];
|
|
228
|
+
const preparation = await ParticipantsService.prepareShiftPlanning(list, scope, options);
|
|
229
|
+
if (!preparation || !preparation.targets.length)
|
|
230
|
+
return [];
|
|
231
|
+
// The pool arrives ranked; carrying breaks and keeping one entry per person matches a manual pick.
|
|
232
|
+
const targets = preparation.targets.map((target) => {
|
|
233
|
+
const shift = { ...target.shift, list };
|
|
234
|
+
const seen = new Set(shift.assignments.map((assignment) => assignment.customer.toHexString()));
|
|
235
|
+
const candidates = [];
|
|
236
|
+
for (const candidate of target.candidates) {
|
|
237
|
+
const customer = candidate.customer.toHexString();
|
|
238
|
+
if (seen.has(customer))
|
|
239
|
+
continue;
|
|
240
|
+
seen.add(customer);
|
|
241
|
+
candidates.push({ ...candidate, breaks: normalizeBreaks(shift, { participant: candidate.participant, customer: candidate.customer, breaks }).breaks });
|
|
242
|
+
}
|
|
243
|
+
return { ...target, shift, candidates };
|
|
244
|
+
});
|
|
245
|
+
// The probe widens the shared context read to every possible pick; it is never an allocation.
|
|
246
|
+
const probes = targets.map((target) => ({
|
|
247
|
+
...target.shift,
|
|
248
|
+
assignments: [...target.shift.assignments, ...target.candidates.map((candidate) => ({ participant: candidate.participant, customer: candidate.customer, breaks: [] }))],
|
|
249
|
+
}));
|
|
250
|
+
const customerIds = [...new Map(probes.flatMap((probe) => probe.assignments.map((assignment) => [assignment.customer.toHexString(), assignment.customer]))).values()];
|
|
251
|
+
const starts = probes.map((probe) => Date.parse(probe.start));
|
|
252
|
+
const ends = probes.map((probe) => Date.parse(probe.end));
|
|
253
|
+
// Only this scope's shifts may be filled, but conflicts in every plan are compared, as manual edits do.
|
|
254
|
+
const neighbours = await this.model.db.find({ company: options.company, 'assignments.customer': { $in: customerIds },
|
|
255
|
+
end: { $gt: boundedPlanningInstant(Math.min(...starts) - scheduleWindowMilliseconds) },
|
|
256
|
+
start: { $lt: boundedPlanningInstant(Math.max(...ends) + scheduleWindowMilliseconds) },
|
|
257
|
+
}).toArray();
|
|
258
|
+
// The neighbours already cover the complete rule window; expanding around them would grow it again.
|
|
259
|
+
const context = await this.reportContext([...neighbours, ...probes], options, { schedules: neighbours, preparation });
|
|
260
|
+
// Missing or incompatible settings must not silently disable scheduling checks.
|
|
261
|
+
if (!effectivePolicy(context.settings, configuration.settingsOverrides))
|
|
262
|
+
throw new ImmutableError('SHIFT_PLANNING_SETTINGS_NOT_CONFIGURED');
|
|
263
|
+
const schedules = [...new Map([...context.schedules, ...targets.map((target) => target.shift)].map((shift) => [shift._id.toHexString(), shift])).values()];
|
|
264
|
+
const allocation = allocateShiftFills(schedules, targets, context, { matchingGate: false, breaksBlocking: true, stopOnUnfillable: false });
|
|
265
|
+
// Report against the finished allocation so overlaps between the suggested shifts are visible.
|
|
266
|
+
const filled = [...new Map([...context.schedules, ...allocation.shifts].map((shift) => [shift._id.toHexString(), shift])).values()];
|
|
267
|
+
return allocation.shifts.map((shift) => reportShift(shift, { ...context, schedules: filled }));
|
|
268
|
+
}
|
|
126
269
|
async hasWorkAreaAssignments(area, options) {
|
|
127
270
|
return await this.model.db.countDocuments({ company: options.company, project: options.project, area }) > 0;
|
|
128
271
|
}
|
|
@@ -194,12 +337,13 @@ export class ShiftsService extends Immutable {
|
|
|
194
337
|
}
|
|
195
338
|
return planningPage(data, all, site, limit);
|
|
196
339
|
}
|
|
197
|
-
async reportContext(documents, options,
|
|
198
|
-
const
|
|
340
|
+
async reportContext(documents, options, contextOptions = {}) {
|
|
341
|
+
const { replacement, plan, preparation } = contextOptions;
|
|
342
|
+
const customerIds = [...new Map(documents.flatMap((shift) => shift.assignments.map((entry) => [entry.customer.toHexString(), entry.customer]))).values()];
|
|
199
343
|
const earliest = Math.min(...documents.map((shift) => Date.parse(shift.start)));
|
|
200
344
|
const latest = Math.max(...documents.map((shift) => Date.parse(shift.end)));
|
|
201
345
|
// Plan reads stay inside their plan; scheduling writes omit the scope to keep their company-wide conflict checks.
|
|
202
|
-
const schedules = await this.model.db.find({ company: options.company, ...(plan ? { plan } : {}), 'assignments.customer': { $in: customerIds },
|
|
346
|
+
const schedules = contextOptions.schedules ?? await this.model.db.find({ company: options.company, ...(plan ? { plan } : {}), 'assignments.customer': { $in: customerIds },
|
|
203
347
|
end: { $gt: boundedPlanningInstant(earliest - scheduleWindowMilliseconds) }, start: { $lt: boundedPlanningInstant(latest + scheduleWindowMilliseconds) },
|
|
204
348
|
}).toArray();
|
|
205
349
|
if (replacement) {
|
|
@@ -209,42 +353,43 @@ export class ShiftsService extends Immutable {
|
|
|
209
353
|
else
|
|
210
354
|
schedules.push(replacement);
|
|
211
355
|
}
|
|
212
|
-
const plans = await ShiftPlansService.plansForCompany([...schedules.map((shift) => shift.plan), ...documents.map((shift) => shift.plan)], options);
|
|
213
|
-
const settings = (await SettingsService.singleSettings(options))?.settings;
|
|
214
|
-
const absences = await AbsencesService.absencesForPlanning(customerIds, boundedPlanningInstant(earliest), boundedPlanningInstant(latest), options);
|
|
215
356
|
const participantIds = documents.flatMap((shift) => shift.assignments.map((entry) => entry.participant));
|
|
216
|
-
const
|
|
217
|
-
|
|
218
|
-
const
|
|
219
|
-
|
|
357
|
+
const planIds = [...new Map([...schedules, ...documents].map((shift) => [shift.plan.toHexString(), shift.plan])).values()]
|
|
358
|
+
.filter((planId) => !preparation?.plan._id.equals(planId));
|
|
359
|
+
const [plans, settings, absences, people] = await Promise.all([
|
|
360
|
+
planIds.length ? ShiftPlansService.plansForCompany(planIds, options) : [],
|
|
361
|
+
preparation ? preparation.settings : SettingsService.singleSettings(options),
|
|
362
|
+
AbsencesService.absencesForPlanning(customerIds, boundedPlanningInstant(earliest), boundedPlanningInstant(latest), options),
|
|
363
|
+
ParticipantsService.planningParticipantContext(participantIds, customerIds, options.company, preparation),
|
|
364
|
+
]);
|
|
365
|
+
return { schedules, plans: preparation ? [preparation.plan, ...plans] : plans, settings: settings?.settings, absences, ...people };
|
|
220
366
|
}
|
|
221
367
|
async reports(documents, options, replacement, evidence, plan) {
|
|
222
368
|
if (!documents.length)
|
|
223
369
|
return [];
|
|
224
|
-
const context = await this.reportContext(documents, options, replacement, plan);
|
|
370
|
+
const context = await this.reportContext(documents, options, { replacement, plan });
|
|
225
371
|
return documents.map((shift) => reportShift(shift, context, evidence === undefined, evidence));
|
|
226
372
|
}
|
|
227
|
-
|
|
228
|
-
const customers = [...candidate.assignments, ...(previous?.assignments ?? [])].map((entry) => entry.customer);
|
|
229
|
-
|
|
230
|
-
return;
|
|
373
|
+
scheduleNeighbors(candidate, options, previous) {
|
|
374
|
+
const customers = [...new Map([...candidate.assignments, ...(previous?.assignments ?? [])].map((entry) => [entry.customer.toHexString(), entry.customer])).values()];
|
|
375
|
+
// Both intervals matter when moving a shift, since its old and new positions can affect different neighbors.
|
|
231
376
|
const earliest = Math.min(Date.parse(candidate.start), previous ? Date.parse(previous.start) : Infinity);
|
|
232
377
|
const latest = Math.max(Date.parse(candidate.end), previous ? Date.parse(previous.end) : -Infinity);
|
|
233
|
-
|
|
378
|
+
// Future shifts in other plans may impose stricter incoming-rest rules than the proposed shift's own plan.
|
|
379
|
+
return this.model.db.find({ company: options.company, 'assignments.customer': { $in: customers },
|
|
234
380
|
end: { $gte: new Date(earliest).toISOString() }, start: { $lte: boundedPlanningInstant(latest + scheduleWindowMilliseconds) },
|
|
235
381
|
}).toArray();
|
|
382
|
+
}
|
|
383
|
+
async validateSchedule(candidate, options, previous) {
|
|
384
|
+
if (!candidate.assignments.length && !previous?.assignments.length)
|
|
385
|
+
return;
|
|
386
|
+
const neighbors = await this.scheduleNeighbors(candidate, options, previous);
|
|
387
|
+
// Capture persisted evidence before evaluating the in-memory replacement, just as autofill does for its trials.
|
|
236
388
|
const baseline = new Map();
|
|
237
389
|
await this.reports(neighbors, options, undefined, baseline);
|
|
238
390
|
const updatedEvidence = new Map();
|
|
239
391
|
const updated = await this.reports([...neighbors.filter((shift) => !shift._id.equals(candidate._id)), candidate], options, candidate, updatedEvidence);
|
|
240
|
-
const
|
|
241
|
-
|| !previous.assignments.some((existing) => equalAssignment(existing, assignment))).map((assignment) => assignment.customer.toHexString()));
|
|
242
|
-
// Sickness/settings can invalidate retained work. Permit unrelated edits and improvements, while rejecting new or worsened harm.
|
|
243
|
-
const violations = updated.flatMap((report) => report.violations.filter((violation) => {
|
|
244
|
-
const identity = violationIdentity(violation);
|
|
245
|
-
return (report._id.equals(candidate._id) && changedCustomers.has(violation.customer))
|
|
246
|
-
|| (updatedEvidence.get(identity) ?? 0) > (baseline.get(identity) ?? 0);
|
|
247
|
-
}));
|
|
392
|
+
const violations = newScheduleViolations(candidate, previous, updated, baseline, updatedEvidence);
|
|
248
393
|
if (violations.some((violation) => violation.rule === 'settingsMissing' && violation.shift === candidate._id.toHexString())) {
|
|
249
394
|
throw new ImmutableError('SHIFT_PLANNING_SETTINGS_NOT_CONFIGURED');
|
|
250
395
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shifts.service.js","sourceRoot":"","sources":["../../../src/services/shifts.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"shifts.service.js","sourceRoot":"","sources":["../../../src/services/shifts.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,QAAQ,EAAU,MAAM,SAAS,CAAC;AAMnD,OAAO,SAAS,MAAM,uBAAuB,CAAC;AAC9C,OAAO,cAAc,MAAM,sCAAsC,CAAC;AAClE,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAClD,OAAO,iBAAiB,MAAM,yBAAyB,CAAC;AACxD,OAAO,oBAAoB,MAAM,4BAA4B,CAAC;AAC9D,OAAO,gBAAgB,MAAM,wBAAwB,CAAC;AACtD,OAAO,eAAe,MAAM,oCAAoC,CAAC;AACjE,OAAO,eAAe,MAAM,+BAA+B,CAAC;AAC5D,OAAO,YAAY,MAAM,oBAAoB,CAAC;AAC9C,OAAO,mBAAmB,MAAM,+BAA+B,CAAC;AAChE,OAAO,gBAAgB,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,SAAS,EAAE,wBAAwB,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACtJ,OAAO,EACL,uBAAuB,EAAE,mBAAmB,EAAE,WAAW,EACzD,qBAAqB,EAAE,sBAAsB,EAAE,YAAY,EAAE,kBAAkB,GAChF,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAEvE,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,0BAA0B,EAAE,4BAA4B,EAAE,MAAM,oCAAoC,CAAC;AAInJ,6GAA6G;AAC7G,MAAM,OAAO,aAAc,SAAQ,SAAgB;IAAnD;;QAEE,UAAK,GAAG,UAAU,CAAC;IAkcrB,CAAC;IAhcS,cAAc,CAAC,KAAiB,EAAE,IAAiC,EAAE,GAAyC;QAEpH,MAAM,UAAU,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACrE,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,wBAAwB;YAAE,kBAAkB,CAAC,MAAM,EAAE,oCAAoC,CAAC,CAAC;QAC3J,IAAI,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC;YAE5D,kBAAkB,CAAC,MAAM,EAAE,4CAA4C,CAAC,CAAC;QAE3E,CAAC;QACD,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAEpE,kBAAkB,CAAC,OAAO,EAAE,wCAAwC,CAAC,CAAC;QAExE,CAAC;QACD,OAAO,UAAU,CAAC;IAEpB,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,IAAc,EAAE,KAAe,EAAE,OAAoC;QAE1F,MAAM,iBAAiB,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACvH,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,cAAc,CAAC,iBAAiB,CAAC,CAAC;QAC3D,OAAO,QAAQ,CAAC;IAElB,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,MAA8B,EAAE,KAAY,EAAE,OAAoC,EAAE,QAAgB;QAEpI,uBAAuB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,EAAE,cAAc,CAAC,CAAC;QAChG,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;QACvB,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI;YAAE,kBAAkB,CAAC,cAAc,EAAE,4CAA4C,CAAC,CAAC;QAC7G,MAAM,WAAW,GAAsB,EAAE,CAAC;QAC1C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAE3B,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YACrF,MAAM,QAAQ,GAAG,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;YACpG,8FAA8F;YAC9F,IAAI,QAAQ,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;gBAErD,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;gBACnD,SAAS;YAEX,CAAC;YACD,MAAM,WAAW,GAAG,MAAM,mBAAmB,CAAC,iBAAiB,CAAC,IAAK,EAAE,KAAK,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YACnG,IAAI,CAAC,WAAW,IAAI,4BAA4B,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC;gBAAE,kBAAkB,CAAC,0BAA0B,EAAE,2CAA2C,CAAC,CAAC;YACrK,MAAM,QAAQ,GAAG,CAAC,MAAM,gBAAgB,CAAC,iBAAiB,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACpG,IAAI,CAAC,QAAQ;gBAAE,kBAAkB,CAAC,0BAA0B,EAAE,oDAAoD,CAAC,CAAC;YACpH,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAE/G,CAAC;QACD,8GAA8G;QAC9G,uBAAuB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,cAAc,CAAC,CAAC;QAClG,OAAO,WAAW,CAAC;IAErB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAc,EAAE,KAAuB,EAAE,OAAoC;QAE7F,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC/E,MAAM,GAAG,GAAG,MAAM,oBAAoB,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAClF,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC;QAChC,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;QACvC,MAAM,SAAS,GAAkB,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,QAAQ,EAAE;YACtG,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE;SACrG,CAAC;QACF,SAAS,CAAC,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,WAAW,IAAI,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAC9F,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAChD,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,SAAS,CAAC;QACnC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QACnE,OAAO,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAE,CAAC;IAE/D,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAc,EAAE,KAAe,EAAE,OAAoC;QAErF,MAAM,iBAAiB,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACvH,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAEpG,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAc,EAAE,OAA6B,EAAE,OAAoC;QAElG,MAAM,iBAAiB,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACzD,MAAM,KAAK,GAAkB,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,sBAAsB,CAAQ,OAAO,CAAC,EAAE,CAAC;QACrI,IAAI,OAAO,CAAC,IAAI;YAAE,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAC5C,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC1D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACtD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;QAC/G,OAAO,YAAY,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAE5G,CAAC;IAED,kHAAkH;IAClH,KAAK,CAAC,WAAW,CAAC,IAAc,EAAE,KAAe,EAAE,KAAiB,EAAE,OAAoC;QAExG,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAC3D,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC/E,MAAM,GAAG,GAAG,MAAM,oBAAoB,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAClF,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;QAC5D,MAAM,SAAS,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAI,EAAE,CAAC;QAC3C,SAAS,CAAC,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;QAC1G,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC;QAChC,MAAM,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5K,OAAO,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAE,CAAC;IAEzD,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAc,EAAE,KAAe,EAAE,OAAoC;QAErF,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAC1C,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IAEtD,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,IAAc,EAAE,KAAe,EAAE,KAA4B,EAAE,OAAoC;QAE1H,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAC3D,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC/E,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC;QAChC,yGAAyG;QACzG,MAAM,MAAM,GAAkB,EAAE,GAAG,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzE,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QACjG,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAE5D,MAAM,IAAI,CAAC,gBAAgB,CAAC,EAAE,GAAG,MAAM,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC3E,MAAM,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;QAEvN,CAAC;QACD,OAAO,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAE,CAAC;IAEzD,CAAC;IAED,4FAA4F;IAC5F,KAAK,CAAC,aAAa,CAAC,IAAc,EAAE,KAAe,EAAE,OAAoC,EAAE,SAAiC,EAAE;QAE5H,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC/E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACvH,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,cAAc,CAAC,iBAAiB,CAAC,CAAC;QAC3D,uGAAuG;QACvG,MAAM,MAAM,GAAwB,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QACrI,+FAA+F;QAC/F,MAAM,cAAc,GAAG,QAAQ,CAAC,cAAc,IAAI,CAAC,CAAC;QACpD,IAAI,cAAc,IAAI,QAAQ,CAAC,WAAW,CAAC,MAAM;YAAE,OAAO,MAAM,CAAC;QACjE,wGAAwG;QACxG,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC;QAChC,IAAI,CAAC,IAAI;YAAE,OAAO,MAAM,CAAC;QAEzB,MAAM,MAAM,GAAkB,EAAE,GAAG,QAAQ,EAAE,IAAI,EAAE,CAAC;QACpD,MAAM,UAAU,GAAG,aAAa,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,WAAW,CAAC;QACtH,MAAM,KAAK,GAAG,aAAa,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1G,uGAAuG;QACvG,4GAA4G;QAC5G,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,oBAAoB,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE;YAC5J,GAAG,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,gBAAgB,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE;SACtE,CAAC,CAAC;QACH,wGAAwG;QACxG,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAC3G,MAAM,UAAU,GAAsB,EAAE,CAAC;QACzC,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAElC,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC;YACrC,IAAI,CAAC,QAAQ,IAAI,4BAA4B,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;gBAAE,SAAS;YAC1H,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;YAC1C,oHAAoH;YACpH,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAE7F,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,MAAM;YAAE,OAAO,MAAM,CAAC;QAEtC,mGAAmG;QACnG,+EAA+E;QAC/E,MAAM,KAAK,GAAkB,EAAE,GAAG,MAAM,EAAE,WAAW,EAAE,CAAC,GAAG,QAAQ,CAAC,WAAW,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC;QAClG,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QACzE,MAAM,cAAc,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACxF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,cAAc,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;QAC9E,gFAAgF;QAChF,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,QAAQ,EAAE,aAAa,CAAC,iBAAiB,CAAC;YAAE,MAAM,IAAI,cAAc,CAAC,wCAAwC,CAAC,CAAC;QAC5I,8GAA8G;QAC9G,sFAAsF;QACtF,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC3C,KAAK,MAAM,QAAQ,IAAI,SAAS;YAAE,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAClF,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAClG,MAAM,WAAW,GAAG,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC9C,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YAEnC,IAAI,WAAW,CAAC,MAAM,IAAI,cAAc;gBAAE,MAAM;YAChD,MAAM,QAAQ,GAAkB,EAAE,GAAG,MAAM,EAAE,WAAW,EAAE,CAAC,GAAG,WAAW,EAAE,SAAS,CAAC,EAAE,CAAC;YACxF,iGAAiG;YACjG,MAAM,eAAe,GAAuB,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,CAAC,GAAG,cAAc,EAAE,QAAQ,CAAC,EAAE,CAAC;YACrG,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;YAClD,MAAM,OAAO,GAAG,CAAC,GAAG,cAAc,EAAE,QAAQ,CAAC;iBAC1C,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC;YACrF,oFAAoF;YACpF,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,yBAAyB,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;gBAAE,SAAS;YAClH,IAAI,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC,MAAM;gBAAE,SAAS;YACnG,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC5B,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAE3C,CAAC;QACD,8GAA8G;QAC9G,OAAO,MAAM,CAAC;IAEhB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,mBAAmB,CAAC,IAAc,EAAE,KAAe,EAAE,OAAoC,EAAE,SAAiC,EAAE;QAElI,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QACtE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAC3D,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC/E,yGAAyG;QACzG,MAAM,MAAM,GAAkB,EAAE,GAAG,QAAQ,EAAE,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QAC3G,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAChD,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC,EAC5D,MAAM,EAAE,OAAO,EAAE,QAAQ,CAC1B,CAAC;QACF,MAAM,QAAQ,GAAkB,EAAE,GAAG,MAAM,EAAE,WAAW,EAAE,CAAC;QAC3D,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEhE,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,QAAQ,CAAC,KAAoB,EAAE,OAAoC,EAAE,SAAiC,EAAE;QAE5G,IAAI,CAAC,KAAK,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QAC3B,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACrF,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC;QAChC,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QACrB,MAAM,WAAW,GAAG,MAAM,mBAAmB,CAAC,oBAAoB,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QACzF,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QAE3D,mGAAmG;QACnG,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YAEjD,MAAM,KAAK,GAAkB,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;YACvD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YAC/F,MAAM,UAAU,GAAyB,EAAE,CAAC;YAC5C,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBAE1C,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;gBAClD,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;oBAAE,SAAS;gBACjC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACnB,UAAU,CAAC,IAAI,CAAC,EAAE,GAAG,SAAS,EAAE,MAAM,EAAE,eAAe,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,SAAS,CAAC,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YAEzJ,CAAC;YACD,OAAO,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;QAE1C,CAAC,CAAC,CAAC;QACH,8FAA8F;QAC9F,MAAM,MAAM,GAAoB,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACvD,GAAG,MAAM,CAAC,KAAK;YACf,WAAW,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,CAAC,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;SACxK,CAAC,CAAC,CAAC;QACJ,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QACtK,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9D,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1D,wGAAwG;QACxG,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,sBAAsB,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE;YAClH,GAAG,EAAE,EAAE,GAAG,EAAE,sBAAsB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,0BAA0B,CAAC,EAAE;YACtF,KAAK,EAAE,EAAE,GAAG,EAAE,sBAAsB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,0BAA0B,CAAC,EAAE;SACvF,CAAC,CAAC,OAAO,EAAE,CAAC;QACb,oGAAoG;QACpG,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,UAAU,EAAE,GAAG,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC;QACtH,gFAAgF;QAChF,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,QAAQ,EAAE,aAAa,CAAC,iBAAiB,CAAC;YAAE,MAAM,IAAI,cAAc,CAAC,wCAAwC,CAAC,CAAC;QAE5I,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,SAAS,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3J,MAAM,UAAU,GAAG,kBAAkB,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3I,+FAA+F;QAC/F,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,SAAS,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QACpI,OAAO,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAEjG,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,IAAc,EAAE,OAAoC;QAE/E,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;IAE9G,CAAC;IAED,6GAA6G;IAC7G,KAAK,CAAC,kBAAkB,CAAC,IAAc,EAAE,QAAgB,EAAE,OAAoC;QAE7F,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QAChH,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,OAAO;QAC3B,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;QACtE,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;YAExB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9D,OAAO,CAAC,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC;QAE/D,CAAC,CAAC;YAAE,MAAM,IAAI,cAAc,CAAC,8BAA8B,CAAC,CAAC;IAE/D,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,GAAa,EAAE,OAAoC;QAEpE,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IAE7G,CAAC;IAED,oFAAoF;IACpF,KAAK,CAAC,mBAAmB,CAAC,QAA8B,EAAE,aAAmD,EAAE,OAAoC;QAEjJ,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC/E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QAC7H,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,aAAa,CAAC,IAAI;eAClF,CAAC,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAEhF,MAAM,IAAI,cAAc,CAAC,8BAA8B,CAAC,CAAC;QAE3D,CAAC;IAEH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,QAAkB,EAAE,OAA2B,EAAE,OAAoC;QAElG,IAAI,CAAC,MAAM,gBAAgB,CAAC,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC;YAAE,MAAM,IAAI,cAAc,CAAC,oBAAoB,CAAC,CAAC;QACjH,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7E,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAoB,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC;QAClJ,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;QAC7F,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAClI,MAAM,SAAS,GAAG,CAAC,IAAe,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QACzH,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;eACpG,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACvF,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC1D,IAAI,CAAC,YAAY,CAAC,MAAM;YAAE,OAAO,YAAY,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAClE,mGAAmG;QACnG,MAAM,KAAK,GAAkB,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,GAAG,sBAAsB,CAAQ,OAAO,CAAC;YAC5J,GAAG,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI;gBAChE,IAAI,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;gBACvH,WAAW,EAAE,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,EAAE;aAC1C,CAAC,CAAC,GACJ,CAAC;QACF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;QAC5G,MAAM,IAAI,GAAkB,EAAE,CAAC;QAC/B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAE3B,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YACxE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YACjE,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YACtF,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YACjE,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9D,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG;gBAAE,SAAS;YAC7D,wGAAwG;YACxG,MAAM,UAAU,GAAwB,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;YAC3E,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;gBAAE,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YAC9E,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;gBAAE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrE,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;gBAAE,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YAClE,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG;gBAC/F,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM;aACzJ,CAAC,CAAC;QAEL,CAAC;QACD,OAAO,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAE9C,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,SAA0B,EAAE,OAAoC,EAAE,iBAA4C,EAAE;QAE1I,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,cAAc,CAAC;QAC1D,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAU,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QACnK,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAChF,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC5E,kHAAkH;QAClH,MAAM,SAAS,GAAG,cAAc,CAAC,SAAS,IAAI,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,sBAAsB,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE;YACxK,GAAG,EAAE,EAAE,GAAG,EAAE,sBAAsB,CAAC,QAAQ,GAAG,0BAA0B,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,sBAAsB,CAAC,MAAM,GAAG,0BAA0B,CAAC,EAAE;SACzJ,CAAC,CAAC,OAAO,EAAE,CAAC;QACb,IAAI,WAAW,EAAE,CAAC;YAEhB,MAAM,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;YAChF,IAAI,KAAK,IAAI,CAAC;gBAAE,SAAS,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC;;gBAC1C,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAEnC,CAAC;QACD,MAAM,cAAc,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;QACzG,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,SAAS,EAAE,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aACvH,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7D,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC5D,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;YACzE,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,cAAc,CAAC,OAAO,CAAC;YAC5E,eAAe,CAAC,mBAAmB,CAAC,WAAW,EAAE,sBAAsB,CAAC,QAAQ,CAAC,EAAE,sBAAsB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;YAC3H,mBAAmB,CAAC,0BAA0B,CAAC,cAAc,EAAE,WAAW,EAAE,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC;SAC1G,CAAC,CAAC;QACH,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM,EAAE,CAAC;IAErI,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,SAA0B,EAAE,OAAoC,EAAE,WAA2B,EAAE,QAA8B,EAAE,IAAe;QAElK,IAAI,CAAC,SAAS,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QACpF,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,KAAK,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEjG,CAAC;IAEO,iBAAiB,CAAC,SAAwB,EAAE,OAAoC,EAAE,QAAwB;QAEhH,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,QAAQ,EAAE,WAAW,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QACrK,6GAA6G;QAC7G,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACzG,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACpG,2GAA2G;QAC3G,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,sBAAsB,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE;YAC9F,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,sBAAsB,CAAC,MAAM,GAAG,0BAA0B,CAAC,EAAE;SAC9H,CAAC,CAAC,OAAO,EAAE,CAAC;IAEf,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,SAAwB,EAAE,OAAoC,EAAE,QAAwB;QAErH,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM;YAAE,OAAO;QAC3E,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC7E,gHAAgH;QAChH,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC3C,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC5D,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;QAClD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;QACvJ,MAAM,UAAU,GAAG,qBAAqB,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;QAClG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,iBAAiB,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YAE5H,MAAM,IAAI,cAAc,CAAC,wCAAwC,CAAC,CAAC;QAErE,CAAC;QACD,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YAEtB,MAAM,IAAI,cAAc,CAAC,+BAA+B,EAAE,CAAC;oBACzD,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,iBAAiB,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE;oBAC7G,OAAO,EAAE,uDAAuD;iBACjE,CAAC,CAAC,CAAC;QAEN,CAAC;IAEH,CAAC;CAEF;AAED,eAAe,IAAI,aAAa,EAAE,CAAC"}
|