@swf2es/runtime 0.0.0-stage → 0.1.1

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 (459) hide show
  1. package/LICENSE +202 -0
  2. package/LICENSE.third-party +422 -0
  3. package/README.md +29 -2
  4. package/dist/avm1/activation.d.ts +108 -0
  5. package/dist/avm1/activation.d.ts.map +1 -0
  6. package/dist/avm1/activation.js +90 -0
  7. package/dist/avm1/activation.js.map +1 -0
  8. package/dist/avm1/case.d.ts +3 -0
  9. package/dist/avm1/case.d.ts.map +1 -0
  10. package/dist/avm1/case.js +250 -0
  11. package/dist/avm1/case.js.map +1 -0
  12. package/dist/avm1/clips.d.ts +68 -0
  13. package/dist/avm1/clips.d.ts.map +1 -0
  14. package/dist/avm1/clips.js +335 -0
  15. package/dist/avm1/clips.js.map +1 -0
  16. package/dist/avm1/control.d.ts +54 -0
  17. package/dist/avm1/control.d.ts.map +1 -0
  18. package/dist/avm1/control.js +281 -0
  19. package/dist/avm1/control.js.map +1 -0
  20. package/dist/avm1/errors.d.ts +49 -0
  21. package/dist/avm1/errors.d.ts.map +1 -0
  22. package/dist/avm1/errors.js +51 -0
  23. package/dist/avm1/errors.js.map +1 -0
  24. package/dist/avm1/functions.d.ts +94 -0
  25. package/dist/avm1/functions.d.ts.map +1 -0
  26. package/dist/avm1/functions.js +250 -0
  27. package/dist/avm1/functions.js.map +1 -0
  28. package/dist/avm1/globals/array.d.ts +8 -0
  29. package/dist/avm1/globals/array.d.ts.map +1 -0
  30. package/dist/avm1/globals/array.js +550 -0
  31. package/dist/avm1/globals/array.js.map +1 -0
  32. package/dist/avm1/globals/broadcaster.d.ts +22 -0
  33. package/dist/avm1/globals/broadcaster.d.ts.map +1 -0
  34. package/dist/avm1/globals/broadcaster.js +132 -0
  35. package/dist/avm1/globals/broadcaster.js.map +1 -0
  36. package/dist/avm1/globals/date.d.ts +10 -0
  37. package/dist/avm1/globals/date.d.ts.map +1 -0
  38. package/dist/avm1/globals/date.js +437 -0
  39. package/dist/avm1/globals/date.js.map +1 -0
  40. package/dist/avm1/globals/global.d.ts +23 -0
  41. package/dist/avm1/globals/global.d.ts.map +1 -0
  42. package/dist/avm1/globals/global.js +345 -0
  43. package/dist/avm1/globals/global.js.map +1 -0
  44. package/dist/avm1/globals/math.d.ts +7 -0
  45. package/dist/avm1/globals/math.d.ts.map +1 -0
  46. package/dist/avm1/globals/math.js +140 -0
  47. package/dist/avm1/globals/math.js.map +1 -0
  48. package/dist/avm1/globals/number.d.ts +11 -0
  49. package/dist/avm1/globals/number.d.ts.map +1 -0
  50. package/dist/avm1/globals/number.js +94 -0
  51. package/dist/avm1/globals/number.js.map +1 -0
  52. package/dist/avm1/globals/string.d.ts +8 -0
  53. package/dist/avm1/globals/string.d.ts.map +1 -0
  54. package/dist/avm1/globals/string.js +202 -0
  55. package/dist/avm1/globals/string.js.map +1 -0
  56. package/dist/avm1/globals/timers.d.ts +49 -0
  57. package/dist/avm1/globals/timers.d.ts.map +1 -0
  58. package/dist/avm1/globals/timers.js +130 -0
  59. package/dist/avm1/globals/timers.js.map +1 -0
  60. package/dist/avm1/host.d.ts +146 -0
  61. package/dist/avm1/host.d.ts.map +1 -0
  62. package/dist/avm1/host.js +6 -0
  63. package/dist/avm1/host.js.map +1 -0
  64. package/dist/avm1/index.d.ts +15 -0
  65. package/dist/avm1/index.d.ts.map +1 -0
  66. package/dist/avm1/index.js +15 -0
  67. package/dist/avm1/index.js.map +1 -0
  68. package/dist/avm1/inheritance.d.ts +25 -0
  69. package/dist/avm1/inheritance.d.ts.map +1 -0
  70. package/dist/avm1/inheritance.js +133 -0
  71. package/dist/avm1/inheritance.js.map +1 -0
  72. package/dist/avm1/numbers.d.ts +21 -0
  73. package/dist/avm1/numbers.d.ts.map +1 -0
  74. package/dist/avm1/numbers.js +299 -0
  75. package/dist/avm1/numbers.js.map +1 -0
  76. package/dist/avm1/objects.d.ts +245 -0
  77. package/dist/avm1/objects.d.ts.map +1 -0
  78. package/dist/avm1/objects.js +897 -0
  79. package/dist/avm1/objects.js.map +1 -0
  80. package/dist/avm1/operators.d.ts +45 -0
  81. package/dist/avm1/operators.d.ts.map +1 -0
  82. package/dist/avm1/operators.js +171 -0
  83. package/dist/avm1/operators.js.map +1 -0
  84. package/dist/avm1/realm.d.ts +126 -0
  85. package/dist/avm1/realm.d.ts.map +1 -0
  86. package/dist/avm1/realm.js +530 -0
  87. package/dist/avm1/realm.js.map +1 -0
  88. package/dist/avm1/runtime.d.ts +294 -0
  89. package/dist/avm1/runtime.d.ts.map +1 -0
  90. package/dist/avm1/runtime.js +883 -0
  91. package/dist/avm1/runtime.js.map +1 -0
  92. package/dist/avm1/scope.d.ts +77 -0
  93. package/dist/avm1/scope.d.ts.map +1 -0
  94. package/dist/avm1/scope.js +386 -0
  95. package/dist/avm1/scope.js.map +1 -0
  96. package/dist/avm1/urls.d.ts +25 -0
  97. package/dist/avm1/urls.d.ts.map +1 -0
  98. package/dist/avm1/urls.js +181 -0
  99. package/dist/avm1/urls.js.map +1 -0
  100. package/dist/avm1/values.d.ts +52 -0
  101. package/dist/avm1/values.d.ts.map +1 -0
  102. package/dist/avm1/values.js +98 -0
  103. package/dist/avm1/values.js.map +1 -0
  104. package/dist/avm2/amf-classes.d.ts +28 -0
  105. package/dist/avm2/amf-classes.d.ts.map +1 -0
  106. package/dist/avm2/amf-classes.js +67 -0
  107. package/dist/avm2/amf-classes.js.map +1 -0
  108. package/dist/avm2/amf.d.ts +96 -0
  109. package/dist/avm2/amf.d.ts.map +1 -0
  110. package/dist/avm2/amf.js +802 -0
  111. package/dist/avm2/amf.js.map +1 -0
  112. package/dist/avm2/array-conversion.d.ts +31 -0
  113. package/dist/avm2/array-conversion.d.ts.map +1 -0
  114. package/dist/avm2/array-conversion.js +101 -0
  115. package/dist/avm2/array-conversion.js.map +1 -0
  116. package/dist/avm2/builtin-library.d.ts +2 -0
  117. package/dist/avm2/builtin-library.d.ts.map +1 -0
  118. package/dist/avm2/builtin-library.js +22 -0
  119. package/dist/avm2/builtin-library.js.map +1 -0
  120. package/dist/avm2/cache-fill.d.ts +14 -0
  121. package/dist/avm2/cache-fill.d.ts.map +1 -0
  122. package/dist/avm2/cache-fill.js +87 -0
  123. package/dist/avm2/cache-fill.js.map +1 -0
  124. package/dist/avm2/classes.d.ts +17 -0
  125. package/dist/avm2/classes.d.ts.map +1 -0
  126. package/dist/avm2/classes.js +212 -0
  127. package/dist/avm2/classes.js.map +1 -0
  128. package/dist/avm2/definitions.d.ts +28 -0
  129. package/dist/avm2/definitions.d.ts.map +1 -0
  130. package/dist/avm2/definitions.js +70 -0
  131. package/dist/avm2/definitions.js.map +1 -0
  132. package/dist/avm2/descriptors.d.ts +118 -0
  133. package/dist/avm2/descriptors.d.ts.map +1 -0
  134. package/dist/avm2/descriptors.js +6 -0
  135. package/dist/avm2/descriptors.js.map +1 -0
  136. package/dist/avm2/dictionary-keys.d.ts +73 -0
  137. package/dist/avm2/dictionary-keys.d.ts.map +1 -0
  138. package/dist/avm2/dictionary-keys.js +296 -0
  139. package/dist/avm2/dictionary-keys.js.map +1 -0
  140. package/dist/avm2/domain-memory.d.ts +23 -0
  141. package/dist/avm2/domain-memory.d.ts.map +1 -0
  142. package/dist/avm2/domain-memory.js +76 -0
  143. package/dist/avm2/domain-memory.js.map +1 -0
  144. package/dist/avm2/domain.d.ts +108 -0
  145. package/dist/avm2/domain.d.ts.map +1 -0
  146. package/dist/avm2/domain.js +281 -0
  147. package/dist/avm2/domain.js.map +1 -0
  148. package/dist/avm2/dynamic-properties.d.ts +62 -0
  149. package/dist/avm2/dynamic-properties.d.ts.map +1 -0
  150. package/dist/avm2/dynamic-properties.js +183 -0
  151. package/dist/avm2/dynamic-properties.js.map +1 -0
  152. package/dist/avm2/enumeration.d.ts +75 -0
  153. package/dist/avm2/enumeration.d.ts.map +1 -0
  154. package/dist/avm2/enumeration.js +394 -0
  155. package/dist/avm2/enumeration.js.map +1 -0
  156. package/dist/avm2/errors.d.ts +20 -0
  157. package/dist/avm2/errors.d.ts.map +1 -0
  158. package/dist/avm2/errors.js +46 -0
  159. package/dist/avm2/errors.js.map +1 -0
  160. package/dist/avm2/float-library.d.ts +2 -0
  161. package/dist/avm2/float-library.d.ts.map +1 -0
  162. package/dist/avm2/float-library.js +67 -0
  163. package/dist/avm2/float-library.js.map +1 -0
  164. package/dist/avm2/float.d.ts +9 -0
  165. package/dist/avm2/float.d.ts.map +1 -0
  166. package/dist/avm2/float.js +27 -0
  167. package/dist/avm2/float.js.map +1 -0
  168. package/dist/avm2/hooks.d.ts +77 -0
  169. package/dist/avm2/hooks.d.ts.map +1 -0
  170. package/dist/avm2/hooks.js +20 -0
  171. package/dist/avm2/hooks.js.map +1 -0
  172. package/dist/avm2/index.d.ts +32 -0
  173. package/dist/avm2/index.d.ts.map +1 -0
  174. package/dist/avm2/index.js +39 -0
  175. package/dist/avm2/index.js.map +1 -0
  176. package/dist/avm2/messages.d.ts +2 -0
  177. package/dist/avm2/messages.d.ts.map +1 -0
  178. package/dist/avm2/messages.js +178 -0
  179. package/dist/avm2/messages.js.map +1 -0
  180. package/dist/avm2/method-factories.d.ts +35 -0
  181. package/dist/avm2/method-factories.d.ts.map +1 -0
  182. package/dist/avm2/method-factories.js +96 -0
  183. package/dist/avm2/method-factories.js.map +1 -0
  184. package/dist/avm2/modules.d.ts +40 -0
  185. package/dist/avm2/modules.d.ts.map +1 -0
  186. package/dist/avm2/modules.js +106 -0
  187. package/dist/avm2/modules.js.map +1 -0
  188. package/dist/avm2/names.d.ts +143 -0
  189. package/dist/avm2/names.d.ts.map +1 -0
  190. package/dist/avm2/names.js +249 -0
  191. package/dist/avm2/names.js.map +1 -0
  192. package/dist/avm2/natives/aliases.d.ts +3 -0
  193. package/dist/avm2/natives/aliases.d.ts.map +1 -0
  194. package/dist/avm2/natives/aliases.js +48 -0
  195. package/dist/avm2/natives/aliases.js.map +1 -0
  196. package/dist/avm2/natives/array.d.ts +5 -0
  197. package/dist/avm2/natives/array.d.ts.map +1 -0
  198. package/dist/avm2/natives/array.js +391 -0
  199. package/dist/avm2/natives/array.js.map +1 -0
  200. package/dist/avm2/natives/bytearray.d.ts +180 -0
  201. package/dist/avm2/natives/bytearray.d.ts.map +1 -0
  202. package/dist/avm2/natives/bytearray.js +1228 -0
  203. package/dist/avm2/natives/bytearray.js.map +1 -0
  204. package/dist/avm2/natives/case.d.ts +5 -0
  205. package/dist/avm2/natives/case.d.ts.map +1 -0
  206. package/dist/avm2/natives/case.js +89 -0
  207. package/dist/avm2/natives/case.js.map +1 -0
  208. package/dist/avm2/natives/concurrent.d.ts +24 -0
  209. package/dist/avm2/natives/concurrent.d.ts.map +1 -0
  210. package/dist/avm2/natives/concurrent.js +200 -0
  211. package/dist/avm2/natives/concurrent.js.map +1 -0
  212. package/dist/avm2/natives/date.d.ts +5 -0
  213. package/dist/avm2/natives/date.d.ts.map +1 -0
  214. package/dist/avm2/natives/date.js +582 -0
  215. package/dist/avm2/natives/date.js.map +1 -0
  216. package/dist/avm2/natives/define.d.ts +58 -0
  217. package/dist/avm2/natives/define.d.ts.map +1 -0
  218. package/dist/avm2/natives/define.js +131 -0
  219. package/dist/avm2/natives/define.js.map +1 -0
  220. package/dist/avm2/natives/describe.d.ts +3 -0
  221. package/dist/avm2/natives/describe.d.ts.map +1 -0
  222. package/dist/avm2/natives/describe.js +352 -0
  223. package/dist/avm2/natives/describe.js.map +1 -0
  224. package/dist/avm2/natives/dictionary.d.ts +3 -0
  225. package/dist/avm2/natives/dictionary.d.ts.map +1 -0
  226. package/dist/avm2/natives/dictionary.js +13 -0
  227. package/dist/avm2/natives/dictionary.js.map +1 -0
  228. package/dist/avm2/natives/float-vector.d.ts +20 -0
  229. package/dist/avm2/natives/float-vector.d.ts.map +1 -0
  230. package/dist/avm2/natives/float-vector.js +82 -0
  231. package/dist/avm2/natives/float-vector.js.map +1 -0
  232. package/dist/avm2/natives/float.d.ts +5 -0
  233. package/dist/avm2/natives/float.d.ts.map +1 -0
  234. package/dist/avm2/natives/float.js +97 -0
  235. package/dist/avm2/natives/float.js.map +1 -0
  236. package/dist/avm2/natives/index.d.ts +7 -0
  237. package/dist/avm2/natives/index.d.ts.map +1 -0
  238. package/dist/avm2/natives/index.js +65 -0
  239. package/dist/avm2/natives/index.js.map +1 -0
  240. package/dist/avm2/natives/json.d.ts +3 -0
  241. package/dist/avm2/natives/json.d.ts.map +1 -0
  242. package/dist/avm2/natives/json.js +515 -0
  243. package/dist/avm2/natives/json.js.map +1 -0
  244. package/dist/avm2/natives/number.d.ts +15 -0
  245. package/dist/avm2/natives/number.d.ts.map +1 -0
  246. package/dist/avm2/natives/number.js +163 -0
  247. package/dist/avm2/natives/number.js.map +1 -0
  248. package/dist/avm2/natives/object.d.ts +8 -0
  249. package/dist/avm2/natives/object.d.ts.map +1 -0
  250. package/dist/avm2/natives/object.js +238 -0
  251. package/dist/avm2/natives/object.js.map +1 -0
  252. package/dist/avm2/natives/proxy.d.ts +5 -0
  253. package/dist/avm2/natives/proxy.d.ts.map +1 -0
  254. package/dist/avm2/natives/proxy.js +76 -0
  255. package/dist/avm2/natives/proxy.js.map +1 -0
  256. package/dist/avm2/natives/regexp.d.ts +21 -0
  257. package/dist/avm2/natives/regexp.d.ts.map +1 -0
  258. package/dist/avm2/natives/regexp.js +486 -0
  259. package/dist/avm2/natives/regexp.js.map +1 -0
  260. package/dist/avm2/natives/shell-workers.d.ts +140 -0
  261. package/dist/avm2/natives/shell-workers.d.ts.map +1 -0
  262. package/dist/avm2/natives/shell-workers.js +405 -0
  263. package/dist/avm2/natives/shell-workers.js.map +1 -0
  264. package/dist/avm2/natives/shell.d.ts +12 -0
  265. package/dist/avm2/natives/shell.d.ts.map +1 -0
  266. package/dist/avm2/natives/shell.js +558 -0
  267. package/dist/avm2/natives/shell.js.map +1 -0
  268. package/dist/avm2/natives/sort.d.ts +7 -0
  269. package/dist/avm2/natives/sort.d.ts.map +1 -0
  270. package/dist/avm2/natives/sort.js +378 -0
  271. package/dist/avm2/natives/sort.js.map +1 -0
  272. package/dist/avm2/natives/string.d.ts +5 -0
  273. package/dist/avm2/natives/string.d.ts.map +1 -0
  274. package/dist/avm2/natives/string.js +133 -0
  275. package/dist/avm2/natives/string.js.map +1 -0
  276. package/dist/avm2/natives/sync.d.ts +215 -0
  277. package/dist/avm2/natives/sync.d.ts.map +1 -0
  278. package/dist/avm2/natives/sync.js +822 -0
  279. package/dist/avm2/natives/sync.js.map +1 -0
  280. package/dist/avm2/natives/toplevel.d.ts +5 -0
  281. package/dist/avm2/natives/toplevel.d.ts.map +1 -0
  282. package/dist/avm2/natives/toplevel.js +140 -0
  283. package/dist/avm2/natives/toplevel.js.map +1 -0
  284. package/dist/avm2/natives/vector-elements.d.ts +10 -0
  285. package/dist/avm2/natives/vector-elements.d.ts.map +1 -0
  286. package/dist/avm2/natives/vector-elements.js +47 -0
  287. package/dist/avm2/natives/vector-elements.js.map +1 -0
  288. package/dist/avm2/natives/vector.d.ts +5 -0
  289. package/dist/avm2/natives/vector.d.ts.map +1 -0
  290. package/dist/avm2/natives/vector.js +407 -0
  291. package/dist/avm2/natives/vector.js.map +1 -0
  292. package/dist/avm2/natives/xml/access.d.ts +34 -0
  293. package/dist/avm2/natives/xml/access.d.ts.map +1 -0
  294. package/dist/avm2/natives/xml/access.js +634 -0
  295. package/dist/avm2/natives/xml/access.js.map +1 -0
  296. package/dist/avm2/natives/xml/build.d.ts +11 -0
  297. package/dist/avm2/natives/xml/build.d.ts.map +1 -0
  298. package/dist/avm2/natives/xml/build.js +292 -0
  299. package/dist/avm2/natives/xml/build.js.map +1 -0
  300. package/dist/avm2/natives/xml/chars.d.ts +9 -0
  301. package/dist/avm2/natives/xml/chars.d.ts.map +1 -0
  302. package/dist/avm2/natives/xml/chars.js +113 -0
  303. package/dist/avm2/natives/xml/chars.js.map +1 -0
  304. package/dist/avm2/natives/xml/escape.d.ts +5 -0
  305. package/dist/avm2/natives/xml/escape.d.ts.map +1 -0
  306. package/dist/avm2/natives/xml/escape.js +39 -0
  307. package/dist/avm2/natives/xml/escape.js.map +1 -0
  308. package/dist/avm2/natives/xml/names.d.ts +46 -0
  309. package/dist/avm2/natives/xml/names.d.ts.map +1 -0
  310. package/dist/avm2/natives/xml/names.js +205 -0
  311. package/dist/avm2/natives/xml/names.js.map +1 -0
  312. package/dist/avm2/natives/xml/node.d.ts +94 -0
  313. package/dist/avm2/natives/xml/node.d.ts.map +1 -0
  314. package/dist/avm2/natives/xml/node.js +273 -0
  315. package/dist/avm2/natives/xml/node.js.map +1 -0
  316. package/dist/avm2/natives/xml/operators.d.ts +7 -0
  317. package/dist/avm2/natives/xml/operators.d.ts.map +1 -0
  318. package/dist/avm2/natives/xml/operators.js +70 -0
  319. package/dist/avm2/natives/xml/operators.js.map +1 -0
  320. package/dist/avm2/natives/xml/parser.d.ts +51 -0
  321. package/dist/avm2/natives/xml/parser.d.ts.map +1 -0
  322. package/dist/avm2/natives/xml/parser.js +357 -0
  323. package/dist/avm2/natives/xml/parser.js.map +1 -0
  324. package/dist/avm2/natives/xml/strings.d.ts +10 -0
  325. package/dist/avm2/natives/xml/strings.d.ts.map +1 -0
  326. package/dist/avm2/natives/xml/strings.js +192 -0
  327. package/dist/avm2/natives/xml/strings.js.map +1 -0
  328. package/dist/avm2/natives/xml/values.d.ts +48 -0
  329. package/dist/avm2/natives/xml/values.d.ts.map +1 -0
  330. package/dist/avm2/natives/xml/values.js +123 -0
  331. package/dist/avm2/natives/xml/values.js.map +1 -0
  332. package/dist/avm2/natives/xml/xml.d.ts +5 -0
  333. package/dist/avm2/natives/xml/xml.d.ts.map +1 -0
  334. package/dist/avm2/natives/xml/xml.js +646 -0
  335. package/dist/avm2/natives/xml/xml.js.map +1 -0
  336. package/dist/avm2/number-strings.d.ts +28 -0
  337. package/dist/avm2/number-strings.d.ts.map +1 -0
  338. package/dist/avm2/number-strings.js +111 -0
  339. package/dist/avm2/number-strings.js.map +1 -0
  340. package/dist/avm2/numbers.d.ts +12 -0
  341. package/dist/avm2/numbers.d.ts.map +1 -0
  342. package/dist/avm2/numbers.js +559 -0
  343. package/dist/avm2/numbers.js.map +1 -0
  344. package/dist/avm2/options.d.ts +105 -0
  345. package/dist/avm2/options.d.ts.map +1 -0
  346. package/dist/avm2/options.js +17 -0
  347. package/dist/avm2/options.js.map +1 -0
  348. package/dist/avm2/player-messages.d.ts +3 -0
  349. package/dist/avm2/player-messages.d.ts.map +1 -0
  350. package/dist/avm2/player-messages.js +551 -0
  351. package/dist/avm2/player-messages.js.map +1 -0
  352. package/dist/avm2/property-cache.d.ts +61 -0
  353. package/dist/avm2/property-cache.d.ts.map +1 -0
  354. package/dist/avm2/property-cache.js +136 -0
  355. package/dist/avm2/property-cache.js.map +1 -0
  356. package/dist/avm2/runtime.d.ts +588 -0
  357. package/dist/avm2/runtime.d.ts.map +1 -0
  358. package/dist/avm2/runtime.js +2645 -0
  359. package/dist/avm2/runtime.js.map +1 -0
  360. package/dist/avm2/traits.d.ts +233 -0
  361. package/dist/avm2/traits.d.ts.map +1 -0
  362. package/dist/avm2/traits.js +510 -0
  363. package/dist/avm2/traits.js.map +1 -0
  364. package/dist/index.d.ts +8 -0
  365. package/dist/index.d.ts.map +1 -0
  366. package/dist/index.js +8 -0
  367. package/dist/index.js.map +1 -0
  368. package/package.json +43 -3
  369. package/src/avm1/activation.ts +114 -0
  370. package/src/avm1/case.ts +257 -0
  371. package/src/avm1/clips.ts +440 -0
  372. package/src/avm1/control.ts +339 -0
  373. package/src/avm1/errors.ts +60 -0
  374. package/src/avm1/functions.ts +271 -0
  375. package/src/avm1/globals/array.ts +676 -0
  376. package/src/avm1/globals/broadcaster.ts +185 -0
  377. package/src/avm1/globals/date.ts +548 -0
  378. package/src/avm1/globals/global.ts +420 -0
  379. package/src/avm1/globals/math.ts +152 -0
  380. package/src/avm1/globals/number.ts +122 -0
  381. package/src/avm1/globals/string.ts +254 -0
  382. package/src/avm1/globals/timers.ts +144 -0
  383. package/src/avm1/host.ts +155 -0
  384. package/src/avm1/index.ts +69 -0
  385. package/src/avm1/inheritance.ts +159 -0
  386. package/src/avm1/numbers.ts +348 -0
  387. package/src/avm1/objects.ts +1080 -0
  388. package/src/avm1/operators.ts +229 -0
  389. package/src/avm1/realm.ts +704 -0
  390. package/src/avm1/runtime.ts +1291 -0
  391. package/src/avm1/scope.ts +482 -0
  392. package/src/avm1/urls.ts +226 -0
  393. package/src/avm1/values.ts +145 -0
  394. package/src/avm2/amf-classes.ts +80 -0
  395. package/src/avm2/amf.ts +913 -0
  396. package/src/avm2/array-conversion.ts +117 -0
  397. package/src/avm2/builtin-library.ts +28 -0
  398. package/src/avm2/cache-fill.ts +124 -0
  399. package/src/avm2/classes.ts +235 -0
  400. package/src/avm2/definitions.ts +93 -0
  401. package/src/avm2/descriptors.ts +137 -0
  402. package/src/avm2/dictionary-keys.ts +345 -0
  403. package/src/avm2/domain-memory.ts +95 -0
  404. package/src/avm2/domain.ts +335 -0
  405. package/src/avm2/dynamic-properties.ts +209 -0
  406. package/src/avm2/enumeration.ts +506 -0
  407. package/src/avm2/errors.ts +54 -0
  408. package/src/avm2/float-library.ts +66 -0
  409. package/src/avm2/float.ts +31 -0
  410. package/src/avm2/hooks.ts +97 -0
  411. package/src/avm2/index.ts +84 -0
  412. package/src/avm2/messages.ts +178 -0
  413. package/src/avm2/method-factories.ts +130 -0
  414. package/src/avm2/modules.ts +120 -0
  415. package/src/avm2/names.ts +292 -0
  416. package/src/avm2/natives/aliases.ts +59 -0
  417. package/src/avm2/natives/array.ts +482 -0
  418. package/src/avm2/natives/bytearray.ts +1474 -0
  419. package/src/avm2/natives/case.ts +98 -0
  420. package/src/avm2/natives/concurrent.ts +268 -0
  421. package/src/avm2/natives/date.ts +678 -0
  422. package/src/avm2/natives/define.ts +176 -0
  423. package/src/avm2/natives/describe.ts +426 -0
  424. package/src/avm2/natives/dictionary.ts +18 -0
  425. package/src/avm2/natives/float-vector.ts +99 -0
  426. package/src/avm2/natives/float.ts +116 -0
  427. package/src/avm2/natives/index.ts +70 -0
  428. package/src/avm2/natives/json.ts +600 -0
  429. package/src/avm2/natives/number.ts +194 -0
  430. package/src/avm2/natives/object.ts +272 -0
  431. package/src/avm2/natives/proxy.ts +98 -0
  432. package/src/avm2/natives/regexp.ts +580 -0
  433. package/src/avm2/natives/shell-workers.ts +474 -0
  434. package/src/avm2/natives/shell.ts +707 -0
  435. package/src/avm2/natives/sort.ts +438 -0
  436. package/src/avm2/natives/string.ts +158 -0
  437. package/src/avm2/natives/sync.ts +964 -0
  438. package/src/avm2/natives/toplevel.ts +163 -0
  439. package/src/avm2/natives/vector-elements.ts +61 -0
  440. package/src/avm2/natives/vector.ts +511 -0
  441. package/src/avm2/natives/xml/access.ts +767 -0
  442. package/src/avm2/natives/xml/build.ts +381 -0
  443. package/src/avm2/natives/xml/chars.ts +127 -0
  444. package/src/avm2/natives/xml/escape.ts +46 -0
  445. package/src/avm2/natives/xml/names.ts +256 -0
  446. package/src/avm2/natives/xml/node.ts +339 -0
  447. package/src/avm2/natives/xml/operators.ts +90 -0
  448. package/src/avm2/natives/xml/parser.ts +414 -0
  449. package/src/avm2/natives/xml/strings.ts +241 -0
  450. package/src/avm2/natives/xml/values.ts +162 -0
  451. package/src/avm2/natives/xml/xml.ts +829 -0
  452. package/src/avm2/number-strings.ts +127 -0
  453. package/src/avm2/numbers.ts +605 -0
  454. package/src/avm2/options.ts +125 -0
  455. package/src/avm2/player-messages.ts +552 -0
  456. package/src/avm2/property-cache.ts +160 -0
  457. package/src/avm2/runtime.ts +3274 -0
  458. package/src/avm2/traits.ts +584 -0
  459. package/src/index.ts +8 -0
