@devx-commerce/plugin-gati 0.0.31-beta.1 → 0.0.31-beta.11

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 (25) hide show
  1. package/.medusa/server/src/api/erp/webhook/config.js +5 -2
  2. package/.medusa/server/src/jobs/process-variant-option-sync.js +400 -307
  3. package/.medusa/server/src/modules/erp/service.js +24 -1
  4. package/.medusa/server/src/modules/extended-product/migrations/Migration20251119062526.js +16 -0
  5. package/.medusa/server/src/modules/extended-product/models/extended-product.js +87 -9
  6. package/.medusa/server/src/modules/extended-variant/migrations/Migration20251119063328.js +20 -0
  7. package/.medusa/server/src/modules/extended-variant/migrations/Migration20251120045708.js +14 -0
  8. package/.medusa/server/src/modules/extended-variant/migrations/Migration20251120051832.js +14 -0
  9. package/.medusa/server/src/modules/extended-variant/migrations/Migration20251120052514.js +14 -0
  10. package/.medusa/server/src/modules/extended-variant/models/extended-variant.js +144 -12
  11. package/.medusa/server/src/modules/variant-option-sync-queue/service.js +40 -1
  12. package/.medusa/server/src/subscribers/cutomer-updated.js +107 -0
  13. package/.medusa/server/src/subscribers/party-master.js +8 -5
  14. package/.medusa/server/src/workflows/helpers/product-helper.js +339 -92
  15. package/.medusa/server/src/workflows/helpers/update-variant-option-metadata.js +105 -0
  16. package/.medusa/server/src/workflows/inward-master/helper/index.js +88 -39
  17. package/.medusa/server/src/workflows/party-master/steps/delete-party.js +4 -3
  18. package/.medusa/server/src/workflows/party-master/steps/fetch-party-master.js +2 -2
  19. package/.medusa/server/src/workflows/party-master/workflows/create-or-update-party-master.js +1 -49
  20. package/.medusa/server/src/workflows/party-master/workflows/delete-party-master.js +60 -0
  21. package/.medusa/server/src/workflows/party-master/workflows/index.js +2 -1
  22. package/.medusa/server/src/workflows/party-style-master/steps/update-product-options-after-deletion.js +307 -189
  23. package/.medusa/server/src/workflows/party-style-master/steps/update-product-options-after-variant-update.js +367 -0
  24. package/.medusa/server/src/workflows/party-style-master/workflows/create-or-update-party-style-master.js +37 -8
  25. package/package.json +1 -1
@@ -1,7 +1,31 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.mergeProductOptions = exports.createProductOptionsForPartyStyleId = exports.createProductOptionsStepFromData = exports.getPartyStyleExplorationLines = exports.getPartyStyleDetailLines = exports.getStyleCollectionLines = exports.getStyleExplorationLines = exports.getStyleDetailLines = exports.getExtendedVariantData = exports.getExtendedProductData = exports.getBaseMetalDetails = exports.calculateStyleCostsAndAmounts = exports.toKebabCase = void 0;
3
+ exports.mergeProductOptions = exports.createProductOptionsForPartyStyleId = exports.createProductOptionsStepFromData = exports.getPartyStyleExplorationLines = exports.getPartyStyleDetailLines = exports.getStyleCollectionLines = exports.getStyleExplorationLines = exports.getStyleDetailLines = exports.getExtendedVariantData = exports.getExtendedProductData = exports.getBaseMetalDetails = exports.calculateStyleCostsAndAmounts = exports.toKebabCase = exports.calculateDiamondDiscount = void 0;
4
4
  const common_1 = require("../types/common");
5
+ /**
6
+ * Calculate diamond discount value and type based on dis_markup_on flag
7
+ * If dis_markup_on is false -> use dis_markup_per (percentage) -> type "percentage"
8
+ * If dis_markup_on is true -> use dis_markup_amt (fixed amount in rupees) -> type "rupees"
9
+ */
10
+ const calculateDiamondDiscount = (styleDetails) => {
11
+ const diamondDetails = styleDetails.find((detail) => detail.RawType === "Diamond");
12
+ let totalValue = 0;
13
+ let type = "rupees"; // Default to rupees
14
+ if (diamondDetails) {
15
+ if (diamondDetails.DisMarkupOn === false) {
16
+ // Use percentage-based discount
17
+ totalValue += diamondDetails.DisMarkupPer ?? 0;
18
+ type = "percentage";
19
+ }
20
+ else if (diamondDetails.DisMarkupOn === true) {
21
+ // Use fixed amount discount (rupees)
22
+ totalValue += diamondDetails.DisMarkupAmt ?? 0;
23
+ type = "rupees";
24
+ }
25
+ }
26
+ return { value: totalValue, type };
27
+ };
28
+ exports.calculateDiamondDiscount = calculateDiamondDiscount;
5
29
  const toKebabCase = (strings) => {
6
30
  return strings
7
31
  .filter(Boolean)
@@ -37,6 +61,20 @@ const calculateStyleCostsAndAmounts = (styleDetails) => {
37
61
  const cpfTotalAmount = styleDetails
38
62
  .filter((detail) => detail.RawType === "Metal")
39
63
  .reduce((acc, detail) => acc + detail.CPFAmt, 0);
64
+ // Calculate actual total amounts
65
+ const actualMetalTotalAmount = styleDetails
66
+ .filter((detail) => detail.RawType === "Metal")
67
+ .reduce((acc, detail) => acc + (detail.ActualAmount ?? 0), 0);
68
+ const actualDiamondTotalAmount = styleDetails
69
+ .filter((detail) => detail.RawType === "Diamond")
70
+ .reduce((acc, detail) => acc + (detail.ActualAmount ?? 0), 0);
71
+ const actualStoneTotalAmount = styleDetails
72
+ .filter((detail) => detail.RawType === "Stone" || detail.RawType === "Stone(Color Stone)")
73
+ .reduce((acc, detail) => acc + (detail.ActualAmount ?? 0), 0);
74
+ const actualCpfTotalAmount = styleDetails
75
+ .filter((detail) => detail.RawType === "Metal")
76
+ .reduce((acc, detail) => acc + (detail.OriginalCPFAmt ?? 0), 0);
77
+ const actualTotalAmount = actualMetalTotalAmount + actualDiamondTotalAmount + actualStoneTotalAmount + actualCpfTotalAmount;
40
78
  return {
41
79
  metal_total_cost: metalTotalCost,
42
80
  diamond_total_cost: diamondTotalCost,
@@ -46,6 +84,11 @@ const calculateStyleCostsAndAmounts = (styleDetails) => {
46
84
  diamond_total_amount: diamondTotalAmount,
47
85
  stone_total_amount: stoneTotalAmount,
48
86
  cpf_total_amount: cpfTotalAmount,
87
+ actual_metal_total_amount: actualMetalTotalAmount,
88
+ actual_diamond_total_amount: actualDiamondTotalAmount,
89
+ actual_stone_total_amount: actualStoneTotalAmount,
90
+ actual_cpf_total_amount: actualCpfTotalAmount,
91
+ actual_total_amount: actualTotalAmount,
49
92
  };
50
93
  };
51
94
  exports.calculateStyleCostsAndAmounts = calculateStyleCostsAndAmounts;
@@ -127,6 +170,48 @@ const getExtendedProductData = (styleData, baseMetalDetails, styleCalculations)
127
170
  diamond_total_amount: styleCalculations.diamond_total_amount,
128
171
  stone_total_amount: styleCalculations.stone_total_amount,
129
172
  cpf_total_amount: styleCalculations.cpf_total_amount,
173
+ actual_metal_total_amount: styleCalculations.actual_metal_total_amount,
174
+ actual_diamond_total_amount: styleCalculations.actual_diamond_total_amount,
175
+ actual_stone_total_amount: styleCalculations.actual_stone_total_amount,
176
+ actual_cpf_total_amount: styleCalculations.actual_cpf_total_amount,
177
+ actual_total_amount: styleCalculations.actual_total_amount,
178
+ diamond_dis_markup_value: (0, exports.calculateDiamondDiscount)(styleData.StyleMstDetail).value,
179
+ diamond_dis_markup_type: (0, exports.calculateDiamondDiscount)(styleData.StyleMstDetail).type,
180
+ discount_markup_cost: styleData.DiscountMarkupCost || "",
181
+ making_cost_on: styleData.MakingCostOn || "",
182
+ metal_calculation_cost_on: styleData.MetalCalculationCostOn || "",
183
+ gold_loss_cost_formula: styleData.GoldLossCostFormula || "",
184
+ labour_cost_formula: styleData.LabourCostFormula || "",
185
+ cost_margin_per: styleData.CostMarginPer ?? undefined,
186
+ cost_margin_is_fix: styleData.CostMarginIsFix ?? undefined,
187
+ actual_cost_margin_amt: styleData.ActualCostMarginAmt ?? undefined,
188
+ cost_margin_amt: styleData.CostMarginAmt ?? undefined,
189
+ cost_discount_per: styleData.CostDiscountPer ?? undefined,
190
+ cost_discount_is_fix: styleData.CostDiscountIsFix ?? undefined,
191
+ actual_cost_discount_amt: styleData.ActualCostDiscountAmt ?? undefined,
192
+ cost_discount_amt: styleData.CostDiscountAmt ?? undefined,
193
+ actual_cost: styleData.ActualCost ?? undefined,
194
+ making_on: styleData.MakingOn || "",
195
+ metal_calculation_on: styleData.MetalCalculationOn || "",
196
+ gold_loss_formula: styleData.GoldLossFormula || "",
197
+ labour_formula: styleData.LabourFormula || "",
198
+ margin_per: styleData.MarginPer ?? undefined,
199
+ margin_is_fix: styleData.MarginIsFix ?? undefined,
200
+ actual_margin_amt: styleData.ActualMarginAmt ?? undefined,
201
+ margin_amt: styleData.MarginAmt ?? undefined,
202
+ discount_per: styleData.DiscountPer ?? undefined,
203
+ discount_is_fix: styleData.DiscountIsFix ?? undefined,
204
+ actual_discount_amt: styleData.ActualDiscountAmt ?? undefined,
205
+ discount_amt: styleData.DiscountAmt ?? undefined,
206
+ actual_mrp: styleData.ActualMRP ?? undefined,
207
+ stamping_instruction: styleData.StampingInstruction || "",
208
+ design_production_instruction: styleData.DesignProductionInstruction || "",
209
+ customer_production_instruction: styleData.CustomerProductionInstruction || "",
210
+ design_by: styleData.DesignBy || "",
211
+ re_order_qty: styleData.ReOrderQty ?? undefined,
212
+ master_qty: styleData.MasterQty ?? undefined,
213
+ hsn_id: styleData.HSNId?.toString() ?? undefined,
214
+ style_history: styleData.StyleHistory || "",
130
215
  };
131
216
  };
132
217
  exports.getExtendedProductData = getExtendedProductData;
