docxmlater 10.1.3 → 10.1.5

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 (371) hide show
  1. package/README.md +759 -754
  2. package/dist/constants/legacyCompatFlags.js +1 -1
  3. package/dist/constants/legacyCompatFlags.js.map +1 -1
  4. package/dist/constants/limits.js.map +1 -1
  5. package/dist/core/Document.d.ts +50 -50
  6. package/dist/core/Document.d.ts.map +1 -1
  7. package/dist/core/Document.js +483 -471
  8. package/dist/core/Document.js.map +1 -1
  9. package/dist/core/DocumentContent.d.ts +9 -9
  10. package/dist/core/DocumentContent.d.ts.map +1 -1
  11. package/dist/core/DocumentContent.js +1 -1
  12. package/dist/core/DocumentContent.js.map +1 -1
  13. package/dist/core/DocumentGenerator.d.ts +11 -11
  14. package/dist/core/DocumentGenerator.d.ts.map +1 -1
  15. package/dist/core/DocumentGenerator.js +251 -251
  16. package/dist/core/DocumentGenerator.js.map +1 -1
  17. package/dist/core/DocumentIdManager.js.map +1 -1
  18. package/dist/core/DocumentParser.d.ts +15 -15
  19. package/dist/core/DocumentParser.d.ts.map +1 -1
  20. package/dist/core/DocumentParser.js +2123 -2155
  21. package/dist/core/DocumentParser.js.map +1 -1
  22. package/dist/core/DocumentValidator.d.ts.map +1 -1
  23. package/dist/core/DocumentValidator.js +2 -5
  24. package/dist/core/DocumentValidator.js.map +1 -1
  25. package/dist/core/Relationship.js.map +1 -1
  26. package/dist/core/RelationshipManager.d.ts.map +1 -1
  27. package/dist/core/RelationshipManager.js +3 -3
  28. package/dist/core/RelationshipManager.js.map +1 -1
  29. package/dist/elements/AlternateContent.js.map +1 -1
  30. package/dist/elements/Bookmark.d.ts.map +1 -1
  31. package/dist/elements/Bookmark.js +3 -1
  32. package/dist/elements/Bookmark.js.map +1 -1
  33. package/dist/elements/BookmarkManager.d.ts.map +1 -1
  34. package/dist/elements/BookmarkManager.js.map +1 -1
  35. package/dist/elements/Comment.d.ts.map +1 -1
  36. package/dist/elements/Comment.js +9 -6
  37. package/dist/elements/Comment.js.map +1 -1
  38. package/dist/elements/CommentManager.d.ts.map +1 -1
  39. package/dist/elements/CommentManager.js +18 -17
  40. package/dist/elements/CommentManager.js.map +1 -1
  41. package/dist/elements/CommonTypes.d.ts +21 -21
  42. package/dist/elements/CommonTypes.d.ts.map +1 -1
  43. package/dist/elements/CommonTypes.js +56 -56
  44. package/dist/elements/CommonTypes.js.map +1 -1
  45. package/dist/elements/CustomXml.js.map +1 -1
  46. package/dist/elements/Endnote.d.ts.map +1 -1
  47. package/dist/elements/Endnote.js +6 -6
  48. package/dist/elements/Endnote.js.map +1 -1
  49. package/dist/elements/EndnoteManager.d.ts.map +1 -1
  50. package/dist/elements/EndnoteManager.js +6 -7
  51. package/dist/elements/EndnoteManager.js.map +1 -1
  52. package/dist/elements/Field.d.ts.map +1 -1
  53. package/dist/elements/Field.js +82 -25
  54. package/dist/elements/Field.js.map +1 -1
  55. package/dist/elements/FieldHelpers.d.ts.map +1 -1
  56. package/dist/elements/FieldHelpers.js.map +1 -1
  57. package/dist/elements/FontManager.d.ts.map +1 -1
  58. package/dist/elements/FontManager.js +1 -1
  59. package/dist/elements/FontManager.js.map +1 -1
  60. package/dist/elements/Footer.js +2 -2
  61. package/dist/elements/Footer.js.map +1 -1
  62. package/dist/elements/Footnote.d.ts.map +1 -1
  63. package/dist/elements/Footnote.js +6 -6
  64. package/dist/elements/Footnote.js.map +1 -1
  65. package/dist/elements/FootnoteManager.d.ts.map +1 -1
  66. package/dist/elements/FootnoteManager.js +6 -7
  67. package/dist/elements/FootnoteManager.js.map +1 -1
  68. package/dist/elements/Header.js +2 -2
  69. package/dist/elements/Header.js.map +1 -1
  70. package/dist/elements/HeaderFooterManager.js.map +1 -1
  71. package/dist/elements/Hyperlink.d.ts +5 -3
  72. package/dist/elements/Hyperlink.d.ts.map +1 -1
  73. package/dist/elements/Hyperlink.js +134 -76
  74. package/dist/elements/Hyperlink.js.map +1 -1
  75. package/dist/elements/Image.d.ts.map +1 -1
  76. package/dist/elements/Image.js +238 -106
  77. package/dist/elements/Image.js.map +1 -1
  78. package/dist/elements/ImageManager.d.ts.map +1 -1
  79. package/dist/elements/ImageManager.js +1 -1
  80. package/dist/elements/ImageManager.js.map +1 -1
  81. package/dist/elements/ImageRun.js +1 -1
  82. package/dist/elements/ImageRun.js.map +1 -1
  83. package/dist/elements/MathElement.js.map +1 -1
  84. package/dist/elements/Paragraph.d.ts +24 -24
  85. package/dist/elements/Paragraph.d.ts.map +1 -1
  86. package/dist/elements/Paragraph.js +181 -188
  87. package/dist/elements/Paragraph.js.map +1 -1
  88. package/dist/elements/PreservedElement.js.map +1 -1
  89. package/dist/elements/PropertyChangeTypes.d.ts.map +1 -1
  90. package/dist/elements/PropertyChangeTypes.js +6 -6
  91. package/dist/elements/PropertyChangeTypes.js.map +1 -1
  92. package/dist/elements/RangeMarker.d.ts.map +1 -1
  93. package/dist/elements/RangeMarker.js.map +1 -1
  94. package/dist/elements/Revision.d.ts.map +1 -1
  95. package/dist/elements/Revision.js +4 -5
  96. package/dist/elements/Revision.js.map +1 -1
  97. package/dist/elements/RevisionContent.js.map +1 -1
  98. package/dist/elements/RevisionManager.d.ts.map +1 -1
  99. package/dist/elements/RevisionManager.js +40 -48
  100. package/dist/elements/RevisionManager.js.map +1 -1
  101. package/dist/elements/Run.d.ts +16 -16
  102. package/dist/elements/Run.d.ts.map +1 -1
  103. package/dist/elements/Run.js +256 -238
  104. package/dist/elements/Run.js.map +1 -1
  105. package/dist/elements/Section.d.ts.map +1 -1
  106. package/dist/elements/Section.js +36 -11
  107. package/dist/elements/Section.js.map +1 -1
  108. package/dist/elements/Shape.d.ts.map +1 -1
  109. package/dist/elements/Shape.js.map +1 -1
  110. package/dist/elements/StructuredDocumentTag.d.ts +6 -6
  111. package/dist/elements/StructuredDocumentTag.d.ts.map +1 -1
  112. package/dist/elements/StructuredDocumentTag.js +99 -104
  113. package/dist/elements/StructuredDocumentTag.js.map +1 -1
  114. package/dist/elements/Table.d.ts +11 -11
  115. package/dist/elements/Table.d.ts.map +1 -1
  116. package/dist/elements/Table.js +102 -107
  117. package/dist/elements/Table.js.map +1 -1
  118. package/dist/elements/TableCell.d.ts +10 -10
  119. package/dist/elements/TableCell.d.ts.map +1 -1
  120. package/dist/elements/TableCell.js +105 -106
  121. package/dist/elements/TableCell.js.map +1 -1
  122. package/dist/elements/TableGridChange.d.ts.map +1 -1
  123. package/dist/elements/TableGridChange.js.map +1 -1
  124. package/dist/elements/TableOfContents.d.ts.map +1 -1
  125. package/dist/elements/TableOfContents.js +4 -4
  126. package/dist/elements/TableOfContents.js.map +1 -1
  127. package/dist/elements/TableOfContentsElement.js.map +1 -1
  128. package/dist/elements/TableRow.d.ts.map +1 -1
  129. package/dist/elements/TableRow.js +13 -6
  130. package/dist/elements/TableRow.js.map +1 -1
  131. package/dist/elements/TextBox.d.ts.map +1 -1
  132. package/dist/elements/TextBox.js +3 -5
  133. package/dist/elements/TextBox.js.map +1 -1
  134. package/dist/formatting/AbstractNumbering.d.ts +4 -4
  135. package/dist/formatting/AbstractNumbering.d.ts.map +1 -1
  136. package/dist/formatting/AbstractNumbering.js +54 -49
  137. package/dist/formatting/AbstractNumbering.js.map +1 -1
  138. package/dist/formatting/NumberingInstance.d.ts.map +1 -1
  139. package/dist/formatting/NumberingInstance.js +1 -3
  140. package/dist/formatting/NumberingInstance.js.map +1 -1
  141. package/dist/formatting/NumberingLevel.d.ts +5 -5
  142. package/dist/formatting/NumberingLevel.d.ts.map +1 -1
  143. package/dist/formatting/NumberingLevel.js +119 -125
  144. package/dist/formatting/NumberingLevel.js.map +1 -1
  145. package/dist/formatting/NumberingManager.d.ts.map +1 -1
  146. package/dist/formatting/NumberingManager.js +9 -9
  147. package/dist/formatting/NumberingManager.js.map +1 -1
  148. package/dist/formatting/Style.d.ts +11 -11
  149. package/dist/formatting/Style.d.ts.map +1 -1
  150. package/dist/formatting/Style.js +219 -247
  151. package/dist/formatting/Style.js.map +1 -1
  152. package/dist/formatting/StylesManager.d.ts +2 -2
  153. package/dist/formatting/StylesManager.d.ts.map +1 -1
  154. package/dist/formatting/StylesManager.js +96 -102
  155. package/dist/formatting/StylesManager.js.map +1 -1
  156. package/dist/helpers/CleanupHelper.d.ts +1 -1
  157. package/dist/helpers/CleanupHelper.d.ts.map +1 -1
  158. package/dist/helpers/CleanupHelper.js +6 -6
  159. package/dist/helpers/CleanupHelper.js.map +1 -1
  160. package/dist/images/ImageOptimizer.js +7 -7
  161. package/dist/images/ImageOptimizer.js.map +1 -1
  162. package/dist/index.d.ts +9 -9
  163. package/dist/index.d.ts.map +1 -1
  164. package/dist/index.js.map +1 -1
  165. package/dist/managers/DrawingManager.js.map +1 -1
  166. package/dist/tracking/DocumentTrackingContext.d.ts.map +1 -1
  167. package/dist/tracking/DocumentTrackingContext.js +23 -7
  168. package/dist/tracking/DocumentTrackingContext.js.map +1 -1
  169. package/dist/tracking/TrackingContext.d.ts.map +1 -1
  170. package/dist/tracking/TrackingContext.js.map +1 -1
  171. package/dist/types/compatibility-types.js.map +1 -1
  172. package/dist/types/formatting.js.map +1 -1
  173. package/dist/types/list-types.d.ts +6 -6
  174. package/dist/types/list-types.js.map +1 -1
  175. package/dist/types/settings-types.js.map +1 -1
  176. package/dist/types/styleConfig.d.ts +2 -2
  177. package/dist/types/styleConfig.js.map +1 -1
  178. package/dist/utils/ChangelogGenerator.d.ts.map +1 -1
  179. package/dist/utils/ChangelogGenerator.js +97 -101
  180. package/dist/utils/ChangelogGenerator.js.map +1 -1
  181. package/dist/utils/CompatibilityUpgrader.d.ts.map +1 -1
  182. package/dist/utils/CompatibilityUpgrader.js +1 -1
  183. package/dist/utils/CompatibilityUpgrader.js.map +1 -1
  184. package/dist/utils/InMemoryRevisionAcceptor.d.ts.map +1 -1
  185. package/dist/utils/InMemoryRevisionAcceptor.js +1 -6
  186. package/dist/utils/InMemoryRevisionAcceptor.js.map +1 -1
  187. package/dist/utils/MoveOperationHelper.d.ts.map +1 -1
  188. package/dist/utils/MoveOperationHelper.js +1 -1
  189. package/dist/utils/MoveOperationHelper.js.map +1 -1
  190. package/dist/utils/RevisionAwareProcessor.d.ts.map +1 -1
  191. package/dist/utils/RevisionAwareProcessor.js +2 -4
  192. package/dist/utils/RevisionAwareProcessor.js.map +1 -1
  193. package/dist/utils/RevisionWalker.d.ts.map +1 -1
  194. package/dist/utils/RevisionWalker.js +4 -12
  195. package/dist/utils/RevisionWalker.js.map +1 -1
  196. package/dist/utils/SelectiveRevisionAcceptor.d.ts.map +1 -1
  197. package/dist/utils/SelectiveRevisionAcceptor.js +2 -6
  198. package/dist/utils/SelectiveRevisionAcceptor.js.map +1 -1
  199. package/dist/utils/ShadingResolver.d.ts.map +1 -1
  200. package/dist/utils/ShadingResolver.js +1 -1
  201. package/dist/utils/ShadingResolver.js.map +1 -1
  202. package/dist/utils/acceptRevisions.d.ts.map +1 -1
  203. package/dist/utils/acceptRevisions.js +23 -12
  204. package/dist/utils/acceptRevisions.js.map +1 -1
  205. package/dist/utils/cnfStyleDecoder.d.ts +1 -1
  206. package/dist/utils/cnfStyleDecoder.d.ts.map +1 -1
  207. package/dist/utils/cnfStyleDecoder.js +40 -40
  208. package/dist/utils/cnfStyleDecoder.js.map +1 -1
  209. package/dist/utils/corruptionDetection.d.ts.map +1 -1
  210. package/dist/utils/corruptionDetection.js.map +1 -1
  211. package/dist/utils/dateFormatting.js.map +1 -1
  212. package/dist/utils/deepClone.js +1 -1
  213. package/dist/utils/deepClone.js.map +1 -1
  214. package/dist/utils/diagnostics.d.ts.map +1 -1
  215. package/dist/utils/diagnostics.js +1 -1
  216. package/dist/utils/diagnostics.js.map +1 -1
  217. package/dist/utils/errorHandling.js.map +1 -1
  218. package/dist/utils/formatting.d.ts.map +1 -1
  219. package/dist/utils/formatting.js +10 -2
  220. package/dist/utils/formatting.js.map +1 -1
  221. package/dist/utils/list-detection.d.ts +2 -2
  222. package/dist/utils/list-detection.d.ts.map +1 -1
  223. package/dist/utils/list-detection.js +21 -23
  224. package/dist/utils/list-detection.js.map +1 -1
  225. package/dist/utils/logger.d.ts.map +1 -1
  226. package/dist/utils/logger.js +12 -7
  227. package/dist/utils/logger.js.map +1 -1
  228. package/dist/utils/parsingHelpers.js.map +1 -1
  229. package/dist/utils/stripTrackedChanges.d.ts.map +1 -1
  230. package/dist/utils/stripTrackedChanges.js +3 -3
  231. package/dist/utils/stripTrackedChanges.js.map +1 -1
  232. package/dist/utils/textDiff.d.ts +1 -1
  233. package/dist/utils/textDiff.js +8 -8
  234. package/dist/utils/textDiff.js.map +1 -1
  235. package/dist/utils/units.js.map +1 -1
  236. package/dist/utils/validation.d.ts.map +1 -1
  237. package/dist/utils/validation.js +24 -7
  238. package/dist/utils/validation.js.map +1 -1
  239. package/dist/utils/xmlSanitization.d.ts.map +1 -1
  240. package/dist/utils/xmlSanitization.js +3 -3
  241. package/dist/utils/xmlSanitization.js.map +1 -1
  242. package/dist/validation/RevisionAutoFixer.d.ts.map +1 -1
  243. package/dist/validation/RevisionAutoFixer.js +5 -5
  244. package/dist/validation/RevisionAutoFixer.js.map +1 -1
  245. package/dist/validation/RevisionValidator.d.ts.map +1 -1
  246. package/dist/validation/RevisionValidator.js +7 -9
  247. package/dist/validation/RevisionValidator.js.map +1 -1
  248. package/dist/validation/ValidationRules.js +3 -3
  249. package/dist/validation/ValidationRules.js.map +1 -1
  250. package/dist/validation/index.js.map +1 -1
  251. package/dist/xml/XMLBuilder.d.ts +1 -1
  252. package/dist/xml/XMLBuilder.d.ts.map +1 -1
  253. package/dist/xml/XMLBuilder.js +98 -100
  254. package/dist/xml/XMLBuilder.js.map +1 -1
  255. package/dist/xml/XMLParser.d.ts.map +1 -1
  256. package/dist/xml/XMLParser.js +61 -66
  257. package/dist/xml/XMLParser.js.map +1 -1
  258. package/dist/zip/ZipHandler.d.ts.map +1 -1
  259. package/dist/zip/ZipHandler.js.map +1 -1
  260. package/dist/zip/ZipReader.d.ts.map +1 -1
  261. package/dist/zip/ZipReader.js +1 -3
  262. package/dist/zip/ZipReader.js.map +1 -1
  263. package/dist/zip/ZipWriter.d.ts +1 -1
  264. package/dist/zip/ZipWriter.d.ts.map +1 -1
  265. package/dist/zip/ZipWriter.js +28 -36
  266. package/dist/zip/ZipWriter.js.map +1 -1
  267. package/dist/zip/types.js +1 -1
  268. package/dist/zip/types.js.map +1 -1
  269. package/package.json +92 -92
  270. package/src/__tests__/helper-methods.test.ts +512 -512
  271. package/src/constants/legacyCompatFlags.ts +138 -138
  272. package/src/constants/limits.ts +50 -50
  273. package/src/core/Document.ts +985 -1145
  274. package/src/core/DocumentContent.ts +461 -467
  275. package/src/core/DocumentGenerator.ts +1133 -1104
  276. package/src/core/DocumentIdManager.ts +158 -158
  277. package/src/core/DocumentParser.ts +2347 -2716
  278. package/src/core/DocumentValidator.ts +363 -372
  279. package/src/core/Relationship.ts +367 -367
  280. package/src/core/RelationshipManager.ts +429 -428
  281. package/src/elements/AlternateContent.ts +42 -42
  282. package/src/elements/Bookmark.ts +212 -210
  283. package/src/elements/BookmarkManager.ts +247 -250
  284. package/src/elements/Comment.ts +356 -359
  285. package/src/elements/CommentManager.ts +499 -502
  286. package/src/elements/CommonTypes.ts +524 -549
  287. package/src/elements/CustomXml.ts +36 -36
  288. package/src/elements/Endnote.ts +221 -217
  289. package/src/elements/EndnoteManager.ts +246 -249
  290. package/src/elements/Field.ts +1292 -1233
  291. package/src/elements/FieldHelpers.ts +329 -333
  292. package/src/elements/FontManager.ts +336 -339
  293. package/src/elements/Footer.ts +269 -269
  294. package/src/elements/Footnote.ts +221 -217
  295. package/src/elements/FootnoteManager.ts +246 -249
  296. package/src/elements/Header.ts +269 -269
  297. package/src/elements/HeaderFooterManager.ts +219 -219
  298. package/src/elements/Hyperlink.ts +1288 -1193
  299. package/src/elements/Image.ts +1982 -1756
  300. package/src/elements/ImageManager.ts +437 -432
  301. package/src/elements/ImageRun.ts +59 -59
  302. package/src/elements/MathElement.ts +65 -65
  303. package/src/elements/Paragraph.ts +4347 -4287
  304. package/src/elements/PreservedElement.ts +53 -53
  305. package/src/elements/PropertyChangeTypes.ts +458 -442
  306. package/src/elements/RangeMarker.ts +382 -400
  307. package/src/elements/Revision.ts +1198 -1217
  308. package/src/elements/RevisionContent.ts +73 -73
  309. package/src/elements/RevisionManager.ts +1070 -1070
  310. package/src/elements/Run.ts +3103 -3073
  311. package/src/elements/Section.ts +1521 -1421
  312. package/src/elements/Shape.ts +884 -873
  313. package/src/elements/StructuredDocumentTag.ts +1176 -1207
  314. package/src/elements/Table.ts +2468 -2524
  315. package/src/elements/TableCell.ts +1617 -1621
  316. package/src/elements/TableGridChange.ts +149 -151
  317. package/src/elements/TableOfContents.ts +701 -691
  318. package/src/elements/TableOfContentsElement.ts +89 -89
  319. package/src/elements/TableRow.ts +960 -929
  320. package/src/elements/TextBox.ts +766 -768
  321. package/src/formatting/AbstractNumbering.ts +580 -579
  322. package/src/formatting/NumberingInstance.ts +295 -299
  323. package/src/formatting/NumberingLevel.ts +981 -1040
  324. package/src/formatting/NumberingManager.ts +833 -827
  325. package/src/formatting/Style.ts +1785 -1879
  326. package/src/formatting/StylesManager.ts +1090 -1130
  327. package/src/helpers/CleanupHelper.ts +524 -524
  328. package/src/images/ImageOptimizer.ts +274 -274
  329. package/src/index.ts +559 -554
  330. package/src/managers/DrawingManager.ts +319 -319
  331. package/src/tracking/DocumentTrackingContext.ts +687 -674
  332. package/src/tracking/TrackingContext.ts +175 -173
  333. package/src/types/compatibility-types.ts +49 -49
  334. package/src/types/formatting.ts +210 -210
  335. package/src/types/list-types.ts +14 -14
  336. package/src/types/settings-types.ts +59 -59
  337. package/src/types/styleConfig.ts +189 -189
  338. package/src/utils/ChangelogGenerator.ts +1583 -1581
  339. package/src/utils/CompatibilityUpgrader.ts +235 -237
  340. package/src/utils/InMemoryRevisionAcceptor.ts +691 -696
  341. package/src/utils/MoveOperationHelper.ts +233 -238
  342. package/src/utils/RevisionAwareProcessor.ts +518 -526
  343. package/src/utils/RevisionWalker.ts +427 -457
  344. package/src/utils/SelectiveRevisionAcceptor.ts +662 -683
  345. package/src/utils/ShadingResolver.ts +105 -107
  346. package/src/utils/acceptRevisions.ts +723 -714
  347. package/src/utils/cnfStyleDecoder.ts +212 -217
  348. package/src/utils/corruptionDetection.ts +346 -345
  349. package/src/utils/dateFormatting.ts +20 -20
  350. package/src/utils/deepClone.ts +77 -78
  351. package/src/utils/diagnostics.ts +125 -129
  352. package/src/utils/errorHandling.ts +80 -80
  353. package/src/utils/formatting.ts +220 -213
  354. package/src/utils/list-detection.ts +32 -42
  355. package/src/utils/logger.ts +412 -404
  356. package/src/utils/parsingHelpers.ts +190 -190
  357. package/src/utils/stripTrackedChanges.ts +356 -353
  358. package/src/utils/textDiff.ts +100 -100
  359. package/src/utils/units.ts +421 -421
  360. package/src/utils/validation.ts +553 -542
  361. package/src/utils/xmlSanitization.ts +179 -182
  362. package/src/validation/RevisionAutoFixer.ts +541 -542
  363. package/src/validation/RevisionValidator.ts +470 -460
  364. package/src/validation/ValidationRules.ts +338 -338
  365. package/src/validation/index.ts +30 -30
  366. package/src/xml/XMLBuilder.ts +857 -871
  367. package/src/xml/XMLParser.ts +877 -919
  368. package/src/zip/ZipHandler.ts +629 -637
  369. package/src/zip/ZipReader.ts +295 -299
  370. package/src/zip/ZipWriter.ts +374 -390
  371. package/src/zip/types.ts +116 -116
