pi-cursor-sdk 0.1.3 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2607) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/README.md +30 -17
  3. package/docs/cursor-model-ux-spec.md +11 -2
  4. package/package.json +60 -63
  5. package/src/cursor-native-tool-display.ts +80 -0
  6. package/src/cursor-provider.ts +552 -88
  7. package/src/cursor-tool-transcript.ts +553 -0
  8. package/src/index.ts +2 -0
  9. package/src/model-discovery.ts +34 -10
  10. package/node_modules/@bufbuild/protobuf/README.md +0 -43
  11. package/node_modules/@bufbuild/protobuf/dist/cjs/binary-encoding.d.ts +0 -422
  12. package/node_modules/@bufbuild/protobuf/dist/cjs/binary-encoding.js +0 -444
  13. package/node_modules/@bufbuild/protobuf/dist/cjs/binary-format.d.ts +0 -113
  14. package/node_modules/@bufbuild/protobuf/dist/cjs/binary-format.js +0 -15
  15. package/node_modules/@bufbuild/protobuf/dist/cjs/codegen-info.d.ts +0 -33
  16. package/node_modules/@bufbuild/protobuf/dist/cjs/codegen-info.js +0 -69
  17. package/node_modules/@bufbuild/protobuf/dist/cjs/create-descriptor-set.d.ts +0 -36
  18. package/node_modules/@bufbuild/protobuf/dist/cjs/create-descriptor-set.js +0 -910
  19. package/node_modules/@bufbuild/protobuf/dist/cjs/create-registry-from-desc.d.ts +0 -15
  20. package/node_modules/@bufbuild/protobuf/dist/cjs/create-registry-from-desc.js +0 -264
  21. package/node_modules/@bufbuild/protobuf/dist/cjs/create-registry.d.ts +0 -9
  22. package/node_modules/@bufbuild/protobuf/dist/cjs/create-registry.js +0 -94
  23. package/node_modules/@bufbuild/protobuf/dist/cjs/descriptor-set.d.ts +0 -672
  24. package/node_modules/@bufbuild/protobuf/dist/cjs/descriptor-set.js +0 -15
  25. package/node_modules/@bufbuild/protobuf/dist/cjs/enum.d.ts +0 -35
  26. package/node_modules/@bufbuild/protobuf/dist/cjs/enum.js +0 -15
  27. package/node_modules/@bufbuild/protobuf/dist/cjs/extension-accessor.d.ts +0 -35
  28. package/node_modules/@bufbuild/protobuf/dist/cjs/extension-accessor.js +0 -114
  29. package/node_modules/@bufbuild/protobuf/dist/cjs/extension.d.ts +0 -24
  30. package/node_modules/@bufbuild/protobuf/dist/cjs/extension.js +0 -15
  31. package/node_modules/@bufbuild/protobuf/dist/cjs/field-list.d.ts +0 -27
  32. package/node_modules/@bufbuild/protobuf/dist/cjs/field-list.js +0 -15
  33. package/node_modules/@bufbuild/protobuf/dist/cjs/field.d.ts +0 -314
  34. package/node_modules/@bufbuild/protobuf/dist/cjs/field.js +0 -15
  35. package/node_modules/@bufbuild/protobuf/dist/cjs/google/protobuf/any_pb.d.ts +0 -157
  36. package/node_modules/@bufbuild/protobuf/dist/cjs/google/protobuf/any_pb.js +0 -273
  37. package/node_modules/@bufbuild/protobuf/dist/cjs/google/protobuf/api_pb.d.ts +0 -256
  38. package/node_modules/@bufbuild/protobuf/dist/cjs/google/protobuf/api_pb.js +0 -316
  39. package/node_modules/@bufbuild/protobuf/dist/cjs/google/protobuf/compiler/plugin_pb.d.ts +0 -271
  40. package/node_modules/@bufbuild/protobuf/dist/cjs/google/protobuf/compiler/plugin_pb.js +0 -219
  41. package/node_modules/@bufbuild/protobuf/dist/cjs/google/protobuf/descriptor_pb.d.ts +0 -2277
  42. package/node_modules/@bufbuild/protobuf/dist/cjs/google/protobuf/descriptor_pb.js +0 -2077
  43. package/node_modules/@bufbuild/protobuf/dist/cjs/google/protobuf/duration_pb.d.ts +0 -100
  44. package/node_modules/@bufbuild/protobuf/dist/cjs/google/protobuf/duration_pb.js +0 -169
  45. package/node_modules/@bufbuild/protobuf/dist/cjs/google/protobuf/empty_pb.d.ts +0 -28
  46. package/node_modules/@bufbuild/protobuf/dist/cjs/google/protobuf/empty_pb.js +0 -52
  47. package/node_modules/@bufbuild/protobuf/dist/cjs/google/protobuf/field_mask_pb.d.ts +0 -227
  48. package/node_modules/@bufbuild/protobuf/dist/cjs/google/protobuf/field_mask_pb.js +0 -311
  49. package/node_modules/@bufbuild/protobuf/dist/cjs/google/protobuf/source_context_pb.d.ts +0 -29
  50. package/node_modules/@bufbuild/protobuf/dist/cjs/google/protobuf/source_context_pb.js +0 -55
  51. package/node_modules/@bufbuild/protobuf/dist/cjs/google/protobuf/struct_pb.d.ts +0 -158
  52. package/node_modules/@bufbuild/protobuf/dist/cjs/google/protobuf/struct_pb.js +0 -240
  53. package/node_modules/@bufbuild/protobuf/dist/cjs/google/protobuf/timestamp_pb.d.ts +0 -132
  54. package/node_modules/@bufbuild/protobuf/dist/cjs/google/protobuf/timestamp_pb.js +0 -213
  55. package/node_modules/@bufbuild/protobuf/dist/cjs/google/protobuf/type_pb.d.ts +0 -437
  56. package/node_modules/@bufbuild/protobuf/dist/cjs/google/protobuf/type_pb.js +0 -562
  57. package/node_modules/@bufbuild/protobuf/dist/cjs/google/protobuf/wrappers_pb.d.ts +0 -267
  58. package/node_modules/@bufbuild/protobuf/dist/cjs/google/protobuf/wrappers_pb.js +0 -569
  59. package/node_modules/@bufbuild/protobuf/dist/cjs/google/varint.d.ts +0 -70
  60. package/node_modules/@bufbuild/protobuf/dist/cjs/google/varint.js +0 -323
  61. package/node_modules/@bufbuild/protobuf/dist/cjs/index.d.ts +0 -42
  62. package/node_modules/@bufbuild/protobuf/dist/cjs/index.js +0 -84
  63. package/node_modules/@bufbuild/protobuf/dist/cjs/is-message.d.ts +0 -22
  64. package/node_modules/@bufbuild/protobuf/dist/cjs/is-message.js +0 -52
  65. package/node_modules/@bufbuild/protobuf/dist/cjs/json-format.d.ts +0 -111
  66. package/node_modules/@bufbuild/protobuf/dist/cjs/json-format.js +0 -15
  67. package/node_modules/@bufbuild/protobuf/dist/cjs/message-type.d.ts +0 -51
  68. package/node_modules/@bufbuild/protobuf/dist/cjs/message-type.js +0 -15
  69. package/node_modules/@bufbuild/protobuf/dist/cjs/message.d.ts +0 -131
  70. package/node_modules/@bufbuild/protobuf/dist/cjs/message.js +0 -129
  71. package/node_modules/@bufbuild/protobuf/dist/cjs/package.json +0 -1
  72. package/node_modules/@bufbuild/protobuf/dist/cjs/private/assert.d.ts +0 -16
  73. package/node_modules/@bufbuild/protobuf/dist/cjs/private/assert.js +0 -59
  74. package/node_modules/@bufbuild/protobuf/dist/cjs/private/binary-format.d.ts +0 -7
  75. package/node_modules/@bufbuild/protobuf/dist/cjs/private/binary-format.js +0 -431
  76. package/node_modules/@bufbuild/protobuf/dist/cjs/private/enum.d.ts +0 -27
  77. package/node_modules/@bufbuild/protobuf/dist/cjs/private/enum.js +0 -94
  78. package/node_modules/@bufbuild/protobuf/dist/cjs/private/extensions.d.ts +0 -34
  79. package/node_modules/@bufbuild/protobuf/dist/cjs/private/extensions.js +0 -86
  80. package/node_modules/@bufbuild/protobuf/dist/cjs/private/feature-set.d.ts +0 -19
  81. package/node_modules/@bufbuild/protobuf/dist/cjs/private/feature-set.js +0 -120
  82. package/node_modules/@bufbuild/protobuf/dist/cjs/private/field-list.d.ts +0 -18
  83. package/node_modules/@bufbuild/protobuf/dist/cjs/private/field-list.js +0 -76
  84. package/node_modules/@bufbuild/protobuf/dist/cjs/private/field-normalize.d.ts +0 -9
  85. package/node_modules/@bufbuild/protobuf/dist/cjs/private/field-normalize.js +0 -69
  86. package/node_modules/@bufbuild/protobuf/dist/cjs/private/field-wrapper.d.ts +0 -25
  87. package/node_modules/@bufbuild/protobuf/dist/cjs/private/field-wrapper.js +0 -57
  88. package/node_modules/@bufbuild/protobuf/dist/cjs/private/field.d.ts +0 -16
  89. package/node_modules/@bufbuild/protobuf/dist/cjs/private/field.js +0 -45
  90. package/node_modules/@bufbuild/protobuf/dist/cjs/private/json-format.d.ts +0 -2
  91. package/node_modules/@bufbuild/protobuf/dist/cjs/private/json-format.js +0 -626
  92. package/node_modules/@bufbuild/protobuf/dist/cjs/private/message-type.d.ts +0 -18
  93. package/node_modules/@bufbuild/protobuf/dist/cjs/private/message-type.js +0 -50
  94. package/node_modules/@bufbuild/protobuf/dist/cjs/private/names.d.ts +0 -43
  95. package/node_modules/@bufbuild/protobuf/dist/cjs/private/names.js +0 -278
  96. package/node_modules/@bufbuild/protobuf/dist/cjs/private/options-map.d.ts +0 -7
  97. package/node_modules/@bufbuild/protobuf/dist/cjs/private/options-map.js +0 -15
  98. package/node_modules/@bufbuild/protobuf/dist/cjs/private/proto-runtime.d.ts +0 -53
  99. package/node_modules/@bufbuild/protobuf/dist/cjs/private/proto-runtime.js +0 -41
  100. package/node_modules/@bufbuild/protobuf/dist/cjs/private/reflect.d.ts +0 -9
  101. package/node_modules/@bufbuild/protobuf/dist/cjs/private/reflect.js +0 -79
  102. package/node_modules/@bufbuild/protobuf/dist/cjs/private/reify-wkt.d.ts +0 -102
  103. package/node_modules/@bufbuild/protobuf/dist/cjs/private/reify-wkt.js +0 -172
  104. package/node_modules/@bufbuild/protobuf/dist/cjs/private/scalars.d.ts +0 -18
  105. package/node_modules/@bufbuild/protobuf/dist/cjs/private/scalars.js +0 -105
  106. package/node_modules/@bufbuild/protobuf/dist/cjs/private/text-format.d.ts +0 -4
  107. package/node_modules/@bufbuild/protobuf/dist/cjs/private/text-format.js +0 -189
  108. package/node_modules/@bufbuild/protobuf/dist/cjs/private/util-common.d.ts +0 -2
  109. package/node_modules/@bufbuild/protobuf/dist/cjs/private/util-common.js +0 -237
  110. package/node_modules/@bufbuild/protobuf/dist/cjs/private/util.d.ts +0 -38
  111. package/node_modules/@bufbuild/protobuf/dist/cjs/private/util.js +0 -15
  112. package/node_modules/@bufbuild/protobuf/dist/cjs/proto-base64.d.ts +0 -18
  113. package/node_modules/@bufbuild/protobuf/dist/cjs/proto-base64.js +0 -128
  114. package/node_modules/@bufbuild/protobuf/dist/cjs/proto-delimited.d.ts +0 -54
  115. package/node_modules/@bufbuild/protobuf/dist/cjs/proto-delimited.js +0 -155
  116. package/node_modules/@bufbuild/protobuf/dist/cjs/proto-double.d.ts +0 -5
  117. package/node_modules/@bufbuild/protobuf/dist/cjs/proto-double.js +0 -29
  118. package/node_modules/@bufbuild/protobuf/dist/cjs/proto-int64.d.ts +0 -95
  119. package/node_modules/@bufbuild/protobuf/dist/cjs/proto-int64.js +0 -116
  120. package/node_modules/@bufbuild/protobuf/dist/cjs/proto2.d.ts +0 -4
  121. package/node_modules/@bufbuild/protobuf/dist/cjs/proto2.js +0 -53
  122. package/node_modules/@bufbuild/protobuf/dist/cjs/proto3.d.ts +0 -4
  123. package/node_modules/@bufbuild/protobuf/dist/cjs/proto3.js +0 -56
  124. package/node_modules/@bufbuild/protobuf/dist/cjs/scalar.d.ts +0 -53
  125. package/node_modules/@bufbuild/protobuf/dist/cjs/scalar.js +0 -81
  126. package/node_modules/@bufbuild/protobuf/dist/cjs/service-type.d.ts +0 -96
  127. package/node_modules/@bufbuild/protobuf/dist/cjs/service-type.js +0 -53
  128. package/node_modules/@bufbuild/protobuf/dist/cjs/to-plain-message.d.ts +0 -12
  129. package/node_modules/@bufbuild/protobuf/dist/cjs/to-plain-message.js +0 -72
  130. package/node_modules/@bufbuild/protobuf/dist/cjs/type-registry.d.ts +0 -57
  131. package/node_modules/@bufbuild/protobuf/dist/cjs/type-registry.js +0 -15
  132. package/node_modules/@bufbuild/protobuf/dist/esm/binary-encoding.d.ts +0 -422
  133. package/node_modules/@bufbuild/protobuf/dist/esm/binary-encoding.js +0 -439
  134. package/node_modules/@bufbuild/protobuf/dist/esm/binary-format.d.ts +0 -113
  135. package/node_modules/@bufbuild/protobuf/dist/esm/binary-format.js +0 -14
  136. package/node_modules/@bufbuild/protobuf/dist/esm/codegen-info.d.ts +0 -33
  137. package/node_modules/@bufbuild/protobuf/dist/esm/codegen-info.js +0 -67
  138. package/node_modules/@bufbuild/protobuf/dist/esm/create-descriptor-set.d.ts +0 -36
  139. package/node_modules/@bufbuild/protobuf/dist/esm/create-descriptor-set.js +0 -906
  140. package/node_modules/@bufbuild/protobuf/dist/esm/create-registry-from-desc.d.ts +0 -15
  141. package/node_modules/@bufbuild/protobuf/dist/esm/create-registry-from-desc.js +0 -261
  142. package/node_modules/@bufbuild/protobuf/dist/esm/create-registry.d.ts +0 -9
  143. package/node_modules/@bufbuild/protobuf/dist/esm/create-registry.js +0 -90
  144. package/node_modules/@bufbuild/protobuf/dist/esm/descriptor-set.d.ts +0 -672
  145. package/node_modules/@bufbuild/protobuf/dist/esm/descriptor-set.js +0 -14
  146. package/node_modules/@bufbuild/protobuf/dist/esm/enum.d.ts +0 -35
  147. package/node_modules/@bufbuild/protobuf/dist/esm/enum.js +0 -14
  148. package/node_modules/@bufbuild/protobuf/dist/esm/extension-accessor.d.ts +0 -35
  149. package/node_modules/@bufbuild/protobuf/dist/esm/extension-accessor.js +0 -107
  150. package/node_modules/@bufbuild/protobuf/dist/esm/extension.d.ts +0 -24
  151. package/node_modules/@bufbuild/protobuf/dist/esm/extension.js +0 -14
  152. package/node_modules/@bufbuild/protobuf/dist/esm/field-list.d.ts +0 -27
  153. package/node_modules/@bufbuild/protobuf/dist/esm/field-list.js +0 -14
  154. package/node_modules/@bufbuild/protobuf/dist/esm/field.d.ts +0 -314
  155. package/node_modules/@bufbuild/protobuf/dist/esm/field.js +0 -14
  156. package/node_modules/@bufbuild/protobuf/dist/esm/google/protobuf/any_pb.d.ts +0 -157
  157. package/node_modules/@bufbuild/protobuf/dist/esm/google/protobuf/any_pb.js +0 -269
  158. package/node_modules/@bufbuild/protobuf/dist/esm/google/protobuf/api_pb.d.ts +0 -256
  159. package/node_modules/@bufbuild/protobuf/dist/esm/google/protobuf/api_pb.js +0 -310
  160. package/node_modules/@bufbuild/protobuf/dist/esm/google/protobuf/compiler/plugin_pb.d.ts +0 -271
  161. package/node_modules/@bufbuild/protobuf/dist/esm/google/protobuf/compiler/plugin_pb.js +0 -212
  162. package/node_modules/@bufbuild/protobuf/dist/esm/google/protobuf/descriptor_pb.d.ts +0 -2277
  163. package/node_modules/@bufbuild/protobuf/dist/esm/google/protobuf/descriptor_pb.js +0 -2041
  164. package/node_modules/@bufbuild/protobuf/dist/esm/google/protobuf/duration_pb.d.ts +0 -100
  165. package/node_modules/@bufbuild/protobuf/dist/esm/google/protobuf/duration_pb.js +0 -165
  166. package/node_modules/@bufbuild/protobuf/dist/esm/google/protobuf/empty_pb.d.ts +0 -28
  167. package/node_modules/@bufbuild/protobuf/dist/esm/google/protobuf/empty_pb.js +0 -48
  168. package/node_modules/@bufbuild/protobuf/dist/esm/google/protobuf/field_mask_pb.d.ts +0 -227
  169. package/node_modules/@bufbuild/protobuf/dist/esm/google/protobuf/field_mask_pb.js +0 -307
  170. package/node_modules/@bufbuild/protobuf/dist/esm/google/protobuf/source_context_pb.d.ts +0 -29
  171. package/node_modules/@bufbuild/protobuf/dist/esm/google/protobuf/source_context_pb.js +0 -51
  172. package/node_modules/@bufbuild/protobuf/dist/esm/google/protobuf/struct_pb.d.ts +0 -158
  173. package/node_modules/@bufbuild/protobuf/dist/esm/google/protobuf/struct_pb.js +0 -234
  174. package/node_modules/@bufbuild/protobuf/dist/esm/google/protobuf/timestamp_pb.d.ts +0 -132
  175. package/node_modules/@bufbuild/protobuf/dist/esm/google/protobuf/timestamp_pb.js +0 -209
  176. package/node_modules/@bufbuild/protobuf/dist/esm/google/protobuf/type_pb.d.ts +0 -437
  177. package/node_modules/@bufbuild/protobuf/dist/esm/google/protobuf/type_pb.js +0 -554
  178. package/node_modules/@bufbuild/protobuf/dist/esm/google/protobuf/wrappers_pb.d.ts +0 -267
  179. package/node_modules/@bufbuild/protobuf/dist/esm/google/protobuf/wrappers_pb.js +0 -557
  180. package/node_modules/@bufbuild/protobuf/dist/esm/google/varint.d.ts +0 -70
  181. package/node_modules/@bufbuild/protobuf/dist/esm/google/varint.js +0 -313
  182. package/node_modules/@bufbuild/protobuf/dist/esm/index.d.ts +0 -42
  183. package/node_modules/@bufbuild/protobuf/dist/esm/index.js +0 -43
  184. package/node_modules/@bufbuild/protobuf/dist/esm/is-message.d.ts +0 -22
  185. package/node_modules/@bufbuild/protobuf/dist/esm/is-message.js +0 -48
  186. package/node_modules/@bufbuild/protobuf/dist/esm/json-format.d.ts +0 -111
  187. package/node_modules/@bufbuild/protobuf/dist/esm/json-format.js +0 -14
  188. package/node_modules/@bufbuild/protobuf/dist/esm/message-type.d.ts +0 -51
  189. package/node_modules/@bufbuild/protobuf/dist/esm/message-type.js +0 -14
  190. package/node_modules/@bufbuild/protobuf/dist/esm/message.d.ts +0 -131
  191. package/node_modules/@bufbuild/protobuf/dist/esm/message.js +0 -125
  192. package/node_modules/@bufbuild/protobuf/dist/esm/private/assert.d.ts +0 -16
  193. package/node_modules/@bufbuild/protobuf/dist/esm/private/assert.js +0 -52
  194. package/node_modules/@bufbuild/protobuf/dist/esm/private/binary-format.d.ts +0 -7
  195. package/node_modules/@bufbuild/protobuf/dist/esm/private/binary-format.js +0 -427
  196. package/node_modules/@bufbuild/protobuf/dist/esm/private/enum.d.ts +0 -27
  197. package/node_modules/@bufbuild/protobuf/dist/esm/private/enum.js +0 -87
  198. package/node_modules/@bufbuild/protobuf/dist/esm/private/extensions.d.ts +0 -34
  199. package/node_modules/@bufbuild/protobuf/dist/esm/private/extensions.js +0 -81
  200. package/node_modules/@bufbuild/protobuf/dist/esm/private/feature-set.d.ts +0 -19
  201. package/node_modules/@bufbuild/protobuf/dist/esm/private/feature-set.js +0 -116
  202. package/node_modules/@bufbuild/protobuf/dist/esm/private/field-list.d.ts +0 -18
  203. package/node_modules/@bufbuild/protobuf/dist/esm/private/field-list.js +0 -72
  204. package/node_modules/@bufbuild/protobuf/dist/esm/private/field-normalize.d.ts +0 -9
  205. package/node_modules/@bufbuild/protobuf/dist/esm/private/field-normalize.js +0 -65
  206. package/node_modules/@bufbuild/protobuf/dist/esm/private/field-wrapper.d.ts +0 -25
  207. package/node_modules/@bufbuild/protobuf/dist/esm/private/field-wrapper.js +0 -53
  208. package/node_modules/@bufbuild/protobuf/dist/esm/private/field.d.ts +0 -16
  209. package/node_modules/@bufbuild/protobuf/dist/esm/private/field.js +0 -41
  210. package/node_modules/@bufbuild/protobuf/dist/esm/private/json-format.d.ts +0 -2
  211. package/node_modules/@bufbuild/protobuf/dist/esm/private/json-format.js +0 -623
  212. package/node_modules/@bufbuild/protobuf/dist/esm/private/message-type.d.ts +0 -18
  213. package/node_modules/@bufbuild/protobuf/dist/esm/private/message-type.js +0 -46
  214. package/node_modules/@bufbuild/protobuf/dist/esm/private/names.d.ts +0 -43
  215. package/node_modules/@bufbuild/protobuf/dist/esm/private/names.js +0 -269
  216. package/node_modules/@bufbuild/protobuf/dist/esm/private/options-map.d.ts +0 -7
  217. package/node_modules/@bufbuild/protobuf/dist/esm/private/options-map.js +0 -14
  218. package/node_modules/@bufbuild/protobuf/dist/esm/private/proto-runtime.d.ts +0 -53
  219. package/node_modules/@bufbuild/protobuf/dist/esm/private/proto-runtime.js +0 -37
  220. package/node_modules/@bufbuild/protobuf/dist/esm/private/reflect.d.ts +0 -9
  221. package/node_modules/@bufbuild/protobuf/dist/esm/private/reflect.js +0 -74
  222. package/node_modules/@bufbuild/protobuf/dist/esm/private/reify-wkt.d.ts +0 -102
  223. package/node_modules/@bufbuild/protobuf/dist/esm/private/reify-wkt.js +0 -168
  224. package/node_modules/@bufbuild/protobuf/dist/esm/private/scalars.d.ts +0 -18
  225. package/node_modules/@bufbuild/protobuf/dist/esm/private/scalars.js +0 -99
  226. package/node_modules/@bufbuild/protobuf/dist/esm/private/text-format.d.ts +0 -4
  227. package/node_modules/@bufbuild/protobuf/dist/esm/private/text-format.js +0 -184
  228. package/node_modules/@bufbuild/protobuf/dist/esm/private/util-common.d.ts +0 -2
  229. package/node_modules/@bufbuild/protobuf/dist/esm/private/util-common.js +0 -234
  230. package/node_modules/@bufbuild/protobuf/dist/esm/private/util.d.ts +0 -38
  231. package/node_modules/@bufbuild/protobuf/dist/esm/private/util.js +0 -14
  232. package/node_modules/@bufbuild/protobuf/dist/esm/proto-base64.d.ts +0 -18
  233. package/node_modules/@bufbuild/protobuf/dist/esm/proto-base64.js +0 -125
  234. package/node_modules/@bufbuild/protobuf/dist/esm/proto-delimited.d.ts +0 -54
  235. package/node_modules/@bufbuild/protobuf/dist/esm/proto-delimited.js +0 -152
  236. package/node_modules/@bufbuild/protobuf/dist/esm/proto-double.d.ts +0 -5
  237. package/node_modules/@bufbuild/protobuf/dist/esm/proto-double.js +0 -26
  238. package/node_modules/@bufbuild/protobuf/dist/esm/proto-int64.d.ts +0 -95
  239. package/node_modules/@bufbuild/protobuf/dist/esm/proto-int64.js +0 -113
  240. package/node_modules/@bufbuild/protobuf/dist/esm/proto2.d.ts +0 -4
  241. package/node_modules/@bufbuild/protobuf/dist/esm/proto2.js +0 -50
  242. package/node_modules/@bufbuild/protobuf/dist/esm/proto3.d.ts +0 -4
  243. package/node_modules/@bufbuild/protobuf/dist/esm/proto3.js +0 -53
  244. package/node_modules/@bufbuild/protobuf/dist/esm/scalar.d.ts +0 -53
  245. package/node_modules/@bufbuild/protobuf/dist/esm/scalar.js +0 -78
  246. package/node_modules/@bufbuild/protobuf/dist/esm/service-type.d.ts +0 -96
  247. package/node_modules/@bufbuild/protobuf/dist/esm/service-type.js +0 -50
  248. package/node_modules/@bufbuild/protobuf/dist/esm/to-plain-message.d.ts +0 -12
  249. package/node_modules/@bufbuild/protobuf/dist/esm/to-plain-message.js +0 -70
  250. package/node_modules/@bufbuild/protobuf/dist/esm/type-registry.d.ts +0 -57
  251. package/node_modules/@bufbuild/protobuf/dist/esm/type-registry.js +0 -14
  252. package/node_modules/@bufbuild/protobuf/package.json +0 -34
  253. package/node_modules/@connectrpc/connect/README.md +0 -62
  254. package/node_modules/@connectrpc/connect/dist/cjs/any-client.d.ts +0 -22
  255. package/node_modules/@connectrpc/connect/dist/cjs/any-client.js +0 -34
  256. package/node_modules/@connectrpc/connect/dist/cjs/call-options.d.ts +0 -34
  257. package/node_modules/@connectrpc/connect/dist/cjs/call-options.js +0 -15
  258. package/node_modules/@connectrpc/connect/dist/cjs/callback-client.d.ts +0 -31
  259. package/node_modules/@connectrpc/connect/dist/cjs/callback-client.js +0 -116
  260. package/node_modules/@connectrpc/connect/dist/cjs/code.d.ts +0 -75
  261. package/node_modules/@connectrpc/connect/dist/cjs/code.js +0 -92
  262. package/node_modules/@connectrpc/connect/dist/cjs/connect-error.d.ts +0 -90
  263. package/node_modules/@connectrpc/connect/dist/cjs/connect-error.js +0 -134
  264. package/node_modules/@connectrpc/connect/dist/cjs/context-values.d.ts +0 -34
  265. package/node_modules/@connectrpc/connect/dist/cjs/context-values.js +0 -41
  266. package/node_modules/@connectrpc/connect/dist/cjs/cors.d.ts +0 -45
  267. package/node_modules/@connectrpc/connect/dist/cjs/cors.js +0 -82
  268. package/node_modules/@connectrpc/connect/dist/cjs/http-headers.d.ts +0 -36
  269. package/node_modules/@connectrpc/connect/dist/cjs/http-headers.js +0 -68
  270. package/node_modules/@connectrpc/connect/dist/cjs/implementation.d.ts +0 -165
  271. package/node_modules/@connectrpc/connect/dist/cjs/implementation.js +0 -79
  272. package/node_modules/@connectrpc/connect/dist/cjs/index.d.ts +0 -22
  273. package/node_modules/@connectrpc/connect/dist/cjs/index.js +0 -47
  274. package/node_modules/@connectrpc/connect/dist/cjs/interceptor.d.ts +0 -155
  275. package/node_modules/@connectrpc/connect/dist/cjs/interceptor.js +0 -27
  276. package/node_modules/@connectrpc/connect/dist/cjs/method-type.d.ts +0 -43
  277. package/node_modules/@connectrpc/connect/dist/cjs/method-type.js +0 -15
  278. package/node_modules/@connectrpc/connect/dist/cjs/package.json +0 -1
  279. package/node_modules/@connectrpc/connect/dist/cjs/promise-client.d.ts +0 -49
  280. package/node_modules/@connectrpc/connect/dist/cjs/promise-client.js +0 -147
  281. package/node_modules/@connectrpc/connect/dist/cjs/protocol/async-iterable.d.ts +0 -527
  282. package/node_modules/@connectrpc/connect/dist/cjs/protocol/async-iterable.js +0 -959
  283. package/node_modules/@connectrpc/connect/dist/cjs/protocol/compression.d.ts +0 -48
  284. package/node_modules/@connectrpc/connect/dist/cjs/protocol/compression.js +0 -75
  285. package/node_modules/@connectrpc/connect/dist/cjs/protocol/content-type-matcher.d.ts +0 -16
  286. package/node_modules/@connectrpc/connect/dist/cjs/protocol/content-type-matcher.js +0 -43
  287. package/node_modules/@connectrpc/connect/dist/cjs/protocol/create-method-url.d.ts +0 -17
  288. package/node_modules/@connectrpc/connect/dist/cjs/protocol/create-method-url.js +0 -36
  289. package/node_modules/@connectrpc/connect/dist/cjs/protocol/envelope.d.ts +0 -59
  290. package/node_modules/@connectrpc/connect/dist/cjs/protocol/envelope.js +0 -152
  291. package/node_modules/@connectrpc/connect/dist/cjs/protocol/index.d.ts +0 -24
  292. package/node_modules/@connectrpc/connect/dist/cjs/protocol/index.js +0 -93
  293. package/node_modules/@connectrpc/connect/dist/cjs/protocol/invoke-implementation.d.ts +0 -21
  294. package/node_modules/@connectrpc/connect/dist/cjs/protocol/invoke-implementation.js +0 -250
  295. package/node_modules/@connectrpc/connect/dist/cjs/protocol/limit-io.d.ts +0 -24
  296. package/node_modules/@connectrpc/connect/dist/cjs/protocol/limit-io.js +0 -80
  297. package/node_modules/@connectrpc/connect/dist/cjs/protocol/normalize.d.ts +0 -12
  298. package/node_modules/@connectrpc/connect/dist/cjs/protocol/normalize.js +0 -56
  299. package/node_modules/@connectrpc/connect/dist/cjs/protocol/protocol-handler-factory.d.ts +0 -18
  300. package/node_modules/@connectrpc/connect/dist/cjs/protocol/protocol-handler-factory.js +0 -15
  301. package/node_modules/@connectrpc/connect/dist/cjs/protocol/run-call.d.ts +0 -45
  302. package/node_modules/@connectrpc/connect/dist/cjs/protocol/run-call.js +0 -119
  303. package/node_modules/@connectrpc/connect/dist/cjs/protocol/serialization.d.ts +0 -104
  304. package/node_modules/@connectrpc/connect/dist/cjs/protocol/serialization.js +0 -148
  305. package/node_modules/@connectrpc/connect/dist/cjs/protocol/signals.d.ts +0 -36
  306. package/node_modules/@connectrpc/connect/dist/cjs/protocol/signals.js +0 -100
  307. package/node_modules/@connectrpc/connect/dist/cjs/protocol/transport-options.d.ts +0 -98
  308. package/node_modules/@connectrpc/connect/dist/cjs/protocol/transport-options.js +0 -15
  309. package/node_modules/@connectrpc/connect/dist/cjs/protocol/universal-fetch.d.ts +0 -35
  310. package/node_modules/@connectrpc/connect/dist/cjs/protocol/universal-fetch.js +0 -150
  311. package/node_modules/@connectrpc/connect/dist/cjs/protocol/universal-handler-client.d.ts +0 -7
  312. package/node_modules/@connectrpc/connect/dist/cjs/protocol/universal-handler-client.js +0 -90
  313. package/node_modules/@connectrpc/connect/dist/cjs/protocol/universal-handler.d.ts +0 -155
  314. package/node_modules/@connectrpc/connect/dist/cjs/protocol/universal-handler.js +0 -131
  315. package/node_modules/@connectrpc/connect/dist/cjs/protocol/universal.d.ts +0 -102
  316. package/node_modules/@connectrpc/connect/dist/cjs/protocol/universal.js +0 -78
  317. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/code-string.d.ts +0 -16
  318. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/code-string.js +0 -52
  319. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/content-type.d.ts +0 -40
  320. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/content-type.js +0 -71
  321. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/end-stream.d.ts +0 -44
  322. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/end-stream.js +0 -132
  323. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/error-json.d.ts +0 -36
  324. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/error-json.js +0 -163
  325. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/get-request.d.ts +0 -7
  326. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/get-request.js +0 -68
  327. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/handler-factory.d.ts +0 -6
  328. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/handler-factory.js +0 -281
  329. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/headers.d.ts +0 -12
  330. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/headers.js +0 -28
  331. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/http-status.d.ts +0 -15
  332. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/http-status.js +0 -90
  333. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/index.d.ts +0 -16
  334. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/index.js +0 -81
  335. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/parse-timeout.d.ts +0 -13
  336. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/parse-timeout.js +0 -44
  337. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/query-params.d.ts +0 -8
  338. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/query-params.js +0 -24
  339. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/request-header.d.ts +0 -19
  340. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/request-header.js +0 -70
  341. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/trailer-mux.d.ts +0 -19
  342. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/trailer-mux.js +0 -53
  343. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/transport.d.ts +0 -6
  344. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/transport.js +0 -214
  345. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/validate-response.d.ts +0 -30
  346. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/validate-response.js +0 -72
  347. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/version.d.ts +0 -20
  348. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/version.js +0 -58
  349. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc/content-type.d.ts +0 -16
  350. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc/content-type.js +0 -38
  351. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc/gen/status_pb.d.ts +0 -89
  352. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc/gen/status_pb.js +0 -120
  353. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc/handler-factory.d.ts +0 -6
  354. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc/handler-factory.js +0 -122
  355. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc/headers.d.ts +0 -12
  356. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc/headers.js +0 -28
  357. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc/http-status.d.ts +0 -8
  358. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc/http-status.js +0 -46
  359. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc/index.d.ts +0 -10
  360. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc/index.js +0 -61
  361. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc/parse-timeout.d.ts +0 -13
  362. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc/parse-timeout.js +0 -53
  363. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc/request-header.d.ts +0 -13
  364. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc/request-header.js +0 -56
  365. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc/trailer-status.d.ts +0 -28
  366. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc/trailer-status.js +0 -104
  367. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc/transport.d.ts +0 -6
  368. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc/transport.js +0 -185
  369. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc/validate-response.d.ts +0 -33
  370. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc/validate-response.js +0 -75
  371. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc/validate-trailer.d.ts +0 -13
  372. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc/validate-trailer.js +0 -44
  373. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc-web/content-type.d.ts +0 -19
  374. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc-web/content-type.js +0 -41
  375. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc-web/handler-factory.d.ts +0 -6
  376. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc-web/handler-factory.js +0 -128
  377. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc-web/headers.d.ts +0 -20
  378. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc-web/headers.js +0 -44
  379. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc-web/index.d.ts +0 -8
  380. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc-web/index.js +0 -61
  381. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc-web/request-header.d.ts +0 -13
  382. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc-web/request-header.js +0 -59
  383. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc-web/trailer.d.ts +0 -27
  384. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc-web/trailer.js +0 -71
  385. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc-web/transport.d.ts +0 -6
  386. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc-web/transport.js +0 -238
  387. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc-web/validate-response.d.ts +0 -34
  388. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc-web/validate-response.js +0 -73
  389. package/node_modules/@connectrpc/connect/dist/cjs/router-transport.d.ts +0 -13
  390. package/node_modules/@connectrpc/connect/dist/cjs/router-transport.js +0 -32
  391. package/node_modules/@connectrpc/connect/dist/cjs/router.d.ts +0 -88
  392. package/node_modules/@connectrpc/connect/dist/cjs/router.js +0 -83
  393. package/node_modules/@connectrpc/connect/dist/cjs/transport.d.ts +0 -20
  394. package/node_modules/@connectrpc/connect/dist/cjs/transport.js +0 -15
  395. package/node_modules/@connectrpc/connect/dist/esm/any-client.d.ts +0 -22
  396. package/node_modules/@connectrpc/connect/dist/esm/any-client.js +0 -31
  397. package/node_modules/@connectrpc/connect/dist/esm/call-options.d.ts +0 -34
  398. package/node_modules/@connectrpc/connect/dist/esm/call-options.js +0 -14
  399. package/node_modules/@connectrpc/connect/dist/esm/callback-client.d.ts +0 -31
  400. package/node_modules/@connectrpc/connect/dist/esm/callback-client.js +0 -113
  401. package/node_modules/@connectrpc/connect/dist/esm/code.d.ts +0 -75
  402. package/node_modules/@connectrpc/connect/dist/esm/code.js +0 -89
  403. package/node_modules/@connectrpc/connect/dist/esm/connect-error.d.ts +0 -90
  404. package/node_modules/@connectrpc/connect/dist/esm/connect-error.js +0 -130
  405. package/node_modules/@connectrpc/connect/dist/esm/context-values.d.ts +0 -34
  406. package/node_modules/@connectrpc/connect/dist/esm/context-values.js +0 -37
  407. package/node_modules/@connectrpc/connect/dist/esm/cors.d.ts +0 -45
  408. package/node_modules/@connectrpc/connect/dist/esm/cors.js +0 -79
  409. package/node_modules/@connectrpc/connect/dist/esm/http-headers.d.ts +0 -36
  410. package/node_modules/@connectrpc/connect/dist/esm/http-headers.js +0 -63
  411. package/node_modules/@connectrpc/connect/dist/esm/implementation.d.ts +0 -165
  412. package/node_modules/@connectrpc/connect/dist/esm/implementation.js +0 -75
  413. package/node_modules/@connectrpc/connect/dist/esm/index.d.ts +0 -22
  414. package/node_modules/@connectrpc/connect/dist/esm/index.js +0 -27
  415. package/node_modules/@connectrpc/connect/dist/esm/interceptor.d.ts +0 -155
  416. package/node_modules/@connectrpc/connect/dist/esm/interceptor.js +0 -24
  417. package/node_modules/@connectrpc/connect/dist/esm/method-type.d.ts +0 -43
  418. package/node_modules/@connectrpc/connect/dist/esm/method-type.js +0 -14
  419. package/node_modules/@connectrpc/connect/dist/esm/promise-client.d.ts +0 -49
  420. package/node_modules/@connectrpc/connect/dist/esm/promise-client.js +0 -139
  421. package/node_modules/@connectrpc/connect/dist/esm/protocol/async-iterable.d.ts +0 -527
  422. package/node_modules/@connectrpc/connect/dist/esm/protocol/async-iterable.js +0 -937
  423. package/node_modules/@connectrpc/connect/dist/esm/protocol/compression.d.ts +0 -48
  424. package/node_modules/@connectrpc/connect/dist/esm/protocol/compression.js +0 -71
  425. package/node_modules/@connectrpc/connect/dist/esm/protocol/content-type-matcher.d.ts +0 -16
  426. package/node_modules/@connectrpc/connect/dist/esm/protocol/content-type-matcher.js +0 -40
  427. package/node_modules/@connectrpc/connect/dist/esm/protocol/create-method-url.d.ts +0 -17
  428. package/node_modules/@connectrpc/connect/dist/esm/protocol/create-method-url.js +0 -33
  429. package/node_modules/@connectrpc/connect/dist/esm/protocol/envelope.d.ts +0 -59
  430. package/node_modules/@connectrpc/connect/dist/esm/protocol/envelope.js +0 -145
  431. package/node_modules/@connectrpc/connect/dist/esm/protocol/index.d.ts +0 -24
  432. package/node_modules/@connectrpc/connect/dist/esm/protocol/index.js +0 -32
  433. package/node_modules/@connectrpc/connect/dist/esm/protocol/invoke-implementation.d.ts +0 -21
  434. package/node_modules/@connectrpc/connect/dist/esm/protocol/invoke-implementation.js +0 -246
  435. package/node_modules/@connectrpc/connect/dist/esm/protocol/limit-io.d.ts +0 -24
  436. package/node_modules/@connectrpc/connect/dist/esm/protocol/limit-io.js +0 -75
  437. package/node_modules/@connectrpc/connect/dist/esm/protocol/normalize.d.ts +0 -12
  438. package/node_modules/@connectrpc/connect/dist/esm/protocol/normalize.js +0 -53
  439. package/node_modules/@connectrpc/connect/dist/esm/protocol/protocol-handler-factory.d.ts +0 -18
  440. package/node_modules/@connectrpc/connect/dist/esm/protocol/protocol-handler-factory.js +0 -14
  441. package/node_modules/@connectrpc/connect/dist/esm/protocol/run-call.d.ts +0 -45
  442. package/node_modules/@connectrpc/connect/dist/esm/protocol/run-call.js +0 -115
  443. package/node_modules/@connectrpc/connect/dist/esm/protocol/serialization.d.ts +0 -104
  444. package/node_modules/@connectrpc/connect/dist/esm/protocol/serialization.js +0 -140
  445. package/node_modules/@connectrpc/connect/dist/esm/protocol/signals.d.ts +0 -36
  446. package/node_modules/@connectrpc/connect/dist/esm/protocol/signals.js +0 -95
  447. package/node_modules/@connectrpc/connect/dist/esm/protocol/transport-options.d.ts +0 -98
  448. package/node_modules/@connectrpc/connect/dist/esm/protocol/transport-options.js +0 -14
  449. package/node_modules/@connectrpc/connect/dist/esm/protocol/universal-fetch.d.ts +0 -35
  450. package/node_modules/@connectrpc/connect/dist/esm/protocol/universal-fetch.js +0 -142
  451. package/node_modules/@connectrpc/connect/dist/esm/protocol/universal-handler-client.d.ts +0 -7
  452. package/node_modules/@connectrpc/connect/dist/esm/protocol/universal-handler-client.js +0 -87
  453. package/node_modules/@connectrpc/connect/dist/esm/protocol/universal-handler.d.ts +0 -155
  454. package/node_modules/@connectrpc/connect/dist/esm/protocol/universal-handler.js +0 -125
  455. package/node_modules/@connectrpc/connect/dist/esm/protocol/universal.d.ts +0 -102
  456. package/node_modules/@connectrpc/connect/dist/esm/protocol/universal.js +0 -74
  457. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/code-string.d.ts +0 -16
  458. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/code-string.js +0 -48
  459. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/content-type.d.ts +0 -40
  460. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/content-type.js +0 -66
  461. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/end-stream.d.ts +0 -44
  462. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/end-stream.js +0 -126
  463. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/error-json.d.ts +0 -36
  464. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/error-json.js +0 -157
  465. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/get-request.d.ts +0 -7
  466. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/get-request.js +0 -65
  467. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/handler-factory.d.ts +0 -6
  468. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/handler-factory.js +0 -278
  469. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/headers.d.ts +0 -12
  470. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/headers.js +0 -25
  471. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/http-status.d.ts +0 -15
  472. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/http-status.js +0 -86
  473. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/index.d.ts +0 -16
  474. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/index.js +0 -33
  475. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/parse-timeout.d.ts +0 -13
  476. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/parse-timeout.js +0 -41
  477. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/query-params.d.ts +0 -8
  478. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/query-params.js +0 -21
  479. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/request-header.d.ts +0 -19
  480. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/request-header.js +0 -66
  481. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/trailer-mux.d.ts +0 -19
  482. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/trailer-mux.js +0 -49
  483. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/transport.d.ts +0 -6
  484. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/transport.js +0 -211
  485. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/validate-response.d.ts +0 -30
  486. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/validate-response.js +0 -68
  487. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/version.d.ts +0 -20
  488. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/version.js +0 -53
  489. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc/content-type.d.ts +0 -16
  490. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc/content-type.js +0 -34
  491. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc/gen/status_pb.d.ts +0 -89
  492. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc/gen/status_pb.js +0 -116
  493. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc/handler-factory.d.ts +0 -6
  494. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc/handler-factory.js +0 -119
  495. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc/headers.d.ts +0 -12
  496. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc/headers.js +0 -25
  497. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc/http-status.d.ts +0 -8
  498. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc/http-status.js +0 -43
  499. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc/index.d.ts +0 -10
  500. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc/index.js +0 -28
  501. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc/parse-timeout.d.ts +0 -13
  502. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc/parse-timeout.js +0 -50
  503. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc/request-header.d.ts +0 -13
  504. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc/request-header.js +0 -52
  505. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc/trailer-status.d.ts +0 -28
  506. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc/trailer-status.js +0 -99
  507. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc/transport.d.ts +0 -6
  508. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc/transport.js +0 -182
  509. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc/validate-response.d.ts +0 -33
  510. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc/validate-response.js +0 -71
  511. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc/validate-trailer.d.ts +0 -13
  512. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc/validate-trailer.js +0 -41
  513. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc-web/content-type.d.ts +0 -19
  514. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc-web/content-type.js +0 -37
  515. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc-web/handler-factory.d.ts +0 -6
  516. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc-web/handler-factory.js +0 -125
  517. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc-web/headers.d.ts +0 -20
  518. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc-web/headers.js +0 -33
  519. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc-web/index.d.ts +0 -8
  520. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc-web/index.js +0 -26
  521. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc-web/request-header.d.ts +0 -13
  522. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc-web/request-header.js +0 -55
  523. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc-web/trailer.d.ts +0 -27
  524. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc-web/trailer.js +0 -65
  525. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc-web/transport.d.ts +0 -6
  526. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc-web/transport.js +0 -235
  527. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc-web/validate-response.d.ts +0 -34
  528. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc-web/validate-response.js +0 -69
  529. package/node_modules/@connectrpc/connect/dist/esm/router-transport.d.ts +0 -13
  530. package/node_modules/@connectrpc/connect/dist/esm/router-transport.js +0 -29
  531. package/node_modules/@connectrpc/connect/dist/esm/router.d.ts +0 -88
  532. package/node_modules/@connectrpc/connect/dist/esm/router.js +0 -80
  533. package/node_modules/@connectrpc/connect/dist/esm/transport.d.ts +0 -20
  534. package/node_modules/@connectrpc/connect/dist/esm/transport.js +0 -14
  535. package/node_modules/@connectrpc/connect/package.json +0 -75
  536. package/node_modules/@connectrpc/connect/protocol-connect.js +0 -16
  537. package/node_modules/@connectrpc/connect/protocol-grpc-web.js +0 -16
  538. package/node_modules/@connectrpc/connect/protocol-grpc.js +0 -16
  539. package/node_modules/@connectrpc/connect/protocol.js +0 -16
  540. package/node_modules/@connectrpc/connect-node/README.md +0 -141
  541. package/node_modules/@connectrpc/connect-node/dist/cjs/compression.d.ts +0 -15
  542. package/node_modules/@connectrpc/connect-node/dist/cjs/compression.js +0 -89
  543. package/node_modules/@connectrpc/connect-node/dist/cjs/connect-node-adapter.d.ts +0 -42
  544. package/node_modules/@connectrpc/connect-node/dist/cjs/connect-node-adapter.js +0 -61
  545. package/node_modules/@connectrpc/connect-node/dist/cjs/connect-transport.d.ts +0 -100
  546. package/node_modules/@connectrpc/connect-node/dist/cjs/connect-transport.js +0 -25
  547. package/node_modules/@connectrpc/connect-node/dist/cjs/grpc-transport.d.ts +0 -96
  548. package/node_modules/@connectrpc/connect-node/dist/cjs/grpc-transport.js +0 -25
  549. package/node_modules/@connectrpc/connect-node/dist/cjs/grpc-web-transport.d.ts +0 -96
  550. package/node_modules/@connectrpc/connect-node/dist/cjs/grpc-web-transport.js +0 -25
  551. package/node_modules/@connectrpc/connect-node/dist/cjs/http2-session-manager.d.ts +0 -146
  552. package/node_modules/@connectrpc/connect-node/dist/cjs/http2-session-manager.js +0 -536
  553. package/node_modules/@connectrpc/connect-node/dist/cjs/index.d.ts +0 -15
  554. package/node_modules/@connectrpc/connect-node/dist/cjs/index.js +0 -36
  555. package/node_modules/@connectrpc/connect-node/dist/cjs/node-error.d.ts +0 -45
  556. package/node_modules/@connectrpc/connect-node/dist/cjs/node-error.js +0 -154
  557. package/node_modules/@connectrpc/connect-node/dist/cjs/node-headers-polyfill.d.ts +0 -1
  558. package/node_modules/@connectrpc/connect-node/dist/cjs/node-headers-polyfill.js +0 -29
  559. package/node_modules/@connectrpc/connect-node/dist/cjs/node-transport-options.d.ts +0 -89
  560. package/node_modules/@connectrpc/connect-node/dist/cjs/node-transport-options.js +0 -58
  561. package/node_modules/@connectrpc/connect-node/dist/cjs/node-universal-client.d.ts +0 -54
  562. package/node_modules/@connectrpc/connect-node/dist/cjs/node-universal-client.js +0 -326
  563. package/node_modules/@connectrpc/connect-node/dist/cjs/node-universal-handler.d.ts +0 -41
  564. package/node_modules/@connectrpc/connect-node/dist/cjs/node-universal-handler.js +0 -234
  565. package/node_modules/@connectrpc/connect-node/dist/cjs/node-universal-header.d.ts +0 -19
  566. package/node_modules/@connectrpc/connect-node/dist/cjs/node-universal-header.js +0 -97
  567. package/node_modules/@connectrpc/connect-node/dist/cjs/package.json +0 -1
  568. package/node_modules/@connectrpc/connect-node/dist/esm/compression.d.ts +0 -15
  569. package/node_modules/@connectrpc/connect-node/dist/esm/compression.js +0 -86
  570. package/node_modules/@connectrpc/connect-node/dist/esm/connect-node-adapter.d.ts +0 -42
  571. package/node_modules/@connectrpc/connect-node/dist/esm/connect-node-adapter.js +0 -58
  572. package/node_modules/@connectrpc/connect-node/dist/esm/connect-transport.d.ts +0 -100
  573. package/node_modules/@connectrpc/connect-node/dist/esm/connect-transport.js +0 -22
  574. package/node_modules/@connectrpc/connect-node/dist/esm/grpc-transport.d.ts +0 -96
  575. package/node_modules/@connectrpc/connect-node/dist/esm/grpc-transport.js +0 -22
  576. package/node_modules/@connectrpc/connect-node/dist/esm/grpc-web-transport.d.ts +0 -96
  577. package/node_modules/@connectrpc/connect-node/dist/esm/grpc-web-transport.js +0 -22
  578. package/node_modules/@connectrpc/connect-node/dist/esm/http2-session-manager.d.ts +0 -146
  579. package/node_modules/@connectrpc/connect-node/dist/esm/http2-session-manager.js +0 -532
  580. package/node_modules/@connectrpc/connect-node/dist/esm/index.d.ts +0 -15
  581. package/node_modules/@connectrpc/connect-node/dist/esm/index.js +0 -23
  582. package/node_modules/@connectrpc/connect-node/dist/esm/node-error.d.ts +0 -45
  583. package/node_modules/@connectrpc/connect-node/dist/esm/node-error.js +0 -147
  584. package/node_modules/@connectrpc/connect-node/dist/esm/node-headers-polyfill.d.ts +0 -1
  585. package/node_modules/@connectrpc/connect-node/dist/esm/node-headers-polyfill.js +0 -27
  586. package/node_modules/@connectrpc/connect-node/dist/esm/node-transport-options.d.ts +0 -89
  587. package/node_modules/@connectrpc/connect-node/dist/esm/node-transport-options.js +0 -58
  588. package/node_modules/@connectrpc/connect-node/dist/esm/node-universal-client.d.ts +0 -54
  589. package/node_modules/@connectrpc/connect-node/dist/esm/node-universal-client.js +0 -324
  590. package/node_modules/@connectrpc/connect-node/dist/esm/node-universal-handler.d.ts +0 -41
  591. package/node_modules/@connectrpc/connect-node/dist/esm/node-universal-handler.js +0 -230
  592. package/node_modules/@connectrpc/connect-node/dist/esm/node-universal-header.d.ts +0 -19
  593. package/node_modules/@connectrpc/connect-node/dist/esm/node-universal-header.js +0 -93
  594. package/node_modules/@connectrpc/connect-node/package.json +0 -46
  595. package/node_modules/@cursor/sdk/LICENSE.md +0 -3
  596. package/node_modules/@cursor/sdk/README.md +0 -5
  597. package/node_modules/@cursor/sdk/dist/cjs/642.index.js +0 -1
  598. package/node_modules/@cursor/sdk/dist/cjs/agent.d.ts +0 -169
  599. package/node_modules/@cursor/sdk/dist/cjs/agent.d.ts.map +0 -1
  600. package/node_modules/@cursor/sdk/dist/cjs/analytics.d.ts +0 -72
  601. package/node_modules/@cursor/sdk/dist/cjs/analytics.d.ts.map +0 -1
  602. package/node_modules/@cursor/sdk/dist/cjs/artifacts.d.ts +0 -6
  603. package/node_modules/@cursor/sdk/dist/cjs/artifacts.d.ts.map +0 -1
  604. package/node_modules/@cursor/sdk/dist/cjs/cloud-agent.d.ts +0 -22
  605. package/node_modules/@cursor/sdk/dist/cjs/cloud-agent.d.ts.map +0 -1
  606. package/node_modules/@cursor/sdk/dist/cjs/cloud-api-client.d.ts +0 -192
  607. package/node_modules/@cursor/sdk/dist/cjs/cloud-api-client.d.ts.map +0 -1
  608. package/node_modules/@cursor/sdk/dist/cjs/cloud-executor.d.ts +0 -14
  609. package/node_modules/@cursor/sdk/dist/cjs/cloud-executor.d.ts.map +0 -1
  610. package/node_modules/@cursor/sdk/dist/cjs/cloud-mcp-utils.d.ts +0 -4
  611. package/node_modules/@cursor/sdk/dist/cjs/cloud-mcp-utils.d.ts.map +0 -1
  612. package/node_modules/@cursor/sdk/dist/cjs/core-adapter.d.ts +0 -2
  613. package/node_modules/@cursor/sdk/dist/cjs/core-adapter.d.ts.map +0 -1
  614. package/node_modules/@cursor/sdk/dist/cjs/errors.d.ts +0 -125
  615. package/node_modules/@cursor/sdk/dist/cjs/errors.d.ts.map +0 -1
  616. package/node_modules/@cursor/sdk/dist/cjs/executor-common.d.ts +0 -16
  617. package/node_modules/@cursor/sdk/dist/cjs/executor-common.d.ts.map +0 -1
  618. package/node_modules/@cursor/sdk/dist/cjs/executor-types.d.ts +0 -59
  619. package/node_modules/@cursor/sdk/dist/cjs/executor-types.d.ts.map +0 -1
  620. package/node_modules/@cursor/sdk/dist/cjs/index.d.ts +0 -18
  621. package/node_modules/@cursor/sdk/dist/cjs/index.d.ts.map +0 -1
  622. package/node_modules/@cursor/sdk/dist/cjs/index.js +0 -8
  623. package/node_modules/@cursor/sdk/dist/cjs/index.js.LICENSE.txt +0 -285
  624. package/node_modules/@cursor/sdk/dist/cjs/local-executor.d.ts +0 -18
  625. package/node_modules/@cursor/sdk/dist/cjs/local-executor.d.ts.map +0 -1
  626. package/node_modules/@cursor/sdk/dist/cjs/local-model-validation.d.ts +0 -6
  627. package/node_modules/@cursor/sdk/dist/cjs/local-model-validation.d.ts.map +0 -1
  628. package/node_modules/@cursor/sdk/dist/cjs/messages.d.ts +0 -110
  629. package/node_modules/@cursor/sdk/dist/cjs/messages.d.ts.map +0 -1
  630. package/node_modules/@cursor/sdk/dist/cjs/options.d.ts +0 -143
  631. package/node_modules/@cursor/sdk/dist/cjs/options.d.ts.map +0 -1
  632. package/node_modules/@cursor/sdk/dist/cjs/package.json +0 -3
  633. package/node_modules/@cursor/sdk/dist/cjs/platform.d.ts +0 -45
  634. package/node_modules/@cursor/sdk/dist/cjs/platform.d.ts.map +0 -1
  635. package/node_modules/@cursor/sdk/dist/cjs/public-api.d.ts +0 -12
  636. package/node_modules/@cursor/sdk/dist/cjs/public-api.d.ts.map +0 -1
  637. package/node_modules/@cursor/sdk/dist/cjs/run-event-tailer.d.ts +0 -33
  638. package/node_modules/@cursor/sdk/dist/cjs/run-event-tailer.d.ts.map +0 -1
  639. package/node_modules/@cursor/sdk/dist/cjs/run-interaction-accumulator.d.ts +0 -33
  640. package/node_modules/@cursor/sdk/dist/cjs/run-interaction-accumulator.d.ts.map +0 -1
  641. package/node_modules/@cursor/sdk/dist/cjs/run.d.ts +0 -44
  642. package/node_modules/@cursor/sdk/dist/cjs/run.d.ts.map +0 -1
  643. package/node_modules/@cursor/sdk/dist/cjs/sdk-statsig.d.ts +0 -10
  644. package/node_modules/@cursor/sdk/dist/cjs/sdk-statsig.d.ts.map +0 -1
  645. package/node_modules/@cursor/sdk/dist/cjs/stubs.d.ts +0 -97
  646. package/node_modules/@cursor/sdk/dist/cjs/stubs.d.ts.map +0 -1
  647. package/node_modules/@cursor/sdk/dist/cjs/subagent-conversion.d.ts +0 -20
  648. package/node_modules/@cursor/sdk/dist/cjs/subagent-conversion.d.ts.map +0 -1
  649. package/node_modules/@cursor/sdk/dist/cjs/tool-call-utils.d.ts +0 -7
  650. package/node_modules/@cursor/sdk/dist/cjs/tool-call-utils.d.ts.map +0 -1
  651. package/node_modules/@cursor/sdk/dist/cjs/types/conversation-types.d.ts +0 -12062
  652. package/node_modules/@cursor/sdk/dist/cjs/types/conversation-types.d.ts.map +0 -1
  653. package/node_modules/@cursor/sdk/dist/cjs/types/delta-types.d.ts +0 -2
  654. package/node_modules/@cursor/sdk/dist/cjs/types/delta-types.d.ts.map +0 -1
  655. package/node_modules/@cursor/sdk/dist/cjs/types/tool-call-types.d.ts +0 -2
  656. package/node_modules/@cursor/sdk/dist/cjs/types/tool-call-types.d.ts.map +0 -1
  657. package/node_modules/@cursor/sdk/dist/cjs/utils/conversation-utils.d.ts +0 -3
  658. package/node_modules/@cursor/sdk/dist/cjs/utils/conversation-utils.d.ts.map +0 -1
  659. package/node_modules/@cursor/sdk/dist/cjs/utils/logger.d.ts +0 -12
  660. package/node_modules/@cursor/sdk/dist/cjs/utils/logger.d.ts.map +0 -1
  661. package/node_modules/@cursor/sdk/dist/cjs/utils/message-schemas.d.ts +0 -2
  662. package/node_modules/@cursor/sdk/dist/cjs/utils/message-schemas.d.ts.map +0 -1
  663. package/node_modules/@cursor/sdk/dist/esm/642.index.js +0 -1
  664. package/node_modules/@cursor/sdk/dist/esm/agent.d.ts +0 -169
  665. package/node_modules/@cursor/sdk/dist/esm/agent.d.ts.map +0 -1
  666. package/node_modules/@cursor/sdk/dist/esm/analytics.d.ts +0 -72
  667. package/node_modules/@cursor/sdk/dist/esm/analytics.d.ts.map +0 -1
  668. package/node_modules/@cursor/sdk/dist/esm/artifacts.d.ts +0 -6
  669. package/node_modules/@cursor/sdk/dist/esm/artifacts.d.ts.map +0 -1
  670. package/node_modules/@cursor/sdk/dist/esm/cloud-agent.d.ts +0 -22
  671. package/node_modules/@cursor/sdk/dist/esm/cloud-agent.d.ts.map +0 -1
  672. package/node_modules/@cursor/sdk/dist/esm/cloud-api-client.d.ts +0 -192
  673. package/node_modules/@cursor/sdk/dist/esm/cloud-api-client.d.ts.map +0 -1
  674. package/node_modules/@cursor/sdk/dist/esm/cloud-executor.d.ts +0 -14
  675. package/node_modules/@cursor/sdk/dist/esm/cloud-executor.d.ts.map +0 -1
  676. package/node_modules/@cursor/sdk/dist/esm/cloud-mcp-utils.d.ts +0 -4
  677. package/node_modules/@cursor/sdk/dist/esm/cloud-mcp-utils.d.ts.map +0 -1
  678. package/node_modules/@cursor/sdk/dist/esm/core-adapter.d.ts +0 -2
  679. package/node_modules/@cursor/sdk/dist/esm/core-adapter.d.ts.map +0 -1
  680. package/node_modules/@cursor/sdk/dist/esm/errors.d.ts +0 -125
  681. package/node_modules/@cursor/sdk/dist/esm/errors.d.ts.map +0 -1
  682. package/node_modules/@cursor/sdk/dist/esm/executor-common.d.ts +0 -16
  683. package/node_modules/@cursor/sdk/dist/esm/executor-common.d.ts.map +0 -1
  684. package/node_modules/@cursor/sdk/dist/esm/executor-types.d.ts +0 -59
  685. package/node_modules/@cursor/sdk/dist/esm/executor-types.d.ts.map +0 -1
  686. package/node_modules/@cursor/sdk/dist/esm/index.d.ts +0 -18
  687. package/node_modules/@cursor/sdk/dist/esm/index.d.ts.map +0 -1
  688. package/node_modules/@cursor/sdk/dist/esm/index.js +0 -8
  689. package/node_modules/@cursor/sdk/dist/esm/index.js.LICENSE.txt +0 -285
  690. package/node_modules/@cursor/sdk/dist/esm/local-executor.d.ts +0 -18
  691. package/node_modules/@cursor/sdk/dist/esm/local-executor.d.ts.map +0 -1
  692. package/node_modules/@cursor/sdk/dist/esm/local-model-validation.d.ts +0 -6
  693. package/node_modules/@cursor/sdk/dist/esm/local-model-validation.d.ts.map +0 -1
  694. package/node_modules/@cursor/sdk/dist/esm/messages.d.ts +0 -110
  695. package/node_modules/@cursor/sdk/dist/esm/messages.d.ts.map +0 -1
  696. package/node_modules/@cursor/sdk/dist/esm/options.d.ts +0 -143
  697. package/node_modules/@cursor/sdk/dist/esm/options.d.ts.map +0 -1
  698. package/node_modules/@cursor/sdk/dist/esm/platform.d.ts +0 -45
  699. package/node_modules/@cursor/sdk/dist/esm/platform.d.ts.map +0 -1
  700. package/node_modules/@cursor/sdk/dist/esm/public-api.d.ts +0 -12
  701. package/node_modules/@cursor/sdk/dist/esm/public-api.d.ts.map +0 -1
  702. package/node_modules/@cursor/sdk/dist/esm/run-event-tailer.d.ts +0 -33
  703. package/node_modules/@cursor/sdk/dist/esm/run-event-tailer.d.ts.map +0 -1
  704. package/node_modules/@cursor/sdk/dist/esm/run-interaction-accumulator.d.ts +0 -33
  705. package/node_modules/@cursor/sdk/dist/esm/run-interaction-accumulator.d.ts.map +0 -1
  706. package/node_modules/@cursor/sdk/dist/esm/run.d.ts +0 -44
  707. package/node_modules/@cursor/sdk/dist/esm/run.d.ts.map +0 -1
  708. package/node_modules/@cursor/sdk/dist/esm/sdk-statsig.d.ts +0 -10
  709. package/node_modules/@cursor/sdk/dist/esm/sdk-statsig.d.ts.map +0 -1
  710. package/node_modules/@cursor/sdk/dist/esm/stubs.d.ts +0 -97
  711. package/node_modules/@cursor/sdk/dist/esm/stubs.d.ts.map +0 -1
  712. package/node_modules/@cursor/sdk/dist/esm/subagent-conversion.d.ts +0 -20
  713. package/node_modules/@cursor/sdk/dist/esm/subagent-conversion.d.ts.map +0 -1
  714. package/node_modules/@cursor/sdk/dist/esm/tool-call-utils.d.ts +0 -7
  715. package/node_modules/@cursor/sdk/dist/esm/tool-call-utils.d.ts.map +0 -1
  716. package/node_modules/@cursor/sdk/dist/esm/types/conversation-types.d.ts +0 -12062
  717. package/node_modules/@cursor/sdk/dist/esm/types/conversation-types.d.ts.map +0 -1
  718. package/node_modules/@cursor/sdk/dist/esm/types/delta-types.d.ts +0 -2
  719. package/node_modules/@cursor/sdk/dist/esm/types/delta-types.d.ts.map +0 -1
  720. package/node_modules/@cursor/sdk/dist/esm/types/tool-call-types.d.ts +0 -2
  721. package/node_modules/@cursor/sdk/dist/esm/types/tool-call-types.d.ts.map +0 -1
  722. package/node_modules/@cursor/sdk/dist/esm/utils/conversation-utils.d.ts +0 -3
  723. package/node_modules/@cursor/sdk/dist/esm/utils/conversation-utils.d.ts.map +0 -1
  724. package/node_modules/@cursor/sdk/dist/esm/utils/logger.d.ts +0 -12
  725. package/node_modules/@cursor/sdk/dist/esm/utils/logger.d.ts.map +0 -1
  726. package/node_modules/@cursor/sdk/dist/esm/utils/message-schemas.d.ts +0 -2
  727. package/node_modules/@cursor/sdk/dist/esm/utils/message-schemas.d.ts.map +0 -1
  728. package/node_modules/@cursor/sdk/package.json +0 -114
  729. package/node_modules/@cursor/sdk-darwin-arm64/README.md +0 -5
  730. package/node_modules/@cursor/sdk-darwin-arm64/bin/cursorsandbox +0 -0
  731. package/node_modules/@cursor/sdk-darwin-arm64/bin/rg +0 -0
  732. package/node_modules/@cursor/sdk-darwin-arm64/package.json +0 -25
  733. package/node_modules/@isaacs/fs-minipass/LICENSE +0 -15
  734. package/node_modules/@isaacs/fs-minipass/README.md +0 -71
  735. package/node_modules/@isaacs/fs-minipass/dist/commonjs/index.d.ts +0 -118
  736. package/node_modules/@isaacs/fs-minipass/dist/commonjs/index.d.ts.map +0 -1
  737. package/node_modules/@isaacs/fs-minipass/dist/commonjs/index.js +0 -430
  738. package/node_modules/@isaacs/fs-minipass/dist/commonjs/index.js.map +0 -1
  739. package/node_modules/@isaacs/fs-minipass/dist/commonjs/package.json +0 -3
  740. package/node_modules/@isaacs/fs-minipass/dist/esm/index.d.ts +0 -118
  741. package/node_modules/@isaacs/fs-minipass/dist/esm/index.d.ts.map +0 -1
  742. package/node_modules/@isaacs/fs-minipass/dist/esm/index.js +0 -420
  743. package/node_modules/@isaacs/fs-minipass/dist/esm/index.js.map +0 -1
  744. package/node_modules/@isaacs/fs-minipass/dist/esm/package.json +0 -3
  745. package/node_modules/@isaacs/fs-minipass/package.json +0 -72
  746. package/node_modules/@statsig/client-core/package.json +0 -15
  747. package/node_modules/@statsig/client-core/src/$_StatsigGlobal.d.ts +0 -19
  748. package/node_modules/@statsig/client-core/src/$_StatsigGlobal.js +0 -41
  749. package/node_modules/@statsig/client-core/src/CacheKey.d.ts +0 -4
  750. package/node_modules/@statsig/client-core/src/CacheKey.js +0 -28
  751. package/node_modules/@statsig/client-core/src/ClientInterfaces.d.ts +0 -62
  752. package/node_modules/@statsig/client-core/src/ClientInterfaces.js +0 -2
  753. package/node_modules/@statsig/client-core/src/DataAdapterCore.d.ts +0 -29
  754. package/node_modules/@statsig/client-core/src/DataAdapterCore.js +0 -216
  755. package/node_modules/@statsig/client-core/src/Diagnostics.d.ts +0 -67
  756. package/node_modules/@statsig/client-core/src/Diagnostics.js +0 -100
  757. package/node_modules/@statsig/client-core/src/DnsTxtQuery.d.ts +0 -2
  758. package/node_modules/@statsig/client-core/src/DnsTxtQuery.js +0 -63
  759. package/node_modules/@statsig/client-core/src/DownloadConfigSpecsResponse.d.ts +0 -61
  760. package/node_modules/@statsig/client-core/src/DownloadConfigSpecsResponse.js +0 -2
  761. package/node_modules/@statsig/client-core/src/ErrorBoundary.d.ts +0 -17
  762. package/node_modules/@statsig/client-core/src/ErrorBoundary.js +0 -197
  763. package/node_modules/@statsig/client-core/src/EvaluationOptions.d.ts +0 -30
  764. package/node_modules/@statsig/client-core/src/EvaluationOptions.js +0 -2
  765. package/node_modules/@statsig/client-core/src/EvaluationTypes.d.ts +0 -49
  766. package/node_modules/@statsig/client-core/src/EvaluationTypes.js +0 -2
  767. package/node_modules/@statsig/client-core/src/EvaluationTypesV2.d.ts +0 -30
  768. package/node_modules/@statsig/client-core/src/EvaluationTypesV2.js +0 -2
  769. package/node_modules/@statsig/client-core/src/EventBatch.d.ts +0 -8
  770. package/node_modules/@statsig/client-core/src/EventBatch.js +0 -14
  771. package/node_modules/@statsig/client-core/src/EventLogger.d.ts +0 -48
  772. package/node_modules/@statsig/client-core/src/EventLogger.js +0 -349
  773. package/node_modules/@statsig/client-core/src/EventRetryConstants.d.ts +0 -7
  774. package/node_modules/@statsig/client-core/src/EventRetryConstants.js +0 -12
  775. package/node_modules/@statsig/client-core/src/Hashing.d.ts +0 -3
  776. package/node_modules/@statsig/client-core/src/Hashing.js +0 -35
  777. package/node_modules/@statsig/client-core/src/InitializeResponse.d.ts +0 -66
  778. package/node_modules/@statsig/client-core/src/InitializeResponse.js +0 -2
  779. package/node_modules/@statsig/client-core/src/Log.d.ts +0 -15
  780. package/node_modules/@statsig/client-core/src/Log.js +0 -44
  781. package/node_modules/@statsig/client-core/src/MemoKey.d.ts +0 -11
  782. package/node_modules/@statsig/client-core/src/MemoKey.js +0 -37
  783. package/node_modules/@statsig/client-core/src/NetworkConfig.d.ts +0 -26
  784. package/node_modules/@statsig/client-core/src/NetworkConfig.js +0 -23
  785. package/node_modules/@statsig/client-core/src/NetworkCore.d.ts +0 -55
  786. package/node_modules/@statsig/client-core/src/NetworkCore.js +0 -371
  787. package/node_modules/@statsig/client-core/src/NetworkFallbackResolver.d.ts +0 -21
  788. package/node_modules/@statsig/client-core/src/NetworkFallbackResolver.js +0 -198
  789. package/node_modules/@statsig/client-core/src/OverrideAdapter.d.ts +0 -16
  790. package/node_modules/@statsig/client-core/src/OverrideAdapter.js +0 -2
  791. package/node_modules/@statsig/client-core/src/ParamStoreTypes.d.ts +0 -65
  792. package/node_modules/@statsig/client-core/src/ParamStoreTypes.js +0 -2
  793. package/node_modules/@statsig/client-core/src/SDKFlags.d.ts +0 -4
  794. package/node_modules/@statsig/client-core/src/SDKFlags.js +0 -13
  795. package/node_modules/@statsig/client-core/src/SDKType.d.ts +0 -8
  796. package/node_modules/@statsig/client-core/src/SDKType.js +0 -19
  797. package/node_modules/@statsig/client-core/src/SafeJs.d.ts +0 -8
  798. package/node_modules/@statsig/client-core/src/SafeJs.js +0 -68
  799. package/node_modules/@statsig/client-core/src/SessionID.d.ts +0 -20
  800. package/node_modules/@statsig/client-core/src/SessionID.js +0 -106
  801. package/node_modules/@statsig/client-core/src/SizeOf.d.ts +0 -1
  802. package/node_modules/@statsig/client-core/src/SizeOf.js +0 -26
  803. package/node_modules/@statsig/client-core/src/StableID.d.ts +0 -9
  804. package/node_modules/@statsig/client-core/src/StableID.js +0 -90
  805. package/node_modules/@statsig/client-core/src/StatsigClientBase.d.ts +0 -74
  806. package/node_modules/@statsig/client-core/src/StatsigClientBase.js +0 -207
  807. package/node_modules/@statsig/client-core/src/StatsigClientEventEmitter.d.ts +0 -100
  808. package/node_modules/@statsig/client-core/src/StatsigClientEventEmitter.js +0 -6
  809. package/node_modules/@statsig/client-core/src/StatsigDataAdapter.d.ts +0 -131
  810. package/node_modules/@statsig/client-core/src/StatsigDataAdapter.js +0 -4
  811. package/node_modules/@statsig/client-core/src/StatsigEvent.d.ts +0 -28
  812. package/node_modules/@statsig/client-core/src/StatsigEvent.js +0 -98
  813. package/node_modules/@statsig/client-core/src/StatsigMetadata.d.ts +0 -18
  814. package/node_modules/@statsig/client-core/src/StatsigMetadata.js +0 -14
  815. package/node_modules/@statsig/client-core/src/StatsigOptionsCommon.d.ts +0 -180
  816. package/node_modules/@statsig/client-core/src/StatsigOptionsCommon.js +0 -16
  817. package/node_modules/@statsig/client-core/src/StatsigPlugin.d.ts +0 -5
  818. package/node_modules/@statsig/client-core/src/StatsigPlugin.js +0 -2
  819. package/node_modules/@statsig/client-core/src/StatsigTypeFactories.d.ts +0 -8
  820. package/node_modules/@statsig/client-core/src/StatsigTypeFactories.js +0 -57
  821. package/node_modules/@statsig/client-core/src/StatsigTypes.d.ts +0 -43
  822. package/node_modules/@statsig/client-core/src/StatsigTypes.js +0 -2
  823. package/node_modules/@statsig/client-core/src/StatsigUpdateDetails.d.ts +0 -14
  824. package/node_modules/@statsig/client-core/src/StatsigUpdateDetails.js +0 -17
  825. package/node_modules/@statsig/client-core/src/StatsigUser.d.ts +0 -24
  826. package/node_modules/@statsig/client-core/src/StatsigUser.js +0 -25
  827. package/node_modules/@statsig/client-core/src/StorageProvider.d.ts +0 -17
  828. package/node_modules/@statsig/client-core/src/StorageProvider.js +0 -90
  829. package/node_modules/@statsig/client-core/src/TypedJsonParse.d.ts +0 -8
  830. package/node_modules/@statsig/client-core/src/TypedJsonParse.js +0 -27
  831. package/node_modules/@statsig/client-core/src/TypingUtils.d.ts +0 -7
  832. package/node_modules/@statsig/client-core/src/TypingUtils.js +0 -12
  833. package/node_modules/@statsig/client-core/src/UUID.d.ts +0 -1
  834. package/node_modules/@statsig/client-core/src/UUID.js +0 -28
  835. package/node_modules/@statsig/client-core/src/UrlConfiguration.d.ts +0 -12
  836. package/node_modules/@statsig/client-core/src/UrlConfiguration.js +0 -41
  837. package/node_modules/@statsig/client-core/src/VisibilityObserving.d.ts +0 -9
  838. package/node_modules/@statsig/client-core/src/VisibilityObserving.js +0 -39
  839. package/node_modules/@statsig/client-core/src/__tests__/MockOverrideAdapter.d.ts +0 -16
  840. package/node_modules/@statsig/client-core/src/__tests__/MockOverrideAdapter.js +0 -21
  841. package/node_modules/@statsig/client-core/src/index.d.ts +0 -47
  842. package/node_modules/@statsig/client-core/src/index.js +0 -70
  843. package/node_modules/@statsig/js-client/LICENSE +0 -14
  844. package/node_modules/@statsig/js-client/README.md +0 -49
  845. package/node_modules/@statsig/js-client/build/statsig-js-client+session-replay+web-analytics.min.js +0 -2
  846. package/node_modules/@statsig/js-client/build/statsig-js-client+session-replay.min.js +0 -1
  847. package/node_modules/@statsig/js-client/build/statsig-js-client+web-analytics.min.js +0 -2
  848. package/node_modules/@statsig/js-client/build/statsig-js-client.min.js +0 -1
  849. package/node_modules/@statsig/js-client/package.json +0 -18
  850. package/node_modules/@statsig/js-client/src/EvaluationResponseDeltas.d.ts +0 -10
  851. package/node_modules/@statsig/js-client/src/EvaluationResponseDeltas.js +0 -49
  852. package/node_modules/@statsig/js-client/src/EvaluationStore.d.ts +0 -29
  853. package/node_modules/@statsig/js-client/src/EvaluationStore.js +0 -175
  854. package/node_modules/@statsig/js-client/src/InitializeContainer.d.ts +0 -9
  855. package/node_modules/@statsig/js-client/src/InitializeContainer.js +0 -2
  856. package/node_modules/@statsig/js-client/src/Network.d.ts +0 -9
  857. package/node_modules/@statsig/js-client/src/Network.js +0 -74
  858. package/node_modules/@statsig/js-client/src/ParamStoreGetterFactory.d.ts +0 -3
  859. package/node_modules/@statsig/js-client/src/ParamStoreGetterFactory.js +0 -74
  860. package/node_modules/@statsig/js-client/src/StatsigClient.d.ts +0 -244
  861. package/node_modules/@statsig/js-client/src/StatsigClient.js +0 -418
  862. package/node_modules/@statsig/js-client/src/StatsigEvaluationsDataAdapter.d.ts +0 -15
  863. package/node_modules/@statsig/js-client/src/StatsigEvaluationsDataAdapter.js +0 -65
  864. package/node_modules/@statsig/js-client/src/StatsigOptions.d.ts +0 -42
  865. package/node_modules/@statsig/js-client/src/StatsigOptions.js +0 -2
  866. package/node_modules/@statsig/js-client/src/V1InitializeContainer.d.ts +0 -13
  867. package/node_modules/@statsig/js-client/src/V1InitializeContainer.js +0 -35
  868. package/node_modules/@statsig/js-client/src/V2InitializeContainer.d.ts +0 -13
  869. package/node_modules/@statsig/js-client/src/V2InitializeContainer.js +0 -82
  870. package/node_modules/@statsig/js-client/src/index.d.ts +0 -9
  871. package/node_modules/@statsig/js-client/src/index.js +0 -25
  872. package/node_modules/abbrev/LICENSE +0 -46
  873. package/node_modules/abbrev/README.md +0 -23
  874. package/node_modules/abbrev/lib/index.js +0 -53
  875. package/node_modules/abbrev/package.json +0 -41
  876. package/node_modules/base64-js/LICENSE +0 -21
  877. package/node_modules/base64-js/README.md +0 -34
  878. package/node_modules/base64-js/base64js.min.js +0 -1
  879. package/node_modules/base64-js/index.d.ts +0 -3
  880. package/node_modules/base64-js/index.js +0 -150
  881. package/node_modules/base64-js/package.json +0 -47
  882. package/node_modules/bindings/LICENSE.md +0 -22
  883. package/node_modules/bindings/README.md +0 -98
  884. package/node_modules/bindings/bindings.js +0 -221
  885. package/node_modules/bindings/package.json +0 -28
  886. package/node_modules/bl/.travis.yml +0 -17
  887. package/node_modules/bl/BufferList.js +0 -396
  888. package/node_modules/bl/LICENSE.md +0 -13
  889. package/node_modules/bl/README.md +0 -247
  890. package/node_modules/bl/bl.js +0 -84
  891. package/node_modules/bl/package.json +0 -37
  892. package/node_modules/bl/test/convert.js +0 -21
  893. package/node_modules/bl/test/indexOf.js +0 -492
  894. package/node_modules/bl/test/isBufferList.js +0 -32
  895. package/node_modules/bl/test/test.js +0 -869
  896. package/node_modules/buffer/AUTHORS.md +0 -70
  897. package/node_modules/buffer/LICENSE +0 -21
  898. package/node_modules/buffer/README.md +0 -410
  899. package/node_modules/buffer/index.d.ts +0 -186
  900. package/node_modules/buffer/index.js +0 -1817
  901. package/node_modules/buffer/package.json +0 -96
  902. package/node_modules/chownr/LICENSE.md +0 -63
  903. package/node_modules/chownr/README.md +0 -3
  904. package/node_modules/chownr/dist/commonjs/index.d.ts +0 -3
  905. package/node_modules/chownr/dist/commonjs/index.d.ts.map +0 -1
  906. package/node_modules/chownr/dist/commonjs/index.js +0 -93
  907. package/node_modules/chownr/dist/commonjs/index.js.map +0 -1
  908. package/node_modules/chownr/dist/commonjs/package.json +0 -3
  909. package/node_modules/chownr/dist/esm/index.d.ts +0 -3
  910. package/node_modules/chownr/dist/esm/index.d.ts.map +0 -1
  911. package/node_modules/chownr/dist/esm/index.js +0 -85
  912. package/node_modules/chownr/dist/esm/index.js.map +0 -1
  913. package/node_modules/chownr/dist/esm/package.json +0 -3
  914. package/node_modules/chownr/package.json +0 -69
  915. package/node_modules/decompress-response/index.d.ts +0 -22
  916. package/node_modules/decompress-response/index.js +0 -58
  917. package/node_modules/decompress-response/license +0 -9
  918. package/node_modules/decompress-response/package.json +0 -56
  919. package/node_modules/decompress-response/readme.md +0 -48
  920. package/node_modules/deep-extend/CHANGELOG.md +0 -46
  921. package/node_modules/deep-extend/LICENSE +0 -20
  922. package/node_modules/deep-extend/README.md +0 -91
  923. package/node_modules/deep-extend/index.js +0 -1
  924. package/node_modules/deep-extend/lib/deep-extend.js +0 -150
  925. package/node_modules/deep-extend/package.json +0 -62
  926. package/node_modules/detect-libc/LICENSE +0 -201
  927. package/node_modules/detect-libc/README.md +0 -163
  928. package/node_modules/detect-libc/index.d.ts +0 -14
  929. package/node_modules/detect-libc/lib/detect-libc.js +0 -313
  930. package/node_modules/detect-libc/lib/elf.js +0 -39
  931. package/node_modules/detect-libc/lib/filesystem.js +0 -51
  932. package/node_modules/detect-libc/lib/process.js +0 -24
  933. package/node_modules/detect-libc/package.json +0 -44
  934. package/node_modules/end-of-stream/LICENSE +0 -21
  935. package/node_modules/end-of-stream/README.md +0 -54
  936. package/node_modules/end-of-stream/index.js +0 -96
  937. package/node_modules/end-of-stream/package.json +0 -37
  938. package/node_modules/env-paths/index.d.ts +0 -101
  939. package/node_modules/env-paths/index.js +0 -74
  940. package/node_modules/env-paths/license +0 -9
  941. package/node_modules/env-paths/package.json +0 -45
  942. package/node_modules/env-paths/readme.md +0 -115
  943. package/node_modules/expand-template/.travis.yml +0 -6
  944. package/node_modules/expand-template/LICENSE +0 -21
  945. package/node_modules/expand-template/README.md +0 -43
  946. package/node_modules/expand-template/index.js +0 -26
  947. package/node_modules/expand-template/package.json +0 -29
  948. package/node_modules/expand-template/test.js +0 -67
  949. package/node_modules/exponential-backoff/LICENSE +0 -202
  950. package/node_modules/exponential-backoff/README.md +0 -89
  951. package/node_modules/exponential-backoff/dist/backoff.d.ts +0 -9
  952. package/node_modules/exponential-backoff/dist/backoff.js +0 -124
  953. package/node_modules/exponential-backoff/dist/backoff.js.map +0 -1
  954. package/node_modules/exponential-backoff/dist/delay/always/always.delay.d.ts +0 -3
  955. package/node_modules/exponential-backoff/dist/delay/always/always.delay.js +0 -25
  956. package/node_modules/exponential-backoff/dist/delay/always/always.delay.js.map +0 -1
  957. package/node_modules/exponential-backoff/dist/delay/delay.base.d.ts +0 -12
  958. package/node_modules/exponential-backoff/dist/delay/delay.base.js +0 -45
  959. package/node_modules/exponential-backoff/dist/delay/delay.base.js.map +0 -1
  960. package/node_modules/exponential-backoff/dist/delay/delay.factory.d.ts +0 -3
  961. package/node_modules/exponential-backoff/dist/delay/delay.factory.js +0 -17
  962. package/node_modules/exponential-backoff/dist/delay/delay.factory.js.map +0 -1
  963. package/node_modules/exponential-backoff/dist/delay/delay.interface.d.ts +0 -4
  964. package/node_modules/exponential-backoff/dist/delay/delay.interface.js +0 -3
  965. package/node_modules/exponential-backoff/dist/delay/delay.interface.js.map +0 -1
  966. package/node_modules/exponential-backoff/dist/delay/skip-first/skip-first.delay.d.ts +0 -6
  967. package/node_modules/exponential-backoff/dist/delay/skip-first/skip-first.delay.js +0 -82
  968. package/node_modules/exponential-backoff/dist/delay/skip-first/skip-first.delay.js.map +0 -1
  969. package/node_modules/exponential-backoff/dist/jitter/full/full.jitter.d.ts +0 -1
  970. package/node_modules/exponential-backoff/dist/jitter/full/full.jitter.js +0 -8
  971. package/node_modules/exponential-backoff/dist/jitter/full/full.jitter.js.map +0 -1
  972. package/node_modules/exponential-backoff/dist/jitter/jitter.factory.d.ts +0 -3
  973. package/node_modules/exponential-backoff/dist/jitter/jitter.factory.js +0 -15
  974. package/node_modules/exponential-backoff/dist/jitter/jitter.factory.js.map +0 -1
  975. package/node_modules/exponential-backoff/dist/jitter/no/no.jitter.d.ts +0 -1
  976. package/node_modules/exponential-backoff/dist/jitter/no/no.jitter.js +0 -7
  977. package/node_modules/exponential-backoff/dist/jitter/no/no.jitter.js.map +0 -1
  978. package/node_modules/exponential-backoff/dist/options.d.ts +0 -55
  979. package/node_modules/exponential-backoff/dist/options.js +0 -31
  980. package/node_modules/exponential-backoff/dist/options.js.map +0 -1
  981. package/node_modules/exponential-backoff/package.json +0 -62
  982. package/node_modules/exponential-backoff/src/backoff.spec.ts +0 -194
  983. package/node_modules/exponential-backoff/src/backoff.ts +0 -60
  984. package/node_modules/exponential-backoff/src/delay/always/always.delay.spec.ts +0 -65
  985. package/node_modules/exponential-backoff/src/delay/always/always.delay.ts +0 -3
  986. package/node_modules/exponential-backoff/src/delay/delay.base.ts +0 -34
  987. package/node_modules/exponential-backoff/src/delay/delay.factory.ts +0 -18
  988. package/node_modules/exponential-backoff/src/delay/delay.interface.ts +0 -4
  989. package/node_modules/exponential-backoff/src/delay/skip-first/skip-first.delay.ts +0 -15
  990. package/node_modules/exponential-backoff/src/jitter/full/full.jitter.spec.ts +0 -31
  991. package/node_modules/exponential-backoff/src/jitter/full/full.jitter.ts +0 -4
  992. package/node_modules/exponential-backoff/src/jitter/jitter.factory.ts +0 -16
  993. package/node_modules/exponential-backoff/src/jitter/no/no.jitter.spec.ts +0 -9
  994. package/node_modules/exponential-backoff/src/jitter/no/no.jitter.ts +0 -3
  995. package/node_modules/exponential-backoff/src/options.ts +0 -76
  996. package/node_modules/fdir/LICENSE +0 -7
  997. package/node_modules/fdir/README.md +0 -91
  998. package/node_modules/fdir/dist/index.cjs +0 -588
  999. package/node_modules/fdir/dist/index.d.cts +0 -155
  1000. package/node_modules/fdir/dist/index.d.mts +0 -155
  1001. package/node_modules/fdir/dist/index.mjs +0 -570
  1002. package/node_modules/fdir/package.json +0 -103
  1003. package/node_modules/file-uri-to-path/.npmignore +0 -1
  1004. package/node_modules/file-uri-to-path/.travis.yml +0 -30
  1005. package/node_modules/file-uri-to-path/History.md +0 -21
  1006. package/node_modules/file-uri-to-path/LICENSE +0 -20
  1007. package/node_modules/file-uri-to-path/README.md +0 -74
  1008. package/node_modules/file-uri-to-path/index.d.ts +0 -2
  1009. package/node_modules/file-uri-to-path/index.js +0 -66
  1010. package/node_modules/file-uri-to-path/package.json +0 -32
  1011. package/node_modules/file-uri-to-path/test/test.js +0 -24
  1012. package/node_modules/file-uri-to-path/test/tests.json +0 -13
  1013. package/node_modules/fs-constants/LICENSE +0 -21
  1014. package/node_modules/fs-constants/README.md +0 -26
  1015. package/node_modules/fs-constants/browser.js +0 -1
  1016. package/node_modules/fs-constants/index.js +0 -1
  1017. package/node_modules/fs-constants/package.json +0 -19
  1018. package/node_modules/github-from-package/.travis.yml +0 -4
  1019. package/node_modules/github-from-package/LICENSE +0 -18
  1020. package/node_modules/github-from-package/example/package.json +0 -8
  1021. package/node_modules/github-from-package/example/url.js +0 -3
  1022. package/node_modules/github-from-package/index.js +0 -17
  1023. package/node_modules/github-from-package/package.json +0 -30
  1024. package/node_modules/github-from-package/readme.markdown +0 -53
  1025. package/node_modules/github-from-package/test/a.json +0 -8
  1026. package/node_modules/github-from-package/test/b.json +0 -5
  1027. package/node_modules/github-from-package/test/c.json +0 -5
  1028. package/node_modules/github-from-package/test/d.json +0 -7
  1029. package/node_modules/github-from-package/test/e.json +0 -5
  1030. package/node_modules/github-from-package/test/url.js +0 -19
  1031. package/node_modules/graceful-fs/LICENSE +0 -15
  1032. package/node_modules/graceful-fs/README.md +0 -143
  1033. package/node_modules/graceful-fs/clone.js +0 -23
  1034. package/node_modules/graceful-fs/graceful-fs.js +0 -448
  1035. package/node_modules/graceful-fs/legacy-streams.js +0 -118
  1036. package/node_modules/graceful-fs/package.json +0 -53
  1037. package/node_modules/graceful-fs/polyfills.js +0 -355
  1038. package/node_modules/ieee754/LICENSE +0 -11
  1039. package/node_modules/ieee754/README.md +0 -51
  1040. package/node_modules/ieee754/index.d.ts +0 -10
  1041. package/node_modules/ieee754/index.js +0 -85
  1042. package/node_modules/ieee754/package.json +0 -52
  1043. package/node_modules/inherits/LICENSE +0 -16
  1044. package/node_modules/inherits/README.md +0 -42
  1045. package/node_modules/inherits/inherits.js +0 -9
  1046. package/node_modules/inherits/inherits_browser.js +0 -27
  1047. package/node_modules/inherits/package.json +0 -29
  1048. package/node_modules/ini/LICENSE +0 -15
  1049. package/node_modules/ini/README.md +0 -102
  1050. package/node_modules/ini/ini.js +0 -206
  1051. package/node_modules/ini/package.json +0 -33
  1052. package/node_modules/isexe/LICENSE.md +0 -55
  1053. package/node_modules/isexe/README.md +0 -80
  1054. package/node_modules/isexe/dist/commonjs/index.d.ts +0 -14
  1055. package/node_modules/isexe/dist/commonjs/index.d.ts.map +0 -1
  1056. package/node_modules/isexe/dist/commonjs/index.js +0 -56
  1057. package/node_modules/isexe/dist/commonjs/index.js.map +0 -1
  1058. package/node_modules/isexe/dist/commonjs/index.min.js +0 -2
  1059. package/node_modules/isexe/dist/commonjs/index.min.js.map +0 -7
  1060. package/node_modules/isexe/dist/commonjs/options.d.ts +0 -32
  1061. package/node_modules/isexe/dist/commonjs/options.d.ts.map +0 -1
  1062. package/node_modules/isexe/dist/commonjs/options.js +0 -3
  1063. package/node_modules/isexe/dist/commonjs/options.js.map +0 -1
  1064. package/node_modules/isexe/dist/commonjs/package.json +0 -3
  1065. package/node_modules/isexe/dist/commonjs/posix.d.ts +0 -18
  1066. package/node_modules/isexe/dist/commonjs/posix.d.ts.map +0 -1
  1067. package/node_modules/isexe/dist/commonjs/posix.js +0 -67
  1068. package/node_modules/isexe/dist/commonjs/posix.js.map +0 -1
  1069. package/node_modules/isexe/dist/commonjs/win32.d.ts +0 -18
  1070. package/node_modules/isexe/dist/commonjs/win32.d.ts.map +0 -1
  1071. package/node_modules/isexe/dist/commonjs/win32.js +0 -63
  1072. package/node_modules/isexe/dist/commonjs/win32.js.map +0 -1
  1073. package/node_modules/isexe/dist/esm/index.d.ts +0 -14
  1074. package/node_modules/isexe/dist/esm/index.d.ts.map +0 -1
  1075. package/node_modules/isexe/dist/esm/index.js +0 -16
  1076. package/node_modules/isexe/dist/esm/index.js.map +0 -1
  1077. package/node_modules/isexe/dist/esm/index.min.js +0 -2
  1078. package/node_modules/isexe/dist/esm/index.min.js.map +0 -7
  1079. package/node_modules/isexe/dist/esm/options.d.ts +0 -32
  1080. package/node_modules/isexe/dist/esm/options.d.ts.map +0 -1
  1081. package/node_modules/isexe/dist/esm/options.js +0 -2
  1082. package/node_modules/isexe/dist/esm/options.js.map +0 -1
  1083. package/node_modules/isexe/dist/esm/package.json +0 -3
  1084. package/node_modules/isexe/dist/esm/posix.d.ts +0 -18
  1085. package/node_modules/isexe/dist/esm/posix.d.ts.map +0 -1
  1086. package/node_modules/isexe/dist/esm/posix.js +0 -62
  1087. package/node_modules/isexe/dist/esm/posix.js.map +0 -1
  1088. package/node_modules/isexe/dist/esm/win32.d.ts +0 -18
  1089. package/node_modules/isexe/dist/esm/win32.d.ts.map +0 -1
  1090. package/node_modules/isexe/dist/esm/win32.js +0 -58
  1091. package/node_modules/isexe/dist/esm/win32.js.map +0 -1
  1092. package/node_modules/isexe/package.json +0 -78
  1093. package/node_modules/mimic-response/index.d.ts +0 -17
  1094. package/node_modules/mimic-response/index.js +0 -77
  1095. package/node_modules/mimic-response/license +0 -9
  1096. package/node_modules/mimic-response/package.json +0 -42
  1097. package/node_modules/mimic-response/readme.md +0 -78
  1098. package/node_modules/minimist/.eslintrc +0 -29
  1099. package/node_modules/minimist/.github/FUNDING.yml +0 -12
  1100. package/node_modules/minimist/.nycrc +0 -14
  1101. package/node_modules/minimist/CHANGELOG.md +0 -298
  1102. package/node_modules/minimist/LICENSE +0 -18
  1103. package/node_modules/minimist/README.md +0 -121
  1104. package/node_modules/minimist/example/parse.js +0 -4
  1105. package/node_modules/minimist/index.js +0 -263
  1106. package/node_modules/minimist/package.json +0 -75
  1107. package/node_modules/minimist/test/all_bool.js +0 -34
  1108. package/node_modules/minimist/test/bool.js +0 -177
  1109. package/node_modules/minimist/test/dash.js +0 -43
  1110. package/node_modules/minimist/test/default_bool.js +0 -37
  1111. package/node_modules/minimist/test/dotted.js +0 -24
  1112. package/node_modules/minimist/test/kv_short.js +0 -32
  1113. package/node_modules/minimist/test/long.js +0 -33
  1114. package/node_modules/minimist/test/num.js +0 -38
  1115. package/node_modules/minimist/test/parse.js +0 -209
  1116. package/node_modules/minimist/test/parse_modified.js +0 -11
  1117. package/node_modules/minimist/test/proto.js +0 -64
  1118. package/node_modules/minimist/test/short.js +0 -69
  1119. package/node_modules/minimist/test/stop_early.js +0 -17
  1120. package/node_modules/minimist/test/unknown.js +0 -104
  1121. package/node_modules/minimist/test/whitespace.js +0 -10
  1122. package/node_modules/minipass/LICENSE.md +0 -55
  1123. package/node_modules/minipass/README.md +0 -825
  1124. package/node_modules/minipass/dist/commonjs/index.d.ts +0 -545
  1125. package/node_modules/minipass/dist/commonjs/index.d.ts.map +0 -1
  1126. package/node_modules/minipass/dist/commonjs/index.js +0 -1038
  1127. package/node_modules/minipass/dist/commonjs/index.js.map +0 -1
  1128. package/node_modules/minipass/dist/commonjs/package.json +0 -3
  1129. package/node_modules/minipass/dist/esm/index.d.ts +0 -545
  1130. package/node_modules/minipass/dist/esm/index.d.ts.map +0 -1
  1131. package/node_modules/minipass/dist/esm/index.js +0 -1020
  1132. package/node_modules/minipass/dist/esm/index.js.map +0 -1
  1133. package/node_modules/minipass/dist/esm/package.json +0 -3
  1134. package/node_modules/minipass/package.json +0 -77
  1135. package/node_modules/minizlib/LICENSE +0 -26
  1136. package/node_modules/minizlib/README.md +0 -64
  1137. package/node_modules/minizlib/dist/commonjs/constants.d.ts +0 -2
  1138. package/node_modules/minizlib/dist/commonjs/constants.d.ts.map +0 -1
  1139. package/node_modules/minizlib/dist/commonjs/constants.js +0 -123
  1140. package/node_modules/minizlib/dist/commonjs/constants.js.map +0 -1
  1141. package/node_modules/minizlib/dist/commonjs/index.d.ts +0 -99
  1142. package/node_modules/minizlib/dist/commonjs/index.d.ts.map +0 -1
  1143. package/node_modules/minizlib/dist/commonjs/index.js +0 -416
  1144. package/node_modules/minizlib/dist/commonjs/index.js.map +0 -1
  1145. package/node_modules/minizlib/dist/commonjs/package.json +0 -3
  1146. package/node_modules/minizlib/dist/esm/constants.d.ts +0 -2
  1147. package/node_modules/minizlib/dist/esm/constants.d.ts.map +0 -1
  1148. package/node_modules/minizlib/dist/esm/constants.js +0 -117
  1149. package/node_modules/minizlib/dist/esm/constants.js.map +0 -1
  1150. package/node_modules/minizlib/dist/esm/index.d.ts +0 -99
  1151. package/node_modules/minizlib/dist/esm/index.d.ts.map +0 -1
  1152. package/node_modules/minizlib/dist/esm/index.js +0 -363
  1153. package/node_modules/minizlib/dist/esm/index.js.map +0 -1
  1154. package/node_modules/minizlib/dist/esm/package.json +0 -3
  1155. package/node_modules/minizlib/package.json +0 -80
  1156. package/node_modules/mkdirp-classic/LICENSE +0 -21
  1157. package/node_modules/mkdirp-classic/README.md +0 -18
  1158. package/node_modules/mkdirp-classic/index.js +0 -98
  1159. package/node_modules/mkdirp-classic/package.json +0 -18
  1160. package/node_modules/napi-build-utils/.github/workflows/run-npm-tests.yml +0 -31
  1161. package/node_modules/napi-build-utils/LICENSE +0 -21
  1162. package/node_modules/napi-build-utils/README.md +0 -52
  1163. package/node_modules/napi-build-utils/index.js +0 -214
  1164. package/node_modules/napi-build-utils/index.md +0 -0
  1165. package/node_modules/napi-build-utils/package.json +0 -42
  1166. package/node_modules/node-abi/LICENSE +0 -21
  1167. package/node_modules/node-abi/README.md +0 -54
  1168. package/node_modules/node-abi/abi_registry.json +0 -439
  1169. package/node_modules/node-abi/index.js +0 -179
  1170. package/node_modules/node-abi/package.json +0 -45
  1171. package/node_modules/node-addon-api/LICENSE.md +0 -9
  1172. package/node_modules/node-addon-api/README.md +0 -95
  1173. package/node_modules/node-addon-api/common.gypi +0 -21
  1174. package/node_modules/node-addon-api/except.gypi +0 -25
  1175. package/node_modules/node-addon-api/index.js +0 -14
  1176. package/node_modules/node-addon-api/napi-inl.deprecated.h +0 -186
  1177. package/node_modules/node-addon-api/napi-inl.h +0 -7165
  1178. package/node_modules/node-addon-api/napi.h +0 -3364
  1179. package/node_modules/node-addon-api/node_addon_api.gyp +0 -42
  1180. package/node_modules/node-addon-api/node_api.gyp +0 -9
  1181. package/node_modules/node-addon-api/noexcept.gypi +0 -26
  1182. package/node_modules/node-addon-api/nothing.c +0 -0
  1183. package/node_modules/node-addon-api/package-support.json +0 -21
  1184. package/node_modules/node-addon-api/package.json +0 -480
  1185. package/node_modules/node-addon-api/tools/README.md +0 -73
  1186. package/node_modules/node-addon-api/tools/check-napi.js +0 -99
  1187. package/node_modules/node-addon-api/tools/clang-format.js +0 -71
  1188. package/node_modules/node-addon-api/tools/conversion.js +0 -301
  1189. package/node_modules/node-gyp/.release-please-manifest.json +0 -3
  1190. package/node_modules/node-gyp/CHANGELOG.md +0 -1221
  1191. package/node_modules/node-gyp/CODE_OF_CONDUCT.md +0 -4
  1192. package/node_modules/node-gyp/CONTRIBUTING.md +0 -44
  1193. package/node_modules/node-gyp/LICENSE +0 -24
  1194. package/node_modules/node-gyp/README.md +0 -290
  1195. package/node_modules/node-gyp/SECURITY.md +0 -2
  1196. package/node_modules/node-gyp/addon.gypi +0 -204
  1197. package/node_modules/node-gyp/bin/node-gyp.js +0 -145
  1198. package/node_modules/node-gyp/eslint.config.js +0 -3
  1199. package/node_modules/node-gyp/gyp/.release-please-manifest.json +0 -3
  1200. package/node_modules/node-gyp/gyp/LICENSE +0 -28
  1201. package/node_modules/node-gyp/gyp/data/ninja/build.ninja +0 -4
  1202. package/node_modules/node-gyp/gyp/data/win/large-pdb-shim.cc +0 -12
  1203. package/node_modules/node-gyp/gyp/docs/GypVsCMake.md +0 -116
  1204. package/node_modules/node-gyp/gyp/docs/Hacking.md +0 -46
  1205. package/node_modules/node-gyp/gyp/docs/InputFormatReference.md +0 -1083
  1206. package/node_modules/node-gyp/gyp/docs/LanguageSpecification.md +0 -430
  1207. package/node_modules/node-gyp/gyp/docs/README.md +0 -27
  1208. package/node_modules/node-gyp/gyp/docs/Testing.md +0 -450
  1209. package/node_modules/node-gyp/gyp/docs/UserDocumentation.md +0 -965
  1210. package/node_modules/node-gyp/gyp/gyp +0 -8
  1211. package/node_modules/node-gyp/gyp/gyp.bat +0 -5
  1212. package/node_modules/node-gyp/gyp/gyp_main.py +0 -45
  1213. package/node_modules/node-gyp/gyp/pylib/gyp/MSVSNew.py +0 -365
  1214. package/node_modules/node-gyp/gyp/pylib/gyp/MSVSProject.py +0 -206
  1215. package/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings.py +0 -1283
  1216. package/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings_test.py +0 -1545
  1217. package/node_modules/node-gyp/gyp/pylib/gyp/MSVSToolFile.py +0 -59
  1218. package/node_modules/node-gyp/gyp/pylib/gyp/MSVSUserFile.py +0 -152
  1219. package/node_modules/node-gyp/gyp/pylib/gyp/MSVSUtil.py +0 -270
  1220. package/node_modules/node-gyp/gyp/pylib/gyp/MSVSVersion.py +0 -607
  1221. package/node_modules/node-gyp/gyp/pylib/gyp/__init__.py +0 -706
  1222. package/node_modules/node-gyp/gyp/pylib/gyp/common.py +0 -725
  1223. package/node_modules/node-gyp/gyp/pylib/gyp/common_test.py +0 -186
  1224. package/node_modules/node-gyp/gyp/pylib/gyp/easy_xml.py +0 -170
  1225. package/node_modules/node-gyp/gyp/pylib/gyp/easy_xml_test.py +0 -113
  1226. package/node_modules/node-gyp/gyp/pylib/gyp/flock_tool.py +0 -55
  1227. package/node_modules/node-gyp/gyp/pylib/gyp/generator/__init__.py +0 -0
  1228. package/node_modules/node-gyp/gyp/pylib/gyp/generator/analyzer.py +0 -805
  1229. package/node_modules/node-gyp/gyp/pylib/gyp/generator/android.py +0 -1169
  1230. package/node_modules/node-gyp/gyp/pylib/gyp/generator/cmake.py +0 -1316
  1231. package/node_modules/node-gyp/gyp/pylib/gyp/generator/compile_commands_json.py +0 -128
  1232. package/node_modules/node-gyp/gyp/pylib/gyp/generator/dump_dependency_json.py +0 -104
  1233. package/node_modules/node-gyp/gyp/pylib/gyp/generator/eclipse.py +0 -461
  1234. package/node_modules/node-gyp/gyp/pylib/gyp/generator/gypd.py +0 -88
  1235. package/node_modules/node-gyp/gyp/pylib/gyp/generator/gypsh.py +0 -55
  1236. package/node_modules/node-gyp/gyp/pylib/gyp/generator/make.py +0 -2755
  1237. package/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs.py +0 -3970
  1238. package/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs_test.py +0 -44
  1239. package/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja.py +0 -2957
  1240. package/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja_test.py +0 -77
  1241. package/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode.py +0 -1389
  1242. package/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode_test.py +0 -26
  1243. package/node_modules/node-gyp/gyp/pylib/gyp/input.py +0 -3097
  1244. package/node_modules/node-gyp/gyp/pylib/gyp/input_test.py +0 -99
  1245. package/node_modules/node-gyp/gyp/pylib/gyp/mac_tool.py +0 -765
  1246. package/node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.py +0 -1255
  1247. package/node_modules/node-gyp/gyp/pylib/gyp/ninja_syntax.py +0 -174
  1248. package/node_modules/node-gyp/gyp/pylib/gyp/simple_copy.py +0 -61
  1249. package/node_modules/node-gyp/gyp/pylib/gyp/win_tool.py +0 -371
  1250. package/node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py +0 -1936
  1251. package/node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation_test.py +0 -54
  1252. package/node_modules/node-gyp/gyp/pylib/gyp/xcode_ninja.py +0 -301
  1253. package/node_modules/node-gyp/gyp/pylib/gyp/xcodeproj_file.py +0 -3180
  1254. package/node_modules/node-gyp/gyp/pylib/gyp/xml_fix.py +0 -64
  1255. package/node_modules/node-gyp/gyp/pylib/packaging/LICENSE +0 -3
  1256. package/node_modules/node-gyp/gyp/pylib/packaging/LICENSE.APACHE +0 -177
  1257. package/node_modules/node-gyp/gyp/pylib/packaging/LICENSE.BSD +0 -23
  1258. package/node_modules/node-gyp/gyp/pylib/packaging/__init__.py +0 -15
  1259. package/node_modules/node-gyp/gyp/pylib/packaging/_elffile.py +0 -107
  1260. package/node_modules/node-gyp/gyp/pylib/packaging/_manylinux.py +0 -252
  1261. package/node_modules/node-gyp/gyp/pylib/packaging/_musllinux.py +0 -83
  1262. package/node_modules/node-gyp/gyp/pylib/packaging/_parser.py +0 -359
  1263. package/node_modules/node-gyp/gyp/pylib/packaging/_structures.py +0 -61
  1264. package/node_modules/node-gyp/gyp/pylib/packaging/_tokenizer.py +0 -192
  1265. package/node_modules/node-gyp/gyp/pylib/packaging/markers.py +0 -251
  1266. package/node_modules/node-gyp/gyp/pylib/packaging/metadata.py +0 -807
  1267. package/node_modules/node-gyp/gyp/pylib/packaging/py.typed +0 -0
  1268. package/node_modules/node-gyp/gyp/pylib/packaging/requirements.py +0 -90
  1269. package/node_modules/node-gyp/gyp/pylib/packaging/specifiers.py +0 -1030
  1270. package/node_modules/node-gyp/gyp/pylib/packaging/tags.py +0 -541
  1271. package/node_modules/node-gyp/gyp/pylib/packaging/utils.py +0 -172
  1272. package/node_modules/node-gyp/gyp/pylib/packaging/version.py +0 -563
  1273. package/node_modules/node-gyp/gyp/pyproject.toml +0 -116
  1274. package/node_modules/node-gyp/gyp/release-please-config.json +0 -11
  1275. package/node_modules/node-gyp/gyp/test_gyp.py +0 -260
  1276. package/node_modules/node-gyp/lib/Find-VisualStudio.cs +0 -250
  1277. package/node_modules/node-gyp/lib/build.js +0 -230
  1278. package/node_modules/node-gyp/lib/clean.js +0 -15
  1279. package/node_modules/node-gyp/lib/configure.js +0 -328
  1280. package/node_modules/node-gyp/lib/create-config-gypi.js +0 -153
  1281. package/node_modules/node-gyp/lib/download.js +0 -86
  1282. package/node_modules/node-gyp/lib/find-node-directory.js +0 -63
  1283. package/node_modules/node-gyp/lib/find-python.js +0 -304
  1284. package/node_modules/node-gyp/lib/find-visualstudio.js +0 -606
  1285. package/node_modules/node-gyp/lib/install.js +0 -411
  1286. package/node_modules/node-gyp/lib/list.js +0 -26
  1287. package/node_modules/node-gyp/lib/log.js +0 -168
  1288. package/node_modules/node-gyp/lib/node-gyp.js +0 -199
  1289. package/node_modules/node-gyp/lib/process-release.js +0 -144
  1290. package/node_modules/node-gyp/lib/rebuild.js +0 -12
  1291. package/node_modules/node-gyp/lib/remove.js +0 -43
  1292. package/node_modules/node-gyp/lib/util.js +0 -81
  1293. package/node_modules/node-gyp/macOS_Catalina_acid_test.sh +0 -21
  1294. package/node_modules/node-gyp/package.json +0 -52
  1295. package/node_modules/node-gyp/release-please-config.json +0 -40
  1296. package/node_modules/node-gyp/src/win_delay_load_hook.cc +0 -41
  1297. package/node_modules/nopt/LICENSE +0 -15
  1298. package/node_modules/nopt/README.md +0 -214
  1299. package/node_modules/nopt/bin/nopt.js +0 -29
  1300. package/node_modules/nopt/lib/debug.js +0 -5
  1301. package/node_modules/nopt/lib/nopt-lib.js +0 -514
  1302. package/node_modules/nopt/lib/nopt.js +0 -34
  1303. package/node_modules/nopt/lib/type-defs.js +0 -91
  1304. package/node_modules/nopt/package.json +0 -52
  1305. package/node_modules/once/LICENSE +0 -15
  1306. package/node_modules/once/README.md +0 -79
  1307. package/node_modules/once/once.js +0 -42
  1308. package/node_modules/once/package.json +0 -33
  1309. package/node_modules/picomatch/LICENSE +0 -21
  1310. package/node_modules/picomatch/README.md +0 -749
  1311. package/node_modules/picomatch/index.js +0 -17
  1312. package/node_modules/picomatch/lib/constants.js +0 -184
  1313. package/node_modules/picomatch/lib/parse.js +0 -1386
  1314. package/node_modules/picomatch/lib/picomatch.js +0 -349
  1315. package/node_modules/picomatch/lib/scan.js +0 -391
  1316. package/node_modules/picomatch/lib/utils.js +0 -72
  1317. package/node_modules/picomatch/package.json +0 -82
  1318. package/node_modules/picomatch/posix.js +0 -3
  1319. package/node_modules/prebuild-install/CHANGELOG.md +0 -131
  1320. package/node_modules/prebuild-install/CONTRIBUTING.md +0 -6
  1321. package/node_modules/prebuild-install/LICENSE +0 -21
  1322. package/node_modules/prebuild-install/README.md +0 -163
  1323. package/node_modules/prebuild-install/asset.js +0 -44
  1324. package/node_modules/prebuild-install/bin.js +0 -78
  1325. package/node_modules/prebuild-install/download.js +0 -142
  1326. package/node_modules/prebuild-install/error.js +0 -14
  1327. package/node_modules/prebuild-install/help.txt +0 -16
  1328. package/node_modules/prebuild-install/index.js +0 -1
  1329. package/node_modules/prebuild-install/log.js +0 -33
  1330. package/node_modules/prebuild-install/package.json +0 -67
  1331. package/node_modules/prebuild-install/proxy.js +0 -35
  1332. package/node_modules/prebuild-install/rc.js +0 -64
  1333. package/node_modules/prebuild-install/util.js +0 -143
  1334. package/node_modules/proc-log/LICENSE +0 -15
  1335. package/node_modules/proc-log/README.md +0 -226
  1336. package/node_modules/proc-log/lib/index.js +0 -158
  1337. package/node_modules/proc-log/package.json +0 -46
  1338. package/node_modules/pump/.github/FUNDING.yml +0 -2
  1339. package/node_modules/pump/.travis.yml +0 -5
  1340. package/node_modules/pump/LICENSE +0 -21
  1341. package/node_modules/pump/README.md +0 -74
  1342. package/node_modules/pump/SECURITY.md +0 -5
  1343. package/node_modules/pump/empty.js +0 -1
  1344. package/node_modules/pump/index.js +0 -86
  1345. package/node_modules/pump/package.json +0 -30
  1346. package/node_modules/pump/test-browser.js +0 -66
  1347. package/node_modules/pump/test-node.js +0 -53
  1348. package/node_modules/rc/LICENSE.APACHE2 +0 -15
  1349. package/node_modules/rc/LICENSE.BSD +0 -26
  1350. package/node_modules/rc/LICENSE.MIT +0 -24
  1351. package/node_modules/rc/README.md +0 -227
  1352. package/node_modules/rc/browser.js +0 -7
  1353. package/node_modules/rc/cli.js +0 -4
  1354. package/node_modules/rc/index.js +0 -53
  1355. package/node_modules/rc/lib/utils.js +0 -104
  1356. package/node_modules/rc/package.json +0 -29
  1357. package/node_modules/rc/test/ini.js +0 -16
  1358. package/node_modules/rc/test/nested-env-vars.js +0 -50
  1359. package/node_modules/rc/test/test.js +0 -59
  1360. package/node_modules/readable-stream/CONTRIBUTING.md +0 -38
  1361. package/node_modules/readable-stream/GOVERNANCE.md +0 -136
  1362. package/node_modules/readable-stream/LICENSE +0 -47
  1363. package/node_modules/readable-stream/README.md +0 -106
  1364. package/node_modules/readable-stream/errors-browser.js +0 -127
  1365. package/node_modules/readable-stream/errors.js +0 -116
  1366. package/node_modules/readable-stream/experimentalWarning.js +0 -17
  1367. package/node_modules/readable-stream/lib/_stream_duplex.js +0 -126
  1368. package/node_modules/readable-stream/lib/_stream_passthrough.js +0 -37
  1369. package/node_modules/readable-stream/lib/_stream_readable.js +0 -1027
  1370. package/node_modules/readable-stream/lib/_stream_transform.js +0 -190
  1371. package/node_modules/readable-stream/lib/_stream_writable.js +0 -641
  1372. package/node_modules/readable-stream/lib/internal/streams/async_iterator.js +0 -180
  1373. package/node_modules/readable-stream/lib/internal/streams/buffer_list.js +0 -183
  1374. package/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -96
  1375. package/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +0 -86
  1376. package/node_modules/readable-stream/lib/internal/streams/from-browser.js +0 -3
  1377. package/node_modules/readable-stream/lib/internal/streams/from.js +0 -52
  1378. package/node_modules/readable-stream/lib/internal/streams/pipeline.js +0 -86
  1379. package/node_modules/readable-stream/lib/internal/streams/state.js +0 -22
  1380. package/node_modules/readable-stream/lib/internal/streams/stream-browser.js +0 -1
  1381. package/node_modules/readable-stream/lib/internal/streams/stream.js +0 -1
  1382. package/node_modules/readable-stream/package.json +0 -68
  1383. package/node_modules/readable-stream/readable-browser.js +0 -9
  1384. package/node_modules/readable-stream/readable.js +0 -16
  1385. package/node_modules/safe-buffer/LICENSE +0 -21
  1386. package/node_modules/safe-buffer/README.md +0 -584
  1387. package/node_modules/safe-buffer/index.d.ts +0 -187
  1388. package/node_modules/safe-buffer/index.js +0 -65
  1389. package/node_modules/safe-buffer/package.json +0 -51
  1390. package/node_modules/semver/LICENSE +0 -15
  1391. package/node_modules/semver/README.md +0 -665
  1392. package/node_modules/semver/bin/semver.js +0 -191
  1393. package/node_modules/semver/classes/comparator.js +0 -143
  1394. package/node_modules/semver/classes/index.js +0 -7
  1395. package/node_modules/semver/classes/range.js +0 -557
  1396. package/node_modules/semver/classes/semver.js +0 -333
  1397. package/node_modules/semver/functions/clean.js +0 -8
  1398. package/node_modules/semver/functions/cmp.js +0 -54
  1399. package/node_modules/semver/functions/coerce.js +0 -62
  1400. package/node_modules/semver/functions/compare-build.js +0 -9
  1401. package/node_modules/semver/functions/compare-loose.js +0 -5
  1402. package/node_modules/semver/functions/compare.js +0 -7
  1403. package/node_modules/semver/functions/diff.js +0 -60
  1404. package/node_modules/semver/functions/eq.js +0 -5
  1405. package/node_modules/semver/functions/gt.js +0 -5
  1406. package/node_modules/semver/functions/gte.js +0 -5
  1407. package/node_modules/semver/functions/inc.js +0 -21
  1408. package/node_modules/semver/functions/lt.js +0 -5
  1409. package/node_modules/semver/functions/lte.js +0 -5
  1410. package/node_modules/semver/functions/major.js +0 -5
  1411. package/node_modules/semver/functions/minor.js +0 -5
  1412. package/node_modules/semver/functions/neq.js +0 -5
  1413. package/node_modules/semver/functions/parse.js +0 -18
  1414. package/node_modules/semver/functions/patch.js +0 -5
  1415. package/node_modules/semver/functions/prerelease.js +0 -8
  1416. package/node_modules/semver/functions/rcompare.js +0 -5
  1417. package/node_modules/semver/functions/rsort.js +0 -5
  1418. package/node_modules/semver/functions/satisfies.js +0 -12
  1419. package/node_modules/semver/functions/sort.js +0 -5
  1420. package/node_modules/semver/functions/valid.js +0 -8
  1421. package/node_modules/semver/index.js +0 -91
  1422. package/node_modules/semver/internal/constants.js +0 -37
  1423. package/node_modules/semver/internal/debug.js +0 -11
  1424. package/node_modules/semver/internal/identifiers.js +0 -29
  1425. package/node_modules/semver/internal/lrucache.js +0 -42
  1426. package/node_modules/semver/internal/parse-options.js +0 -17
  1427. package/node_modules/semver/internal/re.js +0 -223
  1428. package/node_modules/semver/package.json +0 -78
  1429. package/node_modules/semver/preload.js +0 -4
  1430. package/node_modules/semver/range.bnf +0 -16
  1431. package/node_modules/semver/ranges/gtr.js +0 -6
  1432. package/node_modules/semver/ranges/intersects.js +0 -9
  1433. package/node_modules/semver/ranges/ltr.js +0 -6
  1434. package/node_modules/semver/ranges/max-satisfying.js +0 -27
  1435. package/node_modules/semver/ranges/min-satisfying.js +0 -26
  1436. package/node_modules/semver/ranges/min-version.js +0 -63
  1437. package/node_modules/semver/ranges/outside.js +0 -82
  1438. package/node_modules/semver/ranges/simplify.js +0 -49
  1439. package/node_modules/semver/ranges/subset.js +0 -249
  1440. package/node_modules/semver/ranges/to-comparators.js +0 -10
  1441. package/node_modules/semver/ranges/valid.js +0 -13
  1442. package/node_modules/simple-concat/.travis.yml +0 -3
  1443. package/node_modules/simple-concat/LICENSE +0 -20
  1444. package/node_modules/simple-concat/README.md +0 -44
  1445. package/node_modules/simple-concat/index.js +0 -15
  1446. package/node_modules/simple-concat/package.json +0 -47
  1447. package/node_modules/simple-concat/test/basic.js +0 -41
  1448. package/node_modules/simple-get/.github/dependabot.yml +0 -15
  1449. package/node_modules/simple-get/.github/workflows/ci.yml +0 -23
  1450. package/node_modules/simple-get/LICENSE +0 -20
  1451. package/node_modules/simple-get/README.md +0 -333
  1452. package/node_modules/simple-get/index.js +0 -108
  1453. package/node_modules/simple-get/package.json +0 -67
  1454. package/node_modules/sqlite3/LICENSE +0 -25
  1455. package/node_modules/sqlite3/README.md +0 -253
  1456. package/node_modules/sqlite3/binding.gyp +0 -58
  1457. package/node_modules/sqlite3/build/Release/node_sqlite3.node +0 -0
  1458. package/node_modules/sqlite3/deps/common-sqlite.gypi +0 -60
  1459. package/node_modules/sqlite3/deps/extract.js +0 -19
  1460. package/node_modules/sqlite3/deps/sqlite-autoconf-3520000.tar.gz +0 -0
  1461. package/node_modules/sqlite3/deps/sqlite3.gyp +0 -121
  1462. package/node_modules/sqlite3/lib/sqlite3-binding.js +0 -1
  1463. package/node_modules/sqlite3/lib/sqlite3.d.ts +0 -205
  1464. package/node_modules/sqlite3/lib/sqlite3.js +0 -207
  1465. package/node_modules/sqlite3/lib/trace.js +0 -38
  1466. package/node_modules/sqlite3/package.json +0 -92
  1467. package/node_modules/sqlite3/src/async.h +0 -76
  1468. package/node_modules/sqlite3/src/backup.cc +0 -418
  1469. package/node_modules/sqlite3/src/backup.h +0 -209
  1470. package/node_modules/sqlite3/src/database.cc +0 -751
  1471. package/node_modules/sqlite3/src/database.h +0 -188
  1472. package/node_modules/sqlite3/src/gcc-preinclude.h +0 -31
  1473. package/node_modules/sqlite3/src/macros.h +0 -207
  1474. package/node_modules/sqlite3/src/node_sqlite3.cc +0 -128
  1475. package/node_modules/sqlite3/src/statement.cc +0 -939
  1476. package/node_modules/sqlite3/src/statement.h +0 -244
  1477. package/node_modules/sqlite3/src/threading.h +0 -10
  1478. package/node_modules/string_decoder/LICENSE +0 -48
  1479. package/node_modules/string_decoder/README.md +0 -47
  1480. package/node_modules/string_decoder/lib/string_decoder.js +0 -296
  1481. package/node_modules/string_decoder/package.json +0 -34
  1482. package/node_modules/strip-json-comments/index.js +0 -70
  1483. package/node_modules/strip-json-comments/license +0 -21
  1484. package/node_modules/strip-json-comments/package.json +0 -42
  1485. package/node_modules/strip-json-comments/readme.md +0 -64
  1486. package/node_modules/tar/LICENSE.md +0 -55
  1487. package/node_modules/tar/README.md +0 -1224
  1488. package/node_modules/tar/dist/commonjs/create.d.ts +0 -3
  1489. package/node_modules/tar/dist/commonjs/create.d.ts.map +0 -1
  1490. package/node_modules/tar/dist/commonjs/create.js +0 -82
  1491. package/node_modules/tar/dist/commonjs/create.js.map +0 -1
  1492. package/node_modules/tar/dist/commonjs/cwd-error.d.ts +0 -8
  1493. package/node_modules/tar/dist/commonjs/cwd-error.d.ts.map +0 -1
  1494. package/node_modules/tar/dist/commonjs/cwd-error.js +0 -18
  1495. package/node_modules/tar/dist/commonjs/cwd-error.js.map +0 -1
  1496. package/node_modules/tar/dist/commonjs/extract.d.ts +0 -3
  1497. package/node_modules/tar/dist/commonjs/extract.d.ts.map +0 -1
  1498. package/node_modules/tar/dist/commonjs/extract.js +0 -88
  1499. package/node_modules/tar/dist/commonjs/extract.js.map +0 -1
  1500. package/node_modules/tar/dist/commonjs/get-write-flag.d.ts +0 -2
  1501. package/node_modules/tar/dist/commonjs/get-write-flag.d.ts.map +0 -1
  1502. package/node_modules/tar/dist/commonjs/get-write-flag.js +0 -32
  1503. package/node_modules/tar/dist/commonjs/get-write-flag.js.map +0 -1
  1504. package/node_modules/tar/dist/commonjs/header.d.ts +0 -53
  1505. package/node_modules/tar/dist/commonjs/header.d.ts.map +0 -1
  1506. package/node_modules/tar/dist/commonjs/header.js +0 -312
  1507. package/node_modules/tar/dist/commonjs/header.js.map +0 -1
  1508. package/node_modules/tar/dist/commonjs/index.d.ts +0 -20
  1509. package/node_modules/tar/dist/commonjs/index.d.ts.map +0 -1
  1510. package/node_modules/tar/dist/commonjs/index.js +0 -64
  1511. package/node_modules/tar/dist/commonjs/index.js.map +0 -1
  1512. package/node_modules/tar/dist/commonjs/index.min.js +0 -4
  1513. package/node_modules/tar/dist/commonjs/index.min.js.map +0 -7
  1514. package/node_modules/tar/dist/commonjs/large-numbers.d.ts +0 -3
  1515. package/node_modules/tar/dist/commonjs/large-numbers.d.ts.map +0 -1
  1516. package/node_modules/tar/dist/commonjs/large-numbers.js +0 -99
  1517. package/node_modules/tar/dist/commonjs/large-numbers.js.map +0 -1
  1518. package/node_modules/tar/dist/commonjs/list.d.ts +0 -7
  1519. package/node_modules/tar/dist/commonjs/list.d.ts.map +0 -1
  1520. package/node_modules/tar/dist/commonjs/list.js +0 -145
  1521. package/node_modules/tar/dist/commonjs/list.js.map +0 -1
  1522. package/node_modules/tar/dist/commonjs/make-command.d.ts +0 -49
  1523. package/node_modules/tar/dist/commonjs/make-command.d.ts.map +0 -1
  1524. package/node_modules/tar/dist/commonjs/make-command.js +0 -52
  1525. package/node_modules/tar/dist/commonjs/make-command.js.map +0 -1
  1526. package/node_modules/tar/dist/commonjs/mkdir.d.ts +0 -25
  1527. package/node_modules/tar/dist/commonjs/mkdir.d.ts.map +0 -1
  1528. package/node_modules/tar/dist/commonjs/mkdir.js +0 -187
  1529. package/node_modules/tar/dist/commonjs/mkdir.js.map +0 -1
  1530. package/node_modules/tar/dist/commonjs/mode-fix.d.ts +0 -2
  1531. package/node_modules/tar/dist/commonjs/mode-fix.d.ts.map +0 -1
  1532. package/node_modules/tar/dist/commonjs/mode-fix.js +0 -29
  1533. package/node_modules/tar/dist/commonjs/mode-fix.js.map +0 -1
  1534. package/node_modules/tar/dist/commonjs/normalize-unicode.d.ts +0 -2
  1535. package/node_modules/tar/dist/commonjs/normalize-unicode.d.ts.map +0 -1
  1536. package/node_modules/tar/dist/commonjs/normalize-unicode.js +0 -38
  1537. package/node_modules/tar/dist/commonjs/normalize-unicode.js.map +0 -1
  1538. package/node_modules/tar/dist/commonjs/normalize-windows-path.d.ts +0 -2
  1539. package/node_modules/tar/dist/commonjs/normalize-windows-path.d.ts.map +0 -1
  1540. package/node_modules/tar/dist/commonjs/normalize-windows-path.js +0 -12
  1541. package/node_modules/tar/dist/commonjs/normalize-windows-path.js.map +0 -1
  1542. package/node_modules/tar/dist/commonjs/options.d.ts +0 -596
  1543. package/node_modules/tar/dist/commonjs/options.d.ts.map +0 -1
  1544. package/node_modules/tar/dist/commonjs/options.js +0 -66
  1545. package/node_modules/tar/dist/commonjs/options.js.map +0 -1
  1546. package/node_modules/tar/dist/commonjs/pack.d.ts +0 -105
  1547. package/node_modules/tar/dist/commonjs/pack.d.ts.map +0 -1
  1548. package/node_modules/tar/dist/commonjs/pack.js +0 -545
  1549. package/node_modules/tar/dist/commonjs/pack.js.map +0 -1
  1550. package/node_modules/tar/dist/commonjs/package.json +0 -3
  1551. package/node_modules/tar/dist/commonjs/parse.d.ts +0 -85
  1552. package/node_modules/tar/dist/commonjs/parse.d.ts.map +0 -1
  1553. package/node_modules/tar/dist/commonjs/parse.js +0 -610
  1554. package/node_modules/tar/dist/commonjs/parse.js.map +0 -1
  1555. package/node_modules/tar/dist/commonjs/path-reservations.d.ts +0 -11
  1556. package/node_modules/tar/dist/commonjs/path-reservations.d.ts.map +0 -1
  1557. package/node_modules/tar/dist/commonjs/path-reservations.js +0 -170
  1558. package/node_modules/tar/dist/commonjs/path-reservations.js.map +0 -1
  1559. package/node_modules/tar/dist/commonjs/pax.d.ts +0 -26
  1560. package/node_modules/tar/dist/commonjs/pax.d.ts.map +0 -1
  1561. package/node_modules/tar/dist/commonjs/pax.js +0 -158
  1562. package/node_modules/tar/dist/commonjs/pax.js.map +0 -1
  1563. package/node_modules/tar/dist/commonjs/process-umask.d.ts +0 -2
  1564. package/node_modules/tar/dist/commonjs/process-umask.d.ts.map +0 -1
  1565. package/node_modules/tar/dist/commonjs/process-umask.js +0 -7
  1566. package/node_modules/tar/dist/commonjs/process-umask.js.map +0 -1
  1567. package/node_modules/tar/dist/commonjs/read-entry.d.ts +0 -36
  1568. package/node_modules/tar/dist/commonjs/read-entry.d.ts.map +0 -1
  1569. package/node_modules/tar/dist/commonjs/read-entry.js +0 -136
  1570. package/node_modules/tar/dist/commonjs/read-entry.js.map +0 -1
  1571. package/node_modules/tar/dist/commonjs/replace.d.ts +0 -2
  1572. package/node_modules/tar/dist/commonjs/replace.d.ts.map +0 -1
  1573. package/node_modules/tar/dist/commonjs/replace.js +0 -227
  1574. package/node_modules/tar/dist/commonjs/replace.js.map +0 -1
  1575. package/node_modules/tar/dist/commonjs/strip-absolute-path.d.ts +0 -2
  1576. package/node_modules/tar/dist/commonjs/strip-absolute-path.d.ts.map +0 -1
  1577. package/node_modules/tar/dist/commonjs/strip-absolute-path.js +0 -29
  1578. package/node_modules/tar/dist/commonjs/strip-absolute-path.js.map +0 -1
  1579. package/node_modules/tar/dist/commonjs/strip-trailing-slashes.d.ts +0 -2
  1580. package/node_modules/tar/dist/commonjs/strip-trailing-slashes.d.ts.map +0 -1
  1581. package/node_modules/tar/dist/commonjs/strip-trailing-slashes.js +0 -18
  1582. package/node_modules/tar/dist/commonjs/strip-trailing-slashes.js.map +0 -1
  1583. package/node_modules/tar/dist/commonjs/symlink-error.d.ts +0 -9
  1584. package/node_modules/tar/dist/commonjs/symlink-error.d.ts.map +0 -1
  1585. package/node_modules/tar/dist/commonjs/symlink-error.js +0 -19
  1586. package/node_modules/tar/dist/commonjs/symlink-error.js.map +0 -1
  1587. package/node_modules/tar/dist/commonjs/types.d.ts +0 -7
  1588. package/node_modules/tar/dist/commonjs/types.d.ts.map +0 -1
  1589. package/node_modules/tar/dist/commonjs/types.js +0 -50
  1590. package/node_modules/tar/dist/commonjs/types.js.map +0 -1
  1591. package/node_modules/tar/dist/commonjs/unpack.d.ts +0 -101
  1592. package/node_modules/tar/dist/commonjs/unpack.d.ts.map +0 -1
  1593. package/node_modules/tar/dist/commonjs/unpack.js +0 -932
  1594. package/node_modules/tar/dist/commonjs/unpack.js.map +0 -1
  1595. package/node_modules/tar/dist/commonjs/update.d.ts +0 -2
  1596. package/node_modules/tar/dist/commonjs/update.d.ts.map +0 -1
  1597. package/node_modules/tar/dist/commonjs/update.js +0 -33
  1598. package/node_modules/tar/dist/commonjs/update.js.map +0 -1
  1599. package/node_modules/tar/dist/commonjs/warn-method.d.ts +0 -24
  1600. package/node_modules/tar/dist/commonjs/warn-method.d.ts.map +0 -1
  1601. package/node_modules/tar/dist/commonjs/warn-method.js +0 -31
  1602. package/node_modules/tar/dist/commonjs/warn-method.js.map +0 -1
  1603. package/node_modules/tar/dist/commonjs/winchars.d.ts +0 -3
  1604. package/node_modules/tar/dist/commonjs/winchars.d.ts.map +0 -1
  1605. package/node_modules/tar/dist/commonjs/winchars.js +0 -14
  1606. package/node_modules/tar/dist/commonjs/winchars.js.map +0 -1
  1607. package/node_modules/tar/dist/commonjs/write-entry.d.ts +0 -129
  1608. package/node_modules/tar/dist/commonjs/write-entry.d.ts.map +0 -1
  1609. package/node_modules/tar/dist/commonjs/write-entry.js +0 -698
  1610. package/node_modules/tar/dist/commonjs/write-entry.js.map +0 -1
  1611. package/node_modules/tar/dist/esm/create.d.ts +0 -3
  1612. package/node_modules/tar/dist/esm/create.d.ts.map +0 -1
  1613. package/node_modules/tar/dist/esm/create.js +0 -76
  1614. package/node_modules/tar/dist/esm/create.js.map +0 -1
  1615. package/node_modules/tar/dist/esm/cwd-error.d.ts +0 -8
  1616. package/node_modules/tar/dist/esm/cwd-error.d.ts.map +0 -1
  1617. package/node_modules/tar/dist/esm/cwd-error.js +0 -14
  1618. package/node_modules/tar/dist/esm/cwd-error.js.map +0 -1
  1619. package/node_modules/tar/dist/esm/extract.d.ts +0 -3
  1620. package/node_modules/tar/dist/esm/extract.d.ts.map +0 -1
  1621. package/node_modules/tar/dist/esm/extract.js +0 -49
  1622. package/node_modules/tar/dist/esm/extract.js.map +0 -1
  1623. package/node_modules/tar/dist/esm/get-write-flag.d.ts +0 -2
  1624. package/node_modules/tar/dist/esm/get-write-flag.d.ts.map +0 -1
  1625. package/node_modules/tar/dist/esm/get-write-flag.js +0 -26
  1626. package/node_modules/tar/dist/esm/get-write-flag.js.map +0 -1
  1627. package/node_modules/tar/dist/esm/header.d.ts +0 -53
  1628. package/node_modules/tar/dist/esm/header.d.ts.map +0 -1
  1629. package/node_modules/tar/dist/esm/header.js +0 -275
  1630. package/node_modules/tar/dist/esm/header.js.map +0 -1
  1631. package/node_modules/tar/dist/esm/index.d.ts +0 -20
  1632. package/node_modules/tar/dist/esm/index.d.ts.map +0 -1
  1633. package/node_modules/tar/dist/esm/index.js +0 -20
  1634. package/node_modules/tar/dist/esm/index.js.map +0 -1
  1635. package/node_modules/tar/dist/esm/index.min.js +0 -4
  1636. package/node_modules/tar/dist/esm/index.min.js.map +0 -7
  1637. package/node_modules/tar/dist/esm/large-numbers.d.ts +0 -3
  1638. package/node_modules/tar/dist/esm/large-numbers.d.ts.map +0 -1
  1639. package/node_modules/tar/dist/esm/large-numbers.js +0 -94
  1640. package/node_modules/tar/dist/esm/large-numbers.js.map +0 -1
  1641. package/node_modules/tar/dist/esm/list.d.ts +0 -7
  1642. package/node_modules/tar/dist/esm/list.d.ts.map +0 -1
  1643. package/node_modules/tar/dist/esm/list.js +0 -105
  1644. package/node_modules/tar/dist/esm/list.js.map +0 -1
  1645. package/node_modules/tar/dist/esm/make-command.d.ts +0 -49
  1646. package/node_modules/tar/dist/esm/make-command.d.ts.map +0 -1
  1647. package/node_modules/tar/dist/esm/make-command.js +0 -48
  1648. package/node_modules/tar/dist/esm/make-command.js.map +0 -1
  1649. package/node_modules/tar/dist/esm/mkdir.d.ts +0 -25
  1650. package/node_modules/tar/dist/esm/mkdir.d.ts.map +0 -1
  1651. package/node_modules/tar/dist/esm/mkdir.js +0 -179
  1652. package/node_modules/tar/dist/esm/mkdir.js.map +0 -1
  1653. package/node_modules/tar/dist/esm/mode-fix.d.ts +0 -2
  1654. package/node_modules/tar/dist/esm/mode-fix.d.ts.map +0 -1
  1655. package/node_modules/tar/dist/esm/mode-fix.js +0 -25
  1656. package/node_modules/tar/dist/esm/mode-fix.js.map +0 -1
  1657. package/node_modules/tar/dist/esm/normalize-unicode.d.ts +0 -2
  1658. package/node_modules/tar/dist/esm/normalize-unicode.d.ts.map +0 -1
  1659. package/node_modules/tar/dist/esm/normalize-unicode.js +0 -34
  1660. package/node_modules/tar/dist/esm/normalize-unicode.js.map +0 -1
  1661. package/node_modules/tar/dist/esm/normalize-windows-path.d.ts +0 -2
  1662. package/node_modules/tar/dist/esm/normalize-windows-path.d.ts.map +0 -1
  1663. package/node_modules/tar/dist/esm/normalize-windows-path.js +0 -9
  1664. package/node_modules/tar/dist/esm/normalize-windows-path.js.map +0 -1
  1665. package/node_modules/tar/dist/esm/options.d.ts +0 -596
  1666. package/node_modules/tar/dist/esm/options.d.ts.map +0 -1
  1667. package/node_modules/tar/dist/esm/options.js +0 -54
  1668. package/node_modules/tar/dist/esm/options.js.map +0 -1
  1669. package/node_modules/tar/dist/esm/pack.d.ts +0 -105
  1670. package/node_modules/tar/dist/esm/pack.d.ts.map +0 -1
  1671. package/node_modules/tar/dist/esm/pack.js +0 -503
  1672. package/node_modules/tar/dist/esm/pack.js.map +0 -1
  1673. package/node_modules/tar/dist/esm/package.json +0 -3
  1674. package/node_modules/tar/dist/esm/parse.d.ts +0 -85
  1675. package/node_modules/tar/dist/esm/parse.d.ts.map +0 -1
  1676. package/node_modules/tar/dist/esm/parse.js +0 -606
  1677. package/node_modules/tar/dist/esm/parse.js.map +0 -1
  1678. package/node_modules/tar/dist/esm/path-reservations.d.ts +0 -11
  1679. package/node_modules/tar/dist/esm/path-reservations.d.ts.map +0 -1
  1680. package/node_modules/tar/dist/esm/path-reservations.js +0 -166
  1681. package/node_modules/tar/dist/esm/path-reservations.js.map +0 -1
  1682. package/node_modules/tar/dist/esm/pax.d.ts +0 -26
  1683. package/node_modules/tar/dist/esm/pax.d.ts.map +0 -1
  1684. package/node_modules/tar/dist/esm/pax.js +0 -154
  1685. package/node_modules/tar/dist/esm/pax.js.map +0 -1
  1686. package/node_modules/tar/dist/esm/process-umask.d.ts +0 -2
  1687. package/node_modules/tar/dist/esm/process-umask.d.ts.map +0 -1
  1688. package/node_modules/tar/dist/esm/process-umask.js +0 -3
  1689. package/node_modules/tar/dist/esm/process-umask.js.map +0 -1
  1690. package/node_modules/tar/dist/esm/read-entry.d.ts +0 -36
  1691. package/node_modules/tar/dist/esm/read-entry.d.ts.map +0 -1
  1692. package/node_modules/tar/dist/esm/read-entry.js +0 -132
  1693. package/node_modules/tar/dist/esm/read-entry.js.map +0 -1
  1694. package/node_modules/tar/dist/esm/replace.d.ts +0 -2
  1695. package/node_modules/tar/dist/esm/replace.d.ts.map +0 -1
  1696. package/node_modules/tar/dist/esm/replace.js +0 -221
  1697. package/node_modules/tar/dist/esm/replace.js.map +0 -1
  1698. package/node_modules/tar/dist/esm/strip-absolute-path.d.ts +0 -2
  1699. package/node_modules/tar/dist/esm/strip-absolute-path.d.ts.map +0 -1
  1700. package/node_modules/tar/dist/esm/strip-absolute-path.js +0 -25
  1701. package/node_modules/tar/dist/esm/strip-absolute-path.js.map +0 -1
  1702. package/node_modules/tar/dist/esm/strip-trailing-slashes.d.ts +0 -2
  1703. package/node_modules/tar/dist/esm/strip-trailing-slashes.d.ts.map +0 -1
  1704. package/node_modules/tar/dist/esm/strip-trailing-slashes.js +0 -14
  1705. package/node_modules/tar/dist/esm/strip-trailing-slashes.js.map +0 -1
  1706. package/node_modules/tar/dist/esm/symlink-error.d.ts +0 -9
  1707. package/node_modules/tar/dist/esm/symlink-error.d.ts.map +0 -1
  1708. package/node_modules/tar/dist/esm/symlink-error.js +0 -15
  1709. package/node_modules/tar/dist/esm/symlink-error.js.map +0 -1
  1710. package/node_modules/tar/dist/esm/types.d.ts +0 -7
  1711. package/node_modules/tar/dist/esm/types.d.ts.map +0 -1
  1712. package/node_modules/tar/dist/esm/types.js +0 -45
  1713. package/node_modules/tar/dist/esm/types.js.map +0 -1
  1714. package/node_modules/tar/dist/esm/unpack.d.ts +0 -101
  1715. package/node_modules/tar/dist/esm/unpack.d.ts.map +0 -1
  1716. package/node_modules/tar/dist/esm/unpack.js +0 -891
  1717. package/node_modules/tar/dist/esm/unpack.js.map +0 -1
  1718. package/node_modules/tar/dist/esm/update.d.ts +0 -2
  1719. package/node_modules/tar/dist/esm/update.d.ts.map +0 -1
  1720. package/node_modules/tar/dist/esm/update.js +0 -30
  1721. package/node_modules/tar/dist/esm/update.js.map +0 -1
  1722. package/node_modules/tar/dist/esm/warn-method.d.ts +0 -24
  1723. package/node_modules/tar/dist/esm/warn-method.d.ts.map +0 -1
  1724. package/node_modules/tar/dist/esm/warn-method.js +0 -27
  1725. package/node_modules/tar/dist/esm/warn-method.js.map +0 -1
  1726. package/node_modules/tar/dist/esm/winchars.d.ts +0 -3
  1727. package/node_modules/tar/dist/esm/winchars.d.ts.map +0 -1
  1728. package/node_modules/tar/dist/esm/winchars.js +0 -9
  1729. package/node_modules/tar/dist/esm/winchars.js.map +0 -1
  1730. package/node_modules/tar/dist/esm/write-entry.d.ts +0 -129
  1731. package/node_modules/tar/dist/esm/write-entry.d.ts.map +0 -1
  1732. package/node_modules/tar/dist/esm/write-entry.js +0 -656
  1733. package/node_modules/tar/dist/esm/write-entry.js.map +0 -1
  1734. package/node_modules/tar/package.json +0 -297
  1735. package/node_modules/tar-fs/.travis.yml +0 -6
  1736. package/node_modules/tar-fs/LICENSE +0 -21
  1737. package/node_modules/tar-fs/README.md +0 -165
  1738. package/node_modules/tar-fs/index.js +0 -363
  1739. package/node_modules/tar-fs/node_modules/chownr/LICENSE +0 -15
  1740. package/node_modules/tar-fs/node_modules/chownr/README.md +0 -3
  1741. package/node_modules/tar-fs/node_modules/chownr/chownr.js +0 -167
  1742. package/node_modules/tar-fs/node_modules/chownr/package.json +0 -29
  1743. package/node_modules/tar-fs/package.json +0 -41
  1744. package/node_modules/tar-fs/test/fixtures/a/hello.txt +0 -1
  1745. package/node_modules/tar-fs/test/fixtures/b/a/test.txt +0 -1
  1746. package/node_modules/tar-fs/test/fixtures/d/file1 +0 -0
  1747. package/node_modules/tar-fs/test/fixtures/d/file2 +0 -0
  1748. package/node_modules/tar-fs/test/fixtures/d/sub-dir/file5 +0 -0
  1749. package/node_modules/tar-fs/test/fixtures/d/sub-files/file3 +0 -0
  1750. package/node_modules/tar-fs/test/fixtures/d/sub-files/file4 +0 -0
  1751. package/node_modules/tar-fs/test/fixtures/e/directory/.ignore +0 -0
  1752. package/node_modules/tar-fs/test/fixtures/e/file +0 -0
  1753. package/node_modules/tar-fs/test/fixtures/invalid.tar +0 -0
  1754. package/node_modules/tar-fs/test/index.js +0 -346
  1755. package/node_modules/tar-stream/LICENSE +0 -21
  1756. package/node_modules/tar-stream/README.md +0 -168
  1757. package/node_modules/tar-stream/extract.js +0 -257
  1758. package/node_modules/tar-stream/headers.js +0 -295
  1759. package/node_modules/tar-stream/index.js +0 -2
  1760. package/node_modules/tar-stream/pack.js +0 -255
  1761. package/node_modules/tar-stream/package.json +0 -58
  1762. package/node_modules/tar-stream/sandbox.js +0 -11
  1763. package/node_modules/tinyglobby/LICENSE +0 -21
  1764. package/node_modules/tinyglobby/README.md +0 -25
  1765. package/node_modules/tinyglobby/dist/index.cjs +0 -334
  1766. package/node_modules/tinyglobby/dist/index.d.cts +0 -148
  1767. package/node_modules/tinyglobby/dist/index.d.mts +0 -148
  1768. package/node_modules/tinyglobby/dist/index.mjs +0 -306
  1769. package/node_modules/tinyglobby/package.json +0 -73
  1770. package/node_modules/tunnel-agent/LICENSE +0 -55
  1771. package/node_modules/tunnel-agent/README.md +0 -4
  1772. package/node_modules/tunnel-agent/index.js +0 -244
  1773. package/node_modules/tunnel-agent/package.json +0 -22
  1774. package/node_modules/undici/LICENSE +0 -21
  1775. package/node_modules/undici/README.md +0 -741
  1776. package/node_modules/undici/docs/docs/api/Agent.md +0 -84
  1777. package/node_modules/undici/docs/docs/api/BalancedPool.md +0 -99
  1778. package/node_modules/undici/docs/docs/api/CacheStorage.md +0 -30
  1779. package/node_modules/undici/docs/docs/api/CacheStore.md +0 -164
  1780. package/node_modules/undici/docs/docs/api/Client.md +0 -285
  1781. package/node_modules/undici/docs/docs/api/ClientStats.md +0 -27
  1782. package/node_modules/undici/docs/docs/api/Connector.md +0 -115
  1783. package/node_modules/undici/docs/docs/api/ContentType.md +0 -57
  1784. package/node_modules/undici/docs/docs/api/Cookies.md +0 -101
  1785. package/node_modules/undici/docs/docs/api/Debug.md +0 -62
  1786. package/node_modules/undici/docs/docs/api/DiagnosticsChannel.md +0 -315
  1787. package/node_modules/undici/docs/docs/api/Dispatcher.md +0 -1392
  1788. package/node_modules/undici/docs/docs/api/EnvHttpProxyAgent.md +0 -159
  1789. package/node_modules/undici/docs/docs/api/Errors.md +0 -49
  1790. package/node_modules/undici/docs/docs/api/EventSource.md +0 -45
  1791. package/node_modules/undici/docs/docs/api/Fetch.md +0 -60
  1792. package/node_modules/undici/docs/docs/api/GlobalInstallation.md +0 -139
  1793. package/node_modules/undici/docs/docs/api/H2CClient.md +0 -263
  1794. package/node_modules/undici/docs/docs/api/MockAgent.md +0 -603
  1795. package/node_modules/undici/docs/docs/api/MockCallHistory.md +0 -197
  1796. package/node_modules/undici/docs/docs/api/MockCallHistoryLog.md +0 -43
  1797. package/node_modules/undici/docs/docs/api/MockClient.md +0 -81
  1798. package/node_modules/undici/docs/docs/api/MockErrors.md +0 -12
  1799. package/node_modules/undici/docs/docs/api/MockPool.md +0 -555
  1800. package/node_modules/undici/docs/docs/api/Pool.md +0 -84
  1801. package/node_modules/undici/docs/docs/api/PoolStats.md +0 -35
  1802. package/node_modules/undici/docs/docs/api/ProxyAgent.md +0 -229
  1803. package/node_modules/undici/docs/docs/api/RedirectHandler.md +0 -93
  1804. package/node_modules/undici/docs/docs/api/RetryAgent.md +0 -50
  1805. package/node_modules/undici/docs/docs/api/RetryHandler.md +0 -118
  1806. package/node_modules/undici/docs/docs/api/RoundRobinPool.md +0 -145
  1807. package/node_modules/undici/docs/docs/api/SnapshotAgent.md +0 -616
  1808. package/node_modules/undici/docs/docs/api/Socks5ProxyAgent.md +0 -274
  1809. package/node_modules/undici/docs/docs/api/Util.md +0 -25
  1810. package/node_modules/undici/docs/docs/api/WebSocket.md +0 -141
  1811. package/node_modules/undici/docs/docs/api/api-lifecycle.md +0 -91
  1812. package/node_modules/undici/docs/docs/best-practices/client-certificate.md +0 -64
  1813. package/node_modules/undici/docs/docs/best-practices/crawling.md +0 -58
  1814. package/node_modules/undici/docs/docs/best-practices/mocking-request.md +0 -190
  1815. package/node_modules/undici/docs/docs/best-practices/proxy.md +0 -127
  1816. package/node_modules/undici/docs/docs/best-practices/undici-vs-builtin-fetch.md +0 -224
  1817. package/node_modules/undici/docs/docs/best-practices/writing-tests.md +0 -63
  1818. package/node_modules/undici/index-fetch.js +0 -65
  1819. package/node_modules/undici/index.d.ts +0 -3
  1820. package/node_modules/undici/index.js +0 -234
  1821. package/node_modules/undici/lib/api/abort-signal.js +0 -59
  1822. package/node_modules/undici/lib/api/api-connect.js +0 -110
  1823. package/node_modules/undici/lib/api/api-pipeline.js +0 -252
  1824. package/node_modules/undici/lib/api/api-request.js +0 -214
  1825. package/node_modules/undici/lib/api/api-stream.js +0 -209
  1826. package/node_modules/undici/lib/api/api-upgrade.js +0 -111
  1827. package/node_modules/undici/lib/api/index.js +0 -7
  1828. package/node_modules/undici/lib/api/readable.js +0 -580
  1829. package/node_modules/undici/lib/cache/memory-cache-store.js +0 -234
  1830. package/node_modules/undici/lib/cache/sqlite-cache-store.js +0 -461
  1831. package/node_modules/undici/lib/core/connect.js +0 -137
  1832. package/node_modules/undici/lib/core/constants.js +0 -143
  1833. package/node_modules/undici/lib/core/diagnostics.js +0 -227
  1834. package/node_modules/undici/lib/core/errors.js +0 -477
  1835. package/node_modules/undici/lib/core/request.js +0 -438
  1836. package/node_modules/undici/lib/core/socks5-client.js +0 -407
  1837. package/node_modules/undici/lib/core/socks5-utils.js +0 -203
  1838. package/node_modules/undici/lib/core/symbols.js +0 -75
  1839. package/node_modules/undici/lib/core/tree.js +0 -160
  1840. package/node_modules/undici/lib/core/util.js +0 -992
  1841. package/node_modules/undici/lib/dispatcher/agent.js +0 -158
  1842. package/node_modules/undici/lib/dispatcher/balanced-pool.js +0 -219
  1843. package/node_modules/undici/lib/dispatcher/client-h1.js +0 -1610
  1844. package/node_modules/undici/lib/dispatcher/client-h2.js +0 -995
  1845. package/node_modules/undici/lib/dispatcher/client.js +0 -659
  1846. package/node_modules/undici/lib/dispatcher/dispatcher-base.js +0 -165
  1847. package/node_modules/undici/lib/dispatcher/dispatcher.js +0 -48
  1848. package/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +0 -146
  1849. package/node_modules/undici/lib/dispatcher/fixed-queue.js +0 -135
  1850. package/node_modules/undici/lib/dispatcher/h2c-client.js +0 -51
  1851. package/node_modules/undici/lib/dispatcher/pool-base.js +0 -214
  1852. package/node_modules/undici/lib/dispatcher/pool.js +0 -118
  1853. package/node_modules/undici/lib/dispatcher/proxy-agent.js +0 -318
  1854. package/node_modules/undici/lib/dispatcher/retry-agent.js +0 -35
  1855. package/node_modules/undici/lib/dispatcher/round-robin-pool.js +0 -137
  1856. package/node_modules/undici/lib/dispatcher/socks5-proxy-agent.js +0 -249
  1857. package/node_modules/undici/lib/encoding/index.js +0 -33
  1858. package/node_modules/undici/lib/global.js +0 -50
  1859. package/node_modules/undici/lib/handler/cache-handler.js +0 -578
  1860. package/node_modules/undici/lib/handler/cache-revalidation-handler.js +0 -124
  1861. package/node_modules/undici/lib/handler/decorator-handler.js +0 -67
  1862. package/node_modules/undici/lib/handler/deduplication-handler.js +0 -460
  1863. package/node_modules/undici/lib/handler/redirect-handler.js +0 -238
  1864. package/node_modules/undici/lib/handler/retry-handler.js +0 -394
  1865. package/node_modules/undici/lib/handler/unwrap-handler.js +0 -100
  1866. package/node_modules/undici/lib/handler/wrap-handler.js +0 -105
  1867. package/node_modules/undici/lib/interceptor/cache.js +0 -495
  1868. package/node_modules/undici/lib/interceptor/decompress.js +0 -259
  1869. package/node_modules/undici/lib/interceptor/deduplicate.js +0 -117
  1870. package/node_modules/undici/lib/interceptor/dns.js +0 -571
  1871. package/node_modules/undici/lib/interceptor/dump.js +0 -112
  1872. package/node_modules/undici/lib/interceptor/redirect.js +0 -21
  1873. package/node_modules/undici/lib/interceptor/response-error.js +0 -95
  1874. package/node_modules/undici/lib/interceptor/retry.js +0 -19
  1875. package/node_modules/undici/lib/llhttp/.gitkeep +0 -0
  1876. package/node_modules/undici/lib/llhttp/constants.d.ts +0 -195
  1877. package/node_modules/undici/lib/llhttp/constants.js +0 -531
  1878. package/node_modules/undici/lib/llhttp/llhttp-wasm.js +0 -15
  1879. package/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js +0 -15
  1880. package/node_modules/undici/lib/llhttp/utils.d.ts +0 -2
  1881. package/node_modules/undici/lib/llhttp/utils.js +0 -12
  1882. package/node_modules/undici/lib/mock/mock-agent.js +0 -232
  1883. package/node_modules/undici/lib/mock/mock-call-history.js +0 -248
  1884. package/node_modules/undici/lib/mock/mock-client.js +0 -68
  1885. package/node_modules/undici/lib/mock/mock-errors.js +0 -29
  1886. package/node_modules/undici/lib/mock/mock-interceptor.js +0 -209
  1887. package/node_modules/undici/lib/mock/mock-pool.js +0 -68
  1888. package/node_modules/undici/lib/mock/mock-symbols.js +0 -32
  1889. package/node_modules/undici/lib/mock/mock-utils.js +0 -486
  1890. package/node_modules/undici/lib/mock/pending-interceptors-formatter.js +0 -43
  1891. package/node_modules/undici/lib/mock/snapshot-agent.js +0 -353
  1892. package/node_modules/undici/lib/mock/snapshot-recorder.js +0 -588
  1893. package/node_modules/undici/lib/mock/snapshot-utils.js +0 -158
  1894. package/node_modules/undici/lib/util/cache.js +0 -407
  1895. package/node_modules/undici/lib/util/date.js +0 -653
  1896. package/node_modules/undici/lib/util/promise.js +0 -28
  1897. package/node_modules/undici/lib/util/runtime-features.js +0 -124
  1898. package/node_modules/undici/lib/util/stats.js +0 -32
  1899. package/node_modules/undici/lib/util/timers.js +0 -425
  1900. package/node_modules/undici/lib/web/cache/cache.js +0 -864
  1901. package/node_modules/undici/lib/web/cache/cachestorage.js +0 -152
  1902. package/node_modules/undici/lib/web/cache/util.js +0 -45
  1903. package/node_modules/undici/lib/web/cookies/constants.js +0 -12
  1904. package/node_modules/undici/lib/web/cookies/index.js +0 -199
  1905. package/node_modules/undici/lib/web/cookies/parse.js +0 -322
  1906. package/node_modules/undici/lib/web/cookies/util.js +0 -282
  1907. package/node_modules/undici/lib/web/eventsource/eventsource-stream.js +0 -399
  1908. package/node_modules/undici/lib/web/eventsource/eventsource.js +0 -501
  1909. package/node_modules/undici/lib/web/eventsource/util.js +0 -29
  1910. package/node_modules/undici/lib/web/fetch/LICENSE +0 -21
  1911. package/node_modules/undici/lib/web/fetch/body.js +0 -509
  1912. package/node_modules/undici/lib/web/fetch/constants.js +0 -131
  1913. package/node_modules/undici/lib/web/fetch/data-url.js +0 -596
  1914. package/node_modules/undici/lib/web/fetch/formdata-parser.js +0 -575
  1915. package/node_modules/undici/lib/web/fetch/formdata.js +0 -259
  1916. package/node_modules/undici/lib/web/fetch/global.js +0 -40
  1917. package/node_modules/undici/lib/web/fetch/headers.js +0 -719
  1918. package/node_modules/undici/lib/web/fetch/index.js +0 -2410
  1919. package/node_modules/undici/lib/web/fetch/request.js +0 -1115
  1920. package/node_modules/undici/lib/web/fetch/response.js +0 -641
  1921. package/node_modules/undici/lib/web/fetch/util.js +0 -1522
  1922. package/node_modules/undici/lib/web/infra/index.js +0 -229
  1923. package/node_modules/undici/lib/web/subresource-integrity/Readme.md +0 -9
  1924. package/node_modules/undici/lib/web/subresource-integrity/subresource-integrity.js +0 -307
  1925. package/node_modules/undici/lib/web/webidl/index.js +0 -1006
  1926. package/node_modules/undici/lib/web/websocket/connection.js +0 -329
  1927. package/node_modules/undici/lib/web/websocket/constants.js +0 -126
  1928. package/node_modules/undici/lib/web/websocket/events.js +0 -331
  1929. package/node_modules/undici/lib/web/websocket/frame.js +0 -133
  1930. package/node_modules/undici/lib/web/websocket/permessage-deflate.js +0 -118
  1931. package/node_modules/undici/lib/web/websocket/receiver.js +0 -450
  1932. package/node_modules/undici/lib/web/websocket/sender.js +0 -109
  1933. package/node_modules/undici/lib/web/websocket/stream/websocketerror.js +0 -104
  1934. package/node_modules/undici/lib/web/websocket/stream/websocketstream.js +0 -497
  1935. package/node_modules/undici/lib/web/websocket/util.js +0 -347
  1936. package/node_modules/undici/lib/web/websocket/websocket.js +0 -751
  1937. package/node_modules/undici/package.json +0 -152
  1938. package/node_modules/undici/scripts/strip-comments.js +0 -10
  1939. package/node_modules/undici/types/README.md +0 -6
  1940. package/node_modules/undici/types/agent.d.ts +0 -32
  1941. package/node_modules/undici/types/api.d.ts +0 -43
  1942. package/node_modules/undici/types/balanced-pool.d.ts +0 -30
  1943. package/node_modules/undici/types/cache-interceptor.d.ts +0 -179
  1944. package/node_modules/undici/types/cache.d.ts +0 -36
  1945. package/node_modules/undici/types/client-stats.d.ts +0 -15
  1946. package/node_modules/undici/types/client.d.ts +0 -123
  1947. package/node_modules/undici/types/connector.d.ts +0 -36
  1948. package/node_modules/undici/types/content-type.d.ts +0 -21
  1949. package/node_modules/undici/types/cookies.d.ts +0 -30
  1950. package/node_modules/undici/types/diagnostics-channel.d.ts +0 -74
  1951. package/node_modules/undici/types/dispatcher.d.ts +0 -273
  1952. package/node_modules/undici/types/env-http-proxy-agent.d.ts +0 -22
  1953. package/node_modules/undici/types/errors.d.ts +0 -177
  1954. package/node_modules/undici/types/eventsource.d.ts +0 -66
  1955. package/node_modules/undici/types/fetch.d.ts +0 -231
  1956. package/node_modules/undici/types/formdata.d.ts +0 -114
  1957. package/node_modules/undici/types/global-dispatcher.d.ts +0 -9
  1958. package/node_modules/undici/types/global-origin.d.ts +0 -7
  1959. package/node_modules/undici/types/h2c-client.d.ts +0 -73
  1960. package/node_modules/undici/types/handlers.d.ts +0 -14
  1961. package/node_modules/undici/types/header.d.ts +0 -160
  1962. package/node_modules/undici/types/index.d.ts +0 -91
  1963. package/node_modules/undici/types/interceptors.d.ts +0 -80
  1964. package/node_modules/undici/types/mock-agent.d.ts +0 -68
  1965. package/node_modules/undici/types/mock-call-history.d.ts +0 -111
  1966. package/node_modules/undici/types/mock-client.d.ts +0 -27
  1967. package/node_modules/undici/types/mock-errors.d.ts +0 -12
  1968. package/node_modules/undici/types/mock-interceptor.d.ts +0 -94
  1969. package/node_modules/undici/types/mock-pool.d.ts +0 -27
  1970. package/node_modules/undici/types/patch.d.ts +0 -29
  1971. package/node_modules/undici/types/pool-stats.d.ts +0 -19
  1972. package/node_modules/undici/types/pool.d.ts +0 -41
  1973. package/node_modules/undici/types/proxy-agent.d.ts +0 -29
  1974. package/node_modules/undici/types/readable.d.ts +0 -68
  1975. package/node_modules/undici/types/retry-agent.d.ts +0 -8
  1976. package/node_modules/undici/types/retry-handler.d.ts +0 -125
  1977. package/node_modules/undici/types/round-robin-pool.d.ts +0 -41
  1978. package/node_modules/undici/types/snapshot-agent.d.ts +0 -109
  1979. package/node_modules/undici/types/socks5-proxy-agent.d.ts +0 -25
  1980. package/node_modules/undici/types/util.d.ts +0 -18
  1981. package/node_modules/undici/types/utility.d.ts +0 -7
  1982. package/node_modules/undici/types/webidl.d.ts +0 -347
  1983. package/node_modules/undici/types/websocket.d.ts +0 -188
  1984. package/node_modules/util-deprecate/History.md +0 -16
  1985. package/node_modules/util-deprecate/LICENSE +0 -24
  1986. package/node_modules/util-deprecate/README.md +0 -53
  1987. package/node_modules/util-deprecate/browser.js +0 -67
  1988. package/node_modules/util-deprecate/node.js +0 -6
  1989. package/node_modules/util-deprecate/package.json +0 -27
  1990. package/node_modules/which/LICENSE +0 -15
  1991. package/node_modules/which/README.md +0 -51
  1992. package/node_modules/which/bin/which.js +0 -52
  1993. package/node_modules/which/lib/index.js +0 -111
  1994. package/node_modules/which/package.json +0 -52
  1995. package/node_modules/wrappy/LICENSE +0 -15
  1996. package/node_modules/wrappy/README.md +0 -36
  1997. package/node_modules/wrappy/package.json +0 -29
  1998. package/node_modules/wrappy/wrappy.js +0 -33
  1999. package/node_modules/yallist/LICENSE.md +0 -63
  2000. package/node_modules/yallist/README.md +0 -205
  2001. package/node_modules/yallist/dist/commonjs/index.d.ts +0 -39
  2002. package/node_modules/yallist/dist/commonjs/index.d.ts.map +0 -1
  2003. package/node_modules/yallist/dist/commonjs/index.js +0 -384
  2004. package/node_modules/yallist/dist/commonjs/index.js.map +0 -1
  2005. package/node_modules/yallist/dist/commonjs/package.json +0 -3
  2006. package/node_modules/yallist/dist/esm/index.d.ts +0 -39
  2007. package/node_modules/yallist/dist/esm/index.d.ts.map +0 -1
  2008. package/node_modules/yallist/dist/esm/index.js +0 -379
  2009. package/node_modules/yallist/dist/esm/index.js.map +0 -1
  2010. package/node_modules/yallist/dist/esm/package.json +0 -3
  2011. package/node_modules/yallist/package.json +0 -68
  2012. package/node_modules/zod/LICENSE +0 -21
  2013. package/node_modules/zod/README.md +0 -208
  2014. package/node_modules/zod/index.cjs +0 -33
  2015. package/node_modules/zod/index.d.cts +0 -4
  2016. package/node_modules/zod/index.d.ts +0 -4
  2017. package/node_modules/zod/index.js +0 -4
  2018. package/node_modules/zod/package.json +0 -118
  2019. package/node_modules/zod/src/index.ts +0 -4
  2020. package/node_modules/zod/src/v3/ZodError.ts +0 -330
  2021. package/node_modules/zod/src/v3/benchmarks/datetime.ts +0 -58
  2022. package/node_modules/zod/src/v3/benchmarks/discriminatedUnion.ts +0 -80
  2023. package/node_modules/zod/src/v3/benchmarks/index.ts +0 -59
  2024. package/node_modules/zod/src/v3/benchmarks/ipv4.ts +0 -57
  2025. package/node_modules/zod/src/v3/benchmarks/object.ts +0 -69
  2026. package/node_modules/zod/src/v3/benchmarks/primitives.ts +0 -162
  2027. package/node_modules/zod/src/v3/benchmarks/realworld.ts +0 -63
  2028. package/node_modules/zod/src/v3/benchmarks/string.ts +0 -55
  2029. package/node_modules/zod/src/v3/benchmarks/union.ts +0 -80
  2030. package/node_modules/zod/src/v3/errors.ts +0 -13
  2031. package/node_modules/zod/src/v3/external.ts +0 -6
  2032. package/node_modules/zod/src/v3/helpers/enumUtil.ts +0 -17
  2033. package/node_modules/zod/src/v3/helpers/errorUtil.ts +0 -8
  2034. package/node_modules/zod/src/v3/helpers/parseUtil.ts +0 -176
  2035. package/node_modules/zod/src/v3/helpers/partialUtil.ts +0 -34
  2036. package/node_modules/zod/src/v3/helpers/typeAliases.ts +0 -2
  2037. package/node_modules/zod/src/v3/helpers/util.ts +0 -224
  2038. package/node_modules/zod/src/v3/index.ts +0 -4
  2039. package/node_modules/zod/src/v3/locales/en.ts +0 -124
  2040. package/node_modules/zod/src/v3/standard-schema.ts +0 -113
  2041. package/node_modules/zod/src/v3/tests/Mocker.ts +0 -54
  2042. package/node_modules/zod/src/v3/tests/all-errors.test.ts +0 -157
  2043. package/node_modules/zod/src/v3/tests/anyunknown.test.ts +0 -28
  2044. package/node_modules/zod/src/v3/tests/array.test.ts +0 -71
  2045. package/node_modules/zod/src/v3/tests/async-parsing.test.ts +0 -388
  2046. package/node_modules/zod/src/v3/tests/async-refinements.test.ts +0 -46
  2047. package/node_modules/zod/src/v3/tests/base.test.ts +0 -29
  2048. package/node_modules/zod/src/v3/tests/bigint.test.ts +0 -55
  2049. package/node_modules/zod/src/v3/tests/branded.test.ts +0 -53
  2050. package/node_modules/zod/src/v3/tests/catch.test.ts +0 -220
  2051. package/node_modules/zod/src/v3/tests/coerce.test.ts +0 -133
  2052. package/node_modules/zod/src/v3/tests/complex.test.ts +0 -56
  2053. package/node_modules/zod/src/v3/tests/custom.test.ts +0 -31
  2054. package/node_modules/zod/src/v3/tests/date.test.ts +0 -32
  2055. package/node_modules/zod/src/v3/tests/deepmasking.test.ts +0 -186
  2056. package/node_modules/zod/src/v3/tests/default.test.ts +0 -112
  2057. package/node_modules/zod/src/v3/tests/description.test.ts +0 -33
  2058. package/node_modules/zod/src/v3/tests/discriminated-unions.test.ts +0 -315
  2059. package/node_modules/zod/src/v3/tests/enum.test.ts +0 -80
  2060. package/node_modules/zod/src/v3/tests/error.test.ts +0 -551
  2061. package/node_modules/zod/src/v3/tests/firstparty.test.ts +0 -87
  2062. package/node_modules/zod/src/v3/tests/firstpartyschematypes.test.ts +0 -21
  2063. package/node_modules/zod/src/v3/tests/function.test.ts +0 -257
  2064. package/node_modules/zod/src/v3/tests/generics.test.ts +0 -48
  2065. package/node_modules/zod/src/v3/tests/instanceof.test.ts +0 -37
  2066. package/node_modules/zod/src/v3/tests/intersection.test.ts +0 -110
  2067. package/node_modules/zod/src/v3/tests/language-server.source.ts +0 -76
  2068. package/node_modules/zod/src/v3/tests/language-server.test.ts +0 -207
  2069. package/node_modules/zod/src/v3/tests/literal.test.ts +0 -36
  2070. package/node_modules/zod/src/v3/tests/map.test.ts +0 -110
  2071. package/node_modules/zod/src/v3/tests/masking.test.ts +0 -4
  2072. package/node_modules/zod/src/v3/tests/mocker.test.ts +0 -19
  2073. package/node_modules/zod/src/v3/tests/nan.test.ts +0 -21
  2074. package/node_modules/zod/src/v3/tests/nativeEnum.test.ts +0 -87
  2075. package/node_modules/zod/src/v3/tests/nullable.test.ts +0 -42
  2076. package/node_modules/zod/src/v3/tests/number.test.ts +0 -176
  2077. package/node_modules/zod/src/v3/tests/object-augmentation.test.ts +0 -29
  2078. package/node_modules/zod/src/v3/tests/object-in-es5-env.test.ts +0 -29
  2079. package/node_modules/zod/src/v3/tests/object.test.ts +0 -434
  2080. package/node_modules/zod/src/v3/tests/optional.test.ts +0 -42
  2081. package/node_modules/zod/src/v3/tests/parseUtil.test.ts +0 -23
  2082. package/node_modules/zod/src/v3/tests/parser.test.ts +0 -41
  2083. package/node_modules/zod/src/v3/tests/partials.test.ts +0 -243
  2084. package/node_modules/zod/src/v3/tests/pickomit.test.ts +0 -111
  2085. package/node_modules/zod/src/v3/tests/pipeline.test.ts +0 -29
  2086. package/node_modules/zod/src/v3/tests/preprocess.test.ts +0 -186
  2087. package/node_modules/zod/src/v3/tests/primitive.test.ts +0 -440
  2088. package/node_modules/zod/src/v3/tests/promise.test.ts +0 -90
  2089. package/node_modules/zod/src/v3/tests/readonly.test.ts +0 -194
  2090. package/node_modules/zod/src/v3/tests/record.test.ts +0 -171
  2091. package/node_modules/zod/src/v3/tests/recursive.test.ts +0 -197
  2092. package/node_modules/zod/src/v3/tests/refine.test.ts +0 -313
  2093. package/node_modules/zod/src/v3/tests/safeparse.test.ts +0 -27
  2094. package/node_modules/zod/src/v3/tests/set.test.ts +0 -142
  2095. package/node_modules/zod/src/v3/tests/standard-schema.test.ts +0 -83
  2096. package/node_modules/zod/src/v3/tests/string.test.ts +0 -916
  2097. package/node_modules/zod/src/v3/tests/transformer.test.ts +0 -233
  2098. package/node_modules/zod/src/v3/tests/tuple.test.ts +0 -90
  2099. package/node_modules/zod/src/v3/tests/unions.test.ts +0 -57
  2100. package/node_modules/zod/src/v3/tests/validations.test.ts +0 -133
  2101. package/node_modules/zod/src/v3/tests/void.test.ts +0 -15
  2102. package/node_modules/zod/src/v3/types.ts +0 -5136
  2103. package/node_modules/zod/src/v4/classic/checks.ts +0 -30
  2104. package/node_modules/zod/src/v4/classic/coerce.ts +0 -27
  2105. package/node_modules/zod/src/v4/classic/compat.ts +0 -66
  2106. package/node_modules/zod/src/v4/classic/errors.ts +0 -75
  2107. package/node_modules/zod/src/v4/classic/external.ts +0 -50
  2108. package/node_modules/zod/src/v4/classic/index.ts +0 -5
  2109. package/node_modules/zod/src/v4/classic/iso.ts +0 -90
  2110. package/node_modules/zod/src/v4/classic/parse.ts +0 -33
  2111. package/node_modules/zod/src/v4/classic/schemas.ts +0 -2054
  2112. package/node_modules/zod/src/v4/classic/tests/anyunknown.test.ts +0 -26
  2113. package/node_modules/zod/src/v4/classic/tests/array.test.ts +0 -264
  2114. package/node_modules/zod/src/v4/classic/tests/assignability.test.ts +0 -210
  2115. package/node_modules/zod/src/v4/classic/tests/async-parsing.test.ts +0 -381
  2116. package/node_modules/zod/src/v4/classic/tests/async-refinements.test.ts +0 -68
  2117. package/node_modules/zod/src/v4/classic/tests/base.test.ts +0 -7
  2118. package/node_modules/zod/src/v4/classic/tests/bigint.test.ts +0 -54
  2119. package/node_modules/zod/src/v4/classic/tests/brand.test.ts +0 -63
  2120. package/node_modules/zod/src/v4/classic/tests/catch.test.ts +0 -252
  2121. package/node_modules/zod/src/v4/classic/tests/coalesce.test.ts +0 -20
  2122. package/node_modules/zod/src/v4/classic/tests/coerce.test.ts +0 -160
  2123. package/node_modules/zod/src/v4/classic/tests/continuability.test.ts +0 -352
  2124. package/node_modules/zod/src/v4/classic/tests/custom.test.ts +0 -40
  2125. package/node_modules/zod/src/v4/classic/tests/date.test.ts +0 -31
  2126. package/node_modules/zod/src/v4/classic/tests/datetime.test.ts +0 -296
  2127. package/node_modules/zod/src/v4/classic/tests/default.test.ts +0 -313
  2128. package/node_modules/zod/src/v4/classic/tests/description.test.ts +0 -32
  2129. package/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +0 -619
  2130. package/node_modules/zod/src/v4/classic/tests/enum.test.ts +0 -285
  2131. package/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +0 -527
  2132. package/node_modules/zod/src/v4/classic/tests/error.test.ts +0 -711
  2133. package/node_modules/zod/src/v4/classic/tests/file.test.ts +0 -91
  2134. package/node_modules/zod/src/v4/classic/tests/firstparty.test.ts +0 -175
  2135. package/node_modules/zod/src/v4/classic/tests/function.test.ts +0 -268
  2136. package/node_modules/zod/src/v4/classic/tests/generics.test.ts +0 -72
  2137. package/node_modules/zod/src/v4/classic/tests/index.test.ts +0 -829
  2138. package/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +0 -34
  2139. package/node_modules/zod/src/v4/classic/tests/intersection.test.ts +0 -171
  2140. package/node_modules/zod/src/v4/classic/tests/json.test.ts +0 -108
  2141. package/node_modules/zod/src/v4/classic/tests/lazy.test.ts +0 -227
  2142. package/node_modules/zod/src/v4/classic/tests/literal.test.ts +0 -92
  2143. package/node_modules/zod/src/v4/classic/tests/map.test.ts +0 -196
  2144. package/node_modules/zod/src/v4/classic/tests/nan.test.ts +0 -21
  2145. package/node_modules/zod/src/v4/classic/tests/nested-refine.test.ts +0 -168
  2146. package/node_modules/zod/src/v4/classic/tests/nonoptional.test.ts +0 -86
  2147. package/node_modules/zod/src/v4/classic/tests/nullable.test.ts +0 -22
  2148. package/node_modules/zod/src/v4/classic/tests/number.test.ts +0 -247
  2149. package/node_modules/zod/src/v4/classic/tests/object.test.ts +0 -563
  2150. package/node_modules/zod/src/v4/classic/tests/optional.test.ts +0 -123
  2151. package/node_modules/zod/src/v4/classic/tests/partial.test.ts +0 -147
  2152. package/node_modules/zod/src/v4/classic/tests/pickomit.test.ts +0 -127
  2153. package/node_modules/zod/src/v4/classic/tests/pipe.test.ts +0 -81
  2154. package/node_modules/zod/src/v4/classic/tests/prefault.test.ts +0 -37
  2155. package/node_modules/zod/src/v4/classic/tests/preprocess.test.ts +0 -298
  2156. package/node_modules/zod/src/v4/classic/tests/primitive.test.ts +0 -175
  2157. package/node_modules/zod/src/v4/classic/tests/promise.test.ts +0 -81
  2158. package/node_modules/zod/src/v4/classic/tests/prototypes.test.ts +0 -23
  2159. package/node_modules/zod/src/v4/classic/tests/readonly.test.ts +0 -252
  2160. package/node_modules/zod/src/v4/classic/tests/record.test.ts +0 -342
  2161. package/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +0 -356
  2162. package/node_modules/zod/src/v4/classic/tests/refine.test.ts +0 -532
  2163. package/node_modules/zod/src/v4/classic/tests/registries.test.ts +0 -204
  2164. package/node_modules/zod/src/v4/classic/tests/set.test.ts +0 -179
  2165. package/node_modules/zod/src/v4/classic/tests/standard-schema.test.ts +0 -57
  2166. package/node_modules/zod/src/v4/classic/tests/string-formats.test.ts +0 -109
  2167. package/node_modules/zod/src/v4/classic/tests/string.test.ts +0 -881
  2168. package/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +0 -66
  2169. package/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +0 -758
  2170. package/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +0 -2314
  2171. package/node_modules/zod/src/v4/classic/tests/transform.test.ts +0 -250
  2172. package/node_modules/zod/src/v4/classic/tests/tuple.test.ts +0 -163
  2173. package/node_modules/zod/src/v4/classic/tests/union.test.ts +0 -94
  2174. package/node_modules/zod/src/v4/classic/tests/validations.test.ts +0 -283
  2175. package/node_modules/zod/src/v4/classic/tests/void.test.ts +0 -12
  2176. package/node_modules/zod/src/v4/core/api.ts +0 -1594
  2177. package/node_modules/zod/src/v4/core/checks.ts +0 -1283
  2178. package/node_modules/zod/src/v4/core/config.ts +0 -15
  2179. package/node_modules/zod/src/v4/core/core.ts +0 -134
  2180. package/node_modules/zod/src/v4/core/doc.ts +0 -44
  2181. package/node_modules/zod/src/v4/core/errors.ts +0 -424
  2182. package/node_modules/zod/src/v4/core/function.ts +0 -176
  2183. package/node_modules/zod/src/v4/core/index.ts +0 -15
  2184. package/node_modules/zod/src/v4/core/json-schema.ts +0 -143
  2185. package/node_modules/zod/src/v4/core/parse.ts +0 -94
  2186. package/node_modules/zod/src/v4/core/regexes.ts +0 -135
  2187. package/node_modules/zod/src/v4/core/registries.ts +0 -96
  2188. package/node_modules/zod/src/v4/core/schemas.ts +0 -3842
  2189. package/node_modules/zod/src/v4/core/standard-schema.ts +0 -64
  2190. package/node_modules/zod/src/v4/core/tests/index.test.ts +0 -46
  2191. package/node_modules/zod/src/v4/core/tests/locales/be.test.ts +0 -124
  2192. package/node_modules/zod/src/v4/core/tests/locales/en.test.ts +0 -22
  2193. package/node_modules/zod/src/v4/core/tests/locales/ru.test.ts +0 -128
  2194. package/node_modules/zod/src/v4/core/tests/locales/tr.test.ts +0 -69
  2195. package/node_modules/zod/src/v4/core/to-json-schema.ts +0 -977
  2196. package/node_modules/zod/src/v4/core/util.ts +0 -775
  2197. package/node_modules/zod/src/v4/core/versions.ts +0 -5
  2198. package/node_modules/zod/src/v4/core/zsf.ts +0 -323
  2199. package/node_modules/zod/src/v4/index.ts +0 -4
  2200. package/node_modules/zod/src/v4/locales/ar.ts +0 -125
  2201. package/node_modules/zod/src/v4/locales/az.ts +0 -121
  2202. package/node_modules/zod/src/v4/locales/be.ts +0 -184
  2203. package/node_modules/zod/src/v4/locales/ca.ts +0 -127
  2204. package/node_modules/zod/src/v4/locales/cs.ts +0 -142
  2205. package/node_modules/zod/src/v4/locales/de.ts +0 -124
  2206. package/node_modules/zod/src/v4/locales/en.ts +0 -127
  2207. package/node_modules/zod/src/v4/locales/eo.ts +0 -125
  2208. package/node_modules/zod/src/v4/locales/es.ts +0 -125
  2209. package/node_modules/zod/src/v4/locales/fa.ts +0 -134
  2210. package/node_modules/zod/src/v4/locales/fi.ts +0 -131
  2211. package/node_modules/zod/src/v4/locales/fr-CA.ts +0 -126
  2212. package/node_modules/zod/src/v4/locales/fr.ts +0 -124
  2213. package/node_modules/zod/src/v4/locales/he.ts +0 -125
  2214. package/node_modules/zod/src/v4/locales/hu.ts +0 -126
  2215. package/node_modules/zod/src/v4/locales/id.ts +0 -125
  2216. package/node_modules/zod/src/v4/locales/index.ts +0 -39
  2217. package/node_modules/zod/src/v4/locales/it.ts +0 -125
  2218. package/node_modules/zod/src/v4/locales/ja.ts +0 -122
  2219. package/node_modules/zod/src/v4/locales/kh.ts +0 -126
  2220. package/node_modules/zod/src/v4/locales/ko.ts +0 -131
  2221. package/node_modules/zod/src/v4/locales/mk.ts +0 -127
  2222. package/node_modules/zod/src/v4/locales/ms.ts +0 -124
  2223. package/node_modules/zod/src/v4/locales/nl.ts +0 -126
  2224. package/node_modules/zod/src/v4/locales/no.ts +0 -124
  2225. package/node_modules/zod/src/v4/locales/ota.ts +0 -125
  2226. package/node_modules/zod/src/v4/locales/pl.ts +0 -126
  2227. package/node_modules/zod/src/v4/locales/ps.ts +0 -133
  2228. package/node_modules/zod/src/v4/locales/pt.ts +0 -123
  2229. package/node_modules/zod/src/v4/locales/ru.ts +0 -184
  2230. package/node_modules/zod/src/v4/locales/sl.ts +0 -126
  2231. package/node_modules/zod/src/v4/locales/sv.ts +0 -127
  2232. package/node_modules/zod/src/v4/locales/ta.ts +0 -125
  2233. package/node_modules/zod/src/v4/locales/th.ts +0 -126
  2234. package/node_modules/zod/src/v4/locales/tr.ts +0 -121
  2235. package/node_modules/zod/src/v4/locales/ua.ts +0 -126
  2236. package/node_modules/zod/src/v4/locales/ur.ts +0 -126
  2237. package/node_modules/zod/src/v4/locales/vi.ts +0 -125
  2238. package/node_modules/zod/src/v4/locales/zh-CN.ts +0 -123
  2239. package/node_modules/zod/src/v4/locales/zh-TW.ts +0 -125
  2240. package/node_modules/zod/src/v4/mini/checks.ts +0 -32
  2241. package/node_modules/zod/src/v4/mini/coerce.ts +0 -22
  2242. package/node_modules/zod/src/v4/mini/external.ts +0 -40
  2243. package/node_modules/zod/src/v4/mini/index.ts +0 -3
  2244. package/node_modules/zod/src/v4/mini/iso.ts +0 -62
  2245. package/node_modules/zod/src/v4/mini/parse.ts +0 -1
  2246. package/node_modules/zod/src/v4/mini/schemas.ts +0 -1579
  2247. package/node_modules/zod/src/v4/mini/tests/assignability.test.ts +0 -129
  2248. package/node_modules/zod/src/v4/mini/tests/brand.test.ts +0 -51
  2249. package/node_modules/zod/src/v4/mini/tests/checks.test.ts +0 -144
  2250. package/node_modules/zod/src/v4/mini/tests/computed.test.ts +0 -36
  2251. package/node_modules/zod/src/v4/mini/tests/error.test.ts +0 -22
  2252. package/node_modules/zod/src/v4/mini/tests/functions.test.ts +0 -43
  2253. package/node_modules/zod/src/v4/mini/tests/index.test.ts +0 -871
  2254. package/node_modules/zod/src/v4/mini/tests/number.test.ts +0 -95
  2255. package/node_modules/zod/src/v4/mini/tests/object.test.ts +0 -185
  2256. package/node_modules/zod/src/v4/mini/tests/prototypes.test.ts +0 -43
  2257. package/node_modules/zod/src/v4/mini/tests/recursive-types.test.ts +0 -275
  2258. package/node_modules/zod/src/v4/mini/tests/string.test.ts +0 -299
  2259. package/node_modules/zod/src/v4-mini/index.ts +0 -1
  2260. package/node_modules/zod/v3/ZodError.cjs +0 -138
  2261. package/node_modules/zod/v3/ZodError.d.cts +0 -164
  2262. package/node_modules/zod/v3/ZodError.d.ts +0 -164
  2263. package/node_modules/zod/v3/ZodError.js +0 -133
  2264. package/node_modules/zod/v3/errors.cjs +0 -17
  2265. package/node_modules/zod/v3/errors.d.cts +0 -5
  2266. package/node_modules/zod/v3/errors.d.ts +0 -5
  2267. package/node_modules/zod/v3/errors.js +0 -9
  2268. package/node_modules/zod/v3/external.cjs +0 -22
  2269. package/node_modules/zod/v3/external.d.cts +0 -6
  2270. package/node_modules/zod/v3/external.d.ts +0 -6
  2271. package/node_modules/zod/v3/external.js +0 -6
  2272. package/node_modules/zod/v3/helpers/enumUtil.cjs +0 -2
  2273. package/node_modules/zod/v3/helpers/enumUtil.d.cts +0 -8
  2274. package/node_modules/zod/v3/helpers/enumUtil.d.ts +0 -8
  2275. package/node_modules/zod/v3/helpers/enumUtil.js +0 -1
  2276. package/node_modules/zod/v3/helpers/errorUtil.cjs +0 -9
  2277. package/node_modules/zod/v3/helpers/errorUtil.d.cts +0 -9
  2278. package/node_modules/zod/v3/helpers/errorUtil.d.ts +0 -9
  2279. package/node_modules/zod/v3/helpers/errorUtil.js +0 -6
  2280. package/node_modules/zod/v3/helpers/parseUtil.cjs +0 -124
  2281. package/node_modules/zod/v3/helpers/parseUtil.d.cts +0 -78
  2282. package/node_modules/zod/v3/helpers/parseUtil.d.ts +0 -78
  2283. package/node_modules/zod/v3/helpers/parseUtil.js +0 -109
  2284. package/node_modules/zod/v3/helpers/partialUtil.cjs +0 -2
  2285. package/node_modules/zod/v3/helpers/partialUtil.d.cts +0 -8
  2286. package/node_modules/zod/v3/helpers/partialUtil.d.ts +0 -8
  2287. package/node_modules/zod/v3/helpers/partialUtil.js +0 -1
  2288. package/node_modules/zod/v3/helpers/typeAliases.cjs +0 -2
  2289. package/node_modules/zod/v3/helpers/typeAliases.d.cts +0 -2
  2290. package/node_modules/zod/v3/helpers/typeAliases.d.ts +0 -2
  2291. package/node_modules/zod/v3/helpers/typeAliases.js +0 -1
  2292. package/node_modules/zod/v3/helpers/util.cjs +0 -137
  2293. package/node_modules/zod/v3/helpers/util.d.cts +0 -85
  2294. package/node_modules/zod/v3/helpers/util.d.ts +0 -85
  2295. package/node_modules/zod/v3/helpers/util.js +0 -133
  2296. package/node_modules/zod/v3/index.cjs +0 -33
  2297. package/node_modules/zod/v3/index.d.cts +0 -4
  2298. package/node_modules/zod/v3/index.d.ts +0 -4
  2299. package/node_modules/zod/v3/index.js +0 -4
  2300. package/node_modules/zod/v3/locales/en.cjs +0 -111
  2301. package/node_modules/zod/v3/locales/en.d.cts +0 -3
  2302. package/node_modules/zod/v3/locales/en.d.ts +0 -3
  2303. package/node_modules/zod/v3/locales/en.js +0 -109
  2304. package/node_modules/zod/v3/standard-schema.cjs +0 -2
  2305. package/node_modules/zod/v3/standard-schema.d.cts +0 -102
  2306. package/node_modules/zod/v3/standard-schema.d.ts +0 -102
  2307. package/node_modules/zod/v3/standard-schema.js +0 -1
  2308. package/node_modules/zod/v3/types.cjs +0 -3775
  2309. package/node_modules/zod/v3/types.d.cts +0 -1031
  2310. package/node_modules/zod/v3/types.d.ts +0 -1031
  2311. package/node_modules/zod/v3/types.js +0 -3693
  2312. package/node_modules/zod/v4/classic/checks.cjs +0 -32
  2313. package/node_modules/zod/v4/classic/checks.d.cts +0 -1
  2314. package/node_modules/zod/v4/classic/checks.d.ts +0 -1
  2315. package/node_modules/zod/v4/classic/checks.js +0 -1
  2316. package/node_modules/zod/v4/classic/coerce.cjs +0 -47
  2317. package/node_modules/zod/v4/classic/coerce.d.cts +0 -17
  2318. package/node_modules/zod/v4/classic/coerce.d.ts +0 -17
  2319. package/node_modules/zod/v4/classic/coerce.js +0 -17
  2320. package/node_modules/zod/v4/classic/compat.cjs +0 -57
  2321. package/node_modules/zod/v4/classic/compat.d.cts +0 -46
  2322. package/node_modules/zod/v4/classic/compat.d.ts +0 -46
  2323. package/node_modules/zod/v4/classic/compat.js +0 -27
  2324. package/node_modules/zod/v4/classic/errors.cjs +0 -67
  2325. package/node_modules/zod/v4/classic/errors.d.cts +0 -30
  2326. package/node_modules/zod/v4/classic/errors.d.ts +0 -30
  2327. package/node_modules/zod/v4/classic/errors.js +0 -41
  2328. package/node_modules/zod/v4/classic/external.cjs +0 -70
  2329. package/node_modules/zod/v4/classic/external.d.cts +0 -13
  2330. package/node_modules/zod/v4/classic/external.d.ts +0 -13
  2331. package/node_modules/zod/v4/classic/external.js +0 -18
  2332. package/node_modules/zod/v4/classic/index.cjs +0 -33
  2333. package/node_modules/zod/v4/classic/index.d.cts +0 -4
  2334. package/node_modules/zod/v4/classic/index.d.ts +0 -4
  2335. package/node_modules/zod/v4/classic/index.js +0 -4
  2336. package/node_modules/zod/v4/classic/iso.cjs +0 -60
  2337. package/node_modules/zod/v4/classic/iso.d.cts +0 -22
  2338. package/node_modules/zod/v4/classic/iso.d.ts +0 -22
  2339. package/node_modules/zod/v4/classic/iso.js +0 -30
  2340. package/node_modules/zod/v4/classic/parse.cjs +0 -32
  2341. package/node_modules/zod/v4/classic/parse.d.cts +0 -23
  2342. package/node_modules/zod/v4/classic/parse.d.ts +0 -23
  2343. package/node_modules/zod/v4/classic/parse.js +0 -6
  2344. package/node_modules/zod/v4/classic/schemas.cjs +0 -1109
  2345. package/node_modules/zod/v4/classic/schemas.d.cts +0 -630
  2346. package/node_modules/zod/v4/classic/schemas.d.ts +0 -630
  2347. package/node_modules/zod/v4/classic/schemas.js +0 -1006
  2348. package/node_modules/zod/v4/core/api.cjs +0 -1039
  2349. package/node_modules/zod/v4/core/api.d.cts +0 -284
  2350. package/node_modules/zod/v4/core/api.d.ts +0 -284
  2351. package/node_modules/zod/v4/core/api.js +0 -906
  2352. package/node_modules/zod/v4/core/checks.cjs +0 -591
  2353. package/node_modules/zod/v4/core/checks.d.cts +0 -278
  2354. package/node_modules/zod/v4/core/checks.d.ts +0 -278
  2355. package/node_modules/zod/v4/core/checks.js +0 -565
  2356. package/node_modules/zod/v4/core/core.cjs +0 -67
  2357. package/node_modules/zod/v4/core/core.d.cts +0 -49
  2358. package/node_modules/zod/v4/core/core.d.ts +0 -49
  2359. package/node_modules/zod/v4/core/core.js +0 -61
  2360. package/node_modules/zod/v4/core/doc.cjs +0 -39
  2361. package/node_modules/zod/v4/core/doc.d.cts +0 -14
  2362. package/node_modules/zod/v4/core/doc.d.ts +0 -14
  2363. package/node_modules/zod/v4/core/doc.js +0 -35
  2364. package/node_modules/zod/v4/core/errors.cjs +0 -226
  2365. package/node_modules/zod/v4/core/errors.d.cts +0 -208
  2366. package/node_modules/zod/v4/core/errors.d.ts +0 -208
  2367. package/node_modules/zod/v4/core/errors.js +0 -195
  2368. package/node_modules/zod/v4/core/function.cjs +0 -102
  2369. package/node_modules/zod/v4/core/function.d.cts +0 -52
  2370. package/node_modules/zod/v4/core/function.d.ts +0 -52
  2371. package/node_modules/zod/v4/core/function.js +0 -75
  2372. package/node_modules/zod/v4/core/index.cjs +0 -44
  2373. package/node_modules/zod/v4/core/index.d.cts +0 -15
  2374. package/node_modules/zod/v4/core/index.d.ts +0 -15
  2375. package/node_modules/zod/v4/core/index.js +0 -15
  2376. package/node_modules/zod/v4/core/json-schema.cjs +0 -2
  2377. package/node_modules/zod/v4/core/json-schema.d.cts +0 -87
  2378. package/node_modules/zod/v4/core/json-schema.d.ts +0 -87
  2379. package/node_modules/zod/v4/core/json-schema.js +0 -1
  2380. package/node_modules/zod/v4/core/parse.cjs +0 -87
  2381. package/node_modules/zod/v4/core/parse.d.cts +0 -25
  2382. package/node_modules/zod/v4/core/parse.d.ts +0 -25
  2383. package/node_modules/zod/v4/core/parse.js +0 -57
  2384. package/node_modules/zod/v4/core/regexes.cjs +0 -103
  2385. package/node_modules/zod/v4/core/regexes.d.cts +0 -62
  2386. package/node_modules/zod/v4/core/regexes.d.ts +0 -62
  2387. package/node_modules/zod/v4/core/regexes.js +0 -95
  2388. package/node_modules/zod/v4/core/registries.cjs +0 -56
  2389. package/node_modules/zod/v4/core/registries.d.cts +0 -35
  2390. package/node_modules/zod/v4/core/registries.d.ts +0 -35
  2391. package/node_modules/zod/v4/core/registries.js +0 -51
  2392. package/node_modules/zod/v4/core/schemas.cjs +0 -1748
  2393. package/node_modules/zod/v4/core/schemas.d.cts +0 -1041
  2394. package/node_modules/zod/v4/core/schemas.d.ts +0 -1041
  2395. package/node_modules/zod/v4/core/schemas.js +0 -1717
  2396. package/node_modules/zod/v4/core/standard-schema.cjs +0 -2
  2397. package/node_modules/zod/v4/core/standard-schema.d.cts +0 -55
  2398. package/node_modules/zod/v4/core/standard-schema.d.ts +0 -55
  2399. package/node_modules/zod/v4/core/standard-schema.js +0 -1
  2400. package/node_modules/zod/v4/core/to-json-schema.cjs +0 -854
  2401. package/node_modules/zod/v4/core/to-json-schema.d.cts +0 -88
  2402. package/node_modules/zod/v4/core/to-json-schema.d.ts +0 -88
  2403. package/node_modules/zod/v4/core/to-json-schema.js +0 -849
  2404. package/node_modules/zod/v4/core/util.cjs +0 -539
  2405. package/node_modules/zod/v4/core/util.d.cts +0 -183
  2406. package/node_modules/zod/v4/core/util.d.ts +0 -183
  2407. package/node_modules/zod/v4/core/util.js +0 -493
  2408. package/node_modules/zod/v4/core/versions.cjs +0 -8
  2409. package/node_modules/zod/v4/core/versions.d.cts +0 -5
  2410. package/node_modules/zod/v4/core/versions.d.ts +0 -5
  2411. package/node_modules/zod/v4/core/versions.js +0 -5
  2412. package/node_modules/zod/v4/index.cjs +0 -22
  2413. package/node_modules/zod/v4/index.d.cts +0 -3
  2414. package/node_modules/zod/v4/index.d.ts +0 -3
  2415. package/node_modules/zod/v4/index.js +0 -3
  2416. package/node_modules/zod/v4/locales/ar.cjs +0 -142
  2417. package/node_modules/zod/v4/locales/ar.d.cts +0 -4
  2418. package/node_modules/zod/v4/locales/ar.d.ts +0 -4
  2419. package/node_modules/zod/v4/locales/ar.js +0 -116
  2420. package/node_modules/zod/v4/locales/az.cjs +0 -141
  2421. package/node_modules/zod/v4/locales/az.d.cts +0 -4
  2422. package/node_modules/zod/v4/locales/az.d.ts +0 -4
  2423. package/node_modules/zod/v4/locales/az.js +0 -115
  2424. package/node_modules/zod/v4/locales/be.cjs +0 -190
  2425. package/node_modules/zod/v4/locales/be.d.cts +0 -4
  2426. package/node_modules/zod/v4/locales/be.d.ts +0 -4
  2427. package/node_modules/zod/v4/locales/be.js +0 -164
  2428. package/node_modules/zod/v4/locales/ca.cjs +0 -144
  2429. package/node_modules/zod/v4/locales/ca.d.cts +0 -4
  2430. package/node_modules/zod/v4/locales/ca.d.ts +0 -4
  2431. package/node_modules/zod/v4/locales/ca.js +0 -118
  2432. package/node_modules/zod/v4/locales/cs.cjs +0 -161
  2433. package/node_modules/zod/v4/locales/cs.d.cts +0 -4
  2434. package/node_modules/zod/v4/locales/cs.d.ts +0 -4
  2435. package/node_modules/zod/v4/locales/cs.js +0 -135
  2436. package/node_modules/zod/v4/locales/de.cjs +0 -142
  2437. package/node_modules/zod/v4/locales/de.d.cts +0 -4
  2438. package/node_modules/zod/v4/locales/de.d.ts +0 -4
  2439. package/node_modules/zod/v4/locales/de.js +0 -116
  2440. package/node_modules/zod/v4/locales/en.cjs +0 -145
  2441. package/node_modules/zod/v4/locales/en.d.cts +0 -5
  2442. package/node_modules/zod/v4/locales/en.d.ts +0 -5
  2443. package/node_modules/zod/v4/locales/en.js +0 -117
  2444. package/node_modules/zod/v4/locales/eo.cjs +0 -144
  2445. package/node_modules/zod/v4/locales/eo.d.cts +0 -5
  2446. package/node_modules/zod/v4/locales/eo.d.ts +0 -5
  2447. package/node_modules/zod/v4/locales/eo.js +0 -116
  2448. package/node_modules/zod/v4/locales/es.cjs +0 -143
  2449. package/node_modules/zod/v4/locales/es.d.cts +0 -4
  2450. package/node_modules/zod/v4/locales/es.d.ts +0 -4
  2451. package/node_modules/zod/v4/locales/es.js +0 -117
  2452. package/node_modules/zod/v4/locales/fa.cjs +0 -148
  2453. package/node_modules/zod/v4/locales/fa.d.cts +0 -4
  2454. package/node_modules/zod/v4/locales/fa.d.ts +0 -4
  2455. package/node_modules/zod/v4/locales/fa.js +0 -122
  2456. package/node_modules/zod/v4/locales/fi.cjs +0 -148
  2457. package/node_modules/zod/v4/locales/fi.d.cts +0 -4
  2458. package/node_modules/zod/v4/locales/fi.d.ts +0 -4
  2459. package/node_modules/zod/v4/locales/fi.js +0 -122
  2460. package/node_modules/zod/v4/locales/fr-CA.cjs +0 -143
  2461. package/node_modules/zod/v4/locales/fr-CA.d.cts +0 -4
  2462. package/node_modules/zod/v4/locales/fr-CA.d.ts +0 -4
  2463. package/node_modules/zod/v4/locales/fr-CA.js +0 -117
  2464. package/node_modules/zod/v4/locales/fr.cjs +0 -142
  2465. package/node_modules/zod/v4/locales/fr.d.cts +0 -4
  2466. package/node_modules/zod/v4/locales/fr.d.ts +0 -4
  2467. package/node_modules/zod/v4/locales/fr.js +0 -116
  2468. package/node_modules/zod/v4/locales/he.cjs +0 -143
  2469. package/node_modules/zod/v4/locales/he.d.cts +0 -4
  2470. package/node_modules/zod/v4/locales/he.d.ts +0 -4
  2471. package/node_modules/zod/v4/locales/he.js +0 -117
  2472. package/node_modules/zod/v4/locales/hu.cjs +0 -143
  2473. package/node_modules/zod/v4/locales/hu.d.cts +0 -4
  2474. package/node_modules/zod/v4/locales/hu.d.ts +0 -4
  2475. package/node_modules/zod/v4/locales/hu.js +0 -117
  2476. package/node_modules/zod/v4/locales/id.cjs +0 -142
  2477. package/node_modules/zod/v4/locales/id.d.cts +0 -4
  2478. package/node_modules/zod/v4/locales/id.d.ts +0 -4
  2479. package/node_modules/zod/v4/locales/id.js +0 -116
  2480. package/node_modules/zod/v4/locales/index.cjs +0 -84
  2481. package/node_modules/zod/v4/locales/index.d.cts +0 -39
  2482. package/node_modules/zod/v4/locales/index.d.ts +0 -39
  2483. package/node_modules/zod/v4/locales/index.js +0 -39
  2484. package/node_modules/zod/v4/locales/it.cjs +0 -143
  2485. package/node_modules/zod/v4/locales/it.d.cts +0 -4
  2486. package/node_modules/zod/v4/locales/it.d.ts +0 -4
  2487. package/node_modules/zod/v4/locales/it.js +0 -117
  2488. package/node_modules/zod/v4/locales/ja.cjs +0 -141
  2489. package/node_modules/zod/v4/locales/ja.d.cts +0 -4
  2490. package/node_modules/zod/v4/locales/ja.d.ts +0 -4
  2491. package/node_modules/zod/v4/locales/ja.js +0 -115
  2492. package/node_modules/zod/v4/locales/kh.cjs +0 -143
  2493. package/node_modules/zod/v4/locales/kh.d.cts +0 -4
  2494. package/node_modules/zod/v4/locales/kh.d.ts +0 -4
  2495. package/node_modules/zod/v4/locales/kh.js +0 -117
  2496. package/node_modules/zod/v4/locales/ko.cjs +0 -147
  2497. package/node_modules/zod/v4/locales/ko.d.cts +0 -4
  2498. package/node_modules/zod/v4/locales/ko.d.ts +0 -4
  2499. package/node_modules/zod/v4/locales/ko.js +0 -121
  2500. package/node_modules/zod/v4/locales/mk.cjs +0 -144
  2501. package/node_modules/zod/v4/locales/mk.d.cts +0 -4
  2502. package/node_modules/zod/v4/locales/mk.d.ts +0 -4
  2503. package/node_modules/zod/v4/locales/mk.js +0 -118
  2504. package/node_modules/zod/v4/locales/ms.cjs +0 -142
  2505. package/node_modules/zod/v4/locales/ms.d.cts +0 -4
  2506. package/node_modules/zod/v4/locales/ms.d.ts +0 -4
  2507. package/node_modules/zod/v4/locales/ms.js +0 -116
  2508. package/node_modules/zod/v4/locales/nl.cjs +0 -143
  2509. package/node_modules/zod/v4/locales/nl.d.cts +0 -4
  2510. package/node_modules/zod/v4/locales/nl.d.ts +0 -4
  2511. package/node_modules/zod/v4/locales/nl.js +0 -117
  2512. package/node_modules/zod/v4/locales/no.cjs +0 -142
  2513. package/node_modules/zod/v4/locales/no.d.cts +0 -4
  2514. package/node_modules/zod/v4/locales/no.d.ts +0 -4
  2515. package/node_modules/zod/v4/locales/no.js +0 -116
  2516. package/node_modules/zod/v4/locales/ota.cjs +0 -143
  2517. package/node_modules/zod/v4/locales/ota.d.cts +0 -4
  2518. package/node_modules/zod/v4/locales/ota.d.ts +0 -4
  2519. package/node_modules/zod/v4/locales/ota.js +0 -117
  2520. package/node_modules/zod/v4/locales/pl.cjs +0 -143
  2521. package/node_modules/zod/v4/locales/pl.d.cts +0 -4
  2522. package/node_modules/zod/v4/locales/pl.d.ts +0 -4
  2523. package/node_modules/zod/v4/locales/pl.js +0 -117
  2524. package/node_modules/zod/v4/locales/ps.cjs +0 -148
  2525. package/node_modules/zod/v4/locales/ps.d.cts +0 -4
  2526. package/node_modules/zod/v4/locales/ps.d.ts +0 -4
  2527. package/node_modules/zod/v4/locales/ps.js +0 -122
  2528. package/node_modules/zod/v4/locales/pt.cjs +0 -142
  2529. package/node_modules/zod/v4/locales/pt.d.cts +0 -4
  2530. package/node_modules/zod/v4/locales/pt.d.ts +0 -4
  2531. package/node_modules/zod/v4/locales/pt.js +0 -116
  2532. package/node_modules/zod/v4/locales/ru.cjs +0 -190
  2533. package/node_modules/zod/v4/locales/ru.d.cts +0 -4
  2534. package/node_modules/zod/v4/locales/ru.d.ts +0 -4
  2535. package/node_modules/zod/v4/locales/ru.js +0 -164
  2536. package/node_modules/zod/v4/locales/sl.cjs +0 -143
  2537. package/node_modules/zod/v4/locales/sl.d.cts +0 -4
  2538. package/node_modules/zod/v4/locales/sl.d.ts +0 -4
  2539. package/node_modules/zod/v4/locales/sl.js +0 -117
  2540. package/node_modules/zod/v4/locales/sv.cjs +0 -144
  2541. package/node_modules/zod/v4/locales/sv.d.cts +0 -4
  2542. package/node_modules/zod/v4/locales/sv.d.ts +0 -4
  2543. package/node_modules/zod/v4/locales/sv.js +0 -118
  2544. package/node_modules/zod/v4/locales/ta.cjs +0 -143
  2545. package/node_modules/zod/v4/locales/ta.d.cts +0 -4
  2546. package/node_modules/zod/v4/locales/ta.d.ts +0 -4
  2547. package/node_modules/zod/v4/locales/ta.js +0 -117
  2548. package/node_modules/zod/v4/locales/th.cjs +0 -143
  2549. package/node_modules/zod/v4/locales/th.d.cts +0 -4
  2550. package/node_modules/zod/v4/locales/th.d.ts +0 -4
  2551. package/node_modules/zod/v4/locales/th.js +0 -117
  2552. package/node_modules/zod/v4/locales/tr.cjs +0 -143
  2553. package/node_modules/zod/v4/locales/tr.d.cts +0 -5
  2554. package/node_modules/zod/v4/locales/tr.d.ts +0 -5
  2555. package/node_modules/zod/v4/locales/tr.js +0 -115
  2556. package/node_modules/zod/v4/locales/ua.cjs +0 -143
  2557. package/node_modules/zod/v4/locales/ua.d.cts +0 -4
  2558. package/node_modules/zod/v4/locales/ua.d.ts +0 -4
  2559. package/node_modules/zod/v4/locales/ua.js +0 -117
  2560. package/node_modules/zod/v4/locales/ur.cjs +0 -143
  2561. package/node_modules/zod/v4/locales/ur.d.cts +0 -4
  2562. package/node_modules/zod/v4/locales/ur.d.ts +0 -4
  2563. package/node_modules/zod/v4/locales/ur.js +0 -117
  2564. package/node_modules/zod/v4/locales/vi.cjs +0 -142
  2565. package/node_modules/zod/v4/locales/vi.d.cts +0 -4
  2566. package/node_modules/zod/v4/locales/vi.d.ts +0 -4
  2567. package/node_modules/zod/v4/locales/vi.js +0 -116
  2568. package/node_modules/zod/v4/locales/zh-CN.cjs +0 -142
  2569. package/node_modules/zod/v4/locales/zh-CN.d.cts +0 -4
  2570. package/node_modules/zod/v4/locales/zh-CN.d.ts +0 -4
  2571. package/node_modules/zod/v4/locales/zh-CN.js +0 -116
  2572. package/node_modules/zod/v4/locales/zh-TW.cjs +0 -143
  2573. package/node_modules/zod/v4/locales/zh-TW.d.cts +0 -4
  2574. package/node_modules/zod/v4/locales/zh-TW.d.ts +0 -4
  2575. package/node_modules/zod/v4/locales/zh-TW.js +0 -117
  2576. package/node_modules/zod/v4/mini/checks.cjs +0 -34
  2577. package/node_modules/zod/v4/mini/checks.d.cts +0 -1
  2578. package/node_modules/zod/v4/mini/checks.d.ts +0 -1
  2579. package/node_modules/zod/v4/mini/checks.js +0 -1
  2580. package/node_modules/zod/v4/mini/coerce.cjs +0 -47
  2581. package/node_modules/zod/v4/mini/coerce.d.cts +0 -7
  2582. package/node_modules/zod/v4/mini/coerce.d.ts +0 -7
  2583. package/node_modules/zod/v4/mini/coerce.js +0 -17
  2584. package/node_modules/zod/v4/mini/external.cjs +0 -62
  2585. package/node_modules/zod/v4/mini/external.d.cts +0 -11
  2586. package/node_modules/zod/v4/mini/external.d.ts +0 -11
  2587. package/node_modules/zod/v4/mini/external.js +0 -13
  2588. package/node_modules/zod/v4/mini/index.cjs +0 -32
  2589. package/node_modules/zod/v4/mini/index.d.cts +0 -3
  2590. package/node_modules/zod/v4/mini/index.d.ts +0 -3
  2591. package/node_modules/zod/v4/mini/index.js +0 -3
  2592. package/node_modules/zod/v4/mini/iso.cjs +0 -60
  2593. package/node_modules/zod/v4/mini/iso.d.cts +0 -22
  2594. package/node_modules/zod/v4/mini/iso.d.ts +0 -22
  2595. package/node_modules/zod/v4/mini/iso.js +0 -30
  2596. package/node_modules/zod/v4/mini/parse.cjs +0 -8
  2597. package/node_modules/zod/v4/mini/parse.d.cts +0 -1
  2598. package/node_modules/zod/v4/mini/parse.d.ts +0 -1
  2599. package/node_modules/zod/v4/mini/parse.js +0 -1
  2600. package/node_modules/zod/v4/mini/schemas.cjs +0 -839
  2601. package/node_modules/zod/v4/mini/schemas.d.cts +0 -356
  2602. package/node_modules/zod/v4/mini/schemas.d.ts +0 -356
  2603. package/node_modules/zod/v4/mini/schemas.js +0 -732
  2604. package/node_modules/zod/v4-mini/index.cjs +0 -17
  2605. package/node_modules/zod/v4-mini/index.d.cts +0 -1
  2606. package/node_modules/zod/v4-mini/index.d.ts +0 -1
  2607. package/node_modules/zod/v4-mini/index.js +0 -1
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../node_modules/@isaacs/fs-minipass/src/index.ts", "../../node_modules/minipass/src/index.ts", "../../src/create.ts", "../../src/list.ts", "../../src/options.ts", "../../src/make-command.ts", "../../src/parse.ts", "../../node_modules/minizlib/src/index.ts", "../../node_modules/minizlib/src/constants.ts", "../../src/header.ts", "../../src/large-numbers.ts", "../../src/types.ts", "../../src/pax.ts", "../../src/normalize-windows-path.ts", "../../src/read-entry.ts", "../../src/warn-method.ts", "../../src/strip-trailing-slashes.ts", "../../src/pack.ts", "../../src/write-entry.ts", "../../src/mode-fix.ts", "../../src/strip-absolute-path.ts", "../../src/winchars.ts", "../../node_modules/yallist/src/index.ts", "../../src/extract.ts", "../../src/unpack.ts", "../../src/get-write-flag.ts", "../../node_modules/chownr/src/index.ts", "../../src/mkdir.ts", "../../src/cwd-error.ts", "../../src/symlink-error.ts", "../../src/path-reservations.ts", "../../src/normalize-unicode.ts", "../../src/process-umask.ts", "../../src/replace.ts", "../../src/update.ts"],
4
- "sourcesContent": ["import EE from 'events'\nimport fs from 'fs'\nimport { Minipass } from 'minipass'\n\nconst writev = fs.writev\n\nconst _autoClose = Symbol('_autoClose')\nconst _close = Symbol('_close')\nconst _ended = Symbol('_ended')\nconst _fd = Symbol('_fd')\nconst _finished = Symbol('_finished')\nconst _flags = Symbol('_flags')\nconst _flush = Symbol('_flush')\nconst _handleChunk = Symbol('_handleChunk')\nconst _makeBuf = Symbol('_makeBuf')\nconst _mode = Symbol('_mode')\nconst _needDrain = Symbol('_needDrain')\nconst _onerror = Symbol('_onerror')\nconst _onopen = Symbol('_onopen')\nconst _onread = Symbol('_onread')\nconst _onwrite = Symbol('_onwrite')\nconst _open = Symbol('_open')\nconst _path = Symbol('_path')\nconst _pos = Symbol('_pos')\nconst _queue = Symbol('_queue')\nconst _read = Symbol('_read')\nconst _readSize = Symbol('_readSize')\nconst _reading = Symbol('_reading')\nconst _remain = Symbol('_remain')\nconst _size = Symbol('_size')\nconst _write = Symbol('_write')\nconst _writing = Symbol('_writing')\nconst _defaultFlag = Symbol('_defaultFlag')\nconst _errored = Symbol('_errored')\n\nexport type ReadStreamOptions =\n Minipass.Options<Minipass.ContiguousData> & {\n fd?: number\n readSize?: number\n size?: number\n autoClose?: boolean\n }\n\nexport type ReadStreamEvents = Minipass.Events<Minipass.ContiguousData> & {\n open: [fd: number]\n}\n\nexport class ReadStream extends Minipass<\n Minipass.ContiguousData,\n Buffer,\n ReadStreamEvents\n> {\n [_errored]: boolean = false;\n [_fd]?: number;\n [_path]: string;\n [_readSize]: number;\n [_reading]: boolean = false;\n [_size]: number;\n [_remain]: number;\n [_autoClose]: boolean\n\n constructor(path: string, opt: ReadStreamOptions) {\n opt = opt || {}\n super(opt)\n\n this.readable = true\n this.writable = false\n\n if (typeof path !== 'string') {\n throw new TypeError('path must be a string')\n }\n\n this[_errored] = false\n this[_fd] = typeof opt.fd === 'number' ? opt.fd : undefined\n this[_path] = path\n this[_readSize] = opt.readSize || 16 * 1024 * 1024\n this[_reading] = false\n this[_size] = typeof opt.size === 'number' ? opt.size : Infinity\n this[_remain] = this[_size]\n this[_autoClose] =\n typeof opt.autoClose === 'boolean' ? opt.autoClose : true\n\n if (typeof this[_fd] === 'number') {\n this[_read]()\n } else {\n this[_open]()\n }\n }\n\n get fd() {\n return this[_fd]\n }\n\n get path() {\n return this[_path]\n }\n\n //@ts-ignore\n write() {\n throw new TypeError('this is a readable stream')\n }\n\n //@ts-ignore\n end() {\n throw new TypeError('this is a readable stream')\n }\n\n [_open]() {\n fs.open(this[_path], 'r', (er, fd) => this[_onopen](er, fd))\n }\n\n [_onopen](er?: NodeJS.ErrnoException | null, fd?: number) {\n if (er) {\n this[_onerror](er)\n } else {\n this[_fd] = fd\n this.emit('open', fd as number)\n this[_read]()\n }\n }\n\n [_makeBuf]() {\n return Buffer.allocUnsafe(Math.min(this[_readSize], this[_remain]))\n }\n\n [_read]() {\n if (!this[_reading]) {\n this[_reading] = true\n const buf = this[_makeBuf]()\n /* c8 ignore start */\n if (buf.length === 0) {\n return process.nextTick(() => this[_onread](null, 0, buf))\n }\n /* c8 ignore stop */\n fs.read(this[_fd] as number, buf, 0, buf.length, null, (er, br, b) =>\n this[_onread](er, br, b),\n )\n }\n }\n\n [_onread](er?: NodeJS.ErrnoException | null, br?: number, buf?: Buffer) {\n this[_reading] = false\n if (er) {\n this[_onerror](er)\n } else if (this[_handleChunk](br as number, buf as Buffer)) {\n this[_read]()\n }\n }\n\n [_close]() {\n if (this[_autoClose] && typeof this[_fd] === 'number') {\n const fd = this[_fd]\n this[_fd] = undefined\n fs.close(fd, er =>\n er ? this.emit('error', er) : this.emit('close'),\n )\n }\n }\n\n [_onerror](er: NodeJS.ErrnoException) {\n this[_reading] = true\n this[_close]()\n this.emit('error', er)\n }\n\n [_handleChunk](br: number, buf: Buffer) {\n let ret = false\n // no effect if infinite\n this[_remain] -= br\n if (br > 0) {\n ret = super.write(br < buf.length ? buf.subarray(0, br) : buf)\n }\n\n if (br === 0 || this[_remain] <= 0) {\n ret = false\n this[_close]()\n super.end()\n }\n\n return ret\n }\n\n emit<Event extends keyof ReadStreamEvents>(\n ev: Event,\n ...args: ReadStreamEvents[Event]\n ): boolean {\n switch (ev) {\n case 'prefinish':\n case 'finish':\n return false\n\n case 'drain':\n if (typeof this[_fd] === 'number') {\n this[_read]()\n }\n return false\n\n case 'error':\n if (this[_errored]) {\n return false\n }\n this[_errored] = true\n return super.emit(ev, ...args)\n\n default:\n return super.emit(ev, ...args)\n }\n }\n}\n\nexport class ReadStreamSync extends ReadStream {\n [_open]() {\n let threw = true\n try {\n this[_onopen](null, fs.openSync(this[_path], 'r'))\n threw = false\n } finally {\n if (threw) {\n this[_close]()\n }\n }\n }\n\n [_read]() {\n let threw = true\n try {\n if (!this[_reading]) {\n this[_reading] = true\n do {\n const buf = this[_makeBuf]()\n /* c8 ignore start */\n const br =\n buf.length === 0\n ? 0\n : fs.readSync(this[_fd] as number, buf, 0, buf.length, null)\n /* c8 ignore stop */\n if (!this[_handleChunk](br, buf)) {\n break\n }\n } while (true)\n this[_reading] = false\n }\n threw = false\n } finally {\n if (threw) {\n this[_close]()\n }\n }\n }\n\n [_close]() {\n if (this[_autoClose] && typeof this[_fd] === 'number') {\n const fd = this[_fd]\n this[_fd] = undefined\n fs.closeSync(fd)\n this.emit('close')\n }\n }\n}\n\nexport type WriteStreamOptions = {\n fd?: number\n autoClose?: boolean\n mode?: number\n captureRejections?: boolean\n start?: number\n flags?: string\n}\n\nexport class WriteStream extends EE {\n readable: false = false\n writable: boolean = true;\n [_errored]: boolean = false;\n [_writing]: boolean = false;\n [_ended]: boolean = false;\n [_queue]: Buffer[] = [];\n [_needDrain]: boolean = false;\n [_path]: string;\n [_mode]: number;\n [_autoClose]: boolean;\n [_fd]?: number;\n [_defaultFlag]: boolean;\n [_flags]: string;\n [_finished]: boolean = false;\n [_pos]?: number\n\n constructor(path: string, opt: WriteStreamOptions) {\n opt = opt || {}\n super(opt)\n this[_path] = path\n this[_fd] = typeof opt.fd === 'number' ? opt.fd : undefined\n this[_mode] = opt.mode === undefined ? 0o666 : opt.mode\n this[_pos] = typeof opt.start === 'number' ? opt.start : undefined\n this[_autoClose] =\n typeof opt.autoClose === 'boolean' ? opt.autoClose : true\n\n // truncating makes no sense when writing into the middle\n const defaultFlag = this[_pos] !== undefined ? 'r+' : 'w'\n this[_defaultFlag] = opt.flags === undefined\n this[_flags] = opt.flags === undefined ? defaultFlag : opt.flags\n\n if (this[_fd] === undefined) {\n this[_open]()\n }\n }\n\n emit(ev: string, ...args: any[]) {\n if (ev === 'error') {\n if (this[_errored]) {\n return false\n }\n this[_errored] = true\n }\n return super.emit(ev, ...args)\n }\n\n get fd() {\n return this[_fd]\n }\n\n get path() {\n return this[_path]\n }\n\n [_onerror](er: NodeJS.ErrnoException) {\n this[_close]()\n this[_writing] = true\n this.emit('error', er)\n }\n\n [_open]() {\n fs.open(this[_path], this[_flags], this[_mode], (er, fd) =>\n this[_onopen](er, fd),\n )\n }\n\n [_onopen](er?: null | NodeJS.ErrnoException, fd?: number) {\n if (\n this[_defaultFlag] &&\n this[_flags] === 'r+' &&\n er &&\n er.code === 'ENOENT'\n ) {\n this[_flags] = 'w'\n this[_open]()\n } else if (er) {\n this[_onerror](er)\n } else {\n this[_fd] = fd\n this.emit('open', fd)\n if (!this[_writing]) {\n this[_flush]()\n }\n }\n }\n\n end(buf: string, enc?: BufferEncoding): this\n end(buf?: Buffer, enc?: undefined): this\n end(buf?: Buffer | string, enc?: BufferEncoding): this {\n if (buf) {\n //@ts-ignore\n this.write(buf, enc)\n }\n\n this[_ended] = true\n\n // synthetic after-write logic, where drain/finish live\n if (\n !this[_writing] &&\n !this[_queue].length &&\n typeof this[_fd] === 'number'\n ) {\n this[_onwrite](null, 0)\n }\n return this\n }\n\n write(buf: string, enc?: BufferEncoding): boolean\n write(buf: Buffer, enc?: undefined): boolean\n write(buf: Buffer | string, enc?: BufferEncoding): boolean {\n if (typeof buf === 'string') {\n buf = Buffer.from(buf, enc)\n }\n\n if (this[_ended]) {\n this.emit('error', new Error('write() after end()'))\n return false\n }\n\n if (this[_fd] === undefined || this[_writing] || this[_queue].length) {\n this[_queue].push(buf)\n this[_needDrain] = true\n return false\n }\n\n this[_writing] = true\n this[_write](buf)\n return true\n }\n\n [_write](buf: Buffer) {\n fs.write(\n this[_fd] as number,\n buf,\n 0,\n buf.length,\n this[_pos],\n (er, bw) => this[_onwrite](er, bw),\n )\n }\n\n [_onwrite](er?: null | NodeJS.ErrnoException, bw?: number) {\n if (er) {\n this[_onerror](er)\n } else {\n if (this[_pos] !== undefined && typeof bw === 'number') {\n this[_pos] += bw\n }\n if (this[_queue].length) {\n this[_flush]()\n } else {\n this[_writing] = false\n\n if (this[_ended] && !this[_finished]) {\n this[_finished] = true\n this[_close]()\n this.emit('finish')\n } else if (this[_needDrain]) {\n this[_needDrain] = false\n this.emit('drain')\n }\n }\n }\n }\n\n [_flush]() {\n if (this[_queue].length === 0) {\n if (this[_ended]) {\n this[_onwrite](null, 0)\n }\n } else if (this[_queue].length === 1) {\n this[_write](this[_queue].pop() as Buffer)\n } else {\n const iovec = this[_queue]\n this[_queue] = []\n writev(this[_fd] as number, iovec, this[_pos] as number, (er, bw) =>\n this[_onwrite](er, bw),\n )\n }\n }\n\n [_close]() {\n if (this[_autoClose] && typeof this[_fd] === 'number') {\n const fd = this[_fd]\n this[_fd] = undefined\n fs.close(fd, er =>\n er ? this.emit('error', er) : this.emit('close'),\n )\n }\n }\n}\n\nexport class WriteStreamSync extends WriteStream {\n [_open](): void {\n let fd\n // only wrap in a try{} block if we know we'll retry, to avoid\n // the rethrow obscuring the error's source frame in most cases.\n if (this[_defaultFlag] && this[_flags] === 'r+') {\n try {\n fd = fs.openSync(this[_path], this[_flags], this[_mode])\n } catch (er) {\n if ((er as NodeJS.ErrnoException)?.code === 'ENOENT') {\n this[_flags] = 'w'\n return this[_open]()\n } else {\n throw er\n }\n }\n } else {\n fd = fs.openSync(this[_path], this[_flags], this[_mode])\n }\n\n this[_onopen](null, fd)\n }\n\n [_close]() {\n if (this[_autoClose] && typeof this[_fd] === 'number') {\n const fd = this[_fd]\n this[_fd] = undefined\n fs.closeSync(fd)\n this.emit('close')\n }\n }\n\n [_write](buf: Buffer) {\n // throw the original, but try to close if it fails\n let threw = true\n try {\n this[_onwrite](\n null,\n fs.writeSync(this[_fd] as number, buf, 0, buf.length, this[_pos]),\n )\n threw = false\n } finally {\n if (threw) {\n try {\n this[_close]()\n } catch {\n // ok error\n }\n }\n }\n }\n}\n", "const proc =\n typeof process === 'object' && process\n ? process\n : {\n stdout: null,\n stderr: null,\n }\nimport { EventEmitter } from 'node:events'\nimport Stream from 'node:stream'\nimport { StringDecoder } from 'node:string_decoder'\n\n/**\n * Same as StringDecoder, but exposing the `lastNeed` flag on the type\n */\ntype SD = StringDecoder & { lastNeed: boolean }\n\nexport type { SD, Pipe, PipeProxyErrors }\n\n/**\n * Return true if the argument is a Minipass stream, Node stream, or something\n * else that Minipass can interact with.\n */\nexport const isStream = (\n s: any\n): s is Minipass.Readable | Minipass.Writable =>\n !!s &&\n typeof s === 'object' &&\n (s instanceof Minipass ||\n s instanceof Stream ||\n isReadable(s) ||\n isWritable(s))\n\n/**\n * Return true if the argument is a valid {@link Minipass.Readable}\n */\nexport const isReadable = (s: any): s is Minipass.Readable =>\n !!s &&\n typeof s === 'object' &&\n s instanceof EventEmitter &&\n typeof (s as Minipass.Readable).pipe === 'function' &&\n // node core Writable streams have a pipe() method, but it throws\n (s as Minipass.Readable).pipe !== Stream.Writable.prototype.pipe\n\n/**\n * Return true if the argument is a valid {@link Minipass.Writable}\n */\nexport const isWritable = (s: any): s is Minipass.Readable =>\n !!s &&\n typeof s === 'object' &&\n s instanceof EventEmitter &&\n typeof (s as Minipass.Writable).write === 'function' &&\n typeof (s as Minipass.Writable).end === 'function'\n\nconst EOF = Symbol('EOF')\nconst MAYBE_EMIT_END = Symbol('maybeEmitEnd')\nconst EMITTED_END = Symbol('emittedEnd')\nconst EMITTING_END = Symbol('emittingEnd')\nconst EMITTED_ERROR = Symbol('emittedError')\nconst CLOSED = Symbol('closed')\nconst READ = Symbol('read')\nconst FLUSH = Symbol('flush')\nconst FLUSHCHUNK = Symbol('flushChunk')\nconst ENCODING = Symbol('encoding')\nconst DECODER = Symbol('decoder')\nconst FLOWING = Symbol('flowing')\nconst PAUSED = Symbol('paused')\nconst RESUME = Symbol('resume')\nconst BUFFER = Symbol('buffer')\nconst PIPES = Symbol('pipes')\nconst BUFFERLENGTH = Symbol('bufferLength')\nconst BUFFERPUSH = Symbol('bufferPush')\nconst BUFFERSHIFT = Symbol('bufferShift')\nconst OBJECTMODE = Symbol('objectMode')\n// internal event when stream is destroyed\nconst DESTROYED = Symbol('destroyed')\n// internal event when stream has an error\nconst ERROR = Symbol('error')\nconst EMITDATA = Symbol('emitData')\nconst EMITEND = Symbol('emitEnd')\nconst EMITEND2 = Symbol('emitEnd2')\nconst ASYNC = Symbol('async')\nconst ABORT = Symbol('abort')\nconst ABORTED = Symbol('aborted')\nconst SIGNAL = Symbol('signal')\nconst DATALISTENERS = Symbol('dataListeners')\nconst DISCARDED = Symbol('discarded')\n\nconst defer = (fn: (...a: any[]) => any) => Promise.resolve().then(fn)\nconst nodefer = (fn: (...a: any[]) => any) => fn()\n\n// events that mean 'the stream is over'\n// these are treated specially, and re-emitted\n// if they are listened for after emitting.\ntype EndishEvent = 'end' | 'finish' | 'prefinish'\nconst isEndish = (ev: any): ev is EndishEvent =>\n ev === 'end' || ev === 'finish' || ev === 'prefinish'\n\nconst isArrayBufferLike = (b: any): b is ArrayBufferLike =>\n b instanceof ArrayBuffer ||\n (!!b &&\n typeof b === 'object' &&\n b.constructor &&\n b.constructor.name === 'ArrayBuffer' &&\n b.byteLength >= 0)\n\nconst isArrayBufferView = (b: any): b is ArrayBufferView =>\n !Buffer.isBuffer(b) && ArrayBuffer.isView(b)\n\n/**\n * Options that may be passed to stream.pipe()\n */\nexport interface PipeOptions {\n /**\n * end the destination stream when the source stream ends\n */\n end?: boolean\n /**\n * proxy errors from the source stream to the destination stream\n */\n proxyErrors?: boolean\n}\n\n/**\n * Internal class representing a pipe to a destination stream.\n *\n * @internal\n */\nclass Pipe<T extends unknown> {\n src: Minipass<T>\n dest: Minipass<any, T>\n opts: PipeOptions\n ondrain: () => any\n constructor(\n src: Minipass<T>,\n dest: Minipass.Writable,\n opts: PipeOptions\n ) {\n this.src = src\n this.dest = dest as Minipass<any, T>\n this.opts = opts\n this.ondrain = () => src[RESUME]()\n this.dest.on('drain', this.ondrain)\n }\n unpipe() {\n this.dest.removeListener('drain', this.ondrain)\n }\n // only here for the prototype\n /* c8 ignore start */\n proxyErrors(_er: any) {}\n /* c8 ignore stop */\n end() {\n this.unpipe()\n if (this.opts.end) this.dest.end()\n }\n}\n\n/**\n * Internal class representing a pipe to a destination stream where\n * errors are proxied.\n *\n * @internal\n */\nclass PipeProxyErrors<T> extends Pipe<T> {\n unpipe() {\n this.src.removeListener('error', this.proxyErrors)\n super.unpipe()\n }\n constructor(\n src: Minipass<T>,\n dest: Minipass.Writable,\n opts: PipeOptions\n ) {\n super(src, dest, opts)\n this.proxyErrors = (er: Error) => this.dest.emit('error', er)\n src.on('error', this.proxyErrors)\n }\n}\n\nexport namespace Minipass {\n /**\n * Encoding used to create a stream that outputs strings rather than\n * Buffer objects.\n */\n export type Encoding = BufferEncoding | 'buffer' | null\n\n /**\n * Any stream that Minipass can pipe into\n */\n export type Writable =\n | Minipass<any, any, any>\n | NodeJS.WriteStream\n | (NodeJS.WriteStream & { fd: number })\n | (EventEmitter & {\n end(): any\n write(chunk: any, ...args: any[]): any\n })\n\n /**\n * Any stream that can be read from\n */\n export type Readable =\n | Minipass<any, any, any>\n | NodeJS.ReadStream\n | (NodeJS.ReadStream & { fd: number })\n | (EventEmitter & {\n pause(): any\n resume(): any\n pipe(...destArgs: any[]): any\n })\n\n /**\n * Utility type that can be iterated sync or async\n */\n export type DualIterable<T> = Iterable<T> & AsyncIterable<T>\n\n type EventArguments = Record<string | symbol, unknown[]>\n\n /**\n * The listing of events that a Minipass class can emit.\n * Extend this when extending the Minipass class, and pass as\n * the third template argument. The key is the name of the event,\n * and the value is the argument list.\n *\n * Any undeclared events will still be allowed, but the handler will get\n * arguments as `unknown[]`.\n */\n export interface Events<RType extends any = Buffer>\n extends EventArguments {\n readable: []\n data: [chunk: RType]\n error: [er: unknown]\n abort: [reason: unknown]\n drain: []\n resume: []\n end: []\n finish: []\n prefinish: []\n close: []\n [DESTROYED]: [er?: unknown]\n [ERROR]: [er: unknown]\n }\n\n /**\n * String or buffer-like data that can be joined and sliced\n */\n export type ContiguousData =\n | Buffer\n | ArrayBufferLike\n | ArrayBufferView\n | string\n export type BufferOrString = Buffer | string\n\n /**\n * Options passed to the Minipass constructor.\n */\n export type SharedOptions = {\n /**\n * Defer all data emission and other events until the end of the\n * current tick, similar to Node core streams\n */\n async?: boolean\n /**\n * A signal which will abort the stream\n */\n signal?: AbortSignal\n /**\n * Output string encoding. Set to `null` or `'buffer'` (or omit) to\n * emit Buffer objects rather than strings.\n *\n * Conflicts with `objectMode`\n */\n encoding?: BufferEncoding | null | 'buffer'\n /**\n * Output data exactly as it was written, supporting non-buffer/string\n * data (such as arbitrary objects, falsey values, etc.)\n *\n * Conflicts with `encoding`\n */\n objectMode?: boolean\n }\n\n /**\n * Options for a string encoded output\n */\n export type EncodingOptions = SharedOptions & {\n encoding: BufferEncoding\n objectMode?: false\n }\n\n /**\n * Options for contiguous data buffer output\n */\n export type BufferOptions = SharedOptions & {\n encoding?: null | 'buffer'\n objectMode?: false\n }\n\n /**\n * Options for objectMode arbitrary output\n */\n export type ObjectModeOptions = SharedOptions & {\n objectMode: true\n encoding?: null\n }\n\n /**\n * Utility type to determine allowed options based on read type\n */\n export type Options<T> =\n | ObjectModeOptions\n | (T extends string\n ? EncodingOptions\n : T extends Buffer\n ? BufferOptions\n : SharedOptions)\n}\n\nconst isObjectModeOptions = (\n o: Minipass.SharedOptions\n): o is Minipass.ObjectModeOptions => !!o.objectMode\n\nconst isEncodingOptions = (\n o: Minipass.SharedOptions\n): o is Minipass.EncodingOptions =>\n !o.objectMode && !!o.encoding && o.encoding !== 'buffer'\n\n/**\n * Main export, the Minipass class\n *\n * `RType` is the type of data emitted, defaults to Buffer\n *\n * `WType` is the type of data to be written, if RType is buffer or string,\n * then any {@link Minipass.ContiguousData} is allowed.\n *\n * `Events` is the set of event handler signatures that this object\n * will emit, see {@link Minipass.Events}\n */\nexport class Minipass<\n RType extends unknown = Buffer,\n WType extends unknown = RType extends Minipass.BufferOrString\n ? Minipass.ContiguousData\n : RType,\n Events extends Minipass.Events<RType> = Minipass.Events<RType>\n >\n extends EventEmitter\n implements Minipass.DualIterable<RType>\n{\n [FLOWING]: boolean = false;\n [PAUSED]: boolean = false;\n [PIPES]: Pipe<RType>[] = [];\n [BUFFER]: RType[] = [];\n [OBJECTMODE]: boolean;\n [ENCODING]: BufferEncoding | null;\n [ASYNC]: boolean;\n [DECODER]: SD | null;\n [EOF]: boolean = false;\n [EMITTED_END]: boolean = false;\n [EMITTING_END]: boolean = false;\n [CLOSED]: boolean = false;\n [EMITTED_ERROR]: unknown = null;\n [BUFFERLENGTH]: number = 0;\n [DESTROYED]: boolean = false;\n [SIGNAL]?: AbortSignal;\n [ABORTED]: boolean = false;\n [DATALISTENERS]: number = 0;\n [DISCARDED]: boolean = false\n\n /**\n * true if the stream can be written\n */\n writable: boolean = true\n /**\n * true if the stream can be read\n */\n readable: boolean = true\n\n /**\n * If `RType` is Buffer, then options do not need to be provided.\n * Otherwise, an options object must be provided to specify either\n * {@link Minipass.SharedOptions.objectMode} or\n * {@link Minipass.SharedOptions.encoding}, as appropriate.\n */\n constructor(\n ...args:\n | [Minipass.ObjectModeOptions]\n | (RType extends Buffer\n ? [] | [Minipass.Options<RType>]\n : [Minipass.Options<RType>])\n ) {\n const options: Minipass.Options<RType> = (args[0] ||\n {}) as Minipass.Options<RType>\n super()\n if (options.objectMode && typeof options.encoding === 'string') {\n throw new TypeError(\n 'Encoding and objectMode may not be used together'\n )\n }\n if (isObjectModeOptions(options)) {\n this[OBJECTMODE] = true\n this[ENCODING] = null\n } else if (isEncodingOptions(options)) {\n this[ENCODING] = options.encoding\n this[OBJECTMODE] = false\n } else {\n this[OBJECTMODE] = false\n this[ENCODING] = null\n }\n this[ASYNC] = !!options.async\n this[DECODER] = this[ENCODING]\n ? (new StringDecoder(this[ENCODING]) as SD)\n : null\n\n //@ts-ignore - private option for debugging and testing\n if (options && options.debugExposeBuffer === true) {\n Object.defineProperty(this, 'buffer', { get: () => this[BUFFER] })\n }\n //@ts-ignore - private option for debugging and testing\n if (options && options.debugExposePipes === true) {\n Object.defineProperty(this, 'pipes', { get: () => this[PIPES] })\n }\n\n const { signal } = options\n if (signal) {\n this[SIGNAL] = signal\n if (signal.aborted) {\n this[ABORT]()\n } else {\n signal.addEventListener('abort', () => this[ABORT]())\n }\n }\n }\n\n /**\n * The amount of data stored in the buffer waiting to be read.\n *\n * For Buffer strings, this will be the total byte length.\n * For string encoding streams, this will be the string character length,\n * according to JavaScript's `string.length` logic.\n * For objectMode streams, this is a count of the items waiting to be\n * emitted.\n */\n get bufferLength() {\n return this[BUFFERLENGTH]\n }\n\n /**\n * The `BufferEncoding` currently in use, or `null`\n */\n get encoding() {\n return this[ENCODING]\n }\n\n /**\n * @deprecated - This is a read only property\n */\n set encoding(_enc) {\n throw new Error('Encoding must be set at instantiation time')\n }\n\n /**\n * @deprecated - Encoding may only be set at instantiation time\n */\n setEncoding(_enc: Minipass.Encoding) {\n throw new Error('Encoding must be set at instantiation time')\n }\n\n /**\n * True if this is an objectMode stream\n */\n get objectMode() {\n return this[OBJECTMODE]\n }\n\n /**\n * @deprecated - This is a read-only property\n */\n set objectMode(_om) {\n throw new Error('objectMode must be set at instantiation time')\n }\n\n /**\n * true if this is an async stream\n */\n get ['async'](): boolean {\n return this[ASYNC]\n }\n /**\n * Set to true to make this stream async.\n *\n * Once set, it cannot be unset, as this would potentially cause incorrect\n * behavior. Ie, a sync stream can be made async, but an async stream\n * cannot be safely made sync.\n */\n set ['async'](a: boolean) {\n this[ASYNC] = this[ASYNC] || !!a\n }\n\n // drop everything and get out of the flow completely\n [ABORT]() {\n this[ABORTED] = true\n this.emit('abort', this[SIGNAL]?.reason)\n this.destroy(this[SIGNAL]?.reason)\n }\n\n /**\n * True if the stream has been aborted.\n */\n get aborted() {\n return this[ABORTED]\n }\n /**\n * No-op setter. Stream aborted status is set via the AbortSignal provided\n * in the constructor options.\n */\n set aborted(_) {}\n\n /**\n * Write data into the stream\n *\n * If the chunk written is a string, and encoding is not specified, then\n * `utf8` will be assumed. If the stream encoding matches the encoding of\n * a written string, and the state of the string decoder allows it, then\n * the string will be passed through to either the output or the internal\n * buffer without any processing. Otherwise, it will be turned into a\n * Buffer object for processing into the desired encoding.\n *\n * If provided, `cb` function is called immediately before return for\n * sync streams, or on next tick for async streams, because for this\n * base class, a chunk is considered \"processed\" once it is accepted\n * and either emitted or buffered. That is, the callback does not indicate\n * that the chunk has been eventually emitted, though of course child\n * classes can override this function to do whatever processing is required\n * and call `super.write(...)` only once processing is completed.\n */\n write(chunk: WType, cb?: () => void): boolean\n write(\n chunk: WType,\n encoding?: Minipass.Encoding,\n cb?: () => void\n ): boolean\n write(\n chunk: WType,\n encoding?: Minipass.Encoding | (() => void),\n cb?: () => void\n ): boolean {\n if (this[ABORTED]) return false\n if (this[EOF]) throw new Error('write after end')\n\n if (this[DESTROYED]) {\n this.emit(\n 'error',\n Object.assign(\n new Error('Cannot call write after a stream was destroyed'),\n { code: 'ERR_STREAM_DESTROYED' }\n )\n )\n return true\n }\n\n if (typeof encoding === 'function') {\n cb = encoding\n encoding = 'utf8'\n }\n\n if (!encoding) encoding = 'utf8'\n\n const fn = this[ASYNC] ? defer : nodefer\n\n // convert array buffers and typed array views into buffers\n // at some point in the future, we may want to do the opposite!\n // leave strings and buffers as-is\n // anything is only allowed if in object mode, so throw\n if (!this[OBJECTMODE] && !Buffer.isBuffer(chunk)) {\n if (isArrayBufferView(chunk)) {\n //@ts-ignore - sinful unsafe type changing\n chunk = Buffer.from(\n chunk.buffer,\n chunk.byteOffset,\n chunk.byteLength\n )\n } else if (isArrayBufferLike(chunk)) {\n //@ts-ignore - sinful unsafe type changing\n chunk = Buffer.from(chunk)\n } else if (typeof chunk !== 'string') {\n throw new Error(\n 'Non-contiguous data written to non-objectMode stream'\n )\n }\n }\n\n // handle object mode up front, since it's simpler\n // this yields better performance, fewer checks later.\n if (this[OBJECTMODE]) {\n // maybe impossible?\n /* c8 ignore start */\n if (this[FLOWING] && this[BUFFERLENGTH] !== 0) this[FLUSH](true)\n /* c8 ignore stop */\n\n if (this[FLOWING]) this.emit('data', chunk as unknown as RType)\n else this[BUFFERPUSH](chunk as unknown as RType)\n\n if (this[BUFFERLENGTH] !== 0) this.emit('readable')\n\n if (cb) fn(cb)\n\n return this[FLOWING]\n }\n\n // at this point the chunk is a buffer or string\n // don't buffer it up or send it to the decoder\n if (!(chunk as Minipass.BufferOrString).length) {\n if (this[BUFFERLENGTH] !== 0) this.emit('readable')\n if (cb) fn(cb)\n return this[FLOWING]\n }\n\n // fast-path writing strings of same encoding to a stream with\n // an empty buffer, skipping the buffer/decoder dance\n if (\n typeof chunk === 'string' &&\n // unless it is a string already ready for us to use\n !(encoding === this[ENCODING] && !this[DECODER]?.lastNeed)\n ) {\n //@ts-ignore - sinful unsafe type change\n chunk = Buffer.from(chunk, encoding)\n }\n\n if (Buffer.isBuffer(chunk) && this[ENCODING]) {\n //@ts-ignore - sinful unsafe type change\n chunk = this[DECODER].write(chunk)\n }\n\n // Note: flushing CAN potentially switch us into not-flowing mode\n if (this[FLOWING] && this[BUFFERLENGTH] !== 0) this[FLUSH](true)\n\n if (this[FLOWING]) this.emit('data', chunk as unknown as RType)\n else this[BUFFERPUSH](chunk as unknown as RType)\n\n if (this[BUFFERLENGTH] !== 0) this.emit('readable')\n\n if (cb) fn(cb)\n\n return this[FLOWING]\n }\n\n /**\n * Low-level explicit read method.\n *\n * In objectMode, the argument is ignored, and one item is returned if\n * available.\n *\n * `n` is the number of bytes (or in the case of encoding streams,\n * characters) to consume. If `n` is not provided, then the entire buffer\n * is returned, or `null` is returned if no data is available.\n *\n * If `n` is greater that the amount of data in the internal buffer,\n * then `null` is returned.\n */\n read(n?: number | null): RType | null {\n if (this[DESTROYED]) return null\n this[DISCARDED] = false\n\n if (\n this[BUFFERLENGTH] === 0 ||\n n === 0 ||\n (n && n > this[BUFFERLENGTH])\n ) {\n this[MAYBE_EMIT_END]()\n return null\n }\n\n if (this[OBJECTMODE]) n = null\n\n if (this[BUFFER].length > 1 && !this[OBJECTMODE]) {\n // not object mode, so if we have an encoding, then RType is string\n // otherwise, must be Buffer\n this[BUFFER] = [\n (this[ENCODING]\n ? this[BUFFER].join('')\n : Buffer.concat(\n this[BUFFER] as Buffer[],\n this[BUFFERLENGTH]\n )) as RType,\n ]\n }\n\n const ret = this[READ](n || null, this[BUFFER][0] as RType)\n this[MAYBE_EMIT_END]()\n return ret\n }\n\n [READ](n: number | null, chunk: RType) {\n if (this[OBJECTMODE]) this[BUFFERSHIFT]()\n else {\n const c = chunk as Minipass.BufferOrString\n if (n === c.length || n === null) this[BUFFERSHIFT]()\n else if (typeof c === 'string') {\n this[BUFFER][0] = c.slice(n) as RType\n chunk = c.slice(0, n) as RType\n this[BUFFERLENGTH] -= n\n } else {\n this[BUFFER][0] = c.subarray(n) as RType\n chunk = c.subarray(0, n) as RType\n this[BUFFERLENGTH] -= n\n }\n }\n\n this.emit('data', chunk)\n\n if (!this[BUFFER].length && !this[EOF]) this.emit('drain')\n\n return chunk\n }\n\n /**\n * End the stream, optionally providing a final write.\n *\n * See {@link Minipass#write} for argument descriptions\n */\n end(cb?: () => void): this\n end(chunk: WType, cb?: () => void): this\n end(chunk: WType, encoding?: Minipass.Encoding, cb?: () => void): this\n end(\n chunk?: WType | (() => void),\n encoding?: Minipass.Encoding | (() => void),\n cb?: () => void\n ): this {\n if (typeof chunk === 'function') {\n cb = chunk as () => void\n chunk = undefined\n }\n if (typeof encoding === 'function') {\n cb = encoding\n encoding = 'utf8'\n }\n if (chunk !== undefined) this.write(chunk, encoding)\n if (cb) this.once('end', cb)\n this[EOF] = true\n this.writable = false\n\n // if we haven't written anything, then go ahead and emit,\n // even if we're not reading.\n // we'll re-emit if a new 'end' listener is added anyway.\n // This makes MP more suitable to write-only use cases.\n if (this[FLOWING] || !this[PAUSED]) this[MAYBE_EMIT_END]()\n return this\n }\n\n // don't let the internal resume be overwritten\n [RESUME]() {\n if (this[DESTROYED]) return\n\n if (!this[DATALISTENERS] && !this[PIPES].length) {\n this[DISCARDED] = true\n }\n this[PAUSED] = false\n this[FLOWING] = true\n this.emit('resume')\n if (this[BUFFER].length) this[FLUSH]()\n else if (this[EOF]) this[MAYBE_EMIT_END]()\n else this.emit('drain')\n }\n\n /**\n * Resume the stream if it is currently in a paused state\n *\n * If called when there are no pipe destinations or `data` event listeners,\n * this will place the stream in a \"discarded\" state, where all data will\n * be thrown away. The discarded state is removed if a pipe destination or\n * data handler is added, if pause() is called, or if any synchronous or\n * asynchronous iteration is started.\n */\n resume() {\n return this[RESUME]()\n }\n\n /**\n * Pause the stream\n */\n pause() {\n this[FLOWING] = false\n this[PAUSED] = true\n this[DISCARDED] = false\n }\n\n /**\n * true if the stream has been forcibly destroyed\n */\n get destroyed() {\n return this[DESTROYED]\n }\n\n /**\n * true if the stream is currently in a flowing state, meaning that\n * any writes will be immediately emitted.\n */\n get flowing() {\n return this[FLOWING]\n }\n\n /**\n * true if the stream is currently in a paused state\n */\n get paused() {\n return this[PAUSED]\n }\n\n [BUFFERPUSH](chunk: RType) {\n if (this[OBJECTMODE]) this[BUFFERLENGTH] += 1\n else this[BUFFERLENGTH] += (chunk as Minipass.BufferOrString).length\n this[BUFFER].push(chunk)\n }\n\n [BUFFERSHIFT](): RType {\n if (this[OBJECTMODE]) this[BUFFERLENGTH] -= 1\n else\n this[BUFFERLENGTH] -= (\n this[BUFFER][0] as Minipass.BufferOrString\n ).length\n return this[BUFFER].shift() as RType\n }\n\n [FLUSH](noDrain: boolean = false) {\n do {} while (\n this[FLUSHCHUNK](this[BUFFERSHIFT]()) &&\n this[BUFFER].length\n )\n\n if (!noDrain && !this[BUFFER].length && !this[EOF]) this.emit('drain')\n }\n\n [FLUSHCHUNK](chunk: RType) {\n this.emit('data', chunk)\n return this[FLOWING]\n }\n\n /**\n * Pipe all data emitted by this stream into the destination provided.\n *\n * Triggers the flow of data.\n */\n pipe<W extends Minipass.Writable>(dest: W, opts?: PipeOptions): W {\n if (this[DESTROYED]) return dest\n this[DISCARDED] = false\n\n const ended = this[EMITTED_END]\n opts = opts || {}\n if (dest === proc.stdout || dest === proc.stderr) opts.end = false\n else opts.end = opts.end !== false\n opts.proxyErrors = !!opts.proxyErrors\n\n // piping an ended stream ends immediately\n if (ended) {\n if (opts.end) dest.end()\n } else {\n // \"as\" here just ignores the WType, which pipes don't care about,\n // since they're only consuming from us, and writing to the dest\n this[PIPES].push(\n !opts.proxyErrors\n ? new Pipe<RType>(this as Minipass<RType>, dest, opts)\n : new PipeProxyErrors<RType>(this as Minipass<RType>, dest, opts)\n )\n if (this[ASYNC]) defer(() => this[RESUME]())\n else this[RESUME]()\n }\n\n return dest\n }\n\n /**\n * Fully unhook a piped destination stream.\n *\n * If the destination stream was the only consumer of this stream (ie,\n * there are no other piped destinations or `'data'` event listeners)\n * then the flow of data will stop until there is another consumer or\n * {@link Minipass#resume} is explicitly called.\n */\n unpipe<W extends Minipass.Writable>(dest: W) {\n const p = this[PIPES].find(p => p.dest === dest)\n if (p) {\n if (this[PIPES].length === 1) {\n if (this[FLOWING] && this[DATALISTENERS] === 0) {\n this[FLOWING] = false\n }\n this[PIPES] = []\n } else this[PIPES].splice(this[PIPES].indexOf(p), 1)\n p.unpipe()\n }\n }\n\n /**\n * Alias for {@link Minipass#on}\n */\n addListener<Event extends keyof Events>(\n ev: Event,\n handler: (...args: Events[Event]) => any\n ): this {\n return this.on(ev, handler)\n }\n\n /**\n * Mostly identical to `EventEmitter.on`, with the following\n * behavior differences to prevent data loss and unnecessary hangs:\n *\n * - Adding a 'data' event handler will trigger the flow of data\n *\n * - Adding a 'readable' event handler when there is data waiting to be read\n * will cause 'readable' to be emitted immediately.\n *\n * - Adding an 'endish' event handler ('end', 'finish', etc.) which has\n * already passed will cause the event to be emitted immediately and all\n * handlers removed.\n *\n * - Adding an 'error' event handler after an error has been emitted will\n * cause the event to be re-emitted immediately with the error previously\n * raised.\n */\n on<Event extends keyof Events>(\n ev: Event,\n handler: (...args: Events[Event]) => any\n ): this {\n const ret = super.on(\n ev as string | symbol,\n handler as (...a: any[]) => any\n )\n if (ev === 'data') {\n this[DISCARDED] = false\n this[DATALISTENERS]++\n if (!this[PIPES].length && !this[FLOWING]) {\n this[RESUME]()\n }\n } else if (ev === 'readable' && this[BUFFERLENGTH] !== 0) {\n super.emit('readable')\n } else if (isEndish(ev) && this[EMITTED_END]) {\n super.emit(ev)\n this.removeAllListeners(ev)\n } else if (ev === 'error' && this[EMITTED_ERROR]) {\n const h = handler as (...a: Events['error']) => any\n if (this[ASYNC]) defer(() => h.call(this, this[EMITTED_ERROR]))\n else h.call(this, this[EMITTED_ERROR])\n }\n return ret\n }\n\n /**\n * Alias for {@link Minipass#off}\n */\n removeListener<Event extends keyof Events>(\n ev: Event,\n handler: (...args: Events[Event]) => any\n ) {\n return this.off(ev, handler)\n }\n\n /**\n * Mostly identical to `EventEmitter.off`\n *\n * If a 'data' event handler is removed, and it was the last consumer\n * (ie, there are no pipe destinations or other 'data' event listeners),\n * then the flow of data will stop until there is another consumer or\n * {@link Minipass#resume} is explicitly called.\n */\n off<Event extends keyof Events>(\n ev: Event,\n handler: (...args: Events[Event]) => any\n ) {\n const ret = super.off(\n ev as string | symbol,\n handler as (...a: any[]) => any\n )\n // if we previously had listeners, and now we don't, and we don't\n // have any pipes, then stop the flow, unless it's been explicitly\n // put in a discarded flowing state via stream.resume().\n if (ev === 'data') {\n this[DATALISTENERS] = this.listeners('data').length\n if (\n this[DATALISTENERS] === 0 &&\n !this[DISCARDED] &&\n !this[PIPES].length\n ) {\n this[FLOWING] = false\n }\n }\n return ret\n }\n\n /**\n * Mostly identical to `EventEmitter.removeAllListeners`\n *\n * If all 'data' event handlers are removed, and they were the last consumer\n * (ie, there are no pipe destinations), then the flow of data will stop\n * until there is another consumer or {@link Minipass#resume} is explicitly\n * called.\n */\n removeAllListeners<Event extends keyof Events>(ev?: Event) {\n const ret = super.removeAllListeners(ev as string | symbol | undefined)\n if (ev === 'data' || ev === undefined) {\n this[DATALISTENERS] = 0\n if (!this[DISCARDED] && !this[PIPES].length) {\n this[FLOWING] = false\n }\n }\n return ret\n }\n\n /**\n * true if the 'end' event has been emitted\n */\n get emittedEnd() {\n return this[EMITTED_END]\n }\n\n [MAYBE_EMIT_END]() {\n if (\n !this[EMITTING_END] &&\n !this[EMITTED_END] &&\n !this[DESTROYED] &&\n this[BUFFER].length === 0 &&\n this[EOF]\n ) {\n this[EMITTING_END] = true\n this.emit('end')\n this.emit('prefinish')\n this.emit('finish')\n if (this[CLOSED]) this.emit('close')\n this[EMITTING_END] = false\n }\n }\n\n /**\n * Mostly identical to `EventEmitter.emit`, with the following\n * behavior differences to prevent data loss and unnecessary hangs:\n *\n * If the stream has been destroyed, and the event is something other\n * than 'close' or 'error', then `false` is returned and no handlers\n * are called.\n *\n * If the event is 'end', and has already been emitted, then the event\n * is ignored. If the stream is in a paused or non-flowing state, then\n * the event will be deferred until data flow resumes. If the stream is\n * async, then handlers will be called on the next tick rather than\n * immediately.\n *\n * If the event is 'close', and 'end' has not yet been emitted, then\n * the event will be deferred until after 'end' is emitted.\n *\n * If the event is 'error', and an AbortSignal was provided for the stream,\n * and there are no listeners, then the event is ignored, matching the\n * behavior of node core streams in the presense of an AbortSignal.\n *\n * If the event is 'finish' or 'prefinish', then all listeners will be\n * removed after emitting the event, to prevent double-firing.\n */\n emit<Event extends keyof Events>(\n ev: Event,\n ...args: Events[Event]\n ): boolean {\n const data = args[0]\n // error and close are only events allowed after calling destroy()\n if (\n ev !== 'error' &&\n ev !== 'close' &&\n ev !== DESTROYED &&\n this[DESTROYED]\n ) {\n return false\n } else if (ev === 'data') {\n return !this[OBJECTMODE] && !data\n ? false\n : this[ASYNC]\n ? (defer(() => this[EMITDATA](data as RType)), true)\n : this[EMITDATA](data as RType)\n } else if (ev === 'end') {\n return this[EMITEND]()\n } else if (ev === 'close') {\n this[CLOSED] = true\n // don't emit close before 'end' and 'finish'\n if (!this[EMITTED_END] && !this[DESTROYED]) return false\n const ret = super.emit('close')\n this.removeAllListeners('close')\n return ret\n } else if (ev === 'error') {\n this[EMITTED_ERROR] = data\n super.emit(ERROR, data)\n const ret =\n !this[SIGNAL] || this.listeners('error').length\n ? super.emit('error', data)\n : false\n this[MAYBE_EMIT_END]()\n return ret\n } else if (ev === 'resume') {\n const ret = super.emit('resume')\n this[MAYBE_EMIT_END]()\n return ret\n } else if (ev === 'finish' || ev === 'prefinish') {\n const ret = super.emit(ev)\n this.removeAllListeners(ev)\n return ret\n }\n\n // Some other unknown event\n const ret = super.emit(ev as string, ...args)\n this[MAYBE_EMIT_END]()\n return ret\n }\n\n [EMITDATA](data: RType) {\n for (const p of this[PIPES]) {\n if (p.dest.write(data as RType) === false) this.pause()\n }\n const ret = this[DISCARDED] ? false : super.emit('data', data)\n this[MAYBE_EMIT_END]()\n return ret\n }\n\n [EMITEND]() {\n if (this[EMITTED_END]) return false\n\n this[EMITTED_END] = true\n this.readable = false\n return this[ASYNC]\n ? (defer(() => this[EMITEND2]()), true)\n : this[EMITEND2]()\n }\n\n [EMITEND2]() {\n if (this[DECODER]) {\n const data = this[DECODER].end()\n if (data) {\n for (const p of this[PIPES]) {\n p.dest.write(data as RType)\n }\n if (!this[DISCARDED]) super.emit('data', data)\n }\n }\n\n for (const p of this[PIPES]) {\n p.end()\n }\n const ret = super.emit('end')\n this.removeAllListeners('end')\n return ret\n }\n\n /**\n * Return a Promise that resolves to an array of all emitted data once\n * the stream ends.\n */\n async collect(): Promise<RType[] & { dataLength: number }> {\n const buf: RType[] & { dataLength: number } = Object.assign([], {\n dataLength: 0,\n })\n if (!this[OBJECTMODE]) buf.dataLength = 0\n // set the promise first, in case an error is raised\n // by triggering the flow here.\n const p = this.promise()\n this.on('data', c => {\n buf.push(c)\n if (!this[OBJECTMODE])\n buf.dataLength += (c as Minipass.BufferOrString).length\n })\n await p\n return buf\n }\n\n /**\n * Return a Promise that resolves to the concatenation of all emitted data\n * once the stream ends.\n *\n * Not allowed on objectMode streams.\n */\n async concat(): Promise<RType> {\n if (this[OBJECTMODE]) {\n throw new Error('cannot concat in objectMode')\n }\n const buf = await this.collect()\n return (\n this[ENCODING]\n ? buf.join('')\n : Buffer.concat(buf as Buffer[], buf.dataLength)\n ) as RType\n }\n\n /**\n * Return a void Promise that resolves once the stream ends.\n */\n async promise(): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n this.on(DESTROYED, () => reject(new Error('stream destroyed')))\n this.on('error', er => reject(er))\n this.on('end', () => resolve())\n })\n }\n\n /**\n * Asynchronous `for await of` iteration.\n *\n * This will continue emitting all chunks until the stream terminates.\n */\n [Symbol.asyncIterator](): AsyncGenerator<RType, void, void> {\n // set this up front, in case the consumer doesn't call next()\n // right away.\n this[DISCARDED] = false\n let stopped = false\n const stop = async (): Promise<IteratorReturnResult<void>> => {\n this.pause()\n stopped = true\n return { value: undefined, done: true }\n }\n const next = (): Promise<IteratorResult<RType, void>> => {\n if (stopped) return stop()\n const res = this.read()\n if (res !== null) return Promise.resolve({ done: false, value: res })\n\n if (this[EOF]) return stop()\n\n let resolve!: (res: IteratorResult<RType>) => void\n let reject!: (er: unknown) => void\n const onerr = (er: unknown) => {\n this.off('data', ondata)\n this.off('end', onend)\n this.off(DESTROYED, ondestroy)\n stop()\n reject(er)\n }\n const ondata = (value: RType) => {\n this.off('error', onerr)\n this.off('end', onend)\n this.off(DESTROYED, ondestroy)\n this.pause()\n resolve({ value, done: !!this[EOF] })\n }\n const onend = () => {\n this.off('error', onerr)\n this.off('data', ondata)\n this.off(DESTROYED, ondestroy)\n stop()\n resolve({ done: true, value: undefined })\n }\n const ondestroy = () => onerr(new Error('stream destroyed'))\n return new Promise<IteratorResult<RType>>((res, rej) => {\n reject = rej\n resolve = res\n this.once(DESTROYED, ondestroy)\n this.once('error', onerr)\n this.once('end', onend)\n this.once('data', ondata)\n })\n }\n\n return {\n next,\n throw: stop,\n return: stop,\n [Symbol.asyncIterator]() {\n return this\n },\n [Symbol.asyncDispose]: async () => {},\n }\n }\n\n /**\n * Synchronous `for of` iteration.\n *\n * The iteration will terminate when the internal buffer runs out, even\n * if the stream has not yet terminated.\n */\n [Symbol.iterator](): Generator<RType, void, void> {\n // set this up front, in case the consumer doesn't call next()\n // right away.\n this[DISCARDED] = false\n let stopped = false\n const stop = (): IteratorReturnResult<void> => {\n this.pause()\n this.off(ERROR, stop)\n this.off(DESTROYED, stop)\n this.off('end', stop)\n stopped = true\n return { done: true, value: undefined }\n }\n\n const next = (): IteratorResult<RType, void> => {\n if (stopped) return stop()\n const value = this.read()\n return value === null ? stop() : { done: false, value }\n }\n\n this.once('end', stop)\n this.once(ERROR, stop)\n this.once(DESTROYED, stop)\n\n return {\n next,\n throw: stop,\n return: stop,\n [Symbol.iterator]() {\n return this\n },\n [Symbol.dispose]: () => {},\n }\n }\n\n /**\n * Destroy a stream, preventing it from being used for any further purpose.\n *\n * If the stream has a `close()` method, then it will be called on\n * destruction.\n *\n * After destruction, any attempt to write data, read data, or emit most\n * events will be ignored.\n *\n * If an error argument is provided, then it will be emitted in an\n * 'error' event.\n */\n destroy(er?: unknown) {\n if (this[DESTROYED]) {\n if (er) this.emit('error', er)\n else this.emit(DESTROYED)\n return this\n }\n\n this[DESTROYED] = true\n this[DISCARDED] = true\n\n // throw away all buffered data, it's never coming out\n this[BUFFER].length = 0\n this[BUFFERLENGTH] = 0\n\n const wc = this as Minipass<RType, WType, Events> & {\n close?: () => void\n }\n if (typeof wc.close === 'function' && !this[CLOSED]) wc.close()\n\n if (er) this.emit('error', er)\n // if no error to emit, still reject pending promises\n else this.emit(DESTROYED)\n\n return this\n }\n\n /**\n * Alias for {@link isStream}\n *\n * Former export location, maintained for backwards compatibility.\n *\n * @deprecated\n */\n static get isStream() {\n return isStream\n }\n}\n", "import { WriteStream, WriteStreamSync } from '@isaacs/fs-minipass'\nimport type { Minipass } from 'minipass'\nimport path from 'node:path'\nimport { list } from './list.js'\nimport { makeCommand } from './make-command.js'\nimport type {\n TarOptions,\n TarOptionsFile,\n TarOptionsSync,\n TarOptionsSyncFile,\n} from './options.js'\nimport { Pack, PackSync } from './pack.js'\n\nconst createFileSync = (opt: TarOptionsSyncFile, files: string[]) => {\n const p = new PackSync(opt)\n const stream = new WriteStreamSync(opt.file, {\n mode: opt.mode || 0o666,\n })\n p.pipe(stream as unknown as Minipass.Writable)\n addFilesSync(p, files)\n}\n\nconst createFile = (opt: TarOptionsFile, files: string[]) => {\n const p = new Pack(opt)\n const stream = new WriteStream(opt.file, {\n mode: opt.mode || 0o666,\n })\n p.pipe(stream as unknown as Minipass.Writable)\n\n const promise = new Promise<void>((res, rej) => {\n stream.on('error', rej)\n stream.on('close', res)\n p.on('error', rej)\n })\n\n addFilesAsync(p, files).catch(er => p.emit('error', er))\n\n return promise\n}\n\nconst addFilesSync = (p: PackSync, files: string[]) => {\n files.forEach(file => {\n if (file.charAt(0) === '@') {\n list({\n file: path.resolve(p.cwd, file.slice(1)),\n sync: true,\n noResume: true,\n onReadEntry: entry => p.add(entry),\n })\n } else {\n p.add(file)\n }\n })\n p.end()\n}\n\nconst addFilesAsync = async (p: Pack, files: string[]): Promise<void> => {\n for (const file of files) {\n if (file.charAt(0) === '@') {\n await list({\n file: path.resolve(String(p.cwd), file.slice(1)),\n noResume: true,\n onReadEntry: entry => {\n p.add(entry)\n },\n })\n } else {\n p.add(file)\n }\n }\n p.end()\n}\n\nconst createSync = (opt: TarOptionsSync, files: string[]) => {\n const p = new PackSync(opt)\n addFilesSync(p, files)\n return p\n}\n\nconst createAsync = (opt: TarOptions, files: string[]) => {\n const p = new Pack(opt)\n addFilesAsync(p, files).catch(er => p.emit('error', er))\n return p\n}\n\nexport const create = makeCommand(\n createFileSync,\n createFile,\n createSync,\n createAsync,\n (_opt, files) => {\n if (!files?.length) {\n throw new TypeError('no paths specified to add to archive')\n }\n },\n)\n", "// tar -t\nimport * as fsm from '@isaacs/fs-minipass'\nimport fs from 'node:fs'\nimport { dirname, parse } from 'path'\nimport { makeCommand } from './make-command.js'\nimport type {\n TarOptions,\n TarOptionsFile,\n TarOptionsSyncFile,\n} from './options.js'\nimport { Parser } from './parse.js'\nimport { stripTrailingSlashes } from './strip-trailing-slashes.js'\n\nconst onReadEntryFunction = (opt: TarOptions) => {\n const onReadEntry = opt.onReadEntry\n opt.onReadEntry =\n onReadEntry ?\n e => {\n onReadEntry(e)\n e.resume()\n }\n : e => e.resume()\n}\n\n// construct a filter that limits the file entries listed\n// include child entries if a dir is included\nexport const filesFilter = (opt: TarOptions, files: string[]) => {\n const map = new Map<string, boolean>(\n files.map(f => [stripTrailingSlashes(f), true]),\n )\n const filter = opt.filter\n\n const mapHas = (file: string, r: string = ''): boolean => {\n const root = r || parse(file).root || '.'\n let ret: boolean\n if (file === root) ret = false\n else {\n const m = map.get(file)\n ret = m !== undefined ? m : mapHas(dirname(file), root)\n }\n\n map.set(file, ret)\n return ret\n }\n\n opt.filter =\n filter ?\n (file, entry) =>\n filter(file, entry) && mapHas(stripTrailingSlashes(file))\n : file => mapHas(stripTrailingSlashes(file))\n}\n\nconst listFileSync = (opt: TarOptionsSyncFile) => {\n const p = new Parser(opt)\n const file = opt.file\n let fd: number | undefined\n try {\n fd = fs.openSync(file, 'r')\n const stat: fs.Stats = fs.fstatSync(fd)\n const readSize: number = opt.maxReadSize || 16 * 1024 * 1024\n if (stat.size < readSize) {\n const buf = Buffer.allocUnsafe(stat.size)\n const read = fs.readSync(fd, buf, 0, stat.size, 0)\n p.end(read === buf.byteLength ? buf : buf.subarray(0, read))\n } else {\n let pos = 0\n const buf = Buffer.allocUnsafe(readSize)\n while (pos < stat.size) {\n const bytesRead = fs.readSync(fd, buf, 0, readSize, pos)\n if (bytesRead === 0) break\n pos += bytesRead\n p.write(buf.subarray(0, bytesRead))\n }\n p.end()\n }\n } finally {\n if (typeof fd === 'number') {\n try {\n fs.closeSync(fd)\n /* c8 ignore next */\n } catch {}\n }\n }\n}\n\nconst listFile = (\n opt: TarOptionsFile,\n _files: string[],\n): Promise<void> => {\n const parse = new Parser(opt)\n const readSize = opt.maxReadSize || 16 * 1024 * 1024\n\n const file = opt.file\n const p = new Promise<void>((resolve, reject) => {\n parse.on('error', reject)\n parse.on('end', resolve)\n\n fs.stat(file, (er, stat) => {\n if (er) {\n reject(er)\n } else {\n const stream = new fsm.ReadStream(file, {\n readSize: readSize,\n size: stat.size,\n })\n stream.on('error', reject)\n stream.pipe(parse)\n }\n })\n })\n return p\n}\n\nexport const list = makeCommand(\n listFileSync,\n listFile,\n opt => new Parser(opt) as Parser & { sync: true },\n opt => new Parser(opt),\n (opt, files) => {\n if (files?.length) filesFilter(opt, files)\n if (!opt.noResume) onReadEntryFunction(opt)\n },\n)\n", "// turn tar(1) style args like `C` into the more verbose things like `cwd`\n\nimport { type GzipOptions, type ZlibOptions } from 'minizlib'\nimport { type Stats } from 'node:fs'\nimport { type ReadEntry } from './read-entry.js'\nimport { type WarnData } from './warn-method.js'\nimport type { WriteEntry } from './write-entry.js'\n\nconst argmap = new Map<keyof TarOptionsWithAliases, keyof TarOptions>([\n ['C', 'cwd'],\n ['f', 'file'],\n ['z', 'gzip'],\n ['P', 'preservePaths'],\n ['U', 'unlink'],\n ['strip-components', 'strip'],\n ['stripComponents', 'strip'],\n ['keep-newer', 'newer'],\n ['keepNewer', 'newer'],\n ['keep-newer-files', 'newer'],\n ['keepNewerFiles', 'newer'],\n ['k', 'keep'],\n ['keep-existing', 'keep'],\n ['keepExisting', 'keep'],\n ['m', 'noMtime'],\n ['no-mtime', 'noMtime'],\n ['p', 'preserveOwner'],\n ['L', 'follow'],\n ['h', 'follow'],\n ['onentry', 'onReadEntry'],\n])\n\n/**\n * The options that can be provided to tar commands.\n *\n * Note that some of these are only relevant for certain commands, since\n * they are specific to reading or writing.\n *\n * Aliases are provided in the {@link TarOptionsWithAliases} type.\n */\nexport interface TarOptions {\n //////////////////////////\n // shared options\n\n /**\n * Perform all I/O operations synchronously. If the stream is ended\n * immediately, then it will be processed entirely synchronously.\n */\n sync?: boolean\n\n /**\n * The tar file to be read and/or written. When this is set, a stream\n * is not returned. Asynchronous commands will return a promise indicating\n * when the operation is completed, and synchronous commands will return\n * immediately.\n */\n file?: string\n\n /**\n * Treat warnings as crash-worthy errors. Defaults false.\n */\n strict?: boolean\n\n /**\n * The effective current working directory for this tar command\n */\n cwd?: string\n\n /**\n * When creating a tar archive, this can be used to compress it as well.\n * Set to `true` to use the default gzip options, or customize them as\n * needed.\n *\n * When reading, if this is unset, then the compression status will be\n * inferred from the archive data. This is generally best, unless you are\n * sure of the compression settings in use to create the archive, and want to\n * fail if the archive doesn't match expectations.\n */\n gzip?: boolean | GzipOptions\n\n /**\n * When creating archives, preserve absolute and `..` paths in the archive,\n * rather than sanitizing them under the cwd.\n *\n * When extracting, allow absolute paths, paths containing `..`, and\n * extracting through symbolic links. By default, the root `/` is stripped\n * from absolute paths (eg, turning `/x/y/z` into `x/y/z`), paths containing\n * `..` are not extracted, and any file whose location would be modified by a\n * symbolic link is not extracted.\n *\n * **WARNING** This is almost always unsafe, and must NEVER be used on\n * archives from untrusted sources, such as user input, and every entry must\n * be validated to ensure it is safe to write. Even if the input is not\n * malicious, mistakes can cause a lot of damage!\n */\n preservePaths?: boolean\n\n /**\n * When extracting, do not set the `mtime` value for extracted entries to\n * match the `mtime` in the archive.\n *\n * When creating archives, do not store the `mtime` value in the entry. Note\n * that this prevents properly using other mtime-based features (such as\n * `tar.update` or the `newer` option) with the resulting archive.\n */\n noMtime?: boolean\n\n /**\n * Set to `true` or an object with settings for `zlib.BrotliCompress()` to\n * create a brotli-compressed archive\n *\n * When extracting, this will cause the archive to be treated as a\n * brotli-compressed file if set to `true` or a ZlibOptions object.\n *\n * If set `false`, then brotli options will not be used.\n *\n * If this, the `gzip`, and `zstd` options are left `undefined`, then tar\n * will attempt to infer the brotli compression status, but can only do so\n * based on the filename. If the filename ends in `.tbr` or `.tar.br`, and\n * the first 512 bytes are not a valid tar header, then brotli decompression\n * will be attempted.\n */\n brotli?: boolean | ZlibOptions\n\n /**\n * Set to `true` or an object with settings for `zstd.compress()` to\n * create a zstd-compressed archive\n *\n * When extracting, this will cause the archive to be treated as a\n * zstd-compressed file if set to `true` or a ZlibOptions object.\n *\n * If set `false`, then zstd options will not be used.\n *\n * If this, the `gzip`, and `brotli` options are left `undefined`, then tar\n * will attempt to infer the zstd compression status, but can only do so\n * based on the filename. If the filename ends in `.tzst` or `.tar.zst`, and\n * the first 512 bytes are not a valid tar header, then zstd decompression\n * will be attempted.\n */\n zstd?: boolean | ZlibOptions\n\n /**\n * A function that is called with `(path, stat)` when creating an archive, or\n * `(path, entry)` when extracting. Return true to process the file/entry, or\n * false to exclude it.\n */\n filter?: (path: string, entry: Stats | ReadEntry) => boolean\n\n /**\n * A function that gets called for any warning encountered.\n *\n * Note: if `strict` is set, then the warning will throw, and this method\n * will not be called.\n */\n onwarn?: (code: string, message: string, data: WarnData) => unknown\n\n //////////////////////////\n // extraction options\n\n /**\n * When extracting, unlink files before creating them. Without this option,\n * tar overwrites existing files, which preserves existing hardlinks. With\n * this option, existing hardlinks will be broken, as will any symlink that\n * would affect the location of an extracted file.\n */\n unlink?: boolean\n\n /**\n * When extracting, strip the specified number of path portions from the\n * entry path. For example, with `{strip: 2}`, the entry `a/b/c/d` would be\n * extracted to `{cwd}/c/d`.\n *\n * Any entry whose entire path is stripped will be excluded.\n */\n strip?: number\n\n /**\n * When extracting, keep the existing file on disk if it's newer than the\n * file in the archive.\n */\n newer?: boolean\n\n /**\n * When extracting, do not overwrite existing files at all.\n */\n keep?: boolean\n\n /**\n * When extracting, set the `uid` and `gid` of extracted entries to the `uid`\n * and `gid` fields in the archive. Defaults to true when run as root, and\n * false otherwise.\n *\n * If false, then files and directories will be set with the owner and group\n * of the user running the process. This is similar to `-p` in `tar(1)`, but\n * ACLs and other system-specific data is never unpacked in this\n * implementation, and modes are set by default already.\n */\n preserveOwner?: boolean\n\n /**\n * The maximum depth of subfolders to extract into. This defaults to 1024.\n * Anything deeper than the limit will raise a warning and skip the entry.\n * Set to `Infinity` to remove the limitation.\n */\n maxDepth?: number\n\n /**\n * When extracting, force all created files and directories, and all\n * implicitly created directories, to be owned by the specified user id,\n * regardless of the `uid` field in the archive.\n *\n * Cannot be used along with `preserveOwner`. Requires also setting the `gid`\n * option.\n */\n uid?: number\n\n /**\n * When extracting, force all created files and directories, and all\n * implicitly created directories, to be owned by the specified group id,\n * regardless of the `gid` field in the archive.\n *\n * Cannot be used along with `preserveOwner`. Requires also setting the `uid`\n * option.\n */\n gid?: number\n\n /**\n * When extracting, provide a function that takes an `entry` object, and\n * returns a stream, or any falsey value. If a stream is provided, then that\n * stream's data will be written instead of the contents of the archive\n * entry. If a falsey value is provided, then the entry is written to disk as\n * normal.\n *\n * To exclude items from extraction, use the `filter` option.\n *\n * Note that using an asynchronous stream type with the `transform` option\n * will cause undefined behavior in synchronous extractions.\n * [MiniPass](http://npm.im/minipass)-based streams are designed for this use\n * case.\n */\n transform?: (entry: ReadEntry) => ReadEntry\n\n /**\n * Call `chmod()` to ensure that extracted files match the entry's mode\n * field. Without this field set, all mode fields in archive entries are a\n * best effort attempt only.\n *\n * Setting this necessitates a call to the deprecated `process.umask()`\n * method to determine the default umask value, unless a `processUmask`\n * config is provided as well.\n *\n * If not set, tar will attempt to create file system entries with whatever\n * mode is provided, and let the implicit process `umask` apply normally, but\n * if a file already exists to be written to, then its existing mode will not\n * be modified.\n *\n * When setting `chmod: true`, it is highly recommend to set the\n * {@link TarOptions#processUmask} option as well, to avoid the call to the\n * deprecated (and thread-unsafe) `process.umask()` method.\n */\n chmod?: boolean\n\n /**\n * When setting the {@link TarOptions#chmod} option to `true`, you may\n * provide a value here to avoid having to call the deprecated and\n * thread-unsafe `process.umask()` method.\n *\n * This has no effect with `chmod` is not set to true, as mode values are not\n * set explicitly anyway. If `chmod` is set to `true`, and a value is not\n * provided here, then `process.umask()` must be called, which will result in\n * deprecation warnings.\n *\n * The most common values for this are `0o22` (resulting in directories\n * created with mode `0o755` and files with `0o644` by default) and `0o2`\n * (resulting in directores created with mode `0o775` and files `0o664`, so\n * they are group-writable).\n */\n processUmask?: number\n\n //////////////////////////\n // archive creation options\n\n /**\n * When parsing/listing archives, `entry` streams are by default resumed\n * (set into \"flowing\" mode) immediately after the call to `onReadEntry()`.\n * Set `noResume: true` to suppress this behavior.\n *\n * Note that when this is set, the stream will never complete until the\n * data is consumed somehow.\n *\n * Set automatically in extract operations, since the entry is piped to\n * a file system entry right away. Only relevant when parsing.\n */\n noResume?: boolean\n\n /**\n * When creating, updating, or replacing within archives, this method will\n * be called with each WriteEntry that is created.\n */\n onWriteEntry?: (entry: WriteEntry) => unknown\n\n /**\n * When extracting or listing archives, this method will be called with\n * each entry that is not excluded by a `filter`.\n *\n * Important when listing archives synchronously from a file, because there\n * is otherwise no way to interact with the data!\n */\n onReadEntry?: (entry: ReadEntry) => unknown\n\n /**\n * Pack the targets of symbolic links rather than the link itself.\n */\n follow?: boolean\n\n /**\n * When creating archives, omit any metadata that is system-specific:\n * `ctime`, `atime`, `uid`, `gid`, `uname`, `gname`, `dev`, `ino`, and\n * `nlink`. Note that `mtime` is still included, because this is necessary\n * for other time-based operations such as `tar.update`. Additionally, `mode`\n * is set to a \"reasonable default\" for mose unix systems, based on an\n * effective `umask` of `0o22`.\n *\n * This also defaults the `portable` option in the gzip configs when creating\n * a compressed archive, in order to produce deterministic archives that are\n * not operating-system specific.\n */\n portable?: boolean\n\n /**\n * When creating archives, do not recursively archive the contents of\n * directories. By default, archiving a directory archives all of its\n * contents as well.\n */\n noDirRecurse?: boolean\n\n /**\n * Suppress Pax extended headers when creating archives. Note that this means\n * long paths and linkpaths will be truncated, and large or negative numeric\n * values may be interpreted incorrectly.\n */\n noPax?: boolean\n\n /**\n * Set to a `Date` object to force a specific `mtime` value for everything\n * written to an archive.\n *\n * This is useful when creating archives that are intended to be\n * deterministic based on their contents, irrespective of the file's last\n * modification time.\n *\n * Overridden by `noMtime`.\n */\n mtime?: Date\n\n /**\n * A path portion to prefix onto the entries added to an archive.\n */\n prefix?: string\n\n /**\n * The mode to set on any created file archive, defaults to 0o666\n * masked by the process umask, often resulting in 0o644.\n *\n * This does *not* affect the mode fields of individual entries, or the\n * mode status of extracted entries on the filesystem.\n */\n mode?: number\n\n //////////////////////////\n // internal options\n\n /**\n * A cache of mtime values, to avoid having to stat the same file repeatedly.\n *\n * @internal\n */\n mtimeCache?: Map<string, Date>\n\n /**\n * maximum buffer size for `fs.read()` operations.\n *\n * @internal\n */\n maxReadSize?: number\n\n /**\n * Filter modes of entries being unpacked, like `process.umask()`\n *\n * @internal\n */\n umask?: number\n\n /**\n * Default mode for directories. Used for all implicitly created directories,\n * and any directories in the archive that do not have a mode field.\n *\n * @internal\n */\n dmode?: number\n\n /**\n * default mode for files\n *\n * @internal\n */\n fmode?: number\n\n /**\n * Map that tracks which directories already exist, for extraction\n *\n * @internal\n */\n dirCache?: Map<string, boolean>\n /**\n * maximum supported size of meta entries. Defaults to 1MB\n *\n * @internal\n */\n maxMetaEntrySize?: number\n\n /**\n * A Map object containing the device and inode value for any file whose\n * `nlink` value is greater than 1, to identify hard links when creating\n * archives.\n *\n * @internal\n */\n linkCache?: Map<LinkCacheKey, string>\n\n /**\n * A map object containing the results of `fs.readdir()` calls.\n *\n * @internal\n */\n readdirCache?: Map<string, string[]>\n\n /**\n * A cache of all `lstat` results, for use in creating archives.\n *\n * @internal\n */\n statCache?: Map<string, Stats>\n\n /**\n * Number of concurrent jobs to run when creating archives.\n *\n * Defaults to 4.\n *\n * @internal\n */\n jobs?: number\n\n /**\n * Automatically set to true on Windows systems.\n *\n * When extracting, causes behavior where filenames containing `<|>?:`\n * characters are converted to windows-compatible escape sequences in the\n * created filesystem entries.\n *\n * When packing, causes behavior where paths replace `\\` with `/`, and\n * filenames containing the windows-compatible escaped forms of `<|>?:` are\n * converted to actual `<|>?:` characters in the archive.\n *\n * @internal\n */\n win32?: boolean\n\n /**\n * For `WriteEntry` objects, the absolute path to the entry on the\n * filesystem. By default, this is `resolve(cwd, entry.path)`, but it can be\n * overridden explicitly.\n *\n * @internal\n */\n absolute?: string\n\n /**\n * Used with Parser stream interface, to attach and take over when the\n * stream is completely parsed. If this is set, then the prefinish,\n * finish, and end events will not fire, and are the responsibility of\n * the ondone method to emit properly.\n *\n * @internal\n */\n ondone?: () => void\n\n /**\n * Mostly for testing, but potentially useful in some cases.\n * Forcibly trigger a chown on every entry, no matter what.\n */\n forceChown?: boolean\n\n /**\n * ambiguous deprecated name for {@link onReadEntry}\n *\n * @deprecated\n */\n onentry?: (entry: ReadEntry) => unknown\n}\n\nexport type TarOptionsSync = TarOptions & { sync: true }\nexport type TarOptionsAsync = TarOptions & { sync?: false }\nexport type TarOptionsFile = TarOptions & { file: string }\nexport type TarOptionsNoFile = TarOptions & { file?: undefined }\nexport type TarOptionsSyncFile = TarOptionsSync & TarOptionsFile\nexport type TarOptionsAsyncFile = TarOptionsAsync & TarOptionsFile\nexport type TarOptionsSyncNoFile = TarOptionsSync & TarOptionsNoFile\nexport type TarOptionsAsyncNoFile = TarOptionsAsync & TarOptionsNoFile\n\nexport type LinkCacheKey = `${number}:${number}`\n\nexport interface TarOptionsWithAliases extends TarOptions {\n /**\n * The effective current working directory for this tar command\n */\n C?: TarOptions['cwd']\n /**\n * The tar file to be read and/or written. When this is set, a stream\n * is not returned. Asynchronous commands will return a promise indicating\n * when the operation is completed, and synchronous commands will return\n * immediately.\n */\n f?: TarOptions['file']\n /**\n * When creating a tar archive, this can be used to compress it as well.\n * Set to `true` to use the default gzip options, or customize them as\n * needed.\n *\n * When reading, if this is unset, then the compression status will be\n * inferred from the archive data. This is generally best, unless you are\n * sure of the compression settings in use to create the archive, and want to\n * fail if the archive doesn't match expectations.\n */\n z?: TarOptions['gzip']\n /**\n * When creating archives, preserve absolute and `..` paths in the archive,\n * rather than sanitizing them under the cwd.\n *\n * When extracting, allow absolute paths, paths containing `..`, and\n * extracting through symbolic links. By default, the root `/` is stripped\n * from absolute paths (eg, turning `/x/y/z` into `x/y/z`), paths containing\n * `..` are not extracted, and any file whose location would be modified by a\n * symbolic link is not extracted.\n *\n * **WARNING** This is almost always unsafe, and must NEVER be used on\n * archives from untrusted sources, such as user input, and every entry must\n * be validated to ensure it is safe to write. Even if the input is not\n * malicious, mistakes can cause a lot of damage!\n */\n P?: TarOptions['preservePaths']\n /**\n * When extracting, unlink files before creating them. Without this option,\n * tar overwrites existing files, which preserves existing hardlinks. With\n * this option, existing hardlinks will be broken, as will any symlink that\n * would affect the location of an extracted file.\n */\n U?: TarOptions['unlink']\n /**\n * When extracting, strip the specified number of path portions from the\n * entry path. For example, with `{strip: 2}`, the entry `a/b/c/d` would be\n * extracted to `{cwd}/c/d`.\n */\n 'strip-components'?: TarOptions['strip']\n /**\n * When extracting, strip the specified number of path portions from the\n * entry path. For example, with `{strip: 2}`, the entry `a/b/c/d` would be\n * extracted to `{cwd}/c/d`.\n */\n stripComponents?: TarOptions['strip']\n /**\n * When extracting, keep the existing file on disk if it's newer than the\n * file in the archive.\n */\n 'keep-newer'?: TarOptions['newer']\n /**\n * When extracting, keep the existing file on disk if it's newer than the\n * file in the archive.\n */\n keepNewer?: TarOptions['newer']\n /**\n * When extracting, keep the existing file on disk if it's newer than the\n * file in the archive.\n */\n 'keep-newer-files'?: TarOptions['newer']\n /**\n * When extracting, keep the existing file on disk if it's newer than the\n * file in the archive.\n */\n keepNewerFiles?: TarOptions['newer']\n /**\n * When extracting, do not overwrite existing files at all.\n */\n k?: TarOptions['keep']\n /**\n * When extracting, do not overwrite existing files at all.\n */\n 'keep-existing'?: TarOptions['keep']\n /**\n * When extracting, do not overwrite existing files at all.\n */\n keepExisting?: TarOptions['keep']\n /**\n * When extracting, do not set the `mtime` value for extracted entries to\n * match the `mtime` in the archive.\n *\n * When creating archives, do not store the `mtime` value in the entry. Note\n * that this prevents properly using other mtime-based features (such as\n * `tar.update` or the `newer` option) with the resulting archive.\n */\n m?: TarOptions['noMtime']\n /**\n * When extracting, do not set the `mtime` value for extracted entries to\n * match the `mtime` in the archive.\n *\n * When creating archives, do not store the `mtime` value in the entry. Note\n * that this prevents properly using other mtime-based features (such as\n * `tar.update` or the `newer` option) with the resulting archive.\n */\n 'no-mtime'?: TarOptions['noMtime']\n /**\n * When extracting, set the `uid` and `gid` of extracted entries to the `uid`\n * and `gid` fields in the archive. Defaults to true when run as root, and\n * false otherwise.\n *\n * If false, then files and directories will be set with the owner and group\n * of the user running the process. This is similar to `-p` in `tar(1)`, but\n * ACLs and other system-specific data is never unpacked in this\n * implementation, and modes are set by default already.\n */\n p?: TarOptions['preserveOwner']\n /**\n * Pack the targets of symbolic links rather than the link itself.\n */\n L?: TarOptions['follow']\n /**\n * Pack the targets of symbolic links rather than the link itself.\n */\n h?: TarOptions['follow']\n\n /**\n * Deprecated option. Set explicitly false to set `chmod: true`. Ignored\n * if {@link TarOptions#chmod} is set to any boolean value.\n *\n * @deprecated\n */\n noChmod?: boolean\n}\n\nexport type TarOptionsWithAliasesSync = TarOptionsWithAliases & {\n sync: true\n}\nexport type TarOptionsWithAliasesAsync = TarOptionsWithAliases & {\n sync?: false\n}\nexport type TarOptionsWithAliasesFile =\n | (TarOptionsWithAliases & {\n file: string\n })\n | (TarOptionsWithAliases & { f: string })\nexport type TarOptionsWithAliasesSyncFile = TarOptionsWithAliasesSync &\n TarOptionsWithAliasesFile\nexport type TarOptionsWithAliasesAsyncFile = TarOptionsWithAliasesAsync &\n TarOptionsWithAliasesFile\n\nexport type TarOptionsWithAliasesNoFile = TarOptionsWithAliases & {\n f?: undefined\n file?: undefined\n}\n\nexport type TarOptionsWithAliasesSyncNoFile = TarOptionsWithAliasesSync &\n TarOptionsWithAliasesNoFile\nexport type TarOptionsWithAliasesAsyncNoFile = TarOptionsWithAliasesAsync &\n TarOptionsWithAliasesNoFile\n\nexport const isSyncFile = <O extends TarOptions>(\n o: O,\n): o is O & TarOptionsSyncFile => !!o.sync && !!o.file\nexport const isAsyncFile = <O extends TarOptions>(\n o: O,\n): o is O & TarOptionsAsyncFile => !o.sync && !!o.file\nexport const isSyncNoFile = <O extends TarOptions>(\n o: O,\n): o is O & TarOptionsSyncNoFile => !!o.sync && !o.file\nexport const isAsyncNoFile = <O extends TarOptions>(\n o: O,\n): o is O & TarOptionsAsyncNoFile => !o.sync && !o.file\nexport const isSync = <O extends TarOptions>(\n o: O,\n): o is O & TarOptionsSync => !!o.sync\nexport const isAsync = <O extends TarOptions>(\n o: O,\n): o is O & TarOptionsAsync => !o.sync\nexport const isFile = <O extends TarOptions>(\n o: O,\n): o is O & TarOptionsFile => !!o.file\nexport const isNoFile = <O extends TarOptions>(\n o: O,\n): o is O & TarOptionsNoFile => !o.file\n\nconst dealiasKey = (k: keyof TarOptionsWithAliases): keyof TarOptions => {\n const d = argmap.get(k)\n if (d) return d\n return k as keyof TarOptions\n}\n\nexport const dealias = (opt: TarOptionsWithAliases = {}): TarOptions => {\n if (!opt) return {}\n const result: Record<string, unknown> = {}\n for (const [key, v] of Object.entries(opt) as [\n keyof TarOptionsWithAliases,\n unknown,\n ][]) {\n // TS doesn't know that aliases are going to always be the same type\n const k = dealiasKey(key)\n result[k] = v\n }\n // affordance for deprecated noChmod -> chmod\n if (result.chmod === undefined && result.noChmod === false) {\n result.chmod = true\n }\n delete result.noChmod\n return result as TarOptions\n}\n", "import type {\n TarOptions,\n TarOptionsAsyncFile,\n TarOptionsAsyncNoFile,\n TarOptionsSyncFile,\n TarOptionsSyncNoFile,\n TarOptionsWithAliases,\n TarOptionsWithAliasesAsync,\n TarOptionsWithAliasesAsyncFile,\n TarOptionsWithAliasesAsyncNoFile,\n TarOptionsWithAliasesFile,\n TarOptionsWithAliasesNoFile,\n TarOptionsWithAliasesSync,\n TarOptionsWithAliasesSyncFile,\n TarOptionsWithAliasesSyncNoFile,\n} from './options.js'\nimport {\n dealias,\n isAsyncFile,\n isAsyncNoFile,\n isSyncFile,\n isSyncNoFile,\n} from './options.js'\n\nexport type CB = (er?: Error) => unknown\n\nexport type TarCommand<AsyncClass, SyncClass extends { sync: true }> = {\n // async and no file specified\n (): AsyncClass\n (opt: TarOptionsWithAliasesAsyncNoFile): AsyncClass\n (entries: string[]): AsyncClass\n (opt: TarOptionsWithAliasesAsyncNoFile, entries: string[]): AsyncClass\n} & {\n // sync and no file\n (opt: TarOptionsWithAliasesSyncNoFile): SyncClass\n (opt: TarOptionsWithAliasesSyncNoFile, entries: string[]): SyncClass\n} & {\n // async and file\n (opt: TarOptionsWithAliasesAsyncFile): Promise<void>\n (opt: TarOptionsWithAliasesAsyncFile, entries: string[]): Promise<void>\n (opt: TarOptionsWithAliasesAsyncFile, cb: CB): Promise<void>\n (\n opt: TarOptionsWithAliasesAsyncFile,\n entries: string[],\n cb: CB,\n ): Promise<void>\n} & {\n // sync and file\n (opt: TarOptionsWithAliasesSyncFile): void\n (opt: TarOptionsWithAliasesSyncFile, entries: string[]): void\n} & {\n // sync, maybe file\n (opt: TarOptionsWithAliasesSync): typeof opt extends (\n TarOptionsWithAliasesFile\n ) ?\n void\n : typeof opt extends TarOptionsWithAliasesNoFile ? SyncClass\n : void | SyncClass\n (\n opt: TarOptionsWithAliasesSync,\n entries: string[],\n ): typeof opt extends TarOptionsWithAliasesFile ? void\n : typeof opt extends TarOptionsWithAliasesNoFile ? SyncClass\n : void | SyncClass\n} & {\n // async, maybe file\n (opt: TarOptionsWithAliasesAsync): typeof opt extends (\n TarOptionsWithAliasesFile\n ) ?\n Promise<void>\n : typeof opt extends TarOptionsWithAliasesNoFile ? AsyncClass\n : Promise<void> | AsyncClass\n (\n opt: TarOptionsWithAliasesAsync,\n entries: string[],\n ): typeof opt extends TarOptionsWithAliasesFile ? Promise<void>\n : typeof opt extends TarOptionsWithAliasesNoFile ? AsyncClass\n : Promise<void> | AsyncClass\n (opt: TarOptionsWithAliasesAsync, cb: CB): Promise<void>\n (\n opt: TarOptionsWithAliasesAsync,\n entries: string[],\n cb: CB,\n ): typeof opt extends TarOptionsWithAliasesFile ? Promise<void>\n : typeof opt extends TarOptionsWithAliasesNoFile ? never\n : Promise<void>\n} & {\n // maybe sync, file\n (opt: TarOptionsWithAliasesFile): Promise<void> | void\n (\n opt: TarOptionsWithAliasesFile,\n entries: string[],\n ): typeof opt extends TarOptionsWithAliasesSync ? void\n : typeof opt extends TarOptionsWithAliasesAsync ? Promise<void>\n : Promise<void> | void\n (opt: TarOptionsWithAliasesFile, cb: CB): Promise<void>\n (\n opt: TarOptionsWithAliasesFile,\n entries: string[],\n cb: CB,\n ): typeof opt extends TarOptionsWithAliasesSync ? never\n : typeof opt extends TarOptionsWithAliasesAsync ? Promise<void>\n : Promise<void>\n} & {\n // maybe sync, no file\n (opt: TarOptionsWithAliasesNoFile): typeof opt extends (\n TarOptionsWithAliasesSync\n ) ?\n SyncClass\n : typeof opt extends TarOptionsWithAliasesAsync ? AsyncClass\n : SyncClass | AsyncClass\n (\n opt: TarOptionsWithAliasesNoFile,\n entries: string[],\n ): typeof opt extends TarOptionsWithAliasesSync ? SyncClass\n : typeof opt extends TarOptionsWithAliasesAsync ? AsyncClass\n : SyncClass | AsyncClass\n} & {\n // maybe sync, maybe file\n (opt: TarOptionsWithAliases): typeof opt extends (\n TarOptionsWithAliasesFile\n ) ?\n typeof opt extends TarOptionsWithAliasesSync ? void\n : typeof opt extends TarOptionsWithAliasesAsync ? Promise<void>\n : void | Promise<void>\n : typeof opt extends TarOptionsWithAliasesNoFile ?\n typeof opt extends TarOptionsWithAliasesSync ? SyncClass\n : typeof opt extends TarOptionsWithAliasesAsync ? AsyncClass\n : SyncClass | AsyncClass\n : typeof opt extends TarOptionsWithAliasesSync ? SyncClass | void\n : typeof opt extends TarOptionsWithAliasesAsync ?\n AsyncClass | Promise<void>\n : SyncClass | void | AsyncClass | Promise<void>\n} & {\n // extras\n syncFile: (opt: TarOptionsSyncFile, entries: string[]) => void\n asyncFile: (\n opt: TarOptionsAsyncFile,\n entries: string[],\n cb?: CB,\n ) => Promise<void>\n syncNoFile: (opt: TarOptionsSyncNoFile, entries: string[]) => SyncClass\n asyncNoFile: (\n opt: TarOptionsAsyncNoFile,\n entries: string[],\n ) => AsyncClass\n validate?: (opt: TarOptions, entries?: string[]) => void\n}\n\nexport const makeCommand = <AsyncClass, SyncClass extends { sync: true }>(\n syncFile: (opt: TarOptionsSyncFile, entries: string[]) => void,\n asyncFile: (\n opt: TarOptionsAsyncFile,\n entries: string[],\n cb?: CB,\n ) => Promise<void>,\n syncNoFile: (opt: TarOptionsSyncNoFile, entries: string[]) => SyncClass,\n asyncNoFile: (\n opt: TarOptionsAsyncNoFile,\n entries: string[],\n ) => AsyncClass,\n validate?: (opt: TarOptions, entries?: string[]) => void,\n): TarCommand<AsyncClass, SyncClass> => {\n return Object.assign(\n (\n opt_: TarOptionsWithAliases | string[] = [],\n entries?: string[] | CB,\n cb?: CB,\n ) => {\n if (Array.isArray(opt_)) {\n entries = opt_\n opt_ = {}\n }\n\n if (typeof entries === 'function') {\n cb = entries\n entries = undefined\n }\n\n entries = !entries ? [] : Array.from(entries)\n\n const opt = dealias(opt_)\n\n validate?.(opt, entries)\n\n if (isSyncFile(opt)) {\n if (typeof cb === 'function') {\n throw new TypeError(\n 'callback not supported for sync tar functions',\n )\n }\n return syncFile(opt, entries)\n } else if (isAsyncFile(opt)) {\n const p = asyncFile(opt, entries)\n return cb ? p.then(() => cb(), cb) : p\n } else if (isSyncNoFile(opt)) {\n if (typeof cb === 'function') {\n throw new TypeError(\n 'callback not supported for sync tar functions',\n )\n }\n return syncNoFile(opt, entries)\n } else if (isAsyncNoFile(opt)) {\n if (typeof cb === 'function') {\n throw new TypeError('callback only supported with file option')\n }\n return asyncNoFile(opt, entries)\n /* c8 ignore start */\n }\n throw new Error('impossible options??')\n\n /* c8 ignore stop */\n },\n {\n syncFile,\n asyncFile,\n syncNoFile,\n asyncNoFile,\n validate,\n },\n ) as TarCommand<AsyncClass, SyncClass>\n}\n", "// this[BUFFER] is the remainder of a chunk if we're waiting for\n// the full 512 bytes of a header to come in. We will Buffer.concat()\n// it to the next write(), which is a mem copy, but a small one.\n//\n// this[QUEUE] is a list of entries that haven't been emitted\n// yet this can only get filled up if the user keeps write()ing after\n// a write() returns false, or does a write() with more than one entry\n//\n// We don't buffer chunks, we always parse them and either create an\n// entry, or push it into the active entry. The ReadEntry class knows\n// to throw data away if .ignore=true\n//\n// Shift entry off the buffer when it emits 'end', and emit 'entry' for\n// the next one in the list.\n//\n// At any time, we're pushing body chunks into the entry at WRITEENTRY,\n// and waiting for 'end' on the entry at READENTRY\n//\n// ignored entries get .resume() called on them straight away\n\nimport { EventEmitter as EE } from 'events'\nimport { BrotliDecompress, Unzip, ZstdDecompress } from 'minizlib'\nimport { Header } from './header.js'\nimport type { TarOptions } from './options.js'\nimport { Pax } from './pax.js'\nimport { ReadEntry } from './read-entry.js'\nimport { warnMethod, type WarnData, type Warner } from './warn-method.js'\n\nconst maxMetaEntrySize = 1024 * 1024\nconst gzipHeader = Buffer.from([0x1f, 0x8b])\nconst zstdHeader = Buffer.from([0x28, 0xb5, 0x2f, 0xfd])\nconst ZIP_HEADER_LEN = Math.max(gzipHeader.length, zstdHeader.length)\n\nconst STATE = Symbol('state')\nconst WRITEENTRY = Symbol('writeEntry')\nconst READENTRY = Symbol('readEntry')\nconst NEXTENTRY = Symbol('nextEntry')\nconst PROCESSENTRY = Symbol('processEntry')\nconst EX = Symbol('extendedHeader')\nconst GEX = Symbol('globalExtendedHeader')\nconst META = Symbol('meta')\nconst EMITMETA = Symbol('emitMeta')\nconst BUFFER = Symbol('buffer')\nconst QUEUE = Symbol('queue')\nconst ENDED = Symbol('ended')\nconst EMITTEDEND = Symbol('emittedEnd')\nconst EMIT = Symbol('emit')\nconst UNZIP = Symbol('unzip')\nconst CONSUMECHUNK = Symbol('consumeChunk')\nconst CONSUMECHUNKSUB = Symbol('consumeChunkSub')\nconst CONSUMEBODY = Symbol('consumeBody')\nconst CONSUMEMETA = Symbol('consumeMeta')\nconst CONSUMEHEADER = Symbol('consumeHeader')\nconst CONSUMING = Symbol('consuming')\nconst BUFFERCONCAT = Symbol('bufferConcat')\nconst MAYBEEND = Symbol('maybeEnd')\nconst WRITING = Symbol('writing')\nconst ABORTED = Symbol('aborted')\nconst DONE = Symbol('onDone')\nconst SAW_VALID_ENTRY = Symbol('sawValidEntry')\nconst SAW_NULL_BLOCK = Symbol('sawNullBlock')\nconst SAW_EOF = Symbol('sawEOF')\nconst CLOSESTREAM = Symbol('closeStream')\n\nconst noop = () => true\n\nexport type State = 'begin' | 'header' | 'ignore' | 'meta' | 'body'\n\nexport class Parser extends EE implements Warner {\n file: string\n strict: boolean\n maxMetaEntrySize: number\n filter: Exclude<TarOptions['filter'], undefined>\n brotli?: TarOptions['brotli']\n zstd?: TarOptions['zstd']\n\n writable: true = true\n readable: false = false;\n\n [QUEUE]: (ReadEntry | [string | symbol, unknown, unknown])[] = [];\n [BUFFER]?: Buffer;\n [READENTRY]?: ReadEntry;\n [WRITEENTRY]?: ReadEntry;\n [STATE]: State = 'begin';\n [META]: string = '';\n [EX]?: Pax;\n [GEX]?: Pax;\n [ENDED]: boolean = false;\n [UNZIP]?: false | Unzip | BrotliDecompress | ZstdDecompress;\n [ABORTED]: boolean = false;\n [SAW_VALID_ENTRY]?: boolean;\n [SAW_NULL_BLOCK]: boolean = false;\n [SAW_EOF]: boolean = false;\n [WRITING]: boolean = false;\n [CONSUMING]: boolean = false;\n [EMITTEDEND]: boolean = false\n\n constructor(opt: TarOptions = {}) {\n super()\n\n this.file = opt.file || ''\n\n // these BADARCHIVE errors can't be detected early. listen on DONE.\n this.on(DONE, () => {\n if (this[STATE] === 'begin' || this[SAW_VALID_ENTRY] === false) {\n // either less than 1 block of data, or all entries were invalid.\n // Either way, probably not even a tarball.\n this.warn('TAR_BAD_ARCHIVE', 'Unrecognized archive format')\n }\n })\n\n if (opt.ondone) {\n this.on(DONE, opt.ondone)\n } else {\n this.on(DONE, () => {\n this.emit('prefinish')\n this.emit('finish')\n this.emit('end')\n })\n }\n\n this.strict = !!opt.strict\n this.maxMetaEntrySize = opt.maxMetaEntrySize || maxMetaEntrySize\n this.filter = typeof opt.filter === 'function' ? opt.filter : noop\n // Unlike gzip, brotli doesn't have any magic bytes to identify it\n // Users need to explicitly tell us they're extracting a brotli file\n // Or we infer from the file extension\n const isTBR =\n opt.file &&\n (opt.file.endsWith('.tar.br') || opt.file.endsWith('.tbr'))\n // if it's a tbr file it MIGHT be brotli, but we don't know until\n // we look at it and verify it's not a valid tar file.\n this.brotli =\n !(opt.gzip || opt.zstd) && opt.brotli !== undefined ? opt.brotli\n : isTBR ? undefined\n : false\n\n // zstd has magic bytes to identify it, but we also support explicit options\n // and file extension detection\n const isTZST =\n opt.file &&\n (opt.file.endsWith('.tar.zst') || opt.file.endsWith('.tzst'))\n this.zstd =\n !(opt.gzip || opt.brotli) && opt.zstd !== undefined ? opt.zstd\n : isTZST ? true\n : undefined\n\n // have to set this so that streams are ok piping into it\n this.on('end', () => this[CLOSESTREAM]())\n\n if (typeof opt.onwarn === 'function') {\n this.on('warn', opt.onwarn)\n }\n if (typeof opt.onReadEntry === 'function') {\n this.on('entry', opt.onReadEntry)\n }\n }\n\n warn(code: string, message: string | Error, data: WarnData = {}): void {\n warnMethod(this, code, message, data)\n }\n\n [CONSUMEHEADER](chunk: Buffer, position: number) {\n if (this[SAW_VALID_ENTRY] === undefined) {\n this[SAW_VALID_ENTRY] = false\n }\n let header\n try {\n header = new Header(chunk, position, this[EX], this[GEX])\n } catch (er) {\n return this.warn('TAR_ENTRY_INVALID', er as Error)\n }\n\n if (header.nullBlock) {\n if (this[SAW_NULL_BLOCK]) {\n this[SAW_EOF] = true\n // ending an archive with no entries. pointless, but legal.\n if (this[STATE] === 'begin') {\n this[STATE] = 'header'\n }\n this[EMIT]('eof')\n } else {\n this[SAW_NULL_BLOCK] = true\n this[EMIT]('nullBlock')\n }\n } else {\n this[SAW_NULL_BLOCK] = false\n if (!header.cksumValid) {\n this.warn('TAR_ENTRY_INVALID', 'checksum failure', { header })\n } else if (!header.path) {\n this.warn('TAR_ENTRY_INVALID', 'path is required', { header })\n } else {\n const type = header.type\n if (/^(Symbolic)?Link$/.test(type) && !header.linkpath) {\n this.warn('TAR_ENTRY_INVALID', 'linkpath required', {\n header,\n })\n } else if (\n !/^(Symbolic)?Link$/.test(type) &&\n !/^(Global)?ExtendedHeader$/.test(type) &&\n header.linkpath\n ) {\n this.warn('TAR_ENTRY_INVALID', 'linkpath forbidden', {\n header,\n })\n } else {\n const entry = (this[WRITEENTRY] = new ReadEntry(\n header,\n this[EX],\n this[GEX],\n ))\n\n // we do this for meta & ignored entries as well, because they\n // are still valid tar, or else we wouldn't know to ignore them\n if (!this[SAW_VALID_ENTRY]) {\n if (entry.remain) {\n // this might be the one!\n const onend = () => {\n if (!entry.invalid) {\n this[SAW_VALID_ENTRY] = true\n }\n }\n entry.on('end', onend)\n } else {\n this[SAW_VALID_ENTRY] = true\n }\n }\n\n if (entry.meta) {\n if (entry.size > this.maxMetaEntrySize) {\n entry.ignore = true\n this[EMIT]('ignoredEntry', entry)\n this[STATE] = 'ignore'\n entry.resume()\n } else if (entry.size > 0) {\n this[META] = ''\n entry.on('data', c => (this[META] += c))\n this[STATE] = 'meta'\n }\n } else {\n this[EX] = undefined\n entry.ignore = entry.ignore || !this.filter(entry.path, entry)\n\n if (entry.ignore) {\n // probably valid, just not something we care about\n this[EMIT]('ignoredEntry', entry)\n this[STATE] = entry.remain ? 'ignore' : 'header'\n entry.resume()\n } else {\n if (entry.remain) {\n this[STATE] = 'body'\n } else {\n this[STATE] = 'header'\n entry.end()\n }\n\n if (!this[READENTRY]) {\n this[QUEUE].push(entry)\n this[NEXTENTRY]()\n } else {\n this[QUEUE].push(entry)\n }\n }\n }\n }\n }\n }\n }\n\n [CLOSESTREAM]() {\n queueMicrotask(() => this.emit('close'))\n }\n\n [PROCESSENTRY](entry?: ReadEntry | [string | symbol, unknown, unknown]) {\n let go = true\n\n if (!entry) {\n this[READENTRY] = undefined\n go = false\n } else if (Array.isArray(entry)) {\n const [ev, ...args]: [string | symbol, unknown, unknown] = entry\n this.emit(ev, ...args)\n } else {\n this[READENTRY] = entry\n this.emit('entry', entry)\n if (!entry.emittedEnd) {\n entry.on('end', () => this[NEXTENTRY]())\n go = false\n }\n }\n\n return go\n }\n\n [NEXTENTRY]() {\n do {} while (this[PROCESSENTRY](this[QUEUE].shift()))\n\n if (this[QUEUE].length === 0) {\n // At this point, there's nothing in the queue, but we may have an\n // entry which is being consumed (readEntry).\n // If we don't, then we definitely can handle more data.\n // If we do, and either it's flowing, or it has never had any data\n // written to it, then it needs more.\n // The only other possibility is that it has returned false from a\n // write() call, so we wait for the next drain to continue.\n const re = this[READENTRY]\n const drainNow = !re || re.flowing || re.size === re.remain\n if (drainNow) {\n if (!this[WRITING]) {\n this.emit('drain')\n }\n } else {\n re.once('drain', () => this.emit('drain'))\n }\n }\n }\n\n [CONSUMEBODY](chunk: Buffer, position: number) {\n // write up to but no more than writeEntry.blockRemain\n const entry = this[WRITEENTRY]\n /* c8 ignore start */\n if (!entry) {\n throw new Error('attempt to consume body without entry??')\n }\n const br = entry.blockRemain ?? 0\n /* c8 ignore stop */\n const c =\n br >= chunk.length && position === 0 ?\n chunk\n : chunk.subarray(position, position + br)\n\n entry.write(c)\n\n if (!entry.blockRemain) {\n this[STATE] = 'header'\n this[WRITEENTRY] = undefined\n entry.end()\n }\n\n return c.length\n }\n\n [CONSUMEMETA](chunk: Buffer, position: number) {\n const entry = this[WRITEENTRY]\n const ret = this[CONSUMEBODY](chunk, position)\n\n // if we finished, then the entry is reset\n if (!this[WRITEENTRY] && entry) {\n this[EMITMETA](entry)\n }\n\n return ret\n }\n\n [EMIT](ev: string | symbol, data?: unknown, extra?: unknown) {\n if (this[QUEUE].length === 0 && !this[READENTRY]) {\n this.emit(ev, data, extra)\n } else {\n this[QUEUE].push([ev, data, extra])\n }\n }\n\n [EMITMETA](entry: ReadEntry) {\n this[EMIT]('meta', this[META])\n switch (entry.type) {\n case 'ExtendedHeader':\n case 'OldExtendedHeader':\n this[EX] = Pax.parse(this[META], this[EX], false)\n break\n\n case 'GlobalExtendedHeader':\n this[GEX] = Pax.parse(this[META], this[GEX], true)\n break\n\n case 'NextFileHasLongPath':\n case 'OldGnuLongPath': {\n const ex = this[EX] ?? Object.create(null)\n this[EX] = ex\n ex.path = this[META].replace(/\\0.*/, '')\n break\n }\n\n case 'NextFileHasLongLinkpath': {\n const ex = this[EX] || Object.create(null)\n this[EX] = ex\n ex.linkpath = this[META].replace(/\\0.*/, '')\n break\n }\n\n /* c8 ignore start */\n default:\n throw new Error('unknown meta: ' + entry.type)\n /* c8 ignore stop */\n }\n }\n\n abort(error: Error) {\n this[ABORTED] = true\n this.emit('abort', error)\n // always throws, even in non-strict mode\n this.warn('TAR_ABORT', error, { recoverable: false })\n }\n\n write(\n buffer: Uint8Array | string,\n cb?: (err?: Error | null) => void,\n ): boolean\n write(\n str: string,\n encoding?: BufferEncoding,\n cb?: (err?: Error | null) => void,\n ): boolean\n write(\n chunk: Buffer | string,\n encoding?: BufferEncoding | (() => unknown),\n cb?: () => unknown,\n ): boolean {\n if (typeof encoding === 'function') {\n cb = encoding\n encoding = undefined\n }\n if (typeof chunk === 'string') {\n chunk = Buffer.from(\n chunk,\n /* c8 ignore next */\n typeof encoding === 'string' ? encoding : 'utf8',\n )\n }\n if (this[ABORTED]) {\n /* c8 ignore next */\n cb?.()\n return false\n }\n\n // first write, might be gzipped, zstd, or brotli compressed\n const needSniff =\n this[UNZIP] === undefined ||\n (this.brotli === undefined && this[UNZIP] === false)\n if (needSniff && chunk) {\n if (this[BUFFER]) {\n chunk = Buffer.concat([this[BUFFER], chunk])\n this[BUFFER] = undefined\n }\n if (chunk.length < ZIP_HEADER_LEN) {\n this[BUFFER] = chunk\n /* c8 ignore next */\n cb?.()\n return true\n }\n\n // look for gzip header\n for (\n let i = 0;\n this[UNZIP] === undefined && i < gzipHeader.length;\n i++\n ) {\n if (chunk[i] !== gzipHeader[i]) {\n this[UNZIP] = false\n }\n }\n\n // look for zstd header if gzip header not found\n let isZstd = false\n if (this[UNZIP] === false && this.zstd !== false) {\n isZstd = true\n for (let i = 0; i < zstdHeader.length; i++) {\n if (chunk[i] !== zstdHeader[i]) {\n isZstd = false\n break\n }\n }\n }\n\n const maybeBrotli = this.brotli === undefined && !isZstd\n if (this[UNZIP] === false && maybeBrotli) {\n // read the first header to see if it's a valid tar file. If so,\n // we can safely assume that it's not actually brotli, despite the\n // .tbr or .tar.br file extension.\n // if we ended before getting a full chunk, yes, def brotli\n if (chunk.length < 512) {\n if (this[ENDED]) {\n this.brotli = true\n } else {\n this[BUFFER] = chunk\n /* c8 ignore next */\n cb?.()\n return true\n }\n } else {\n // if it's tar, it's pretty reliably not brotli, chances of\n // that happening are astronomical.\n try {\n new Header(chunk.subarray(0, 512))\n this.brotli = false\n } catch (_) {\n this.brotli = true\n }\n }\n }\n\n if (\n this[UNZIP] === undefined ||\n (this[UNZIP] === false && (this.brotli || isZstd))\n ) {\n const ended = this[ENDED]\n this[ENDED] = false\n this[UNZIP] =\n this[UNZIP] === undefined ? new Unzip({})\n : isZstd ? new ZstdDecompress({})\n : new BrotliDecompress({})\n this[UNZIP].on('data', chunk => this[CONSUMECHUNK](chunk))\n this[UNZIP].on('error', er => this.abort(er as Error))\n this[UNZIP].on('end', () => {\n this[ENDED] = true\n this[CONSUMECHUNK]()\n })\n this[WRITING] = true\n const ret = !!this[UNZIP][ended ? 'end' : 'write'](chunk)\n this[WRITING] = false\n cb?.()\n return ret\n }\n }\n\n this[WRITING] = true\n if (this[UNZIP]) {\n this[UNZIP].write(chunk)\n } else {\n this[CONSUMECHUNK](chunk)\n }\n this[WRITING] = false\n\n // return false if there's a queue, or if the current entry isn't flowing\n const ret =\n this[QUEUE].length > 0 ? false\n : this[READENTRY] ? this[READENTRY].flowing\n : true\n\n // if we have no queue, then that means a clogged READENTRY\n if (!ret && this[QUEUE].length === 0) {\n this[READENTRY]?.once('drain', () => this.emit('drain'))\n }\n\n /* c8 ignore next */\n cb?.()\n return ret\n }\n\n [BUFFERCONCAT](c: Buffer) {\n if (c && !this[ABORTED]) {\n this[BUFFER] = this[BUFFER] ? Buffer.concat([this[BUFFER], c]) : c\n }\n }\n\n [MAYBEEND]() {\n if (\n this[ENDED] &&\n !this[EMITTEDEND] &&\n !this[ABORTED] &&\n !this[CONSUMING]\n ) {\n this[EMITTEDEND] = true\n const entry = this[WRITEENTRY]\n if (entry && entry.blockRemain) {\n // truncated, likely a damaged file\n const have = this[BUFFER] ? this[BUFFER].length : 0\n this.warn(\n 'TAR_BAD_ARCHIVE',\n `Truncated input (needed ${entry.blockRemain} more bytes, only ${have} available)`,\n { entry },\n )\n if (this[BUFFER]) {\n entry.write(this[BUFFER])\n }\n entry.end()\n }\n this[EMIT](DONE)\n }\n }\n\n [CONSUMECHUNK](chunk?: Buffer) {\n if (this[CONSUMING] && chunk) {\n this[BUFFERCONCAT](chunk)\n } else if (!chunk && !this[BUFFER]) {\n this[MAYBEEND]()\n } else if (chunk) {\n this[CONSUMING] = true\n if (this[BUFFER]) {\n this[BUFFERCONCAT](chunk)\n const c = this[BUFFER]\n this[BUFFER] = undefined\n this[CONSUMECHUNKSUB](c)\n } else {\n this[CONSUMECHUNKSUB](chunk)\n }\n\n while (\n this[BUFFER] &&\n (this[BUFFER] as Buffer)?.length >= 512 &&\n !this[ABORTED] &&\n !this[SAW_EOF]\n ) {\n const c = this[BUFFER]\n this[BUFFER] = undefined\n this[CONSUMECHUNKSUB](c)\n }\n this[CONSUMING] = false\n }\n\n if (!this[BUFFER] || this[ENDED]) {\n this[MAYBEEND]()\n }\n }\n\n [CONSUMECHUNKSUB](chunk: Buffer) {\n // we know that we are in CONSUMING mode, so anything written goes into\n // the buffer. Advance the position and put any remainder in the buffer.\n let position = 0\n const length = chunk.length\n while (position + 512 <= length && !this[ABORTED] && !this[SAW_EOF]) {\n switch (this[STATE]) {\n case 'begin':\n case 'header':\n this[CONSUMEHEADER](chunk, position)\n position += 512\n break\n\n case 'ignore':\n case 'body':\n position += this[CONSUMEBODY](chunk, position)\n break\n\n case 'meta':\n position += this[CONSUMEMETA](chunk, position)\n break\n\n /* c8 ignore start */\n default:\n throw new Error('invalid state: ' + this[STATE])\n /* c8 ignore stop */\n }\n }\n\n if (position < length) {\n this[BUFFER] =\n this[BUFFER] ?\n Buffer.concat([chunk.subarray(position), this[BUFFER]])\n : chunk.subarray(position)\n }\n }\n\n end(cb?: () => void): this\n end(data: string | Buffer, cb?: () => void): this\n end(str: string, encoding?: BufferEncoding, cb?: () => void): this\n end(\n chunk?: string | Buffer | (() => void),\n encoding?: BufferEncoding | (() => void),\n cb?: () => void,\n ) {\n if (typeof chunk === 'function') {\n cb = chunk\n encoding = undefined\n chunk = undefined\n }\n if (typeof encoding === 'function') {\n cb = encoding\n encoding = undefined\n }\n if (typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding)\n }\n if (cb) this.once('finish', cb)\n if (!this[ABORTED]) {\n if (this[UNZIP]) {\n /* c8 ignore start */\n if (chunk) this[UNZIP].write(chunk)\n /* c8 ignore stop */\n this[UNZIP].end()\n } else {\n this[ENDED] = true\n if (this.brotli === undefined || this.zstd === undefined)\n chunk = chunk || Buffer.alloc(0)\n if (chunk) this.write(chunk)\n this[MAYBEEND]()\n }\n }\n return this\n }\n}\n", "import assert from 'assert'\nimport { Buffer } from 'buffer'\nimport { Minipass } from 'minipass'\nimport * as realZlib from 'zlib'\nimport { constants } from './constants.js'\nexport { constants } from './constants.js'\n\nconst OriginalBufferConcat = Buffer.concat\nconst desc = Object.getOwnPropertyDescriptor(Buffer, 'concat')\nconst noop = (args: Buffer[]) => args as unknown as Buffer\nconst passthroughBufferConcat =\n desc?.writable === true || desc?.set !== undefined\n ? (makeNoOp: boolean) => {\n Buffer.concat = makeNoOp ? noop : OriginalBufferConcat\n }\n : (_: boolean) => {}\n\nconst _superWrite = Symbol('_superWrite')\n\nexport class ZlibError extends Error {\n code?: string\n errno?: number\n constructor(err: NodeJS.ErrnoException | Error, origin?: Function) {\n super('zlib: ' + err.message, { cause: err })\n this.code = (err as NodeJS.ErrnoException).code\n this.errno = (err as NodeJS.ErrnoException).errno\n /* c8 ignore next */\n if (!this.code) this.code = 'ZLIB_ERROR'\n\n this.message = 'zlib: ' + err.message\n Error.captureStackTrace(this, origin ?? this.constructor)\n }\n\n get name() {\n return 'ZlibError'\n }\n}\n\n// the Zlib class they all inherit from\n// This thing manages the queue of requests, and returns\n// true or false if there is anything in the queue when\n// you call the .write() method.\nconst _flushFlag = Symbol('flushFlag')\n\nexport type ChunkWithFlushFlag = Minipass.ContiguousData & {\n [_flushFlag]?: number\n}\n\nexport type ZlibBaseOptions = Minipass.Options<Minipass.ContiguousData> & {\n flush?: number\n finishFlush?: number\n fullFlushFlag?: number\n}\n\nexport type ZlibHandle =\n | realZlib.Gzip\n | realZlib.Gunzip\n | realZlib.Deflate\n | realZlib.Inflate\n | realZlib.DeflateRaw\n | realZlib.InflateRaw\n | realZlib.BrotliCompress\n | realZlib.BrotliDecompress\n | realZlib.ZstdCompress\n | realZlib.ZstdDecompress\nexport type ZlibMode =\n | 'Gzip'\n | 'Gunzip'\n | 'Deflate'\n | 'Inflate'\n | 'DeflateRaw'\n | 'InflateRaw'\n | 'Unzip'\nexport type BrotliMode = 'BrotliCompress' | 'BrotliDecompress'\nexport type ZstdMode = 'ZstdCompress' | 'ZstdDecompress'\n\nabstract class ZlibBase extends Minipass<Buffer, ChunkWithFlushFlag> {\n #sawError: boolean = false\n #ended: boolean = false\n #flushFlag: number\n #finishFlushFlag: number\n #fullFlushFlag: number\n #handle?: ZlibHandle\n #onError: (err: ZlibError) => any\n\n get sawError() {\n return this.#sawError\n }\n get handle() {\n return this.#handle\n }\n /* c8 ignore start */\n get flushFlag() {\n return this.#flushFlag\n }\n /* c8 ignore stop */\n\n constructor(opts: ZlibBaseOptions, mode: ZlibMode | BrotliMode | ZstdMode) {\n if (!opts || typeof opts !== 'object')\n throw new TypeError('invalid options for ZlibBase constructor')\n\n //@ts-ignore\n super(opts)\n\n /* c8 ignore start */\n this.#flushFlag = opts.flush ?? 0\n this.#finishFlushFlag = opts.finishFlush ?? 0\n this.#fullFlushFlag = opts.fullFlushFlag ?? 0\n /* c8 ignore stop */\n\n //@ts-ignore\n if (typeof realZlib[mode] !== 'function') {\n throw new TypeError('Compression method not supported: ' + mode)\n }\n\n // this will throw if any options are invalid for the class selected\n try {\n // @types/node doesn't know that it exports the classes, but they're there\n //@ts-ignore\n this.#handle = new realZlib[mode](opts)\n } catch (er) {\n // make sure that all errors get decorated properly\n throw new ZlibError(er as NodeJS.ErrnoException, this.constructor)\n }\n\n this.#onError = err => {\n // no sense raising multiple errors, since we abort on the first one.\n if (this.#sawError) return\n\n this.#sawError = true\n\n // there is no way to cleanly recover.\n // continuing only obscures problems.\n this.close()\n this.emit('error', err)\n }\n\n this.#handle?.on('error', er => this.#onError(new ZlibError(er)))\n this.once('end', () => this.close)\n }\n\n close() {\n if (this.#handle) {\n this.#handle.close()\n this.#handle = undefined\n this.emit('close')\n }\n }\n\n reset() {\n if (!this.#sawError) {\n assert(this.#handle, 'zlib binding closed')\n //@ts-ignore\n return this.#handle.reset?.()\n }\n }\n\n flush(flushFlag?: number) {\n if (this.ended) return\n\n if (typeof flushFlag !== 'number') flushFlag = this.#fullFlushFlag\n\n this.write(Object.assign(Buffer.alloc(0), { [_flushFlag]: flushFlag }))\n }\n\n end(cb?: () => void): this\n end(chunk: ChunkWithFlushFlag, cb?: () => void): this\n end(\n chunk: ChunkWithFlushFlag,\n encoding?: Minipass.Encoding,\n cb?: () => void,\n ): this\n end(\n chunk?: ChunkWithFlushFlag | (() => void),\n encoding?: Minipass.Encoding | (() => void),\n cb?: () => void,\n ) {\n /* c8 ignore start */\n if (typeof chunk === 'function') {\n cb = chunk\n encoding = undefined\n chunk = undefined\n }\n if (typeof encoding === 'function') {\n cb = encoding\n encoding = undefined\n }\n /* c8 ignore stop */\n if (chunk) {\n if (encoding) this.write(chunk, encoding)\n else this.write(chunk)\n }\n this.flush(this.#finishFlushFlag)\n this.#ended = true\n return super.end(cb)\n }\n\n get ended() {\n return this.#ended\n }\n\n // overridden in the gzip classes to do portable writes\n [_superWrite](data: Buffer & { [_flushFlag]?: number }) {\n return super.write(data)\n }\n\n write(chunk: ChunkWithFlushFlag, cb?: () => void): boolean\n write(\n chunk: ChunkWithFlushFlag,\n encoding?: Minipass.Encoding,\n cb?: () => void,\n ): boolean\n write(\n chunk: ChunkWithFlushFlag,\n encoding?: Minipass.Encoding | (() => void),\n cb?: () => void,\n ) {\n // process the chunk using the sync process\n // then super.write() all the outputted chunks\n if (typeof encoding === 'function')\n (cb = encoding), (encoding = 'utf8')\n\n if (typeof chunk === 'string')\n chunk = Buffer.from(chunk as string, encoding as BufferEncoding)\n\n if (this.#sawError) return\n assert(this.#handle, 'zlib binding closed')\n\n // _processChunk tries to .close() the native handle after it's done, so we\n // intercept that by temporarily making it a no-op.\n // diving into the node:zlib internals a bit here\n const nativeHandle = (this.#handle as unknown as { _handle: any })\n ._handle\n const originalNativeClose = nativeHandle.close\n nativeHandle.close = () => {}\n const originalClose = this.#handle.close\n this.#handle.close = () => {}\n // It also calls `Buffer.concat()` at the end, which may be convenient\n // for some, but which we are not interested in as it slows us down.\n passthroughBufferConcat(true)\n let result: undefined | Buffer | Buffer[] = undefined\n try {\n const flushFlag =\n typeof chunk[_flushFlag] === 'number'\n ? chunk[_flushFlag]\n : this.#flushFlag\n result = (\n this.#handle as unknown as {\n _processChunk: (chunk: Buffer, flushFlag: number) => Buffer[]\n }\n )._processChunk(chunk as Buffer, flushFlag)\n // if we don't throw, reset it back how it was\n passthroughBufferConcat(false)\n } catch (err) {\n // or if we do, put Buffer.concat() back before we emit error\n // Error events call into user code, which may call Buffer.concat()\n passthroughBufferConcat(false)\n this.#onError(new ZlibError(err as NodeJS.ErrnoException, this.write))\n } finally {\n if (this.#handle) {\n // Core zlib resets `_handle` to null after attempting to close the\n // native handle. Our no-op handler prevented actual closure, but we\n // need to restore the `._handle` property.\n ;(this.#handle as unknown as { _handle: any })._handle =\n nativeHandle\n nativeHandle.close = originalNativeClose\n this.#handle.close = originalClose\n // `_processChunk()` adds an 'error' listener. If we don't remove it\n // after each call, these handlers start piling up.\n this.#handle.removeAllListeners('error')\n // make sure OUR error listener is still attached tho\n }\n }\n\n if (this.#handle)\n this.#handle.on('error', er => this.#onError(new ZlibError(er, this.write)))\n\n let writeReturn\n if (result) {\n if (Array.isArray(result) && result.length > 0) {\n const r = result[0]\n // The first buffer is always `handle._outBuffer`, which would be\n // re-used for later invocations; so, we always have to copy that one.\n writeReturn = this[_superWrite](Buffer.from(r as Buffer))\n for (let i = 1; i < result.length; i++) {\n writeReturn = this[_superWrite](result[i] as Buffer)\n }\n } else {\n // either a single Buffer or an empty array\n writeReturn = this[_superWrite](Buffer.from(result as Buffer | []))\n }\n }\n\n if (cb) cb()\n return writeReturn\n }\n}\n\nexport type ZlibOptions = ZlibBaseOptions & {\n level?: number\n strategy?: number\n}\n\nexport class Zlib extends ZlibBase {\n #level?: number\n #strategy?: number\n\n constructor(opts: ZlibOptions, mode: ZlibMode) {\n opts = opts || {}\n\n opts.flush = opts.flush || constants.Z_NO_FLUSH\n opts.finishFlush = opts.finishFlush || constants.Z_FINISH\n opts.fullFlushFlag = constants.Z_FULL_FLUSH\n super(opts, mode)\n\n this.#level = opts.level\n this.#strategy = opts.strategy\n }\n\n params(level: number, strategy: number) {\n if (this.sawError) return\n\n if (!this.handle)\n throw new Error('cannot switch params when binding is closed')\n\n // no way to test this without also not supporting params at all\n /* c8 ignore start */\n if (!(this.handle as { params?: any }).params)\n throw new Error('not supported in this implementation')\n /* c8 ignore stop */\n\n if (this.#level !== level || this.#strategy !== strategy) {\n this.flush(constants.Z_SYNC_FLUSH)\n assert(this.handle, 'zlib binding closed')\n // .params() calls .flush(), but the latter is always async in the\n // core zlib. We override .flush() temporarily to intercept that and\n // flush synchronously.\n const origFlush = this.handle.flush\n this.handle.flush = (\n flushFlag?: (() => void) | number,\n cb?: () => void,\n ) => {\n /* c8 ignore start */\n if (typeof flushFlag === 'function') {\n cb = flushFlag\n flushFlag = this.flushFlag\n }\n /* c8 ignore stop */\n this.flush(flushFlag)\n cb?.()\n }\n try {\n ;(\n this.handle as unknown as {\n params: (level?: number, strategy?: number) => void\n }\n ).params(level, strategy)\n } finally {\n this.handle.flush = origFlush\n }\n /* c8 ignore start */\n if (this.handle) {\n this.#level = level\n this.#strategy = strategy\n }\n /* c8 ignore stop */\n }\n }\n}\n\n// minimal 2-byte header\nexport class Deflate extends Zlib {\n constructor(opts: ZlibOptions) {\n super(opts, 'Deflate')\n }\n}\n\nexport class Inflate extends Zlib {\n constructor(opts: ZlibOptions) {\n super(opts, 'Inflate')\n }\n}\n\n// gzip - bigger header, same deflate compression\nexport type GzipOptions = ZlibOptions & { portable?: boolean }\nexport class Gzip extends Zlib {\n #portable: boolean\n constructor(opts: GzipOptions) {\n super(opts, 'Gzip')\n this.#portable = opts && !!opts.portable\n }\n\n [_superWrite](data: Buffer & { [_flushFlag]?: number }) {\n if (!this.#portable) return super[_superWrite](data)\n\n // we'll always get the header emitted in one first chunk\n // overwrite the OS indicator byte with 0xFF\n this.#portable = false\n data[9] = 255\n return super[_superWrite](data)\n }\n}\n\nexport class Gunzip extends Zlib {\n constructor(opts: ZlibOptions) {\n super(opts, 'Gunzip')\n }\n}\n\n// raw - no header\nexport class DeflateRaw extends Zlib {\n constructor(opts: ZlibOptions) {\n super(opts, 'DeflateRaw')\n }\n}\n\nexport class InflateRaw extends Zlib {\n constructor(opts: ZlibOptions) {\n super(opts, 'InflateRaw')\n }\n}\n\n// auto-detect header.\nexport class Unzip extends Zlib {\n constructor(opts: ZlibOptions) {\n super(opts, 'Unzip')\n }\n}\n\nclass Brotli extends ZlibBase {\n constructor(opts: ZlibOptions, mode: BrotliMode) {\n opts = opts || {}\n\n opts.flush = opts.flush || constants.BROTLI_OPERATION_PROCESS\n opts.finishFlush =\n opts.finishFlush || constants.BROTLI_OPERATION_FINISH\n opts.fullFlushFlag = constants.BROTLI_OPERATION_FLUSH\n super(opts, mode)\n }\n}\n\nexport class BrotliCompress extends Brotli {\n constructor(opts: ZlibOptions) {\n super(opts, 'BrotliCompress')\n }\n}\n\nexport class BrotliDecompress extends Brotli {\n constructor(opts: ZlibOptions) {\n super(opts, 'BrotliDecompress')\n }\n}\n\nclass Zstd extends ZlibBase {\n constructor(opts: ZlibOptions, mode: ZstdMode) {\n opts = opts || {}\n\n opts.flush = opts.flush || constants.ZSTD_e_continue\n opts.finishFlush = opts.finishFlush || constants.ZSTD_e_end\n opts.fullFlushFlag = constants.ZSTD_e_flush\n super(opts, mode)\n }\n}\n\nexport class ZstdCompress extends Zstd {\n constructor(opts: ZlibOptions) {\n super(opts, 'ZstdCompress')\n }\n}\n\nexport class ZstdDecompress extends Zstd {\n constructor(opts: ZlibOptions) {\n super(opts, 'ZstdDecompress')\n }\n}\n", "// Update with any zlib constants that are added or changed in the future.\n// Node v6 didn't export this, so we just hard code the version and rely\n// on all the other hard-coded values from zlib v4736. When node v6\n// support drops, we can just export the realZlibConstants object.\nimport realZlib from 'zlib'\n/* c8 ignore start */\nconst realZlibConstants = realZlib.constants || { ZLIB_VERNUM: 4736 }\n/* c8 ignore stop */\n\nexport const constants = Object.freeze(\n Object.assign(\n Object.create(null),\n {\n Z_NO_FLUSH: 0,\n Z_PARTIAL_FLUSH: 1,\n Z_SYNC_FLUSH: 2,\n Z_FULL_FLUSH: 3,\n Z_FINISH: 4,\n Z_BLOCK: 5,\n Z_OK: 0,\n Z_STREAM_END: 1,\n Z_NEED_DICT: 2,\n Z_ERRNO: -1,\n Z_STREAM_ERROR: -2,\n Z_DATA_ERROR: -3,\n Z_MEM_ERROR: -4,\n Z_BUF_ERROR: -5,\n Z_VERSION_ERROR: -6,\n Z_NO_COMPRESSION: 0,\n Z_BEST_SPEED: 1,\n Z_BEST_COMPRESSION: 9,\n Z_DEFAULT_COMPRESSION: -1,\n Z_FILTERED: 1,\n Z_HUFFMAN_ONLY: 2,\n Z_RLE: 3,\n Z_FIXED: 4,\n Z_DEFAULT_STRATEGY: 0,\n DEFLATE: 1,\n INFLATE: 2,\n GZIP: 3,\n GUNZIP: 4,\n DEFLATERAW: 5,\n INFLATERAW: 6,\n UNZIP: 7,\n BROTLI_DECODE: 8,\n BROTLI_ENCODE: 9,\n Z_MIN_WINDOWBITS: 8,\n Z_MAX_WINDOWBITS: 15,\n Z_DEFAULT_WINDOWBITS: 15,\n Z_MIN_CHUNK: 64,\n Z_MAX_CHUNK: Infinity,\n Z_DEFAULT_CHUNK: 16384,\n Z_MIN_MEMLEVEL: 1,\n Z_MAX_MEMLEVEL: 9,\n Z_DEFAULT_MEMLEVEL: 8,\n Z_MIN_LEVEL: -1,\n Z_MAX_LEVEL: 9,\n Z_DEFAULT_LEVEL: -1,\n BROTLI_OPERATION_PROCESS: 0,\n BROTLI_OPERATION_FLUSH: 1,\n BROTLI_OPERATION_FINISH: 2,\n BROTLI_OPERATION_EMIT_METADATA: 3,\n BROTLI_MODE_GENERIC: 0,\n BROTLI_MODE_TEXT: 1,\n BROTLI_MODE_FONT: 2,\n BROTLI_DEFAULT_MODE: 0,\n BROTLI_MIN_QUALITY: 0,\n BROTLI_MAX_QUALITY: 11,\n BROTLI_DEFAULT_QUALITY: 11,\n BROTLI_MIN_WINDOW_BITS: 10,\n BROTLI_MAX_WINDOW_BITS: 24,\n BROTLI_LARGE_MAX_WINDOW_BITS: 30,\n BROTLI_DEFAULT_WINDOW: 22,\n BROTLI_MIN_INPUT_BLOCK_BITS: 16,\n BROTLI_MAX_INPUT_BLOCK_BITS: 24,\n BROTLI_PARAM_MODE: 0,\n BROTLI_PARAM_QUALITY: 1,\n BROTLI_PARAM_LGWIN: 2,\n BROTLI_PARAM_LGBLOCK: 3,\n BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING: 4,\n BROTLI_PARAM_SIZE_HINT: 5,\n BROTLI_PARAM_LARGE_WINDOW: 6,\n BROTLI_PARAM_NPOSTFIX: 7,\n BROTLI_PARAM_NDIRECT: 8,\n BROTLI_DECODER_RESULT_ERROR: 0,\n BROTLI_DECODER_RESULT_SUCCESS: 1,\n BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT: 2,\n BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT: 3,\n BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION: 0,\n BROTLI_DECODER_PARAM_LARGE_WINDOW: 1,\n BROTLI_DECODER_NO_ERROR: 0,\n BROTLI_DECODER_SUCCESS: 1,\n BROTLI_DECODER_NEEDS_MORE_INPUT: 2,\n BROTLI_DECODER_NEEDS_MORE_OUTPUT: 3,\n BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE: -1,\n BROTLI_DECODER_ERROR_FORMAT_RESERVED: -2,\n BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE: -3,\n BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET: -4,\n BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME: -5,\n BROTLI_DECODER_ERROR_FORMAT_CL_SPACE: -6,\n BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE: -7,\n BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT: -8,\n BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1: -9,\n BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2: -10,\n BROTLI_DECODER_ERROR_FORMAT_TRANSFORM: -11,\n BROTLI_DECODER_ERROR_FORMAT_DICTIONARY: -12,\n BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS: -13,\n BROTLI_DECODER_ERROR_FORMAT_PADDING_1: -14,\n BROTLI_DECODER_ERROR_FORMAT_PADDING_2: -15,\n BROTLI_DECODER_ERROR_FORMAT_DISTANCE: -16,\n BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET: -19,\n BROTLI_DECODER_ERROR_INVALID_ARGUMENTS: -20,\n BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES: -21,\n BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS: -22,\n BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP: -25,\n BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1: -26,\n BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2: -27,\n BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES: -30,\n BROTLI_DECODER_ERROR_UNREACHABLE: -31,\n },\n realZlibConstants,\n ),\n)\n", "// parse a 512-byte header block to a data object, or vice-versa\n// encode returns `true` if a pax extended header is needed, because\n// the data could not be faithfully encoded in a simple header.\n// (Also, check header.needPax to see if it needs a pax header.)\n\nimport { posix as pathModule } from 'node:path'\nimport * as large from './large-numbers.js'\nimport type { EntryTypeCode, EntryTypeName } from './types.js'\nimport * as types from './types.js'\n\nexport type HeaderData = {\n path?: string\n mode?: number\n uid?: number\n gid?: number\n size?: number\n cksum?: number\n type?: EntryTypeName | 'Unsupported'\n linkpath?: string\n uname?: string\n gname?: string\n devmaj?: number\n devmin?: number\n atime?: Date\n ctime?: Date\n mtime?: Date\n\n // fields that are common in extended PAX headers, but not in the\n // \"standard\" tar header block\n charset?: string\n comment?: string\n dev?: number\n ino?: number\n nlink?: number\n}\n\nexport class Header implements HeaderData {\n cksumValid: boolean = false\n needPax: boolean = false\n nullBlock: boolean = false\n\n block?: Buffer\n path?: string\n mode?: number\n uid?: number\n gid?: number\n size?: number\n cksum?: number\n #type: EntryTypeCode | 'Unsupported' = 'Unsupported'\n linkpath?: string\n uname?: string\n gname?: string\n devmaj: number = 0\n devmin: number = 0\n atime?: Date\n ctime?: Date\n mtime?: Date\n\n charset?: string\n comment?: string\n\n constructor(\n data?: Buffer | HeaderData,\n off: number = 0,\n ex?: HeaderData,\n gex?: HeaderData,\n ) {\n if (Buffer.isBuffer(data)) {\n this.decode(data, off || 0, ex, gex)\n } else if (data) {\n this.#slurp(data)\n }\n }\n\n decode(buf: Buffer, off: number, ex?: HeaderData, gex?: HeaderData) {\n if (!off) {\n off = 0\n }\n\n if (!buf || !(buf.length >= off + 512)) {\n throw new Error('need 512 bytes for header')\n }\n\n this.path = ex?.path ?? decString(buf, off, 100)\n this.mode = ex?.mode ?? gex?.mode ?? decNumber(buf, off + 100, 8)\n this.uid = ex?.uid ?? gex?.uid ?? decNumber(buf, off + 108, 8)\n this.gid = ex?.gid ?? gex?.gid ?? decNumber(buf, off + 116, 8)\n this.size = ex?.size ?? gex?.size ?? decNumber(buf, off + 124, 12)\n this.mtime = ex?.mtime ?? gex?.mtime ?? decDate(buf, off + 136, 12)\n this.cksum = decNumber(buf, off + 148, 12)\n\n // if we have extended or global extended headers, apply them now\n // See https://github.com/npm/node-tar/pull/187\n // Apply global before local, so it overrides\n if (gex) this.#slurp(gex, true)\n if (ex) this.#slurp(ex)\n\n // old tar versions marked dirs as a file with a trailing /\n const t = decString(buf, off + 156, 1)\n if (types.isCode(t)) {\n this.#type = t || '0'\n }\n if (this.#type === '0' && this.path.slice(-1) === '/') {\n this.#type = '5'\n }\n\n // tar implementations sometimes incorrectly put the stat(dir).size\n // as the size in the tarball, even though Directory entries are\n // not able to have any body at all. In the very rare chance that\n // it actually DOES have a body, we weren't going to do anything with\n // it anyway, and it'll just be a warning about an invalid header.\n if (this.#type === '5') {\n this.size = 0\n }\n\n this.linkpath = decString(buf, off + 157, 100)\n if (\n buf.subarray(off + 257, off + 265).toString() === 'ustar\\u000000'\n ) {\n /* c8 ignore start */\n this.uname = ex?.uname ?? gex?.uname ?? decString(buf, off + 265, 32)\n this.gname = ex?.gname ?? gex?.gname ?? decString(buf, off + 297, 32)\n this.devmaj =\n ex?.devmaj ?? gex?.devmaj ?? decNumber(buf, off + 329, 8) ?? 0\n this.devmin =\n ex?.devmin ?? gex?.devmin ?? decNumber(buf, off + 337, 8) ?? 0\n /* c8 ignore stop */\n if (buf[off + 475] !== 0) {\n // definitely a prefix, definitely >130 chars.\n const prefix = decString(buf, off + 345, 155)\n this.path = prefix + '/' + this.path\n } else {\n const prefix = decString(buf, off + 345, 130)\n if (prefix) {\n this.path = prefix + '/' + this.path\n }\n /* c8 ignore start */\n this.atime = ex?.atime ?? gex?.atime ?? decDate(buf, off + 476, 12)\n this.ctime = ex?.ctime ?? gex?.ctime ?? decDate(buf, off + 488, 12)\n /* c8 ignore stop */\n }\n }\n\n let sum = 8 * 0x20\n for (let i = off; i < off + 148; i++) {\n sum += buf[i] as number\n }\n\n for (let i = off + 156; i < off + 512; i++) {\n sum += buf[i] as number\n }\n\n this.cksumValid = sum === this.cksum\n if (this.cksum === undefined && sum === 8 * 0x20) {\n this.nullBlock = true\n }\n }\n\n #slurp(ex: HeaderData, gex: boolean = false) {\n Object.assign(\n this,\n Object.fromEntries(\n Object.entries(ex).filter(([k, v]) => {\n // we slurp in everything except for the path attribute in\n // a global extended header, because that's weird. Also, any\n // null/undefined values are ignored.\n return !(\n v === null ||\n v === undefined ||\n (k === 'path' && gex) ||\n (k === 'linkpath' && gex) ||\n k === 'global'\n )\n }),\n ),\n )\n }\n\n encode(buf?: Buffer, off: number = 0) {\n if (!buf) {\n buf = this.block = Buffer.alloc(512)\n }\n\n if (this.#type === 'Unsupported') {\n this.#type = '0'\n }\n\n if (!(buf.length >= off + 512)) {\n throw new Error('need 512 bytes for header')\n }\n\n const prefixSize = this.ctime || this.atime ? 130 : 155\n const split = splitPrefix(this.path || '', prefixSize)\n const path = split[0]\n const prefix = split[1]\n this.needPax = !!split[2]\n\n this.needPax = encString(buf, off, 100, path) || this.needPax\n this.needPax = encNumber(buf, off + 100, 8, this.mode) || this.needPax\n this.needPax = encNumber(buf, off + 108, 8, this.uid) || this.needPax\n this.needPax = encNumber(buf, off + 116, 8, this.gid) || this.needPax\n this.needPax = encNumber(buf, off + 124, 12, this.size) || this.needPax\n this.needPax = encDate(buf, off + 136, 12, this.mtime) || this.needPax\n buf[off + 156] = Number(this.#type.codePointAt(0))\n this.needPax =\n encString(buf, off + 157, 100, this.linkpath) || this.needPax\n buf.write('ustar\\u000000', off + 257, 8)\n this.needPax =\n encString(buf, off + 265, 32, this.uname) || this.needPax\n this.needPax =\n encString(buf, off + 297, 32, this.gname) || this.needPax\n this.needPax =\n encNumber(buf, off + 329, 8, this.devmaj) || this.needPax\n this.needPax =\n encNumber(buf, off + 337, 8, this.devmin) || this.needPax\n this.needPax =\n encString(buf, off + 345, prefixSize, prefix) || this.needPax\n if (buf[off + 475] !== 0) {\n this.needPax = encString(buf, off + 345, 155, prefix) || this.needPax\n } else {\n this.needPax = encString(buf, off + 345, 130, prefix) || this.needPax\n this.needPax =\n encDate(buf, off + 476, 12, this.atime) || this.needPax\n this.needPax =\n encDate(buf, off + 488, 12, this.ctime) || this.needPax\n }\n\n let sum = 8 * 0x20\n for (let i = off; i < off + 148; i++) {\n sum += buf[i] as number\n }\n\n for (let i = off + 156; i < off + 512; i++) {\n sum += buf[i] as number\n }\n\n this.cksum = sum\n encNumber(buf, off + 148, 8, this.cksum)\n this.cksumValid = true\n\n return this.needPax\n }\n\n get type(): EntryTypeName {\n return (\n this.#type === 'Unsupported' ?\n this.#type\n : types.name.get(this.#type)) as EntryTypeName\n }\n\n get typeKey(): EntryTypeCode | 'Unsupported' {\n return this.#type\n }\n\n set type(type: EntryTypeCode | EntryTypeName | 'Unsupported') {\n const c = String(types.code.get(type as EntryTypeName))\n if (types.isCode(c) || c === 'Unsupported') {\n this.#type = c\n } else if (types.isCode(type)) {\n this.#type = type\n } else {\n throw new TypeError('invalid entry type: ' + type)\n }\n }\n}\n\nconst splitPrefix = (\n p: string,\n prefixSize: number,\n): [string, string, boolean] => {\n const pathSize = 100\n let pp = p\n let prefix = ''\n let ret: undefined | [string, string, boolean] = undefined\n const root = pathModule.parse(p).root || '.'\n\n if (Buffer.byteLength(pp) < pathSize) {\n ret = [pp, prefix, false]\n } else {\n // first set prefix to the dir, and path to the base\n prefix = pathModule.dirname(pp)\n pp = pathModule.basename(pp)\n\n do {\n if (\n Buffer.byteLength(pp) <= pathSize &&\n Buffer.byteLength(prefix) <= prefixSize\n ) {\n // both fit!\n ret = [pp, prefix, false]\n } else if (\n Buffer.byteLength(pp) > pathSize &&\n Buffer.byteLength(prefix) <= prefixSize\n ) {\n // prefix fits in prefix, but path doesn't fit in path\n ret = [pp.slice(0, pathSize - 1), prefix, true]\n } else {\n // make path take a bit from prefix\n pp = pathModule.join(pathModule.basename(prefix), pp)\n prefix = pathModule.dirname(prefix)\n }\n } while (prefix !== root && ret === undefined)\n\n // at this point, found no resolution, just truncate\n if (!ret) {\n ret = [p.slice(0, pathSize - 1), '', true]\n }\n }\n return ret\n}\n\nconst decString = (buf: Buffer, off: number, size: number) =>\n buf\n .subarray(off, off + size)\n .toString('utf8')\n .replace(/\\0.*/, '')\n\nconst decDate = (buf: Buffer, off: number, size: number) =>\n numToDate(decNumber(buf, off, size))\n\nconst numToDate = (num?: number) =>\n num === undefined ? undefined : new Date(num * 1000)\n\nconst decNumber = (buf: Buffer, off: number, size: number) =>\n Number(buf[off]) & 0x80 ?\n large.parse(buf.subarray(off, off + size))\n : decSmallNumber(buf, off, size)\n\nconst nanUndef = (value: number) => (isNaN(value) ? undefined : value)\n\nconst decSmallNumber = (buf: Buffer, off: number, size: number) =>\n nanUndef(\n parseInt(\n buf\n .subarray(off, off + size)\n .toString('utf8')\n .replace(/\\0.*$/, '')\n .trim(),\n 8,\n ),\n )\n\n// the maximum encodable as a null-terminated octal, by field size\nconst MAXNUM = {\n 12: 0o77777777777,\n 8: 0o7777777,\n}\n\nconst encNumber = (\n buf: Buffer,\n off: number,\n size: 12 | 8,\n num?: number,\n) =>\n num === undefined ? false\n : num > MAXNUM[size] || num < 0 ?\n (large.encode(num, buf.subarray(off, off + size)), true)\n : (encSmallNumber(buf, off, size, num), false)\n\nconst encSmallNumber = (\n buf: Buffer,\n off: number,\n size: number,\n num: number,\n) => buf.write(octalString(num, size), off, size, 'ascii')\n\nconst octalString = (num: number, size: number) =>\n padOctal(Math.floor(num).toString(8), size)\n\nconst padOctal = (str: string, size: number) =>\n (str.length === size - 1 ?\n str\n : new Array(size - str.length - 1).join('0') + str + ' ') + '\\0'\n\nconst encDate = (buf: Buffer, off: number, size: 8 | 12, date?: Date) =>\n date === undefined ? false : (\n encNumber(buf, off, size, date.getTime() / 1000)\n )\n\n// enough to fill the longest string we've got\nconst NULLS = new Array(156).join('\\0')\n// pad with nulls, return true if it's longer or non-ascii\nconst encString = (\n buf: Buffer,\n off: number,\n size: number,\n str?: string,\n) =>\n str === undefined ? false : (\n (buf.write(str + NULLS, off, size, 'utf8'),\n str.length !== Buffer.byteLength(str) || str.length > size)\n )\n", "// Tar can encode large and negative numbers using a leading byte of\n// 0xff for negative, and 0x80 for positive.\n\nexport const encode = (num: number, buf: Buffer) => {\n if (!Number.isSafeInteger(num)) {\n // The number is so large that javascript cannot represent it with integer\n // precision.\n throw Error(\n 'cannot encode number outside of javascript safe integer range',\n )\n } else if (num < 0) {\n encodeNegative(num, buf)\n } else {\n encodePositive(num, buf)\n }\n return buf\n}\n\nconst encodePositive = (num: number, buf: Buffer) => {\n buf[0] = 0x80\n\n for (var i = buf.length; i > 1; i--) {\n buf[i - 1] = num & 0xff\n num = Math.floor(num / 0x100)\n }\n}\n\nconst encodeNegative = (num: number, buf: Buffer) => {\n buf[0] = 0xff\n var flipped = false\n num = num * -1\n for (var i = buf.length; i > 1; i--) {\n var byte = num & 0xff\n num = Math.floor(num / 0x100)\n if (flipped) {\n buf[i - 1] = onesComp(byte)\n } else if (byte === 0) {\n buf[i - 1] = 0\n } else {\n flipped = true\n buf[i - 1] = twosComp(byte)\n }\n }\n}\n\nexport const parse = (buf: Buffer) => {\n const pre = buf[0]\n const value =\n pre === 0x80 ? pos(buf.subarray(1, buf.length))\n : pre === 0xff ? twos(buf)\n : null\n if (value === null) {\n throw Error('invalid base256 encoding')\n }\n\n if (!Number.isSafeInteger(value)) {\n // The number is so large that javascript cannot represent it with integer\n // precision.\n throw Error('parsed number outside of javascript safe integer range')\n }\n\n return value\n}\n\nconst twos = (buf: Buffer) => {\n var len = buf.length\n var sum = 0\n var flipped = false\n for (var i = len - 1; i > -1; i--) {\n var byte = Number(buf[i])\n var f\n if (flipped) {\n f = onesComp(byte)\n } else if (byte === 0) {\n f = byte\n } else {\n flipped = true\n f = twosComp(byte)\n }\n if (f !== 0) {\n sum -= f * Math.pow(256, len - i - 1)\n }\n }\n return sum\n}\n\nconst pos = (buf: Buffer) => {\n var len = buf.length\n var sum = 0\n for (var i = len - 1; i > -1; i--) {\n var byte = Number(buf[i])\n if (byte !== 0) {\n sum += byte * Math.pow(256, len - i - 1)\n }\n }\n return sum\n}\n\nconst onesComp = (byte: number) => (0xff ^ byte) & 0xff\n\nconst twosComp = (byte: number) => ((0xff ^ byte) + 1) & 0xff\n", "export const isCode = (c: string): c is EntryTypeCode =>\n name.has(c as EntryTypeCode)\n\nexport const isName = (c: string): c is EntryTypeName =>\n code.has(c as EntryTypeName)\n\nexport type EntryTypeCode =\n | '0'\n | ''\n | '1'\n | '2'\n | '3'\n | '4'\n | '5'\n | '6'\n | '7'\n | 'g'\n | 'x'\n | 'A'\n | 'D'\n | 'I'\n | 'K'\n | 'L'\n | 'M'\n | 'N'\n | 'S'\n | 'V'\n | 'X'\n\nexport type EntryTypeName =\n | 'File'\n | 'OldFile'\n | 'Link'\n | 'SymbolicLink'\n | 'CharacterDevice'\n | 'BlockDevice'\n | 'Directory'\n | 'FIFO'\n | 'ContiguousFile'\n | 'GlobalExtendedHeader'\n | 'ExtendedHeader'\n | 'SolarisACL'\n | 'GNUDumpDir'\n | 'Inode'\n | 'NextFileHasLongLinkpath'\n | 'NextFileHasLongPath'\n | 'ContinuationFile'\n | 'OldGnuLongPath'\n | 'SparseFile'\n | 'TapeVolumeHeader'\n | 'OldExtendedHeader'\n | 'Unsupported'\n\n// map types from key to human-friendly name\nexport const name = new Map<EntryTypeCode, EntryTypeName>([\n ['0', 'File'],\n // same as File\n ['', 'OldFile'],\n ['1', 'Link'],\n ['2', 'SymbolicLink'],\n // Devices and FIFOs aren't fully supported\n // they are parsed, but skipped when unpacking\n ['3', 'CharacterDevice'],\n ['4', 'BlockDevice'],\n ['5', 'Directory'],\n ['6', 'FIFO'],\n // same as File\n ['7', 'ContiguousFile'],\n // pax headers\n ['g', 'GlobalExtendedHeader'],\n ['x', 'ExtendedHeader'],\n // vendor-specific stuff\n // skip\n ['A', 'SolarisACL'],\n // like 5, but with data, which should be skipped\n ['D', 'GNUDumpDir'],\n // metadata only, skip\n ['I', 'Inode'],\n // data = link path of next file\n ['K', 'NextFileHasLongLinkpath'],\n // data = path of next file\n ['L', 'NextFileHasLongPath'],\n // skip\n ['M', 'ContinuationFile'],\n // like L\n ['N', 'OldGnuLongPath'],\n // skip\n ['S', 'SparseFile'],\n // skip\n ['V', 'TapeVolumeHeader'],\n // like x\n ['X', 'OldExtendedHeader'],\n])\n\n// map the other direction\nexport const code = new Map<EntryTypeName, EntryTypeCode>(\n Array.from(name).map(kv => [kv[1], kv[0]]),\n)\n", "import { basename } from 'node:path'\nimport type { HeaderData } from './header.js'\nimport { Header } from './header.js'\n\nexport class Pax implements HeaderData {\n atime?: Date\n mtime?: Date\n ctime?: Date\n\n charset?: string\n comment?: string\n\n gid?: number\n uid?: number\n\n gname?: string\n uname?: string\n linkpath?: string\n dev?: number\n ino?: number\n nlink?: number\n path?: string\n size?: number\n mode?: number\n\n global: boolean\n\n constructor(obj: HeaderData, global: boolean = false) {\n this.atime = obj.atime\n this.charset = obj.charset\n this.comment = obj.comment\n this.ctime = obj.ctime\n this.dev = obj.dev\n this.gid = obj.gid\n this.global = global\n this.gname = obj.gname\n this.ino = obj.ino\n this.linkpath = obj.linkpath\n this.mtime = obj.mtime\n this.nlink = obj.nlink\n this.path = obj.path\n this.size = obj.size\n this.uid = obj.uid\n this.uname = obj.uname\n }\n\n encode() {\n const body = this.encodeBody()\n if (body === '') {\n return Buffer.allocUnsafe(0)\n }\n\n const bodyLen = Buffer.byteLength(body)\n // round up to 512 bytes\n // add 512 for header\n const bufLen = 512 * Math.ceil(1 + bodyLen / 512)\n const buf = Buffer.allocUnsafe(bufLen)\n\n // 0-fill the header section, it might not hit every field\n for (let i = 0; i < 512; i++) {\n buf[i] = 0\n }\n\n new Header({\n // XXX split the path\n // then the path should be PaxHeader + basename, but less than 99,\n // prepend with the dirname\n /* c8 ignore start */\n path: ('PaxHeader/' + basename(this.path ?? '')).slice(0, 99),\n /* c8 ignore stop */\n mode: this.mode || 0o644,\n uid: this.uid,\n gid: this.gid,\n size: bodyLen,\n mtime: this.mtime,\n type: this.global ? 'GlobalExtendedHeader' : 'ExtendedHeader',\n linkpath: '',\n uname: this.uname || '',\n gname: this.gname || '',\n devmaj: 0,\n devmin: 0,\n atime: this.atime,\n ctime: this.ctime,\n }).encode(buf)\n\n buf.write(body, 512, bodyLen, 'utf8')\n\n // null pad after the body\n for (let i = bodyLen + 512; i < buf.length; i++) {\n buf[i] = 0\n }\n\n return buf\n }\n\n encodeBody() {\n return (\n this.encodeField('path') +\n this.encodeField('ctime') +\n this.encodeField('atime') +\n this.encodeField('dev') +\n this.encodeField('ino') +\n this.encodeField('nlink') +\n this.encodeField('charset') +\n this.encodeField('comment') +\n this.encodeField('gid') +\n this.encodeField('gname') +\n this.encodeField('linkpath') +\n this.encodeField('mtime') +\n this.encodeField('size') +\n this.encodeField('uid') +\n this.encodeField('uname')\n )\n }\n\n encodeField(field: keyof Pax): string {\n if (this[field] === undefined) {\n return ''\n }\n const r = this[field]\n const v = r instanceof Date ? r.getTime() / 1000 : r\n const s =\n ' ' +\n (field === 'dev' || field === 'ino' || field === 'nlink' ?\n 'SCHILY.'\n : '') +\n field +\n '=' +\n v +\n '\\n'\n const byteLen = Buffer.byteLength(s)\n // the digits includes the length of the digits in ascii base-10\n // so if it's 9 characters, then adding 1 for the 9 makes it 10\n // which makes it 11 chars.\n let digits = Math.floor(Math.log(byteLen) / Math.log(10)) + 1\n if (byteLen + digits >= Math.pow(10, digits)) {\n digits += 1\n }\n const len = digits + byteLen\n return len + s\n }\n\n static parse(str: string, ex?: HeaderData, g: boolean = false) {\n return new Pax(merge(parseKV(str), ex), g)\n }\n}\n\nconst merge = (a: HeaderData, b?: HeaderData) =>\n b ? Object.assign({}, b, a) : a\n\nconst parseKV = (str: string) =>\n str\n .replace(/\\n$/, '')\n .split('\\n')\n .reduce(parseKVLine, Object.create(null))\n\nconst parseKVLine = (set: Record<string, unknown>, line: string) => {\n const n = parseInt(line, 10)\n\n // XXX Values with \\n in them will fail this.\n // Refactor to not be a naive line-by-line parse.\n if (n !== Buffer.byteLength(line) + 1) {\n return set\n }\n\n line = line.slice((n + ' ').length)\n const kv = line.split('=')\n const r = kv.shift()\n\n if (!r) {\n return set\n }\n\n const k = r.replace(/^SCHILY\\.(dev|ino|nlink)/, '$1')\n\n const v = kv.join('=')\n set[k] =\n /^([A-Z]+\\.)?([mac]|birth|creation)time$/.test(k) ?\n new Date(Number(v) * 1000)\n : /^[0-9]+$/.test(v) ? +v\n : v\n return set\n}\n", "// on windows, either \\ or / are valid directory separators.\n// on unix, \\ is a valid character in filenames.\n// so, on windows, and only on windows, we replace all \\ chars with /,\n// so that we can use / as our one and only directory separator char.\n\nconst platform = process.env.TESTING_TAR_FAKE_PLATFORM || process.platform\n\nexport const normalizeWindowsPath =\n platform !== 'win32' ?\n (p: string) => p\n : (p: string) => p && p.replaceAll(/\\\\/g, '/')\n", "import { Minipass } from 'minipass'\nimport type { Header } from './header.js'\nimport { normalizeWindowsPath } from './normalize-windows-path.js'\nimport type { Pax } from './pax.js'\nimport type { EntryTypeName } from './types.js'\n\nexport class ReadEntry extends Minipass<Buffer, Buffer> {\n extended?: Pax\n globalExtended?: Pax\n header: Header\n startBlockSize: number\n blockRemain: number\n remain: number\n type: EntryTypeName\n meta: boolean = false\n ignore: boolean = false\n path: string\n mode?: number\n uid?: number\n gid?: number\n uname?: string\n gname?: string\n size: number = 0\n mtime?: Date\n atime?: Date\n ctime?: Date\n linkpath?: string\n\n dev?: number\n ino?: number\n nlink?: number\n invalid: boolean = false\n absolute?: string\n unsupported: boolean = false\n\n constructor(header: Header, ex?: Pax, gex?: Pax) {\n super({})\n // read entries always start life paused. this is to avoid the\n // situation where Minipass's auto-ending empty streams results\n // in an entry ending before we're ready for it.\n this.pause()\n this.extended = ex\n this.globalExtended = gex\n this.header = header\n /* c8 ignore start */\n this.remain = header.size ?? 0\n /* c8 ignore stop */\n this.startBlockSize = 512 * Math.ceil(this.remain / 512)\n this.blockRemain = this.startBlockSize\n this.type = header.type\n switch (this.type) {\n case 'File':\n case 'OldFile':\n case 'Link':\n case 'SymbolicLink':\n case 'CharacterDevice':\n case 'BlockDevice':\n case 'Directory':\n case 'FIFO':\n case 'ContiguousFile':\n case 'GNUDumpDir':\n break\n\n case 'NextFileHasLongLinkpath':\n case 'NextFileHasLongPath':\n case 'OldGnuLongPath':\n case 'GlobalExtendedHeader':\n case 'ExtendedHeader':\n case 'OldExtendedHeader':\n this.meta = true\n break\n\n // NOTE: gnutar and bsdtar treat unrecognized types as 'File'\n // it may be worth doing the same, but with a warning.\n default:\n this.ignore = true\n }\n\n /* c8 ignore start */\n if (!header.path) {\n throw new Error('no path provided for tar.ReadEntry')\n }\n /* c8 ignore stop */\n\n this.path = normalizeWindowsPath(header.path) as string\n this.mode = header.mode\n if (this.mode) {\n this.mode = this.mode & 0o7777\n }\n this.uid = header.uid\n this.gid = header.gid\n this.uname = header.uname\n this.gname = header.gname\n this.size = this.remain\n this.mtime = header.mtime\n this.atime = header.atime\n this.ctime = header.ctime\n /* c8 ignore start */\n this.linkpath =\n header.linkpath ? normalizeWindowsPath(header.linkpath) : undefined\n /* c8 ignore stop */\n this.uname = header.uname\n this.gname = header.gname\n\n if (ex) {\n this.#slurp(ex)\n }\n if (gex) {\n this.#slurp(gex, true)\n }\n }\n\n write(data: Buffer) {\n const writeLen = data.length\n if (writeLen > this.blockRemain) {\n throw new Error('writing more to entry than is appropriate')\n }\n\n const r = this.remain\n const br = this.blockRemain\n this.remain = Math.max(0, r - writeLen)\n this.blockRemain = Math.max(0, br - writeLen)\n if (this.ignore) {\n return true\n }\n\n if (r >= writeLen) {\n return super.write(data)\n }\n\n // r < writeLen\n return super.write(data.subarray(0, r))\n }\n\n #slurp(ex: Pax, gex: boolean = false) {\n if (ex.path) ex.path = normalizeWindowsPath(ex.path)\n if (ex.linkpath) ex.linkpath = normalizeWindowsPath(ex.linkpath)\n Object.assign(\n this,\n Object.fromEntries(\n Object.entries(ex).filter(([k, v]) => {\n // we slurp in everything except for the path attribute in\n // a global extended header, because that's weird. Also, any\n // null/undefined values are ignored.\n return !(v === null || v === undefined || (k === 'path' && gex))\n }),\n ),\n )\n }\n}\n", "import { type Minipass } from 'minipass'\n\n/** has a warn method */\nexport type Warner = {\n warn(code: string, message: string | Error, data: unknown): void\n file?: string\n cwd?: string\n strict?: boolean\n\n emit(event: 'warn', code: string, message: string, data?: WarnData): void\n emit(event: 'error', error: TarError): void\n}\n\nexport type WarnEvent<T = Buffer> = Minipass.Events<T> & {\n warn: [code: string, message: string, data: WarnData]\n}\n\nexport type WarnData = {\n file?: string\n cwd?: string\n code?: string\n tarCode?: string\n recoverable?: boolean\n [k: string]: unknown\n}\n\nexport type TarError = Error & WarnData\n\nexport const warnMethod = (\n self: Warner,\n code: string,\n message: string | Error,\n data: WarnData = {},\n) => {\n if (self.file) {\n data.file = self.file\n }\n if (self.cwd) {\n data.cwd = self.cwd\n }\n data.code =\n (message instanceof Error &&\n (message as NodeJS.ErrnoException).code) ||\n code\n data.tarCode = code\n if (!self.strict && data.recoverable !== false) {\n if (message instanceof Error) {\n data = Object.assign(message, data)\n message = message.message\n }\n self.emit('warn', code, message, data)\n } else if (message instanceof Error) {\n self.emit('error', Object.assign(message, data))\n } else {\n self.emit(\n 'error',\n Object.assign(new Error(`${code}: ${message}`), data),\n )\n }\n}\n", "// warning: extremely hot code path.\n// This has been meticulously optimized for use\n// within npm install on large package trees.\n// Do not edit without careful benchmarking.\nexport const stripTrailingSlashes = (str: string) => {\n let i = str.length - 1\n let slashesStart = -1\n while (i > -1 && str.charAt(i) === '/') {\n slashesStart = i\n i--\n }\n return slashesStart === -1 ? str : str.slice(0, slashesStart)\n}\n", "// A readable tar stream creator\n// Technically, this is a transform stream that you write paths into,\n// and tar format comes out of.\n// The `add()` method is like `write()` but returns this,\n// and end() return `this` as well, so you can\n// do `new Pack(opt).add('files').add('dir').end().pipe(output)\n// You could also do something like:\n// streamOfPaths().pipe(new Pack()).pipe(new fs.WriteStream('out.tar'))\n\nimport fs, { type Stats } from 'fs'\nimport {\n WriteEntry,\n WriteEntrySync,\n WriteEntryTar,\n} from './write-entry.js'\n\nexport class PackJob {\n path: string\n absolute: string\n entry?: WriteEntry | WriteEntryTar\n stat?: Stats\n readdir?: string[]\n pending: boolean = false\n pendingLink: boolean = false\n ignore: boolean = false\n piped: boolean = false\n constructor(path: string, absolute: string) {\n this.path = path || './'\n this.absolute = absolute\n }\n}\n\nimport { Minipass } from 'minipass'\nimport * as zlib from 'minizlib'\nimport { Yallist } from 'yallist'\nimport { ReadEntry } from './read-entry.js'\nimport type { WarnEvent } from './warn-method.js'\nimport { warnMethod, type WarnData, type Warner } from './warn-method.js'\n\nconst EOF = Buffer.alloc(1024)\nconst ONSTAT = Symbol('onStat')\nconst ENDED = Symbol('ended')\nconst QUEUE = Symbol('queue')\nconst PENDINGLINKS = Symbol('queue')\nconst CURRENT = Symbol('current')\nconst PROCESS = Symbol('process')\nconst PROCESSING = Symbol('processing')\nconst PROCESSJOB = Symbol('processJob')\nconst JOBS = Symbol('jobs')\nconst JOBDONE = Symbol('jobDone')\nconst ADDFSENTRY = Symbol('addFSEntry')\nconst ADDTARENTRY = Symbol('addTarEntry')\nconst STAT = Symbol('stat')\nconst READDIR = Symbol('readdir')\nconst ONREADDIR = Symbol('onreaddir')\nconst PIPE = Symbol('pipe')\nconst ENTRY = Symbol('entry')\nconst ENTRYOPT = Symbol('entryOpt')\nconst WRITEENTRYCLASS = Symbol('writeEntryClass')\nconst WRITE = Symbol('write')\nconst ONDRAIN = Symbol('ondrain')\n\nimport path from 'path'\nimport { normalizeWindowsPath } from './normalize-windows-path.js'\nimport type { LinkCacheKey, TarOptions } from './options.js'\n\nexport class Pack\n extends Minipass<Buffer, ReadEntry | string, WarnEvent<Buffer>>\n implements Warner\n{\n sync: boolean = false\n opt: TarOptions\n cwd: string\n maxReadSize?: number\n preservePaths: boolean\n strict: boolean\n noPax: boolean\n prefix: string\n linkCache: Exclude<TarOptions['linkCache'], undefined>\n statCache: Exclude<TarOptions['statCache'], undefined>\n file: string\n portable: boolean\n zip?: zlib.BrotliCompress | zlib.Gzip | zlib.ZstdCompress\n readdirCache: Exclude<TarOptions['readdirCache'], undefined>\n noDirRecurse: boolean\n follow: boolean\n noMtime: boolean\n mtime?: Date\n filter: Exclude<TarOptions['filter'], undefined>\n jobs: number;\n\n [WRITEENTRYCLASS]: typeof WriteEntry | typeof WriteEntrySync\n onWriteEntry?: (entry: WriteEntry) => void;\n // Note: we actually DO need a linked list here, because we\n // shift() to update the head of the list where we start, but still\n // while that happens, need to know what the next item in the queue\n // will be. Since we do multiple jobs in parallel, it's not as simple\n // as just an Array.shift(), since that would lose the information about\n // the next job in the list. We could add a .next field on the PackJob\n // class, but then we'd have to be tracking the tail of the queue the\n // whole time, and Yallist just does that for us anyway.\n [QUEUE]: Yallist<PackJob>;\n [PENDINGLINKS] = new Map<LinkCacheKey, PackJob[]>();\n [JOBS]: number = 0;\n [PROCESSING]: boolean = false;\n [ENDED]: boolean = false\n\n constructor(opt: TarOptions = {}) {\n super()\n this.opt = opt\n this.file = opt.file || ''\n this.cwd = opt.cwd || process.cwd()\n this.maxReadSize = opt.maxReadSize\n this.preservePaths = !!opt.preservePaths\n this.strict = !!opt.strict\n this.noPax = !!opt.noPax\n this.prefix = normalizeWindowsPath(opt.prefix || '')\n this.linkCache = opt.linkCache || new Map()\n this.statCache = opt.statCache || new Map()\n this.readdirCache = opt.readdirCache || new Map()\n this.onWriteEntry = opt.onWriteEntry\n\n this[WRITEENTRYCLASS] = WriteEntry\n if (typeof opt.onwarn === 'function') {\n this.on('warn', opt.onwarn)\n }\n\n this.portable = !!opt.portable\n\n if (opt.gzip || opt.brotli || opt.zstd) {\n if (\n (opt.gzip ? 1 : 0) + (opt.brotli ? 1 : 0) + (opt.zstd ? 1 : 0) >\n 1\n ) {\n throw new TypeError('gzip, brotli, zstd are mutually exclusive')\n }\n if (opt.gzip) {\n if (typeof opt.gzip !== 'object') {\n opt.gzip = {}\n }\n if (this.portable) {\n opt.gzip.portable = true\n }\n this.zip = new zlib.Gzip(opt.gzip)\n }\n if (opt.brotli) {\n if (typeof opt.brotli !== 'object') {\n opt.brotli = {}\n }\n this.zip = new zlib.BrotliCompress(opt.brotli)\n }\n if (opt.zstd) {\n if (typeof opt.zstd !== 'object') {\n opt.zstd = {}\n }\n this.zip = new zlib.ZstdCompress(opt.zstd)\n }\n /* c8 ignore next */\n if (!this.zip) throw new Error('impossible')\n const zip = this.zip\n zip.on('data', chunk => super.write(chunk as unknown as string))\n zip.on('end', () => super.end())\n zip.on('drain', () => this[ONDRAIN]())\n this.on('resume', () => zip.resume())\n } else {\n this.on('drain', this[ONDRAIN])\n }\n\n this.noDirRecurse = !!opt.noDirRecurse\n this.follow = !!opt.follow\n this.noMtime = !!opt.noMtime\n if (opt.mtime) this.mtime = opt.mtime\n\n this.filter =\n typeof opt.filter === 'function' ? opt.filter : () => true\n\n this[QUEUE] = new Yallist<PackJob>()\n this[JOBS] = 0\n this.jobs = Number(opt.jobs) || 4\n this[PROCESSING] = false\n this[ENDED] = false\n }\n\n [WRITE](chunk: Buffer) {\n return super.write(chunk as unknown as string)\n }\n\n add(path: string | ReadEntry) {\n this.write(path)\n return this\n }\n\n end(cb?: () => void): this\n end(path: string | ReadEntry, cb?: () => void): this\n end(\n path: string | ReadEntry,\n encoding?: Minipass.Encoding,\n cb?: () => void,\n ): this\n end(\n path?: string | ReadEntry | (() => void),\n encoding?: Minipass.Encoding | (() => void),\n cb?: () => void,\n ) {\n /* c8 ignore start */\n if (typeof path === 'function') {\n cb = path\n path = undefined\n }\n if (typeof encoding === 'function') {\n cb = encoding\n encoding = undefined\n }\n /* c8 ignore stop */\n if (path) {\n this.add(path)\n }\n this[ENDED] = true\n this[PROCESS]()\n /* c8 ignore next */\n if (cb) cb()\n return this\n }\n\n write(path: string | ReadEntry) {\n if (this[ENDED]) {\n throw new Error('write after end')\n }\n\n if (path instanceof ReadEntry) {\n this[ADDTARENTRY](path)\n } else {\n this[ADDFSENTRY](path)\n }\n return this.flowing\n }\n\n [ADDTARENTRY](p: ReadEntry) {\n const absolute = normalizeWindowsPath(path.resolve(this.cwd, p.path))\n // in this case, we don't have to wait for the stat\n if (!this.filter(p.path, p)) {\n p.resume()\n } else {\n const job = new PackJob(p.path, absolute)\n job.entry = new WriteEntryTar(p, this[ENTRYOPT](job))\n job.entry.on('end', () => this[JOBDONE](job))\n this[JOBS] += 1\n this[QUEUE].push(job)\n }\n\n this[PROCESS]()\n }\n\n [ADDFSENTRY](p: string) {\n const absolute = normalizeWindowsPath(path.resolve(this.cwd, p))\n this[QUEUE].push(new PackJob(p, absolute))\n this[PROCESS]()\n }\n\n [STAT](job: PackJob) {\n job.pending = true\n this[JOBS] += 1\n const stat = this.follow ? 'stat' : 'lstat'\n fs[stat](job.absolute, (er, stat) => {\n job.pending = false\n this[JOBS] -= 1\n if (er) {\n this.emit('error', er)\n } else {\n this[ONSTAT](job, stat)\n }\n })\n }\n\n [ONSTAT](job: PackJob, stat: Stats) {\n this.statCache.set(job.absolute, stat)\n job.stat = stat\n\n // now we have the stat, we can filter it.\n if (!this.filter(job.path, stat)) {\n job.ignore = true\n } else if (\n stat.isFile() &&\n stat.nlink > 1 &&\n !this.linkCache.get(`${stat.dev}:${stat.ino}`) &&\n !this.sync\n ) {\n // if it's not filtered, and it's a new File entry, and next anyway\n // process right away in case any pending Link entries are about\n // to try to link to it.\n if (job === this[CURRENT]) {\n this[PROCESSJOB](job)\n } else {\n // if it's NOT the current entry, it needs to be deferred,\n // so that the link target can be built first.\n const key: LinkCacheKey = `${stat.dev}:${stat.ino}`\n const pending = this[PENDINGLINKS].get(key)\n if (pending) pending.push(job)\n else this[PENDINGLINKS].set(key, [job])\n job.pendingLink = true\n job.pending = true\n }\n }\n\n this[PROCESS]()\n }\n\n [READDIR](job: PackJob) {\n job.pending = true\n this[JOBS] += 1\n fs.readdir(job.absolute, (er, entries) => {\n job.pending = false\n this[JOBS] -= 1\n if (er) {\n return this.emit('error', er)\n }\n this[ONREADDIR](job, entries)\n })\n }\n\n [ONREADDIR](job: PackJob, entries: string[]) {\n this.readdirCache.set(job.absolute, entries)\n job.readdir = entries\n this[PROCESS]()\n }\n\n [PROCESS]() {\n if (this[PROCESSING]) {\n return\n }\n\n this[PROCESSING] = true\n for (\n let w = this[QUEUE].head;\n !!w && this[JOBS] < this.jobs;\n w = w.next\n ) {\n this[PROCESSJOB](w.value)\n if (w.value.ignore) {\n const p = w.next\n this[QUEUE].removeNode(w)\n w.next = p\n }\n }\n\n this[PROCESSING] = false\n\n if (this[ENDED] && this[QUEUE].length === 0 && this[JOBS] === 0) {\n if (this.zip) {\n this.zip.end(EOF)\n } else {\n super.write(EOF as unknown as string)\n super.end()\n }\n }\n }\n\n get [CURRENT]() {\n return this[QUEUE] && this[QUEUE].head && this[QUEUE].head.value\n }\n\n [JOBDONE](job: PackJob) {\n this[QUEUE].shift()\n this[JOBS] -= 1\n const { stat } = job\n if (stat && stat.isFile() && stat.nlink > 1) {\n // might be a file with pending links\n const key: LinkCacheKey = `${stat.dev}:${stat.ino}`\n const pending = this[PENDINGLINKS].get(key)\n if (pending) {\n this[PENDINGLINKS].delete(key)\n for (const job of pending) {\n job.pending = false\n this[PROCESSJOB](job)\n }\n }\n }\n this[PROCESS]()\n }\n\n [PROCESSJOB](job: PackJob) {\n if (job.pending && job.pendingLink && job === this[CURRENT]) {\n // At least one of the links to this file are not being included\n // in the tarball, so we need to just proceed.\n job.pending = false\n job.pendingLink = false\n }\n if (job.pending) {\n return\n }\n\n if (job.entry) {\n if (job === this[CURRENT] && !job.piped) {\n this[PIPE](job)\n }\n return\n }\n\n if (!job.stat) {\n const sc = this.statCache.get(job.absolute)\n if (sc) {\n this[ONSTAT](job, sc)\n } else {\n this[STAT](job)\n }\n }\n if (!job.stat) {\n return\n }\n\n // filtered out!\n if (job.ignore) {\n return\n }\n\n if (!this.noDirRecurse && job.stat.isDirectory() && !job.readdir) {\n const rc = this.readdirCache.get(job.absolute)\n if (rc) {\n this[ONREADDIR](job, rc)\n } else {\n this[READDIR](job)\n }\n if (!job.readdir) {\n return\n }\n }\n\n // we know it doesn't have an entry, because that got checked above\n job.entry = this[ENTRY](job)\n if (!job.entry) {\n job.ignore = true\n return\n }\n\n if (job === this[CURRENT] && !job.piped) {\n this[PIPE](job)\n }\n }\n\n [ENTRYOPT](job: PackJob): TarOptions {\n return {\n onwarn: (code, msg, data) => this.warn(code, msg, data),\n noPax: this.noPax,\n cwd: this.cwd,\n absolute: job.absolute,\n preservePaths: this.preservePaths,\n maxReadSize: this.maxReadSize,\n strict: this.strict,\n portable: this.portable,\n linkCache: this.linkCache,\n statCache: this.statCache,\n noMtime: this.noMtime,\n mtime: this.mtime,\n prefix: this.prefix,\n onWriteEntry: this.onWriteEntry,\n }\n }\n\n [ENTRY](job: PackJob) {\n this[JOBS] += 1\n try {\n const e = new this[WRITEENTRYCLASS](job.path, this[ENTRYOPT](job))\n return e\n .on('end', () => this[JOBDONE](job))\n .on('error', er => this.emit('error', er))\n } catch (er) {\n this.emit('error', er)\n }\n }\n\n [ONDRAIN]() {\n if (this[CURRENT] && this[CURRENT].entry) {\n this[CURRENT].entry.resume()\n }\n }\n\n // like .pipe() but using super, because our write() is special\n [PIPE](job: PackJob) {\n job.piped = true\n\n if (job.readdir) {\n job.readdir.forEach(entry => {\n const p = job.path\n const base = p === './' ? '' : p.replace(/\\/*$/, '/')\n this[ADDFSENTRY](base + entry)\n })\n }\n\n const source = job.entry\n const zip = this.zip\n /* c8 ignore start */\n if (!source) throw new Error('cannot pipe without source')\n /* c8 ignore stop */\n\n if (zip) {\n source.on('data', chunk => {\n if (!zip.write(chunk)) {\n source.pause()\n }\n })\n } else {\n source.on('data', chunk => {\n if (!super.write(chunk as unknown as string)) {\n source.pause()\n }\n })\n }\n }\n\n pause() {\n if (this.zip) {\n this.zip.pause()\n }\n return super.pause()\n }\n warn(code: string, message: string | Error, data: WarnData = {}): void {\n warnMethod(this, code, message, data)\n }\n}\n\nexport class PackSync extends Pack {\n sync: true = true\n constructor(opt: TarOptions) {\n super(opt)\n this[WRITEENTRYCLASS] = WriteEntrySync\n }\n\n // pause/resume are no-ops in sync streams.\n pause() {}\n resume() {}\n\n [STAT](job: PackJob) {\n const stat = this.follow ? 'statSync' : 'lstatSync'\n this[ONSTAT](job, fs[stat](job.absolute))\n }\n\n [READDIR](job: PackJob) {\n this[ONREADDIR](job, fs.readdirSync(job.absolute))\n }\n\n // gotta get it all in this tick\n [PIPE](job: PackJob) {\n const source = job.entry\n const zip = this.zip\n\n if (job.readdir) {\n job.readdir.forEach(entry => {\n const p = job.path\n const base = p === './' ? '' : p.replace(/\\/*$/, '/')\n this[ADDFSENTRY](base + entry)\n })\n }\n\n /* c8 ignore start */\n if (!source) throw new Error('Cannot pipe without source')\n /* c8 ignore stop */\n\n if (zip) {\n source.on('data', chunk => {\n zip.write(chunk)\n })\n } else {\n source.on('data', chunk => {\n super[WRITE](chunk)\n })\n }\n }\n}\n", "import fs, { type Stats } from 'fs'\nimport { Minipass } from 'minipass'\nimport path from 'path'\nimport { Header } from './header.js'\nimport { modeFix } from './mode-fix.js'\nimport { normalizeWindowsPath } from './normalize-windows-path.js'\nimport type {\n LinkCacheKey,\n TarOptions,\n TarOptionsWithAliases,\n} from './options.js'\nimport { dealias } from './options.js'\nimport { Pax } from './pax.js'\nimport type { ReadEntry } from './read-entry.js'\nimport { stripAbsolutePath } from './strip-absolute-path.js'\nimport { stripTrailingSlashes } from './strip-trailing-slashes.js'\nimport type { EntryTypeName } from './types.js'\nimport type { WarnData, Warner, WarnEvent } from './warn-method.js'\nimport { warnMethod } from './warn-method.js'\nimport * as winchars from './winchars.js'\n\nconst prefixPath = (path: string, prefix?: string) => {\n if (!prefix) {\n return normalizeWindowsPath(path)\n }\n path = normalizeWindowsPath(path).replace(/^\\.(\\/|$)/, '')\n return stripTrailingSlashes(prefix) + '/' + path\n}\n\nconst maxReadSize = 16 * 1024 * 1024\n\nconst PROCESS = Symbol('process')\nconst FILE = Symbol('file')\nconst DIRECTORY = Symbol('directory')\nconst SYMLINK = Symbol('symlink')\nconst HARDLINK = Symbol('hardlink')\nconst HEADER = Symbol('header')\nconst READ = Symbol('read')\nconst LSTAT = Symbol('lstat')\nconst ONLSTAT = Symbol('onlstat')\nconst ONREAD = Symbol('onread')\nconst ONREADLINK = Symbol('onreadlink')\nconst OPENFILE = Symbol('openfile')\nconst ONOPENFILE = Symbol('onopenfile')\nconst CLOSE = Symbol('close')\nconst MODE = Symbol('mode')\nconst AWAITDRAIN = Symbol('awaitDrain')\nconst ONDRAIN = Symbol('ondrain')\nconst PREFIX = Symbol('prefix')\n\nexport class WriteEntry\n extends Minipass<Buffer, Minipass.ContiguousData, WarnEvent>\n implements Warner\n{\n path: string\n portable: boolean\n myuid: number = (process.getuid && process.getuid()) || 0\n // until node has builtin pwnam functions, this'll have to do\n myuser: string = process.env.USER || ''\n maxReadSize: number\n linkCache: Exclude<TarOptions['linkCache'], undefined>\n statCache: Exclude<TarOptions['statCache'], undefined>\n preservePaths: boolean\n cwd: string\n strict: boolean\n mtime?: Date\n noPax: boolean\n noMtime: boolean\n prefix?: string\n fd?: number\n\n blockLen: number = 0\n blockRemain: number = 0\n buf?: Buffer\n pos: number = 0\n remain: number = 0\n length: number = 0\n offset: number = 0\n\n win32: boolean\n absolute: string\n\n header?: Header\n type?: EntryTypeName | 'Unsupported'\n linkpath?: string\n stat?: Stats\n onWriteEntry?: (entry: WriteEntry) => unknown\n\n #hadError: boolean = false\n\n constructor(p: string, opt_: TarOptionsWithAliases = {}) {\n const opt = dealias(opt_)\n super()\n this.path = normalizeWindowsPath(p)\n // suppress atime, ctime, uid, gid, uname, gname\n this.portable = !!opt.portable\n this.maxReadSize = opt.maxReadSize || maxReadSize\n this.linkCache = opt.linkCache || new Map()\n this.statCache = opt.statCache || new Map()\n this.preservePaths = !!opt.preservePaths\n this.cwd = normalizeWindowsPath(opt.cwd || process.cwd())\n this.strict = !!opt.strict\n this.noPax = !!opt.noPax\n this.noMtime = !!opt.noMtime\n this.mtime = opt.mtime\n this.prefix = opt.prefix ? normalizeWindowsPath(opt.prefix) : undefined\n this.onWriteEntry = opt.onWriteEntry\n\n if (typeof opt.onwarn === 'function') {\n this.on('warn', opt.onwarn)\n }\n\n let pathWarn: string | boolean = false\n if (!this.preservePaths) {\n const [root, stripped] = stripAbsolutePath(this.path)\n if (root && typeof stripped === 'string') {\n this.path = stripped\n pathWarn = root\n }\n }\n\n this.win32 = !!opt.win32 || process.platform === 'win32'\n if (this.win32) {\n // force the \\ to / normalization, since we might not *actually*\n // be on windows, but want \\ to be considered a path separator.\n this.path = winchars.decode(this.path.replaceAll(/\\\\/g, '/'))\n p = p.replaceAll(/\\\\/g, '/')\n }\n\n this.absolute = normalizeWindowsPath(\n opt.absolute || path.resolve(this.cwd, p),\n )\n\n if (this.path === '') {\n this.path = './'\n }\n\n if (pathWarn) {\n this.warn(\n 'TAR_ENTRY_INFO',\n `stripping ${pathWarn} from absolute path`,\n {\n entry: this,\n path: pathWarn + this.path,\n },\n )\n }\n\n const cs = this.statCache.get(this.absolute)\n if (cs) {\n this[ONLSTAT](cs)\n } else {\n this[LSTAT]()\n }\n }\n\n warn(code: string, message: string | Error, data: WarnData = {}) {\n return warnMethod(this, code, message, data)\n }\n\n emit(ev: keyof WarnEvent, ...data: unknown[]) {\n if (ev === 'error') {\n this.#hadError = true\n }\n return super.emit(ev, ...data)\n }\n\n [LSTAT]() {\n fs.lstat(this.absolute, (er, stat) => {\n if (er) {\n return this.emit('error', er)\n }\n this[ONLSTAT](stat)\n })\n }\n\n [ONLSTAT](stat: Stats) {\n this.statCache.set(this.absolute, stat)\n this.stat = stat\n if (!stat.isFile()) {\n stat.size = 0\n }\n this.type = getType(stat)\n this.emit('stat', stat)\n this[PROCESS]()\n }\n\n [PROCESS]() {\n switch (this.type) {\n case 'File':\n return this[FILE]()\n case 'Directory':\n return this[DIRECTORY]()\n case 'SymbolicLink':\n return this[SYMLINK]()\n // unsupported types are ignored.\n default:\n return this.end()\n }\n }\n\n [MODE](mode: number) {\n return modeFix(mode, this.type === 'Directory', this.portable)\n }\n\n [PREFIX](path: string) {\n return prefixPath(path, this.prefix)\n }\n\n [HEADER]() {\n /* c8 ignore start */\n if (!this.stat) {\n throw new Error('cannot write header before stat')\n }\n /* c8 ignore stop */\n\n if (this.type === 'Directory' && this.portable) {\n this.noMtime = true\n }\n\n this.onWriteEntry?.(this)\n this.header = new Header({\n path: this[PREFIX](this.path),\n // only apply the prefix to hard links.\n linkpath:\n this.type === 'Link' && this.linkpath !== undefined ?\n this[PREFIX](this.linkpath)\n : this.linkpath,\n // only the permissions and setuid/setgid/sticky bitflags\n // not the higher-order bits that specify file type\n mode: this[MODE](this.stat.mode),\n uid: this.portable ? undefined : this.stat.uid,\n gid: this.portable ? undefined : this.stat.gid,\n size: this.stat.size,\n mtime: this.noMtime ? undefined : this.mtime || this.stat.mtime,\n /* c8 ignore next */\n type: this.type === 'Unsupported' ? undefined : this.type,\n uname:\n this.portable ? undefined\n : this.stat.uid === this.myuid ? this.myuser\n : '',\n atime: this.portable ? undefined : this.stat.atime,\n ctime: this.portable ? undefined : this.stat.ctime,\n })\n\n if (this.header.encode() && !this.noPax) {\n super.write(\n new Pax({\n atime: this.portable ? undefined : this.header.atime,\n ctime: this.portable ? undefined : this.header.ctime,\n gid: this.portable ? undefined : this.header.gid,\n mtime:\n this.noMtime ? undefined : this.mtime || this.header.mtime,\n path: this[PREFIX](this.path),\n linkpath:\n this.type === 'Link' && this.linkpath !== undefined ?\n this[PREFIX](this.linkpath)\n : this.linkpath,\n size: this.header.size,\n uid: this.portable ? undefined : this.header.uid,\n uname: this.portable ? undefined : this.header.uname,\n dev: this.portable ? undefined : this.stat.dev,\n ino: this.portable ? undefined : this.stat.ino,\n nlink: this.portable ? undefined : this.stat.nlink,\n }).encode(),\n )\n }\n const block = this.header?.block\n /* c8 ignore start */\n if (!block) {\n throw new Error('failed to encode header')\n }\n /* c8 ignore stop */\n super.write(block)\n }\n\n [DIRECTORY]() {\n /* c8 ignore start */\n if (!this.stat) {\n throw new Error('cannot create directory entry without stat')\n }\n /* c8 ignore stop */\n if (this.path.slice(-1) !== '/') {\n this.path += '/'\n }\n this.stat.size = 0\n this[HEADER]()\n this.end()\n }\n\n [SYMLINK]() {\n fs.readlink(this.absolute, (er, linkpath) => {\n if (er) {\n return this.emit('error', er)\n }\n this[ONREADLINK](linkpath)\n })\n }\n\n [ONREADLINK](linkpath: string) {\n this.linkpath = normalizeWindowsPath(linkpath)\n this[HEADER]()\n this.end()\n }\n\n [HARDLINK](linkpath: string) {\n /* c8 ignore start */\n if (!this.stat) {\n throw new Error('cannot create link entry without stat')\n }\n /* c8 ignore stop */\n this.type = 'Link'\n this.linkpath = normalizeWindowsPath(path.relative(this.cwd, linkpath))\n this.stat.size = 0\n this[HEADER]()\n this.end()\n }\n\n [FILE]() {\n /* c8 ignore start */\n if (!this.stat) {\n throw new Error('cannot create file entry without stat')\n }\n /* c8 ignore stop */\n if (this.stat.nlink > 1) {\n const linkKey = `${this.stat.dev}:${this.stat.ino}` as LinkCacheKey\n const linkpath = this.linkCache.get(linkKey)\n if (linkpath?.indexOf(this.cwd) === 0) {\n return this[HARDLINK](linkpath)\n }\n this.linkCache.set(linkKey, this.absolute)\n }\n\n this[HEADER]()\n if (this.stat.size === 0) {\n return this.end()\n }\n\n this[OPENFILE]()\n }\n\n [OPENFILE]() {\n fs.open(this.absolute, 'r', (er, fd) => {\n if (er) {\n return this.emit('error', er)\n }\n this[ONOPENFILE](fd)\n })\n }\n\n [ONOPENFILE](fd: number) {\n this.fd = fd\n if (this.#hadError) {\n return this[CLOSE]()\n }\n /* c8 ignore start */\n if (!this.stat) {\n throw new Error('should stat before calling onopenfile')\n }\n /* c8 ignore start */\n\n this.blockLen = 512 * Math.ceil(this.stat.size / 512)\n this.blockRemain = this.blockLen\n const bufLen = Math.min(this.blockLen, this.maxReadSize)\n this.buf = Buffer.allocUnsafe(bufLen)\n this.offset = 0\n this.pos = 0\n this.remain = this.stat.size\n this.length = this.buf.length\n this[READ]()\n }\n\n [READ]() {\n const { fd, buf, offset, length, pos } = this\n if (fd === undefined || buf === undefined) {\n throw new Error('cannot read file without first opening')\n }\n fs.read(fd, buf, offset, length, pos, (er, bytesRead) => {\n if (er) {\n // ignoring the error from close(2) is a bad practice, but at\n // this point we already have an error, don't need another one\n return this[CLOSE](() => this.emit('error', er))\n }\n this[ONREAD](bytesRead)\n })\n }\n\n /* c8 ignore start */\n [CLOSE](\n cb: (er?: null | Error | NodeJS.ErrnoException) => unknown = () => {},\n ) {\n /* c8 ignore stop */\n if (this.fd !== undefined) fs.close(this.fd, cb)\n }\n\n [ONREAD](bytesRead: number) {\n if (bytesRead <= 0 && this.remain > 0) {\n const er = Object.assign(new Error('encountered unexpected EOF'), {\n path: this.absolute,\n syscall: 'read',\n code: 'EOF',\n })\n return this[CLOSE](() => this.emit('error', er))\n }\n\n if (bytesRead > this.remain) {\n const er = Object.assign(\n new Error('did not encounter expected EOF'),\n {\n path: this.absolute,\n syscall: 'read',\n code: 'EOF',\n },\n )\n return this[CLOSE](() => this.emit('error', er))\n }\n\n /* c8 ignore start */\n if (!this.buf) {\n throw new Error('should have created buffer prior to reading')\n }\n /* c8 ignore stop */\n\n // null out the rest of the buffer, if we could fit the block padding\n // at the end of this loop, we've incremented bytesRead and this.remain\n // to be incremented up to the blockRemain level, as if we had expected\n // to get a null-padded file, and read it until the end. then we will\n // decrement both remain and blockRemain by bytesRead, and know that we\n // reached the expected EOF, without any null buffer to append.\n if (bytesRead === this.remain) {\n for (\n let i = bytesRead;\n i < this.length && bytesRead < this.blockRemain;\n i++\n ) {\n this.buf[i + this.offset] = 0\n bytesRead++\n this.remain++\n }\n }\n\n const chunk =\n this.offset === 0 && bytesRead === this.buf.length ?\n this.buf\n : this.buf.subarray(this.offset, this.offset + bytesRead)\n\n const flushed = this.write(chunk)\n if (!flushed) {\n this[AWAITDRAIN](() => this[ONDRAIN]())\n } else {\n this[ONDRAIN]()\n }\n }\n\n [AWAITDRAIN](cb: () => unknown) {\n this.once('drain', cb)\n }\n\n write(buffer: Buffer | string, cb?: () => void): boolean\n write(\n str: Buffer | string,\n encoding?: BufferEncoding | null,\n cb?: () => void,\n ): boolean\n write(\n chunk: Buffer | string,\n encoding?: BufferEncoding | (() => unknown) | null,\n cb?: () => unknown,\n ): boolean {\n /* c8 ignore start - just junk to comply with NodeJS.WritableStream */\n if (typeof encoding === 'function') {\n cb = encoding\n encoding = undefined\n }\n if (typeof chunk === 'string') {\n chunk = Buffer.from(\n chunk,\n typeof encoding === 'string' ? encoding : 'utf8',\n )\n }\n /* c8 ignore stop */\n\n if (this.blockRemain < chunk.length) {\n const er = Object.assign(\n new Error('writing more data than expected'),\n {\n path: this.absolute,\n },\n )\n return this.emit('error', er)\n }\n this.remain -= chunk.length\n this.blockRemain -= chunk.length\n this.pos += chunk.length\n this.offset += chunk.length\n return super.write(chunk, null, cb)\n }\n\n [ONDRAIN]() {\n if (!this.remain) {\n if (this.blockRemain) {\n super.write(Buffer.alloc(this.blockRemain))\n }\n return this[CLOSE](er => (er ? this.emit('error', er) : this.end()))\n }\n\n /* c8 ignore start */\n if (!this.buf) {\n throw new Error('buffer lost somehow in ONDRAIN')\n }\n /* c8 ignore stop */\n\n if (this.offset >= this.length) {\n // if we only have a smaller bit left to read, alloc a smaller buffer\n // otherwise, keep it the same length it was before.\n this.buf = Buffer.allocUnsafe(\n Math.min(this.blockRemain, this.buf.length),\n )\n this.offset = 0\n }\n this.length = this.buf.length - this.offset\n this[READ]()\n }\n}\n\nexport class WriteEntrySync extends WriteEntry implements Warner {\n sync: true = true;\n\n [LSTAT]() {\n this[ONLSTAT](fs.lstatSync(this.absolute))\n }\n\n [SYMLINK]() {\n this[ONREADLINK](fs.readlinkSync(this.absolute))\n }\n\n [OPENFILE]() {\n this[ONOPENFILE](fs.openSync(this.absolute, 'r'))\n }\n\n [READ]() {\n let threw = true\n try {\n const { fd, buf, offset, length, pos } = this\n /* c8 ignore start */\n if (fd === undefined || buf === undefined) {\n throw new Error('fd and buf must be set in READ method')\n }\n /* c8 ignore stop */\n const bytesRead = fs.readSync(fd, buf, offset, length, pos)\n this[ONREAD](bytesRead)\n threw = false\n } finally {\n // ignoring the error from close(2) is a bad practice, but at\n // this point we already have an error, don't need another one\n if (threw) {\n try {\n this[CLOSE](() => {})\n } catch {}\n }\n }\n }\n\n [AWAITDRAIN](cb: () => unknown) {\n cb()\n }\n\n /* c8 ignore start */\n [CLOSE](\n cb: (er?: null | Error | NodeJS.ErrnoException) => unknown = () => {},\n ) {\n /* c8 ignore stop */\n if (this.fd !== undefined) fs.closeSync(this.fd)\n cb()\n }\n}\n\nexport class WriteEntryTar\n extends Minipass<Buffer, Buffer | string, WarnEvent>\n implements Warner\n{\n blockLen: number = 0\n blockRemain: number = 0\n buf: number = 0\n pos: number = 0\n remain: number = 0\n length: number = 0\n preservePaths: boolean\n portable: boolean\n strict: boolean\n noPax: boolean\n noMtime: boolean\n readEntry: ReadEntry\n type: EntryTypeName\n prefix?: string\n path: string\n mode?: number\n uid?: number\n gid?: number\n uname?: string\n gname?: string\n header?: Header\n mtime?: Date\n atime?: Date\n ctime?: Date\n linkpath?: string\n size: number\n onWriteEntry?: (entry: WriteEntry) => unknown\n\n warn(code: string, message: string | Error, data: WarnData = {}) {\n return warnMethod(this, code, message, data)\n }\n\n constructor(readEntry: ReadEntry, opt_: TarOptionsWithAliases = {}) {\n const opt = dealias(opt_)\n super()\n this.preservePaths = !!opt.preservePaths\n this.portable = !!opt.portable\n this.strict = !!opt.strict\n this.noPax = !!opt.noPax\n this.noMtime = !!opt.noMtime\n this.onWriteEntry = opt.onWriteEntry\n\n this.readEntry = readEntry\n const { type } = readEntry\n /* c8 ignore start */\n if (type === 'Unsupported') {\n throw new Error('writing entry that should be ignored')\n }\n /* c8 ignore stop */\n this.type = type\n if (this.type === 'Directory' && this.portable) {\n this.noMtime = true\n }\n\n this.prefix = opt.prefix\n\n this.path = normalizeWindowsPath(readEntry.path)\n this.mode =\n readEntry.mode !== undefined ? this[MODE](readEntry.mode) : undefined\n this.uid = this.portable ? undefined : readEntry.uid\n this.gid = this.portable ? undefined : readEntry.gid\n this.uname = this.portable ? undefined : readEntry.uname\n this.gname = this.portable ? undefined : readEntry.gname\n this.size = readEntry.size\n this.mtime = this.noMtime ? undefined : opt.mtime || readEntry.mtime\n this.atime = this.portable ? undefined : readEntry.atime\n this.ctime = this.portable ? undefined : readEntry.ctime\n this.linkpath =\n readEntry.linkpath !== undefined ?\n normalizeWindowsPath(readEntry.linkpath)\n : undefined\n\n if (typeof opt.onwarn === 'function') {\n this.on('warn', opt.onwarn)\n }\n\n let pathWarn: false | string = false\n if (!this.preservePaths) {\n const [root, stripped] = stripAbsolutePath(this.path)\n if (root && typeof stripped === 'string') {\n this.path = stripped\n pathWarn = root\n }\n }\n\n this.remain = readEntry.size\n this.blockRemain = readEntry.startBlockSize\n\n this.onWriteEntry?.(this as unknown as WriteEntry)\n this.header = new Header({\n path: this[PREFIX](this.path),\n linkpath:\n this.type === 'Link' && this.linkpath !== undefined ?\n this[PREFIX](this.linkpath)\n : this.linkpath,\n // only the permissions and setuid/setgid/sticky bitflags\n // not the higher-order bits that specify file type\n mode: this.mode,\n uid: this.portable ? undefined : this.uid,\n gid: this.portable ? undefined : this.gid,\n size: this.size,\n mtime: this.noMtime ? undefined : this.mtime,\n type: this.type,\n uname: this.portable ? undefined : this.uname,\n atime: this.portable ? undefined : this.atime,\n ctime: this.portable ? undefined : this.ctime,\n })\n\n if (pathWarn) {\n this.warn(\n 'TAR_ENTRY_INFO',\n `stripping ${pathWarn} from absolute path`,\n {\n entry: this,\n path: pathWarn + this.path,\n },\n )\n }\n\n if (this.header.encode() && !this.noPax) {\n super.write(\n new Pax({\n atime: this.portable ? undefined : this.atime,\n ctime: this.portable ? undefined : this.ctime,\n gid: this.portable ? undefined : this.gid,\n mtime: this.noMtime ? undefined : this.mtime,\n path: this[PREFIX](this.path),\n linkpath:\n this.type === 'Link' && this.linkpath !== undefined ?\n this[PREFIX](this.linkpath)\n : this.linkpath,\n size: this.size,\n uid: this.portable ? undefined : this.uid,\n uname: this.portable ? undefined : this.uname,\n dev: this.portable ? undefined : this.readEntry.dev,\n ino: this.portable ? undefined : this.readEntry.ino,\n nlink: this.portable ? undefined : this.readEntry.nlink,\n }).encode(),\n )\n }\n\n const b = this.header?.block\n /* c8 ignore start */\n if (!b) throw new Error('failed to encode header')\n /* c8 ignore stop */\n super.write(b)\n readEntry.pipe(this)\n }\n\n [PREFIX](path: string) {\n return prefixPath(path, this.prefix)\n }\n\n [MODE](mode: number) {\n return modeFix(mode, this.type === 'Directory', this.portable)\n }\n\n write(buffer: Buffer | string, cb?: () => void): boolean\n write(\n str: Buffer | string,\n encoding?: BufferEncoding | null,\n cb?: () => void,\n ): boolean\n write(\n chunk: Buffer | string,\n encoding?: BufferEncoding | (() => unknown) | null,\n cb?: () => unknown,\n ): boolean {\n /* c8 ignore start - just junk to comply with NodeJS.WritableStream */\n if (typeof encoding === 'function') {\n cb = encoding\n encoding = undefined\n }\n if (typeof chunk === 'string') {\n chunk = Buffer.from(\n chunk,\n typeof encoding === 'string' ? encoding : 'utf8',\n )\n }\n /* c8 ignore stop */\n const writeLen = chunk.length\n if (writeLen > this.blockRemain) {\n throw new Error('writing more to entry than is appropriate')\n }\n this.blockRemain -= writeLen\n return super.write(chunk, cb)\n }\n\n end(cb?: () => void): this\n end(chunk: Buffer | string, cb?: () => void): this\n end(\n chunk: Buffer | string,\n encoding?: BufferEncoding,\n cb?: () => void,\n ): this\n end(\n chunk?: Buffer | string | (() => void),\n encoding?: BufferEncoding | (() => void),\n cb?: () => void,\n ): this {\n if (this.blockRemain) {\n super.write(Buffer.alloc(this.blockRemain))\n }\n /* c8 ignore start - just junk to comply with NodeJS.WritableStream */\n if (typeof chunk === 'function') {\n cb = chunk\n encoding = undefined\n chunk = undefined\n }\n if (typeof encoding === 'function') {\n cb = encoding\n encoding = undefined\n }\n if (typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding ?? 'utf8')\n }\n if (cb) this.once('finish', cb)\n if (chunk) super.end(chunk, cb)\n else super.end(cb)\n /* c8 ignore stop */\n return this\n }\n}\n\nconst getType = (stat: Stats): EntryTypeName | 'Unsupported' =>\n stat.isFile() ? 'File'\n : stat.isDirectory() ? 'Directory'\n : stat.isSymbolicLink() ? 'SymbolicLink'\n : 'Unsupported'\n", "export const modeFix = (\n mode: number,\n isDir: boolean,\n portable: boolean,\n) => {\n mode &= 0o7777\n\n // in portable mode, use the minimum reasonable umask\n // if this system creates files with 0o664 by default\n // (as some linux distros do), then we'll write the\n // archive with 0o644 instead. Also, don't ever create\n // a file that is not readable/writable by the owner.\n if (portable) {\n mode = (mode | 0o600) & ~0o22\n }\n\n // if dirs are readable, then they should be listable\n if (isDir) {\n if (mode & 0o400) {\n mode |= 0o100\n }\n if (mode & 0o40) {\n mode |= 0o10\n }\n if (mode & 0o4) {\n mode |= 0o1\n }\n }\n return mode\n}\n", "// unix absolute paths are also absolute on win32, so we use this for both\nimport { win32 } from 'node:path'\nconst { isAbsolute, parse } = win32\n\n// returns [root, stripped]\n// Note that windows will think that //x/y/z/a has a \"root\" of //x/y, and in\n// those cases, we want to sanitize it to x/y/z/a, not z/a, so we strip /\n// explicitly if it's the first character.\n// drive-specific relative paths on Windows get their root stripped off even\n// though they are not absolute, so `c:../foo` becomes ['c:', '../foo']\nexport const stripAbsolutePath = (path: string): [string, string] => {\n let r = ''\n\n let parsed = parse(path)\n while (isAbsolute(path) || parsed.root) {\n // windows will think that //x/y/z has a \"root\" of //x/y/\n // but strip the //?/C:/ off of //?/C:/path\n const root =\n path.charAt(0) === '/' && path.slice(0, 4) !== '//?/' ?\n '/'\n : parsed.root\n path = path.slice(root.length)\n r += root\n parsed = parse(path)\n }\n return [r, path]\n}\n", "// When writing files on Windows, translate the characters to their\n// 0xf000 higher-encoded versions.\n\nconst raw = ['|', '<', '>', '?', ':']\n\nconst win = raw.map(char =>\n String.fromCodePoint(0xf000 + Number(char.codePointAt(0))),\n)\n\nconst toWin = new Map(raw.map((char, i) => [char, win[i]]))\nconst toRaw = new Map(win.map((char, i) => [char, raw[i]]))\n\nexport const encode = (s: string) =>\n raw.reduce((s, c) => s.split(c).join(toWin.get(c)), s)\nexport const decode = (s: string) =>\n win.reduce((s, c) => s.split(c).join(toRaw.get(c)), s)\n", "export class Yallist<T = unknown> {\n tail?: Node<T>\n head?: Node<T>\n length: number = 0\n\n static create<T = unknown>(list: Iterable<T> = []) {\n return new Yallist(list)\n }\n\n constructor(list: Iterable<T> = []) {\n for (const item of list) {\n this.push(item)\n }\n }\n\n *[Symbol.iterator]() {\n for (let walker = this.head; walker; walker = walker.next) {\n yield walker.value\n }\n }\n\n removeNode(node: Node<T>) {\n if (node.list !== this) {\n throw new Error(\n 'removing node which does not belong to this list',\n )\n }\n\n const next = node.next\n const prev = node.prev\n\n if (next) {\n next.prev = prev\n }\n\n if (prev) {\n prev.next = next\n }\n\n if (node === this.head) {\n this.head = next\n }\n if (node === this.tail) {\n this.tail = prev\n }\n\n this.length--\n node.next = undefined\n node.prev = undefined\n node.list = undefined\n\n return next\n }\n\n unshiftNode(node: Node<T>) {\n if (node === this.head) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n const head = this.head\n node.list = this\n node.next = head\n if (head) {\n head.prev = node\n }\n\n this.head = node\n if (!this.tail) {\n this.tail = node\n }\n this.length++\n }\n\n pushNode(node: Node<T>) {\n if (node === this.tail) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n const tail = this.tail\n node.list = this\n node.prev = tail\n if (tail) {\n tail.next = node\n }\n\n this.tail = node\n if (!this.head) {\n this.head = node\n }\n this.length++\n }\n\n push(...args: T[]) {\n for (let i = 0, l = args.length; i < l; i++) {\n push(this, args[i])\n }\n return this.length\n }\n\n unshift(...args: T[]) {\n for (var i = 0, l = args.length; i < l; i++) {\n unshift(this, args[i])\n }\n return this.length\n }\n\n pop() {\n if (!this.tail) {\n return undefined\n }\n\n const res = this.tail.value\n const t = this.tail\n this.tail = this.tail.prev\n if (this.tail) {\n this.tail.next = undefined\n } else {\n this.head = undefined\n }\n t.list = undefined\n this.length--\n return res\n }\n\n shift() {\n if (!this.head) {\n return undefined\n }\n\n const res = this.head.value\n const h = this.head\n this.head = this.head.next\n if (this.head) {\n this.head.prev = undefined\n } else {\n this.tail = undefined\n }\n h.list = undefined\n this.length--\n return res\n }\n\n forEach(\n fn: (value: T, i: number, list: Yallist<T>) => any,\n thisp?: any,\n ) {\n thisp = thisp || this\n for (let walker = this.head, i = 0; !!walker; i++) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.next\n }\n }\n\n forEachReverse(\n fn: (value: T, i: number, list: Yallist<T>) => any,\n thisp?: any,\n ) {\n thisp = thisp || this\n for (let walker = this.tail, i = this.length - 1; !!walker; i--) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.prev\n }\n }\n\n get(n: number) {\n let i = 0\n let walker = this.head\n for (; !!walker && i < n; i++) {\n walker = walker.next\n }\n if (i === n && !!walker) {\n return walker.value\n }\n }\n\n getReverse(n: number) {\n let i = 0\n let walker = this.tail\n for (; !!walker && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.prev\n }\n if (i === n && !!walker) {\n return walker.value\n }\n }\n\n map<R = any>(\n fn: (value: T, list: Yallist<T>) => R,\n thisp?: any,\n ): Yallist<R> {\n thisp = thisp || this\n const res = new Yallist<R>()\n for (let walker = this.head; !!walker; ) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.next\n }\n return res\n }\n\n mapReverse<R = any>(\n fn: (value: T, list: Yallist<T>) => R,\n thisp?: any,\n ): Yallist<R> {\n thisp = thisp || this\n var res = new Yallist<R>()\n for (let walker = this.tail; !!walker; ) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.prev\n }\n return res\n }\n\n reduce(fn: (left: T, right: T, i: number) => T): T\n reduce<R = any>(\n fn: (acc: R, next: T, i: number) => R,\n initial: R,\n ): R\n reduce<R = any>(\n fn: (acc: R, next: T, i: number) => R,\n initial?: R,\n ): R {\n let acc: R | T\n let walker = this.head\n if (arguments.length > 1) {\n acc = initial as R\n } else if (this.head) {\n walker = this.head.next\n acc = this.head.value\n } else {\n throw new TypeError(\n 'Reduce of empty list with no initial value',\n )\n }\n\n for (var i = 0; !!walker; i++) {\n acc = fn(acc as R, walker.value, i)\n walker = walker.next\n }\n\n return acc as R\n }\n\n reduceReverse(fn: (left: T, right: T, i: number) => T): T\n reduceReverse<R = any>(\n fn: (acc: R, next: T, i: number) => R,\n initial: R,\n ): R\n reduceReverse<R = any>(\n fn: (acc: R, next: T, i: number) => R,\n initial?: R,\n ): R {\n let acc: R | T\n let walker = this.tail\n if (arguments.length > 1) {\n acc = initial as R\n } else if (this.tail) {\n walker = this.tail.prev\n acc = this.tail.value\n } else {\n throw new TypeError(\n 'Reduce of empty list with no initial value',\n )\n }\n\n for (let i = this.length - 1; !!walker; i--) {\n acc = fn(acc as R, walker.value, i)\n walker = walker.prev\n }\n\n return acc as R\n }\n\n toArray() {\n const arr = new Array(this.length)\n for (let i = 0, walker = this.head; !!walker; i++) {\n arr[i] = walker.value\n walker = walker.next\n }\n return arr\n }\n\n toArrayReverse() {\n const arr = new Array(this.length)\n for (let i = 0, walker = this.tail; !!walker; i++) {\n arr[i] = walker.value\n walker = walker.prev\n }\n return arr\n }\n\n slice(from: number = 0, to: number = this.length) {\n if (to < 0) {\n to += this.length\n }\n if (from < 0) {\n from += this.length\n }\n const ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n let walker = this.head\n let i = 0\n for (i = 0; !!walker && i < from; i++) {\n walker = walker.next\n }\n for (; !!walker && i < to; i++, walker = walker.next) {\n ret.push(walker.value)\n }\n return ret\n }\n\n sliceReverse(from: number = 0, to: number = this.length) {\n if (to < 0) {\n to += this.length\n }\n if (from < 0) {\n from += this.length\n }\n const ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n let i = this.length\n let walker = this.tail\n for (; !!walker && i > to; i--) {\n walker = walker.prev\n }\n for (; !!walker && i > from; i--, walker = walker.prev) {\n ret.push(walker.value)\n }\n return ret\n }\n\n splice(start: number, deleteCount: number = 0, ...nodes: T[]) {\n if (start > this.length) {\n start = this.length - 1\n }\n if (start < 0) {\n start = this.length + start\n }\n\n let walker = this.head\n\n for (let i = 0; !!walker && i < start; i++) {\n walker = walker.next\n }\n\n const ret: T[] = []\n for (let i = 0; !!walker && i < deleteCount; i++) {\n ret.push(walker.value)\n walker = this.removeNode(walker)\n }\n if (!walker) {\n walker = this.tail\n } else if (walker !== this.tail) {\n walker = walker.prev\n }\n\n for (const v of nodes) {\n walker = insertAfter<T>(this, walker, v)\n }\n\n return ret\n }\n\n reverse() {\n const head = this.head\n const tail = this.tail\n for (let walker = head; !!walker; walker = walker.prev) {\n const p = walker.prev\n walker.prev = walker.next\n walker.next = p\n }\n this.head = tail\n this.tail = head\n return this\n }\n}\n\n// insertAfter undefined means \"make the node the new head of list\"\nfunction insertAfter<T>(\n self: Yallist<T>,\n node: Node<T> | undefined,\n value: T,\n) {\n const prev = node\n const next = node ? node.next : self.head\n const inserted = new Node<T>(value, prev, next, self)\n\n if (inserted.next === undefined) {\n self.tail = inserted\n }\n if (inserted.prev === undefined) {\n self.head = inserted\n }\n\n self.length++\n\n return inserted\n}\n\nfunction push<T>(self: Yallist<T>, item: T) {\n self.tail = new Node<T>(item, self.tail, undefined, self)\n if (!self.head) {\n self.head = self.tail\n }\n self.length++\n}\n\nfunction unshift<T>(self: Yallist<T>, item: T) {\n self.head = new Node<T>(item, undefined, self.head, self)\n if (!self.tail) {\n self.tail = self.head\n }\n self.length++\n}\n\nexport class Node<T = unknown> {\n list?: Yallist<T>\n next?: Node<T>\n prev?: Node<T>\n value: T\n\n constructor(\n value: T,\n prev?: Node<T> | undefined,\n next?: Node<T> | undefined,\n list?: Yallist<T> | undefined,\n ) {\n this.list = list\n this.value = value\n\n if (prev) {\n prev.next = this\n this.prev = prev\n } else {\n this.prev = undefined\n }\n\n if (next) {\n next.prev = this\n this.next = next\n } else {\n this.next = undefined\n }\n }\n}\n", "// tar -x\nimport * as fsm from '@isaacs/fs-minipass'\nimport fs from 'node:fs'\nimport { filesFilter } from './list.js'\nimport { makeCommand } from './make-command.js'\nimport type { TarOptionsFile, TarOptionsSyncFile } from './options.js'\nimport { Unpack, UnpackSync } from './unpack.js'\n\nconst extractFileSync = (opt: TarOptionsSyncFile) => {\n const u = new UnpackSync(opt)\n const file = opt.file\n const stat = fs.statSync(file)\n // This trades a zero-byte read() syscall for a stat\n // However, it will usually result in less memory allocation\n const readSize = opt.maxReadSize || 16 * 1024 * 1024\n const stream = new fsm.ReadStreamSync(file, {\n readSize: readSize,\n size: stat.size,\n })\n stream.pipe(u)\n}\n\nconst extractFile = (opt: TarOptionsFile, _?: string[]) => {\n const u = new Unpack(opt)\n const readSize = opt.maxReadSize || 16 * 1024 * 1024\n\n const file = opt.file\n const p = new Promise<void>((resolve, reject) => {\n u.on('error', reject)\n u.on('close', resolve)\n\n // This trades a zero-byte read() syscall for a stat\n // However, it will usually result in less memory allocation\n fs.stat(file, (er, stat) => {\n if (er) {\n reject(er)\n } else {\n const stream = new fsm.ReadStream(file, {\n readSize: readSize,\n size: stat.size,\n })\n stream.on('error', reject)\n stream.pipe(u)\n }\n })\n })\n return p\n}\n\nexport const extract = makeCommand<Unpack, UnpackSync>(\n extractFileSync,\n extractFile,\n opt => new UnpackSync(opt),\n opt => new Unpack(opt),\n (opt, files) => {\n if (files?.length) filesFilter(opt, files)\n },\n)\n", "// the PEND/UNPEND stuff tracks whether we're ready to emit end/close yet.\n// but the path reservations are required to avoid race conditions where\n// parallelized unpack ops may mess with one another, due to dependencies\n// (like a Link depending on its target) or destructive operations (like\n// clobbering an fs object to create one of a different type.)\n\nimport * as fsm from '@isaacs/fs-minipass'\nimport assert from 'node:assert'\nimport { randomBytes } from 'node:crypto'\nimport fs, { type Stats } from 'node:fs'\nimport path from 'node:path'\nimport { getWriteFlag } from './get-write-flag.js'\nimport type { MkdirError } from './mkdir.js'\nimport { mkdir, mkdirSync } from './mkdir.js'\nimport { normalizeWindowsPath } from './normalize-windows-path.js'\nimport { Parser } from './parse.js'\nimport { stripAbsolutePath } from './strip-absolute-path.js'\nimport * as wc from './winchars.js'\n\nimport type { TarOptions } from './options.js'\nimport { PathReservations } from './path-reservations.js'\nimport type { ReadEntry } from './read-entry.js'\nimport type { WarnData } from './warn-method.js'\nimport { SymlinkError } from './symlink-error.js'\nimport { umask } from './process-umask.js'\n\nconst ONENTRY = Symbol('onEntry')\nconst CHECKFS = Symbol('checkFs')\nconst CHECKFS2 = Symbol('checkFs2')\nconst ISREUSABLE = Symbol('isReusable')\nconst MAKEFS = Symbol('makeFs')\nconst FILE = Symbol('file')\nconst DIRECTORY = Symbol('directory')\nconst LINK = Symbol('link')\nconst SYMLINK = Symbol('symlink')\nconst HARDLINK = Symbol('hardlink')\nconst ENSURE_NO_SYMLINK = Symbol('ensureNoSymlink')\nconst UNSUPPORTED = Symbol('unsupported')\nconst CHECKPATH = Symbol('checkPath')\nconst STRIPABSOLUTEPATH = Symbol('stripAbsolutePath')\nconst MKDIR = Symbol('mkdir')\nconst ONERROR = Symbol('onError')\nconst PENDING = Symbol('pending')\nconst PEND = Symbol('pend')\nconst UNPEND = Symbol('unpend')\nconst ENDED = Symbol('ended')\nconst MAYBECLOSE = Symbol('maybeClose')\nconst SKIP = Symbol('skip')\nconst DOCHOWN = Symbol('doChown')\nconst UID = Symbol('uid')\nconst GID = Symbol('gid')\nconst CHECKED_CWD = Symbol('checkedCwd')\nconst platform = process.env.TESTING_TAR_FAKE_PLATFORM || process.platform\nconst isWindows = platform === 'win32'\nconst DEFAULT_MAX_DEPTH = 1024\n\n// Unlinks on Windows are not atomic.\n//\n// This means that if you have a file entry, followed by another\n// file entry with an identical name, and you cannot re-use the file\n// (because it's a hardlink, or because unlink:true is set, or it's\n// Windows, which does not have useful nlink values), then the unlink\n// will be committed to the disk AFTER the new file has been written\n// over the old one, deleting the new file.\n//\n// To work around this, on Windows systems, we rename the file and then\n// delete the renamed file. It's a sloppy kludge, but frankly, I do not\n// know of a better way to do this, given windows' non-atomic unlink\n// semantics.\n//\n// See: https://github.com/npm/node-tar/issues/183\n/* c8 ignore start */\nconst unlinkFile = (path: string, cb: (er?: Error | null) => void) => {\n if (!isWindows) {\n return fs.unlink(path, cb)\n }\n\n const name = path + '.DELETE.' + randomBytes(16).toString('hex')\n fs.rename(path, name, er => {\n if (er) {\n return cb(er)\n }\n fs.unlink(name, cb)\n })\n}\n/* c8 ignore stop */\n\n/* c8 ignore start */\nconst unlinkFileSync = (path: string) => {\n if (!isWindows) {\n return fs.unlinkSync(path)\n }\n\n const name = path + '.DELETE.' + randomBytes(16).toString('hex')\n fs.renameSync(path, name)\n fs.unlinkSync(name)\n}\n/* c8 ignore stop */\n\n// this.gid, entry.gid, this.processUid\nconst uint32 = (\n a: number | undefined,\n b: number | undefined,\n c: number | undefined,\n) =>\n a !== undefined && a === a >>> 0 ? a\n : b !== undefined && b === b >>> 0 ? b\n : c\n\nexport class Unpack extends Parser {\n [ENDED]: boolean = false;\n [CHECKED_CWD]: boolean = false;\n [PENDING]: number = 0\n\n reservations: PathReservations = new PathReservations()\n transform?: TarOptions['transform']\n writable: true = true\n readable: false = false\n uid?: number\n gid?: number\n setOwner: boolean\n preserveOwner: boolean\n processGid?: number\n processUid?: number\n maxDepth: number\n forceChown: boolean\n win32: boolean\n newer: boolean\n keep: boolean\n noMtime: boolean\n preservePaths: boolean\n unlink: boolean\n cwd: string\n strip: number\n processUmask: number\n umask: number\n dmode: number\n fmode: number\n chmod: boolean\n\n constructor(opt: TarOptions = {}) {\n opt.ondone = () => {\n this[ENDED] = true\n this[MAYBECLOSE]()\n }\n\n super(opt)\n\n this.transform = opt.transform\n\n this.chmod = !!opt.chmod\n\n if (typeof opt.uid === 'number' || typeof opt.gid === 'number') {\n // need both or neither\n if (typeof opt.uid !== 'number' || typeof opt.gid !== 'number') {\n throw new TypeError('cannot set owner without number uid and gid')\n }\n if (opt.preserveOwner) {\n throw new TypeError(\n 'cannot preserve owner in archive and also set owner explicitly',\n )\n }\n this.uid = opt.uid\n this.gid = opt.gid\n this.setOwner = true\n } else {\n this.uid = undefined\n this.gid = undefined\n this.setOwner = false\n }\n\n // default true for root\n this.preserveOwner =\n opt.preserveOwner === undefined && typeof opt.uid !== 'number' ?\n !!(process.getuid && process.getuid() === 0)\n : !!opt.preserveOwner\n\n this.processUid =\n (this.preserveOwner || this.setOwner) && process.getuid ?\n process.getuid()\n : undefined\n this.processGid =\n (this.preserveOwner || this.setOwner) && process.getgid ?\n process.getgid()\n : undefined\n\n // prevent excessively deep nesting of subfolders\n // set to `Infinity` to remove this restriction\n this.maxDepth =\n typeof opt.maxDepth === 'number' ? opt.maxDepth : DEFAULT_MAX_DEPTH\n\n // mostly just for testing, but useful in some cases.\n // Forcibly trigger a chown on every entry, no matter what\n this.forceChown = opt.forceChown === true\n\n // turn ><?| in filenames into 0xf000-higher encoded forms\n this.win32 = !!opt.win32 || isWindows\n\n // do not unpack over files that are newer than what's in the archive\n this.newer = !!opt.newer\n\n // do not unpack over ANY files\n this.keep = !!opt.keep\n\n // do not set mtime/atime of extracted entries\n this.noMtime = !!opt.noMtime\n\n // allow .., absolute path entries, and unpacking through symlinks\n // without this, warn and skip .., relativize absolutes, and error\n // on symlinks in extraction path\n this.preservePaths = !!opt.preservePaths\n\n // unlink files and links before writing. This breaks existing hard\n // links, and removes symlink directories rather than erroring\n this.unlink = !!opt.unlink\n\n this.cwd = normalizeWindowsPath(path.resolve(opt.cwd || process.cwd()))\n this.strip = Number(opt.strip) || 0\n // if we're not chmodding, then we don't need the process umask\n this.processUmask =\n !this.chmod ? 0\n : typeof opt.processUmask === 'number' ? opt.processUmask\n : umask()\n this.umask =\n typeof opt.umask === 'number' ? opt.umask : this.processUmask\n\n // default mode for dirs created as parents\n this.dmode = opt.dmode || 0o0777 & ~this.umask\n this.fmode = opt.fmode || 0o0666 & ~this.umask\n\n this.on('entry', entry => this[ONENTRY](entry))\n }\n\n // a bad or damaged archive is a warning for Parser, but an error\n // when extracting. Mark those errors as unrecoverable, because\n // the Unpack contract cannot be met.\n warn(code: string, msg: string | Error, data: WarnData = {}) {\n if (code === 'TAR_BAD_ARCHIVE' || code === 'TAR_ABORT') {\n data.recoverable = false\n }\n return super.warn(code, msg, data)\n }\n\n [MAYBECLOSE]() {\n if (this[ENDED] && this[PENDING] === 0) {\n this.emit('prefinish')\n this.emit('finish')\n this.emit('end')\n }\n }\n\n // return false if we need to skip this file\n // return true if the field was successfully sanitized\n [STRIPABSOLUTEPATH](\n entry: ReadEntry,\n field: 'path' | 'linkpath',\n ): boolean {\n const p = entry[field]\n const { type } = entry\n if (!p || this.preservePaths) return true\n\n // strip off the root\n const [root, stripped] = stripAbsolutePath(p)\n const parts = stripped.replaceAll(/\\\\/g, '/').split('/')\n\n if (\n parts.includes('..') ||\n /* c8 ignore next */\n (isWindows && /^[a-z]:\\.\\.$/i.test(parts[0] ?? ''))\n ) {\n // For linkpath, check if the resolved path escapes cwd rather than\n // just rejecting any path with '..' - relative symlinks like\n // '../sibling/file' are valid if they resolve within the cwd.\n // For paths, they just simply may not ever use .. at all.\n if (field === 'path' || type === 'Link') {\n this.warn('TAR_ENTRY_ERROR', `${field} contains '..'`, {\n entry,\n [field]: p,\n })\n // not ok!\n return false\n }\n // Resolve linkpath relative to the entry's directory.\n // `path.posix` is safe to use because we're operating on\n // tar paths, not a filesystem.\n const entryDir = path.posix.dirname(entry.path)\n const resolved = path.posix.normalize(\n path.posix.join(entryDir, parts.join('/')),\n )\n // If the resolved path escapes (starts with ..), reject it\n if (resolved.startsWith('../') || resolved === '..') {\n this.warn(\n 'TAR_ENTRY_ERROR',\n `${field} escapes extraction directory`,\n {\n entry,\n [field]: p,\n },\n )\n return false\n }\n }\n\n if (root) {\n // ok, but triggers warning about stripping root\n entry[field] = String(stripped)\n this.warn(\n 'TAR_ENTRY_INFO',\n `stripping ${root} from absolute ${field}`,\n {\n entry,\n [field]: p,\n },\n )\n }\n return true\n }\n\n // no IO, just string checking for absolute indicators\n [CHECKPATH](entry: ReadEntry) {\n const p = normalizeWindowsPath(entry.path)\n const parts = p.split('/')\n\n if (this.strip) {\n if (parts.length < this.strip) {\n return false\n }\n if (entry.type === 'Link') {\n const linkparts = normalizeWindowsPath(\n String(entry.linkpath),\n ).split('/')\n if (linkparts.length >= this.strip) {\n entry.linkpath = linkparts.slice(this.strip).join('/')\n } else {\n return false\n }\n }\n parts.splice(0, this.strip)\n entry.path = parts.join('/')\n }\n\n if (isFinite(this.maxDepth) && parts.length > this.maxDepth) {\n this.warn('TAR_ENTRY_ERROR', 'path excessively deep', {\n entry,\n path: p,\n depth: parts.length,\n maxDepth: this.maxDepth,\n })\n return false\n }\n\n if (\n !this[STRIPABSOLUTEPATH](entry, 'path') ||\n !this[STRIPABSOLUTEPATH](entry, 'linkpath')\n ) {\n return false\n }\n\n entry.absolute =\n path.isAbsolute(entry.path) ?\n normalizeWindowsPath(path.resolve(entry.path))\n : normalizeWindowsPath(path.resolve(this.cwd, entry.path))\n\n // if we somehow ended up with a path that escapes the cwd, and we are\n // not in preservePaths mode, then something is fishy! This should have\n // been prevented above, so ignore this for coverage.\n /* c8 ignore start - defense in depth */\n if (\n !this.preservePaths &&\n typeof entry.absolute === 'string' &&\n entry.absolute.indexOf(this.cwd + '/') !== 0 &&\n entry.absolute !== this.cwd\n ) {\n this.warn('TAR_ENTRY_ERROR', 'path escaped extraction target', {\n entry,\n path: normalizeWindowsPath(entry.path),\n resolvedPath: entry.absolute,\n cwd: this.cwd,\n })\n return false\n }\n /* c8 ignore stop */\n\n // an archive can set properties on the extraction directory, but it\n // may not replace the cwd with a different kind of thing entirely.\n if (\n entry.absolute === this.cwd &&\n entry.type !== 'Directory' &&\n entry.type !== 'GNUDumpDir'\n ) {\n return false\n }\n\n // only encode : chars that aren't drive letter indicators\n if (this.win32) {\n const { root: aRoot } = path.win32.parse(String(entry.absolute))\n entry.absolute =\n aRoot + wc.encode(String(entry.absolute).slice(aRoot.length))\n const { root: pRoot } = path.win32.parse(entry.path)\n entry.path = pRoot + wc.encode(entry.path.slice(pRoot.length))\n }\n\n return true\n }\n\n [ONENTRY](entry: ReadEntry) {\n if (!this[CHECKPATH](entry)) {\n return entry.resume()\n }\n\n assert.equal(typeof entry.absolute, 'string')\n\n switch (entry.type) {\n case 'Directory':\n case 'GNUDumpDir':\n if (entry.mode) {\n entry.mode = entry.mode | 0o700\n }\n\n // eslint-disable-next-line no-fallthrough\n case 'File':\n case 'OldFile':\n case 'ContiguousFile':\n case 'Link':\n case 'SymbolicLink':\n return this[CHECKFS](entry)\n\n case 'CharacterDevice':\n case 'BlockDevice':\n case 'FIFO':\n default:\n return this[UNSUPPORTED](entry)\n }\n }\n\n [ONERROR](er: Error, entry: ReadEntry) {\n // Cwd has to exist, or else nothing works. That's serious.\n // Other errors are warnings, which raise the error in strict\n // mode, but otherwise continue on.\n if (er.name === 'CwdError') {\n this.emit('error', er)\n } else {\n this.warn('TAR_ENTRY_ERROR', er, { entry })\n this[UNPEND]()\n entry.resume()\n }\n }\n\n [MKDIR](\n dir: string,\n mode: number,\n cb: (er?: null | MkdirError, made?: string) => void,\n ) {\n mkdir(\n normalizeWindowsPath(dir),\n {\n uid: this.uid,\n gid: this.gid,\n processUid: this.processUid,\n processGid: this.processGid,\n umask: this.processUmask,\n preserve: this.preservePaths,\n unlink: this.unlink,\n cwd: this.cwd,\n mode: mode,\n },\n cb,\n )\n }\n\n [DOCHOWN](entry: ReadEntry) {\n // in preserve owner mode, chown if the entry doesn't match process\n // in set owner mode, chown if setting doesn't match process\n return (\n this.forceChown ||\n (this.preserveOwner &&\n ((typeof entry.uid === 'number' &&\n entry.uid !== this.processUid) ||\n (typeof entry.gid === 'number' &&\n entry.gid !== this.processGid))) ||\n (typeof this.uid === 'number' && this.uid !== this.processUid) ||\n (typeof this.gid === 'number' && this.gid !== this.processGid)\n )\n }\n\n [UID](entry: ReadEntry) {\n return uint32(this.uid, entry.uid, this.processUid)\n }\n\n [GID](entry: ReadEntry) {\n return uint32(this.gid, entry.gid, this.processGid)\n }\n\n [FILE](entry: ReadEntry, fullyDone: () => void) {\n const mode =\n typeof entry.mode === 'number' ? entry.mode & 0o7777 : this.fmode\n const stream = new fsm.WriteStream(String(entry.absolute), {\n // slight lie, but it can be numeric flags\n flags: getWriteFlag(entry.size) as string,\n mode: mode,\n autoClose: false,\n })\n stream.on('error', (er: Error) => {\n if (stream.fd) {\n fs.close(stream.fd, () => {})\n }\n\n // flush all the data out so that we aren't left hanging\n // if the error wasn't actually fatal. otherwise the parse\n // is blocked, and we never proceed.\n stream.write = () => true\n this[ONERROR](er, entry)\n fullyDone()\n })\n\n let actions = 1\n const done = (er?: null | Error) => {\n if (er) {\n /* c8 ignore start - we should always have a fd by now */\n if (stream.fd) {\n fs.close(stream.fd, () => {})\n }\n /* c8 ignore stop */\n\n this[ONERROR](er, entry)\n fullyDone()\n return\n }\n\n if (--actions === 0) {\n if (stream.fd !== undefined) {\n fs.close(stream.fd, er => {\n if (er) {\n this[ONERROR](er, entry)\n } else {\n this[UNPEND]()\n }\n fullyDone()\n })\n }\n }\n }\n\n stream.on('finish', () => {\n // if futimes fails, try utimes\n // if utimes fails, fail with the original error\n // same for fchown/chown\n const abs = String(entry.absolute)\n const fd = stream.fd\n\n if (typeof fd === 'number' && entry.mtime && !this.noMtime) {\n actions++\n const atime = entry.atime || new Date()\n const mtime = entry.mtime\n fs.futimes(fd, atime, mtime, er =>\n er ?\n fs.utimes(abs, atime, mtime, er2 => done(er2 && er))\n : done(),\n )\n }\n\n if (typeof fd === 'number' && this[DOCHOWN](entry)) {\n actions++\n const uid = this[UID](entry)\n const gid = this[GID](entry)\n if (typeof uid === 'number' && typeof gid === 'number') {\n fs.fchown(fd, uid, gid, er =>\n er ? fs.chown(abs, uid, gid, er2 => done(er2 && er)) : done(),\n )\n }\n }\n\n done()\n })\n\n const tx = this.transform ? this.transform(entry) || entry : entry\n if (tx !== entry) {\n tx.on('error', er => {\n this[ONERROR](er as Error, entry)\n fullyDone()\n })\n entry.pipe(tx)\n }\n tx.pipe(stream)\n }\n\n [DIRECTORY](entry: ReadEntry, fullyDone: () => void) {\n const mode =\n typeof entry.mode === 'number' ? entry.mode & 0o7777 : this.dmode\n this[MKDIR](String(entry.absolute), mode, er => {\n if (er) {\n this[ONERROR](er, entry)\n fullyDone()\n return\n }\n\n let actions = 1\n const done = () => {\n if (--actions === 0) {\n fullyDone()\n this[UNPEND]()\n entry.resume()\n }\n }\n\n if (entry.mtime && !this.noMtime) {\n actions++\n fs.utimes(\n String(entry.absolute),\n entry.atime || new Date(),\n entry.mtime,\n done,\n )\n }\n\n if (this[DOCHOWN](entry)) {\n actions++\n fs.chown(\n String(entry.absolute),\n Number(this[UID](entry)),\n Number(this[GID](entry)),\n done,\n )\n }\n\n done()\n })\n }\n\n [UNSUPPORTED](entry: ReadEntry) {\n entry.unsupported = true\n this.warn(\n 'TAR_ENTRY_UNSUPPORTED',\n `unsupported entry type: ${entry.type}`,\n { entry },\n )\n entry.resume()\n }\n\n [SYMLINK](entry: ReadEntry, done: () => void) {\n const parts = normalizeWindowsPath(\n path.relative(\n this.cwd,\n path.resolve(\n path.dirname(String(entry.absolute)),\n String(entry.linkpath),\n ),\n ),\n ).split('/')\n this[ENSURE_NO_SYMLINK](\n entry,\n this.cwd,\n parts,\n () => this[LINK](entry, String(entry.linkpath), 'symlink', done),\n er => {\n this[ONERROR](er, entry)\n done()\n },\n )\n }\n\n [HARDLINK](entry: ReadEntry, done: () => void) {\n const linkpath = normalizeWindowsPath(\n path.resolve(this.cwd, String(entry.linkpath)),\n )\n const parts = normalizeWindowsPath(String(entry.linkpath)).split('/')\n this[ENSURE_NO_SYMLINK](\n entry,\n this.cwd,\n parts,\n () => this[LINK](entry, linkpath, 'link', done),\n er => {\n this[ONERROR](er, entry)\n done()\n },\n )\n }\n\n [ENSURE_NO_SYMLINK](\n entry: ReadEntry,\n cwd: string,\n parts: string[],\n done: () => void,\n onError: (er: SymlinkError) => void,\n ) {\n const p = parts.shift()\n if (this.preservePaths || p === undefined) return done()\n const t = path.resolve(cwd, p)\n fs.lstat(t, (er, st) => {\n if (er) return done()\n if (st?.isSymbolicLink()) {\n return onError(\n new SymlinkError(t, path.resolve(t, parts.join('/'))),\n )\n }\n this[ENSURE_NO_SYMLINK](entry, t, parts, done, onError)\n })\n }\n\n [PEND]() {\n this[PENDING]++\n }\n\n [UNPEND]() {\n this[PENDING]--\n this[MAYBECLOSE]()\n }\n\n [SKIP](entry: ReadEntry) {\n this[UNPEND]()\n entry.resume()\n }\n\n // Check if we can reuse an existing filesystem entry safely and\n // overwrite it, rather than unlinking and recreating\n // Windows doesn't report a useful nlink, so we just never reuse entries\n [ISREUSABLE](entry: ReadEntry, st: Stats) {\n return (\n entry.type === 'File' &&\n !this.unlink &&\n st.isFile() &&\n st.nlink <= 1 &&\n !isWindows\n )\n }\n\n // check if a thing is there, and if so, try to clobber it\n [CHECKFS](entry: ReadEntry) {\n this[PEND]()\n const paths = [entry.path]\n if (entry.linkpath) {\n paths.push(entry.linkpath)\n }\n this.reservations.reserve(paths, done => this[CHECKFS2](entry, done))\n }\n\n [CHECKFS2](entry: ReadEntry, fullyDone: (er?: Error) => void) {\n const done = (er?: Error) => {\n fullyDone(er)\n }\n\n const checkCwd = () => {\n this[MKDIR](this.cwd, this.dmode, er => {\n if (er) {\n this[ONERROR](er, entry)\n done()\n return\n }\n this[CHECKED_CWD] = true\n start()\n })\n }\n\n const start = () => {\n if (entry.absolute !== this.cwd) {\n const parent = normalizeWindowsPath(\n path.dirname(String(entry.absolute)),\n )\n if (parent !== this.cwd) {\n return this[MKDIR](parent, this.dmode, er => {\n if (er) {\n this[ONERROR](er, entry)\n done()\n return\n }\n afterMakeParent()\n })\n }\n }\n afterMakeParent()\n }\n\n const afterMakeParent = () => {\n fs.lstat(String(entry.absolute), (lstatEr, st) => {\n if (\n st &&\n (this.keep ||\n /* c8 ignore next */\n (this.newer && st.mtime > (entry.mtime ?? st.mtime)))\n ) {\n this[SKIP](entry)\n done()\n return\n }\n if (lstatEr || this[ISREUSABLE](entry, st)) {\n return this[MAKEFS](null, entry, done)\n }\n\n if (st.isDirectory()) {\n if (entry.type === 'Directory') {\n const needChmod =\n this.chmod && entry.mode && (st.mode & 0o7777) !== entry.mode\n const afterChmod = (er?: Error | null | undefined) =>\n this[MAKEFS](er ?? null, entry, done)\n if (!needChmod) {\n return afterChmod()\n }\n return fs.chmod(\n String(entry.absolute),\n Number(entry.mode),\n afterChmod,\n )\n }\n // Not a dir entry, have to remove it.\n // NB: the only way to end up with an entry that is the cwd\n // itself, in such a way that == does not detect, is a\n // tricky windows absolute path with UNC or 8.3 parts (and\n // preservePaths:true, or else it will have been stripped).\n // In that case, the user has opted out of path protections\n // explicitly, so if they blow away the cwd, c'est la vie.\n if (entry.absolute !== this.cwd) {\n return fs.rmdir(String(entry.absolute), (er?: null | Error) =>\n this[MAKEFS](er ?? null, entry, done),\n )\n }\n }\n\n // not a dir, and not reusable\n // don't remove if the cwd, we want that error\n if (entry.absolute === this.cwd) {\n return this[MAKEFS](null, entry, done)\n }\n\n unlinkFile(String(entry.absolute), er =>\n this[MAKEFS](er ?? null, entry, done),\n )\n })\n }\n\n if (this[CHECKED_CWD]) {\n start()\n } else {\n checkCwd()\n }\n }\n\n [MAKEFS](\n er: null | undefined | Error,\n entry: ReadEntry,\n done: () => void,\n ) {\n if (er) {\n this[ONERROR](er, entry)\n done()\n return\n }\n\n switch (entry.type) {\n case 'File':\n case 'OldFile':\n case 'ContiguousFile':\n return this[FILE](entry, done)\n\n case 'Link':\n return this[HARDLINK](entry, done)\n\n case 'SymbolicLink':\n return this[SYMLINK](entry, done)\n\n case 'Directory':\n case 'GNUDumpDir':\n return this[DIRECTORY](entry, done)\n }\n }\n\n [LINK](\n entry: ReadEntry,\n linkpath: string,\n link: 'link' | 'symlink',\n done: () => void,\n ) {\n fs[link](linkpath, String(entry.absolute), er => {\n if (er) {\n this[ONERROR](er, entry)\n } else {\n this[UNPEND]()\n entry.resume()\n }\n done()\n })\n }\n}\n\nconst callSync = <T>(\n fn: () => T,\n): [null, T] | [NodeJS.ErrnoException, null] => {\n try {\n return [null, fn()]\n } catch (er) {\n return [er as NodeJS.ErrnoException, null]\n }\n}\n\nexport class UnpackSync extends Unpack {\n sync: true = true;\n\n [MAKEFS](er: null | Error | undefined, entry: ReadEntry) {\n return super[MAKEFS](er, entry, () => {})\n }\n\n [CHECKFS](entry: ReadEntry) {\n if (!this[CHECKED_CWD]) {\n const er = this[MKDIR](this.cwd, this.dmode)\n if (er) {\n return this[ONERROR](er as Error, entry)\n }\n this[CHECKED_CWD] = true\n }\n\n // don't bother to make the parent if the current entry is the cwd,\n // we've already checked it.\n if (entry.absolute !== this.cwd) {\n const parent = normalizeWindowsPath(\n path.dirname(String(entry.absolute)),\n )\n if (parent !== this.cwd) {\n const mkParent = this[MKDIR](parent, this.dmode)\n if (mkParent) {\n return this[ONERROR](mkParent as Error, entry)\n }\n }\n }\n\n const [lstatEr, st] = callSync(() =>\n fs.lstatSync(String(entry.absolute)),\n )\n if (\n st &&\n (this.keep ||\n /* c8 ignore next */\n (this.newer && st.mtime > (entry.mtime ?? st.mtime)))\n ) {\n return this[SKIP](entry)\n }\n\n if (lstatEr || this[ISREUSABLE](entry, st)) {\n return this[MAKEFS](null, entry)\n }\n\n if (st.isDirectory()) {\n if (entry.type === 'Directory') {\n const needChmod =\n this.chmod && entry.mode && (st.mode & 0o7777) !== entry.mode\n const [er] =\n needChmod ?\n callSync(() => {\n fs.chmodSync(String(entry.absolute), Number(entry.mode))\n })\n : []\n return this[MAKEFS](er, entry)\n }\n // not a dir entry, have to remove it\n const [er] = callSync(() => fs.rmdirSync(String(entry.absolute)))\n this[MAKEFS](er, entry)\n }\n\n // not a dir, and not reusable.\n // don't remove if it's the cwd, since we want that error.\n const [er] =\n entry.absolute === this.cwd ?\n []\n : callSync(() => unlinkFileSync(String(entry.absolute)))\n this[MAKEFS](er, entry)\n }\n\n [FILE](entry: ReadEntry, done: () => void) {\n const mode =\n typeof entry.mode === 'number' ? entry.mode & 0o7777 : this.fmode\n\n const oner = (er?: null | Error | undefined) => {\n let closeError\n try {\n fs.closeSync(fd)\n } catch (e) {\n closeError = e\n }\n if (er || closeError) {\n this[ONERROR]((er as Error) || closeError, entry)\n }\n done()\n }\n\n let fd: number\n try {\n fd = fs.openSync(\n String(entry.absolute),\n getWriteFlag(entry.size),\n mode,\n )\n /* c8 ignore start - This is only a problem if the file was successfully\n * statted, BUT failed to open. Testing this is annoying, and we\n * already have ample testint for other uses of oner() methods.\n */\n } catch (er) {\n return oner(er as Error)\n }\n /* c8 ignore stop */\n const tx = this.transform ? this.transform(entry) || entry : entry\n if (tx !== entry) {\n tx.on('error', er => this[ONERROR](er as Error, entry))\n entry.pipe(tx)\n }\n\n tx.on('data', (chunk: Buffer) => {\n try {\n fs.writeSync(fd, chunk, 0, chunk.length)\n } catch (er) {\n oner(er as Error)\n }\n })\n\n tx.on('end', () => {\n let er = null\n // try both, falling futimes back to utimes\n // if either fails, handle the first error\n if (entry.mtime && !this.noMtime) {\n const atime = entry.atime || new Date()\n const mtime = entry.mtime\n try {\n fs.futimesSync(fd, atime, mtime)\n } catch (futimeser) {\n try {\n fs.utimesSync(String(entry.absolute), atime, mtime)\n } catch {\n er = futimeser\n }\n }\n }\n\n if (this[DOCHOWN](entry)) {\n const uid = this[UID](entry)\n const gid = this[GID](entry)\n\n try {\n fs.fchownSync(fd, Number(uid), Number(gid))\n } catch (fchowner) {\n try {\n fs.chownSync(String(entry.absolute), Number(uid), Number(gid))\n } catch {\n er = er || fchowner\n }\n }\n }\n\n oner(er as Error)\n })\n }\n\n [DIRECTORY](entry: ReadEntry, done: () => void) {\n const mode =\n typeof entry.mode === 'number' ? entry.mode & 0o7777 : this.dmode\n const er = this[MKDIR](String(entry.absolute), mode)\n if (er) {\n this[ONERROR](er as Error, entry)\n done()\n return\n }\n if (entry.mtime && !this.noMtime) {\n try {\n fs.utimesSync(\n String(entry.absolute),\n entry.atime || new Date(),\n entry.mtime,\n )\n /* c8 ignore next */\n } catch {}\n }\n if (this[DOCHOWN](entry)) {\n try {\n fs.chownSync(\n String(entry.absolute),\n Number(this[UID](entry)),\n Number(this[GID](entry)),\n )\n } catch {}\n }\n done()\n entry.resume()\n }\n\n [MKDIR](dir: string, mode: number) {\n try {\n return mkdirSync(normalizeWindowsPath(dir), {\n uid: this.uid,\n gid: this.gid,\n processUid: this.processUid,\n processGid: this.processGid,\n umask: this.processUmask,\n preserve: this.preservePaths,\n unlink: this.unlink,\n cwd: this.cwd,\n mode: mode,\n })\n } catch (er) {\n return er\n }\n }\n\n [ENSURE_NO_SYMLINK](\n _entry: ReadEntry,\n cwd: string,\n parts: string[],\n done: () => void,\n onError: (er: SymlinkError) => void,\n ) {\n if (this.preservePaths || parts.length === 0) return done()\n let t = cwd\n for (const p of parts) {\n t = path.resolve(t, p)\n const [er, st] = callSync(() => fs.lstatSync(t))\n if (er) return done()\n if (st.isSymbolicLink()) {\n return onError(\n new SymlinkError(t, path.resolve(cwd, parts.join('/'))),\n )\n }\n }\n done()\n }\n\n [LINK](\n entry: ReadEntry,\n linkpath: string,\n link: 'link' | 'symlink',\n done: () => void,\n ) {\n const linkSync: `${typeof link}Sync` = `${link}Sync`\n try {\n fs[linkSync](linkpath, String(entry.absolute))\n done()\n entry.resume()\n } catch (er) {\n return this[ONERROR](er as Error, entry)\n }\n }\n}\n", "// Get the appropriate flag to use for creating files\n// We use fmap on Windows platforms for files less than\n// 512kb. This is a fairly low limit, but avoids making\n// things slower in some cases. Since most of what this\n// library is used for is extracting tarballs of many\n// relatively small files in npm packages and the like,\n// it can be a big boost on Windows platforms.\n\nimport fs from 'fs'\n\nconst platform = process.env.__FAKE_PLATFORM__ || process.platform\nconst isWindows = platform === 'win32'\n\n/* c8 ignore start */\nconst { O_CREAT, O_NOFOLLOW, O_TRUNC, O_WRONLY } = fs.constants\nconst UV_FS_O_FILEMAP =\n Number(process.env.__FAKE_FS_O_FILENAME__) ||\n fs.constants.UV_FS_O_FILEMAP ||\n 0\n/* c8 ignore stop */\n\nconst fMapEnabled = isWindows && !!UV_FS_O_FILEMAP\nconst fMapLimit = 512 * 1024\nconst fMapFlag = UV_FS_O_FILEMAP | O_TRUNC | O_CREAT | O_WRONLY\nconst noFollowFlag =\n !isWindows && typeof O_NOFOLLOW === 'number' ?\n O_NOFOLLOW | O_TRUNC | O_CREAT | O_WRONLY\n : null\nexport const getWriteFlag =\n noFollowFlag !== null ? () => noFollowFlag\n : !fMapEnabled ? () => 'w'\n : (size: number) => (size < fMapLimit ? fMapFlag : 'w')\n", "import fs, { type Dirent } from 'node:fs'\nimport path from 'node:path'\n\nconst lchownSync = (path: string, uid: number, gid: number) => {\n try {\n return fs.lchownSync(path, uid, gid)\n } catch (er) {\n if ((er as NodeJS.ErrnoException)?.code !== 'ENOENT') throw er\n }\n}\n\nconst chown = (\n cpath: string,\n uid: number,\n gid: number,\n cb: (er?: unknown) => any,\n) => {\n fs.lchown(cpath, uid, gid, er => {\n // Skip ENOENT error\n cb(er && (er as NodeJS.ErrnoException)?.code !== 'ENOENT' ? er : null)\n })\n}\n\nconst chownrKid = (\n p: string,\n child: Dirent,\n uid: number,\n gid: number,\n cb: (er?: unknown) => any,\n) => {\n if (child.isDirectory()) {\n chownr(path.resolve(p, child.name), uid, gid, (er: unknown) => {\n if (er) return cb(er)\n const cpath = path.resolve(p, child.name)\n chown(cpath, uid, gid, cb)\n })\n } else {\n const cpath = path.resolve(p, child.name)\n chown(cpath, uid, gid, cb)\n }\n}\n\nexport const chownr = (\n p: string,\n uid: number,\n gid: number,\n cb: (er?: unknown) => any,\n) => {\n fs.readdir(p, { withFileTypes: true }, (er, children) => {\n // any error other than ENOTDIR or ENOTSUP means it's not readable,\n // or doesn't exist. give up.\n if (er) {\n if (er.code === 'ENOENT') return cb()\n else if (er.code !== 'ENOTDIR' && er.code !== 'ENOTSUP')\n return cb(er)\n }\n if (er || !children.length) return chown(p, uid, gid, cb)\n\n let len = children.length\n let errState: null | NodeJS.ErrnoException = null\n const then = (er?: unknown) => {\n /* c8 ignore start */\n if (errState) return\n /* c8 ignore stop */\n if (er) return cb((errState = er as NodeJS.ErrnoException))\n if (--len === 0) return chown(p, uid, gid, cb)\n }\n\n for (const child of children) {\n chownrKid(p, child, uid, gid, then)\n }\n })\n}\n\nconst chownrKidSync = (\n p: string,\n child: Dirent,\n uid: number,\n gid: number,\n) => {\n if (child.isDirectory())\n chownrSync(path.resolve(p, child.name), uid, gid)\n\n lchownSync(path.resolve(p, child.name), uid, gid)\n}\n\nexport const chownrSync = (p: string, uid: number, gid: number) => {\n let children: Dirent[]\n try {\n children = fs.readdirSync(p, { withFileTypes: true })\n } catch (er) {\n const e = er as NodeJS.ErrnoException\n if (e?.code === 'ENOENT') return\n else if (e?.code === 'ENOTDIR' || e?.code === 'ENOTSUP')\n return lchownSync(p, uid, gid)\n else throw e\n }\n\n for (const child of children) {\n chownrKidSync(p, child, uid, gid)\n }\n\n return lchownSync(p, uid, gid)\n}\n", "import { chownr, chownrSync } from 'chownr'\nimport fs from 'node:fs'\nimport fsp from 'node:fs/promises'\nimport path from 'node:path'\nimport { CwdError } from './cwd-error.js'\nimport { normalizeWindowsPath } from './normalize-windows-path.js'\nimport { SymlinkError } from './symlink-error.js'\n\nexport type MkdirOptions = {\n uid?: number\n gid?: number\n processUid?: number\n processGid?: number\n umask?: number\n preserve: boolean\n unlink: boolean\n cwd: string\n mode: number\n}\n\nexport type MkdirError = NodeJS.ErrnoException | CwdError | SymlinkError\n\nconst checkCwd = (\n dir: string,\n cb: (er?: null | MkdirError) => unknown,\n) => {\n fs.stat(dir, (er, st) => {\n if (er || !st.isDirectory()) {\n er = new CwdError(\n dir,\n (er as NodeJS.ErrnoException)?.code || 'ENOTDIR',\n )\n }\n cb(er)\n })\n}\n\n/**\n * Wrapper around fs/promises.mkdir for tar's needs.\n *\n * The main purpose is to avoid creating directories if we know that\n * they already exist (and track which ones exist for this purpose),\n * and prevent entries from being extracted into symlinked folders,\n * if `preservePaths` is not set.\n */\nexport const mkdir = (\n dir: string,\n opt: MkdirOptions,\n cb: (er?: null | MkdirError, made?: string) => void,\n) => {\n dir = normalizeWindowsPath(dir)\n\n // if there's any overlap between mask and mode,\n // then we'll need an explicit chmod\n /* c8 ignore next */\n const umask = opt.umask ?? 0o22\n const mode = opt.mode | 0o0700\n const needChmod = (mode & umask) !== 0\n\n const uid = opt.uid\n const gid = opt.gid\n const doChown =\n typeof uid === 'number' &&\n typeof gid === 'number' &&\n (uid !== opt.processUid || gid !== opt.processGid)\n\n const preserve = opt.preserve\n const unlink = opt.unlink\n const cwd = normalizeWindowsPath(opt.cwd)\n\n const done = (er?: null | MkdirError, created?: string) => {\n if (er) {\n cb(er)\n } else {\n if (created && doChown) {\n chownr(created, uid, gid, er => done(er as NodeJS.ErrnoException))\n } else if (needChmod) {\n fs.chmod(dir, mode, cb)\n } else {\n cb()\n }\n }\n }\n\n if (dir === cwd) {\n return checkCwd(dir, done)\n }\n\n if (preserve) {\n return fsp.mkdir(dir, { mode, recursive: true }).then(\n made => done(null, made ?? undefined), // oh, ts\n done,\n )\n }\n\n const sub = normalizeWindowsPath(path.relative(cwd, dir))\n const parts = sub.split('/')\n mkdir_(cwd, parts, mode, unlink, cwd, undefined, done)\n}\n\nconst mkdir_ = (\n base: string,\n parts: string[],\n mode: number,\n unlink: boolean,\n cwd: string,\n created: string | undefined,\n cb: (er?: null | MkdirError, made?: string) => void,\n): void => {\n if (parts.length === 0) {\n return cb(null, created)\n }\n const p = parts.shift()\n const part = normalizeWindowsPath(path.resolve(base + '/' + p))\n fs.mkdir(\n part,\n mode,\n onmkdir(part, parts, mode, unlink, cwd, created, cb),\n )\n}\n\nconst onmkdir =\n (\n part: string,\n parts: string[],\n mode: number,\n unlink: boolean,\n cwd: string,\n created: string | undefined,\n cb: (er?: null | MkdirError, made?: string) => void,\n ) =>\n (er?: null | NodeJS.ErrnoException) => {\n if (er) {\n fs.lstat(part, (statEr, st) => {\n if (statEr) {\n statEr.path = statEr.path && normalizeWindowsPath(statEr.path)\n cb(statEr)\n } else if (st.isDirectory()) {\n mkdir_(part, parts, mode, unlink, cwd, created, cb)\n } else if (unlink) {\n fs.unlink(part, er => {\n if (er) {\n return cb(er)\n }\n fs.mkdir(\n part,\n mode,\n onmkdir(part, parts, mode, unlink, cwd, created, cb),\n )\n })\n } else if (st.isSymbolicLink()) {\n return cb(new SymlinkError(part, part + '/' + parts.join('/')))\n } else {\n cb(er)\n }\n })\n } else {\n created = created || part\n mkdir_(part, parts, mode, unlink, cwd, created, cb)\n }\n }\n\nconst checkCwdSync = (dir: string) => {\n let ok = false\n let code\n try {\n ok = fs.statSync(dir).isDirectory()\n } catch (er) {\n code = (er as NodeJS.ErrnoException)?.code\n } finally {\n if (!ok) {\n throw new CwdError(dir, code ?? 'ENOTDIR')\n }\n }\n}\n\nexport const mkdirSync = (dir: string, opt: MkdirOptions) => {\n dir = normalizeWindowsPath(dir)\n // if there's any overlap between mask and mode,\n // then we'll need an explicit chmod\n /* c8 ignore next */\n const umask = opt.umask ?? 0o22\n const mode = opt.mode | 0o700\n const needChmod = (mode & umask) !== 0\n\n const uid = opt.uid\n const gid = opt.gid\n const doChown =\n typeof uid === 'number' &&\n typeof gid === 'number' &&\n (uid !== opt.processUid || gid !== opt.processGid)\n\n const preserve = opt.preserve\n const unlink = opt.unlink\n const cwd = normalizeWindowsPath(opt.cwd)\n\n const done = (created?: string | undefined) => {\n if (created && doChown) {\n chownrSync(created, uid, gid)\n }\n if (needChmod) {\n fs.chmodSync(dir, mode)\n }\n }\n\n if (dir === cwd) {\n checkCwdSync(cwd)\n return done()\n }\n\n if (preserve) {\n return done(fs.mkdirSync(dir, { mode, recursive: true }) ?? undefined)\n }\n\n const sub = normalizeWindowsPath(path.relative(cwd, dir))\n const parts = sub.split('/')\n let created\n for (\n let p = parts.shift(), part = cwd;\n p && (part += '/' + p);\n p = parts.shift()\n ) {\n part = normalizeWindowsPath(path.resolve(part))\n\n try {\n fs.mkdirSync(part, mode)\n created = created || part\n } catch {\n const st = fs.lstatSync(part)\n if (st.isDirectory()) {\n continue\n } else if (unlink) {\n fs.unlinkSync(part)\n fs.mkdirSync(part, mode)\n created = created || part\n continue\n } else if (st.isSymbolicLink()) {\n return new SymlinkError(part, part + '/' + parts.join('/'))\n }\n }\n }\n\n return done(created)\n}\n", "export class CwdError extends Error {\n path: string\n code: string\n syscall = 'chdir' as const\n\n constructor(path: string, code: string) {\n super(`${code}: Cannot cd into '${path}'`)\n this.path = path\n this.code = code\n }\n\n get name() {\n return 'CwdError'\n }\n}\n", "export class SymlinkError extends Error {\n path: string\n symlink: string\n syscall = 'symlink' as const\n code = 'TAR_SYMLINK_ERROR' as const\n constructor(symlink: string, path: string) {\n super('TAR_SYMLINK_ERROR: Cannot extract through symbolic link')\n this.symlink = symlink\n this.path = path\n }\n get name() {\n return 'SymlinkError'\n }\n}\n", "// A path exclusive reservation system\n// reserve([list, of, paths], fn)\n// When the fn is first in line for all its paths, it\n// is called with a cb that clears the reservation.\n//\n// Used by async unpack to avoid clobbering paths in use,\n// while still allowing maximal safe parallelization.\n\nimport { join } from 'node:path'\nimport { normalizeUnicode } from './normalize-unicode.js'\nimport { stripTrailingSlashes } from './strip-trailing-slashes.js'\n\nconst platform = process.env.TESTING_TAR_FAKE_PLATFORM || process.platform\nconst isWindows = platform === 'win32'\n\nexport type Reservation = {\n paths: string[]\n dirs: Set<string>\n}\n\nexport type Handler = (clear: () => void) => void\n\n// return a set of parent dirs for a given path\n// '/a/b/c/d' -> ['/', '/a', '/a/b', '/a/b/c', '/a/b/c/d']\nconst getDirs = (path: string) => {\n const dirs = path\n .split('/')\n .slice(0, -1)\n .reduce((set: string[], path) => {\n const s = set.at(-1)\n if (s !== undefined) {\n path = join(s, path)\n }\n set.push(path || '/')\n return set\n }, [])\n return dirs\n}\n\nexport class PathReservations {\n // path => [function or Set]\n // A Set object means a directory reservation\n // A fn is a direct reservation on that path\n #queues = new Map<string, (Handler | Set<Handler>)[]>()\n\n // fn => {paths:[path,...], dirs:[path, ...]}\n #reservations = new Map<Handler, Reservation>()\n\n // functions currently running\n #running = new Set<Handler>()\n\n reserve(paths: string[], fn: Handler) {\n paths =\n isWindows ?\n ['win32 parallelization disabled']\n : paths.map(p => {\n // don't need normPath, because we skip this entirely for windows\n return stripTrailingSlashes(join(normalizeUnicode(p)))\n })\n\n const dirs = new Set<string>(\n paths.map(path => getDirs(path)).reduce((a, b) => a.concat(b)),\n )\n this.#reservations.set(fn, { dirs, paths })\n for (const p of paths) {\n const q = this.#queues.get(p)\n if (!q) {\n this.#queues.set(p, [fn])\n } else {\n q.push(fn)\n }\n }\n for (const dir of dirs) {\n const q = this.#queues.get(dir)\n if (!q) {\n this.#queues.set(dir, [new Set([fn])])\n } else {\n const l = q.at(-1)\n if (l instanceof Set) {\n l.add(fn)\n } else {\n q.push(new Set([fn]))\n }\n }\n }\n return this.#run(fn)\n }\n\n // return the queues for each path the function cares about\n // fn => {paths, dirs}\n #getQueues(fn: Handler): {\n paths: Handler[][]\n dirs: (Handler | Set<Handler>)[][]\n } {\n const res = this.#reservations.get(fn)\n /* c8 ignore start */\n if (!res) {\n throw new Error('function does not have any path reservations')\n }\n /* c8 ignore stop */\n return {\n paths: res.paths.map((path: string) =>\n this.#queues.get(path),\n ) as Handler[][],\n dirs: [...res.dirs].map(path => this.#queues.get(path)) as (\n | Handler\n | Set<Handler>\n )[][],\n }\n }\n\n // check if fn is first in line for all its paths, and is\n // included in the first set for all its dir queues\n check(fn: Handler) {\n const { paths, dirs } = this.#getQueues(fn)\n return (\n paths.every(q => q && q[0] === fn) &&\n dirs.every(q => q && q[0] instanceof Set && q[0].has(fn))\n )\n }\n\n // run the function if it's first in line and not already running\n #run(fn: Handler) {\n if (this.#running.has(fn) || !this.check(fn)) {\n return false\n }\n this.#running.add(fn)\n fn(() => this.#clear(fn))\n return true\n }\n\n #clear(fn: Handler) {\n if (!this.#running.has(fn)) {\n return false\n }\n const res = this.#reservations.get(fn)\n /* c8 ignore start */\n if (!res) {\n throw new Error('invalid reservation')\n }\n /* c8 ignore stop */\n const { paths, dirs } = res\n\n const next = new Set<Handler>()\n for (const path of paths) {\n const q = this.#queues.get(path)\n /* c8 ignore start */\n if (!q || q?.[0] !== fn) {\n continue\n }\n /* c8 ignore stop */\n const q0 = q[1]\n if (!q0) {\n this.#queues.delete(path)\n continue\n }\n q.shift()\n if (typeof q0 === 'function') {\n next.add(q0)\n } else {\n for (const f of q0) {\n next.add(f)\n }\n }\n }\n\n for (const dir of dirs) {\n const q = this.#queues.get(dir)\n const q0 = q?.[0]\n /* c8 ignore next - type safety only */\n if (!q || !(q0 instanceof Set)) continue\n if (q0.size === 1 && q.length === 1) {\n this.#queues.delete(dir)\n continue\n } else if (q0.size === 1) {\n q.shift()\n // next one must be a function,\n // or else the Set would've been reused\n const n = q[0]\n if (typeof n === 'function') {\n next.add(n)\n }\n } else {\n q0.delete(fn)\n }\n }\n\n this.#running.delete(fn)\n next.forEach(fn => this.#run(fn))\n return true\n }\n}\n", "// warning: extremely hot code path.\n// This has been meticulously optimized for use\n// within npm install on large package trees.\n// Do not edit without careful benchmarking.\nconst normalizeCache: Record<string, string> = Object.create(null)\n\n// Limit the size of this. Very low-sophistication LRU cache\nconst MAX = 10000\nconst cache = new Set<string>()\nexport const normalizeUnicode = (s: string): string => {\n if (!cache.has(s)) {\n // shake out identical accents and ligatures\n normalizeCache[s] = s\n .normalize('NFD')\n .toLocaleLowerCase('en')\n .toLocaleUpperCase('en')\n } else {\n cache.delete(s)\n }\n cache.add(s)\n\n const ret = normalizeCache[s] as string\n\n let i = cache.size - MAX\n // only prune when we're 10% over the max\n if (i > MAX / 10) {\n for (const s of cache) {\n cache.delete(s)\n delete normalizeCache[s]\n if (--i <= 0) break\n }\n }\n\n return ret\n}\n", "// separate file so I stop getting nagged in vim about deprecated API.\nexport const umask = () => process.umask()\n", "// tar -r\nimport { WriteStream, WriteStreamSync } from '@isaacs/fs-minipass'\nimport type { Minipass } from 'minipass'\nimport fs from 'node:fs'\nimport path from 'node:path'\nimport { Header } from './header.js'\nimport { list } from './list.js'\nimport { makeCommand } from './make-command.js'\nimport type { TarOptionsFile, TarOptionsSyncFile } from './options.js'\nimport { isFile } from './options.js'\nimport { Pack, PackSync } from './pack.js'\n\n// starting at the head of the file, read a Header\n// If the checksum is invalid, that's our position to start writing\n// If it is, jump forward by the specified size (round up to 512)\n// and try again.\n// Write the new Pack stream starting there.\n\nconst replaceSync = (opt: TarOptionsSyncFile, files: string[]) => {\n const p = new PackSync(opt)\n\n let threw = true\n let fd\n let position\n\n try {\n try {\n fd = fs.openSync(opt.file, 'r+')\n } catch (er) {\n if ((er as NodeJS.ErrnoException)?.code === 'ENOENT') {\n fd = fs.openSync(opt.file, 'w+')\n } else {\n throw er\n }\n }\n\n const st = fs.fstatSync(fd)\n const headBuf = Buffer.alloc(512)\n\n POSITION: for (position = 0; position < st.size; position += 512) {\n for (let bufPos = 0, bytes = 0; bufPos < 512; bufPos += bytes) {\n bytes = fs.readSync(\n fd,\n headBuf,\n bufPos,\n headBuf.length - bufPos,\n position + bufPos,\n )\n\n if (position === 0 && headBuf[0] === 0x1f && headBuf[1] === 0x8b) {\n throw new Error('cannot append to compressed archives')\n }\n\n if (!bytes) {\n break POSITION\n }\n }\n\n const h = new Header(headBuf)\n if (!h.cksumValid) {\n break\n }\n const entryBlockSize = 512 * Math.ceil((h.size || 0) / 512)\n if (position + entryBlockSize + 512 > st.size) {\n break\n }\n // the 512 for the header we just parsed will be added as well\n // also jump ahead all the blocks for the body\n position += entryBlockSize\n if (opt.mtimeCache && h.mtime) {\n opt.mtimeCache.set(String(h.path), h.mtime)\n }\n }\n threw = false\n\n streamSync(opt, p, position, fd, files)\n } finally {\n if (threw) {\n try {\n fs.closeSync(fd as number)\n } catch {}\n }\n }\n}\n\nconst streamSync = (\n opt: TarOptionsSyncFile,\n p: Pack,\n position: number,\n fd: number,\n files: string[],\n) => {\n const stream = new WriteStreamSync(opt.file, {\n fd: fd,\n start: position,\n })\n p.pipe(stream as unknown as Minipass.Writable)\n addFilesSync(p, files)\n}\n\nconst replaceAsync = (\n opt: TarOptionsFile,\n files: string[],\n): Promise<void> => {\n files = Array.from(files)\n const p = new Pack(opt)\n\n const getPos = (\n fd: number,\n size: number,\n cb_: (er?: null | Error, pos?: number) => void,\n ) => {\n const cb = (er?: Error | null, pos?: number) => {\n if (er) {\n fs.close(fd, _ => cb_(er))\n } else {\n cb_(null, pos)\n }\n }\n\n let position = 0\n if (size === 0) {\n return cb(null, 0)\n }\n\n let bufPos = 0\n const headBuf = Buffer.alloc(512)\n const onread = (er?: null | Error, bytes?: number): void => {\n if (er || bytes === undefined) {\n return cb(er)\n }\n bufPos += bytes\n if (bufPos < 512 && bytes) {\n return fs.read(\n fd,\n headBuf,\n bufPos,\n headBuf.length - bufPos,\n position + bufPos,\n onread,\n )\n }\n\n if (position === 0 && headBuf[0] === 0x1f && headBuf[1] === 0x8b) {\n return cb(new Error('cannot append to compressed archives'))\n }\n\n // truncated header\n if (bufPos < 512) {\n return cb(null, position)\n }\n\n const h = new Header(headBuf)\n if (!h.cksumValid) {\n return cb(null, position)\n }\n\n /* c8 ignore next */\n const entryBlockSize = 512 * Math.ceil((h.size ?? 0) / 512)\n if (position + entryBlockSize + 512 > size) {\n return cb(null, position)\n }\n\n position += entryBlockSize + 512\n if (position >= size) {\n return cb(null, position)\n }\n\n if (opt.mtimeCache && h.mtime) {\n opt.mtimeCache.set(String(h.path), h.mtime)\n }\n bufPos = 0\n fs.read(fd, headBuf, 0, 512, position, onread)\n }\n fs.read(fd, headBuf, 0, 512, position, onread)\n }\n\n const promise = new Promise<void>((resolve, reject) => {\n p.on('error', reject)\n let flag = 'r+'\n const onopen = (er?: NodeJS.ErrnoException | null, fd?: number) => {\n if (er && er.code === 'ENOENT' && flag === 'r+') {\n flag = 'w+'\n return fs.open(opt.file, flag, onopen)\n }\n\n if (er || !fd) {\n return reject(er)\n }\n\n fs.fstat(fd, (er, st) => {\n if (er) {\n return fs.close(fd, () => reject(er))\n }\n\n getPos(fd, st.size, (er, position) => {\n if (er) {\n return reject(er)\n }\n const stream = new WriteStream(opt.file, {\n fd: fd,\n start: position,\n })\n p.pipe(stream as unknown as Minipass.Writable)\n stream.on('error', reject)\n stream.on('close', resolve)\n addFilesAsync(p, files)\n })\n })\n }\n fs.open(opt.file, flag, onopen)\n })\n\n return promise\n}\n\nconst addFilesSync = (p: Pack, files: string[]) => {\n files.forEach(file => {\n if (file.charAt(0) === '@') {\n list({\n file: path.resolve(p.cwd, file.slice(1)),\n sync: true,\n noResume: true,\n onReadEntry: entry => p.add(entry),\n })\n } else {\n p.add(file)\n }\n })\n p.end()\n}\n\nconst addFilesAsync = async (p: Pack, files: string[]): Promise<void> => {\n for (const file of files) {\n if (file.charAt(0) === '@') {\n await list({\n file: path.resolve(String(p.cwd), file.slice(1)),\n noResume: true,\n onReadEntry: entry => p.add(entry),\n })\n } else {\n p.add(file)\n }\n }\n p.end()\n}\n\nexport const replace = makeCommand(\n replaceSync,\n replaceAsync,\n /* c8 ignore start */\n (): never => {\n throw new TypeError('file is required')\n },\n (): never => {\n throw new TypeError('file is required')\n },\n /* c8 ignore stop */\n (opt, entries) => {\n if (!isFile(opt)) {\n throw new TypeError('file is required')\n }\n\n if (\n opt.gzip ||\n opt.brotli ||\n opt.zstd ||\n opt.file.endsWith('.br') ||\n opt.file.endsWith('.tbr')\n ) {\n throw new TypeError('cannot append to compressed archives')\n }\n\n if (!entries?.length) {\n throw new TypeError('no paths specified to add/replace')\n }\n },\n)\n", "// tar -u\n\nimport { makeCommand } from './make-command.js'\nimport { type TarOptionsWithAliases } from './options.js'\n\nimport { replace as r } from './replace.js'\n\n// just call tar.r with the filter and mtimeCache\nexport const update = makeCommand(\n r.syncFile,\n r.asyncFile,\n r.syncNoFile,\n r.asyncNoFile,\n (opt, entries = []) => {\n r.validate?.(opt, entries)\n mtimeFilter(opt)\n },\n)\n\nconst mtimeFilter = (opt: TarOptionsWithAliases) => {\n const filter = opt.filter\n\n if (!opt.mtimeCache) {\n opt.mtimeCache = new Map()\n }\n\n opt.filter =\n filter ?\n (path, stat) =>\n filter(path, stat) &&\n !(\n /* c8 ignore start */\n (\n (opt.mtimeCache?.get(path) ?? stat.mtime ?? 0) >\n (stat.mtime ?? 0)\n )\n /* c8 ignore stop */\n )\n : (path, stat) =>\n !(\n /* c8 ignore start */\n (\n (opt.mtimeCache?.get(path) ?? stat.mtime ?? 0) >\n (stat.mtime ?? 0)\n )\n /* c8 ignore stop */\n )\n}\n"],
5
- "mappings": "6FAAA,OAAOA,OAAQ,SACf,OAAOC,MAAQ,KCMf,OAAS,gBAAAC,OAAoB,cAC7B,OAAOC,OAAY,cACnB,OAAS,iBAAAC,OAAqB,sBAT9B,IAAMC,GACJ,OAAO,SAAY,UAAY,QAC3B,QACA,CACE,OAAQ,KACR,OAAQ,MAiBHC,GACX,GAEA,CAAC,CAAC,GACF,OAAO,GAAM,WACZ,aAAaC,GACZ,aAAaJ,IACbK,GAAW,CAAC,GACZC,GAAW,CAAC,GAKHD,GAAc,GACzB,CAAC,CAAC,GACF,OAAO,GAAM,UACb,aAAaN,IACb,OAAQ,EAAwB,MAAS,YAExC,EAAwB,OAASC,GAAO,SAAS,UAAU,KAKjDM,GAAc,GACzB,CAAC,CAAC,GACF,OAAO,GAAM,UACb,aAAaP,IACb,OAAQ,EAAwB,OAAU,YAC1C,OAAQ,EAAwB,KAAQ,WAEpCQ,EAAM,OAAO,KAAK,EAClBC,EAAiB,OAAO,cAAc,EACtCC,GAAc,OAAO,YAAY,EACjCC,GAAe,OAAO,aAAa,EACnCC,GAAgB,OAAO,cAAc,EACrCC,GAAS,OAAO,QAAQ,EACxBC,GAAO,OAAO,MAAM,EACpBC,GAAQ,OAAO,OAAO,EACtBC,GAAa,OAAO,YAAY,EAChCC,EAAW,OAAO,UAAU,EAC5BC,GAAU,OAAO,SAAS,EAC1BC,EAAU,OAAO,SAAS,EAC1BC,GAAS,OAAO,QAAQ,EACxBC,GAAS,OAAO,QAAQ,EACxBC,EAAS,OAAO,QAAQ,EACxBC,EAAQ,OAAO,OAAO,EACtBC,EAAe,OAAO,cAAc,EACpCC,GAAa,OAAO,YAAY,EAChCC,GAAc,OAAO,aAAa,EAClCC,EAAa,OAAO,YAAY,EAEhCC,EAAY,OAAO,WAAW,EAE9BC,GAAQ,OAAO,OAAO,EACtBC,GAAW,OAAO,UAAU,EAC5BC,GAAU,OAAO,SAAS,EAC1BC,GAAW,OAAO,UAAU,EAC5BC,EAAQ,OAAO,OAAO,EACtBC,GAAQ,OAAO,OAAO,EACtBC,GAAU,OAAO,SAAS,EAC1BC,GAAS,OAAO,QAAQ,EACxBC,GAAgB,OAAO,eAAe,EACtCC,EAAY,OAAO,WAAW,EAE9BC,GAASC,GAA6B,QAAQ,QAAO,EAAG,KAAKA,CAAE,EAC/DC,GAAWD,GAA6BA,EAAE,EAM1CE,GAAYC,GAChBA,IAAO,OAASA,IAAO,UAAYA,IAAO,YAEtCC,GAAqBC,GACzBA,aAAa,aACZ,CAAC,CAACA,GACD,OAAOA,GAAM,UACbA,EAAE,aACFA,EAAE,YAAY,OAAS,eACvBA,EAAE,YAAc,EAEdC,GAAqBD,GACzB,CAAC,OAAO,SAASA,CAAC,GAAK,YAAY,OAAOA,CAAC,EAqBvCE,GAAN,KAAU,CACR,IACA,KACA,KACA,QACA,YACEC,EACAC,EACAC,EACA,CACA,KAAK,IAAMF,EACX,KAAK,KAAOC,EACZ,KAAK,KAAOC,EACZ,KAAK,QAAU,IAAMF,EAAI3B,EAAM,EAAC,EAChC,KAAK,KAAK,GAAG,QAAS,KAAK,OAAO,CAAC,CAErC,QAAS,CACP,KAAK,KAAK,eAAe,QAAS,KAAK,OAAO,CAAC,CAIjD,YAAY8B,EAAU,CAAC,CAEvB,KAAM,CACJ,KAAK,OAAM,EACP,KAAK,KAAK,KAAK,KAAK,KAAK,IAAG,CAAE,GAUhCC,GAAN,cAAiCL,EAAO,CACtC,QAAS,CACP,KAAK,IAAI,eAAe,QAAS,KAAK,WAAW,EACjD,MAAM,OAAM,CAAE,CAEhB,YACEC,EACAC,EACAC,EACA,CACA,MAAMF,EAAKC,EAAMC,CAAI,EACrB,KAAK,YAAeG,GAAc,KAAK,KAAK,KAAK,QAASA,CAAE,EAC5DL,EAAI,GAAG,QAAS,KAAK,WAAW,CAAC,GA+I/BM,GACJC,GACoC,CAAC,CAACA,EAAE,WAEpCC,GACJD,GAEA,CAACA,EAAE,YAAc,CAAC,CAACA,EAAE,UAAYA,EAAE,WAAa,SAarClD,EAAP,cAOIL,EAAY,CAGpB,CAACmB,CAAO,EAAa,GACrB,CAACC,EAAM,EAAa,GACpB,CAACG,CAAK,EAAmB,CAAA,EACzB,CAACD,CAAM,EAAa,CAAA,EACpB,CAACK,CAAU,EACX,CAACV,CAAQ,EACT,CAACgB,CAAK,EACN,CAACf,EAAO,EACR,CAACV,CAAG,EAAa,GACjB,CAACE,EAAW,EAAa,GACzB,CAACC,EAAY,EAAa,GAC1B,CAACE,EAAM,EAAa,GACpB,CAACD,EAAa,EAAa,KAC3B,CAACY,CAAY,EAAY,EACzB,CAACI,CAAS,EAAa,GACvB,CAACQ,EAAM,EACP,CAACD,EAAO,EAAa,GACrB,CAACE,EAAa,EAAY,EAC1B,CAACC,CAAS,EAAa,GAKvB,SAAoB,GAIpB,SAAoB,GAQpB,eACKmB,EAKH,CACA,IAAMC,EAAoCD,EAAK,CAAC,GAC9C,CAAA,EAEF,GADA,MAAK,EACDC,EAAQ,YAAc,OAAOA,EAAQ,UAAa,SACpD,MAAM,IAAI,UACR,kDAAkD,EAGlDJ,GAAoBI,CAAO,GAC7B,KAAK/B,CAAU,EAAI,GACnB,KAAKV,CAAQ,EAAI,MACRuC,GAAkBE,CAAO,GAClC,KAAKzC,CAAQ,EAAIyC,EAAQ,SACzB,KAAK/B,CAAU,EAAI,KAEnB,KAAKA,CAAU,EAAI,GACnB,KAAKV,CAAQ,EAAI,MAEnB,KAAKgB,CAAK,EAAI,CAAC,CAACyB,EAAQ,MACxB,KAAKxC,EAAO,EAAI,KAAKD,CAAQ,EACxB,IAAIf,GAAc,KAAKe,CAAQ,CAAC,EACjC,KAGAyC,GAAWA,EAAQ,oBAAsB,IAC3C,OAAO,eAAe,KAAM,SAAU,CAAE,IAAK,IAAM,KAAKpC,CAAM,CAAC,CAAE,EAG/DoC,GAAWA,EAAQ,mBAAqB,IAC1C,OAAO,eAAe,KAAM,QAAS,CAAE,IAAK,IAAM,KAAKnC,CAAK,CAAC,CAAE,EAGjE,GAAM,CAAE,OAAAoC,CAAM,EAAKD,EACfC,IACF,KAAKvB,EAAM,EAAIuB,EACXA,EAAO,QACT,KAAKzB,EAAK,EAAC,EAEXyB,EAAO,iBAAiB,QAAS,IAAM,KAAKzB,EAAK,EAAC,CAAE,EAEvD,CAYH,IAAI,cAAe,CACjB,OAAO,KAAKV,CAAY,CAAC,CAM3B,IAAI,UAAW,CACb,OAAO,KAAKP,CAAQ,CAAC,CAMvB,IAAI,SAAS2C,EAAM,CACjB,MAAM,IAAI,MAAM,4CAA4C,CAAC,CAM/D,YAAYA,EAAyB,CACnC,MAAM,IAAI,MAAM,4CAA4C,CAAC,CAM/D,IAAI,YAAa,CACf,OAAO,KAAKjC,CAAU,CAAC,CAMzB,IAAI,WAAWkC,EAAK,CAClB,MAAM,IAAI,MAAM,8CAA8C,CAAC,CAMjE,IAAK,OAAoB,CACvB,OAAO,KAAK5B,CAAK,CAAC,CASpB,IAAK,MAAS6B,EAAY,CACxB,KAAK7B,CAAK,EAAI,KAAKA,CAAK,GAAK,CAAC,CAAC6B,CAAC,CAIlC,CAAC5B,EAAK,GAAI,CACR,KAAKC,EAAO,EAAI,GAChB,KAAK,KAAK,QAAS,KAAKC,EAAM,GAAG,MAAM,EACvC,KAAK,QAAQ,KAAKA,EAAM,GAAG,MAAM,CAAC,CAMpC,IAAI,SAAU,CACZ,OAAO,KAAKD,EAAO,CAAC,CAMtB,IAAI,QAAQ4B,EAAG,CAAC,CA0BhB,MACEC,EACAC,EACAC,EACS,CACT,GAAI,KAAK/B,EAAO,EAAG,MAAO,GAC1B,GAAI,KAAK3B,CAAG,EAAG,MAAM,IAAI,MAAM,iBAAiB,EAEhD,GAAI,KAAKoB,CAAS,EAChB,YAAK,KACH,QACA,OAAO,OACL,IAAI,MAAM,gDAAgD,EAC1D,CAAE,KAAM,sBAAsB,CAAE,CACjC,EAEI,GAGL,OAAOqC,GAAa,aACtBC,EAAKD,EACLA,EAAW,QAGRA,IAAUA,EAAW,QAE1B,IAAMzB,EAAK,KAAKP,CAAK,EAAIM,GAAQE,GAMjC,GAAI,CAAC,KAAKd,CAAU,GAAK,CAAC,OAAO,SAASqC,CAAK,GAC7C,GAAIlB,GAAkBkB,CAAK,EAEzBA,EAAQ,OAAO,KACbA,EAAM,OACNA,EAAM,WACNA,EAAM,UAAU,UAETpB,GAAkBoB,CAAK,EAEhCA,EAAQ,OAAO,KAAKA,CAAK,UAChB,OAAOA,GAAU,SAC1B,MAAM,IAAI,MACR,sDAAsD,EAO5D,OAAI,KAAKrC,CAAU,GAGb,KAAKR,CAAO,GAAK,KAAKK,CAAY,IAAM,GAAG,KAAKT,EAAK,EAAE,EAAI,EAG3D,KAAKI,CAAO,EAAG,KAAK,KAAK,OAAQ6C,CAAyB,EACzD,KAAKvC,EAAU,EAAEuC,CAAyB,EAE3C,KAAKxC,CAAY,IAAM,GAAG,KAAK,KAAK,UAAU,EAE9C0C,GAAI1B,EAAG0B,CAAE,EAEN,KAAK/C,CAAO,GAKf6C,EAAkC,QAStC,OAAOA,GAAU,UAEjB,EAAEC,IAAa,KAAKhD,CAAQ,GAAK,CAAC,KAAKC,EAAO,GAAG,YAGjD8C,EAAQ,OAAO,KAAKA,EAAOC,CAAQ,GAGjC,OAAO,SAASD,CAAK,GAAK,KAAK/C,CAAQ,IAEzC+C,EAAQ,KAAK9C,EAAO,EAAE,MAAM8C,CAAK,GAI/B,KAAK7C,CAAO,GAAK,KAAKK,CAAY,IAAM,GAAG,KAAKT,EAAK,EAAE,EAAI,EAE3D,KAAKI,CAAO,EAAG,KAAK,KAAK,OAAQ6C,CAAyB,EACzD,KAAKvC,EAAU,EAAEuC,CAAyB,EAE3C,KAAKxC,CAAY,IAAM,GAAG,KAAK,KAAK,UAAU,EAE9C0C,GAAI1B,EAAG0B,CAAE,EAEN,KAAK/C,CAAO,IA/Bb,KAAKK,CAAY,IAAM,GAAG,KAAK,KAAK,UAAU,EAC9C0C,GAAI1B,EAAG0B,CAAE,EACN,KAAK/C,CAAO,EA6BD,CAgBtB,KAAKgD,EAAiC,CACpC,GAAI,KAAKvC,CAAS,EAAG,OAAO,KAG5B,GAFA,KAAKU,CAAS,EAAI,GAGhB,KAAKd,CAAY,IAAM,GACvB2C,IAAM,GACLA,GAAKA,EAAI,KAAK3C,CAAY,EAE3B,YAAKf,CAAc,EAAC,EACb,KAGL,KAAKkB,CAAU,IAAGwC,EAAI,MAEtB,KAAK7C,CAAM,EAAE,OAAS,GAAK,CAAC,KAAKK,CAAU,IAG7C,KAAKL,CAAM,EAAI,CACZ,KAAKL,CAAQ,EACV,KAAKK,CAAM,EAAE,KAAK,EAAE,EACpB,OAAO,OACL,KAAKA,CAAM,EACX,KAAKE,CAAY,CAAC,IAK5B,IAAM4C,EAAM,KAAKtD,EAAI,EAAEqD,GAAK,KAAM,KAAK7C,CAAM,EAAE,CAAC,CAAU,EAC1D,YAAKb,CAAc,EAAC,EACb2D,CAAG,CAGZ,CAACtD,EAAI,EAAEqD,EAAkBH,EAAc,CACrC,GAAI,KAAKrC,CAAU,EAAG,KAAKD,EAAW,EAAC,MAClC,CACH,IAAM2C,EAAIL,EACNG,IAAME,EAAE,QAAUF,IAAM,KAAM,KAAKzC,EAAW,EAAC,EAC1C,OAAO2C,GAAM,UACpB,KAAK/C,CAAM,EAAE,CAAC,EAAI+C,EAAE,MAAMF,CAAC,EAC3BH,EAAQK,EAAE,MAAM,EAAGF,CAAC,EACpB,KAAK3C,CAAY,GAAK2C,IAEtB,KAAK7C,CAAM,EAAE,CAAC,EAAI+C,EAAE,SAASF,CAAC,EAC9BH,EAAQK,EAAE,SAAS,EAAGF,CAAC,EACvB,KAAK3C,CAAY,GAAK2C,EAE1B,CAEA,YAAK,KAAK,OAAQH,CAAK,EAEnB,CAAC,KAAK1C,CAAM,EAAE,QAAU,CAAC,KAAKd,CAAG,GAAG,KAAK,KAAK,OAAO,EAElDwD,CAAK,CAWd,IACEA,EACAC,EACAC,EACM,CACN,OAAI,OAAOF,GAAU,aACnBE,EAAKF,EACLA,EAAQ,QAEN,OAAOC,GAAa,aACtBC,EAAKD,EACLA,EAAW,QAETD,IAAU,QAAW,KAAK,MAAMA,EAAOC,CAAQ,EAC/CC,GAAI,KAAK,KAAK,MAAOA,CAAE,EAC3B,KAAK1D,CAAG,EAAI,GACZ,KAAK,SAAW,IAMZ,KAAKW,CAAO,GAAK,CAAC,KAAKC,EAAM,IAAG,KAAKX,CAAc,EAAC,EACjD,IAAI,CAIb,CAACY,EAAM,GAAI,CACL,KAAKO,CAAS,IAEd,CAAC,KAAKS,EAAa,GAAK,CAAC,KAAKd,CAAK,EAAE,SACvC,KAAKe,CAAS,EAAI,IAEpB,KAAKlB,EAAM,EAAI,GACf,KAAKD,CAAO,EAAI,GAChB,KAAK,KAAK,QAAQ,EACd,KAAKG,CAAM,EAAE,OAAQ,KAAKP,EAAK,EAAC,EAC3B,KAAKP,CAAG,EAAG,KAAKC,CAAc,EAAC,EACnC,KAAK,KAAK,OAAO,EAAC,CAYzB,QAAS,CACP,OAAO,KAAKY,EAAM,EAAC,CAAE,CAMvB,OAAQ,CACN,KAAKF,CAAO,EAAI,GAChB,KAAKC,EAAM,EAAI,GACf,KAAKkB,CAAS,EAAI,EAAK,CAMzB,IAAI,WAAY,CACd,OAAO,KAAKV,CAAS,CAAC,CAOxB,IAAI,SAAU,CACZ,OAAO,KAAKT,CAAO,CAAC,CAMtB,IAAI,QAAS,CACX,OAAO,KAAKC,EAAM,CAAC,CAGrB,CAACK,EAAU,EAAEuC,EAAc,CACrB,KAAKrC,CAAU,EAAG,KAAKH,CAAY,GAAK,EACvC,KAAKA,CAAY,GAAMwC,EAAkC,OAC9D,KAAK1C,CAAM,EAAE,KAAK0C,CAAK,CAAC,CAG1B,CAACtC,EAAW,GAAW,CACrB,OAAI,KAAKC,CAAU,EAAG,KAAKH,CAAY,GAAK,EAE1C,KAAKA,CAAY,GACf,KAAKF,CAAM,EAAE,CAAC,EACd,OACG,KAAKA,CAAM,EAAE,MAAK,CAAW,CAGtC,CAACP,EAAK,EAAEuD,EAAmB,GAAO,CAChC,EAAG,OACD,KAAKtD,EAAU,EAAE,KAAKU,EAAW,EAAC,CAAE,GACpC,KAAKJ,CAAM,EAAE,QAGX,CAACgD,GAAW,CAAC,KAAKhD,CAAM,EAAE,QAAU,CAAC,KAAKd,CAAG,GAAG,KAAK,KAAK,OAAO,CAAC,CAGxE,CAACQ,EAAU,EAAEgD,EAAc,CACzB,YAAK,KAAK,OAAQA,CAAK,EAChB,KAAK7C,CAAO,CAAC,CAQtB,KAAkC8B,EAASC,EAAuB,CAChE,GAAI,KAAKtB,CAAS,EAAG,OAAOqB,EAC5B,KAAKX,CAAS,EAAI,GAElB,IAAMiC,EAAQ,KAAK7D,EAAW,EAC9B,OAAAwC,EAAOA,GAAQ,CAAA,EACXD,IAAS9C,GAAK,QAAU8C,IAAS9C,GAAK,OAAQ+C,EAAK,IAAM,GACxDA,EAAK,IAAMA,EAAK,MAAQ,GAC7BA,EAAK,YAAc,CAAC,CAACA,EAAK,YAGtBqB,EACErB,EAAK,KAAKD,EAAK,IAAG,GAItB,KAAK1B,CAAK,EAAE,KACT2B,EAAK,YAEF,IAAIE,GAAuB,KAAyBH,EAAMC,CAAI,EAD9D,IAAIH,GAAY,KAAyBE,EAAMC,CAAI,CACY,EAEjE,KAAKjB,CAAK,EAAGM,GAAM,IAAM,KAAKlB,EAAM,EAAC,CAAE,EACtC,KAAKA,EAAM,EAAC,GAGZ4B,CAAI,CAWb,OAAoCA,EAAS,CAC3C,IAAMuB,EAAI,KAAKjD,CAAK,EAAE,KAAKiD,GAAKA,EAAE,OAASvB,CAAI,EAC3CuB,IACE,KAAKjD,CAAK,EAAE,SAAW,GACrB,KAAKJ,CAAO,GAAK,KAAKkB,EAAa,IAAM,IAC3C,KAAKlB,CAAO,EAAI,IAElB,KAAKI,CAAK,EAAI,CAAA,GACT,KAAKA,CAAK,EAAE,OAAO,KAAKA,CAAK,EAAE,QAAQiD,CAAC,EAAG,CAAC,EACnDA,EAAE,OAAM,EACT,CAMH,YACE7B,EACA8B,EACM,CACN,OAAO,KAAK,GAAG9B,EAAI8B,CAAO,CAAC,CAoB7B,GACE9B,EACA8B,EACM,CACN,IAAML,EAAM,MAAM,GAChBzB,EACA8B,CAA+B,EAEjC,GAAI9B,IAAO,OACT,KAAKL,CAAS,EAAI,GAClB,KAAKD,EAAa,IACd,CAAC,KAAKd,CAAK,EAAE,QAAU,CAAC,KAAKJ,CAAO,GACtC,KAAKE,EAAM,EAAC,UAELsB,IAAO,YAAc,KAAKnB,CAAY,IAAM,EACrD,MAAM,KAAK,UAAU,UACZkB,GAASC,CAAE,GAAK,KAAKjC,EAAW,EACzC,MAAM,KAAKiC,CAAE,EACb,KAAK,mBAAmBA,CAAE,UACjBA,IAAO,SAAW,KAAK/B,EAAa,EAAG,CAChD,IAAM8D,EAAID,EACN,KAAKxC,CAAK,EAAGM,GAAM,IAAMmC,EAAE,KAAK,KAAM,KAAK9D,EAAa,CAAC,CAAC,EACzD8D,EAAE,KAAK,KAAM,KAAK9D,EAAa,CAAC,CACvC,CACA,OAAOwD,CAAG,CAMZ,eACEzB,EACA8B,EACA,CACA,OAAO,KAAK,IAAI9B,EAAI8B,CAAO,CAAC,CAW9B,IACE9B,EACA8B,EACA,CACA,IAAML,EAAM,MAAM,IAChBzB,EACA8B,CAA+B,EAKjC,OAAI9B,IAAO,SACT,KAAKN,EAAa,EAAI,KAAK,UAAU,MAAM,EAAE,OAE3C,KAAKA,EAAa,IAAM,GACxB,CAAC,KAAKC,CAAS,GACf,CAAC,KAAKf,CAAK,EAAE,SAEb,KAAKJ,CAAO,EAAI,KAGbiD,CAAG,CAWZ,mBAA+CzB,EAAY,CACzD,IAAMyB,EAAM,MAAM,mBAAmBzB,CAAiC,EACtE,OAAIA,IAAO,QAAUA,IAAO,UAC1B,KAAKN,EAAa,EAAI,EAClB,CAAC,KAAKC,CAAS,GAAK,CAAC,KAAKf,CAAK,EAAE,SACnC,KAAKJ,CAAO,EAAI,KAGbiD,CAAG,CAMZ,IAAI,YAAa,CACf,OAAO,KAAK1D,EAAW,CAAC,CAG1B,CAACD,CAAc,GAAI,CAEf,CAAC,KAAKE,EAAY,GAClB,CAAC,KAAKD,EAAW,GACjB,CAAC,KAAKkB,CAAS,GACf,KAAKN,CAAM,EAAE,SAAW,GACxB,KAAKd,CAAG,IAER,KAAKG,EAAY,EAAI,GACrB,KAAK,KAAK,KAAK,EACf,KAAK,KAAK,WAAW,EACrB,KAAK,KAAK,QAAQ,EACd,KAAKE,EAAM,GAAG,KAAK,KAAK,OAAO,EACnC,KAAKF,EAAY,EAAI,GACtB,CA2BH,KACEgC,KACGc,EACM,CACT,IAAMkB,EAAOlB,EAAK,CAAC,EAEnB,GACEd,IAAO,SACPA,IAAO,SACPA,IAAOf,GACP,KAAKA,CAAS,EAEd,MAAO,GACF,GAAIe,IAAO,OAChB,MAAO,CAAC,KAAKhB,CAAU,GAAK,CAACgD,EACzB,GACA,KAAK1C,CAAK,GACTM,GAAM,IAAM,KAAKT,EAAQ,EAAE6C,CAAa,CAAC,EAAG,IAC7C,KAAK7C,EAAQ,EAAE6C,CAAa,EAC3B,GAAIhC,IAAO,MAChB,OAAO,KAAKZ,EAAO,EAAC,EACf,GAAIY,IAAO,QAAS,CAGzB,GAFA,KAAK9B,EAAM,EAAI,GAEX,CAAC,KAAKH,EAAW,GAAK,CAAC,KAAKkB,CAAS,EAAG,MAAO,GACnD,IAAMwC,EAAM,MAAM,KAAK,OAAO,EAC9B,YAAK,mBAAmB,OAAO,EACxBA,CACT,SAAWzB,IAAO,QAAS,CACzB,KAAK/B,EAAa,EAAI+D,EACtB,MAAM,KAAK9C,GAAO8C,CAAI,EACtB,IAAMP,EACJ,CAAC,KAAKhC,EAAM,GAAK,KAAK,UAAU,OAAO,EAAE,OACrC,MAAM,KAAK,QAASuC,CAAI,EACxB,GACN,YAAKlE,CAAc,EAAC,EACb2D,CACT,SAAWzB,IAAO,SAAU,CAC1B,IAAMyB,EAAM,MAAM,KAAK,QAAQ,EAC/B,YAAK3D,CAAc,EAAC,EACb2D,CACT,SAAWzB,IAAO,UAAYA,IAAO,YAAa,CAChD,IAAMyB,EAAM,MAAM,KAAKzB,CAAE,EACzB,YAAK,mBAAmBA,CAAE,EACnByB,CACT,CAGA,IAAMA,EAAM,MAAM,KAAKzB,EAAc,GAAGc,CAAI,EAC5C,YAAKhD,CAAc,EAAC,EACb2D,CAAG,CAGZ,CAACtC,EAAQ,EAAE6C,EAAa,CACtB,QAAWH,KAAK,KAAKjD,CAAK,EACpBiD,EAAE,KAAK,MAAMG,CAAa,IAAM,IAAO,KAAK,MAAK,EAEvD,IAAMP,EAAM,KAAK9B,CAAS,EAAI,GAAQ,MAAM,KAAK,OAAQqC,CAAI,EAC7D,YAAKlE,CAAc,EAAC,EACb2D,CAAG,CAGZ,CAACrC,EAAO,GAAI,CACV,OAAI,KAAKrB,EAAW,EAAU,IAE9B,KAAKA,EAAW,EAAI,GACpB,KAAK,SAAW,GACT,KAAKuB,CAAK,GACZM,GAAM,IAAM,KAAKP,EAAQ,EAAC,CAAE,EAAG,IAChC,KAAKA,EAAQ,EAAC,EAAE,CAGtB,CAACA,EAAQ,GAAI,CACX,GAAI,KAAKd,EAAO,EAAG,CACjB,IAAMyD,EAAO,KAAKzD,EAAO,EAAE,IAAG,EAC9B,GAAIyD,EAAM,CACR,QAAWH,KAAK,KAAKjD,CAAK,EACxBiD,EAAE,KAAK,MAAMG,CAAa,EAEvB,KAAKrC,CAAS,GAAG,MAAM,KAAK,OAAQqC,CAAI,CAC/C,CACF,CAEA,QAAWH,KAAK,KAAKjD,CAAK,EACxBiD,EAAE,IAAG,EAEP,IAAMJ,EAAM,MAAM,KAAK,KAAK,EAC5B,YAAK,mBAAmB,KAAK,EACtBA,CAAG,CAOZ,MAAM,SAAqD,CACzD,IAAMQ,EAAwC,OAAO,OAAO,CAAA,EAAI,CAC9D,WAAY,EACb,EACI,KAAKjD,CAAU,IAAGiD,EAAI,WAAa,GAGxC,IAAMJ,EAAI,KAAK,QAAO,EACtB,YAAK,GAAG,OAAQH,GAAK,CACnBO,EAAI,KAAKP,CAAC,EACL,KAAK1C,CAAU,IAClBiD,EAAI,YAAeP,EAA8B,OAAM,CAC1D,EACD,MAAMG,EACCI,CAAG,CASZ,MAAM,QAAyB,CAC7B,GAAI,KAAKjD,CAAU,EACjB,MAAM,IAAI,MAAM,6BAA6B,EAE/C,IAAMiD,EAAM,MAAM,KAAK,QAAO,EAC9B,OACE,KAAK3D,CAAQ,EACT2D,EAAI,KAAK,EAAE,EACX,OAAO,OAAOA,EAAiBA,EAAI,UAAU,CACzC,CAMZ,MAAM,SAAyB,CAC7B,OAAO,IAAI,QAAc,CAACC,EAASC,IAAW,CAC5C,KAAK,GAAGlD,EAAW,IAAMkD,EAAO,IAAI,MAAM,kBAAkB,CAAC,CAAC,EAC9D,KAAK,GAAG,QAASzB,GAAMyB,EAAOzB,CAAE,CAAC,EACjC,KAAK,GAAG,MAAO,IAAMwB,EAAO,CAAE,CAAC,CAChC,CAAC,CAQJ,CAAC,OAAO,aAAa,GAAuC,CAG1D,KAAKvC,CAAS,EAAI,GAClB,IAAIyC,EAAU,GACRC,EAAO,UACX,KAAK,MAAK,EACVD,EAAU,GACH,CAAE,MAAO,OAAW,KAAM,EAAI,GA2CvC,MAAO,CACL,KA1CW,IAA4C,CACvD,GAAIA,EAAS,OAAOC,EAAI,EACxB,IAAMC,EAAM,KAAK,KAAI,EACrB,GAAIA,IAAQ,KAAM,OAAO,QAAQ,QAAQ,CAAE,KAAM,GAAO,MAAOA,CAAG,CAAE,EAEpE,GAAI,KAAKzE,CAAG,EAAG,OAAOwE,EAAI,EAE1B,IAAIH,EACAC,EACEI,EAAS7B,GAAgB,CAC7B,KAAK,IAAI,OAAQ8B,CAAM,EACvB,KAAK,IAAI,MAAOC,CAAK,EACrB,KAAK,IAAIxD,EAAWyD,CAAS,EAC7BL,EAAI,EACJF,EAAOzB,CAAE,CAAC,EAEN8B,EAAUG,GAAiB,CAC/B,KAAK,IAAI,QAASJ,CAAK,EACvB,KAAK,IAAI,MAAOE,CAAK,EACrB,KAAK,IAAIxD,EAAWyD,CAAS,EAC7B,KAAK,MAAK,EACVR,EAAQ,CAAE,MAAAS,EAAO,KAAM,CAAC,CAAC,KAAK9E,CAAG,CAAC,CAAE,CAAC,EAEjC4E,EAAQ,IAAM,CAClB,KAAK,IAAI,QAASF,CAAK,EACvB,KAAK,IAAI,OAAQC,CAAM,EACvB,KAAK,IAAIvD,EAAWyD,CAAS,EAC7BL,EAAI,EACJH,EAAQ,CAAE,KAAM,GAAM,MAAO,MAAS,CAAE,CAAC,EAErCQ,EAAY,IAAMH,EAAM,IAAI,MAAM,kBAAkB,CAAC,EAC3D,OAAO,IAAI,QAA+B,CAACD,EAAKM,IAAQ,CACtDT,EAASS,EACTV,EAAUI,EACV,KAAK,KAAKrD,EAAWyD,CAAS,EAC9B,KAAK,KAAK,QAASH,CAAK,EACxB,KAAK,KAAK,MAAOE,CAAK,EACtB,KAAK,KAAK,OAAQD,CAAM,CAAC,CAC1B,CAAC,EAKF,MAAOH,EACP,OAAQA,EACR,CAAC,OAAO,aAAa,GAAI,CACvB,OAAO,IAAI,EAEb,CAAC,OAAO,YAAY,EAAG,SAAY,CAAC,EACrC,CASH,CAAC,OAAO,QAAQ,GAAkC,CAGhD,KAAK1C,CAAS,EAAI,GAClB,IAAIyC,EAAU,GACRC,EAAO,KACX,KAAK,MAAK,EACV,KAAK,IAAInD,GAAOmD,CAAI,EACpB,KAAK,IAAIpD,EAAWoD,CAAI,EACxB,KAAK,IAAI,MAAOA,CAAI,EACpBD,EAAU,GACH,CAAE,KAAM,GAAM,MAAO,MAAS,GAGjCS,EAAO,IAAmC,CAC9C,GAAIT,EAAS,OAAOC,EAAI,EACxB,IAAMM,EAAQ,KAAK,KAAI,EACvB,OAAOA,IAAU,KAAON,EAAI,EAAK,CAAE,KAAM,GAAO,MAAAM,CAAK,CAAE,EAGzD,YAAK,KAAK,MAAON,CAAI,EACrB,KAAK,KAAKnD,GAAOmD,CAAI,EACrB,KAAK,KAAKpD,EAAWoD,CAAI,EAElB,CACL,KAAAQ,EACA,MAAOR,EACP,OAAQA,EACR,CAAC,OAAO,QAAQ,GAAI,CAClB,OAAO,IAAI,EAEb,CAAC,OAAO,OAAO,EAAG,IAAM,CAAC,EAC1B,CAeH,QAAQ3B,EAAc,CACpB,GAAI,KAAKzB,CAAS,EAChB,OAAIyB,EAAI,KAAK,KAAK,QAASA,CAAE,EACxB,KAAK,KAAKzB,CAAS,EACjB,KAGT,KAAKA,CAAS,EAAI,GAClB,KAAKU,CAAS,EAAI,GAGlB,KAAKhB,CAAM,EAAE,OAAS,EACtB,KAAKE,CAAY,EAAI,EAErB,IAAMiE,EAAK,KAGX,OAAI,OAAOA,EAAG,OAAU,YAAc,CAAC,KAAK5E,EAAM,GAAG4E,EAAG,MAAK,EAEzDpC,EAAI,KAAK,KAAK,QAASA,CAAE,EAExB,KAAK,KAAKzB,CAAS,EAEjB,IAAI,CAUb,WAAW,UAAW,CACpB,OAAOxB,EAAQ,GDh0CnB,IAAMsF,GAASC,EAAG,OAEZC,GAAa,OAAO,YAAY,EAChCC,EAAS,OAAO,QAAQ,EACxBC,GAAS,OAAO,QAAQ,EACxBC,EAAM,OAAO,KAAK,EAClBC,GAAY,OAAO,WAAW,EAC9BC,EAAS,OAAO,QAAQ,EACxBC,GAAS,OAAO,QAAQ,EACxBC,GAAe,OAAO,cAAc,EACpCC,GAAW,OAAO,UAAU,EAC5BC,GAAQ,OAAO,OAAO,EACtBC,GAAa,OAAO,YAAY,EAChCC,GAAW,OAAO,UAAU,EAC5BC,GAAU,OAAO,SAAS,EAC1BC,GAAU,OAAO,SAAS,EAC1BC,GAAW,OAAO,UAAU,EAC5BC,GAAQ,OAAO,OAAO,EACtBC,EAAQ,OAAO,OAAO,EACtBC,GAAO,OAAO,MAAM,EACpBC,EAAS,OAAO,QAAQ,EACxBC,GAAQ,OAAO,OAAO,EACtBC,GAAY,OAAO,WAAW,EAC9BC,EAAW,OAAO,UAAU,EAC5BC,GAAU,OAAO,SAAS,EAC1BC,GAAQ,OAAO,OAAO,EACtBC,GAAS,OAAO,QAAQ,EACxBC,GAAW,OAAO,UAAU,EAC5BC,GAAe,OAAO,cAAc,EACpCC,GAAW,OAAO,UAAU,EAcrBC,GAAP,cAA0BC,CAI/B,CACC,CAACF,EAAQ,EAAa,GACtB,CAACxB,CAAG,EACJ,CAACa,CAAK,EACN,CAACI,EAAS,EACV,CAACC,CAAQ,EAAa,GACtB,CAACE,EAAK,EACN,CAACD,EAAO,EACR,CAACtB,EAAU,EAEX,YAAY8B,EAAcC,EAAsB,CAO9C,GANAA,EAAMA,GAAO,CAAA,EACb,MAAMA,CAAG,EAET,KAAK,SAAW,GAChB,KAAK,SAAW,GAEZ,OAAOD,GAAS,SAClB,MAAM,IAAI,UAAU,uBAAuB,EAG7C,KAAKH,EAAQ,EAAI,GACjB,KAAKxB,CAAG,EAAI,OAAO4B,EAAI,IAAO,SAAWA,EAAI,GAAK,OAClD,KAAKf,CAAK,EAAIc,EACd,KAAKV,EAAS,EAAIW,EAAI,UAAY,GAAK,KAAO,KAC9C,KAAKV,CAAQ,EAAI,GACjB,KAAKE,EAAK,EAAI,OAAOQ,EAAI,MAAS,SAAWA,EAAI,KAAO,IACxD,KAAKT,EAAO,EAAI,KAAKC,EAAK,EAC1B,KAAKvB,EAAU,EACb,OAAO+B,EAAI,WAAc,UAAYA,EAAI,UAAY,GAEnD,OAAO,KAAK5B,CAAG,GAAM,SACvB,KAAKgB,EAAK,EAAC,EAEX,KAAKJ,EAAK,EAAC,CAEf,CAEA,IAAI,IAAE,CACJ,OAAO,KAAKZ,CAAG,CACjB,CAEA,IAAI,MAAI,CACN,OAAO,KAAKa,CAAK,CACnB,CAGA,OAAK,CACH,MAAM,IAAI,UAAU,2BAA2B,CACjD,CAGA,KAAG,CACD,MAAM,IAAI,UAAU,2BAA2B,CACjD,CAEA,CAACD,EAAK,GAAC,CACLhB,EAAG,KAAK,KAAKiB,CAAK,EAAG,IAAK,CAACgB,EAAIC,IAAO,KAAKrB,EAAO,EAAEoB,EAAIC,CAAE,CAAC,CAC7D,CAEA,CAACrB,EAAO,EAAEoB,EAAmCC,EAAW,CAClDD,EACF,KAAKrB,EAAQ,EAAEqB,CAAE,GAEjB,KAAK7B,CAAG,EAAI8B,EACZ,KAAK,KAAK,OAAQA,CAAY,EAC9B,KAAKd,EAAK,EAAC,EAEf,CAEA,CAACX,EAAQ,GAAC,CACR,OAAO,OAAO,YAAY,KAAK,IAAI,KAAKY,EAAS,EAAG,KAAKE,EAAO,CAAC,CAAC,CACpE,CAEA,CAACH,EAAK,GAAC,CACL,GAAI,CAAC,KAAKE,CAAQ,EAAG,CACnB,KAAKA,CAAQ,EAAI,GACjB,IAAMa,EAAM,KAAK1B,EAAQ,EAAC,EAE1B,GAAI0B,EAAI,SAAW,EACjB,OAAO,QAAQ,SAAS,IAAM,KAAKrB,EAAO,EAAE,KAAM,EAAGqB,CAAG,CAAC,EAG3DnC,EAAG,KAAK,KAAKI,CAAG,EAAa+B,EAAK,EAAGA,EAAI,OAAQ,KAAM,CAACF,EAAIG,EAAIC,IAC9D,KAAKvB,EAAO,EAAEmB,EAAIG,EAAIC,CAAC,CAAC,CAE5B,CACF,CAEA,CAACvB,EAAO,EAAEmB,EAAmCG,EAAaD,EAAY,CACpE,KAAKb,CAAQ,EAAI,GACbW,EACF,KAAKrB,EAAQ,EAAEqB,CAAE,EACR,KAAKzB,EAAY,EAAE4B,EAAcD,CAAa,GACvD,KAAKf,EAAK,EAAC,CAEf,CAEA,CAAClB,CAAM,GAAC,CACN,GAAI,KAAKD,EAAU,GAAK,OAAO,KAAKG,CAAG,GAAM,SAAU,CACrD,IAAM8B,EAAK,KAAK9B,CAAG,EACnB,KAAKA,CAAG,EAAI,OACZJ,EAAG,MAAMkC,EAAID,GACXA,EAAK,KAAK,KAAK,QAASA,CAAE,EAAI,KAAK,KAAK,OAAO,CAAC,CAEpD,CACF,CAEA,CAACrB,EAAQ,EAAEqB,EAAyB,CAClC,KAAKX,CAAQ,EAAI,GACjB,KAAKpB,CAAM,EAAC,EACZ,KAAK,KAAK,QAAS+B,CAAE,CACvB,CAEA,CAACzB,EAAY,EAAE4B,EAAYD,EAAW,CACpC,IAAIG,EAAM,GAEV,YAAKf,EAAO,GAAKa,EACbA,EAAK,IACPE,EAAM,MAAM,MAAMF,EAAKD,EAAI,OAASA,EAAI,SAAS,EAAGC,CAAE,EAAID,CAAG,IAG3DC,IAAO,GAAK,KAAKb,EAAO,GAAK,KAC/Be,EAAM,GACN,KAAKpC,CAAM,EAAC,EACZ,MAAM,IAAG,GAGJoC,CACT,CAEA,KACEC,KACGC,EAA6B,CAEhC,OAAQD,EAAI,CACV,IAAK,YACL,IAAK,SACH,MAAO,GAET,IAAK,QACH,OAAI,OAAO,KAAKnC,CAAG,GAAM,UACvB,KAAKgB,EAAK,EAAC,EAEN,GAET,IAAK,QACH,OAAI,KAAKQ,EAAQ,EACR,IAET,KAAKA,EAAQ,EAAI,GACV,MAAM,KAAKW,EAAI,GAAGC,CAAI,GAE/B,QACE,OAAO,MAAM,KAAKD,EAAI,GAAGC,CAAI,CACjC,CACF,GAGWC,GAAP,cAA8BZ,EAAU,CAC5C,CAACb,EAAK,GAAC,CACL,IAAI0B,EAAQ,GACZ,GAAI,CACF,KAAK7B,EAAO,EAAE,KAAMb,EAAG,SAAS,KAAKiB,CAAK,EAAG,GAAG,CAAC,EACjDyB,EAAQ,EACV,SACMA,GACF,KAAKxC,CAAM,EAAC,CAEhB,CACF,CAEA,CAACkB,EAAK,GAAC,CACL,IAAIsB,EAAQ,GACZ,GAAI,CACF,GAAI,CAAC,KAAKpB,CAAQ,EAAG,CACnB,KAAKA,CAAQ,EAAI,GACjB,EAAG,CACD,IAAMa,EAAM,KAAK1B,EAAQ,EAAC,EAEpB2B,EACJD,EAAI,SAAW,EACX,EACAnC,EAAG,SAAS,KAAKI,CAAG,EAAa+B,EAAK,EAAGA,EAAI,OAAQ,IAAI,EAE/D,GAAI,CAAC,KAAK3B,EAAY,EAAE4B,EAAID,CAAG,EAC7B,KAEJ,OAAS,IACT,KAAKb,CAAQ,EAAI,EACnB,CACAoB,EAAQ,EACV,SACMA,GACF,KAAKxC,CAAM,EAAC,CAEhB,CACF,CAEA,CAACA,CAAM,GAAC,CACN,GAAI,KAAKD,EAAU,GAAK,OAAO,KAAKG,CAAG,GAAM,SAAU,CACrD,IAAM8B,EAAK,KAAK9B,CAAG,EACnB,KAAKA,CAAG,EAAI,OACZJ,EAAG,UAAUkC,CAAE,EACf,KAAK,KAAK,OAAO,CACnB,CACF,GAYWS,GAAP,cAA2BC,EAAE,CACjC,SAAkB,GAClB,SAAoB,GACpB,CAAChB,EAAQ,EAAa,GACtB,CAACF,EAAQ,EAAa,GACtB,CAACvB,EAAM,EAAa,GACpB,CAACgB,CAAM,EAAc,CAAA,EACrB,CAACR,EAAU,EAAa,GACxB,CAACM,CAAK,EACN,CAACP,EAAK,EACN,CAACT,EAAU,EACX,CAACG,CAAG,EACJ,CAACuB,EAAY,EACb,CAACrB,CAAM,EACP,CAACD,EAAS,EAAa,GACvB,CAACa,EAAI,EAEL,YAAYa,EAAcC,EAAuB,CAC/CA,EAAMA,GAAO,CAAA,EACb,MAAMA,CAAG,EACT,KAAKf,CAAK,EAAIc,EACd,KAAK3B,CAAG,EAAI,OAAO4B,EAAI,IAAO,SAAWA,EAAI,GAAK,OAClD,KAAKtB,EAAK,EAAIsB,EAAI,OAAS,OAAY,IAAQA,EAAI,KACnD,KAAKd,EAAI,EAAI,OAAOc,EAAI,OAAU,SAAWA,EAAI,MAAQ,OACzD,KAAK/B,EAAU,EACb,OAAO+B,EAAI,WAAc,UAAYA,EAAI,UAAY,GAGvD,IAAMa,EAAc,KAAK3B,EAAI,IAAM,OAAY,KAAO,IACtD,KAAKS,EAAY,EAAIK,EAAI,QAAU,OACnC,KAAK1B,CAAM,EAAI0B,EAAI,QAAU,OAAYa,EAAcb,EAAI,MAEvD,KAAK5B,CAAG,IAAM,QAChB,KAAKY,EAAK,EAAC,CAEf,CAEA,KAAKuB,KAAeC,EAAW,CAC7B,GAAID,IAAO,QAAS,CAClB,GAAI,KAAKX,EAAQ,EACf,MAAO,GAET,KAAKA,EAAQ,EAAI,EACnB,CACA,OAAO,MAAM,KAAKW,EAAI,GAAGC,CAAI,CAC/B,CAEA,IAAI,IAAE,CACJ,OAAO,KAAKpC,CAAG,CACjB,CAEA,IAAI,MAAI,CACN,OAAO,KAAKa,CAAK,CACnB,CAEA,CAACL,EAAQ,EAAEqB,EAAyB,CAClC,KAAK/B,CAAM,EAAC,EACZ,KAAKwB,EAAQ,EAAI,GACjB,KAAK,KAAK,QAASO,CAAE,CACvB,CAEA,CAACjB,EAAK,GAAC,CACLhB,EAAG,KAAK,KAAKiB,CAAK,EAAG,KAAKX,CAAM,EAAG,KAAKI,EAAK,EAAG,CAACuB,EAAIC,IACnD,KAAKrB,EAAO,EAAEoB,EAAIC,CAAE,CAAC,CAEzB,CAEA,CAACrB,EAAO,EAAEoB,EAAmCC,EAAW,CAEpD,KAAKP,EAAY,GACjB,KAAKrB,CAAM,IAAM,MACjB2B,GACAA,EAAG,OAAS,UAEZ,KAAK3B,CAAM,EAAI,IACf,KAAKU,EAAK,EAAC,GACFiB,EACT,KAAKrB,EAAQ,EAAEqB,CAAE,GAEjB,KAAK7B,CAAG,EAAI8B,EACZ,KAAK,KAAK,OAAQA,CAAE,EACf,KAAKR,EAAQ,GAChB,KAAKnB,EAAM,EAAC,EAGlB,CAIA,IAAI4B,EAAuBW,EAAoB,CAC7C,OAAIX,GAEF,KAAK,MAAMA,EAAKW,CAAG,EAGrB,KAAK3C,EAAM,EAAI,GAIb,CAAC,KAAKuB,EAAQ,GACd,CAAC,KAAKP,CAAM,EAAE,QACd,OAAO,KAAKf,CAAG,GAAM,UAErB,KAAKW,EAAQ,EAAE,KAAM,CAAC,EAEjB,IACT,CAIA,MAAMoB,EAAsBW,EAAoB,CAK9C,OAJI,OAAOX,GAAQ,WACjBA,EAAM,OAAO,KAAKA,EAAKW,CAAG,GAGxB,KAAK3C,EAAM,GACb,KAAK,KAAK,QAAS,IAAI,MAAM,qBAAqB,CAAC,EAC5C,IAGL,KAAKC,CAAG,IAAM,QAAa,KAAKsB,EAAQ,GAAK,KAAKP,CAAM,EAAE,QAC5D,KAAKA,CAAM,EAAE,KAAKgB,CAAG,EACrB,KAAKxB,EAAU,EAAI,GACZ,KAGT,KAAKe,EAAQ,EAAI,GACjB,KAAKD,EAAM,EAAEU,CAAG,EACT,GACT,CAEA,CAACV,EAAM,EAAEU,EAAW,CAClBnC,EAAG,MACD,KAAKI,CAAG,EACR+B,EACA,EACAA,EAAI,OACJ,KAAKjB,EAAI,EACT,CAACe,EAAIc,IAAO,KAAKhC,EAAQ,EAAEkB,EAAIc,CAAE,CAAC,CAEtC,CAEA,CAAChC,EAAQ,EAAEkB,EAAmCc,EAAW,CACnDd,EACF,KAAKrB,EAAQ,EAAEqB,CAAE,GAEb,KAAKf,EAAI,IAAM,QAAa,OAAO6B,GAAO,WAC5C,KAAK7B,EAAI,GAAK6B,GAEZ,KAAK5B,CAAM,EAAE,OACf,KAAKZ,EAAM,EAAC,GAEZ,KAAKmB,EAAQ,EAAI,GAEb,KAAKvB,EAAM,GAAK,CAAC,KAAKE,EAAS,GACjC,KAAKA,EAAS,EAAI,GAClB,KAAKH,CAAM,EAAC,EACZ,KAAK,KAAK,QAAQ,GACT,KAAKS,EAAU,IACxB,KAAKA,EAAU,EAAI,GACnB,KAAK,KAAK,OAAO,IAIzB,CAEA,CAACJ,EAAM,GAAC,CACN,GAAI,KAAKY,CAAM,EAAE,SAAW,EACtB,KAAKhB,EAAM,GACb,KAAKY,EAAQ,EAAE,KAAM,CAAC,UAEf,KAAKI,CAAM,EAAE,SAAW,EACjC,KAAKM,EAAM,EAAE,KAAKN,CAAM,EAAE,IAAG,CAAY,MACpC,CACL,IAAM6B,EAAQ,KAAK7B,CAAM,EACzB,KAAKA,CAAM,EAAI,CAAA,EACfpB,GAAO,KAAKK,CAAG,EAAa4C,EAAO,KAAK9B,EAAI,EAAa,CAACe,EAAIc,IAC5D,KAAKhC,EAAQ,EAAEkB,EAAIc,CAAE,CAAC,CAE1B,CACF,CAEA,CAAC7C,CAAM,GAAC,CACN,GAAI,KAAKD,EAAU,GAAK,OAAO,KAAKG,CAAG,GAAM,SAAU,CACrD,IAAM8B,EAAK,KAAK9B,CAAG,EACnB,KAAKA,CAAG,EAAI,OACZJ,EAAG,MAAMkC,EAAID,GACXA,EAAK,KAAK,KAAK,QAASA,CAAE,EAAI,KAAK,KAAK,OAAO,CAAC,CAEpD,CACF,GAGWgB,GAAP,cAA+BN,EAAW,CAC9C,CAAC3B,EAAK,GAAC,CACL,IAAIkB,EAGJ,GAAI,KAAKP,EAAY,GAAK,KAAKrB,CAAM,IAAM,KACzC,GAAI,CACF4B,EAAKlC,EAAG,SAAS,KAAKiB,CAAK,EAAG,KAAKX,CAAM,EAAG,KAAKI,EAAK,CAAC,CACzD,OAASuB,EAAI,CACX,GAAKA,GAA8B,OAAS,SAC1C,YAAK3B,CAAM,EAAI,IACR,KAAKU,EAAK,EAAC,EAElB,MAAMiB,CAEV,MAEAC,EAAKlC,EAAG,SAAS,KAAKiB,CAAK,EAAG,KAAKX,CAAM,EAAG,KAAKI,EAAK,CAAC,EAGzD,KAAKG,EAAO,EAAE,KAAMqB,CAAE,CACxB,CAEA,CAAChC,CAAM,GAAC,CACN,GAAI,KAAKD,EAAU,GAAK,OAAO,KAAKG,CAAG,GAAM,SAAU,CACrD,IAAM8B,EAAK,KAAK9B,CAAG,EACnB,KAAKA,CAAG,EAAI,OACZJ,EAAG,UAAUkC,CAAE,EACf,KAAK,KAAK,OAAO,CACnB,CACF,CAEA,CAACT,EAAM,EAAEU,EAAW,CAElB,IAAIO,EAAQ,GACZ,GAAI,CACF,KAAK3B,EAAQ,EACX,KACAf,EAAG,UAAU,KAAKI,CAAG,EAAa+B,EAAK,EAAGA,EAAI,OAAQ,KAAKjB,EAAI,CAAC,CAAC,EAEnEwB,EAAQ,EACV,SACE,GAAIA,EACF,GAAI,CACF,KAAKxC,CAAM,EAAC,CACd,MAAQ,CAER,CAEJ,CACF,GE9fF,OAAOgD,OAAU,YCAjB,OAAOC,OAAQ,UACf,OAAS,WAAAC,GAAS,SAAAC,OAAa,OCK/B,IAAMC,GAAS,IAAI,IAAmD,CACpE,CAAC,IAAK,KAAK,EACX,CAAC,IAAK,MAAM,EACZ,CAAC,IAAK,MAAM,EACZ,CAAC,IAAK,eAAe,EACrB,CAAC,IAAK,QAAQ,EACd,CAAC,mBAAoB,OAAO,EAC5B,CAAC,kBAAmB,OAAO,EAC3B,CAAC,aAAc,OAAO,EACtB,CAAC,YAAa,OAAO,EACrB,CAAC,mBAAoB,OAAO,EAC5B,CAAC,iBAAkB,OAAO,EAC1B,CAAC,IAAK,MAAM,EACZ,CAAC,gBAAiB,MAAM,EACxB,CAAC,eAAgB,MAAM,EACvB,CAAC,IAAK,SAAS,EACf,CAAC,WAAY,SAAS,EACtB,CAAC,IAAK,eAAe,EACrB,CAAC,IAAK,QAAQ,EACd,CAAC,IAAK,QAAQ,EACd,CAAC,UAAW,aAAa,EAC1B,EAqoBYC,GACXC,GACgC,CAAC,CAACA,EAAE,MAAQ,CAAC,CAACA,EAAE,KACrCC,GACXD,GACiC,CAACA,EAAE,MAAQ,CAAC,CAACA,EAAE,KACrCE,GACXF,GACkC,CAAC,CAACA,EAAE,MAAQ,CAACA,EAAE,KACtCG,GACXH,GACmC,CAACA,EAAE,MAAQ,CAACA,EAAE,KAO5C,IAAMI,GACXC,GAC4B,CAAC,CAACA,EAAE,KAKlC,IAAMC,GAAcC,GAAoD,CACtE,IAAMC,EAAIC,GAAO,IAAIF,CAAC,EACtB,OAAIC,GACGD,CACT,EAEaG,GAAU,CAACC,EAA6B,CAAA,IAAkB,CACrE,GAAI,CAACA,EAAK,MAAO,CAAA,EACjB,IAAMC,EAAkC,CAAA,EACxC,OAAW,CAACC,EAAKC,CAAC,IAAK,OAAO,QAAQH,CAAG,EAGpC,CAEH,IAAMJ,EAAID,GAAWO,CAAG,EACxBD,EAAOL,CAAC,EAAIO,CACd,CAEA,OAAIF,EAAO,QAAU,QAAaA,EAAO,UAAY,KACnDA,EAAO,MAAQ,IAEjB,OAAOA,EAAO,QACPA,CACT,EC7jBO,IAAMG,EAAc,CACzBC,EACAC,EAKAC,EACAC,EAIAC,IAEO,OAAO,OACZ,CACEC,EAAyC,CAAA,EACzCC,EACAC,IACE,CACE,MAAM,QAAQF,CAAI,IACpBC,EAAUD,EACVA,EAAO,CAAA,GAGL,OAAOC,GAAY,aACrBC,EAAKD,EACLA,EAAU,QAGZA,EAAWA,EAAe,MAAM,KAAKA,CAAO,EAAvB,CAAA,EAErB,IAAME,EAAMC,GAAQJ,CAAI,EAIxB,GAFAD,IAAWI,EAAKF,CAAO,EAEnBI,GAAWF,CAAG,EAAG,CACnB,GAAI,OAAOD,GAAO,WAChB,MAAM,IAAI,UACR,+CAA+C,EAGnD,OAAOP,EAASQ,EAAKF,CAAO,CAC9B,SAAWK,GAAYH,CAAG,EAAG,CAC3B,IAAMI,EAAIX,EAAUO,EAAKF,CAAO,EAChC,OAAOC,EAAKK,EAAE,KAAK,IAAML,EAAE,EAAIA,CAAE,EAAIK,CACvC,SAAWC,GAAaL,CAAG,EAAG,CAC5B,GAAI,OAAOD,GAAO,WAChB,MAAM,IAAI,UACR,+CAA+C,EAGnD,OAAOL,EAAWM,EAAKF,CAAO,CAChC,SAAWQ,GAAcN,CAAG,EAAG,CAC7B,GAAI,OAAOD,GAAO,WAChB,MAAM,IAAI,UAAU,0CAA0C,EAEhE,OAAOJ,EAAYK,EAAKF,CAAO,CAEjC,CACA,MAAM,IAAI,MAAM,sBAAsB,CAGxC,EACA,CACE,SAAAN,EACA,UAAAC,EACA,WAAAC,EACA,YAAAC,EACA,SAAAC,EACD,ECvML,OAAS,gBAAgBW,OAAU,SCpBnC,OAAOC,OAAY,SACnB,OAAS,UAAAC,OAAc,SAEvB,UAAYC,OAAc,OCC1B,OAAOC,OAAc,OAErB,IAAMC,GAAoBD,GAAS,WAAa,CAAE,YAAa,IAAI,EAGtDE,EAAY,OAAO,OAC9B,OAAO,OACL,OAAO,OAAO,IAAI,EAClB,CACE,WAAY,EACZ,gBAAiB,EACjB,aAAc,EACd,aAAc,EACd,SAAU,EACV,QAAS,EACT,KAAM,EACN,aAAc,EACd,YAAa,EACb,QAAS,GACT,eAAgB,GAChB,aAAc,GACd,YAAa,GACb,YAAa,GACb,gBAAiB,GACjB,iBAAkB,EAClB,aAAc,EACd,mBAAoB,EACpB,sBAAuB,GACvB,WAAY,EACZ,eAAgB,EAChB,MAAO,EACP,QAAS,EACT,mBAAoB,EACpB,QAAS,EACT,QAAS,EACT,KAAM,EACN,OAAQ,EACR,WAAY,EACZ,WAAY,EACZ,MAAO,EACP,cAAe,EACf,cAAe,EACf,iBAAkB,EAClB,iBAAkB,GAClB,qBAAsB,GACtB,YAAa,GACb,YAAa,IACb,gBAAiB,MACjB,eAAgB,EAChB,eAAgB,EAChB,mBAAoB,EACpB,YAAa,GACb,YAAa,EACb,gBAAiB,GACjB,yBAA0B,EAC1B,uBAAwB,EACxB,wBAAyB,EACzB,+BAAgC,EAChC,oBAAqB,EACrB,iBAAkB,EAClB,iBAAkB,EAClB,oBAAqB,EACrB,mBAAoB,EACpB,mBAAoB,GACpB,uBAAwB,GACxB,uBAAwB,GACxB,uBAAwB,GACxB,6BAA8B,GAC9B,sBAAuB,GACvB,4BAA6B,GAC7B,4BAA6B,GAC7B,kBAAmB,EACnB,qBAAsB,EACtB,mBAAoB,EACpB,qBAAsB,EACtB,8CAA+C,EAC/C,uBAAwB,EACxB,0BAA2B,EAC3B,sBAAuB,EACvB,qBAAsB,EACtB,4BAA6B,EAC7B,8BAA+B,EAC/B,uCAAwC,EACxC,wCAAyC,EACzC,sDAAuD,EACvD,kCAAmC,EACnC,wBAAyB,EACzB,uBAAwB,EACxB,gCAAiC,EACjC,iCAAkC,EAClC,6CAA8C,GAC9C,qCAAsC,GACtC,kDAAmD,GACnD,oDAAqD,GACrD,gDAAiD,GACjD,qCAAsC,GACtC,0CAA2C,GAC3C,+CAAgD,GAChD,2CAA4C,GAC5C,2CAA4C,IAC5C,sCAAuC,IACvC,uCAAwC,IACxC,wCAAyC,IACzC,sCAAuC,IACvC,sCAAuC,IACvC,qCAAsC,IACtC,wCAAyC,IACzC,uCAAwC,IACxC,yCAA0C,IAC1C,uCAAwC,IACxC,uCAAwC,IACxC,yCAA0C,IAC1C,yCAA0C,IAC1C,4CAA6C,IAC7C,iCAAkC,KAEpCD,EAAiB,CAClB,EDlHH,IAAME,GAAuBC,GAAO,OAC9BC,GAAO,OAAO,yBAAyBD,GAAQ,QAAQ,EACvDE,GAAQC,GAAmBA,EAC3BC,GACJH,IAAM,WAAa,IAAQA,IAAM,MAAQ,OACpCI,GAAqB,CACpBL,GAAO,OAASK,EAAWH,GAAOH,EACpC,EACCO,GAAc,CAAE,EAEjBC,GAAc,OAAO,aAAa,EAE3BC,GAAP,cAAyB,KAAK,CAClC,KACA,MACA,YAAYC,EAAoCC,EAAiB,CAC/D,MAAM,SAAWD,EAAI,QAAS,CAAE,MAAOA,CAAG,CAAE,EAC5C,KAAK,KAAQA,EAA8B,KAC3C,KAAK,MAASA,EAA8B,MAEvC,KAAK,OAAM,KAAK,KAAO,cAE5B,KAAK,QAAU,SAAWA,EAAI,QAC9B,MAAM,kBAAkB,KAAMC,GAAU,KAAK,WAAW,CAC1D,CAEA,IAAI,MAAI,CACN,MAAO,WACT,GAOIC,GAAa,OAAO,WAAW,EAkCtBC,GAAf,cAAgCC,CAAoC,CAClEC,GAAqB,GACrBC,GAAkB,GAClBC,GACAC,GACAC,GACAC,GACAC,GAEA,IAAI,UAAQ,CACV,OAAO,KAAKN,EACd,CACA,IAAI,QAAM,CACR,OAAO,KAAKK,EACd,CAEA,IAAI,WAAS,CACX,OAAO,KAAKH,EACd,CAGA,YAAYK,EAAuBC,EAAsC,CACvE,GAAI,CAACD,GAAQ,OAAOA,GAAS,SAC3B,MAAM,IAAI,UAAU,0CAA0C,EAYhE,GATA,MAAMA,CAAI,EAGV,KAAKL,GAAaK,EAAK,OAAS,EAChC,KAAKJ,GAAmBI,EAAK,aAAe,EAC5C,KAAKH,GAAiBG,EAAK,eAAiB,EAIxC,OAAOE,GAASD,CAAI,GAAM,WAC5B,MAAM,IAAI,UAAU,qCAAuCA,CAAI,EAIjE,GAAI,CAGF,KAAKH,GAAU,IAAII,GAASD,CAAI,EAAED,CAAI,CACxC,OAASG,EAAI,CAEX,MAAM,IAAIhB,GAAUgB,EAA6B,KAAK,WAAW,CACnE,CAEA,KAAKJ,GAAWX,GAAM,CAEhB,KAAKK,KAET,KAAKA,GAAY,GAIjB,KAAK,MAAK,EACV,KAAK,KAAK,QAASL,CAAG,EACxB,EAEA,KAAKU,IAAS,GAAG,QAASK,GAAM,KAAKJ,GAAS,IAAIZ,GAAUgB,CAAE,CAAC,CAAC,EAChE,KAAK,KAAK,MAAO,IAAM,KAAK,KAAK,CACnC,CAEA,OAAK,CACC,KAAKL,KACP,KAAKA,GAAQ,MAAK,EAClB,KAAKA,GAAU,OACf,KAAK,KAAK,OAAO,EAErB,CAEA,OAAK,CACH,GAAI,CAAC,KAAKL,GACR,OAAAW,GAAO,KAAKN,GAAS,qBAAqB,EAEnC,KAAKA,GAAQ,QAAO,CAE/B,CAEA,MAAMO,EAAkB,CAClB,KAAK,QAEL,OAAOA,GAAc,WAAUA,EAAY,KAAKR,IAEpD,KAAK,MAAM,OAAO,OAAOlB,GAAO,MAAM,CAAC,EAAG,CAAE,CAACW,EAAU,EAAGe,CAAS,CAAE,CAAC,EACxE,CASA,IACEC,EACAC,EACAC,EAAe,CAGf,OAAI,OAAOF,GAAU,aACnBE,EAAKF,EACLC,EAAW,OACXD,EAAQ,QAEN,OAAOC,GAAa,aACtBC,EAAKD,EACLA,EAAW,QAGTD,IACEC,EAAU,KAAK,MAAMD,EAAOC,CAAQ,EACnC,KAAK,MAAMD,CAAK,GAEvB,KAAK,MAAM,KAAKV,EAAgB,EAChC,KAAKF,GAAS,GACP,MAAM,IAAIc,CAAE,CACrB,CAEA,IAAI,OAAK,CACP,OAAO,KAAKd,EACd,CAGA,CAACR,EAAW,EAAEuB,EAAwC,CACpD,OAAO,MAAM,MAAMA,CAAI,CACzB,CAQA,MACEH,EACAC,EACAC,EAAe,CAUf,GANI,OAAOD,GAAa,aACrBC,EAAKD,EAAYA,EAAW,QAE3B,OAAOD,GAAU,WACnBA,EAAQ3B,GAAO,KAAK2B,EAAiBC,CAA0B,GAE7D,KAAKd,GAAW,OACpBW,GAAO,KAAKN,GAAS,qBAAqB,EAK1C,IAAMY,EAAgB,KAAKZ,GACxB,QACGa,EAAsBD,EAAa,MACzCA,EAAa,MAAQ,IAAK,CAAE,EAC5B,IAAME,EAAgB,KAAKd,GAAQ,MACnC,KAAKA,GAAQ,MAAQ,IAAK,CAAE,EAG5Bf,GAAwB,EAAI,EAC5B,IAAI8B,EACJ,GAAI,CACF,IAAMR,EACJ,OAAOC,EAAMhB,EAAU,GAAM,SACzBgB,EAAMhB,EAAU,EAChB,KAAKK,GACXkB,EACE,KAAKf,GAGL,cAAcQ,EAAiBD,CAAS,EAE1CtB,GAAwB,EAAK,CAC/B,OAASK,EAAK,CAGZL,GAAwB,EAAK,EAC7B,KAAKgB,GAAS,IAAIZ,GAAUC,EAA8B,KAAK,KAAK,CAAC,CACvE,SACM,KAAKU,KAIL,KAAKA,GAAwC,QAC7CY,EACFA,EAAa,MAAQC,EACrB,KAAKb,GAAQ,MAAQc,EAGrB,KAAKd,GAAQ,mBAAmB,OAAO,EAG3C,CAEI,KAAKA,IACP,KAAKA,GAAQ,GAAG,QAASK,GAAM,KAAKJ,GAAS,IAAIZ,GAAUgB,EAAI,KAAK,KAAK,CAAC,CAAC,EAE7E,IAAIW,EACJ,GAAID,EACF,GAAI,MAAM,QAAQA,CAAM,GAAKA,EAAO,OAAS,EAAG,CAC9C,IAAME,EAAIF,EAAO,CAAC,EAGlBC,EAAc,KAAK5B,EAAW,EAAEP,GAAO,KAAKoC,CAAW,CAAC,EACxD,QAASC,EAAI,EAAGA,EAAIH,EAAO,OAAQG,IACjCF,EAAc,KAAK5B,EAAW,EAAE2B,EAAOG,CAAC,CAAW,CAEvD,MAEEF,EAAc,KAAK5B,EAAW,EAAEP,GAAO,KAAKkC,CAAqB,CAAC,EAItE,OAAIL,GAAIA,EAAE,EACHM,CACT,GAQWG,GAAP,cAAoB1B,EAAQ,CAChC2B,GACAC,GAEA,YAAYnB,EAAmBC,EAAc,CAC3CD,EAAOA,GAAQ,CAAA,EAEfA,EAAK,MAAQA,EAAK,OAASoB,EAAU,WACrCpB,EAAK,YAAcA,EAAK,aAAeoB,EAAU,SACjDpB,EAAK,cAAgBoB,EAAU,aAC/B,MAAMpB,EAAMC,CAAI,EAEhB,KAAKiB,GAASlB,EAAK,MACnB,KAAKmB,GAAYnB,EAAK,QACxB,CAEA,OAAOqB,EAAeC,EAAgB,CACpC,GAAI,MAAK,SAET,IAAI,CAAC,KAAK,OACR,MAAM,IAAI,MAAM,6CAA6C,EAI/D,GAAI,CAAE,KAAK,OAA4B,OACrC,MAAM,IAAI,MAAM,sCAAsC,EAGxD,GAAI,KAAKJ,KAAWG,GAAS,KAAKF,KAAcG,EAAU,CACxD,KAAK,MAAMF,EAAU,YAAY,EACjChB,GAAO,KAAK,OAAQ,qBAAqB,EAIzC,IAAMmB,EAAY,KAAK,OAAO,MAC9B,KAAK,OAAO,MAAQ,CAClBlB,EACAG,IACE,CAEE,OAAOH,GAAc,aACvBG,EAAKH,EACLA,EAAY,KAAK,WAGnB,KAAK,MAAMA,CAAS,EACpBG,IAAI,CACN,EACA,GAAI,CAEA,KAAK,OAGL,OAAOa,EAAOC,CAAQ,CAC1B,SACE,KAAK,OAAO,MAAQC,CACtB,CAEI,KAAK,SACP,KAAKL,GAASG,EACd,KAAKF,GAAYG,EAGrB,EACF,GAkBI,IAAOE,GAAP,cAAoBC,EAAI,CAC5BC,GACA,YAAYC,EAAiB,CAC3B,MAAMA,EAAM,MAAM,EAClB,KAAKD,GAAYC,GAAQ,CAAC,CAACA,EAAK,QAClC,CAEA,CAACC,EAAW,EAAEC,EAAwC,CACpD,OAAK,KAAKH,IAIV,KAAKA,GAAY,GACjBG,EAAK,CAAC,EAAI,IACH,MAAMD,EAAW,EAAEC,CAAI,GANF,MAAMD,EAAW,EAAEC,CAAI,CAOrD,GAuBI,IAAOC,GAAP,cAAqBC,EAAI,CAC7B,YAAYC,EAAiB,CAC3B,MAAMA,EAAM,OAAO,CACrB,GAGIC,GAAN,cAAqBC,EAAQ,CAC3B,YAAYF,EAAmBG,EAAgB,CAC7CH,EAAOA,GAAQ,CAAA,EAEfA,EAAK,MAAQA,EAAK,OAASI,EAAU,yBACrCJ,EAAK,YACHA,EAAK,aAAeI,EAAU,wBAChCJ,EAAK,cAAgBI,EAAU,uBAC/B,MAAMJ,EAAMG,CAAI,CAClB,GAGWE,GAAP,cAA8BJ,EAAM,CACxC,YAAYD,EAAiB,CAC3B,MAAMA,EAAM,gBAAgB,CAC9B,GAGWM,GAAP,cAAgCL,EAAM,CAC1C,YAAYD,EAAiB,CAC3B,MAAMA,EAAM,kBAAkB,CAChC,GAGIO,GAAN,cAAmBL,EAAQ,CACzB,YAAYF,EAAmBG,EAAc,CAC3CH,EAAOA,GAAQ,CAAA,EAEfA,EAAK,MAAQA,EAAK,OAASI,EAAU,gBACrCJ,EAAK,YAAcA,EAAK,aAAeI,EAAU,WACjDJ,EAAK,cAAgBI,EAAU,aAC/B,MAAMJ,EAAMG,CAAI,CAClB,GAGWK,GAAP,cAA4BD,EAAI,CACpC,YAAYP,EAAiB,CAC3B,MAAMA,EAAM,cAAc,CAC5B,GAGWS,GAAP,cAA8BF,EAAI,CACtC,YAAYP,EAAiB,CAC3B,MAAMA,EAAM,gBAAgB,CAC9B,GEpdF,OAAS,SAASU,OAAkB,YCF7B,IAAMC,GAAS,CAACC,EAAaC,IAAe,CACjD,GAAK,OAAO,cAAcD,CAAG,EAMlBA,EAAM,EACfE,GAAeF,EAAKC,CAAG,EAEvBE,GAAeH,EAAKC,CAAG,MANvB,OAAM,MACJ,+DAA+D,EAOnE,OAAOA,CACT,EAEME,GAAiB,CAACH,EAAaC,IAAe,CAClDA,EAAI,CAAC,EAAI,IAET,QAASG,EAAIH,EAAI,OAAQG,EAAI,EAAGA,IAC9BH,EAAIG,EAAI,CAAC,EAAIJ,EAAM,IACnBA,EAAM,KAAK,MAAMA,EAAM,GAAK,CAEhC,EAEME,GAAiB,CAACF,EAAaC,IAAe,CAClDA,EAAI,CAAC,EAAI,IACT,IAAII,EAAU,GACdL,EAAMA,EAAM,GACZ,QAAS,EAAIC,EAAI,OAAQ,EAAI,EAAG,IAAK,CACnC,IAAIK,EAAON,EAAM,IACjBA,EAAM,KAAK,MAAMA,EAAM,GAAK,EACxBK,EACFJ,EAAI,EAAI,CAAC,EAAIM,GAASD,CAAI,EACjBA,IAAS,EAClBL,EAAI,EAAI,CAAC,EAAI,GAEbI,EAAU,GACVJ,EAAI,EAAI,CAAC,EAAIO,GAASF,CAAI,EAE9B,CACF,EAEaG,GAASR,GAAe,CACnC,IAAMS,EAAMT,EAAI,CAAC,EACXU,EACJD,IAAQ,IAAOE,GAAIX,EAAI,SAAS,EAAGA,EAAI,MAAM,CAAC,EAC5CS,IAAQ,IAAOG,GAAKZ,CAAG,EACvB,KACJ,GAAIU,IAAU,KACZ,MAAM,MAAM,0BAA0B,EAGxC,GAAI,CAAC,OAAO,cAAcA,CAAK,EAG7B,MAAM,MAAM,wDAAwD,EAGtE,OAAOA,CACT,EAEME,GAAQZ,GAAe,CAI3B,QAHIa,EAAMb,EAAI,OACVc,EAAM,EACNV,EAAU,GACLD,EAAIU,EAAM,EAAGV,EAAI,GAAIA,IAAK,CACjC,IAAIE,EAAO,OAAOL,EAAIG,CAAC,CAAC,EACpBY,EACAX,EACFW,EAAIT,GAASD,CAAI,EACRA,IAAS,EAClBU,EAAIV,GAEJD,EAAU,GACVW,EAAIR,GAASF,CAAI,GAEfU,IAAM,IACRD,GAAOC,EAAI,KAAK,IAAI,IAAKF,EAAMV,EAAI,CAAC,EAExC,CACA,OAAOW,CACT,EAEMH,GAAOX,GAAe,CAG1B,QAFIa,EAAMb,EAAI,OACVc,EAAM,EACD,EAAID,EAAM,EAAG,EAAI,GAAI,IAAK,CACjC,IAAIR,EAAO,OAAOL,EAAI,CAAC,CAAC,EACpBK,IAAS,IACXS,GAAOT,EAAO,KAAK,IAAI,IAAKQ,EAAM,EAAI,CAAC,EAE3C,CACA,OAAOC,CACT,EAEMR,GAAYD,IAAkB,IAAOA,GAAQ,IAE7CE,GAAYF,IAAmB,IAAOA,GAAQ,EAAK,ICpGzD,IAAAW,GAAA,GAAAC,GAAAD,GAAA,UAAAE,GAAA,WAAAC,GAAA,WAAAC,GAAA,SAAAC,KAAO,IAAMF,GAAUG,GACrBD,GAAK,IAAIC,CAAkB,EAEhBF,GAAUE,GACrBJ,GAAK,IAAII,CAAkB,EAkDhBD,GAAO,IAAI,IAAkC,CACxD,CAAC,IAAK,MAAM,EAEZ,CAAC,GAAI,SAAS,EACd,CAAC,IAAK,MAAM,EACZ,CAAC,IAAK,cAAc,EAGpB,CAAC,IAAK,iBAAiB,EACvB,CAAC,IAAK,aAAa,EACnB,CAAC,IAAK,WAAW,EACjB,CAAC,IAAK,MAAM,EAEZ,CAAC,IAAK,gBAAgB,EAEtB,CAAC,IAAK,sBAAsB,EAC5B,CAAC,IAAK,gBAAgB,EAGtB,CAAC,IAAK,YAAY,EAElB,CAAC,IAAK,YAAY,EAElB,CAAC,IAAK,OAAO,EAEb,CAAC,IAAK,yBAAyB,EAE/B,CAAC,IAAK,qBAAqB,EAE3B,CAAC,IAAK,kBAAkB,EAExB,CAAC,IAAK,gBAAgB,EAEtB,CAAC,IAAK,YAAY,EAElB,CAAC,IAAK,kBAAkB,EAExB,CAAC,IAAK,mBAAmB,EAC1B,EAGYH,GAAO,IAAI,IACtB,MAAM,KAAKG,EAAI,EAAE,IAAIE,GAAM,CAACA,EAAG,CAAC,EAAGA,EAAG,CAAC,CAAC,CAAC,CAAC,EF5DtC,IAAOC,EAAP,KAAa,CACjB,WAAsB,GACtB,QAAmB,GACnB,UAAqB,GAErB,MACA,KACA,KACA,IACA,IACA,KACA,MACAC,GAAuC,cACvC,SACA,MACA,MACA,OAAiB,EACjB,OAAiB,EACjB,MACA,MACA,MAEA,QACA,QAEA,YACEC,EACAC,EAAc,EACdC,EACAC,EAAgB,CAEZ,OAAO,SAASH,CAAI,EACtB,KAAK,OAAOA,EAAMC,GAAO,EAAGC,EAAIC,CAAG,EAC1BH,GACT,KAAKI,GAAOJ,CAAI,CAEpB,CAEA,OAAOK,EAAaJ,EAAaC,EAAiBC,EAAgB,CAKhE,GAJKF,IACHA,EAAM,GAGJ,CAACI,GAAO,EAAEA,EAAI,QAAUJ,EAAM,KAChC,MAAM,IAAI,MAAM,2BAA2B,EAG7C,KAAK,KAAOC,GAAI,MAAQI,GAAUD,EAAKJ,EAAK,GAAG,EAC/C,KAAK,KAAOC,GAAI,MAAQC,GAAK,MAAQI,GAAUF,EAAKJ,EAAM,IAAK,CAAC,EAChE,KAAK,IAAMC,GAAI,KAAOC,GAAK,KAAOI,GAAUF,EAAKJ,EAAM,IAAK,CAAC,EAC7D,KAAK,IAAMC,GAAI,KAAOC,GAAK,KAAOI,GAAUF,EAAKJ,EAAM,IAAK,CAAC,EAC7D,KAAK,KAAOC,GAAI,MAAQC,GAAK,MAAQI,GAAUF,EAAKJ,EAAM,IAAK,EAAE,EACjE,KAAK,MAAQC,GAAI,OAASC,GAAK,OAASK,GAAQH,EAAKJ,EAAM,IAAK,EAAE,EAClE,KAAK,MAAQM,GAAUF,EAAKJ,EAAM,IAAK,EAAE,EAKrCE,GAAK,KAAKC,GAAOD,EAAK,EAAI,EAC1BD,GAAI,KAAKE,GAAOF,CAAE,EAGtB,IAAMO,EAAIH,GAAUD,EAAKJ,EAAM,IAAK,CAAC,EAkBrC,GAjBUS,GAAOD,CAAC,IAChB,KAAKV,GAAQU,GAAK,KAEhB,KAAKV,KAAU,KAAO,KAAK,KAAK,MAAM,EAAE,IAAM,MAChD,KAAKA,GAAQ,KAQX,KAAKA,KAAU,MACjB,KAAK,KAAO,GAGd,KAAK,SAAWO,GAAUD,EAAKJ,EAAM,IAAK,GAAG,EAE3CI,EAAI,SAASJ,EAAM,IAAKA,EAAM,GAAG,EAAE,SAAQ,IAAO,cAUlD,GAPA,KAAK,MAAQC,GAAI,OAASC,GAAK,OAASG,GAAUD,EAAKJ,EAAM,IAAK,EAAE,EACpE,KAAK,MAAQC,GAAI,OAASC,GAAK,OAASG,GAAUD,EAAKJ,EAAM,IAAK,EAAE,EACpE,KAAK,OACHC,GAAI,QAAUC,GAAK,QAAUI,GAAUF,EAAKJ,EAAM,IAAK,CAAC,GAAK,EAC/D,KAAK,OACHC,GAAI,QAAUC,GAAK,QAAUI,GAAUF,EAAKJ,EAAM,IAAK,CAAC,GAAK,EAE3DI,EAAIJ,EAAM,GAAG,IAAM,EAAG,CAExB,IAAMU,EAASL,GAAUD,EAAKJ,EAAM,IAAK,GAAG,EAC5C,KAAK,KAAOU,EAAS,IAAM,KAAK,IAClC,KAAO,CACL,IAAMA,EAASL,GAAUD,EAAKJ,EAAM,IAAK,GAAG,EACxCU,IACF,KAAK,KAAOA,EAAS,IAAM,KAAK,MAGlC,KAAK,MAAQT,GAAI,OAASC,GAAK,OAASK,GAAQH,EAAKJ,EAAM,IAAK,EAAE,EAClE,KAAK,MAAQC,GAAI,OAASC,GAAK,OAASK,GAAQH,EAAKJ,EAAM,IAAK,EAAE,CAEpE,CAGF,IAAIW,EAAM,IACV,QAASC,EAAIZ,EAAKY,EAAIZ,EAAM,IAAKY,IAC/BD,GAAOP,EAAIQ,CAAC,EAGd,QAASA,EAAIZ,EAAM,IAAKY,EAAIZ,EAAM,IAAKY,IACrCD,GAAOP,EAAIQ,CAAC,EAGd,KAAK,WAAaD,IAAQ,KAAK,MAC3B,KAAK,QAAU,QAAaA,IAAQ,MACtC,KAAK,UAAY,GAErB,CAEAR,GAAOF,EAAgBC,EAAe,GAAK,CACzC,OAAO,OACL,KACA,OAAO,YACL,OAAO,QAAQD,CAAE,EAAE,OAAO,CAAC,CAACY,EAAGC,CAAC,IAIvB,EACLA,GAAM,MAELD,IAAM,QAAUX,GAChBW,IAAM,YAAcX,GACrBW,IAAM,SAET,CAAC,CACH,CAEL,CAEA,OAAOT,EAAcJ,EAAc,EAAC,CASlC,GARKI,IACHA,EAAM,KAAK,MAAQ,OAAO,MAAM,GAAG,GAGjC,KAAKN,KAAU,gBACjB,KAAKA,GAAQ,KAGX,EAAEM,EAAI,QAAUJ,EAAM,KACxB,MAAM,IAAI,MAAM,2BAA2B,EAG7C,IAAMe,EAAa,KAAK,OAAS,KAAK,MAAQ,IAAM,IAC9CC,EAAQC,GAAY,KAAK,MAAQ,GAAIF,CAAU,EAC/CG,EAAOF,EAAM,CAAC,EACdN,EAASM,EAAM,CAAC,EACtB,KAAK,QAAU,CAAC,CAACA,EAAM,CAAC,EAExB,KAAK,QAAUG,GAAUf,EAAKJ,EAAK,IAAKkB,CAAI,GAAK,KAAK,QACtD,KAAK,QAAUE,GAAUhB,EAAKJ,EAAM,IAAK,EAAG,KAAK,IAAI,GAAK,KAAK,QAC/D,KAAK,QAAUoB,GAAUhB,EAAKJ,EAAM,IAAK,EAAG,KAAK,GAAG,GAAK,KAAK,QAC9D,KAAK,QAAUoB,GAAUhB,EAAKJ,EAAM,IAAK,EAAG,KAAK,GAAG,GAAK,KAAK,QAC9D,KAAK,QAAUoB,GAAUhB,EAAKJ,EAAM,IAAK,GAAI,KAAK,IAAI,GAAK,KAAK,QAChE,KAAK,QAAUqB,GAAQjB,EAAKJ,EAAM,IAAK,GAAI,KAAK,KAAK,GAAK,KAAK,QAC/DI,EAAIJ,EAAM,GAAG,EAAI,OAAO,KAAKF,GAAM,YAAY,CAAC,CAAC,EACjD,KAAK,QACHqB,GAAUf,EAAKJ,EAAM,IAAK,IAAK,KAAK,QAAQ,GAAK,KAAK,QACxDI,EAAI,MAAM,cAAiBJ,EAAM,IAAK,CAAC,EACvC,KAAK,QACHmB,GAAUf,EAAKJ,EAAM,IAAK,GAAI,KAAK,KAAK,GAAK,KAAK,QACpD,KAAK,QACHmB,GAAUf,EAAKJ,EAAM,IAAK,GAAI,KAAK,KAAK,GAAK,KAAK,QACpD,KAAK,QACHoB,GAAUhB,EAAKJ,EAAM,IAAK,EAAG,KAAK,MAAM,GAAK,KAAK,QACpD,KAAK,QACHoB,GAAUhB,EAAKJ,EAAM,IAAK,EAAG,KAAK,MAAM,GAAK,KAAK,QACpD,KAAK,QACHmB,GAAUf,EAAKJ,EAAM,IAAKe,EAAYL,CAAM,GAAK,KAAK,QACpDN,EAAIJ,EAAM,GAAG,IAAM,EACrB,KAAK,QAAUmB,GAAUf,EAAKJ,EAAM,IAAK,IAAKU,CAAM,GAAK,KAAK,SAE9D,KAAK,QAAUS,GAAUf,EAAKJ,EAAM,IAAK,IAAKU,CAAM,GAAK,KAAK,QAC9D,KAAK,QACHW,GAAQjB,EAAKJ,EAAM,IAAK,GAAI,KAAK,KAAK,GAAK,KAAK,QAClD,KAAK,QACHqB,GAAQjB,EAAKJ,EAAM,IAAK,GAAI,KAAK,KAAK,GAAK,KAAK,SAGpD,IAAIW,EAAM,IACV,QAASC,EAAIZ,EAAKY,EAAIZ,EAAM,IAAKY,IAC/BD,GAAOP,EAAIQ,CAAC,EAGd,QAASA,EAAIZ,EAAM,IAAKY,EAAIZ,EAAM,IAAKY,IACrCD,GAAOP,EAAIQ,CAAC,EAGd,YAAK,MAAQD,EACbS,GAAUhB,EAAKJ,EAAM,IAAK,EAAG,KAAK,KAAK,EACvC,KAAK,WAAa,GAEX,KAAK,OACd,CAEA,IAAI,MAAI,CACN,OACE,KAAKF,KAAU,cACb,KAAKA,GACCwB,GAAK,IAAI,KAAKxB,EAAK,CAC/B,CAEA,IAAI,SAAO,CACT,OAAO,KAAKA,EACd,CAEA,IAAI,KAAKyB,EAAmD,CAC1D,IAAMC,EAAI,OAAaC,GAAK,IAAIF,CAAqB,CAAC,EACtD,GAAUd,GAAOe,CAAC,GAAKA,IAAM,cAC3B,KAAK1B,GAAQ0B,UACEf,GAAOc,CAAI,EAC1B,KAAKzB,GAAQyB,MAEb,OAAM,IAAI,UAAU,uBAAyBA,CAAI,CAErD,GAGIN,GAAc,CAClBS,EACAX,IAC6B,CAE7B,IAAIY,EAAKD,EACLhB,EAAS,GACTkB,EACEC,EAAOC,GAAW,MAAMJ,CAAC,EAAE,MAAQ,IAEzC,GAAI,OAAO,WAAWC,CAAE,EAAI,IAC1BC,EAAM,CAACD,EAAIjB,EAAQ,EAAK,MACnB,CAELA,EAASoB,GAAW,QAAQH,CAAE,EAC9BA,EAAKG,GAAW,SAASH,CAAE,EAE3B,GAEI,OAAO,WAAWA,CAAE,GAAK,KACzB,OAAO,WAAWjB,CAAM,GAAKK,EAG7Ba,EAAM,CAACD,EAAIjB,EAAQ,EAAK,EAExB,OAAO,WAAWiB,CAAE,EAAI,KACxB,OAAO,WAAWjB,CAAM,GAAKK,EAG7Ba,EAAM,CAACD,EAAG,MAAM,EAAG,EAAY,EAAGjB,EAAQ,EAAI,GAG9CiB,EAAKG,GAAW,KAAKA,GAAW,SAASpB,CAAM,EAAGiB,CAAE,EACpDjB,EAASoB,GAAW,QAAQpB,CAAM,SAE7BA,IAAWmB,GAAQD,IAAQ,QAG/BA,IACHA,EAAM,CAACF,EAAE,MAAM,EAAG,EAAY,EAAG,GAAI,EAAI,EAE7C,CACA,OAAOE,CACT,EAEMvB,GAAY,CAACD,EAAaJ,EAAa+B,IAC3C3B,EACG,SAASJ,EAAKA,EAAM+B,CAAI,EACxB,SAAS,MAAM,EACf,QAAQ,OAAQ,EAAE,EAEjBxB,GAAU,CAACH,EAAaJ,EAAa+B,IACzCC,GAAU1B,GAAUF,EAAKJ,EAAK+B,CAAI,CAAC,EAE/BC,GAAaC,GACjBA,IAAQ,OAAY,OAAY,IAAI,KAAKA,EAAM,GAAI,EAE/C3B,GAAY,CAACF,EAAaJ,EAAa+B,IAC3C,OAAO3B,EAAIJ,CAAG,CAAC,EAAI,IACXkC,GAAM9B,EAAI,SAASJ,EAAKA,EAAM+B,CAAI,CAAC,EACzCI,GAAe/B,EAAKJ,EAAK+B,CAAI,EAE3BK,GAAYC,GAAmB,MAAMA,CAAK,EAAI,OAAYA,EAE1DF,GAAiB,CAAC/B,EAAaJ,EAAa+B,IAChDK,GACE,SACEhC,EACG,SAASJ,EAAKA,EAAM+B,CAAI,EACxB,SAAS,MAAM,EACf,QAAQ,QAAS,EAAE,EACnB,KAAI,EACP,CAAC,CACF,EAICO,GAAS,CACb,GAAI,WACJ,EAAG,SAGClB,GAAY,CAChBhB,EACAJ,EACA+B,EACAE,IAEAA,IAAQ,OAAY,GAClBA,EAAMK,GAAOP,CAAI,GAAKE,EAAM,GACrBM,GAAON,EAAK7B,EAAI,SAASJ,EAAKA,EAAM+B,CAAI,CAAC,EAAG,KAClDS,GAAepC,EAAKJ,EAAK+B,EAAME,CAAG,EAAG,IAEpCO,GAAiB,CACrBpC,EACAJ,EACA+B,EACAE,IACG7B,EAAI,MAAMqC,GAAYR,EAAKF,CAAI,EAAG/B,EAAK+B,EAAM,OAAO,EAEnDU,GAAc,CAACR,EAAaF,IAChCW,GAAS,KAAK,MAAMT,CAAG,EAAE,SAAS,CAAC,EAAGF,CAAI,EAEtCW,GAAW,CAACC,EAAaZ,KAC5BY,EAAI,SAAWZ,EAAO,EACrBY,EACA,IAAI,MAAMZ,EAAOY,EAAI,OAAS,CAAC,EAAE,KAAK,GAAG,EAAIA,EAAM,KAAO,KAExDtB,GAAU,CAACjB,EAAaJ,EAAa+B,EAAca,IACvDA,IAAS,OAAY,GACnBxB,GAAUhB,EAAKJ,EAAK+B,EAAMa,EAAK,QAAO,EAAK,GAAI,EAI7CC,GAAQ,IAAI,MAAM,GAAG,EAAE,KAAK,IAAI,EAEhC1B,GAAY,CAChBf,EACAJ,EACA+B,EACAY,IAEAA,IAAQ,OAAY,IACjBvC,EAAI,MAAMuC,EAAME,GAAO7C,EAAK+B,EAAM,MAAM,EACzCY,EAAI,SAAW,OAAO,WAAWA,CAAG,GAAKA,EAAI,OAASZ,GGtY1D,OAAS,YAAAe,OAAgB,YAInB,IAAOC,GAAP,MAAOC,CAAG,CACd,MACA,MACA,MAEA,QACA,QAEA,IACA,IAEA,MACA,MACA,SACA,IACA,IACA,MACA,KACA,KACA,KAEA,OAEA,YAAYC,EAAiBC,EAAkB,GAAK,CAClD,KAAK,MAAQD,EAAI,MACjB,KAAK,QAAUA,EAAI,QACnB,KAAK,QAAUA,EAAI,QACnB,KAAK,MAAQA,EAAI,MACjB,KAAK,IAAMA,EAAI,IACf,KAAK,IAAMA,EAAI,IACf,KAAK,OAASC,EACd,KAAK,MAAQD,EAAI,MACjB,KAAK,IAAMA,EAAI,IACf,KAAK,SAAWA,EAAI,SACpB,KAAK,MAAQA,EAAI,MACjB,KAAK,MAAQA,EAAI,MACjB,KAAK,KAAOA,EAAI,KAChB,KAAK,KAAOA,EAAI,KAChB,KAAK,IAAMA,EAAI,IACf,KAAK,MAAQA,EAAI,KACnB,CAEA,QAAM,CACJ,IAAME,EAAO,KAAK,WAAU,EAC5B,GAAIA,IAAS,GACX,OAAO,OAAO,YAAY,CAAC,EAG7B,IAAMC,EAAU,OAAO,WAAWD,CAAI,EAGhCE,EAAS,IAAM,KAAK,KAAK,EAAID,EAAU,GAAG,EAC1CE,EAAM,OAAO,YAAYD,CAAM,EAGrC,QAASE,EAAI,EAAGA,EAAI,IAAKA,IACvBD,EAAIC,CAAC,EAAI,EAGX,IAAIC,EAAO,CAKT,MAAO,aAAeC,GAAS,KAAK,MAAQ,EAAE,GAAG,MAAM,EAAG,EAAE,EAE5D,KAAM,KAAK,MAAQ,IACnB,IAAK,KAAK,IACV,IAAK,KAAK,IACV,KAAML,EACN,MAAO,KAAK,MACZ,KAAM,KAAK,OAAS,uBAAyB,iBAC7C,SAAU,GACV,MAAO,KAAK,OAAS,GACrB,MAAO,KAAK,OAAS,GACrB,OAAQ,EACR,OAAQ,EACR,MAAO,KAAK,MACZ,MAAO,KAAK,MACb,EAAE,OAAOE,CAAG,EAEbA,EAAI,MAAMH,EAAM,IAAKC,EAAS,MAAM,EAGpC,QAASG,EAAIH,EAAU,IAAKG,EAAID,EAAI,OAAQC,IAC1CD,EAAIC,CAAC,EAAI,EAGX,OAAOD,CACT,CAEA,YAAU,CACR,OACE,KAAK,YAAY,MAAM,EACvB,KAAK,YAAY,OAAO,EACxB,KAAK,YAAY,OAAO,EACxB,KAAK,YAAY,KAAK,EACtB,KAAK,YAAY,KAAK,EACtB,KAAK,YAAY,OAAO,EACxB,KAAK,YAAY,SAAS,EAC1B,KAAK,YAAY,SAAS,EAC1B,KAAK,YAAY,KAAK,EACtB,KAAK,YAAY,OAAO,EACxB,KAAK,YAAY,UAAU,EAC3B,KAAK,YAAY,OAAO,EACxB,KAAK,YAAY,MAAM,EACvB,KAAK,YAAY,KAAK,EACtB,KAAK,YAAY,OAAO,CAE5B,CAEA,YAAYI,EAAgB,CAC1B,GAAI,KAAKA,CAAK,IAAM,OAClB,MAAO,GAET,IAAMC,EAAI,KAAKD,CAAK,EACdE,EAAID,aAAa,KAAOA,EAAE,QAAO,EAAK,IAAOA,EAC7CE,EACJ,KACCH,IAAU,OAASA,IAAU,OAASA,IAAU,QAC/C,UACA,IACFA,EACA,IACAE,EACA;EACIE,EAAU,OAAO,WAAWD,CAAC,EAI/BE,EAAS,KAAK,MAAM,KAAK,IAAID,CAAO,EAAI,KAAK,IAAI,EAAE,CAAC,EAAI,EAC5D,OAAIA,EAAUC,GAAU,KAAK,IAAI,GAAIA,CAAM,IACzCA,GAAU,GAEAA,EAASD,EACRD,CACf,CAEA,OAAO,MAAMG,EAAaC,EAAiBC,EAAa,GAAK,CAC3D,OAAO,IAAIlB,EAAImB,GAAMC,GAAQJ,CAAG,EAAGC,CAAE,EAAGC,CAAC,CAC3C,GAGIC,GAAQ,CAACE,EAAeC,IAC5BA,EAAI,OAAO,OAAO,CAAA,EAAIA,EAAGD,CAAC,EAAIA,EAE1BD,GAAWJ,GACfA,EACG,QAAQ,MAAO,EAAE,EACjB,MAAM;CAAI,EACV,OAAOO,GAAa,OAAO,OAAO,IAAI,CAAC,EAEtCA,GAAc,CAACC,EAA8BC,IAAgB,CACjE,IAAMC,EAAI,SAASD,EAAM,EAAE,EAI3B,GAAIC,IAAM,OAAO,WAAWD,CAAI,EAAI,EAClC,OAAOD,EAGTC,EAAOA,EAAK,OAAOC,EAAI,KAAK,MAAM,EAClC,IAAMC,EAAKF,EAAK,MAAM,GAAG,EACnB,EAAIE,EAAG,MAAK,EAElB,GAAI,CAAC,EACH,OAAOH,EAGT,IAAMI,EAAI,EAAE,QAAQ,2BAA4B,IAAI,EAE9ChB,EAAIe,EAAG,KAAK,GAAG,EACrB,OAAAH,EAAII,CAAC,EACH,0CAA0C,KAAKA,CAAC,EAC9C,IAAI,KAAK,OAAOhB,CAAC,EAAI,GAAI,EACzB,WAAW,KAAKA,CAAC,EAAI,CAACA,EACtBA,EACGY,CACT,ECjLA,IAAMK,GAAW,QAAQ,IAAI,2BAA6B,QAAQ,SAErDC,EACXD,KAAa,QACVE,GAAcA,EACdA,GAAcA,GAAKA,EAAE,WAAW,MAAO,GAAG,ECJzC,IAAOC,GAAP,cAAyBC,CAAwB,CACrD,SACA,eACA,OACA,eACA,YACA,OACA,KACA,KAAgB,GAChB,OAAkB,GAClB,KACA,KACA,IACA,IACA,MACA,MACA,KAAe,EACf,MACA,MACA,MACA,SAEA,IACA,IACA,MACA,QAAmB,GACnB,SACA,YAAuB,GAEvB,YAAYC,EAAgBC,EAAUC,EAAS,CAe7C,OAdA,MAAM,CAAA,CAAE,EAIR,KAAK,MAAK,EACV,KAAK,SAAWD,EAChB,KAAK,eAAiBC,EACtB,KAAK,OAASF,EAEd,KAAK,OAASA,EAAO,MAAQ,EAE7B,KAAK,eAAiB,IAAM,KAAK,KAAK,KAAK,OAAS,GAAG,EACvD,KAAK,YAAc,KAAK,eACxB,KAAK,KAAOA,EAAO,KACX,KAAK,KAAM,CACjB,IAAK,OACL,IAAK,UACL,IAAK,OACL,IAAK,eACL,IAAK,kBACL,IAAK,cACL,IAAK,YACL,IAAK,OACL,IAAK,iBACL,IAAK,aACH,MAEF,IAAK,0BACL,IAAK,sBACL,IAAK,iBACL,IAAK,uBACL,IAAK,iBACL,IAAK,oBACH,KAAK,KAAO,GACZ,MAIF,QACE,KAAK,OAAS,EAClB,CAGA,GAAI,CAACA,EAAO,KACV,MAAM,IAAI,MAAM,oCAAoC,EAItD,KAAK,KAAOG,EAAqBH,EAAO,IAAI,EAC5C,KAAK,KAAOA,EAAO,KACf,KAAK,OACP,KAAK,KAAO,KAAK,KAAO,MAE1B,KAAK,IAAMA,EAAO,IAClB,KAAK,IAAMA,EAAO,IAClB,KAAK,MAAQA,EAAO,MACpB,KAAK,MAAQA,EAAO,MACpB,KAAK,KAAO,KAAK,OACjB,KAAK,MAAQA,EAAO,MACpB,KAAK,MAAQA,EAAO,MACpB,KAAK,MAAQA,EAAO,MAEpB,KAAK,SACHA,EAAO,SAAWG,EAAqBH,EAAO,QAAQ,EAAI,OAE5D,KAAK,MAAQA,EAAO,MACpB,KAAK,MAAQA,EAAO,MAEhBC,GACF,KAAKG,GAAOH,CAAE,EAEZC,GACF,KAAKE,GAAOF,EAAK,EAAI,CAEzB,CAEA,MAAMG,EAAY,CAChB,IAAMC,EAAWD,EAAK,OACtB,GAAIC,EAAW,KAAK,YAClB,MAAM,IAAI,MAAM,2CAA2C,EAG7D,IAAMC,EAAI,KAAK,OACTC,EAAK,KAAK,YAGhB,OAFA,KAAK,OAAS,KAAK,IAAI,EAAGD,EAAID,CAAQ,EACtC,KAAK,YAAc,KAAK,IAAI,EAAGE,EAAKF,CAAQ,EACxC,KAAK,OACA,GAGLC,GAAKD,EACA,MAAM,MAAMD,CAAI,EAIlB,MAAM,MAAMA,EAAK,SAAS,EAAGE,CAAC,CAAC,CACxC,CAEAH,GAAOH,EAASC,EAAe,GAAK,CAC9BD,EAAG,OAAMA,EAAG,KAAOE,EAAqBF,EAAG,IAAI,GAC/CA,EAAG,WAAUA,EAAG,SAAWE,EAAqBF,EAAG,QAAQ,GAC/D,OAAO,OACL,KACA,OAAO,YACL,OAAO,QAAQA,CAAE,EAAE,OAAO,CAAC,CAACQ,EAAGC,CAAC,IAIvB,EAAEA,GAAM,MAA4BD,IAAM,QAAUP,EAC5D,CAAC,CACH,CAEL,GCxHK,IAAMS,GAAa,CACxBC,EACAC,EACAC,EACAC,EAAiB,CAAA,IACf,CACEH,EAAK,OACPG,EAAK,KAAOH,EAAK,MAEfA,EAAK,MACPG,EAAK,IAAMH,EAAK,KAElBG,EAAK,KACFD,aAAmB,OACjBA,EAAkC,MACrCD,EACFE,EAAK,QAAUF,EACX,CAACD,EAAK,QAAUG,EAAK,cAAgB,IACnCD,aAAmB,QACrBC,EAAO,OAAO,OAAOD,EAASC,CAAI,EAClCD,EAAUA,EAAQ,SAEpBF,EAAK,KAAK,OAAQC,EAAMC,EAASC,CAAI,GAC5BD,aAAmB,MAC5BF,EAAK,KAAK,QAAS,OAAO,OAAOE,EAASC,CAAI,CAAC,EAE/CH,EAAK,KACH,QACA,OAAO,OAAO,IAAI,MAAM,GAAGC,CAAI,KAAKC,CAAO,EAAE,EAAGC,CAAI,CAAC,CAG3D,ET/BA,IAAMC,GAAmB,KAAO,KAC1BC,GAAa,OAAO,KAAK,CAAC,GAAM,GAAI,CAAC,EACrCC,GAAa,OAAO,KAAK,CAAC,GAAM,IAAM,GAAM,GAAI,CAAC,EACjDC,GAAiB,KAAK,IAAIF,GAAW,OAAQC,GAAW,MAAM,EAE9DE,EAAQ,OAAO,OAAO,EACtBC,GAAa,OAAO,YAAY,EAChCC,GAAY,OAAO,WAAW,EAC9BC,GAAY,OAAO,WAAW,EAC9BC,GAAe,OAAO,cAAc,EACpCC,EAAK,OAAO,gBAAgB,EAC5BC,GAAM,OAAO,sBAAsB,EACnCC,GAAO,OAAO,MAAM,EACpBC,GAAW,OAAO,UAAU,EAC5BC,EAAS,OAAO,QAAQ,EACxBC,GAAQ,OAAO,OAAO,EACtBC,GAAQ,OAAO,OAAO,EACtBC,GAAa,OAAO,YAAY,EAChCC,GAAO,OAAO,MAAM,EACpBC,EAAQ,OAAO,OAAO,EACtBC,GAAe,OAAO,cAAc,EACpCC,GAAkB,OAAO,iBAAiB,EAC1CC,GAAc,OAAO,aAAa,EAClCC,GAAc,OAAO,aAAa,EAClCC,GAAgB,OAAO,eAAe,EACtCC,GAAY,OAAO,WAAW,EAC9BC,GAAe,OAAO,cAAc,EACpCC,GAAW,OAAO,UAAU,EAC5BC,GAAU,OAAO,SAAS,EAC1BC,GAAU,OAAO,SAAS,EAC1BC,GAAO,OAAO,QAAQ,EACtBC,GAAkB,OAAO,eAAe,EACxCC,GAAiB,OAAO,cAAc,EACtCC,GAAU,OAAO,QAAQ,EACzBC,GAAc,OAAO,aAAa,EAElCC,GAAO,IAAM,GAINC,GAAP,cAAsBC,EAAE,CAC5B,KACA,OACA,iBACA,OACA,OACA,KAEA,SAAiB,GACjB,SAAkB,GAElB,CAACtB,EAAK,EAAyD,CAAA,EAC/D,CAACD,CAAM,EACP,CAACP,EAAS,EACV,CAACD,EAAU,EACX,CAACD,CAAK,EAAW,QACjB,CAACO,EAAI,EAAY,GACjB,CAACF,CAAE,EACH,CAACC,EAAG,EACJ,CAACK,EAAK,EAAa,GACnB,CAACG,CAAK,EACN,CAACU,EAAO,EAAa,GACrB,CAACE,EAAe,EAChB,CAACC,EAAc,EAAa,GAC5B,CAACC,EAAO,EAAa,GACrB,CAACL,EAAO,EAAa,GACrB,CAACH,EAAS,EAAa,GACvB,CAACR,EAAU,EAAa,GAExB,YAAYqB,EAAkB,CAAA,EAAE,CAC9B,MAAK,EAEL,KAAK,KAAOA,EAAI,MAAQ,GAGxB,KAAK,GAAGR,GAAM,IAAK,EACb,KAAKzB,CAAK,IAAM,SAAW,KAAK0B,EAAe,IAAM,KAGvD,KAAK,KAAK,kBAAmB,6BAA6B,CAE9D,CAAC,EAEGO,EAAI,OACN,KAAK,GAAGR,GAAMQ,EAAI,MAAM,EAExB,KAAK,GAAGR,GAAM,IAAK,CACjB,KAAK,KAAK,WAAW,EACrB,KAAK,KAAK,QAAQ,EAClB,KAAK,KAAK,KAAK,CACjB,CAAC,EAGH,KAAK,OAAS,CAAC,CAACQ,EAAI,OACpB,KAAK,iBAAmBA,EAAI,kBAAoBrC,GAChD,KAAK,OAAS,OAAOqC,EAAI,QAAW,WAAaA,EAAI,OAASH,GAI9D,IAAMI,EACJD,EAAI,OACHA,EAAI,KAAK,SAAS,SAAS,GAAKA,EAAI,KAAK,SAAS,MAAM,GAG3D,KAAK,OACH,EAAEA,EAAI,MAAQA,EAAI,OAASA,EAAI,SAAW,OAAYA,EAAI,OACxDC,EAAQ,OACR,GAIJ,IAAMC,EACJF,EAAI,OACHA,EAAI,KAAK,SAAS,UAAU,GAAKA,EAAI,KAAK,SAAS,OAAO,GAC7D,KAAK,KACH,EAAEA,EAAI,MAAQA,EAAI,SAAWA,EAAI,OAAS,OAAYA,EAAI,KACxDE,EAAS,GACT,OAGJ,KAAK,GAAG,MAAO,IAAM,KAAKN,EAAW,EAAC,CAAE,EAEpC,OAAOI,EAAI,QAAW,YACxB,KAAK,GAAG,OAAQA,EAAI,MAAM,EAExB,OAAOA,EAAI,aAAgB,YAC7B,KAAK,GAAG,QAASA,EAAI,WAAW,CAEpC,CAEA,KAAKG,EAAcC,EAAyBC,EAAiB,CAAA,EAAE,CAC7DC,GAAW,KAAMH,EAAMC,EAASC,CAAI,CACtC,CAEA,CAACnB,EAAa,EAAEqB,EAAeC,EAAgB,CACzC,KAAKf,EAAe,IAAM,SAC5B,KAAKA,EAAe,EAAI,IAE1B,IAAIgB,EACJ,GAAI,CACFA,EAAS,IAAIC,EAAOH,EAAOC,EAAU,KAAKpC,CAAE,EAAG,KAAKC,EAAG,CAAC,CAC1D,OAASsC,EAAI,CACX,OAAO,KAAK,KAAK,oBAAqBA,CAAW,CACnD,CAEA,GAAIF,EAAO,UACL,KAAKf,EAAc,GACrB,KAAKC,EAAO,EAAI,GAEZ,KAAK5B,CAAK,IAAM,UAClB,KAAKA,CAAK,EAAI,UAEhB,KAAKa,EAAI,EAAE,KAAK,IAEhB,KAAKc,EAAc,EAAI,GACvB,KAAKd,EAAI,EAAE,WAAW,WAGxB,KAAKc,EAAc,EAAI,GACnB,CAACe,EAAO,WACV,KAAK,KAAK,oBAAqB,mBAAoB,CAAE,OAAAA,CAAM,CAAE,UACpD,CAACA,EAAO,KACjB,KAAK,KAAK,oBAAqB,mBAAoB,CAAE,OAAAA,CAAM,CAAE,MACxD,CACL,IAAMG,EAAOH,EAAO,KACpB,GAAI,oBAAoB,KAAKG,CAAI,GAAK,CAACH,EAAO,SAC5C,KAAK,KAAK,oBAAqB,oBAAqB,CAClD,OAAAA,EACD,UAED,CAAC,oBAAoB,KAAKG,CAAI,GAC9B,CAAC,4BAA4B,KAAKA,CAAI,GACtCH,EAAO,SAEP,KAAK,KAAK,oBAAqB,qBAAsB,CACnD,OAAAA,EACD,MACI,CACL,IAAMI,EAAS,KAAK7C,EAAU,EAAI,IAAI8C,GACpCL,EACA,KAAKrC,CAAE,EACP,KAAKC,EAAG,CAAC,EAKX,GAAI,CAAC,KAAKoB,EAAe,EACvB,GAAIoB,EAAM,OAAQ,CAEhB,IAAME,EAAQ,IAAK,CACZF,EAAM,UACT,KAAKpB,EAAe,EAAI,GAE5B,EACAoB,EAAM,GAAG,MAAOE,CAAK,CACvB,MACE,KAAKtB,EAAe,EAAI,GAIxBoB,EAAM,KACJA,EAAM,KAAO,KAAK,kBACpBA,EAAM,OAAS,GACf,KAAKjC,EAAI,EAAE,eAAgBiC,CAAK,EAChC,KAAK9C,CAAK,EAAI,SACd8C,EAAM,OAAM,GACHA,EAAM,KAAO,IACtB,KAAKvC,EAAI,EAAI,GACbuC,EAAM,GAAG,OAAQG,GAAM,KAAK1C,EAAI,GAAK0C,CAAE,EACvC,KAAKjD,CAAK,EAAI,SAGhB,KAAKK,CAAE,EAAI,OACXyC,EAAM,OAASA,EAAM,QAAU,CAAC,KAAK,OAAOA,EAAM,KAAMA,CAAK,EAEzDA,EAAM,QAER,KAAKjC,EAAI,EAAE,eAAgBiC,CAAK,EAChC,KAAK9C,CAAK,EAAI8C,EAAM,OAAS,SAAW,SACxCA,EAAM,OAAM,IAERA,EAAM,OACR,KAAK9C,CAAK,EAAI,QAEd,KAAKA,CAAK,EAAI,SACd8C,EAAM,IAAG,GAGN,KAAK5C,EAAS,EAIjB,KAAKQ,EAAK,EAAE,KAAKoC,CAAK,GAHtB,KAAKpC,EAAK,EAAE,KAAKoC,CAAK,EACtB,KAAK3C,EAAS,EAAC,IAMvB,CACF,CAEJ,CAEA,CAAC0B,EAAW,GAAC,CACX,eAAe,IAAM,KAAK,KAAK,OAAO,CAAC,CACzC,CAEA,CAACzB,EAAY,EAAE0C,EAAuD,CACpE,IAAII,EAAK,GAET,GAAI,CAACJ,EACH,KAAK5C,EAAS,EAAI,OAClBgD,EAAK,WACI,MAAM,QAAQJ,CAAK,EAAG,CAC/B,GAAM,CAACK,EAAI,GAAGC,CAAI,EAAyCN,EAC3D,KAAK,KAAKK,EAAI,GAAGC,CAAI,CACvB,MACE,KAAKlD,EAAS,EAAI4C,EAClB,KAAK,KAAK,QAASA,CAAK,EACnBA,EAAM,aACTA,EAAM,GAAG,MAAO,IAAM,KAAK3C,EAAS,EAAC,CAAE,EACvC+C,EAAK,IAIT,OAAOA,CACT,CAEA,CAAC/C,EAAS,GAAC,CACT,EAAG,OAAU,KAAKC,EAAY,EAAE,KAAKM,EAAK,EAAE,MAAK,CAAE,GAEnD,GAAI,KAAKA,EAAK,EAAE,SAAW,EAAG,CAQ5B,IAAM2C,EAAK,KAAKnD,EAAS,EACR,CAACmD,GAAMA,EAAG,SAAWA,EAAG,OAASA,EAAG,OAE9C,KAAK9B,EAAO,GACf,KAAK,KAAK,OAAO,EAGnB8B,EAAG,KAAK,QAAS,IAAM,KAAK,KAAK,OAAO,CAAC,CAE7C,CACF,CAEA,CAACpC,EAAW,EAAEuB,EAAeC,EAAgB,CAE3C,IAAMK,EAAQ,KAAK7C,EAAU,EAE7B,GAAI,CAAC6C,EACH,MAAM,IAAI,MAAM,yCAAyC,EAE3D,IAAMQ,EAAKR,EAAM,aAAe,EAE1BG,EACJK,GAAMd,EAAM,QAAUC,IAAa,EACjCD,EACAA,EAAM,SAASC,EAAUA,EAAWa,CAAE,EAE1C,OAAAR,EAAM,MAAMG,CAAC,EAERH,EAAM,cACT,KAAK9C,CAAK,EAAI,SACd,KAAKC,EAAU,EAAI,OACnB6C,EAAM,IAAG,GAGJG,EAAE,MACX,CAEA,CAAC/B,EAAW,EAAEsB,EAAeC,EAAgB,CAC3C,IAAMK,EAAQ,KAAK7C,EAAU,EACvBsD,EAAM,KAAKtC,EAAW,EAAEuB,EAAOC,CAAQ,EAG7C,MAAI,CAAC,KAAKxC,EAAU,GAAK6C,GACvB,KAAKtC,EAAQ,EAAEsC,CAAK,EAGfS,CACT,CAEA,CAAC1C,EAAI,EAAEsC,EAAqBb,EAAgBkB,EAAe,CACrD,KAAK9C,EAAK,EAAE,SAAW,GAAK,CAAC,KAAKR,EAAS,EAC7C,KAAK,KAAKiD,EAAIb,EAAMkB,CAAK,EAEzB,KAAK9C,EAAK,EAAE,KAAK,CAACyC,EAAIb,EAAMkB,CAAK,CAAC,CAEtC,CAEA,CAAChD,EAAQ,EAAEsC,EAAgB,CAEzB,OADA,KAAKjC,EAAI,EAAE,OAAQ,KAAKN,EAAI,CAAC,EACrBuC,EAAM,KAAM,CAClB,IAAK,iBACL,IAAK,oBACH,KAAKzC,CAAE,EAAIoD,GAAI,MAAM,KAAKlD,EAAI,EAAG,KAAKF,CAAE,EAAG,EAAK,EAChD,MAEF,IAAK,uBACH,KAAKC,EAAG,EAAImD,GAAI,MAAM,KAAKlD,EAAI,EAAG,KAAKD,EAAG,EAAG,EAAI,EACjD,MAEF,IAAK,sBACL,IAAK,iBAAkB,CACrB,IAAMoD,EAAK,KAAKrD,CAAE,GAAK,OAAO,OAAO,IAAI,EACzC,KAAKA,CAAE,EAAIqD,EACXA,EAAG,KAAO,KAAKnD,EAAI,EAAE,QAAQ,OAAQ,EAAE,EACvC,KACF,CAEA,IAAK,0BAA2B,CAC9B,IAAMmD,EAAK,KAAKrD,CAAE,GAAK,OAAO,OAAO,IAAI,EACzC,KAAKA,CAAE,EAAIqD,EACXA,EAAG,SAAW,KAAKnD,EAAI,EAAE,QAAQ,OAAQ,EAAE,EAC3C,KACF,CAGA,QACE,MAAM,IAAI,MAAM,iBAAmBuC,EAAM,IAAI,CAEjD,CACF,CAEA,MAAMa,EAAY,CAChB,KAAKnC,EAAO,EAAI,GAChB,KAAK,KAAK,QAASmC,CAAK,EAExB,KAAK,KAAK,YAAaA,EAAO,CAAE,YAAa,EAAK,CAAE,CACtD,CAWA,MACEnB,EACAoB,EACAC,EAAkB,CAalB,GAXI,OAAOD,GAAa,aACtBC,EAAKD,EACLA,EAAW,QAET,OAAOpB,GAAU,WACnBA,EAAQ,OAAO,KACbA,EAEA,OAAOoB,GAAa,SAAWA,EAAW,MAAM,GAGhD,KAAKpC,EAAO,EAEd,OAAAqC,IAAI,EACG,GAOT,IAFE,KAAK/C,CAAK,IAAM,QACf,KAAK,SAAW,QAAa,KAAKA,CAAK,IAAM,KAC/B0B,EAAO,CAKtB,GAJI,KAAK/B,CAAM,IACb+B,EAAQ,OAAO,OAAO,CAAC,KAAK/B,CAAM,EAAG+B,CAAK,CAAC,EAC3C,KAAK/B,CAAM,EAAI,QAEb+B,EAAM,OAASzC,GACjB,YAAKU,CAAM,EAAI+B,EAEfqB,IAAI,EACG,GAIT,QACMC,EAAI,EACR,KAAKhD,CAAK,IAAM,QAAagD,EAAIjE,GAAW,OAC5CiE,IAEItB,EAAMsB,CAAC,IAAMjE,GAAWiE,CAAC,IAC3B,KAAKhD,CAAK,EAAI,IAKlB,IAAIiD,EAAS,GACb,GAAI,KAAKjD,CAAK,IAAM,IAAS,KAAK,OAAS,GAAO,CAChDiD,EAAS,GACT,QAASD,EAAI,EAAGA,EAAIhE,GAAW,OAAQgE,IACrC,GAAItB,EAAMsB,CAAC,IAAMhE,GAAWgE,CAAC,EAAG,CAC9BC,EAAS,GACT,KACF,CAEJ,CAEA,IAAMC,EAAc,KAAK,SAAW,QAAa,CAACD,EAClD,GAAI,KAAKjD,CAAK,IAAM,IAASkD,EAK3B,GAAIxB,EAAM,OAAS,IACjB,GAAI,KAAK7B,EAAK,EACZ,KAAK,OAAS,OAEd,aAAKF,CAAM,EAAI+B,EAEfqB,IAAI,EACG,OAKT,IAAI,CACF,IAAIlB,EAAOH,EAAM,SAAS,EAAG,GAAG,CAAC,EACjC,KAAK,OAAS,EAChB,MAAY,CACV,KAAK,OAAS,EAChB,CAIJ,GACE,KAAK1B,CAAK,IAAM,QACf,KAAKA,CAAK,IAAM,KAAU,KAAK,QAAUiD,GAC1C,CACA,IAAME,EAAQ,KAAKtD,EAAK,EACxB,KAAKA,EAAK,EAAI,GACd,KAAKG,CAAK,EACR,KAAKA,CAAK,IAAM,OAAY,IAAIoD,GAAM,CAAA,CAAE,EACtCH,EAAS,IAAII,GAAe,CAAA,CAAE,EAC9B,IAAIC,GAAiB,CAAA,CAAE,EAC3B,KAAKtD,CAAK,EAAE,GAAG,OAAQ0B,GAAS,KAAKzB,EAAY,EAAEyB,CAAK,CAAC,EACzD,KAAK1B,CAAK,EAAE,GAAG,QAAS8B,GAAM,KAAK,MAAMA,CAAW,CAAC,EACrD,KAAK9B,CAAK,EAAE,GAAG,MAAO,IAAK,CACzB,KAAKH,EAAK,EAAI,GACd,KAAKI,EAAY,EAAC,CACpB,CAAC,EACD,KAAKQ,EAAO,EAAI,GAChB,IAAMgC,EAAM,CAAC,CAAC,KAAKzC,CAAK,EAAEmD,EAAQ,MAAQ,OAAO,EAAEzB,CAAK,EACxD,YAAKjB,EAAO,EAAI,GAChBsC,IAAI,EACGN,CACT,CACF,CAEA,KAAKhC,EAAO,EAAI,GACZ,KAAKT,CAAK,EACZ,KAAKA,CAAK,EAAE,MAAM0B,CAAK,EAEvB,KAAKzB,EAAY,EAAEyB,CAAK,EAE1B,KAAKjB,EAAO,EAAI,GAGhB,IAAMgC,EACJ,KAAK7C,EAAK,EAAE,OAAS,EAAI,GACvB,KAAKR,EAAS,EAAI,KAAKA,EAAS,EAAE,QAClC,GAGJ,MAAI,CAACqD,GAAO,KAAK7C,EAAK,EAAE,SAAW,GACjC,KAAKR,EAAS,GAAG,KAAK,QAAS,IAAM,KAAK,KAAK,OAAO,CAAC,EAIzD2D,IAAI,EACGN,CACT,CAEA,CAAClC,EAAY,EAAE4B,EAAS,CAClBA,GAAK,CAAC,KAAKzB,EAAO,IACpB,KAAKf,CAAM,EAAI,KAAKA,CAAM,EAAI,OAAO,OAAO,CAAC,KAAKA,CAAM,EAAGwC,CAAC,CAAC,EAAIA,EAErE,CAEA,CAAC3B,EAAQ,GAAC,CACR,GACE,KAAKX,EAAK,GACV,CAAC,KAAKC,EAAU,GAChB,CAAC,KAAKY,EAAO,GACb,CAAC,KAAKJ,EAAS,EACf,CACA,KAAKR,EAAU,EAAI,GACnB,IAAMkC,EAAQ,KAAK7C,EAAU,EAC7B,GAAI6C,GAASA,EAAM,YAAa,CAE9B,IAAMuB,EAAO,KAAK5D,CAAM,EAAI,KAAKA,CAAM,EAAE,OAAS,EAClD,KAAK,KACH,kBACA,2BAA2BqC,EAAM,WAAW,qBAAqBuB,CAAI,cACrE,CAAE,MAAAvB,CAAK,CAAE,EAEP,KAAKrC,CAAM,GACbqC,EAAM,MAAM,KAAKrC,CAAM,CAAC,EAE1BqC,EAAM,IAAG,CACX,CACA,KAAKjC,EAAI,EAAEY,EAAI,CACjB,CACF,CAEA,CAACV,EAAY,EAAEyB,EAAc,CAC3B,GAAI,KAAKpB,EAAS,GAAKoB,EACrB,KAAKnB,EAAY,EAAEmB,CAAK,UACf,CAACA,GAAS,CAAC,KAAK/B,CAAM,EAC/B,KAAKa,EAAQ,EAAC,UACLkB,EAAO,CAEhB,GADA,KAAKpB,EAAS,EAAI,GACd,KAAKX,CAAM,EAAG,CAChB,KAAKY,EAAY,EAAEmB,CAAK,EACxB,IAAMS,EAAI,KAAKxC,CAAM,EACrB,KAAKA,CAAM,EAAI,OACf,KAAKO,EAAe,EAAEiC,CAAC,CACzB,MACE,KAAKjC,EAAe,EAAEwB,CAAK,EAG7B,KACE,KAAK/B,CAAM,GACV,KAAKA,CAAM,GAAc,QAAU,KACpC,CAAC,KAAKe,EAAO,GACb,CAAC,KAAKI,EAAO,GACb,CACA,IAAMqB,EAAI,KAAKxC,CAAM,EACrB,KAAKA,CAAM,EAAI,OACf,KAAKO,EAAe,EAAEiC,CAAC,CACzB,CACA,KAAK7B,EAAS,EAAI,EACpB,EAEI,CAAC,KAAKX,CAAM,GAAK,KAAKE,EAAK,IAC7B,KAAKW,EAAQ,EAAC,CAElB,CAEA,CAACN,EAAe,EAAEwB,EAAa,CAG7B,IAAIC,EAAW,EACT6B,EAAS9B,EAAM,OACrB,KAAOC,EAAW,KAAO6B,GAAU,CAAC,KAAK9C,EAAO,GAAK,CAAC,KAAKI,EAAO,GAChE,OAAQ,KAAK5B,CAAK,EAAG,CACnB,IAAK,QACL,IAAK,SACH,KAAKmB,EAAa,EAAEqB,EAAOC,CAAQ,EACnCA,GAAY,IACZ,MAEF,IAAK,SACL,IAAK,OACHA,GAAY,KAAKxB,EAAW,EAAEuB,EAAOC,CAAQ,EAC7C,MAEF,IAAK,OACHA,GAAY,KAAKvB,EAAW,EAAEsB,EAAOC,CAAQ,EAC7C,MAGF,QACE,MAAM,IAAI,MAAM,kBAAoB,KAAKzC,CAAK,CAAC,CAEnD,CAGEyC,EAAW6B,IACb,KAAK7D,CAAM,EACT,KAAKA,CAAM,EACT,OAAO,OAAO,CAAC+B,EAAM,SAASC,CAAQ,EAAG,KAAKhC,CAAM,CAAC,CAAC,EACtD+B,EAAM,SAASC,CAAQ,EAE/B,CAKA,IACED,EACAoB,EACAC,EAAe,CAEf,OAAI,OAAOrB,GAAU,aACnBqB,EAAKrB,EACLoB,EAAW,OACXpB,EAAQ,QAEN,OAAOoB,GAAa,aACtBC,EAAKD,EACLA,EAAW,QAET,OAAOpB,GAAU,WACnBA,EAAQ,OAAO,KAAKA,EAAOoB,CAAQ,GAEjCC,GAAI,KAAK,KAAK,SAAUA,CAAE,EACzB,KAAKrC,EAAO,IACX,KAAKV,CAAK,GAER0B,GAAO,KAAK1B,CAAK,EAAE,MAAM0B,CAAK,EAElC,KAAK1B,CAAK,EAAE,IAAG,IAEf,KAAKH,EAAK,EAAI,IACV,KAAK,SAAW,QAAa,KAAK,OAAS,UAC7C6B,EAAQA,GAAS,OAAO,MAAM,CAAC,GAC7BA,GAAO,KAAK,MAAMA,CAAK,EAC3B,KAAKlB,EAAQ,EAAC,IAGX,IACT,GU3qBK,IAAMiD,GAAwBC,GAAe,CAClD,IAAIC,EAAID,EAAI,OAAS,EACjBE,EAAe,GACnB,KAAOD,EAAI,IAAMD,EAAI,OAAOC,CAAC,IAAM,KACjCC,EAAeD,EACfA,IAEF,OAAOC,IAAiB,GAAKF,EAAMA,EAAI,MAAM,EAAGE,CAAY,CAC9D,EbCA,IAAMC,GAAuBC,GAAmB,CAC9C,IAAMC,EAAcD,EAAI,YACxBA,EAAI,YACFC,EACE,GAAI,CACFA,EAAY,CAAC,EACb,EAAE,OAAM,CACV,EACA,GAAK,EAAE,OAAM,CACnB,EAIaC,GAAc,CAACF,EAAiBG,IAAmB,CAC9D,IAAMC,EAAM,IAAI,IACdD,EAAM,IAAIE,GAAK,CAACC,GAAqBD,CAAC,EAAG,EAAI,CAAC,CAAC,EAE3CE,EAASP,EAAI,OAEbQ,EAAS,CAACC,EAAcC,EAAY,KAAe,CACvD,IAAMC,EAAOD,GAAKE,GAAMH,CAAI,EAAE,MAAQ,IAClCI,EACJ,GAAIJ,IAASE,EAAME,EAAM,OACpB,CACH,IAAMC,EAAIV,EAAI,IAAIK,CAAI,EACtBI,EAAMC,IAAM,OAAYA,EAAIN,EAAOO,GAAQN,CAAI,EAAGE,CAAI,CACxD,CAEA,OAAAP,EAAI,IAAIK,EAAMI,CAAG,EACVA,CACT,EAEAb,EAAI,OACFO,EACE,CAACE,EAAMO,IACLT,EAAOE,EAAMO,CAAK,GAAKR,EAAOF,GAAqBG,CAAI,CAAC,EAC1DA,GAAQD,EAAOF,GAAqBG,CAAI,CAAC,CAC/C,EAEMQ,GAAgBjB,GAA2B,CAC/C,IAAMkB,EAAI,IAAIC,GAAOnB,CAAG,EAClBS,EAAOT,EAAI,KACboB,EACJ,GAAI,CACFA,EAAKC,GAAG,SAASZ,EAAM,GAAG,EAC1B,IAAMa,EAAiBD,GAAG,UAAUD,CAAE,EAChCG,EAAmBvB,EAAI,aAAe,GAAK,KAAO,KACxD,GAAIsB,EAAK,KAAOC,EAAU,CACxB,IAAMC,EAAM,OAAO,YAAYF,EAAK,IAAI,EAClCG,EAAOJ,GAAG,SAASD,EAAII,EAAK,EAAGF,EAAK,KAAM,CAAC,EACjDJ,EAAE,IAAIO,IAASD,EAAI,WAAaA,EAAMA,EAAI,SAAS,EAAGC,CAAI,CAAC,CAC7D,KAAO,CACL,IAAIC,EAAM,EACJF,EAAM,OAAO,YAAYD,CAAQ,EACvC,KAAOG,EAAMJ,EAAK,MAAM,CACtB,IAAMK,EAAYN,GAAG,SAASD,EAAII,EAAK,EAAGD,EAAUG,CAAG,EACvD,GAAIC,IAAc,EAAG,MACrBD,GAAOC,EACPT,EAAE,MAAMM,EAAI,SAAS,EAAGG,CAAS,CAAC,CACpC,CACAT,EAAE,IAAG,CACP,CACF,SACE,GAAI,OAAOE,GAAO,SAChB,GAAI,CACFC,GAAG,UAAUD,CAAE,CAEjB,MAAQ,CAAC,CAEb,CACF,EAEMQ,GAAW,CACf5B,EACA6B,IACiB,CACjB,IAAMjB,EAAQ,IAAIO,GAAOnB,CAAG,EACtBuB,EAAWvB,EAAI,aAAe,GAAK,KAAO,KAE1CS,EAAOT,EAAI,KAkBjB,OAjBU,IAAI,QAAc,CAAC8B,EAASC,IAAU,CAC9CnB,EAAM,GAAG,QAASmB,CAAM,EACxBnB,EAAM,GAAG,MAAOkB,CAAO,EAEvBT,GAAG,KAAKZ,EAAM,CAACuB,EAAIV,IAAQ,CACzB,GAAIU,EACFD,EAAOC,CAAE,MACJ,CACL,IAAMC,EAAS,IAAQC,GAAWzB,EAAM,CACtC,SAAUc,EACV,KAAMD,EAAK,KACZ,EACDW,EAAO,GAAG,QAASF,CAAM,EACzBE,EAAO,KAAKrB,CAAK,CACnB,CACF,CAAC,CACH,CAAC,CAEH,EAEauB,GAAOC,EAClBnB,GACAW,GACA5B,GAAO,IAAImB,GAAOnB,CAAG,EACrBA,GAAO,IAAImB,GAAOnB,CAAG,EACrB,CAACA,EAAKG,IAAS,CACTA,GAAO,QAAQD,GAAYF,EAAKG,CAAK,EACpCH,EAAI,UAAUD,GAAoBC,CAAG,CAC5C,CAAC,EchHH,OAAOqC,OAAwB,KCT/B,OAAOC,MAAwB,KAE/B,OAAOC,OAAU,OCFV,IAAMC,GAAU,CACrBC,EACAC,EACAC,KAEAF,GAAQ,KAOJE,IACFF,GAAQA,EAAO,KAAS,KAItBC,IACED,EAAO,MACTA,GAAQ,IAENA,EAAO,KACTA,GAAQ,GAENA,EAAO,IACTA,GAAQ,IAGLA,GC3BT,OAAS,SAAAG,OAAa,YACtB,GAAM,CAAE,WAAAC,GAAY,MAAAC,EAAK,EAAKF,GAQjBG,GAAqBC,GAAkC,CAClE,IAAIC,EAAI,GAEJC,EAASJ,GAAME,CAAI,EACvB,KAAOH,GAAWG,CAAI,GAAKE,EAAO,MAAM,CAGtC,IAAMC,EACJH,EAAK,OAAO,CAAC,IAAM,KAAOA,EAAK,MAAM,EAAG,CAAC,IAAM,OAC7C,IACAE,EAAO,KACXF,EAAOA,EAAK,MAAMG,EAAK,MAAM,EAC7BF,GAAKE,EACLD,EAASJ,GAAME,CAAI,CACrB,CACA,MAAO,CAACC,EAAGD,CAAI,CACjB,ECvBA,IAAMI,GAAM,CAAC,IAAK,IAAK,IAAK,IAAK,GAAG,EAE9BC,GAAMD,GAAI,IAAIE,GAClB,OAAO,cAAc,MAAS,OAAOA,EAAK,YAAY,CAAC,CAAC,CAAC,CAAC,EAGtDC,GAAQ,IAAI,IAAIH,GAAI,IAAI,CAACE,EAAME,IAAM,CAACF,EAAMD,GAAIG,CAAC,CAAC,CAAC,CAAC,EACpDC,GAAQ,IAAI,IAAIJ,GAAI,IAAI,CAACC,EAAME,IAAM,CAACF,EAAMF,GAAII,CAAC,CAAC,CAAC,CAAC,EAE7CE,GAAU,GACrBN,GAAI,OAAO,CAACO,EAAGC,IAAMD,EAAE,MAAMC,CAAC,EAAE,KAAKL,GAAM,IAAIK,CAAC,CAAC,EAAG,CAAC,EAC1CC,GAAU,GACrBR,GAAI,OAAO,CAACM,EAAGC,IAAMD,EAAE,MAAMC,CAAC,EAAE,KAAKH,GAAM,IAAIG,CAAC,CAAC,EAAG,CAAC,EHMvD,IAAME,GAAa,CAACC,EAAcC,IAC3BA,GAGLD,EAAOE,EAAqBF,CAAI,EAAE,QAAQ,YAAa,EAAE,EAClDG,GAAqBF,CAAM,EAAI,IAAMD,GAHnCE,EAAqBF,CAAI,EAM9BI,GAAc,GAAK,KAAO,KAE1BC,GAAU,OAAO,SAAS,EAC1BC,GAAO,OAAO,MAAM,EACpBC,GAAY,OAAO,WAAW,EAC9BC,GAAU,OAAO,SAAS,EAC1BC,GAAW,OAAO,UAAU,EAC5BC,GAAS,OAAO,QAAQ,EACxBC,GAAO,OAAO,MAAM,EACpBC,GAAQ,OAAO,OAAO,EACtBC,GAAU,OAAO,SAAS,EAC1BC,GAAS,OAAO,QAAQ,EACxBC,GAAa,OAAO,YAAY,EAChCC,GAAW,OAAO,UAAU,EAC5BC,GAAa,OAAO,YAAY,EAChCC,GAAQ,OAAO,OAAO,EACtBC,GAAO,OAAO,MAAM,EACpBC,GAAa,OAAO,YAAY,EAChCC,GAAU,OAAO,SAAS,EAC1BC,EAAS,OAAO,QAAQ,EAEjBC,GAAP,cACIC,CAAoD,CAG5D,KACA,SACA,MAAiB,QAAQ,QAAU,QAAQ,OAAM,GAAO,EAExD,OAAiB,QAAQ,IAAI,MAAQ,GACrC,YACA,UACA,UACA,cACA,IACA,OACA,MACA,MACA,QACA,OACA,GAEA,SAAmB,EACnB,YAAsB,EACtB,IACA,IAAc,EACd,OAAiB,EACjB,OAAiB,EACjB,OAAiB,EAEjB,MACA,SAEA,OACA,KACA,SACA,KACA,aAEAC,GAAqB,GAErB,YAAYC,EAAWC,EAA8B,CAAA,EAAE,CACrD,IAAMC,EAAMC,GAAQF,CAAI,EACxB,MAAK,EACL,KAAK,KAAOzB,EAAqBwB,CAAC,EAElC,KAAK,SAAW,CAAC,CAACE,EAAI,SACtB,KAAK,YAAcA,EAAI,aAAexB,GACtC,KAAK,UAAYwB,EAAI,WAAa,IAAI,IACtC,KAAK,UAAYA,EAAI,WAAa,IAAI,IACtC,KAAK,cAAgB,CAAC,CAACA,EAAI,cAC3B,KAAK,IAAM1B,EAAqB0B,EAAI,KAAO,QAAQ,IAAG,CAAE,EACxD,KAAK,OAAS,CAAC,CAACA,EAAI,OACpB,KAAK,MAAQ,CAAC,CAACA,EAAI,MACnB,KAAK,QAAU,CAAC,CAACA,EAAI,QACrB,KAAK,MAAQA,EAAI,MACjB,KAAK,OAASA,EAAI,OAAS1B,EAAqB0B,EAAI,MAAM,EAAI,OAC9D,KAAK,aAAeA,EAAI,aAEpB,OAAOA,EAAI,QAAW,YACxB,KAAK,GAAG,OAAQA,EAAI,MAAM,EAG5B,IAAIE,EAA6B,GACjC,GAAI,CAAC,KAAK,cAAe,CACvB,GAAM,CAACC,EAAMC,CAAQ,EAAIC,GAAkB,KAAK,IAAI,EAChDF,GAAQ,OAAOC,GAAa,WAC9B,KAAK,KAAOA,EACZF,EAAWC,EAEf,CAEA,KAAK,MAAQ,CAAC,CAACH,EAAI,OAAS,QAAQ,WAAa,QAC7C,KAAK,QAGP,KAAK,KAAgBM,GAAO,KAAK,KAAK,WAAW,MAAO,GAAG,CAAC,EAC5DR,EAAIA,EAAE,WAAW,MAAO,GAAG,GAG7B,KAAK,SAAWxB,EACd0B,EAAI,UAAY5B,GAAK,QAAQ,KAAK,IAAK0B,CAAC,CAAC,EAGvC,KAAK,OAAS,KAChB,KAAK,KAAO,MAGVI,GACF,KAAK,KACH,iBACA,aAAaA,CAAQ,sBACrB,CACE,MAAO,KACP,KAAMA,EAAW,KAAK,KACvB,EAIL,IAAMK,EAAK,KAAK,UAAU,IAAI,KAAK,QAAQ,EACvCA,EACF,KAAKtB,EAAO,EAAEsB,CAAE,EAEhB,KAAKvB,EAAK,EAAC,CAEf,CAEA,KAAKwB,EAAcC,EAAyBC,EAAiB,CAAA,EAAE,CAC7D,OAAOC,GAAW,KAAMH,EAAMC,EAASC,CAAI,CAC7C,CAEA,KAAKE,KAAwBF,EAAe,CAC1C,OAAIE,IAAO,UACT,KAAKf,GAAY,IAEZ,MAAM,KAAKe,EAAI,GAAGF,CAAI,CAC/B,CAEA,CAAC1B,EAAK,GAAC,CACL6B,EAAG,MAAM,KAAK,SAAU,CAACC,EAAIC,IAAQ,CACnC,GAAID,EACF,OAAO,KAAK,KAAK,QAASA,CAAE,EAE9B,KAAK7B,EAAO,EAAE8B,CAAI,CACpB,CAAC,CACH,CAEA,CAAC9B,EAAO,EAAE8B,EAAW,CACnB,KAAK,UAAU,IAAI,KAAK,SAAUA,CAAI,EACtC,KAAK,KAAOA,EACPA,EAAK,OAAM,IACdA,EAAK,KAAO,GAEd,KAAK,KAAOC,GAAQD,CAAI,EACxB,KAAK,KAAK,OAAQA,CAAI,EACtB,KAAKtC,EAAO,EAAC,CACf,CAEA,CAACA,EAAO,GAAC,CACP,OAAQ,KAAK,KAAM,CACjB,IAAK,OACH,OAAO,KAAKC,EAAI,EAAC,EACnB,IAAK,YACH,OAAO,KAAKC,EAAS,EAAC,EACxB,IAAK,eACH,OAAO,KAAKC,EAAO,EAAC,EAEtB,QACE,OAAO,KAAK,IAAG,CACnB,CACF,CAEA,CAACW,EAAI,EAAE0B,EAAY,CACjB,OAAOC,GAAQD,EAAM,KAAK,OAAS,YAAa,KAAK,QAAQ,CAC/D,CAEA,CAACvB,CAAM,EAAEtB,EAAY,CACnB,OAAOD,GAAWC,EAAM,KAAK,MAAM,CACrC,CAEA,CAACU,EAAM,GAAC,CAEN,GAAI,CAAC,KAAK,KACR,MAAM,IAAI,MAAM,iCAAiC,EAI/C,KAAK,OAAS,aAAe,KAAK,WACpC,KAAK,QAAU,IAGjB,KAAK,eAAe,IAAI,EACxB,KAAK,OAAS,IAAIqC,EAAO,CACvB,KAAM,KAAKzB,CAAM,EAAE,KAAK,IAAI,EAE5B,SACE,KAAK,OAAS,QAAU,KAAK,WAAa,OACxC,KAAKA,CAAM,EAAE,KAAK,QAAQ,EAC1B,KAAK,SAGT,KAAM,KAAKH,EAAI,EAAE,KAAK,KAAK,IAAI,EAC/B,IAAK,KAAK,SAAW,OAAY,KAAK,KAAK,IAC3C,IAAK,KAAK,SAAW,OAAY,KAAK,KAAK,IAC3C,KAAM,KAAK,KAAK,KAChB,MAAO,KAAK,QAAU,OAAY,KAAK,OAAS,KAAK,KAAK,MAE1D,KAAM,KAAK,OAAS,cAAgB,OAAY,KAAK,KACrD,MACE,KAAK,SAAW,OACd,KAAK,KAAK,MAAQ,KAAK,MAAQ,KAAK,OACpC,GACJ,MAAO,KAAK,SAAW,OAAY,KAAK,KAAK,MAC7C,MAAO,KAAK,SAAW,OAAY,KAAK,KAAK,MAC9C,EAEG,KAAK,OAAO,OAAM,GAAM,CAAC,KAAK,OAChC,MAAM,MACJ,IAAI6B,GAAI,CACN,MAAO,KAAK,SAAW,OAAY,KAAK,OAAO,MAC/C,MAAO,KAAK,SAAW,OAAY,KAAK,OAAO,MAC/C,IAAK,KAAK,SAAW,OAAY,KAAK,OAAO,IAC7C,MACE,KAAK,QAAU,OAAY,KAAK,OAAS,KAAK,OAAO,MACvD,KAAM,KAAK1B,CAAM,EAAE,KAAK,IAAI,EAC5B,SACE,KAAK,OAAS,QAAU,KAAK,WAAa,OACxC,KAAKA,CAAM,EAAE,KAAK,QAAQ,EAC1B,KAAK,SACT,KAAM,KAAK,OAAO,KAClB,IAAK,KAAK,SAAW,OAAY,KAAK,OAAO,IAC7C,MAAO,KAAK,SAAW,OAAY,KAAK,OAAO,MAC/C,IAAK,KAAK,SAAW,OAAY,KAAK,KAAK,IAC3C,IAAK,KAAK,SAAW,OAAY,KAAK,KAAK,IAC3C,MAAO,KAAK,SAAW,OAAY,KAAK,KAAK,MAC9C,EAAE,OAAM,CAAE,EAGf,IAAM2B,EAAQ,KAAK,QAAQ,MAE3B,GAAI,CAACA,EACH,MAAM,IAAI,MAAM,yBAAyB,EAG3C,MAAM,MAAMA,CAAK,CACnB,CAEA,CAAC1C,EAAS,GAAC,CAET,GAAI,CAAC,KAAK,KACR,MAAM,IAAI,MAAM,4CAA4C,EAG1D,KAAK,KAAK,MAAM,EAAE,IAAM,MAC1B,KAAK,MAAQ,KAEf,KAAK,KAAK,KAAO,EACjB,KAAKG,EAAM,EAAC,EACZ,KAAK,IAAG,CACV,CAEA,CAACF,EAAO,GAAC,CACPiC,EAAG,SAAS,KAAK,SAAU,CAACC,EAAIQ,IAAY,CAC1C,GAAIR,EACF,OAAO,KAAK,KAAK,QAASA,CAAE,EAE9B,KAAK3B,EAAU,EAAEmC,CAAQ,CAC3B,CAAC,CACH,CAEA,CAACnC,EAAU,EAAEmC,EAAgB,CAC3B,KAAK,SAAWhD,EAAqBgD,CAAQ,EAC7C,KAAKxC,EAAM,EAAC,EACZ,KAAK,IAAG,CACV,CAEA,CAACD,EAAQ,EAAEyC,EAAgB,CAEzB,GAAI,CAAC,KAAK,KACR,MAAM,IAAI,MAAM,uCAAuC,EAGzD,KAAK,KAAO,OACZ,KAAK,SAAWhD,EAAqBF,GAAK,SAAS,KAAK,IAAKkD,CAAQ,CAAC,EACtE,KAAK,KAAK,KAAO,EACjB,KAAKxC,EAAM,EAAC,EACZ,KAAK,IAAG,CACV,CAEA,CAACJ,EAAI,GAAC,CAEJ,GAAI,CAAC,KAAK,KACR,MAAM,IAAI,MAAM,uCAAuC,EAGzD,GAAI,KAAK,KAAK,MAAQ,EAAG,CACvB,IAAM6C,EAAU,GAAG,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,GAAG,GAC3CD,EAAW,KAAK,UAAU,IAAIC,CAAO,EAC3C,GAAID,GAAU,QAAQ,KAAK,GAAG,IAAM,EAClC,OAAO,KAAKzC,EAAQ,EAAEyC,CAAQ,EAEhC,KAAK,UAAU,IAAIC,EAAS,KAAK,QAAQ,CAC3C,CAGA,GADA,KAAKzC,EAAM,EAAC,EACR,KAAK,KAAK,OAAS,EACrB,OAAO,KAAK,IAAG,EAGjB,KAAKM,EAAQ,EAAC,CAChB,CAEA,CAACA,EAAQ,GAAC,CACRyB,EAAG,KAAK,KAAK,SAAU,IAAK,CAACC,EAAIU,IAAM,CACrC,GAAIV,EACF,OAAO,KAAK,KAAK,QAASA,CAAE,EAE9B,KAAKzB,EAAU,EAAEmC,CAAE,CACrB,CAAC,CACH,CAEA,CAACnC,EAAU,EAAEmC,EAAU,CAErB,GADA,KAAK,GAAKA,EACN,KAAK3B,GACP,OAAO,KAAKP,EAAK,EAAC,EAGpB,GAAI,CAAC,KAAK,KACR,MAAM,IAAI,MAAM,uCAAuC,EAIzD,KAAK,SAAW,IAAM,KAAK,KAAK,KAAK,KAAK,KAAO,GAAG,EACpD,KAAK,YAAc,KAAK,SACxB,IAAMmC,EAAS,KAAK,IAAI,KAAK,SAAU,KAAK,WAAW,EACvD,KAAK,IAAM,OAAO,YAAYA,CAAM,EACpC,KAAK,OAAS,EACd,KAAK,IAAM,EACX,KAAK,OAAS,KAAK,KAAK,KACxB,KAAK,OAAS,KAAK,IAAI,OACvB,KAAK1C,EAAI,EAAC,CACZ,CAEA,CAACA,EAAI,GAAC,CACJ,GAAM,CAAE,GAAAyC,EAAI,IAAAE,EAAK,OAAAC,EAAQ,OAAAC,EAAQ,IAAAC,CAAG,EAAK,KACzC,GAAIL,IAAO,QAAaE,IAAQ,OAC9B,MAAM,IAAI,MAAM,wCAAwC,EAE1Db,EAAG,KAAKW,EAAIE,EAAKC,EAAQC,EAAQC,EAAK,CAACf,EAAIgB,IAAa,CACtD,GAAIhB,EAGF,OAAO,KAAKxB,EAAK,EAAE,IAAM,KAAK,KAAK,QAASwB,CAAE,CAAC,EAEjD,KAAK5B,EAAM,EAAE4C,CAAS,CACxB,CAAC,CACH,CAGA,CAACxC,EAAK,EACJyC,EAA6D,IAAK,CAAE,EAAC,CAGjE,KAAK,KAAO,QAAWlB,EAAG,MAAM,KAAK,GAAIkB,CAAE,CACjD,CAEA,CAAC7C,EAAM,EAAE4C,EAAiB,CACxB,GAAIA,GAAa,GAAK,KAAK,OAAS,EAAG,CACrC,IAAMhB,EAAK,OAAO,OAAO,IAAI,MAAM,4BAA4B,EAAG,CAChE,KAAM,KAAK,SACX,QAAS,OACT,KAAM,MACP,EACD,OAAO,KAAKxB,EAAK,EAAE,IAAM,KAAK,KAAK,QAASwB,CAAE,CAAC,CACjD,CAEA,GAAIgB,EAAY,KAAK,OAAQ,CAC3B,IAAMhB,EAAK,OAAO,OAChB,IAAI,MAAM,gCAAgC,EAC1C,CACE,KAAM,KAAK,SACX,QAAS,OACT,KAAM,MACP,EAEH,OAAO,KAAKxB,EAAK,EAAE,IAAM,KAAK,KAAK,QAASwB,CAAE,CAAC,CACjD,CAGA,GAAI,CAAC,KAAK,IACR,MAAM,IAAI,MAAM,6CAA6C,EAU/D,GAAIgB,IAAc,KAAK,OACrB,QACME,EAAIF,EACRE,EAAI,KAAK,QAAUF,EAAY,KAAK,YACpCE,IAEA,KAAK,IAAIA,EAAI,KAAK,MAAM,EAAI,EAC5BF,IACA,KAAK,SAIT,IAAMG,EACJ,KAAK,SAAW,GAAKH,IAAc,KAAK,IAAI,OAC1C,KAAK,IACL,KAAK,IAAI,SAAS,KAAK,OAAQ,KAAK,OAASA,CAAS,EAE1C,KAAK,MAAMG,CAAK,EAI9B,KAAKxC,EAAO,EAAC,EAFb,KAAKD,EAAU,EAAE,IAAM,KAAKC,EAAO,EAAC,CAAE,CAI1C,CAEA,CAACD,EAAU,EAAEuC,EAAiB,CAC5B,KAAK,KAAK,QAASA,CAAE,CACvB,CAQA,MACEE,EACAC,EACAH,EAAkB,CAelB,GAZI,OAAOG,GAAa,aACtBH,EAAKG,EACLA,EAAW,QAET,OAAOD,GAAU,WACnBA,EAAQ,OAAO,KACbA,EACA,OAAOC,GAAa,SAAWA,EAAW,MAAM,GAKhD,KAAK,YAAcD,EAAM,OAAQ,CACnC,IAAMnB,EAAK,OAAO,OAChB,IAAI,MAAM,iCAAiC,EAC3C,CACE,KAAM,KAAK,SACZ,EAEH,OAAO,KAAK,KAAK,QAASA,CAAE,CAC9B,CACA,YAAK,QAAUmB,EAAM,OACrB,KAAK,aAAeA,EAAM,OAC1B,KAAK,KAAOA,EAAM,OAClB,KAAK,QAAUA,EAAM,OACd,MAAM,MAAMA,EAAO,KAAMF,CAAE,CACpC,CAEA,CAACtC,EAAO,GAAC,CACP,GAAI,CAAC,KAAK,OACR,OAAI,KAAK,aACP,MAAM,MAAM,OAAO,MAAM,KAAK,WAAW,CAAC,EAErC,KAAKH,EAAK,EAAEwB,GAAOA,EAAK,KAAK,KAAK,QAASA,CAAE,EAAI,KAAK,IAAG,CAAG,EAIrE,GAAI,CAAC,KAAK,IACR,MAAM,IAAI,MAAM,gCAAgC,EAI9C,KAAK,QAAU,KAAK,SAGtB,KAAK,IAAM,OAAO,YAChB,KAAK,IAAI,KAAK,YAAa,KAAK,IAAI,MAAM,CAAC,EAE7C,KAAK,OAAS,GAEhB,KAAK,OAAS,KAAK,IAAI,OAAS,KAAK,OACrC,KAAK/B,EAAI,EAAC,CACZ,GAGWoD,GAAP,cAA8BxC,EAAU,CAC5C,KAAa,GAEb,CAACX,EAAK,GAAC,CACL,KAAKC,EAAO,EAAE4B,EAAG,UAAU,KAAK,QAAQ,CAAC,CAC3C,CAEA,CAACjC,EAAO,GAAC,CACP,KAAKO,EAAU,EAAE0B,EAAG,aAAa,KAAK,QAAQ,CAAC,CACjD,CAEA,CAACzB,EAAQ,GAAC,CACR,KAAKC,EAAU,EAAEwB,EAAG,SAAS,KAAK,SAAU,GAAG,CAAC,CAClD,CAEA,CAAC9B,EAAI,GAAC,CACJ,IAAIqD,EAAQ,GACZ,GAAI,CACF,GAAM,CAAE,GAAAZ,EAAI,IAAAE,EAAK,OAAAC,EAAQ,OAAAC,EAAQ,IAAAC,CAAG,EAAK,KAEzC,GAAIL,IAAO,QAAaE,IAAQ,OAC9B,MAAM,IAAI,MAAM,uCAAuC,EAGzD,IAAMI,EAAYjB,EAAG,SAASW,EAAIE,EAAKC,EAAQC,EAAQC,CAAG,EAC1D,KAAK3C,EAAM,EAAE4C,CAAS,EACtBM,EAAQ,EACV,SAGE,GAAIA,EACF,GAAI,CACF,KAAK9C,EAAK,EAAE,IAAK,CAAE,CAAC,CACtB,MAAQ,CAAC,CAEb,CACF,CAEA,CAACE,EAAU,EAAEuC,EAAiB,CAC5BA,EAAE,CACJ,CAGA,CAACzC,EAAK,EACJyC,EAA6D,IAAK,CAAE,EAAC,CAGjE,KAAK,KAAO,QAAWlB,EAAG,UAAU,KAAK,EAAE,EAC/CkB,EAAE,CACJ,GAGWM,GAAP,cACIzC,CAA4C,CAGpD,SAAmB,EACnB,YAAsB,EACtB,IAAc,EACd,IAAc,EACd,OAAiB,EACjB,OAAiB,EACjB,cACA,SACA,OACA,MACA,QACA,UACA,KACA,OACA,KACA,KACA,IACA,IACA,MACA,MACA,OACA,MACA,MACA,MACA,SACA,KACA,aAEA,KAAKY,EAAcC,EAAyBC,EAAiB,CAAA,EAAE,CAC7D,OAAOC,GAAW,KAAMH,EAAMC,EAASC,CAAI,CAC7C,CAEA,YAAY4B,EAAsBvC,EAA8B,CAAA,EAAE,CAChE,IAAMC,EAAMC,GAAQF,CAAI,EACxB,MAAK,EACL,KAAK,cAAgB,CAAC,CAACC,EAAI,cAC3B,KAAK,SAAW,CAAC,CAACA,EAAI,SACtB,KAAK,OAAS,CAAC,CAACA,EAAI,OACpB,KAAK,MAAQ,CAAC,CAACA,EAAI,MACnB,KAAK,QAAU,CAAC,CAACA,EAAI,QACrB,KAAK,aAAeA,EAAI,aAExB,KAAK,UAAYsC,EACjB,GAAM,CAAE,KAAAC,CAAI,EAAKD,EAEjB,GAAIC,IAAS,cACX,MAAM,IAAI,MAAM,sCAAsC,EAGxD,KAAK,KAAOA,EACR,KAAK,OAAS,aAAe,KAAK,WACpC,KAAK,QAAU,IAGjB,KAAK,OAASvC,EAAI,OAElB,KAAK,KAAO1B,EAAqBgE,EAAU,IAAI,EAC/C,KAAK,KACHA,EAAU,OAAS,OAAY,KAAK/C,EAAI,EAAE+C,EAAU,IAAI,EAAI,OAC9D,KAAK,IAAM,KAAK,SAAW,OAAYA,EAAU,IACjD,KAAK,IAAM,KAAK,SAAW,OAAYA,EAAU,IACjD,KAAK,MAAQ,KAAK,SAAW,OAAYA,EAAU,MACnD,KAAK,MAAQ,KAAK,SAAW,OAAYA,EAAU,MACnD,KAAK,KAAOA,EAAU,KACtB,KAAK,MAAQ,KAAK,QAAU,OAAYtC,EAAI,OAASsC,EAAU,MAC/D,KAAK,MAAQ,KAAK,SAAW,OAAYA,EAAU,MACnD,KAAK,MAAQ,KAAK,SAAW,OAAYA,EAAU,MACnD,KAAK,SACHA,EAAU,WAAa,OACrBhE,EAAqBgE,EAAU,QAAQ,EACvC,OAEA,OAAOtC,EAAI,QAAW,YACxB,KAAK,GAAG,OAAQA,EAAI,MAAM,EAG5B,IAAIE,EAA2B,GAC/B,GAAI,CAAC,KAAK,cAAe,CACvB,GAAM,CAACC,EAAMC,CAAQ,EAAIC,GAAkB,KAAK,IAAI,EAChDF,GAAQ,OAAOC,GAAa,WAC9B,KAAK,KAAOA,EACZF,EAAWC,EAEf,CAEA,KAAK,OAASmC,EAAU,KACxB,KAAK,YAAcA,EAAU,eAE7B,KAAK,eAAe,IAA6B,EACjD,KAAK,OAAS,IAAInB,EAAO,CACvB,KAAM,KAAKzB,CAAM,EAAE,KAAK,IAAI,EAC5B,SACE,KAAK,OAAS,QAAU,KAAK,WAAa,OACxC,KAAKA,CAAM,EAAE,KAAK,QAAQ,EAC1B,KAAK,SAGT,KAAM,KAAK,KACX,IAAK,KAAK,SAAW,OAAY,KAAK,IACtC,IAAK,KAAK,SAAW,OAAY,KAAK,IACtC,KAAM,KAAK,KACX,MAAO,KAAK,QAAU,OAAY,KAAK,MACvC,KAAM,KAAK,KACX,MAAO,KAAK,SAAW,OAAY,KAAK,MACxC,MAAO,KAAK,SAAW,OAAY,KAAK,MACxC,MAAO,KAAK,SAAW,OAAY,KAAK,MACzC,EAEGQ,GACF,KAAK,KACH,iBACA,aAAaA,CAAQ,sBACrB,CACE,MAAO,KACP,KAAMA,EAAW,KAAK,KACvB,EAID,KAAK,OAAO,OAAM,GAAM,CAAC,KAAK,OAChC,MAAM,MACJ,IAAIkB,GAAI,CACN,MAAO,KAAK,SAAW,OAAY,KAAK,MACxC,MAAO,KAAK,SAAW,OAAY,KAAK,MACxC,IAAK,KAAK,SAAW,OAAY,KAAK,IACtC,MAAO,KAAK,QAAU,OAAY,KAAK,MACvC,KAAM,KAAK1B,CAAM,EAAE,KAAK,IAAI,EAC5B,SACE,KAAK,OAAS,QAAU,KAAK,WAAa,OACxC,KAAKA,CAAM,EAAE,KAAK,QAAQ,EAC1B,KAAK,SACT,KAAM,KAAK,KACX,IAAK,KAAK,SAAW,OAAY,KAAK,IACtC,MAAO,KAAK,SAAW,OAAY,KAAK,MACxC,IAAK,KAAK,SAAW,OAAY,KAAK,UAAU,IAChD,IAAK,KAAK,SAAW,OAAY,KAAK,UAAU,IAChD,MAAO,KAAK,SAAW,OAAY,KAAK,UAAU,MACnD,EAAE,OAAM,CAAE,EAIf,IAAM8C,EAAI,KAAK,QAAQ,MAEvB,GAAI,CAACA,EAAG,MAAM,IAAI,MAAM,yBAAyB,EAEjD,MAAM,MAAMA,CAAC,EACbF,EAAU,KAAK,IAAI,CACrB,CAEA,CAAC5C,CAAM,EAAEtB,EAAY,CACnB,OAAOD,GAAWC,EAAM,KAAK,MAAM,CACrC,CAEA,CAACmB,EAAI,EAAE0B,EAAY,CACjB,OAAOC,GAAQD,EAAM,KAAK,OAAS,YAAa,KAAK,QAAQ,CAC/D,CAQA,MACEgB,EACAC,EACAH,EAAkB,CAGd,OAAOG,GAAa,aACtBH,EAAKG,EACLA,EAAW,QAET,OAAOD,GAAU,WACnBA,EAAQ,OAAO,KACbA,EACA,OAAOC,GAAa,SAAWA,EAAW,MAAM,GAIpD,IAAMO,EAAWR,EAAM,OACvB,GAAIQ,EAAW,KAAK,YAClB,MAAM,IAAI,MAAM,2CAA2C,EAE7D,YAAK,aAAeA,EACb,MAAM,MAAMR,EAAOF,CAAE,CAC9B,CASA,IACEE,EACAC,EACAH,EAAe,CAEf,OAAI,KAAK,aACP,MAAM,MAAM,OAAO,MAAM,KAAK,WAAW,CAAC,EAGxC,OAAOE,GAAU,aACnBF,EAAKE,EACLC,EAAW,OACXD,EAAQ,QAEN,OAAOC,GAAa,aACtBH,EAAKG,EACLA,EAAW,QAET,OAAOD,GAAU,WACnBA,EAAQ,OAAO,KAAKA,EAAOC,GAAY,MAAM,GAE3CH,GAAI,KAAK,KAAK,SAAUA,CAAE,EAC1BE,EAAO,MAAM,IAAIA,EAAOF,CAAE,EACzB,MAAM,IAAIA,CAAE,EAEV,IACT,GAGIf,GAAWD,GACfA,EAAK,OAAM,EAAK,OACdA,EAAK,YAAW,EAAK,YACrBA,EAAK,eAAc,EAAK,eACxB,cIzyBE,IAAO2B,GAAP,MAAOC,CAAO,CAClB,KACA,KACA,OAAiB,EAEjB,OAAO,OAAoBC,EAAoB,CAAA,EAAE,CAC/C,OAAO,IAAID,EAAQC,CAAI,CACzB,CAEA,YAAYA,EAAoB,CAAA,EAAE,CAChC,QAAWC,KAAQD,EACjB,KAAK,KAAKC,CAAI,CAElB,CAEA,EAAE,OAAO,QAAQ,GAAC,CAChB,QAASC,EAAS,KAAK,KAAMA,EAAQA,EAASA,EAAO,KACnD,MAAMA,EAAO,KAEjB,CAEA,WAAWC,EAAa,CACtB,GAAIA,EAAK,OAAS,KAChB,MAAM,IAAI,MACR,kDAAkD,EAItD,IAAMC,EAAOD,EAAK,KACZE,EAAOF,EAAK,KAElB,OAAIC,IACFA,EAAK,KAAOC,GAGVA,IACFA,EAAK,KAAOD,GAGVD,IAAS,KAAK,OAChB,KAAK,KAAOC,GAEVD,IAAS,KAAK,OAChB,KAAK,KAAOE,GAGd,KAAK,SACLF,EAAK,KAAO,OACZA,EAAK,KAAO,OACZA,EAAK,KAAO,OAELC,CACT,CAEA,YAAYD,EAAa,CACvB,GAAIA,IAAS,KAAK,KAChB,OAGEA,EAAK,MACPA,EAAK,KAAK,WAAWA,CAAI,EAG3B,IAAMG,EAAO,KAAK,KAClBH,EAAK,KAAO,KACZA,EAAK,KAAOG,EACRA,IACFA,EAAK,KAAOH,GAGd,KAAK,KAAOA,EACP,KAAK,OACR,KAAK,KAAOA,GAEd,KAAK,QACP,CAEA,SAASA,EAAa,CACpB,GAAIA,IAAS,KAAK,KAChB,OAGEA,EAAK,MACPA,EAAK,KAAK,WAAWA,CAAI,EAG3B,IAAMI,EAAO,KAAK,KAClBJ,EAAK,KAAO,KACZA,EAAK,KAAOI,EACRA,IACFA,EAAK,KAAOJ,GAGd,KAAK,KAAOA,EACP,KAAK,OACR,KAAK,KAAOA,GAEd,KAAK,QACP,CAEA,QAAQK,EAAS,CACf,QAASC,EAAI,EAAGC,EAAIF,EAAK,OAAQC,EAAIC,EAAGD,IACtCE,GAAK,KAAMH,EAAKC,CAAC,CAAC,EAEpB,OAAO,KAAK,MACd,CAEA,WAAWD,EAAS,CAClB,QAASC,EAAI,EAAGC,EAAIF,EAAK,OAAQC,EAAIC,EAAGD,IACtCG,GAAQ,KAAMJ,EAAKC,CAAC,CAAC,EAEvB,OAAO,KAAK,MACd,CAEA,KAAG,CACD,GAAI,CAAC,KAAK,KACR,OAGF,IAAMI,EAAM,KAAK,KAAK,MAChBC,EAAI,KAAK,KACf,YAAK,KAAO,KAAK,KAAK,KAClB,KAAK,KACP,KAAK,KAAK,KAAO,OAEjB,KAAK,KAAO,OAEdA,EAAE,KAAO,OACT,KAAK,SACED,CACT,CAEA,OAAK,CACH,GAAI,CAAC,KAAK,KACR,OAGF,IAAMA,EAAM,KAAK,KAAK,MAChBE,EAAI,KAAK,KACf,YAAK,KAAO,KAAK,KAAK,KAClB,KAAK,KACP,KAAK,KAAK,KAAO,OAEjB,KAAK,KAAO,OAEdA,EAAE,KAAO,OACT,KAAK,SACEF,CACT,CAEA,QACEG,EACAC,EAAW,CAEXA,EAAQA,GAAS,KACjB,QAASf,EAAS,KAAK,KAAMO,EAAI,EAAKP,EAAQO,IAC5CO,EAAG,KAAKC,EAAOf,EAAO,MAAOO,EAAG,IAAI,EACpCP,EAASA,EAAO,IAEpB,CAEA,eACEc,EACAC,EAAW,CAEXA,EAAQA,GAAS,KACjB,QAASf,EAAS,KAAK,KAAMO,EAAI,KAAK,OAAS,EAAKP,EAAQO,IAC1DO,EAAG,KAAKC,EAAOf,EAAO,MAAOO,EAAG,IAAI,EACpCP,EAASA,EAAO,IAEpB,CAEA,IAAIgB,EAAS,CACX,IAAIT,EAAI,EACJP,EAAS,KAAK,KAClB,KAASA,GAAUO,EAAIS,EAAGT,IACxBP,EAASA,EAAO,KAElB,GAAIO,IAAMS,GAAOhB,EACf,OAAOA,EAAO,KAElB,CAEA,WAAWgB,EAAS,CAClB,IAAIT,EAAI,EACJP,EAAS,KAAK,KAClB,KAASA,GAAUO,EAAIS,EAAGT,IAExBP,EAASA,EAAO,KAElB,GAAIO,IAAMS,GAAOhB,EACf,OAAOA,EAAO,KAElB,CAEA,IACEc,EACAC,EAAW,CAEXA,EAAQA,GAAS,KACjB,IAAMJ,EAAM,IAAId,EAChB,QAASG,EAAS,KAAK,KAAQA,GAC7BW,EAAI,KAAKG,EAAG,KAAKC,EAAOf,EAAO,MAAO,IAAI,CAAC,EAC3CA,EAASA,EAAO,KAElB,OAAOW,CACT,CAEA,WACEG,EACAC,EAAW,CAEXA,EAAQA,GAAS,KACjB,IAAIJ,EAAM,IAAId,EACd,QAASG,EAAS,KAAK,KAAQA,GAC7BW,EAAI,KAAKG,EAAG,KAAKC,EAAOf,EAAO,MAAO,IAAI,CAAC,EAC3CA,EAASA,EAAO,KAElB,OAAOW,CACT,CAOA,OACEG,EACAG,EAAW,CAEX,IAAIC,EACAlB,EAAS,KAAK,KAClB,GAAI,UAAU,OAAS,EACrBkB,EAAMD,UACG,KAAK,KACdjB,EAAS,KAAK,KAAK,KACnBkB,EAAM,KAAK,KAAK,UAEhB,OAAM,IAAI,UACR,4CAA4C,EAIhD,QAASX,EAAI,EAAKP,EAAQO,IACxBW,EAAMJ,EAAGI,EAAUlB,EAAO,MAAOO,CAAC,EAClCP,EAASA,EAAO,KAGlB,OAAOkB,CACT,CAOA,cACEJ,EACAG,EAAW,CAEX,IAAIC,EACAlB,EAAS,KAAK,KAClB,GAAI,UAAU,OAAS,EACrBkB,EAAMD,UACG,KAAK,KACdjB,EAAS,KAAK,KAAK,KACnBkB,EAAM,KAAK,KAAK,UAEhB,OAAM,IAAI,UACR,4CAA4C,EAIhD,QAASX,EAAI,KAAK,OAAS,EAAKP,EAAQO,IACtCW,EAAMJ,EAAGI,EAAUlB,EAAO,MAAOO,CAAC,EAClCP,EAASA,EAAO,KAGlB,OAAOkB,CACT,CAEA,SAAO,CACL,IAAMC,EAAM,IAAI,MAAM,KAAK,MAAM,EACjC,QAASZ,EAAI,EAAGP,EAAS,KAAK,KAAQA,EAAQO,IAC5CY,EAAIZ,CAAC,EAAIP,EAAO,MAChBA,EAASA,EAAO,KAElB,OAAOmB,CACT,CAEA,gBAAc,CACZ,IAAMA,EAAM,IAAI,MAAM,KAAK,MAAM,EACjC,QAASZ,EAAI,EAAGP,EAAS,KAAK,KAAQA,EAAQO,IAC5CY,EAAIZ,CAAC,EAAIP,EAAO,MAChBA,EAASA,EAAO,KAElB,OAAOmB,CACT,CAEA,MAAMC,EAAe,EAAGC,EAAa,KAAK,OAAM,CAC1CA,EAAK,IACPA,GAAM,KAAK,QAETD,EAAO,IACTA,GAAQ,KAAK,QAEf,IAAME,EAAM,IAAIzB,EAChB,GAAIwB,EAAKD,GAAQC,EAAK,EACpB,OAAOC,EAELF,EAAO,IACTA,EAAO,GAELC,EAAK,KAAK,SACZA,EAAK,KAAK,QAEZ,IAAIrB,EAAS,KAAK,KACdO,EAAI,EACR,IAAKA,EAAI,EAAKP,GAAUO,EAAIa,EAAMb,IAChCP,EAASA,EAAO,KAElB,KAASA,GAAUO,EAAIc,EAAId,IAAKP,EAASA,EAAO,KAC9CsB,EAAI,KAAKtB,EAAO,KAAK,EAEvB,OAAOsB,CACT,CAEA,aAAaF,EAAe,EAAGC,EAAa,KAAK,OAAM,CACjDA,EAAK,IACPA,GAAM,KAAK,QAETD,EAAO,IACTA,GAAQ,KAAK,QAEf,IAAME,EAAM,IAAIzB,EAChB,GAAIwB,EAAKD,GAAQC,EAAK,EACpB,OAAOC,EAELF,EAAO,IACTA,EAAO,GAELC,EAAK,KAAK,SACZA,EAAK,KAAK,QAEZ,IAAId,EAAI,KAAK,OACTP,EAAS,KAAK,KAClB,KAASA,GAAUO,EAAIc,EAAId,IACzBP,EAASA,EAAO,KAElB,KAASA,GAAUO,EAAIa,EAAMb,IAAKP,EAASA,EAAO,KAChDsB,EAAI,KAAKtB,EAAO,KAAK,EAEvB,OAAOsB,CACT,CAEA,OAAOC,EAAeC,EAAsB,KAAMC,EAAU,CACtDF,EAAQ,KAAK,SACfA,EAAQ,KAAK,OAAS,GAEpBA,EAAQ,IACVA,EAAQ,KAAK,OAASA,GAGxB,IAAIvB,EAAS,KAAK,KAElB,QAASO,EAAI,EAAKP,GAAUO,EAAIgB,EAAOhB,IACrCP,EAASA,EAAO,KAGlB,IAAMsB,EAAW,CAAA,EACjB,QAASf,EAAI,EAAKP,GAAUO,EAAIiB,EAAajB,IAC3Ce,EAAI,KAAKtB,EAAO,KAAK,EACrBA,EAAS,KAAK,WAAWA,CAAM,EAE5BA,EAEMA,IAAW,KAAK,OACzBA,EAASA,EAAO,MAFhBA,EAAS,KAAK,KAKhB,QAAW0B,KAAKD,EACdzB,EAAS2B,GAAe,KAAM3B,EAAQ0B,CAAC,EAGzC,OAAOJ,CACT,CAEA,SAAO,CACL,IAAMlB,EAAO,KAAK,KACZC,EAAO,KAAK,KAClB,QAASL,EAASI,EAAQJ,EAAQA,EAASA,EAAO,KAAM,CACtD,IAAM4B,EAAI5B,EAAO,KACjBA,EAAO,KAAOA,EAAO,KACrBA,EAAO,KAAO4B,CAChB,CACA,YAAK,KAAOvB,EACZ,KAAK,KAAOD,EACL,IACT,GAIF,SAASuB,GACPE,EACA5B,EACA6B,EAAQ,CAER,IAAM3B,EAAOF,EACPC,EAAOD,EAAOA,EAAK,KAAO4B,EAAK,KAC/BE,EAAW,IAAIC,GAAQF,EAAO3B,EAAMD,EAAM2B,CAAI,EAEpD,OAAIE,EAAS,OAAS,SACpBF,EAAK,KAAOE,GAEVA,EAAS,OAAS,SACpBF,EAAK,KAAOE,GAGdF,EAAK,SAEEE,CACT,CAEA,SAAStB,GAAQoB,EAAkB9B,EAAO,CACxC8B,EAAK,KAAO,IAAIG,GAAQjC,EAAM8B,EAAK,KAAM,OAAWA,CAAI,EACnDA,EAAK,OACRA,EAAK,KAAOA,EAAK,MAEnBA,EAAK,QACP,CAEA,SAASnB,GAAWmB,EAAkB9B,EAAO,CAC3C8B,EAAK,KAAO,IAAIG,GAAQjC,EAAM,OAAW8B,EAAK,KAAMA,CAAI,EACnDA,EAAK,OACRA,EAAK,KAAOA,EAAK,MAEnBA,EAAK,QACP,CAEM,IAAOG,GAAP,KAAW,CACf,KACA,KACA,KACA,MAEA,YACEF,EACA3B,EACAD,EACAJ,EAA6B,CAE7B,KAAK,KAAOA,EACZ,KAAK,MAAQgC,EAET3B,GACFA,EAAK,KAAO,KACZ,KAAK,KAAOA,GAEZ,KAAK,KAAO,OAGVD,GACFA,EAAK,KAAO,KACZ,KAAK,KAAOA,GAEZ,KAAK,KAAO,MAEhB,GLrZF,OAAO+B,OAAU,OA9CX,IAAOC,GAAP,KAAc,CAClB,KACA,SACA,MACA,KACA,QACA,QAAmB,GACnB,YAAuB,GACvB,OAAkB,GAClB,MAAiB,GACjB,YAAYC,EAAcC,EAAgB,CACxC,KAAK,KAAOD,GAAQ,KACpB,KAAK,SAAWC,CAClB,GAUIC,GAAM,OAAO,MAAM,IAAI,EACvBC,GAAS,OAAO,QAAQ,EACxBC,GAAQ,OAAO,OAAO,EACtBC,EAAQ,OAAO,OAAO,EACtBC,GAAe,OAAO,OAAO,EAC7BC,GAAU,OAAO,SAAS,EAC1BC,GAAU,OAAO,SAAS,EAC1BC,GAAa,OAAO,YAAY,EAChCC,GAAa,OAAO,YAAY,EAChCC,EAAO,OAAO,MAAM,EACpBC,GAAU,OAAO,SAAS,EAC1BC,GAAa,OAAO,YAAY,EAChCC,GAAc,OAAO,aAAa,EAClCC,GAAO,OAAO,MAAM,EACpBC,GAAU,OAAO,SAAS,EAC1BC,GAAY,OAAO,WAAW,EAC9BC,GAAO,OAAO,MAAM,EACpBC,GAAQ,OAAO,OAAO,EACtBC,GAAW,OAAO,UAAU,EAC5BC,GAAkB,OAAO,iBAAiB,EAC1CC,GAAQ,OAAO,OAAO,EACtBC,GAAU,OAAO,SAAS,EAMnBC,GAAP,cACIC,CAAuD,CAG/D,KAAgB,GAChB,IACA,IACA,YACA,cACA,OACA,MACA,OACA,UACA,UACA,KACA,SACA,IACA,aACA,aACA,OACA,QACA,MACA,OACA,KAEA,CAACJ,EAAe,EAChB,aASA,CAAChB,CAAK,EACN,CAACC,EAAY,EAAI,IAAI,IACrB,CAACK,CAAI,EAAY,EACjB,CAACF,EAAU,EAAa,GACxB,CAACL,EAAK,EAAa,GAEnB,YAAYsB,EAAkB,CAAA,EAAE,CAsB9B,GArBA,MAAK,EACL,KAAK,IAAMA,EACX,KAAK,KAAOA,EAAI,MAAQ,GACxB,KAAK,IAAMA,EAAI,KAAO,QAAQ,IAAG,EACjC,KAAK,YAAcA,EAAI,YACvB,KAAK,cAAgB,CAAC,CAACA,EAAI,cAC3B,KAAK,OAAS,CAAC,CAACA,EAAI,OACpB,KAAK,MAAQ,CAAC,CAACA,EAAI,MACnB,KAAK,OAASC,EAAqBD,EAAI,QAAU,EAAE,EACnD,KAAK,UAAYA,EAAI,WAAa,IAAI,IACtC,KAAK,UAAYA,EAAI,WAAa,IAAI,IACtC,KAAK,aAAeA,EAAI,cAAgB,IAAI,IAC5C,KAAK,aAAeA,EAAI,aAExB,KAAKL,EAAe,EAAIO,GACpB,OAAOF,EAAI,QAAW,YACxB,KAAK,GAAG,OAAQA,EAAI,MAAM,EAG5B,KAAK,SAAW,CAAC,CAACA,EAAI,SAElBA,EAAI,MAAQA,EAAI,QAAUA,EAAI,KAAM,CACtC,IACGA,EAAI,KAAO,EAAI,IAAMA,EAAI,OAAS,EAAI,IAAMA,EAAI,KAAO,EAAI,GAC5D,EAEA,MAAM,IAAI,UAAU,2CAA2C,EAwBjE,GAtBIA,EAAI,OACF,OAAOA,EAAI,MAAS,WACtBA,EAAI,KAAO,CAAA,GAET,KAAK,WACPA,EAAI,KAAK,SAAW,IAEtB,KAAK,IAAM,IAASG,GAAKH,EAAI,IAAI,GAE/BA,EAAI,SACF,OAAOA,EAAI,QAAW,WACxBA,EAAI,OAAS,CAAA,GAEf,KAAK,IAAM,IAASI,GAAeJ,EAAI,MAAM,GAE3CA,EAAI,OACF,OAAOA,EAAI,MAAS,WACtBA,EAAI,KAAO,CAAA,GAEb,KAAK,IAAM,IAASK,GAAaL,EAAI,IAAI,GAGvC,CAAC,KAAK,IAAK,MAAM,IAAI,MAAM,YAAY,EAC3C,IAAMM,EAAM,KAAK,IACjBA,EAAI,GAAG,OAAQC,GAAS,MAAM,MAAMA,CAA0B,CAAC,EAC/DD,EAAI,GAAG,MAAO,IAAM,MAAM,IAAG,CAAE,EAC/BA,EAAI,GAAG,QAAS,IAAM,KAAKT,EAAO,EAAC,CAAE,EACrC,KAAK,GAAG,SAAU,IAAMS,EAAI,OAAM,CAAE,CACtC,MACE,KAAK,GAAG,QAAS,KAAKT,EAAO,CAAC,EAGhC,KAAK,aAAe,CAAC,CAACG,EAAI,aAC1B,KAAK,OAAS,CAAC,CAACA,EAAI,OACpB,KAAK,QAAU,CAAC,CAACA,EAAI,QACjBA,EAAI,QAAO,KAAK,MAAQA,EAAI,OAEhC,KAAK,OACH,OAAOA,EAAI,QAAW,WAAaA,EAAI,OAAS,IAAM,GAExD,KAAKrB,CAAK,EAAI,IAAI6B,GAClB,KAAKvB,CAAI,EAAI,EACb,KAAK,KAAO,OAAOe,EAAI,IAAI,GAAK,EAChC,KAAKjB,EAAU,EAAI,GACnB,KAAKL,EAAK,EAAI,EAChB,CAEA,CAACkB,EAAK,EAAEW,EAAa,CACnB,OAAO,MAAM,MAAMA,CAA0B,CAC/C,CAEA,IAAIjC,EAAwB,CAC1B,YAAK,MAAMA,CAAI,EACR,IACT,CASA,IACEA,EACAmC,EACAC,EAAe,CAGf,OAAI,OAAOpC,GAAS,aAClBoC,EAAKpC,EACLA,EAAO,QAEL,OAAOmC,GAAa,aACtBC,EAAKD,EACLA,EAAW,QAGTnC,GACF,KAAK,IAAIA,CAAI,EAEf,KAAKI,EAAK,EAAI,GACd,KAAKI,EAAO,EAAC,EAET4B,GAAIA,EAAE,EACH,IACT,CAEA,MAAMpC,EAAwB,CAC5B,GAAI,KAAKI,EAAK,EACZ,MAAM,IAAI,MAAM,iBAAiB,EAGnC,OAAIJ,aAAgBqC,GAClB,KAAKvB,EAAW,EAAEd,CAAI,EAEtB,KAAKa,EAAU,EAAEb,CAAI,EAEhB,KAAK,OACd,CAEA,CAACc,EAAW,EAAEwB,EAAY,CACxB,IAAMrC,EAAW0B,EAAqB3B,GAAK,QAAQ,KAAK,IAAKsC,EAAE,IAAI,CAAC,EAEpE,GAAI,CAAC,KAAK,OAAOA,EAAE,KAAMA,CAAC,EACxBA,EAAE,OAAM,MACH,CACL,IAAMC,EAAM,IAAIxC,GAAQuC,EAAE,KAAMrC,CAAQ,EACxCsC,EAAI,MAAQ,IAAIC,GAAcF,EAAG,KAAKlB,EAAQ,EAAEmB,CAAG,CAAC,EACpDA,EAAI,MAAM,GAAG,MAAO,IAAM,KAAK3B,EAAO,EAAE2B,CAAG,CAAC,EAC5C,KAAK5B,CAAI,GAAK,EACd,KAAKN,CAAK,EAAE,KAAKkC,CAAG,CACtB,CAEA,KAAK/B,EAAO,EAAC,CACf,CAEA,CAACK,EAAU,EAAEyB,EAAS,CACpB,IAAMrC,EAAW0B,EAAqB3B,GAAK,QAAQ,KAAK,IAAKsC,CAAC,CAAC,EAC/D,KAAKjC,CAAK,EAAE,KAAK,IAAIN,GAAQuC,EAAGrC,CAAQ,CAAC,EACzC,KAAKO,EAAO,EAAC,CACf,CAEA,CAACO,EAAI,EAAEwB,EAAY,CACjBA,EAAI,QAAU,GACd,KAAK5B,CAAI,GAAK,EACd,IAAM8B,EAAO,KAAK,OAAS,OAAS,QACpCC,GAAGD,CAAI,EAAEF,EAAI,SAAU,CAACI,EAAIF,IAAQ,CAClCF,EAAI,QAAU,GACd,KAAK5B,CAAI,GAAK,EACVgC,EACF,KAAK,KAAK,QAASA,CAAE,EAErB,KAAKxC,EAAM,EAAEoC,EAAKE,CAAI,CAE1B,CAAC,CACH,CAEA,CAACtC,EAAM,EAAEoC,EAAcE,EAAW,CAKhC,GAJA,KAAK,UAAU,IAAIF,EAAI,SAAUE,CAAI,EACrCF,EAAI,KAAOE,EAGP,CAAC,KAAK,OAAOF,EAAI,KAAME,CAAI,EAC7BF,EAAI,OAAS,WAEbE,EAAK,OAAM,GACXA,EAAK,MAAQ,GACb,CAAC,KAAK,UAAU,IAAI,GAAGA,EAAK,GAAG,IAAIA,EAAK,GAAG,EAAE,GAC7C,CAAC,KAAK,KAKN,GAAIF,IAAQ,KAAKhC,EAAO,EACtB,KAAKG,EAAU,EAAE6B,CAAG,MACf,CAGL,IAAMK,EAAoB,GAAGH,EAAK,GAAG,IAAIA,EAAK,GAAG,GAC3CI,EAAU,KAAKvC,EAAY,EAAE,IAAIsC,CAAG,EACtCC,EAASA,EAAQ,KAAKN,CAAG,EACxB,KAAKjC,EAAY,EAAE,IAAIsC,EAAK,CAACL,CAAG,CAAC,EACtCA,EAAI,YAAc,GAClBA,EAAI,QAAU,EAChB,CAGF,KAAK/B,EAAO,EAAC,CACf,CAEA,CAACQ,EAAO,EAAEuB,EAAY,CACpBA,EAAI,QAAU,GACd,KAAK5B,CAAI,GAAK,EACd+B,GAAG,QAAQH,EAAI,SAAU,CAACI,EAAIG,IAAW,CAGvC,GAFAP,EAAI,QAAU,GACd,KAAK5B,CAAI,GAAK,EACVgC,EACF,OAAO,KAAK,KAAK,QAASA,CAAE,EAE9B,KAAK1B,EAAS,EAAEsB,EAAKO,CAAO,CAC9B,CAAC,CACH,CAEA,CAAC7B,EAAS,EAAEsB,EAAcO,EAAiB,CACzC,KAAK,aAAa,IAAIP,EAAI,SAAUO,CAAO,EAC3CP,EAAI,QAAUO,EACd,KAAKtC,EAAO,EAAC,CACf,CAEA,CAACA,EAAO,GAAC,CACP,GAAI,MAAKC,EAAU,EAInB,MAAKA,EAAU,EAAI,GACnB,QACMsC,EAAI,KAAK1C,CAAK,EAAE,KAClB0C,GAAK,KAAKpC,CAAI,EAAI,KAAK,KACzBoC,EAAIA,EAAE,KAGN,GADA,KAAKrC,EAAU,EAAEqC,EAAE,KAAK,EACpBA,EAAE,MAAM,OAAQ,CAClB,IAAMT,EAAIS,EAAE,KACZ,KAAK1C,CAAK,EAAE,WAAW0C,CAAC,EACxBA,EAAE,KAAOT,CACX,CAGF,KAAK7B,EAAU,EAAI,GAEf,KAAKL,EAAK,GAAK,KAAKC,CAAK,EAAE,SAAW,GAAK,KAAKM,CAAI,IAAM,IACxD,KAAK,IACP,KAAK,IAAI,IAAIT,EAAG,GAEhB,MAAM,MAAMA,EAAwB,EACpC,MAAM,IAAG,IAGf,CAEA,IAAKK,EAAO,GAAC,CACX,OAAO,KAAKF,CAAK,GAAK,KAAKA,CAAK,EAAE,MAAQ,KAAKA,CAAK,EAAE,KAAK,KAC7D,CAEA,CAACO,EAAO,EAAE2B,EAAY,CACpB,KAAKlC,CAAK,EAAE,MAAK,EACjB,KAAKM,CAAI,GAAK,EACd,GAAM,CAAE,KAAA8B,CAAI,EAAKF,EACjB,GAAIE,GAAQA,EAAK,OAAM,GAAMA,EAAK,MAAQ,EAAG,CAE3C,IAAMG,EAAoB,GAAGH,EAAK,GAAG,IAAIA,EAAK,GAAG,GAC3CI,EAAU,KAAKvC,EAAY,EAAE,IAAIsC,CAAG,EAC1C,GAAIC,EAAS,CACX,KAAKvC,EAAY,EAAE,OAAOsC,CAAG,EAC7B,QAAWL,KAAOM,EAChBN,EAAI,QAAU,GACd,KAAK7B,EAAU,EAAE6B,CAAG,CAExB,CACF,CACA,KAAK/B,EAAO,EAAC,CACf,CAEA,CAACE,EAAU,EAAE6B,EAAY,CAOvB,GANIA,EAAI,SAAWA,EAAI,aAAeA,IAAQ,KAAKhC,EAAO,IAGxDgC,EAAI,QAAU,GACdA,EAAI,YAAc,IAEhB,CAAAA,EAAI,QAIR,IAAIA,EAAI,MAAO,CACTA,IAAQ,KAAKhC,EAAO,GAAK,CAACgC,EAAI,OAChC,KAAKrB,EAAI,EAAEqB,CAAG,EAEhB,MACF,CAEA,GAAI,CAACA,EAAI,KAAM,CACb,IAAMS,EAAK,KAAK,UAAU,IAAIT,EAAI,QAAQ,EACtCS,EACF,KAAK7C,EAAM,EAAEoC,EAAKS,CAAE,EAEpB,KAAKjC,EAAI,EAAEwB,CAAG,CAElB,CACA,GAAKA,EAAI,MAKL,CAAAA,EAAI,OAIR,IAAI,CAAC,KAAK,cAAgBA,EAAI,KAAK,YAAW,GAAM,CAACA,EAAI,QAAS,CAChE,IAAMU,EAAK,KAAK,aAAa,IAAIV,EAAI,QAAQ,EAM7C,GALIU,EACF,KAAKhC,EAAS,EAAEsB,EAAKU,CAAE,EAEvB,KAAKjC,EAAO,EAAEuB,CAAG,EAEf,CAACA,EAAI,QACP,MAEJ,CAIA,GADAA,EAAI,MAAQ,KAAKpB,EAAK,EAAEoB,CAAG,EACvB,CAACA,EAAI,MAAO,CACdA,EAAI,OAAS,GACb,MACF,CAEIA,IAAQ,KAAKhC,EAAO,GAAK,CAACgC,EAAI,OAChC,KAAKrB,EAAI,EAAEqB,CAAG,GAElB,CAEA,CAACnB,EAAQ,EAAEmB,EAAY,CACrB,MAAO,CACL,OAAQ,CAACW,EAAMC,EAAKC,IAAS,KAAK,KAAKF,EAAMC,EAAKC,CAAI,EACtD,MAAO,KAAK,MACZ,IAAK,KAAK,IACV,SAAUb,EAAI,SACd,cAAe,KAAK,cACpB,YAAa,KAAK,YAClB,OAAQ,KAAK,OACb,SAAU,KAAK,SACf,UAAW,KAAK,UAChB,UAAW,KAAK,UAChB,QAAS,KAAK,QACd,MAAO,KAAK,MACZ,OAAQ,KAAK,OACb,aAAc,KAAK,aAEvB,CAEA,CAACpB,EAAK,EAAEoB,EAAY,CAClB,KAAK5B,CAAI,GAAK,EACd,GAAI,CAEF,OADU,IAAI,KAAKU,EAAe,EAAEkB,EAAI,KAAM,KAAKnB,EAAQ,EAAEmB,CAAG,CAAC,EAE9D,GAAG,MAAO,IAAM,KAAK3B,EAAO,EAAE2B,CAAG,CAAC,EAClC,GAAG,QAASI,GAAM,KAAK,KAAK,QAASA,CAAE,CAAC,CAC7C,OAASA,EAAI,CACX,KAAK,KAAK,QAASA,CAAE,CACvB,CACF,CAEA,CAACpB,EAAO,GAAC,CACH,KAAKhB,EAAO,GAAK,KAAKA,EAAO,EAAE,OACjC,KAAKA,EAAO,EAAE,MAAM,OAAM,CAE9B,CAGA,CAACW,EAAI,EAAEqB,EAAY,CACjBA,EAAI,MAAQ,GAERA,EAAI,SACNA,EAAI,QAAQ,QAAQc,GAAQ,CAC1B,IAAMf,EAAIC,EAAI,KACRe,EAAOhB,IAAM,KAAO,GAAKA,EAAE,QAAQ,OAAQ,GAAG,EACpD,KAAKzB,EAAU,EAAEyC,EAAOD,CAAK,CAC/B,CAAC,EAGH,IAAME,EAAShB,EAAI,MACbP,EAAM,KAAK,IAEjB,GAAI,CAACuB,EAAQ,MAAM,IAAI,MAAM,4BAA4B,EAGrDvB,EACFuB,EAAO,GAAG,OAAQtB,GAAQ,CACnBD,EAAI,MAAMC,CAAK,GAClBsB,EAAO,MAAK,CAEhB,CAAC,EAEDA,EAAO,GAAG,OAAQtB,GAAQ,CACnB,MAAM,MAAMA,CAA0B,GACzCsB,EAAO,MAAK,CAEhB,CAAC,CAEL,CAEA,OAAK,CACH,OAAI,KAAK,KACP,KAAK,IAAI,MAAK,EAET,MAAM,MAAK,CACpB,CACA,KAAKL,EAAcM,EAAyBJ,EAAiB,CAAA,EAAE,CAC7DK,GAAW,KAAMP,EAAMM,EAASJ,CAAI,CACtC,GAGWM,GAAP,cAAwBlC,EAAI,CAChC,KAAa,GACb,YAAYE,EAAe,CACzB,MAAMA,CAAG,EACT,KAAKL,EAAe,EAAIsC,EAC1B,CAGA,OAAK,CAAI,CACT,QAAM,CAAI,CAEV,CAAC5C,EAAI,EAAEwB,EAAY,CACjB,IAAME,EAAO,KAAK,OAAS,WAAa,YACxC,KAAKtC,EAAM,EAAEoC,EAAKG,GAAGD,CAAI,EAAEF,EAAI,QAAQ,CAAC,CAC1C,CAEA,CAACvB,EAAO,EAAEuB,EAAY,CACpB,KAAKtB,EAAS,EAAEsB,EAAKG,GAAG,YAAYH,EAAI,QAAQ,CAAC,CACnD,CAGA,CAACrB,EAAI,EAAEqB,EAAY,CACjB,IAAMgB,EAAShB,EAAI,MACbP,EAAM,KAAK,IAWjB,GATIO,EAAI,SACNA,EAAI,QAAQ,QAAQc,GAAQ,CAC1B,IAAMf,EAAIC,EAAI,KACRe,EAAOhB,IAAM,KAAO,GAAKA,EAAE,QAAQ,OAAQ,GAAG,EACpD,KAAKzB,EAAU,EAAEyC,EAAOD,CAAK,CAC/B,CAAC,EAIC,CAACE,EAAQ,MAAM,IAAI,MAAM,4BAA4B,EAGrDvB,EACFuB,EAAO,GAAG,OAAQtB,GAAQ,CACxBD,EAAI,MAAMC,CAAK,CACjB,CAAC,EAEDsB,EAAO,GAAG,OAAQtB,GAAQ,CACxB,MAAMX,EAAK,EAAEW,CAAK,CACpB,CAAC,CAEL,GfziBF,IAAM2B,GAAiB,CAACC,EAAyBC,IAAmB,CAClE,IAAMC,EAAI,IAAIC,GAASH,CAAG,EACpBI,EAAS,IAAIC,GAAgBL,EAAI,KAAM,CAC3C,KAAMA,EAAI,MAAQ,IACnB,EACDE,EAAE,KAAKE,CAAsC,EAC7CE,GAAaJ,EAAGD,CAAK,CACvB,EAEMM,GAAa,CAACP,EAAqBC,IAAmB,CAC1D,IAAMC,EAAI,IAAIM,GAAKR,CAAG,EAChBI,EAAS,IAAIK,GAAYT,EAAI,KAAM,CACvC,KAAMA,EAAI,MAAQ,IACnB,EACDE,EAAE,KAAKE,CAAsC,EAE7C,IAAMM,EAAU,IAAI,QAAc,CAACC,EAAKC,IAAO,CAC7CR,EAAO,GAAG,QAASQ,CAAG,EACtBR,EAAO,GAAG,QAASO,CAAG,EACtBT,EAAE,GAAG,QAASU,CAAG,CACnB,CAAC,EAED,OAAAC,GAAcX,EAAGD,CAAK,EAAE,MAAMa,GAAMZ,EAAE,KAAK,QAASY,CAAE,CAAC,EAEhDJ,CACT,EAEMJ,GAAe,CAACJ,EAAaD,IAAmB,CACpDA,EAAM,QAAQc,GAAO,CACfA,EAAK,OAAO,CAAC,IAAM,IACrBC,GAAK,CACH,KAAMC,GAAK,QAAQf,EAAE,IAAKa,EAAK,MAAM,CAAC,CAAC,EACvC,KAAM,GACN,SAAU,GACV,YAAaG,GAAShB,EAAE,IAAIgB,CAAK,EAClC,EAEDhB,EAAE,IAAIa,CAAI,CAEd,CAAC,EACDb,EAAE,IAAG,CACP,EAEMW,GAAgB,MAAOX,EAASD,IAAkC,CACtE,QAAWc,KAAQd,EACbc,EAAK,OAAO,CAAC,IAAM,IACrB,MAAMC,GAAK,CACT,KAAMC,GAAK,QAAQ,OAAOf,EAAE,GAAG,EAAGa,EAAK,MAAM,CAAC,CAAC,EAC/C,SAAU,GACV,YAAaG,GAAQ,CACnBhB,EAAE,IAAIgB,CAAK,CACb,EACD,EAEDhB,EAAE,IAAIa,CAAI,EAGdb,EAAE,IAAG,CACP,EAEMiB,GAAa,CAACnB,EAAqBC,IAAmB,CAC1D,IAAMC,EAAI,IAAIC,GAASH,CAAG,EAC1B,OAAAM,GAAaJ,EAAGD,CAAK,EACdC,CACT,EAEMkB,GAAc,CAACpB,EAAiBC,IAAmB,CACvD,IAAMC,EAAI,IAAIM,GAAKR,CAAG,EACtB,OAAAa,GAAcX,EAAGD,CAAK,EAAE,MAAMa,GAAMZ,EAAE,KAAK,QAASY,CAAE,CAAC,EAChDZ,CACT,EAEamB,GAASC,EACpBvB,GACAQ,GACAY,GACAC,GACA,CAACG,EAAMtB,IAAS,CACd,GAAI,CAACA,GAAO,OACV,MAAM,IAAI,UAAU,sCAAsC,CAE9D,CAAC,EqB5FH,OAAOuB,OAAQ,UCKf,OAAOC,OAAY,cACnB,OAAS,eAAAC,OAAmB,cAC5B,OAAOC,MAAwB,UAC/B,OAAOC,MAAU,YCFjB,OAAOC,OAAQ,KAEf,IAAMC,GAAW,QAAQ,IAAI,mBAAqB,QAAQ,SACpDC,GAAYD,KAAa,QAGzB,CAAE,QAAAE,GAAS,WAAAC,GAAY,QAAAC,GAAS,SAAAC,EAAQ,EAAKN,GAAG,UAChDO,GACJ,OAAO,QAAQ,IAAI,sBAAsB,GACzCP,GAAG,UAAU,iBACb,EAGIQ,GAAcN,IAAa,CAAC,CAACK,GAC7BE,GAAY,IAAM,KAClBC,GAAWH,GAAkBF,GAAUF,GAAUG,GACjDK,GACJ,CAACT,IAAa,OAAOE,IAAe,SAClCA,GAAaC,GAAUF,GAAUG,GACjC,KACSM,GACXD,KAAiB,KAAO,IAAMA,GAC3BH,GACAK,GAAkBA,EAAOJ,GAAYC,GAAW,IADlC,IAAM,IC9BzB,OAAOI,OAAyB,UAChC,OAAOC,OAAU,YAEjB,IAAMC,GAAa,CAACD,EAAcE,EAAaC,IAAe,CAC5D,GAAI,CACF,OAAOJ,GAAG,WAAWC,EAAME,EAAKC,CAAG,CACrC,OAASC,EAAI,CACX,GAAKA,GAA8B,OAAS,SAAU,MAAMA,CAC9D,CACF,EAEMC,GAAQ,CACZC,EACAJ,EACAC,EACAI,IACE,CACFR,GAAG,OAAOO,EAAOJ,EAAKC,EAAKC,GAAK,CAE9BG,EAAGH,GAAOA,GAA8B,OAAS,SAAWA,EAAK,IAAI,CACvE,CAAC,CACH,EAEMI,GAAY,CAChBC,EACAC,EACAR,EACAC,EACAI,IACE,CACF,GAAIG,EAAM,YAAW,EACnBC,GAAOX,GAAK,QAAQS,EAAGC,EAAM,IAAI,EAAGR,EAAKC,EAAMC,GAAe,CAC5D,GAAIA,EAAI,OAAOG,EAAGH,CAAE,EACpB,IAAME,EAAQN,GAAK,QAAQS,EAAGC,EAAM,IAAI,EACxCL,GAAMC,EAAOJ,EAAKC,EAAKI,CAAE,CAC3B,CAAC,MACI,CACL,IAAMD,EAAQN,GAAK,QAAQS,EAAGC,EAAM,IAAI,EACxCL,GAAMC,EAAOJ,EAAKC,EAAKI,CAAE,CAC3B,CACF,EAEaI,GAAS,CACpBF,EACAP,EACAC,EACAI,IACE,CACFR,GAAG,QAAQU,EAAG,CAAE,cAAe,EAAI,EAAI,CAACL,EAAIQ,IAAY,CAGtD,GAAIR,EAAI,CACN,GAAIA,EAAG,OAAS,SAAU,OAAOG,EAAE,EAC9B,GAAIH,EAAG,OAAS,WAAaA,EAAG,OAAS,UAC5C,OAAOG,EAAGH,CAAE,CAChB,CACA,GAAIA,GAAM,CAACQ,EAAS,OAAQ,OAAOP,GAAMI,EAAGP,EAAKC,EAAKI,CAAE,EAExD,IAAIM,EAAMD,EAAS,OACfE,EAAyC,KACvCC,EAAQX,GAAgB,CAE5B,GAAI,CAAAU,EAEJ,IAAIV,EAAI,OAAOG,EAAIO,EAAWV,CAA4B,EAC1D,GAAI,EAAES,IAAQ,EAAG,OAAOR,GAAMI,EAAGP,EAAKC,EAAKI,CAAE,EAC/C,EAEA,QAAWG,KAASE,EAClBJ,GAAUC,EAAGC,EAAOR,EAAKC,EAAKY,CAAI,CAEtC,CAAC,CACH,EAEMC,GAAgB,CACpBP,EACAC,EACAR,EACAC,IACE,CACEO,EAAM,YAAW,GACnBO,GAAWjB,GAAK,QAAQS,EAAGC,EAAM,IAAI,EAAGR,EAAKC,CAAG,EAElDF,GAAWD,GAAK,QAAQS,EAAGC,EAAM,IAAI,EAAGR,EAAKC,CAAG,CAClD,EAEac,GAAa,CAACR,EAAWP,EAAaC,IAAe,CAChE,IAAIS,EACJ,GAAI,CACFA,EAAWb,GAAG,YAAYU,EAAG,CAAE,cAAe,EAAI,CAAE,CACtD,OAASL,EAAI,CACX,IAAMc,EAAId,EACV,GAAIc,GAAG,OAAS,SAAU,OACrB,GAAIA,GAAG,OAAS,WAAaA,GAAG,OAAS,UAC5C,OAAOjB,GAAWQ,EAAGP,EAAKC,CAAG,EAC1B,MAAMe,CACb,CAEA,QAAWR,KAASE,EAClBI,GAAcP,EAAGC,EAAOR,EAAKC,CAAG,EAGlC,OAAOF,GAAWQ,EAAGP,EAAKC,CAAG,CAC/B,ECtGA,OAAOgB,MAAQ,UACf,OAAOC,OAAS,mBAChB,OAAOC,OAAU,YCHX,IAAOC,GAAP,cAAwB,KAAK,CACjC,KACA,KACA,QAAU,QAEV,YAAYC,EAAcC,EAAY,CACpC,MAAM,GAAGA,CAAI,qBAAqBD,CAAI,GAAG,EACzC,KAAK,KAAOA,EACZ,KAAK,KAAOC,CACd,CAEA,IAAI,MAAI,CACN,MAAO,UACT,GCbI,IAAOC,GAAP,cAA4B,KAAK,CACrC,KACA,QACA,QAAU,UACV,KAAO,oBACP,YAAYC,EAAiBC,EAAY,CACvC,MAAM,yDAAyD,EAC/D,KAAK,QAAUD,EACf,KAAK,KAAOC,CACd,CACA,IAAI,MAAI,CACN,MAAO,cACT,GFUF,IAAMC,GAAW,CACfC,EACAC,IACE,CACFC,EAAG,KAAKF,EAAK,CAACG,EAAIC,IAAM,EAClBD,GAAM,CAACC,EAAG,YAAW,KACvBD,EAAK,IAAIE,GACPL,EACCG,GAA8B,MAAQ,SAAS,GAGpDF,EAAGE,CAAE,CACP,CAAC,CACH,EAUaG,GAAQ,CACnBN,EACAO,EACAN,IACE,CACFD,EAAMQ,EAAqBR,CAAG,EAK9B,IAAMS,EAAQF,EAAI,OAAS,GACrBG,EAAOH,EAAI,KAAO,IAClBI,GAAaD,EAAOD,KAAW,EAE/BG,EAAML,EAAI,IACVM,EAAMN,EAAI,IACVO,EACJ,OAAOF,GAAQ,UACf,OAAOC,GAAQ,WACdD,IAAQL,EAAI,YAAcM,IAAQN,EAAI,YAEnCQ,EAAWR,EAAI,SACfS,EAAST,EAAI,OACbU,EAAMT,EAAqBD,EAAI,GAAG,EAElCW,EAAO,CAACf,EAAwBgB,IAAoB,CACpDhB,EACFF,EAAGE,CAAE,EAEDgB,GAAWL,EACbM,GAAOD,EAASP,EAAKC,EAAKV,IAAMe,EAAKf,EAA2B,CAAC,EACxDQ,EACTT,EAAG,MAAMF,EAAKU,EAAMT,CAAE,EAEtBA,EAAE,CAGR,EAEA,GAAID,IAAQiB,EACV,OAAOlB,GAASC,EAAKkB,CAAI,EAG3B,GAAIH,EACF,OAAOM,GAAI,MAAMrB,EAAK,CAAE,KAAAU,EAAM,UAAW,EAAI,CAAE,EAAE,KAC/CY,GAAQJ,EAAK,KAAMI,GAAQ,MAAS,EACpCJ,CAAI,EAKR,IAAMK,EADMf,EAAqBgB,GAAK,SAASP,EAAKjB,CAAG,CAAC,EACtC,MAAM,GAAG,EAC3ByB,GAAOR,EAAKM,EAAOb,EAAMM,EAAQC,EAAK,OAAWC,CAAI,CACvD,EAEMO,GAAS,CACbC,EACAH,EACAb,EACAM,EACAC,EACAE,EACAlB,IACQ,CACR,GAAIsB,EAAM,SAAW,EACnB,OAAOtB,EAAG,KAAMkB,CAAO,EAEzB,IAAMQ,EAAIJ,EAAM,MAAK,EACfK,EAAOpB,EAAqBgB,GAAK,QAAQE,EAAO,IAAMC,CAAC,CAAC,EAC9DzB,EAAG,MACD0B,EACAlB,EACAmB,GAAQD,EAAML,EAAOb,EAAMM,EAAQC,EAAKE,EAASlB,CAAE,CAAC,CAExD,EAEM4B,GACJ,CACED,EACAL,EACAb,EACAM,EACAC,EACAE,EACAlB,IAEDE,GAAqC,CAChCA,EACFD,EAAG,MAAM0B,EAAM,CAACE,EAAQ1B,IAAM,CAC5B,GAAI0B,EACFA,EAAO,KAAOA,EAAO,MAAQtB,EAAqBsB,EAAO,IAAI,EAC7D7B,EAAG6B,CAAM,UACA1B,EAAG,YAAW,EACvBqB,GAAOG,EAAML,EAAOb,EAAMM,EAAQC,EAAKE,EAASlB,CAAE,UACzCe,EACTd,EAAG,OAAO0B,EAAMzB,GAAK,CACnB,GAAIA,EACF,OAAOF,EAAGE,CAAE,EAEdD,EAAG,MACD0B,EACAlB,EACAmB,GAAQD,EAAML,EAAOb,EAAMM,EAAQC,EAAKE,EAASlB,CAAE,CAAC,CAExD,CAAC,MACI,IAAIG,EAAG,eAAc,EAC1B,OAAOH,EAAG,IAAI8B,GAAaH,EAAMA,EAAO,IAAML,EAAM,KAAK,GAAG,CAAC,CAAC,EAE9DtB,EAAGE,CAAE,EAET,CAAC,GAEDgB,EAAUA,GAAWS,EACrBH,GAAOG,EAAML,EAAOb,EAAMM,EAAQC,EAAKE,EAASlB,CAAE,EAEtD,EAEI+B,GAAgBhC,GAAe,CACnC,IAAIiC,EAAK,GACLC,EACJ,GAAI,CACFD,EAAK/B,EAAG,SAASF,CAAG,EAAE,YAAW,CACnC,OAASG,EAAI,CACX+B,EAAQ/B,GAA8B,IACxC,SACE,GAAI,CAAC8B,EACH,MAAM,IAAI5B,GAASL,EAAKkC,GAAQ,SAAS,CAE7C,CACF,EAEaC,GAAY,CAACnC,EAAaO,IAAqB,CAC1DP,EAAMQ,EAAqBR,CAAG,EAI9B,IAAMS,EAAQF,EAAI,OAAS,GACrBG,EAAOH,EAAI,KAAO,IAClBI,GAAaD,EAAOD,KAAW,EAE/BG,EAAML,EAAI,IACVM,EAAMN,EAAI,IACVO,EACJ,OAAOF,GAAQ,UACf,OAAOC,GAAQ,WACdD,IAAQL,EAAI,YAAcM,IAAQN,EAAI,YAEnCQ,EAAWR,EAAI,SACfS,EAAST,EAAI,OACbU,EAAMT,EAAqBD,EAAI,GAAG,EAElCW,EAAQC,GAAgC,CACxCA,GAAWL,GACbsB,GAAWjB,EAASP,EAAKC,CAAG,EAE1BF,GACFT,EAAG,UAAUF,EAAKU,CAAI,CAE1B,EAEA,GAAIV,IAAQiB,EACV,OAAAe,GAAaf,CAAG,EACTC,EAAI,EAGb,GAAIH,EACF,OAAOG,EAAKhB,EAAG,UAAUF,EAAK,CAAE,KAAAU,EAAM,UAAW,EAAI,CAAE,GAAK,MAAS,EAIvE,IAAMa,EADMf,EAAqBgB,GAAK,SAASP,EAAKjB,CAAG,CAAC,EACtC,MAAM,GAAG,EACvBmB,EACJ,QACMQ,EAAIJ,EAAM,MAAK,EAAIK,EAAOX,EAC9BU,IAAMC,GAAQ,IAAMD,GACpBA,EAAIJ,EAAM,MAAK,EACf,CACAK,EAAOpB,EAAqBgB,GAAK,QAAQI,CAAI,CAAC,EAE9C,GAAI,CACF1B,EAAG,UAAU0B,EAAMlB,CAAI,EACvBS,EAAUA,GAAWS,CACvB,MAAQ,CACN,IAAMxB,GAAKF,EAAG,UAAU0B,CAAI,EAC5B,GAAIxB,GAAG,YAAW,EAChB,SACK,GAAIY,EAAQ,CACjBd,EAAG,WAAW0B,CAAI,EAClB1B,EAAG,UAAU0B,EAAMlB,CAAI,EACvBS,EAAUA,GAAWS,EACrB,QACF,SAAWxB,GAAG,eAAc,EAC1B,OAAO,IAAI2B,GAAaH,EAAMA,EAAO,IAAML,EAAM,KAAK,GAAG,CAAC,CAE9D,CACF,CAEA,OAAOL,EAAKC,CAAO,CACrB,EG3OA,OAAS,QAAAkB,OAAY,YCJrB,IAAMC,GAAyC,OAAO,OAAO,IAAI,EAG3DC,GAAM,IACNC,GAAQ,IAAI,IACLC,GAAoB,GAAqB,CAC/CD,GAAM,IAAI,CAAC,EAOdA,GAAM,OAAO,CAAC,EALdF,GAAe,CAAC,EAAI,EACjB,UAAU,KAAK,EACf,kBAAkB,IAAI,EACtB,kBAAkB,IAAI,EAI3BE,GAAM,IAAI,CAAC,EAEX,IAAME,EAAMJ,GAAe,CAAC,EAExBK,EAAIH,GAAM,KAAOD,GAErB,GAAII,EAAIJ,GAAM,IACZ,QAAWK,KAAKJ,GAGd,GAFAA,GAAM,OAAOI,CAAC,EACd,OAAON,GAAeM,CAAC,EACnB,EAAED,GAAK,EAAG,MAIlB,OAAOD,CACT,EDtBA,IAAMG,GAAW,QAAQ,IAAI,2BAA6B,QAAQ,SAC5DC,GAAYD,KAAa,QAWzBE,GAAWC,GACFA,EACV,MAAM,GAAG,EACT,MAAM,EAAG,EAAE,EACX,OAAO,CAACC,EAAeD,IAAQ,CAC9B,IAAME,EAAID,EAAI,GAAG,EAAE,EACnB,OAAIC,IAAM,SACRF,EAAOG,GAAKD,EAAGF,CAAI,GAErBC,EAAI,KAAKD,GAAQ,GAAG,EACbC,CACT,EAAG,CAAA,CAAE,EAIIG,GAAP,KAAuB,CAI3BC,GAAU,IAAI,IAGdC,GAAgB,IAAI,IAGpBC,GAAW,IAAI,IAEf,QAAQC,EAAiBC,EAAW,CAClCD,EACEV,GACE,CAAC,gCAAgC,EACjCU,EAAM,IAAIE,GAEDC,GAAqBR,GAAKS,GAAiBF,CAAC,CAAC,CAAC,CACtD,EAEL,IAAMG,EAAO,IAAI,IACfL,EAAM,IAAIR,GAAQD,GAAQC,CAAI,CAAC,EAAE,OAAO,CAACc,EAAGC,IAAMD,EAAE,OAAOC,CAAC,CAAC,CAAC,EAEhE,KAAKT,GAAc,IAAIG,EAAI,CAAE,KAAAI,EAAM,MAAAL,CAAK,CAAE,EAC1C,QAAWE,KAAKF,EAAO,CACrB,IAAMQ,EAAI,KAAKX,GAAQ,IAAIK,CAAC,EACvBM,EAGHA,EAAE,KAAKP,CAAE,EAFT,KAAKJ,GAAQ,IAAIK,EAAG,CAACD,CAAE,CAAC,CAI5B,CACA,QAAWQ,KAAOJ,EAAM,CACtB,IAAMG,EAAI,KAAKX,GAAQ,IAAIY,CAAG,EAC9B,GAAI,CAACD,EACH,KAAKX,GAAQ,IAAIY,EAAK,CAAC,IAAI,IAAI,CAACR,CAAE,CAAC,CAAC,CAAC,MAChC,CACL,IAAMS,EAAIF,EAAE,GAAG,EAAE,EACbE,aAAa,IACfA,EAAE,IAAIT,CAAE,EAERO,EAAE,KAAK,IAAI,IAAI,CAACP,CAAE,CAAC,CAAC,CAExB,CACF,CACA,OAAO,KAAKU,GAAKV,CAAE,CACrB,CAIAW,GAAWX,EAAW,CAIpB,IAAMY,EAAM,KAAKf,GAAc,IAAIG,CAAE,EAErC,GAAI,CAACY,EACH,MAAM,IAAI,MAAM,8CAA8C,EAGhE,MAAO,CACL,MAAOA,EAAI,MAAM,IAAKrB,GACpB,KAAKK,GAAQ,IAAIL,CAAI,CAAC,EAExB,KAAM,CAAC,GAAGqB,EAAI,IAAI,EAAE,IAAIrB,GAAQ,KAAKK,GAAQ,IAAIL,CAAI,CAAC,EAK1D,CAIA,MAAMS,EAAW,CACf,GAAM,CAAE,MAAAD,EAAO,KAAAK,CAAI,EAAK,KAAKO,GAAWX,CAAE,EAC1C,OACED,EAAM,MAAMQ,GAAKA,GAAKA,EAAE,CAAC,IAAMP,CAAE,GACjCI,EAAK,MAAMG,GAAKA,GAAKA,EAAE,CAAC,YAAa,KAAOA,EAAE,CAAC,EAAE,IAAIP,CAAE,CAAC,CAE5D,CAGAU,GAAKV,EAAW,CACd,OAAI,KAAKF,GAAS,IAAIE,CAAE,GAAK,CAAC,KAAK,MAAMA,CAAE,EAClC,IAET,KAAKF,GAAS,IAAIE,CAAE,EACpBA,EAAG,IAAM,KAAKa,GAAOb,CAAE,CAAC,EACjB,GACT,CAEAa,GAAOb,EAAW,CAChB,GAAI,CAAC,KAAKF,GAAS,IAAIE,CAAE,EACvB,MAAO,GAET,IAAMY,EAAM,KAAKf,GAAc,IAAIG,CAAE,EAErC,GAAI,CAACY,EACH,MAAM,IAAI,MAAM,qBAAqB,EAGvC,GAAM,CAAE,MAAAb,EAAO,KAAAK,CAAI,EAAKQ,EAElBE,EAAO,IAAI,IACjB,QAAWvB,KAAQQ,EAAO,CACxB,IAAMQ,EAAI,KAAKX,GAAQ,IAAIL,CAAI,EAE/B,GAAI,CAACgB,GAAKA,IAAI,CAAC,IAAMP,EACnB,SAGF,IAAMe,EAAKR,EAAE,CAAC,EACd,GAAI,CAACQ,EAAI,CACP,KAAKnB,GAAQ,OAAOL,CAAI,EACxB,QACF,CAEA,GADAgB,EAAE,MAAK,EACH,OAAOQ,GAAO,WAChBD,EAAK,IAAIC,CAAE,MAEX,SAAWC,KAAKD,EACdD,EAAK,IAAIE,CAAC,CAGhB,CAEA,QAAWR,KAAOJ,EAAM,CACtB,IAAMG,EAAI,KAAKX,GAAQ,IAAIY,CAAG,EACxBO,EAAKR,IAAI,CAAC,EAEhB,GAAI,GAACA,GAAK,EAAEQ,aAAc,MAC1B,GAAIA,EAAG,OAAS,GAAKR,EAAE,SAAW,EAAG,CACnC,KAAKX,GAAQ,OAAOY,CAAG,EACvB,QACF,SAAWO,EAAG,OAAS,EAAG,CACxBR,EAAE,MAAK,EAGP,IAAMU,EAAIV,EAAE,CAAC,EACT,OAAOU,GAAM,YACfH,EAAK,IAAIG,CAAC,CAEd,MACEF,EAAG,OAAOf,CAAE,CAEhB,CAEA,YAAKF,GAAS,OAAOE,CAAE,EACvBc,EAAK,QAAQd,GAAM,KAAKU,GAAKV,CAAE,CAAC,EACzB,EACT,GE7LK,IAAMkB,GAAQ,IAAM,QAAQ,MAAK,ERyBxC,IAAMC,GAAU,OAAO,SAAS,EAC1BC,GAAU,OAAO,SAAS,EAC1BC,GAAW,OAAO,UAAU,EAC5BC,GAAa,OAAO,YAAY,EAChCC,EAAS,OAAO,QAAQ,EACxBC,GAAO,OAAO,MAAM,EACpBC,GAAY,OAAO,WAAW,EAC9BC,GAAO,OAAO,MAAM,EACpBC,GAAU,OAAO,SAAS,EAC1BC,GAAW,OAAO,UAAU,EAC5BC,GAAoB,OAAO,iBAAiB,EAC5CC,GAAc,OAAO,aAAa,EAClCC,GAAY,OAAO,WAAW,EAC9BC,GAAoB,OAAO,mBAAmB,EAC9CC,GAAQ,OAAO,OAAO,EACtBC,EAAU,OAAO,SAAS,EAC1BC,GAAU,OAAO,SAAS,EAC1BC,GAAO,OAAO,MAAM,EACpBC,GAAS,OAAO,QAAQ,EACxBC,GAAQ,OAAO,OAAO,EACtBC,GAAa,OAAO,YAAY,EAChCC,GAAO,OAAO,MAAM,EACpBC,GAAU,OAAO,SAAS,EAC1BC,GAAM,OAAO,KAAK,EAClBC,GAAM,OAAO,KAAK,EAClBC,GAAc,OAAO,YAAY,EACjCC,GAAW,QAAQ,IAAI,2BAA6B,QAAQ,SAC5DC,GAAYD,KAAa,QACzBE,GAAoB,KAkBpBC,GAAa,CAACC,EAAcC,IAAmC,CACnE,GAAI,CAACJ,GACH,OAAOK,EAAG,OAAOF,EAAMC,CAAE,EAG3B,IAAME,EAAOH,EAAO,WAAaI,GAAY,EAAE,EAAE,SAAS,KAAK,EAC/DF,EAAG,OAAOF,EAAMG,EAAME,GAAK,CACzB,GAAIA,EACF,OAAOJ,EAAGI,CAAE,EAEdH,EAAG,OAAOC,EAAMF,CAAE,CACpB,CAAC,CACH,EAIMK,GAAkBN,GAAgB,CACtC,GAAI,CAACH,GACH,OAAOK,EAAG,WAAWF,CAAI,EAG3B,IAAMG,EAAOH,EAAO,WAAaI,GAAY,EAAE,EAAE,SAAS,KAAK,EAC/DF,EAAG,WAAWF,EAAMG,CAAI,EACxBD,EAAG,WAAWC,CAAI,CACpB,EAIMI,GAAS,CACbC,EACAC,EACAC,IAEAF,IAAM,QAAaA,IAAMA,IAAM,EAAIA,EACjCC,IAAM,QAAaA,IAAMA,IAAM,EAAIA,EACnCC,EAESC,GAAP,cAAsBC,EAAM,CAChC,CAACvB,EAAK,EAAa,GACnB,CAACM,EAAW,EAAa,GACzB,CAACT,EAAO,EAAY,EAEpB,aAAiC,IAAI2B,GACrC,UACA,SAAiB,GACjB,SAAkB,GAClB,IACA,IACA,SACA,cACA,WACA,WACA,SACA,WACA,MACA,MACA,KACA,QACA,cACA,OACA,IACA,MACA,aACA,MACA,MACA,MACA,MAEA,YAAYC,EAAkB,CAAA,EAAE,CAY9B,GAXAA,EAAI,OAAS,IAAK,CAChB,KAAKzB,EAAK,EAAI,GACd,KAAKC,EAAU,EAAC,CAClB,EAEA,MAAMwB,CAAG,EAET,KAAK,UAAYA,EAAI,UAErB,KAAK,MAAQ,CAAC,CAACA,EAAI,MAEf,OAAOA,EAAI,KAAQ,UAAY,OAAOA,EAAI,KAAQ,SAAU,CAE9D,GAAI,OAAOA,EAAI,KAAQ,UAAY,OAAOA,EAAI,KAAQ,SACpD,MAAM,IAAI,UAAU,6CAA6C,EAEnE,GAAIA,EAAI,cACN,MAAM,IAAI,UACR,gEAAgE,EAGpE,KAAK,IAAMA,EAAI,IACf,KAAK,IAAMA,EAAI,IACf,KAAK,SAAW,EAClB,MACE,KAAK,IAAM,OACX,KAAK,IAAM,OACX,KAAK,SAAW,GAIlB,KAAK,cACHA,EAAI,gBAAkB,QAAa,OAAOA,EAAI,KAAQ,SACpD,CAAC,EAAE,QAAQ,QAAU,QAAQ,OAAM,IAAO,GAC1C,CAAC,CAACA,EAAI,cAEV,KAAK,YACF,KAAK,eAAiB,KAAK,WAAa,QAAQ,OAC/C,QAAQ,OAAM,EACd,OACJ,KAAK,YACF,KAAK,eAAiB,KAAK,WAAa,QAAQ,OAC/C,QAAQ,OAAM,EACd,OAIJ,KAAK,SACH,OAAOA,EAAI,UAAa,SAAWA,EAAI,SAAWhB,GAIpD,KAAK,WAAagB,EAAI,aAAe,GAGrC,KAAK,MAAQ,CAAC,CAACA,EAAI,OAASjB,GAG5B,KAAK,MAAQ,CAAC,CAACiB,EAAI,MAGnB,KAAK,KAAO,CAAC,CAACA,EAAI,KAGlB,KAAK,QAAU,CAAC,CAACA,EAAI,QAKrB,KAAK,cAAgB,CAAC,CAACA,EAAI,cAI3B,KAAK,OAAS,CAAC,CAACA,EAAI,OAEpB,KAAK,IAAMC,EAAqBf,EAAK,QAAQc,EAAI,KAAO,QAAQ,IAAG,CAAE,CAAC,EACtE,KAAK,MAAQ,OAAOA,EAAI,KAAK,GAAK,EAElC,KAAK,aACF,KAAK,MACJ,OAAOA,EAAI,cAAiB,SAAWA,EAAI,aAC3CE,GAAK,EAFO,EAGhB,KAAK,MACH,OAAOF,EAAI,OAAU,SAAWA,EAAI,MAAQ,KAAK,aAGnD,KAAK,MAAQA,EAAI,OAAS,IAAS,CAAC,KAAK,MACzC,KAAK,MAAQA,EAAI,OAAS,IAAS,CAAC,KAAK,MAEzC,KAAK,GAAG,QAASG,GAAS,KAAK/C,EAAO,EAAE+C,CAAK,CAAC,CAChD,CAKA,KAAKC,EAAcC,EAAqBC,EAAiB,CAAA,EAAE,CACzD,OAAIF,IAAS,mBAAqBA,IAAS,eACzCE,EAAK,YAAc,IAEd,MAAM,KAAKF,EAAMC,EAAKC,CAAI,CACnC,CAEA,CAAC9B,EAAU,GAAC,CACN,KAAKD,EAAK,GAAK,KAAKH,EAAO,IAAM,IACnC,KAAK,KAAK,WAAW,EACrB,KAAK,KAAK,QAAQ,EAClB,KAAK,KAAK,KAAK,EAEnB,CAIA,CAACH,EAAiB,EAChBkC,EACAI,EAA0B,CAE1B,IAAMC,EAAIL,EAAMI,CAAK,EACf,CAAE,KAAAE,CAAI,EAAKN,EACjB,GAAI,CAACK,GAAK,KAAK,cAAe,MAAO,GAGrC,GAAM,CAACE,EAAMC,CAAQ,EAAIC,GAAkBJ,CAAC,EACtCK,EAAQF,EAAS,WAAW,MAAO,GAAG,EAAE,MAAM,GAAG,EAEvD,GACEE,EAAM,SAAS,IAAI,GAElB9B,IAAa,gBAAgB,KAAK8B,EAAM,CAAC,GAAK,EAAE,EACjD,CAKA,GAAIN,IAAU,QAAUE,IAAS,OAC/B,YAAK,KAAK,kBAAmB,GAAGF,CAAK,iBAAkB,CACrD,MAAAJ,EACA,CAACI,CAAK,EAAGC,EACV,EAEM,GAKT,IAAMM,EAAW5B,EAAK,MAAM,QAAQiB,EAAM,IAAI,EACxCY,EAAW7B,EAAK,MAAM,UAC1BA,EAAK,MAAM,KAAK4B,EAAUD,EAAM,KAAK,GAAG,CAAC,CAAC,EAG5C,GAAIE,EAAS,WAAW,KAAK,GAAKA,IAAa,KAC7C,YAAK,KACH,kBACA,GAAGR,CAAK,gCACR,CACE,MAAAJ,EACA,CAACI,CAAK,EAAGC,EACV,EAEI,EAEX,CAEA,OAAIE,IAEFP,EAAMI,CAAK,EAAI,OAAOI,CAAQ,EAC9B,KAAK,KACH,iBACA,aAAaD,CAAI,kBAAkBH,CAAK,GACxC,CACE,MAAAJ,EACA,CAACI,CAAK,EAAGC,EACV,GAGE,EACT,CAGA,CAACxC,EAAS,EAAEmC,EAAgB,CAC1B,IAAMK,EAAIP,EAAqBE,EAAM,IAAI,EACnCU,EAAQL,EAAE,MAAM,GAAG,EAEzB,GAAI,KAAK,MAAO,CACd,GAAIK,EAAM,OAAS,KAAK,MACtB,MAAO,GAET,GAAIV,EAAM,OAAS,OAAQ,CACzB,IAAMa,EAAYf,EAChB,OAAOE,EAAM,QAAQ,CAAC,EACtB,MAAM,GAAG,EACX,GAAIa,EAAU,QAAU,KAAK,MAC3Bb,EAAM,SAAWa,EAAU,MAAM,KAAK,KAAK,EAAE,KAAK,GAAG,MAErD,OAAO,EAEX,CACAH,EAAM,OAAO,EAAG,KAAK,KAAK,EAC1BV,EAAM,KAAOU,EAAM,KAAK,GAAG,CAC7B,CAEA,GAAI,SAAS,KAAK,QAAQ,GAAKA,EAAM,OAAS,KAAK,SACjD,YAAK,KAAK,kBAAmB,wBAAyB,CACpD,MAAAV,EACA,KAAMK,EACN,MAAOK,EAAM,OACb,SAAU,KAAK,SAChB,EACM,GAGT,GACE,CAAC,KAAK5C,EAAiB,EAAEkC,EAAO,MAAM,GACtC,CAAC,KAAKlC,EAAiB,EAAEkC,EAAO,UAAU,EAE1C,MAAO,GAYT,GATAA,EAAM,SACJjB,EAAK,WAAWiB,EAAM,IAAI,EACxBF,EAAqBf,EAAK,QAAQiB,EAAM,IAAI,CAAC,EAC7CF,EAAqBf,EAAK,QAAQ,KAAK,IAAKiB,EAAM,IAAI,CAAC,EAOzD,CAAC,KAAK,eACN,OAAOA,EAAM,UAAa,UAC1BA,EAAM,SAAS,QAAQ,KAAK,IAAM,GAAG,IAAM,GAC3CA,EAAM,WAAa,KAAK,IAExB,YAAK,KAAK,kBAAmB,iCAAkC,CAC7D,MAAAA,EACA,KAAMF,EAAqBE,EAAM,IAAI,EACrC,aAAcA,EAAM,SACpB,IAAK,KAAK,IACX,EACM,GAMT,GACEA,EAAM,WAAa,KAAK,KACxBA,EAAM,OAAS,aACfA,EAAM,OAAS,aAEf,MAAO,GAIT,GAAI,KAAK,MAAO,CACd,GAAM,CAAE,KAAMc,CAAK,EAAK/B,EAAK,MAAM,MAAM,OAAOiB,EAAM,QAAQ,CAAC,EAC/DA,EAAM,SACJc,EAAWC,GAAO,OAAOf,EAAM,QAAQ,EAAE,MAAMc,EAAM,MAAM,CAAC,EAC9D,GAAM,CAAE,KAAME,CAAK,EAAKjC,EAAK,MAAM,MAAMiB,EAAM,IAAI,EACnDA,EAAM,KAAOgB,EAAWD,GAAOf,EAAM,KAAK,MAAMgB,EAAM,MAAM,CAAC,CAC/D,CAEA,MAAO,EACT,CAEA,CAAC/D,EAAO,EAAE+C,EAAgB,CACxB,GAAI,CAAC,KAAKnC,EAAS,EAAEmC,CAAK,EACxB,OAAOA,EAAM,OAAM,EAKrB,OAFAiB,GAAO,MAAM,OAAOjB,EAAM,SAAU,QAAQ,EAEpCA,EAAM,KAAM,CAClB,IAAK,YACL,IAAK,aACCA,EAAM,OACRA,EAAM,KAAOA,EAAM,KAAO,KAI9B,IAAK,OACL,IAAK,UACL,IAAK,iBACL,IAAK,OACL,IAAK,eACH,OAAO,KAAK9C,EAAO,EAAE8C,CAAK,EAK5B,QACE,OAAO,KAAKpC,EAAW,EAAEoC,CAAK,CAClC,CACF,CAEA,CAAChC,CAAO,EAAEoB,EAAWY,EAAgB,CAI/BZ,EAAG,OAAS,WACd,KAAK,KAAK,QAASA,CAAE,GAErB,KAAK,KAAK,kBAAmBA,EAAI,CAAE,MAAAY,CAAK,CAAE,EAC1C,KAAK7B,EAAM,EAAC,EACZ6B,EAAM,OAAM,EAEhB,CAEA,CAACjC,EAAK,EACJmD,EACAC,EACAnC,EAAmD,CAEnDoC,GACEtB,EAAqBoB,CAAG,EACxB,CACE,IAAK,KAAK,IACV,IAAK,KAAK,IACV,WAAY,KAAK,WACjB,WAAY,KAAK,WACjB,MAAO,KAAK,aACZ,SAAU,KAAK,cACf,OAAQ,KAAK,OACb,IAAK,KAAK,IACV,KAAMC,GAERnC,CAAE,CAEN,CAEA,CAACT,EAAO,EAAEyB,EAAgB,CAGxB,OACE,KAAK,YACJ,KAAK,gBACF,OAAOA,EAAM,KAAQ,UACrBA,EAAM,MAAQ,KAAK,YAClB,OAAOA,EAAM,KAAQ,UACpBA,EAAM,MAAQ,KAAK,aACxB,OAAO,KAAK,KAAQ,UAAY,KAAK,MAAQ,KAAK,YAClD,OAAO,KAAK,KAAQ,UAAY,KAAK,MAAQ,KAAK,UAEvD,CAEA,CAACxB,EAAG,EAAEwB,EAAgB,CACpB,OAAOV,GAAO,KAAK,IAAKU,EAAM,IAAK,KAAK,UAAU,CACpD,CAEA,CAACvB,EAAG,EAAEuB,EAAgB,CACpB,OAAOV,GAAO,KAAK,IAAKU,EAAM,IAAK,KAAK,UAAU,CACpD,CAEA,CAAC1C,EAAI,EAAE0C,EAAkBqB,EAAqB,CAC5C,IAAMF,EACJ,OAAOnB,EAAM,MAAS,SAAWA,EAAM,KAAO,KAAS,KAAK,MACxDsB,EAAS,IAAQC,GAAY,OAAOvB,EAAM,QAAQ,EAAG,CAEzD,MAAOwB,GAAaxB,EAAM,IAAI,EAC9B,KAAMmB,EACN,UAAW,GACZ,EACDG,EAAO,GAAG,QAAUlC,GAAa,CAC3BkC,EAAO,IACTrC,EAAG,MAAMqC,EAAO,GAAI,IAAK,CAAE,CAAC,EAM9BA,EAAO,MAAQ,IAAM,GACrB,KAAKtD,CAAO,EAAEoB,EAAIY,CAAK,EACvBqB,EAAS,CACX,CAAC,EAED,IAAII,EAAU,EACRC,EAAQtC,GAAqB,CACjC,GAAIA,EAAI,CAEFkC,EAAO,IACTrC,EAAG,MAAMqC,EAAO,GAAI,IAAK,CAAE,CAAC,EAI9B,KAAKtD,CAAO,EAAEoB,EAAIY,CAAK,EACvBqB,EAAS,EACT,MACF,CAEI,EAAEI,IAAY,GACZH,EAAO,KAAO,QAChBrC,EAAG,MAAMqC,EAAO,GAAIlC,GAAK,CACnBA,EACF,KAAKpB,CAAO,EAAEoB,EAAIY,CAAK,EAEvB,KAAK7B,EAAM,EAAC,EAEdkD,EAAS,CACX,CAAC,CAGP,EAEAC,EAAO,GAAG,SAAU,IAAK,CAIvB,IAAMK,EAAM,OAAO3B,EAAM,QAAQ,EAC3B4B,EAAKN,EAAO,GAElB,GAAI,OAAOM,GAAO,UAAY5B,EAAM,OAAS,CAAC,KAAK,QAAS,CAC1DyB,IACA,IAAMI,EAAQ7B,EAAM,OAAS,IAAI,KAC3B8B,EAAQ9B,EAAM,MACpBf,EAAG,QAAQ2C,EAAIC,EAAOC,EAAO1C,GAC3BA,EACEH,EAAG,OAAO0C,EAAKE,EAAOC,EAAOC,GAAOL,EAAKK,GAAO3C,CAAE,CAAC,EACnDsC,EAAI,CAAE,CAEZ,CAEA,GAAI,OAAOE,GAAO,UAAY,KAAKrD,EAAO,EAAEyB,CAAK,EAAG,CAClDyB,IACA,IAAMO,EAAM,KAAKxD,EAAG,EAAEwB,CAAK,EACrBiC,EAAM,KAAKxD,EAAG,EAAEuB,CAAK,EACvB,OAAOgC,GAAQ,UAAY,OAAOC,GAAQ,UAC5ChD,EAAG,OAAO2C,EAAII,EAAKC,EAAK7C,GACtBA,EAAKH,EAAG,MAAM0C,EAAKK,EAAKC,EAAKF,GAAOL,EAAKK,GAAO3C,CAAE,CAAC,EAAIsC,EAAI,CAAE,CAGnE,CAEAA,EAAI,CACN,CAAC,EAED,IAAMQ,EAAK,KAAK,WAAY,KAAK,UAAUlC,CAAK,GAAKA,EACjDkC,IAAOlC,IACTkC,EAAG,GAAG,QAAS9C,GAAK,CAClB,KAAKpB,CAAO,EAAEoB,EAAaY,CAAK,EAChCqB,EAAS,CACX,CAAC,EACDrB,EAAM,KAAKkC,CAAE,GAEfA,EAAG,KAAKZ,CAAM,CAChB,CAEA,CAAC/D,EAAS,EAAEyC,EAAkBqB,EAAqB,CACjD,IAAMF,EACJ,OAAOnB,EAAM,MAAS,SAAWA,EAAM,KAAO,KAAS,KAAK,MAC9D,KAAKjC,EAAK,EAAE,OAAOiC,EAAM,QAAQ,EAAGmB,EAAM/B,GAAK,CAC7C,GAAIA,EAAI,CACN,KAAKpB,CAAO,EAAEoB,EAAIY,CAAK,EACvBqB,EAAS,EACT,MACF,CAEA,IAAII,EAAU,EACRC,EAAO,IAAK,CACZ,EAAED,IAAY,IAChBJ,EAAS,EACT,KAAKlD,EAAM,EAAC,EACZ6B,EAAM,OAAM,EAEhB,EAEIA,EAAM,OAAS,CAAC,KAAK,UACvByB,IACAxC,EAAG,OACD,OAAOe,EAAM,QAAQ,EACrBA,EAAM,OAAS,IAAI,KACnBA,EAAM,MACN0B,CAAI,GAIJ,KAAKnD,EAAO,EAAEyB,CAAK,IACrByB,IACAxC,EAAG,MACD,OAAOe,EAAM,QAAQ,EACrB,OAAO,KAAKxB,EAAG,EAAEwB,CAAK,CAAC,EACvB,OAAO,KAAKvB,EAAG,EAAEuB,CAAK,CAAC,EACvB0B,CAAI,GAIRA,EAAI,CACN,CAAC,CACH,CAEA,CAAC9D,EAAW,EAAEoC,EAAgB,CAC5BA,EAAM,YAAc,GACpB,KAAK,KACH,wBACA,2BAA2BA,EAAM,IAAI,GACrC,CAAE,MAAAA,CAAK,CAAE,EAEXA,EAAM,OAAM,CACd,CAEA,CAACvC,EAAO,EAAEuC,EAAkB0B,EAAgB,CAC1C,IAAMhB,EAAQZ,EACZf,EAAK,SACH,KAAK,IACLA,EAAK,QACHA,EAAK,QAAQ,OAAOiB,EAAM,QAAQ,CAAC,EACnC,OAAOA,EAAM,QAAQ,CAAC,CACvB,CACF,EACD,MAAM,GAAG,EACX,KAAKrC,EAAiB,EACpBqC,EACA,KAAK,IACLU,EACA,IAAM,KAAKlD,EAAI,EAAEwC,EAAO,OAAOA,EAAM,QAAQ,EAAG,UAAW0B,CAAI,EAC/DtC,GAAK,CACH,KAAKpB,CAAO,EAAEoB,EAAIY,CAAK,EACvB0B,EAAI,CACN,CAAC,CAEL,CAEA,CAAChE,EAAQ,EAAEsC,EAAkB0B,EAAgB,CAC3C,IAAMS,EAAWrC,EACff,EAAK,QAAQ,KAAK,IAAK,OAAOiB,EAAM,QAAQ,CAAC,CAAC,EAE1CU,EAAQZ,EAAqB,OAAOE,EAAM,QAAQ,CAAC,EAAE,MAAM,GAAG,EACpE,KAAKrC,EAAiB,EACpBqC,EACA,KAAK,IACLU,EACA,IAAM,KAAKlD,EAAI,EAAEwC,EAAOmC,EAAU,OAAQT,CAAI,EAC9CtC,GAAK,CACH,KAAKpB,CAAO,EAAEoB,EAAIY,CAAK,EACvB0B,EAAI,CACN,CAAC,CAEL,CAEA,CAAC/D,EAAiB,EAChBqC,EACAoC,EACA1B,EACAgB,EACAW,EAAmC,CAEnC,IAAMhC,EAAIK,EAAM,MAAK,EACrB,GAAI,KAAK,eAAiBL,IAAM,OAAW,OAAOqB,EAAI,EACtD,IAAMY,EAAIvD,EAAK,QAAQqD,EAAK/B,CAAC,EAC7BpB,EAAG,MAAMqD,EAAG,CAAClD,EAAImD,IAAM,CACrB,GAAInD,EAAI,OAAOsC,EAAI,EACnB,GAAIa,GAAI,eAAc,EACpB,OAAOF,EACL,IAAIG,GAAaF,EAAGvD,EAAK,QAAQuD,EAAG5B,EAAM,KAAK,GAAG,CAAC,CAAC,CAAC,EAGzD,KAAK/C,EAAiB,EAAEqC,EAAOsC,EAAG5B,EAAOgB,EAAMW,CAAO,CACxD,CAAC,CACH,CAEA,CAACnE,EAAI,GAAC,CACJ,KAAKD,EAAO,GACd,CAEA,CAACE,EAAM,GAAC,CACN,KAAKF,EAAO,IACZ,KAAKI,EAAU,EAAC,CAClB,CAEA,CAACC,EAAI,EAAE0B,EAAgB,CACrB,KAAK7B,EAAM,EAAC,EACZ6B,EAAM,OAAM,CACd,CAKA,CAAC5C,EAAU,EAAE4C,EAAkBuC,EAAS,CACtC,OACEvC,EAAM,OAAS,QACf,CAAC,KAAK,QACNuC,EAAG,OAAM,GACTA,EAAG,OAAS,GACZ,CAAC3D,EAEL,CAGA,CAAC1B,EAAO,EAAE8C,EAAgB,CACxB,KAAK9B,EAAI,EAAC,EACV,IAAMuE,EAAQ,CAACzC,EAAM,IAAI,EACrBA,EAAM,UACRyC,EAAM,KAAKzC,EAAM,QAAQ,EAE3B,KAAK,aAAa,QAAQyC,EAAOf,GAAQ,KAAKvE,EAAQ,EAAE6C,EAAO0B,CAAI,CAAC,CACtE,CAEA,CAACvE,EAAQ,EAAE6C,EAAkBqB,EAA+B,CAC1D,IAAMK,EAAQtC,GAAc,CAC1BiC,EAAUjC,CAAE,CACd,EAEMsD,EAAW,IAAK,CACpB,KAAK3E,EAAK,EAAE,KAAK,IAAK,KAAK,MAAOqB,GAAK,CACrC,GAAIA,EAAI,CACN,KAAKpB,CAAO,EAAEoB,EAAIY,CAAK,EACvB0B,EAAI,EACJ,MACF,CACA,KAAKhD,EAAW,EAAI,GACpBiE,EAAK,CACP,CAAC,CACH,EAEMA,EAAQ,IAAK,CACjB,GAAI3C,EAAM,WAAa,KAAK,IAAK,CAC/B,IAAM4C,EAAS9C,EACbf,EAAK,QAAQ,OAAOiB,EAAM,QAAQ,CAAC,CAAC,EAEtC,GAAI4C,IAAW,KAAK,IAClB,OAAO,KAAK7E,EAAK,EAAE6E,EAAQ,KAAK,MAAOxD,GAAK,CAC1C,GAAIA,EAAI,CACN,KAAKpB,CAAO,EAAEoB,EAAIY,CAAK,EACvB0B,EAAI,EACJ,MACF,CACAmB,EAAe,CACjB,CAAC,CAEL,CACAA,EAAe,CACjB,EAEMA,EAAkB,IAAK,CAC3B5D,EAAG,MAAM,OAAOe,EAAM,QAAQ,EAAG,CAAC8C,EAASP,IAAM,CAC/C,GACEA,IACC,KAAK,MAEH,KAAK,OAASA,EAAG,OAASvC,EAAM,OAASuC,EAAG,QAC/C,CACA,KAAKjE,EAAI,EAAE0B,CAAK,EAChB0B,EAAI,EACJ,MACF,CACA,GAAIoB,GAAW,KAAK1F,EAAU,EAAE4C,EAAOuC,CAAE,EACvC,OAAO,KAAKlF,CAAM,EAAE,KAAM2C,EAAO0B,CAAI,EAGvC,GAAIa,EAAG,YAAW,EAAI,CACpB,GAAIvC,EAAM,OAAS,YAAa,CAC9B,IAAM+C,EACJ,KAAK,OAAS/C,EAAM,OAASuC,EAAG,KAAO,QAAYvC,EAAM,KACrDgD,EAAc5D,GAClB,KAAK/B,CAAM,EAAE+B,GAAM,KAAMY,EAAO0B,CAAI,EACtC,OAAKqB,EAGE9D,EAAG,MACR,OAAOe,EAAM,QAAQ,EACrB,OAAOA,EAAM,IAAI,EACjBgD,CAAU,EALHA,EAAU,CAOrB,CAQA,GAAIhD,EAAM,WAAa,KAAK,IAC1B,OAAOf,EAAG,MAAM,OAAOe,EAAM,QAAQ,EAAIZ,GACvC,KAAK/B,CAAM,EAAE+B,GAAM,KAAMY,EAAO0B,CAAI,CAAC,CAG3C,CAIA,GAAI1B,EAAM,WAAa,KAAK,IAC1B,OAAO,KAAK3C,CAAM,EAAE,KAAM2C,EAAO0B,CAAI,EAGvC5C,GAAW,OAAOkB,EAAM,QAAQ,EAAGZ,GACjC,KAAK/B,CAAM,EAAE+B,GAAM,KAAMY,EAAO0B,CAAI,CAAC,CAEzC,CAAC,CACH,EAEI,KAAKhD,EAAW,EAClBiE,EAAK,EAELD,EAAQ,CAEZ,CAEA,CAACrF,CAAM,EACL+B,EACAY,EACA0B,EAAgB,CAEhB,GAAItC,EAAI,CACN,KAAKpB,CAAO,EAAEoB,EAAIY,CAAK,EACvB0B,EAAI,EACJ,MACF,CAEA,OAAQ1B,EAAM,KAAM,CAClB,IAAK,OACL,IAAK,UACL,IAAK,iBACH,OAAO,KAAK1C,EAAI,EAAE0C,EAAO0B,CAAI,EAE/B,IAAK,OACH,OAAO,KAAKhE,EAAQ,EAAEsC,EAAO0B,CAAI,EAEnC,IAAK,eACH,OAAO,KAAKjE,EAAO,EAAEuC,EAAO0B,CAAI,EAElC,IAAK,YACL,IAAK,aACH,OAAO,KAAKnE,EAAS,EAAEyC,EAAO0B,CAAI,CACtC,CACF,CAEA,CAAClE,EAAI,EACHwC,EACAmC,EACAc,EACAvB,EAAgB,CAEhBzC,EAAGgE,CAAI,EAAEd,EAAU,OAAOnC,EAAM,QAAQ,EAAGZ,GAAK,CAC1CA,EACF,KAAKpB,CAAO,EAAEoB,EAAIY,CAAK,GAEvB,KAAK7B,EAAM,EAAC,EACZ6B,EAAM,OAAM,GAEd0B,EAAI,CACN,CAAC,CACH,GAGIwB,GACJC,GAC6C,CAC7C,GAAI,CACF,MAAO,CAAC,KAAMA,EAAE,CAAE,CACpB,OAAS/D,EAAI,CACX,MAAO,CAACA,EAA6B,IAAI,CAC3C,CACF,EAEagE,GAAP,cAA0B1D,EAAM,CACpC,KAAa,GAEb,CAACrC,CAAM,EAAE+B,EAA8BY,EAAgB,CACrD,OAAO,MAAM3C,CAAM,EAAE+B,EAAIY,EAAO,IAAK,CAAE,CAAC,CAC1C,CAEA,CAAC9C,EAAO,EAAE8C,EAAgB,CACxB,GAAI,CAAC,KAAKtB,EAAW,EAAG,CACtB,IAAMU,EAAK,KAAKrB,EAAK,EAAE,KAAK,IAAK,KAAK,KAAK,EAC3C,GAAIqB,EACF,OAAO,KAAKpB,CAAO,EAAEoB,EAAaY,CAAK,EAEzC,KAAKtB,EAAW,EAAI,EACtB,CAIA,GAAIsB,EAAM,WAAa,KAAK,IAAK,CAC/B,IAAM4C,EAAS9C,EACbf,EAAK,QAAQ,OAAOiB,EAAM,QAAQ,CAAC,CAAC,EAEtC,GAAI4C,IAAW,KAAK,IAAK,CACvB,IAAMS,EAAW,KAAKtF,EAAK,EAAE6E,EAAQ,KAAK,KAAK,EAC/C,GAAIS,EACF,OAAO,KAAKrF,CAAO,EAAEqF,EAAmBrD,CAAK,CAEjD,CACF,CAEA,GAAM,CAAC8C,EAASP,CAAE,EAAIW,GAAS,IAC7BjE,EAAG,UAAU,OAAOe,EAAM,QAAQ,CAAC,CAAC,EAEtC,GACEuC,IACC,KAAK,MAEH,KAAK,OAASA,EAAG,OAASvC,EAAM,OAASuC,EAAG,QAE/C,OAAO,KAAKjE,EAAI,EAAE0B,CAAK,EAGzB,GAAI8C,GAAW,KAAK1F,EAAU,EAAE4C,EAAOuC,CAAE,EACvC,OAAO,KAAKlF,CAAM,EAAE,KAAM2C,CAAK,EAGjC,GAAIuC,EAAG,YAAW,EAAI,CACpB,GAAIvC,EAAM,OAAS,YAAa,CAC9B,IAAM+C,EACJ,KAAK,OAAS/C,EAAM,OAASuC,EAAG,KAAO,QAAYvC,EAAM,KACrD,CAACZ,CAAE,EACP2D,EACEG,GAAS,IAAK,CACZjE,EAAG,UAAU,OAAOe,EAAM,QAAQ,EAAG,OAAOA,EAAM,IAAI,CAAC,CACzD,CAAC,EACD,CAAA,EACJ,OAAO,KAAK3C,CAAM,EAAE+B,EAAIY,CAAK,CAC/B,CAEA,GAAM,CAACZ,CAAE,EAAI8D,GAAS,IAAMjE,EAAG,UAAU,OAAOe,EAAM,QAAQ,CAAC,CAAC,EAChE,KAAK3C,CAAM,EAAE+B,EAAIY,CAAK,CACxB,CAIA,GAAM,CAACZ,CAAE,EACPY,EAAM,WAAa,KAAK,IACtB,CAAA,EACAkD,GAAS,IAAM7D,GAAe,OAAOW,EAAM,QAAQ,CAAC,CAAC,EACzD,KAAK3C,CAAM,EAAE+B,EAAIY,CAAK,CACxB,CAEA,CAAC1C,EAAI,EAAE0C,EAAkB0B,EAAgB,CACvC,IAAMP,EACJ,OAAOnB,EAAM,MAAS,SAAWA,EAAM,KAAO,KAAS,KAAK,MAExDsD,EAAQlE,GAAiC,CAC7C,IAAImE,EACJ,GAAI,CACFtE,EAAG,UAAU2C,CAAE,CACjB,OAAS4B,EAAG,CACVD,EAAaC,CACf,EACIpE,GAAMmE,IACR,KAAKvF,CAAO,EAAGoB,GAAgBmE,EAAYvD,CAAK,EAElD0B,EAAI,CACN,EAEIE,EACJ,GAAI,CACFA,EAAK3C,EAAG,SACN,OAAOe,EAAM,QAAQ,EACrBwB,GAAaxB,EAAM,IAAI,EACvBmB,CAAI,CAMR,OAAS/B,EAAI,CACX,OAAOkE,EAAKlE,CAAW,CACzB,CAEA,IAAM8C,EAAK,KAAK,WAAY,KAAK,UAAUlC,CAAK,GAAKA,EACjDkC,IAAOlC,IACTkC,EAAG,GAAG,QAAS9C,GAAM,KAAKpB,CAAO,EAAEoB,EAAaY,CAAK,CAAC,EACtDA,EAAM,KAAKkC,CAAE,GAGfA,EAAG,GAAG,OAASuB,GAAiB,CAC9B,GAAI,CACFxE,EAAG,UAAU2C,EAAI6B,EAAO,EAAGA,EAAM,MAAM,CACzC,OAASrE,EAAI,CACXkE,EAAKlE,CAAW,CAClB,CACF,CAAC,EAED8C,EAAG,GAAG,MAAO,IAAK,CAChB,IAAI9C,EAAK,KAGT,GAAIY,EAAM,OAAS,CAAC,KAAK,QAAS,CAChC,IAAM6B,EAAQ7B,EAAM,OAAS,IAAI,KAC3B8B,EAAQ9B,EAAM,MACpB,GAAI,CACFf,EAAG,YAAY2C,EAAIC,EAAOC,CAAK,CACjC,OAAS4B,EAAW,CAClB,GAAI,CACFzE,EAAG,WAAW,OAAOe,EAAM,QAAQ,EAAG6B,EAAOC,CAAK,CACpD,MAAQ,CACN1C,EAAKsE,CACP,CACF,CACF,CAEA,GAAI,KAAKnF,EAAO,EAAEyB,CAAK,EAAG,CACxB,IAAMgC,EAAM,KAAKxD,EAAG,EAAEwB,CAAK,EACrBiC,EAAM,KAAKxD,EAAG,EAAEuB,CAAK,EAE3B,GAAI,CACFf,EAAG,WAAW2C,EAAI,OAAOI,CAAG,EAAG,OAAOC,CAAG,CAAC,CAC5C,OAAS0B,EAAU,CACjB,GAAI,CACF1E,EAAG,UAAU,OAAOe,EAAM,QAAQ,EAAG,OAAOgC,CAAG,EAAG,OAAOC,CAAG,CAAC,CAC/D,MAAQ,CACN7C,EAAKA,GAAMuE,CACb,CACF,CACF,CAEAL,EAAKlE,CAAW,CAClB,CAAC,CACH,CAEA,CAAC7B,EAAS,EAAEyC,EAAkB0B,EAAgB,CAC5C,IAAMP,EACJ,OAAOnB,EAAM,MAAS,SAAWA,EAAM,KAAO,KAAS,KAAK,MACxDZ,EAAK,KAAKrB,EAAK,EAAE,OAAOiC,EAAM,QAAQ,EAAGmB,CAAI,EACnD,GAAI/B,EAAI,CACN,KAAKpB,CAAO,EAAEoB,EAAaY,CAAK,EAChC0B,EAAI,EACJ,MACF,CACA,GAAI1B,EAAM,OAAS,CAAC,KAAK,QACvB,GAAI,CACFf,EAAG,WACD,OAAOe,EAAM,QAAQ,EACrBA,EAAM,OAAS,IAAI,KACnBA,EAAM,KAAK,CAGf,MAAQ,CAAC,CAEX,GAAI,KAAKzB,EAAO,EAAEyB,CAAK,EACrB,GAAI,CACFf,EAAG,UACD,OAAOe,EAAM,QAAQ,EACrB,OAAO,KAAKxB,EAAG,EAAEwB,CAAK,CAAC,EACvB,OAAO,KAAKvB,EAAG,EAAEuB,CAAK,CAAC,CAAC,CAE5B,MAAQ,CAAC,CAEX0B,EAAI,EACJ1B,EAAM,OAAM,CACd,CAEA,CAACjC,EAAK,EAAEmD,EAAaC,EAAY,CAC/B,GAAI,CACF,OAAOyC,GAAU9D,EAAqBoB,CAAG,EAAG,CAC1C,IAAK,KAAK,IACV,IAAK,KAAK,IACV,WAAY,KAAK,WACjB,WAAY,KAAK,WACjB,MAAO,KAAK,aACZ,SAAU,KAAK,cACf,OAAQ,KAAK,OACb,IAAK,KAAK,IACV,KAAMC,EACP,CACH,OAAS/B,EAAI,CACX,OAAOA,CACT,CACF,CAEA,CAACzB,EAAiB,EAChBkG,EACAzB,EACA1B,EACAgB,EACAW,EAAmC,CAEnC,GAAI,KAAK,eAAiB3B,EAAM,SAAW,EAAG,OAAOgB,EAAI,EACzD,IAAIY,EAAIF,EACR,QAAW/B,KAAKK,EAAO,CACrB4B,EAAIvD,EAAK,QAAQuD,EAAGjC,CAAC,EACrB,GAAM,CAACjB,EAAImD,CAAE,EAAIW,GAAS,IAAMjE,EAAG,UAAUqD,CAAC,CAAC,EAC/C,GAAIlD,EAAI,OAAOsC,EAAI,EACnB,GAAIa,EAAG,eAAc,EACnB,OAAOF,EACL,IAAIG,GAAaF,EAAGvD,EAAK,QAAQqD,EAAK1B,EAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAG7D,CACAgB,EAAI,CACN,CAEA,CAAClE,EAAI,EACHwC,EACAmC,EACAc,EACAvB,EAAgB,CAEhB,IAAMoC,EAAiC,GAAGb,CAAI,OAC9C,GAAI,CACFhE,EAAG6E,CAAQ,EAAE3B,EAAU,OAAOnC,EAAM,QAAQ,CAAC,EAC7C0B,EAAI,EACJ1B,EAAM,OAAM,CACd,OAASZ,EAAI,CACX,OAAO,KAAKpB,CAAO,EAAEoB,EAAaY,CAAK,CACzC,CACF,GDtmCF,IAAM+D,GAAmBC,GAA2B,CAClD,IAAMC,EAAI,IAAIC,GAAWF,CAAG,EACtBG,EAAOH,EAAI,KACXI,EAAOC,GAAG,SAASF,CAAI,EAGvBG,EAAWN,EAAI,aAAe,GAAK,KAAO,KACjC,IAAQO,GAAeJ,EAAM,CAC1C,SAAUG,EACV,KAAMF,EAAK,KACZ,EACM,KAAKH,CAAC,CACf,EAEMO,GAAc,CAACR,EAAqBS,IAAgB,CACxD,IAAMR,EAAI,IAAIS,GAAOV,CAAG,EAClBM,EAAWN,EAAI,aAAe,GAAK,KAAO,KAE1CG,EAAOH,EAAI,KAoBjB,OAnBU,IAAI,QAAc,CAACW,EAASC,IAAU,CAC9CX,EAAE,GAAG,QAASW,CAAM,EACpBX,EAAE,GAAG,QAASU,CAAO,EAIrBN,GAAG,KAAKF,EAAM,CAACU,EAAIT,IAAQ,CACzB,GAAIS,EACFD,EAAOC,CAAE,MACJ,CACL,IAAMC,EAAS,IAAQC,GAAWZ,EAAM,CACtC,SAAUG,EACV,KAAMF,EAAK,KACZ,EACDU,EAAO,GAAG,QAASF,CAAM,EACzBE,EAAO,KAAKb,CAAC,CACf,CACF,CAAC,CACH,CAAC,CAEH,EAEae,GAAUC,EACrBlB,GACAS,GACAR,GAAO,IAAIE,GAAWF,CAAG,EACzBA,GAAO,IAAIU,GAAOV,CAAG,EACrB,CAACA,EAAKkB,IAAS,CACTA,GAAO,QAAQC,GAAYnB,EAAKkB,CAAK,CAC3C,CAAC,EUrDH,OAAOE,MAAQ,UACf,OAAOC,OAAU,YAcjB,IAAMC,GAAc,CAACC,EAAyBC,IAAmB,CAC/D,IAAMC,EAAI,IAAIC,GAASH,CAAG,EAEtBI,EAAQ,GACRC,EACAC,EAEJ,GAAI,CACF,GAAI,CACFD,EAAKE,EAAG,SAASP,EAAI,KAAM,IAAI,CACjC,OAASQ,EAAI,CACX,GAAKA,GAA8B,OAAS,SAC1CH,EAAKE,EAAG,SAASP,EAAI,KAAM,IAAI,MAE/B,OAAMQ,CAEV,CAEA,IAAMC,EAAKF,EAAG,UAAUF,CAAE,EACpBK,EAAU,OAAO,MAAM,GAAG,EAEhCC,EAAU,IAAKL,EAAW,EAAGA,EAAWG,EAAG,KAAMH,GAAY,IAAK,CAChE,QAASM,EAAS,EAAGC,EAAQ,EAAGD,EAAS,IAAKA,GAAUC,EAAO,CAS7D,GARAA,EAAQN,EAAG,SACTF,EACAK,EACAE,EACAF,EAAQ,OAASE,EACjBN,EAAWM,CAAM,EAGfN,IAAa,GAAKI,EAAQ,CAAC,IAAM,IAAQA,EAAQ,CAAC,IAAM,IAC1D,MAAM,IAAI,MAAM,sCAAsC,EAGxD,GAAI,CAACG,EACH,MAAMF,CAEV,CAEA,IAAMG,EAAI,IAAIC,EAAOL,CAAO,EAC5B,GAAI,CAACI,EAAE,WACL,MAEF,IAAME,EAAiB,IAAM,KAAK,MAAMF,EAAE,MAAQ,GAAK,GAAG,EAC1D,GAAIR,EAAWU,EAAiB,IAAMP,EAAG,KACvC,MAIFH,GAAYU,EACRhB,EAAI,YAAcc,EAAE,OACtBd,EAAI,WAAW,IAAI,OAAOc,EAAE,IAAI,EAAGA,EAAE,KAAK,CAE9C,CACAV,EAAQ,GAERa,GAAWjB,EAAKE,EAAGI,EAAUD,EAAIJ,CAAK,CACxC,SACE,GAAIG,EACF,GAAI,CACFG,EAAG,UAAUF,CAAY,CAC3B,MAAQ,CAAC,CAEb,CACF,EAEMY,GAAa,CACjBjB,EACAE,EACAI,EACAD,EACAJ,IACE,CACF,IAAMiB,EAAS,IAAIC,GAAgBnB,EAAI,KAAM,CAC3C,GAAIK,EACJ,MAAOC,EACR,EACDJ,EAAE,KAAKgB,CAAsC,EAC7CE,GAAalB,EAAGD,CAAK,CACvB,EAEMoB,GAAe,CACnBrB,EACAC,IACiB,CACjBA,EAAQ,MAAM,KAAKA,CAAK,EACxB,IAAMC,EAAI,IAAIoB,GAAKtB,CAAG,EAEhBuB,EAAS,CACblB,EACAmB,EACAC,IACE,CACF,IAAMC,EAAK,CAAClB,EAAmBmB,IAAgB,CACzCnB,EACFD,EAAG,MAAMF,EAAIuB,GAAKH,EAAIjB,CAAE,CAAC,EAEzBiB,EAAI,KAAME,CAAG,CAEjB,EAEIrB,EAAW,EACf,GAAIkB,IAAS,EACX,OAAOE,EAAG,KAAM,CAAC,EAGnB,IAAId,EAAS,EACPF,EAAU,OAAO,MAAM,GAAG,EAC1BmB,EAAS,CAACrB,EAAmBK,IAAwB,CACzD,GAAIL,GAAMK,IAAU,OAClB,OAAOa,EAAGlB,CAAE,EAGd,GADAI,GAAUC,EACND,EAAS,KAAOC,EAClB,OAAON,EAAG,KACRF,EACAK,EACAE,EACAF,EAAQ,OAASE,EACjBN,EAAWM,EACXiB,CAAM,EAIV,GAAIvB,IAAa,GAAKI,EAAQ,CAAC,IAAM,IAAQA,EAAQ,CAAC,IAAM,IAC1D,OAAOgB,EAAG,IAAI,MAAM,sCAAsC,CAAC,EAI7D,GAAId,EAAS,IACX,OAAOc,EAAG,KAAMpB,CAAQ,EAG1B,IAAMQ,EAAI,IAAIC,EAAOL,CAAO,EAC5B,GAAI,CAACI,EAAE,WACL,OAAOY,EAAG,KAAMpB,CAAQ,EAI1B,IAAMU,EAAiB,IAAM,KAAK,MAAMF,EAAE,MAAQ,GAAK,GAAG,EAM1D,GALIR,EAAWU,EAAiB,IAAMQ,IAItClB,GAAYU,EAAiB,IACzBV,GAAYkB,GACd,OAAOE,EAAG,KAAMpB,CAAQ,EAGtBN,EAAI,YAAcc,EAAE,OACtBd,EAAI,WAAW,IAAI,OAAOc,EAAE,IAAI,EAAGA,EAAE,KAAK,EAE5CF,EAAS,EACTL,EAAG,KAAKF,EAAIK,EAAS,EAAG,IAAKJ,EAAUuB,CAAM,CAC/C,EACAtB,EAAG,KAAKF,EAAIK,EAAS,EAAG,IAAKJ,EAAUuB,CAAM,CAC/C,EAsCA,OApCgB,IAAI,QAAc,CAACC,EAASC,IAAU,CACpD7B,EAAE,GAAG,QAAS6B,CAAM,EACpB,IAAIC,EAAO,KACLC,EAAS,CAACzB,EAAmCH,IAAe,CAChE,GAAIG,GAAMA,EAAG,OAAS,UAAYwB,IAAS,KACzC,OAAAA,EAAO,KACAzB,EAAG,KAAKP,EAAI,KAAMgC,EAAMC,CAAM,EAGvC,GAAIzB,GAAM,CAACH,EACT,OAAO0B,EAAOvB,CAAE,EAGlBD,EAAG,MAAMF,EAAI,CAACG,EAAIC,IAAM,CACtB,GAAID,EACF,OAAOD,EAAG,MAAMF,EAAI,IAAM0B,EAAOvB,CAAE,CAAC,EAGtCe,EAAOlB,EAAII,EAAG,KAAM,CAACD,EAAIF,IAAY,CACnC,GAAIE,EACF,OAAOuB,EAAOvB,CAAE,EAElB,IAAMU,EAAS,IAAIgB,GAAYlC,EAAI,KAAM,CACvC,GAAIK,EACJ,MAAOC,EACR,EACDJ,EAAE,KAAKgB,CAAsC,EAC7CA,EAAO,GAAG,QAASa,CAAM,EACzBb,EAAO,GAAG,QAASY,CAAO,EAC1BK,GAAcjC,EAAGD,CAAK,CACxB,CAAC,CACH,CAAC,CACH,EACAM,EAAG,KAAKP,EAAI,KAAMgC,EAAMC,CAAM,CAChC,CAAC,CAGH,EAEMb,GAAe,CAAClB,EAASD,IAAmB,CAChDA,EAAM,QAAQmC,GAAO,CACfA,EAAK,OAAO,CAAC,IAAM,IACrBC,GAAK,CACH,KAAMC,GAAK,QAAQpC,EAAE,IAAKkC,EAAK,MAAM,CAAC,CAAC,EACvC,KAAM,GACN,SAAU,GACV,YAAaG,GAASrC,EAAE,IAAIqC,CAAK,EAClC,EAEDrC,EAAE,IAAIkC,CAAI,CAEd,CAAC,EACDlC,EAAE,IAAG,CACP,EAEMiC,GAAgB,MAAOjC,EAASD,IAAkC,CACtE,QAAWmC,KAAQnC,EACbmC,EAAK,OAAO,CAAC,IAAM,IACrB,MAAMC,GAAK,CACT,KAAMC,GAAK,QAAQ,OAAOpC,EAAE,GAAG,EAAGkC,EAAK,MAAM,CAAC,CAAC,EAC/C,SAAU,GACV,YAAaG,GAASrC,EAAE,IAAIqC,CAAK,EAClC,EAEDrC,EAAE,IAAIkC,CAAI,EAGdlC,EAAE,IAAG,CACP,EAEasC,GAAUC,EACrB1C,GACAsB,GAEA,IAAY,CACV,MAAM,IAAI,UAAU,kBAAkB,CACxC,EACA,IAAY,CACV,MAAM,IAAI,UAAU,kBAAkB,CACxC,EAEA,CAACrB,EAAK0C,IAAW,CACf,GAAI,CAACC,GAAO3C,CAAG,EACb,MAAM,IAAI,UAAU,kBAAkB,EAGxC,GACEA,EAAI,MACJA,EAAI,QACJA,EAAI,MACJA,EAAI,KAAK,SAAS,KAAK,GACvBA,EAAI,KAAK,SAAS,MAAM,EAExB,MAAM,IAAI,UAAU,sCAAsC,EAG5D,GAAI,CAAC0C,GAAS,OACZ,MAAM,IAAI,UAAU,mCAAmC,CAE3D,CAAC,EC5QI,IAAME,GAASC,EACpBC,GAAE,SACFA,GAAE,UACFA,GAAE,WACFA,GAAE,YACF,CAACC,EAAKC,EAAU,CAAA,IAAM,CACpBF,GAAE,WAAWC,EAAKC,CAAO,EACzBC,GAAYF,CAAG,CACjB,CAAC,EAGGE,GAAeF,GAA8B,CACjD,IAAMG,EAASH,EAAI,OAEdA,EAAI,aACPA,EAAI,WAAa,IAAI,KAGvBA,EAAI,OACFG,EACE,CAACC,EAAMC,IACLF,EAAOC,EAAMC,CAAI,GACjB,GAGKL,EAAI,YAAY,IAAII,CAAI,GAAKC,EAAK,OAAS,IAC3CA,EAAK,OAAS,IAIrB,CAACD,EAAMC,IACL,GAGKL,EAAI,YAAY,IAAII,CAAI,GAAKC,EAAK,OAAS,IAC3CA,EAAK,OAAS,GAI3B",
6
- "names": ["EE", "fs", "EventEmitter", "Stream", "StringDecoder", "proc", "isStream", "Minipass", "isReadable", "isWritable", "EOF", "MAYBE_EMIT_END", "EMITTED_END", "EMITTING_END", "EMITTED_ERROR", "CLOSED", "READ", "FLUSH", "FLUSHCHUNK", "ENCODING", "DECODER", "FLOWING", "PAUSED", "RESUME", "BUFFER", "PIPES", "BUFFERLENGTH", "BUFFERPUSH", "BUFFERSHIFT", "OBJECTMODE", "DESTROYED", "ERROR", "EMITDATA", "EMITEND", "EMITEND2", "ASYNC", "ABORT", "ABORTED", "SIGNAL", "DATALISTENERS", "DISCARDED", "defer", "fn", "nodefer", "isEndish", "ev", "isArrayBufferLike", "b", "isArrayBufferView", "Pipe", "src", "dest", "opts", "_er", "PipeProxyErrors", "er", "isObjectModeOptions", "o", "isEncodingOptions", "args", "options", "signal", "_enc", "_om", "a", "_", "chunk", "encoding", "cb", "n", "ret", "c", "noDrain", "ended", "p", "handler", "h", "data", "buf", "resolve", "reject", "stopped", "stop", "res", "onerr", "ondata", "onend", "ondestroy", "value", "rej", "next", "wc", "writev", "fs", "_autoClose", "_close", "_ended", "_fd", "_finished", "_flags", "_flush", "_handleChunk", "_makeBuf", "_mode", "_needDrain", "_onerror", "_onopen", "_onread", "_onwrite", "_open", "_path", "_pos", "_queue", "_read", "_readSize", "_reading", "_remain", "_size", "_write", "_writing", "_defaultFlag", "_errored", "ReadStream", "Minipass", "path", "opt", "er", "fd", "buf", "br", "b", "ret", "ev", "args", "ReadStreamSync", "threw", "WriteStream", "EE", "defaultFlag", "enc", "bw", "iovec", "WriteStreamSync", "path", "fs", "dirname", "parse", "argmap", "isSyncFile", "o", "isAsyncFile", "isSyncNoFile", "isAsyncNoFile", "isFile", "o", "dealiasKey", "k", "d", "argmap", "dealias", "opt", "result", "key", "v", "makeCommand", "syncFile", "asyncFile", "syncNoFile", "asyncNoFile", "validate", "opt_", "entries", "cb", "opt", "dealias", "isSyncFile", "isAsyncFile", "p", "isSyncNoFile", "isAsyncNoFile", "EE", "assert", "Buffer", "realZlib", "realZlib", "realZlibConstants", "constants", "OriginalBufferConcat", "Buffer", "desc", "noop", "args", "passthroughBufferConcat", "makeNoOp", "_", "_superWrite", "ZlibError", "err", "origin", "_flushFlag", "ZlibBase", "Minipass", "#sawError", "#ended", "#flushFlag", "#finishFlushFlag", "#fullFlushFlag", "#handle", "#onError", "opts", "mode", "realZlib", "er", "assert", "flushFlag", "chunk", "encoding", "cb", "data", "nativeHandle", "originalNativeClose", "originalClose", "result", "writeReturn", "r", "i", "Zlib", "#level", "#strategy", "constants", "level", "strategy", "origFlush", "Gzip", "Zlib", "#portable", "opts", "_superWrite", "data", "Unzip", "Zlib", "opts", "Brotli", "ZlibBase", "mode", "constants", "BrotliCompress", "BrotliDecompress", "Zstd", "ZstdCompress", "ZstdDecompress", "pathModule", "encode", "num", "buf", "encodeNegative", "encodePositive", "i", "flipped", "byte", "onesComp", "twosComp", "parse", "pre", "value", "pos", "twos", "len", "sum", "f", "types_exports", "__export", "code", "isCode", "isName", "name", "c", "kv", "Header", "#type", "data", "off", "ex", "gex", "#slurp", "buf", "decString", "decNumber", "decDate", "t", "isCode", "prefix", "sum", "i", "k", "v", "prefixSize", "split", "splitPrefix", "path", "encString", "encNumber", "encDate", "name", "type", "c", "code", "p", "pp", "ret", "root", "pathModule", "size", "numToDate", "num", "parse", "decSmallNumber", "nanUndef", "value", "MAXNUM", "encode", "encSmallNumber", "octalString", "padOctal", "str", "date", "NULLS", "basename", "Pax", "_Pax", "obj", "global", "body", "bodyLen", "bufLen", "buf", "i", "Header", "basename", "field", "r", "v", "s", "byteLen", "digits", "str", "ex", "g", "merge", "parseKV", "a", "b", "parseKVLine", "set", "line", "n", "kv", "k", "platform", "normalizeWindowsPath", "p", "ReadEntry", "Minipass", "header", "ex", "gex", "normalizeWindowsPath", "#slurp", "data", "writeLen", "r", "br", "k", "v", "warnMethod", "self", "code", "message", "data", "maxMetaEntrySize", "gzipHeader", "zstdHeader", "ZIP_HEADER_LEN", "STATE", "WRITEENTRY", "READENTRY", "NEXTENTRY", "PROCESSENTRY", "EX", "GEX", "META", "EMITMETA", "BUFFER", "QUEUE", "ENDED", "EMITTEDEND", "EMIT", "UNZIP", "CONSUMECHUNK", "CONSUMECHUNKSUB", "CONSUMEBODY", "CONSUMEMETA", "CONSUMEHEADER", "CONSUMING", "BUFFERCONCAT", "MAYBEEND", "WRITING", "ABORTED", "DONE", "SAW_VALID_ENTRY", "SAW_NULL_BLOCK", "SAW_EOF", "CLOSESTREAM", "noop", "Parser", "EE", "opt", "isTBR", "isTZST", "code", "message", "data", "warnMethod", "chunk", "position", "header", "Header", "er", "type", "entry", "ReadEntry", "onend", "c", "go", "ev", "args", "re", "br", "ret", "extra", "Pax", "ex", "error", "encoding", "cb", "i", "isZstd", "maybeBrotli", "ended", "Unzip", "ZstdDecompress", "BrotliDecompress", "have", "length", "stripTrailingSlashes", "str", "i", "slashesStart", "onReadEntryFunction", "opt", "onReadEntry", "filesFilter", "files", "map", "f", "stripTrailingSlashes", "filter", "mapHas", "file", "r", "root", "parse", "ret", "m", "dirname", "entry", "listFileSync", "p", "Parser", "fd", "fs", "stat", "readSize", "buf", "read", "pos", "bytesRead", "listFile", "_files", "resolve", "reject", "er", "stream", "ReadStream", "list", "makeCommand", "fs", "fs", "path", "modeFix", "mode", "isDir", "portable", "win32", "isAbsolute", "parse", "stripAbsolutePath", "path", "r", "parsed", "root", "raw", "win", "char", "toWin", "i", "toRaw", "encode", "s", "c", "decode", "prefixPath", "path", "prefix", "normalizeWindowsPath", "stripTrailingSlashes", "maxReadSize", "PROCESS", "FILE", "DIRECTORY", "SYMLINK", "HARDLINK", "HEADER", "READ", "LSTAT", "ONLSTAT", "ONREAD", "ONREADLINK", "OPENFILE", "ONOPENFILE", "CLOSE", "MODE", "AWAITDRAIN", "ONDRAIN", "PREFIX", "WriteEntry", "Minipass", "#hadError", "p", "opt_", "opt", "dealias", "pathWarn", "root", "stripped", "stripAbsolutePath", "decode", "cs", "code", "message", "data", "warnMethod", "ev", "fs", "er", "stat", "getType", "mode", "modeFix", "Header", "Pax", "block", "linkpath", "linkKey", "fd", "bufLen", "buf", "offset", "length", "pos", "bytesRead", "cb", "i", "chunk", "encoding", "WriteEntrySync", "threw", "WriteEntryTar", "readEntry", "type", "b", "writeLen", "Yallist", "_Yallist", "list", "item", "walker", "node", "next", "prev", "head", "tail", "args", "i", "l", "push", "unshift", "res", "t", "h", "fn", "thisp", "n", "initial", "acc", "arr", "from", "to", "ret", "start", "deleteCount", "nodes", "v", "insertAfter", "p", "self", "value", "inserted", "Node", "path", "PackJob", "path", "absolute", "EOF", "ONSTAT", "ENDED", "QUEUE", "PENDINGLINKS", "CURRENT", "PROCESS", "PROCESSING", "PROCESSJOB", "JOBS", "JOBDONE", "ADDFSENTRY", "ADDTARENTRY", "STAT", "READDIR", "ONREADDIR", "PIPE", "ENTRY", "ENTRYOPT", "WRITEENTRYCLASS", "WRITE", "ONDRAIN", "Pack", "Minipass", "opt", "normalizeWindowsPath", "WriteEntry", "Gzip", "BrotliCompress", "ZstdCompress", "zip", "chunk", "Yallist", "encoding", "cb", "ReadEntry", "p", "job", "WriteEntryTar", "stat", "fs", "er", "key", "pending", "entries", "w", "sc", "rc", "code", "msg", "data", "entry", "base", "source", "message", "warnMethod", "PackSync", "WriteEntrySync", "createFileSync", "opt", "files", "p", "PackSync", "stream", "WriteStreamSync", "addFilesSync", "createFile", "Pack", "WriteStream", "promise", "res", "rej", "addFilesAsync", "er", "file", "list", "path", "entry", "createSync", "createAsync", "create", "makeCommand", "_opt", "fs", "assert", "randomBytes", "fs", "path", "fs", "platform", "isWindows", "O_CREAT", "O_NOFOLLOW", "O_TRUNC", "O_WRONLY", "UV_FS_O_FILEMAP", "fMapEnabled", "fMapLimit", "fMapFlag", "noFollowFlag", "getWriteFlag", "size", "fs", "path", "lchownSync", "uid", "gid", "er", "chown", "cpath", "cb", "chownrKid", "p", "child", "chownr", "children", "len", "errState", "then", "chownrKidSync", "chownrSync", "e", "fs", "fsp", "path", "CwdError", "path", "code", "SymlinkError", "symlink", "path", "checkCwd", "dir", "cb", "fs", "er", "st", "CwdError", "mkdir", "opt", "normalizeWindowsPath", "umask", "mode", "needChmod", "uid", "gid", "doChown", "preserve", "unlink", "cwd", "done", "created", "chownr", "fsp", "made", "parts", "path", "mkdir_", "base", "p", "part", "onmkdir", "statEr", "SymlinkError", "checkCwdSync", "ok", "code", "mkdirSync", "chownrSync", "join", "normalizeCache", "MAX", "cache", "normalizeUnicode", "ret", "i", "s", "platform", "isWindows", "getDirs", "path", "set", "s", "join", "PathReservations", "#queues", "#reservations", "#running", "paths", "fn", "p", "stripTrailingSlashes", "normalizeUnicode", "dirs", "a", "b", "q", "dir", "l", "#run", "#getQueues", "res", "#clear", "next", "q0", "f", "n", "umask", "ONENTRY", "CHECKFS", "CHECKFS2", "ISREUSABLE", "MAKEFS", "FILE", "DIRECTORY", "LINK", "SYMLINK", "HARDLINK", "ENSURE_NO_SYMLINK", "UNSUPPORTED", "CHECKPATH", "STRIPABSOLUTEPATH", "MKDIR", "ONERROR", "PENDING", "PEND", "UNPEND", "ENDED", "MAYBECLOSE", "SKIP", "DOCHOWN", "UID", "GID", "CHECKED_CWD", "platform", "isWindows", "DEFAULT_MAX_DEPTH", "unlinkFile", "path", "cb", "fs", "name", "randomBytes", "er", "unlinkFileSync", "uint32", "a", "b", "c", "Unpack", "Parser", "PathReservations", "opt", "normalizeWindowsPath", "umask", "entry", "code", "msg", "data", "field", "p", "type", "root", "stripped", "stripAbsolutePath", "parts", "entryDir", "resolved", "linkparts", "aRoot", "encode", "pRoot", "assert", "dir", "mode", "mkdir", "fullyDone", "stream", "WriteStream", "getWriteFlag", "actions", "done", "abs", "fd", "atime", "mtime", "er2", "uid", "gid", "tx", "linkpath", "cwd", "onError", "t", "st", "SymlinkError", "paths", "checkCwd", "start", "parent", "afterMakeParent", "lstatEr", "needChmod", "afterChmod", "link", "callSync", "fn", "UnpackSync", "mkParent", "oner", "closeError", "e", "chunk", "futimeser", "fchowner", "mkdirSync", "_entry", "linkSync", "extractFileSync", "opt", "u", "UnpackSync", "file", "stat", "fs", "readSize", "ReadStreamSync", "extractFile", "_", "Unpack", "resolve", "reject", "er", "stream", "ReadStream", "extract", "makeCommand", "files", "filesFilter", "fs", "path", "replaceSync", "opt", "files", "p", "PackSync", "threw", "fd", "position", "fs", "er", "st", "headBuf", "POSITION", "bufPos", "bytes", "h", "Header", "entryBlockSize", "streamSync", "stream", "WriteStreamSync", "addFilesSync", "replaceAsync", "Pack", "getPos", "size", "cb_", "cb", "pos", "_", "onread", "resolve", "reject", "flag", "onopen", "WriteStream", "addFilesAsync", "file", "list", "path", "entry", "replace", "makeCommand", "entries", "isFile", "update", "makeCommand", "replace", "opt", "entries", "mtimeFilter", "filter", "path", "stat"]
7
- }