@@ -173,8 +258,42 @@ const getExtendedVariantData = (styleData, baseMetalDetails, styleCalculations,
173
258
  currency: styleData.Currency || "INR",
174
259
  rate_chart: styleData.RateChart || "",
175
260
  discount_markup: styleData.DiscountMarkup || "",
261
+ discount_markup_cost: styleData.DiscountMarkupCost || "",
262
+ making_cost_on: styleData.MakingCostOn || "",
263
+ metal_calculation_cost_on: styleData.MetalCalculationCostOn || "",
264
+ gold_loss_cost_formula: styleData.GoldLossCostFormula || "",
265
+ labour_cost_formula: styleData.LabourCostFormula || "",
266
+ cost_margin_per: styleData.CostMarginPer ?? undefined,
267
+ cost_margin_is_fix: styleData.CostMarginIsFix ?? undefined,
268
+ actual_cost_margin_amt: styleData.ActualCostMarginAmt ?? undefined,
269
+ cost_margin_amt: styleData.CostMarginAmt ?? undefined,
270
+ cost_discount_per: styleData.CostDiscountPer ?? undefined,
271
+ cost_discount_is_fix: styleData.CostDiscountIsFix ?? undefined,
272
+ actual_cost_discount_amt: styleData.ActualCostDiscountAmt ?? undefined,
273
+ cost_discount_amt: styleData.CostDiscountAmt ?? undefined,
274
+ actual_cost: styleData.ActualCost ?? undefined,
176
275
  cost: styleData.Cost || 0,
276
+ making_on: styleData.MakingOn || "",
277
+ metal_calculation_on: styleData.MetalCalculationOn || "",
278
+ gold_loss_formula: styleData.GoldLossFormula || "",
279
+ labour_formula: styleData.LabourFormula || "",
280
+ margin_per: styleData.MarginPer ?? undefined,
281
+ margin_is_fix: styleData.MarginIsFix ?? undefined,
282
+ actual_margin_amt: styleData.ActualMarginAmt ?? undefined,
283
+ margin_amt: styleData.MarginAmt ?? undefined,
284
+ discount_per: styleData.DiscountPer ?? undefined,
285
+ discount_is_fix: styleData.DiscountIsFix ?? undefined,
286
+ actual_discount_amt: styleData.ActualDiscountAmt ?? undefined,
287
+ discount_amt: styleData.DiscountAmt ?? undefined,
288
+ actual_mrp: styleData.ActualMRP ?? undefined,
177
289
  mrp: styleData.Mrp || 0,
290
+ stamping_instruction: styleData.StampingInstruction || "",
291
+ design_production_instruction: styleData.DesignProductionInstruction || "",
292
+ customer_production_instruction: styleData.CustomerProductionInstruction || "",
293
+ design_by: styleData.DesignBy || "",
294
+ master_qty: styleData.MasterQty || undefined,
295
+ hsn_id: styleData.HSNId?.toString() || undefined,
296
+ style_history: styleData.StyleHistory || "",
178
297
  hsn_code: styleData.HSN || "",
179
298
  gross_weight: styleData.GrossWt || 0,
180
299
  net_weight: styleData.NetWt || 0,
@@ -203,6 +322,13 @@ const getExtendedVariantData = (styleData, baseMetalDetails, styleCalculations,
203
322
  diamond_total_amount: styleCalculations.diamond_total_amount,
204
323
  stone_total_amount: styleCalculations.stone_total_amount,
205
324
  cpf_total_amount: styleCalculations.cpf_total_amount,
325
+ actual_metal_total_amount: styleCalculations.actual_metal_total_amount,
326
+ actual_diamond_total_amount: styleCalculations.actual_diamond_total_amount,
327
+ actual_stone_total_amount: styleCalculations.actual_stone_total_amount,
328
+ actual_cpf_total_amount: styleCalculations.actual_cpf_total_amount,
329
+ actual_total_amount: styleCalculations.actual_total_amount,
330
+ diamond_dis_markup_value: (0, exports.calculateDiamondDiscount)(styleData.PartyStyleMstDetail).value,
331
+ diamond_dis_markup_type: (0, exports.calculateDiamondDiscount)(styleData.PartyStyleMstDetail).type,
206
332
  sales_channels: [salesChannelId],
207
333
  is_default: false,
208
334
  };
@@ -210,6 +336,7 @@ const getExtendedVariantData = (styleData, baseMetalDetails, styleCalculations,
210
336
  exports.getExtendedVariantData = getExtendedVariantData;
211
337
  const getStyleDetailLines = (data) => {
212
338
  return data.map((detail) => {
339
+ console.log(detail);
213
340
  return {
214
341
  style_id: detail.StyleId,
215
342
  style_mst_detail_id: detail.StyleMstDetailId,
@@ -245,32 +372,74 @@ const getStyleDetailLines = (data) => {
245
372
  stone_wt: detail.StoneWt || 0,
246
373
  default_wt: detail.DefaultWt || 0,
247
374
  raw_formula: detail.RawFormula || "",
248
- cost_rate: detail.CostRate || 0,
249
- cost_amount: detail.CostAmount || 0,
250
- hand_cost_rate: detail.HandCostRate || 0,
251
- hand_cost_amount: detail.HandCostAmount || 0,
252
- set_cost_rate: detail.SetCostRate || 0,
253
- set_cost_amount: detail.SetCostAmount || 0,
254
- loss_cost_per: detail.LossCostPer || 0,
255
- loss_cost_per_is_fix: detail.LossCostPerIsFix || false,
256
- loss_cost_weight: detail.LossCostWeight || 0,
257
- loss_cost_amt: detail.LossCostAmt || 0,
258
- cpf_cost_rate: detail.CPFCostRate || 0,
259
- cpf_cost_is_fix: detail.CPFCostIsFix || false,
260
- cpf_cost_amt: detail.CPFCostAmt || 0,
261
- rate: detail.Rate || 0,
262
- amount: detail.Amount || 0,
263
- hand_rate: detail.HandRate || 0,
264
- hand_amount: detail.HandAmount || 0,
265
- set_rate: detail.SetRate || 0,
266
- set_amount: detail.SetAmount || 0,
267
- loss_per: detail.LossPer || 0,
268
- loss_per_is_fix: detail.LossPerIsFix || false,
269
- loss_weight: detail.LossWeight || 0,
270
- loss_amt: detail.LossAmt || 0,
271
- cpf_rate: detail.CPFRate || 0,
272
- cpf_is_fix: detail.CPFIsFix || false,
273
- cpf_amt: detail.CPFAmt || 0,
375
+ original_cost_rate: detail.OriginalCostRate ?? null,
376
+ actual_cost_amount: detail.ActualCostAmount ?? null,
377
+ dis_markup_cost_per: detail.DisMarkupCostPer ?? null,
378
+ dis_markup_cost_on: detail.DisMarkupCostOn ?? null,
379
+ cost_rate: detail.CostRate ?? 0,
380
+ cost_amount: detail.CostAmount ?? 0,
381
+ dis_markup_cost_amt: detail.DisMarkupCostAmt ?? null,
382
+ final_cost_amt: detail.FinalCostAmt ?? null,
383
+ original_hand_cost_rate: detail.OriginalHandCostRate ?? null,
384
+ actual_hand_cost_amount: detail.ActualHandCostAmount ?? null,
385
+ hand_dis_markup_cost_per: detail.HandDisMarkupCostPer ?? null,
386
+ hand_dis_markup_cost_on: detail.HandDisMarkupCostOn ?? null,
387
+ hand_cost_rate: detail.HandCostRate ?? 0,
388
+ hand_cost_amount: detail.HandCostAmount ?? 0,
389
+ original_set_cost_rate: detail.OriginalSetCostRate ?? null,
390
+ actual_set_cost_amount: detail.ActualSetCostAmount ?? null,
391
+ set_dis_markup_cost_per: detail.SetDisMarkupCostPer ?? null,
392
+ set_dis_markup_cost_on: detail.SetDisMarkupCostOn ?? null,
393
+ set_cost_rate: detail.SetCostRate ?? 0,
394
+ set_cost_amount: detail.SetCostAmount ?? 0,
395
+ loss_cost_per: detail.LossCostPer ?? 0,
396
+ loss_cost_per_is_fix: detail.LossCostPerIsFix ?? false,
397
+ loss_cost_weight: detail.LossCostWeight ?? 0,
398
+ actual_loss_cost_amt: detail.ActualLossCostAmt ?? null,
399
+ metal_loss_per_calc_cost_on: detail.MetalLossCostCalcOn ?? null,
400
+ loss_cost_amt: detail.LossCostAmt ?? 0,
401
+ original_cpf_cost_rate: detail.OriginalCPFCostRate ?? null,
402
+ actual_cpf_cost_amt: detail.ActualCPFCostAmt ?? null,
403
+ cpf_dis_markup_cost_per: detail.CPFDisMarkupCostPer ?? null,
404
+ cpf_cost_rate: detail.CPFCostRate ?? 0,
405
+ cpf_cost_is_fix: detail.CPFCostIsFix ?? false,
406
+ original_cpf_cost_amt: detail.OriginalCPFCostAmt ?? null,
407
+ cpf_amt_dis_markup_cost_per: detail.CPFAmtDisMarkupCostPer ?? null,
408
+ cpf_cost_amt: detail.CPFCostAmt ?? 0,
409
+ original_rate: detail.OriginalRate ?? null,
410
+ actual_amount: detail.ActualAmount ?? null,
411
+ dis_markup_on: detail.DisMarkupOn ?? null,
412
+ dis_markup_per: detail.DisMarkupPer ?? null,
413
+ rate: detail.Rate ?? 0,
414
+ amount: detail.Amount ?? 0,
415
+ dis_markup_amt: detail.DisMarkupAmt ?? null,
416
+ final_amt: detail.FinalAmt ?? null,
417
+ original_hand_rate: detail.OriginalHandRate ?? null,
418
+ actual_hand_amount: detail.ActualHandAmount ?? null,
419
+ hand_dis_markup_per: detail.HandDisMarkupPer ?? null,
420
+ hand_dis_markup_on: detail.HandDisMarkupOn ?? null,
421
+ hand_rate: detail.HandRate ?? 0,
422
+ hand_amount: detail.HandAmount ?? 0,
423
+ original_set_rate: detail.OriginalSetRate ?? null,
424
+ actual_set_amount: detail.ActualSetAmount ?? null,
425
+ set_dis_markup_per: detail.SetDisMarkupPer ?? null,
426
+ set_dis_markup_on: detail.SetDisMarkupOn ?? null,
427
+ set_rate: detail.SetRate ?? 0,
428
+ set_amount: detail.SetAmount ?? 0,
429
+ loss_per: detail.LossPer ?? 0,
430
+ loss_per_is_fix: detail.LossPerIsFix ?? false,
431
+ loss_weight: detail.LossWeight ?? 0,
432
+ actual_loss_amt: detail.ActualLossAmt ?? null,
433
+ metal_loss_per_calc_on: detail.MetalLossCalcOn ?? null,
434
+ loss_amt: detail.LossAmt ?? 0,
435
+ original_cpf_rate: detail.OriginalCPFRate ?? null,
436
+ actual_cpf_amt: detail.ActualCPFAmt ?? null,
437
+ cpf_dis_markup_per: detail.CPFDisMarkupPer ?? null,
438
+ cpf_rate: detail.CPFRate ?? 0,
439
+ cpf_is_fix: detail.CPFIsFix ?? false,
440
+ original_cpf_amt: detail.OriginalCPFAmt ?? null,
441
+ cpf_amt_dis_markup_per: detail.CPFAmtDisMarkupPer ?? null,
442
+ cpf_amt: detail.CPFAmt ?? 0,
274
443
  };
275
444
  });
276
445
  };
@@ -337,32 +506,74 @@ const getPartyStyleDetailLines = (data) => {
337
506
  stone_wt: detail.StoneWt || 0,
338
507
  default_wt: detail.DefaultWt || 0,
339
508
  raw_formula: detail.RawFormula || "",
340
- cost_rate: detail.CostRate || 0,
341
- cost_amount: detail.CostAmount || 0,
342
- hand_cost_rate: detail.HandCostRate || 0,
343
- hand_cost_amount: detail.HandCostAmount || 0,
344
- set_cost_rate: detail.SetCostRate || 0,
345
- set_cost_amount: detail.SetCostAmount || 0,
346
- loss_cost_per: detail.LossCostPer || 0,
347
- loss_cost_per_is_fix: detail.LossCostPerIsFix || false,
348
- loss_cost_weight: detail.LossCostWeight || 0,
349
- loss_cost_amt: detail.LossCostAmt || 0,
350
- cpf_cost_rate: detail.CPFCostRate || 0,
351
- cpf_cost_is_fix: detail.CPFCostIsFix || false,
352
- cpf_cost_amt: detail.CPFCostAmt || 0,
353
- rate: detail.Rate || 0,
354
- amount: detail.Amount || 0,
355
- hand_rate: detail.HandRate || 0,
356
- hand_amount: detail.HandAmount || 0,
357
- set_rate: detail.SetRate || 0,
358
- set_amount: detail.SetAmount || 0,
359
- loss_per: detail.LossPer || 0,
360
- loss_per_is_fix: detail.LossPerIsFix || false,
361
- loss_weight: detail.LossWeight || 0,
362
- loss_amt: detail.LossAmt || 0,
363
- cpf_rate: detail.CPFRate || 0,
364
- cpf_is_fix: detail.CPFIsFix || false,
365
- cpf_amt: detail.CPFAmt || 0,
509
+ original_cost_rate: detail.OriginalCostRate ?? null,
510
+ actual_cost_amount: detail.ActualCostAmount ?? null,
511
+ dis_markup_cost_per: detail.DisMarkupCostPer ?? null,
512
+ dis_markup_cost_on: detail.DisMarkupCostOn ?? null,
513
+ cost_rate: detail.CostRate ?? 0,
514
+ cost_amount: detail.CostAmount ?? 0,
515
+ dis_markup_cost_amt: detail.DisMarkupCostAmt ?? null,
516
+ final_cost_amt: detail.FinalCostAmt ?? null,
517
+ original_hand_cost_rate: detail.OriginalHandCostRate ?? null,
518
+ actual_hand_cost_amount: detail.ActualHandCostAmount ?? null,
519
+ hand_dis_markup_cost_per: detail.HandDisMarkupCostPer ?? null,
520
+ hand_dis_markup_cost_on: detail.HandDisMarkupCostOn ?? null,
521
+ hand_cost_rate: detail.HandCostRate ?? 0,
522
+ hand_cost_amount: detail.HandCostAmount ?? 0,
523
+ original_set_cost_rate: detail.OriginalSetCostRate ?? null,
524
+ actual_set_cost_amount: detail.ActualSetCostAmount ?? null,
525
+ set_dis_markup_cost_per: detail.SetDisMarkupCostPer ?? null,
526
+ set_dis_markup_cost_on: detail.SetDisMarkupCostOn ?? null,
527
+ set_cost_rate: detail.SetCostRate ?? 0,
528
+ set_cost_amount: detail.SetCostAmount ?? 0,
529
+ loss_cost_per: detail.LossCostPer ?? 0,
530
+ loss_cost_per_is_fix: detail.LossCostPerIsFix ?? false,
531
+ loss_cost_weight: detail.LossCostWeight ?? 0,
532
+ actual_loss_cost_amt: detail.ActualLossCostAmt ?? null,
533
+ metal_loss_per_calc_cost_on: detail.MetalLossCostCalcOn ?? null,
534
+ loss_cost_amt: detail.LossCostAmt ?? 0,
535
+ original_cpf_cost_rate: detail.OriginalCPFCostRate ?? null,
536
+ actual_cpf_cost_amt: detail.ActualCPFCostAmt ?? null,
537
+ cpf_dis_markup_cost_per: detail.CPFDisMarkupCostPer ?? null,
538
+ cpf_cost_rate: detail.CPFCostRate ?? 0,
539
+ cpf_cost_is_fix: detail.CPFCostIsFix ?? false,
540
+ original_cpf_cost_amt: detail.OriginalCPFCostAmt ?? null,
541
+ cpf_amt_dis_markup_cost_per: detail.CPFAmtDisMarkupCostPer ?? null,
542
+ cpf_cost_amt: detail.CPFCostAmt ?? 0,
543
+ original_rate: detail.OriginalRate ?? null,
544
+ actual_amount: detail.ActualAmount ?? null,
545
+ dis_markup_on: detail.DisMarkupOn ?? null,
546
+ dis_markup_per: detail.DisMarkupPer ?? null,
547
+ rate: detail.Rate ?? 0,
548
+ amount: detail.Amount ?? 0,
549
+ dis_markup_amt: detail.DisMarkupAmt ?? null,
550
+ final_amt: detail.FinalAmt ?? null,
551
+ original_hand_rate: detail.OriginalHandRate ?? null,
552
+ actual_hand_amount: detail.ActualHandAmount ?? null,
553
+ hand_dis_markup_per: detail.HandDisMarkupPer ?? null,
554
+ hand_dis_markup_on: detail.HandDisMarkupOn ?? null,
555
+ hand_rate: detail.HandRate ?? 0,
556
+ hand_amount: detail.HandAmount ?? 0,
557
+ original_set_rate: detail.OriginalSetRate ?? null,
558
+ actual_set_amount: detail.ActualSetAmount ?? null,
559
+ set_dis_markup_per: detail.SetDisMarkupPer ?? null,
560
+ set_dis_markup_on: detail.SetDisMarkupOn ?? null,
561
+ set_rate: detail.SetRate ?? 0,
562
+ set_amount: detail.SetAmount ?? 0,
563
+ loss_per: detail.LossPer ?? 0,
564
+ loss_per_is_fix: detail.LossPerIsFix ?? false,
565
+ loss_weight: detail.LossWeight ?? 0,
566
+ actual_loss_amt: detail.ActualLossAmt ?? null,
567
+ metal_loss_per_calc_on: detail.MetalLossCalcOn ?? null,
568
+ loss_amt: detail.LossAmt ?? 0,
569
+ original_cpf_rate: detail.OriginalCPFRate ?? null,
570
+ actual_cpf_amt: detail.ActualCPFAmt ?? null,
571
+ cpf_dis_markup_per: detail.CPFDisMarkupPer ?? null,
572
+ cpf_rate: detail.CPFRate ?? 0,
573
+ cpf_is_fix: detail.CPFIsFix ?? false,
574
+ original_cpf_amt: detail.OriginalCPFAmt ?? null,
575
+ cpf_amt_dis_markup_per: detail.CPFAmtDisMarkupPer ?? null,
576
+ cpf_amt: detail.CPFAmt ?? 0,
366
577
  };
367
578
  });
368
579
  };