@@ -1 +1 @@
1
- {"version":3,"file":"Section.d.ts","sourceRoot":"","sources":["../../src/elements/Section.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Section.d.ts","sourceRoot":"","sources":["../../src/elements/Section.ts"],"names":[],"mappings":"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"}
@@ -94,7 +94,9 @@ class Section {
94
94
  return this.properties.columns?.separator ?? false;
95
95
  }
96
96
  getColumnWidths() {
97
- return this.properties.columns?.columnWidths ? [...this.properties.columns.columnWidths] : undefined;
97
+ return this.properties.columns?.columnWidths
98
+ ? [...this.properties.columns.columnWidths]
99
+ : undefined;
98
100
  }
99
101
  getTextDirection() {
100
102
  return this.properties.textDirection;
@@ -125,7 +127,8 @@ class Section {
125
127
  };
126
128
  }
127
129
  this.properties.pageSize.orientation = orientation;
128
- if (orientation === 'landscape' && this.properties.pageSize.width < this.properties.pageSize.height) {
130
+ if (orientation === 'landscape' &&
131
+ this.properties.pageSize.width < this.properties.pageSize.height) {
129
132
  const temp = this.properties.pageSize.width;
130
133
  this.properties.pageSize.width = this.properties.pageSize.height;
131
134
  this.properties.pageSize.height = temp;
@@ -246,7 +249,9 @@ class Section {
246
249
  this.properties.columns.equalWidth = false;
247
250
  this.properties.columns.count = widths.length;
248
251
  if (this.trackingContext?.isEnabled()) {
249
- this.trackingContext.trackSectionChange(this, 'columns', prev, { ...this.properties.columns });
252
+ this.trackingContext.trackSectionChange(this, 'columns', prev, {
253
+ ...this.properties.columns,
254
+ });
250
255
  }
251
256
  return this;
252
257
  }
@@ -375,7 +380,9 @@ class Section {
375
380
  fnChildren.push(XMLBuilder_1.XMLBuilder.wSelf('numFmt', { 'w:val': this.properties.footnotePr.numberFormat }));
376
381
  }
377
382
  if (this.properties.footnotePr.startNumber !== undefined) {
378
- fnChildren.push(XMLBuilder_1.XMLBuilder.wSelf('numStart', { 'w:val': this.properties.footnotePr.startNumber.toString() }));
383
+ fnChildren.push(XMLBuilder_1.XMLBuilder.wSelf('numStart', {
384
+ 'w:val': this.properties.footnotePr.startNumber.toString(),
385
+ }));
379
386
  }
380
387
  if (this.properties.footnotePr.restart) {
381
388
  fnChildren.push(XMLBuilder_1.XMLBuilder.wSelf('numRestart', { 'w:val': this.properties.footnotePr.restart }));
@@ -393,7 +400,9 @@ class Section {
393
400
  enChildren.push(XMLBuilder_1.XMLBuilder.wSelf('numFmt', { 'w:val': this.properties.endnotePr.numberFormat }));
394
401
  }
395
402
  if (this.properties.endnotePr.startNumber !== undefined) {
396
- enChildren.push(XMLBuilder_1.XMLBuilder.wSelf('numStart', { 'w:val': this.properties.endnotePr.startNumber.toString() }));
403
+ enChildren.push(XMLBuilder_1.XMLBuilder.wSelf('numStart', {
404
+ 'w:val': this.properties.endnotePr.startNumber.toString(),
405
+ }));
397
406
  }
398
407
  if (this.properties.endnotePr.restart) {
399
408
  enChildren.push(XMLBuilder_1.XMLBuilder.wSelf('numRestart', { 'w:val': this.properties.endnotePr.restart }));
@@ -554,8 +563,14 @@ class Section {
554
563
  }
555
564
  if (this.properties.textDirection) {
556
565
  const textDirMap = {
557
- ltr: 'lrTb', rtl: 'tbRl', tbRl: 'tbRl', btLr: 'btLr',
558
- lrTb: 'lrTb', lrTbV: 'lrTbV', tbRlV: 'tbRlV', tbLrV: 'tbLrV',
566
+ ltr: 'lrTb',
567
+ rtl: 'tbRl',
568
+ tbRl: 'tbRl',
569
+ btLr: 'btLr',
570
+ lrTb: 'lrTb',
571
+ lrTbV: 'lrTbV',
572
+ tbRlV: 'tbRlV',
573
+ tbLrV: 'tbLrV',
559
574
  };
560
575
  const val = textDirMap[this.properties.textDirection] || this.properties.textDirection;
561
576
  children.push(XMLBuilder_1.XMLBuilder.wSelf('textDirection', { 'w:val': val }));
@@ -649,7 +664,9 @@ class Section {
649
664
  }
650
665
  }
651
666
  if (prev.columns) {
652
- const colAttrs = { 'w:num': prev.columns.count?.toString() || '1' };
667
+ const colAttrs = {
668
+ 'w:num': prev.columns.count?.toString() || '1',
669
+ };
653
670
  if (prev.columns.space !== undefined)
654
671
  colAttrs['w:space'] = prev.columns.space.toString();
655
672
  prevChildren.push(XMLBuilder_1.XMLBuilder.wSelf('cols', colAttrs));
@@ -665,10 +682,18 @@ class Section {
665
682
  }
666
683
  if (prev.textDirection) {
667
684
  const tdMap = {
668
- ltr: 'lrTb', rtl: 'tbRl', tbRl: 'tbRl', btLr: 'btLr',
669
- lrTb: 'lrTb', lrTbV: 'lrTbV', tbRlV: 'tbRlV', tbLrV: 'tbLrV',
685
+ ltr: 'lrTb',
686
+ rtl: 'tbRl',
687
+ tbRl: 'tbRl',
688
+ btLr: 'btLr',
689
+ lrTb: 'lrTb',
690
+ lrTbV: 'lrTbV',
691
+ tbRlV: 'tbRlV',
692
+ tbLrV: 'tbLrV',
670
693
  };
671
- prevChildren.push(XMLBuilder_1.XMLBuilder.wSelf('textDirection', { 'w:val': tdMap[prev.textDirection] || prev.textDirection }));
694
+ prevChildren.push(XMLBuilder_1.XMLBuilder.wSelf('textDirection', {
695
+ 'w:val': tdMap[prev.textDirection] || prev.textDirection,
696
+ }));
672
697
  }
673
698
  }
674
699
  const prevSectPr = XMLBuilder_1.XMLBuilder.w('sectPr', undefined, prevChildren);
@@ -1 +1 @@
1
- {"version":3,"file":"Section.js","sourceRoot":"","sources":["../../src/elements/Section.ts"],"names":[],"mappings":";;;AAOA,kDAA2D;AAC3D,0CAA4C;AAiT5C,MAAa,OAAO;IACV,UAAU,CAAoB;IAE9B,eAAe,CAAyD;IAExE,YAAY,CAAgB;IAMpC,YAAY,aAAgC,EAAE;QAE5C,IAAI,CAAC,UAAU,GAAG;YAChB,QAAQ,EAAE,UAAU,CAAC,QAAQ,IAAI;gBAC/B,KAAK,EAAE,kBAAU,CAAC,MAAM,CAAC,KAAK;gBAC9B,MAAM,EAAE,kBAAU,CAAC,MAAM,CAAC,MAAM;gBAChC,WAAW,EAAE,UAAU;aACxB;YACD,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI;gBAC7B,GAAG,EAAE,IAAI;gBACT,MAAM,EAAE,IAAI;gBACZ,IAAI,EAAE,IAAI;gBACV,KAAK,EAAE,IAAI;gBACX,MAAM,EAAE,GAAG;gBACX,MAAM,EAAE,GAAG;aACZ;YAED,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI;gBAC7B,KAAK,EAAE,CAAC;aACT;YAED,IAAI,EAAE,UAAU,CAAC,IAAI,IAAI,UAAU;YACnC,aAAa,EAAE,UAAU,CAAC,aAAa;YACvC,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,SAAS,EAAE,UAAU,CAAC,SAAS;YAE/B,iBAAiB,EAAE,UAAU,CAAC,iBAAiB;YAC/C,WAAW,EAAE,UAAU,CAAC,WAAW;YACnC,aAAa,EAAE,UAAU,CAAC,aAAa;YACvC,WAAW,EAAE,UAAU,CAAC,WAAW;SACpC,CAAC;IACJ,CAAC;IAOD,mBAAmB,CAAC,OAA8D;QAChF,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;IACjC,CAAC;IAKD,eAAe;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAKD,eAAe,CAAC,MAAgC;QAC9C,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;IAC7B,CAAC;IAKD,iBAAiB;QACf,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;IAChC,CAAC;IAKD,aAAa;QACX,OAAO,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;IAChC,CAAC;IAUD,WAAW;QACT,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAChF,CAAC;IAMD,cAAc;QACZ,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/C,CAAC;IAMD,UAAU;QACR,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9E,CAAC;IAMD,UAAU;QACR,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9E,CAAC;IAMD,cAAc;QACZ,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;IAC9B,CAAC;IAMD,gBAAgB;QACd,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1F,CAAC;IAMD,YAAY;QACV,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,IAAI,KAAK,CAAC;IAC5C,CAAC;IAMD,mBAAmB;QACjB,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9E,CAAC;IAOD,kBAAkB,CAAC,IAAkC;QACnD,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAMD,mBAAmB;QACjB,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9E,CAAC;IAOD,kBAAkB,CAAC,IAAkC;QACnD,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAMD,oBAAoB;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC;IAC3C,CAAC;IAMD,cAAc;QACZ,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACtF,CAAC;IAMD,kBAAkB;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,IAAI,KAAK,CAAC;IACrD,CAAC;IAMD,eAAe;QACb,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACvG,CAAC;IAMD,gBAAgB;QACd,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;IACvC,CAAC;IAMD,OAAO;QACL,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,KAAK,CAAC;IACvC,CAAC;IAMD,YAAY;QACV,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,IAAI,KAAK,CAAC;IAC5C,CAAC;IAMD,UAAU;QACR,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9E,CAAC;IAYD,WAAW,CAAC,KAAa,EAAE,MAAc,EAAE,cAA+B,UAAU;QAClF,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACpF,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;QAC1D,IAAI,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,EAAE,CAAC;YACtC,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC5F,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAMD,cAAc,CAAC,WAA4B;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC;QACnD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;YAC9B,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG;gBACzB,KAAK,EAAE,kBAAU,CAAC,MAAM,CAAC,KAAK;gBAC9B,MAAM,EAAE,kBAAU,CAAC,MAAM,CAAC,MAAM;aACjC,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,WAAW,GAAG,WAAW,CAAC;QAGnD,IAAI,WAAW,KAAK,WAAW,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACpG,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC5C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;YACjE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;QACzC,CAAC;QAED,IAAI,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YAC9D,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;QAClF,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAMD,UAAU,CAAC,OAAgB;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAClF,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QACzC,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG;YACxB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,QAAQ,EAAE,MAAM,IAAI,GAAG;YACjD,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,QAAQ,EAAE,MAAM,IAAI,GAAG;YACjD,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,QAAQ,EAAE,MAAM;SAC3C,CAAC;QACF,IAAI,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,EAAE,CAAC;YACtC,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC1F,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAOD,UAAU,CAAC,KAAa,EAAE,KAAK,GAAG,GAAG;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAClF,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG;YACxB,KAAK;YACL,KAAK;YACL,UAAU,EAAE,IAAI;SACjB,CAAC;QACF,IAAI,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,EAAE,CAAC;YACtC,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC1F,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAMD,cAAc,CAAC,IAAiB;QAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAClC,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC;QAC5B,IAAI,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YACvD,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAOD,gBAAgB,CAAC,KAAc,EAAE,MAAyB;QACxD,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9F,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAClD,IAAI,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,EAAE,CAAC;YACtC,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QACtG,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAMD,YAAY,CAAC,SAAS,GAAG,IAAI;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QACvC,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,SAAS,CAAC;QACtC,IAAI,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5D,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QAC9E,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAOD,kBAAkB,CAAC,IAAkC,EAAE,GAAW;QAChE,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,EAAE,CAAC;QAC/B,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;QACpC,IAAI,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACtD,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,EAAE,mBAAmB,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QACtF,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAOD,kBAAkB,CAAC,IAAkC,EAAE,GAAW;QAChE,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,EAAE,CAAC;QAC/B,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;QACpC,IAAI,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACtD,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,EAAE,mBAAmB,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QACtF,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAOD,oBAAoB,CAAC,SAA4B;QAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC;QAC/C,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,SAAS,CAAC;QAC9C,IAAI,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5D,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QACtF,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAOD,cAAc,CAAC,KAAc,EAAE,KAAc;QAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1F,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QAC/C,IAAI,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,EAAE,CAAC;YACtC,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAClG,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAOD,kBAAkB,CAAC,SAAS,GAAG,IAAI;QACjC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC;QAChD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QACzC,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;QAC9C,IAAI,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5D,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QACpF,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAMD,eAAe,CAAC,MAAgB;QAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAClF,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;QACrD,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,GAAG,MAAM,CAAC;QAC9C,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,GAAG,KAAK,CAAC;QAC3C,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;QAC9C,IAAI,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,EAAE,CAAC;YACtC,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;QACjG,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAMD,gBAAgB,CAAC,SAAwB;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QAC3C,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,SAAS,CAAC;QAC1C,IAAI,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5D,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QAClF,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAOD,gBAAgB,CAAC,OAAsB;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9F,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;QAC/C,IAAI,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,EAAE,CAAC;YACtC,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QACtG,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAMD,gBAAgB;QACd,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1F,CAAC;IAKD,kBAAkB;QAChB,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,SAAS,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAMD,qBAAqB,CAAC,KAAqB;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACxF,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC;QAC1C,IAAI,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,EAAE,CAAC;YACtC,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAChG,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAMD,oBAAoB,CAAC,KAAqB;QACxC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACtF,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC;QACzC,IAAI,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,EAAE,CAAC;YACtC,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC9F,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAMD,YAAY,CAAC,SAAS,GAAG,IAAI;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QACvC,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,SAAS,CAAC;QACtC,IAAI,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5D,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QAC9E,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAMD,iBAAiB,CAAC,QAAQ,GAAG,IAAI;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QACtC,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACpC,IAAI,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC3D,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC5E,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAMD,kBAAkB,CAAC,GAAW;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC;QAC/C,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,GAAG,CAAC;QACxC,IAAI,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACtD,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QAC9E,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAQD,mBAAmB,CAAC,SAAiB,EAAE,OAA0B;QAC/D,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QACxC,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,SAAS,CAAC;QACtC,IAAI,OAAO;YAAE,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC;QAC/C,IAAI,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,EAAE,CAAC;YACtC,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,EAAE,kBAAkB,EAC9D,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,EAC1C,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAKD,KAAK;QACH,MAAM,QAAQ,GAAiB,EAAE,CAAC;QAGlC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC5B,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBAClC,QAAQ,CAAC,IAAI,CACX,uBAAU,CAAC,KAAK,CAAC,iBAAiB,EAAE;oBAClC,QAAQ,EAAE,OAAO;oBACjB,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK;iBACtC,CAAC,CACH,CAAC;YACJ,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjC,QAAQ,CAAC,IAAI,CACX,uBAAU,CAAC,KAAK,CAAC,iBAAiB,EAAE;oBAClC,QAAQ,EAAE,MAAM;oBAChB,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI;iBACrC,CAAC,CACH,CAAC;YACJ,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpC,QAAQ,CAAC,IAAI,CACX,uBAAU,CAAC,KAAK,CAAC,iBAAiB,EAAE;oBAClC,QAAQ,EAAE,SAAS;oBACnB,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO;iBACxC,CAAC,CACH,CAAC;YACJ,CAAC;QACH,CAAC;QAGD,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC5B,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBAClC,QAAQ,CAAC,IAAI,CACX,uBAAU,CAAC,KAAK,CAAC,iBAAiB,EAAE;oBAClC,QAAQ,EAAE,OAAO;oBACjB,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK;iBACtC,CAAC,CACH,CAAC;YACJ,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjC,QAAQ,CAAC,IAAI,CACX,uBAAU,CAAC,KAAK,CAAC,iBAAiB,EAAE;oBAClC,QAAQ,EAAE,MAAM;oBAChB,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI;iBACrC,CAAC,CACH,CAAC;YACJ,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpC,QAAQ,CAAC,IAAI,CACX,uBAAU,CAAC,KAAK,CAAC,iBAAiB,EAAE;oBAClC,QAAQ,EAAE,SAAS;oBACnB,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO;iBACxC,CAAC,CACH,CAAC;YACJ,CAAC;QACH,CAAC;QAQD,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;YAC/B,MAAM,UAAU,GAAiB,EAAE,CAAC;YACpC,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;gBACxC,UAAU,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YAC7F,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;gBAC5C,UAAU,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;YACpG,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;gBACzD,UAAU,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;YAChH,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;gBACvC,UAAU,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACnG,CAAC;YACD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,QAAQ,CAAC,IAAI,CAAC,uBAAU,CAAC,CAAC,CAAC,YAAY,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;QAGD,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;YAC9B,MAAM,UAAU,GAAiB,EAAE,CAAC;YACpC,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;gBACvC,UAAU,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YAC5F,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;gBAC3C,UAAU,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;YACnG,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;gBACxD,UAAU,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;YAC/G,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;gBACtC,UAAU,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAClG,CAAC;YACD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,QAAQ,CAAC,IAAI,CAAC,uBAAU,CAAC,CAAC,CAAC,WAAW,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;QAGD,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YACzB,QAAQ,CAAC,IAAI,CACX,uBAAU,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAC5D,CAAC;QACJ,CAAC;QAGD,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;YAC7B,MAAM,KAAK,GAA2B;gBACpC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE;gBAChD,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE;aAClD,CAAC;YACF,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,WAAW,KAAK,WAAW,EAAE,CAAC;gBACzD,KAAK,CAAC,UAAU,CAAC,GAAG,WAAW,CAAC;YAClC,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;QACjD,CAAC;QAGD,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC5B,MAAM,KAAK,GAA2B;gBACpC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE;gBAC/C,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE;gBACnD,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE;gBACrD,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE;aAClD,CAAC;YACF,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;YACvE,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;YACvE,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACjD,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YAChE,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QAClD,CAAC;QAGD,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;YAChC,MAAM,KAAK,GAA2B,EAAE,CAAC;YACzC,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBACpD,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YAClE,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBACpD,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YAClE,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClC,QAAQ,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;QAGD,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;YAChC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;YAC9C,MAAM,cAAc,GAA2B,EAAE,CAAC;YAClD,IAAI,SAAS,CAAC,UAAU;gBAAE,cAAc,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC,UAAU,CAAC;YAChF,IAAI,SAAS,CAAC,OAAO;gBAAE,cAAc,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;YACvE,IAAI,SAAS,CAAC,MAAM;gBAAE,cAAc,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC;YAEpE,MAAM,cAAc,GAAiB,EAAE,CAAC;YACxC,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,GAAkB,EAAE,EAAE;gBACvD,MAAM,MAAM,GAAoC,EAAE,CAAC;gBACnD,IAAI,GAAG,CAAC,KAAK;oBAAE,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;gBAE3C,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS;oBAAE,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;gBACjF,IAAI,GAAG,CAAC,KAAK;oBAAE,MAAM,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;gBAE7C,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS;oBAAE,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;gBACzF,IAAI,GAAG,CAAC,MAAM;oBAAE,MAAM,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC;gBACzC,IAAI,GAAG,CAAC,KAAK;oBAAE,MAAM,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC;gBACvC,IAAI,GAAG,CAAC,UAAU;oBAAE,MAAM,CAAC,cAAc,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC;gBAC5D,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS;oBAAE,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;gBACxD,cAAc,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;YACtD,CAAC,CAAC;YAEF,IAAI,SAAS,CAAC,GAAG;gBAAE,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;YACrD,IAAI,SAAS,CAAC,IAAI;gBAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;YACxD,IAAI,SAAS,CAAC,MAAM;gBAAE,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;YAC9D,IAAI,SAAS,CAAC,KAAK;gBAAE,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;YAE3D,QAAQ,CAAC,IAAI,CAAC,uBAAU,CAAC,CAAC,CAAC,WAAW,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC;QAC3E,CAAC;QAGD,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;YAClC,MAAM,KAAK,GAA2B,EAAE,CAAC;YACzC,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBACxD,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YACxE,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBACtD,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YACpE,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACzD,KAAK,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAC1E,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;gBAC1C,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC;YAC7D,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClC,QAAQ,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;QAGD,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YAC7E,MAAM,KAAK,GAA2B,EAAE,CAAC;YACzC,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,KAAK,KAAK,SAAS,EAAE,CAAC;gBACvD,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YACpE,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC;gBAC1C,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC;YACxD,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5C,KAAK,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;YAC9D,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;gBAC5B,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YAC/C,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClC,QAAQ,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;QAGD,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC5B,MAAM,KAAK,GAA2B;gBACpC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE;aAClD,CAAC;YACF,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAChD,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC9D,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;gBACrD,KAAK,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YACzE,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBACpD,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YACjE,CAAC;YAED,MAAM,WAAW,GAAiB,EAAE,CAAC;YACrC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;gBACzC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;oBACzD,WAAW,CAAC,IAAI,CACd,uBAAU,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,CACrD,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,QAAQ,CAAC,IAAI,CACX,WAAW,CAAC,MAAM,GAAG,CAAC;gBACpB,CAAC,CAAC,uBAAU,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC;gBAC1C,CAAC,CAAC,uBAAU,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CACpC,CAAC;QACJ,CAAC;QAGD,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;YAC7B,QAAQ,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;QAC9C,CAAC;QAGD,IAAI,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC;YACtC,QAAQ,CAAC,IAAI,CACX,uBAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAC3E,CAAC;QACJ,CAAC;QAGD,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;YAC9B,QAAQ,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;QAC/C,CAAC;QAGD,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;YAC9B,QAAQ,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QAC/D,CAAC;QAGD,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;YAClC,MAAM,UAAU,GAA2B;gBACzC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;gBACpD,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO;aAC7D,CAAC;YACF,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;YACvF,QAAQ,CAAC,IAAI,CACX,uBAAU,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CACpD,CAAC;QACJ,CAAC;QAGD,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YACzB,QAAQ,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1C,CAAC;QAGD,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;YAC9B,QAAQ,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;QAC/C,CAAC;QAGD,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC5B,MAAM,KAAK,GAA2B,EAAE,CAAC;YACzC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjC,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC;YACjD,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBACpD,KAAK,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;YACtE,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBACpD,KAAK,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;YACtE,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClC,QAAQ,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;QAGD,IAAI,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC;YACtC,QAAQ,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,iBAAiB,EAAE;gBAChD,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,iBAAiB;aAC1C,CAAC,CAAC,CAAC;QACN,CAAC;QAID,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,MAAM,WAAW,GAAoC;gBACnD,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE;gBAC5B,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM;gBACpC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI;aACjC,CAAC;YACF,MAAM,YAAY,GAAiB,EAAE,CAAC;YACtC,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC;YAClD,IAAI,IAAI,EAAE,CAAC;gBAGT,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBACd,YAAY,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBACtE,CAAC;gBACD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAClB,MAAM,SAAS,GAA2B;wBACxC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,OAAO;wBACjD,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,OAAO;qBACnD,CAAC;oBACF,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,KAAK,WAAW,EAAE,CAAC;wBAC9C,SAAS,CAAC,UAAU,CAAC,GAAG,WAAW,CAAC;oBACtC,CAAC;oBACD,YAAY,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;gBACzD,CAAC;gBACD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBACjB,MAAM,UAAU,GAA2B,EAAE,CAAC;oBAC9C,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,KAAK,SAAS;wBAAE,UAAU,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;oBACtF,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS;wBAAE,UAAU,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;oBAC/F,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS;wBAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACzF,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS;wBAAE,UAAU,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;oBAC5F,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS;wBAAE,UAAU,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;oBAC/F,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS;wBAAE,UAAU,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;oBAC/F,YAAY,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;gBAC3D,CAAC;gBACD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;oBACvB,MAAM,OAAO,GAA2B,EAAE,CAAC;oBAC3C,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,KAAK,SAAS;wBAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;oBAC3G,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,KAAK,SAAS;wBAAE,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;oBACrG,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO;wBAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;oBAClF,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,KAAK,SAAS;wBAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;oBAC9G,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACpC,YAAY,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;oBAC5D,CAAC;gBACH,CAAC;gBACD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;oBACvB,MAAM,OAAO,GAA2B,EAAE,CAAC;oBAC3C,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,KAAK,SAAS;wBAAE,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;oBACrG,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM;wBAAE,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;oBAC5E,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACpC,YAAY,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;oBAC5D,CAAC;gBACH,CAAC;gBACD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBACjB,MAAM,QAAQ,GAA2B,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAE,CAAC;oBAC5F,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS;wBAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;oBAC1F,YAAY,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;gBACxD,CAAC;gBACD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAClB,YAAY,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;gBAClD,CAAC;gBACD,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBAC3B,YAAY,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;gBACrF,CAAC;gBACD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;oBACnB,YAAY,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;gBACjD,CAAC;gBACD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;oBACvB,MAAM,KAAK,GAA2B;wBACpC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;wBACpD,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO;qBAC7D,CAAC;oBACF,YAAY,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;gBACrH,CAAC;YACH,CAAC;YACD,MAAM,UAAU,GAAG,uBAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;YACnE,QAAQ,CAAC,IAAI,CAAC,uBAAU,CAAC,CAAC,CAAC,cAAc,EAAE,WAAW,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACzE,CAAC;QAED,OAAO,uBAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IACrD,CAAC;IAMD,KAAK;QAEH,MAAM,gBAAgB,GAAsB,EAAE,CAAC;QAE/C,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;YAC7B,gBAAgB,CAAC,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QAC9D,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC5B,gBAAgB,CAAC,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QAC5D,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC5B,gBAAgB,CAAC,OAAO,GAAG;gBACzB,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO;gBAC1B,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY;oBAChD,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC;oBAC3C,CAAC,CAAC,SAAS;aACd,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;YAClC,gBAAgB,CAAC,aAAa,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;QACxE,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC5B,gBAAgB,CAAC,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QAC5D,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC5B,gBAAgB,CAAC,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QAC5D,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;YAChC,gBAAgB,CAAC,WAAW,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;QACpE,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC5B,gBAAgB,CAAC,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QAC5D,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;YAClC,gBAAgB,CAAC,aAAa,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;QACxE,CAAC;QAGD,gBAAgB,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAC7C,gBAAgB,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QACvD,gBAAgB,CAAC,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC;QACvE,gBAAgB,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QAC/D,gBAAgB,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAC7C,gBAAgB,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAEvD,OAAO,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACvC,CAAC;IAKD,MAAM,CAAC,MAAM,CAAC,UAA8B;QAC1C,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;IACjC,CAAC;IAKD,MAAM,CAAC,YAAY;QACjB,OAAO,IAAI,OAAO,CAAC;YACjB,QAAQ,EAAE;gBACR,KAAK,EAAE,kBAAU,CAAC,MAAM,CAAC,KAAK;gBAC9B,MAAM,EAAE,kBAAU,CAAC,MAAM,CAAC,MAAM;gBAChC,WAAW,EAAE,UAAU;aACxB;SACF,CAAC,CAAC;IACL,CAAC;IAKD,MAAM,CAAC,QAAQ;QACb,OAAO,IAAI,OAAO,CAAC;YACjB,QAAQ,EAAE;gBACR,KAAK,EAAE,kBAAU,CAAC,EAAE,CAAC,KAAK;gBAC1B,MAAM,EAAE,kBAAU,CAAC,EAAE,CAAC,MAAM;gBAC5B,WAAW,EAAE,UAAU;aACxB;SACF,CAAC,CAAC;IACL,CAAC;IAMD,MAAM,CAAC,eAAe,CAAC,WAA4B,QAAQ;QACzD,MAAM,IAAI,GAAG,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,kBAAU,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAU,CAAC,MAAM,CAAC;QACnE,OAAO,IAAI,OAAO,CAAC;YACjB,QAAQ,EAAE;gBACR,KAAK,EAAE,IAAI,CAAC,MAAM;gBAClB,MAAM,EAAE,IAAI,CAAC,KAAK;gBAClB,WAAW,EAAE,WAAW;aACzB;SACF,CAAC,CAAC;IACL,CAAC;CACF;AAnlCD,0BAmlCC","sourcesContent":["/**\r\n * Section - Represents a document section with page setup properties\r\n *\r\n * Sections allow different page setups within a single document (margins, orientation, etc.)\r\n * Each section can have its own headers, footers, and page numbering.\r\n */\r\n\r\nimport { XMLBuilder, XMLElement } from '../xml/XMLBuilder';\r\nimport { PAGE_SIZES } from '../utils/units';\r\n\r\n/**\r\n * Page orientation\r\n */\r\nexport type PageOrientation = 'portrait' | 'landscape';\r\n\r\n/**\r\n * Section break type\r\n */\r\nexport type SectionType = 'nextPage' | 'continuous' | 'evenPage' | 'oddPage' | 'nextColumn';\r\n\r\n/**\r\n * Page numbering format\r\n */\r\n/**\r\n * Per ECMA-376 Part 1 §17.18.59 (ST_NumberFormat)\r\n * Comprehensive set of page number formats\r\n */\r\nexport type PageNumberFormat =\r\n | 'decimal' | 'lowerRoman' | 'upperRoman' | 'lowerLetter' | 'upperLetter'\r\n | 'ordinal' | 'cardinalText' | 'ordinalText'\r\n | 'hex' | 'chicago' | 'decimalZero'\r\n | 'decimalEnclosedCircle' | 'decimalEnclosedFullstop' | 'decimalEnclosedParen'\r\n | 'ideographDigital' | 'ideographTraditional' | 'ideographLegalTraditional'\r\n | 'ideographEnclosedCircle' | 'ideographZodiac' | 'ideographZodiacTraditional'\r\n | 'chineseCounting' | 'chineseCountingThousand' | 'chineseLegalSimplified'\r\n | 'japaneseCounting' | 'japaneseDigitalTenThousand' | 'japaneseLegal'\r\n | 'koreanCounting' | 'koreanDigital' | 'koreanDigital2' | 'koreanLegal'\r\n | 'taiwaneseCounting' | 'taiwaneseCountingThousand' | 'taiwaneseDigital'\r\n | 'aiueo' | 'aiueoFullWidth' | 'iroha' | 'irohaFullWidth'\r\n | 'arabicAbjad' | 'arabicAlpha' | 'hebrew1' | 'hebrew2'\r\n | 'hindiConsonants' | 'hindiCounting' | 'hindiNumbers' | 'hindiVowels'\r\n | 'thaiCounting' | 'thaiLetters' | 'thaiNumbers'\r\n | 'vietnameseCounting'\r\n | 'russianLower' | 'russianUpper'\r\n | 'numberInDash' | 'dollarText' | 'bullet'\r\n | 'bahtText' | 'ganada' | 'chosung'\r\n | 'none'\r\n | string; // Allow any format string for forward compatibility\r\n\r\n/**\r\n * Page size properties\r\n */\r\nexport interface PageSize {\r\n /** Width in twips */\r\n width: number;\r\n /** Height in twips */\r\n height: number;\r\n /** Orientation */\r\n orientation?: PageOrientation;\r\n}\r\n\r\n/**\r\n * Margin properties\r\n */\r\nexport interface Margins {\r\n /** Top margin in twips */\r\n top: number;\r\n /** Bottom margin in twips */\r\n bottom: number;\r\n /** Left margin in twips */\r\n left: number;\r\n /** Right margin in twips */\r\n right: number;\r\n /** Header distance from top in twips */\r\n header?: number;\r\n /** Footer distance from bottom in twips */\r\n footer?: number;\r\n /** Gutter margin in twips */\r\n gutter?: number;\r\n}\r\n\r\n/**\r\n * Column properties\r\n */\r\nexport interface Columns {\r\n /** Number of columns */\r\n count: number;\r\n /** Space between columns in twips */\r\n space?: number;\r\n /** Equal column widths */\r\n equalWidth?: boolean;\r\n /** Show column separator line */\r\n separator?: boolean;\r\n /** Individual column widths (for unequal columns) in twips */\r\n columnWidths?: number[];\r\n}\r\n\r\n/**\r\n * Page numbering properties\r\n */\r\nexport interface PageNumbering {\r\n /** Starting page number */\r\n start?: number;\r\n /** Number format */\r\n format?: PageNumberFormat;\r\n}\r\n\r\n/**\r\n * Paper source (printer tray) properties\r\n */\r\nexport interface PaperSource {\r\n /** First page tray number */\r\n first?: number;\r\n /** Other pages tray number */\r\n other?: number;\r\n}\r\n\r\n/**\r\n * Vertical page alignment\r\n */\r\nexport type VerticalAlignment = 'top' | 'center' | 'bottom' | 'both';\r\n\r\n/**\r\n * Text direction\r\n */\r\nexport type TextDirection = 'ltr' | 'rtl' | 'tbRl' | 'btLr';\r\n\r\n/**\r\n * Document grid type for East Asian typography\r\n */\r\nexport type DocumentGridType = 'default' | 'lines' | 'linesAndChars' | 'snapToChars';\r\n\r\n/**\r\n * Document grid properties\r\n */\r\nexport interface DocumentGrid {\r\n /** Grid type */\r\n type?: DocumentGridType;\r\n /** Lines per page */\r\n linePitch?: number;\r\n /** Characters per line */\r\n charSpace?: number;\r\n}\r\n\r\n/**\r\n * Line numbering restart mode\r\n */\r\nexport type LineNumberingRestart = 'newPage' | 'newSection' | 'continuous';\r\n\r\n/**\r\n * Line numbering properties\r\n * Per ECMA-376 Part 1, Section 17.6.8 (w:lnNumType element)\r\n */\r\nexport interface LineNumbering {\r\n /** Display line number every N lines (countBy attribute) */\r\n countBy?: number;\r\n /** Starting line number */\r\n start?: number;\r\n /** Distance from text margin in twips */\r\n distance?: number;\r\n /** When to restart line numbering */\r\n restart?: LineNumberingRestart;\r\n}\r\n\r\n/**\r\n * Footnote/endnote position\r\n * Per ECMA-376 Part 1 §17.11.6 and §17.11.7\r\n */\r\nexport type NotePosition = 'pageBottom' | 'beneathText' | 'sectEnd' | 'docEnd';\r\n\r\n/**\r\n * Note numbering restart mode\r\n */\r\nexport type NoteNumberRestart = 'continuous' | 'eachSect' | 'eachPage';\r\n\r\n/**\r\n * Chapter separator character for page numbering\r\n * Per ECMA-376 Part 1 §17.18.5\r\n */\r\nexport type ChapterSeparator = 'colon' | 'emDash' | 'enDash' | 'hyphen' | 'period';\r\n\r\n/**\r\n * Footnote/endnote section-level properties\r\n */\r\nexport interface NoteProperties {\r\n /** Note positioning */\r\n position?: NotePosition;\r\n /** Number format */\r\n numberFormat?: PageNumberFormat;\r\n /** Starting number */\r\n startNumber?: number;\r\n /** Restart numbering mode */\r\n restart?: NoteNumberRestart;\r\n}\r\n\r\n/**\r\n * Page border definition for a single side\r\n * Per ECMA-376 Part 1 §17.6.10\r\n */\r\nexport interface PageBorderDef {\r\n /** Border style (single, double, dashed, etc.) */\r\n style?: string;\r\n /** Border size in eighths of a point */\r\n size?: number;\r\n /** Border color in hex format (without #) */\r\n color?: string;\r\n /** Space between border and page edge/text in points */\r\n space?: number;\r\n /** Whether to show shadow */\r\n shadow?: boolean;\r\n /** Whether to include frame around page */\r\n frame?: boolean;\r\n /** Theme color reference */\r\n themeColor?: string;\r\n /** Art border ID (for decorative borders) */\r\n artId?: number;\r\n}\r\n\r\n/**\r\n * Page borders configuration\r\n * Per ECMA-376 Part 1 §17.6.10\r\n */\r\nexport interface PageBorders {\r\n /** Top page border */\r\n top?: PageBorderDef;\r\n /** Bottom page border */\r\n bottom?: PageBorderDef;\r\n /** Left page border */\r\n left?: PageBorderDef;\r\n /** Right page border */\r\n right?: PageBorderDef;\r\n /** Whether border is measured from page edge or text edge */\r\n offsetFrom?: 'page' | 'text';\r\n /** Display on all pages, first page only, or not first page */\r\n display?: 'allPages' | 'firstPage' | 'notFirstPage';\r\n /** Z-ordering relative to text */\r\n zOrder?: 'front' | 'back';\r\n}\r\n\r\n/**\r\n * Section properties\r\n */\r\nexport interface SectionProperties {\r\n /** Page size */\r\n pageSize?: PageSize;\r\n /** Margins */\r\n margins?: Margins;\r\n /** Column layout */\r\n columns?: Columns;\r\n /** Section break type */\r\n type?: SectionType;\r\n /** Page numbering */\r\n pageNumbering?: PageNumbering;\r\n /** Header reference IDs */\r\n headers?: {\r\n default?: string; // rId for default header\r\n first?: string; // rId for first page header\r\n even?: string; // rId for even page header\r\n };\r\n /** Footer reference IDs */\r\n footers?: {\r\n default?: string; // rId for default footer\r\n first?: string; // rId for first page footer\r\n even?: string; // rId for even page footer\r\n };\r\n /** Title page (different first page) */\r\n titlePage?: boolean;\r\n /** Vertical page alignment */\r\n verticalAlignment?: VerticalAlignment;\r\n /** Paper source (printer tray) */\r\n paperSource?: PaperSource;\r\n /** Text direction (LTR/RTL support) */\r\n textDirection?: TextDirection;\r\n /** Right-to-left section layout */\r\n bidi?: boolean;\r\n /** Gutter on right side (for RTL) */\r\n rtlGutter?: boolean;\r\n /** Document grid for snapping text to grid */\r\n docGrid?: DocumentGrid;\r\n /** Line numbering configuration */\r\n lineNumbering?: LineNumbering;\r\n /** Section-level footnote properties (w:footnotePr) */\r\n footnotePr?: NoteProperties;\r\n /** Section-level endnote properties (w:endnotePr) */\r\n endnotePr?: NoteProperties;\r\n /** Suppress endnotes in this section (w:noEndnote) */\r\n noEndnote?: boolean;\r\n /** Form protection for this section (w:formProt) */\r\n formProt?: boolean;\r\n /** Page borders per ECMA-376 Part 1 §17.6.10 */\r\n pageBorders?: PageBorders;\r\n /** Printer settings relationship ID (w:printerSettings r:id) */\r\n printerSettingsId?: string;\r\n /** Chapter style heading level for page numbering (w:pgNumType w:chapStyle) */\r\n chapStyle?: number;\r\n /** Chapter separator for page numbering (w:pgNumType w:chapSep) */\r\n chapSep?: ChapterSeparator;\r\n}\r\n\r\n/**\r\n * Represents a document section\r\n */\r\n/**\r\n * Section property change tracking (w:sectPrChange)\r\n * Per ECMA-376 Part 1 §17.13.5.32\r\n */\r\nexport interface SectPrChange {\r\n author: string;\r\n date: string;\r\n id: string;\r\n previousProperties: Record<string, any>;\r\n}\r\n\r\nexport class Section {\r\n private properties: SectionProperties;\r\n /** Tracking context for automatic change tracking */\r\n private trackingContext?: import('../tracking/TrackingContext').TrackingContext;\r\n /** Section property change tracking (w:sectPrChange) */\r\n private sectPrChange?: SectPrChange;\r\n\r\n /**\r\n * Creates a new section\r\n * @param properties Section properties\r\n */\r\n constructor(properties: SectionProperties = {}) {\r\n // Set defaults only where necessary\r\n this.properties = {\r\n pageSize: properties.pageSize || {\r\n width: PAGE_SIZES.LETTER.width,\r\n height: PAGE_SIZES.LETTER.height,\r\n orientation: 'portrait',\r\n },\r\n margins: properties.margins || {\r\n top: 1440, // 1 inch\r\n bottom: 1440,\r\n left: 1440,\r\n right: 1440,\r\n header: 720, // 0.5 inch\r\n footer: 720,\r\n },\r\n // Default to single column layout\r\n columns: properties.columns || {\r\n count: 1,\r\n },\r\n // Default to next page section break\r\n type: properties.type || 'nextPage',\r\n pageNumbering: properties.pageNumbering,\r\n headers: properties.headers,\r\n footers: properties.footers,\r\n titlePage: properties.titlePage,\r\n // Phase 4.5 - New properties\r\n verticalAlignment: properties.verticalAlignment,\r\n paperSource: properties.paperSource,\r\n textDirection: properties.textDirection,\r\n pageBorders: properties.pageBorders,\r\n };\r\n }\r\n\r\n /**\r\n * Sets the tracking context for automatic change tracking.\r\n * Called by Document when track changes is enabled.\r\n * @internal\r\n */\r\n _setTrackingContext(context: import('../tracking/TrackingContext').TrackingContext): void {\r\n this.trackingContext = context;\r\n }\r\n\r\n /**\r\n * Gets the section property change tracking info\r\n */\r\n getSectPrChange(): SectPrChange | undefined {\r\n return this.sectPrChange;\r\n }\r\n\r\n /**\r\n * Sets the section property change tracking info\r\n */\r\n setSectPrChange(change: SectPrChange | undefined): void {\r\n this.sectPrChange = change;\r\n }\r\n\r\n /**\r\n * Clears the section property change tracking\r\n */\r\n clearSectPrChange(): void {\r\n this.sectPrChange = undefined;\r\n }\r\n\r\n /**\r\n * Gets the section properties\r\n */\r\n getProperties(): SectionProperties {\r\n return { ...this.properties };\r\n }\r\n\r\n // ============================================================================\r\n // Individual Property Getters\r\n // ============================================================================\r\n\r\n /**\r\n * Gets the page size settings\r\n * @returns Page size object with width, height, and orientation, or undefined\r\n */\r\n getPageSize(): PageSize | undefined {\r\n return this.properties.pageSize ? { ...this.properties.pageSize } : undefined;\r\n }\r\n\r\n /**\r\n * Gets the page orientation\r\n * @returns 'portrait' or 'landscape', or undefined if not set\r\n */\r\n getOrientation(): PageOrientation | undefined {\r\n return this.properties.pageSize?.orientation;\r\n }\r\n\r\n /**\r\n * Gets the margin settings\r\n * @returns Margins object or undefined if not set\r\n */\r\n getMargins(): Margins | undefined {\r\n return this.properties.margins ? { ...this.properties.margins } : undefined;\r\n }\r\n\r\n /**\r\n * Gets the column layout settings\r\n * @returns Columns object or undefined if not set\r\n */\r\n getColumns(): Columns | undefined {\r\n return this.properties.columns ? { ...this.properties.columns } : undefined;\r\n }\r\n\r\n /**\r\n * Gets the section type (break type)\r\n * @returns Section type or undefined if not set\r\n */\r\n getSectionType(): SectionType | undefined {\r\n return this.properties.type;\r\n }\r\n\r\n /**\r\n * Gets the page numbering settings\r\n * @returns PageNumbering object or undefined if not set\r\n */\r\n getPageNumbering(): PageNumbering | undefined {\r\n return this.properties.pageNumbering ? { ...this.properties.pageNumbering } : undefined;\r\n }\r\n\r\n /**\r\n * Gets whether this section has a title page (different first page)\r\n * @returns true if title page is enabled, false otherwise\r\n */\r\n getTitlePage(): boolean {\r\n return this.properties.titlePage ?? false;\r\n }\r\n\r\n /**\r\n * Gets header references\r\n * @returns Object with default, first, and even header relationship IDs, or undefined\r\n */\r\n getHeaderReferences(): { default?: string; first?: string; even?: string } | undefined {\r\n return this.properties.headers ? { ...this.properties.headers } : undefined;\r\n }\r\n\r\n /**\r\n * Gets a specific header reference\r\n * @param type Header type (default, first, even)\r\n * @returns Relationship ID or undefined if not set\r\n */\r\n getHeaderReference(type: 'default' | 'first' | 'even'): string | undefined {\r\n return this.properties.headers?.[type];\r\n }\r\n\r\n /**\r\n * Gets footer references\r\n * @returns Object with default, first, and even footer relationship IDs, or undefined\r\n */\r\n getFooterReferences(): { default?: string; first?: string; even?: string } | undefined {\r\n return this.properties.footers ? { ...this.properties.footers } : undefined;\r\n }\r\n\r\n /**\r\n * Gets a specific footer reference\r\n * @param type Footer type (default, first, even)\r\n * @returns Relationship ID or undefined if not set\r\n */\r\n getFooterReference(type: 'default' | 'first' | 'even'): string | undefined {\r\n return this.properties.footers?.[type];\r\n }\r\n\r\n /**\r\n * Gets the vertical page alignment\r\n * @returns Vertical alignment or undefined if not set\r\n */\r\n getVerticalAlignment(): VerticalAlignment | undefined {\r\n return this.properties.verticalAlignment;\r\n }\r\n\r\n /**\r\n * Gets the paper source (printer tray) settings\r\n * @returns PaperSource object or undefined if not set\r\n */\r\n getPaperSource(): PaperSource | undefined {\r\n return this.properties.paperSource ? { ...this.properties.paperSource } : undefined;\r\n }\r\n\r\n /**\r\n * Gets whether column separator is enabled\r\n * @returns true if separator is enabled, false otherwise\r\n */\r\n getColumnSeparator(): boolean {\r\n return this.properties.columns?.separator ?? false;\r\n }\r\n\r\n /**\r\n * Gets custom column widths\r\n * @returns Array of column widths in twips, or undefined if not set\r\n */\r\n getColumnWidths(): number[] | undefined {\r\n return this.properties.columns?.columnWidths ? [...this.properties.columns.columnWidths] : undefined;\r\n }\r\n\r\n /**\r\n * Gets the text direction\r\n * @returns Text direction or undefined if not set\r\n */\r\n getTextDirection(): TextDirection | undefined {\r\n return this.properties.textDirection;\r\n }\r\n\r\n /**\r\n * Gets whether the section is bidirectional (RTL)\r\n * @returns true if bidi is enabled, false otherwise\r\n */\r\n getBidi(): boolean {\r\n return this.properties.bidi ?? false;\r\n }\r\n\r\n /**\r\n * Gets whether RTL gutter is enabled (gutter on right side)\r\n * @returns true if RTL gutter is enabled, false otherwise\r\n */\r\n getRtlGutter(): boolean {\r\n return this.properties.rtlGutter ?? false;\r\n }\r\n\r\n /**\r\n * Gets the document grid settings\r\n * @returns DocumentGrid object or undefined if not set\r\n */\r\n getDocGrid(): DocumentGrid | undefined {\r\n return this.properties.docGrid ? { ...this.properties.docGrid } : undefined;\r\n }\r\n\r\n // ============================================================================\r\n // Setters\r\n // ============================================================================\r\n\r\n /**\r\n * Sets page size\r\n * @param width Width in twips\r\n * @param height Height in twips\r\n * @param orientation Page orientation\r\n */\r\n setPageSize(width: number, height: number, orientation: PageOrientation = 'portrait'): this {\r\n const prev = this.properties.pageSize ? { ...this.properties.pageSize } : undefined;\r\n this.properties.pageSize = { width, height, orientation };\r\n if (this.trackingContext?.isEnabled()) {\r\n this.trackingContext.trackSectionChange(this, 'pageSize', prev, this.properties.pageSize);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets page orientation\r\n * @param orientation Page orientation\r\n */\r\n setOrientation(orientation: PageOrientation): this {\r\n const prev = this.properties.pageSize?.orientation;\r\n if (!this.properties.pageSize) {\r\n this.properties.pageSize = {\r\n width: PAGE_SIZES.LETTER.width,\r\n height: PAGE_SIZES.LETTER.height,\r\n };\r\n }\r\n this.properties.pageSize.orientation = orientation;\r\n\r\n // Swap width/height for landscape\r\n if (orientation === 'landscape' && this.properties.pageSize.width < this.properties.pageSize.height) {\r\n const temp = this.properties.pageSize.width;\r\n this.properties.pageSize.width = this.properties.pageSize.height;\r\n this.properties.pageSize.height = temp;\r\n }\r\n\r\n if (this.trackingContext?.isEnabled() && prev !== orientation) {\r\n this.trackingContext.trackSectionChange(this, 'orientation', prev, orientation);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets margins\r\n * @param margins Margin properties\r\n */\r\n setMargins(margins: Margins): this {\r\n const prev = this.properties.margins ? { ...this.properties.margins } : undefined;\r\n const existing = this.properties.margins;\r\n this.properties.margins = {\r\n top: margins.top,\r\n bottom: margins.bottom,\r\n left: margins.left,\r\n right: margins.right,\r\n header: margins.header ?? existing?.header ?? 720,\r\n footer: margins.footer ?? existing?.footer ?? 720,\r\n gutter: margins.gutter ?? existing?.gutter,\r\n };\r\n if (this.trackingContext?.isEnabled()) {\r\n this.trackingContext.trackSectionChange(this, 'margins', prev, this.properties.margins);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets column layout\r\n * @param count Number of columns\r\n * @param space Space between columns in twips\r\n */\r\n setColumns(count: number, space = 720): this {\r\n const prev = this.properties.columns ? { ...this.properties.columns } : undefined;\r\n this.properties.columns = {\r\n count,\r\n space,\r\n equalWidth: true,\r\n };\r\n if (this.trackingContext?.isEnabled()) {\r\n this.trackingContext.trackSectionChange(this, 'columns', prev, this.properties.columns);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets section type\r\n * @param type Section break type\r\n */\r\n setSectionType(type: SectionType): this {\r\n const prev = this.properties.type;\r\n this.properties.type = type;\r\n if (this.trackingContext?.isEnabled() && prev !== type) {\r\n this.trackingContext.trackSectionChange(this, 'type', prev, type);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets page numbering\r\n * @param start Starting page number\r\n * @param format Number format\r\n */\r\n setPageNumbering(start?: number, format?: PageNumberFormat): this {\r\n const prev = this.properties.pageNumbering ? { ...this.properties.pageNumbering } : undefined;\r\n this.properties.pageNumbering = { start, format };\r\n if (this.trackingContext?.isEnabled()) {\r\n this.trackingContext.trackSectionChange(this, 'pageNumbering', prev, this.properties.pageNumbering);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets title page flag (different first page)\r\n * @param titlePage Whether this section has a different first page\r\n */\r\n setTitlePage(titlePage = true): this {\r\n const prev = this.properties.titlePage;\r\n this.properties.titlePage = titlePage;\r\n if (this.trackingContext?.isEnabled() && prev !== titlePage) {\r\n this.trackingContext.trackSectionChange(this, 'titlePage', prev, titlePage);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets header reference\r\n * @param type Header type (default, first, even)\r\n * @param rId Relationship ID\r\n */\r\n setHeaderReference(type: 'default' | 'first' | 'even', rId: string): this {\r\n const prev = this.properties.headers?.[type];\r\n if (!this.properties.headers) {\r\n this.properties.headers = {};\r\n }\r\n this.properties.headers[type] = rId;\r\n if (this.trackingContext?.isEnabled() && prev !== rId) {\r\n this.trackingContext.trackSectionChange(this, `headerReference:${type}`, prev, rId);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets footer reference\r\n * @param type Footer type (default, first, even)\r\n * @param rId Relationship ID\r\n */\r\n setFooterReference(type: 'default' | 'first' | 'even', rId: string): this {\r\n const prev = this.properties.footers?.[type];\r\n if (!this.properties.footers) {\r\n this.properties.footers = {};\r\n }\r\n this.properties.footers[type] = rId;\r\n if (this.trackingContext?.isEnabled() && prev !== rId) {\r\n this.trackingContext.trackSectionChange(this, `footerReference:${type}`, prev, rId);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets vertical page alignment\r\n * Controls how content is vertically aligned on the page\r\n * @param alignment Vertical alignment (top, center, bottom, both=justified)\r\n */\r\n setVerticalAlignment(alignment: VerticalAlignment): this {\r\n const prev = this.properties.verticalAlignment;\r\n this.properties.verticalAlignment = alignment;\r\n if (this.trackingContext?.isEnabled() && prev !== alignment) {\r\n this.trackingContext.trackSectionChange(this, 'verticalAlignment', prev, alignment);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets paper source (printer tray selection)\r\n * @param first First page tray number\r\n * @param other Other pages tray number\r\n */\r\n setPaperSource(first?: number, other?: number): this {\r\n const prev = this.properties.paperSource ? { ...this.properties.paperSource } : undefined;\r\n this.properties.paperSource = { first, other };\r\n if (this.trackingContext?.isEnabled()) {\r\n this.trackingContext.trackSectionChange(this, 'paperSource', prev, this.properties.paperSource);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets column separator line\r\n * Shows a vertical line between columns\r\n * @param separator Whether to show column separator line\r\n */\r\n setColumnSeparator(separator = true): this {\r\n const prev = this.properties.columns?.separator;\r\n if (!this.properties.columns) {\r\n this.properties.columns = { count: 1 };\r\n }\r\n this.properties.columns.separator = separator;\r\n if (this.trackingContext?.isEnabled() && prev !== separator) {\r\n this.trackingContext.trackSectionChange(this, 'columnSeparator', prev, separator);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets custom column widths (for unequal columns)\r\n * @param widths Array of column widths in twips\r\n */\r\n setColumnWidths(widths: number[]): this {\r\n const prev = this.properties.columns ? { ...this.properties.columns } : undefined;\r\n if (!this.properties.columns) {\r\n this.properties.columns = { count: widths.length };\r\n }\r\n this.properties.columns.columnWidths = widths;\r\n this.properties.columns.equalWidth = false;\r\n this.properties.columns.count = widths.length;\r\n if (this.trackingContext?.isEnabled()) {\r\n this.trackingContext.trackSectionChange(this, 'columns', prev, { ...this.properties.columns });\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets text direction for the section\r\n * @param direction Text direction (ltr=left-to-right, rtl=right-to-left, tbRl=top-to-bottom-right-to-left, btLr=bottom-to-top-left-to-right)\r\n */\r\n setTextDirection(direction: TextDirection): this {\r\n const prev = this.properties.textDirection;\r\n this.properties.textDirection = direction;\r\n if (this.trackingContext?.isEnabled() && prev !== direction) {\r\n this.trackingContext.trackSectionChange(this, 'textDirection', prev, direction);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets line numbering for the section\r\n * Per ECMA-376 Part 1, Section 17.6.8 (w:lnNumType)\r\n * @param options Line numbering configuration\r\n */\r\n setLineNumbering(options: LineNumbering): this {\r\n const prev = this.properties.lineNumbering ? { ...this.properties.lineNumbering } : undefined;\r\n this.properties.lineNumbering = { ...options };\r\n if (this.trackingContext?.isEnabled()) {\r\n this.trackingContext.trackSectionChange(this, 'lineNumbering', prev, this.properties.lineNumbering);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Gets line numbering configuration\r\n * @returns Line numbering settings or undefined if not set\r\n */\r\n getLineNumbering(): LineNumbering | undefined {\r\n return this.properties.lineNumbering ? { ...this.properties.lineNumbering } : undefined;\r\n }\r\n\r\n /**\r\n * Clears line numbering for the section\r\n */\r\n clearLineNumbering(): this {\r\n this.properties.lineNumbering = undefined;\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets section-level footnote properties\r\n * Per ECMA-376 Part 1 §17.11.6\r\n */\r\n setFootnoteProperties(props: NoteProperties): this {\r\n const prev = this.properties.footnotePr ? { ...this.properties.footnotePr } : undefined;\r\n this.properties.footnotePr = { ...props };\r\n if (this.trackingContext?.isEnabled()) {\r\n this.trackingContext.trackSectionChange(this, 'footnotePr', prev, this.properties.footnotePr);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets section-level endnote properties\r\n * Per ECMA-376 Part 1 §17.11.7\r\n */\r\n setEndnoteProperties(props: NoteProperties): this {\r\n const prev = this.properties.endnotePr ? { ...this.properties.endnotePr } : undefined;\r\n this.properties.endnotePr = { ...props };\r\n if (this.trackingContext?.isEnabled()) {\r\n this.trackingContext.trackSectionChange(this, 'endnotePr', prev, this.properties.endnotePr);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets whether endnotes are suppressed in this section\r\n * Per ECMA-376 Part 1 §17.6.14\r\n */\r\n setNoEndnote(noEndnote = true): this {\r\n const prev = this.properties.noEndnote;\r\n this.properties.noEndnote = noEndnote;\r\n if (this.trackingContext?.isEnabled() && prev !== noEndnote) {\r\n this.trackingContext.trackSectionChange(this, 'noEndnote', prev, noEndnote);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets form protection for this section\r\n * Per ECMA-376 Part 1 §17.6.4\r\n */\r\n setFormProtection(formProt = true): this {\r\n const prev = this.properties.formProt;\r\n this.properties.formProt = formProt;\r\n if (this.trackingContext?.isEnabled() && prev !== formProt) {\r\n this.trackingContext.trackSectionChange(this, 'formProt', prev, formProt);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets printer settings relationship ID\r\n * Per ECMA-376 Part 1 §17.6.6\r\n */\r\n setPrinterSettings(rId: string): this {\r\n const prev = this.properties.printerSettingsId;\r\n this.properties.printerSettingsId = rId;\r\n if (this.trackingContext?.isEnabled() && prev !== rId) {\r\n this.trackingContext.trackSectionChange(this, 'printerSettings', prev, rId);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets chapter numbering for page numbers\r\n * Per ECMA-376 Part 1 §17.6.12\r\n * @param chapStyle - Heading level (1-9) to use for chapter numbering\r\n * @param chapSep - Separator between chapter and page number\r\n */\r\n setChapterNumbering(chapStyle: number, chapSep?: ChapterSeparator): this {\r\n const prevStyle = this.properties.chapStyle;\r\n const prevSep = this.properties.chapSep;\r\n this.properties.chapStyle = chapStyle;\r\n if (chapSep) this.properties.chapSep = chapSep;\r\n if (this.trackingContext?.isEnabled()) {\r\n this.trackingContext.trackSectionChange(this, 'chapterNumbering',\r\n { chapStyle: prevStyle, chapSep: prevSep },\r\n { chapStyle, chapSep: chapSep || prevSep });\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Generates WordprocessingML XML for section properties\r\n */\r\n toXML(): XMLElement {\r\n const children: XMLElement[] = [];\r\n\r\n // Header references\r\n if (this.properties.headers) {\r\n if (this.properties.headers.first) {\r\n children.push(\r\n XMLBuilder.wSelf('headerReference', {\r\n 'w:type': 'first',\r\n 'r:id': this.properties.headers.first,\r\n })\r\n );\r\n }\r\n if (this.properties.headers.even) {\r\n children.push(\r\n XMLBuilder.wSelf('headerReference', {\r\n 'w:type': 'even',\r\n 'r:id': this.properties.headers.even,\r\n })\r\n );\r\n }\r\n if (this.properties.headers.default) {\r\n children.push(\r\n XMLBuilder.wSelf('headerReference', {\r\n 'w:type': 'default',\r\n 'r:id': this.properties.headers.default,\r\n })\r\n );\r\n }\r\n }\r\n\r\n // Footer references\r\n if (this.properties.footers) {\r\n if (this.properties.footers.first) {\r\n children.push(\r\n XMLBuilder.wSelf('footerReference', {\r\n 'w:type': 'first',\r\n 'r:id': this.properties.footers.first,\r\n })\r\n );\r\n }\r\n if (this.properties.footers.even) {\r\n children.push(\r\n XMLBuilder.wSelf('footerReference', {\r\n 'w:type': 'even',\r\n 'r:id': this.properties.footers.even,\r\n })\r\n );\r\n }\r\n if (this.properties.footers.default) {\r\n children.push(\r\n XMLBuilder.wSelf('footerReference', {\r\n 'w:type': 'default',\r\n 'r:id': this.properties.footers.default,\r\n })\r\n );\r\n }\r\n }\r\n\r\n // CT_SectPr element order per ECMA-376:\r\n // footnotePr → endnotePr → type → pgSz → pgMar → paperSrc → pgBorders →\r\n // lnNumType → pgNumType → cols → formProt → vAlign → noEndnote → titlePg →\r\n // textDirection → bidi → rtlGutter → docGrid → printerSettings → sectPrChange\r\n\r\n // Footnote properties (w:footnotePr)\r\n if (this.properties.footnotePr) {\r\n const fnChildren: XMLElement[] = [];\r\n if (this.properties.footnotePr.position) {\r\n fnChildren.push(XMLBuilder.wSelf('pos', { 'w:val': this.properties.footnotePr.position }));\r\n }\r\n if (this.properties.footnotePr.numberFormat) {\r\n fnChildren.push(XMLBuilder.wSelf('numFmt', { 'w:val': this.properties.footnotePr.numberFormat }));\r\n }\r\n if (this.properties.footnotePr.startNumber !== undefined) {\r\n fnChildren.push(XMLBuilder.wSelf('numStart', { 'w:val': this.properties.footnotePr.startNumber.toString() }));\r\n }\r\n if (this.properties.footnotePr.restart) {\r\n fnChildren.push(XMLBuilder.wSelf('numRestart', { 'w:val': this.properties.footnotePr.restart }));\r\n }\r\n if (fnChildren.length > 0) {\r\n children.push(XMLBuilder.w('footnotePr', undefined, fnChildren));\r\n }\r\n }\r\n\r\n // Endnote properties (w:endnotePr)\r\n if (this.properties.endnotePr) {\r\n const enChildren: XMLElement[] = [];\r\n if (this.properties.endnotePr.position) {\r\n enChildren.push(XMLBuilder.wSelf('pos', { 'w:val': this.properties.endnotePr.position }));\r\n }\r\n if (this.properties.endnotePr.numberFormat) {\r\n enChildren.push(XMLBuilder.wSelf('numFmt', { 'w:val': this.properties.endnotePr.numberFormat }));\r\n }\r\n if (this.properties.endnotePr.startNumber !== undefined) {\r\n enChildren.push(XMLBuilder.wSelf('numStart', { 'w:val': this.properties.endnotePr.startNumber.toString() }));\r\n }\r\n if (this.properties.endnotePr.restart) {\r\n enChildren.push(XMLBuilder.wSelf('numRestart', { 'w:val': this.properties.endnotePr.restart }));\r\n }\r\n if (enChildren.length > 0) {\r\n children.push(XMLBuilder.w('endnotePr', undefined, enChildren));\r\n }\r\n }\r\n\r\n // Section type\r\n if (this.properties.type) {\r\n children.push(\r\n XMLBuilder.wSelf('type', { 'w:val': this.properties.type })\r\n );\r\n }\r\n\r\n // Page size\r\n if (this.properties.pageSize) {\r\n const attrs: Record<string, string> = {\r\n 'w:w': this.properties.pageSize.width.toString(),\r\n 'w:h': this.properties.pageSize.height.toString(),\r\n };\r\n if (this.properties.pageSize.orientation === 'landscape') {\r\n attrs['w:orient'] = 'landscape';\r\n }\r\n children.push(XMLBuilder.wSelf('pgSz', attrs));\r\n }\r\n\r\n // Margins\r\n if (this.properties.margins) {\r\n const attrs: Record<string, string> = {\r\n 'w:top': this.properties.margins.top.toString(),\r\n 'w:right': this.properties.margins.right.toString(),\r\n 'w:bottom': this.properties.margins.bottom.toString(),\r\n 'w:left': this.properties.margins.left.toString(),\r\n };\r\n attrs['w:header'] = (this.properties.margins.header ?? 720).toString();\r\n attrs['w:footer'] = (this.properties.margins.footer ?? 720).toString();\r\n if (this.properties.margins.gutter !== undefined) {\r\n attrs['w:gutter'] = this.properties.margins.gutter.toString();\r\n }\r\n children.push(XMLBuilder.wSelf('pgMar', attrs));\r\n }\r\n\r\n // Paper source\r\n if (this.properties.paperSource) {\r\n const attrs: Record<string, string> = {};\r\n if (this.properties.paperSource.first !== undefined) {\r\n attrs['w:first'] = this.properties.paperSource.first.toString();\r\n }\r\n if (this.properties.paperSource.other !== undefined) {\r\n attrs['w:other'] = this.properties.paperSource.other.toString();\r\n }\r\n if (Object.keys(attrs).length > 0) {\r\n children.push(XMLBuilder.wSelf('paperSrc', attrs));\r\n }\r\n }\r\n\r\n // Page borders per ECMA-376 Part 1 §17.6.10\r\n if (this.properties.pageBorders) {\r\n const pgBorders = this.properties.pageBorders;\r\n const pgBordersAttrs: Record<string, string> = {};\r\n if (pgBorders.offsetFrom) pgBordersAttrs['w:offsetFrom'] = pgBorders.offsetFrom;\r\n if (pgBorders.display) pgBordersAttrs['w:display'] = pgBorders.display;\r\n if (pgBorders.zOrder) pgBordersAttrs['w:zOrder'] = pgBorders.zOrder;\r\n\r\n const borderChildren: XMLElement[] = [];\r\n const buildBorder = (side: string, def: PageBorderDef) => {\r\n const bAttrs: Record<string, string | number> = {};\r\n if (def.style) bAttrs['w:val'] = def.style;\r\n // ECMA-376 Part 1 §17.18.2: sz valid range 2-96 (eighths of a point)\r\n if (def.size !== undefined) bAttrs['w:sz'] = Math.max(2, Math.min(96, def.size));\r\n if (def.color) bAttrs['w:color'] = def.color;\r\n // ECMA-376 Part 1 §17.18.88: space valid range 0-31680 (points)\r\n if (def.space !== undefined) bAttrs['w:space'] = Math.max(0, Math.min(31680, def.space));\r\n if (def.shadow) bAttrs['w:shadow'] = '1';\r\n if (def.frame) bAttrs['w:frame'] = '1';\r\n if (def.themeColor) bAttrs['w:themeColor'] = def.themeColor;\r\n if (def.artId !== undefined) bAttrs['w:id'] = def.artId;\r\n borderChildren.push(XMLBuilder.wSelf(side, bAttrs));\r\n };\r\n\r\n if (pgBorders.top) buildBorder('top', pgBorders.top);\r\n if (pgBorders.left) buildBorder('left', pgBorders.left);\r\n if (pgBorders.bottom) buildBorder('bottom', pgBorders.bottom);\r\n if (pgBorders.right) buildBorder('right', pgBorders.right);\r\n\r\n children.push(XMLBuilder.w('pgBorders', pgBordersAttrs, borderChildren));\r\n }\r\n\r\n // Line numbering (w:lnNumType)\r\n if (this.properties.lineNumbering) {\r\n const attrs: Record<string, string> = {};\r\n if (this.properties.lineNumbering.countBy !== undefined) {\r\n attrs['w:countBy'] = this.properties.lineNumbering.countBy.toString();\r\n }\r\n if (this.properties.lineNumbering.start !== undefined) {\r\n attrs['w:start'] = this.properties.lineNumbering.start.toString();\r\n }\r\n if (this.properties.lineNumbering.distance !== undefined) {\r\n attrs['w:distance'] = this.properties.lineNumbering.distance.toString();\r\n }\r\n if (this.properties.lineNumbering.restart) {\r\n attrs['w:restart'] = this.properties.lineNumbering.restart;\r\n }\r\n if (Object.keys(attrs).length > 0) {\r\n children.push(XMLBuilder.wSelf('lnNumType', attrs));\r\n }\r\n }\r\n\r\n // Page numbering\r\n if (this.properties.pageNumbering || this.properties.chapStyle !== undefined) {\r\n const attrs: Record<string, string> = {};\r\n if (this.properties.pageNumbering?.start !== undefined) {\r\n attrs['w:start'] = this.properties.pageNumbering.start.toString();\r\n }\r\n if (this.properties.pageNumbering?.format) {\r\n attrs['w:fmt'] = this.properties.pageNumbering.format;\r\n }\r\n if (this.properties.chapStyle !== undefined) {\r\n attrs['w:chapStyle'] = this.properties.chapStyle.toString();\r\n }\r\n if (this.properties.chapSep) {\r\n attrs['w:chapSep'] = this.properties.chapSep;\r\n }\r\n if (Object.keys(attrs).length > 0) {\r\n children.push(XMLBuilder.wSelf('pgNumType', attrs));\r\n }\r\n }\r\n\r\n // Columns\r\n if (this.properties.columns) {\r\n const attrs: Record<string, string> = {\r\n 'w:num': this.properties.columns.count.toString(),\r\n };\r\n if (this.properties.columns.space !== undefined) {\r\n attrs['w:space'] = this.properties.columns.space.toString();\r\n }\r\n if (this.properties.columns.equalWidth !== undefined) {\r\n attrs['w:equalWidth'] = this.properties.columns.equalWidth ? '1' : '0';\r\n }\r\n if (this.properties.columns.separator !== undefined) {\r\n attrs['w:sep'] = this.properties.columns.separator ? '1' : '0';\r\n }\r\n\r\n const colChildren: XMLElement[] = [];\r\n if (this.properties.columns.columnWidths) {\r\n for (const width of this.properties.columns.columnWidths) {\r\n colChildren.push(\r\n XMLBuilder.wSelf('col', { 'w:w': width.toString() })\r\n );\r\n }\r\n }\r\n\r\n children.push(\r\n colChildren.length > 0\r\n ? XMLBuilder.w('cols', attrs, colChildren)\r\n : XMLBuilder.wSelf('cols', attrs)\r\n );\r\n }\r\n\r\n // Form protection (w:formProt)\r\n if (this.properties.formProt) {\r\n children.push(XMLBuilder.wSelf('formProt'));\r\n }\r\n\r\n // Vertical alignment\r\n if (this.properties.verticalAlignment) {\r\n children.push(\r\n XMLBuilder.wSelf('vAlign', { 'w:val': this.properties.verticalAlignment })\r\n );\r\n }\r\n\r\n // Suppress endnotes (w:noEndnote)\r\n if (this.properties.noEndnote) {\r\n children.push(XMLBuilder.wSelf('noEndnote'));\r\n }\r\n\r\n // Title page\r\n if (this.properties.titlePage) {\r\n children.push(XMLBuilder.wSelf('titlePg', { 'w:val': '1' }));\r\n }\r\n\r\n // Text direction (map to valid ST_TextDirection values per ECMA-376 §17.18.93)\r\n if (this.properties.textDirection) {\r\n const textDirMap: Record<string, string> = {\r\n ltr: 'lrTb', rtl: 'tbRl', tbRl: 'tbRl', btLr: 'btLr',\r\n lrTb: 'lrTb', lrTbV: 'lrTbV', tbRlV: 'tbRlV', tbLrV: 'tbLrV',\r\n };\r\n const val = textDirMap[this.properties.textDirection] || this.properties.textDirection;\r\n children.push(\r\n XMLBuilder.wSelf('textDirection', { 'w:val': val })\r\n );\r\n }\r\n\r\n // Bidirectional section (RTL)\r\n if (this.properties.bidi) {\r\n children.push(XMLBuilder.wSelf('bidi'));\r\n }\r\n\r\n // RTL gutter (gutter on right side)\r\n if (this.properties.rtlGutter) {\r\n children.push(XMLBuilder.wSelf('rtlGutter'));\r\n }\r\n\r\n // Document grid\r\n if (this.properties.docGrid) {\r\n const attrs: Record<string, string> = {};\r\n if (this.properties.docGrid.type) {\r\n attrs['w:type'] = this.properties.docGrid.type;\r\n }\r\n if (this.properties.docGrid.linePitch !== undefined) {\r\n attrs['w:linePitch'] = this.properties.docGrid.linePitch.toString();\r\n }\r\n if (this.properties.docGrid.charSpace !== undefined) {\r\n attrs['w:charSpace'] = this.properties.docGrid.charSpace.toString();\r\n }\r\n if (Object.keys(attrs).length > 0) {\r\n children.push(XMLBuilder.wSelf('docGrid', attrs));\r\n }\r\n }\r\n\r\n // Printer settings (w:printerSettings)\r\n if (this.properties.printerSettingsId) {\r\n children.push(XMLBuilder.wSelf('printerSettings', {\r\n 'r:id': this.properties.printerSettingsId,\r\n }));\r\n }\r\n\r\n // Add section property change (w:sectPrChange) per ECMA-376 Part 1 §17.13.5.32\r\n // Must be last child of w:sectPr\r\n if (this.sectPrChange) {\r\n const changeAttrs: Record<string, string | number> = {\r\n 'w:id': this.sectPrChange.id,\r\n 'w:author': this.sectPrChange.author,\r\n 'w:date': this.sectPrChange.date,\r\n };\r\n const prevChildren: XMLElement[] = [];\r\n const prev = this.sectPrChange.previousProperties;\r\n if (prev) {\r\n // Ordered per CT_SectPrBase:\r\n // type → pgSz → pgMar → lnNumType → pgNumType → cols → formProt → vAlign → titlePg → textDirection\r\n if (prev.type) {\r\n prevChildren.push(XMLBuilder.wSelf('type', { 'w:val': prev.type }));\r\n }\r\n if (prev.pageSize) {\r\n const pgSzAttrs: Record<string, string> = {\r\n 'w:w': prev.pageSize.width?.toString() || '12240',\r\n 'w:h': prev.pageSize.height?.toString() || '15840',\r\n };\r\n if (prev.pageSize.orientation === 'landscape') {\r\n pgSzAttrs['w:orient'] = 'landscape';\r\n }\r\n prevChildren.push(XMLBuilder.wSelf('pgSz', pgSzAttrs));\r\n }\r\n if (prev.margins) {\r\n const pgMarAttrs: Record<string, string> = {};\r\n if (prev.margins.top !== undefined) pgMarAttrs['w:top'] = prev.margins.top.toString();\r\n if (prev.margins.bottom !== undefined) pgMarAttrs['w:bottom'] = prev.margins.bottom.toString();\r\n if (prev.margins.left !== undefined) pgMarAttrs['w:left'] = prev.margins.left.toString();\r\n if (prev.margins.right !== undefined) pgMarAttrs['w:right'] = prev.margins.right.toString();\r\n if (prev.margins.header !== undefined) pgMarAttrs['w:header'] = prev.margins.header.toString();\r\n if (prev.margins.footer !== undefined) pgMarAttrs['w:footer'] = prev.margins.footer.toString();\r\n prevChildren.push(XMLBuilder.wSelf('pgMar', pgMarAttrs));\r\n }\r\n if (prev.lineNumbering) {\r\n const lnAttrs: Record<string, string> = {};\r\n if (prev.lineNumbering.countBy !== undefined) lnAttrs['w:countBy'] = prev.lineNumbering.countBy.toString();\r\n if (prev.lineNumbering.start !== undefined) lnAttrs['w:start'] = prev.lineNumbering.start.toString();\r\n if (prev.lineNumbering.restart) lnAttrs['w:restart'] = prev.lineNumbering.restart;\r\n if (prev.lineNumbering.distance !== undefined) lnAttrs['w:distance'] = prev.lineNumbering.distance.toString();\r\n if (Object.keys(lnAttrs).length > 0) {\r\n prevChildren.push(XMLBuilder.wSelf('lnNumType', lnAttrs));\r\n }\r\n }\r\n if (prev.pageNumbering) {\r\n const pnAttrs: Record<string, string> = {};\r\n if (prev.pageNumbering.start !== undefined) pnAttrs['w:start'] = prev.pageNumbering.start.toString();\r\n if (prev.pageNumbering.format) pnAttrs['w:fmt'] = prev.pageNumbering.format;\r\n if (Object.keys(pnAttrs).length > 0) {\r\n prevChildren.push(XMLBuilder.wSelf('pgNumType', pnAttrs));\r\n }\r\n }\r\n if (prev.columns) {\r\n const colAttrs: Record<string, string> = { 'w:num': prev.columns.count?.toString() || '1' };\r\n if (prev.columns.space !== undefined) colAttrs['w:space'] = prev.columns.space.toString();\r\n prevChildren.push(XMLBuilder.wSelf('cols', colAttrs));\r\n }\r\n if (prev.formProt) {\r\n prevChildren.push(XMLBuilder.wSelf('formProt'));\r\n }\r\n if (prev.verticalAlignment) {\r\n prevChildren.push(XMLBuilder.wSelf('vAlign', { 'w:val': prev.verticalAlignment }));\r\n }\r\n if (prev.titlePage) {\r\n prevChildren.push(XMLBuilder.wSelf('titlePg'));\r\n }\r\n if (prev.textDirection) {\r\n const tdMap: Record<string, string> = {\r\n ltr: 'lrTb', rtl: 'tbRl', tbRl: 'tbRl', btLr: 'btLr',\r\n lrTb: 'lrTb', lrTbV: 'lrTbV', tbRlV: 'tbRlV', tbLrV: 'tbLrV',\r\n };\r\n prevChildren.push(XMLBuilder.wSelf('textDirection', { 'w:val': tdMap[prev.textDirection] || prev.textDirection }));\r\n }\r\n }\r\n const prevSectPr = XMLBuilder.w('sectPr', undefined, prevChildren);\r\n children.push(XMLBuilder.w('sectPrChange', changeAttrs, [prevSectPr]));\r\n }\r\n\r\n return XMLBuilder.w('sectPr', undefined, children);\r\n }\r\n\r\n /**\r\n * Creates a deep clone of this section\r\n * @returns New Section instance with copied properties\r\n */\r\n clone(): Section {\r\n // Deep clone all nested objects\r\n const clonedProperties: SectionProperties = {};\r\n\r\n if (this.properties.pageSize) {\r\n clonedProperties.pageSize = { ...this.properties.pageSize };\r\n }\r\n\r\n if (this.properties.margins) {\r\n clonedProperties.margins = { ...this.properties.margins };\r\n }\r\n\r\n if (this.properties.columns) {\r\n clonedProperties.columns = {\r\n ...this.properties.columns,\r\n columnWidths: this.properties.columns.columnWidths\r\n ? [...this.properties.columns.columnWidths]\r\n : undefined,\r\n };\r\n }\r\n\r\n if (this.properties.pageNumbering) {\r\n clonedProperties.pageNumbering = { ...this.properties.pageNumbering };\r\n }\r\n\r\n if (this.properties.headers) {\r\n clonedProperties.headers = { ...this.properties.headers };\r\n }\r\n\r\n if (this.properties.footers) {\r\n clonedProperties.footers = { ...this.properties.footers };\r\n }\r\n\r\n if (this.properties.paperSource) {\r\n clonedProperties.paperSource = { ...this.properties.paperSource };\r\n }\r\n\r\n if (this.properties.docGrid) {\r\n clonedProperties.docGrid = { ...this.properties.docGrid };\r\n }\r\n\r\n if (this.properties.lineNumbering) {\r\n clonedProperties.lineNumbering = { ...this.properties.lineNumbering };\r\n }\r\n\r\n // Copy primitive properties\r\n clonedProperties.type = this.properties.type;\r\n clonedProperties.titlePage = this.properties.titlePage;\r\n clonedProperties.verticalAlignment = this.properties.verticalAlignment;\r\n clonedProperties.textDirection = this.properties.textDirection;\r\n clonedProperties.bidi = this.properties.bidi;\r\n clonedProperties.rtlGutter = this.properties.rtlGutter;\r\n\r\n return new Section(clonedProperties);\r\n }\r\n\r\n /**\r\n * Creates a section with default properties\r\n */\r\n static create(properties?: SectionProperties): Section {\r\n return new Section(properties);\r\n }\r\n\r\n /**\r\n * Creates a letter-sized section (8.5\" x 11\")\r\n */\r\n static createLetter(): Section {\r\n return new Section({\r\n pageSize: {\r\n width: PAGE_SIZES.LETTER.width,\r\n height: PAGE_SIZES.LETTER.height,\r\n orientation: 'portrait',\r\n },\r\n });\r\n }\r\n\r\n /**\r\n * Creates an A4-sized section (21cm x 29.7cm)\r\n */\r\n static createA4(): Section {\r\n return new Section({\r\n pageSize: {\r\n width: PAGE_SIZES.A4.width,\r\n height: PAGE_SIZES.A4.height,\r\n orientation: 'portrait',\r\n },\r\n });\r\n }\r\n\r\n /**\r\n * Creates a landscape section\r\n * @param pageSize Page size (default: Letter)\r\n */\r\n static createLandscape(pageSize: 'letter' | 'a4' = 'letter'): Section {\r\n const size = pageSize === 'a4' ? PAGE_SIZES.A4 : PAGE_SIZES.LETTER;\r\n return new Section({\r\n pageSize: {\r\n width: size.height, // Swap for landscape\r\n height: size.width,\r\n orientation: 'landscape',\r\n },\r\n });\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"Section.js","sourceRoot":"","sources":["../../src/elements/Section.ts"],"names":[],"mappings":";;;AAOA,kDAA2D;AAC3D,0CAA4C;AAwV5C,MAAa,OAAO;IACV,UAAU,CAAoB;IAE9B,eAAe,CAAyD;IAExE,YAAY,CAAgB;IAMpC,YAAY,aAAgC,EAAE;QAE5C,IAAI,CAAC,UAAU,GAAG;YAChB,QAAQ,EAAE,UAAU,CAAC,QAAQ,IAAI;gBAC/B,KAAK,EAAE,kBAAU,CAAC,MAAM,CAAC,KAAK;gBAC9B,MAAM,EAAE,kBAAU,CAAC,MAAM,CAAC,MAAM;gBAChC,WAAW,EAAE,UAAU;aACxB;YACD,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI;gBAC7B,GAAG,EAAE,IAAI;gBACT,MAAM,EAAE,IAAI;gBACZ,IAAI,EAAE,IAAI;gBACV,KAAK,EAAE,IAAI;gBACX,MAAM,EAAE,GAAG;gBACX,MAAM,EAAE,GAAG;aACZ;YAED,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI;gBAC7B,KAAK,EAAE,CAAC;aACT;YAED,IAAI,EAAE,UAAU,CAAC,IAAI,IAAI,UAAU;YACnC,aAAa,EAAE,UAAU,CAAC,aAAa;YACvC,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,SAAS,EAAE,UAAU,CAAC,SAAS;YAE/B,iBAAiB,EAAE,UAAU,CAAC,iBAAiB;YAC/C,WAAW,EAAE,UAAU,CAAC,WAAW;YACnC,aAAa,EAAE,UAAU,CAAC,aAAa;YACvC,WAAW,EAAE,UAAU,CAAC,WAAW;SACpC,CAAC;IACJ,CAAC;IAOD,mBAAmB,CAAC,OAA8D;QAChF,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;IACjC,CAAC;IAKD,eAAe;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAKD,eAAe,CAAC,MAAgC;QAC9C,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;IAC7B,CAAC;IAKD,iBAAiB;QACf,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;IAChC,CAAC;IAKD,aAAa;QACX,OAAO,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;IAChC,CAAC;IAUD,WAAW;QACT,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAChF,CAAC;IAMD,cAAc;QACZ,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/C,CAAC;IAMD,UAAU;QACR,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9E,CAAC;IAMD,UAAU;QACR,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9E,CAAC;IAMD,cAAc;QACZ,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;IAC9B,CAAC;IAMD,gBAAgB;QACd,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1F,CAAC;IAMD,YAAY;QACV,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,IAAI,KAAK,CAAC;IAC5C,CAAC;IAMD,mBAAmB;QACjB,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9E,CAAC;IAOD,kBAAkB,CAAC,IAAkC;QACnD,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAMD,mBAAmB;QACjB,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9E,CAAC;IAOD,kBAAkB,CAAC,IAAkC;QACnD,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAMD,oBAAoB;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC;IAC3C,CAAC;IAMD,cAAc;QACZ,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACtF,CAAC;IAMD,kBAAkB;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,IAAI,KAAK,CAAC;IACrD,CAAC;IAMD,eAAe;QACb,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY;YAC1C,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC;YAC3C,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;IAMD,gBAAgB;QACd,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;IACvC,CAAC;IAMD,OAAO;QACL,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,KAAK,CAAC;IACvC,CAAC;IAMD,YAAY;QACV,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,IAAI,KAAK,CAAC;IAC5C,CAAC;IAMD,UAAU;QACR,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9E,CAAC;IAYD,WAAW,CAAC,KAAa,EAAE,MAAc,EAAE,cAA+B,UAAU;QAClF,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACpF,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;QAC1D,IAAI,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,EAAE,CAAC;YACtC,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC5F,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAMD,cAAc,CAAC,WAA4B;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC;QACnD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;YAC9B,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG;gBACzB,KAAK,EAAE,kBAAU,CAAC,MAAM,CAAC,KAAK;gBAC9B,MAAM,EAAE,kBAAU,CAAC,MAAM,CAAC,MAAM;aACjC,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,WAAW,GAAG,WAAW,CAAC;QAGnD,IACE,WAAW,KAAK,WAAW;YAC3B,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,EAChE,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC5C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;YACjE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;QACzC,CAAC;QAED,IAAI,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YAC9D,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;QAClF,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAMD,UAAU,CAAC,OAAgB;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAClF,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QACzC,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG;YACxB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,QAAQ,EAAE,MAAM,IAAI,GAAG;YACjD,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,QAAQ,EAAE,MAAM,IAAI,GAAG;YACjD,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,QAAQ,EAAE,MAAM;SAC3C,CAAC;QACF,IAAI,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,EAAE,CAAC;YACtC,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC1F,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAOD,UAAU,CAAC,KAAa,EAAE,KAAK,GAAG,GAAG;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAClF,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG;YACxB,KAAK;YACL,KAAK;YACL,UAAU,EAAE,IAAI;SACjB,CAAC;QACF,IAAI,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,EAAE,CAAC;YACtC,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC1F,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAMD,cAAc,CAAC,IAAiB;QAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAClC,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC;QAC5B,IAAI,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YACvD,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAOD,gBAAgB,CAAC,KAAc,EAAE,MAAyB;QACxD,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9F,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAClD,IAAI,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,EAAE,CAAC;YACtC,IAAI,CAAC,eAAe,CAAC,kBAAkB,CACrC,IAAI,EACJ,eAAe,EACf,IAAI,EACJ,IAAI,CAAC,UAAU,CAAC,aAAa,CAC9B,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAMD,YAAY,CAAC,SAAS,GAAG,IAAI;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QACvC,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,SAAS,CAAC;QACtC,IAAI,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5D,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QAC9E,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAOD,kBAAkB,CAAC,IAAkC,EAAE,GAAW;QAChE,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,EAAE,CAAC;QAC/B,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;QACpC,IAAI,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACtD,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,EAAE,mBAAmB,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QACtF,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAOD,kBAAkB,CAAC,IAAkC,EAAE,GAAW;QAChE,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,EAAE,CAAC;QAC/B,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;QACpC,IAAI,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACtD,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,EAAE,mBAAmB,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QACtF,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAOD,oBAAoB,CAAC,SAA4B;QAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC;QAC/C,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,SAAS,CAAC;QAC9C,IAAI,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5D,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QACtF,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAOD,cAAc,CAAC,KAAc,EAAE,KAAc;QAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1F,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QAC/C,IAAI,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,EAAE,CAAC;YACtC,IAAI,CAAC,eAAe,CAAC,kBAAkB,CACrC,IAAI,EACJ,aAAa,EACb,IAAI,EACJ,IAAI,CAAC,UAAU,CAAC,WAAW,CAC5B,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAOD,kBAAkB,CAAC,SAAS,GAAG,IAAI;QACjC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC;QAChD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QACzC,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;QAC9C,IAAI,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5D,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QACpF,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAMD,eAAe,CAAC,MAAgB;QAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAClF,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;QACrD,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,GAAG,MAAM,CAAC;QAC9C,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,GAAG,KAAK,CAAC;QAC3C,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;QAC9C,IAAI,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,EAAE,CAAC;YACtC,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE;gBAC7D,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO;aAC3B,CAAC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAMD,gBAAgB,CAAC,SAAwB;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QAC3C,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,SAAS,CAAC;QAC1C,IAAI,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5D,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QAClF,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAOD,gBAAgB,CAAC,OAAsB;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9F,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;QAC/C,IAAI,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,EAAE,CAAC;YACtC,IAAI,CAAC,eAAe,CAAC,kBAAkB,CACrC,IAAI,EACJ,eAAe,EACf,IAAI,EACJ,IAAI,CAAC,UAAU,CAAC,aAAa,CAC9B,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAMD,gBAAgB;QACd,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1F,CAAC;IAKD,kBAAkB;QAChB,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,SAAS,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAMD,qBAAqB,CAAC,KAAqB;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACxF,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC;QAC1C,IAAI,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,EAAE,CAAC;YACtC,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAChG,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAMD,oBAAoB,CAAC,KAAqB;QACxC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACtF,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC;QACzC,IAAI,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,EAAE,CAAC;YACtC,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC9F,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAMD,YAAY,CAAC,SAAS,GAAG,IAAI;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QACvC,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,SAAS,CAAC;QACtC,IAAI,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5D,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QAC9E,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAMD,iBAAiB,CAAC,QAAQ,GAAG,IAAI;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QACtC,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACpC,IAAI,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC3D,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC5E,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAMD,kBAAkB,CAAC,GAAW;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC;QAC/C,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,GAAG,CAAC;QACxC,IAAI,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACtD,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QAC9E,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAQD,mBAAmB,CAAC,SAAiB,EAAE,OAA0B;QAC/D,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QACxC,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,SAAS,CAAC;QACtC,IAAI,OAAO;YAAE,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC;QAC/C,IAAI,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,EAAE,CAAC;YACtC,IAAI,CAAC,eAAe,CAAC,kBAAkB,CACrC,IAAI,EACJ,kBAAkB,EAClB,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,EAC1C,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,CAC3C,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAKD,KAAK;QACH,MAAM,QAAQ,GAAiB,EAAE,CAAC;QAGlC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC5B,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBAClC,QAAQ,CAAC,IAAI,CACX,uBAAU,CAAC,KAAK,CAAC,iBAAiB,EAAE;oBAClC,QAAQ,EAAE,OAAO;oBACjB,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK;iBACtC,CAAC,CACH,CAAC;YACJ,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjC,QAAQ,CAAC,IAAI,CACX,uBAAU,CAAC,KAAK,CAAC,iBAAiB,EAAE;oBAClC,QAAQ,EAAE,MAAM;oBAChB,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI;iBACrC,CAAC,CACH,CAAC;YACJ,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpC,QAAQ,CAAC,IAAI,CACX,uBAAU,CAAC,KAAK,CAAC,iBAAiB,EAAE;oBAClC,QAAQ,EAAE,SAAS;oBACnB,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO;iBACxC,CAAC,CACH,CAAC;YACJ,CAAC;QACH,CAAC;QAGD,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC5B,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBAClC,QAAQ,CAAC,IAAI,CACX,uBAAU,CAAC,KAAK,CAAC,iBAAiB,EAAE;oBAClC,QAAQ,EAAE,OAAO;oBACjB,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK;iBACtC,CAAC,CACH,CAAC;YACJ,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjC,QAAQ,CAAC,IAAI,CACX,uBAAU,CAAC,KAAK,CAAC,iBAAiB,EAAE;oBAClC,QAAQ,EAAE,MAAM;oBAChB,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI;iBACrC,CAAC,CACH,CAAC;YACJ,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpC,QAAQ,CAAC,IAAI,CACX,uBAAU,CAAC,KAAK,CAAC,iBAAiB,EAAE;oBAClC,QAAQ,EAAE,SAAS;oBACnB,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO;iBACxC,CAAC,CACH,CAAC;YACJ,CAAC;QACH,CAAC;QAQD,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;YAC/B,MAAM,UAAU,GAAiB,EAAE,CAAC;YACpC,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;gBACxC,UAAU,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YAC7F,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;gBAC5C,UAAU,CAAC,IAAI,CACb,uBAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,CACjF,CAAC;YACJ,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;gBACzD,UAAU,CAAC,IAAI,CACb,uBAAU,CAAC,KAAK,CAAC,UAAU,EAAE;oBAC3B,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,EAAE;iBAC3D,CAAC,CACH,CAAC;YACJ,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;gBACvC,UAAU,CAAC,IAAI,CACb,uBAAU,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAChF,CAAC;YACJ,CAAC;YACD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,QAAQ,CAAC,IAAI,CAAC,uBAAU,CAAC,CAAC,CAAC,YAAY,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;QAGD,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;YAC9B,MAAM,UAAU,GAAiB,EAAE,CAAC;YACpC,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;gBACvC,UAAU,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YAC5F,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;gBAC3C,UAAU,CAAC,IAAI,CACb,uBAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,CAChF,CAAC;YACJ,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;gBACxD,UAAU,CAAC,IAAI,CACb,uBAAU,CAAC,KAAK,CAAC,UAAU,EAAE;oBAC3B,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE;iBAC1D,CAAC,CACH,CAAC;YACJ,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;gBACtC,UAAU,CAAC,IAAI,CACb,uBAAU,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAC/E,CAAC;YACJ,CAAC;YACD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,QAAQ,CAAC,IAAI,CAAC,uBAAU,CAAC,CAAC,CAAC,WAAW,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;QAGD,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YACzB,QAAQ,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC7E,CAAC;QAGD,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;YAC7B,MAAM,KAAK,GAA2B;gBACpC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE;gBAChD,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE;aAClD,CAAC;YACF,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,WAAW,KAAK,WAAW,EAAE,CAAC;gBACzD,KAAK,CAAC,UAAU,CAAC,GAAG,WAAW,CAAC;YAClC,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;QACjD,CAAC;QAGD,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC5B,MAAM,KAAK,GAA2B;gBACpC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE;gBAC/C,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE;gBACnD,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE;gBACrD,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE;aAClD,CAAC;YACF,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;YACvE,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;YACvE,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACjD,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YAChE,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QAClD,CAAC;QAGD,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;YAChC,MAAM,KAAK,GAA2B,EAAE,CAAC;YACzC,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBACpD,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YAClE,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBACpD,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YAClE,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClC,QAAQ,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;QAGD,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;YAChC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;YAC9C,MAAM,cAAc,GAA2B,EAAE,CAAC;YAClD,IAAI,SAAS,CAAC,UAAU;gBAAE,cAAc,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC,UAAU,CAAC;YAChF,IAAI,SAAS,CAAC,OAAO;gBAAE,cAAc,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;YACvE,IAAI,SAAS,CAAC,MAAM;gBAAE,cAAc,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC;YAEpE,MAAM,cAAc,GAAiB,EAAE,CAAC;YACxC,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,GAAkB,EAAE,EAAE;gBACvD,MAAM,MAAM,GAAoC,EAAE,CAAC;gBACnD,IAAI,GAAG,CAAC,KAAK;oBAAE,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;gBAE3C,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS;oBAAE,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;gBACjF,IAAI,GAAG,CAAC,KAAK;oBAAE,MAAM,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;gBAE7C,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS;oBAAE,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;gBACzF,IAAI,GAAG,CAAC,MAAM;oBAAE,MAAM,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC;gBACzC,IAAI,GAAG,CAAC,KAAK;oBAAE,MAAM,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC;gBACvC,IAAI,GAAG,CAAC,UAAU;oBAAE,MAAM,CAAC,cAAc,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC;gBAC5D,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS;oBAAE,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;gBACxD,cAAc,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;YACtD,CAAC,CAAC;YAEF,IAAI,SAAS,CAAC,GAAG;gBAAE,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;YACrD,IAAI,SAAS,CAAC,IAAI;gBAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;YACxD,IAAI,SAAS,CAAC,MAAM;gBAAE,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;YAC9D,IAAI,SAAS,CAAC,KAAK;gBAAE,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;YAE3D,QAAQ,CAAC,IAAI,CAAC,uBAAU,CAAC,CAAC,CAAC,WAAW,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC;QAC3E,CAAC;QAGD,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;YAClC,MAAM,KAAK,GAA2B,EAAE,CAAC;YACzC,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBACxD,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YACxE,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBACtD,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YACpE,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACzD,KAAK,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAC1E,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;gBAC1C,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC;YAC7D,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClC,QAAQ,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;QAGD,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YAC7E,MAAM,KAAK,GAA2B,EAAE,CAAC;YACzC,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,KAAK,KAAK,SAAS,EAAE,CAAC;gBACvD,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YACpE,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC;gBAC1C,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC;YACxD,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5C,KAAK,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;YAC9D,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;gBAC5B,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YAC/C,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClC,QAAQ,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;QAGD,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC5B,MAAM,KAAK,GAA2B;gBACpC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE;aAClD,CAAC;YACF,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAChD,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC9D,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;gBACrD,KAAK,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YACzE,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBACpD,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YACjE,CAAC;YAED,MAAM,WAAW,GAAiB,EAAE,CAAC;YACrC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;gBACzC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;oBACzD,WAAW,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;gBACzE,CAAC;YACH,CAAC;YAED,QAAQ,CAAC,IAAI,CACX,WAAW,CAAC,MAAM,GAAG,CAAC;gBACpB,CAAC,CAAC,uBAAU,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC;gBAC1C,CAAC,CAAC,uBAAU,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CACpC,CAAC;QACJ,CAAC;QAGD,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;YAC7B,QAAQ,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;QAC9C,CAAC;QAGD,IAAI,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC;YACtC,QAAQ,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;QAC5F,CAAC;QAGD,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;YAC9B,QAAQ,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;QAC/C,CAAC;QAGD,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;YAC9B,QAAQ,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QAC/D,CAAC;QAGD,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;YAClC,MAAM,UAAU,GAA2B;gBACzC,GAAG,EAAE,MAAM;gBACX,GAAG,EAAE,MAAM;gBACX,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;gBACd,KAAK,EAAE,OAAO;gBACd,KAAK,EAAE,OAAO;aACf,CAAC;YACF,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;YACvF,QAAQ,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QACrE,CAAC;QAGD,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YACzB,QAAQ,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1C,CAAC;QAGD,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;YAC9B,QAAQ,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;QAC/C,CAAC;QAGD,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC5B,MAAM,KAAK,GAA2B,EAAE,CAAC;YACzC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjC,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC;YACjD,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBACpD,KAAK,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;YACtE,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBACpD,KAAK,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;YACtE,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClC,QAAQ,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;QAGD,IAAI,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC;YACtC,QAAQ,CAAC,IAAI,CACX,uBAAU,CAAC,KAAK,CAAC,iBAAiB,EAAE;gBAClC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,iBAAiB;aAC1C,CAAC,CACH,CAAC;QACJ,CAAC;QAID,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,MAAM,WAAW,GAAoC;gBACnD,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE;gBAC5B,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM;gBACpC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI;aACjC,CAAC;YACF,MAAM,YAAY,GAAiB,EAAE,CAAC;YACtC,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC;YAClD,IAAI,IAAI,EAAE,CAAC;gBAGT,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBACd,YAAY,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBACtE,CAAC;gBACD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAClB,MAAM,SAAS,GAA2B;wBACxC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,OAAO;wBACjD,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,OAAO;qBACnD,CAAC;oBACF,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,KAAK,WAAW,EAAE,CAAC;wBAC9C,SAAS,CAAC,UAAU,CAAC,GAAG,WAAW,CAAC;oBACtC,CAAC;oBACD,YAAY,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;gBACzD,CAAC;gBACD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBACjB,MAAM,UAAU,GAA2B,EAAE,CAAC;oBAC9C,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,KAAK,SAAS;wBAAE,UAAU,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;oBACtF,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS;wBACnC,UAAU,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;oBAC1D,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS;wBAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACzF,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS;wBAClC,UAAU,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;oBACxD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS;wBACnC,UAAU,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;oBAC1D,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS;wBACnC,UAAU,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;oBAC1D,YAAY,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;gBAC3D,CAAC;gBACD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;oBACvB,MAAM,OAAO,GAA2B,EAAE,CAAC;oBAC3C,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,KAAK,SAAS;wBAC1C,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;oBAC/D,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,KAAK,SAAS;wBACxC,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;oBAC3D,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO;wBAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;oBAClF,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,KAAK,SAAS;wBAC3C,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;oBACjE,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACpC,YAAY,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;oBAC5D,CAAC;gBACH,CAAC;gBACD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;oBACvB,MAAM,OAAO,GAA2B,EAAE,CAAC;oBAC3C,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,KAAK,SAAS;wBACxC,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;oBAC3D,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM;wBAAE,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;oBAC5E,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACpC,YAAY,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;oBAC5D,CAAC;gBACH,CAAC;gBACD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBACjB,MAAM,QAAQ,GAA2B;wBACvC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,GAAG;qBAC/C,CAAC;oBACF,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS;wBAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;oBAC1F,YAAY,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;gBACxD,CAAC;gBACD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAClB,YAAY,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;gBAClD,CAAC;gBACD,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBAC3B,YAAY,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;gBACrF,CAAC;gBACD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;oBACnB,YAAY,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;gBACjD,CAAC;gBACD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;oBACvB,MAAM,KAAK,GAA2B;wBACpC,GAAG,EAAE,MAAM;wBACX,GAAG,EAAE,MAAM;wBACX,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,MAAM;wBACZ,KAAK,EAAE,OAAO;wBACd,KAAK,EAAE,OAAO;wBACd,KAAK,EAAE,OAAO;qBACf,CAAC;oBACF,YAAY,CAAC,IAAI,CACf,uBAAU,CAAC,KAAK,CAAC,eAAe,EAAE;wBAChC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,aAAa;qBACzD,CAAC,CACH,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,MAAM,UAAU,GAAG,uBAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;YACnE,QAAQ,CAAC,IAAI,CAAC,uBAAU,CAAC,CAAC,CAAC,cAAc,EAAE,WAAW,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACzE,CAAC;QAED,OAAO,uBAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IACrD,CAAC;IAMD,KAAK;QAEH,MAAM,gBAAgB,GAAsB,EAAE,CAAC;QAE/C,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;YAC7B,gBAAgB,CAAC,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QAC9D,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC5B,gBAAgB,CAAC,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QAC5D,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC5B,gBAAgB,CAAC,OAAO,GAAG;gBACzB,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO;gBAC1B,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY;oBAChD,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC;oBAC3C,CAAC,CAAC,SAAS;aACd,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;YAClC,gBAAgB,CAAC,aAAa,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;QACxE,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC5B,gBAAgB,CAAC,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QAC5D,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC5B,gBAAgB,CAAC,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QAC5D,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;YAChC,gBAAgB,CAAC,WAAW,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;QACpE,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC5B,gBAAgB,CAAC,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QAC5D,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;YAClC,gBAAgB,CAAC,aAAa,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;QACxE,CAAC;QAGD,gBAAgB,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAC7C,gBAAgB,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QACvD,gBAAgB,CAAC,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC;QACvE,gBAAgB,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QAC/D,gBAAgB,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAC7C,gBAAgB,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAEvD,OAAO,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACvC,CAAC;IAKD,MAAM,CAAC,MAAM,CAAC,UAA8B;QAC1C,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;IACjC,CAAC;IAKD,MAAM,CAAC,YAAY;QACjB,OAAO,IAAI,OAAO,CAAC;YACjB,QAAQ,EAAE;gBACR,KAAK,EAAE,kBAAU,CAAC,MAAM,CAAC,KAAK;gBAC9B,MAAM,EAAE,kBAAU,CAAC,MAAM,CAAC,MAAM;gBAChC,WAAW,EAAE,UAAU;aACxB;SACF,CAAC,CAAC;IACL,CAAC;IAKD,MAAM,CAAC,QAAQ;QACb,OAAO,IAAI,OAAO,CAAC;YACjB,QAAQ,EAAE;gBACR,KAAK,EAAE,kBAAU,CAAC,EAAE,CAAC,KAAK;gBAC1B,MAAM,EAAE,kBAAU,CAAC,EAAE,CAAC,MAAM;gBAC5B,WAAW,EAAE,UAAU;aACxB;SACF,CAAC,CAAC;IACL,CAAC;IAMD,MAAM,CAAC,eAAe,CAAC,WAA4B,QAAQ;QACzD,MAAM,IAAI,GAAG,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,kBAAU,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAU,CAAC,MAAM,CAAC;QACnE,OAAO,IAAI,OAAO,CAAC;YACjB,QAAQ,EAAE;gBACR,KAAK,EAAE,IAAI,CAAC,MAAM;gBAClB,MAAM,EAAE,IAAI,CAAC,KAAK;gBAClB,WAAW,EAAE,WAAW;aACzB;SACF,CAAC,CAAC;IACL,CAAC;CACF;AAhpCD,0BAgpCC","sourcesContent":["/**\n * Section - Represents a document section with page setup properties\n *\n * Sections allow different page setups within a single document (margins, orientation, etc.)\n * Each section can have its own headers, footers, and page numbering.\n */\n\nimport { XMLBuilder, XMLElement } from '../xml/XMLBuilder';\nimport { PAGE_SIZES } from '../utils/units';\n\n/**\n * Page orientation\n */\nexport type PageOrientation = 'portrait' | 'landscape';\n\n/**\n * Section break type\n */\nexport type SectionType = 'nextPage' | 'continuous' | 'evenPage' | 'oddPage' | 'nextColumn';\n\n/**\n * Page numbering format\n */\n/**\n * Per ECMA-376 Part 1 §17.18.59 (ST_NumberFormat)\n * Comprehensive set of page number formats\n */\nexport type PageNumberFormat =\n | 'decimal'\n | 'lowerRoman'\n | 'upperRoman'\n | 'lowerLetter'\n | 'upperLetter'\n | 'ordinal'\n | 'cardinalText'\n | 'ordinalText'\n | 'hex'\n | 'chicago'\n | 'decimalZero'\n | 'decimalEnclosedCircle'\n | 'decimalEnclosedFullstop'\n | 'decimalEnclosedParen'\n | 'ideographDigital'\n | 'ideographTraditional'\n | 'ideographLegalTraditional'\n | 'ideographEnclosedCircle'\n | 'ideographZodiac'\n | 'ideographZodiacTraditional'\n | 'chineseCounting'\n | 'chineseCountingThousand'\n | 'chineseLegalSimplified'\n | 'japaneseCounting'\n | 'japaneseDigitalTenThousand'\n | 'japaneseLegal'\n | 'koreanCounting'\n | 'koreanDigital'\n | 'koreanDigital2'\n | 'koreanLegal'\n | 'taiwaneseCounting'\n | 'taiwaneseCountingThousand'\n | 'taiwaneseDigital'\n | 'aiueo'\n | 'aiueoFullWidth'\n | 'iroha'\n | 'irohaFullWidth'\n | 'arabicAbjad'\n | 'arabicAlpha'\n | 'hebrew1'\n | 'hebrew2'\n | 'hindiConsonants'\n | 'hindiCounting'\n | 'hindiNumbers'\n | 'hindiVowels'\n | 'thaiCounting'\n | 'thaiLetters'\n | 'thaiNumbers'\n | 'vietnameseCounting'\n | 'russianLower'\n | 'russianUpper'\n | 'numberInDash'\n | 'dollarText'\n | 'bullet'\n | 'bahtText'\n | 'ganada'\n | 'chosung'\n | 'none'\n | string; // Allow any format string for forward compatibility\n\n/**\n * Page size properties\n */\nexport interface PageSize {\n /** Width in twips */\n width: number;\n /** Height in twips */\n height: number;\n /** Orientation */\n orientation?: PageOrientation;\n}\n\n/**\n * Margin properties\n */\nexport interface Margins {\n /** Top margin in twips */\n top: number;\n /** Bottom margin in twips */\n bottom: number;\n /** Left margin in twips */\n left: number;\n /** Right margin in twips */\n right: number;\n /** Header distance from top in twips */\n header?: number;\n /** Footer distance from bottom in twips */\n footer?: number;\n /** Gutter margin in twips */\n gutter?: number;\n}\n\n/**\n * Column properties\n */\nexport interface Columns {\n /** Number of columns */\n count: number;\n /** Space between columns in twips */\n space?: number;\n /** Equal column widths */\n equalWidth?: boolean;\n /** Show column separator line */\n separator?: boolean;\n /** Individual column widths (for unequal columns) in twips */\n columnWidths?: number[];\n}\n\n/**\n * Page numbering properties\n */\nexport interface PageNumbering {\n /** Starting page number */\n start?: number;\n /** Number format */\n format?: PageNumberFormat;\n}\n\n/**\n * Paper source (printer tray) properties\n */\nexport interface PaperSource {\n /** First page tray number */\n first?: number;\n /** Other pages tray number */\n other?: number;\n}\n\n/**\n * Vertical page alignment\n */\nexport type VerticalAlignment = 'top' | 'center' | 'bottom' | 'both';\n\n/**\n * Text direction\n */\nexport type TextDirection = 'ltr' | 'rtl' | 'tbRl' | 'btLr';\n\n/**\n * Document grid type for East Asian typography\n */\nexport type DocumentGridType = 'default' | 'lines' | 'linesAndChars' | 'snapToChars';\n\n/**\n * Document grid properties\n */\nexport interface DocumentGrid {\n /** Grid type */\n type?: DocumentGridType;\n /** Lines per page */\n linePitch?: number;\n /** Characters per line */\n charSpace?: number;\n}\n\n/**\n * Line numbering restart mode\n */\nexport type LineNumberingRestart = 'newPage' | 'newSection' | 'continuous';\n\n/**\n * Line numbering properties\n * Per ECMA-376 Part 1, Section 17.6.8 (w:lnNumType element)\n */\nexport interface LineNumbering {\n /** Display line number every N lines (countBy attribute) */\n countBy?: number;\n /** Starting line number */\n start?: number;\n /** Distance from text margin in twips */\n distance?: number;\n /** When to restart line numbering */\n restart?: LineNumberingRestart;\n}\n\n/**\n * Footnote/endnote position\n * Per ECMA-376 Part 1 §17.11.6 and §17.11.7\n */\nexport type NotePosition = 'pageBottom' | 'beneathText' | 'sectEnd' | 'docEnd';\n\n/**\n * Note numbering restart mode\n */\nexport type NoteNumberRestart = 'continuous' | 'eachSect' | 'eachPage';\n\n/**\n * Chapter separator character for page numbering\n * Per ECMA-376 Part 1 §17.18.5\n */\nexport type ChapterSeparator = 'colon' | 'emDash' | 'enDash' | 'hyphen' | 'period';\n\n/**\n * Footnote/endnote section-level properties\n */\nexport interface NoteProperties {\n /** Note positioning */\n position?: NotePosition;\n /** Number format */\n numberFormat?: PageNumberFormat;\n /** Starting number */\n startNumber?: number;\n /** Restart numbering mode */\n restart?: NoteNumberRestart;\n}\n\n/**\n * Page border definition for a single side\n * Per ECMA-376 Part 1 §17.6.10\n */\nexport interface PageBorderDef {\n /** Border style (single, double, dashed, etc.) */\n style?: string;\n /** Border size in eighths of a point */\n size?: number;\n /** Border color in hex format (without #) */\n color?: string;\n /** Space between border and page edge/text in points */\n space?: number;\n /** Whether to show shadow */\n shadow?: boolean;\n /** Whether to include frame around page */\n frame?: boolean;\n /** Theme color reference */\n themeColor?: string;\n /** Art border ID (for decorative borders) */\n artId?: number;\n}\n\n/**\n * Page borders configuration\n * Per ECMA-376 Part 1 §17.6.10\n */\nexport interface PageBorders {\n /** Top page border */\n top?: PageBorderDef;\n /** Bottom page border */\n bottom?: PageBorderDef;\n /** Left page border */\n left?: PageBorderDef;\n /** Right page border */\n right?: PageBorderDef;\n /** Whether border is measured from page edge or text edge */\n offsetFrom?: 'page' | 'text';\n /** Display on all pages, first page only, or not first page */\n display?: 'allPages' | 'firstPage' | 'notFirstPage';\n /** Z-ordering relative to text */\n zOrder?: 'front' | 'back';\n}\n\n/**\n * Section properties\n */\nexport interface SectionProperties {\n /** Page size */\n pageSize?: PageSize;\n /** Margins */\n margins?: Margins;\n /** Column layout */\n columns?: Columns;\n /** Section break type */\n type?: SectionType;\n /** Page numbering */\n pageNumbering?: PageNumbering;\n /** Header reference IDs */\n headers?: {\n default?: string; // rId for default header\n first?: string; // rId for first page header\n even?: string; // rId for even page header\n };\n /** Footer reference IDs */\n footers?: {\n default?: string; // rId for default footer\n first?: string; // rId for first page footer\n even?: string; // rId for even page footer\n };\n /** Title page (different first page) */\n titlePage?: boolean;\n /** Vertical page alignment */\n verticalAlignment?: VerticalAlignment;\n /** Paper source (printer tray) */\n paperSource?: PaperSource;\n /** Text direction (LTR/RTL support) */\n textDirection?: TextDirection;\n /** Right-to-left section layout */\n bidi?: boolean;\n /** Gutter on right side (for RTL) */\n rtlGutter?: boolean;\n /** Document grid for snapping text to grid */\n docGrid?: DocumentGrid;\n /** Line numbering configuration */\n lineNumbering?: LineNumbering;\n /** Section-level footnote properties (w:footnotePr) */\n footnotePr?: NoteProperties;\n /** Section-level endnote properties (w:endnotePr) */\n endnotePr?: NoteProperties;\n /** Suppress endnotes in this section (w:noEndnote) */\n noEndnote?: boolean;\n /** Form protection for this section (w:formProt) */\n formProt?: boolean;\n /** Page borders per ECMA-376 Part 1 §17.6.10 */\n pageBorders?: PageBorders;\n /** Printer settings relationship ID (w:printerSettings r:id) */\n printerSettingsId?: string;\n /** Chapter style heading level for page numbering (w:pgNumType w:chapStyle) */\n chapStyle?: number;\n /** Chapter separator for page numbering (w:pgNumType w:chapSep) */\n chapSep?: ChapterSeparator;\n}\n\n/**\n * Represents a document section\n */\n/**\n * Section property change tracking (w:sectPrChange)\n * Per ECMA-376 Part 1 §17.13.5.32\n */\nexport interface SectPrChange {\n author: string;\n date: string;\n id: string;\n previousProperties: Record<string, any>;\n}\n\nexport class Section {\n private properties: SectionProperties;\n /** Tracking context for automatic change tracking */\n private trackingContext?: import('../tracking/TrackingContext').TrackingContext;\n /** Section property change tracking (w:sectPrChange) */\n private sectPrChange?: SectPrChange;\n\n /**\n * Creates a new section\n * @param properties Section properties\n */\n constructor(properties: SectionProperties = {}) {\n // Set defaults only where necessary\n this.properties = {\n pageSize: properties.pageSize || {\n width: PAGE_SIZES.LETTER.width,\n height: PAGE_SIZES.LETTER.height,\n orientation: 'portrait',\n },\n margins: properties.margins || {\n top: 1440, // 1 inch\n bottom: 1440,\n left: 1440,\n right: 1440,\n header: 720, // 0.5 inch\n footer: 720,\n },\n // Default to single column layout\n columns: properties.columns || {\n count: 1,\n },\n // Default to next page section break\n type: properties.type || 'nextPage',\n pageNumbering: properties.pageNumbering,\n headers: properties.headers,\n footers: properties.footers,\n titlePage: properties.titlePage,\n // Phase 4.5 - New properties\n verticalAlignment: properties.verticalAlignment,\n paperSource: properties.paperSource,\n textDirection: properties.textDirection,\n pageBorders: properties.pageBorders,\n };\n }\n\n /**\n * Sets the tracking context for automatic change tracking.\n * Called by Document when track changes is enabled.\n * @internal\n */\n _setTrackingContext(context: import('../tracking/TrackingContext').TrackingContext): void {\n this.trackingContext = context;\n }\n\n /**\n * Gets the section property change tracking info\n */\n getSectPrChange(): SectPrChange | undefined {\n return this.sectPrChange;\n }\n\n /**\n * Sets the section property change tracking info\n */\n setSectPrChange(change: SectPrChange | undefined): void {\n this.sectPrChange = change;\n }\n\n /**\n * Clears the section property change tracking\n */\n clearSectPrChange(): void {\n this.sectPrChange = undefined;\n }\n\n /**\n * Gets the section properties\n */\n getProperties(): SectionProperties {\n return { ...this.properties };\n }\n\n // ============================================================================\n // Individual Property Getters\n // ============================================================================\n\n /**\n * Gets the page size settings\n * @returns Page size object with width, height, and orientation, or undefined\n */\n getPageSize(): PageSize | undefined {\n return this.properties.pageSize ? { ...this.properties.pageSize } : undefined;\n }\n\n /**\n * Gets the page orientation\n * @returns 'portrait' or 'landscape', or undefined if not set\n */\n getOrientation(): PageOrientation | undefined {\n return this.properties.pageSize?.orientation;\n }\n\n /**\n * Gets the margin settings\n * @returns Margins object or undefined if not set\n */\n getMargins(): Margins | undefined {\n return this.properties.margins ? { ...this.properties.margins } : undefined;\n }\n\n /**\n * Gets the column layout settings\n * @returns Columns object or undefined if not set\n */\n getColumns(): Columns | undefined {\n return this.properties.columns ? { ...this.properties.columns } : undefined;\n }\n\n /**\n * Gets the section type (break type)\n * @returns Section type or undefined if not set\n */\n getSectionType(): SectionType | undefined {\n return this.properties.type;\n }\n\n /**\n * Gets the page numbering settings\n * @returns PageNumbering object or undefined if not set\n */\n getPageNumbering(): PageNumbering | undefined {\n return this.properties.pageNumbering ? { ...this.properties.pageNumbering } : undefined;\n }\n\n /**\n * Gets whether this section has a title page (different first page)\n * @returns true if title page is enabled, false otherwise\n */\n getTitlePage(): boolean {\n return this.properties.titlePage ?? false;\n }\n\n /**\n * Gets header references\n * @returns Object with default, first, and even header relationship IDs, or undefined\n */\n getHeaderReferences(): { default?: string; first?: string; even?: string } | undefined {\n return this.properties.headers ? { ...this.properties.headers } : undefined;\n }\n\n /**\n * Gets a specific header reference\n * @param type Header type (default, first, even)\n * @returns Relationship ID or undefined if not set\n */\n getHeaderReference(type: 'default' | 'first' | 'even'): string | undefined {\n return this.properties.headers?.[type];\n }\n\n /**\n * Gets footer references\n * @returns Object with default, first, and even footer relationship IDs, or undefined\n */\n getFooterReferences(): { default?: string; first?: string; even?: string } | undefined {\n return this.properties.footers ? { ...this.properties.footers } : undefined;\n }\n\n /**\n * Gets a specific footer reference\n * @param type Footer type (default, first, even)\n * @returns Relationship ID or undefined if not set\n */\n getFooterReference(type: 'default' | 'first' | 'even'): string | undefined {\n return this.properties.footers?.[type];\n }\n\n /**\n * Gets the vertical page alignment\n * @returns Vertical alignment or undefined if not set\n */\n getVerticalAlignment(): VerticalAlignment | undefined {\n return this.properties.verticalAlignment;\n }\n\n /**\n * Gets the paper source (printer tray) settings\n * @returns PaperSource object or undefined if not set\n */\n getPaperSource(): PaperSource | undefined {\n return this.properties.paperSource ? { ...this.properties.paperSource } : undefined;\n }\n\n /**\n * Gets whether column separator is enabled\n * @returns true if separator is enabled, false otherwise\n */\n getColumnSeparator(): boolean {\n return this.properties.columns?.separator ?? false;\n }\n\n /**\n * Gets custom column widths\n * @returns Array of column widths in twips, or undefined if not set\n */\n getColumnWidths(): number[] | undefined {\n return this.properties.columns?.columnWidths\n ? [...this.properties.columns.columnWidths]\n : undefined;\n }\n\n /**\n * Gets the text direction\n * @returns Text direction or undefined if not set\n */\n getTextDirection(): TextDirection | undefined {\n return this.properties.textDirection;\n }\n\n /**\n * Gets whether the section is bidirectional (RTL)\n * @returns true if bidi is enabled, false otherwise\n */\n getBidi(): boolean {\n return this.properties.bidi ?? false;\n }\n\n /**\n * Gets whether RTL gutter is enabled (gutter on right side)\n * @returns true if RTL gutter is enabled, false otherwise\n */\n getRtlGutter(): boolean {\n return this.properties.rtlGutter ?? false;\n }\n\n /**\n * Gets the document grid settings\n * @returns DocumentGrid object or undefined if not set\n */\n getDocGrid(): DocumentGrid | undefined {\n return this.properties.docGrid ? { ...this.properties.docGrid } : undefined;\n }\n\n // ============================================================================\n // Setters\n // ============================================================================\n\n /**\n * Sets page size\n * @param width Width in twips\n * @param height Height in twips\n * @param orientation Page orientation\n */\n setPageSize(width: number, height: number, orientation: PageOrientation = 'portrait'): this {\n const prev = this.properties.pageSize ? { ...this.properties.pageSize } : undefined;\n this.properties.pageSize = { width, height, orientation };\n if (this.trackingContext?.isEnabled()) {\n this.trackingContext.trackSectionChange(this, 'pageSize', prev, this.properties.pageSize);\n }\n return this;\n }\n\n /**\n * Sets page orientation\n * @param orientation Page orientation\n */\n setOrientation(orientation: PageOrientation): this {\n const prev = this.properties.pageSize?.orientation;\n if (!this.properties.pageSize) {\n this.properties.pageSize = {\n width: PAGE_SIZES.LETTER.width,\n height: PAGE_SIZES.LETTER.height,\n };\n }\n this.properties.pageSize.orientation = orientation;\n\n // Swap width/height for landscape\n if (\n orientation === 'landscape' &&\n this.properties.pageSize.width < this.properties.pageSize.height\n ) {\n const temp = this.properties.pageSize.width;\n this.properties.pageSize.width = this.properties.pageSize.height;\n this.properties.pageSize.height = temp;\n }\n\n if (this.trackingContext?.isEnabled() && prev !== orientation) {\n this.trackingContext.trackSectionChange(this, 'orientation', prev, orientation);\n }\n return this;\n }\n\n /**\n * Sets margins\n * @param margins Margin properties\n */\n setMargins(margins: Margins): this {\n const prev = this.properties.margins ? { ...this.properties.margins } : undefined;\n const existing = this.properties.margins;\n this.properties.margins = {\n top: margins.top,\n bottom: margins.bottom,\n left: margins.left,\n right: margins.right,\n header: margins.header ?? existing?.header ?? 720,\n footer: margins.footer ?? existing?.footer ?? 720,\n gutter: margins.gutter ?? existing?.gutter,\n };\n if (this.trackingContext?.isEnabled()) {\n this.trackingContext.trackSectionChange(this, 'margins', prev, this.properties.margins);\n }\n return this;\n }\n\n /**\n * Sets column layout\n * @param count Number of columns\n * @param space Space between columns in twips\n */\n setColumns(count: number, space = 720): this {\n const prev = this.properties.columns ? { ...this.properties.columns } : undefined;\n this.properties.columns = {\n count,\n space,\n equalWidth: true,\n };\n if (this.trackingContext?.isEnabled()) {\n this.trackingContext.trackSectionChange(this, 'columns', prev, this.properties.columns);\n }\n return this;\n }\n\n /**\n * Sets section type\n * @param type Section break type\n */\n setSectionType(type: SectionType): this {\n const prev = this.properties.type;\n this.properties.type = type;\n if (this.trackingContext?.isEnabled() && prev !== type) {\n this.trackingContext.trackSectionChange(this, 'type', prev, type);\n }\n return this;\n }\n\n /**\n * Sets page numbering\n * @param start Starting page number\n * @param format Number format\n */\n setPageNumbering(start?: number, format?: PageNumberFormat): this {\n const prev = this.properties.pageNumbering ? { ...this.properties.pageNumbering } : undefined;\n this.properties.pageNumbering = { start, format };\n if (this.trackingContext?.isEnabled()) {\n this.trackingContext.trackSectionChange(\n this,\n 'pageNumbering',\n prev,\n this.properties.pageNumbering\n );\n }\n return this;\n }\n\n /**\n * Sets title page flag (different first page)\n * @param titlePage Whether this section has a different first page\n */\n setTitlePage(titlePage = true): this {\n const prev = this.properties.titlePage;\n this.properties.titlePage = titlePage;\n if (this.trackingContext?.isEnabled() && prev !== titlePage) {\n this.trackingContext.trackSectionChange(this, 'titlePage', prev, titlePage);\n }\n return this;\n }\n\n /**\n * Sets header reference\n * @param type Header type (default, first, even)\n * @param rId Relationship ID\n */\n setHeaderReference(type: 'default' | 'first' | 'even', rId: string): this {\n const prev = this.properties.headers?.[type];\n if (!this.properties.headers) {\n this.properties.headers = {};\n }\n this.properties.headers[type] = rId;\n if (this.trackingContext?.isEnabled() && prev !== rId) {\n this.trackingContext.trackSectionChange(this, `headerReference:${type}`, prev, rId);\n }\n return this;\n }\n\n /**\n * Sets footer reference\n * @param type Footer type (default, first, even)\n * @param rId Relationship ID\n */\n setFooterReference(type: 'default' | 'first' | 'even', rId: string): this {\n const prev = this.properties.footers?.[type];\n if (!this.properties.footers) {\n this.properties.footers = {};\n }\n this.properties.footers[type] = rId;\n if (this.trackingContext?.isEnabled() && prev !== rId) {\n this.trackingContext.trackSectionChange(this, `footerReference:${type}`, prev, rId);\n }\n return this;\n }\n\n /**\n * Sets vertical page alignment\n * Controls how content is vertically aligned on the page\n * @param alignment Vertical alignment (top, center, bottom, both=justified)\n */\n setVerticalAlignment(alignment: VerticalAlignment): this {\n const prev = this.properties.verticalAlignment;\n this.properties.verticalAlignment = alignment;\n if (this.trackingContext?.isEnabled() && prev !== alignment) {\n this.trackingContext.trackSectionChange(this, 'verticalAlignment', prev, alignment);\n }\n return this;\n }\n\n /**\n * Sets paper source (printer tray selection)\n * @param first First page tray number\n * @param other Other pages tray number\n */\n setPaperSource(first?: number, other?: number): this {\n const prev = this.properties.paperSource ? { ...this.properties.paperSource } : undefined;\n this.properties.paperSource = { first, other };\n if (this.trackingContext?.isEnabled()) {\n this.trackingContext.trackSectionChange(\n this,\n 'paperSource',\n prev,\n this.properties.paperSource\n );\n }\n return this;\n }\n\n /**\n * Sets column separator line\n * Shows a vertical line between columns\n * @param separator Whether to show column separator line\n */\n setColumnSeparator(separator = true): this {\n const prev = this.properties.columns?.separator;\n if (!this.properties.columns) {\n this.properties.columns = { count: 1 };\n }\n this.properties.columns.separator = separator;\n if (this.trackingContext?.isEnabled() && prev !== separator) {\n this.trackingContext.trackSectionChange(this, 'columnSeparator', prev, separator);\n }\n return this;\n }\n\n /**\n * Sets custom column widths (for unequal columns)\n * @param widths Array of column widths in twips\n */\n setColumnWidths(widths: number[]): this {\n const prev = this.properties.columns ? { ...this.properties.columns } : undefined;\n if (!this.properties.columns) {\n this.properties.columns = { count: widths.length };\n }\n this.properties.columns.columnWidths = widths;\n this.properties.columns.equalWidth = false;\n this.properties.columns.count = widths.length;\n if (this.trackingContext?.isEnabled()) {\n this.trackingContext.trackSectionChange(this, 'columns', prev, {\n ...this.properties.columns,\n });\n }\n return this;\n }\n\n /**\n * Sets text direction for the section\n * @param direction Text direction (ltr=left-to-right, rtl=right-to-left, tbRl=top-to-bottom-right-to-left, btLr=bottom-to-top-left-to-right)\n */\n setTextDirection(direction: TextDirection): this {\n const prev = this.properties.textDirection;\n this.properties.textDirection = direction;\n if (this.trackingContext?.isEnabled() && prev !== direction) {\n this.trackingContext.trackSectionChange(this, 'textDirection', prev, direction);\n }\n return this;\n }\n\n /**\n * Sets line numbering for the section\n * Per ECMA-376 Part 1, Section 17.6.8 (w:lnNumType)\n * @param options Line numbering configuration\n */\n setLineNumbering(options: LineNumbering): this {\n const prev = this.properties.lineNumbering ? { ...this.properties.lineNumbering } : undefined;\n this.properties.lineNumbering = { ...options };\n if (this.trackingContext?.isEnabled()) {\n this.trackingContext.trackSectionChange(\n this,\n 'lineNumbering',\n prev,\n this.properties.lineNumbering\n );\n }\n return this;\n }\n\n /**\n * Gets line numbering configuration\n * @returns Line numbering settings or undefined if not set\n */\n getLineNumbering(): LineNumbering | undefined {\n return this.properties.lineNumbering ? { ...this.properties.lineNumbering } : undefined;\n }\n\n /**\n * Clears line numbering for the section\n */\n clearLineNumbering(): this {\n this.properties.lineNumbering = undefined;\n return this;\n }\n\n /**\n * Sets section-level footnote properties\n * Per ECMA-376 Part 1 §17.11.6\n */\n setFootnoteProperties(props: NoteProperties): this {\n const prev = this.properties.footnotePr ? { ...this.properties.footnotePr } : undefined;\n this.properties.footnotePr = { ...props };\n if (this.trackingContext?.isEnabled()) {\n this.trackingContext.trackSectionChange(this, 'footnotePr', prev, this.properties.footnotePr);\n }\n return this;\n }\n\n /**\n * Sets section-level endnote properties\n * Per ECMA-376 Part 1 §17.11.7\n */\n setEndnoteProperties(props: NoteProperties): this {\n const prev = this.properties.endnotePr ? { ...this.properties.endnotePr } : undefined;\n this.properties.endnotePr = { ...props };\n if (this.trackingContext?.isEnabled()) {\n this.trackingContext.trackSectionChange(this, 'endnotePr', prev, this.properties.endnotePr);\n }\n return this;\n }\n\n /**\n * Sets whether endnotes are suppressed in this section\n * Per ECMA-376 Part 1 §17.6.14\n */\n setNoEndnote(noEndnote = true): this {\n const prev = this.properties.noEndnote;\n this.properties.noEndnote = noEndnote;\n if (this.trackingContext?.isEnabled() && prev !== noEndnote) {\n this.trackingContext.trackSectionChange(this, 'noEndnote', prev, noEndnote);\n }\n return this;\n }\n\n /**\n * Sets form protection for this section\n * Per ECMA-376 Part 1 §17.6.4\n */\n setFormProtection(formProt = true): this {\n const prev = this.properties.formProt;\n this.properties.formProt = formProt;\n if (this.trackingContext?.isEnabled() && prev !== formProt) {\n this.trackingContext.trackSectionChange(this, 'formProt', prev, formProt);\n }\n return this;\n }\n\n /**\n * Sets printer settings relationship ID\n * Per ECMA-376 Part 1 §17.6.6\n */\n setPrinterSettings(rId: string): this {\n const prev = this.properties.printerSettingsId;\n this.properties.printerSettingsId = rId;\n if (this.trackingContext?.isEnabled() && prev !== rId) {\n this.trackingContext.trackSectionChange(this, 'printerSettings', prev, rId);\n }\n return this;\n }\n\n /**\n * Sets chapter numbering for page numbers\n * Per ECMA-376 Part 1 §17.6.12\n * @param chapStyle - Heading level (1-9) to use for chapter numbering\n * @param chapSep - Separator between chapter and page number\n */\n setChapterNumbering(chapStyle: number, chapSep?: ChapterSeparator): this {\n const prevStyle = this.properties.chapStyle;\n const prevSep = this.properties.chapSep;\n this.properties.chapStyle = chapStyle;\n if (chapSep) this.properties.chapSep = chapSep;\n if (this.trackingContext?.isEnabled()) {\n this.trackingContext.trackSectionChange(\n this,\n 'chapterNumbering',\n { chapStyle: prevStyle, chapSep: prevSep },\n { chapStyle, chapSep: chapSep || prevSep }\n );\n }\n return this;\n }\n\n /**\n * Generates WordprocessingML XML for section properties\n */\n toXML(): XMLElement {\n const children: XMLElement[] = [];\n\n // Header references\n if (this.properties.headers) {\n if (this.properties.headers.first) {\n children.push(\n XMLBuilder.wSelf('headerReference', {\n 'w:type': 'first',\n 'r:id': this.properties.headers.first,\n })\n );\n }\n if (this.properties.headers.even) {\n children.push(\n XMLBuilder.wSelf('headerReference', {\n 'w:type': 'even',\n 'r:id': this.properties.headers.even,\n })\n );\n }\n if (this.properties.headers.default) {\n children.push(\n XMLBuilder.wSelf('headerReference', {\n 'w:type': 'default',\n 'r:id': this.properties.headers.default,\n })\n );\n }\n }\n\n // Footer references\n if (this.properties.footers) {\n if (this.properties.footers.first) {\n children.push(\n XMLBuilder.wSelf('footerReference', {\n 'w:type': 'first',\n 'r:id': this.properties.footers.first,\n })\n );\n }\n if (this.properties.footers.even) {\n children.push(\n XMLBuilder.wSelf('footerReference', {\n 'w:type': 'even',\n 'r:id': this.properties.footers.even,\n })\n );\n }\n if (this.properties.footers.default) {\n children.push(\n XMLBuilder.wSelf('footerReference', {\n 'w:type': 'default',\n 'r:id': this.properties.footers.default,\n })\n );\n }\n }\n\n // CT_SectPr element order per ECMA-376:\n // footnotePr → endnotePr → type → pgSz → pgMar → paperSrc → pgBorders →\n // lnNumType → pgNumType → cols → formProt → vAlign → noEndnote → titlePg →\n // textDirection → bidi → rtlGutter → docGrid → printerSettings → sectPrChange\n\n // Footnote properties (w:footnotePr)\n if (this.properties.footnotePr) {\n const fnChildren: XMLElement[] = [];\n if (this.properties.footnotePr.position) {\n fnChildren.push(XMLBuilder.wSelf('pos', { 'w:val': this.properties.footnotePr.position }));\n }\n if (this.properties.footnotePr.numberFormat) {\n fnChildren.push(\n XMLBuilder.wSelf('numFmt', { 'w:val': this.properties.footnotePr.numberFormat })\n );\n }\n if (this.properties.footnotePr.startNumber !== undefined) {\n fnChildren.push(\n XMLBuilder.wSelf('numStart', {\n 'w:val': this.properties.footnotePr.startNumber.toString(),\n })\n );\n }\n if (this.properties.footnotePr.restart) {\n fnChildren.push(\n XMLBuilder.wSelf('numRestart', { 'w:val': this.properties.footnotePr.restart })\n );\n }\n if (fnChildren.length > 0) {\n children.push(XMLBuilder.w('footnotePr', undefined, fnChildren));\n }\n }\n\n // Endnote properties (w:endnotePr)\n if (this.properties.endnotePr) {\n const enChildren: XMLElement[] = [];\n if (this.properties.endnotePr.position) {\n enChildren.push(XMLBuilder.wSelf('pos', { 'w:val': this.properties.endnotePr.position }));\n }\n if (this.properties.endnotePr.numberFormat) {\n enChildren.push(\n XMLBuilder.wSelf('numFmt', { 'w:val': this.properties.endnotePr.numberFormat })\n );\n }\n if (this.properties.endnotePr.startNumber !== undefined) {\n enChildren.push(\n XMLBuilder.wSelf('numStart', {\n 'w:val': this.properties.endnotePr.startNumber.toString(),\n })\n );\n }\n if (this.properties.endnotePr.restart) {\n enChildren.push(\n XMLBuilder.wSelf('numRestart', { 'w:val': this.properties.endnotePr.restart })\n );\n }\n if (enChildren.length > 0) {\n children.push(XMLBuilder.w('endnotePr', undefined, enChildren));\n }\n }\n\n // Section type\n if (this.properties.type) {\n children.push(XMLBuilder.wSelf('type', { 'w:val': this.properties.type }));\n }\n\n // Page size\n if (this.properties.pageSize) {\n const attrs: Record<string, string> = {\n 'w:w': this.properties.pageSize.width.toString(),\n 'w:h': this.properties.pageSize.height.toString(),\n };\n if (this.properties.pageSize.orientation === 'landscape') {\n attrs['w:orient'] = 'landscape';\n }\n children.push(XMLBuilder.wSelf('pgSz', attrs));\n }\n\n // Margins\n if (this.properties.margins) {\n const attrs: Record<string, string> = {\n 'w:top': this.properties.margins.top.toString(),\n 'w:right': this.properties.margins.right.toString(),\n 'w:bottom': this.properties.margins.bottom.toString(),\n 'w:left': this.properties.margins.left.toString(),\n };\n attrs['w:header'] = (this.properties.margins.header ?? 720).toString();\n attrs['w:footer'] = (this.properties.margins.footer ?? 720).toString();\n if (this.properties.margins.gutter !== undefined) {\n attrs['w:gutter'] = this.properties.margins.gutter.toString();\n }\n children.push(XMLBuilder.wSelf('pgMar', attrs));\n }\n\n // Paper source\n if (this.properties.paperSource) {\n const attrs: Record<string, string> = {};\n if (this.properties.paperSource.first !== undefined) {\n attrs['w:first'] = this.properties.paperSource.first.toString();\n }\n if (this.properties.paperSource.other !== undefined) {\n attrs['w:other'] = this.properties.paperSource.other.toString();\n }\n if (Object.keys(attrs).length > 0) {\n children.push(XMLBuilder.wSelf('paperSrc', attrs));\n }\n }\n\n // Page borders per ECMA-376 Part 1 §17.6.10\n if (this.properties.pageBorders) {\n const pgBorders = this.properties.pageBorders;\n const pgBordersAttrs: Record<string, string> = {};\n if (pgBorders.offsetFrom) pgBordersAttrs['w:offsetFrom'] = pgBorders.offsetFrom;\n if (pgBorders.display) pgBordersAttrs['w:display'] = pgBorders.display;\n if (pgBorders.zOrder) pgBordersAttrs['w:zOrder'] = pgBorders.zOrder;\n\n const borderChildren: XMLElement[] = [];\n const buildBorder = (side: string, def: PageBorderDef) => {\n const bAttrs: Record<string, string | number> = {};\n if (def.style) bAttrs['w:val'] = def.style;\n // ECMA-376 Part 1 §17.18.2: sz valid range 2-96 (eighths of a point)\n if (def.size !== undefined) bAttrs['w:sz'] = Math.max(2, Math.min(96, def.size));\n if (def.color) bAttrs['w:color'] = def.color;\n // ECMA-376 Part 1 §17.18.88: space valid range 0-31680 (points)\n if (def.space !== undefined) bAttrs['w:space'] = Math.max(0, Math.min(31680, def.space));\n if (def.shadow) bAttrs['w:shadow'] = '1';\n if (def.frame) bAttrs['w:frame'] = '1';\n if (def.themeColor) bAttrs['w:themeColor'] = def.themeColor;\n if (def.artId !== undefined) bAttrs['w:id'] = def.artId;\n borderChildren.push(XMLBuilder.wSelf(side, bAttrs));\n };\n\n if (pgBorders.top) buildBorder('top', pgBorders.top);\n if (pgBorders.left) buildBorder('left', pgBorders.left);\n if (pgBorders.bottom) buildBorder('bottom', pgBorders.bottom);\n if (pgBorders.right) buildBorder('right', pgBorders.right);\n\n children.push(XMLBuilder.w('pgBorders', pgBordersAttrs, borderChildren));\n }\n\n // Line numbering (w:lnNumType)\n if (this.properties.lineNumbering) {\n const attrs: Record<string, string> = {};\n if (this.properties.lineNumbering.countBy !== undefined) {\n attrs['w:countBy'] = this.properties.lineNumbering.countBy.toString();\n }\n if (this.properties.lineNumbering.start !== undefined) {\n attrs['w:start'] = this.properties.lineNumbering.start.toString();\n }\n if (this.properties.lineNumbering.distance !== undefined) {\n attrs['w:distance'] = this.properties.lineNumbering.distance.toString();\n }\n if (this.properties.lineNumbering.restart) {\n attrs['w:restart'] = this.properties.lineNumbering.restart;\n }\n if (Object.keys(attrs).length > 0) {\n children.push(XMLBuilder.wSelf('lnNumType', attrs));\n }\n }\n\n // Page numbering\n if (this.properties.pageNumbering || this.properties.chapStyle !== undefined) {\n const attrs: Record<string, string> = {};\n if (this.properties.pageNumbering?.start !== undefined) {\n attrs['w:start'] = this.properties.pageNumbering.start.toString();\n }\n if (this.properties.pageNumbering?.format) {\n attrs['w:fmt'] = this.properties.pageNumbering.format;\n }\n if (this.properties.chapStyle !== undefined) {\n attrs['w:chapStyle'] = this.properties.chapStyle.toString();\n }\n if (this.properties.chapSep) {\n attrs['w:chapSep'] = this.properties.chapSep;\n }\n if (Object.keys(attrs).length > 0) {\n children.push(XMLBuilder.wSelf('pgNumType', attrs));\n }\n }\n\n // Columns\n if (this.properties.columns) {\n const attrs: Record<string, string> = {\n 'w:num': this.properties.columns.count.toString(),\n };\n if (this.properties.columns.space !== undefined) {\n attrs['w:space'] = this.properties.columns.space.toString();\n }\n if (this.properties.columns.equalWidth !== undefined) {\n attrs['w:equalWidth'] = this.properties.columns.equalWidth ? '1' : '0';\n }\n if (this.properties.columns.separator !== undefined) {\n attrs['w:sep'] = this.properties.columns.separator ? '1' : '0';\n }\n\n const colChildren: XMLElement[] = [];\n if (this.properties.columns.columnWidths) {\n for (const width of this.properties.columns.columnWidths) {\n colChildren.push(XMLBuilder.wSelf('col', { 'w:w': width.toString() }));\n }\n }\n\n children.push(\n colChildren.length > 0\n ? XMLBuilder.w('cols', attrs, colChildren)\n : XMLBuilder.wSelf('cols', attrs)\n );\n }\n\n // Form protection (w:formProt)\n if (this.properties.formProt) {\n children.push(XMLBuilder.wSelf('formProt'));\n }\n\n // Vertical alignment\n if (this.properties.verticalAlignment) {\n children.push(XMLBuilder.wSelf('vAlign', { 'w:val': this.properties.verticalAlignment }));\n }\n\n // Suppress endnotes (w:noEndnote)\n if (this.properties.noEndnote) {\n children.push(XMLBuilder.wSelf('noEndnote'));\n }\n\n // Title page\n if (this.properties.titlePage) {\n children.push(XMLBuilder.wSelf('titlePg', { 'w:val': '1' }));\n }\n\n // Text direction (map to valid ST_TextDirection values per ECMA-376 §17.18.93)\n if (this.properties.textDirection) {\n const textDirMap: Record<string, string> = {\n ltr: 'lrTb',\n rtl: 'tbRl',\n tbRl: 'tbRl',\n btLr: 'btLr',\n lrTb: 'lrTb',\n lrTbV: 'lrTbV',\n tbRlV: 'tbRlV',\n tbLrV: 'tbLrV',\n };\n const val = textDirMap[this.properties.textDirection] || this.properties.textDirection;\n children.push(XMLBuilder.wSelf('textDirection', { 'w:val': val }));\n }\n\n // Bidirectional section (RTL)\n if (this.properties.bidi) {\n children.push(XMLBuilder.wSelf('bidi'));\n }\n\n // RTL gutter (gutter on right side)\n if (this.properties.rtlGutter) {\n children.push(XMLBuilder.wSelf('rtlGutter'));\n }\n\n // Document grid\n if (this.properties.docGrid) {\n const attrs: Record<string, string> = {};\n if (this.properties.docGrid.type) {\n attrs['w:type'] = this.properties.docGrid.type;\n }\n if (this.properties.docGrid.linePitch !== undefined) {\n attrs['w:linePitch'] = this.properties.docGrid.linePitch.toString();\n }\n if (this.properties.docGrid.charSpace !== undefined) {\n attrs['w:charSpace'] = this.properties.docGrid.charSpace.toString();\n }\n if (Object.keys(attrs).length > 0) {\n children.push(XMLBuilder.wSelf('docGrid', attrs));\n }\n }\n\n // Printer settings (w:printerSettings)\n if (this.properties.printerSettingsId) {\n children.push(\n XMLBuilder.wSelf('printerSettings', {\n 'r:id': this.properties.printerSettingsId,\n })\n );\n }\n\n // Add section property change (w:sectPrChange) per ECMA-376 Part 1 §17.13.5.32\n // Must be last child of w:sectPr\n if (this.sectPrChange) {\n const changeAttrs: Record<string, string | number> = {\n 'w:id': this.sectPrChange.id,\n 'w:author': this.sectPrChange.author,\n 'w:date': this.sectPrChange.date,\n };\n const prevChildren: XMLElement[] = [];\n const prev = this.sectPrChange.previousProperties;\n if (prev) {\n // Ordered per CT_SectPrBase:\n // type → pgSz → pgMar → lnNumType → pgNumType → cols → formProt → vAlign → titlePg → textDirection\n if (prev.type) {\n prevChildren.push(XMLBuilder.wSelf('type', { 'w:val': prev.type }));\n }\n if (prev.pageSize) {\n const pgSzAttrs: Record<string, string> = {\n 'w:w': prev.pageSize.width?.toString() || '12240',\n 'w:h': prev.pageSize.height?.toString() || '15840',\n };\n if (prev.pageSize.orientation === 'landscape') {\n pgSzAttrs['w:orient'] = 'landscape';\n }\n prevChildren.push(XMLBuilder.wSelf('pgSz', pgSzAttrs));\n }\n if (prev.margins) {\n const pgMarAttrs: Record<string, string> = {};\n if (prev.margins.top !== undefined) pgMarAttrs['w:top'] = prev.margins.top.toString();\n if (prev.margins.bottom !== undefined)\n pgMarAttrs['w:bottom'] = prev.margins.bottom.toString();\n if (prev.margins.left !== undefined) pgMarAttrs['w:left'] = prev.margins.left.toString();\n if (prev.margins.right !== undefined)\n pgMarAttrs['w:right'] = prev.margins.right.toString();\n if (prev.margins.header !== undefined)\n pgMarAttrs['w:header'] = prev.margins.header.toString();\n if (prev.margins.footer !== undefined)\n pgMarAttrs['w:footer'] = prev.margins.footer.toString();\n prevChildren.push(XMLBuilder.wSelf('pgMar', pgMarAttrs));\n }\n if (prev.lineNumbering) {\n const lnAttrs: Record<string, string> = {};\n if (prev.lineNumbering.countBy !== undefined)\n lnAttrs['w:countBy'] = prev.lineNumbering.countBy.toString();\n if (prev.lineNumbering.start !== undefined)\n lnAttrs['w:start'] = prev.lineNumbering.start.toString();\n if (prev.lineNumbering.restart) lnAttrs['w:restart'] = prev.lineNumbering.restart;\n if (prev.lineNumbering.distance !== undefined)\n lnAttrs['w:distance'] = prev.lineNumbering.distance.toString();\n if (Object.keys(lnAttrs).length > 0) {\n prevChildren.push(XMLBuilder.wSelf('lnNumType', lnAttrs));\n }\n }\n if (prev.pageNumbering) {\n const pnAttrs: Record<string, string> = {};\n if (prev.pageNumbering.start !== undefined)\n pnAttrs['w:start'] = prev.pageNumbering.start.toString();\n if (prev.pageNumbering.format) pnAttrs['w:fmt'] = prev.pageNumbering.format;\n if (Object.keys(pnAttrs).length > 0) {\n prevChildren.push(XMLBuilder.wSelf('pgNumType', pnAttrs));\n }\n }\n if (prev.columns) {\n const colAttrs: Record<string, string> = {\n 'w:num': prev.columns.count?.toString() || '1',\n };\n if (prev.columns.space !== undefined) colAttrs['w:space'] = prev.columns.space.toString();\n prevChildren.push(XMLBuilder.wSelf('cols', colAttrs));\n }\n if (prev.formProt) {\n prevChildren.push(XMLBuilder.wSelf('formProt'));\n }\n if (prev.verticalAlignment) {\n prevChildren.push(XMLBuilder.wSelf('vAlign', { 'w:val': prev.verticalAlignment }));\n }\n if (prev.titlePage) {\n prevChildren.push(XMLBuilder.wSelf('titlePg'));\n }\n if (prev.textDirection) {\n const tdMap: Record<string, string> = {\n ltr: 'lrTb',\n rtl: 'tbRl',\n tbRl: 'tbRl',\n btLr: 'btLr',\n lrTb: 'lrTb',\n lrTbV: 'lrTbV',\n tbRlV: 'tbRlV',\n tbLrV: 'tbLrV',\n };\n prevChildren.push(\n XMLBuilder.wSelf('textDirection', {\n 'w:val': tdMap[prev.textDirection] || prev.textDirection,\n })\n );\n }\n }\n const prevSectPr = XMLBuilder.w('sectPr', undefined, prevChildren);\n children.push(XMLBuilder.w('sectPrChange', changeAttrs, [prevSectPr]));\n }\n\n return XMLBuilder.w('sectPr', undefined, children);\n }\n\n /**\n * Creates a deep clone of this section\n * @returns New Section instance with copied properties\n */\n clone(): Section {\n // Deep clone all nested objects\n const clonedProperties: SectionProperties = {};\n\n if (this.properties.pageSize) {\n clonedProperties.pageSize = { ...this.properties.pageSize };\n }\n\n if (this.properties.margins) {\n clonedProperties.margins = { ...this.properties.margins };\n }\n\n if (this.properties.columns) {\n clonedProperties.columns = {\n ...this.properties.columns,\n columnWidths: this.properties.columns.columnWidths\n ? [...this.properties.columns.columnWidths]\n : undefined,\n };\n }\n\n if (this.properties.pageNumbering) {\n clonedProperties.pageNumbering = { ...this.properties.pageNumbering };\n }\n\n if (this.properties.headers) {\n clonedProperties.headers = { ...this.properties.headers };\n }\n\n if (this.properties.footers) {\n clonedProperties.footers = { ...this.properties.footers };\n }\n\n if (this.properties.paperSource) {\n clonedProperties.paperSource = { ...this.properties.paperSource };\n }\n\n if (this.properties.docGrid) {\n clonedProperties.docGrid = { ...this.properties.docGrid };\n }\n\n if (this.properties.lineNumbering) {\n clonedProperties.lineNumbering = { ...this.properties.lineNumbering };\n }\n\n // Copy primitive properties\n clonedProperties.type = this.properties.type;\n clonedProperties.titlePage = this.properties.titlePage;\n clonedProperties.verticalAlignment = this.properties.verticalAlignment;\n clonedProperties.textDirection = this.properties.textDirection;\n clonedProperties.bidi = this.properties.bidi;\n clonedProperties.rtlGutter = this.properties.rtlGutter;\n\n return new Section(clonedProperties);\n }\n\n /**\n * Creates a section with default properties\n */\n static create(properties?: SectionProperties): Section {\n return new Section(properties);\n }\n\n /**\n * Creates a letter-sized section (8.5\" x 11\")\n */\n static createLetter(): Section {\n return new Section({\n pageSize: {\n width: PAGE_SIZES.LETTER.width,\n height: PAGE_SIZES.LETTER.height,\n orientation: 'portrait',\n },\n });\n }\n\n /**\n * Creates an A4-sized section (21cm x 29.7cm)\n */\n static createA4(): Section {\n return new Section({\n pageSize: {\n width: PAGE_SIZES.A4.width,\n height: PAGE_SIZES.A4.height,\n orientation: 'portrait',\n },\n });\n }\n\n /**\n * Creates a landscape section\n * @param pageSize Page size (default: Letter)\n */\n static createLandscape(pageSize: 'letter' | 'a4' = 'letter'): Section {\n const size = pageSize === 'a4' ? PAGE_SIZES.A4 : PAGE_SIZES.LETTER;\n return new Section({\n pageSize: {\n width: size.height, // Swap for landscape\n height: size.width,\n orientation: 'landscape',\n },\n });\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Shape.d.ts","sourceRoot":"","sources":["../../src/elements/Shape.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Shape.d.ts","sourceRoot":"","sources":["../../src/elements/Shape.ts"],"names":[],"mappings":"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"}