@@ -0,0 +1,335 @@
1
+ import { PRIMITIVE } from "./inheritance.js";
2
+ import { Avm1Object } from "./objects.js";
3
+ import { toInt32 } from "./operators.js";
4
+ import { SCOPE_Target, Scope, stoppedAtPrimitive, targetPath } from "./scope.js";
5
+ import { stringOf, toBoolean, toNumber } from "./values.js";
6
+ /** The target, or where SetTarget found none, the root: where GotoFrame2 and a function's `this` go. */
7
+ export function targetOrRoot(cx) {
8
+ if (cx.target !== null) {
9
+ return cx.target;
10
+ }
11
+ const root = cx.host.root?.(cx.base);
12
+ return (root instanceof Avm1Object ? cx.host.clipOf?.(root) : undefined) ?? cx.base;
13
+ }
14
+ /** The target's timeline, where it is a clip. */
15
+ const timelineOf = (cx, target) => target === null ? null : (cx.host.timeline?.(target) ?? null);
16
+ /** `scope` with its timeline's scope, a clip's, now `object`'s, as tellTarget makes it. */
17
+ function retarget(scope, object) {
18
+ if (scope.kind === SCOPE_Target) {
19
+ return new Scope(scope.parent, SCOPE_Target, object, scope.depth);
20
+ }
21
+ return scope.parent === null
22
+ ? scope
23
+ : new Scope(retarget(scope.parent, object), scope.kind, scope.object, scope.depth);
24
+ }
25
+ /** The target `target` from here on: names resolve on its clip, or the root's where there is none. */
26
+ function setTargetClip(cx, target) {
27
+ cx.target = target !== null && cx.host.removed?.(target) ? null : target;
28
+ const clip = cx.host.objectOf?.(targetOrRoot(cx));
29
+ if (clip !== undefined) {
30
+ cx.clip = clip;
31
+ cx.scope = retarget(cx.scope, clip);
32
+ }
33
+ }
34
+ /** The display object a path from `start`'s AVM1 object names, null for none or no display object. */
35
+ export function pathTarget(cx, start, path, version) {
36
+ const from = cx.host.objectOf?.(start);
37
+ if (from === undefined) {
38
+ return null;
39
+ }
40
+ const object = targetPath(cx, from, path, true, false, version);
41
+ if (object === null && stoppedAtPrimitive && version >= 5) {
42
+ cx.host.trace(PRIMITIVE);
43
+ }
44
+ return object === null ? null : (cx.host.clipOf?.(object) ?? null);
45
+ }
46
+ /**
47
+ * SetTarget: the clip `path` names from the code's own clip, that clip
48
+ * for "", none where it names none or the code's clip is gone.
49
+ */
50
+ export function setTarget(cx, path, version) {
51
+ if (path === "") {
52
+ setTargetClip(cx, cx.base);
53
+ return;
54
+ }
55
+ const removed = cx.host.removed?.(cx.base) ?? false;
56
+ setTargetClip(cx, removed ? null : pathTarget(cx, cx.base, path, version));
57
+ }
58
+ /**
59
+ * SetTarget2: as SetTarget of the value as a string, but undefined is the
60
+ * code's own clip up to SWF 6 and none from 7; nothing where that clip is
61
+ * gone.
62
+ */
63
+ export function setTarget2(cx, value, version) {
64
+ if (cx.host.removed?.(cx.base)) {
65
+ cx.target = null;
66
+ return;
67
+ }
68
+ if (value === undefined) {
69
+ if (version > 6) {
70
+ cx.target = null;
71
+ const clip = cx.host.objectOf?.(cx.base);
72
+ if (clip !== undefined) {
73
+ cx.clip = cx.host.objectOf?.(targetOrRoot(cx)) ?? clip;
74
+ cx.scope = retarget(cx.scope, clip);
75
+ }
76
+ }
77
+ else {
78
+ setTargetClip(cx, cx.base);
79
+ }
80
+ return;
81
+ }
82
+ setTarget(cx, stringOf(value, version), version);
83
+ }
84
+ /**
85
+ * The display object a GetProperty or SetProperty names: a clip's AVM1
86
+ * object itself, else the path it converts to, from `start`; the empty
87
+ * path is `start` where `empty`, else none.
88
+ */
89
+ function displayOf(cx, start, value, empty, version) {
90
+ if (value instanceof Avm1Object && value.display !== null) {
91
+ return value.display.target;
92
+ }
93
+ const path = stringOf(value, version);
94
+ if (!empty && path === "") {
95
+ return null;
96
+ }
97
+ return pathTarget(cx, start, path, version);
98
+ }
99
+ /** What GetProperty and SetProperty act on: from the target, or from the code's clip where there is none. */
100
+ const propertyTarget = (cx, path, version) => cx.target !== null
101
+ ? displayOf(cx, cx.target, path, true, version)
102
+ : displayOf(cx, cx.base, path, false, version);
103
+ /** A property's index: the number truncated, none for NaN, an infinity or -1 and below. */
104
+ function indexOf(index, version) {
105
+ const n = toNumber(index, version);
106
+ return Number.isFinite(n) && n > -1 ? Math.trunc(n) : -1;
107
+ }
108
+ /** GetProperty: property `index` of the clip `path` names, undefined for none. */
109
+ export function getProperty(cx, index, path, version) {
110
+ const i = indexOf(index, version);
111
+ const target = propertyTarget(cx, path, version);
112
+ if (target === null || i < 0) {
113
+ return undefined;
114
+ }
115
+ return cx.host.objectOf?.(target).display?.property(i, version);
116
+ }
117
+ /** SetProperty: property `index` of the clip `path` names set to `value`. */
118
+ export function setProperty(cx, value, index, path, version) {
119
+ const i = indexOf(index, version);
120
+ const target = propertyTarget(cx, path, version);
121
+ if (target === null) {
122
+ // The value is converted all the same (Ruffle's action_property_coerce).
123
+ coerceFor(i, value, version);
124
+ return;
125
+ }
126
+ if (i >= 0) {
127
+ cx.host.objectOf?.(target).display?.setProperty(i, value, version);
128
+ }
129
+ }
130
+ /**
131
+ * What a property's set converts its value to before it finds the target
132
+ * read-only or missing: a number for 0 to 12 but `_target` (11), a string
133
+ * for `_name` and `_quality`, a number for the rest but `_focusrect`.
134
+ */
135
+ function coerceFor(index, value, version) {
136
+ if (index < 0 || index === 11 || index === 14 || index === 15 || index === 17) {
137
+ return;
138
+ }
139
+ if (index <= 12) {
140
+ if (value !== undefined && value !== null) {
141
+ toNumber(value, version);
142
+ }
143
+ }
144
+ else if (index === 13 || index === 19) {
145
+ stringOf(value, version);
146
+ }
147
+ else if (index <= 21) {
148
+ toNumber(value, version);
149
+ }
150
+ }
151
+ /** GotoFrame: frame `frame` (0 the first) of the target, which stops. */
152
+ export function gotoFrame(cx, frame) {
153
+ timelineOf(cx, cx.target)?.goto(frame + 1, false);
154
+ }
155
+ /** GotoLabel: the frame of `label`, if the target has it, which stops. */
156
+ export function gotoLabel(cx, label) {
157
+ const timeline = timelineOf(cx, cx.target);
158
+ const frame = timeline?.labelFrame(label);
159
+ if (frame !== undefined) {
160
+ timeline?.goto(frame, false);
161
+ }
162
+ }
163
+ /** GotoFrame2: as `goto` on the target, or the root where there is none, `bias` frames on. */
164
+ export function gotoFrame2(cx, frame, play, bias, version) {
165
+ const target = targetOrRoot(cx);
166
+ if (timelineOf(cx, target) !== null) {
167
+ goto(cx, target, frame, play, bias, version);
168
+ }
169
+ }
170
+ /** A string as Rust reads an f64: digits with a sign, a point and an exponent, or inf and NaN; null for anything else. */
171
+ function parseNumber(s) {
172
+ if (/^[+-]?(\d+\.?\d*|\.\d+)([eE][+-]?\d+)?$/.test(s)) {
173
+ return Number(s);
174
+ }
175
+ if (/^[+-]?(inf|infinity)$/i.test(s)) {
176
+ return s.startsWith("-") ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY;
177
+ }
178
+ return /^[+-]?nan$/i.test(s) ? Number.NaN : null;
179
+ }
180
+ /**
181
+ * The clip and the frame a goto's or CallFrame's value names from clip
182
+ * `start`: a whole number its frame; anything else as a string, a path to
183
+ * a clip and a frame, `/a/b:3` or `a.b.label`, the frame a number or a
184
+ * label; null where it names none.
185
+ */
186
+ function frameOf(cx, start, value, version) {
187
+ if (typeof value === "number" && Number.isInteger(value)) {
188
+ return [start, toInt32(value, version)];
189
+ }
190
+ const path = stringOf(value, version);
191
+ let clip = start;
192
+ let frame = path;
193
+ const separator = Math.max(path.lastIndexOf(":"), path.lastIndexOf("."));
194
+ if (separator >= 0) {
195
+ clip = null;
196
+ for (let s = cx.scope; s !== null && clip === null; s = s.parent) {
197
+ const object = targetPath(cx, s.object, path.slice(0, separator), true, true, version);
198
+ if (object !== null) {
199
+ clip = cx.host.clipOf?.(object) ?? null;
200
+ // Not a clip: none, as Ruffle's resolve_variable_path finds an object first.
201
+ if (clip === null) {
202
+ return null;
203
+ }
204
+ }
205
+ }
206
+ frame = path.slice(separator + 1);
207
+ }
208
+ const timeline = clip === null ? null : timelineOf(cx, clip);
209
+ if (clip === null || timeline === null) {
210
+ return null;
211
+ }
212
+ const n = parseNumber(frame);
213
+ if (n !== null) {
214
+ return [clip, toInt32(n, version)];
215
+ }
216
+ const labelled = timeline.labelFrame(frame);
217
+ return labelled === undefined ? null : [clip, labelled];
218
+ }
219
+ /**
220
+ * A goto of `frame` on clip `target`, gotoAndPlay's and gotoAndStop's and
221
+ * GotoFrame2's: the frame `frameOf` names, `bias` frames on, if that is
222
+ * from 1; as a u16, where the timeline clamps it.
223
+ */
224
+ export function goto(cx, target, frame, play, bias, version) {
225
+ const found = frameOf(cx, target, frame, version);
226
+ if (found === null) {
227
+ return;
228
+ }
229
+ const n = Math.min(((found[1] - 1) | 0) + bias + 1, 0x7fffffff);
230
+ if (n > 0) {
231
+ timelineOf(cx, found[0])?.goto(Math.max(1, n & 0xffff), play);
232
+ }
233
+ }
234
+ /** NextFrame: the target's next frame, if it has one, where it stops. */
235
+ export function nextFrame(cx) {
236
+ const timeline = timelineOf(cx, cx.target);
237
+ if (timeline !== null && timeline.currentFrame < timeline.totalFrames) {
238
+ timeline.goto(timeline.currentFrame + 1, false);
239
+ }
240
+ }
241
+ /** PrevFrame: the target's previous frame, if it has one, where it stops. */
242
+ export function prevFrame(cx) {
243
+ const timeline = timelineOf(cx, cx.target);
244
+ if (timeline !== null && timeline.currentFrame > 1) {
245
+ timeline.goto(timeline.currentFrame - 1, false);
246
+ }
247
+ }
248
+ /**
249
+ * WaitForFrame: whether frame `frame` (0 the first) is loaded, which in a
250
+ * SWF the player has whole every frame is, up to Flash's 16000.
251
+ */
252
+ export const frameLoaded = (frame) => frame <= 16000;
253
+ /** WaitForFrame2: as WaitForFrame of the value's frame, 1 the first, read as Ruffle reads it. */
254
+ export function frameLoaded2(value, version) {
255
+ let n = 0;
256
+ if (typeof value === "number" && Number.isInteger(value)) {
257
+ n = toInt32(value, version);
258
+ }
259
+ else {
260
+ const parsed = parseNumber(stringOf(value, version));
261
+ n = parsed !== null && Number.isInteger(parsed) ? toInt32(parsed, version) : 0;
262
+ }
263
+ // Less one, wrapping, and one more, saturating.
264
+ const frame = Math.min(((n - 1) | 0) + 1, 0x7fffffff);
265
+ return frame <= 16001;
266
+ }
267
+ /** TargetPath: a clip's path, `_level0.a`, undefined for anything else. */
268
+ export function targetPathOf(value) {
269
+ if (!(value instanceof Avm1Object) || value.display === null) {
270
+ return undefined;
271
+ }
272
+ const live = value.display.live();
273
+ return live?.display?.path() ?? undefined;
274
+ }
275
+ /** CallFrame: the actions of the frame the value names, on the target or the root, run now. */
276
+ export function callFrame(cx, value, version) {
277
+ const target = targetOrRoot(cx);
278
+ const found = typeof value === "number"
279
+ ? [target, toInt32(value, version) >>> 0]
280
+ : frameOf(cx, target, value, version);
281
+ if (found !== null && found[1] <= 0xffff) {
282
+ timelineOf(cx, found[0])?.call(found[1]);
283
+ }
284
+ }
285
+ /**
286
+ * CloneSprite: the display object `source` names from the target, or the
287
+ * root's where there is none, duplicated as `name` at timeline depth
288
+ * `depth`, which compilers bias as duplicateMovieClip's own depth is.
289
+ */
290
+ export function cloneSprite(cx, depth, name, source, version) {
291
+ const d = toInt32(depth, version);
292
+ const n = stringOf(name, version);
293
+ const target = displayOf(cx, targetOrRoot(cx), source, true, version);
294
+ if (target !== null) {
295
+ cx.host.duplicate?.(target, n, d);
296
+ }
297
+ }
298
+ /**
299
+ * StartDrag, its operands on the stack: the target, whether to lock the
300
+ * centre, whether to constrain, and if so the bounds' right-to-left
301
+ * bottom, right, top and left. The display object the target names, from
302
+ * the code's target or the root, is dragged; an empty one is that target.
303
+ */
304
+ export function startDrag(cx, version) {
305
+ const st = cx.st;
306
+ const value = st.pop();
307
+ const lockCenter = toBoolean(st.pop(), version);
308
+ let bounds = null;
309
+ if (toBoolean(st.pop(), version)) {
310
+ const bottom = toNumber(st.pop(), version);
311
+ const right = toNumber(st.pop(), version);
312
+ const top = toNumber(st.pop(), version);
313
+ const left = toNumber(st.pop(), version);
314
+ bounds = [left, top, right, bottom];
315
+ }
316
+ const target = displayOf(cx, targetOrRoot(cx), value, true, version);
317
+ if (target !== null) {
318
+ cx.host.startDrag?.(target, lockCenter, bounds);
319
+ }
320
+ }
321
+ /**
322
+ * RemoveSprite: the display object `value` names from the target, or the
323
+ * root's, removed; a target it removes gives way to the code's own clip.
324
+ */
325
+ export function removeSprite(cx, value, version) {
326
+ const target = displayOf(cx, targetOrRoot(cx), value, true, version);
327
+ if (target === null) {
328
+ return;
329
+ }
330
+ cx.host.remove?.(target);
331
+ if (cx.target !== null && cx.host.removed?.(cx.target)) {
332
+ setTargetClip(cx, cx.base);
333
+ }
334
+ }
335
+ //# sourceMappingURL=clips.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clips.js","sourceRoot":"","sources":["../../src/avm1/clips.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ import type { Activation } from "./activation.js";
2
+ import type { Value } from "./values.js";
3
+ export declare class Held {
4
+ readonly kind: number;
5
+ /** The blocks it holds over, from `from` to `to`, excluded. */
6
+ from: number;
7
+ to: number;
8
+ /** A finally's thrown value. */
9
+ readonly value: Value;
10
+ constructor(kind: number,
11
+ /** The blocks it holds over, from `from` to `to`, excluded. */
12
+ from: number, to: number,
13
+ /** A finally's thrown value. */
14
+ value?: Value);
15
+ holds(block: number): boolean;
16
+ /** Whether a scope holds as control goes to `block`: one of its body's, or the first past it. */
17
+ admits(block: number): boolean;
18
+ }
19
+ /**
20
+ * With: `value`, a primitive boxed, on the scope chain over the body's
21
+ * blocks; false, the body skipped, for undefined and null, and where the
22
+ * chain holds MAX_SCOPES already (adl).
23
+ */
24
+ export declare function enterWith(cx: Activation, value: Value, from: number, to: number, version: number): boolean;
25
+ /** Try: its handlers, held over its try and catch bodies. */
26
+ export declare function enterTry(cx: Activation, from: number, catchFrom: number, finallyFrom: number, finallyTo: number, catchAt: number, into: string | number): void;
27
+ /**
28
+ * Where control goes from the block `at`, where `error` was thrown: the
29
+ * catch of the first Try whose try body holds it, its variable set, or the
30
+ * finally of the first whose try or catch body does, which throws the
31
+ * value again as control leaves it. The stack is cut back to its height
32
+ * as that Try ran. Another error, a bug's or the host's, a recursion
33
+ * limit's, passes through, as does a value no Try catches.
34
+ */
35
+ export declare function caught(cx: Activation, error: unknown, at: number): number;
36
+ /**
37
+ * Control going to block `to` (-1: the exit) across the bounds of a body:
38
+ * the Trys that do not hold over it come off, and a finally that a throw
39
+ * or a Return reached throws or returns as control leaves it, even by a
40
+ * jump. The scopes on top that do not hold there come off; those whose
41
+ * body it is the first block past, after its first action (V.scopes).
42
+ */
43
+ export declare function leave(cx: Activation, to: number): number;
44
+ /** The scopes that do not hold over block `at`, where control is, come off. */
45
+ export declare function scopes(cx: Activation, at: number): void;
46
+ /**
47
+ * Return, its value on top of the stack: the finally of the first Try
48
+ * whose try or catch body holds control runs first, the stack cut back to
49
+ * its height as that Try ran with the value left on top, and the value is
50
+ * popped as control leaves it, the stack's top then (adl); a finally's own
51
+ * throw or Return gives way to this one.
52
+ */
53
+ export declare function returned(cx: Activation): number;
54
+ //# sourceMappingURL=control.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"control.d.ts","sourceRoot":"","sources":["../../src/avm1/control.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAIlD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAazC,qBAAa,IAAI;IAEb,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,+DAA+D;IACxD,IAAI,EAAE,MAAM;IACZ,EAAE,EAAE,MAAM;IACjB,gCAAgC;IAChC,QAAQ,CAAC,KAAK,EAAE,KAAK;IANvB,YACW,IAAI,EAAE,MAAM;IACrB,+DAA+D;IACxD,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM;IACjB,gCAAgC;IACvB,KAAK,GAAE,KAAiB,EAC/B;IAEJ,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE5B;IAED,iGAAiG;IACjG,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE7B;CACF;AAuGD;;;;GAIG;AACH,wBAAgB,SAAS,CACvB,EAAE,EAAE,UAAU,EACd,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,MAAM,GACd,OAAO,CAOT;AAED,6DAA6D;AAC7D,wBAAgB,QAAQ,CACtB,EAAE,EAAE,UAAU,EACd,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,GAAG,MAAM,GACpB,IAAI,CAIN;AAED;;;;;;;GAOG;AACH,wBAAgB,MAAM,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAiDzE;AAED;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CA+BxD;AAED,+EAA+E;AAC/E,wBAAgB,MAAM,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAcvD;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,EAAE,EAAE,UAAU,GAAG,MAAM,CAoB/C"}