@poe-platform/safe-bash 0.1.816 → 0.1.818

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 (461) hide show
  1. package/dist/image-ast/index.js +2 -2
  2. package/dist/mp4-ast/index.d.ts +2 -1
  3. package/dist/mp4-ast/mp4-metadata-source.d.ts +10 -0
  4. package/dist/mp4-ast/mp4-packets-source.d.ts +8 -1
  5. package/dist/mp4-ast/types.d.ts +21 -3
  6. package/dist/pdf-ast/ast.d.ts +2 -0
  7. package/dist/pdf-ast/content/evaluator.d.ts +11 -0
  8. package/dist/pdf-ast/content/retained-evaluator.d.ts +2 -2
  9. package/dist/pdf-ast/content/retained-page.d.ts +2 -2
  10. package/dist/pdf-ast/cos/value-parser.d.ts +2 -0
  11. package/dist/pdf-ast/extract/html-text-stream.d.ts +14 -0
  12. package/dist/pdf-ast/extract/logical-text-stream.d.ts +14 -0
  13. package/dist/pdf-ast/extract/raw-text-index.d.ts +18 -4
  14. package/dist/pdf-ast/extract/retained-color.d.ts +6 -6
  15. package/dist/pdf-ast/extract/retained-decoded-image.d.ts +2 -2
  16. package/dist/pdf-ast/extract/stored-text-glyphs.d.ts +8 -0
  17. package/dist/pdf-ast/fonts/resolve.d.ts +5 -1
  18. package/dist/pdf-ast/fonts/retained.d.ts +2 -2
  19. package/dist/pdf-ast/image.d.ts +2 -0
  20. package/dist/pdf-ast/image.js +19 -0
  21. package/dist/pdf-ast/index.d.ts +3 -0
  22. package/dist/pdf-ast/index.js +264 -66845
  23. package/dist/pdf-ast/render/postscript.d.ts +6 -0
  24. package/dist/pdf-ast/render/raster.d.ts +21 -1
  25. package/dist/pdf-ast/retained-document.d.ts +16 -95
  26. package/dist/pdf-ast/retained-reader.d.ts +109 -0
  27. package/dist/safe-bash/command-chunks/biff-AYJZR2YV-JPESBEOO.js +5741 -0
  28. package/dist/safe-bash/command-chunks/{chunk-SL4LD25A.js → chunk-232N24HE.js} +9 -9
  29. package/dist/safe-bash/command-chunks/{chunk-ALD53QFL.js → chunk-2C4QMQQD.js} +42 -12
  30. package/dist/safe-bash/command-chunks/{chunk-3PM46VWH.js → chunk-2FEMMALH.js} +4 -4
  31. package/dist/safe-bash/command-chunks/chunk-2J4OQT3F.js +153 -0
  32. package/dist/safe-bash/command-chunks/{chunk-QDV2NIFR.js → chunk-2TMTGVJR.js} +1 -1
  33. package/dist/safe-bash/command-chunks/{chunk-ARE267HR.js → chunk-2WTDP3TP.js} +5 -5
  34. package/dist/safe-bash/command-chunks/{chunk-GEDO5V32.js → chunk-2XR7B6DY.js} +602 -211
  35. package/dist/safe-bash/command-chunks/{chunk-EY3UE26F.js → chunk-2YC6MWQB.js} +1 -1
  36. package/dist/safe-bash/command-chunks/{chunk-UPWLHHZ2.js → chunk-37KBCKDF.js} +13 -13
  37. package/dist/safe-bash/command-chunks/{chunk-DOVWHVHI.js → chunk-3B6554G6.js} +5 -5
  38. package/dist/safe-bash/command-chunks/{chunk-FB2WPI3M.js → chunk-3ZGO24WG.js} +1 -1
  39. package/dist/safe-bash/command-chunks/{chunk-GR4ONCQ5.js → chunk-424NYO35.js} +7 -7
  40. package/dist/safe-bash/command-chunks/{chunk-MQE77MEQ.js → chunk-45GTHPL5.js} +3 -3
  41. package/dist/safe-bash/command-chunks/{chunk-AF2IO57Q.js → chunk-4OHTYYNU.js} +8 -136
  42. package/dist/safe-bash/command-chunks/{chunk-ICJH6A73.js → chunk-4PMMJ45F.js} +3 -3
  43. package/dist/safe-bash/command-chunks/{chunk-57PK2QFX.js → chunk-4SFX6YGC.js} +6 -6
  44. package/dist/safe-bash/command-chunks/{chunk-G3LUT475.js → chunk-4WHTTCKY.js} +6 -6
  45. package/dist/safe-bash/command-chunks/{chunk-DBZCTL7C.js → chunk-4Z7PBIMP.js} +20 -18
  46. package/dist/safe-bash/command-chunks/{chunk-A4P37F3P.js → chunk-57SKL76U.js} +3 -3
  47. package/dist/safe-bash/command-chunks/{chunk-J6FNSVHT.js → chunk-5GP4A3TD.js} +5 -5
  48. package/dist/safe-bash/command-chunks/{chunk-OFONWWEZ.js → chunk-5IHJWBDR.js} +2 -2
  49. package/dist/safe-bash/command-chunks/{chunk-A2L3U7DW.js → chunk-5OS4Q3AX.js} +4 -4
  50. package/dist/safe-bash/command-chunks/{chunk-FUYZUETI.js → chunk-5PMLTSQ5.js} +2 -2
  51. package/dist/safe-bash/command-chunks/{chunk-TXU7MMHN.js → chunk-5RDS6CNQ.js} +13 -13
  52. package/dist/safe-bash/command-chunks/{chunk-FR63MJSO.js → chunk-5UGQGB5Y.js} +7 -7
  53. package/dist/safe-bash/command-chunks/{chunk-UKAGRRLZ.js → chunk-5VY5O37W.js} +1 -1
  54. package/dist/safe-bash/command-chunks/chunk-5WS6DXYE.js +68444 -0
  55. package/dist/safe-bash/command-chunks/{chunk-2ALHVXEM.js → chunk-6EK76ERE.js} +2 -2
  56. package/dist/safe-bash/command-chunks/{chunk-4772DJKS.js → chunk-6GCK2KSL.js} +61 -26
  57. package/dist/safe-bash/command-chunks/{chunk-T5OQ53XS.js → chunk-6IID5HTY.js} +1 -1
  58. package/dist/safe-bash/command-chunks/{chunk-EZDWPTYB.js → chunk-6LOAJOWK.js} +13 -13
  59. package/dist/safe-bash/command-chunks/{chunk-WMBELKPP.js → chunk-6PE2L522.js} +6 -6
  60. package/dist/safe-bash/command-chunks/{chunk-ZAYTFXUX.js → chunk-73KY3MZ3.js} +4 -4
  61. package/dist/safe-bash/command-chunks/{chunk-BOVDUJ3A.js → chunk-77WBFVZQ.js} +7 -7
  62. package/dist/safe-bash/command-chunks/{chunk-3DWFXESW.js → chunk-7GJJDM2F.js} +2 -2
  63. package/dist/safe-bash/command-chunks/{chunk-WIW3KDBS.js → chunk-7NFICYRU.js} +2 -2
  64. package/dist/safe-bash/command-chunks/{chunk-35DU6I2M.js → chunk-7ZEGARPB.js} +5 -5
  65. package/dist/safe-bash/command-chunks/{chunk-A5SPMSKD.js → chunk-A32PUWYE.js} +2 -2
  66. package/dist/safe-bash/command-chunks/{chunk-KYIGYYEY.js → chunk-A32ZROH5.js} +3 -3
  67. package/dist/safe-bash/command-chunks/{chunk-IOXMGD2H.js → chunk-ADVQZLLE.js} +2 -2
  68. package/dist/safe-bash/command-chunks/{chunk-CGJ7GMHO.js → chunk-AEZU6NZE.js} +2 -2
  69. package/dist/safe-bash/command-chunks/{chunk-KDDXLHN7.js → chunk-ATHU53C2.js} +3 -3
  70. package/dist/safe-bash/command-chunks/{chunk-R7LF4XQV.js → chunk-B6T2526I.js} +2 -2
  71. package/dist/safe-bash/command-chunks/{chunk-PPN53PX3.js → chunk-BB7HBO56.js} +2 -2
  72. package/dist/safe-bash/command-chunks/{chunk-ZM7HMBAJ.js → chunk-BDGNKRY4.js} +7 -7
  73. package/dist/safe-bash/command-chunks/{chunk-VMZIAFVJ.js → chunk-BFRSYJUC.js} +8 -8
  74. package/dist/safe-bash/command-chunks/{chunk-X42MJT2J.js → chunk-BJL7AGA5.js} +1 -1
  75. package/dist/safe-bash/command-chunks/{chunk-VZTVR3JI.js → chunk-C2QUG7IP.js} +3 -3
  76. package/dist/safe-bash/command-chunks/{chunk-IVKAFEPO.js → chunk-C34RLMAC.js} +9 -9
  77. package/dist/safe-bash/command-chunks/{chunk-5O45KGW5.js → chunk-C5VUJOUQ.js} +1 -1
  78. package/dist/safe-bash/command-chunks/{chunk-LQDANF2B.js → chunk-CCNOZKAK.js} +8 -8
  79. package/dist/safe-bash/command-chunks/{chunk-FEBTT5NH.js → chunk-CEHICGP6.js} +2 -2
  80. package/dist/safe-bash/command-chunks/{chunk-SICTBSLW.js → chunk-CODJMTSA.js} +6 -6
  81. package/dist/safe-bash/command-chunks/{chunk-LJ3UYESS.js → chunk-CP5EO5TT.js} +1 -1
  82. package/dist/safe-bash/command-chunks/{chunk-45DKGZYO.js → chunk-CSS5KXQC.js} +329 -152
  83. package/dist/safe-bash/command-chunks/{chunk-6RLWPB44.js → chunk-CZSLXQU2.js} +1 -1
  84. package/dist/safe-bash/command-chunks/{chunk-3ZWFE4CK.js → chunk-D2ZT2UUT.js} +3 -3
  85. package/dist/safe-bash/command-chunks/{chunk-WH624PKJ.js → chunk-D5XSGHXN.js} +2 -2
  86. package/dist/safe-bash/command-chunks/{chunk-NDALIHKK.js → chunk-D7UFAIBS.js} +18 -18
  87. package/dist/safe-bash/command-chunks/{chunk-ISFGPCED.js → chunk-DCKAY6HV.js} +6 -6
  88. package/dist/safe-bash/command-chunks/{chunk-LNAZ3E4Q.js → chunk-DGCJVZW6.js} +1 -1
  89. package/dist/safe-bash/command-chunks/{chunk-LFSWLJPR.js → chunk-DJB5RB6U.js} +288 -32
  90. package/dist/safe-bash/command-chunks/{chunk-FGHSE3RZ.js → chunk-DZ4ELL34.js} +1 -1
  91. package/dist/safe-bash/command-chunks/{chunk-LQX7RAF7.js → chunk-EBKKYRQJ.js} +5 -5
  92. package/dist/safe-bash/command-chunks/{chunk-QNETPOMH.js → chunk-EDBNI7WE.js} +14 -14
  93. package/dist/safe-bash/command-chunks/{chunk-5GDF5FAS.js → chunk-EEJ3YXVO.js} +1 -1
  94. package/dist/safe-bash/command-chunks/{chunk-RTHYAGKI.js → chunk-ETN25WCR.js} +2 -2
  95. package/dist/safe-bash/command-chunks/{chunk-ET6LMDEX.js → chunk-EV3DPRWE.js} +9 -9
  96. package/dist/safe-bash/command-chunks/{chunk-3MUFXGA2.js → chunk-F2JUB7JI.js} +1 -1
  97. package/dist/safe-bash/command-chunks/{chunk-345YBIHP.js → chunk-F42WV2YO.js} +19 -19
  98. package/dist/safe-bash/command-chunks/{chunk-FTZFCMVI.js → chunk-FAVWWMFW.js} +12 -12
  99. package/dist/safe-bash/command-chunks/{chunk-XBWD6SI3.js → chunk-FDRE535F.js} +16 -16
  100. package/dist/safe-bash/command-chunks/{chunk-WMV5224N.js → chunk-FILE5PBI.js} +3 -3
  101. package/dist/safe-bash/command-chunks/{chunk-XPQUUFQD.js → chunk-FPOM47UA.js} +2 -2
  102. package/dist/safe-bash/command-chunks/{chunk-QMBMZSJF.js → chunk-FQ2WRT4Q.js} +3 -3
  103. package/dist/safe-bash/command-chunks/{chunk-H56BSMFQ.js → chunk-FVAFISPY.js} +4 -4
  104. package/dist/safe-bash/command-chunks/{chunk-2QZUAZTH.js → chunk-GIQUIF6E.js} +1 -1
  105. package/dist/safe-bash/command-chunks/{chunk-2TWXRJPB.js → chunk-GNORF6RY.js} +13 -13
  106. package/dist/safe-bash/command-chunks/{chunk-K7VDCBXW.js → chunk-GPLN6JV2.js} +24 -24
  107. package/dist/safe-bash/command-chunks/{chunk-DZOKH5BL.js → chunk-GQ7BD75U.js} +3 -3
  108. package/dist/safe-bash/command-chunks/{chunk-N4HWOLGZ.js → chunk-GY2C555A.js} +2 -2
  109. package/dist/safe-bash/command-chunks/{chunk-N32AP43V.js → chunk-GZNX5SS4.js} +7 -7
  110. package/dist/safe-bash/command-chunks/{chunk-YPG55QTP.js → chunk-HCJWEB6P.js} +1 -1
  111. package/dist/safe-bash/command-chunks/{chunk-4ABR3KGK.js → chunk-HNY7LZ5P.js} +3 -3
  112. package/dist/safe-bash/command-chunks/{chunk-P462JTNT.js → chunk-HOBXZX23.js} +5 -5
  113. package/dist/safe-bash/command-chunks/{chunk-5KZMR6AJ.js → chunk-HW3IOXT6.js} +6 -6
  114. package/dist/safe-bash/command-chunks/{chunk-3VGQTLO6.js → chunk-HX7QQNWS.js} +4 -4
  115. package/dist/safe-bash/command-chunks/{chunk-TXWDR2P4.js → chunk-IBT3OWXB.js} +1 -1
  116. package/dist/safe-bash/command-chunks/{chunk-OHEZQ4QA.js → chunk-IFBLXBBM.js} +9 -9
  117. package/dist/safe-bash/command-chunks/{chunk-HOJ7WDTS.js → chunk-IJZUUXLL.js} +3 -3
  118. package/dist/safe-bash/command-chunks/{chunk-BZRWZ6GO.js → chunk-IKU7ZBF3.js} +2 -2
  119. package/dist/safe-bash/command-chunks/{chunk-CKIXC7AO.js → chunk-IPKYPADE.js} +3 -3
  120. package/dist/safe-bash/command-chunks/{chunk-IWVANZWH.js → chunk-JLPBGKVC.js} +3 -3
  121. package/dist/safe-bash/command-chunks/{chunk-6M3JTPKE.js → chunk-JNRX5EFF.js} +5 -5
  122. package/dist/safe-bash/command-chunks/{chunk-5YL453ZF.js → chunk-JSX5CFZY.js} +36 -36
  123. package/dist/safe-bash/command-chunks/{chunk-V6JPIZUW.js → chunk-JT656DKZ.js} +7 -7
  124. package/dist/safe-bash/command-chunks/{chunk-DM5WURQL.js → chunk-JY2T3KV2.js} +2 -2
  125. package/dist/safe-bash/command-chunks/{chunk-IZ3SD5S2.js → chunk-K2NV6H7E.js} +4 -4
  126. package/dist/safe-bash/command-chunks/{chunk-62RG3GHF.js → chunk-K6E56LND.js} +6 -6
  127. package/dist/safe-bash/command-chunks/{chunk-FLSXHLJG.js → chunk-KADQKXZE.js} +9 -9
  128. package/dist/safe-bash/command-chunks/{chunk-URQSUMMJ.js → chunk-KFFV7HBL.js} +4 -4
  129. package/dist/safe-bash/command-chunks/{chunk-ONQP4FNV.js → chunk-KZICRCQ7.js} +1 -1
  130. package/dist/safe-bash/command-chunks/{chunk-N35IJXBK.js → chunk-L6X4EEN6.js} +9 -9
  131. package/dist/safe-bash/command-chunks/{chunk-SHLT5R64.js → chunk-LF7YJ5VQ.js} +9 -9
  132. package/dist/safe-bash/command-chunks/{chunk-GMBUOYTN.js → chunk-LNHTLWIL.js} +4 -4
  133. package/dist/safe-bash/command-chunks/{chunk-A6OTPNNI.js → chunk-LPKMNCC5.js} +3 -3
  134. package/dist/safe-bash/command-chunks/{chunk-MUTARE5I.js → chunk-LSKA4IR4.js} +6 -6
  135. package/dist/safe-bash/command-chunks/{chunk-N3ZH4YYH.js → chunk-LTWX23FS.js} +3 -3
  136. package/dist/safe-bash/command-chunks/{chunk-JA36YOZI.js → chunk-LUJUYUOG.js} +1 -1
  137. package/dist/safe-bash/command-chunks/{chunk-4X2MPZXW.js → chunk-M42GCI5F.js} +2 -2
  138. package/dist/safe-bash/command-chunks/{chunk-AYQPJQJR.js → chunk-M5BFAMXD.js} +6 -6
  139. package/dist/safe-bash/command-chunks/{chunk-OFDJJRAD.js → chunk-M7DZ7COK.js} +9 -9
  140. package/dist/safe-bash/command-chunks/{chunk-RINR7XPR.js → chunk-MMSKDYK6.js} +234 -8
  141. package/dist/safe-bash/command-chunks/{chunk-NKK76B4V.js → chunk-MN7EEK6Y.js} +8 -8
  142. package/dist/safe-bash/command-chunks/{chunk-OBIXFO25.js → chunk-MOJQT6RW.js} +8 -8
  143. package/dist/safe-bash/command-chunks/{chunk-HOKPYTHQ.js → chunk-MPRUGL4W.js} +2 -2
  144. package/dist/safe-bash/command-chunks/{chunk-CORUUCS2.js → chunk-MRBX4KEP.js} +3 -3
  145. package/dist/safe-bash/command-chunks/chunk-MTWFSBNG.js +137 -0
  146. package/dist/safe-bash/command-chunks/{chunk-RRAQII52.js → chunk-MURNTGDL.js} +5 -5
  147. package/dist/safe-bash/command-chunks/{chunk-KDBU5Q2N.js → chunk-MWVELMXZ.js} +6 -6
  148. package/dist/safe-bash/command-chunks/{chunk-PRO7JOIH.js → chunk-N3MAYM6Y.js} +8 -8
  149. package/dist/safe-bash/command-chunks/{chunk-E22EAYJN.js → chunk-NFWLZDMY.js} +177 -34
  150. package/dist/safe-bash/command-chunks/{chunk-GAROGIVU.js → chunk-NP2QXF2X.js} +1 -1
  151. package/dist/safe-bash/command-chunks/{chunk-SNA2LVBX.js → chunk-NPVOYY2A.js} +1 -1
  152. package/dist/safe-bash/command-chunks/{chunk-ENMJHB2C.js → chunk-NTXRKJPZ.js} +3 -3
  153. package/dist/safe-bash/command-chunks/{chunk-3K5CVXUV.js → chunk-NZF56C25.js} +10 -10
  154. package/dist/safe-bash/command-chunks/{chunk-5MNQTHED.js → chunk-OA4MEWTN.js} +4 -4
  155. package/dist/safe-bash/command-chunks/{chunk-SWIF6BBY.js → chunk-OL75SBZL.js} +5 -5
  156. package/dist/safe-bash/command-chunks/{chunk-LT2YCGC5.js → chunk-OVQSILY3.js} +5 -5
  157. package/dist/safe-bash/command-chunks/{chunk-WDVPHDBH.js → chunk-P57V45F2.js} +2 -2
  158. package/dist/safe-bash/command-chunks/{chunk-OWCBX5M2.js → chunk-PAY4ULWY.js} +1 -1
  159. package/dist/safe-bash/command-chunks/{chunk-CHZE6FNT.js → chunk-PFUZPAXQ.js} +2 -2
  160. package/dist/safe-bash/command-chunks/{chunk-NLCUQD7Y.js → chunk-PX6E5MHY.js} +9 -9
  161. package/dist/safe-bash/command-chunks/{chunk-POGVOCOB.js → chunk-QCN7MRRU.js} +8 -8
  162. package/dist/safe-bash/command-chunks/{chunk-ZZERSKAR.js → chunk-QLE6JUR7.js} +5 -5
  163. package/dist/safe-bash/command-chunks/{chunk-LZY46GYY.js → chunk-QMWBKR4C.js} +5 -5
  164. package/dist/safe-bash/command-chunks/{chunk-BIJW6QWB.js → chunk-QNLX3CZH.js} +13 -13
  165. package/dist/safe-bash/command-chunks/{chunk-MDFNUNK5.js → chunk-QWX5IERU.js} +6 -6
  166. package/dist/safe-bash/command-chunks/{chunk-WOL3LBXE.js → chunk-R2N3E267.js} +1 -1
  167. package/dist/safe-bash/command-chunks/{chunk-ZNCPIZCN.js → chunk-R6X63VAO.js} +1 -1
  168. package/dist/safe-bash/command-chunks/{chunk-FGARVKAX.js → chunk-RNIFPFGC.js} +13 -11
  169. package/dist/safe-bash/command-chunks/{chunk-OIHQXURE.js → chunk-ROE6KD4C.js} +1 -1
  170. package/dist/safe-bash/command-chunks/{chunk-BKK4MS3V.js → chunk-RR6XG2I6.js} +1 -1
  171. package/dist/safe-bash/command-chunks/chunk-RYOHOS2I.js +398 -0
  172. package/dist/safe-bash/command-chunks/{chunk-4QEJPP3K.js → chunk-S5X7PBO4.js} +1 -1
  173. package/dist/safe-bash/command-chunks/{chunk-IHLZ6HNQ.js → chunk-TSKJNCKD.js} +3 -2
  174. package/dist/safe-bash/command-chunks/{chunk-U42WHQRH.js → chunk-TTTNFKT6.js} +5 -5
  175. package/dist/safe-bash/command-chunks/{chunk-EWC56JNI.js → chunk-TTVJJZOM.js} +5 -5
  176. package/dist/safe-bash/command-chunks/{chunk-TY7JXEWI.js → chunk-UBX5I5HY.js} +11 -11
  177. package/dist/safe-bash/command-chunks/{chunk-QOKFSYD5.js → chunk-UE34SQET.js} +9 -9
  178. package/dist/safe-bash/command-chunks/{chunk-DXOXUKQB.js → chunk-UH4CQIU3.js} +4 -4
  179. package/dist/safe-bash/command-chunks/{chunk-VNNNVT4C.js → chunk-UZZ2WJQV.js} +4 -4
  180. package/dist/safe-bash/command-chunks/{chunk-QNX5LZBK.js → chunk-V6NZVM7C.js} +7 -7
  181. package/dist/safe-bash/command-chunks/{chunk-KLAC2MIZ.js → chunk-VEZULAIA.js} +6 -6
  182. package/dist/safe-bash/command-chunks/{chunk-OCV5ZU35.js → chunk-VSTAHYCV.js} +3 -3
  183. package/dist/safe-bash/command-chunks/{chunk-UFLMOU3B.js → chunk-VUJCVXD4.js} +1 -1
  184. package/dist/safe-bash/command-chunks/{chunk-5V7WIQ2D.js → chunk-VW67MA53.js} +3 -3
  185. package/dist/safe-bash/command-chunks/{chunk-B2C3UPJS.js → chunk-W42SUPD6.js} +13 -1
  186. package/dist/safe-bash/command-chunks/{chunk-2IMIKROX.js → chunk-WI5NEHPD.js} +2 -2
  187. package/dist/safe-bash/command-chunks/{chunk-SBXS4S6Y.js → chunk-WJSU2UVG.js} +2 -2
  188. package/dist/safe-bash/command-chunks/{chunk-VVWHFNHD.js → chunk-WPEIOUJN.js} +415 -25
  189. package/dist/safe-bash/command-chunks/{chunk-YKODRSGT.js → chunk-WRCYZJNO.js} +1 -1
  190. package/dist/safe-bash/command-chunks/{chunk-TID5TSQW.js → chunk-WRJV7OVO.js} +1 -1
  191. package/dist/safe-bash/command-chunks/{chunk-T4SEQU66.js → chunk-X4TWJNW7.js} +3 -3
  192. package/dist/safe-bash/command-chunks/{chunk-CKA7ZROU.js → chunk-X6KFCAWZ.js} +7 -7
  193. package/dist/safe-bash/command-chunks/{chunk-ROQ3VNVX.js → chunk-X6KO7D6R.js} +8 -8
  194. package/dist/safe-bash/command-chunks/{chunk-S5ER73EA.js → chunk-XB5ZZHFD.js} +3 -3
  195. package/dist/safe-bash/command-chunks/{chunk-FHQOFEQK.js → chunk-XLFOLLUZ.js} +8 -8
  196. package/dist/safe-bash/command-chunks/{chunk-UJYXSLM6.js → chunk-XLPEPCQC.js} +2 -2
  197. package/dist/safe-bash/command-chunks/{chunk-UT5X6QRU.js → chunk-XQFEP43Y.js} +5 -5
  198. package/dist/safe-bash/command-chunks/chunk-Y7XL6CWB.js +771 -0
  199. package/dist/safe-bash/command-chunks/{chunk-RVWIEXR7.js → chunk-YKEMSPJZ.js} +4 -4
  200. package/dist/safe-bash/command-chunks/{chunk-ERWIJYCS.js → chunk-YN3OEJAZ.js} +7 -7
  201. package/dist/safe-bash/command-chunks/{chunk-6YF2QADH.js → chunk-YOYK2I4N.js} +2 -2
  202. package/dist/safe-bash/command-chunks/{chunk-26JE5JEB.js → chunk-YS5ZKMRJ.js} +4 -4
  203. package/dist/safe-bash/command-chunks/{chunk-LMLBQSAM.js → chunk-YW7WU7W2.js} +5 -5
  204. package/dist/safe-bash/command-chunks/{chunk-YXR4JE4U.js → chunk-Z33YS3DW.js} +3 -3
  205. package/dist/safe-bash/command-chunks/{chunk-T2FRXSQT.js → chunk-ZBXUAM34.js} +2 -2
  206. package/dist/safe-bash/command-chunks/{chunk-VVV45NLY.js → chunk-ZJUU5IAS.js} +1 -1
  207. package/dist/safe-bash/command-chunks/{chunk-7OCTMVYJ.js → chunk-ZNABMTV3.js} +1 -1
  208. package/dist/safe-bash/command-chunks/{chunk-6JGICYHP.js → chunk-ZSF2T5D4.js} +1 -1
  209. package/dist/safe-bash/command-chunks/{command-engine-GHE6QUHU.js → command-engine-PFYHL7GS.js} +14 -4
  210. package/dist/safe-bash/command-chunks/{engine-RG6HQCCB-FXYZS264.js → engine-5AVSKFBI-D7Q5VPUN.js} +1 -1
  211. package/dist/safe-bash/command-chunks/model-store-IIWQHSEZ.js +54 -0
  212. package/dist/safe-bash/command-chunks/odf-SL5TG4B3-XI3FNOTN.js +3041 -0
  213. package/dist/safe-bash/command-chunks/{xlsx-RE54MFCS-IQ6OXXKK.js → xlsx-RE54MFCS-4UZ5W3U7.js} +1 -1
  214. package/dist/safe-bash-command-apply-patch/apply.js +1 -1
  215. package/dist/safe-bash-command-apply-patch/index.js +1 -1
  216. package/dist/safe-bash-command-awk/awk-inspection.js +2 -2
  217. package/dist/safe-bash-command-awk/awk.js +5 -5
  218. package/dist/safe-bash-command-awk/index.js +5 -5
  219. package/dist/safe-bash-command-cp/index.js +4 -4
  220. package/dist/safe-bash-command-csvkit/index.js +1 -1
  221. package/dist/safe-bash-command-diff/diff.js +2 -2
  222. package/dist/safe-bash-command-diff/index.js +2 -2
  223. package/dist/safe-bash-command-ffmpeg/index.js +1 -1
  224. package/dist/safe-bash-command-ffprobe/index.js +2 -2
  225. package/dist/safe-bash-command-ffprobe/media.js +2 -2
  226. package/dist/safe-bash-command-node/commands/node/browser.js +6 -6
  227. package/dist/safe-bash-command-node/commands/node/default-runtime.js +6 -6
  228. package/dist/safe-bash-command-node/commands/node/filesystem.js +2 -2
  229. package/dist/safe-bash-command-node/commands/node/safejs.js +6 -6
  230. package/dist/safe-bash-command-node/commands/node/timers.js +2 -2
  231. package/dist/safe-bash-command-patch/index.js +3 -3
  232. package/dist/safe-bash-command-patch/patch-formats.js +2 -2
  233. package/dist/safe-bash-command-patch/patch.js +3 -3
  234. package/dist/safe-bash-command-patch/unified.js +1 -1
  235. package/dist/safe-bash-command-pdftoppm/index.js +89 -124
  236. package/dist/safe-bash-command-pdftotext/index.d.ts +1 -1
  237. package/dist/safe-bash-command-pdftotext/index.js +538 -379
  238. package/dist/safe-bash-command-playwright-cli/index.js +19 -19
  239. package/dist/safe-bash-command-playwright-cli/playwright/abilities.js +6 -6
  240. package/dist/safe-bash-command-playwright-cli/playwright/adapter.js +3 -3
  241. package/dist/safe-bash-command-playwright-cli/playwright/controller.js +13 -13
  242. package/dist/safe-bash-command-playwright-cli/playwright/index.js +19 -19
  243. package/dist/safe-bash-command-playwright-cli/playwright/native-storage-replacement.js +2 -2
  244. package/dist/safe-bash-command-playwright-cli/playwright/open-options.js +2 -2
  245. package/dist/safe-bash-command-playwright-cli/playwright/profile.js +5 -5
  246. package/dist/safe-bash-command-playwright-cli/playwright/standard-capabilities.js +4 -4
  247. package/dist/safe-bash-command-playwright-cli/playwright/storage-capabilities.js +3 -3
  248. package/dist/safe-bash-command-pptx/engine.js +1 -1
  249. package/dist/safe-bash-command-python/executor.js +10 -10
  250. package/dist/safe-bash-command-python/index.js +10 -10
  251. package/dist/safe-bash-command-python/jspi.js +2 -2
  252. package/dist/safe-bash-command-safejs/index.js +2 -2
  253. package/dist/safe-bash-command-safejs/runtime.js +2 -2
  254. package/dist/safe-bash-command-ssconvert/index.js +16 -16
  255. package/dist/safe-bash-command-unzip/index.js +4 -4
  256. package/dist/safe-bash-docx-engine/ancillary-resources.js +10 -10
  257. package/dist/safe-bash-docx-engine/batch-operations.js +67 -67
  258. package/dist/safe-bash-docx-engine/batch-result-schema.js +79 -79
  259. package/dist/safe-bash-docx-engine/batch.js +78 -78
  260. package/dist/safe-bash-docx-engine/bookmarks.js +18 -18
  261. package/dist/safe-bash-docx-engine/charts.js +11 -11
  262. package/dist/safe-bash-docx-engine/command-option-rules.js +6 -6
  263. package/dist/safe-bash-docx-engine/command-properties.js +3 -3
  264. package/dist/safe-bash-docx-engine/comments.js +26 -26
  265. package/dist/safe-bash-docx-engine/control-bindings.js +21 -21
  266. package/dist/safe-bash-docx-engine/control-repeat.js +21 -21
  267. package/dist/safe-bash-docx-engine/controls.js +19 -19
  268. package/dist/safe-bash-docx-engine/create.js +11 -11
  269. package/dist/safe-bash-docx-engine/diagrams.js +11 -11
  270. package/dist/safe-bash-docx-engine/diff.js +13 -13
  271. package/dist/safe-bash-docx-engine/document-properties.js +16 -16
  272. package/dist/safe-bash-docx-engine/equations.js +17 -17
  273. package/dist/safe-bash-docx-engine/extract.js +14 -14
  274. package/dist/safe-bash-docx-engine/fields.js +23 -23
  275. package/dist/safe-bash-docx-engine/font-inventory.js +18 -18
  276. package/dist/safe-bash-docx-engine/font-resources.js +6 -6
  277. package/dist/safe-bash-docx-engine/image-batch-operations.js +14 -14
  278. package/dist/safe-bash-docx-engine/image-insertion.js +21 -21
  279. package/dist/safe-bash-docx-engine/image-layout.js +19 -19
  280. package/dist/safe-bash-docx-engine/image-replacement.js +22 -22
  281. package/dist/safe-bash-docx-engine/images.js +19 -19
  282. package/dist/safe-bash-docx-engine/index.js +111 -111
  283. package/dist/safe-bash-docx-engine/inspection.js +20 -20
  284. package/dist/safe-bash-docx-engine/invocation.js +9 -9
  285. package/dist/safe-bash-docx-engine/io.js +9 -9
  286. package/dist/safe-bash-docx-engine/links.js +21 -21
  287. package/dist/safe-bash-docx-engine/lists.js +20 -20
  288. package/dist/safe-bash-docx-engine/locations.js +15 -15
  289. package/dist/safe-bash-docx-engine/notes.js +22 -22
  290. package/dist/safe-bash-docx-engine/objects.js +19 -19
  291. package/dist/safe-bash-docx-engine/operation-json-schema.js +3 -3
  292. package/dist/safe-bash-docx-engine/operation-schema.js +2 -2
  293. package/dist/safe-bash-docx-engine/pack.js +14 -14
  294. package/dist/safe-bash-docx-engine/package-view-batch-operations.js +22 -22
  295. package/dist/safe-bash-docx-engine/pandoc-adapter.js +29 -29
  296. package/dist/safe-bash-docx-engine/paragraph-edit.js +25 -25
  297. package/dist/safe-bash-docx-engine/part-provider.js +3 -3
  298. package/dist/safe-bash-docx-engine/property-values.js +3 -3
  299. package/dist/safe-bash-docx-engine/publication.js +9 -9
  300. package/dist/safe-bash-docx-engine/removal.js +21 -21
  301. package/dist/safe-bash-docx-engine/revision-decisions.js +22 -22
  302. package/dist/safe-bash-docx-engine/revision-edit.js +20 -20
  303. package/dist/safe-bash-docx-engine/revisions.js +18 -18
  304. package/dist/safe-bash-docx-engine/run-format.js +20 -20
  305. package/dist/safe-bash-docx-engine/sanitize.js +34 -34
  306. package/dist/safe-bash-docx-engine/sections.js +19 -19
  307. package/dist/safe-bash-docx-engine/settings.js +11 -11
  308. package/dist/safe-bash-docx-engine/shape-edit.js +21 -21
  309. package/dist/safe-bash-docx-engine/signatures.js +15 -15
  310. package/dist/safe-bash-docx-engine/stories.js +22 -22
  311. package/dist/safe-bash-docx-engine/structure-model-batch-operations.js +38 -38
  312. package/dist/safe-bash-docx-engine/style-model-batch-operations.js +27 -27
  313. package/dist/safe-bash-docx-engine/style-model-result-schema.js +44 -44
  314. package/dist/safe-bash-docx-engine/styles.js +18 -18
  315. package/dist/safe-bash-docx-engine/table-edit.js +27 -27
  316. package/dist/safe-bash-docx-engine/table-read.js +16 -16
  317. package/dist/safe-bash-docx-engine/template.js +22 -22
  318. package/dist/safe-bash-docx-engine/text-replace.js +20 -20
  319. package/dist/safe-bash-docx-engine/text-resource-read.js +16 -16
  320. package/dist/safe-bash-docx-engine/text.js +16 -16
  321. package/dist/safe-bash-docx-engine/validation.js +7 -7
  322. package/dist/safe-bash-docx-engine/xml-parts.js +22 -22
  323. package/dist/safe-bash-network-engine/index.js +4 -4
  324. package/dist/safe-bash-network-engine/transfer.js +12 -12
  325. package/dist/safe-bash-presentation-engine/accessibility.js +15 -15
  326. package/dist/safe-bash-presentation-engine/animation-editing.js +5 -5
  327. package/dist/safe-bash-presentation-engine/animations.js +5 -5
  328. package/dist/safe-bash-presentation-engine/backgrounds.js +6 -6
  329. package/dist/safe-bash-presentation-engine/chart-editing.js +18 -18
  330. package/dist/safe-bash-presentation-engine/chart-object-operations.js +12 -12
  331. package/dist/safe-bash-presentation-engine/charts.js +15 -15
  332. package/dist/safe-bash-presentation-engine/command-placeholder.js +39 -38
  333. package/dist/safe-bash-presentation-engine/comments.js +6 -6
  334. package/dist/safe-bash-presentation-engine/connector-operations.js +16 -16
  335. package/dist/safe-bash-presentation-engine/connectors.js +13 -13
  336. package/dist/safe-bash-presentation-engine/diff.js +21 -20
  337. package/dist/safe-bash-presentation-engine/drawing-format.js +7 -7
  338. package/dist/safe-bash-presentation-engine/drawing-operations.js +15 -15
  339. package/dist/safe-bash-presentation-engine/drawing-schema.js +8 -8
  340. package/dist/safe-bash-presentation-engine/equations.js +6 -6
  341. package/dist/safe-bash-presentation-engine/fields.js +6 -6
  342. package/dist/safe-bash-presentation-engine/image-extraction.js +7 -7
  343. package/dist/safe-bash-presentation-engine/image-formatting.js +16 -16
  344. package/dist/safe-bash-presentation-engine/image-insertion.js +6 -6
  345. package/dist/safe-bash-presentation-engine/image-replacement.js +7 -7
  346. package/dist/safe-bash-presentation-engine/images.js +6 -6
  347. package/dist/safe-bash-presentation-engine/index.js +96 -95
  348. package/dist/safe-bash-presentation-engine/layouts.js +5 -5
  349. package/dist/safe-bash-presentation-engine/links.js +5 -5
  350. package/dist/safe-bash-presentation-engine/masters.js +4 -4
  351. package/dist/safe-bash-presentation-engine/media-editing.js +10 -10
  352. package/dist/safe-bash-presentation-engine/media-extraction.js +6 -6
  353. package/dist/safe-bash-presentation-engine/media.js +5 -5
  354. package/dist/safe-bash-presentation-engine/memberships.d.ts +1 -0
  355. package/dist/safe-bash-presentation-engine/memberships.js +12 -6
  356. package/dist/safe-bash-presentation-engine/notes.js +6 -6
  357. package/dist/safe-bash-presentation-engine/ole-insertion.js +6 -6
  358. package/dist/safe-bash-presentation-engine/opaque-objects.js +2 -2
  359. package/dist/safe-bash-presentation-engine/package-tools.js +6 -6
  360. package/dist/safe-bash-presentation-engine/presentation-model.js +38 -37
  361. package/dist/safe-bash-presentation-engine/presentation-settings.d.ts +1 -0
  362. package/dist/safe-bash-presentation-engine/presentation-settings.js +12 -5
  363. package/dist/safe-bash-presentation-engine/properties.js +7 -6
  364. package/dist/safe-bash-presentation-engine/retained-inspection.js +3 -3
  365. package/dist/safe-bash-presentation-engine/retained-memberships.d.ts +25 -0
  366. package/dist/safe-bash-presentation-engine/retained-presentation-settings.d.ts +25 -0
  367. package/dist/safe-bash-presentation-engine/retained-tags.d.ts +20 -0
  368. package/dist/safe-bash-presentation-engine/retained-text.d.ts +24 -4
  369. package/dist/safe-bash-presentation-engine/retained-text.js +17 -15
  370. package/dist/safe-bash-presentation-engine/sanitize.js +8 -7
  371. package/dist/safe-bash-presentation-engine/selectors.js +2 -2
  372. package/dist/safe-bash-presentation-engine/shape-groups.js +15 -15
  373. package/dist/safe-bash-presentation-engine/shape-operations.js +14 -14
  374. package/dist/safe-bash-presentation-engine/shape-path-operations.js +16 -16
  375. package/dist/safe-bash-presentation-engine/shape-paths.js +5 -5
  376. package/dist/safe-bash-presentation-engine/shape-selection.js +15 -15
  377. package/dist/safe-bash-presentation-engine/shape-transforms.js +5 -5
  378. package/dist/safe-bash-presentation-engine/shapes.js +11 -11
  379. package/dist/safe-bash-presentation-engine/slide-copy.js +7 -5
  380. package/dist/safe-bash-presentation-engine/slide-import.js +6 -6
  381. package/dist/safe-bash-presentation-engine/slide-merge-split.js +8 -8
  382. package/dist/safe-bash-presentation-engine/slide-model.js +24 -24
  383. package/dist/safe-bash-presentation-engine/slide-removal.js +7 -7
  384. package/dist/safe-bash-presentation-engine/slide-transfer-budget.js +2 -2
  385. package/dist/safe-bash-presentation-engine/slides.js +5 -5
  386. package/dist/safe-bash-presentation-engine/table-operations.js +17 -17
  387. package/dist/safe-bash-presentation-engine/table-spans.js +16 -16
  388. package/dist/safe-bash-presentation-engine/tables.js +15 -15
  389. package/dist/safe-bash-presentation-engine/tags.d.ts +2 -0
  390. package/dist/safe-bash-presentation-engine/tags.js +15 -7
  391. package/dist/safe-bash-presentation-engine/template-bindings.js +16 -16
  392. package/dist/safe-bash-presentation-engine/template-repeat.js +24 -22
  393. package/dist/safe-bash-presentation-engine/text-fitting.js +11 -11
  394. package/dist/safe-bash-presentation-engine/text-frames.js +11 -11
  395. package/dist/safe-bash-presentation-engine/text-paragraphs.js +11 -11
  396. package/dist/safe-bash-presentation-engine/text-reading.js +3 -3
  397. package/dist/safe-bash-presentation-engine/text-replacement.js +6 -6
  398. package/dist/safe-bash-presentation-engine/text-runs.js +8 -8
  399. package/dist/safe-bash-presentation-engine/themes.js +5 -5
  400. package/dist/safe-bash-presentation-engine/transitions.js +5 -5
  401. package/dist/safe-bash-presentation-engine/validation.js +2 -2
  402. package/dist/safe-bash-presentation-engine/xml-parts.js +5 -5
  403. package/dist/safe-bash-xml-engine/document.js +2 -2
  404. package/dist/safe-bash-xml-engine/index.js +2 -2
  405. package/dist/safe-bash-xml-engine/recovery.d.ts +6 -2
  406. package/dist/safe-bash-xml-engine/stored-document.d.ts +3 -0
  407. package/dist/safe-bash-xml-engine/stored-document.js +1 -1
  408. package/dist/safe-bash-xml-engine/stored-evaluate.js +2 -2
  409. package/dist/safe-bash-xml-engine/stored-map.d.ts +21 -0
  410. package/dist/safe-bash-zip-engine/index.js +3 -3
  411. package/dist/safe-bash-zip-engine/zip/repair.js +3 -3
  412. package/dist/safe-bash-zip-engine/zip/safety.js +1 -1
  413. package/dist/safe-bash-zip-engine/zip/sfx.js +3 -3
  414. package/dist/safe-bash-zip-engine/zip/volumes.js +1 -1
  415. package/dist/safe-bash-zip-engine/zip-format.js +3 -3
  416. package/dist/spreadsheet-engine/formatting/cell-text.js +1 -1
  417. package/dist/spreadsheet-engine/{rendering/print → formatting}/general-number.js +3 -3
  418. package/dist/spreadsheet-engine/formulas/functions/python-printf.js +9 -7
  419. package/dist/spreadsheet-engine/solver/program.js +3 -2
  420. package/dist/spreadsheet-engine/solver/run.js +8 -2
  421. package/dist/spreadsheet-engine/solver/sensitivity.d.ts +4 -2
  422. package/dist/spreadsheet-engine/solver/sensitivity.js +80 -42
  423. package/dist/spreadsheet-format-xls/biff-properties-merge.d.ts +2 -1
  424. package/dist/spreadsheet-format-xls/biff-properties-merge.js +36 -30
  425. package/dist/spreadsheet-format-xls/biff-properties-write.js +16 -7
  426. package/dist/spreadsheet-format-xls/biff-properties.d.ts +4 -2
  427. package/dist/spreadsheet-format-xls/biff-properties.js +141 -122
  428. package/dist/spreadsheet-format-xls/biff-property-names.d.ts +27 -0
  429. package/dist/spreadsheet-format-xls/biff-property-names.js +210 -0
  430. package/dist/spreadsheet-format-xls/biff-property-observations.d.ts +33 -0
  431. package/dist/spreadsheet-format-xls/biff-property-observations.js +160 -0
  432. package/dist/xlsx-ast/comment-geometry.js +1 -1
  433. package/package.json +7 -4
  434. package/third-party/pdf-ast/THIRD_PARTY_NOTICES.md +15 -0
  435. package/third-party/pdf-ast/licenses/PYTHON-PSF.txt +254 -0
  436. package/third-party/pdf-ast/licenses/V8-BSD.txt +61 -0
  437. package/dist/safe-bash/command-chunks/biff-UBP2BZLK-JPODPKS3.js +0 -5448
  438. package/dist/safe-bash/command-chunks/chunk-6EZWG56T.js +0 -455
  439. package/dist/safe-bash/command-chunks/chunk-O2HNOQQG.js +0 -161
  440. package/dist/safe-bash/command-chunks/chunk-ZUP5TBRG.js +0 -99
  441. package/dist/safe-bash/command-chunks/model-store-I7YAWL5V.js +0 -54
  442. package/dist/safe-bash/command-chunks/odf-3EA3EVSD-7B5GVNTC.js +0 -3097
  443. package/dist/safe-bash/command-chunks/{chunk-SRXARACJ.js → chunk-3TP4SSPS.js} +3 -3
  444. package/dist/safe-bash/command-chunks/{chunk-NCNHJRIY.js → chunk-3W3HLPCX.js} +3 -3
  445. package/dist/safe-bash/command-chunks/{chunk-P4OWVKMD.js → chunk-BQXKO3X7.js} +3 -3
  446. package/dist/safe-bash/command-chunks/{chunk-OCOJMKDP.js → chunk-CVMHDJ7J.js} +3 -3
  447. package/dist/safe-bash/command-chunks/{chunk-AV6N7DDA.js → chunk-DDYPQAXN.js} +3 -3
  448. package/dist/safe-bash/command-chunks/{chunk-FEKECRJP.js → chunk-EBTKM7KX.js} +3 -3
  449. package/dist/safe-bash/command-chunks/{chunk-WVD5WZXD.js → chunk-FPNUGKCX.js} +3 -3
  450. package/dist/safe-bash/command-chunks/{chunk-6W4RMBFH.js → chunk-N6VNHC3B.js} +3 -3
  451. package/dist/safe-bash/command-chunks/{chunk-M3OXQXCU.js → chunk-NBRXQUK7.js} +3 -3
  452. package/dist/safe-bash/command-chunks/{chunk-LECGQSQW.js → chunk-SF56V6QK.js} +3 -3
  453. package/dist/safe-bash/command-chunks/{chunk-2ANW3FXH.js → chunk-U33GIOUY.js} +3 -3
  454. package/dist/safe-bash/command-chunks/{chunk-5QXRIZSS.js → chunk-V3NKL42J.js} +3 -3
  455. package/dist/safe-bash/command-chunks/{chunk-OEKLEUUW.js → chunk-YZE7BKHC.js} +3 -3
  456. package/dist/safe-bash/command-chunks/{chunk-WXW665TV.js → chunk-ZSHXZ3XG.js} +6 -6
  457. package/dist/safe-bash/command-chunks/{dif-BXKPQOCO-4KB3RC6G.js → dif-BXKPQOCO-FVJYYGYB.js} +4 -4
  458. package/dist/safe-bash/command-chunks/{pln-DFS7VLVS-OVOBS4QX.js → pln-DFS7VLVS-JATX6FS7.js} +3 -3
  459. package/dist/safe-bash/command-chunks/{psion-YBI6JEQI-GY4S6ZLC.js → psion-YBI6JEQI-6OMC2PGC.js} +3 -3
  460. package/dist/safe-bash/command-chunks/{sylk-25D7TL2Y-RU6ANKGT.js → sylk-25D7TL2Y-NJKBZZTF.js} +4 -4
  461. /package/dist/spreadsheet-engine/{rendering/print → formatting}/general-number.d.ts +0 -0
@@ -0,0 +1,3041 @@
1
+ import {
2
+ I as I2,
3
+ X
4
+ } from "./chunk-2J4OQT3F.js";
5
+ import {
6
+ I,
7
+ T,
8
+ g,
9
+ l,
10
+ u
11
+ } from "./chunk-LNWAYODV.js";
12
+ import "./chunk-WHWIZ2B7.js";
13
+ import {
14
+ ZipStorageFailure,
15
+ createStoredZipEntries
16
+ } from "./chunk-37XCUS43.js";
17
+ import {
18
+ ZipDirectoryIndex,
19
+ ZipWriteChain,
20
+ createZipCodec
21
+ } from "./chunk-IOEUZ4EA.js";
22
+ import {
23
+ CodecError,
24
+ createCompressionCodec
25
+ } from "./chunk-E6SK3OU2.js";
26
+ import "./chunk-65DS4IOB.js";
27
+
28
+ // packages/safe-bash-command-ssconvert/dist/chunks/odf-SL5TG4B3.js
29
+ import { SsconvertError as En } from "../../spreadsheet-engine/contracts.js";
30
+ import { createAxisStorage as ai } from "../../spreadsheet-engine/workbook/axis-storage.js";
31
+ import { SsconvertError as gn } from "../../spreadsheet-engine/contracts.js";
32
+ import { IntegerTable as ni } from "@poe-platform/safe-fs/storage";
33
+ import { SsconvertError as yn } from "../../spreadsheet-engine/contracts.js";
34
+ import { createAxisStorage as Fi } from "../../spreadsheet-engine/workbook/axis-storage.js";
35
+ import { snapshotRecords as Ui } from "../../spreadsheet-ast/model.js";
36
+ import { encodeTextStream as oi } from "../../spreadsheet-engine/encoding/encode-stream.js";
37
+ import { ownWorkbookSource as Yi } from "../../spreadsheet-engine/workbook/source.js";
38
+ import { IntegerTable as ka } from "@poe-platform/safe-fs/storage";
39
+ import { encodeTextStream as xi } from "../../spreadsheet-engine/encoding/encode-stream.js";
40
+ import { ownedRangeSource as Hi } from "../../spreadsheet-engine/range-input.js";
41
+ import { SsconvertError as Wt } from "../../spreadsheet-engine/contracts.js";
42
+ import { parseXmlStream as Xi, XmlLimitError as vi } from "@poe-platform/safe-fs/xml";
43
+ import { SsconvertError as he } from "../../spreadsheet-engine/contracts.js";
44
+ import { MAX_SHEET_SIZE as me, DEFAULT_SHEET_SIZE as Pn, formatA1 as Fn } from "../../spreadsheet-ast/index.js";
45
+ import { foldSheetName as Ga } from "../../spreadsheet-ast/case-fold.js";
46
+ import { parseExpression as nn } from "../../spreadsheet-engine/formulas/parser.js";
47
+ import { quotedLabelText as Wi } from "../../spreadsheet-engine/formulas/quoted-labels.js";
48
+ import { SsconvertError as li } from "../../spreadsheet-engine/contracts.js";
49
+ import { parseExpression as ci } from "../../spreadsheet-engine/formulas/parser.js";
50
+ import { visitFormula as fi } from "../../spreadsheet-engine/formulas/rewriting.js";
51
+ import { recalculateWorkbook as di } from "../../spreadsheet-engine/formulas/evaluator.js";
52
+ import { visitFormula as Vi } from "../../spreadsheet-engine/formulas/rewriting.js";
53
+ import { gnumericGrammar as aa, odfGrammar as jt, internalOdfGrammar as zi, legacyOpenOfficeGrammar as ia } from "../../spreadsheet-engine/formulas/conventions.js";
54
+ import { serializeExpression as Ka, quoteNativeSheet as $i, quoteFormulaString as Xa } from "../../spreadsheet-engine/formulas/serialization.js";
55
+ import { translateOdfHyperlink as va } from "../../spreadsheet-engine/codecs/odf-hyperlinks.js";
56
+ import { dateSerial as ji, gregorian as Ki } from "../../spreadsheet-engine/formulas/functions/dates.js";
57
+ import { converterLocale as qi } from "../../spreadsheet-engine/locale/runtime.js";
58
+ import { formatA1 as vn } from "../../spreadsheet-ast/index.js";
59
+ import { parseExpression as Ti } from "../../spreadsheet-engine/formulas/parser.js";
60
+ import { odfGrammar as ui } from "../../spreadsheet-engine/formulas/conventions.js";
61
+ import { translateOdfHyperlink as Oi } from "../../spreadsheet-engine/codecs/odf-hyperlinks.js";
62
+ import { SsconvertError as La } from "../../spreadsheet-engine/contracts.js";
63
+ import { odfNamespaces as un } from "../../spreadsheet-engine/codecs/odf-write-support.js";
64
+ import { richTextSegments as Ei } from "../../spreadsheet-engine/codecs/rich-text-runs.js";
65
+ import { writeGnumericRichText as mi } from "../../spreadsheet-engine/codecs/gnumeric-rich-text.js";
66
+ import { SsconvertError as Si } from "../../spreadsheet-engine/contracts.js";
67
+ import { DEFAULT_SHEET_SIZE as Ni, MAX_SHEET_SIZE as wa } from "../../spreadsheet-ast/index.js";
68
+ import { parseExpression as Ai } from "../../spreadsheet-engine/formulas/parser.js";
69
+ import { odfGrammar as pi } from "../../spreadsheet-engine/formulas/conventions.js";
70
+ import { foldSheetName as $n } from "../../spreadsheet-ast/case-fold.js";
71
+ import { createOdfXml as Ji, odfObject as qe, odfAttributes as $t, odfChildren as Rt, odfNamespaces as Lt, odfEncryptionNamespace as Qi, upgradeOdfAnnotation as Zi } from "../../spreadsheet-engine/codecs/odf-write-support.js";
72
+ import { SsconvertError as Qn } from "../../spreadsheet-engine/contracts.js";
73
+ import { odfNamespaces as bi } from "../../spreadsheet-engine/codecs/odf-write-support.js";
74
+ import { exportOptionPairs as eo } from "../../spreadsheet-engine/cli/export-options.js";
75
+ import { renderCellText as to } from "../../spreadsheet-engine/formatting/cell-text.js";
76
+ import { encodeTextStream as hi } from "../../spreadsheet-engine/encoding/encode-stream.js";
77
+ import { SsconvertError as Zt } from "../../spreadsheet-engine/contracts.js";
78
+ import { parseFormatSections as yi } from "../../spreadsheet-engine/formatting/sections.js";
79
+ import { scanFormat as gi } from "../../spreadsheet-engine/formatting/numeric.js";
80
+ import { odfObject as pt, odfAttributes as Vt, odfChildren as en, odfNamespaces as Da } from "../../spreadsheet-engine/codecs/odf-write-support.js";
81
+ import { snapshotRecords as wi } from "../../spreadsheet-ast/model.js";
82
+ import { IntegerTable as Ci } from "@poe-platform/safe-fs/storage";
83
+ import { odfAttributes as ea, odfChildren as Ua, odfNamespaces as Dn, odfObject as Nn } from "../../spreadsheet-engine/codecs/odf-write-support.js";
84
+ import { odfAttributes as An, odfChildren as ta, odfObject as zt } from "../../spreadsheet-engine/codecs/odf-write-support.js";
85
+ import { formatA1 as Mi } from "../../spreadsheet-ast/index.js";
86
+ import { quoteFormulaString as Di } from "../../spreadsheet-engine/formulas/serialization.js";
87
+ import { odfGrammar as Bi } from "../../spreadsheet-engine/formulas/conventions.js";
88
+ import { translateOdfHyperlink as Pi } from "../../spreadsheet-engine/codecs/odf-hyperlinks.js";
89
+ import { serialDate as no } from "../../spreadsheet-engine/formulas/functions/dates.js";
90
+ import { readGnumericRichText as ao } from "../../spreadsheet-engine/codecs/gnumeric-rich-text.js";
91
+ function ua(n, t) {
92
+ let r, e = false, c, m = Promise.resolve(), f = /* @__PURE__ */ new WeakMap(), d = new Uint8Array(16384), i = new DataView(d.buffer), o = () => {
93
+ if (n.signal.throwIfAborted(), e) throw new En("invalid-request", "ODF XML storage is closed");
94
+ }, _ = () => (e = true, c ??= m.then(async () => {
95
+ d.fill(0), await r?.close();
96
+ }));
97
+ n.own(_), o();
98
+ try {
99
+ r = n.createWorkingStorage();
100
+ } catch (h) {
101
+ throw new ZipStorageFailure(h);
102
+ }
103
+ o();
104
+ function a(h) {
105
+ let R = m.then(async () => {
106
+ o();
107
+ try {
108
+ return await h();
109
+ } catch (N) {
110
+ throw new ZipStorageFailure(N);
111
+ }
112
+ });
113
+ return m = R.then(() => {
114
+ }, () => {
115
+ }), R;
116
+ }
117
+ async function l2(h, R) {
118
+ return a(async () => {
119
+ let N = JSON.stringify(R, (w, s) => {
120
+ if (s instanceof Map) return [...s];
121
+ if (s && typeof s == "object" && "kind" in s && s.kind === "element") {
122
+ let O = s;
123
+ return { ...O, children: void 0, text: void 0, storedContent: f.get(O) };
124
+ }
125
+ return s;
126
+ }), y = r.allocate(16 + N.length * 2);
127
+ d.fill(0, 0, 16), i.setFloat64(8, N.length, true), await r.write(y, d.subarray(0, 16)), o();
128
+ for (let w = 0; w < N.length; w += 8192) {
129
+ let s = Math.min(8192, N.length - w);
130
+ for (let O = 0; O < s; O++) i.setUint16(O * 2, N.charCodeAt(w + O), true);
131
+ await r.write(y + 16 + w * 2, d.subarray(0, s * 2)), o();
132
+ }
133
+ let F = f.get(h);
134
+ F ? (i.setFloat64(0, y, true), await r.write(F.tail, d.subarray(0, 8)), o(), F.tail = y) : f.set(h, { head: y, tail: y });
135
+ });
136
+ }
137
+ async function u2(h) {
138
+ let R = await r.read(h, 16);
139
+ if (o(), R.length !== 16) throw new En("io", "Truncated ODF XML header");
140
+ let N = new DataView(R.buffer, R.byteOffset, 16), y = N.getFloat64(0, true), F = N.getFloat64(8, true);
141
+ if (!Number.isSafeInteger(y) || y < 0 || !Number.isSafeInteger(F) || F < 0 || F > (Number.MAX_SAFE_INTEGER - h - 16) / 2) throw new En("io", "Invalid ODF XML record");
142
+ let w = "";
143
+ for (let O = 0; O < F; O += 8192) {
144
+ let E = Math.min(8192, F - O), p = await r.read(h + 16 + O * 2, E * 2);
145
+ if (o(), p.length !== E * 2) throw new En("io", "Truncated ODF XML content");
146
+ let T2 = new DataView(p.buffer, p.byteOffset, p.byteLength), Y = [];
147
+ for (let C = 0; C < E; C++) Y.push(T2.getUint16(C * 2, true));
148
+ w += String.fromCharCode(...Y);
149
+ }
150
+ let s = JSON.parse(w, (O, E) => {
151
+ if (E && typeof E == "object" && "kind" in E && E.kind === "element") {
152
+ let { storedContent: p, ...T2 } = E, Y = { ...T2, namespaces: new Map(T2.namespaces), children: T2.content.filter((C) => C.kind === "element"), text: T2.content.filter((C) => C.kind === "text" || C.kind === "cdata").map((C) => C.text).join("") };
153
+ return p && f.set(Y, p), Y;
154
+ }
155
+ return E;
156
+ });
157
+ return { next: y, content: s };
158
+ }
159
+ async function* S(h) {
160
+ o();
161
+ let R = f.get(h);
162
+ if (R) {
163
+ let N = R.tail;
164
+ for (let y = R.head; ; ) {
165
+ let F = await a(() => u2(y));
166
+ if (yield* F.content, y === N) break;
167
+ if (F.next <= y) throw new En("io", "Invalid ODF XML chain");
168
+ y = F.next;
169
+ }
170
+ }
171
+ yield* h.content, o();
172
+ }
173
+ async function* b(h) {
174
+ for await (let R of S(h)) R.kind === "element" && (yield R);
175
+ }
176
+ async function g2(h) {
177
+ let R = [];
178
+ for await (let N of S(h)) R.push(N.kind === "element" ? await g2(N) : N);
179
+ return { ...h, content: R, children: R.filter((N) => N.kind === "element"), text: R.filter((N) => N.kind === "text" || N.kind === "cdata").map((N) => N.text).join("") };
180
+ }
181
+ return { streamElements: { captureBefore: true, includeNested: true, matches(h, R) {
182
+ return !R || !t.includes(h.namespace) || !t.includes(R.namespace) ? false : R.localName === "table-row" ? ["table-cell", "covered-table-cell"].includes(h.localName) : ["table-row", "table-row-group", "table-header-rows", "table-rows"].includes(h.localName) && ["table", "table-row-group", "table-header-rows", "table-rows"].includes(R.localName);
183
+ }, async consume(h, R, N = []) {
184
+ await l2(R, [...N, h]);
185
+ } }, content: S, children: b, append: l2, materialize: g2, has: (h) => f.has(h), close: _ };
186
+ }
187
+ function Oa(n, t) {
188
+ let r = new ni(n, 128), e = new Uint8Array(16384), c = new DataView(e.buffer), m = false, f = Promise.resolve(), d = () => {
189
+ if (t.throwIfAborted(), m) throw new yn("invalid-request", "ODF cells are closed");
190
+ };
191
+ function i(a) {
192
+ let l2 = f.then(() => (d(), a()));
193
+ return f = l2.then(() => {
194
+ }, () => {
195
+ }), l2;
196
+ }
197
+ let o = (a) => BigInt(a) << 38n;
198
+ async function _(a) {
199
+ let l2 = Number(a), u2 = await n.read(l2, 8);
200
+ if (d(), u2.length !== 8) throw new yn("io", "Truncated ODF cell header");
201
+ let S = new DataView(u2.buffer, u2.byteOffset, 8).getFloat64(0, true);
202
+ if (!Number.isSafeInteger(S) || S < 0 || S > (Number.MAX_SAFE_INTEGER - l2 - 8) / 2) throw new yn("io", "Invalid ODF cell length");
203
+ let b = "";
204
+ for (let y = 0; y < S; y += 8192) {
205
+ let F = Math.min(8192, S - y), w = await n.read(l2 + 8 + y * 2, F * 2);
206
+ if (d(), w.length !== F * 2) throw new yn("io", "Truncated ODF cell");
207
+ let s = new DataView(w.buffer, w.byteOffset, w.byteLength), O = [];
208
+ for (let E = 0; E < F; E++) O.push(s.getUint16(E * 2, true));
209
+ b += String.fromCharCode(...O);
210
+ }
211
+ let [g2, A] = JSON.parse(b), h = 0, R = 0;
212
+ function N(y) {
213
+ if (!y || typeof y != "object") return;
214
+ let F = y;
215
+ for (let w of Object.keys(F)) typeof F[w] == "number" ? (A[R] === h && (F[w] = -0, R++), h++) : N(F[w]);
216
+ }
217
+ return A.length && N(g2), g2;
218
+ }
219
+ return { async close() {
220
+ m = true, await f, e.fill(0), r = void 0;
221
+ }, append(a, l2) {
222
+ d();
223
+ let u2 = 0, S = [], g2 = "[" + JSON.stringify(l2, (h, R) => (typeof R == "number" && (Object.is(R, -0) && S.push(u2), u2++), R)) + "," + JSON.stringify(S) + "]", A = o(a) | BigInt(l2.row) << 14n | BigInt(l2.column);
224
+ return i(async () => {
225
+ let h = n.allocate(8 + g2.length * 2);
226
+ c.setFloat64(0, g2.length, true), await n.write(h, e.subarray(0, 8)), d();
227
+ for (let R = 0; R < g2.length; R += 8192) {
228
+ let N = Math.min(8192, g2.length - R);
229
+ for (let y = 0; y < N; y++) c.setUint16(y * 2, g2.charCodeAt(R + y), true);
230
+ await n.write(h + 8 + R * 2, e.subarray(0, N * 2)), d();
231
+ }
232
+ await r.set(A, BigInt(h)), d();
233
+ });
234
+ }, async *cells(a) {
235
+ d();
236
+ let l2 = r.entries(o(a), o(a + 1));
237
+ try {
238
+ for (; ; ) {
239
+ let u2 = await i(async () => {
240
+ let S = await l2.next();
241
+ return d(), S.done ? void 0 : _(S.value[1]);
242
+ });
243
+ if (!u2) break;
244
+ yield u2;
245
+ }
246
+ d();
247
+ } finally {
248
+ await l2.return(void 0);
249
+ }
250
+ } };
251
+ }
252
+ function ma(n) {
253
+ let t, r, e = /* @__PURE__ */ new Map(), c = false, m, f;
254
+ if (n.own(() => (c = true, f ??= Promise.resolve().then(async () => {
255
+ await t?.close(), await r?.close(), await m?.close();
256
+ }))), c) throw new gn("invalid-request", "ODF source is closed");
257
+ try {
258
+ m = n.createWorkingStorage();
259
+ } catch (a) {
260
+ throw new ZipStorageFailure(a);
261
+ }
262
+ if (c) throw new gn("invalid-request", "ODF source is closed");
263
+ let d = m, i = Promise.resolve();
264
+ function o(a) {
265
+ let l2 = i.then(a);
266
+ return i = l2.then(() => {
267
+ }, () => {
268
+ }), l2;
269
+ }
270
+ let _ = { allocate(a) {
271
+ try {
272
+ return d.allocate(a);
273
+ } catch (l2) {
274
+ throw new ZipStorageFailure(l2);
275
+ }
276
+ }, read(a, l2) {
277
+ return o(async () => {
278
+ try {
279
+ return new Uint8Array(await d.read(a, l2));
280
+ } catch (u2) {
281
+ throw new ZipStorageFailure(u2);
282
+ }
283
+ });
284
+ }, write(a, l2) {
285
+ return o(async () => {
286
+ try {
287
+ await d.write(a, l2);
288
+ } catch (u2) {
289
+ throw new ZipStorageFailure(u2);
290
+ }
291
+ });
292
+ }, close: () => d.close() };
293
+ return t = Oa(_, n.signal), r = ai(_, n.signal), { cells: t, axes: r, sheets: e, workbook(a) {
294
+ let l2 = t, u2 = (b) => {
295
+ if (n.signal.throwIfAborted(), c) throw new gn("invalid-request", "ODF source is closed");
296
+ let g2 = e.get(b);
297
+ if (!g2) throw new gn("invalid-request", "Unknown ODF source sheet");
298
+ return g2;
299
+ };
300
+ function S(b) {
301
+ throw n.signal.throwIfAborted(), b instanceof ZipStorageFailure ? b.cause : b;
302
+ }
303
+ return { metadata: a, async *cells(b) {
304
+ try {
305
+ yield* l2.cells(u2(b).ordinal);
306
+ } catch (g2) {
307
+ return S(g2);
308
+ }
309
+ }, async *axes(b, g2) {
310
+ try {
311
+ yield* u2(b)[g2].values();
312
+ } catch (A) {
313
+ return S(A);
314
+ }
315
+ } };
316
+ } };
317
+ }
318
+ function wn(n, t, r) {
319
+ let e = t ? new ZipWriteChain(t, 16384, n.signal, async (o) => {
320
+ o.throwIfAborted();
321
+ }) : void 0, c = e ? new Uint8Array(16384) : void 0, m = [], f = 0, d = false;
322
+ function i() {
323
+ c?.fill(0), m.length = 0;
324
+ }
325
+ return n.own(i), { get hasContent() {
326
+ return d;
327
+ }, dispose: i, async append(o) {
328
+ n.signal.throwIfAborted();
329
+ async function* _() {
330
+ for (let a of typeof o == "string" ? [o] : o) n.signal.throwIfAborted(), a && (d = true, yield a);
331
+ }
332
+ if (!e) {
333
+ for await (let a of _()) m.push(a);
334
+ return;
335
+ }
336
+ for await (let a of oi(_(), "UTF-8", false, n)) {
337
+ r(a.length);
338
+ for (let l2 = 0; l2 < a.length; ) {
339
+ let u2 = Math.min(c.length - f, a.length - l2);
340
+ c.set(a.subarray(l2, l2 + u2), f), f += u2, l2 += u2, f === c.length && (await e.append([c], f), f = 0);
341
+ }
342
+ }
343
+ }, async *render() {
344
+ if (n.signal.throwIfAborted(), !e) {
345
+ yield* m;
346
+ return;
347
+ }
348
+ f && (await e.append([c.subarray(0, f)], f), f = 0), c.fill(0), yield* e.read();
349
+ } };
350
+ }
351
+ var Sa = "243f6a8885a308d313198a2e03707344a4093822299f31d0082efa98ec4e6c89452821e638d01377be5466cf34e90c6cc0ac29b7c97c50dd3f84d5b5b54709179216d5d98979fb1bd1310ba698dfb5ac2ffd72dbd01adfb7b8e1afed6a267e96ba7c9045f12c7f9924a19947b3916cf70801f2e2858efc16636920d871574e69a458fea3f4933d7e0d95748f728eb658718bcd5882154aee7b54a41dc25a59b59c30d5392af26013c5d1b023286085f0ca417918b8db38ef8e79dcb0603a180e6c9e0e8bb01e8a3ed71577c1bd314b2778af2fda55605c60e65525f3aa55ab945748986263e8144055ca396a2aab10b6b4cc5c341141e8cea15486af7c72e993b3ee1411636fbc2a2ba9c55d741831f6ce5c3e169b87931eafd6ba336c24cf5c7a325381289586773b8f48986b4bb9afc4bfe81b6628219361d809ccfb21a991487cac605dec8032ef845d5de98575b1dc262302eb651b8823893e81d396acc50f6d6ff383f442392e0b4482a484200469c8f04a9e1f9b5e21c66842f6e96c9a670c9c61abd388f06a51a0d2d8542f68960fa728ab5133a36eef0b6c137a3be4ba3bf0507efb2a98a1f1651d39af017666ca593e82430e888cee8619456f9fb47d84a5c33b8b5ebee06f75d885c12073401a449f56c16aa64ed3aa62363f77061bfedf72429b023d37d0d724d00a1248db0fead349f1c09b075372c980991b7b25d479d8f6e8def7e3fe501ab6794c3b976ce0bd04c006bac1a94fb6409f60c45e5c9ec2196a246368fb6faf3e6c53b51339b2eb3b52ec6f6dfc511f9b30952ccc814544af5ebd09bee3d004de334afd660f2807192e4bb3c0cba85745c8740fd20b5f39b9d3fbdb5579c0bd1a60320ad6a100c6402c7279679f25fefb1fa3cc8ea5e9f8db3222f83c7516dffd616b152f501ec8ad0552ab323db5fafd23876053317b483e00df829e5c57bbca6f8ca01a87562edf1769dbd542a8f6287effc3ac6732c68c4f5573695b27b0bbca58c8e1ffa35db8f011a010fa3d98fd2183b84afcb56c2dd1d35b9a53e479b6f84565d28e49bc4bfb9790e1ddf2daa4cb7e3362fb1341cee4c6e8ef20cada36774c01d07e9efe2bf11fb495dbda4dae909198eaad8e716b93d5a0d08ed1d0afc725e08e3c5b2f8e7594b78ff6e2fbf2122b648888b812900df01c4fad5ea0688fc31cd1cff191b3a8c1ad2f2f2218be0e1777ea752dfe8b021fa1e5a0cc0fb56f74e818acf3d6ce89e299b4a84fe0fd13e0b77cc43b81d2ada8d9165fa2668095770593cc7314211a1477e6ad206577b5fa86c75442f5fb9d35cfebcdaf0c7b3e89a0d6411bd3ae1e7e4900250e2d2071b35e226800bb57b8e0af2464369bf009b91e5563911d59dfa6aa78c14389d95a537f207d5ba202e5b9c5832603766295cfa911c819684e734a41b3472dca7b14a94a1b5100529a532915d60f573fbc9bc6e42b60a47681e6740008ba6fb5571be91ff296ec6b2a0dd915b6636521e7b9f9b6ff34052ec585566453b02d5da99f8fa108ba47996e85076a4b7a70e9b5b32944db75092ec4192623ad6ea6b049a7df7d9cee60b88fedb266ecaa8c71699a17ff5664526cc2b19ee1193602a575094c29a0591340e4183a3e3f54989a5b429d656b8fe4d699f73fd6a1d29c07efe830f54d2d38e6f0255dc14cdd20868470eb266382e9c6021ecc5e09686b3f3ebaefc93c9718146b6a70a1687f358452a0e286b79c5305aa5007373e07841c7fdeae5c8e7d44ec5716f2b8b03ada37f0500c0df01c1f040200b3ffae0cf51a3cb574b225837a58dc0921bdd19113f97ca92ff69432477322f547013ae5e58137c2dadcc8b576349af3dda7a94461460fd0030eecc8c73ea4751e41e238cd993bea0e2f3280bba1183eb3314e548b384f6db9086f420d03f60a04bf2cb8129024977c795679b072bcaf89afde9a771fd9930810b38bae12dccf3f2e5512721f2e6b7124501adde69f84cd877a5847187408da17bc9f9abce94b7d8cec7aec3adb851dfa63094366c464c3d2ef1c18473215d908dd433b3724c2ba1612a14d432a65c45150940002133ae4dd71dff89e10314e5581ac77d65f11199b043556f1d7a3c76b3c11183b5924a509f28fe6ed97f1fbfa9ebabf2c1e153c6e86e34570eae96fb1860e5e0a5a3e2ab3771fe71c4e3d06fa2965dcb999e71d0f803e89d65266c8252e4cc9789c10b36ac6150eba94e2ea78a5fc3c531e0a2df4f2f74ea7361d2b3d1939260f19c279605223a708f71312b6ebadfe6eeac31f66e3bc4595a67bc883b17f37d1018cff28c332ddefbe6c5aa56558218568ab9802eecea50fdb2f953b2aef7dad5b6e2f841521b62829076170ecdd4775619f151013cca830eb61bd960334fe1eaa0363cfb5735c904c70a239d59e9e0bcbaade14eecc86bc60622ca79cab5cabb2f3846e648b1eaf19bdf0caa02369b9655abb5040685a323c2ab4b3319ee9d5c021b8f79b540b19875fa09995f7997e623d7da8f837889a97e32d7711ed935f166812810e358829c7e61fd696dedfa17858ba9957f584a51b2272639b83c3ff1ac24696cdb30aeb532e30548fd948e46dbc312858ebf2ef34c6ffeafe28ed61ee7c3c735d4a14d9e864b7e342105d14203e13e045eee2b6a3aaabeadb6c4f15facb4fd0c742f442ef6abbb5654f3b1d41cd2105d81e799e86854dc7e44b476a3d816250cf62a1f25b8d2646fc8883a0c1c7b6a37f1524c369cb749247848a0b5692b285095bbf00ad19489d1462b17423820e0058428d2a0c55f5ea1dadf43e233f70613372f0928d937e41d65fecf16c223bdb7cde3759cbee74604085f2a7ce77326ea607808419f8509ee8efd85561d99735a969a7aac50c06c25a04abfc800bcadc9e447a2ec3453484fdd567050e1e9ec9db73dbd3105588cd675fda79e3674340c5c43465713e38d83d28f89ef16dff20153e21e78fb03d4ae6e39f2bdb83adf7e93d5a68948140f7f64c261c94692934411520f77602d4f7bcf46b2ed4a20068d40824713320f46a43b7d4b7500061af1e39f62e9724454614214f74bf8b88404d95fc1d96b591af70f4ddd366a02f45bfbc09ec03bd97857fac6dd031cb850496eb27b355fd3941da2547e6abca0a9a28507825530429f40a2c86dae9b66dfb68dc1462d7486900680ec0a427a18dee4f3ffea2e887ad8cb58ce0067af4d6b6aace1e7cd3375fecce78a399406b2a4220fe9e35d9f385b9ee39d7ab3b124e8b1dc9faf74b6d185626a36631eae397b23a6efa74dd5b43326841e7f7ca7820fbfb0af54ed8feb397454056acba48952755533a3a20838d87fe6ba9b7d096954b55a867bca1159a58cca9296399e1db33a62a4a563f3125f95ef47e1c9029317cfdf8e80204272f7080bb155c05282ce395c11548e4c66d2248c1133fc70f86dc07f9c9ee41041f0f404779a45d886e17325f51ebd59bc0d1f2bcc18f41113564257b7834602a9c60dff8e8a31f636c1b0e12b4c202e1329eaf664fd1cad181156b2395e0333e92e13b240b62eebeb92285b2a20ee6ba0d99de720c8c2da2f728d012784595b794fd647d0862e7ccf5f05449a36f877d48fac39dfd27f33e8d1e0a476341992eff743a6f6eabf4f8fd37a812dc60a1ebddf8991be14cdb6e6b0dc67b55106d672c372765d43bdcd0e804f1290dc7cc00ffa3b5390f92690fed0b667b9ffbcedb7d9ca091cf0bd9155ea3bb132f88515bad247b9479bf763bd6eb37392eb3cc1159798026e297f42e312d6842ada7c66a2b3b12754ccc782ef11c6a124237b79251e706a1bbe64bfb63501a6b101811caedfa3d25bdd8e2e1c3c9444216590a121386d90cec6ed5abea2a64af674eda86a85fbebfe98864e4c3fe9dbc8057f0f7c08660787bf86003604dd1fd8346f6381fb07745ae04d736fccc83426b33f01eab71b08041873c005e5f77a057bebde8ae2455464299bf582e614e58f48ff2ddfda2f474ef388789bdc25366f9c3c8b38e74b475f25546fcd9b97aeb26618b1ddf84846a0e79915f95e2466e598e20b457708cd55591c902de4cb90bace1bb8205d011a862487574a99eb77f19b6e0a9dc09662d09a1c4324633e85a1f0209f0be8c4a99a0251d6efe101ab93d1d0ba5a4dfa186f20f2868f169dcb7da83573906fea1e2ce9b4fcd7f5250115e01a70683faa002b5c40de6d0279af88c27773f8641c3604c0661a806b5f0177a28c0f586e0006058aa30dc7d6211e69ed72338ea6353c2dd94c2c21634bbcbee5690bcb6deebfc7da1ce591d766f05e4094b7c018839720a3d7c927c2486e3725f724d9db91ac15bb4d39eb8fced54557808fca5b5d83d7cd34dad0fc41e50ef5eb161e6f8a28514d96c51133c6fd5c7e756e14ec4362abfceddc6c837d79a323492638212670efa8e406000e03a39ce37d3faf5cfabc277375ac52d1b5cb0679e4fa33742d382274099bc9bbed5118e9dbf0f7315d62d1c7ec700c47bb78c1b6b21a19045b26eb1be6a366eb45748ab2fbc946e79c6a376d26549c2c8530ff8ee468dde7dd5730a1d4cd04dc62939bbdba9ba4650ac9526e8be5ee304a1fad5f06a2d519a63ef8ce29a86ee22c089c2b843242ef6a51e03aa9cf2d0a483c061ba9be96a4d8fe51550ba645bd62826a2f9a73a3ae14ba99586ef5562e9c72fefd3f752f7da3f046f6977fa0a5980e4a91587b086019b09e6ad3b3ee593e990fd5a9e34d7972cf0b7d9022b8b5196d5ac3a017da67dd1cf3ed67c7d2d281f9f25cfadf2b89b5ad6b4725a88f54ce029ac71e019a5e647b0acfded93fa9be8d3c48d283b57ccf8d5662979132e28785f0191ed756055f7960e44e3d35e8c15056dd488f46dba03a161250564f0bdc3eb9e153c9057a297271aeca93a072a1b3f6d9b1e6321f5f59c66fb26dcf3197533d928b155fdf5035634828aba3cbb28517711c20ad9f8abcc5167ccad925f4de817513830dc8e379d58629320f991ea7a90c2fb3e7bce5121ce64774fbe32a8b6e37ec3293d4648de53696413e680a2ae0810dd6db22469852dfd09072166b39a460a6445c0dd586cdecf1c20c8ae5bbef7dd1b588d40ccd2017f6bb4e3bbdda26a7e3a59ff453e350a44bcb4cdd572eacea8fa6484bb8d6612aebf3c6f47d29be463542f5d9eaec2771bf64e6370740e0d8de75b1357f8721671af537d5d4040cb084eb4e2cc34d2466a0115af84e1b0042895983a1d06b89fb4ce6ea0486f3f3b823520ab82011a1d4b277227f8611560b1e7933fdcbb3a792b344525bda08839e151ce794b2f32c9b7a01fbac9e01cc87ebcc7d1f6cf0111c3a1e8aac71a908749d44fbd9ad0dadecbd50ada380339c32ac69136678df9317ce0b12b4ff79e59b743f5bb3af2d519ff27d9459cbf97222c15e6fc2a0f91fc719b941525fae59361ceb69cebc2a8645912baa8d1b6c1075ee3056a0c10d25065cb03a442e0ec6e0e1698db3b4c98a0be3278e9649f1f9532e0d392dfd3a0342b8971f21e1b0a74414ba3348cc5be7120c37632d8df359f8d9b992f2ee60b6f470fe3f11de54cda541edad891ce6279cfcd3e7e6f1618b166fd2c1d05848fd2c5f6fb2299f523f357a632762393a8353156cccd02acf081625a75ebb56e16369788d273ccde96629281b949d04c50901b71c65614e6c6c7bd327a140a45e1d006c3f27b9ac9aa53fd62a80f00bb25bfe235bdd2f671126905b2040222b6cbcf7ccd769c2b53113ec01640e3d338abbd602547adf0ba38209cf746ce7677afa1c52075606085cbfe4e8ae88dd87aaaf9b04cf9aa7e1948c25c02fb8a8c01c36ae4d6ebe1f990d4f869a65cdea03f09252dc208e69fb74e6132ce77e25b578fdfe33ac372e6";
352
+ async function Tn(n, t, r, e, c, m = 1) {
353
+ if (e.throwIfAborted(), n.length < 4 || n.length > 56 || t.length !== 8) throw new TypeError("Invalid ODF Blowfish profile");
354
+ let f = new Uint32Array(1042), d = new Uint8Array(r.length);
355
+ for (let a = 0; a < f.length; a++) f[a] = Number.parseInt(Sa.slice(a * 8, a * 8 + 8), 16);
356
+ let i = f.subarray(0, 18), o = f.subarray(18);
357
+ function _(a, l2) {
358
+ for (let u2 = 0; u2 < 16; u2++) {
359
+ a = (a ^ i[u2]) >>> 0;
360
+ let S = ((o[a >>> 24] + o[256 + (a >>> 16 & 255)] | 0) ^ o[512 + (a >>> 8 & 255)]) + o[768 + (a & 255)] >>> 0, b = (l2 ^ S) >>> 0;
361
+ l2 = a, a = b;
362
+ }
363
+ return [(l2 ^ i[17]) >>> 0, (a ^ i[16]) >>> 0];
364
+ }
365
+ try {
366
+ for (let g2 = 0, A = 0; g2 < i.length; g2++) {
367
+ let h = 0;
368
+ for (let R = 0; R < 4; R++, A++) h = h << 8 | n[A % n.length];
369
+ i[g2] = i[g2] ^ h;
370
+ }
371
+ let a = 0, l2 = 0;
372
+ for (let g2 = 0; g2 < f.length; g2 += 2) e.throwIfAborted(), [a, l2] = _(a, l2), f[g2] = a, f[g2 + 1] = l2;
373
+ let u2 = new DataView(t.buffer, t.byteOffset, t.byteLength);
374
+ a = u2.getUint32(0), l2 = u2.getUint32(4);
375
+ let S = 0, b = 0;
376
+ for (let g2 = 0; g2 < r.length; g2++) {
377
+ e.throwIfAborted(), g2 % m === 0 && ([S, b] = _(a, l2));
378
+ let A = r[g2];
379
+ d[g2] = A ^ S >>> 24, S = (S << 8 | b >>> 24) >>> 0, b = b << 8 >>> 0;
380
+ let h = c === "encrypt" ? d[g2] : A;
381
+ a = (a << 8 | l2 >>> 24) >>> 0, l2 = (l2 << 8 | h) >>> 0, (g2 & 4095) === 4095 && await new Promise((R) => setTimeout(R, 0));
382
+ }
383
+ return e.throwIfAborted(), d;
384
+ } catch (a) {
385
+ throw d.fill(0), a;
386
+ } finally {
387
+ f.fill(0);
388
+ }
389
+ }
390
+ var Cn = class {
391
+ oHash;
392
+ iHash;
393
+ blockLen;
394
+ outputLen;
395
+ canXOF = false;
396
+ finished = false;
397
+ destroyed = false;
398
+ constructor(t, r) {
399
+ if (I(t), u(r, void 0, "key"), this.iHash = t.create(), typeof this.iHash.update != "function") throw new Error("expected Hash instance");
400
+ this.blockLen = this.iHash.blockLen, this.outputLen = this.iHash.outputLen;
401
+ let e = this.blockLen, c = new Uint8Array(e);
402
+ c.set(r.length > e ? t.create().update(r).digest() : r);
403
+ for (let m = 0; m < c.length; m++) c[m] ^= 54;
404
+ this.iHash.update(c), this.oHash = t.create();
405
+ for (let m = 0; m < c.length; m++) c[m] ^= 106;
406
+ this.oHash.update(c), T(c);
407
+ }
408
+ update(t) {
409
+ return l(this), this.iHash.update(t), this;
410
+ }
411
+ digestInto(t) {
412
+ l(this), g(t, this), this.finished = true;
413
+ let r = t.subarray(0, this.outputLen);
414
+ this.iHash.digestInto(r), this.oHash.update(r), this.oHash.digestInto(r), this.destroy();
415
+ }
416
+ digest() {
417
+ let t = new Uint8Array(this.oHash.outputLen);
418
+ return this.digestInto(t), t;
419
+ }
420
+ _cloneInto(t) {
421
+ t ||= Object.create(Object.getPrototypeOf(this), {});
422
+ let { oHash: r, iHash: e, finished: c, destroyed: m, blockLen: f, outputLen: d, canXOF: i } = this;
423
+ return t = t, t.finished = c, t.destroyed = m, t.blockLen = f, t.outputLen = d, t.canXOF = i, t.oHash = r._cloneInto(t.oHash), t.iHash = e._cloneInto(t.iHash), t;
424
+ }
425
+ clone() {
426
+ return this._cloneInto();
427
+ }
428
+ destroy() {
429
+ this.destroyed = true, this.oHash.destroy(), this.iHash.destroy();
430
+ }
431
+ };
432
+ var Na = (() => {
433
+ let n = ((t, r, e) => new Cn(t, r).update(e).digest());
434
+ return n.create = (t, r) => new Cn(t, r), n;
435
+ })();
436
+ var it = "urn:oasis:names:tc:opendocument:xmlns:manifest:1.0";
437
+ var Aa = /* @__PURE__ */ new Map([["SHA1", X], ["http://www.w3.org/2000/09/xmldsig#sha1", X], ["http://www.w3.org/2000/09/xmldsig#sha256", I2], ["http://www.w3.org/2001/04/xmlenc#sha256", I2]]);
438
+ var si = /* @__PURE__ */ new Map([["http://www.w3.org/2001/04/xmlenc#aes128-cbc", 16], ["http://www.w3.org/2001/04/xmlenc#aes192-cbc", 24], ["http://www.w3.org/2001/04/xmlenc#aes256-cbc", 32]]);
439
+ function De(n) {
440
+ throw new Wt("io", `E Invalid OpenDocument: ${n}`);
441
+ }
442
+ function Ke(n = "package") {
443
+ throw new Wt("unsupported-feature", `Unsupported ssconvert feature: encrypted OpenDocument ${n}`);
444
+ }
445
+ function ke(n, t, r = it) {
446
+ return n?.attributes.find((e) => e.namespace === r && e.localName === t)?.value;
447
+ }
448
+ function Hn(n, t, r = false) {
449
+ let e = n.children.filter((c) => c.namespace === it && c.localName === t);
450
+ return (e.length > 1 || !r && e.length !== 1) && De("invalid encryption declaration"), e[0];
451
+ }
452
+ function vt(n) {
453
+ let t = n?.trim(), r = t?.startsWith("+") ? t.slice(1) : t;
454
+ (!r || [...r].some((c) => c < "0" || c > "9")) && De("invalid encryption integer");
455
+ let e = Number(r);
456
+ if (!Number.isSafeInteger(e)) throw new Wt("resource-limit", "ssconvert OpenDocument encryption integer limit exceeded");
457
+ return e;
458
+ }
459
+ function kn(n, t) {
460
+ n === void 0 && De("missing encryption bytes");
461
+ let r = [...n].filter((c) => !` \r
462
+ `.includes(c)).join(""), e;
463
+ try {
464
+ e = atob(r), btoa(e) !== r && De("invalid encryption bytes");
465
+ } catch {
466
+ De("invalid encryption bytes");
467
+ }
468
+ return t !== void 0 && e.length !== t && De("invalid encryption byte length"), Uint8Array.from(e, (c) => c.charCodeAt(0));
469
+ }
470
+ async function Gn(n, t, r, e, c) {
471
+ let m = new Uint8Array(e), f = new Uint8Array(t.length + 4), d = new DataView(f.buffer);
472
+ f.set(t);
473
+ let i = Na.create(X, n), o;
474
+ try {
475
+ for (let _ = 1, a = 0; a < e; _++, a += 20) {
476
+ d.setUint32(t.length, _), o = i.clone().update(f).digest();
477
+ let l2 = m.subarray(a, Math.min(a + 20, e));
478
+ l2.set(o.subarray(0, l2.length));
479
+ for (let u2 = 1; u2 < r; u2++) {
480
+ c.signal.throwIfAborted();
481
+ let S = i.clone().update(o).digest();
482
+ o.fill(0), o = S;
483
+ for (let b = 0; b < l2.length; b++) l2[b] = l2[b] ^ o[b];
484
+ (u2 & 255) === 0 && await new Promise((b) => setTimeout(b, 0));
485
+ }
486
+ o.fill(0), o = void 0;
487
+ }
488
+ return c.signal.throwIfAborted(), m;
489
+ } catch (_) {
490
+ throw m.fill(0), _;
491
+ } finally {
492
+ i.destroy(), o?.fill(0), f.fill(0);
493
+ }
494
+ }
495
+ async function pa(n, t, r, e, c, m, f) {
496
+ e.password || Ke(), n.namespace !== it && Ke("manifest revision");
497
+ let d = await t.has("encrypted-package");
498
+ if (d) {
499
+ let A = 0;
500
+ for (let h of ["mimetype", "META-INF/manifest.xml", "encrypted-package"]) await t.has(h) && A++;
501
+ (n.children.length !== 1 || A !== t.size) && De("ambiguous encrypted package");
502
+ }
503
+ let i = [], o = /* @__PURE__ */ new Set(), _ = 0;
504
+ for (let A of n.children) {
505
+ if (c(), A.namespace !== it || A.localName !== "file-entry") continue;
506
+ let h = ke(A, "full-path");
507
+ (!h || o.has(h)) && De("ambiguous manifest member"), o.add(h);
508
+ }
509
+ for (let A of n.children) {
510
+ c();
511
+ let h = A.children.filter((ye) => ye.localName === "encryption-data");
512
+ if (!h.length) continue;
513
+ (h.length !== 1 || A.namespace !== it || A.localName !== "file-entry" || h[0].namespace !== it) && De("invalid encryption declaration");
514
+ let R = ke(A, "full-path");
515
+ (!R || R === "mimetype" || R === "META-INF/manifest.xml" || !await t.has(R)) && De("invalid encrypted member");
516
+ let N = await t.get(R), y = h[0], F = Hn(y, "algorithm"), w = Hn(y, "key-derivation"), s = ke(F, "algorithm-name") ?? "", O = s === "Blowfish CFB" || s === it + "#blowfish", E = s === "http://www.w3.org/2009/xmlenc11#aes256-gcm";
517
+ (d !== E || E && R !== "encrypted-package") && Ke("encryption algorithm");
518
+ let p = E ? "aes-gcm" : O ? "blowfish-cfb8" : "aes-cbc", T2 = E ? 32 : O ? vt(ke(w, "key-size") ?? "16") : si.get(s);
519
+ T2 === void 0 && Ke("encryption algorithm"), O && (T2 < 4 || T2 > 56) && Ke("encryption key size"), (N.method !== 0 || N.size === 0 || p === "aes-cbc" && N.size % 16 || E && N.size < 28) && De("invalid encrypted member framing");
520
+ let Y = ke(w, "key-derivation-name");
521
+ (E ? Y !== "urn:org:documentfoundation:names:experimental:office:manifest:argon2id" : Y !== "PBKDF2" && Y !== it + "#pbkdf2") && Ke("key derivation"), vt(ke(w, "key-size") ?? "16") !== T2 && De("inconsistent encryption key size");
522
+ let C = "urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0", I3 = vt(E ? ke(w, "argon2-iterations", C) : ke(w, "iteration-count"));
523
+ I3 || De("invalid encryption iteration count");
524
+ let M = E ? vt(ke(w, "argon2-memory", C)) : 0, x = E ? vt(ke(w, "argon2-lanes", C)) : 0, W = E ? 4 * x * Math.floor(M / (4 * x)) * 1024 : 0;
525
+ if (E && ((!x || x >= 2 ** 24 || M < 8 * x || M >= 2 ** 32 || I3 >= 2 ** 32) && De("invalid Argon2 parameters"), W >= 2 ** 32 || W > (e.limits.encryptionMemoryBytes ?? 1 / 0))) throw new Wt("resource-limit", "ssconvert OpenDocument encryption memory limit exceeded");
526
+ let v = vt(ke(A, "size"));
527
+ if (v > f || v > (e.limits.zipRatio ?? 1 / 0) * N.size) throw new Wt("resource-limit", "ssconvert OpenDocument decrypted entry limit exceeded");
528
+ if (_ += v + N.size, !Number.isSafeInteger(_) || _ > m) throw new Wt("resource-limit", "ssconvert OpenDocument decrypted bytes limit exceeded");
529
+ let ne = Hn(y, "start-key-generation", true), K = Aa.get(ke(ne, "start-key-generation-name") ?? "SHA1");
530
+ K || Ke("start key algorithm"), E && K !== I2 && Ke("start key algorithm"), vt(ke(ne, "key-size") ?? "20") !== K.outputLen && De("inconsistent start key size");
531
+ let G = ke(y, "checksum-type") ?? "SHA1/1K", j = G === "SHA1/1K" || G === it + "#sha1-1k" ? X : G === it + "#sha256-1k" ? I2 : Aa.get(G);
532
+ !E && !j && Ke("checksum algorithm"), E && (ke(y, "checksum") !== void 0 || ke(y, "checksum-type") !== void 0) && De("unexpected authenticated checksum");
533
+ let ue = E ? void 0 : kn(ke(y, "checksum"), j.outputLen), ve = kn(ke(F, "initialisation-vector"), E ? 12 : O ? 8 : 16), ze = kn(ke(w, "salt"));
534
+ if ((!ze.length || E && ze.length < 8) && De("invalid encryption salt"), c((E ? M * I3 * 1024 : I3 * Math.ceil(T2 / 20) * 128) + (O ? (N.size + Math.ceil(N.size / 8) + 1042) * 128 : N.size * 4) + v + ze.length * Math.ceil(T2 / 20)), E) {
535
+ let ye = await r(R);
536
+ ve.every((Q, Ye) => ye[Ye] === Q) || De("inconsistent encrypted package IV");
537
+ }
538
+ i.push({ path: R, cipher: p, keyBytes: T2, iterations: I3, memory: M, lanes: x, arenaBytes: W, size: v, startHash: K, checksumHash: j, checksum: ue, iv: ve, salt: ze, prefixChecksum: G === "SHA1/1K" || G === it + "#sha1-1k" || G === it + "#sha256-1k" });
539
+ }
540
+ let a = /* @__PURE__ */ new Map();
541
+ if (!i.length) return a;
542
+ e.own(() => {
543
+ for (let A of a.values()) A.fill(0);
544
+ });
545
+ let l2 = i[0].cipher, u2 = i.every((A) => A.cipher === l2) ? l2 : "mixed", S = e.limits.inputBytes;
546
+ e.signal.throwIfAborted();
547
+ let b;
548
+ try {
549
+ b = await e.password.read(Object.freeze({ format: "odf", algorithm: u2, revision: d ? "libreoffice" : "1.2", encoding: "utf8", maxBytes: S, signal: e.signal, ...e.inputFilename === void 0 ? {} : { inputFilename: e.inputFilename } }));
550
+ } catch {
551
+ e.signal.throwIfAborted(), Ke("password acquisition failed");
552
+ }
553
+ e.signal.throwIfAborted(), b === void 0 && Ke("password required"), (typeof b == "string" ? b.length > S : !(b instanceof Uint8Array) || b.length > S) && Ke("password encoding or length"), typeof b == "string" && [...b].some((A) => {
554
+ let h = A.codePointAt(0);
555
+ return h >= 55296 && h <= 57343;
556
+ }) && Ke("password encoding or length");
557
+ let g2 = typeof b == "string" ? new TextEncoder().encode(b) : new Uint8Array(b);
558
+ try {
559
+ g2.length > S && Ke("password encoding or length");
560
+ try {
561
+ new TextDecoder("UTF-8", { fatal: true }).decode(g2);
562
+ } catch {
563
+ Ke("password encoding or length");
564
+ }
565
+ for (let A of i) {
566
+ let h = A.startHash(g2), R, N;
567
+ try {
568
+ let [{ cbc: y, gcm: F }, { argon2idAsync: w }] = await Promise.all([import("./aes-DUEAWV73-LZOSUFMR.js"), import("./argon2-WTUGKGHD-C2NVNIFH.js")]);
569
+ R = A.cipher === "aes-gcm" ? await w(h, A.salt, { t: A.iterations, m: A.memory, p: A.lanes, dkLen: A.keyBytes, version: 19, maxmem: A.arenaBytes, asyncTick: 10 }) : await Gn(h, A.salt, A.iterations, A.keyBytes, e), e.signal.throwIfAborted();
570
+ let s = await r(A.path), O = 0;
571
+ if (A.cipher === "aes-gcm") try {
572
+ N = F(R, A.iv).decrypt(s.subarray(12));
573
+ } catch {
574
+ De("encrypted content could not be verified");
575
+ }
576
+ else if (A.cipher === "blowfish-cfb8") N = await Tn(R, A.iv, s, e.signal, "decrypt");
577
+ else {
578
+ N = new Uint8Array(s.length);
579
+ let I3 = A.iv;
580
+ for (let M = 0; M < s.length; M += 16384) {
581
+ e.signal.throwIfAborted();
582
+ let x = s.subarray(M, Math.min(M + 16384, s.length)), W = y(R, I3, { disablePadding: true }).decrypt(x);
583
+ try {
584
+ N.set(W, M);
585
+ } finally {
586
+ W.fill(0);
587
+ }
588
+ I3 = x.subarray(x.length - 16), M && await new Promise((v) => setTimeout(v, 0));
589
+ }
590
+ O = N[N.length - 1], (O < 1 || O > 16) && De("encrypted content could not be verified");
591
+ }
592
+ let E = N.subarray(0, N.length - O);
593
+ if (A.cipher !== "aes-gcm") {
594
+ let I3 = A.checksumHash(A.prefixChecksum ? E.subarray(0, 1024) : E), M = 0;
595
+ for (let x = 0; x < I3.length; x++) M |= I3[x] ^ A.checksum[x];
596
+ if (M && A.cipher === "blowfish-cfb8") {
597
+ N.fill(0), N = await Tn(R, A.iv, s, e.signal, "decrypt", 8), E = N, I3 = A.checksumHash(A.prefixChecksum ? E.subarray(0, 1024) : E), M = 0;
598
+ for (let x = 0; x < I3.length; x++) M |= I3[x] ^ A.checksum[x];
599
+ }
600
+ M && De("encrypted content could not be verified");
601
+ }
602
+ let p = createCompressionCodec(), T2 = new p.CodecReader((async function* () {
603
+ yield E;
604
+ })(), e.signal), Y = new Uint8Array(A.size), C = 0;
605
+ try {
606
+ for await (let I3 of p.codec(T2, { mode: "inflate-raw", chunkSize: 16384 }, e.signal)) I3.length > Y.length - C && De("encrypted content could not be verified"), Y.set(I3, C), C += I3.length;
607
+ (C !== Y.length || await T2.chunk() !== void 0) && De("encrypted content could not be verified");
608
+ } catch (I3) {
609
+ if (Y.fill(0), e.signal.throwIfAborted(), I3 instanceof Wt) throw I3;
610
+ De("encrypted content could not be verified");
611
+ } finally {
612
+ await T2.close(), N.fill(0);
613
+ }
614
+ a.set(A.path, Y);
615
+ } finally {
616
+ h.fill(0), R?.fill(0), N?.fill(0);
617
+ }
618
+ }
619
+ return a;
620
+ } catch (A) {
621
+ for (let h of a.values()) h.fill(0);
622
+ throw A;
623
+ } finally {
624
+ g2.fill(0);
625
+ }
626
+ }
627
+ function Ra(n, t, r) {
628
+ let e = /* @__PURE__ */ new Map(), c = [];
629
+ if (!n.sheets.some((i) => i.cells.some((o) => (r(), (o.formula || o.formulaGroup) && (n.automaticLabelLookup || i.labelRanges?.some((_) => (r(), o.row >= _.labels.startRow && o.row <= _.labels.endRow && o.column >= _.labels.startColumn && o.column <= _.labels.endColumn))))))) return { book: n, documents: e };
630
+ n = { ...n, sheets: n.sheets.map((i) => ({ ...i, cells: i.cells.map((o) => (r(), (o.formula || o.formulaGroup) && o.cachedResult ? { ...o, value: o.cachedResult } : o)) })) };
631
+ function f(i, o) {
632
+ r(i.length);
633
+ let _ = ci(i, { position: o, workbook: n, signal: t.signal, onWork: r, maximumLength: t.limits.workbookTextBytes ?? t.limits.outputBytes, maximumNodes: t.limits.workbookNodes ?? 1 / 0 });
634
+ if (!_.ok) return;
635
+ let a = false;
636
+ fi(_.document.root, (l2) => {
637
+ r(), l2.kind === "reference" && l2.label && (a = true);
638
+ }), a && (e.set(JSON.stringify([o.sheet, o.row, o.column, i]), _.document), c.push(o));
639
+ }
640
+ for (let i of n.sheets) for (let o of i.cells) r(), o.formula && f(o.formula, { sheet: i.id, row: o.row, column: o.column });
641
+ for (let i of n.names ?? []) {
642
+ r();
643
+ let o = n.sheets.find((_) => _.id === (i.position?.sheet ?? i.sheet) || _.name === (i.position?.sheet ?? i.sheet)) ?? n.sheets[0];
644
+ o && f(i.expression, { sheet: o.id, row: i.position?.row ?? 0, column: i.position?.column ?? 0 });
645
+ }
646
+ if (!c.length) return { book: n, documents: e };
647
+ let d = [];
648
+ return n = { ...n, sheets: n.sheets.map((i) => ({ ...i, cells: i.cells.map((o) => {
649
+ if (r(), !o.formula && !o.formulaGroup) return o;
650
+ let _ = i.labelRanges?.some((u2) => (r(), o.row >= u2.labels.startRow && o.row <= u2.labels.endRow && o.column >= u2.labels.startColumn && o.column <= u2.labels.endColumn));
651
+ if (!c.some((u2) => (r(), (u2.sheet !== i.id || u2.row !== o.row || u2.column !== o.column) && (_ || n.automaticLabelLookup && u2.sheet === i.id)))) return o;
652
+ let l2 = o.formulaGroup && i.formulaGroups?.some((u2) => (r(), u2.id === o.formulaGroup && u2.kind === "array"));
653
+ return (n.calculationMode !== "manual" || l2) && d.push({ sheet: i.id, row: o.row, column: o.column }), o;
654
+ }) })) }, d.length && (n = di(n, t, { force: false, queueVolatile: false }, void 0, { target: d, tick: r, onCycle() {
655
+ if (!n.iteration?.enabled) throw new li("unsupported-feature", "Unsupported ssconvert feature: circular formula label in OpenDocument output");
656
+ } })), { book: n, documents: e };
657
+ }
658
+ var ba = { opendoc_content_dtd: `START OFFICE OO_NS_OFFICE document-content
659
+ OFFICE SCRIPT OO_NS_OFFICE scripts
660
+ OFFICE OFFICE_FONTS OO_NS_OFFICE font-face-decls
661
+ OFFICE_FONTS FONT_FACE OO_NS_STYLE font-face
662
+ OFFICE OFFICE_STYLES OO_NS_OFFICE automatic-styles
663
+ OFFICE_STYLES PAGE_LAYOUT OO_NS_STYLE page-layout
664
+ PAGE_LAYOUT PAGE_LAYOUT_PROPS OO_NS_STYLE page-layout-properties
665
+ PAGE_LAYOUT_PROPS BACK_IMAGE OO_NS_STYLE background-image
666
+ PAGE_LAYOUT HEADER_STYLE OO_NS_STYLE header-style
667
+ HEADER_STYLE HEADER_PROPERTIES OO_NS_STYLE header-footer-properties
668
+ HEADER_PROPERTIES HF_BACK_IMAGE OO_NS_STYLE background-image
669
+ PAGE_LAYOUT FOOTER_STYLE OO_NS_STYLE footer-style
670
+ FOOTER_STYLE FOOTER_PROPERTIES OO_NS_STYLE header-footer-properties
671
+ FOOTER_PROPERTIES HF_BACK_IMAGE OO_NS_STYLE background-image
672
+ OFFICE_STYLES STYLE OO_NS_STYLE style
673
+ STYLE TABLE_CELL_PROPS OO_NS_STYLE table-cell-properties
674
+ STYLE TABLE_COL_PROPS OO_NS_STYLE table-column-properties
675
+ STYLE TABLE_ROW_PROPS OO_NS_STYLE table-row-properties
676
+ STYLE CHART_PROPS OO_NS_STYLE chart-properties
677
+ STYLE TEXT_PROPS OO_NS_STYLE text-properties
678
+ STYLE TABLE_PROPS OO_NS_STYLE table-properties
679
+ STYLE PARAGRAPH_PROPS OO_NS_STYLE paragraph-properties
680
+ PARAGRAPH_PROPS PARA_TABS OO_NS_STYLE tab-stops
681
+ STYLE GRAPHIC_PROPS OO_NS_STYLE graphic-properties
682
+ STYLE STYLE_MAP OO_NS_STYLE map
683
+ OFFICE_STYLES NUMBER_STYLE OO_NS_NUMBER number-style
684
+ NUMBER_STYLE NUMBER_STYLE_NUMBERFILL_CHARACTER OO_NS_LOCALC_EXT fill-character
685
+ NUMBER_STYLE LOEXT_TEXT OO_NS_LOCALC_EXT text
686
+ NUMBER_STYLE NUMBER_STYLE_NUMBER OO_NS_NUMBER number
687
+ NUMBER_STYLE_NUMBER NUMBER_EMBEDDED_TEXT OO_NS_NUMBER embedded-text
688
+ NUMBER_STYLE NUMBER_STYLE_TEXT OO_NS_NUMBER text
689
+ NUMBER_STYLE NUMBER_STYLE_FRACTION OO_NS_NUMBER fraction
690
+ NUMBER_STYLE NUMBER_SCI_STYLE_PROP OO_NS_NUMBER scientific-number
691
+ NUMBER_STYLE NUMBER_MAP OO_NS_STYLE map
692
+ NUMBER_STYLE NUMBER_TEXT_PROP OO_NS_STYLE text-properties
693
+ NUMBER_STYLE NUMBER_FILL_CHARACTER OO_NS_NUMBER fill-character
694
+ OFFICE_STYLES DATE_STYLE OO_NS_NUMBER date-style
695
+ DATE_STYLE DATE_DAY OO_NS_NUMBER day
696
+ DATE_STYLE DATE_MONTH OO_NS_NUMBER month
697
+ DATE_STYLE DATE_YEAR OO_NS_NUMBER year
698
+ DATE_STYLE DATE_ERA OO_NS_NUMBER era
699
+ DATE_STYLE DATE_DAY_OF_WEEK OO_NS_NUMBER day-of-week
700
+ DATE_STYLE DATE_WEEK_OF_YEAR OO_NS_NUMBER week-of-year
701
+ DATE_STYLE DATE_QUARTER OO_NS_NUMBER quarter
702
+ DATE_STYLE DATE_HOURS OO_NS_NUMBER hours
703
+ DATE_STYLE DATE_MINUTES OO_NS_NUMBER minutes
704
+ DATE_STYLE DATE_SECONDS OO_NS_NUMBER seconds
705
+ DATE_STYLE DATE_AM_PM OO_NS_NUMBER am-pm
706
+ DATE_STYLE DATE_TEXT OO_NS_NUMBER text
707
+ DATE_STYLE DATE_TEXT_PROP OO_NS_STYLE text-properties
708
+ DATE_STYLE DATE_MAP OO_NS_STYLE map
709
+ DATE_STYLE DATE_FILL_CHARACTER OO_NS_NUMBER fill-character
710
+ OFFICE_STYLES TIME_STYLE OO_NS_NUMBER time-style
711
+ TIME_STYLE TIME_HOURS OO_NS_NUMBER hours
712
+ TIME_STYLE TIME_MINUTES OO_NS_NUMBER minutes
713
+ TIME_STYLE TIME_SECONDS OO_NS_NUMBER seconds
714
+ TIME_STYLE TIME_AM_PM OO_NS_NUMBER am-pm
715
+ TIME_STYLE TIME_TEXT OO_NS_NUMBER text
716
+ TIME_STYLE TIME_TEXT_PROP OO_NS_STYLE text-properties
717
+ TIME_STYLE TIME_MAP OO_NS_STYLE map
718
+ TIME_STYLE TIME_FILL_CHARACTER OO_NS_NUMBER fill-character
719
+ OFFICE_STYLES STYLE_BOOL OO_NS_NUMBER boolean-style
720
+ STYLE_BOOL BOOL_PROP OO_NS_NUMBER boolean
721
+ OFFICE_STYLES STYLE_CURRENCY OO_NS_NUMBER currency-style
722
+ STYLE_CURRENCY CURRENCY_STYLE OO_NS_NUMBER number
723
+ STYLE_CURRENCY CURRENCY_STYLE_PROP OO_NS_STYLE properties
724
+ STYLE_CURRENCY CURRENCY_MAP OO_NS_STYLE map
725
+ STYLE_CURRENCY CURRENCY_SYMBOL OO_NS_NUMBER currency-symbol
726
+ STYLE_CURRENCY CURRENCY_TEXT OO_NS_NUMBER text
727
+ STYLE_CURRENCY CURRENCY_TEXT_PROP OO_NS_STYLE text-properties
728
+ STYLE_CURRENCY CURRENCY_FILL_CHARACTER OO_NS_NUMBER fill-character
729
+ OFFICE_STYLES STYLE_PERCENTAGE OO_NS_NUMBER percentage-style
730
+ STYLE_PERCENTAGE PERCENTAGE_STYLE_PROP OO_NS_NUMBER number
731
+ STYLE_PERCENTAGE PERCENTAGE_TEXT OO_NS_NUMBER text
732
+ STYLE_PERCENTAGE PERCENTAGE_MAP OO_NS_STYLE map
733
+ STYLE_PERCENTAGE PERCENTAGE_TEXT_PROP OO_NS_STYLE text-properties
734
+ STYLE_PERCENTAGE PERCENTAGE_FILL_CHARACTER OO_NS_NUMBER fill-character
735
+ OFFICE_STYLES STYLE_TEXT OO_NS_NUMBER text-style
736
+ STYLE_TEXT STYLE_TEXT_CONTENT OO_NS_NUMBER text-content
737
+ STYLE_TEXT STYLE_TEXT_PROP OO_NS_NUMBER text
738
+ STYLE_TEXT STYLE_TEXT_MAP OO_NS_STYLE map
739
+ OFFICE OFFICE_BODY OO_NS_OFFICE body
740
+ OFFICE_BODY SPREADSHEET OO_NS_OFFICE spreadsheet
741
+ SPREADSHEET DATA_PILOT_TABLES OO_NS_TABLE data-pilot-tables
742
+ DATA_PILOT_TABLES DATA_PILOT_TABLE OO_NS_TABLE data-pilot-table
743
+ DATA_PILOT_TABLE DPT_SOURCE_CELL_RANGE OO_NS_TABLE source-cell-range
744
+ DATA_PILOT_TABLE DATA_PILOT_FIELD OO_NS_TABLE data-pilot-field
745
+ DATA_PILOT_FIELD DATA_PILOT_LEVEL OO_NS_TABLE data-pilot-level
746
+ DATA_PILOT_LEVEL DATA_PILOT_LAYOUT_INFO OO_NS_TABLE data-pilot-layout-info
747
+ DATA_PILOT_LEVEL DATA_PILOT_SORT_INFO OO_NS_TABLE data-pilot-sort-info
748
+ DATA_PILOT_LEVEL DATA_PILOT_DISPLAY_INFO OO_NS_TABLE data-pilot-display-info
749
+ DATA_PILOT_LEVEL DATA_PILOT_MEMBERS OO_NS_TABLE data-pilot-members
750
+ DATA_PILOT_MEMBERS DATA_PILOT_MEMBER OO_NS_TABLE data-pilot-member
751
+ DATA_PILOT_LEVEL DATA_PILOT_SUBTOTALS OO_NS_TABLE data-pilot-subtotals
752
+ DATA_PILOT_SUBTOTALS DATA_PILOT_SUBTOTAL OO_NS_TABLE data-pilot-subtotal
753
+ DATA_PILOT_FIELD DATA_PILOT_GROUPS OO_NS_TABLE data-pilot-groups
754
+ SPREADSHEET CONTENT_VALIDATIONS OO_NS_TABLE content-validations
755
+ CONTENT_VALIDATIONS CONTENT_VALIDATION OO_NS_TABLE content-validation
756
+ CONTENT_VALIDATION ERROR_MESSAGE OO_NS_TABLE error-message
757
+ ERROR_MESSAGE TEXT_CONTENT OO_NS_TEXT p
758
+ TEXT_CONTENT TEXT_S OO_NS_TEXT s
759
+ TEXT_CONTENT TEXT_LINE_BREAK OO_NS_TEXT line-break
760
+ TEXT_CONTENT TEXT_TAB OO_NS_TEXT tab
761
+ TEXT_CONTENT TEXT_SPAN OO_NS_TEXT span
762
+ TEXT_SPAN TEXT_SPAN OO_NS_TEXT span
763
+ TEXT_SPAN TEXT_S OO_NS_TEXT s
764
+ TEXT_SPAN TEXT_LINE_BREAK OO_NS_TEXT line-break
765
+ TEXT_SPAN TEXT_TAB OO_NS_TEXT tab
766
+ TEXT_SPAN TEXT_ADDR OO_NS_TEXT a
767
+ TEXT_ADDR TEXT_S OO_NS_TEXT s
768
+ TEXT_ADDR TEXT_LINE_BREAK OO_NS_TEXT line-break
769
+ TEXT_ADDR TEXT_TAB OO_NS_TEXT tab
770
+ TEXT_ADDR TEXT_SPAN OO_NS_TEXT span
771
+ CONTENT_VALIDATION HELP_MESSAGE OO_NS_TABLE help-message
772
+ HELP_MESSAGE TEXT_CONTENT OO_NS_TEXT p
773
+ SPREADSHEET CALC_SETTINGS OO_NS_TABLE calculation-settings
774
+ CALC_SETTINGS ITERATION OO_NS_TABLE iteration
775
+ CALC_SETTINGS DATE_CONVENTION OO_NS_TABLE null-date
776
+ SPREADSHEET CHART OO_NS_CHART chart
777
+ OFFICE_BODY OFFICE_CHART OO_NS_OFFICE chart
778
+ OFFICE_CHART CHART_CHART OO_NS_CHART chart
779
+ CHART_CHART CHART_TABLE OO_NS_TABLE table
780
+ CHART_TABLE CHART_TABLE_ROWS OO_NS_TABLE table-rows
781
+ CHART_TABLE_ROWS CHART_TABLE_ROW OO_NS_TABLE table-row
782
+ CHART_TABLE_ROW CHART_TABLE_CELL OO_NS_TABLE table-cell
783
+ CHART_TABLE_CELL CHART_CELL_P OO_NS_TEXT p
784
+ CHART_TABLE_CELL CHART_CELL_DRAW_G OO_NS_DRAW g
785
+ CHART_CELL_DRAW_G CHART_CELL_SVG_DESC OO_NS_SVG desc
786
+ CHART_TABLE CHART_TABLE_COLS OO_NS_TABLE table-columns
787
+ CHART_TABLE_COLS CHART_TABLE_COL OO_NS_TABLE table-column
788
+ CHART_TABLE CHART_TABLE_HROWS OO_NS_TABLE table-header-rows
789
+ CHART_TABLE_HROWS CHART_TABLE_HROW OO_NS_TABLE table-header-row
790
+ CHART_TABLE_HROWS CHART_TABLE_ROW OO_NS_TABLE table-row
791
+ CHART_TABLE CHART_TABLE_HCOLS OO_NS_TABLE table-header-columns
792
+ CHART_TABLE_HCOLS CHART_TABLE_HCOL OO_NS_TABLE table-header-column
793
+ CHART_TABLE_HCOLS CHART_TABLE_COL OO_NS_TABLE table-column
794
+ CHART_CHART CHART_TITLE OO_NS_CHART title
795
+ CHART_TITLE TEXT_CONTENT OO_NS_TEXT p
796
+ CHART_CHART CHART_SUBTITLE OO_NS_CHART subtitle
797
+ CHART_SUBTITLE TEXT_CONTENT OO_NS_TEXT p
798
+ CHART_CHART CHART_FOOTER OO_NS_CHART footer
799
+ CHART_FOOTER TEXT_CONTENT OO_NS_TEXT p
800
+ CHART_CHART CHART_LEGEND OO_NS_CHART legend
801
+ CHART_LEGEND CHART_LEGEND_TITLE OO_GNUM_NS_EXT title
802
+ CHART_LEGEND_TITLE TEXT_CONTENT OO_NS_TEXT p
803
+ CHART_CHART CHART_COLOR_SCALE OO_GNUM_NS_EXT color-scale
804
+ CHART_CHART CHART_PLOT_AREA OO_NS_CHART plot-area
805
+ CHART_PLOT_AREA CHART_SERIES OO_NS_CHART series
806
+ CHART_SERIES SERIES_DOMAIN OO_NS_CHART domain
807
+ CHART_SERIES SERIES_DATA_PT OO_NS_CHART data-point
808
+ CHART_SERIES SERIES_DATA_ERR OO_NS_CHART error-indicator
809
+ CHART_SERIES SERIES_REGRESSION OO_NS_CHART regression-curve
810
+ SERIES_REGRESSION SERIES_REG_EQ OO_NS_CHART equation
811
+ SERIES_REGRESSION SERIES_REG_EQ_GNM OO_GNUM_NS_EXT equation
812
+ CHART_SERIES SERIES_REGRESSION_MULTIPLE OO_GNUM_NS_EXT regression-curve
813
+ SERIES_REGRESSION_MULTIPLE SERIES_REG_EQ OO_NS_CHART equation
814
+ SERIES_REGRESSION_MULTIPLE SERIES_REG_EQ_GNM OO_GNUM_NS_EXT equation
815
+ CHART_SERIES SERIES_DROPLINES OO_GNUM_NS_EXT droplines
816
+ CHART_SERIES SERIES_SERIESLINES OO_GNUM_NS_EXT serieslines
817
+ CHART_PLOT_AREA CHART_WALL OO_NS_CHART wall
818
+ CHART_PLOT_AREA CHART_FLOOR OO_NS_CHART floor
819
+ CHART_PLOT_AREA CHART_AXIS OO_NS_CHART axis
820
+ CHART_PLOT_AREA GNM_CHART_AXIS OO_GNUM_NS_EXT axis
821
+ CHART_AXIS CHART_AXIS_LINE OO_GNUM_NS_EXT axisline
822
+ CHART_AXIS CHART_GRID OO_NS_CHART grid
823
+ CHART_AXIS CHART_AXIS_CAT OO_NS_CHART categories
824
+ CHART_AXIS CHART_AXIS_TITLE OO_NS_CHART title
825
+ GNM_CHART_AXIS GNM_CHART_AXIS_LINE OO_GNUM_NS_EXT axisline
826
+ GNM_CHART_AXIS GNM_CHART_GRID OO_NS_CHART grid
827
+ GNM_CHART_AXIS GNM_CHART_AXIS_CAT OO_NS_CHART categories
828
+ GNM_CHART_AXIS GNM_CHART_AXIS_TITLE OO_NS_CHART title
829
+ CHART_AXIS_TITLE TEXT_CONTENT OO_NS_TEXT p
830
+ CHART_PLOT_AREA CHART_OOO_COORDINATE_REGION OO_NS_CHART_OOO coordinate-region
831
+ SPREADSHEET TABLE OO_NS_TABLE table
832
+ TABLE SHEET_SELECTIONS OO_GNUM_NS_EXT selections
833
+ SHEET_SELECTIONS SELECTION OO_GNUM_NS_EXT selection
834
+ TABLE TABLE_SOURCE OO_NS_TABLE table-source
835
+ TABLE TABLE_SHAPES OO_NS_TABLE shapes
836
+ TABLE_SHAPES DRAW_CONTROL_SHAPES OO_NS_DRAW control
837
+ TABLE_SHAPES DRAW_FRAME OO_NS_DRAW frame
838
+ TABLE_SHAPES DRAW_CAPTION OO_NS_DRAW caption
839
+ DRAW_CAPTION TEXT_CONTENT OO_NS_TEXT p
840
+ TABLE_SHAPES DRAW_CUSTOM_SHAPE OO_NS_DRAW custom-shape
841
+ DRAW_CUSTOM_SHAPE TEXT_CONTENT OO_NS_TEXT p
842
+ DRAW_CUSTOM_SHAPE DRAW_ENHANCED_GEOMETRY OO_NS_DRAW enhanced-geometry
843
+ DRAW_ENHANCED_GEOMETRY DRAW_ENHANCED_GEOMETRY_EQUATION OO_NS_DRAW equation
844
+ DRAW_ENHANCED_GEOMETRY DRAW_ENHANCED_GEOMETRY_HANDLE OO_NS_DRAW handle
845
+ TABLE_SHAPES DRAW_ELLIPSE OO_NS_DRAW ellipse
846
+ DRAW_ELLIPSE TEXT_CONTENT OO_NS_TEXT p
847
+ TABLE_SHAPES DRAW_LINE OO_NS_DRAW line
848
+ DRAW_LINE TEXT_CONTENT OO_NS_TEXT p
849
+ TABLE_SHAPES DRAW_RECT OO_NS_DRAW rect
850
+ DRAW_RECT TEXT_CONTENT OO_NS_TEXT p
851
+ TABLE FORMS OO_NS_OFFICE forms
852
+ FORMS FORM OO_NS_FORM form
853
+ FORM FORM_PROPERTIES OO_NS_FORM properties
854
+ FORM_PROPERTIES FORM_PROPERTY OO_NS_FORM property
855
+ FORM_PROPERTIES FORM_LIST_PROPERTY OO_NS_FORM list-property
856
+ FORM FORM_BUTTON OO_NS_FORM button
857
+ FORM_BUTTON FORM_PROPERTIES OO_NS_FORM properties
858
+ FORM_BUTTON BUTTON_OFFICE_EVENT_LISTENERS OO_NS_OFFICE event-listeners
859
+ BUTTON_OFFICE_EVENT_LISTENERS BUTTON_EVENT_LISTENER OO_NS_SCRIPT event-listener
860
+ FORM FORM_VALUE_RANGE OO_NS_FORM value-range
861
+ FORM_VALUE_RANGE FORM_PROPERTIES OO_NS_FORM properties
862
+ FORM FORM_CHECKBOX OO_NS_FORM checkbox
863
+ FORM_CHECKBOX FORM_PROPERTIES OO_NS_FORM properties
864
+ FORM FORM_RADIO OO_NS_FORM radio
865
+ FORM_RADIO FORM_PROPERTIES OO_NS_FORM properties
866
+ FORM FORM_LISTBOX OO_NS_FORM listbox
867
+ FORM_LISTBOX FORM_PROPERTIES OO_NS_FORM properties
868
+ FORM FORM_COMBOBOX OO_NS_FORM combobox
869
+ FORM_COMBOBOX FORM_PROPERTIES OO_NS_FORM properties
870
+ FORM FORM_GENERIC OO_NS_FORM generic-control
871
+ FORM_GENERIC FORM_PROPERTIES OO_NS_FORM properties
872
+ TABLE TABLE_ROWS OO_NS_TABLE table-rows
873
+ TABLE TABLE_H_ROWS OO_NS_TABLE table-header-rows
874
+ TABLE TABLE_COL OO_NS_TABLE table-column
875
+ TABLE TABLE_COLS OO_NS_TABLE table-columns
876
+ TABLE TABLE_H_COLS OO_NS_TABLE table-header-columns
877
+ TABLE_H_COLS TABLE_COL OO_NS_TABLE table-column
878
+ TABLE_COLS TABLE_COL OO_NS_TABLE table-column
879
+ TABLE TABLE_ROW OO_NS_TABLE table-row
880
+ TABLE SOFTPAGEBREAK OO_NS_TEXT soft-page-break
881
+ TABLE_ROWS TABLE_ROW OO_NS_TABLE table-row
882
+ TABLE_H_ROWS TABLE_ROW OO_NS_TABLE table-row
883
+ TABLE_ROWS SOFTPAGEBREAK OO_NS_TEXT soft-page-break
884
+ TABLE_H_ROWS SOFTPAGEBREAK OO_NS_TEXT soft-page-break
885
+ TABLE_ROW TABLE_CELL OO_NS_TABLE table-cell
886
+ TABLE_CELL DETECTIVE OO_NS_TABLE detective
887
+ DETECTIVE DETECTIVE_OPERATION OO_NS_TABLE operation
888
+ TABLE_CELL DRAW_CUSTOM_SHAPE OO_NS_DRAW custom-shape
889
+ TABLE_CELL CELL_TEXT OO_NS_TEXT p
890
+ CELL_TEXT DRAW_CUSTOM_SHAPE OO_NS_DRAW custom-shape
891
+ CELL_TEXT TEXT_S OO_NS_TEXT s
892
+ CELL_TEXT TEXT_ADDR OO_NS_TEXT a
893
+ CELL_TEXT TEXT_LINE_BREAK OO_NS_TEXT line-break
894
+ CELL_TEXT TEXT_TAB OO_NS_TEXT tab
895
+ CELL_TEXT TEXT_SPAN OO_NS_TEXT span
896
+ TABLE_CELL CELL_OBJECT OO_NS_DRAW object
897
+ TABLE_CELL CELL_GRAPHIC OO_NS_DRAW g
898
+ CELL_GRAPHIC CELL_GRAPHIC OO_NS_DRAW g
899
+ CELL_GRAPHIC DRAW_POLYLINE OO_NS_DRAW polyline
900
+ CELL_GRAPHIC DRAW_CONTROL OO_NS_DRAW control
901
+ TABLE_CELL DRAW_CONTROL OO_NS_DRAW control
902
+ TABLE_CELL DRAW_RECT OO_NS_DRAW rect
903
+ TABLE_CELL DRAW_LINE OO_NS_DRAW line
904
+ TABLE_CELL DRAW_ELLIPSE OO_NS_DRAW ellipse
905
+ TABLE_CELL DRAW_FRAME OO_NS_DRAW frame
906
+ DRAW_FRAME DRAW_OBJECT OO_NS_DRAW object
907
+ DRAW_OBJECT DRAW_OBJECT_TEXT OO_NS_TEXT p
908
+ DRAW_FRAME DRAW_IMAGE OO_NS_DRAW image
909
+ DRAW_IMAGE DRAW_IMAGE_TEXT OO_NS_TEXT p
910
+ DRAW_FRAME SVG_DESC OO_NS_SVG desc
911
+ DRAW_FRAME SVG_TITLE OO_NS_SVG title
912
+ DRAW_FRAME DRAW_TEXT_BOX OO_NS_DRAW text-box
913
+ DRAW_TEXT_BOX TEXT_CONTENT OO_NS_TEXT p
914
+ TABLE_CELL CELL_ANNOTATION OO_NS_OFFICE annotation
915
+ CELL_ANNOTATION TEXT_CONTENT OO_NS_TEXT p
916
+ CELL_ANNOTATION CELL_ANNOTATION_AUTHOR OO_NS_DC creator
917
+ CELL_ANNOTATION CELL_ANNOTATION_DATE OO_NS_DC date
918
+ CELL_ANNOTATION CELL_ANNOTATION_DATE_STRING OO_NS_META date-string
919
+ TABLE_ROW TABLE_COVERED_CELL OO_NS_TABLE covered-table-cell
920
+ TABLE_COVERED_CELL COVERED_CELL_TEXT OO_NS_TEXT p
921
+ COVERED_CELL_TEXT COVERED_CELL_TEXT_S OO_NS_TEXT s
922
+ TABLE_COVERED_CELL DRAW_CONTROL OO_NS_DRAW control
923
+ TABLE TABLE_COL_GROUP OO_NS_TABLE table-column-group
924
+ TABLE_COL_GROUP TABLE_COL_GROUP OO_NS_TABLE table-column-group
925
+ TABLE_COL_GROUP TABLE_H_COLS OO_NS_TABLE table-header-columns
926
+ TABLE_COL_GROUP TABLE_COL OO_NS_TABLE table-column
927
+ TABLE_ROW_GROUP TABLE_ROW_GROUP OO_NS_TABLE table-row-group
928
+ TABLE TABLE_ROW_GROUP OO_NS_TABLE table-row-group
929
+ TABLE_ROW_GROUP TABLE_ROW OO_NS_TABLE table-row
930
+ TABLE NAMED_EXPRS OO_NS_TABLE named-expressions
931
+ SPREADSHEET NAMED_EXPRS OO_NS_TABLE named-expressions
932
+ SPREADSHEET LABEL_RANGES OO_NS_TABLE label-ranges
933
+ LABEL_RANGES LABEL_RANGE OO_NS_TABLE label-range
934
+ NAMED_EXPRS NAMED_EXPR OO_NS_TABLE named-expression
935
+ NAMED_EXPRS NAMED_RANGE OO_NS_TABLE named-range
936
+ SPREADSHEET DB_RANGES OO_NS_TABLE database-ranges
937
+ DB_RANGES DB_RANGE OO_NS_TABLE database-range
938
+ DB_RANGE FILTER OO_NS_TABLE filter
939
+ FILTER FILTER_COND OO_NS_TABLE filter-condition
940
+ FILTER FILTER_AND OO_NS_TABLE filter-and
941
+ FILTER_AND FILTER_OR OO_NS_TABLE filter-or
942
+ FILTER_OR FILTER_COND_IGNORE OO_NS_TABLE filter-condition
943
+ FILTER_OR FILTER_AND_IGNORE OO_NS_TABLE filter-or
944
+ FILTER_AND FILTER_COND OO_NS_TABLE filter-condition
945
+ FILTER FILTER_OR OO_NS_TABLE filter-or
946
+ DB_RANGE TABLE_SORT OO_NS_TABLE sort
947
+ TABLE_SORT SORT_BY OO_NS_TABLE sort-by`, ooo1_content_dtd: `START OFFICE OO_NS_OFFICE document-content
948
+ OFFICE SCRIPT OO_NS_OFFICE script
949
+ OFFICE OFFICE_FONTS OO_NS_OFFICE font-decls
950
+ OFFICE_FONTS FONT_DECL OO_NS_STYLE font-decl
951
+ OFFICE OFFICE_STYLES OO_NS_OFFICE automatic-styles
952
+ OFFICE_STYLES PAGE_MASTER OO_NS_STYLE page-master
953
+ OFFICE_STYLES STYLE OO_NS_STYLE style
954
+ STYLE STYLE_PROP OO_NS_STYLE properties
955
+ STYLE_PROP STYLE_TAB_STOPS OO_NS_STYLE tab-stops
956
+ OFFICE_STYLES NUMBER_STYLE OO_NS_NUMBER number-style
957
+ NUMBER_STYLE NUMBER_STYLE_NUMBER OO_NS_NUMBER number
958
+ NUMBER_STYLE NUMBER_STYLE_TEXT OO_NS_NUMBER text
959
+ NUMBER_STYLE NUMBER_STYLE_FRACTION OO_NS_NUMBER fraction
960
+ NUMBER_STYLE NUMBER_SCI_STYLE_PROP OO_NS_NUMBER scientific-number
961
+ NUMBER_STYLE NUMBER_STYLE_PROP OO_NS_STYLE properties
962
+ NUMBER_STYLE NUMBER_MAP OO_NS_STYLE map
963
+ NUMBER_STYLE NUMBER_FILL_CHARACTER OO_NS_NUMBER fill-character
964
+ OFFICE_STYLES DATE_STYLE OO_NS_NUMBER date-style
965
+ DATE_STYLE DATE_DAY OO_NS_NUMBER day
966
+ DATE_STYLE DATE_MONTH OO_NS_NUMBER month
967
+ DATE_STYLE DATE_YEAR OO_NS_NUMBER year
968
+ DATE_STYLE DATE_ERA OO_NS_NUMBER era
969
+ DATE_STYLE DATE_DAY_OF_WEEK OO_NS_NUMBER day-of-week
970
+ DATE_STYLE DATE_WEEK_OF_YEAR OO_NS_NUMBER week-of-year
971
+ DATE_STYLE DATE_QUARTER OO_NS_NUMBER quarter
972
+ DATE_STYLE DATE_HOURS OO_NS_NUMBER hours
973
+ DATE_STYLE DATE_MINUTES OO_NS_NUMBER minutes
974
+ DATE_STYLE DATE_SECONDS OO_NS_NUMBER seconds
975
+ DATE_STYLE DATE_AM_PM OO_NS_NUMBER am-pm
976
+ DATE_STYLE DATE_TEXT OO_NS_NUMBER text
977
+ DATE_STYLE DATE_TEXT_PROP OO_NS_STYLE text-properties
978
+ DATE_STYLE DATE_MAP OO_NS_STYLE map
979
+ DATE_STYLE DATE_FILL_CHARACTER OO_NS_NUMBER fill-character
980
+ OFFICE_STYLES TIME_STYLE OO_NS_NUMBER time-style
981
+ TIME_STYLE TIME_HOURS OO_NS_NUMBER hours
982
+ TIME_STYLE TIME_MINUTES OO_NS_NUMBER minutes
983
+ TIME_STYLE TIME_SECONDS OO_NS_NUMBER seconds
984
+ TIME_STYLE TIME_AM_PM OO_NS_NUMBER am-pm
985
+ TIME_STYLE TIME_TEXT OO_NS_NUMBER text
986
+ TIME_STYLE TIME_TEXT_PROP OO_NS_STYLE text-properties
987
+ TIME_STYLE TIME_MAP OO_NS_STYLE map
988
+ TIME_STYLE TIME_FILL_CHARACTER OO_NS_NUMBER fill-character
989
+ OFFICE_STYLES STYLE_BOOL OO_NS_NUMBER boolean-style
990
+ STYLE_BOOL BOOL_PROP OO_NS_NUMBER boolean
991
+ OFFICE_STYLES STYLE_CURRENCY OO_NS_NUMBER currency-style
992
+ STYLE_CURRENCY CURRENCY_STYLE OO_NS_NUMBER number
993
+ STYLE_CURRENCY CURRENCY_STYLE_PROP OO_NS_STYLE properties
994
+ STYLE_CURRENCY CURRENCY_MAP OO_NS_STYLE map
995
+ STYLE_CURRENCY CURRENCY_SYMBOL OO_NS_NUMBER currency-symbol
996
+ STYLE_CURRENCY CURRENCY_TEXT OO_NS_NUMBER text
997
+ STYLE_CURRENCY CURRENCY_FILL_CHARACTER OO_NS_NUMBER fill-character
998
+ OFFICE_STYLES STYLE_PERCENTAGE OO_NS_NUMBER percentage-style
999
+ STYLE_PERCENTAGE PERCENTAGE_STYLE_PROP OO_NS_NUMBER number
1000
+ STYLE_PERCENTAGE PERCENTAGE_TEXT OO_NS_NUMBER text
1001
+ STYLE_PERCENTAGE PERCENTAGE_FILL_CHARACTER OO_NS_NUMBER fill-character
1002
+ OFFICE_STYLES STYLE_TEXT OO_NS_NUMBER text-style
1003
+ STYLE_TEXT STYLE_TEXT_CONTENT OO_NS_NUMBER text-content
1004
+ STYLE_TEXT STYLE_TEXT_PROP OO_NS_NUMBER text
1005
+ STYLE_TEXT STYLE_TEXT_MAP OO_NS_STYLE map
1006
+ OFFICE OFFICE_BODY OO_NS_OFFICE body
1007
+ OFFICE_BODY TABLE_CALC_SETTINGS OO_NS_TABLE calculation-settings
1008
+ TABLE_CALC_SETTINGS DATE_CONVENTION OO_NS_TABLE null-date
1009
+ TABLE_CALC_SETTINGS ITERATION OO_NS_TABLE iteration
1010
+ OFFICE_BODY VALIDATIONS OO_NS_TABLE content-validations
1011
+ VALIDATIONS VALIDATION OO_NS_TABLE content-validation
1012
+ VALIDATION VALIDATION_MSG OO_NS_TABLE error-message
1013
+ OFFICE_BODY TABLE OO_NS_TABLE table
1014
+ TABLE FORMS OO_NS_OFFICE forms
1015
+ TABLE TABLE_COL OO_NS_TABLE table-column
1016
+ TABLE TABLE_ROW OO_NS_TABLE table-row
1017
+ TABLE_ROW TABLE_CELL OO_NS_TABLE table-cell
1018
+ TABLE_CELL CELL_CONTROL OO_NS_DRAW control
1019
+ TABLE_CELL CELL_ANNOTATION OO_NS_OFFICE annotation
1020
+ CELL_ANNOTATION ANNOTATION_TEXT OO_NS_TEXT p
1021
+ CELL_ANNOTATION CELL_ANNOTATION_AUTHOR OO_NS_DC creator
1022
+ CELL_ANNOTATION CELL_ANNOTATION_DATE OO_NS_DC date
1023
+ CELL_ANNOTATION CELL_ANNOTATION_DATE_STRING OO_NS_META date-string
1024
+ ANNOTATION_TEXT ANNOTATION_TEXT OO_NS_TEXT span
1025
+ ANNOTATION_TEXT ANNOTATION_TEXT OO_NS_TEXT a
1026
+ ANNOTATION_TEXT ANNOTATION_SPACE OO_NS_TEXT s
1027
+ ANNOTATION_TEXT ANNOTATION_TAB OO_NS_TEXT tab
1028
+ ANNOTATION_TEXT ANNOTATION_TAB OO_NS_TEXT tab-stop
1029
+ ANNOTATION_TEXT ANNOTATION_BREAK OO_NS_TEXT line-break
1030
+ TABLE_CELL CELL_TEXT OO_NS_TEXT p
1031
+ CELL_TEXT CELL_TEXT_S OO_NS_TEXT s
1032
+ CELL_TEXT CELL_TEXT_SPAN OO_NS_TEXT span
1033
+ TABLE_CELL CELL_OBJECT OO_NS_DRAW object
1034
+ TABLE_CELL CELL_GRAPHIC OO_NS_DRAW g
1035
+ CELL_GRAPHIC CELL_GRAPHIC OO_NS_DRAW g
1036
+ CELL_GRAPHIC DRAW_POLYLINE OO_NS_DRAW polyline
1037
+ CELL_GRAPHIC CELL_CONTROL OO_NS_DRAW control
1038
+ TABLE_CELL DRAW_LINE OO_NS_DRAW line
1039
+ DRAW_LINE IGNORED_TEXT_CONTENT OO_NS_TEXT p
1040
+ TABLE_ROW TABLE_COVERED_CELL OO_NS_TABLE covered-table-cell
1041
+ TABLE_COVERED_CELL DRAW_LINE OO_NS_DRAW line
1042
+ TABLE TABLE_COL_GROUP OO_NS_TABLE table-column-group
1043
+ TABLE_COL_GROUP TABLE_COL_GROUP OO_NS_TABLE table-column-group
1044
+ TABLE_COL_GROUP TABLE_COL OO_NS_TABLE table-column
1045
+ TABLE TABLE_ROW_GROUP OO_NS_TABLE table-row-group
1046
+ TABLE_ROW_GROUP TABLE_ROW_GROUP OO_NS_TABLE table-row-group
1047
+ TABLE_ROW_GROUP TABLE_ROW OO_NS_TABLE table-row
1048
+ OFFICE_BODY NAMED_EXPRS OO_NS_TABLE named-expressions
1049
+ OFFICE_BODY LABEL_RANGES OO_NS_TABLE label-ranges
1050
+ LABEL_RANGES LABEL_RANGE OO_NS_TABLE label-range
1051
+ NAMED_EXPRS NAMED_EXPR OO_NS_TABLE named-expression
1052
+ NAMED_EXPRS NAMED_RANGE OO_NS_TABLE named-range
1053
+ OFFICE_BODY DB_RANGES OO_NS_TABLE database-ranges
1054
+ DB_RANGES DB_RANGE OO_NS_TABLE database-range
1055
+ DB_RANGE TABLE_SORT OO_NS_TABLE sort
1056
+ TABLE_SORT SORT_BY OO_NS_TABLE sort-by`, styles_dtd: `START OFFICE_FONTS_OOO1 OO_NS_OFFICE font-decls
1057
+ OFFICE_FONTS_OOO1 FONT_DECL_OOO1 OO_NS_STYLE font-decl
1058
+ START OFFICE_DOC_STYLES OO_NS_OFFICE document-styles
1059
+ OFFICE_DOC_STYLES OFFICE_FONTS_OOO1 OO_NS_OFFICE font-decls
1060
+ OFFICE_DOC_STYLES OFFICE_FONTS OO_NS_OFFICE font-face-decls
1061
+ OFFICE_FONTS FONT_DECL OO_NS_STYLE font-face
1062
+ OFFICE_DOC_STYLES OFFICE_STYLES OO_NS_OFFICE styles
1063
+ OFFICE_STYLES FILLIMAGE OO_NS_DRAW fill-image
1064
+ OFFICE_STYLES DASH OO_NS_DRAW stroke-dash
1065
+ OFFICE_STYLES HATCH OO_NS_DRAW hatch
1066
+ OFFICE_STYLES GRADIENT OO_NS_DRAW gradient
1067
+ OFFICE_STYLES MARKER OO_NS_DRAW marker
1068
+ OFFICE_STYLES STYLE OO_NS_STYLE style
1069
+ STYLE TABLE_CELL_PROPS OO_NS_STYLE table-cell-properties
1070
+ STYLE TEXT_PROP OO_NS_STYLE text-properties
1071
+ STYLE PARAGRAPH_PROPS OO_NS_STYLE paragraph-properties
1072
+ PARAGRAPH_PROPS PARA_TABS OO_NS_STYLE tab-stops
1073
+ STYLE STYLE_PROP OO_NS_STYLE properties
1074
+ STYLE_PROP STYLE_TAB_STOPS OO_NS_STYLE tab-stops
1075
+ OFFICE_STYLES DEFAULT_STYLE OO_NS_STYLE default-style
1076
+ DEFAULT_STYLE DEFAULT_TABLE_CELL_PROPS OO_NS_STYLE table-cell-properties
1077
+ DEFAULT_STYLE DEFAULT_TEXT_PROP OO_NS_STYLE text-properties
1078
+ DEFAULT_STYLE DEFAULT_GRAPHIC_PROPS OO_NS_STYLE graphic-properties
1079
+ DEFAULT_STYLE DEFAULT_PARAGRAPH_PROPS OO_NS_STYLE paragraph-properties
1080
+ DEFAULT_PARAGRAPH_PROPS DEFAULT_PARA_TABS OO_NS_STYLE tab-stops
1081
+ DEFAULT_STYLE DEFAULT_STYLE_PROP OO_NS_STYLE properties
1082
+ DEFAULT_STYLE_PROP STYLE_TAB_STOPS OO_NS_STYLE tab-stops
1083
+ DEFAULT_STYLE DEFAULT_TABLE_COL_PROPS OO_NS_STYLE table-column-properties
1084
+ DEFAULT_STYLE DEFAULT_TABLE_ROW_PROPS OO_NS_STYLE table-row-properties
1085
+ OFFICE_STYLES NUMBER_STYLE OO_NS_NUMBER number-style
1086
+ NUMBER_STYLE NUMBER_STYLE_NUMBERFILL_CHARACTER OO_NS_LOCALC_EXT fill-character
1087
+ NUMBER_STYLE LOEXT_TEXT OO_NS_LOCALC_EXT text
1088
+ NUMBER_STYLE NUMBER_STYLE_NUMBER OO_NS_NUMBER number
1089
+ NUMBER_STYLE_NUMBER NUMBER_EMBEDDED_TEXT OO_NS_NUMBER embedded-text
1090
+ NUMBER_STYLE NUMBER_STYLE_TEXT OO_NS_NUMBER text
1091
+ NUMBER_STYLE_TEXT FORMAT_TEXT_INVISIBLE OO_GNUM_NS_EXT invisible
1092
+ NUMBER_STYLE_TEXT FORMAT_TEXT_REPEATED OO_GNUM_NS_EXT repeated
1093
+ NUMBER_STYLE NUMBER_STYLE_FRACTION OO_NS_NUMBER fraction
1094
+ NUMBER_STYLE NUMBER_SCI_STYLE_PROP OO_NS_NUMBER scientific-number
1095
+ NUMBER_STYLE NUMBER_STYLE_PROP OO_NS_STYLE properties
1096
+ NUMBER_STYLE NUMBER_MAP OO_NS_STYLE map
1097
+ NUMBER_STYLE NUMBER_TEXT_PROP OO_NS_STYLE text-properties
1098
+ NUMBER_STYLE FORMAT_TEXT_INVISIBLE OO_GNUM_NS_EXT invisible
1099
+ NUMBER_STYLE NUMBER_FILL_CHARACTER OO_NS_NUMBER fill-character
1100
+ OFFICE_STYLES DATE_STYLE OO_NS_NUMBER date-style
1101
+ DATE_STYLE DATE_DAY OO_NS_NUMBER day
1102
+ DATE_STYLE DATE_MONTH OO_NS_NUMBER month
1103
+ DATE_STYLE DATE_YEAR OO_NS_NUMBER year
1104
+ DATE_STYLE DATE_ERA OO_NS_NUMBER era
1105
+ DATE_STYLE DATE_DAY_OF_WEEK OO_NS_NUMBER day-of-week
1106
+ DATE_STYLE DATE_WEEK_OF_YEAR OO_NS_NUMBER week-of-year
1107
+ DATE_STYLE DATE_QUARTER OO_NS_NUMBER quarter
1108
+ DATE_STYLE DATE_HOURS OO_NS_NUMBER hours
1109
+ DATE_STYLE DATE_MINUTES OO_NS_NUMBER minutes
1110
+ DATE_STYLE DATE_SECONDS OO_NS_NUMBER seconds
1111
+ DATE_STYLE DATE_AM_PM OO_NS_NUMBER am-pm
1112
+ DATE_STYLE DATE_TEXT OO_NS_NUMBER text
1113
+ DATE_STYLE DATE_TEXT_PROP OO_NS_STYLE text-properties
1114
+ DATE_STYLE DATE_MAP OO_NS_STYLE map
1115
+ DATE_STYLE DATE_FILL_CHARACTER OO_NS_NUMBER fill-character
1116
+ OFFICE_STYLES TIME_STYLE OO_NS_NUMBER time-style
1117
+ TIME_STYLE TIME_HOURS OO_NS_NUMBER hours
1118
+ TIME_STYLE TIME_MINUTES OO_NS_NUMBER minutes
1119
+ TIME_STYLE TIME_SECONDS OO_NS_NUMBER seconds
1120
+ TIME_STYLE TIME_AM_PM OO_NS_NUMBER am-pm
1121
+ TIME_STYLE TIME_TEXT OO_NS_NUMBER text
1122
+ TIME_STYLE TIME_TEXT_PROP OO_NS_STYLE text-properties
1123
+ TIME_STYLE TIME_MAP OO_NS_STYLE map
1124
+ TIME_STYLE TIME_FILL_CHARACTER OO_NS_NUMBER fill-character
1125
+ OFFICE_STYLES STYLE_BOOL OO_NS_NUMBER boolean-style
1126
+ STYLE_BOOL BOOL_PROP OO_NS_NUMBER boolean
1127
+ OFFICE_STYLES STYLE_CURRENCY OO_NS_NUMBER currency-style
1128
+ STYLE_CURRENCY CURRENCY_STYLE OO_NS_NUMBER number
1129
+ STYLE_CURRENCY CURRENCY_STYLE_PROP OO_NS_STYLE properties
1130
+ STYLE_CURRENCY CURRENCY_MAP OO_NS_STYLE map
1131
+ STYLE_CURRENCY CURRENCY_SYMBOL OO_NS_NUMBER currency-symbol
1132
+ STYLE_CURRENCY CURRENCY_TEXT OO_NS_NUMBER text
1133
+ CURRENCY_TEXT FORMAT_TEXT_INVISIBLE OO_GNUM_NS_EXT invisible
1134
+ CURRENCY_TEXT FORMAT_TEXT_REPEATED OO_GNUM_NS_EXT repeated
1135
+ STYLE_CURRENCY CURRENCY_TEXT_PROP OO_NS_STYLE text-properties
1136
+ STYLE_CURRENCY CURRENCY_FILL_CHARACTER OO_NS_NUMBER fill-character
1137
+ STYLE_CURRENCY CURRENCY_FILL_CHARACTER2 OO_NS_LOCALC_EXT fill-character
1138
+ OFFICE_STYLES STYLE_PERCENTAGE OO_NS_NUMBER percentage-style
1139
+ STYLE_PERCENTAGE PERCENTAGE_STYLE_PROP OO_NS_NUMBER number
1140
+ STYLE_PERCENTAGE PERCENTAGE_TEXT OO_NS_NUMBER text
1141
+ STYLE_PERCENTAGE PERCENTAGE_MAP OO_NS_STYLE map
1142
+ STYLE_PERCENTAGE PERCENTAGE_TEXT_PROP OO_NS_STYLE text-properties
1143
+ STYLE_PERCENTAGE PERCENTAGE_FILL_CHARACTER OO_NS_NUMBER fill-character
1144
+ OFFICE_STYLES STYLE_TEXT OO_NS_NUMBER text-style
1145
+ STYLE_TEXT STYLE_TEXT_CONTENT OO_NS_NUMBER text-content
1146
+ STYLE_TEXT STYLE_TEXT_PROP OO_NS_NUMBER text
1147
+ STYLE_TEXT_PROP FORMAT_TEXT_INVISIBLE OO_GNUM_NS_EXT invisible
1148
+ STYLE_TEXT STYLE_TEXT_MAP OO_NS_STYLE map
1149
+ STYLE_TEXT STYLE_TEXT_TEXT_PROP OO_NS_STYLE text-properties
1150
+ OFFICE_DOC_STYLES AUTOMATIC_STYLES OO_NS_OFFICE automatic-styles
1151
+ AUTOMATIC_STYLES PAGE_MASTER OO_NS_STYLE page-master
1152
+ PAGE_MASTER PAGE_MASTER_PROPS OO_NS_STYLE properties
1153
+ PAGE_MASTER_PROPS PAGE_MASTER_BG_IMAGE OO_NS_STYLE background-image
1154
+ PAGE_MASTER PAGE_MASTER_HEADER OO_NS_STYLE header-style
1155
+ PAGE_MASTER_HEADER PAGE_MASTER_PROPS OO_NS_STYLE properties
1156
+ PAGE_MASTER PAGE_MASTER_FOOTER OO_NS_STYLE footer-style
1157
+ PAGE_MASTER_FOOTER PAGE_MASTER_PROPS OO_NS_STYLE properties
1158
+ AUTOMATIC_STYLES STYLE OO_NS_STYLE style
1159
+ AUTOMATIC_STYLES PAGE_LAYOUT OO_NS_STYLE page-layout
1160
+ PAGE_LAYOUT PAGE_LAYOUT_PROPS OO_NS_STYLE page-layout-properties
1161
+ PAGE_LAYOUT_PROPS BACK_IMAGE OO_NS_STYLE background-image
1162
+ PAGE_LAYOUT HEADER_STYLE OO_NS_STYLE header-style
1163
+ HEADER_STYLE HEADER_PROPERTIES OO_NS_STYLE header-footer-properties
1164
+ HEADER_PROPERTIES HF_BACK_IMAGE OO_NS_STYLE background-image
1165
+ PAGE_LAYOUT FOOTER_STYLE OO_NS_STYLE footer-style
1166
+ FOOTER_STYLE FOOTER_PROPERTIES OO_NS_STYLE header-footer-properties
1167
+ FOOTER_PROPERTIES HF_BACK_IMAGE OO_NS_STYLE background-image
1168
+ AUTOMATIC_STYLES NUMBER_STYLE OO_NS_NUMBER number-style
1169
+ AUTOMATIC_STYLES DATE_STYLE OO_NS_NUMBER date-style
1170
+ AUTOMATIC_STYLES TIME_STYLE OO_NS_NUMBER time-style
1171
+ AUTOMATIC_STYLES STYLE_BOOL OO_NS_NUMBER boolean-style
1172
+ AUTOMATIC_STYLES STYLE_CURRENCY OO_NS_NUMBER currency-style
1173
+ AUTOMATIC_STYLES STYLE_PERCENTAGE OO_NS_NUMBER percentage-style
1174
+ AUTOMATIC_STYLES STYLE_TEXT OO_NS_NUMBER text-style
1175
+ OFFICE_DOC_STYLES MASTER_STYLES OO_NS_OFFICE master-styles
1176
+ MASTER_STYLES MASTER_PAGE OO_NS_STYLE master-page
1177
+ MASTER_PAGE MASTER_PAGE_HEADER_LEFT OO_NS_STYLE header-left
1178
+ MASTER_PAGE_HEADER_LEFT MASTER_PAGE_HEADER_FOOTER_LEFT_P OO_NS_TEXT p
1179
+ MASTER_PAGE_HEADER_FOOTER_LEFT_P MASTER_PAGE_HEADER_FOOTER_LEFT_SPAN OO_NS_TEXT span
1180
+ MASTER_PAGE_HEADER_FOOTER_LEFT_SPAN MASTER_PAGE_HEADER_FOOTER_LEFT_PAGE_NUMBER OO_NS_TEXT page-number
1181
+ MASTER_PAGE_HEADER_FOOTER_LEFT_SPAN MASTER_PAGE_HEADER_FOOTER_LEFT_SHEET_NAME OO_NS_TEXT sheet-name
1182
+ MASTER_PAGE MASTER_PAGE_FOOTER_LEFT OO_NS_STYLE footer-left
1183
+ MASTER_PAGE_FOOTER_LEFT MASTER_PAGE_HEADER_FOOTER_LEFT_P OO_NS_TEXT p
1184
+ MASTER_PAGE MASTER_PAGE_HEADER OO_NS_STYLE header
1185
+ MASTER_PAGE_HEADER MASTER_PAGE_HF_R_LEFT OO_NS_STYLE region-left
1186
+ MASTER_PAGE_HF_R_LEFT MASTER_PAGE_HF_P OO_NS_TEXT p
1187
+ MASTER_PAGE_HF_P TEXT_S OO_NS_TEXT s
1188
+ MASTER_PAGE_HF_P TEXT_LINE_BREAK OO_NS_TEXT line-break
1189
+ MASTER_PAGE_HF_P TEXT_TAB OO_NS_TEXT tab
1190
+ MASTER_PAGE_HF_P HF_TITLE OO_NS_TEXT title
1191
+ MASTER_PAGE_HF_P HF_DATE OO_NS_TEXT date
1192
+ MASTER_PAGE_HF_P HF_TIME OO_NS_TEXT time
1193
+ MASTER_PAGE_HF_P HF_SHEET_NAME OO_NS_TEXT sheet-name
1194
+ MASTER_PAGE_HF_P HF_PAGE_NUMBER OO_NS_TEXT page-number
1195
+ MASTER_PAGE_HF_P HF_PAGE_COUNT OO_NS_TEXT page-count
1196
+ MASTER_PAGE_HF_P HF_FILE_NAME OO_NS_TEXT file-name
1197
+ MASTER_PAGE_HF_P HF_EXPRESSION OO_NS_TEXT expression
1198
+ MASTER_PAGE_HF_P TEXT_SPAN OO_NS_TEXT span
1199
+ TEXT_SPAN TEXT_SPAN OO_NS_TEXT span
1200
+ TEXT_SPAN TEXT_S OO_NS_TEXT s
1201
+ TEXT_SPAN TEXT_LINE_BREAK OO_NS_TEXT line-break
1202
+ TEXT_SPAN TEXT_TAB OO_NS_TEXT tab
1203
+ TEXT_SPAN HF_SHEET_NAME OO_NS_TEXT sheet-name
1204
+ TEXT_SPAN HF_PAGE_NUMBER OO_NS_TEXT page-number
1205
+ TEXT_SPAN HF_PAGE_COUNT OO_NS_TEXT page-count
1206
+ TEXT_SPAN HF_FILE_NAME OO_NS_TEXT file-name
1207
+ TEXT_SPAN HF_EXPRESSION OO_NS_TEXT expression
1208
+ MASTER_PAGE_HEADER MASTER_PAGE_HF_R_RIGHT OO_NS_STYLE region-right
1209
+ MASTER_PAGE_HF_R_RIGHT MASTER_PAGE_HF_P OO_NS_TEXT p
1210
+ MASTER_PAGE_HEADER MASTER_PAGE_HF_R_CENTER OO_NS_STYLE region-center
1211
+ MASTER_PAGE_HF_R_CENTER MASTER_PAGE_HF_P OO_NS_TEXT p
1212
+ MASTER_PAGE_HEADER MASTER_PAGE_HF_P OO_NS_TEXT p
1213
+ MASTER_PAGE MASTER_PAGE_FOOTER OO_NS_STYLE footer
1214
+ MASTER_PAGE_FOOTER MASTER_PAGE_HF_R_LEFT OO_NS_STYLE region-left
1215
+ MASTER_PAGE_FOOTER MASTER_PAGE_HF_R_RIGHT OO_NS_STYLE region-right
1216
+ MASTER_PAGE_FOOTER MASTER_PAGE_HF_R_CENTER OO_NS_STYLE region-center
1217
+ MASTER_PAGE_FOOTER MASTER_PAGE_HF_P OO_NS_TEXT p` };
1218
+ function In(n, t) {
1219
+ if (n === void 0) return;
1220
+ t(n.length);
1221
+ let r = "";
1222
+ for (let e of n.trim()) {
1223
+ if (` \r
1224
+ `.includes(e)) break;
1225
+ r += e;
1226
+ }
1227
+ if (r === "sub") return -1;
1228
+ if (r === "super") return 1;
1229
+ if (r.length > 1 && r.endsWith("%") && Number(r.slice(0, -1)) === 0) return 0;
1230
+ }
1231
+ var On = { text: [un.text, "http://openoffice.org/2000/text"], style: [un.style, "http://openoffice.org/2000/style"], fo: [un.fo, "http://www.w3.org/1999/XSL/Format"], svg: [un.svg, "http://www.w3.org/2000/svg"], gnm: [un.gnm] };
1232
+ function Ge(n, t, r) {
1233
+ return n.attributes.find((e) => e.localName === t && On[r].includes(e.namespace))?.value;
1234
+ }
1235
+ function _i(n) {
1236
+ if (!n) return;
1237
+ let r = { pt: 1, pc: 12, in: 72, cm: 72 / 2.54, mm: 72 / 25.4 }[n.slice(-2)], e = Number(n.slice(0, -2));
1238
+ return r && Number.isFinite(e) && e >= 0 ? e * r : void 0;
1239
+ }
1240
+ function Mn(n, t) {
1241
+ let r = /* @__PURE__ */ new Map(), e = /* @__PURE__ */ new Map();
1242
+ for (let d of n) for (let i of d.children) for (let o of i.children) {
1243
+ if (t(), !On.style.includes(o.namespace)) continue;
1244
+ let _ = Ge(o, "name", "style");
1245
+ if (_ && (["styles", "automatic-styles"].includes(i.localName) && o.localName === "style" && r.set(Ge(o, "family", "style") + ":" + _, o), ["font-face-decls", "font-decls"].includes(i.localName))) {
1246
+ let a = Ge(o, "font-family", "svg") ?? Ge(o, "font-family", "fo");
1247
+ a !== void 0 && e.set(_, a.length >= 2 && ["'", '"'].includes(a[0]) && a.at(-1) === a[0] ? a.slice(1, -1) : a);
1248
+ }
1249
+ }
1250
+ let c = /* @__PURE__ */ new Map(), m = /* @__PURE__ */ new Set();
1251
+ function f(d, i) {
1252
+ if (!d) return {};
1253
+ t();
1254
+ let o = i + ":" + d, _ = c.get(o);
1255
+ if (_) return _;
1256
+ let a = r.get(o);
1257
+ if (!a) return {};
1258
+ if (m.has(o)) throw new La("io", "E Invalid OpenDocument: cyclic text style inheritance");
1259
+ m.add(o);
1260
+ try {
1261
+ let l2 = { ...f(Ge(a, "parent-style-name", "style"), i) };
1262
+ for (let u2 of a.children) {
1263
+ if (t(), !On.style.includes(u2.namespace) || !["text-properties", "properties"].includes(u2.localName)) continue;
1264
+ let S = Ge(u2, "font-name", "style"), b = Ge(u2, "font-family", "fo") ?? (S ? e.get(S) ?? S : void 0);
1265
+ b !== void 0 && (l2.family = b);
1266
+ let g2 = _i(Ge(u2, "font-size", "fo"));
1267
+ g2 !== void 0 && (l2.size = Math.round(g2 * 1024));
1268
+ let A = Ge(u2, "font-weight", "fo");
1269
+ if (A !== void 0) {
1270
+ let s = A === "normal" ? 400 : A === "bold" ? 700 : Number(A);
1271
+ Number.isInteger(s) && s >= 100 && s <= 900 && (l2.bold = (s - 400) / 300);
1272
+ }
1273
+ let h = Ge(u2, "font-style", "fo");
1274
+ h !== void 0 && (l2.italic = ["italic", "oblique"].includes(h) ? 1 : 0);
1275
+ let R = Ge(u2, "text-line-through-style", "style");
1276
+ R !== void 0 && (l2.strikethrough = R === "none" ? 0 : 1);
1277
+ let N = In(Ge(u2, "text-position", "style"), t);
1278
+ N !== void 0 && (l2.subscript = N === -1 ? 1 : 0, l2.superscript = N === 1 ? 1 : 0);
1279
+ let y = Ge(u2, "text-underline-style", "style"), F = Ge(u2, "text-underline-type", "style");
1280
+ if (y !== void 0 || F === "none") {
1281
+ let s = F === "double" || Ge(u2, "text-underline-width", "style") === "bold", O = Ge(u2, "text-underline-placement", "gnm") === "low";
1282
+ l2.underline = y === "none" || F === "none" ? "none" : O ? s ? "doubleAccounting" : "low" : s ? "double" : "single";
1283
+ }
1284
+ let w = Ge(u2, "color", "fo");
1285
+ w?.length === 7 && w[0] === "#" && [...w.slice(1)].every((s) => "0123456789abcdefABCDEF".includes(s)) && (l2.color = [w.slice(1, 3), w.slice(3, 5), w.slice(5)].map((s) => s.toUpperCase()).join("x"));
1286
+ }
1287
+ return c.set(o, l2), l2;
1288
+ } finally {
1289
+ m.delete(o);
1290
+ }
1291
+ }
1292
+ return (d) => {
1293
+ let i = "", o = 0, _ = [];
1294
+ function a(S, b) {
1295
+ t(S.length);
1296
+ let g2 = o;
1297
+ o += new TextEncoder().encode(S).length, i += S;
1298
+ let A = Object.keys(b);
1299
+ if (t(A.length), o === g2 || !A.length) return;
1300
+ let h = _.at(-1);
1301
+ h?.end === g2 && Object.keys(h.attributes).length === A.length && A.every((R) => h.attributes[R] === b[R]) ? _[_.length - 1] = { ...h, end: o } : _.push({ start: g2, end: o, attributes: b });
1302
+ }
1303
+ function l2(S, b) {
1304
+ t();
1305
+ let g2 = { ...b, ...f(Ge(S, "style-name", "text"), S.localName === "p" ? "paragraph" : "text") };
1306
+ for (let A of S.content) if (t(), A.kind === "text" || A.kind === "cdata") a(A.text, g2);
1307
+ else if (A.kind === "element" && On.text.includes(A.namespace)) {
1308
+ if (["span", "a"].includes(A.localName)) l2(A, g2);
1309
+ else if (["tab", "tab-stop", "line-break"].includes(A.localName)) a(A.localName === "line-break" ? `
1310
+ ` : " ", g2);
1311
+ else if (A.localName === "s") {
1312
+ let h = Number(Ge(A, "c", "text") ?? "1");
1313
+ if (!Number.isSafeInteger(h) || h < 0) throw new La("io", "E Invalid OpenDocument: invalid text space count");
1314
+ t(h), a(" ".repeat(h), g2);
1315
+ }
1316
+ }
1317
+ }
1318
+ let u2 = true;
1319
+ for (let S of d.children) On.text.includes(S.namespace) && S.localName === "p" && (u2 || a(`
1320
+ `, {}), u2 = false, l2(S, {}));
1321
+ return { value: i, ..._.length ? { richText: _ } : {} };
1322
+ };
1323
+ }
1324
+ async function Xn(n, t, r, e, c, m, f = true) {
1325
+ let d = "";
1326
+ for (let { text: i, attributes: o } of Ei(n, t, r.charge)) {
1327
+ let _ = {};
1328
+ if (typeof o.family == "string" && (_["style:font-name"] = await e.register("fonts", "style:font-face", "rtfont", { "svg:font-family": o.family })), typeof o.size == "number" && Number.isFinite(o.size) && o.size >= 0 && (_["fo:font-size"] = o.size / 1024 + "pt"), o.bold !== void 0) {
1329
+ let l2 = Number(o.bold), u2 = l2 * 300 + 400, S = Math.round(u2), b = l2 === (S - 400) / 300 ? S : Math.trunc(u2);
1330
+ _["fo:font-weight"] = b === 400 ? "normal" : b === 700 ? "bold" : b >= 100 && b <= 900 ? String(b) : Number(o.bold) ? "bold" : "normal";
1331
+ }
1332
+ if (o.italic !== void 0 && (_["fo:font-style"] = Number(o.italic) ? "italic" : "normal"), o.strikethrough !== void 0 && (_["style:text-line-through-style"] = Number(o.strikethrough) ? "solid" : "none"), (o.subscript !== void 0 || o.superscript !== void 0) && (_["style:text-position"] = Number(o.subscript) ? "sub 83%" : Number(o.superscript) ? "super 83%" : "0% 100%"), typeof o.color == "string" && (_["fo:color"] = "#" + o.color.split("x").join("")), typeof o.underline == "string") {
1333
+ let l2 = ["low", "singleAccounting", "doubleAccounting"].includes(o.underline), u2 = ["double", "double-line", "doubleAccounting"].includes(o.underline), S = l2 || u2 || ["single", "single-line", "error", "error-line"].includes(o.underline);
1334
+ _["style:text-underline-style"] = S ? "solid" : "none", _["style:text-underline-type"] = S ? u2 ? "double" : "single" : "none", _["style:text-underline-width"] = "auto", _["style:text-underline-color"] = "font-color", _["style:text-underline-mode"] = "continuous", c && l2 && (_["gnm:text-underline-placement"] = "low");
1335
+ }
1336
+ let a = m ? r.element("text:a", m, r.escape(i)) : r.text(i, f);
1337
+ if (!Object.keys(_).length) d += a;
1338
+ else {
1339
+ let l2 = await e.register("contentAutomatic", "style:style", "rt", { "style:family": "text" }, r.element("style:text-properties", _));
1340
+ d += r.element("text:span", { "text:style-name": l2 }, a);
1341
+ }
1342
+ }
1343
+ return d;
1344
+ }
1345
+ var mn = "urn:oasis:names:tc:opendocument:xmlns:";
1346
+ var Et = { table: [mn + "table:1.0", "http://openoffice.org/2000/table"], office: [mn + "office:1.0", "http://openoffice.org/2000/office"], text: [mn + "text:1.0", "http://openoffice.org/2000/text"], style: [mn + "style:1.0", "http://openoffice.org/2000/style"], fo: [mn + "xsl-fo-compatible:1.0", "http://www.w3.org/1999/XSL/Format"], dc: ["http://purl.org/dc/elements/1.1/"], xlink: ["http://www.w3.org/1999/xlink"], gnm: ["http://www.gnumeric.org/odf-extension/1.0"] };
1347
+ function $(n, t, r) {
1348
+ return n?.attributes.find((e) => e.localName === t && Et[r].includes(e.namespace))?.value;
1349
+ }
1350
+ function Xe(n, t = {}, r = [], e = "") {
1351
+ return { name: n, namespace: "http://www.gnumeric.org/v10.dtd", attributes: Object.entries(t).map(([c, m]) => ({ name: c, namespace: "", value: String(m) })), children: r, text: e };
1352
+ }
1353
+ function At(n) {
1354
+ return n !== null && typeof n == "object" && !Array.isArray(n) ? n : void 0;
1355
+ }
1356
+ function ha(n) {
1357
+ let t = At(n)?.attributes;
1358
+ return Object.fromEntries(Array.isArray(t) ? t.flatMap((r) => {
1359
+ let e = At(r);
1360
+ return typeof e?.name == "string" && typeof e.value == "string" ? [[e.name, e.value]] : [];
1361
+ }) : []);
1362
+ }
1363
+ function Sn(n) {
1364
+ if (!(!n?.startsWith("#") || n.length !== 7 || [...n.slice(1)].some((t) => !"0123456789abcdefABCDEF".includes(t)))) return [1, 3, 5].map((t) => (parseInt(n.slice(t, t + 2), 16) * 257).toString(16).toUpperCase()).join(":");
1365
+ }
1366
+ function Wn(n) {
1367
+ if (!n) return;
1368
+ let r = { cm: 72 / 2.54, mm: 72 / 25.4, in: 72, pt: 1, pc: 12 }[n.slice(-2)], e = Number(n.slice(0, -2));
1369
+ return r && Number.isFinite(e) && e >= 0 ? e * r : void 0;
1370
+ }
1371
+ function Vn(n, t) {
1372
+ let r = n.children.find((m) => m.localName === "creator" && Et.dc.includes(m.namespace))?.text ?? $(n, "author", "office"), e = t(n), c = e.richText?.every((m) => typeof m.attributes.family != "string" || !m.attributes.family.includes(":"));
1373
+ return { ...r === void 0 ? {} : { Author: r }, Text: e.value, ...e.richText?.length && c ? { TextFormat: mi(e.richText) } : {} };
1374
+ }
1375
+ function zn(n, t, r) {
1376
+ let e = ha(t), c = At(t)?.children, m = Array.isArray(c) ? c.find((a) => At(a)?.name === "Font") : void 0, f = ha(m), d = At(m)?.text ?? "Sans", i = Array.isArray(c) ? At(c.find((a) => At(a)?.name === "StyleBorder"))?.children : void 0, o = /* @__PURE__ */ new Map();
1377
+ if (Array.isArray(i)) for (let a of i) {
1378
+ let l2 = At(a)?.name;
1379
+ typeof l2 == "string" && o.set(l2, a);
1380
+ }
1381
+ for (let a of n.children) {
1382
+ if (r(), !Et.style.includes(a.namespace) || !a.localName.endsWith("properties")) continue;
1383
+ let l2 = Sn($(a, "background-color", "fo"));
1384
+ l2 && (e.Back = l2, e.Shade = 1);
1385
+ let u2 = Sn($(a, "background-colour", "gnm"));
1386
+ u2 && (e.Back = u2);
1387
+ let S = Sn($(a, "pattern-colour", "gnm"));
1388
+ S && (e.PatternColor = S);
1389
+ let b = $(a, "pattern", "gnm");
1390
+ b !== void 0 && Number.isInteger(Number(b)) && Number(b) > 0 && (e.Shade = Number(b));
1391
+ let g2 = $(a, "wrap-option", "fo");
1392
+ g2 !== void 0 && (e.WrapText = g2 === "wrap" ? 1 : 0);
1393
+ let A = $(a, "cell-protect", "style");
1394
+ A !== void 0 && (e.Locked = A.includes("protected") && A !== "unprotected" ? 1 : 0, A.includes("formula-hidden") && (e.Hidden = 1));
1395
+ let h = Sn($(a, "color", "fo"));
1396
+ h && (e.Fore = h);
1397
+ let R = $(a, "text-align", "fo"), N = { start: "LEFT", end: "RIGHT", left: "LEFT", right: "RIGHT", center: "CENTER", justify: "JUSTIFY" };
1398
+ R && N[R] && (e.HAlign = "GNM_HALIGN_" + N[R]);
1399
+ let y = $(a, "vertical-align", "style"), F = { top: "TOP", middle: "CENTER", bottom: "BOTTOM", justify: "JUSTIFY" };
1400
+ y && F[y] && (e.VAlign = "GNM_VALIGN_" + F[y]);
1401
+ let w = $(a, "rotation-angle", "style");
1402
+ w !== void 0 && Number.isFinite(Number(w)) && (e.Rotation = Number(w));
1403
+ let s = $(a, "shrink-to-fit", "style");
1404
+ s !== void 0 && (e.ShrinkToFit = s === "true" ? 1 : 0);
1405
+ let O = Wn($(a, "font-size", "fo"));
1406
+ O !== void 0 && (f.Unit = O);
1407
+ let E = $(a, "font-weight", "fo");
1408
+ E !== void 0 && (f.Bold = E === "bold" || Number(E) >= 600 ? 1 : 0);
1409
+ let p = $(a, "font-style", "fo");
1410
+ p !== void 0 && (f.Italic = p === "italic" || p === "oblique" ? 1 : 0);
1411
+ let T2 = $(a, "text-underline-style", "style");
1412
+ if (T2 !== void 0) {
1413
+ let I3 = $(a, "text-underline-type", "style"), M = I3 === "double" || $(a, "text-underline-width", "style") === "bold";
1414
+ f.Underline = T2 === "none" || I3 === "none" ? 0 : (M ? 2 : 1) + ($(a, "text-underline-placement", "gnm") === "low" ? 2 : 0);
1415
+ }
1416
+ let Y = $(a, "text-line-through-style", "style");
1417
+ Y !== void 0 && (f.StrikeThrough = Y === "none" ? 0 : 1);
1418
+ let C = In($(a, "text-position", "style"), r);
1419
+ C !== void 0 && (f.Script = C), d = $(a, "font-family", "fo") ?? $(a, "font-name", "style") ?? d;
1420
+ for (let [I3, M] of [["top", "Top"], ["bottom", "Bottom"], ["left", "Left"], ["right", "Right"]]) {
1421
+ let x = $(a, "border-" + I3, "fo") ?? $(a, "border", "fo");
1422
+ if (!x) continue;
1423
+ let W = x.split(" ").filter(Boolean), v = x === "none" ? "none" : W[1], ne = Wn(W[0]), K = Sn(W[2]), G = v === "none" ? 0 : v === "double" ? 6 : v === "dashed" ? 4 : v === "dotted" ? 7 : ne !== void 0 ? ne > 2.5 ? 5 : ne > 1 ? 2 : 1 : void 0;
1424
+ G !== void 0 && o.set(M, Xe(M, { Style: G, Color: K ?? "0:0:0" }));
1425
+ }
1426
+ }
1427
+ let _ = Array.isArray(c) ? c.filter((a) => !["Font", "StyleBorder"].includes(String(At(a)?.name))) : [];
1428
+ return Xe("Style", e, [Xe("Font", f, [], String(d)), ..._, ...o.size ? [Xe("StyleBorder", {}, [...o.values()])] : []]);
1429
+ }
1430
+ async function ya(n, t, r = [], e = [], c = Mn(r, t), m = (f) => f.children) {
1431
+ let f = [], d = [], i = [], o = 0, _ = 0, a = (N, y) => Number($(N, y, "table") ?? "1");
1432
+ async function l2(N) {
1433
+ for await (let F of m(N)) if (t(), !!Et.table.includes(F.namespace)) {
1434
+ if (["table-row-group", "table-rows", "table-header-rows"].includes(F.localName)) {
1435
+ let w = o;
1436
+ await l2(F), F.localName === "table-header-rows" && o > w && i.push(Xe("repeat_top", { value: `$${w + 1}:$${o}` }));
1437
+ continue;
1438
+ }
1439
+ if (F.localName === "table-row") {
1440
+ _ = 0;
1441
+ for await (let w of m(F)) {
1442
+ let O = function(E) {
1443
+ for (let p of E.children) if (t(), !!Et.text.includes(p.namespace)) {
1444
+ if (p.localName === "a") {
1445
+ let T2 = $(p, "href", "xlink");
1446
+ if (!T2) continue;
1447
+ let Y = T2.startsWith("http") ? "GnmHLinkURL" : T2.startsWith("mail") ? "GnmHLinkEMail" : T2.startsWith("file") ? "GnmHLinkExternal" : "GnmHLinkCurWB", C = Y === "GnmHLinkCurWB" ? Oi(T2, "import", t, e) : T2;
1448
+ d.push(Xe("StyleRegion", { startRow: o, endRow: o, startCol: _, endCol: _ }, [Xe("Style", { Fore: "0:0:FFFF" }, [Xe("Font", { Underline: 1 }), Xe("HyperLink", { type: Y, target: C, ...$(p, "title", "office") ? { tip: $(p, "title", "office") } : {} })])]));
1449
+ }
1450
+ O(p);
1451
+ }
1452
+ };
1453
+ var y = O;
1454
+ if (t(), !Et.table.includes(w.namespace) || !["table-cell", "covered-table-cell"].includes(w.localName)) continue;
1455
+ let s = vn(o, _);
1456
+ for (let E of w.children.filter((p) => p.localName === "annotation" && Et.office.includes(p.namespace))) f.push(Xe("CellComment", { ObjectBound: s, ObjectOffset: "1 0 1 0", Direction: 17, Print: 1, ...Vn(E, c) }));
1457
+ O(w), _ += a(w, "number-columns-repeated");
1458
+ }
1459
+ o += a(F, "number-rows-repeated");
1460
+ }
1461
+ }
1462
+ }
1463
+ await l2(n);
1464
+ let u2 = $(n, "style-name", "table"), b = r.flatMap((N) => N.children).flatMap((N) => N.children).filter((N) => Et.style.includes(N.namespace)), g2 = b.find((N) => N.localName === "style" && $(N, "name", "style") === u2), A = b.find((N) => N.localName === "master-page" && $(N, "name", "style") === $(g2, "master-page-name", "style")), h = b.find((N) => ["page-layout", "page-master"].includes(N.localName) && $(N, "name", "style") === $(A, "page-layout-name", "style"));
1465
+ for (let N of h?.children ?? []) {
1466
+ t();
1467
+ let y = $(N, "print-orientation", "style");
1468
+ (y === "portrait" || y === "landscape") && i.push(Xe("orientation", {}, [], y));
1469
+ let F = {};
1470
+ for (let p of ["top", "bottom", "left", "right"]) {
1471
+ let T2 = Wn($(N, "margin-" + p, "fo") ?? $(N, "margin", "fo"));
1472
+ T2 !== void 0 && (F[p] = T2);
1473
+ }
1474
+ Object.keys(F).length && i.push(Xe("Margins", {}, Object.entries(F).map(([p, T2]) => Xe(p, { Points: T2, PrefUnit: "cm" }))));
1475
+ let w = $(N, "scale-to-pages", "style"), s = $(N, "scale-to-X", "style") ?? $(N, "scale-to-X", "gnm") ?? w, O = $(N, "scale-to-Y", "style") ?? $(N, "scale-to-Y", "gnm") ?? w, E = $(N, "scale-to", "style");
1476
+ s || O ? i.push(Xe("Scale", { type: "fit", cols: s ?? "0", rows: O ?? "0" })) : E?.endsWith("%") && i.push(Xe("Scale", { type: "percentage", percentage: E.slice(0, -1) }));
1477
+ }
1478
+ let R = [];
1479
+ for (let [N, y] of [["Objects", f], ["Styles", d], ["PrintInformation", i]]) y.length && R.push({ source: "Gnumeric_XmlIO:sax", kind: N, disposition: "retained", data: Xe(N, {}, y) });
1480
+ return R;
1481
+ }
1482
+ function ga(n, t, r) {
1483
+ let e = [];
1484
+ for (let m of n.children.filter((f) => f.localName === "database-ranges" && Et.table.includes(f.namespace))) for (let f of m.children) {
1485
+ let u2 = function(S) {
1486
+ for (let b of S.children) if (r(), !!Et.table.includes(b.namespace)) if (b.localName === "filter-condition") {
1487
+ let A = { "=": "eq", "!=": "ne", "<": "lt", ">": "gt", "<=": "lte", ">=": "gte" }[$(b, "operator", "table") ?? "="], h = $(b, "value", "table") ?? "";
1488
+ A && l2.push(Xe("Field", { Index: $(b, "field-number", "table") ?? "0", Type: "expr", Op0: A, Value0: $(b, "data-type", "table") === "number" ? 40 : 60, ValueType0: h }));
1489
+ } else ["filter", "filter-and"].includes(b.localName) && u2(b);
1490
+ };
1491
+ var c = u2;
1492
+ r();
1493
+ let d = $(f, "target-range-address", "table");
1494
+ if (!d) continue;
1495
+ r(d.length);
1496
+ let i = Ti("=[" + d + "]", { grammar: ui, position: { sheet: t, row: 0, column: 0 } });
1497
+ if (!i.ok || i.document.root.kind !== "reference") continue;
1498
+ let o = i.document.root, _ = o.first, a = o.last ?? _;
1499
+ if (_.workbook || a.workbook || (_.sheet ?? t) !== t || (a.sheet ?? _.sheet ?? t) !== t || !_.row || !_.column || !a.row || !a.column) continue;
1500
+ let l2 = [];
1501
+ u2(f), (l2.length || $(f, "display-filter-buttons", "table") === "true") && e.push(Xe("Filter", { Area: vn(_.row.value, _.column.value) + ":" + vn(a.row.value, a.column.value) }, l2));
1502
+ }
1503
+ return e.length ? [{ source: "Gnumeric_XmlIO:sax", kind: "Filters", disposition: "retained", data: Xe("Filters", {}, e) }] : [];
1504
+ }
1505
+ var jn = ["urn:oasis:names:tc:opendocument:xmlns:table:1.0", "http://openoffice.org/2000/table"];
1506
+ function Ca(n, t, r, e) {
1507
+ let c = new Map(t.map((a) => (e(1 + a.name.length), [$n(a.name), a]))), m = /* @__PURE__ */ new Map(), f = new Map(t.map((a) => (e(), [a.id, { ...a.size ?? Ni }])));
1508
+ function d(a, l2) {
1509
+ let u2 = f.get(a.id);
1510
+ for (; u2.rows <= l2.endRow; ) e(), u2.rows *= 2;
1511
+ for (; u2.columns <= l2.endColumn; ) e(), u2.columns *= 2;
1512
+ }
1513
+ function i() {
1514
+ throw new Si("io", "E Invalid OpenDocument: invalid label range");
1515
+ }
1516
+ function o(a, l2) {
1517
+ return a.attributes.find((u2) => u2.localName === l2 && jn.includes(u2.namespace))?.value;
1518
+ }
1519
+ function _(a) {
1520
+ if (!a) return i();
1521
+ e(a.length);
1522
+ let l2 = Ai("=[" + a + "]", { maximumDepth: r.limits.formulaDepth, grammar: pi, position: { sheet: t[0]?.id ?? "", row: 0, column: 0 }, signal: r.signal, maximumLength: r.limits.workbookTextBytes ?? r.limits.inputBytes, maximumNodes: r.limits.workbookNodes ?? 1 / 0 });
1523
+ if (!l2.ok || l2.document.root.kind !== "reference") return i();
1524
+ let u2 = l2.document.root.first, S = l2.document.root.last ?? u2, b = u2.sheet === void 0 ? void 0 : c.get($n(u2.sheet)), g2 = S.sheet === void 0 ? b : c.get($n(S.sheet));
1525
+ if (!b || u2.workbook !== void 0 || S.workbook !== void 0 || g2 !== b || !u2.row || !u2.column || !S.row || !S.column) return i();
1526
+ let A = { startRow: u2.row.value, endRow: S.row.value, startColumn: u2.column.value, endColumn: S.column.value };
1527
+ return Object.values(A).some((h) => !Number.isSafeInteger(h) || h < 0) || A.startRow > A.endRow || A.startColumn > A.endColumn || A.endRow >= wa.rows || A.endColumn >= wa.columns ? i() : { sheet: b, range: A };
1528
+ }
1529
+ for (let a of n.children) if (e(), !(a.localName !== "label-ranges" || !jn.includes(a.namespace))) for (let l2 of a.children) {
1530
+ if (e(), l2.localName !== "label-range" || !jn.includes(l2.namespace)) continue;
1531
+ let u2 = o(l2, "orientation");
1532
+ u2 !== "row" && u2 !== "column" && i();
1533
+ let S = _(o(l2, "label-cell-range-address")), b = _(o(l2, "data-cell-range-address"));
1534
+ d(S.sheet, S.range), d(b.sheet, b.range);
1535
+ let g2 = m.get(S.sheet.id);
1536
+ g2 || (g2 = [], m.set(S.sheet.id, g2)), g2.push({ axis: u2, labels: S.range, data: b.range, ...b.sheet !== S.sheet ? { dataSheet: b.sheet.id } : {} });
1537
+ }
1538
+ return t.map((a) => {
1539
+ e();
1540
+ let l2 = m.get(a.id);
1541
+ return { ...a, size: f.get(a.id), ...l2 ? { labelRanges: l2 } : {} };
1542
+ });
1543
+ }
1544
+ var Kn = 1024;
1545
+ var Bt = { t: 3, m: 65536, p: 4, dkLen: 32, version: 19, maxmem: 64 * 1024 * 1024, asyncTick: 10 };
1546
+ var Ia = /* @__PURE__ */ new Map([["odf12-aes128-cbc", { cipher: "aes-cbc", keyBytes: 16 }], ["odf12-aes192-cbc", { cipher: "aes-cbc", keyBytes: 24 }], ["odf12-aes256-cbc", { cipher: "aes-cbc", keyBytes: 32 }], ["odf12-blowfish-cfb8", { cipher: "blowfish-cfb8", keyBytes: 16 }], ["odf12-blowfish-cfb64", { cipher: "blowfish-cfb64", keyBytes: 16 }], ["libreoffice-aes256-gcm", { cipher: "aes-gcm", keyBytes: 32 }]]);
1547
+ function Pt(n) {
1548
+ throw new Qn("unsupported-feature", `Unsupported ssconvert feature: encrypted OpenDocument ${n}`);
1549
+ }
1550
+ function qn() {
1551
+ throw new Qn("resource-limit", "ssconvert OpenDocument encrypted output bytes limit exceeded");
1552
+ }
1553
+ function Jn(n) {
1554
+ return btoa(String.fromCharCode(...n));
1555
+ }
1556
+ async function Zn(n, t, r, e) {
1557
+ let [{ cbc: c, gcm: m }, { argon2idAsync: f }] = await Promise.all([import("./aes-DUEAWV73-LZOSUFMR.js"), import("./argon2-WTUGKGHD-C2NVNIFH.js")]);
1558
+ (!t.password || !t.entropy) && Pt("export requires password and cryptographic entropy capabilities");
1559
+ let d = e.cipher === "aes-gcm", i = e.cipher === "blowfish-cfb8" || e.cipher === "blowfish-cfb64", o = i ? X : I2;
1560
+ if (d && (t.limits.encryptionMemoryBytes ?? Bt.maxmem) < Bt.maxmem) throw new Qn("resource-limit", "ssconvert OpenDocument encryption memory limit exceeded");
1561
+ let _ = e.cipher === "blowfish-cfb64" ? 8 : 1, a = [...n].filter(([R]) => R !== "mimetype" && R !== "META-INF/manifest.xml"), l2 = 0;
1562
+ for (let [, R] of a) l2 += R.length, l2 > t.limits.outputBytes && qn(), r.charge((d ? Bt.m * Bt.t * 1024 : Kn * Math.ceil(e.keyBytes / 20) * 128) + R.length * 8 + 128);
1563
+ let u2 = t.limits.inputBytes, S;
1564
+ t.signal.throwIfAborted();
1565
+ try {
1566
+ S = await t.password.read(Object.freeze({ purpose: "encrypt", format: "odf", algorithm: e.cipher, revision: d ? "libreoffice" : "1.2", encoding: "utf8", maxBytes: u2, signal: t.signal, ...t.outputFilename === void 0 ? {} : { outputFilename: t.outputFilename } }));
1567
+ } catch {
1568
+ t.signal.throwIfAborted(), Pt("password acquisition failed");
1569
+ }
1570
+ t.signal.throwIfAborted(), S === void 0 && Pt("password required"), (typeof S == "string" ? S.length > u2 || [...S].some((R) => {
1571
+ let N = R.codePointAt(0);
1572
+ return N >= 55296 && N <= 57343;
1573
+ }) : !(S instanceof Uint8Array) || S.length > u2) && Pt("password encoding or length");
1574
+ let b = typeof S == "string" ? new TextEncoder().encode(S) : new Uint8Array(S), g2 = /* @__PURE__ */ new Map(), A, h = 0;
1575
+ try {
1576
+ b.length > u2 && Pt("password encoding or length");
1577
+ try {
1578
+ new TextDecoder("utf-8", { fatal: true }).decode(b);
1579
+ } catch {
1580
+ Pt("password encoding or length");
1581
+ }
1582
+ A = o(b);
1583
+ for (let [R, N] of a) {
1584
+ let y = createCompressionCodec(), F = new y.CodecReader((async function* () {
1585
+ yield N;
1586
+ })(), t.signal), w = [], s = 0, O, E, p;
1587
+ try {
1588
+ for await (let j of y.codec(F, { mode: "deflate-raw", chunkSize: 16384 }, t.signal)) t.signal.throwIfAborted(), j.length > t.limits.outputBytes - h - s && qn(), r.charge(j.length), w.push(new Uint8Array(j)), s += j.length;
1589
+ let T2 = i || d ? 0 : 16 - s % 16;
1590
+ s + T2 + (d ? 28 : 0) > t.limits.outputBytes - h && qn(), i && r.charge((Math.ceil(s / _) + 521) * 128);
1591
+ let Y = d ? 28 : i ? 24 : 48, C;
1592
+ t.signal.throwIfAborted();
1593
+ try {
1594
+ C = await t.entropy.read(Object.freeze({ length: Y, signal: t.signal }));
1595
+ } catch {
1596
+ t.signal.throwIfAborted(), Pt("entropy acquisition failed");
1597
+ }
1598
+ t.signal.throwIfAborted(), (!(C instanceof Uint8Array) || C.length !== Y) && Pt(`entropy must provide exactly ${Y} bytes`), O = new Uint8Array(C);
1599
+ let I3 = O.subarray(0, 16), M = O.subarray(16, d ? 28 : i ? 24 : 32);
1600
+ p = new Uint8Array(s + T2);
1601
+ let x = 0;
1602
+ for (let j of w) p.set(j, x), x += j.length, j.fill(0);
1603
+ let W = o(p.subarray(0, Math.min(s, 1024)));
1604
+ T2 && (p.set(O.subarray(32, 32 + T2), s), p[p.length - 1] = T2), E = d ? await f(A, I3, Bt) : await Gn(A, I3, Kn, e.keyBytes, t), t.signal.throwIfAborted();
1605
+ let v = i ? await Tn(E, M, p, t.signal, "encrypt", _) : new Uint8Array(p.length + (d ? 28 : 0));
1606
+ d && (v.set(M), v.set(m(E, M).encrypt(p), 12));
1607
+ let ne = M;
1608
+ for (let j = 0; e.cipher === "aes-cbc" && j < p.length; j += 16384) {
1609
+ t.signal.throwIfAborted();
1610
+ let ue = c(E, ne, { disablePadding: true }).encrypt(p.subarray(j, j + 16384));
1611
+ v.set(ue, j), ne = v.subarray(j + ue.length - 16, j + ue.length), j && await new Promise((ve) => setTimeout(ve, 0));
1612
+ }
1613
+ t.signal.throwIfAborted(), h += v.length;
1614
+ let K = r.element, G = K("manifest:encryption-data", d ? {} : { "manifest:checksum-type": i ? "SHA1/1K" : bi.manifest + "#sha256-1k", "manifest:checksum": Jn(W) }, K("manifest:algorithm", { "manifest:algorithm-name": d ? "http://www.w3.org/2009/xmlenc11#aes256-gcm" : i ? "Blowfish CFB" : `http://www.w3.org/2001/04/xmlenc#aes${e.keyBytes * 8}-cbc`, "manifest:initialisation-vector": Jn(M) }) + K("manifest:key-derivation", { ...d ? { "manifest:key-derivation-name": "urn:org:documentfoundation:names:experimental:office:manifest:argon2id", "loext:argon2-iterations": Bt.t, "loext:argon2-memory": Bt.m, "loext:argon2-lanes": Bt.p } : { "manifest:key-derivation-name": "PBKDF2", "manifest:iteration-count": Kn }, "manifest:key-size": e.keyBytes, "manifest:salt": Jn(I3) }) + K("manifest:start-key-generation", { "manifest:start-key-generation-name": d ? "http://www.w3.org/2001/04/xmlenc#sha256" : "http://www.w3.org/2000/09/xmldsig#" + (i ? "sha1" : "sha256"), "manifest:key-size": o.outputLen }));
1615
+ g2.set(R, { bytes: v, size: N.length, declaration: G });
1616
+ } finally {
1617
+ E?.fill(0), O?.fill(0), p?.fill(0);
1618
+ for (let T2 of w) T2.fill(0);
1619
+ await F.close();
1620
+ }
1621
+ }
1622
+ return g2;
1623
+ } finally {
1624
+ b.fill(0), A?.fill(0);
1625
+ }
1626
+ }
1627
+ async function Ba(n, t, r, e, c, m) {
1628
+ let f = n.element, d = [], i = c ? new ZipDirectoryIndex(c, { maximumKeyLength: 1 / 0, signal: e.signal }) : /* @__PURE__ */ new Map(), o = c ? new ZipDirectoryIndex(c, { maximumKeyLength: 1 / 0, signal: e.signal }) : /* @__PURE__ */ new Map(), _ = c ? new ZipWriteChain(c, 16384, e.signal, async (s) => {
1629
+ s.throwIfAborted();
1630
+ }) : void 0, a = _ ? new Uint8Array(16384) : void 0, l2 = 0, u2 = 0, S = 0;
1631
+ function b() {
1632
+ a?.fill(0);
1633
+ }
1634
+ e.own(b);
1635
+ async function g2(...s) {
1636
+ if (!_) {
1637
+ d.push(...s);
1638
+ return;
1639
+ }
1640
+ async function* O() {
1641
+ yield* s;
1642
+ }
1643
+ for await (let E of hi(O(), "UTF-8", false, e)) {
1644
+ if (E.length > e.limits.outputBytes - u2) throw new Zt("resource-limit", "ssconvert OpenDocument output bytes limit exceeded");
1645
+ m?.(E.length), u2 += E.length;
1646
+ for (let p = 0; p < E.length; ) {
1647
+ let T2 = Math.min(a.length - l2, E.length - p);
1648
+ a.set(E.subarray(p, p + T2), l2), l2 += T2, p += T2, l2 === a.length && (await _.append([a], l2), l2 = 0);
1649
+ }
1650
+ }
1651
+ }
1652
+ async function* A() {
1653
+ if (!_) {
1654
+ yield* d;
1655
+ return;
1656
+ }
1657
+ l2 && (await _.append([a.subarray(0, l2)], l2), l2 = 0), a.fill(0), yield* _.read();
1658
+ }
1659
+ function h(s, O = /* @__PURE__ */ new Set(), E = 0) {
1660
+ if (n.charge(typeof s == "string" ? s.length : 1), !(s === null || typeof s != "object")) {
1661
+ if (O.has(s)) throw new Zt("invalid-request", "Invalid cyclic OpenDocument style metadata");
1662
+ if (E > (e.limits.xmlDepth ?? 1 / 0)) throw new Zt("resource-limit", "ssconvert OpenDocument style metadata depth limit exceeded");
1663
+ O.add(s);
1664
+ try {
1665
+ if (Array.isArray(s)) for (let p of s) h(p, O, E + 1);
1666
+ else for (let [p, T2] of Object.entries(s)) n.charge(p.length), h(T2, O, E + 1);
1667
+ } finally {
1668
+ O.delete(s);
1669
+ }
1670
+ }
1671
+ }
1672
+ async function R(s) {
1673
+ n.charge();
1674
+ let O = Vt(s, Da.style).name;
1675
+ O && await o.set(O, 0);
1676
+ for (let E of en(s)) await R(E);
1677
+ }
1678
+ for (let s of r.unsupportedRecords ?? []) if (["styles", "automatic-styles"].includes(s.kind)) {
1679
+ let O = pt(s.data)?.xml;
1680
+ h(O), await R(O);
1681
+ }
1682
+ async function N(s) {
1683
+ let O = s.style?.odf;
1684
+ O && (h(O), await R(O));
1685
+ }
1686
+ for (let s of r.sheets) for (let O of s.cells) await N(O);
1687
+ function y(s) {
1688
+ if (!s) return;
1689
+ let O = s.split(":");
1690
+ if (O.length !== 3 || O.some((E) => !E || [...E].some((p) => !"0123456789abcdefABCDEF".includes(p)))) throw new Zt("invalid-request", "Invalid OpenDocument style color");
1691
+ return "#" + O.map((E) => Math.round(parseInt(E, 16) / 257).toString(16).padStart(2, "0")).join("");
1692
+ }
1693
+ function F(s, O) {
1694
+ let E = { book: r, context: e, tick: n.charge }, p = yi(s, E);
1695
+ if (p.length !== 1) throw new Zt("unsupported-feature", "Unsupported ssconvert feature: multi-section ODF number format");
1696
+ let T2 = gi(p[0].pattern, E), Y = T2.filter((G) => !G.literal).map((G) => G.text).join("").toLowerCase();
1697
+ if (s === "General") return { xml: "", kind: "float" };
1698
+ let C = Y.includes("y") || Y.includes("d") ? "date" : Y.includes("h") || Y.includes("s") ? "time" : Y.includes("@") ? "string" : "float", I3 = "";
1699
+ if (C === "date" || C === "time") {
1700
+ let G = false;
1701
+ for (let j = 0; j < T2.length; j++) {
1702
+ let ue = T2[j], ve = ue.text.toLowerCase();
1703
+ if (ue.literal) {
1704
+ I3 += f("number:text", {}, n.escape(ue.text));
1705
+ continue;
1706
+ }
1707
+ ve === "[" && T2[j + 2]?.text === "]" && (G = true, j++);
1708
+ let ze = T2[j], ye = ze.text.toLowerCase();
1709
+ if (ye === "]") continue;
1710
+ let Q = 1;
1711
+ for (; T2[j + 1]?.text.toLowerCase() === ye && !T2[j + 1]?.literal; ) j++, Q++;
1712
+ let Ye = ye === "m" && (C === "time" || T2.slice(0, j).some((lt) => !lt.literal && lt.text.toLowerCase() === "h") && T2.slice(j + 1).some((lt) => !lt.literal && lt.text.toLowerCase() === "s")), et = ye === "y" ? "year" : ye === "d" ? Q > 2 ? "day-of-week" : "day" : ye === "m" ? Ye ? "minutes" : "month" : ye === "h" ? "hours" : ye === "s" ? "seconds" : void 0;
1713
+ et ? I3 += f("number:" + et, { "number:style": Q > 1 ? "long" : "short", "number:textual": ye === "m" && !Ye && Q > 2 ? "true" : void 0 }) : I3 += f("number:text", {}, n.escape(ze.text.repeat(Q)));
1714
+ }
1715
+ return { kind: C, xml: f("number:" + C + "-style", { "style:name": O, "number:truncate-on-overflow": G ? "false" : void 0 }, I3) };
1716
+ }
1717
+ if (C === "string") return { kind: C, xml: f("number:text-style", { "style:name": O }, f("number:text-content")) };
1718
+ let M = (G) => T2[G] && !T2[G].literal && "0#".includes(T2[G].text), x = T2.findIndex((G, j) => M(j)), W = T2.findIndex((G) => !G.literal && G.text === "."), v = -1;
1719
+ for (let G = 0; G < T2.length; G++) M(G) && (v = G);
1720
+ if (x < 0 || Y.includes("?") || Y.includes("e") || Y.includes("/")) throw new Zt("unsupported-feature", "Unsupported ssconvert feature: ODF numeric format " + s);
1721
+ let ne = W < 0 ? 0 : T2.slice(W + 1, v + 1).filter((G) => !G.literal && "0#".includes(G.text)).length, K = T2.slice(x, W < 0 ? v + 1 : W).filter((G) => !G.literal && G.text === "0").length;
1722
+ return I3 = T2.slice(0, x).map((G) => f("number:text", {}, n.escape(G.text))).join("") + f("number:number", { "number:decimal-places": ne, "number:min-integer-digits": K, "number:grouping": Y.includes(",") ? "true" : "false" }) + T2.slice(v + 1).map((G) => f("number:text", {}, n.escape(G.text))).join(""), { kind: C, xml: f(Y.includes("%") ? "number:percentage-style" : "number:number-style", { "style:name": O }, I3) };
1723
+ }
1724
+ async function w(s) {
1725
+ n.charge();
1726
+ let O = pt(s.style?.odf), E = s.style?.gnumeric, p = Vt(E), T2 = s.format ?? p.Format ?? "General";
1727
+ if (O) return { name: Vt(O, Da.style).name, kind: T2.toLowerCase().includes("y") || T2.toLowerCase().includes("d") ? "date" : T2.toLowerCase().includes("h") ? "time" : "float" };
1728
+ if (!E && T2 === "General") return { kind: "float" };
1729
+ h(E), n.charge(T2.length);
1730
+ let Y = JSON.stringify([E, T2]);
1731
+ n.charge(Y.length);
1732
+ let C = await i.get(Y), I3 = C ?? S, M = "ce" + I3;
1733
+ if (C === void 0) {
1734
+ for (; await o.get(M) !== void 0 || await o.get("N" + M) !== void 0; ) n.charge(), M = "ce" + ++I3;
1735
+ S = I3 + 1, await o.set(M, 0), await o.set("N" + M, 0);
1736
+ }
1737
+ let x = F(T2, "N" + M);
1738
+ if (C !== void 0) return { name: M, kind: x.kind };
1739
+ await i.set(Y, I3);
1740
+ let W = {}, v = {}, ne = {};
1741
+ W["fo:background-color"] = Number(p.Shade ?? 0) ? y(p.Back) : void 0, t && p.Shade !== void 0 && (W["gnm:pattern"] = p.Shade, W["gnm:background-colour"] = y(p.Back), W["gnm:pattern-colour"] = y(p.PatternColor)), p.WrapText !== void 0 && (W["fo:wrap-option"] = Number(p.WrapText) ? "wrap" : "no-wrap"), p.ShrinkToFit !== void 0 && (W["style:shrink-to-fit"] = String(!!Number(p.ShrinkToFit))), p.Rotation !== void 0 && (W["style:rotation-angle"] = p.Rotation), (p.Locked !== void 0 || p.Hidden !== void 0) && (W["style:cell-protect"] = Number(p.Hidden) ? "formula-hidden" + (Number(p.Locked) ? " protected" : "") : Number(p.Locked) ? "protected" : "none");
1742
+ let K = { GNM_HALIGN_LEFT: "start", GNM_HALIGN_RIGHT: "end", GNM_HALIGN_CENTER: "center", GNM_HALIGN_JUSTIFY: "justify", 2: "start", 4: "end", 8: "center" }, G = { GNM_VALIGN_TOP: "top", GNM_VALIGN_BOTTOM: "bottom", GNM_VALIGN_CENTER: "middle", 1: "top", 2: "bottom", 4: "middle" };
1743
+ ne["fo:text-align"] = K[p.HAlign ?? ""], W["style:vertical-align"] = G[p.VAlign ?? ""], v["fo:color"] = y(p.Fore);
1744
+ let j = en(E).find((Q) => pt(Q)?.name === "Font"), ue = Vt(j);
1745
+ if (j) {
1746
+ if (v["fo:font-family"] = typeof pt(j)?.text == "string" ? pt(j).text : void 0, v["fo:font-size"] = ue.Unit ? ue.Unit + "pt" : void 0, ue.Bold !== void 0 && (v["fo:font-weight"] = Number(ue.Bold) ? "bold" : "normal"), ue.Italic !== void 0 && (v["fo:font-style"] = Number(ue.Italic) ? "italic" : "normal"), ue.Underline !== void 0) {
1747
+ let Q = Number(ue.Underline), Ye = Q === 3 || Q === 4;
1748
+ v["style:text-underline-style"] = Q ? "solid" : "none", v["style:text-underline-type"] = Q === 2 || Q === 4 ? "double" : Q ? "single" : "none", v["style:text-underline-width"] = "auto", v["style:text-underline-color"] = "font-color", v["style:text-underline-mode"] = "continuous", t && Ye && (v["gnm:text-underline-placement"] = "low");
1749
+ }
1750
+ ue.StrikeThrough !== void 0 && (v["style:text-line-through-style"] = Number(ue.StrikeThrough) ? "solid" : "none"), ue.Script !== void 0 && (v["style:text-position"] = Number(ue.Script) < 0 ? "sub 80%" : Number(ue.Script) > 0 ? "super 80%" : "0% 100%");
1751
+ }
1752
+ let ve = en(en(E).find((Q) => pt(Q)?.name === "StyleBorder")), ze = { Top: "top", Bottom: "bottom", Left: "left", Right: "right" }, ye = ["none", "solid", "solid", "dashed", "dotted", "solid", "double", "solid", "dashed", "dash-dot", "dash-dot", "dash-dot-dot", "dash-dot-dot"];
1753
+ for (let Q of ve) {
1754
+ n.charge();
1755
+ let Ye = Vt(Q), et = ze[String(pt(Q)?.name)];
1756
+ et && (W["fo:border-" + et] = `${[0, 1, 2, 1, 1, 3, 1, 0.5, 2, 1, 2, 1, 2][Number(Ye.Style)] ?? 1}pt ${ye[Number(Ye.Style)] ?? "solid"} ${y(Ye.Color) ?? "#000000"}`);
1757
+ }
1758
+ return await g2(x.xml, f("style:style", { "style:name": M, "style:family": "table-cell", "style:data-style-name": x.xml ? "N" + M : void 0 }, f("style:table-cell-properties", W) + f("style:paragraph-properties", ne) + f("style:text-properties", v))), { name: M, kind: x.kind };
1759
+ }
1760
+ return { register: w, reserve: N, styles: d, render: A, dispose: b };
1761
+ }
1762
+ function Pa(n, t, r) {
1763
+ let e = { "style:print": "charts drawings objects" };
1764
+ for (let c of n) for (let m of en(c)) {
1765
+ t.charge();
1766
+ let f = pt(m), d = Vt(m);
1767
+ if (f?.name === "orientation" && typeof f.text == "string" && (e["style:print-orientation"] = f.text), f?.name === "Margins") for (let i of en(m)) {
1768
+ let o = pt(i)?.name, _ = Vt(i);
1769
+ typeof o == "string" && ["top", "bottom", "left", "right"].includes(o) && _.Points && (e["fo:margin-" + o] = _.Points + "pt");
1770
+ }
1771
+ f?.name === "Scale" && (d.type === "fit" ? r ? (Number(d.cols) > 0 && (e["gnm:scale-to-X"] = d.cols), Number(d.rows) > 0 && (e["gnm:scale-to-Y"] = d.rows)) : Number(d.cols) > 0 && Number(d.rows) > 0 && (e["style:scale-to-pages"] = Number(d.cols) * Number(d.rows)) : d.percentage && (e["style:scale-to"] = d.percentage + "%"));
1772
+ }
1773
+ return e;
1774
+ }
1775
+ function Fa(n, t) {
1776
+ let r = [], e = [];
1777
+ return { async put(c) {
1778
+ if (n.signal.throwIfAborted(), !t) return r.push(c), r.length;
1779
+ let m = t.allocate(24), f = new Uint8Array(24), d = new DataView(f.buffer);
1780
+ return c.forEach((i, o) => d.setFloat64(o * 8, i, true)), await t.write(m, f), n.signal.throwIfAborted(), m;
1781
+ }, async get(c) {
1782
+ if (n.signal.throwIfAborted(), !t) return r[c - 1];
1783
+ let m = new Uint8Array(await t.read(c, 24));
1784
+ if (n.signal.throwIfAborted(), m.length !== 24) throw new RangeError("Truncated ODF definition record");
1785
+ let f = new DataView(m.buffer), d = [f.getFloat64(0, true), f.getFloat64(8, true), f.getFloat64(16, true)];
1786
+ if (d.some((i) => !Number.isSafeInteger(i) || i < 0)) throw new RangeError("Invalid ODF definition record");
1787
+ return d;
1788
+ }, async putText(c) {
1789
+ if (n.signal.throwIfAborted(), !t) return e.push(c), e.length;
1790
+ let m = t.allocate(8 + c.length * 2), f = new Uint8Array(8), d = new Uint8Array(4096), i = new DataView(d.buffer);
1791
+ new DataView(f.buffer).setFloat64(0, c.length, true);
1792
+ try {
1793
+ await t.write(m, f);
1794
+ for (let o = 0; o < c.length; o += 2048) {
1795
+ n.signal.throwIfAborted();
1796
+ let _ = Math.min(2048, c.length - o);
1797
+ for (let a = 0; a < _; a++) i.setUint16(a * 2, c.charCodeAt(o + a), true);
1798
+ await t.write(m + 8 + o * 2, d.subarray(0, _ * 2));
1799
+ }
1800
+ return n.signal.throwIfAborted(), m;
1801
+ } finally {
1802
+ d.fill(0);
1803
+ }
1804
+ }, async *text(c) {
1805
+ if (n.signal.throwIfAborted(), !t) {
1806
+ yield e[c - 1];
1807
+ return;
1808
+ }
1809
+ let m = new Uint8Array(await t.read(c, 8));
1810
+ if (n.signal.throwIfAborted(), m.length !== 8) throw new RangeError("Truncated ODF definition text");
1811
+ let f = new DataView(m.buffer).getFloat64(0, true);
1812
+ if (!Number.isSafeInteger(f) || f < 0 || !Number.isSafeInteger(c + 8 + f * 2)) throw new RangeError("Invalid ODF definition text");
1813
+ for (let d = 0; d < f; d += 2048) {
1814
+ n.signal.throwIfAborted();
1815
+ let i = Math.min(2048, f - d), o = await t.read(c + 8 + d * 2, i * 2);
1816
+ if (n.signal.throwIfAborted(), o.length !== i * 2) throw new RangeError("Truncated ODF definition text");
1817
+ let _ = new DataView(o.buffer, o.byteOffset, o.byteLength), a = [];
1818
+ for (let l2 = 0; l2 < i; l2++) a.push(_.getUint16(l2 * 2, true));
1819
+ yield String.fromCharCode(...a);
1820
+ }
1821
+ } };
1822
+ }
1823
+ async function Ya(n, t, r, e, c) {
1824
+ let m = n.unsupportedRecords ?? [], f = Object.isFrozen(m) ? m : wi(m, r.limits), d = () => e ? new ZipDirectoryIndex(e, { maximumKeyLength: 1 / 0, signal: r.signal }) : /* @__PURE__ */ new Map(), i = () => ({ identities: d(), shapes: d(), count: 0, entries: e ? new Ci(e, 128) : /* @__PURE__ */ new Map() }), o = /* @__PURE__ */ new Map(), _ = d(), a = d(), l2 = Fa(r, e);
1825
+ function u2(R) {
1826
+ let N = o.get(R);
1827
+ return N || (N = i(), o.set(R, N)), N;
1828
+ }
1829
+ function S(R, N) {
1830
+ return Ua(Nn(f[R - 1]?.data)?.xml)[N];
1831
+ }
1832
+ async function b(R, N, y) {
1833
+ let F = await R.identities.get(N);
1834
+ F === void 0 && (F = R.count++, await R.identities.set(N, F)), await R.entries.set(BigInt(F), BigInt(y));
1835
+ }
1836
+ let g2 = 0;
1837
+ for (let [R, N] of f.entries()) {
1838
+ if (t.charge(), N.source !== "Gnumeric_OpenCalc:openoffice") continue;
1839
+ let y = Nn(N.data), F = N.kind === "automatic-styles" ? y?.packagePart === "styles.xml" ? "stylesAutomatic" : "contentAutomatic" : N.kind === "master-styles" ? "masters" : N.kind === "font-face-decls" ? "fonts" : N.kind === "styles" ? "styles" : void 0;
1840
+ if (!F) continue;
1841
+ let w = u2(F);
1842
+ for (let [s, O] of Ua(y?.xml).entries()) {
1843
+ t.charge();
1844
+ let E = Nn(O), p = ea(O, Dn.style), T2 = p.name ? JSON.stringify([E?.namespace, E?.name, p.family ?? "", p.name]) : "anonymous:" + g2++;
1845
+ await b(w, T2, await l2.put([R + 1, s, 0])), p.name && await _.set(p.name, 0);
1846
+ }
1847
+ }
1848
+ for (let R of o.values()) for await (let [, N] of R.entries.entries()) {
1849
+ let [y, F] = await l2.get(Number(N)), w = S(y, F);
1850
+ t.charge();
1851
+ let s = Nn(w), O = ea(w, Dn.style).name;
1852
+ if (!s || !O || !Array.isArray(s.attributes)) continue;
1853
+ let E = s.attributes.filter((p) => {
1854
+ t.charge();
1855
+ let T2 = Nn(p);
1856
+ return T2?.namespace !== Dn.style || T2?.name !== "name";
1857
+ });
1858
+ await R.shapes.set(t.retained({ ...s, attributes: E }), Number(N));
1859
+ }
1860
+ async function A(R, N, y, F, w = "") {
1861
+ let s = t.element(N, F, w), O = u2(R), E = await O.shapes.get(s);
1862
+ if (E !== void 0) {
1863
+ let [I3, M, x] = await l2.get(E);
1864
+ if (I3) return ea(S(I3, M), Dn.style).name;
1865
+ let W = "";
1866
+ for await (let v of l2.text(x)) W += v;
1867
+ return W;
1868
+ }
1869
+ let p = await a.get(y) ?? 0, T2 = p ? y + "_" + p : y;
1870
+ for (; await _.get(T2) !== void 0; ) t.charge(), T2 = y + "_" + ++p;
1871
+ await _.set(T2, 0), await a.set(y, p + 1);
1872
+ let Y = t.element(N, { "style:name": T2, ...F }, w);
1873
+ if (e && c) {
1874
+ let I3 = 0;
1875
+ for (let M of Y) {
1876
+ r.signal.throwIfAborted();
1877
+ let x = M.codePointAt(0);
1878
+ I3 += x < 128 ? 1 : x < 2048 ? 2 : x < 65536 ? 3 : 4;
1879
+ }
1880
+ c(I3);
1881
+ }
1882
+ let C = await l2.put([0, await l2.putText(Y), await l2.putText(T2)]);
1883
+ return await b(O, "generated:" + T2, C), await O.shapes.set(s, C), T2;
1884
+ }
1885
+ async function* h(R) {
1886
+ let N = o.get(R);
1887
+ if (N) for await (let [, y] of N.entries.entries()) {
1888
+ t.charge();
1889
+ let [F, w] = await l2.get(Number(y));
1890
+ F ? yield* t.retainedFragments(S(F, w)) : yield* l2.text(w);
1891
+ }
1892
+ }
1893
+ return { register: A, render: h };
1894
+ }
1895
+ var xa = Object.freeze({ ABS: "ABS", ACCRINT: "ACCRINT", ACCRINTM: "ACCRINTM", ACOS: "ACOS", ACOSH: "ACOSH", ACOT: "ACOT", ACOTH: "ACOTH", ADDRESS: "ADDRESS", AMORDEGRC: "AMORDEGRC", AMORLINC: "AMORLINC", AND: "AND", ARABIC: "ARABIC", AREAS: "AREAS", ASC: "ASC", ASIN: "ASIN", ASINH: "ASINH", ATAN: "ATAN", ATAN2: "ATAN2", ATANH: "ATANH", AVEDEV: "AVEDEV", AVERAGE: "AVERAGE", AVERAGEA: "AVERAGEA", AVERAGEIF: "AVERAGEIF", AVERAGEIFS: "AVERAGEIFS", "BINOM.DIST.RANGE": "B", BASE: "BASE", BESSELI: "BESSELI", BESSELJ: "BESSELJ", BESSELK: "BESSELK", BESSELY: "BESSELY", BETADIST: "BETADIST", BETAINV: "BETAINV", BIN2DEC: "BIN2DEC", BIN2HEX: "BIN2HEX", BIN2OCT: "BIN2OCT", BINOMDIST: "BINOMDIST", BITAND: "BITAND", BITLSHIFT: "BITLSHIFT", BITOR: "BITOR", BITRSHIFT: "BITRSHIFT", BITXOR: "BITXOR", CEIL: "CEILING", CELL: "CELL", CHAR: "CHAR", CHOOSE: "CHOOSE", CLEAN: "CLEAN", CODE: "CODE", COLUMN: "COLUMN", COLUMNS: "COLUMNS", "CONFIDENCE.T": "COM.MICROSOFT.CONFIDENCE.T", COMBIN: "COMBIN", COMBINA: "COMBINA", COMPLEX: "COMPLEX", CONCAT: "COM.MICROSOFT.CONCAT", CONCATENATE: "COM.MICROSOFT.CONCAT", CONFIDENCE: "CONFIDENCE", CONVERT: "CONVERT", CORREL: "CORREL", COS: "COS", COSH: "COSH", COT: "COT", COTH: "COTH", COUNT: "COUNT", COUNTA: "COUNTA", COUNTBLANK: "COUNTBLANK", COUNTIF: "COUNTIF", COUNTIFS: "COUNTIFS", COUPDAYBS: "COUPDAYBS", COUPDAYS: "COUPDAYS", COUPDAYSNC: "COUPDAYSNC", COUPNCD: "COUPNCD", COUPNUM: "COUPNUM", COUPPCD: "COUPPCD", COVAR: "COVAR", CRITBINOM: "CRITBINOM", CSC: "CSC", CSCH: "CSCH", CUMIPMT: "CUMIPMT", CUMPRINC: "CUMPRINC", DATE: "DATE", DATEDIF: "DATEDIF", DATEVALUE: "DATEVALUE", DAVERAGE: "DAVERAGE", DAY: "DAY", DAYS: "DAYS", DAYS360: "DAYS360", DB: "DB", DCOUNT: "DCOUNT", DCOUNTA: "DCOUNTA", DDB: "DDB", DEC2BIN: "DEC2BIN", DEC2HEX: "DEC2HEX", DEC2OCT: "DEC2OCT", DECIMAL: "DECIMAL", DEGREES: "DEGREES", DELTA: "DELTA", DEVSQ: "DEVSQ", DGET: "DGET", DISC: "DISC", DMAX: "DMAX", DMIN: "DMIN", DOLLAR: "DOLLAR", DOLLARDE: "DOLLARDE", DOLLARFR: "DOLLARFR", DPRODUCT: "DPRODUCT", DSTDEV: "DSTDEV", DSTDEVP: "DSTDEVP", DSUM: "DSUM", DURATION: "DURATION", DVAR: "DVAR", DVARP: "DVARP", EDATE: "EDATE", EFFECT: "EFFECT", EOMONTH: "EOMONTH", ERF: "ERF", ERFC: "ERFC", "ERROR.TYPE": "ERROR.TYPE", EUROCONVERT: "EUROCONVERT", EVEN: "EVEN", EXACT: "EXACT", EXP: "EXP", EXPONDIST: "EXPONDIST", FACT: "FACT", FACTDOUBLE: "FACTDOUBLE", FALSE: "FALSE", FIND: "FIND", FINDB: "FINDB", FISHER: "FISHER", FISHERINV: "FISHERINV", FIXED: "FIXED", FLOOR: "FLOOR", FORECAST: "FORECAST", "GET.FORMULA": "FORMULA", FREQUENCY: "FREQUENCY", FTEST: "FTEST", FV: "FV", FVSCHEDULE: "FVSCHEDULE", GAMMA: "GAMMA", GAMMADIST: "GAMMADIST", GAMMAINV: "GAMMAINV", GAMMALN: "GAMMALN", GCD: "GCD", GEOMEAN: "GEOMEAN", GESTEP: "GESTEP", GETPIVOTDATA: "GETPIVOTDATA", GROWTH: "GROWTH", HARMEAN: "HARMEAN", HEX2BIN: "HEX2BIN", HEX2DEC: "HEX2DEC", HEX2OCT: "HEX2OCT", HLOOKUP: "HLOOKUP", HOUR: "HOUR", HYPERLINK: "HYPERLINK", HYPGEOMDIST: "HYPGEOMDIST", IF: "IF", IFERROR: "IFERROR", IFNA: "IFNA", IFS: "COM.MICROSOFT.IFS", IMABS: "IMABS", IMAGINARY: "IMAGINARY", IMARGUMENT: "IMARGUMENT", IMCONJUGATE: "IMCONJUGATE", IMCOS: "IMCOS", IMCOT: "IMCOT", IMCSC: "IMCSC", IMCSCH: "IMCSCH", IMDIV: "IMDIV", IMEXP: "IMEXP", IMLN: "IMLN", IMLOG10: "IMLOG10", IMLOG2: "IMLOG2", IMPOWER: "IMPOWER", IMPRODUCT: "IMPRODUCT", IMREAL: "IMREAL", IMSEC: "IMSEC", IMSECH: "IMSECH", IMSIN: "IMSIN", IMSQRT: "IMSQRT", IMSUB: "IMSUB", IMSUM: "IMSUM", IMTAN: "IMTAN", INDEX: "INDEX", INDIRECT: "INDIRECT", INFO: "INFO", INT: "INT", INTERCEPT: "INTERCEPT", INTRATE: "INTRATE", IPMT: "IPMT", IRR: "IRR", ISBLANK: "ISBLANK", ISERR: "ISERR", ISERROR: "ISERROR", ISEVEN: "ISEVEN", ISFORMULA: "ISFORMULA", ISLOGICAL: "ISLOGICAL", ISNA: "ISNA", ISNONTEXT: "ISNONTEXT", ISNUMBER: "ISNUMBER", ISODD: "ISODD", ISOWEEKNUM: "ISOWEEKNUM", ISPMT: "ISPMT", ISREF: "ISREF", ISTEXT: "ISTEXT", JIS: "JIS", KURT: "KURT", LARGE: "LARGE", LCM: "LCM", LEFT: "LEFT", LEFTB: "LEFTB", CHIDIST: "LEGACY.CHIDIST", CHIINV: "LEGACY.CHIINV", CHITEST: "LEGACY.CHITEST", FDIST: "LEGACY.FDIST", FINV: "LEGACY.FINV", NORMSDIST: "LEGACY.NORMSDIST", NORMSINV: "LEGACY.NORMSINV", TDIST: "LEGACY.TDIST", LEN: "LEN", LENB: "LENB", LINEST: "LINEST", LN: "LN", LOG: "LOG", LOG10: "LOG10", LOGEST: "LOGEST", LOGINV: "LOGINV", LOGNORMDIST: "LOGNORMDIST", LOOKUP: "LOOKUP", LOWER: "LOWER", MATCH: "MATCH", MAX: "MAX", MAXA: "MAXA", MAXIFS: "COM.MICROSOFT.MAXIFS", MDETERM: "MDETERM", MDURATION: "MDURATION", MEDIAN: "MEDIAN", MID: "MID", MIDB: "MIDB", MIN: "MIN", MINA: "MINA", MINIFS: "COM.MICROSOFT.MINIFS", MINUTE: "MINUTE", MINVERSE: "MINVERSE", MIRR: "MIRR", MMULT: "MMULT", MOD: "MOD", MODE: "MODE", "MODE.MULT": "COM.MICROSOFT.MODE.MULT", MONTH: "MONTH", MROUND: "MROUND", MULTINOMIAL: "MULTINOMIAL", MUNIT: "MUNIT", N: "N", NA: "NA", NEGBINOMDIST: "NEGBINOMDIST", NETWORKDAYS: "NETWORKDAYS", NOMINAL: "NOMINAL", NORMDIST: "NORMDIST", NORMINV: "NORMINV", NOT: "NOT", NOW: "NOW", NPER: "NPER", NPV: "NPV", NUMBERVALUE: "NUMBERVALUE", OCT2BIN: "OCT2BIN", OCT2DEC: "OCT2DEC", OCT2HEX: "OCT2HEX", ODD: "ODD", ODDFPRICE: "ODDFPRICE", ODDFYIELD: "ODDFYIELD", ODDLPRICE: "ODDLPRICE", ODDLYIELD: "ODDLYIELD", OFFSET: "OFFSET", OR: "OR", G_DURATION: "PDURATION", PEARSON: "PEARSON", PERCENTILE: "PERCENTILE", "PERCENTILE.EXC": "COM.MICROSOFT.PERCENTILE.EXC", PERCENTRANK: "PERCENTRANK", "PERCENTRANK.EXC": "COM.MICROSOFT.PERCENTRANK.EXC", PERMUT: "PERMUT", PERMUTATIONA: "PERMUTATIONA", PI: "PI", PMT: "PMT", POISSON: "POISSON", POWER: "POWER", PPMT: "PPMT", PRICE: "PRICE", PRICEDISC: "PRICEDISC", PRICEMAT: "PRICEMAT", PROB: "PROB", PRODUCT: "PRODUCT", PROPER: "PROPER", PV: "PV", QUARTILE: "QUARTILE", "QUARTILE.EXC": "COM.MICROSOFT.QUARTILE.EXC", QUOTIENT: "QUOTIENT", RADIANS: "RADIANS", RAND: "RAND", RANDBETWEEN: "RANDBETWEEN", RANK: "RANK", "RANK.AVG": "COM.MICROSOFT.RANK.AVG", RATE: "RATE", RECEIVED: "RECEIVED", REPLACE: "REPLACE", REPLACEB: "REPLACEB", REPT: "REPT", RIGHT: "RIGHT", RIGHTB: "RIGHTB", ROMAN: "ROMAN", ROUND: "ROUND", ROUNDDOWN: "ROUNDDOWN", ROUNDUP: "ROUNDUP", ROW: "ROW", ROWS: "ROWS", RRI: "RRI", RSQ: "RSQ", SEARCH: "SEARCH", SEARCHB: "SEARCHB", SEC: "SEC", SECH: "SECH", SECOND: "SECOND", SERIESSUM: "SERIESSUM", SHEET: "SHEET", SHEETS: "SHEETS", SIGN: "SIGN", SIN: "SIN", SINH: "SINH", SKEW: "SKEW", SKEWP: "SKEWP", SLN: "SLN", SLOPE: "SLOPE", SMALL: "SMALL", SQRT: "SQRT", SQRTPI: "SQRTPI", STANDARDIZE: "STANDARDIZE", STDEV: "STDEV", STDEVA: "STDEVA", STDEVP: "STDEVP", STDEVPA: "STDEVPA", STEYX: "STEYX", SUBSTITUTE: "SUBSTITUTE", SUBTOTAL: "SUBTOTAL", SUM: "SUM", SUMIF: "SUMIF", SUMIFS: "SUMIFS", "ODF.SUMPRODUCT": "SUMPRODUCT", SUMSQ: "SUMSQ", SUMX2MY2: "SUMX2MY2", SUMX2PY2: "SUMX2PY2", SUMXMY2: "SUMXMY2", SWITCH: "COM.MICROSOFT.SWITCH", SYD: "SYD", T: "T", TAN: "TAN", TANH: "TANH", TBILLEQ: "TBILLEQ", TBILLPRICE: "TBILLPRICE", TBILLYIELD: "TBILLYIELD", TEXT: "TEXT", TEXTJOIN: "COM.MICROSOFT.TEXTJOIN", "ODF.TIME": "TIME", TIMEVALUE: "TIMEVALUE", TINV: "TINV", TODAY: "TODAY", TRANSPOSE: "TRANSPOSE", TREND: "TREND", TRIM: "TRIM", TRIMMEAN: "TRIMMEAN", TRUE: "TRUE", TRUNC: "TRUNC", TTEST: "TTEST", TYPE: "TYPE", UNICHAR: "UNICHAR", UNICODE: "UNICODE", UPPER: "UPPER", VALUE: "VALUE", VAR: "VAR", VARA: "VARA", VARP: "VARP", VARPA: "VARPA", VDB: "VDB", VLOOKUP: "VLOOKUP", WEEKDAY: "WEEKDAY", WEEKNUM: "WEEKNUM", WEIBULL: "WEIBULL", WORKDAY: "WORKDAY", XIRR: "XIRR", XNPV: "XNPV", XOR: "XOR", YEAR: "YEAR", YEARFRAC: "YEARFRAC", YIELD: "YIELD", YIELDDISC: "YIELDDISC", YIELDMAT: "YIELDMAT", ZTEST: "ZTEST" });
1896
+ async function Ha(n, t, r, e, c, m, f, d, i) {
1897
+ let o = c.element, _ = An(n), a = await m.register({ style: { gnumeric: n }, ..._.Format ? { format: _.Format } : {} }), l2 = ta(n), u2 = Di(e.name, "'", Bi) + "." + Mi(t.startRow, t.startColumn);
1898
+ function S(s, O) {
1899
+ let E = ta(s).find((T2) => zt(T2)?.name === O), p = zt(E)?.text;
1900
+ return typeof p == "string" ? d(p.startsWith("=") ? p : "=" + p, e, t.startRow, t.startColumn).slice(4) : "";
1901
+ }
1902
+ let b = "", g2 = "";
1903
+ for (let s of l2.filter((O) => zt(O)?.name === "Condition")) {
1904
+ c.charge();
1905
+ let O = An(s), E = Number(O.Operator), p = ta(s).find((x) => zt(x)?.name === "Style"), T2 = S(s, "Expression0"), Y = S(s, "Expression1"), C = ["", "", "=", "!=", ">", "<", ">=", "<="];
1906
+ if (!p || !T2 || !Number.isInteger(E) || E < 0 || E > 8) {
1907
+ await f.diagnostic?.({ code: "odf-write-loss", severity: "warning", message: `ODF writer does not export sheet '${e.name}' conditional operator '${O.Operator ?? ""}'` });
1908
+ continue;
1909
+ }
1910
+ let I3 = (await m.register({ style: { gnumeric: p } })).name, M = E === 0 || E === 1 ? `of:cell-content-is-${E === 1 ? "not-" : ""}between(${T2};${Y})` : E === 8 ? `of:is-true-formula(${T2})` : "of:cell-content()" + C[E] + T2;
1911
+ b += o("style:map", { "style:apply-style-name": I3, "style:condition": M, "style:base-cell-address": u2 });
1912
+ }
1913
+ let A = b ? r + "c" : a.name, h = b ? o("style:style", { "style:name": A, "style:family": "table-cell", "style:parent-style-name": a.name }, b) : "", R = l2.find((s) => zt(s)?.name === "Validation"), N = l2.find((s) => zt(s)?.name === "InputMessage"), y;
1914
+ if (R || N) {
1915
+ let s = An(R), O = (s.Type ?? "GNM_VALIDATION_TYPE_ANY").slice(20), E = (s.Operator ?? "GNM_VALIDATION_OP_NONE").slice(18), p = S(R, "Expression0"), T2 = S(R, "Expression1"), Y = { ANY: "", AS_INT: "cell-content-is-whole-number() and ", AS_NUMBER: "cell-content-is-decimal-number() and ", AS_DATE: "cell-content-is-date() and ", AS_TIME: "cell-content-is-time() and " }, C = { EQUAL: " = ", NOT_EQUAL: " != ", GT: " > ", LT: " < ", GTE: " >= ", LTE: " <= " }, I3 = O === "TEXT_LENGTH", M = "";
1916
+ if (O === "CUSTOM") M = `of:is-true-formula(${p})`;
1917
+ else if (O === "IN_LIST") M = `of:cell-content-is-in-list(${p})`;
1918
+ else if (Object.hasOwn(Y, O) || I3) {
1919
+ let x = "of:" + (Y[O] ?? ""), W = I3 ? "cell-content-text-length" : "cell-content";
1920
+ E === "NONE" ? M = x + "is-true-formula(1)" : E === "BETWEEN" || E === "NOT_BETWEEN" ? M = `${x}${W}-is-${E === "NOT_BETWEEN" ? "not-" : ""}between(${p};${T2})` : Object.hasOwn(C, E) && (M = x + W + "()" + C[E] + p);
1921
+ }
1922
+ if (!M) await f.diagnostic?.({ code: "odf-write-loss", severity: "warning", message: `ODF writer does not export sheet '${e.name}' validation type/operator '${O}/${E}'` });
1923
+ else {
1924
+ y = r + "v";
1925
+ let x = An(N), W = (N ? o("table:help-message", { "table:display": "true", "table:title": x.Title }, o("text:p", {}, c.text(x.Message ?? ""))) : "") + (R && s.Style !== "GNM_VALIDATION_STYLE_NONE" ? o("table:error-message", { "table:display": "true", "table:title": s.Title, "table:message-type": s.Style?.endsWith("WARNING") ? "warning" : s.Style?.endsWith("INFO") ? "information" : "stop" }, o("text:p", {}, c.text(s.Message ?? ""))) : "");
1926
+ g2 = o("table:content-validation", { "table:name": y, "table:condition": M, "table:base-cell-address": u2, "table:allow-empty-cell": s.AllowBlank === "1" ? "true" : "false", "table:display-list": s.UseDropdown === "1" ? "unsorted" : "none" }, W);
1927
+ }
1928
+ }
1929
+ let F = l2.find((s) => zt(s)?.name === "HyperLink"), w = An(F);
1930
+ return { styleName: A, styleXml: h, validationName: y, validationXml: g2, ...w.target ? { link: { "xlink:href": w.type === "GnmHLinkCurWB" ? Pi(w.target, "export", c.charge, i) : w.target, "xlink:type": "simple", "office:title": w.tip } } : {} };
1931
+ }
1932
+ var Qe = "urn:oasis:names:tc:opendocument:xmlns:";
1933
+ var ot = { OO_NS_OFFICE: [Qe + "office:1.0", "http://openoffice.org/2000/office"], OO_NS_TABLE: [Qe + "table:1.0", "http://openoffice.org/2000/table"], OO_NS_TEXT: [Qe + "text:1.0", "http://openoffice.org/2000/text"], OO_NS_STYLE: [Qe + "style:1.0", "http://openoffice.org/2000/style"], OO_NS_NUMBER: [Qe + "datastyle:1.0", "http://openoffice.org/2000/datastyle"], OO_NS_DRAW: [Qe + "drawing:1.0", "http://openoffice.org/2000/drawing"], OO_NS_CHART: [Qe + "chart:1.0", "http://openoffice.org/2000/chart"], OO_NS_CHART_OOO: ["http://openoffice.org/2010/chart"], OO_NS_DC: ["http://purl.org/dc/elements/1.1/"], OO_NS_META: [Qe + "meta:1.0", "http://openoffice.org/2000/meta"], OO_NS_SVG: [Qe + "svg-compatible:1.0", "http://www.w3.org/2000/svg"], OO_NS_FORM: [Qe + "form:1.0", "http://openoffice.org/2000/form"], OO_NS_SCRIPT: [Qe + "script:1.0", "http://openoffice.org/2000/script"], OO_NS_LOCALC_EXT: ["urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0"], OO_GNUM_NS_EXT: ["http://www.gnumeric.org/odf-extension/1.0"] };
1934
+ var an = ot.OO_NS_OFFICE;
1935
+ var _t = ot.OO_NS_TABLE;
1936
+ var on = ot.OO_NS_TEXT;
1937
+ var st = ot.OO_NS_STYLE;
1938
+ var bt = ot.OO_NS_NUMBER;
1939
+ var io = /* @__PURE__ */ new Map([["application/vnd.oasis.opendocument.spreadsheet", false], ["application/vnd.oasis.opendocument.spreadsheet-template", false], ["application/vnd.sun.xml.calc", true], ["application/vnd.sun.xml.calc.template", true]]);
1940
+ var oo = Object.fromEntries(Object.entries(ba).map(([n, t]) => {
1941
+ let r = /* @__PURE__ */ new Map();
1942
+ for (let e of t.split(`
1943
+ `)) {
1944
+ let c = e.split(" "), m = c[0] + ":" + c[3], f = r.get(m) ?? [];
1945
+ f.push(c), r.set(m, f);
1946
+ }
1947
+ return [n, r];
1948
+ }));
1949
+ function pe(n) {
1950
+ throw new he("io", `E Invalid OpenDocument: ${n}`);
1951
+ }
1952
+ function de(n) {
1953
+ throw new he("resource-limit", `ssconvert OpenDocument ${n} limit exceeded`);
1954
+ }
1955
+ function z(n, t, r = _t) {
1956
+ return n?.attributes.find((e) => e.localName === t && r.includes(e.namespace))?.value;
1957
+ }
1958
+ function Ft(n, t, r = _t) {
1959
+ return n?.children.filter((e) => e.localName === t && r.includes(e.namespace)) ?? [];
1960
+ }
1961
+ function Tt(n, t = 1) {
1962
+ let r = n === void 0 ? t : Number(n);
1963
+ return (!Number.isSafeInteger(r) || r < 0) && pe("invalid repeat/span count"), r;
1964
+ }
1965
+ function pn(n) {
1966
+ return { name: n.localName, namespace: n.namespace, attributes: n.attributes.filter((t) => t.namespace !== "http://www.w3.org/2000/xmlns/").map((t) => ({ name: t.localName, namespace: t.namespace, value: t.value })), text: n.text, children: n.children.map(pn), ...n.children.length ? { content: n.content.flatMap((t) => t.kind === "text" || t.kind === "cdata" ? [{ kind: "text", text: t.text }] : t.kind === "element" ? [{ kind: "element", index: n.children.indexOf(t) }] : []) } : {} };
1967
+ }
1968
+ function tn(n, t = {}) {
1969
+ return { source: "Gnumeric_OpenCalc:openoffice", kind: n.localName, disposition: "retained", data: { xml: pn(n), ...t } };
1970
+ }
1971
+ async function Un(n, t, r = "odf-import-warning") {
1972
+ let e = qi(t.environment) === "C" ? Array.from(n, (c) => c.codePointAt(0) < 128 ? c : "?").join("") : n;
1973
+ await t.diagnostic?.({ code: r, severity: "warning", message: n, bytes: new TextEncoder().encode(e) });
1974
+ }
1975
+ function qa(n) {
1976
+ return { maxArchiveBytes: Math.min(n.limits.inputBytes, n.limits.compressedBytes ?? n.limits.inputBytes), maxEntryBytes: Math.min(n.limits.inputBytes, n.limits.inflatedBytes ?? n.limits.inputBytes), maxTotalBytes: Math.min(n.limits.inputBytes, n.limits.inflatedBytes ?? n.limits.inputBytes), maxMembers: n.limits.zipEntries ?? n.limits.workbookNodes ?? 1 / 0, maxPathBytes: 1 / 0, maxDepth: n.limits.xmlDepth ?? 1 / 0, maxPaxBytes: n.limits.inputBytes, maxTextBytes: n.limits.workbookTextBytes ?? n.limits.inputBytes, chunkSize: 16384 };
1977
+ }
1978
+ function Ja(n, t) {
1979
+ let r = "compressedSize" in n ? n.compressedSize : n.data.length;
1980
+ return n.size > (t.limits.zipRatio ?? 1 / 0) * Math.max(1, r) && de("ZIP ratio"), n.directory ? false : ((n.symlink || n.name.startsWith("/") || n.name.includes("\\") || n.name.split("/").some((e) => !e || e === "." || e === "..")) && pe("noncanonical ZIP member"), true);
1981
+ }
1982
+ function Wa(n, t) {
1983
+ let r = /* @__PURE__ */ new Map();
1984
+ for (let e of n) Ja(e, t) && r.set(e.name, e);
1985
+ return r;
1986
+ }
1987
+ async function Qa(n, t) {
1988
+ t.signal.throwIfAborted();
1989
+ let r = createZipCodec(void 0, { rejectDuplicateNames: true, zip64: true }), e = qa(t), c;
1990
+ if (!(n instanceof Uint8Array)) {
1991
+ let a = n.read.bind(n);
1992
+ c = Hi({ size: n.size, async read(l2, u2, S) {
1993
+ try {
1994
+ return await a(l2, u2, S);
1995
+ } catch (b) {
1996
+ throw new ZipStorageFailure(b);
1997
+ }
1998
+ } }, t.signal, () => t.signal.throwIfAborted(), t.own);
1999
+ }
2000
+ let m, f, d = async () => {
2001
+ };
2002
+ if (c && t.createWorkingStorage) {
2003
+ let a = createStoredZipEntries(t.createWorkingStorage.bind(t), c);
2004
+ d = a.close;
2005
+ let l2 = 0;
2006
+ try {
2007
+ f = (await r.readZipArchive(c, e, t.signal, { storage: a.storage, async onEntry(S) {
2008
+ Ja(S, t) && (await a.set(S), l2++);
2009
+ } })).members;
2010
+ } catch (u2) {
2011
+ throw await d(), u2;
2012
+ }
2013
+ m = { get: a.get, size: l2 };
2014
+ } else {
2015
+ let a = c ? await r.readZipArchive(c, e, t.signal) : await r.readZipArchive(new Uint8Array(n), e, t.signal);
2016
+ f = a.entries.length, m = Wa(a.entries, t);
2017
+ }
2018
+ let i = { get size() {
2019
+ return m.size;
2020
+ }, async get(a) {
2021
+ return m.get(a);
2022
+ }, async has(a) {
2023
+ return await m.get(a) !== void 0;
2024
+ } };
2025
+ try {
2026
+ let g2 = function(E = 1) {
2027
+ t.signal.throwIfAborted(), E > (t.limits.workbookWork ?? 1 / 0) - b && de("work"), b += E;
2028
+ }, s = function(E) {
2029
+ E > (t.limits.workbookTextBytes ?? e.maxTotalBytes) - S && de("retained text"), S += E;
2030
+ };
2031
+ var o = g2, _ = s;
2032
+ let a = await i.has("encrypted-package") ? /* @__PURE__ */ new Set() : void 0;
2033
+ a && t.own(() => {
2034
+ for (let E of a) E.fill(0);
2035
+ });
2036
+ let l2 = 0, u2 = 0, S = 0, b = 0, A = /* @__PURE__ */ new Map(), h = /* @__PURE__ */ new Set();
2037
+ async function* R(E) {
2038
+ let p = A.get(E);
2039
+ if (p) {
2040
+ for (let C = 0; C < p.length; C += e.chunkSize) t.signal.throwIfAborted(), yield p.subarray(C, C + e.chunkSize);
2041
+ return;
2042
+ }
2043
+ let T2 = await i.get(E);
2044
+ T2 || pe(`missing part '${E}'`);
2045
+ let Y = !h.has(E);
2046
+ for await (let C of r.decodeZipEntry(T2, e, t.signal)) try {
2047
+ Y && (C.length > e.maxTotalBytes - l2 && de("decoded bytes"), l2 += C.length, g2(C.length)), yield C;
2048
+ } finally {
2049
+ a && C.fill(0);
2050
+ }
2051
+ h.add(E);
2052
+ }
2053
+ async function N(E) {
2054
+ let p = A.get(E);
2055
+ if (p) return p;
2056
+ let T2 = [], Y = 0;
2057
+ for await (let M of R(E)) {
2058
+ let x = new Uint8Array(M);
2059
+ a?.add(x), Y += x.length, T2.push(x);
2060
+ }
2061
+ let C = new Uint8Array(Y), I3 = 0;
2062
+ a?.add(C);
2063
+ for (let M of T2) C.set(M, I3), I3 += M.length;
2064
+ return A.set(E, C), C;
2065
+ }
2066
+ async function y(E, p) {
2067
+ let T2 = { expectedEncoding: "UTF-8", ...p ? { streamElements: p } : {}, retainContent: true, maxDepth: t.limits.xmlDepth ?? 1 / 0, maxNodes: (t.limits.workbookNodes ?? 1 / 0) - u2, maxAttributes: t.limits.workbookNodes ?? 1 / 0, maxTextLength: e.maxTextBytes, onElement() {
2068
+ u2++, g2();
2069
+ } };
2070
+ async function* Y() {
2071
+ let I3 = new Uint8Array(2), M = 0, x;
2072
+ for await (let W of R(E)) {
2073
+ W.length > (t.limits.workbookTextBytes ?? e.maxTotalBytes) - S && de("XML text"), S += W.length;
2074
+ let v = 0;
2075
+ if (!x) {
2076
+ for (; M < 2 && v < W.length; ) I3[M++] = W[v++];
2077
+ if (M < 2) continue;
2078
+ (I3[0] === 255 && I3[1] === 254 || I3[0] === 60 && I3[1] === 0) && (T2.expectedEncoding = "UTF-16LE"), (I3[0] === 254 && I3[1] === 255 || I3[0] === 0 && I3[1] === 60) && (T2.expectedEncoding = "UTF-16BE"), x = new TextDecoder(T2.expectedEncoding, { fatal: true }), yield x.decode(I3, { stream: true });
2079
+ }
2080
+ yield x.decode(W.subarray(v), { stream: true });
2081
+ }
2082
+ yield x ? x.decode() : new TextDecoder("UTF-8", { fatal: true }).decode(I3.subarray(0, M));
2083
+ }
2084
+ let C = 0;
2085
+ return Xi(Y(), T2, async (I3) => {
2086
+ g2(I3), I3 && ++C % 64 === 0 && await new Promise((M) => setTimeout(M, 0));
2087
+ });
2088
+ }
2089
+ async function F(E, p) {
2090
+ let T2 = new Uint8Array(p), Y = 0;
2091
+ for await (let C of R(E)) {
2092
+ let I3 = Math.min(C.length, p - Y);
2093
+ T2.set(C.subarray(0, I3), Y), Y += I3;
2094
+ }
2095
+ return T2.subarray(0, Y);
2096
+ }
2097
+ async function w(E) {
2098
+ return await i.has("mimetype") ? io.get(new TextDecoder().decode(await F("mimetype", 2048))) : await i.has("content.xml") && new TextDecoder().decode(await F("content.xml", 512)).includes(an[0]) ? false : E;
2099
+ }
2100
+ async function O(E) {
2101
+ let p = await i.has("encrypted-package"), T2 = p && await i.has("mimetype") ? await N("mimetype") : void 0;
2102
+ if (p) {
2103
+ let C = z(E.children[0], "media-type", [Qe + "manifest:1.0"]);
2104
+ (!T2 || C !== new TextDecoder().decode(T2) || !["application/vnd.oasis.opendocument.spreadsheet", "application/vnd.oasis.opendocument.spreadsheet-template"].includes(C)) && pe("inconsistent encrypted package media type");
2105
+ }
2106
+ let Y = await pa(E, i, N, t, g2, e.maxTotalBytes - l2, e.maxEntryBytes);
2107
+ if (p) {
2108
+ let C = Y.get("encrypted-package");
2109
+ (!C || Y.size !== 1) && pe("missing encrypted package declaration"), l2 += C.length;
2110
+ let I3 = new Uint8Array(C);
2111
+ a.add(I3);
2112
+ let M = e.maxMembers - f;
2113
+ M < 1 && de("ZIP members");
2114
+ let x = await r.readZipArchive(I3, { ...e, maxMembers: M, maxTotalBytes: e.maxTotalBytes - l2 }, t.signal);
2115
+ for (let ne of x.entries) for (let K of [ne.data, ne.rawName, ne.localName, ne.comment, ne.localExtra, ne.centralExtra]) K && a.add(K);
2116
+ a.add(x.comment);
2117
+ let W = Wa(x.entries, t);
2118
+ W.has("encrypted-package") && pe("nested encrypted package"), m = W, A.clear(), h.clear(), await i.has("mimetype") || pe("missing inner package media type");
2119
+ let v = await N("mimetype");
2120
+ (v.length !== T2.length || !v.every((ne, K) => ne === T2[K])) && pe("inconsistent encrypted package media type");
2121
+ return;
2122
+ }
2123
+ for (let [C, I3] of Y) l2 += I3.length, A.set(C, I3);
2124
+ }
2125
+ return { entries: i, read: N, document: y, version: w, charge: g2, retainText: s, decrypt: O, close: d };
2126
+ } catch (a) {
2127
+ throw await d(), a;
2128
+ }
2129
+ }
2130
+ function Za(n, t) {
2131
+ if (t.signal.throwIfAborted(), n instanceof ZipStorageFailure) throw n.cause;
2132
+ if (n instanceof SyntaxError && n.message === "Invalid XML: DTD and entity declarations are forbidden") throw new he("capability-denied", "ssconvert host denies XML DTD and entity declarations");
2133
+ if (n instanceof he) throw n;
2134
+ (n instanceof vi || n instanceof CodecError && n.code === "resource-limit") && de("package"), pe(n instanceof Error ? n.message : "invalid package");
2135
+ }
2136
+ async function Ls(n, t) {
2137
+ try {
2138
+ let r = t.inputFilename?.toLowerCase(), e = r?.endsWith(".sxc") || r?.endsWith(".stc"), c = await Qa(n, t);
2139
+ try {
2140
+ return await c.version(e ? true : void 0) !== void 0;
2141
+ } finally {
2142
+ await c.close();
2143
+ }
2144
+ } catch (r) {
2145
+ return t.signal.throwIfAborted(), r instanceof CodecError && r.code === "invalid-package" || r instanceof he && r.code === "io" ? false : Za(r, t);
2146
+ }
2147
+ }
2148
+ async function na(n, t, r, e, c) {
2149
+ let m = oo[t];
2150
+ async function f(i, o, _) {
2151
+ e();
2152
+ let a = m.get(o + ":" + i.localName)?.find((S) => ot[S[2]].includes(i.namespace));
2153
+ if (!a) {
2154
+ Object.values(ot).some((S) => S.includes(i.namespace)) && await Un(`Unexpected element '${i.name}' in state :
2155
+ ${_.join(" -> ")}
2156
+ `, r, "odf-unknown-element");
2157
+ return;
2158
+ }
2159
+ if (c?.has(i)) {
2160
+ let S = { ...i, children: [], content: [], text: "" };
2161
+ for await (let b of c.content(i)) {
2162
+ let g2 = b.kind === "element" ? await f(b, a[1], [..._, i.localName]) : b;
2163
+ g2 && await c.append(S, [g2]);
2164
+ }
2165
+ return S;
2166
+ }
2167
+ let l2 = [], u2 = /* @__PURE__ */ new Map();
2168
+ for (let S of i.children) {
2169
+ let b = await f(S, a[1], [..._, i.localName]);
2170
+ b && (l2.push(b), u2.set(S, b));
2171
+ }
2172
+ return { ...i, children: l2, content: i.content.flatMap((S) => S.kind !== "element" ? [S] : u2.has(S) ? [u2.get(S)] : []) };
2173
+ }
2174
+ let d = await f(n, "START", []);
2175
+ return d || pe(`unrecognized ${t} root`), d;
2176
+ }
2177
+ function oa(n, t) {
2178
+ let r = Ft(n, "p", on);
2179
+ if (!r.length) return;
2180
+ function e(c) {
2181
+ let m = "";
2182
+ for (let f of c.content) if (t(), f.kind === "text" || f.kind === "cdata") m += f.text;
2183
+ else if (f.kind === "element" && on.includes(f.namespace)) if (f.localName === "s") {
2184
+ let d = Tt(z(f, "c", on));
2185
+ t(d), m += " ".repeat(d);
2186
+ } else f.localName === "tab" || f.localName === "tab-stop" ? m += " " : f.localName === "line-break" ? m += `
2187
+ ` : ["span", "a"].includes(f.localName) && (m += e(f));
2188
+ return m;
2189
+ }
2190
+ return r.map(e).join(`
2191
+ `);
2192
+ }
2193
+ function ro(n, t) {
2194
+ t(n.length);
2195
+ let r = n[0] === "-", e = r ? 1 : 0;
2196
+ if (n[e++] !== "P") return;
2197
+ let c = false, m = -1, f = 0, d = 0;
2198
+ for (; e < n.length; ) {
2199
+ if (n[e] === "T") {
2200
+ if (c || ++e === n.length) return;
2201
+ c = true;
2202
+ continue;
2203
+ }
2204
+ let i = e;
2205
+ for (; n[e] !== void 0 && n[e] >= "0" && n[e] <= "9"; ) e++;
2206
+ if (i === e) return;
2207
+ let o = n[e] === ".";
2208
+ if (o) {
2209
+ let u2 = ++e;
2210
+ for (; n[e] !== void 0 && n[e] >= "0" && n[e] <= "9"; ) e++;
2211
+ if (e === u2) return;
2212
+ }
2213
+ let _ = Number(n.slice(i, e)), a = n[e++], l2 = "DHMS".indexOf(a ?? "?");
2214
+ if (l2 <= m || l2 < 0 || (c ? a === "D" : a !== "D") || o && a !== "S" || (m = l2, f++, d += _ * [86400, 3600, 60, 1][l2], !Number.isFinite(d))) return;
2215
+ }
2216
+ if (f) return d === 0 ? 0 : (r ? -d : d) / 86400;
2217
+ }
2218
+ function so(n, t, r, e) {
2219
+ let c = t ? _t : an;
2220
+ for (let f of n.attributes) if (c.includes(f.namespace)) {
2221
+ if (f.localName === "value") {
2222
+ let d = Number(f.value);
2223
+ if (Number.isFinite(d)) return { kind: "number", value: d };
2224
+ }
2225
+ if (f.localName === "boolean-value") return { kind: "boolean", value: f.value.toLowerCase() !== "false" && f.value !== "0" };
2226
+ if (f.localName === "string-value") return { kind: "string", value: f.value };
2227
+ if (f.localName === "date-value") {
2228
+ let d = f.value.split("T"), i = d[0].split("-").map(Number);
2229
+ if (i.length !== 3 || i.some((a) => !Number.isInteger(a))) continue;
2230
+ let o = Ki(i[0], i[1], i[2]);
2231
+ if (o.getUTCFullYear() !== i[0] || o.getUTCMonth() + 1 !== i[1] || o.getUTCDate() !== i[2]) continue;
2232
+ let _ = 0;
2233
+ if (d[1]) {
2234
+ let a = d[1].split(":"), l2 = parseFloat(a[2] ?? ""), u2 = Number(a[0]), S = Number(a[1]);
2235
+ a.length >= 3 && Number.isInteger(u2) && Number.isInteger(S) && Number.isFinite(l2) && (_ = (u2 + S / 60 + l2 / 3600) / 24);
2236
+ }
2237
+ return { kind: "number", value: ji(o, { book: { sheets: [], dateSystem: r } }) + _ };
2238
+ }
2239
+ if (f.localName === "time-value") {
2240
+ let d = ro(f.value, e);
2241
+ if (d !== void 0) return { kind: "number", value: d };
2242
+ }
2243
+ }
2244
+ let m = oa(n, e);
2245
+ return m !== void 0 && (t || z(n, "value-type", an) !== void 0) ? { kind: "string", value: m } : void 0;
2246
+ }
2247
+ async function Va(n, t, r, e, c, m) {
2248
+ let f = t ? ia : jt;
2249
+ if (!t && n.startsWith("oooc:") ? (f = ia, n = n.slice(5)) : !t && n.startsWith("of:") ? n = n.slice(3) : !t && n.startsWith("msoxl:") && (f = { ...aa, leftAssociativePower: true }, n = n.slice(6)), n === "=") return;
2250
+ let d = nn(n, { maximumDepth: e.limits.formulaDepth, grammar: f, position: r, workbook: c, onWork: m, signal: e.signal, maximumLength: e.limits.workbookTextBytes ?? e.limits.inputBytes, maximumNodes: e.limits.workbookNodes ?? 1 / 0 });
2251
+ if (!d.ok) {
2252
+ await Un(`${r.sheet}!${Fn(r.row, r.column)} : Unable to parse '${n}'
2253
+ `, e);
2254
+ return;
2255
+ }
2256
+ let i = false;
2257
+ return Vi(d.document.root, (o) => {
2258
+ o.kind === "reference" && (o.first.sheet && o.first.sheetRelative || o.last?.sheet && o.last.sheetRelative) && (i = true);
2259
+ }), Ka(d.document, i ? zi : { ...aa, quoteSheetName: $i }, false, true);
2260
+ }
2261
+ function hs(n, t) {
2262
+ return t.createWorkingStorage ? lo(n, t, true) : Promise.resolve(void 0);
2263
+ }
2264
+ async function lo(n, t, r = false) {
2265
+ let e, c, m, f;
2266
+ try {
2267
+ f = await (async () => {
2268
+ let i = await Qa(n, t);
2269
+ e = i.close;
2270
+ let o = await i.version(true);
2271
+ o === void 0 && pe("Unknown mimetype for openoffice file.");
2272
+ let _ = o, a = await i.entries.has("encrypted-package");
2273
+ !a && !await i.entries.has("content.xml") && pe("No stream named content.xml found.");
2274
+ let l2 = await i.entries.has("META-INF/manifest.xml") ? await i.document("META-INF/manifest.xml") : void 0;
2275
+ a && !l2 && pe("missing encrypted package manifest"), l2 && ((l2.localName !== "manifest" || ![Qe + "manifest:1.0", "http://openoffice.org/2001/manifest"].includes(l2.namespace)) && pe("invalid manifest"), (a || l2.children.some((J) => J.children.some((V) => V.localName === "encryption-data"))) && await i.decrypt(l2)), a && (await i.entries.has("content.xml") || pe("No stream named content.xml found."), l2 = await i.entries.has("META-INF/manifest.xml") ? await i.document("META-INF/manifest.xml") : void 0, l2 && (l2.localName !== "manifest" || l2.namespace !== Qe + "manifest:1.0" || l2.children.some((J) => J.children.some((V) => V.localName === "encryption-data"))) && pe("invalid inner package manifest")), t.createWorkingStorage && (c = ua(t, _t));
2276
+ let u2 = await i.document("content.xml", c?.streamElements), S = (J) => c ? c.children(J) : J.children;
2277
+ async function b(J) {
2278
+ if (i.charge(), J.attributes.some((V) => V.localName === "formula") || ["named-expression", "named-range"].includes(J.localName)) return true;
2279
+ for await (let V of S(J)) if (await b(V)) return true;
2280
+ return false;
2281
+ }
2282
+ r && await b(u2) && (r = false);
2283
+ let g2 = r ? ma(t) : void 0, A = await na(u2, _ ? "ooo1_content_dtd" : "opendoc_content_dtd", t, i.charge, c), h = [A];
2284
+ await i.entries.has("styles.xml") && h.unshift(await na(await i.document("styles.xml"), "styles_dtd", t, i.charge));
2285
+ let R = await na(u2, _ ? "ooo1_content_dtd" : "opendoc_content_dtd", t, i.charge, c), N = Ft(R, "body", an)[0], y = _ ? N : Ft(N, "spreadsheet", an)[0];
2286
+ y || pe("missing spreadsheet body");
2287
+ let F = Ft(y, "calculation-settings")[0], w = z(Ft(F, "null-date")[0], "date-value")?.startsWith("1904") ? "1904" : "1900", s = [], O = co(h, i.charge), E = Mn(h, i.charge);
2288
+ for (let J of h) for (let V of J.children) ["styles", "automatic-styles", "master-styles", "font-face-decls", "font-decls"].includes(V.localName) && s.push(tn(V, { packagePart: J === A ? "content.xml" : "styles.xml" }));
2289
+ l2 && s.push(tn(l2));
2290
+ for (let J of ["meta.xml", "settings.xml"]) await i.entries.has(J) && s.push(tn(await i.document(J)));
2291
+ let p = /* @__PURE__ */ new Set();
2292
+ async function T2(J, V = "") {
2293
+ for await (let se of S(J)) {
2294
+ if (i.charge(), ot.OO_NS_DRAW.includes(se.namespace) && ["image", "object", "object-ole"].includes(se.localName)) {
2295
+ let Re = z(se, "href", ["http://www.w3.org/1999/xlink"]);
2296
+ if (Re && !Re.includes(":") && !Re.startsWith("/") && !Re.startsWith("#")) {
2297
+ let ge;
2298
+ try {
2299
+ ge = decodeURIComponent(Re);
2300
+ } catch {
2301
+ pe("invalid embedded resource URI");
2302
+ }
2303
+ (ge.includes("\\") || ge.includes(":")) && pe("invalid embedded resource path");
2304
+ let be = V.split("/").filter(Boolean);
2305
+ for (let Ee of ge.split("/")) Ee === ".." ? (be.length || pe("embedded resource escapes package"), be.pop()) : Ee && Ee !== "." && be.push(Ee);
2306
+ let le = be.join("/"), Le = se.localName === "object" ? [le + "/content.xml", le + "/styles.xml"] : [le];
2307
+ for (let Ee of Le) if (!p.has(Ee) && await i.entries.has(Ee)) if (p.add(Ee), Ee.endsWith(".xml") && se.localName === "object") {
2308
+ let we = await i.document(Ee);
2309
+ s.push({ source: "Gnumeric_OpenCalc:openoffice", kind: "embedded-document", disposition: "retained", data: { path: Ee, xml: pn(we) } }), await T2(we, Ee.slice(0, Ee.lastIndexOf("/")));
2310
+ } else {
2311
+ let we = await i.read(Ee);
2312
+ i.retainText(we.length * 2), i.charge(we.length);
2313
+ let fe = "";
2314
+ for (let Ne of we) fe += Ne.toString(16).padStart(2, "0");
2315
+ s.push({ source: "Gnumeric_OpenCalc:openoffice", kind: "embedded-resource", disposition: "retained", data: { path: Ee, encoding: "hex", bytes: fe } });
2316
+ }
2317
+ }
2318
+ }
2319
+ await T2(se, V);
2320
+ }
2321
+ }
2322
+ await T2(R);
2323
+ let Y = [], C = [], I3 = 0, M = 0, x = [], W = /* @__PURE__ */ new Map(), v = /* @__PURE__ */ new Set(), ne, K = Ft(y, "table");
2324
+ K.length > t.limits.sheets && de("sheets");
2325
+ let G = K.map((J, V) => (i.charge(), z(J, "name") ?? `Sheet${V + 1}`)), j = /* @__PURE__ */ new Set();
2326
+ for (let [J, V] of K.entries()) {
2327
+ let rt = function(ce, q = {}) {
2328
+ ++M > (t.limits.workbookNodes ?? 1 / 0) && de("metadata"), we.push(tn(ce, q));
2329
+ }, ie = function(ce, q, oe) {
2330
+ let ae = q;
2331
+ for (; ae < ce && ae < oe; ) ae *= 2;
2332
+ return Math.min(ae, oe);
2333
+ };
2334
+ var et = rt, lt = ie;
2335
+ i.charge();
2336
+ let se = G[J];
2337
+ j.has(se) && pe("duplicate sheet name"), j.add(se);
2338
+ let Re = se, ge = [], be = [], le = [], Le = [], Ee = [], we = [], fe = g2 ? { ordinal: J, rows: g2.axes.axis(), columns: g2.axes.axis() } : void 0;
2339
+ fe && g2.sheets.set(Re, fe);
2340
+ let Ne = 0, ut = 0, xe = 0, tt = 0, Ot = [], ht = O.resolve(z(V, "style-name"), "table");
2341
+ async function L(ce, q, oe = 0) {
2342
+ for await (let ae of S(ce)) {
2343
+ if (i.charge(), !_t.includes(ae.namespace)) continue;
2344
+ if (ae.localName === `table-${q}-group` || ae.localName === `table-header-${q}s` || ae.localName === `table-${q}s`) {
2345
+ await L(ae, q, oe + (ae.localName.endsWith("-group") ? 1 : 0));
2346
+ continue;
2347
+ }
2348
+ if (ae.localName !== `table-${q}`) continue;
2349
+ let Be = Tt(z(ae, `number-${q}s-repeated`)), $e = q === "row" ? Ne : ut, rn = q === "row" ? me.rows : me.columns;
2350
+ Be > rn - $e && de(`${q} extent`);
2351
+ let yt = O.resolve(z(ae, "style-name"), `table-${q}`), Ut = z(ae, "default-cell-style-name"), Yt = O.axisSize(z(ae, "style-name"), q), Kt = z(ae, "visibility") !== void 0 && z(ae, "visibility") !== "visible";
2352
+ if (Yt !== void 0 || Kt || oe || yt) {
2353
+ Be > (t.limits.workbookNodes ?? 1 / 0) - M && de("axis metadata");
2354
+ for (let re = 0; re < Be; re++) {
2355
+ i.charge(), M++, re > 0 && re % 1024 === 0 && (await new Promise((nt) => setTimeout(nt, 0)), i.charge());
2356
+ let Pe = { index: $e + re, ...Yt === void 0 ? {} : { sizePoints: Yt }, ...Kt ? { hidden: Kt } : {}, ...oe ? { outlineLevel: oe } : {}, ...yt ? { style: yt.style } : {} };
2357
+ fe ? await (q === "row" ? fe.rows : fe.columns).add(Pe) : (q === "row" ? be : le).push(Pe);
2358
+ }
2359
+ }
2360
+ if (q === "column") {
2361
+ Ut && Ot.push({ start: $e, end: $e + Be, name: Ut }), ut += Be;
2362
+ continue;
2363
+ }
2364
+ let Ce = 0;
2365
+ for await (let re of S(ae)) {
2366
+ if (i.charge(), !_t.includes(re.namespace) || !["table-cell", "covered-table-cell"].includes(re.localName)) continue;
2367
+ let Pe = Tt(z(re, "number-columns-repeated"));
2368
+ if (Pe > me.columns - Ce && de("column extent"), re.localName === "covered-table-cell") {
2369
+ Ce += Pe;
2370
+ continue;
2371
+ }
2372
+ let nt = z(re, "formula"), Ue = so(re, _, w, i.charge), Je = nt && !["=", "of:=", "oooc:="].includes(nt) ? nt : void 0, gt = re.attributes.findIndex((P) => P.localName === "error-value" && ot.OO_GNUM_NS_EXT.includes(P.namespace)), Rn = re.attributes.findIndex((P) => P.localName === "formula" && _t.includes(P.namespace));
2373
+ if (Je && gt >= 0 && gt < Rn) {
2374
+ let P = Je.startsWith("msoxl:"), k = nn(P ? Je.slice(6) : Je, { maximumDepth: t.limits.formulaDepth, grammar: P ? aa : _ ? ia : jt, position: { sheet: Re, row: Ne, column: Ce }, signal: t.signal, maximumLength: t.limits.workbookTextBytes ?? t.limits.inputBytes, maximumNodes: t.limits.workbookNodes ?? 1 / 0 });
2375
+ k.ok && k.document.root.kind === "literal" && k.document.root.value.kind === "error" && (Ue = k.document.root.value, Je = void 0);
2376
+ }
2377
+ let sn = nt === "=" || nt === "of:=" || nt === "oooc:=", je = re.attributes.some((P) => (_ ? _t : an).includes(P.namespace) && ["value", "boolean-value", "string-value", "date-value", "time-value"].includes(P.localName));
2378
+ if (sn) {
2379
+ let P = { kind: "error", value: oa(re, i.charge) ?? "#VALUE!" };
2380
+ if (ne) {
2381
+ let k = ne.cells.findIndex((X2) => X2.row === ne.row && X2.column === ne.column);
2382
+ k >= 0 && (ne.cells[k] = { ...ne.cells[k], value: P }), je || (Ue = void 0);
2383
+ } else Ue = P, ne = { cells: ge, row: Ne, column: Ce };
2384
+ } else !Je && !je && Ue?.kind === "string" && (ne = { cells: ge, row: Ne, column: Ce });
2385
+ let ln = z(re, "style-name") ?? Ut ?? Ot.find((P) => Ce >= P.start && Ce < P.end)?.name, xt = O.resolve(ln) ?? O.defaultCell, Ht = z(re, "columns-spanned-fake", ot.OO_GNUM_NS_EXT) === "true" ? 1 : Tt(z(re, "number-columns-spanned")), wt = Tt(z(re, "number-rows-spanned"));
2386
+ (Ht > me.columns - Ce || wt > me.rows - Ne) && de("merge extent"), (Ht > 1 || wt > 1) && (Le.push({ startRow: Ne, startColumn: Ce, endRow: Ne + wt - 1, endColumn: Ce + Ht - 1 }), xe = Math.max(xe, Ne + wt), tt = Math.max(tt, Ce + Ht));
2387
+ let Ct = Tt(z(re, "number-matrix-columns-spanned"), 0), It = Tt(z(re, "number-matrix-rows-spanned"), 0), bn = z(re, "content-validation-name"), D = Ue?.kind === "string" ? E(re) : void 0, H = Ue?.kind === "string" && D?.value === Ue.value ? D.richText : void 0;
2388
+ for (let P of re.children) if (P.namespace !== on[0] && P.namespace !== on[1] || P.localName !== "p") {
2389
+ let k = P.localName === "annotation" && ot.OO_NS_OFFICE.includes(P.namespace) ? Vn(P, E) : void 0;
2390
+ rt(P, { row: Ne, column: Ce, ...k ? { sourceComment: JSON.stringify([k.Author ?? null, k.Text, k.TextFormat ?? null]) } : {} });
2391
+ }
2392
+ let ee = Ft(re, "p", on);
2393
+ if (ee.some((P) => P.children.length || P.attributes.some((k) => k.namespace !== "http://www.w3.org/2000/xmlns/"))) for (let P of ee) rt(P, { row: Ne, column: Ce, rows: Be, columns: Pe, sourceText: D?.value ?? oa(re, i.charge) ?? "", sourceRichText: (H ?? []).map((k) => ({ start: k.start, end: k.end, attributes: k.attributes })) });
2394
+ if (bn && rt(re, { row: Ne, column: Ce, rows: Be, columns: Pe, validation: bn }), Ue || Je) {
2395
+ let P = Be * Pe;
2396
+ (!Number.isSafeInteger(P) || P > t.limits.cells - I3) && de("cells"), I3 += P;
2397
+ for (let k = 0; k < Be; k++) for (let X2 = 0; X2 < Pe; X2++) {
2398
+ i.charge();
2399
+ let Te = k === 0 && X2 === 0;
2400
+ k * Pe + X2 > 0 && (k * Pe + X2) % 1024 === 0 && (await new Promise((Ve) => setTimeout(Ve, 0)), i.charge());
2401
+ let He = z(re, "style-name") ?? Ut ?? Ot.find((Ve) => Ce + X2 >= Ve.start && Ce + X2 < Ve.end)?.name, te = X2 === 0 ? xt : O.resolve(He) ?? O.defaultCell, We = { row: Ne + k, column: Ce + X2, value: Ue ?? { kind: "blank" }, ...Te && Je ? { formula: Je, formulaDirty: true, ...Ue === void 0 ? {} : { cachedResult: Ue } } : {}, ...H?.length ? { richText: H } : {}, ...te?.format ? { format: te.format } : {}, ...te ? { style: te.style } : {} };
2402
+ g2 ? await g2.cells.append(J, We) : ge.push(We);
2403
+ }
2404
+ xe = Math.max(xe, Ne + Be), tt = Math.max(tt, Ce + Pe);
2405
+ } else xt && rt(re, { row: Ne, column: Ce, rows: Be, columns: Pe, styleName: ln ?? "" });
2406
+ if (Je) {
2407
+ let P = { sheet: Re, row: Ne, column: Ce };
2408
+ x.push(async (k) => {
2409
+ i.charge();
2410
+ let X2 = await Va(Je, _, P, t, k, i.charge), Te = W.get(Re), He = Te.get(`${P.row}:${P.column}`);
2411
+ if (X2) {
2412
+ let te;
2413
+ if (Ct || It) {
2414
+ let We = Ct || 1, Ve = It || 1;
2415
+ (!Ct || !It) && await Un(`${Re}!${Fn(P.row, P.column)} : Invalid array expression does not specify number of ${Ct ? "rows" : "columns"}.
2416
+ `, t), (We > me.columns - P.column || Ve > me.rows - P.row) && de("array extent"), te = `array-${P.row}-${P.column}`, Ee.push({ id: te, kind: "array", expression: X2, range: { startRow: P.row, startColumn: P.column, endRow: P.row + Ve - 1, endColumn: P.column + We - 1 } });
2417
+ }
2418
+ ge[He] = { ...ge[He], formula: X2, ...te ? { formulaGroup: te } : {} };
2419
+ } else if (++M > (t.limits.workbookNodes ?? 1 / 0) && de("metadata"), we.push({ source: "Gnumeric_OpenCalc:openoffice", kind: "unparsed-formula", disposition: "retained", data: { row: P.row, column: P.column, formula: nt, rows: Be, columns: Pe } }), Ue !== void 0) {
2420
+ let { formula: te, formulaDirty: We, cachedResult: Ve, ...Ln } = ge[He];
2421
+ ge[He] = Ln;
2422
+ } else {
2423
+ for (let te = 0; te < Be; te++) for (let We = 0; We < Pe; We++) {
2424
+ i.charge();
2425
+ let Ve = Te.get(`${P.row + te}:${P.column + We}`);
2426
+ v.add(ge[Ve]), I3--;
2427
+ }
2428
+ xt && rt(re, { row: P.row, column: P.column, rows: Be, columns: Pe, styleName: ln ?? "" });
2429
+ }
2430
+ });
2431
+ }
2432
+ Ce += Pe;
2433
+ }
2434
+ Ne += Be;
2435
+ }
2436
+ }
2437
+ await L(V, "column"), await L(V, "row");
2438
+ let B = [...await ya(V, i.charge, h, G, E, S), ...ga(y, se, i.charge)];
2439
+ B.length > (t.limits.workbookNodes ?? 1 / 0) - M && de("metadata"), M += B.length, we.push(...B);
2440
+ for await (let ce of S(V)) ["table-column", "table-row", "table-column-group", "table-row-group", "table-header-rows", "table-header-columns", "table-columns", "table-rows", "named-expressions"].includes(ce.localName) || rt(ce);
2441
+ z(V, "print-ranges") && rt(c ? await c.materialize(V) : V, { printRanges: z(V, "print-ranges") });
2442
+ let U = Rt(ht?.style.odf).find((ce) => qe(ce)?.name === "table-properties" && qe(ce)?.namespace === Lt.style), Z = $t(U, Lt.gnm), _e = { RTL_Layout: $t(U, Lt.style)["writing-mode"] === "rl-tb" ? "1" : "0" };
2443
+ for (let [ce, q, oe] of [["display-formulas", "DisplayFormulas", false], ["display-col-header", "HideColHeader", true], ["display-row-header", "HideRowHeader", true]]) Z[ce] !== void 0 && (_e[q] = Z[ce] === "true" !== oe ? "1" : "0");
2444
+ Y.push({ id: Re, name: se, cells: ge.sort((ce, q) => ce.row - q.row || ce.column - q.column), size: { rows: ie(Math.max(xe, (fe?.rows.maximum ?? be.at(-1)?.index ?? -1) + 1), Pn.rows, me.rows), columns: ie(Math.max(tt, (fe?.columns.maximum ?? le.at(-1)?.index ?? -1) + 1), Pn.columns, me.columns) }, ...ht?.display === "false" ? { visibility: "hidden" } : {}, rows: be, columns: le, merges: Le, formulaGroups: Ee, unsupportedRecords: we }), ht && (Y[Y.length - 1] = { ...Y[Y.length - 1], view: { odf: ht.style.odf ?? null, gnumeric: _e } });
2445
+ }
2446
+ async function ue(J, V) {
2447
+ for await (let se of S(J)) if (se.localName === "named-expressions" && _t.includes(se.namespace)) for (let Re of se.children) {
2448
+ i.charge();
2449
+ let ge = z(Re, "name");
2450
+ if (!ge) continue;
2451
+ let be = z(Re, "expression") ?? (z(Re, "cell-range-address") ? "=[" + z(Re, "cell-range-address") + "]" : void 0);
2452
+ if (!be) continue;
2453
+ let le = V ?? Y[0]?.id ?? (K[0] ? z(K[0], "name") : void 0) ?? "Sheet1", Le = z(Re, "base-cell-address"), Ee = Le ? nn("=[" + Le + "]", { maximumDepth: t.limits.formulaDepth, grammar: jt, position: { sheet: le, row: 0, column: 0 }, signal: t.signal, maximumLength: t.limits.workbookTextBytes ?? t.limits.inputBytes, maximumNodes: t.limits.workbookNodes ?? 1 / 0 }) : void 0, we = Ee?.ok && Ee.document.root.kind === "reference" && !Ee.document.root.last ? Ee.document.root.first : void 0, fe = we?.sheet;
2454
+ fe !== void 0 && i.charge(fe.length);
2455
+ let Ne = fe === void 0 ? void 0 : Ga(fe), xe = { sheet: Ne === void 0 ? le : Y.find((Ot) => (i.charge(1 + Ot.name.length), Ga(Ot.name) === Ne))?.id ?? fe, row: we?.row?.value ?? 0, column: we?.column?.value ?? 0 }, tt = await Va(be, _, xe, t, Q, i.charge);
2456
+ tt && C.push({ name: ge, expression: tt, ...V ? { sheet: V } : {}, position: xe });
2457
+ }
2458
+ }
2459
+ for (let J of y.children) ["table", "named-expressions", "calculation-settings", "label-ranges"].includes(J.localName) || s.push(tn(J));
2460
+ F && s.push(tn(F)), Y.length || pe("no sheets");
2461
+ let ve = Ft(F, "iteration")[0], ze = Number(z(ve, "steps") ?? "100");
2462
+ (!Number.isSafeInteger(ze) || ze < 0) && pe("invalid iteration count");
2463
+ let ye = z(F, "automatic-find-labels");
2464
+ ye !== void 0 && !["true", "false"].includes(ye) && pe("invalid automatic label lookup setting");
2465
+ let Q = { sheets: Ca(y, Y, t, i.charge), names: C, dateSystem: w, automaticLabelLookup: ye !== "false", calculationMode: "automatic", unsupportedRecords: s, ...ve ? { iteration: { enabled: z(ve, "status") === "enable", maximum: ze, tolerance: Number(z(ve, "maximum-difference") ?? "0.001") } } : {} };
2466
+ if (g2) return g2.workbook(Q);
2467
+ for (let J of Q.sheets) W.set(J.id, new Map(J.cells.map((V, se) => (i.charge(), [`${V.row}:${V.column}`, se]))));
2468
+ for (let [J, V] of x.entries()) J % 128 === 0 && (await new Promise((se) => setTimeout(se, 0)), i.charge()), await V(Q);
2469
+ for (let [J, V] of K.entries()) await ue(V, Y[J].id);
2470
+ await ue(y);
2471
+ let Ye = [];
2472
+ for (let J of Q.sheets) {
2473
+ let V = [], se = J.formulaGroups ?? [];
2474
+ for (let [be, le] of J.cells.entries()) be > 0 && be % 1024 === 0 && await new Promise((Le) => setTimeout(Le, 0)), i.charge(), v.has(le) || V.push(le);
2475
+ if (se.length) {
2476
+ let be = new Map(V.map((le, Le) => [`${le.row}:${le.column}`, Le]));
2477
+ for (let le of se) {
2478
+ let Le = (le.range.endRow - le.range.startRow + 1) * (le.range.endColumn - le.range.startColumn + 1);
2479
+ i.charge(Le);
2480
+ let Ee = 0;
2481
+ for (let we = le.range.startRow; we <= le.range.endRow; we++) for (let fe = le.range.startColumn; fe <= le.range.endColumn; fe++) {
2482
+ ++Ee % 1024 === 0 && (await new Promise((xe) => setTimeout(xe, 0)), i.charge());
2483
+ let Ne = `${we}:${fe}`, ut = be.get(Ne);
2484
+ if (ut === void 0) I3 >= t.limits.cells && de("cells"), I3++, be.set(Ne, V.length), V.push({ row: we, column: fe, value: { kind: "blank" }, formulaGroup: le.id });
2485
+ else {
2486
+ let xe = V[ut];
2487
+ V[ut] = { ...xe, formulaGroup: le.id, ...xe.value.kind === "blank" ? {} : { cachedResult: xe.value } };
2488
+ }
2489
+ }
2490
+ }
2491
+ }
2492
+ let Re = J.size.rows, ge = J.size.columns;
2493
+ for (let be of se) {
2494
+ for (; Re <= be.range.endRow; ) Re = Math.min(Re * 2, me.rows);
2495
+ for (; ge <= be.range.endColumn; ) ge = Math.min(ge * 2, me.columns);
2496
+ }
2497
+ Ye.push({ ...J, cells: V.sort((be, le) => be.row - le.row || be.column - le.column), size: { rows: Re, columns: ge } });
2498
+ }
2499
+ return { ...Q, sheets: Ye };
2500
+ })();
2501
+ } catch (i) {
2502
+ try {
2503
+ Za(i, t);
2504
+ } catch (o) {
2505
+ m = { error: o };
2506
+ }
2507
+ }
2508
+ let d = [];
2509
+ try {
2510
+ await c?.close();
2511
+ } catch (i) {
2512
+ d.push(i);
2513
+ }
2514
+ try {
2515
+ await e?.();
2516
+ } catch (i) {
2517
+ d.push(i);
2518
+ }
2519
+ if (d.length) throw m ? new AggregateError([m.error, ...d], "ODF read and cleanup failed") : d.length === 1 ? d[0] : new AggregateError(d, "ODF cleanup failed");
2520
+ if (m) throw m.error;
2521
+ return f;
2522
+ }
2523
+ function co(n, t) {
2524
+ let r = /* @__PURE__ */ new Map(), e = /* @__PURE__ */ new Map(), c;
2525
+ for (let i of n) for (let o of i.children) if (["styles", "automatic-styles"].includes(o.localName)) for (let _ of o.children) {
2526
+ t();
2527
+ let a = z(_, "name", st), l2 = z(_, "family", st);
2528
+ st.includes(_.namespace) && _.localName === "style" && a && l2 && r.set(l2 + ":" + a, _), st.includes(_.namespace) && _.localName === "default-style" && z(_, "family", st) === "table-cell" && (c = _), bt.includes(_.namespace) && a && e.set(a, fo(_, t));
2529
+ }
2530
+ let m = /* @__PURE__ */ new Map();
2531
+ function f(i, o = "table-cell", _ = /* @__PURE__ */ new Set()) {
2532
+ if (!i) return;
2533
+ let a = o + ":" + i, l2 = m.get(a);
2534
+ if (l2) return l2;
2535
+ let u2 = r.get(a);
2536
+ if (!u2) return;
2537
+ t(), _.has(a) && pe("cyclic style inheritance");
2538
+ let S = new Set(_);
2539
+ S.add(a);
2540
+ let b = f(z(u2, "parent-style-name", st), o, S), g2 = e.get(z(u2, "data-style-name", st) ?? "") ?? b?.format, A = u2.children.map((R) => z(R, "display", _t)).find((R) => R !== void 0) ?? b?.display, h = { ...g2 ? { format: g2 } : {}, style: { ...b?.style, odf: pn(u2), gnumeric: zn(u2, b?.style.gnumeric, t) }, ...A ? { display: A } : {} };
2541
+ return m.set(a, h), h;
2542
+ }
2543
+ function d(i, o) {
2544
+ let _ = `table-${o}`, a = i ? r.get(_ + ":" + i) : void 0, l2 = /* @__PURE__ */ new Set();
2545
+ for (; a; ) {
2546
+ t(), l2.has(a) && pe("cyclic axis style inheritance"), l2.add(a);
2547
+ let u2 = a.children.find((g2) => st.includes(g2.namespace) && ["properties", `table-${o}-properties`].includes(g2.localName)), S = z(u2, o === "row" ? "row-height" : "column-width", st);
2548
+ if (S) {
2549
+ let g2 = { cm: 28.346456692913385, mm: 2.834645669291339, in: 72, pt: 1, pc: 12 }, A = S.slice(-2), h = Number(S.slice(0, -2)), R = g2[A];
2550
+ if (R && Number.isFinite(h) && h >= 0) return h * R;
2551
+ }
2552
+ let b = z(a, "parent-style-name", st);
2553
+ a = b ? r.get(_ + ":" + b) : void 0;
2554
+ }
2555
+ }
2556
+ return { resolve: f, axisSize: d, defaultCell: c ? { style: { odf: pn(c), gnumeric: zn(c, void 0, t) }, format: e.get(z(c, "data-style-name", st) ?? "") } : void 0 };
2557
+ }
2558
+ function fo(n, t) {
2559
+ let r = "";
2560
+ for (let e of n.children) {
2561
+ if (t(), !bt.includes(e.namespace)) continue;
2562
+ let c = z(e, "style", bt) === "long";
2563
+ if (e.localName === "text" || e.localName === "currency-symbol") r += '"' + e.text.split('"').join('""') + '"';
2564
+ else if (e.localName === "number" || e.localName === "scientific-number") {
2565
+ let m = Tt(z(e, "decimal-places", bt), 0), f = Tt(z(e, "min-integer-digits", bt), 1);
2566
+ if (t(m + f), r += (z(e, "grouping", bt) === "true" ? "#,##" : "") + "0".repeat(f) + (m ? "." + "0".repeat(m) : ""), e.localName === "scientific-number") {
2567
+ let d = Tt(z(e, "min-exponent-digits", bt), 2);
2568
+ t(d), r += "E+" + "0".repeat(d);
2569
+ }
2570
+ } else e.localName === "day" ? r += c ? "dd" : "d" : e.localName === "month" ? r += z(e, "textual", bt) === "true" ? c ? "mmmm" : "mmm" : c ? "mm" : "m" : e.localName === "year" ? r += c ? "yyyy" : "yy" : e.localName === "day-of-week" ? r += c ? "dddd" : "ddd" : e.localName === "hours" ? r += z(n, "truncate-on-overflow", bt) === "false" ? "[h]" : c ? "hh" : "h" : e.localName === "minutes" ? r += c ? "mm" : "m" : e.localName === "seconds" ? r += c ? "ss" : "s" : e.localName === "am-pm" ? r += "AM/PM" : e.localName === "text-content" && (r += "@");
2571
+ }
2572
+ return r || "General";
2573
+ }
2574
+ function za(n) {
2575
+ let t = String(n), r = t.indexOf("e");
2576
+ if (r < 0) return t;
2577
+ let e = t.slice(0, r), c = e.indexOf("."), m = e.replace(".", ""), f = (c < 0 ? e.length : c) + Number(t.slice(r + 1));
2578
+ return f <= 0 ? "0." + "0".repeat(-f) + m : f >= m.length ? m + "0".repeat(f - m.length) : m.slice(0, f) + "." + m.slice(f);
2579
+ }
2580
+ async function Bn(n) {
2581
+ let t = [], r = 0;
2582
+ try {
2583
+ for await (let m of n) t.push(m.slice()), r += m.length;
2584
+ let e = new Uint8Array(r), c = 0;
2585
+ for (let m of t) e.set(m, c), c += m.length;
2586
+ return e;
2587
+ } finally {
2588
+ for (let e of t) e.fill(0);
2589
+ }
2590
+ }
2591
+ function ys(n) {
2592
+ let t = Eo(n);
2593
+ return (r, e, c) => Bn(t(r, e, c));
2594
+ }
2595
+ function Eo(n) {
2596
+ return async function* (t, r, e) {
2597
+ let c, m, f = [], d, i = false, o, _, a = [], l2 = new Uint8Array(16384), u2 = () => (i = true, o ??= Promise.resolve().then(async () => {
2598
+ await m?.close(), await c?.close();
2599
+ }));
2600
+ e.own(u2);
2601
+ try {
2602
+ let M = function(L) {
2603
+ L > e.limits.outputBytes - I3 && de("output bytes"), I3 += L;
2604
+ }, K = function(L, B) {
2605
+ if (s.charge(), !Number.isSafeInteger(L) || L < 0 || L >= B) throw new he("invalid-request", "Invalid OpenDocument cell coordinate");
2606
+ }, G = function(L) {
2607
+ if (K(L.startRow, me.rows), K(L.endRow, me.rows), K(L.startColumn, me.columns), K(L.endColumn, me.columns), L.startRow > L.endRow || L.startColumn > L.endColumn) throw new he("invalid-request", "Invalid OpenDocument range");
2608
+ }, j = function(L, B, U, Z) {
2609
+ s.charge(L.length);
2610
+ let _e = p.documents.get(JSON.stringify([B.id, U, Z, L])), ie = _e ? { ok: true, document: _e } : nn(L, { maximumDepth: e.limits.formulaDepth, position: { sheet: B.id, row: U, column: Z }, workbook: T2, signal: e.signal, onWork: s.charge, maximumLength: e.limits.workbookTextBytes ?? e.limits.outputBytes, maximumNodes: e.limits.workbookNodes ?? 1 / 0 });
2611
+ if (!ie.ok) throw new he("unsupported-feature", "Unsupported ssconvert feature: invalid OpenDocument formula");
2612
+ let ce = { ...jt.functionExportAliases, ...xa };
2613
+ function q(oe) {
2614
+ s.charge(), oe.kind === "call" ? (Object.hasOwn(ce, oe.name) || (ce[oe.name] = oe.name.startsWith("ODF.") ? oe.name.slice(4) : "ORG.GNUMERIC." + oe.name), oe.args.forEach(q)) : oe.kind === "array" ? oe.rows.forEach((ae) => ae.forEach(q)) : oe.kind === "binary" ? (q(oe.left), q(oe.right)) : (oe.kind === "unary" || oe.kind === "parentheses") && q(oe.child);
2615
+ }
2616
+ return q(ie.document.root), Ka(ie.document, { ...jt, functionExportAliases: ce }, false, true, { quotedLabel(oe) {
2617
+ let ae = Wi(T2, oe, ie.document.position, s.charge);
2618
+ return s.charge(ae.length), ae;
2619
+ } });
2620
+ }, ye = function(L) {
2621
+ return L !== null && typeof L == "object" && !Object.isFrozen(L) ? Ui(L, e.limits) : L;
2622
+ }, we = function(L) {
2623
+ let B = ye(Rt(L));
2624
+ return (async function* () {
2625
+ for (let U of B) yield* s.retainedFragments(U);
2626
+ })();
2627
+ }, fe = function(L, B) {
2628
+ Le.set(L, typeof B == "string" && (!c || y) ? Ee.encode(B) : B);
2629
+ };
2630
+ var S = M, b = K, g2 = G, A = j, h = ye, R = we, N = fe;
2631
+ e.signal.throwIfAborted();
2632
+ let y;
2633
+ for (let L of r) for (let [B, U] of eo(L)) if (B === "encryption" && (y = Ia.get(U), y === void 0)) throw new he("invalid-request", "Invalid OpenDocument encryption profile");
2634
+ let F = y?.cipher === "aes-gcm", w = n === "extended", s = Ji(e, w), O = s.element, E = "metadata" in t ? await Yi(t, e.limits, () => e.signal.throwIfAborted(), e.createWorkingStorage?.bind(e)) : void 0, p = Ra(E?.metadata ?? t, e, s.charge), T2 = p.book;
2635
+ if (T2.sheets.some((L) => !Object.isFrozen(L.cells))) {
2636
+ let L = 0;
2637
+ T2 = { ...T2, sheets: T2.sheets.map((B) => {
2638
+ if (Object.isFrozen(B.cells)) return L += B.cells.length, L > e.limits.cells && de("cells"), B;
2639
+ let U = [];
2640
+ for (let Z of B.cells) ++L > e.limits.cells && de("cells"), U.push(Z);
2641
+ return { ...B, cells: Object.freeze(U) };
2642
+ }) };
2643
+ }
2644
+ let Y = createZipCodec(), C = { ...qa(e), maxArchiveBytes: e.limits.outputBytes, maxEntryBytes: e.limits.outputBytes, maxTotalBytes: e.limits.outputBytes };
2645
+ if (i) throw new he("invalid-request", "ODF writer is closed");
2646
+ if (c = e.createWorkingStorage?.(), i) throw new he("invalid-request", "ODF writer is closed");
2647
+ m = Fi(c, e.signal);
2648
+ let I3 = 0;
2649
+ d = await Ba(s, w, T2, e, c, M);
2650
+ let x = E ? /* @__PURE__ */ new Map() : void 0, W = 0;
2651
+ if (E) for (let L of T2.sheets) {
2652
+ let B = 0;
2653
+ for await (let U of E.cells(L.id)) ++W > e.limits.cells && de("cells"), await d.reserve(U), B++;
2654
+ x.set(L.id, B);
2655
+ }
2656
+ let v = 0;
2657
+ (!T2.sheets.length || T2.sheets.length > e.limits.sheets) && de("sheets");
2658
+ let ne = T2.sheets.map((L) => (s.charge(L.name.length), L.name));
2659
+ async function* ue(L) {
2660
+ async function* B() {
2661
+ for (let U of T2.names ?? []) {
2662
+ if (s.charge(), U.sheet !== L) continue;
2663
+ let Z = T2.sheets.find((Be) => Be.id === (U.position?.sheet ?? L) || Be.name === (U.position?.sheet ?? L)) ?? T2.sheets[0], _e = U.position?.row ?? 0, ie = U.position?.column ?? 0;
2664
+ K(_e, me.rows), K(ie, me.columns);
2665
+ let ce = j(U.expression, Z, _e, ie), q = Fn(_e, ie), oe = Xa(Z.name, "'", jt) + ".$" + q.slice(0, q.length - String(_e + 1).length) + "$" + (_e + 1), ae = nn(U.expression, { maximumDepth: e.limits.formulaDepth, position: { sheet: Z.id, row: _e, column: ie }, workbook: T2, signal: e.signal, onWork: s.charge, maximumLength: e.limits.workbookTextBytes ?? e.limits.outputBytes, maximumNodes: e.limits.workbookNodes ?? 1 / 0 });
2666
+ yield ae.ok && ae.document.root.kind === "reference" && !ae.document.root.label ? O("table:named-range", { "table:name": U.name, "table:cell-range-address": ce.slice(5, -1), "table:base-cell-address": oe }) : O("table:named-expression", { "table:name": U.name, "table:expression": ce, "table:base-cell-address": oe });
2667
+ }
2668
+ }
2669
+ yield* s.stream("table:named-expressions", {}, B());
2670
+ }
2671
+ let ve = T2.iteration, ze = O("table:calculation-settings", { "table:null-year": 1930, "table:automatic-find-labels": String(T2.automaticLabelLookup ?? false), "table:case-sensitive": "false", "table:precision-as-shown": "false", "table:search-criteria-must-apply-to-whole-cell": "true", "table:use-regular-expressions": "false", "table:use-wildcards": "false" }, O("table:null-date", { "table:date-value": T2.dateSystem === "1904" ? "1904-1-1" : "1899-12-30", "table:value-type": "date" }) + O("table:iteration", { "table:status": ve?.enabled ? "enable" : "disable", "table:steps": ve?.maximum ?? 100, "table:maximum-difference": ve?.tolerance ?? 1e-3 })), Q = await Ya(T2, s, e, c, M), Ye = wn(e, c, M);
2672
+ f.push(Ye);
2673
+ let et = wn(e, c, M);
2674
+ f.push(et);
2675
+ let lt = wn(e, c, M);
2676
+ f.push(lt);
2677
+ for (let L of T2.unsupportedRecords ?? []) {
2678
+ s.charge();
2679
+ let B = qe(L.data), U = qe(B?.xml);
2680
+ if (L.source === "Gnumeric_OpenCalc:openoffice" && U) if (L.kind === "content-validations") for (let Z of Rt(U)) await et.append(s.retainedFragments(ye(Z)));
2681
+ else L.kind === "database-ranges" && await lt.append(s.retainedFragments(ye(U)));
2682
+ }
2683
+ async function* J() {
2684
+ for (let [B, U] of T2.sheets.entries()) {
2685
+ let Ut = function(D) {
2686
+ if (K(D.row, me.rows), K(D.column, me.columns), ++v > e.limits.cells && de("cells"), x && yt >= x.get(U.id)) throw new he("invalid-request", "ODF source coordinates changed during replay");
2687
+ return yt++, rn(D.row, D.column);
2688
+ };
2689
+ var L = Ut;
2690
+ s.charge();
2691
+ let Z = qe(U.view?.gnumeric) ?? {}, _e = Rt(U.view?.odf).find((D) => qe(D)?.name === "table-properties"), ie = $t(_e, Lt.gnm), ce = Pa((U.unsupportedRecords ?? []).filter((D) => D.kind === "PrintInformation").flatMap((D) => D.data ? [D.data] : []), s, w), q = await Q.register("stylesAutomatic", "style:page-layout", "pl" + B, {}, O("style:page-layout-properties", ce)), oe = await Q.register("masters", "style:master-page", "mp" + B, { "style:page-layout-name": q }), ae = await Q.register("contentAutomatic", "style:style", "ta" + B, { "style:family": "table", "style:master-page-name": oe }, O("style:table-properties", { "table:display": U.visibility && U.visibility !== "visible" ? "false" : "true", "style:writing-mode": Number(Z.RTL_Layout ?? 0) ? "rl-tb" : "lr-tb", ...w ? { "gnm:display-formulas": String(!!Number(Z.DisplayFormulas ?? 0)), "gnm:display-col-header": String(!Number(Z.HideColHeader ?? 0)), "gnm:display-row-header": String(!Number(Z.HideRowHeader ?? 0)), "gnm:tab-color": ie["tab-color"], "gnm:tab-text-color": ie["tab-text-color"] } : {} })), Be = U.cells, $e = c ? new ka(c, 128) : /* @__PURE__ */ new Map(), rn = (D, H) => BigInt(D) << 14n | BigInt(H), yt = 0;
2692
+ for await (let D of E?.cells(U.id) ?? Be) {
2693
+ let H = Ut(D);
2694
+ await $e.set(H, BigInt(yt));
2695
+ }
2696
+ if (x && yt !== x.get(U.id)) throw new he("invalid-request", "ODF source coordinates changed during replay");
2697
+ async function Yt(D, H) {
2698
+ let ee = rn(D, H);
2699
+ await $e.get(ee) === void 0 && (++v > e.limits.cells && de("cells"), await $e.set(ee, 0n));
2700
+ }
2701
+ async function* Kt() {
2702
+ let D = $e instanceof Map ? [...$e].sort(([P], [k]) => P < k ? -1 : P > k ? 1 : 0) : $e.entries(), H = E?.cells(U.id)[Symbol.asyncIterator](), ee = 0;
2703
+ try {
2704
+ for await (let [P, k] of D) if (e.signal.throwIfAborted(), k === 0n) yield { row: Number(P >> 14n), column: Number(P & 0x3fffn), value: { kind: "blank" } };
2705
+ else if (H) {
2706
+ let X2 = await H.next();
2707
+ if (X2.done || k !== BigInt(++ee) || rn(X2.value.row, X2.value.column) !== P) throw new he("invalid-request", "ODF source coordinates changed during replay");
2708
+ yield X2.value;
2709
+ } else yield Be[Number(k - 1n)];
2710
+ if (H && !(await H.next()).done) throw new he("invalid-request", "ODF source coordinates changed during replay");
2711
+ } finally {
2712
+ await H?.return?.();
2713
+ }
2714
+ }
2715
+ let Ce = /* @__PURE__ */ new Map(), re = /* @__PURE__ */ new Map(), Pe = /* @__PURE__ */ new Map(), nt = /* @__PURE__ */ new Map(), Ue = [], Je = /* @__PURE__ */ new Map();
2716
+ for (let D of U.unsupportedRecords ?? []) {
2717
+ s.charge();
2718
+ let H = qe(D.data), ee = qe(H?.xml);
2719
+ if (D.source === "Gnumeric_OpenCalc:openoffice" && ee && typeof H?.row == "number" && typeof H.column == "number") {
2720
+ K(H.row, me.rows), K(H.column, me.columns);
2721
+ let P = `${H.row}:${H.column}`;
2722
+ if (D.kind === "table-cell") {
2723
+ let k = typeof H.rows == "number" ? H.rows : 1, X2 = typeof H.columns == "number" ? H.columns : 1;
2724
+ if (!Number.isSafeInteger(k) || !Number.isSafeInteger(X2) || k < 1 || X2 < 1) throw new he("invalid-request", "Invalid OpenDocument metadata repeat");
2725
+ let Te = { startRow: H.row, startColumn: H.column, endRow: H.row + k - 1, endColumn: H.column + X2 - 1 };
2726
+ G(Te), Ue.push({ range: Te, style: $t(ee, Lt.table)["style-name"] ?? (typeof H.styleName == "string" ? H.styleName : void 0), validation: typeof H.validation == "string" ? H.validation : void 0 });
2727
+ } else if (D.kind === "p" && typeof H.sourceText == "string") {
2728
+ let k = typeof H.rows == "number" ? H.rows : 1, X2 = typeof H.columns == "number" ? H.columns : 1, Te = { startRow: H.row, startColumn: H.column, endRow: H.row + k - 1, endColumn: H.column + X2 - 1 };
2729
+ G(Te);
2730
+ let He = Pe.get(P);
2731
+ Pe.set(P, { text: H.sourceText, richText: H.sourceRichText ?? [], xml: (He?.xml ?? "") + s.retained(ee, 0, (te) => va(te, "normalize", s.charge, ne)), range: Te });
2732
+ } else if (D.kind === "annotation" && ot.OO_NS_OFFICE.includes(String(ee.namespace))) {
2733
+ let k = ee.namespace !== Lt.office, X2;
2734
+ if (!k && typeof H.sourceComment == "string") {
2735
+ s.charge(H.sourceComment.length);
2736
+ try {
2737
+ let Te = JSON.parse(H.sourceComment);
2738
+ Array.isArray(Te) && Te.length === 3 && (X2 = JSON.stringify(Te.slice(1)));
2739
+ } catch {
2740
+ }
2741
+ }
2742
+ nt.set(P, { ...typeof H.sourceComment == "string" ? { signature: H.sourceComment } : {}, ...X2 === void 0 ? {} : { textSignature: X2 }, xml: k ? "" : s.retained(ee), node: k ? Zi(ee, s.charge) : ee }), await Yt(H.row, H.column);
2743
+ } else re.set(P, (re.get(P) ?? "") + s.retained(ee)), await Yt(H.row, H.column);
2744
+ } else if (D.kind === "Styles") for (let P of Rt(D.data)) {
2745
+ s.charge();
2746
+ let k = $t(P), X2 = Rt(P).find((te) => qe(te)?.name === "Style");
2747
+ if (!X2) continue;
2748
+ let Te = { startRow: Number(k.startRow), endRow: Number(k.endRow), startColumn: Number(k.startCol), endColumn: Number(k.endCol) };
2749
+ G(Te);
2750
+ let He = await Ha(X2, Te, `rg${B}_${Ue.length}`, U, s, d, e, j, ne);
2751
+ await Ye.append(He.styleXml), await et.append(He.validationXml), Ue.push({ range: Te, style: He.styleName, validation: He.validationName, link: He.link });
2752
+ }
2753
+ else if (D.kind === "Objects") for (let P of Rt(D.data)) {
2754
+ s.charge();
2755
+ let k = qe(P), X2 = $t(P);
2756
+ if ((k?.name === "CellComment" || k?.name === "GnmCellComment") && X2.ObjectBound) {
2757
+ let Te = nn("=" + X2.ObjectBound.split(":")[0], { maximumDepth: e.limits.formulaDepth, position: { sheet: U.id, row: 0, column: 0 }, signal: e.signal });
2758
+ if (Te.ok && Te.document.root.kind === "reference") {
2759
+ let He = Te.document.root.first, te = He.row?.value ?? 0, We = He.column?.value ?? 0, Ve = `${te}:${We}`;
2760
+ K(te, me.rows), K(We, me.columns), Ce.set(Ve, X2), await Yt(te, We);
2761
+ }
2762
+ } else await Un(`ODF ${n} writer does not export sheet '${U.name}' object '${String(k?.name ?? "unknown")}'
2763
+ `, e, "odf-write-loss");
2764
+ }
2765
+ }
2766
+ let gt = c ? new ka(c, 128) : void 0, Rn = gt ? void 0 : /* @__PURE__ */ new Set(), sn = 0;
2767
+ async function je(D) {
2768
+ sn = Math.max(sn, D), gt ? await gt.set(BigInt(D), 0n) : Rn.add(D);
2769
+ }
2770
+ await je(0);
2771
+ async function* ln() {
2772
+ async function* D() {
2773
+ if (gt) for await (let [ee] of gt.entries()) yield Number(ee);
2774
+ else yield* [...Rn].sort((ee, P) => ee - P);
2775
+ }
2776
+ let H;
2777
+ for await (let ee of D()) H !== void 0 && (yield [H, ee - H]), H = ee;
2778
+ }
2779
+ let xt = 0;
2780
+ for await (let D of Kt()) {
2781
+ let H = D.style?.gnumeric, ee = Rt(H).find((k) => qe(k)?.name === "HyperLink"), P = $t(ee);
2782
+ P.target && Je.set(`${D.row}:${D.column}`, { "xlink:href": P.type === "GnmHLinkCurWB" ? va(P.target, "export", s.charge, ne) : P.target, "xlink:type": "simple", "office:title": P.tip }), xt = Math.max(xt, D.column + 1), await je(D.row), await je(D.row + 1);
2783
+ }
2784
+ let Ht = [];
2785
+ for (let D of U.merges ?? []) {
2786
+ G(D);
2787
+ for (let H of Ht) if (s.charge(), D.startRow <= H.endRow && D.endRow >= H.startRow && D.startColumn <= H.endColumn && D.endColumn >= H.startColumn) throw new he("invalid-request", "Invalid overlapping OpenDocument merges");
2788
+ Ht.push(D), await je(D.startRow), await je(D.startRow + 1), await je(D.endRow), await je(D.endRow + 1);
2789
+ }
2790
+ for (let { range: D } of Ue) await je(D.startRow), await je(D.endRow + 1);
2791
+ let wt = m.axis(), Ct = m.axis();
2792
+ for await (let D of E?.axes ? E.axes(U.id, "rows") : U.rows ?? []) K(D.index, me.rows), await wt.get(D.index) === void 0 && await wt.add({ index: D.index, ...D.sizePoints === void 0 ? {} : { sizePoints: D.sizePoints }, ...D.hidden === void 0 ? {} : { hidden: D.hidden } }), await je(D.index), await je(D.index + 1);
2793
+ for await (let D of E?.axes ? E.axes(U.id, "columns") : U.columns ?? []) {
2794
+ if (K(D.index, me.columns), await Ct.get(D.index) !== void 0) throw new he("invalid-request", "Duplicate OpenDocument column metadata");
2795
+ await Ct.add({ index: D.index, ...D.sizePoints === void 0 ? {} : { sizePoints: D.sizePoints }, ...D.hidden === void 0 ? {} : { hidden: D.hidden } });
2796
+ }
2797
+ let It = U.size?.rows ?? Pn.rows;
2798
+ K(It - 1, me.rows), It = Math.max(It, sn), await je(It);
2799
+ async function* bn() {
2800
+ let D = 0, H = 0;
2801
+ for await (let X2 of Ct.values()) {
2802
+ X2.index > D && (yield O("table:table-column", { "table:number-columns-repeated": X2.index - D }));
2803
+ let Te = `co${B}_${H++}`;
2804
+ await Ye.append(O("style:style", { "style:name": Te, "style:family": "table-column" }, O("style:table-column-properties", { "style:column-width": X2.sizePoints === void 0 ? void 0 : X2.sizePoints + "pt" }))), yield O("table:table-column", { "table:style-name": Te, "table:visibility": X2.hidden ? "collapse" : "visible" }), D = X2.index + 1;
2805
+ }
2806
+ let ee = Math.max(U.size?.columns ?? Pn.columns, D);
2807
+ K(ee - 1, me.columns), ee = Math.max(ee, xt);
2808
+ for (let { range: X2 } of Ue) ee = Math.max(ee, X2.endColumn + 1);
2809
+ for (let X2 of U.merges ?? []) ee = Math.max(ee, X2.endColumn + 1);
2810
+ ee > D && (yield O("table:table-column", { "table:number-columns-repeated": ee - D > 1 ? ee - D : void 0 }));
2811
+ let P = Kt(), k = wt.values();
2812
+ try {
2813
+ let X2 = await P.next(), Te = await k.next(), He = 0;
2814
+ for await (let [te, We] of ln()) {
2815
+ if (te >= me.rows) break;
2816
+ s.charge(), He++ % 64 === 0 && (await new Promise((Ie) => setTimeout(Ie, 0)), e.signal.throwIfAborted());
2817
+ let Ve = /* @__PURE__ */ new Map(), Ln = (U.merges ?? []).filter((Ie) => te >= Ie.startRow && te <= Ie.endRow);
2818
+ for (; !X2.done && X2.value.row === te; ) Ve.set(X2.value.column, X2.value), X2 = await P.next();
2819
+ s.charge(U.merges?.length ?? 0), s.charge(Ue.length);
2820
+ let sa = Ue.filter((Ie) => te >= Ie.range.startRow && te <= Ie.range.endRow).reverse(), Mt = /* @__PURE__ */ new Set();
2821
+ for (let Ie of Ve.keys()) Mt.add(Ie), Mt.add(Ie + 1);
2822
+ for (let Ie of Ln) Mt.add(Ie.startColumn), Mt.add(Ie.startColumn + 1), Mt.add(Ie.endColumn + 1);
2823
+ for (let Ie of sa) Mt.add(Ie.range.startColumn), Mt.add(Ie.range.endColumn + 1);
2824
+ let hn = !Te.done && Te.value.index === te ? Te.value : void 0;
2825
+ hn && (Te = await k.next());
2826
+ let la = { "table:number-rows-repeated": We > 1 ? We : void 0, "table:visibility": hn?.hidden ? "collapse" : void 0 };
2827
+ if (hn?.sizePoints !== void 0) {
2828
+ let Ie = `ro${B}_${te}`;
2829
+ await Ye.append(O("style:style", { "style:name": Ie, "style:family": "table-row" }, O("style:table-row-properties", { "style:row-height": hn.sizePoints + "pt" }))), la["table:style-name"] = Ie;
2830
+ }
2831
+ async function* ei() {
2832
+ let Ie = [...Mt].sort((Oe, Fe) => Oe - Fe), ct = 0;
2833
+ for (let Oe of Ie) {
2834
+ if (s.charge(), Oe < ct || Oe >= me.columns) continue;
2835
+ Oe > ct && (yield O("table:table-cell", Oe - ct > 1 ? { "table:number-columns-repeated": Oe - ct } : {}));
2836
+ let Fe = Ve.get(Oe), at = Ln.find((Ae) => Oe >= Ae.startColumn && Oe <= Ae.endColumn), mt = sa.find((Ae) => Oe >= Ae.range.startColumn && Oe <= Ae.range.endColumn);
2837
+ if (at && (te !== at.startRow || Oe !== at.startColumn)) {
2838
+ let Ae = Math.min(at.endColumn + 1, Ie.find((Se) => Se > Oe) ?? at.endColumn + 1);
2839
+ yield O("table:covered-table-cell", Ae - Oe > 1 ? { "table:number-columns-repeated": Ae - Oe } : {}), ct = Ae;
2840
+ continue;
2841
+ }
2842
+ if (!Fe && !at && !mt) {
2843
+ ct = Oe;
2844
+ continue;
2845
+ }
2846
+ let Me = {};
2847
+ Fe && !Fe.formula && Fe.value.kind === "error" && (w && (Me["gnm:error-value"] = Fe.value.value), Me["table:formula"] = "of:=" + Fe.value.value), at && (Me["table:number-columns-spanned"] = at.endColumn - at.startColumn + 1, Me["table:number-rows-spanned"] = at.endRow - at.startRow + 1);
2848
+ let cn = `${te}:${Oe}`, kt = U.formulaGroups?.find((Ae) => Ae.kind === "array" && te >= Ae.range.startRow && te <= Ae.range.endRow && Oe >= Ae.range.startColumn && Oe <= Ae.range.endColumn);
2849
+ s.charge(U.formulaGroups?.length ?? 0), Fe?.formula && (!kt || te === kt.range.startRow && Oe === kt.range.startColumn) && (Me["table:formula"] = j(Fe.formula, U, te, Oe), kt && (G(kt.range), Me["table:number-matrix-columns-spanned"] = kt.range.endColumn - Oe + 1, Me["table:number-matrix-rows-spanned"] = kt.range.endRow - te + 1)), Me["table:content-validation-name"] = mt?.validation, mt?.style && (Me["table:style-name"] = mt.style);
2850
+ let fn = re.get(cn) ?? "", ft = Ce.get(cn), dt = nt.get(cn), ca = ft ? JSON.stringify([ft.Author ?? null, ft.Text ?? "", ft.TextFormat ?? null]) : void 0;
2851
+ if (s.charge((ca?.length ?? 0) + (dt?.signature?.length ?? 0)), dt?.xml && (dt.signature === void 0 || dt.signature === ca)) fn += dt.xml;
2852
+ else if (ft) {
2853
+ let Ae = ft.Text ?? "", Se = JSON.stringify([Ae, ft.TextFormat ?? null]);
2854
+ s.charge(Se.length);
2855
+ let Dt = dt?.textSignature === Se, qt = "";
2856
+ if (!Dt) {
2857
+ let St = ao(ft.TextFormat, s.charge), Nt = St?.length ? await Xn(Ae, St, s, Q, w, void 0, false) : s.text(Ae);
2858
+ qt = O("text:p", {}, Nt);
2859
+ }
2860
+ let dn = dt ? Rt(dt.node).filter((St) => {
2861
+ s.charge();
2862
+ let Nt = qe(St);
2863
+ return !(!Dt && Nt?.name === "p" && Nt.namespace === Lt.text || Nt?.name === "creator" && Nt.namespace === Lt.dc);
2864
+ }).map((St) => s.retained(St)).join("") : "", Jt = (ft.Author === void 0 ? "" : O("dc:creator", {}, s.escape(ft.Author))) + dn + qt;
2865
+ fn += dt ? s.retained(dt.node, 0, void 0, false, Jt) : O("office:annotation", {}, Jt);
2866
+ }
2867
+ if (Fe) {
2868
+ let Ae = await d.register(Fe);
2869
+ Ae.name && !mt?.style && (Me["table:style-name"] = Ae.name);
2870
+ let Se = Fe.formula ? Fe.cachedResult ?? Fe.value : Fe.value;
2871
+ if (Se.kind === "number") {
2872
+ if (!Number.isFinite(Se.value)) throw new he("invalid-request", "Invalid OpenDocument numeric value");
2873
+ if (Ae.kind === "date") {
2874
+ let Ze = no(Se.value, { book: T2 });
2875
+ if (!Ze) throw new he("unsupported-feature", "Unsupported ssconvert feature: OpenDocument date outside supported calendar");
2876
+ Me["office:value-type"] = "date";
2877
+ let Qt = Math.round((Se.value - Math.floor(Se.value)) * 86400) % 86400;
2878
+ Me["office:date-value"] = Ze.toISOString().slice(0, 10) + (Se.value !== Math.floor(Se.value) ? "T" + [Math.floor(Qt / 3600), Math.floor(Qt / 60) % 60, Qt % 60].map((ti) => String(ti).padStart(2, "0")).join(":") : "");
2879
+ } else if (Ae.kind === "time" && Se.value >= 0 && Number.isFinite(Se.value * 86400)) {
2880
+ Me["office:value-type"] = "time";
2881
+ let Ze = Se.value * 86400, Qt = Ze % 60;
2882
+ Me["office:time-value"] = `PT0${za(Math.floor(Ze / 3600))}H${String(Math.floor(Ze / 60) % 60).padStart(2, "0")}M${Qt < 10 ? "0" : ""}${za(Qt)}S`;
2883
+ } else Me["office:value-type"] = "float", Me["office:value"] = Se.value;
2884
+ } else Se.kind === "boolean" ? (Me["office:value-type"] = "boolean", Me["office:boolean-value"] = String(Se.value)) : (Se.kind === "string" || Se.kind === "error") && (Me["office:value-type"] = "string", (Fe.formula || Se.kind === "error") && (Me["office:string-value"] = Se.value), Se.kind === "error" && !Fe.formula && (Me["table:formula"] = "of:=" + Se.value, w && (Me["gnm:error-value"] = Se.value)));
2885
+ s.charge(Pe.size);
2886
+ let Dt = Fe.displayedText ?? await to(Fe, T2, e), qt = Pe.get(cn) ?? [...Pe.values()].find((Ze) => te >= Ze.range.startRow && te <= Ze.range.endRow && Oe >= Ze.range.startColumn && Oe <= Ze.range.endColumn), dn = mt?.link ?? Je.get(cn), Jt = Se.kind === "string" && Dt === Se.value ? Fe.richText : void 0, St = JSON.stringify(qt?.richText ?? []), Nt = JSON.stringify(Jt ?? []);
2887
+ if (s.charge(St.length + Nt.length), qt?.text === Dt && St === Nt) fn += qt.xml;
2888
+ else {
2889
+ let Ze = Jt?.length ? await Xn(Dt, Jt, s, Q, w, dn) : dn ? O("text:a", dn, s.escape(Dt)) : s.text(Dt);
2890
+ fn += O("text:p", {}, Ze);
2891
+ }
2892
+ }
2893
+ let Yn = !Fe && !at && mt ? Math.min(mt.range.endColumn + 1, Ie.find((Ae) => Ae > Oe) ?? mt.range.endColumn + 1) : Oe + 1;
2894
+ Yn - Oe > 1 && (Me["table:number-columns-repeated"] = Yn - Oe), yield O("table:table-cell", Me, fn), ct = Yn;
2895
+ }
2896
+ ct < ee && (yield O("table:table-cell", { "table:number-columns-repeated": ee - ct > 1 ? ee - ct : void 0 }));
2897
+ }
2898
+ yield* s.stream("table:table-row", la, ei());
2899
+ }
2900
+ yield* ue(U.id);
2901
+ } finally {
2902
+ await Promise.all([P.return(void 0), k.return(void 0)]);
2903
+ }
2904
+ }
2905
+ yield* s.stream("table:table", { "table:name": U.name, "table:style-name": ae }, bn());
2906
+ }
2907
+ }
2908
+ let V = c ? new ZipWriteChain(c, 16384, e.signal, async (L) => {
2909
+ L.throwIfAborted();
2910
+ }) : void 0, se = 0;
2911
+ for await (let L of J()) {
2912
+ if (M(L.length), !V) {
2913
+ a.push(L.slice());
2914
+ continue;
2915
+ }
2916
+ for (let B = 0; B < L.length; ) {
2917
+ let U = Math.min(l2.length - se, L.length - B);
2918
+ l2.set(L.subarray(B, B + U), se), se += U, B += U, se === l2.length && (await V.append([l2], se), se = 0);
2919
+ }
2920
+ }
2921
+ V && se && await V.append([l2.subarray(0, se)], se);
2922
+ async function* Re() {
2923
+ V ? yield* V.read() : yield* a;
2924
+ }
2925
+ let ge = new Map(T2.sheets.map((L) => (s.charge(), [L.id, L])));
2926
+ async function* be() {
2927
+ for (let L of T2.sheets) for (let B of L.labelRanges ?? []) {
2928
+ if (s.charge(), G(B.labels), G(B.data), B.axis !== "row" && B.axis !== "column") throw new he("invalid-request", "Invalid OpenDocument label orientation");
2929
+ let U = B.dataSheet === void 0 ? L : ge.get(B.dataSheet);
2930
+ if (!U) throw new he("unsupported-feature", "OpenDocument label data sheet is not exported");
2931
+ let Z = (ie, ce) => "$" + Fn(0, ce).slice(0, -1) + "$" + (ie + 1), _e = (ie, ce) => "$" + Xa(ce, "'", jt) + "." + Z(ie.startRow, ie.startColumn) + ":." + Z(ie.endRow, ie.endColumn);
2932
+ yield O("table:label-range", { "table:label-cell-range-address": _e(B.labels, L.name), "table:data-cell-range-address": _e(B.data, U.name), "table:orientation": B.axis });
2933
+ }
2934
+ }
2935
+ async function* le() {
2936
+ yield ze, et.hasContent && (yield* s.stream("table:content-validations", {}, et.render())), yield* Re(), T2.sheets.some((L) => L.labelRanges?.length) && (yield* s.stream("table:label-ranges", {}, be())), yield* ue(), yield* lt.render();
2937
+ }
2938
+ let Le = /* @__PURE__ */ new Map(), Ee = new TextEncoder();
2939
+ F && e.own(() => {
2940
+ for (let L of Le.values()) L instanceof Uint8Array && L.fill(0);
2941
+ }), fe("mimetype", "application/vnd.oasis.opendocument.spreadsheet");
2942
+ async function* Ne() {
2943
+ yield O("office:scripts"), yield* s.stream("office:font-face-decls", {}, Q.render("fonts"));
2944
+ async function* L() {
2945
+ yield* Q.render("contentAutomatic"), yield* Ye.render(), yield* d.render();
2946
+ }
2947
+ yield* s.stream("office:automatic-styles", {}, L()), yield* s.stream("office:body", {}, s.stream("office:spreadsheet", {}, le()));
2948
+ }
2949
+ fe("content.xml", s.documentStream("office:document-content", Ne()));
2950
+ async function* ut() {
2951
+ yield* s.stream("office:font-face-decls", {}, Q.render("fonts")), yield* s.stream("office:styles", {}, Q.render("styles")), yield* s.stream("office:automatic-styles", {}, Q.render("stylesAutomatic")), yield* s.stream("office:master-styles", {}, Q.render("masters"));
2952
+ }
2953
+ fe("styles.xml", s.documentStream("office:document-styles", ut())), fe("meta.xml", s.document("office:document-meta", O("office:meta", {}, O("meta:generator", {}, "Gnumeric/1.12.61")))), fe("settings.xml", s.document("office:document-settings", O("office:settings", {}, O("config:config-item-set", { "config:name": "gnm:settings" }, O("config:config-item", { "config:name": "gnm:has_foreign", "config:type": "boolean" }, String(w)) + O("config:config-item", { "config:name": "gnm:active-sheet", "config:type": "string" }, s.escape(T2.sheets.find((L) => L.id === T2.activeSheet)?.name ?? T2.sheets[0].name))))));
2954
+ for (let L of T2.unsupportedRecords ?? []) {
2955
+ s.charge();
2956
+ let B = qe(L.data);
2957
+ if (!(L.source !== "Gnumeric_OpenCalc:openoffice" || !B)) if ((L.kind === "embedded-resource" || L.kind === "embedded-document") && typeof B.path == "string") {
2958
+ let U = B.path;
2959
+ if (Le.has(U) || U.startsWith("/") || U.includes("\\") || U.split("/").some((Z) => !Z || Z === "." || Z === "..")) throw new he("invalid-request", "Invalid OpenDocument embedded path");
2960
+ if (L.kind === "embedded-document") {
2961
+ let Z = qe(B.xml);
2962
+ if (Z?.name !== "document-content" && Z?.name !== "document-styles") throw new he("invalid-request", "Invalid OpenDocument embedded document root");
2963
+ fe(U, s.documentStream("office:" + Z.name, we(B.xml)));
2964
+ } else if (B.encoding === "hex" && typeof B.bytes == "string") {
2965
+ if (s.charge(B.bytes.length), B.bytes.length % 2 || [...B.bytes].some((_e) => !"0123456789abcdefABCDEF".includes(_e))) throw new he("invalid-request", "Invalid OpenDocument embedded bytes");
2966
+ B.bytes.length / 2 > e.limits.outputBytes && de("embedded bytes");
2967
+ let Z = new Uint8Array(B.bytes.length / 2);
2968
+ for (let _e = 0; _e < Z.length; _e++) Z[_e] = parseInt(B.bytes.slice(_e * 2, _e * 2 + 2), 16);
2969
+ Le.set(U, Z);
2970
+ }
2971
+ } else ["document-meta", "document-settings"].includes(L.kind) && B.xml && fe(L.kind === "document-meta" ? "meta.xml" : "settings.xml", s.documentStream("office:" + L.kind, we(B.xml)));
2972
+ }
2973
+ let xe = y ? /* @__PURE__ */ new Map() : void 0;
2974
+ if (xe) for (let [L, B] of Le) {
2975
+ let U = typeof B == "string" ? Ee.encode(B) : B instanceof Uint8Array ? B : await Bn(B);
2976
+ Le.set(L, U), xe.set(L, U);
2977
+ }
2978
+ let tt = y === void 0 || F ? void 0 : await Zn(xe, e, s, y);
2979
+ fe("META-INF/manifest.xml", '<?xml version="1.0" encoding="UTF-8"?>' + O("manifest:manifest", { "xmlns:manifest": "urn:oasis:names:tc:opendocument:xmlns:manifest:1.0", "manifest:version": "1.2" }, O("manifest:file-entry", { "manifest:full-path": "/", "manifest:media-type": "application/vnd.oasis.opendocument.spreadsheet", "manifest:version": "1.2" }) + (T2.unsupportedRecords ?? []).filter((L) => L.kind === "embedded-document").flatMap((L) => {
2980
+ let B = qe(L.data);
2981
+ return typeof B?.path == "string" && B.path.endsWith("/content.xml") ? [O("manifest:file-entry", { "manifest:full-path": B.path.slice(0, -11), "manifest:media-type": "application/vnd.oasis.opendocument.chart" })] : [];
2982
+ }).join("") + [...Le.keys()].filter((L) => L !== "mimetype").map((L) => O("manifest:file-entry", { "manifest:full-path": L, "manifest:media-type": L.endsWith(".xml") ? "text/xml" : L.endsWith(".png") ? "image/png" : L.endsWith(".jpg") || L.endsWith(".jpeg") ? "image/jpeg" : "", "manifest:size": tt?.get(L)?.size }, tt?.get(L)?.declaration ?? "")).join("")));
2983
+ let Ot = 0;
2984
+ async function* ht(L, B = tt) {
2985
+ L.size > C.maxMembers - Ot && de("ZIP members"), Ot += L.size;
2986
+ let U = [], Z = 0, _e = c ? Y.createStagedWriter(c, C, e.signal) : void 0;
2987
+ try {
2988
+ for (let [ie, ce] of L) {
2989
+ let q = B?.get(ie)?.bytes ?? ce, oe = { modified: /* @__PURE__ */ new Date("2000-01-01Z"), mode: 420, directory: false, symlink: false, compression: ie === "mimetype" || B?.has(ie) ? "store" : "deflate" };
2990
+ if (_e) {
2991
+ async function* ae() {
2992
+ typeof q == "string" || q instanceof Uint8Array ? yield q : yield* q;
2993
+ }
2994
+ async function* Be() {
2995
+ for await (let $e of xi(ae(), "UTF-8", false, e)) s.charge($e.length), Z += $e.length, Z > e.limits.outputBytes && de("output bytes"), yield $e;
2996
+ }
2997
+ await _e.addSource(ie, Be(), oe);
2998
+ } else {
2999
+ let ae = typeof q == "string" ? Ee.encode(q) : q instanceof Uint8Array ? q : await Bn(q);
3000
+ s.charge(ae.length), Z += ae.length, Z > e.limits.outputBytes && de("output bytes"), U.push(await Y.makeZipEntry(ie, ae, oe, C, e.signal));
3001
+ }
3002
+ }
3003
+ _e ? yield* _e.finish() : yield await Y.writeZipArchive({ entries: U, comment: new Uint8Array() }, C, e.signal);
3004
+ } catch (ie) {
3005
+ throw e.signal.throwIfAborted(), ie instanceof CodecError && ie.code === "resource-limit" && de("output package"), ie;
3006
+ } finally {
3007
+ if (F) for (let ie of U) ie.data.fill(0);
3008
+ }
3009
+ }
3010
+ if (!F) {
3011
+ yield* ht(Le);
3012
+ return;
3013
+ }
3014
+ Le.size + 3 > C.maxMembers && de("ZIP members");
3015
+ let rt = await Bn(ht(Le));
3016
+ try {
3017
+ let L = await Zn(/* @__PURE__ */ new Map([["encrypted-package", rt]]), e, s, y), B = L.get("encrypted-package"), U = xe.get("mimetype"), Z = '<?xml version="1.0" encoding="UTF-8"?>' + O("manifest:manifest", { "xmlns:manifest": Lt.manifest, "xmlns:loext": Qi, "manifest:version": "1.4" }, O("manifest:file-entry", { "manifest:full-path": "encrypted-package", "manifest:media-type": new TextDecoder().decode(U), "manifest:size": B.size }, B.declaration));
3018
+ yield* ht(/* @__PURE__ */ new Map([["mimetype", U], ["META-INF/manifest.xml", Ee.encode(Z)], ["encrypted-package", B.bytes]]), L);
3019
+ } finally {
3020
+ rt.fill(0);
3021
+ for (let L of Le.values()) L instanceof Uint8Array && L.fill(0);
3022
+ }
3023
+ } catch (y) {
3024
+ throw _ = { error: y }, y;
3025
+ } finally {
3026
+ for (let y of f) y.dispose();
3027
+ d?.dispose(), l2.fill(0);
3028
+ for (let y of a) y.fill(0);
3029
+ await u2().catch((y) => {
3030
+ throw _ ? new AggregateError([_.error, y], "ODF export and storage cleanup failed") : y;
3031
+ });
3032
+ }
3033
+ };
3034
+ }
3035
+ export {
3036
+ Eo as createOdfStreamWriter,
3037
+ ys as createOdfWriter,
3038
+ Ls as probeOdf,
3039
+ lo as readOdf,
3040
+ hs as readOdfWorkbookSource
3041
+ };