@@ -398,6 +609,7 @@ const createProductOptionsStepFromData = async (partyStyles, { rawMasterMap, qua
398
609
  diamondQualities: new Set(),
399
610
  sizes: new Set(),
400
611
  shapes: new Set(),
612
+ carat: new Set(),
401
613
  };
402
614
  // Track if all styles in the group have each option type
403
615
  const optionAvailability = {
@@ -445,6 +657,7 @@ const createProductOptionsStepFromData = async (partyStyles, { rawMasterMap, qua
445
657
  if (optionAvailability.sizes && style.ItemSize) {
446
658
  options.sizes.add(itemSizeMasterMap.get(style.ItemSize) || String(style.ItemSize));
447
659
  }
660
+ const isSolitaireStyle = style.StockType === "LG SOLITAIRE" || style.StockType === "SOLITAIRE";
448
661
  // Process other options
449
662
  style.PartyStyleMstDetail.forEach((detail) => {
450
663
  if (optionAvailability.metals &&
@@ -484,13 +697,15 @@ const createProductOptionsStepFromData = async (partyStyles, { rawMasterMap, qua
484
697
  options.diamondQualities.add(`${toneMasterMap.get(detail.ToneCode)} ${qualityMasterMap.get(detail.QlyCode)}`);
485
698
  }
486
699
  if (optionAvailability.shapes &&
700
+ isSolitaireStyle &&
487
701
  detail.RawType === "Diamond" &&
488
- detail.IsBase &&
489
- detail.ShapeCode) {
702
+ detail.RawCode === "LGS" &&
703
+ detail.IsBase) {
490
704
  const shapeTitle = shapeMasterMap.get(detail.ShapeCode) || detail.ShapeCode;
491
705
  if (shapeTitle) {
492
706
  options.shapes.add(shapeTitle);
493
707
  }
708
+ options.carat.add(String(detail.Weight || 0));
494
709
  }
495
710
  });
496
711
  });
@@ -517,9 +732,20 @@ const createProductOptionsStepFromData = async (partyStyles, { rawMasterMap, qua
517
732
  if (optionAvailability.shapes && options.shapes.size > 0) {
518
733
  optionsArray.push({ title: "Shape", values: Array.from(options.shapes) });
519
734
  }
735
+ // Add Carat only for solitaire groups when we collected values
736
+ if (options.carat.size > 0) {
737
+ optionsArray.push({ title: "Carat", values: Array.from(options.carat) });
738
+ }
739
+ // Sort values alphabetically within each option and sort option titles
740
+ const sortedOptions = optionsArray
741
+ .map((opt) => ({
742
+ title: opt.title,
743
+ values: opt.values.slice().sort((a, b) => a.localeCompare(b)),
744
+ }))
745
+ .sort((a, b) => a.title.localeCompare(b.title));
520
746
  return {
521
747
  styleId,
522
- options: optionsArray,
748
+ options: sortedOptions,
523
749
  };
524
750
  });
525
751
  };
@@ -531,6 +757,7 @@ const createProductOptionsForPartyStyleId = (partyStyle, existingProduct, master
531
757
  diamondQualities: new Set(),
532
758
  sizes: new Set(),
533
759
  shapes: new Set(),
760
+ carat: new Set(),
534
761
  };
535
762
  // Size
536
763
  if (partyStyle.ItemSize) {
@@ -542,6 +769,8 @@ const createProductOptionsForPartyStyleId = (partyStyle, existingProduct, master
542
769
  let hasMetalOption = false;
543
770
  let hasDiamondOption = false;
544
771
  let hasShapeOption = false;
772
+ // Detect solitaire for this party style
773
+ const isSolitaireStyle = partyStyle.StockType === "LG SOLITAIRE" || partyStyle.StockType === "SOLITAIRE";
545
774
  partyStyle.PartyStyleMstDetail.forEach((detail) => {
546
775
  if (detail.RawType === "Metal" && detail.IsBase) {
547
776
  hasMetalOption = true;
@@ -580,13 +809,17 @@ const createProductOptionsForPartyStyleId = (partyStyle, existingProduct, master
580
809
  const qualityTitle = masterMaps.qualityMasterMap.get(detail.QlyCode) || detail.QlyCode;
581
810
  options.diamondQualities.add(`${toneTitle} ${qualityTitle}`);
582
811
  }
583
- if (detail.RawType === "Diamond" && detail.IsBase) {
812
+ // Handle solitaire shapes and carat
813
+ if (isSolitaireStyle &&
814
+ detail.RawType === "Diamond" &&
815
+ detail.RawCode === "LGS" &&
816
+ detail.IsBase) {
584
817
  hasShapeOption = true;
585
- const mappedShape = masterMaps.shapeMasterMap?.get(detail.ShapeCode);
586
- const shapeValue = mappedShape || String(detail.ShapeCode || "");
587
- if (shapeValue) {
588
- options.shapes.add(shapeValue);
818
+ const shapeTitle = masterMaps.shapeMasterMap?.get(detail.ShapeCode) || detail.ShapeCode;
819
+ if (shapeTitle) {
820
+ options.shapes.add(shapeTitle);
589
821
  }
822
+ options.carat.add(String(detail.Weight || 0));
590
823
  }
591
824
  });
592
825
  // Prepare result object with only options that exist
@@ -595,58 +828,72 @@ const createProductOptionsForPartyStyleId = (partyStyle, existingProduct, master
595
828
  if (hasMetalOption &&
596
829
  options.metals.size > 0 &&
597
830
  existingProduct.options.find((option) => option.title === "Metal")) {
598
- result["Metal"] = Array.from(options.metals)[0];
831
+ result["Metal"] = Array.from(options.metals).sort((a, b) => a.localeCompare(b))[0];
599
832
  }
600
833
  if (hasMetalOption &&
601
834
  options.metalColors.size > 0 &&
602
835
  existingProduct.options.find((option) => option.title === "Metal Color")) {
603
- result["Metal Color"] = Array.from(options.metalColors)[0];
836
+ result["Metal Color"] = Array.from(options.metalColors).sort((a, b) => a.localeCompare(b))[0];
604
837
  }
605
838
  if (hasDiamondOption &&
606
839
  options.diamondQualities.size > 0 &&
607
840
  existingProduct.options.find((option) => option.title === "Diamond Quality")) {
608
- result["Diamond Quality"] = Array.from(options.diamondQualities)[0];
841
+ result["Diamond Quality"] = Array.from(options.diamondQualities).sort((a, b) => a.localeCompare(b))[0];
609
842
  }
610
843
  if (partyStyle.ItemSize &&
611
844
  options.sizes.size > 0 &&
612
845
  existingProduct.options.find((option) => option.title === "Size")) {
613
- result["Size"] = Array.from(options.sizes)[0];
846
+ result["Size"] = Array.from(options.sizes).sort((a, b) => a.localeCompare(b))[0];
614
847
  }
615
- if (hasShapeOption &&
848
+ if (isSolitaireStyle &&
849
+ hasShapeOption &&
616
850
  options.shapes.size > 0 &&
617
851
  existingProduct.options.find((option) => option.title === "Shape")) {
618
- result["Shape"] = Array.from(options.shapes)[0];
852
+ result["Shape"] = Array.from(options.shapes).sort((a, b) => a.localeCompare(b))[0];
853
+ }
854
+ // Add Carat only if solitaire and product has Carat option
855
+ if (isSolitaireStyle &&
856
+ options.carat.size > 0 &&
857
+ existingProduct.options.find((option) => option.title === "Carat")) {
858
+ result["Carat"] = Array.from(options.carat).sort((a, b) => a.localeCompare(b))[0];
859
+ }
860
+ // Sort result keys alphabetically for consistent ordering
861
+ const sortedResult = {};
862
+ const sortedKeys = Object.keys(result).sort((a, b) => a.localeCompare(b));
863
+ for (const key of sortedKeys) {
864
+ sortedResult[key] = result[key];
619
865
  }
620
- return result;
866
+ return sortedResult;
621
867
  };
622
868
  exports.createProductOptionsForPartyStyleId = createProductOptionsForPartyStyleId;
623
869
  const mergeProductOptions = (currentOptions, filteredOptions) => {
624
870
  const mergedOptions = [];
625
- // Authoritative titles from filteredOptions
626
- const filteredTitles = new Set(filteredOptions.map((o) => o.title));
627
- // 1) For titles present in filteredOptions, use ONLY filtered values
628
- for (const opt of filteredOptions) {
629
- const seen = new Set();
630
- const values = opt.values.filter((v) => {
631
- if (seen.has(v))
632
- return false;
633
- seen.add(v);
634
- return true;
635
- });
636
- mergedOptions.push({ title: opt.title, values });
871
+ // Create a map of existing options by title, excluding Default
872
+ const existingOptionsMap = new Map(currentOptions
873
+ .filter((opt) => opt.title !== "Default")
874
+ .map((opt) => [opt.title, opt.values.map((v) => v.value)]));
875
+ // Process all options (both existing and new)
876
+ const allOptions = new Map();
877
+ // Add existing options
878
+ for (const [title, values] of existingOptionsMap.entries()) {
879
+ allOptions.set(title, new Set(values));
637
880
  }
638
- // 2) Include existing titles not present in filteredOptions
639
- for (const opt of currentOptions) {
640
- if (opt.title === "Default")
641
- continue;
642
- if (filteredTitles.has(opt.title))
643
- continue;
644
- const values = Array.from(new Set(opt.values.map((v) => v.value)));
645
- if (values.length > 0) {
646
- mergedOptions.push({ title: opt.title, values });
647
- }
881
+ // Add new options and merge values
882
+ for (const filteredOpt of filteredOptions) {
883
+ const existingValues = allOptions.get(filteredOpt.title) || new Set();
884
+ // Add new values to the set
885
+ filteredOpt.values.forEach((value) => existingValues.add(value));
886
+ allOptions.set(filteredOpt.title, existingValues);
887
+ }
888
+ // Convert back to the required format with sorted values and sorted titles
889
+ for (const [title, values] of allOptions.entries()) {
890
+ mergedOptions.push({
891
+ title,
892
+ values: Array.from(values).sort((a, b) => a.localeCompare(b)),
893
+ });
648
894
  }
649
- return mergedOptions;
895
+ // Sort options by title alphabetically
896
+ return mergedOptions.sort((a, b) => a.title.localeCompare(b.title));
650
897
  };
651
898
  exports.mergeProductOptions = mergeProductOptions;
652
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2hlbHBlcnMvcHJvZHVjdC1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBZUEsNENBQStDO0FBRXhDLE1BQU0sV0FBVyxHQUFHLENBQUMsT0FBaUIsRUFBVSxFQUFFO0lBQ3ZELE9BQU8sT0FBTztTQUNYLE1BQU0sQ0FBQyxPQUFPLENBQUM7U0FDZixJQUFJLENBQUMsR0FBRyxDQUFDO1NBQ1QsV0FBVyxFQUFFO1NBQ2IsT0FBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyw4QkFBOEI7U0FDbkQsT0FBTyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUM7U0FDMUIsT0FBTyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUM1QixDQUFDLENBQUM7QUFSVyxRQUFBLFdBQVcsZUFRdEI7QUFFSyxNQUFNLDZCQUE2QixHQUFHLENBQzNDLFlBQTRELEVBQ3pDLEVBQUU7SUFDckIsTUFBTSxjQUFjLEdBQUcsWUFBWTtTQUNoQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEtBQUssT0FBTyxDQUFDO1NBQzlDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRXZELE1BQU0sZ0JBQWdCLEdBQUcsWUFBWTtTQUNsQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDO1NBQ2hELE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRXZELE1BQU0sY0FBYyxHQUFH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
899
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2hlbHBlcnMvcHJvZHVjdC1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBZUEsNENBQStDO0FBRS9DOzs7O0dBSUc7QUFDSSxNQUFNLHdCQUF3QixHQUFHLENBQ3RDLFlBQTRELEVBQzNCLEVBQUU7SUFDbkMsTUFBTSxjQUFjLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FDdEMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUN6QyxDQUFDO0lBRUYsSUFBSSxVQUFVLEdBQUcsQ0FBQyxDQUFDO0lBQ25CLElBQUksSUFBSSxHQUFHLFFBQVEsQ0FBQyxDQUFDLG9CQUFvQjtJQUV6QyxJQUFHLGNBQWMsRUFBQyxDQUFDO1FBQ2pCLElBQUksY0FBYyxDQUFDLFdBQVcsS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUN6QyxnQ0FBZ0M7WUFDaEMsVUFBVSxJQUFJLGNBQWMsQ0FBQyxZQUFZLElBQUksQ0FBQyxDQUFDO1lBQy9DLElBQUksR0FBRyxZQUFZLENBQUM7UUFDdEIsQ0FBQzthQUFNLElBQUksY0FBYyxDQUFDLFdBQVcsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUMvQyxxQ0FBcUM7WUFDckMsVUFBVSxJQUFJLGNBQWMsQ0FBQyxZQUFZLElBQUksQ0FBQyxDQUFDO1lBQy9DLElBQUksR0FBRyxRQUFRLENBQUM7UUFDbEIsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUNyQyxDQUFDLENBQUM7QUF2QlcsUUFBQSx3QkFBd0IsNEJBdUJuQztBQUVLLE1BQU0sV0FBVyxHQUFHLENBQUMsT0FBaUIsRUFBVSxFQUFFO0lBQ3ZELE9BQU8sT0FBTztTQUNYLE1BQU0sQ0FBQyxPQUFPLENBQUM7U0FDZixJQUFJLENBQUMsR0FBRyxDQUFDO1NBQ1QsV0FBVyxFQUFFO1NBQ2IsT0FBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyw4QkFBOEI7U0FDbkQsT0FBTyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUM7U0FDMUIsT0FBTyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUM1QixDQUFDLENBQUM7QUFSVyxRQUFBLFdBQVcsZUFRdEI7QUFFSyxNQUFNLDZCQUE2QixHQUFHLENBQzNDLFlBQTRELEVBQ3pDLEVBQUU7SUFDckIsTUFBTSxjQUFjLEdBQUcsWUFBWTtTQUNoQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEtBQUssT0FBTyxDQUFDO1NBQzlDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRXZELE1BQU0sZ0JBQWdCLEdBQUcsWUFBWTtTQUNsQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDO1NBQ2hELE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRXZELE1BQU0sY0FBYyxHQUFHLFlBQVk7U0FDaEMsTUFBTSxDQUNMLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FDVCxNQUFNLENBQUMsT0FBTyxLQUFLLE9BQU8sSUFBSSxNQUFNLENBQUMsT0FBTyxLQUFLLG9CQUFvQixDQUN4RTtTQUNBLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRXZELE1BQU0sWUFBWSxHQUFHLFlBQVk7U0FDOUIsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxLQUFLLE9BQU8sQ0FBQztTQUM5QyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUV2RCxNQUFNLGdCQUFnQixHQUFHLFlBQVk7U0FDbEMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxLQUFLLE9BQU8sQ0FBQztTQUM5QyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUVuRCxNQUFNLGtCQUFrQixHQUFHLFlBQVk7U0FDcEMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQztTQUNoRCxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUVuRCxNQUFNLGdCQUFnQixHQUFHLFlBQVk7U0FDbEMsTUFBTSxDQUNMLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FDVCxNQUFNLENBQUMsT0FBTyxLQUFLLE9BQU8sSUFBSSxNQUFNLENBQUMsT0FBTyxLQUFLLG9CQUFvQixDQUN4RTtTQUNBLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRW5ELE1BQU0sY0FBYyxHQUFHLFlBQVk7U0FDaEMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxLQUFLLE9BQU8sQ0FBQztTQUM5QyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUVuRCxpQ0FBaUM7SUFDakMsTUFBTSxzQkFBc0IsR0FBRyxZQUFZO1NBQ3hDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sS0FBSyxPQUFPLENBQUM7U0FDOUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLFlBQVksSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUVoRSxNQUFNLHdCQUF3QixHQUFHLFlBQVk7U0FDMUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQztTQUNoRCxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsWUFBWSxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRWhFLE1BQU0sc0JBQXNCLEdBQUcsWUFBWTtTQUN4QyxNQUFNLENBQ0wsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUNULE1BQU0sQ0FBQyxPQUFPLEtBQUssT0FBTyxJQUFJLE1BQU0sQ0FBQyxPQUFPLEtBQUssb0JBQW9CLENBQ3hFO1NBQ0EsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLFlBQVksSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUVoRSxNQUFNLG9CQUFvQixHQUFHLFlBQVk7U0FDdEMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxLQUFLLE9BQU8sQ0FBQztTQUM5QyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsY0FBYyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRWxFLE1BQU0saUJBQWlCLEdBQUcsc0JBQXNCLEdBQUcsd0JBQXdCLEdBQUcsc0JBQXNCLEdBQUcsb0JBQW9CLENBQUM7SUFFNUgsT0FBTztRQUNMLGdCQUFnQixFQUFFLGNBQWM7UUFDaEMsa0JBQWtCLEVBQUUsZ0JBQWdCO1FBQ3BDLGdCQUFnQixFQUFFLGNBQWM7UUFDaEMsY0FBYyxFQUFFLFlBQVk7UUFDNUIsa0JBQWtCLEVBQUUsZ0JBQWdCO1FBQ3BDLG9CQUFvQixFQUFFLGtCQUFrQjtRQUN4QyxrQkFBa0IsRUFBRSxnQkFBZ0I7UUFDcEMsZ0JBQWdCLEVBQUUsY0FBYztRQUNoQyx5QkFBeUIsRUFBRSxzQkFBc0I7UUFDakQsMkJBQTJCLEVBQUUsd0JBQXdCO1FBQ3JELHlCQUF5QixFQUFFLHNCQUFzQjtRQUNqRCx1QkFBdUIsRUFBRSxvQkFBb0I7UUFDN0MsbUJBQW1CLEVBQUUsaUJBQWlCO0tBQ3ZDLENBQUM7QUFDSixDQUFDLENBQUM7QUE5RVcsUUFBQSw2QkFBNkIsaUNBOEV4QztBQUVLLE1BQU0sbUJBQW1CLEdBQUcsQ0FDakMsWUFBNEQsRUFDNUQsRUFBRTtJQUNGLE1BQU0sZUFBZSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQ3ZDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxLQUFLLE9BQU8sSUFBSSxNQUFNLENBQUMsTUFBTSxDQUN4RCxDQUFDO0lBRUYsT0FBTztRQUNMLFNBQVMsRUFBRSxlQUFlLEVBQUUsT0FBTyxJQUFJLEVBQUU7UUFDekMsZUFBZSxFQUFFLGVBQWUsRUFBRSxPQUFPLElBQUksRUFBRTtRQUMvQyxjQUFjLEVBQUUsZUFBZSxFQUFFLFFBQVEsSUFBSSxFQUFFO0tBQ2hELENBQUM7QUFDSixDQUFDLENBQUM7QUFaVyxRQUFBLG1CQUFtQix1QkFZOUI7QUFFSyxNQUFNLHNCQUFzQixHQUFHLENBQ3BDLFNBQTBCLEVBQzFCLGdCQUlDLEVBQ0QsaUJBQW9DLEVBQ3ZCLEVBQUU7SUFDZixPQUFPO1FBQ0wsUUFBUSxFQUFFLFNBQVMsQ0FBQyxPQUFPO1FBQzNCLFVBQVUsRUFBRSxTQUFTLENBQUMsU0FBUztRQUMvQixVQUFVLEVBQUUsU0FBUyxDQUFDLFNBQVM7UUFDL0IsY0FBYyxFQUFFLFNBQVMsQ0FBQyxZQUFZO1FBQ3RDLGlCQUFpQixFQUFFLFNBQVMsQ0FBQyxlQUFlO1FBQzVDLFlBQVksRUFBRSxTQUFTLENBQUMsVUFBVTtRQUNsQyxtQkFBbUIsRUFBRSxTQUFTLENBQUMsaUJBQWlCO1FBQ2hELG1CQUFtQixFQUFFLFNBQVMsQ0FBQyxpQkFBaUI7UUFDaEQsTUFBTSxFQUFFLFNBQVMsQ0FBQyxLQUFLO1FBQ3ZCLFFBQVEsRUFBRSxTQUFTLENBQUMsUUFBUSxJQUFJLEVBQUU7UUFDbEMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxZQUFZO1FBQ3JDLFVBQVUsRUFBRSxTQUFTLENBQUMsUUFBUTtRQUM5QixZQUFZLEVBQUUsU0FBUyxDQUFDLFdBQVcsSUFBSSxFQUFFO1FBQ3pDLGlCQUFpQixFQUFFLFNBQVMsQ0FBQyxlQUFlO1FBQzVDLFlBQVksRUFBRSxTQUFTLENBQUMsWUFBWSxJQUFJLEVBQUU7UUFDMUMsZUFBZSxFQUFFLFNBQVMsQ0FBQyxjQUFjLElBQUksRUFBRTtRQUMvQyxZQUFZLEVBQUUsU0FBUyxDQUFDLFVBQVU7UUFDbEMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxRQUFRLElBQUksRUFBRTtRQUNuQyxjQUFjLEVBQUUsU0FBUyxDQUFDLFlBQVk7UUFDdEMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxXQUFXO1FBQ3BDLFVBQVUsRUFBRSxTQUFTLENBQUMsU0FBUyxJQUFJLEVBQUU7UUFDckMsZUFBZSxFQUFFLFNBQVMsQ0FBQyxhQUFhO1FBQ3hDLFlBQVksRUFBRSxTQUFTLENBQUMsVUFBVTtRQUNsQyxTQUFTLEVBQUUsU0FBUyxDQUFDLFFBQVEsSUFBSSxFQUFFO1FBQ25DLGNBQWMsRUFBRSxTQUFTLENBQUMsWUFBWTtRQUN0QyxRQUFRLEVBQUUsU0FBUyxDQUFDLE9BQU87UUFDM0IsS0FBSyxFQUFFLFNBQVMsQ0FBQyxLQUFLLElBQUksRUFBRTtRQUM1QixVQUFVLEVBQUUsU0FBUyxDQUFDLFNBQVM7UUFDL0IsU0FBUyxFQUFFLFNBQVMsQ0FBQyxRQUFRO1FBQzdCLE1BQU0sRUFBRSxJQUFBLHFCQUFZLEVBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztRQUN0QyxXQUFXLEVBQUUsU0FBUyxDQUFDLFVBQVU7UUFDakMsVUFBVSxFQUNSLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUMzQixDQUFDLE1BQXlCLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxhQUFhLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FDckUsRUFBRSxTQUFTLElBQUksRUFBRTtRQUNwQixXQUFXLEVBQUUsU0FBUyxDQUFDLFVBQVUsSUFBSSxLQUFLO1FBQzFDLFVBQVUsRUFBRSxTQUFTLENBQUMsVUFBVSxJQUFJLEtBQUs7UUFDekMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxRQUFRLElBQUksS0FBSztRQUNyQyxVQUFVLEVBQUUsU0FBUyxDQUFDLFNBQVMsSUFBSSxFQUFFO1FBQ3JDLGVBQWUsRUFBRSxTQUFTLENBQUMsY0FBYyxJQUFJLEVBQUU7UUFDL0MsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJLElBQUksQ0FBQztRQUN6QixHQUFHLEVBQUUsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLFFBQVEsRUFBRSxTQUFTLENBQUMsR0FBRyxJQUFJLEVBQUU7UUFDN0IsWUFBWSxFQUFFLFNBQVMsQ0FBQyxPQUFPLElBQUksQ0FBQztRQUNwQyxVQUFVLEVBQUUsU0FBUyxDQUFDLEtBQUssSUFBSSxDQUFDO1FBQ2hDLFVBQVUsRUFBRSxTQUFTLENBQUMsS0FBSyxJQUFJLENBQUM7UUFDaEMsWUFBWSxFQUFFLFNBQVMsQ0FBQyxPQUFPLElBQUksQ0FBQztRQUNwQyxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsU0FBUztRQUNqQyxZQUFZLEVBQUUsZ0JBQWdCLENBQUMsZUFBZTtRQUM5QyxXQUFXLEVBQUUsZ0JBQWdCLENBQUMsY0FBYztRQUM1QyxpQkFBaUIsRUFBRSxTQUFTLENBQUMsYUFBYSxJQUFJLENBQUM7UUFDL0Msb0JBQW9CLEVBQUUsU0FBUyxDQUFDLFlBQVksSUFBSSxDQUFDO1FBQ2pELHdCQUF3QixFQUFFLFNBQVMsQ0FBQyxtQkFBbUIsSUFBSSxDQUFDO1FBQzVELDJCQUEyQixFQUFFLFNBQVMsQ0FBQyxrQkFBa0IsSUFBSSxDQUFDO1FBQzlELGVBQWUsRUFBRSxTQUFTLENBQUMsV0FBVyxJQUFJLENBQUM7UUFDM0Msa0JBQWtCLEVBQUUsU0FBUyxDQUFDLFVBQVUsSUFBSSxDQUFDO1FBQzdDLFlBQVksRUFBRSxTQUFTLENBQUMsUUFBUSxJQUFJLENBQUM7UUFDckMsZUFBZSxFQUFFLFNBQVMsQ0FBQyxPQUFPLElBQUksQ0FBQztRQUN2QyxlQUFlLEVBQUUsU0FBUyxDQUFDLGNBQWMsSUFBSSxFQUFFO1FBQy9DLE9BQU8sRUFBRSxTQUFTLENBQUMsT0FBTyxJQUFJLEVBQUU7UUFDaEMsZ0JBQWdCLEVBQUUsU0FBUyxDQUFDLGVBQWUsSUFBSSxFQUFFO1FBQ2pELGVBQWUsRUFBRSxTQUFTLENBQUMsY0FBYyxJQUFJLEVBQUU7UUFDL0MsZ0JBQWdCLEVBQUUsaUJBQWlCLENBQUMsZ0JBQWdCO1FBQ3BELGtCQUFrQixFQUFFLGlCQUFpQixDQUFDLGtCQUFrQjtRQUN4RCxnQkFBZ0IsRUFBRSxpQkFBaUIsQ0FBQyxnQkFBZ0I7UUFDcEQsY0FBYyxFQUFFLGlCQUFpQixDQUFDLGNBQWM7UUFDaEQsa0JBQWtCLEVBQUUsaUJBQWlCLENBQUMsa0JBQWtCO1FBQ3hELG9CQUFvQixFQUFFLGlCQUFpQixDQUFDLG9CQUFvQjtRQUM1RCxrQkFBa0IsRUFBRSxpQkFBaUIsQ0FBQyxrQkFBa0I7UUFDeEQsZ0JBQWdCLEVBQUUsaUJBQWlCLENBQUMsZ0JBQWdCO1FBQ3BELHlCQUF5QixFQUFFLGlCQUFpQixDQUFDLHlCQUF5QjtRQUN0RSwyQkFBMkIsRUFBRSxpQkFBaUIsQ0FBQywyQkFBMkI7UUFDMUUseUJBQXlCLEVBQUUsaUJBQWlCLENBQUMseUJBQXlCO1FBQ3RFLHVCQUF1QixFQUFFLGlCQUFpQixDQUFDLHVCQUF1QjtRQUNsRSxtQkFBbUIsRUFBRSxpQkFBaUIsQ0FBQyxtQkFBbUI7UUFDMUQsd0JBQXdCLEVBQUUsSUFBQSxnQ0FBd0IsRUFBQyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUMsS0FBSztRQUNsRix1QkFBdUIsRUFBRSxJQUFBLGdDQUF3QixFQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxJQUFJO1FBQ2hGLG9CQUFvQixFQUFFLFNBQVMsQ0FBQyxrQkFBa0IsSUFBSSxFQUFFO1FBQ3hELGNBQWMsRUFBRSxTQUFTLENBQUMsWUFBWSxJQUFJLEVBQUU7UUFDNUMseUJBQXlCLEVBQUUsU0FBUyxDQUFDLHNCQUFzQixJQUFJLEVBQUU7UUFDakUsc0JBQXNCLEVBQUUsU0FBUyxDQUFDLG1CQUFtQixJQUFJLEVBQUU7UUFDM0QsbUJBQW1CLEVBQUUsU0FBUyxDQUFDLGlCQUFpQixJQUFJLEVBQUU7UUFDdEQsZUFBZSxFQUFFLFNBQVMsQ0FBQyxhQUFhLElBQUksU0FBUztRQUNyRCxrQkFBa0IsRUFBRSxTQUFTLENBQUMsZUFBZSxJQUFJLFNBQVM7UUFDMUQsc0JBQXNCLEVBQUUsU0FBUyxDQUFDLG1CQUFtQixJQUFJLFNBQVM7UUFDbEUsZUFBZSxFQUFFLFNBQVMsQ0FBQyxhQUFhLElBQUksU0FBUztRQUNyRCxpQkFBaUIsRUFBRSxTQUFTLENBQUMsZUFBZSxJQUFJLFNBQVM7UUFDekQsb0JBQW9CLEVBQUUsU0FBUyxDQUFDLGlCQUFpQixJQUFJLFNBQVM7UUFDOUQsd0JBQXdCLEVBQUUsU0FBUyxDQUFDLHFCQUFxQixJQUFJLFNBQVM7UUFDdEUsaUJBQWlCLEVBQUUsU0FBUyxDQUFDLGVBQWUsSUFBSSxTQUFTO1FBQ3pELFdBQVcsRUFBRSxTQUFTLENBQUMsVUFBVSxJQUFJLFNBQVM7UUFDOUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxRQUFRLElBQUksRUFBRTtRQUNuQyxvQkFBb0IsRUFBRSxTQUFTLENBQUMsa0JBQWtCLElBQUksRUFBRTtRQUN4RCxpQkFBaUIsRUFBRSxTQUFTLENBQUMsZUFBZSxJQUFJLEVBQUU7UUFDbEQsY0FBYyxFQUFFLFNBQVMsQ0FBQyxhQUFhLElBQUksRUFBRTtRQUM3QyxVQUFVLEVBQUUsU0FBUyxDQUFDLFNBQVMsSUFBSSxTQUFTO1FBQzVDLGFBQWEsRUFBRSxTQUFTLENBQUMsV0FBVyxJQUFJLFNBQVM7UUFDakQsaUJBQWlCLEVBQUUsU0FBUyxDQUFDLGVBQWUsSUFBSSxTQUFTO1FBQ3pELFVBQVUsRUFBRSxTQUFTLENBQUMsU0FBUyxJQUFJLFNBQVM7UUFDNUMsWUFBWSxFQUFFLFNBQVMsQ0FBQyxXQUFXLElBQUksU0FBUztRQUNoRCxlQUFlLEVBQUUsU0FBUyxDQUFDLGFBQWEsSUFBSSxTQUFTO1FBQ3JELG1CQUFtQixFQUFFLFNBQVMsQ0FBQyxpQkFBaUIsSUFBSSxTQUFTO1FBQzdELFlBQVksRUFBRSxTQUFTLENBQUMsV0FBVyxJQUFJLFNBQVM7UUFDaEQsVUFBVSxFQUFFLFNBQVMsQ0FBQyxTQUFTLElBQUksU0FBUztRQUM1QyxvQkFBb0IsRUFBRSxTQUFTLENBQUMsbUJBQW1CLElBQUksRUFBRTtRQUN6RCw2QkFBNkIsRUFBRSxTQUFTLENBQUMsMkJBQTJCLElBQUksRUFBRTtRQUMxRSwrQkFBK0IsRUFBRSxTQUFTLENBQUMsNkJBQTZCLElBQUksRUFBRTtRQUM5RSxTQUFTLEVBQUUsU0FBUyxDQUFDLFFBQVEsSUFBSSxFQUFFO1FBQ25DLFlBQVksRUFBRSxTQUFTLENBQUMsVUFBVSxJQUFJLFNBQVM7UUFDL0MsVUFBVSxFQUFFLFNBQVMsQ0FBQyxTQUFTLElBQUksU0FBUztRQUM1QyxNQUFNLEVBQUUsU0FBUyxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsSUFBSSxTQUFTO1FBQ2hELGFBQWEsRUFBRSxTQUFTLENBQUMsWUFBWSxJQUFJLEVBQUU7S0FDNUMsQ0FBQztBQUNKLENBQUMsQ0FBQztBQTNIVyxRQUFBLHNCQUFzQiwwQkEySGpDO0FBRUssTUFBTSxzQkFBc0IsR0FBRyxDQUNwQyxTQUErQixFQUMvQixnQkFJQyxFQUNELGlCQUFvQyxFQUNwQyxjQUFzQixFQUN0QixFQUFFO0lBQ0YsT0FBTztRQUNMLE1BQU0sRUFBRSxFQUFFO1FBQ1YsU0FBUyxFQUFFLEVBQUU7UUFDYixjQUFjLEVBQUUsU0FBUyxDQUFDLFlBQVk7UUFDdEMsZ0JBQWdCLEVBQUUsU0FBUyxDQUFDLGNBQWM7UUFDMUMsZ0JBQWdCLEVBQUUsU0FBUyxDQUFDLGNBQWM7UUFDMUMsb0JBQW9CLEVBQUUsU0FBUyxDQUFDLGlCQUFpQjtRQUNqRCxrQkFBa0IsRUFBRSxTQUFTLENBQUMsZUFBZTtRQUM3QyxRQUFRLEVBQUUsU0FBUyxDQUFDLE9BQU87UUFDM0IsVUFBVSxFQUFFLFNBQVMsQ0FBQyxTQUFTO1FBQy9CLFlBQVksRUFBRSxTQUFTLENBQUMsVUFBVTtRQUNsQyxtQkFBbUIsRUFBRSxTQUFTLENBQUMsaUJBQWlCO1FBQ2hELG1CQUFtQixFQUFFLFNBQVMsQ0FBQyxpQkFBaUI7UUFDaEQsTUFBTSxFQUFFLFNBQVMsQ0FBQyxLQUFLO1FBQ3ZCLFFBQVEsRUFBRSxTQUFTLENBQUMsUUFBUSxJQUFJLEVBQUU7UUFDbEMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxZQUFZO1FBQ3JDLFVBQVUsRUFBRSxTQUFTLENBQUMsUUFBUTtRQUM5QixZQUFZLEVBQUUsU0FBUyxDQUFDLFdBQVcsSUFBSSxFQUFFO1FBQ3pDLGlCQUFpQixFQUFFLFNBQVMsQ0FBQyxlQUFlO1FBQzVDLFlBQVksRUFBRSxTQUFTLENBQUMsWUFBWSxJQUFJLEVBQUU7UUFDMUMsZUFBZSxFQUFFLFNBQVMsQ0FBQyxjQUFjLElBQUksRUFBRTtRQUMvQyxTQUFTLEVBQUUsU0FBUyxDQUFDLFFBQVEsSUFBSSxFQUFFO1FBQ25DLFlBQVksRUFBRSxTQUFTLENBQUMsVUFBVTtRQUNsQyxjQUFjLEVBQUUsU0FBUyxDQUFDLFlBQVk7UUFDdEMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxXQUFXO1FBQ3BDLFVBQVUsRUFBRSxTQUFTLENBQUMsU0FBUyxJQUFJLEVBQUU7UUFDckMsZUFBZSxFQUFFLFNBQVMsQ0FBQyxhQUFhO1FBQ3hDLFlBQVksRUFBRSxTQUFTLENBQUMsVUFBVTtRQUNsQyxTQUFTLEVBQUUsU0FBUyxDQUFDLFFBQVEsSUFBSSxFQUFFO1FBQ25DLGNBQWMsRUFBRSxTQUFTLENBQUMsWUFBWTtRQUN0QyxRQUFRLEVBQUUsU0FBUyxDQUFDLE9BQU87UUFDM0IsS0FBSyxFQUFFLFNBQVMsQ0FBQyxLQUFLLElBQUksRUFBRTtRQUM1QixVQUFVLEVBQUUsU0FBUyxDQUFDLFNBQVMsSUFBSSxFQUFFO1FBQ3JDLFNBQVMsRUFBRSxTQUFTLENBQUMsUUFBUTtRQUM3QixNQUFNLEVBQUUsSUFBQSxxQkFBWSxFQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7UUFDdEMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxVQUFVO1FBQ2pDLFVBQVUsRUFDUixTQUFTLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUNoQyxDQUFDLE1BQThCLEVBQUUsRUFBRSxDQUNqQyxNQUFNLENBQUMsYUFBYSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQ3hDLEVBQUUsU0FBUyxJQUFJLEVBQUU7UUFDcEIsV0FBVyxFQUFFLFNBQVMsQ0FBQyxVQUFVLElBQUksS0FBSztRQUMxQyxVQUFVLEVBQUUsU0FBUyxDQUFDLFVBQVUsSUFBSSxLQUFLO1FBQ3pDLFFBQVEsRUFBRSxTQUFTLENBQUMsUUFBUSxJQUFJLEtBQUs7UUFDckMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxTQUFTLElBQUksRUFBRTtRQUNyQyxlQUFlLEVBQUUsU0FBUyxDQUFDLGNBQWMsSUFBSSxFQUFFO1FBQy9DLG9CQUFvQixFQUFFLFNBQVMsQ0FBQyxrQkFBa0IsSUFBSSxFQUFFO1FBQ3hELGNBQWMsRUFBRSxTQUFTLENBQUMsWUFBWSxJQUFJLEVBQUU7UUFDNUMseUJBQXlCLEVBQUUsU0FBUyxDQUFDLHNCQUFzQixJQUFJLEVBQUU7UUFDakUsc0JBQXNCLEVBQUUsU0FBUyxDQUFDLG1CQUFtQixJQUFJLEVBQUU7UUFDM0QsbUJBQW1CLEVBQUUsU0FBUyxDQUFDLGlCQUFpQixJQUFJLEVBQUU7UUFDdEQsZUFBZSxFQUFFLFNBQVMsQ0FBQyxhQUFhLElBQUksU0FBUztRQUNyRCxrQkFBa0IsRUFBRSxTQUFTLENBQUMsZUFBZSxJQUFJLFNBQVM7UUFDMUQsc0JBQXNCLEVBQUUsU0FBUyxDQUFDLG1CQUFtQixJQUFJLFNBQVM7UUFDbEUsZUFBZSxFQUFFLFNBQVMsQ0FBQyxhQUFhLElBQUksU0FBUztRQUNyRCxpQkFBaUIsRUFBRSxTQUFTLENBQUMsZUFBZSxJQUFJLFNBQVM7UUFDekQsb0JBQW9CLEVBQUUsU0FBUyxDQUFDLGlCQUFpQixJQUFJLFNBQVM7UUFDOUQsd0JBQXdCLEVBQUUsU0FBUyxDQUFDLHFCQUFxQixJQUFJLFNBQVM7UUFDdEUsaUJBQWlCLEVBQUUsU0FBUyxDQUFDLGVBQWUsSUFBSSxTQUFTO1FBQ3pELFdBQVcsRUFBRSxTQUFTLENBQUMsVUFBVSxJQUFJLFNBQVM7UUFDOUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJLElBQUksQ0FBQztRQUN6QixTQUFTLEVBQUUsU0FBUyxDQUFDLFFBQVEsSUFBSSxFQUFFO1FBQ25DLG9CQUFvQixFQUFFLFNBQVMsQ0FBQyxrQkFBa0IsSUFBSSxFQUFFO1FBQ3hELGlCQUFpQixFQUFFLFNBQVMsQ0FBQyxlQUFlLElBQUksRUFBRTtRQUNsRCxjQUFjLEVBQUUsU0FBUyxDQUFDLGFBQWEsSUFBSSxFQUFFO1FBQzdDLFVBQVUsRUFBRSxTQUFTLENBQUMsU0FBUyxJQUFJLFNBQVM7UUFDNUMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxXQUFXLElBQUksU0FBUztRQUNqRCxpQkFBaUIsRUFBRSxTQUFTLENBQUMsZUFBZSxJQUFJLFNBQVM7UUFDekQsVUFBVSxFQUFFLFNBQVMsQ0FBQyxTQUFTLElBQUksU0FBUztRQUM1QyxZQUFZLEVBQUUsU0FBUyxDQUFDLFdBQVcsSUFBSSxTQUFTO1FBQ2hELGVBQWUsRUFBRSxTQUFTLENBQUMsYUFBYSxJQUFJLFNBQVM7UUFDckQsbUJBQW1CLEVBQUUsU0FBUyxDQUFDLGlCQUFpQixJQUFJLFNBQVM7UUFDN0QsWUFBWSxFQUFFLFNBQVMsQ0FBQyxXQUFXLElBQUksU0FBUztRQUNoRCxVQUFVLEVBQUUsU0FBUyxDQUFDLFNBQVMsSUFBSSxTQUFTO1FBQzVDLEdBQUcsRUFBRSxTQUFTLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDdkIsb0JBQW9CLEVBQUUsU0FBUyxDQUFDLG1CQUFtQixJQUFJLEVBQUU7UUFDekQsNkJBQTZCLEVBQUUsU0FBUyxDQUFDLDJCQUEyQixJQUFJLEVBQUU7UUFDMUUsK0JBQStCLEVBQUUsU0FBUyxDQUFDLDZCQUE2QixJQUFJLEVBQUU7UUFDOUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxRQUFRLElBQUksRUFBRTtRQUNuQyxVQUFVLEVBQUUsU0FBUyxDQUFDLFNBQVMsSUFBSSxTQUFTO1FBQzVDLE1BQU0sRUFBRSxTQUFTLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLFNBQVM7UUFDaEQsYUFBYSxFQUFFLFNBQVMsQ0FBQyxZQUFZLElBQUksRUFBRTtRQUMzQyxRQUFRLEVBQUUsU0FBUyxDQUFDLEdBQUcsSUFBSSxFQUFFO1FBQzdCLFlBQVksRUFBRSxTQUFTLENBQUMsT0FBTyxJQUFJLENBQUM7UUFDcEMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxLQUFLLElBQUksQ0FBQztRQUNoQyxVQUFVLEVBQUUsU0FBUyxDQUFDLEtBQUssSUFBSSxDQUFDO1FBQ2hDLFlBQVksRUFBRSxTQUFTLENBQUMsT0FBTyxJQUFJLENBQUM7UUFDcEMsS0FBSyxFQUFFLGdCQUFnQixDQUFDLFNBQVM7UUFDakMsWUFBWSxFQUFFLGdCQUFnQixDQUFDLGVBQWU7UUFDOUMsV0FBVyxFQUFFLGdCQUFnQixDQUFDLGNBQWM7UUFDNUMsaUJBQWlCLEVBQUUsU0FBUyxDQUFDLGFBQWEsSUFBSSxDQUFDO1FBQy9DLG9CQUFvQixFQUFFLFNBQVMsQ0FBQyxZQUFZLElBQUksQ0FBQztRQUNqRCx3QkFBd0IsRUFBRSxTQUFTLENBQUMsbUJBQW1CLElBQUksQ0FBQztRQUM1RCwyQkFBMkIsRUFBRSxTQUFTLENBQUMsa0JBQWtCLElBQUksQ0FBQztRQUM5RCxlQUFlLEVBQUUsU0FBUyxDQUFDLFdBQVcsSUFBSSxDQUFDO1FBQzNDLGtCQUFrQixFQUFFLFNBQVMsQ0FBQyxVQUFVLElBQUksQ0FBQztRQUM3QyxZQUFZLEVBQUUsU0FBUyxDQUFDLFFBQVEsSUFBSSxDQUFDO1FBQ3JDLGVBQWUsRUFBRSxTQUFTLENBQUMsT0FBTyxJQUFJLENBQUM7UUFDdkMsZUFBZSxFQUFFLFNBQVMsQ0FBQyxjQUFjLElBQUksRUFBRTtRQUMvQyxPQUFPLEVBQUUsU0FBUyxDQUFDLE9BQU8sSUFBSSxFQUFFO1FBQ2hDLGdCQUFnQixFQUFFLFNBQVMsQ0FBQyxlQUFlLElBQUksRUFBRTtRQUNqRCxlQUFlLEVBQUUsU0FBUyxDQUFDLGNBQWMsSUFBSSxFQUFFO1FBQy9DLGdCQUFnQixFQUFFLGlCQUFpQixDQUFDLGdCQUFnQjtRQUNwRCxrQkFBa0IsRUFBRSxpQkFBaUIsQ0FBQyxrQkFBa0I7UUFDeEQsZ0JBQWdCLEVBQUUsaUJBQWlCLENBQUMsZ0JBQWdCO1FBQ3BELGNBQWMsRUFBRSxpQkFBaUIsQ0FBQyxjQUFjO1FBQ2hELGtCQUFrQixFQUFFLGlCQUFpQixDQUFDLGtCQUFrQjtRQUN4RCxvQkFBb0IsRUFBRSxpQkFBaUIsQ0FBQyxvQkFBb0I7UUFDNUQsa0JBQWtCLEVBQUUsaUJBQWlCLENBQUMsa0JBQWtCO1FBQ3hELGdCQUFnQixFQUFFLGlCQUFpQixDQUFDLGdCQUFnQjtRQUNwRCx5QkFBeUIsRUFBRSxpQkFBaUIsQ0FBQyx5QkFBeUI7UUFDdEUsMkJBQTJCLEVBQUUsaUJBQWlCLENBQUMsMkJBQTJCO1FBQzFFLHlCQUF5QixFQUFFLGlCQUFpQixDQUFDLHlCQUF5QjtRQUN0RSx1QkFBdUIsRUFBRSxpQkFBaUIsQ0FBQyx1QkFBdUI7UUFDbEUsbUJBQW1CLEVBQUUsaUJBQWlCLENBQUMsbUJBQW1CO1FBQzFELHdCQUF3QixFQUFFLElBQUEsZ0NBQXdCLEVBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLENBQUMsS0FBSztRQUN2Rix1QkFBdUIsRUFBRSxJQUFBLGdDQUF3QixFQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLElBQUk7UUFDckYsY0FBYyxFQUFFLENBQUMsY0FBYyxDQUFDO1FBQ2hDLFVBQVUsRUFBRSxLQUFLO0tBQ2xCLENBQUM7QUFDSixDQUFDLENBQUM7QUFsSVcsUUFBQSxzQkFBc0IsMEJBa0lqQztBQUVLLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxJQUF5QixFQUFFLEVBQUU7SUFDL0QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7UUFDekIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNuQixPQUFPO1lBQ0wsUUFBUSxFQUFFLE1BQU0sQ0FBQyxPQUFPO1lBQ3hCLG1CQUFtQixFQUFFLE1BQU0sQ0FBQyxnQkFBZ0I7WUFDNUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxNQUFNO1lBQ3RCLFNBQVMsRUFBRSxNQUFNLENBQUMsUUFBUSxJQUFJLEVBQUU7WUFDaEMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxRQUFRLElBQUksRUFBRTtZQUNoQyxRQUFRLEVBQUUsTUFBTSxDQUFDLE9BQU8sSUFBSSxFQUFFO1lBQzlCLGNBQWMsRUFBRSxNQUFNLENBQUMsYUFBYSxJQUFJLEVBQUU7WUFDMUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxLQUFLLElBQUksQ0FBQztZQUN6QixRQUFRLEVBQUUsTUFBTSxDQUFDLE9BQU8sSUFBSSxFQUFFO1lBQzlCLFFBQVEsRUFBRSxNQUFNLENBQUMsT0FBTyxJQUFJLENBQUM7WUFDN0IsVUFBVSxFQUFFLE1BQU0sQ0FBQyxTQUFTLElBQUksRUFBRTtZQUNsQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEtBQUssSUFBSSxDQUFDO1lBQ3pCLFFBQVEsRUFBRSxNQUFNLENBQUMsT0FBTyxJQUFJLEVBQUU7WUFDOUIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQztZQUMzQixTQUFTLEVBQUUsTUFBTSxDQUFDLFFBQVEsSUFBSSxFQUFFO1lBQ2hDLFdBQVcsRUFBRSxNQUFNLENBQUMsV0FBVyxJQUFJLEVBQUU7WUFDckMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLElBQUksRUFBRTtZQUN2QixPQUFPLEVBQUUsTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDO1lBQzNCLFNBQVMsRUFBRSxNQUFNLENBQUMsUUFBUSxJQUFJLEVBQUU7WUFDaEMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXLElBQUksRUFBRTtZQUNyQyxjQUFjLEVBQUUsTUFBTSxDQUFDLGFBQWEsSUFBSSxDQUFDO1lBQ3pDLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxlQUFlLElBQUksRUFBRTtZQUM5QyxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sSUFBSSxFQUFFO1lBQzdCLFVBQVUsRUFBRSxNQUFNLENBQUMsUUFBUSxJQUFJLENBQUM7WUFDaEMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxXQUFXLElBQUksRUFBRTtZQUN0QyxPQUFPLEVBQUUsTUFBTSxDQUFDLE1BQU0sSUFBSSxLQUFLO1lBQy9CLGVBQWUsRUFBRSxNQUFNLENBQUMsYUFBYSxJQUFJLEtBQUs7WUFDOUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQztZQUMxQixNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDO1lBQzFCLFVBQVUsRUFBRSxNQUFNLENBQUMsU0FBUyxJQUFJLENBQUM7WUFDakMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxTQUFTLElBQUksQ0FBQztZQUNqQyxRQUFRLEVBQUUsTUFBTSxDQUFDLE9BQU8sSUFBSSxDQUFDO1lBQzdCLFVBQVUsRUFBRSxNQUFNLENBQUMsU0FBUyxJQUFJLENBQUM7WUFDakMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxVQUFVLElBQUksRUFBRTtZQUNwQyxrQkFBa0IsRUFBRSxNQUFNLENBQUMsZ0JBQWdCLElBQUksSUFBSTtZQUNuRCxrQkFBa0IsRUFBRSxNQUFNLENBQUMsZ0JBQWdCLElBQUksSUFBSTtZQUNuRCxtQkFBbUIsRUFBRSxNQUFNLENBQUMsZ0JBQWdCLElBQUksSUFBSTtZQUNwRCxrQkFBa0IsRUFBRSxNQUFNLENBQUMsZUFBZSxJQUFJLElBQUk7WUFDbEQsU0FBUyxFQUFFLE1BQU0sQ0FBQyxRQUFRLElBQUksQ0FBQztZQUMvQixXQUFXLEVBQUUsTUFBTSxDQUFDLFVBQVUsSUFBSSxDQUFDO1lBQ25DLG1CQUFtQixFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJO1lBQ3BELGNBQWMsRUFBRSxNQUFNLENBQUMsWUFBWSxJQUFJLElBQUk7WUFDM0MsdUJBQXVCLEVBQUUsTUFBTSxDQUFDLG9CQUFvQixJQUFJLElBQUk7WUFDNUQsdUJBQXVCLEVBQUUsTUFBTSxDQUFDLG9CQUFvQixJQUFJLElBQUk7WUFDNUQsd0JBQXdCLEVBQUUsTUFBTSxDQUFDLG9CQUFvQixJQUFJLElBQUk7WUFDN0QsdUJBQXVCLEVBQUUsTUFBTSxDQUFDLG1CQUFtQixJQUFJLElBQUk7WUFDM0QsY0FBYyxFQUFFLE1BQU0sQ0FBQyxZQUFZLElBQUksQ0FBQztZQUN4QyxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsY0FBYyxJQUFJLENBQUM7WUFDNUMsc0JBQXNCLEVBQUUsTUFBTSxDQUFDLG1CQUFtQixJQUFJLElBQUk7WUFDMUQsc0JBQXNCLEVBQUUsTUFBTSxDQUFDLG1CQUFtQixJQUFJLElBQUk7WUFDMUQsdUJBQXVCLEVBQUUsTUFBTSxDQUFDLG1CQUFtQixJQUFJLElBQUk7WUFDM0Qsc0JBQXNCLEVBQUUsTUFBTSxDQUFDLGtCQUFrQixJQUFJLElBQUk7WUFDekQsYUFBYSxFQUFFLE1BQU0sQ0FBQyxXQUFXLElBQUksQ0FBQztZQUN0QyxlQUFlLEVBQUUsTUFBTSxDQUFDLGFBQWEsSUFBSSxDQUFDO1lBQzFDLGFBQWEsRUFBRSxNQUFNLENBQUMsV0FBVyxJQUFJLENBQUM7WUFDdEMsb0JBQW9CLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixJQUFJLEtBQUs7WUFDdEQsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLGNBQWMsSUFBSSxDQUFDO1lBQzVDLG9CQUFvQixFQUFFLE1BQU0sQ0FBQyxpQkFBaUIsSUFBSSxJQUFJO1lBQ3RELDJCQUEyQixFQUFFLE1BQU0sQ0FBQyxtQkFBbUIsSUFBSSxJQUFJO1lBQy9ELGFBQWEsRUFBRSxNQUFNLENBQUMsV0FBVyxJQUFJLENBQUM7WUFDdEMsc0JBQXNCLEVBQUUsTUFBTSxDQUFDLG1CQUFtQixJQUFJLElBQUk7WUFDMUQsbUJBQW1CLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixJQUFJLElBQUk7WUFDcEQsdUJBQXVCLEVBQUUsTUFBTSxDQUFDLG1CQUFtQixJQUFJLElBQUk7WUFDM0QsYUFBYSxFQUFFLE1BQU0sQ0FBQyxXQUFXLElBQUksQ0FBQztZQUN0QyxlQUFlLEVBQUUsTUFBTSxDQUFDLFlBQVksSUFBSSxLQUFLO1lBQzdDLHFCQUFxQixFQUFFLE1BQU0sQ0FBQyxrQkFBa0IsSUFBSSxJQUFJO1lBQ3hELDJCQUEyQixFQUFFLE1BQU0sQ0FBQyxzQkFBc0IsSUFBSSxJQUFJO1lBQ2xFLFlBQVksRUFBRSxNQUFNLENBQUMsVUFBVSxJQUFJLENBQUM7WUFDcEMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxZQUFZLElBQUksSUFBSTtZQUMxQyxhQUFhLEVBQUUsTUFBTSxDQUFDLFlBQVksSUFBSSxJQUFJO1lBQzFDLGFBQWEsRUFBRSxNQUFNLENBQUMsV0FBVyxJQUFJLElBQUk7WUFDekMsY0FBYyxFQUFFLE1BQU0sQ0FBQyxZQUFZLElBQUksSUFBSTtZQUMzQyxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDO1lBQ3RCLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUM7WUFDMUIsY0FBYyxFQUFFLE1BQU0sQ0FBQyxZQUFZLElBQUksSUFBSTtZQUMzQyxTQUFTLEVBQUUsTUFBTSxDQUFDLFFBQVEsSUFBSSxJQUFJO1lBQ2xDLGtCQUFrQixFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJO1lBQ25ELGtCQUFrQixFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJO1lBQ25ELG1CQUFtQixFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJO1lBQ3BELGtCQUFrQixFQUFFLE1BQU0sQ0FBQyxlQUFlLElBQUksSUFBSTtZQUNsRCxTQUFTLEVBQUUsTUFBTSxDQUFDLFFBQVEsSUFBSSxDQUFDO1lBQy9CLFdBQVcsRUFBRSxNQUFNLENBQUMsVUFBVSxJQUFJLENBQUM7WUFDbkMsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLGVBQWUsSUFBSSxJQUFJO1lBQ2pELGlCQUFpQixFQUFFLE1BQU0sQ0FBQyxlQUFlLElBQUksSUFBSTtZQUNqRCxrQkFBa0IsRUFBRSxNQUFNLENBQUMsZUFBZSxJQUFJLElBQUk7WUFDbEQsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLGNBQWMsSUFBSSxJQUFJO1lBQ2hELFFBQVEsRUFBRSxNQUFNLENBQUMsT0FBTyxJQUFJLENBQUM7WUFDN0IsVUFBVSxFQUFFLE1BQU0sQ0FBQyxTQUFTLElBQUksQ0FBQztZQUNqQyxRQUFRLEVBQUUsTUFBTSxDQUFDLE9BQU8sSUFBSSxDQUFDO1lBQzdCLGVBQWUsRUFBRSxNQUFNLENBQUMsWUFBWSxJQUFJLEtBQUs7WUFDN0MsV0FBVyxFQUFFLE1BQU0sQ0FBQyxVQUFVLElBQUksQ0FBQztZQUNuQyxlQUFlLEVBQUUsTUFBTSxDQUFDLGFBQWEsSUFBSSxJQUFJO1lBQzdDLHNCQUFzQixFQUFFLE1BQU0sQ0FBQyxlQUFlLElBQUksSUFBSTtZQUN0RCxRQUFRLEVBQUUsTUFBTSxDQUFDLE9BQU8sSUFBSSxDQUFDO1lBQzdCLGlCQUFpQixFQUFFLE1BQU0sQ0FBQyxlQUFlLElBQUksSUFBSTtZQUNqRCxjQUFjLEVBQUUsTUFBTSxDQUFDLFlBQVksSUFBSSxJQUFJO1lBQzNDLGtCQUFrQixFQUFFLE1BQU0sQ0FBQyxlQUFlLElBQUksSUFBSTtZQUNsRCxRQUFRLEVBQUUsTUFBTSxDQUFDLE9BQU8sSUFBSSxDQUFDO1lBQzdCLFVBQVUsRUFBRSxNQUFNLENBQUMsUUFBUSxJQUFJLEtBQUs7WUFDcEMsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLGNBQWMsSUFBSSxJQUFJO1lBQy9DLHNCQUFzQixFQUFFLE1BQU0sQ0FBQyxrQkFBa0IsSUFBSSxJQUFJO1lBQ3pELE9BQU8sRUFBRSxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUM7U0FDNUIsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBNUdXLFFBQUEsbUJBQW1CLHVCQTRHOUI7QUFFSyxNQUFNLHdCQUF3QixHQUFHLENBQUMsSUFBOEIsRUFBRSxFQUFFO0lBQ3pFLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1FBQ3pCLE9BQU87WUFDTCxRQUFRLEVBQUUsTUFBTSxDQUFDLE9BQU87WUFDeEIsY0FBYyxFQUFFLE1BQU0sQ0FBQyxhQUFhO1lBQ3BDLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxlQUFlLElBQUksRUFBRTtZQUM5QyxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsZUFBZSxJQUFJLEVBQUU7WUFDOUMsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixJQUFJLEVBQUU7U0FDakQsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBVlcsUUFBQSx3QkFBd0IsNEJBVW5DO0FBRUssTUFBTSx1QkFBdUIsR0FBRyxDQUFDLElBQTZCLEVBQUUsRUFBRTtJQUN2RSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtRQUN6QixPQUFPO1lBQ0wsUUFBUSxFQUFFLE1BQU0sQ0FBQyxPQUFPO1lBQ3hCLE9BQU8sRUFBRSxNQUFNLENBQUMsTUFBTTtZQUN0QixlQUFlLEVBQUUsTUFBTSxDQUFDLGNBQWMsSUFBSSxFQUFFO1lBQzVDLG1CQUFtQixFQUFFLE1BQU0sQ0FBQyxpQkFBaUI7WUFDN0MscUJBQXFCLEVBQUUsTUFBTSxDQUFDLG1CQUFtQixJQUFJLEVBQUU7WUFDdkQscUJBQXFCLEVBQUUsTUFBTSxDQUFDLG1CQUFtQixJQUFJLEVBQUU7U0FDeEQsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBWFcsUUFBQSx1QkFBdUIsMkJBV2xDO0FBRUssTUFBTSx3QkFBd0IsR0FBRyxDQUFDLElBQThCLEVBQUUsRUFBRTtJQUN6RSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtRQUN6QixPQUFPO1lBQ0wsY0FBYyxFQUFFLE1BQU0sQ0FBQyxZQUFZO1lBQ25DLHlCQUF5QixFQUFFLE1BQU0sQ0FBQyxxQkFBcUI7WUFDdkQsU0FBUyxFQUFFLE1BQU0sQ0FBQyxRQUFRLElBQUksRUFBRTtZQUNoQyxPQUFPLEVBQUUsTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDO1lBQzNCLFNBQVMsRUFBRSxNQUFNLENBQUMsUUFBUSxJQUFJLEVBQUU7WUFDaEMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxPQUFPLElBQUksRUFBRTtZQUM5QixjQUFjLEVBQUUsTUFBTSxDQUFDLGFBQWEsSUFBSSxFQUFFO1lBQzFDLE1BQU0sRUFBRSxNQUFNLENBQUMsS0FBSyxJQUFJLENBQUM7WUFDekIsUUFBUSxFQUFFLE1BQU0sQ0FBQyxPQUFPLElBQUksRUFBRTtZQUM5QixRQUFRLEVBQUUsTUFBTSxDQUFDLE9BQU8sSUFBSSxDQUFDO1lBQzdCLFVBQVUsRUFBRSxNQUFNLENBQUMsU0FBUyxJQUFJLEVBQUU7WUFDbEMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxLQUFLLElBQUksQ0FBQztZQUN6QixRQUFRLEVBQUUsTUFBTSxDQUFDLE9BQU8sSUFBSSxFQUFFO1lBQzlCLE9BQU8sRUFBRSxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUM7WUFDM0IsU0FBUyxFQUFFLE1BQU0sQ0FBQyxRQUFRLElBQUksRUFBRTtZQUNoQyxXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVcsSUFBSSxFQUFFO1lBQ3JDLE9BQU8sRUFBRSxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUM7WUFDM0IsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLElBQUksRUFBRTtZQUN2QixTQUFTLEVBQUUsTUFBTSxDQUFDLFFBQVEsSUFBSSxFQUFFO1lBQ2hDLGNBQWMsRUFBRSxNQUFNLENBQUMsYUFBYSxJQUFJLENBQUM7WUFDekMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXLElBQUksRUFBRTtZQUNyQyxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsZUFBZSxJQUFJLEVBQUU7WUFDOUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxRQUFRLElBQUksQ0FBQztZQUNoQyxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sSUFBSSxFQUFFO1lBQzdCLFlBQVksRUFBRSxNQUFNLENBQUMsV0FBVyxJQUFJLEVBQUU7WUFDdEMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxNQUFNLElBQUksS0FBSztZQUMvQixlQUFlLEVBQUUsTUFBTSxDQUFDLGFBQWEsSUFBSSxLQUFLO1lBQzlDLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUM7WUFDMUIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQztZQUMxQixVQUFVLEVBQUUsTUFBTSxDQUFDLFNBQVMsSUFBSSxDQUFDO1lBQ2pDLFVBQVUsRUFBRSxNQUFNLENBQUMsU0FBUyxJQUFJLENBQUM7WUFDakMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxPQUFPLElBQUksQ0FBQztZQUM3QixVQUFVLEVBQUUsTUFBTSxDQUFDLFNBQVMsSUFBSSxDQUFDO1lBQ2pDLFdBQVcsRUFBRSxNQUFNLENBQUMsVUFBVSxJQUFJLEVBQUU7WUFDcEMsa0JBQWtCLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixJQUFJLElBQUk7WUFDbkQsa0JBQWtCLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixJQUFJLElBQUk7WUFDbkQsbUJBQW1CLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixJQUFJLElBQUk7WUFDcEQsa0JBQWtCLEVBQUUsTUFBTSxDQUFDLGVBQWUsSUFBSSxJQUFJO1lBQ2xELFNBQVMsRUFBRSxNQUFNLENBQUMsUUFBUSxJQUFJLENBQUM7WUFDL0IsV0FBVyxFQUFFLE1BQU0sQ0FBQyxVQUFVLElBQUksQ0FBQztZQUNuQyxtQkFBbUIsRUFBRSxNQUFNLENBQUMsZ0JBQWdCLElBQUksSUFBSTtZQUNwRCxjQUFjLEVBQUUsTUFBTSxDQUFDLFlBQVksSUFBSSxJQUFJO1lBQzNDLHVCQUF1QixFQUFFLE1BQU0sQ0FBQyxvQkFBb0IsSUFBSSxJQUFJO1lBQzVELHVCQUF1QixFQUFFLE1BQU0sQ0FBQyxvQkFBb0IsSUFBSSxJQUFJO1lBQzVELHdCQUF3QixFQUFFLE1BQU0sQ0FBQyxvQkFBb0IsSUFBSSxJQUFJO1lBQzdELHVCQUF1QixFQUFFLE1BQU0sQ0FBQyxtQkFBbUIsSUFBSSxJQUFJO1lBQzNELGNBQWMsRUFBRSxNQUFNLENBQUMsWUFBWSxJQUFJLENBQUM7WUFDeEMsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLGNBQWMsSUFBSSxDQUFDO1lBQzVDLHNCQUFzQixFQUFFLE1BQU0sQ0FBQyxtQkFBbUIsSUFBSSxJQUFJO1lBQzFELHNCQUFzQixFQUFFLE1BQU0sQ0FBQyxtQkFBbUIsSUFBSSxJQUFJO1lBQzFELHVCQUF1QixFQUFFLE1BQU0sQ0FBQyxtQkFBbUIsSUFBSSxJQUFJO1lBQzNELHNCQUFzQixFQUFFLE1BQU0sQ0FBQyxrQkFBa0IsSUFBSSxJQUFJO1lBQ3pELGFBQWEsRUFBRSxNQUFNLENBQUMsV0FBVyxJQUFJLENBQUM7WUFDdEMsZUFBZSxFQUFFLE1BQU0sQ0FBQyxhQUFhLElBQUksQ0FBQztZQUMxQyxhQUFhLEVBQUUsTUFBTSxDQUFDLFdBQVcsSUFBSSxDQUFDO1lBQ3RDLG9CQUFvQixFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsSUFBSSxLQUFLO1lBQ3RELGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxjQUFjLElBQUksQ0FBQztZQUM1QyxvQkFBb0IsRUFBRSxNQUFNLENBQUMsaUJBQWlCLElBQUksSUFBSTtZQUN0RCwyQkFBMkIsRUFBRSxNQUFNLENBQUMsbUJBQW1CLElBQUksSUFBSTtZQUMvRCxhQUFhLEVBQUUsTUFBTSxDQUFDLFdBQVcsSUFBSSxDQUFDO1lBQ3RDLHNCQUFzQixFQUFFLE1BQU0sQ0FBQyxtQkFBbUIsSUFBSSxJQUFJO1lBQzFELG1CQUFtQixFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJO1lBQ3BELHVCQUF1QixFQUFFLE1BQU0sQ0FBQyxtQkFBbUIsSUFBSSxJQUFJO1lBQzNELGFBQWEsRUFBRSxNQUFNLENBQUMsV0FBVyxJQUFJLENBQUM7WUFDdEMsZUFBZSxFQUFFLE1BQU0sQ0FBQyxZQUFZLElBQUksS0FBSztZQUM3QyxxQkFBcUIsRUFBRSxNQUFNLENBQUMsa0JBQWtCLElBQUksSUFBSTtZQUN4RCwyQkFBMkIsRUFBRSxNQUFNLENBQUMsc0JBQXNCLElBQUksSUFBSTtZQUNsRSxZQUFZLEVBQUUsTUFBTSxDQUFDLFVBQVUsSUFBSSxDQUFDO1lBQ3BDLGFBQWEsRUFBRSxNQUFNLENBQUMsWUFBWSxJQUFJLElBQUk7WUFDMUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxZQUFZLElBQUksSUFBSTtZQUMxQyxhQUFhLEVBQUUsTUFBTSxDQUFDLFdBQVcsSUFBSSxJQUFJO1lBQ3pDLGNBQWMsRUFBRSxNQUFNLENBQUMsWUFBWSxJQUFJLElBQUk7WUFDM0MsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQztZQUN0QixNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDO1lBQzFCLGNBQWMsRUFBRSxNQUFNLENBQUMsWUFBWSxJQUFJLElBQUk7WUFDM0MsU0FBUyxFQUFFLE1BQU0sQ0FBQyxRQUFRLElBQUksSUFBSTtZQUNsQyxrQkFBa0IsRUFBRSxNQUFNLENBQUMsZ0JBQWdCLElBQUksSUFBSTtZQUNuRCxrQkFBa0IsRUFBRSxNQUFNLENBQUMsZ0JBQWdCLElBQUksSUFBSTtZQUNuRCxtQkFBbUIsRUFBRSxNQUFNLENBQUMsZ0JBQWdCLElBQUksSUFBSTtZQUNwRCxrQkFBa0IsRUFBRSxNQUFNLENBQUMsZUFBZSxJQUFJLElBQUk7WUFDbEQsU0FBUyxFQUFFLE1BQU0sQ0FBQyxRQUFRLElBQUksQ0FBQztZQUMvQixXQUFXLEVBQUUsTUFBTSxDQUFDLFVBQVUsSUFBSSxDQUFDO1lBQ25DLGlCQUFpQixFQUFFLE1BQU0sQ0FBQyxlQUFlLElBQUksSUFBSTtZQUNqRCxpQkFBaUIsRUFBRSxNQUFNLENBQUMsZUFBZSxJQUFJLElBQUk7WUFDakQsa0JBQWtCLEVBQUUsTUFBTSxDQUFDLGVBQWUsSUFBSSxJQUFJO1lBQ2xELGlCQUFpQixFQUFFLE1BQU0sQ0FBQyxjQUFjLElBQUksSUFBSTtZQUNoRCxRQUFRLEVBQUUsTUFBTSxDQUFDLE9BQU8sSUFBSSxDQUFDO1lBQzdCLFVBQVUsRUFBRSxNQUFNLENBQUMsU0FBUyxJQUFJLENBQUM7WUFDakMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxPQUFPLElBQUksQ0FBQztZQUM3QixlQUFlLEVBQUUsTUFBTSxDQUFDLFlBQVksSUFBSSxLQUFLO1lBQzdDLFdBQVcsRUFBRSxNQUFNLENBQUMsVUFBVSxJQUFJLENBQUM7WUFDbkMsZUFBZSxFQUFFLE1BQU0sQ0FBQyxhQUFhLElBQUksSUFBSTtZQUM3QyxzQkFBc0IsRUFBRSxNQUFNLENBQUMsZUFBZSxJQUFJLElBQUk7WUFDdEQsUUFBUSxFQUFFLE1BQU0sQ0FBQyxPQUFPLElBQUksQ0FBQztZQUM3QixpQkFBaUIsRUFBRSxNQUFNLENBQUMsZUFBZSxJQUFJLElBQUk7WUFDakQsY0FBYyxFQUFFLE1BQU0sQ0FBQyxZQUFZLElBQUksSUFBSTtZQUMzQyxrQkFBa0IsRUFBRSxNQUFNLENBQUMsZUFBZSxJQUFJLElBQUk7WUFDbEQsUUFBUSxFQUFFLE1BQU0sQ0FBQyxPQUFPLElBQUksQ0FBQztZQUM3QixVQUFVLEVBQUUsTUFBTSxDQUFDLFFBQVEsSUFBSSxLQUFLO1lBQ3BDLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxjQUFjLElBQUksSUFBSTtZQUMvQyxzQkFBc0IsRUFBRSxNQUFNLENBQUMsa0JBQWtCLElBQUksSUFBSTtZQUN6RCxPQUFPLEVBQUUsTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDO1NBQzVCLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQztBQTNHVyxRQUFBLHdCQUF3Qiw0QkEyR25DO0FBRUssTUFBTSw2QkFBNkIsR0FBRyxDQUMzQyxJQUFtQyxFQUNuQyxFQUFFO0lBQ0YsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7UUFDekIsT0FBTztZQUNMLGNBQWMsRUFBRSxNQUFNLENBQUMsWUFBWTtZQUNuQyxjQUFjLEVBQUUsTUFBTSxDQUFDLGFBQWE7WUFDcEMsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLGVBQWUsSUFBSSxFQUFFO1lBQzlDLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxlQUFlLElBQUksRUFBRTtZQUM5QyxpQkFBaUIsRUFBRSxNQUFNLENBQUMsZ0JBQWdCLElBQUksRUFBRTtTQUNqRCxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUM7QUFaVyxRQUFBLDZCQUE2QixpQ0FZeEM7QUFFSyxNQUFNLGdDQUFnQyxHQUFHLEtBQUssRUFDbkQsV0FBbUMsRUFDbkMsRUFDRSxZQUFZLEVBQ1osZ0JBQWdCLEVBQ2hCLGFBQWEsRUFDYixpQkFBaUIsRUFDakIsY0FBYyxHQU9mLEVBQ0QsRUFBRTtJQUNGLDhCQUE4QjtJQUM5QixNQUFNLGVBQWUsR0FBRyxJQUFJLEdBQUcsRUFBa0MsQ0FBQztJQUVsRSxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7UUFDN0IsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ2xDLGVBQWUsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ25DLENBQUM7UUFDRCxlQUFlLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QyxDQUFDLENBQUMsQ0FBQztJQUVILDJCQUEyQjtJQUMzQixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRTtRQUNyRSwwREFBMEQ7UUFDMUQsTUFBTSxPQUFPLEdBQUc7WUFDZCxNQUFNLEVBQUUsSUFBSSxHQUFHLEVBQVU7WUFDekIsV0FBVyxFQUFFLElBQUksR0FBRyxFQUFVO1lBQzlCLGdCQUFnQixFQUFFLElBQUksR0FBRyxFQUFVO1lBQ25DLEtBQUssRUFBRSxJQUFJLEdBQUcsRUFBVTtZQUN4QixNQUFNLEVBQUUsSUFBSSxHQUFHLEVBQVU7WUFDekIsS0FBSyxFQUFFLElBQUksR0FBRyxFQUFVO1NBQ3pCLENBQUM7UUFFRix5REFBeUQ7UUFDekQsTUFBTSxrQkFBa0IsR0FBRztZQUN6QixNQUFNLEVBQUUsSUFBSTtZQUNaLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLGdCQUFnQixFQUFFLElBQUk7WUFDdEIsS0FBSyxFQUFFLElBQUk7WUFDWCxNQUFNLEVBQUUsSUFBSTtTQUNiLENBQUM7UUFFRixtRUFBbUU7UUFDbkUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3ZCLDBCQUEwQjtZQUMxQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNwQixrQkFBa0IsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ25DLENBQUM7WUFFRCxtQ0FBbUM7WUFDbkMsSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3RCLElBQUksY0FBYyxHQUFHLEtBQUssQ0FBQztZQUMzQixJQUFJLG1CQUFtQixHQUFHLEtBQUssQ0FBQztZQUNoQyxJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFFdEIsS0FBSyxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUMzQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLEtBQUssT0FBTyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDaEQsU0FBUyxHQUFHLElBQUksQ0FBQztvQkFDakIsY0FBYyxHQUFHLElBQUksQ0FBQztnQkFDeEIsQ0FBQztnQkFDRCxJQUFJLE1BQU0sQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFFLENBQUM7b0JBQ2pDLG1CQUFtQixHQUFHLElBQUksQ0FBQztvQkFDM0IsSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7d0JBQ2xCLFNBQVMsR0FBRyxJQUFJLENBQUM7b0JBQ25CLENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLFNBQVM7Z0JBQUUsa0JBQWtCLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUNsRCxJQUFJLENBQUMsY0FBYztnQkFBRSxrQkFBa0IsQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1lBQzVELElBQUksQ0FBQyxtQkFBbUI7Z0JBQUUsa0JBQWtCLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO1lBQ3RFLElBQUksQ0FBQyxTQUFTO2dCQUFFLGtCQUFrQixDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEQsQ0FBQyxDQUFDLENBQUM7UUFFSCwrQ0FBK0M7UUFDL0MsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3ZCLDhDQUE4QztZQUM5QyxJQUFJLGtCQUFrQixDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQy9DLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ3JGLENBQUM7WUFFRCxNQUFNLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxTQUFTLEtBQUssY0FBYyxJQUFJLEtBQUssQ0FBQyxTQUFTLEtBQUssV0FBVyxDQUFDO1lBRS9GLHdCQUF3QjtZQUN4QixLQUFLLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQzNDLElBQ0Usa0JBQWtCLENBQUMsTUFBTTtvQkFDekIsTUFBTSxDQUFDLE9BQU8sS0FBSyxPQUFPO29CQUMxQixNQUFNLENBQUMsTUFBTSxFQUNiLENBQUM7b0JBQ0QsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQ2hCLEdBQUcsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxZQUFZLENBQUMsR0FBRyxDQUN6RCxNQUFNLENBQUMsT0FBTyxDQUNmLEVBQUUsQ0FDSixDQUFDO29CQUVGLDJEQUEyRDtvQkFDM0QsSUFBSSxrQkFBa0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQzt3QkFDbkMsSUFBSSxhQUFhLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDOzRCQUN2QyxPQUFPLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUUsQ0FBQyxDQUFDO3dCQUMvRCxDQUFDOzZCQUFNLENBQUM7NEJBQ04sSUFBSSxNQUFNLENBQUMsUUFBUSxLQUFLLEdBQUc7Z0NBQUUsT0FBTyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7aUNBQ3hELElBQUksTUFBTSxDQUFDLFFBQVEsS0FBSyxHQUFHO2dDQUM5QixPQUFPLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztpQ0FDL0IsSUFBSSxNQUFNLENBQUMsUUFBUSxLQUFLLEdBQUc7Z0NBQzlCLE9BQU8sQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2lDQUM5QixJQUFJLE1BQU0sQ0FBQyxRQUFRLEtBQUssS0FBSztnQ0FDaEMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQztpQ0FDMUMsSUFBSSxNQUFNLENBQUMsUUFBUSxLQUFLLElBQUk7Z0NBQy9CLE9BQU8sQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO2lDQUNyQyxJQUFJLE1BQU0sQ0FBQyxRQUFRLEtBQUssSUFBSTtnQ0FDL0IsT0FBTyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7aUNBQ25DLElBQUksTUFBTSxDQUFDLFFBQVEsS0FBSyxJQUFJO2dDQUMvQixPQUFPLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztpQ0FDN0IsSUFBSSxNQUFNLENBQUMsUUFBUSxLQUFLLElBQUk7Z0NBQy9CLE9BQU8sQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO3dCQUNyQyxDQUFDO29CQUNILENBQUM7Z0JBQ0gsQ0FBQztnQkFFRCxJQUNFLGtCQUFrQixDQUFDLGdCQUFnQjtvQkFDbkMsTUFBTSxDQUFDLE9BQU8sS0FBSyxTQUFTO29CQUM1QixNQUFNLENBQUMsUUFBUTtvQkFDZixNQUFNLENBQUMsT0FBTztvQkFDZCxNQUFNLENBQUMsTUFBTSxFQUNiLENBQUM7b0JBQ0MsT0FBTyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FDMUIsR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxHQUFHLENBQzNELE1BQU0sQ0FBQyxPQUFPLENBQ2YsRUFBRSxDQUNKLENBQUM7Z0JBQ04sQ0FBQztnQkFHRCxJQUNFLGtCQUFrQixDQUFDLE1BQU07b0JBQ3pCLGdCQUFnQjtvQkFDaEIsTUFBTSxDQUFDLE9BQU8sS0FBSyxTQUFTO29CQUM1QixNQUFNLENBQUMsT0FBTyxLQUFLLEtBQUs7b0JBQ3hCLE1BQU0sQ0FBQyxNQUFNLEVBQ2IsQ0FBQztvQkFDRCxNQUFNLFVBQVUsR0FBRyxjQUFjLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDO29CQUM1RSxJQUFJLFVBQVUsRUFBRSxDQUFDO3dCQUNmLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO29CQUNqQyxDQUFDO29CQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2hELENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBUUgsTUFBTSxZQUFZLEdBQWlCLEVBQUUsQ0FBQztRQUV0QyxJQUFJLGtCQUFrQixDQUFDLE1BQU0sSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN6RCxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzVFLENBQUM7UUFFRCxJQUFJLGtCQUFrQixDQUFDLFdBQVcsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNuRSxZQUFZLENBQUMsSUFBSSxDQUFDO2dCQUNoQixLQUFLLEVBQUUsYUFBYTtnQkFDcEIsTUFBTSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQzthQUN4QyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsSUFDRSxrQkFBa0IsQ0FBQyxnQkFBZ0I7WUFDbkMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksR0FBRyxDQUFDLEVBQ2pDLENBQUM7WUFDRCxZQUFZLENBQUMsSUFBSSxDQUFDO2dCQUNoQixLQUFLLEVBQUUsaUJBQWlCO2dCQUN4QixNQUFNLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUM7YUFDN0MsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELElBQUksa0JBQWtCLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3ZELFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDMUUsQ0FBQztRQUVELElBQUksa0JBQWtCLENBQUMsTUFBTSxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3pELFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUUsQ0FBQztRQUVELCtEQUErRDtRQUMvRCxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzNCLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDM0UsQ0FBQztRQUVELHVFQUF1RTtRQUN2RSxNQUFNLGFBQWEsR0FBRyxZQUFZO2FBQy9CLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNiLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSztZQUNoQixNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzlELENBQUMsQ0FBQzthQUNGLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBRWxELE9BQU87WUFDTCxPQUFPO1lBQ1AsT0FBTyxFQUFFLGFBQWE7U0FDdkIsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBcE5XLFFBQUEsZ0NBQWdDLG9DQW9OM0M7QUFFSyxNQUFNLG1DQUFtQyxHQUFHLENBQ2pELFVBQWdDLEVBQ2hDLGVBQW9CLEVBQ3BCLFVBTUMsRUFDRCxFQUFFO0lBQ0YsTUFBTSxPQUFPLEdBQUc7UUFDZCxNQUFNLEVBQUUsSUFBSSxHQUFHLEVBQVU7UUFDekIsV0FBVyxFQUFFLElBQUksR0FBRyxFQUFVO1FBQzlCLGdCQUFnQixFQUFFLElBQUksR0FBRyxFQUFVO1FBQ25DLEtBQUssRUFBRSxJQUFJLEdBQUcsRUFBVTtRQUN4QixNQUFNLEVBQUUsSUFBSSxHQUFHLEVBQVU7UUFDekIsS0FBSyxFQUFFLElBQUksR0FBRyxFQUFVO0tBQ3pCLENBQUM7SUFFRixPQUFPO0lBQ1AsSUFBSSxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDeEIsTUFBTSxTQUFTLEdBQ2IsVUFBVSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ3JELE1BQU0sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDOUIsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELDJDQUEyQztJQUMzQyxJQUFJLGNBQWMsR0FBRyxLQUFLLENBQUM7SUFDM0IsSUFBSSxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFDN0IsSUFBSSxjQUFjLEdBQUcsS0FBSyxDQUFDO0lBRTNCLHdDQUF3QztJQUN4QyxNQUFNLGdCQUFnQixHQUFHLFVBQVUsQ0FBQyxTQUFTLEtBQUssY0FBYyxJQUFJLFVBQVUsQ0FBQyxTQUFTLEtBQUssV0FBVyxDQUFDO0lBRXpHLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtRQUNoRCxJQUFJLE1BQU0sQ0FBQyxPQUFPLEtBQUssT0FBTyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoRCxjQUFjLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLE1BQU0sWUFBWSxHQUNoQixVQUFVLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDO1lBQ3BFLE1BQU0sUUFBUSxHQUNaLFVBQVUsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDO1lBQ2hFLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsWUFBWSxJQUFJLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFFbEQsZ0ZBQWdGO1lBQ2hGLElBQUksVUFBVSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7Z0JBQ2xELE9BQU8sQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUUsQ0FBQyxDQUFDO1lBQzFFLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLE1BQU0sQ0FBQyxRQUFRLEtBQUssR0FBRztvQkFBRSxPQUFPLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztxQkFDeEQsSUFBSSxNQUFNLENBQUMsUUFBUSxLQUFLLEdBQUc7b0JBQUUsT0FBTyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7cUJBQy9ELElBQUksTUFBTSxDQUFDLFFBQVEsS0FBSyxHQUFHO29CQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO3FCQUM5RCxJQUFJLE1BQU0sQ0FBQyxRQUFRLEtBQUssS0FBSztvQkFDaEMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQztxQkFDMUMsSUFBSSxNQUFNLENBQUMsUUFBUSxLQUFLLElBQUk7b0JBQy9CLE9BQU8sQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO3FCQUNyQyxJQUFJLE1BQU0sQ0FBQyxRQUFRLEtBQUssSUFBSTtvQkFDL0IsT0FBTyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7cUJBQ25DLElBQUksTUFBTSxDQUFDLFFBQVEsS0FBSyxJQUFJO29CQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO3FCQUM5RCxJQUFJLE1BQU0sQ0FBQyxRQUFRLEtBQUssSUFBSTtvQkFBRSxPQUFPLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN0RSxDQUFDO1FBQ0gsQ0FBQztRQUNELElBQ0UsTUFBTSxDQUFDLE9BQU8sS0FBSyxTQUFTO1lBQzVCLE1BQU0sQ0FBQyxRQUFRO1lBQ2YsTUFBTSxDQUFDLE9BQU87WUFDZCxNQUFNLENBQUMsTUFBTSxFQUNiLENBQUM7WUFDRCxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7WUFDeEIsTUFBTSxTQUFTLEdBQ2IsVUFBVSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUM7WUFDbkUsTUFBTSxZQUFZLEdBQ2hCLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUM7WUFDcEUsT0FBTyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxHQUFHLFNBQVMsSUFBSSxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQy9ELENBQUM7UUFFRCxvQ0FBb0M7UUFDcEMsSUFDRSxnQkFBZ0I7WUFDaEIsTUFBTSxDQUFDLE9BQU8sS0FBSyxTQUFTO1lBQzVCLE1BQU0sQ0FBQyxPQUFPLEtBQUssS0FBSztZQUN4QixNQUFNLENBQUMsTUFBTSxFQUNiLENBQUM7WUFDRCxjQUFjLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLE1BQU0sVUFBVSxHQUNkLFVBQVUsQ0FBQyxjQUFjLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDO1lBQ3ZFLElBQUksVUFBVSxFQUFFLENBQUM7Z0JBQ2YsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDakMsQ0FBQztZQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEQsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0lBRUgscURBQXFEO0lBQ3JELE1BQU0sTUFBTSxHQUEyQixFQUFFLENBQUM7SUFFMUMsNkNBQTZDO0lBQzdDLElBQ0UsY0FBYztRQUNkLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLENBQUM7UUFDdkIsZUFBZSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEtBQUssT0FBTyxDQUFDLEVBQ2xFLENBQUM7UUFDRCxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7SUFFRCxJQUNFLGNBQWM7UUFDZCxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRyxDQUFDO1FBQzVCLGVBQWUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxLQUFLLGFBQWEsQ0FBQyxFQUN4RSxDQUFDO1FBQ0QsTUFBTSxDQUFDLGFBQWEsQ0FBQyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoRyxDQUFDO0lBRUQsSUFDRSxnQkFBZ0I7UUFDaEIsT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksR0FBRyxDQUFDO1FBQ2pDLGVBQWUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxLQUFLLGlCQUFpQixDQUFDLEVBQzVFLENBQUM7UUFDRCxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6RyxDQUFDO0lBRUQsSUFDRSxVQUFVLENBQUMsUUFBUTtRQUNuQixPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDO1FBQ3RCLGVBQWUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxLQUFLLE1BQU0sQ0FBQyxFQUNqRSxDQUFDO1FBQ0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBRUQsSUFDRSxnQkFBZ0I7UUFDaEIsY0FBYztRQUNkLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLENBQUM7UUFDdkIsZUFBZSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEtBQUssT0FBTyxDQUFDLEVBQ2xFLENBQUM7UUFDRCxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQ3pELENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQ25CLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsMkRBQTJEO0lBQzNELElBQ0UsZ0JBQWdCO1FBQ2hCLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLENBQUM7UUFDdEIsZUFBZSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFXLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEtBQUssT0FBTyxDQUFDLEVBQ3ZFLENBQUM7UUFDRCxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFFRCwwREFBMEQ7SUFDMUQsTUFBTSxZQUFZLEdBQTJCLEVBQUUsQ0FBQztJQUNoRCxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxRSxLQUFLLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQzdCLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELE9BQU8sWUFBWSxDQUFDO0FBQ3RCLENBQUMsQ0FBQztBQTdKVyxRQUFBLG1DQUFtQyx1Q0E2SjlDO0FBRUssTUFBTSxtQkFBbUIsR0FBRyxDQUNqQyxjQUErQixFQUMvQixlQUFpQyxFQUNmLEVBQUU7SUFDcEIsTUFBTSxhQUFhLEdBQXFCLEVBQUUsQ0FBQztJQUUzQywrREFBK0Q7SUFDL0QsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLEdBQUcsQ0FDaEMsY0FBYztTQUNYLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUM7U0FDeEMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQzdELENBQUM7SUFFRiw4Q0FBOEM7SUFDOUMsTUFBTSxVQUFVLEdBQUcsSUFBSSxHQUFHLEVBQXVCLENBQUM7SUFFbEQsdUJBQXVCO0lBQ3ZCLEtBQUssTUFBTSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1FBQzNELFVBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELG1DQUFtQztJQUNuQyxLQUFLLE1BQU0sV0FBVyxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQzFDLE1BQU0sY0FBYyxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksR0FBRyxFQUFFLENBQUM7UUFFdEUsNEJBQTRCO1FBQzVCLFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFFakUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCwyRUFBMkU7SUFDM0UsS0FBSyxNQUFNLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxJQUFJLFVBQVUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1FBQ25ELGFBQWEsQ0FBQyxJQUFJLENBQUM7WUFDakIsS0FBSztZQUNMLE1BQU0sRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDOUQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELHVDQUF1QztJQUN2QyxPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUN0RSxDQUFDLENBQUM7QUF6Q1csUUFBQSxtQkFBbUIsdUJBeUM5QiJ9